libspatialite-4.1.1/0000775000175000017500000000000012163503232011343 500000000000000libspatialite-4.1.1/spatialite-sql-latest.html0000664000175000017500000061740612163502133016414 00000000000000 SpatiaLite SQL functions reference list

SpatiaLite 4.1.0          SQL functions reference list

back

SQL Version Info [and build options testing] functions

Function Syntax Summary
spatialite_version spatialite_version( void ) : String returns the current SpatiaLite version as a text string
proj4_version proj4_version( void ) : String returns the current PROJ.4 version as a text string
or NULL if PROJ.4 is currently unsupported
geos_version geos_version( void ) : String returns the current GEOS version as a text string
or NULL if GEOS is currently unsupported
lwgeom_version lwgeom_version( void ) : String returns the current LWGEOM version as a text string
or NULL if LWGEOM is currently unsupported
libxml2_version libxml2_version( void ) : String returns the current LibXML2 version as a text string
or NULL if LibXML2 is currently unsupported
HasIconv HasIconv( void ) : Boolean TRUE if the underlaying library was built enabling ICONV
HasMathSQL HasMathSQL( void ) : Boolean TRUE if the underlaying library was built enabling MATHSQL
HasGeoCallbacks HasGeoCallbacks( void ) : Boolean TRUE if the underlaying library was built enabling GEOCALLBACKS
HasProj HasProj( void ) : Boolean TRUE if the underlaying library was built enabling PROJ
HasGeos HasGeos( void ) : Boolean TRUE if the underlaying library was built enabling GEOS
HasGeosAdvanced HasGeosAdvanced( void ) : Boolean TRUE if the underlaying library was built enabling GEOSADVANCED
HasGeosTrunk HasGeosTrunk( void ) : Boolean TRUE if the underlaying library was built enabling GEOSTRUNK
HasLwGeom HasLwGeom( void ) : Boolean TRUE if the underlaying library was built enabling LWGEOM
HasLibXML2 HasLibXML2( void ) : Boolean TRUE if the underlaying library was built enabling LibXML2
HasEpsg HasEpsg( void ) : Boolean TRUE if the underlaying library was built enabling EPSG
HasFreeXL HasFreeXL( void ) : Boolean TRUE if the underlaying library was built enabling FREEXL

Generic SQL functions

Function Syntax Summary
CastToInteger CastToInteger( value Generic ) : Integer returns the intput value possibly casted to the Integer data-type: NULL if no conversion is possible.
CastToDouble CastToDouble( value Generic ) : Double precision returns the intput value possibly casted to the Double data-type: NULL if no conversion is possible.
CastToText CastToText( value Generic ) : Text
CastToText( value Generic , zero_pad Integer ) : Text
returns the intput value possibly casted to the Text data-type: NULL if no conversion is possible.
If an optional argument zero_pad is passed and the input value is of the Integer or Double type, then the returned string will be padded using as much trailing ZEROs so to ensure the required length.
CastToBlob CastToBlob( value Generic ) : Blob
CastToBlob( value Generic , hex_input Boolean ) : Blob
returns the intput value possibly casted to the BLOB data-type: if the optional argument hex_input is set to TRUE the input value will be expected to correspond to an HexaDecimal string, e.g. 01ab89EF; if this assumption fails then NULL will be returned.
NULL if no conversion is possible.
ForceAsNull ForceAsNull( val1 Generic , val2 Generic) : Generic if val1 and val2 are equal (and exactly of the same data-type) NULL will be returned; otherwise val1 will be returned absolutely untouched and still preserving its originale data-type.
CreateUUID CreateUUID( void ) : Text returns a Version 4 (random) UUID (Universally unique identifier).
MD5Checksum MD5Checksum( BLOB | TEXT ) : Text returns the MD5 checksum corresponding to the input value.
Will return NULL for non-BLOB or non-TEXT input.
MD5TotalChecksum MD5TotalChecksum( BLOB | TEXT ) : Text returns a cumulative MD5 checksum.
aggregate function

SQL math functions

Function Syntax Summary
Abs Abs( x Double precision ) : Double precision returns the absolute value of x
Acos Acos( x Double precision ) : Double precision returns the arc cosine of x, that is, the value whose cosine is x
returns NULL if x is not in the range -1 to 1
Asin Asin( x Double precision ) : Double precision returns the arc sine of x, that is, the value whose sine is x
returns NULL if x is not in the range -1 to 1
Atan Atan( x Double precision ) : Double precision returns the arc tangent of x, that is, the value whose tangent is x
Ceil
Ceiling
Ceil( x Double precision ) : Double precision
Ceiling( x Double precision ) : Double precision
returns the smallest integer value not less than x
Cos Cos( x Double precision ) : Double precision returns the cosine of x, where x is given in radians
Cot Cot( x Double precision ) : Double precision returns the cotangent of x, where x is given in radians
Degrees Degrees( x Double precision ) : Double precision returns the argument x, converted from radians to degrees
Exp Exp( x Double precision ) : Double precision returns the value of e (the base of natural logarithms) raised to the power of x
the inverse of this function is Log() (using a single argument only) or Ln()
Floor Floor( x Double precision ) : Double precision returns the largest integer value not greater than x
Ln
Log
Ln( x Double precision ) : Double precision
Log( x Double precision ) : Double precision
returns the natural logarithm of x; that is, the base-e logarithm of x
If x is less than or equal to 0, then NULL is returned
Log Log( b Double precision , x Double precision ) : Double precision returns the logarithm of x to the base b
If x is less than or equal to 0, or if b is less than or equal to 1, then NULL is returned
Log(b, x) is equivalent to Log(x) / Log(b)
Log2 Log2( x Double precision ) : Double precision returns the base-2 logarithm of x
Log2(x) is equivalent to Log(x) / Log(2)
Log10 Log10( x Double precision ) : Double precision returns the base-10 logarithm of x
Log10(x) is equivalent to Log(x) / Log(10)
PI PI( void ) : Double precision returns the value of PI
Pow
Power
Pow( x Double precision , y Double precision ) : Double precision
Power( x Double precision , y Double precision ) : Double precision
returns the value of x raised to the power of y
Radians Radians( x Double precision ) : Double precision returns the argument x, converted from degrees to radians
Round Round( x Double precision ) : Double precision returns the integer value nearest to x
Sign Sign( x Double precision ) : Double precision returns the sign of the argument as -1, 0, or 1, depending on whether x is negative, zero, or positive.
Sin Sin( x Double precision ) : Double precision returns the sine of x, where x is given in radians
Sqrt Sqrt( x Double precision ) : Double precision returns the square root of a non-negative number x
Stddev_pop Stddev_pop( x Double precision ) : Double precision returns the population standard deviation of the input values
aggregate function
Stddev_samp Stddev_samp( x Double precision ) : Double precision returns the sample standard deviation of the input values
aggregate function
Tan Tan( x Double precision ) : Double precision returns the tangent of x, where x is given in radians
Var_pop Var_pop( x Double precision ) : Double precision returns the population variance of the input values (square of the population standard deviation)
aggregate function
Var_samp Var_samp( x Double precision ) : Double precision returns the sample variance of the input values (square of the sample standard deviation)
aggregate function

SQL length/distance unit-conversion functions

Function Syntax Summary
Kilometer CvtToKm( x Double precision ) : Double precision
CvtFromKm( x Double precision ) : Double precision
meters / kilometers
Decimeter CvtToDm( x Double precision ) : Double precision
CvtFromDm( x Double precision ) : Double precision
meters / decimeters
Centimeter CvtToCm( x Double precision ) : Double precision
CvtFromCm( x Double precision ) : Double precision
meters / centimeters
Millimeter CvtToMm( x Double precision ) : Double precision
CvtFromMm( x Double precision ) : Double precision
meters / millimeters
International Nautical Mile CvtToKmi( x Double precision ) : Double precision
CvtFromKmi( x Double precision ) : Double precision
meters / international nautical miles
International Inch CvtToIn( x Double precision ) : Double precision
CvtFromIn( x Double precision ) : Double precision
meters / international inches
International Foot CvtToFt( x Double precision ) : Double precision
CvtFromFt( x Double precision ) : Double precision
meters / international feet
International Yard CvtToYd( x Double precision ) : Double precision
CvtFromYd( x Double precision ) : Double precision
meters / international yards
International Statute Mile CvtToMi( x Double precision ) : Double precision
CvtFromMi( x Double precision ) : Double precision
meters / international statute miles
International Fathom CvtToFath( x Double precision ) : Double precision
CvtFromFath( x Double precision ) : Double precision
meters / international fathoms
International Chain CvtToCh( x Double precision ) : Double precision
CvtFromCh( x Double precision ) : Double precision
meters / international chains
International Link CvtToLink( x Double precision ) : Double precision
CvtFromLink( x Double precision ) : Double precision
meters / international links
U.S. Inch CvtToUsIn( x Double precision ) : Double precision
CvtFromUsIn( x Double precision ) : Double precision
meters / U.S. inches
U.S. Foot CvtToUsFt( x Double precision ) : Double precision
CvtFromUsFt( x Double precision ) : Double precision
meters / U.S. feet
U.S. Yard CvtToUsYd( x Double precision ) : Double precision
CvtFromUsYd( x Double precision ) : Double precision
meters / U.S. yards
U.S. Statute Mile CvtToUsMi( x Double precision ) : Double precision
CvtFromUsMi( x Double precision ) : Double precision
meters / U.S. statute miles
U.S. Chain CvtToUsCh( x Double precision ) : Double precision
CvtFromUsCh( x Double precision ) : Double precision
meters / U.S. chains
Indian Foot CvtToIndFt( x Double precision ) : Double precision
CvtFromIndFt( x Double precision ) : Double precision
meters / indian feet
Indian Yard CvtToIndYd( x Double precision ) : Double precision
CvtFromIndYd( x Double precision ) : Double precision
meters / indian yards
Indian Chain CvtToIndCh( x Double precision ) : Double precision
CvtFromIndCh( x Double precision ) : Double precision
meters / indian chains

SQL utility functions for BLOB objects

Function Syntax Summary
IsZipBlob IsZipBlob( content BLOB ) : Integer The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL or not-BLOB argument.
TRUE if this BLOB object corresponds to a valid ZIP-compressed file
IsPdfBlob IsPdfBlob( content BLOB ) : Integer The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL or not-BLOB argument.
TRUE if this BLOB object corresponds to a valid PDF document
IsGifBlob IsGifBlob( image BLOB ) : Integer The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL or not-BLOB argument.
TRUE if this BLOB object corresponds to a valid GIF image
IsPngBlob IsPngBlob( image BLOB ) : Integer The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL or not-BLOB argument.
TRUE if this BLOB object corresponds to a valid PNG image
IsTiffBlob IsTiffBlob( image BLOB ) : Integer The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL or not-BLOB argument.
TRUE if this BLOB object corresponds to a valid TIFF image
IsJpegBlob IsJpegBlob( image BLOB ) : Integer The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL or not-BLOB argument.
TRUE if this BLOB object corresponds to a valid JPEG image
IsExifBlob IsExifBlob( image BLOB ) : Integer The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL or not-BLOB argument.
TRUE if this BLOB object corresponds to a valid EXIF image
Please note: any valid EXIF image is a valid JPEG as well
IsExifGpsBlob IsExifGpsBlob( image BLOB ) : Integer The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL or not-BLOB argument.
TRUE if this BLOB object corresponds to a valid EXIF-GPS image
Please note: any valid EXIF-GPS image is a valid EXIF and JPEG as well
IsWebpBlob IsWebpBlob( image BLOB ) : Integer The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL or not-BLOB argument.
TRUE if this BLOB object corresponds to a valid WebP image
GetMimeType GetMimeType( payload BLOB ) : String The return type is Text, and could be one of: image/gif, image/png, image/jpeg, image/tiff, image/svg+xml, application/xml, application/zip, application/pdf.
NULL could be returned for an invalid argument or if no valid mime-type is detected.
BlobFromFile BlobFromFile( filepath String ) : BLOB If filepath corresponds to some valid pathname, and the corresponding file can be actually accessed in read mode, then the whole file content will be returned as a BLOB value.
Otherwise NULL will be returned.
Please note: SQLite doesn't support BLOB values bigger than SQLITE_MAX_LENGTH (usually, 1 GB).
Please note well: this SQL function open the doors to many potential security issues, and thus is always disabled by default.
Explicitly setting the environmente variable SPATIALITE_SECURITY=relaxed is absolutely required in order to effectively enable this function.
BlobToFile BlobToFile( payload BLOB , filepath String ) : Integer If payload is of the BLOB-type, and if filepath corresponds to some valid pathname (accessible in write/create mode), then the corresponding file will be created/overwritten so to contain the payload.
The return type is Integer, with a return value of 1 for success, 0 for failure.
Please note well: this SQL function open the doors to many potential security issues, and thus is always disabled by default.
Explicitly setting the environmente variable SPATIALITE_SECURITY=relaxed is absolutely required in order to effectively enable this function.
CountUnsafeTriggers CountUnsafeTriggers( ) : Integer This SQL function checks if the currently connected DB does contain any potentially malicious Trigger; carefully checking this conditions is a minimal precaution expected to be always verified before eventually activating the SPATIALITE_SECURITY=relaxed mode.
The return type is Integer (total count of suspected Triggers); 0 means that the currently connected DB should be considered absolutely safe.

SQL utility functions [non-standard] for geometric objects

Function Syntax OGC
defined
required
module
Summary
GeomFromExifGpsBlob GeomFromExifGpsBlob( image BLOB ) : Geometry base a POINT Geometry will be returned representing the GPS long/lat contained within EXIF-GPS metadata for the BLOB image
NULL will be returned if for any reason it's not possible to build such a POINT
ST_Point ST_Point( x Double precision , y Double precision ) : Geometry base simply an alias-name for MakePoint()
Please note: the SRID argument is never supported by ST_Point()
MakePoint MakePoint( x Double precision , y Double precision , [ , SRID Integer] ) : Geometry base a Geometry will be returned representing the POINT defined by [x y] coordinates
MakePointZ MakePointZ( x Double precision , y Double precision , z Double precision , [ , SRID Integer] ) : Geometry base a Geometry will be returned representing the POINT Z defined by [x y z] coordinates
MakePointM MakePointM( x Double precision , y Double precision , m Double precision , [ , SRID Integer] ) : Geometry base a Geometry will be returned representing the POINT M defined by [x y m] coordinates
MakePointZM MakePointZM( x Double precision , y Double precision , z Double precision , m Double precision [ , SRID Integer] ) : Geometry base a Geometry will be returned representing the POINT ZM defined by [x y z m] coordinates
MakeLine MakeLine( pt1 PointGeometry , pt2 PointGeometry ) : LinestringGeometry base a Linestring Geometry will be returned representing the segment connecting pt1 to pt2
NULL will be returned if any error is encountered
MakeLine MakeLine( geom PointGeometry ) : LinestringGeometry base a Linestring Geometry will be returned connecting all the input Points (accordingly to input sequence)
aggregate function
NULL will be returned if any error is encountered
MakeLine MakeLine( geom MultiPointGeometry , direction Boolean ) : LinestringGeometry base a Linestring Geometry will be returned connecting all the input Points (accordingly to input sequence); direction=FALSE implies reverse order.
Please note: similar to the previuous one, but this one is an ordinary (not aggregate) function; a MultiPoint input is always expected.
NULL will be returned if any error is encountered
MakeCircle MakeCircle( cx Double precision , cy Double precision , radius Double precision [ , SRID Integer [ , step Double precision ] ] ) : Geometry base will return a closed LINESTRING approximating the Circle defined by cx, cy and radius.
The optional argument step if specified defines how many points will be interpolated on the circumference; a point will be set every step degrees.
The implicit default setting corresponds to a point every 10 degrees.
MakeEllipse MakeEllipse( cx Double precision , cy Double precision , x_axis Double precision , y_axis Double precisin [ , SRID Integer [ , step Double precision ] ] ) : Geometry base will return a closed LINESTRING approximating the Ellipse defined by cx, cy and x_axis, y_axis.
The optional argument step if specified defines how many points will be interpolated on the ellipse; a point will be set every step degrees.
The implicit default setting corresponds to a point every 10 degrees.
MakeArc MakeArc( cx Double precision , cy Double precision , radius Double precision , start Double precision , stop Double precision [ , SRID Integer [ , step Double precision ] ] ) : Geometry base will return a LINESTRING approximating the Circular Arc defined by cx, cy and radius; the arc's extremities will be defined by start, stop angles expressed in degrees.
The optional argument step if specified defines how many points will be interpolated on the circumference; a point will be set every step degrees.
The implicit default setting corresponds to a point every 10 degrees.
MakeEllipticArc MakeEllipticArc( cx Double precision , cy Double precision , x_axis Double precision , y_axis Double precision , start Double precision , stop Double precision [ , SRID Integer [ , step Double precision ] ] ) : Geometry base will return a LINESTRING approximating the Elliptic Arc defined by cx, cy and x_axis, y_axis; the arc's extremities will be defined by start, stop angles expressed in degrees.
The optional argument step if specified defines how many points will be interpolated on the ellipse; a point will be set every step degrees.
The implicit default setting corresponds to a point every 10 degrees.
MakeCircularSector MakeCircularSector( cx Double precision , cy Double precision , radius Double precision , start Double precision , stop Double precision [ , SRID Integer [ , step Double precision ] ] ) : Geometry base will return a POLYGON approximating the Circular Sector defined by cx, cy and radius; the arc's extremities will be defined by start, stop angles expressed in degrees.
The optional argument step if specified defines how many points will be interpolated on the circumference; a point will be set every step degrees.
The implicit default setting corresponds to a point every 10 degrees.
MakeEllipticSector MakeEllipticSector( cx Double precision , cy Double precision , x_axis Double precision , y_axis Double precision , start Double precision , stop Double precision [ , SRID Integer [ , step Double precision ] ] ) : Geometry base will return a POLYGON approximating the Elliptic Sector defined by cx, cy and x_axis, y_axis; the arc's extremities will be defined by start, stop angles expressed in degrees.
The optional argument step if specified defines how many points will be interpolated on the ellipse; a point will be set every step degrees.
The implicit default setting corresponds to a point every 10 degrees.
MakeCircularStripe MakeCircularStripe( cx Double precision , cy Double precision , radius_1 Double precision , radius_2 Double precision , start Double precision , stop Double precision [ , SRID Integer [ , step Double precision ] ] ) : Geometry base will return a POLYGON approximating the Circular Stripe delimited by two arcs sharing the same Centre [cx, cy] but having different radii [radius_1, radius_2]; the arc's extremities will be defined by start, stop angles expressed in degrees.
The optional argument step if specified defines how many points will be interpolated on the circumference; a point will be set every step degrees.
The implicit default setting corresponds to a point every 10 degrees.
SquareGrid SquareGrid( geom ArealGeometry , size Double precision [ , edges_only Boolean , [ origing PointGeometry ] ] ) : Geometry
ST_SquareGrid( geom ArealGeometry , size Double precision [ , edges_only Boolean , [ origing PointGeometry ] ] ) : Geometry
GEOS-advanced return a grid of square cells (having the edge length of size) precisely covering the input Geometry.
The returned Geometry will usually be of the MultiPolygon type (a collection of Squares), but will be a MultiLinestring if the optional edges_only argument is set to TRUE
If the optional origin argument (expected to be a Point) is not specified then the (0,0) grid origin will be assumed by default.
NULL will be returned if any error is encountered.
TriangularGrid TriangularGrid( geom ArealGeometry , size Double precision [ , edges_only Boolean , [ origing PointGeometry ] ] ) : Geometry
ST_TriangularGrid( geom ArealGeometry , size Double precision [ , edges_only Boolean , [ origing PointGeometry ] ] ) : Geometry
GEOS-advanced return a grid of triangular cells (having the edge length of size) precisely covering the input Geometry.
The returned Geometry will usually be of the MultiPolygon type (a collection of Squares), but will be a MultiLinestring if the optional edges_only argument is set to TRUE
If the optional origin argument (expected to be a Point) is not specified then the (0,0) grid origin will be assumed by default.
NULL will be returned if any error is encountered.
HexagonalGrid HexagonalGrid( geom ArealGeometry , size Double precision [ , edges_only Boolean , [ origing PointGeometry ] ] ) : Geometry
ST_HexagonalGrid( geom ArealGeometry , size Double precision [ , edges_only Boolean , [ origing PointGeometry ] ] ) : Geometry
GEOS-advanced return a grid of hexagonal cells (having the edge length of size) precisely covering the input Geometry.
The returned Geometry will usually be of the MultiPolygon type (a collection of Squares), but will be a MultiLinestring if the optional edges_only argument is set to TRUE
If the optional origin argument (expected to be a Point) is not specified then the (0,0) grid origin will be assumed by default.
NULL will be returned if any error is encountered.
BuildMbr BuildMbr( x1 Double precision , y1 Double precision , x2 Double precision , y2 Double precision [ , SRID Integer] ) : Geometry base [x1 y1] and [x2 y2] are assumed to be Points identifying a line segment; then a Geometry will be returned representing the MBR for this line segment
BuildCircleMbr BuildCircleMbr( x Double precision , y Double precision , radius Double precision [ , SRID Integer] ) : Geometry base [x y] is assumed to be the center of a circle of given radius; then a Geometry will be returned representing the MBR for this circle
Extent Extent( geom Geometry ) : Geometry base return a geometric object representing the bounding box that encloses a set of input values
aggregate function
ToGARS ToGARS( geom Geometry ) : String base geom is expected to represent a POINT (longitude and latitude coordinates); the corresponding GARS area designation code will be returned.
NULL will be returned if any error is encountered.
GARSMbr GARSMbr( code String ) : Geometry base code is assumed to represent a valid GARS area designation code; a Geometry will be returned representing the MBR for the corresponding GARS area.
NULL will be returned if any error is encountered.
MbrMinX MbrMinX( geom Geometry) : Double precision
ST_MbrMinX( geom Geometry) : Double precision
ST_MinX( geom Geometry) : Double precision
base return the x-coordinate for geom MBR's leftmost side as a double precision number.
NULL will be returned if geom isn't a valid Geometry.
MbrMinY MbrMinY( geom Geometry) : Double precision
ST_MbrMinY( geom Geometry) : Double precision
ST_MinY( geom Geometry) : Double precision
base return the y-coordinate for geom MBR's lowermost side as a double precision number.
NULL will be returned if geom isn't a valid Geometry.
MbrMaxX MbrMaxX( geom Geometry) : Double precision
ST_MbrMaxX( geom Geometry) : Double precision
ST_MaxX( geom Geometry) : Double precision
base return the x-coordinate for geom MBR's rightmost side as a double precision number.
NULL will be returned if geom isn't a valid Geometry.
MbrMaxY MbrMaxY( geom Geometry) : Double precision
ST_MbrMaxY( geom Geometry) : Double precision
ST_MaxY( geom Geometry) : Double precision
base return the y-coordinate for geom MBR's uppermost side as a double precision number.
NULL will be returned if geom isn't a valid Geometry.
ST_MinZ MinZ( geom Geometry) : Double precision base return the minimum Z-coordinate value for geom as a double precision number.
NULL will be returned if geom isn't a valid Geometry or if geom has no Z dimension.
MaxZ ST_MaxZ( geom Geometry) : Double precision base return the maximum Z-coordinate value for geom as a double precision number.
NULL will be returned if geom isn't a valid Geometry or if geom has no Z dimension.
MinM ST_MinM( geom Geometry) : Double precision base return the minimum M-coordinate value for geom as a double precision number.
NULL will be returned if geom isn't a valid Geometry or if geom has no M dimension.
MaxM ST_MaxM( geom Geometry) : Double precision base return the maximum M-coordinate value for geom as a double precision number.
NULL will be returned if geom isn't a valid Geometry or if geom has no M dimension.

SQL functions for constructing a geometric object given its Well-known Text Representation

Function Syntax OGC
defined
required
module
Summary
GeomFromText GeomFromText( wkt String [ , SRID Integer] ) : Geometry
ST_GeomFromText( wkt String [ , SRID Integer] ) : Geometry
X base construct a geometric object given its Well-known text Representation
ST_WKTToSQL ST_WKTToSQL( wkt String ) : Geometry base SQL/MM compliant: simply an alias name for ST_GeomFromText
Please note: SRID=0 is always assumed.
PointFromText PointFromText( wktPoint String [ , SRID Integer] ) : Point
ST_PointFromText( wktPoint String [ , SRID Integer] ) : Point
X base construct a Point
LineFromText
LineStringFromText
LineFromText( wktLineString String [ , SRID Integer] ) : Linestring
ST_LineFromText( wktLineString String [ , SRID Integer] ) : Linestring
LineStringFromText( wktLineString String [ , SRID Integer] ) : Linestring
ST_LineStringFromText( wktLineString String [ , SRID Integer] ) : Linestring
X base construct a Linestring
PolyFromText
PolygonFromText
PolyFromText( wktPolygon String [ , SRID Integer] ) : Polygon
ST_PolyFromText( wktPolygon String [ , SRID Integer] ) : Polygon
PolygonFromText( wktPolygon String [ , SRID Integer] ) : Polygon
ST_PolygonFromText( wktPolygon String [ , SRID Integer] ) : Polygon
X base construct a Polygon
MPointFromText
MultiPointFromText
MPointFromText( wktMultiPoint String [ , SRID Integer] ) : MultiPoint
ST_MPointFromText( wktMultiPoint String [ , SRID Integer] ) : MultiPoint
MultiPointFromText( wktMultiPoint String [ , SRID Integer] ) : MultiPoint
ST_MultiPointFromText( wktMultiPoint String [ , SRID Integer] ) : MultiPoint
X base construct a MultiPoint
MLineFromText
MultiLineStringFromText
MLineFromText( wktMultiLineString String [ , SRID Integer] ) : MultiLinestring
ST_MLineFromText( wktMultiLineString String [ , SRID Integer] ) : MultiLinestring
MultiLineStringFromText( wktMultiLineString String [ , SRID Integer] ) : MultiLinestring
ST_MultiLineStringFromText( wktMultiLineString String [ , SRID Integer] ) : MultiLinestring
X base construct a MultiLinestring
MPolyFromText
MultiPolygonFromText
MPolyFromText( wktMultiPolygon String [ , SRID Integer] ) : MultiPolygon
ST_MPolyFromText( wktMultiPolygon String [ , SRID Integer] ) : MultiPolygon
MultiPolygonFromText( wktMultiPolygon String [ , SRID Integer] ) : MultiPolygon
ST_MultiPolygonFromText( wktMultiPolygon String [ , SRID Integer] ) : MultiPolygon
X base construct a MultiPolygon
GeomCollFromText
GeometryCollectionFromText
GeomCollFromText( wktGeometryCollection String [ , SRID Integer] ) : GeometryCollection
ST_GeomCollFromText( wktGeometryCollection String [ , SRID Integer] ) : GeometryCollection
GeometryCollectionFromText( wktGeometryCollection String [ , SRID Integer] ) : GeometryCollection
ST_GeometryCollectionFromText( wktGeometryCollection String [ , SRID Integer] ) : GeometryCollection
X base construct a GeometryCollection
BdPolyFromText BdPolyFromText( wktMultilinestring String [ , SRID Integer] ) : Polygon
ST_BdPolyFromText( wktMultilinestring String [ , SRID Integer] ) : Polygon
X GEOS Construct a Polygon given an arbitrary collection of closed linestrings as a MultiLineString text representation.
see also: BuildArea(), Polygonize()
BdMPolyFromText BdMPolyFromText( wktMultilinestring String [ , SRID Integer] ) : MultiPolygon
ST_BdMPolyFromText( wktMultilinestring String [ , SRID Integer] ) : MultiPolygon
X GEOS Construct a MultiPolygon given an arbitrary collection of closed linestrings as a MultiLineString text representation.
see also: BuildArea(), Polygonize()

SQL functions for constructing a geometric object given its Well-known Binary Representation

Function Syntax OGC
defined
required
module
Summary
GeomFromWKB GeomFromWKB( wkbGeometry Binary [ , SRID Integer] ) : Geometry
ST_GeomFromWKB( wkbGeometry Binary [ , SRID Integer] ) : Geometry
X base construct a geometric object given its Well-known binary Representation
ST_WKBToSQL ST_WKBToSQL( wkbGeometry Binary ) : Geometry base SQL/MM compliant: simply an alias name for ST_GeomFromWKB
Please note: SRID=0 is always assumed.
PointFromWKB PointFromWKB( wkbPoint Binary [ , SRID Integer] ) : Point
ST_PointFromWKB( wkbPoint Binary [ , SRID Integer] ) : Point
X base construct a Point
LineFromWKB
LineStringFromWKB
LineFromWKB( wkbLineString Binary [ , SRID Integer] ) : Linestring
ST_LineFromWKB( wkbLineString Binary [ , SRID Integer] ) : Linestring
LineStringFromText( wkbLineString Binary [ , SRID Integer] ) : Linestring
ST_LineStringFromText( wkbLineString Binary [ , SRID Integer] ) : Linestring
X base construct a Linestring
PolyFromWKB
PolygonFromWKB
PolyFromWKB( wkbPolygon Binary [ , SRID Integer] ) : Polygon
ST_PolyFromWKB( wkbPolygon Binary [ , SRID Integer] ) : Polygon
PolygonFromWKB( wkbPolygon Binary [ , SRID Integer] ) : Polygon
ST_PolygonFromWKB( wkbPolygon Binary [ , SRID Integer] ) : Polygon
X base construct a Polygon
MPointFromWKB
MultiPointFromWKB
MPointFromWKB( wkbMultiPoint Binary [ , SRID Integer] ) : MultiPoint
ST_MPointFromWKB( wkbMultiPoint Binary [ , SRID Integer] ) : MultiPoint
MultiPointFromWKB( wkbMultiPoint Binary [ , SRID Integer] ) : MultiPoint ST_MultiPointFromWKB( wkbMultiPoint Binary [ , SRID Integer] ) : MultiPoint
X base construct a MultiPoint
MLineFromWKB
MultiLineStringFromWKB
MLineFromWKB( wkbMultiLineString Binary [ , SRID Integer] ) : MultiLinestring
ST_MLineFromWKB( wkbMultiLineString Binary [ , SRID Integer] ) : MultiLinestring
MultiLineStringFromWKB( wkbMultiLineString Binary [ , SRID Integer] ) : MultiLinestring
ST_MultiLineStringFromWKB( wkbMultiLineString Binary [ , SRID Integer] ) : MultiLinestring
X base construct a MultiLinestring
MPolyFromWKB
MultiPolygonFromWKB
MPolyFromWKB( wkbMultiPolygon Binary [ , SRID Integer] ) : MultiPolygon
ST_MPolyFromWKB( wkbMultiPolygon Binary [ , SRID Integer] ) : MultiPolygon
MultiPolygonFromWKB( wkbMultiPolygon Binary [ , SRID Integer] ) : MultiPolygon
ST_MultiPolygonFromWKB( wkbMultiPolygon Binary [ , SRID Integer] ) : MultiPolygon
X base construct a MultiPolygon
GeomCollFromWKB
GeometryCollectionFromWKB
GeomCollFromWKB( wkbGeometryCollection Binary [ , SRID Integer] ) : GeometryCollection
ST_GeomCollFromWKB( wkbGeometryCollection Binary [ , SRID Integer] ) : GeometryCollection
GeometryCollectionFromWKB( wkbGeometryCollection Binary [ , SRID Integer] ) : GeometryCollection
ST_GeometryCollectionFromWKB( wkbGeometryCollection Binary [ , SRID Integer] ) : GeometryCollection
X base construct a GeometryCollection
BdPolyFromWKB BdPolyFromWKB( wkbMultilinestring Binary [ , SRID Integer] ) : Polygon
ST_BdPolyFromWKB( wkbMultilinestring Binary [ , SRID Integer] ) : Polygon
X GEOS Construct a Polygon given an arbitrary collection of closed linestrings as a MultiLineString binary representation.
see also: BuildArea(), Polygonize()
BdMPolyFromWKB BdMPolyFromWKB( wkbMultilinestring Binary [ , SRID Integer] ) : MultiPolygon
ST_BdMPolyFromWKB( wkbMultilinestring Binary [ , SRID Integer] ) : MultiPolygon
X GEOS Construct a MultiPolygon given an arbitrary collection of closed linestrings as a MultiLineString binary representation.
see also: BuildArea(), Polygonize()

SQL functions for obtaining the Well-known Text / Well-known Binary Representation of a geometric object

Function Syntax OGC
defined
required
module
Summary
AsText AsText( geom Geometry ) : String
ST_AsText( geom Geometry ) : String
X base returns the Well-known Text representation
AsWKT AsWKT( geom Geometry [ , precision Integer ] ) : String base returns the Well-known Text representation
always return strictly conformant 2D WKT
AsBinary AsBinary( geom Geometry ) : Binary
ST_AsBinary( geom Geometry ) : Binary
X base returns the Well-known Binary representation

SQL functions supporting exotic geometric formats

Function Syntax OGC
defined
required
module
Summary
AsSVG AsSVG( geom Geometry [ , relative Integer [ , precision Integer ] ] ) : String base returns the SVG [Scalable Vector Graphics] representation
AsKml AsKml( geom Geometry [ , precision Integer ] ) : String
AsKml( name String, description String, geom Geometry [ , precision Integer ] ) : String
PROJ.4 returns the KML [Keyhole Markup Language] representation
The first form will simply generate the geometry element: the second form will generate a complete KML entity
GeomFromKml GeomFromKml( KmlGeometry String ) : Geometry base construct a geometric object given its KML Representation
AsGml AsGml( geom Geometry [ , precision Integer ] ) : String
AsGml( version Integer, geom Geometry [ , precision Integer ] ) : String
base returns the GML [Geography Markup Language] representation
If version = 3 than GML 3.x is generated, otherwise the output format will be GML 2.x
GeomFromGML GeomFromGML( gmlGeometry String ) : Geometry base construct a geometric object given its GML Representation
AsGeoJSON AsGeoJSON( geom Geometry [ , precision Integer [ , options Integer ] ] ) : String base returns the GeoJSON [Geographic JavaScript Object Notation] representation
options can assume the following values:
  • 0 no options [default]
  • 1 GeoJSON BoundingBox
  • 2 GeoJSON CRS [short version]
  • 3 BoundingBox + short CRS
  • 4 GeoJSON CRS [long version]
  • 5 BoundingBox + long CRS
GeomFromGeoJSON GeomFromGeoJSON( geoJSONGeometry String ) : Geometry base construct a geometric object given its GeoJSON Representation
AsEWKB AsEWKB( geom Geometry ) : String base returns the EWKB [Extended Well Known Binary] representation (PostGIS compatibility)
GeomFromEWKB GeomFromEWKB( ewkbGeometry String ) : Geometry base construct a geometric object given its EWKB Representation
AsEWKT AsEWKT( geom Geometry ) : String base returns the EWKT [Extended Well Known Text] representation (PostGIS compatibility)
GeomFromEWKT GeomFromEWKT( ewktGeometry String ) : Geometry base construct a geometric object given its EWKT Representation
AsFGF AsFGF( geom Geometry ) : Binary base returns the FGF [FDO Geometry Binary Format] representation
GeomFromFGF GeomFromFGF( fgfGeometry Binary [ , SRID Integer] ) : Geometry base construct a geometric object given its FGF binary Representation
ExportDXF ExportDXF( out_dir String , filename String , sql_query String , layer_col_name String , geom_col_name String , label_col_name String , text_height_col_name String , text_rotation_col_name String , geom_filter Geometry [ , precision Integer ] ) : Integer Will export a whole DXF file.
  • The output file path is controlled by out_dir and filename.
  • sql_query is a complete SQL Statement returning the dataset to be exported.
  • layer_col_name, geom_col_name, label_col_name, text_height_col_name and text_rotation_col_name must specify the corresponding column names within the resultset returned by sql_query (label_col_name, text_height_col_name and text_rotation_col_name could be eventually NULL).
  • geom_filter acts as a spatial filter selecting which entities have to be exported (could be NULL).
  • the optional argument precision specificies how many decimal digits are required for coordinate values: if not specified the default is 3.
Will return 0 (i.e. FALSE) on failure, any other value (i.e. TRUE) on success.
Please note well: this SQL function open the doors to many potential security issues, and thus is always disabled by default.
Explicitly setting the environmente variable SPATIALITE_SECURITY=relaxed is absolutely required in order to effectively enable this function.

SQL functions on type Geometry

Function Syntax OGC
defined
required
module
Summary
Dimension Dimension( geom Geometry ) : Integer
ST_Dimension( geom Geometry ) : Integer
X base returns the dimension of the geometric object, which is less than or equal to the dimension of the coordinate space
CoordDimension CoordDimension( geom Geometry ) : String base returns the dimension model used by the geometric object as:
'XY', 'XYZ', 'XYM' or 'XYZM'
NDims ST_NDims( geom Geometry ) : Integer base returns the number of dimensions used by the geometric object as:
2, 3 or 4
Is3D ST_Is3D( geom Geometry ) : Integer base Checks if geom has the Z dimension.
The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and -1 for UNKNOWN corresponding to a function invocation on invalid arguments.
IsMeasured ST_IsMeasured( geom Geometry ) : Integer base Check if geom has the M dimension.
The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and -1 for UNKNOWN corresponding to a function invocation on invalid arguments.
GeometryType GeometryType( geom Geometry ) : String
ST_GeometryType( geom Geometry ) : String
X base returns the name of the instantiable subtype of Geometry of which this geometric object is a member, as a string
SRID SRID( geom Geometry ) : Integer
ST_SRID( geom Geometry ) : Integer
X base returns the Spatial Reference System ID for this geometric object
SetSRID SetSRID( geom Geometry , SRID Integer ) : Integer base directly sets the Spatial Reference System ID for this geometric object [no reprojection is applied]
The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments.
IsEmpty IsEmpty( geom Geometry ) : Integer
ST_IsEmpty( geom Geometry ) : Integer
X base The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments.
TRUE if this geometric object corresponds to the empty set
IsSimple IsSimple( geom Geometry ) : Integer
ST_IsSimple( geom Geometry ) : Integer
X GEOS The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments.
TRUE if this geometric object is simple, as defined in the Geometry Model
IsValid IsValid( geom Geometry ) : Integer
ST_IsValid( geom Geometry ) : Integer
GEOS The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments.
TRUE if this geometric object does not contains any topological error
Boundary Boundary( geom Geometry ) : Geometry
ST_Boundary( geom Geometry ) : Geometry
X GEOS returns a geometric object that is the combinatorial boundary of g as defined in the Geometry Model
Envelope Envelope( geom Geometry ) : Geometry
ST_Envelope( geom Geometry ) : Geometry
X base returns the rectangle bounding g as a Polygon. The Polygon is defined by the corner points of the bounding box [(MINX, MINY),(MAXX, MINY), (MAXX, MAXY), (MINX, MAXY), (MINX, MINY)].
Expand ST_Expand( geom Geometry , amount Double precision ) : Geometry base returns the rectangle bounding g as a Polygon. The bounding rectangle is expanded in all directions by an amount specified by the second argument.
NPoints ST_NPoints( geom Geometry ) : Integer base return the total number of Points (this including any Linestring/Polygon vertex).
NRings ST_NRings( geom Geometry ) : Integer base return the total number of Rings (this including both Exterior and Interior Rings).
Reverse ST_Reverse( geom Geometry ) : Geometry base returns a new Geometry [if a valid Geometry was supplied], or NULL in any other case.
Any Linestring or Ring will be in reverse order (first vertex will be the last one, and last vertex will be the first one).
ForceLHR ST_ForceLHR( geom Geometry ) : Geometry base returns a new Geometry [if a valid Geometry was supplied], or NULL in any other case.
Any Polygon Ring will be oriented accordingly to Left Hand Rule (Exterior Ring will be clockwise oriented, and Interior Rings will be counter-clockwise oriented).

SQL functions attempting to repair malformed Geometries

Function Syntax OGC
defined
required
module
Summary
SanitizeGeometry SanitizeGeometry( geom Geometry ) : geom Geometry base returns a (possibly) sanitized Geometry [if a valid Geometry was supplied], or NULL in any other case
Please note: current implementations only affects:
  • repeated vertices suppression
  • Ring's closure enforcement

SQL Geometry-compression functions

Function Syntax OGC
defined
required
module
Summary
CompressGeometry CompressGeometry( geom Geometry ) : geom Geometry base returns a compressed Geometry [if a valid Geometry was supplied], or NULL in any other case
Please note: geometry compression only affects LINESTRINGs and POLYGONs, not POINTs
UncompressGeometry UncompressGeometry( geom Geometry ) : geom Geometry base returns an uncompressed Geometry [if a valid Geometry was supplied], or NULL in any other case

SQL Geometry-type casting functions

Function Syntax OGC
defined
required
module
Summary
CastToPoint CastToPoint( geom Geometry ) : geom Geometry base returns a POINT-type Geometry [if type-conversion is possible], or NULL in any other case
can be applied to any Geometry containing only a single POINT and no other elementary sub-geometry
CastToLinestring CastToLinestring( geom Geometry ) : geom Geometry base returns a LINESTRING-type Geometry [if type-conversion is possible], or NULL in any other case
can be applied to any Geometry containing only a single LINESTRING and no other elementary sub-geometry
CastToPolygon CastToPolygon( geom Geometry ) : geom Geometry base returns a POLYGON-type Geometry [if type-conversion is possible], or NULL in any other case
can be applied to any Geometry containing only a single POLYGON and no other elementary sub-geometry
CastToMultiPoint CastToMultiPoint( geom Geometry ) : geom Geometry base returns a MULTIPOINT-type Geometry [if type-conversion is possible], or NULL in any other case
can be applied to any Geometry containing one or more POINT(s) and no other elementary sub-geometry
CastToMultiLinestring CastToMultiLinestring( geom Geometry ) : geom Geometry base returns a MULTILINESTRING-type Geometry [if type-conversion is possible], or NULL in any other case
can be applied to any Geometry containing one or more LINESTRING(s) and no other elementary sub-geometry
CastToMultiPolygon CastToMultiPolygon( geom Geometry ) : geom Geometry base returns a MULTIPOLYGON-type Geometry [if type-conversion is possible], or NULL in any other case
can be applied to any Geometry containing one or more POLYGON(s) and no other elementary sub-geometry
CastToGeometyCollection CastToGeometryCollection( geom Geometry ) : geom Geometry base returns a GEOMETRYCOLLECTION-type Geometry [if type-conversion is possible], or NULL in any other case
can be applied to any valid Geometry
CastToMulti CastToMulti( geom Geometry ) : geom Geometry
ST_Multi( geom Geometry ) : geom Geometry
base returns a MULTIPOINT-, MULTILINESTRING- or MULTIPOLYGON-type Geometry [if type-conversion is possible], or NULL in any other case
  • a MULTIPOINT will be returned for a Geometry containing one or more POINT(s) and no other elementary sub-geometry
  • a MULTILINESTRING will be returned for a Geometry containing one or more LINESTRING(s) and no other elementary sub-geometry
  • a MULTIPOLYGON will be returned for a Geometry containing one or more POLYGON(s) and no other elementary sub-geometry
  • a GEOMETRYCOLLECTION will be returned for any other valid Geometry
CastToSingle CastToSingle( geom Geometry ) : geom Geometry base returns a POINT-, LINESTRING- or POLYGON-type Geometry [if type-conversion is possible], or NULL in any other case
  • a POINT will be returned for a Geometry containing only a single POINT and no other elementary sub-geometry
  • a LINESTRING will be returned for a Geometry containing only a single LINESTRING and no other elementary sub-geometry
  • a POLYGON will be returned for a Geometry containing only a single POLYGON and no other elementary sub-geometry

SQL Space-dimensions casting functions

Function Syntax OGC
defined
required
module
Summary
CastToXY CastToXY( geom Geometry ) : geom Geometry base returns a Geometry using the [XY] space dimension
CastToXYZ CastToXYZ( geom Geometry ) : geom Geometry base returns a Geometry using the [XYZ] space dimension
CastToXYM CastToXYM( geom Geometry ) : geom Geometry base returns a Geometry using the [XYZM] space dimension
CastToXYZM CastToXYZM( geom Geometry ) : geom Geometry base returns a Geometry using the [XYZM] space dimension

SQL functions on type Point

Function Syntax OGC
defined
required
module
Summary
X X( pt Point ) : Double precision
ST_X( pt Point ) : Double precision
X base return the x-coordinate of Point p as a double precision number
Y Y( pt Point ) : Double precision
ST_Y( pt Point ) : Double precision
X base return the y-coordinate of Point p as a double precision number
Z Z( pt Point ) : Double precision
ST_Z( pt Point ) : Double precision
X base return the z-coordinate of Point p as a double precision number
or NULL is no z-coordinate is available
M M( pt Point ) : Double precision
ST_M( pt Point ) : Double precision
X base return the m-coordinate of Point p as a double precision number
or NULL is no m-coordinate is available

SQL functions on type Curve [Linestring or Ring]

Function Syntax OGC
defined
required
module
Summary
StartPoint StartPoint( c Curve ) : Point
ST_StartPoint( c Curve ) : Point
X base return a Point containing the first Point of c
EndPoint EndPoint( c Curve ) : Point
ST_EndPoint( c Curve ) : Point
X base return a Point containing the last Point of c
Length GLength( c Curve ) : Double precision
OpenGis name for this function is Length(), but it conflicts with an SQLite reserved keyword

ST_Length( c Curve ) : Double precision
X GEOS return the length of c
Starting since v.4.0.0 this function will simply consider Linestrings and MultiLinestrings, ignoring any Polygon or MultiPolygon
GLength( c Curve , use_ellipsoid Boolean ) : Double precision
ST_Length( c Curve , use_ellipsoid Boolean ) : Double precision
X GEOS-advanced return the length of c (measured in meters).
If the use_ellipsoid argument is set to TRUE the precise (but slower) length will be computed on the Ellipsoid, otherwise will be computed on the Great Cicle (approximative, but faster).
This function only supports Long/Lat coordinates, and will return NULL for any planar CRS
Starting since v.4.0.0 this function will simply consider Linestrings and MultiLinestrings, ignoring any Polygon or MultiPolygon
Perimeter Perimeter( s Surface ) : Double precision ST_Perimeter( s Surface ) : Double precision X GEOS return the perimeter of s
Starting since v.4.0.0 this function will simply consider Polygons and MultiPolygons, ignoring any Linestring or MultiLinestring
Perimeter( s Surface , use_ellipsoid Boolean ) : Double precision
ST_Perimeter( s Surface , use_ellipsoid Boolean ) : Double precision
X GEOS-advanced return the perimeter of s (measured in meters).
If the use_ellipsoid argument is set to TRUE the precise (but slower) perimeter will be computed on the Ellipsoid, otherwise will be computed on the Great Cicle (approximative, but faster).
This function only supports Long/Lat coordinates, and will return NULL for any planar CRS
Starting since v.4.0.0 this function will simply consider Polygons and MultiPolygons, ignoring any Linestring or MultiLinestring
Geodesic Length GeodesicLength( c Curve ) : Double precision base If [and only if] the SRID associated with c is a geographic one [i.e. one using longitude and latitude angles], then returns the length of c measured on the Ellipsoid [such length is always expressed in meters]
Otherwise NULL will be returned
Please note: measuring lengths on the Ellipsoid requires complex geodesic calculations, and thus is an intrinsically slow and time consuming task
Great Circle Length GreatCircleLength( c Curve ) : Double precision base If [and only if] the SRID associated with c is a geographic one [i.e. one using longitude and latitude angles], then returns the length of c measured on the Great Circle [such length is always expressed in meters]
Otherwise NULL will be returned
Please note: lengths measured on the Great Circle are less precise than lengths measured on the Ellipsoid using complex geodesic calculations; but they are by far quickest to compute
IsClosed IsClosed( c Curve ) : Integer
ST_IsClosed( c Curve ) : Integer
X GEOS The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments;
return TRUE if c is closed, i.e., if StartPoint(c) = EndPoint(c)
IsRing IsRing( c Curve ) : Integer
ST_IsRing( c Curve ) : Integer
X GEOS The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments.
return TRUE if c is a ring, i.e., if c is closed and simple. A simple Curve does not pass through the same Point more than once.
PointOnSurface PointOnSurface( s Surface/Curve ) : Point
ST_PointOnSurface( s Surface/Curve ) : Point
X GEOS return a Point guaranteed to lie on the Surface (or Curve)
Simplify Simplify( c Curve , tolerance Double precision ) : Curve
ST_Simplify( c Curve , tolerance Double precision ) : Curve
ST_Generalize( c Curve , tolerance Double precision ) : Curve
GEOS return a geometric object representing a simplified version of c applying the Douglas-Peukert algorithm with given tolerance
SimplifyPreserveTopology SimplifyPreserveTopology( c Curve , tolerance Double precision ) : Curve
ST_SimplifyPreserveTopology( c Curve , tolerance Double precision ) : Curve
GEOS return a geometric object representing a simplified version of c applying the Douglas-Peukert algorithm with given tolerance and respecting topology

SQL functions on type LineString

Function Syntax OGC
defined
required
module
Summary
NumPoints NumPoints( line LineString ) : Integer
ST_NumPoints( line LineString ) : Integer
X base return the number of Points in the LineString
PointN PointN( line LineString , n Integer ) : Point
ST_PointN( line LineString , n Integer ) : Point
X base return a Point containing Point n of line
AddPoint AddPoint( line LineString , point Point [ , position Integer ] ) : Linestring
ST_AddPoint( line LineString , point Point [ , position Integer ] ) : Linestring
base returns a new Linestring by adding a new Point into the input Linestring immediately before position (zero-based index).
A negative position (default) means appending the new Point to the end of the input Linestring.
NULL will be returned if any error is encountered.
SetPoint SetPoint( line LineString , position Integer , point Point ) : Linestring
ST_SetPoint( line LineString , position Integer , point Point ) : Linestring
base returns a new Linestring by replacing the Point at position (zero-based index).
NULL will be returned if any error is encountered.
RemovePoint RemovePoint( line LineString , position Integer ) : Linestring
ST_RemovePoint( line LineString , position Integer ) : Linestring
base returns a new Linestring by removing the Point at position (zero-based index).
NULL will be returned if any error is encountered.

SQL functions on type Surface [Polygon or Ring]

Function Syntax OGC
defined
required
module
Summary
Centroid Centroid( s Surface ) : Point
ST_Centroid( s Surface ) : Point
X GEOS return the centroid of s, which may lie outside s
Area Area( s Surface ) : Double precision
ST_Area( s Surface ) : Double precision
X GEOS return the area of s
Area( s Surface , use_ellipsoid Boolean ) : Double precision
ST_Area( s Surface , use_ellipsoid Boolean ) : Double precision
X LWGEOM return the area of s (measured in meters).
If the use_ellipsoid argument is set to TRUE the precise (but slower) area will be computed on the Ellipsoid, otherwise will be computed on the Sphere (approximative, but faster).
This function only supports Long/Lat coordinates, and will return NULL for any planar CRS

SQL functions on type Polygon

Function Syntax OGC
defined
required module Summary
ExteriorRing ExteriorRing( polyg Polygon ) : LineString
ST_ExteriorRing( polyg Polygon ) : LineString
X base return the exteriorRing of p
NumInteriorRing
NumInteriorRings
NumInteriorRing( polyg Polygon ) : Integer
NumInteriorRings( polyg Polygon ) : Integer
ST_NumInteriorRing( polyg Polygon ) : Integer
X base return the number of interiorRings
InteriorRingN InteriorRingN( polyg Polygon , n Integer ) : LineString
ST_InteriorRingN( polyg Polygon , n Integer ) : LineString
X base return the nth interiorRing. The order of Rings is not geometrically significant.

SQL functions on type GeomCollection

Function Syntax OGC
defined
required
module
Summary
NumGeometries NumGeometries( geom GeomCollection ) : Integer
ST_NumGeometries( geom GeomCollection ) : Integer
X base return the number of interiorRings
GeometryN GeometryN( geom GeomCollection , n Integer ) : Geometry
ST_GeometryN( geom GeomCollection , n Integer ) : Geometry
X base return the nth geometric object in the collection. The order of the elements in the collection is not geometrically significant.

SQL functions that test approximate spatial relationships via MBRs

Function Syntax OGC
defined
required
module
Summary
MbrEqual MbrEqual( geom1 Geometry , geom2 Geometry ) : Integer base The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments.
TRUE if g1 and g2 have equal MBRs
MbrDisjoint MbrDisjoint( geom1 Geometry , geom2 Geometry ) : Integer base The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments.
TRUE if the intersection of g1 and g2 MBRs is the empty set
MbrTouches MbrTouches( geom1 Geometry , geom2 Geometry ) : Integer base The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments.
TRUE if the only Points in common between g1 and g2 MBRs lie in the union of the boundaries of g1 and g2
MbrWithin MbrWithin( geom1 Geometry , geom2 Geometry ) : Integer base The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments.
TRUE if g1 MBR is completely contained in g2 MBR
MbrOverlaps MbrOverlaps( geom1 Geometry , geom2 Geometry ) : Integer base The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments.
TRUE if the intersection of g1 and g2 MBRs results in a value of the same dimension as g1 and g2 that is different from both g1 and g2
MbrIntersects MbrIntersects( geom1 Geometry , geom2 Geometry ) : Integer base The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments;
convenience predicate: TRUE if the intersection of g1 and g2 MBRs is not empty
EnvelopesIntersects ST_EnvIntersects( geom1 Geometry , geom2 Geometry ) : Integer
ST_EnvelopesIntersects( geom1 Geometry , geom2 Geometry ) : Integer
ST_EnvIntersects( geom1 Geometry , x1 Double precision , y1 Double precision , x2 Double precision , y2 Double precision ) : Integer
ST_EnvelopesIntersects( geom1 Geometry , x1 Double precision , y1 Double precision , x2 Double precision , y2 Double precision ) : Integer
base The first form simply is an alias name for MbrIntersects; the other form allows to define the second MBR by two extreme points [x1, y1] and [x2, y2].
The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on invalid arguments;
convenience predicate: TRUE if the intersection of both MBRs is not empty
MbrContains MbrContains( geom1 Geometry , geom2 Geometry ) : Integer base The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments;
convenience predicate: TRUE if g2 MBR is completely contained in g1 MBR

SQL functions that test spatial relationships

Function Syntax OGC
defined
required
module
Summary
Equals Equals( geom1 Geometry , geom2 Geometry ) : Integer
ST_Equals( geom1 Geometry , geom2 Geometry ) : Integer
X GEOS The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments.
TRUE if g1 and g2 are equal
Disjoint Disjoint( geom1 Geometry , geom2 Geometry ) : Integer
ST_Disjoint( geom1 Geometry , geom2 Geometry ) : Integer
X GEOS The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments.
TRUE if the intersection of g1 and g2 is the empty set
Touches Touches( geom1 Geometry , geom2 Geometry ) : Integer
ST_Touches( geom1 Geometry , geom2 Geometry ) : Integer
X GEOS The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments.
TRUE if the only Points in common between g1 and g2 lie in the union of the boundaries of g1 and g2
Within Within( geom1 Geometry , geom2 Geometry ) : Integer
ST_Within( geom1 Geometry , geom2 Geometry ) : Integer
X GEOS The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments.
TRUE if g1 is completely contained in g2
Overlaps Overlaps( geom1 Geometry , geom2 Geometry ) : Integer
ST_Overlaps( geom1 Geometry , geom2 Geometry ) : Integer
X GEOS The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments.
TRUE if the intersection of g1 and g2 results in a value of the same dimension as g1 and g2 that is different from both g1 and g2
Crosses Crosses( geom1 Geometry , geom2 Geometry ) : Integer
ST_Crosses( geom1 Geometry , geom2 Geometry ) : Integer
X GEOS The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments.
TRUE if the intersection of g1 and g2 results in a value whose dimension is less than the maximum dimension of g1 and g2 and the intersection value includes Points interior to both g1 and g2, and the intersection value is not equal to either g1 or g2
Intersects Intersects( geom1 Geometry , geom2 Geometry ) : Integer
ST_Intersects( geom1 Geometry , geom2 Geometry ) : Integer
X GEOS The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments;
convenience predicate: TRUE if the intersection of g1 and g2 is not empty
Contains Contains( geom1 Geometry , geom2 Geometry ) : Integer
ST_Contains( geom1 Geometry , geom2 Geometry ) : Integer
X GEOS The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments;
convenience predicate: TRUE if g2 is completely contained in g1
Covers Covers( geom1 Geometry , geom2 Geometry ) : Integer
ST_Covers( geom1 Geometry , geom2 Geometry ) : Integer
GEOS-advanced The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments;
convenience predicate: TRUE if g1 completely covers g2
CoveredBy CoveredBy( geom1 Geometry , geom2 Geometry ) : Integer
ST_CoveredBy( geom1 Geometry , geom2 Geometry ) : Integer
GEOS-advanced The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments;
convenience predicate: TRUE if g1 is completely covered by g2
Relate Relate( geom1 Geometry , geom2 Geometry , patternMatrix String ) : Integer
ST_Relate( geom1 Geometry , geom2 Geometry , patternMatrix String ) : Integer
X GEOS The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments;
returns TRUE if the spatial relationship specified by the patternMatrix holds

SQL functions for distance relationships

Function Syntax OGC
defined
required
module
Summary
Distance Distance( geom1 Geometry , geom2 Geometry ) : Double precision
ST_Distance( geom1 Geometry , geom2 Geometry ) : Double precision
X GEOS return the distance between geom1 and geom2 (always measured in CRS units).
Distance( geom1 Geometry , geom2 Geometry , use_ellipsoid Boolean ) : Double precision
ST_Distance( geom1 Geometry , geom2 Geometry , use_ellipsoid Boolean ) : Double precision
X GEOS-advanced return the distance between geom1 and geom2 (measured in meters).
If the use_ellipsoid argument is set to TRUE the precise (but slower) distance will be computed on the Ellipsoid, otherwise will be computed on the Great Cicle (approximative, but faster).
This function only supports Long/Lat coordinates, and will return NULL for any planar CRS
PtDistWithin PtDistWithin( geom1 Geometry , geom2 Geometry, range Double precision [, use_spheroid Integer ] ) : Integer PROJ.4 return TRUE (1) if the distance between geom1 and geom2 is within the given range.
Usually distances are expressed in the length unit corresponding to the geoms own SRID: but if both geoms are simple POINTs and their SRID is 4326 (i.e. WGS84), then distances are expressed in meters.
In this later case the optional arg use_spheroid can be used to select the distance algorithm to be used: is use_spheroid = 1 the slowest but most accurate geodesic distance will be evaluated: in any other case the simplest great circle distance will be used instead

SQL functions that implement spatial operators

Function Syntax OGC
defined
required
module
Summary
Intersection Intersection( geom1 Geometry , geom2 Geometry ) : Geometry
ST_Intersection( geom1 Geometry , geom2 Geometry ) : Geometry
X GEOS return a geometric object that is the intersection of geometric objects geom1 and geom2
Difference Difference( geom1 Geometry , geom2 Geometry ) : Geometry
ST_Difference( geom1 Geometry , geom2 Geometry ) : Geometry
X GEOS return a geometric object that is the closure of the set difference of geom1 and geom2
GUnion GUnion( geom1 Geometry , geom2 Geometry ) : Geometry
OpenGis name for this function is Union(), but it conflicts with an SQLite reserved keyword

ST_Union( geom1 Geometry , geom2 Geometry ) : Geometry
X GEOS return a geometric object that is the set union of geom1 and geom2
GUnion GUnion( geom Geometry ) : Geometry
ST_Union( geom Geometry ) : Geometry
X GEOS return a geometric object that is the set union of input values aggregate function
SymDifference SymDifference( geom1 Geometry , geom2 Geometry ) : Geometry
ST_SymDifference( geom1 Geometry , geom2 Geometry ) : Geometry
X GEOS return a geometric object that is the closure of the set symmetric difference of geom1 and geom2 (logical XOR of space)
Buffer Buffer( geom Geometry , dist Double precision ) : Geometry
ST_Buffer( geom Geometry , dist Double precision ) : Geometry
X GEOS return a geometric object defined by buffering a distance d around geom, where dist is in the distance units for the Spatial Reference of geom
ConvexHull ConvexHull( geom Geometry ) : Geometry
ST_ConvexHull( geom Geometry ) : Geometry
X GEOS return a geometric object that is the convex hull of geom

SQL functions that implement spatial operators
[GEOS advanced features]

HausdorffDistance HausdorffDistance( geom1 Geometry , geom2 Geometry ) : Double precision
ST_HausdorffDistance( geom1 Geometry , geom2 Geometry ) : Double precision
X GEOS-advanced return the Hausdorff distance between geom1 and geom2
learn more
OffestCurve OffsetCurve( geom Curve , radius Double precision , left_or_right Integer ) : Curve
ST_OffsetCurve( geom Curve , radius Double precision , left_or_right Integer ) : Curve
GEOS-advanced return a geometric object representing the corresponding left- (or right-sided) offset curve
NULL is returned whenever is not possible deriving an offset curve from the original geometry
[a single not-closed LINESTRING is expected as input]
SingleSidedBuffer SingleSidedBuffer( geom Curve , radius Double precision , left_or_right Integer ) : Curve
ST_SingleSidedBuffer( geom Curve , radius Double precision , left_or_right Integer ) : Curve
GEOS-advanced return a geometric object representing the corresponding left- (or right-sided) single-sided buffer
NULL is returned whenever is not possible deriving a single-sided buffer from the original geometry
[a single not-closed LINESTRING is expected as input]
SharedPaths SharedPaths( geom1 Geometry , geom2 Geomety ) : Geometry
ST_SharedPaths( geom1 Geometry , geom2 Geomety ) : Geometry
GEOS-advanced return a geometric object (of the MULTILINESTRING type) representing any common lines shared by both geometries
NULL is returned is no common line exists
Line_Interpolate_Point Line_Interpolate_Point( line Curve , fraction Double precision ) : Point
ST_Line_Interpolate_Point( line Curve , fraction Double precision ) : Point
GEOS-advanced return a point interpolated along a line.
Second argument (between 0.0 and 1.0) representing fraction of total length of linestring the point has to be located.
NULL is returned for invalid arguments
Line_Interpolate_Equidistant_Points Line_Interpolate_Equidistant_Points( line Curve , distance Double precision) : MultiPoint
ST_Line_Interpolate_Equidistant_Points( line Curve , distance Double precision ) : MultiPoint
GEOS-advanced return a set of equidistant points interpolated along a line; the returned geometry always corresponds to a MULTIPOINT supporting the M coordinate (representing the progressive distance for each interpolated Point).
Second argument represents the regular distance between interpolated points.
NULL is returned for invalid arguments
Line_Locate_Point Line_Locate_Point( line Curve , point Point ) : Double precision
ST_Line_Locate_Point( line Curve , point Point ) : Double precision
GEOS-advanced return a number (between 0.0 and 1.0) representing the location of the closest point on LineString to the given Point, as a fraction of total 2d line length.
NULL is returned for invalid arguments
Line_Substring Line_Substring( line Curve , start_fraction Double precision , end_fraction Double precision ) : Curve
ST_Line_Substring( line Curve , start_fraction Double precision , end_fraction Double precision ) : Curve
GEOS-advanced Return a Linestring being a substring of the input one starting and ending at the given fractions of total 2d length.
Second and third arguments are expected to be in the range between 0.0 and 1.0.
NULL is returned for invalid arguments
ClosestPoint ClosesetPoint( geom1 Geometry , geom2 Geometry ) : Point
ST_ClosesetPoint( geom1 Geometry , geom2 Geometry ) : Point
GEOS-advanced Returns the Point on geom1 that is closest to geom2.
NULL is returned for invalid arguments (or if distance is ZERO)
ShortestLine ShortestLine( geom1 Geometry , geom2 Geometry ) : Curve
ST_ShortestLine( geom1 Geometry , geom2 Geometry ) : Curve
GEOS-advanced Returns the shortest line between two geometries.
NULL is returned for invalid arguments (or if distance is ZERO)
Snap Snap( geom1 Geometry , geom2 Geometry , tolerance Double precision ) : Geometry
ST_Snap( geom1 Geometry , geom2 Geometry , tolerance Double precision ) : Geometry
GEOS-advanced Returns a new Geometry representing a modified geom1, so to "snap" vertices and segments to geom2 vertices; a snap distance tolerance is used to control where snapping is performed.
NULL is returned for invalid arguments
Collect Collect( geom1 Geometry , geom2 Geometry ) : Geometry
ST_Collect( geom1 Geometry , geom2 Geometry ) : Geometry
GEOS-advanced a generic Geometry (possibly a GEOMETRYCOLLECTION) will be returned merging geom1 and geom2
NULL will be returned if any error is encountered
Collect Collect( geom Geometry ) : Geometry
ST_Collect( geom Geometry ) : Geometry
GEOS-advanced a generic Geometry (possibly a GEOMETRYCOLLECTION) will be returned merging input Geometries all together
aggregate function
NULL will be returned if any error is encountered
LineMerge LineMerge( geom Geometry ) : Geometry
ST_LineMerge( geom Geometry ) : Geometry
GEOS-advanced a Geometry (actually corresponding to a LINESTRING or MULTILINESTRING) will be returned.
The input Geometry is expected to represent a LINESTRING or a MULTILINESTRING.
The input Geometry can be an arbitrary collection of sparse line fragments: this function will then try to (possibly) reassemble them into one (or more) Linestring(s).
NULL will be returned if any error is encountered
BuildArea BuildArea( geom Geometry ) : Geometry
ST_BuildArea( geom Geometry ) : Geometry
GEOS-advanced a Geometry (actually corresponding to a POLYGON or MULTIPOLYGON) will be returned.
The input Geometry is expected to represent a LINESTRING or a MULTILINESTRING.
The input Geometry can be an arbitrary collection of sparse Linestrings: this function will then try to (possibly) reassemble them into one (or more) polygon(s).
NULL will be returned if any error is encountered
Polygonize Polygonize( geom Geometry ) : Geometry
ST_Polygonize( geom Geometry ) : Geometry
GEOS-advanced Exactly the same as ST_BuildArea, but implemented as an aggregate function.
NULL will be returned if any error is encountered
UnaryUnion UnaryUnion( geom Geometry ) : Geometry
ST_UnaryUnion( geom Geometry ) : Geometry
GEOS-advanced Exactely the same as ST_Union, but applied to a single Geometry.
(set union of elementary Geometries within a MULTI- or GEOMETRYCOLLECTION complex Geometry)
NULL will be returned if any error is encountered
DissolveSegments DissolveSegments( geom Geometry ) : Geometry
ST_DissolveSegments( geom Geometry ) : Geometry
base a Geometry (actually corresponding to a LINESTRING, MULTILINESTRING or GEOMETRYCOLLECTION) will be returned.
The input Geometry is arbitrary: any POINT will remain unaffected, but any LINESTRING or RING will be dissolved into elementary segments.
NULL will be returned if any error is encountered
DissolvePoints DissolvePoints( geom Geometry ) : Geometry
ST_DissolvePoints( geom Geometry ) : Geometry
base a Geometry (actually corresponding to a POINT or MULTIPOINT) will be returned.
The input Geometry is arbitrary: any POINT will remain unaffected, but any LINESTRING or RING will be dissolved into elementary Points corresponding to each Vertex.
NULL will be returned if any error is encountered
LinesFromRings LinesFromRings( geom Geometry ) : Geometry
ST_LinesFromRings( geom Geometry ) : Geometry
base a Geometry (actually corresponding to a LINESTRING or MULTILINESTRING) will be returned.
The input Geometry is expected to be a POLYGON or MULTIPOLYGON; any RING will then be transformed into the corresponding LINESTRING.
NULL will be returned if any error is encountered
LinesCutAtNodes LinesCutAtNodes( geom1 Geometry , geom2 Geometry ) : Geometry
ST_LinesCutAtNodess( geom1 Geometry , geom2 Geometry ) : Geometry
base a Geometry (actually corresponding to a LINESTRING or MULTILINESTRING) will be returned.
The first input Geometry is expected to be a LINESTRING or MULTILINESTRING (Lines); the second input Geometry is expected to be a POINT or MULTIPOINT (Nodes).
any Line will then be possibly split in two halves where some vertex exactly intercepts a Node.
NULL will be returned if any error is encountered
RingsCutAtNodes RingsCutAtNodes( geom Geometry ) : Geometry
ST_RingsCutAtNodes( geom Geometry ) : Geometry
base a Geometry (actually corresponding to a LINESTRING or MULTILINESTRING) will be returned.
The input Geometry is expected to be a POLYGON or MULTIPOLYGON (Rings); any self-intersection or intersection between Rings is assumed to represent a Node.
any Ring will then be possibly split in two halves where some vertex exactly intercepts a Node.
NULL will be returned if any error is encountered
CollectionExtract CollectionExtract( geom Geometry , type Integer ) : Geometry
ST_CollectionExtract( geom Geometry , type Integer ) : Geometry
base Given a GEOMETRYCOLLECTION, returns a MULTI* geometry consisting only of the specified type. Sub-geometries that are not the specified type are ignored.
  • 1 = POINT-type
  • 2 = LINESTRING-type
  • 3 = POLYGON-type
NULL will be returned if any error is encountered (or when no item of required type is found)
LocateAlongMeasure ST_Locate_Along_Measure( geom Geometry , m_value Double precision ) : Geometry
ST_LocateAlong( geom Geometry , m_value Double precision ) : Geometry
base Return a derived geometry collection value with elements that match the specified measure.
NULL will be returned if any error is encountered (or when no element corresponding to the given measure is found).
Please note: NULL will be returned if geom doesn't contain M-dimension, or if geom contains a Polygon, or if geom is a GeometryCollection.
LocateBetweenMeasures ST_Locate_Between_Measures( geom Geometry , m_start Double precision , m_end Double precision ) : Geometry
ST_LocateBetween( geom Geometry , m_start Double precision , m_end Double precision ) : Geometry
base Return a derived geometry collection value with elements that match the specified range of measures.
NULL will be returned if any error is encountered (or when no element corresponding to the given range of measures is found).
Please note: NULL will be returned if geom doesn't contain M-dimension, or if geom contains a Polygon, or if geom is a GeometryCollection.

SQL functions that implement spatial operators
[GEOS trunk features]

Function Syntax OGC
defined
required
module
Summary
DelaunayTriangulation DelaunayTriangulation( geom Geometry [ , edges_only Boolean [ , tolerance Double precision ] ] ) : Geometry
ST_DelaunayTriangulation( geom Geometry [ , edges_only Boolean [ , tolerance Double precision ] ] ) : Geometry
GEOS-trunk return a geometric object representing the Delaunay Triangulation corresponding to the input Geometry
The input Geometry could have any arbitrary type; eventually all Linestring's / Polygon's vertices will be dissolved into Points, so to implicitly always get a MultiPoint.
The returned Geometry will usually be of the MultiPolygon type (a collection of Triangles), but will be a MultiLinestring if the optional edges_only argument is set to TRUE
The optional argument tolerance is intended to normalize the input Geometry, suppressing repeated (or too close) Points.
NULL is returned on failure.
VoronojDiagram VoronojDiagram( geom Geometry [ , edges_only Boolean [ , frame_extra_size Double precision [ , tolerance Double precision ] ] ] ) : Geometry
ST_VoronojDiagram( geom Geometry [ , edges_only Boolean [ , frame_extra_size Double precision [ , tolerance Double precision ] ] ] ) : Geometry
GEOS-trunk return a geometric object representing the Voronoj Diagram corresponding to the input Geometry
The input Geometry could have any arbitrary type; eventually all Linestring's / Polygon's vertices will be dissolved into Points, so to implicitly always get a MultiPoint.
The returned Geometry will usually be of the MultiPolygon type, but will be a MultiLinestring if the optional edges_only argument is set to TRUE
The optional argument extra_frame_size allows to arbitrarily set the percent extension of the bounding frame: the default value is 5%.
The optional argument tolerance is intended to normalize the input Geometry, suppressing repeated (or too close) Points.
NULL is returned on failure.
ConcaveHull ConcaveHull( geom Geometry [ , factor Double precision [ , allow_holes Boolean [ , tolerance Double precision ] ] ] ) : Geometry
ST_ConcaveHull( geom Geometry [ , factor Double precision [ , allow_holes Boolean [ , tolerance Double precision ] ] ] ) : Geometry
GEOS-trunk return a geometric object representing the ConcaveHull corresponding to the input Geometry
The input Geometry could have any arbitrary type; eventually all Linestring's / Polygon's vertices will be dissolved into Points, so to implicitly always get a MultiPoint.
The returned Geometry will always be of the Polygon or MultiPolygon type.
The default factor applies a filtering; by declaring some lower factor you can get a more aggressive filtering effect.
By setting the optional allow_holes argument to TRUE all interior holes will be preserved.
The optional argument tolerance is intended to normalize the input Geometry, suppressing repeated (or too close) Points.
NULL is returned on failure.

SQL functions that implement spatial operators
[LWGEOM features]

Function Syntax OGC
defined
required
module
Summary
MakeValid MakeValid( geom Geometry ) : Geometry
ST_MakeValid( geom Geometry ) : Geometry
LWGEOM return a geometric object representing the repaired version of the input Geometry.
If the input Geometry was already valid, then it will be returned exactly as it was.
NULL is returned on failure.
MakeValidDiscarded MakeValidDiscarded( geom Geometry ) : Geometry
ST_MakeValidDiscarded( geom Geometry ) : Geometry
LWGEOM return a geometric object containing all elements that would be eventually discarded by ST_MakeValid() while validating the same input Geometry.
NULL is returned on failure, or if no discarded item exists.
Segmentize Segmentize( geom Geometry, dist Double precision ) : Geometry
ST_Segmentize( geom Geometry , dist Double precision ) : Geometry
LWGEOM return a new Geometry corresponding to the input Geometry; as much Linestring / Ring vertices as required will be eventually interpolated so to ensure that no segment will be longer than dist.
NULL is returned on failure.
Split Split( geom Geometry, blade Geometry ) : Geometry
ST_Split( geom Geometry , blade Geometry ) : Geometry
LWGEOM return a new Geometry collecting all items resulting by splitting the input Geometry by the blade.
NULL is returned on failure.
SplitLeft SplitLeft( geom Geometry, blade Geometry ) : Geometry
ST_SplitLeft( geom Geometry , blade Geometry ) : Geometry
LWGEOM return a new Geometry collecting all items resulting by splitting the input Geometry by the blade and falling on the left side.
All items not affected by the split operation (i.e. not intersecting the blade) will be returned into the left collection.
NULL is returned on failure.
SplitRight SplitRight( geom Geometry, blade Geometry ) : Geometry
ST_SplitRight( geom Geometry , blade Geometry ) : Geometry
LWGEOM return a new Geometry collecting all items resulting by splitting the input Geometry by the blade and falling on the right side.
NULL is returned on failure (or if the right side is empty).
Azimuth Azimuth( pt1 Geometry, pt2 Geometry ) : Double precision
ST_Azimuth( pt1 Geometry , pt2 Geometry ) : Double precision
LWGEOM return the angle (in radians) from the horizontal of the vector defined by pt1 and pt2.
Both pt1 and pt2 are expected to be simple Points.
Starting since 4.1.0 if both points supports long/lat coords the returned Azimuth will be precisely computed on the ellipsoid.
NULL is returned on failure.
On the clock: 12=0; 3=PI/2; 6=PI; 9=3PI/2
Project Project( start_point Geometry, distance Double precision, azimuth Double precision ) : Geometry
ST_Project( start_point Geometry, distance Double precision, azimuth Double precision ) : Geometry
LWGEOM return a new Point projected from a start point using a bearing and distance.
start_point is expected to be simple long/lat Point.
distance is expected to be measured in meters; azimuth (aka bearing or heading) has the same identical meaning as in ST_Azimuth().
NULL is returned on failure or on invalid arguments.
SnapToGrid SnapToGrid( geom Geometry , size Double precision ) : Geometry
SnapToGrid( geom Geometry , size_x Double precision , size_y Double precision ) : Geometry
SnapToGrid( geom Geometry , origin_x Double precision , origin_y Double precision , size_x Double precision , size_y Double precision ) : Geometry
SnapToGrid( geom Geometry , origin Geometry , size_x Double precision , size_y Double precision , size_z Double precision , size_m Double precision ) : Geometry
ST_SnapToGrid( geom Geometry , size Double precision ) : Geometry
ST_SnapToGrid( geom Geometry , size_x Double precision , size_y Double precision ) ) : Geometry
ST_SnapToGrid( geom Geometry , origin_x Double precision , origin_y Double precision , size_x Double precision , size_y Double precision ) ) : Geometry
ST_SnapToGrid( geom Geometry , origin Geometry , size_x Double precision , size_y Double precision , size_z Double precision , size_m Double precision ) : Geometry
base return a new Geometry corresponding to the input Geometry; all points and vertices will be snapped to the grid defined by its origin and size(s).
Removes all consecutive points falling on the same cell.
All collapsed geometries will be stripped from the returned Geometry.
NULL is returned on failure.
GeoHash GeoHash( geom Geometry ) : String
ST_GeoHash( geom Geometry ) : String
LWGEOM Return a GeoHash representation (geohash.org) of the geometry.
A GeoHash encodes a point into a text form that is sortable and searchable based on prefixing.
ST_GeoHash will not work with geometries that are not in geographic (lon/lat) coordinates
AsX3D AsX3D( geom Geometry ) : String
AsX3D( geom Geometry , precision Integer ) : String
AsX3D( geom Geometry , precision Integer , options Integer ) : String
AsX3D( geom Geometry , precision Integer , options Integer , refid String ) : String
ST_AsX3D( geom Geometry ) : String
ST_AsX3D( geom Geometry , precision Integer ) : String
ST_AsX3D( geom Geometry , precision Integer , options Integer ) : String
ST_AsX3D( geom Geometry , precision Integer , options Integer , refid String ) : String
LWGEOM Returns a geometry as an X3D XML formatted node element.
MaxDistance MaxDistance( geom1 Geometry , geom2 Geometry ) : Double precision
ST_MaxDistance( geom1 Geometry , geom2 Geometry ) : Double precision
LWGEOM return the max distance between geom1 and geom2
3DDistance ST_3DDistance( geom1 Geometry , geom2 Geometry ) : Double precision LWGEOM return the 3D-distance between geom1 and geom2 (Z coordinates will be considered)
3DMaxDistance ST_3DMaxDistance( geom1 Geometry , geom2 Geometry ) : Double precision LWGEOM return the max 3D-distance between geom1 and geom2 (Z coordinates will be considered)

SQL functions for coordinate transformations

Function Syntax OGC
defined
required
module
Summary
Transform Transform( geom Geometry , newSRID Integer ) : Geometry
ST_Transform( geom Geometry , newSRID Integer ) : Geometry
PROJ.4 return a geometric object obtained by reprojecting coordinates into the Reference System identified by newSRID
SridFromAuthCRS SridFromAuthCRS( auth_name String , auth_SRID Integer ) : Integer base return the internal SRID corresponding to auth_name and auth_SRID
-1 will be returned if no such CRS is defined
ShiftCoords
ShiftCoordinates
ShiftCoords( geom Geometry , shiftX Double precision , shiftY Double precision ) : Geometry
ShiftCoordinates( geom Geometry , shiftX Double precision , shiftY Double precision ) : Geometry
base return a geometric object obtained by translating coordinates according to shiftX and shiftY values
ST_Translate ST_Translate( geom Geometry , shiftX Double precision , shiftY Double precision , shiftZ Double precision ) : Geometry base return a geometric object obtained by translating coordinates according to shiftX, shiftY and shiftZ values
ST_Shift_Longitude ST_Shift_Longitude( geom Geometry ) : Geometry base return a geometric object obtained by translating any negative longitude by 360.
Only meaningful for geographic (longitude/latitude) coordinates.
Negative longitudes (-180/0) will be shifted by 360, thus allowing to represent longitudes in the 0/360 range and effectively crossing the International Date Line.
NormalizeLonLat NormalizeLonLat( geom Geometry ) : Geometry base return a geometric object obtained by normalizing any longitude in the range [-180 / +180] and any latitude in the range [-90 / + 90].
Only meaningful for geographic (longitude/latitude) coordinates.
ScaleCoords
ScaleCoordinates
ScaleCoords( geom Geometry , scaleX Double precision [ , scaleY Double precision ] ) : Geometry
ScaleCoordinates( geom Geometry , scaleX Double precision [ , scaleY Double precision ] ) : Geometry
base return a geometric object obtained by scaling coordinates according to scaleX and scaleY values
if only one scale factor is specified, then an isotropic scaling occurs [i.e. the same scale factor is applied to both axis]
otherwise an anisotropic scaling occurs [i.e. each axis is scaled according to its own scale factor]
RotateCoords
RotateCoordinates
RotateCoords( geom Geometry , angleInDegrees Double precision ) : Geometry
RotateCoordinates( geom Geometry , angleInDegrees Double precision ) : Geometry
base return a geometric object obtained by rotating coordinates according to angleInDegrees value.
Positive angle = clockwise rotation.
Negative angle = counterclockwise rotation.
ReflectCoords
ReflectCoordinates
ReflectCoords( geom Geometry , xAxis Integer , yAxis Integer ) : Geometry
ReflectCoordinates( geom Geometry , xAxis Integer , yAxis Integer ) : Geometry
base return a geometric object obtained by reflecting coordinates according to xAxis and yAxis switches
i.e. if xAxis is 0 (FALSE), then x-coordinates remains untouched; otherwise x-coordinates will be reflected
SwapCoords
SwapCoordinates
SwapCoords( geom Geometry ) : Geometry
SwapCoordinates( geom Geometry ) : Geometry
base return a geometric object obtained by swapping x- and y-coordinates

SQL functions for Spatial-MetaData and Spatial-Index handling

Function Syntax OGC
defined
required
module
Summary
InitSpatialMetaData InitSpatialMetaData( void ) : Integer
InitSpatialMetaData( transaction Integer ) : Integer
InitSpatialMetaData( mode String ) : Integer
InitSpatialMetaData( transaction Integer , mode String ) : Integer
base Creates the geometry_columns and spatial_ref_sys metadata tables
the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE
  • if the optional argument transaction is set to TRUE the whole operation will be handled as a single Transaction (faster): the default setting is transaction=FALSE (slower, but safer).
  • if the optional argument mode is not specified then any possible ESPG SRID definition will be inserted into the spatial_ref_sys table.
  • if the mode arg 'WGS84' (alias 'WGS84_ONLY') is specified, then only WGS84-related EPSG SRIDs will be inserted
  • if the mode arg 'NONE' (alias 'EMPTY') is specified, no EPSG SRID will be inserted at all
InsertEpsgSrid InsertEpsgSrid( srid Integer ) : Integer base Attempts to insert into spatial_ref_sys the EPSG definition uniquely identified by srid
[the corresponding EPSG SRID definition will be copied from the inlined dataset defined in libspatialite]
the return type is Integer, with a return value of 1 for success or 0 for failure
AddGeometryColumn AddGeometryColumn( table String , column String , srid Integer , geom_type String [ , dimension String [ , not_null Integer ] ] ) : Integer X base Creates a new geometry column updating the Spatial Metadata tables and creating any required trigger in order to enforce constraints
geom_type has to be one of the followings:
  • 'POINT', 'POINTZ', 'POINTM', 'POINTZM'
  • 'LINESTRING', 'LINESTRINGZ', 'LINESTRINGM', 'LINESTRINGZM'
  • 'POLYGON', 'POLYGONZ', 'POLYGONM', 'POLYGONZM'
  • 'MULTIPOINT', 'MULTIPOINTZ', 'MULTIPOINTM', 'MULTIPOINTZM'
  • 'MULTILINESTRING', 'MULTILINESTRINGZ', 'MULTILINESTRINGM', 'MULTILINESTRINGZM'
  • 'MULTIPOLYGON', 'MULTIPOLYGONZ', 'MULTIPOLYGONM', 'MULTIPOLYGONZM'
  • 'GEOMETRYCOLLECTION', 'GEOMETRYCOLLECTIONZ', 'GEOMETRYCOLLECTIONZM', 'GEOMETRYCOLLECTIONZM'
  • 'GEOMETRY', 'GEOMETRYZ', 'GEOMETRYM', 'GEOMETRYZM'
dimension has to be one of the followings:
  • 'XY' or 2: 2D points, identified by X and Y coordinates
  • 'XYM': 2D points, identified by X and Y coordinates. Each point stores an M-value (measure) as well
  • 'XYZ' or 3: 3D points, identified by X, Y and Z coordinates
  • 'XYZM' or 4: 3D points, identified by X, Y and Z coordinates. Each point stores an M-value (measure) as well
Please note: the dimension argument is optional; anyway, if specified, iy's expected to be consistent with the declared geom_type
the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE
the optional 6th arg [not_null] is a non-standard extension required by the peculiar SQLite arch:
  • if set to 0 [false], then the Geometry column will accept NULL values as well. This is the default behaviour
  • if set to any <> 0 value [true], then the Geometry will be defined using a NOT NULL clause
RecoverGeometryColumn RecoverGeometryColumn( table String , column String , srid Integer , geom_type String [ , dimension Integer ] ) : Integer base Validates an existing ordinary column in order to possibly transform it in a real geometry column, thus updating the Spatial Metadata tables and creating any required trigger in order to enforce constraints
the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE
DiscardGeometryColumn DiscardGeometryColumn( table String , column String ) : Integer base Removes a geometry column from Spatial MetaData tables and drops any related trigger
the column itself still continues to exist untouched as an ordinary, unconstrained column
the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE
RegisterVirtualGeometry RegisterVirtualGeometry( table String ) : Integer base Registers a VirtualShape table into Spatial MetaData tables; the VirtualShape table should be previously created by invoking CREATE VIRTUAL TABLE ... USING VirtualShape(...)
the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE
DropVirtualGeometry DropVirtualGeometry( table String ) : Integer base Removes a VirtualShape table from Spatial MetaData tables, dropping the VirtualShape table as well.
the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE
CreateSpatialIndex CreateSpatialIndex( table String , column String ) : Integer base Builds an RTree Spatial Index on a geometry column, creating any required trigger required in order to enforce full data coherency between the main table and Spatial Index
the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE
CreateMbrCache CreateMbrCache( table String , column String ) : Integer base Builds an MbrCache on a geometry column, creating any required trigger required in order to enforce full data coherency between the main table and the MbrCache
the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE
DisableSpatialIndex DisableSpatialIndex( table String , column String ) : Integer base Disables an RTree Spatial Index or MbrCache, removing any related trigger
the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE
CheckSpatialIndex CheckSpatialIndex( void ) : Integer
CheckSpatialIndex( table String , column String ) : Integer
base Checks an RTree Spatial Index for validity and consistency
  • if no arguments are passed, then any RTree defined into geometry_columns will be checked
  • otherwise only the RTree corresponding to table and column will be checked

the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE
NULL will be returned if the requested RTree doesn't exists
RecoverSpatialIndex RecoverSpatialIndex( [ no_check : Integer ] ) : Integer
RecoverSpatialIndex( table String , column String [ , no_check : Integer ] ) : Integer
base Recovers a (possibly broken) RTree Spatial Index
  • if no arguments are passed, then any RTree defined into geometry_columns will be recovered
  • otherwise only the RTree corresponding to table and column will be recovered
  • the optional argument no_check will be interpreted as follows:
    • if no_check = FALSE (default) the RTree will be checked first: and only an invalid RTree will be then actually rebuilt
    • if no_check = TRUE the RTree will be unconditionally rebuilt from scratch

the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE
NULL will be returned if the requested RTree doesn't exists
UpdateLayerStatistics UpdateLayerStatistics( [ void ) : Integer
UpdateLayerStatistics( table String [ , column String ] ) : Integer
base Updates the internal Layer Statistics [Feature Count and Total Extent]
  • if no arguments are passed, then internal statistics will be updated for any possible Geometry Column defined in the current DB
  • otherwise statistics will be updated only for Geometry Columns corresponding to the given table

the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE
GetLayerExtent GetLayerExtent( table String [ , column String [ , mode Boolean] ] ) : Geometry base Return the Envelope corresponding to the Total Extent (bounding box] of some Layer; if the Table/Layer only contains a single Geometry column passing the column name isn't strictly required.
The returned extent will be retrieved from the Statistics tables:
  • if the third argument mode is set to TRUEa PESSIMISTIC strategy will be applied, i.e. an attempt will be made in order to update the Statistics tables before returning the Envelope.
  • otherwise the returned Envelope will simply reflect the current values stored into the Statics tables as they are (OPTIMISTIC strategy, adopted by default).

NULL will be returned if any error occurs or if the required table isn't a Layer.
CreateTopologyTables CreateTopologyTables( SRID Integer , dims : String ) : Integer
CreateTopologyTables( prefix String , SRID Integer , dims : String ) : Integer
base Creates a set of Topology tables
  • SRID argument is mandatory
  • dims argument must be 'XY' or 'XYZ':
    2 or 3 are valid aliases
  • the optional argument prefix can be used to support more Topology sets on the same DB:
    if omitted a "topo_" prefix will be assumed by default

the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure)
CreateRasterCoveragesTable CreateRasterCoveragesTable( void ) : Integer base Creates the raster_coverages table required by RasterLite-2
the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure)

SQL functions supporting SLD/SE Styled Layers

Function Syntax OGC
defined
required
module
Summary
CreateStylingTables CreateStylingTables() : Integer
CreateStylingTables( relaxed Integer ) : Integer
libxml2 Creates a set of tables supporting SLD/SE Styled Layers.
  • if the optional argument relaxed is specified (any value), then a relaxed version of the validating Triggers will be installed.

the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be returned on invalid argumentes.
Please note: will implicitly invoke CreateRasterCoverages() if the raster_coverages table has not yet been created.
RegisterExternalGraphic RegisterExternalGraphic( xlink_href String , resource BLOB ) : Integer
RegisterExternalGraphic( xlink_href String , resource BLOB , title String , abstract String , file_name String ) : Integer
libxml2 Inserts (or updates) an External Graphic Resource.
  • xlink_href uniquely identifies each Resource (Primary Key).
  • resource is expected to be a BLOB containing an image/gif, image/png, image/jpeg or image/svg+xml payload.
  • the optional arguments title, abstract and file_name could be eventually specified for better human readability.

the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be returned on invalid argumentes.
RegisterVectorStyledLayer RegisterVectorStyledLayer( f_table_name String , f_geometry_column String , style BLOB ) : Integer
RegisterVectorStyledLayer( f_table_name String , f_geometry_column String , style_id Integer , style BLOB ) : Integer
libxml2 Inserts (or updates) a Vector Styled Layer definition.
  • f_table_name and f_geometry_column must identify an existing Vector Layer.
  • style is expected to be an XmlBLOB containing a valid SLD/SE Style of the Vector type.
    If CreatedStylingTables() was invoked without specifying the relaxed option this XmlBLOB is expected to have succesfully passed a formal XML Schema Validation.
  • The same Vector Layer could eventually support more than a single Style; in this case the optional argument style_id can be explicitly set in order to identify an individual Style.
    If no style_id argument is specified then a new Styled Layer will be created, and the style_id value will be automatically set so to ensure univocity.

the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be returned on invalid argumentes.
RegisterRasterStyledLayer RegisterRasterStyledLayer( coverage_name String , style BLOB ) : Integer
RegisterRasterStyledLayer( coverage_name String , style_id Integer , style BLOB ) : Integer
libxml2 Inserts (or updates) a Raster Styled Layer definition.
  • coverage_name must identify an existing Raster Layer.
  • style is expected to be an XmlBLOB containing a valid SLD/SE Style of the Raster type.
    If CreatedStylingTables() was invoked without specifying the relaxed option this XmlBLOB is expected to have succesfully passed a formal XML Schema Validation.
  • The same Raster Layer could eventually support more than a single Style; in this case the optional argument style_id can be explicitly set in order to identify an individual Style.
    If no style_id argument is specified then a new Styled Layer will be created, and the style_id value will be automatically set so to ensure univocity.

the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be returned on invalid argumentes.
RegisterStyledGroup RegisterStyledGroup( group_name String , f_table_name String , f_geometry_column String , style_id Integer [ , paint_order Integer ] ) : Integer
RegisterStyledGroup( group_name String , coverage_name String , style_id Integer [ , paint_order Integer ] ) : Integer
libxml2 Inserts (or updates) a Styled Group definition.
  • group_name must identify a Styled Group: if the Styled Group doesn't yet exists it will be implicitly created.
  • f_table_name, f_geometry_column and style_id must identify an existing Vectore Styled Layer.
  • or alternatively: coverage_name and style_id must identify an existing Raster Styled Layer.
  • the optional paint_order argument could be used to explicitly reference an already defined group item (this implying updating the previous registration)
    If paint_order is not specified or if a negative value is passed then the next available order position will be automatically assigned (this always implying inserting a new registration).
    Please note: the painting order will follow the Painter rule, i.e. a lower paint-order value will always be painted before painting any higher value.

the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be returned on invalid argumentes.
SetStyledGroupInfos SetStyledGroupInfos( group_name String , title String , abstract String ) : Integer libxml2 Inserts (or updates) the descriptive infos associated to a Styled Group.
  • group_name must identify a Styled Group: if the Styled Group doesn't yet exists it will be implicitly created.
  • title and abstract represent the descriptive infos to be set.

the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be returned on invalid argumentes.

SQL functions supporting ISO Metadata

Function Syntax OGC
defined
required
module
Summary
CreateIsoMetadataTables CreateIsoMetadataTables() : Integer
CreateIsoMetadataTables( relaxed Integer ) : Integer
libxml2 Creates a set of tables supporting ISO Metadata.
  • if the optional argument relaxed is specified (any value), then a relaxed version of the validating Triggers will be installed.

the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be returned on invalid argumentes.
RegisterIsoMetadata RegisterIsoMetadata( scope String , metadata BLOB ) : Integer
RegisterIsoMetadata( scope String , metadata BLOB , id Integer ) : Integer
RegisterIsoMetadata( scope String , metadata BLOB , fileIdentifier String ) : Integer
libxml2 Inserts (or updates) an ISO Metadata definition.
  • scope can be one of undefined, fieldSession, collectionSession, series, dataset, featureType, feature, attributeType, attribute, tile, model, catalogue, schema, taxonomy, software, service, collectionHardware, nonGeographicDataset, dimensionGroup.
  • metadata is expected to be a valid XmlBLOB storing some IsoMetadata payload.
  • the first form (two arguments only) always performs an INSERT; if one the optional arguments id or fileIdentifier an UPDATE could be eventually performed if a corresponding metadata row is already defined.

the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be returned on invalid argumentes.
GetIsoMetadataId GetIsoMetadataId( fileIdentifier String ) : Integer libxml2 Return the unique id corresponding to the ISO Metadata definition identified by fileIdentifier.
If no corresponding ISO Metadata definition exists, this function will always return ZERO; -1 will be returned for invalid arguments.

SQL functions implementing FDO/OGR compatibility

Function Syntax OGC
defined
required
module
Summary
CheckSpatialMetaData CheckSpatialMetaData( void ) : Integer base Checks the Spatial Metadata type, then returning:
  • 0 - if the geometry_columns or spatial_ref_sys table does not exists, or if their actual layout doesn't corresponds to any known implementation
  • 1 - if both tables exist, and their layout is the one previously used by SpatiaLite legacy (older versions including 3.1.0 any earlier)
  • 2 - if both tables exist, and their layout is the one used by FDO/OGR
  • 3 - if both tables exist, and their layout is the one currently used by SpatiaLite (4.0.0 or any subsequent version)
AutoFDOStart AutoFDOStart( void ) : Integer base This function will inspect the Spatial Metadata, then automatically creating/refreshing a VirtualFDO wrapper for each FDO/OGR geometry table
the return type is Integer [how many VirtualFDO tables have been created]
AutoFDOStop AutoFDOStop( void ) : Integer base This function will inspect the Spatial Metadata, then automatically destroying any VirtualFDO wrapper found
the return type is Integer [how many VirtualFDO tables have been destroyed]
InitFDOSpatialMetaData InitFDOSpatialMetaData( void ) : Integer base Creates the geometry_columns and spatial_ref_sys metadata tables
the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE
Please note: Spatial Metadata created using this function will have the FDO/OGR layout, and not the standard SpatiaLite layout
AddFDOGeometryColumn AddFDOGeometryColumn( table String , column String , srid Integer , geom_type Integer , dimension Integer, geometry_format String ) : Integer base Creates a new geometry column updating the FDO/OGR Spatial Metadata tables
geom_type has to be one of the followings:
  • 1 POINT
  • 2 LINESTRING
  • 3 POLYGON
  • 4 MULTIPOINT
  • 5 MULTILINESTRING
  • 6 MULTIPOLYGON
  • 7 GEOMETRYCOLLECTION
dimension may be 2, 3 or 4, accordingly to OGR/FDO specs
geometry_format has to be one of the followings:
  • 'WBT'
  • 'WKT'
  • 'FGF'

the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE
RecoverFDOGeometryColumn RecoverFDOGeometryColumn( table String , column String , srid Integer , geom_type String , dimension Integer, geometry_format String ) : Integer base Validates an existing ordinary column in order to possibly transform it in a real geometry column, thus updating the FDO/OGR Spatial Metadata tables
the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE
DiscardFDOGeometryColumn DiscardFDOGeometryColumn( table String , column String ) : Integer base Removes a geometry column from FDO/OGR Spatial MetaData tables
the column itself still continues to exist untouched as an ordinary column
the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE

SQL functions for MbrCache-based queries

Function Syntax OGC
defined
required
module
Summary
FilterMbrWithin FilterMbrWithin( x1 Double precision , y1 Double precision , x2 Double precision , y2 Double precision ) base Retrieves from an MbrCache any entity whose MBR falls within the rectangle identified by extreme points x1 y1 and x2 y2
FilterMbrContains FilterMbrContains( x1 Double precision , y1 Double precision , x2 Double precision , y2 Double precision ) base Retrieves from an MbrCache any entity whose MBR contains the rectangle identified by extreme points x1 y1 and x2 y2
FilterMbrIntersects FilterMbrIntersects( x1 Double precision , y1 Double precision , x2 Double precision , y2 Double precision ) base Retrieves from an MbrCache any entity whose MBR intersects the rectangle identified by extreme points x1 y1 and x2 y2
BuildMbrFilter BuildMbrFilter( x1 Double precision , y1 Double precision , x2 Double precision , y2 Double precision ) base Creates an MBR identified by extreme points x1 y1 and x2 y2
This fuction is used internally by triggers related to MbrCache management, and is not intended for any other usage

SQL functions for R*Tree-based queries (Geometry Callbacks)

Function Syntax OGC
defined
required
module
Summary
RTreeIntersects RTreeIntersects( x1 Double precision , y1 Double precision , x2 Double precision , y2 Double precision ) geocallbacks Retrieves from an R*Tree Spatial Index any entity whose MBR intersect the rectangle identified by extreme points x1 y1 and x2 y2
RTreeWithin RTreeWithin( x1 Double precision , y1 Double precision , x2 Double precision , y2 Double precision ) geocallbacks Deprecated function
Still maintained so to avoid backward compatibility issues, but now simply is an alias-name for RTreeIntersects
RTreeContains RTreeContains( x1 Double precision , y1 Double precision , x2 Double precision , y2 Double precision ) geocallbacks Deprecated function
Still maintained so to avoid backward compatibility issues, but now simply is an alias-name for RTreeIntersects
RTreeDistWithin RTreeDistWithin( x Double precision , y Double precision , radius Double precision ) geocallbacks Retrieves from an R*Tree Spatial Index any entity whose MBR intersect the square circumscribed on the given circle (x y center, radius)

SQL functions supporting XmlBLOB

XB_Create XB_Create( xmlPayload BLOB ) : XmlBLOB
XB_Create( xmlPayload BLOB , compressed Boolean ) : XmlBLOB
XB_Create( xmlPayload BLOB , compressed Boolean , schemaURI Text ) : XmlBLOB
XB_Create( xmlPayload BLOB , compressed Boolean , internalSchemaURI Boolean ) : XmlBLOB
libxml2 Construct an XmlBLOB object starting from an XmlDocument.
  • If compressed is set to TRUE the XmlBlob object will be compressed (default setting).
  • If schemaURI is specified then the XmlDocument will be validated against the given Schema (default setting is skipping any XML validation).
  • If internalSchemaURI is set (any value), then the XmlDocument will be validated againt the Schema URI internally defined within the XmlDocument itself (if any).

NULL will be returned for not well-formed XmlDocuments, or when XML validation is required but XmlDocument fails to pass validation for any reason.
XB_GetPayload XB_GetPayload( xmlObject XmlBLOB [ , indent Integer ] ) : BLOB libxml2 Extracts a generic BLOB from an XmlBLOB object, exactly corresponding to the original XmlDocument and fully preserving the original character encoding.
If the optional argument indent is set to some positive value then the returned XmlDocument will be nicely formatted and properly indented by the required factor; ZERO will cause the whole XmlDocument to be returned as a single line. (default setting is negative indenting, i.e. not reformatting at all).
NULL will be returned for any invalid input (not a valid XmlBLOB object).
XB_GetDocument XB_GetDocument( xmlObject XmlBLOB [ , indent Integer ] ) : String libxml2 Extracts an XmlDocument from an XmlBLOB object; the returned XmlDocument will always be UTF-8 encoded (TEXT), irrespectively from the original internal encoding declaration.
If the optional argument indent is set to some positive value then the returned XmlDocument will be nicely formatted and properly indented by the required factor; ZERO will cause the whole XmlDocument to be returned as a single line. (default setting is negative indenting, i.e. not reformatting at all).
NULL will be returned for any invalid input (not a valid XmlBLOB object).
XB_SchemaValidate XB_SchemaValidate( xmlObject XmlBLOB , schemaURI Text [ , compressed Boolean ] ) : XmlBLOB
XB_SchemaValidate( xmlObject XmlBLOB , internalSchemaURI Boolean [ , compressed Boolean ] ) : XmlBLOB
libxml2 Construct an XML validated XmlBLOB object starting from an XmlDocument.
  • If compressed is set to TRUE the XmlBlob object will be compressed (default setting).
  • If schemaURI is specified then the XmlDocument will be validated against the given Schema (default setting is skipping any XML validation).
  • If internalSchemaURI is set (any value), then the XmlDocument will be validated againt the Schema URI internally defined within the XmlDocument itself (if any).

NULL will be returned if the input XmlBLOB fails to pass validation for any reason.
XB_Compress XB_Compress( xmlObject XmlBLOB ) : XmlBLOB libxml2 A new compressed XmlBLOB object will be returned.
If the input XmlBLOB is already compressed this one is a harmless no-op.
NULL will be returned for any invalid input (not a valid XmlBLOB object).
XB_Uncompress XB_Uncompress( xmlObject XmlBLOB ) : XmlBLOB libxml2 A new uncompressed XmlBLOB object will be returned.
If the input XmlBLOB is already uncompressed this one is a harmless no-op.
NULL will be returned for any invalid input (not a valid XmlBLOB object).
XB_IsValid XB_IsValid( xmlObject XmlBLOB ) : Integer libxml2 The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments.
XB_IsCompressed XB_IsCompressed( xmlObject XmlBLOB ) : Integer libxml2 The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments.
XB_IsSchemaValidated XB_IsSchemaValidated( xmlObject XmlBLOB ) : Integer libxml2 The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments.
XB_IsIsoMetadata XB_IsIsoMetadata( xmlObject XmlBLOB ) : Integer libxml2 The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments.
XB_IsSldSeVectorStyle XB_IsSldSVectorStyle( xmlObject XmlBLOB ) : Integer libxml2 The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments.
XB_IsSldSeRasterStyle XB_IsSldSRasterStyle( xmlObject XmlBLOB ) : Integer libxml2 The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments.
XB_IsSvg XB_IsSvg( xmlObject XmlBLOB ) : Integer libxml2 The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments.
XB_GetDocumentSize XB_GetDocumentSize( xmlObject XmlBLOB ) : Integer libxml2 Will return the size in bytes of the corresponding uncompressed XmlDocument.
NULL will be returned for any invalid input (not a valid XmlBLOB object).
XB_GetEncoding XB_GetEncoding( xmlObject XmlBLOB ) : String libxml2 Will return the character encoding internally declared by the XmlDocument corresponding to the input XmlBLOB.
NULL will be returned for any invalid input (not a valid XmlBLOB object), or when the XmlDocument doesn't explicitly declares any encoding.
XB_GetSchemaURI XB_GetSchemaURI( xmlObject XmlBLOB ) : String libxml2 Will return the Schema URI effectively used to validate an XmlBLOB.
NULL will be returned for any invalid input (not a valid XmlBLOB object), or when the XmlBLOB isn't validated.
XB_GetInternalSchemaURI XB_GetInternalSchemaURI( xmlPayload BLOB ) : String libxml2 Will return the Schema URI internally declared by the input XmlDocument (xsi:noNamespeceSchemaLocation or xsi:schemaLocation).
NULL will be returned for any invalid input (not a valid XmlBLOB object), or when the XmlDocument doesn't declares any Schema at all.
XB_GetFileId XB_GetFileId( xmlObject XmlBLOB ) : String libxml2 Will return the FileIdentifier defined within the XmlBLOB (if any).
NULL will be returned for any invalid input (not a valid XmlBLOB object), or when no FileIdentifier is defined.
Supported only on ISO Metadata XML Documents.
XB_SetFileId XB_SetFileId( xmlObject XmlBLOB , fileId String ) : XmlBLOB libxml2 Will return a new XmlBLOB by replacing the FileIdentifier value.
The input XmlBLOB is expected to be of the ISO Metadata type and must containt an already defined FileIdentifier.
NULL will be returned for any invalid input.
XB_AddFileId XB_AddFileId( xmlObject XmlBLOB , fileId String , IdNameSpacePrefix String , IdNameSpaceURI String , CsNameSpacePrefix String , CsNameSpaceURI String ) : XmlBLOB libxml2 Will return a new XmlBLOB by inserting a FileIdentifier value.
The input XmlBLOB is expected to be of the ISO Metadata type and must not containt an already defined FileIdentifier.
IdNameSpacePrefix and IdNameSpaceURI are expected to represent the namespace (if any) corresponding to the <fileIdentifier> tag (could be eventually NULL).
CsNameSpacePrefix and CsNameSpaceURI are expected to represent the namespace (if any) corresponding to the <CharacterString> tag (could be eventually NULL).
NULL will be returned for any invalid input.
XB_GetParentId XB_GetParentId( xmlObject XmlBLOB ) : String libxml2 Will return the ParentIdentifier defined within the XmlBLOB (if any).
NULL will be returned for any invalid input (not a valid XmlBLOB object), or when no ParentIdentifier is defined.
Supported only on ISO Metadata XML Documents.
XB_SetParentId XB_SetParentId( xmlObject XmlBLOB , parentId String ) : XmlBLOB libxml2 Will return a new XmlBLOB by replacing the ParentIdentifier value.
The input XmlBLOB is expected to be of the ISO Metadata type and must containt an already defined ParentIdentifier.
NULL will be returned for any invalid input.
XB_AddParentId XB_AddParentId( xmlObject XmlBLOB , parentId String , IdNameSpacePrefix String , IdNameSpaceURI String , CsNameSpacePrefix String , CsNameSpaceURI String ) : XmlBLOB libxml2 Will return a new XmlBLOB by inserting a ParentIdentifier value.
The input XmlBLOB is expected to be of the ISO Metadata type and must not containt an already defined ParentIdentifier.
IdNameSpacePrefix and IdNameSpaceURI are expected to represent the namespace (if any) corresponding to the <parentIdentifier> tag (could be eventually NULL).
CsNameSpacePrefix and CsNameSpaceURI are expected to represent the namespace (if any) corresponding to the <CharacterString> tag (could be eventually NULL).
NULL will be returned for any invalid input.
XB_GetTitle XB_GetTitle( xmlObject XmlBLOB ) : String libxml2 Will return the Title defined within the XmlBLOB (if any).
NULL will be returned for any invalid input (not a valid XmlBLOB object), or when no Title is defined.
Supported only on ISO Metadata and SLD/SE Styles.
XB_GetAbstract XB_GetAbstract( xmlObject XmlBLOB ) : String libxml2 Will return the Abstract defined within the XmlBLOB (if any).
NULL will be returned for any invalid input (not a valid XmlBLOB object), or when no Abstract is defined.
Supported only on ISO Metadata and SLD/SE Styles.
XB_GetGeometry XB_GetGeometry( xmlObject XmlBLOB ) : Geometry libxml2 Will return the Geometry (Bounding Box) defined within the XmlBLOB (if any).
NULL will be returned for any invalid input (not a valid XmlBLOB object), or when no Bounding Box is defined.
Supported only on ISO Metadata XML Documents.
XB_GetLastParseError XB_GetLastParseError( void ) : String libxml2 Will return the most recent XML parsing error (if any).
NULL will be returned if there is no pending parsing error.
XB_GetLastValidateError XB_GetLastValidateError( void ) : String libxml2 Will return the most recent XML validating error (if any).
NULL will be returned if there is no pending validating error.
XB_IsValidXPathExpression XB_IsValidXPathExpression( expr Text ) : Integer libxml2 The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments.
XB_GetLastXPathError XB_GetLastXPathError( void ) : String libxml2 Will return the most recent XPath error (if any).
NULL will be returned if there is no pending XPath error.
XB_CacheFlush XB_CacheFlush( void ) : Boolean libxml2 Reset the internal XML Schema cache to its initial empty state.
XB_LoadXML XB_LoadXML( filepath-or-URL String ) : BLOB libxml2 If filepath-or-URL corresponds to some valid local pathname, and the corresponding file (expected to contain a well-formed XML Document) can be actually accessed in read mode, then the whole file content will be returned as a BLOB value.
This function is even able to acces a remote XML Document identified by an URL.
Otherwise NULL will be returned.
Please note: SQLite doesn't support BLOB values bigger than SQLITE_MAX_LENGTH (usually, 1 GB).
Please note well: this SQL function open the doors to many potential security issues, and thus is always disabled by default.
Explicitly setting the environmente variable SPATIALITE_SECURITY=relaxed is absolutely required in order to effectively enable this function.
Please see: CountUnsafeTriggers()
XB_StoreXML XB_StoreXML( XmlObject XmlBLOB , filepath String ) : Integer
XB_StoreXML( XmlObject XmlBLOB , filepath String , indent Integer ) : Integer
libxml2 If XmlObject is of the XmlBLOB-type, and if filepath corresponds to some valid pathname (accessible in write/create mode), then the corresponding file will be created/overwritten so to contain the corresponding XML Document (fully preserving the original character encoding).
If the optional argument indent is set to some positive value then the returned XmlDocument will be nicely formatted and properly indented by the required factor; ZERO will cause the whole XmlDocument to be returned as a single line. (default setting is negative indenting, i.e. not reformatting at all).
The return type is Integer, with a return value of 1 for success, 0 for failure and -1 for invalid arguments.
Please note well: this SQL function open the doors to many potential security issues, and thus is always disabled by default.
Explicitly setting the environmente variable SPATIALITE_SECURITY=relaxed is absolutely required in order to effectively enable this function.
Please see: CountUnsafeTriggers()
back libspatialite-4.1.1/Makefile.am0000664000175000017500000000111012163502133013307 00000000000000ACLOCAL_AMFLAGS = -I m4 AUTOMAKE_OPTIONS = dist-zip EXTRA_DIST = makefile.vc nmake.opt Android.mk mainpage.doxy README.coverage \ spatialite-sql-latest.html config-msvc.h if ENABLE_EXAMPLES EXAMPLES = examples endif SUBDIRS = src test $(EXAMPLES) pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = spatialite.pc coverage-init: lcov --directory src --capture --initial --output-file libspatialite_cov.info coverage:: lcov --directory src --output-file libspatialite_cov.info --capture genhtml -o covresults libspatialite_cov.info MOSTLYCLEANFILES = libspatialite_cov.info libspatialite-4.1.1/config.guess0000775000175000017500000012761512163502133013616 00000000000000#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 # Free Software Foundation, Inc. timestamp='2009-11-20' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner. Please send patches (context # diff format) to and include a ChangeLog # entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) echo i386-pc-auroraux${UNAME_RELEASE} exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build SUN_ARCH="i386" # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH="x86_64" fi fi echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[456]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) case ${UNAME_MACHINE} in pc98) echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; authenticamd | genuineintel | EM64T) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) echo ia64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; 8664:Windows_NT:*) echo x86_64-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then echo ${UNAME_MACHINE}-unknown-linux-gnu else echo ${UNAME_MACHINE}-unknown-linux-gnueabi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo crisv32-axis-linux-gnu exit ;; frv:Linux:*:*) echo frv-unknown-linux-gnu exit ;; i*86:Linux:*:*) LIBC=gnu eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:* | mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef ${UNAME_MACHINE} #undef ${UNAME_MACHINE}el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=${UNAME_MACHINE}el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=${UNAME_MACHINE} #else CPU= #endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; padre:Linux:*:*) echo sparc-unknown-linux-gnu exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configury will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; BePC:Haiku:*:*) # Haiku running on Intel PC compatible. echo i586-pc-haiku exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in i386) eval $set_cc_for_build if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then UNAME_PROCESSOR="x86_64" fi fi ;; unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; i*86:AROS:*:*) echo ${UNAME_MACHINE}-pc-aros exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: libspatialite-4.1.1/test/0000775000175000017500000000000012163503232012322 500000000000000libspatialite-4.1.1/test/opera.xsd0000664000175000017500000000133712163502133014073 00000000000000 libspatialite-4.1.1/test/tile101.jpeg0000664000175000017500000001512612163502134014275 00000000000000JFIFC  !"$"$C" = */o_gܽ[V?K}n==]>FT'}3Ϫ|-=/'؀@_Gt=Ů]^x}/if5R6Q |?ltsϥfMWl,b@S?3>ugSypX(DLm`@%_Տ37%D@"T<}~ @E%͚4O[xJPJIKJI@VYe d(PIJJ5޼fo͸ۯ.vߣ:}N=xAD.9uL9qɬ.o}]i7=>PJ9wYujkc6mIs/.Ƶ9n\t;ss|^}tښJK 3Wͭ7s|s{L`q;qaזs9uv^7n\pY\R9ϥ1M(! 0"1@A2BC`~Sa%4NjIMz|ak TWy?"*SLJ %#PypWكPTZ?~)1] ( p{"@8SkC|c\zoc@,#= 2!P-_dp{)@i {@gszGr˭CC= "@q^`1c#7]坟^M>?Z)ʂTIzZ XxZWW֬Ł xÌx6| Nal.;م<S$ U˻muO#Q"%N 9ҍZ%:e8gV6F ըjhU4L']/zO!N̨(CB6gXYG RahN(Aѻp E: avHj BW!HR!-W58!HW5: )j Z"/# !01QAP?)>);[h o n+҉v,$3cx  屬%P,~R`S=@?p$))TM9* D Y n.:?$ !0@A"#Q1?SZxZ}UG>0BU:Oi B k+OIk->> wj̺k@OɅ 2R-'Vk{#9 mw+QdsyKٕQP(Q _SyCqjoa[9\bhZ&؛xΏ]~.y'^/@lK[zGc6meL.cTsSzߣ')L>u^}'Z~e[{~`з](窵slu_06,8:˄5ln܅ O0s2Ҷ$_t13y=,7)yLhX$aV[ef6ֲ*NY`M Zl#%UP8-f+U$J̪ "s0-d3e7U)r+]Ocx>l40+;KhћQSlrVpB߼3MڱY[tZ A CBVVjB/2M5{\CB20Nb SZ-GhVkn#\ʌ+D/N"`龁Wt@E K%Mv=+7iBGCBiKf˺|J{9{fhBt P m *Lo0 i x}:*mhfyxr 8xSJhw7DLʘnm\Kri vЏAŚ^Y MtxBե_~t8/¢x}CIwM8CvqɖX' ų:0 z${eF=$uowbɂt C_'!1AQaq ?V[+vNv[[[vrwmݷ-wmwmrV+wlUv"eXYk` cLpYͲ̓f9!fY8Ƕ<$eY]bZ%ْuU> ܬwArq_¥= *^e|Ƅ08{ܢ/Yߴ 2İ.nEgHPҡuc/}b.Uq\]T& Wf>2*KmCF*>sQ}!YSR %S"^o虨*mc_D8m-!Lw5NWi"cNɮ}D,Sean ~F%mD)_wqo3^b0PfjbZW֗7h'A9픴V9%mPQ[aqw,=Xk^(P2D_uT-R,7qbfg}KP&Df9!džf.>a(6R*F@Q5SWBeWB@M,2̒vipT"׃$%Oi|Jρ`P|_38@ăpqL$f'e:81za.TƣbY/ΘqJcN!,<8U%fl5 -Bfhw1=оܷL/&caDX֜5S59+xo} ^7r[[/*I}Ͽ?f)x`'Gr1S)0"0^PJVgܧ|0S)ژ_#qvqy{Ķ{{f[ [/[[c[T!{YornK{yeחkN|$ aLv)׋An>3sNq1qs n!.VcHd3$(&T7L_fJ01 3Y4j@ ܬmw B0e›֋A.SBjGW~PZƕ*`z\ n:$vJ JW5qۢe4.,|TAqy&/UCttL*mT,1F(3* z+K_XEChP'Oˆ!3CecRXZ`x1E<_fKܯRXEYXWD9pKTظ@TI$34:f2p"bqTΠ][bىkG"mC3u:"T iq/4 5. 1R lRl5uc d3CkE@%_0)1 6u Ğ*^Ҥl,1ApZYB!* ,+Po Jf-Dj.(,(;cseRw8Yv37׌ـd Z;DoAf!2R4 |@BF:?2-Eh(UL iT8B$;[e˛7- t,)3flg[qyWa?"a?\R4)K-…ڹS3A<&Wm6(2R\s#._?r䗌9. -A,eXLF*. :TĽ\T |K{GJsv;Kq S9( ^]> Q1n1] ҟixZN0;o>'+d-v2\] FVl䖎fwR$>?<"URJ`0*Ȗb *q0{\x7H؊uA}%;G rXn$J@w0M%&)"Z.aI-"&VAG$3/bq\N:,kW2^r嘆%U`q25* bNA_jcJZ~?(Bg/\:'? @ cA<Bl^G5BVWlibspatialite-4.1.1/test/test_helpers.h0000664000175000017500000000012512163502134015112 00000000000000#if __GNUC__ #define UNUSED __attribute__ ((__unused__)) #else #define UNUSED #endif libspatialite-4.1.1/test/check_bufovflw.c0000664000175000017500000017726712163502133015420 00000000000000/* check_bufovflw.c -- SpatiaLite Test Case - buffer overflows Author: Sandro Furieri ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include "sqlite3.h" #include "spatialite.h" #include void cleanup_shapefile(const char *filename) { char nam[1000]; if (!filename) { return; } snprintf(nam, 1000, "%s.dbf", filename); unlink(nam); snprintf(nam, 1000, "%s.prj", filename); unlink(nam); snprintf(nam, 1000, "%s.shp", filename); unlink(nam); snprintf(nam, 1000, "%s.shx", filename); unlink(nam); } int main (int argc, char *argv[]) { int ret; sqlite3 *handle; sqlite3_stmt *stmt; char *err_msg = NULL; int suffix_len = 16 * 1024; /* 16 KB suffix */ char *suffix; char *xtable; char *shape; char *shape2; char *shape2geom; char *dbf; char *table_a; char *table_b; char *topology; char *auth; char *kml1; char *kml2; char *resvalue; char *pk; char *name; char *geom; char *sql; char **results; const char *value; int rows; int columns; char *string; int len; char frmt[2048]; int row_count; char *dumpname = __FILE__"dump"; void *cache = spatialite_alloc_connection(); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle)); sqlite3_close(handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -2; } /* setting up very long table and column names */ suffix = malloc(suffix_len); memset(suffix, 'z', suffix_len); suffix[suffix_len-1] = '\0'; table_a = sqlite3_mprintf("table_a_%s", suffix); table_b = sqlite3_mprintf("table_b_%s", suffix); shape2 = sqlite3_mprintf("shape_table_2_%s", suffix); shape2geom = sqlite3_mprintf("shape_table_2_geom_%s", suffix); shape = sqlite3_mprintf("shape_table_%s", suffix); dbf = sqlite3_mprintf("dbf_tbale_%s", suffix); pk = sqlite3_mprintf("id_%s", suffix); name = sqlite3_mprintf("name_%s", suffix); geom = sqlite3_mprintf("geom_%s", suffix); topology = sqlite3_mprintf("topology_%s_", suffix); /* creating table "A" */ sql = sqlite3_mprintf("CREATE TABLE %s (\n" "%s INTEGER NOT NULL PRIMARY KEY,\n" "%s TEXT NOT NULL)", table_a, pk, name); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE TABLE-A error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -3; } /* adding a POINT Geometry to table "A" */ sql = sqlite3_mprintf("SELECT AddGeometryColumn(%Q, %Q, " "4326, 'POINT', 'XY')", table_a, geom); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -4; } /* creating a Spatial Index on table "A" */ sql = sqlite3_mprintf("SELECT CreateSpatialIndex(%Q, %Q)", table_a, geom); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "CreateSpatialIndex (TABLE-A) error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -5; } /* inserting few valid rows on table "A" */ sql = sqlite3_mprintf("INSERT INTO %s (%s, %s, %s) VALUES " "(1, 'alpha', MakePoint(1, 10, 4326))", table_a, pk, name, geom); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -6; } sql = sqlite3_mprintf("INSERT INTO %s (%s, %s, %s) VALUES " "(2, 'beta', MakePoint(2, 20, 4326))", table_a, pk, name, geom); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -106; } sql = sqlite3_mprintf("INSERT INTO %s (%s, %s, %s) VALUES " "(3, 'gamma', MakePoint(3, 30, 4326))", table_a, pk, name, geom); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -206; } sql = sqlite3_mprintf("INSERT INTO %s (%s, %s, %s) VALUES " "(4, 'delta', MakePoint(4, 40, 4326))", table_a, pk, name, geom); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -306; } sql = sqlite3_mprintf("INSERT INTO %s (%s, %s, %s) VALUES " "(5, 'epsilon', MakePoint(5, 50, 4326))", table_a, pk, name, geom); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -406; } /* inserting few invalid geometries on table "A" */ sql = sqlite3_mprintf("INSERT INTO %s (%s, %s, %s) VALUES " "(6, 'zeta', MakePoint(10, 10))", table_a, pk, name, geom); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { sql = sqlite3_mprintf("%s.%s violates Geometry constraint " "[geom-type or SRID not allowed]", table_a, geom); ret = strcmp(sql, err_msg); sqlite3_free(err_msg); sqlite3_free(sql); if (ret == 0) goto test2; sqlite3_close(handle); return -7; } test2: sql = sqlite3_mprintf("INSERT INTO %s (%s, %s, %s) VALUES " "(7, 'eta', MakePointZ(20, 20, 20, 4326))", table_a, pk, name, geom); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { sql = sqlite3_mprintf("%s.%s violates Geometry constraint " "[geom-type or SRID not allowed]", table_a, geom); ret = strcmp(sql, err_msg); sqlite3_free(err_msg); sqlite3_free(sql); if (ret == 0) goto test3; sqlite3_close(handle); return -8; } test3: sql = sqlite3_mprintf("INSERT INTO %s (%s, %s, %s) VALUES " "(8, 'theta', GeomFromText('LINESTRING(0 0, 1 1)', 4326))", table_a, pk, name, geom); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { sql = sqlite3_mprintf("%s.%s violates Geometry constraint " "[geom-type or SRID not allowed]", table_a, geom); ret = strcmp(sql, err_msg); sqlite3_free(err_msg); sqlite3_free(sql); if (ret == 0) goto test4; sqlite3_close(handle); return -9; } test4: /* checking for validity (table A) */ sql = sqlite3_mprintf("SELECT Count(*) FROM %s WHERE ROWID IN (" "SELECT ROWID FROM SpatialIndex WHERE " "f_table_name = %Q AND f_geometry_column = %Q " "AND search_frame = BuildCircleMbr(3, 30, 1))", table_a, table_a, geom); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "Test TABLE-A error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -10; } if (rows != 1 || columns != 1) { fprintf (stderr, "Unexpected rows/columns (TABLE-A): r=%d c=%d\n", rows, columns); return -11; } value = results[1]; if (strcmp ("1", value) != 0) { fprintf (stderr, "Unexpected result (TABLE-A): %s\n", results[1]); return -12; } sqlite3_free_table (results); /* creating table "B" */ sql = sqlite3_mprintf("CREATE TABLE %s AS " "SELECT * FROM %s", table_b, table_a); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE TABLE-B error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -13; } /* recovering Geometry for table "B" */ sql = sqlite3_mprintf("SELECT RecoverGeometryColumn(%Q, %Q, " "4326, 'POINT', 'XY')", table_b, geom); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "RecoverGeometryColumn error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -14; } /* creating a Spatial Index on table "B" */ sql = sqlite3_mprintf("SELECT CreateSpatialIndex(%Q, %Q)", table_b, geom); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "CreateSpatialIndex (TABLE-B) error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -15; } /* checking for validity (table B) */ sql = sqlite3_mprintf("SELECT Count(*) FROM %s WHERE ROWID IN (" "SELECT ROWID FROM SpatialIndex WHERE " "f_table_name = %Q AND f_geometry_column = %Q " "AND search_frame = BuildCircleMbr(2, 20, 1))", table_b, table_b, geom); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "Test TABLE-B error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -16; } if (rows != 1 || columns != 1) { fprintf (stderr, "Unexpected rows/columns (TABLE-B): r=%d c=%d\n", rows, columns); return -17; } value = results[1]; if (strcmp ("1", value) != 0) { fprintf (stderr, "Unexpected result (TABLE-B): %s\n", results[1]); return -18; } sqlite3_free_table (results); /* deleting one row from Table B */ sql = sqlite3_mprintf("DELETE FROM %s WHERE %s = 2", table_b, pk); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "DELETE (TABLE-B) error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -19; } /* updating one row into Table B */ sql = sqlite3_mprintf("UPDATE %s SET %s = MakePoint(-3, -30, 4326) " "WHERE %s = 4", table_b, geom, pk); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "UPDATE (TABLE-B) error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -20; } /* invalid updates table "B" */ sql = sqlite3_mprintf("UPDATE %s SET %s = MakePoint(-2, -20) " "WHERE %s = 2", table_b, geom, pk); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { sql = sqlite3_mprintf("%s.%s violates Geometry constraint " "[geom-type or SRID not allowed]", table_b, geom); ret = strcmp(sql, err_msg); sqlite3_free(sql); if (ret == 0) goto test5; sqlite3_free(sql); sqlite3_free(err_msg); sqlite3_close(handle); return -21; } test5: sql = sqlite3_mprintf("UPDATE %s SET %s = MakePointZ(-2, -20, 20, 4326) " "WHERE %s = 2", table_b, geom, pk); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { sql = sqlite3_mprintf("%s.%s violates Geometry constraint " "[geom-type or SRID not allowed]", table_b, geom); ret = strcmp(sql, err_msg); sqlite3_free(sql); if (ret == 0) goto test6; sqlite3_free(sql); sqlite3_free(err_msg); sqlite3_close(handle); return -22; } test6: sql = sqlite3_mprintf("UPDATE %s SET %s = GeomFromText('LINESTRING(0 0, 1 1)', 4326) " "WHERE %s = 2", table_b, geom, pk); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { sql = sqlite3_mprintf("%s.%s violates Geometry constraint " "[geom-type or SRID not allowed]", table_b, geom); ret = strcmp(sql, err_msg); sqlite3_free(sql); if (ret == 0) goto test7; sqlite3_free(sql); sqlite3_free(err_msg); sqlite3_close(handle); return -23; } test7: /* VACUUM - thus invalidating TABLE-B Spatial Index */ ret = sqlite3_exec (handle, "VACUUM", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VACUUM error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -24; } /* checking the Spatial Index on table "B" */ sql = sqlite3_mprintf("SELECT CheckSpatialIndex(%Q, %Q)", table_b, geom); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "CheckSpatialIndex TABLE-B error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -25; } if (rows != 1 || columns != 1) { fprintf (stderr, "Unexpected rows/columns (check RTree TABLE-B): r=%d c=%d\n", rows, columns); return -26; } value = results[1]; if (strcmp ("0", value) != 0) { fprintf (stderr, "Unexpected result (check RTree TABLE-B): %s\n", results[1]); return -27; } sqlite3_free_table (results); /* checking the Spatial Index all table */ ret = sqlite3_get_table (handle, "SELECT CheckSpatialIndex()", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CheckSpatialIndex ALL error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -28; } if (rows != 1 || columns != 1) { fprintf (stderr, "Unexpected rows/columns (check RTree ALL): r=%d c=%d\n", rows, columns); return -29; } value = results[1]; if (strcmp ("0", value) != 0) { fprintf (stderr, "Unexpected result (check RTree ALL): %s\n", results[1]); return -30; } sqlite3_free_table (results); /* recovering the Spatial Index all table */ ret = sqlite3_get_table (handle, "SELECT RecoverSpatialIndex()", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "RecoverSpatialIndex ALL error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -34; } if (rows != 1 || columns != 1) { fprintf (stderr, "Unexpected rows/columns (recover RTree ALL): r=%d c=%d\n", rows, columns); return -35; } value = results[1]; if (strcmp ("1", value) != 0) { fprintf (stderr, "Unexpected result (recover RTree ALL): %s\n", results[1]); return -36; } sqlite3_free_table (results); /* recovering the Spatial Index on table "B" */ sql = sqlite3_mprintf("SELECT RecoverSpatialIndex(%Q, %Q)", table_b, geom); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "RecoverSpatialIndex TABLE-B error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -37; } if (rows != 1 || columns != 1) { fprintf (stderr, "Unexpected rows/columns (recover RTree TABLE-B): r=%d c=%d\n", rows, columns); return -38; } value = results[1]; if (strcmp ("1", value) != 0) { fprintf (stderr, "Unexpected result (recover RTree TABLE-B): %s\n", results[1]); return -39; } sqlite3_free_table (results); /* updating layer statistics for table "B" */ sql = sqlite3_mprintf("SELECT UpdateLayerStatistics(%Q, %Q)", table_b, geom); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "UpdateLayerStatistics TABLE-B error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -40; } if (rows != 1 || columns != 1) { fprintf (stderr, "Unexpected rows/columns (statistics TABLE-B): r=%d c=%d\n", rows, columns); return -41; } value = results[1]; if (strcmp ("1", value) != 0) { fprintf (stderr, "Unexpected result (statistics TABLE-B): %s\n", results[1]); return -42; } sqlite3_free_table (results); /* retieving the LayerExtent for table "B" */ sql = sqlite3_mprintf("SELECT ST_AsText(GetLayerExtent(%Q, %Q))", table_b, geom); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "GetLayerExtent TABLE-B error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -140; } if (rows != 1 || columns != 1) { fprintf (stderr, "Unexpected rows/columns (GetLayerExtent TABLE-B): r=%d c=%d\n", rows, columns); return -141; } value = results[1]; if (strcmp ("POLYGON((-3 -30, 5 -30, 5 50, -3 50, -3 -30))", value) != 0) { fprintf (stderr, "Unexpected result (GetLayerExtent TABLE-B): %s\n", results[1]); return -142; } sqlite3_free_table (results); /* updating layer statistics ALL */ ret = sqlite3_get_table (handle, "SELECT UpdateLayerStatistics()", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "UpdateLayerStatistics ALL error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -43; } if (rows != 1 || columns != 1) { fprintf (stderr, "Unexpected rows/columns (statistics ALL): r=%d c=%d\n", rows, columns); return -44; } value = results[1]; if (strcmp ("1", value) != 0) { fprintf (stderr, "Unexpected result (statistics ALL): %s\n", results[1]); return -45; } sqlite3_free_table (results); /* disabling the Spatial Index on table "B" */ sql = sqlite3_mprintf("SELECT DisableSpatialIndex(%Q, %Q)", table_b, geom); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "DisableSpatialIndex TABLE-B error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -46; } if (rows != 1 || columns != 1) { fprintf (stderr, "Unexpected rows/columns (disable TABLE-B): r=%d c=%d\n", rows, columns); return -47; } value = results[1]; if (strcmp ("1", value) != 0) { fprintf (stderr, "Unexpected result (disable TABLE-B): %s\n", results[1]); return -48; } sqlite3_free_table (results); /* creating an MbrCache on table "B" */ sql = sqlite3_mprintf("SELECT CreateMbrCache(%Q, %Q)", table_b, geom); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "CreateMbrCache TABLE-B error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -49; } if (rows != 1 || columns != 1) { fprintf (stderr, "Unexpected rows/columns (disable TABLE-B): r=%d c=%d\n", rows, columns); return -50; } value = results[1]; if (strcmp ("1", value) != 0) { fprintf (stderr, "Unexpected result (disable TABLE-B): %s\n", results[1]); return -51; } sqlite3_free_table (results); /* checking the MbrCache on table "B" */ sql = sqlite3_mprintf("SELECT Count(*) FROM %s WHERE ROWID IN (" "SELECT ROWID FROM cache_%s_%s WHERE " "mbr = FilterMbrIntersects(0, 0, 11, 11))", table_b, table_b, geom); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "Test MbrCache error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -52; } if (rows != 1 || columns != 1) { fprintf (stderr, "Unexpected rows/columns (MbrCache): r=%d c=%d\n", rows, columns); return -53; } value = results[1]; if (strcmp ("1", value) != 0) { fprintf (stderr, "Unexpected result (MbrCache): %s\n", results[1]); return -54; } sqlite3_free_table (results); /* disabling the Spatial Index [MbrCache] on table "B" */ sql = sqlite3_mprintf("SELECT DisableSpatialIndex(%Q, %Q)", table_b, geom); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "DisableSpatialIndex TABLE-B error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -55; } if (rows != 1 || columns != 1) { fprintf (stderr, "Unexpected rows/columns (disable TABLE-B): r=%d c=%d\n", rows, columns); return -56; } value = results[1]; if (strcmp ("1", value) != 0) { fprintf (stderr, "Unexpected result (disable TABLE-B): %s\n", results[1]); return -57; } sqlite3_free_table (results); /* discarding geometry from table "B" */ sql = sqlite3_mprintf("SELECT DiscardGeometryColumn(%Q, %Q)", table_b, geom); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "DiscardGeometryColumn TABLE-B error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -58; } if (rows != 1 || columns != 1) { fprintf (stderr, "Unexpected rows/columns (discard TABLE-B): r=%d c=%d\n", rows, columns); return -59; } value = results[1]; if (strcmp ("1", value) != 0) { fprintf (stderr, "Unexpected result (discard TABLE-B): %s\n", results[1]); return -60; } sqlite3_free_table (results); #ifdef GEOS_ADVANCED /* GEOS advanced features */ /* creating a topology */ sql = sqlite3_mprintf("SELECT CreateTopologyTables(%Q, 4326, 'XY')", topology); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "CreateTopologyTables error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -61; } if (rows != 1 || columns != 1) { fprintf (stderr, "Unexpected rows/columns (CreateTopologyTables): r=%d c=%d\n", rows, columns); return -62; } value = results[1]; if (strcmp ("1", value) != 0) { fprintf (stderr, "Unexpected result (CreateTopologyTables): %s\n", results[1]); return -63; } sqlite3_free_table (results); #endif /* end GEOS advanced features */ sqlite3_free(table_a); sqlite3_free(table_b); sqlite3_free(pk); sqlite3_free(name); sqlite3_free(geom); sqlite3_free(topology); /* inserting a CRS (very long auth) */ auth = sqlite3_mprintf("authority_%s", suffix); sql = sqlite3_mprintf("INSERT INTO spatial_ref_sys (srid, auth_name, auth_srid, " "ref_sys_name, proj4text, srtext) VALUES (NULL, %Q, 1122, " "'silly CRS', 'silly proj def', 'silly wkt def')", auth); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT CRS error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -64; } /* checking for validity (SRID from Auth) */ sql = sqlite3_mprintf("SELECT SridFromAuthCrs(%Q, %d)", auth, 1122); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "Test TABLE-A error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -65; } if (rows != 1 || columns != 1) { fprintf (stderr, "Unexpected rows/columns (SRID from Auth): r=%d c=%d\n", rows, columns); return -66; } value = results[1]; if (strcmp ("325834", value) != 0) { fprintf (stderr, "Unexpected result (SRID from Auth): %s\n", results[1]); return -67; } sqlite3_free_table (results); /* deleting the odd CRS */ sql = "DELETE FROM spatial_ref_sys WHERE srid = 325834"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DELETE (CRS) error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -68; } sqlite3_free(auth); /* checking AsKML (1) */ kml1 = sqlite3_mprintf("kml_name_%s", suffix); kml2 = sqlite3_mprintf("kml_description_%s", suffix); strcpy(frmt, "%s%s" "%1.0f,%1.0f" "0,0 " "%1.0f,%1.0f"); strcat(frmt, "" "0,0 0,%1.0f %1.0f,%1.0f %1.0f,0 0,0" "" "5,5 5,%1.0f %1.0f,%1.0f " "%1.0f,5 5,5" ""); resvalue = sqlite3_mprintf(frmt, kml1, kml2, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); sql = sqlite3_mprintf("SELECT AsKml(%Q, %Q, GeomFromText('GEOMETRYCOLLECTION(" "POINT(%1.0f %1.0f), LINESTRING(0 0, %1.0f %1.0f), " "POLYGON((0 0, 0 %1.0f, %1.0f %1.0f, %1.0f 0, 0 0), " "(5 5, 5 %1.0f, %1.0f %1.0f, %1.0f 5, 5 5)))'" ", 4326), 300)", kml1, kml2, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "Test AsKML#1 error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -69; } if (rows != 1 || columns != 1) { fprintf (stderr, "Unexpected rows/columns (AsKML#1): r=%d c=%d\n", rows, columns); return -70; } value = results[1]; if (strcmp (resvalue, value) != 0) { fprintf (stderr, "Unexpected result (AsKML#1): %s\n", results[1]); return -71; } sqlite3_free_table (results); sqlite3_free(kml1); sqlite3_free(kml2); sqlite3_free(resvalue); /* checking AsKML (2) */ kml1 = sqlite3_mprintf("%1.0f", 1e128); kml2 = sqlite3_mprintf("%2.0f", 2e128); strcpy(frmt, "%s%s" "%1.0f,%1.0f,%1.0f" "0,0,0 " "%1.0f,%1.0f,%1.0f"); strcat(frmt, "" "0,0,0 0,%1.0f,0 %1.0f,%1.0f,%1.0f %1.0f,0,0 0,0,0" "" "5,5,0 5,%1.0f,0 %1.0f,%1.0f,%1.0f " "%1.0f,5,0 5,5,0" ""); resvalue = sqlite3_mprintf(frmt, kml1, kml2, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); sql = sqlite3_mprintf("SELECT AsKml(%Q, %Q, GeomFromText('GEOMETRYCOLLECTIONZ(" "POINTZ(%1.0f %1.0f %1.0f), LINESTRINGZ(0 0 0, %1.0f %1.0f %1.0f), " "POLYGONZ((0 0 0, 0 %1.0f 0, %1.0f %1.0f %1.0f, %1.0f 0 0, 0 0 0), " "(5 5 0, 5 %1.0f 0, %1.0f %1.0f %1.0f, %1.0f 5 0, 5 5 0)))'" ", 4326), 300)", kml1, kml2, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "Test AsKML#2 error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -72; } if (rows != 1 || columns != 1) { fprintf (stderr, "Unexpected rows/columns (AsKML#2): r=%d c=%d\n", rows, columns); return -73; } value = results[1]; if (strcmp (resvalue, value) != 0) { fprintf (stderr, "Unexpected result (AsKML#2): %s\n", results[1]); return -74; } sqlite3_free_table (results); sqlite3_free(kml1); sqlite3_free(kml2); sqlite3_free(resvalue); /* checking AsGML (1) */ strcpy(frmt, "" "%1.0f,%1.0f" "" "0,0 %1.0f,%1.0f" ""); strcat(frmt, "" "0,0 0,%1.0f %1.0f,%1.0f %1.0f,0 0,0" "" "5,5 5,%1.0f %1.0f,%1.0f %1.0f,5 5,5" ""); resvalue = sqlite3_mprintf(frmt, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); sql = sqlite3_mprintf("SELECT AsGml(GeomFromText('GEOMETRYCOLLECTION(" "POINT(%1.0f %1.0f), LINESTRING(0 0, %1.0f %1.0f), " "POLYGON((0 0, 0 %1.0f, %1.0f %1.0f, %1.0f 0, 0 0), " "(5 5, 5 %1.0f, %1.0f %1.0f, %1.0f 5, 5 5)))'" ", 4326), 300)", 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "Test AsGML#1 error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -75; } if (rows != 1 || columns != 1) { fprintf (stderr, "Unexpected rows/columns (AsGML#1): r=%d c=%d\n", rows, columns); return -76; } value = results[1]; if (strcmp (resvalue, value) != 0) { fprintf (stderr, "Unexpected result (AsGML#1): %s\n", results[1]); return -77; } sqlite3_free_table (results); sqlite3_free(resvalue); /* checking AsGML (2) */ strcpy(frmt, "" "%1.0f %1.0f %1.0f" "" "0 0 0 " "%1.0f %1.0f %1.0f" ""); strcat(frmt, "" "0 0 0 0 %1.0f 0 %1.0f %1.0f %1.0f %1.0f 0 0 0 0 0" "" "5 5 0 5 %1.0f 0 %1.0f %1.0f %1.0f " "%1.0f 5 0 5 5 0" ""); resvalue = sqlite3_mprintf(frmt, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); sql = sqlite3_mprintf("SELECT AsGml(3, GeomFromText('GEOMETRYCOLLECTIONZ(" "POINTZ(%1.0f %1.0f %1.0f), LINESTRINGZ(0 0 0, %1.0f %1.0f %1.0f), " "POLYGONZ((0 0 0, 0 %1.0f 0, %1.0f %1.0f %1.0f, %1.0f 0 0, 0 0 0), " "(5 5 0, 5 %1.0f 0, %1.0f %1.0f %1.0f, %1.0f 5 0, 5 5 0)))'" ", 4326), 300)", 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "Test AsGML#2 error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -78; } if (rows != 1 || columns != 1) { fprintf (stderr, "Unexpected rows/columns (AsGML#2): r=%d c=%d\n", rows, columns); return -79; } value = results[1]; if (strcmp (resvalue, value) != 0) { fprintf (stderr, "Unexpected result (AsGML#2): %s\n", results[1]); return -80; } sqlite3_free_table (results); sqlite3_free(resvalue); /* checking WKT 2D */ resvalue = sqlite3_mprintf("GEOMETRYCOLLECTION(POINT(%1.0f %1.0f), " "LINESTRING(0 0, %1.0f %1.0f), " "POLYGON((0 0, %1.0f 0, %1.0f %1.0f, 0 %1.0f, 0 0), " "(5 5, %1.0f 5, %1.0f %1.0f, 5 %1.0f, 5 5)))", 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); sql = sqlite3_mprintf("SELECT AsText(GeomFromText('GEOMETRYCOLLECTION(" "POINT(%1.0f %1.0f), LINESTRING(0 0, %1.0f %1.0f), " "POLYGON((0 0, %1.0f 0, %1.0f %1.0f, 0 %1.0f, 0 0), " "(5 5, %1.0f 5, %1.0f %1.0f, 5 %1.0f, 5 5)))'))", 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "WKT 2D: error \"%s\"\n", sqlite3_errmsg (handle)); return -81; } string = NULL; while (1) { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT) { value = (const char *)sqlite3_column_text(stmt, 0); len = sqlite3_column_bytes(stmt, 0); string = malloc(len + 1); strcpy(string, value); } } } ret = sqlite3_finalize (stmt); if (string == NULL) { fprintf (stderr, "Unexpected NULL result (WKT 2D)\n"); return -82; } if (strcmp (resvalue, string) != 0) { fprintf (stderr, "Unexpected result (WKT 2D): %s\n", string); return -83; } free(string); sqlite3_free(resvalue); /* checking WKT 3D */ resvalue = sqlite3_mprintf("GEOMETRYCOLLECTION Z(POINT Z(%1.0f %1.0f %1.0f), " "LINESTRING Z(0 0 0, %1.0f %1.0f %1.0f), " "POLYGON Z((0 0 0, %1.0f 0 0, %1.0f %1.0f %1.0f, 0 %1.0f 0, 0 0 0), " "(5 5 0, %1.0f 5 0, %1.0f %1.0f %1.0f, 5 %1.0f 0, 5 5 0)))", 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); sql = sqlite3_mprintf("SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONZ(" "POINTZ(%1.0f %1.0f %1.0f), LINESTRINGZ(0 0 0, %1.0f %1.0f %1.0f), " "POLYGONZ((0 0 0, %1.0f 0 0, %1.0f %1.0f %1.0f, 0 %1.0f 0, 0 0 0), " "(5 5 0, %1.0f 5 0, %1.0f %1.0f %1.0f, 5 %1.0f 0, 5 5 0)))'))", 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "WKT 3D: error \"%s\"\n", sqlite3_errmsg (handle)); return -84; } string = NULL; while (1) { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT) { value = (const char *)sqlite3_column_text(stmt, 0); len = sqlite3_column_bytes(stmt, 0); string = malloc(len + 1); strcpy(string, value); } } } ret = sqlite3_finalize (stmt); if (string == NULL) { fprintf (stderr, "Unexpected NULL result (WKT 3D)\n"); return -85; } if (strcmp (resvalue, string) != 0) { fprintf (stderr, "Unexpected result (WKT 3D): %s\n", string); return -86; } free(string); sqlite3_free(resvalue); /* checking WKT M */ resvalue = sqlite3_mprintf("GEOMETRYCOLLECTION M(POINT M(%1.0f %1.0f %1.0f), " "LINESTRING M(0 0 0, %1.0f %1.0f %1.0f), " "POLYGON M((0 0 0, %1.0f 0 0, %1.0f %1.0f %1.0f, 0 %1.0f 0, 0 0 0), " "(5 5 0, %1.0f 5 0, %1.0f %1.0f %1.0f, 5 %1.0f 0, 5 5 0)))", 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); sql = sqlite3_mprintf("SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONM(" "POINTM(%1.0f %1.0f %1.0f), LINESTRINGM(0 0 0, %1.0f %1.0f %1.0f), " "POLYGONM((0 0 0, %1.0f 0 0, %1.0f %1.0f %1.0f, 0 %1.0f 0, 0 0 0), " "(5 5 0, %1.0f 5 0, %1.0f %1.0f %1.0f, 5 %1.0f 0, 5 5 0)))'))", 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "WKT M: error \"%s\"\n", sqlite3_errmsg (handle)); return -87; } string = NULL; while (1) { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT) { value = (const char *)sqlite3_column_text(stmt, 0); len = sqlite3_column_bytes(stmt, 0); string = malloc(len + 1); strcpy(string, value); } } } ret = sqlite3_finalize (stmt); if (string == NULL) { fprintf (stderr, "Unexpected NULL result (WKT M)\n"); return -88; } if (strcmp (resvalue, string) != 0) { fprintf (stderr, "Unexpected result (WKT M): %s\n", string); return -89; } free(string); sqlite3_free(resvalue); /* checking WKT 3D M */ resvalue = sqlite3_mprintf("GEOMETRYCOLLECTION ZM(POINT ZM(%1.0f %1.0f %1.0f %1.0f), " "LINESTRING ZM(0 0 0 0, %1.0f %1.0f %1.0f %1.0f), " "POLYGON ZM((0 0 0 0, %1.0f 0 0 0, %1.0f %1.0f %1.0f %1.0f, 0 %1.0f 0 0, 0 0 0 0), " "(5 5 0 0, %1.0f 5 0 0, %1.0f %1.0f %1.0f %1.0f, 5 %1.0f 0 0, 5 5 0 0)))", 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); sql = sqlite3_mprintf("SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONZM(" "POINTZM(%1.0f %1.0f %1.0f %1.0f), LINESTRINGZM(0 0 0 0, %1.0f %1.0f %1.0f %1.0f), " "POLYGONZM((0 0 0 0, %1.0f 0 0 0, %1.0f %1.0f %1.0f %1.0f, 0 %1.0f 0 0, 0 0 0 0), " "(5 5 0 0, %1.0f 5 0 0, %1.0f %1.0f %1.0f %1.0f, 5 %1.0f 0 0, 5 5 0 0)))'))", 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "WKT 3D M: error \"%s\"\n", sqlite3_errmsg (handle)); return -90; } string = NULL; while (1) { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT) { value = (const char *)sqlite3_column_text(stmt, 0); len = sqlite3_column_bytes(stmt, 0); string = malloc(len + 1); strcpy(string, value); } } } ret = sqlite3_finalize (stmt); if (string == NULL) { fprintf (stderr, "Unexpected NULL result (WKT 3D M)\n"); return -91; } if (strcmp (resvalue, string) != 0) { fprintf (stderr, "Unexpected result (WKT 3D M): %s\n", string); return -92; } free(string); sqlite3_free(resvalue); /* checking EWKT 2D */ resvalue = sqlite3_mprintf("SRID=4326;GEOMETRYCOLLECTION(POINT(%1.0f %1.0f)," "LINESTRING(0 0,%1.0f %1.0f)," "POLYGON((0 0,%1.0f 0,%1.0f %1.0f,0 %1.0f,0 0)," "(5 5,%1.0f 5,%1.0f %1.0f,5 %1.0f,5 5)))", 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); sql = sqlite3_mprintf("SELECT AsEWKT(GeomFromText('GEOMETRYCOLLECTION(" "POINT(%1.0f %1.0f), LINESTRING(0 0, %1.0f %1.0f), " "POLYGON((0 0, %1.0f 0, %1.0f %1.0f, 0 %1.0f, 0 0), " "(5 5, %1.0f 5, %1.0f %1.0f, 5 %1.0f, 5 5)))', 4326))", 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "EWKT 2D: error \"%s\"\n", sqlite3_errmsg (handle)); return -93; } string = NULL; while (1) { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT) { value = (const char *)sqlite3_column_text(stmt, 0); len = sqlite3_column_bytes(stmt, 0); string = malloc(len + 1); strcpy(string, value); } } } ret = sqlite3_finalize (stmt); if (string == NULL) { fprintf (stderr, "Unexpected NULL result (EWKT 2D)\n"); return -94; } if (strcmp (resvalue, string) != 0) { fprintf (stderr, "Unexpected result (EWKT 2D): %s\n", string); return -95; } free(string); sqlite3_free(resvalue); /* checking EWKT 3D */ resvalue = sqlite3_mprintf("SRID=4326;GEOMETRYCOLLECTION(POINT(%1.0f %1.0f %1.0f)," "LINESTRING(0 0 0,%1.0f %1.0f %1.0f)," "POLYGON((0 0 0,%1.0f 0 0,%1.0f %1.0f %1.0f,0 %1.0f 0,0 0 0)," "(5 5 0,%1.0f 5 0,%1.0f %1.0f %1.0f,5 %1.0f 0,5 5 0)))", 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); sql = sqlite3_mprintf("SELECT AsEWKT(GeomFromText('GEOMETRYCOLLECTIONZ(" "POINTZ(%1.0f %1.0f %1.0f), LINESTRINGZ(0 0 0, %1.0f %1.0f %1.0f), " "POLYGONZ((0 0 0, %1.0f 0 0, %1.0f %1.0f %1.0f, 0 %1.0f 0, 0 0 0), " "(5 5 0, %1.0f 5 0, %1.0f %1.0f %1.0f, 5 %1.0f 0, 5 5 0)))', 4326))", 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "EWKT 3D: error \"%s\"\n", sqlite3_errmsg (handle)); return -96; } string = NULL; while (1) { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT) { value = (const char *)sqlite3_column_text(stmt, 0); len = sqlite3_column_bytes(stmt, 0); string = malloc(len + 1); strcpy(string, value); } } } ret = sqlite3_finalize (stmt); if (string == NULL) { fprintf (stderr, "Unexpected NULL result (EWKT 3D)\n"); return -97; } if (strcmp (resvalue, string) != 0) { fprintf (stderr, "Unexpected result (EWKT 3D): %s\n", string); return -98; } free(string); sqlite3_free(resvalue); /* checking EWKT M */ resvalue = sqlite3_mprintf("SRID=4326;GEOMETRYCOLLECTIONM(POINTM(%1.0f %1.0f %1.0f)," "LINESTRINGM(0 0 0,%1.0f %1.0f %1.0f)," "POLYGONM((0 0 0,%1.0f 0 0,%1.0f %1.0f %1.0f,0 %1.0f 0,0 0 0)," "(5 5 0,%1.0f 5 0,%1.0f %1.0f %1.0f,5 %1.0f 0,5 5 0)))", 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); sql = sqlite3_mprintf("SELECT AsEWKT(GeomFromText('GEOMETRYCOLLECTIONM(" "POINTM(%1.0f %1.0f %1.0f), LINESTRINGM(0 0 0, %1.0f %1.0f %1.0f), " "POLYGONM((0 0 0, %1.0f 0 0, %1.0f %1.0f %1.0f, 0 %1.0f 0, 0 0 0), " "(5 5 0, %1.0f 5 0, %1.0f %1.0f %1.0f, 5 %1.0f 0, 5 5 0)))', 4326))", 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "EWKT M: error \"%s\"\n", sqlite3_errmsg (handle)); return -99; } string = NULL; while (1) { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT) { value = (const char *)sqlite3_column_text(stmt, 0); len = sqlite3_column_bytes(stmt, 0); string = malloc(len + 1); strcpy(string, value); } } } ret = sqlite3_finalize (stmt); if (string == NULL) { fprintf (stderr, "Unexpected NULL result (EWKT M)\n"); return -100; } if (strcmp (resvalue, string) != 0) { fprintf (stderr, "Unexpected result (EWKT M): %s\n", string); return -101; } free(string); sqlite3_free(resvalue); /* checking EWKT 3D M */ resvalue = sqlite3_mprintf("SRID=4326;GEOMETRYCOLLECTION(POINT(%1.0f %1.0f %1.0f %1.0f)," "LINESTRING(0 0 0 0,%1.0f %1.0f %1.0f %1.0f)," "POLYGON((0 0 0 0,%1.0f 0 0 0,%1.0f %1.0f %1.0f %1.0f,0 %1.0f 0 0,0 0 0 0)," "(5 5 0 0,%1.0f 5 0 0,%1.0f %1.0f %1.0f %1.0f,5 %1.0f 0 0,5 5 0 0)))", 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); sql = sqlite3_mprintf("SELECT AsEWKT(GeomFromText('GEOMETRYCOLLECTIONZM(" "POINTZM(%1.0f %1.0f %1.0f %1.0f), LINESTRINGZM(0 0 0 0, %1.0f %1.0f %1.0f %1.0f), " "POLYGONZM((0 0 0 0, %1.0f 0 0 0, %1.0f %1.0f %1.0f %1.0f, 0 %1.0f 0 0, 0 0 0 0), " "(5 5 0 0, %1.0f 5 0 0, %1.0f %1.0f %1.0f %1.0f, 5 %1.0f 0 0, 5 5 0 0)))', 4326))", 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "EWKT 3D M: error \"%s\"\n", sqlite3_errmsg (handle)); return -102; } string = NULL; while (1) { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT) { value = (const char *)sqlite3_column_text(stmt, 0); len = sqlite3_column_bytes(stmt, 0); string = malloc(len + 1); strcpy(string, value); } } } ret = sqlite3_finalize (stmt); if (string == NULL) { fprintf (stderr, "Unexpected NULL result (EWKT 3D M)\n"); return -103; } if (strcmp (resvalue, string) != 0) { fprintf (stderr, "Unexpected result (EWKT 3D M): %s\n", string); return -104; } free(string); sqlite3_free(resvalue); /* checking WKT Strict */ resvalue = sqlite3_mprintf("GEOMETRYCOLLECTION(POINT(%1.0f %1.0f)," "LINESTRING(0 0,%1.0f %1.0f)," "POLYGON((0 0,%1.0f 0,%1.0f %1.0f,0 %1.0f,0 0)," "(5 5,%1.0f 5,%1.0f %1.0f,5 %1.0f,5 5)))", 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); sql = sqlite3_mprintf("SELECT AsWKT(GeomFromText('GEOMETRYCOLLECTIONZM(" "POINTZM(%1.0f %1.0f %1.0f %1.0f), LINESTRINGZM(0 0 0 0, %1.0f %1.0f %1.0f %1.0f), " "POLYGONZM((0 0 0 0, %1.0f 0 0 0, %1.0f %1.0f %1.0f %1.0f, 0 %1.0f 0 0, 0 0 0 0), " "(5 5 0 0, %1.0f 5 0 0, %1.0f %1.0f %1.0f %1.0f, 5 %1.0f 0 0, 5 5 0 0)))', 4326))", 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "WKT Strict: error \"%s\"\n", sqlite3_errmsg (handle)); return -105; } string = NULL; while (1) { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT) { value = (const char *)sqlite3_column_text(stmt, 0); len = sqlite3_column_bytes(stmt, 0); string = malloc(len + 1); strcpy(string, value); } } } ret = sqlite3_finalize (stmt); if (string == NULL) { fprintf (stderr, "Unexpected NULL result (WKT Strict)\n"); return -106; } if (strcmp (resvalue, string) != 0) { fprintf (stderr, "Unexpected result (WKT Strict): %s\n", string); return -107; } free(string); sqlite3_free(resvalue); /* checking GeoJSON 2D */ resvalue = sqlite3_mprintf("{\"type\":\"GeometryCollection\",\"crs\":{\"type\":\"name\",\"properties\":" "{\"name\":\"urn:ogc:def:crs:EPSG:4326\"}},\"bbox\":[0,0,%1.0f,%1.0f]," "\"geometries\":[{\"type\":\"Point\",\"coordinates\":[%1.0f,%1.0f]}," "{\"type\":\"LineString\",\"coordinates\":[[0,0],[%1.0f,%1.0f]]}," "{\"type\":\"Polygon\",\"coordinates\":" "[[[0,0],[%1.0f,0],[%1.0f,%1.0f],[0,%1.0f],[0,0]]," "[[5,5],[%1.0f,5],[%1.0f,%1.0f],[5,%1.0f],[5,5]]]}]}", 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); sql = sqlite3_mprintf("SELECT AsGeoJSON(GeomFromText('GEOMETRYCOLLECTION(" "POINT(%1.0f %1.0f), LINESTRING(0 0, %1.0f %1.0f), " "POLYGON((0 0, %1.0f 0, %1.0f %1.0f, 0 %1.0f, 0 0), " "(5 5, %1.0f 5, %1.0f %1.0f, 5 %1.0f, 5 5)))', 4326), 2, 5)", 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "GeoJSON 2D: error \"%s\"\n", sqlite3_errmsg (handle)); return -108; } string = NULL; while (1) { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT) { value = (const char *)sqlite3_column_text(stmt, 0); len = sqlite3_column_bytes(stmt, 0); string = malloc(len + 1); strcpy(string, value); } } } ret = sqlite3_finalize (stmt); if (string == NULL) { fprintf (stderr, "Unexpected NULL result (GeoJSON 2D)\n"); return -109; } if (strcmp (resvalue, string) != 0) { fprintf (stderr, "Unexpected result (GeoJSON 2D): %s\n", string); return -110; } free(string); sqlite3_free(resvalue); /* checking GeoJSON 3D */ resvalue = sqlite3_mprintf("{\"type\":\"GeometryCollection\",\"crs\":{\"type\":\"name\",\"properties\":" "{\"name\":\"urn:ogc:def:crs:EPSG:4326\"}},\"bbox\":[0,0,%1.0f,%1.0f]," "\"geometries\":[{\"type\":\"Point\",\"coordinates\":[%1.0f,%1.0f,%1.0f]}," "{\"type\":\"LineString\",\"coordinates\":[[0,0,0],[%1.0f,%1.0f,%1.0f]]}," "{\"type\":\"Polygon\",\"coordinates\":" "[[[0,0,0],[%1.0f,0,0],[%1.0f,%1.0f,%1.0f],[0,%1.0f,0],[0,0,0]]," "[[5,5,0],[%1.0f,5,0],[%1.0f,%1.0f,%1.0f],[5,%1.0f,0],[5,5,0]]]}]}", 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); sql = sqlite3_mprintf("SELECT AsGeoJSON(GeomFromText('GEOMETRYCOLLECTIONZ(" "POINTZ(%1.0f %1.0f %1.0f), LINESTRINGZ(0 0 0, %1.0f %1.0f %1.0f), " "POLYGONZ((0 0 0, %1.0f 0 0, %1.0f %1.0f %1.0f, 0 %1.0f 0, 0 0 0), " "(5 5 0, %1.0f 5 0, %1.0f %1.0f %1.0f, 5 %1.0f 0, 5 5 0)))', 4326), 2, 5)", 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "GeoJSON 3D: error \"%s\"\n", sqlite3_errmsg (handle)); return -111; } string = NULL; while (1) { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT) { value = (const char *)sqlite3_column_text(stmt, 0); len = sqlite3_column_bytes(stmt, 0); string = malloc(len + 1); strcpy(string, value); } } } ret = sqlite3_finalize (stmt); if (string == NULL) { fprintf (stderr, "Unexpected NULL result (GeoJSON 3D)\n"); return -112; } if (strcmp (resvalue, string) != 0) { fprintf (stderr, "Unexpected result (GeoJSON 3D): %s\n", string); return -113; } free(string); sqlite3_free(resvalue); /* checking gaiaDequotedSql */ resvalue = gaiaDequotedSql("'a''b''c''d''e''f''ghiklmnopqrst''u''vwy''z'"); if (strcmp(resvalue, "a'b'c'd'e'f'ghiklmnopqrst'u'vwy'z") != 0) { fprintf (stderr, "Unexpected result (Dequote 1): %s\n", resvalue); return -114; } free(resvalue); resvalue = gaiaDequotedSql("\"abcdef\"\"ghijkmlmnopqsrt\"\"uvwy\"\"z\""); if (strcmp(resvalue, "abcdef\"ghijkmlmnopqsrt\"uvwy\"z") != 0) { fprintf (stderr, "Unexpected result (Dequote 2): %s\n", resvalue); return -115; } free(resvalue); resvalue = gaiaDequotedSql("abcdefghijkmlnopqrtsuvwyz"); if (strcmp(resvalue, "abcdefghijkmlnopqrtsuvwyz") != 0) { fprintf (stderr, "Unexpected result (Dequote 3): %s\n", resvalue); return -116; } free(resvalue); resvalue = gaiaDequotedSql("'a''b''c''d''e''f''ghiklmnopqrst''u'vwy''z'"); if (resvalue != NULL) { fprintf (stderr, "Unexpected result (Dequote 4): %s\n", resvalue); return -117; } /* checking load_shapefile */ ret = load_shapefile (handle, "./shp/gaza/route", shape, "UTF-8", 4326, NULL, 1, 0, 1, 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "load_shapefile() error: %s\n", err_msg); sqlite3_close(handle); return -118; } if (row_count != 2) { fprintf (stderr, "unexpected row count for load_shapefile: %i\n", row_count); sqlite3_close(handle); return -119; } /* checking dump_shapefile */ ret = dump_shapefile (handle, shape, "Geometry", dumpname, "UTF-8", "", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error: %s\n", err_msg); sqlite3_close(handle); return -120; } cleanup_shapefile(dumpname); if (row_count != 2) { fprintf (stderr, "unexpected dump row count for shapefile: %i\n", row_count); sqlite3_close(handle); return -121; } /* checking dump_kml */ ret = dump_kml (handle, shape, "geometry", dumpname, "sub_type", "name", 10); if (!ret) { fprintf (stderr, "dump_kml() error: %s\n", err_msg); sqlite3_close(handle); return -122; } unlink(dumpname); /* checking dump_geojson */ ret = dump_geojson(handle, shape, "col1", dumpname, 10, 5); if (!ret) { fprintf (stderr, "dump_geojson() error: %s\n", err_msg); sqlite3_close(handle); return -123; } unlink(dumpname); /* dropping virtual geometry */ sql = sqlite3_mprintf("SELECT DropVirtualGeometry(%Q)", shape); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "DROP VIRTUAL GEOMETRT /shp/gaza/barrier error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -124; } sqlite3_free(shape); /* checking load_dbf */ ret = load_dbf (handle, "./shapetest1.dbf", dbf, "UTF-8", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "load_dbf() error: %s\n", err_msg); sqlite3_close(handle); return -125; } if (row_count != 2) { fprintf (stderr, "unexpected row count for load_dbf: %i\n", row_count); sqlite3_close(handle); return -126; } /* checking dump_dbf */ ret = dump_dbf (handle, dbf, dumpname, "CP1252", err_msg); if (!ret) { fprintf (stderr, "dump_dbf() error for points: %s\n", err_msg); sqlite3_close(handle); return -127; } unlink(dumpname); sqlite3_free(dbf); /* checking load_shapefile (2) */ ret = load_shapefile (handle, "./shp/merano-3d/polygons", shape2, "CP1252", 25832, shape2geom, 0, 1, 1, 0, &row_count, err_msg); if (!ret) { fprintf (stderr, "load_shapefile() #2 error: %s\n", err_msg); sqlite3_close(handle); return -128; } if (row_count != 10) { fprintf (stderr, "unexpected row count for load_shapefile #2: %i\n", row_count); sqlite3_close(handle); return -129; } xtable = gaiaDoubleQuotedSql(shape2); sql = sqlite3_mprintf("INSERT INTO \"%s\" (FEATURE_ID, DATUM, HAUSNR) " "VALUES (1250000, 0.1, 'alpha')", xtable); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT polygons (1) error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -130; } sql = sqlite3_mprintf("INSERT INTO \"%s\" (FEATURE_ID, DATUM, HAUSNR) " "VALUES (1250000, 0.1, 'alpha')", xtable); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT polygons (1) error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -131; } sql = sqlite3_mprintf("INSERT INTO \"%s\" (FEATURE_ID, DATUM, TEXT_I) " "VALUES (1250000, 0.1, 'alpha')", xtable); free(xtable); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT polygons (1) error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -132; } remove_duplicated_rows(handle, shape2); elementary_geometries (handle, shape2, shape2geom, "elem_poly", "pk_elem", "mul_id"); sqlite3_free(shape2); sqlite3_free(shape2geom); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -133; } spatialite_cleanup_ex (cache); free(suffix); return 0; } libspatialite-4.1.1/test/check_relations_fncts.c0000664000175000017500000005434412163502133016751 00000000000000/* check_relations_fncts.c -- SpatiaLite Test Case This does "boundary conditions" and error checks for gg_relations functions that are hard to test with SQL. Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" #include "spatialite/gaiageo.h" static const double double_eps = 0.00000001; int main (int argc, char *argv[]) { #ifndef OMIT_GEOS /* only if GEOS is supported */ int ret; sqlite3 *handle; int result; double resultDouble; int returnValue = 0; gaiaGeomCollPtr geom; gaiaGeomCollPtr g; gaiaPolygonPtr pg; gaiaRingPtr rng; void *cache = spatialite_alloc_connection(); /* Common setup */ gaiaGeomCollPtr validGeometry = gaiaAllocGeomColl(); double dummyResultArg = 0.0; double dummyResultArg2 = 0.0; if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ /* Tests start here */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle)); sqlite3_close(handle); return -1; } spatialite_init_ex (handle, cache, 0); /* null inputs for a range of geometry functions */ result = gaiaGeomCollEquals(0, validGeometry); if (result != -1) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -1; goto exit; } result = gaiaGeomCollEquals(validGeometry, 0); if (result != -1) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -2; goto exit; } result = gaiaGeomCollEquals(0, 0); if (result != -1) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -3; goto exit; } result = gaiaGeomCollIntersects(0, validGeometry); if (result != -1) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -4; goto exit; } result = gaiaGeomCollIntersects(validGeometry, 0); if (result != -1) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -5; goto exit; } result = gaiaGeomCollIntersects(0, 0); if (result != -1) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -6; goto exit; } result = gaiaGeomCollOverlaps(0, validGeometry); if (result != -1) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -7; goto exit; } result = gaiaGeomCollOverlaps(validGeometry, 0); if (result != -1) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -8; goto exit; } result = gaiaGeomCollOverlaps(0, 0); if (result != -1) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -9; goto exit; } result = gaiaGeomCollCrosses(0, validGeometry); if (result != -1) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -10; goto exit; } result = gaiaGeomCollCrosses(validGeometry, 0); if (result != -1) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -11; goto exit; } result = gaiaGeomCollCrosses(0, 0); if (result != -1) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -12; goto exit; } result = gaiaGeomCollTouches(0, validGeometry); if (result != -1) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -13; goto exit; } result = gaiaGeomCollTouches(validGeometry, 0); if (result != -1) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -14; goto exit; } result = gaiaGeomCollTouches(0, 0); if (result != -1) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -15; goto exit; } result = gaiaGeomCollDisjoint(0, validGeometry); if (result != -1) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -16; goto exit; } result = gaiaGeomCollDisjoint(validGeometry, 0); if (result != -1) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -17; goto exit; } result = gaiaGeomCollDisjoint(0, 0); if (result != -1) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -18; goto exit; } result = gaiaGeomCollWithin(0, validGeometry); if (result != -1) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -19; goto exit; } result = gaiaGeomCollWithin(validGeometry, 0); if (result != -1) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -20; goto exit; } result = gaiaGeomCollWithin(0, 0); if (result != -1) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -21; goto exit; } result = gaiaGeomCollContains(0, validGeometry); if (result != -1) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -22; goto exit; } result = gaiaGeomCollContains(validGeometry, 0); if (result != -1) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -23; goto exit; } result = gaiaGeomCollContains(0, 0); if (result != -1) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -24; goto exit; } result = gaiaGeomCollRelate(0, validGeometry, "T********"); if (result != -1) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -25; goto exit; } result = gaiaGeomCollRelate(validGeometry, 0, "T********"); if (result != -1) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -26; goto exit; } result = gaiaGeomCollRelate(0, 0, "T********"); if (result != -1) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -27; goto exit; } #ifdef GEOS_ADVANCED /* only if GEOS_ADVANCED is supported */ result = gaiaHausdorffDistance(0, validGeometry, &dummyResultArg); if (result != 0) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -34; goto exit; } result = gaiaHausdorffDistance(validGeometry, 0, &dummyResultArg); if (result != 0) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -35; goto exit; } result = gaiaHausdorffDistance(0, 0, &dummyResultArg); if (result != 0) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -36; goto exit; } result = gaiaGeomCollCovers(0, validGeometry); if (result != -1) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -37; goto exit; } result = gaiaGeomCollCovers(validGeometry, 0); if (result != -1) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -38; goto exit; } result = gaiaGeomCollCovers(0, 0); if (result != -1) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -39; goto exit; } result = gaiaGeomCollCoveredBy(0, validGeometry); if (result != -1) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -40; goto exit; } result = gaiaGeomCollCoveredBy(validGeometry, 0); if (result != -1) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -41; goto exit; } result = gaiaGeomCollCoveredBy(0, 0); if (result != -1) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -42; goto exit; } #endif /* end GEOS_ADVANCED conditional */ result = gaiaGeomCollDistance(0, validGeometry, &dummyResultArg); if (result != 0) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -43; goto exit; } result = gaiaGeomCollDistance(validGeometry, 0, &dummyResultArg); if (result != 0) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -44; goto exit; } result = gaiaGeomCollDistance(0, 0, &dummyResultArg); if (result != 0) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -45; goto exit; } /* Check some of the single geometry analysis routines */ result = gaiaGeomCollLength(0, &dummyResultArg); if (result != 0) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -46; goto exit; } result = gaiaGeomCollArea(0, &dummyResultArg); if (result != 0) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -47; goto exit; } result = gaiaGeomCollCentroid(0, &dummyResultArg, &dummyResultArg2); if (result != 0) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -48; goto exit; } result = gaiaGetPointOnSurface(0, &dummyResultArg, &dummyResultArg2); if (result != 0) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -49; goto exit; } result = gaiaIsSimple(0); if (result != -1) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -32; goto exit; } result = gaiaIsValid(0); if (result != -1) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -33; goto exit; } #ifdef GEOS_ADVANCED /* only if GEOS_ADVANCED is supported */ resultDouble = gaiaLineLocatePoint(0, validGeometry); if (abs (resultDouble - -1.0) > double_eps) { fprintf(stderr, "bad result at %s:%i: %f\n", __FILE__, __LINE__, resultDouble); returnValue = -62; goto exit; } resultDouble = gaiaLineLocatePoint(validGeometry, 0); if (abs (resultDouble - -1.0) > double_eps) { fprintf(stderr, "bad result at %s:%i: %f\n", __FILE__, __LINE__, resultDouble); returnValue = -63; goto exit; } resultDouble = gaiaLineLocatePoint(0, 0); if (abs (resultDouble - -1.0) > double_eps) { fprintf(stderr, "bad result at %s:%i: %f\n", __FILE__, __LINE__, resultDouble); returnValue = -64; goto exit; } /* geometry generating functionality */ geom = NULL; geom = gaiaLinesCutAtNodes(0, validGeometry); if (geom != NULL) { gaiaFree(geom); fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -50; goto exit; } geom = gaiaLinesCutAtNodes(validGeometry, 0); if (geom != NULL) { gaiaFree(geom); fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -51; goto exit; } geom = gaiaLinesCutAtNodes(0, 0); if (geom != NULL) { gaiaFree(geom); fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -52; goto exit; } geom = gaiaUnaryUnion(0); if (geom != NULL) { gaiaFree(geom); fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -53; goto exit; } geom = gaiaLineMerge(0); if (geom != NULL) { gaiaFree(geom); fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -54; goto exit; } geom = gaiaSnap(0, validGeometry, 4); if (geom != NULL) { gaiaFree(geom); fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -55; goto exit; } geom = gaiaSnap(validGeometry, 0, 4); if (geom != NULL) { gaiaFree(geom); fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -56; goto exit; } geom = gaiaSnap(0, 0, 4); if (geom != NULL) { gaiaFree(geom); fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -57; goto exit; } geom = gaiaShortestLine(0, validGeometry); if (geom != NULL) { gaiaFree(geom); fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -58; goto exit; } geom = gaiaShortestLine(validGeometry, 0); if (geom != NULL) { gaiaFree(geom); fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -59; goto exit; } geom = gaiaShortestLine(0, 0); if (geom != NULL) { gaiaFree(geom); fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -60; goto exit; } geom = gaiaLineSubstring(0, 0, 1); if (geom != NULL) { gaiaFree(geom); fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -61; goto exit; } #endif /* end GEOS_ADVANCED conditional */ geom = gaiaGeometryIntersection(0, validGeometry); if (geom != NULL) { gaiaFree(geom); fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -65; goto exit; } geom = gaiaGeometryIntersection(validGeometry, 0); if (geom != NULL) { gaiaFree(geom); fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -66; goto exit; } geom = gaiaGeometryIntersection(0, 0); if (geom != NULL) { gaiaFree(geom); fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -67; goto exit; } geom = gaiaGeometryUnion(0, validGeometry); if (geom != NULL) { gaiaFree(geom); fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -68; goto exit; } geom = gaiaGeometryUnion(validGeometry, 0); if (geom != NULL) { gaiaFree(geom); fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -69; goto exit; } geom = gaiaGeometryUnion(0, 0); if (geom != NULL) { gaiaFree(geom); fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -70; goto exit; } geom = gaiaGeometryDifference(0, validGeometry); if (geom != NULL) { gaiaFree(geom); fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -71; goto exit; } geom = gaiaGeometryDifference(validGeometry, 0); if (geom != NULL) { gaiaFree(geom); fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -72; goto exit; } geom = gaiaGeometryDifference(0, 0); if (geom != NULL) { gaiaFree(geom); fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -73; goto exit; } geom = gaiaGeometrySymDifference(0, validGeometry); if (geom != NULL) { gaiaFree(geom); fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -74; goto exit; } geom = gaiaGeometrySymDifference(validGeometry, 0); if (geom != NULL) { gaiaFree(geom); fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -75; goto exit; } geom = gaiaGeometrySymDifference(0, 0); if (geom != NULL) { gaiaFree(geom); fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -76; goto exit; } geom = gaiaBoundary(0); if (geom != NULL) { gaiaFree(geom); fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -77; goto exit; } geom = gaiaGeomCollSimplify(0, 1.0); if (geom != NULL) { gaiaFree(geom); fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -78; goto exit; } geom = gaiaGeomCollSimplifyPreserveTopology(0, 1.0); if (geom != NULL) { gaiaFree(geom); fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -79; goto exit; } geom = gaiaConvexHull(0); if (geom != NULL) { gaiaFree(geom); fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -80; goto exit; } geom = gaiaGeomCollBuffer(0, 0.1, 10); if (geom != NULL) { gaiaFree(geom); fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -81; goto exit; } #ifdef GEOS_ADVANCED /* only if GEOS_ADVANCED is supported */ geom = gaiaOffsetCurve (0, 1.5, 10, 1); if (geom != NULL) { gaiaFree(geom); fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -82; goto exit; } geom = gaiaSingleSidedBuffer (0, 1.5, 10, 1); if (geom != NULL) { gaiaFree(geom); fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -83; goto exit; } geom = gaiaSharedPaths(0, validGeometry); if (geom != NULL) { gaiaFree(geom); fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -84; goto exit; } geom = gaiaSharedPaths(validGeometry, 0); if (geom != NULL) { gaiaFree(geom); fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -85; goto exit; } geom = gaiaSharedPaths(0, 0); if (geom != NULL) { gaiaFree(geom); fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -86; goto exit; } geom = gaiaLineInterpolatePoint (0, 0.6); if (geom != NULL) { gaiaFree(geom); fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -87; goto exit; } #endif /* end GEOS_ADVANCED conditional */ /* Test some strange conditions */ result = gaiaGeomCollLength(validGeometry, &dummyResultArg); if (result != 0) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -88; goto exit; } /* preparing a collection of Polygons */ geom = gaiaAllocGeomColl(); pg = gaiaAddPolygonToGeomColl(geom, 5, 1); rng = pg->Exterior; gaiaSetPoint(rng->Coords, 0, 1.5, 1.5); gaiaSetPoint(rng->Coords, 1, 10.5, 1.5); gaiaSetPoint(rng->Coords, 2, 10.5, 10.5); gaiaSetPoint(rng->Coords, 3, 1.5, 10.5); gaiaSetPoint(rng->Coords, 4, 1.5, 1.5); rng = gaiaAddInteriorRing(pg, 0, 5); gaiaSetPoint(rng->Coords, 0, 5.5, 5.5); gaiaSetPoint(rng->Coords, 1, 6.5, 1.5); gaiaSetPoint(rng->Coords, 2, 6.5, 6.5); gaiaSetPoint(rng->Coords, 3, 5.5, 6.5); gaiaSetPoint(rng->Coords, 4, 5.5, 5.5); pg = gaiaAddPolygonToGeomColl(geom, 5, 1); rng = pg->Exterior; gaiaSetPoint(rng->Coords, 0, 8.5, 8.5); gaiaSetPoint(rng->Coords, 1, 18.5, 8.5); gaiaSetPoint(rng->Coords, 2, 18.5, 18.5); gaiaSetPoint(rng->Coords, 3, 8.5, 18.5); gaiaSetPoint(rng->Coords, 4, 8.5, 8.5); rng = gaiaAddInteriorRing(pg, 0, 5); gaiaSetPoint(rng->Coords, 0, 11.5, 11.5); gaiaSetPoint(rng->Coords, 1, 12.5, 11.5); gaiaSetPoint(rng->Coords, 2, 12.5, 12.5); gaiaSetPoint(rng->Coords, 3, 11.5, 12.5); gaiaSetPoint(rng->Coords, 4, 11.5, 11.5); pg = gaiaAddPolygonToGeomColl(geom, 5, 0); rng = pg->Exterior; gaiaSetPoint(rng->Coords, 0, 4.5, 4.5); gaiaSetPoint(rng->Coords, 1, 30.5, 4.5); gaiaSetPoint(rng->Coords, 2, 30.5, 30.5); gaiaSetPoint(rng->Coords, 3, 4.5, 30.5); gaiaSetPoint(rng->Coords, 4, 4.5, 4.5); #ifdef GEOS_ADVANCED /* only if GEOS_ADVANCED is supported */ /* Tests Polygons UnaryUnion [as in aggregate ST_Union] */ g = gaiaUnaryUnion(geom); if (g == NULL) { fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -89; goto exit; } result = gaiaGeomCollLength(g, &dummyResultArg); if (result == 1 && (dummyResultArg >= 122.84232 && dummyResultArg <= 122.84233)) ; else { fprintf(stderr, "bad result at %s:%i: %i %f\n", __FILE__, __LINE__, result, dummyResultArg); returnValue = -90; goto exit; } gaiaFreeGeomColl(g); #endif /* end GEOS_ADVANCED conditional */ /* Tests Polygons UnionCascaded [as in aggregate ST_Union] */ g = gaiaUnionCascaded(geom); if (g == NULL) { fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -91; goto exit; } result = gaiaGeomCollLength(g, &dummyResultArg); if (result == 1 && (dummyResultArg >= 122.84232 && dummyResultArg <= 122.84233)) ; else { fprintf(stderr, "bad result at %s:%i: %i %f\n", __FILE__, __LINE__, result, dummyResultArg); returnValue = -92; goto exit; } gaiaFreeGeomColl(g); gaiaFreeGeomColl(geom); /* Cleanup and exit */ exit: gaiaFreeGeomColl (validGeometry); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -133; } spatialite_cleanup_ex (cache); return returnValue; #endif /* end GEOS conditional */ return 0; } libspatialite-4.1.1/test/check_spatialindex.c0000664000175000017500000006465312163502133016245 00000000000000/* check_spatialindex.c -- SpatiaLite Test Case Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" int do_test(sqlite3 *handle, int legacy) { #ifndef OMIT_ICONV /* only if ICONV is supported */ int ret; char *err_msg = NULL; int row_count; char **results; int rows; int columns; char sql[1024]; ret = load_shapefile (handle, "shp/foggia/local_councils", "Councils", "CP1252", 23032, "geom", 1, 0, 1, 0, &row_count, err_msg); if (!ret) { fprintf (stderr, "load_shapefile() error: %s\n", err_msg); sqlite3_close(handle); return -3; } if (row_count != 61) { fprintf (stderr, "unexpected number of rows loaded: %i\n", row_count); sqlite3_close(handle); return -4; } ret = sqlite3_get_table (handle, "SELECT lc_name FROM Councils WHERE MbrWithin(geom, BuildMbr(1040523, 4010000, 1140523, 4850000)) ORDER BY lc_name;", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -5; } if ((rows != 22) || (columns != 1)) { fprintf (stderr, "Unexpected error: select lc_name bad result: %i/%i.\n", rows, columns); sqlite3_free_table (results); sqlite3_close(handle); return -6; } if (strcmp(results[1], "Ascoli Satriano") != 0) { fprintf (stderr, "unexpected result at 1: %s\n", results[1]); sqlite3_free_table (results); sqlite3_close(handle); return -7; } if (strcmp(results[22], "Zapponeta") != 0) { fprintf (stderr, "unexpected result at 22: %s\n", results[22]); sqlite3_free_table (results); sqlite3_close(handle); return -8; } sqlite3_free_table (results); ret = sqlite3_exec (handle, "SELECT CreateSpatialIndex('Councils', 'geom');", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CreateSpatialIndex error: %s\n", err_msg); sqlite3_free (err_msg); return -9; } rows = 0; columns = 0; ret = sqlite3_get_table (handle, "SELECT pkid FROM idx_Councils_geom;", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error in idx SELECT: %s\n", err_msg); sqlite3_free (err_msg); return -10; } if ((rows != 61) || (columns != 1)) { fprintf (stderr, "Unexpected error: select pkid bad idx result: %i/%i.\n", rows, columns); sqlite3_free_table (results); sqlite3_close(handle); return -11; } sqlite3_free_table (results); rows = 0; columns = 0; ret = sqlite3_get_table (handle, "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT pkid FROM idx_Councils_geom WHERE xmin > 1040523 AND ymin > 4010000 AND xmax < 1140523 AND ymax < 4850000) ORDER BY lc_name;", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error in Mbr SELECT Contains: %s\n", err_msg); sqlite3_free (err_msg); return -12; } if ((rows != 22) || (columns != 1)) { fprintf (stderr, "Unexpected error: select lc_name bad idx result: %i/%i.\n", rows, columns); sqlite3_free_table (results); sqlite3_close(handle); return -13; } if (strcmp(results[1], "Ascoli Satriano") != 0) { fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]); sqlite3_free_table (results); sqlite3_close(handle); return -14; } if (strcmp(results[22], "Zapponeta") != 0) { fprintf (stderr, "unexpected mbr result at 22: %s\n", results[22]); sqlite3_free_table (results); sqlite3_close(handle); return -15; } sqlite3_free_table (results); ret = sqlite3_exec (handle, "INSERT INTO Councils (lc_name, geom) VALUES ('Quairading', GeomFromText('MULTIPOLYGON(((997226.750031 4627372.000018, 997301.750031 4627332.000018, 997402.500031 4627344.000018, 997541.500031 4627326.500018,997226.750031 4627372.000018)))', 23032));", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT error: %s\n", err_msg); sqlite3_free (err_msg); return -16; } rows = 0; columns = 0; ret = sqlite3_get_table (handle, "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT pkid FROM idx_Councils_geom WHERE xmin > 1040523 AND ymin > 4010000 AND xmax < 1140523 AND ymax < 4850000) ORDER BY lc_name;", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error in Mbr SELECT2: %s\n", err_msg); sqlite3_free (err_msg); return -17; } if ((rows != 22) || (columns != 1)) { fprintf (stderr, "Unexpected error: select lc_name bad idx result: %i/%i.\n", rows, columns); sqlite3_free_table (results); sqlite3_close(handle); return -18; } if (strcmp(results[1], "Ascoli Satriano") != 0) { fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]); sqlite3_free_table (results); sqlite3_close(handle); return -19; } if (strcmp(results[22], "Zapponeta") != 0) { fprintf (stderr, "unexpected mbr result at 22: %s\n", results[22]); sqlite3_free_table (results); sqlite3_close(handle); return -20; } sqlite3_free_table (results); ret = sqlite3_exec (handle, "UPDATE Councils SET geom = GeomFromText('MULTIPOLYGON(((987226.750031 4627372.000018, 997301.750031 4627331.000018, 997402.500032 4627344.000018, 997541.500031 4627326.500018, 987226.750031 4627372.000018)))', 23032) WHERE lc_name = \"Quairading\";", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "UPDATE error: %s\n", err_msg); sqlite3_free (err_msg); return -34; } rows = 0; columns = 0; ret = sqlite3_get_table (handle, "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT pkid FROM idx_Councils_geom WHERE xmin > 1040523 AND ymin > 4010000 AND xmax < 1140523 AND ymax < 4850000) ORDER BY lc_name;", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error in Mbr SELECT3: %s\n", err_msg); sqlite3_free (err_msg); return -35; } if ((rows != 22) || (columns != 1)) { fprintf (stderr, "Unexpected error: select lc_name bad idx result: %i/%i.\n", rows, columns); sqlite3_free_table (results); sqlite3_close(handle); return -36; } if (strcmp(results[1], "Ascoli Satriano") != 0) { fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]); sqlite3_free_table (results); sqlite3_close(handle); return -37; } if (strcmp(results[22], "Zapponeta") != 0) { fprintf (stderr, "unexpected mbr result at 22: %s\n", results[22]); sqlite3_free_table (results); sqlite3_close(handle); return -38; } sqlite3_free_table (results); ret = sqlite3_exec (handle, "DELETE FROM Councils WHERE lc_name = \"Ascoli Satriano\";", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DELETE error: %s\n", err_msg); sqlite3_free (err_msg); return -39; } rows = 0; columns = 0; ret = sqlite3_get_table (handle, "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT pkid FROM idx_Councils_geom WHERE xmin > 1040523 AND ymin > 4010000 AND xmax < 1140523 AND ymax < 4850000) ORDER BY lc_name;", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error in Mbr SELECT3: %s\n", err_msg); sqlite3_free (err_msg); return -40; } if ((rows != 21) || (columns != 1)) { fprintf (stderr, "Unexpected error: select lc_name bad idx result: %i/%i.\n", rows, columns); sqlite3_free_table (results); sqlite3_close(handle); return -41; } if (strcmp(results[1], "Cagnano Varano") != 0) { fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]); sqlite3_free_table (results); sqlite3_close(handle); return -42; } if (strcmp(results[21], "Zapponeta") != 0) { fprintf (stderr, "unexpected mbr result at 21: %s\n", results[21]); sqlite3_free_table (results); sqlite3_close(handle); return -43; } sqlite3_free_table (results); rows = 0; columns = 0; ret = sqlite3_get_table (handle, "SELECT rowid, nodeno FROM idx_Councils_geom_rowid ORDER BY rowid;", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error in Mbr SELECT: %s\n", err_msg); sqlite3_free (err_msg); return -44; } if ((rows != 61) || (columns != 2)) { fprintf (stderr, "Unexpected error: select rowid bad idx result: %i/%i.\n", rows, columns); sqlite3_free_table (results); sqlite3_close(handle); return -45; } if (strcmp(results[2], "1") != 0) { fprintf (stderr, "unexpected mbr result at 1: %s\n", results[2]); sqlite3_free_table (results); sqlite3_close(handle); return -46; } if (strcmp(results[12], "6") != 0) { fprintf (stderr, "unexpected mbr result at 6: %s\n", results[12]); sqlite3_free_table (results); sqlite3_close(handle); return -47; } sqlite3_free_table (results); ret = sqlite3_exec (handle, "SELECT CheckSpatialIndex('Councils', 'geom');", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CheckSpatialIndex (1) error: %s\n", err_msg); sqlite3_free (err_msg); return -48; } ret = sqlite3_exec (handle, "SELECT CheckSpatialIndex();", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CheckSpatialIndex (2) error: %s\n", err_msg); sqlite3_free (err_msg); return -49; } ret = sqlite3_exec (handle, "SELECT RecoverSpatialIndex('Councils', 'geom');", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "RecoverSpatialIndex (1) error: %s\n", err_msg); sqlite3_free (err_msg); return -50; } ret = sqlite3_exec (handle, "SELECT RecoverSpatialIndex();", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "RecoverSpatialIndex (2) error: %s\n", err_msg); sqlite3_free (err_msg); return -51; } /* / going to create a broken/corrupted SpatialIndex / / - we'll create a new table (with no Primary Key) / - then we'll delete some rows / - and finally we'll perform a Vacuum / - all this notoriously causes R*Tree corruption */ ret = sqlite3_exec (handle, "CREATE TABLE bad_councils AS SELECT lc_name, geom FROM Councils", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE TABLE bad_councils error: %s\n", err_msg); sqlite3_free (err_msg); return -52; } ret = sqlite3_exec (handle, "SELECT RecoverGeometryColumn(1, 'geom', 23032, 'MULTIPOLYGON', 'XY')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "RecoverGeometryColumn(bad_councils) error: %s\n", err_msg); sqlite3_free (err_msg); return -54; } ret = sqlite3_exec (handle, "SELECT RecoverGeometryColumn('bad_councils', 1, 23032, 'MULTIPOLYGON', 'XY')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "RecoverGeometryColumn(bad_councils) error: %s\n", err_msg); sqlite3_free (err_msg); return -55; } ret = sqlite3_exec (handle, "SELECT RecoverGeometryColumn('bad_councils', 'geom', 23032.5, 'MULTIPOLYGON', 'XY')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "RecoverGeometryColumn(bad_councils) error: %s\n", err_msg); sqlite3_free (err_msg); return -56; } ret = sqlite3_exec (handle, "SELECT RecoverGeometryColumn('bad_councils', 'geom', 23032, 1, 'XY')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "RecoverGeometryColumn(bad_councils) error: %s\n", err_msg); sqlite3_free (err_msg); return -57; } ret = sqlite3_exec (handle, "SELECT RecoverGeometryColumn('bad_councils', 'geom', 23032, 'MULTIPOLYGON', 1.5)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "RecoverGeometryColumn(bad_councils) error: %s\n", err_msg); sqlite3_free (err_msg); return -58; } ret = sqlite3_exec (handle, "SELECT RecoverGeometryColumn('bad_councils', 'geom', 23032, 'DUMMY', 'XY')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "RecoverGeometryColumn(bad_councils) error: %s\n", err_msg); sqlite3_free (err_msg); return -59; } ret = sqlite3_exec (handle, "SELECT RecoverGeometryColumn('bad_councils', 'geom', 23032, 'MULTIPOLYGON', 'DUMMY')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "RecoverGeometryColumn(bad_councils) error: %s\n", err_msg); sqlite3_free (err_msg); return -60; } ret = sqlite3_exec (handle, "SELECT RecoverGeometryColumn('bad_councils', 'geom', 23032, 'MULTIPOLYGON', 2)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "RecoverGeometryColumn(bad_councils) error: %s\n", err_msg); sqlite3_free (err_msg); return -61; } ret = sqlite3_exec (handle, "SELECT CreateSpatialIndex('bad_councils', 'geom')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CreateSpatialIndex(bad_councils) error: %s\n", err_msg); sqlite3_free (err_msg); return -62; } ret = sqlite3_exec (handle, "DELETE FROM bad_councils WHERE lc_name LIKE 'C%'", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DELETE FROM bad_councils error: %s\n", err_msg); sqlite3_free (err_msg); return -63; } ret = sqlite3_exec (handle, "VACUUM", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VACUUM error: %s\n", err_msg); sqlite3_free (err_msg); return -64; } ret = sqlite3_exec (handle, "SELECT CheckSpatialIndex('bad_councils', 'geom');", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CheckSpatialIndex (3) error: %s\n", err_msg); sqlite3_free (err_msg); return -65; } ret = sqlite3_exec (handle, "SELECT RecoverSpatialIndex('bad_councils', 'geom');", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "RecoverSpatialIndex (3) error: %s\n", err_msg); sqlite3_free (err_msg); return -66; } ret = sqlite3_exec (handle, "SELECT UpdateLayerStatistics('bad_councils', 'geom');", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "UpdateLayerStatistics (1) error: %s\n", err_msg); sqlite3_free (err_msg); return -67; } ret = sqlite3_exec (handle, "SELECT UpdateLayerStatistics();", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "UpdateLayerStatistics (2) error: %s\n", err_msg); sqlite3_free (err_msg); return -68; } /* END broken SpatialIndex check/recover */ ret = sqlite3_exec (handle, "SELECT Extent(geom) FROM Councils;", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Extent (1) error: %s\n", err_msg); sqlite3_free (err_msg); return -69; } strcpy (sql, "SELECT Count(*) FROM Councils WHERE ROWID IN ("); strcat (sql, "SELECT ROWID FROM SpatialIndex WHERE "); strcat (sql, "f_table_name = 'Councils' AND search_frame = "); strcat (sql, "BuildMbr(10, 10, 20, 20));"); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VirtualSpatialIndex (1) error: %s\n", err_msg); sqlite3_free (err_msg); return -70; } strcpy (sql, "SELECT Count(*) FROM Councils WHERE ROWID IN ("); strcat (sql, "SELECT ROWID FROM SpatialIndex WHERE "); strcat (sql, "f_table_name = 'Councils' AND f_geometry_column = "); strcat (sql, "'geom' AND search_frame = BuildCircleMbr(1019000, "); strcat (sql, "4592000, 10000));"); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VirtualSpatialIndex (2) error: %s\n", err_msg); sqlite3_free (err_msg); return -71; } ret = sqlite3_exec (handle, "SELECT RebuildGeometryTriggers('Councils', 'geom');", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Rebuild triggers error: %s\n", err_msg); sqlite3_free (err_msg); return -72; } ret = sqlite3_exec (handle, "SELECT DisableSpatialIndex('Councils', 'geom');", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Disable index error: %s\n", err_msg); sqlite3_free (err_msg); return -73; } ret = sqlite3_exec (handle, "SELECT RebuildGeometryTriggers('Councils', 'geom');", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Disable index error: %s\n", err_msg); sqlite3_free (err_msg); return -74; } ret = sqlite3_exec (handle, "DROP TABLE Councils;", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE Councils error: %s\n", err_msg); sqlite3_free (err_msg); return -75; } ret = sqlite3_exec (handle, "SELECT DiscardGeometryColumn(1, 'a');", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "invalid DiscardGeometryColumn error: %s\n", err_msg); sqlite3_free (err_msg); return -76; } ret = sqlite3_exec (handle, "SELECT DiscardGeometryColumn('a', 1);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "invalid DiscardGeometryColumn error: %s\n", err_msg); sqlite3_free (err_msg); return -77; } ret = sqlite3_exec (handle, "SELECT CheckSpatialIndex(1, 'a');", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "invalid CheckSpatialIndex error: %s\n", err_msg); sqlite3_free (err_msg); return -78; } ret = sqlite3_exec (handle, "SELECT CheckSpatialIndex('a', 2);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "invalid CheckSpatialIndex error: %s\n", err_msg); sqlite3_free (err_msg); return -79; } ret = sqlite3_exec (handle, "SELECT RecoverSpatialIndex(1, 'a');", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "invalid RecoverSpatialIndex error: %s\n", err_msg); sqlite3_free (err_msg); return -80; } ret = sqlite3_exec (handle, "SELECT RecoverSpatialIndex('a', 2);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "invalid RecoverSpatialIndex error: %s\n", err_msg); sqlite3_free (err_msg); return -81; } ret = sqlite3_exec (handle, "SELECT RecoverSpatialIndex('a');", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "invalid RecoverSpatialIndex error: %s\n", err_msg); sqlite3_free (err_msg); return -82; } ret = sqlite3_exec (handle, "SELECT RecoverSpatialIndex(1);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "invalid RecoverSpatialIndex error: %s\n", err_msg); sqlite3_free (err_msg); return -83; } ret = sqlite3_exec (handle, "SELECT RecoverSpatialIndex('a', 'b', 'c');", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "invalid RecoverSpatialIndex error: %s\n", err_msg); sqlite3_free (err_msg); return -84; } ret = sqlite3_exec (handle, "SELECT RecoverSpatialIndex('a', 'b', 1);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "invalid RecoverSpatialIndex error: %s\n", err_msg); sqlite3_free (err_msg); return -85; } ret = sqlite3_exec (handle, "SELECT CreateSpatialIndex(1, 'a');", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "invalid CreateSpatialIndex error: %s\n", err_msg); sqlite3_free (err_msg); return -86; } ret = sqlite3_exec (handle, "SELECT CreateSpatialIndex('a', 2);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "invalid CreateSpatialIndex error: %s\n", err_msg); sqlite3_free (err_msg); return -87; } ret = sqlite3_exec (handle, "SELECT DisableSpatialIndex(1, 'a');", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "invalid DisableSpatialIndex error: %s\n", err_msg); sqlite3_free (err_msg); return -88; } ret = sqlite3_exec (handle, "SELECT DisableSpatialIndex('a', 2);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "invalid DisableSpatialIndex error: %s\n", err_msg); sqlite3_free (err_msg); return -89; } ret = sqlite3_exec (handle, "SELECT RebuildGeometryTriggers(1, 'a');", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "invalid RebuildGeometryTriggers error: %s\n", err_msg); sqlite3_free (err_msg); return -90; } ret = sqlite3_exec (handle, "SELECT RebuildGeometryTriggers('a', 2);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "invalid RebuildGeometryTriggers error: %s\n", err_msg); sqlite3_free (err_msg); return -91; } ret = sqlite3_exec (handle, "SELECT UpdateLayerStatistics('a', 2);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "invalid UpdateLayerStatistics error: %s\n", err_msg); sqlite3_free (err_msg); return -92; } ret = sqlite3_exec (handle, "SELECT UpdateLayerStatistics(2, 'a');", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "invalid UpdateLayerStatistics error: %s\n", err_msg); sqlite3_free (err_msg); return -93; } /* final DB cleanup */ ret = sqlite3_exec (handle, "DROP TABLE bad_councils", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE bad_councils error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -94; } ret = sqlite3_exec (handle, "DROP TABLE idx_bad_councils_geom", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE idx_bad_councils_geom error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -95; } ret = sqlite3_exec (handle, "DROP TABLE idx_Councils_geom", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE idx_Councils_geom error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -96; } ret = sqlite3_exec (handle, "DELETE FROM geometry_columns", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DELETE FROM geometry_columns error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -97; } if (legacy) { /* only required for legacy style metadata */ ret = sqlite3_exec (handle, "DELETE FROM layer_statistics", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DELETE FROM layer_statistics error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -98; } } ret = sqlite3_exec (handle, "DELETE FROM spatialite_history WHERE geometry_column IS NOT NULL", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DELETE FROM spatialite_history error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -99; } ret = sqlite3_exec (handle, "VACUUM", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VACUUM error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -100; } #endif /* end ICONV conditional */ /* ok, succesfull termination */ return 0; } int main (int argc, char *argv[]) { #ifndef OMIT_ICONV /* only if ICONV is supported */ int ret; sqlite3 *handle; char *err_msg = NULL; void *cache = spatialite_alloc_connection(); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ /* testing current style metadata layout >= v.4.0.0 */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); sqlite3_close(handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata()", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -2; } ret = do_test(handle, 0); if (ret != 0) { fprintf(stderr, "error while testing current style metadata layout\n"); return ret; } ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -101; } spatialite_cleanup_ex (cache); /* testing legacy style metadata layout <= v.3.1.0 */ cache = spatialite_alloc_connection(); ret = system("cp test-legacy-3.0.1.sqlite copy-legacy-3.0.1.sqlite"); if (ret != 0) { fprintf(stderr, "cannot copy legacy v.3.0.1 database\n"); return -1; } ret = sqlite3_open_v2 ("copy-legacy-3.0.1.sqlite", &handle, SQLITE_OPEN_READWRITE, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "cannot open legacy v.3.0.1 database: %s\n", sqlite3_errmsg (handle)); sqlite3_close(handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = do_test(handle, 1); if (ret != 0) { fprintf(stderr, "error while testing legacy style metadata layout\n"); return ret; } ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -101; } spatialite_cleanup_ex (cache); ret = unlink("copy-legacy-3.0.1.sqlite"); if (ret != 0) { fprintf(stderr, "cannot remove legacy v.3.0.1 database\n"); return -1; } #endif /* end ICONV conditional */ return 0; } libspatialite-4.1.1/test/check_virtualtable3.c0000664000175000017500000005105412163502133016330 00000000000000/* check_virtualtable3.c -- SpatiaLite Test Case Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Ahmadou Dicko Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #define _GNU_SOURCE #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" #ifdef _WIN32 #include "asprintf4win.h" #endif int main (int argc, char *argv[]) { #ifndef OMIT_ICONV /* only if ICONV is supported */ sqlite3 *db_handle = NULL; char *sql_statement; int ret; char *err_msg = NULL; char **results; int rows; int columns; void *cache = spatialite_alloc_connection(); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } spatialite_init_ex (db_handle, cache, 0); ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE dbftest USING VirtualDBF(shapetest1.dbf, UTF-8);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VirtualDBF error: %s\n", err_msg); sqlite3_free (err_msg); return -2; } asprintf(&sql_statement, "select testcase1, testcase2 from dbftest where testcase2 < 20;"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free(sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -3; } if ((rows != 1) || (columns != 2)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -4; } if (strcmp(results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -5; } if (strcmp(results[2], "windward") != 0) { fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[2]); return -6; } if (strcmp(results[3], "2") != 0) { fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[3]); return -7; } sqlite3_free_table (results); asprintf(&sql_statement, "select testcase1, testcase2 from dbftest where testcase2 <= 19;"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free(sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -10; } if ((rows != 1) || (columns != 2)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -11; } if (strcmp(results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -12; } if (strcmp(results[2], "windward") != 0) { fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[2]); return -13; } if (strcmp(results[3], "2") != 0) { fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[3]); return -14; } sqlite3_free_table (results); asprintf(&sql_statement, "select testcase1, testcase2 from dbftest where testcase2 = 20;"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free(sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -16; } if ((rows != 1) || (columns != 2)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -17; } if (strcmp(results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -18; } if (strcmp(results[2], "orde lees") != 0) { fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n", results[2]); return -19; } if (strcmp(results[3], "20") != 0) { fprintf (stderr, "Unexpected error: integer2() bad result: %s.\n", results[3]); return -20; } sqlite3_free_table (results); asprintf(&sql_statement, "select testcase1, testcase2 from dbftest where testcase2 > 2;"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free(sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -22; } if ((rows != 1) || (columns != 2)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -23; } if (strcmp(results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -24; } if (strcmp(results[2], "orde lees") != 0) { fprintf (stderr, "Unexpected error: orde lees2 bad result: %s.\n", results[2]); return -25; } if (strcmp(results[3], "20") != 0) { fprintf (stderr, "Unexpected error: integer4() bad result: %s.\n", results[3]); return -26; } sqlite3_free_table (results); asprintf(&sql_statement, "select testcase1, testcase2 from dbftest where testcase2 >= 20;"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free(sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -28; } if ((rows != 1) || (columns != 2)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -29; } if (strcmp(results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -30; } if (strcmp(results[2], "orde lees") != 0) { fprintf (stderr, "Unexpected error: orde lees3 bad result: %s.\n", results[2]); return -31; } if (strcmp(results[3], "20") != 0) { fprintf (stderr, "Unexpected error: integer5() bad result: %s.\n", results[3]); return -32; } sqlite3_free_table (results); asprintf(&sql_statement, "select testcase1, testcase2 from dbftest where testcase1 < \"p\";"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free(sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -34; } if ((rows != 1) || (columns != 2)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -35; } if (strcmp(results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -36; } if (strcmp(results[2], "orde lees") != 0) { fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n", results[2]); return -37; } if (strcmp(results[3], "20") != 0) { fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[3]); return -38; } sqlite3_free_table (results); asprintf(&sql_statement, "select testcase1, testcase2 from dbftest where testcase1 <= \"p\";"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free(sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -40; } if ((rows != 1) || (columns != 2)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -41; } if (strcmp(results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -42; } if (strcmp(results[2], "orde lees") != 0) { fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n", results[2]); return -43; } if (strcmp(results[3], "20") != 0) { fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[3]); return -44; } sqlite3_free_table (results); ret = sqlite3_exec (db_handle, "BEGIN;", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "BEGIN error: %s\n", err_msg); sqlite3_free (err_msg); return -46; } asprintf(&sql_statement, "select testcase1, testcase2 from dbftest where testcase1 > \"p\";"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free(sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -48; } if ((rows != 1) || (columns != 2)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -49; } if (strcmp(results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -50; } if (strcmp(results[2], "windward") != 0) { fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[2]); return -51; } if (strcmp(results[3], "2") != 0) { fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[3]); return -52; } sqlite3_free_table (results); ret = sqlite3_exec (db_handle, "DELETE FROM dbftest WHERE testcase2 = 2;", NULL, NULL, &err_msg); if (ret != SQLITE_READONLY) { fprintf (stderr, "UPDATE error: %s\n", err_msg); sqlite3_free (err_msg); return -46; } sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "ROLLBACK;", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "ROLLBACK error: %s\n", err_msg); sqlite3_free (err_msg); return -47; } asprintf(&sql_statement, "select testcase1, testcase2 from dbftest where testcase1 >= \"p\";"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free(sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -54; } if ((rows != 1) || (columns != 2)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -55; } if (strcmp(results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -56; } if (strcmp(results[2], "windward") != 0) { fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[2]); return -57; } if (strcmp(results[3], "2") != 0) { fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[3]); return -58; } sqlite3_free_table (results); asprintf(&sql_statement, "select testcase1, testcase2 from dbftest where testcase1 = \"windward\";"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free(sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -54; } if ((rows != 1) || (columns != 2)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -55; } if (strcmp(results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -56; } if (strcmp(results[2], "windward") != 0) { fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[2]); return -57; } if (strcmp(results[3], "2") != 0) { fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[3]); return -58; } sqlite3_free_table (results); asprintf(&sql_statement, "select testcase1, testcase2 from dbftest where PKUID = 1;"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free(sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -60; } if ((rows != 1) || (columns != 2)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -61; } if (strcmp(results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -62; } if (strcmp(results[2], "windward") != 0) { fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[2]); return -63; } if (strcmp(results[3], "2") != 0) { fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[3]); return -64; } sqlite3_free_table (results); asprintf(&sql_statement, "select testcase1, testcase2 from dbftest where PKUID < 2;"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free(sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -66; } if ((rows != 1) || (columns != 2)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -67; } if (strcmp(results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -68; } if (strcmp(results[2], "windward") != 0) { fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[2]); return -69; } if (strcmp(results[3], "2") != 0) { fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[3]); return -70; } sqlite3_free_table (results); asprintf(&sql_statement, "select testcase1, testcase2 from dbftest where PKUID <= 1;"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free(sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -72; } if ((rows != 1) || (columns != 2)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -73; } if (strcmp(results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -74; } if (strcmp(results[2], "windward") != 0) { fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[2]); return -75; } if (strcmp(results[3], "2") != 0) { fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[3]); return -76; } sqlite3_free_table (results); asprintf(&sql_statement, "select testcase1, testcase2 from dbftest where PKUID > 1;"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free(sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -78; } if ((rows != 1) || (columns != 2)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -79; } if (strcmp(results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -80; } if (strcmp(results[2], "orde lees") != 0) { fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n", results[2]); return -81; } if (strcmp(results[3], "20") != 0) { fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[3]); return -82; } sqlite3_free_table (results); asprintf(&sql_statement, "select testcase1, testcase2 from dbftest where PKUID >= 2;"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free(sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -84; } if ((rows != 1) || (columns != 2)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -85; } if (strcmp(results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -86; } if (strcmp(results[2], "orde lees") != 0) { fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n", results[2]); return -87; } if (strcmp(results[3], "20") != 0) { fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[3]); return -88; } sqlite3_free_table (results); asprintf(&sql_statement, "select PKUID, testcase1, testcase2 from dbftest where testcase1 LIKE \"wind%%\";"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free(sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -90; } if ((rows != 1) || (columns != 3)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -91; } if (strcmp(results[0], "PKUID") != 0) { fprintf (stderr, "Unexpected error: header uid bad result: %s.\n", results[0]); return -92; } if (strcmp(results[1], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header bad result: %s.\n", results[1]); return -93; } if (strcmp(results[3], "1") != 0) { fprintf (stderr, "Unexpected error: windward PK bad result: %s.\n", results[3]); return -93; } if (strcmp(results[4], "windward") != 0) { fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[4]); return -94; } sqlite3_free_table (results); ret = sqlite3_exec (db_handle, "DROP TABLE dbftest;", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE error: %s\n", err_msg); sqlite3_free (err_msg); return -49; } /* error cases */ ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE toofewargs USING VirtualDBF(\"shapetest1.dbf\");", NULL, NULL, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "VirtualDBF unexpected result: %i\n", ret); return -95; } sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE toomanyargs USING VirtualDBF(\"shapetest1.dbf\", UTF-8, 1);", NULL, NULL, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "VirtualDBF unexpected result: %i\n", ret); return -96; } sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE nosuchfile USING VirtualDBF(\"not_a_file.dbf\", UTF-8);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VirtualDBF error: %s\n", err_msg); sqlite3_free (err_msg); return -97; } ret = sqlite3_get_table (db_handle, "SELECT * from nosuchfile;", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -98; } if ((rows != 0) || (columns != 0)) { fprintf (stderr, "Unexpected error: select columns no suchfile: %i/%i.\n", rows, columns); return -99; } sqlite3_free_table (results); ret = sqlite3_exec (db_handle, "DROP TABLE nosuchfile;", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE error: %s\n", err_msg); sqlite3_free (err_msg); return -100; } ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE onesidedquote USING VirtualDBF('shapetest1.dbf, UTF-8);", NULL, NULL, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "VirtualDBF unexpected result: %i\n", ret); return -101; } sqlite3_free (err_msg); sqlite3_close (db_handle); spatialite_cleanup_ex (cache); #endif /* end ICONV conditional */ return 0; } libspatialite-4.1.1/test/raster_se.xml0000664000175000017500000000357312163502133014762 00000000000000 raster - basic test raster - fantasy raster a style using "dont't care" rendering fantasy raster 2000000 1.0 libspatialite-4.1.1/test/shapetest1.prj0000664000175000017500000000021712163502133015037 00000000000000GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]libspatialite-4.1.1/test/thunderstorm_mild.svg0000664000175000017500000000613712163502134016535 00000000000000 image/svg+xml libspatialite-4.1.1/test/books-bad.xml0000664000175000017500000000135212163502133014625 00000000000000 The Pickwick PapersOliver TwistDavid Copperfield A Christmas CarolHard Times The Scarlet Letter Vanity Fair The Luck of Barry Lyndon Lord JimThe Secret AgentHeart of Darkness libspatialite-4.1.1/test/Makefile.am0000664000175000017500000001142412163502133014277 00000000000000INCLUDES = @CFLAGS@ @GEOS_CFLAGS@ @LIBXML2_CFLAGS@ check_PROGRAMS = check_endian \ check_version \ check_init \ check_init2 \ check_geom_aux \ check_geometry_cols \ check_create \ check_bufovflw \ check_fdo1 \ check_fdo2 \ check_fdo3 \ check_fdo_bufovflw \ check_md5 \ check_dbf_load \ check_shp_load \ check_shp_load_3d \ shape_cp1252 \ shape_primitives \ shape_utf8_1 \ shape_utf8_1ex \ shape_utf8_2 \ shape_3d \ check_xls_load \ check_math_funcs \ check_gaia_util \ check_gaia_utf8 \ check_extension \ check_recover_geom \ check_sql_stmt \ check_virtualtable1 \ check_virtualtable2 \ check_virtualtable3 \ check_virtualtable4 \ check_virtualtable5 \ check_virtualtable6 \ check_virtual_ovflw \ check_mbrcache \ check_spatialindex \ check_exif \ check_exif2 \ check_relations_fncts \ check_extra_relations_fncts \ check_geoscvt_fncts \ check_libxml2 \ check_styling \ check_virtualxpath \ check_wfsin \ check_dxf if ENABLE_GEOPACKAGE check_PROGRAMS += \ check_createBaseTables \ check_add_tile_triggers \ check_add_tile_triggers_bad_table_name \ check_add_rt_metadata_triggers_bad_table_name \ check_add_rt_metadata_triggers_wrong_arg_type \ check_add_rt_metadata_triggers \ check_get_normal_row \ check_get_normal_row_bad_geopackage \ check_get_normal_row_bad_geopackage2 \ check_get_normal_zoom \ check_get_normal_zoom_extension_load \ check_get_normal_zoom_bad_geopackage \ check_get_normal_zoom_bad_geopackage2 \ check_point_to_tile_wrong_arg_type \ check_point_to_tile \ check_point_to_tile_integer_coordinates \ check_point_to_tile_bad_tablename \ check_point_to_tile_broken_geopackage \ check_point_to_tile_broken_geopackage2 \ check_point_to_tile_no_tile \ check_point_to_tile_multiresult \ check_point_to_tile_different_srid \ check_point_to_tile_broken_srid \ check_gpkgGetImageFormat \ check_gpkgGetImageFormat_nonimage \ check_gpkgGetImageFormat_nonblob \ check_gpkgGetImageFormat_png \ check_gpkgGetImageFormat_tiff \ check_gpkgGetImageFormat_webp endif AM_CFLAGS = -I@srcdir@/../src/headers -I@srcdir@ AM_LDFLAGS = -L../src -lspatialite -lm $(GCOV_FLAGS) TESTS = $(check_PROGRAMS) MOSTLYCLEANFILES = *.gcna *.gcno *.gcda EXTRA_DIST = asprintf4win.h \ fnmatch_impl4win.h \ fnmatch4win.h \ scandir4win.h \ test_helpers.h \ shapetest1.dbf \ shapetest1.prj \ shapetest1.qpj \ shapetest1.shp \ shapetest1.shx \ test_under_valgrind.sh \ WritingSQLTestCase.txt \ test-legacy-2.3.1.sqlite \ test-legacy-3.0.1.sqlite \ test-invalid.sqlite \ shp/new-caledonia/buildings.dbf \ shp/new-caledonia/buildings.prj \ shp/new-caledonia/buildings.shp \ shp/new-caledonia/buildings.shx \ shp/new-caledonia/points.dbf \ shp/new-caledonia/points.prj \ shp/new-caledonia/points.shp \ shp/new-caledonia/points.shx \ shp/new-caledonia/railways.dbf \ shp/new-caledonia/railways.shp \ shp/new-caledonia/railways.shx \ shp/gaza/aeroway.dbf \ shp/gaza/aeroway.prj \ shp/gaza/aeroway.shp \ shp/gaza/aeroway.shx \ shp/gaza/barrier.dbf \ shp/gaza/barrier.prj \ shp/gaza/barrier.shp \ shp/gaza/barrier.shx \ shp/gaza/route.dbf \ shp/gaza/route.prj \ shp/gaza/route.shp \ shp/gaza/route.shx \ shp/taiwan/hystoric.dbf \ shp/taiwan/hystoric.prj \ shp/taiwan/hystoric.shp \ shp/taiwan/hystoric.shx \ shp/taiwan/leisure.dbf \ shp/taiwan/leisure.prj \ shp/taiwan/leisure.shp \ shp/taiwan/leisure.shx \ shp/taiwan/route.dbf \ shp/taiwan/route.prj \ shp/taiwan/route.shp \ shp/taiwan/route.shx \ shp/merano-3d/points.dbf \ shp/merano-3d/points.prj \ shp/merano-3d/points.shp \ shp/merano-3d/points.shx \ shp/merano-3d/polygons.dbf \ shp/merano-3d/polygons.prj \ shp/merano-3d/polygons.shp \ shp/merano-3d/polygons.shx \ shp/merano-3d/roads.dbf \ shp/merano-3d/roads.prj \ shp/merano-3d/roads.shp \ shp/merano-3d/roads.shx \ shp/foggia/local_councils.dbf \ shp/foggia/local_councils.prj \ shp/foggia/local_councils.shp \ shp/foggia/local_councils.shx \ testcase1.xls \ testcase1.csv \ books.xml books.xsd opera.xml opera.xsd \ movies.xml movies.xsd books-bad.xml books-bad.xsd \ inspire-data-example.xml stazioni_se.xml \ raster_se.xml thunderstorm_mild.svg \ tile000.jpeg tile101.jpeg tile111.jpeg \ test.webp tile100.jpeg tile110.jpeg \ Apple-iPhone-4.jpg empty.png empty.tif \ test.wfs testDescribeFeatureType.wfs \ getcapabilities-1.0.0.wfs \ getcapabilities-1.1.0.wfs \ describefeaturetype.wfs \ 22.dxf f06.dxf l02.dxf p05.dxf \ archaic.dxf linked.dxf hatch.dxf \ symbol.dxf SUBDIRS = sql_stmt_geosadvanced_tests sql_stmt_geos_tests \ sql_stmt_geostrunk_tests sql_stmt_libxml2_tests \ sql_stmt_lwgeom_tests sql_stmt_mathsql_tests \ sql_stmt_proj_tests sql_stmt_security_tests \ sql_stmt_tests sql_stmt_xmlsec_tests libspatialite-4.1.1/test/check_geometry_cols.c0000664000175000017500000001617612163502133016430 00000000000000/* check_create.c -- SpatiaLite Test Case Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include "sqlite3.h" #include "spatialite.h" int main (int argc, char *argv[]) { int ret; sqlite3 *handle; char *err_msg = NULL; char **results; int rows; int columns; void *cache = spatialite_alloc_connection(); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle)); sqlite3_close(handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -2; } ret = sqlite3_exec (handle, "CREATE TABLE Point_Test (Name TEXT, Description TEXT)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE TABLE error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -3; } ret = sqlite3_get_table (handle, "SELECT AddGeometryColumn(26, 'geomZ', 4326, 'POINT', 'XYZ', 0)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -4; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected result AddGeometryColumn int arg1 bad result: %i/%i.\n", rows, columns); return -5; } if (strcmp(results[1], "0") != 0) { fprintf (stderr, "Unexpected result: AddGeometryColumn with non-text arg1 passed: %s.\n", results[1]); return -6; } sqlite3_free_table (results); ret = sqlite3_get_table (handle, "SELECT AddGeometryColumn('Point_Test', 8, 4326, 'POINT', 'XYZ', 0)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -7; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected result AddGeometryColumn int arg2 bad result: %i/%i.\n", rows, columns); return -8; } if (strcmp(results[1], "0") != 0) { fprintf (stderr, "Unexpected result: AddGeometryColumn with non-text arg2 passed: %s.\n", results[1]); return -9; } sqlite3_free_table (results); ret = sqlite3_get_table (handle, "SELECT AddGeometryColumn('Point_Test', 'geomZ', 'sometext', 'POINT', 'XYZ', 0)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -10; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected result AddGeometryColumn text arg3 bad result: %i/%i.\n", rows, columns); return -11; } if (strcmp(results[1], "0") != 0) { fprintf (stderr, "Unexpected result: AddGeometryColumn with non-int arg3 passed: %s.\n", results[1]); return -12; } sqlite3_free_table (results); ret = sqlite3_get_table (handle, "SELECT AddGeometryColumn('Point_Test', 'geomZ', 4326, 'POINT', 'XYZ', 0)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -13; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected result AddGeometryColumn bad result: %i/%i.\n", rows, columns); return -14; } if (strcmp(results[1], "1") != 0) { fprintf (stderr, "Unexpected error: AddGeometryColumn with good args failed: %s.\n", results[1]); return -15; } sqlite3_free_table (results); ret = sqlite3_exec (handle, "INSERT INTO Point_Test (Name, Description, geomZ) VALUES ('Point 1', 'Some point', GeomFromText('POINTZ(136 -33 365)', 4326))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT POINT XYZ error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -16; } ret = sqlite3_get_table (handle, "SELECT DiscardGeometryColumn('Point_Test', 'geomZ')", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -17; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected result DiscardGeometryColumn bad result: %i/%i.\n", rows, columns); return -18; } if (strcmp(results[1], "1") != 0) { fprintf (stderr, "Unexpected error: DiscardGeometryColumn failed: %s.\n", results[1]); return -19; } sqlite3_free_table (results); ret = sqlite3_get_table (handle, "SELECT RecoverGeometryColumn('Point_Test', 'geomZ', 4326, 'POINT', 'XYZ')", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -20; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected result RecoverGeometryColumn bad result: %i/%i.\n", rows, columns); return -21; } if (strcmp(results[1], "1") != 0) { fprintf (stderr, "Unexpected error: RecoverGeometryColumn failed: %s.\n", results[1]); return -22; } sqlite3_free_table (results); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -23; } spatialite_cleanup_ex (cache); return 0; } libspatialite-4.1.1/test/sql_stmt_tests/0000775000175000017500000000000012163503232015412 500000000000000libspatialite-4.1.1/test/sql_stmt_tests/geomfromtext3.testcase0000664000175000017500000000035212163502134021672 00000000000000geomfromtext3 :memory: #use in-memory database SELECT AsWkt(GeomFromText("LINESTRING(4 0, 4 4, 8 4)"), 4); 1 # rows (not including the header row) 1 # columns AsWkt(GeomFromText("LINESTRING(4 0, 4 4, 8 4)"), 4) LINESTRING(4 0,4 4,8 4)libspatialite-4.1.1/test/sql_stmt_tests/compressgeometry37.testcase0000664000175000017500000000052312163502133022647 00000000000000CompressGeometry - MULTIPOINT ZM :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("MULTIPOINTZM(10 10 100 1, 11 11 101 2)", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("MULTIPOINTZM(10 10 100 1, 11 11 101 2)", 4326))) MULTIPOINT ZM(10 10 100 1, 11 11 101 2) libspatialite-4.1.1/test/sql_stmt_tests/pointn6.testcase0000664000175000017500000000024412163502134020464 00000000000000pointN - text arg (error) :memory: #use in-memory database SELECT PointN("hello", 1); 1 # rows (not including the header row) 1 # columns PointN("hello", 1) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/compressgeometry11.testcase0000664000175000017500000000110012163502133022627 00000000000000CompressGeometry - GEOMETRYCOLLECTION / LINESTRINGZM :memory: #use in-memory database SELECT Hex(CompressGeometry(GeomFromText("GeometryCollectionZM(LINESTRINGZM(1 2 0 1, 3 4 0 1))"))) 1 # rows (not including the header row) 1 # columns Hex(CompressGeometry(GeomFromText("GeometryCollectionZM(LINESTRINGZM(1 2 0 1, 3 4 0 1))"))) 000100000000000000000000F03F0000000000000040000000000000084000000000000010407CBF0B00000100000069FA4D0F0002000000000000000000F03F00000000000000400000000000000000000000000000F03F000000000000084000000000000010400000000000000000000000000000F03FFE libspatialite-4.1.1/test/sql_stmt_tests/mbr7.testcase0000664000175000017500000000036612163502134017743 00000000000000MbrContains - bad blob (error) + Point :memory: #use in-memory database SELECT MbrContains(zeroblob(49), GeomFromText("POINT(2 1)")); 1 # rows (not including the header row) 1 # columns MbrContains(zeroblob(49), GeomFromText("POINT(2 1)")) (NULL)libspatialite-4.1.1/test/sql_stmt_tests/fromewkt31.testcase0000664000175000017500000000066412163502134021077 00000000000000fromewkt31 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POINT(0 0 9), LINESTRING(1 1 9, 2 2 9))))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POINT(0 0 9), LINESTRING(1 1 9, 2 2 9))))')); GEOMETRYCOLLECTION Z(POINT Z(0 0 9), LINESTRING Z(1 1 9, 2 2 9)) libspatialite-4.1.1/test/sql_stmt_tests/geojson4.testcase0000664000175000017500000000110712163502134020616 00000000000000GeoJSON MultiPolygon :memory: #use in-memory database SELECT AsGeoJSON(GeomFromText("MULTIPOLYGON(((5 5, 6 5, 6 6, 5 6, 5 5)), ((3 3, 4 3, 4 4, 3 4, 4 4)))", 4326), 2, 5); 1 # rows (not including the header row) 1 # columns AsGeoJSON(GeomFromText("MULTIPOLYGON(((5 5, 6 5, 6 6, 5 6, 5 5)), ((3 3, 4 3, 4 4, 3 4, 4 4)))", 4326), 2, 5) {"type":"MultiPolygon","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:EPSG:4326"}},"bbox":[3,3,6,6],"coordinates":[[[[5,5],[6,5],[6,6],[5,6],[5,5]]],[[[3,3],[4,3],[4,4],[3,4],[4,4]]]]}:0 # trailing ":0" required to avoid truncation !!! libspatialite-4.1.1/test/sql_stmt_tests/makeline17.testcase0000664000175000017500000000044212163502134021024 00000000000000makeline17 :memory: #use in-memory database SELECT AsText(MakeLine(GeomFromText("POINT(0 0)"), GeomFromText("POINTZ(1 2 2.4)"))); 1 # rows (not including the header row) 1 # columns AsText(MakeLine(GeomFromText("POINT(0 0)"), GeomFromText("POINTZ(1 2 2.4)"))) LINESTRING Z(0 0 0, 1 2 2.4) libspatialite-4.1.1/test/sql_stmt_tests/DSC_1467.JPG0000664000175000017500000035524112163502133016777 00000000000000ExifMM*  (12;%7iT#4NIKON CORPORATIONNIKON D700,,Nikon Transfer 1.1 W2011:03:26 14:16:34 '.6"'0221>R fn  v|ؒ,~5050500100P,    5B@ 2011:03:26 11:01:132011:03:26 11:01:13,ASCII R980100NikonMM*.02106 >L  T  t | "#:$<%*H    G:L"BASIC AUTO 0AF-C :P  210059001000100STANDARDSTANDARDH H F,8 0212*frb{,>='4酩+T&!EtX|z/UI1cuf$;UXJ9X]XG貥t ˴[̩$wB yѿj+Z%u X69|} gSffRHg }i~#lNYp"ud[{6ѕdn,Nt8ZYtxDZ*\9JZPֱ8^aղfOcn)z`om:T-|.'=*=ͯ7b0@sr{Ѣݔ}/mNS^ OڿOFY͠E056nQۼ<Q{mW)-ɚaK CAbHw/ݎ)<3 wq$LI AX&%#@r5$mhO ~So,ܑi@AV15b7߰,>='š+T&!Eo`z)|csM*0_8⵱$;UXJ9\މ]ZG# 6Is y%?ת6{[du'CpxXNl#~ gHS<v)dӋ]IP͞i~LsZ382b.3}gs/,QslKm*߃eĵvѥGげ]\L9j XU;14}O$R"C_9m oE!&T+զ>6ģ7b51^KwB͗-nLS\^ Oh2%AJ4@(x@/n46i'RFQqN^ `hً3<:.wExʂTZj`rQdd񘜛g?hGViLQZp:MP ~*rJ˳BگhD6ҟȇ@z>8Vx.B2!=˧ 8*)3](vW1pLJбKMǷ l9̶]"G,t feݏID&\.me6{[du"p[mK!~f &RjfzHo?z!|] c6Xvh%7ˌ+mWx /Fؓ=H!Y3u/=nQ'>Sg*ISșmcI`P!vT+˦\ifieI7bYNVvBؗ-$M^"82"A }K>F( v_dq:ChC*=BWnrl?~&-fd9h604Ƈ ψ2 ^|JCIvȞ@uqrl4K&%dhOGږ Sn-%BvV15b7߰X='.*Eo`z)|csM*0_9H$;UXJ2\މ]ZD췌vϱL.I(z 3mט96[d u"!pRYNWB#j}4gHGfRąR|M }i~#lNYp"ud[{6㕂?Њmy CIeƴ tG/v!,3R= d)NJHղfSABm٫T+Y^:wV q2UO GΩ[D{n*'ho5F|#"%8ھy t˹~e6ac4K9 Wxp?blQu/(g}j.;irLCEPzzPECLr݊i;.j}g(/uQlb?pxW 9K4>ZM0v!,3R= d)NJHղfSABXm٫T+Y^:wV q2UO GΩ[D{n*'ho5F|#"%8ھy t˹~e6ac4K9 Wxp?blQu/(g}j.;irLCEPzzPECLr݊i;.j}g(/uQlb?pxW 9K4>ZM0v!,3R= d)NJHղfSABXm٫T+Y^:wV q2UO GΩ[D{n*'ho5F|#"%8ھy t˹~e6ac4K9 Wxp?blQu/(g}j.;irLCEPzzPECLr݊i;.j}g(/uQlb?pxW 9K4>ZM0v!,3R= d)NJHղfSABXm٫T+Y^:wV q2UO GΩ[D{n*'ho5F|#"%8ھy t˹~e6ac4K9 Wxp?blQu/(g}j.;irLCEPzzPECLr݊i;.j}g(/uQlb?pxW 9K4>ZM0v!,3R= d)NJHղfSABXm٫T+Y^:wV q2UO GΩ[D{n*'ho5F|#"%8ھy t˹~e6ac4K9 Wxp?blQu/(g}j.;irLCEPzzPECLr݊i;.j}g(/uQlb?pxW 9K4>ZM0v!,3R= d)NJHղfSABXm٫T+Y^:wV q2UO GΩ[D{n*'ho5F|#*%8ھy t˹~e6ac4K9 Wxp?blQu/(g}j.;irLCEPzzPECLr݊i;.j}g(/uQlb?pxW 9K4>ZM0v!,3R= d)NJHղfSABXm٫T+Y^:wV q2UO GΩ[D{n*'ho5F|#"%8ھy t˹~e6ac4K9 Wxp?blQu/(g}j.;irLCEPzzPECLAEOFF 0209V15b7߰,>=E,š+G$#Gocz)TlcpP]" ^⢱4?OEX78IA)ڡ_>}Gmq\txIC ym?Ә6{[dt"q l#~j} cHRffRHg }ЊyB CIR85 t^vZ] խXU;0׺9_*sb|)z`!U*ԦM=>,ͪ7b51VvBؗ}-nLS^ Oh2%AK4Fr(@ɔ. PWQDqzrj 3<:/akka/:<3 ~wlqDE]Z .Ö@(rF4KA%2hO ^܃SXn-ސkBՑvV%5h=߰,>='š+T&!Eo`z)|crL*1_8㵰%:U4XK8\߉\ZGSu ʴd򩇎HC yl?֘"qZdu pXNm"i| SgRifgRIg }h~#lOYq#ue[z7є>Ћmx BIeƵ tG΀[]]9JXU;$ױ9^0+Msb|)zaoE &U*ԧ'=>,̪6c50VwBٗ~-nMS_ Oh3%@J4Gr)@Ȟ/ QVPEqywk 3<:/`kja.;=<&`x ~$уc6eO}; *g8@"|\aF"5'M*D[Y:O2q# 1V2(w:YԤ)JmX`uB&As|SfB?J)+d4Z=WER6, vR0HZ{Kj x?bF zi?ݘ6{[du#qYNl#~i} gHRffRHg }i~#lNYp"ue[z 7>.? C4Ja¹ tG0203Z16^$%U='0100 9 01000100d<D(54GHH##(#HHx! }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ??( ( ( ( (?}g7c{k̯zsߩOO£/k1QeA)8؜u5\_BYl/ԝ0'<2QǷ4:_CHnڑ+g2Elҥm ץ.f+A161=}}] ztJ\"fH9oΝD"fݑ2GKI6G35]J@vD3Uu)IBU1{cާYQ`c'qoÌrQ+1~՞6ǰsRnR2Xq8is-sjݭiq]Z w}>YLgs$-Us.Ul=ϯJ"[/I5[jf[~U2{sڠ~_CNhOPç~ҜgZ\5mH#QYz*U1HIF1qB] Tv!Fp3Ƞ(-oҪ-hl-[맭G \IP7vT6zs{#NNNT+G<=nNK\Uqs][^x2j+c7uwɠ}^jf2HpxU=YXCCUd= 2Zz{tbv=~4؉_gWajzC[_x#mKG#`+=;ڸk#*@8XXOFek LguND=q;t/ikvˌ}*{iw2́Tpcp}^n!]K\8#RG6z\LnNr껃qcҚ|hiJI 8*G#=e4%f͖X~-֢a?.%edِu#vVbP~"jFliِJ3)9oU[8Umou n=bNA:{s!Tm!-ur Bzzxn2jTS! @5[\|i"[ymG!9ZQΩc'a3U̓SjqjnBKl'ۿQu={ۡ>o$r ӵz)~H%u2c}F~ϼZvfOӮj_j*%#׀hm}Mc ;r.oѻӯ1:*ܐ7g^Jڷ2^Z3!G bG%Gt}7?ϭ K*3q$\8q<#>'AzWߵ/~4~"w7lQd9%.?IwvRkK?[ljkxe .MnV57⽋Ur9/g(BHZ=_Go#?׿Z9?^8MG s߉??R;"\m{ Q]Wg4{-?(zIJRx9/ыQE83Jך۲N]l`48dž|9 @sҳViȟL i=0Q\*k˛LNJ1~R$1@Hq^DX5nWOT%JKjwѕ@P\!GNQQK{?B&kE/yO٥v6cօnP[9{v6R}z^9~6=**1ֱpm~FԚe{Yy uOAyp-..f;@ek}*$U%OA4o -Zփ.^Es+jBkkn-Ү 1hA"[gy<0u2ћq+ꟺVVNNVdpq\wњ^6xju->[7u:9ZpQ3~_hXíiz}ʹ%֗ikn8.46_ғӷ~-\R,b*&{dWX$U|i mdX\&F=:0yxj8SVgQk쥏QGJ8s)8ZɦeV9{SԞ !Ta4B@XSfp 6_ tCķe$m⹻67r ei.U! Də0$50y}l Ukb\+4rkMGzSߵ)JU"ԕO}_(R+J`;HPh*qN?ZYc {{WiЧN0\v ǖ8Ơ>jFÜ=W$( ߷Zq9y)s&FMa輂Cu鞵o$10f)$*kj2R@W$cیwis;ԭm {%3?pI.QwogA{Fg)=.=Y bW-c473؝ǽ6= |˒mS;~ޣ~T{~Cn2I$zG}P*}IK(GGy 2@a\R&Zy~l_ibZGl'$kV)銘ɥ6M$FB0Tu+4?jrĞ$–ڷi+/ϧOw,+F9QC2e-prߣZwq祇̱xJ8je;-Zm$j}jT~b=kױ絻TƼ2 ڠ =0'+܅uۢVW2HV{t>17v8#k9i~vz{RrrHݭ򟏘14f4o ?52ʧ=UFVѕ>ݱsӥi؝00)~cI_=B68=GaϽN.x'XજAu_jBL 4<~[FcQyjq€V\т+I(6B,7׭Q_#+o:3N{Cz\?jjz?YRrXTӎic=.:9|('q}v?z-t>{Fؗp9$~ZV#~v*=tnD[btiwuS R q 1C F ׿OFQ9'^:hgׯ?ZWuv>W( T1/~G5[@^;ffɬ'jn:N*}t^י9ڤYYp {*ڏUi.Qʞ3{Th`yVJڍIvB6pz5cy#g|U3Ɵ2]HIy8&n=rA\*{ǿ =ZW.1cJ[2Rղ2O H]~ <#Fj\[o N[s t{HݡV&fÐ21롒̌GVL"B35:c?*%e?Vgoޅ+}>q{XҬ097I\E~0Q@Q@Q@Q@         w:! }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?IzEǽJ'֓Π2TfOʁ\jy5q0sSv<4LmL1ZdTh? N eFh*S q֜hnZ7-Y}irTDCzw'B4,50ECQ c!-jzTUr  dс\ꎃUOQI\ErW35Үr6<~kBn<ZaqԴ{Q@@< Si3&yƿR3?ھ?2/GE'5GL2ir}jJi~y:D fi7P0ړq7O0P0zӸ?;qw^i|.;{O'\L2sSqO'}h\a}) n@L SLjo1}j_Zn@F\zIb7ԂOza%U'Ԟ` e0SwS$i4f7&qHQ;q)\h~M?-v uҸ n47v@j@֙H1ϵMɦQ JޙcMdYrqHГm.bjñKTPdALw K4KEH㨥reҙS4ԹA ) 7eoAq|p?O TN@mjRi4ɒ1SWw5?+//_џԿ4u$n }I)hj2Xj3b# GҤ,Db>%("yMM";>yMH,oJw}(.O(yt yty*1R+//֑6|D_.abAH#bP;S3TPR\ѽi.N:QR ) {oIE Ni w4p" _5asRΈܶJ|D+SZ4LBf5B\HB,+UաI  Lֿ#RCAm_ zsޥbti@1QԄFi@ oq@qHhL$zde֣2h;0MquFd5"2޴.hn4ar*2BXe _bԼSeri4Ap'ҁ"d0TQ`>ƋBO1njIv&=i@ Zvy1 .i zӹ!5(5H 5`LTZd_'sH-//_џpԿ4p۽OCu4QTG@ i0}(? m"җ#Ҧ̢<Ң;`! E[2 VJ&EM0M !XvӚ%14퇵})|ޔ, nd<Pe!R_4_=(/o a<ڏ,fP;N!S瞕E\:F:W% 4a*Sy94+擞⋅<2Pxc$&zbo /ׇW?^?^hFl;R}i3KhnnJxaH=j8SC il2GFDy4 5'@^V ߹Ԛ&4%bJ*8OJVq2Jvh7<_6Yxs_?L(E}1Mjb帪&=;y3)3T) =yL0MϽPc(FLwyo>qwSx(ϭq3A"gԀ\.{Qƀ413QC&/9H)Z^h(\Zic@GQ4ɸƙH3IHBӇJbN4<jUҬv=(5DAsV.Eh@Ӳ)iW`E~"ۇ?^?]h8&qp)vaG7maG&N6@tP ux#V.zS6Ƴ*nFƠ֣a I)4 !XMP;\tRڀ (!j1LALsA6 ^Lna Eޑ7#*==ifi@ LCi@APTR){S,7K&z gqGZ:Unek⿇R+?޾K0K/Girk.~2?wJ]ǽYBւ𦞽*F31sRpi0h i@?oJvCm.,PmH)3@村ޤ#=j;PfĤr)3ABQh&@w)82Az22֤Kip@P.)ñF=NwT!{sւTp[w5.,FO؊uQBIzVDޜJ5fQcrW: |a%3~z_M1WXz)m,&zv@5J7LC>rh֒܊@3u&ꋀ:fl0*3/HO3}Mqw.M.M!Kv{Rp:tH#֣&Hݾݴлj@) u@2@1NPRdt@h)sW~ 0ǽ/E.(_0sI W 7 C-H`vP6{P!6JnHhȰ*:fbwFhf Q 1K@ OX@)aw b42@#M sW%ISYhg瞴;4MMkG҄E8qjVX |C?޾O0_^?\h~j_P~85@]f1h$7;{zӹC9:R5(oj4VHz= =h$-I"]<1w%UfPP❞@ 4Q Y,7aJeM3i^)٪r)7bޛ i4Ni4<RsL V9=zfveT?JΖ,"Շ#D'hiR`8QT ҃DMaF~" j,Kg;/ה3Qy"@`aXQ"; RyTlґW ypqH)) n?B$)BV4 44⁎P2)dYXQpkeIhE$C+PH KJy57ϡ+5  \5R, wEܴ!¬4(eP`S6pjmfIT~um:)՚wn]WŚΒt*@TBu?9=='?;^jS(g#`1 }1axbvmH_֦_ࢣN-ϹZ{Zpn4dE RP!ޣ+ ZXm7e",)(mp@ (L.BZfdy54sPHi4 > {Ԃ AґC޿ #pzG_N}/WTojQ ӧU=5.$8ʧMыת9Z(\pFU:L3J4KepjZǑ&vWvTtVQEkVXMZ8I4K"xab"qovmo3ϼf:l+/d{z9ku .ѱ1zemTM #45KfüBEiGs~>#BS?63Ic֪鞜1jl4ٗFt;zW5J- ʊV|⏉λ5-Dyhޘ tۛ죳F̥|~ϭ:+3d3^W^k:eՌtQ""Ǣ#Thos5G)rJd~Nnퟮœ)AF 5?dܦL48~kwtxfWSLevF8ZRyo>6%T "8W|?B=MuX԰~FD``B:J)iN]O1ԧsc_wވ8fӼOe"GpvQ<]AA|E-cq\Kn.I;$ިU:qtZ:8j^znhFe$d xX;:Ќ&uъ~jg J74 3ȣƨ#qLa6 NBqe1Sp=h3IL  aH44(&qD\_s) n?Co_+ z K/G&jۚ6Pg b٤~>Esi5QK S+^R/*9f+ycПם(?µ5MR~yJ%PF:;4`s#cJ@/C5| -yH/*acDvbi\Ȼw404lHSAfl7AvQ$ z橾-7'[[D1]?“ϖVNHF[Rd(Φpx>$hŽ*?"+>s+h{߂5]~I%HxU y5~1%ŃWmO]Yó\U^t?kN4k? Οz;@8/| y+fmtYjnf8*>k!-R?ltgÿZ>N5҇y.3v?JmBi P0Y߿kwi@#vdF~{Rn|4H KuܔS$r݆r־~"k<65mNyWst>_kXT1iPy${v~~죹m#Ś>4| hg OOz~鶷Gx~[y嵚6e<$8$W_xE|n4َfzIw?o>$| xun`&)o$e\dC[N,U"E\n 0÷80Ƶ%]ϒlEIF\L+(OYY W54&ժCN+kRx9U3R0')_K!??ޥaY59r|>>?b*R2I??%܃Dӌ]6cMWf'0N7'sJcv>ԟ ?jGN߮1Nhf^ak}{0Q enHսd~Tm;՜XvB"lBď*" CIJ|Bc+6w F!#^*խ/qw$c!{+T:#yW4ltio1$ġpOokmҔmZmv+g{Zt{7 f8(q?4)1,l{j&z4o9]==PjvjG%ĮAjOM} D}*D[U&he2yA-TաD>u? q?STo_|LÓ'ynڣ4xts]AS wMAlLGRY#_seK5` OG5N奖iT]+VMYΓ޵Vp6Xw1v;X*)%gGm&=WO@16[--HOS2좹tFz-u<[9ϦG{-mg;W(MR ZW nNQf4l'ǽ|"Jzk,ZDx;^Vi^! vzuqvQSŏHՏ!W"z>aIΡD#4`Us_CB[MGY0:A}3׽r֪H"/W)"1ҬAWIXviqiءqN ϵ.}(撐G@HR JjHqL$g2R☇jh @m@5 d3ғ:k+'=E4I8MlbIO*nRAyA~?6򙃽%3z_{bxR? knȦc;\aTzPn?#SfMG MIifaGX k2;h A457&\̯X 苟֋w).I-K}+%3|C}Kaf$}6EKprpd#赯HŸV &wsݏ5dH&Q!*Xrj?>_ECb#1>Ҵԑ-ʃ+4PM0ʣXN̓;gԶ؛lZ &p~U $K5)@ֲM-َ$%ʵH+$׿:&.^*]fF;zWMi rIIfxOTiroRA kWPr8Tvaھ?ݟ_Ǻ(+DIQ}ώQE1ޏ2\ A1?y.L&`x5? Ph)ZJ޴rq+yiv&yk"?Hm/_џԿ4mHRdt)_N~:_Oғ'?*cn<:LircG֩7x??4Q(Gh0/E?j{>XCҋ z #u2 '&bz[roDN2Jy("$:QWg%6 }+0]Nҹܯl;S~aTŝćLTMӹϠQ7ܦlF?nMU ?DbԢ5JbQO3Kwzמx&Λ5[r4JǎEi)sPZbTͺ? ޿VLcQizt,*d|%8!=v+F ; 傌0sRE}V:4I&\]0֦\ѓA#sdy4C1LN0ӱTSU P#Ni\R@&OJ`L71_įy)nCo_+ zK/GSI'c6_ʡaV+z)c)9H/1?uG֦Y_"Lr>QF9Xꊷq:GlTĒy{qRD&6dpӭJN#P? %Ĝ`?*hI7ܐ}?Z:acނiH t̺ '[#Ќ/>o+nyrY?a)tFy֤as=5fՅyH܈sYp͌? C\ɦ+%ԑpq5'lt9pD̥CF>>:2NVGByZW/ Op>rlu? #W?#w:1֦r/ѱ~Ǩr}MGH*•cR=V=I%1 }Ry-@ձKBtD:9!.&l4 7Ҥl(5oڮ\v^G\bmcB걏y?p+I=[3z&FcMNQVFi3Ҷ4EV25&xLm3_ݴ7{';=|"+1t&dJMSܗE%\_=a?{Z p1Ѥ"lhPv R☄7oF2iH5& 4ཌྷP`SeR3(BIiyM <4ϭ2.o2..z7P+}s@& _s) n?Co_)3z_핝-@dk̇i0H'M!ۛf3p?JWlmSZZj͖Ƨq1*y_,MrrgEQ6[:+$ pyNZ^sܒO5 1=j2k E*ZœRf"v8 ֗x((%X慣C!X6^gtAǞT؎#94@N)%% & #7"Ff72r)wc4^.]DR@ǂ*PEPN + |?k8o_?O: kcJZfnIݜOSB+yAbx,+H*"5Ү@5ݎrrܖ8rɯ=R§JM"ʞh.+hj.1IVP"vԐ34cIHP ?P޾[5g7/ Ġs\IRg͗"Qch&(h&+a+kGwZAI$Mh:˓R8!iX|Rո<m7rUU$REŇڬڶH~v2j IM wޑDM8-; -?oUa E I`7Dv0\pK7{ӷP4ڂD&4Lg ɦ!Oz}Piimm&ڛ 6G\ B~ zlz K/Gz-4q_BD[ 4 j=+:,g;"Y.3CfLyjir7s&T!SOڳZ +d-`qj!7QQX=j~*L ňl4RuPť&hIW!ɤ_JZJE )& @4!sKT0EPHPT"@޵ n@E;5W&TKcL?\B ۏF~r ,/jF@0?+/aIsf.FK6y 5J[bXV-"]TDL{Lf;Vw&3! ֳ" 7qQqɧzP2JҨ~)ؠSڌRRb \SiqCSQأ v;RS n)-;S+@.9cځ a&()@*P}p504?& PUp5Q~򐟈?6/_џܿ4imxǡzcԓ֦E^z֚ -MzU+sUv f1dٞڪkbW*j=p^h(/J1СTL/-4Ԍozeڊ@/;4) (KxvŒӽ-8jvi٪($(\{QځMo4⁋N1.hJ)?kHGqzpܿ4fYDgbŕ㚸"]QTjPeWrDf횪Wi*nFE@Rmohm6cbCfBRg! zozHRPPR{PHb@g4 3KRӸ v3TJ ja1IRzR$3FvPHj@jH KژRi)5V~o6_?_h׼J6_Sc@3L/C"/P>" .j=wqJ-;Ҫ4PԻ}ibmmm!Nii4 Ru!7u7<KRn @ǃRL j2@*ME #ژGDEFEI,UJ APjPqLcKdzo42"n( |;k8o_?ۿ*Ͽ4rhTDBEBRDRgJ&pCڕvR*ěj@TPS;(Nja#Q"£-R""ߕFOf!HѓHBdH:i&) v8O`H L qZ80pibԄ.6HB❆8Ξ*O1Z\$\ڀ Qb RbR޾c5g<7/ڸCSsiتaJQ( nHV 4q.hցInR2j"jI؏61ڌua!6m0ړoZB hi6@ J"q۩wP1wS rnUp=i)$&hLL7qKW$]nJ;u;u<i ڿ?R޾g5g7/&;Qھaj{="dҸ sSaҊ6n8cCM7iIjBoZv(bsABhҘF&M‰)5(aOjnÚV&vSv+ m$6ъCc\{ӽ(V%0R!2hI"dӳHDL > TֵSQ򐟈?6X/_џpܿ4k곖8q_J~CqKTGސ.(4m5%]o)e2&z6(1I` Mq@ jM nMn(bSbKLNbOh7e͜ sA6#Q+m4HS{TƤu1hb  B͵"o( ñNSzSZ ~ivk!?Hmq^~R Q})x?m2Ijv((1cqM@ e ) (bR(yf# EMFZ&7qց 1w?w?;=J4PPgҚO5 Ix篵Dx!mfHIސ.h7P!yRLBKja6+6ӰX]Ըċ)ثT1Q[B> ۏc{Z N_H~> -4 i#i4dfLҸ 0 ?3K4fisLa\.hf E4J( J(PI@%)) (!)) J(RRZ)Z) J)(Z)0RK@R0P K@Q@)(P E (Q@J((JJR (F(b1F(qKc R)qT\P\P0Z1@ŒPEPQ@ JJJ(BRPQ@ E))-:KRPQ@ъdF)LRS Z(aEP RPK@%PEPE((aK@c (Q@((E @h!h4fis@h.is@h4 (&ihf&h4PfhbQ@ (ĢZ) u m- ZZ(K@RQLAK@ŠJZ(aEP!haE (Q@ E ( E ( )hPI@Š%RPI@% J%RPEPI@ F)QL.) 1K@)i1K`.(bb 1@)(Q@% JJ((BRPI@ E%LH ((RZ-RP IA"RS!K@Š`P@Q@PE ( ZJZ)(h)h( (( J(E ((`2 њ.h0 1sI\њ\њ44f&hAI@RJZ)) (AIL ZCKLAE0)hRK@Q@ E Z( ( ( (P3@ih ( J)(JJ@P!((AE (AK@ޖaKL Z(aE%% ()( ILBRPI@%! E1%!(₅1ii Z(QH`%)(f!)hRSh0AE-%-Q@PR AEP!haE Z)hQ@Z(Q@(( JPE%RTRQ3K@ ZZ3Lb3H4f4fP0 E J(QH`PRERaILQLb@– Z(4P0)h (PEPFh)h.ha\Fhf4\f3@ ZLњL % @ EQ@Z(Q@ E1 E!E –--Q@ I@ EQ@ E%%%JJJ)J(%-% KC 0.ha3@i3@&ip1\(( (hEQ@PREQ@PEP!ha(hAF(PES(AE (RR(%J(Q@RRQHAE0(aKHE ` (% Z%Q@S% Z`PE!E%(SŠZJ\f 3@43Fhff4f(f 3E044f4PFhf &h4fh њLњ@4fFh3E ( Z(-fť \Fh4f њLњP1)(RR(BQ@ E%J) (  (SI@ ES Z%-0 )Q@Ţ )PEQ@–Q@ Z(Q@ E(b ZJ( (%RPE%P P0" J-QHaE-(KL@--%-Q@Q@(0%SQ@ŠZJ(bH(0Q@Q@h4P3@Œ!sFi&is@h њBP043Fh&h4Q@%R4(aEf 3@ 3@%0@SQ@ E- Z)RQ@bf4L@h `&iiP!(IH( I@ŒPE.)(AE0 QH((EQ@-%!I@ŢPK@ K@RK@Q@ E (P0 (Q@PILAEP!(BQ@% (bŠ\QCIAE JC ))(h0 Z(K@Z))iQ@RQ@ ER( Š`P1)hf њ3E њ`4L4 3FifL3@ E0 њ3E 3@Q@Q@RP@Š( (((Q@–SRhE--PKHaE0((4(IZJ(PEP (!h 1Lb(0 Q@SQ@( Z%-P0 (P0( (Q@)h Z)(haE J`PIH4P Q@QCRhPS (BRQ@ K@1)iQ@-PK@Š(’ E )PEJ(E(1(R03ESQ(fh4fihPE%-%)hQHLQ@ I@ZJZ(aE (ih)iS- )QH I@%(“41 L@-PK@– (PKLaE ((AEPEQ@ E!(AE ( (Q-Q@PEL њ(4f4Q@%4RPK@ EP1qF)RhaE P AF)1L(!i(PF(QHaE0 Z(@SQHbE%%))Q@ EQ@RP@Q@h4P0 ( J( ((.hRI(AFhfC 1LA1H`))Q@ K@E0Z) )iQ@Q@ KHBQLaI@ E J))Rf% P04Z3@ E.hE1 E%-0 (PEQ@J(Q@ (%-Q@ I@Š ((.i(Q(4PZ(aE ( ZC (Q@C L!sI3K(b@ \Rb2) ( LPEP K@Q@Q@ E%RSP1(AI@)(J)QH ( K@Š(JZ(aEPQ@ I@ E%-PEQ@ Z JZ)(Q@Q@- (RP  (P0 E-R0 (Q@Š% )(RPQH E ( ( (4f4 Z(sFh.iRFh4SQ@f (Q@ EPI@Q@ E0 J)iQL((1hAILbH)iQ@ )3@4f њLњ` @Q@bӱHcKґCsFisIb4SP!)h(JZJZCPI@Q@Q@’)(Q@`PIHaE )RJ(J(Q@Š)( ( (Q@)hPEPE Z%RE 3K3K@ (BP0 ((AK@Š3E Z4\њ3Fh.h! KLQ@% JJ(@% ( (sK(aK@Q@ E03E-f (Q@ Z(PE%-%QH(E (RhRf!)3@EP!)h )Q@-!OXIi* (Q@)(i)Q@% (Q@%PE%J( JZJPE @ (i( ( J( JZJ(( ( (bQ@PE (Q@Q@Q@ J\њ-4fQ3Fh JZ)( FhQ@ Fhf43FhQ@fEPIL@PE-%!%1)(Q@Q@ u-%-%)iR)hE-%(b (RbZJP )Q@RPK@R- (ILE (h( 1Kv)qH u!&ii )(b@RP0%-%RP J)(IHb)( E%PE%-%Q@h(aE ( (% ((J(h%- (%-%PE (Rf 3@is@f@ŠP0Q@(Z(E%P3@h 3@ FhQ@ EPEPEPE%-PEZ( (`P@Q@ ESP R)h(E%- RPZCb (E!(Fi \恅-&(! LS(1BRbb.(!v(aBh Lp%SQ@-%-I@Š (@(Q@ EPQ@%P aI@%P ((hZ( ( ((AE((((( (QE Zb ) (L (((aEP!haEP@-:- (Q@ EPF( I@- )w@QLZ(h )P0AEP0Q@PQ@RP J(E0 )!3KP0080ȣ43I`&i3LAE`-Q@(@Š)( (JZJ)PI@%%J)PRPI@ E J()( (Šb (haE (aI@ E%-%RP PR( IH( (RP1i(i)SaE Z(b@S@S-RQ@Q@ E-%%-P aE--%-0 QH`PER!i((AE0 ( ()hRE1-P1hB@ŠPI@ (Q@ )b(C )RRi)Q@- JQ@RQ@h JPI@ I@Š%RR(@%JJB JJ(%RPEZ)J)()iJ(Q@ EPEP@ŠJZJ( J-% J@SQH(aEPQ@(0ER`-(K@-SREPEP1h((Zu(Z(K@ K@Q@(I@C )P  )Q@)h)hhZ)PK@ Z( (Q@%P ( 1@ I@ŒP Rbb1EbP0 ( J)hZJCP0Q@ I@%R(BRPQHbRPHRP0AI@’PI@(0 JC )(J)PEP bREPK@% (@P EP aE (QHaKLAEP1h )RK@Q@ EP0 ()hRJZ(- ZC )(LAE J`PE!%0 (Q@@S)hP!ih-RR (Q@Q@REPEP1hA1@AE (1F()(Q@Q@ EPI@ E%=% (% JQ@ E%%R))QL!(P1(AE% (BQH`PEQ@QH`PEPњ(aEPEPE  J(J( ( JZ)QL@SPES)h (Q@PE Z`%-PK@- (hE0-P0E ZJZ`PEPQ@(b ) ZJb)h— 1KL-Q@RE%( ((Z(( 1@ K@ ()( J)h( aEQ@Ģ E J)(RRRPQ@ E  J1@)(QJ1@RS$ZJb(bQ@BQ( ( ()hĥERQ@%- J)(E (Q@%Ri)SQ@-%!ڐ+RPKHJZ`PE!QL)haK@ E J`-(-S-0 )Q@%0(I@ ES)h)iQ@Q@ E&((PR PE- (B@ŠZ((AEQ@ E (RPE%( ('%-PI@ J( JR)(%2BCPIJ(b (&(Q@ Q@Š%b (RP0J(QHaEPES )S ()) ZJPE ()hJ(i)Z)(S (i(PEQ@ E0 Z)hP0-P!haE-Q@)i J(QL@PE0( Z`)h Zc )Q@ E )J(BQ@% (Q@ E (R a( 恅3FhsFh њ)( J(AI@Q@ E-%PEOE (E JPQHBQ@ E%(bQHAIL J@PI@Q@ 1I@ J(BQ@ )(AI@R)(Q@Š(AKLaIH`-)iQ@ŠPEPQHAE (Q@R(EPEPI@(AAEP!hE Z ZZ`--Z(h ( Z)( E ( ( )PK@R@Šb (haERQ@ E0 J3EAFi 3IfhAE 4(4PK( Zh4f!((AE J((E% 3@RP0 K@ E%RR (P1( 0AER(aI@Z(()(f% )(PI@Š@%% (P1(AE ))PE ((`RE )P E `PEJ)Q@Q@RSQHaEc Z--%Sh (`((`RPE-Q@- (4(0 њ@fJ)LњB @PEPESf(bH`-Q@Q@% њ((PKH`fR fBf(3E ) LQ@J( JJ(C(AI@4JJQ@ E%RR(AE1EHQHbQ@P1(Z)QHbL-- (i(hPEPESi)QLAE!Q@QHaE1 )hQ@ (B@ŢŤB1hE0 (h (-%-)(h`PE )RQ@Q@Q)3@h4LH4P0AE-PE1Q@(-( (SQ@i( ( (QHCi J(i* )Lњ)3L4Fif43K&h њ3Fif`&i3@ Fh J(Rf’&hQ@ 3@ I@4PfQ@ I@C)(Q@% )RR EC()(P0 Z(–-0 Z(bSh@PE0Q@%- (AEPE (R0 ( ^ahHQ@Z(K(ZJ)hPE-Q@-PE-RP %-%0 (( E((AE (BE0 \PE 1L-0 Q@Sh0(@S1K@QHAE1IH4PfAJJ(RfJ)Q3I@43Fh4 3Fh (f % њ&haIPI@%(%)(E!%PEPEPEPEPE-Z(Q@E(@Š`-(%-`R )Q@(aEE(I+R64SslՅ ;Ա6L -#1( E )PK@R0 (hZ(hZ(R Z)RPER( )J)PI@)hQ@ŠP `-- ))hbP@(0 R1K`P( 1F()q@ K@ EPR  )(b@-(%%H JJ(RP0P )( )s@ E (Q@%f (P ()(QHaE%Q@ JZ) )((EPE- (Z( (bfE4Q@RE (AK@ (AEPE!(CrwɊuGcv5AŠ-Q@REPE0(b@4 ()hR0- Z )h(RQ@%)(QHBQL@%-%-P aER Z)i)iQLAF(bPF(bbPE ( (P!i(h-b" E0 )PI@PEQ@P aE(Ţ ER(PE (Q@ĢQ@Š(BbĢC (AEP0 (Q@ŠPE (4RhFhf4 3E0 Z(AE@SQ@)hŠP12VR@D5H5 (Q@Ť ( Z`RŠPHb@-SZ(Z)PEPE%)( EPE%-%-PE-R-0 (hPE (PQ@Q@b(aEbZ\PLi &J((J( J( ((AI@Š ( aEQLBf(0 KLQ@ĥAI@ŤAE0 )Q@ (@%-%( aEPEPRI@((aFh4P(haEShK@(b@(b (Q@ I@ EPEPE0@PPEQL–%-\@h)if@f LAI@Ţ (( (hK@)i (K( (Q@-%PEZ(Q@ŠSX@ *z44:zm@)(Q@Q@ ((J( (RRS E1 E!)(Q@J)Q@(aK@%P!i(QH`RR)) (J( JPPEf ( Z()hER0b ) )iR0(@(@PKL((E ((KHHaFhZ(4P0Q@ ()(haE )R-PK@PE(4( (Q@ I@ E (h)h()hRsQbGn4*DPފJJ(AE(J(Q@ E%P bQ@ E J@P0AEPQ@Q@QL@ JZ(E0 (P!h(I@ E%RRPE%Q@ ( (RQL@S ZJZ( ZP0)hE!ES (P Z(aE (I@Š@SPER)iRR4f)i4f \0.idP1xALS ))PEQ@ŢS E0 Z(bQ@ ( (RRE-( Z)hREP@ŠZp0jgZ(AE J(J()h(%RPE%RPIH))RP Q@Š(((aE(bQ@R(0 ŒSRRPPQ@RP JZJC )ZJZ) (@( (ih)(b▐ Z(-PEPE-%PEP0 )R(AEPQ@%1 IHaE (Q@ E 3@-P0A3@ff f4QAa1M$(HQ@Ţ)h E!KLQ@(E (i(-)hR  (hZ(haK@($Q@PE% ()h( ((BQ@Ģ F((RRS(1)h KHAI@Ţ )QH)hSi(QL EQ@J(QHAI@Š%( Rb ((LR \Rbb R Q-\Q@—QL ZP Z(Q@Q@Q@ I@ I@– K@% (&if@PFifQ@ E ( J-% )QL ( Z)AR(QNE!"T@QLAE-RE0 (R0(AEPE (PE)h u ZRK@- (h$)(i((R)hP F(Rb Q@)(bPI@J(1@&()hPF(i(h(aF)b`1E0 Q@ 1E1b ZLQ@ EQ@ E P(EP KC QLZ(PE (QL@R4P0 ( (QL)( )Q&hPP ((E0 )Q@ I@S E: :Sh 5D1($Z(P1h`Q@Q@)iP )(ii(` )hhb@ ER0+TP!((QHZJ(PI@)( J(1)1@b)1L&)1F)1F(b(!(bb(Q@Q@-(EPIA!E%Q@ E )(1(0@S Z@PE0(RQ@ 3HaI4P0&hhSQPQHPI@Q@ I@ EPE0((Z(bB@;PISQ@ E (AE-Q@(RQ@ŠPEQ@PKL Z)hRPQ@ K@- Z)h RRRPI@ KL I@ĥBQ@RPEQ@Š%Q@Š%-% ()(P0E0 ( ((J( ( ( ) (AFh J(BQ@))Q@R)h)hQ@QH`f E4f P aFh 3@h(%-Q@Q@P撀 ( (( Z`J)P@.(bCiؠ 1HaZ2)3@ 3THBRQ@-Q@ ESJ(QHaE )R)h )P@ E(E )h4R4%SŠJ)QHJ)RPP0 EP0 (PE (Q@Š( ( (( (RP!hI@R(A3@ 3@JC (RPKHQ@Q@ E )PKHQH (Q@PHaI@-0Z(Q@ŠZJ(((AEP0 (P@–)iREZ\P▐4 3Fif4Q@E (R!)h ( Z((E ( (Q@%-QL Z)h`-Z(PK@–Q@#%S))Q@ E )RSP0%P0 ( ((((bQ@%-(04f4AL3@f4f@%((EPEShEPREPI@Q@P (bQ@((0( K@P (RP!hZJZ(Q@P@-SPK@ E )(ZJZ(E ( ( Z)(h((JZ(AI@ EPE)iQL)iQ@ E- 3E-Q@*D-J)Q@%R(%JZ@%RPEQ@ĥBRQ@Š()(RQ@Š((0)3@E! E0 J@%(bQ@ I@ I@Š(AK@Š( ( (i( ZJ)QHJZJ(AEPRb(AK@ŠC )1K@ K(b ( JP0 (Q@ĥAEPP1h)hPE0@Ph(AK@RE (Q@Q@Q@Q@Q@ I@(0)iQH)j(@-ShaE (!h@ĥ!)hRRP0%Q@ K@ I@Q@%PEP0 J@% Z)Q@Š))QLf )ZJC JRRh!(1(AEPP@ )hQ@Ţ (QLC Z(J( (PEP0 (( Q@Q@RPEPE&( ( (Q@Q@PE-RE(bK@–0 (h((aE%Z()h-%(-Q@-AK@Š)h)h )RQ@ E&ih3K@ EHŠSŠb )RPE JPQ@P %PRQ@ I@ŠR()hQ@ALPb J)RRRPE%RPER(BQ@Q@aE (Q@(B@Š)h (i(h ( ( Q(( JZ(Q@Š-% Z%Q@Q@ĢbQ@ I@ I@-%PE-Q@-SQ@KZZC&)1A6 )QLAEPE (Q@Q@Q@-%Q@- )REPE (P0PEQ@(E1" (Q@Š)h`PE J(J( J(a(Q@ (RPEPRERb F)Rb)1@QHRP b ( (Q-Q@ EP@ŠbRQLA( 1E Q@(PE`-0Šb (h0 (Q@Ţ ( (Q@Š)( 1@b (AE0 (hIL (Q@C Z`%-1-!\f4"(b&)SQ@%Q@ (EP!(E(Z)RR ZPEPERQ@QL ( (R0(E!I@RP!i(Q@%0P((AE ((PE%QHC (EbbA1@ 1@ (J1@1K@-%1 1Ha\S.)bP1qF(.(P0 1F(bbPb QJ1@`R)iQH)(h`R)h(E )Q@(1F(bRbPEPF(Q@Š)(Q@f3@ 3@f44fhȦ.(1F1@P@Š(%%1)hREQ@Q@ EPE J`PRR0 ( Z( (Q@Q)(i( (PE J( (E (aE(C)iPEPE (bbP!qF(b@Q@QL(E0 ZJ)(0C(bb E (( )Q@RQLZJZ) JZb (RihP Q@ K@Q@0ĢS!i(AE (PEPE )R\3@.i@wR4f 3A"f E )h Jm2D!E-Q@ E (P@Šb (hITE )Sf4B@ŒFhsI@ (haE-RE()h(aERPE J( J( (% J(( )R1(AE1PERPK@(0Q@Š(P0Z1Hb@RPI@%b ZJ)Q@RQ@QL@P -0 (hCJZ`QLB@ )( ())PQ@ )QLAIHaK@ KLPњ.h.h.isHaE0 (Z.)i Z3@4dQ@ EQ@Z)QL ( (QL*D@P04f4f3@-- 3@ih4RP@i(&hQ@ K@ EPQ@PEPQ@aE JPE (QLaE )Q@)hRP!h`PE ((HaEPf443Fh4PFhi3@% )Q@QH( ZJ( (- (.h Zc- J(Q@(R %RPE ((( – (h1hE0 NisHbSi( P(QLAE-QH`-()hSQ@" ( )f`4f4P0.h.hREPE 3@h4L1(%(bQ@0EPE0 K@ĢPEPES (QL@RP@ĥ( Q@ 3L4Q@ )f(( ((aE )(IA!E (RP1h!(K@ĢP0 E )R 3@Ţ4SQ@ њL@% ((B`RRPK@%(P!hRE- )hhKLcPSj ( ZRR ZC )Q@ EPESEI!I@ I@Q@-PRE(3KHa3L4Q@Š@(aILAEPQ@ (ERP!(4fb 3@Œ!sIC44f3@Q@Q@Q@)iP4 LњP ( IH((Z)RRih(((J(Q@ JZPE-Q@Z) J(RQ@)((Q@ EPEPQ@ I@ ( ))iPK@– E Z`-@0Q@ E-P@Ţ ( Z((S $(i( ( ( ( )RQLZ(- 0JC RP I@P –E E ) ( %-Q@R Z(.h њLњbCPI@Q@Q@Q@PEPE (ZJPE (PI@ŤAEPE%- J-((aK@`R (I@ E!% ()h(J( ( (Q@ E (- ( )PE1-P0-!IL )Z)SQHR!(0PE PHbRbP(QLQLb Q(!)iQH(E Z(HaI@%1% )QH`%(aK@BbSQH( ( E!E (0(S!haEPQ@ I@ EPE (Q@Q@(aE-%SQHaEPEP ( ( ( (i(P@RSi(RP E ( (%PEP@ŠbC ( E )RE (ihK@ihPQSQ@-P0 E0 J@ m- J-P c( (Q1F(PF(% Q@bR!1E (1K ((QHAE0 (Q@JZJ) ( ZJ-% !1KH%)) ( – JZPR0 J)h (P0P1)h ()h)h( ()h(Z( J)hQ@ŠR!)hQ@Q@ E JPE%RPE()hP!{@– K@RSQ@RHaES!h004S%-%QLAKH`PE - ) (A!K@%((aI@P1(((aE `P ( (Q@Q@ E )RR% JZ( \PqF((IHBPEPE- (JZb )Q@ŠPE ( (( ( ( ( ( ( ( ( ( ( Z`Z)Q@RQLaEQH%RPI@Q@ E (R (QLBH(0Z(i(h0C ZJZ`PK@-Š`bP &)(AEP1i(ihŠ@SZb Z( (%-( ( ()h(((aEPEQ@% )RR(.h0 1I&( RPEbJZJZJ( )(0()(h(aE ( ZJ)R (Q@(((((E (PIL@Q@%PR恉EEPEPE (AE (i(P0Z(P@ E )RHb1( aE (h1iiR–EbPREC (bњJZP0J( ( ((( ((aEPE@P0ERAEPE!isLa3HAE ( ( Q@.(bP1@b QJ(Q@ E ( (PE (I@Q@-%-PI@( (!i(Šb J@SI@ I@%P % ZJ(Q@Q@RE (BRE0 )RQ@Z( ;ih-K@- ))h% Z)iRԌ\0b@J1@ E1 E1(aE6- ((aEPEPQ@Q@RRQLAI@(0ESQHaESPI@(aEPE ) (E (0 E!Q@(aE.h4f 1I@Bb I@Q@ EPEPE (Q@Š(AEPEPEP1(()( (PI@ I@(bRiiQ@RE-%-(0Z( ( Z(aN@R1haE1-!F(1(.(----PE%%J(QLDZ)(Z( ( (Q@% Z(aI@% )Q@%P0 K@`%(E!Q@%-%R)hQ@RE )h K@ĥAE!JZc ((AERP1h%0 ()h (Q@(aE (K@ E ( ( (()(% ((BQ@%PE%Q@Ţ KH`Q@ E (P1h- (E NQ@ K@Q@– Z(– N1(SH.)%74b ( ZPEPE%%QLBQ@PHP - (((K@Q@Q@Š@%-1%RQL(E1 ER )(!)hRPEPEP@ (B@ŠP0 (Q@ĢJ( ((ER0hQ@Q@Q@RPK@ĥBQ@ŠPEPE LHQ@Q@ E%Q@ E%J(% )(S(R0 E( ( )RPP(JP - Z-QHaN0IHaK~*@]BfL1H8PP!TR)!f)BQA!E Z(3Fhf &i&h @ģ4P(fh)(Z)QL@SQ@%-Q@PE- (-% (AE (((ESQLC )(0E )R(( ( EPE&i(RP!i(Q@J( ( J-(bR Š))ZJZ( (RPE J()(Q@PKH(E Z`P@Ţ )-PERRSQHAE1Pө J(AAI@)(IL BfAI@Š J(PIHEE2 ((%-((JZ(aEP %PI@Q@PE-%PKH`P0(AIHaEP aE (aER)h(&h&hJ(Q@’ (RP0BQ@(`PE ( )Q@(KHS)iQ@P0 (Q@PEQH!(RC )Z(haE Z(b@Q@QL@%Z)Q@Q@RZu" >RX(((BSq@6"RP P J(RRPHreE (% )((AE (Q@ JZ%Q@ ( L@4Pf3E ((ESQ@ŢJZ(Z)RP0 J(AI@PKHaILf%Q@ ((E0 J@P@Q@R)h@P(i(haEP@ E1 (!h0 ( J-%RQLAE%(`PEPEPE (Z(QLQ@Q@%PE0 (PE (h@SRb;P((3Fh&i3Iq 2"SiP!))QHAE0(E )Q@rbQ@J(RP0AEQ@P0 EPI@ (BQH( (RP (Q@ E0 I@ I@ފQ@%(BQ@% ()h)( )RP@%Si)PE ( P0Q@Š@PES ( )(hQLBPEP0 E1( (Q@ EPEPK@Q@REPE0 )RPE0 (i(Q@–`-b.)ؠb❊E 3I7u&i؛L -P@—n)(%%1-PE ( )QL@\,(AE (RPEJ(aE J(J(K@ K@ŠC (AE ((AE%-1R0`)(hPE%RR(J((AE%Q@%RZJ)h (aE0 (RE ( (Q@Š(()(P1(BQ@ŠB )RPRQ@ E ((aK@RREQ@Q@ŠPE0 (Q@P0b;)q@cڗ!Ib4!)hQ@Q@- )f4R(1MS$J)RP!ha(( I@*P1i( ( (PI@ EPQ@RaE!RbPE% E0 )1KHaEP 0aE ) )h (% )RTRSE ((aLP &(P bbPF(Q@(aEEP bQ@PEPE (Q@%PI@RRQLPIHAEPLAE (h0 (aE Z%Z(( (%R( \R(^)hb.i05DJJb Z(AK@’ E JPEPE.i(\c5#Ua1F)((JZe I@ ZPEPQ@ ERP!)h( J(C Z@4 3Fh%&h1 E (haE-Q@Z) ( RI@))R(J(J(Q@QbP1@( QPb1EPEPEPEPE (Q@ (PE!E1%PQ@%RP@ EPPL)h(-PEPK@ E( I@(:AKLcK#I2FP1h)hQ@ J(Q@ K@ ESHaZE E1 F(bSQHP0$Ţ EP)(R!(PRP E))QHŠC JPI@ E1P0(E-RRShE0 )PEPQ@aE ((J(Q@ĥBR0 J( J( EPE-J( ((bQ@J( )J(@SRP Z(E (AK@ŠZ(h ( (E ) (BQ@(AKHaK@(XS:ĦU%R -%Q@(aE( JZ(0R1F(b(Q@R LAFhf44Q3Fh%PRQ@ J)(bQ@ I@(RI@ E0 ()iJZ`% )hRfE (QLA)fL恆hJ( E!K@%0 ( )Q@Q@QLJZ@%(aEPE%J( (((aE ((AE!%0 ( ( ( )R0- (B@ŠZJZ((@P1(AE (E!-(4Pp5%"L%%QE1 E Z%P0 E-% bP⒀ )J(h-(4(aE1 E!K@e%! E4f0&h043L4f4f4fis@4f4fZJPE ( Z%QLAE!PEP EJ( ( )Š`Ri(hAE )ZJZJZ( J(J(Q@ĥJ(PQ@)(Q@%PQ@QH IHAEbŠPE-RK@-REPEPI@((P@ŠZZ.iXC) iUSR)(R%-RRK@Šm%2D (Z1@– K@-AEH`RQLh!i3@h0 3@Œ&i3E њ.h @h!Z3@ 3Hb@Q@c J(AE!(E%Q@ L!sFhf3@4fhPE (AEPE1E!ihQ@(bShE%Q@ E (Q@ JJ JP J((J( (@P!(H-0 )RQ@Š)h (J(Q@Ģ EPI@Q@( (PE1 K@ }"ZEI@⒨(HQ@Š)(RRihQ EQ!E-Q@ K@P@R (Z%PI@’%PFh&h4(aK@h(-0 )Q@-4 Z(Q@P I@ ERPFh ( (h(aEP Z(aE1- (Q@ I@Q@Q@(aE 1@bb I@Q@ĢRPE((AE0 ) (AE1-PEPK@PEPQ@Q@RP E (R1)hQ@Š-Q@ E08Sh}(,u JJbC-%S(BHJ(PK@-R0 Z`RhaE1)*P!(AI@Š%PI@RPEPPK@Š)h)hQ@Ţ)hRK@ťb@Ģ%Q@)1@ E%((AE ()hhbHaE1Q@- (aE )QH(AE ( JZJ((bLQ@J())QL@-%SQHaE0((f JPE(JZJ(Q@ŠQ@–SRE--;4,u:Ģ ( (bP1S$( 0( )h Z)iRShŤt$( 1@ E%&(Rb (@)h)h (Q@R K@Š)h4 Zu%% J( J1I&(%PEPE-- RR(( (Q@Ţ )h( ( (()hP ( J((bQ@( ( E0 (%0@%-Q@’P1(J(Q@RRQ@-%PEQ@-PE)h NcԊ4 )b(Pbd))h E1)h (h u1- Z@C@- Z(1R Rb(bR1F(1F(%1QLR⁅&(qI@ I@)hQ@Š JZ(b@-PK@.h%(P@bPLP1LBbŠ(Q@ I@ ((aEERPK@-RE1(WV$ \ SQHBQ@’%PI@%Q@% ( (((RSQ@% )QH(EPK@REP@Z)QLQL4"4b4RQ`R0 Jb )Q@ )ZJZ( (4P1i(haE0"&*Db )1I1I1F(1F)&(!( Rb( QLR( Q`b(bR (ES )R њ3KPE (Q@Ţ E0 3@h4RPE ( Z(P!haE Z%)hQ@RE )iQH ( (5ӭ+M>{ُC7Q ipû]{ S0 J@PQ@(aEJ(Q@RP0 EPQ@ (@PIL ) (EP!hZ()h)h )RQ@Q(4 Ѻh.is@44ff4f .h.hRI` )JZZJZ(sK@44R恉E (!( 1E P)LQCb \PJ1E LP1@(!J@QL@%Q@%P 3Fhh 3@b1hJJb@Q@-P0LQ@-%Q@Q@PE0C ZP0{Nep7p2[5 ~/"hqAڲ4_}Ŗ|yp}'$B y@U Q/'tSҒfu(8}+6(-Qf5}sM3eRt:= {p15u<ʻ%YPQ@%%P1(AE-%!!1F(J(RPQ@(Q@ŠPK@)hQ@- (P@-%-0 1H(( (PE )Q@4 3FhsFh-&h )f4f4.h44P@)(-1 K@RRP`Q@P!(aEPQ@))b))bb JC ((AI@’ (( (( (Q@(aEf44 ZZ%)hRE-QL(EPEQ@ŠPE- JZPQI*DvnrvGBa_Pkȋ#ҼUSO=kCXS`xf.i{k|VbCH5<gICB̊žWsn^hg\JWw6cRvֽT||R3`R%Q@ EPEP0 J (Q@ EQ@ŠZ(@P!h (aK@RK@% JPQ@RP!)iPR)hKLAE (h )Q@ EQ@ KC њb4Pf\fhdyu"C4f\0A\13K`4444 ))SE )P!(aE!I@ E%PI@ E ( J( (bP!sK@f1sE0 (ihE--ShKLaE )RRC J(Q@ŠP2 d}+=X_!}{W^G`s5E| C=AZkMOVB^:T;GoȌ(j⋱= 17:jŽ?!9oWMjEYY\"QI^aFiQ@ĢQ@Q@PEPEPQ@ %PQ@ E (Rb (P@Š- (( ZPE%% (RS%J( (Q@ E )Z) (!haEP!hbLZ(@QL@-e|fB4.h@h0u 7R]nbuu4.h.h4fC LER4LPQbhBfLњ!h43Fh4fh0 њ3K.is@ \1sERZ4RZ)(AERQ@%`RE.n)Ppk˕\Oi!o[FG|-Jӹ J0Wz[Zj緜:Gz)OsElgm Mbszȩ ՙ'v~MՅnҧ񭡣2sorZ (Q@Q@Q@ I@ I@-%Q@Q@QHbRSQJ(PQ@RPK@%-%-b)h(B@Ţ ( (hbQ@PE0@%(Q@ ( ( (RE1- (haEP@- )RE (Q@h tP h`@– K@ K@LE1-1bPI@)1H&(b@%J((ŠRQL(%Q@Q@is@4f 3@4PwS$7RbLn@.hsEZ(f (QLbQ@)(Q@’OsҰdzbhatI$#t|RwgVF2NxV%yGb9N"˻{|z6W0S-zK+Jp< OmZ&+ϧj*>bQAREPK@ K@RP@P E-Q@ĤBQ@)( ( (RQ@ EPE (Q@)iPE0 JB (SRR%PEPE (aE0 ))hQ@ E0 ((H( JZ(]]M<<<e&`.M6R; mhb1@ 1LZ) Z^)Rbb R⁉1@(@ m mmiݦi!6M L1ILQbRRbbbR1F(1F8-&)(Q@ (BњC њb4b4\cR@n4aK@EPE (g-\*c婖H_$~Dfݝq 2>|gt4M*c4mrGzP|3T*g@ʜw&ԮpU1soƄyD֯m+G"ƾ^}OQTYYy?o]{J>v–PEP@Q@Q@Q@ EPI@P0QLBQ@(aEPEPPE-Q@%(aEPE JPRQ@((%-Q@QHaES Z)QLZ(QLaKHAE(ĥ!)h *ʦma Z/8]+?QSTXd/;Ί\O6/j]S ш-GhhRyKEʃZ%iyN)Ґ0zSp})L{QbҐ=0(bP1@ RK@ť4\.hhaw+ 6a9)=E?;v<]Ԃ|PW;%Gž.ڑ9 =֟(\T3Qb qNܾԍ.4mZO-iaB4߳Ɛr070}(%giKS#ijMҁXMI uҘ`PK`ZM UňFv? uS݋1 €bJ˙J #'wҘ/A59'aIv smw9tU7imv#w{so|"7w> +ht@ޣ9Nk\(G&9dq'˚袙 -֬&=ԴIS R;8\amd c+W+>kկ3e{jE)'{=֍[fWUfq5hs>h¯.{ .mВje5ukڡ'k3Ihv$P0AEPEPEPEQ@Q@%Q@– ESi(Q@RPE-R1(BRPI@ ( )(Q@Q@QLAKHaILQ@ ERS$)i (AEP1)iRQHK@Q@(c~ޔgJ>ޔ})X9XfoJ>ޔX\|ҋ O%)<ðy&,+iF fXe6E0EuWki-)+s (ZJZ( (%0 ( JZJ((Z( ( ( (()(bQ@ (Q@ŠPRQL@PE-%-%%-1 E!P Š(PEQ@RE Jzw;y_1=oOj7/0_AI Oѵ=)yiM, It.T'REqr ~(}S~@4OoM #I#L\a4bj7MG؛Ґr1͇jgҝV)XQ>ޔ߳7(AHaXoiQa 'Ɛ޴oZ]֋7]拌]Ƌ&/ǵ+ N3Qa_?foJ,>VfoJO; v;zQ`y I䷥+&>XVO,Ұ4 +l4M+`b1I1K@HýUH{ԛCNn ?qh-CO4 z\֑|*_=z,W0nCRSޘ#1Z=91RbQޕbJ75;Ң{e|oc?@׋=?*RzD߫n3!gh8\l}%XVtSKqg\Lf5\Gh6٠e3Cr9[IxPq$R?˒;Y#CT|`p'_BL|ޙ# ^:liܓ/ U! k]Az\*4ANUNӅ@W{<6!k:qԪ,rkvXˑ#`kpsjuԦ7Oפh>*.j7sZBJW=F+֏lj+-sڽEH8cq#܊ڶr n6:VRvgqk~Q|If"pg;5Yu{eGZ竺2GU!(0 JZ) )(E-E-% )P ZJ(i(h(((Q@ IH Z%% ZJ(()(i(i(h( (Q@Q@%PE J( ( Z(K@Q@}h}k{z7oSNƝN4rUʻ$OR \̔^5<^;NjR LvH/=AwE$PRұ|ҴrX|ҞiJV+Oh_Z,>О}=i9ПhOZO'+ cTc:#7qf=)؎t3Q29P0O%ȏy=LY4Nif4+ cG M// +>ib`,H,֋XfL0ұc")SaXaSIҰ@(lSN.ڤ\yK?cAWqO0ꂤwJOw0lgٍP\]֔VJ'ҰFyto3>EovpݞhkuCsK)ھ٪QAٕvXj3Li 5LC,Mm[rP4Z :M7BӀ:bՍVIQQ^; 閨,"D@dcVSYڬw5\%ͨQL4څl,;dr_5FZ3ӌ /$BzY+wևnjLG?;ȵ>arvJ-! [iv!`qN7= sϭf;Wybɬ^0ޠ i[[q+n*u*=!"՚bGzVUnHL#r9#)f<\CE&RiR˄RĜRTM3=֣Mv0Y|7ot d=NE[e'N[Cv8 mkYy5WGR4xT;MjQfS$jIΥdM#EQQ@-PE%%SQ@% )Q@Ţ (4 ZJJZ(((`%- (Z((%J(Q@J( ZJ(PE-%PEPE (Q@)(i( J(BPEP0BQ@-P0 (REQFe&,!vьQa)1@)6h LfԀ74n4;ix@JTeQDS(+A|ȅ7Ώҁ қ)+)q8֗ցTQ @Q4}*G'{PcH{RQ?;r$u"XU }(A7f=DesQpz{> x{S1nFjCyvQ74f=v/zӚ1TޭHq BiߍQ#eqHGe&Rh<4c/E]Ry袘s) =HM .x42ʙjEpTzXwLo@#7r!W-m躝,H1mlVϑi].Z¿d2_j9EԺ7ِ2K26$SR)G[iVŃu =n$<85E;&$ؙG۲o;Ws8x?+JCl u5ܔƲ{m!22GP-둾CE$ ৌHѩ'\ULPR(oJn=LSfLa{QnP! Jz1Sm#0H7i <>񦛈ԏg< Q ɹ&zL'"yvPI`.օ_{F:Pcx)lZc=MA+8;hd D)iig鍜S'{H 0ОɆMq|b +WE쉵v8U>h,xME4C /r;[Rv(m/>% N儠OV]͑ݳzV098+< XuӓYIG21U]fvP\(Xv F[ {w5e=M|xrPebjO2A`[ܨ'J8٭IN|n@d0)Vs^U!fDbaQG\Ճ40E'ց %P!h((!i%%1( )Q@(@Š-&h4f3@h.i3@ \!3FhAJ)(h4(bQ@(((( EPEP (aEP Q@)h (h(P aE1Q) &-HHh Rq@Ȧ@ɤbafEEG0imBPPz7(ooݚ(dz04 R e ,݅BY\Be"UR*Ŏ(4Hk!SŽHGPiBdk|ҁ ~5YHҥrVDcxBiv8(Y:T^iҸe45"DD}jA}֪ !qG@h*LޏC!hAr 5Vd7&݉x i{jn>bH;cM+ܛ7jq4^) wjl֮CD{WM9?u*g*jvj>zʸ|;>Q\\8KqmZ=JLx먷AX),)PC ~_Ms躱+85sNI>etZ#Yim)"JR8=27eX>^Ցs{\K/ЊFv9É+Rw]w9iɨٶ&.OΘƴt^+HbioD_PqC0q#\ydCݻ+0Ǧqa3"X7;)?,I_WmᰧSBpy拎Ʋh)x;vc`zNWvgN¹֋i5Ҏv[& ھͼ g5۵-K!0a]#xGye.Ib#һY'OiX:dku8Ø}Jo Oq\&&ztVmgWv+<[B@;qU6^2q"1Vҁ'J@%-PIH ( )QH(ZJ`P!i(PRf4PE (RPK@ E ((P0 ( ( (AEPEQ@Q@RQ@%)h)hhaE-S)qL,i iHBm@%42iLo4NhB▁]ئn4|Ɛ7@Ȥ ? u&q@MP1EP,)4OjB0@֤ I"XUaMzg; 83@J 5",OS4:ƫ`j]z⨴@I#@4'zTpA*LT>k6|ާZR 0h1ړ,:1)-3JcA׊ESՁ)>qNOF}iiD] 7qMFnfJƉ'Zll˸拍7h?)XE Z; sOc RѺcsҰ[Ni[=7Wǁ]76r}jOT XBq4(A9=*_ G ,cW#GUϦ^*ߵzY1 @'¹lG9e)ݗ;GҲo35KGs!9p^3ΨP RdO+Z|EiV_ZohdrF3Ue*}d斨aRR(I@ ))) (E (AE )QHAE (QLaFiJ3LP ( JZ(((ZJ(P@ (PEP@Q@REPK@ K@ EShKLP@–P2|P12)7 `7"HCsM!b&(x41L'.HCSLbtϵM&( Qޝ.V7$`zip)p)7⁍c_g)\zVw$ ݳR3M6Vo5jO1*y%ROQVDF\+Hr!P4j3ʽyB{wU%f)r?%sGWN*I(t]rh)4K88JG@;TXi[oAPTƽFn"<*Eg1#R!c敭?5! اZ(*3+kA\xRyn)<(1E-7 7q}295%s&9gjL7e=4[jW_tqG2J5>32zT2>Zi|$h4tϵ}@%l6c;TdI#['֭'c&3(csI7)>˒9@Xtw'Z-ަSpfRw.AJXFr*\O6JMg$nt8檬k91 vZF2;|*뚔Qd}qj͚ՕrOR)ۙ"p3+i$MsZdBKA<WCgM=E(כ_םFPC0?xu&rpwQ9w<楒Y!dZŢ=s%Q5{ i{<w?{Hk~+ D:c,g^gWn-{Z7n^6:'QEt]|78)^uc>$WL0;UdfUCQހHkS8<5FdrۢTYf2!Hi JJP E0 (P0 J(AE (RP0RPEPES )Q@Q@QL(P0 (Q@– J-%PK@Q@Q@ EPEQ@PK@Z)R)h n &H ..6b hM3i6TRd `7yIBhfƖ4ܚ^ihϽ.h'&֠7 LȠL `4Ӛ h?{]D,U2>x&dn fW#1:^/ '«m-DdML-GG)VmuaL3j6!1U DFX򨪌d="[#!jnzmN&oALiؔHT8?*Es#CTMj`.[Zl*9yȽQ:An3f:\'Bivȿi^٠z QFn PW1 GǠ4ܑm5?ír*ƫ?Bv(4g˼7ӽs7qn?r:m%9~st*'NkSgA \w>[O\WXٞ3p(i#x |t>6<\|EWWbF=P, h8woݑw!"0j9Xn``sɭKc3Y$œ CB(aHnʟ Fp+6L)!N*9y$EJ-x8q&,IWՆWvЋc IrՐ1P3!ETn`jha':RI\THqt5n@+~cS!ې˕XMΟs]8f>8qnNjt XHkޭB;9Xĥs5g$]C9'pc\Gz]fS}8Wxw|&^ѝy !\zz|2Dc[=EtD. t5ԏ%0݊ei0N/6G5]*)Ċ@74PRRQHb (Q@%SQHaILBR (((P ( )(aEPK@ E-JZJ( Z(P Z(Z( ( (KH`PE-P1h1h1 3uђii3L&I@ 1H֛&3F@;eE; LRb i1v6Jb &$Xðm#<@+y`ZO(zӰXi _.XoBT,C%4ni#">҂Bjs4cw4vH&QfNEROE s@:Ԟf8%s3sX*u\Ձ>:MH:dEHLOqT/Zd]-H4HE"l!kvZ 2L{(֕Q|CIH} v3@WE 9LD” 1yaR#h-"`#^)&?MPCE`gj\^1Rj۸T15L\s7OyPu+ݍ@.㎵%sRw"E )\ruƳ&Yĩ5\i,j]huB"[ Fڃ41vuۻqOZ7D#F&N՛Wgldfj:5n[̄X/rx%YԲɐ9jÂ7}M.f4>z"ƈ۔Zr6hx;T{f$F3&ո5L>{X"`TW)"-S`ݕTdV+Gy>&0TlJ$Ea#&;_sW} bTaqB\GZ奵c)8Iw%ɐmM{ jTf56FŤ%Vq9Uc.f<ϠF:F8f XODȊU82 \,bB_<.l%ՈH`ZF|5 \v\Bgҹ7/ЩqhnMPHR 0EPK@%-% J IHbPE (Q@ E )Q@(ERQAAE1Q@PQLAEI@PE (((Z((Z((@ EPK@– KLc HbhmZcHC3E! 4vS|aq@ ݚ2)2)w c}PӲ}iOH2P˜^FHHBcޛ!0E78{CMgcT h.(õ.)ƖQڐB% v;3IԊv+Ɠ*K4S_`H]KCB}?wjֺB#@JN$p+M{') 2W2fI60kQL3hg# Os8-^)3Q!#ES9c`' sMG>ho8+a%1SgTkXfɅUMAܦҫ&jb |֬i>2<{صQ3\ޡ1V0I$VpsQdވم$/&*ؽ2.95ة'pXJA."/rKC&6lxMzVUW3`(:+ h.RTPiw8a:F2&{GE͆|vzJ2QdڽkS6{gL75RXATE ҺnsX"D2 1޺0 mYDdͨh6wK5NCUNj֥x×bq늨HŒVf$A9l'lkķ.HltE6䉟= vƜlkAh=jC3;tvYGC3ξErLGod*Ms:Se$Ql6],mUؙTF-Ccy1492͡c*G=+ІSrM5b  r(kQ q]0,Z]I2-~^ *[4HKt#l= [naHLcd J_{^F,,&3ƯQ-*]ϟɑ1Ws[GCZ.jF[pHep΂P3N*QN1R֊%Zu0P@-0 ) ( %)1@%!%)( ())Q@Q@RRS( BHaE0 ()hh)hZ(ť,.)qHa\PRHa3Fh i3EL+ Lњ@(4SwR恇Z0(4fMO;Pd2}h:4G.z6qKLb`aB:RaN= G@<Aϥ0ԻHB(1<h f{ҸDN{҆ށyNӸ;gM!ؑc"4ZcHiUDw)ޞ!N}i8-;z6Z`8qO H"AV`<֓veC9=ɳ0*}sJ"' ,fY1* #ZGLC [ۭCsNZLsk7jO4JxVMKkFC֢ۂ3ނKhF>|5t$VGt"|^k0/*Uʟ)Yqǽ@d|`1lΥD=zv@M\@VHJ "ԙqYk n=) G-9ZDJC#WP*ǚ",XԘnMHִJ]CK.(a(E-- b ZZZPE0 ( ( ( )%1 J(P (%-%0 J-%!(QLZ)QHb (RKށ- ZZ(bNQ@`P E-Q@ I@ E (Q@^ Rni7 b Z-:.QH" S.W88hKr">zi _4zRҀo>GiͩCƑI".5vIGA#50;aQWj=Ҏ$ ٨K40 zSHjnvza_َzMրmLSIZ@&ړy=j' hiPv9QqYC>Pȩp1֨ZmYBTh(:S & R`Bo;a@6Q c#8ڐvlXjV =vvHi0M.x5vTɠ*۳HybC<VWF4Wf8 ] =8ܑcP.=#F+v0`O,G1 O)F2qVY]|ު+Ipɫ9<&OZF~RۯsJRcHKçl1jK, NB\ӕ{rc X2)VtE,+qhb]mԠSR R’bb.(4 (`-Q@Q@ I@ I@(aI@J))(Q@’))QHBQL@QL@%--Q@Z(AE- )RqAB$RXITfS)h)h-%(aE*њC4S0)1)٦"AKPPE;" n{ Ӱ,0ƐXi^4:6bjirLS2EU/2 K@" PmP1ȣx=>qo4ɄAIX¢81=7(;-=h}m>ڤ4m!|jxzP; ( iDEl2H M:VZ_¨sM-@&i3O@ fm0*y>&a|({SԾSwFMOE"w&1 bURwI-I$n7gK Vش(B#U'=+hX9ŝInZQɨҘT٫[U9%v@*O5VCޫrl(sK`P.qI+6+NG8 此lE+[8F֢64#Nț^Q[e -"6ty>'u1 w#NF+;6-ҬdyCKb)iJ)Q@Z( 1@)hPEPE-%- J( (Q@Ģ-!Jb J(AI@RR KH%PI@ I@PEPE0 Z)h Z)hhb:-j2hKT@Q@(@ I@ EPE-%-PPJPk2I)SQ.sN/7&M {9IpǠґV)Lf7w&M#=(t%g j512)>W/ *75D ֒>f"@3IBj]1GܢzP;z f B>t'&^#;I!M.@M.@Xx^ö(Kc"Pe2ƂH{vzYi9(-N,u`GTh/iP*`UsɤHmR!iSdȨL֑${sN1Sp;~EqhJw}=!}i\9yzR:j#p\W 2H7$}*])Tu~K+m ɏhUS s$݆Gz繪fMH-Rhiis zEq6z^5|\76:T>cb9Ӛ#Y3;Scf@0a&lg4#qUSvjKwk^%PTyg|m*AZق&î>RGzEIUQ|W#)&PJ]5P1Ozǖ.(0 )mQ@- ( ( ( ( (Q@ (BQ@– ) ))JJb J`Q@J( EPILAER (R)i)h)hRK@ E--8RPj\ԳD£"ci*– (Q@ZJ- )iRShEPE*QP@ܑN @SI6i"=X!BJ=eiwb;ABt&;ϵHZԢNEfET0y|Ըϙm r1Tr{xRgUq>yMdzRc@;ldSƍcUo${-dD#?{5%gR}ky5v ԚrÌΖx35^Fj;6[r $F@0#\:7J3n#5I]]b`P!)h Z(RQ@-%%)hQ@ ( Q@Ţf4f Fh(!)i J)( )PEZJ`PE (Q@Š)i(E-P@-R1is@ \1Iw &LIa1ILQ@ (Rb\P0R)3L*fD /i=*"0BOSNi OѓHCZ]Lj]ҁ{SrEw.E;#֍@*Q"e\0> MR`P!M&ƠByfR `SqN& L!nsK@/Nf 3@4 \Mئ!3'֐ &4&qL-R!.(اbS " *H jϊJe`ƥي̑*PC*&V$ .(,=hG7rnp$.82(*hASH)P+Prn@e>QQqR4vj]Ӱ zR_J,0(‾1JRQrauuD#8!mP §D*|I5X3F LI5ZŴ% 1N:]2[' Vg=vrs⥙ی֑W6ITrmPqҽG;R|)+ )RPE0 (Q@Š-Q@ EPE%RPPEP@Lf4f ESAK@Ģ E!R(AE%f(((E (Q@ EQ@ EP1h.is@ vh.E\7Qq3Ib 怸4 \њ3Fi Lf4J(QL{6Ti\SpiLCցvTeGcLc94M.h1IzQڐxiGj\{RS(LfhAӡý;{S0&@MϽ63F@44dnKSrh<-8 \SlNzJ-׿`a@8ZA/“C*:,Ma̘?w2J@VEq&4rd85[X4zВmJtFLJ# #·Q$Tm^A rzMzΣr E1%R% Z%Q@ EPR ( J(84f Q@hJZJ( (% %-%ZJ`Q@QL (hAK@– (4Q@ EPK@.h.h.hf(E4P1sFhsE ( )QH44]ޢ>Ɗ6ICJ!0h ZvzS c7ۊMސڔ`P1-1 LP11Ma|K,.6{0 74%]1M<%1 )(a ð.'Ǡ7\ B!3zTEɩl2j@%L qI& \!٧n.Mj3HBbD9-Ϊ`:R$%pi2Eb&*}J;ys΅-5h*6>܁(HbQ@J(3Fh3H4f4fh њ4QH LJZ3EQ@P (0C (QLbRRRPE0 ((E )Z(Q@Q@ EPE-%-)h(b@-b Z(@Š@Rړij@L77JB})sLɥ4 ~u ]MҘ ϥ'41F1@i3@⁆M `F b0w&IHIHiDf$Dia`&\Z/4~ OŒP]ϵ/P`zѴz11KzMm=6 IQ(j<@X_(F],)aC" b#3˜ecR cL"b )s@"38-L#aSV]v@DEFXR&7 M\nf&iiLsL7&RqNL&"=ĞXӴP2<њ&iyPK@b \P\P0ZZ-.(P3@ ((VSYɯ2{mPjcJ1S~z}i!MYsM<Ƶ-c Plm/e` ׫ ]ՇQ]E ((E b )PILP1)h (Q@’)())Q@@P1i(h(`R ((E (PEPE )Z)QL JZ( (Q@RRQ@ EPE- )hR0 E- Z(ZZ%-@i@5$h1h⁅>0}i0}h9 43F7Q Œ\\Z2=i7 7/yԇq8UU#'&96Ţ1%)( (b J(I@ZJ@PE (Q@J)ZJc))Q@ EPE-(E0(bLAE `P(PE-%PE ((((((AEP@Š%: (-RE ( Z8)(8( / \Q1IN)(Bf4Lǭ0"@(p?47S !配! 曊B  PnO2.hMFIHÚn vQ`$ O )ء0%R@"4 3KLj@ %J?c+fz ȳJC4R1haK@ZZc Z@PLcE" ( J6VwDE`檑yh& in C6iH$WChB6h54c-+e\HIZVTnMlG456m(#/]JeP` C˔ܵ%’ ( J(BQ@ EPE1%PE )J(QLaERQLAE ( ( (-!SQ@– ( -PK@( (bb JZJPI@aE)h(( ZJZ(aE-%-Q@bFhsE%%&(AJJLniQ4R`6lbmi=ҍ494i1I@.(&isEiQ]?h1LbRnB S@0ZeS-"MTlP2KUYɠ͑mIsM! EP@ihihP@– E `-:E")h@gaQ]AٙqUx=ObZ֥V)LVW*T7иQKF+8ַW8I$s#1X&7srzWŠaE J(AE (P (Q@’(0Q@((ZJZ) ( aEPK@- (- Q@ F( R1F( 1@b(Pb&))Q@ JZ( ( (Q@R0 (Q@Š(QAB@%fCI nh74J1@]h@mm;e.@hhp(`+2fL I練 8bQP1配! &hf4hRţ4s@64*@)-J YX$M H6zUR푓QRHsHAEH E0 Z)hh1h Z )s@ K- Z((BRP !s@a=WeZ=XJ譞j] oPǦj1M vi*F%(ZZPLb@bLE-RE1- (E (Q@ªJ͝"&mc%#d,kd Pqӆ,_Z0@"vO2)Mn2źVtQL()((()(QLaIHAE141 IIHaE-%0 (hP!h0 EPE (PE JPEP()hQ@RPE Z%P ( ( (haEP ((( IE E)8Q@4f3H&hQ@% J))q@;^(0 PRb(ih J%1ؘGRaqPEn!3KB4fiiLRm<%$ SQ0AR2nLdeɨԄDZM"FfBI@%P@- (ihbLK@Š-- (hZ(QL)h J@PM@,@;zz1}MpVA3:TǾ@=k+j#}ʴkH24 nfh$nhӀ1ԴRPI74ini!sHBRR(B@ŠZ(E0E ZP1h (bR (Rf E (A(Z(Q@Q@P(AE (i(Q@E (%P J(BQ@(bQ@Q@PEP!)h)hbP )(0(E (Q@ )iQHAE )(ĥE )QLaE )RSAE Z(Z( )Q@ ERERbR(N)))) ))) 4Bf4Lf4f4J@.)PTU u254DM0CqK@;bKc4K (BZ-M&M&曚B4Q@ZZP@ ILbL ( ZP0 3@%- ( JZ%-04(AK@ K@RREP0 Z(aE J(@% (AE (PEPQ@Q@ ( (AE ( (S (b Z(aERQ@ŠPP0(ES EPL)hZ( EPP@.i(ԛi!3ILfh1@b< `Z(aI@J)Q@ EQ@PE (Q@Q@JZ`PEPE (AE- J(BQ@Š@%QLP1(AE ))(i(i(QHbPE0 )R ( )Q@QL% ZJ( ( ( )(1)i))QL(E! (Q@@PE (Q@ŠPEP0R I@Ţ)iQL(PE (PE%Z()h()h ( E( )Q@ E1- Z()h-P @ĢQ@ I@RAE JP0c (S ( ZJZPF( (AE ( J(P (( (((E0 QH`PE ZJZ`PEPK@Ģ I@ I@R0P0 Q@ K@ E-%0 )1I@Š(AEP0 )(P0% (QLBRRaE(E- ( Q@PI@PRI@Q@Z(RRRE-RKLŠ-%Q@ KLŠJZ@3u(9 J( (@P 1hRS ( (Q@ E%-%Q@Q@ (AI@ IH`PE (Q@ĢQ@Q@ EPEPEPE )PP0-P0Q@-P0 Q@%P⒀ ()hRP0&(RP RPE0 )Q@ E )QH E J-RSh@-(QLBPH ( (B ( (PHQ@REPE ZP@PEP-P@PE-%-QLAEI@ĥAM=) ցP0JZ% (AE )Q@()h)h (Q@Q@PEPI@ I@ E(PQ@(P E Q@(aI@((J((aE(aK@bREQ@Q@Q@ŠP0%PI@ J(Q@%RRRP Ţ (P0P0%)h( %Cb )Q@%LAE ((Z( E Zb ()h (R!Ԕ (dR: (RPEPEEPE (Q@ E (Q@ JZP0 JZ( ((PE ( (Q@Q@&( ( E (AE- J(Q@Q@Š( ( (P0 (i(P0 Z)hPEPEP %P  J(%!%1J( ((AE!RP E1 Z)QLAK@Š)i(E1Q@PI@ I@ I@ I@%C (AE JZ%-PK@Š(AE-(RE-Q@QLRR (P0 (Q@(aK@ K@Q@REP0 ( (aE ( 1@Q@ŠPI@– J( ( (( (BQ@-((AEP@Š(- ()hQ@ EPK@ )(i(PQ@RPQ@J((%R@%Q@(aESQ@Z(QL (h(PEPEPE(E ( (Q@ E%- ()h- )Q@ EQ@Q@c )Q@aERQLAK@ĥ( (REP( ( ((aE ((P (PE%- (E (Q@RPP J(EPE )QHE )E1Q@Z(Q@ EP@Š(ZJZ((AE (( JPQH%0 J@R)iJ) (-Q@Ť (ZJ`-R( (((E0 (P b@RQ@ŠP@Z(( IHaE (PPQ@REP@-P0 ZJZ((J( (E()hP RRQ@Q@Q@% (J(Q@ EPIH%(EPI@ I@ E%Sh0RFhQ@E (Z( ( (%RPI@ ')( J@-%0 )P!i(Q@-RE-%-)hQ@Z)R)(i(BR0 (Q@ K@%-%-(`PER-PESPR@Š( I@Q@(KL-)hQ@Q@Q@Q@RPEPEPI@-%- ((AEP0 (E0 ( J(J( @%P0( JZ%Q@j( ZJ((Z(PE0@- )iQ@Q@Q@ E ((aE! JP0AE%- )(i( ( ( Z()h(KH`PKH-P E%- J-%-%-Q@P (E-Q@(aK@mRQLAERc Z(0E(aEPEPE (RP@ EQ@Š)(Q@ ZJ)h(P0 )Q@ EPI@PI@%)(RPEPI@ I@ZJ@PEPIbQHaE0 (R ZRhE-f \04Q@PQH`R)(%PRQ@)(Q@(()h ZJZ( Z(%  )QL@PE Z%-0 (@S( ( (JZP0b@-(aE((b@Q@(EPE%PE )RSQH(aE0 )SQ@RRSR% J(IL@ )(Q@Q@ EPE%-%Q@ EQ@ EI@ EP0 EShE1- )h JZ( (Ģ( J@S E (RP I@)(i(h Z(Z((Z(h (E-%-Q@-% Z(()(hAE (P@RP@)h (i((0z( (haE (Ţ )Q@ ER%!(%- `R (S!()( ( J(E0@Q@Q@ E (PEPQ@-%)(ZJQ@Q@ (-P!i(PE ZPE (4Q@%PE (P (PPQ@(@S (QL (haKHb Z)hQ@ZZ@%SEPZ((aE J- )( (Q@ŠPPEPEP!ihhE JPQ@ E )Q@ĥAEP1hQ@ I@RQ@’Q@%PI@ I@ĥAE% (AE (hP!)h(I@)(Q@PE JPI@Q@C`PE J(  )( E JZ)(Š`%-1 K@ (BP1h(AK@ EPEP0 (BRI@Q@ I@QH`(( (haK@Z(haKLAE ZPKLZJ-%%P!(((( (Q@libspatialite-4.1.1/test/sql_stmt_tests/compressgeometry3.testcase0000664000175000017500000000025212163502133022557 00000000000000CompressGeometry - float :memory: #use in-memory database SELECT CompressGeometry(3.14) 1 # rows (not including the header row) 1 # columns CompressGeometry(3.14) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/fromewkt29.testcase0000664000175000017500000000100212163502134021071 00000000000000fromewkt29 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1, 2 2)), GEOMETRYCOLLECTION(POINT(3 3), LINESTRING(4 4, 5 5)))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1, 2 2)), GEOMETRYCOLLECTION(POINT(3 3), LINESTRING(4 4, 5 5)))')); GEOMETRYCOLLECTION(POINT(0 0), POINT(3 3), LINESTRING(1 1, 2 2), LINESTRING(4 4, 5 5)) libspatialite-4.1.1/test/sql_stmt_tests/fromWkb4.testcase0000664000175000017500000000025512163502134020564 00000000000000fromWkb - bad small blob :memory: #use in-memory database SELECT GeomFromWkb(zeroblob(2)) 1 # rows (not including the header row) 1 # columns GeomFromWkb(zeroblob(2)) (NULL)libspatialite-4.1.1/test/sql_stmt_tests/badEWKT6.testcase0000664000175000017500000000066312163502133020402 00000000000000bad EWKT: MultiPolygon :memory: #use in-memory database SELECT GeomFromEWKT("SRID=4326;MULTIPOLYGON(((11.2 12.3, 11.3 12.3, 11.3 12.4, 11.2 12.4, 11.2 12.3)), ((10.2 11.3, 10.3 11.3, 10.3 11.4, 10.2 11.4, 10.2 11.3))"); 1 # rows (not including the header row) 1 # columns GeomFromEWKT("SRID=4326;MULTIPOLYGON(((11.2 12.3, 11.3 12.3, 11.3 12.4, 11.2 12.4, 11.2 12.3)), ((10.2 11.3, 10.3 11.3, 10.3 11.4, 10.2 11.4, 10.2 11.3))") (NULL) libspatialite-4.1.1/test/sql_stmt_tests/casttoblob6.testcase0000664000175000017500000000027512163502133021314 00000000000000CastToBlob() - NULL hex_input :memory: #use in-memory database SELECT CastToBlob('0129abCF', NULL) 1 # rows (not including the header row) 1 # columns CastToBlob('0129abCF', NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/ring12.testcase0000664000175000017500000000057412163502134020177 00000000000000NumInteriorRings - Polygon with 2 interior :memory: #use in-memory database SELECT NumInteriorRings(GeomFromText("POLYGON((0 0, 0 4, 4 4, 4 0, 0 0),(1 1, 1 3, 3 3, 3 1, 1 1),(2 2, 2 3, 3 3, 3 2, 2 2))")); 1 # rows (not including the header row) 1 # columns NumInteriorRings(GeomFromText("POLYGON((0 0, 0 4, 4 4, 4 0, 0 0),(1 1, 1 3, 3 3, 3 1, 1 1),(2 2, 2 3, 3 3, 3 2, 2 2))")) 2 libspatialite-4.1.1/test/sql_stmt_tests/translate4.testcase0000664000175000017500000000030612163502134021147 00000000000000translate - text input (null) :memory: #use in-memory database SELECT ST_Translate("shift", -1, -3, -4); 1 # rows (not including the header row) 1 # columns ST_Translate("shift", -1, -3, -4) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geometryn17.testcase0000664000175000017500000000106112163502134021246 00000000000000Geometry N - multipolygonM :memory: #use in-memory database SELECT AsText(GeometryN(GeomFromText("MULTIPOLYGONM(((0 0 1, 10 0 1, 10 10 1, 0 10 1, 0 0 1),(2 2 2, 8 2 2, 8 8 2, 2 8 2, 2 2 2)),((0 0 3, -10 0 3, -10 -10 3, 0 -10 3, 0 0 3)))"), 1)) 1 # rows (not including the header row) 1 # columns AsText(GeometryN(GeomFromText("MULTIPOLYGONM(((0 0 1, 10 0 1, 10 10 1, 0 10 1, 0 0 1),(2 2 2, 8 2 2, 8 8 2, 2 8 2, 2 2 2)),((0 0 3, -10 0 3, -10 -10 3, 0 -10 3, 0 0 3)))"), 1)) POLYGON M((0 0 1, 10 0 1, 10 10 1, 0 10 1, 0 0 1), (2 2 2, 8 2 2, 8 8 2, 2 8 2, 2 2 2)) libspatialite-4.1.1/test/sql_stmt_tests/dissolve21.testcase0000664000175000017500000000117712163502133021067 00000000000000dissolve - POLYGON ZM :memory: #use in-memory database SELECT AsText(DissolveSegments(geom)),AsText(DissolvePoints(geom)) from (SELECT GeomFromText("POLYGONZM((0 0 4 1,10 0 5 1,10 10 6 1,0 10 7 1,0 0 4 1),(1 1 2 2, 2 2 3 2, 2 1 4 2, 1 1 2 2))") as geom) dummy; 1 # rows (not including the header row) 2 # columns AsText(DissolveSegments(geom)) AsText(DissolvePoints(geom)) MULTILINESTRING ZM((0 0 4 1, 10 0 5 1), (10 0 5 1, 10 10 6 1), (10 10 6 1, 0 10 7 1), (0 10 7 1, 0 0 4 1), (1 1 2 2, 2 2 3 2), (2 2 3 2, 2 1 4 2), (2 1 4 2, 1 1 2 2)) MULTIPOINT ZM(0 0 4 1, 10 0 5 1, 10 10 6 1, 0 10 7 1, 0 0 4 1, 1 1 2 2, 2 2 3 2, 2 1 4 2, 1 1 2 2) libspatialite-4.1.1/test/sql_stmt_tests/fromgeojson23.testcase0000664000175000017500000000127312163502134021567 00000000000000FromGeoJSON - geometry collection, SRID :memory: #use in-memory database SELECT AsEWkt(GeomFromGeoJSON('{"type":"GeometryCollection","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"bbox":[4,3,12,10],"geometries":[{"type":"Point","coordinates":[4,6]},{"type":"Polygon","coordinates":[[[4,6],[7,10],[12,3],[4,6]]]}]}')) 1 # rows (not including the header row) 1 # columns AsEWkt(GeomFromGeoJSON('{"type":"GeometryCollection","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"bbox":[4,3,12,10],"geometries":[{"type":"Point","coordinates":[4,6]},{"type":"Polygon","coordinates":[[[4,6],[7,10],[12,3],[4,6]]]}]}')):0 SRID=3003;GEOMETRYCOLLECTION(POINT(4 6),POLYGON((4 6,7 10,12 3,4 6))) libspatialite-4.1.1/test/sql_stmt_tests/assvg25.testcase0000664000175000017500000000104312163502133020356 00000000000000assvg - relative/absolute MultiPolygon :memory: #use in-memory database SELECT assvg(geom, 1) AS rel, assvg(geom, 0) AS abs FROM (SELECT GeomFromText("MULTIPOLYGON(((10 10, 15 10, 15 15, 10 15, 10 10)), ((71 11, 75 11, 75 15, 71 15, 71 11), (72 12, 73 12, 73 13, 72 13, 71 12)))", 4326) AS geom) dummy; 1 # rows (not including the header row) 2 # columns rel abs M 10 -10 l 5 0 0 -5 -5 0 z M 71 -11 l 4 0 0 -4 -4 0 z M 72 -12 l 1 0 0 -1 -1 0 z M 10 -10 L 15 -10 15 -15 10 -15 z M 71 -11 L 75 -11 75 -15 71 -15 z M 72 -12 L 73 -12 73 -13 72 -13 z libspatialite-4.1.1/test/sql_stmt_tests/makecircularsector7.testcase0000664000175000017500000000032512163502134023040 00000000000000makecircularsector7 - NULL radius :memory: #use in-memory database SELECT MakeCircularSector(0, 0, NULL, 30, 60); 1 # rows (not including the header row) 1 # columns MakeCircularSector(0, 0, NULL, 30, 60) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/shiftlongitude10.testcase0000664000175000017500000000072412163502134022263 00000000000000shiftlongitude - positive and negative longitude linestringzm :memory: #use in-memory database SELECT AsText(ST_Shift_Longitude(GeomFromText("LINESTRINGZM(-170 0 1 -2, -175 2 2.4 -4, -179 4 3.2 -5, 175.3 5 4.7 -9)", 4326))) 1 # rows (not including the header row) 1 # columns AsText(ST_Shift_Longitude(GeomFromText("LINESTRINGZM(-170 0 1 -2, -175 2 2.4 -4, -179 4 3.2 -5, 175.3 5 4.7 -9)", 4326))) LINESTRING ZM(190 0 1 -2, 185 2 2.4 -4, 181 4 3.2 -5, 175.3 5 4.7 -9) libspatialite-4.1.1/test/sql_stmt_tests/fromgml19.testcase0000664000175000017500000000130412163502134020702 00000000000000FromGML - MultiPoint v2 3D :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('1,2,103,4,11')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('1,2,103,4,11')):0 SRID=4326;MULTIPOINT(1 2 10,3 4 11) libspatialite-4.1.1/test/sql_stmt_tests/garsmbr17.testcase0000664000175000017500000000026012163502134020672 00000000000000garsmbr - bad longitude :memory: #use in-memory database SELECT AsText(GARSMbr("001TZ4")) 1 # rows (not including the header row) 1 # columns AsText(GARSMbr("001TZ4")) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/ch_m.testcase0000664000175000017500000000022412163502133017772 00000000000000chains to metres :memory: #use in-memory database SELECT CvtFromCh(100); 1 # rows (not including the header row) 1 # columns CvtFromCh(100); 2011.68libspatialite-4.1.1/test/sql_stmt_tests/ewkb3.testcase0000664000175000017500000000041012163502134020075 00000000000000EWkb: Point XYZM :memory: #use in-memory database SELECT AsText(GeomFromEWkb('01010000E0E61000009A9999999999F13F9A9999999999014000000000000059400000000000002440')) AS wkt_geom; 1 # rows (not including the header row) 1 # columns wkt_geom POINT ZM(1.1 2.2 100 10) libspatialite-4.1.1/test/sql_stmt_tests/forcenull13.testcase0000664000175000017500000000030412163502134021221 00000000000000ForceAsNull() - BLOB/INTEGER :memory: #use in-memory database SELECT Hex(ForceAsNull(x'0102a1b2', 1)) 1 # rows (not including the header row) 1 # columns Hex(ForceAsNull(x'0102a1b2', 1)) 0102A1B2 libspatialite-4.1.1/test/sql_stmt_tests/casttoblob14.testcase0000664000175000017500000000045012163502133021366 00000000000000CastToBlob() - Valid (2) hex_input :memory: #use in-memory database SELECT Hex(CastToBlob(CastToBlob('0123456789aBcDeFfEdCbA9876543210'), 1)) 1 # rows (not including the header row) 1 # columns Hex(CastToBlob(CastToBlob('0123456789aBcDeFfEdCbA9876543210'), 1)) 0123456789ABCDEFFEDCBA9876543210 libspatialite-4.1.1/test/sql_stmt_tests/geomtype50.testcase0000664000175000017500000000067212163502134021072 00000000000000geometrytype - GEOMETRYCOLLECTIONZM - one POLYGONZM :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("GEOMETRYCOLLECTIONZM(POLYGONZM((30 20 1 2, 10 40 1 2, 45 40 1 2, 30 20 1 2)))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) GEOMETRYCOLLECTION ZM XYZM GEOMETRYCOLLECTIONlibspatialite-4.1.1/test/sql_stmt_tests/badEWKT2.testcase0000664000175000017500000000040312163502133020366 00000000000000bad EWKT: Linestring :memory: #use in-memory database SELECT GeomFromEWKT("SRID=4326;LINESTRING(11.2 12.3, 11.3 12.4, 11.4 12.5"); 1 # rows (not including the header row) 1 # columns GeomFromEWKT("SRID=4326;LINESTRING(11.2 12.3, 11.3 12.4, 11.4 12.5") (NULL) libspatialite-4.1.1/test/sql_stmt_tests/mbr26.testcase0000664000175000017500000000044712163502134020024 00000000000000MbrDisjoint - Line + Point outside :memory: #use in-memory database SELECT MbrDisjoint(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(2 2)")); 1 # rows (not including the header row) 1 # columns MbrDisjoint(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(2 2)")) # header 1libspatialite-4.1.1/test/sql_stmt_tests/pointn13.testcase0000664000175000017500000000045212163502134020543 00000000000000pointN - regular LINESTRINGZ out of range (error) :memory: #use in-memory database SELECT AsText(PointN(GeomFromText("LINESTRINGZ(4 0 4.4, 4 4 2.2, 8 4 3.3)"), 4)); 1 # rows (not including the header row) 1 # columns AsText(PointN(GeomFromText("LINESTRINGZ(4 0 4.4, 4 4 2.2, 8 4 3.3)"), 4)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/expand2.testcase0000664000175000017500000000047212163502134020433 00000000000000Expand - Polygon :memory: #use in-memory database SELECT AsText(ST_Expand(GeomFromText("POLYGON((1 1, 2 1, 2 2, 1 2, 1 1))"), 0.5)) 1 # rows (not including the header row) 1 # columns AsText(ST_Expand(GeomFromText("POLYGON((1 1, 2 1, 2 2, 1 2, 1 1))"), 0.5)) POLYGON((0.5 0.5, 2.5 0.5, 2.5 2.5, 0.5 2.5, 0.5 0.5)) libspatialite-4.1.1/test/sql_stmt_tests/m_dm.testcase0000664000175000017500000000022612163502134020003 00000000000000metres to decimetres :memory: #use in-memory database SELECT CvtToDm(21.50); 1 # rows (not including the header row) 1 # columns CvtToDm(21.50); 215.0libspatialite-4.1.1/test/sql_stmt_tests/fromgeojson14.testcase0000664000175000017500000000107312163502134021565 00000000000000FromGeoJSON - polygon with SRID :memory: #use in-memory database SELECT AsEWkt(GeomFromGeoJSON('{"type":"Polygon","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"coordinates":[[[1,2.3],[4,1.2],[2,1.6],[1,2.3]],[[1.5,2],[3.5,9],[2.5,1],[1.5,2]]]}')); 1 # rows (not including the header row) 1 # columns AsEWkt(GeomFromGeoJSON('{"type":"Polygon","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"coordinates":[[[1,2.3],[4,1.2],[2,1.6],[1,2.3]],[[1.5,2],[3.5,9],[2.5,1],[1.5,2]]]}')):0 SRID=3003;POLYGON((1 2.3,4 1.2,2 1.6,1 2.3),(1.5 2,3.5 9,2.5 1,1.5 2)) libspatialite-4.1.1/test/sql_stmt_tests/makeellipticarc6.testcase0000664000175000017500000000032612163502134022307 00000000000000makeellipticarc5 - NULL x_axis :memory: #use in-memory database SELECT MakeEllipticArc(0, 0, NULL, 200, 30, 60); 1 # rows (not including the header row) 1 # columns MakeEllipticArc(0, 0, NULL, 200, 30, 60) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makecircularsector13.testcase0000664000175000017500000000033412163502134023115 00000000000000makecircularsector13 - text stop :memory: #use in-memory database SELECT MakeCircularSector(0, 0, 100, 30, 'alpha'); 1 # rows (not including the header row) 1 # columns MakeCircularSector(0, 0, 100, 30, 'alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_tests/normalizelonlat22.testcase0000664000175000017500000000076112163502134022451 00000000000000normalizelonlat- out of range negative lat polygonzm :memory: #use in-memory database SELECT AsText(NormalizeLonLat(GeomFromText("POLYGONZM((120 -140 5 20, 120 -150 20 30, 130 -150 20 1, 130 -140 2 8, 120 -140 5 20))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(NormalizeLonLat(GeomFromText("POLYGONZM((120 -140 5 20, 120 -150 20 30, 130 -150 20 1, 130 -140 2 8, 120 -140 5 20))", 4326))) POLYGON ZM((120 -40 5 20, 120 -30 20 30, 130 -30 20 1, 130 -40 2 8, 120 -40 5 20)) libspatialite-4.1.1/test/sql_stmt_tests/mlinefromtext2.testcase0000664000175000017500000000054712163502134022054 00000000000000multilinefromtext2 :memory: #use in-memory database SELECT AsWkt(MLineFromText("MULTILINESTRING ((10 10, 20 20, 10 40),(40 40, 30 30, 40 20, 30 10))")) 1 # rows (not including the header row) 1 # columns AsWkt(MLineFromText("MULTILINESTRING ((10 10, 20 20, 10 40),(40 40, 30 30, 40 20, 30 10))")) MULTILINESTRING((10 10,20 20,10 40),(40 40,30 30,40 20,30 10))libspatialite-4.1.1/test/sql_stmt_tests/geomtype7.testcase0000664000175000017500000000045212163502134021010 00000000000000geometrytype - 3 + 2 :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT 3 + 2 as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) (NULL) (NULL) (NULL)libspatialite-4.1.1/test/sql_stmt_tests/buildmbr11.testcase0000664000175000017500000000027512163502133021034 00000000000000buildmbr - null args, no SRID :memory: #use in-memory database SELECT BuildMbr(5, NULL, NULL, NULL) 1 # rows (not including the header row) 1 # columns BuildMbr(5, NULL, NULL, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/shiftlongitude20.testcase0000664000175000017500000000131012163502134022254 00000000000000shiftlongitude - polygonm, negative interior rings :memory: #use in-memory database SELECT AsText(ST_Shift_Longitude(GeomFromText("POLYGONM((185 0 4, 184 10 5, 175 10 5, 176 0 5, 185 0 4),(-177 1 4, -177 2 5, -178 2 6, -178 1 9, -177 1 4),(-179 4 0, 179 4 0, 179 5 0, -179 5 0, -179 4 0))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(ST_Shift_Longitude(GeomFromText("POLYGONM((185 0 4, 184 10 5, 175 10 5, 176 0 5, 185 0 4),(-177 1 4, -177 2 5, -178 2 6, -178 1 9, -177 1 4),(-179 4 0, 179 4 0, 179 5 0, -179 5 0, -179 4 0))", 4326))) POLYGON M((185 0 4, 184 10 5, 175 10 5, 176 0 5, 185 0 4), (183 1 4, 183 2 5, 182 2 6, 182 1 9, 183 1 4), (181 4 0, 179 4 0, 179 5 0, 181 5 0, 181 4 0)) libspatialite-4.1.1/test/sql_stmt_tests/compressgeometry26.testcase0000664000175000017500000000056112163502133022647 00000000000000CompressGeometry - LINESTRING ZM :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("LINESTRINGZM(1 2 100 10, 3 4 101 11, 5 6 102 12)", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("LINESTRINGZM(1 2 100 10, 3 4 101 11, 5 6 102 12)", 4326))) LINESTRING ZM(1 2 100 10, 3 4 101 11, 5 6 102 12) libspatialite-4.1.1/test/sql_stmt_tests/shiftlongitude11.testcase0000664000175000017500000000061712163502134022265 00000000000000shiftlongitude - negative longitude polygonz :memory: #use in-memory database SELECT AsText(ST_Shift_Longitude(GeomFromText("POLYGONZ((-170 0 1, -175 2 2.4, -179 4 3.2, -170 0 1))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(ST_Shift_Longitude(GeomFromText("POLYGONZ((-170 0 1, -175 2 2.4, -179 4 3.2, -170 0 1))", 4326))) POLYGON Z((190 0 1, 185 2 2.4, 181 4 3.2, 190 0 1)) libspatialite-4.1.1/test/sql_stmt_tests/srid3.testcase0000664000175000017500000000032012163502134020106 00000000000000SRID - set SRID :memory: #use in-memory database SELECT SRID(SetSRID(GeomFromText("Point(1 2)"), 4326)) 1 # rows (not including the header row) 1 # columns SRID(SetSRID(GeomFromText("Point(1 2)"), 4326)) 4326libspatialite-4.1.1/test/sql_stmt_tests/sanitizeGeometry1.testcase0000664000175000017500000000053012163502134022510 00000000000000Sanitize Geometry - Multilinestring :memory: #use in-memory database SELECT AsText(SanitizeGeometry(GeomFromText('MULTILINESTRING((0 0, 1 0, 1 1, 0 1, 0 0))'))); 1 # rows (not including the header row) 1 # columns AsText(SanitizeGeometry(GeomFromText('MULTILINESTRING((0 0, 1 0, 1 1, 0 1, 0 0))'))) MULTILINESTRING((0 0, 1 0, 1 1, 0 1, 0 0)) libspatialite-4.1.1/test/sql_stmt_tests/numgeometries5.testcase0000664000175000017500000000052312163502134022037 00000000000000numgeometries - Polygon plus linestring :memory: #use in-memory database SELECT NumGeometries(GeomFromText("GeometryCollection(POLYGON((1 2, 3 4, 5 0, 1 2)), LINESTRING(1 3, 4 6))")) 1 # rows (not including the header row) 1 # columns NumGeometries(GeomFromText("GeometryCollection(POLYGON((1 2, 3 4, 5 0, 1 2)), LINESTRING(1 3, 4 6))")) 2libspatialite-4.1.1/test/sql_stmt_tests/makepoint6.testcase0000664000175000017500000000040612163502134021144 00000000000000makepoint6 :memory: #use in-memory database SELECT AsEWkt(MakePoint(-71.1043443253470, 42.3150676015829)); 1 # rows (not including the header row) 1 # columns AsEWkt(MakePoint(-71.1043443253470, 42.3150676015829)) SRID=0;POINT(-71.104344325347 42.3150676015829) libspatialite-4.1.1/test/sql_stmt_tests/forcenull10.testcase0000664000175000017500000000026212163502134021221 00000000000000ForceAsNull() - TEXT/DOUBLE :memory: #use in-memory database SELECT ForceAsNull('alpha', 1.5) 1 # rows (not including the header row) 1 # columns ForceAsNull('alpha', 1.5) alpha libspatialite-4.1.1/test/sql_stmt_tests/collect16.testcase0000664000175000017500000000046412163502133020666 00000000000000collect - PointM, PointM :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POINTM(4 5 3.2)"), GeomFromText("POINTM(1 2 4)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POINTM(4 5 3.2)"), GeomFromText("POINTM(1 2 4)"))) MULTIPOINT M(4 5 3.2, 1 2 4) libspatialite-4.1.1/test/sql_stmt_tests/geomfromkml9.testcase0000664000175000017500000000500612163502134021500 00000000000000From KML - Geometrycollection - POLYGON with interior :memory: SELECT AsText(GeomFromKML(" -122.43193945401,37.801983684521,0 -122.431564131101,37.8020327731402,0 -122.431499536494,37.801715236748,0 -122.43187136387,37.8016634915437,0 -122.43193945401,37.801983684521,0 -122.431885303019,37.8019316061803,0 -122.431762847554,37.8019476932246,0 -122.431719843168,37.8017374462006,0 -122.431841863906,37.8017213314352,0 -122.431885303019,37.8019316061803,0 -122.431714248439,37.8019544341044,0 -122.431592404659,37.8019694509363,0 -122.431548777661,37.8017591041777,0 -122.431671453253,37.8017428443014,0 -122.431714248439,37.8019544341044,0 ")) 1 # rows 1 # column AsText(GeomFromKML(" -122.43193945401,37.801983684521,0 -122.431564131101,37.8020327731402,0 -122.431499536494,37.801715236748,0 -122.43187136387,37.8016634915437,0 -122.43193945401,37.801983684521,0 -122.431885303019,37.8019316061803,0 -122.431762847554,37.8019476932246,0 -122.431719843168,37.8017374462006,0 -122.431841863906,37.8017213314352,0 -122.431885303019,37.8019316061803,0 -122.431714248439,37.8019544341044,0 -122.431592404659,37.8019694509363,0 -122.431548777661,37.8017591041777,0 -122.431671453253,37.8017428443014,0 -122.431714248439,37.8019544341044,0 ")) MULTIPOLYGON Z(((-122.431939 37.801984 0, -122.431564 37.802033 0, -122.4315 37.801715 0, -122.431871 37.801663 0, -122.431939 37.801984 0), (-122.431885 37.801932 0, -122.431763 37.801948 0, -122.43172 37.801737 0, -122.431842 37.801721 0, -122.431885 37.801932 0), (-122.431714 37.801954 0, -122.431592 37.801969 0, -122.431549 37.801759 0, -122.431671 37.801743 0, -122.431714 37.801954 0)))libspatialite-4.1.1/test/sql_stmt_tests/makepointzm-null1.testcase0000664000175000017500000000041012163502134022451 00000000000000makepointzm-null1 :memory: #use in-memory database SELECT AsText(MakePointZM("hello", 42.3150676015829, 0.0038723129645, 12.6389)); 1 # rows (not including the header row) 1 # columns AsText(MakePointZM("hello", 42.3150676015829, 0.0038723129645, 12.6389)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makecircle12.testcase0000664000175000017500000000032212163502134021326 00000000000000makecircle12 - text srid :memory: #use in-memory database SELECT ST_Length(MakeCircle(0, 0, 100, 'alpha')); 1 # rows (not including the header row) 1 # columns ST_Length(MakeCircle(0, 0, 100, 'alpha')) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makeline31.testcase0000664000175000017500000000045212163502134021021 00000000000000makeline - MULTIPOINT (XYZ valid - direct order) :memory: #use in-memory database SELECT AsText(MakeLine(GeomFromText("MULTIPOINTZ(1 2 10,3 4 11)"), 1)) 1 # rows (not including the header row) 1 # columns AsText(MakeLine(GeomFromText("MULTIPOINTZ(1 2 10,3 4 11)"), 1)) LINESTRING Z(1 2 10, 3 4 11) libspatialite-4.1.1/test/sql_stmt_tests/reflectcoords12.testcase0000664000175000017500000000074512163502134022076 00000000000000reflectcoords12 :memory: #use in-memory database SELECT AsText(ReflectCoords(GeomFromText("POLYGON((-10 -10, -20 -10, -20 -20, -20 -11, -10 -10), (-11 -11, -12 -11, -12 -12, -11 -12, -11 -11))"), 1, 1)); 1 # rows (not including the header row) 1 # columns AsText(ReflectCoords(GeomFromText("POLYGON((-10 -10, -20 -10, -20 -20, -20 -11, -10 -10), (-11 -11, -12 -11, -12 -12, -11 -12, -11 -11))"), 1, 1)) POLYGON((10 10, 20 10, 20 20, 20 11, 10 10), (11 11, 12 11, 12 12, 11 12, 11 11)) libspatialite-4.1.1/test/sql_stmt_tests/linesfromrings1.testcase0000664000175000017500000000051312163502134022210 00000000000000LinesFromRings - Simple polygon, no multi :memory: #use in-memory database SELECT AsText(LinesFromRings(GeomFromText("POLYGON((0 0, 1 1, 0 2, -1 1, 0 0))"), 0)); 1 # rows (not including the header row) 1 # columns AsText(LinesFromRings(GeomFromText("POLYGON((0 0, 1 1, 0 2, -1 1, 0 0))"), 0)) LINESTRING(0 0, 1 1, 0 2, -1 1, 0 0) libspatialite-4.1.1/test/sql_stmt_tests/fromgml11.testcase0000664000175000017500000000154312163502134020677 00000000000000FromGML - MultiLinestring v2 :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('1,2 3,4 5,6 7,810,10 11.5,11')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('1,2 3,4 5,6 7,810,10 11.5,11')):0 SRID=4326;MULTILINESTRING((1 2,3 4,5 6,7 8),(10 10,11.5 11)) libspatialite-4.1.1/test/sql_stmt_tests/m_ch.testcase0000664000175000017500000000022712163502134017776 00000000000000metres to chains :memory: #use in-memory database SELECT CvtToCh(1000); 1 # rows (not including the header row) 1 # columns CvtToCh(1000) 49.7096954:9 libspatialite-4.1.1/test/sql_stmt_tests/fromgml59.testcase0000664000175000017500000000175512163502134020720 00000000000000FromGML - Polygon LinearRing interior/exterior :memory: #use in-memory database SELECT AsText(GeomFromGml('0 05 05 50 50 01 12 12 21 21 1')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromGml('0 05 05 50 50 01 12 12 21 21 1')):0 POLYGON((0 0, 5 0, 5 5, 0 5, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)) libspatialite-4.1.1/test/sql_stmt_tests/geomfromtext35.testcase0000664000175000017500000000076212163502134021764 00000000000000geomfromtext35 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1, 2 2)), GEOMETRYCOLLECTION(POINT(3 3), LINESTRING(4 4, 5 5)))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1, 2 2)), GEOMETRYCOLLECTION(POINT(3 3), LINESTRING(4 4, 5 5)))')); GEOMETRYCOLLECTION(POINT(0 0), POINT(3 3), LINESTRING(1 1, 2 2), LINESTRING(4 4, 5 5)) libspatialite-4.1.1/test/sql_stmt_tests/buildmbr6.testcase0000664000175000017500000000030112163502133020746 00000000000000buildmbr - null args :memory: #use in-memory database SELECT BuildMbr(5, NULL, NULL, NULL, NULL) 1 # rows (not including the header row) 1 # columns BuildMbr(5, NULL, NULL, NULL, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makecircularstripe9.testcase0000664000175000017500000000033612163502134023053 00000000000000makecircularstripe9 - NULL start :memory: #use in-memory database SELECT MakeCircularStripe(0, 0, 100, 90, NULL, 60); 1 # rows (not including the header row) 1 # columns MakeCircularStripe(0, 0, 100, 90, NULL, 60) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/pointn3.testcase0000664000175000017500000000041512163502134020461 00000000000000pointN - regular LINESTRING (second point) :memory: #use in-memory database SELECT AsText(PointN(GeomFromText("LINESTRING(4 0, 4 4, 8 4)"), 2)); 1 # rows (not including the header row) 1 # columns AsText(PointN(GeomFromText("LINESTRING(4 0, 4 4, 8 4)"), 2)) POINT(4 4) libspatialite-4.1.1/test/sql_stmt_tests/pointn4.testcase0000664000175000017500000000041412163502134020461 00000000000000pointN - regular LINESTRING (third point) :memory: #use in-memory database SELECT AsText(PointN(GeomFromText("LINESTRING(4 0, 4 4, 8 4)"), 3)); 1 # rows (not including the header row) 1 # columns AsText(PointN(GeomFromText("LINESTRING(4 0, 4 4, 8 4)"), 3)) POINT(8 4) libspatialite-4.1.1/test/sql_stmt_tests/geomfromkml1.testcase0000664000175000017500000000013612163502134021467 00000000000000From KML - non text :memory: SELECT GeomFromKML(26) 1 # rows 1 # column GeomFromKML(26) (NULL)libspatialite-4.1.1/test/sql_stmt_tests/asewkb16.testcase0000664000175000017500000000100212163502133020502 00000000000000asewkb - GEOMETRYCOLLECTION, 2 points :memory: #use in-memory database SELECT Hex(AsEWKB(GeomFromText("GEOMETRYCOLLECTION(POINT(0 1), POINT(2 3))", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsEWKB(GeomFromText("GEOMETRYCOLLECTION(POINT(0 1), POINT(2 3))", 4326))) 535249443D343332363B303130373030303030303032303030303030303130313030303030303030303030303030303030303030303030303030303030303030303046303346303130313030303030303030303030303030303030303030343030303030303030303030303030383430 libspatialite-4.1.1/test/sql_stmt_tests/dissolve15.testcase0000664000175000017500000000052512163502133021066 00000000000000dissolve - LINESTRING :memory: #use in-memory database SELECT AsText(DissolveSegments(geom)),AsText(DissolvePoints(geom)) from (SELECT GeomFromText("LINESTRING(1 2, 4 1)") as geom) dummy; 1 # rows (not including the header row) 2 # columns AsText(DissolveSegments(geom)) AsText(DissolvePoints(geom)) LINESTRING(1 2, 4 1) MULTIPOINT(1 2, 4 1)libspatialite-4.1.1/test/sql_stmt_tests/togars4.testcase0000664000175000017500000000034012163502134020447 00000000000000togars - northwest :memory: #use in-memory database SELECT ToGARS(GeomFromText("Point(-179.999 89.999)", 4326)) 1 # rows (not including the header row) 1 # columns ToGARS(GeomFromText("Point(-179.999 89.999)", 4326)) 001QZ11libspatialite-4.1.1/test/sql_stmt_tests/geomtype67.testcase0000664000175000017500000000062212163502134021075 00000000000000geometrytype - MULTILINESTRINGZ - one line :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("MULTILINESTRINGZ((30 20 1, 10 40 1, 45 40 1, 30 20 1))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) MULTILINESTRING Z XYZ MULTILINESTRINGlibspatialite-4.1.1/test/sql_stmt_tests/compressgeometry58.testcase0000664000175000017500000000107412163502133022654 00000000000000CompressGeometry - GEOMETRYCOLLECTION (2 Polygons) :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTION(POLYGON((10 10, 11 10, 11 11, 10 11, 10 10)), POLYGON((15 15, 16 15, 16 16, 15 16, 15 15)))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTION(POLYGON((10 10, 11 10, 11 11, 10 11, 10 10)), POLYGON((15 15, 16 15, 16 16, 15 16, 15 15)))", 4326))) GEOMETRYCOLLECTION(POLYGON((10 10, 11 10, 11 11, 10 11, 10 10)), POLYGON((15 15, 16 15, 16 16, 15 16, 15 15))) libspatialite-4.1.1/test/sql_stmt_tests/compressgeometry68.testcase0000664000175000017500000000073112163502133022654 00000000000000CompressGeometry - GEOMETRYCOLLECTION M (1 Polygon) :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONM(POLYGONM((10 10 7, 11 10 8, 11 11 9, 10 11 8, 10 10 7)))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONM(POLYGONM((10 10 7, 11 10 8, 11 11 9, 10 11 8, 10 10 7)))", 4326))) GEOMETRYCOLLECTION M(POLYGON M((10 10 7, 11 10 8, 11 11 9, 10 11 8, 10 10 7))) libspatialite-4.1.1/test/sql_stmt_tests/buildcirclembr2.testcase0000664000175000017500000000030512163502133022130 00000000000000buildcirclembr - text args :memory: #use in-memory database SELECT BuildCircleMbr('a', 'b', 'c', 'd') 1 # rows (not including the header row) 1 # columns BuildCircleMbr('a', 'b', 'c', 'd') (NULL) libspatialite-4.1.1/test/sql_stmt_tests/gml6.testcase0000664000175000017500000000141312163502134017733 00000000000000GML MultiLinestring Z :memory: #use in-memory database SELECT AsGML(3, GeomFromText("MULTILINESTRINGZ((1 2 100, 3 4 101), (5 5 88, 6 6 99))", 4326)); 1 # rows (not including the header row) 1 # columns AsGML(3, GeomFromText("MULTILINESTRINGZ((1 2 100, 3 4 101), (5 5 88, 6 6 99))", 4326)) 1 2 100 3 4 1015 5 88 6 6 99:0 # trailing ":0" required to avoid truncation !!! libspatialite-4.1.1/test/sql_stmt_tests/ring24.testcase0000664000175000017500000000110012163502134020164 00000000000000InteriorRingN - POLGON ZM second interior :memory: #use in-memory database SELECT AsText(InteriorRingN(GeomFromText("POLYGONZM((0 0 0 1, 0 4 1 1, 4 4 2 1, 4 0 3 1, 0 0 0 1),(1 1 2 2, 1 3 2 2, 3 3 2 2, 3 1 2 2, 1 1 2 2),(2 2 1 3, 2 3 1 3, 3 3 1 3, 3 2 1 3, 2 2 1 3))"), 2)); 1 # rows (not including the header row) 1 # columns AsText(InteriorRingN(GeomFromText("POLYGONZM((0 0 0 1, 0 4 1 1, 4 4 2 1, 4 0 3 1, 0 0 0 1),(1 1 2 2, 1 3 2 2, 3 3 2 2, 3 1 2 2, 1 1 2 2),(2 2 1 3, 2 3 1 3, 3 3 1 3, 3 2 1 3, 2 2 1 3))"), 2)) LINESTRING ZM(2 2 1 3, 2 3 1 3, 3 3 1 3, 3 2 1 3, 2 2 1 3) libspatialite-4.1.1/test/sql_stmt_tests/buildcirclembr5.testcase0000664000175000017500000000034312163502133022135 00000000000000buildcirclembr - int args / no srid :memory: #use in-memory database SELECT AsText(BuildCircleMbr(5, 6, 1)) 1 # rows (not including the header row) 1 # columns AsText(BuildCircleMbr(5, 6, 1)) POLYGON((4 5, 6 5, 6 7, 4 7, 4 5)) libspatialite-4.1.1/test/sql_stmt_tests/fromWkb7.testcase0000664000175000017500000000066712163502134020576 00000000000000fromWkb - mandatory LINESTRING :memory: #use in-memory database SELECT Hex(LinestringFromWkb(AsBinary(GeomFromText("LINESTRING(1 2, 3 1)", 4326)))) 1 # rows (not including the header row) 1 # columns Hex(LinestringFromWkb(AsBinary(GeomFromText("LINESTRING(1 2, 3 1)", 4326)))) 000100000000000000000000F03F000000000000F03F000000000000084000000000000000407C0200000002000000000000000000F03F00000000000000400000000000000840000000000000F03FFE libspatialite-4.1.1/test/sql_stmt_tests/forcenull1.testcase0000664000175000017500000000024512163502134021142 00000000000000ForceAsNull() - INTEGER/DOUBLE :memory: #use in-memory database SELECT ForceAsNull(1, 1.5) 1 # rows (not including the header row) 1 # columns ForceAsNull(1, 1.5) 1 libspatialite-4.1.1/test/sql_stmt_tests/st_y5.testcase0000664000175000017500000000022112163502134020125 00000000000000ST_Y5 :memory: #use in-memory database SELECT ST_Y(zeroblob(10)); 1 # rows (not including the header row) 1 # columns ST_Y(zeroblob(10)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geomconstraints2.testcase0000664000175000017500000000041412163502134022367 00000000000000geometry constraints - 3 arg, blob :memory: #use in-memory database SELECT GeometryConstraints(GeomFromText("Point(1 2)", 4326), "POINT", 4326) 1 # rows (not including the header row) 1 # columns GeometryConstraints(GeomFromText("Point(1 2)", 4326), "POINT", 4326) 1 libspatialite-4.1.1/test/sql_stmt_tests/geomfromtext26.testcase0000664000175000017500000000041512163502134021757 00000000000000geomfromtext26 :memory: #use in-memory database SELECT AsText(GeomFromText('MULTIPOINTM((0 1 9), (2 3 9), (4 5 9))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('MULTIPOINTM((0 1 9), (2 3 9), (4 5 9))')); MULTIPOINT M(0 1 9, 2 3 9, 4 5 9) libspatialite-4.1.1/test/sql_stmt_tests/casttotext8.testcase0000664000175000017500000000027612163502133021365 00000000000000CastToText() - INTEGER, ALPHA zero_pad :memory: #use in-memory database SELECT CastToText(123, 'alpha') 1 # rows (not including the header row) 1 # columns CastToText(123, 'alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geomtype63.testcase0000664000175000017500000000061512163502134021073 00000000000000geometrytype - GEOMETRYCOLLECTION - two points :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("GEOMETRYCOLLECTION(POINT(3 2), POINT(1 4))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) GEOMETRYCOLLECTION XY GEOMETRYCOLLECTIONlibspatialite-4.1.1/test/sql_stmt_tests/ring9.testcase0000664000175000017500000000050612163502134020120 00000000000000NumInteriorRings - Toxic polygon :memory: #use in-memory database SELECT NumInteriorRings(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))")); 1 # rows (not including the header row) 1 # columns NumInteriorRings(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))")) 0 libspatialite-4.1.1/test/sql_stmt_tests/collect31.testcase0000664000175000017500000000060512163502133020660 00000000000000collect - LineStringZ, LineString :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("LINESTRINGZ(1 2 4, 3 4 2)"), GeomFromText("LINESTRING(4 5, 1 2, 4 2)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("LINESTRINGZ(1 2 4, 3 4 2)"), GeomFromText("LINESTRING(4 5, 1 2, 4 2)"))) MULTILINESTRING Z((1 2 4, 3 4 2), (4 5 0, 1 2 0, 4 2 0)) libspatialite-4.1.1/test/sql_stmt_tests/casttoxym4.testcase0000664000175000017500000000033112163502133021202 00000000000000casttoxym - POINT :memory: #use in-memory database SELECT AsText(CastToXYM(GeomFromText("POINT(4 3)"))) 1 # rows (not including the header row) 1 # columns AsText(CastToXYM(GeomFromText("POINT(4 3)"))) POINT M(4 3 0) libspatialite-4.1.1/test/sql_stmt_tests/makeellipticarc22.testcase0000664000175000017500000000037112163502134022365 00000000000000makeellipticarc22 - WGS84 sid :memory: #use in-memory database SELECT ST_Length(MakeEllipticArc(0, 0, 100, 200, 30, 60, 4326)); 1 # rows (not including the header row) 1 # columns ST_Length(MakeEllipticArc(0, 0, 100, 200, 30, 60, 4326)) 82.3891:4 libspatialite-4.1.1/test/sql_stmt_tests/fromWkb12.testcase0000664000175000017500000000030012163502134020632 00000000000000fromWkb - bad small blob, 2 arg :memory: #use in-memory database SELECT GeomFromWkb(zeroblob(2), 4326) 1 # rows (not including the header row) 1 # columns GeomFromWkb(zeroblob(2), 4326) (NULL)libspatialite-4.1.1/test/sql_stmt_tests/dissolve27.testcase0000664000175000017500000000201012163502133021060 00000000000000dissolve - Overlap points POLYGON ZM :memory: #use in-memory database SELECT AsText(DissolveSegments(geom)),AsText(DissolvePoints(geom)) from (SELECT GeomFromText("POLYGONZM((-10 0 0 0, -10 10 0 0, -10 10 10 0, 10 10 10 0, 10 10 10 10, 10 10 10 -10, 10 -10 10 -10, -10 -10 -10 -10, -10 0 0 0),(0 1 0 2, 0 2 1 3, 1 2 2 4, 1 2 3 5, 1 2 3 6, 1 2 3 6, 0 1 0 2))") as geom) dummy; 1 # rows (not including the header row) 2 # columns AsText(DissolveSegments(geom)) AsText(DissolvePoints(geom)) MULTILINESTRING ZM((-10 0 0 0, -10 10 0 0), (-10 10 0 0, -10 10 10 0), (-10 10 10 0, 10 10 10 0), (10 10 10 0, 10 10 10 10), (10 10 10 10, 10 10 10 -10), (10 10 10 -10, 10 -10 10 -10), (10 -10 10 -10, -10 -10 -10 -10), (-10 -10 -10 -10, -10 0 0 0), (0 1 0 2, 0 2 1 3), (0 2 1 3, 1 2 2 4), (1 2 2 4, 1 2 3 5), (1 2 3 5, 1 2 3 6), (1 2 3 6, 0 1 0 2)) MULTIPOINT ZM(-10 0 0 0, -10 10 0 0, -10 10 10 0, 10 10 10 0, 10 10 10 10, 10 10 10 -10, 10 -10 10 -10, -10 -10 -10 -10, -10 0 0 0, 0 1 0 2, 0 2 1 3, 1 2 2 4, 1 2 3 5, 1 2 3 6, 1 2 3 6, 0 1 0 2) libspatialite-4.1.1/test/sql_stmt_tests/setpoint14.testcase0000664000175000017500000000041412163502134021100 00000000000000ST_SetPoint() - BLOB Point :memory: #use in-memory database SELECT ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1, zeroblob(4)) 1 # rows (not including the header row) 1 # columns ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1, zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/fromgeojson19.testcase0000664000175000017500000000116112163502134021570 00000000000000FromGeoJSON - multilinestringz, SRID :memory: #use in-memory database SELECT AsEWkt(GeomFromGeoJSON('{"type":"MultiLineString","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:EPSG:3003"}},"bbox":[-3,2,4,25],"coordinates":[[[1,2,3],[4,6,32]],[[2,3,1.4],[-3,25,0.3],[1,2,4]]]}')) 1 # rows (not including the header row) 1 # columns AsEWkt(GeomFromGeoJSON('{"type":"MultiLineString","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:EPSG:3003"}},"bbox":[-3,2,4,25],"coordinates":[[[1,2,3],[4,6,32]],[[2,3,1.4],[-3,25,0.3],[1,2,4]]]}')):0 SRID=3003;MULTILINESTRING((1 2 3,4 6 32),(2 3 1.4,-3 25 0.3,1 2 4)) libspatialite-4.1.1/test/sql_stmt_tests/geomfromewkb2.testcase0000664000175000017500000000014112163502134021631 00000000000000From EWKB - non text :memory: SELECT GeomFromEwkb(26) 1 # rows 1 # column GeomFromEwkb(26) (NULL)libspatialite-4.1.1/test/sql_stmt_tests/scalecoords8.testcase0000664000175000017500000000161712163502134021465 00000000000000scale coords - POLYGONM :memory: #use in-memory database SELECT AsText(ScaleCoords(geom, 0)), AsText(ScaleCoords(geom, 0.0)), AsText(ScaleCoords(geom, 2, 3.0)), AsText(ScaleCoords(geom, 1.0, -1)), ScaleCoords(zeroblob(20), 10), ScaleCoords(geom, "hello"), ScaleCoords(geom, 1, "hello"), ScaleCoords("foo", 2) FROM (SELECT GeomFromText("POLYGONM((1 2 1, 1 3 1, 2 3 2, 2 2 2, 1 2 1))") as geom) dummy; 1 # rows (not including the header row) 8 # columns AsText(ScaleCoords(geom, 0)) AsText(ScaleCoords(geom, 0.0)) AsText(ScaleCoords(geom, 2, 3.0)) AsText(ScaleCoords(geom, 1.0, -1)) ScaleCoords(zeroblob(20), 10) ScaleCoords(geom, "hello") ScaleCoords(geom, 1, "hello") ScaleCoords("foo", 2) POLYGON M((0 0 1, 0 0 1, 0 0 2, 0 0 2, 0 0 1)) POLYGON M((0 0 1, 0 0 1, 0 0 2, 0 0 2, 0 0 1)) POLYGON M((2 6 1, 2 9 1, 4 9 2, 4 6 2, 2 6 1)) POLYGON M((1 -2 1, 1 -3 1, 2 -3 2, 2 -2 2, 1 -2 1)) (NULL) (NULL) (NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/wkb18.testcase0000664000175000017500000000117512163502134020027 00000000000000Hex Wkb: GeometryCollection XYZ (2 lines) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONZ(LINESTRINGZ(1.2 3.4 100, 5.6 7.8 101), LINESTRINGZ(5 6 110, 7 8 111))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONZ(LINESTRINGZ(1.2 3.4 100, 5.6 7.8 101), LINESTRINGZ(5 6 110, 7 8 111))", 4326))); 01EF0300000200000001EA03000002000000333333333333F33F3333333333330B40000000000000594066666666666616403333333333331F40000000000040594001EA03000002000000000000000000144000000000000018400000000000805B400000000000001C4000000000000020400000000000C05B40 libspatialite-4.1.1/test/sql_stmt_tests/fromgml28.testcase0000664000175000017500000000071312163502134020705 00000000000000FromGML - MULTIPOINT, single point :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('1,2')) 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('1,2')):0 SRID=-1;MULTIPOINT(1 2) libspatialite-4.1.1/test/sql_stmt_tests/casttopoly7.testcase0000664000175000017500000000055712163502133021365 00000000000000casttopoly - Geometry collection, polygon x 2 :memory: #use in-memory database SELECT CastToPolygon(GeomFromText("GEOMETRYCOLLECTION(POLYGON((4 3, 4 1, 0 3, 4 3)),POLYGON((0 0, 1 0, 1 1, 0 0)))")) 1 # rows (not including the header row) 1 # columns CastToPolygon(GeomFromText("GEOMETRYCOLLECTION(POLYGON((4 3, 4 1, 0 3, 4 3)),POLYGON((0 0, 1 0, 1 1, 0 0)))")) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/st_y1.testcase0000664000175000017500000000035212163502134020126 00000000000000ST_Y1 :memory: #use in-memory database SELECT ST_Y(MakePoint(-71.1043443253471, 42.3150676015829, 4326)); 1 # rows (not including the header row) 1 # columns ST_Y(MakePoint(-71.1043443253471, 42.3150676015829, 4326)) 42.3150676015829 libspatialite-4.1.1/test/sql_stmt_tests/casttogeometrycollection3.testcase0000664000175000017500000000056612163502133024305 00000000000000casttogeometrycollection - 2 linestrings :memory: #use in-memory database SELECT AsText(CastToGeometryCollection(GeomFromText("MULTILINESTRING((4 1, 3 4),(4 6, 3 1))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToGeometryCollection(GeomFromText("MULTILINESTRING((4 1, 3 4),(4 6, 3 1))"))) GEOMETRYCOLLECTION(LINESTRING(4 1, 3 4), LINESTRING(4 6, 3 1)) libspatialite-4.1.1/test/sql_stmt_tests/swapcoords2.testcase0000664000175000017500000000023112163502134021331 00000000000000swapcoords2 :memory: #use in-memory database SELECT SwapCoords("hello"); 1 # rows (not including the header row) 1 # columns SwapCoords("hello"); (NULL) libspatialite-4.1.1/test/sql_stmt_tests/collect6.testcase0000664000175000017500000000070012163502133020576 00000000000000collect - toxic blob first arg :memory: #use in-memory database SELECT AsText(Collect(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"), MakePoint(3,3))) 1 # rows (not including the header row) 1 # columns AsText(Collect(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"), MakePoint(3,3))) GEOMETRYCOLLECTION(POINT(3 3), POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))) libspatialite-4.1.1/test/sql_stmt_tests/buildmbr3.testcase0000664000175000017500000000033212163502133020747 00000000000000buildmbr - int args :memory: #use in-memory database SELECT AsText(BuildMbr(5, 6, 7, 8, 4326)) 1 # rows (not including the header row) 1 # columns AsText(BuildMbr(5, 6, 7, 8, 4326)) POLYGON((5 6, 7 6, 7 8, 5 8, 5 6)) libspatialite-4.1.1/test/sql_stmt_tests/collect37.testcase0000664000175000017500000000071312163502133020666 00000000000000collect - LineStringZM, LineStringZM :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("LINESTRINGZM(1 2 4 1, 3 4 2 2)"), GeomFromText("LINESTRINGZM(4 5 3.2 1, 1 2 4.6 2, 4 2 3.1 4)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("LINESTRINGZM(1 2 4 1, 3 4 2 2)"), GeomFromText("LINESTRINGZM(4 5 3.2 1, 1 2 4.6 2, 4 2 3.1 4)"))) MULTILINESTRING ZM((1 2 4 1, 3 4 2 2), (4 5 3.2 1, 1 2 4.6 2, 4 2 3.1 4)) libspatialite-4.1.1/test/sql_stmt_tests/ndims1.testcase0000664000175000017500000000036312163502134020264 00000000000000Coord Dimensions - bad blob :memory: #use in-memory database SELECT CoordDimension(geom), ST_NDims(geom) FROM (SELECT zeroblob(99) AS geom); 1 # rows (not including the header row) 2 # columns CoordDimension(geom) ST_NDims(geom) (NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/mbr27.testcase0000664000175000017500000000044512163502134020023 00000000000000MbrDisjoint - Line + Point up :memory: #use in-memory database SELECT MbrDisjoint(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(0.5 6)")); 1 # rows (not including the header row) 1 # columns MbrDisjoint(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(0.5 6)")) # header 1libspatialite-4.1.1/test/sql_stmt_tests/st_x7.testcase0000664000175000017500000000041712163502134020135 00000000000000ST_X7 :memory: #use in-memory database SELECT ST_X(MakePointZ(-71.1043443253471, 42.3150676015829, 0.0038723129645, 4326)); 1 # rows (not including the header row) 1 # columns ST_X(MakePointZ(-71.1043443253471, 42.3150676015829, 0.0038723129645, 4326)) -71.1043443253471 libspatialite-4.1.1/test/sql_stmt_tests/maxm1.testcase0000664000175000017500000000021212163502134020105 00000000000000MaxM - non-blob :memory: #use in-memory database SELECT ST_MaxM(3) 1 # rows (not including the header row) 1 # columns ST_MaxM(3) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geomfromkml23.testcase0000664000175000017500000000221112163502134021547 00000000000000From KML - MultiGeometry [Point, Line, Polygon] - 3D :memory: SELECT AsText(GeomFromKML("1,1,1002,2,100 3,3,1014,4,101 10,4,102 10,10,103 4,10,104 4,4,1015,5,100 6,5,101 6,6,102 5,6,103 5,5,100")) 1 # rows 1 # column AsText(GeomFromKML("1,1,1002,2,100 3,3,1014,4,101 10,4,102 10,10,103 4,10,104 4,4,1015,5,100 6,5,101 6,6,102 5,6,103 5,5,100")) GEOMETRYCOLLECTION Z(POINT Z(1 1 100), LINESTRING Z(2 2 100, 3 3 101), POLYGON Z((4 4 101, 10 4 102, 10 10 103, 4 10 104, 4 4 101), (5 5 100, 6 5 101, 6 6 102, 5 6 103, 5 5 100))) libspatialite-4.1.1/test/sql_stmt_tests/casttomultipolygon1.testcase0000664000175000017500000000030312163502133023123 00000000000000casttomultipolygon - bad blob :memory: #use in-memory database SELECT CastToMultiPolygon(zeroblob(99)) 1 # rows (not including the header row) 1 # columns CastToMultiPolygon(zeroblob(99)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/dissolve14.testcase0000664000175000017500000000056212163502133021066 00000000000000dissolve - LINESTRING M :memory: #use in-memory database SELECT AsText(DissolveSegments(geom)),AsText(DissolvePoints(geom)) from (SELECT GeomFromText("LINESTRING M(1 2 4.3, 4 1 49)") as geom) dummy; 1 # rows (not including the header row) 2 # columns AsText(DissolveSegments(geom)) AsText(DissolvePoints(geom)) LINESTRING M(1 2 4.3, 4 1 49) MULTIPOINT M(1 2 4.3, 4 1 49)libspatialite-4.1.1/test/sql_stmt_tests/translate18.testcase0000664000175000017500000000036012163502134021234 00000000000000translate :memory: #use in-memory database SELECT AsText(ST_Translate(GeomFromText("POINTM(1 2 3)"), 1, 3, 4)); 1 # rows (not including the header row) 1 # columns AsText(ST_Translate(GeomFromText("POINTM(1 2 3)"), 1, 3, 4)) POINT M(2 5 3) libspatialite-4.1.1/test/sql_stmt_tests/compressgeometry41.testcase0000664000175000017500000000101712163502133022641 00000000000000CompressGeometry - MULTILINESTRING ZM :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("MULTILINESTRINGZM((10 10 100 1, 11 11 101 2, 12 12 102 3), (15 15 101 1, 16 16 102 2, 17 17 103 3))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("MULTILINESTRINGZM((10 10 100 1, 11 11 101 2, 12 12 102 3), (15 15 101 1, 16 16 102 2, 17 17 103 3))", 4326))) MULTILINESTRING ZM((10 10 100 1, 11 11 101 2, 12 12 102 3), (15 15 101 1, 16 16 102 2, 17 17 103 3)) libspatialite-4.1.1/test/sql_stmt_tests/collect57.testcase0000664000175000017500000000032412163502133020666 00000000000000collect - step point :memory: #use in-memory database SELECT AsText(Collect(geom)) FROM (SELECT MakePoint(1,2) as geom) dummy; 1 # rows (not including the header row) 1 # columns AsText(Collect(geom)) POINT(1 2) libspatialite-4.1.1/test/sql_stmt_tests/envintersects5.testcase0000664000175000017500000000034312163502134022050 00000000000000ST_EnvIntersects - bad arg #5 :memory: #use in-memory database SELECT ST_EnvIntersects(zeroblob(50), 2, 2, 3, "alpha") 1 # rows (not including the header row) 1 # columns ST_EnvIntersects(zeroblob(50), 2, 2, 3, "alpha") (NULL) libspatialite-4.1.1/test/sql_stmt_tests/asbinary3.testcase0000664000175000017500000000022712163502133020762 00000000000000asbinary - text :memory: #use in-memory database SELECT AsBinary("hello") 1 # rows (not including the header row) 1 # columns AsBinary("hello") (NULL) libspatialite-4.1.1/test/sql_stmt_tests/wkb26.testcase0000664000175000017500000000206012163502134020020 00000000000000Hex Wkb: GeometryCollection XYZ (2 polygons) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONZ(POLYGONZ((10 10 100, 11 10 101, 11 11 102, 10 11 103, 10 10 100)), POLYGONZ((15 15 100, 16 15 101, 16 16 102, 15 16 103, 15 15 100)))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONZ(POLYGONZ((10 10 100, 11 10 101, 11 11 102, 10 11 103, 10 10 100)), POLYGONZ((15 15 100, 16 15 101, 16 16 102, 15 16 103, 15 15 100)))", 4326))); 01EF0300000200000001EB0300000100000005000000000000000000244000000000000024400000000000005940000000000000264000000000000024400000000000405940000000000000264000000000000026400000000000805940000000000000244000000000000026400000000000C0594000000000000024400000000000002440000000000000594001EB03000001000000050000000000000000002E400000000000002E40000000000000594000000000000030400000000000002E4000000000004059400000000000003040000000000000304000000000008059400000000000002E4000000000000030400000000000C059400000000000002E400000000000002E400000000000005940 libspatialite-4.1.1/test/sql_stmt_tests/makearc2.testcase0000664000175000017500000000027212163502134020555 00000000000000makearc1 - text cx :memory: #use in-memory database SELECT MakeArc('alpha', 0, 100, 30, 60); 1 # rows (not including the header row) 1 # columns MakeArc('alpha', 0, 100, 30, 60) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makeline22.testcase0000664000175000017500000000035712163502134021025 00000000000000makeline - MULTIPOINT - invalid :memory: #use in-memory database SELECT AsText(MakeLine(GeomFromText("MULTIPOINT(1 2,3 4)"))) 1 # rows (not including the header row) 1 # columns AsText(MakeLine(GeomFromText("MULTIPOINT(1 2,3 4)"))) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/asgeojson5.testcase0000664000175000017500000000037212163502133021145 00000000000000asgeojson - bad args (3 arg, bad option type) :memory: #use in-memory database SELECT asgeojson(GeomFromText("Point(1 2)", 4326), 4, 2.2); 1 # rows (not including the header row) 1 # columns asgeojson(GeomFromText("Point(1 2)", 4326), 4, 2.2) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/ring4.testcase0000664000175000017500000000061712163502134020116 00000000000000ExteriorRing - Simple Polygon M :memory: #use in-memory database SELECT AsText(ExteriorRing(GeomFromText("POLYGONM((136 -35 4, 135.2 -34.5 6.5, 136 -35.2 9.4, 136 -35 4))"))); 1 # rows (not including the header row) 1 # columns AsText(ExteriorRing(GeomFromText("POLYGONM((136 -35 4, 135.2 -34.5 6.5, 136 -35.2 9.4, 136 -35 4))"))); LINESTRING M(136 -35 4, 135.2 -34.5 6.5, 136 -35.2 9.4, 136 -35 4) libspatialite-4.1.1/test/sql_stmt_tests/makecircle8.testcase0000664000175000017500000000026312163502134021257 00000000000000makecircle8 - text radius :memory: #use in-memory database SELECT MakeCircle(0, 0, 'alpha'); 1 # rows (not including the header row) 1 # columns MakeCircle(0, 0, 'alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_tests/fromWkb6.testcase0000664000175000017500000000041512163502134020564 00000000000000fromWkb - mandatory LINESTRING, but POINT type :memory: #use in-memory database SELECT LinestringFromWkb(AsBinary(GeomFromText("Point(1 2)", 4326))) 1 # rows (not including the header row) 1 # columns LinestringFromWkb(AsBinary(GeomFromText("Point(1 2)", 4326))) (NULL)libspatialite-4.1.1/test/sql_stmt_tests/makepointz-null7.testcase0000664000175000017500000000041712163502134022311 00000000000000makepointz-null7 :memory: #use in-memory database SELECT AsWkt(MakePointZ(-71.1043443253471, 42.3150676015829, 0.0038723129645), 4.1); 1 # rows (not including the header row) 1 # columns AsWkt(MakePointZ(-71.1043443253471, 42.3150676015829, 0.0038723129645), 4.1) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/mpolygonfromtext2.testcase0000664000175000017500000000063012163502134022605 00000000000000multipolygonfromtext2 :memory: #use in-memory database SELECT AsWkt(MPolyFromText("MULTIPOLYGON (((30 20, 10 40, 45 40, 30 20)),((15 5, 40 10, 10 20, 5 10, 15 5)))", 4326)) 1 # rows (not including the header row) 1 # columns AsWkt(MPolyFromText("MULTIPOLYGON (((30 20, 10 40, 45 40, 30 20)),((15 5, 40 10, 10 20, 5 10, 15 5)))", 4326)) MULTIPOLYGON(((30 20,10 40,45 40,30 20)),((15 5,40 10,10 20,5 10,15 5)))libspatialite-4.1.1/test/sql_stmt_tests/Makefile.am0000664000175000017500000012630312163502133017372 00000000000000 EXTRA_DIST = addpoint10.testcase \ addpoint11.testcase \ addpoint12.testcase \ addpoint13.testcase \ addpoint14.testcase \ addpoint15.testcase \ addpoint16.testcase \ addpoint17.testcase \ addpoint18.testcase \ addpoint19.testcase \ addpoint1.testcase \ addpoint20.testcase \ addpoint21.testcase \ addpoint22.testcase \ addpoint23.testcase \ addpoint24.testcase \ addpoint25.testcase \ addpoint26.testcase \ addpoint27.testcase \ addpoint28.testcase \ addpoint2.testcase \ addpoint3.testcase \ addpoint4.testcase \ addpoint5.testcase \ addpoint6.testcase \ addpoint7.testcase \ addpoint8.testcase \ addpoint9.testcase \ asbinary10.testcase \ asbinary11.testcase \ asbinary12.testcase \ asbinary13.testcase \ asbinary14.testcase \ asbinary15.testcase \ asbinary16.testcase \ asbinary17.testcase \ asbinary1.testcase \ asbinary2.testcase \ asbinary3.testcase \ asbinary4.testcase \ asbinary5.testcase \ asbinary6.testcase \ asbinary7.testcase \ asbinary8.testcase \ asbinary9.testcase \ asewkb10.testcase \ asewkb11.testcase \ asewkb12.testcase \ asewkb13.testcase \ asewkb14.testcase \ asewkb15.testcase \ asewkb16.testcase \ asewkb17.testcase \ asewkb1.testcase \ asewkb2.testcase \ asewkb3.testcase \ asewkb4.testcase \ asewkb5.testcase \ asewkb6.testcase \ asewkb7.testcase \ asewkb8.testcase \ asewkb9.testcase \ asfgf1.testcase \ asfgf2.testcase \ asfgf3.testcase \ asfgf4.testcase \ asfgf5.testcase \ asfgf6.testcase \ asfgf7.testcase \ asfgf8.testcase \ asfgf9.testcase \ asgeojson1.testcase \ asgeojson2.testcase \ asgeojson3.testcase \ asgeojson4.testcase \ asgeojson5.testcase \ asgeojson6.testcase \ asgeojson7.testcase \ asgeojson8.testcase \ asgml10.testcase \ asgml11.testcase \ asgml1.testcase \ asgml2.testcase \ asgml3.testcase \ asgml4.testcase \ asgml5.testcase \ asgml6.testcase \ asgml7.testcase \ asgml8.testcase \ asgml9.testcase \ assvg17.testcase \ assvg18.testcase \ assvg19.testcase \ assvg1.testcase \ assvg20.testcase \ assvg21.testcase \ assvg22.testcase \ assvg23.testcase \ assvg24.testcase \ assvg25.testcase \ assvg26.testcase \ assvg2.testcase \ assvg3.testcase \ assvg4.testcase \ assvg5.testcase \ assvg6.testcase \ assvg7.testcase \ assvg8.testcase \ assvg9.testcase \ aswkt-text.testcase \ badEWKT1.testcase \ badEWKT2.testcase \ badEWKT3.testcase \ badEWKT4.testcase \ badEWKT5.testcase \ badEWKT6.testcase \ badEWKT7.testcase \ badEWKT8.testcase \ badGeoJSON1.testcase \ badGeoJSON2.testcase \ badGeoJSON3.testcase \ badGeoJSON4.testcase \ badGeoJSON5.testcase \ badGeoJSON6.testcase \ badGeoJSON7.testcase \ badGML1.testcase \ badGML2.testcase \ badGML3.testcase \ badGML4.testcase \ badGML5.testcase \ badGML6.testcase \ badGML7.testcase \ badKML1.testcase \ badKML2.testcase \ badKML3.testcase \ badKML4.testcase \ badKML5.testcase \ badKML6.testcase \ badKML7.testcase \ badwkt1.testcase \ badwkt2.testcase \ badwkt3.testcase \ badwkt4.testcase \ badwkt5.testcase \ badwkt6.testcase \ badwkt7.testcase \ badwkt8.testcase \ badwkt9.testcase \ buildcirclembr10.testcase \ buildcirclembr11.testcase \ buildcirclembr12.testcase \ buildcirclembr1.testcase \ buildcirclembr2.testcase \ buildcirclembr3.testcase \ buildcirclembr4.testcase \ buildcirclembr5.testcase \ buildcirclembr6.testcase \ buildcirclembr7.testcase \ buildcirclembr8.testcase \ buildcirclembr9.testcase \ buildmbr10.testcase \ buildmbr11.testcase \ buildmbr12.testcase \ buildmbr13.testcase \ buildmbr14.testcase \ buildmbr1.testcase \ buildmbr2.testcase \ buildmbr3.testcase \ buildmbr4.testcase \ buildmbr5.testcase \ buildmbr6.testcase \ buildmbr7.testcase \ buildmbr8.testcase \ buildmbr9.testcase \ casttoblob10.testcase \ casttoblob12.testcase \ casttoblob13.testcase \ casttoblob14.testcase \ casttoblob1.testcase \ casttoblob2.testcase \ casttoblob3.testcase \ casttoblob4.testcase \ casttoblob5.testcase \ casttoblob6.testcase \ casttoblob7.testcase \ casttoblob8.testcase \ casttoblob9.testcase \ casttodouble1.testcase \ casttodouble2.testcase \ casttodouble3.testcase \ casttodouble4.testcase \ casttodouble5.testcase \ casttodouble6.testcase \ casttodouble7.testcase \ casttogeometrycollection2.testcase \ casttogeometrycollection3.testcase \ casttogeometrycollection4.testcase \ casttogeometrycollection5.testcase \ casttogeometrycollection6.testcase \ casttogeometrycollection.testcase \ casttoint1.testcase \ casttoint2.testcase \ casttoint3.testcase \ casttoint4.testcase \ casttoint5.testcase \ casttoint6.testcase \ casttoint7.testcase \ casttolinestring1.testcase \ casttolinestring2.testcase \ casttolinestring3.testcase \ casttolinestring4.testcase \ casttolinestring5.testcase \ casttolinestring6.testcase \ casttolinestring7.testcase \ casttolinestring8.testcase \ casttomulti11.testcase \ casttomulti1.testcase \ casttomulti2.testcase \ casttomulti3.testcase \ casttomulti4.testcase \ casttomulti5.testcase \ casttomulti6.testcase \ casttomulti7.testcase \ casttomulti8.testcase \ casttomultilinestring1.testcase \ casttomultilinestring2.testcase \ casttomultilinestring3.testcase \ casttomultilinestring4.testcase \ casttomultilinestring5.testcase \ casttomultilinestring6.testcase \ casttomultilinestring7.testcase \ casttomultipoint1.testcase \ casttomultipoint2.testcase \ casttomultipoint3.testcase \ casttomultipoint4.testcase \ casttomultipoint5.testcase \ casttomultipoint6.testcase \ casttomultipoint7.testcase \ casttomultipoint8.testcase \ casttomultipoint9.testcase \ casttomultipolygon1.testcase \ casttomultipolygon2.testcase \ casttomultipolygon3.testcase \ casttomultipolygon4.testcase \ casttomultipolygon5.testcase \ casttopoint1.testcase \ casttopoint2.testcase \ casttopoint3.testcase \ casttopoint4.testcase \ casttopoint5.testcase \ casttopoint6.testcase \ casttopoint7.testcase \ casttopoint8.testcase \ casttopoly1.testcase \ casttopoly2.testcase \ casttopoly3.testcase \ casttopoly4.testcase \ casttopoly5.testcase \ casttopoly6.testcase \ casttopoly7.testcase \ casttopoly8.testcase \ casttosingle10.testcase \ casttosingle12.testcase \ casttosingle1.testcase \ casttosingle2.testcase \ casttosingle3.testcase \ casttosingle4.testcase \ casttosingle5.testcase \ casttosingle6.testcase \ casttosingle7.testcase \ casttosingle8.testcase \ casttosingle9.testcase \ casttotext10.testcase \ casttotext11.testcase \ casttotext12.testcase \ casttotext13.testcase \ casttotext14.testcase \ casttotext15.testcase \ casttotext1.testcase \ casttotext2.testcase \ casttotext3.testcase \ casttotext4.testcase \ casttotext5.testcase \ casttotext6.testcase \ casttotext7.testcase \ casttotext8.testcase \ casttotext9.testcase \ casttoxy1.testcase \ casttoxy2.testcase \ casttoxy3.testcase \ casttoxym1.testcase \ casttoxym2.testcase \ casttoxym3.testcase \ casttoxym4.testcase \ casttoxym5.testcase \ casttoxym6.testcase \ casttoxyz1.testcase \ casttoxyz2.testcase \ casttoxyz3.testcase \ casttoxyz4.testcase \ casttoxyz5.testcase \ casttoxyz6.testcase \ casttoxyzm1.testcase \ casttoxyzm2.testcase \ casttoxyzm3.testcase \ casttoxyzm4.testcase \ casttoxyzm5.testcase \ casttoxyzm6.testcase \ checkspatialmetadata1.testcase \ checkspatialmetadata2.testcase \ checkspatialmetadata3.testcase \ checkspatialmetadata4.testcase \ checkspatialmetadata5.testcase \ ch_m.testcase \ cm_m.testcase \ collect10.testcase \ collect11.testcase \ collect12.testcase \ collect13.testcase \ collect14.testcase \ collect15.testcase \ collect16.testcase \ collect17.testcase \ collect18.testcase \ collect19.testcase \ collect1.testcase \ collect20.testcase \ collect21.testcase \ collect23.testcase \ collect24.testcase \ collect25.testcase \ collect26.testcase \ collect27.testcase \ collect28.testcase \ collect29.testcase \ collect2.testcase \ collect30.testcase \ collect31.testcase \ collect32.testcase \ collect33.testcase \ collect34.testcase \ collect35.testcase \ collect36.testcase \ collect37.testcase \ collect38.testcase \ collect39.testcase \ collect3.testcase \ collect40.testcase \ collect41.testcase \ collect42.testcase \ collect43.testcase \ collect44.testcase \ collect45.testcase \ collect46.testcase \ collect47.testcase \ collect48.testcase \ collect49.testcase \ collect4.testcase \ collect50.testcase \ collect51.testcase \ collect52.testcase \ collect53.testcase \ collect54.testcase \ collect55.testcase \ collect56.testcase \ collect57.testcase \ collect58.testcase \ collect59.testcase \ collect5.testcase \ collect6.testcase \ collect7.testcase \ collect8.testcase \ collect9.testcase \ collectextract10.testcase \ collectextract11.testcase \ collectextract12.testcase \ collectextract13.testcase \ collectextract14.testcase \ collectextract15.testcase \ collectextract16.testcase \ collectextract17.testcase \ collectextract18.testcase \ collectextract19.testcase \ collectextract1.testcase \ collectextract20.testcase \ collectextract21.testcase \ collectextract22.testcase \ collectextract2.testcase \ collectextract3.testcase \ collectextract4.testcase \ collectextract5.testcase \ collectextract6.testcase \ collectextract7.testcase \ collectextract8.testcase \ collectextract9.testcase \ compressgeometry10.testcase \ compressgeometry11.testcase \ compressgeometry12.testcase \ compressgeometry13.testcase \ compressgeometry14.testcase \ compressgeometry15.testcase \ compressgeometry17.testcase \ compressgeometry18.testcase \ compressgeometry19.testcase \ compressgeometry1.testcase \ compressgeometry20.testcase \ compressgeometry21.testcase \ compressgeometry22.testcase \ compressgeometry23.testcase \ compressgeometry24.testcase \ compressgeometry25.testcase \ compressgeometry26.testcase \ compressgeometry27.testcase \ compressgeometry28.testcase \ compressgeometry29.testcase \ compressgeometry2.testcase \ compressgeometry30.testcase \ compressgeometry31.testcase \ compressgeometry32.testcase \ compressgeometry33.testcase \ compressgeometry34.testcase \ compressgeometry35.testcase \ compressgeometry36.testcase \ compressgeometry37.testcase \ compressgeometry38.testcase \ compressgeometry39.testcase \ compressgeometry3.testcase \ compressgeometry40.testcase \ compressgeometry41.testcase \ compressgeometry42.testcase \ compressgeometry43.testcase \ compressgeometry44.testcase \ compressgeometry45.testcase \ compressgeometry46.testcase \ compressgeometry47.testcase \ compressgeometry48.testcase \ compressgeometry49.testcase \ compressgeometry4.testcase \ compressgeometry50.testcase \ compressgeometry51.testcase \ compressgeometry52.testcase \ compressgeometry53.testcase \ compressgeometry54.testcase \ compressgeometry55.testcase \ compressgeometry56.testcase \ compressgeometry57.testcase \ compressgeometry58.testcase \ compressgeometry59.testcase \ compressgeometry5.testcase \ compressgeometry60.testcase \ compressgeometry61.testcase \ compressgeometry62.testcase \ compressgeometry63.testcase \ compressgeometry64.testcase \ compressgeometry65.testcase \ compressgeometry66.testcase \ compressgeometry67.testcase \ compressgeometry68.testcase \ compressgeometry69.testcase \ compressgeometry6.testcase \ compressgeometry7.testcase \ compressgeometry8.testcase \ compressgeometry9.testcase \ createrastercoverages.testcase \ createuuid1.testcase \ dimension1.testcase \ dimension2.testcase \ dimension3.testcase \ dimension4.testcase \ dimension5.testcase \ dimension6.testcase \ dimension7.testcase \ dimension8.testcase \ dissolve10.testcase \ dissolve11.testcase \ dissolve12.testcase \ dissolve13.testcase \ dissolve14.testcase \ dissolve15.testcase \ dissolve16.testcase \ dissolve17.testcase \ dissolve18.testcase \ dissolve19.testcase \ dissolve1.testcase \ dissolve20.testcase \ dissolve21.testcase \ dissolve22.testcase \ dissolve23.testcase \ dissolve24.testcase \ dissolve25.testcase \ dissolve26.testcase \ dissolve27.testcase \ dissolve28.testcase \ dissolve29.testcase \ dissolve2.testcase \ dissolve30.testcase \ dissolve3.testcase \ dissolve4.testcase \ dissolve5.testcase \ dissolve6.testcase \ dissolve7.testcase \ dissolve8.testcase \ dissolve9.testcase \ dm_m.testcase \ DSC_1467.JPG \ DSCN0042.JPG \ emptyfile.txt \ endpoint1.testcase \ envelope1.testcase \ envelope2.testcase \ envelope3.testcase \ envelope4.testcase \ envelope5.testcase \ envelope6.testcase \ envelope7.testcase \ envintersects10.testcase \ envintersects1.testcase \ envintersects2.testcase \ envintersects3.testcase \ envintersects4.testcase \ envintersects5.testcase \ envintersects6.testcase \ envintersects7.testcase \ envintersects8.testcase \ envintersects9.testcase \ ewkb10.testcase \ ewkb11.testcase \ ewkb12.testcase \ ewkb1.testcase \ ewkb2.testcase \ ewkb3.testcase \ ewkb4.testcase \ ewkb5.testcase \ ewkb6.testcase \ ewkb7.testcase \ ewkb8.testcase \ ewkb9.testcase \ expand1.testcase \ expand2.testcase \ expand3.testcase \ expand4.testcase \ expand5.testcase \ expand6.testcase \ expand7.testcase \ extent1.testcase \ extractmultilinestring1.testcase \ extractmultilinestring2.testcase \ extractmultilinestring3.testcase \ extractmultipoint1.testcase \ extractmultipoint2.testcase \ extractmultipoint3.testcase \ extractmultipolygon1.testcase \ extractmultipolygon2.testcase \ extractmultipolygon3.testcase \ fath_m.testcase \ fdo_ogr1.testcase \ fdo_ogr2.testcase \ fdo-wkb.sqlite_RO \ forcenull10.testcase \ forcenull11.testcase \ forcenull12.testcase \ forcenull13.testcase \ forcenull14.testcase \ forcenull15.testcase \ forcenull16.testcase \ forcenull17.testcase \ forcenull18.testcase \ forcenull19.testcase \ forcenull1.testcase \ forcenull20.testcase \ forcenull21.testcase \ forcenull22.testcase \ forcenull23.testcase \ forcenull24.testcase \ forcenull25.testcase \ forcenull26.testcase \ forcenull27.testcase \ forcenull28.testcase \ forcenull2.testcase \ forcenull3.testcase \ forcenull4.testcase \ forcenull5.testcase \ forcenull6.testcase \ forcenull7.testcase \ forcenull8.testcase \ forcenull9.testcase \ fromewkt10.testcase \ fromewkt11.testcase \ fromewkt12.testcase \ fromewkt13.testcase \ fromewkt14.testcase \ fromewkt15.testcase \ fromewkt16.testcase \ fromewkt17.testcase \ fromewkt18.testcase \ fromewkt19.testcase \ fromewkt1.testcase \ fromewkt20.testcase \ fromewkt22.testcase \ fromewkt23.testcase \ fromewkt24.testcase \ fromewkt25.testcase \ fromewkt26.testcase \ fromewkt27.testcase \ fromewkt28.testcase \ fromewkt29.testcase \ fromewkt2.testcase \ fromewkt30.testcase \ fromewkt31.testcase \ fromewkt32.testcase \ fromewkt33.testcase \ fromewkt34.testcase \ fromewkt35.testcase \ fromewkt36.testcase \ fromewkt37.testcase \ fromewkt38.testcase \ fromewkt39.testcase \ fromewkt3.testcase \ fromewkt4.testcase \ fromewkt5.testcase \ fromewkt6.testcase \ fromewkt7.testcase \ fromewkt8.testcase \ fromewkt9.testcase \ fromgeojson10.testcase \ fromgeojson11.testcase \ fromgeojson12.testcase \ fromgeojson13.testcase \ fromgeojson14.testcase \ fromgeojson15.testcase \ fromgeojson16.testcase \ fromgeojson17.testcase \ fromgeojson18.testcase \ fromgeojson19.testcase \ fromgeojson1.testcase \ fromgeojson20.testcase \ fromgeojson21.testcase \ fromgeojson22.testcase \ fromgeojson23.testcase \ fromgeojson24.testcase \ fromgeojson25.testcase \ fromgeojson26.testcase \ fromgeojson27.testcase \ fromgeojson28.testcase \ fromgeojson29.testcase \ fromgeojson2.testcase \ fromgeojson30.testcase \ fromgeojson31.testcase \ fromgeojson32.testcase \ fromgeojson3.testcase \ fromgeojson4.testcase \ fromgeojson5.testcase \ fromgeojson6.testcase \ fromgeojson7.testcase \ fromgeojson8.testcase \ fromgeojson9.testcase \ fromgml10.testcase \ fromgml11.testcase \ fromgml12.testcase \ fromgml13.testcase \ fromgml14.testcase \ fromgml15.testcase \ fromgml16.testcase \ fromgml17.testcase \ fromgml18.testcase \ fromgml19.testcase \ fromgml1.testcase \ fromgml20.testcase \ fromgml21.testcase \ fromgml22.testcase \ fromgml23.testcase \ fromgml24.testcase \ fromgml25.testcase \ fromgml26.testcase \ fromgml27.testcase \ fromgml28.testcase \ fromgml29.testcase \ fromgml2.testcase \ fromgml30.testcase \ fromgml31.testcase \ fromgml32.testcase \ fromgml33.testcase \ fromgml34.testcase \ fromgml35.testcase \ fromgml36.testcase \ fromgml37.testcase \ fromgml38.testcase \ fromgml39.testcase \ fromgml3.testcase \ fromgml40.testcase \ fromgml41.testcase \ fromgml43.testcase \ fromgml44.testcase \ fromgml45.testcase \ fromgml46.testcase \ fromgml47.testcase \ fromgml48.testcase \ fromgml49.testcase \ fromgml4.testcase \ fromgml50.testcase \ fromgml51.testcase \ fromgml52.testcase \ fromgml53.testcase \ fromgml54.testcase \ fromgml55.testcase \ fromgml56.testcase \ fromgml57.testcase \ fromgml58.testcase \ fromgml59.testcase \ fromgml5.testcase \ fromgml6.testcase \ fromgml7.testcase \ fromgml8.testcase \ fromgml9.testcase \ fromWkb10.testcase \ fromWkb11.testcase \ fromWkb12.testcase \ fromWkb13.testcase \ fromWkb14.testcase \ fromWkb15.testcase \ fromWkb16.testcase \ fromWkb17.testcase \ fromWkb18.testcase \ fromWkb19.testcase \ fromWkb1.testcase \ fromWkb20.testcase \ fromWkb21.testcase \ fromWkb22.testcase \ fromWkb23.testcase \ fromWkb24.testcase \ fromWkb25.testcase \ fromWkb26.testcase \ fromWkb2.testcase \ fromWkb3.testcase \ fromWkb4.testcase \ fromWkb5.testcase \ fromWkb6.testcase \ fromWkb7.testcase \ fromWkb8.testcase \ fromWkb9.testcase \ ft_m.testcase \ garsmbr10.testcase \ garsmbr11.testcase \ garsmbr12.testcase \ garsmbr13.testcase \ garsmbr14.testcase \ garsmbr15.testcase \ garsmbr16.testcase \ garsmbr17.testcase \ garsmbr18.testcase \ garsmbr1.testcase \ garsmbr20.testcase \ garsmbr21.testcase \ garsmbr22.testcase \ garsmbr23.testcase \ garsmbr24.testcase \ garsmbr25.testcase \ garsmbr26.testcase \ garsmbr27.testcase \ garsmbr28.testcase \ garsmbr29.testcase \ garsmbr2.testcase \ garsmbr30.testcase \ garsmbr31.testcase \ garsmbr32.testcase \ garsmbr33.testcase \ garsmbr34.testcase \ garsmbr35.testcase \ garsmbr36.testcase \ garsmbr3.testcase \ garsmbr4.testcase \ garsmbr5.testcase \ garsmbr6.testcase \ garsmbr7.testcase \ garsmbr8.testcase \ garsmbr9.testcase \ geodesic-len1.testcase \ geodesic-len2.testcase \ geodesic-len3.testcase \ geodesic-len4.testcase \ geodesic-len5.testcase \ geodesic-len6.testcase \ geodesic-len7.testcase \ geodesic-len8.testcase \ geojson1.testcase \ geojson2.testcase \ geojson3.testcase \ geojson4.testcase \ geojson5.testcase \ geojson6.testcase \ geomcollfromtext1.testcase \ geomcollfromtext2.testcase \ geomconstraints10.testcase \ geomconstraints11.testcase \ geomconstraints12.testcase \ geomconstraints13.testcase \ geomconstraints14.testcase \ geomconstraints15.testcase \ geomconstraints16.testcase \ geomconstraints17.testcase \ geomconstraints18.testcase \ geomconstraints19.testcase \ geomconstraints1.testcase \ geomconstraints20.testcase \ geomconstraints21.testcase \ geomconstraints22.testcase \ geomconstraints23.testcase \ geomconstraints24.testcase \ geomconstraints25.testcase \ geomconstraints26.testcase \ geomconstraints27.testcase \ geomconstraints28.testcase \ geomconstraints2.testcase \ geomconstraints3.testcase \ geomconstraints4.testcase \ geomconstraints5.testcase \ geomconstraints6.testcase \ geomconstraints7.testcase \ geomconstraints8.testcase \ geomconstraints9.testcase \ geometryn10.testcase \ geometryn11.testcase \ geometryn12.testcase \ geometryn13.testcase \ geometryn14.testcase \ geometryn15.testcase \ geometryn16.testcase \ geometryn17.testcase \ geometryn18.testcase \ geometryn19.testcase \ geometryn1.testcase \ geometryn20.testcase \ geometryn2.testcase \ geometryn3.testcase \ geometryn4.testcase \ geometryn5.testcase \ geometryn6.testcase \ geometryn7.testcase \ geometryn8.testcase \ geometryn9.testcase \ geometryn.testcase \ geomfromewkb1.testcase \ geomfromewkb2.testcase \ geomfromkml10.testcase \ geomfromkml11.testcase \ geomfromkml12.testcase \ geomfromkml13.testcase \ geomfromkml14.testcase \ geomfromkml15.testcase \ geomfromkml16.testcase \ geomfromkml17.testcase \ geomfromkml18.testcase \ geomfromkml19.testcase \ geomfromkml1.testcase \ geomfromkml20.testcase \ geomfromkml21.testcase \ geomfromkml22.testcase \ geomfromkml23.testcase \ geomfromkml2.testcase \ geomfromkml3.testcase \ geomfromkml4.testcase \ geomfromkml5.testcase \ geomfromkml6.testcase \ geomfromkml7.testcase \ geomfromkml8.testcase \ geomfromkml9.testcase \ geomfromtext10.testcase \ geomfromtext11.testcase \ geomfromtext12.testcase \ geomfromtext13.testcase \ geomfromtext14.testcase \ geomfromtext15.testcase \ geomfromtext16.testcase \ geomfromtext17.testcase \ geomfromtext18.testcase \ geomfromtext19.testcase \ geomfromtext1.testcase \ geomfromtext20.testcase \ geomfromtext21.testcase \ geomfromtext22.testcase \ geomfromtext23.testcase \ geomfromtext24.testcase \ geomfromtext25.testcase \ geomfromtext26.testcase \ geomfromtext27.testcase \ geomfromtext28.testcase \ geomfromtext29.testcase \ geomfromtext2.testcase \ geomfromtext30.testcase \ geomfromtext31.testcase \ geomfromtext32.testcase \ geomfromtext33.testcase \ geomfromtext34.testcase \ geomfromtext35.testcase \ geomfromtext36.testcase \ geomfromtext37.testcase \ geomfromtext38.testcase \ geomfromtext39.testcase \ geomfromtext3.testcase \ geomfromtext40.testcase \ geomfromtext41.testcase \ geomfromtext42.testcase \ geomfromtext43.testcase \ geomfromtext44.testcase \ geomfromtext45.testcase \ geomfromtext4.testcase \ geomfromtext5.testcase \ geomfromtext6.testcase \ geomfromtext7.testcase \ geomfromtext8.testcase \ geomfromtext9.testcase \ geomtype10.testcase \ geomtype11.testcase \ geomtype12.testcase \ geomtype13.testcase \ geomtype14.testcase \ geomtype15.testcase \ geomtype16.testcase \ geomtype17.testcase \ geomtype18.testcase \ geomtype19.testcase \ geomtype1.testcase \ geomtype20.testcase \ geomtype21.testcase \ geomtype22.testcase \ geomtype23.testcase \ geomtype24.testcase \ geomtype25.testcase \ geomtype26.testcase \ geomtype27.testcase \ geomtype28.testcase \ geomtype29.testcase \ geomtype2.testcase \ geomtype30.testcase \ geomtype31.testcase \ geomtype32.testcase \ geomtype33.testcase \ geomtype34.testcase \ geomtype35.testcase \ geomtype36.testcase \ geomtype37.testcase \ geomtype38.testcase \ geomtype39.testcase \ geomtype3.testcase \ geomtype40.testcase \ geomtype41.testcase \ geomtype42.testcase \ geomtype43.testcase \ geomtype44.testcase \ geomtype45.testcase \ geomtype46.testcase \ geomtype47.testcase \ geomtype48.testcase \ geomtype49.testcase \ geomtype4.testcase \ geomtype50.testcase \ geomtype51.testcase \ geomtype52.testcase \ geomtype53.testcase \ geomtype54.testcase \ geomtype55.testcase \ geomtype56.testcase \ geomtype57.testcase \ geomtype58.testcase \ geomtype59.testcase \ geomtype5.testcase \ geomtype60.testcase \ geomtype61.testcase \ geomtype62.testcase \ geomtype63.testcase \ geomtype64.testcase \ geomtype65.testcase \ geomtype66.testcase \ geomtype67.testcase \ geomtype68.testcase \ geomtype69.testcase \ geomtype6.testcase \ geomtype7.testcase \ geomtype8.testcase \ geomtype9.testcase \ getmimetype1.testcase \ getmimetype2.testcase \ getmimetype3.testcase \ getmimetype4.testcase \ getmimetype5.testcase \ gml10.testcase \ gml11.testcase \ gml12.testcase \ gml13.testcase \ gml14.testcase \ gml15.testcase \ gml16.testcase \ gml1.testcase \ gml2.testcase \ gml3.testcase \ gml4.testcase \ gml5.testcase \ gml6.testcase \ gml7.testcase \ gml8.testcase \ gml9.testcase \ greatcircle-badblob.testcase \ greatcircle-poly2.testcase \ greatcircle-poly3.testcase \ greatcircle-poly4.testcase \ greatcircle-poly5.testcase \ greatcircle-poly6.testcase \ greatcircle-poly7.testcase \ greatcircle-poly.testcase \ greatcircle.testcase \ greatcircle-text.testcase \ ind_ch_m.testcase \ ind_ft_m.testcase \ ind_yd_m.testcase \ in_m.testcase \ is3d1.testcase \ is3d2.testcase \ is3d3.testcase \ is3d4.testcase \ is3d5.testcase \ is3d6.testcase \ isempty2.testcase \ isempty3.testcase \ isempty4.testcase \ isempty.testcase \ ismeasured1.testcase \ ismeasured2.testcase \ ismeasured3.testcase \ ismeasured4.testcase \ ismeasured5.testcase \ ismeasured6.testcase \ isXblob5.testcase \ isXblob6.testcase \ isXblob7.testcase \ k3b-icon.png \ km_m.testcase \ ktorrent_grad1.jpg \ ktorrent_sidebar.gif \ La_folla_durante_il_Palio.jpg \ lhr1.testcase \ lhr2.testcase \ lhr3.testcase \ lhr4.testcase \ lhr5.testcase \ lhr6.testcase \ linefromtext1.testcase \ linefromtext2.testcase \ linesfromrings1.testcase \ linesfromrings2.testcase \ linesfromrings3.testcase \ linesfromrings4.testcase \ linesfromrings5.testcase \ linesfromrings6.testcase \ linesfromrings7.testcase \ link_m.testcase \ locatemeasure10.testcase \ locatemeasure11.testcase \ locatemeasure12.testcase \ locatemeasure13.testcase \ locatemeasure14.testcase \ locatemeasure15.testcase \ locatemeasure16.testcase \ locatemeasure17.testcase \ locatemeasure18.testcase \ locatemeasure19.testcase \ locatemeasure1.testcase \ locatemeasure2.testcase \ locatemeasure3.testcase \ locatemeasure4.testcase \ locatemeasure5.testcase \ locatemeasure6.testcase \ locatemeasure7.testcase \ locatemeasure8.testcase \ locatemeasure9.testcase \ makeline10.testcase \ makeline11.testcase \ makeline12.testcase \ makeline13.testcase \ makeline14.testcase \ makeline15.testcase \ makeline16.testcase \ makeline17.testcase \ makeline18.testcase \ makeline19.testcase \ makeline20.testcase \ makeline21.testcase \ makeline22.testcase \ makeline23.testcase \ makeline24.testcase \ makeline25.testcase \ makeline26.testcase \ makeline27.testcase \ makeline28.testcase \ makeline29.testcase \ makeline2.testcase \ makeline3.testcase \ makeline30.testcase \ makeline31.testcase \ makeline32.testcase \ makeline4.testcase \ makeline5.testcase \ makeline6.testcase \ makeline7.testcase \ makeline8.testcase \ makeline9.testcase \ makeline.testcase \ makepoint10.testcase \ makepoint11.testcase \ makepoint12.testcase \ makepoint13.testcase \ makepoint14.testcase \ makepoint15.testcase \ makepoint1.testcase \ makepoint2.testcase \ makepoint3.testcase \ makepoint4.testcase \ makepoint5.testcase \ makepoint6.testcase \ makepoint7.testcase \ makepoint8.testcase \ makepoint9.testcase \ makepointm-null1.testcase \ makepointm-null2.testcase \ makepointm-null3.testcase \ makepointm-null4.testcase \ makepointm-null5.testcase \ makepointm-null6.testcase \ makepointm-null7.testcase \ makepointm-null8.testcase \ makepoint-null1.testcase \ makepoint-null2.testcase \ makepoint-null3.testcase \ makepoint-null4.testcase \ makepoint-null5.testcase \ makepoint-null6.testcase \ makepoint-null7.testcase \ makepointzm-null10.testcase \ makepointzm-null1.testcase \ makepointzm-null2.testcase \ makepointzm-null3.testcase \ makepointzm-null4.testcase \ makepointzm-null5.testcase \ makepointzm-null6.testcase \ makepointzm-null7.testcase \ makepointzm-null8.testcase \ makepointzm-null9.testcase \ makepointz-null1.testcase \ makepointz-null2.testcase \ makepointz-null3.testcase \ makepointz-null4.testcase \ makepointz-null5.testcase \ makepointz-null6.testcase \ makepointz-null7.testcase \ makepointz-null8.testcase \ makepointz-null9.testcase \ makecircle1.testcase \ makecircle2.testcase \ makecircle3.testcase \ makecircle4.testcase \ makecircle5.testcase \ makecircle6.testcase \ makecircle7.testcase \ makecircle8.testcase \ makecircle9.testcase \ makecircle10.testcase \ makecircle11.testcase \ makecircle12.testcase \ makecircle13.testcase \ makecircle14.testcase \ makecircle15.testcase \ makecircle16.testcase \ makecircle17.testcase \ makecircle18.testcase \ makeellipse1.testcase \ makeellipse2.testcase \ makeellipse3.testcase \ makeellipse4.testcase \ makeellipse5.testcase \ makeellipse6.testcase \ makeellipse7.testcase \ makeellipse8.testcase \ makeellipse9.testcase \ makeellipse10.testcase \ makeellipse11.testcase \ makeellipse12.testcase \ makeellipse13.testcase \ makeellipse14.testcase \ makeellipse15.testcase \ makeellipse16.testcase \ makeellipse17.testcase \ makeellipse18.testcase \ makeellipse19.testcase \ makeellipse20.testcase \ makeellipse21.testcase \ makearc1.testcase \ makearc2.testcase \ makearc3.testcase \ makearc4.testcase \ makearc5.testcase \ makearc6.testcase \ makearc7.testcase \ makearc8.testcase \ makearc9.testcase \ makearc10.testcase \ makearc11.testcase \ makearc12.testcase \ makearc13.testcase \ makearc14.testcase \ makearc15.testcase \ makearc16.testcase \ makearc17.testcase \ makearc18.testcase \ makearc19.testcase \ makearc20.testcase \ makearc21.testcase \ makearc22.testcase \ makearc23.testcase \ makeellipticarc1.testcase \ makeellipticarc2.testcase \ makeellipticarc3.testcase \ makeellipticarc4.testcase \ makeellipticarc5.testcase \ makeellipticarc6.testcase \ makeellipticarc7.testcase \ makeellipticarc8.testcase \ makeellipticarc9.testcase \ makeellipticarc10.testcase \ makeellipticarc11.testcase \ makeellipticarc12.testcase \ makeellipticarc13.testcase \ makeellipticarc14.testcase \ makeellipticarc15.testcase \ makeellipticarc16.testcase \ makeellipticarc17.testcase \ makeellipticarc18.testcase \ makeellipticarc19.testcase \ makeellipticarc20.testcase \ makeellipticarc21.testcase \ makeellipticarc22.testcase \ makeellipticarc23.testcase \ makeellipticarc24.testcase \ makeellipticarc25.testcase \ makeellipticarc26.testcase \ makecircularsector1.testcase \ makecircularsector2.testcase \ makecircularsector3.testcase \ makecircularsector4.testcase \ makecircularsector5.testcase \ makecircularsector6.testcase \ makecircularsector7.testcase \ makecircularsector8.testcase \ makecircularsector9.testcase \ makecircularsector10.testcase \ makecircularsector11.testcase \ makecircularsector12.testcase \ makecircularsector13.testcase \ makecircularsector14.testcase \ makecircularsector15.testcase \ makecircularsector16.testcase \ makecircularsector17.testcase \ makecircularsector18.testcase \ makecircularsector19.testcase \ makecircularsector20.testcase \ makecircularsector21.testcase \ makecircularsector22.testcase \ makecircularsector23.testcase \ makecircularstripe1.testcase \ makecircularstripe2.testcase \ makecircularstripe3.testcase \ makecircularstripe4.testcase \ makecircularstripe5.testcase \ makecircularstripe6.testcase \ makecircularstripe7.testcase \ makecircularstripe8.testcase \ makecircularstripe9.testcase \ makecircularstripe10.testcase \ makecircularstripe11.testcase \ makecircularstripe12.testcase \ makecircularstripe13.testcase \ makecircularstripe14.testcase \ makecircularstripe15.testcase \ makecircularstripe16.testcase \ makecircularstripe17.testcase \ makecircularstripe18.testcase \ makecircularstripe19.testcase \ makecircularstripe20.testcase \ makecircularstripe21.testcase \ makecircularstripe22.testcase \ makecircularstripe23.testcase \ makecircularstripe24.testcase \ makecircularstripe25.testcase \ makecircularstripe26.testcase \ makeellipticsector1.testcase \ makeellipticsector2.testcase \ makeellipticsector3.testcase \ makeellipticsector4.testcase \ makeellipticsector5.testcase \ makeellipticsector6.testcase \ makeellipticsector7.testcase \ makeellipticsector8.testcase \ makeellipticsector9.testcase \ makeellipticsector10.testcase \ makeellipticsector11.testcase \ makeellipticsector12.testcase \ makeellipticsector13.testcase \ makeellipticsector14.testcase \ makeellipticsector15.testcase \ makeellipticsector16.testcase \ makeellipticsector17.testcase \ makeellipticsector18.testcase \ makeellipticsector19.testcase \ makeellipticsector20.testcase \ makeellipticsector21.testcase \ makeellipticsector22.testcase \ makeellipticsector23.testcase \ makeellipticsector24.testcase \ makeellipticsector25.testcase \ makeellipticsector26.testcase \ maxm1.testcase \ maxm2.testcase \ maxm3.testcase \ maxm4.testcase \ maxm5.testcase \ maxm6.testcase \ maxm7.testcase \ maxz1.testcase \ maxz2.testcase \ maxz3.testcase \ maxz4.testcase \ maxz5.testcase \ maxz6.testcase \ maxz7.testcase \ mbr10.testcase \ mbr11.testcase \ mbr12.testcase \ mbr13.testcase \ mbr14.testcase \ mbr15.testcase \ mbr16.testcase \ mbr17.testcase \ mbr18.testcase \ mbr19.testcase \ mbr1.testcase \ mbr20.testcase \ mbr21.testcase \ mbr22.testcase \ mbr23.testcase \ mbr24.testcase \ mbr25.testcase \ mbr26.testcase \ mbr27.testcase \ mbr28.testcase \ mbr29.testcase \ mbr2.testcase \ mbr30.testcase \ mbr31.testcase \ mbr32.testcase \ mbr3.testcase \ mbr4.testcase \ mbr5.testcase \ mbr6.testcase \ mbr7.testcase \ mbr8.testcase \ mbr9.testcase \ mbrminmax1.testcase \ mbrminmax2.testcase \ mbrminmax3.testcase \ mbrminmax4.testcase \ mbrminmax5.testcase \ mbrminmax6.testcase \ mbrminmax7.testcase \ mbrminmax8.testcase \ m_ch.testcase \ m_cm.testcase \ m_dm.testcase \ m_fath.testcase \ m_ft.testcase \ m_ft-text.testcase \ mi_m.testcase \ m_ind_ch.testcase \ m_ind_ft.testcase \ m_ind_yd.testcase \ minm1.testcase \ minm2.testcase \ minm3.testcase \ minm4.testcase \ minm5.testcase \ minm6.testcase \ m_in.testcase \ m_in_us.testcase \ minz1.testcase \ minz2.testcase \ minz3.testcase \ minz4.testcase \ minz5.testcase \ minz6.testcase \ m_km.testcase \ mlinefromtext1.testcase \ mlinefromtext2.testcase \ m_ln.testcase \ m_mi.testcase \ m_mm.testcase \ mm_m.testcase \ m_nm.testcase \ mpointfromtext1.testcase \ mpointfromtext2.testcase \ mpolygonfromtext1.testcase \ mpolygonfromtext2.testcase \ m_us_ch.testcase \ m_us_ft.testcase \ m_usmi.testcase \ m_yd.testcase \ m_yd_us.testcase \ ndims1.testcase \ ndims2.testcase \ ndims3.testcase \ ndims4.testcase \ ndims5.testcase \ ndims6.testcase \ nm_m.testcase \ normalizelonlat10.testcase \ normalizelonlat11.testcase \ normalizelonlat12.testcase \ normalizelonlat13.testcase \ normalizelonlat14.testcase \ normalizelonlat15.testcase \ normalizelonlat16.testcase \ normalizelonlat17.testcase \ normalizelonlat18.testcase \ normalizelonlat19.testcase \ normalizelonlat1.testcase \ normalizelonlat20.testcase \ normalizelonlat21.testcase \ normalizelonlat22.testcase \ normalizelonlat23.testcase \ normalizelonlat24.testcase \ normalizelonlat25.testcase \ normalizelonlat26.testcase \ normalizelonlat27.testcase \ normalizelonlat2.testcase \ normalizelonlat3.testcase \ normalizelonlat4.testcase \ normalizelonlat5.testcase \ normalizelonlat6.testcase \ normalizelonlat7.testcase \ normalizelonlat8.testcase \ normalizelonlat9.testcase \ npoints1.testcase \ npoints2.testcase \ npoints3.testcase \ npoints4.testcase \ npoints5.testcase \ npoints6.testcase \ nrings1.testcase \ nrings2.testcase \ nrings3.testcase \ nrings4.testcase \ nrings5.testcase \ nrings6.testcase \ numgeometries1.testcase \ numgeometries2.testcase \ numgeometries3.testcase \ numgeometries4.testcase \ numgeometries5.testcase \ numgeometries6.testcase \ NumPoints2.testcase \ NumPoints3.testcase \ NumPoints4.testcase \ NumPoints5.testcase \ NumPoints6.testcase \ NumPoints7.testcase \ NumPoints.testcase \ pointfromtext1.testcase \ pointfromtext2.testcase \ pointn10.testcase \ pointn11.testcase \ pointn12.testcase \ pointn13.testcase \ pointn14.testcase \ pointn15.testcase \ pointn1.testcase \ pointn2.testcase \ pointn3.testcase \ pointn4.testcase \ pointn5.testcase \ pointn6.testcase \ pointn7.testcase \ pointn8.testcase \ pointn9.testcase \ polygonfromtext1.testcase \ polygonfromtext2.testcase \ reflectcoords10.testcase \ reflectcoords11.testcase \ reflectcoords12.testcase \ reflectcoords13.testcase \ reflectcoords14.testcase \ reflectcoords15.testcase \ reflectcoords16.testcase \ reflectcoords17.testcase \ reflectcoords1.testcase \ reflectcoords2.testcase \ reflectcoords3.testcase \ reflectcoords4.testcase \ reflectcoords5.testcase \ reflectcoords6.testcase \ reflectcoords7.testcase \ reflectcoords8.testcase \ reflectcoords9.testcase \ removepoint10.testcase \ removepoint11.testcase \ removepoint12.testcase \ removepoint13.testcase \ removepoint14.testcase \ removepoint15.testcase \ removepoint16.testcase \ removepoint1.testcase \ removepoint2.testcase \ removepoint3.testcase \ removepoint4.testcase \ removepoint5.testcase \ removepoint6.testcase \ removepoint7.testcase \ removepoint8.testcase \ removepoint9.testcase \ reverse1.testcase \ reverse2.testcase \ reverse3.testcase \ reverse4.testcase \ reverse5.testcase \ reverse6.testcase \ ring10.testcase \ ring11.testcase \ ring12.testcase \ ring13.testcase \ ring14.testcase \ ring15.testcase \ ring16.testcase \ ring17.testcase \ ring18.testcase \ ring19.testcase \ ring1.testcase \ ring20.testcase \ ring21.testcase \ ring22.testcase \ ring23.testcase \ ring24.testcase \ ring25.testcase \ ring26.testcase \ ring27.testcase \ ring28.testcase \ ring2.testcase \ ring3.testcase \ ring4.testcase \ ring5.testcase \ ring6.testcase \ ring7.testcase \ ring8.testcase \ ring9.testcase \ rotatecoords10.testcase \ rotatecoords11.testcase \ rotatecoords12.testcase \ rotatecoords13.testcase \ rotatecoords14.testcase \ rotatecoords1.testcase \ rotatecoords2.testcase \ rotatecoords3.testcase \ rotatecoords4.testcase \ rotatecoords5.testcase \ rotatecoords6.testcase \ rotatecoords7.testcase \ rotatecoords8.testcase \ rotatecoords9.testcase \ routing1.testcase \ routing2.testcase \ routing3.testcase \ routing4.testcase \ routing5.testcase \ rtreealign1.testcase \ rtreealign2.testcase \ rtreealign3.testcase \ rtreealign4.testcase \ sandro.jpg \ sanitizeGeometry10.testcase \ sanitizeGeometry11.testcase \ sanitizeGeometry12.testcase \ sanitizeGeometry13.testcase \ sanitizeGeometry14.testcase \ sanitizeGeometry15.testcase \ sanitizeGeometry16.testcase \ sanitizeGeometry1.testcase \ sanitizeGeometry2.testcase \ sanitizeGeometry3.testcase \ sanitizeGeometry4.testcase \ sanitizeGeometry5.testcase \ sanitizeGeometry6.testcase \ sanitizeGeometry7.testcase \ sanitizeGeometry8.testcase \ sanitizeGeometry9.testcase \ scalecoords10.testcase \ scalecoords11.testcase \ scalecoords12.testcase \ scalecoords13.testcase \ scalecoords1.testcase \ scalecoords2.testcase \ scalecoords3.testcase \ scalecoords4.testcase \ scalecoords5.testcase \ scalecoords6.testcase \ scalecoords7.testcase \ scalecoords8.testcase \ scalecoords9.testcase \ seconds.wav \ setpoint10.testcase \ setpoint11.testcase \ setpoint12.testcase \ setpoint13.testcase \ setpoint14.testcase \ setpoint15.testcase \ setpoint16.testcase \ setpoint17.testcase \ setpoint18.testcase \ setpoint19.testcase \ setpoint1.testcase \ setpoint20.testcase \ setpoint21.testcase \ setpoint22.testcase \ setpoint23.testcase \ setpoint2.testcase \ setpoint3.testcase \ setpoint4.testcase \ setpoint5.testcase \ setpoint6.testcase \ setpoint7.testcase \ setpoint8.testcase \ setpoint9.testcase \ shiftcoords10.testcase \ shiftcoords11.testcase \ shiftcoords12.testcase \ shiftcoords13.testcase \ shiftcoords14.testcase \ shiftcoords15.testcase \ shiftcoords1.testcase \ shiftcoords2.testcase \ shiftcoords3.testcase \ shiftcoords4.testcase \ shiftcoords5.testcase \ shiftcoords6.testcase \ shiftcoords7.testcase \ shiftcoords8.testcase \ shiftcoords9.testcase \ shiftlongitude10.testcase \ shiftlongitude11.testcase \ shiftlongitude12.testcase \ shiftlongitude13.testcase \ shiftlongitude14.testcase \ shiftlongitude15.testcase \ shiftlongitude16.testcase \ shiftlongitude17.testcase \ shiftlongitude18.testcase \ shiftlongitude19.testcase \ shiftlongitude1.testcase \ shiftlongitude20.testcase \ shiftlongitude21.testcase \ shiftlongitude22.testcase \ shiftlongitude23.testcase \ shiftlongitude24.testcase \ shiftlongitude25.testcase \ shiftlongitude26.testcase \ shiftlongitude2.testcase \ shiftlongitude3.testcase \ shiftlongitude4.testcase \ shiftlongitude5.testcase \ shiftlongitude6.testcase \ shiftlongitude7.testcase \ shiftlongitude8.testcase \ shiftlongitude9.testcase \ spatialindex.testcase \ srid10.testcase \ srid11.testcase \ srid1.testcase \ srid2.testcase \ srid3.testcase \ srid4.testcase \ srid5.testcase \ srid6.testcase \ srid7.testcase \ srid8.testcase \ srid9.testcase \ SridFromAuthCRS2.testcase \ SridFromAuthCRS3.testcase \ SridFromAuthCRS4.testcase \ SridFromAuthCRS5.testcase \ SridFromAuthCRS6.testcase \ SridFromAuthCRS.testcase \ startpoint1.testcase \ startpoint2.testcase \ startpoint3.testcase \ st_m1.testcase \ st_m2.testcase \ st_m3.testcase \ st_m4.testcase \ st_m5.testcase \ st_m6.testcase \ st_m8.testcase \ st_x1.testcase \ st_x2.testcase \ st_x3.testcase \ st_x4.testcase \ st_x5.testcase \ st_x6.testcase \ st_x7.testcase \ st_x8.testcase \ st_x9.testcase \ st_y1.testcase \ st_y2.testcase \ st_y3.testcase \ st_y4.testcase \ st_y5.testcase \ st_y7.testcase \ st_y8.testcase \ st_y9.testcase \ st_z1.testcase \ st_z2.testcase \ st_z3.testcase \ st_z4.testcase \ st_z5.testcase \ st_z6.testcase \ st_z7.testcase \ st_z8.testcase \ st_z9.testcase \ swapcoords10.testcase \ swapcoords11.testcase \ swapcoords1.testcase \ swapcoords2.testcase \ swapcoords3.testcase \ swapcoords4.testcase \ swapcoords5.testcase \ swapcoords6.testcase \ swapcoords7.testcase \ swapcoords8.testcase \ swapcoords9.testcase \ testdb1.sqlite \ testFDO.sqlite \ testFGF.sqlite \ test.webp \ togars10.testcase \ togars11.testcase \ togars12.testcase \ togars13.testcase \ togars1.testcase \ togars2.testcase \ togars3.testcase \ togars4.testcase \ togars5.testcase \ togars6.testcase \ togars7.testcase \ togars8.testcase \ togars9.testcase \ translate10.testcase \ translate11.testcase \ translate12.testcase \ translate13.testcase \ translate14.testcase \ translate15.testcase \ translate16.testcase \ translate17.testcase \ translate18.testcase \ translate19.testcase \ translate1.testcase \ translate2.testcase \ translate3.testcase \ translate4.testcase \ translate5.testcase \ translate6.testcase \ translate7.testcase \ translate8.testcase \ translate9.testcase \ trivial.sqlite_RO \ uncompressgeom1.testcase \ uncompressgeom2.testcase \ uncompressgeom3.testcase \ unsafeTriggers1.testcase \ us_ch_m.testcase \ us_ft_m.testcase \ us_in_m.testcase \ us_mi_m.testcase \ us_yd_m.testcase \ wkb10.testcase \ wkb11.testcase \ wkb12.testcase \ wkb13.testcase \ wkb14.testcase \ wkb15.testcase \ wkb16.testcase \ wkb17.testcase \ wkb18.testcase \ wkb19.testcase \ wkb1.testcase \ wkb20.testcase \ wkb21.testcase \ wkb22.testcase \ wkb23.testcase \ wkb24.testcase \ wkb25.testcase \ wkb26.testcase \ wkb27.testcase \ wkb28.testcase \ wkb29.testcase \ wkb2.testcase \ wkb30.testcase \ wkb31.testcase \ wkb32.testcase \ wkb33.testcase \ wkb34.testcase \ wkb35.testcase \ wkb36.testcase \ wkb3.testcase \ wkb4.testcase \ wkb5.testcase \ wkb6.testcase \ wkb7.testcase \ wkb8.testcase \ wkb9.testcase \ wkbtosql1.testcase \ wkbtosql2.testcase \ wkbtosql3.testcase \ wkttosql1.testcase \ wkttosql2.testcase \ wkttosql3.testcase \ yd_m.testcase libspatialite-4.1.1/test/sql_stmt_tests/minm3.testcase0000664000175000017500000000034012163502134020107 00000000000000MinM - Linestring XY :memory: #use in-memory database SELECT ST_MinM(GeomFromText('LINESTRING(1 2, 3 4, 5 6)')); 1 # rows (not including the header row) 1 # columns ST_MinM(GeomFromText('LINESTRING(1 2, 3 4, 5 6)')) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/dimension8.testcase0000664000175000017500000000033012163502133021137 00000000000000dimension5 - GeometryCollection :memory: #use in-memory database SELECT Dimension(GeometryFromText("POINT EMPTY")) 1 # rows (not including the header row) 1 # columns Dimension(GeometryFromText("POINT EMPTY")) (NULL)libspatialite-4.1.1/test/sql_stmt_tests/envintersects7.testcase0000664000175000017500000000037312163502134022055 00000000000000ST_EnvIntersects - no [int coords] :memory: #use in-memory database SELECT ST_EnvIntersects(GeomFromText('POINT(3.5 3.8)'), 2, 2, 3, 3) 1 # rows (not including the header row) 1 # columns ST_EnvIntersects(GeomFromText('POINT(3.5 3.8)'), 2, 2, 3, 3) 0 libspatialite-4.1.1/test/sql_stmt_tests/pointn1.testcase0000664000175000017500000000026212163502134020457 00000000000000pointn - text input (error) :memory: #use in-memory database SELECT PointN("hello world", 0); 1 # rows (not including the header row) 1 # columns PointN("hello world", 0) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/badKML2.testcase0000664000175000017500000000043612163502133020245 00000000000000bad KML: Linestring :memory: #use in-memory database SELECT GeomFromKML('1.1,2.2 3.3,4.41.1,2.2 3.3,4.41,2 3,4')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('1,2 3,4')):0 SRID=4326;LINESTRING(1 2,3 4) libspatialite-4.1.1/test/sql_stmt_tests/togars2.testcase0000664000175000017500000000033612163502134020452 00000000000000togars - northeast :memory: #use in-memory database SELECT ToGARS(GeomFromText("Point(179.999 89.999)", 4326)) 1 # rows (not including the header row) 1 # columns ToGARS(GeomFromText("Point(179.999 89.999)", 4326)) 720QZ23libspatialite-4.1.1/test/sql_stmt_tests/buildmbr2.testcase0000664000175000017500000000027512163502133020754 00000000000000buildmbr - text args :memory: #use in-memory database SELECT BuildMbr('a', 'b', 'c', 'd', 'e') 1 # rows (not including the header row) 1 # columns BuildMbr('a', 'b', 'c', 'd', 'e') (NULL) libspatialite-4.1.1/test/sql_stmt_tests/buildcirclembr6.testcase0000664000175000017500000000030712163502133022136 00000000000000buildcirclembr - null args :memory: #use in-memory database SELECT BuildCircleMbr(5, NULL, NULL, NULL) 1 # rows (not including the header row) 1 # columns BuildCircleMbr(5, NULL, NULL, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/NumPoints4.testcase0000664000175000017500000000034212163502133021105 00000000000000NumPoints - Simple line M :memory: #use in-memory database SELECT NumPoints(GeomFromText("LINESTRINGM(0 0 0, 1 2 1)")); 1 # rows (not including the header row) 1 # column NumPoints(GeomFromText("LINESTRINGM(0 0 0, 1 2 1)")) 2 libspatialite-4.1.1/test/sql_stmt_tests/extractmultilinestring3.testcase0000664000175000017500000000070212163502134023775 00000000000000extractmultilinestring - LINESTRING :memory: #use in-memory database SELECT AsText(ExtractMultiLinestring(GeomFromText("GEOMETRYCOLLECTION(POINT(4 3), LINESTRING(5 6, 6 7), POLYGON((10 10, 11 10, 11 11, 10 11, 10 10)))"))) 1 # rows (not including the header row) 1 # columns AsText(ExtractMultiLinestring(GeomFromText("GEOMETRYCOLLECTION(POINT(4 3), LINESTRING(5 6, 6 7), POLYGON((10 10, 11 10, 11 11, 10 11, 10 10)))"))) MULTILINESTRING((5 6, 6 7)) libspatialite-4.1.1/test/sql_stmt_tests/extractmultipolygon2.testcase0000664000175000017500000000026012163502134023304 00000000000000extractmultipolygon - non-blob :memory: #use in-memory database SELECT ExtractMultiPolygon(4) 1 # rows (not including the header row) 1 # columns ExtractMultiPolygon(4) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geomconstraints22.testcase0000664000175000017500000000066412163502134022460 00000000000000geometry constraints - MULTIPOLYGONZ :memory: #use in-memory database SELECT GeometryConstraints(GeomFromText("MULTIPOLYGONZ(((0 0 0, 1 0 0, 1 1 0, 0 0 0)),((0 0 0, -1 0 0, -1 -1 0, 0 0 0)))", 4326), "MULTIPOLYGON", 4326, "XYZ") 1 # rows (not including the header row) 1 # columns GeometryConstraints(GeomFromText("MULTIPOLYGONZ(((0 0 0, 1 0 0, 1 1 0, 0 0 0)),((0 0 0, -1 0 0, -1 -1 0, 0 0 0)))", 4326), "MULTIPOLYGON", 4326, "XYZ") 1 libspatialite-4.1.1/test/sql_stmt_tests/wkb32.testcase0000664000175000017500000000160112163502134020015 00000000000000Hex Wkb: GeometryCollection XYZM (point, polygon) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONZM(POINTZM(1 2 100 11), POLYGONZM((10 10 100 1, 11 10 101 2, 11 11 102 3, 10 11 103 3, 10 10 100 1)))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONZM(POINTZM(1 2 100 11), POLYGONZM((10 10 100 1, 11 10 101 2, 11 11 102 3, 10 11 103 3, 10 10 100 1)))", 4326))); 01BF0B00000200000001B90B0000000000000000F03F00000000000000400000000000005940000000000000264001BB0B00000100000005000000000000000000244000000000000024400000000000005940000000000000F03F00000000000026400000000000002440000000000040594000000000000000400000000000002640000000000000264000000000008059400000000000000840000000000000244000000000000026400000000000C059400000000000000840000000000000244000000000000024400000000000005940000000000000F03F libspatialite-4.1.1/test/sql_stmt_tests/dissolve25.testcase0000664000175000017500000000101012163502133021055 00000000000000dissolve - Overlap points ZM :memory: #use in-memory database SELECT AsText(DissolveSegments(geom)),AsText(DissolvePoints(geom)) from (SELECT GeomFromText("LINESTRINGZM(0 1 0 2, 0 2 1 3, 1 2 2 4, 1 2 3 5, 1 2 3 6, 1 2 3 6)") as geom) dummy; 1 # rows (not including the header row) 2 # columns AsText(DissolveSegments(geom)) AsText(DissolvePoints(geom)) MULTILINESTRING ZM((0 1 0 2, 0 2 1 3), (0 2 1 3, 1 2 2 4), (1 2 2 4, 1 2 3 5), (1 2 3 5, 1 2 3 6)) MULTIPOINT ZM(0 1 0 2, 0 2 1 3, 1 2 2 4, 1 2 3 5, 1 2 3 6, 1 2 3 6) libspatialite-4.1.1/test/sql_stmt_tests/badGeoJSON1.testcase0000664000175000017500000000035712163502133021027 00000000000000bad GeoJSON: Point :memory: #use in-memory database SELECT GeomFromGeoJSON('{"type":"Point","coordinates":[1.1,2.2]'); 1 # rows (not including the header row) 1 # columns GeomFromGeoJSON('{"type":"Point","coordinates":[1.1,2.2]'):0 (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makearc10.testcase0000664000175000017500000000027212163502134020634 00000000000000makearc10 - text start :memory: #use in-memory database SELECT MakeArc(0, 0, 100, 'text', 60); 1 # rows (not including the header row) 1 # columns MakeArc(0, 0, 100, 'text', 60) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/rtreealign4.testcase0000664000175000017500000000031012163502134021301 00000000000000rtreealign - null geometry :memory: #use in-memory database SELECT RTreeAlign("notreal", 2, zeroblob(100)) 1 # rows (not including the header row) 1 # columns RTreeAlign("notreal", 2, zeroblob(100)) 1libspatialite-4.1.1/test/sql_stmt_tests/pointn10.testcase0000664000175000017500000000044012163502134020535 00000000000000pointN - regular LINESTRINGM (last point) :memory: #use in-memory database SELECT AsText(PointN(GeomFromText("LINESTRINGM(4 0 9, 4 4 8, 8 4 7)"), -1)); 1 # rows (not including the header row) 1 # columns AsText(PointN(GeomFromText("LINESTRINGM(4 0 9, 4 4 8, 8 4 7)"), -1)) POINT M(8 4 7) libspatialite-4.1.1/test/sql_stmt_tests/makecircularstripe24.testcase0000664000175000017500000000034312163502134023126 00000000000000makecircularstripe24 - NULL radius #2 :memory: #use in-memory database SELECT MakeCircularStripe(0, 0, 100, NULL, 30, 60); 1 # rows (not including the header row) 1 # columns MakeCircularStripe(0, 0, 100, NULL, 30, 60) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/fromewkt35.testcase0000664000175000017500000000107612163502134021101 00000000000000fromewkt35 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTIONM(GEOMETRYCOLLECTIONM(POINTM(0 0 9), LINESTRINGM(1 1 9, 2 2 9)), GEOMETRYCOLLECTIONM(POINTM(3 3 9), LINESTRINGM(4 4 9, 5 5 9)))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTIONM(GEOMETRYCOLLECTIONM(POINTM(0 0 9), LINESTRINGM(1 1 9, 2 2 9)), GEOMETRYCOLLECTIONM(POINTM(3 3 9), LINESTRINGM(4 4 9, 5 5 9)))')); GEOMETRYCOLLECTION M(POINT M(0 0 9), POINT M(3 3 9), LINESTRING M(1 1 9, 2 2 9), LINESTRING M(4 4 9, 5 5 9)) libspatialite-4.1.1/test/sql_stmt_tests/reflectcoords13.testcase0000664000175000017500000000114112163502134022066 00000000000000reflectcoords13 :memory: #use in-memory database SELECT AsText(ReflectCoords(GeomFromText("POLYGONZ((-10 -10 100, -20 -10 101, -20 -20 102, -20 -11 103, -10 -10 100), (-11 -11 100, -12 -11 101, -12 -12 102, -11 -12 103, -11 -11 100))"), 1, 1)); 1 # rows (not including the header row) 1 # columns AsText(ReflectCoords(GeomFromText("POLYGONZ((-10 -10 100, -20 -10 101, -20 -20 102, -20 -11 103, -10 -10 100), (-11 -11 100, -12 -11 101, -12 -12 102, -11 -12 103, -11 -11 100))"), 1, 1)) POLYGON Z((10 10 100, 20 10 101, 20 20 102, 20 11 103, 10 10 100), (11 11 100, 12 11 101, 12 12 102, 11 12 103, 11 11 100)) libspatialite-4.1.1/test/sql_stmt_tests/casttopoint8.testcase0000664000175000017500000000051512163502133021526 00000000000000casttopoint - Geometry collection, point plus polygon :memory: #use in-memory database SELECT CastToPoint(GeomFromText("GEOMETRYCOLLECTION(POLYGON((4 3, 4 1, 0 3, 4 3)),POINT(1 2))")) 1 # rows (not including the header row) 1 # columns CastToPoint(GeomFromText("GEOMETRYCOLLECTION(POLYGON((4 3, 4 1, 0 3, 4 3)),POINT(1 2))")) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makeellipse8.testcase0000664000175000017500000000030012163502134021443 00000000000000makeellipse8 - text x_axis :memory: #use in-memory database SELECT MakeEllipse(0, 0, 'alpha', 200); 1 # rows (not including the header row) 1 # columns MakeEllipse(0, 0, 'alpha', 200) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geomfromkml11.testcase0000664000175000017500000000465712163502134021564 00000000000000From KML - Geometrycollection - POLYGON with interior, 2-D :memory: SELECT AsText(GeomFromKML(" -122.43193945401,37.801983684521 -122.431564131101,37.8020327731402 -122.431499536494,37.801715236748 -122.43187136387,37.8016634915437 -122.43193945401,37.801983684521 -122.431885303019,37.8019316061803 -122.431762847554,37.8019476932246 -122.431719843168,37.8017374462006 -122.431841863906,37.8017213314352 -122.431885303019,37.8019316061803 -122.431714248439,37.8019544341044 -122.431592404659,37.8019694509363 -122.431548777661,37.8017591041777 -122.431671453253,37.8017428443014 -122.431714248439,37.8019544341044 ")) 1 # rows 1 # column AsText(GeomFromKML(" -122.43193945401,37.801983684521 -122.431564131101,37.8020327731402 -122.431499536494,37.801715236748 -122.43187136387,37.8016634915437 -122.43193945401,37.801983684521 -122.431885303019,37.8019316061803 -122.431762847554,37.8019476932246 -122.431719843168,37.8017374462006 -122.431841863906,37.8017213314352 -122.431885303019,37.8019316061803 -122.431714248439,37.8019544341044 -122.431592404659,37.8019694509363 -122.431548777661,37.8017591041777 -122.431671453253,37.8017428443014 -122.431714248439,37.8019544341044 ")) MULTIPOLYGON(((-122.431939 37.801984, -122.431564 37.802033, -122.4315 37.801715, -122.431871 37.801663, -122.431939 37.801984), (-122.431885 37.801932, -122.431763 37.801948, -122.43172 37.801737, -122.431842 37.801721, -122.431885 37.801932), (-122.431714 37.801954, -122.431592 37.801969, -122.431549 37.801759, -122.431671 37.801743, -122.431714 37.801954)))libspatialite-4.1.1/test/sql_stmt_tests/srid10.testcase0000664000175000017500000000025712163502134020175 00000000000000SetSRID - zeroblob :memory: #use in-memory database SELECT SetSRID(zeroblob(100), 4326) 1 # rows (not including the header row) 1 # columns SetSRID(zeroblob(100), 4326) (NULL)libspatialite-4.1.1/test/sql_stmt_tests/addpoint17.testcase0000664000175000017500000000041212163502133021035 00000000000000ST_AddPoint() - not a line :memory: #use in-memory database SELECT ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1), 2) 1 # rows (not including the header row) 1 # columns ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1), 2) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/shiftcoords10.testcase0000664000175000017500000000046512163502134021564 00000000000000shiftcoords - Linestring XYM :memory: #use in-memory database SELECT AsText(ShiftCoords(GeomFromText("LINESTRINGM(1 2 20, 3 4 20)"), 1.4, 3.9)); 1 # rows (not including the header row) 1 # columns AsText(ShiftCoords(GeomFromText("LINESTRINGM(1 2 20, 3 4 20)"), 1.4, 3.9)) LINESTRING M(2.4 5.9 20, 4.4 7.9 20) libspatialite-4.1.1/test/sql_stmt_tests/makeellipticarc8.testcase0000664000175000017500000000034412163502134022311 00000000000000makeellipticarc8 - BLOB x_axis :memory: #use in-memory database SELECT MakeEllipticArc(0, 0, zeroblob(4), 200, 30, 60); 1 # rows (not including the header row) 1 # columns MakeEllipticArc(0, 0, zeroblob(4), 200, 30, 60) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/pointn15.testcase0000664000175000017500000000035512163502134020547 00000000000000pointN - point input, out of range :memory: #use in-memory database SELECT AsText(PointN(GeomFromText("POINT(136 -35)"), -2)); 1 # rows (not including the header row) 1 # columns AsText(PointN(GeomFromText("POINT(136 -35)"), -2)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/garsmbr27.testcase0000664000175000017500000000034412163502134020676 00000000000000garsmbr - 361HN37 :memory: #use in-memory database SELECT AsText(GARSMbr("361HN37")) 1 # rows (not including the header row) 1 # columns AsText(GARSMbr("361HN37")) POLYGON((0 0, 0.083333 0, 0.083333 0.083333, 0 0.083333, 0 0)) libspatialite-4.1.1/test/sql_stmt_tests/badKML4.testcase0000664000175000017500000000063212163502133020245 00000000000000bad KML: MultiPoint :memory: #use in-memory database SELECT GeomFromKML('1.1,2.23.3,4.41.1,2.23.3,4.40,0 5,0 5,5 0,5 0,01 1 2 1 2 2 1 2 1 1')) 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('0,0 5,0 5,5 0,5 0,01 1 2 1 2 2 1 2 1 1')):0 SRID=4326;POLYGON((0 0,5 0,5 5,0 5,0 0),(1 1,2 1,2 2,1 2,1 1))libspatialite-4.1.1/test/sql_stmt_tests/ring10.testcase0000664000175000017500000000045512163502134020173 00000000000000NumInteriorRings - Simple Polygon :memory: #use in-memory database SELECT NumInteriorRings(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35))")); 1 # rows (not including the header row) 1 # columns NumInteriorRings(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35))")) 0 libspatialite-4.1.1/test/sql_stmt_tests/asewkb15.testcase0000664000175000017500000000055712163502133020517 00000000000000asewkb - MULTIPOINT, 1 point :memory: #use in-memory database SELECT Hex(AsEWKB(GeomFromText("MULTIPOINT(0 1)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsEWKB(GeomFromText("MULTIPOINT(0 1)", 4326))) 535249443D343332363B303130343030303030303031303030303030303130313030303030303030303030303030303030303030303030303030303030303030303046303346 libspatialite-4.1.1/test/sql_stmt_tests/ismeasured3.testcase0000664000175000017500000000031112163502134021306 00000000000000IsMeasured- Point XY :memory: #use in-memory database SELECT ST_IsMeasured(GeomFromText('POINT(1 2)')); 1 # rows (not including the header row) 1 # columns ST_IsMeasured(GeomFromText('POINT(1 2)')) 0 libspatialite-4.1.1/test/sql_stmt_tests/badKML6.testcase0000664000175000017500000000171012163502133020245 00000000000000bad KML: MultiPolygon :memory: #use in-memory database SELECT GeomFromKML('0,0 1,0 1,1 0,1 0,00.1,0.1 0.9,0.1 0.9,0.9 0.1,0.9 0.1,0.15,5 6,5 6,6 5,6 5,50,0 1,0 1,1 0,1 0,00.1,0.1 0.9,0.1 0.9,0.9 0.1,0.9 0.1,0.15,5 6,5 6,6 5,6 5,51 23 4:0 # trailing ":0" required to avoid truncation !!! libspatialite-4.1.1/test/sql_stmt_tests/dissolve28.testcase0000664000175000017500000000152612163502133021074 00000000000000dissolve - Overlap points POLYGON Z :memory: #use in-memory database SELECT AsText(DissolveSegments(geom)),AsText(DissolvePoints(geom)) from (SELECT GeomFromText("POLYGONZ((-10 0 0, -10 10 0, -10 10 10, 10 10 10, 10 10 10, 10 10 -10, 10 -10 -10, -10 -10 -10, -10 0 0),(0 1 0, 0 2 1, 1 2 2, 1 2 3, 1 2 3, 1 2 3, 0 1 0))") as geom) dummy; 1 # rows (not including the header row) 2 # columns AsText(DissolveSegments(geom)) AsText(DissolvePoints(geom)) MULTILINESTRING Z((-10 0 0, -10 10 0), (-10 10 0, -10 10 10), (-10 10 10, 10 10 10), (10 10 10, 10 10 -10), (10 10 -10, 10 -10 -10), (10 -10 -10, -10 -10 -10), (-10 -10 -10, -10 0 0), (0 1 0, 0 2 1), (0 2 1, 1 2 2), (1 2 2, 1 2 3), (1 2 3, 0 1 0)) MULTIPOINT Z(-10 0 0, -10 10 0, -10 10 10, 10 10 10, 10 10 10, 10 10 -10, 10 -10 -10, -10 -10 -10, -10 0 0, 0 1 0, 0 2 1, 1 2 2, 1 2 3, 1 2 3, 1 2 3, 0 1 0) libspatialite-4.1.1/test/sql_stmt_tests/forcenull17.testcase0000664000175000017500000000025212163502134021227 00000000000000ForceAsNull() - NULL/INTEGER :memory: #use in-memory database SELECT ForceAsNull(NULL, 1) 1 # rows (not including the header row) 1 # columns ForceAsNull(NULL, 1) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/fromgeojson2.testcase0000664000175000017500000000026212163502134021501 00000000000000FromGeoJSON - nontext :memory: #use in-memory database SELECT AsText(GeomFromGeoJSON(26)); 1 # rows (not including the header row) 1 # columns AsText(GeomFromGeoJSON(26)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/fromgml34.testcase0000664000175000017500000000103012163502134020673 00000000000000FromGML - poslist linestring :memory: #use in-memory database SELECT AsText(GeomFromGml('45.67 88.56 55.56 89.44')) 1 # rows (not including the header row) 1 # columns AsText(GeomFromGml('45.67 88.56 55.56 89.44')):0 LINESTRING(45.67 88.56, 55.56 89.44) libspatialite-4.1.1/test/sql_stmt_tests/collectextract22.testcase0000664000175000017500000000061212163502133022251 00000000000000Collection Extract - Extract POLYGON :memory: #use in-memory database SELECT AsText(CollectionExtract(GeomFromText("POLYGON((0 0, 10 0, 10 10, 0 0),(1 2, 4 3, 1 1, 1 2))"), 3)); 1 # rows (not including the header row) 1 # columns AsText(CollectionExtract(GeomFromText("POLYGON((0 0, 10 0, 10 10, 0 0),(1 2, 4 3, 1 1, 1 2))"), 3)) MULTIPOLYGON(((0 0, 10 0, 10 10, 0 0), (1 2, 4 3, 1 1, 1 2))) libspatialite-4.1.1/test/sql_stmt_tests/rotatecoords9.testcase0000664000175000017500000000154412163502134021674 00000000000000rotate coords - Simple polygonm :memory: #use in-memory database SELECT AsText(RotateCoords(geom, 0)), AsText(RotateCoords(geom, 90.0)), AsText(RotateCoords(geom, 180.0)), AsText(RotateCoords(geom, -90)), RotateCoords(zeroblob(20), 10), RotateCoords(geom, "hello"), RotateCoords("foo", 30) FROM (SELECT GeomFromText("POLYGONM((0 0 1, 1 1 2, 1 2 3, -1 1 4, 0 0 1))") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(RotateCoords(geom, 0)) AsText(RotateCoords(geom, 90.0)) AsText(RotateCoords(geom, 180.0)) AsText(RotateCoords(geom, -90)) RotateCoords(zeroblob(20), 10) RotateCoords(geom, "hello") RotateCoords("foo", 30) POLYGON M((0 0 1, 1 1 2, 1 2 3, -1 1 4, 0 0 1)) POLYGON M((0 0 1, 1 -1 2, 2 -1 3, 1 1 4, 0 0 1)) POLYGON M((0 0 1, -1 -1 2, -1 -2 3, 1 -1 4, 0 0 1)) POLYGON M((0 0 1, -1 1 2, -2 1 3, -1 -1 4, 0 0 1)) (NULL) (NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makeellipticsector2.testcase0000664000175000017500000000034512163502134023036 00000000000000makeellipticsector2 - text cx :memory: #use in-memory database SELECT MakeEllipticSector('alpha', 0, 100, 200, 30, 60); 1 # rows (not including the header row) 1 # columns MakeEllipticSector('alpha', 0, 100, 200, 30, 60) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/swapcoords10.testcase0000664000175000017500000000075112163502134021417 00000000000000swapcoords10 :memory: #use in-memory database SELECT AsText(SwapCoords(GeomFromText("POLYGONM((10 10 1, 20 10 2, 20 20 3, 10 20 4, 10 10 1), (14 14 1, 16 14 2, 16 16 3, 14 16 4, 14 14 1))"))); 1 # rows (not including the header row) 1 # columns AsText(SwapCoords(GeomFromText("POLYGONM((10 10 1, 20 10 2, 20 20 3, 10 20 4, 10 10 1), (14 14 1, 16 14 2, 16 16 3, 14 16 4, 14 14 1))"))); POLYGON M((10 10 1, 10 20 2, 20 20 3, 20 10 4, 10 10 1), (14 14 1, 14 16 2, 16 16 3, 16 14 4, 14 14 1)) libspatialite-4.1.1/test/sql_stmt_tests/compressgeometry33.testcase0000664000175000017500000000144512163502133022647 00000000000000CompressGeometry - GEOMETRYCOLLECTION ZM :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONZM(LINESTRINGZM(10 10 100 1, 11 11 101 2), POLYGONZM((0 0 100 1, 5 0 101 2, 5 5 102 3, 0 5 103 4, 0 0 100 1), (1 1 100 10, 2 1 101 11, 2 2 102 12, 1 2 103 13, 1 1 100 10)))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONZM(LINESTRINGZM(10 10 100 1, 11 11 101 2), POLYGONZM((0 0 100 1, 5 0 101 2, 5 5 102 3, 0 5 103 4, 0 0 100 1), (1 1 100 10, 2 1 101 11, 2 2 102 12, 1 2 103 13, 1 1 100 10)))", 4326))) GEOMETRYCOLLECTION ZM(LINESTRING ZM(10 10 100 1, 11 11 101 2), POLYGON ZM((0 0 100 1, 5 0 101 2, 5 5 102 3, 0 5 103 4, 0 0 100 1), (1 1 100 10, 2 1 101 11, 2 2 102 12, 1 2 103 13, 1 1 100 10))) libspatialite-4.1.1/test/sql_stmt_tests/fromgeojson4.testcase0000664000175000017500000000042012163502134021477 00000000000000FromGeoJSON - PointZ :memory: #use in-memory database SELECT AsText(GeomFromGeoJSON('{"type":"Point","coordinates":[-1,1,2.3]}')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromGeoJSON('{"type":"Point","coordinates":[-1,1,2.3]}')):0 POINT Z(-1 1 2.3) libspatialite-4.1.1/test/sql_stmt_tests/fromewkt24.testcase0000664000175000017500000000063512163502134021077 00000000000000fromewkt24 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(MULTILINESTRING((0 1 9 7, 2 3 9 7), (4 5 9 7, 6 7 9 7)))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(MULTILINESTRING((0 1 9 7, 2 3 9 7), (4 5 9 7, 6 7 9 7)))')); GEOMETRYCOLLECTION ZM(LINESTRING ZM(0 1 9 7, 2 3 9 7), LINESTRING ZM(4 5 9 7, 6 7 9 7)) libspatialite-4.1.1/test/sql_stmt_tests/makeline9.testcase0000664000175000017500000000044112163502134020744 00000000000000makeline9 :memory: #use in-memory database SELECT AsText(MakeLine(GeomFromText("POINTZ(0 0 0.2)"), GeomFromText("POINT(1 2)"))); 1 # rows (not including the header row) 1 # columns AsText(MakeLine(GeomFromText("POINTZ(0 0 0.2)"), GeomFromText("POINT(1 2)"))) LINESTRING Z(0 0 0.2, 1 2 0) libspatialite-4.1.1/test/sql_stmt_tests/makeellipticsector25.testcase0000664000175000017500000000040212163502134023115 00000000000000makeellipticsector25 - BLOB step :memory: #use in-memory database SELECT MakeEllipticSector(0, 0, 100, 200, 30, 60, 4326, zeroblob(4)); 1 # rows (not including the header row) 1 # columns MakeEllipticSector(0, 0, 100, 200, 30, 60, 4326, zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/compressgeometry25.testcase0000664000175000017500000000051612163502133022646 00000000000000CompressGeometry - LINESTRING M :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("LINESTRINGM(1 2 10, 3 4 11, 5 6 12", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("LINESTRINGM(1 2 10, 3 4 11, 5 6 12", 4326))) (NULL) LINESTRING M(1 2 10, 3 4 11, 5 6 12) libspatialite-4.1.1/test/sql_stmt_tests/mbr30.testcase0000664000175000017500000000045112163502134020012 00000000000000MbrDisjoint - Line + Point left :memory: #use in-memory database SELECT MbrDisjoint(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(-0.5 1)")); 1 # rows (not including the header row) 1 # columns MbrDisjoint(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(-0.5 1)")) # header 1libspatialite-4.1.1/test/sql_stmt_tests/nrings3.testcase0000664000175000017500000000025012163502134020447 00000000000000nrings - single point :memory: #use in-memory database SELECT ST_NRings(MakePoint(2,3)) 1 # rows (not including the header row) 1 # columns ST_NRings(MakePoint(2,3)) 0 libspatialite-4.1.1/test/sql_stmt_tests/makeellipticsector4.testcase0000664000175000017500000000033712163502134023041 00000000000000makeellipticsector4 - NULL cy :memory: #use in-memory database SELECT MakeEllipticSector(0, NULL, 100, 200, 30, 60); 1 # rows (not including the header row) 1 # columns MakeEllipticSector(0, NULL, 100, 200, 30, 60) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/compressgeometry27.testcase0000664000175000017500000000062112163502133022645 00000000000000CompressGeometry - POLYGON :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("POLYGON((0 0, 5 0, 5 5, 0 5, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("POLYGON((0 0, 5 0, 5 5, 0 5, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1))", 4326))) POLYGON((0 0, 5 0, 5 5, 0 5, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)) libspatialite-4.1.1/test/sql_stmt_tests/normalizelonlat13.testcase0000664000175000017500000000040112163502134022440 00000000000000normalizelonlat- in range -290 :memory: #use in-memory database SELECT AsText(NormalizeLonLat(GeomFromText("POINT(4 -290)", 4326))) 1 # rows (not including the header row) 1 # columns AsText(NormalizeLonLat(GeomFromText("POINT(4 -290)", 4326))) POINT(4 70) libspatialite-4.1.1/test/sql_stmt_tests/greatcircle-text.testcase0000664000175000017500000000017512163502134022340 00000000000000great circle length - text :memory: SELECT GreatCircleLength("Hello"); 1 # rows 1 # column GreatCircleLength("Hello") (NULL) libspatialite-4.1.1/test/sql_stmt_tests/casttosingle5.testcase0000664000175000017500000000040312163502133021647 00000000000000casttosingle - MULTIPOINT, two points :memory: #use in-memory database SELECT AsText(CastToSingle(GeomFromText("MULTIPOINT(3 1, 4.2 2)"))) 1 # rows (not including the header row) 1 # columns AsText(CastToSingle(GeomFromText("MULTIPOINT(3 1, 4.2 2)"))) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makeellipticarc20.testcase0000664000175000017500000000034512163502134022364 00000000000000makeellipticarc20 - text srid :memory: #use in-memory database SELECT MakeEllipticArc(0, 0, 100, 200, 30, 60, 'alpha'); 1 # rows (not including the header row) 1 # columns MakeEllipticArc(0, 0, 100, 200, 30, 60, 'alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_tests/asbinary15.testcase0000664000175000017500000000025412163502133021045 00000000000000asbinary - bad blob - long :memory: #use in-memory database SELECT AsBinary(zeroblob(50)) 1 # rows (not including the header row) 1 # columns AsBinary(zeroblob(50)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geomfromkml20.testcase0000664000175000017500000000210712163502134021550 00000000000000From KML - MultiGeometry POLYGON [hole] x 2 - 2D :memory: SELECT AsText(GeomFromKML("10,10 15,10 15,15 10,15 10,1011,11 12,11 12,12 11,12 11,1116,16 17,16 17,17 16,17 16,16")) 1 # rows 1 # column AsText(GeomFromKML("10,10 15,10 15,15 10,15 10,1011,11 12,11 12,12 11,12 11,1116,16 17,16 17,17 16,17 16,16")) MULTIPOLYGON(((10 10, 15 10, 15 15, 10 15, 10 10), (11 11, 12 11, 12 12, 11 12, 11 11)), ((16 16, 17 16, 17 17, 16 17, 16 16))) libspatialite-4.1.1/test/sql_stmt_tests/addpoint28.testcase0000664000175000017500000000053112163502133021041 00000000000000ST_AddPoint() - insert into the middle ZM :memory: #use in-memory database SELECT AsText(AddPoint(GeomFromText('LINESTRINGZM(0 0 1 3, 1 0 2 3)'), MakePoint(1, 1), 1)) 1 # rows (not including the header row) 1 # columns AsText(AddPoint(GeomFromText('LINESTRINGZM(0 0 1 3, 1 0 2 3)'), MakePoint(1, 1), 1)) LINESTRING ZM(0 0 1 3, 1 1 0 0, 1 0 2 3) libspatialite-4.1.1/test/sql_stmt_tests/asewkb3.testcase0000664000175000017500000000053212163502133020425 00000000000000asewkb - POINTM :memory: #use in-memory database SELECT Hex(AsEWKB(GeomFromText("POINTM(1 3 1)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsEWKB(GeomFromText("POINTM(1 3 1)", 4326))) 535249443D343332363B30313031303030303430303030303030303030303030463033463030303030303030303030303038343030303030303030303030303046303346 libspatialite-4.1.1/test/sql_stmt_tests/makeellipticsector1.testcase0000664000175000017500000000033712163502134023036 00000000000000makeellipticsector1 - NULL cx :memory: #use in-memory database SELECT MakeEllipticSector(NULL, 0, 100, 200, 30, 60); 1 # rows (not including the header row) 1 # columns MakeEllipticSector(NULL, 0, 100, 200, 30, 60) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geomconstraints4.testcase0000664000175000017500000000044412163502134022374 00000000000000geometry constraints - 3 arg, POINT / MULTIPOINT :memory: #use in-memory database SELECT GeometryConstraints(GeomFromText("Point(1 2)", 4326), "MULTIPOINT", 4326) 1 # rows (not including the header row) 1 # columns GeometryConstraints(GeomFromText("Point(1 2)", 4326), "MULTIPOINT", 4326) 0 libspatialite-4.1.1/test/sql_stmt_tests/casttosingle8.testcase0000664000175000017500000000063112163502133021655 00000000000000casttosingle - 2 linestrings and polygon :memory: #use in-memory database SELECT AsText(CastToSingle(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(4 1, 3 4),LINESTRING(4 6, 3 1),POLYGON((0 1, 2 1, 2 4, 0 4, 0 1)))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToSingle(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(4 1, 3 4),LINESTRING(4 6, 3 1),POLYGON((0 1, 2 1, 2 4, 0 4, 0 1)))"))) (NULL)libspatialite-4.1.1/test/sql_stmt_tests/casttoblob1.testcase0000664000175000017500000000023112163502133021277 00000000000000CastToBlob() - NULL :memory: #use in-memory database SELECT CastToBlob(NULL) 1 # rows (not including the header row) 1 # columns CastToBlob(NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/removepoint16.testcase0000664000175000017500000000046212163502134021607 00000000000000ST_RemovePoint() - ZM :memory: #use in-memory database SELECT AsText(RemovePoint(GeomFromText('LINESTRINGZM(0 0 1 2, 1 0 2 3, 1 1 3 4)'), 1)) 1 # rows (not including the header row) 1 # columns AsText(RemovePoint(GeomFromText('LINESTRINGZM(0 0 1 2, 1 0 2 3, 1 1 3 4)'), 1)) LINESTRING ZM(0 0 1 2, 1 1 3 4) libspatialite-4.1.1/test/sql_stmt_tests/us_yd_m.testcase0000664000175000017500000000023112163502134020522 00000000000000US yards to metres :memory: #use in-memory database SELECT CvtFromUsYd(10); 1 # rows (not including the header row) 1 # columns CvtFromUsYd(10); 9.144:5 libspatialite-4.1.1/test/sql_stmt_tests/makeellipticarc5.testcase0000664000175000017500000000033412163502134022305 00000000000000makeellipticarc5 - text cy :memory: #use in-memory database SELECT MakeEllipticArc(0, 'alpha', 100, 200, 30, 60); 1 # rows (not including the header row) 1 # columns MakeEllipticArc(0, 'alpha', 100, 200, 30, 60) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/casttoxyz4.testcase0000664000175000017500000000033112163502133021217 00000000000000casttoxyz - POINT :memory: #use in-memory database SELECT AsText(CastToXYZ(GeomFromText("POINT(4 3)"))) 1 # rows (not including the header row) 1 # columns AsText(CastToXYZ(GeomFromText("POINT(4 3)"))) POINT Z(4 3 0) libspatialite-4.1.1/test/sql_stmt_tests/garsmbr9.testcase0000664000175000017500000000036012163502134020614 00000000000000garsmbr - 001AB3 :memory: #use in-memory database SELECT AsText(GARSMbr("001AB3")) 1 # rows (not including the header row) 1 # columns AsText(GARSMbr("001AB3")) POLYGON((-180 -89.5, -179.75 -89.5, -179.75 -89.25, -180 -89.25, -180 -89.5)) libspatialite-4.1.1/test/sql_stmt_tests/maxm7.testcase0000664000175000017500000000066212163502134020124 00000000000000MaxM - Polygon XYZM :memory: #use in-memory database SELECT ST_MaxM(GeomFromText('POLYGONZM((0 0 100 10, 5 0 101 9, 5 5 102 12, 0 5 103 13, 0 0 100 10), (1 1 101 8, 2 1 102 12, 2 2 103 13, 1 2 104 14, 1 1 101 11))')); 1 # rows (not including the header row) 1 # columns ST_MaxM(GeomFromText('POLYGONZM((0 0 100 10, 5 0 101 9, 5 5 102 12, 0 5 103 13, 0 0 100 10), (1 1 101 8, 2 1 102 12, 2 2 103 13, 1 2 104 14, 1 1 101 11))')); 14.0 libspatialite-4.1.1/test/sql_stmt_tests/sanitizeGeometry11.testcase0000664000175000017500000000062212163502134022573 00000000000000Sanitize Geometry - POLYGON M :memory: #use in-memory database SELECT AsEWkt(SanitizeGeometry(GeomFromText("POLYGON M((-71 42 2, -70 41 2, -70 42 3, -70 42 4, -71 42 2))", 4326))) 1 # rows (not including the header row) 1 # columns AsEWkt(SanitizeGeometry(GeomFromText("POLYGON M((-71 42 2, -70 41 2, -70 42 3, -70 42 4, -71 42 2))", 4326))) SRID=4326;POLYGONM((-71 42 2,-70 41 2,-70 42 3,-71 42 2)) libspatialite-4.1.1/test/sql_stmt_tests/makepoint-null5.testcase0000664000175000017500000000033212163502134022111 00000000000000makepoint-null5 :memory: #use in-memory database SELECT AsText(MakePoint(-26.0, 42.3150676015829, 4326.0)); 1 # rows (not including the header row) 1 # columns AsText(MakePoint(-26.0, 42.3150676015829, 4326.0)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/mbr9.testcase0000664000175000017500000000044712163502134017745 00000000000000MbrIntersects - Line + Point on :memory: #use in-memory database SELECT MbrIntersects(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(1 2)")); 1 # rows (not including the header row) 1 # columns MbrIntersects(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(1 2)")) # header 1libspatialite-4.1.1/test/sql_stmt_tests/setpoint5.testcase0000664000175000017500000000030712163502134021021 00000000000000ST_SetPoint() - BLOB line :memory: #use in-memory database SELECT ST_SetPoint(zeroblob(4), NULL, NULL) 1 # rows (not including the header row) 1 # columns ST_SetPoint(zeroblob(4), NULL, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/garsmbr30.testcase0000664000175000017500000000025012163502134020664 00000000000000garsmbr - bad segment number 0 :memory: #use in-memory database SELECT GARSMbr("001AA01") 1 # rows (not including the header row) 1 # columns GARSMbr("001AA01") (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geomfromtext24.testcase0000664000175000017500000000056612163502134021764 00000000000000geomfromtext24 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONM(MULTILINESTRINGM((0 1 9, 2 3 9), (4 5 9, 6 7 9)))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTIONM(MULTILINESTRINGM((0 1 9, 2 3 9), (4 5 9, 6 7 9)))')); GEOMETRYCOLLECTION M(LINESTRING M(0 1 9, 2 3 9), LINESTRING M(4 5 9, 6 7 9)) libspatialite-4.1.1/test/sql_stmt_tests/greatcircle-poly2.testcase0000664000175000017500000000040512163502134022415 00000000000000great circle length polygon :memory: SELECT GreatCircleLength(GeomFromText("POLYGON((0 0, 1 0, 0 0, 0 0),(0 0, 0 0, 0 0, 0 0))", 4326)); 1 # rows 1 # column GreatCircleLength(GeomFromText("POLYGON((0 0, 1 0, 0 0, 0 0),(0 0, 0 0, 0 0, 0 0))", 4326)) 222390.15:9 libspatialite-4.1.1/test/sql_stmt_tests/casttogeometrycollection5.testcase0000664000175000017500000000054012163502133024277 00000000000000casttogeometrycollection - POLYGON :memory: #use in-memory database SELECT AsText(CastToGeometryCollection(GeomFromText("POLYGON((0 1, 2 1, 2 4, 0 4, 0 1))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToGeometryCollection(GeomFromText("POLYGON((0 1, 2 1, 2 4, 0 4, 0 1))"))) GEOMETRYCOLLECTION(POLYGON((0 1, 2 1, 2 4, 0 4, 0 1))) libspatialite-4.1.1/test/sql_stmt_tests/geomfromkml7.testcase0000664000175000017500000000465412163502134021506 00000000000000From KML - POLYGON with interior :memory: SELECT AsText(GeomFromKML(" -122.43193945401,37.801983684521,0 -122.431564131101,37.8020327731402,0 -122.431499536494,37.801715236748,0 -122.43187136387,37.8016634915437,0 -122.43193945401,37.801983684521,0 -122.431885303019,37.8019316061803,0 -122.431762847554,37.8019476932246,0 -122.431719843168,37.8017374462006,0 -122.431841863906,37.8017213314352,0 -122.431885303019,37.8019316061803,0 -122.431714248439,37.8019544341044,0 -122.431592404659,37.8019694509363,0 -122.431548777661,37.8017591041777,0 -122.431671453253,37.8017428443014,0 -122.431714248439,37.8019544341044,0 ")) 1 # rows 1 # column AsText(GeomFromKML(" -122.43193945401,37.801983684521,0 -122.431564131101,37.8020327731402,0 -122.431499536494,37.801715236748,0 -122.43187136387,37.8016634915437,0 -122.43193945401,37.801983684521,0 -122.431885303019,37.8019316061803,0 -122.431762847554,37.8019476932246,0 -122.431719843168,37.8017374462006,0 -122.431841863906,37.8017213314352,0 -122.431885303019,37.8019316061803,0 -122.431714248439,37.8019544341044,0 -122.431592404659,37.8019694509363,0 -122.431548777661,37.8017591041777,0 -122.431671453253,37.8017428443014,0 -122.431714248439,37.8019544341044,0 ")) POLYGON Z((-122.431939 37.801984 0, -122.431564 37.802033 0, -122.4315 37.801715 0, -122.431871 37.801663 0, -122.431939 37.801984 0), (-122.431885 37.801932 0, -122.431763 37.801948 0, -122.43172 37.801737 0, -122.431842 37.801721 0, -122.431885 37.801932 0), (-122.431714 37.801954 0, -122.431592 37.801969 0, -122.431549 37.801759 0, -122.431671 37.801743 0, -122.431714 37.801954 0))libspatialite-4.1.1/test/sql_stmt_tests/geomconstraints5.testcase0000664000175000017500000000042612163502134022375 00000000000000geometry constraints - 3 arg, POINT bad SRID :memory: #use in-memory database SELECT GeometryConstraints(GeomFromText("Point(1 2)", 4386), "POINT", 4326) 1 # rows (not including the header row) 1 # columns GeometryConstraints(GeomFromText("Point(1 2)", 4386), "POINT", 4326) 0 libspatialite-4.1.1/test/sql_stmt_tests/mbr22.testcase0000664000175000017500000000044112163502134020012 00000000000000MbrOverlaps - Line + Point on :memory: #use in-memory database SELECT MbrOverlaps(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(1 2)")); 1 # rows (not including the header row) 1 # columns MbrOverlaps(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(1 2)")) # header 1libspatialite-4.1.1/test/sql_stmt_tests/fromgeojson16.testcase0000664000175000017500000000057312163502134021573 00000000000000FromGeoJSON - bad type, SRID :memory: #use in-memory database SELECT AsEWkt(GeomFromGeoJSON('{"type":"No such type","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"coordinates":[]}')); 1 # rows (not including the header row) 1 # columns AsEWkt(GeomFromGeoJSON('{"type":"No such type","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"coordinates":[]}')):0 (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makecircularsector1.testcase0000664000175000017500000000032512163502134023032 00000000000000makecircularsector1 - NULL cx :memory: #use in-memory database SELECT MakeCircularSector(NULL, 0, 100, 30, 60); 1 # rows (not including the header row) 1 # columns MakeCircularSector(NULL, 0, 100, 30, 60) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makeellipse16.testcase0000664000175000017500000000032112163502134021525 00000000000000makeellipse16 - BLOB srid :memory: #use in-memory database SELECT MakeEllipse(0, 0, 100, 200, zeroblob(4)); 1 # rows (not including the header row) 1 # columns MakeEllipse(0, 0, 100, 200, zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makepointm-null4.testcase0000664000175000017500000000035712163502134022274 00000000000000makepointm-null4 :memory: #use in-memory database SELECT AsText(MakePointM("hello", 42.3150676015829, 12.6389, 4326)); 1 # rows (not including the header row) 1 # columns AsText(MakePointM("hello", 42.3150676015829, 12.6389, 4326)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/wkb20.testcase0000664000175000017500000000133412163502134020015 00000000000000Hex Wkb: GeometryCollection XYZM (2 lines) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONZM(LINESTRINGZM(1.2 3.4 100 12, 5.6 7.8 101 13), LINESTRINGZM(5 6 110 11, 7 8 111 12))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONZM(LINESTRINGZM(1.2 3.4 100 12, 5.6 7.8 101 13), LINESTRINGZM(5 6 110 11, 7 8 111 12))", 4326))); 01BF0B00000200000001BA0B000002000000333333333333F33F3333333333330B400000000000005940000000000000284066666666666616403333333333331F4000000000004059400000000000002A4001BA0B000002000000000000000000144000000000000018400000000000805B4000000000000026400000000000001C4000000000000020400000000000C05B400000000000002840 libspatialite-4.1.1/test/sql_stmt_tests/assvg19.testcase0000664000175000017500000000051512163502133020364 00000000000000assvg - relative/absolute Linestring XYZ :memory: #use in-memory database SELECT assvg(geom, 1) AS rel, assvg(geom, 0) AS abs FROM (SELECT GeomFromText("LINESTRINGZ(1 2 100, 4 3 101, 5 6 102, 8 7 103)", 4326) AS geom) dummy; 1 # rows (not including the header row) 2 # columns rel abs M 1 -2 l 3 -1 1 -3 3 -1 M 1 -2 L 4 -3 5 -6 8 -7 libspatialite-4.1.1/test/sql_stmt_tests/swapcoords1.testcase0000664000175000017500000000032212163502134021331 00000000000000swapcoords1 :memory: #use in-memory database SELECT AsText(SwapCoords(GeomFromText("POINT(1 2)"))); 1 # rows (not including the header row) 1 # columns AsText(SwapCoords(GeomFromText("POINT(1 2)"))) POINT(2 1) libspatialite-4.1.1/test/sql_stmt_tests/st_z5.testcase0000664000175000017500000000036312163502134020135 00000000000000ST_Z5 :memory: #use in-memory database SELECT ST_Z(GeomFromText("LINESTRINGZ(136 -35 635.2, 135.2 -34.5 675.1)")); 1 # rows (not including the header row) 1 # columns ST_Z(GeomFromText("LINESTRINGZ(136 -35 635.2, 135.2 -34.5 675.1)")) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geomconstraints25.testcase0000664000175000017500000000075712163502134022466 00000000000000geometry constraints - GEOMETRYCOLLECTION :memory: #use in-memory database SELECT GeometryConstraints(GeomFromText("GEOMETRYCOLLECTIONZ(MULTIPOLYGONZ(((0 0 0, 1 0 0, 1 1 0, 0 0 0)),((0 0 0, -1 0 0, -1 -1 0, 0 0 0))))", 4326), "GEOMETRYCOLLECTION", 4326, "XYZ") 1 # rows (not including the header row) 1 # columns GeometryConstraints(GeomFromText("GEOMETRYCOLLECTIONZ(MULTIPOLYGONZ(((0 0 0, 1 0 0, 1 1 0, 0 0 0)),((0 0 0, -1 0 0, -1 -1 0, 0 0 0))))", 4326), "GEOMETRYCOLLECTION", 4326, "XYZ") 1 libspatialite-4.1.1/test/sql_stmt_tests/makecircle15.testcase0000664000175000017500000000033012163502134021330 00000000000000makecircle15 - NULL step :memory: #use in-memory database SELECT ST_Length(MakeCircle(0, 0, 100, 4326, NULL)); 1 # rows (not including the header row) 1 # columns ST_Length(MakeCircle(0, 0, 100, 4326, NULL)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/scalecoords10.testcase0000664000175000017500000000175512163502134021541 00000000000000scale coords - POLYGON with inner ring :memory: #use in-memory database SELECT AsText(ScaleCoords(geom, 0)), AsText(ScaleCoords(geom, 0.0)), AsText(ScaleCoords(geom, 2, 3.0)), AsText(ScaleCoords(geom, 1.0, -1)), ScaleCoords(zeroblob(20), 10), ScaleCoords(geom, "hello"), ScaleCoords(geom, 1, "hello"), ScaleCoords("foo", 2) FROM (SELECT GeomFromText("POLYGON((0 0, 0 4, 4 4, 4 0, 0 0),(1 2, 1 3, 2 3, 2 2, 1 2))") as geom) dummy; 1 # rows (not including the header row) 8 # columns AsText(ScaleCoords(geom, 0)) AsText(ScaleCoords(geom, 0.0)) AsText(ScaleCoords(geom, 2, 3.0)) AsText(ScaleCoords(geom, 1.0, -1)) ScaleCoords(zeroblob(20), 10) ScaleCoords(geom, "hello") ScaleCoords(geom, 1, "hello") ScaleCoords("foo", 2) POLYGON((0 0, 0 0, 0 0, 0 0, 0 0), (0 0, 0 0, 0 0, 0 0, 0 0)) POLYGON((0 0, 0 0, 0 0, 0 0, 0 0), (0 0, 0 0, 0 0, 0 0, 0 0)) POLYGON((0 0, 0 12, 8 12, 8 0, 0 0), (2 6, 2 9, 4 9, 4 6, 2 6)) POLYGON((0 0, 0 -4, 4 -4, 4 0, 0 0), (1 -2, 1 -3, 2 -3, 2 -2, 1 -2)) (NULL) (NULL) (NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/mbrminmax1.testcase0000664000175000017500000000021412163502134021137 00000000000000MbrMinX- non-blob :memory: #use in-memory database SELECT MbrMinX(3) 1 # rows (not including the header row) 1 # columns MbrMinX(3) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/asbinary17.testcase0000664000175000017500000000205212163502133021045 00000000000000asbinary - POLYGONZM :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("POLYGONZM((0 0 0 0, 3 0 0 0,3 3 0 0, 0 3 0 0,0 0 0 0), (1 1 1 1, 1 2 1 1, 2 2 1 1, 2 1 1 1, 1 1 1 1))", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("POLYGONZM((0 0 0 0, 3 0 0 0,3 3 0 0, 0 3 0 0,0 0 0 0), (1 1 1 1, 1 2 1 1, 2 2 1 1, 2 1 1 1, 1 1 1 1))", 4326))) 01BB0B000002000000050000000000000000000000000000000000000000000000000000000000000000000000000000000000084000000000000000000000000000000000000000000000000000000000000008400000000000000840000000000000000000000000000000000000000000000000000000000000084000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005000000000000000000F03F000000000000F03F000000000000F03F000000000000F03F000000000000F03F0000000000000040000000000000F03F000000000000F03F00000000000000400000000000000040000000000000F03F000000000000F03F0000000000000040000000000000F03F000000000000F03F000000000000F03F000000000000F03F000000000000F03F000000000000F03F000000000000F03F libspatialite-4.1.1/test/sql_stmt_tests/shiftcoords13.testcase0000664000175000017500000000104112163502134021556 00000000000000shiftcoords - Polygon XYZ :memory: #use in-memory database SELECT AsText(ShiftCoords(GeomFromText("POLYGONZ((0 0 10, 10 0 10, 10 10 11, 0 10 11, 0 0 10), (5 5 12, 6 5 12, 6 6 13, 5 6 13, 5 5 12))"), 1.4, 3.9)); 1 # rows (not including the header row) 1 # columns AsText(ShiftCoords(GeomFromText("POLYGONZ((0 0 10, 10 0 10, 10 10 11, 0 10 11, 0 0 10), (5 5 12, 6 5 12, 6 6 13, 5 6 13, 5 5 12))"), 1.4, 3.9)) POLYGON Z((1.4 3.9 10, 11.4 3.9 10, 11.4 13.9 11, 1.4 13.9 11, 1.4 3.9 10), (6.4 8.9 12, 7.4 8.9 12, 7.4 9.9 13, 6.4 9.9 13, 6.4 8.9 12)) libspatialite-4.1.1/test/sql_stmt_tests/forcenull28.testcase0000664000175000017500000000032212163502134021227 00000000000000ForceAsNull() - BLOB - mismatching :memory: #use in-memory database SELECT ForceAsNull(x'0102a1b2', x'0102a1b2') 1 # rows (not including the header row) 1 # columns ForceAsNull(x'0102a1b2', x'0102a1b2') (NULL) libspatialite-4.1.1/test/sql_stmt_tests/removepoint12.testcase0000664000175000017500000000037312163502134021604 00000000000000ST_RemovePoint() - not a line :memory: #use in-memory database SELECT ST_RemovePoint(GeomFromText('MULTIPOINT(0 0, 1 0, 1 1)'), 1) 1 # rows (not including the header row) 1 # columns ST_RemovePoint(GeomFromText('MULTIPOINT(0 0, 1 0, 1 1)'), 1) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/wkb1.testcase0000664000175000017500000000046312163502134017736 00000000000000Hex Wkb: MultiPoint XY (single point) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("MULTIPOINT(1.2 3.4)", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("MULTIPOINT(1.2 3.4)", 4326))); 0104000000010000000101000000333333333333F33F3333333333330B40 libspatialite-4.1.1/test/sql_stmt_tests/casttolinestring4.testcase0000664000175000017500000000045712163502133022554 00000000000000casttolinestring - MULTILINESTRING, 1 linestring :memory: #use in-memory database SELECT AsText(CastToLineString(GeomFromText("MULTILINESTRING((4 1, 3 4))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToLineString(GeomFromText("MULTILINESTRING((4 1, 3 4))"))) LINESTRING(4 1, 3 4) libspatialite-4.1.1/test/sql_stmt_tests/maxm2.testcase0000664000175000017500000000024012163502134020107 00000000000000MaxM - bad blob :memory: #use in-memory database SELECT ST_MaxM(zeroblob(48)) 1 # rows (not including the header row) 1 # columns ST_MaxM(zeroblob(48)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/ring18.testcase0000664000175000017500000000064212163502134020201 00000000000000InteriorRingN - first interior :memory: #use in-memory database SELECT AsText(InteriorRingN(GeomFromText("POLYGON((0 0, 0 4, 4 4, 4 0, 0 0),(1 1, 1 3, 3 3, 3 1, 1 1),(2 2, 2 3, 3 3, 3 2, 2 2))"), 1)); 1 # rows (not including the header row) 1 # columns AsText(InteriorRingN(GeomFromText("POLYGON((0 0, 0 4, 4 4, 4 0, 0 0),(1 1, 1 3, 3 3, 3 1, 1 1),(2 2, 2 3, 3 3, 3 2, 2 2))"), 1)) LINESTRING(1 1, 1 3, 3 3, 3 1, 1 1) libspatialite-4.1.1/test/sql_stmt_tests/fromWkb5.testcase0000664000175000017500000000055412163502134020567 00000000000000fromWkb - mandatory POINT :memory: #use in-memory database SELECT Hex(PointFromWkb(AsBinary(GeomFromText("Point(1 2)", 4326)))) 1 # rows (not including the header row) 1 # columns Hex(PointFromWkb(AsBinary(GeomFromText("Point(1 2)", 4326)))) 000100000000000000000000F03F0000000000000040000000000000F03F00000000000000407C01000000000000000000F03F0000000000000040FE libspatialite-4.1.1/test/sql_stmt_tests/makepoint-null2.testcase0000664000175000017500000000026612163502134022114 00000000000000makepoint-null2 :memory: #use in-memory database SELECT AsText(MakePoint(26.0, "world")); 1 # rows (not including the header row) 1 # columns AsText(MakePoint(26.0, "world")) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/dissolve9.testcase0000664000175000017500000000050512163502133021007 00000000000000dissolve - POINT Z :memory: #use in-memory database SELECT AsText(DissolveSegments(geom)),AsText(DissolvePoints(geom)) from (SELECT GeomFromText("POINTZ(1 2 4.3)") as geom) dummy; 1 # rows (not including the header row) 2 # columns AsText(DissolveSegments(geom)) AsText(DissolvePoints(geom)) POINT Z(1 2 4.3) POINT Z(1 2 4.3)libspatialite-4.1.1/test/sql_stmt_tests/geomfromkml22.testcase0000664000175000017500000000174512163502134021561 00000000000000From KML - MultiGeometry [Point, Line, Polygon] - 2D :memory: SELECT AsText(GeomFromKML("1,12,2 3,34,4 10,4 10,10 4,10 4,45,5 6,5 6,6 5,6 5,5")) 1 # rows 1 # column AsText(GeomFromKML("1,12,2 3,34,4 10,4 10,10 4,10 4,45,5 6,5 6,6 5,6 5,5")) GEOMETRYCOLLECTION(POINT(1 1), LINESTRING(2 2, 3 3), POLYGON((4 4, 10 4, 10 10, 4 10, 4 4), (5 5, 6 5, 6 6, 5 6, 5 5))) libspatialite-4.1.1/test/sql_stmt_tests/minz2.testcase0000664000175000017500000000024012163502134020122 00000000000000MinZ - bad blob :memory: #use in-memory database SELECT ST_MinZ(zeroblob(48)) 1 # rows (not including the header row) 1 # columns ST_MinZ(zeroblob(48)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/casttomulti6.testcase0000664000175000017500000000062312163502133021525 00000000000000casttomulti - POLYGON and POINT :memory: #use in-memory database SELECT AsText(CastToMulti(GeomFromText("GEOMETRYCOLLECTION(POLYGON((0 1, 2 1, 2 4, 0 4, 0 1)),POINT(4 2.3))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToMulti(GeomFromText("GEOMETRYCOLLECTION(POLYGON((0 1, 2 1, 2 4, 0 4, 0 1)),POINT(4 2.3))"))) GEOMETRYCOLLECTION(POINT(4 2.3), POLYGON((0 1, 2 1, 2 4, 0 4, 0 1))) libspatialite-4.1.1/test/sql_stmt_tests/casttosingle10.testcase0000664000175000017500000000043112163502133021724 00000000000000casttosingle - POLYGON :memory: #use in-memory database SELECT AsText(CastToSingle(GeomFromText("POLYGON((4 3, 1 1, 9 8, 4 3))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToSingle(GeomFromText("POLYGON((4 3, 1 1, 9 8, 4 3))"))) POLYGON((4 3, 1 1, 9 8, 4 3)) libspatialite-4.1.1/test/sql_stmt_tests/locatemeasure2.testcase0000664000175000017500000000036512163502134022006 00000000000000ST_Locate_Between_Measures - bad arg #2 :memory: #use in-memory database SELECT ST_Locate_Between_Measures(zeroblob(99), "alpha", 3) 1 # rows (not including the header row) 1 # columns ST_Locate_Between_Measures(zeroblob(99), "alpha", 3) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geomtype5.testcase0000664000175000017500000000046512163502134021012 00000000000000geometrytype5 - zeroblob :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT zeroblob(20) as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) (NULL) (NULL) (NULL)libspatialite-4.1.1/test/sql_stmt_tests/trivial.sqlite_RO0000664000175000017500000000400012163502134020621 00000000000000SQLite format 3@ - =StablenotmuchnotmuchCREATE TABLE notmuch (name varchar) %notmuchentrylibspatialite-4.1.1/test/sql_stmt_tests/casttoxy1.testcase0000664000175000017500000000024512163502133021026 00000000000000casttoxy - bad blob :memory: #use in-memory database SELECT CastToXY(zeroblob(99)) 1 # rows (not including the header row) 1 # columns CastToXY(zeroblob(99)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makeellipticsector24.testcase0000664000175000017500000000037212163502134023122 00000000000000makeellipticsector24 - text step :memory: #use in-memory database SELECT MakeEllipticSector(0, 0, 100, 200, 30, 60, 4326, 'alpha'); 1 # rows (not including the header row) 1 # columns MakeEllipticSector(0, 0, 100, 200, 30, 60, 4326, 'alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_tests/dissolve26.testcase0000664000175000017500000000106512163502133021070 00000000000000dissolve - Overlap points POLYGON ZM :memory: #use in-memory database SELECT AsText(DissolveSegments(geom)),AsText(DissolvePoints(geom)) from (SELECT GeomFromText("POLYGONZM((0 1 0 2, 0 2 1 3, 1 2 2 4, 1 2 3 5, 1 2 3 6, 1 2 3 6, 0 1 0 2))") as geom) dummy; 1 # rows (not including the header row) 2 # columns AsText(DissolveSegments(geom)) AsText(DissolvePoints(geom)) MULTILINESTRING ZM((0 1 0 2, 0 2 1 3), (0 2 1 3, 1 2 2 4), (1 2 2 4, 1 2 3 5), (1 2 3 5, 1 2 3 6), (1 2 3 6, 0 1 0 2)) MULTIPOINT ZM(0 1 0 2, 0 2 1 3, 1 2 2 4, 1 2 3 5, 1 2 3 6, 1 2 3 6, 0 1 0 2) libspatialite-4.1.1/test/sql_stmt_tests/setpoint22.testcase0000664000175000017500000000047612163502134021107 00000000000000ST_SetPoint() - M :memory: #use in-memory database SELECT AsText(SetPoint(GeomFromText('LINESTRINGM(0 0 1, 1 0 2, 1 1 3)'), 1, MakePoint(2, 3))) 1 # rows (not including the header row) 1 # columns AsText(SetPoint(GeomFromText('LINESTRINGM(0 0 1, 1 0 2, 1 1 3)'), 1, MakePoint(2, 3))) LINESTRING M(0 0 1, 2 3 0, 1 1 3) libspatialite-4.1.1/test/sql_stmt_tests/compressgeometry15.testcase0000664000175000017500000000102112163502133022635 00000000000000CompressGeometry - MULTILINESTRINGZM :memory: #use in-memory database SELECT Hex(CompressGeometry(GeomFromText("MULTILINESTRINGZM((1 2 2 1, 3 4 2 1))"))) 1 # rows (not including the header row) 1 # columns Hex(CompressGeometry(GeomFromText("MULTILINESTRINGZM((1 2 2 1, 3 4 2 1))"))) 000100000000000000000000F03F0000000000000040000000000000084000000000000010407CBD0B00000100000069FA4D0F0002000000000000000000F03F00000000000000400000000000000040000000000000F03F000000000000084000000000000010400000000000000040000000000000F03FFE libspatialite-4.1.1/test/sql_stmt_tests/wkb28.testcase0000664000175000017500000000237712163502134020035 00000000000000Hex Wkb: GeometryCollection XYZM (2 polygons) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONZM(POLYGONZM((10 10 100 1, 11 10 101 2, 11 11 102 3, 10 11 103 3, 10 10 100 1)), POLYGONZM((15 15 100 1, 16 15 101 2, 16 16 102 3, 15 16 103 3, 15 15 100 1)))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONZM(POLYGONZM((10 10 100 1, 11 10 101 2, 11 11 102 3, 10 11 103 3, 10 10 100 1)), POLYGONZM((15 15 100 1, 16 15 101 2, 16 16 102 3, 15 16 103 3, 15 15 100 1)))", 4326))); 01BF0B00000200000001BB0B00000100000005000000000000000000244000000000000024400000000000005940000000000000F03F00000000000026400000000000002440000000000040594000000000000000400000000000002640000000000000264000000000008059400000000000000840000000000000244000000000000026400000000000C059400000000000000840000000000000244000000000000024400000000000005940000000000000F03F01BB0B000001000000050000000000000000002E400000000000002E400000000000005940000000000000F03F00000000000030400000000000002E400000000000405940000000000000004000000000000030400000000000003040000000000080594000000000000008400000000000002E4000000000000030400000000000C0594000000000000008400000000000002E400000000000002E400000000000005940000000000000F03F libspatialite-4.1.1/test/sql_stmt_tests/assvg24.testcase0000664000175000017500000000054012163502133020356 00000000000000assvg - relative/absolute MultiLinestring :memory: #use in-memory database SELECT assvg(geom, 1) AS rel, assvg(geom, 0) AS abs FROM (SELECT GeomFromText("MULTILINESTRING((10 10, 15 10), (10 15, 10 10))", 4326) AS geom) dummy; 1 # rows (not including the header row) 2 # columns rel abs M 10 -10 l 5 0 M 10 -15 l 0 5 M 10 -10 L 15 -10 M 10 -15 L 10 -10 libspatialite-4.1.1/test/sql_stmt_tests/assvg2.testcase0000664000175000017500000000032712163502133020275 00000000000000assvg - 2 arg with SRID :memory: #use in-memory database SELECT assvg(GeomFromText("Point(1 2)", 4326), 1) 1 # rows (not including the header row) 1 # columns assvg(GeomFromText("Point(1 2)", 4326), 1) x="1" y="-2" libspatialite-4.1.1/test/sql_stmt_tests/makeellipticsector18.testcase0000664000175000017500000000036012163502134023122 00000000000000makeellipticsector18 - valid :memory: #use in-memory database SELECT ST_Area(MakeEllipticSector(0, 0, 100, 200, 30, 60)); 1 # rows (not including the header row) 1 # columns ST_Area(MakeEllipticSector(0, 0, 100, 200, 30, 60)) 5209.4453:4 libspatialite-4.1.1/test/sql_stmt_tests/casttoxym3.testcase0000664000175000017500000000035212163502133021204 00000000000000casttoxym - POINT :memory: #use in-memory database SELECT AsText(CastToXYM(GeomFromText("POINTZM(4 3 10 20)"))) 1 # rows (not including the header row) 1 # columns AsText(CastToXYM(GeomFromText("POINTZM(4 3 10 20)"))) POINT M(4 3 20) libspatialite-4.1.1/test/sql_stmt_tests/pointn11.testcase0000664000175000017500000000050412163502134020537 00000000000000pointN - nasty geometry :memory: #use in-memory database SELECT AsText(PointN(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"), 1)); 1 # rows (not including the header row) 1 # columns AsText(PointN(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"), 1)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/badGeoJSON5.testcase0000664000175000017500000000056112163502133021030 00000000000000bad GeoJSON: MultiLinestring :memory: #use in-memory database SELECT GeomFromGeoJSON('{"type":"MultiLineString","coordinates":[[[1.1,2.2],[3.3,4.4]],[[5.5,6.6],[7.7,8.800000000000001]]]'); 1 # rows (not including the header row) 1 # columns GeomFromGeoJSON('{"type":"MultiLineString","coordinates":[[[1.1,2.2],[3.3,4.4]],[[5.5,6.6],[7.7,8.800000000000001]]]'):0 (NULL) libspatialite-4.1.1/test/sql_stmt_tests/casttoxyzm6.testcase0000664000175000017500000000035012163502133021377 00000000000000casttoxyzm - POINT :memory: #use in-memory database SELECT AsText(CastToXYZM(GeomFromText("POINTM(4 3 20)"))) 1 # rows (not including the header row) 1 # columns AsText(CastToXYZM(GeomFromText("POINTM(4 3 20)"))) POINT ZM(4 3 0 20) libspatialite-4.1.1/test/sql_stmt_tests/pointfromtext2.testcase0000664000175000017500000000043512163502134022075 00000000000000pointfromtext2 :memory: #use in-memory database SELECT AsWkt(PointFromText("POINT(-71.1043443253471 42.315067601582900)", 4326), 4); 1 # rows (not including the header row) 1 # columns AsWkt(PointFromText("POINT(-71.1043443253471 42.315067601582900)", 4326), 4) POINT(-71.1043 42.3151)libspatialite-4.1.1/test/sql_stmt_tests/npoints4.testcase0000664000175000017500000000045212163502134020646 00000000000000npoints - Point plus linestring :memory: #use in-memory database SELECT ST_NPoints(GeomFromText("GeometryCollection(POINT(1 2), LINESTRING(1 3, 4 6, 7 9))")) 1 # rows (not including the header row) 1 # columns ST_NPoints(GeomFromText("GeometryCollection(POINT(1 2), LINESTRING(1 3, 4 6, 7 9))")) 4 libspatialite-4.1.1/test/sql_stmt_tests/geomfromtext12.testcase0000664000175000017500000000052412163502134021753 00000000000000geomfromtext12 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTION(MULTILINESTRING((0 1, 2 3), (4 5, 6 7)))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTION(MULTILINESTRING((0 1, 2 3), (4 5, 6 7)))')); GEOMETRYCOLLECTION(LINESTRING(0 1, 2 3), LINESTRING(4 5, 6 7)) libspatialite-4.1.1/test/sql_stmt_tests/srid5.testcase0000664000175000017500000000021212163502134020110 00000000000000SRID - non-geometry :memory: #use in-memory database SELECT SRID(100) 1 # rows (not including the header row) 1 # columns SRID(100) (NULL)libspatialite-4.1.1/test/sql_stmt_tests/geomtype6.testcase0000664000175000017500000000043412163502134021007 00000000000000geometrytype6 - LINESTRING :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom) from (SELECT GeomFromText("LINESTRING(4 0, 4 4, 8 4)") as geom) dummy; 1 # rows (not including the header row) 2 # columns GeometryType(geom) CoordDimension(geom) LINESTRING XYlibspatialite-4.1.1/test/sql_stmt_tests/garsmbr32.testcase0000664000175000017500000000024512163502134020672 00000000000000garsmbr - bad keypad number :memory: #use in-memory database SELECT GARSMbr("001AA20") 1 # rows (not including the header row) 1 # columns GARSMbr("001AA20") (NULL) libspatialite-4.1.1/test/sql_stmt_tests/envintersects4.testcase0000664000175000017500000000034312163502134022047 00000000000000ST_EnvIntersects - bad arg #4 :memory: #use in-memory database SELECT ST_EnvIntersects(zeroblob(50), 2, 2, "alpha", 3) 1 # rows (not including the header row) 1 # columns ST_EnvIntersects(zeroblob(50), 2, 2, "alpha", 3) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/collectextract1.testcase0000664000175000017500000000037312163502133022172 00000000000000Collection Extract - Point :memory: #use in-memory database SELECT AsText(CollectionExtract(GeomFromText("POINT(1 2)"), 1)); 1 # rows (not including the header row) 1 # columns AsText(CollectionExtract(GeomFromText("POINT(1 2)"), 1)) MULTIPOINT(1 2) libspatialite-4.1.1/test/sql_stmt_tests/st_y7.testcase0000664000175000017500000000041612163502134020135 00000000000000ST_Y7 :memory: #use in-memory database SELECT ST_Y(MakePointZ(-71.1043443253471, 42.3150676015829, 0.0038723129645, 4326)); 1 # rows (not including the header row) 1 # columns ST_Y(MakePointZ(-71.1043443253471, 42.3150676015829, 0.0038723129645, 4326)) 42.3150676015829 libspatialite-4.1.1/test/sql_stmt_tests/reflectcoords8.testcase0000664000175000017500000000043312163502134022015 00000000000000reflectcoords8 :memory: #use in-memory database SELECT AsText(ReflectCoords(GeomFromText("LINESTRING(-1 -1, 1 0, 0 1)"), 1, 1)); 1 # rows (not including the header row) 1 # columns AsText(ReflectCoords(GeomFromText("LINESTRING(-1 -1, 1 0, 0 1)"), 1, 1)) LINESTRING(1 1, -1 0, 0 -1) libspatialite-4.1.1/test/sql_stmt_tests/makearc5.testcase0000664000175000017500000000027212163502134020560 00000000000000makearc5 - text cy :memory: #use in-memory database SELECT MakeArc(0, 'alpha', 100, 30, 60); 1 # rows (not including the header row) 1 # columns MakeArc(0, 'alpha', 100, 30, 60) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makeline2.testcase0000664000175000017500000000031112163502134020731 00000000000000makeline2 :memory: #use in-memory database SELECT AsText(MakeLine(GeomFromText("POINT(0 0)"))); 1 # rows (not including the header row) 1 # columns AsText(MakeLine(GeomFromText("POINT(0 0)"))) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/fromWkb9.testcase0000664000175000017500000000077412163502134020577 00000000000000fromWkb - mandatory POLYGON :memory: #use in-memory database SELECT Hex(PolygonFromWkb(AsBinary(GeomFromText("POLYGON((1 2, 3 1, 4 4, 1 2))")))) 1 # rows (not including the header row) 1 # columns Hex(PolygonFromWkb(AsBinary(GeomFromText("POLYGON((1 2, 3 1, 4 4, 1 2))")))) 000100000000000000000000F03F000000000000F03F000000000000104000000000000010407C030000000100000004000000000000000000F03F00000000000000400000000000000840000000000000F03F00000000000010400000000000001040000000000000F03F0000000000000040FE libspatialite-4.1.1/test/sql_stmt_tests/fromgml16.testcase0000664000175000017500000000254512163502134020707 00000000000000FromGML - GeometryCollection v3 (no namespaces) :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('8 89 9 10 100 0 5 0 5 5 0 5 0 01 1 2 1 2 2 1 2 1 1')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('8 89 9 10 100 0 5 0 5 5 0 5 0 01 1 2 1 2 2 1 2 1 1')):0 SRID=4326;GEOMETRYCOLLECTION(POINT(8 8),LINESTRING(9 9,10 10),POLYGON((0 0,5 0,5 5,0 5,0 0),(1 1,2 1,2 2,1 2,1 1))) libspatialite-4.1.1/test/sql_stmt_tests/collect29.testcase0000664000175000017500000000070012163502133020663 00000000000000collect - LineStringZ, LineStringZM :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("LINESTRINGZ(1 2 4, 3 4 2)"), GeomFromText("LINESTRINGZM(4 5 3.2 1, 1 2 4.6 2, 4 2 3.1 3)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("LINESTRINGZ(1 2 4, 3 4 2)"), GeomFromText("LINESTRINGZM(4 5 3.2 1, 1 2 4.6 2, 4 2 3.1 3)"))) MULTILINESTRING ZM((1 2 4 0, 3 4 2 0), (4 5 3.2 1, 1 2 4.6 2, 4 2 3.1 3)) libspatialite-4.1.1/test/sql_stmt_tests/fromgml50.testcase0000664000175000017500000000117212163502134020700 00000000000000FromGML - MultiPoint v2 (no namespace) :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('1,23,45,6')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('1,23,45,6')):0 SRID=4326;MULTIPOINT(1 2,3 4,5 6) libspatialite-4.1.1/test/sql_stmt_tests/scalecoords3.testcase0000664000175000017500000000145412163502134021457 00000000000000scale coords - LINESTRINGZ :memory: #use in-memory database SELECT AsText(ScaleCoords(geom, 0)), AsText(ScaleCoords(geom, 0.0)), AsText(ScaleCoords(geom, 2, 3.0)), AsText(ScaleCoords(geom, 1.0, -1)), ScaleCoords(zeroblob(20), 10), ScaleCoords(geom, "hello"), ScaleCoords(geom, 1, "hello"), ScaleCoords("foo", 2) FROM (SELECT GeomFromText("LINESTRINGZ(1 2 1, 4 5 2)") as geom) dummy; 1 # rows (not including the header row) 8 # columns AsText(ScaleCoords(geom, 0)) AsText(ScaleCoords(geom, 0.0)) AsText(ScaleCoords(geom, 2, 3.0)) AsText(ScaleCoords(geom, 1.0, -1)) ScaleCoords(zeroblob(20), 10) ScaleCoords(geom, "hello") ScaleCoords(geom, 1, "hello") ScaleCoords("foo", 2) LINESTRING Z(0 0 1, 0 0 2) LINESTRING Z(0 0 1, 0 0 2) LINESTRING Z(2 6 1, 8 15 2) LINESTRING Z(1 -2 1, 4 -5 2) (NULL) (NULL) (NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/st_m8.testcase0000664000175000017500000000030212163502134020114 00000000000000ST_M8 :memory: #use in-memory database SELECT ST_M(MakePointZ(136, -35, 0.0038723129645)); 1 # rows (not including the header row) 1 # columns ST_M(MakePointZ(136, -35, 0.0038723129645)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geomtype4.testcase0000664000175000017500000000045312163502134021006 00000000000000geometrytype4 - POINTM :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom) from (SELECT GeomFromText("POINTM(-71.1043443253471 42.315067601582900 3)") as geom) dummy; 1 # rows (not including the header row) 2 # columns GeometryType(geom) CoordDimension(geom) POINT M XYMlibspatialite-4.1.1/test/sql_stmt_tests/sanitizeGeometry12.testcase0000664000175000017500000000076612163502134022605 00000000000000Sanitize Geometry - POLYGON M - point combinations :memory: #use in-memory database SELECT AsEWkt(SanitizeGeometry(GeomFromText("POLYGON M((-70 42 2, -71 42 2, -70 41 2, -70 42 3, -70 42 3, -70 42 4, -71 42 2, -70 42 2))", 4326))) 1 # rows (not including the header row) 1 # columns AsEWkt(SanitizeGeometry(GeomFromText("POLYGON M((-70 42 2, -71 42 2, -70 41 2, -70 42 3, -70 42 3, -70 42 4, -71 42 2, -70 42 2))", 4326))) SRID=4326;POLYGONM((-70 42 2,-71 42 2,-70 41 2,-70 42 3,-71 42 2,-70 42 2)) libspatialite-4.1.1/test/sql_stmt_tests/geodesic-len3.testcase0000664000175000017500000000033312163502134021507 00000000000000geodesic length linestringZ :memory: SELECT GeodesicLength(GeomFromText("LINESTRINGZ(0 0 4, 1 0 2, 0 0 1)", 4326)); 1 # rows 1 # column GeodesicLength(GeomFromText("LINESTRINGZ(0 0 4, 1 0 2, 0 0 1)", 4326)) 222638.98:9 libspatialite-4.1.1/test/sql_stmt_tests/casttotext12.testcase0000664000175000017500000000027612163502133021440 00000000000000CastToText() - DOUBLE, DOUBLE zero_pad :memory: #use in-memory database SELECT CastToText(123.456, 1.5) 1 # rows (not including the header row) 1 # columns CastToText(123.456, 1.5) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/SridFromAuthCRS5.testcase0000664000175000017500000000031212163502133022066 00000000000000SridFromAuthCRS - bad auth :memory: #use in-memory database SELECT SridFromAuthCRS('no such authority', 1) 1 # rows (not including the header row) 1 # columns SridFromAuthCRS('no such authority', 1) -1 libspatialite-4.1.1/test/sql_stmt_tests/makecircularstripe18.testcase0000664000175000017500000000036412163502134023134 00000000000000makecircularstripe18 - BLOB srid :memory: #use in-memory database SELECT MakeCircularStripe(0, 0, 100, 90, 30, 60, zeroblob(4)); 1 # rows (not including the header row) 1 # columns MakeCircularStripe(0, 0, 100, 90, 30, 60, zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/asgeojson7.testcase0000664000175000017500000000043412163502133021146 00000000000000asgeojson - bad args (3 arg, out of range option) :memory: #use in-memory database SELECT asgeojson(GeomFromText("Point(1 2)", 4326), 4, 22); 1 # rows (not including the header row) 1 # columns asgeojson(GeomFromText("Point(1 2)", 4326), 4, 22) {"type":"Point","coordinates":[1,2]}:0 libspatialite-4.1.1/test/sql_stmt_tests/geomtype20.testcase0000664000175000017500000000066212163502134021066 00000000000000geometrytype - MULTILINESTRINGM :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("MULTILINESTRINGM((30 20 1, 10 40 1, 45 40 1, 30 20 1),(15 5 2, 40 10 2, 10 20 2, 5 10 2, 15 5 2))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) MULTILINESTRING M XYM MULTILINESTRINGlibspatialite-4.1.1/test/sql_stmt_tests/casttoint4.testcase0000664000175000017500000000035312163502133021163 00000000000000CastToInteger() - TEXT valid :memory: #use in-memory database SELECT CastToInteger('123'), TypeOf(CastToInteger('123')) 1 # rows (not including the header row) 2 # columns CastToInteger('123') TypeOf(CastToInteger('123')) 123 integer libspatialite-4.1.1/test/sql_stmt_tests/badKML5.testcase0000664000175000017500000000100312163502133020237 00000000000000bad KML: MultiLinestring :memory: #use in-memory database SELECT GeomFromKML('1.1,2.2 3.3,4.45.5,6.6 7.7,8.8000000000000011.1,2.2 3.3,4.45.5,6.6 7.7,8.80000000000000110,1011,11 12,120,0 4,0 4,4 0,4 0,01,1 2,1 2,2 1,2 1,110,1011,11 12,120,0 4,0 4,4 0,4 0,01,1 2,1 2,2 1,2 1,1-112.3372510731295,36.14888505105317,1784 -112.3356128688403,36.14781540589019,1784 -112.3368169371048,36.14658677734382,1784 -112.3384408457543,36.14762778914076,1784 -112.3372510731295,36.14888505105317,1784")) 1 # rows 1 # column AsText(GeomFromKML("-112.3372510731295,36.14888505105317,1784 -112.3356128688403,36.14781540589019,1784 -112.3368169371048,36.14658677734382,1784 -112.3384408457543,36.14762778914076,1784 -112.3372510731295,36.14888505105317,1784")) POLYGON Z((-112.337251 36.148885 1784, -112.335613 36.147815 1784, -112.336817 36.146587 1784, -112.338441 36.147628 1784, -112.337251 36.148885 1784))libspatialite-4.1.1/test/sql_stmt_tests/compressgeometry1.testcase0000664000175000017500000000052612163502133022561 00000000000000CompressGeometry :memory: #use in-memory database SELECT Hex(CompressGeometry(GeomFromText("Point(1 2)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(CompressGeometry(GeomFromText("Point(1 2)", 4326))) 0001E6100000000000000000F03F0000000000000040000000000000F03F00000000000000407C01000000000000000000F03F0000000000000040FE libspatialite-4.1.1/test/sql_stmt_tests/asbinary5.testcase0000664000175000017500000000056612163502133020772 00000000000000asbinary - multipointz :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("MultiPointZ(1 2 3,2 4 4)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("MultiPointZ(1 2 3,2 4 4)", 4326))) 01EC0300000200000001E9030000000000000000F03F0000000000000040000000000000084001E9030000000000000000004000000000000010400000000000001040 libspatialite-4.1.1/test/sql_stmt_tests/mbr25.testcase0000664000175000017500000000045112163502134020016 00000000000000MbrDisjoint - Line + Point inside :memory: #use in-memory database SELECT MbrDisjoint(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(0.5 1)")); 1 # rows (not including the header row) 1 # columns MbrDisjoint(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(0.5 1)")) # header 0libspatialite-4.1.1/test/sql_stmt_tests/st_y3.testcase0000664000175000017500000000022212163502134020124 00000000000000ST_Y - text :memory: #use in-memory database SELECT Y("hello world"); 1 # rows (not including the header row) 1 # columns Y("hello world") (NULL) libspatialite-4.1.1/test/sql_stmt_tests/extent1.testcase0000664000175000017500000000021212163502134020452 00000000000000extent - non-blob :memory: #use in-memory database SELECT Extent(3) 1 # rows (not including the header row) 1 # columns Extent(3) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/addpoint18.testcase0000664000175000017500000000054512163502133021045 00000000000000ST_AddPoint() - not a point :memory: #use in-memory database SELECT ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), GeomFromText('POLYGON((10 10, 11 10, 11 11, 10 11, 10 10))'), 1) 1 # rows (not including the header row) 1 # columns ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), GeomFromText('POLYGON((10 10, 11 10, 11 11, 10 11, 10 10))'), 1) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/forcenull5.testcase0000664000175000017500000000024712163502134021150 00000000000000ForceAsNull() - DOUBLE/INTEGER :memory: #use in-memory database SELECT ForceAsNull(1.5, 1) 1 # rows (not including the header row) 1 # columns ForceAsNull(1.5, 1) 1.5 libspatialite-4.1.1/test/sql_stmt_tests/ewkb1.testcase0000664000175000017500000000033412163502134020100 00000000000000EWkb: Point XY :memory: #use in-memory database SELECT AsText(GeomFromEWkb('0101000020E61000009A9999999999F13F9A99999999990140')) AS wkt_geom; 1 # rows (not including the header row) 1 # columns wkt_geom POINT(1.1 2.2) libspatialite-4.1.1/test/sql_stmt_tests/casttopoint2.testcase0000664000175000017500000000023012163502133021512 00000000000000casttopoint - non-blob :memory: #use in-memory database SELECT CastToPoint(4) 1 # rows (not including the header row) 1 # columns CastToPoint(4) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/translate9.testcase0000664000175000017500000000050312163502134021153 00000000000000translate - Linestring XYZ :memory: #use in-memory database SELECT AsText(ST_Translate(GeomFromText("LINESTRINGZ(1 2 10, 3 4 10)"), 1.4, 3.9, 5.3)); 1 # rows (not including the header row) 1 # columns AsText(ST_Translate(GeomFromText("LINESTRINGZ(1 2 10, 3 4 10)"), 1.4, 3.9, 5.3)) LINESTRING Z(2.4 5.9 15.3, 4.4 7.9 15.3) libspatialite-4.1.1/test/sql_stmt_tests/assvg18.testcase0000664000175000017500000000047312163502133020366 00000000000000assvg - relative/absolute Linestring XY :memory: #use in-memory database SELECT assvg(geom, 1) AS rel, assvg(geom, 0) AS abs FROM (SELECT GeomFromText("LINESTRING(1 2, 4 3, 5 6, 8 7)", 4326) AS geom) dummy; 1 # rows (not including the header row) 2 # columns rel abs M 1 -2 l 3 -1 1 -3 3 -1 M 1 -2 L 4 -3 5 -6 8 -7 libspatialite-4.1.1/test/sql_stmt_tests/rotatecoords8.testcase0000664000175000017500000000154412163502134021673 00000000000000rotate coords - Simple polygonz :memory: #use in-memory database SELECT AsText(RotateCoords(geom, 0)), AsText(RotateCoords(geom, 90.0)), AsText(RotateCoords(geom, 180.0)), AsText(RotateCoords(geom, -90)), RotateCoords(zeroblob(20), 10), RotateCoords(geom, "hello"), RotateCoords("foo", 30) FROM (SELECT GeomFromText("POLYGONZ((0 0 1, 1 1 2, 1 2 3, -1 1 4, 0 0 1))") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(RotateCoords(geom, 0)) AsText(RotateCoords(geom, 90.0)) AsText(RotateCoords(geom, 180.0)) AsText(RotateCoords(geom, -90)) RotateCoords(zeroblob(20), 10) RotateCoords(geom, "hello") RotateCoords("foo", 30) POLYGON Z((0 0 1, 1 1 2, 1 2 3, -1 1 4, 0 0 1)) POLYGON Z((0 0 1, 1 -1 2, 2 -1 3, 1 1 4, 0 0 1)) POLYGON Z((0 0 1, -1 -1 2, -1 -2 3, 1 -1 4, 0 0 1)) POLYGON Z((0 0 1, -1 1 2, -2 1 3, -1 -1 4, 0 0 1)) (NULL) (NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makecircularstripe10.testcase0000664000175000017500000000034312163502134023121 00000000000000makecircularstripe10 - text start :memory: #use in-memory database SELECT MakeCircularStripe(0, 0, 100, 90, 'text', 60); 1 # rows (not including the header row) 1 # columns MakeCircularStripe(0, 0, 100, 90, 'text', 60) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/collect18.testcase0000664000175000017500000000045512163502133020670 00000000000000collect - PointM, Point :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POINTM(4 5 3.2)"), GeomFromText("POINT(1 2)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POINTM(4 5 3.2)"), GeomFromText("POINT(1 2)"))) MULTIPOINT M(4 5 3.2, 1 2 0) libspatialite-4.1.1/test/sql_stmt_tests/wkb24.testcase0000664000175000017500000000141512163502134020021 00000000000000Hex Wkb: GeometryCollection XYZM (single polygon) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONZM(POLYGONZM((10 10 100 1, 11 10 101 2, 11 11 102 3, 10 11 103 3, 10 10 100 1)))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONZM(POLYGONZM((10 10 100 1, 11 10 101 2, 11 11 102 3, 10 11 103 3, 10 10 100 1)))", 4326))); 01BF0B00000100000001BB0B00000100000005000000000000000000244000000000000024400000000000005940000000000000F03F00000000000026400000000000002440000000000040594000000000000000400000000000002640000000000000264000000000008059400000000000000840000000000000244000000000000026400000000000C059400000000000000840000000000000244000000000000024400000000000005940000000000000F03F libspatialite-4.1.1/test/sql_stmt_tests/compressgeometry2.testcase0000664000175000017500000000027512163502133022563 00000000000000CompressGeometry - bad blob :memory: #use in-memory database SELECT CompressGeometry(zeroblob(50)) 1 # rows (not including the header row) 1 # columns CompressGeometry(zeroblob(50)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/shiftlongitude21.testcase0000664000175000017500000000131012163502134022255 00000000000000shiftlongitude - polygonz, negative interior rings :memory: #use in-memory database SELECT AsText(ST_Shift_Longitude(GeomFromText("POLYGONZ((185 0 4, 184 10 5, 175 10 5, 176 0 5, 185 0 4),(-177 1 4, -177 2 5, -178 2 6, -178 1 9, -177 1 4),(-179 4 0, 179 4 0, 179 5 0, -179 5 0, -179 4 0))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(ST_Shift_Longitude(GeomFromText("POLYGONZ((185 0 4, 184 10 5, 175 10 5, 176 0 5, 185 0 4),(-177 1 4, -177 2 5, -178 2 6, -178 1 9, -177 1 4),(-179 4 0, 179 4 0, 179 5 0, -179 5 0, -179 4 0))", 4326))) POLYGON Z((185 0 4, 184 10 5, 175 10 5, 176 0 5, 185 0 4), (183 1 4, 183 2 5, 182 2 6, 182 1 9, 183 1 4), (181 4 0, 179 4 0, 179 5 0, 181 5 0, 181 4 0)) libspatialite-4.1.1/test/sql_stmt_tests/togars8.testcase0000664000175000017500000000034712163502134020462 00000000000000togars - southwest, plus a bit :memory: #use in-memory database SELECT ToGARS(GeomFromText("LINESTRING(0 0, 4 3)", 4326)) 1 # rows (not including the header row) 1 # columns ToGARS(GeomFromText("LINESTRING(0 0, 4 3)", 4326)) (NULL)libspatialite-4.1.1/test/sql_stmt_tests/shiftcoords4.testcase0000664000175000017500000000027612163502134021507 00000000000000shiftcoords - text input (null) :memory: #use in-memory database SELECT ShiftCoords("shift", -1, -3); 1 # rows (not including the header row) 1 # columns ShiftCoords("shift", -1, -3) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/dissolve22.testcase0000664000175000017500000000060112163502133021057 00000000000000dissolve - Overlap points :memory: #use in-memory database SELECT AsText(DissolveSegments(geom)),AsText(DissolvePoints(geom)) from (SELECT GeomFromText("LINESTRING(0 1, 0 2, 1 2, 1 2)") as geom) dummy; 1 # rows (not including the header row) 2 # columns AsText(DissolveSegments(geom)) AsText(DissolvePoints(geom)) MULTILINESTRING((0 1, 0 2), (0 2, 1 2)) MULTIPOINT(0 1, 0 2, 1 2, 1 2) libspatialite-4.1.1/test/sql_stmt_tests/collect2.testcase0000664000175000017500000000031212163502133020571 00000000000000collect - first arg null :memory: #use in-memory database SELECT AsText(COLLECT(null, MakePoint(2,3))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(null, MakePoint(2,3))) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/dimension6.testcase0000664000175000017500000000043712163502133021145 00000000000000dimension6 - POLYGON :memory: #use in-memory database SELECT Dimension(PolygonFromText("POLYGON((-71 42, -70 41, -70 42, -70 42, -71 42))", 4326)); 1 # rows (not including the header row) 1 # columns Dimension(PolygonFromText("POLYGON((-71 42, -70 41, -70 42, -70 42, -71 42))", 4326)) 2libspatialite-4.1.1/test/sql_stmt_tests/geomtype59.testcase0000664000175000017500000000044012163502134021074 00000000000000geometrytype - MULTIPOINT - one point :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom) from (SELECT GeomFromText("MULTIPOINT(-71 42)") as geom) dummy; 1 # rows (not including the header row) 2 # columns GeometryType(geom) CoordDimension(geom) MULTIPOINT XYlibspatialite-4.1.1/test/sql_stmt_tests/fromWkb18.testcase0000664000175000017500000000120412163502134020644 00000000000000fromWkb - MULTILINESTRING with SRID :memory: #use in-memory database SELECT Hex(MultiLinestringFromWkb(AsBinary(GeomFromText("MULTILINESTRING((1 2, 2 1),(0 0, 2 5, 4 2))", 4326)), 4326)) 1 # rows (not including the header row) 1 # columns Hex(MultiLinestringFromWkb(AsBinary(GeomFromText("MULTILINESTRING((1 2, 2 1),(0 0, 2 5, 4 2))", 4326)), 4326)) 0001E610000000000000000000000000000000000000000000000000104000000000000014407C0500000002000000690200000002000000000000000000F03F00000000000000400000000000000040000000000000F03F690200000003000000000000000000000000000000000000000000000000000040000000000000144000000000000010400000000000000040FE libspatialite-4.1.1/test/sql_stmt_tests/makeellipticarc26.testcase0000664000175000017500000000043312163502134022370 00000000000000makeellipticarc26 - valid step :memory: #use in-memory database SELECT ST_Length(MakeEllipticArc(0.0, 0.0, 100.0, 200.0, 30.0, 60.0, 4326, 1.0)); 1 # rows (not including the header row) 1 # columns ST_Length(MakeEllipticArc(0.0, 0.0, 100.0, 200.0, 30.0, 60.0, 4326, 1.0)) 82.4595:4 libspatialite-4.1.1/test/sql_stmt_tests/locatemeasure9.testcase0000664000175000017500000000053412163502134022013 00000000000000ST_Locate_Between_Measures - Polygon :memory: #use in-memory database SELECT ST_Locate_Between_Measures(GeomFromText('POLYGONM((0 0 10, 1 0 11, 1 1 12, 0 1 13, 0 0 10))'), 20.1, 30); 1 # rows (not including the header row) 1 # columns ST_Locate_Between_Measures(GeomFromText('POLYGONM((0 0 10, 1 0 11, 1 1 12, 0 1 13, 0 0 10))'), 20.1, 30) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makeellipticarc24.testcase0000664000175000017500000000036112163502134022366 00000000000000makeellipticarc24 - text step :memory: #use in-memory database SELECT MakeEllipticArc(0, 0, 100, 200, 30, 60, 4326, 'alpha'); 1 # rows (not including the header row) 1 # columns MakeEllipticArc(0, 0, 100, 200, 30, 60, 4326, 'alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_tests/casttoxyzm2.testcase0000664000175000017500000000022512163502133021374 00000000000000casttoxyzm - non-blob :memory: #use in-memory database SELECT CastToXYZM(4) 1 # rows (not including the header row) 1 # columns CastToXYZM(4) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geomfromtext41.testcase0000664000175000017500000000105612163502134021756 00000000000000geomfromtext41 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONM(GEOMETRYCOLLECTIONM(POINTM(0 0 9), LINESTRINGM(1 1 9, 2 2 9)), GEOMETRYCOLLECTIONM(POINTM(3 3 9), LINESTRINGM(4 4 9, 5 5 9)))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTIONM(GEOMETRYCOLLECTIONM(POINTM(0 0 9), LINESTRINGM(1 1 9, 2 2 9)), GEOMETRYCOLLECTIONM(POINTM(3 3 9), LINESTRINGM(4 4 9, 5 5 9)))')); GEOMETRYCOLLECTION M(POINT M(0 0 9), POINT M(3 3 9), LINESTRING M(1 1 9, 2 2 9), LINESTRING M(4 4 9, 5 5 9)) libspatialite-4.1.1/test/sql_stmt_tests/makecircularsector22.testcase0000664000175000017500000000037012163502134023115 00000000000000makecircularsector21 - BLOB step :memory: #use in-memory database SELECT MakeCircularSector(0, 0, 100, 30, 60, 4326, zeroblob(4)); 1 # rows (not including the header row) 1 # columns MakeCircularSector(0, 0, 100, 30, 60, 4326, zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/sanitizeGeometry6.testcase0000664000175000017500000000055712163502134022526 00000000000000Sanitize Geometry - POLYGON :memory: #use in-memory database SELECT AsEWkt(SanitizeGeometry(GeomFromText("POLYGON((-71 42, -70 41, -70 42, -70 42, -71 42))", 4326))) 1 # rows (not including the header row) 1 # columns AsEWkt(SanitizeGeometry(GeomFromText("POLYGON((-71 42, -70 41, -70 42, -70 42, -71 42))", 4326))) SRID=4326;POLYGON((-71 42,-70 41,-70 42,-71 42)) libspatialite-4.1.1/test/sql_stmt_tests/geomtype17.testcase0000664000175000017500000000053312163502134021071 00000000000000geometrytype - MULTILINESTRING :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom) from (SELECT GeomFromText("MULTILINESTRING ((30 20, 10 40, 45 40, 30 20),(15 5, 40 10, 10 20, 5 10, 15 5))") as geom) dummy; 1 # rows (not including the header row) 2 # columns GeometryType(geom) CoordDimension(geom) MULTILINESTRING XYlibspatialite-4.1.1/test/sql_stmt_tests/fromgml38.testcase0000664000175000017500000000063112163502134020705 00000000000000FromGML - polygon, missing poslist :memory: #use in-memory database SELECT AsText(GeomFromGml('')) 1 # rows (not including the header row) 1 # columns AsText(GeomFromGml('')):0 (NULL) libspatialite-4.1.1/test/sql_stmt_tests/buildcirclembr10.testcase0000664000175000017500000000027612163502133022216 00000000000000buildcirclembr - null args / no SRID :memory: #use in-memory database SELECT BuildCircleMbr(5, 6, NULL) 1 # rows (not including the header row) 1 # columns BuildCircleMbr(5, 6, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/reflectcoords3.testcase0000664000175000017500000000035012163502134022006 00000000000000reflectcoords3 :memory: #use in-memory database SELECT AsText(ReflectCoords(GeomFromText("POINT(1 2)"), 0, 1)); 1 # rows (not including the header row) 1 # columns AsText(ReflectCoords(GeomFromText("POINT(1 2)"), 0, 1)) POINT(1 -2) libspatialite-4.1.1/test/sql_stmt_tests/garsmbr13.testcase0000664000175000017500000000023012163502134020663 00000000000000garsmbr - short text :memory: #use in-memory database SELECT GARSMbr("erin") 1 # rows (not including the header row) 1 # columns GARSMbr("erin") (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makepoint1.testcase0000664000175000017500000000025712163502134021143 00000000000000makepoint1 :memory: #use in-memory database SELECT AsText(MakePoint(136, -35)); 1 # rows (not including the header row) 1 # columns AsText(MakePoint(136, -35)) POINT(136 -35) libspatialite-4.1.1/test/sql_stmt_tests/linefromtext1.testcase0000664000175000017500000000046412163502134021674 00000000000000linefromtext1 :memory: #use in-memory database SELECT AsWkt(LineFromText("LINESTRING(-71.1043443253471 42.315067601582900, -71 42)"), 4); 1 # rows (not including the header row) 1 # columns AsWkt(LineFromText("LINESTRING(-71.1043443253471 42.315067601582900, -71 42)"), 4) LINESTRING(-71.1043 42.3151,-71 42)libspatialite-4.1.1/test/sql_stmt_tests/setpoint9.testcase0000664000175000017500000000042212163502134021023 00000000000000ST_SetPoint() - BLOB index :memory: #use in-memory database SELECT ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), zeroblob(4), NULL) 1 # rows (not including the header row) 1 # columns ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), zeroblob(4), NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/removepoint7.testcase0000664000175000017500000000040112163502134021520 00000000000000ST_RemovePoint() - DOUBLE index :memory: #use in-memory database SELECT ST_RemovePoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1.5) 1 # rows (not including the header row) 1 # columns ST_RemovePoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1.5) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makepoint-null3.testcase0000664000175000017500000000030212163502134022104 00000000000000makepoint-null3 :memory: #use in-memory database SELECT AsText(MakePoint(26.0, "world", 4326)); 1 # rows (not including the header row) 1 # columns AsText(MakePoint(26.0, "world", 4326)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/collect24.testcase0000664000175000017500000000066512163502133020670 00000000000000collect - LineString, LineStringZM :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("Linestring(1 2, 3 4)"), GeomFromText("LINESTRINGZM(4 5 3.2 6, 1 2 4.6 8, 4 2 3.1 9)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("Linestring(1 2, 3 4)"), GeomFromText("LINESTRINGZM(4 5 3.2 6, 1 2 4.6 8, 4 2 3.1 9)"))) MULTILINESTRING ZM((1 2 0 0, 3 4 0 0), (4 5 3.2 6, 1 2 4.6 8, 4 2 3.1 9)) libspatialite-4.1.1/test/sql_stmt_tests/asewkb17.testcase0000664000175000017500000000300312163502133020506 00000000000000asewkb - GEOMETRYCOLLECTION, polygonz and pointz :memory: #use in-memory database SELECT Hex(AsEWKB(GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(0 1 3), POLYGONZ((0 0 0,10 0 0,10 10 0,0 10 0,0 0 0),(1 1 0,2 2 0, 2 1 0, 1 1 0)))", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsEWKB(GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(0 1 3), POLYGONZ((0 0 0,10 0 0,10 10 0,0 10 0,0 0 0),(1 1 0,2 2 0, 2 1 0, 1 1 0)))", 4326))) 535249443D343332363B3031303730303030383030323030303030303031303130303030383030303030303030303030303030303030303030303030303030303030463033463030303030303030303030303038343030313033303030303830303230303030303030353030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303234343030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303234343030303030303030303030303032343430303030303030303030303030303030303030303030303030303030303030303030303030303030303030303032343430303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303034303030303030303030303030303030303030463033463030303030303030303030304630334630303030303030303030303030303030303030303030303030303030303034303030303030303030303030303030343030303030303030303030303030303030303030303030303030303030303034303030303030303030303030304630334630303030303030303030303030303030303030303030303030303030463033463030303030303030303030304630334630303030303030303030303030303030 libspatialite-4.1.1/test/sql_stmt_tests/SridFromAuthCRS6.testcase0000664000175000017500000000030612163502133022072 00000000000000SridFromAuthCRS - no such id :memory: #use in-memory database SELECT SridFromAuthCRS('gfoss.it', 9999999) 1 # rows (not including the header row) 1 # columns SridFromAuthCRS('gfoss.it', 9999999) -1 libspatialite-4.1.1/test/sql_stmt_tests/addpoint13.testcase0000664000175000017500000000042612163502133021036 00000000000000ST_AddPoint() - TEXT index :memory: #use in-memory database SELECT ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1), 'alpha') 1 # rows (not including the header row) 1 # columns ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1), 'alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makeellipticsector19.testcase0000664000175000017500000000035012163502134023122 00000000000000makeellipticsector19 - NULL srid :memory: #use in-memory database SELECT MakeEllipticSector(0, 0, 100, 200, 30, 60, NULL); 1 # rows (not including the header row) 1 # columns MakeEllipticSector(0, 0, 100, 200, 30, 60, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/collectextract3.testcase0000664000175000017500000000037112163502133022172 00000000000000Collection Extract - Point (NULL) :memory: #use in-memory database SELECT AsText(CollectionExtract(GeomFromText("POINT(1 2)"), 3)); 1 # rows (not including the header row) 1 # columns AsText(CollectionExtract(GeomFromText("POINT(1 2)"), 3)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/casttomultilinestring7.testcase0000664000175000017500000000053412163502133023626 00000000000000casttomultilinestring - GEOMETRY COLLECTION, POLYGON :memory: #use in-memory database SELECT AsText(CastToMultiLineString(GeomFromText("GEOMETRYCOLLECTION(POLYGON((4 3, 4 1, 0 3, 4 3)))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToMultiLineString(GeomFromText("GEOMETRYCOLLECTION(POLYGON((4 3, 4 1, 0 3, 4 3)))"))) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/normalizelonlat1.testcase0000664000175000017500000000037112163502134022363 00000000000000normalizelonlat- normal range :memory: #use in-memory database SELECT AsText(NormalizeLonLat(GeomFromText("POINT(1 2)", 4326))) 1 # rows (not including the header row) 1 # columns AsText(NormalizeLonLat(GeomFromText("POINT(1 2)", 4326))) POINT(1 2) libspatialite-4.1.1/test/sql_stmt_tests/wkb15.testcase0000664000175000017500000000071512163502134020023 00000000000000Hex Wkb: GeometryCollection XYM (single line) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONM(LINESTRINGM(1.2 3.4 12, 5.6 7.8 13))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONM(LINESTRINGM(1.2 3.4 12, 5.6 7.8 13))", 4326))); 01D70700000100000001D207000002000000333333333333F33F3333333333330B40000000000000284066666666666616403333333333331F400000000000002A40 libspatialite-4.1.1/test/sql_stmt_tests/makeline4.testcase0000664000175000017500000000034512163502134020742 00000000000000makeline4 :memory: #use in-memory database SELECT AsText(MakeLine(GeomFromText("POINT(0 0)"), zeroblob(10))); 1 # rows (not including the header row) 1 # columns AsText(MakeLine(GeomFromText("POINT(0 0)"), zeroblob(10))) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/fromewkt28.testcase0000664000175000017500000000063412163502134021102 00000000000000fromewkt28 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1, 2 2))))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1, 2 2))))')); GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1, 2 2)) libspatialite-4.1.1/test/sql_stmt_tests/dimension4.testcase0000664000175000017500000000025012163502133021134 00000000000000dimension4 - bad blob :memory: #use in-memory database SELECT Dimension(zeroblob(20)) 1 # rows (not including the header row) 1 # columns Dimension(zeroblob(20)) (NULL)libspatialite-4.1.1/test/sql_stmt_tests/addpoint22.testcase0000664000175000017500000000046012163502133021034 00000000000000ST_AddPoint() - insert before start :memory: #use in-memory database SELECT AsText(AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1), 0)) 1 # rows (not including the header row) 1 # columns AsText(AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1), 0)) LINESTRING(1 1, 0 0, 1 0) libspatialite-4.1.1/test/sql_stmt_tests/casttopoly1.testcase0000664000175000017500000000026412163502133021352 00000000000000casttopolygon - bad blob :memory: #use in-memory database SELECT CastToPolygon(zeroblob(99)) 1 # rows (not including the header row) 1 # columns CastToPolygon(zeroblob(99)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/asgeojson8.testcase0000664000175000017500000000043412163502133021147 00000000000000asgeojson - bad args (3 arg, out of range option 0) :memory: #use in-memory database SELECT asgeojson(GeomFromText("Point(1 2)", 4326), 4, 0); 1 # rows (not including the header row) 1 # columns asgeojson(GeomFromText("Point(1 2)", 4326), 4, 0) {"type":"Point","coordinates":[1,2]}:0 libspatialite-4.1.1/test/sql_stmt_tests/casttoblob8.testcase0000664000175000017500000000030312163502133021306 00000000000000CastToBlob() - TEXT hex_input :memory: #use in-memory database SELECT CastToBlob('0129abCF', 'alpha') 1 # rows (not including the header row) 1 # columns CastToBlob('0129abCF', 'alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makearc13.testcase0000664000175000017500000000027312163502134020640 00000000000000makearc13 - text stop :memory: #use in-memory database SELECT MakeArc(0, 0, 100, 30, 'alpha'); 1 # rows (not including the header row) 1 # columns MakeArc(0, 0, 100, 30, 'alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_tests/swapcoords4.testcase0000664000175000017500000000052112163502134021335 00000000000000swapcoords4 :memory: #use in-memory database SELECT AsText(SwapCoords(GeomFromText("LINESTRING(136 -35, 135.2 -34.5, 136 -35.2, 136 -36)"))); 1 # rows (not including the header row) 1 # columns AsText(SwapCoords(GeomFromText("LINESTRING(136 -35, 135.2 -34.5, 136 -35.2, 136 -36)"))); LINESTRING(-35 136, -34.5 135.2, -35.2 136, -36 136) libspatialite-4.1.1/test/sql_stmt_tests/startpoint1.testcase0000664000175000017500000000040412163502134021355 00000000000000startpoint - regular LINESTRING :memory: #use in-memory database SELECT AsText(StartPoint(GeomFromText("LINESTRING(4 0, 4 4, 8 4)"))); 1 # rows (not including the header row) 1 # columns AsText(StartPoint(GeomFromText("LINESTRING(4 0, 4 4, 8 4)"))) POINT(4 0) libspatialite-4.1.1/test/sql_stmt_tests/setpoint12.testcase0000664000175000017500000000037612163502134021105 00000000000000ST_SetPoint() - DOUBLE Point :memory: #use in-memory database SELECT ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1, 1.5) 1 # rows (not including the header row) 1 # columns ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1, 1.5) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/m_us_ch.testcase0000664000175000017500000000023212163502134020501 00000000000000metres to US chains :memory: #use in-memory database SELECT CvtToUsCh(1000); 1 # rows (not including the header row) 1 # columns CvtToUsCh(1000) 49.709:6 libspatialite-4.1.1/test/sql_stmt_tests/asgeojson4.testcase0000664000175000017500000000037012163502133021142 00000000000000asgeojson - bad args (3 arg, bad precision) :memory: #use in-memory database SELECT asgeojson(GeomFromText("Point(1 2)", 4326), 4.2, 2); 1 # rows (not including the header row) 1 # columns asgeojson(GeomFromText("Point(1 2)", 4326), 4.2, 2) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/routing5.testcase0000664000175000017500000000070212163502134020642 00000000000000routing: alphanumeric ids (Dijkstra from-to) sql_stmt_tests/testdb1.sqlite SELECT Algorithm, ArcRowid, NodeFrom, NodeTo, Cost FROM alpha_roads_net WHERE NodeTo = 'NODE_30' AND NodeFrom = 'NODE_72'; 4 # rows (not including the header row) 5 # columns Algorithm ArcRowid NodeFrom NodeTo Cost Dijkstra (NULL) NODE_72 NODE_30 0.001575:6 Dijkstra 72 NODE_72 NODE_73 0.000162:6 Dijkstra 73 NODE_73 NODE_48 0.000810:6 Dijkstra 48 NODE_48 NODE_30 0.000602:6 libspatialite-4.1.1/test/sql_stmt_tests/assvg23.testcase0000664000175000017500000000050212163502133020353 00000000000000assvg - relative/absolute MultiPoint :memory: #use in-memory database SELECT assvg(geom, 1) AS rel, assvg(geom, 0) AS abs FROM (SELECT GeomFromText("MULTIPOINT(10 10, 15 10)", 4326) AS geom) dummy; 1 # rows (not including the header row) 2 # columns rel abs x="10" y="-10",x="15" y="-10" cx="10" cy="-10",cx="15" cy="-10" libspatialite-4.1.1/test/sql_stmt_tests/assvg8.testcase0000664000175000017500000000036312163502133020303 00000000000000assvg - 3 arg bad second arg :memory: #use in-memory database SELECT assvg(GeomFromText("Point(1.3759 2)", 4326), "hello", -1) 1 # rows (not including the header row) 1 # columns assvg(GeomFromText("Point(1.3759 2)", 4326), "hello", -1) (NULL)libspatialite-4.1.1/test/sql_stmt_tests/garsmbr1.testcase0000664000175000017500000000034512163502134020607 00000000000000garsmbr - 001AB :memory: #use in-memory database SELECT AsText(GARSMbr("001AB")) 1 # rows (not including the header row) 1 # columns AsText(GARSMbr("001AB")) POLYGON((-180 -89.5, -179.5 -89.5, -179.5 -89, -180 -89, -180 -89.5)) libspatialite-4.1.1/test/sql_stmt_tests/geomfromtext31.testcase0000664000175000017500000000134212163502134021753 00000000000000geomfromtext31 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONZM(MULTIPOLYGONZM(((0 0 9 7, 5 0 9 7, 5 5 9 7, 0 5 9 7, 0 0 9 7), (1 1 9 7, 2 1 9 7, 2 2 9 7, 1 2 9 7, 1 1 9 7)), ((10 10 9 7, 11 10 9 7, 11 11 9 7, 10 11 9 7, 10 10 9 7))))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTIONZM(MULTIPOLYGONZM(((0 0 9 7, 5 0 9 7, 5 5 9 7, 0 5 9 7, 0 0 9 7), (1 1 9 7, 2 1 9 7, 2 2 9 7, 1 2 9 7, 1 1 9 7)), ((10 10 9 7, 11 10 9 7, 11 11 9 7, 10 11 9 7, 10 10 9 7))))')); GEOMETRYCOLLECTION ZM(POLYGON ZM((0 0 9 7, 5 0 9 7, 5 5 9 7, 0 5 9 7, 0 0 9 7), (1 1 9 7, 2 1 9 7, 2 2 9 7, 1 2 9 7, 1 1 9 7)), POLYGON ZM((10 10 9 7, 11 10 9 7, 11 11 9 7, 10 11 9 7, 10 10 9 7))) libspatialite-4.1.1/test/sql_stmt_tests/normalizelonlat11.testcase0000664000175000017500000000037712163502134022452 00000000000000normalizelonlat- in range -30 :memory: #use in-memory database SELECT AsText(NormalizeLonLat(GeomFromText("POINT(4 -30)", 4326))) 1 # rows (not including the header row) 1 # columns AsText(NormalizeLonLat(GeomFromText("POINT(4 -30)", 4326))) POINT(4 -30) libspatialite-4.1.1/test/sql_stmt_tests/makecircularstripe16.testcase0000664000175000017500000000034612163502134023132 00000000000000makecircularstripe16 - NULL srid :memory: #use in-memory database SELECT MakeCircularStripe(0, 0, 100, 90, 30, 60, NULL); 1 # rows (not including the header row) 1 # columns MakeCircularStripe(0, 0, 100, 90, 30, 60, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/casttotext2.testcase0000664000175000017500000000024712163502133021355 00000000000000CastToText() - BLOB :memory: #use in-memory database SELECT CastToText(zeroblob(4)) 1 # rows (not including the header row) 1 # columns CastToText(zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geomfromkml8.testcase0000664000175000017500000000330612163502134021500 00000000000000From KML - MultiGeometry :memory: SELECT AsText(GeomFromKML(" -122.431885303019,37.8019316061803,0 -122.431762847554,37.8019476932246,0 -122.431719843168,37.8017374462006,0 -122.431841863906,37.8017213314352,0 -122.431885303019,37.8019316061803,0 -122.431714248439,37.8019544341044,0 -122.431592404659,37.8019694509363,0 -122.431548777661,37.8017591041777,0 -122.431671453253,37.8017428443014,0 -122.431714248439,37.8019544341044,0")) 1 # rows 1 # column AsText(GeomFromKML(" -122.431885303019,37.8019316061803,0 -122.431762847554,37.8019476932246,0 -122.431719843168,37.8017374462006,0 -122.431841863906,37.8017213314352,0 -122.431885303019,37.8019316061803,0 -122.431714248439,37.8019544341044,0 -122.431592404659,37.8019694509363,0 -122.431548777661,37.8017591041777,0 -122.431671453253,37.8017428443014,0 -122.431714248439,37.8019544341044,0")) MULTIPOLYGON Z(((-122.431885 37.801932 0, -122.431763 37.801948 0, -122.43172 37.801737 0, -122.431842 37.801721 0, -122.431885 37.801932 0)), ((-122.431714 37.801954 0, -122.431592 37.801969 0, -122.431549 37.801759 0, -122.431671 37.801743 0, -122.431714 37.801954 0)))libspatialite-4.1.1/test/sql_stmt_tests/collectextract20.testcase0000664000175000017500000000067712163502133022262 00000000000000Collection Extract - Extract POLYGONZ :memory: #use in-memory database SELECT AsText(CollectionExtract(GeomFromText("POLYGONZ((0 0 1, 10 0 2, 10 10 1, 0 0 1),(1 2 4, 4 3 1, 1 1 1, 1 2 4))"), 3)); 1 # rows (not including the header row) 1 # columns AsText(CollectionExtract(GeomFromText("POLYGONZ((0 0 1, 10 0 2, 10 10 1, 0 0 1),(1 2 4, 4 3 1, 1 1 1, 1 2 4))"), 3)) MULTIPOLYGON Z(((0 0 1, 10 0 2, 10 10 1, 0 0 1), (1 2 4, 4 3 1, 1 1 1, 1 2 4))) libspatialite-4.1.1/test/sql_stmt_tests/reflectcoords11.testcase0000664000175000017500000000052012163502134022064 00000000000000reflectcoords10 :memory: #use in-memory database SELECT AsText(ReflectCoords(GeomFromText("LINESTRINGZM(-1 -1 10 1, 1 0 11 2, 0 1 12 3)"), 1, 1)); 1 # rows (not including the header row) 1 # columns AsText(ReflectCoords(GeomFromText("LINESTRINGZM(-1 -1 10 1, 1 0 11 2, 0 1 12 3)"), 1, 1)) LINESTRING ZM(1 1 10 1, -1 0 11 2, 0 -1 12 3) libspatialite-4.1.1/test/sql_stmt_tests/geomtype27.testcase0000664000175000017500000000043612163502134021074 00000000000000geometrytype - MULTIPOINTM :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom) from (SELECT GeomFromText("MULTIPOINTM(-71 42 26.2)") as geom) dummy; 1 # rows (not including the header row) 2 # columns GeometryType(geom) CoordDimension(geom) MULTIPOINT M XYMlibspatialite-4.1.1/test/sql_stmt_tests/asgml8.testcase0000664000175000017500000000034112163502133020257 00000000000000asgml - bad args (non-int 3rd arg) :memory: #use in-memory database SELECT asgml(3, GeomFromText("Point(1 2)"), "four"); 1 # rows (not including the header row) 1 # columns asgml(3, GeomFromText("Point(1 2)"), "four") (NULL) libspatialite-4.1.1/test/sql_stmt_tests/sandro.jpg0000664000175000017500000005473312163502134017336 00000000000000JFIF``C    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?>X%D2ڝʬnBpI45Z)xg53FA!yTǜƤd-!Lazӣ1T7[`w#B%Ta('2i5$U3{#M,-?ssc"g;2['9Lyiڹ!R|ڙ>kƠ*T%aZ@Bz\{+RЖyUŷ ִa85B[#f?b̸_q"r{T)3-R9@^犷` QdRISI" ,u \0+y5CRZ kxsR5sXڔӭUK"i2yfqpj#dqV0֭mN)mEu`afg\ݎiUO5)3sS#qvqRi|k9 s&W@rdi*]xzD<}(Hpc޲i b,ޫGpdc6xWTA8Co8Yh&YH;@;Q[#?J$P/JGSpM{T7Mͤɭi²P00k.*u O\Tr#kF@am# 2ss,J;WS]4a;V5EW6OAZǻSL@7֥u*+'"+`z-8h ])gpsԬMҏV~}(;vj_+'Tk.qSFlsQ;nBA$n&\5jpsUX3"mOrjS!P [pOLzi=h>zQ4;-qSiC&qZb >+lZnܴ[6mi.H׺ ğzȑ6Oz!kVڴ)0WuK7{ӈWQW{-HAv>Du楖 mg(I=j]6*:4X7CȘI+Z ܐ8Y,8ʒ3֛W)Me,s*)0d 5#a7JSLt9quǭ>m&&'g5xpUcD.i|V5$r;g5ۀs[c.w5t6qyJ*qZ t7mL h9G+Y&`I$$fQɁl~b͚֊5|\XOM_l)M~g)Y󢄫>bW/! :8rI-ˌZ{j#$,`2AVHLr()G$є,(g eJ]Οl+B,3SO, u˲қhFV~HMr"Qv2j'EJѠn#&֯bfLw6 nt|f<׊m[[k*;yQcEvЮw)YaWi2Sp%C 'u'H@,T*[|5z#/ԑR{ E;6#S$1S+J[y=5\6Frw`$}*W5i[uᔐ:V-֥b(y ;>]bfL[n_dL}.\8cVO,9=ja.K&ݡ3ֵOֱ-@5m/'ÒEl*&t!Xc5fe5BT>:*;49 F*ޅv!+*hY{[163MKq PZx026ˤ2?T(9uUnm[rh Tqaۚk]= 6r/ #gځ, x# 4I2늅.0 @~SޯE<1Yrm ABH#umRW!4syW u5-f 8St3L}7Q=EhZ `X1bR9 W";)'fs'qjH>^X 1lMO-ȫZ^߃j>f{35oU$0B,sXZ\QU?}E^i1׭W֝k!}q\r*C+MIS] K DiRZF}˫uHszHy95b+-U2c6Dl֬pJD0㊙&ln9URc]( 29dFRqVh"6s!UvRŹX4u[L_/*NIF}šhv*yHQ皂}8-@L$ƣc6DyY}&;~0ý.SqRɌq5*-"!-,bnsVr&[vi() ֡"ҁTصqˆJ`zR8ut {eo uwv2CNҘ] 5)+YO\ʻS:.8m k<냞j#2Bt 1YYQ=*21i^zm 7\wYقwi)]BEdT=)[49U!# ~UWHD'5&iDڭ ʽ3Ri2[qJV  4*cllni7~]?GsrέsVN3jބܔ5;V=}*T| 4gkdzfJM;BG};ɬ-FO.r=m*tBɫ8Q7LjgY±aV'۳DQ>g5Iњ8e5-u * jf[v${y&--S5RF`0;2Qlr8`յc c.imR?}޵VUS;=5sEs?+>Y 5,#=3V,ыn1frۑé(- r-;0X8nwIq2%2[۴{lFOV3E+:-J3ymlkL 5Qn<| ̃WBnY3o(wX_]ŅibMOljizV2*"ޥ$-ipz!:Vc5aYc[QM+fT$fvp{DW!Urhb2<2Y0U[Hver=闡}" uSk֩L(|`D*W(6 XКVgB. `Wl8l^*3h( ) tnjԩ*D0&1%ٓ\ dϘo2'D̛qALojf#W^he_zj_d6\sXvDJN,mt"t:Ќƻz֕Pי1Xڔ{XTzSqqܧi$Ic A=*oW=1 qif<5NK(U(@, ,MtVnm" l~kEZRؒI'Lj(h䚶]pS5*i\8}M.YXwB`5|;;R|CFa}`|U _Pː^rX# 2 H1JS SwAf[ƷP70i" N}k:gkyL"Tծldչl)gcɬ]m՘wVFȧ T ?fҊ7V{s*U.RN*K:⋋14i-bHrRV\0ZwA!cLHʀZrvFI&ɥWS\ޱ;<} ij sU~ķwNyWvڲ畭չ>'}ēB =[z篭/QImeC=lqU&F1e#ۚts6Wue.85Eensd.Wp#$X;N2ME⥷ogک -83bMtVlv>.HFrE<iyWU3,gϷgt?frͤ=14-HMuϧlv*i4kg9si,'zuˁtMmmet~dE2 V`vGuSjʏ>^ztX5%r%gߎ*[E VBB.=Imp ɸ @-m=)N:R$W=JiTOݱG=k7LR货 D%L֩5FFk%M@;U+Z . %eۉ; =kKK O969(uJUddLefbVmԥrdOcO"|"iڴٰdd6kEv^I6u{m֘䎕>j9,QifucjCFH"@q?ZK "ncU$n,RLp*̦Ն{&i_hn*{kh4-+jhyw~?Wފ\l Ql Q-4":Ҏ#y'aݲj*icesILjˁ* sl)Vz 31lZXOjc.27Fw{Qx5.%؎ܴ+hb0pjDߑQM{λ-+E4R ZVƥ+b;HcesΧcA%s(A-?OaSiRM?8cS i~&,#8P A&g܏֕픎V.kܖ)5<" b#b,rřbn*5FTdQZ7& 6k[LީHN/:#]\Z\E)C㸯NʻsP\A6 >f,X|v[xjumLlk?u[RwcWGmmwR+ޮnWBm?)|2[l7/@5(֚ phpWAڸ§'nG*a$YV2r3峊5똢Bqoj*%]. bJϥc#7ڡWvVIrz3+aU$mc&sU iĐePdjInM44S tq,NϊH޵f7Pٟ5$SUuD%\V;yB:jFyYm#k#Gsα.#$̿)M*O#`]>eĂiҶ/!WoW3mug$OTE8nk.LBTzV JТ?4zQWފˉ7Տ" p @tӁ"xI /88tPn ʽ" 7=]ܖ"X@a+HM]x(8 XokC76NۚlC|b]I jpm,;U[鈈\FWF=5Wr*92zf2HP鍨\~5vh pN+/$ Ƭ4ˑ1Wa#UxSTwJo=0P(ךŏRdb}ÑRu\t#Q2KE)XXvuq=f%=z[v )$u}8_TYb*˴K>jI0#U-g=ZeJ^_K#ms^v,[&Ŗ{c26N9y7$VЩV&rGIiŹ[i?JN͛6֦vءO_Nw.GZ rX}+12>Uxj;[ĥX܇4Ɗ UfW5Tv0GPk8qڳ9]iYmOVgS߆4<=+XY{4kܑ2Su"-#@ҹ]a IQ'vD[G8dy`mdoZұ!;$=b{g8 dD)ǵCoaLDg{;*ԔjâFtkklwOF8\̷1g4.@#¦ytK\|.,8gQҴ.DPobբy?j)ᝦ!T0FDX`gX`;Tfg4&&(a]H7FD Xc[}kM1S96fI}*ӮV&$ng YW`NTUcs%sǥh}Jyf()vp3ڴq~?5I#8NeO5k!|ý4I 6:Y$W!殷Xe?XXQS#j]@@+R+ZWG1FY%ȫ gA9 Nvu7 \OAOf6JTc d;HJV68M&;r(U$c8EhN93ҐnQȦEu&ڸHY_n=#c?5e}M#nIJ<.pCʢCGһܖĊ9U0jF1\Z0o;ܛ[])MuUO|rL,dUI},niܪ\ƢyΣ& FUnVZ7\VlJ+YX%}6 ~mrQ0xB UkrڱVB K<ۃP Kgl]1gR.BRn(ha UX)"5 xݶkIY(ɲK;2l^ƛymڰ濞 &ģۻI^IxhC,1IG&bӌV$ jѤ$8n\}xvۅt82hhoCEhV ӡ*UVtȉ(+'%;<kSb1V, j+93#4436 k1e3ÊYlL[wIhV[WIjʎvbÎh]6DvZ|G*NǬHYڨckn@v~ MqCg^J[I)ޞȭQ(U<4fA}c*UlxΧ$z8MjQr~Sy>,B=V$f|SphQi&nC 湨_[5v+SE9 spn9s0Nj )!C 8pir+dE׵6?GlTV2=$H]06ן+?ZH*:ăU$^5%OtCN(LHɝ'q(s]˖{]InFk}m\G.c<Ժ^UqlRخJ9jF%`yՔo^q3e$mk[D̙Q~ LrݲhM;U[ GǵH_v86>՞ 2s֚ȵ=F9'ڬb#\ޒ <ۗELm|R}QEYdī֤B k3NfVX*+J\͖# NJ۽QrL>A#+ftR\ydץkwnTn^9T+RޗD'cIt2X圑5} "ቘI}!9h[Y<$p*]TG:V"+SwI^=JלCA^chJy(9 mZOZLܗ+R ;:qT̿ݢD]>$"{Zz7jmQhKϽk"zk':f,iF]1C&w~u<0ŝy m\Q4dQ}X54oC$̻́ම+ *7,#wt؍O=ꕢ Jnmy5yI"+[(ߕ6y")w`9[ `FëZ;X#E+ɬrڬ]>Z[Dd*v9?hF V@ʹ+5Ib!\RE!ҰNI5cyŔ@Z)27[MijEx1ؼ'bR?0kqv[!|r)ShYt*kvmhMmK j6? |$bY>b'G\WKc4W*UdZ$,O5EpEJѩS9a+tb8[dcڼ^[`85>2`\c*Ru2=8/$%jMK6Zֶ1P{f4xwK)" guPhQk+Mؽ(V ɘ.jޡy䡑Oj:z;ͽ:$sךp"c$v=H[YH-NMgGf 7Zb,I7gԹ}סft7Nml@@kvƶmnP"ER55 *셷;,wQ*tXer2X'ըh+ӭ2ˌӥӭe3l˽*6ЫϵgIq$%,kBmZwn* [w qkPLO\r= tI ?T ͖)i$U )PmBkCM`ko|0p9VpA{R\ֹ_QDn2E!Mסӝa\dbsݙ5rɴ L[)m~*Q*s;${{[ӒjQBb;3NGPjZsj2dGJSbmC]G+t:A,F?]yg"D{TRO.0Y>")˴P#JX.Webi#^ln8bB|: Vkb+LVn(IqM9`WT'5uǁ]Tm`c LiE"y#.>>\Z(¦Բ+-J[Q,ezeӈe#QԘ73eV'Y7:Dw{W@QGj6j9KzvB*з~1[ O fRR8-@ɫ*PyMp#Tc&ZI~\qQ\0+ګAO",q.tkd_T lL`ncNڦ*ۼ,jD'[qiiqsڭa۷֭{Ұ5hv]ڐ>p\UkXb0J%(ʟv,?2՞dަTG}ڻmeR{T-{"5Ҕj*z"˹ id qֲ$#UQ@\K($TK oyP \ûq?Zϋ 99P^F[h݁ kɪQ[eNZx?-lqwњV.Iԅ!\m^#"vgZ̲rY7w7b`BևsOZEXdnMB +]i&Ѳq55>CVg 6ڱiCI=nOqpÓLhenp*l4Qޢ UYR++sWYgKUx\-Xj F8BIŢܺωylw_ݏʫ:w1 ry)xpQV[(<ϼjK>VM=Z91VdMr] ?f;ϭ-ח$+B]. m;4XGzЪ,|;b˺䊧9H# ӭ5RjooCZ:m =@k_SY)!qҊ~Wѝw^u8\_a3%ܿJMт/_7Yы˰dl 9EھՋa)c2ZI4-n|Fx] Hm(rjkacWϡ-Ev7ҼouK1՛?MThret<ue3kDc3[˳lՙCu5~A\5mzLtmyCpK)Q @r;nVЬyR<{ƫy5N YVè MݎkCO)mJkD>cW&v,(暳d{.Ghwۅz \E5+sn6$!'_^(p qsJ$$i7x^6jK`3R]$q[2ɜuvVA~M$I* mi2JD@n"-ZP$X:0銿enCSk; kΚ*QIw"ZOp*8 ɡ^>Mqꬂ4ez9f ԷX簢m5b{ `q.U25m#z졣=YG7T *cl%AӮ+: r+K4 4,'i4U]A~wDN^BG{jŹt'C25*İ8=@kKG7uN 57@Q.zwέ:VgF>\?ZvqF3P]ΤG_ʏ8ڧ?SXde}bCt phl,pG֨ށvsIp#{Rin-K8~ N 1d[$@5}ŹR&+#Z.X^lCLQ0ڳ=8ݹVI8-fyc[lȮ'Ʒ G׀+{+XmىnKF0IEGm̷ZVfz TkH⧒S,Ao!`q=>7`$T蔪UH#\`f[[P[yqQIc5B[H SBFm1sIٳV+S惎kGIYԫ&ϟ1ֱulIqOsPħңIB:ބn -c)Sf, 9F*Xp3^/w(3<C>r^pEyݴVE 5s:ܨϓIB:NЙCHh^/b68x?y¨h CyjWL.A<6D`` Ԁnšǎ&.v|Ćmnޢ4OW r)8)n R^eڴOlr}VQ{Ӗ\v+MȜAqg} gKeO0+f{Z%EBPb>Y즔f9L*︿؟Qn76,Lˋxye+6sZ ͻ\J+KsV "3_~*Ljf,s$Z҇3&Nzѷp`(֜m#bs[yaL&3B<=Y ^?%ꫵ:^rS:dWh#"lF zW6nCZ"`pyR7>5NU`{Z)hsra-f>y\K}g@F9*uџ2jt6F )r:d[R4 F+Ab`{sEHتNH&*)~#'hPsK3҄Z'1aXnVb1ޡGgvHACJsz&F꼟JIT{`|Ʀ"Q(xb%2XlB-tE Hðg8 cuJ`qWtd@ۏk M$"{դCbBs]Y3' t>i=jD((3N _|F+?\WQ3*aCQN 6B;]F)srJN-35c5*{IYNYn{WB̌v WJh uZ-9֤n"Ԇ#2L]~fhlQK^_-W @>URyr8fiݻ-B#XZKŐ} Znngɀ٥FE3M:&J.1ҩIޮr]rǽq7Už밆E{}Ek^$_,5:R=j@n'yeB,0JGʠDa"IH³"B%*USV=V\}5C)e*hq`O֊6+^'* VۆOZHCud#G6Gsʔ)4Eڬ7zۅA8co4*3ɭ a"EXʭd50N*;ب0 ج#Pr*C) 桚ܯ";׭CcHxO^s d6xqzѻih)\u# /G2;%# Eщ"!A֥*o]sR2ty_yl-gWI+l *59^XtH߹$1]yymG%vJ[#H sֽ82pfģ}V8qqO'a:J7U.lXG B\[8 E+fPucR}fHľ:bHS47Е}jkyDSa{KȰcw_Z"O*FEc0.T[͒b"yA'r:d~k NˇR؉-:zqXLc9)]Z"vv& ژ*b@^ 2ܠ_гɄU5>Ra6Ίϩ9ܖI [2[NjDN$Y\ZʹR '$dG,Wp\`N9lyS)|̦I0j"@)F 5J>=0**XU"-Ҫ5i>?Դ|VhGE~3 T 9*RVf^qj[cgMiJRH¼F}3ķq^m\Nr=MGjp4K3xQt2Öާn OLQA H g*:T0ޭ3HI[WBc;\#sִt,gzriE$TܯE5PH'' [Co\O$㦺uWU9S"kc<ּ1:X 25&-,]N4!"Z7R&DU5Z՚efBCd[@1vxi'IrױﰑH+2 P%zM%xWO^-̻9YbX y;[JъϺ&X pڤ'' fjW<Ϊ6 dȯs v矈z vL*n5 s]Q^qP&v3$2qG5ijFOZ\{&V݂9R]㝕ב֨2 uo:z )4䭠EɐbJ؆CZcaM'[tlx5pgpzZ+J5^o Hrx܄: zW>j'̶.0u)\wsUs槔NA/0^ ,QP}}VAsWG'+'Pj)RL"8=P ) ?0Q{'Rd!lV`:{hA5[q@]ʎLp4[ }-ُJlGJ=*5ι a F@rv48 ާInt&X$eS-ԫGaG\jQQ-it~L5Am仑8qJ_ր8\jl39\|ZBT:mm]# ykKB3 qRt;)Mg$g\dI~3x\0o-VW3G3BBVm#7gD$`ԢT0+WI]Tdm[sSrJA( ҡЮ9W=+Un=o-sΪЇOӤH1@qt*h`X`THQ9\,Mx#Zyj9z|˂jp +W#c<*Wgrl~Zڕ2EcLl7c\W뾇kb(1fc@sR?~M$}}6tؙi|{PݹLchGpBDqX2j UU[Vl*)W)u/oU>\Ž[Sm`]2Du* 8yڥLqI Vv"cmpf8tu+Vtu<k2jfR!E7Z*.; iuIGqAтr@Y널ǟ qN@9 Y--#IYmW,*c}`LdwR,:Ulq?]\-Jʼ 2PdY Hi{FA쭛 gW3M^E6vs=d+ަY҈VFhN&YZт$ARwZٱsjcX-؎pjLrRfvǧJiPk} mk˭M*ˆ57o#ry wGD+@4z:֌" [8cIrA~<v2̢9B ן,4t)-I2`ckLuYb;ʏWMtv5IJ+cX7-֬ oUyu ORo- WdnJ q3h\#kgY$G k<»h5sI5$lw9+½xl.@Oj$<+(9y>>FP)YIcb??5Y ]۞᠇O4T {}hy˰>@8V 5[Bg=iQRn bC׊wOAjVkvSȦcsUfe N6`ԱsMhu )jPJ$JU($uaS.EHA|JP܎* ZY~g4,ifd=jP=ZmhWH^ŭ $da*s]H=f" 8۞Ééڜu!>ULW SZ&@ Yv+ɵX%x]+,~#Dќ@5ZG:Tdm͊$"dj>MU"74&wpB7֭FW5i5@=*R-L`PGҭڡb8Zɰn,*(zS dҪ.Dd*2I5`)84 5js&uU֥ h\.59q*]u0QQgڊL5!sTGYFkh@ĉi۳LEb6ZLDr7=j< V q$g-&@W'5!kV0֔%Qx* "4"ހӔUSJrX9OKTe 0q-@8%jkܕN7(sާ`k@E:4u^2tV5I:UMkK.+T\WcMW ֏T$gJ50 ㊬#9F)yZ1lC88z92Fk9֔,r9J4hSYyHÊĕjݠjc^x&SevYeԢ?/֕T#  X*tc8(U1Ѧ{ U F}kN.3DN}(M ;#9:NqS 5(JoANn)QGZ@M=SzsN҅cL\p(FT+*e8x8*!j*z(libspatialite-4.1.1/test/sql_stmt_tests/forcenull12.testcase0000664000175000017500000000026212163502134021223 00000000000000ForceAsNull() - TEXT/NULL :memory: #use in-memory database SELECT ForceAsNull('alpha', NULL) 1 # rows (not including the header row) 1 # columns ForceAsNull('alpha', NULL) alpha libspatialite-4.1.1/test/sql_stmt_tests/fromgml12.testcase0000664000175000017500000000212312163502134020673 00000000000000FromGML - MultiLinestring v3 :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('1 2 3 4 5 6 7 810 10 11.5 11')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('1 2 3 4 5 6 7 810 10 11.5 11')):0 SRID=4326;MULTILINESTRING((1 2,3 4,5 6,7 8),(10 10,11.5 11)) libspatialite-4.1.1/test/sql_stmt_tests/geometryn.testcase0000664000175000017500000000035412163502134021102 00000000000000Geometry N - multipoint :memory: #use in-memory database SELECT AsText(GeometryN(GeomFromText("MULTIPOINT(1 2)"), 1)); 1 # rows (not including the header row) 1 # columns AsText(GeometryN(GeomFromText("MULTIPOINT(1 2)"), 1)) POINT(1 2) libspatialite-4.1.1/test/sql_stmt_tests/assvg1.testcase0000664000175000017500000000035112163502133020271 00000000000000assvg - 2 arg bad precision (error) :memory: #use in-memory database SELECT assvg(GeomFromText("Point(1 2)", 4326), "hello") 1 # rows (not including the header row) 1 # columns assvg(GeomFromText("Point(1 2)", 4326), "hello") (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geometryn8.testcase0000664000175000017500000000036712163502134021176 00000000000000Geometry N - multipointM :memory: #use in-memory database SELECT AsText(GeometryN(GeomFromText("MULTIPOINTM(1 2 4)"), 1)); 1 # rows (not including the header row) 1 # columns AsText(GeometryN(GeomFromText("MULTIPOINTM(1 2 4)"), 1)) POINT M(1 2 4) libspatialite-4.1.1/test/sql_stmt_tests/fromgeojson18.testcase0000664000175000017500000000075012163502134021572 00000000000000FromGeoJSON - multipoint, SRID :memory: #use in-memory database SELECT AsEWkt(GeomFromGeoJSON('{"type":"MultiPoint","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:EPSG:3003"}},"bbox":[1,2,4,6],"coordinates":[[1,2],[4,6]]}')) 1 # rows (not including the header row) 1 # columns AsEWkt(GeomFromGeoJSON('{"type":"MultiPoint","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:EPSG:3003"}},"bbox":[1,2,4,6],"coordinates":[[1,2],[4,6]]}')):0 SRID=3003;MULTIPOINT(1 2,4 6) libspatialite-4.1.1/test/sql_stmt_tests/makeellipticarc9.testcase0000664000175000017500000000032612163502134022312 00000000000000makeellipticarc9 - NULL y_axis :memory: #use in-memory database SELECT MakeEllipticArc(0, 0, 100, NULL, 30, 60); 1 # rows (not including the header row) 1 # columns MakeEllipticArc(0, 0, 100, NULL, 30, 60) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/linesfromrings3.testcase0000664000175000017500000000053112163502134022212 00000000000000LinesFromRings - Simple polygon, explicit multi :memory: #use in-memory database SELECT AsText(LinesFromRings(GeomFromText("POLYGON((0 0, 1 1, 0 2, -1 1, 0 0))"), 1)); 1 # rows (not including the header row) 1 # columns AsText(LinesFromRings(GeomFromText("POLYGON((0 0, 1 1, 0 2, -1 1, 0 0))"), 1)) MULTILINESTRING((0 0, 1 1, 0 2, -1 1, 0 0)) libspatialite-4.1.1/test/sql_stmt_tests/shiftcoords5.testcase0000664000175000017500000000036012163502134021502 00000000000000shiftcoords - text shift (error) :memory: #use in-memory database SELECT ShiftCoords(GeomFromText("POINT(1 2)"), 1, "three"); 1 # rows (not including the header row) 1 # columns ShiftCoords(GeomFromText("POINT(1 2)"), 1, "three") (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makecircle2.testcase0000664000175000017500000000026312163502134021251 00000000000000makecircle2 - text cx :memory: #use in-memory database SELECT MakeCircle('alpha', 0, 100); 1 # rows (not including the header row) 1 # columns MakeCircle('alpha', 0, 100) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/shiftcoords3.testcase0000664000175000017500000000030412163502134021476 00000000000000shiftcoords - bad blob (null) :memory: #use in-memory database SELECT ShiftCoords(zeroblob(4), -1, -3); 1 # rows (not including the header row) 1 # columns ShiftCoords(zeroblob(4), -1, -3) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/garsmbr6.testcase0000664000175000017500000000025112163502134020610 00000000000000garsmbr - out of bounds longitude :memory: #use in-memory database SELECT GARSMbr("721AA1") 1 # rows (not including the header row) 1 # columns GARSMbr("721AA1") (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geomconstraints16.testcase0000664000175000017500000000057512163502134022464 00000000000000geometry constraints - MULTILINESTRINGZ :memory: #use in-memory database SELECT GeometryConstraints(GeomFromText("MULTILINESTRINGZ((1 2 3, 4 3 1),(0 4 4, 1 9 7))", 4326), "MULTILINESTRING", 4326, "XYZ") 1 # rows (not including the header row) 1 # columns GeometryConstraints(GeomFromText("MULTILINESTRINGZ((1 2 3, 4 3 1),(0 4 4, 1 9 7))", 4326), "MULTILINESTRING", 4326, "XYZ") 1 libspatialite-4.1.1/test/sql_stmt_tests/geomconstraints3.testcase0000664000175000017500000000044412163502134022373 00000000000000geometry constraints - 3 arg, POINT / LINESTRING :memory: #use in-memory database SELECT GeometryConstraints(GeomFromText("Point(1 2)", 4326), "LINESTRING", 4326) 1 # rows (not including the header row) 1 # columns GeometryConstraints(GeomFromText("Point(1 2)", 4326), "LINESTRING", 4326) 0 libspatialite-4.1.1/test/sql_stmt_tests/badKML7.testcase0000664000175000017500000000167412163502133020257 00000000000000bad KML: GeometryCollection :memory: #use in-memory database SELECT GeomFromKML('1.1,1.12.2,2.2 3.3,3.30,0 1,0 1,1 0,1 0,00.1,0.1 0.9,0.1 0.9,0.9 0.1,0.9 0.1,0.11.1,1.12.2,2.2 3.3,3.30,0 1,0 1,1 0,1 0,00.1,0.1 0.9,0.1 0.9,0.9 0.1,0.9 0.1,0.1=DA@KJIPLKWLLPOOVQQUYX^YX_YX`ZZ_]\d^^b_`hrru{|}|½׿BOJtRNS !%&(-0?@KKLMX[^`ellmnoqvƲ IDATx5υRBEcww7vwbwwww7vb*b:̰>`l);8ZAA=n2 9ࡩ . ɑu˷8B]&}셭ݽؘΎ]m%`? ޮ엙^mTL0;&?Ք WԒ3T"IO燠98 =\6 +[r" 6>ffdQ1iz%׏l>Djb2V^گIENDB`libspatialite-4.1.1/test/sql_stmt_tests/asewkb1.testcase0000664000175000017500000000046312163502133020426 00000000000000asewkb - POINT :memory: #use in-memory database SELECT Hex(AsEWKB(GeomFromText("POINT(1 3)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsEWKB(GeomFromText("POINT(1 3)", 4326))) 535249443D343332363B303130313030303030303030303030303030303030304630334630303030303030303030303030383430 libspatialite-4.1.1/test/sql_stmt_tests/asfgf4.testcase0000664000175000017500000000031312163502133020235 00000000000000asfgf - negative second arg :memory: #use in-memory database SELECT AsFGF(GeomFromText("POINT(1 2)"), -1) 1 # rows (not including the header row) 1 # columns AsFGF(GeomFromText("POINT(1 2)"), -1) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/collect7.testcase0000664000175000017500000000070112163502133020600 00000000000000collect - toxic blob second arg :memory: #use in-memory database SELECT AsText(Collect(MakePoint(3,3), GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"))) 1 # rows (not including the header row) 1 # columns AsText(Collect(MakePoint(3,3), GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"))) GEOMETRYCOLLECTION(POINT(3 3), POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))) libspatialite-4.1.1/test/sql_stmt_tests/geomfromkml13.testcase0000664000175000017500000000056212163502134021555 00000000000000From KML - Multigeometry - Point 2D :memory: SELECT AsText(GeomFromKML("-122.0822035425683,37.42228990140251")) 1 # rows 1 # column AsText(GeomFromKML("-122.0822035425683,37.42228990140251")) MULTIPOINT(-122.082204 37.42229)libspatialite-4.1.1/test/sql_stmt_tests/geomfromtext17.testcase0000664000175000017500000000053212163502134021757 00000000000000geomfromtext17 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONZ(MULTIPOINTZ((0 1 9), (2 3 9), (4 5 9)))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTIONZ(MULTIPOINTZ((0 1 9), (2 3 9), (4 5 9)))')); GEOMETRYCOLLECTION Z(POINT Z(0 1 9), POINT Z(2 3 9), POINT Z(4 5 9)) libspatialite-4.1.1/test/sql_stmt_tests/is3d1.testcase0000664000175000017500000000020512163502134020007 00000000000000Is3D- non-blob :memory: #use in-memory database SELECT ST_Is3D(3) 1 # rows (not including the header row) 1 # columns ST_Is3D(3) -1 libspatialite-4.1.1/test/sql_stmt_tests/setpoint13.testcase0000664000175000017500000000040412163502134021076 00000000000000ST_SetPoint() - TEXT Point :memory: #use in-memory database SELECT ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1, 'alpha') 1 # rows (not including the header row) 1 # columns ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1, 'alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makeellipticsector10.testcase0000664000175000017500000000034612163502134023116 00000000000000makeellipticsector10 - text y_axis :memory: #use in-memory database SELECT MakeEllipticSector(0, 0, 100, 'alpha', 30, 60); 1 # rows (not including the header row) 1 # columns MakeEllipticSector(0, 0, 100, 'alpha', 30, 60) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/mm_m.testcase0000664000175000017500000000023612163502134020015 00000000000000millimetres to metres :memory: #use in-memory database SELECT CvtFromMm(2100.4); 1 # rows (not including the header row) 1 # columns CvtFromMm(2100.4); 2.1004libspatialite-4.1.1/test/sql_stmt_tests/asgeojson3.testcase0000664000175000017500000000036212163502133021142 00000000000000asgeojson - bad args (2 arg, bad precision) :memory: #use in-memory database SELECT asgeojson(GeomFromText("Point(1 2)", 4326), 4.2); 1 # rows (not including the header row) 1 # columns asgeojson(GeomFromText("Point(1 2)", 4326), 4.2) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/casttotext3.testcase0000664000175000017500000000033412163502133021353 00000000000000CastToText() - TEXT :memory: #use in-memory database SELECT CastToText('alpha'), TypeOf(CastToText('alpha')) 1 # rows (not including the header row) 2 # columns CastToText('alpha') TypeOf(CastToText('alpha')) alpha text libspatialite-4.1.1/test/sql_stmt_tests/ring7.testcase0000664000175000017500000000065212163502134020120 00000000000000ExteriorRing - Simple Polygon ZM :memory: #use in-memory database SELECT AsText(ExteriorRing(GeomFromText("POLYGONZM((136 -35 4 0, 135.2 -34.5 6.5 1, 136 -35.2 9.4 2, 136 -35 4 0))"))); 1 # rows (not including the header row) 1 # columns AsText(ExteriorRing(GeomFromText("POLYGONZM((136 -35 4 0, 135.2 -34.5 6.5 1, 136 -35.2 9.4 2, 136 -35 4 0))"))) LINESTRING ZM(136 -35 4 0, 135.2 -34.5 6.5 1, 136 -35.2 9.4 2, 136 -35 4 0) libspatialite-4.1.1/test/sql_stmt_tests/collect11.testcase0000664000175000017500000000047112163502133020657 00000000000000collect - Point, PointZM :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POINT(1 2)"), GeomFromText("POINTZM(4 5 3.2 6)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POINT(1 2)"), GeomFromText("POINTZM(4 5 3.2 6)"))) MULTIPOINT ZM(1 2 0 0, 4 5 3.2 6) libspatialite-4.1.1/test/sql_stmt_tests/casttotext9.testcase0000664000175000017500000000030512163502133021357 00000000000000CastToText() - INTEGER, BLOB zero_pad :memory: #use in-memory database SELECT CastToText(123, zeroblob(4)) 1 # rows (not including the header row) 1 # columns CastToText(123, zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/garsmbr23.testcase0000664000175000017500000000026412163502134020673 00000000000000garsmbr - bad longitude - 6 :memory: #use in-memory database SELECT AsText(GARSMbr("-01AB1")) 1 # rows (not including the header row) 1 # columns AsText(GARSMbr("-01AB1")) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/buildcirclembr9.testcase0000664000175000017500000000030412163502133022136 00000000000000buildcirclembr - null args / no srid :memory: #use in-memory database SELECT BuildCircleMbr(5, NULL, NULL) 1 # rows (not including the header row) 1 # columns BuildCircleMbr(5, NULL, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/setpoint4.testcase0000664000175000017500000000027712163502134021026 00000000000000ST_SetPoint() - TEXT line :memory: #use in-memory database SELECT ST_SetPoint('alpha', NULL, NULL) 1 # rows (not including the header row) 1 # columns ST_SetPoint('alpha', NULL, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geomtype61.testcase0000664000175000017500000000062012163502134021065 00000000000000geometrytype - GEOMETRYCOLLECTIONZM - one point :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("GEOMETRYCOLLECTIONZM(POINTZM(3 3 29 2))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) GEOMETRYCOLLECTION ZM XYZM GEOMETRYCOLLECTIONlibspatialite-4.1.1/test/sql_stmt_tests/geomconstraints1.testcase0000664000175000017500000000032412163502134022366 00000000000000geometry constraints - 3 arg, null :memory: #use in-memory database SELECT GeometryConstraints(null, "POINT", 4326) 1 # rows (not including the header row) 1 # columns GeometryConstraints(null, "POINT", 4326) 1 libspatialite-4.1.1/test/sql_stmt_tests/fromewkt16.testcase0000664000175000017500000000053612163502134021100 00000000000000fromewkt16 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTIONM(MULTIPOINTM(0 1 9, 2 3 9, 4 5 9))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTIONM(MULTIPOINTM(0 1 9, 2 3 9, 4 5 9))')); GEOMETRYCOLLECTION M(POINT M(0 1 9), POINT M(2 3 9), POINT M(4 5 9)) libspatialite-4.1.1/test/sql_stmt_tests/geodesic-len2.testcase0000664000175000017500000000031412163502134021505 00000000000000geodesic length linestring :memory: SELECT GeodesicLength(GeomFromText("LINESTRING(0 0, 1 0, 0 0)", 4326)); 1 # rows 1 # column GeodesicLength(GeomFromText("LINESTRING(0 0, 1 0, 0 0)", 4326)) 222638.98:9 libspatialite-4.1.1/test/sql_stmt_tests/makeellipticarc2.testcase0000664000175000017500000000033412163502134022302 00000000000000makeellipticarc2 - text cx :memory: #use in-memory database SELECT MakeEllipticArc('alpha', 0, 100, 200, 30, 60); 1 # rows (not including the header row) 1 # columns MakeEllipticArc('alpha', 0, 100, 200, 30, 60) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/test.webp0000664000175000017500000001150012163502134017165 00000000000000RIFF8WEBPVP8 >*/'Ug*Ng7݌9Sn +/׭}s_YZ?e:_moP^[{2aO~uKgoߘ$O_?{^=̷"$їw/2 n1hܟmx0K=qF YAbևu"[1Ъ2+!Ouf"$cn.ѽys/"UJ?.\6l-0FtD0aC `9mNn!믂&swfDhp21a ,uZ(' pN4oLBj]~P:MXu=Cfs={!]pzt|^iɼ/,i pO~>#4@Fus? TT(Q9:XivoҵT ;%ǡ-N,v'LV#?evo YmIiU;}-Fb0{572F0JM6upbuapk}9,ʍ؊[SƟ9eug/^fO+XW<aNfv{aD/,M!Y`uL "5j[*\ر>8Qz=4tu 2{=/wW*\Gu1[c%Mr6?D5}b*s;[={eqV PZXҟAxzUh.r FOQM4 'WX-̫jj؂ꗊm0JzUegIDw5&Sooy\mE-B~^,.uޚ_WJ[$_“ĹC6k _~#Ԓ 9C4e v\]Vt?ӟ5 )9rej^JhMD%XqozxcBόBt2,ȍiF@Q!)JI"hwg,wSSVX@ˑ7;h}M CX9}q\G}1tnM/%m(.uA%f>a !Am*gv/-rzQB4{H:pcT:)m.oZ61 qCr)ss;1Moo( ZC6EfƫO ^|{i`s `*4qY:?殄= W 念o*e q&{})%ZӇAD?f@<=f8T0D,N c獆Fu]rutMK%:B~FPGYNkl}*I[xDgTO1\&h Vbh^=Gڙ>d,C װD}FxleJBFEVŒWĮZt0e.Kv%zq\KKrhO^l""&>hjHՑFN+B5_Tl+YkJ8` kPFq|[U«9Ãp^bA]1o1뼿7!yLz6ɘϒs>[8Mv\,IEGR̡A?TUgE4:yQROM[ P<j]ܷWa`1PLdW FTy(sԦI@[1w/a_]q WG|y*Ww  ؈YyT汔z+w7 "3 ^Z%xep}NOmnm߈B~S!uX\380oi?e-,RPkV8]͓{&6ùtt"G1;JPZ*/f ^7϶ف oa&2V$T-#nfL'$yY;+eS2Ofa!TOUE:"QF^~}<5eO^>A_yF/<.ʊBV'Z8u'YOK{:X!G%S[urwXdhs0`g&4dWyL]=\H4$^x^T#:4aSWz#WӴ[cd3QDNdU(/mvdQ(zų~qͼ5ӟWo";5`;-zv i͘hHԝO-N7v{nllA'0 H37$ s1| ?#-L9]&uv)RTSz[` 7Җw984aqtQWL8% j%h]ҬEYe$zsgT˿!] l|RKӛhcr3ȫTM5ߛtp},: k(xWNTϱ0N9Іkk֞XA7*㕞p3cVq)c( QeOx`f=."s zhǫflC?_;^TC{Ir_ H)X:IR"o7P bP!&399)LɅdР%D[ϾB1`E4* 3zBYZfG֘J)WZO_vюG部BӢCf<y DHǹؿ>XǛ>d1NFCg@g_`7M@10CgR>1UGm+PͲ`0ir)3G*`j̨j PSZ$ɮeBg|xR@_v"섹b(^eP;;t6Lj|4"Yo o>&Csl)?ZϹTմGF>:j84G"@. Z+t,f⢬^^;rk~ʌY< F#v]YHꍒH=%Js,PKHl28N pј+q3UyH*TĨm}=jnu(<b|B'^FF *#ڇ0V_?C 7'Dhit4ZIARTunknownICOP2010INAM yosemitelibspatialite-4.1.1/test/sql_stmt_tests/swapcoords11.testcase0000664000175000017500000000114412163502134021415 00000000000000swapcoords11 :memory: #use in-memory database SELECT AsText(SwapCoords(GeomFromText("POLYGONZM((10 10 100 1, 20 10 101 2, 20 20 102 3, 10 20 103 4, 10 10 100 1), (14 14 100 1, 16 14 101 2, 16 16 102 3, 14 16 103 4, 14 14 100 1))"))); 1 # rows (not including the header row) 1 # columns AsText(SwapCoords(GeomFromText("POLYGONZM((10 10 100 1, 20 10 101 2, 20 20 102 3, 10 20 103 4, 10 10 100 1), (14 14 100 1, 16 14 101 2, 16 16 102 3, 14 16 103 4, 14 14 100 1))"))); POLYGON ZM((10 10 100 1, 10 20 101 2, 20 20 102 3, 20 10 103 4, 10 10 100 1), (14 14 100 1, 14 16 101 2, 16 16 102 3, 16 14 103 4, 14 14 100 1)) libspatialite-4.1.1/test/sql_stmt_tests/collect26.testcase0000664000175000017500000000063312163502133020665 00000000000000collect - LineString, LineStringM :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("Linestring(1 2, 3 4)"), GeomFromText("LINESTRINGM(4 5 3.2, 1 2 4.6, 4 2 3.1)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("Linestring(1 2, 3 4)"), GeomFromText("LINESTRINGM(4 5 3.2, 1 2 4.6, 4 2 3.1)"))) MULTILINESTRING M((1 2 0, 3 4 0), (4 5 3.2, 1 2 4.6, 4 2 3.1)) libspatialite-4.1.1/test/sql_stmt_tests/geomfromtext10.testcase0000664000175000017500000000046012163502134021750 00000000000000geomfromtext10 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTION(MULTIPOINT(0 1, 2 3, 4 5))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTION(MULTIPOINT(0 1, 2 3, 4 5))')); GEOMETRYCOLLECTION(POINT(0 1), POINT(2 3), POINT(4 5)) libspatialite-4.1.1/test/sql_stmt_tests/normalizelonlat8.testcase0000664000175000017500000000042712163502134022374 00000000000000normalizelonlat- out of range negative latitude :memory: #use in-memory database SELECT AsText(NormalizeLonLat(GeomFromText("POINT(150 -95)", 4326))) 1 # rows (not including the header row) 1 # columns AsText(NormalizeLonLat(GeomFromText("POINT(150 -95)", 4326))) POINT(150 -85) libspatialite-4.1.1/test/sql_stmt_tests/garsmbr36.testcase0000664000175000017500000000041612163502134020676 00000000000000garsmbr - 361HN35 :memory: #use in-memory database SELECT AsText(GARSMbr("361HN35")) 1 # rows (not including the header row) 1 # columns AsText(GARSMbr("361HN35")) POLYGON((0.083333 0.083333, 0.166667 0.083333, 0.166667 0.166667, 0.083333 0.166667, 0.083333 0.083333)) libspatialite-4.1.1/test/sql_stmt_tests/casttoxyzm1.testcase0000664000175000017500000000025312163502133021374 00000000000000casttoxyzm - bad blob :memory: #use in-memory database SELECT CastToXYZM(zeroblob(99)) 1 # rows (not including the header row) 1 # columns CastToXYZM(zeroblob(99)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/casttopoint7.testcase0000664000175000017500000000047612163502133021533 00000000000000casttopoint - Geometry collection, point plus linestring :memory: #use in-memory database SELECT CastToPoint(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(4 3, 4 1),POINT(1 2))")) 1 # rows (not including the header row) 1 # columns CastToPoint(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(4 3, 4 1),POINT(1 2))")) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/fromgml10.testcase0000664000175000017500000000157112163502134020677 00000000000000FromGML - MultiPoint v3 :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('1 23 45 6')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('1 23 45 6')):0 SRID=4326;MULTIPOINT(1 2,3 4,5 6) libspatialite-4.1.1/test/sql_stmt_tests/badwkt4.testcase0000664000175000017500000000033012163502133020422 00000000000000bad WKT: MultiPoint :memory: #use in-memory database SELECT GeomFromText("MULTIPOINT(11.2 12.3, 11.3 12.4"); 1 # rows (not including the header row) 1 # columns GeomFromText("MULTIPOINT(11.2 12.3, 11.3 12.4") (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makeline18.testcase0000664000175000017500000000044512163502134021030 00000000000000makeline18 :memory: #use in-memory database SELECT AsText(MakeLine(GeomFromText("POINT(0 0)"), GeomFromText("POINTM(1 2 12.4)"))); 1 # rows (not including the header row) 1 # columns AsText(MakeLine(GeomFromText("POINT(0 0)"), GeomFromText("POINTM(1 2 12.4)"))) LINESTRING M(0 0 0, 1 2 12.4) libspatialite-4.1.1/test/sql_stmt_tests/geomtype31.testcase0000664000175000017500000000064612163502134021072 00000000000000geometrytype - GEOMETRYCOLLECTIONM :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("GEOMETRYCOLLECTIONM(POINTM(4 6 4), POINTM(3 3 29), LINESTRINGM(4 6 0,7 0 0))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) GEOMETRYCOLLECTION M XYM GEOMETRYCOLLECTIONlibspatialite-4.1.1/test/sql_stmt_tests/fromWkb13.testcase0000664000175000017500000000056212163502134020645 00000000000000fromWkb - POINT, 2 arg :memory: #use in-memory database SELECT Hex(GeomFromWkb(AsBinary(GeomFromText("Point(1 2)", 4326)), 4326)) 1 # rows (not including the header row) 1 # columns Hex(GeomFromWkb(AsBinary(GeomFromText("Point(1 2)", 4326)), 4326)) 0001E6100000000000000000F03F0000000000000040000000000000F03F00000000000000407C01000000000000000000F03F0000000000000040FE libspatialite-4.1.1/test/sql_stmt_tests/geomtype15.testcase0000664000175000017500000000055412163502134021072 00000000000000geometrytype - MULTIPOLYGONM :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom) from (SELECT GeomFromText("MULTIPOLYGONM(((30 20 1, 10 40 1, 45 40 1, 30 20 1)),((15 5 2, 40 10 2, 10 20 2, 5 10 2, 15 5 2)))") as geom) dummy; 1 # rows (not including the header row) 2 # columns GeometryType(geom) CoordDimension(geom) MULTIPOLYGON M XYMlibspatialite-4.1.1/test/sql_stmt_tests/npoints6.testcase0000664000175000017500000000061412163502134020650 00000000000000npoints - multipolygon :memory: #use in-memory database SELECT ST_NPoints(GeomFromText("MULTIPOLYGON(((1 2, 3 4, 5 0, 1 2),(1.6 2.1, 1.7 2.1, 1.7 2.2, 1.6 2.2, 1.6 2.1)),((0 0, 1 0, 1 1, 0 1, 0 0)))")) 1 # rows (not including the header row) 1 # columns ST_NPoints(GeomFromText("MULTIPOLYGON(((1 2, 3 4, 5 0, 1 2),(1.6 2.1, 1.7 2.1, 1.7 2.2, 1.6 2.2, 1.6 2.1)),((0 0, 1 0, 1 1, 0 1, 0 0)))")) 14 libspatialite-4.1.1/test/sql_stmt_tests/expand4.testcase0000664000175000017500000000045012163502134020431 00000000000000Expand - Polygon :memory: #use in-memory database SELECT AsText(ST_Expand(GeomFromText("POLYGON((0 1, 1 0, 2 1, 1 2, 0 1))"), 1)) 1 # rows (not including the header row) 1 # columns AsText(ST_Expand(GeomFromText("POLYGON((0 1, 1 0, 2 1, 1 2, 0 1))"), 1)) POLYGON((-1 -1, 3 -1, 3 3, -1 3, -1 -1)) libspatialite-4.1.1/test/sql_stmt_tests/shiftlongitude25.testcase0000664000175000017500000000057312163502134022273 00000000000000shiftlongitude - simple polygon, all positive :memory: #use in-memory database SELECT AsText(ST_Shift_Longitude(GeomFromText("POLYGON((185 0, 184 10, 175 10, 176 0, 185 0))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(ST_Shift_Longitude(GeomFromText("POLYGON((185 0, 184 10, 175 10, 176 0, 185 0))", 4326))) POLYGON((185 0, 184 10, 175 10, 176 0, 185 0)) libspatialite-4.1.1/test/sql_stmt_tests/makeellipticsector16.testcase0000664000175000017500000000034612163502134023124 00000000000000makeellipticsector15 - text stop :memory: #use in-memory database SELECT MakeEllipticSector(0, 0, 100, 200, 30, 'alpha'); 1 # rows (not including the header row) 1 # columns MakeEllipticSector(0, 0, 100, 200, 30, 'alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_tests/fromgeojson13.testcase0000664000175000017500000000116412163502134021565 00000000000000FromGeoJSON - polygon Z :memory: #use in-memory database SELECT AsEWkt(GeomFromGeoJSON('{"type":"Polygon","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"coordinates":[[[1,2,2.3],[4,5,1.2],[2,2,1.6],[1,2,2.3]],[[1.5,2.5,2],[3.5,4.5,9],[2.5,3,1],[1.5,2.5,2]]]}')); 1 # rows (not including the header row) 1 # columns AsEWkt(GeomFromGeoJSON('{"type":"Polygon","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"coordinates":[[[1,2,2.3],[4,5,1.2],[2,2,1.6],[1,2,2.3]],[[1.5,2.5,2],[3.5,4.5,9],[2.5,3,1],[1.5,2.5,2]]]}')):0 SRID=3003;POLYGON((1 2 2.3,4 5 1.2,2 2 1.6,1 2 2.3),(1.5 2.5 2,3.5 4.5 9,2.5 3 1,1.5 2.5 2)) libspatialite-4.1.1/test/sql_stmt_tests/makecircularsector3.testcase0000664000175000017500000000034312163502134023034 00000000000000makecircularsector3 - BLOB cx :memory: #use in-memory database SELECT MakeCircularSector(zeroblob(4), 0, 100, 30, 60); 1 # rows (not including the header row) 1 # columns MakeCircularSector(zeroblob(4), 0, 100, 30, 60) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/asbinary1.testcase0000664000175000017500000000036012163502133020756 00000000000000asbinary :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("Point(1 2)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("Point(1 2)", 4326))) 0101000000000000000000F03F0000000000000040 libspatialite-4.1.1/test/sql_stmt_tests/asewkb11.testcase0000664000175000017500000000167112163502133020511 00000000000000asewkb - MULTILINESTRING :memory: #use in-memory database SELECT Hex(AsEWKB(GeomFromText("MULTILINESTRING((1 3,2 0,1 0,2 0),(2 1, 3 4, 9 8, -30 -3.2))", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsEWKB(GeomFromText("MULTILINESTRING((1 3,2 0,1 0,2 0),(2 1, 3 4, 9 8, -30 -3.2))", 4326))) 535249443D343332363B30313035303030303030303230303030303030313032303030303030303430303030303030303030303030303030303046303346303030303030303030303030303834303030303030303030303030303030343030303030303030303030303030303030303030303030303030303030463033463030303030303030303030303030303030303030303030303030303030303430303030303030303030303030303030303031303230303030303030343030303030303030303030303030303030303030343030303030303030303030303046303346303030303030303030303030303834303030303030303030303030303130343030303030303030303030303032323430303030303030303030303030323034303030303030303030303030303345433039413939393939393939393930394330 libspatialite-4.1.1/test/sql_stmt_tests/casttolinestring7.testcase0000664000175000017500000000053612163502133022555 00000000000000casttolinestring - GEOMETRY COLLECTION, POINT and LINESTRING :memory: #use in-memory database SELECT AsText(CastToLineString(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2),LINESTRING(4 1, 3 4))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToLineString(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2),LINESTRING(4 1, 3 4))"))) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geomtype45.testcase0000664000175000017500000000067012163502134021074 00000000000000geometrytype - GEOMETRYCOLLECTIONZ - point and polygon :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(4 6 0),POLYGONZ((4 6 1,7 10 1, 12 3 2, 4 6 1)))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) GEOMETRYCOLLECTION Z XYZ GEOMETRYCOLLECTIONlibspatialite-4.1.1/test/sql_stmt_tests/geomfromtext44.testcase0000664000175000017500000000114512163502134021760 00000000000000geomfromtext44 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONZM(GEOMETRYCOLLECTIONZM(POINTZM(0 0 9 7), LINESTRINGZM(1 1 9 7, 2 2 9 7)), GEOMETRYCOLLECTIONZM(POINTZM(3 3 9 7), LINESTRINGZM(4 4 9 7, 5 5 9 7)))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTIONZM(GEOMETRYCOLLECTIONZM(POINTZM(0 0 9 7), LINESTRINGZM(1 1 9 7, 2 2 9 7)), GEOMETRYCOLLECTIONZM(POINTZM(3 3 9 7), LINESTRINGZM(4 4 9 7, 5 5 9 7)))')); GEOMETRYCOLLECTION ZM(POINT ZM(0 0 9 7), POINT ZM(3 3 9 7), LINESTRING ZM(1 1 9 7, 2 2 9 7), LINESTRING ZM(4 4 9 7, 5 5 9 7)) libspatialite-4.1.1/test/sql_stmt_tests/dissolve8.testcase0000664000175000017500000000101412163502133021002 00000000000000dissolve - toxic polygon :memory: #use in-memory database SELECT AsText(DissolveSegments(geom)),AsText(DissolvePoints(geom)) from (SELECT GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))") as geom) dummy; 1 # rows (not including the header row) 2 # columns AsText(DissolveSegments(geom)) AsText(DissolvePoints(geom)) MULTILINESTRING((136 -35, 135.2 -34.5), (135.2 -34.5, 136 -35.2), (136 -35.2, 136 -35), (136 -35, 135.2 -34.5)) MULTIPOINT(136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5)libspatialite-4.1.1/test/sql_stmt_tests/compressgeometry29.testcase0000664000175000017500000000074212163502133022653 00000000000000CompressGeometry - POLYGON M :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("POLYGONM((0 0 1, 5 0 2, 5 5 3, 0 5 4, 0 0 1), (1 1 10, 2 1 11, 2 2 12, 1 2 13, 1 1 10))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("POLYGONM((0 0 1, 5 0 2, 5 5 3, 0 5 4, 0 0 1), (1 1 10, 2 1 11, 2 2 12, 1 2 13, 1 1 10))", 4326))) POLYGON M((0 0 1, 5 0 2, 5 5 3, 0 5 4, 0 0 1), (1 1 10, 2 1 11, 2 2 12, 1 2 13, 1 1 10)) libspatialite-4.1.1/test/sql_stmt_tests/makecircularstripe14.testcase0000664000175000017500000000035412163502134023127 00000000000000makecircularstripe14 - BLOB stop :memory: #use in-memory database SELECT MakeCircularStripe(0, 0, 100, 90, 30, zeroblob(4)); 1 # rows (not including the header row) 1 # columns MakeCircularStripe(0, 0, 100, 90, 30, zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/rotatecoords10.testcase0000664000175000017500000000163412163502134021744 00000000000000rotate coords - Simple polygonzm :memory: #use in-memory database SELECT AsText(RotateCoords(geom, 0)), AsText(RotateCoords(geom, 90.0)), AsText(RotateCoords(geom, 180.0)), AsText(RotateCoords(geom, -90)), RotateCoords(zeroblob(20), 10), RotateCoords(geom, "hello"), RotateCoords("foo", 30) FROM (SELECT GeomFromText("POLYGONZM((0 0 1 5, 1 1 2 6, 1 2 3 7, -1 1 4 8, 0 0 1 5))") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(RotateCoords(geom, 0)) AsText(RotateCoords(geom, 90.0)) AsText(RotateCoords(geom, 180.0)) AsText(RotateCoords(geom, -90)) RotateCoords(zeroblob(20), 10) RotateCoords(geom, "hello") RotateCoords("foo", 30) POLYGON ZM((0 0 1 5, 1 1 2 6, 1 2 3 7, -1 1 4 8, 0 0 1 5)) POLYGON ZM((0 0 1 5, 1 -1 2 6, 2 -1 3 7, 1 1 4 8, 0 0 1 5)) POLYGON ZM((0 0 1 5, -1 -1 2 6, -1 -2 3 7, 1 -1 4 8, 0 0 1 5)) POLYGON ZM((0 0 1 5, -1 1 2 6, -2 1 3 7, -1 -1 4 8, 0 0 1 5)) (NULL) (NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/fromewkt14.testcase0000664000175000017500000000043312163502134021072 00000000000000fromewkt14 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;MULTIPOINT((0 1 9), (2 3 9), (4 5 9))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;MULTIPOINT((0 1 9), (2 3 9), (4 5 9))')); MULTIPOINT Z(0 1 9, 2 3 9, 4 5 9) libspatialite-4.1.1/test/sql_stmt_tests/makearc12.testcase0000664000175000017500000000026512163502134020640 00000000000000makearc12 - NULL stop :memory: #use in-memory database SELECT MakeArc(0, 0, 100, 30, NULL); 1 # rows (not including the header row) 1 # columns MakeArc(0, 0, 100, 30, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/ring19.testcase0000664000175000017500000000060412163502134020200 00000000000000InteriorRingN - out-of-range interior (error) :memory: #use in-memory database SELECT InteriorRingN(GeomFromText("POLYGON((0 0, 0 4, 4 4, 4 0, 0 0),(1 1, 1 3, 3 3, 3 1, 1 1),(2 2, 2 3, 3 3, 3 2, 2 2))"), 3); 1 # rows (not including the header row) 1 # columns InteriorRingN(GeomFromText("POLYGON((0 0, 0 4, 4 4, 4 0, 0 0),(1 1, 1 3, 3 3, 3 1, 1 1),(2 2, 2 3, 3 3, 3 2, 2 2))"), 3) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/srid7.testcase0000664000175000017500000000023712163502134020121 00000000000000SetSRID - non-geometry :memory: #use in-memory database SELECT SetSRID(100, 4326) 1 # rows (not including the header row) 1 # columns SetSRID(100, 4326) (NULL)libspatialite-4.1.1/test/sql_stmt_tests/geojson5.testcase0000664000175000017500000000117612163502134020625 00000000000000GeoJSON GeometryCollection (Polygon+Point) :memory: #use in-memory database SELECT AsGeoJSON(GeomFromText("GEOMETRYCOLLECTION(POLYGON((5 5, 6 5, 6 6, 5 6, 5 5)), POINT(7 8))", 4326), 2, 5); 1 # rows (not including the header row) 1 # columns AsGeoJSON(GeomFromText("GEOMETRYCOLLECTION(POLYGON((5 5, 6 5, 6 6, 5 6, 5 5)), POINT(7 8))", 4326), 2, 5) {"type":"GeometryCollection","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:EPSG:4326"}},"bbox":[5,5,7,8],"geometries":[{"type":"Point","coordinates":[7,8]},{"type":"Polygon","coordinates":[[[5,5],[6,5],[6,6],[5,6],[5,5]]]}]}:0 # trailing ":0" required to avoid truncation !!! libspatialite-4.1.1/test/sql_stmt_tests/geomtype24.testcase0000664000175000017500000000055712163502134021075 00000000000000geometrytype - POLYGONZM :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom) from (SELECT GeomFromText("POLYGONZM((30 20 1 2, 10 40 1 2, 45 40 1 2, 30 20 1 2),(15 5 2 3, 40 10 2 3, 10 20 2 3, 5 10 2 3, 15 5 2 3))") as geom) dummy; 1 # rows (not including the header row) 2 # columns GeometryType(geom) CoordDimension(geom) POLYGON ZM XYZMlibspatialite-4.1.1/test/sql_stmt_tests/casttomultilinestring5.testcase0000664000175000017500000000055112163502133023623 00000000000000casttomultilinestring - GEOMETRYCOLLECTION - linestring + point :memory: #use in-memory database SELECT AsText(CastToMultiLineString(GeomFromText("GEOMETRYCOLLECTION(POINT(4 2),LINESTRING(0 1, 2 3))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToMultiLineString(GeomFromText("GEOMETRYCOLLECTION(POINT(4 2),LINESTRING(0 1, 2 3))"))) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/garsmbr16.testcase0000664000175000017500000000025612163502134020676 00000000000000garsmbr - bad longitude :memory: #use in-memory database SELECT AsText(GARSMbr("001TZ")) 1 # rows (not including the header row) 1 # columns AsText(GARSMbr("001TZ")) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/casttosingle3.testcase0000664000175000017500000000033612163502133021652 00000000000000casttosingle - POINT :memory: #use in-memory database SELECT AsText(CastToSingle(GeomFromText("POINT(3 1)"))) 1 # rows (not including the header row) 1 # columns AsText(CastToSingle(GeomFromText("POINT(3 1)"))) POINT(3 1) libspatialite-4.1.1/test/sql_stmt_tests/cm_m.testcase0000664000175000017500000000023312163502133017777 00000000000000centimetres to metres :memory: #use in-memory database SELECT CvtFromCm(-2100); 1 # rows (not including the header row) 1 # columns CvtFromCm(-2100); -21.0libspatialite-4.1.1/test/sql_stmt_tests/casttoxyz1.testcase0000664000175000017500000000025012163502133021214 00000000000000casttoxyz - bad blob :memory: #use in-memory database SELECT CastToXYZ(zeroblob(99)) 1 # rows (not including the header row) 1 # columns CastToXYZ(zeroblob(99)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makecircularstripe17.testcase0000664000175000017500000000035412163502134023132 00000000000000makecircularstripe17 - text srid :memory: #use in-memory database SELECT MakeCircularStripe(0, 0, 100, 90, 30, 60, 'alpha'); 1 # rows (not including the header row) 1 # columns MakeCircularStripe(0, 0, 100, 90, 30, 60, 'alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_tests/setpoint10.testcase0000664000175000017500000000037612163502134021103 00000000000000ST_SetPoint() - NULL Point :memory: #use in-memory database SELECT ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1, NULL) 1 # rows (not including the header row) 1 # columns ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/forcenull7.testcase0000664000175000017500000000027012163502134021146 00000000000000ForceAsNull() - DOUBLE/BLOB :memory: #use in-memory database SELECT ForceAsNull(1.5, zeroblob(4)) 1 # rows (not including the header row) 1 # columns ForceAsNull(1.5, zeroblob(4)) 1.5 libspatialite-4.1.1/test/sql_stmt_tests/fromewkt20.testcase0000664000175000017500000000043512163502134021071 00000000000000fromewkt20 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;MULTIPOINTM((0 1 9), (2 3 9), (4 5 9))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;MULTIPOINTM((0 1 9), (2 3 9), (4 5 9))')); MULTIPOINT M(0 1 9, 2 3 9, 4 5 9) libspatialite-4.1.1/test/sql_stmt_tests/shiftlongitude12.testcase0000664000175000017500000000065712163502134022272 00000000000000shiftlongitude - positive and negative longitude polygonm :memory: #use in-memory database SELECT AsText(ST_Shift_Longitude(GeomFromText("POLYGONM((-175 0 1, -176 10 2, 175 10 3, 176 0 4, -175 0 1))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(ST_Shift_Longitude(GeomFromText("POLYGONM((-175 0 1, -176 10 2, 175 10 3, 176 0 4, -175 0 1))", 4326))) POLYGON M((185 0 1, 184 10 2, 175 10 3, 176 0 4, 185 0 1)) libspatialite-4.1.1/test/sql_stmt_tests/casttopoint1.testcase0000664000175000017500000000025612163502133021521 00000000000000casttopoint - bad blob :memory: #use in-memory database SELECT CastToPoint(zeroblob(99)) 1 # rows (not including the header row) 1 # columns CastToPoint(zeroblob(99)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/startpoint2.testcase0000664000175000017500000000026412163502134021362 00000000000000startpoint - bad blob (error) :memory: #use in-memory database SELECT StartPoint(zeroblob(10)); 1 # rows (not including the header row) 1 # columns StartPoint(zeroblob(10)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/wkb22.testcase0000664000175000017500000000124412163502134020017 00000000000000Hex Wkb: GeometryCollection XYZ (single polygon) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONZ(POLYGONZ((10 10 100, 11 10 101, 11 11 102, 10 11 103, 10 10 100)))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONZ(POLYGONZ((10 10 100, 11 10 101, 11 11 102, 10 11 103, 10 10 100)))", 4326))); 01EF0300000100000001EB0300000100000005000000000000000000244000000000000024400000000000005940000000000000264000000000000024400000000000405940000000000000264000000000000026400000000000805940000000000000244000000000000026400000000000C05940000000000000244000000000000024400000000000005940 libspatialite-4.1.1/test/sql_stmt_tests/geomtype52.testcase0000664000175000017500000000072412163502134021072 00000000000000geometrytype - GEOMETRYCOLLECTIONZM - two linestring :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("GEOMETRYCOLLECTIONZM(LINESTRINGZM(4 6 0 1,7 10 0 1, 12 3 1 1),LINESTRINGZM(1 2 3 4,5 4 3 4, 12 3 2 1))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) GEOMETRYCOLLECTION ZM XYZM GEOMETRYCOLLECTIONlibspatialite-4.1.1/test/sql_stmt_tests/removepoint10.testcase0000664000175000017500000000040112163502134021572 00000000000000ST_RemovePoint() - negative index :memory: #use in-memory database SELECT ST_RemovePoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), -1) 1 # rows (not including the header row) 1 # columns ST_RemovePoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), -1) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/forcenull3.testcase0000664000175000017500000000026312163502134021144 00000000000000ForceAsNull() - INTEGER/BLOB :memory: #use in-memory database SELECT ForceAsNull(1, zeroblob(4)) 1 # rows (not including the header row) 1 # columns ForceAsNull(1, zeroblob(4)) 1 libspatialite-4.1.1/test/sql_stmt_tests/ring16.testcase0000664000175000017500000000027212163502134020176 00000000000000InteriorRingN - text input (error) :memory: #use in-memory database SELECT InteriorRingN("hello", 1); 1 # rows (not including the header row) 1 # column InteriorRingN("hello", 1) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/m_mi.testcase0000664000175000017500000000022312163502134020005 00000000000000metres to miles :memory: #use in-memory database SELECT CvtToMi(1000); 1 # rows (not including the header row) 1 # columns CvtToMi(1000); 0.6213:6 libspatialite-4.1.1/test/sql_stmt_tests/translate10.testcase0000664000175000017500000000047712163502134021235 00000000000000translate - Linestring XYM :memory: #use in-memory database SELECT AsText(ST_Translate(GeomFromText("LINESTRINGM(1 2 20, 3 4 20)"), 1.4, 3.9, 5.3)); 1 # rows (not including the header row) 1 # columns AsText(ST_Translate(GeomFromText("LINESTRINGM(1 2 20, 3 4 20)"), 1.4, 3.9, 5.3)) LINESTRING M(2.4 5.9 20, 4.4 7.9 20) libspatialite-4.1.1/test/sql_stmt_tests/translate8.testcase0000664000175000017500000000045012163502134021153 00000000000000translate - Linestring XY :memory: #use in-memory database SELECT AsText(ST_Translate(GeomFromText("LINESTRING(1 2, 3 4)"), 1.4, 3.9, 5.3)); 1 # rows (not including the header row) 1 # columns AsText(ST_Translate(GeomFromText("LINESTRING(1 2, 3 4)"), 1.4, 3.9, 5.3)) LINESTRING(2.4 5.9, 4.4 7.9) libspatialite-4.1.1/test/sql_stmt_tests/srid4.testcase0000664000175000017500000000023212163502134020111 00000000000000SRID - zeroblob :memory: #use in-memory database SELECT SRID(zeroblob(100)) 1 # rows (not including the header row) 1 # columns SRID(zeroblob(100)) (NULL)libspatialite-4.1.1/test/sql_stmt_tests/ft_m.testcase0000664000175000017500000000021612163502134020013 00000000000000feet to metres :memory: #use in-memory database SELECT CvtFromFt(10); 1 # rows (not including the header row) 1 # columns CvtFromFt(10); 3.048libspatialite-4.1.1/test/sql_stmt_tests/casttoblob12.testcase0000664000175000017500000000030012163502133021356 00000000000000CastToBlob() - Invalid (2) hex_input :memory: #use in-memory database SELECT CastToBlob('0129abCF7', 1) 1 # rows (not including the header row) 1 # columns CastToBlob('0129abCF7', 1) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/buildcirclembr11.testcase0000664000175000017500000000037312163502133022215 00000000000000buildcirclembr - float args / no srid :memory: #use in-memory database SELECT AsText(BuildCircleMbr(5.5, 6.6, 0.5)) 1 # rows (not including the header row) 1 # columns AsText(BuildCircleMbr(5.5, 6.6, 0.5)) POLYGON((5 6.1, 6 6.1, 6 7.1, 5 7.1, 5 6.1)) libspatialite-4.1.1/test/sql_stmt_tests/makeellipse18.testcase0000664000175000017500000000031712163502134021534 00000000000000makeellipse18 - NULL step :memory: #use in-memory database SELECT MakeEllipse(0, 0, 100, 200, 4326, NULL); 1 # rows (not including the header row) 1 # columns MakeEllipse(0, 0, 100, 200, 4326, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/st_x9.testcase0000664000175000017500000000044312163502134020136 00000000000000ST_X9 :memory: #use in-memory database SELECT ST_X(MakePointZM(-71.1043443253471, 42.3150676015829, 0.0038723129645, 12.6389, 4326)); 1 # rows (not including the header row) 1 # columns ST_X(MakePointZM(-71.1043443253471, 42.3150676015829, 0.0038723129645, 12.6389, 4326)) -71.1043443253471 libspatialite-4.1.1/test/sql_stmt_tests/garsmbr24.testcase0000664000175000017500000000026612163502134020676 00000000000000garsmbr - bad longitude - 7 :memory: #use in-memory database SELECT AsText(GARSMbr("-01AB14")) 1 # rows (not including the header row) 1 # columns AsText(GARSMbr("-01AB14")) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/collect45.testcase0000664000175000017500000000123712163502133020667 00000000000000collect - Polygon, PolygonZ :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POLYGON((1 2, 3 4, 3 2, 1 2),(1.5 2.5, 2.5 3.5, 2.5 2.3, 1.5 2.5))"), GeomFromText("POLYGONZ((4 5 3.2, 1 2 4.6, 4 2 3.1, 4 5 3.2),(2 3 4, 3 4 1, 3 3 1, 2 3 4))"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POLYGON((1 2, 3 4, 3 2, 1 2),(1.5 2.5, 2.5 3.5, 2.5 2.3, 1.5 2.5))"), GeomFromText("POLYGONZ((4 5 3.2, 1 2 4.6, 4 2 3.1, 4 5 3.2),(2 3 4, 3 4 1, 3 3 1, 2 3 4))"))) MULTIPOLYGON Z(((1 2 0, 3 4 0, 3 2 0, 1 2 0), (1.5 2.5 0, 2.5 3.5 0, 2.5 2.3 0, 1.5 2.5 0)), ((4 5 3.2, 1 2 4.6, 4 2 3.1, 4 5 3.2), (2 3 4, 3 4 1, 3 3 1, 2 3 4))) libspatialite-4.1.1/test/sql_stmt_tests/collect39.testcase0000664000175000017500000000063312163502133020671 00000000000000collect - LineStringZM, LineString :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("LINESTRINGZM(1 2 4 1, 3 4 2 2)"), GeomFromText("LINESTRING(4 5, 1 2, 4 2)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("LINESTRINGZM(1 2 4 1, 3 4 2 2)"), GeomFromText("LINESTRING(4 5, 1 2, 4 2)"))) MULTILINESTRING ZM((1 2 4 1, 3 4 2 2), (4 5 0 0, 1 2 0 0, 4 2 0 0)) libspatialite-4.1.1/test/sql_stmt_tests/fromewkt27.testcase0000664000175000017500000000237512163502134021105 00000000000000fromewkt27 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(POINT(8 8 9 7), MULTIPOLYGON(((0 0 9 7, 5 0 9 7, 5 5 9 7, 0 5 9 7, 0 0 9 7), (1 1 9 7, 2 1 9 7, 2 2 9 7, 1 2 9 7, 1 1 9 7)), ((10 10 9 7, 11 10 9 7, 11 11 9 7, 10 11 9 7, 10 10 9 7))), POINT(7 7 9 7), MULTILINESTRING((0 1 9 7, 2 3 9 7), (4 5 9 7, 6 7 9 7)), POINT(6 6 9 7), MULTIPOINT((0 1 9 7), (2 3 9 7), (4 5 9 7)), POINT(9 9 9 7))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(POINT(8 8 9 7), MULTIPOLYGON(((0 0 9 7, 5 0 9 7, 5 5 9 7, 0 5 9 7, 0 0 9 7), (1 1 9 7, 2 1 9 7, 2 2 9 7, 1 2 9 7, 1 1 9 7)), ((10 10 9 7, 11 10 9 7, 11 11 9 7, 10 11 9 7, 10 10 9 7))), POINT(7 7 9 7), MULTILINESTRING((0 1 9 7, 2 3 9 7), (4 5 9 7, 6 7 9 7)), POINT(6 6 9 7), MULTIPOINT((0 1 9 7), (2 3 9 7), (4 5 9 7)), POINT(9 9 9 7))')); GEOMETRYCOLLECTION ZM(POINT ZM(8 8 9 7), POINT ZM(7 7 9 7), POINT ZM(6 6 9 7), POINT ZM(0 1 9 7), POINT ZM(2 3 9 7), POINT ZM(4 5 9 7), POINT ZM(9 9 9 7), LINESTRING ZM(0 1 9 7, 2 3 9 7), LINESTRING ZM(4 5 9 7, 6 7 9 7), POLYGON ZM((0 0 9 7, 5 0 9 7, 5 5 9 7, 0 5 9 7, 0 0 9 7), (1 1 9 7, 2 1 9 7, 2 2 9 7, 1 2 9 7, 1 1 9 7)), POLYGON ZM((10 10 9 7, 11 10 9 7, 11 11 9 7, 10 11 9 7, 10 10 9 7))) libspatialite-4.1.1/test/sql_stmt_tests/compressgeometry36.testcase0000664000175000017500000000046712163502133022655 00000000000000CompressGeometry - MULTIPOINT M :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("MULTIPOINTM(10 10 1, 11 11 2)", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("MULTIPOINTM(10 10 1, 11 11 2)", 4326))) MULTIPOINT M(10 10 1, 11 11 2) libspatialite-4.1.1/test/sql_stmt_tests/addpoint26.testcase0000664000175000017500000000050712163502133021042 00000000000000ST_AddPoint() - insert into the middle Z :memory: #use in-memory database SELECT AsText(AddPoint(GeomFromText('LINESTRINGZ(0 0 1, 1 0 2)'), MakePoint(1, 1), 1)) 1 # rows (not including the header row) 1 # columns AsText(AddPoint(GeomFromText('LINESTRINGZ(0 0 1, 1 0 2)'), MakePoint(1, 1), 1)) LINESTRING Z(0 0 1, 1 1 0, 1 0 2) libspatialite-4.1.1/test/sql_stmt_tests/removepoint3.testcase0000664000175000017500000000026612163502134021525 00000000000000ST_RemovePoint() - DOUBLE line :memory: #use in-memory database SELECT ST_RemovePoint(1.7, NULL) 1 # rows (not including the header row) 1 # columns ST_RemovePoint(1.7, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/collectextract17.testcase0000664000175000017500000000047212163502133022261 00000000000000Collection Extract - Extract linestringM :memory: #use in-memory database SELECT AsText(CollectionExtract(GeomFromText("LINESTRINGM(1 2 4, 4 3 1)"), 2)); 1 # rows (not including the header row) 1 # columns AsText(CollectionExtract(GeomFromText("LINESTRINGM(1 2 4, 4 3 1)"), 2)) MULTILINESTRING M((1 2 4, 4 3 1)) libspatialite-4.1.1/test/sql_stmt_tests/geomfromkml12.testcase0000664000175000017500000000224312163502134021552 00000000000000From KML - LINESTRING :memory: SELECT AsText(GeomFromKML(" -112.2550785337791,36.07954952145647 -112.2549277039738,36.08117083492122 -112.2552505069063,36.08260761307279 -112.2564540158376,36.08395660588506 -112.2580238976449,36.08511401044813 -112.2595218489022,36.08584355239394 -112.262073428656,36.08626019085147 -112.2633204928495,36.08621519860091 -112.2644963846444,36.08627897945274 -112.2656969554589,36.08649599090644 ")) 1 # rows 1 # column AsText(GeomFromKML(" -112.2550785337791,36.07954952145647 -112.2549277039738,36.08117083492122 -112.2552505069063,36.08260761307279 -112.2564540158376,36.08395660588506 -112.2580238976449,36.08511401044813 -112.2595218489022,36.08584355239394 -112.262073428656,36.08626019085147 -112.2633204928495,36.08621519860091 -112.2644963846444,36.08627897945274 -112.2656969554589,36.08649599090644 ")) LINESTRING(-112.255079 36.07955, -112.254928 36.081171, -112.255251 36.082608, -112.256454 36.083957, -112.258024 36.085114, -112.259522 36.085844, -112.262073 36.08626, -112.26332 36.086215, -112.264496 36.086279, -112.265697 36.086496)libspatialite-4.1.1/test/sql_stmt_tests/maxz5.testcase0000664000175000017500000000036512163502134020137 00000000000000MaxZ - Linestring XYM :memory: #use in-memory database SELECT ST_MaxZ(GeomFromText('LINESTRINGM(1 2 10, 3 4 11, 5 6 12)')); 1 # rows (not including the header row) 1 # columns ST_MaxZ(GeomFromText('LINESTRINGM(1 2 10, 3 4 11, 5 6 12)')) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/collect52.testcase0000664000175000017500000000145112163502133020663 00000000000000collect - PolygonZM, PolygonZM :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POLYGONZM((1 2 4 1, 3 4 2 1, 3 2 3 2, 1 2 4 1),(1.5 2.5 4 1, 2.5 3.5 3 2, 2.5 2.3 3 1, 1.5 2.5 4 1))"), GeomFromText("POLYGONZM((4 5 3.2 4, 1 2 4.6 5, 4 2 3.1 3, 4 5 3.2 4),(2 3 4 1, 3 4 1 2, 3 3 1 3, 2 3 4 1))"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POLYGONZM((1 2 4 1, 3 4 2 1, 3 2 3 2, 1 2 4 1),(1.5 2.5 4 1, 2.5 3.5 3 2, 2.5 2.3 3 1, 1.5 2.5 4 1))"), GeomFromText("POLYGONZM((4 5 3.2 4, 1 2 4.6 5, 4 2 3.1 3, 4 5 3.2 4),(2 3 4 1, 3 4 1 2, 3 3 1 3, 2 3 4 1))"))) MULTIPOLYGON ZM(((1 2 4 1, 3 4 2 1, 3 2 3 2, 1 2 4 1), (1.5 2.5 4 1, 2.5 3.5 3 2, 2.5 2.3 3 1, 1.5 2.5 4 1)), ((4 5 3.2 4, 1 2 4.6 5, 4 2 3.1 3, 4 5 3.2 4), (2 3 4 1, 3 4 1 2, 3 3 1 3, 2 3 4 1))) libspatialite-4.1.1/test/sql_stmt_tests/fromewkt12.testcase0000664000175000017500000000060312163502134021067 00000000000000fromtewkt12 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(MULTILINESTRING((0 1 9, 2 3 9), (4 5 9, 6 7 9)))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(MULTILINESTRING((0 1 9, 2 3 9), (4 5 9, 6 7 9)))')); GEOMETRYCOLLECTION Z(LINESTRING Z(0 1 9, 2 3 9), LINESTRING Z(4 5 9, 6 7 9)) libspatialite-4.1.1/test/sql_stmt_tests/mbrminmax7.testcase0000664000175000017500000000024212163502134021146 00000000000000MbrMaxY- bad blob :memory: #use in-memory database SELECT MbrMaxY(zeroblob(49)) 1 # rows (not including the header row) 1 # columns MbrMaxY(zeroblob(49)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/dissolve10.testcase0000664000175000017500000000050512163502133021057 00000000000000dissolve - POINT M :memory: #use in-memory database SELECT AsText(DissolveSegments(geom)),AsText(DissolvePoints(geom)) from (SELECT GeomFromText("POINTM(1 2 4.3)") as geom) dummy; 1 # rows (not including the header row) 2 # columns AsText(DissolveSegments(geom)) AsText(DissolvePoints(geom)) POINT M(1 2 4.3) POINT M(1 2 4.3)libspatialite-4.1.1/test/sql_stmt_tests/asgml2.testcase0000664000175000017500000000027012163502133020252 00000000000000asgml - bad args (broken blob, 2 arg) :memory: #use in-memory database SELECT asgml(2, zeroblob(20)); 1 # rows (not including the header row) 1 # columns asgml(2, zeroblob(20)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/buildcirclembr7.testcase0000664000175000017500000000030112163502133022131 00000000000000buildcirclembr - null args :memory: #use in-memory database SELECT BuildCircleMbr(5, 6, NULL, NULL) 1 # rows (not including the header row) 1 # columns BuildCircleMbr(5, 6, NULL, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geometryn11.testcase0000664000175000017500000000057012163502134021244 00000000000000Geometry N - multilinestringzm :memory: #use in-memory database SELECT AsText(GeometryN(GeomFromText("MULTILINESTRINGZM((1 2 4 1.6, 4 2.3 9 8.7, 1 2 3 1),(0 1 2 3, 8 1 1 4))"), 2)); 1 # rows (not including the header row) 1 # columns AsText(GeometryN(GeomFromText("MULTILINESTRINGZM((1 2 4 1.6, 4 2.3 9 8.7, 1 2 3 1),(0 1 2 3, 8 1 1 4))"), 2)) LINESTRING ZM(0 1 2 3, 8 1 1 4) libspatialite-4.1.1/test/sql_stmt_tests/badGML3.testcase0000664000175000017500000000054612163502133020244 00000000000000bad GML: Linestring :memory: #use in-memory database SELECT GeomFromGML('1.1,2.2 3.3,4.41.1,2.2 3.3,4.410 10 20 10 20 20 10 20 10 1015 15 16 15 16 16 15 16 15 15:0 # trailing ":0" required to avoid truncation !!! libspatialite-4.1.1/test/sql_stmt_tests/uncompressgeom2.testcase0000664000175000017500000000026512163502134022222 00000000000000uncompressgeometry - non blob :memory: #use in-memory database SELECT UncompressGeometry("foo") 1 # rows (not including the header row) 1 # columns UncompressGeometry("foo") (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geomfromkml16.testcase0000664000175000017500000000074112163502134021557 00000000000000From KML - Multigeometry - 2 x Point 2D :memory: SELECT AsText(GeomFromKML("-122.0822035425683,37.42228990140251-122,37")) 1 # rows 1 # column AsText(GeomFromKML("-122.0822035425683,37.42228990140251-122,37")) MULTIPOINT(-122.082204 37.42229, -122 37)libspatialite-4.1.1/test/sql_stmt_tests/linesfromrings2.testcase0000664000175000017500000000050512163502134022212 00000000000000LinesFromRings - Simple polygon, default :memory: #use in-memory database SELECT AsText(LinesFromRings(GeomFromText("POLYGON((0 0, 1 1, 0 2, -1 1, 0 0))"))); 1 # rows (not including the header row) 1 # columns AsText(LinesFromRings(GeomFromText("POLYGON((0 0, 1 1, 0 2, -1 1, 0 0))"))) LINESTRING(0 0, 1 1, 0 2, -1 1, 0 0) libspatialite-4.1.1/test/sql_stmt_tests/badEWKT1.testcase0000664000175000017500000000031012163502133020362 00000000000000bad EWKT: Point :memory: #use in-memory database SELECT GeomFromEWKT("SRID=4326;POINT(11.2 12.3"); 1 # rows (not including the header row) 1 # columns GeomFromEWKT("SRID=4326;POINT(11.2 12.3") (NULL) libspatialite-4.1.1/test/sql_stmt_tests/reflectcoords1.testcase0000664000175000017500000000035012163502134022004 00000000000000reflectcoords1 :memory: #use in-memory database SELECT AsText(ReflectCoords(GeomFromText("POINT(1 2)"), 1, 0)); 1 # rows (not including the header row) 1 # columns AsText(ReflectCoords(GeomFromText("POINT(1 2)"), 1, 0)) POINT(-1 2) libspatialite-4.1.1/test/sql_stmt_tests/srid2.testcase0000664000175000017500000000024512163502134020113 00000000000000SRID :memory: #use in-memory database SELECT SRID(GeomFromText("Point(1 2)")) 1 # rows (not including the header row) 1 # columns SRID(GeomFromText("Point(1 2)")) 0 libspatialite-4.1.1/test/sql_stmt_tests/asgml4.testcase0000664000175000017500000000026112163502133020254 00000000000000asgml - bad args (non-blob, 3 arg) :memory: #use in-memory database SELECT asgml(2, "hello", 5); 1 # rows (not including the header row) 1 # columns asgml(2, "hello", 5) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/reverse2.testcase0000664000175000017500000000023612163502134020625 00000000000000reverse - invalid :memory: #use in-memory database SELECT ST_Reverse("alpha"); 1 # rows (not including the header row) 1 # columns ST_Reverse("alpha") (NULL) libspatialite-4.1.1/test/sql_stmt_tests/wkttosql3.testcase0000664000175000017500000000026112163502134021041 00000000000000ST_WKTToSQL - bad WKT :memory: #use in-memory database SELECT ST_WKTToSQL("Point(1 2 3)") 1 # rows (not including the header row) 1 # columns ST_WKTToSQL("Point(1 2 3)") (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makearc6.testcase0000664000175000017500000000030212163502134020553 00000000000000makearc6 - BLOB cy :memory: #use in-memory database SELECT MakeArc(0, zeroblob(4), 100, 30, 60); 1 # rows (not including the header row) 1 # columns MakeArc(0, zeroblob(4), 100, 30, 60) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/casttomultipoint3.testcase0000664000175000017500000000035712163502133022600 00000000000000casttomultipoint - POINT :memory: #use in-memory database SELECT AsText(CastToMultiPoint(GeomFromText("POINT(1 2)"))) 1 # rows (not including the header row) 1 # columns AsText(CastToMultiPoint(GeomFromText("POINT(1 2)"))) MULTIPOINT(1 2) libspatialite-4.1.1/test/sql_stmt_tests/geomtype68.testcase0000664000175000017500000000063612163502134021103 00000000000000geometrytype - MULTILINESTRINGZM - one line :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("MULTILINESTRINGZM((30 20 1 2, 10 40 1 2, 45 40 1 2, 30 20 1 2))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) MULTILINESTRING ZM XYZM MULTILINESTRINGlibspatialite-4.1.1/test/sql_stmt_tests/collectextract16.testcase0000664000175000017500000000047212163502133022260 00000000000000Collection Extract - Extract linestringZ :memory: #use in-memory database SELECT AsText(CollectionExtract(GeomFromText("LINESTRINGZ(1 2 4, 4 3 1)"), 2)); 1 # rows (not including the header row) 1 # columns AsText(CollectionExtract(GeomFromText("LINESTRINGZ(1 2 4, 4 3 1)"), 2)) MULTILINESTRING Z((1 2 4, 4 3 1)) libspatialite-4.1.1/test/sql_stmt_tests/maxm3.testcase0000664000175000017500000000034012163502134020111 00000000000000MaxM - Linestring XY :memory: #use in-memory database SELECT ST_MaxM(GeomFromText('LINESTRING(1 2, 3 4, 5 6)')); 1 # rows (not including the header row) 1 # columns ST_MaxM(GeomFromText('LINESTRING(1 2, 3 4, 5 6)')) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/routing2.testcase0000664000175000017500000000067212163502134020645 00000000000000routing: alphanumeric ids (Dijkstra) sql_stmt_tests/testdb1.sqlite SELECT Algorithm, ArcRowid, NodeFrom, NodeTo, Cost FROM alpha_roads_net WHERE NodeFrom = 'NODE_72' AND NodeTo = 'NODE_30'; 4 # rows (not including the header row) 5 # columns Algorithm ArcRowid NodeFrom NodeTo Cost Dijkstra (NULL) NODE_72 NODE_30 0.001575:6 Dijkstra 72 NODE_72 NODE_73 0.000162:6 Dijkstra 73 NODE_73 NODE_48 0.000810:6 Dijkstra 48 NODE_48 NODE_30 0.000602:6 libspatialite-4.1.1/test/sql_stmt_tests/fdo_ogr1.testcase0000664000175000017500000000020512163502134020564 00000000000000FDO_OGR1 :memory: #use in-memory database SELECT AutoFDOStart() 1 # rows (not including the header row) 1 # columns AutoFDOStart() 0 libspatialite-4.1.1/test/sql_stmt_tests/isempty3.testcase0000664000175000017500000000024012163502134020640 00000000000000isempty - zeroblob :memory: #use in-memory database SELECT IsEmpty(zeroblob(200)) 1 # rows (not including the header row) 1 # columns IsEmpty(zeroblob(200)) -1 libspatialite-4.1.1/test/sql_stmt_tests/casttomultipolygon5.testcase0000664000175000017500000000050112163502133023127 00000000000000casttomultipolygon - POLYGON :memory: #use in-memory database SELECT AsText(CastToMultiPolygon(GeomFromText("POLYGON((0 1, 2 1, 2 4, 0 4, 0 1))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToMultiPolygon(GeomFromText("POLYGON((0 1, 2 1, 2 4, 0 4, 0 1))"))) MULTIPOLYGON(((0 1, 2 1, 2 4, 0 4, 0 1))) libspatialite-4.1.1/test/sql_stmt_tests/casttomulti11.testcase0000664000175000017500000000052612163502133021603 00000000000000casttosingle - Geometry collection, polygon :memory: #use in-memory database SELECT AsText(CastToSingle(GeomFromText("GEOMETRYCOLLECTION(POLYGON((4 3, 4 1, 0 3, 4 3)))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToSingle(GeomFromText("GEOMETRYCOLLECTION(POLYGON((4 3, 4 1, 0 3, 4 3)))"))) POLYGON((4 3, 4 1, 0 3, 4 3)) libspatialite-4.1.1/test/sql_stmt_tests/mbr32.testcase0000664000175000017500000000046712163502134020023 00000000000000MbrDisjoint - Line + Line right :memory: #use in-memory database SELECT MbrDisjoint(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("LINESTRING(3 1, 4 0)")); 1 # rows (not including the header row) 1 # columns MbrDisjoint(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("LINESTRING(3 1, 4 0)")) # header 1libspatialite-4.1.1/test/sql_stmt_tests/collect14.testcase0000664000175000017500000000050012163502133020653 00000000000000collect - PointZ, PointZM :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POINTZ(4 5 3.2)"), GeomFromText("POINTZM(1 2 6 4)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POINTZ(4 5 3.2)"), GeomFromText("POINTZM(1 2 6 4)"))) MULTIPOINT ZM(4 5 3.2 0, 1 2 6 4) libspatialite-4.1.1/test/sql_stmt_tests/fromewkt3.testcase0000664000175000017500000000014112163502134021004 00000000000000From EWKT - non text :memory: SELECT GeomFromEwkt(43) 1 # rows 1 # column GeomFromEwkt(43) (NULL)libspatialite-4.1.1/test/sql_stmt_tests/fromewkt25.testcase0000664000175000017500000000135212163502134021075 00000000000000fromewkt25 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(MULTIPOLYGON(((0 0 9 7, 5 0 9 7, 5 5 9 7, 0 5 9 7, 0 0 9 7), (1 1 9 7, 2 1 9 7, 2 2 9 7, 1 2 9 7, 1 1 9 7)), ((10 10 9 7, 11 10 9 7, 11 11 9 7, 10 11 9 7, 10 10 9 7))))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(MULTIPOLYGON(((0 0 9 7, 5 0 9 7, 5 5 9 7, 0 5 9 7, 0 0 9 7), (1 1 9 7, 2 1 9 7, 2 2 9 7, 1 2 9 7, 1 1 9 7)), ((10 10 9 7, 11 10 9 7, 11 11 9 7, 10 11 9 7, 10 10 9 7))))')); GEOMETRYCOLLECTION ZM(POLYGON ZM((0 0 9 7, 5 0 9 7, 5 5 9 7, 0 5 9 7, 0 0 9 7), (1 1 9 7, 2 1 9 7, 2 2 9 7, 1 2 9 7, 1 1 9 7)), POLYGON ZM((10 10 9 7, 11 10 9 7, 11 11 9 7, 10 11 9 7, 10 10 9 7))) libspatialite-4.1.1/test/sql_stmt_tests/translate15.testcase0000664000175000017500000000117712163502134021240 00000000000000translate - Polygon XYZM :memory: #use in-memory database SELECT AsText(ST_Translate(GeomFromText("POLYGONZM((0 0 10 1, 10 0 10 2, 10 10 11 3, 0 10 11 4, 0 0 10 1), (5 5 12 1, 6 5 12 2, 6 6 13 3, 5 6 13 4, 5 5 12 1))"), 1.4, 3.9, 5.3)); 1 # rows (not including the header row) 1 # columns AsText(ST_Translate(GeomFromText("POLYGONZM((0 0 10 1, 10 0 10 2, 10 10 11 3, 0 10 11 4, 0 0 10 1), (5 5 12 1, 6 5 12 2, 6 6 13 3, 5 6 13 4, 5 5 12 1))"), 1.4, 3.9, 5.3)) POLYGON ZM((1.4 3.9 15.3 1, 11.4 3.9 15.3 2, 11.4 13.9 16.3 3, 1.4 13.9 16.3 4, 1.4 3.9 15.3 1), (6.4 8.9 17.3 1, 7.4 8.9 17.3 2, 7.4 9.9 18.3 3, 6.4 9.9 18.3 4, 6.4 8.9 17.3 1)) libspatialite-4.1.1/test/sql_stmt_tests/sanitizeGeometry4.testcase0000664000175000017500000000065212163502134022520 00000000000000Sanitize Geometry - MultilinestringZ dupe points :memory: #use in-memory database SELECT AsText(SanitizeGeometry(GeomFromText('MULTILINESTRINGZ((0 0 0, 1 0 9, 1 1 8, 0 1 8, 1 1 8, 1 1 8, 0 0 0))'))); 1 # rows (not including the header row) 1 # columns AsText(SanitizeGeometry(GeomFromText('MULTILINESTRINGZ((0 0 0, 1 0 9, 1 1 8, 0 1 8, 1 1 8, 1 1 8, 0 0 0))'))) MULTILINESTRING Z((0 0 0, 1 0 9, 1 1 8, 0 1 8, 1 1 8, 0 0 0)) libspatialite-4.1.1/test/sql_stmt_tests/testdb1.sqlite0000664000175000017500002004600012163502134020125 00000000000000SQLite format 3@ -##g!f  2Mxqjc\UNG@92   h ] Ob f Q ~ s Bt ܁p t4 x:8GáM؝.E2;A>ϙM\\flr 0@CJ  epsg S7n#3alpha_roadsgeomGeometry [LINESTRING,XY,SRID=4326] successfully recovered2012-02-27 18:03:333.7.103.0.2X_3roadsgeomR*Tree Spatial Index successfully created2012-02-27 17:24:133.7.103.0.2h3roadsgeomGeometry [LINESTRING,XY,SRID=4326] successfully recovered2012-02-27 17:24:033.7.103.0.2V+E3#spatial_ref_systable successfully populated2011-10-24 09:00:543.7.43.0.0-beta1U-A3#geometry_columnstable successfully created2011-10-24 09:00:523.7.43.0.0-beta1T+A3#spatial_ref_systable successfully created2011-10-24 09:00:523.7.43.0.0-beta1 1spatialite_history %#!alpha_roadsgeomLINESTRINGXY!roadsgeomLINESTRINGXY #alpha_roadsgeomroadsgeom 00[++mtablespatial_ref_sysspatial_ref_sysCREATE TABLE spatial_ref_sys ( srid INTEGER NOT NULL PRIMARY KEY, auth_name TEXT NOT NULL, auth_srid INTEGER NOT NULL, ref_sys_name TEXT, proj4text TEXT NOT NULL, srs_wkt TEXT)3+1indexidx_spatial_ref_sysspatial_ref_sysCREATE UNIQUE INDEX idx_spatial_ref_sys ON spatial_ref_sys (auth_srid, auth_name)11]tablespatialite_historyspatialite_historyCREATE TABLE spatialite_history ( event_id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, table_name TEXT NOT NULL, geometry_column TEXT, event TEXT NOT NULL, timestamp TEXT NOT NULL, ver_sqlite TEXT NOT NULL, ver_splite TEXT NOT NULL)P++Ytablesqlite_sequencesqlite_sequenceCREATE TABLE sqlite_sequence(name,seq) #d --Mtablegeometry_columnsgeometry_columnsCREATE TABLE geometry_columns ( f_table_name TEXT NOT NULL, f_geometry_column TEXT NOT NULL, type TEXT NOT NULL, coord_dimension TEXT NOT NULL, srid INTEGER NOT NULL, spatial_index_enabled INTEGER NOT NULL, CONSTRAINT pk_geom_cols PRIMARY KEY (f_table_name, f_geometry_column), CONSTRAINT fk_gc_srs FOREIGN KEY (srid) REFERENCES spatial_ref_sys (srid))?S-indexsqlite_autoindex_geometry_columns_1geometry_columnsd--}indexidx_srid_geocolsgeometry_columns CREATE INDEX idx_srid_geocols ON geometry_columns (srid)3//viewgeom_cols_ref_sysgeom_cols_ref_sysCREATE VIEW geom_cols_ref_sys AS SELECT f_table_name, f_geometry_column, type, coord_dimension, spatial_ref_sys.srid AS srid, auth_name, auth_srid, ref_sys_name, proj4text FROM geometry_columns, spatial_ref_sys WHERE geometry_columns.srid = spatial_ref_sys.srid    II*w^ 99Wtableviews_geometry_columnsviews_geometry_columns CREATE TABLE views_geometry_columns ( view_name TEXT NOT NULL, view_geometry TEXT NOT NULL, view_rowid TEXT NOT NULL, f_table_name VARCHAR(256) NOT NULL, f_geometry_column VARCHAR(256) NOT NULL, CONSTRAINT pk_geom_cols_views PRIMARY KEY (view_name, view_geometry), CONSTRAINT fk_views_geom_cols FOREIGN KEY (f_table_name, f_geometry_column) REFERENCES geometry_columns (f_table_name, f_geometry_column) ON DELETE CASCADE)K _9indexsqlite_autoindex_views_geometry_columns_1views_geometry_columns  '99indexidx_viewsjoinviews_geometry_columnsCREATE INDEX idx_viewsjoin ON views_geometry_columns (f_table_name, f_geometry_column)    00FY 99Mtablevirts_geometry_columnsvirts_geometry_columnsCREATE TABLE virts_geometry_columns ( virt_name TEXT NOT NULL, virt_geometry TEXT NOT NULL, type VARCHAR(30) NOT NULL, srid INTEGER NOT NULL, CONSTRAINT pk_geom_cols_virts PRIMARY KEY (virt_name, virt_geometry), CONSTRAINT fk_vgc_srid FOREIGN KEY (srid) REFERENCES spatial_ref_sys (srid))K _9indexsqlite_autoindex_virts_geometry_columns_1virts_geometry_columnsk'9indexidx_virtssridvirts_geometry_columnsCREATE INDEX idx_virtssrid ON virts_geometry_columns (srid)777 tablegeometry_columns_authgeometry_columns_authCREATE TABLE geometry_columns_auth ( f_table_name VARCHAR(256) NOT NULL, f_geometry_column VARCHAR(256) NOT NULL, read_only INTEGER NOT NULL, hidden INTEGER NOT NULL, CONSTRAINT pk_gc_auth PRIMARY KEY (f_table_name, f_geometry_column), CONSTRAINT fk_gc_auth FOREIGN KEY (f_table_name, f_geometry_column) REFERENCES geometry_columns (f_table_name, f_geometry_column) ON DELETE CASCADE)      Wo;tableroadsroadsWCREATE TABLE roads( id INT, nI]7indexsqlite_autoindex_geometry_columns_auth_1geometry_columns_authb%%tableSpatialIndexSpatialIndexCREATE VIRTUAL TABLE SpatialIndex USING VirtualSpatialIndex()Stabledata1data1VCREATE TABLE data1 (a int, b double, nulls int, blobs BLOB)o;tableroadsroadsWCREATE TABLE roads( id INT, name TEXT, geom NUM, node_from INT, node_to INT )|)Atriggerggi_roads_geomroadsCREATE TRIGGER "ggi_roads_geom" BEFORE INSERT ON "roads" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'roads.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT type FROM geometry_columns WHERE f_table_name = 'roads' AND f_geometry_column = 'geom' AND GeometryConstraints(NEW."geom", type, srid, 'XY') = 1) IS NULL; END P ]] epsgAnguilla 1957 / British West Indies Grid+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x_0=400000 +y_0=0 +ellps=clrk80 +units=m +no_defsPROJCS["Anguilla 1957 / British West Indies Grid",GEOGCS["Anguilla 1957",DATUM["Anguilla_1957",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6600"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4600"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-62],PARAMETER["scale_factor",0.9995],PARAMETER["false_easting",400000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2000"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Q []epsgAntigua 1943 / British West Indies Grid+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x_0=400000 +y_0=0 +ellps=clrk80 +units=m +no_defsPROJCS["Antigua 1943 / British West Indies Grid",GEOGCS["Antigua 1943",DATUM["Antigua_1943",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6601"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4601"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-62],PARAMETER["scale_factor",0.9995],PARAMETER["false_easting",400000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2001"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WR ]CepsgDominica 1945 / British West Indies Grid+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x_0=400000 +y_0=0 +ellps=clrk80 +towgs84=725,685,536,0,0,0,0 +units=m +no_defsPROJCS["Dominica 1945 / British West Indies Grid",GEOGCS["Dominica 1945",DATUM["Dominica_1945",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[725,685,536,0,0,0,0],AUTHORITY["EPSG","6602"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4602"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-62],PARAMETER["scale_factor",0.9995],PARAMETER["false_easting",400000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2002"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] SS [=epsgGrenada 1953 / British West Indies Grid+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x_0=400000 +y_0=0 +ellps=clrk80 +towgs84=72,213.7,93,0,0,0,0 +units=m +no_defsPROJCS["Grenada 1953 / British West Indies Grid",GEOGCS["Grenada 1953",DATUM["Grenada_1953",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[72,213.7,93,0,0,0,0],AUTHORITY["EPSG","6603"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4603"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-62],PARAMETER["scale_factor",0.9995],PARAMETER["false_easting",400000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2003"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] _T aOepsgMontserrat 1958 / British West Indies Grid+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x_0=400000 +y_0=0 +ellps=clrk80 +towgs84=174,359,365,0,0,0,0 +units=m +no_defsPROJCS["Montserrat 1958 / British West Indies Grid",GEOGCS["Montserrat 1958",DATUM["Montserrat_1958",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[174,359,365,0,0,0,0],AUTHORITY["EPSG","6604"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4604"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-62],PARAMETER["scale_factor",0.9995],PARAMETER["false_easting",400000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2004"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  U _] epsgSt. Kitts 1955 / British West Indies Grid+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x_0=400000 +y_0=0 +ellps=clrk80 +units=m +no_defsPROJCS["St. Kitts 1955 / British West Indies Grid",GEOGCS["St. Kitts 1955",DATUM["St_Kitts_1955",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6605"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4605"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-62],PARAMETER["scale_factor",0.9995],PARAMETER["false_easting",400000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2005"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] \V _IepsgSt. Lucia 1955 / British West Indies Grid+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x_0=400000 +y_0=0 +ellps=clrk80 +towgs84=-149,128,296,0,0,0,0 +units=m +no_defsPROJCS["St. Lucia 1955 / British West Indies Grid",GEOGCS["St. Lucia 1955",DATUM["St_Lucia_1955",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-149,128,296,0,0,0,0],AUTHORITY["EPSG","6606"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4606"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-62],PARAMETER["scale_factor",0.9995],PARAMETER["false_easting",400000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2006"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] vW _/gepsgSt. Vincent 45 / British West Indies Grid+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x_0=400000 +y_0=0 +ellps=clrk80 +towgs84=195.671,332.517,274.607,0,0,0,0 +units=m +no_defsPROJCS["St. Vincent 45 / British West Indies Grid",GEOGCS["St. Vincent 1945",DATUM["St_Vincent_1945",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[195.671,332.517,274.607,0,0,0,0],AUTHORITY["EPSG","6607"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4607"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-62],PARAMETER["scale_factor",0.9995],PARAMETER["false_easting",400000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2007"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] X CIepsgNAD27(CGQ77) / SCoPQ zone 2+proj=tmerc +lat_0=0 +lon_0=-55.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(CGQ77) / SCoPQ zone 2",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-55.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2008"],AXIS["X",EAST],AXIS["Y",NORTH]] Y CIepsgNAD27(CGQ77) / SCoPQ zone 3+proj=tmerc +lat_0=0 +lon_0=-58.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(CGQ77) / SCoPQ zone 3",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-58.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2009"],AXIS["X",EAST],AXIS["Y",NORTH]] Z CIepsgNAD27(CGQ77) / SCoPQ zone 4+proj=tmerc +lat_0=0 +lon_0=-61.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(CGQ77) / SCoPQ zone 4",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-61.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2010"],AXIS["X",EAST],AXIS["Y",NORTH]] [ CIepsgNAD27(CGQ77) / SCoPQ zone 5+proj=tmerc +lat_0=0 +lon_0=-64.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(CGQ77) / SCoPQ zone 5",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-64.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2011"],AXIS["X",EAST],AXIS["Y",NORTH]] \ CIepsgNAD27(CGQ77) / SCoPQ zone 6+proj=tmerc +lat_0=0 +lon_0=-67.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(CGQ77) / SCoPQ zone 6",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-67.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2012"],AXIS["X",EAST],AXIS["Y",NORTH]] ] CIepsgNAD27(CGQ77) / SCoPQ zone 7+proj=tmerc +lat_0=0 +lon_0=-70.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(CGQ77) / SCoPQ zone 7",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-70.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2013"],AXIS["X",EAST],AXIS["Y",NORTH]] ^ CIepsgNAD27(CGQ77) / SCoPQ zone 8+proj=tmerc +lat_0=0 +lon_0=-73.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(CGQ77) / SCoPQ zone 8",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-73.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2014"],AXIS["X",EAST],AXIS["Y",NORTH]] _ CIepsgNAD27(CGQ77) / SCoPQ zone 9+proj=tmerc +lat_0=0 +lon_0=-76.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(CGQ77) / SCoPQ zone 9",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-76.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2015"],AXIS["X",EAST],AXIS["Y",NORTH]] ` EIepsgNAD27(CGQ77) / SCoPQ zone 10+proj=tmerc +lat_0=0 +lon_0=-79.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(CGQ77) / SCoPQ zone 10",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-79.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2016"],AXIS["X",EAST],AXIS["Y",NORTH]]   sa 9ImepsgNAD27(76) / MTM zone 8+proj=tmerc +lat_0=0 +lon_0=-73.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(76) / MTM zone 8",GEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-73.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2017"],AXIS["X",EAST],AXIS["Y",NORTH]]   sb 9ImepsgNAD27(76) / MTM zone 9+proj=tmerc +lat_0=0 +lon_0=-76.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(76) / MTM zone 9",GEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-76.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2018"],AXIS["X",EAST],AXIS["Y",NORTH]] uc ;IoepsgNAD27(76) / MTM zone 10+proj=tmerc +lat_0=0 +lon_0=-79.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(76) / MTM zone 10",GEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-79.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2019"],AXIS["X",EAST],AXIS["Y",NORTH]] d ;I epsgNAD27(76) / MTM zone 11+proj=tmerc +lat_0=0 +lon_0=-82.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(76) / MTM zone 11",GEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-82.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2020"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ~e ;EepsgNAD27(76) / MTM zone 12+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(76) / MTM zone 12",GEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2021"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ~f ;EepsgNAD27(76) / MTM zone 13+proj=tmerc +lat_0=0 +lon_0=-84 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(76) / MTM zone 13",GEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-84],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2022"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ~g ;EepsgNAD27(76) / MTM zone 14+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(76) / MTM zone 14",GEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-87],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2023"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ~h ;EepsgNAD27(76) / MTM zone 15+proj=tmerc +lat_0=0 +lon_0=-90 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(76) / MTM zone 15",GEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-90],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2024"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ~i ;EepsgNAD27(76) / MTM zone 16+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(76) / MTM zone 16",GEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-93],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2025"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ~j ;EepsgNAD27(76) / MTM zone 17+proj=tmerc +lat_0=0 +lon_0=-96 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(76) / MTM zone 17",GEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-96],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2026"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ''Uk=qepsgNAD27(76) / UTM zone 15N+proj=utm +zone=15 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(76) / UTM zone 15N",GEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2027"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ''Ul=qepsgNAD27(76) / UTM zone 16N+proj=utm +zone=16 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(76) / UTM zone 16N",GEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-87],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2028"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ''Um=qepsgNAD27(76) / UTM zone 17N+proj=utm +zone=17 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(76) / UTM zone 17N",GEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2029"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ''Un=qepsgNAD27(76) / UTM zone 18N+proj=utm +zone=18 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(76) / UTM zone 18N",GEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2030"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] _oCqepsgNAD27(CGQ77) / UTM zone 17N+proj=utm +zone=17 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(CGQ77) / UTM zone 17N",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2031"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] _pCqepsgNAD27(CGQ77) / UTM zone 18N+proj=utm +zone=18 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(CGQ77) / UTM zone 18N",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2032"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] _qCqepsgNAD27(CGQ77) / UTM zone 19N+proj=utm +zone=19 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(CGQ77) / UTM zone 19N",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2033"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] _rCqepsgNAD27(CGQ77) / UTM zone 20N+proj=utm +zone=20 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(CGQ77) / UTM zone 20N",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2034"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] _sCqepsgNAD27(CGQ77) / UTM zone 21N+proj=utm +zone=21 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(CGQ77) / UTM zone 21N",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2035"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] {{t o epsgNAD83(CSRS98) / New Brunswick Stereo (deprecated)+proj=sterea +lat_0=46.5 +lon_0=-66.5 +k=0.999912 +x_0=2500000 +y_0=7500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(CSRS98) / New Brunswick Stereo (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Oblique_Stereographic"],PARAMETER["latitude_of_origin",46.5],PARAMETER["central_meridian",-66.5],PARAMETER["scale_factor",0.999912],PARAMETER["false_easting",2500000],PARAMETER["false_northing",7500000],AUTHORITY["EPSG","2036"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] (u _]epsgNAD83(CSRS98) / UTM zone 19N (deprecated)+proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(CSRS98) / UTM zone 19N (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2037"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] (v _]epsgNAD83(CSRS98) / UTM zone 20N (deprecated)+proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(CSRS98) / UTM zone 20N (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2038"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] kw =SOepsgIsrael / Israeli TM Grid+proj=tmerc +lat_0=31.73439361111111 +lon_0=35.20451694444445 +k=1.0000067 +x_0=219529.584 +y_0=626907.39 +ellps=GRS80 +towgs84=-48,55,52,0,0,0,0 +units=m +no_defsPROJCS["Israel / Israeli TM Grid",GEOGCS["Israel",DATUM["Israel",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[-48,55,52,0,0,0,0],AUTHORITY["EPSG","6141"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4141"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31.73439361111111],PARAMETER["central_meridian",35.20451694444445],PARAMETER["scale_factor",1.0000067],PARAMETER["false_easting",219529.584],PARAMETER["false_northing",626907.39],AUTHORITY["EPSG","2039"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] x C+#epsgLocodjo 1965 / UTM zone 30N+proj=utm +zone=30 +ellps=clrk80 +towgs84=-125,53,467,0,0,0,0 +units=m +no_defsPROJCS["Locodjo 1965 / UTM zone 30N",GEOGCS["Locodjo 1965",DATUM["Locodjo_1965",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-125,53,467,0,0,0,0],AUTHORITY["EPSG","6142"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4142"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2040"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] y C7/epsgAbidjan 1987 / UTM zone 30N+proj=utm +zone=30 +ellps=clrk80 +towgs84=-124.76,53,466.79,0,0,0,0 +units=m +no_defsPROJCS["Abidjan 1987 / UTM zone 30N",GEOGCS["Abidjan 1987",DATUM["Abidjan_1987",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-124.76,53,466.79,0,0,0,0],AUTHORITY["EPSG","6143"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4143"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2041"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] z C+#epsgLocodjo 1965 / UTM zone 29N+proj=utm +zone=29 +ellps=clrk80 +towgs84=-125,53,467,0,0,0,0 +units=m +no_defsPROJCS["Locodjo 1965 / UTM zone 29N",GEOGCS["Locodjo 1965",DATUM["Locodjo_1965",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-125,53,467,0,0,0,0],AUTHORITY["EPSG","6142"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4142"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2042"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] { C7/epsgAbidjan 1987 / UTM zone 29N+proj=utm +zone=29 +ellps=clrk80 +towgs84=-124.76,53,466.79,0,0,0,0 +units=m +no_defsPROJCS["Abidjan 1987 / UTM zone 29N",GEOGCS["Abidjan 1987",DATUM["Abidjan_1987",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-124.76,53,466.79,0,0,0,0],AUTHORITY["EPSG","6143"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4143"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2043"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] /| O epsgHanoi 1972 / Gauss-Kruger zone 18+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=18500000 +y_0=0 +ellps=krass +towgs84=-17.51,-108.32,-62.39,0,0,0,0 +units=m +no_defsPROJCS["Hanoi 1972 / Gauss-Kruger zone 18",GEOGCS["Hanoi 1972",DATUM["Hanoi_1972",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[-17.51,-108.32,-62.39,0,0,0,0],AUTHORITY["EPSG","6147"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4147"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",1],PARAMETER["false_easting",18500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2044"],AXIS["X",NORTH],AXIS["Y",EAST]] /} O epsgHanoi 1972 / Gauss-Kruger zone 19+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=19500000 +y_0=0 +ellps=krass +towgs84=-17.51,-108.32,-62.39,0,0,0,0 +units=m +no_defsPROJCS["Hanoi 1972 / Gauss-Kruger zone 19",GEOGCS["Hanoi 1972",DATUM["Hanoi_1972",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[-17.51,-108.32,-62.39,0,0,0,0],AUTHORITY["EPSG","6147"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4147"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",1],PARAMETER["false_easting",19500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2045"],AXIS["X",NORTH],AXIS["Y",EAST]] dd )[5epsgCH1903+ / LV95+proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333333333 +k_0=1 +x_0=2600000 +y_0=1200000 +ellps=bessel +towgs84=674.374,15.056,405.346,0,0,0,0 +units=m +no_defsPROJCS["CH1903+ / LV95",GEOGCS["CH1903+",DATUM["CH1903",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[674.374,15.056,405.346,0,0,0,0],AUTHORITY["EPSG","6150"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4150"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Hotine_Oblique_Mercator"],PARAMETER["latitude_of_center",46.95240555555556],PARAMETER["longitude_of_center",7.439583333333333],PARAMETER["azimuth",90],PARAMETER["rectified_grid_angle",90],PARAMETER["scale_factor",1],PARAMETER["false_easting",2600000],PARAMETER["false_northing",1200000],AUTHORITY["EPSG","2056"],AXIS["Y",EAST],AXIS["X",NORTH]]lpha=0.5716611944444444 +k=0.999895934 +x_0=658377.437 +y_0=3044969.194 +ellps=intl +towgs84=-133.63,-157.5,-158.62,0,0,0,0 +units=m +no_defsPROJCS["Rassadiran / Nakhl e Taqi",GEOGCS["Rassadiran",DATUM["Rassadiran",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-133.63,-157.5,-158.62,0,0,0,0],AUTHORITY["EPSG","6153"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4153"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Hotine_Oblique_Mercator"],PARAMETER["latitude_of_center",27.51882880555555],PARAMETER["longitude_of_center",52.60353916666667],PARAMETER["azimuth",0.5716611944444444],PARAMETER["rectified_grid_angle",0.5716611944444444],PARAMETER["scale_factor",0.999895934],PARAMETER["false_easting",658377.437],PARAMETER["false_northing",3044969.194],AUTHORITY["EPSG","2057"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] F ?mkepsg ED50(ED77) / UTM zone 38N+proj=utm +zone=38 +ellps=intl +units=m +no_defsPROJCS["ED50(ED77) / UTM zone 38N",GEOGCS["ED50(ED77)",DATUM["European_Datum_1950_1977",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6154"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4154"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2058"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ?%Kepsg Rassadiran / Nakhl e Taqi+proj=omerc +lat_0=27.51882880555555 +lonc=52.60353916666667 +aE 66F ?mkepsg ED50(ED77) / UTM zone 39N+proj=utm +zone=39 +ellps=intl +units=m +no_defsPROJCS["ED50(ED77) / UTM zone 39N",GEOGCS["ED50(ED77)",DATUM["European_Datum_1950_1977",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6154"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4154"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2059"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 66F ?mkepsg ED50(ED77) / UTM zone 40N+proj=utm +zone=40 +ellps=intl +units=m +no_defsPROJCS["ED50(ED77) / UTM zone 40N",GEOGCS["ED50(ED77)",DATUM["European_Datum_1950_1977",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6154"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4154"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2060"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 66F ?mkepsg ED50(ED77) / UTM zone 41N+proj=utm +zone=41 +ellps=intl +units=m +no_defsPROJCS["ED50(ED77) / UTM zone 41N",GEOGCS["ED50(ED77)",DATUM["European_Datum_1950_1977",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6154"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4154"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2061"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] B E+epsgMadrid 1870 (Madrid) / Spain+proj=lcc +lat_1=40 +lat_0=40 +lon_0=0 +k_0=0.9988085293 +x_0=600000 +y_0=600000 +a=6378298.3 +b=6356657.142669561 +pm=madrid +units=m +no_defsPROJCS["Madrid 1870 (Madrid) / Spain",GEOGCS["Madrid 1870 (Madrid)",DATUM["Madrid_1870_Madrid",SPHEROID["Struve 1860",6378298.3,294.73,AUTHORITY["EPSG","7028"]],AUTHORITY["EPSG","6903"]],PRIMEM["Madrid",-3.687938888888889,AUTHORITY["EPSG","8905"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4903"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",40],PARAMETER["central_meridian",0],PARAMETER["scale_factor",0.9988085293],PARAMETER["false_easting",600000],PARAMETER["false_northing",600000],AUTHORITY["EPSG","2062"],AXIS["X",EAST],AXIS["Y",NORTH]] - [=KepsgDabola 1981 / UTM zone 28N (deprecated)+proj=utm +zone=28 +a=6378249.2 +b=6356515 +towgs84=-23,259,-9,0,0,0,0 +units=m +no_defsPROJCS["Dabola 1981 / UTM zone 28N (deprecated)",GEOGCS["Conakry 1905",DATUM["Conakry_1905",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-23,259,-9,0,0,0,0],AUTHORITY["EPSG","6315"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4315"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2063"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] , [=IepsgDabola 1981 / UTM zone 29N (deprecated)+proj=utm +zone=29 +a=6378249.2 +b=6356515 +towgs84=-23,259,-9,0,0,0,0 +units=m +no_defsPROJCS["Dabola 1981 / UTM zone 29N (deprecated)",GEOGCS["Conakry 1905",DATUM["Conakry_1905",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-23,259,-9,0,0,0,0],AUTHORITY["EPSG","6315"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4315"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2064"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Y ; uepsgS-JTSK (Ferro) / Krovak+proj=krovak +lat_0=49.5 +lon_0=42.5 +alpha=30.28813972222222 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +pm=ferro +units=m +no_defsPROJCS["S-JTSK (Ferro) / Krovak",GEOGCS["S-JTSK (Ferro)",DATUM["S_JTSK_Ferro",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6818"]],PRIMEM["Ferro",-17.66666666666667,AUTHORITY["EPSG","8909"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4818"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Krovak"],PARAMETER["latitude_of_center",49.5],PARAMETER["longitude_of_center",42.5],PARAMETER["azimuth",30.28813972222222],PARAMETER["pseudo_standard_parallel_1",78.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","2065"],AXIS["X",SOUTH],AXIS["Y",WEST]] f Ao%epsgMount Dillon / Tobago Grid+proj=cass +lat_0=11.25217861111111 +lon_0=-60.68600888888889 +x_0=37718.66159325 +y_0=36209.91512952 +a=6378293.645208759 +b=6356617.987679838 +to_meter=0.201166195164 +no_defsPROJCS["Mount Dillon / Tobago Grid",GEOGCS["Mount Dillon",DATUM["Mount_Dillon",SPHEROID["Clarke 1858",6378293.645208759,294.2606763692569,AUTHORITY["EPSG","7007"]],AUTHORITY["EPSG","6157"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4157"]],UNIT["Clarke's link",0.201166195164,AUTHORITY["EPSG","9039"]],PROJECTION["Cassini_Soldner"],PARAMETER["latitude_of_origin",11.25217861111111],PARAMETER["central_meridian",-60.68600888888889],PARAMETER["false_easting",187500],PARAMETER["false_northing",180000],AUTHORITY["EPSG","2066"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 77EEmcepsgNaparima 1955 / UTM zone 20N+proj=utm +zone=20 +ellps=intl +units=m +no_defsPROJCS["Naparima 1955 / UTM zone 20N",GEOGCS["Naparima 1955",DATUM["Naparima_1955",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6158"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4158"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2067"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ((T 5=?epsgELD79 / Libya zone 5+proj=tmerc +lat_0=0 +lon_0=9 +k=0.9999 +x_0=200000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["ELD79 / Libya zone 5",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2068"],AXIS["X",EAST],AXIS["Y",NORTH]] &&V 5?AepsgELD79 / Libya zone 6+proj=tmerc +lat_0=0 +lon_0=11 +k=0.9999 +x_0=200000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["ELD79 / Libya zone 6",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",11],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2069"],AXIS["X",EAST],AXIS["Y",NORTH]] &&V 5?AepsgELD79 / Libya zone 7+proj=tmerc +lat_0=0 +lon_0=13 +k=0.9999 +x_0=200000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["ELD79 / Libya zone 7",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",13],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2070"],AXIS["X",EAST],AXIS["Y",NORTH]] &&V 5?AepsgELD79 / Libya zone 8+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9999 +x_0=200000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["ELD79 / Libya zone 8",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2071"],AXIS["X",EAST],AXIS["Y",NORTH]] &&V 5?AepsgELD79 / Libya zone 9+proj=tmerc +lat_0=0 +lon_0=17 +k=0.9999 +x_0=200000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["ELD79 / Libya zone 9",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",17],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2072"],AXIS["X",EAST],AXIS["Y",NORTH]] $$X 7?CepsgELD79 / Libya zone 10+proj=tmerc +lat_0=0 +lon_0=19 +k=0.9999 +x_0=200000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["ELD79 / Libya zone 10",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",19],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2073"],AXIS["X",EAST],AXIS["Y",NORTH]] $$X 7?CepsgELD79 / Libya zone 11+proj=tmerc +lat_0=0 +lon_0=21 +k=0.9999 +x_0=200000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["ELD79 / Libya zone 11",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2074"],AXIS["X",EAST],AXIS["Y",NORTH]] $$X 7?CepsgELD79 / Libya zone 12+proj=tmerc +lat_0=0 +lon_0=23 +k=0.9999 +x_0=200000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["ELD79 / Libya zone 12",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",23],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2075"],AXIS["X",EAST],AXIS["Y",NORTH]] $$X 7?CepsgELD79 / Libya zone 13+proj=tmerc +lat_0=0 +lon_0=25 +k=0.9999 +x_0=200000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["ELD79 / Libya zone 13",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",25],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2076"],AXIS["X",EAST],AXIS["Y",NORTH]] ?(5BO\iv,9FS`mz #0=JWdq~gfoss.itCgfoss.itBgfoss.itAgfoss.it@ epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg  epsg  epsg  epsg  epsg  epsg epsg epsg epsg epsg epsg epsg epsg ;(5BO\iv,9FS`mz #0=JWdq~ epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg  epsg !epsg! "epsg" #epsg# $epsg$ %epsg% &epsg& 'epsg' (epsg( )epsg) *epsg* +epsg+ ,epsg, -epsg- .epsg. /epsg/ 0epsg0 1epsg1 2epsg2 3epsg3 4epsg4 5epsg5 6epsg6 7epsg7 8epsg8 9epsg9 :epsg: ;epsg; epsg> ?epsg? @epsg@ AepsgA BepsgB CepsgC DepsgD EepsgE FepsgF GepsgG HepsgH IepsgI JepsgJ KepsgK LepsgL MepsgM NepsgN OepsgO PepsgP DD85mYepsgELD79 / UTM zone 32N+proj=utm +zone=32 +ellps=intl +units=m +no_defsPROJCS["ELD79 / UTM zone 32N",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2077"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] CC95m[epsgELD79 / UTM zone 33N+proj=utm +zone=33 +ellps=intl +units=m +no_defsPROJCS["ELD79 / UTM zone 33N",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2078"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] CC95m[epsgELD79 / UTM zone 34N+proj=utm +zone=34 +ellps=intl +units=m +no_defsPROJCS["ELD79 / UTM zone 34N",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2079"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] CC9 5m[epsg ELD79 / UTM zone 35N+proj=utm +zone=35 +ellps=intl +units=m +no_defsPROJCS["ELD79 / UTM zone 35N",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2080"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]   o! Q=Yepsg!Chos Malal 1914 / Argentina zone 2+proj=tmerc +lat_0=-90 +lon_0=-69 +k=1 +x_0=2500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["Chos Malal 1914 / Argentina zone 2",GEOGCS["Chos Malal 1914",DATUM["Chos_Malal_1914",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6160"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4160"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",1],PARAMETER["false_easting",2500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2081"],AXIS["X",NORTH],AXIS["Y",EAST]] 9" W{)epsg"Pampa del Castillo / Argentina zone 2+proj=tmerc +lat_0=-90 +lon_0=-69 +k=1 +x_0=2500000 +y_0=0 +ellps=intl +towgs84=27.5,14,186.4,0,0,0,0 +units=m +no_defsPROJCS["Pampa del Castillo / Argentina zone 2",GEOGCS["Pampa del Castillo",DATUM["Pampa_del_Castillo",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[27.5,14,186.4,0,0,0,0],AUTHORITY["EPSG","6161"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4161"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",1],PARAMETER["false_easting",2500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2082"],AXIS["X",NORTH],AXIS["Y",EAST]]   o# Q=Yepsg#Hito XVIII 1963 / Argentina zone 2+proj=tmerc +lat_0=-90 +lon_0=-69 +k=1 +x_0=2500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["Hito XVIII 1963 / Argentina zone 2",GEOGCS["Hito XVIII 1963",DATUM["Hito_XVIII_1963",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6254"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4254"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",1],PARAMETER["false_easting",2500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2083"],AXIS["X",NORTH],AXIS["Y",EAST]] !![$I{}epsg$Hito XVIII 1963 / UTM zone 19S+proj=utm +zone=19 +south +ellps=intl +units=m +no_defsPROJCS["Hito XVIII 1963 / UTM zone 19S",GEOGCS["Hito XVIII 1963",DATUM["Hito_XVIII_1963",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6254"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4254"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2084"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] <% Kepsg%NAD27 / Cuba Norte (deprecated)+proj=lcc +lat_1=22.35 +lat_0=22.35 +lon_0=-81 +k_0=0.99993602 +x_0=500000 +y_0=280296.016 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / Cuba Norte (deprecated)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",22.35],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.99993602],PARAMETER["false_easting",500000],PARAMETER["false_northing",280296.016],AUTHORITY["EPSG","2085"],AXIS["Y",NORTH],AXIS["X",EAST]] z& GiMepsg&NAD27 / Cuba Sur (deprecated)+proj=lcc +lat_1=20.71666666666667 +lat_0=20.71666666666667 +lon_0=-76.83333333333333 +k_0=0.99994848 +x_0=500000 +y_0=229126.939 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / Cuba Sur (deprecated)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",20.71666666666667],PARAMETER["central_meridian",-76.83333333333333],PARAMETER["scale_factor",0.99994848],PARAMETER["false_easting",500000],PARAMETER["false_northing",229126.939],AUTHORITY["EPSG","2086"],AXIS["Y",NORTH],AXIS["X",EAST]] !![' -?Sepsg'ELD79 / TM 12 NE+proj=tmerc +lat_0=0 +lon_0=12 +k=0.9996 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["ELD79 / TM 12 NE",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",12],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2087"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] }( 3wYepsg(Carthage / TM 11 NE+proj=tmerc +lat_0=0 +lon_0=11 +k=0.9996 +x_0=500000 +y_0=0 +a=6378249.2 +b=6356515 +datum=carthage +units=m +no_defsPROJCS["Carthage / TM 11 NE",GEOGCS["Carthage",DATUM["Carthage",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],AUTHORITY["EPSG","6223"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4223"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",11],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2088"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ) A1epsg)Yemen NGN96 / UTM zone 38N+proj=utm +zone=38 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["Yemen NGN96 / UTM zone 38N",GEOGCS["Yemen NGN96",DATUM["Yemen_National_Geodetic_Network_1996",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6163"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4163"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2089"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] * A1epsg*Yemen NGN96 / UTM zone 39N+proj=utm +zone=39 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["Yemen NGN96 / UTM zone 39N",GEOGCS["Yemen NGN96",DATUM["Yemen_National_Geodetic_Network_1996",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6163"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4163"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2090"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 3+ isepsg+South Yemen / Gauss Kruger zone 8 (deprecated)+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=8500000 +y_0=0 +ellps=krass +towgs84=-76,-138,67,0,0,0,0 +units=m +no_defsPROJCS["South Yemen / Gauss Kruger zone 8 (deprecated)",GEOGCS["South Yemen",DATUM["South_Yemen",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[-76,-138,67,0,0,0,0],AUTHORITY["EPSG","6164"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4164"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",1],PARAMETER["false_easting",8500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2091"],AXIS["X",NORTH],AXIS["Y",EAST]] 3, isepsg,South Yemen / Gauss Kruger zone 9 (deprecated)+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=9500000 +y_0=0 +ellps=krass +towgs84=-76,-138,67,0,0,0,0 +units=m +no_defsPROJCS["South Yemen / Gauss Kruger zone 9 (deprecated)",GEOGCS["South Yemen",DATUM["South_Yemen",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[-76,-138,67,0,0,0,0],AUTHORITY["EPSG","6164"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4164"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",1],PARAMETER["false_easting",9500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2092"],AXIS["X",NORTH],AXIS["Y",EAST]] - 9sepsg-Hanoi 1972 / GK 106 NE+proj=tmerc +lat_0=0 +lon_0=106 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=-17.51,-108.32,-62.39,0,0,0,0 +units=m +no_defsPROJCS["Hanoi 1972 / GK 106 NE",GEOGCS["Hanoi 1972",DATUM["Hanoi_1972",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[-17.51,-108.32,-62.39,0,0,0,0],AUTHORITY["EPSG","6147"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4147"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",106],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2093"],AXIS["X",NORTH],AXIS["Y",EAST]] ,. 5'epsg.WGS 72BE / TM 106 NE+proj=tmerc +lat_0=0 +lon_0=106 +k=0.9996 +x_0=500000 +y_0=0 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / TM 106 NE",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",106],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2094"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] d/ 7'sepsg/Bissau / UTM zone 28N+proj=utm +zone=28 +ellps=intl +towgs84=-173,253,27,0,0,0,0 +units=m +no_defsPROJCS["Bissau / UTM zone 28N",GEOGCS["Bissau",DATUM["Bissau",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-173,253,27,0,0,0,0],AUTHORITY["EPSG","6165"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4165"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2095"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]   p0 GG[epsg0Korean 1985 / Korea East Belt+proj=tmerc +lat_0=38 +lon_0=129 +k=1 +x_0=200000 +y_0=500000 +ellps=bessel +units=m +no_defsPROJCS["Korean 1985 / Korea East Belt",GEOGCS["Korean 1985",DATUM["Korean_Datum_1985",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6162"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4162"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38],PARAMETER["central_meridian",129],PARAMETER["scale_factor",1],PARAMETER["false_easting",200000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","2096"],AXIS["X",NORTH],AXIS["Y",EAST]] v1 MGaepsg1Korean 1985 / Korea Central Belt+proj=tmerc +lat_0=38 +lon_0=127 +k=1 +x_0=200000 +y_0=500000 +ellps=bessel +units=m +no_defsPROJCS["Korean 1985 / Korea Central Belt",GEOGCS["Korean 1985",DATUM["Korean_Datum_1985",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6162"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4162"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38],PARAMETER["central_meridian",127],PARAMETER["scale_factor",1],PARAMETER["false_easting",200000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","2097"],AXIS["X",NORTH],AXIS["Y",EAST]]   p2 GG[epsg2Korean 1985 / Korea West Belt+proj=tmerc +lat_0=38 +lon_0=125 +k=1 +x_0=200000 +y_0=500000 +ellps=bessel +units=m +no_defsPROJCS["Korean 1985 / Korea West Belt",GEOGCS["Korean 1985",DATUM["Korean_Datum_1985",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6162"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4162"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38],PARAMETER["central_meridian",125],PARAMETER["scale_factor",1],PARAMETER["false_easting",200000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","2098"],AXIS["X",NORTH],AXIS["Y",EAST]] u3 ;wAepsg3Qatar 1948 / Qatar Grid+proj=cass +lat_0=25.38236111111111 +lon_0=50.76138888888889 +x_0=100000 +y_0=100000 +ellps=helmert +units=m +no_defsPROJCS["Qatar 1948 / Qatar Grid",GEOGCS["Qatar 1948",DATUM["Qatar_1948",SPHEROID["Helmert 1906",6378200,298.3,AUTHORITY["EPSG","7020"]],AUTHORITY["EPSG","6286"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4286"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Cassini_Soldner"],PARAMETER["latitude_of_origin",25.38236111111111],PARAMETER["central_meridian",50.76138888888889],PARAMETER["false_easting",100000],PARAMETER["false_northing",100000],AUTHORITY["EPSG","2099"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] !4 3];epsg4GGRS87 / Greek Grid+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9996 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=GGRS87 +units=m +no_defsPROJCS["GGRS87 / Greek Grid",GEOGCS["GGRS87",DATUM["Greek_Geodetic_Reference_System_1987",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[-199.87,74.79,246.62,0,0,0,0],AUTHORITY["EPSG","6121"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4121"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",24],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2100"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] &5 =/iepsg5Lake / Maracaibo Grid M1+proj=lcc +lat_1=10.16666666666667 +lat_0=10.16666666666667 +lon_0=-71.60561777777777 +k_0=1 +x_0=0 +y_0=-52684.972 +ellps=intl +units=m +no_defsPROJCS["Lake / Maracaibo Grid M1",GEOGCS["Lake",DATUM["Lake",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6249"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4249"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",10.16666666666667],PARAMETER["central_meridian",-71.60561777777777],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",-52684.972],AUTHORITY["EPSG","2101"],AXIS["X",EAST],AXIS["Y",NORTH]] *6 79mepsg6Lake / Maracaibo Grid+proj=lcc +lat_1=10.16666666666667 +lat_0=10.16666666666667 +lon_0=-71.60561777777777 +k_0=1 +x_0=200000 +y_0=147315.028 +ellps=intl +units=m +no_defsPROJCS["Lake / Maracaibo Grid",GEOGCS["Lake",DATUM["Lake",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6249"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4249"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",10.16666666666667],PARAMETER["central_meridian",-71.60561777777777],PARAMETER["scale_factor",1],PARAMETER["false_easting",200000],PARAMETER["false_northing",147315.028],AUTHORITY["EPSG","2102"],AXIS["X",EAST],AXIS["Y",NORTH]] 07 =9sepsg7Lake / Maracaibo Grid M3+proj=lcc +lat_1=10.16666666666667 +lat_0=10.16666666666667 +lon_0=-71.60561777777777 +k_0=1 +x_0=500000 +y_0=447315.028 +ellps=intl +units=m +no_defsPROJCS["Lake / Maracaibo Grid M3",GEOGCS["Lake",DATUM["Lake",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6249"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4249"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",10.16666666666667],PARAMETER["central_meridian",-71.60561777777777],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",447315.028],AUTHORITY["EPSG","2103"],AXIS["X",EAST],AXIS["Y",NORTH]] 88 G7{epsg8Lake / Maracaibo La Rosa Grid+proj=lcc +lat_1=10.16666666666667 +lat_0=10.16666666666667 +lon_0=-71.60561777777777 +k_0=1 +x_0=-17044 +y_0=-23139.97 +ellps=intl +units=m +no_defsPROJCS["Lake / Maracaibo La Rosa Grid",GEOGCS["Lake",DATUM["Lake",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6249"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4249"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",10.16666666666667],PARAMETER["central_meridian",-71.60561777777777],PARAMETER["scale_factor",1],PARAMETER["false_easting",-17044],PARAMETER["false_northing",-23139.97],AUTHORITY["EPSG","2104"],AXIS["X",EAST],AXIS["Y",NORTH]] p9 A9oepsg9NZGD2000 / Mount Eden 2000+proj=tmerc +lat_0=-36.87972222222222 +lon_0=174.7641666666667 +k=0.9999 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Mount Eden 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-36.87972222222222],PARAMETER["central_meridian",174.7641666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2105"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] l: G/kepsg:NZGD2000 / Bay of Plenty 2000+proj=tmerc +lat_0=-37.76111111111111 +lon_0=176.4661111111111 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Bay of Plenty 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-37.76111111111111],PARAMETER["central_meridian",176.4661111111111],PARAMETER["scale_factor",1],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2106"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] h; C/gepsg;NZGD2000 / Poverty Bay 2000+proj=tmerc +lat_0=-38.62444444444444 +lon_0=177.8855555555556 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Poverty Bay 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-38.62444444444444],PARAMETER["central_meridian",177.8855555555556],PARAMETER["scale_factor",1],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2107"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] f< A/eepsg ?Mepsg>NZGD2000 / Tuhirangi 2000+proj=tmerc +lat_0=-39.51222222222222 +lon_0=175.64 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Tuhirangi 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-39.51222222222222],PARAMETER["central_meridian",175.64],PARAMETER["scale_factor",1],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2110"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] b? =/aepsg?NZGD2000 / Wanganui 2000+proj=tmerc +lat_0=-40.24194444444444 +lon_0=175.4880555555555 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Wanganui 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-40.24194444444444],PARAMETER["central_meridian",175.4880555555555],PARAMETER["scale_factor",1],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2111"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] d@ ?/cepsg@NZGD2000 / Wairarapa 2000+proj=tmerc +lat_0=-40.92527777777777 +lon_0=175.6472222222222 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Wairarapa 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-40.92527777777777],PARAMETER["central_meridian",175.6472222222222],PARAMETER["scale_factor",1],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2112"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] dA A-cepsgANZGD2000 / Wellington 2000+proj=tmerc +lat_0=-41.3011111111111 +lon_0=174.7763888888889 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Wellington 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-41.3011111111111],PARAMETER["central_meridian",174.7763888888889],PARAMETER["scale_factor",1],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2113"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] hB C/gepsgBNZGD2000 / Collingwood 2000+proj=tmerc +lat_0=-40.71472222222223 +lon_0=172.6719444444444 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Collingwood 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-40.71472222222223],PARAMETER["central_meridian",172.6719444444444],PARAMETER["scale_factor",1],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2114"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ^C 9/]epsgCNZGD2000 / Nelson 2000+proj=tmerc +lat_0=-41.27444444444444 +lon_0=173.2991666666667 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Nelson 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-41.27444444444444],PARAMETER["central_meridian",173.2991666666667],PARAMETER["scale_factor",1],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2115"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] `D ;/_epsgDNZGD2000 / Karamea 2000+proj=tmerc +lat_0=-41.28972222222222 +lon_0=172.1088888888889 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Karamea 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-41.28972222222222],PARAMETER["central_meridian",172.1088888888889],PARAMETER["scale_factor",1],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2116"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ^E 9/]epsgENZGD2000 / Buller 2000+proj=tmerc +lat_0=-41.81055555555555 +lon_0=171.5811111111111 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Buller 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-41.81055555555555],PARAMETER["central_meridian",171.5811111111111],PARAMETER["scale_factor",1],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2117"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ZF 5/YepsgFNZGD2000 / Grey 2000+proj=tmerc +lat_0=-42.33361111111111 +lon_0=171.5497222222222 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Grey 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-42.33361111111111],PARAMETER["central_meridian",171.5497222222222],PARAMETER["scale_factor",1],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2118"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] FG 7EepsgGNZGD2000 / Amuri 2000+proj=tmerc +lat_0=-42.68888888888888 +lon_0=173.01 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Amuri 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-42.68888888888888],PARAMETER["central_meridian",173.01],PARAMETER["scale_factor",1],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2119"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] hH C/gepsgHNZGD2000 / Marlborough 2000+proj=tmerc +lat_0=-41.54444444444444 +lon_0=173.8019444444444 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Marlborough 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-41.54444444444444],PARAMETER["central_meridian",173.8019444444444],PARAMETER["scale_factor",1],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2120"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] bI =/aepsgINZGD2000 / Hokitika 2000+proj=tmerc +lat_0=-42.88611111111111 +lon_0=170.9797222222222 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Hokitika 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-42.88611111111111],PARAMETER["central_meridian",170.9797222222222],PARAMETER["scale_factor",1],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2121"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] HJ ;GepsgJNZGD2000 / Okarito 2000+proj=tmerc +lat_0=-43.11 +lon_0=170.2608333333333 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Okarito 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-43.11],PARAMETER["central_meridian",170.2608333333333],PARAMETER["scale_factor",1],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2122"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] jK E/iepsgKNZGD2000 / Jacksons Bay 2000+proj=tmerc +lat_0=-43.97777777777778 +lon_0=168.6061111111111 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Jacksons Bay 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-43.97777777777778],PARAMETER["central_meridian",168.6061111111111],PARAMETER["scale_factor",1],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2123"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] nL I/mepsgLNZGD2000 / Mount Pleasant 2000+proj=tmerc +lat_0=-43.59055555555556 +lon_0=172.7269444444445 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Mount Pleasant 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-43.59055555555556],PARAMETER["central_meridian",172.7269444444445],PARAMETER["scale_factor",1],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2124"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ^M 9/]epsgMNZGD2000 / Gawler 2000+proj=tmerc +lat_0=-43.74861111111111 +lon_0=171.3605555555555 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Gawler 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-43.74861111111111],PARAMETER["central_meridian",171.3605555555555],PARAMETER["scale_factor",1],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2125"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ^N 9/]epsgNNZGD2000 / Timaru 2000+proj=tmerc +lat_0=-44.40194444444445 +lon_0=171.0572222222222 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Timaru 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-44.40194444444445],PARAMETER["central_meridian",171.0572222222222],PARAMETER["scale_factor",1],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2126"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] @O C?epsgONZGD2000 / Lindis Peak 2000+proj=tmerc +lat_0=-44.735 +lon_0=169.4675 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Lindis Peak 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-44.735],PARAMETER["central_meridian",169.4675],PARAMETER["scale_factor",1],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2127"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] nP I/mepsgPNZGD2000 / Mount Nicholas 2000+proj=tmerc +lat_0=-45.13277777777778 +lon_0=168.3986111111111 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Mount Nicholas 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-45.13277777777778],PARAMETER["central_meridian",168.3986111111111],PARAMETER["scale_factor",1],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2128"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] fQ A/eepsgQNZGD2000 / Mount York 2000+proj=tmerc +lat_0=-45.56361111111111 +lon_0=167.7386111111111 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Mount York 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-45.56361111111111],PARAMETER["central_meridian",167.7386111111111],PARAMETER["scale_factor",1],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2129"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] tR O/sepsgRNZGD2000 / Observation Point 2000+proj=tmerc +lat_0=-45.81611111111111 +lon_0=170.6283333333333 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Observation Point 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-45.81611111111111],PARAMETER["central_meridian",170.6283333333333],PARAMETER["scale_factor",1],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2130"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] dS E)cepsgSNZGD2000 / North Taieri 2000+proj=tmerc +lat_0=-45.86138888888889 +lon_0=170.2825 +k=0.99996 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / North Taieri 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-45.86138888888889],PARAMETER["central_meridian",170.2825],PARAMETER["scale_factor",0.99996],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2131"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] BT 7AepsgTNZGD2000 / Bluff 2000+proj=tmerc +lat_0=-46.6 +lon_0=168.3427777777778 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Bluff 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-46.6],PARAMETER["central_meridian",168.3427777777778],PARAMETER["scale_factor",1],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2132"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] U ;+/epsgUNZGD2000 / UTM zone 58S+proj=utm +zone=58 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / UTM zone 58S",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2133"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] V ;+/epsgVNZGD2000 / UTM zone 59S+proj=utm +zone=59 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / UTM zone 59S",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",171],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2134"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] W ;+/epsgWNZGD2000 / UTM zone 60S+proj=utm +zone=60 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / UTM zone 60S",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",177],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2135"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] DX CGepsgXAccra / Ghana National Grid+proj=tmerc +lat_0=4.666666666666667 +lon_0=-1 +k=0.99975 +x_0=274319.7391633579 +y_0=0 +a=6378300 +b=6356751.689189189 +to_meter=0.3047997101815088 +no_defsPROJCS["Accra / Ghana National Grid",GEOGCS["Accra",DATUM["Accra",SPHEROID["War Office",6378300,296,AUTHORITY["EPSG","7029"]],AUTHORITY["EPSG","6168"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4168"]],UNIT["Gold Coast foot",0.3047997101815088,AUTHORITY["EPSG","9094"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",4.666666666666667],PARAMETER["central_meridian",-1],PARAMETER["scale_factor",0.99975],PARAMETER["false_easting",900000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2136"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ,,PY +gepsgYAccra / TM 1 NW+proj=tmerc +lat_0=0 +lon_0=-1 +k=0.9996 +x_0=500000 +y_0=0 +a=6378300 +b=6356751.689189189 +units=m +no_defsPROJCS["Accra / TM 1 NW",GEOGCS["Accra",DATUM["Accra",SPHEROID["War Office",6378300,296,AUTHORITY["EPSG","7029"]],AUTHORITY["EPSG","6168"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4168"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-1],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2137"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 4Z GQYepsgZNAD27(CGQ77) / Quebec Lambert+proj=lcc +lat_1=60 +lat_2=46 +lat_0=44 +lon_0=-68.5 +x_0=0 +y_0=0 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(CGQ77) / Quebec Lambert",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",60],PARAMETER["standard_parallel_2",46],PARAMETER["latitude_of_origin",44],PARAMETER["central_meridian",-68.5],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","2138"],AXIS["X",EAST],AXIS["Y",NORTH]]offlrx~ &,28>DJPV\bhntz "(.4:@FLRX^djpv|PQRSTUVWXY Z!["\#]$^%_&`'a(b)c*d+e,f-g.h/i0j1k2l3m4n5o6p7q8r9s:t;ux?y@zA{B|C}DF G H I JKLMNOPQRSTUVWX[\]^ _!`"a#b$c%d&e'f(g)h*i+j,k-l.m/n0o1p2q3r4s5t6u7v8w9x:y;z<{=|>}?~@ABCDEFGHIofflrx~ &,28>DJPV\bhntz "(.4:@FLRX^djpv|KLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~‘ÑđőƑ Ǒ ȑɑʑˑ̑͑ΑϑБёґӑԑՑ֑בّؑڑ ۑ!ܑ"ݑ#ޑ$ߑ%&'()+,./0123456789:;<=>?@AB I[ _uGepsg[NAD83(CSRS98) / SCoPQ zone 2 (deprecated)+proj=tmerc +lat_0=0 +lon_0=-55.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(CSRS98) / SCoPQ zone 2 (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-55.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2139"],AXIS["X",EAST],AXIS["Y",NORTH]] K\ [uOepsg\NAD83(CSRS98) / MTM zone 3 (deprecated)+proj=tmerc +lat_0=0 +lon_0=-58.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(CSRS98) / MTM zone 3 (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-58.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2140"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] K] [uOepsg]NAD83(CSRS98) / MTM zone 4 (deprecated)+proj=tmerc +lat_0=0 +lon_0=-61.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(CSRS98) / MTM zone 4 (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-61.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2141"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] K^ [uOepsg^NAD83(CSRS98) / MTM zone 5 (deprecated)+proj=tmerc +lat_0=0 +lon_0=-64.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(CSRS98) / MTM zone 5 (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-64.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2142"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] K_ [uOepsg_NAD83(CSRS98) / MTM zone 6 (deprecated)+proj=tmerc +lat_0=0 +lon_0=-67.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(CSRS98) / MTM zone 6 (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-67.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2143"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] K` [uOepsg`NAD83(CSRS98) / MTM zone 7 (deprecated)+proj=tmerc +lat_0=0 +lon_0=-70.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(CSRS98) / MTM zone 7 (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-70.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2144"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] ;(5BO\iv,9FS`mz #0=JWdq~ RepsgR SepsgS TepsgT UepsgU VepsgV WepsgW XepsgX YepsgY ZepsgZ [epsg[ \epsg\ ]epsg] ^epsg^ _epsg_ `epsg` aepsga bepsgb cepsgc depsgd eepsge fepsgf gepsgg hepsgh iepsgi jepsgj kepsgk lepsgl mepsgm nepsgn oepsgo pepsgp qepsgq repsgr sepsgs tepsgt uepsgu vepsgv wepsgw xepsgx yepsgy zepsgz {epsg{ |epsg| }epsg} ~epsg~ epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg Ka [uOepsgaNAD83(CSRS98) / MTM zone 8 (deprecated)+proj=tmerc +lat_0=0 +lon_0=-73.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(CSRS98) / MTM zone 8 (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-73.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2145"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] Kb [uOepsgbNAD83(CSRS98) / MTM zone 9 (deprecated)+proj=tmerc +lat_0=0 +lon_0=-76.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(CSRS98) / MTM zone 9 (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-76.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2146"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] Mc ]uQepsgcNAD83(CSRS98) / MTM zone 10 (deprecated)+proj=tmerc +lat_0=0 +lon_0=-79.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(CSRS98) / MTM zone 10 (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-79.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2147"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] (d _]epsgdNAD83(CSRS98) / UTM zone 21N (deprecated)+proj=utm +zone=21 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(CSRS98) / UTM zone 21N (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2148"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] (e _]epsgeNAD83(CSRS98) / UTM zone 18N (deprecated)+proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(CSRS98) / UTM zone 18N (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2149"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] (f _]epsgfNAD83(CSRS98) / UTM zone 17N (deprecated)+proj=utm +zone=17 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(CSRS98) / UTM zone 17N (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2150"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] )g __epsggNAD83(CSRS98) / UTM zone 13N (deprecated)+proj=utm +zone=13 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(CSRS98) / UTM zone 13N (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2151"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] )h __epsghNAD83(CSRS98) / UTM zone 12N (deprecated)+proj=utm +zone=12 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(CSRS98) / UTM zone 12N (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2152"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] )i __epsgiNAD83(CSRS98) / UTM zone 11N (deprecated)+proj=utm +zone=11 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(CSRS98) / UTM zone 11N (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2153"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Mj 1cepsgjRGF93 / Lambert-93+proj=lcc +lat_1=49 +lat_2=44 +lat_0=46.5 +lon_0=3 +x_0=700000 +y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["RGF93 / Lambert-93",GEOGCS["RGF93",DATUM["Reseau_Geodesique_Francais_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6171"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4171"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",49],PARAMETER["standard_parallel_2",44],PARAMETER["latitude_of_origin",46.5],PARAMETER["central_meridian",3],PARAMETER["false_easting",700000],PARAMETER["false_northing",6600000],AUTHORITY["EPSG","2154"],AXIS["X",EAST],AXIS["Y",NORTH]] ))Sk kEepsgkAmerican Samoa 1962 / American Samoa Lambert (deprecated)+proj=lcc +lat_1=-14.26666666666667 +lat_0=-14.26666666666667 +lon_0=170 +k_0=1 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +towgs84=-115,118,426,0,0,0,0 +units=us-ft +no_defsPROJCS["American Samoa 1962 / American Samoa Lambert (deprecated)",GEOGCS["American Samoa 1962",DATUM["American_Samoa_1962",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-115,118,426,0,0,0,0],AUTHORITY["EPSG","6169"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4169"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",-14.26666666666667],PARAMETER["central_meridian",170],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2155"],AXIS["X",EAST],AXIS["Y",NORTH]] l[}1epsglNAD83(HARN) / UTM zone 59S (deprecated)+proj=utm +zone=59 +south +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / UTM zone 59S (deprecated)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",171],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2156"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 5m UepsgmIRENET95 / Irish Transverse Mercator+proj=tmerc +lat_0=53.5 +lon_0=-8 +k=0.99982 +x_0=600000 +y_0=750000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["IRENET95 / Irish Transverse Mercator",GEOGCS["IRENET95",DATUM["IRENET95",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6173"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4173"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",53.5],PARAMETER["central_meridian",-8],PARAMETER["scale_factor",0.99982],PARAMETER["false_easting",600000],PARAMETER["false_northing",750000],AUTHORITY["EPSG","2157"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] `n ;qepsgnIRENET95 / UTM zone 29N+proj=utm +zone=29 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["IRENET95 / UTM zone 29N",GEOGCS["IRENET95",DATUM["IRENET95",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6173"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4173"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2158"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] io S=KepsgoSierra Leone 1924 / New Colony Grid+proj=tmerc +lat_0=6.666666666666667 +lon_0=-12 +k=1 +x_0=152399.8550907544 +y_0=0 +a=6378300 +b=6356751.689189189 +to_meter=0.3047997101815088 +no_defsPROJCS["Sierra Leone 1924 / New Colony Grid",GEOGCS["Sierra Leone 1924",DATUM["Sierra_Leone_Colony_1924",SPHEROID["War Office",6378300,296,AUTHORITY["EPSG","7029"]],AUTHORITY["EPSG","6174"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4174"]],UNIT["Gold Coast foot",0.3047997101815088,AUTHORITY["EPSG","9094"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",6.666666666666667],PARAMETER["central_meridian",-12],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2159"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] vvp []]epsgpSierra Leone 1924 / New War Office Grid+proj=tmerc +lat_0=6.666666666666667 +lon_0=-12 +k=1 +x_0=243839.7681452071 +y_0=182879.8261089053 +a=6378300 +b=6356751.689189189 +to_meter=0.3047997101815088 +no_defsPROJCS["Sierra Leone 1924 / New War Office Grid",GEOGCS["Sierra Leone 1924",DATUM["Sierra_Leone_Colony_1924",SPHEROID["War Office",6378300,296,AUTHORITY["EPSG","7029"]],AUTHORITY["EPSG","6174"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4174"]],UNIT["Gold Coast foot",0.3047997101815088,AUTHORITY["EPSG","9094"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",6.666666666666667],PARAMETER["central_meridian",-12],PARAMETER["scale_factor",1],PARAMETER["false_easting",800000],PARAMETER["false_northing",600000],AUTHORITY["EPSG","2160"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] q M'?epsgqSierra Leone 1968 / UTM zone 28N+proj=utm +zone=28 +ellps=clrk80 +towgs84=-88,4,101,0,0,0,0 +units=m +no_defsPROJCS["Sierra Leone 1968 / UTM zone 28N",GEOGCS["Sierra Leone 1968",DATUM["Sierra_Leone_1968",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-88,4,101,0,0,0,0],AUTHORITY["EPSG","6175"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4175"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2161"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] r M'=epsgrSierra Leone 1968 / UTM zone 29N+proj=utm +zone=29 +ellps=clrk80 +towgs84=-88,4,101,0,0,0,0 +units=m +no_defsPROJCS["Sierra Leone 1968 / UTM zone 29N",GEOGCS["Sierra Leone 1968",DATUM["Sierra_Leone_1968",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-88,4,101,0,0,0,0],AUTHORITY["EPSG","6175"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4175"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2162"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] &&Vs 9aepsgsunnamed+proj=laea +lat_0=45 +lon_0=-100 +x_0=0 +y_0=0 +a=6370997 +b=6370997 +units=m +no_defsPROJCS["unnamed",GEOGCS["unnamed ellipse",DATUM["unknown",SPHEROID["unnamed",6370997,0]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",45],PARAMETER["longitude_of_center",-100],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["Meter",1],AUTHORITY["EPSG","2163"]] #t 9}epsgtLocodjo 1965 / TM 5 NW+proj=tmerc +lat_0=0 +lon_0=-5 +k=0.9996 +x_0=500000 +y_0=0 +ellps=clrk80 +towgs84=-125,53,467,0,0,0,0 +units=m +no_defsPROJCS["Locodjo 1965 / TM 5 NW",GEOGCS["Locodjo 1965",DATUM["Locodjo_1965",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-125,53,467,0,0,0,0],AUTHORITY["EPSG","6142"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4142"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-5],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2164"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] /u 9 %epsguAbidjan 1987 / TM 5 NW+proj=tmerc +lat_0=0 +lon_0=-5 +k=0.9996 +x_0=500000 +y_0=0 +ellps=clrk80 +towgs84=-124.76,53,466.79,0,0,0,0 +units=m +no_defsPROJCS["Abidjan 1987 / TM 5 NW",GEOGCS["Abidjan 1987",DATUM["Abidjan_1987",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-124.76,53,466.79,0,0,0,0],AUTHORITY["EPSG","6143"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4143"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-5],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2165"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  v s7sepsgvPulkovo 1942(83) / Gauss Kruger zone 3 (deprecated)+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(83) / Gauss Kruger zone 3 (deprecated)",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",1],PARAMETER["false_easting",3500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2166"],AXIS["X",NORTH],AXIS["Y",EAST]]  w s9uepsgwPulkovo 1942(83) / Gauss Kruger zone 4 (deprecated)+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(83) / Gauss Kruger zone 4 (deprecated)",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",12],PARAMETER["scale_factor",1],PARAMETER["false_easting",4500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2167"],AXIS["X",NORTH],AXIS["Y",EAST]]  x s9uepsgxPulkovo 1942(83) / Gauss Kruger zone 5 (deprecated)+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(83) / Gauss Kruger zone 5 (deprecated)",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",1],PARAMETER["false_easting",5500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2168"],AXIS["X",NORTH],AXIS["Y",EAST]] yy ;]cepsgyLuxembourg 1930 / Gauss+proj=tmerc +lat_0=49.83333333333334 +lon_0=6.166666666666667 +k=1 +x_0=80000 +y_0=100000 +ellps=intl +towgs84=-193,13.7,-39.3,-0.41,-2.933,2.688,0.43 +units=m +no_defsPROJCS["Luxembourg 1930 / Gauss",GEOGCS["Luxembourg 1930",DATUM["Luxembourg_1930",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-193,13.7,-39.3,-0.41,-2.933,2.688,0.43],AUTHORITY["EPSG","6181"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4181"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",49.83333333333334],PARAMETER["central_meridian",6.166666666666667],PARAMETER["scale_factor",1],PARAMETER["false_easting",80000],PARAMETER["false_northing",100000],AUTHORITY["EPSG","2169"],AXIS["X",NORTH],AXIS["Y",EAST]] Ez MmYepsgzMGI / Slovenia Grid (deprecated)+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9999 +x_0=500000 +y_0=0 +ellps=bessel +datum=hermannskogel +units=m +no_defsPROJCS["MGI / Slovenia Grid (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4312"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2170"],AXIS["X",NORTH],AXIS["Y",EAST]] A{ gy+epsg{Pulkovo 1942(58) / Poland zone I (deprecated)+proj=sterea +lat_0=50.625 +lon_0=21.08333333333333 +k=0.9998 +x_0=4637000 +y_0=5647000 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(58) / Poland zone I (deprecated)",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Oblique_Stereographic"],PARAMETER["latitude_of_origin",50.625],PARAMETER["central_meridian",21.08333333333333],PARAMETER["scale_factor",0.9998],PARAMETER["false_easting",4637000],PARAMETER["false_northing",5647000],AUTHORITY["EPSG","2171"],AXIS["X",NORTH],AXIS["Y",EAST]] ?| O)epsg|Pulkovo 1942(58) / Poland zone II+proj=sterea +lat_0=53.00194444444445 +lon_0=21.50277777777778 +k=0.9998 +x_0=4603000 +y_0=5806000 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(58) / Poland zone II",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Oblique_Stereographic"],PARAMETER["latitude_of_origin",53.00194444444445],PARAMETER["central_meridian",21.50277777777778],PARAMETER["scale_factor",0.9998],PARAMETER["false_easting",4603000],PARAMETER["false_northing",5806000],AUTHORITY["EPSG","2172"],AXIS["X",NORTH],AXIS["Y",EAST]] A} Q+epsg}Pulkovo 1942(58) / Poland zone III+proj=sterea +lat_0=53.58333333333334 +lon_0=17.00833333333333 +k=0.9998 +x_0=3501000 +y_0=5999000 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(58) / Poland zone III",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Oblique_Stereographic"],PARAMETER["latitude_of_origin",53.58333333333334],PARAMETER["central_meridian",17.00833333333333],PARAMETER["scale_factor",0.9998],PARAMETER["false_easting",3501000],PARAMETER["false_northing",5999000],AUTHORITY["EPSG","2173"],AXIS["X",NORTH],AXIS["Y",EAST]] ?~ O)epsg~Pulkovo 1942(58) / Poland zone IV+proj=sterea +lat_0=51.67083333333333 +lon_0=16.67222222222222 +k=0.9998 +x_0=3703000 +y_0=5627000 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(58) / Poland zone IV",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Oblique_Stereographic"],PARAMETER["latitude_of_origin",51.67083333333333],PARAMETER["central_meridian",16.67222222222222],PARAMETER["scale_factor",0.9998],PARAMETER["false_easting",3703000],PARAMETER["false_northing",5627000],AUTHORITY["EPSG","2174"],AXIS["X",NORTH],AXIS["Y",EAST]]  MqepsgPulkovo 1942(58) / Poland zone V+proj=tmerc +lat_0=0 +lon_0=18.95833333333333 +k=0.999983 +x_0=237000 +y_0=-4700000 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(58) / Poland zone V",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",18.95833333333333],PARAMETER["scale_factor",0.999983],PARAMETER["false_easting",237000],PARAMETER["false_northing",-4700000],AUTHORITY["EPSG","2175"],AXIS["X",NORTH],AXIS["Y",EAST]]  GG{epsgETRS89 / Poland CS2000 zone 5+proj=tmerc +lat_0=0 +lon_0=15 +k=0.999923 +x_0=5500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / Poland CS2000 zone 5",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.999923],PARAMETER["false_easting",5500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2176"],AXIS["x",NORTH],AXIS["y",EAST]]  GG{epsgETRS89 / Poland CS2000 zone 6+proj=tmerc +lat_0=0 +lon_0=18 +k=0.999923 +x_0=6500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / Poland CS2000 zone 6",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",18],PARAMETER["scale_factor",0.999923],PARAMETER["false_easting",6500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2177"],AXIS["x",NORTH],AXIS["y",EAST]]  GG{epsgETRS89 / Poland CS2000 zone 7+proj=tmerc +lat_0=0 +lon_0=21 +k=0.999923 +x_0=7500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / Poland CS2000 zone 7",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",0.999923],PARAMETER["false_easting",7500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2178"],AXIS["x",NORTH],AXIS["y",EAST]]  GG{epsgETRS89 / Poland CS2000 zone 8+proj=tmerc +lat_0=0 +lon_0=24 +k=0.999923 +x_0=8500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / Poland CS2000 zone 8",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",24],PARAMETER["scale_factor",0.999923],PARAMETER["false_easting",8500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2179"],AXIS["x",NORTH],AXIS["y",EAST]] v 5OqepsgETRS89 / Poland CS92+proj=tmerc +lat_0=0 +lon_0=19 +k=0.9993 +x_0=500000 +y_0=-5300000 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / Poland CS92",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",19],PARAMETER["scale_factor",0.9993],PARAMETER["false_easting",500000],PARAMETER["false_northing",-5300000],AUTHORITY["EPSG","2180"],AXIS["x",NORTH],AXIS["y",EAST]]   q Wm)epsgAzores Occidental 1939 / UTM zone 25N+proj=utm +zone=25 +ellps=intl +units=m +no_defsPROJCS["Azores Occidental 1939 / UTM zone 25N",GEOGCS["Azores Occidental 1939",DATUM["Azores_Occidental_Islands_1939",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6182"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4182"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2188"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] " Q)SepsgAzores Central 1948 / UTM zone 26N+proj=utm +zone=26 +ellps=intl +towgs84=-104,167,-38,0,0,0,0 +units=m +no_defsPROJCS["Azores Central 1948 / UTM zone 26N",GEOGCS["Azores Central 1948",DATUM["Azores_Central_Islands_1948",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-104,167,-38,0,0,0,0],AUTHORITY["EPSG","6183"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4183"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2189"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] $ S'WepsgAzores Oriental 1940 / UTM zone 26N+proj=utm +zone=26 +ellps=intl +towgs84=-203,141,53,0,0,0,0 +units=m +no_defsPROJCS["Azores Oriental 1940 / UTM zone 26N",GEOGCS["Azores Oriental 1940",DATUM["Azores_Oriental_Islands_1940",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-203,141,53,0,0,0,0],AUTHORITY["EPSG","6184"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4184"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2190"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ""Z]muepsgMadeira 1936 / UTM zone 28N (deprecated)+proj=utm +zone=28 +ellps=intl +units=m +no_defsPROJCS["Madeira 1936 / UTM zone 28N (deprecated)",GEOGCS["Madeira 1936",DATUM["Madeira_1936",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6185"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4185"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2191"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] $ ?epsgED50 / France EuroLambert+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=2.337229166666667 +k_0=0.99987742 +x_0=600000 +y_0=2200000 +ellps=intl +units=m +no_defsPROJCS["ED50 / France EuroLambert",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",46.8],PARAMETER["central_meridian",2.337229166666667],PARAMETER["scale_factor",0.99987742],PARAMETER["false_easting",600000],PARAMETER["false_northing",2200000],AUTHORITY["EPSG","2192"],AXIS["X",EAST],AXIS["Y",NORTH]] b kaepsgNZGD2000 / New Zealand Transverse Mercator 2000+proj=tmerc +lat_0=0 +lon_0=173 +k=0.9996 +x_0=1600000 +y_0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / New Zealand Transverse Mercator 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",173],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",1600000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2193"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ''U mGepsgAmerican Samoa 1962 / American Samoa Lambert (deprecated)+proj=lcc +lat_1=-14.26666666666667 +lat_0=-14.26666666666667 +lon_0=-170 +k_0=1 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +towgs84=-115,118,426,0,0,0,0 +units=us-ft +no_defsPROJCS["American Samoa 1962 / American Samoa Lambert (deprecated)",GEOGCS["American Samoa 1962",DATUM["American_Samoa_1962",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-115,118,426,0,0,0,0],AUTHORITY["EPSG","6169"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4169"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",-14.26666666666667],PARAMETER["central_meridian",-170],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2194"],AXIS["X",EAST],AXIS["Y",NORTH]] c?{epsgNAD83(HARN) / UTM zone 2S+proj=utm +zone=2 +south +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / UTM zone 2S",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-171],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2195"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  ;EepsgETRS89 / Kp2000 Jutland+proj=tmerc +lat_0=0 +lon_0=9.5 +k=0.99995 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / Kp2000 Jutland",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9.5],PARAMETER["scale_factor",0.99995],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2196"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] } ;CepsgETRS89 / Kp2000 Zealand+proj=tmerc +lat_0=0 +lon_0=12 +k=0.99995 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / Kp2000 Zealand",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",12],PARAMETER["scale_factor",0.99995],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2197"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]   s =7{epsgETRS89 / Kp2000 Bornholm+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=900000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / Kp2000 Bornholm",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",1],PARAMETER["false_easting",900000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2198"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  m9eepsgAlbanian 1987 / Gauss Kruger zone 4 (deprecated)+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=4500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Albanian 1987 / Gauss Kruger zone 4 (deprecated)",GEOGCS["Albanian 1987",DATUM["Albanian_1987",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6191"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4191"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",1],PARAMETER["false_easting",4500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2199"],AXIS["X",NORTH],AXIS["Y",EAST]] X cSepsgATS77 / New Brunswick Stereographic (ATS77)+proj=sterea +lat_0=46.5 +lon_0=-66.5 +k=0.999912 +x_0=300000 +y_0=800000 +a=6378135 +b=6356750.304921594 +units=m +no_defsPROJCS["ATS77 / New Brunswick Stereographic (ATS77)",GEOGCS["ATS77",DATUM["Average_Terrestrial_System_1977",SPHEROID["Average Terrestrial System 1977",6378135,298.257,AUTHORITY["EPSG","7041"]],AUTHORITY["EPSG","6122"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4122"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Oblique_Stereographic"],PARAMETER["latitude_of_origin",46.5],PARAMETER["central_meridian",-66.5],PARAMETER["scale_factor",0.999912],PARAMETER["false_easting",300000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2200"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] k 7 epsgREGVEN / UTM zone 18N+proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["REGVEN / UTM zone 18N",GEOGCS["REGVEN",DATUM["Red_Geodesica_Venezolana",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6189"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4189"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2201"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] k 7 epsgREGVEN / UTM zone 19N+proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["REGVEN / UTM zone 19N",GEOGCS["REGVEN",DATUM["Red_Geodesica_Venezolana",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6189"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4189"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2202"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] k 7 epsgREGVEN / UTM zone 20N+proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["REGVEN / UTM zone 20N",GEOGCS["REGVEN",DATUM["Red_Geodesica_Venezolana",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6189"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4189"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2203"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] YY# /q/epsgNAD27 / Tennessee+proj=lcc +lat_1=35.25 +lat_2=36.41666666666666 +lat_0=34.66666666666666 +lon_0=-86 +x_0=609601.2192024384 +y_0=30480.06096012192 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Tennessee",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",35.25],PARAMETER["standard_parallel_2",36.41666666666666],PARAMETER["latitude_of_origin",34.66666666666666],PARAMETER["central_meridian",-86],PARAMETER["false_easting",2000000],PARAMETER["false_northing",100000],AUTHORITY["EPSG","2204"],AXIS["X",EAST],AXIS["Y",NORTH]] h 95kepsgNAD83 / Kentucky North+proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Kentucky North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.96666666666667],PARAMETER["standard_parallel_2",38.96666666666667],PARAMETER["latitude_of_origin",37.5],PARAMETER["central_meridian",-84.25],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2205"],AXIS["X",EAST],AXIS["Y",NORTH]] d S7GepsgED50 / 3-degree Gauss-Kruger zone 9+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=9500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["ED50 / 3-degree Gauss-Kruger zone 9",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",1],PARAMETER["false_easting",9500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2206"],AXIS["X",NORTH],AXIS["Y",EAST]] h U9KepsgED50 / 3-degree Gauss-Kruger zone 10+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=10500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["ED50 / 3-degree Gauss-Kruger zone 10",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",30],PARAMETER["scale_factor",1],PARAMETER["false_easting",10500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2207"],AXIS["X",NORTH],AXIS["Y",EAST]] h U9KepsgED50 / 3-degree Gauss-Kruger zone 11+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=11500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["ED50 / 3-degree Gauss-Kruger zone 11",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",1],PARAMETER["false_easting",11500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2208"],AXIS["X",NORTH],AXIS["Y",EAST]] h! U9KepsgED50 / 3-degree Gauss-Kruger zone 12+proj=tmerc +lat_0=0 +lon_0=36 +k=1 +x_0=12500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["ED50 / 3-degree Gauss-Kruger zone 12",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",36],PARAMETER["scale_factor",1],PARAMETER["false_easting",12500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2209"],AXIS["X",NORTH],AXIS["Y",EAST]] h" U9KepsgED50 / 3-degree Gauss-Kruger zone 13+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=13500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["ED50 / 3-degree Gauss-Kruger zone 13",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",1],PARAMETER["false_easting",13500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2210"],AXIS["X",NORTH],AXIS["Y",EAST]] h# U9KepsgED50 / 3-degree Gauss-Kruger zone 14+proj=tmerc +lat_0=0 +lon_0=42 +k=1 +x_0=14500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["ED50 / 3-degree Gauss-Kruger zone 14",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",42],PARAMETER["scale_factor",1],PARAMETER["false_easting",14500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2211"],AXIS["X",NORTH],AXIS["Y",EAST]] h$ U9KepsgED50 / 3-degree Gauss-Kruger zone 15+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=15500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["ED50 / 3-degree Gauss-Kruger zone 15",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",1],PARAMETER["false_easting",15500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2212"],AXIS["X",NORTH],AXIS["Y",EAST]]   o% /AwepsgETRS89 / TM 30 NE+proj=tmerc +lat_0=0 +lon_0=30 +k=0.9996 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / TM 30 NE",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",30],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2213"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] R& SAepsgDouala 1948 / AOF west (deprecated)+proj=tmerc +lat_0=0 +lon_0=10.5 +k=0.999 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs84=-206.1,-174.7,-87.7,0,0,0,0 +units=m +no_defsPROJCS["Douala 1948 / AOF west (deprecated)",GEOGCS["Douala 1948",DATUM["Douala_1948",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-206.1,-174.7,-87.7,0,0,0,0],AUTHORITY["EPSG","6192"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4192"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",10.5],PARAMETER["scale_factor",0.999],PARAMETER["false_easting",1000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","2214"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ' AM9epsgManoca 1962 / UTM zone 32N+proj=utm +zone=32 +a=6378249.2 +b=6356515 +towgs84=-70.9,-151.8,-41.4,0,0,0,0 +units=m +no_defsPROJCS["Manoca 1962 / UTM zone 32N",GEOGCS["Manoca 1962",DATUM["Manoca_1962",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-70.9,-151.8,-41.4,0,0,0,0],AUTHORITY["EPSG","6193"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4193"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2215"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ??=(AmWepsgQornoq 1927 / UTM zone 22N+proj=utm +zone=22 +ellps=intl +units=m +no_defsPROJCS["Qornoq 1927 / UTM zone 22N",GEOGCS["Qornoq 1927",DATUM["Qornoq_1927",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6194"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4194"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2216"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ??=)AmWepsgQornoq 1927 / UTM zone 23N+proj=utm +zone=23 +ellps=intl +units=m +no_defsPROJCS["Qornoq 1927 / UTM zone 23N",GEOGCS["Qornoq 1927",DATUM["Qornoq_1927",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6194"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4194"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2217"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] e+ 5 epsgATS77 / UTM zone 19N+proj=utm +zone=19 +a=6378135 +b=6356750.304921594 +units=m +no_defsPROJCS["ATS77 / UTM zone 19N",GEOGCS["ATS77",DATUM["Average_Terrestrial_System_1977",SPHEROID["Average Terrestrial System 1977",6378135,298.257,AUTHORITY["EPSG","7041"]],AUTHORITY["EPSG","6122"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4122"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2219"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] e, 5 epsgATS77 / UTM zone 20N+proj=utm +zone=20 +a=6378135 +b=6356750.304921594 +units=m +no_defsPROJCS["ATS77 / UTM zone 20N",GEOGCS["ATS77",DATUM["Average_Terrestrial_System_1977",SPHEROID["Average Terrestrial System 1977",6378135,298.257,AUTHORITY["EPSG","7041"]],AUTHORITY["EPSG","6122"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4122"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2220"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ;(5BO\iv,9FS`mz #0=JWdq~ epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg . ?sepsgNAD83 / Arizona East (ft)+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=ft +no_defsPROJCS["NAD83 / Arizona East (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-110.1666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",700000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2222"],AXIS["X",EAST],AXIS["Y",NORTH]] / EyepsgNAD83 / Arizona Central (ft)+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=ft +no_defsPROJCS["NAD83 / Arizona Central (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-111.9166666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",700000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2223"],AXIS["X",EAST],AXIS["Y",NORTH]] 0 ?sgepsgNAD83 / Arizona West (ft)+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0=213360 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=ft +no_defsPROJCS["NAD83 / Arizona West (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-113.75],PARAMETER["scale_factor",0.999933333],PARAMETER["false_easting",700000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2224"],AXIS["X",EAST],AXIS["Y",NORTH]] BB:1 MgIepsgNAD83 / California zone 1 (ftUS)+proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.33333333333334 +lon_0=-122 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / California zone 1 (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.66666666666666],PARAMETER["standard_parallel_2",40],PARAMETER["latitude_of_origin",39.33333333333334],PARAMETER["central_meridian",-122],PARAMETER["false_easting",6561666.667],PARAMETER["false_northing",1640416.667],AUTHORITY["EPSG","2225"],AXIS["X",EAST],AXIS["Y",NORTH]] $$X2 MgepsgNAD83 / California zone 2 (ftUS)+proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / California zone 2 (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.83333333333334],PARAMETER["standard_parallel_2",38.33333333333334],PARAMETER["latitude_of_origin",37.66666666666666],PARAMETER["central_meridian",-122],PARAMETER["false_easting",6561666.667],PARAMETER["false_northing",1640416.667],AUTHORITY["EPSG","2226"],AXIS["X",EAST],AXIS["Y",NORTH]] ::B3 MoQepsgNAD83 / California zone 3 (ftUS)+proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666667 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / California zone 3 (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.43333333333333],PARAMETER["standard_parallel_2",37.06666666666667],PARAMETER["latitude_of_origin",36.5],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",6561666.667],PARAMETER["false_northing",1640416.667],AUTHORITY["EPSG","2227"],AXIS["X",EAST],AXIS["Y",NORTH]] ZZ"4 MO1epsgNAD83 / California zone 4 (ftUS)+proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.33333333333334 +lon_0=-119 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / California zone 4 (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.25],PARAMETER["standard_parallel_2",36],PARAMETER["latitude_of_origin",35.33333333333334],PARAMETER["central_meridian",-119],PARAMETER["false_easting",6561666.667],PARAMETER["false_northing",1640416.667],AUTHORITY["EPSG","2228"],AXIS["X",EAST],AXIS["Y",NORTH]] >>>5 MkMepsgNAD83 / California zone 5 (ftUS)+proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333333 +lat_0=33.5 +lon_0=-118 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / California zone 5 (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",35.46666666666667],PARAMETER["standard_parallel_2",34.03333333333333],PARAMETER["latitude_of_origin",33.5],PARAMETER["central_meridian",-118],PARAMETER["false_easting",6561666.667],PARAMETER["false_northing",1640416.667],AUTHORITY["EPSG","2229"],AXIS["X",EAST],AXIS["Y",NORTH]]333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / California zone 6 (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",33.88333333333333],PARAMETER["standard_parallel_2",32.78333333333333],PARAMETER["latitude_of_origin",32.16666666666666],PARAMETER["central_meridian",-116.25],PARAMETER["false_easting",6561666.667],PARAMETER["false_northing",1640416.667],AUTHORITY["EPSG","2230"],AXIS["X",EAST],AXIS["Y",NORTH]] ^6 M mepsgNAD83 / California zone 6 (ftUS)+proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333 ,,P7 G UepsgNAD83 / Colorado North (ftUS)+proj=lcc +lat_1=40.78333333333333 +lat_2=39.71666666666667 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8288036576 +y_0=304800.6096012192 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Colorado North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.78333333333333],PARAMETER["standard_parallel_2",39.71666666666667],PARAMETER["latitude_of_origin",39.33333333333334],PARAMETER["central_meridian",-105.5],PARAMETER["false_easting",3000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","2231"],AXIS["X",EAST],AXIS["Y",NORTH]] XX$8 K])epsgNAD83 / Colorado Central (ftUS)+proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.83333333333334 +lon_0=-105.5 +x_0=914401.8288036576 +y_0=304800.6096012192 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Colorado Central (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.75],PARAMETER["standard_parallel_2",38.45],PARAMETER["latitude_of_origin",37.83333333333334],PARAMETER["central_meridian",-105.5],PARAMETER["false_easting",3000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","2232"],AXIS["X",EAST],AXIS["Y",NORTH]] ,,P9 G UepsgNAD83 / Colorado South (ftUS)+proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8288036576 +y_0=304800.6096012192 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Colorado South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.43333333333333],PARAMETER["standard_parallel_2",37.23333333333333],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-105.5],PARAMETER["false_easting",3000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","2233"],AXIS["X",EAST],AXIS["Y",NORTH]] MM/: As3epsgNAD83 / Connecticut (ftUS)+proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40.83333333333334 +lon_0=-72.75 +x_0=304800.6096012192 +y_0=152400.3048006096 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Connecticut (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.86666666666667],PARAMETER["standard_parallel_2",41.2],PARAMETER["latitude_of_origin",40.83333333333334],PARAMETER["central_meridian",-72.75],PARAMETER["false_easting",1000000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","2234"],AXIS["X",EAST],AXIS["Y",NORTH]] <; ;'epsgNAD83 / Delaware (ftUS)+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999995 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Delaware (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38],PARAMETER["central_meridian",-75.41666666666667],PARAMETER["scale_factor",0.999995],PARAMETER["false_easting",656166.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","2235"],AXIS["X",EAST],AXIS["Y",NORTH]] J< C%5epsgNAD83 / Florida East (ftUS)+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999941177 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Florida East (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",24.33333333333333],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",656166.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","2236"],AXIS["X",EAST],AXIS["Y",NORTH]] J= C%5epsgNAD83 / Florida West (ftUS)+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999941177 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Florida West (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",24.33333333333333],PARAMETER["central_meridian",-82],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",656166.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","2237"],AXIS["X",EAST],AXIS["Y",NORTH]] u> EepsgNAD83 / Florida North (ftUS)+proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=29 +lon_0=-84.5 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Florida North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",30.75],PARAMETER["standard_parallel_2",29.58333333333333],PARAMETER["latitude_of_origin",29],PARAMETER["central_meridian",-84.5],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","2238"],AXIS["X",EAST],AXIS["Y",NORTH]] @? C+epsgNAD83 / Georgia East (ftUS)+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.9999 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Georgia East (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",30],PARAMETER["central_meridian",-82.16666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",656166.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","2239"],AXIS["X",EAST],AXIS["Y",NORTH]] A@ C-epsgNAD83 / Georgia West (ftUS)+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.9999 +x_0=699999.9998983998 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Georgia West (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",30],PARAMETER["central_meridian",-84.16666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",2296583.333],PARAMETER["false_northing",0],AUTHORITY["EPSG","2240"],AXIS["X",EAST],AXIS["Y",NORTH]] kA ?QOepsgNAD83 / Idaho East (ftUS)+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666666667 +k=0.9999473679999999 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Idaho East (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.66666666666666],PARAMETER["central_meridian",-112.1666666666667],PARAMETER["scale_factor",0.999947368],PARAMETER["false_easting",656166.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","2241"],AXIS["X",EAST],AXIS["Y",NORTH]] VB E5;epsgNAD83 / Idaho Central (ftUS)+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.9999473679999999 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Idaho Central (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.66666666666666],PARAMETER["central_meridian",-114],PARAMETER["scale_factor",0.999947368],PARAMETER["false_easting",1640416.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","2242"],AXIS["X",EAST],AXIS["Y",NORTH]] OC ?-;epsgNAD83 / Idaho West (ftUS)+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0.999933333 +x_0=800000.0001016001 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Idaho West (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.66666666666666],PARAMETER["central_meridian",-115.75],PARAMETER["scale_factor",0.999933333],PARAMETER["false_easting",2624666.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","2243"],AXIS["X",EAST],AXIS["Y",NORTH]] }D ]I]epsgNAD83 / Indiana East (ftUS) (deprecated)+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.999966667 +x_0=99999.99989839978 +y_0=249364.9987299975 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Indiana East (ftUS) (deprecated)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",37.5],PARAMETER["central_meridian",-85.66666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",328083.333],PARAMETER["false_northing",818125],AUTHORITY["EPSG","2244"],AXIS["X",EAST],AXIS["Y",NORTH]] oE ]3WepsgNAD83 / Indiana West (ftUS) (deprecated)+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.999966667 +x_0=900000 +y_0=249364.9987299975 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Indiana West (ftUS) (deprecated)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",37.5],PARAMETER["central_meridian",-87.08333333333333],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",2952750],PARAMETER["false_northing",818125],AUTHORITY["EPSG","2245"],AXIS["X",EAST],AXIS["Y",NORTH]] XX$F GS7epsgNAD83 / Kentucky North (ftUS)+proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Kentucky North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.96666666666667],PARAMETER["standard_parallel_2",38.96666666666667],PARAMETER["latitude_of_origin",37.5],PARAMETER["central_meridian",-84.25],PARAMETER["false_easting",1640416.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","2246"],AXIS["X",EAST],AXIS["Y",NORTH]] $$XG G eepsgNAD83 / Kentucky South (ftUS)+proj=lcc +lat_1=37.93333333333333 +lat_2=36.73333333333333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000.0001016001 +y_0=500000.0001016001 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Kentucky South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.93333333333333],PARAMETER["standard_parallel_2",36.73333333333333],PARAMETER["latitude_of_origin",36.33333333333334],PARAMETER["central_meridian",-85.75],PARAMETER["false_easting",1640416.667],PARAMETER["false_northing",1640416.667],AUTHORITY["EPSG","2247"],AXIS["X",EAST],AXIS["Y",NORTH]] zH ;5 epsgNAD83 / Maryland (ftUS)+proj=lcc +lat_1=39.45 +lat_2=38.3 +lat_0=37.66666666666666 +lon_0=-77 +x_0=399999.9998983998 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Maryland (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.45],PARAMETER["standard_parallel_2",38.3],PARAMETER["latitude_of_origin",37.66666666666666],PARAMETER["central_meridian",-77],PARAMETER["false_easting",1312333.333],PARAMETER["false_northing",0],AUTHORITY["EPSG","2248"],AXIS["X",EAST],AXIS["Y",NORTH]] DD8I WWKepsgNAD83 / Massachusetts Mainland (ftUS)+proj=lcc +lat_1=42.68333333333333 +lat_2=41.71666666666667 +lat_0=41 +lon_0=-71.5 +x_0=200000.0001016002 +y_0=750000 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Massachusetts Mainland (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",42.68333333333333],PARAMETER["standard_parallel_2",41.71666666666667],PARAMETER["latitude_of_origin",41],PARAMETER["central_meridian",-71.5],PARAMETER["false_easting",656166.667],PARAMETER["false_northing",2460625],AUTHORITY["EPSG","2249"],AXIS["X",EAST],AXIS["Y",NORTH]] RR*J SM=epsgNAD83 / Massachusetts Island (ftUS)+proj=lcc +lat_1=41.48333333333333 +lat_2=41.28333333333333 +lat_0=41 +lon_0=-70.5 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Massachusetts Island (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.48333333333333],PARAMETER["standard_parallel_2",41.28333333333333],PARAMETER["latitude_of_origin",41],PARAMETER["central_meridian",-70.5],PARAMETER["false_easting",1640416.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","2250"],AXIS["X",EAST],AXIS["Y",NORTH]] aaK CaepsgNAD83 / Michigan North (ft)+proj=lcc +lat_1=47.08333333333334 +lat_2=45.48333333333333 +lat_0=44.78333333333333 +lon_0=-87 +x_0=7999999.999968001 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=ft +no_defsPROJCS["NAD83 / Michigan North (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.08333333333334],PARAMETER["standard_parallel_2",45.48333333333333],PARAMETER["latitude_of_origin",44.78333333333333],PARAMETER["central_meridian",-87],PARAMETER["false_easting",26246719.16],PARAMETER["false_northing",0],AUTHORITY["EPSG","2251"],AXIS["X",EAST],AXIS["Y",NORTH]] YY#L Ge#epsgNAD83 / Michigan Central (ft)+proj=lcc +lat_1=45.7 +lat_2=44.18333333333333 +lat_0=43.31666666666667 +lon_0=-84.36666666666666 +x_0=5999999.999976001 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=ft +no_defsPROJCS["NAD83 / Michigan Central (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.7],PARAMETER["standard_parallel_2",44.18333333333333],PARAMETER["latitude_of_origin",43.31666666666667],PARAMETER["central_meridian",-84.36666666666666],PARAMETER["false_easting",19685039.37],PARAMETER["false_northing",0],AUTHORITY["EPSG","2252"],AXIS["X",EAST],AXIS["Y",NORTH]] zzM CEepsgNAD83 / Michigan South (ft)+proj=lcc +lat_1=43.66666666666666 +lat_2=42.1 +lat_0=41.5 +lon_0=-84.36666666666666 +x_0=3999999.999984 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=ft +no_defsPROJCS["NAD83 / Michigan South (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43.66666666666666],PARAMETER["standard_parallel_2",42.1],PARAMETER["latitude_of_origin",41.5],PARAMETER["central_meridian",-84.36666666666666],PARAMETER["false_easting",13123359.58],PARAMETER["false_northing",0],AUTHORITY["EPSG","2253"],AXIS["X",EAST],AXIS["Y",NORTH]] UN K!GepsgNAD83 / Mississippi East (ftUS)+proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.99995 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Mississippi East (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",29.5],PARAMETER["central_meridian",-88.83333333333333],PARAMETER["scale_factor",0.99995],PARAMETER["false_easting",984250.0000000002],PARAMETER["false_northing",0],AUTHORITY["EPSG","2254"],AXIS["X",EAST],AXIS["Y",NORTH]] OO K!;epsgNAD83 / Mississippi West (ftUS)+proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.99995 +x_0=699999.9998983998 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Mississippi West (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",29.5],PARAMETER["central_meridian",-90.33333333333333],PARAMETER["scale_factor",0.99995],PARAMETER["false_easting",2296583.333],PARAMETER["false_northing",0],AUTHORITY["EPSG","2255"],AXIS["X",EAST],AXIS["Y",NORTH]] 

DJPV\bhntz "(.4:@FLRX^djpv|DEFGHIJKLMN O P Q R STUVWXYZ[\]^_`abcd!e"f#g$h%i'j(k)l*m+n,o-p.q/r0s1t2v3w456789 : ; < = >?@ABCDEFGHIJKLMNOP Q!R"S#T$U%V&W'X(Y)Z*[+\,]-^._/`0a1b2d3e4f5g6h7i8j9k:l;m<n=o>p? aac AW'epsgNAD83 / Texas North (ftUS)+proj=lcc +lat_1=36.18333333333333 +lat_2=34.65 +lat_0=34 +lon_0=-101.5 +x_0=200000.0001016002 +y_0=999999.9998983998 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Texas North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.18333333333333],PARAMETER["standard_parallel_2",34.65],PARAMETER["latitude_of_origin",34],PARAMETER["central_meridian",-101.5],PARAMETER["false_easting",656166.667],PARAMETER["false_northing",3280833.333],AUTHORITY["EPSG","2275"],AXIS["X",EAST],AXIS["Y",NORTH]] --Od QqeepsgNAD83 / Texas North Central (ftUS)+proj=lcc +lat_1=33.96666666666667 +lat_2=32.13333333333333 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000 +y_0=2000000.0001016 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Texas North Central (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",33.96666666666667],PARAMETER["standard_parallel_2",32.13333333333333],PARAMETER["latitude_of_origin",31.66666666666667],PARAMETER["central_meridian",-98.5],PARAMETER["false_easting",1968500],PARAMETER["false_northing",6561666.667],AUTHORITY["EPSG","2276"],AXIS["X",EAST],AXIS["Y",NORTH]]+lat_0=29.66666666666667 +lon_0=-100.3333333333333 +x_0=699999.9998983998 +y_0=3000000 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Texas Central (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",31.88333333333333],PARAMETER["standard_parallel_2",30.11666666666667],PARAMETER["latitude_of_origin",29.66666666666667],PARAMETER["central_meridian",-100.3333333333333],PARAMETER["false_easting",2296583.333],PARAMETER["false_northing",9842500.000000002],AUTHORITY["EPSG","2277"],AXIS["X",EAST],AXIS["Y",NORTH]] je EepsgNAD83 / Texas Central (ftUS)+proj=lcc +lat_1=31.88333333333333 +lat_2=30.11666666666667  00Lf QmcepsgNAD83 / Texas South Central (ftUS)+proj=lcc +lat_1=30.28333333333333 +lat_2=28.38333333333333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0=3999999.9998984 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Texas South Central (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",30.28333333333333],PARAMETER["standard_parallel_2",28.38333333333333],PARAMETER["latitude_of_origin",27.83333333333333],PARAMETER["central_meridian",-99],PARAMETER["false_easting",1968500],PARAMETER["false_northing",13123333.333],AUTHORITY["EPSG","2278"],AXIS["X",EAST],AXIS["Y",NORTH]] ''Ug AkepsgNAD83 / Texas South (ftUS)+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666667 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=300000.0000000001 +y_0=5000000.0001016 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Texas South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",27.83333333333333],PARAMETER["standard_parallel_2",26.16666666666667],PARAMETER["latitude_of_origin",25.66666666666667],PARAMETER["central_meridian",-98.5],PARAMETER["false_easting",984250.0000000002],PARAMETER["false_northing",16404166.667],AUTHORITY["EPSG","2279"],AXIS["X",EAST],AXIS["Y",NORTH]] LL0h ;-epsgNAD83 / Utah North (ft)+proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000.0001504 +y_0=999999.9999960001 +ellps=GRS80 +datum=NAD83 +units=ft +no_defsPROJCS["NAD83 / Utah North (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.78333333333333],PARAMETER["standard_parallel_2",40.71666666666667],PARAMETER["latitude_of_origin",40.33333333333334],PARAMETER["central_meridian",-111.5],PARAMETER["false_easting",1640419.948],PARAMETER["false_northing",3280839.895],AUTHORITY["EPSG","2280"],AXIS["X",EAST],AXIS["Y",NORTH]] ddi ?cepsgNAD83 / Utah Central (ft)+proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=38.33333333333334 +lon_0=-111.5 +x_0=500000.0001504 +y_0=1999999.999992 +ellps=GRS80 +datum=NAD83 +units=ft +no_defsPROJCS["NAD83 / Utah Central (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.65],PARAMETER["standard_parallel_2",39.01666666666667],PARAMETER["latitude_of_origin",38.33333333333334],PARAMETER["central_meridian",-111.5],PARAMETER["false_easting",1640419.948],PARAMETER["false_northing",6561679.79],AUTHORITY["EPSG","2281"],AXIS["X",EAST],AXIS["Y",NORTH]] ;(5BO\iv,9FS`mz #0=JWdq~ epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg  epsg   epsg   epsg   epsg   epsg   epsg  epsg  epsg  epsg  epsg  epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg  ggj ;cepsgNAD83 / Utah South (ft)+proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=36.66666666666666 +lon_0=-111.5 +x_0=500000.0001504 +y_0=2999999.999988 +ellps=GRS80 +datum=NAD83 +units=ft +no_defsPROJCS["NAD83 / Utah South (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.35],PARAMETER["standard_parallel_2",37.21666666666667],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-111.5],PARAMETER["false_easting",1640419.948],PARAMETER["false_northing",9842519.685],AUTHORITY["EPSG","2282"],AXIS["X",EAST],AXIS["Y",NORTH]] CC9k GiKepsgNAD83 / Virginia North (ftUS)+proj=lcc +lat_1=39.2 +lat_2=38.03333333333333 +lat_0=37.66666666666666 +lon_0=-78.5 +x_0=3500000.0001016 +y_0=2000000.0001016 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Virginia North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.2],PARAMETER["standard_parallel_2",38.03333333333333],PARAMETER["latitude_of_origin",37.66666666666666],PARAMETER["central_meridian",-78.5],PARAMETER["false_easting",11482916.667],PARAMETER["false_northing",6561666.667],AUTHORITY["EPSG","2283"],AXIS["X",EAST],AXIS["Y",NORTH]] ''Ul GeepsgNAD83 / Virginia South (ftUS)+proj=lcc +lat_1=37.96666666666667 +lat_2=36.76666666666667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3500000.0001016 +y_0=999999.9998983998 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Virginia South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.96666666666667],PARAMETER["standard_parallel_2",36.76666666666667],PARAMETER["latitude_of_origin",36.33333333333334],PARAMETER["central_meridian",-78.5],PARAMETER["false_easting",11482916.667],PARAMETER["false_northing",3280833.333],AUTHORITY["EPSG","2284"],AXIS["X",EAST],AXIS["Y",NORTH]] ZZ"m KM5epsgNAD83 / Washington North (ftUS)+proj=lcc +lat_1=48.73333333333333 +lat_2=47.5 +lat_0=47 +lon_0=-120.8333333333333 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Washington North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",48.73333333333333],PARAMETER["standard_parallel_2",47.5],PARAMETER["latitude_of_origin",47],PARAMETER["central_meridian",-120.8333333333333],PARAMETER["false_easting",1640416.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","2285"],AXIS["X",EAST],AXIS["Y",NORTH]] ::Bn KmUepsgNAD83 / Washington South (ftUS)+proj=lcc +lat_1=47.33333333333334 +lat_2=45.83333333333334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Washington South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.33333333333334],PARAMETER["standard_parallel_2",45.83333333333334],PARAMETER["latitude_of_origin",45.33333333333334],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",1640416.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","2286"],AXIS["X",EAST],AXIS["Y",NORTH]] QQ+o IQEepsgNAD83 / Wisconsin North (ftUS)+proj=lcc +lat_1=46.76666666666667 +lat_2=45.56666666666667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Wisconsin North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",46.76666666666667],PARAMETER["standard_parallel_2",45.56666666666667],PARAMETER["latitude_of_origin",45.16666666666666],PARAMETER["central_meridian",-90],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","2287"],AXIS["X",EAST],AXIS["Y",NORTH]] }p MepsgNAD83 / Wisconsin Central (ftUS)+proj=lcc +lat_1=45.5 +lat_2=44.25 +lat_0=43.83333333333334 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Wisconsin Central (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.5],PARAMETER["standard_parallel_2",44.25],PARAMETER["latitude_of_origin",43.83333333333334],PARAMETER["central_meridian",-90],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","2288"],AXIS["X",EAST],AXIS["Y",NORTH]] oo q I3'epsgNAD83 / Wisconsin South (ftUS)+proj=lcc +lat_1=44.06666666666667 +lat_2=42.73333333333333 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Wisconsin South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",44.06666666666667],PARAMETER["standard_parallel_2",42.73333333333333],PARAMETER["latitude_of_origin",42],PARAMETER["central_meridian",-90],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","2289"],AXIS["X",EAST],AXIS["Y",NORTH]] Yr mMepsgATS77 / Prince Edward Isl. Stereographic (ATS77)+proj=sterea +lat_0=47.25 +lon_0=-63 +k=0.999912 +x_0=700000 +y_0=400000 +a=6378135 +b=6356750.304921594 +units=m +no_defsPROJCS["ATS77 / Prince Edward Isl. Stereographic (ATS77)",GEOGCS["ATS77",DATUM["Average_Terrestrial_System_1977",SPHEROID["Average Terrestrial System 1977",6378135,298.257,AUTHORITY["EPSG","7041"]],AUTHORITY["EPSG","6122"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4122"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Oblique_Stereographic"],PARAMETER["latitude_of_origin",47.25],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.999912],PARAMETER["false_easting",700000],PARAMETER["false_northing",400000],AUTHORITY["EPSG","2290"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] xxs wepsgNAD83(CSRS98) / Prince Edward Isl. Stereographic (NAD83) (deprecated)+proj=sterea +lat_0=47.25 +lon_0=-63 +k=0.999912 +x_0=400000 +y_0=800000 +a=6378135 +b=6356750.304921594 +units=m +no_defsPROJCS["NAD83(CSRS98) / Prince Edward Isl. Stereographic (NAD83) (deprecated)",GEOGCS["ATS77",DATUM["Average_Terrestrial_System_1977",SPHEROID["Average Terrestrial System 1977",6378135,298.257,AUTHORITY["EPSG","7041"]],AUTHORITY["EPSG","6122"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4122"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Oblique_Stereographic"],PARAMETER["latitude_of_origin",47.25],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.999912],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2291"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] __t  !epsgNAD83(CSRS98) / Prince Edward Isl. Stereographic (NAD83) (deprecated)+proj=sterea +lat_0=47.25 +lon_0=-63 +k=0.999912 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(CSRS98) / Prince Edward Isl. Stereographic (NAD83) (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Oblique_Stereographic"],PARAMETER["latitude_of_origin",47.25],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.999912],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2292"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] )v Io#epsgATS77 / MTM Nova Scotia zone 4+proj=tmerc +lat_0=0 +lon_0=-61.5 +k=0.9999 +x_0=4500000 +y_0=0 +a=6378135 +b=6356750.304921594 +units=m +no_defsPROJCS["ATS77 / MTM Nova Scotia zone 4",GEOGCS["ATS77",DATUM["Average_Terrestrial_System_1977",SPHEROID["Average Terrestrial System 1977",6378135,298.257,AUTHORITY["EPSG","7041"]],AUTHORITY["EPSG","6122"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4122"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-61.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",4500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2294"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] )w Io#epsgATS77 / MTM Nova Scotia zone 5+proj=tmerc +lat_0=0 +lon_0=-64.5 +k=0.9999 +x_0=5500000 +y_0=0 +a=6378135 +b=6356750.304921594 +units=m +no_defsPROJCS["ATS77 / MTM Nova Scotia zone 5",GEOGCS["ATS77",DATUM["Average_Terrestrial_System_1977",SPHEROID["Average Terrestrial System 1977",6378135,298.257,AUTHORITY["EPSG","7041"]],AUTHORITY["EPSG","6122"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4122"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-64.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",5500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2295"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] g 3SQepsg Batavia / TM 109 SE+proj=tmerc +lat_0=0 +lon_0=109 +k=0.9996 +x_0=500000 +y_0=10000000 +ellps=bessel +units=m +no_defsPROJCS["Batavia / TM 109 SE",GEOGCS["Batavia",DATUM["Batavia",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6211"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4211"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",109],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2308"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] j 1kAepsg WGS 84 / TM 116 SE+proj=tmerc +lat_0=0 +lon_0=116 +k=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / TM 116 SE",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",116],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2309"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] j 1kAepsg WGS 84 / TM 132 SE+proj=tmerc +lat_0=0 +lon_0=132 +k=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / TM 132 SE",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",132],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2310"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ((T -Y+epsg WGS 84 / TM 6 NE+proj=tmerc +lat_0=0 +lon_0=6 +k=0.9996 +x_0=500000 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / TM 6 NE",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",6],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2311"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] KK17qEepsg Garoua / UTM zone 33N+proj=utm +zone=33 +ellps=clrk80 +units=m +no_defsPROJCS["Garoua / UTM zone 33N",GEOGCS["Garoua",DATUM["Garoua",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6197"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4197"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2312"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] CC9 ;qQepsg Kousseri / UTM zone 33N+proj=utm +zone=33 +ellps=clrk80 +units=m +no_defsPROJCS["Kousseri / UTM zone 33N",GEOGCS["Kousseri",DATUM["Kousseri",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6198"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4198"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2313"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] | Wo;epsg Trinidad 1903 / Trinidad Grid (ftCla)+proj=cass +lat_0=10.44166666666667 +lon_0=-61.33333333333334 +x_0=86501.46392052001 +y_0=65379.0134283 +a=6378293.645208759 +b=6356617.987679838 +to_meter=0.3047972654 +no_defsPROJCS["Trinidad 1903 / Trinidad Grid (ftCla)",GEOGCS["Trinidad 1903",DATUM["Trinidad_1903",SPHEROID["Clarke 1858",6378293.645208759,294.2606763692569,AUTHORITY["EPSG","7007"]],AUTHORITY["EPSG","6302"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4302"]],UNIT["Clarke's foot",0.3047972654,AUTHORITY["EPSG","9005"]],PROJECTION["Cassini_Soldner"],PARAMETER["latitude_of_origin",10.44166666666667],PARAMETER["central_meridian",-61.33333333333334],PARAMETER["false_easting",283800],PARAMETER["false_northing",214500],AUTHORITY["EPSG","2314"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] !![ I{}epsg Campo Inchauspe / UTM zone 19S+proj=utm +zone=19 +south +ellps=intl +units=m +no_defsPROJCS["Campo Inchauspe / UTM zone 19S",GEOGCS["Campo Inchauspe",DATUM["Campo_Inchauspe",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6221"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4221"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2315"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] !![ I{}epsg Campo Inchauspe / UTM zone 20S+proj=utm +zone=20 +south +ellps=intl +units=m +no_defsPROJCS["Campo Inchauspe / UTM zone 20S",GEOGCS["Campo Inchauspe",DATUM["Campo_Inchauspe",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6221"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4221"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2316"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ' 7[Eepsg PSAD56 / ICN Regional+proj=lcc +lat_1=9 +lat_2=3 +lat_0=6 +lon_0=-66 +x_0=1000000 +y_0=1000000 +ellps=intl +units=m +no_defsPROJCS["PSAD56 / ICN Regional",GEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",9],PARAMETER["standard_parallel_2",3],PARAMETER["latitude_of_origin",6],PARAMETER["central_meridian",-66],PARAMETER["false_easting",1000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","2317"],AXIS["X",EAST],AXIS["Y",NORTH]] & CS?epsg Ain el Abd / Aramco Lambert+proj=lcc +lat_1=17 +lat_2=33 +lat_0=25.08951 +lon_0=48 +x_0=0 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["Ain el Abd / Aramco Lambert",GEOGCS["Ain el Abd",DATUM["Ain_el_Abd_1970",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6204"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4204"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",17],PARAMETER["standard_parallel_2",33],PARAMETER["latitude_of_origin",25.08951],PARAMETER["central_meridian",48],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","2318"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] JJ2 #5epsg ED50 / TM27+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["ED50 / TM27",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2319"],AXIS["X",NORTH],AXIS["Y",EAST]] JJ2 #5epsg ED50 / TM30+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["ED50 / TM30",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",30],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2320"],AXIS["X",NORTH],AXIS["Y",EAST]] JJ2 #5epsg ED50 / TM33+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["ED50 / TM33",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2321"],AXIS["X",NORTH],AXIS["Y",EAST]] JJ2 #5epsg ED50 / TM36+proj=tmerc +lat_0=0 +lon_0=36 +k=1 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["ED50 / TM36",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",36],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2322"],AXIS["X",NORTH],AXIS["Y",EAST]] JJ2 #5epsg ED50 / TM39+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["ED50 / TM39",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2323"],AXIS["X",NORTH],AXIS["Y",EAST]] JJ2 #5epsg ED50 / TM42+proj=tmerc +lat_0=0 +lon_0=42 +k=1 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["ED50 / TM42",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",42],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2324"],AXIS["X",NORTH],AXIS["Y",EAST]] JJ2 #5epsg ED50 / TM45+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["ED50 / TM45",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2325"],AXIS["X",NORTH],AXIS["Y",EAST]] 88D A9epsg Hong Kong 1980 Grid System+proj=tmerc +lat_0=22.31213333333334 +lon_0=114.1785555555556 +k=1 +x_0=836694.05 +y_0=819069.8 +ellps=intl +towgs84=-162.619,-276.959,-161.764,0.067753,-2.24365,-1.15883,-1.09425 +units=m +no_defsPROJCS["Hong Kong 1980 Grid System",GEOGCS["Hong Kong 1980",DATUM["Hong_Kong_1980",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-162.619,-276.959,-161.764,0.067753,-2.24365,-1.15883,-1.09425],AUTHORITY["EPSG","6611"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4611"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",22.31213333333334],PARAMETER["central_meridian",114.1785555555556],PARAMETER["scale_factor",1],PARAMETER["false_easting",836694.05],PARAMETER["false_northing",819069.8],AUTHORITY["EPSG","2326"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] j Ma/epsg Xian 1980 / Gauss-Kruger zone 13+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=13500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / Gauss-Kruger zone 13",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",1],PARAMETER["false_easting",13500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2327"],AXIS["X",NORTH],AXIS["Y",EAST]] j Ma/epsg Xian 1980 / Gauss-Kruger zone 14+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=14500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / Gauss-Kruger zone 14",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",1],PARAMETER["false_easting",14500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2328"],AXIS["X",NORTH],AXIS["Y",EAST]] j Ma/epsg Xian 1980 / Gauss-Kruger zone 15+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=15500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / Gauss-Kruger zone 15",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",1],PARAMETER["false_easting",15500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2329"],AXIS["X",NORTH],AXIS["Y",EAST]] j Ma/epsg Xian 1980 / Gauss-Kruger zone 16+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=16500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / Gauss-Kruger zone 16",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",1],PARAMETER["false_easting",16500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2330"],AXIS["X",NORTH],AXIS["Y",EAST]] j Ma/epsg Xian 1980 / Gauss-Kruger zone 17+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=17500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / Gauss-Kruger zone 17",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",1],PARAMETER["false_easting",17500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2331"],AXIS["X",NORTH],AXIS["Y",EAST]] l Mc1epsg Xian 1980 / Gauss-Kruger zone 18+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=18500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / Gauss-Kruger zone 18",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",1],PARAMETER["false_easting",18500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2332"],AXIS["X",NORTH],AXIS["Y",EAST]] l Mc1epsg Xian 1980 / Gauss-Kruger zone 19+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=19500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / Gauss-Kruger zone 19",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",1],PARAMETER["false_easting",19500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2333"],AXIS["X",NORTH],AXIS["Y",EAST]] l Mc1epsg Xian 1980 / Gauss-Kruger zone 20+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=20500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / Gauss-Kruger zone 20",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",1],PARAMETER["false_easting",20500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2334"],AXIS["X",NORTH],AXIS["Y",EAST]] l Mc1epsg Xian 1980 / Gauss-Kruger zone 21+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=21500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / Gauss-Kruger zone 21",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",1],PARAMETER["false_easting",21500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2335"],AXIS["X",NORTH],AXIS["Y",EAST]] l Mc1epsg Xian 1980 / Gauss-Kruger zone 22+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=22500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / Gauss-Kruger zone 22",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",1],PARAMETER["false_easting",22500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2336"],AXIS["X",NORTH],AXIS["Y",EAST]] l! Mc1epsg !Xian 1980 / Gauss-Kruger zone 23+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=23500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / Gauss-Kruger zone 23",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",1],PARAMETER["false_easting",23500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2337"],AXIS["X",NORTH],AXIS["Y",EAST]] d" K])epsg "Xian 1980 / Gauss-Kruger CM 75E+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / Gauss-Kruger CM 75E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2338"],AXIS["X",NORTH],AXIS["Y",EAST]] d# K])epsg #Xian 1980 / Gauss-Kruger CM 81E+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / Gauss-Kruger CM 81E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2339"],AXIS["X",NORTH],AXIS["Y",EAST]] d$ K])epsg $Xian 1980 / Gauss-Kruger CM 87E+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / Gauss-Kruger CM 87E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2340"],AXIS["X",NORTH],AXIS["Y",EAST]] d% K])epsg %Xian 1980 / Gauss-Kruger CM 93E+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / Gauss-Kruger CM 93E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2341"],AXIS["X",NORTH],AXIS["Y",EAST]] d& K])epsg &Xian 1980 / Gauss-Kruger CM 99E+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / Gauss-Kruger CM 99E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2342"],AXIS["X",NORTH],AXIS["Y",EAST]] h' M_-epsg 'Xian 1980 / Gauss-Kruger CM 105E+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / Gauss-Kruger CM 105E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2343"],AXIS["X",NORTH],AXIS["Y",EAST]] h( M_-epsg (Xian 1980 / Gauss-Kruger CM 111E+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / Gauss-Kruger CM 111E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2344"],AXIS["X",NORTH],AXIS["Y",EAST]] h) M_-epsg )Xian 1980 / Gauss-Kruger CM 117E+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / Gauss-Kruger CM 117E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2345"],AXIS["X",NORTH],AXIS["Y",EAST]] h* M_-epsg *Xian 1980 / Gauss-Kruger CM 123E+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / Gauss-Kruger CM 123E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2346"],AXIS["X",NORTH],AXIS["Y",EAST]] h+ M_-epsg +Xian 1980 / Gauss-Kruger CM 129E+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / Gauss-Kruger CM 129E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2347"],AXIS["X",NORTH],AXIS["Y",EAST]] h, M_-epsg ,Xian 1980 / Gauss-Kruger CM 135E+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / Gauss-Kruger CM 135E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2348"],AXIS["X",NORTH],AXIS["Y",EAST]] |- _aAepsg -Xian 1980 / 3-degree Gauss-Kruger zone 25+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=25500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 25",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",1],PARAMETER["false_easting",25500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2349"],AXIS["X",NORTH],AXIS["Y",EAST]] |. _aAepsg .Xian 1980 / 3-degree Gauss-Kruger zone 26+proj=tmerc +lat_0=0 +lon_0=78 +k=1 +x_0=26500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 26",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",78],PARAMETER["scale_factor",1],PARAMETER["false_easting",26500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2350"],AXIS["X",NORTH],AXIS["Y",EAST]] |/ _aAepsg /Xian 1980 / 3-degree Gauss-Kruger zone 27+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=27500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 27",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",1],PARAMETER["false_easting",27500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2351"],AXIS["X",NORTH],AXIS["Y",EAST]] |0 _aAepsg 0Xian 1980 / 3-degree Gauss-Kruger zone 28+proj=tmerc +lat_0=0 +lon_0=84 +k=1 +x_0=28500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 28",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",84],PARAMETER["scale_factor",1],PARAMETER["false_easting",28500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2352"],AXIS["X",NORTH],AXIS["Y",EAST]] |1 _aAepsg 1Xian 1980 / 3-degree Gauss-Kruger zone 29+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=29500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 29",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",1],PARAMETER["false_easting",29500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2353"],AXIS["X",NORTH],AXIS["Y",EAST]] |2 _aAepsg 2Xian 1980 / 3-degree Gauss-Kruger zone 30+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=30500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 30",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",90],PARAMETER["scale_factor",1],PARAMETER["false_easting",30500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2354"],AXIS["X",NORTH],AXIS["Y",EAST]] ;(5BO\iv,9FS`mz #0=JWdq~  epsg   epsg   epsg   epsg   epsg  !epsg !  "epsg "  #epsg #  $epsg $  %epsg %  &epsg &  'epsg '  (epsg (  )epsg )  *epsg *  +epsg +  ,epsg ,  -epsg -  .epsg .  /epsg /  0epsg 0  1epsg 1  2epsg 2  3epsg 3  4epsg 4  5epsg 5  6epsg 6  7epsg 7  8epsg 8  9epsg 9  :epsg :  ;epsg ;  epsg >  ?epsg ?  @epsg @  Aepsg A  Bepsg B  Cepsg C  Depsg D  Eepsg E  Fepsg F  Gepsg G  Hepsg H  Iepsg I  Jepsg J  Kepsg K  Lepsg L  Mepsg M  Nepsg N  Oepsg O  Pepsg P  Qepsg Q  Repsg R  Sepsg S  Tepsg T  Uepsg U  Vepsg V |3 _aAepsg 3Xian 1980 / 3-degree Gauss-Kruger zone 31+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=31500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 31",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",1],PARAMETER["false_easting",31500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2355"],AXIS["X",NORTH],AXIS["Y",EAST]] |4 _aAepsg 4Xian 1980 / 3-degree Gauss-Kruger zone 32+proj=tmerc +lat_0=0 +lon_0=96 +k=1 +x_0=32500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 32",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",96],PARAMETER["scale_factor",1],PARAMETER["false_easting",32500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2356"],AXIS["X",NORTH],AXIS["Y",EAST]] |5 _aAepsg 5Xian 1980 / 3-degree Gauss-Kruger zone 33+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=33500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 33",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",1],PARAMETER["false_easting",33500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2357"],AXIS["X",NORTH],AXIS["Y",EAST]] ~6 _cCepsg 6Xian 1980 / 3-degree Gauss-Kruger zone 34+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=34500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 34",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",102],PARAMETER["scale_factor",1],PARAMETER["false_easting",34500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2358"],AXIS["X",NORTH],AXIS["Y",EAST]] ~7 _cCepsg 7Xian 1980 / 3-degree Gauss-Kruger zone 35+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=35500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 35",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",1],PARAMETER["false_easting",35500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2359"],AXIS["X",NORTH],AXIS["Y",EAST]] ~8 _cCepsg 8Xian 1980 / 3-degree Gauss-Kruger zone 36+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=36500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 36",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",108],PARAMETER["scale_factor",1],PARAMETER["false_easting",36500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2360"],AXIS["X",NORTH],AXIS["Y",EAST]] ~9 _cCepsg 9Xian 1980 / 3-degree Gauss-Kruger zone 37+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=37500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 37",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",1],PARAMETER["false_easting",37500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2361"],AXIS["X",NORTH],AXIS["Y",EAST]] ~: _cCepsg :Xian 1980 / 3-degree Gauss-Kruger zone 38+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=38500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 38",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",114],PARAMETER["scale_factor",1],PARAMETER["false_easting",38500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2362"],AXIS["X",NORTH],AXIS["Y",EAST]] ~; _cCepsg ;Xian 1980 / 3-degree Gauss-Kruger zone 39+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=39500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 39",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",1],PARAMETER["false_easting",39500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2363"],AXIS["X",NORTH],AXIS["Y",EAST]] ~< _cCepsg _cCepsg >Xian 1980 / 3-degree Gauss-Kruger zone 42+proj=tmerc +lat_0=0 +lon_0=126 +k=1 +x_0=42500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 42",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",126],PARAMETER["scale_factor",1],PARAMETER["false_easting",42500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2366"],AXIS["X",NORTH],AXIS["Y",EAST]] ~? _cCepsg ?Xian 1980 / 3-degree Gauss-Kruger zone 43+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=43500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 43",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",1],PARAMETER["false_easting",43500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2367"],AXIS["X",NORTH],AXIS["Y",EAST]] ~@ _cCepsg @Xian 1980 / 3-degree Gauss-Kruger zone 44+proj=tmerc +lat_0=0 +lon_0=132 +k=1 +x_0=44500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 44",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",132],PARAMETER["scale_factor",1],PARAMETER["false_easting",44500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2368"],AXIS["X",NORTH],AXIS["Y",EAST]] ~A _cCepsg AXian 1980 / 3-degree Gauss-Kruger zone 45+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=45500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 45",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",1],PARAMETER["false_easting",45500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2369"],AXIS["X",NORTH],AXIS["Y",EAST]] vB ]];epsg BXian 1980 / 3-degree Gauss-Kruger CM 75E+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 75E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2370"],AXIS["X",NORTH],AXIS["Y",EAST]] vC ]];epsg CXian 1980 / 3-degree Gauss-Kruger CM 78E+proj=tmerc +lat_0=0 +lon_0=78 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 78E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",78],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2371"],AXIS["X",NORTH],AXIS["Y",EAST]] vD ]];epsg DXian 1980 / 3-degree Gauss-Kruger CM 81E+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 81E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2372"],AXIS["X",NORTH],AXIS["Y",EAST]] vE ]];epsg EXian 1980 / 3-degree Gauss-Kruger CM 84E+proj=tmerc +lat_0=0 +lon_0=84 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 84E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",84],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2373"],AXIS["X",NORTH],AXIS["Y",EAST]] vF ]];epsg FXian 1980 / 3-degree Gauss-Kruger CM 87E+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 87E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2374"],AXIS["X",NORTH],AXIS["Y",EAST]] vG ]];epsg GXian 1980 / 3-degree Gauss-Kruger CM 90E+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 90E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",90],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2375"],AXIS["X",NORTH],AXIS["Y",EAST]] vH ]];epsg HXian 1980 / 3-degree Gauss-Kruger CM 93E+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 93E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2376"],AXIS["X",NORTH],AXIS["Y",EAST]] vI ]];epsg IXian 1980 / 3-degree Gauss-Kruger CM 96E+proj=tmerc +lat_0=0 +lon_0=96 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 96E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",96],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2377"],AXIS["X",NORTH],AXIS["Y",EAST]] vJ ]];epsg JXian 1980 / 3-degree Gauss-Kruger CM 99E+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 99E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2378"],AXIS["X",NORTH],AXIS["Y",EAST]] zK __?epsg KXian 1980 / 3-degree Gauss-Kruger CM 102E+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 102E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",102],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2379"],AXIS["X",NORTH],AXIS["Y",EAST]] zL __?epsg LXian 1980 / 3-degree Gauss-Kruger CM 105E+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 105E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2380"],AXIS["X",NORTH],AXIS["Y",EAST]] zM __?epsg MXian 1980 / 3-degree Gauss-Kruger CM 108E+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 108E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",108],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2381"],AXIS["X",NORTH],AXIS["Y",EAST]] zN __?epsg NXian 1980 / 3-degree Gauss-Kruger CM 111E+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 111E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2382"],AXIS["X",NORTH],AXIS["Y",EAST]] zO __?epsg OXian 1980 / 3-degree Gauss-Kruger CM 114E+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 114E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",114],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2383"],AXIS["X",NORTH],AXIS["Y",EAST]] zP __?epsg PXian 1980 / 3-degree Gauss-Kruger CM 117E+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 117E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2384"],AXIS["X",NORTH],AXIS["Y",EAST]] zQ __?epsg QXian 1980 / 3-degree Gauss-Kruger CM 120E+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 120E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",120],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2385"],AXIS["X",NORTH],AXIS["Y",EAST]] zR __?epsg RXian 1980 / 3-degree Gauss-Kruger CM 123E+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 123E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2386"],AXIS["X",NORTH],AXIS["Y",EAST]] zS __?epsg SXian 1980 / 3-degree Gauss-Kruger CM 126E+proj=tmerc +lat_0=0 +lon_0=126 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 126E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",126],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2387"],AXIS["X",NORTH],AXIS["Y",EAST]] zT __?epsg TXian 1980 / 3-degree Gauss-Kruger CM 129E+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 129E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2388"],AXIS["X",NORTH],AXIS["Y",EAST]] zU __?epsg UXian 1980 / 3-degree Gauss-Kruger CM 132E+proj=tmerc +lat_0=0 +lon_0=132 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 132E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",132],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2389"],AXIS["X",NORTH],AXIS["Y",EAST]] zV __?epsg VXian 1980 / 3-degree Gauss-Kruger CM 135E+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 135E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2390"],AXIS["X",NORTH],AXIS["Y",EAST]] &&VW 57Iepsg WKKJ / Finland zone 1+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=1500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["KKJ / Finland zone 1",GEOGCS["KKJ",DATUM["Kartastokoordinaattijarjestelma_1966",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6123"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4123"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",1],PARAMETER["false_easting",1500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2391"],AXIS["X",NORTH],AXIS["Y",EAST]] &&VX 57Iepsg XKKJ / Finland zone 2+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=2500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["KKJ / Finland zone 2",GEOGCS["KKJ",DATUM["Kartastokoordinaattijarjestelma_1966",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6123"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4123"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",24],PARAMETER["scale_factor",1],PARAMETER["false_easting",2500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2392"],AXIS["X",NORTH],AXIS["Y",EAST]] |Y [7oepsg YKKJ / Finland Uniform Coordinate System+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=3500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["KKJ / Finland Uniform Coordinate System",GEOGCS["KKJ",DATUM["Kartastokoordinaattijarjestelma_1966",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6123"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4123"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",1],PARAMETER["false_easting",3500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2393"],AXIS["X",NORTH],AXIS["Y",EAST]] &&VZ 57Iepsg ZKKJ / Finland zone 4+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=4500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["KKJ / Finland zone 4",GEOGCS["KKJ",DATUM["Kartastokoordinaattijarjestelma_1966",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6123"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4123"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",30],PARAMETER["scale_factor",1],PARAMETER["false_easting",4500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2394"],AXIS["X",NORTH],AXIS["Y",EAST]] [ Osyepsg [South Yemen / Gauss-Kruger zone 8+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=8500000 +y_0=0 +ellps=krass +towgs84=-76,-138,67,0,0,0,0 +units=m +no_defsPROJCS["South Yemen / Gauss-Kruger zone 8",GEOGCS["South Yemen",DATUM["South_Yemen",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[-76,-138,67,0,0,0,0],AUTHORITY["EPSG","6164"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4164"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",1],PARAMETER["false_easting",8500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2395"],AXIS["X",NORTH],AXIS["Y",EAST]] \ Osyepsg \South Yemen / Gauss-Kruger zone 9+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=9500000 +y_0=0 +ellps=krass +towgs84=-76,-138,67,0,0,0,0 +units=m +no_defsPROJCS["South Yemen / Gauss-Kruger zone 9",GEOGCS["South Yemen",DATUM["South_Yemen",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[-76,-138,67,0,0,0,0],AUTHORITY["EPSG","6164"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4164"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",1],PARAMETER["false_easting",9500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2396"],AXIS["X",NORTH],AXIS["Y",EAST]] ] k7kepsg ]Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 3+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 3",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",1],PARAMETER["false_easting",3500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2397"],AXIS["X",NORTH],AXIS["Y",EAST]] ^ k9mepsg ^Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 4+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 4",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",12],PARAMETER["scale_factor",1],PARAMETER["false_easting",4500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2398"],AXIS["X",NORTH],AXIS["Y",EAST]] _ k9mepsg _Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 5+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 5",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",1],PARAMETER["false_easting",5500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2399"],AXIS["X",NORTH],AXIS["Y",EAST]] ` CYoepsg `RT90 2.5 gon W (deprecated)+proj=tmerc +lat_0=0 +lon_0=15.80827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["RT90 2.5 gon W (deprecated)",GEOGCS["RT90",DATUM["Rikets_koordinatsystem_1990",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6124"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4124"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15.80827777777778],PARAMETER["scale_factor",1],PARAMETER["false_easting",1500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2400"],AXIS["X",NORTH],AXIS["Y",EAST]] ya e;[epsg aBeijing 1954 / 3-degree Gauss-Kruger zone 25+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=25500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 25",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",1],PARAMETER["false_easting",25500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2401"],AXIS["X",NORTH],AXIS["Y",EAST]] yb e;[epsg bBeijing 1954 / 3-degree Gauss-Kruger zone 26+proj=tmerc +lat_0=0 +lon_0=78 +k=1 +x_0=26500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 26",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",78],PARAMETER["scale_factor",1],PARAMETER["false_easting",26500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2402"],AXIS["X",NORTH],AXIS["Y",EAST]] yc e;[epsg cBeijing 1954 / 3-degree Gauss-Kruger zone 27+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=27500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 27",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",1],PARAMETER["false_easting",27500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2403"],AXIS["X",NORTH],AXIS["Y",EAST]] yd e;[epsg dBeijing 1954 / 3-degree Gauss-Kruger zone 28+proj=tmerc +lat_0=0 +lon_0=84 +k=1 +x_0=28500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 28",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",84],PARAMETER["scale_factor",1],PARAMETER["false_easting",28500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2404"],AXIS["X",NORTH],AXIS["Y",EAST]] ye e;[epsg eBeijing 1954 / 3-degree Gauss-Kruger zone 29+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=29500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 29",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",1],PARAMETER["false_easting",29500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2405"],AXIS["X",NORTH],AXIS["Y",EAST]] yf e;[epsg fBeijing 1954 / 3-degree Gauss-Kruger zone 30+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=30500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 30",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",90],PARAMETER["scale_factor",1],PARAMETER["false_easting",30500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2406"],AXIS["X",NORTH],AXIS["Y",EAST]] yg e;[epsg gBeijing 1954 / 3-degree Gauss-Kruger zone 31+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=31500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 31",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",1],PARAMETER["false_easting",31500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2407"],AXIS["X",NORTH],AXIS["Y",EAST]] yh e;[epsg hBeijing 1954 / 3-degree Gauss-Kruger zone 32+proj=tmerc +lat_0=0 +lon_0=96 +k=1 +x_0=32500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 32",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",96],PARAMETER["scale_factor",1],PARAMETER["false_easting",32500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2408"],AXIS["X",NORTH],AXIS["Y",EAST]] yi e;[epsg iBeijing 1954 / 3-degree Gauss-Kruger zone 33+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=33500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 33",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",1],PARAMETER["false_easting",33500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2409"],AXIS["X",NORTH],AXIS["Y",EAST]] {j e=]epsg jBeijing 1954 / 3-degree Gauss-Kruger zone 34+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=34500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 34",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",102],PARAMETER["scale_factor",1],PARAMETER["false_easting",34500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2410"],AXIS["X",NORTH],AXIS["Y",EAST]] {k e=]epsg kBeijing 1954 / 3-degree Gauss-Kruger zone 35+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=35500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 35",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",1],PARAMETER["false_easting",35500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2411"],AXIS["X",NORTH],AXIS["Y",EAST]] {l e=]epsg lBeijing 1954 / 3-degree Gauss-Kruger zone 36+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=36500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 36",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",108],PARAMETER["scale_factor",1],PARAMETER["false_easting",36500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2412"],AXIS["X",NORTH],AXIS["Y",EAST]] {m e=]epsg mBeijing 1954 / 3-degree Gauss-Kruger zone 37+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=37500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 37",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",1],PARAMETER["false_easting",37500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2413"],AXIS["X",NORTH],AXIS["Y",EAST]] {n e=]epsg nBeijing 1954 / 3-degree Gauss-Kruger zone 38+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=38500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 38",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",114],PARAMETER["scale_factor",1],PARAMETER["false_easting",38500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2414"],AXIS["X",NORTH],AXIS["Y",EAST]]offlrx~ &,28>DJPV\bhntz "(.4:@FLRX^djpv|rAsBtCuDvEwFxGyHzI{J|K}L~MNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     “ÓēœƓǓȓɓʓ˓͓̓ΓϓГѓғӓ ԓ!Փ"֓#ד$ؓ%ٓ&ړ'ۓ(ܓ)ݓ*ߓ+,-./ ;(5BO\iv,9FS`mz #0=JWdq~  Xepsg X  Yepsg Y  Zepsg Z  [epsg [  \epsg \  ]epsg ]  ^epsg ^  _epsg _  `epsg `  aepsg a  bepsg b  cepsg c  depsg d  eepsg e  fepsg f  gepsg g  hepsg h  iepsg i  jepsg j  kepsg k  lepsg l  mepsg m  nepsg n  oepsg o  pepsg p  qepsg q  repsg r  sepsg s  tepsg t  uepsg u  vepsg v  wepsg w  xepsg x  yepsg y  zepsg z  {epsg {  |epsg |  }epsg }  ~epsg ~  epsg   epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg {o e=]epsg oBeijing 1954 / 3-degree Gauss-Kruger zone 39+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=39500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 39",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",1],PARAMETER["false_easting",39500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2415"],AXIS["X",NORTH],AXIS["Y",EAST]] {p e=]epsg pBeijing 1954 / 3-degree Gauss-Kruger zone 40+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=40500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 40",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",120],PARAMETER["scale_factor",1],PARAMETER["false_easting",40500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2416"],AXIS["X",NORTH],AXIS["Y",EAST]] {q e=]epsg qBeijing 1954 / 3-degree Gauss-Kruger zone 41+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=41500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 41",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",1],PARAMETER["false_easting",41500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2417"],AXIS["X",NORTH],AXIS["Y",EAST]] {r e=]epsg rBeijing 1954 / 3-degree Gauss-Kruger zone 42+proj=tmerc +lat_0=0 +lon_0=126 +k=1 +x_0=42500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 42",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",126],PARAMETER["scale_factor",1],PARAMETER["false_easting",42500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2418"],AXIS["X",NORTH],AXIS["Y",EAST]] {s e=]epsg sBeijing 1954 / 3-degree Gauss-Kruger zone 43+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=43500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 43",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",1],PARAMETER["false_easting",43500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2419"],AXIS["X",NORTH],AXIS["Y",EAST]] {t e=]epsg tBeijing 1954 / 3-degree Gauss-Kruger zone 44+proj=tmerc +lat_0=0 +lon_0=132 +k=1 +x_0=44500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 44",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",132],PARAMETER["scale_factor",1],PARAMETER["false_easting",44500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2420"],AXIS["X",NORTH],AXIS["Y",EAST]] {u e=]epsg uBeijing 1954 / 3-degree Gauss-Kruger zone 45+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=45500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 45",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",1],PARAMETER["false_easting",45500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2421"],AXIS["X",NORTH],AXIS["Y",EAST]]   sv c7Uepsg vBeijing 1954 / 3-degree Gauss-Kruger CM 75E+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 75E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2422"],AXIS["X",NORTH],AXIS["Y",EAST]]   sw c7Uepsg wBeijing 1954 / 3-degree Gauss-Kruger CM 78E+proj=tmerc +lat_0=0 +lon_0=78 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 78E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",78],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2423"],AXIS["X",NORTH],AXIS["Y",EAST]]   sx c7Uepsg xBeijing 1954 / 3-degree Gauss-Kruger CM 81E+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 81E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2424"],AXIS["X",NORTH],AXIS["Y",EAST]]   sy c7Uepsg yBeijing 1954 / 3-degree Gauss-Kruger CM 84E+proj=tmerc +lat_0=0 +lon_0=84 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 84E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",84],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2425"],AXIS["X",NORTH],AXIS["Y",EAST]]   sz c7Uepsg zBeijing 1954 / 3-degree Gauss-Kruger CM 87E+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 87E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2426"],AXIS["X",NORTH],AXIS["Y",EAST]]   s{ c7Uepsg {Beijing 1954 / 3-degree Gauss-Kruger CM 90E+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 90E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",90],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2427"],AXIS["X",NORTH],AXIS["Y",EAST]]   s| c7Uepsg |Beijing 1954 / 3-degree Gauss-Kruger CM 93E+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 93E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2428"],AXIS["X",NORTH],AXIS["Y",EAST]]   s} c7Uepsg }Beijing 1954 / 3-degree Gauss-Kruger CM 96E+proj=tmerc +lat_0=0 +lon_0=96 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 96E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",96],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2429"],AXIS["X",NORTH],AXIS["Y",EAST]]   s~ c7Uepsg ~Beijing 1954 / 3-degree Gauss-Kruger CM 99E+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 99E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2430"],AXIS["X",NORTH],AXIS["Y",EAST]] w e9Yepsg Beijing 1954 / 3-degree Gauss-Kruger CM 102E+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 102E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",102],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2431"],AXIS["X",NORTH],AXIS["Y",EAST]] w e9Yepsg Beijing 1954 / 3-degree Gauss-Kruger CM 105E+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 105E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2432"],AXIS["X",NORTH],AXIS["Y",EAST]] w e9Yepsg Beijing 1954 / 3-degree Gauss-Kruger CM 108E+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 108E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",108],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2433"],AXIS["X",NORTH],AXIS["Y",EAST]] w e9Yepsg Beijing 1954 / 3-degree Gauss-Kruger CM 111E+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 111E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2434"],AXIS["X",NORTH],AXIS["Y",EAST]] w e9Yepsg Beijing 1954 / 3-degree Gauss-Kruger CM 114E+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 114E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",114],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2435"],AXIS["X",NORTH],AXIS["Y",EAST]] w e9Yepsg Beijing 1954 / 3-degree Gauss-Kruger CM 117E+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 117E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2436"],AXIS["X",NORTH],AXIS["Y",EAST]] w e9Yepsg Beijing 1954 / 3-degree Gauss-Kruger CM 120E+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 120E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",120],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2437"],AXIS["X",NORTH],AXIS["Y",EAST]] w e9Yepsg Beijing 1954 / 3-degree Gauss-Kruger CM 123E+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 123E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2438"],AXIS["X",NORTH],AXIS["Y",EAST]] w e9Yepsg Beijing 1954 / 3-degree Gauss-Kruger CM 126E+proj=tmerc +lat_0=0 +lon_0=126 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 126E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",126],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2439"],AXIS["X",NORTH],AXIS["Y",EAST]] w e9Yepsg Beijing 1954 / 3-degree Gauss-Kruger CM 129E+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 129E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2440"],AXIS["X",NORTH],AXIS["Y",EAST]] w e9Yepsg Beijing 1954 / 3-degree Gauss-Kruger CM 132E+proj=tmerc +lat_0=0 +lon_0=132 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 132E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",132],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2441"],AXIS["X",NORTH],AXIS["Y",EAST]] w e9Yepsg Beijing 1954 / 3-degree Gauss-Kruger CM 135E+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 135E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2442"],AXIS["X",NORTH],AXIS["Y",EAST]] + Ymepsg JGD2000 / Japan Plane Rectangular CS I+proj=tmerc +lat_0=33 +lon_0=129.5 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["JGD2000 / Japan Plane Rectangular CS I",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",33],PARAMETER["central_meridian",129.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","2443"],AXIS["X",NORTH],AXIS["Y",EAST]] ) [iepsg JGD2000 / Japan Plane Rectangular CS II+proj=tmerc +lat_0=33 +lon_0=131 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["JGD2000 / Japan Plane Rectangular CS II",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",33],PARAMETER["central_meridian",131],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","2444"],AXIS["X",NORTH],AXIS["Y",EAST]] G ]5epsg JGD2000 / Japan Plane Rectangular CS III+proj=tmerc +lat_0=36 +lon_0=132.1666666666667 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["JGD2000 / Japan Plane Rectangular CS III",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36],PARAMETER["central_meridian",132.1666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","2445"],AXIS["X",NORTH],AXIS["Y",EAST]] - [mepsg JGD2000 / Japan Plane Rectangular CS IV+proj=tmerc +lat_0=33 +lon_0=133.5 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["JGD2000 / Japan Plane Rectangular CS IV",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",33],PARAMETER["central_meridian",133.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","2446"],AXIS["X",NORTH],AXIS["Y",EAST]] C Y1epsg JGD2000 / Japan Plane Rectangular CS V+proj=tmerc +lat_0=36 +lon_0=134.3333333333333 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["JGD2000 / Japan Plane Rectangular CS V",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36],PARAMETER["central_meridian",134.3333333333333],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","2447"],AXIS["X",NORTH],AXIS["Y",EAST]] ) [iepsg JGD2000 / Japan Plane Rectangular CS VI+proj=tmerc +lat_0=36 +lon_0=136 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["JGD2000 / Japan Plane Rectangular CS VI",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36],PARAMETER["central_meridian",136],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","2448"],AXIS["X",NORTH],AXIS["Y",EAST]] G ]5epsg JGD2000 / Japan Plane Rectangular CS VII+proj=tmerc +lat_0=36 +lon_0=137.1666666666667 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["JGD2000 / Japan Plane Rectangular CS VII",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36],PARAMETER["central_meridian",137.1666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","2449"],AXIS["X",NORTH],AXIS["Y",EAST]] 1 _mepsg JGD2000 / Japan Plane Rectangular CS VIII+proj=tmerc +lat_0=36 +lon_0=138.5 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["JGD2000 / Japan Plane Rectangular CS VIII",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36],PARAMETER["central_meridian",138.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","2450"],AXIS["X",NORTH],AXIS["Y",EAST]] E [3epsg JGD2000 / Japan Plane Rectangular CS IX+proj=tmerc +lat_0=36 +lon_0=139.8333333333333 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["JGD2000 / Japan Plane Rectangular CS IX",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36],PARAMETER["central_meridian",139.8333333333333],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","2451"],AXIS["X",NORTH],AXIS["Y",EAST]] C Y1epsg JGD2000 / Japan Plane Rectangular CS X+proj=tmerc +lat_0=40 +lon_0=140.8333333333333 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["JGD2000 / Japan Plane Rectangular CS X",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40],PARAMETER["central_meridian",140.8333333333333],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","2452"],AXIS["X",NORTH],AXIS["Y",EAST]] / [oepsg JGD2000 / Japan Plane Rectangular CS XI+proj=tmerc +lat_0=44 +lon_0=140.25 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["JGD2000 / Japan Plane Rectangular CS XI",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",44],PARAMETER["central_meridian",140.25],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","2453"],AXIS["X",NORTH],AXIS["Y",EAST]] 1 ]oepsg JGD2000 / Japan Plane Rectangular CS XII+proj=tmerc +lat_0=44 +lon_0=142.25 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["JGD2000 / Japan Plane Rectangular CS XII",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",44],PARAMETER["central_meridian",142.25],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","2454"],AXIS["X",NORTH],AXIS["Y",EAST]] 3 _o!epsg JGD2000 / Japan Plane Rectangular CS XIII+proj=tmerc +lat_0=44 +lon_0=144.25 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["JGD2000 / Japan Plane Rectangular CS XIII",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",44],PARAMETER["central_meridian",144.25],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","2455"],AXIS["X",NORTH],AXIS["Y",EAST]] + ]iepsg JGD2000 / Japan Plane Rectangular CS XIV+proj=tmerc +lat_0=26 +lon_0=142 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["JGD2000 / Japan Plane Rectangular CS XIV",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",26],PARAMETER["central_meridian",142],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","2456"],AXIS["X",NORTH],AXIS["Y",EAST]] - [mepsg JGD2000 / Japan Plane Rectangular CS XV+proj=tmerc +lat_0=26 +lon_0=127.5 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["JGD2000 / Japan Plane Rectangular CS XV",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",26],PARAMETER["central_meridian",127.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","2457"],AXIS["X",NORTH],AXIS["Y",EAST]] + ]iepsg JGD2000 / Japan Plane Rectangular CS XVI+proj=tmerc +lat_0=26 +lon_0=124 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["JGD2000 / Japan Plane Rectangular CS XVI",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",26],PARAMETER["central_meridian",124],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","2458"],AXIS["X",NORTH],AXIS["Y",EAST]] - _iepsg JGD2000 / Japan Plane Rectangular CS XVII+proj=tmerc +lat_0=26 +lon_0=131 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["JGD2000 / Japan Plane Rectangular CS XVII",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",26],PARAMETER["central_meridian",131],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","2459"],AXIS["X",NORTH],AXIS["Y",EAST]] / aiepsg JGD2000 / Japan Plane Rectangular CS XVIII+proj=tmerc +lat_0=20 +lon_0=136 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["JGD2000 / Japan Plane Rectangular CS XVIII",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",20],PARAMETER["central_meridian",136],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","2460"],AXIS["X",NORTH],AXIS["Y",EAST]] + ]iepsg JGD2000 / Japan Plane Rectangular CS XIX+proj=tmerc +lat_0=26 +lon_0=154 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["JGD2000 / Japan Plane Rectangular CS XIX",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",26],PARAMETER["central_meridian",154],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","2461"],AXIS["X",NORTH],AXIS["Y",EAST]] g S9Kepsg Albanian 1987 / Gauss-Kruger zone 4+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=4500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Albanian 1987 / Gauss-Kruger zone 4",GEOGCS["Albanian 1987",DATUM["Albanian_1987",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6191"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4191"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",1],PARAMETER["false_easting",4500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2462"],AXIS["X",NORTH],AXIS["Y",EAST]] ? Q!epsg Pulkovo 1995 / Gauss-Kruger CM 21E+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 21E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2463"],AXIS["X",NORTH],AXIS["Y",EAST]] ? Q!epsg Pulkovo 1995 / Gauss-Kruger CM 27E+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 27E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2464"],AXIS["X",NORTH],AXIS["Y",EAST]] ?! Q!epsg Pulkovo 1995 / Gauss-Kruger CM 33E+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 33E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2465"],AXIS["X",NORTH],AXIS["Y",EAST]] ?" Q!epsg Pulkovo 1995 / Gauss-Kruger CM 39E+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 39E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2466"],AXIS["X",NORTH],AXIS["Y",EAST]] ?# Q!epsg Pulkovo 1995 / Gauss-Kruger CM 45E+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 45E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2467"],AXIS["X",NORTH],AXIS["Y",EAST]] ?$ Q!epsg Pulkovo 1995 / Gauss-Kruger CM 51E+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 51E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2468"],AXIS["X",NORTH],AXIS["Y",EAST]] ?% Q!epsg Pulkovo 1995 / Gauss-Kruger CM 57E+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 57E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",57],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2469"],AXIS["X",NORTH],AXIS["Y",EAST]] ?& Q!epsg Pulkovo 1995 / Gauss-Kruger CM 63E+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 63E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",63],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2470"],AXIS["X",NORTH],AXIS["Y",EAST]] ?' Q!epsg Pulkovo 1995 / Gauss-Kruger CM 69E+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 69E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",69],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2471"],AXIS["X",NORTH],AXIS["Y",EAST]] ?( Q!epsg Pulkovo 1995 / Gauss-Kruger CM 75E+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 75E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2472"],AXIS["X",NORTH],AXIS["Y",EAST]] ?) Q!epsg Pulkovo 1995 / Gauss-Kruger CM 81E+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 81E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2473"],AXIS["X",NORTH],AXIS["Y",EAST]] ?* Q!epsg Pulkovo 1995 / Gauss-Kruger CM 87E+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 87E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2474"],AXIS["X",NORTH],AXIS["Y",EAST]] ;(5BO\iv,9FS`mz #0=JWdq~  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg ?+ Q!epsg Pulkovo 1995 / Gauss-Kruger CM 93E+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 93E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2475"],AXIS["X",NORTH],AXIS["Y",EAST]] ?, Q!epsg Pulkovo 1995 / Gauss-Kruger CM 99E+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 99E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2476"],AXIS["X",NORTH],AXIS["Y",EAST]] C- S%epsg Pulkovo 1995 / Gauss-Kruger CM 105E+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 105E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2477"],AXIS["X",NORTH],AXIS["Y",EAST]] C. S%epsg Pulkovo 1995 / Gauss-Kruger CM 111E+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 111E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2478"],AXIS["X",NORTH],AXIS["Y",EAST]] C/ S%epsg Pulkovo 1995 / Gauss-Kruger CM 117E+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 117E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2479"],AXIS["X",NORTH],AXIS["Y",EAST]] C0 S%epsg Pulkovo 1995 / Gauss-Kruger CM 123E+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 123E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2480"],AXIS["X",NORTH],AXIS["Y",EAST]] C1 S%epsg Pulkovo 1995 / Gauss-Kruger CM 129E+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 129E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2481"],AXIS["X",NORTH],AXIS["Y",EAST]] C2 S%epsg Pulkovo 1995 / Gauss-Kruger CM 135E+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 135E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2482"],AXIS["X",NORTH],AXIS["Y",EAST]] C3 S%epsg Pulkovo 1995 / Gauss-Kruger CM 141E+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 141E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",141],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2483"],AXIS["X",NORTH],AXIS["Y",EAST]] C4 S%epsg Pulkovo 1995 / Gauss-Kruger CM 147E+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 147E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",147],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2484"],AXIS["X",NORTH],AXIS["Y",EAST]] C5 S%epsg Pulkovo 1995 / Gauss-Kruger CM 153E+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 153E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",153],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2485"],AXIS["X",NORTH],AXIS["Y",EAST]] C6 S%epsg Pulkovo 1995 / Gauss-Kruger CM 159E+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 159E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",159],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2486"],AXIS["X",NORTH],AXIS["Y",EAST]] C7 S%epsg Pulkovo 1995 / Gauss-Kruger CM 165E+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 165E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2487"],AXIS["X",NORTH],AXIS["Y",EAST]] C8 S%epsg Pulkovo 1995 / Gauss-Kruger CM 171E+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 171E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",171],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2488"],AXIS["X",NORTH],AXIS["Y",EAST]] C9 S%epsg Pulkovo 1995 / Gauss-Kruger CM 177E+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 177E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",177],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2489"],AXIS["X",NORTH],AXIS["Y",EAST]] E: S'epsg Pulkovo 1995 / Gauss-Kruger CM 177W+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 177W",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-177],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2490"],AXIS["X",NORTH],AXIS["Y",EAST]] E; S'epsg Pulkovo 1995 / Gauss-Kruger CM 171W+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 171W",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-171],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2491"],AXIS["X",NORTH],AXIS["Y",EAST]] %< i55epsg Pulkovo 1942 / Gauss-Kruger CM 9E (deprecated)+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 9E (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2492"],AXIS["X",NORTH],AXIS["Y",EAST]] )= k79epsg Pulkovo 1942 / Gauss-Kruger CM 15E (deprecated)+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 15E (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2493"],AXIS["X",NORTH],AXIS["Y",EAST]] > Q7epsg Pulkovo 1942 / Gauss-Kruger CM 21E+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 21E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2494"],AXIS["X",NORTH],AXIS["Y",EAST]] ? Q7epsg Pulkovo 1942 / Gauss-Kruger CM 27E+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 27E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2495"],AXIS["X",NORTH],AXIS["Y",EAST]] @ Q7epsg Pulkovo 1942 / Gauss-Kruger CM 33E+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 33E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2496"],AXIS["X",NORTH],AXIS["Y",EAST]] A Q7epsg Pulkovo 1942 / Gauss-Kruger CM 39E+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 39E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2497"],AXIS["X",NORTH],AXIS["Y",EAST]] B Q7epsg Pulkovo 1942 / Gauss-Kruger CM 45E+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 45E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2498"],AXIS["X",NORTH],AXIS["Y",EAST]] C Q7epsg Pulkovo 1942 / Gauss-Kruger CM 51E+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 51E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2499"],AXIS["X",NORTH],AXIS["Y",EAST]] D Q7epsg Pulkovo 1942 / Gauss-Kruger CM 57E+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 57E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",57],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2500"],AXIS["X",NORTH],AXIS["Y",EAST]] E Q7epsg Pulkovo 1942 / Gauss-Kruger CM 63E+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 63E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",63],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2501"],AXIS["X",NORTH],AXIS["Y",EAST]] F Q7epsg Pulkovo 1942 / Gauss-Kruger CM 69E+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 69E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",69],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2502"],AXIS["X",NORTH],AXIS["Y",EAST]] G Q7epsg Pulkovo 1942 / Gauss-Kruger CM 75E+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 75E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2503"],AXIS["X",NORTH],AXIS["Y",EAST]] H Q7epsg Pulkovo 1942 / Gauss-Kruger CM 81E+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 81E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2504"],AXIS["X",NORTH],AXIS["Y",EAST]] I Q7epsg Pulkovo 1942 / Gauss-Kruger CM 87E+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 87E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2505"],AXIS["X",NORTH],AXIS["Y",EAST]] J Q7epsg Pulkovo 1942 / Gauss-Kruger CM 93E+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 93E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2506"],AXIS["X",NORTH],AXIS["Y",EAST]] K Q7epsg Pulkovo 1942 / Gauss-Kruger CM 99E+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 99E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2507"],AXIS["X",NORTH],AXIS["Y",EAST]] L S9#epsg Pulkovo 1942 / Gauss-Kruger CM 105E+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 105E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2508"],AXIS["X",NORTH],AXIS["Y",EAST]] M S9#epsg Pulkovo 1942 / Gauss-Kruger CM 111E+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 111E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2509"],AXIS["X",NORTH],AXIS["Y",EAST]] N S9#epsg Pulkovo 1942 / Gauss-Kruger CM 117E+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 117E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2510"],AXIS["X",NORTH],AXIS["Y",EAST]] O S9#epsg Pulkovo 1942 / Gauss-Kruger CM 123E+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 123E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2511"],AXIS["X",NORTH],AXIS["Y",EAST]] P S9#epsg Pulkovo 1942 / Gauss-Kruger CM 129E+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 129E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2512"],AXIS["X",NORTH],AXIS["Y",EAST]] Q S9#epsg Pulkovo 1942 / Gauss-Kruger CM 135E+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 135E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2513"],AXIS["X",NORTH],AXIS["Y",EAST]] R S9#epsg Pulkovo 1942 / Gauss-Kruger CM 141E+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 141E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",141],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2514"],AXIS["X",NORTH],AXIS["Y",EAST]] S S9#epsg Pulkovo 1942 / Gauss-Kruger CM 147E+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 147E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",147],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2515"],AXIS["X",NORTH],AXIS["Y",EAST]] T S9#epsg Pulkovo 1942 / Gauss-Kruger CM 153E+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 153E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",153],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2516"],AXIS["X",NORTH],AXIS["Y",EAST]] U S9#epsg Pulkovo 1942 / Gauss-Kruger CM 159E+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 159E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",159],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2517"],AXIS["X",NORTH],AXIS["Y",EAST]] V S9#epsg Pulkovo 1942 / Gauss-Kruger CM 165E+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 165E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2518"],AXIS["X",NORTH],AXIS["Y",EAST]] W S9#epsg Pulkovo 1942 / Gauss-Kruger CM 171E+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 171E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",171],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2519"],AXIS["X",NORTH],AXIS["Y",EAST]] X S9#epsg Pulkovo 1942 / Gauss-Kruger CM 177E+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 177E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",177],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2520"],AXIS["X",NORTH],AXIS["Y",EAST]] Y S;%epsg Pulkovo 1942 / Gauss-Kruger CM 177W+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 177W",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-177],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2521"],AXIS["X",NORTH],AXIS["Y",EAST]] Z S;%epsg Pulkovo 1942 / Gauss-Kruger CM 171W+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 171W",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-171],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2522"],AXIS["X",NORTH],AXIS["Y",EAST]] #[ c93epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 7+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=7500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 7",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",1],PARAMETER["false_easting",7500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2523"],AXIS["X",NORTH],AXIS["Y",EAST]] #\ c93epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 8+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=8500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 8",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",24],PARAMETER["scale_factor",1],PARAMETER["false_easting",8500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2524"],AXIS["X",NORTH],AXIS["Y",EAST]] #] c93epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 9+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=9500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 9",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",1],PARAMETER["false_easting",9500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2525"],AXIS["X",NORTH],AXIS["Y",EAST]] '^ e;7epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 10+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=10500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 10",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",30],PARAMETER["scale_factor",1],PARAMETER["false_easting",10500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2526"],AXIS["X",NORTH],AXIS["Y",EAST]]ofVflrx~ &,28>DJPV\bhntz "(.4:@FLRX^djpv|123456789:;<=>?@ABCDEFGHIJKLMNOPQRST U V W X YZ[\]^_`abcdefghi j!k"l#m$n%o&p'q(r)s*t+u,v-w.x/y0z1{2|3}4~56789:;<=>? @ A B C DEFGHIJKLMNOPQRSTU '_ e;7epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 11+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=11500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 11",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",1],PARAMETER["false_easting",11500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2527"],AXIS["X",NORTH],AXIS["Y",EAST]] '` e;7epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 12+proj=tmerc +lat_0=0 +lon_0=36 +k=1 +x_0=12500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 12",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",36],PARAMETER["scale_factor",1],PARAMETER["false_easting",12500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2528"],AXIS["X",NORTH],AXIS["Y",EAST]] 'a e;7epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 13+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=13500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 13",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",1],PARAMETER["false_easting",13500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2529"],AXIS["X",NORTH],AXIS["Y",EAST]] 'b e;7epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 14+proj=tmerc +lat_0=0 +lon_0=42 +k=1 +x_0=14500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 14",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",42],PARAMETER["scale_factor",1],PARAMETER["false_easting",14500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2530"],AXIS["X",NORTH],AXIS["Y",EAST]] 'c e;7epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 15+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=15500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 15",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",1],PARAMETER["false_easting",15500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2531"],AXIS["X",NORTH],AXIS["Y",EAST]] 'd e;7epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 16+proj=tmerc +lat_0=0 +lon_0=48 +k=1 +x_0=16500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 16",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",48],PARAMETER["scale_factor",1],PARAMETER["false_easting",16500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2532"],AXIS["X",NORTH],AXIS["Y",EAST]] 'e e;7epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 17+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=17500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 17",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",1],PARAMETER["false_easting",17500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2533"],AXIS["X",NORTH],AXIS["Y",EAST]] 'f e;7epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 18+proj=tmerc +lat_0=0 +lon_0=54 +k=1 +x_0=18500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 18",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",54],PARAMETER["scale_factor",1],PARAMETER["false_easting",18500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2534"],AXIS["X",NORTH],AXIS["Y",EAST]] ;(5BO\iv,9FS`mz #0=JWdq~  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg  epsg 'g e;7epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 19+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=19500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 19",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",57],PARAMETER["scale_factor",1],PARAMETER["false_easting",19500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2535"],AXIS["X",NORTH],AXIS["Y",EAST]] 'h e;7epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 20+proj=tmerc +lat_0=0 +lon_0=60 +k=1 +x_0=20500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 20",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",60],PARAMETER["scale_factor",1],PARAMETER["false_easting",20500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2536"],AXIS["X",NORTH],AXIS["Y",EAST]] 'i e;7epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 21+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=21500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 21",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",63],PARAMETER["scale_factor",1],PARAMETER["false_easting",21500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2537"],AXIS["X",NORTH],AXIS["Y",EAST]] 'j e;7epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 22+proj=tmerc +lat_0=0 +lon_0=66 +k=1 +x_0=22500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 22",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",66],PARAMETER["scale_factor",1],PARAMETER["false_easting",22500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2538"],AXIS["X",NORTH],AXIS["Y",EAST]] 'k e;7epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 23+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=23500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 23",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",69],PARAMETER["scale_factor",1],PARAMETER["false_easting",23500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2539"],AXIS["X",NORTH],AXIS["Y",EAST]] 'l e;7epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 24+proj=tmerc +lat_0=0 +lon_0=72 +k=1 +x_0=24500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 24",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",72],PARAMETER["scale_factor",1],PARAMETER["false_easting",24500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2540"],AXIS["X",NORTH],AXIS["Y",EAST]] 'm e;7epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 25+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=25500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 25",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",1],PARAMETER["false_easting",25500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2541"],AXIS["X",NORTH],AXIS["Y",EAST]] 'n e;7epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 26+proj=tmerc +lat_0=0 +lon_0=78 +k=1 +x_0=26500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 26",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",78],PARAMETER["scale_factor",1],PARAMETER["false_easting",26500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2542"],AXIS["X",NORTH],AXIS["Y",EAST]] 'o e;7epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 27+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=27500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 27",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",1],PARAMETER["false_easting",27500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2543"],AXIS["X",NORTH],AXIS["Y",EAST]] 'p e;7epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 28+proj=tmerc +lat_0=0 +lon_0=84 +k=1 +x_0=28500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 28",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",84],PARAMETER["scale_factor",1],PARAMETER["false_easting",28500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2544"],AXIS["X",NORTH],AXIS["Y",EAST]] 'q e;7epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 29+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=29500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 29",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",1],PARAMETER["false_easting",29500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2545"],AXIS["X",NORTH],AXIS["Y",EAST]] 'r e;7epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 30+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=30500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 30",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",90],PARAMETER["scale_factor",1],PARAMETER["false_easting",30500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2546"],AXIS["X",NORTH],AXIS["Y",EAST]] 's e;7epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 31+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=31500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 31",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",1],PARAMETER["false_easting",31500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2547"],AXIS["X",NORTH],AXIS["Y",EAST]] 't e;7epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 32+proj=tmerc +lat_0=0 +lon_0=96 +k=1 +x_0=32500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 32",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",96],PARAMETER["scale_factor",1],PARAMETER["false_easting",32500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2548"],AXIS["X",NORTH],AXIS["Y",EAST]] 'u e;7epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 33+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=33500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 33",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",1],PARAMETER["false_easting",33500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2549"],AXIS["X",NORTH],AXIS["Y",EAST]] (v SK;epsg Samboja / UTM zone 50S (deprecated)+proj=utm +zone=50 +south +ellps=bessel +towgs84=-404.78,685.68,45.47,0,0,0,0 +units=m +no_defsPROJCS["Samboja / UTM zone 50S (deprecated)",GEOGCS["Samboja",DATUM["Samboja",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-404.78,685.68,45.47,0,0,0,0],AUTHORITY["EPSG","6125"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4125"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2550"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] )w e=9epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 34+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=34500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 34",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",102],PARAMETER["scale_factor",1],PARAMETER["false_easting",34500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2551"],AXIS["X",NORTH],AXIS["Y",EAST]] )x e=9epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 35+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=35500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 35",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",1],PARAMETER["false_easting",35500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2552"],AXIS["X",NORTH],AXIS["Y",EAST]] )y e=9epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 36+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=36500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 36",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",108],PARAMETER["scale_factor",1],PARAMETER["false_easting",36500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2553"],AXIS["X",NORTH],AXIS["Y",EAST]] )z e=9epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 37+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=37500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 37",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",1],PARAMETER["false_easting",37500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2554"],AXIS["X",NORTH],AXIS["Y",EAST]] ){ e=9epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 38+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=38500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 38",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",114],PARAMETER["scale_factor",1],PARAMETER["false_easting",38500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2555"],AXIS["X",NORTH],AXIS["Y",EAST]] )| e=9epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 39+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=39500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 39",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",1],PARAMETER["false_easting",39500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2556"],AXIS["X",NORTH],AXIS["Y",EAST]] )} e=9epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 40+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=40500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 40",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",120],PARAMETER["scale_factor",1],PARAMETER["false_easting",40500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2557"],AXIS["X",NORTH],AXIS["Y",EAST]] )~ e=9epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 41+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=41500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 41",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",1],PARAMETER["false_easting",41500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2558"],AXIS["X",NORTH],AXIS["Y",EAST]] ) e=9epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 42+proj=tmerc +lat_0=0 +lon_0=126 +k=1 +x_0=42500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 42",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",126],PARAMETER["scale_factor",1],PARAMETER["false_easting",42500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2559"],AXIS["X",NORTH],AXIS["Y",EAST]] ) e=9epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 43+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=43500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 43",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",1],PARAMETER["false_easting",43500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2560"],AXIS["X",NORTH],AXIS["Y",EAST]] ) e=9epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 44+proj=tmerc +lat_0=0 +lon_0=132 +k=1 +x_0=44500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 44",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",132],PARAMETER["scale_factor",1],PARAMETER["false_easting",44500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2561"],AXIS["X",NORTH],AXIS["Y",EAST]] ) e=9epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 45+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=45500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 45",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",1],PARAMETER["false_easting",45500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2562"],AXIS["X",NORTH],AXIS["Y",EAST]] ) e=9epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 46+proj=tmerc +lat_0=0 +lon_0=138 +k=1 +x_0=46500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 46",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",138],PARAMETER["scale_factor",1],PARAMETER["false_easting",46500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2563"],AXIS["X",NORTH],AXIS["Y",EAST]] ) e=9epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 47+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=47500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 47",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",141],PARAMETER["scale_factor",1],PARAMETER["false_easting",47500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2564"],AXIS["X",NORTH],AXIS["Y",EAST]] ) e=9epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 48+proj=tmerc +lat_0=0 +lon_0=144 +k=1 +x_0=48500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 48",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",144],PARAMETER["scale_factor",1],PARAMETER["false_easting",48500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2565"],AXIS["X",NORTH],AXIS["Y",EAST]] ) e=9epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 49+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=49500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 49",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",147],PARAMETER["scale_factor",1],PARAMETER["false_easting",49500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2566"],AXIS["X",NORTH],AXIS["Y",EAST]] ) e=9epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 50+proj=tmerc +lat_0=0 +lon_0=150 +k=1 +x_0=50500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 50",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",150],PARAMETER["scale_factor",1],PARAMETER["false_easting",50500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2567"],AXIS["X",NORTH],AXIS["Y",EAST]] ) e=9epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 51+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=51500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 51",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",153],PARAMETER["scale_factor",1],PARAMETER["false_easting",51500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2568"],AXIS["X",NORTH],AXIS["Y",EAST]] ) e=9epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 52+proj=tmerc +lat_0=0 +lon_0=156 +k=1 +x_0=52500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 52",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",156],PARAMETER["scale_factor",1],PARAMETER["false_easting",52500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2569"],AXIS["X",NORTH],AXIS["Y",EAST]] ) e=9epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 53+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=53500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 53",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",159],PARAMETER["scale_factor",1],PARAMETER["false_easting",53500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2570"],AXIS["X",NORTH],AXIS["Y",EAST]] ) e=9epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 54+proj=tmerc +lat_0=0 +lon_0=162 +k=1 +x_0=54500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 54",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",162],PARAMETER["scale_factor",1],PARAMETER["false_easting",54500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2571"],AXIS["X",NORTH],AXIS["Y",EAST]] ) e=9epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 55+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=55500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 55",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",1],PARAMETER["false_easting",55500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2572"],AXIS["X",NORTH],AXIS["Y",EAST]] ) e=9epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 56+proj=tmerc +lat_0=0 +lon_0=168 +k=1 +x_0=56500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 56",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",168],PARAMETER["scale_factor",1],PARAMETER["false_easting",56500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2573"],AXIS["X",NORTH],AXIS["Y",EAST]] ) e=9epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 57+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=57500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 57",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",171],PARAMETER["scale_factor",1],PARAMETER["false_easting",57500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2574"],AXIS["X",NORTH],AXIS["Y",EAST]] ) e=9epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 58+proj=tmerc +lat_0=0 +lon_0=174 +k=1 +x_0=58500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 58",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",174],PARAMETER["scale_factor",1],PARAMETER["false_easting",58500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2575"],AXIS["X",NORTH],AXIS["Y",EAST]] ) e=9epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 59+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=59500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 59",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",177],PARAMETER["scale_factor",1],PARAMETER["false_easting",59500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2576"],AXIS["X",NORTH],AXIS["Y",EAST]] C =Sepsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 60 (deprecated)+proj=tmerc +lat_0=0 +lon_0=180 +k=1 +x_0=60000000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 60 (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",180],PARAMETER["scale_factor",1],PARAMETER["false_easting",60000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2577"],AXIS["X",NORTH],AXIS["Y",EAST]] + e?;epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 61+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=61500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 61",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-177],PARAMETER["scale_factor",1],PARAMETER["false_easting",61500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2578"],AXIS["X",NORTH],AXIS["Y",EAST]] + e?;epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 62+proj=tmerc +lat_0=0 +lon_0=-174 +k=1 +x_0=62500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 62",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-174],PARAMETER["scale_factor",1],PARAMETER["false_easting",62500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2579"],AXIS["X",NORTH],AXIS["Y",EAST]] + e?;epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 63+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=63500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 63",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-171],PARAMETER["scale_factor",1],PARAMETER["false_easting",63500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2580"],AXIS["X",NORTH],AXIS["Y",EAST]] + e?;epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 64+proj=tmerc +lat_0=0 +lon_0=-168 +k=1 +x_0=64500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 64",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-168],PARAMETER["scale_factor",1],PARAMETER["false_easting",64500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2581"],AXIS["X",NORTH],AXIS["Y",EAST]] ! c71epsg Pulkovo 1942 / 3-degree Gauss-Kruger CM 21E+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 21E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2582"],AXIS["X",NORTH],AXIS["Y",EAST]] ! c71epsg Pulkovo 1942 / 3-degree Gauss-Kruger CM 24E+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 24E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",24],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2583"],AXIS["X",NORTH],AXIS["Y",EAST]] ! c71epsg Pulkovo 1942 / 3-degree Gauss-Kruger CM 27E+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 27E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2584"],AXIS["X",NORTH],AXIS["Y",EAST]] ! c71epsg Pulkovo 1942 / 3-degree Gauss-Kruger CM 30E+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 30E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",30],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2585"],AXIS["X",NORTH],AXIS["Y",EAST]] ! c71epsg Pulkovo 1942 / 3-degree Gauss-Kruger CM 33E+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 33E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2586"],AXIS["X",NORTH],AXIS["Y",EAST]] ! c71epsg Pulkovo 1942 / 3-degree Gauss-Kruger CM 36E+proj=tmerc +lat_0=0 +lon_0=36 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 36E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",36],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2587"],AXIS["X",NORTH],AXIS["Y",EAST]] ! c71epsg Pulkovo 1942 / 3-degree Gauss-Kruger CM 39E+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 39E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2588"],AXIS["X",NORTH],AXIS["Y",EAST]] ! c71epsg Pulkovo 1942 / 3-degree Gauss-Kruger CM 42E+proj=tmerc +lat_0=0 +lon_0=42 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 42E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",42],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2589"],AXIS["X",NORTH],AXIS["Y",EAST]] ! c71epsg Pulkovo 1942 / 3-degree Gauss-Kruger CM 45E+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 45E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2590"],AXIS["X",NORTH],AXIS["Y",EAST]] ! c71epsg Pulkovo 1942 / 3-degree Gauss-Kruger CM 48E+proj=tmerc +lat_0=0 +lon_0=48 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 48E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",48],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2591"],AXIS["X",NORTH],AXIS["Y",EAST]] ! c71epsg Pulkovo 1942 / 3-degree Gauss-Kruger CM 51E+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 51E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2592"],AXIS["X",NORTH],AXIS["Y",EAST]] !! c71epsg !Pulkovo 1942 / 3-degree Gauss-Kruger CM 54E+proj=tmerc +lat_0=0 +lon_0=54 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 54E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",54],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2593"],AXIS["X",NORTH],AXIS["Y",EAST]] !" c71epsg "Pulkovo 1942 / 3-degree Gauss-Kruger CM 57E+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 57E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",57],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2594"],AXIS["X",NORTH],AXIS["Y",EAST]] ;(5BO\iv,9FS`mz #0=JWdq~  epsg  epsg  epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg  !epsg !  "epsg "  #epsg #  $epsg $  %epsg %  &epsg &  'epsg '  (epsg (  )epsg )  *epsg *  +epsg +  ,epsg ,  -epsg -  .epsg .  /epsg /  0epsg 0  1epsg 1  2epsg 2  3epsg 3  4epsg 4  5epsg 5  6epsg 6  7epsg 7  8epsg 8  9epsg 9  :epsg :  ;epsg ;  epsg >  ?epsg ?  @epsg @  Aepsg A  Bepsg B  Cepsg C  Depsg D  Eepsg E  Fepsg F !# c71epsg #Pulkovo 1942 / 3-degree Gauss-Kruger CM 60E+proj=tmerc +lat_0=0 +lon_0=60 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 60E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",60],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2595"],AXIS["X",NORTH],AXIS["Y",EAST]] !$ c71epsg $Pulkovo 1942 / 3-degree Gauss-Kruger CM 63E+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 63E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",63],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2596"],AXIS["X",NORTH],AXIS["Y",EAST]] !% c71epsg %Pulkovo 1942 / 3-degree Gauss-Kruger CM 66E+proj=tmerc +lat_0=0 +lon_0=66 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 66E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",66],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2597"],AXIS["X",NORTH],AXIS["Y",EAST]] !& c71epsg &Pulkovo 1942 / 3-degree Gauss-Kruger CM 69E+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 69E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",69],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2598"],AXIS["X",NORTH],AXIS["Y",EAST]] !' c71epsg 'Pulkovo 1942 / 3-degree Gauss-Kruger CM 72E+proj=tmerc +lat_0=0 +lon_0=72 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 72E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",72],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2599"],AXIS["X",NORTH],AXIS["Y",EAST]] 2( goepsg (Lietuvos Koordinoei Sistema 1994 (deprecated)+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9998 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["Lietuvos Koordinoei Sistema 1994 (deprecated)",GEOGCS["LKS94",DATUM["Lithuania_1994_ETRS89",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6126"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4669"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",24],PARAMETER["scale_factor",0.9998],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2600"],AXIS["X",NORTH],AXIS["Y",EAST]] !) c71epsg )Pulkovo 1942 / 3-degree Gauss-Kruger CM 75E+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 75E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2601"],AXIS["X",NORTH],AXIS["Y",EAST]] !* c71epsg *Pulkovo 1942 / 3-degree Gauss-Kruger CM 78E+proj=tmerc +lat_0=0 +lon_0=78 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 78E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",78],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2602"],AXIS["X",NORTH],AXIS["Y",EAST]] !+ c71epsg +Pulkovo 1942 / 3-degree Gauss-Kruger CM 81E+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 81E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2603"],AXIS["X",NORTH],AXIS["Y",EAST]] !, c71epsg ,Pulkovo 1942 / 3-degree Gauss-Kruger CM 84E+proj=tmerc +lat_0=0 +lon_0=84 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 84E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",84],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2604"],AXIS["X",NORTH],AXIS["Y",EAST]] !- c71epsg -Pulkovo 1942 / 3-degree Gauss-Kruger CM 87E+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 87E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2605"],AXIS["X",NORTH],AXIS["Y",EAST]] !. c71epsg .Pulkovo 1942 / 3-degree Gauss-Kruger CM 90E+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 90E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",90],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2606"],AXIS["X",NORTH],AXIS["Y",EAST]] !/ c71epsg /Pulkovo 1942 / 3-degree Gauss-Kruger CM 93E+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 93E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2607"],AXIS["X",NORTH],AXIS["Y",EAST]] !0 c71epsg 0Pulkovo 1942 / 3-degree Gauss-Kruger CM 96E+proj=tmerc +lat_0=0 +lon_0=96 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 96E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",96],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2608"],AXIS["X",NORTH],AXIS["Y",EAST]] !1 c71epsg 1Pulkovo 1942 / 3-degree Gauss-Kruger CM 99E+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 99E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2609"],AXIS["X",NORTH],AXIS["Y",EAST]] %2 e95epsg 2Pulkovo 1942 / 3-degree Gauss-Kruger CM 102E+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 102E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",102],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2610"],AXIS["X",NORTH],AXIS["Y",EAST]] %3 e95epsg 3Pulkovo 1942 / 3-degree Gauss-Kruger CM 105E+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 105E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2611"],AXIS["X",NORTH],AXIS["Y",EAST]] %4 e95epsg 4Pulkovo 1942 / 3-degree Gauss-Kruger CM 108E+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 108E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",108],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2612"],AXIS["X",NORTH],AXIS["Y",EAST]] %5 e95epsg 5Pulkovo 1942 / 3-degree Gauss-Kruger CM 111E+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 111E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2613"],AXIS["X",NORTH],AXIS["Y",EAST]] %6 e95epsg 6Pulkovo 1942 / 3-degree Gauss-Kruger CM 114E+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 114E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",114],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2614"],AXIS["X",NORTH],AXIS["Y",EAST]] %7 e95epsg 7Pulkovo 1942 / 3-degree Gauss-Kruger CM 117E+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 117E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2615"],AXIS["X",NORTH],AXIS["Y",EAST]] %8 e95epsg 8Pulkovo 1942 / 3-degree Gauss-Kruger CM 120E+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 120E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",120],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2616"],AXIS["X",NORTH],AXIS["Y",EAST]] %9 e95epsg 9Pulkovo 1942 / 3-degree Gauss-Kruger CM 123E+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 123E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2617"],AXIS["X",NORTH],AXIS["Y",EAST]] %: e95epsg :Pulkovo 1942 / 3-degree Gauss-Kruger CM 126E+proj=tmerc +lat_0=0 +lon_0=126 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 126E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",126],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2618"],AXIS["X",NORTH],AXIS["Y",EAST]] %; e95epsg ;Pulkovo 1942 / 3-degree Gauss-Kruger CM 129E+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 129E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2619"],AXIS["X",NORTH],AXIS["Y",EAST]] %< e95epsg e95epsg >Pulkovo 1942 / 3-degree Gauss-Kruger CM 138E+proj=tmerc +lat_0=0 +lon_0=138 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 138E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",138],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2622"],AXIS["X",NORTH],AXIS["Y",EAST]] %? e95epsg ?Pulkovo 1942 / 3-degree Gauss-Kruger CM 141E+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 141E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",141],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2623"],AXIS["X",NORTH],AXIS["Y",EAST]] %@ e95epsg @Pulkovo 1942 / 3-degree Gauss-Kruger CM 144E+proj=tmerc +lat_0=0 +lon_0=144 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 144E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",144],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2624"],AXIS["X",NORTH],AXIS["Y",EAST]] %A e95epsg APulkovo 1942 / 3-degree Gauss-Kruger CM 147E+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 147E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",147],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2625"],AXIS["X",NORTH],AXIS["Y",EAST]] %B e95epsg BPulkovo 1942 / 3-degree Gauss-Kruger CM 150E+proj=tmerc +lat_0=0 +lon_0=150 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 150E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",150],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2626"],AXIS["X",NORTH],AXIS["Y",EAST]] %C e95epsg CPulkovo 1942 / 3-degree Gauss-Kruger CM 153E+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 153E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",153],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2627"],AXIS["X",NORTH],AXIS["Y",EAST]] %D e95epsg DPulkovo 1942 / 3-degree Gauss-Kruger CM 156E+proj=tmerc +lat_0=0 +lon_0=156 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 156E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",156],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2628"],AXIS["X",NORTH],AXIS["Y",EAST]] %E e95epsg EPulkovo 1942 / 3-degree Gauss-Kruger CM 159E+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 159E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",159],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2629"],AXIS["X",NORTH],AXIS["Y",EAST]] %F e95epsg FPulkovo 1942 / 3-degree Gauss-Kruger CM 162E+proj=tmerc +lat_0=0 +lon_0=162 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 162E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",162],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2630"],AXIS["X",NORTH],AXIS["Y",EAST]] %G e95epsg GPulkovo 1942 / 3-degree Gauss-Kruger CM 165E+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 165E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2631"],AXIS["X",NORTH],AXIS["Y",EAST]] %H e95epsg HPulkovo 1942 / 3-degree Gauss-Kruger CM 168E+proj=tmerc +lat_0=0 +lon_0=168 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 168E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",168],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2632"],AXIS["X",NORTH],AXIS["Y",EAST]] %I e95epsg IPulkovo 1942 / 3-degree Gauss-Kruger CM 171E+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 171E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",171],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2633"],AXIS["X",NORTH],AXIS["Y",EAST]] %J e95epsg JPulkovo 1942 / 3-degree Gauss-Kruger CM 174E+proj=tmerc +lat_0=0 +lon_0=174 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 174E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",174],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2634"],AXIS["X",NORTH],AXIS["Y",EAST]] %K e95epsg KPulkovo 1942 / 3-degree Gauss-Kruger CM 177E+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 177E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",177],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2635"],AXIS["X",NORTH],AXIS["Y",EAST]] %L e95epsg LPulkovo 1942 / 3-degree Gauss-Kruger CM 180E+proj=tmerc +lat_0=0 +lon_0=180 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 180E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",180],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2636"],AXIS["X",NORTH],AXIS["Y",EAST]] 'M e;7epsg MPulkovo 1942 / 3-degree Gauss-Kruger CM 177W+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 177W",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-177],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2637"],AXIS["X",NORTH],AXIS["Y",EAST]] 'N e;7epsg NPulkovo 1942 / 3-degree Gauss-Kruger CM 174W+proj=tmerc +lat_0=0 +lon_0=-174 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 174W",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-174],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2638"],AXIS["X",NORTH],AXIS["Y",EAST]]offlrx~ &,28>DJPV\bhntz "(.4:@FLRX^djpv|W!X"Z#[$\%]&^'_(`)a*b+c,d-e.f/g0h1i2j3k4l5m6n7o8p9q:r;s<t=u>v?w@xAyBzC{D|E}F~GHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~• Õ ĕ ŕ ƕ Ǖȕ 'O e;7epsg OPulkovo 1942 / 3-degree Gauss-Kruger CM 171W+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 171W",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-171],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2639"],AXIS["X",NORTH],AXIS["Y",EAST]] 'P e;7epsg PPulkovo 1942 / 3-degree Gauss-Kruger CM 168W+proj=tmerc +lat_0=0 +lon_0=-168 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 168W",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-168],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2640"],AXIS["X",NORTH],AXIS["Y",EAST]] SQ c5epsg QPulkovo 1995 / 3-degree Gauss-Kruger zone 7+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=7500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 7",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",1],PARAMETER["false_easting",7500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2641"],AXIS["X",NORTH],AXIS["Y",EAST]] SR c5epsg RPulkovo 1995 / 3-degree Gauss-Kruger zone 8+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=8500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 8",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",24],PARAMETER["scale_factor",1],PARAMETER["false_easting",8500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2642"],AXIS["X",NORTH],AXIS["Y",EAST]] SS c5epsg SPulkovo 1995 / 3-degree Gauss-Kruger zone 9+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=9500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 9",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",1],PARAMETER["false_easting",9500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2643"],AXIS["X",NORTH],AXIS["Y",EAST]] WT e9epsg TPulkovo 1995 / 3-degree Gauss-Kruger zone 10+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=10500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 10",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",30],PARAMETER["scale_factor",1],PARAMETER["false_easting",10500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2644"],AXIS["X",NORTH],AXIS["Y",EAST]] WU e9epsg UPulkovo 1995 / 3-degree Gauss-Kruger zone 11+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=11500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 11",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",1],PARAMETER["false_easting",11500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2645"],AXIS["X",NORTH],AXIS["Y",EAST]] WV e9epsg VPulkovo 1995 / 3-degree Gauss-Kruger zone 12+proj=tmerc +lat_0=0 +lon_0=36 +k=1 +x_0=12500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 12",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",36],PARAMETER["scale_factor",1],PARAMETER["false_easting",12500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2646"],AXIS["X",NORTH],AXIS["Y",EAST]] WW e9epsg WPulkovo 1995 / 3-degree Gauss-Kruger zone 13+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=13500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 13",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",1],PARAMETER["false_easting",13500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2647"],AXIS["X",NORTH],AXIS["Y",EAST]] WX e9epsg XPulkovo 1995 / 3-degree Gauss-Kruger zone 14+proj=tmerc +lat_0=0 +lon_0=42 +k=1 +x_0=14500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 14",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",42],PARAMETER["scale_factor",1],PARAMETER["false_easting",14500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2648"],AXIS["X",NORTH],AXIS["Y",EAST]] WY e9epsg YPulkovo 1995 / 3-degree Gauss-Kruger zone 15+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=15500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 15",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",1],PARAMETER["false_easting",15500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2649"],AXIS["X",NORTH],AXIS["Y",EAST]] WZ e9epsg ZPulkovo 1995 / 3-degree Gauss-Kruger zone 16+proj=tmerc +lat_0=0 +lon_0=48 +k=1 +x_0=16500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 16",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",48],PARAMETER["scale_factor",1],PARAMETER["false_easting",16500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2650"],AXIS["X",NORTH],AXIS["Y",EAST]] W[ e9epsg [Pulkovo 1995 / 3-degree Gauss-Kruger zone 17+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=17500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 17",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",1],PARAMETER["false_easting",17500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2651"],AXIS["X",NORTH],AXIS["Y",EAST]] W\ e9epsg \Pulkovo 1995 / 3-degree Gauss-Kruger zone 18+proj=tmerc +lat_0=0 +lon_0=54 +k=1 +x_0=18500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 18",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",54],PARAMETER["scale_factor",1],PARAMETER["false_easting",18500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2652"],AXIS["X",NORTH],AXIS["Y",EAST]] W] e9epsg ]Pulkovo 1995 / 3-degree Gauss-Kruger zone 19+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=19500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 19",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",57],PARAMETER["scale_factor",1],PARAMETER["false_easting",19500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2653"],AXIS["X",NORTH],AXIS["Y",EAST]] W^ e9epsg ^Pulkovo 1995 / 3-degree Gauss-Kruger zone 20+proj=tmerc +lat_0=0 +lon_0=60 +k=1 +x_0=20500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 20",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",60],PARAMETER["scale_factor",1],PARAMETER["false_easting",20500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2654"],AXIS["X",NORTH],AXIS["Y",EAST]] ;(5BO\iv,9FS`mz #0=JWdq~  Hepsg H  Iepsg I  Jepsg J  Kepsg K  Lepsg L  Mepsg M  Nepsg N  Oepsg O  Pepsg P  Qepsg Q  Repsg R  Sepsg S  Tepsg T  Uepsg U  Vepsg V  Wepsg W  Xepsg X  Yepsg Y  Zepsg Z  [epsg [  \epsg \  ]epsg ]  ^epsg ^  _epsg _  `epsg `  aepsg a  bepsg b  cepsg c  depsg d  eepsg e  fepsg f  gepsg g  hepsg h  iepsg i  jepsg j  kepsg k  lepsg l  mepsg m  nepsg n  oepsg o  pepsg p  qepsg q  repsg r  sepsg s  tepsg t  uepsg u  vepsg v  wepsg w  xepsg x  yepsg y  zepsg z  {epsg {  |epsg |  }epsg }  ~epsg ~  epsg   epsg  epsg  epsg W_ e9epsg _Pulkovo 1995 / 3-degree Gauss-Kruger zone 21+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=21500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 21",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",63],PARAMETER["scale_factor",1],PARAMETER["false_easting",21500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2655"],AXIS["X",NORTH],AXIS["Y",EAST]] W` e9epsg `Pulkovo 1995 / 3-degree Gauss-Kruger zone 22+proj=tmerc +lat_0=0 +lon_0=66 +k=1 +x_0=22500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 22",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",66],PARAMETER["scale_factor",1],PARAMETER["false_easting",22500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2656"],AXIS["X",NORTH],AXIS["Y",EAST]] Wa e9epsg aPulkovo 1995 / 3-degree Gauss-Kruger zone 23+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=23500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 23",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",69],PARAMETER["scale_factor",1],PARAMETER["false_easting",23500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2657"],AXIS["X",NORTH],AXIS["Y",EAST]] Wb e9epsg bPulkovo 1995 / 3-degree Gauss-Kruger zone 24+proj=tmerc +lat_0=0 +lon_0=72 +k=1 +x_0=24500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 24",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",72],PARAMETER["scale_factor",1],PARAMETER["false_easting",24500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2658"],AXIS["X",NORTH],AXIS["Y",EAST]] Wc e9epsg cPulkovo 1995 / 3-degree Gauss-Kruger zone 25+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=25500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 25",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",1],PARAMETER["false_easting",25500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2659"],AXIS["X",NORTH],AXIS["Y",EAST]] Wd e9epsg dPulkovo 1995 / 3-degree Gauss-Kruger zone 26+proj=tmerc +lat_0=0 +lon_0=78 +k=1 +x_0=26500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 26",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",78],PARAMETER["scale_factor",1],PARAMETER["false_easting",26500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2660"],AXIS["X",NORTH],AXIS["Y",EAST]] We e9epsg ePulkovo 1995 / 3-degree Gauss-Kruger zone 27+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=27500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 27",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",1],PARAMETER["false_easting",27500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2661"],AXIS["X",NORTH],AXIS["Y",EAST]] Wf e9epsg fPulkovo 1995 / 3-degree Gauss-Kruger zone 28+proj=tmerc +lat_0=0 +lon_0=84 +k=1 +x_0=28500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 28",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",84],PARAMETER["scale_factor",1],PARAMETER["false_easting",28500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2662"],AXIS["X",NORTH],AXIS["Y",EAST]] Wg e9epsg gPulkovo 1995 / 3-degree Gauss-Kruger zone 29+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=29500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 29",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",1],PARAMETER["false_easting",29500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2663"],AXIS["X",NORTH],AXIS["Y",EAST]] Wh e9epsg hPulkovo 1995 / 3-degree Gauss-Kruger zone 30+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=30500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 30",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",90],PARAMETER["scale_factor",1],PARAMETER["false_easting",30500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2664"],AXIS["X",NORTH],AXIS["Y",EAST]] Wi e9epsg iPulkovo 1995 / 3-degree Gauss-Kruger zone 31+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=31500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 31",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",1],PARAMETER["false_easting",31500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2665"],AXIS["X",NORTH],AXIS["Y",EAST]] Wj e9epsg jPulkovo 1995 / 3-degree Gauss-Kruger zone 32+proj=tmerc +lat_0=0 +lon_0=96 +k=1 +x_0=32500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 32",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",96],PARAMETER["scale_factor",1],PARAMETER["false_easting",32500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2666"],AXIS["X",NORTH],AXIS["Y",EAST]] Wk e9epsg kPulkovo 1995 / 3-degree Gauss-Kruger zone 33+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=33500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 33",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",1],PARAMETER["false_easting",33500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2667"],AXIS["X",NORTH],AXIS["Y",EAST]] Yl e;epsg lPulkovo 1995 / 3-degree Gauss-Kruger zone 34+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=34500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 34",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",102],PARAMETER["scale_factor",1],PARAMETER["false_easting",34500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2668"],AXIS["X",NORTH],AXIS["Y",EAST]] Ym e;epsg mPulkovo 1995 / 3-degree Gauss-Kruger zone 35+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=35500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 35",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",1],PARAMETER["false_easting",35500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2669"],AXIS["X",NORTH],AXIS["Y",EAST]] Yn e;epsg nPulkovo 1995 / 3-degree Gauss-Kruger zone 36+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=36500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 36",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",108],PARAMETER["scale_factor",1],PARAMETER["false_easting",36500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2670"],AXIS["X",NORTH],AXIS["Y",EAST]] Yo e;epsg oPulkovo 1995 / 3-degree Gauss-Kruger zone 37+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=37500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 37",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",1],PARAMETER["false_easting",37500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2671"],AXIS["X",NORTH],AXIS["Y",EAST]] Yp e;epsg pPulkovo 1995 / 3-degree Gauss-Kruger zone 38+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=38500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 38",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",114],PARAMETER["scale_factor",1],PARAMETER["false_easting",38500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2672"],AXIS["X",NORTH],AXIS["Y",EAST]] Yq e;epsg qPulkovo 1995 / 3-degree Gauss-Kruger zone 39+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=39500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 39",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",1],PARAMETER["false_easting",39500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2673"],AXIS["X",NORTH],AXIS["Y",EAST]] Yr e;epsg rPulkovo 1995 / 3-degree Gauss-Kruger zone 40+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=40500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 40",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",120],PARAMETER["scale_factor",1],PARAMETER["false_easting",40500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2674"],AXIS["X",NORTH],AXIS["Y",EAST]] Ys e;epsg sPulkovo 1995 / 3-degree Gauss-Kruger zone 41+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=41500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 41",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",1],PARAMETER["false_easting",41500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2675"],AXIS["X",NORTH],AXIS["Y",EAST]] Yt e;epsg tPulkovo 1995 / 3-degree Gauss-Kruger zone 42+proj=tmerc +lat_0=0 +lon_0=126 +k=1 +x_0=42500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 42",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",126],PARAMETER["scale_factor",1],PARAMETER["false_easting",42500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2676"],AXIS["X",NORTH],AXIS["Y",EAST]] Yu e;epsg uPulkovo 1995 / 3-degree Gauss-Kruger zone 43+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=43500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 43",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",1],PARAMETER["false_easting",43500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2677"],AXIS["X",NORTH],AXIS["Y",EAST]] Yv e;epsg vPulkovo 1995 / 3-degree Gauss-Kruger zone 44+proj=tmerc +lat_0=0 +lon_0=132 +k=1 +x_0=44500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 44",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",132],PARAMETER["scale_factor",1],PARAMETER["false_easting",44500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2678"],AXIS["X",NORTH],AXIS["Y",EAST]] Yw e;epsg wPulkovo 1995 / 3-degree Gauss-Kruger zone 45+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=45500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 45",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",1],PARAMETER["false_easting",45500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2679"],AXIS["X",NORTH],AXIS["Y",EAST]] Yx e;epsg xPulkovo 1995 / 3-degree Gauss-Kruger zone 46+proj=tmerc +lat_0=0 +lon_0=138 +k=1 +x_0=46500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 46",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",138],PARAMETER["scale_factor",1],PARAMETER["false_easting",46500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2680"],AXIS["X",NORTH],AXIS["Y",EAST]] Yy e;epsg yPulkovo 1995 / 3-degree Gauss-Kruger zone 47+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=47500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 47",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",141],PARAMETER["scale_factor",1],PARAMETER["false_easting",47500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2681"],AXIS["X",NORTH],AXIS["Y",EAST]] Yz e;epsg zPulkovo 1995 / 3-degree Gauss-Kruger zone 48+proj=tmerc +lat_0=0 +lon_0=144 +k=1 +x_0=48500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 48",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",144],PARAMETER["scale_factor",1],PARAMETER["false_easting",48500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2682"],AXIS["X",NORTH],AXIS["Y",EAST]] Y{ e;epsg {Pulkovo 1995 / 3-degree Gauss-Kruger zone 49+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=49500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 49",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",147],PARAMETER["scale_factor",1],PARAMETER["false_easting",49500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2683"],AXIS["X",NORTH],AXIS["Y",EAST]] Y| e;epsg |Pulkovo 1995 / 3-degree Gauss-Kruger zone 50+proj=tmerc +lat_0=0 +lon_0=150 +k=1 +x_0=50500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 50",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",150],PARAMETER["scale_factor",1],PARAMETER["false_easting",50500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2684"],AXIS["X",NORTH],AXIS["Y",EAST]] Y} e;epsg }Pulkovo 1995 / 3-degree Gauss-Kruger zone 51+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=51500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 51",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",153],PARAMETER["scale_factor",1],PARAMETER["false_easting",51500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2685"],AXIS["X",NORTH],AXIS["Y",EAST]] Y~ e;epsg ~Pulkovo 1995 / 3-degree Gauss-Kruger zone 52+proj=tmerc +lat_0=0 +lon_0=156 +k=1 +x_0=52500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 52",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",156],PARAMETER["scale_factor",1],PARAMETER["false_easting",52500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2686"],AXIS["X",NORTH],AXIS["Y",EAST]] Y e;epsg Pulkovo 1995 / 3-degree Gauss-Kruger zone 53+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=53500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 53",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",159],PARAMETER["scale_factor",1],PARAMETER["false_easting",53500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2687"],AXIS["X",NORTH],AXIS["Y",EAST]] Y e;epsg Pulkovo 1995 / 3-degree Gauss-Kruger zone 54+proj=tmerc +lat_0=0 +lon_0=162 +k=1 +x_0=54500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 54",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",162],PARAMETER["scale_factor",1],PARAMETER["false_easting",54500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2688"],AXIS["X",NORTH],AXIS["Y",EAST]] Y e;epsg Pulkovo 1995 / 3-degree Gauss-Kruger zone 55+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=55500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 55",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",1],PARAMETER["false_easting",55500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2689"],AXIS["X",NORTH],AXIS["Y",EAST]] Y e;epsg Pulkovo 1995 / 3-degree Gauss-Kruger zone 56+proj=tmerc +lat_0=0 +lon_0=168 +k=1 +x_0=56500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 56",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",168],PARAMETER["scale_factor",1],PARAMETER["false_easting",56500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2690"],AXIS["X",NORTH],AXIS["Y",EAST]] Y e;epsg Pulkovo 1995 / 3-degree Gauss-Kruger zone 57+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=57500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 57",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",171],PARAMETER["scale_factor",1],PARAMETER["false_easting",57500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2691"],AXIS["X",NORTH],AXIS["Y",EAST]] Y e;epsg Pulkovo 1995 / 3-degree Gauss-Kruger zone 58+proj=tmerc +lat_0=0 +lon_0=174 +k=1 +x_0=58500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 58",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",174],PARAMETER["scale_factor",1],PARAMETER["false_easting",58500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2692"],AXIS["X",NORTH],AXIS["Y",EAST]] Y e;epsg Pulkovo 1995 / 3-degree Gauss-Kruger zone 59+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=59500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 59",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",177],PARAMETER["scale_factor",1],PARAMETER["false_easting",59500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2693"],AXIS["X",NORTH],AXIS["Y",EAST]] s Uepsg Pulkovo 1995 / 3-degree Gauss-Kruger zone 60 (deprecated)+proj=tmerc +lat_0=0 +lon_0=180 +k=1 +x_0=60000000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 60 (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",180],PARAMETER["scale_factor",1],PARAMETER["false_easting",60000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2694"],AXIS["X",NORTH],AXIS["Y",EAST]] [ e=epsg Pulkovo 1995 / 3-degree Gauss-Kruger zone 61+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=61500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 61",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-177],PARAMETER["scale_factor",1],PARAMETER["false_easting",61500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2695"],AXIS["X",NORTH],AXIS["Y",EAST]] [ e=epsg Pulkovo 1995 / 3-degree Gauss-Kruger zone 62+proj=tmerc +lat_0=0 +lon_0=-174 +k=1 +x_0=62500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 62",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-174],PARAMETER["scale_factor",1],PARAMETER["false_easting",62500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2696"],AXIS["X",NORTH],AXIS["Y",EAST]] [ e=epsg Pulkovo 1995 / 3-degree Gauss-Kruger zone 63+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=63500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 63",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-171],PARAMETER["scale_factor",1],PARAMETER["false_easting",63500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2697"],AXIS["X",NORTH],AXIS["Y",EAST]] [ e=epsg Pulkovo 1995 / 3-degree Gauss-Kruger zone 64+proj=tmerc +lat_0=0 +lon_0=-168 +k=1 +x_0=64500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 64",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-168],PARAMETER["scale_factor",1],PARAMETER["false_easting",64500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2698"],AXIS["X",NORTH],AXIS["Y",EAST]] Q c3epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 21E+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 21E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2699"],AXIS["X",NORTH],AXIS["Y",EAST]] Q c3epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 24E+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 24E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",24],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2700"],AXIS["X",NORTH],AXIS["Y",EAST]] Q c3epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 27E+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 27E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2701"],AXIS["X",NORTH],AXIS["Y",EAST]] Q c3epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 30E+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 30E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",30],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2702"],AXIS["X",NORTH],AXIS["Y",EAST]] Q c3epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 33E+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 33E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2703"],AXIS["X",NORTH],AXIS["Y",EAST]] Q c3epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 36E+proj=tmerc +lat_0=0 +lon_0=36 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 36E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",36],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2704"],AXIS["X",NORTH],AXIS["Y",EAST]] Q c3epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 39E+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 39E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2705"],AXIS["X",NORTH],AXIS["Y",EAST]] Q c3epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 42E+proj=tmerc +lat_0=0 +lon_0=42 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 42E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",42],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2706"],AXIS["X",NORTH],AXIS["Y",EAST]] Q c3epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 45E+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 45E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2707"],AXIS["X",NORTH],AXIS["Y",EAST]] Q c3epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 48E+proj=tmerc +lat_0=0 +lon_0=48 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 48E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",48],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2708"],AXIS["X",NORTH],AXIS["Y",EAST]] Q c3epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 51E+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 51E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2709"],AXIS["X",NORTH],AXIS["Y",EAST]] Q c3epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 54E+proj=tmerc +lat_0=0 +lon_0=54 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 54E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",54],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2710"],AXIS["X",NORTH],AXIS["Y",EAST]] Q c3epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 57E+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 57E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",57],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2711"],AXIS["X",NORTH],AXIS["Y",EAST]] Q c3epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 60E+proj=tmerc +lat_0=0 +lon_0=60 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 60E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",60],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2712"],AXIS["X",NORTH],AXIS["Y",EAST]] Q c3epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 63E+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 63E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",63],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2713"],AXIS["X",NORTH],AXIS["Y",EAST]] Q c3epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 66E+proj=tmerc +lat_0=0 +lon_0=66 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 66E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",66],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2714"],AXIS["X",NORTH],AXIS["Y",EAST]] ;(5BO\iv,9FS`mz #0=JWdq~  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg Q c3epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 69E+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 69E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",69],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2715"],AXIS["X",NORTH],AXIS["Y",EAST]] Q c3epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 72E+proj=tmerc +lat_0=0 +lon_0=72 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 72E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",72],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2716"],AXIS["X",NORTH],AXIS["Y",EAST]] Q c3epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 75E+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 75E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2717"],AXIS["X",NORTH],AXIS["Y",EAST]] Q c3epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 78E+proj=tmerc +lat_0=0 +lon_0=78 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 78E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",78],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2718"],AXIS["X",NORTH],AXIS["Y",EAST]] Q c3epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 81E+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 81E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2719"],AXIS["X",NORTH],AXIS["Y",EAST]] Q c3epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 84E+proj=tmerc +lat_0=0 +lon_0=84 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 84E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",84],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2720"],AXIS["X",NORTH],AXIS["Y",EAST]] Q! c3epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 87E+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 87E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2721"],AXIS["X",NORTH],AXIS["Y",EAST]] Q" c3epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 90E+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 90E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",90],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2722"],AXIS["X",NORTH],AXIS["Y",EAST]] Q# c3epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 93E+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 93E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2723"],AXIS["X",NORTH],AXIS["Y",EAST]] Q$ c3epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 96E+proj=tmerc +lat_0=0 +lon_0=96 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 96E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",96],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2724"],AXIS["X",NORTH],AXIS["Y",EAST]] Q% c3epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 99E+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 99E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2725"],AXIS["X",NORTH],AXIS["Y",EAST]] U& e7epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 102E+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 102E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",102],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2726"],AXIS["X",NORTH],AXIS["Y",EAST]] U' e7epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 105E+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 105E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2727"],AXIS["X",NORTH],AXIS["Y",EAST]] U( e7epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 108E+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 108E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",108],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2728"],AXIS["X",NORTH],AXIS["Y",EAST]] U) e7epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 111E+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 111E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2729"],AXIS["X",NORTH],AXIS["Y",EAST]] U* e7epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 114E+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 114E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",114],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2730"],AXIS["X",NORTH],AXIS["Y",EAST]] U+ e7epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 117E+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 117E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2731"],AXIS["X",NORTH],AXIS["Y",EAST]] U, e7epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 120E+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 120E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",120],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2732"],AXIS["X",NORTH],AXIS["Y",EAST]] U- e7epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 123E+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 123E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2733"],AXIS["X",NORTH],AXIS["Y",EAST]] U. e7epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 126E+proj=tmerc +lat_0=0 +lon_0=126 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 126E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",126],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2734"],AXIS["X",NORTH],AXIS["Y",EAST]] U/ e7epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 129E+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 129E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2735"],AXIS["X",NORTH],AXIS["Y",EAST]] CC903Kepsg Tete / UTM zone 36S+proj=utm +zone=36 +south +ellps=clrk66 +units=m +no_defsPROJCS["Tete / UTM zone 36S",GEOGCS["Tete",DATUM["Tete",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6127"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4127"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2736"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] CC913Kepsg Tete / UTM zone 37S+proj=utm +zone=37 +south +ellps=clrk66 +units=m +no_defsPROJCS["Tete / UTM zone 37S",GEOGCS["Tete",DATUM["Tete",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6127"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4127"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2737"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] U2 e7epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 132E+proj=tmerc +lat_0=0 +lon_0=132 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 132E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",132],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2738"],AXIS["X",NORTH],AXIS["Y",EAST]] U3 e7epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 135E+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 135E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2739"],AXIS["X",NORTH],AXIS["Y",EAST]] U4 e7epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 138E+proj=tmerc +lat_0=0 +lon_0=138 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 138E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",138],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2740"],AXIS["X",NORTH],AXIS["Y",EAST]] U5 e7epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 141E+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 141E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",141],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2741"],AXIS["X",NORTH],AXIS["Y",EAST]] U6 e7epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 144E+proj=tmerc +lat_0=0 +lon_0=144 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 144E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",144],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2742"],AXIS["X",NORTH],AXIS["Y",EAST]] U7 e7epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 147E+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 147E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",147],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2743"],AXIS["X",NORTH],AXIS["Y",EAST]] U8 e7epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 150E+proj=tmerc +lat_0=0 +lon_0=150 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 150E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",150],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2744"],AXIS["X",NORTH],AXIS["Y",EAST]] U9 e7epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 153E+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 153E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",153],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2745"],AXIS["X",NORTH],AXIS["Y",EAST]] U: e7epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 156E+proj=tmerc +lat_0=0 +lon_0=156 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 156E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",156],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2746"],AXIS["X",NORTH],AXIS["Y",EAST]] U; e7epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 159E+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 159E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",159],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2747"],AXIS["X",NORTH],AXIS["Y",EAST]] U< e7epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 162E+proj=tmerc +lat_0=0 +lon_0=162 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 162E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",162],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2748"],AXIS["X",NORTH],AXIS["Y",EAST]] U= e7epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 165E+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 165E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2749"],AXIS["X",NORTH],AXIS["Y",EAST]] U> e7epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 168E+proj=tmerc +lat_0=0 +lon_0=168 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 168E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",168],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2750"],AXIS["X",NORTH],AXIS["Y",EAST]]of<flrx~ &,28>DJPV\bhntz "(.4:@FLRX^djpv|ʕ˕͕̕ΕϕЕѕҕӕՕ֕וٕؕڕ ە!ܕ"ݕ#ޕ$ߕ%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLM N O P Q RSTUVWXYZ[\]^_`abc d!e"f#g$h%i&j'k(l)m*n+o,p-q.r/s0t1u2v3w4x5y6z7{8|9}:~; U? e7epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 171E+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 171E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",171],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2751"],AXIS["X",NORTH],AXIS["Y",EAST]] U@ e7epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 174E+proj=tmerc +lat_0=0 +lon_0=174 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 174E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",174],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2752"],AXIS["X",NORTH],AXIS["Y",EAST]] UA e7epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 177E+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 177E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",177],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2753"],AXIS["X",NORTH],AXIS["Y",EAST]] UB e7epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 180E+proj=tmerc +lat_0=0 +lon_0=180 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 180E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",180],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2754"],AXIS["X",NORTH],AXIS["Y",EAST]] WC e9epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 177W+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 177W",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-177],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2755"],AXIS["X",NORTH],AXIS["Y",EAST]] WD e9epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 174W+proj=tmerc +lat_0=0 +lon_0=-174 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 174W",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-174],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2756"],AXIS["X",NORTH],AXIS["Y",EAST]] WE e9epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 171W+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 171W",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-171],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2757"],AXIS["X",NORTH],AXIS["Y",EAST]] WF e9epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 168W+proj=tmerc +lat_0=0 +lon_0=-168 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 168W",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-168],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2758"],AXIS["X",NORTH],AXIS["Y",EAST]] G Aiepsg NAD83(HARN) / Alabama East+proj=tmerc +lat_0=30.5 +lon_0=-85.83333333333333 +k=0.99996 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Alabama East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",30.5],PARAMETER["central_meridian",-85.83333333333333],PARAMETER["scale_factor",0.99996],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2759"],AXIS["X",EAST],AXIS["Y",NORTH]] H ASepsg NAD83(HARN) / Alabama West+proj=tmerc +lat_0=30 +lon_0=-87.5 +k=0.999933333 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Alabama West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",30],PARAMETER["central_meridian",-87.5],PARAMETER["scale_factor",0.999933333],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2760"],AXIS["X",EAST],AXIS["Y",NORTH]] I Acepsg NAD83(HARN) / Arizona East+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Arizona East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-110.1666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",213360],PARAMETER["false_northing",0],AUTHORITY["EPSG","2761"],AXIS["X",EAST],AXIS["Y",NORTH]] J Gcepsg NAD83(HARN) / Arizona Central+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Arizona Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-111.9166666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",213360],PARAMETER["false_northing",0],AUTHORITY["EPSG","2762"],AXIS["X",EAST],AXIS["Y",NORTH]]  K AWepsg NAD83(HARN) / Arizona West+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0=213360 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Arizona West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-113.75],PARAMETER["scale_factor",0.999933333],PARAMETER["false_easting",213360],PARAMETER["false_northing",0],AUTHORITY["EPSG","2763"],AXIS["X",EAST],AXIS["Y",NORTH]] pp L E/-epsg NAD83(HARN) / Arkansas North+proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=400000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Arkansas North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.23333333333333],PARAMETER["standard_parallel_2",34.93333333333333],PARAMETER["latitude_of_origin",34.33333333333334],PARAMETER["central_meridian",-92],PARAMETER["false_easting",400000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2764"],AXIS["X",EAST],AXIS["Y",NORTH]] |M Eepsg NAD83(HARN) / Arkansas South+proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32.66666666666666 +lon_0=-92 +x_0=400000 +y_0=400000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Arkansas South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",34.76666666666667],PARAMETER["standard_parallel_2",33.3],PARAMETER["latitude_of_origin",32.66666666666666],PARAMETER["central_meridian",-92],PARAMETER["false_easting",400000],PARAMETER["false_northing",400000],AUTHORITY["EPSG","2765"],AXIS["X",EAST],AXIS["Y",NORTH]] zzN K#epsg NAD83(HARN) / California zone 1+proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.33333333333334 +lon_0=-122 +x_0=2000000 +y_0=500000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / California zone 1",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.66666666666666],PARAMETER["standard_parallel_2",40],PARAMETER["latitude_of_origin",39.33333333333334],PARAMETER["central_meridian",-122],PARAMETER["false_easting",2000000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","2766"],AXIS["X",EAST],AXIS["Y",NORTH]] \\ O K=Aepsg NAD83(HARN) / California zone 2+proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000 +y_0=500000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / California zone 2",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.83333333333334],PARAMETER["standard_parallel_2",38.33333333333334],PARAMETER["latitude_of_origin",37.66666666666666],PARAMETER["central_meridian",-122],PARAMETER["false_easting",2000000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","2767"],AXIS["X",EAST],AXIS["Y",NORTH]] rr P K'+epsg NAD83(HARN) / California zone 3+proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666667 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000 +y_0=500000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / California zone 3",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.43333333333333],PARAMETER["standard_parallel_2",37.06666666666667],PARAMETER["latitude_of_origin",36.5],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","2768"],AXIS["X",EAST],AXIS["Y",NORTH]] jQ K epsg NAD83(HARN) / California zone 4+proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.33333333333334 +lon_0=-119 +x_0=2000000 +y_0=500000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / California zone 4",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.25],PARAMETER["standard_parallel_2",36],PARAMETER["latitude_of_origin",35.33333333333334],PARAMETER["central_meridian",-119],PARAMETER["false_easting",2000000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","2769"],AXIS["X",EAST],AXIS["Y",NORTH]] vvR K#'epsg NAD83(HARN) / California zone 5+proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333333 +lat_0=33.5 +lon_0=-118 +x_0=2000000 +y_0=500000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / California zone 5",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",35.46666666666667],PARAMETER["standard_parallel_2",34.03333333333333],PARAMETER["latitude_of_origin",33.5],PARAMETER["central_meridian",-118],PARAMETER["false_easting",2000000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","2770"],AXIS["X",EAST],AXIS["Y",NORTH]] VV&S KCGepsg NAD83(HARN) / California zone 6+proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000 +y_0=500000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / California zone 6",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",33.88333333333333],PARAMETER["standard_parallel_2",32.78333333333333],PARAMETER["latitude_of_origin",32.16666666666666],PARAMETER["central_meridian",-116.25],PARAMETER["false_easting",2000000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","2771"],AXIS["X",EAST],AXIS["Y",NORTH]] LL0T ESQepsg NAD83(HARN) / Colorado North+proj=lcc +lat_1=40.78333333333333 +lat_2=39.71666666666667 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Colorado North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.78333333333333],PARAMETER["standard_parallel_2",39.71666666666667],PARAMETER["latitude_of_origin",39.33333333333334],PARAMETER["central_meridian",-105.5],PARAMETER["false_easting",914401.8289],PARAMETER["false_northing",304800.6096],AUTHORITY["EPSG","2772"],AXIS["X",EAST],AXIS["Y",NORTH]] xxU I#%epsg NAD83(HARN) / Colorado Central+proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.83333333333334 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Colorado Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.75],PARAMETER["standard_parallel_2",38.45],PARAMETER["latitude_of_origin",37.83333333333334],PARAMETER["central_meridian",-105.5],PARAMETER["false_easting",914401.8289],PARAMETER["false_northing",304800.6096],AUTHORITY["EPSG","2773"],AXIS["X",EAST],AXIS["Y",NORTH]] LL0V ESQepsg NAD83(HARN) / Colorado South+proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Colorado South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.43333333333333],PARAMETER["standard_parallel_2",37.23333333333333],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-105.5],PARAMETER["false_easting",914401.8289],PARAMETER["false_northing",304800.6096],AUTHORITY["EPSG","2774"],AXIS["X",EAST],AXIS["Y",NORTH]] ;(5BO\iv,9FS`mz #0=JWdq~  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg llW ?91epsg NAD83(HARN) / Connecticut+proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40.83333333333334 +lon_0=-72.75 +x_0=304800.6096 +y_0=152400.3048 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Connecticut",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.86666666666667],PARAMETER["standard_parallel_2",41.2],PARAMETER["latitude_of_origin",40.83333333333334],PARAMETER["central_meridian",-72.75],PARAMETER["false_easting",304800.6096],PARAMETER["false_northing",152400.3048],AUTHORITY["EPSG","2775"],AXIS["X",EAST],AXIS["Y",NORTH]] X 9g epsg NAD83(HARN) / Delaware+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999995 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Delaware",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38],PARAMETER["central_meridian",-75.41666666666667],PARAMETER["scale_factor",0.999995],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2776"],AXIS["X",EAST],AXIS["Y",NORTH]] Y Amepsg NAD83(HARN) / Florida East+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999941177 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Florida East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",24.33333333333333],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2777"],AXIS["X",EAST],AXIS["Y",NORTH]] Z Amepsg NAD83(HARN) / Florida West+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999941177 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Florida West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",24.33333333333333],PARAMETER["central_meridian",-82],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2778"],AXIS["X",EAST],AXIS["Y",NORTH]] X[ C}yepsg NAD83(HARN) / Florida North+proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=29 +lon_0=-84.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Florida North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",30.75],PARAMETER["standard_parallel_2",29.58333333333333],PARAMETER["latitude_of_origin",29],PARAMETER["central_meridian",-84.5],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2779"],AXIS["X",EAST],AXIS["Y",NORTH]] \ Acepsg NAD83(HARN) / Georgia East+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.9999 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Georgia East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",30],PARAMETER["central_meridian",-82.16666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2780"],AXIS["X",EAST],AXIS["Y",NORTH]] ] Acepsg NAD83(HARN) / Georgia West+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.9999 +x_0=700000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Georgia West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",30],PARAMETER["central_meridian",-84.16666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",700000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2781"],AXIS["X",EAST],AXIS["Y",NORTH]] '^ Cs!epsg NAD83(HARN) / Hawaii zone 1+proj=tmerc +lat_0=18.83333333333333 +lon_0=-155.5 +k=0.999966667 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Hawaii zone 1",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",18.83333333333333],PARAMETER["central_meridian",-155.5],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2782"],AXIS["X",EAST],AXIS["Y",NORTH]] ?_ C 9epsg NAD83(HARN) / Hawaii zone 2+proj=tmerc +lat_0=20.33333333333333 +lon_0=-156.6666666666667 +k=0.999966667 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Hawaii zone 2",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",20.33333333333333],PARAMETER["central_meridian",-156.6666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2783"],AXIS["X",EAST],AXIS["Y",NORTH]] ` Cgepsg NAD83(HARN) / Hawaii zone 3+proj=tmerc +lat_0=21.16666666666667 +lon_0=-158 +k=0.99999 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Hawaii zone 3",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",21.16666666666667],PARAMETER["central_meridian",-158],PARAMETER["scale_factor",0.99999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2784"],AXIS["X",EAST],AXIS["Y",NORTH]] a Ckepsg NAD83(HARN) / Hawaii zone 4+proj=tmerc +lat_0=21.83333333333333 +lon_0=-159.5 +k=0.99999 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Hawaii zone 4",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",21.83333333333333],PARAMETER["central_meridian",-159.5],PARAMETER["scale_factor",0.99999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2785"],AXIS["X",EAST],AXIS["Y",NORTH]] +b Cw%epsg NAD83(HARN) / Hawaii zone 5+proj=tmerc +lat_0=21.66666666666667 +lon_0=-160.1666666666667 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Hawaii zone 5",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",21.66666666666667],PARAMETER["central_meridian",-160.1666666666667],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2786"],AXIS["X",EAST],AXIS["Y",NORTH]] @c =3epsg NAD83(HARN) / Idaho East+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666666667 +k=0.9999473679999999 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Idaho East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.66666666666666],PARAMETER["central_meridian",-112.1666666666667],PARAMETER["scale_factor",0.999947368],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2787"],AXIS["X",EAST],AXIS["Y",NORTH]] *d C}epsg NAD83(HARN) / Idaho Central+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.9999473679999999 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Idaho Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.66666666666666],PARAMETER["central_meridian",-114],PARAMETER["scale_factor",0.999947368],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2788"],AXIS["X",EAST],AXIS["Y",NORTH]] #e =uepsg NAD83(HARN) / Idaho West+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0.999933333 +x_0=800000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Idaho West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.66666666666666],PARAMETER["central_meridian",-115.75],PARAMETER["scale_factor",0.999933333],PARAMETER["false_easting",800000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2789"],AXIS["X",EAST],AXIS["Y",NORTH]] Cf C3epsg NAD83(HARN) / Illinois East+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333333333 +k=0.9999749999999999 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Illinois East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-88.33333333333333],PARAMETER["scale_factor",0.999975],PARAMETER["false_easting",300000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2790"],AXIS["X",EAST],AXIS["Y",NORTH]] ?g C 9epsg NAD83(HARN) / Illinois West+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666666667 +k=0.999941177 +x_0=700000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Illinois West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-90.16666666666667],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",700000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2791"],AXIS["X",EAST],AXIS["Y",NORTH]] -h A{'epsg NAD83(HARN) / Indiana East+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.999966667 +x_0=100000 +y_0=250000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Indiana East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",37.5],PARAMETER["central_meridian",-85.66666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",100000],PARAMETER["false_northing",250000],AUTHORITY["EPSG","2792"],AXIS["X",EAST],AXIS["Y",NORTH]] -i A{'epsg NAD83(HARN) / Indiana West+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.999966667 +x_0=900000 +y_0=250000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Indiana West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",37.5],PARAMETER["central_meridian",-87.08333333333333],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",900000],PARAMETER["false_northing",250000],AUTHORITY["EPSG","2793"],AXIS["X",EAST],AXIS["Y",NORTH]] |j ='epsg NAD83(HARN) / Iowa North+proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666667 +lat_0=41.5 +lon_0=-93.5 +x_0=1500000 +y_0=1000000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Iowa North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43.26666666666667],PARAMETER["standard_parallel_2",42.06666666666667],PARAMETER["latitude_of_origin",41.5],PARAMETER["central_meridian",-93.5],PARAMETER["false_easting",1500000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","2794"],AXIS["X",EAST],AXIS["Y",NORTH]] jk = epsg NAD83(HARN) / Iowa South+proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666667 +lat_0=40 +lon_0=-93.5 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Iowa South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.78333333333333],PARAMETER["standard_parallel_2",40.61666666666667],PARAMETER["latitude_of_origin",40],PARAMETER["central_meridian",-93.5],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2795"],AXIS["X",EAST],AXIS["Y",NORTH]] ttl A/)epsg NAD83(HARN) / Kansas North+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=400000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Kansas North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.78333333333333],PARAMETER["standard_parallel_2",38.71666666666667],PARAMETER["latitude_of_origin",38.33333333333334],PARAMETER["central_meridian",-98],PARAMETER["false_easting",400000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2796"],AXIS["X",EAST],AXIS["Y",NORTH]] ffm A=7epsg NAD83(HARN) / Kansas South+proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=400000 +y_0=400000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Kansas South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.56666666666667],PARAMETER["standard_parallel_2",37.26666666666667],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-98.5],PARAMETER["false_easting",400000],PARAMETER["false_northing",400000],AUTHORITY["EPSG","2797"],AXIS["X",EAST],AXIS["Y",NORTH]] xn Eepsg NAD83(HARN) / Kentucky North+proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Kentucky North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.96666666666667],PARAMETER["standard_parallel_2",38.96666666666667],PARAMETER["latitude_of_origin",37.5],PARAMETER["central_meridian",-84.25],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2798"],AXIS["X",EAST],AXIS["Y",NORTH]] ``o E?=epsg NAD83(HARN) / Kentucky South+proj=lcc +lat_1=37.93333333333333 +lat_2=36.73333333333333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000 +y_0=500000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Kentucky South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.93333333333333],PARAMETER["standard_parallel_2",36.73333333333333],PARAMETER["latitude_of_origin",36.33333333333334],PARAMETER["central_meridian",-85.75],PARAMETER["false_easting",500000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","2799"],AXIS["X",EAST],AXIS["Y",NORTH]] zp Gepsg NAD83(HARN) / Louisiana North+proj=lcc +lat_1=32.66666666666666 +lat_2=31.16666666666667 +lat_0=30.5 +lon_0=-92.5 +x_0=1000000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Louisiana North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",32.66666666666666],PARAMETER["standard_parallel_2",31.16666666666667],PARAMETER["latitude_of_origin",30.5],PARAMETER["central_meridian",-92.5],PARAMETER["false_easting",1000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2800"],AXIS["X",EAST],AXIS["Y",NORTH]] `q Gepsg NAD83(HARN) / Louisiana South+proj=lcc +lat_1=30.7 +lat_2=29.3 +lat_0=28.5 +lon_0=-91.33333333333333 +x_0=1000000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Louisiana South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",30.7],PARAMETER["standard_parallel_2",29.3],PARAMETER["latitude_of_origin",28.5],PARAMETER["central_meridian",-91.33333333333333],PARAMETER["false_easting",1000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2801"],AXIS["X",EAST],AXIS["Y",NORTH]] r =gepsg NAD83(HARN) / Maine East+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9999 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Maine East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",43.66666666666666],PARAMETER["central_meridian",-68.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",300000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2802"],AXIS["X",EAST],AXIS["Y",NORTH]] 9s = 3epsg NAD83(HARN) / Maine West+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Maine West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",42.83333333333334],PARAMETER["central_meridian",-70.16666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",900000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2803"],AXIS["X",EAST],AXIS["Y",NORTH]] Nt 9}oepsg NAD83(HARN) / Maryland+proj=lcc +lat_1=39.45 +lat_2=38.3 +lat_0=37.66666666666666 +lon_0=-77 +x_0=400000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Maryland",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.45],PARAMETER["standard_parallel_2",38.3],PARAMETER["latitude_of_origin",37.66666666666666],PARAMETER["central_meridian",-77],PARAMETER["false_easting",400000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2804"],AXIS["X",EAST],AXIS["Y",NORTH]] pp u U-epsg NAD83(HARN) / Massachusetts Mainland+proj=lcc +lat_1=42.68333333333333 +lat_2=41.71666666666667 +lat_0=41 +lon_0=-71.5 +x_0=200000 +y_0=750000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Massachusetts Mainland",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",42.68333333333333],PARAMETER["standard_parallel_2",41.71666666666667],PARAMETER["latitude_of_origin",41],PARAMETER["central_meridian",-71.5],PARAMETER["false_easting",200000],PARAMETER["false_northing",750000],AUTHORITY["EPSG","2805"],AXIS["X",EAST],AXIS["Y",NORTH]] ~~~v Qepsg NAD83(HARN) / Massachusetts Island+proj=lcc +lat_1=41.48333333333333 +lat_2=41.28333333333333 +lat_0=41 +lon_0=-70.5 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Massachusetts Island",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.48333333333333],PARAMETER["standard_parallel_2",41.28333333333333],PARAMETER["latitude_of_origin",41],PARAMETER["central_meridian",-70.5],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2806"],AXIS["X",EAST],AXIS["Y",NORTH]] nnw E1/epsg NAD83(HARN) / Michigan North+proj=lcc +lat_1=47.08333333333334 +lat_2=45.48333333333333 +lat_0=44.78333333333333 +lon_0=-87 +x_0=8000000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Michigan North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.08333333333334],PARAMETER["standard_parallel_2",45.48333333333333],PARAMETER["latitude_of_origin",44.78333333333333],PARAMETER["central_meridian",-87],PARAMETER["false_easting",8000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2807"],AXIS["X",EAST],AXIS["Y",NORTH]] ffx I57epsg NAD83(HARN) / Michigan Central+proj=lcc +lat_1=45.7 +lat_2=44.18333333333333 +lat_0=43.31666666666667 +lon_0=-84.36666666666666 +x_0=6000000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Michigan Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.7],PARAMETER["standard_parallel_2",44.18333333333333],PARAMETER["latitude_of_origin",43.31666666666667],PARAMETER["central_meridian",-84.36666666666666],PARAMETER["false_easting",6000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2808"],AXIS["X",EAST],AXIS["Y",NORTH]] xy Eepsg NAD83(HARN) / Michigan South+proj=lcc +lat_1=43.66666666666666 +lat_2=42.1 +lat_0=41.5 +lon_0=-84.36666666666666 +x_0=4000000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Michigan South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43.66666666666666],PARAMETER["standard_parallel_2",42.1],PARAMETER["latitude_of_origin",41.5],PARAMETER["central_meridian",-84.36666666666666],PARAMETER["false_easting",4000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2809"],AXIS["X",EAST],AXIS["Y",NORTH]] mmz G=#epsg NAD83(HARN) / Minnesota North+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000 +y_0=100000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Minnesota North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",48.63333333333333],PARAMETER["standard_parallel_2",47.03333333333333],PARAMETER["latitude_of_origin",46.5],PARAMETER["central_meridian",-93.1],PARAMETER["false_easting",800000],PARAMETER["false_northing",100000],AUTHORITY["EPSG","2810"],AXIS["X",EAST],AXIS["Y",NORTH]] l{ K epsg NAD83(HARN) / Minnesota Central+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=45 +lon_0=-94.25 +x_0=800000 +y_0=100000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Minnesota Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.05],PARAMETER["standard_parallel_2",45.61666666666667],PARAMETER["latitude_of_origin",45],PARAMETER["central_meridian",-94.25],PARAMETER["false_easting",800000],PARAMETER["false_northing",100000],AUTHORITY["EPSG","2811"],AXIS["X",EAST],AXIS["Y",NORTH]] z| Gepsg NAD83(HARN) / Minnesota South+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333333 +lat_0=43 +lon_0=-94 +x_0=800000 +y_0=100000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Minnesota South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.21666666666667],PARAMETER["standard_parallel_2",43.78333333333333],PARAMETER["latitude_of_origin",43],PARAMETER["central_meridian",-94],PARAMETER["false_easting",800000],PARAMETER["false_northing",100000],AUTHORITY["EPSG","2812"],AXIS["X",EAST],AXIS["Y",NORTH]] #} Iiepsg NAD83(HARN) / Mississippi East+proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.99995 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Mississippi East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",29.5],PARAMETER["central_meridian",-88.83333333333333],PARAMETER["scale_factor",0.99995],PARAMETER["false_easting",300000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2813"],AXIS["X",EAST],AXIS["Y",NORTH]] #~ Iiepsg NAD83(HARN) / Mississippi West+proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.99995 +x_0=700000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Mississippi West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",29.5],PARAMETER["central_meridian",-90.33333333333333],PARAMETER["scale_factor",0.99995],PARAMETER["false_easting",700000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2814"],AXIS["X",EAST],AXIS["Y",NORTH]] % Cqepsg NAD83(HARN) / Missouri East+proj=tmerc +lat_0=35.83333333333334 +lon_0=-90.5 +k=0.999933333 +x_0=250000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Missouri East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",35.83333333333334],PARAMETER["central_meridian",-90.5],PARAMETER["scale_factor",0.999933333],PARAMETER["false_easting",250000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2815"],AXIS["X",EAST],AXIS["Y",NORTH]] + Iq%epsg NAD83(HARN) / Missouri Central+proj=tmerc +lat_0=35.83333333333334 +lon_0=-92.5 +k=0.999933333 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Missouri Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",35.83333333333334],PARAMETER["central_meridian",-92.5],PARAMETER["scale_factor",0.999933333],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2816"],AXIS["X",EAST],AXIS["Y",NORTH]] % Cqepsg NAD83(HARN) / Missouri West+proj=tmerc +lat_0=36.16666666666666 +lon_0=-94.5 +k=0.999941177 +x_0=850000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Missouri West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36.16666666666666],PARAMETER["central_meridian",-94.5],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",850000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2817"],AXIS["X",EAST],AXIS["Y",NORTH]] 0 7aQepsg NAD83(HARN) / Montana+proj=lcc +lat_1=49 +lat_2=45 +lat_0=44.25 +lon_0=-109.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Montana",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",49],PARAMETER["standard_parallel_2",45],PARAMETER["latitude_of_origin",44.25],PARAMETER["central_meridian",-109.5],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2818"],AXIS["X",EAST],AXIS["Y",NORTH]] F 9ugepsg NAD83(HARN) / Nebraska+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +lon_0=-100 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Nebraska",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43],PARAMETER["standard_parallel_2",40],PARAMETER["latitude_of_origin",39.83333333333334],PARAMETER["central_meridian",-100],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2819"],AXIS["X",EAST],AXIS["Y",NORTH]] % ?uepsg NAD83(HARN) / Nevada East+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0.9999 +x_0=200000 +y_0=8000000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Nevada East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",34.75],PARAMETER["central_meridian",-115.5833333333333],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",200000],PARAMETER["false_northing",8000000],AUTHORITY["EPSG","2820"],AXIS["X",EAST],AXIS["Y",NORTH]] + Eu%epsg NAD83(HARN) / Nevada Central+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0.9999 +x_0=500000 +y_0=6000000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Nevada Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",34.75],PARAMETER["central_meridian",-116.6666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",6000000],AUTHORITY["EPSG","2821"],AXIS["X",EAST],AXIS["Y",NORTH]] % ?uepsg NAD83(HARN) / Nevada West+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0.9999 +x_0=800000 +y_0=4000000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Nevada West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",34.75],PARAMETER["central_meridian",-118.5833333333333],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",800000],PARAMETER["false_northing",4000000],AUTHORITY["EPSG","2822"],AXIS["X",EAST],AXIS["Y",NORTH]] % Cqepsg NAD83(HARN) / New Hampshire+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.999966667 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / New Hampshire",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",42.5],PARAMETER["central_meridian",-71.66666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",300000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2823"],AXIS["X",EAST],AXIS["Y",NORTH]]  =gepsg NAD83(HARN) / New Jersey+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / New Jersey",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38.83333333333334],PARAMETER["central_meridian",-74.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",150000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2824"],AXIS["X",EAST],AXIS["Y",NORTH]] % Gmepsg NAD83(HARN) / New Mexico East+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999909091 +x_0=165000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / New Mexico East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-104.3333333333333],PARAMETER["scale_factor",0.999909091],PARAMETER["false_easting",165000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2825"],AXIS["X",EAST],AXIS["Y",NORTH]]  MMepsg NAD83(HARN) / New Mexico Central+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / New Mexico Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-106.25],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2826"],AXIS["X",EAST],AXIS["Y",NORTH]] % Gmepsg NAD83(HARN) / New Mexico West+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999916667 +x_0=830000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / New Mexico West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-107.8333333333333],PARAMETER["scale_factor",0.999916667],PARAMETER["false_easting",830000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2827"],AXIS["X",EAST],AXIS["Y",NORTH]]  Cgepsg NAD83(HARN) / New York East+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / New York East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38.83333333333334],PARAMETER["central_meridian",-74.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",150000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2828"],AXIS["X",EAST],AXIS["Y",NORTH]] # Iiepsg NAD83(HARN) / New York Central+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.9999375 +x_0=250000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / New York Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40],PARAMETER["central_meridian",-76.58333333333333],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",250000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2829"],AXIS["X",EAST],AXIS["Y",NORTH]]  Ciepsg NAD83(HARN) / New York West+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.9999375 +x_0=350000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / New York West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40],PARAMETER["central_meridian",-78.58333333333333],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",350000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2830"],AXIS["X",EAST],AXIS["Y",NORTH]] dd Q/9epsg NAD83(HARN) / New York Long Island+proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666666 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / New York Long Island",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.03333333333333],PARAMETER["standard_parallel_2",40.66666666666666],PARAMETER["latitude_of_origin",40.16666666666666],PARAMETER["central_meridian",-74],PARAMETER["false_easting",300000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2831"],AXIS["X",EAST],AXIS["Y",NORTH]] | Mepsg NAD83(HARN) / North Dakota North+proj=lcc +lat_1=48.73333333333333 +lat_2=47.43333333333333 +lat_0=47 +lon_0=-100.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / North Dakota North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",48.73333333333333],PARAMETER["standard_parallel_2",47.43333333333333],PARAMETER["latitude_of_origin",47],PARAMETER["central_meridian",-100.5],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2832"],AXIS["X",EAST],AXIS["Y",NORTH]] bb M5;epsg NAD83(HARN) / North Dakota South+proj=lcc +lat_1=47.48333333333333 +lat_2=46.18333333333333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / North Dakota South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.48333333333333],PARAMETER["standard_parallel_2",46.18333333333333],PARAMETER["latitude_of_origin",45.66666666666666],PARAMETER["central_meridian",-100.5],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2833"],AXIS["X",EAST],AXIS["Y",NORTH]] n =epsg NAD83(HARN) / Ohio North+proj=lcc +lat_1=41.7 +lat_2=40.43333333333333 +lat_0=39.66666666666666 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Ohio North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.7],PARAMETER["standard_parallel_2",40.43333333333333],PARAMETER["latitude_of_origin",39.66666666666666],PARAMETER["central_meridian",-82.5],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2834"],AXIS["X",EAST],AXIS["Y",NORTH]] ;(5BO\iv,9FS`mz #0=JWdq~  epsg  epsg  epsg  epsg  epsg  epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg  epsg  epsg  epsg  epsg  epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg  !epsg !  "epsg "  #epsg #  $epsg $  %epsg %  &epsg &  'epsg '  (epsg (  )epsg )  *epsg *  +epsg +  ,epsg ,  -epsg -  .epsg .  /epsg /  0epsg 0  1epsg 1  2epsg 2  3epsg 3  4epsg 4  5epsg 5  6epsg 6 j = epsg NAD83(HARN) / Ohio South+proj=lcc +lat_1=40.03333333333333 +lat_2=38.73333333333333 +lat_0=38 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Ohio South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.03333333333333],PARAMETER["standard_parallel_2",38.73333333333333],PARAMETER["latitude_of_origin",38],PARAMETER["central_meridian",-82.5],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2835"],AXIS["X",EAST],AXIS["Y",NORTH]] n Eepsg NAD83(HARN) / Oklahoma North+proj=lcc +lat_1=36.76666666666667 +lat_2=35.56666666666667 +lat_0=35 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Oklahoma North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.76666666666667],PARAMETER["standard_parallel_2",35.56666666666667],PARAMETER["latitude_of_origin",35],PARAMETER["central_meridian",-98],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2836"],AXIS["X",EAST],AXIS["Y",NORTH]] pp  E/-epsg NAD83(HARN) / Oklahoma South+proj=lcc +lat_1=35.23333333333333 +lat_2=33.93333333333333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Oklahoma South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",35.23333333333333],PARAMETER["standard_parallel_2",33.93333333333333],PARAMETER["latitude_of_origin",33.33333333333334],PARAMETER["central_meridian",-98],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2837"],AXIS["X",EAST],AXIS["Y",NORTH]] r Aepsg NAD83(HARN) / Oregon North+proj=lcc +lat_1=46 +lat_2=44.33333333333334 +lat_0=43.66666666666666 +lon_0=-120.5 +x_0=2500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Oregon North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",46],PARAMETER["standard_parallel_2",44.33333333333334],PARAMETER["latitude_of_origin",43.66666666666666],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",2500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2838"],AXIS["X",EAST],AXIS["Y",NORTH]] r Aepsg NAD83(HARN) / Oregon South+proj=lcc +lat_1=44 +lat_2=42.33333333333334 +lat_0=41.66666666666666 +lon_0=-120.5 +x_0=1500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Oregon South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",44],PARAMETER["standard_parallel_2",42.33333333333334],PARAMETER["latitude_of_origin",41.66666666666666],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",1500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2839"],AXIS["X",EAST],AXIS["Y",NORTH]] ! Aoepsg NAD83(HARN) / Rhode Island+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.99999375 +x_0=100000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Rhode Island",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.08333333333334],PARAMETER["central_meridian",-71.5],PARAMETER["scale_factor",0.99999375],PARAMETER["false_easting",100000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2840"],AXIS["X",EAST],AXIS["Y",NORTH]] ff M17epsg NAD83(HARN) / South Dakota North+proj=lcc +lat_1=45.68333333333333 +lat_2=44.41666666666666 +lat_0=43.83333333333334 +lon_0=-100 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / South Dakota North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.68333333333333],PARAMETER["standard_parallel_2",44.41666666666666],PARAMETER["latitude_of_origin",43.83333333333334],PARAMETER["central_meridian",-100],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2841"],AXIS["X",EAST],AXIS["Y",NORTH]] dd M39epsg NAD83(HARN) / South Dakota South+proj=lcc +lat_1=44.4 +lat_2=42.83333333333334 +lat_0=42.33333333333334 +lon_0=-100.3333333333333 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / South Dakota South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",44.4],PARAMETER["standard_parallel_2",42.83333333333334],PARAMETER["latitude_of_origin",42.33333333333334],PARAMETER["central_meridian",-100.3333333333333],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2842"],AXIS["X",EAST],AXIS["Y",NORTH]] j ; epsg NAD83(HARN) / Tennessee+proj=lcc +lat_1=36.41666666666666 +lat_2=35.25 +lat_0=34.33333333333334 +lon_0=-86 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Tennessee",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.41666666666666],PARAMETER["standard_parallel_2",35.25],PARAMETER["latitude_of_origin",34.33333333333334],PARAMETER["central_meridian",-86],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2843"],AXIS["X",EAST],AXIS["Y",NORTH]] b ? epsg NAD83(HARN) / Texas North+proj=lcc +lat_1=36.18333333333333 +lat_2=34.65 +lat_0=34 +lon_0=-101.5 +x_0=200000 +y_0=1000000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Texas North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.18333333333333],PARAMETER["standard_parallel_2",34.65],PARAMETER["latitude_of_origin",34],PARAMETER["central_meridian",-101.5],PARAMETER["false_easting",200000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","2844"],AXIS["X",EAST],AXIS["Y",NORTH]] VV& O?Gepsg NAD83(HARN) / Texas North Central+proj=lcc +lat_1=33.96666666666667 +lat_2=32.13333333333333 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000 +y_0=2000000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Texas North Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",33.96666666666667],PARAMETER["standard_parallel_2",32.13333333333333],PARAMETER["latitude_of_origin",31.66666666666667],PARAMETER["central_meridian",-98.5],PARAMETER["false_easting",600000],PARAMETER["false_northing",2000000],AUTHORITY["EPSG","2845"],AXIS["X",EAST],AXIS["Y",NORTH]] HH4 CYUepsg NAD83(HARN) / Texas Central+proj=lcc +lat_1=31.88333333333333 +lat_2=30.11666666666667 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +x_0=700000 +y_0=3000000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Texas Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",31.88333333333333],PARAMETER["standard_parallel_2",30.11666666666667],PARAMETER["latitude_of_origin",29.66666666666667],PARAMETER["central_meridian",-100.3333333333333],PARAMETER["false_easting",700000],PARAMETER["false_northing",3000000],AUTHORITY["EPSG","2846"],AXIS["X",EAST],AXIS["Y",NORTH]] ZZ" O;Cepsg NAD83(HARN) / Texas South Central+proj=lcc +lat_1=30.28333333333333 +lat_2=28.38333333333333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0=4000000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Texas South Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",30.28333333333333],PARAMETER["standard_parallel_2",28.38333333333333],PARAMETER["latitude_of_origin",27.83333333333333],PARAMETER["central_meridian",-99],PARAMETER["false_easting",600000],PARAMETER["false_northing",4000000],AUTHORITY["EPSG","2847"],AXIS["X",EAST],AXIS["Y",NORTH]] ff ??7epsg NAD83(HARN) / Texas South+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666667 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=300000 +y_0=5000000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Texas South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",27.83333333333333],PARAMETER["standard_parallel_2",26.16666666666667],PARAMETER["latitude_of_origin",25.66666666666667],PARAMETER["central_meridian",-98.5],PARAMETER["false_easting",300000],PARAMETER["false_northing",5000000],AUTHORITY["EPSG","2848"],AXIS["X",EAST],AXIS["Y",NORTH]] ff! =A7epsg !NAD83(HARN) / Utah North+proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000 +y_0=1000000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Utah North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.78333333333333],PARAMETER["standard_parallel_2",40.71666666666667],PARAMETER["latitude_of_origin",40.33333333333334],PARAMETER["central_meridian",-111.5],PARAMETER["false_easting",500000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","2849"],AXIS["X",EAST],AXIS["Y",NORTH]] zz" A)#epsg "NAD83(HARN) / Utah Central+proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=38.33333333333334 +lon_0=-111.5 +x_0=500000 +y_0=2000000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Utah Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.65],PARAMETER["standard_parallel_2",39.01666666666667],PARAMETER["latitude_of_origin",38.33333333333334],PARAMETER["central_meridian",-111.5],PARAMETER["false_easting",500000],PARAMETER["false_northing",2000000],AUTHORITY["EPSG","2850"],AXIS["X",EAST],AXIS["Y",NORTH]] ~~~# =)epsg #NAD83(HARN) / Utah South+proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=36.66666666666666 +lon_0=-111.5 +x_0=500000 +y_0=3000000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Utah South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.35],PARAMETER["standard_parallel_2",37.21666666666667],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-111.5],PARAMETER["false_easting",500000],PARAMETER["false_northing",3000000],AUTHORITY["EPSG","2851"],AXIS["X",EAST],AXIS["Y",NORTH]] $ 7Wyepsg $NAD83(HARN) / Vermont+proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964286 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Vermont",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",42.5],PARAMETER["central_meridian",-72.5],PARAMETER["scale_factor",0.999964286],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2852"],AXIS["X",EAST],AXIS["Y",NORTH]] xx% E'%epsg %NAD83(HARN) / Virginia North+proj=lcc +lat_1=39.2 +lat_2=38.03333333333333 +lat_0=37.66666666666666 +lon_0=-78.5 +x_0=3500000 +y_0=2000000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Virginia North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.2],PARAMETER["standard_parallel_2",38.03333333333333],PARAMETER["latitude_of_origin",37.66666666666666],PARAMETER["central_meridian",-78.5],PARAMETER["false_easting",3500000],PARAMETER["false_northing",2000000],AUTHORITY["EPSG","2853"],AXIS["X",EAST],AXIS["Y",NORTH]] ^^& EA?epsg &NAD83(HARN) / Virginia South+proj=lcc +lat_1=37.96666666666667 +lat_2=36.76666666666667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3500000 +y_0=1000000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Virginia South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.96666666666667],PARAMETER["standard_parallel_2",36.76666666666667],PARAMETER["latitude_of_origin",36.33333333333334],PARAMETER["central_meridian",-78.5],PARAMETER["false_easting",3500000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","2854"],AXIS["X",EAST],AXIS["Y",NORTH]] v' Iepsg 'NAD83(HARN) / Washington North+proj=lcc +lat_1=48.73333333333333 +lat_2=47.5 +lat_0=47 +lon_0=-120.8333333333333 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Washington North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",48.73333333333333],PARAMETER["standard_parallel_2",47.5],PARAMETER["latitude_of_origin",47],PARAMETER["central_meridian",-120.8333333333333],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2855"],AXIS["X",EAST],AXIS["Y",NORTH]] ff( I57epsg (NAD83(HARN) / Washington South+proj=lcc +lat_1=47.33333333333334 +lat_2=45.83333333333334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Washington South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.33333333333334],PARAMETER["standard_parallel_2",45.83333333333334],PARAMETER["latitude_of_origin",45.33333333333334],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2856"],AXIS["X",EAST],AXIS["Y",NORTH]] J) Ockepsg )NAD83(HARN) / West Virginia North+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / West Virginia North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.25],PARAMETER["standard_parallel_2",39],PARAMETER["latitude_of_origin",38.5],PARAMETER["central_meridian",-79.5],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2857"],AXIS["X",EAST],AXIS["Y",NORTH]] x* Oepsg *NAD83(HARN) / West Virginia South+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / West Virginia South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.88333333333333],PARAMETER["standard_parallel_2",37.48333333333333],PARAMETER["latitude_of_origin",37],PARAMETER["central_meridian",-81],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2858"],AXIS["X",EAST],AXIS["Y",NORTH]] nn+ G//epsg +NAD83(HARN) / Wisconsin North+proj=lcc +lat_1=46.76666666666667 +lat_2=45.56666666666667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Wisconsin North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",46.76666666666667],PARAMETER["standard_parallel_2",45.56666666666667],PARAMETER["latitude_of_origin",45.16666666666666],PARAMETER["central_meridian",-90],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2859"],AXIS["X",EAST],AXIS["Y",NORTH]] `, K}epsg ,NAD83(HARN) / Wisconsin Central+proj=lcc +lat_1=45.5 +lat_2=44.25 +lat_0=43.83333333333334 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Wisconsin Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.5],PARAMETER["standard_parallel_2",44.25],PARAMETER["latitude_of_origin",43.83333333333334],PARAMETER["central_meridian",-90],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2860"],AXIS["X",EAST],AXIS["Y",NORTH]] p- Gepsg -NAD83(HARN) / Wisconsin South+proj=lcc +lat_1=44.06666666666667 +lat_2=42.73333333333333 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Wisconsin South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",44.06666666666667],PARAMETER["standard_parallel_2",42.73333333333333],PARAMETER["latitude_of_origin",42],PARAMETER["central_meridian",-90],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2861"],AXIS["X",EAST],AXIS["Y",NORTH]] . Amepsg .NAD83(HARN) / Wyoming East+proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.9999375 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Wyoming East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40.5],PARAMETER["central_meridian",-105.1666666666667],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2862"],AXIS["X",EAST],AXIS["Y",NORTH]]offlrx~ &,28>DJPV\bhntz "(.4:@FLRX^djpv|=>?@ABCDE F G H I JKLMNPQRSTUVWXYZ[\] ^!_"`#a$b%c&d'e(f)g*h+i,j-k.m/n0o1p2q3r4s5t6v7w8x9y:{<}=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdfghijklmnopq 9/ Qw3epsg /NAD83(HARN) / Wyoming East Central+proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.9999375 +x_0=400000 +y_0=100000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Wyoming East Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40.5],PARAMETER["central_meridian",-107.3333333333333],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",400000],PARAMETER["false_northing",100000],AUTHORITY["EPSG","2863"],AXIS["X",EAST],AXIS["Y",NORTH]] 0 QWepsg 0NAD83(HARN) / Wyoming West Central+proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.9999375 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Wyoming West Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40.5],PARAMETER["central_meridian",-108.75],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2864"],AXIS["X",EAST],AXIS["Y",NORTH]] )1 Aw#epsg 1NAD83(HARN) / Wyoming West+proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.9999375 +x_0=800000 +y_0=100000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Wyoming West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40.5],PARAMETER["central_meridian",-110.0833333333333],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",800000],PARAMETER["false_northing",100000],AUTHORITY["EPSG","2865"],AXIS["X",EAST],AXIS["Y",NORTH]] 00L2 ]Wmepsg 2NAD83(HARN) / Puerto Rico and Virgin Is.+proj=lcc +lat_1=18.43333333333333 +lat_2=18.03333333333333 +lat_0=17.83333333333333 +lon_0=-66.43333333333334 +x_0=200000 +y_0=200000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Puerto Rico and Virgin Is.",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",18.43333333333333],PARAMETER["standard_parallel_2",18.03333333333333],PARAMETER["latitude_of_origin",17.83333333333333],PARAMETER["central_meridian",-66.43333333333334],PARAMETER["false_easting",200000],PARAMETER["false_northing",200000],AUTHORITY["EPSG","2866"],AXIS["X",EAST],AXIS["Y",NORTH]] $3 Ke!epsg 3NAD83(HARN) / Arizona East (ft)+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +units=ft +no_defsPROJCS["NAD83(HARN) / Arizona East (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-110.1666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",700000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2867"],AXIS["X",EAST],AXIS["Y",NORTH]] *4 Qe'epsg 4NAD83(HARN) / Arizona Central (ft)+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +units=ft +no_defsPROJCS["NAD83(HARN) / Arizona Central (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-111.9166666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",700000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2868"],AXIS["X",EAST],AXIS["Y",NORTH]] 5 KYepsg 5NAD83(HARN) / Arizona West (ft)+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0=213360 +y_0=0 +ellps=GRS80 +units=ft +no_defsPROJCS["NAD83(HARN) / Arizona West (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-113.75],PARAMETER["scale_factor",0.999933333],PARAMETER["false_easting",700000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2869"],AXIS["X",EAST],AXIS["Y",NORTH]] 22J6 YMwepsg 6NAD83(HARN) / California zone 1 (ftUS)+proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.33333333333334 +lon_0=-122 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / California zone 1 (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.66666666666666],PARAMETER["standard_parallel_2",40],PARAMETER["latitude_of_origin",39.33333333333334],PARAMETER["central_meridian",-122],PARAMETER["false_easting",6561666.667],PARAMETER["false_northing",1640416.667],AUTHORITY["EPSG","2870"],AXIS["X",EAST],AXIS["Y",NORTH]]333333334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / California zone 2 (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.83333333333334],PARAMETER["standard_parallel_2",38.33333333333334],PARAMETER["latitude_of_origin",37.66666666666666],PARAMETER["central_meridian",-122],PARAMETER["false_easting",6561666.667],PARAMETER["false_northing",1640416.667],AUTHORITY["EPSG","2871"],AXIS["X",EAST],AXIS["Y",NORTH]] h7 Ykepsg 7NAD83(HARN) / California zone 2 (ftUS)+proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333u **R8 YUepsg 8NAD83(HARN) / California zone 3 (ftUS)+proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666667 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / California zone 3 (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.43333333333333],PARAMETER["standard_parallel_2",37.06666666666667],PARAMETER["latitude_of_origin",36.5],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",6561666.667],PARAMETER["false_northing",1640416.667],AUTHORITY["EPSG","2872"],AXIS["X",EAST],AXIS["Y",NORTH]] JJ29 Y5_epsg 9NAD83(HARN) / California zone 4 (ftUS)+proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.33333333333334 +lon_0=-119 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / California zone 4 (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.25],PARAMETER["standard_parallel_2",36],PARAMETER["latitude_of_origin",35.33333333333334],PARAMETER["central_meridian",-119],PARAMETER["false_easting",6561666.667],PARAMETER["false_northing",1640416.667],AUTHORITY["EPSG","2873"],AXIS["X",EAST],AXIS["Y",NORTH]] ..N: YQ{epsg :NAD83(HARN) / California zone 5 (ftUS)+proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333333 +lat_0=33.5 +lon_0=-118 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / California zone 5 (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",35.46666666666667],PARAMETER["standard_parallel_2",34.03333333333333],PARAMETER["latitude_of_origin",33.5],PARAMETER["central_meridian",-118],PARAMETER["false_easting",6561666.667],PARAMETER["false_northing",1640416.667],AUTHORITY["EPSG","2874"],AXIS["X",EAST],AXIS["Y",NORTH]]333333333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / California zone 6 (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",33.88333333333333],PARAMETER["standard_parallel_2",32.78333333333333],PARAMETER["latitude_of_origin",32.16666666666666],PARAMETER["central_meridian",-116.25],PARAMETER["false_easting",6561666.667],PARAMETER["false_northing",1640416.667],AUTHORITY["EPSG","2875"],AXIS["X",EAST],AXIS["Y",NORTH]] ""`< Ssepsg Ssepsg >NAD83(HARN) / Colorado South (ftUS)+proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333~ ==?? MYaepsg ?NAD83(HARN) / Connecticut (ftUS)+proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40.83333333333334 +lon_0=-72.75 +x_0=304800.6096012192 +y_0=152400.3048006096 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Connecticut (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.86666666666667],PARAMETER["standard_parallel_2",41.2],PARAMETER["latitude_of_origin",40.83333333333334],PARAMETER["central_meridian",-72.75],PARAMETER["false_easting",1000000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","2879"],AXIS["X",EAST],AXIS["Y",NORTH]] L@ GUepsg @NAD83(HARN) / Delaware (ftUS)+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999995 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Delaware (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38],PARAMETER["central_meridian",-75.41666666666667],PARAMETER["scale_factor",0.999995],PARAMETER["false_easting",656166.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","2880"],AXIS["X",EAST],AXIS["Y",NORTH]] ZA O cepsg ANAD83(HARN) / Florida East (ftUS)+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999941177 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Florida East (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",24.33333333333333],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",656166.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","2881"],AXIS["X",EAST],AXIS["Y",NORTH]] ZB O cepsg BNAD83(HARN) / Florida West (ftUS)+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999941177 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Florida West (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",24.33333333333333],PARAMETER["central_meridian",-82],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",656166.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","2882"],AXIS["X",EAST],AXIS["Y",NORTH]] wwC Q=epsg CNAD83(HARN) / Florida North (ftUS)+proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=29 +lon_0=-84.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Florida North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",30.75],PARAMETER["standard_parallel_2",29.58333333333333],PARAMETER["latitude_of_origin",29],PARAMETER["central_meridian",-84.5],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","2883"],AXIS["X",EAST],AXIS["Y",NORTH]] PD OYepsg DNAD83(HARN) / Georgia East (ftUS)+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.9999 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Georgia East (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",30],PARAMETER["central_meridian",-82.16666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",656166.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","2884"],AXIS["X",EAST],AXIS["Y",NORTH]] QE O[epsg ENAD83(HARN) / Georgia West (ftUS)+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.9999 +x_0=699999.9998983998 +y_0=0 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Georgia West (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",30],PARAMETER["central_meridian",-84.16666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",2296583.333],PARAMETER["false_northing",0],AUTHORITY["EPSG","2885"],AXIS["X",EAST],AXIS["Y",NORTH]] {F K7}epsg FNAD83(HARN) / Idaho East (ftUS)+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666666667 +k=0.9999473679999999 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Idaho East (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.66666666666666],PARAMETER["central_meridian",-112.1666666666667],PARAMETER["scale_factor",0.999947368],PARAMETER["false_easting",656166.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","2886"],AXIS["X",EAST],AXIS["Y",NORTH]] fG Qiepsg GNAD83(HARN) / Idaho Central (ftUS)+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.9999473679999999 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Idaho Central (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.66666666666666],PARAMETER["central_meridian",-114],PARAMETER["scale_factor",0.999947368],PARAMETER["false_easting",1640416.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","2887"],AXIS["X",EAST],AXIS["Y",NORTH]] _H Kiepsg HNAD83(HARN) / Idaho West (ftUS)+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0.999933333 +x_0=800000.0001016001 +y_0=0 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Idaho West (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.66666666666666],PARAMETER["central_meridian",-115.75],PARAMETER["scale_factor",0.999933333],PARAMETER["false_easting",2624666.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","2888"],AXIS["X",EAST],AXIS["Y",NORTH]] oo I i/ epsg INAD83(HARN) / Indiana East (ftUS) (deprecated)+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.999966667 +x_0=99999.99989839978 +y_0=249364.9987299975 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Indiana East (ftUS) (deprecated)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",37.5],PARAMETER["central_meridian",-85.66666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",328083.333],PARAMETER["false_northing",818125],AUTHORITY["EPSG","2889"],AXIS["X",EAST],AXIS["Y",NORTH]] }}J iepsg JNAD83(HARN) / Indiana West (ftUS) (deprecated)+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.999966667 +x_0=900000 +y_0=249364.9987299975 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Indiana West (ftUS) (deprecated)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",37.5],PARAMETER["central_meridian",-87.08333333333333],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",2952750],PARAMETER["false_northing",818125],AUTHORITY["EPSG","2890"],AXIS["X",EAST],AXIS["Y",NORTH]] HH4K S9eepsg KNAD83(HARN) / Kentucky North (ftUS)+proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Kentucky North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.96666666666667],PARAMETER["standard_parallel_2",38.96666666666667],PARAMETER["latitude_of_origin",37.5],PARAMETER["central_meridian",-84.25],PARAMETER["false_easting",1640416.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","2891"],AXIS["X",EAST],AXIS["Y",NORTH]]333333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000.0001016001 +y_0=500000.0001016001 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Kentucky South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.93333333333333],PARAMETER["standard_parallel_2",36.73333333333333],PARAMETER["latitude_of_origin",36.33333333333334],PARAMETER["central_meridian",-85.75],PARAMETER["false_easting",1640416.667],PARAMETER["false_northing",1640416.667],AUTHORITY["EPSG","2892"],AXIS["X",EAST],AXIS["Y",NORTH]] hL Ssepsg LNAD83(HARN) / Kentucky South (ftUS)+proj=lcc +lat_1=37.93333333333333 +lat_2=36.73333333 rr M G;epsg MNAD83(HARN) / Maryland (ftUS)+proj=lcc +lat_1=39.45 +lat_2=38.3 +lat_0=37.66666666666666 +lon_0=-77 +x_0=399999.9998983998 +y_0=0 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Maryland (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.45],PARAMETER["standard_parallel_2",38.3],PARAMETER["latitude_of_origin",37.66666666666666],PARAMETER["central_meridian",-77],PARAMETER["false_easting",1312333.333],PARAMETER["false_northing",0],AUTHORITY["EPSG","2893"],AXIS["X",EAST],AXIS["Y",NORTH]] 44HN c=yepsg NNAD83(HARN) / Massachusetts Mainland (ftUS)+proj=lcc +lat_1=42.68333333333333 +lat_2=41.71666666666667 +lat_0=41 +lon_0=-71.5 +x_0=200000.0001016002 +y_0=750000 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Massachusetts Mainland (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",42.68333333333333],PARAMETER["standard_parallel_2",41.71666666666667],PARAMETER["latitude_of_origin",41],PARAMETER["central_meridian",-71.5],PARAMETER["false_easting",656166.667],PARAMETER["false_northing",2460625],AUTHORITY["EPSG","2894"],AXIS["X",EAST],AXIS["Y",NORTH]] ;(5BO\iv,9FS`mz #0=JWdq~  8epsg 8  9epsg 9  :epsg :  ;epsg ;  epsg >  ?epsg ?  @epsg @  Aepsg A  Bepsg B  Cepsg C  Depsg D  Eepsg E  Fepsg F  Gepsg G  Hepsg H  Iepsg I  Jepsg J  Kepsg K  Lepsg L  Mepsg M  Nepsg N  Oepsg O  Pepsg P  Qepsg Q  Repsg R  Sepsg S  Tepsg T  Uepsg U  Vepsg V  Wepsg W  Xepsg X  Yepsg Y  Zepsg Z  [epsg [  \epsg \  ]epsg ]  ^epsg ^  _epsg _  `epsg `  aepsg a  bepsg b  cepsg c  depsg d  eepsg e  fepsg f  gepsg g  hepsg h  iepsg i  jepsg j  kepsg k  lepsg l  mepsg m  nepsg n  oepsg o  pepsg p  qepsg q  repsg r BB:O _3kepsg ONAD83(HARN) / Massachusetts Island (ftUS)+proj=lcc +lat_1=41.48333333333333 +lat_2=41.28333333333333 +lat_0=41 +lon_0=-70.5 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Massachusetts Island (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.48333333333333],PARAMETER["standard_parallel_2",41.28333333333333],PARAMETER["latitude_of_origin",41],PARAMETER["central_meridian",-70.5],PARAMETER["false_easting",1640416.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","2895"],AXIS["X",EAST],AXIS["Y",NORTH]] QQ+P OGIepsg PNAD83(HARN) / Michigan North (ft)+proj=lcc +lat_1=47.08333333333334 +lat_2=45.48333333333333 +lat_0=44.78333333333333 +lon_0=-87 +x_0=7999999.999968001 +y_0=0 +ellps=GRS80 +units=ft +no_defsPROJCS["NAD83(HARN) / Michigan North (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.08333333333334],PARAMETER["standard_parallel_2",45.48333333333333],PARAMETER["latitude_of_origin",44.78333333333333],PARAMETER["central_meridian",-87],PARAMETER["false_easting",26246719.16],PARAMETER["false_northing",0],AUTHORITY["EPSG","2896"],AXIS["X",EAST],AXIS["Y",NORTH]] II3Q SKQepsg QNAD83(HARN) / Michigan Central (ft)+proj=lcc +lat_1=45.7 +lat_2=44.18333333333333 +lat_0=43.31666666666667 +lon_0=-84.36666666666666 +x_0=5999999.999976001 +y_0=0 +ellps=GRS80 +units=ft +no_defsPROJCS["NAD83(HARN) / Michigan Central (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.7],PARAMETER["standard_parallel_2",44.18333333333333],PARAMETER["latitude_of_origin",43.31666666666667],PARAMETER["central_meridian",-84.36666666666666],PARAMETER["false_easting",19685039.37],PARAMETER["false_northing",0],AUTHORITY["EPSG","2897"],AXIS["X",EAST],AXIS["Y",NORTH]] jjR O+3epsg RNAD83(HARN) / Michigan South (ft)+proj=lcc +lat_1=43.66666666666666 +lat_2=42.1 +lat_0=41.5 +lon_0=-84.36666666666666 +x_0=3999999.999984 +y_0=0 +ellps=GRS80 +units=ft +no_defsPROJCS["NAD83(HARN) / Michigan South (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43.66666666666666],PARAMETER["standard_parallel_2",42.1],PARAMETER["latitude_of_origin",41.5],PARAMETER["central_meridian",-84.36666666666666],PARAMETER["false_easting",13123359.58],PARAMETER["false_northing",0],AUTHORITY["EPSG","2898"],AXIS["X",EAST],AXIS["Y",NORTH]] eS Wuepsg SNAD83(HARN) / Mississippi East (ftUS)+proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.99995 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Mississippi East (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",29.5],PARAMETER["central_meridian",-88.83333333333333],PARAMETER["scale_factor",0.99995],PARAMETER["false_easting",984250.0000000002],PARAMETER["false_northing",0],AUTHORITY["EPSG","2899"],AXIS["X",EAST],AXIS["Y",NORTH]] _T Wiepsg TNAD83(HARN) / Mississippi West (ftUS)+proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.99995 +x_0=699999.9998983998 +y_0=0 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Mississippi West (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",29.5],PARAMETER["central_meridian",-90.33333333333333],PARAMETER["scale_factor",0.99995],PARAMETER["false_easting",2296583.333],PARAMETER["false_northing",0],AUTHORITY["EPSG","2900"],AXIS["X",EAST],AXIS["Y",NORTH]] LU Asmepsg UNAD83(HARN) / Montana (ft)+proj=lcc +lat_1=49 +lat_2=45 +lat_0=44.25 +lon_0=-109.5 +x_0=599999.9999976 +y_0=0 +ellps=GRS80 +units=ft +no_defsPROJCS["NAD83(HARN) / Montana (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",49],PARAMETER["standard_parallel_2",45],PARAMETER["latitude_of_origin",44.25],PARAMETER["central_meridian",-109.5],PARAMETER["false_easting",1968503.937],PARAMETER["false_northing",0],AUTHORITY["EPSG","2901"],AXIS["X",EAST],AXIS["Y",NORTH]] SV Uueepsg VNAD83(HARN) / New Mexico East (ftUS)+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999909091 +x_0=165000 +y_0=0 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / New Mexico East (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-104.3333333333333],PARAMETER["scale_factor",0.999909091],PARAMETER["false_easting",541337.5],PARAMETER["false_northing",0],AUTHORITY["EPSG","2902"],AXIS["X",EAST],AXIS["Y",NORTH]] GW [kQepsg WNAD83(HARN) / New Mexico Central (ftUS)+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / New Mexico Central (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-106.25],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",1640416.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","2903"],AXIS["X",EAST],AXIS["Y",NORTH]] aX U kepsg XNAD83(HARN) / New Mexico West (ftUS)+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999916667 +x_0=830000.0001016001 +y_0=0 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / New Mexico West (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-107.8333333333333],PARAMETER["scale_factor",0.999916667],PARAMETER["false_easting",2723091.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","2904"],AXIS["X",EAST],AXIS["Y",NORTH]] GY QoWepsg YNAD83(HARN) / New York East (ftUS)+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / New York East (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38.83333333333334],PARAMETER["central_meridian",-74.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",492125],PARAMETER["false_northing",0],AUTHORITY["EPSG","2905"],AXIS["X",EAST],AXIS["Y",NORTH]] eZ Wuepsg ZNAD83(HARN) / New York Central (ftUS)+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.9999375 +x_0=249999.9998983998 +y_0=0 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / New York Central (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40],PARAMETER["central_meridian",-76.58333333333333],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",820208.3330000002],PARAMETER["false_northing",0],AUTHORITY["EPSG","2906"],AXIS["X",EAST],AXIS["Y",NORTH]] Y[ Qcepsg [NAD83(HARN) / New York West (ftUS)+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.9999375 +x_0=350000.0001016001 +y_0=0 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / New York West (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40],PARAMETER["central_meridian",-78.58333333333333],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",1148291.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","2907"],AXIS["X",EAST],AXIS["Y",NORTH]] ""Z\ _Mepsg \NAD83(HARN) / New York Long Island (ftUS)+proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666666 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / New York Long Island (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.03333333333333],PARAMETER["standard_parallel_2",40.66666666666666],PARAMETER["latitude_of_origin",40.16666666666666],PARAMETER["central_meridian",-74],PARAMETER["false_easting",984250.0000000002],PARAMETER["false_northing",0],AUTHORITY["EPSG","2908"],AXIS["X",EAST],AXIS["Y",NORTH]] dd] W)9epsg ]NAD83(HARN) / North Dakota North (ft)+proj=lcc +lat_1=48.73333333333333 +lat_2=47.43333333333333 +lat_0=47 +lon_0=-100.5 +x_0=599999.9999976 +y_0=0 +ellps=GRS80 +units=ft +no_defsPROJCS["NAD83(HARN) / North Dakota North (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",48.73333333333333],PARAMETER["standard_parallel_2",47.43333333333333],PARAMETER["latitude_of_origin",47],PARAMETER["central_meridian",-100.5],PARAMETER["false_easting",1968503.937],PARAMETER["false_northing",0],AUTHORITY["EPSG","2909"],AXIS["X",EAST],AXIS["Y",NORTH]] FF6^ WGWepsg ^NAD83(HARN) / North Dakota South (ft)+proj=lcc +lat_1=47.48333333333333 +lat_2=46.18333333333333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=599999.9999976 +y_0=0 +ellps=GRS80 +units=ft +no_defsPROJCS["NAD83(HARN) / North Dakota South (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.48333333333333],PARAMETER["standard_parallel_2",46.18333333333333],PARAMETER["latitude_of_origin",45.66666666666666],PARAMETER["central_meridian",-100.5],PARAMETER["false_easting",1968503.937],PARAMETER["false_northing",0],AUTHORITY["EPSG","2910"],AXIS["X",EAST],AXIS["Y",NORTH]] aa_ SSepsg _NAD83(HARN) / Oklahoma North (ftUS)+proj=lcc +lat_1=36.76666666666667 +lat_2=35.56666666666667 +lat_0=35 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Oklahoma North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.76666666666667],PARAMETER["standard_parallel_2",35.56666666666667],PARAMETER["latitude_of_origin",35],PARAMETER["central_meridian",-98],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","2911"],AXIS["X",EAST],AXIS["Y",NORTH]] CC9` S7qepsg `NAD83(HARN) / Oklahoma South (ftUS)+proj=lcc +lat_1=35.23333333333333 +lat_2=33.93333333333333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Oklahoma South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",35.23333333333333],PARAMETER["standard_parallel_2",33.93333333333333],PARAMETER["latitude_of_origin",33.33333333333334],PARAMETER["central_meridian",-98],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","2912"],AXIS["X",EAST],AXIS["Y",NORTH]] oo a K+-epsg aNAD83(HARN) / Oregon North (ft)+proj=lcc +lat_1=46 +lat_2=44.33333333333334 +lat_0=43.66666666666666 +lon_0=-120.5 +x_0=2500000.0001424 +y_0=0 +ellps=GRS80 +units=ft +no_defsPROJCS["NAD83(HARN) / Oregon North (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",46],PARAMETER["standard_parallel_2",44.33333333333334],PARAMETER["latitude_of_origin",43.66666666666666],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",8202099.738],PARAMETER["false_northing",0],AUTHORITY["EPSG","2913"],AXIS["X",EAST],AXIS["Y",NORTH]] oo b K+-epsg bNAD83(HARN) / Oregon South (ft)+proj=lcc +lat_1=44 +lat_2=42.33333333333334 +lat_0=41.66666666666666 +lon_0=-120.5 +x_0=1500000.0001464 +y_0=0 +ellps=GRS80 +units=ft +no_defsPROJCS["NAD83(HARN) / Oregon South (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",44],PARAMETER["standard_parallel_2",42.33333333333334],PARAMETER["latitude_of_origin",41.66666666666666],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",4921259.843],PARAMETER["false_northing",0],AUTHORITY["EPSG","2914"],AXIS["X",EAST],AXIS["Y",NORTH]] eec IOepsg cNAD83(HARN) / Tennessee (ftUS)+proj=lcc +lat_1=36.41666666666666 +lat_2=35.25 +lat_0=34.33333333333334 +lon_0=-86 +x_0=600000 +y_0=0 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Tennessee (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.41666666666666],PARAMETER["standard_parallel_2",35.25],PARAMETER["latitude_of_origin",34.33333333333334],PARAMETER["central_meridian",-86],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","2915"],AXIS["X",EAST],AXIS["Y",NORTH]] QQ+d M=Uepsg dNAD83(HARN) / Texas North (ftUS)+proj=lcc +lat_1=36.18333333333333 +lat_2=34.65 +lat_0=34 +lon_0=-101.5 +x_0=200000.0001016002 +y_0=999999.9998983998 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Texas North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.18333333333333],PARAMETER["standard_parallel_2",34.65],PARAMETER["latitude_of_origin",34],PARAMETER["central_meridian",-101.5],PARAMETER["false_easting",656166.667],PARAMETER["false_northing",3280833.333],AUTHORITY["EPSG","2916"],AXIS["X",EAST],AXIS["Y",NORTH]]33333333333 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000 +y_0=2000000.0001016 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Texas North Central (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",33.96666666666667],PARAMETER["standard_parallel_2",32.13333333333333],PARAMETER["latitude_of_origin",31.66666666666667],PARAMETER["central_meridian",-98.5],PARAMETER["false_easting",1968500],PARAMETER["false_northing",6561666.667],AUTHORITY["EPSG","2917"],AXIS["X",EAST],AXIS["Y",NORTH]] ""zf Qw5epsg fNAD83(HARN) / Texas Central (ftUS)+proj=lcc +lat_1=31.88333333333333 +lat_2=30.116666666_e ]Wepsg eNAD83(HARN) / Texas North Central (ftUS)+proj=lcc +lat_1=33.96666666666667 +lat_2=32.13366667 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +x_0=699999.9998983998 +y_0=3000000 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Texas Central (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",31.88333333333333],PARAMETER["standard_parallel_2",30.11666666666667],PARAMETER["latitude_of_origin",29.66666666666667],PARAMETER["central_meridian",-100.3333333333333],PARAMETER["false_easting",2296583.333],PARAMETER["false_northing",9842500.000000002],AUTHORITY["EPSG","2918"],AXIS["X",EAST],AXIS["Y",NORTH]]  \g ]Sepsg gNAD83(HARN) / Texas South Central (ftUS)+proj=lcc +lat_1=30.28333333333333 +lat_2=28.38333333333333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0=3999999.9998984 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Texas South Central (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",30.28333333333333],PARAMETER["standard_parallel_2",28.38333333333333],PARAMETER["latitude_of_origin",27.83333333333333],PARAMETER["central_meridian",-99],PARAMETER["false_easting",1968500],PARAMETER["false_northing",13123333.333],AUTHORITY["EPSG","2919"],AXIS["X",EAST],AXIS["Y",NORTH]]667 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=300000.0000000001 +y_0=5000000.0001016 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Texas South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",27.83333333333333],PARAMETER["standard_parallel_2",26.16666666666667],PARAMETER["latitude_of_origin",25.66666666666667],PARAMETER["central_meridian",-98.5],PARAMETER["false_easting",984250.0000000002],PARAMETER["false_northing",16404166.667],AUTHORITY["EPSG","2920"],AXIS["X",EAST],AXIS["Y",NORTH]] eh Mmepsg hNAD83(HARN) / Texas South (ftUS)+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666 <<@i Gg[epsg iNAD83(HARN) / Utah North (ft)+proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000.0001504 +y_0=999999.9999960001 +ellps=GRS80 +units=ft +no_defsPROJCS["NAD83(HARN) / Utah North (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.78333333333333],PARAMETER["standard_parallel_2",40.71666666666667],PARAMETER["latitude_of_origin",40.33333333333334],PARAMETER["central_meridian",-111.5],PARAMETER["false_easting",1640419.948],PARAMETER["false_northing",3280839.895],AUTHORITY["EPSG","2921"],AXIS["X",EAST],AXIS["Y",NORTH]] TT(j KIEepsg jNAD83(HARN) / Utah Central (ft)+proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=38.33333333333334 +lon_0=-111.5 +x_0=500000.0001504 +y_0=1999999.999992 +ellps=GRS80 +units=ft +no_defsPROJCS["NAD83(HARN) / Utah Central (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.65],PARAMETER["standard_parallel_2",39.01666666666667],PARAMETER["latitude_of_origin",38.33333333333334],PARAMETER["central_meridian",-111.5],PARAMETER["false_easting",1640419.948],PARAMETER["false_northing",6561679.79],AUTHORITY["EPSG","2922"],AXIS["X",EAST],AXIS["Y",NORTH]] WW%k GICepsg kNAD83(HARN) / Utah South (ft)+proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=36.66666666666666 +lon_0=-111.5 +x_0=500000.0001504 +y_0=2999999.999988 +ellps=GRS80 +units=ft +no_defsPROJCS["NAD83(HARN) / Utah South (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.35],PARAMETER["standard_parallel_2",37.21666666666667],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-111.5],PARAMETER["false_easting",1640419.948],PARAMETER["false_northing",9842519.685],AUTHORITY["EPSG","2923"],AXIS["X",EAST],AXIS["Y",NORTH]] 33Il SOyepsg lNAD83(HARN) / Virginia North (ftUS)+proj=lcc +lat_1=39.2 +lat_2=38.03333333333333 +lat_0=37.66666666666666 +lon_0=-78.5 +x_0=3500000.0001016 +y_0=2000000.0001016 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Virginia North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.2],PARAMETER["standard_parallel_2",38.03333333333333],PARAMETER["latitude_of_origin",37.66666666666666],PARAMETER["central_meridian",-78.5],PARAMETER["false_easting",11482916.667],PARAMETER["false_northing",6561666.667],AUTHORITY["EPSG","2924"],AXIS["X",EAST],AXIS["Y",NORTH]]666667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3500000.0001016 +y_0=999999.9998983998 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Virginia South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.96666666666667],PARAMETER["standard_parallel_2",36.76666666666667],PARAMETER["latitude_of_origin",36.33333333333334],PARAMETER["central_meridian",-78.5],PARAMETER["false_easting",11482916.667],PARAMETER["false_northing",3280833.333],AUTHORITY["EPSG","2925"],AXIS["X",EAST],AXIS["Y",NORTH]] em Smepsg mNAD83(HARN) / Virginia South (ftUS)+proj=lcc +lat_1=37.96666666666667 +lat_2=36.76666666 JJ2n W3cepsg nNAD83(HARN) / Washington North (ftUS)+proj=lcc +lat_1=48.73333333333333 +lat_2=47.5 +lat_0=47 +lon_0=-120.8333333333333 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Washington North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",48.73333333333333],PARAMETER["standard_parallel_2",47.5],PARAMETER["latitude_of_origin",47],PARAMETER["central_meridian",-120.8333333333333],PARAMETER["false_easting",1640416.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","2926"],AXIS["X",EAST],AXIS["Y",NORTH]] **Ro WSepsg oNAD83(HARN) / Washington South (ftUS)+proj=lcc +lat_1=47.33333333333334 +lat_2=45.83333333333334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Washington South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.33333333333334],PARAMETER["standard_parallel_2",45.83333333333334],PARAMETER["latitude_of_origin",45.33333333333334],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",1640416.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","2927"],AXIS["X",EAST],AXIS["Y",NORTH]] AA;p U7sepsg pNAD83(HARN) / Wisconsin North (ftUS)+proj=lcc +lat_1=46.76666666666667 +lat_2=45.56666666666667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Wisconsin North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",46.76666666666667],PARAMETER["standard_parallel_2",45.56666666666667],PARAMETER["latitude_of_origin",45.16666666666666],PARAMETER["central_meridian",-90],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","2928"],AXIS["X",EAST],AXIS["Y",NORTH]] oo q YEepsg qNAD83(HARN) / Wisconsin Central (ftUS)+proj=lcc +lat_1=45.5 +lat_2=44.25 +lat_0=43.83333333333334 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Wisconsin Central (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.5],PARAMETER["standard_parallel_2",44.25],PARAMETER["latitude_of_origin",43.83333333333334],PARAMETER["central_meridian",-90],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","2929"],AXIS["X",EAST],AXIS["Y",NORTH]] __r UUepsg rNAD83(HARN) / Wisconsin South (ftUS)+proj=lcc +lat_1=44.06666666666667 +lat_2=42.73333333333333 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Wisconsin South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",44.06666666666667],PARAMETER["standard_parallel_2",42.73333333333333],PARAMETER["latitude_of_origin",42],PARAMETER["central_meridian",-90],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","2930"],AXIS["X",EAST],AXIS["Y",NORTH]] s 3{epsg sBeduaram / TM 13 NE+proj=tmerc +lat_0=0 +lon_0=13 +k=0.9996 +x_0=500000 +y_0=0 +a=6378249.2 +b=6356515 +towgs84=-106,-87,188,0,0,0,0 +units=m +no_defsPROJCS["Beduaram / TM 13 NE",GEOGCS["Beduaram",DATUM["Beduaram",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-106,-87,188,0,0,0,0],AUTHORITY["EPSG","6213"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4213"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",13],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2931"],AXIS["X",EAST],AXIS["Y",NORTH]] RR*t Cy!epsg tQND95 / Qatar National Grid+proj=tmerc +lat_0=24.45 +lon_0=51.21666666666667 +k=0.99999 +x_0=200000 +y_0=300000 +ellps=intl +towgs84=-119.425,-303.659,-11.0006,1.1643,0.174458,1.09626,3.65706 +units=m +no_defsPROJCS["QND95 / Qatar National Grid",GEOGCS["QND95",DATUM["Qatar_National_Datum_1995",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-119.425,-303.659,-11.0006,1.1643,0.174458,1.09626,3.65706],AUTHORITY["EPSG","6614"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4614"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",24.45],PARAMETER["central_meridian",51.21666666666667],PARAMETER["scale_factor",0.99999],PARAMETER["false_easting",200000],PARAMETER["false_northing",300000],AUTHORITY["EPSG","2932"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 77Eu7_epsg uSegara / UTM zone 50S+proj=utm +zone=50 +south +ellps=bessel +units=m +no_defsPROJCS["Segara / UTM zone 50S",GEOGCS["Segara",DATUM["Gunung_Segara",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6613"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4613"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2933"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] xv WSOepsg vSegara (Jakarta) / NEIEZ (deprecated)+proj=merc +lon_0=110 +k=0.997 +x_0=3900000 +y_0=900000 +ellps=bessel +pm=jakarta +units=m +no_defsPROJCS["Segara (Jakarta) / NEIEZ (deprecated)",GEOGCS["Segara (Jakarta)",DATUM["Gunung_Segara_Jakarta",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6820"]],PRIMEM["Jakarta",106.8077194444444,AUTHORITY["EPSG","8908"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4820"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Mercator_1SP"],PARAMETER["central_meridian",110],PARAMETER["scale_factor",0.997],PARAMETER["false_easting",3900000],PARAMETER["false_northing",900000],AUTHORITY["EPSG","2934"],AXIS["X",EAST],AXIS["Y",NORTH]] Cw CySepsg wPulkovo 1942 / CS63 zone A1+proj=tmerc +lat_0=0.1166666666666667 +lon_0=41.53333333333333 +k=1 +x_0=1300000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / CS63 zone A1",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0.1166666666666667],PARAMETER["central_meridian",41.53333333333333],PARAMETER["scale_factor",1],PARAMETER["false_easting",1300000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2935"],AXIS["X",NORTH],AXIS["Y",EAST]] Cx CySepsg xPulkovo 1942 / CS63 zone A2+proj=tmerc +lat_0=0.1166666666666667 +lon_0=44.53333333333333 +k=1 +x_0=2300000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / CS63 zone A2",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0.1166666666666667],PARAMETER["central_meridian",44.53333333333333],PARAMETER["scale_factor",1],PARAMETER["false_easting",2300000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2936"],AXIS["X",NORTH],AXIS["Y",EAST]] Cy CySepsg yPulkovo 1942 / CS63 zone A3+proj=tmerc +lat_0=0.1166666666666667 +lon_0=47.53333333333333 +k=1 +x_0=3300000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / CS63 zone A3",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0.1166666666666667],PARAMETER["central_meridian",47.53333333333333],PARAMETER["scale_factor",1],PARAMETER["false_easting",3300000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2937"],AXIS["X",NORTH],AXIS["Y",EAST]] Cz CySepsg zPulkovo 1942 / CS63 zone A4+proj=tmerc +lat_0=0.1166666666666667 +lon_0=50.53333333333333 +k=1 +x_0=4300000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / CS63 zone A4",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0.1166666666666667],PARAMETER["central_meridian",50.53333333333333],PARAMETER["scale_factor",1],PARAMETER["false_easting",4300000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2938"],AXIS["X",NORTH],AXIS["Y",EAST]] C{ CySepsg {Pulkovo 1942 / CS63 zone K2+proj=tmerc +lat_0=0.1333333333333333 +lon_0=50.76666666666667 +k=1 +x_0=2300000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / CS63 zone K2",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0.1333333333333333],PARAMETER["central_meridian",50.76666666666667],PARAMETER["scale_factor",1],PARAMETER["false_easting",2300000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2939"],AXIS["X",NORTH],AXIS["Y",EAST]] C| CySepsg |Pulkovo 1942 / CS63 zone K3+proj=tmerc +lat_0=0.1333333333333333 +lon_0=53.76666666666667 +k=1 +x_0=3300000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / CS63 zone K3",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0.1333333333333333],PARAMETER["central_meridian",53.76666666666667],PARAMETER["scale_factor",1],PARAMETER["false_easting",3300000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2940"],AXIS["X",NORTH],AXIS["Y",EAST]] C} CySepsg }Pulkovo 1942 / CS63 zone K4+proj=tmerc +lat_0=0.1333333333333333 +lon_0=56.76666666666667 +k=1 +x_0=4300000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / CS63 zone K4",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0.1333333333333333],PARAMETER["central_meridian",56.76666666666667],PARAMETER["scale_factor",1],PARAMETER["false_easting",4300000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2941"],AXIS["X",NORTH],AXIS["Y",EAST]] ~ A+epsg ~Porto Santo / UTM zone 28N+proj=utm +zone=28 +ellps=intl +towgs84=-499,-249,314,0,0,0,0 +units=m +no_defsPROJCS["Porto Santo / UTM zone 28N",GEOGCS["Porto Santo",DATUM["Porto_Santo_1936",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-499,-249,314,0,0,0,0],AUTHORITY["EPSG","6615"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4615"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2942"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] //MImoepsg Selvagem Grande / UTM zone 28N+proj=utm +zone=28 +ellps=intl +units=m +no_defsPROJCS["Selvagem Grande / UTM zone 28N",GEOGCS["Selvagem Grande",DATUM["Selvagem_Grande",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6616"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4616"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2943"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] | AGyepsg NAD83(CSRS) / SCoPQ zone 2+proj=tmerc +lat_0=0 +lon_0=-55.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / SCoPQ zone 2",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-55.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2944"],AXIS["X",EAST],AXIS["Y",NORTH]] ~ =Gepsg NAD83(CSRS) / MTM zone 3+proj=tmerc +lat_0=0 +lon_0=-58.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / MTM zone 3",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-58.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2945"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] ~ =Gepsg NAD83(CSRS) / MTM zone 4+proj=tmerc +lat_0=0 +lon_0=-61.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / MTM zone 4",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-61.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2946"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] ~ =Gepsg NAD83(CSRS) / MTM zone 5+proj=tmerc +lat_0=0 +lon_0=-64.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / MTM zone 5",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-64.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2947"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] ~ =Gepsg NAD83(CSRS) / MTM zone 6+proj=tmerc +lat_0=0 +lon_0=-67.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / MTM zone 6",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-67.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2948"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] ~ =Gepsg NAD83(CSRS) / MTM zone 7+proj=tmerc +lat_0=0 +lon_0=-70.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / MTM zone 7",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-70.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2949"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] ~ =Gepsg NAD83(CSRS) / MTM zone 8+proj=tmerc +lat_0=0 +lon_0=-73.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / MTM zone 8",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-73.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2950"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] ~ =Gepsg NAD83(CSRS) / MTM zone 9+proj=tmerc +lat_0=0 +lon_0=-76.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / MTM zone 9",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-76.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2951"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]]  ?Gepsg NAD83(CSRS) / MTM zone 10+proj=tmerc +lat_0=0 +lon_0=-79.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / MTM zone 10",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-79.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2952"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] B _aMepsg NAD83(CSRS) / New Brunswick Stereographic+proj=sterea +lat_0=46.5 +lon_0=-66.5 +k=0.999912 +x_0=2500000 +y_0=7500000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / New Brunswick Stereographic",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Oblique_Stereographic"],PARAMETER["latitude_of_origin",46.5],PARAMETER["central_meridian",-66.5],PARAMETER["scale_factor",0.999912],PARAMETER["false_easting",2500000],PARAMETER["false_northing",7500000],AUTHORITY["EPSG","2953"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] O y[Sepsg NAD83(CSRS) / Prince Edward Isl. Stereographic (NAD83)+proj=sterea +lat_0=47.25 +lon_0=-63 +k=0.999912 +x_0=400000 +y_0=800000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / Prince Edward Isl. Stereographic (NAD83)",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Oblique_Stereographic"],PARAMETER["latitude_of_origin",47.25],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.999912],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2954"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] ;(5BO\iv,9FS`mz #0=JWdq~  tepsg t  uepsg u  vepsg v  wepsg w  xepsg x  yepsg y  zepsg z  {epsg {  |epsg |  }epsg }  ~epsg ~  epsg   epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg !![ Aoepsg NAD83(CSRS) / UTM zone 11N+proj=utm +zone=11 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / UTM zone 11N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2955"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] !![ Aoepsg NAD83(CSRS) / UTM zone 12N+proj=utm +zone=12 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / UTM zone 12N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2956"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] !![ Aoepsg NAD83(CSRS) / UTM zone 13N+proj=utm +zone=13 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / UTM zone 13N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2957"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ""ZAoepsg NAD83(CSRS) / UTM zone 17N+proj=utm +zone=17 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / UTM zone 17N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2958"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ""ZAoepsg NAD83(CSRS) / UTM zone 18N+proj=utm +zone=18 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / UTM zone 18N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2959"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ""ZAoepsg NAD83(CSRS) / UTM zone 19N+proj=utm +zone=19 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / UTM zone 19N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2960"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ""ZAoepsg NAD83(CSRS) / UTM zone 20N+proj=utm +zone=20 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / UTM zone 20N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2961"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ""ZAoepsg NAD83(CSRS) / UTM zone 21N+proj=utm +zone=21 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / UTM zone 21N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2962"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ? 7q_epsg NAD27 / Alaska Albers+proj=aea +lat_1=55 +lat_2=65 +lat_0=50 +lon_0=-154 +x_0=0 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Alaska Albers",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["standard_parallel_1",55],PARAMETER["standard_parallel_2",65],PARAMETER["latitude_of_center",50],PARAMETER["longitude_of_center",-154],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","2964"],AXIS["X",EAST],AXIS["Y",NORTH]] n CIYepsg NAD83 / Indiana East (ftUS)+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.999966667 +x_0=99999.99989839978 +y_0=249999.9998983998 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Indiana East (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",37.5],PARAMETER["central_meridian",-85.66666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",328083.333],PARAMETER["false_northing",820208.3330000002],AUTHORITY["EPSG","2965"],AXIS["X",EAST],AXIS["Y",NORTH]] ` C3Sepsg NAD83 / Indiana West (ftUS)+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.999966667 +x_0=900000 +y_0=249999.9998983998 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Indiana West (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",37.5],PARAMETER["central_meridian",-87.08333333333333],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",2952750],PARAMETER["false_northing",820208.3330000002],AUTHORITY["EPSG","2966"],AXIS["X",EAST],AXIS["Y",NORTH]] ~~~ O/epsg NAD83(HARN) / Indiana East (ftUS)+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.999966667 +x_0=99999.99989839978 +y_0=249999.9998983998 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Indiana East (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",37.5],PARAMETER["central_meridian",-85.66666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",328083.333],PARAMETER["false_northing",820208.3330000002],AUTHORITY["EPSG","2967"],AXIS["X",EAST],AXIS["Y",NORTH]] p Oepsg NAD83(HARN) / Indiana West (ftUS)+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.999966667 +x_0=900000 +y_0=249999.9998983998 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Indiana West (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",37.5],PARAMETER["central_meridian",-87.08333333333333],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",2952750],PARAMETER["false_northing",820208.3330000002],AUTHORITY["EPSG","2968"],AXIS["X",EAST],AXIS["Y",NORTH]] ~ C)epsg Fort Marigot / UTM zone 20N+proj=utm +zone=20 +ellps=intl +towgs84=137,248,-430,0,0,0,0 +units=m +no_defsPROJCS["Fort Marigot / UTM zone 20N",GEOGCS["Fort Marigot",DATUM["Fort_Marigot",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[137,248,-430,0,0,0,0],AUTHORITY["EPSG","6621"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4621"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2969"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] //MImoepsg Guadeloupe 1948 / UTM zone 20N+proj=utm +zone=20 +ellps=intl +units=m +no_defsPROJCS["Guadeloupe 1948 / UTM zone 20N",GEOGCS["Guadeloupe 1948",DATUM["Guadeloupe_1948",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6622"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4622"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2970"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] y 5)epsg CSG67 / UTM zone 22N+proj=utm +zone=22 +ellps=intl +towgs84=-186,230,110,0,0,0,0 +units=m +no_defsPROJCS["CSG67 / UTM zone 22N",GEOGCS["CSG67",DATUM["Centre_Spatial_Guyanais_1967",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-186,230,110,0,0,0,0],AUTHORITY["EPSG","6623"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4623"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2971"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] { 7)epsg RGFG95 / UTM zone 22N+proj=utm +zone=22 +ellps=GRS80 +towgs84=2,2,-2,0,0,0,0 +units=m +no_defsPROJCS["RGFG95 / UTM zone 22N",GEOGCS["RGFG95",DATUM["Reseau_Geodesique_Francais_Guyane_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[2,2,-2,0,0,0,0],AUTHORITY["EPSG","6624"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4624"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2972"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] //MImoepsg Martinique 1938 / UTM zone 20N+proj=utm +zone=20 +ellps=intl +units=m +no_defsPROJCS["Martinique 1938 / UTM zone 20N",GEOGCS["Martinique 1938",DATUM["Martinique_1938",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6625"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4625"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2973"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  5++epsg RGR92 / UTM zone 40S+proj=utm +zone=40 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["RGR92 / UTM zone 40S",GEOGCS["RGR92",DATUM["Reseau_Geodesique_de_la_Reunion_1992",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6627"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4627"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2975"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] | ;3epsg Tahiti 52 / UTM zone 6S+proj=utm +zone=6 +south +ellps=intl +towgs84=162,117,154,0,0,0,0 +units=m +no_defsPROJCS["Tahiti 52 / UTM zone 6S",GEOGCS["Tahiti 52",DATUM["Tahiti_52",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[162,117,154,0,0,0,0],AUTHORITY["EPSG","6628"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4628"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-147],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2976"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ??=!9ySepsg Tahaa 54 / UTM zone 5S+proj=utm +zone=5 +south +ellps=intl +units=m +no_defsPROJCS["Tahaa 54 / UTM zone 5S",GEOGCS["Tahaa 54",DATUM["Tahaa_54",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6629"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4629"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-153],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2977"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ##Y"Gy}epsg IGN72 Nuku Hiva / UTM zone 7S+proj=utm +zone=7 +south +ellps=intl +units=m +no_defsPROJCS["IGN72 Nuku Hiva / UTM zone 7S",GEOGCS["IGN72 Nuku Hiva",DATUM["IGN72_Nuku_Hiva",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6630"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4630"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-141],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2978"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]of+flrx~ &,28>DJPV\bhntz "(.4:@FLRX^djpv|stuvwxyz{–|Ö}Ė~ŖƗǗȗɗʗ˗̗͗Ηϗ З җ ӗ ԗ ՗֗חؗٗڗۗܗݗޗߗ !"#$%&'(+,-./0123456789:;<=>?@ABCD E F G H IJKLMNOPQRSTUVWXYZ [!\"]#^$_%`&a'b(c)d*e # S7!epsg K0 1949 / UTM zone 42S (deprecated)+proj=utm +zone=42 +south +ellps=intl +towgs84=145,-187,103,0,0,0,0 +units=m +no_defsPROJCS["K0 1949 / UTM zone 42S (deprecated)",GEOGCS["K0 1949",DATUM["K0_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[145,-187,103,0,0,0,0],AUTHORITY["EPSG","6631"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4631"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2979"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  $ C9'epsg Combani 1950 / UTM zone 38S+proj=utm +zone=38 +south +ellps=intl +towgs84=-382,-59,-262,0,0,0,0 +units=m +no_defsPROJCS["Combani 1950 / UTM zone 38S",GEOGCS["Combani 1950",DATUM["Combani_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-382,-59,-262,0,0,0,0],AUTHORITY["EPSG","6632"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4632"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2980"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 11K%A{eepsg IGN56 Lifou / UTM zone 58S+proj=utm +zone=58 +south +ellps=intl +units=m +no_defsPROJCS["IGN56 Lifou / UTM zone 58S",GEOGCS["IGN56 Lifou",DATUM["IGN56_Lifou",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6633"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4633"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2981"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] }&g{#epsg IGN72 Grand Terre / UTM zone 58S (deprecated)+proj=utm +zone=58 +south +ellps=intl +units=m +no_defsPROJCS["IGN72 Grand Terre / UTM zone 58S (deprecated)",GEOGCS["IGN72 Grand Terre",DATUM["IGN72_Grande_Terre",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6634"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4634"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2982"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] d' Y}{epsg ST87 Ouvea / UTM zone 58S (deprecated)+proj=utm +zone=58 +south +ellps=intl +towgs84=-122.383,-188.696,103.344,3.5107,-4.9668,-5.7047,4.4798 +units=m +no_defsPROJCS["ST87 Ouvea / UTM zone 58S (deprecated)",GEOGCS["ST87 Ouvea",DATUM["ST87_Ouvea",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-122.383,-188.696,103.344,3.5107,-4.9668,-5.7047,4.4798],AUTHORITY["EPSG","6635"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4635"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2983"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] &&V( iQ{epsg RGNC 1991 / Lambert New Caledonia (deprecated)+proj=lcc +lat_1=-20.66666666666667 +lat_2=-22.33333333333333 +lat_0=-21.5 +lon_0=166 +x_0=400000 +y_0=300000 +ellps=intl +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["RGNC 1991 / Lambert New Caledonia (deprecated)",GEOGCS["RGNC 1991",DATUM["Reseau_Geodesique_Nouvelle_Caledonie_1991",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6645"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4645"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-20.66666666666667],PARAMETER["standard_parallel_2",-22.33333333333333],PARAMETER["latitude_of_origin",-21.5],PARAMETER["central_meridian",166],PARAMETER["false_easting",400000],PARAMETER["false_northing",300000],AUTHORITY["EPSG","2984"],AXIS["X",EAST],AXIS["Y",NORTH]] I+ e) epsg Saint Pierre et Miquelon 1950 / UTM zone 21N+proj=utm +zone=21 +ellps=clrk66 +towgs84=30,430,368,0,0,0,0 +units=m +no_defsPROJCS["Saint Pierre et Miquelon 1950 / UTM zone 21N",GEOGCS["Saint Pierre et Miquelon 1950",DATUM["Saint_Pierre_et_Miquelon_1950",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[30,430,368,0,0,0,0],AUTHORITY["EPSG","6638"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4638"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2987"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] KK1,3yAepsg MOP78 / UTM zone 1S+proj=utm +zone=1 +south +ellps=intl +units=m +no_defsPROJCS["MOP78 / UTM zone 1S",GEOGCS["MOP78",DATUM["MOP78",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6639"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4639"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-177],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2988"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  - =Cepsg RRAF 1991 / UTM zone 20N+proj=utm +zone=20 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["RRAF 1991 / UTM zone 20N",GEOGCS["RRAF 1991",DATUM["Reseau_de_Reference_des_Antilles_Francaises_1991",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6640"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4640"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2989"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 1. Y}epsg Reunion 1947 / TM Reunion (deprecated)+proj=tmerc +lat_0=-21.11666666666667 +lon_0=55.53333333333333 +k=1 +x_0=50000 +y_0=160000 +ellps=intl +units=m +no_defsPROJCS["Reunion 1947 / TM Reunion (deprecated)",GEOGCS["Reunion 1947",DATUM["Reunion_1947",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6626"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4626"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-21.11666666666667],PARAMETER["central_meridian",55.53333333333333],PARAMETER["scale_factor",1],PARAMETER["false_easting",50000],PARAMETER["false_northing",160000],AUTHORITY["EPSG","2990"],AXIS["X",EAST],AXIS["Y",NORTH]] 2/ 95epsg NAD83 / Oregon Lambert+proj=lcc +lat_1=43 +lat_2=45.5 +lat_0=41.75 +lon_0=-120.5 +x_0=400000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Oregon Lambert",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43],PARAMETER["standard_parallel_2",45.5],PARAMETER["latitude_of_origin",41.75],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",400000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2991"],AXIS["X",EAST],AXIS["Y",NORTH]] N0 CQepsg NAD83 / Oregon Lambert (ft)+proj=lcc +lat_1=43 +lat_2=45.5 +lat_0=41.75 +lon_0=-120.5 +x_0=399999.9999984 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=ft +no_defsPROJCS["NAD83 / Oregon Lambert (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43],PARAMETER["standard_parallel_2",45.5],PARAMETER["latitude_of_origin",41.75],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",1312335.958],PARAMETER["false_northing",0],AUTHORITY["EPSG","2992"],AXIS["X",EAST],AXIS["Y",NORTH]] B1 Eecepsg NAD83(HARN) / Oregon Lambert+proj=lcc +lat_1=43 +lat_2=45.5 +lat_0=41.75 +lon_0=-120.5 +x_0=400000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Oregon Lambert",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43],PARAMETER["standard_parallel_2",45.5],PARAMETER["latitude_of_origin",41.75],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",400000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2993"],AXIS["X",EAST],AXIS["Y",NORTH]] ^2 Owepsg NAD83(HARN) / Oregon Lambert (ft)+proj=lcc +lat_1=43 +lat_2=45.5 +lat_0=41.75 +lon_0=-120.5 +x_0=399999.9999984 +y_0=0 +ellps=GRS80 +units=ft +no_defsPROJCS["NAD83(HARN) / Oregon Lambert (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43],PARAMETER["standard_parallel_2",45.5],PARAMETER["latitude_of_origin",41.75],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",1312335.958],PARAMETER["false_northing",0],AUTHORITY["EPSG","2994"],AXIS["X",EAST],AXIS["Y",NORTH]] 55G3?{_epsg IGN53 Mare / UTM zone 58S+proj=utm +zone=58 +south +ellps=intl +units=m +no_defsPROJCS["IGN53 Mare / UTM zone 58S",GEOGCS["IGN53 Mare",DATUM["IGN53_Mare",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6641"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4641"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2995"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] c4M{ epsg ST84 Ile des Pins / UTM zone 58S+proj=utm +zone=58 +south +ellps=intl +units=m +no_defsPROJCS["ST84 Ile des Pins / UTM zone 58S",GEOGCS["ST84 Ile des Pins",DATUM["ST84_Ile_des_Pins",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6642"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4642"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2996"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] J5 ?}aepsg ST71 Belep / UTM zone 58S+proj=utm +zone=58 +south +ellps=intl +towgs84=-480.26,-438.32,-643.429,16.3119,20.1721,-4.0349,-111.7 +units=m +no_defsPROJCS["ST71 Belep / UTM zone 58S",GEOGCS["ST71 Belep",DATUM["ST71_Belep",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-480.26,-438.32,-643.429,16.3119,20.1721,-4.0349,-111.7],AUTHORITY["EPSG","6643"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4643"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2997"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] --O6C{kepsg NEA74 Noumea / UTM zone 58S+proj=utm +zone=58 +south +ellps=intl +units=m +no_defsPROJCS["NEA74 Noumea / UTM zone 58S",GEOGCS["NEA74 Noumea",DATUM["NEA74_Noumea",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6644"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4644"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2998"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] **R7E{oepsg Grand Comoros / UTM zone 38S+proj=utm +zone=38 +south +ellps=intl +units=m +no_defsPROJCS["Grand Comoros / UTM zone 38S",GEOGCS["Grand Comoros",DATUM["Grand_Comoros",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6646"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4646"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2999"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ^^8 );aepsg Segara / NEIEZ+proj=merc +lon_0=110 +k=0.997 +x_0=3900000 +y_0=900000 +ellps=bessel +units=m +no_defsPROJCS["Segara / NEIEZ",GEOGCS["Segara",DATUM["Gunung_Segara",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6613"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4613"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Mercator_1SP"],PARAMETER["central_meridian",110],PARAMETER["scale_factor",0.997],PARAMETER["false_easting",3900000],PARAMETER["false_northing",900000],AUTHORITY["EPSG","3000"],AXIS["X",EAST],AXIS["Y",NORTH]] aa9 +;Yepsg Batavia / NEIEZ+proj=merc +lon_0=110 +k=0.997 +x_0=3900000 +y_0=900000 +ellps=bessel +units=m +no_defsPROJCS["Batavia / NEIEZ",GEOGCS["Batavia",DATUM["Batavia",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6211"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4211"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Mercator_1SP"],PARAMETER["central_meridian",110],PARAMETER["scale_factor",0.997],PARAMETER["false_easting",3900000],PARAMETER["false_northing",900000],AUTHORITY["EPSG","3001"],AXIS["X",EAST],AXIS["Y",NORTH]] k: -+epsg Makassar / NEIEZ+proj=merc +lon_0=110 +k=0.997 +x_0=3900000 +y_0=900000 +ellps=bessel +towgs84=-587.8,519.75,145.76,0,0,0,0 +units=m +no_defsPROJCS["Makassar / NEIEZ",GEOGCS["Makassar",DATUM["Makassar",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-587.8,519.75,145.76,0,0,0,0],AUTHORITY["EPSG","6257"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4257"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Mercator_1SP"],PARAMETER["central_meridian",110],PARAMETER["scale_factor",0.997],PARAMETER["false_easting",3900000],PARAMETER["false_northing",900000],AUTHORITY["EPSG","3002"],AXIS["X",EAST],AXIS["Y",NORTH]] ##Y; A?;epsg Monte Mario / Italy zone 1+proj=tmerc +lat_0=0 +lon_0=9 +k=0.9996 +x_0=1500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["Monte Mario / Italy zone 1",GEOGCS["Monte Mario",DATUM["Monte_Mario",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6265"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4265"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",1500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3003"],AXIS["X",EAST],AXIS["Y",NORTH]] !![< AA=epsg Monte Mario / Italy zone 2+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9996 +x_0=2520000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["Monte Mario / Italy zone 2",GEOGCS["Monte Mario",DATUM["Monte_Mario",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6265"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4265"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",2520000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3004"],AXIS["X",EAST],AXIS["Y",NORTH]] ,= /w;epsg NAD83 / BC Albers+proj=aea +lat_1=50 +lat_2=58.5 +lat_0=45 +lon_0=-126 +x_0=1000000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / BC Albers",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["standard_parallel_1",50],PARAMETER["standard_parallel_2",58.5],PARAMETER["latitude_of_center",45],PARAMETER["longitude_of_center",-126],PARAMETER["false_easting",1000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3005"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] AA;> #?epsg SWEREF99 TM+proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SWEREF99 TM",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3006"],AXIS["x",NORTH],AXIS["y",EAST]] `? )e;epsg SWEREF99 12 00+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SWEREF99 12 00",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",12],PARAMETER["scale_factor",1],PARAMETER["false_easting",150000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3007"],AXIS["x",NORTH],AXIS["y",EAST]] d@ )i?epsg SWEREF99 13 30+proj=tmerc +lat_0=0 +lon_0=13.5 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SWEREF99 13 30",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",13.5],PARAMETER["scale_factor",1],PARAMETER["false_easting",150000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3008"],AXIS["x",NORTH],AXIS["y",EAST]] `A )e;epsg SWEREF99 15 00+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SWEREF99 15 00",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",1],PARAMETER["false_easting",150000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3009"],AXIS["x",NORTH],AXIS["y",EAST]] dB )i?epsg SWEREF99 16 30+proj=tmerc +lat_0=0 +lon_0=16.5 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SWEREF99 16 30",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",16.5],PARAMETER["scale_factor",1],PARAMETER["false_easting",150000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3010"],AXIS["x",NORTH],AXIS["y",EAST]] `C )e;epsg SWEREF99 18 00+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SWEREF99 18 00",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",18],PARAMETER["scale_factor",1],PARAMETER["false_easting",150000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3011"],AXIS["x",NORTH],AXIS["y",EAST]] fD )kAepsg SWEREF99 14 15+proj=tmerc +lat_0=0 +lon_0=14.25 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SWEREF99 14 15",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",14.25],PARAMETER["scale_factor",1],PARAMETER["false_easting",150000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3012"],AXIS["x",NORTH],AXIS["y",EAST]] fE )kAepsg SWEREF99 15 45+proj=tmerc +lat_0=0 +lon_0=15.75 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SWEREF99 15 45",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15.75],PARAMETER["scale_factor",1],PARAMETER["false_easting",150000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3013"],AXIS["x",NORTH],AXIS["y",EAST]] fF )kAepsg SWEREF99 17 15+proj=tmerc +lat_0=0 +lon_0=17.25 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SWEREF99 17 15",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",17.25],PARAMETER["scale_factor",1],PARAMETER["false_easting",150000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3014"],AXIS["x",NORTH],AXIS["y",EAST]] fG )kAepsg SWEREF99 18 45+proj=tmerc +lat_0=0 +lon_0=18.75 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SWEREF99 18 45",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",18.75],PARAMETER["scale_factor",1],PARAMETER["false_easting",150000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3015"],AXIS["x",NORTH],AXIS["y",EAST]] fH )kAepsg SWEREF99 20 15+proj=tmerc +lat_0=0 +lon_0=20.25 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SWEREF99 20 15",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",20.25],PARAMETER["scale_factor",1],PARAMETER["false_easting",150000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3016"],AXIS["x",NORTH],AXIS["y",EAST]] fI )kAepsg SWEREF99 21 45+proj=tmerc +lat_0=0 +lon_0=21.75 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SWEREF99 21 45",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21.75],PARAMETER["scale_factor",1],PARAMETER["false_easting",150000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3017"],AXIS["x",NORTH],AXIS["y",EAST]] fJ )kAepsg SWEREF99 23 15+proj=tmerc +lat_0=0 +lon_0=23.25 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SWEREF99 23 15",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",23.25],PARAMETER["scale_factor",1],PARAMETER["false_easting",150000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3018"],AXIS["x",NORTH],AXIS["y",EAST]] ;(5BO\iv,9FS`mz #0=JWdq~  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg gK )YUepsg RT90 7.5 gon V+proj=tmerc +lat_0=0 +lon_0=11.30827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["RT90 7.5 gon V",GEOGCS["RT90",DATUM["Rikets_koordinatsystem_1990",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6124"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4124"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",11.30827777777778],PARAMETER["scale_factor",1],PARAMETER["false_easting",1500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3019"],AXIS["X",NORTH],AXIS["Y",EAST]] cL %YQepsg RT90 5 gon V+proj=tmerc +lat_0=0 +lon_0=13.55827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["RT90 5 gon V",GEOGCS["RT90",DATUM["Rikets_koordinatsystem_1990",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6124"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4124"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",13.55827777777778],PARAMETER["scale_factor",1],PARAMETER["false_easting",1500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3020"],AXIS["X",NORTH],AXIS["Y",EAST]] gM )YUepsg RT90 2.5 gon V+proj=tmerc +lat_0=0 +lon_0=15.80827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["RT90 2.5 gon V",GEOGCS["RT90",DATUM["Rikets_koordinatsystem_1990",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6124"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4124"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15.80827777777778],PARAMETER["scale_factor",1],PARAMETER["false_easting",1500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3021"],AXIS["X",NORTH],AXIS["Y",EAST]] _N !YMepsg RT90 0 gon+proj=tmerc +lat_0=0 +lon_0=18.05827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["RT90 0 gon",GEOGCS["RT90",DATUM["Rikets_koordinatsystem_1990",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6124"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4124"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",18.05827777777778],PARAMETER["scale_factor",1],PARAMETER["false_easting",1500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3022"],AXIS["X",NORTH],AXIS["Y",EAST]] gO )YUepsg RT90 2.5 gon O+proj=tmerc +lat_0=0 +lon_0=20.30827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["RT90 2.5 gon O",GEOGCS["RT90",DATUM["Rikets_koordinatsystem_1990",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6124"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4124"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",20.30827777777778],PARAMETER["scale_factor",1],PARAMETER["false_easting",1500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3023"],AXIS["X",NORTH],AXIS["Y",EAST]] cP %YQepsg RT90 5 gon O+proj=tmerc +lat_0=0 +lon_0=22.55827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["RT90 5 gon O",GEOGCS["RT90",DATUM["Rikets_koordinatsystem_1990",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6124"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4124"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",22.55827777777778],PARAMETER["scale_factor",1],PARAMETER["false_easting",1500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3024"],AXIS["X",NORTH],AXIS["Y",EAST]] ""ZQ )Y;epsg RT38 7.5 gon V+proj=tmerc +lat_0=0 +lon_0=11.30827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["RT38 7.5 gon V",GEOGCS["RT38",DATUM["Stockholm_1938",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6308"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4308"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",11.30827777777778],PARAMETER["scale_factor",1],PARAMETER["false_easting",1500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3025"],AXIS["X",NORTH],AXIS["Y",EAST]] &&VR %Y7epsg RT38 5 gon V+proj=tmerc +lat_0=0 +lon_0=13.55827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["RT38 5 gon V",GEOGCS["RT38",DATUM["Stockholm_1938",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6308"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4308"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",13.55827777777778],PARAMETER["scale_factor",1],PARAMETER["false_easting",1500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3026"],AXIS["X",NORTH],AXIS["Y",EAST]] ""ZS )Y;epsg RT38 2.5 gon V+proj=tmerc +lat_0=0 +lon_0=15.80827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["RT38 2.5 gon V",GEOGCS["RT38",DATUM["Stockholm_1938",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6308"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4308"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15.80827777777778],PARAMETER["scale_factor",1],PARAMETER["false_easting",1500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3027"],AXIS["X",NORTH],AXIS["Y",EAST]] **RT !Y3epsg RT38 0 gon+proj=tmerc +lat_0=0 +lon_0=18.05827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["RT38 0 gon",GEOGCS["RT38",DATUM["Stockholm_1938",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6308"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4308"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",18.05827777777778],PARAMETER["scale_factor",1],PARAMETER["false_easting",1500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3028"],AXIS["X",NORTH],AXIS["Y",EAST]] ""ZU )Y;epsg RT38 2.5 gon O+proj=tmerc +lat_0=0 +lon_0=20.30827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["RT38 2.5 gon O",GEOGCS["RT38",DATUM["Stockholm_1938",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6308"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4308"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",20.30827777777778],PARAMETER["scale_factor",1],PARAMETER["false_easting",1500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3029"],AXIS["X",NORTH],AXIS["Y",EAST]] &&VV %Y7epsg RT38 5 gon O+proj=tmerc +lat_0=0 +lon_0=22.55827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["RT38 5 gon O",GEOGCS["RT38",DATUM["Stockholm_1938",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6308"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4308"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",22.55827777777778],PARAMETER["scale_factor",1],PARAMETER["false_easting",1500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3030"],AXIS["X",NORTH],AXIS["Y",EAST]] W YaQepsg WGS 84 / Antarctic Polar Stereographic+proj=stere +lat_0=-90 +lat_ts=-71 +lon_0=0 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / Antarctic Polar Stereographic",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-71],PARAMETER["central_meridian",0],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3031"],AXIS["Easting",UNKNOWN],AXIS["Northing",UNKNOWN]] 1X o{epsg WGS 84 / Australian Antarctic Polar Stereographic+proj=stere +lat_0=-90 +lat_ts=-71 +lon_0=70 +k=1 +x_0=6000000 +y_0=6000000 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / Australian Antarctic Polar Stereographic",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-71],PARAMETER["central_meridian",70],PARAMETER["scale_factor",1],PARAMETER["false_easting",6000000],PARAMETER["false_northing",6000000],AUTHORITY["EPSG","3032"],AXIS["Easting",UNKNOWN],AXIS["Northing",UNKNOWN]] UY W Sepsg WGS 84 / Australian Antarctic Lambert+proj=lcc +lat_1=-68.5 +lat_2=-74.5 +lat_0=-50 +lon_0=70 +x_0=6000000 +y_0=6000000 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / Australian Antarctic Lambert",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.5],PARAMETER["standard_parallel_2",-74.5],PARAMETER["latitude_of_origin",-50],PARAMETER["central_meridian",70],PARAMETER["false_easting",6000000],PARAMETER["false_northing",6000000],AUTHORITY["EPSG","3033"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 6Z /aeepsg ETRS89 / ETRS-LCC+proj=lcc +lat_1=35 +lat_2=65 +lat_0=52 +lon_0=10 +x_0=4000000 +y_0=2800000 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / ETRS-LCC",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",35],PARAMETER["standard_parallel_2",65],PARAMETER["latitude_of_origin",52],PARAMETER["central_meridian",10],PARAMETER["false_easting",4000000],PARAMETER["false_northing",2800000],AUTHORITY["EPSG","3034"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ((T[ 1;Eepsg ETRS89 / ETRS-LAEA+proj=laea +lat_0=52 +lon_0=10 +x_0=4321000 +y_0=3210000 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / ETRS-LAEA",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",52],PARAMETER["longitude_of_center",10],PARAMETER["false_easting",4321000],PARAMETER["false_northing",3210000],AUTHORITY["EPSG","3035"],AXIS["Y",NORTH],AXIS["X",EAST]]   q\ 71epsg Moznet / UTM zone 36S+proj=utm +zone=36 +south +ellps=WGS84 +towgs84=0,0,0,-0,-0,-0,0 +units=m +no_defsPROJCS["Moznet / UTM zone 36S",GEOGCS["Moznet",DATUM["Moznet_ITRF94",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,-0,-0,-0,0],AUTHORITY["EPSG","6130"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4130"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3036"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]   q] 71epsg Moznet / UTM zone 37S+proj=utm +zone=37 +south +ellps=WGS84 +towgs84=0,0,0,-0,-0,-0,0 +units=m +no_defsPROJCS["Moznet / UTM zone 37S",GEOGCS["Moznet",DATUM["Moznet_ITRF94",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,-0,-0,-0,0],AUTHORITY["EPSG","6130"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4130"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3037"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44H^1o{epsg ETRS89 / ETRS-TM26+proj=utm +zone=26 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / ETRS-TM26",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3038"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] 44H_1o{epsg ETRS89 / ETRS-TM27+proj=utm +zone=27 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / ETRS-TM27",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-21],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3039"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] 44H`1o{epsg ETRS89 / ETRS-TM28+proj=utm +zone=28 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / ETRS-TM28",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3040"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] 55Ga1oyepsg ETRS89 / ETRS-TM29+proj=utm +zone=29 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / ETRS-TM29",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3041"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] 55Gb1oyepsg ETRS89 / ETRS-TM30+proj=utm +zone=30 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / ETRS-TM30",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3042"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] 66Fc1owepsg ETRS89 / ETRS-TM31+proj=utm +zone=31 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / ETRS-TM31",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3043"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] 66Fd1owepsg ETRS89 / ETRS-TM32+proj=utm +zone=32 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / ETRS-TM32",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3044"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] 55Ge1oyepsg ETRS89 / ETRS-TM33+proj=utm +zone=33 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / ETRS-TM33",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3045"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] 55Gf1oyepsg ETRS89 / ETRS-TM34+proj=utm +zone=34 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / ETRS-TM34",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3046"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] 55Gg1oyepsg ETRS89 / ETRS-TM35+proj=utm +zone=35 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / ETRS-TM35",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3047"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] 55Gh1oyepsg ETRS89 / ETRS-TM36+proj=utm +zone=36 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / ETRS-TM36",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3048"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] 55Gi1oyepsg ETRS89 / ETRS-TM37+proj=utm +zone=37 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / ETRS-TM37",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3049"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] 55Gj1oyepsg ETRS89 / ETRS-TM38+proj=utm +zone=38 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / ETRS-TM38",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3050"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] 55Gk1oyepsg ETRS89 / ETRS-TM39+proj=utm +zone=39 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / ETRS-TM39",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3051"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] zn C%epsg Hjorsey 1955 / UTM zone 26N+proj=utm +zone=26 +ellps=intl +towgs84=-73,46,-86,0,0,0,0 +units=m +no_defsPROJCS["Hjorsey 1955 / UTM zone 26N",GEOGCS["Hjorsey 1955",DATUM["Hjorsey_1955",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-73,46,-86,0,0,0,0],AUTHORITY["EPSG","6658"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4658"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3054"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] zo C%epsg Hjorsey 1955 / UTM zone 27N+proj=utm +zone=27 +ellps=intl +towgs84=-73,46,-86,0,0,0,0 +units=m +no_defsPROJCS["Hjorsey 1955 / UTM zone 27N",GEOGCS["Hjorsey 1955",DATUM["Hjorsey_1955",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-73,46,-86,0,0,0,0],AUTHORITY["EPSG","6658"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4658"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-21],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3055"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] zp C%epsg Hjorsey 1955 / UTM zone 28N+proj=utm +zone=28 +ellps=intl +towgs84=-73,46,-86,0,0,0,0 +units=m +no_defsPROJCS["Hjorsey 1955 / UTM zone 28N",GEOGCS["Hjorsey 1955",DATUM["Hjorsey_1955",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-73,46,-86,0,0,0,0],AUTHORITY["EPSG","6658"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4658"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3056"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Pq 5[epsg ISN93 / Lambert 1993+proj=lcc +lat_1=64.25 +lat_2=65.75 +lat_0=65 +lon_0=-19 +x_0=500000 +y_0=500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["ISN93 / Lambert 1993",GEOGCS["ISN93",DATUM["Islands_Network_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6659"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4659"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",64.25],PARAMETER["standard_parallel_2",65.75],PARAMETER["latitude_of_origin",65],PARAMETER["central_meridian",-19],PARAMETER["false_easting",500000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","3057"],AXIS["X",EAST],AXIS["Y",NORTH]] er CKEepsg Helle 1954 / Jan Mayen Grid+proj=tmerc +lat_0=0 +lon_0=-8.5 +k=1 +x_0=50000 +y_0=-7800000 +ellps=intl +towgs84=982.609,552.753,-540.873,32.3934,-153.257,-96.2266,16.805 +units=m +no_defsPROJCS["Helle 1954 / Jan Mayen Grid",GEOGCS["Helle 1954",DATUM["Helle_1954",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[982.609,552.753,-540.873,32.3934,-153.257,-96.2266,16.805],AUTHORITY["EPSG","6660"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4660"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-8.5],PARAMETER["scale_factor",1],PARAMETER["false_easting",50000],PARAMETER["false_northing",-7800000],AUTHORITY["EPSG","3058"],AXIS["x",NORTH],AXIS["y",EAST]] ~s /}Yepsg LKS92 / Latvia TM+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9996 +x_0=500000 +y_0=-6000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["LKS92 / Latvia TM",GEOGCS["LKS92",DATUM["Latvia_1992",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6661"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4661"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",24],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",-6000000],AUTHORITY["EPSG","3059"],AXIS["X",NORTH],AXIS["Y",EAST]] gtO{epsg IGN72 Grande Terre / UTM zone 58S+proj=utm +zone=58 +south +ellps=intl +units=m +no_defsPROJCS["IGN72 Grande Terre / UTM zone 58S",GEOGCS["IGN72 Grande Terre",DATUM["IGN72_Grande_Terre",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6634"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4662"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3060"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ++QuKmuepsg Porto Santo 1995 / UTM zone 28N+proj=utm +zone=28 +ellps=intl +units=m +no_defsPROJCS["Porto Santo 1995 / UTM zone 28N",GEOGCS["Porto Santo 1995",DATUM["Porto_Santo_1995",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6663"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4663"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3061"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ivSmepsg Azores Oriental 1995 / UTM zone 26N+proj=utm +zone=26 +ellps=intl +units=m +no_defsPROJCS["Azores Oriental 1995 / UTM zone 26N",GEOGCS["Azores Oriental 1995",DATUM["Azores_Oriental_Islands_1995",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6664"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4664"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3062"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ewQmepsg Azores Central 1995 / UTM zone 26N+proj=utm +zone=26 +ellps=intl +units=m +no_defsPROJCS["Azores Central 1995 / UTM zone 26N",GEOGCS["Azores Central 1995",DATUM["Azores_Central_Islands_1995",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6665"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4665"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3063"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] nx 5epsg IGM95 / UTM zone 32N+proj=utm +zone=32 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["IGM95 / UTM zone 32N",GEOGCS["IGM95",DATUM["Istituto_Geografico_Militaire_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6670"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4670"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3064"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]   oy 5epsg IGM95 / UTM zone 33N+proj=utm +zone=33 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["IGM95 / UTM zone 33N",GEOGCS["IGM95",DATUM["Istituto_Geografico_Militaire_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6670"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4670"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3065"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] az -MQepsg ED50 / Jordan TM+proj=tmerc +lat_0=0 +lon_0=37 +k=0.9998 +x_0=500000 +y_0=-3000000 +ellps=intl +units=m +no_defsPROJCS["ED50 / Jordan TM",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",37],PARAMETER["scale_factor",0.9998],PARAMETER["false_easting",500000],PARAMETER["false_northing",-3000000],AUTHORITY["EPSG","3066"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] //M{7oepsg ETRS89 / ETRS-TM35FIN+proj=utm +zone=35 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / ETRS-TM35FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3067"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] | 7Gepsg DHDN / Soldner Berlin+proj=cass +lat_0=52.41864827777778 +lon_0=13.62720366666667 +x_0=40000 +y_0=10000 +ellps=bessel +datum=potsdam +units=m +no_defsPROJCS["DHDN / Soldner Berlin",GEOGCS["DHDN",DATUM["Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6314"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4314"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Cassini_Soldner"],PARAMETER["latitude_of_origin",52.41864827777778],PARAMETER["central_meridian",13.62720366666667],PARAMETER["false_easting",40000],PARAMETER["false_northing",10000],AUTHORITY["EPSG","3068"],AXIS["x",NORTH],AXIS["y",EAST]] } Wmepsg NAD27 / Wisconsin Transverse Mercator+proj=tmerc +lat_0=0 +lon_0=-90 +k=0.9996 +x_0=500000 +y_0=-4500000 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / Wisconsin Transverse Mercator",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-90],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",-4500000],AUTHORITY["EPSG","3069"],AXIS["X",EAST],AXIS["Y",NORTH]] ~ Wkqepsg NAD83 / Wisconsin Transverse Mercator+proj=tmerc +lat_0=0 +lon_0=-90 +k=0.9996 +x_0=520000 +y_0=-4480000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Wisconsin Transverse Mercator",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-90],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",520000],PARAMETER["false_northing",-4480000],AUTHORITY["EPSG","3070"],AXIS["X",EAST],AXIS["Y",NORTH]] % cQepsg NAD83(HARN) / Wisconsin Transverse Mercator+proj=tmerc +lat_0=0 +lon_0=-90 +k=0.9996 +x_0=520000 +y_0=-4480000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Wisconsin Transverse Mercator",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-90],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",520000],PARAMETER["false_northing",-4480000],AUTHORITY["EPSG","3071"],AXIS["X",EAST],AXIS["Y",NORTH]]  ?uepsg NAD83 / Maine CS2000 East+proj=tmerc +lat_0=43.83333333333334 +lon_0=-67.875 +k=0.99998 +x_0=700000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Maine CS2000 East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",43.83333333333334],PARAMETER["central_meridian",-67.875],PARAMETER["scale_factor",0.99998],PARAMETER["false_easting",700000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3072"],AXIS["X",EAST],AXIS["Y",NORTH]]  _iwepsg NAD83 / Maine CS2000 Central (deprecated)+proj=tmerc +lat_0=43 +lon_0=-69.125 +k=0.99998 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Maine CS2000 Central (deprecated)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",43],PARAMETER["central_meridian",-69.125],PARAMETER["scale_factor",0.99998],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3073"],AXIS["X",EAST],AXIS["Y",NORTH]]  ?uepsg NAD83 / Maine CS2000 West+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.375 +k=0.99998 +x_0=300000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Maine CS2000 West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",42.83333333333334],PARAMETER["central_meridian",-70.375],PARAMETER["scale_factor",0.99998],PARAMETER["false_easting",300000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3074"],AXIS["X",EAST],AXIS["Y",NORTH]] ) Km#epsg NAD83(HARN) / Maine CS2000 East+proj=tmerc +lat_0=43.83333333333334 +lon_0=-67.875 +k=0.99998 +x_0=700000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Maine CS2000 East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",43.83333333333334],PARAMETER["central_meridian",-67.875],PARAMETER["scale_factor",0.99998],PARAMETER["false_easting",700000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3075"],AXIS["X",EAST],AXIS["Y",NORTH]] + kO%epsg NAD83(HARN) / Maine CS2000 Central (deprecated)+proj=tmerc +lat_0=43 +lon_0=-69.125 +k=0.99998 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Maine CS2000 Central (deprecated)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",43],PARAMETER["central_meridian",-69.125],PARAMETER["scale_factor",0.99998],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3076"],AXIS["X",EAST],AXIS["Y",NORTH]] ) Km#epsg NAD83(HARN) / Maine CS2000 West+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.375 +k=0.99998 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Maine CS2000 West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",42.83333333333334],PARAMETER["central_meridian",-70.375],PARAMETER["scale_factor",0.99998],PARAMETER["false_easting",300000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3077"],AXIS["X",EAST],AXIS["Y",NORTH]] [[! O=?epsg NAD83 / Michigan Oblique Mercator+proj=omerc +lat_0=45.30916666666666 +lonc=-86 +alpha=337.25556 +k=0.9996 +x_0=2546731.496 +y_0=-4354009.816 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Michigan Oblique Mercator",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Hotine_Oblique_Mercator"],PARAMETER["latitude_of_center",45.30916666666666],PARAMETER["longitude_of_center",-86],PARAMETER["azimuth",337.25556],PARAMETER["rectified_grid_angle",337.25556],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",2546731.496],PARAMETER["false_northing",-4354009.816],AUTHORITY["EPSG","3078"],AXIS["X",EAST],AXIS["Y",NORTH]] KK1 [#mepsg NAD83(HARN) / Michigan Oblique Mercator+proj=omerc +lat_0=45.30916666666666 +lonc=-86 +alpha=337.25556 +k=0.9996 +x_0=2546731.496 +y_0=-4354009.816 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Michigan Oblique Mercator",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Hotine_Oblique_Mercator"],PARAMETER["latitude_of_center",45.30916666666666],PARAMETER["longitude_of_center",-86],PARAMETER["azimuth",337.25556],PARAMETER["rectified_grid_angle",337.25556],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",2546731.496],PARAMETER["false_northing",-4354009.816],AUTHORITY["EPSG","3079"],AXIS["X",EAST],AXIS["Y",NORTH]] ii 3Y#epsg NAD27 / Shackleford+proj=lcc +lat_1=27.41666666666667 +lat_2=34.91666666666666 +lat_0=31.16666666666667 +lon_0=-100 +x_0=914400 +y_0=914400 +ellps=clrk66 +datum=NAD27 +units=ft +no_defsPROJCS["NAD27 / Shackleford",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",27.41666666666667],PARAMETER["standard_parallel_2",34.91666666666666],PARAMETER["latitude_of_origin",31.16666666666667],PARAMETER["central_meridian",-100],PARAMETER["false_easting",3000000],PARAMETER["false_northing",3000000],AUTHORITY["EPSG","3080"],AXIS["X",EAST],AXIS["Y",NORTH]] ;(5BO\iv,9FS`mz #0=JWdq~  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg  epsg  epsg  epsg  epsg  epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg  !epsg !  "epsg "  #epsg #  $epsg $  %epsg %  &epsg &  'epsg '  (epsg (  )epsg )  *epsg *  +epsg +  ,epsg , XX$ QY'epsg NAD83 / Texas State Mapping System+proj=lcc +lat_1=27.41666666666667 +lat_2=34.91666666666666 +lat_0=31.16666666666667 +lon_0=-100 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Texas State Mapping System",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",27.41666666666667],PARAMETER["standard_parallel_2",34.91666666666666],PARAMETER["latitude_of_origin",31.16666666666667],PARAMETER["central_meridian",-100],PARAMETER["false_easting",1000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","3081"],AXIS["X",EAST],AXIS["Y",NORTH]] X [[epsg NAD83 / Texas Centric Lambert Conformal+proj=lcc +lat_1=27.5 +lat_2=35 +lat_0=18 +lon_0=-100 +x_0=1500000 +y_0=5000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Texas Centric Lambert Conformal",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",27.5],PARAMETER["standard_parallel_2",35],PARAMETER["latitude_of_origin",18],PARAMETER["central_meridian",-100],PARAMETER["false_easting",1500000],PARAMETER["false_northing",5000000],AUTHORITY["EPSG","3082"],AXIS["X",EAST],AXIS["Y",NORTH]] W [Yepsg NAD83 / Texas Centric Albers Equal Area+proj=aea +lat_1=27.5 +lat_2=35 +lat_0=18 +lon_0=-100 +x_0=1500000 +y_0=6000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Texas Centric Albers Equal Area",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["standard_parallel_1",27.5],PARAMETER["standard_parallel_2",35],PARAMETER["latitude_of_center",18],PARAMETER["longitude_of_center",-100],PARAMETER["false_easting",1500000],PARAMETER["false_northing",6000000],AUTHORITY["EPSG","3083"],AXIS["X",EAST],AXIS["Y",NORTH]] h gi epsg NAD83(HARN) / Texas Centric Lambert Conformal+proj=lcc +lat_1=27.5 +lat_2=35 +lat_0=18 +lon_0=-100 +x_0=1500000 +y_0=5000000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Texas Centric Lambert Conformal",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",27.5],PARAMETER["standard_parallel_2",35],PARAMETER["latitude_of_origin",18],PARAMETER["central_meridian",-100],PARAMETER["false_easting",1500000],PARAMETER["false_northing",5000000],AUTHORITY["EPSG","3084"],AXIS["X",EAST],AXIS["Y",NORTH]] g giepsg NAD83(HARN) / Texas Centric Albers Equal Area+proj=aea +lat_1=27.5 +lat_2=35 +lat_0=18 +lon_0=-100 +x_0=1500000 +y_0=6000000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Texas Centric Albers Equal Area",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["standard_parallel_1",27.5],PARAMETER["standard_parallel_2",35],PARAMETER["latitude_of_center",18],PARAMETER["longitude_of_center",-100],PARAMETER["false_easting",1500000],PARAMETER["false_northing",6000000],AUTHORITY["EPSG","3085"],AXIS["X",EAST],AXIS["Y",NORTH]] - As/epsg NAD83 / Florida GDL Albers+proj=aea +lat_1=24 +lat_2=31.5 +lat_0=24 +lon_0=-84 +x_0=400000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Florida GDL Albers",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["standard_parallel_1",24],PARAMETER["standard_parallel_2",31.5],PARAMETER["latitude_of_center",24],PARAMETER["longitude_of_center",-84],PARAMETER["false_easting",400000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3086"],AXIS["X",EAST],AXIS["Y",NORTH]] = MY]epsg NAD83(HARN) / Florida GDL Albers+proj=aea +lat_1=24 +lat_2=31.5 +lat_0=24 +lon_0=-84 +x_0=400000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Florida GDL Albers",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["standard_parallel_1",24],PARAMETER["standard_parallel_2",31.5],PARAMETER["latitude_of_center",24],PARAMETER["longitude_of_center",-84],PARAMETER["false_easting",400000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3087"],AXIS["X",EAST],AXIS["Y",NORTH]] `` E]epsg NAD83 / Kentucky Single Zone+proj=lcc +lat_1=37.08333333333334 +lat_2=38.66666666666666 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=1500000 +y_0=1000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Kentucky Single Zone",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.08333333333334],PARAMETER["standard_parallel_2",38.66666666666666],PARAMETER["latitude_of_origin",36.33333333333334],PARAMETER["central_meridian",-85.75],PARAMETER["false_easting",1500000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","3088"],AXIS["X",EAST],AXIS["Y",NORTH]] &&V Syiepsg NAD83 / Kentucky Single Zone (ftUS)+proj=lcc +lat_1=37.08333333333334 +lat_2=38.66666666666666 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=1500000 +y_0=999999.9998983998 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Kentucky Single Zone (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.08333333333334],PARAMETER["standard_parallel_2",38.66666666666666],PARAMETER["latitude_of_origin",36.33333333333334],PARAMETER["central_meridian",-85.75],PARAMETER["false_easting",4921250],PARAMETER["false_northing",3280833.333],AUTHORITY["EPSG","3089"],AXIS["X",EAST],AXIS["Y",NORTH]] PP, QCMepsg NAD83(HARN) / Kentucky Single Zone+proj=lcc +lat_1=37.08333333333334 +lat_2=38.66666666666666 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=1500000 +y_0=1000000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Kentucky Single Zone",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.08333333333334],PARAMETER["standard_parallel_2",38.66666666666666],PARAMETER["latitude_of_origin",36.33333333333334],PARAMETER["central_meridian",-85.75],PARAMETER["false_easting",1500000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","3090"],AXIS["X",EAST],AXIS["Y",NORTH]]666666666666 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=1500000 +y_0=999999.9998983998 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Kentucky Single Zone (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.08333333333334],PARAMETER["standard_parallel_2",38.66666666666666],PARAMETER["latitude_of_origin",36.33333333333334],PARAMETER["central_meridian",-85.75],PARAMETER["false_easting",4921250],PARAMETER["false_northing",3280833.333],AUTHORITY["EPSG","3091"],AXIS["X",EAST],AXIS["Y",NORTH]] ,5q=epsg Tokyo / UTM zone 51N+proj=utm +zone=51 +ellps=bessel +units=m +no_defsPROJCS["Tokyo / UTM zone 51N",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3092"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]f __epsg NAD83(HARN) / Kentucky Single Zone (ftUS)+proj=lcc +lat_1=37.08333333333334 +lat_2=38.66W PP,5q=epsg Tokyo / UTM zone 52N+proj=utm +zone=52 +ellps=bessel +units=m +no_defsPROJCS["Tokyo / UTM zone 52N",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3093"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] PP,5q=epsg Tokyo / UTM zone 53N+proj=utm +zone=53 +ellps=bessel +units=m +no_defsPROJCS["Tokyo / UTM zone 53N",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3094"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] PP,5q=epsg Tokyo / UTM zone 54N+proj=utm +zone=54 +ellps=bessel +units=m +no_defsPROJCS["Tokyo / UTM zone 54N",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",141],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3095"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]offlrx~ &,28>DJPV\bhntz "(.4:@FLRX^djpv|,g-h.i/j0k1n2o3p4q5r6s7t8u9v:w;x{?|@}A~BCDEFGHIJKM N O P Q RSTUVXYZ[]^_`abcde f!g"h#i$j%k&l'm(n)o*p+q,r-s.t/u0v1w2x3y4z5{6|7}8~9:;<=>?@ABDEFGJKLMNOPQRSTUVWXYZ[ PP,5q=epsg Tokyo / UTM zone 55N+proj=utm +zone=55 +ellps=bessel +units=m +no_defsPROJCS["Tokyo / UTM zone 55N",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",147],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3096"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]   r 9epsg JGD2000 / UTM zone 51N+proj=utm +zone=51 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["JGD2000 / UTM zone 51N",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3097"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]   r 9epsg JGD2000 / UTM zone 52N+proj=utm +zone=52 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["JGD2000 / UTM zone 52N",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3098"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]   r 9epsg JGD2000 / UTM zone 53N+proj=utm +zone=53 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["JGD2000 / UTM zone 53N",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3099"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]   r 9epsg JGD2000 / UTM zone 54N+proj=utm +zone=54 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["JGD2000 / UTM zone 54N",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",141],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3100"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]   r 9epsg JGD2000 / UTM zone 55N+proj=utm +zone=55 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["JGD2000 / UTM zone 55N",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",147],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3101"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ))S e =epsg American Samoa 1962 / American Samoa Lambert+proj=lcc +lat_1=-14.26666666666667 +lat_0=-14.26666666666667 +lon_0=-170 +k_0=1 +x_0=152400.3048006096 +y_0=95169.31165862332 +ellps=clrk66 +towgs84=-115,118,426,0,0,0,0 +units=us-ft +no_defsPROJCS["American Samoa 1962 / American Samoa Lambert",GEOGCS["American Samoa 1962",DATUM["American_Samoa_1962",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-115,118,426,0,0,0,0],AUTHORITY["EPSG","6169"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4169"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",-14.26666666666667],PARAMETER["central_meridian",-170],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",312234.65],AUTHORITY["EPSG","3102"],AXIS["X",EAST],AXIS["Y",NORTH]]   pcqepsg Mauritania 1999 / UTM zone 28N (deprecated)+proj=utm +zone=28 +ellps=clrk80 +units=m +no_defsPROJCS["Mauritania 1999 / UTM zone 28N (deprecated)",GEOGCS["Mauritania 1999",DATUM["Mauritania_1999",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6681"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4681"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3103"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]   o cqepsg Mauritania 1999 / UTM zone 29N (deprecated)+proj=utm +zone=29 +ellps=clrk80 +units=m +no_defsPROJCS["Mauritania 1999 / UTM zone 29N (deprecated)",GEOGCS["Mauritania 1999",DATUM["Mauritania_1999",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6681"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4681"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3104"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]   o!cqepsg !Mauritania 1999 / UTM zone 30N (deprecated)+proj=utm +zone=30 +ellps=clrk80 +units=m +no_defsPROJCS["Mauritania 1999 / UTM zone 30N (deprecated)",GEOGCS["Mauritania 1999",DATUM["Mauritania_1999",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6681"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4681"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3105"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 6" em#epsg "Gulshan 303 / Bangladesh Transverse Mercator+proj=tmerc +lat_0=0 +lon_0=90 +k=0.9996 +x_0=500000 +y_0=0 +a=6377276.345 +b=6356075.41314024 +units=m +no_defsPROJCS["Gulshan 303 / Bangladesh Transverse Mercator",GEOGCS["Gulshan 303",DATUM["Gulshan_303",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],AUTHORITY["EPSG","6682"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4682"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",90],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3106"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] e# 1 epsg #GDA94 / SA Lambert+proj=lcc +lat_1=-28 +lat_2=-36 +lat_0=-32 +lon_0=135 +x_0=1000000 +y_0=2000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GDA94 / SA Lambert",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-28],PARAMETER["standard_parallel_2",-36],PARAMETER["latitude_of_origin",-32],PARAMETER["central_meridian",135],PARAMETER["false_easting",1000000],PARAMETER["false_northing",2000000],AUTHORITY["EPSG","3107"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] )$ 9q1epsg $ETRS89 / Guernsey Grid+proj=tmerc +lat_0=49.5 +lon_0=-2.416666666666667 +k=0.999997 +x_0=47000 +y_0=50000 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / Guernsey Grid",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",49.5],PARAMETER["central_meridian",-2.416666666666667],PARAMETER["scale_factor",0.999997],PARAMETER["false_easting",47000],PARAMETER["false_northing",50000],AUTHORITY["EPSG","3108"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] :% Sq9epsg %ETRS89 / Jersey Transverse Mercator+proj=tmerc +lat_0=49.225 +lon_0=-2.135 +k=0.9999999000000001 +x_0=40000 +y_0=70000 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / Jersey Transverse Mercator",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",49.225],PARAMETER["central_meridian",-2.135],PARAMETER["scale_factor",0.9999999],PARAMETER["false_easting",40000],PARAMETER["false_northing",70000],AUTHORITY["EPSG","3109"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] @& /mmepsg &AGD66 / Vicgrid66+proj=lcc +lat_1=-36 +lat_2=-38 +lat_0=-37 +lon_0=145 +x_0=2500000 +y_0=4500000 +ellps=aust_SA +units=m +no_defsPROJCS["AGD66 / Vicgrid66",GEOGCS["AGD66",DATUM["Australian_Geodetic_Datum_1966",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],AUTHORITY["EPSG","6202"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4202"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-36],PARAMETER["standard_parallel_2",-38],PARAMETER["latitude_of_origin",-37],PARAMETER["central_meridian",145],PARAMETER["false_easting",2500000],PARAMETER["false_northing",4500000],AUTHORITY["EPSG","3110"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] c' / epsg 'GDA94 / Vicgrid94+proj=lcc +lat_1=-36 +lat_2=-38 +lat_0=-37 +lon_0=145 +x_0=2500000 +y_0=2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GDA94 / Vicgrid94",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-36],PARAMETER["standard_parallel_2",-38],PARAMETER["latitude_of_origin",-37],PARAMETER["central_meridian",145],PARAMETER["false_easting",2500000],PARAMETER["false_northing",2500000],AUTHORITY["EPSG","3111"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] m( U{epsg (GDA94 / Geoscience Australia Lambert+proj=lcc +lat_1=-18 +lat_2=-36 +lat_0=0 +lon_0=134 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GDA94 / Geoscience Australia Lambert",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-18],PARAMETER["standard_parallel_2",-36],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",134],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3112"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ) )epsg )GDA94 / BCSG02+proj=tmerc +lat_0=-28 +lon_0=153 +k=0.99999 +x_0=50000 +y_0=100000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GDA94 / BCSG02",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-28],PARAMETER["central_meridian",153],PARAMETER["scale_factor",0.99999],PARAMETER["false_easting",50000],PARAMETER["false_northing",100000],AUTHORITY["EPSG","3113"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] oo * W3epsg *MAGNA-SIRGAS / Colombia Far West zone+proj=tmerc +lat_0=4.596200416666666 +lon_0=-80.07750791666666 +k=1 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["MAGNA-SIRGAS / Colombia Far West zone",GEOGCS["MAGNA-SIRGAS",DATUM["Marco_Geocentrico_Nacional_de_Referencia",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6686"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4686"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",4.596200416666666],PARAMETER["central_meridian",-80.07750791666666],PARAMETER["scale_factor",1],PARAMETER["false_easting",1000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","3114"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ww+ O3epsg +MAGNA-SIRGAS / Colombia West zone+proj=tmerc +lat_0=4.596200416666666 +lon_0=-77.07750791666666 +k=1 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["MAGNA-SIRGAS / Colombia West zone",GEOGCS["MAGNA-SIRGAS",DATUM["Marco_Geocentrico_Nacional_de_Referencia",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6686"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4686"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",4.596200416666666],PARAMETER["central_meridian",-77.07750791666666],PARAMETER["scale_factor",1],PARAMETER["false_easting",1000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","3115"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ss , S3epsg ,MAGNA-SIRGAS / Colombia Bogota zone+proj=tmerc +lat_0=4.596200416666666 +lon_0=-74.07750791666666 +k=1 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["MAGNA-SIRGAS / Colombia Bogota zone",GEOGCS["MAGNA-SIRGAS",DATUM["Marco_Geocentrico_Nacional_de_Referencia",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6686"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4686"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",4.596200416666666],PARAMETER["central_meridian",-74.07750791666666],PARAMETER["scale_factor",1],PARAMETER["false_easting",1000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","3116"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] gg- _3!epsg -MAGNA-SIRGAS / Colombia East Central zone+proj=tmerc +lat_0=4.596200416666666 +lon_0=-71.07750791666666 +k=1 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["MAGNA-SIRGAS / Colombia East Central zone",GEOGCS["MAGNA-SIRGAS",DATUM["Marco_Geocentrico_Nacional_de_Referencia",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6686"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4686"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",4.596200416666666],PARAMETER["central_meridian",-71.07750791666666],PARAMETER["scale_factor",1],PARAMETER["false_easting",1000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","3117"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ww. O3epsg .MAGNA-SIRGAS / Colombia East zone+proj=tmerc +lat_0=4.596200416666666 +lon_0=-68.07750791666666 +k=1 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["MAGNA-SIRGAS / Colombia East zone",GEOGCS["MAGNA-SIRGAS",DATUM["Marco_Geocentrico_Nacional_de_Referencia",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6686"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4686"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",4.596200416666666],PARAMETER["central_meridian",-68.07750791666666],PARAMETER["scale_factor",1],PARAMETER["false_easting",1000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","3118"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] 8/ 9'epsg /Douala 1948 / AEF west+proj=tmerc +lat_0=0 +lon_0=10.5 +k=0.999 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs84=-206.1,-174.7,-87.7,0,0,0,0 +units=m +no_defsPROJCS["Douala 1948 / AEF west",GEOGCS["Douala 1948",DATUM["Douala_1948",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-206.1,-174.7,-87.7,0,0,0,0],AUTHORITY["EPSG","6192"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4192"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",10.5],PARAMETER["scale_factor",0.999],PARAMETER["false_easting",1000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","3119"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] '0 Myepsg 0Pulkovo 1942(58) / Poland zone I+proj=sterea +lat_0=50.625 +lon_0=21.08333333333333 +k=0.9998 +x_0=4637000 +y_0=5467000 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(58) / Poland zone I",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Oblique_Stereographic"],PARAMETER["latitude_of_origin",50.625],PARAMETER["central_meridian",21.08333333333333],PARAMETER["scale_factor",0.9998],PARAMETER["false_easting",4637000],PARAMETER["false_northing",5467000],AUTHORITY["EPSG","3120"],AXIS["X",NORTH],AXIS["Y",EAST]] g1 A7_epsg 1PRS92 / Philippines zone 1+proj=tmerc +lat_0=0 +lon_0=117 +k=0.99995 +x_0=500000 +y_0=0 +ellps=clrk66 +towgs84=-127.62,-67.24,-47.04,-3.068,4.903,1.578,-1.06 +units=m +no_defsPROJCS["PRS92 / Philippines zone 1",GEOGCS["PRS92",DATUM["Philippine_Reference_System_1992",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-127.62,-67.24,-47.04,-3.068,4.903,1.578,-1.06],AUTHORITY["EPSG","6683"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4683"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",0.99995],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3121"],AXIS["X",EAST],AXIS["Y",NORTH]] g2 A7_epsg 2PRS92 / Philippines zone 2+proj=tmerc +lat_0=0 +lon_0=119 +k=0.99995 +x_0=500000 +y_0=0 +ellps=clrk66 +towgs84=-127.62,-67.24,-47.04,-3.068,4.903,1.578,-1.06 +units=m +no_defsPROJCS["PRS92 / Philippines zone 2",GEOGCS["PRS92",DATUM["Philippine_Reference_System_1992",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-127.62,-67.24,-47.04,-3.068,4.903,1.578,-1.06],AUTHORITY["EPSG","6683"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4683"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",119],PARAMETER["scale_factor",0.99995],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3122"],AXIS["X",EAST],AXIS["Y",NORTH]] g3 A7_epsg 3PRS92 / Philippines zone 3+proj=tmerc +lat_0=0 +lon_0=121 +k=0.99995 +x_0=500000 +y_0=0 +ellps=clrk66 +towgs84=-127.62,-67.24,-47.04,-3.068,4.903,1.578,-1.06 +units=m +no_defsPROJCS["PRS92 / Philippines zone 3",GEOGCS["PRS92",DATUM["Philippine_Reference_System_1992",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-127.62,-67.24,-47.04,-3.068,4.903,1.578,-1.06],AUTHORITY["EPSG","6683"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4683"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",121],PARAMETER["scale_factor",0.99995],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3123"],AXIS["X",EAST],AXIS["Y",NORTH]] g4 A7_epsg 4PRS92 / Philippines zone 4+proj=tmerc +lat_0=0 +lon_0=123 +k=0.99995 +x_0=500000 +y_0=0 +ellps=clrk66 +towgs84=-127.62,-67.24,-47.04,-3.068,4.903,1.578,-1.06 +units=m +no_defsPROJCS["PRS92 / Philippines zone 4",GEOGCS["PRS92",DATUM["Philippine_Reference_System_1992",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-127.62,-67.24,-47.04,-3.068,4.903,1.578,-1.06],AUTHORITY["EPSG","6683"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4683"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",0.99995],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3124"],AXIS["X",EAST],AXIS["Y",NORTH]] g5 A7_epsg 5PRS92 / Philippines zone 5+proj=tmerc +lat_0=0 +lon_0=125 +k=0.99995 +x_0=500000 +y_0=0 +ellps=clrk66 +towgs84=-127.62,-67.24,-47.04,-3.068,4.903,1.578,-1.06 +units=m +no_defsPROJCS["PRS92 / Philippines zone 5",GEOGCS["PRS92",DATUM["Philippine_Reference_System_1992",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-127.62,-67.24,-47.04,-3.068,4.903,1.578,-1.06],AUTHORITY["EPSG","6683"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4683"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",125],PARAMETER["scale_factor",0.99995],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3125"],AXIS["X",EAST],AXIS["Y",NORTH]] m6 77uepsg 6ETRS89 / ETRS-GK19FIN+proj=tmerc +lat_0=0 +lon_0=19 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / ETRS-GK19FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",19],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3126"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] m7 77uepsg 7ETRS89 / ETRS-GK20FIN+proj=tmerc +lat_0=0 +lon_0=20 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / ETRS-GK20FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",20],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3127"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] m8 77uepsg 8ETRS89 / ETRS-GK21FIN+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / ETRS-GK21FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3128"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] m9 77uepsg 9ETRS89 / ETRS-GK22FIN+proj=tmerc +lat_0=0 +lon_0=22 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / ETRS-GK22FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",22],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3129"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] m: 77uepsg :ETRS89 / ETRS-GK23FIN+proj=tmerc +lat_0=0 +lon_0=23 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / ETRS-GK23FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",23],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3130"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] m; 77uepsg ;ETRS89 / ETRS-GK24FIN+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / ETRS-GK24FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",24],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3131"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] m< 77uepsg 77uepsg >ETRS89 / ETRS-GK27FIN+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / ETRS-GK27FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3134"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] m? 77uepsg ?ETRS89 / ETRS-GK28FIN+proj=tmerc +lat_0=0 +lon_0=28 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / ETRS-GK28FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",28],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3135"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] m@ 77uepsg @ETRS89 / ETRS-GK29FIN+proj=tmerc +lat_0=0 +lon_0=29 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / ETRS-GK29FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",29],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3136"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] mA 77uepsg AETRS89 / ETRS-GK30FIN+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / ETRS-GK30FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",30],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3137"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] mB 77uepsg BETRS89 / ETRS-GK31FIN+proj=tmerc +lat_0=0 +lon_0=31 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / ETRS-GK31FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",31],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3138"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] MD K;epsg DViti Levu 1912 / Viti Levu Grid+proj=cass +lat_0=-18 +lon_0=178 +x_0=109435.392 +y_0=141622.272 +a=6378306.3696 +b=6356571.996 +towgs84=51,391,-36,0,0,0,0 +to_meter=0.201168 +no_defsPROJCS["Viti Levu 1912 / Viti Levu Grid",GEOGCS["Viti Levu 1912",DATUM["Viti_Levu_1912",SPHEROID["Clarke 1880 (international foot)",6378306.3696,293.4663076556349,AUTHORITY["EPSG","7055"]],TOWGS84[51,391,-36,0,0,0,0],AUTHORITY["EPSG","6752"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4752"]],UNIT["link",0.201168,AUTHORITY["EPSG","9098"]],PROJECTION["Cassini_Soldner"],PARAMETER["latitude_of_origin",-18],PARAMETER["central_meridian",178],PARAMETER["false_easting",544000],PARAMETER["false_northing",704000],AUTHORITY["EPSG","3140"],AXIS["X",NORTH],AXIS["Y",EAST]] E =O-epsg EFiji 1956 / UTM zone 60S+proj=utm +zone=60 +south +ellps=intl +towgs84=265.025,384.929,-194.046,0,0,0,0 +units=m +no_defsPROJCS["Fiji 1956 / UTM zone 60S",GEOGCS["Fiji 1956",DATUM["Fiji_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[265.025,384.929,-194.046,0,0,0,0],AUTHORITY["EPSG","6721"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4721"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",177],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3141"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ;(5BO\iv,9FS`mz #0=JWdq~  .epsg .  /epsg /  0epsg 0  1epsg 1  2epsg 2  3epsg 3  4epsg 4  5epsg 5  6epsg 6  7epsg 7  8epsg 8  9epsg 9  :epsg :  ;epsg ;  epsg >  ?epsg ?  @epsg @  Aepsg A  Bepsg B  Depsg D  Eepsg E  Fepsg F  Gepsg G  Jepsg J  Kepsg K  Lepsg L  Mepsg M  Nepsg N  Oepsg O  Pepsg P  Qepsg Q  Repsg R  Sepsg S  Tepsg T  Uepsg U  Vepsg V  Wepsg W  Xepsg X  Yepsg Y  Zepsg Z  [epsg [  \epsg \  ]epsg ]  ^epsg ^  _epsg _  `epsg `  aepsg a  bepsg b  cepsg c  depsg d  fepsg f  gepsg g  hepsg h  iepsg i  jepsg j  kepsg k  lepsg l F ;M-epsg FFiji 1956 / UTM zone 1S+proj=utm +zone=1 +south +ellps=intl +towgs84=265.025,384.929,-194.046,0,0,0,0 +units=m +no_defsPROJCS["Fiji 1956 / UTM zone 1S",GEOGCS["Fiji 1956",DATUM["Fiji_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[265.025,384.929,-194.046,0,0,0,0],AUTHORITY["EPSG","6721"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4721"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-177],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3142"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] G Y] epsg GFiji 1986 / Fiji Map Grid (deprecated)+proj=tmerc +lat_0=-17 +lon_0=178.75 +k=0.99985 +x_0=2000000 +y_0=4000000 +ellps=WGS72 +units=m +no_defsPROJCS["Fiji 1986 / Fiji Map Grid (deprecated)",GEOGCS["Fiji 1986",DATUM["Fiji_Geodetic_Datum_1986",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6720"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4720"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-17],PARAMETER["central_meridian",178.75],PARAMETER["scale_factor",0.99985],PARAMETER["false_easting",2000000],PARAMETER["false_northing",4000000],AUTHORITY["EPSG","3143"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] #J c93epsg JPulkovo 1942 / 3-degree Gauss-Kruger zone 6+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=6500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 6",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",18],PARAMETER["scale_factor",1],PARAMETER["false_easting",6500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3146"],AXIS["X",NORTH],AXIS["Y",EAST]] !K c71epsg KPulkovo 1942 / 3-degree Gauss-Kruger CM 18E+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 18E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",18],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3147"],AXIS["X",NORTH],AXIS["Y",EAST]] jL Aepsg LIndian 1960 / UTM zone 48N+proj=utm +zone=48 +a=6377276.345 +b=6356075.41314024 +units=m +no_defsPROJCS["Indian 1960 / UTM zone 48N",GEOGCS["Indian 1960",DATUM["Indian_1960",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],AUTHORITY["EPSG","6131"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4131"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3148"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] jM Aepsg MIndian 1960 / UTM zone 49N+proj=utm +zone=49 +a=6377276.345 +b=6356075.41314024 +units=m +no_defsPROJCS["Indian 1960 / UTM zone 49N",GEOGCS["Indian 1960",DATUM["Indian_1960",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],AUTHORITY["EPSG","6131"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4131"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3149"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] SN c5epsg NPulkovo 1995 / 3-degree Gauss-Kruger zone 6+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=6500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 6",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",18],PARAMETER["scale_factor",1],PARAMETER["false_easting",6500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3150"],AXIS["X",NORTH],AXIS["Y",EAST]] QO c3epsg OPulkovo 1995 / 3-degree Gauss-Kruger CM 18E+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 18E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",18],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3151"],AXIS["X",NORTH],AXIS["Y",EAST]]  P %gepsg PST74+proj=tmerc +lat_0=0 +lon_0=18.05779 +k=0.99999425 +x_0=100178.1808 +y_0=-6500614.7836 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["ST74",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",18.05779],PARAMETER["scale_factor",0.99999425],PARAMETER["false_easting",100178.1808],PARAMETER["false_northing",-6500614.7836],AUTHORITY["EPSG","3152"],AXIS["x",NORTH],AXIS["y",EAST]] ?Q ;]oepsg QNAD83(CSRS) / BC Albers+proj=aea +lat_1=50 +lat_2=58.5 +lat_0=45 +lon_0=-126 +x_0=1000000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / BC Albers",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["standard_parallel_1",50],PARAMETER["standard_parallel_2",58.5],PARAMETER["latitude_of_center",45],PARAMETER["longitude_of_center",-126],PARAMETER["false_easting",1000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3153"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] $$XR?mepsg RNAD83(CSRS) / UTM zone 7N+proj=utm +zone=7 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / UTM zone 7N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-141],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3154"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] $$XS?mepsg SNAD83(CSRS) / UTM zone 8N+proj=utm +zone=8 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / UTM zone 8N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-135],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3155"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] $$XT?mepsg TNAD83(CSRS) / UTM zone 9N+proj=utm +zone=9 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / UTM zone 9N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-129],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3156"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] !![UAoepsg UNAD83(CSRS) / UTM zone 10N+proj=utm +zone=10 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / UTM zone 10N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-123],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3157"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ""ZVAoepsg VNAD83(CSRS) / UTM zone 14N+proj=utm +zone=14 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / UTM zone 14N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3158"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ""ZWAoepsg WNAD83(CSRS) / UTM zone 15N+proj=utm +zone=15 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / UTM zone 15N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3159"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ""ZXAoepsg XNAD83(CSRS) / UTM zone 16N+proj=utm +zone=16 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / UTM zone 16N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-87],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3160"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] KY C[epsg YNAD83 / Ontario MNR Lambert+proj=lcc +lat_1=44.5 +lat_2=53.5 +lat_0=0 +lon_0=-85 +x_0=930000 +y_0=6430000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Ontario MNR Lambert",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",44.5],PARAMETER["standard_parallel_2",53.5],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-85],PARAMETER["false_easting",930000],PARAMETER["false_northing",6430000],AUTHORITY["EPSG","3161"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ^Z Ogepsg ZNAD83(CSRS) / Ontario MNR Lambert+proj=lcc +lat_1=44.5 +lat_2=53.5 +lat_0=0 +lon_0=-85 +x_0=930000 +y_0=6430000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / Ontario MNR Lambert",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",44.5],PARAMETER["standard_parallel_2",53.5],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-85],PARAMETER["false_easting",930000],PARAMETER["false_northing",6430000],AUTHORITY["EPSG","3162"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ;;A[ OSiepsg [RGNC91-93 / Lambert New Caledonia+proj=lcc +lat_1=-20.66666666666667 +lat_2=-22.33333333333333 +lat_0=-21.5 +lon_0=166 +x_0=400000 +y_0=300000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["RGNC91-93 / Lambert New Caledonia",GEOGCS["RGNC91-93",DATUM["Reseau_Geodesique_de_Nouvelle_Caledonie_91_93",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6749"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4749"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-20.66666666666667],PARAMETER["standard_parallel_2",-22.33333333333333],PARAMETER["latitude_of_origin",-21.5],PARAMETER["central_meridian",166],PARAMETER["false_easting",400000],PARAMETER["false_northing",300000],AUTHORITY["EPSG","3163"],AXIS["X",EAST],AXIS["Y",NORTH]] \ ?M+epsg \ST87 Ouvea / UTM zone 58S+proj=utm +zone=58 +south +ellps=WGS84 +towgs84=-56.263,16.136,-22.856,0,0,0,0 +units=m +no_defsPROJCS["ST87 Ouvea / UTM zone 58S",GEOGCS["ST87 Ouvea",DATUM["ST87_Ouvea",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[-56.263,16.136,-22.856,0,0,0,0],AUTHORITY["EPSG","6750"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4750"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3164"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] l] G#wepsg ]NEA74 Noumea / Noumea Lambert+proj=lcc +lat_1=-22.24469175 +lat_2=-22.29469175 +lat_0=-22.26969175 +lon_0=166.44242575 +x_0=0.66 +y_0=1.02 +ellps=intl +units=m +no_defsPROJCS["NEA74 Noumea / Noumea Lambert",GEOGCS["NEA74 Noumea",DATUM["NEA74_Noumea",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6644"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4644"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-22.24469175],PARAMETER["standard_parallel_2",-22.29469175],PARAMETER["latitude_of_origin",-22.26969175],PARAMETER["central_meridian",166.44242575],PARAMETER["false_easting",0.66],PARAMETER["false_northing",1.02],AUTHORITY["EPSG","3165"],AXIS["X",EAST],AXIS["Y",NORTH]] ^^^ K]epsg ^NEA74 Noumea / Noumea Lambert 2+proj=lcc +lat_1=-22.24472222222222 +lat_2=-22.29472222222222 +lat_0=-22.26972222222222 +lon_0=166.4425 +x_0=8.313000000000001 +y_0=-2.354 +ellps=intl +units=m +no_defsPROJCS["NEA74 Noumea / Noumea Lambert 2",GEOGCS["NEA74 Noumea",DATUM["NEA74_Noumea",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6644"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4644"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-22.24472222222222],PARAMETER["standard_parallel_2",-22.29472222222222],PARAMETER["latitude_of_origin",-22.26972222222222],PARAMETER["central_meridian",166.4425],PARAMETER["false_easting",8.313],PARAMETER["false_northing",-2.354],AUTHORITY["EPSG","3166"],AXIS["X",EAST],AXIS["Y",NORTH]] 44H_ I1epsg _Kertau (RSO) / RSO Malaya (ch)+proj=omerc +lat_0=4 +lonc=102.25 +alpha=323.0257905 +k=0.99984 +x_0=40000 +y_0=0 +a=6377295.664 +b=6356094.667915204 +to_meter=20.116756 +no_defsPROJCS["Kertau (RSO) / RSO Malaya (ch)",GEOGCS["Kertau (RSO)",DATUM["Kertau_RSO",SPHEROID["Everest 1830 (RSO 1969)",6377295.664,300.8017,AUTHORITY["EPSG","7056"]],AUTHORITY["EPSG","6751"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4751"]],UNIT["British chain (Sears 1922 truncated)",20.116756,AUTHORITY["EPSG","9301"]],PROJECTION["Hotine_Oblique_Mercator"],PARAMETER["latitude_of_center",4],PARAMETER["longitude_of_center",102.25],PARAMETER["azimuth",323.0257905],PARAMETER["rectified_grid_angle",323.1301023611111],PARAMETER["scale_factor",0.99984],PARAMETER["false_easting",1988.392164223695],PARAMETER["false_northing",0],AUTHORITY["EPSG","3167"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ll` G#?epsg `Kertau (RSO) / RSO Malaya (m)+proj=omerc +lat_0=4 +lonc=102.25 +alpha=323.0257905 +k=0.99984 +x_0=804670.24 +y_0=0 +a=6377295.664 +b=6356094.667915204 +units=m +no_defsPROJCS["Kertau (RSO) / RSO Malaya (m)",GEOGCS["Kertau (RSO)",DATUM["Kertau_RSO",SPHEROID["Everest 1830 (RSO 1969)",6377295.664,300.8017,AUTHORITY["EPSG","7056"]],AUTHORITY["EPSG","6751"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4751"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Hotine_Oblique_Mercator"],PARAMETER["latitude_of_center",4],PARAMETER["longitude_of_center",102.25],PARAMETER["azimuth",323.0257905],PARAMETER["rectified_grid_angle",323.1301023611111],PARAMETER["scale_factor",0.99984],PARAMETER["false_easting",804670.24],PARAMETER["false_northing",0],AUTHORITY["EPSG","3168"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] a =+Oepsg aRGNC91-93 / UTM zone 57S+proj=utm +zone=57 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["RGNC91-93 / UTM zone 57S",GEOGCS["RGNC91-93",DATUM["Reseau_Geodesique_de_Nouvelle_Caledonie_91_93",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6749"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4749"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",159],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3169"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] b =+Oepsg bRGNC91-93 / UTM zone 58S+proj=utm +zone=58 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["RGNC91-93 / UTM zone 58S",GEOGCS["RGNC91-93",DATUM["Reseau_Geodesique_de_Nouvelle_Caledonie_91_93",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6749"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4749"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3170"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] c =+Oepsg cRGNC91-93 / UTM zone 59S+proj=utm +zone=59 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["RGNC91-93 / UTM zone 59S",GEOGCS["RGNC91-93",DATUM["Reseau_Geodesique_de_Nouvelle_Caledonie_91_93",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6749"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4749"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",171],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3171"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 55Gd?{_epsg dIGN53 Mare / UTM zone 59S+proj=utm +zone=59 +south +ellps=intl +units=m +no_defsPROJCS["IGN53 Mare / UTM zone 59S",GEOGCS["IGN53 Mare",DATUM["IGN53_Mare",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6641"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4641"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",171],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3172"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] mf A3oepsg fNAD83 / Great Lakes Albers+proj=aea +lat_1=42.122774 +lat_2=49.01518 +lat_0=45.568977 +lon_0=-84.455955 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Great Lakes Albers",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["standard_parallel_1",42.122774],PARAMETER["standard_parallel_2",49.01518],PARAMETER["latitude_of_center",45.568977],PARAMETER["longitude_of_center",-84.455955],PARAMETER["false_easting",1000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","3174"],AXIS["X",EAST],AXIS["Y",NORTH]] oo g a3epsg gNAD83 / Great Lakes and St Lawrence Albers+proj=aea +lat_1=42.122774 +lat_2=49.01518 +lat_0=45.568977 +lon_0=-83.248627 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Great Lakes and St Lawrence Albers",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["standard_parallel_1",42.122774],PARAMETER["standard_parallel_2",49.01518],PARAMETER["latitude_of_center",45.568977],PARAMETER["longitude_of_center",-83.248627],PARAMETER["false_easting",1000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","3175"],AXIS["X",EAST],AXIS["Y",NORTH]] h ;o{epsg hIndian 1960 / TM 106 NE+proj=tmerc +lat_0=0 +lon_0=106 +k=0.9996 +x_0=500000 +y_0=0 +a=6377276.345 +b=6356075.41314024 +units=m +no_defsPROJCS["Indian 1960 / TM 106 NE",GEOGCS["Indian 1960",DATUM["Indian_1960",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],AUTHORITY["EPSG","6131"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4131"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",106],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3176"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 8i 1/epsg iLGD2006 / Libya TM+proj=tmerc +lat_0=0 +lon_0=17 +k=0.9965000000000001 +x_0=1000000 +y_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defsPROJCS["LGD2006 / Libya TM",GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",17],PARAMETER["scale_factor",0.9965],PARAMETER["false_easting",1000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3177"],AXIS["X",EAST],AXIS["Y",NORTH]] !![j 3oepsg jGR96 / UTM zone 18N+proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GR96 / UTM zone 18N",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3178"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] !![k 3oepsg kGR96 / UTM zone 19N+proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GR96 / UTM zone 19N",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3179"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] !![l 3oepsg lGR96 / UTM zone 20N+proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GR96 / UTM zone 20N",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3180"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] !![m 3oepsg mGR96 / UTM zone 21N+proj=utm +zone=21 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GR96 / UTM zone 21N",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3181"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] !![n 3oepsg nGR96 / UTM zone 22N+proj=utm +zone=22 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GR96 / UTM zone 22N",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3182"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] !![o 3oepsg oGR96 / UTM zone 23N+proj=utm +zone=23 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GR96 / UTM zone 23N",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3183"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] !![p 3oepsg pGR96 / UTM zone 24N+proj=utm +zone=24 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GR96 / UTM zone 24N",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3184"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] !![q 3oepsg qGR96 / UTM zone 25N+proj=utm +zone=25 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GR96 / UTM zone 25N",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3185"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] !![r 3oepsg rGR96 / UTM zone 26N+proj=utm +zone=26 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GR96 / UTM zone 26N",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3186"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] !![s 3oepsg sGR96 / UTM zone 27N+proj=utm +zone=27 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GR96 / UTM zone 27N",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-21],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3187"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] !![t 3oepsg tGR96 / UTM zone 28N+proj=utm +zone=28 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GR96 / UTM zone 28N",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3188"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ""Zu 3mepsg uGR96 / UTM zone 29N+proj=utm +zone=29 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GR96 / UTM zone 29N",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3189"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 8v ?%epsg vLGD2006 / Libya TM zone 5+proj=tmerc +lat_0=0 +lon_0=9 +k=0.99995 +x_0=200000 +y_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defsPROJCS["LGD2006 / Libya TM zone 5",GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.99995],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3190"],AXIS["X",EAST],AXIS["Y",NORTH]] :w ?'epsg wLGD2006 / Libya TM zone 6+proj=tmerc +lat_0=0 +lon_0=11 +k=0.99995 +x_0=200000 +y_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defsPROJCS["LGD2006 / Libya TM zone 6",GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",11],PARAMETER["scale_factor",0.99995],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3191"],AXIS["X",EAST],AXIS["Y",NORTH]] :x ?'epsg xLGD2006 / Libya TM zone 7+proj=tmerc +lat_0=0 +lon_0=13 +k=0.99995 +x_0=200000 +y_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defsPROJCS["LGD2006 / Libya TM zone 7",GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",13],PARAMETER["scale_factor",0.99995],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3192"],AXIS["X",EAST],AXIS["Y",NORTH]] :y ?'epsg yLGD2006 / Libya TM zone 8+proj=tmerc +lat_0=0 +lon_0=15 +k=0.99995 +x_0=200000 +y_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defsPROJCS["LGD2006 / Libya TM zone 8",GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.99995],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3193"],AXIS["X",EAST],AXIS["Y",NORTH]] :z ?'epsg zLGD2006 / Libya TM zone 9+proj=tmerc +lat_0=0 +lon_0=17 +k=0.99995 +x_0=200000 +y_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defsPROJCS["LGD2006 / Libya TM zone 9",GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",17],PARAMETER["scale_factor",0.99995],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3194"],AXIS["X",EAST],AXIS["Y",NORTH]] <{ A)epsg {LGD2006 / Libya TM zone 10+proj=tmerc +lat_0=0 +lon_0=19 +k=0.99995 +x_0=200000 +y_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defsPROJCS["LGD2006 / Libya TM zone 10",GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",19],PARAMETER["scale_factor",0.99995],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3195"],AXIS["X",EAST],AXIS["Y",NORTH]] <| A)epsg |LGD2006 / Libya TM zone 11+proj=tmerc +lat_0=0 +lon_0=21 +k=0.99995 +x_0=200000 +y_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defsPROJCS["LGD2006 / Libya TM zone 11",GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",0.99995],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3196"],AXIS["X",EAST],AXIS["Y",NORTH]] <} A)epsg }LGD2006 / Libya TM zone 12+proj=tmerc +lat_0=0 +lon_0=23 +k=0.99995 +x_0=200000 +y_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defsPROJCS["LGD2006 / Libya TM zone 12",GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",23],PARAMETER["scale_factor",0.99995],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3197"],AXIS["X",EAST],AXIS["Y",NORTH]] <~ A)epsg ~LGD2006 / Libya TM zone 13+proj=tmerc +lat_0=0 +lon_0=25 +k=0.99995 +x_0=200000 +y_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defsPROJCS["LGD2006 / Libya TM zone 13",GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",25],PARAMETER["scale_factor",0.99995],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3198"],AXIS["X",EAST],AXIS["Y",NORTH]]  9C7epsg LGD2006 / UTM zone 32N+proj=utm +zone=32 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defsPROJCS["LGD2006 / UTM zone 32N",GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3199"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  -{epsg FD58 / Iraq zone+proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=45 +k_0=0.9987864078000001 +x_0=1500000 +y_0=1166200 +ellps=clrk80 +units=m +no_defsPROJCS["FD58 / Iraq zone",GEOGCS["FD58",DATUM["Final_Datum_1958",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6132"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4132"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",32.5],PARAMETER["central_meridian",45],PARAMETER["scale_factor",0.9987864078],PARAMETER["false_easting",1500000],PARAMETER["false_northing",1166200],AUTHORITY["EPSG","3200"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  9C9epsg LGD2006 / UTM zone 33N+proj=utm +zone=33 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defsPROJCS["LGD2006 / UTM zone 33N",GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3201"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  9C9epsg LGD2006 / UTM zone 34N+proj=utm +zone=34 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defsPROJCS["LGD2006 / UTM zone 34N",GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3202"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  9C9epsg LGD2006 / UTM zone 35N+proj=utm +zone=35 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defsPROJCS["LGD2006 / UTM zone 35N",GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3203"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] [ ?'Yepsg WGS 84 / SCAR IMW SP19-20+proj=lcc +lat_1=-60.66666666666666 +lat_2=-63.33333333333334 +lat_0=-90 +lon_0=-66 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SP19-20",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-60.66666666666666],PARAMETER["standard_parallel_2",-63.33333333333334],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-66],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3204"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ;(5BO\iv,9FS`mz #0=JWdq~  nepsg n  oepsg o  pepsg p  qepsg q  repsg r  sepsg s  tepsg t  uepsg u  vepsg v  wepsg w  xepsg x  yepsg y  zepsg z  {epsg {  |epsg |  }epsg }  ~epsg ~  epsg   epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg [ ?'Yepsg WGS 84 / SCAR IMW SP21-22+proj=lcc +lat_1=-60.66666666666666 +lat_2=-63.33333333333334 +lat_0=-90 +lon_0=-54 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SP21-22",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-60.66666666666666],PARAMETER["standard_parallel_2",-63.33333333333334],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-54],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3205"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] [ ?'Yepsg WGS 84 / SCAR IMW SP23-24+proj=lcc +lat_1=-60.66666666666666 +lat_2=-63.33333333333334 +lat_0=-90 +lon_0=-42 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SP23-24",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-60.66666666666666],PARAMETER["standard_parallel_2",-63.33333333333334],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-42],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3206"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ] ?)[epsg WGS 84 / SCAR IMW SQ01-02+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=-174 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SQ01-02",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-64.66666666666667],PARAMETER["standard_parallel_2",-67.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-174],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3207"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] [ ?'Yepsg WGS 84 / SCAR IMW SQ19-20+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=-66 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SQ19-20",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-64.66666666666667],PARAMETER["standard_parallel_2",-67.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-66],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3208"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] [ ?'Yepsg WGS 84 / SCAR IMW SQ21-22+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=-54 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SQ21-22",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-64.66666666666667],PARAMETER["standard_parallel_2",-67.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-54],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3209"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Y ?%Wepsg WGS 84 / SCAR IMW SQ37-38+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=42 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SQ37-38",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-64.66666666666667],PARAMETER["standard_parallel_2",-67.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",42],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3210"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Y ?%Wepsg WGS 84 / SCAR IMW SQ39-40+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=54 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SQ39-40",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-64.66666666666667],PARAMETER["standard_parallel_2",-67.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",54],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3211"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]offlrx~ &,28>DJPV\bhntz "(.4:@FLRX^djpv|]^_`abcdfghijklmnopqrstuvwxyz{|}~™Ùęřƙșəʙ˙̙ ͙ Ι Й љ ҙәԙՙ֙יؙٙڙۙܙݙޙߙ !"#$%&'()*+,-./0123456789:;<=>?@ABC D E F G HIJKL Y ?%Wepsg WGS 84 / SCAR IMW SQ41-42+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=66 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SQ41-42",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-64.66666666666667],PARAMETER["standard_parallel_2",-67.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",66],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3212"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Y ?%Wepsg WGS 84 / SCAR IMW SQ43-44+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=78 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SQ43-44",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-64.66666666666667],PARAMETER["standard_parallel_2",-67.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",78],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3213"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Y ?%Wepsg WGS 84 / SCAR IMW SQ45-46+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=90 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SQ45-46",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-64.66666666666667],PARAMETER["standard_parallel_2",-67.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",90],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3214"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] [ ?'Yepsg WGS 84 / SCAR IMW SQ47-48+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=102 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SQ47-48",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-64.66666666666667],PARAMETER["standard_parallel_2",-67.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",102],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3215"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] [ ?'Yepsg WGS 84 / SCAR IMW SQ49-50+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=114 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SQ49-50",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-64.66666666666667],PARAMETER["standard_parallel_2",-67.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",114],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3216"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] [ ?'Yepsg WGS 84 / SCAR IMW SQ51-52+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=126 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SQ51-52",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-64.66666666666667],PARAMETER["standard_parallel_2",-67.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",126],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3217"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] [ ?'Yepsg WGS 84 / SCAR IMW SQ53-54+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=138 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SQ53-54",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-64.66666666666667],PARAMETER["standard_parallel_2",-67.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",138],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3218"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] [ ?'Yepsg WGS 84 / SCAR IMW SQ55-56+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=150 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SQ55-56",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-64.66666666666667],PARAMETER["standard_parallel_2",-67.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",150],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3219"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] [ ?'Yepsg WGS 84 / SCAR IMW SQ57-58+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=162 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SQ57-58",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-64.66666666666667],PARAMETER["standard_parallel_2",-67.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",162],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3220"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ] ?)[epsg WGS 84 / SCAR IMW SR13-14+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=-102 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SR13-14",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.66666666666667],PARAMETER["standard_parallel_2",-71.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-102],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3221"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] [ ?'Yepsg WGS 84 / SCAR IMW SR15-16+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=-90 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SR15-16",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.66666666666667],PARAMETER["standard_parallel_2",-71.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-90],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3222"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] [ ?'Yepsg WGS 84 / SCAR IMW SR17-18+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=-78 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SR17-18",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.66666666666667],PARAMETER["standard_parallel_2",-71.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-78],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3223"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] [ ?'Yepsg WGS 84 / SCAR IMW SR19-20+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=-66 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SR19-20",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.66666666666667],PARAMETER["standard_parallel_2",-71.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-66],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3224"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] [ ?'Yepsg WGS 84 / SCAR IMW SR27-28+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=-18 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SR27-28",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.66666666666667],PARAMETER["standard_parallel_2",-71.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-18],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3225"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Y ?%Wepsg WGS 84 / SCAR IMW SR29-30+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=-6 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SR29-30",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.66666666666667],PARAMETER["standard_parallel_2",-71.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-6],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3226"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] W ?#Uepsg WGS 84 / SCAR IMW SR31-32+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=6 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SR31-32",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.66666666666667],PARAMETER["standard_parallel_2",-71.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",6],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3227"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Y ?%Wepsg WGS 84 / SCAR IMW SR33-34+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=18 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SR33-34",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.66666666666667],PARAMETER["standard_parallel_2",-71.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",18],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3228"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Y ?%Wepsg WGS 84 / SCAR IMW SR35-36+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=30 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SR35-36",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.66666666666667],PARAMETER["standard_parallel_2",-71.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",30],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3229"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Y ?%Wepsg WGS 84 / SCAR IMW SR37-38+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=42 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SR37-38",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.66666666666667],PARAMETER["standard_parallel_2",-71.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",42],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3230"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Y ?%Wepsg WGS 84 / SCAR IMW SR39-40+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=54 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SR39-40",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.66666666666667],PARAMETER["standard_parallel_2",-71.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",54],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3231"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Y ?%Wepsg WGS 84 / SCAR IMW SR41-42+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=66 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SR41-42",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.66666666666667],PARAMETER["standard_parallel_2",-71.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",66],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3232"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Y! ?%Wepsg WGS 84 / SCAR IMW SR43-44+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=78 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SR43-44",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.66666666666667],PARAMETER["standard_parallel_2",-71.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",78],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3233"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Y" ?%Wepsg WGS 84 / SCAR IMW SR45-46+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=90 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SR45-46",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.66666666666667],PARAMETER["standard_parallel_2",-71.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",90],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3234"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] [# ?'Yepsg WGS 84 / SCAR IMW SR47-48+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=102 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SR47-48",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.66666666666667],PARAMETER["standard_parallel_2",-71.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",102],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3235"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] [$ ?'Yepsg WGS 84 / SCAR IMW SR49-50+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=114 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SR49-50",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.66666666666667],PARAMETER["standard_parallel_2",-71.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",114],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3236"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] [% ?'Yepsg WGS 84 / SCAR IMW SR51-52+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=126 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SR51-52",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.66666666666667],PARAMETER["standard_parallel_2",-71.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",126],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3237"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] [& ?'Yepsg WGS 84 / SCAR IMW SR53-54+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=138 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SR53-54",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.66666666666667],PARAMETER["standard_parallel_2",-71.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",138],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3238"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] [' ?'Yepsg WGS 84 / SCAR IMW SR55-56+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=150 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SR55-56",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.66666666666667],PARAMETER["standard_parallel_2",-71.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",150],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3239"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] [( ?'Yepsg WGS 84 / SCAR IMW SR57-58+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=162 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SR57-58",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.66666666666667],PARAMETER["standard_parallel_2",-71.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",162],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3240"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] [) ?'Yepsg WGS 84 / SCAR IMW SR59-60+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=174 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SR59-60",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.66666666666667],PARAMETER["standard_parallel_2",-71.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",174],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3241"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ]* ?)[epsg WGS 84 / SCAR IMW SS04-06+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=-153 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SS04-06",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-72.66666666666667],PARAMETER["standard_parallel_2",-75.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-153],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3242"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ]+ ?)[epsg WGS 84 / SCAR IMW SS07-09+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=-135 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SS07-09",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-72.66666666666667],PARAMETER["standard_parallel_2",-75.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-135],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3243"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ], ?)[epsg WGS 84 / SCAR IMW SS10-12+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=-117 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SS10-12",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-72.66666666666667],PARAMETER["standard_parallel_2",-75.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-117],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3244"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] [- ?'Yepsg WGS 84 / SCAR IMW SS13-15+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=-99 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SS13-15",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-72.66666666666667],PARAMETER["standard_parallel_2",-75.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-99],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3245"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] [. ?'Yepsg WGS 84 / SCAR IMW SS16-18+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=-81 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SS16-18",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-72.66666666666667],PARAMETER["standard_parallel_2",-75.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-81],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3246"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] [/ ?'Yepsg WGS 84 / SCAR IMW SS19-21+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=-63 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SS19-21",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-72.66666666666667],PARAMETER["standard_parallel_2",-75.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-63],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3247"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] [0 ?'Yepsg WGS 84 / SCAR IMW SS25-27+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=-27 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SS25-27",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-72.66666666666667],PARAMETER["standard_parallel_2",-75.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-27],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3248"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Y1 ?%Wepsg WGS 84 / SCAR IMW SS28-30+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=-9 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SS28-30",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-72.66666666666667],PARAMETER["standard_parallel_2",-75.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-9],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3249"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] W2 ?#Uepsg WGS 84 / SCAR IMW SS31-33+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=9 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SS31-33",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-72.66666666666667],PARAMETER["standard_parallel_2",-75.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",9],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3250"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Y3 ?%Wepsg WGS 84 / SCAR IMW SS34-36+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=27 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SS34-36",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-72.66666666666667],PARAMETER["standard_parallel_2",-75.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",27],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3251"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Y4 ?%Wepsg WGS 84 / SCAR IMW SS37-39+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=45 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SS37-39",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-72.66666666666667],PARAMETER["standard_parallel_2",-75.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",45],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3252"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Y5 ?%Wepsg WGS 84 / SCAR IMW SS40-42+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=63 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SS40-42",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-72.66666666666667],PARAMETER["standard_parallel_2",-75.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",63],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3253"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Y6 ?%Wepsg WGS 84 / SCAR IMW SS43-45+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=81 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SS43-45",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-72.66666666666667],PARAMETER["standard_parallel_2",-75.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",81],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3254"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Y7 ?%Wepsg WGS 84 / SCAR IMW SS46-48+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=99 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SS46-48",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-72.66666666666667],PARAMETER["standard_parallel_2",-75.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",99],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3255"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] [8 ?'Yepsg WGS 84 / SCAR IMW SS49-51+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=117 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SS49-51",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-72.66666666666667],PARAMETER["standard_parallel_2",-75.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",117],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3256"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] [9 ?'Yepsg WGS 84 / SCAR IMW SS52-54+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=135 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SS52-54",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-72.66666666666667],PARAMETER["standard_parallel_2",-75.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",135],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3257"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] [: ?'Yepsg WGS 84 / SCAR IMW SS55-57+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=153 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SS55-57",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-72.66666666666667],PARAMETER["standard_parallel_2",-75.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",153],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3258"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] [; ?'Yepsg WGS 84 / SCAR IMW SS58-60+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=171 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SS58-60",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-72.66666666666667],PARAMETER["standard_parallel_2",-75.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",171],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3259"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ]< ?)[epsg WGS 84 / SCAR IMW ST01-04+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=-168 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW ST01-04",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-76.66666666666667],PARAMETER["standard_parallel_2",-79.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-168],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3260"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ]= ?)[epsg WGS 84 / SCAR IMW ST05-08+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=-144 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW ST05-08",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-76.66666666666667],PARAMETER["standard_parallel_2",-79.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-144],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3261"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ]> ?)[epsg WGS 84 / SCAR IMW ST09-12+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=-120 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW ST09-12",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-76.66666666666667],PARAMETER["standard_parallel_2",-79.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-120],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3262"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] [? ?'Yepsg WGS 84 / SCAR IMW ST13-16+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=-96 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW ST13-16",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-76.66666666666667],PARAMETER["standard_parallel_2",-79.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-96],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3263"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] [@ ?'Yepsg WGS 84 / SCAR IMW ST17-20+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=-72 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW ST17-20",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-76.66666666666667],PARAMETER["standard_parallel_2",-79.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-72],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3264"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ;(5BO\iv,9FS`mz #0=JWdq~  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg [A ?'Yepsg WGS 84 / SCAR IMW ST21-24+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=-48 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW ST21-24",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-76.66666666666667],PARAMETER["standard_parallel_2",-79.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-48],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3265"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] [B ?'Yepsg WGS 84 / SCAR IMW ST25-28+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=-24 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW ST25-28",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-76.66666666666667],PARAMETER["standard_parallel_2",-79.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-24],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3266"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WC ?#Uepsg WGS 84 / SCAR IMW ST29-32+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW ST29-32",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-76.66666666666667],PARAMETER["standard_parallel_2",-79.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",0],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3267"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] YD ?%Wepsg WGS 84 / SCAR IMW ST33-36+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=24 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW ST33-36",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-76.66666666666667],PARAMETER["standard_parallel_2",-79.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",24],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3268"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] YE ?%Wepsg WGS 84 / SCAR IMW ST37-40+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=48 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW ST37-40",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-76.66666666666667],PARAMETER["standard_parallel_2",-79.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",48],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3269"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] YF ?%Wepsg WGS 84 / SCAR IMW ST41-44+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=72 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW ST41-44",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-76.66666666666667],PARAMETER["standard_parallel_2",-79.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",72],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3270"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] YG ?%Wepsg WGS 84 / SCAR IMW ST45-48+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=96 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW ST45-48",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-76.66666666666667],PARAMETER["standard_parallel_2",-79.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",96],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3271"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] [H ?'Yepsg WGS 84 / SCAR IMW ST49-52+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=120 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW ST49-52",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-76.66666666666667],PARAMETER["standard_parallel_2",-79.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",120],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3272"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] [I ?'Yepsg WGS 84 / SCAR IMW ST53-56+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=144 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW ST53-56",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-76.66666666666667],PARAMETER["standard_parallel_2",-79.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",144],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3273"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] [J ?'Yepsg WGS 84 / SCAR IMW ST57-60+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=168 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW ST57-60",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-76.66666666666667],PARAMETER["standard_parallel_2",-79.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",168],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3274"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  K ?[epsg WGS 84 / SCAR IMW SU01-05+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=-165 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SU01-05",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAMETER["central_meridian",-165],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3275"],AXIS["Easting",UNKNOWN],AXIS["Northing",UNKNOWN]]  L ?[epsg WGS 84 / SCAR IMW SU06-10+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=-135 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SU06-10",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAMETER["central_meridian",-135],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3276"],AXIS["Easting",UNKNOWN],AXIS["Northing",UNKNOWN]]  M ?[epsg WGS 84 / SCAR IMW SU11-15+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=-105 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SU11-15",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAMETER["central_meridian",-105],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3277"],AXIS["Easting",UNKNOWN],AXIS["Northing",UNKNOWN]]  N ?Yepsg WGS 84 / SCAR IMW SU16-20+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=-75 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SU16-20",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3278"],AXIS["Easting",UNKNOWN],AXIS["Northing",UNKNOWN]]  O ?Yepsg WGS 84 / SCAR IMW SU21-25+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=-45 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SU21-25",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAMETER["central_meridian",-45],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3279"],AXIS["Easting",UNKNOWN],AXIS["Northing",UNKNOWN]]  P ?Yepsg WGS 84 / SCAR IMW SU26-30+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=-15 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SU26-30",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAMETER["central_meridian",-15],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3280"],AXIS["Easting",UNKNOWN],AXIS["Northing",UNKNOWN]] Q ?Wepsg WGS 84 / SCAR IMW SU31-35+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=15 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SU31-35",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAMETER["central_meridian",15],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3281"],AXIS["Easting",UNKNOWN],AXIS["Northing",UNKNOWN]] R ?Wepsg WGS 84 / SCAR IMW SU36-40+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=45 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SU36-40",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAMETER["central_meridian",45],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3282"],AXIS["Easting",UNKNOWN],AXIS["Northing",UNKNOWN]] S ?Wepsg WGS 84 / SCAR IMW SU41-45+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=75 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SU41-45",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAMETER["central_meridian",75],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3283"],AXIS["Easting",UNKNOWN],AXIS["Northing",UNKNOWN]]  T ?Yepsg WGS 84 / SCAR IMW SU46-50+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=105 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SU46-50",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAMETER["central_meridian",105],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3284"],AXIS["Easting",UNKNOWN],AXIS["Northing",UNKNOWN]]  U ?Yepsg WGS 84 / SCAR IMW SU51-55+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=135 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SU51-55",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAMETER["central_meridian",135],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3285"],AXIS["Easting",UNKNOWN],AXIS["Northing",UNKNOWN]]  V ?Yepsg WGS 84 / SCAR IMW SU56-60+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=165 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SU56-60",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAMETER["central_meridian",165],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3286"],AXIS["Easting",UNKNOWN],AXIS["Northing",UNKNOWN]]  W ?[epsg WGS 84 / SCAR IMW SV01-10+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=-150 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SV01-10",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAMETER["central_meridian",-150],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3287"],AXIS["Easting",UNKNOWN],AXIS["Northing",UNKNOWN]]  X ?Yepsg WGS 84 / SCAR IMW SV11-20+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=-90 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SV11-20",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAMETER["central_meridian",-90],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3288"],AXIS["Easting",UNKNOWN],AXIS["Northing",UNKNOWN]]  Y ?Yepsg WGS 84 / SCAR IMW SV21-30+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=-30 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SV21-30",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAMETER["central_meridian",-30],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3289"],AXIS["Easting",UNKNOWN],AXIS["Northing",UNKNOWN]] Z ?Wepsg WGS 84 / SCAR IMW SV31-40+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=30 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SV31-40",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAMETER["central_meridian",30],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3290"],AXIS["Easting",UNKNOWN],AXIS["Northing",UNKNOWN]] [ ?Wepsg WGS 84 / SCAR IMW SV41-50+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=90 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SV41-50",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAMETER["central_meridian",90],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3291"],AXIS["Easting",UNKNOWN],AXIS["Northing",UNKNOWN]]  \ ?Yepsg WGS 84 / SCAR IMW SV51-60+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=150 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SV51-60",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAMETER["central_meridian",150],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3292"],AXIS["Easting",UNKNOWN],AXIS["Northing",UNKNOWN]] ] ?Uepsg WGS 84 / SCAR IMW SW01-60+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=0 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SW01-60",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAMETER["central_meridian",0],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3293"],AXIS["Easting",UNKNOWN],AXIS["Northing",UNKNOWN]] u^ Y'sepsg WGS 84 / USGS Transantarctic Mountains+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-78 +lon_0=162 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / USGS Transantarctic Mountains",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-76.66666666666667],PARAMETER["standard_parallel_2",-79.33333333333333],PARAMETER["latitude_of_origin",-78],PARAMETER["central_meridian",162],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3294"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ''U`1{ epsg RGPF / UTM zone 5S+proj=utm +zone=5 +south +ellps=GRS80 +units=m +no_defsPROJCS["RGPF / UTM zone 5S",GEOGCS["RGPF",DATUM["Reseau_Geodesique_de_la_Polynesie_Francaise",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6687"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4687"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-153],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3296"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ''Ua1{ epsg RGPF / UTM zone 6S+proj=utm +zone=6 +south +ellps=GRS80 +units=m +no_defsPROJCS["RGPF / UTM zone 6S",GEOGCS["RGPF",DATUM["Reseau_Geodesique_de_la_Polynesie_Francaise",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6687"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4687"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-147],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3297"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ''Ub1{ epsg RGPF / UTM zone 7S+proj=utm +zone=7 +south +ellps=GRS80 +units=m +no_defsPROJCS["RGPF / UTM zone 7S",GEOGCS["RGPF",DATUM["Reseau_Geodesique_de_la_Polynesie_Francaise",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6687"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4687"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-141],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3298"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ''Uc1{ epsg RGPF / UTM zone 8S+proj=utm +zone=8 +south +ellps=GRS80 +units=m +no_defsPROJCS["RGPF / UTM zone 8S",GEOGCS["RGPF",DATUM["Reseau_Geodesique_de_la_Polynesie_Francaise",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6687"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4687"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-135],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3299"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ""Zd Q]epsg Estonian Coordinate System of 1992+proj=lcc +lat_1=59.33333333333334 +lat_2=58 +lat_0=57.51755393055556 +lon_0=24 +x_0=500000 +y_0=6375000 +ellps=GRS80 +towgs84=0.055,-0.541,-0.185,0.0183,-0.0003,-0.007,-0.014 +units=m +no_defsPROJCS["Estonian Coordinate System of 1992",GEOGCS["EST92",DATUM["Estonia_1992",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0.055,-0.541,-0.185,0.0183,-0.0003,-0.007,-0.014],AUTHORITY["EPSG","6133"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4133"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",59.33333333333334],PARAMETER["standard_parallel_2",58],PARAMETER["latitude_of_origin",57.51755393055556],PARAMETER["central_meridian",24],PARAMETER["false_easting",500000],PARAMETER["false_northing",6375000],AUTHORITY["EPSG","3300"],AXIS["X",NORTH],AXIS["Y",EAST]] hhe QIepsg Estonian Coordinate System of 1997+proj=lcc +lat_1=59.33333333333334 +lat_2=58 +lat_0=57.51755393055556 +lon_0=24 +x_0=500000 +y_0=6375000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["Estonian Coordinate System of 1997",GEOGCS["EST97",DATUM["Estonia_1997",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6180"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4180"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",59.33333333333334],PARAMETER["standard_parallel_2",58],PARAMETER["latitude_of_origin",57.51755393055556],PARAMETER["central_meridian",24],PARAMETER["false_easting",500000],PARAMETER["false_northing",6375000],AUTHORITY["EPSG","3301"],AXIS["X",NORTH],AXIS["Y",EAST]] ++QfCyqepsg IGN63 Hiva Oa / UTM zone 7S+proj=utm +zone=7 +south +ellps=intl +units=m +no_defsPROJCS["IGN63 Hiva Oa / UTM zone 7S",GEOGCS["IGN63 Hiva Oa",DATUM["IGN63_Hiva_Oa",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6689"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4689"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-141],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3302"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Ng ?}iepsg Fatu Iva 72 / UTM zone 7S+proj=utm +zone=7 +south +ellps=intl +towgs84=347.103,1078.12,2623.92,-33.8875,70.6773,-9.3943,186.074 +units=m +no_defsPROJCS["Fatu Iva 72 / UTM zone 7S",GEOGCS["Fatu Iva 72",DATUM["Fatu_Iva_72",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[347.103,1078.12,2623.92,-33.8875,70.6773,-9.3943,186.074],AUTHORITY["EPSG","6688"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4688"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-141],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3303"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ;;Ah;yYepsg Tahiti 79 / UTM zone 6S+proj=utm +zone=6 +south +ellps=intl +units=m +no_defsPROJCS["Tahiti 79 / UTM zone 6S",GEOGCS["Tahiti 79",DATUM["Tahiti_79",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6690"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4690"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-147],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3304"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Bi ;yYepsg Moorea 87 / UTM zone 6S+proj=utm +zone=6 +south +ellps=intl +towgs84=215.525,149.593,176.229,-3.2624,-1.692,-1.1571,10.4773 +units=m +no_defsPROJCS["Moorea 87 / UTM zone 6S",GEOGCS["Moorea 87",DATUM["Moorea_87",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[215.525,149.593,176.229,-3.2624,-1.692,-1.1571,10.4773],AUTHORITY["EPSG","6691"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4691"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-147],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3305"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] j =G-epsg Maupiti 83 / UTM zone 5S+proj=utm +zone=5 +south +ellps=intl +towgs84=217.037,86.959,23.956,0,0,0,0 +units=m +no_defsPROJCS["Maupiti 83 / UTM zone 5S",GEOGCS["Maupiti 83",DATUM["Maupiti_83",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[217.037,86.959,23.956,0,0,0,0],AUTHORITY["EPSG","6692"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4692"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-153],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3306"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] k G+epsg Nakhl-e Ghanem / UTM zone 39N+proj=utm +zone=39 +ellps=WGS84 +towgs84=0,-0.15,0.68,0,0,0,0 +units=m +no_defsPROJCS["Nakhl-e Ghanem / UTM zone 39N",GEOGCS["Nakhl-e Ghanem",DATUM["Nakhl_e_Ghanem",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,-0.15,0.68,0,0,0,0],AUTHORITY["EPSG","6693"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4693"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3307"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] yl 3)epsg GDA94 / NSW Lambert+proj=lcc +lat_1=-30.75 +lat_2=-35.75 +lat_0=-33.25 +lon_0=147 +x_0=9300000 +y_0=4500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GDA94 / NSW Lambert",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-30.75],PARAMETER["standard_parallel_2",-35.75],PARAMETER["latitude_of_origin",-33.25],PARAMETER["central_meridian",147],PARAMETER["false_easting",9300000],PARAMETER["false_northing",4500000],AUTHORITY["EPSG","3308"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 9m ?yCepsg NAD27 / California Albers+proj=aea +lat_1=34 +lat_2=40.5 +lat_0=0 +lon_0=-120 +x_0=0 +y_0=-4000000 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / California Albers",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["standard_parallel_1",34],PARAMETER["standard_parallel_2",40.5],PARAMETER["latitude_of_center",0],PARAMETER["longitude_of_center",-120],PARAMETER["false_easting",0],PARAMETER["false_northing",-4000000],AUTHORITY["EPSG","3309"],AXIS["X",EAST],AXIS["Y",NORTH]] /n ?w1epsg NAD83 / California Albers+proj=aea +lat_1=34 +lat_2=40.5 +lat_0=0 +lon_0=-120 +x_0=0 +y_0=-4000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / California Albers",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["standard_parallel_1",34],PARAMETER["standard_parallel_2",40.5],PARAMETER["latitude_of_center",0],PARAMETER["longitude_of_center",-120],PARAMETER["false_easting",0],PARAMETER["false_northing",-4000000],AUTHORITY["EPSG","3310"],AXIS["X",EAST],AXIS["Y",NORTH]] ?o K]_epsg NAD83(HARN) / California Albers+proj=aea +lat_1=34 +lat_2=40.5 +lat_0=0 +lon_0=-120 +x_0=0 +y_0=-4000000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / California Albers",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["standard_parallel_1",34],PARAMETER["standard_parallel_2",40.5],PARAMETER["latitude_of_center",0],PARAMETER["longitude_of_center",-120],PARAMETER["false_easting",0],PARAMETER["false_northing",-4000000],AUTHORITY["EPSG","3311"],AXIS["X",EAST],AXIS["Y",NORTH]] yp 5)epsg CSG67 / UTM zone 21N+proj=utm +zone=21 +ellps=intl +towgs84=-186,230,110,0,0,0,0 +units=m +no_defsPROJCS["CSG67 / UTM zone 21N",GEOGCS["CSG67",DATUM["Centre_Spatial_Guyanais_1967",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-186,230,110,0,0,0,0],AUTHORITY["EPSG","6623"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4623"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3312"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] {q 7)epsg RGFG95 / UTM zone 21N+proj=utm +zone=21 +ellps=GRS80 +towgs84=2,2,-2,0,0,0,0 +units=m +no_defsPROJCS["RGFG95 / UTM zone 21N",GEOGCS["RGFG95",DATUM["Reseau_Geodesique_Francais_Guyane_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[2,2,-2,0,0,0,0],AUTHORITY["EPSG","6624"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4624"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3313"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ^^r c%=epsg Katanga 1955 / Katanga Lambert (deprecated)+proj=lcc +lat_1=-6.5 +lat_2=-11.5 +lat_0=0 +lon_0=26 +x_0=0 +y_0=0 +ellps=clrk66 +towgs84=-103.746,-9.614,-255.95,0,0,0,0 +units=m +no_defsPROJCS["Katanga 1955 / Katanga Lambert (deprecated)",GEOGCS["Katanga 1955",DATUM["Katanga_1955",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0],AUTHORITY["EPSG","6695"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4695"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-6.5],PARAMETER["standard_parallel_2",-11.5],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",26],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3314"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Us Y Mepsg Katanga 1955 / Katanga TM (deprecated)+proj=tmerc +lat_0=-9 +lon_0=26 +k=0.9998 +x_0=0 +y_0=0 +ellps=clrk66 +towgs84=-103.746,-9.614,-255.95,0,0,0,0 +units=m +no_defsPROJCS["Katanga 1955 / Katanga TM (deprecated)",GEOGCS["Katanga 1955",DATUM["Katanga_1955",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0],AUTHORITY["EPSG","6695"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4695"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-9],PARAMETER["central_meridian",26],PARAMETER["scale_factor",0.9998],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3315"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] t GQsepsg Kasai 1953 / Congo TM zone 22+proj=tmerc +lat_0=0 +lon_0=22 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defsPROJCS["Kasai 1953 / Congo TM zone 22",GEOGCS["Kasai 1953",DATUM["Kasai_1953",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6696"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4696"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",22],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3316"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] u GQsepsg Kasai 1953 / Congo TM zone 24+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defsPROJCS["Kasai 1953 / Congo TM zone 24",GEOGCS["Kasai 1953",DATUM["Kasai_1953",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6696"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4696"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",24],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3317"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] *v CQIepsg IGC 1962 / Congo TM zone 12+proj=tmerc +lat_0=0 +lon_0=12 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defsPROJCS["IGC 1962 / Congo TM zone 12",GEOGCS["IGC 1962 6th Parallel South",DATUM["IGC_1962_Arc_of_the_6th_Parallel_South",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6697"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4697"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",12],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3318"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] *w CQIepsg IGC 1962 / Congo TM zone 14+proj=tmerc +lat_0=0 +lon_0=14 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defsPROJCS["IGC 1962 / Congo TM zone 14",GEOGCS["IGC 1962 6th Parallel South",DATUM["IGC_1962_Arc_of_the_6th_Parallel_South",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6697"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4697"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",14],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3319"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] *x CQIepsg IGC 1962 / Congo TM zone 16+proj=tmerc +lat_0=0 +lon_0=16 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defsPROJCS["IGC 1962 / Congo TM zone 16",GEOGCS["IGC 1962 6th Parallel South",DATUM["IGC_1962_Arc_of_the_6th_Parallel_South",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6697"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4697"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",16],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3320"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] *y CQIepsg IGC 1962 / Congo TM zone 18+proj=tmerc +lat_0=0 +lon_0=18 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defsPROJCS["IGC 1962 / Congo TM zone 18",GEOGCS["IGC 1962 6th Parallel South",DATUM["IGC_1962_Arc_of_the_6th_Parallel_South",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6697"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4697"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",18],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3321"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] *z CQIepsg IGC 1962 / Congo TM zone 20+proj=tmerc +lat_0=0 +lon_0=20 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defsPROJCS["IGC 1962 / Congo TM zone 20",GEOGCS["IGC 1962 6th Parallel South",DATUM["IGC_1962_Arc_of_the_6th_Parallel_South",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6697"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4697"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",20],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3322"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] *{ CQIepsg IGC 1962 / Congo TM zone 22+proj=tmerc +lat_0=0 +lon_0=22 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defsPROJCS["IGC 1962 / Congo TM zone 22",GEOGCS["IGC 1962 6th Parallel South",DATUM["IGC_1962_Arc_of_the_6th_Parallel_South",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6697"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4697"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",22],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3323"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] *| CQIepsg IGC 1962 / Congo TM zone 24+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defsPROJCS["IGC 1962 / Congo TM zone 24",GEOGCS["IGC 1962 6th Parallel South",DATUM["IGC_1962_Arc_of_the_6th_Parallel_South",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6697"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4697"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",24],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3324"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]offlrx~ &,28>DJPV\bhntz "(.4:@FLRX^djpv|NOPQRSTUVWXYZ [!\"]#^$`%a&b'c(d)e*f+g,h-i.j/k0l1m2n3o4p5q6r7s8t9u:v;wz?{@|B}D~EFGHIJKLMNO P Q R S TUVWXYZ[\]^_`abcdef g!h"i#j$k%l&m'n(o)p*q+r,s-t.u/v0w1x2y3z4{5|6}7~89:;<= *} CQIepsg IGC 1962 / Congo TM zone 26+proj=tmerc +lat_0=0 +lon_0=26 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defsPROJCS["IGC 1962 / Congo TM zone 26",GEOGCS["IGC 1962 6th Parallel South",DATUM["IGC_1962_Arc_of_the_6th_Parallel_South",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6697"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4697"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",26],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3325"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ;(5BO\iv,9FS`mz #0=JWdq~  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg  epsg  epsg  epsg  epsg  epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg  !epsg ! *~ CQIepsg IGC 1962 / Congo TM zone 28+proj=tmerc +lat_0=0 +lon_0=28 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defsPROJCS["IGC 1962 / Congo TM zone 28",GEOGCS["IGC 1962 6th Parallel South",DATUM["IGC_1962_Arc_of_the_6th_Parallel_South",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6697"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4697"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",28],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3326"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] * CQIepsg IGC 1962 / Congo TM zone 30+proj=tmerc +lat_0=0 +lon_0=30 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defsPROJCS["IGC 1962 / Congo TM zone 30",GEOGCS["IGC 1962 6th Parallel South",DATUM["IGC_1962_Arc_of_the_6th_Parallel_South",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6697"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4697"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",30],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3327"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 3 Cepsg Pulkovo 1942(58) / GUGiK-80+proj=sterea +lat_0=52.16666666666666 +lon_0=19.16666666666667 +k=0.999714 +x_0=500000 +y_0=500000 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(58) / GUGiK-80",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Oblique_Stereographic"],PARAMETER["latitude_of_origin",52.16666666666666],PARAMETER["central_meridian",19.16666666666667],PARAMETER["scale_factor",0.999714],PARAMETER["false_easting",500000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","3328"],AXIS["X",NORTH],AXIS["Y",EAST]]  k9mepsg Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 5+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 5",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",1],PARAMETER["false_easting",5500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3329"],AXIS["X",NORTH],AXIS["Y",EAST]]  k9mepsg Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 6+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=6500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 6",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",18],PARAMETER["scale_factor",1],PARAMETER["false_easting",6500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3330"],AXIS["X",NORTH],AXIS["Y",EAST]]  k9mepsg Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 7+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=7500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 7",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",1],PARAMETER["false_easting",7500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3331"],AXIS["X",NORTH],AXIS["Y",EAST]]  k9mepsg Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 8+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=8500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 8",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",24],PARAMETER["scale_factor",1],PARAMETER["false_easting",8500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3332"],AXIS["X",NORTH],AXIS["Y",EAST]]   r Y9[epsg Pulkovo 1942(58) / Gauss-Kruger zone 3+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=3500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(58) / Gauss-Kruger zone 3",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",1],PARAMETER["false_easting",3500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3333"],AXIS["X",NORTH],AXIS["Y",EAST]]   r Y9[epsg Pulkovo 1942(58) / Gauss-Kruger zone 4+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=4500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(58) / Gauss-Kruger zone 4",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",1],PARAMETER["false_easting",4500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3334"],AXIS["X",NORTH],AXIS["Y",EAST]]   r Y9[epsg Pulkovo 1942(58) / Gauss-Kruger zone 5+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=5500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(58) / Gauss-Kruger zone 5",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",1],PARAMETER["false_easting",5500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3335"],AXIS["X",NORTH],AXIS["Y",EAST]] # O7Iepsg IGN 1962 Kerguelen / UTM zone 42S+proj=utm +zone=42 +south +ellps=intl +towgs84=145,-187,103,0,0,0,0 +units=m +no_defsPROJCS["IGN 1962 Kerguelen / UTM zone 42S",GEOGCS["IGN 1962 Kerguelen",DATUM["IGN_1962_Kerguelen",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[145,-187,103,0,0,0,0],AUTHORITY["EPSG","6698"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4698"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3336"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] QQ+ Iepsg Le Pouce 1934 / Mauritius Grid+proj=lcc +lat_1=-20.19506944444445 +lat_0=-20.19506944444445 +lon_0=57.52182777777778 +k_0=1 +x_0=1000000 +y_0=1000000 +ellps=clrk80 +towgs84=-770.1,158.4,-498.2,0,0,0,0 +units=m +no_defsPROJCS["Le Pouce 1934 / Mauritius Grid",GEOGCS["Le Pouce 1934",DATUM["Le_Pouce_1934",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-770.1,158.4,-498.2,0,0,0,0],AUTHORITY["EPSG","6699"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4699"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",-20.19506944444445],PARAMETER["central_meridian",57.52182777777778],PARAMETER["scale_factor",1],PARAMETER["false_easting",1000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","3337"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  7gepsg NAD83 / Alaska Albers+proj=aea +lat_1=55 +lat_2=65 +lat_0=50 +lon_0=-154 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Alaska Albers",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["standard_parallel_1",55],PARAMETER["standard_parallel_2",65],PARAMETER["latitude_of_center",50],PARAMETER["longitude_of_center",-154],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3338"],AXIS["X",EAST],AXIS["Y",NORTH]] c Esepsg IGCB 1955 / Congo TM zone 12+proj=tmerc +lat_0=0 +lon_0=12 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +towgs84=-79.9,-158,-168.9,0,0,0,0 +units=m +no_defsPROJCS["IGCB 1955 / Congo TM zone 12",GEOGCS["IGCB 1955",DATUM["Institut_Geographique_du_Congo_Belge_1955",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-79.9,-158,-168.9,0,0,0,0],AUTHORITY["EPSG","6701"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4701"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",12],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3339"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] c Esepsg IGCB 1955 / Congo TM zone 14+proj=tmerc +lat_0=0 +lon_0=14 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +towgs84=-79.9,-158,-168.9,0,0,0,0 +units=m +no_defsPROJCS["IGCB 1955 / Congo TM zone 14",GEOGCS["IGCB 1955",DATUM["Institut_Geographique_du_Congo_Belge_1955",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-79.9,-158,-168.9,0,0,0,0],AUTHORITY["EPSG","6701"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4701"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",14],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3340"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] c Esepsg IGCB 1955 / Congo TM zone 16+proj=tmerc +lat_0=0 +lon_0=16 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +towgs84=-79.9,-158,-168.9,0,0,0,0 +units=m +no_defsPROJCS["IGCB 1955 / Congo TM zone 16",GEOGCS["IGCB 1955",DATUM["Institut_Geographique_du_Congo_Belge_1955",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-79.9,-158,-168.9,0,0,0,0],AUTHORITY["EPSG","6701"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4701"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",16],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3341"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 2 =Ekepsg IGCB 1955 / UTM zone 33S+proj=utm +zone=33 +south +ellps=clrk80 +towgs84=-79.9,-158,-168.9,0,0,0,0 +units=m +no_defsPROJCS["IGCB 1955 / UTM zone 33S",GEOGCS["IGCB 1955",DATUM["Institut_Geographique_du_Congo_Belge_1955",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-79.9,-158,-168.9,0,0,0,0],AUTHORITY["EPSG","6701"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4701"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3342"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] } Iepsg Mauritania 1999 / UTM zone 28N+proj=utm +zone=28 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["Mauritania 1999 / UTM zone 28N",GEOGCS["Mauritania 1999",DATUM["Mauritania_1999",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6702"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4702"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3343"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] | Iepsg Mauritania 1999 / UTM zone 29N+proj=utm +zone=29 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["Mauritania 1999 / UTM zone 29N",GEOGCS["Mauritania 1999",DATUM["Mauritania_1999",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6702"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4702"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3344"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] | Iepsg Mauritania 1999 / UTM zone 30N+proj=utm +zone=30 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["Mauritania 1999 / UTM zone 30N",GEOGCS["Mauritania 1999",DATUM["Mauritania_1999",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6702"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4702"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3345"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  5oeepsg LKS94 / Lithuania TM+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9998 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["LKS94 / Lithuania TM",GEOGCS["LKS94",DATUM["Lithuania_1994_ETRS89",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6126"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4669"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",24],PARAMETER["scale_factor",0.9998],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3346"],AXIS["X",NORTH],AXIS["Y",EAST]] }} O)epsg NAD83 / Statistics Canada Lambert+proj=lcc +lat_1=49 +lat_2=77 +lat_0=63.390675 +lon_0=-91.86666666666666 +x_0=6200000 +y_0=3000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Statistics Canada Lambert",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",49],PARAMETER["standard_parallel_2",77],PARAMETER["latitude_of_origin",63.390675],PARAMETER["central_meridian",-91.86666666666666],PARAMETER["false_easting",6200000],PARAMETER["false_northing",3000000],AUTHORITY["EPSG","3347"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] jj [Cepsg NAD83(CSRS) / Statistics Canada Lambert+proj=lcc +lat_1=49 +lat_2=77 +lat_0=63.390675 +lon_0=-91.86666666666666 +x_0=6200000 +y_0=3000000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / Statistics Canada Lambert",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",49],PARAMETER["standard_parallel_2",77],PARAMETER["latitude_of_origin",63.390675],PARAMETER["central_meridian",-91.86666666666666],PARAMETER["false_easting",6200000],PARAMETER["false_northing",3000000],AUTHORITY["EPSG","3348"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] EE7 Q7oepsg WGS 84 / PDC Mercator (deprecated)+proj=merc +lon_0=-150 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / PDC Mercator (deprecated)",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Mercator_1SP"],PARAMETER["central_meridian",-150],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3349"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]   CAepsg Pulkovo 1942 / CS63 zone C0+proj=tmerc +lat_0=0.1 +lon_0=21.95 +k=1 +x_0=250000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / CS63 zone C0",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0.1],PARAMETER["central_meridian",21.95],PARAMETER["scale_factor",1],PARAMETER["false_easting",250000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3350"],AXIS["X",NORTH],AXIS["Y",EAST]]   CCepsg Pulkovo 1942 / CS63 zone C1+proj=tmerc +lat_0=0.1 +lon_0=24.95 +k=1 +x_0=1250000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / CS63 zone C1",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0.1],PARAMETER["central_meridian",24.95],PARAMETER["scale_factor",1],PARAMETER["false_easting",1250000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3351"],AXIS["X",NORTH],AXIS["Y",EAST]]   CCepsg Pulkovo 1942 / CS63 zone C2+proj=tmerc +lat_0=0.1 +lon_0=27.95 +k=1 +x_0=2250000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / CS63 zone C2",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0.1],PARAMETER["central_meridian",27.95],PARAMETER["scale_factor",1],PARAMETER["false_easting",2250000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3352"],AXIS["X",NORTH],AXIS["Y",EAST]] %%WI{uepsg Mhast (onshore) / UTM zone 32S+proj=utm +zone=32 +south +ellps=intl +units=m +no_defsPROJCS["Mhast (onshore) / UTM zone 32S",GEOGCS["Mhast (onshore)",DATUM["Mhast_onshore",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6704"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4704"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3353"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] !![K{{epsg Mhast (offshore) / UTM zone 32S+proj=utm +zone=32 +south +ellps=intl +units=m +no_defsPROJCS["Mhast (offshore) / UTM zone 32S",GEOGCS["Mhast (offshore)",DATUM["Mhast_offshore",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6705"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4705"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3354"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] i Yqepsg Egypt Gulf of Suez S-650 TL / Red Belt+proj=tmerc +lat_0=30 +lon_0=31 +k=1 +x_0=615000 +y_0=810000 +ellps=helmert +towgs84=-146.21,112.63,4.05,0,0,0,0 +units=m +no_defsPROJCS["Egypt Gulf of Suez S-650 TL / Red Belt",GEOGCS["Egypt Gulf of Suez S-650 TL",DATUM["Egypt_Gulf_of_Suez_S_650_TL",SPHEROID["Helmert 1906",6378200,298.3,AUTHORITY["EPSG","7020"]],TOWGS84[-146.21,112.63,4.05,0,0,0,0],AUTHORITY["EPSG","6706"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4706"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",30],PARAMETER["central_meridian",31],PARAMETER["scale_factor",1],PARAMETER["false_easting",615000],PARAMETER["false_northing",810000],AUTHORITY["EPSG","3355"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] % M5Qepsg Grand Cayman 1959 / UTM zone 17N+proj=utm +zone=17 +ellps=clrk66 +towgs84=67.8,106.1,138.8,0,0,0,0 +units=m +no_defsPROJCS["Grand Cayman 1959 / UTM zone 17N",GEOGCS["Grand Cayman 1959",DATUM["Grand_Cayman_1959",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[67.8,106.1,138.8,0,0,0,0],AUTHORITY["EPSG","6723"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4723"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3356"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] dOqepsg Little Cayman 1961 / UTM zone 17N+proj=utm +zone=17 +ellps=clrk66 +units=m +no_defsPROJCS["Little Cayman 1961 / UTM zone 17N",GEOGCS["Little Cayman 1961",DATUM["Little_Cayman_1961",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6726"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4726"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3357"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] z Eepsg NAD83(HARN) / North Carolina+proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333334 +lat_0=33.75 +lon_0=-79 +x_0=609601.22 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / North Carolina",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.16666666666666],PARAMETER["standard_parallel_2",34.33333333333334],PARAMETER["latitude_of_origin",33.75],PARAMETER["central_meridian",-79],PARAMETER["false_easting",609601.22],PARAMETER["false_northing",0],AUTHORITY["EPSG","3358"],AXIS["X",EAST],AXIS["Y",NORTH]] HH4 m/Uepsg NAD83(HARN) / North Carolina (ftUS) (deprecated)+proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333334 +lat_0=33.75 +lon_0=-79 +x_0=609601.2192024385 +y_0=0 +ellps=GRS80 +units=ft +no_defsPROJCS["NAD83(HARN) / North Carolina (ftUS) (deprecated)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.16666666666666],PARAMETER["standard_parallel_2",34.33333333333334],PARAMETER["latitude_of_origin",33.75],PARAMETER["central_meridian",-79],PARAMETER["false_easting",2000004.000008],PARAMETER["false_northing",0],AUTHORITY["EPSG","3359"],AXIS["X",EAST],AXIS["Y",NORTH]] r Eepsg NAD83(HARN) / South Carolina+proj=lcc +lat_1=34.83333333333334 +lat_2=32.5 +lat_0=31.83333333333333 +lon_0=-81 +x_0=609600 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / South Carolina",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",34.83333333333334],PARAMETER["standard_parallel_2",32.5],PARAMETER["latitude_of_origin",31.83333333333333],PARAMETER["central_meridian",-81],PARAMETER["false_easting",609600],PARAMETER["false_northing",0],AUTHORITY["EPSG","3360"],AXIS["X",EAST],AXIS["Y",NORTH]] zz! O'epsg !NAD83(HARN) / South Carolina (ft)+proj=lcc +lat_1=34.83333333333334 +lat_2=32.5 +lat_0=31.83333333333333 +lon_0=-81 +x_0=609600 +y_0=0 +ellps=GRS80 +units=ft +no_defsPROJCS["NAD83(HARN) / South Carolina (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",34.83333333333334],PARAMETER["standard_parallel_2",32.5],PARAMETER["latitude_of_origin",31.83333333333333],PARAMETER["central_meridian",-81],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3361"],AXIS["X",EAST],AXIS["Y",NORTH]] zz" M#epsg "NAD83(HARN) / Pennsylvania North+proj=lcc +lat_1=41.95 +lat_2=40.88333333333333 +lat_0=40.16666666666666 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Pennsylvania North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.95],PARAMETER["standard_parallel_2",40.88333333333333],PARAMETER["latitude_of_origin",40.16666666666666],PARAMETER["central_meridian",-77.75],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3362"],AXIS["X",EAST],AXIS["Y",NORTH]] MM/# [%gepsg #NAD83(HARN) / Pennsylvania North (ftUS)+proj=lcc +lat_1=41.95 +lat_2=40.88333333333333 +lat_0=40.16666666666666 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Pennsylvania North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.95],PARAMETER["standard_parallel_2",40.88333333333333],PARAMETER["latitude_of_origin",40.16666666666666],PARAMETER["central_meridian",-77.75],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","3363"],AXIS["X",EAST],AXIS["Y",NORTH]] bb$ M5;epsg $NAD83(HARN) / Pennsylvania South+proj=lcc +lat_1=40.96666666666667 +lat_2=39.93333333333333 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Pennsylvania South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.96666666666667],PARAMETER["standard_parallel_2",39.93333333333333],PARAMETER["latitude_of_origin",39.33333333333334],PARAMETER["central_meridian",-77.75],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3364"],AXIS["X",EAST],AXIS["Y",NORTH]] 55G% [=epsg %NAD83(HARN) / Pennsylvania South (ftUS)+proj=lcc +lat_1=40.96666666666667 +lat_2=39.93333333333333 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Pennsylvania South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.96666666666667],PARAMETER["standard_parallel_2",39.93333333333333],PARAMETER["latitude_of_origin",39.33333333333334],PARAMETER["central_meridian",-77.75],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","3365"],AXIS["X",EAST],AXIS["Y",NORTH]] y& [YGepsg &Hong Kong 1963 Grid System (deprecated)+proj=cass +lat_0=22.31213333333334 +lon_0=114.1785555555556 +x_0=40243.57775604237 +y_0=19069.93351512578 +a=6378293.645208759 +b=6356617.987679838 +units=m +no_defsPROJCS["Hong Kong 1963 Grid System (deprecated)",GEOGCS["Hong Kong 1963",DATUM["Hong_Kong_1963",SPHEROID["Clarke 1858",6378293.645208759,294.2606763692569,AUTHORITY["EPSG","7007"]],AUTHORITY["EPSG","6738"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4738"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Cassini_Soldner"],PARAMETER["latitude_of_origin",22.31213333333334],PARAMETER["central_meridian",114.1785555555556],PARAMETER["false_easting",40243.57775604237],PARAMETER["false_northing",19069.93351512578],AUTHORITY["EPSG","3366"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] **R'Gqwepsg 'IGN Astro 1960 / UTM zone 28N+proj=utm +zone=28 +ellps=clrk80 +units=m +no_defsPROJCS["IGN Astro 1960 / UTM zone 28N",GEOGCS["IGN Astro 1960",DATUM["IGN_Astro_1960",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6700"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4700"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3367"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ++Q(Gquepsg (IGN Astro 1960 / UTM zone 29N+proj=utm +zone=29 +ellps=clrk80 +units=m +no_defsPROJCS["IGN Astro 1960 / UTM zone 29N",GEOGCS["IGN Astro 1960",DATUM["IGN_Astro_1960",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6700"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4700"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3368"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ++Q)Gquepsg )IGN Astro 1960 / UTM zone 30N+proj=utm +zone=30 +ellps=clrk80 +units=m +no_defsPROJCS["IGN Astro 1960 / UTM zone 30N",GEOGCS["IGN Astro 1960",DATUM["IGN_Astro_1960",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6700"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4700"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3369"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] **R* 5 mepsg *NAD27 / UTM zone 59N+proj=utm +zone=59 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / UTM zone 59N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",171],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3370"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] **R+ 5 mepsg +NAD27 / UTM zone 60N+proj=utm +zone=60 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / UTM zone 60N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",177],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3371"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44H, 5 [epsg ,NAD83 / UTM zone 59N+proj=utm +zone=59 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / UTM zone 59N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",171],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3372"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44H- 5 [epsg -NAD83 / UTM zone 60N+proj=utm +zone=60 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / UTM zone 60N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",177],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3373"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] PP,.3mCepsg .FD54 / UTM zone 29N+proj=utm +zone=29 +ellps=intl +units=m +no_defsPROJCS["FD54 / UTM zone 29N",GEOGCS["FD54",DATUM["Faroe_Datum_1954",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6741"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4741"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3374"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] u/ ;{=epsg /GDM2000 / Peninsula RSO+proj=omerc +lat_0=4 +lonc=102.25 +alpha=323.0257964666666 +k=0.99984 +x_0=804671 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["GDM2000 / Peninsula RSO",GEOGCS["GDM2000",DATUM["Geodetic_Datum_of_Malaysia_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6742"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4742"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Hotine_Oblique_Mercator"],PARAMETER["latitude_of_center",4],PARAMETER["longitude_of_center",102.25],PARAMETER["azimuth",323.0257964666666],PARAMETER["rectified_grid_angle",323.1301023611111],PARAMETER["scale_factor",0.99984],PARAMETER["false_easting",804671],PARAMETER["false_northing",0],AUTHORITY["EPSG","3375"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] c0 E_+epsg 0GDM2000 / East Malaysia BRSO+proj=omerc +lat_0=4 +lonc=115 +alpha=53.31580995 +k=0.99984 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["GDM2000 / East Malaysia BRSO",GEOGCS["GDM2000",DATUM["Geodetic_Datum_of_Malaysia_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6742"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4742"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Hotine_Oblique_Mercator"],PARAMETER["latitude_of_center",4],PARAMETER["longitude_of_center",115],PARAMETER["azimuth",53.31580995],PARAMETER["rectified_grid_angle",53.13010236111111],PARAMETER["scale_factor",0.99984],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3376"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  1 5}qepsg 1GDM2000 / Johor Grid+proj=cass +lat_0=2.121679744444445 +lon_0=103.4279362361111 +x_0=-14810.562 +y_0=8758.32 +ellps=GRS80 +units=m +no_defsPROJCS["GDM2000 / Johor Grid",GEOGCS["GDM2000",DATUM["Geodetic_Datum_of_Malaysia_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6742"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4742"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Cassini_Soldner"],PARAMETER["latitude_of_origin",2.121679744444445],PARAMETER["central_meridian",103.4279362361111],PARAMETER["false_easting",-14810.562],PARAMETER["false_northing",8758.32],AUTHORITY["EPSG","3377"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] )2 Q} epsg 2GDM2000 / Sembilan and Melaka Grid+proj=cass +lat_0=2.682347636111111 +lon_0=101.9749050416667 +x_0=3673.785 +y_0=-4240.573 +ellps=GRS80 +units=m +no_defsPROJCS["GDM2000 / Sembilan and Melaka Grid",GEOGCS["GDM2000",DATUM["Geodetic_Datum_of_Malaysia_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6742"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4742"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Cassini_Soldner"],PARAMETER["latitude_of_origin",2.682347636111111],PARAMETER["central_meridian",101.9749050416667],PARAMETER["false_easting",3673.785],PARAMETER["false_northing",-4240.573],AUTHORITY["EPSG","3378"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  3 5}qepsg 3GDM2000 / PahangGrid+proj=cass +lat_0=3.769388088888889 +lon_0=102.3682989833333 +x_0=-7368.228 +y_0=6485.858 +ellps=GRS80 +units=m +no_defsPROJCS["GDM2000 / PahangGrid",GEOGCS["GDM2000",DATUM["Geodetic_Datum_of_Malaysia_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6742"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4742"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Cassini_Soldner"],PARAMETER["latitude_of_origin",3.769388088888889],PARAMETER["central_meridian",102.3682989833333],PARAMETER["false_easting",-7368.228],PARAMETER["false_northing",6485.858],AUTHORITY["EPSG","3379"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  4 ;smepsg 4GDM2000 / Selangor Grid+proj=cass +lat_0=3.68464905 +lon_0=101.3891079138889 +x_0=-34836.161 +y_0=56464.049 +ellps=GRS80 +units=m +no_defsPROJCS["GDM2000 / Selangor Grid",GEOGCS["GDM2000",DATUM["Geodetic_Datum_of_Malaysia_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6742"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4742"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Cassini_Soldner"],PARAMETER["latitude_of_origin",3.68464905],PARAMETER["central_meridian",101.3891079138889],PARAMETER["false_easting",-34836.161],PARAMETER["false_northing",56464.049],AUTHORITY["EPSG","3380"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 5 ?ecepsg 5GDM2000 / Terengganu Grid+proj=cass +lat_0=4.9762852 +lon_0=103.070275625 +x_0=19594.245 +y_0=3371.895 +ellps=GRS80 +units=m +no_defsPROJCS["GDM2000 / Terengganu Grid",GEOGCS["GDM2000",DATUM["Geodetic_Datum_of_Malaysia_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6742"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4742"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Cassini_Soldner"],PARAMETER["latitude_of_origin",4.9762852],PARAMETER["central_meridian",103.070275625],PARAMETER["false_easting",19594.245],PARAMETER["false_northing",3371.895],AUTHORITY["EPSG","3381"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 6 7ukepsg 6GDM2000 / Pinang Grid+proj=cass +lat_0=5.421517541666667 +lon_0=100.3443769638889 +x_0=-23.414 +y_0=62.283 +ellps=GRS80 +units=m +no_defsPROJCS["GDM2000 / Pinang Grid",GEOGCS["GDM2000",DATUM["Geodetic_Datum_of_Malaysia_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6742"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4742"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Cassini_Soldner"],PARAMETER["latitude_of_origin",5.421517541666667],PARAMETER["central_meridian",100.3443769638889],PARAMETER["false_easting",-23.414],PARAMETER["false_northing",62.283],AUTHORITY["EPSG","3382"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 7 K_iepsg 7GDM2000 / Kedah and Perlis Grid+proj=cass +lat_0=5.964672713888889 +lon_0=100.6363711111111 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["GDM2000 / Kedah and Perlis Grid",GEOGCS["GDM2000",DATUM["Geodetic_Datum_of_Malaysia_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6742"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4742"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Cassini_Soldner"],PARAMETER["latitude_of_origin",5.964672713888889],PARAMETER["central_meridian",100.6363711111111],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3383"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  8 5{oepsg 8GDM2000 / Perak Grid+proj=cass +lat_0=4.859063022222222 +lon_0=100.8154105861111 +x_0=-1.769 +y_0=133454.779 +ellps=GRS80 +units=m +no_defsPROJCS["GDM2000 / Perak Grid",GEOGCS["GDM2000",DATUM["Geodetic_Datum_of_Malaysia_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6742"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4742"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Cassini_Soldner"],PARAMETER["latitude_of_origin",4.859063022222222],PARAMETER["central_meridian",100.8154105861111],PARAMETER["false_easting",-1.769],PARAMETER["false_northing",133454.779],AUTHORITY["EPSG","3384"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 9 ;}wepsg 9GDM2000 / Kelantan Grid+proj=cass +lat_0=5.972543658333334 +lon_0=102.2952416694444 +x_0=13227.851 +y_0=8739.894 +ellps=GRS80 +units=m +no_defsPROJCS["GDM2000 / Kelantan Grid",GEOGCS["GDM2000",DATUM["Geodetic_Datum_of_Malaysia_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6742"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4742"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Cassini_Soldner"],PARAMETER["latitude_of_origin",5.972543658333334],PARAMETER["central_meridian",102.2952416694444],PARAMETER["false_easting",13227.851],PARAMETER["false_northing",8739.894],AUTHORITY["EPSG","3385"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ;(5BO\iv,9FS`mz #0=JWdq~  #epsg #  $epsg $  %epsg %  &epsg &  'epsg '  (epsg (  )epsg )  *epsg *  +epsg +  ,epsg ,  -epsg -  .epsg .  /epsg /  0epsg 0  1epsg 1  2epsg 2  3epsg 3  4epsg 4  5epsg 5  6epsg 6  7epsg 7  8epsg 8  9epsg 9  :epsg :  ;epsg ;  epsg >  ?epsg ?  @epsg @  Aepsg A  Bepsg B  Cepsg C  Depsg D  Eepsg E  Fepsg F  Gepsg G  Hepsg H  Iepsg I  Jepsg J  Kepsg K  Lepsg L  Mepsg M  Nepsg N  Oepsg O  Pepsg P  Qepsg Q  Repsg R  Sepsg S  Tepsg T  Uepsg U  Vepsg V  Wepsg W  Xepsg X  Yepsg Y  Zepsg Z  [epsg [  \epsg \  ]epsg ] ((T: 55Gepsg :KKJ / Finland zone 0+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["KKJ / Finland zone 0",GEOGCS["KKJ",DATUM["Kartastokoordinaattijarjestelma_1966",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6123"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4123"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",18],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3386"],AXIS["X",NORTH],AXIS["Y",EAST]] &&V; 57Iepsg ;KKJ / Finland zone 5+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=5500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["KKJ / Finland zone 5",GEOGCS["KKJ",DATUM["Kartastokoordinaattijarjestelma_1966",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6123"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4123"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",1],PARAMETER["false_easting",5500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3387"],AXIS["X",NORTH],AXIS["Y",EAST]] ""Z< SQepsg e;epsg >Pulkovo 1995 / 3-degree Gauss-Kruger zone 60+proj=tmerc +lat_0=0 +lon_0=180 +k=1 +x_0=60500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 60",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",180],PARAMETER["scale_factor",1],PARAMETER["false_easting",60500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3390"],AXIS["X",NORTH],AXIS["Y",EAST]] ? C7/epsg ?Karbala 1979 / UTM zone 37N+proj=utm +zone=37 +ellps=clrk80 +towgs84=84.1,-320.1,218.7,0,0,0,0 +units=m +no_defsPROJCS["Karbala 1979 / UTM zone 37N",GEOGCS["Karbala 1979",DATUM["Karbala_1979",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[84.1,-320.1,218.7,0,0,0,0],AUTHORITY["EPSG","6743"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4743"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3391"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] @ C7/epsg @Karbala 1979 / UTM zone 38N+proj=utm +zone=38 +ellps=clrk80 +towgs84=84.1,-320.1,218.7,0,0,0,0 +units=m +no_defsPROJCS["Karbala 1979 / UTM zone 38N",GEOGCS["Karbala 1979",DATUM["Karbala_1979",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[84.1,-320.1,218.7,0,0,0,0],AUTHORITY["EPSG","6743"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4743"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3392"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] A C7/epsg AKarbala 1979 / UTM zone 39N+proj=utm +zone=39 +ellps=clrk80 +towgs84=84.1,-320.1,218.7,0,0,0,0 +units=m +no_defsPROJCS["Karbala 1979 / UTM zone 39N",GEOGCS["Karbala 1979",DATUM["Karbala_1979",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[84.1,-320.1,218.7,0,0,0,0],AUTHORITY["EPSG","6743"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4743"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3393"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 'B =epsg BNahrwan 1934 / Iraq zone+proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=45 +k_0=0.9987864078000001 +x_0=1500000 +y_0=1166200 +ellps=clrk80 +units=m +no_defsPROJCS["Nahrwan 1934 / Iraq zone",GEOGCS["Nahrwan 1934",DATUM["Nahrwan_1934",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6744"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4744"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",32.5],PARAMETER["central_meridian",45],PARAMETER["scale_factor",0.9987864078],PARAMETER["false_easting",1500000],PARAMETER["false_northing",1166200],AUTHORITY["EPSG","3394"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] aaC ;1Sepsg CWGS 84 / World Mercator+proj=merc +lon_0=0 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / World Mercator",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Mercator_1SP"],PARAMETER["central_meridian",0],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3395"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] iD U9Mepsg DPD/83 / 3-degree Gauss-Kruger zone 3+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["PD/83 / 3-degree Gauss-Kruger zone 3",GEOGCS["PD/83",DATUM["Potsdam_Datum_83",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6746"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4746"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",1],PARAMETER["false_easting",3500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3396"],AXIS["X",NORTH],AXIS["Y",EAST]] kE U;Oepsg EPD/83 / 3-degree Gauss-Kruger zone 4+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["PD/83 / 3-degree Gauss-Kruger zone 4",GEOGCS["PD/83",DATUM["Potsdam_Datum_83",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6746"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4746"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",12],PARAMETER["scale_factor",1],PARAMETER["false_easting",4500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3397"],AXIS["X",NORTH],AXIS["Y",EAST]] mF U;Sepsg FRD/83 / 3-degree Gauss-Kruger zone 4+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["RD/83 / 3-degree Gauss-Kruger zone 4",GEOGCS["RD/83",DATUM["Rauenberg_Datum_83",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6745"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4745"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",12],PARAMETER["scale_factor",1],PARAMETER["false_easting",4500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3398"],AXIS["X",NORTH],AXIS["Y",EAST]] mG U;Sepsg GRD/83 / 3-degree Gauss-Kruger zone 5+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["RD/83 / 3-degree Gauss-Kruger zone 5",GEOGCS["RD/83",DATUM["Rauenberg_Datum_83",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6745"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4745"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",1],PARAMETER["false_easting",5500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3399"],AXIS["X",NORTH],AXIS["Y",EAST]] H I_qepsg HNAD83 / Alberta 10-TM (Forest)+proj=tmerc +lat_0=0 +lon_0=-115 +k=0.9992 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Alberta 10-TM (Forest)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-115],PARAMETER["scale_factor",0.9992],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3400"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] I MUkepsg INAD83 / Alberta 10-TM (Resource)+proj=tmerc +lat_0=0 +lon_0=-115 +k=0.9992 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Alberta 10-TM (Resource)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-115],PARAMETER["scale_factor",0.9992],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3401"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] J UE%epsg JNAD83(CSRS) / Alberta 10-TM (Forest)+proj=tmerc +lat_0=0 +lon_0=-115 +k=0.9992 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / Alberta 10-TM (Forest)",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-115],PARAMETER["scale_factor",0.9992],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3402"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] K Y;epsg KNAD83(CSRS) / Alberta 10-TM (Resource)+proj=tmerc +lat_0=0 +lon_0=-115 +k=0.9992 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / Alberta 10-TM (Resource)",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-115],PARAMETER["scale_factor",0.9992],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3403"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] PP,L S5Yepsg LNAD83(HARN) / North Carolina (ftUS)+proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333334 +lat_0=33.75 +lon_0=-79 +x_0=609601.2192024384 +y_0=0 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / North Carolina (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.16666666666666],PARAMETER["standard_parallel_2",34.33333333333334],PARAMETER["latitude_of_origin",33.75],PARAMETER["central_meridian",-79],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3404"],AXIS["X",EAST],AXIS["Y",NORTH]] KK1M9oEepsg MVN-2000 / UTM zone 48N+proj=utm +zone=48 +ellps=WGS84 +units=m +no_defsPROJCS["VN-2000 / UTM zone 48N",GEOGCS["VN-2000",DATUM["Vietnam_2000",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6756"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4756"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3405"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] KK1N9oEepsg NVN-2000 / UTM zone 49N+proj=utm +zone=49 +ellps=WGS84 +units=m +no_defsPROJCS["VN-2000 / UTM zone 49N",GEOGCS["VN-2000",DATUM["Vietnam_2000",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6756"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4756"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3406"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] oO Au1epsg OHong Kong 1963 Grid System+proj=cass +lat_0=22.31213333333334 +lon_0=114.1785555555556 +x_0=40243.57775604237 +y_0=19069.93351512578 +a=6378293.645208759 +b=6356617.987679838 +to_meter=0.3047972654 +no_defsPROJCS["Hong Kong 1963 Grid System",GEOGCS["Hong Kong 1963",DATUM["Hong_Kong_1963",SPHEROID["Clarke 1858",6378293.645208759,294.2606763692569,AUTHORITY["EPSG","7007"]],AUTHORITY["EPSG","6738"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4738"]],UNIT["Clarke's foot",0.3047972654,AUTHORITY["EPSG","9005"]],PROJECTION["Cassini_Soldner"],PARAMETER["latitude_of_origin",22.31213333333334],PARAMETER["central_meridian",114.1785555555556],PARAMETER["false_easting",132033.92],PARAMETER["false_northing",62565.96],AUTHORITY["EPSG","3407"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] V,VRQ 5]epsg Qunnamed+proj=laea +lat_0=-90 +lon_0=0 +x_0=0 +y_0=0 +a=6371228 +b=6371228 +units=m +no_defsPROJCS["unnamed",GEOGCS["unnamed ellipse",DATUM["unknown",SPHEROID["unnamed",6371228,0]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",-90],PARAMETER["longitude_of_center",0],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["Meter",1],AUTHORITY["EPSG","3409"]]PP 3[epsg Punnamed+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=6371228 +b=6371228 +units=m +no_defsPROJCS["unnamed",GEOGCS["unnamed ellipse",DATUM["unknown",SPHEROID["unnamed",6371228,0]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",90],PARAMETER["longitude_of_center",0],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["Meter",1],AUTHORITY["EPSG","3408"]] R 93Wepsg RNSIDC EASE-Grid Global+proj=cea +lon_0=0 +lat_ts=30 +x_0=0 +y_0=0 +a=6371228 +b=6371228 +units=m +no_defsPROJCS["NSIDC EASE-Grid Global",GEOGCS["Unspecified datum based upon the International 1924 Authalic Sphere",DATUM["Not_specified_based_on_International_1924_Authalic_Sphere",SPHEROID["International 1924 Authalic Sphere",6371228,0,AUTHORITY["EPSG","7057"]],AUTHORITY["EPSG","6053"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4053"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Cylindrical_Equal_Area"],PARAMETER["standard_parallel_1",30],PARAMETER["central_meridian",0],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3410"],AXIS["X",EAST],AXIS["Y",NORTH]] SS [asepsg SNSIDC Sea Ice Polar Stereographic North+proj=stere +lat_0=90 +lat_ts=70 +lon_0=-45 +k=1 +x_0=0 +y_0=0 +a=6378273 +b=6356889.449 +units=m +no_defsPROJCS["NSIDC Sea Ice Polar Stereographic North",GEOGCS["Unspecified datum based upon the Hughes 1980 ellipsoid",DATUM["Not_specified_based_on_Hughes_1980_ellipsoid",SPHEROID["Hughes 1980",6378273,298.279411123061,AUTHORITY["EPSG","7058"]],AUTHORITY["EPSG","6054"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4054"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",70],PARAMETER["central_meridian",-45],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3411"],AXIS["X",UNKNOWN],AXIS["Y",UNKNOWN]] RT [aqepsg TNSIDC Sea Ice Polar Stereographic South+proj=stere +lat_0=-90 +lat_ts=-70 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=6378273 +b=6356889.449 +units=m +no_defsPROJCS["NSIDC Sea Ice Polar Stereographic South",GEOGCS["Unspecified datum based upon the Hughes 1980 ellipsoid",DATUM["Not_specified_based_on_Hughes_1980_ellipsoid",SPHEROID["Hughes 1980",6378273,298.279411123061,AUTHORITY["EPSG","7058"]],AUTHORITY["EPSG","6054"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4054"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-70],PARAMETER["central_meridian",0],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3412"],AXIS["X",UNKNOWN],AXIS["Y",UNKNOWN]]  U maMepsg UWGS 84 / NSIDC Sea Ice Polar Stereographic North+proj=stere +lat_0=90 +lat_ts=70 +lon_0=-45 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / NSIDC Sea Ice Polar Stereographic North",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",70],PARAMETER["central_meridian",-45],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3413"],AXIS["X",UNKNOWN],AXIS["Y",UNKNOWN]] V 5 wepsg VSVY21 / Singapore TM+proj=tmerc +lat_0=1.366666666666667 +lon_0=103.8333333333333 +k=1 +x_0=28001.642 +y_0=38744.572 +ellps=WGS84 +units=m +no_defsPROJCS["SVY21 / Singapore TM",GEOGCS["SVY21",DATUM["SVY21",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6757"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4757"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",1.366666666666667],PARAMETER["central_meridian",103.8333333333333],PARAMETER["scale_factor",1],PARAMETER["false_easting",28001.642],PARAMETER["false_northing",38744.572],AUTHORITY["EPSG","3414"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] qq W Q!-epsg WWGS 72BE / South China Sea Lambert+proj=lcc +lat_1=18 +lat_2=24 +lat_0=21 +lon_0=114 +x_0=500000 +y_0=500000 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / South China Sea Lambert",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",18],PARAMETER["standard_parallel_2",24],PARAMETER["latitude_of_origin",21],PARAMETER["central_meridian",114],PARAMETER["false_easting",500000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","3415"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] UX =wepsg XETRS89 / Austria Lambert+proj=lcc +lat_1=49 +lat_2=46 +lat_0=47.5 +lon_0=13.33333333333333 +x_0=400000 +y_0=400000 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / Austria Lambert",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",49],PARAMETER["standard_parallel_2",46],PARAMETER["latitude_of_origin",47.5],PARAMETER["central_meridian",13.33333333333333],PARAMETER["false_easting",400000],PARAMETER["false_northing",400000],AUTHORITY["EPSG","3416"],AXIS["X",NORTH],AXIS["Y",EAST]] NN.Y A]Gepsg YNAD83 / Iowa North (ft US)+proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666667 +lat_0=41.5 +lon_0=-93.5 +x_0=1500000 +y_0=999999.9999898402 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Iowa North (ft US)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43.26666666666667],PARAMETER["standard_parallel_2",42.06666666666667],PARAMETER["latitude_of_origin",41.5],PARAMETER["central_meridian",-93.5],PARAMETER["false_easting",4921250],PARAMETER["false_northing",3280833.333300001],AUTHORITY["EPSG","3417"],AXIS["X",EAST],AXIS["Y",NORTH]] eeZ AI-epsg ZNAD83 / Iowa South (ft US)+proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666667 +lat_0=40 +lon_0=-93.5 +x_0=500000.00001016 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Iowa South (ft US)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.78333333333333],PARAMETER["standard_parallel_2",40.61666666666667],PARAMETER["latitude_of_origin",40],PARAMETER["central_meridian",-93.5],PARAMETER["false_easting",1640416.6667],PARAMETER["false_northing",0],AUTHORITY["EPSG","3418"],AXIS["X",EAST],AXIS["Y",NORTH]] GG5[ EcKepsg [NAD83 / Kansas North (ft US)+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=399999.99998984 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Kansas North (ft US)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.78333333333333],PARAMETER["standard_parallel_2",38.71666666666667],PARAMETER["latitude_of_origin",38.33333333333334],PARAMETER["central_meridian",-98],PARAMETER["false_easting",1312333.3333],PARAMETER["false_northing",0],AUTHORITY["EPSG","3419"],AXIS["X",EAST],AXIS["Y",NORTH]] **R\ Eeepsg \NAD83 / Kansas South (ft US)+proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=399999.99998984 +y_0=399999.99998984 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Kansas South (ft US)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.56666666666667],PARAMETER["standard_parallel_2",37.26666666666667],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-98.5],PARAMETER["false_easting",1312333.3333],PARAMETER["false_northing",1312333.3333],AUTHORITY["EPSG","3420"],AXIS["X",EAST],AXIS["Y",NORTH]] e] C=Sepsg ]NAD83 / Nevada East (ft US)+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0.9999 +x_0=200000.00001016 +y_0=8000000.000010163 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Nevada East (ft US)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",34.75],PARAMETER["central_meridian",-115.5833333333333],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",656166.6667],PARAMETER["false_northing",26246666.66670001],AUTHORITY["EPSG","3421"],AXIS["X",EAST],AXIS["Y",NORTH]] Y^ I)Iepsg ^NAD83 / Nevada Central (ft US)+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0.9999 +x_0=500000.00001016 +y_0=6000000 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Nevada Central (ft US)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",34.75],PARAMETER["central_meridian",-116.6666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",1640416.6667],PARAMETER["false_northing",19685000],AUTHORITY["EPSG","3422"],AXIS["X",EAST],AXIS["Y",NORTH]] c_ C?Mepsg _NAD83 / Nevada West (ft US)+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0.9999 +x_0=800000.0000101599 +y_0=3999999.99998984 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Nevada West (ft US)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",34.75],PARAMETER["central_meridian",-118.5833333333333],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",2624666.6667],PARAMETER["false_northing",13123333.3333],AUTHORITY["EPSG","3423"],AXIS["X",EAST],AXIS["Y",NORTH]] 3` A %epsg `NAD83 / New Jersey (ft US)+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / New Jersey (ft US)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38.83333333333334],PARAMETER["central_meridian",-74.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",492125],PARAMETER["false_northing",0],AUTHORITY["EPSG","3424"],AXIS["X",EAST],AXIS["Y",NORTH]] >>>a MCuepsg aNAD83(HARN) / Iowa North (ft US)+proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666667 +lat_0=41.5 +lon_0=-93.5 +x_0=1500000 +y_0=999999.9999898402 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Iowa North (ft US)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43.26666666666667],PARAMETER["standard_parallel_2",42.06666666666667],PARAMETER["latitude_of_origin",41.5],PARAMETER["central_meridian",-93.5],PARAMETER["false_easting",4921250],PARAMETER["false_northing",3280833.333300001],AUTHORITY["EPSG","3425"],AXIS["X",EAST],AXIS["Y",NORTH]] UU'b M/[epsg bNAD83(HARN) / Iowa South (ft US)+proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666667 +lat_0=40 +lon_0=-93.5 +x_0=500000.00001016 +y_0=0 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Iowa South (ft US)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.78333333333333],PARAMETER["standard_parallel_2",40.61666666666667],PARAMETER["latitude_of_origin",40],PARAMETER["central_meridian",-93.5],PARAMETER["false_easting",1640416.6667],PARAMETER["false_northing",0],AUTHORITY["EPSG","3426"],AXIS["X",EAST],AXIS["Y",NORTH]] 77Ec QIyepsg cNAD83(HARN) / Kansas North (ft US)+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=399999.99998984 +y_0=0 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Kansas North (ft US)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.78333333333333],PARAMETER["standard_parallel_2",38.71666666666667],PARAMETER["latitude_of_origin",38.33333333333334],PARAMETER["central_meridian",-98],PARAMETER["false_easting",1312333.3333],PARAMETER["false_northing",0],AUTHORITY["EPSG","3427"],AXIS["X",EAST],AXIS["Y",NORTH]]66667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=399999.99998984 +y_0=399999.99998984 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Kansas South (ft US)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.56666666666667],PARAMETER["standard_parallel_2",37.26666666666667],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-98.5],PARAMETER["false_easting",1312333.3333],PARAMETER["false_northing",1312333.3333],AUTHORITY["EPSG","3428"],AXIS["X",EAST],AXIS["Y",NORTH]] ue O#epsg eNAD83(HARN) / Nevada East (ft US)+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0.9999 +x_0=200000.00001016 +y_0=8000000.000010163 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Nevada East (ft US)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",34.75],PARAMETER["central_meridian",-115.5833333333333],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",656166.6667],PARAMETER["false_northing",26246666.66670001],AUTHORITY["EPSG","3429"],AXIS["X",EAST],AXIS["Y",NORTH]]bd Qiepsg dNAD83(HARN) / Kansas South (ft US)+proj=lcc +lat_1=38.56666666666667 +lat_2=37.266666666 if Uwepsg fNAD83(HARN) / Nevada Central (ft US)+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0.9999 +x_0=500000.00001016 +y_0=6000000 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Nevada Central (ft US)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",34.75],PARAMETER["central_meridian",-116.6666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",1640416.6667],PARAMETER["false_northing",19685000],AUTHORITY["EPSG","3430"],AXIS["X",EAST],AXIS["Y",NORTH]] sg O%{epsg gNAD83(HARN) / Nevada West (ft US)+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0.9999 +x_0=800000.0000101599 +y_0=3999999.99998984 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Nevada West (ft US)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",34.75],PARAMETER["central_meridian",-118.5833333333333],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",2624666.6667],PARAMETER["false_northing",13123333.3333],AUTHORITY["EPSG","3431"],AXIS["X",EAST],AXIS["Y",NORTH]] Ch MoSepsg hNAD83(HARN) / New Jersey (ft US)+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / New Jersey (ft US)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38.83333333333334],PARAMETER["central_meridian",-74.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",492125],PARAMETER["false_northing",0],AUTHORITY["EPSG","3432"],AXIS["X",EAST],AXIS["Y",NORTH]] EE7i GcMepsg iNAD83 / Arkansas North (ftUS)+proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=399999.99998984 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Arkansas North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.23333333333333],PARAMETER["standard_parallel_2",34.93333333333333],PARAMETER["latitude_of_origin",34.33333333333334],PARAMETER["central_meridian",-92],PARAMETER["false_easting",1312333.3333],PARAMETER["false_northing",0],AUTHORITY["EPSG","3433"],AXIS["X",EAST],AXIS["Y",NORTH]] FF6j GeIepsg jNAD83 / Arkansas South (ftUS)+proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32.66666666666666 +lon_0=-92 +x_0=399999.99998984 +y_0=399999.99998984 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Arkansas South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",34.76666666666667],PARAMETER["standard_parallel_2",33.3],PARAMETER["latitude_of_origin",32.66666666666666],PARAMETER["central_meridian",-92],PARAMETER["false_easting",1312333.3333],PARAMETER["false_northing",1312333.3333],AUTHORITY["EPSG","3434"],AXIS["X",EAST],AXIS["Y",NORTH]] uk EQ]epsg kNAD83 / Illinois East (ftUS)+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333333333 +k=0.9999749999999999 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Illinois East (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-88.33333333333333],PARAMETER["scale_factor",0.999975],PARAMETER["false_easting",984250.0000000002],PARAMETER["false_northing",0],AUTHORITY["EPSG","3435"],AXIS["X",EAST],AXIS["Y",NORTH]] ql ECcepsg lNAD83 / Illinois West (ftUS)+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666666667 +k=0.999941177 +x_0=699999.9999898402 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Illinois West (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-90.16666666666667],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",2296583.333300001],PARAMETER["false_northing",0],AUTHORITY["EPSG","3436"],AXIS["X",EAST],AXIS["Y",NORTH]] Wm E)Iepsg mNAD83 / New Hampshire (ftUS)+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.999966667 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / New Hampshire (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",42.5],PARAMETER["central_meridian",-71.66666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",984250.0000000002],PARAMETER["false_northing",0],AUTHORITY["EPSG","3437"],AXIS["X",EAST],AXIS["Y",NORTH]] Mn C'9epsg nNAD83 / Rhode Island (ftUS)+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.99999375 +x_0=99999.99998983997 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Rhode Island (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.08333333333334],PARAMETER["central_meridian",-71.5],PARAMETER["scale_factor",0.99999375],PARAMETER["false_easting",328083.3333],PARAMETER["false_northing",0],AUTHORITY["EPSG","3438"],AXIS["X",EAST],AXIS["Y",NORTH]]of flrx~ &,28>DJPV\bhntz "(.4:@FLRX^djpv|?@ABCDEFGHIJKLMNOQRSTUVWXYZ[\]^_`abcefghijklmnopqrstuvwxyšzÚ{Ě|Ś}ƚ~ǚțɛʛ˛̛͛ΛϛЛћ қ ӛ ՛ ֛כ؛ٛڛۛܛݛޛߛ !$%&'(),-2356789 : ??=o5q_epsg oPSD93 / UTM zone 39N+proj=utm +zone=39 +ellps=clrk80 +units=m +no_defsPROJCS["PSD93 / UTM zone 39N",GEOGCS["PSD93",DATUM["PDO_Survey_Datum_1993",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6134"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4134"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3439"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ??=p5q_epsg pPSD93 / UTM zone 40N+proj=utm +zone=40 +ellps=clrk80 +units=m +no_defsPROJCS["PSD93 / UTM zone 40N",GEOGCS["PSD93",DATUM["PDO_Survey_Datum_1993",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6134"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4134"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3440"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 55Gq SI{epsg qNAD83(HARN) / Arkansas North (ftUS)+proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=399999.99998984 +y_0=0 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Arkansas North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.23333333333333],PARAMETER["standard_parallel_2",34.93333333333333],PARAMETER["latitude_of_origin",34.33333333333334],PARAMETER["central_meridian",-92],PARAMETER["false_easting",1312333.3333],PARAMETER["false_northing",0],AUTHORITY["EPSG","3441"],AXIS["X",EAST],AXIS["Y",NORTH]] 66Fr SKwepsg rNAD83(HARN) / Arkansas South (ftUS)+proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32.66666666666666 +lon_0=-92 +x_0=399999.99998984 +y_0=399999.99998984 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Arkansas South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",34.76666666666667],PARAMETER["standard_parallel_2",33.3],PARAMETER["latitude_of_origin",32.66666666666666],PARAMETER["central_meridian",-92],PARAMETER["false_easting",1312333.3333],PARAMETER["false_northing",1312333.3333],AUTHORITY["EPSG","3442"],AXIS["X",EAST],AXIS["Y",NORTH]] wws Q7 epsg sNAD83(HARN) / Illinois East (ftUS)+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333333333 +k=0.9999749999999999 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Illinois East (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-88.33333333333333],PARAMETER["scale_factor",0.999975],PARAMETER["false_easting",984250.0000000002],PARAMETER["false_northing",0],AUTHORITY["EPSG","3443"],AXIS["X",EAST],AXIS["Y",NORTH]] {{t Q)epsg tNAD83(HARN) / Illinois West (ftUS)+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666666667 +k=0.999941177 +x_0=699999.9999898402 +y_0=0 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Illinois West (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-90.16666666666667],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",2296583.333300001],PARAMETER["false_northing",0],AUTHORITY["EPSG","3444"],AXIS["X",EAST],AXIS["Y",NORTH]] gu Qwepsg uNAD83(HARN) / New Hampshire (ftUS)+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.999966667 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / New Hampshire (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",42.5],PARAMETER["central_meridian",-71.66666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",984250.0000000002],PARAMETER["false_northing",0],AUTHORITY["EPSG","3445"],AXIS["X",EAST],AXIS["Y",NORTH]] ;(5BO\iv,9FS`mz #0=JWdq~  _epsg _  `epsg `  aepsg a  bepsg b  cepsg c  depsg d  eepsg e  fepsg f  gepsg g  hepsg h  iepsg i  jepsg j  kepsg k  lepsg l  mepsg m  nepsg n  oepsg o  pepsg p  qepsg q  repsg r  sepsg s  tepsg t  uepsg u  vepsg v  wepsg w  xepsg x  yepsg y  zepsg z  {epsg {  |epsg |  }epsg }  ~epsg ~  epsg   epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg ]v O gepsg vNAD83(HARN) / Rhode Island (ftUS)+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.99999375 +x_0=99999.99998983997 +y_0=0 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Rhode Island (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.08333333333334],PARAMETER["central_meridian",-71.5],PARAMETER["scale_factor",0.99999375],PARAMETER["false_easting",328083.3333],PARAMETER["false_northing",0],AUTHORITY["EPSG","3446"],AXIS["X",EAST],AXIS["Y",NORTH]] WW%w GEGepsg wETRS89 / Belgian Lambert 2005+proj=lcc +lat_1=49.83333333333334 +lat_2=51.16666666666666 +lat_0=50.797815 +lon_0=4.359215833333333 +x_0=150328 +y_0=166262 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / Belgian Lambert 2005",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",49.83333333333334],PARAMETER["standard_parallel_2",51.16666666666666],PARAMETER["latitude_of_origin",50.797815],PARAMETER["central_meridian",4.359215833333333],PARAMETER["false_easting",150328],PARAMETER["false_northing",166262],AUTHORITY["EPSG","3447"],AXIS["X",EAST],AXIS["Y",NORTH]] ,x Gepsg xJAD2001 / Jamaica Metric Grid+proj=lcc +lat_1=18 +lat_0=18 +lon_0=-77 +k_0=1 +x_0=750000 +y_0=650000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["JAD2001 / Jamaica Metric Grid",GEOGCS["JAD2001",DATUM["Jamaica_2001",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6758"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4758"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",18],PARAMETER["central_meridian",-77],PARAMETER["scale_factor",1],PARAMETER["false_easting",750000],PARAMETER["false_northing",650000],AUTHORITY["EPSG","3448"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] `y 9sepsg yJAD2001 / UTM zone 17N+proj=utm +zone=17 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["JAD2001 / UTM zone 17N",GEOGCS["JAD2001",DATUM["Jamaica_2001",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6758"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4758"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3449"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] `z 9sepsg zJAD2001 / UTM zone 18N+proj=utm +zone=18 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["JAD2001 / UTM zone 18N",GEOGCS["JAD2001",DATUM["Jamaica_2001",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6758"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4758"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3450"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] RR*{ IQCepsg {NAD83 / Louisiana North (ftUS)+proj=lcc +lat_1=32.66666666666666 +lat_2=31.16666666666667 +lat_0=30.5 +lon_0=-92.5 +x_0=999999.9999898402 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Louisiana North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",32.66666666666666],PARAMETER["standard_parallel_2",31.16666666666667],PARAMETER["latitude_of_origin",30.5],PARAMETER["central_meridian",-92.5],PARAMETER["false_easting",3280833.333300001],PARAMETER["false_northing",0],AUTHORITY["EPSG","3451"],AXIS["X",EAST],AXIS["Y",NORTH]] ll| I7)epsg |NAD83 / Louisiana South (ftUS)+proj=lcc +lat_1=30.7 +lat_2=29.3 +lat_0=28.5 +lon_0=-91.33333333333333 +x_0=999999.9999898402 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Louisiana South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",30.7],PARAMETER["standard_parallel_2",29.3],PARAMETER["latitude_of_origin",28.5],PARAMETER["central_meridian",-91.33333333333333],PARAMETER["false_easting",3280833.333300001],PARAMETER["false_northing",0],AUTHORITY["EPSG","3452"],AXIS["X",EAST],AXIS["Y",NORTH]] 22J} Okcepsg }NAD83 / Louisiana Offshore (ftUS)+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666667 +lat_0=25.5 +lon_0=-91.33333333333333 +x_0=999999.9999898402 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Louisiana Offshore (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",27.83333333333333],PARAMETER["standard_parallel_2",26.16666666666667],PARAMETER["latitude_of_origin",25.5],PARAMETER["central_meridian",-91.33333333333333],PARAMETER["false_easting",3280833.333300001],PARAMETER["false_northing",0],AUTHORITY["EPSG","3453"],AXIS["X",EAST],AXIS["Y",NORTH]] GG5~ OUOepsg ~NAD83 / South Dakota North (ftUS)+proj=lcc +lat_1=44.4 +lat_2=42.83333333333334 +lat_0=42.33333333333334 +lon_0=-100.3333333333333 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / South Dakota North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",44.4],PARAMETER["standard_parallel_2",42.83333333333334],PARAMETER["latitude_of_origin",42.33333333333334],PARAMETER["central_meridian",-100.3333333333333],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","3454"],AXIS["X",EAST],AXIS["Y",NORTH]] GG5 OUOepsg NAD83 / South Dakota South (ftUS)+proj=lcc +lat_1=44.4 +lat_2=42.83333333333334 +lat_0=42.33333333333334 +lon_0=-100.3333333333333 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / South Dakota South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",44.4],PARAMETER["standard_parallel_2",42.83333333333334],PARAMETER["latitude_of_origin",42.33333333333334],PARAMETER["central_meridian",-100.3333333333333],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","3455"],AXIS["X",EAST],AXIS["Y",NORTH]] BB: U7qepsg NAD83(HARN) / Louisiana North (ftUS)+proj=lcc +lat_1=32.66666666666666 +lat_2=31.16666666666667 +lat_0=30.5 +lon_0=-92.5 +x_0=999999.9999898402 +y_0=0 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Louisiana North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",32.66666666666666],PARAMETER["standard_parallel_2",31.16666666666667],PARAMETER["latitude_of_origin",30.5],PARAMETER["central_meridian",-92.5],PARAMETER["false_easting",3280833.333300001],PARAMETER["false_northing",0],AUTHORITY["EPSG","3456"],AXIS["X",EAST],AXIS["Y",NORTH]] \\  UWepsg NAD83(HARN) / Louisiana South (ftUS)+proj=lcc +lat_1=30.7 +lat_2=29.3 +lat_0=28.5 +lon_0=-91.33333333333333 +x_0=999999.9999898402 +y_0=0 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Louisiana South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",30.7],PARAMETER["standard_parallel_2",29.3],PARAMETER["latitude_of_origin",28.5],PARAMETER["central_meridian",-91.33333333333333],PARAMETER["false_easting",3280833.333300001],PARAMETER["false_northing",0],AUTHORITY["EPSG","3457"],AXIS["X",EAST],AXIS["Y",NORTH]] 99C [9{epsg NAD83(HARN) / South Dakota North (ftUS)+proj=lcc +lat_1=45.68333333333333 +lat_2=44.41666666666666 +lat_0=43.83333333333334 +lon_0=-100 +x_0=600000 +y_0=0 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / South Dakota North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.68333333333333],PARAMETER["standard_parallel_2",44.41666666666666],PARAMETER["latitude_of_origin",43.83333333333334],PARAMETER["central_meridian",-100],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","3458"],AXIS["X",EAST],AXIS["Y",NORTH]] 77E [;}epsg NAD83(HARN) / South Dakota South (ftUS)+proj=lcc +lat_1=44.4 +lat_2=42.83333333333334 +lat_0=42.33333333333334 +lon_0=-100.3333333333333 +x_0=600000 +y_0=0 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / South Dakota South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",44.4],PARAMETER["standard_parallel_2",42.83333333333334],PARAMETER["latitude_of_origin",42.33333333333334],PARAMETER["central_meridian",-100.3333333333333],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","3459"],AXIS["X",EAST],AXIS["Y",NORTH]]  ?]sepsg Fiji 1986 / Fiji Map Grid+proj=tmerc +lat_0=-17 +lon_0=178.75 +k=0.99985 +x_0=2000000 +y_0=4000000 +ellps=WGS72 +units=m +no_defsPROJCS["Fiji 1986 / Fiji Map Grid",GEOGCS["Fiji 1986",DATUM["Fiji_Geodetic_Datum_1986",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6720"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4720"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-17],PARAMETER["central_meridian",178.75],PARAMETER["scale_factor",0.99985],PARAMETER["false_easting",2000000],PARAMETER["false_northing",4000000],AUTHORITY["EPSG","3460"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  A=-epsg Dabola 1981 / UTM zone 28N+proj=utm +zone=28 +a=6378249.2 +b=6356515 +towgs84=-83,37,124,0,0,0,0 +units=m +no_defsPROJCS["Dabola 1981 / UTM zone 28N",GEOGCS["Dabola 1981",DATUM["Dabola_1981",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-83,37,124,0,0,0,0],AUTHORITY["EPSG","6155"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4155"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3461"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  A=+epsg Dabola 1981 / UTM zone 29N+proj=utm +zone=29 +a=6378249.2 +b=6356515 +towgs84=-83,37,124,0,0,0,0 +units=m +no_defsPROJCS["Dabola 1981 / UTM zone 29N",GEOGCS["Dabola 1981",DATUM["Dabola_1981",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-83,37,124,0,0,0,0],AUTHORITY["EPSG","6155"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4155"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3462"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  Emaepsg NAD83 / Maine CS2000 Central+proj=tmerc +lat_0=43.5 +lon_0=-69.125 +k=0.99998 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Maine CS2000 Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",43.5],PARAMETER["central_meridian",-69.125],PARAMETER["scale_factor",0.99998],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3463"],AXIS["X",EAST],AXIS["Y",NORTH]]  QSepsg NAD83(HARN) / Maine CS2000 Central+proj=tmerc +lat_0=43.5 +lon_0=-69.125 +k=0.99998 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Maine CS2000 Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",43.5],PARAMETER["central_meridian",-69.125],PARAMETER["scale_factor",0.99998],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3464"],AXIS["X",EAST],AXIS["Y",NORTH]] ] Icepsg NAD83(NSRS2007) / Alabama East+proj=tmerc +lat_0=30.5 +lon_0=-85.83333333333333 +k=0.99996 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Alabama East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",30.5],PARAMETER["central_meridian",-85.83333333333333],PARAMETER["scale_factor",0.99996],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3465"],AXIS["X",EAST],AXIS["Y",NORTH]] G IMepsg NAD83(NSRS2007) / Alabama West+proj=tmerc +lat_0=30 +lon_0=-87.5 +k=0.999933333 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Alabama West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",30],PARAMETER["central_meridian",-87.5],PARAMETER["scale_factor",0.999933333],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3466"],AXIS["X",EAST],AXIS["Y",NORTH]] $$c KQ3epsg NAD83(NSRS2007) / Alaska zone 1+proj=omerc +lat_0=57 +lonc=-133.6666666666667 +alpha=323Ԇi K{epsg NAD83(NSRS2007) / Alaska Albers+proj=aea +lat_1=55 +lat_2=65 +lat_0=50 +lon_0=-154 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Alaska Albers",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["standard_parallel_1",55],PARAMETER["standard_parallel_2",65],PARAMETER["latitude_of_center",50],PARAMETER["longitude_of_center",-154],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3467"],AXIS["X",EAST],AXIS["Y",NORTH]].1301023611111 +k=0.9999 +x_0=5000000 +y_0=-5000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Alaska zone 1",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Hotine_Oblique_Mercator"],PARAMETER["latitude_of_center",57],PARAMETER["longitude_of_center",-133.6666666666667],PARAMETER["azimuth",323.1301023611111],PARAMETER["rectified_grid_angle",323.1301023611111],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",5000000],PARAMETER["false_northing",-5000000],AUTHORITY["EPSG","3468"],AXIS["X",EAST],AXIS["Y",NORTH]] = KuCepsg NAD83(NSRS2007) / Alaska zone 2+proj=tmerc +lat_0=54 +lon_0=-142 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Alaska zone 2",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",54],PARAMETER["central_meridian",-142],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3469"],AXIS["X",EAST],AXIS["Y",NORTH]] = KuCepsg NAD83(NSRS2007) / Alaska zone 3+proj=tmerc +lat_0=54 +lon_0=-146 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Alaska zone 3",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",54],PARAMETER["central_meridian",-146],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3470"],AXIS["X",EAST],AXIS["Y",NORTH]] = KuCepsg NAD83(NSRS2007) / Alaska zone 4+proj=tmerc +lat_0=54 +lon_0=-150 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Alaska zone 4",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",54],PARAMETER["central_meridian",-150],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3471"],AXIS["X",EAST],AXIS["Y",NORTH]] = KuCepsg NAD83(NSRS2007) / Alaska zone 5+proj=tmerc +lat_0=54 +lon_0=-154 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Alaska zone 5",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",54],PARAMETER["central_meridian",-154],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3472"],AXIS["X",EAST],AXIS["Y",NORTH]] = KuCepsg NAD83(NSRS2007) / Alaska zone 6+proj=tmerc +lat_0=54 +lon_0=-158 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Alaska zone 6",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",54],PARAMETER["central_meridian",-158],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3473"],AXIS["X",EAST],AXIS["Y",NORTH]] = KuCepsg NAD83(NSRS2007) / Alaska zone 7+proj=tmerc +lat_0=54 +lon_0=-162 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Alaska zone 7",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",54],PARAMETER["central_meridian",-162],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3474"],AXIS["X",EAST],AXIS["Y",NORTH]] = KuCepsg NAD83(NSRS2007) / Alaska zone 8+proj=tmerc +lat_0=54 +lon_0=-166 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Alaska zone 8",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",54],PARAMETER["central_meridian",-166],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3475"],AXIS["X",EAST],AXIS["Y",NORTH]] = KuCepsg NAD83(NSRS2007) / Alaska zone 9+proj=tmerc +lat_0=54 +lon_0=-170 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Alaska zone 9",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",54],PARAMETER["central_meridian",-170],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3476"],AXIS["X",EAST],AXIS["Y",NORTH]] HH4 MCaepsg NAD83(NSRS2007) / Alaska zone 10+proj=lcc +lat_1=53.83333333333334 +lat_2=51.83333333333334 +lat_0=51 +lon_0=-176 +x_0=1000000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Alaska zone 10",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",53.83333333333334],PARAMETER["standard_parallel_2",51.83333333333334],PARAMETER["latitude_of_origin",51],PARAMETER["central_meridian",-176],PARAMETER["false_easting",1000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3477"],AXIS["X",EAST],AXIS["Y",NORTH]] ] Ocepsg NAD83(NSRS2007) / Arizona Central+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Arizona Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-111.9166666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",213360],PARAMETER["false_northing",0],AUTHORITY["EPSG","3478"],AXIS["X",EAST],AXIS["Y",NORTH]] l Yuepsg NAD83(NSRS2007) / Arizona Central (ft)+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defsPROJCS["NAD83(NSRS2007) / Arizona Central (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-111.9166666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",700000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3479"],AXIS["X",EAST],AXIS["Y",NORTH]] W I]epsg NAD83(NSRS2007) / Arizona East+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Arizona East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-110.1666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",213360],PARAMETER["false_northing",0],AUTHORITY["EPSG","3480"],AXIS["X",EAST],AXIS["Y",NORTH]] f Soepsg NAD83(NSRS2007) / Arizona East (ft)+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defsPROJCS["NAD83(NSRS2007) / Arizona East (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-110.1666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",700000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3481"],AXIS["X",EAST],AXIS["Y",NORTH]] K IQepsg NAD83(NSRS2007) / Arizona West+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Arizona West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-113.75],PARAMETER["scale_factor",0.999933333],PARAMETER["false_easting",213360],PARAMETER["false_northing",0],AUTHORITY["EPSG","3482"],AXIS["X",EAST],AXIS["Y",NORTH]] Z Scepsg NAD83(NSRS2007) / Arizona West (ft)+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defsPROJCS["NAD83(NSRS2007) / Arizona West (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-113.75],PARAMETER["scale_factor",0.999933333],PARAMETER["false_easting",700000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3483"],AXIS["X",EAST],AXIS["Y",NORTH]] ..N M]{epsg NAD83(NSRS2007) / Arkansas North+proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=400000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Arkansas North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.23333333333333],PARAMETER["standard_parallel_2",34.93333333333333],PARAMETER["latitude_of_origin",34.33333333333334],PARAMETER["central_meridian",-92],PARAMETER["false_easting",400000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3484"],AXIS["X",EAST],AXIS["Y",NORTH]]3333333333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=399999.99998984 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Arkansas North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.23333333333333],PARAMETER["standard_parallel_2",34.93333333333333],PARAMETER["latitude_of_origin",34.33333333333334],PARAMETER["central_meridian",-92],PARAMETER["false_easting",1312333.3333],PARAMETER["false_northing",0],AUTHORITY["EPSG","3485"],AXIS["X",EAST],AXIS["Y",NORTH]]   [wIepsg NAD83(NSRS2007) / Arkansas North (ftUS)+proj=lcc +lat_1=36.23333333333333 +lat_2=34.9333 >>> MMkepsg NAD83(NSRS2007) / Arkansas South+proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32.66666666666666 +lon_0=-92 +x_0=400000 +y_0=400000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Arkansas South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",34.76666666666667],PARAMETER["standard_parallel_2",33.3],PARAMETER["latitude_of_origin",32.66666666666666],PARAMETER["central_meridian",-92],PARAMETER["false_easting",400000],PARAMETER["false_northing",400000],AUTHORITY["EPSG","3486"],AXIS["X",EAST],AXIS["Y",NORTH]]at_0=32.66666666666666 +lon_0=-92 +x_0=399999.99998984 +y_0=399999.99998984 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Arkansas South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",34.76666666666667],PARAMETER["standard_parallel_2",33.3],PARAMETER["latitude_of_origin",32.66666666666666],PARAMETER["central_meridian",-92],PARAMETER["false_easting",1312333.3333],PARAMETER["false_northing",1312333.3333],AUTHORITY["EPSG","3487"],AXIS["X",EAST],AXIS["Y",NORTH]]    S -epsg NAD83(NSRS2007) / California Albers+proj=aea +lat_1=34 +lat_2=40.5 +lat_0=0 +lon_0=-120 +x_0=0 +y_0=-4000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / California Albers",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["standard_parallel_1",34],PARAMETER["standard_parallel_2",40.5],PARAMETER["latitude_of_center",0],PARAMETER["longitude_of_center",-120],PARAMETER["false_easting",0],PARAMETER["false_northing",-4000000],AUTHORITY["EPSG","3488"],AXIS["X",EAST],AXIS["Y",NORTH]] [yEepsg NAD83(NSRS2007) / Arkansas South (ftUS)+proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +l 88D! SMqepsg NAD83(NSRS2007) / California zone 1+proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.33333333333334 +lon_0=-122 +x_0=2000000 +y_0=500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / California zone 1",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.66666666666666],PARAMETER["standard_parallel_2",40],PARAMETER["latitude_of_origin",39.33333333333334],PARAMETER["central_meridian",-122],PARAMETER["false_easting",2000000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","3489"],AXIS["X",EAST],AXIS["Y",NORTH]]lat_0=39.33333333333334 +lon_0=-122 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / California zone 1 (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.66666666666666],PARAMETER["standard_parallel_2",40],PARAMETER["latitude_of_origin",39.33333333333334],PARAMETER["central_meridian",-122],PARAMETER["false_easting",6561666.667],PARAMETER["false_northing",1640416.667],AUTHORITY["EPSG","3490"],AXIS["X",EAST],AXIS["Y",NORTH]] "*$ acepsg NAD83(NSRS2007) / California zone 2 (ftUS)+proj=lcc +lat_1=39.83333333333334 +lat_2=38.3b# Skepsg NAD83(NSRS2007) / California zone 2+proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333 " a{Eepsg NAD83(NSRS2007) / California zone 1 (ftUS)+proj=lcc +lat_1=41.66666666666666 +lat_2=40 +333334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000 +y_0=500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / California zone 2",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.83333333333334],PARAMETER["standard_parallel_2",38.33333333333334],PARAMETER["latitude_of_origin",37.66666666666666],PARAMETER["central_meridian",-122],PARAMETER["false_easting",2000000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","3491"],AXIS["X",EAST],AXIS["Y",NORTH]]3333333333334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / California zone 2 (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.83333333333334],PARAMETER["standard_parallel_2",38.33333333333334],PARAMETER["latitude_of_origin",37.66666666666666],PARAMETER["central_meridian",-122],PARAMETER["false_easting",6561666.667],PARAMETER["false_northing",1640416.667],AUTHORITY["EPSG","3492"],AXIS["X",EAST],AXIS["Y",NORTH]] 00L% SUyepsg NAD83(NSRS2007) / California zone 3+proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666667 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000 +y_0=500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / California zone 3",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.43333333333333],PARAMETER["standard_parallel_2",37.06666666666667],PARAMETER["latitude_of_origin",36.5],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","3493"],AXIS["X",EAST],AXIS["Y",NORTH]]6666666666667 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / California zone 3 (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.43333333333333],PARAMETER["standard_parallel_2",37.06666666666667],PARAMETER["latitude_of_origin",36.5],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",6561666.667],PARAMETER["false_northing",1640416.667],AUTHORITY["EPSG","3494"],AXIS["X",EAST],AXIS["Y",NORTH]] & aMepsg NAD83(NSRS2007) / California zone 3 (ftUS)+proj=lcc +lat_1=38.43333333333333 +lat_2=37.0 PP,' S5Yepsg NAD83(NSRS2007) / California zone 4+proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.33333333333334 +lon_0=-119 +x_0=2000000 +y_0=500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / California zone 4",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.25],PARAMETER["standard_parallel_2",36],PARAMETER["latitude_of_origin",35.33333333333334],PARAMETER["central_meridian",-119],PARAMETER["false_easting",2000000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","3495"],AXIS["X",EAST],AXIS["Y",NORTH]]33333333334 +lon_0=-119 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / California zone 4 (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.25],PARAMETER["standard_parallel_2",36],PARAMETER["latitude_of_origin",35.33333333333334],PARAMETER["central_meridian",-119],PARAMETER["false_easting",6561666.667],PARAMETER["false_northing",1640416.667],AUTHORITY["EPSG","3496"],AXIS["X",EAST],AXIS["Y",NORTH]] t( ac-epsg NAD83(NSRS2007) / California zone 4 (ftUS)+proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.333 44H) SQuepsg NAD83(NSRS2007) / California zone 5+proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333333 +lat_0=33.5 +lon_0=-118 +x_0=2000000 +y_0=500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / California zone 5",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",35.46666666666667],PARAMETER["standard_parallel_2",34.03333333333333],PARAMETER["latitude_of_origin",33.5],PARAMETER["central_meridian",-118],PARAMETER["false_easting",2000000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","3497"],AXIS["X",EAST],AXIS["Y",NORTH]]3333333333333 +lat_0=33.5 +lon_0=-118 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / California zone 5 (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",35.46666666666667],PARAMETER["standard_parallel_2",34.03333333333333],PARAMETER["latitude_of_origin",33.5],PARAMETER["central_meridian",-118],PARAMETER["false_easting",6561666.667],PARAMETER["false_northing",1640416.667],AUTHORITY["EPSG","3498"],AXIS["X",EAST],AXIS["Y",NORTH]] "0, aiepsg NAD83(NSRS2007) / California zone 6 (ftUS)+proj=lcc +lat_1=33.88333333333333 +lat_2=32.7h+ Sqepsg NAD83(NSRS2007) / California zone 6+proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333* aIepsg NAD83(NSRS2007) / California zone 5 (ftUS)+proj=lcc +lat_1=35.46666666666667 +lat_2=34.0333333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000 +y_0=500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / California zone 6",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",33.88333333333333],PARAMETER["standard_parallel_2",32.78333333333333],PARAMETER["latitude_of_origin",32.16666666666666],PARAMETER["central_meridian",-116.25],PARAMETER["false_easting",2000000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","3499"],AXIS["X",EAST],AXIS["Y",NORTH]]8333333333333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / California zone 6 (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",33.88333333333333],PARAMETER["standard_parallel_2",32.78333333333333],PARAMETER["latitude_of_origin",32.16666666666666],PARAMETER["central_meridian",-116.25],PARAMETER["false_easting",6561666.667],PARAMETER["false_northing",1640416.667],AUTHORITY["EPSG","3500"],AXIS["X",EAST],AXIS["Y",NORTH]] 66F- QQsepsg NAD83(NSRS2007) / Colorado Central+proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.83333333333334 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Colorado Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.75],PARAMETER["standard_parallel_2",38.45],PARAMETER["latitude_of_origin",37.83333333333334],PARAMETER["central_meridian",-105.5],PARAMETER["false_easting",914401.8289],PARAMETER["false_northing",304800.6096],AUTHORITY["EPSG","3501"],AXIS["X",EAST],AXIS["Y",NORTH]]3333333333334 +lon_0=-105.5 +x_0=914401.8288036576 +y_0=304800.6096012192 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Colorado Central (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.75],PARAMETER["standard_parallel_2",38.45],PARAMETER["latitude_of_origin",37.83333333333334],PARAMETER["central_meridian",-105.5],PARAMETER["false_easting",3000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","3502"],AXIS["X",EAST],AXIS["Y",NORTH]] "D"2 [!Qepsg NAD83(NSRS2007) / Colorado South (ftUS)+proj=lcc +lat_1=38.43333333333333 +lat_2=37.2333r1 Mepsg NAD83(NSRS2007) / Colorado South+proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333"0 [!Qepsg NAD83(NSRS2007) / Colorado North (ftUS)+proj=lcc +lat_1=40.78333333333333 +lat_2=39.7166r/ Mepsg NAD83(NSRS2007) / Colorado North+proj=lcc +lat_1=40.78333333333333 +lat_2=39.71666666666v. _q%epsg NAD83(NSRS2007) / Colorado Central (ftUS)+proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.8667 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Colorado North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.78333333333333],PARAMETER["standard_parallel_2",39.71666666666667],PARAMETER["latitude_of_origin",39.33333333333334],PARAMETER["central_meridian",-105.5],PARAMETER["false_easting",914401.8289],PARAMETER["false_northing",304800.6096],AUTHORITY["EPSG","3503"],AXIS["X",EAST],AXIS["Y",NORTH]]6666666667 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8288036576 +y_0=304800.6096012192 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Colorado North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.78333333333333],PARAMETER["standard_parallel_2",39.71666666666667],PARAMETER["latitude_of_origin",39.33333333333334],PARAMETER["central_meridian",-105.5],PARAMETER["false_easting",3000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","3504"],AXIS["X",EAST],AXIS["Y",NORTH]]333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Colorado South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.43333333333333],PARAMETER["standard_parallel_2",37.23333333333333],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-105.5],PARAMETER["false_easting",914401.8289],PARAMETER["false_northing",304800.6096],AUTHORITY["EPSG","3505"],AXIS["X",EAST],AXIS["Y",NORTH]] ;(5BO\iv,9FS`mz #0=JWdq~  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg 3333333333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8288036576 +y_0=304800.6096012192 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Colorado South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.43333333333333],PARAMETER["standard_parallel_2",37.23333333333333],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-105.5],PARAMETER["false_easting",3000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","3506"],AXIS["X",EAST],AXIS["Y",NORTH]] **R3 Ggepsg NAD83(NSRS2007) / Connecticut+proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40.83333333333334 +lon_0=-72.75 +x_0=304800.6096 +y_0=152400.3048 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Connecticut",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.86666666666667],PARAMETER["standard_parallel_2",41.2],PARAMETER["latitude_of_origin",40.83333333333334],PARAMETER["central_meridian",-72.75],PARAMETER["false_easting",304800.6096],PARAMETER["false_northing",152400.3048],AUTHORITY["EPSG","3507"],AXIS["X",EAST],AXIS["Y",NORTH]]0=40.83333333333334 +lon_0=-72.75 +x_0=304800.6096012192 +y_0=152400.3048006096 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Connecticut (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.86666666666667],PARAMETER["standard_parallel_2",41.2],PARAMETER["latitude_of_origin",40.83333333333334],PARAMETER["central_meridian",-72.75],PARAMETER["false_easting",1000000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","3508"],AXIS["X",EAST],AXIS["Y",NORTH]] ::S5 AYepsg NAD83(NSRS2007) / Delaware+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999995 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Delaware",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38],PARAMETER["central_meridian",-75.41666666666667],PARAMETER["scale_factor",0.999995],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3509"],AXIS["X",EAST],AXIS["Y",NORTH]]4 U/epsg NAD83(NSRS2007) / Connecticut (ftUS)+proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_ nn6 O3#epsg NAD83(NSRS2007) / Delaware (ftUS)+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999995 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Delaware (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38],PARAMETER["central_meridian",-75.41666666666667],PARAMETER["scale_factor",0.999995],PARAMETER["false_easting",656166.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","3510"],AXIS["X",EAST],AXIS["Y",NORTH]] a7 Igepsg NAD83(NSRS2007) / Florida East+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999941177 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Florida East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",24.33333333333333],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3511"],AXIS["X",EAST],AXIS["Y",NORTH]] ``8 W91epsg NAD83(NSRS2007) / Florida East (ftUS)+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999941177 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Florida East (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",24.33333333333333],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",656166.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","3512"],AXIS["X",EAST],AXIS["Y",NORTH]] }}9 U+epsg NAD83(NSRS2007) / Florida GDL Albers+proj=aea +lat_1=24 +lat_2=31.5 +lat_0=24 +lon_0=-84 +x_0=400000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Florida GDL Albers",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["standard_parallel_1",24],PARAMETER["standard_parallel_2",31.5],PARAMETER["latitude_of_center",24],PARAMETER["longitude_of_center",-84],PARAMETER["false_easting",400000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3513"],AXIS["X",EAST],AXIS["Y",NORTH]] bb: K+Gepsg NAD83(NSRS2007) / Florida North+proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=29 +lon_0=-84.5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Florida North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",30.75],PARAMETER["standard_parallel_2",29.58333333333333],PARAMETER["latitude_of_origin",29],PARAMETER["central_meridian",-84.5],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3514"],AXIS["X",EAST],AXIS["Y",NORTH]] 55G; Y3 epsg NAD83(NSRS2007) / Florida North (ftUS)+proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=29 +lon_0=-84.5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Florida North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",30.75],PARAMETER["standard_parallel_2",29.58333333333333],PARAMETER["latitude_of_origin",29],PARAMETER["central_meridian",-84.5],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","3515"],AXIS["X",EAST],AXIS["Y",NORTH]] a< Igepsg NAD83(NSRS2007) / Florida West+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999941177 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Florida West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",24.33333333333333],PARAMETER["central_meridian",-82],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3516"],AXIS["X",EAST],AXIS["Y",NORTH]] ``= W91epsg NAD83(NSRS2007) / Florida West (ftUS)+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999941177 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Florida West (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",24.33333333333333],PARAMETER["central_meridian",-82],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",656166.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","3517"],AXIS["X",EAST],AXIS["Y",NORTH]] W> I]epsg NAD83(NSRS2007) / Georgia East+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.9999 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Georgia East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",30],PARAMETER["central_meridian",-82.16666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3518"],AXIS["X",EAST],AXIS["Y",NORTH]] jj? W/'epsg NAD83(NSRS2007) / Georgia East (ftUS)+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.9999 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Georgia East (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",30],PARAMETER["central_meridian",-82.16666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",656166.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","3519"],AXIS["X",EAST],AXIS["Y",NORTH]] W@ I]epsg NAD83(NSRS2007) / Georgia West+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.9999 +x_0=700000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Georgia West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",30],PARAMETER["central_meridian",-84.16666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",700000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3520"],AXIS["X",EAST],AXIS["Y",NORTH]] iiA W/)epsg NAD83(NSRS2007) / Georgia West (ftUS)+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.9999 +x_0=699999.9998983998 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Georgia West (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",30],PARAMETER["central_meridian",-84.16666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",2296583.333],PARAMETER["false_northing",0],AUTHORITY["EPSG","3521"],AXIS["X",EAST],AXIS["Y",NORTH]] lB K+kepsg NAD83(NSRS2007) / Idaho Central+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.9999473679999999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Idaho Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.66666666666666],PARAMETER["central_meridian",-114],PARAMETER["scale_factor",0.999947368],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3522"],AXIS["X",EAST],AXIS["Y",NORTH]] TT(C YI7epsg NAD83(NSRS2007) / Idaho Central (ftUS)+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.9999473679999999 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Idaho Central (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.66666666666666],PARAMETER["central_meridian",-114],PARAMETER["scale_factor",0.999947368],PARAMETER["false_easting",1640416.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","3523"],AXIS["X",EAST],AXIS["Y",NORTH]] zzD EGepsg NAD83(NSRS2007) / Idaho East+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666666667 +k=0.9999473679999999 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Idaho East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.66666666666666],PARAMETER["central_meridian",-112.1666666666667],PARAMETER["scale_factor",0.999947368],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3524"],AXIS["X",EAST],AXIS["Y",NORTH]] ??=E SeKepsg NAD83(NSRS2007) / Idaho East (ftUS)+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666666667 +k=0.9999473679999999 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Idaho East (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.66666666666666],PARAMETER["central_meridian",-112.1666666666667],PARAMETER["scale_factor",0.999947368],PARAMETER["false_easting",656166.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","3525"],AXIS["X",EAST],AXIS["Y",NORTH]] eF E#kepsg NAD83(NSRS2007) / Idaho West+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0.999933333 +x_0=800000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Idaho West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.66666666666666],PARAMETER["central_meridian",-115.75],PARAMETER["scale_factor",0.999933333],PARAMETER["false_easting",800000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3526"],AXIS["X",EAST],AXIS["Y",NORTH]] [[!G SA7epsg NAD83(NSRS2007) / Idaho West (ftUS)+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0.999933333 +x_0=800000.0001016001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Idaho West (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.66666666666666],PARAMETER["central_meridian",-115.75],PARAMETER["scale_factor",0.999933333],PARAMETER["false_easting",2624666.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","3527"],AXIS["X",EAST],AXIS["Y",NORTH]] wwH KGepsg NAD83(NSRS2007) / Illinois East+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333333333 +k=0.9999749999999999 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Illinois East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-88.33333333333333],PARAMETER["scale_factor",0.999975],PARAMETER["false_easting",300000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3528"],AXIS["X",EAST],AXIS["Y",NORTH]] 55GI YeYepsg NAD83(NSRS2007) / Illinois East (ftUS)+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333333333 +k=0.9999749999999999 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Illinois East (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-88.33333333333333],PARAMETER["scale_factor",0.999975],PARAMETER["false_easting",984250.0000000002],PARAMETER["false_northing",0],AUTHORITY["EPSG","3529"],AXIS["X",EAST],AXIS["Y",NORTH]] {{J K9epsg NAD83(NSRS2007) / Illinois West+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666666667 +k=0.999941177 +x_0=700000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Illinois West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-90.16666666666667],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",700000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3530"],AXIS["X",EAST],AXIS["Y",NORTH]] 99CK YW_epsg NAD83(NSRS2007) / Illinois West (ftUS)+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666666667 +k=0.999941177 +x_0=699999.9999898402 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Illinois West (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-90.16666666666667],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",2296583.333300001],PARAMETER["false_northing",0],AUTHORITY["EPSG","3531"],AXIS["X",EAST],AXIS["Y",NORTH]] oL I)uepsg NAD83(NSRS2007) / Indiana East+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.999966667 +x_0=100000 +y_0=250000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Indiana East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",37.5],PARAMETER["central_meridian",-85.66666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",100000],PARAMETER["false_northing",250000],AUTHORITY["EPSG","3532"],AXIS["X",EAST],AXIS["Y",NORTH]] <<@M W]Uepsg NAD83(NSRS2007) / Indiana East (ftUS)+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.999966667 +x_0=99999.99989839978 +y_0=249999.9998983998 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Indiana East (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",37.5],PARAMETER["central_meridian",-85.66666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",328083.333],PARAMETER["false_northing",820208.3330000002],AUTHORITY["EPSG","3533"],AXIS["X",EAST],AXIS["Y",NORTH]] oN I)uepsg NAD83(NSRS2007) / Indiana West+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.999966667 +x_0=900000 +y_0=250000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Indiana West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",37.5],PARAMETER["central_meridian",-87.08333333333333],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",900000],PARAMETER["false_northing",250000],AUTHORITY["EPSG","3534"],AXIS["X",EAST],AXIS["Y",NORTH]] JJ2O WGOepsg NAD83(NSRS2007) / Indiana West (ftUS)+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.999966667 +x_0=900000 +y_0=249999.9998983998 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Indiana West (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",37.5],PARAMETER["central_meridian",-87.08333333333333],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",2952750],PARAMETER["false_northing",820208.3330000002],AUTHORITY["EPSG","3535"],AXIS["X",EAST],AXIS["Y",NORTH]] >>>P EUkepsg NAD83(NSRS2007) / Iowa North+proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666667 +lat_0=41.5 +lon_0=-93.5 +x_0=1500000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Iowa North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43.26666666666667],PARAMETER["standard_parallel_2",42.06666666666667],PARAMETER["latitude_of_origin",41.5],PARAMETER["central_meridian",-93.5],PARAMETER["false_easting",1500000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","3536"],AXIS["X",EAST],AXIS["Y",NORTH]]6666667 +lat_0=41.5 +lon_0=-93.5 +x_0=1500000 +y_0=999999.9999898402 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Iowa North (ft US)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43.26666666666667],PARAMETER["standard_parallel_2",42.06666666666667],PARAMETER["latitude_of_origin",41.5],PARAMETER["central_meridian",-93.5],PARAMETER["false_easting",4921250],PARAMETER["false_northing",3280833.333300001],AUTHORITY["EPSG","3537"],AXIS["X",EAST],AXIS["Y",NORTH]] Q UqCepsg NAD83(NSRS2007) / Iowa North (ft US)+proj=lcc +lat_1=43.26666666666667 +lat_2=42.0666666 PP,R ECYepsg NAD83(NSRS2007) / Iowa South+proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666667 +lat_0=40 +lon_0=-93.5 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Iowa South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.78333333333333],PARAMETER["standard_parallel_2",40.61666666666667],PARAMETER["latitude_of_origin",40],PARAMETER["central_meridian",-93.5],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3538"],AXIS["X",EAST],AXIS["Y",NORTH]]6666667 +lat_0=40 +lon_0=-93.5 +x_0=500000.00001016 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Iowa South (ft US)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.78333333333333],PARAMETER["standard_parallel_2",40.61666666666667],PARAMETER["latitude_of_origin",40],PARAMETER["central_meridian",-93.5],PARAMETER["false_easting",1640416.6667],PARAMETER["false_northing",0],AUTHORITY["EPSG","3539"],AXIS["X",EAST],AXIS["Y",NORTH]] iS U])epsg NAD83(NSRS2007) / Iowa South (ft US)+proj=lcc +lat_1=41.78333333333333 +lat_2=40.6166666# 22JT I]wepsg NAD83(NSRS2007) / Kansas North+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=400000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Kansas North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.78333333333333],PARAMETER["standard_parallel_2",38.71666666666667],PARAMETER["latitude_of_origin",38.33333333333334],PARAMETER["central_meridian",-98],PARAMETER["false_easting",400000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3540"],AXIS["X",EAST],AXIS["Y",NORTH]]666666667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=399999.99998984 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Kansas North (ft US)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.78333333333333],PARAMETER["standard_parallel_2",38.71666666666667],PARAMETER["latitude_of_origin",38.33333333333334],PARAMETER["central_meridian",-98],PARAMETER["false_easting",1312333.3333],PARAMETER["false_northing",0],AUTHORITY["EPSG","3541"],AXIS["X",EAST],AXIS["Y",NORTH]] U YwGepsg NAD83(NSRS2007) / Kansas North (ft US)+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666& $$XV Ikepsg NAD83(NSRS2007) / Kansas South+proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=400000 +y_0=400000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Kansas South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.56666666666667],PARAMETER["standard_parallel_2",37.26666666666667],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-98.5],PARAMETER["false_easting",400000],PARAMETER["false_northing",400000],AUTHORITY["EPSG","3542"],AXIS["X",EAST],AXIS["Y",NORTH]]666666667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=399999.99998984 +y_0=399999.99998984 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Kansas South (ft US)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.56666666666667],PARAMETER["standard_parallel_2",37.26666666666667],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-98.5],PARAMETER["false_easting",1312333.3333],PARAMETER["false_northing",1312333.3333],AUTHORITY["EPSG","3543"],AXIS["X",EAST],AXIS["Y",NORTH]] $W Yaepsg NAD83(NSRS2007) / Kansas South (ft US)+proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666) BB:X MIgepsg NAD83(NSRS2007) / Kentucky North+proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Kentucky North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.96666666666667],PARAMETER["standard_parallel_2",38.96666666666667],PARAMETER["latitude_of_origin",37.5],PARAMETER["central_meridian",-84.25],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3544"],AXIS["X",EAST],AXIS["Y",NORTH]]6666666667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Kentucky North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.96666666666667],PARAMETER["standard_parallel_2",38.96666666666667],PARAMETER["latitude_of_origin",37.5],PARAMETER["central_meridian",-84.25],PARAMETER["false_easting",1640416.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","3545"],AXIS["X",EAST],AXIS["Y",NORTH]] "D*] [!aepsg NAD83(NSRS2007) / Kentucky South (ftUS)+proj=lcc +lat_1=37.93333333333333 +lat_2=36.73331^\ Mm epsg NAD83(NSRS2007) / Kentucky South+proj=lcc +lat_1=37.93333333333333 +lat_2=36.733333333330([ g eepsg NAD83(NSRS2007) / Kentucky Single Zone (ftUS)+proj=lcc +lat_1=37.08333333333334 +lat_2=3/nZ Yqepsg NAD83(NSRS2007) / Kentucky Single Zone+proj=lcc +lat_1=37.08333333333334 +lat_2=38.66666.vY [g3epsg NAD83(NSRS2007) / Kentucky North (ftUS)+proj=lcc +lat_1=37.96666666666667 +lat_2=38.9666,666666666 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=1500000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Kentucky Single Zone",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.08333333333334],PARAMETER["standard_parallel_2",38.66666666666666],PARAMETER["latitude_of_origin",36.33333333333334],PARAMETER["central_meridian",-85.75],PARAMETER["false_easting",1500000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","3546"],AXIS["X",EAST],AXIS["Y",NORTH]]8.66666666666666 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=1500000 +y_0=999999.9998983998 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Kentucky Single Zone (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.08333333333334],PARAMETER["standard_parallel_2",38.66666666666666],PARAMETER["latitude_of_origin",36.33333333333334],PARAMETER["central_meridian",-85.75],PARAMETER["false_easting",4921250],PARAMETER["false_northing",3280833.333],AUTHORITY["EPSG","3547"],AXIS["X",EAST],AXIS["Y",NORTH]]333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000 +y_0=500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Kentucky South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.93333333333333],PARAMETER["standard_parallel_2",36.73333333333333],PARAMETER["latitude_of_origin",36.33333333333334],PARAMETER["central_meridian",-85.75],PARAMETER["false_easting",500000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","3548"],AXIS["X",EAST],AXIS["Y",NORTH]]3333333333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000.0001016001 +y_0=500000.0001016001 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Kentucky South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.93333333333333],PARAMETER["standard_parallel_2",36.73333333333333],PARAMETER["latitude_of_origin",36.33333333333334],PARAMETER["central_meridian",-85.75],PARAMETER["false_easting",1640416.667],PARAMETER["false_northing",1640416.667],AUTHORITY["EPSG","3549"],AXIS["X",EAST],AXIS["Y",NORTH]] @@<^ OIiepsg NAD83(NSRS2007) / Louisiana North+proj=lcc +lat_1=32.66666666666666 +lat_2=31.16666666666667 +lat_0=30.5 +lon_0=-92.5 +x_0=1000000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Louisiana North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",32.66666666666666],PARAMETER["standard_parallel_2",31.16666666666667],PARAMETER["latitude_of_origin",30.5],PARAMETER["central_meridian",-92.5],PARAMETER["false_easting",1000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3550"],AXIS["X",EAST],AXIS["Y",NORTH]]66666666667 +lat_0=30.5 +lon_0=-92.5 +x_0=999999.9999898402 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Louisiana North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",32.66666666666666],PARAMETER["standard_parallel_2",31.16666666666667],PARAMETER["latitude_of_origin",30.5],PARAMETER["central_meridian",-92.5],PARAMETER["false_easting",3280833.333300001],PARAMETER["false_northing",0],AUTHORITY["EPSG","3551"],AXIS["X",EAST],AXIS["Y",NORTH]] |_ ]e?epsg NAD83(NSRS2007) / Louisiana North (ftUS)+proj=lcc +lat_1=32.66666666666666 +lat_2=31.1663 ZZ"` O/Oepsg NAD83(NSRS2007) / Louisiana South+proj=lcc +lat_1=30.7 +lat_2=29.3 +lat_0=28.5 +lon_0=-91.33333333333333 +x_0=1000000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Louisiana South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",30.7],PARAMETER["standard_parallel_2",29.3],PARAMETER["latitude_of_origin",28.5],PARAMETER["central_meridian",-91.33333333333333],PARAMETER["false_easting",1000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3552"],AXIS["X",EAST],AXIS["Y",NORTH]]on_0=-91.33333333333333 +x_0=999999.9999898402 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Louisiana South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",30.7],PARAMETER["standard_parallel_2",29.3],PARAMETER["latitude_of_origin",28.5],PARAMETER["central_meridian",-91.33333333333333],PARAMETER["false_easting",3280833.333300001],PARAMETER["false_northing",0],AUTHORITY["EPSG","3553"],AXIS["X",EAST],AXIS["Y",NORTH]] 66Wb Y]epsg NAD83(NSRS2007) / Maine CS2000 Central+proj=tmerc +lat_0=43.5 +lon_0=-69.125 +k=0.99998 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Maine CS2000 Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",43.5],PARAMETER["central_meridian",-69.125],PARAMETER["scale_factor",0.99998],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3554"],AXIS["X",EAST],AXIS["Y",NORTH]]ba ]K%epsg NAD83(NSRS2007) / Louisiana South (ftUS)+proj=lcc +lat_1=30.7 +lat_2=29.3 +lat_0=28.5 +l6 kc Sqepsg NAD83(NSRS2007) / Maine CS2000 East+proj=tmerc +lat_0=43.83333333333334 +lon_0=-67.875 +k=0.99998 +x_0=700000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Maine CS2000 East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",43.83333333333334],PARAMETER["central_meridian",-67.875],PARAMETER["scale_factor",0.99998],PARAMETER["false_easting",700000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3555"],AXIS["X",EAST],AXIS["Y",NORTH]] kd Sqepsg NAD83(NSRS2007) / Maine CS2000 West+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.375 +k=0.99998 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Maine CS2000 West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",42.83333333333334],PARAMETER["central_meridian",-70.375],PARAMETER["scale_factor",0.99998],PARAMETER["false_easting",300000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3556"],AXIS["X",EAST],AXIS["Y",NORTH]] We E]epsg NAD83(NSRS2007) / Maine East+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9999 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Maine East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",43.66666666666666],PARAMETER["central_meridian",-68.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",300000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3557"],AXIS["X",EAST],AXIS["Y",NORTH]] {f E9epsg NAD83(NSRS2007) / Maine West+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Maine West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",42.83333333333334],PARAMETER["central_meridian",-70.16666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",900000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3558"],AXIS["X",EAST],AXIS["Y",NORTH]] llg A+=epsg NAD83(NSRS2007) / Maryland+proj=lcc +lat_1=39.45 +lat_2=38.3 +lat_0=37.66666666666666 +lon_0=-77 +x_0=400000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Maryland",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.45],PARAMETER["standard_parallel_2",38.3],PARAMETER["latitude_of_origin",37.66666666666666],PARAMETER["central_meridian",-77],PARAMETER["false_easting",400000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3559"],AXIS["X",EAST],AXIS["Y",NORTH]] ''Uh ? kepsg NAD83 / Utah North (ftUS)+proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000.00001016 +y_0=999999.9999898402 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Utah North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.78333333333333],PARAMETER["standard_parallel_2",40.71666666666667],PARAMETER["latitude_of_origin",40.33333333333334],PARAMETER["central_meridian",-111.5],PARAMETER["false_easting",1640416.6667],PARAMETER["false_northing",3280833.333300001],AUTHORITY["EPSG","3560"],AXIS["X",EAST],AXIS["Y",NORTH]] Ei E;epsg Old Hawaiian / Hawaii zone 1+proj=tmerc +lat_0=18.83333333333333 +lon_0=-155.5 +k=0.999966667 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +units=us-ft +no_defsPROJCS["Old Hawaiian / Hawaii zone 1",GEOGCS["Old Hawaiian",DATUM["Old_Hawaiian",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6135"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4135"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",18.83333333333333],PARAMETER["central_meridian",-155.5],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3561"],AXIS["X",EAST],AXIS["Y",NORTH]] ]j E+Sepsg Old Hawaiian / Hawaii zone 2+proj=tmerc +lat_0=20.33333333333333 +lon_0=-156.6666666666667 +k=0.999966667 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +units=us-ft +no_defsPROJCS["Old Hawaiian / Hawaii zone 2",GEOGCS["Old Hawaiian",DATUM["Old_Hawaiian",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6135"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4135"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",20.33333333333333],PARAMETER["central_meridian",-156.6666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3562"],AXIS["X",EAST],AXIS["Y",NORTH]] 9k E/epsg Old Hawaiian / Hawaii zone 3+proj=tmerc +lat_0=21.16666666666667 +lon_0=-158 +k=0.99999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +units=us-ft +no_defsPROJCS["Old Hawaiian / Hawaii zone 3",GEOGCS["Old Hawaiian",DATUM["Old_Hawaiian",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6135"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4135"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",21.16666666666667],PARAMETER["central_meridian",-158],PARAMETER["scale_factor",0.99999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3563"],AXIS["X",EAST],AXIS["Y",NORTH]] =l E 3epsg Old Hawaiian / Hawaii zone 4+proj=tmerc +lat_0=21.83333333333333 +lon_0=-159.5 +k=0.99999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +units=us-ft +no_defsPROJCS["Old Hawaiian / Hawaii zone 4",GEOGCS["Old Hawaiian",DATUM["Old_Hawaiian",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6135"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4135"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",21.83333333333333],PARAMETER["central_meridian",-159.5],PARAMETER["scale_factor",0.99999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3564"],AXIS["X",EAST],AXIS["Y",NORTH]] Im E?epsg Old Hawaiian / Hawaii zone 5+proj=tmerc +lat_0=21.66666666666667 +lon_0=-160.1666666666667 +k=1 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +units=us-ft +no_defsPROJCS["Old Hawaiian / Hawaii zone 5",GEOGCS["Old Hawaiian",DATUM["Old_Hawaiian",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6135"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4135"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",21.66666666666667],PARAMETER["central_meridian",-160.1666666666667],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3565"],AXIS["X",EAST],AXIS["Y",NORTH]] ;(5BO\iv,9FS`mz #0=JWdq~  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg  epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg  epsg  epsg  epsg  epsg  epsg epsg epsg epsg epsg <<@n CoWepsg NAD83 / Utah Central (ftUS)+proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=38.33333333333334 +lon_0=-111.5 +x_0=500000.00001016 +y_0=2000000.00001016 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Utah Central (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.65],PARAMETER["standard_parallel_2",39.01666666666667],PARAMETER["latitude_of_origin",38.33333333333334],PARAMETER["central_meridian",-111.5],PARAMETER["false_easting",1640416.6667],PARAMETER["false_northing",6561666.666700001],AUTHORITY["EPSG","3566"],AXIS["X",EAST],AXIS["Y",NORTH]]offlrx~ &,28>DJPV\bhntz "(.4:@FLRX^djpv| < = >?@ABCDEFGHIJKLMNOP!Q"R$S%T'U(V*W+X-]2^4_5`7b8c9d:e;fi?j@kAlBmDnFoHpIqJrKsLtMuNvOwPxQyRzS{T|U}V~WYZ\]_`bde f g h i jklmnopqrstuvwxyz{| }!~"#$%&'()*+-./01 II3o ?]Sepsg NAD83 / Utah South (ftUS)+proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=36.66666666666666 +lon_0=-111.5 +x_0=500000.00001016 +y_0=3000000 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Utah South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.35],PARAMETER["standard_parallel_2",37.21666666666667],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-111.5],PARAMETER["false_easting",1640416.6667],PARAMETER["false_northing",9842500.000000002],AUTHORITY["EPSG","3567"],AXIS["X",EAST],AXIS["Y",NORTH]]67 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000.00001016 +y_0=999999.9999898402 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Utah North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.78333333333333],PARAMETER["standard_parallel_2",40.71666666666667],PARAMETER["latitude_of_origin",40.33333333333334],PARAMETER["central_meridian",-111.5],PARAMETER["false_easting",1640416.6667],PARAMETER["false_northing",3280833.333300001],AUTHORITY["EPSG","3568"],AXIS["X",EAST],AXIS["Y",NORTH]] ep Koepsg NAD83(HARN) / Utah North (ftUS)+proj=lcc +lat_1=41.78333333333333 +lat_2=40.716666666666G ,,Pq OUepsg NAD83(HARN) / Utah Central (ftUS)+proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=38.33333333333334 +lon_0=-111.5 +x_0=500000.00001016 +y_0=2000000.00001016 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Utah Central (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.65],PARAMETER["standard_parallel_2",39.01666666666667],PARAMETER["latitude_of_origin",38.33333333333334],PARAMETER["central_meridian",-111.5],PARAMETER["false_easting",1640416.6667],PARAMETER["false_northing",6561666.666700001],AUTHORITY["EPSG","3569"],AXIS["X",EAST],AXIS["Y",NORTH]] 99Cr KCepsg NAD83(HARN) / Utah South (ftUS)+proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=36.66666666666666 +lon_0=-111.5 +x_0=500000.00001016 +y_0=3000000 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Utah South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.35],PARAMETER["standard_parallel_2",37.21666666666667],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-111.5],PARAMETER["false_easting",1640416.6667],PARAMETER["false_northing",9842500.000000002],AUTHORITY["EPSG","3570"],AXIS["X",EAST],AXIS["Y",NORTH]] ..Ns S?epsg WGS 84 / North Pole LAEA Bering Sea+proj=laea +lat_0=90 +lon_0=180 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / North Pole LAEA Bering Sea",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",90],PARAMETER["longitude_of_center",180],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3571"],AXIS["X",UNKNOWN],AXIS["Y",UNKNOWN]] 44Ht KA epsg WGS 84 / North Pole LAEA Alaska+proj=laea +lat_0=90 +lon_0=-150 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / North Pole LAEA Alaska",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",90],PARAMETER["longitude_of_center",-150],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3572"],AXIS["X",UNKNOWN],AXIS["Y",UNKNOWN]] 44Hu KA epsg WGS 84 / North Pole LAEA Canada+proj=laea +lat_0=90 +lon_0=-100 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / North Pole LAEA Canada",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",90],PARAMETER["longitude_of_center",-100],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3573"],AXIS["X",UNKNOWN],AXIS["Y",UNKNOWN]] 22Jv O?epsg WGS 84 / North Pole LAEA Atlantic+proj=laea +lat_0=90 +lon_0=-40 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / North Pole LAEA Atlantic",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",90],PARAMETER["longitude_of_center",-40],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3574"],AXIS["X",UNKNOWN],AXIS["Y",UNKNOWN]] 88Dw K= epsg WGS 84 / North Pole LAEA Europe+proj=laea +lat_0=90 +lon_0=10 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / North Pole LAEA Europe",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",90],PARAMETER["longitude_of_center",10],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3575"],AXIS["X",UNKNOWN],AXIS["Y",UNKNOWN]] 88Dx K= epsg WGS 84 / North Pole LAEA Russia+proj=laea +lat_0=90 +lon_0=90 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / North Pole LAEA Russia",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",90],PARAMETER["longitude_of_center",90],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3576"],AXIS["X",UNKNOWN],AXIS["Y",UNKNOWN]] Vy ?{{epsg GDA94 / Australian Albers+proj=aea +lat_1=-18 +lat_2=-36 +lat_0=0 +lon_0=132 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GDA94 / Australian Albers",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["standard_parallel_1",-18],PARAMETER["standard_parallel_2",-36],PARAMETER["latitude_of_center",0],PARAMETER["longitude_of_center",132],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3577"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Xz 5gepsg NAD83 / Yukon Albers+proj=aea +lat_1=61.66666666666666 +lat_2=68 +lat_0=59 +lon_0=-132.5 +x_0=500000 +y_0=500000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Yukon Albers",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["standard_parallel_1",61.66666666666666],PARAMETER["standard_parallel_2",68],PARAMETER["latitude_of_center",59],PARAMETER["longitude_of_center",-132.5],PARAMETER["false_easting",500000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","3578"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] k{ Aepsg NAD83(CSRS) / Yukon Albers+proj=aea +lat_1=61.66666666666666 +lat_2=68 +lat_0=59 +lon_0=-132.5 +x_0=500000 +y_0=500000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / Yukon Albers",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["standard_parallel_1",61.66666666666666],PARAMETER["standard_parallel_2",68],PARAMETER["latitude_of_center",59],PARAMETER["longitude_of_center",-132.5],PARAMETER["false_easting",500000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","3579"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] | 3e/epsg NAD83 / NWT Lambert+proj=lcc +lat_1=62 +lat_2=70 +lat_0=0 +lon_0=-112 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / NWT Lambert",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",62],PARAMETER["standard_parallel_2",70],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-112],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3580"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 2} ?Kcepsg NAD83(CSRS) / NWT Lambert+proj=lcc +lat_1=62 +lat_2=70 +lat_0=0 +lon_0=-112 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / NWT Lambert",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",62],PARAMETER["standard_parallel_2",70],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-112],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3581"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 00L~ OI epsg NAD83(NSRS2007) / Maryland (ftUS)+proj=lcc +lat_1=39.45 +lat_2=38.3 +lat_0=37.66666666666666 +lon_0=-77 +x_0=399999.9998983998 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Maryland (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.45],PARAMETER["standard_parallel_2",38.3],PARAMETER["latitude_of_origin",37.66666666666666],PARAMETER["central_meridian",-77],PARAMETER["false_easting",1312333.333],PARAMETER["false_northing",0],AUTHORITY["EPSG","3582"],AXIS["X",EAST],AXIS["Y",NORTH]] <<@ YCmepsg NAD83(NSRS2007) / Massachusetts Island+proj=lcc +lat_1=41.48333333333333 +lat_2=41.28333333333333 +lat_0=41 +lon_0=-70.5 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Massachusetts Island",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.48333333333333],PARAMETER["standard_parallel_2",41.28333333333333],PARAMETER["latitude_of_origin",41],PARAMETER["central_meridian",-70.5],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3583"],AXIS["X",EAST],AXIS["Y",NORTH]]1.28333333333333 +lat_0=41 +lon_0=-70.5 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Massachusetts Island (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.48333333333333],PARAMETER["standard_parallel_2",41.28333333333333],PARAMETER["latitude_of_origin",41],PARAMETER["central_meridian",-70.5],PARAMETER["false_easting",1640416.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","3584"],AXIS["X",EAST],AXIS["Y",NORTH]] | ga9epsgNAD83(NSRS2007) / Massachusetts Island (ftUS)+proj=lcc +lat_1=41.48333333333333 +lat_2=4X ..N ]M{epsgNAD83(NSRS2007) / Massachusetts Mainland+proj=lcc +lat_1=42.68333333333333 +lat_2=41.71666666666667 +lat_0=41 +lon_0=-71.5 +x_0=200000 +y_0=750000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Massachusetts Mainland",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",42.68333333333333],PARAMETER["standard_parallel_2",41.71666666666667],PARAMETER["latitude_of_origin",41],PARAMETER["central_meridian",-71.5],PARAMETER["false_easting",200000],PARAMETER["false_northing",750000],AUTHORITY["EPSG","3585"],AXIS["X",EAST],AXIS["Y",NORTH]]=41.71666666666667 +lat_0=41 +lon_0=-71.5 +x_0=200000.0001016002 +y_0=750000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Massachusetts Mainland (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",42.68333333333333],PARAMETER["standard_parallel_2",41.71666666666667],PARAMETER["latitude_of_origin",41],PARAMETER["central_meridian",-71.5],PARAMETER["false_easting",656166.667],PARAMETER["false_northing",2460625],AUTHORITY["EPSG","3586"],AXIS["X",EAST],AXIS["Y",NORTH]]   kkGepsgNAD83(NSRS2007) / Massachusetts Mainland (ftUS)+proj=lcc +lat_1=42.68333333333333 +lat_2[ $$X QcepsgNAD83(NSRS2007) / Michigan Central+proj=lcc +lat_1=45.7 +lat_2=44.18333333333333 +lat_0=43.31666666666667 +lon_0=-84.36666666666666 +x_0=6000000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Michigan Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.7],PARAMETER["standard_parallel_2",44.18333333333333],PARAMETER["latitude_of_origin",43.31666666666667],PARAMETER["central_meridian",-84.36666666666666],PARAMETER["false_easting",6000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3587"],AXIS["X",EAST],AXIS["Y",NORTH]]at_0=43.31666666666667 +lon_0=-84.36666666666666 +x_0=5999999.999976001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defsPROJCS["NAD83(NSRS2007) / Michigan Central (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.7],PARAMETER["standard_parallel_2",44.18333333333333],PARAMETER["latitude_of_origin",43.31666666666667],PARAMETER["central_meridian",-84.36666666666666],PARAMETER["false_easting",19685039.37],PARAMETER["false_northing",0],AUTHORITY["EPSG","3588"],AXIS["X",EAST],AXIS["Y",NORTH]] u [yepsgNAD83(NSRS2007) / Michigan Central (ft)+proj=lcc +lat_1=45.7 +lat_2=44.18333333333333 +l^ ,,P M_}epsgNAD83(NSRS2007) / Michigan North+proj=lcc +lat_1=47.08333333333334 +lat_2=45.48333333333333 +lat_0=44.78333333333333 +lon_0=-87 +x_0=8000000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Michigan North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.08333333333334],PARAMETER["standard_parallel_2",45.48333333333333],PARAMETER["latitude_of_origin",44.78333333333333],PARAMETER["central_meridian",-87],PARAMETER["false_easting",8000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3589"],AXIS["X",EAST],AXIS["Y",NORTH]]33333333 +lat_0=44.78333333333333 +lon_0=-87 +x_0=7999999.999968001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defsPROJCS["NAD83(NSRS2007) / Michigan North (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.08333333333334],PARAMETER["standard_parallel_2",45.48333333333333],PARAMETER["latitude_of_origin",44.78333333333333],PARAMETER["central_meridian",-87],PARAMETER["false_easting",26246719.16],PARAMETER["false_northing",0],AUTHORITY["EPSG","3590"],AXIS["X",EAST],AXIS["Y",NORTH]] ""s cQ;epsgNAD83(NSRS2007) / Michigan Oblique Mercator+proj=omerc +lat_0=45.30916666666666 +lonc=-8cm WuepsgNAD83(NSRS2007) / Michigan North (ft)+proj=lcc +lat_1=47.08333333333334 +lat_2=45.483333a6 +alpha=337.25556 +k=0.9996 +x_0=2546731.496 +y_0=-4354009.816 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Michigan Oblique Mercator",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Hotine_Oblique_Mercator"],PARAMETER["latitude_of_center",45.30916666666666],PARAMETER["longitude_of_center",-86],PARAMETER["azimuth",337.25556],PARAMETER["rectified_grid_angle",337.25556],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",2546731.496],PARAMETER["false_northing",-4354009.816],AUTHORITY["EPSG","3591"],AXIS["X",EAST],AXIS["Y",NORTH]] BB: MIgepsgNAD83(NSRS2007) / Michigan South+proj=lcc +lat_1=43.66666666666666 +lat_2=42.1 +lat_0=41.5 +lon_0=-84.36666666666666 +x_0=4000000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Michigan South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43.66666666666666],PARAMETER["standard_parallel_2",42.1],PARAMETER["latitude_of_origin",41.5],PARAMETER["central_meridian",-84.36666666666666],PARAMETER["false_easting",4000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3592"],AXIS["X",EAST],AXIS["Y",NORTH]] ((T WYepsg NAD83(NSRS2007) / Michigan South (ft)+proj=lcc +lat_1=43.66666666666666 +lat_2=42.1 +lat_0=41.5 +lon_0=-84.36666666666666 +x_0=3999999.999984 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defsPROJCS["NAD83(NSRS2007) / Michigan South (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43.66666666666666],PARAMETER["standard_parallel_2",42.1],PARAMETER["latitude_of_origin",41.5],PARAMETER["central_meridian",-84.36666666666666],PARAMETER["false_easting",13123359.58],PARAMETER["false_northing",0],AUTHORITY["EPSG","3593"],AXIS["X",EAST],AXIS["Y",NORTH]] NN. S7[epsg NAD83(NSRS2007) / Minnesota Central+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=45 +lon_0=-94.25 +x_0=800000 +y_0=100000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Minnesota Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.05],PARAMETER["standard_parallel_2",45.61666666666667],PARAMETER["latitude_of_origin",45],PARAMETER["central_meridian",-94.25],PARAMETER["false_easting",800000],PARAMETER["false_northing",100000],AUTHORITY["EPSG","3594"],AXIS["X",EAST],AXIS["Y",NORTH]] ++Q Okqepsg NAD83(NSRS2007) / Minnesota North+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000 +y_0=100000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Minnesota North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",48.63333333333333],PARAMETER["standard_parallel_2",47.03333333333333],PARAMETER["latitude_of_origin",46.5],PARAMETER["central_meridian",-93.1],PARAMETER["false_easting",800000],PARAMETER["false_northing",100000],AUTHORITY["EPSG","3595"],AXIS["X",EAST],AXIS["Y",NORTH]] @@< OIiepsg NAD83(NSRS2007) / Minnesota South+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333333 +lat_0=43 +lon_0=-94 +x_0=800000 +y_0=100000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Minnesota South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.21666666666667],PARAMETER["standard_parallel_2",43.78333333333333],PARAMETER["latitude_of_origin",43],PARAMETER["central_meridian",-94],PARAMETER["false_easting",800000],PARAMETER["false_northing",100000],AUTHORITY["EPSG","3596"],AXIS["X",EAST],AXIS["Y",NORTH]] e Qkepsg NAD83(NSRS2007) / Mississippi East+proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.99995 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Mississippi East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",29.5],PARAMETER["central_meridian",-88.83333333333333],PARAMETER["scale_factor",0.99995],PARAMETER["false_easting",300000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3597"],AXIS["X",EAST],AXIS["Y",NORTH]] UU' _5CepsgNAD83(NSRS2007) / Mississippi East (ftUS)+proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.99995 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Mississippi East (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",29.5],PARAMETER["central_meridian",-88.83333333333333],PARAMETER["scale_factor",0.99995],PARAMETER["false_easting",984250.0000000002],PARAMETER["false_northing",0],AUTHORITY["EPSG","3598"],AXIS["X",EAST],AXIS["Y",NORTH]] e QkepsgNAD83(NSRS2007) / Mississippi West+proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.99995 +x_0=700000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Mississippi West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",29.5],PARAMETER["central_meridian",-90.33333333333333],PARAMETER["scale_factor",0.99995],PARAMETER["false_easting",700000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3599"],AXIS["X",EAST],AXIS["Y",NORTH]] [[! _57epsgNAD83(NSRS2007) / Mississippi West (ftUS)+proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.99995 +x_0=699999.9998983998 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Mississippi West (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",29.5],PARAMETER["central_meridian",-90.33333333333333],PARAMETER["scale_factor",0.99995],PARAMETER["false_easting",2296583.333],PARAMETER["false_northing",0],AUTHORITY["EPSG","3600"],AXIS["X",EAST],AXIS["Y",NORTH]] m QsepsgNAD83(NSRS2007) / Missouri Central+proj=tmerc +lat_0=35.83333333333334 +lon_0=-92.5 +k=0.999933333 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Missouri Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",35.83333333333334],PARAMETER["central_meridian",-92.5],PARAMETER["scale_factor",0.999933333],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3601"],AXIS["X",EAST],AXIS["Y",NORTH]] g KmepsgNAD83(NSRS2007) / Missouri East+proj=tmerc +lat_0=35.83333333333334 +lon_0=-90.5 +k=0.999933333 +x_0=250000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Missouri East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",35.83333333333334],PARAMETER["central_meridian",-90.5],PARAMETER["scale_factor",0.999933333],PARAMETER["false_easting",250000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3602"],AXIS["X",EAST],AXIS["Y",NORTH]] g KmepsgNAD83(NSRS2007) / Missouri West+proj=tmerc +lat_0=36.16666666666666 +lon_0=-94.5 +k=0.999941177 +x_0=850000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Missouri West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36.16666666666666],PARAMETER["central_meridian",-94.5],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",850000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3603"],AXIS["X",EAST],AXIS["Y",NORTH]] r ?epsgNAD83(NSRS2007) / Montana+proj=lcc +lat_1=49 +lat_2=45 +lat_0=44.25 +lon_0=-109.5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Montana",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",49],PARAMETER["standard_parallel_2",45],PARAMETER["latitude_of_origin",44.25],PARAMETER["central_meridian",-109.5],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3604"],AXIS["X",EAST],AXIS["Y",NORTH]] nn I!;epsgNAD83(NSRS2007) / Montana (ft)+proj=lcc +lat_1=49 +lat_2=45 +lat_0=44.25 +lon_0=-109.5 +x_0=599999.9999976 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defsPROJCS["NAD83(NSRS2007) / Montana (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",49],PARAMETER["standard_parallel_2",45],PARAMETER["latitude_of_origin",44.25],PARAMETER["central_meridian",-109.5],PARAMETER["false_easting",1968503.937],PARAMETER["false_northing",0],AUTHORITY["EPSG","3605"],AXIS["X",EAST],AXIS["Y",NORTH]] tt A#5epsgNAD83(NSRS2007) / Nebraska+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +lon_0=-100 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Nebraska",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43],PARAMETER["standard_parallel_2",40],PARAMETER["latitude_of_origin",39.83333333333334],PARAMETER["central_meridian",-100],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3606"],AXIS["X",EAST],AXIS["Y",NORTH]] m M#sepsgNAD83(NSRS2007) / Nevada Central+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0.9999 +x_0=500000 +y_0=6000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Nevada Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",34.75],PARAMETER["central_meridian",-116.6666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",6000000],AUTHORITY["EPSG","3607"],AXIS["X",EAST],AXIS["Y",NORTH]] QQ+ ]=EepsgNAD83(NSRS2007) / Nevada Central (ft US)+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0.9999 +x_0=500000.00001016 +y_0=6000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Nevada Central (ft US)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",34.75],PARAMETER["central_meridian",-116.6666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",1640416.6667],PARAMETER["false_northing",19685000],AUTHORITY["EPSG","3608"],AXIS["X",EAST],AXIS["Y",NORTH]] g G#mepsgNAD83(NSRS2007) / Nevada East+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0.9999 +x_0=200000 +y_0=8000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Nevada East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",34.75],PARAMETER["central_meridian",-115.5833333333333],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",200000],PARAMETER["false_northing",8000000],AUTHORITY["EPSG","3609"],AXIS["X",EAST],AXIS["Y",NORTH]] EE7 WQOepsgNAD83(NSRS2007) / Nevada East (ft US)+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0.9999 +x_0=200000.00001016 +y_0=8000000.000010163 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Nevada East (ft US)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",34.75],PARAMETER["central_meridian",-115.5833333333333],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",656166.6667],PARAMETER["false_northing",26246666.66670001],AUTHORITY["EPSG","3610"],AXIS["X",EAST],AXIS["Y",NORTH]] g G#mepsgNAD83(NSRS2007) / Nevada West+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0.9999 +x_0=800000 +y_0=4000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Nevada West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",34.75],PARAMETER["central_meridian",-118.5833333333333],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",800000],PARAMETER["false_northing",4000000],AUTHORITY["EPSG","3611"],AXIS["X",EAST],AXIS["Y",NORTH]] GG5 WSIepsgNAD83(NSRS2007) / Nevada West (ft US)+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0.9999 +x_0=800000.0000101599 +y_0=3999999.99998984 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Nevada West (ft US)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",34.75],PARAMETER["central_meridian",-118.5833333333333],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",2624666.6667],PARAMETER["false_northing",13123333.3333],AUTHORITY["EPSG","3612"],AXIS["X",EAST],AXIS["Y",NORTH]] g KmepsgNAD83(NSRS2007) / New Hampshire+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.999966667 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / New Hampshire",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",42.5],PARAMETER["central_meridian",-71.66666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",300000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3613"],AXIS["X",EAST],AXIS["Y",NORTH]] SS) Y=EepsgNAD83(NSRS2007) / New Hampshire (ftUS)+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.999966667 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / New Hampshire (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",42.5],PARAMETER["central_meridian",-71.66666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",984250.0000000002],PARAMETER["false_northing",0],AUTHORITY["EPSG","3614"],AXIS["X",EAST],AXIS["Y",NORTH]] W E]epsgNAD83(NSRS2007) / New Jersey+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / New Jersey",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38.83333333333334],PARAMETER["central_meridian",-74.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",150000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3615"],AXIS["X",EAST],AXIS["Y",NORTH]] ww U!epsg NAD83(NSRS2007) / New Jersey (ft US)+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / New Jersey (ft US)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38.83333333333334],PARAMETER["central_meridian",-74.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",492125],PARAMETER["false_northing",0],AUTHORITY["EPSG","3616"],AXIS["X",EAST],AXIS["Y",NORTH]] M! U{Sepsg!NAD83(NSRS2007) / New Mexico Central+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / New Mexico Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-106.25],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3617"],AXIS["X",EAST],AXIS["Y",NORTH]] ss " cepsg"NAD83(NSRS2007) / New Mexico Central (ftUS)+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / New Mexico Central (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-106.25],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",1640416.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","3618"],AXIS["X",EAST],AXIS["Y",NORTH]] g# Omepsg#NAD83(NSRS2007) / New Mexico East+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999909091 +x_0=165000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / New Mexico East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-104.3333333333333],PARAMETER["scale_factor",0.999909091],PARAMETER["false_easting",165000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3619"],AXIS["X",EAST],AXIS["Y",NORTH]] gg$ ]#3epsg$NAD83(NSRS2007) / New Mexico East (ftUS)+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999909091 +x_0=165000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / New Mexico East (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-104.3333333333333],PARAMETER["scale_factor",0.999909091],PARAMETER["false_easting",541337.5],PARAMETER["false_northing",0],AUTHORITY["EPSG","3620"],AXIS["X",EAST],AXIS["Y",NORTH]] g% Omepsg%NAD83(NSRS2007) / New Mexico West+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999916667 +x_0=830000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / New Mexico West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-107.8333333333333],PARAMETER["scale_factor",0.999916667],PARAMETER["false_easting",830000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3621"],AXIS["X",EAST],AXIS["Y",NORTH]] YY#& ]99epsg&NAD83(NSRS2007) / New Mexico West (ftUS)+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999916667 +x_0=830000.0001016001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / New Mexico West (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-107.8333333333333],PARAMETER["scale_factor",0.999916667],PARAMETER["false_easting",2723091.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","3622"],AXIS["X",EAST],AXIS["Y",NORTH]] e' Qkepsg'NAD83(NSRS2007) / New York Central+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.9999375 +x_0=250000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / New York Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40],PARAMETER["central_meridian",-76.58333333333333],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",250000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3623"],AXIS["X",EAST],AXIS["Y",NORTH]] UU'( _5Cepsg(NAD83(NSRS2007) / New York Central (ftUS)+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.9999375 +x_0=249999.9998983998 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / New York Central (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40],PARAMETER["central_meridian",-76.58333333333333],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",820208.3330000002],PARAMETER["false_northing",0],AUTHORITY["EPSG","3624"],AXIS["X",EAST],AXIS["Y",NORTH]] ]) Kcepsg)NAD83(NSRS2007) / New York East+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / New York East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38.83333333333334],PARAMETER["central_meridian",-74.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",150000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3625"],AXIS["X",EAST],AXIS["Y",NORTH]] ;(5BO\iv,9FS`mz #0=JWdq~ epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg  epsg !epsg! "epsg" #epsg# $epsg$ %epsg% &epsg& 'epsg' (epsg( )epsg) *epsg* +epsg+ ,epsg, -epsg- .epsg. /epsg/ 0epsg0 1epsg1 2epsg2 3epsg3 4epsg4 5epsg5 6epsg6 7epsg7 8epsg8 9epsg9 :epsg: ;epsg; epsg> ?epsg? @epsg@ AepsgA BepsgB CepsgC DepsgD EepsgE FepsgF GepsgG HepsgH IepsgI JepsgJ KepsgK LepsgL MepsgM ss * Y%epsg*NAD83(NSRS2007) / New York East (ftUS)+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / New York East (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38.83333333333334],PARAMETER["central_meridian",-74.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",492125],PARAMETER["false_northing",0],AUTHORITY["EPSG","3626"],AXIS["X",EAST],AXIS["Y",NORTH]] ""Z+ Y]epsg+NAD83(NSRS2007) / New York Long Island+proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666666 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / New York Long Island",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.03333333333333],PARAMETER["standard_parallel_2",40.66666666666666],PARAMETER["latitude_of_origin",40.16666666666666],PARAMETER["central_meridian",-74],PARAMETER["false_easting",300000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3627"],AXIS["X",EAST],AXIS["Y",NORTH]]0.66666666666666 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / New York Long Island (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.03333333333333],PARAMETER["standard_parallel_2",40.66666666666666],PARAMETER["latitude_of_origin",40.16666666666666],PARAMETER["central_meridian",-74],PARAMETER["false_easting",984250.0000000002],PARAMETER["false_northing",0],AUTHORITY["EPSG","3628"],AXIS["X",EAST],AXIS["Y",NORTH]] .._- Keepsg-NAD83(NSRS2007) / New York West+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.9999375 +x_0=350000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / New York West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40],PARAMETER["central_meridian",-78.58333333333333],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",350000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3629"],AXIS["X",EAST],AXIS["Y",NORTH]], g{_epsg,NAD83(NSRS2007) / New York Long Island (ftUS)+proj=lcc +lat_1=41.03333333333333 +lat_2=4 aa. Y51epsg.NAD83(NSRS2007) / New York West (ftUS)+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.9999375 +x_0=350000.0001016001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / New York West (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40],PARAMETER["central_meridian",-78.58333333333333],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",1148291.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","3630"],AXIS["X",EAST],AXIS["Y",NORTH]] @@>>1 UEkepsg1NAD83(NSRS2007) / North Dakota North+proj=lcc +lat_1=48.73333333333333 +lat_2=47.43333333333333 +lat_0=47 +lon_0=-100.5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / North Dakota North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",48.73333333333333],PARAMETER["standard_parallel_2",47.43333333333333],PARAMETER["latitude_of_origin",47],PARAMETER["central_meridian",-100.5],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3633"],AXIS["X",EAST],AXIS["Y",NORTH]] ""Z2 _Wepsg2NAD83(NSRS2007) / North Dakota North (ft)+proj=lcc +lat_1=48.73333333333333 +lat_2=47.43333333333333 +lat_0=47 +lon_0=-100.5 +x_0=599999.9999976 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defsPROJCS["NAD83(NSRS2007) / North Dakota North (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",48.73333333333333],PARAMETER["standard_parallel_2",47.43333333333333],PARAMETER["latitude_of_origin",47],PARAMETER["central_meridian",-100.5],PARAMETER["false_easting",1968503.937],PARAMETER["false_northing",0],AUTHORITY["EPSG","3634"],AXIS["X",EAST],AXIS["Y",NORTH]]  \3 Uc epsg3NAD83(NSRS2007) / North Dakota South+proj=lcc +lat_1=47.48333333333333 +lat_2=46.18333333333333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / North Dakota South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.48333333333333],PARAMETER["standard_parallel_2",46.18333333333333],PARAMETER["latitude_of_origin",45.66666666666666],PARAMETER["central_meridian",-100.5],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3635"],AXIS["X",EAST],AXIS["Y",NORTH]]333333333333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=599999.9999976 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defsPROJCS["NAD83(NSRS2007) / North Dakota South (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.48333333333333],PARAMETER["standard_parallel_2",46.18333333333333],PARAMETER["latitude_of_origin",45.66666666666666],PARAMETER["central_meridian",-100.5],PARAMETER["false_easting",1968503.937],PARAMETER["false_northing",0],AUTHORITY["EPSG","3636"],AXIS["X",EAST],AXIS["Y",NORTH]] x4 _u%epsg4NAD83(NSRS2007) / North Dakota South (ft)+proj=lcc +lat_1=47.48333333333333 +lat_2=46.18 LL05 EG]epsg5NAD83(NSRS2007) / Ohio North+proj=lcc +lat_1=41.7 +lat_2=40.43333333333333 +lat_0=39.66666666666666 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Ohio North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.7],PARAMETER["standard_parallel_2",40.43333333333333],PARAMETER["latitude_of_origin",39.66666666666666],PARAMETER["central_meridian",-82.5],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3637"],AXIS["X",EAST],AXIS["Y",NORTH]] PP,6 ECYepsg6NAD83(NSRS2007) / Ohio South+proj=lcc +lat_1=40.03333333333333 +lat_2=38.73333333333333 +lat_0=38 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Ohio South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.03333333333333],PARAMETER["standard_parallel_2",38.73333333333333],PARAMETER["latitude_of_origin",38],PARAMETER["central_meridian",-82.5],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3638"],AXIS["X",EAST],AXIS["Y",NORTH]] LL07 M?]epsg7NAD83(NSRS2007) / Oklahoma North+proj=lcc +lat_1=36.76666666666667 +lat_2=35.56666666666667 +lat_0=35 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Oklahoma North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.76666666666667],PARAMETER["standard_parallel_2",35.56666666666667],PARAMETER["latitude_of_origin",35],PARAMETER["central_meridian",-98],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3639"],AXIS["X",EAST],AXIS["Y",NORTH]] ]8 [G!epsg8NAD83(NSRS2007) / Oklahoma North (ftUS)+proj=lcc +lat_1=36.76666666666667 +lat_2=35.56666666666667 +lat_0=35 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Oklahoma North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.76666666666667],PARAMETER["standard_parallel_2",35.56666666666667],PARAMETER["latitude_of_origin",35],PARAMETER["central_meridian",-98],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","3640"],AXIS["X",EAST],AXIS["Y",NORTH]] ..N9 M]{epsg9NAD83(NSRS2007) / Oklahoma South+proj=lcc +lat_1=35.23333333333333 +lat_2=33.93333333333333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Oklahoma South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",35.23333333333333],PARAMETER["standard_parallel_2",33.93333333333333],PARAMETER["latitude_of_origin",33.33333333333334],PARAMETER["central_meridian",-98],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3641"],AXIS["X",EAST],AXIS["Y",NORTH]]3333333333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Oklahoma South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",35.23333333333333],PARAMETER["standard_parallel_2",33.93333333333333],PARAMETER["latitude_of_origin",33.33333333333334],PARAMETER["central_meridian",-98],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","3642"],AXIS["X",EAST],AXIS["Y",NORTH]] {: [e?epsg:NAD83(NSRS2007) / Oklahoma South (ftUS)+proj=lcc +lat_1=35.23333333333333 +lat_2=33.9333 xx; M1epsg;NAD83(NSRS2007) / Oregon Lambert+proj=lcc +lat_1=43 +lat_2=45.5 +lat_0=41.75 +lon_0=-120.5 +x_0=400000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Oregon Lambert",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43],PARAMETER["standard_parallel_2",45.5],PARAMETER["latitude_of_origin",41.75],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",400000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3643"],AXIS["X",EAST],AXIS["Y",NORTH]] \\ < W%Mepsg SY{epsg>NAD83(NSRS2007) / Oregon North (ft)+proj=lcc +lat_1=46 +lat_2=44.33333333333334 +lat_0=43.66666666666666 +lon_0=-120.5 +x_0=2500000.0001424 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defsPROJCS["NAD83(NSRS2007) / Oregon North (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",46],PARAMETER["standard_parallel_2",44.33333333333334],PARAMETER["latitude_of_origin",43.66666666666666],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",8202099.738],PARAMETER["false_northing",0],AUTHORITY["EPSG","3646"],AXIS["X",EAST],AXIS["Y",NORTH]] HH4? IGaepsg?NAD83(NSRS2007) / Oregon South+proj=lcc +lat_1=44 +lat_2=42.33333333333334 +lat_0=41.66666666666666 +lon_0=-120.5 +x_0=1500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Oregon South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",44],PARAMETER["standard_parallel_2",42.33333333333334],PARAMETER["latitude_of_origin",41.66666666666666],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",1500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3647"],AXIS["X",EAST],AXIS["Y",NORTH]] --O@ SY{epsg@NAD83(NSRS2007) / Oregon South (ft)+proj=lcc +lat_1=44 +lat_2=42.33333333333334 +lat_0=41.66666666666666 +lon_0=-120.5 +x_0=1500000.0001464 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defsPROJCS["NAD83(NSRS2007) / Oregon South (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",44],PARAMETER["standard_parallel_2",42.33333333333334],PARAMETER["latitude_of_origin",41.66666666666666],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",4921259.843],PARAMETER["false_northing",0],AUTHORITY["EPSG","3648"],AXIS["X",EAST],AXIS["Y",NORTH]] 88DA UKqepsgANAD83(NSRS2007) / Pennsylvania North+proj=lcc +lat_1=41.95 +lat_2=40.88333333333333 +lat_0=40.16666666666666 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Pennsylvania North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.95],PARAMETER["standard_parallel_2",40.88333333333333],PARAMETER["latitude_of_origin",40.16666666666666],PARAMETER["central_meridian",-77.75],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3649"],AXIS["X",EAST],AXIS["Y",NORTH]]33 +lat_0=40.16666666666666 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Pennsylvania North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.95],PARAMETER["standard_parallel_2",40.88333333333333],PARAMETER["latitude_of_origin",40.16666666666666],PARAMETER["central_meridian",-77.75],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","3650"],AXIS["X",EAST],AXIS["Y",NORTH]] qB cS5epsgBNAD83(NSRS2007) / Pennsylvania North (ftUS)+proj=lcc +lat_1=41.95 +lat_2=40.883333333333  \C Uc epsgCNAD83(NSRS2007) / Pennsylvania South+proj=lcc +lat_1=40.96666666666667 +lat_2=39.93333333333333 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Pennsylvania South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.96666666666667],PARAMETER["standard_parallel_2",39.93333333333333],PARAMETER["latitude_of_origin",39.33333333333334],PARAMETER["central_meridian",-77.75],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3651"],AXIS["X",EAST],AXIS["Y",NORTH]]93333333333333 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Pennsylvania South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.96666666666667],PARAMETER["standard_parallel_2",39.93333333333333],PARAMETER["latitude_of_origin",39.33333333333334],PARAMETER["central_meridian",-77.75],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","3652"],AXIS["X",EAST],AXIS["Y",NORTH]] **cE IiepsgENAD83(NSRS2007) / Rhode Island+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.99999375 +x_0=100000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Rhode Island",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.08333333333334],PARAMETER["central_meridian",-71.5],PARAMETER["scale_factor",0.99999375],PARAMETER["false_easting",100000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3653"],AXIS["X",EAST],AXIS["Y",NORTH]] D ckMepsgDNAD83(NSRS2007) / Pennsylvania South (ftUS)+proj=lcc +lat_1=40.96666666666667 +lat_2=39. ]]F W;5epsgFNAD83(NSRS2007) / Rhode Island (ftUS)+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.99999375 +x_0=99999.99998983997 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Rhode Island (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.08333333333334],PARAMETER["central_meridian",-71.5],PARAMETER["scale_factor",0.99999375],PARAMETER["false_easting",328083.3333],PARAMETER["false_northing",0],AUTHORITY["EPSG","3654"],AXIS["X",EAST],AXIS["Y",NORTH]] HH4G MCaepsgGNAD83(NSRS2007) / South Carolina+proj=lcc +lat_1=34.83333333333334 +lat_2=32.5 +lat_0=31.83333333333333 +lon_0=-81 +x_0=609600 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / South Carolina",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",34.83333333333334],PARAMETER["standard_parallel_2",32.5],PARAMETER["latitude_of_origin",31.83333333333333],PARAMETER["central_meridian",-81],PARAMETER["false_easting",609600],PARAMETER["false_northing",0],AUTHORITY["EPSG","3655"],AXIS["X",EAST],AXIS["Y",NORTH]] 88DH WEuepsgHNAD83(NSRS2007) / South Carolina (ft)+proj=lcc +lat_1=34.83333333333334 +lat_2=32.5 +lat_0=31.83333333333333 +lon_0=-81 +x_0=609600 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defsPROJCS["NAD83(NSRS2007) / South Carolina (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",34.83333333333334],PARAMETER["standard_parallel_2",32.5],PARAMETER["latitude_of_origin",31.83333333333333],PARAMETER["central_meridian",-81],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3656"],AXIS["X",EAST],AXIS["Y",NORTH]] $$XI U_epsgINAD83(NSRS2007) / South Dakota North+proj=lcc +lat_1=45.68333333333333 +lat_2=44.41666666666666 +lat_0=43.83333333333334 +lon_0=-100 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / South Dakota North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.68333333333333],PARAMETER["standard_parallel_2",44.41666666666666],PARAMETER["latitude_of_origin",43.83333333333334],PARAMETER["central_meridian",-100],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3657"],AXIS["X",EAST],AXIS["Y",NORTH]]41666666666666 +lat_0=43.83333333333334 +lon_0=-100 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / South Dakota North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.68333333333333],PARAMETER["standard_parallel_2",44.41666666666666],PARAMETER["latitude_of_origin",43.83333333333334],PARAMETER["central_meridian",-100],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","3658"],AXIS["X",EAST],AXIS["Y",NORTH]] J cgIepsgJNAD83(NSRS2007) / South Dakota North (ftUS)+proj=lcc +lat_1=45.68333333333333 +lat_2=44. ""ZK UaepsgKNAD83(NSRS2007) / South Dakota South+proj=lcc +lat_1=44.4 +lat_2=42.83333333333334 +lat_0=42.33333333333334 +lon_0=-100.3333333333333 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / South Dakota South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",44.4],PARAMETER["standard_parallel_2",42.83333333333334],PARAMETER["latitude_of_origin",42.33333333333334],PARAMETER["central_meridian",-100.3333333333333],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3659"],AXIS["X",EAST],AXIS["Y",NORTH]]4 +lat_0=42.33333333333334 +lon_0=-100.3333333333333 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / South Dakota South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",44.4],PARAMETER["standard_parallel_2",42.83333333333334],PARAMETER["latitude_of_origin",42.33333333333334],PARAMETER["central_meridian",-100.3333333333333],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","3660"],AXIS["X",EAST],AXIS["Y",NORTH]] L ciKepsgLNAD83(NSRS2007) / South Dakota South (ftUS)+proj=lcc +lat_1=44.4 +lat_2=42.8333333333333 PP,M CEYepsgMNAD83(NSRS2007) / Tennessee+proj=lcc +lat_1=36.41666666666666 +lat_2=35.25 +lat_0=34.33333333333334 +lon_0=-86 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Tennessee",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.41666666666666],PARAMETER["standard_parallel_2",35.25],PARAMETER["latitude_of_origin",34.33333333333334],PARAMETER["central_meridian",-86],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3661"],AXIS["X",EAST],AXIS["Y",NORTH]] ##YN QMepsgNNAD83(NSRS2007) / Tennessee (ftUS)+proj=lcc +lat_1=36.41666666666666 +lat_2=35.25 +lat_0=34.33333333333334 +lon_0=-86 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Tennessee (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.41666666666666],PARAMETER["standard_parallel_2",35.25],PARAMETER["latitude_of_origin",34.33333333333334],PARAMETER["central_meridian",-86],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","3662"],AXIS["X",EAST],AXIS["Y",NORTH]]67 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +x_0=700000 +y_0=3000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Texas Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",31.88333333333333],PARAMETER["standard_parallel_2",30.11666666666667],PARAMETER["latitude_of_origin",29.66666666666667],PARAMETER["central_meridian",-100.3333333333333],PARAMETER["false_easting",700000],PARAMETER["false_northing",3000000],AUTHORITY["EPSG","3663"],AXIS["X",EAST],AXIS["Y",NORTH]] ""

DJPV\bhntz "(.4:@FLRX^djpv|3456789:;<=>?@ABCEFGHIJKLMNPQRSVWZ[Ü]Ŝ^ǜ`ɜa˜c͜dΜeќhԜi֜jלkڜlۜmܜnݜoޜpߜqrsuvwxyz{|}~           !"#$%&'()*+,-333333333334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Washington South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.33333333333334],PARAMETER["standard_parallel_2",45.83333333333334],PARAMETER["latitude_of_origin",45.33333333333334],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",1640416.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","3692"],AXIS["X",EAST],AXIS["Y",NORTH]] l _QepsglNAD83(NSRS2007) / Washington South (ftUS)+proj=lcc +lat_1=47.33333333333334 +lat_2=45.83 pp m W9epsgmNAD83(NSRS2007) / West Virginia North+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79.5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / West Virginia North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.25],PARAMETER["standard_parallel_2",39],PARAMETER["latitude_of_origin",38.5],PARAMETER["central_meridian",-79.5],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3693"],AXIS["X",EAST],AXIS["Y",NORTH]] BB:n W?gepsgnNAD83(NSRS2007) / West Virginia South+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / West Virginia South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.88333333333333],PARAMETER["standard_parallel_2",37.48333333333333],PARAMETER["latitude_of_origin",37],PARAMETER["central_meridian",-81],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3694"],AXIS["X",EAST],AXIS["Y",NORTH]] ZZ"o S+OepsgoNAD83(NSRS2007) / Wisconsin Central+proj=lcc +lat_1=45.5 +lat_2=44.25 +lat_0=43.83333333333334 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Wisconsin Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.5],PARAMETER["standard_parallel_2",44.25],PARAMETER["latitude_of_origin",43.83333333333334],PARAMETER["central_meridian",-90],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3695"],AXIS["X",EAST],AXIS["Y",NORTH]] --Op a3epsgpNAD83(NSRS2007) / Wisconsin Central (ftUS)+proj=lcc +lat_1=45.5 +lat_2=44.25 +lat_0=43.83333333333334 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Wisconsin Central (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.5],PARAMETER["standard_parallel_2",44.25],PARAMETER["latitude_of_origin",43.83333333333334],PARAMETER["central_meridian",-90],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","3696"],AXIS["X",EAST],AXIS["Y",NORTH]] ,,Pq O]}epsgqNAD83(NSRS2007) / Wisconsin North+proj=lcc +lat_1=46.76666666666667 +lat_2=45.56666666666667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Wisconsin North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",46.76666666666667],PARAMETER["standard_parallel_2",45.56666666666667],PARAMETER["latitude_of_origin",45.16666666666666],PARAMETER["central_meridian",-90],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3697"],AXIS["X",EAST],AXIS["Y",NORTH]]66666666667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Wisconsin North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",46.76666666666667],PARAMETER["standard_parallel_2",45.56666666666667],PARAMETER["latitude_of_origin",45.16666666666666],PARAMETER["central_meridian",-90],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","3698"],AXIS["X",EAST],AXIS["Y",NORTH]] }r ]eAepsgrNAD83(NSRS2007) / Wisconsin North (ftUS)+proj=lcc +lat_1=46.76666666666667 +lat_2=45.566 JJ2s O?_epsgsNAD83(NSRS2007) / Wisconsin South+proj=lcc +lat_1=44.06666666666667 +lat_2=42.73333333333333 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Wisconsin South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",44.06666666666667],PARAMETER["standard_parallel_2",42.73333333333333],PARAMETER["latitude_of_origin",42],PARAMETER["central_meridian",-90],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3699"],AXIS["X",EAST],AXIS["Y",NORTH]]33333333333 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Wisconsin South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",44.06666666666667],PARAMETER["standard_parallel_2",42.73333333333333],PARAMETER["latitude_of_origin",42],PARAMETER["central_meridian",-90],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","3700"],AXIS["X",EAST],AXIS["Y",NORTH]] &&gu kmepsguNAD83(NSRS2007) / Wisconsin Transverse Mercator+proj=tmerc +lat_0=0 +lon_0=-90 +k=0.9996 +x_0=520000 +y_0=-4480000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Wisconsin Transverse Mercator",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-90],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",520000],PARAMETER["false_northing",-4480000],AUTHORITY["EPSG","3701"],AXIS["X",EAST],AXIS["Y",NORTH]]_t ]G#epsgtNAD83(NSRS2007) / Wisconsin South (ftUS)+proj=lcc +lat_1=44.06666666666667 +lat_2=42.733 av IgepsgvNAD83(NSRS2007) / Wyoming East+proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.9999375 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Wyoming East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40.5],PARAMETER["central_meridian",-105.1666666666667],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3702"],AXIS["X",EAST],AXIS["Y",NORTH]] {w Y%epsgwNAD83(NSRS2007) / Wyoming East Central+proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.9999375 +x_0=400000 +y_0=100000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Wyoming East Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40.5],PARAMETER["central_meridian",-107.3333333333333],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",400000],PARAMETER["false_northing",100000],AUTHORITY["EPSG","3703"],AXIS["X",EAST],AXIS["Y",NORTH]] [x YaepsgxNAD83(NSRS2007) / Wyoming West Central+proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.9999375 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Wyoming West Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40.5],PARAMETER["central_meridian",-108.75],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3704"],AXIS["X",EAST],AXIS["Y",NORTH]] ky I%qepsgyNAD83(NSRS2007) / Wyoming West+proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.9999375 +x_0=800000 +y_0=100000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Wyoming West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40.5],PARAMETER["central_meridian",-110.0833333333333],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",800000],PARAMETER["false_northing",100000],AUTHORITY["EPSG","3705"],AXIS["X",EAST],AXIS["Y",NORTH]] z IWepsgzNAD83(NSRS2007) / UTM zone 59N+proj=utm +zone=59 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / UTM zone 59N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",171],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3706"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] { IWepsg{NAD83(NSRS2007) / UTM zone 60N+proj=utm +zone=60 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / UTM zone 60N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",177],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3707"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] | GWepsg|NAD83(NSRS2007) / UTM zone 1N+proj=utm +zone=1 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / UTM zone 1N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-177],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3708"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] } GWepsg}NAD83(NSRS2007) / UTM zone 2N+proj=utm +zone=2 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / UTM zone 2N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-171],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3709"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ~ GWepsg~NAD83(NSRS2007) / UTM zone 3N+proj=utm +zone=3 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / UTM zone 3N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3710"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  GWepsgNAD83(NSRS2007) / UTM zone 4N+proj=utm +zone=4 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / UTM zone 4N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-159],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3711"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  GWepsgNAD83(NSRS2007) / UTM zone 5N+proj=utm +zone=5 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / UTM zone 5N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-153],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3712"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  GWepsgNAD83(NSRS2007) / UTM zone 6N+proj=utm +zone=6 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / UTM zone 6N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-147],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3713"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  GWepsgNAD83(NSRS2007) / UTM zone 7N+proj=utm +zone=7 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / UTM zone 7N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-141],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3714"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  GWepsgNAD83(NSRS2007) / UTM zone 8N+proj=utm +zone=8 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / UTM zone 8N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-135],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3715"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  GWepsgNAD83(NSRS2007) / UTM zone 9N+proj=utm +zone=9 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / UTM zone 9N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-129],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3716"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  IYepsgNAD83(NSRS2007) / UTM zone 10N+proj=utm +zone=10 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / UTM zone 10N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-123],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3717"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  IYepsgNAD83(NSRS2007) / UTM zone 11N+proj=utm +zone=11 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / UTM zone 11N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3718"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  IYepsgNAD83(NSRS2007) / UTM zone 12N+proj=utm +zone=12 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / UTM zone 12N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3719"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  IYepsgNAD83(NSRS2007) / UTM zone 13N+proj=utm +zone=13 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / UTM zone 13N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3720"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  IWepsgNAD83(NSRS2007) / UTM zone 14N+proj=utm +zone=14 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / UTM zone 14N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3721"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  IWepsgNAD83(NSRS2007) / UTM zone 15N+proj=utm +zone=15 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / UTM zone 15N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3722"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  IWepsgNAD83(NSRS2007) / UTM zone 16N+proj=utm +zone=16 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / UTM zone 16N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-87],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3723"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  IWepsgNAD83(NSRS2007) / UTM zone 17N+proj=utm +zone=17 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / UTM zone 17N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3724"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  IWepsgNAD83(NSRS2007) / UTM zone 18N+proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / UTM zone 18N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3725"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  IWepsgNAD83(NSRS2007) / UTM zone 19N+proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / UTM zone 19N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3726"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  ?}{epsgReunion 1947 / TM Reunion+proj=tmerc +lat_0=-21.11666666666667 +lon_0=55.53333333333333 +k=1 +x_0=160000 +y_0=50000 +ellps=intl +units=m +no_defsPROJCS["Reunion 1947 / TM Reunion",GEOGCS["Reunion 1947",DATUM["Reunion_1947",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6626"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4626"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-21.11666666666667],PARAMETER["central_meridian",55.53333333333333],PARAMETER["scale_factor",1],PARAMETER["false_easting",160000],PARAMETER["false_northing",50000],AUTHORITY["EPSG","3727"],AXIS["X",EAST],AXIS["Y",NORTH]] ] SO!epsgNAD83(NSRS2007) / Ohio North (ftUS)+proj=lcc +lat_1=41.7 +lat_2=40.43333333333333 +lat_0=39.66666666666666 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Ohio North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.7],PARAMETER["standard_parallel_2",40.43333333333333],PARAMETER["latitude_of_origin",39.66666666666666],PARAMETER["central_meridian",-82.5],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","3728"],AXIS["X",EAST],AXIS["Y",NORTH]] ##Y SKepsgNAD83(NSRS2007) / Ohio South (ftUS)+proj=lcc +lat_1=40.03333333333333 +lat_2=38.73333333333333 +lat_0=38 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Ohio South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.03333333333333],PARAMETER["standard_parallel_2",38.73333333333333],PARAMETER["latitude_of_origin",38],PARAMETER["central_meridian",-82.5],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","3729"],AXIS["X",EAST],AXIS["Y",NORTH]] aa W53epsgNAD83(NSRS2007) / Wyoming East (ftUS)+proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.9999375 +x_0=200000.00001016 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Wyoming East (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40.5],PARAMETER["central_meridian",-105.1666666666667],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",656166.6667],PARAMETER["false_northing",0],AUTHORITY["EPSG","3730"],AXIS["X",EAST],AXIS["Y",NORTH]] 66F gUYepsgNAD83(NSRS2007) / Wyoming East Central (ftUS)+proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.9999375 +x_0=399999.99998984 +y_0=99999.99998983997 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Wyoming East Central (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40.5],PARAMETER["central_meridian",-107.3333333333333],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",1312333.3333],PARAMETER["false_northing",328083.3333],AUTHORITY["EPSG","3731"],AXIS["X",EAST],AXIS["Y",NORTH]] tt g %epsgNAD83(NSRS2007) / Wyoming West Central (ftUS)+proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.9999375 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Wyoming West Central (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40.5],PARAMETER["central_meridian",-108.75],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","3732"],AXIS["X",EAST],AXIS["Y",NORTH]] DD8 WYIepsgNAD83(NSRS2007) / Wyoming West (ftUS)+proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.9999375 +x_0=800000.0000101599 +y_0=99999.99998983997 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Wyoming West (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40.5],PARAMETER["central_meridian",-110.0833333333333],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",2624666.6667],PARAMETER["false_northing",328083.3333],AUTHORITY["EPSG","3733"],AXIS["X",EAST],AXIS["Y",NORTH]] qq  ?;%epsgNAD83 / Ohio North (ftUS)+proj=lcc +lat_1=41.7 +lat_2=40.43333333333333 +lat_0=39.66666666666666 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Ohio North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.7],PARAMETER["standard_parallel_2",40.43333333333333],PARAMETER["latitude_of_origin",39.66666666666666],PARAMETER["central_meridian",-82.5],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","3734"],AXIS["X",EAST],AXIS["Y",NORTH]] uu ?7!epsgNAD83 / Ohio South (ftUS)+proj=lcc +lat_1=40.03333333333333 +lat_2=38.73333333333333 +lat_0=38 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Ohio South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.03333333333333],PARAMETER["standard_parallel_2",38.73333333333333],PARAMETER["latitude_of_origin",38],PARAMETER["central_meridian",-82.5],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","3735"],AXIS["X",EAST],AXIS["Y",NORTH]] I C!7epsgNAD83 / Wyoming East (ftUS)+proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.9999375 +x_0=200000.00001016 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Wyoming East (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40.5],PARAMETER["central_meridian",-105.1666666666667],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",656166.6667],PARAMETER["false_northing",0],AUTHORITY["EPSG","3736"],AXIS["X",EAST],AXIS["Y",NORTH]] t SA]epsgNAD83 / Wyoming East Central (ftUS)+proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.9999375 +x_0=399999.99998984 +y_0=99999.99998983997 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Wyoming East Central (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40.5],PARAMETER["central_meridian",-107.3333333333333],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",1312333.3333],PARAMETER["false_northing",328083.3333],AUTHORITY["EPSG","3737"],AXIS["X",EAST],AXIS["Y",NORTH]] 6 Sy)epsgNAD83 / Wyoming West Central (ftUS)+proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.9999375 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Wyoming West Central (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40.5],PARAMETER["central_meridian",-108.75],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","3738"],AXIS["X",EAST],AXIS["Y",NORTH]] f CEMepsgNAD83 / Wyoming West (ftUS)+proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.9999375 +x_0=800000.0000101599 +y_0=99999.99998983997 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Wyoming West (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40.5],PARAMETER["central_meridian",-110.0833333333333],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",2624666.6667],PARAMETER["false_northing",328083.3333],AUTHORITY["EPSG","3739"],AXIS["X",EAST],AXIS["Y",NORTH]] $$XAo epsgNAD83(HARN) / UTM zone 10N+proj=utm +zone=10 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / UTM zone 10N",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-123],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3740"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] $$XAo epsgNAD83(HARN) / UTM zone 11N+proj=utm +zone=11 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / UTM zone 11N",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3741"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] $$XAo epsgNAD83(HARN) / UTM zone 12N+proj=utm +zone=12 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / UTM zone 12N",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3742"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] $$XAo epsgNAD83(HARN) / UTM zone 13N+proj=utm +zone=13 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / UTM zone 13N",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3743"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] %%W Ao epsgNAD83(HARN) / UTM zone 14N+proj=utm +zone=14 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / UTM zone 14N",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3744"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] %%W!Ao epsgNAD83(HARN) / UTM zone 15N+proj=utm +zone=15 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / UTM zone 15N",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3745"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ;(5BO\iv,9FS`mz #0=JWdq~ epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg %%W"Ao epsgNAD83(HARN) / UTM zone 16N+proj=utm +zone=16 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / UTM zone 16N",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-87],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3746"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] %%W#Ao epsgNAD83(HARN) / UTM zone 17N+proj=utm +zone=17 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / UTM zone 17N",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3747"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] %%W$Ao epsgNAD83(HARN) / UTM zone 18N+proj=utm +zone=18 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / UTM zone 18N",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3748"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] %%W%Ao epsgNAD83(HARN) / UTM zone 19N+proj=utm +zone=19 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / UTM zone 19N",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3749"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ''U&?m epsgNAD83(HARN) / UTM zone 4N+proj=utm +zone=4 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / UTM zone 4N",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-159],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3750"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ''U'?m epsgNAD83(HARN) / UTM zone 5N+proj=utm +zone=5 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / UTM zone 5N",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-153],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3751"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ++Q( OCepsgWGS 84 / Mercator 41 (deprecated)+proj=merc +lon_0=100 +lat_ts=-41 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / Mercator 41 (deprecated)",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Mercator_1SP"],PARAMETER["latitude_of_origin",-41],PARAMETER["central_meridian",100],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3752"],AXIS["X",EAST],AXIS["Y",NORTH]] aa) K!SepsgNAD83(HARN) / Ohio North (ftUS)+proj=lcc +lat_1=41.7 +lat_2=40.43333333333333 +lat_0=39.66666666666666 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Ohio North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.7],PARAMETER["standard_parallel_2",40.43333333333333],PARAMETER["latitude_of_origin",39.66666666666666],PARAMETER["central_meridian",-82.5],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","3753"],AXIS["X",EAST],AXIS["Y",NORTH]] ee* KOepsgNAD83(HARN) / Ohio South (ftUS)+proj=lcc +lat_1=40.03333333333333 +lat_2=38.73333333333333 +lat_0=38 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Ohio South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.03333333333333],PARAMETER["standard_parallel_2",38.73333333333333],PARAMETER["latitude_of_origin",38],PARAMETER["central_meridian",-82.5],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","3754"],AXIS["X",EAST],AXIS["Y",NORTH]] Y+ OeepsgNAD83(HARN) / Wyoming East (ftUS)+proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.9999375 +x_0=200000.00001016 +y_0=0 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Wyoming East (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40.5],PARAMETER["central_meridian",-105.1666666666667],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",656166.6667],PARAMETER["false_northing",0],AUTHORITY["EPSG","3755"],AXIS["X",EAST],AXIS["Y",NORTH]] xx, _' epsgNAD83(HARN) / Wyoming East Central (ftUS)+proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.9999375 +x_0=399999.99998984 +y_0=99999.99998983997 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Wyoming East Central (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40.5],PARAMETER["central_meridian",-107.3333333333333],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",1312333.3333],PARAMETER["false_northing",328083.3333],AUTHORITY["EPSG","3756"],AXIS["X",EAST],AXIS["Y",NORTH]] F- __WepsgNAD83(HARN) / Wyoming West Central (ftUS)+proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.9999375 +x_0=600000 +y_0=0 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Wyoming West Central (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40.5],PARAMETER["central_meridian",-108.75],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","3757"],AXIS["X",EAST],AXIS["Y",NORTH]] v. O+{epsgNAD83(HARN) / Wyoming West (ftUS)+proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.9999375 +x_0=800000.0000101599 +y_0=99999.99998983997 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Wyoming West (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40.5],PARAMETER["central_meridian",-110.0833333333333],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",2624666.6667],PARAMETER["false_northing",328083.3333],AUTHORITY["EPSG","3758"],AXIS["X",EAST],AXIS["Y",NORTH]] F/ E5epsgNAD83 / Hawaii zone 3 (ftUS)+proj=tmerc +lat_0=21.16666666666667 +lon_0=-158 +k=0.99999 +x_0=500000.00001016 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Hawaii zone 3 (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",21.16666666666667],PARAMETER["central_meridian",-158],PARAMETER["scale_factor",0.99999],PARAMETER["false_easting",1640416.6667],PARAMETER["false_northing",0],AUTHORITY["EPSG","3759"],AXIS["X",EAST],AXIS["Y",NORTH]] V0 QcepsgNAD83(HARN) / Hawaii zone 3 (ftUS)+proj=tmerc +lat_0=21.16666666666667 +lon_0=-158 +k=0.99999 +x_0=500000.00001016 +y_0=0 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Hawaii zone 3 (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",21.16666666666667],PARAMETER["central_meridian",-158],PARAMETER["scale_factor",0.99999],PARAMETER["false_easting",1640416.6667],PARAMETER["false_northing",0],AUTHORITY["EPSG","3760"],AXIS["X",EAST],AXIS["Y",NORTH]] ""Z1AoepsgNAD83(CSRS) / UTM zone 22N+proj=utm +zone=22 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / UTM zone 22N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3761"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] /2 Iq-epsgWGS 84 / South Georgia Lambert+proj=lcc +lat_1=-54 +lat_2=-54.75 +lat_0=-55 +lon_0=-37 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / South Georgia Lambert",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-54],PARAMETER["standard_parallel_2",-54.75],PARAMETER["latitude_of_origin",-55],PARAMETER["central_meridian",-37],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3762"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 3 9mepsgETRS89 / Portugal TM06+proj=tmerc +lat_0=39.66825833333333 +lon_0=-8.133108333333334 +k=1 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / Portugal TM06",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",39.66825833333333],PARAMETER["central_meridian",-8.133108333333334],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3763"],AXIS["X",EAST],AXIS["Y",NORTH]] J4 Y{IepsgNZGD2000 / Chatham Island Circuit 2000+proj=tmerc +lat_0=-44 +lon_0=-176.5 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Chatham Island Circuit 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-44],PARAMETER["central_meridian",-176.5],PARAMETER["scale_factor",1],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","3764"],AXIS["Northing",NORTH],AXIS["Easting",EAST]]  5 3s#epsgHTRS96 / Croatia TM+proj=tmerc +lat_0=0 +lon_0=16.5 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["HTRS96 / Croatia TM",GEOGCS["HTRS96",DATUM["Croatian_Terrestrial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6761"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4761"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",16.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3765"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] qq 6 555epsgHTRS96 / Croatia LCC+proj=lcc +lat_1=45.91666666666666 +lat_2=43.08333333333334 +lat_0=0 +lon_0=16.5 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["HTRS96 / Croatia LCC",GEOGCS["HTRS96",DATUM["Croatian_Terrestrial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6761"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4761"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.91666666666666],PARAMETER["standard_parallel_2",43.08333333333334],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",16.5],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3766"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] w7 7#epsgHTRS96 / UTM zone 33N+proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["HTRS96 / UTM zone 33N",GEOGCS["HTRS96",DATUM["Croatian_Terrestrial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6761"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4761"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3767"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] w8 7#epsgHTRS96 / UTM zone 34N+proj=utm +zone=34 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["HTRS96 / UTM zone 34N",GEOGCS["HTRS96",DATUM["Croatian_Terrestrial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6761"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4761"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3768"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 00L9CqoepsgBermuda 1957 / UTM zone 20N+proj=utm +zone=20 +ellps=clrk66 +units=m +no_defsPROJCS["Bermuda 1957 / UTM zone 20N",GEOGCS["Bermuda 1957",DATUM["Bermuda_1957",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6216"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4216"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3769"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] .: UyepsgBDA2000 / Bermuda 2000 National Grid+proj=tmerc +lat_0=32 +lon_0=-64.75 +k=1 +x_0=550000 +y_0=100000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["BDA2000 / Bermuda 2000 National Grid",GEOGCS["BDA2000",DATUM["Bermuda_2000",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6762"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4762"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",32],PARAMETER["central_meridian",-64.75],PARAMETER["scale_factor",1],PARAMETER["false_easting",550000],PARAMETER["false_northing",100000],AUTHORITY["EPSG","3770"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ; SWepsgNAD27 / Alberta 3TM ref merid 111 W+proj=tmerc +lat_0=0 +lon_0=-111 +k=0.9999 +x_0=0 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / Alberta 3TM ref merid 111 W",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-111],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3771"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] < SWepsgNAD27 / Alberta 3TM ref merid 114 W+proj=tmerc +lat_0=0 +lon_0=-114 +k=0.9999 +x_0=0 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / Alberta 3TM ref merid 114 W",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-114],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3772"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] = SWepsgNAD27 / Alberta 3TM ref merid 117 W+proj=tmerc +lat_0=0 +lon_0=-117 +k=0.9999 +x_0=0 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / Alberta 3TM ref merid 117 W",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-117],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3773"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ,> mWepsgNAD27 / Alberta 3TM ref merid 120 W (deprecated)+proj=tmerc +lat_0=0 +lon_0=-120 +k=0.9999 +x_0=0 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / Alberta 3TM ref merid 120 W (deprecated)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-120],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3774"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ? SUqepsgNAD83 / Alberta 3TM ref merid 111 W+proj=tmerc +lat_0=0 +lon_0=-111 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Alberta 3TM ref merid 111 W",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-111],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3775"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] @ SUqepsgNAD83 / Alberta 3TM ref merid 114 W+proj=tmerc +lat_0=0 +lon_0=-114 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Alberta 3TM ref merid 114 W",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-114],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3776"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] A SUqepsgNAD83 / Alberta 3TM ref merid 117 W+proj=tmerc +lat_0=0 +lon_0=-117 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Alberta 3TM ref merid 117 W",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-117],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3777"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] "B mU epsgNAD83 / Alberta 3TM ref merid 120 W (deprecated)+proj=tmerc +lat_0=0 +lon_0=-120 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Alberta 3TM ref merid 120 W (deprecated)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-120],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3778"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] C _;%epsgNAD83(CSRS) / Alberta 3TM ref merid 111 W+proj=tmerc +lat_0=0 +lon_0=-111 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / Alberta 3TM ref merid 111 W",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-111],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3779"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] D _;%epsgNAD83(CSRS) / Alberta 3TM ref merid 114 W+proj=tmerc +lat_0=0 +lon_0=-114 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / Alberta 3TM ref merid 114 W",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-114],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3780"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] E _;%epsgNAD83(CSRS) / Alberta 3TM ref merid 117 W+proj=tmerc +lat_0=0 +lon_0=-117 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / Alberta 3TM ref merid 117 W",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-117],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3781"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 5F y;?epsgNAD83(CSRS) / Alberta 3TM ref merid 120 W (deprecated)+proj=tmerc +lat_0=0 +lon_0=-120 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / Alberta 3TM ref merid 120 W (deprecated)",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-120],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3782"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] aG M-QepsgPitcairn 2006 / Pitcairn TM 2006+proj=tmerc +lat_0=-25.06855261111111 +lon_0=-130.1129671111111 +k=1 +x_0=14200 +y_0=15500 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["Pitcairn 2006 / Pitcairn TM 2006",GEOGCS["Pitcairn 2006",DATUM["Pitcairn_2006",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6763"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4763"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-25.06855261111111],PARAMETER["central_meridian",-130.1129671111111],PARAMETER["scale_factor",1],PARAMETER["false_easting",14200],PARAMETER["false_northing",15500],AUTHORITY["EPSG","3783"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  H C1)epsgPitcairn 1967 / UTM zone 9S+proj=utm +zone=9 +south +ellps=intl +towgs84=185,165,42,0,0,0,0 +units=m +no_defsPROJCS["Pitcairn 1967 / UTM zone 9S",GEOGCS["Pitcairn 1967",DATUM["Pitcairn_1967",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[185,165,42,0,0,0,0],AUTHORITY["EPSG","6729"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4729"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-129],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3784"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ==?I oepsgPopular Visualisation CRS / Mercator (deprecated)+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defsPROJCS["Popular Visualisation CRS / Mercator (deprecated)",GEOGCS["Popular Visualisation CRS",DATUM["Popular_Visualisation_Datum",SPHEROID["Popular Visualisation Sphere",6378137,0,AUTHORITY["EPSG","7059"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6055"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4055"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Mercator_1SP"],PARAMETER["central_meridian",0],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],EXTENSION["PROJ4","+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs"],AUTHORITY["EPSG","3785"],AXIS["X",EAST],AXIS["Y",NORTH]] 8J sCCepsgWorld Equidistant Cylindrical (Sphere) (deprecated)+proj=eqc +lat_ts=0 +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +a=6371007 +b=6371007 +units=m +no_defsPROJCS["World Equidistant Cylindrical (Sphere) (deprecated)",GEOGCS["Unspecified datum based upon the GRS 1980 Authalic Sphere",DATUM["Not_specified_based_on_GRS_1980_Authalic_Sphere",SPHEROID["GRS 1980 Authalic Sphere",6371007,0,AUTHORITY["EPSG","7048"]],AUTHORITY["EPSG","6047"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4047"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Equirectangular"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",0],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3786"],AXIS["X",EAST],AXIS["Y",NORTH]] cK ]{wepsgMGI / Slovene National Grid (deprecated)+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9999 +x_0=500000 +y_0=-5000000 +ellps=bessel +datum=hermannskogel +units=m +no_defsPROJCS["MGI / Slovene National Grid (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4312"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",-5000000],AUTHORITY["EPSG","3787"],AXIS["Y",EAST],AXIS["X",NORTH]] @L Sw?epsgNZGD2000 / Auckland Islands TM 2000+proj=tmerc +lat_0=0 +lon_0=166 +k=1 +x_0=3500000 +y_0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Auckland Islands TM 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",166],PARAMETER["scale_factor",1],PARAMETER["false_easting",3500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3788"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] >M Qw=epsgNZGD2000 / Campbell Island TM 2000+proj=tmerc +lat_0=0 +lon_0=169 +k=1 +x_0=3500000 +y_0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Campbell Island TM 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",169],PARAMETER["scale_factor",1],PARAMETER["false_easting",3500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3789"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] BN UwAepsgNZGD2000 / Antipodes Islands TM 2000+proj=tmerc +lat_0=0 +lon_0=179 +k=1 +x_0=3500000 +y_0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Antipodes Islands TM 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",179],PARAMETER["scale_factor",1],PARAMETER["false_easting",3500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3790"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] :O Ky9epsgNZGD2000 / Raoul Island TM 2000+proj=tmerc +lat_0=0 +lon_0=-178 +k=1 +x_0=3500000 +y_0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Raoul Island TM 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-178],PARAMETER["scale_factor",1],PARAMETER["false_easting",3500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3791"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] DQ Q}CepsgNZGD2000 / Chatham Islands TM 2000+proj=tmerc +lat_0=0 +lon_0=-176.5 +k=1 +x_0=3500000 +y_0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Chatham Islands TM 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-176.5],PARAMETER["scale_factor",1],PARAMETER["false_easting",3500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3793"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] LR W}MepsgSlovenia 1996 / Slovene National Grid+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9999 +x_0=500000 +y_0=-5000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["Slovenia 1996 / Slovene National Grid",GEOGCS["Slovenia 1996",DATUM["Slovenia_Geodetic_Datum_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6765"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4765"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",-5000000],AUTHORITY["EPSG","3794"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] @S 1 KepsgNAD27 / Cuba Norte+proj=lcc +lat_1=23 +lat_2=21.7 +lat_0=22.35 +lon_0=-81 +x_0=500000 +y_0=280296.016 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / Cuba Norte",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",23],PARAMETER["standard_parallel_2",21.7],PARAMETER["latitude_of_origin",22.35],PARAMETER["central_meridian",-81],PARAMETER["false_easting",500000],PARAMETER["false_northing",280296.016],AUTHORITY["EPSG","3795"],AXIS["Y",NORTH],AXIS["X",EAST]] llT -aepsgNAD27 / Cuba Sur+proj=lcc +lat_1=21.3 +lat_2=20.13333333333333 +lat_0=20.71666666666667 +lon_0=-76.83333333333333 +x_0=500000 +y_0=229126.939 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / Cuba Sur",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",21.3],PARAMETER["standard_parallel_2",20.13333333333333],PARAMETER["latitude_of_origin",20.71666666666667],PARAMETER["central_meridian",-76.83333333333333],PARAMETER["false_easting",500000],PARAMETER["false_northing",229126.939],AUTHORITY["EPSG","3796"],AXIS["Y",NORTH],AXIS["X",EAST]] &U 3q1epsgNAD27 / MTQ Lambert+proj=lcc +lat_1=50 +lat_2=46 +lat_0=44 +lon_0=-70 +x_0=800000 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / MTQ Lambert",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",50],PARAMETER["standard_parallel_2",46],PARAMETER["latitude_of_origin",44],PARAMETER["central_meridian",-70],PARAMETER["false_easting",800000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3797"],AXIS["X",EAST],AXIS["Y",NORTH]] V 3oepsgNAD83 / MTQ Lambert+proj=lcc +lat_1=50 +lat_2=46 +lat_0=44 +lon_0=-70 +x_0=800000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / MTQ Lambert",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",50],PARAMETER["standard_parallel_2",46],PARAMETER["latitude_of_origin",44],PARAMETER["central_meridian",-70],PARAMETER["false_easting",800000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3798"],AXIS["X",EAST],AXIS["Y",NORTH]] /W ?USepsgNAD83(CSRS) / MTQ Lambert+proj=lcc +lat_1=50 +lat_2=46 +lat_0=44 +lon_0=-70 +x_0=800000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / MTQ Lambert",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",50],PARAMETER["standard_parallel_2",46],PARAMETER["latitude_of_origin",44],PARAMETER["central_meridian",-70],PARAMETER["false_easting",800000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3799"],AXIS["X",EAST],AXIS["Y",NORTH]] X SWepsgNAD27 / Alberta 3TM ref merid 120 W+proj=tmerc +lat_0=0 +lon_0=-120 +k=0.9999 +x_0=0 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / Alberta 3TM ref merid 120 W",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-120],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3800"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Y SUqepsgNAD83 / Alberta 3TM ref merid 120 W+proj=tmerc +lat_0=0 +lon_0=-120 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Alberta 3TM ref merid 120 W",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-120],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3801"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Z _;%epsgNAD83(CSRS) / Alberta 3TM ref merid 120 W+proj=tmerc +lat_0=0 +lon_0=-120 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / Alberta 3TM ref merid 120 W",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-120],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3802"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW%d GEGepsgETRS89 / Belgian Lambert 2008+proj=lcc +lat_1=49.83333333333334 +lat_2=51.16666666666666 +lat_0=50.797815 +lon_0=4.359215833333333 +x_0=649328 +y_0=665262 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / Belgian Lambert 2008",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",49.83333333333334],PARAMETER["standard_parallel_2",51.16666666666666],PARAMETER["latitude_of_origin",50.797815],PARAMETER["central_meridian",4.359215833333333],PARAMETER["false_easting",649328],PARAMETER["false_northing",665262],AUTHORITY["EPSG","3812"],AXIS["X",EAST],AXIS["Y",NORTH]] f 9{cepsgNAD83 / Mississippi TM+proj=tmerc +lat_0=32.5 +lon_0=-89.75 +k=0.9998335 +x_0=500000 +y_0=1300000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Mississippi TM",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",32.5],PARAMETER["central_meridian",-89.75],PARAMETER["scale_factor",0.9998335],PARAMETER["false_easting",500000],PARAMETER["false_northing",1300000],AUTHORITY["EPSG","3814"],AXIS["X",EAST],AXIS["Y",NORTH]] g EaepsgNAD83(HARN) / Mississippi TM+proj=tmerc +lat_0=32.5 +lon_0=-89.75 +k=0.9998335 +x_0=500000 +y_0=1300000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Mississippi TM",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",32.5],PARAMETER["central_meridian",-89.75],PARAMETER["scale_factor",0.9998335],PARAMETER["false_easting",500000],PARAMETER["false_northing",1300000],AUTHORITY["EPSG","3815"],AXIS["X",EAST],AXIS["Y",NORTH]]offlrx~ &,28>DJPV\bhntz "(.4:@FLRX^djpv|/ 0!1"2#3$4%5&6'7(8)9*:+;,<-=.>/?0@1A2B3C4D5E6F7G8H9I:J;KN?O@QARBSCTDUEVFWGXHYIZJdKfLgNhPmQpRqSrTsUtVuWxXyYzZ{[|\}]~^_`abcdefgh i j k lmn1o2p3q4r5sBtCuDvEwFxGyHzP{f|g}h~ijklmn   Yh M_epsgNAD83(NSRS2007) / Mississippi TM+proj=tmerc +lat_0=32.5 +lon_0=-89.75 +k=0.9998335 +x_0=500000 +y_0=1300000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Mississippi TM",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",32.5],PARAMETER["central_meridian",-89.75],PARAMETER["scale_factor",0.9998335],PARAMETER["false_easting",500000],PARAMETER["false_northing",1300000],AUTHORITY["EPSG","3816"],AXIS["X",EAST],AXIS["Y",NORTH]] ;(5BO\iv,9FS`mz #0=JWdq~ epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg  epsg  epsg  epsg  epsg epsg epsg 1epsg1 2epsg2 3epsg3 4epsg4 5epsg5 =EmW'epsgTWD67+proj=longlat +ellps=aust_SA +no_defsGEOGCS["TWD67",DATUM["Taiwan_Datum_1967",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],AUTHORITY["EPSG","1025"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3821"]]?k G'epsgHD1909+proj=longlat +ellps=bessel +towgs84=595.48,121.69,515.35,4.115,-2.9383,0.853,-3.408 +no_defsGEOGCS["HD1909",DATUM["Hungarian_Datum_1909",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[595.48,121.69,515.35,4.115,-2.9383,0.853,-3.408],AUTHORITY["EPSG","1024"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3819"]] pp QepsgTWD97+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["TWD97",DATUM["Taiwan_Datum_1997",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1026"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3824"]] ~q 5q_epsgTWD97 / TM2 zone 119+proj=tmerc +lat_0=0 +lon_0=119 +k=0.9999 +x_0=250000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["TWD97 / TM2 zone 119",GEOGCS["TWD97",DATUM["Taiwan_Datum_1997",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1026"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3824"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",119],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",250000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3825"],AXIS["X",EAST],AXIS["Y",NORTH]] ~r 5q_epsgTWD97 / TM2 zone 121+proj=tmerc +lat_0=0 +lon_0=121 +k=0.9999 +x_0=250000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["TWD97 / TM2 zone 121",GEOGCS["TWD97",DATUM["Taiwan_Datum_1997",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1026"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3824"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",121],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",250000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3826"],AXIS["X",EAST],AXIS["Y",NORTH]] ((Ts 5G5epsgTWD67 / TM2 zone 119+proj=tmerc +lat_0=0 +lon_0=119 +k=0.9999 +x_0=250000 +y_0=0 +ellps=aust_SA +units=m +no_defsPROJCS["TWD67 / TM2 zone 119",GEOGCS["TWD67",DATUM["Taiwan_Datum_1967",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],AUTHORITY["EPSG","1025"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3821"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",119],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",250000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3827"],AXIS["X",EAST],AXIS["Y",NORTH]] ((Tt 5G5epsgTWD67 / TM2 zone 121+proj=tmerc +lat_0=0 +lon_0=121 +k=0.9999 +x_0=250000 +y_0=0 +ellps=aust_SA +units=m +no_defsPROJCS["TWD67 / TM2 zone 121",GEOGCS["TWD67",DATUM["Taiwan_Datum_1967",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],AUTHORITY["EPSG","1025"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3821"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",121],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",250000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3828"],AXIS["X",EAST],AXIS["Y",NORTH]] u A-+epsgHu Tzu Shan / UTM zone 51N+proj=utm +zone=51 +ellps=intl +towgs84=-637,-549,-203,0,0,0,0 +units=m +no_defsPROJCS["Hu Tzu Shan / UTM zone 51N",GEOGCS["Hu Tzu Shan 1950",DATUM["Hu_Tzu_Shan_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-637,-549,-203,0,0,0,0],AUTHORITY["EPSG","6236"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4236"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3829"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] aax 75SepsgWGS 84 / PDC Mercator+proj=merc +lon_0=150 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / PDC Mercator",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Mercator_1SP"],PARAMETER["central_meridian",150],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3832"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]   py Y7YepsgPulkovo 1942(58) / Gauss-Kruger zone 2+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=2500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(58) / Gauss-Kruger zone 2",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",1],PARAMETER["false_easting",2500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3833"],AXIS["X",NORTH],AXIS["Y",EAST]]   pz Y7YepsgPulkovo 1942(83) / Gauss-Kruger zone 2+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=2500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(83) / Gauss-Kruger zone 2",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",1],PARAMETER["false_easting",2500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3834"],AXIS["X",NORTH],AXIS["Y",EAST]]   r{ Y9[epsgPulkovo 1942(83) / Gauss-Kruger zone 3+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=3500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(83) / Gauss-Kruger zone 3",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",1],PARAMETER["false_easting",3500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3835"],AXIS["X",NORTH],AXIS["Y",EAST]]   r| Y9[epsgPulkovo 1942(83) / Gauss-Kruger zone 4+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=4500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(83) / Gauss-Kruger zone 4",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",1],PARAMETER["false_easting",4500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3836"],AXIS["X",NORTH],AXIS["Y",EAST]] } k7kepsgPulkovo 1942(58) / 3-degree Gauss-Kruger zone 3+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 3",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",1],PARAMETER["false_easting",3500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3837"],AXIS["X",NORTH],AXIS["Y",EAST]] ~ k9mepsgPulkovo 1942(58) / 3-degree Gauss-Kruger zone 4+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 4",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",12],PARAMETER["scale_factor",1],PARAMETER["false_easting",4500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3838"],AXIS["X",NORTH],AXIS["Y",EAST]]  k9mepsgPulkovo 1942(58) / 3-degree Gauss-Kruger zone 9+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=9500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 9",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",1],PARAMETER["false_easting",9500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3839"],AXIS["X",NORTH],AXIS["Y",EAST]]  m;qepsgPulkovo 1942(58) / 3-degree Gauss-Kruger zone 10+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=10500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 10",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",30],PARAMETER["scale_factor",1],PARAMETER["false_easting",10500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3840"],AXIS["X",NORTH],AXIS["Y",EAST]]  k9mepsgPulkovo 1942(83) / 3-degree Gauss-Kruger zone 6+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=6500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 6",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",18],PARAMETER["scale_factor",1],PARAMETER["false_easting",6500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3841"],AXIS["X",NORTH],AXIS["Y",EAST]]  k9mepsgPulkovo 1942(83) / 3-degree Gauss-Kruger zone 7+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=6500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 7",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",18],PARAMETER["scale_factor",1],PARAMETER["false_easting",6500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3842"],AXIS["X",NORTH],AXIS["Y",EAST]]  k9mepsgPulkovo 1942(83) / 3-degree Gauss-Kruger zone 8+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=6500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 8",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",18],PARAMETER["scale_factor",1],PARAMETER["false_easting",6500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3843"],AXIS["X",NORTH],AXIS["Y",EAST]] u CQ_epsgPulkovo 1942(58) / Stereo70+proj=sterea +lat_0=46 +lon_0=25 +k=0.99975 +x_0=500000 +y_0=500000 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(58) / Stereo70",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Oblique_Stereographic"],PARAMETER["latitude_of_origin",46],PARAMETER["central_meridian",25],PARAMETER["scale_factor",0.99975],PARAMETER["false_easting",500000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","3844"],AXIS["X",NORTH],AXIS["Y",EAST]] < SepsgSWEREF99 / RT90 7.5 gon V emulation+proj=tmerc +lat_0=0 +lon_0=11.30625 +k=1.000006 +x_0=1500025.141 +y_0=-667.282 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SWEREF99 / RT90 7.5 gon V emulation",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",11.30625],PARAMETER["scale_factor",1.000006],PARAMETER["false_easting",1500025.141],PARAMETER["false_northing",-667.282],AUTHORITY["EPSG","3845"],AXIS["X",NORTH],AXIS["Y",EAST]] J O)%epsgSWEREF99 / RT90 5 gon V emulation+proj=tmerc +lat_0=0 +lon_0=13.55626666666667 +k=1.0000058 +x_0=1500044.695 +y_0=-667.13 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SWEREF99 / RT90 5 gon V emulation",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",13.55626666666667],PARAMETER["scale_factor",1.0000058],PARAMETER["false_easting",1500044.695],PARAMETER["false_northing",-667.13],AUTHORITY["EPSG","3846"],AXIS["X",NORTH],AXIS["Y",EAST]] X S33epsgSWEREF99 / RT90 2.5 gon V emulation+proj=tmerc +lat_0=0 +lon_0=15.80628452944445 +k=1.00000561024 +x_0=1500064.274 +y_0=-667.711 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SWEREF99 / RT90 2.5 gon V emulation",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15.80628452944445],PARAMETER["scale_factor",1.00000561024],PARAMETER["false_easting",1500064.274],PARAMETER["false_northing",-667.711],AUTHORITY["EPSG","3847"],AXIS["X",NORTH],AXIS["Y",EAST]] > K+epsgSWEREF99 / RT90 0 gon emulation+proj=tmerc +lat_0=0 +lon_0=18.0563 +k=1.0000054 +x_0=1500083.521 +y_0=-668.8440000000001 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SWEREF99 / RT90 0 gon emulation",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",18.0563],PARAMETER["scale_factor",1.0000054],PARAMETER["false_easting",1500083.521],PARAMETER["false_northing",-668.844],AUTHORITY["EPSG","3848"],AXIS["X",NORTH],AXIS["Y",EAST]] P S++epsg SWEREF99 / RT90 2.5 gon O emulation+proj=tmerc +lat_0=0 +lon_0=20.30631666666667 +k=1.0000052 +x_0=1500102.765 +y_0=-670.706 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SWEREF99 / RT90 2.5 gon O emulation",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",20.30631666666667],PARAMETER["scale_factor",1.0000052],PARAMETER["false_easting",1500102.765],PARAMETER["false_northing",-670.706],AUTHORITY["EPSG","3849"],AXIS["X",NORTH],AXIS["Y",EAST]] L O+'epsg SWEREF99 / RT90 5 gon O emulation+proj=tmerc +lat_0=0 +lon_0=22.55633333333333 +k=1.0000049 +x_0=1500121.846 +y_0=-672.557 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SWEREF99 / RT90 5 gon O emulation",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",22.55633333333333],PARAMETER["scale_factor",1.0000049],PARAMETER["false_easting",1500121.846],PARAMETER["false_northing",-672.557],AUTHORITY["EPSG","3850"],AXIS["X",NORTH],AXIS["Y",EAST]] o 3epsg NZGD2000 / NZCS2000+proj=lcc +lat_1=-37.5 +lat_2=-44.5 +lat_0=-41 +lon_0=173 +x_0=3000000 +y_0=7000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / NZCS2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-37.5],PARAMETER["standard_parallel_2",-44.5],PARAMETER["latitude_of_origin",-41],PARAMETER["central_meridian",173],PARAMETER["false_easting",3000000],PARAMETER["false_northing",7000000],AUTHORITY["EPSG","3851"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] `` 5EGepsg RSRGD2000 / DGLC2000+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=157 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["RSRGD2000 / DGLC2000",GEOGCS["RSRGD2000",DATUM["Ross_Sea_Region_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6764"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4764"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-76.66666666666667],PARAMETER["standard_parallel_2",-79.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",157],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3852"],AXIS["Northing",NORTH],AXIS["Easting",EAST]]  #%uepsgCounty ST74+proj=tmerc +lat_0=0 +lon_0=18.05787 +k=0.99999506 +x_0=100182.7406 +y_0=-6500620.1207 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["County ST74",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",18.05787],PARAMETER["scale_factor",0.99999506],PARAMETER["false_easting",100182.7406],PARAMETER["false_northing",-6500620.1207],AUTHORITY["EPSG","3854"],AXIS["x",NORTH],AXIS["y",EAST]] F =YepsgWGS 84 / Pseudo-Mercator+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defsPROJCS["WGS 84 / Pseudo-Mercator",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Mercator_1SP"],PARAMETER["central_meridian",0],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],EXTENSION["PROJ4","+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs"],AUTHORITY["EPSG","3857"],AXIS["X",EAST],AXIS["Y",NORTH]] ~~~1 oepsg1IGRS+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["IGRS",DATUM["Iraqi_Geospatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1029"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3889"]] m2 3epsg2IGRS / UTM zone 37N+proj=utm +zone=37 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["IGRS / UTM zone 37N",GEOGCS["IGRS",DATUM["Iraqi_Geospatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1029"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3889"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3890"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] m3 3epsg3IGRS / UTM zone 38N+proj=utm +zone=38 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["IGRS / UTM zone 38N",GEOGCS["IGRS",DATUM["Iraqi_Geospatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1029"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3889"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3891"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] m4 3epsg4IGRS / UTM zone 39N+proj=utm +zone=39 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["IGRS / UTM zone 39N",GEOGCS["IGRS",DATUM["Iraqi_Geospatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1029"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3889"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3892"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  5 ?cyepsg5ED50 / Iraq National Grid+proj=tmerc +lat_0=29.02626833333333 +lon_0=46.5 +k=0.9994 +x_0=800000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["ED50 / Iraq National Grid",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",29.02626833333333],PARAMETER["central_meridian",46.5],PARAMETER["scale_factor",0.9994],PARAMETER["false_easting",800000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3893"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] DBU!epsgBMGI 1901+proj=longlat +ellps=bessel +no_defsGEOGCS["MGI 1901",DATUM["MGI_1901",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","1031"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3906"]] ""ZC ?E9epsgCMGI 1901 / Balkans zone 5+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9999 +x_0=5500000 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["MGI 1901 / Balkans zone 5",GEOGCS["MGI 1901",DATUM["MGI_1901",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","1031"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3906"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",5500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3907"],AXIS["X",NORTH],AXIS["Y",EAST]] ""ZD ?E9epsgDMGI 1901 / Balkans zone 6+proj=tmerc +lat_0=0 +lon_0=18 +k=0.9999 +x_0=6500000 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["MGI 1901 / Balkans zone 6",GEOGCS["MGI 1901",DATUM["MGI_1901",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","1031"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3906"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",18],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",6500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3908"],AXIS["X",NORTH],AXIS["Y",EAST]] ""ZE ?E9epsgEMGI 1901 / Balkans zone 7+proj=tmerc +lat_0=0 +lon_0=21 +k=0.9999 +x_0=7500000 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["MGI 1901 / Balkans zone 7",GEOGCS["MGI 1901",DATUM["MGI_1901",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","1031"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3906"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",7500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3909"],AXIS["X",NORTH],AXIS["Y",EAST]] ""ZF ?E9epsgFMGI 1901 / Balkans zone 8+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9999 +x_0=8500000 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["MGI 1901 / Balkans zone 8",GEOGCS["MGI 1901",DATUM["MGI_1901",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","1031"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3906"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",24],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",8500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3910"],AXIS["X",NORTH],AXIS["Y",EAST]] &&VG =C5epsgGMGI 1901 / Slovenia Grid+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9999 +x_0=500000 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["MGI 1901 / Slovenia Grid",GEOGCS["MGI 1901",DATUM["MGI_1901",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","1031"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3906"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3911"],AXIS["X",NORTH],AXIS["Y",EAST]] tH MQSepsgHMGI 1901 / Slovene National Grid+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9999 +x_0=500000 +y_0=-5000000 +ellps=bessel +units=m +no_defsPROJCS["MGI 1901 / Slovene National Grid",GEOGCS["MGI 1901",DATUM["MGI_1901",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","1031"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3906"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",-5000000],AUTHORITY["EPSG","3912"],AXIS["Y",EAST],AXIS["X",NORTH]] P A)!epsgPPuerto Rico / UTM zone 20N+proj=utm +zone=20 +ellps=clrk66 +towgs84=11,72,-101,0,0,0,0 +units=m +no_defsPROJCS["Puerto Rico / UTM zone 20N",GEOGCS["Puerto Rico",DATUM["Puerto_Rico",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[11,72,-101,0,0,0,0],AUTHORITY["EPSG","6139"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4139"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3920"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Kf %aepsgfRGF93 / CC42+proj=lcc +lat_1=41.25 +lat_2=42.75 +lat_0=42 +lon_0=3 +x_0=1700000 +y_0=1200000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["RGF93 / CC42",GEOGCS["RGF93",DATUM["Reseau_Geodesique_Francais_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6171"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4171"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.25],PARAMETER["standard_parallel_2",42.75],PARAMETER["latitude_of_origin",42],PARAMETER["central_meridian",3],PARAMETER["false_easting",1700000],PARAMETER["false_northing",1200000],AUTHORITY["EPSG","3942"],AXIS["X",EAST],AXIS["Y",NORTH]] Kg %aepsggRGF93 / CC43+proj=lcc +lat_1=42.25 +lat_2=43.75 +lat_0=43 +lon_0=3 +x_0=1700000 +y_0=2200000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["RGF93 / CC43",GEOGCS["RGF93",DATUM["Reseau_Geodesique_Francais_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6171"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4171"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",42.25],PARAMETER["standard_parallel_2",43.75],PARAMETER["latitude_of_origin",43],PARAMETER["central_meridian",3],PARAMETER["false_easting",1700000],PARAMETER["false_northing",2200000],AUTHORITY["EPSG","3943"],AXIS["X",EAST],AXIS["Y",NORTH]] Kh %aepsghRGF93 / CC44+proj=lcc +lat_1=43.25 +lat_2=44.75 +lat_0=44 +lon_0=3 +x_0=1700000 +y_0=3200000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["RGF93 / CC44",GEOGCS["RGF93",DATUM["Reseau_Geodesique_Francais_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6171"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4171"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43.25],PARAMETER["standard_parallel_2",44.75],PARAMETER["latitude_of_origin",44],PARAMETER["central_meridian",3],PARAMETER["false_easting",1700000],PARAMETER["false_northing",3200000],AUTHORITY["EPSG","3944"],AXIS["X",EAST],AXIS["Y",NORTH]] Ki %aepsgiRGF93 / CC45+proj=lcc +lat_1=44.25 +lat_2=45.75 +lat_0=45 +lon_0=3 +x_0=1700000 +y_0=4200000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["RGF93 / CC45",GEOGCS["RGF93",DATUM["Reseau_Geodesique_Francais_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6171"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4171"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",44.25],PARAMETER["standard_parallel_2",45.75],PARAMETER["latitude_of_origin",45],PARAMETER["central_meridian",3],PARAMETER["false_easting",1700000],PARAMETER["false_northing",4200000],AUTHORITY["EPSG","3945"],AXIS["X",EAST],AXIS["Y",NORTH]] Kj %aepsgjRGF93 / CC46+proj=lcc +lat_1=45.25 +lat_2=46.75 +lat_0=46 +lon_0=3 +x_0=1700000 +y_0=5200000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["RGF93 / CC46",GEOGCS["RGF93",DATUM["Reseau_Geodesique_Francais_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6171"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4171"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.25],PARAMETER["standard_parallel_2",46.75],PARAMETER["latitude_of_origin",46],PARAMETER["central_meridian",3],PARAMETER["false_easting",1700000],PARAMETER["false_northing",5200000],AUTHORITY["EPSG","3946"],AXIS["X",EAST],AXIS["Y",NORTH]] Kk %aepsgkRGF93 / CC47+proj=lcc +lat_1=46.25 +lat_2=47.75 +lat_0=47 +lon_0=3 +x_0=1700000 +y_0=6200000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["RGF93 / CC47",GEOGCS["RGF93",DATUM["Reseau_Geodesique_Francais_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6171"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4171"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",46.25],PARAMETER["standard_parallel_2",47.75],PARAMETER["latitude_of_origin",47],PARAMETER["central_meridian",3],PARAMETER["false_easting",1700000],PARAMETER["false_northing",6200000],AUTHORITY["EPSG","3947"],AXIS["X",EAST],AXIS["Y",NORTH]] Kl %aepsglRGF93 / CC48+proj=lcc +lat_1=47.25 +lat_2=48.75 +lat_0=48 +lon_0=3 +x_0=1700000 +y_0=7200000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["RGF93 / CC48",GEOGCS["RGF93",DATUM["Reseau_Geodesique_Francais_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6171"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4171"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.25],PARAMETER["standard_parallel_2",48.75],PARAMETER["latitude_of_origin",48],PARAMETER["central_meridian",3],PARAMETER["false_easting",1700000],PARAMETER["false_northing",7200000],AUTHORITY["EPSG","3948"],AXIS["X",EAST],AXIS["Y",NORTH]] Km %aepsgmRGF93 / CC49+proj=lcc +lat_1=48.25 +lat_2=49.75 +lat_0=49 +lon_0=3 +x_0=1700000 +y_0=8200000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["RGF93 / CC49",GEOGCS["RGF93",DATUM["Reseau_Geodesique_Francais_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6171"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4171"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",48.25],PARAMETER["standard_parallel_2",49.75],PARAMETER["latitude_of_origin",49],PARAMETER["central_meridian",3],PARAMETER["false_easting",1700000],PARAMETER["false_northing",8200000],AUTHORITY["EPSG","3949"],AXIS["X",EAST],AXIS["Y",NORTH]] Kn %aepsgnRGF93 / CC50+proj=lcc +lat_1=49.25 +lat_2=50.75 +lat_0=50 +lon_0=3 +x_0=1700000 +y_0=9200000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["RGF93 / CC50",GEOGCS["RGF93",DATUM["Reseau_Geodesique_Francais_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6171"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4171"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",49.25],PARAMETER["standard_parallel_2",50.75],PARAMETER["latitude_of_origin",50],PARAMETER["central_meridian",3],PARAMETER["false_easting",1700000],PARAMETER["false_northing",9200000],AUTHORITY["EPSG","3950"],AXIS["X",EAST],AXIS["Y",NORTH]] $ =m'epsgNAD83 / Virginia Lambert+proj=lcc +lat_1=37 +lat_2=39.5 +lat_0=36 +lon_0=-79.5 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Virginia Lambert",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37],PARAMETER["standard_parallel_2",39.5],PARAMETER["latitude_of_origin",36],PARAMETER["central_meridian",-79.5],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3968"],AXIS["X",EAST],AXIS["Y",NORTH]] 4 ISUepsgNAD83(HARN) / Virginia Lambert+proj=lcc +lat_1=37 +lat_2=39.5 +lat_0=36 +lon_0=-79.5 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Virginia Lambert",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37],PARAMETER["standard_parallel_2",39.5],PARAMETER["latitude_of_origin",36],PARAMETER["central_meridian",-79.5],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3969"],AXIS["X",EAST],AXIS["Y",NORTH]] v Q#epsgNAD83(NSRS2007) / Virginia Lambert+proj=lcc +lat_1=37 +lat_2=39.5 +lat_0=36 +lon_0=-79.5 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Virginia Lambert",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37],PARAMETER["standard_parallel_2",39.5],PARAMETER["latitude_of_origin",36],PARAMETER["central_meridian",-79.5],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3970"],AXIS["X",EAST],AXIS["Y",NORTH]] GG5 K;mepsgWGS 84 / NSIDC EASE-Grid Global+proj=cea +lon_0=0 +lat_ts=30 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / NSIDC EASE-Grid Global",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Cylindrical_Equal_Area"],PARAMETER["standard_parallel_1",30],PARAMETER["central_meridian",0],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3975"],AXIS["X",EAST],AXIS["Y",NORTH]]  maKepsgWGS 84 / NSIDC Sea Ice Polar Stereographic South+proj=stere +lat_0=-90 +lat_ts=-70 +lon_0=0 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / NSIDC Sea Ice Polar Stereographic South",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-70],PARAMETER["central_meridian",0],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3976"],AXIS["X",UNKNOWN],AXIS["Y",UNKNOWN]] 1 EeAepsgNAD83 / Canada Atlas Lambert+proj=lcc +lat_1=49 +lat_2=77 +lat_0=49 +lon_0=-95 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Canada Atlas Lambert",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",49],PARAMETER["standard_parallel_2",77],PARAMETER["latitude_of_origin",49],PARAMETER["central_meridian",-95],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3978"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] D QKuepsgNAD83(CSRS) / Canada Atlas Lambert+proj=lcc +lat_1=49 +lat_2=77 +lat_0=49 +lon_0=-95 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / Canada Atlas Lambert",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",49],PARAMETER["standard_parallel_2",77],PARAMETER["latitude_of_origin",49],PARAMETER["central_meridian",-95],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3979"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ;(5BO\iv,9FS`mz #0=JWdq~ CepsgC DepsgD EepsgE FepsgF GepsgG HepsgH PepsgP fepsgf gepsgg hepsgh iepsgi jepsgj kepsgk lepsgl mepsgm nepsgn epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg qq  I9epsgKatanga 1955 / Katanga Lambert+proj=lcc +lat_1=-6.5 +lat_2=-11.5 +lat_0=9 +lon_0=26 +x_0=500000 +y_0=500000 +ellps=clrk66 +towgs84=-103.746,-9.614,-255.95,0,0,0,0 +units=m +no_defsPROJCS["Katanga 1955 / Katanga Lambert",GEOGCS["Katanga 1955",DATUM["Katanga_1955",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0],AUTHORITY["EPSG","6695"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4695"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-6.5],PARAMETER["standard_parallel_2",-11.5],PARAMETER["latitude_of_origin",9],PARAMETER["central_meridian",26],PARAMETER["false_easting",500000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","3985"],AXIS["X",EAST],AXIS["Y",NORTH]] L S7epsgKatanga 1955 / Katanga Gauss zone A+proj=tmerc +lat_0=-9 +lon_0=30 +k=1 +x_0=200000 +y_0=500000 +ellps=clrk66 +towgs84=-103.746,-9.614,-255.95,0,0,0,0 +units=m +no_defsPROJCS["Katanga 1955 / Katanga Gauss zone A",GEOGCS["Katanga 1955",DATUM["Katanga_1955",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0],AUTHORITY["EPSG","6695"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4695"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-9],PARAMETER["central_meridian",30],PARAMETER["scale_factor",1],PARAMETER["false_easting",200000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","3986"],AXIS["X",EAST],AXIS["Y",NORTH]] L S7epsgKatanga 1955 / Katanga Gauss zone B+proj=tmerc +lat_0=-9 +lon_0=28 +k=1 +x_0=200000 +y_0=500000 +ellps=clrk66 +towgs84=-103.746,-9.614,-255.95,0,0,0,0 +units=m +no_defsPROJCS["Katanga 1955 / Katanga Gauss zone B",GEOGCS["Katanga 1955",DATUM["Katanga_1955",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0],AUTHORITY["EPSG","6695"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4695"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-9],PARAMETER["central_meridian",28],PARAMETER["scale_factor",1],PARAMETER["false_easting",200000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","3987"],AXIS["X",EAST],AXIS["Y",NORTH]] L S7epsgKatanga 1955 / Katanga Gauss zone C+proj=tmerc +lat_0=-9 +lon_0=26 +k=1 +x_0=200000 +y_0=500000 +ellps=clrk66 +towgs84=-103.746,-9.614,-255.95,0,0,0,0 +units=m +no_defsPROJCS["Katanga 1955 / Katanga Gauss zone C",GEOGCS["Katanga 1955",DATUM["Katanga_1955",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0],AUTHORITY["EPSG","6695"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4695"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-9],PARAMETER["central_meridian",26],PARAMETER["scale_factor",1],PARAMETER["false_easting",200000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","3988"],AXIS["X",EAST],AXIS["Y",NORTH]] AA Q%#epsgPuerto Rico State Plane CS of 1927+proj=lcc +lat_1=18.43333333333333 +lat_2=18.033333333L S7epsgKatanga 1955 / Katanga Gauss zone D+proj=tmerc +lat_0=-9 +lon_0=24 +k=1 +x_0=200000 +y_0=500000 +ellps=clrk66 +towgs84=-103.746,-9.614,-255.95,0,0,0,0 +units=m +no_defsPROJCS["Katanga 1955 / Katanga Gauss zone D",GEOGCS["Katanga 1955",DATUM["Katanga_1955",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0],AUTHORITY["EPSG","6695"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4695"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-9],PARAMETER["central_meridian",24],PARAMETER["scale_factor",1],PARAMETER["false_easting",200000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","3989"],AXIS["X",EAST],AXIS["Y",NORTH]]33333 +lat_0=17.83333333333333 +lon_0=-66.43333333333334 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +towgs84=11,72,-101,0,0,0,0 +units=us-ft +no_defsPROJCS["Puerto Rico State Plane CS of 1927",GEOGCS["Puerto Rico",DATUM["Puerto_Rico",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[11,72,-101,0,0,0,0],AUTHORITY["EPSG","6139"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4139"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",18.43333333333333],PARAMETER["standard_parallel_2",18.03333333333333],PARAMETER["latitude_of_origin",17.83333333333333],PARAMETER["central_meridian",-66.43333333333334],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3991"],AXIS["X",EAST],AXIS["Y",NORTH]]0=17.83333333333333 +lon_0=-66.43333333333334 +x_0=152400.3048006096 +y_0=30480.06096012192 +ellps=clrk66 +towgs84=11,72,-101,0,0,0,0 +units=us-ft +no_defsPROJCS["Puerto Rico / St. Croix",GEOGCS["Puerto Rico",DATUM["Puerto_Rico",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[11,72,-101,0,0,0,0],AUTHORITY["EPSG","6139"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4139"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",18.43333333333333],PARAMETER["standard_parallel_2",18.03333333333333],PARAMETER["latitude_of_origin",17.83333333333333],PARAMETER["central_meridian",-66.43333333333334],PARAMETER["false_easting",500000],PARAMETER["false_northing",100000],AUTHORITY["EPSG","3992"],AXIS["X",EAST],AXIS["Y",NORTH]]   557epsgWGS 84 / Mercator 41+proj=merc +lon_0=100 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / Mercator 41",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Mercator_1SP"],PARAMETER["central_meridian",100],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3994"],AXIS["X",EAST],AXIS["Y",NORTH]] ;EepsgPuerto Rico / St. Croix+proj=lcc +lat_1=18.43333333333333 +lat_2=18.03333333333333 +lat_ k S]/epsgWGS 84 / Arctic Polar Stereographic+proj=stere +lat_0=90 +lat_ts=71 +lon_0=0 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / Arctic Polar Stereographic",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",71],PARAMETER["central_meridian",0],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3995"],AXIS["X",UNKNOWN],AXIS["Y",UNKNOWN]] i Q]-epsgWGS 84 / IBCAO Polar Stereographic+proj=stere +lat_0=90 +lat_ts=75 +lon_0=0 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / IBCAO Polar Stereographic",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",75],PARAMETER["central_meridian",0],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3996"],AXIS["X",UNKNOWN],AXIS["Y",UNKNOWN]] x ;oOepsgWGS 84 / Dubai Local TM+proj=tmerc +lat_0=0 +lon_0=55.33333333333334 +k=1 +x_0=500000 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / Dubai Local TM",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",55.33333333333334],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3997"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] lJlZ"YgepsgUnknown datum based upon the Airy Modified 1849 ellipsoid+proj=longlat +ellps=mod_airy +no_defsGEOGCS["Unknown datum based upon the Airy Modified 1849 ellipsoid",DATUM["Not_specified_based_on_Airy_Modified_1849_ellipsoid",SPHEROID["Airy Modified 1849",6377340.189,299.3249646,AUTHORITY["EPSG","7002"]],AUTHORITY["EPSG","6002"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4002"]]2!mQ1epsgUnknown datum based upon the Airy 1830 ellipsoid+proj=longlat +ellps=airy +no_defsGEOGCS["Unknown datum based upon the Airy 1830 ellipsoid",DATUM["Not_specified_based_on_Airy_1830_ellipsoid",SPHEROID["Airy 1830",6377563.396,299.3249646,AUTHORITY["EPSG","7001"]],AUTHORITY["EPSG","6001"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4001"]] b"b<$qU=epsgUnknown datum based upon the Bessel 1841 ellipsoid+proj=longlat +ellps=bessel +no_defsGEOGCS["Unknown datum based upon the Bessel 1841 ellipsoid",DATUM["Not_specified_based_on_Bessel_1841_ellipsoid",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6004"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4004"]]Z#WiepsgUnknown datum based upon the Australian National Spheroid+proj=longlat +ellps=aust_SA +no_defsGEOGCS["Unknown datum based upon the Australian National Spheroid",DATUM["Not_specified_based_on_Australian_National_Spheroid",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],AUTHORITY["EPSG","6003"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4003"]] ??V&wYgepsgUnknown datum based upon the Bessel Namibia ellipsoid+proj=longlat +ellps=bess_nam +no_defsGEOGCS["Unknown datum based upon the Bessel Namibia ellipsoid",DATUM["Not_specified_based_on_Bessel_Namibia_ellipsoid",SPHEROID["Bessel Namibia (GLM)",6377483.865280419,299.1528128,AUTHORITY["EPSG","7046"]],AUTHORITY["EPSG","6006"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4006"]]c% yUepsgUnknown datum based upon the Bessel Modified ellipsoid+proj=longlat +a=6377492.018 +b=6356173.508712696 +no_defsGEOGCS["Unknown datum based upon the Bessel Modified ellipsoid",DATUM["Not_specified_based_on_Bessel_Modified_ellipsoid",SPHEROID["Bessel Modified",6377492.018,299.1528128,AUTHORITY["EPSG","7005"]],AUTHORITY["EPSG","6005"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4005"]] SS@(qUEepsgUnknown datum based upon the Clarke 1866 ellipsoid+proj=longlat +ellps=clrk66 +no_defsGEOGCS["Unknown datum based upon the Clarke 1866 ellipsoid",DATUM["Not_specified_based_on_Clarke_1866_ellipsoid",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6008"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4008"]]e' q UepsgUnknown datum based upon the Clarke 1858 ellipsoid+proj=longlat +a=6378293.645208759 +b=6356617.987679838 +no_defsGEOGCS["Unknown datum based upon the Clarke 1858 ellipsoid",DATUM["Not_specified_based_on_Clarke_1858_ellipsoid",SPHEROID["Clarke 1858",6378293.645208759,294.2606763692569,AUTHORITY["EPSG","7007"]],AUTHORITY["EPSG","6007"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4007"]]  )  epsgUnknown datum based upon the Clarke 1866 Michigan ellipsoid+proj=longlat +a=6378450.047548896 +b=6356826.621488444 +no_defsGEOGCS["Unknown datum based upon the Clarke 1866 Michigan ellipsoid",DATUM["Not_specified_based_on_Clarke_1866_Michigan_ellipsoid",SPHEROID["Clarke 1866 Michigan",6378450.047548896,294.9786971646739,AUTHORITY["EPSG","7009"]],AUTHORITY["EPSG","6009"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4009"]] ##`+}ieepsgUnknown datum based upon the Clarke 1880 (IGN) ellipsoid+proj=longlat +a=6378249.2 +b=6356515 +no_defsGEOGCS["Unknown datum based upon the Clarke 1880 (IGN) ellipsoid",DATUM["Not_specified_based_on_Clarke_1880_IGN_ellipsoid",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],AUTHORITY["EPSG","6011"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4011"]]u* u{epsgUnknown datum based upon the Clarke 1880 (Benoit) ellipsoid+proj=longlat +a=6378300.789 +b=6356566.435 +no_defsGEOGCS["Unknown datum based upon the Clarke 1880 (Benoit) ellipsoid",DATUM["Not_specified_based_on_Clarke_1880_Benoit_ellipsoid",SPHEROID["Clarke 1880 (Benoit)",6378300.789,293.4663155389802,AUTHORITY["EPSG","7010"]],AUTHORITY["EPSG","6010"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4010"]] A.Ai- }]epsgUnknown datum based upon the Clarke 1880 (Arc) ellipsoid+proj=longlat +a=6378249.145 +b=6356514.966398753 +no_defsGEOGCS["Unknown datum based upon the Clarke 1880 (Arc) ellipsoid",DATUM["Not_specified_based_on_Clarke_1880_Arc_ellipsoid",SPHEROID["Clarke 1880 (Arc)",6378249.145,293.4663077,AUTHORITY["EPSG","7013"]],AUTHORITY["EPSG","6013"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4013"]]N,}UUepsgUnknown datum based upon the Clarke 1880 (RGS) ellipsoid+proj=longlat +ellps=clrk80 +no_defsGEOGCS["Unknown datum based upon the Clarke 1880 (RGS) ellipsoid",DATUM["Not_specified_based_on_Clarke_1880_RGS_ellipsoid",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6012"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4012"]] w. }sepsgUnknown datum based upon the Clarke 1880 (SGA 1922) ellipsoid+proj=longlat +a=6378249.2 +b=6356514.996941779 +no_defsGEOGCS["Unknown datum based upon the Clarke 1880 (SGA 1922) ellipsoid",DATUM["Not_specified_based_on_Clarke_1880_SGA_1922_ellipsoid",SPHEROID["Clarke 1880 (SGA 1922)",6378249.2,293.46598,AUTHORITY["EPSG","7014"]],AUTHORITY["EPSG","6014"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4014"]] / %epsgUnknown datum based upon the Everest 1830 (1937 Adjustment) ellipsoid+proj=longlat +a=6377276.345 +b=6356075.41314024 +no_defsGEOGCS["Unknown datum based upon the Everest 1830 (1937 Adjustment) ellipsoid",DATUM["Not_specified_based_on_Everest_1830_1937_Adjustment_ellipsoid",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],AUTHORITY["EPSG","6015"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4015"]] 0 W%epsgUnknown datum based upon the Everest 1830 (1967 Definition) ellipsoid+proj=longlat +ellps=evrstSS +no_defsGEOGCS["Unknown datum based upon the Everest 1830 (1967 Definition) ellipsoid",DATUM["Not_specified_based_on_Everest_1830_1967_Definition_ellipsoid",SPHEROID["Everest 1830 (1967 Definition)",6377298.556,300.8017,AUTHORITY["EPSG","7016"]],AUTHORITY["EPSG","6016"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4016"]] RR-3kS'epsgUnknown datum based upon the GRS 1980 ellipsoid+proj=longlat +ellps=GRS80 +no_defsGEOGCS["Unknown datum based upon the GRS 1980 ellipsoid",DATUM["Not_specified_based_on_GRS_1980_ellipsoid",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6019"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4019"]]y2 sepsgUnknown datum based upon the Everest 1830 Modified ellipsoid+proj=longlat +a=6377304.063 +b=6356103.038993155 +no_defsGEOGCS["Unknown datum based upon the Everest 1830 Modified ellipsoid",DATUM["Not_specified_based_on_Everest_1830_Modified_ellipsoid",SPHEROID["Everest 1830 Modified",6377304.063,300.8017,AUTHORITY["EPSG","7018"]],AUTHORITY["EPSG","6018"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4018"]] VEVk5wkepsgUnknown datum based upon the Indonesian National Spheroid+proj=longlat +a=6378160 +b=6356774.50408554 +no_defsGEOGCS["Unknown datum based upon the Indonesian National Spheroid",DATUM["Not_specified_based_on_Indonesian_National_Spheroid",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],AUTHORITY["EPSG","6021"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4021"]]74sW/epsgUnknown datum based upon the Helmert 1906 ellipsoid+proj=longlat +ellps=helmert +no_defsGEOGCS["Unknown datum based upon the Helmert 1906 ellipsoid",DATUM["Not_specified_based_on_Helmert_1906_ellipsoid",SPHEROID["Helmert 1906",6378200,298.3,AUTHORITY["EPSG","7020"]],AUTHORITY["EPSG","6020"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4020"]] 2A7SepsgMOLDREF99+proj=longlat +ellps=GRS80 +no_defsGEOGCS["MOLDREF99",DATUM["MOLDREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1032"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4023"]]J6QOepsgUnknown datum based upon the International 1924 ellipsoid+proj=longlat +ellps=intl +no_defsGEOGCS["Unknown datum based upon the International 1924 ellipsoid",DATUM["Not_specified_based_on_International_1924_ellipsoid",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6022"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4022"]] ;9gS epsgUnknown datum based upon the NWL 9D ellipsoid+proj=longlat +ellps=WGS66 +no_defsGEOGCS["Unknown datum based upon the NWL 9D ellipsoid",DATUM["Not_specified_based_on_NWL_9D_ellipsoid",SPHEROID["NWL 9D",6378145,298.25,AUTHORITY["EPSG","7025"]],AUTHORITY["EPSG","6025"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4025"]]A8ySAepsgUnknown datum based upon the Krassowsky 1940 ellipsoid+proj=longlat +ellps=krass +no_defsGEOGCS["Unknown datum based upon the Krassowsky 1940 ellipsoid",DATUM["Not_specified_based_on_Krassowsky_1940_ellipsoid",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6024"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4024"]] m: 9k?epsgMOLDREF99 / Moldova TM+proj=tmerc +lat_0=0 +lon_0=28.4 +k=0.9999400000000001 +x_0=200000 +y_0=-5000000 +ellps=GRS80 +units=m +no_defsPROJCS["MOLDREF99 / Moldova TM",GEOGCS["MOLDREF99",DATUM["MOLDREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1032"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4023"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",28.4],PARAMETER["scale_factor",0.99994],PARAMETER["false_easting",200000],PARAMETER["false_northing",-5000000],AUTHORITY["EPSG","4026"],AXIS["X",NORTH],AXIS["Y",EAST]] f3fI<q}/epsgUnknown datum based upon the Struve 1860 ellipsoid+proj=longlat +a=6378298.3 +b=6356657.142669561 +no_defsGEOGCS["Unknown datum based upon the Struve 1860 ellipsoid",DATUM["Not_specified_based_on_Struve_1860_ellipsoid",SPHEROID["Struve 1860",6378298.3,294.73,AUTHORITY["EPSG","7028"]],AUTHORITY["EPSG","6028"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4028"]]I;sy1epsgUnknown datum based upon the Plessis 1817 ellipsoid+proj=longlat +a=6376523 +b=6355862.933255573 +no_defsGEOGCS["Unknown datum based upon the Plessis 1817 ellipsoid",DATUM["Not_specified_based_on_Plessis_1817_ellipsoid",SPHEROID["Plessis 1817",6376523,308.64,AUTHORITY["EPSG","7027"]],AUTHORITY["EPSG","6027"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4027"]] >%>gSepsgUnknown datum based upon the WGS 84 ellipsoid+proj=longlat +ellps=WGS84 +no_defsGEOGCS["Unknown datum based upon the WGS 84 ellipsoid",DATUM["Not_specified_based_on_WGS_84_ellipsoid",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6030"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4030"]]>=oyepsgUnknown datum based upon the War Office ellipsoid+proj=longlat +a=6378300 +b=6356751.689189189 +no_defsGEOGCS["Unknown datum based upon the War Office ellipsoid",DATUM["Not_specified_based_on_War_Office_ellipsoid",SPHEROID["War Office",6378300,296,AUTHORITY["EPSG","7029"]],AUTHORITY["EPSG","6029"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4029"]] S<@g}epsgUnknown datum based upon the OSU86F ellipsoid+proj=longlat +a=6378136.2 +b=6356751.516927429 +no_defsGEOGCS["Unknown datum based upon the OSU86F ellipsoid",DATUM["Not_specified_based_on_OSU86F_ellipsoid",SPHEROID["OSU86F",6378136.2,298.257223563,AUTHORITY["EPSG","7032"]],AUTHORITY["EPSG","6032"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4032"]])?iS!epsgUnknown datum based upon the GEM 10C ellipsoid+proj=longlat +ellps=WGS84 +no_defsGEOGCS["Unknown datum based upon the GEM 10C ellipsoid",DATUM["Not_specified_based_on_GEM_10C_ellipsoid",SPHEROID["GEM 10C",6378137,298.257223563,AUTHORITY["EPSG","7031"]],AUTHORITY["EPSG","6031"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4031"]] W@WeB q UepsgUnknown datum based upon the Clarke 1880 ellipsoid+proj=longlat +a=6378249.144808011 +b=6356514.966204134 +no_defsGEOGCS["Unknown datum based upon the Clarke 1880 ellipsoid",DATUM["Not_specified_based_on_Clarke_1880_ellipsoid",SPHEROID["Clarke 1880",6378249.144808011,293.4663076556349,AUTHORITY["EPSG","7034"]],AUTHORITY["EPSG","6034"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4034"]]DJPV\bhntz "(.4:@FLRX^djpv|"$&()+-./03579:<>@BDEFIKLNOPQRSUWXYZ[\]^_gŸqğrşsƠǠȠɠ ʠ"ˠ$̠&͠(Π*Ϡ,Р.Ѡ0Ҡ2Ӡ4Ԡ6ՠ8֠:נ<ؠ>٠@ڠB۠DݠFޠHߠJLNPSUWY]_acegikmprtvx{}   wr ;epsgREGCAN95 / UTM zone 27N+proj=utm +zone=27 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["REGCAN95 / UTM zone 27N",GEOGCS["REGCAN95",DATUM["Red_Geodesica_de_Canarias_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1035"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4081"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-21],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","4082"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ws ;epsgREGCAN95 / UTM zone 28N+proj=utm +zone=28 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["REGCAN95 / UTM zone 28N",GEOGCS["REGCAN95",DATUM["Red_Geodesica_de_Canarias_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1035"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4081"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","4083"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 33 oepsgGGRS87+proj=longlat +ellps=GRS80 +datum=GGRS87 +no_defsGEOGCS["GGRS87",DATUM["Greek_Geodetic_Reference_System_1987",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[-199.87,74.79,246.62,0,0,0,0],AUTHORITY["EPSG","6121"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4121"]];UepsgGreek+proj=longlat +ellps=bessel +no_defsGEOGCS["Greek",DATUM["Greek",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6120"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4120"]] 66OQEepsgKKJ+proj=longlat +ellps=intl +no_defsGEOGCS["KKJ",DATUM["Kartastokoordinaattijarjestelma_1966",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6123"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4123"]]syaepsgATS77+proj=longlat +a=6378135 +b=6356750.304921594 +no_defsGEOGCS["ATS77",DATUM["Average_Terrestrial_System_1977",SPHEROID["Average Terrestrial System 1977",6378135,298.257,AUTHORITY["EPSG","7041"]],AUTHORITY["EPSG","6122"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4122"]]   !gepsgSamboja+proj=longlat +ellps=bessel +towgs84=-404.78,685.68,45.47,0,0,0,0 +no_defsGEOGCS["Samboja",DATUM["Samboja",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-404.78,685.68,45.47,0,0,0,0],AUTHORITY["EPSG","6125"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4125"]]OU?epsgRT90+proj=longlat +ellps=bessel +no_defsGEOGCS["RT90",DATUM["Rikets_koordinatsystem_1990",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6124"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4124"]] fK U-epsg Madzansua+proj=longlat +ellps=clrk66 +no_defsGEOGCS["Madzansua",DATUM["Madzansua",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6128"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4128"]]<UepsgTete+proj=longlat +ellps=clrk66 +no_defsGEOGCS["Tete",DATUM["Tete",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6127"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4127"]]V)S;epsgLKS94 (ETRS89)+proj=longlat +ellps=GRS80 +no_defsGEOGCS["LKS94 (ETRS89)",DATUM["Lithuania_1994_ETRS89",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6126"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4126"]] 22r" Mepsg"Moznet+proj=longlat +ellps=WGS84 +towgs84=0,0,0,-0,-0,-0,0 +no_defsGEOGCS["Moznet",DATUM["Moznet_ITRF94",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,-0,-0,-0,0],AUTHORITY["EPSG","6130"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4130"]]T!%U9epsg!Observatario+proj=longlat +ellps=clrk66 +no_defsGEOGCS["Observatario",DATUM["Observatario",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6129"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4129"]] @@F$U-epsg$FD58+proj=longlat +ellps=clrk80 +no_defsGEOGCS["FD58",DATUM["Final_Datum_1958",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6132"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4132"]]r##Mepsg#Indian 1960+proj=longlat +a=6377276.345 +b=6356075.41314024 +no_defsGEOGCS["Indian 1960",DATUM["Indian_1960",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],AUTHORITY["EPSG","6131"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4131"]] KM&U9epsg&PSD93+proj=longlat +ellps=clrk80 +no_defsGEOGCS["PSD93",DATUM["PDO_Survey_Datum_1993",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6134"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4134"]]1% G epsg%EST92+proj=longlat +ellps=GRS80 +towgs84=0.055,-0.541,-0.185,0.0183,-0.0003,-0.007,-0.014 +no_defsGEOGCS["EST92",DATUM["Estonia_1992",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0.055,-0.541,-0.185,0.0183,-0.0003,-0.007,-0.014],AUTHORITY["EPSG","6133"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4133"]] <<h(3USepsg(St. Lawrence Island+proj=longlat +ellps=clrk66 +no_defsGEOGCS["St. Lawrence Island",DATUM["St_Lawrence_Island",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6136"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4136"]]T'%U9epsg'Old Hawaiian+proj=longlat +ellps=clrk66 +no_defsGEOGCS["Old Hawaiian",DATUM["Old_Hawaiian",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6135"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4135"]] ::b*/UKepsg*St. George Island+proj=longlat +ellps=clrk66 +no_defsGEOGCS["St. George Island",DATUM["St_George_Island",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6138"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4138"]]\)+UCepsg)St. Paul Island+proj=longlat +ellps=clrk66 +no_defsGEOGCS["St. Paul Island",DATUM["St_Paul_Island",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6137"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4137"]] r, ' epsg,NAD83(CSRS98)+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]] + # mepsg+Puerto Rico+proj=longlat +ellps=clrk66 +towgs84=11,72,-101,0,0,0,0 +no_defsGEOGCS["Puerto Rico",DATUM["Puerto_Rico",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[11,72,-101,0,0,0,0],AUTHORITY["EPSG","6139"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4139"]]  . %oepsg.Locodjo 1965+proj=longlat +ellps=clrk80 +towgs84=-125,53,467,0,0,0,0 +no_defsGEOGCS["Locodjo 1965",DATUM["Locodjo_1965",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-125,53,467,0,0,0,0],AUTHORITY["EPSG","6142"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4142"]]o-  Eepsg-Israel+proj=longlat +ellps=GRS80 +towgs84=-48,55,52,0,0,0,0 +no_defsGEOGCS["Israel",DATUM["Israel",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[-48,55,52,0,0,0,0],AUTHORITY["EPSG","6141"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4141"]] c{0)Yepsg0Kalianpur 1937+proj=longlat +a=6377276.345 +b=6356075.41314024 +no_defsGEOGCS["Kalianpur 1937",DATUM["Kalianpur_1937",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],AUTHORITY["EPSG","6144"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4144"]]/ %{epsg/Abidjan 1987+proj=longlat +ellps=clrk80 +towgs84=-124.76,53,466.79,0,0,0,0 +no_defsGEOGCS["Abidjan 1987",DATUM["Abidjan_1987",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-124.76,53,466.79,0,0,0,0],AUTHORITY["EPSG","6143"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4143"]] |:2 );epsg2Kalianpur 1975+proj=longlat +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +no_defsGEOGCS["Kalianpur 1975",DATUM["Kalianpur_1975",SPHEROID["Everest 1830 (1975 Definition)",6377299.151,300.8017255,AUTHORITY["EPSG","7045"]],TOWGS84[295,736,257,0,0,0,0],AUTHORITY["EPSG","6146"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4146"]]1 )_epsg1Kalianpur 1962+proj=longlat +a=6377301.243 +b=6356100.230165384 +no_defsGEOGCS["Kalianpur 1962",DATUM["Kalianpur_1962",SPHEROID["Everest 1830 (1962 Definition)",6377301.243,300.8017255,AUTHORITY["EPSG","7044"]],AUTHORITY["EPSG","6145"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4145"]] j4 -aepsg4Hartebeesthoek94+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["Hartebeesthoek94",DATUM["Hartebeesthoek94",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6148"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4148"]]3 !!kepsg3Hanoi 1972+proj=longlat +ellps=krass +towgs84=-17.51,-108.32,-62.39,0,0,0,0 +no_defsGEOGCS["Hanoi 1972",DATUM["Hanoi_1972",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[-17.51,-108.32,-62.39,0,0,0,0],AUTHORITY["EPSG","6147"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4147"]] m6 %kepsg6CH1903++proj=longlat +ellps=bessel +towgs84=674.374,15.056,405.346,0,0,0,0 +no_defsGEOGCS["CH1903+",DATUM["CH1903",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[674.374,15.056,405.346,0,0,0,0],AUTHORITY["EPSG","6150"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4150"]]5 %iepsg5CH1903+proj=longlat +ellps=bessel +towgs84=674.374,15.056,405.346,0,0,0,0 +no_defsGEOGCS["CH1903",DATUM["CH1903",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[674.374,15.056,405.346,0,0,0,0],AUTHORITY["EPSG","6149"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4149"]] s`8#SUepsg8NAD83(HARN)+proj=longlat +ellps=GRS80 +no_defsGEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]] 7 epsg7CHTRF95+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["CHTRF95",DATUM["Swiss_Terrestrial_Reference_Frame_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6151"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4151"]] hQ:!Q;epsg:ED50(ED77)+proj=longlat +ellps=intl +no_defsGEOGCS["ED50(ED77)",DATUM["European_Datum_1950_1977",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6154"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4154"]]9 !!oepsg9Rassadiran+proj=longlat +ellps=intl +towgs84=-133.63,-157.5,-158.62,0,0,0,0 +no_defsGEOGCS["Rassadiran",DATUM["Rassadiran",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-133.63,-157.5,-158.62,0,0,0,0],AUTHORITY["EPSG","6153"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4153"]] ba<U_epsg'Q+epsg>Naparima 1955+proj=longlat +ellps=intl +no_defsGEOGCS["Naparima 1955",DATUM["Naparima_1955",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6158"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4158"]]y= % Iepsg=Mount Dillon+proj=longlat +a=6378293.645208759 +b=6356617.987679838 +no_defsGEOGCS["Mount Dillon",DATUM["Mount_Dillon",SPHEROID["Clarke 1858",6378293.645208759,294.2606763692569,AUTHORITY["EPSG","7007"]],AUTHORITY["EPSG","6157"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4157"]] ]]R@+Q3epsg@Chos Malal 1914+proj=longlat +ellps=intl +no_defsGEOGCS["Chos Malal 1914",DATUM["Chos_Malal_1914",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6160"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4160"]]I?Q5epsg?ELD79+proj=longlat +ellps=intl +no_defsGEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]]  b SB#U9epsgBKorean 1985+proj=longlat +ellps=bessel +no_defsGEOGCS["Korean 1985",DATUM["Korean_Datum_1985",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6162"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4162"]]A 1}epsgAPampa del Castillo+proj=longlat +ellps=intl +towgs84=27.5,14,186.4,0,0,0,0 +no_defsGEOGCS["Pampa del Castillo",DATUM["Pampa_del_Castillo",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[27.5,14,186.4,0,0,0,0],AUTHORITY["EPSG","6161"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4161"]] oD # [epsgDSouth Yemen+proj=longlat +ellps=krass +towgs84=-76,-138,67,0,0,0,0 +no_defsGEOGCS["South Yemen",DATUM["South_Yemen",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[-76,-138,67,0,0,0,0],AUTHORITY["EPSG","6164"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4164"]] C #epsgCYemen NGN96+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["Yemen NGN96",DATUM["Yemen_National_Geodetic_Network_1996",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6163"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4163"]] ;(5BO\iv,9FS`mz #0=JWdq~ -epsg- .epsg. /epsg/ 0epsg0 1epsg1 2epsg2 3epsg3 4epsg4 5epsg5 6epsg6 7epsg7 8epsg8 9epsg9 :epsg: ;epsg; epsg> ?epsg? @epsg@ AepsgA BepsgB CepsgC DepsgD EepsgE FepsgF GepsgG HepsgH IepsgI JepsgJ KepsgK LepsgL MepsgM NepsgN OepsgO PepsgP RepsgR SepsgS TepsgT UepsgU VepsgV WepsgW XepsgX YepsgY \epsg\ ]epsg] ^epsg^ _epsg_ `epsg` aepsga bepsgb cepsgc depsgd eepsge fepsgf gepsgg hepsgh iepsgi jepsgj   zF #YepsgFKorean 1995+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["Korean 1995",DATUM["Korean_Datum_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6166"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4166"]]rE  IepsgEBissau+proj=longlat +ellps=intl +towgs84=-173,253,27,0,0,0,0 +no_defsGEOGCS["Bissau",DATUM["Bissau",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-173,253,27,0,0,0,0],AUTHORITY["EPSG","6165"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4165"]] 4x4@Hy{epsgHAccra+proj=longlat +a=6378300 +b=6356751.689189189 +no_defsGEOGCS["Accra",DATUM["Accra",SPHEROID["War Office",6378300,296,AUTHORITY["EPSG","7029"]],AUTHORITY["EPSG","6168"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4168"]]G sepsgGNZGD2000+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]] V&J #1epsgJSIRGAS 1995+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]]&I 3epsgIAmerican Samoa 1962+proj=longlat +ellps=clrk66 +towgs84=-115,118,426,0,0,0,0 +no_defsGEOGCS["American Samoa 1962",DATUM["American_Samoa_1962",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-115,118,426,0,0,0,0],AUTHORITY["EPSG","6169"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4169"]] ~L oepsgLPOSGAR+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["POSGAR",DATUM["Posiciones_Geodesicas_Argentinas",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6172"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4172"]]~K mepsgKRGF93+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["RGF93",DATUM["Reseau_Geodesique_Francais_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6171"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4171"]]   kN/y9epsgNSierra Leone 1924+proj=longlat +a=6378300 +b=6356751.689189189 +no_defsGEOGCS["Sierra Leone 1924",DATUM["Sierra_Leone_Colony_1924",SPHEROID["War Office",6378300,296,AUTHORITY["EPSG","7029"]],AUTHORITY["EPSG","6174"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4174"]]mM EepsgMIRENET95+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["IRENET95",DATUM["IRENET95",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6173"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4173"]] dP 5 epsgPAustralian Antarctic+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["Australian Antarctic",DATUM["Australian_Antarctic_Datum_1998",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6176"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4176"]]O / epsgOSierra Leone 1968+proj=longlat +ellps=clrk80 +towgs84=-88,4,101,0,0,0,0 +no_defsGEOGCS["Sierra Leone 1968",DATUM["Sierra_Leone_1968",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-88,4,101,0,0,0,0],AUTHORITY["EPSG","6175"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4175"]] } S -=3epsgSPulkovo 1942(58)+proj=longlat +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +no_defsGEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]]R -'3epsgRPulkovo 1942(83)+proj=longlat +ellps=krass +towgs84=24,-123,-94,0.02,-0.25,-0.13,1.1 +no_defsGEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]] 5U +3epsgULuxembourg 1930+proj=longlat +ellps=intl +towgs84=-193,13.7,-39.3,-0.41,-2.933,2.688,0.43 +no_defsGEOGCS["Luxembourg 1930",DATUM["Luxembourg_1930",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-193,13.7,-39.3,-0.41,-2.933,2.688,0.43],AUTHORITY["EPSG","6181"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4181"]]kT GepsgTEST97+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["EST97",DATUM["Estonia_1997",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6180"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4180"]] #W 3 epsgWAzores Central 1948+proj=longlat +ellps=intl +towgs84=-104,167,-38,0,0,0,0 +no_defsGEOGCS["Azores Central 1948",DATUM["Azores_Central_Islands_1948",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-104,167,-38,0,0,0,0],AUTHORITY["EPSG","6183"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4183"]]oV9Q_epsgVAzores Occidental 1939+proj=longlat +ellps=intl +no_defsGEOGCS["Azores Occidental 1939",DATUM["Azores_Occidental_Islands_1939",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6182"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4182"]]  X HY%Q%epsgYMadeira 1936+proj=longlat +ellps=intl +no_defsGEOGCS["Madeira 1936",DATUM["Madeira_1936",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6185"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4185"]]$X 5 epsgXAzores Oriental 1940+proj=longlat +ellps=intl +towgs84=-203,141,53,0,0,0,0 +no_defsGEOGCS["Azores Oriental 1940",DATUM["Azores_Oriental_Islands_1940",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-203,141,53,0,0,0,0],AUTHORITY["EPSG","6184"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4184"]] Ly] aepsg]REGVEN+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["REGVEN",DATUM["Red_Geodesica_Venezolana",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6189"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4189"]]0\ = epsg\OSNI 1952+proj=longlat +ellps=airy +towgs84=482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15 +no_defsGEOGCS["OSNI 1952",DATUM["OSNI_1952",SPHEROID["Airy 1830",6377563.396,299.3249646,AUTHORITY["EPSG","7001"]],TOWGS84[482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15],AUTHORITY["EPSG","6188"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4188"]] OOL_'S)epsg_Albanian 1987+proj=longlat +ellps=krass +no_defsGEOGCS["Albanian 1987",DATUM["Albanian_1987",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6191"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4191"]]]^SSepsg^POSGAR 98+proj=longlat +ellps=GRS80 +no_defsGEOGCS["POSGAR 98",DATUM["Posiciones_Geodesicas_Argentinas_1998",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6190"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4190"]] k*a #1 epsgaManoca 1962+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-70.9,-151.8,-41.4,0,0,0,0 +no_defsGEOGCS["Manoca 1962",DATUM["Manoca_1962",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-70.9,-151.8,-41.4,0,0,0,0],AUTHORITY["EPSG","6193"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4193"]]` #mepsg`Douala 1948+proj=longlat +ellps=intl +towgs84=-206.1,-174.7,-87.7,0,0,0,0 +no_defsGEOGCS["Douala 1948",DATUM["Douala_1948",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-206.1,-174.7,-87.7,0,0,0,0],AUTHORITY["EPSG","6192"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4192"]]   'c / epsgcScoresbysund 1952+proj=longlat +ellps=intl +towgs84=105,326,-102.5,0,0,0.814,-0.6 +no_defsGEOGCS["Scoresbysund 1952",DATUM["Scoresbysund_1952",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[105,326,-102.5,0,0,0.814,-0.6],AUTHORITY["EPSG","6195"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4195"]]Fb#Q#epsgbQornoq 1927+proj=longlat +ellps=intl +no_defsGEOGCS["Qornoq 1927",DATUM["Qornoq_1927",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6194"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4194"]] _@eUepsgeGaroua+proj=longlat +ellps=clrk80 +no_defsGEOGCS["Garoua",DATUM["Garoua",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6197"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4197"]]d +}epsgdAmmassalik 1958+proj=longlat +ellps=intl +towgs84=-45,417,-3.5,0,0,0.814,-0.6 +no_defsGEOGCS["Ammassalik 1958",DATUM["Ammassalik_1958",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-45,417,-3.5,0,0,0.814,-0.6],AUTHORITY["EPSG","6196"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4196"]] ooCg!QepsggEgypt 1930+proj=longlat +ellps=intl +no_defsGEOGCS["Egypt 1930",DATUM["Egypt_1930",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6199"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4199"]]FfU%epsgfKousseri+proj=longlat +ellps=clrk80 +no_defsGEOGCS["Kousseri",DATUM["Kousseri",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6198"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4198"]]  T CiU!epsgiAdindan+proj=longlat +ellps=clrk80 +no_defsGEOGCS["Adindan",DATUM["Adindan",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6201"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4201"]](h %1epsghPulkovo 1995+proj=longlat +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +no_defsGEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]] >>]kWWepsgkAGD84+proj=longlat +ellps=aust_SA +no_defsGEOGCS["AGD84",DATUM["Australian_Geodetic_Datum_1984",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],AUTHORITY["EPSG","6203"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4203"]]]jWWepsgjAGD66+proj=longlat +ellps=aust_SA +no_defsGEOGCS["AGD66",DATUM["Australian_Geodetic_Datum_1966",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],AUTHORITY["EPSG","6202"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4202"]] ;;um  KepsgmAfgooye+proj=longlat +ellps=krass +towgs84=-43,-163,45,0,0,0,0 +no_defsGEOGCS["Afgooye",DATUM["Afgooye",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[-43,-163,45,0,0,0,0],AUTHORITY["EPSG","6205"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4205"]]Hl!Q)epsglAin el Abd+proj=longlat +ellps=intl +no_defsGEOGCS["Ain el Abd",DATUM["Ain_el_Abd_1970",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6204"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4204"]] 2j24pQ epsgpAratu+proj=longlat +ellps=intl +no_defsGEOGCS["Aratu",DATUM["Aratu",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6208"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4208"]]>C=!QepsgQatar 1974+proj=longlat +ellps=intl +no_defsGEOGCS["Qatar 1974",DATUM["Qatar_1974",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6285"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4285"]]w<%SepsgPulkovo 1942+proj=longlat +ellps=krass +no_defsGEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]] CCs?  IepsgQornoq+proj=longlat +ellps=intl +towgs84=164,138,-189,0,0,0,0 +no_defsGEOGCS["Qornoq",DATUM["Qornoq",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[164,138,-189,0,0,0,0],AUTHORITY["EPSG","6287"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4287"]]B>!WepsgQatar 1948+proj=longlat +ellps=helmert +no_defsGEOGCS["Qatar 1948",DATUM["Qatar_1948",SPHEROID["Helmert 1906",6378200,298.3,AUTHORITY["EPSG","7020"]],AUTHORITY["EPSG","6286"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4286"]] ;(5BO\iv,9FS`mz #0=JWdq~ epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg bHCS1epsgSAD69+proj=longlat +ellps=GRS67 +no_defsGEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]]JA!U)epsgAmersfoort+proj=longlat +ellps=bessel +no_defsGEOGCS["Amersfoort",DATUM["Amersfoort",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6289"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4289"]]L@'Q+epsgLoma Quintana+proj=longlat +ellps=intl +no_defsGEOGCS["Loma Quintana",DATUM["Loma_Quintana",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6288"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4288"]] n[E!YGepsgSchwarzeck+proj=longlat +ellps=bess_nam +no_defsGEOGCS["Schwarzeck",DATUM["Schwarzeck",SPHEROID["Bessel Namibia (GLM)",6377483.865280419,299.1528128,AUTHORITY["EPSG","7046"]],AUTHORITY["EPSG","6293"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4293"]]D - oepsgSapper Hill 1943+proj=longlat +ellps=intl +towgs84=-355,21,72,0,0,0,0 +no_defsGEOGCS["Sapper Hill 1943",DATUM["Sapper_Hill_1943",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-355,21,72,0,0,0,0],AUTHORITY["EPSG","6292"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4292"]] "t"NHi'epsgSudan+proj=longlat +a=6378249.2 +b=6356515 +no_defsGEOGCS["Sudan",DATUM["Sudan",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],AUTHORITY["EPSG","6296"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4296"]]GGU%epsgSerindung+proj=longlat +ellps=bessel +no_defsGEOGCS["Serindung",DATUM["Serindung",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6295"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4295"]]=FUepsgSegora+proj=longlat +ellps=bessel +no_defsGEOGCS["Segora",DATUM["Segora",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6294"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4294"]]  u dJ'WUepsgTimbalai 1948+proj=longlat +ellps=evrstSS +no_defsGEOGCS["Timbalai 1948",DATUM["Timbalai_1948",SPHEROID["Everest 1830 (1967 Definition)",6377298.556,300.8017,AUTHORITY["EPSG","7016"]],AUTHORITY["EPSG","6298"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4298"]]I !gepsgTananarive+proj=longlat +ellps=intl +towgs84=-189,-242,-91,0,0,0,0 +no_defsGEOGCS["Tananarive",DATUM["Tananarive_1925",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-189,-242,-91,0,0,0,0],AUTHORITY["EPSG","6297"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4297"]] W;MUepsgTokyo+proj=longlat +ellps=bessel +no_defsGEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]]SLYCepsgTM75+proj=longlat +ellps=mod_airy +no_defsGEOGCS["TM75",DATUM["Geodetic_Datum_of_1965",SPHEROID["Airy Modified 1849",6377340.189,299.3249646,AUTHORITY["EPSG","7002"]],AUTHORITY["EPSG","6300"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4300"]]NKsepsgTM65+proj=longlat +ellps=mod_airy +datum=ire65 +no_defsGEOGCS["TM65",DATUM["TM65",SPHEROID["Airy Modified 1849",6377340.189,299.3249646,AUTHORITY["EPSG","7002"]],AUTHORITY["EPSG","6299"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4299"]] 66FOW#epsgTC(1948)+proj=longlat +ellps=helmert +no_defsGEOGCS["TC(1948)",DATUM["Trucial_Coast_1948",SPHEROID["Helmert 1906",6378200,298.3,AUTHORITY["EPSG","7020"]],AUTHORITY["EPSG","6303"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4303"]]|N ' MepsgTrinidad 1903+proj=longlat +a=6378293.645208759 +b=6356617.987679838 +no_defsGEOGCS["Trinidad 1903",DATUM["Trinidad_1903",SPHEROID["Clarke 1858",6378293.645208759,294.2606763692569,AUTHORITY["EPSG","7007"]],AUTHORITY["EPSG","6302"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4302"]] ^GRU%epsgBern 1938+proj=longlat +ellps=bessel +no_defsGEOGCS["Bern 1938",DATUM["Bern_1938",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6306"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4306"]]P #%}epsgVoirol 1875+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-73,-247,227,0,0,0,0 +no_defsGEOGCS["Voirol 1875",DATUM["Voirol_1875",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-73,-247,227,0,0,0,0],AUTHORITY["EPSG","6304"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4304"]] XXBTU%epsgRT38+proj=longlat +ellps=bessel +no_defsGEOGCS["RT38",DATUM["Stockholm_1938",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6308"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4308"]]^S-UEepsgNord Sahara 1959+proj=longlat +ellps=clrk80 +no_defsGEOGCS["Nord Sahara 1959",DATUM["Nord_Sahara_1959",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6307"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4307"]] ::LVi%epsgYoff+proj=longlat +a=6378249.2 +b=6356515 +no_defsGEOGCS["Yoff",DATUM["Yoff",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],AUTHORITY["EPSG","6310"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4310"]]rU  IepsgYacare+proj=longlat +ellps=intl +towgs84=-155,171,37,0,0,0,0 +no_defsGEOGCS["Yacare",DATUM["Yacare",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-155,171,37,0,0,0,0],AUTHORITY["EPSG","6309"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4309"]] X5epsgMGI+proj=longlat +ellps=bessel +datum=hermannskogel +no_defsGEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4312"]]|W UepsgZanderij+proj=longlat +ellps=intl +towgs84=-265,120,-358,0,0,0,0 +no_defsGEOGCS["Zanderij",DATUM["Zanderij",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-265,120,-358,0,0,0,0],AUTHORITY["EPSG","6311"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4311"]] *^Zs?epsgDHDN+proj=longlat +ellps=bessel +datum=potsdam +no_defsGEOGCS["DHDN",DATUM["Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6314"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4314"]]RY !O=epsgBelge 1972+proj=longlat +ellps=intl +towgs84=106.869,-52.2978,103.724,-0.33657,0.456955,-1.84218,1 +no_defsGEOGCS["Belge 1972",DATUM["Reseau_National_Belge_1972",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[106.869,-52.2978,103.724,-0.33657,0.456955,-1.84218,1],AUTHORITY["EPSG","6313"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4313"]] _a\5QGepsgDealul Piscului 1930+proj=longlat +ellps=intl +no_defsGEOGCS["Dealul Piscului 1930",DATUM["Dealul_Piscului_1930",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6316"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4316"]][ %!}epsgConakry 1905+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-23,259,-9,0,0,0,0 +no_defsGEOGCS["Conakry 1905",DATUM["Conakry_1905",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-23,259,-9,0,0,0,0],AUTHORITY["EPSG","6315"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4315"]] ^ iepsgNGN+proj=longlat +ellps=WGS84 +towgs84=-3.2,-5.7,2.8,0,0,0,0 +no_defsGEOGCS["NGN",DATUM["National_Geodetic_Network",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[-3.2,-5.7,2.8,0,0,0,0],AUTHORITY["EPSG","6318"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4318"]]a]5SEepsgDealul Piscului 1970+proj=longlat +ellps=krass +no_defsGEOGCS["Dealul Piscului 1970",DATUM["Dealul_Piscului_1970",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6317"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4317"]] 1bSepsgWGS 72+proj=longlat +ellps=WGS72 +no_defsGEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]]@_SepsgKUDAMS+proj=longlat +ellps=GRS80 +no_defsGEOGCS["KUDAMS",DATUM["Kuwait_Utility",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6319"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4319"]] hEfmepsgWGS 84+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defsGEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]]d epsgWGS 72BE+proj=longlat +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +no_defsGEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]] QQRy%U5epsgAntigua 1943+proj=longlat +ellps=clrk80 +no_defsGEOGCS["Antigua 1943",DATUM["Antigua_1943",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6601"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4601"]]Ux'U9epsgAnguilla 1957+proj=longlat +ellps=clrk80 +no_defsGEOGCS["Anguilla 1957",DATUM["Anguilla_1957",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6600"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4600"]] l { %oepsgGrenada 1953+proj=longlat +ellps=clrk80 +towgs84=72,213.7,93,0,0,0,0 +no_defsGEOGCS["Grenada 1953",DATUM["Grenada_1953",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[72,213.7,93,0,0,0,0],AUTHORITY["EPSG","6603"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4603"]]z 'sepsgDominica 1945+proj=longlat +ellps=clrk80 +towgs84=725,685,536,0,0,0,0 +no_defsGEOGCS["Dominica 1945",DATUM["Dominica_1945",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[725,685,536,0,0,0,0],AUTHORITY["EPSG","6602"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4602"]]  f W})U;epsgSt. Kitts 1955+proj=longlat +ellps=clrk80 +no_defsGEOGCS["St. Kitts 1955",DATUM["St_Kitts_1955",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6605"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4605"]]| +{epsgMontserrat 1958+proj=longlat +ellps=clrk80 +towgs84=174,359,365,0,0,0,0 +no_defsGEOGCS["Montserrat 1958",DATUM["Montserrat_1958",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[174,359,365,0,0,0,0],AUTHORITY["EPSG","6604"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4604"]] h0 -'epsgSt. Vincent 1945+proj=longlat +ellps=clrk80 +towgs84=195.671,332.517,274.607,0,0,0,0 +no_defsGEOGCS["St. Vincent 1945",DATUM["St_Vincent_1945",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[195.671,332.517,274.607,0,0,0,0],AUTHORITY["EPSG","6607"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4607"]]~ )wepsgSt. Lucia 1955+proj=longlat +ellps=clrk80 +towgs84=-149,128,296,0,0,0,0 +no_defsGEOGCS["St. Lucia 1955",DATUM["St_Lucia_1955",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-149,128,296,0,0,0,0],AUTHORITY["EPSG","6606"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4606"]] 11g%U_epsgNAD27(CGQ77)+proj=longlat +ellps=clrk66 +no_defsGEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]]`UWepsgNAD27(76)+proj=longlat +ellps=clrk66 +no_defsGEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]] ` )a?epsgHong Kong 1980+proj=longlat +ellps=intl +towgs84=-162.619,-276.959,-161.764,0.067753,-2.24365,-1.15883,-1.09425 +no_defsGEOGCS["Hong Kong 1980",DATUM["Hong_Kong_1980",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-162.619,-276.959,-161.764,0.067753,-2.24365,-1.15883,-1.09425],AUTHORITY["EPSG","6611"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4611"]]OyepsgXian 1980+proj=longlat +a=6378140 +b=6356755.288157528 +no_defsGEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]] 4}4EU'epsgSegara+proj=longlat +ellps=bessel +no_defsGEOGCS["Segara",DATUM["Gunung_Segara",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6613"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4613"]] kepsgJGD2000+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]] +  #kepsgPorto Santo+proj=longlat +ellps=intl +towgs84=-499,-249,314,0,0,0,0 +no_defsGEOGCS["Porto Santo",DATUM["Porto_Santo_1936",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-499,-249,314,0,0,0,0],AUTHORITY["EPSG","6615"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4615"]]Q Y;epsgQND95+proj=longlat +ellps=intl +towgs84=-119.425,-303.659,-11.0006,1.1643,0.174458,1.09626,3.65706 +no_defsGEOGCS["QND95",DATUM["Qatar_National_Datum_1995",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-119.425,-303.659,-11.0006,1.1643,0.174458,1.09626,3.65706],AUTHORITY["EPSG","6614"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4614"]] CCc #S[epsg NAD83(CSRS)+proj=longlat +ellps=GRS80 +no_defsGEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]]R+Q3epsgSelvagem Grande+proj=longlat +ellps=intl +no_defsGEOGCS["Selvagem Grande",DATUM["Selvagem_Grande",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6616"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4616"]] >>m Eepsg SWEREF99+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]]M W7epsg SAD69+proj=longlat +ellps=aust_SA +no_defsGEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]] w % cepsg Fort Marigot+proj=longlat +ellps=intl +towgs84=137,248,-430,0,0,0,0 +no_defsGEOGCS["Fort Marigot",DATUM["Fort_Marigot",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[137,248,-430,0,0,0,0],AUTHORITY["EPSG","6621"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4621"]] cepsg Point 58+proj=longlat +ellps=clrk80 +towgs84=-106,-129,165,0,0,0,0 +no_defsGEOGCS["Point 58",DATUM["Point_58",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-106,-129,165,0,0,0,0],AUTHORITY["EPSG","6620"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4620"]]   uepsgCSG67+proj=longlat +ellps=intl +towgs84=-186,230,110,0,0,0,0 +no_defsGEOGCS["CSG67",DATUM["Centre_Spatial_Guyanais_1967",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-186,230,110,0,0,0,0],AUTHORITY["EPSG","6623"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4623"]]R+Q3epsgGuadeloupe 1948+proj=longlat +ellps=intl +no_defsGEOGCS["Guadeloupe 1948",DATUM["Guadeloupe_1948",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6622"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4622"]] sR+Q3epsgMartinique 1938+proj=longlat +ellps=intl +no_defsGEOGCS["Martinique 1938",DATUM["Martinique_1938",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6625"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4625"]]  epsgRGFG95+proj=longlat +ellps=GRS80 +towgs84=2,2,-2,0,0,0,0 +no_defsGEOGCS["RGFG95",DATUM["Reseau_Geodesique_Francais_Guyane_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[2,2,-2,0,0,0,0],AUTHORITY["EPSG","6624"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4624"]] ,, wepsgRGR92+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["RGR92",DATUM["Reseau_Geodesique_de_la_Reunion_1992",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6627"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4627"]]I%Q'epsgReunion 1947+proj=longlat +ellps=intl +no_defsGEOGCS["Reunion 1947",DATUM["Reunion_1947",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6626"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4626"]] ;(5BO\iv,9FS`mz #0=JWdq~ epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg  epsg  epsg  epsg  epsg  epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg  epsg !epsg! "epsg" #epsg# $epsg$ %epsg% &epsg& 1epsg1 2epsg2 3epsg3 4epsg4 5epsg5 6epsg6 7epsg7 8epsg8 9epsg9 :epsg: ;epsg; epsg> ?epsg? @epsg@ @@=QepsgTahaa 54+proj=longlat +ellps=intl +no_defsGEOGCS["Tahaa 54",DATUM["Tahaa_54",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6629"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4629"]]{  UepsgTahiti 52+proj=longlat +ellps=intl +towgs84=162,117,154,0,0,0,0 +no_defsGEOGCS["Tahiti 52",DATUM["Tahiti_52",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[162,117,154,0,0,0,0],AUTHORITY["EPSG","6628"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4628"]]of|flrx~ &,28>DJPV\bhntz "(.4:@FLRX^djpv|  " $ & ( *,.02479;=?CEHJMOR T!V"X#Z$\%^&b'f(y){*}+,-./0 1 2 34579:;<=>!?#@%A1B3C5D7E9F;G=H?IAJCKELGMINKOMPOQQRSSUTWUYW[X]Y_Za[c\e]g^i_k`maobqcsduewfyg{h}ijklmn o pqrsuvwxyAzC{E //w  OepsgK0 1949+proj=longlat +ellps=intl +towgs84=145,-187,103,0,0,0,0 +no_defsGEOGCS["K0 1949",DATUM["K0_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[145,-187,103,0,0,0,0],AUTHORITY["EPSG","6631"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4631"]]R+Q3epsgIGN72 Nuku Hiva+proj=longlat +ellps=intl +no_defsGEOGCS["IGN72 Nuku Hiva",DATUM["IGN72_Nuku_Hiva",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6630"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4630"]] *t*F#Q#epsgIGN56 Lifou+proj=longlat +ellps=intl +no_defsGEOGCS["IGN56 Lifou",DATUM["IGN56_Lifou",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6633"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4633"]] %eepsgCombani 1950+proj=longlat +ellps=intl +towgs84=-382,-59,-262,0,0,0,0 +no_defsGEOGCS["Combani 1950",DATUM["Combani_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-382,-59,-262,0,0,0,0],AUTHORITY["EPSG","6632"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4632"]] F !S!epsgST87 Ouvea+proj=longlat +ellps=intl +towgs84=-122.383,-188.696,103.344,3.5107,-4.9668,-5.7047,4.4798 +no_defsGEOGCS["ST87 Ouvea",DATUM["ST87_Ouvea",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-122.383,-188.696,103.344,3.5107,-4.9668,-5.7047,4.4798],AUTHORITY["EPSG","6635"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4635"]]X/Q;epsgIGN72 Grand Terre+proj=longlat +ellps=intl +no_defsGEOGCS["IGN72 Grand Terre",DATUM["IGN72_Grande_Terre",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6634"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4634"]] x % epsgPerroud 1950+proj=longlat +ellps=intl +towgs84=325,154,172,0,0,0,0 +no_defsGEOGCS["Perroud 1950",DATUM["Pointe_Geologie_Perroud_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[325,154,172,0,0,0,0],AUTHORITY["EPSG","6637"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4637"]] % aepsgPetrels 1972+proj=longlat +ellps=intl +towgs84=365,194,166,0,0,0,0 +no_defsGEOGCS["Petrels 1972",DATUM["Petrels_1972",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[365,194,166,0,0,0,0],AUTHORITY["EPSG","6636"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4636"]] <4Q epsgMOP78+proj=longlat +ellps=intl +no_defsGEOGCS["MOP78",DATUM["MOP78",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6639"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4639"]]@ G 5epsgSaint Pierre et Miquelon 1950+proj=longlat +ellps=clrk66 +towgs84=30,430,368,0,0,0,0 +no_defsGEOGCS["Saint Pierre et Miquelon 1950",DATUM["Saint_Pierre_et_Miquelon_1950",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[30,430,368,0,0,0,0],AUTHORITY["EPSG","6638"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4638"]]  g C!!Qepsg!IGN53 Mare+proj=longlat +ellps=intl +no_defsGEOGCS["IGN53 Mare",DATUM["IGN53_Mare",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6641"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4641"]] epsg RRAF 1991+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["RRAF 1991",DATUM["Reseau_de_Reference_des_Antilles_Francaises_1991",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6640"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4640"]] F# !S!epsg#ST71 Belep+proj=longlat +ellps=intl +towgs84=-480.26,-438.32,-643.429,16.3119,20.1721,-4.0349,-111.7 +no_defsGEOGCS["ST71 Belep",DATUM["ST71_Belep",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-480.26,-438.32,-643.429,16.3119,20.1721,-4.0349,-111.7],AUTHORITY["EPSG","6643"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4643"]]X"/Q;epsg"ST84 Ile des Pins+proj=longlat +ellps=intl +no_defsGEOGCS["ST84 Ile des Pins",DATUM["ST84_Ile_des_Pins",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6642"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4642"]] !!% epsg%RGNC 1991+proj=longlat +ellps=intl +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["RGNC 1991",DATUM["Reseau_Geodesique_Nouvelle_Caledonie_1991",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6645"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4645"]]I$%Q'epsg$NEA74 Noumea+proj=longlat +ellps=intl +no_defsGEOGCS["NEA74 Noumea",DATUM["NEA74_Noumea",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6644"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4644"]] 1 )+]epsg1Reykjavik 1900+proj=longlat +a=6377019.27 +b=6355762.5391 +towgs84=-28,199,5,0,0,0,0 +no_defsGEOGCS["Reykjavik 1900",DATUM["Reykjavik_1900",SPHEROID["Danish 1876",6377019.27,300,AUTHORITY["EPSG","7051"]],TOWGS84[-28,199,5,0,0,0,0],AUTHORITY["EPSG","6657"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4657"]]L&'Q+epsg&Grand Comoros+proj=longlat +ellps=intl +no_defsGEOGCS["Grand Comoros",DATUM["Grand_Comoros",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6646"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4646"]] zs3 Wepsg3ISN93+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["ISN93",DATUM["Islands_Network_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6659"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4659"]]2 % _epsg2Hjorsey 1955+proj=longlat +ellps=intl +towgs84=-73,46,-86,0,0,0,0 +no_defsGEOGCS["Hjorsey 1955",DATUM["Hjorsey_1955",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-73,46,-86,0,0,0,0],AUTHORITY["EPSG","6658"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4658"]] 2j5 Eepsg5LKS92+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["LKS92",DATUM["Latvia_1992",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6661"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4661"]]J4 !W%epsg4Helle 1954+proj=longlat +ellps=intl +towgs84=982.609,552.753,-540.873,32.3934,-153.257,-96.2266,16.805 +no_defsGEOGCS["Helle 1954",DATUM["Helle_1954",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[982.609,552.753,-540.873,32.3934,-153.257,-96.2266,16.805],AUTHORITY["EPSG","6660"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4660"]] HHU7-Q7epsg7Porto Santo 1995+proj=longlat +ellps=intl +no_defsGEOGCS["Porto Santo 1995",DATUM["Porto_Santo_1995",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6663"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4663"]][61Q?epsg6IGN72 Grande Terre+proj=longlat +ellps=intl +no_defsGEOGCS["IGN72 Grande Terre",DATUM["IGN72_Grande_Terre",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6634"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4662"]] ))f93QSepsg9Azores Central 1995+proj=longlat +ellps=intl +no_defsGEOGCS["Azores Central 1995",DATUM["Azores_Central_Islands_1995",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6665"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4665"]]i85QWepsg8Azores Oriental 1995+proj=longlat +ellps=intl +no_defsGEOGCS["Azores Oriental 1995",DATUM["Azores_Oriental_Islands_1995",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6664"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4664"]] ++; mepsg;IKBD-92+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["IKBD-92",DATUM["Iraq_Kuwait_Boundary_Datum_1992",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6667"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4667"]]M:#U-epsg:Lisbon 1890+proj=longlat +ellps=bessel +no_defsGEOGCS["Lisbon 1890",DATUM["Lisbon_1890",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6666"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4666"]] t= Yepsg=LKS94+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["LKS94",DATUM["Lithuania_1994_ETRS89",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6126"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4669"]]}<  aepsg oepsg>IGM95+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["IGM95",DATUM["Istituto_Geografico_Militaire_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6670"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4670"]] ZJA 535epsgAChatham Islands 1979+proj=longlat +ellps=intl +towgs84=174.05,-25.49,112.57,-0,-0,0.554,0.2263 +no_defsGEOGCS["Chatham Islands 1979",DATUM["Chatham_Islands_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[174.05,-25.49,112.57,-0,-0,0.554,0.2263],AUTHORITY["EPSG","6673"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4673"]]"@ 5 epsg@Chatham Islands 1971+proj=longlat +ellps=intl +towgs84=175,-38,113,0,0,0,0 +no_defsGEOGCS["Chatham Islands 1971",DATUM["Chatham_Islands_Datum_1971",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[175,-38,113,0,0,0,0],AUTHORITY["EPSG","6672"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4672"]] V C kepsgCGuam 1963+proj=longlat +ellps=clrk66 +towgs84=-100,-248,259,0,0,0,0 +no_defsGEOGCS["Guam 1963",DATUM["Guam_1963",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-100,-248,259,0,0,0,0],AUTHORITY["EPSG","6675"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4675"]]&B #1epsgBSIRGAS 2000+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]] ll=ESepsgELao 1993+proj=longlat +ellps=krass +no_defsGEOGCS["Lao 1993",DATUM["Lao_1993",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6677"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4677"]]OD)S-epsgDVientiane 1982+proj=longlat +ellps=krass +no_defsGEOGCS["Vientiane 1982",DATUM["Vientiane_1982",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6676"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4676"]] ]G !!yepsgGJouik 1961+proj=longlat +ellps=clrk80 +towgs84=-80.01,253.26,291.19,0,0,0,0 +no_defsGEOGCS["Jouik 1961",DATUM["Jouik_1961",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-80.01,253.26,291.19,0,0,0,0],AUTHORITY["EPSG","6679"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4679"]]F %epsgFLao 1997+proj=longlat +ellps=krass +towgs84=44.585,-131.212,-39.544,0,0,0,0 +no_defsGEOGCS["Lao 1997",DATUM["Lao_National_Datum_1997",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[44.585,-131.212,-39.544,0,0,0,0],AUTHORITY["EPSG","6678"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4678"]] \[I+UAepsgIMauritania 1999+proj=longlat +ellps=clrk80 +no_defsGEOGCS["Mauritania 1999",DATUM["Mauritania_1999",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6681"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4681"]] H +epsgHNouakchott 1965+proj=longlat +ellps=clrk80 +towgs84=124.5,-63.5,-281,0,0,0,0 +no_defsGEOGCS["Nouakchott 1965",DATUM["Nouakchott_1965",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[124.5,-63.5,-281,0,0,0,0],AUTHORITY["EPSG","6680"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4680"]] KK ECepsgKPRS92+proj=longlat +ellps=clrk66 +towgs84=-127.62,-67.24,-47.04,-3.068,4.903,1.578,-1.06 +no_defsGEOGCS["PRS92",DATUM["Philippine_Reference_System_1992",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-127.62,-67.24,-47.04,-3.068,4.903,1.578,-1.06],AUTHORITY["EPSG","6683"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4683"]]rJ#MepsgJGulshan 303+proj=longlat +a=6377276.345 +b=6356075.41314024 +no_defsGEOGCS["Gulshan 303",DATUM["Gulshan_303",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],AUTHORITY["EPSG","6682"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4682"]] >>@MQepsgMGandajika+proj=longlat +ellps=intl +no_defsGEOGCS["Gandajika",DATUM["Gandajika",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6685"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4685"]]zL  SepsgLGan 1970+proj=longlat +ellps=intl +towgs84=-133,-321,50,0,0,0,0 +no_defsGEOGCS["Gan 1970",DATUM["Gan_1970",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-133,-321,50,0,0,0,0],AUTHORITY["EPSG","6684"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4684"]]  g YOSUepsgORGPF+proj=longlat +ellps=GRS80 +no_defsGEOGCS["RGPF",DATUM["Reseau_Geodesique_de_la_Polynesie_Francaise",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6687"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4687"]]N % epsgNMAGNA-SIRGAS+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["MAGNA-SIRGAS",DATUM["Marco_Geocentrico_Nacional_de_Referencia",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6686"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4686"]] 1LQ'Q+epsgQIGN63 Hiva Oa+proj=longlat +ellps=intl +no_defsGEOGCS["IGN63 Hiva Oa",DATUM["IGN63_Hiva_Oa",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6689"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4689"]]KP #U'epsgPFatu Iva 72+proj=longlat +ellps=intl +towgs84=347.103,1078.12,2623.92,-33.8875,70.6773,-9.3943,186.074 +no_defsGEOGCS["Fatu Iva 72",DATUM["Fatu_Iva_72",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[347.103,1078.12,2623.92,-33.8875,70.6773,-9.3943,186.074],AUTHORITY["EPSG","6688"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4688"]] AS QepsgSMoorea 87+proj=longlat +ellps=intl +towgs84=215.525,149.593,176.229,-3.2624,-1.692,-1.1571,10.4773 +no_defsGEOGCS["Moorea 87",DATUM["Moorea_87",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[215.525,149.593,176.229,-3.2624,-1.692,-1.1571,10.4773],AUTHORITY["EPSG","6691"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4691"]]@RQepsgRTahiti 79+proj=longlat +ellps=intl +no_defsGEOGCS["Tahiti 79",DATUM["Tahiti_79",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6690"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4690"]] j U )gepsgUNakhl-e Ghanem+proj=longlat +ellps=WGS84 +towgs84=0,-0.15,0.68,0,0,0,0 +no_defsGEOGCS["Nakhl-e Ghanem",DATUM["Nakhl_e_Ghanem",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,-0.15,0.68,0,0,0,0],AUTHORITY["EPSG","6693"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4693"]]T !mepsgTMaupiti 83+proj=longlat +ellps=intl +towgs84=217.037,86.959,23.956,0,0,0,0 +no_defsGEOGCS["Maupiti 83",DATUM["Maupiti_83",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[217.037,86.959,23.956,0,0,0,0],AUTHORITY["EPSG","6692"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4692"]] r'W %' epsgWKatanga 1955+proj=longlat +ellps=clrk66 +towgs84=-103.746,-9.614,-255.95,0,0,0,0 +no_defsGEOGCS["Katanga 1955",DATUM["Katanga_1955",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0],AUTHORITY["EPSG","6695"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4695"]] V }epsgVPOSGAR 94+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["POSGAR 94",DATUM["Posiciones_Geodesicas_Argentinas_1994",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6694"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4694"]] "" YCUepsgYIGC 1962 6th Parallel South+proj=longlat +ellps=clrk80 +no_defsGEOGCS["IGC 1962 6th Parallel South",DATUM["IGC_1962_Arc_of_the_6th_Parallel_South",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6697"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4697"]]LX!U-epsgXKasai 1953+proj=longlat +ellps=clrk80 +no_defsGEOGCS["Kasai 1953",DATUM["Kasai_1953",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6696"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4696"]] ;(5BO\iv,9FS`mz #0=JWdq~ BepsgB CepsgC DepsgD EepsgE FepsgF GepsgG HepsgH IepsgI JepsgJ KepsgK LepsgL MepsgM NepsgN OepsgO PepsgP QepsgQ RepsgR SepsgS TepsgT UepsgU VepsgV WepsgW XepsgX YepsgY ZepsgZ [epsg[ \epsg\ ]epsg] ^epsg^ _epsg_ `epsg` aepsga bepsgb cepsgc depsgd eepsge fepsgf gepsgg hepsgh iepsgi jepsgj kepsgk lepsgl mepsgm nepsgn oepsgo pepsgp qepsgq repsgr sepsgs tepsgt uepsgu vepsgv wepsgw xepsgx yepsgy zepsgz {epsg{ |epsg| d [ 'epsg[Le Pouce 1934+proj=longlat +ellps=clrk80 +towgs84=-770.1,158.4,-498.2,0,0,0,0 +no_defsGEOGCS["Le Pouce 1934",DATUM["Le_Pouce_1934",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-770.1,158.4,-498.2,0,0,0,0],AUTHORITY["EPSG","6699"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4699"]]Z 1 {epsgZIGN 1962 Kerguelen+proj=longlat +ellps=intl +towgs84=145,-187,103,0,0,0,0 +no_defsGEOGCS["IGN 1962 Kerguelen",DATUM["IGN_1962_Kerguelen",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[145,-187,103,0,0,0,0],AUTHORITY["EPSG","6698"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4698"]] 0] /epsg]IGCB 1955+proj=longlat +ellps=clrk80 +towgs84=-79.9,-158,-168.9,0,0,0,0 +no_defsGEOGCS["IGCB 1955",DATUM["Institut_Geographique_du_Congo_Belge_1955",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-79.9,-158,-168.9,0,0,0,0],AUTHORITY["EPSG","6701"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4701"]]X\)U=epsg\IGN Astro 1960+proj=longlat +ellps=clrk80 +no_defsGEOGCS["IGN Astro 1960",DATUM["IGN_Astro_1960",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6700"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4700"]]  z l_!Umepsg_Mhast 1951+proj=longlat +ellps=clrk80 +no_defsGEOGCS["Mhast 1951",DATUM["Missao_Hidrografico_Angola_y_Sao_Tome_1951",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6703"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4703"]]^ +aepsg^Mauritania 1999+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["Mauritania 1999",DATUM["Mauritania_1999",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6702"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4702"]] UUSa-Q3epsgaMhast (offshore)+proj=longlat +ellps=intl +no_defsGEOGCS["Mhast (offshore)",DATUM["Mhast_offshore",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6705"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4705"]]P`+Q/epsg`Mhast (onshore)+proj=longlat +ellps=intl +no_defsGEOGCS["Mhast (onshore)",DATUM["Mhast_onshore",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6704"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4704"]] <c -uepsgcTern Island 1961+proj=longlat +ellps=intl +towgs84=114,-116,-333,0,0,0,0 +no_defsGEOGCS["Tern Island 1961",DATUM["Tern_Island_1961",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[114,-116,-333,0,0,0,0],AUTHORITY["EPSG","6707"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4707"]]@b C!%epsgbEgypt Gulf of Suez S-650 TL+proj=longlat +ellps=helmert +towgs84=-146.21,112.63,4.05,0,0,0,0 +no_defsGEOGCS["Egypt Gulf of Suez S-650 TL",DATUM["Egypt_Gulf_of_Suez_S_650_TL",SPHEROID["Helmert 1906",6378200,298.3,AUTHORITY["EPSG","7020"]],TOWGS84[-146.21,112.63,4.05,0,0,0,0],AUTHORITY["EPSG","6706"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4706"]] Te ' eepsgeIwo Jima 1945+proj=longlat +ellps=intl +towgs84=145,75,-272,0,0,0,0 +no_defsGEOGCS["Iwo Jima 1945",DATUM["Iwo_Jima_1945",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[145,75,-272,0,0,0,0],AUTHORITY["EPSG","6709"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4709"]](d 1epsgdCocos Islands 1965+proj=longlat +ellps=aust_SA +towgs84=-491,-22,435,0,0,0,0 +no_defsGEOGCS["Cocos Islands 1965",DATUM["Cocos_Islands_1965",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],TOWGS84[-491,-22,435,0,0,0,0],AUTHORITY["EPSG","6708"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4708"]] lg 1 {epsggMarcus Island 1952+proj=longlat +ellps=intl +towgs84=124,-234,-25,0,0,0,0 +no_defsGEOGCS["Marcus Island 1952",DATUM["Marcus_Island_1952",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[124,-234,-25,0,0,0,0],AUTHORITY["EPSG","6711"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4711"]]f +oepsgfSt. Helena 1971+proj=longlat +ellps=intl +towgs84=-320,550,-494,0,0,0,0 +no_defsGEOGCS["St. Helena 1971",DATUM["St_Helena_1971",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-320,550,-494,0,0,0,0],AUTHORITY["EPSG","6710"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4710"]] ]$i 3 epsgiAyabelle Lighthouse+proj=longlat +ellps=clrk80 +towgs84=-79,-129,145,0,0,0,0 +no_defsGEOGCS["Ayabelle Lighthouse",DATUM["Ayabelle_Lighthouse",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-79,-129,145,0,0,0,0],AUTHORITY["EPSG","6713"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4713"]]h 7 epsghAscension Island 1958+proj=longlat +ellps=intl +towgs84=-205,107,53,0,0,0,0 +no_defsGEOGCS["Ascension Island 1958",DATUM["Ascension_Island_1958",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-205,107,53,0,0,0,0],AUTHORITY["EPSG","6712"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4712"]] k +qepsgkCamp Area Astro+proj=longlat +ellps=intl +towgs84=-104,-129,239,0,0,0,0 +no_defsGEOGCS["Camp Area Astro",DATUM["Camp_Area_Astro",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-104,-129,239,0,0,0,0],AUTHORITY["EPSG","6715"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4715"]]|j UepsgjBellevue+proj=longlat +ellps=intl +towgs84=-127,-769,472,0,0,0,0 +no_defsGEOGCS["Bellevue",DATUM["Bellevue",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-127,-769,472,0,0,0,0],AUTHORITY["EPSG","6714"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4714"]] \m ) yepsgmCape Canaveral+proj=longlat +ellps=clrk66 +towgs84=-2,151,181,0,0,0,0 +no_defsGEOGCS["Cape Canaveral",DATUM["Cape_Canaveral",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-2,151,181,0,0,0,0],AUTHORITY["EPSG","6717"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4717"]] l 5epsglPhoenix Islands 1966+proj=longlat +ellps=intl +towgs84=298,-304,-375,0,0,0,0 +no_defsGEOGCS["Phoenix Islands 1966",DATUM["Phoenix_Islands_1966",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[298,-304,-375,0,0,0,0],AUTHORITY["EPSG","6716"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4716"]] o 1 yepsgoEaster Island 1967+proj=longlat +ellps=intl +towgs84=211,147,111,0,0,0,0 +no_defsGEOGCS["Easter Island 1967",DATUM["Easter_Island_1967",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[211,147,111,0,0,0,0],AUTHORITY["EPSG","6719"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4719"]]In%Q'epsgnSolomon 1968+proj=longlat +ellps=intl +no_defsGEOGCS["Solomon 1968",DATUM["Solomon_1968",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6718"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4718"]] q %oepsgqFiji 1956+proj=longlat +ellps=intl +towgs84=265.025,384.929,-194.046,0,0,0,0 +no_defsGEOGCS["Fiji 1956",DATUM["Fiji_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[265.025,384.929,-194.046,0,0,0,0],AUTHORITY["EPSG","6721"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4721"]]GpS'epsgpFiji 1986+proj=longlat +ellps=WGS72 +no_defsGEOGCS["Fiji 1986",DATUM["Fiji_Geodetic_Datum_1986",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6720"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4720"]] b(s /epsgsGrand Cayman 1959+proj=longlat +ellps=clrk66 +towgs84=67.8,106.1,138.8,0,0,0,0 +no_defsGEOGCS["Grand Cayman 1959",DATUM["Grand_Cayman_1959",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[67.8,106.1,138.8,0,0,0,0],AUTHORITY["EPSG","6723"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4723"]]r 1}epsgrSouth Georgia 1968+proj=longlat +ellps=intl +towgs84=-794,119,-298,0,0,0,0 +no_defsGEOGCS["South Georgia 1968",DATUM["South_Georgia_1968",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-794,119,-298,0,0,0,0],AUTHORITY["EPSG","6722"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4722"]] eu 5 epsguJohnston Island 1961+proj=longlat +ellps=intl +towgs84=189,-79,-202,0,0,0,0 +no_defsGEOGCS["Johnston Island 1961",DATUM["Johnston_Island_1961",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[189,-79,-202,0,0,0,0],AUTHORITY["EPSG","6725"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4725"]]t /yepsgtDiego Garcia 1969+proj=longlat +ellps=intl +towgs84=208,-435,-229,0,0,0,0 +no_defsGEOGCS["Diego Garcia 1969",DATUM["Diego_Garcia_1969",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[208,-435,-229,0,0,0,0],AUTHORITY["EPSG","6724"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4724"]] LLFw#Q#epsgwMidway 1961+proj=longlat +ellps=intl +no_defsGEOGCS["Midway 1961",DATUM["Midway_1961",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6727"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4727"]]fv1UQepsgvLittle Cayman 1961+proj=longlat +ellps=clrk66 +no_defsGEOGCS["Little Cayman 1961",DATUM["Little_Cayman_1961",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6726"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4726"]] Uy ' cepsgyPitcairn 1967+proj=longlat +ellps=intl +towgs84=185,165,42,0,0,0,0 +no_defsGEOGCS["Pitcairn 1967",DATUM["Pitcairn_1967",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[185,165,42,0,0,0,0],AUTHORITY["EPSG","6729"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4729"]]'x ; epsgxPico de las Nieves 1984+proj=longlat +ellps=intl +towgs84=-307,-92,127,0,0,0,0 +no_defsGEOGCS["Pico de las Nieves 1984",DATUM["Pico_de_las_Nieves_1984",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-307,-92,127,0,0,0,0],AUTHORITY["EPSG","6728"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4728"]] { ) uepsg{Viti Levu 1916+proj=longlat +ellps=clrk80 +towgs84=51,391,-36,0,0,0,0 +no_defsGEOGCS["Viti Levu 1916",DATUM["Viti_Levu_1916",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[51,391,-36,0,0,0,0],AUTHORITY["EPSG","6731"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4731"]]zz !UepsgzSanto 1965+proj=longlat +ellps=intl +towgs84=170,42,84,0,0,0,0 +no_defsGEOGCS["Santo 1965",DATUM["Santo_1965",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[170,42,84,0,0,0,0],AUTHORITY["EPSG","6730"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4730"]] S} - qepsg}Wake Island 1952+proj=longlat +ellps=intl +towgs84=276,-57,149,0,0,0,0 +no_defsGEOGCS["Wake Island 1952",DATUM["Wake_Island_1952",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[276,-57,149,0,0,0,0],AUTHORITY["EPSG","6733"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4733"]])| 71sepsg|Marshall Islands 1960+proj=longlat +a=6378270 +b=6356794.343434343 +towgs84=102,52,-38,0,0,0,0 +no_defsGEOGCS["Marshall Islands 1960",DATUM["Marshall_Islands_1960",SPHEROID["Hough 1960",6378270,297,AUTHORITY["EPSG","7053"]],TOWGS84[102,52,-38,0,0,0,0],AUTHORITY["EPSG","6732"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4732"]] t #cepsgKusaie 1951+proj=longlat +ellps=intl +towgs84=647,1777,-1124,0,0,0,0 +no_defsGEOGCS["Kusaie 1951",DATUM["Kusaie_1951",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[647,1777,-1124,0,0,0,0],AUTHORITY["EPSG","6735"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4735"]]~ %eepsg~Tristan 1968+proj=longlat +ellps=intl +towgs84=-632,438,-609,0,0,0,0 +no_defsGEOGCS["Tristan 1968",DATUM["Tristan_1968",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-632,438,-609,0,0,0,0],AUTHORITY["EPSG","6734"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4734"]] c !kepsgKorea 2000+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["Korea 2000",DATUM["Geocentric_datum_of_Korea",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6737"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4737"]] -epsgDeception Island+proj=longlat +ellps=clrk80 +towgs84=260,12,-147,0,0,0,0 +no_defsGEOGCS["Deception Island",DATUM["Deception_Island",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[260,12,-147,0,0,0,0],AUTHORITY["EPSG","6736"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4736"]] } 1}epsgHong Kong 1963(67)+proj=longlat +ellps=intl +towgs84=-156,-271,-189,0,0,0,0 +no_defsGEOGCS["Hong Kong 1963(67)",DATUM["Hong_Kong_1963_67",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-156,-271,-189,0,0,0,0],AUTHORITY["EPSG","6739"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4739"]] ) QepsgHong Kong 1963+proj=longlat +a=6378293.645208759 +b=6356617.987679838 +no_defsGEOGCS["Hong Kong 1963",DATUM["Hong_Kong_1963",SPHEROID["Clarke 1858",6378293.645208759,294.2606763692569,AUTHORITY["EPSG","7007"]],AUTHORITY["EPSG","6738"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4738"]] gSSCepsgGDM2000+proj=longlat +ellps=GRS80 +no_defsGEOGCS["GDM2000",DATUM["Geodetic_Datum_of_Malaysia_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6742"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4742"]]=QepsgFD54+proj=longlat +ellps=intl +no_defsGEOGCS["FD54",DATUM["Faroe_Datum_1954",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6741"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4741"]]Ty#epsgPZ-90+proj=longlat +a=6378136 +b=6356751.361745712 +no_defsGEOGCS["PZ-90",DATUM["Parametrop_Zemp_1990",SPHEROID["PZ-90",6378136,298.257839303,AUTHORITY["EPSG","7054"]],AUTHORITY["EPSG","6740"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4740"]]  c R%U5epsgNahrwan 1934+proj=longlat +ellps=clrk80 +no_defsGEOGCS["Nahrwan 1934",DATUM["Nahrwan_1934",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6744"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4744"]] %{epsgKarbala 1979+proj=longlat +ellps=clrk80 +towgs84=84.1,-320.1,218.7,0,0,0,0 +no_defsGEOGCS["Karbala 1979",DATUM["Karbala_1979",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[84.1,-320.1,218.7,0,0,0,0],AUTHORITY["EPSG","6743"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4743"]] jjF U+epsgPD/83+proj=longlat +ellps=bessel +no_defsGEOGCS["PD/83",DATUM["Potsdam_Datum_83",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6746"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4746"]]H U/epsgRD/83+proj=longlat +ellps=bessel +no_defsGEOGCS["RD/83",DATUM["Rauenberg_Datum_83",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6745"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4745"]] ? +/-epsgVanua Levu 1915+proj=longlat +a=6378306.3696 +b=6356571.996 +towgs84=51,391,-36,0,0,0,0 +no_defsGEOGCS["Vanua Levu 1915",DATUM["Vanua_Levu_1915",SPHEROID["Clarke 1880 (international foot)",6378306.3696,293.4663076556349,AUTHORITY["EPSG","7055"]],TOWGS84[51,391,-36,0,0,0,0],AUTHORITY["EPSG","6748"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4748"]]k IepsgGR96+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]] h !#kepsgST87 Ouvea+proj=longlat +ellps=WGS84 +towgs84=-56.263,16.136,-22.856,0,0,0,0 +no_defsGEOGCS["ST87 Ouvea",DATUM["ST87_Ouvea",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[-56.263,16.136,-22.856,0,0,0,0],AUTHORITY["EPSG","6750"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4750"]] epsgRGNC91-93+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["RGNC91-93",DATUM["Reseau_Geodesique_de_Nouvelle_Caledonie_91_93",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6749"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4749"]] < )/)epsgViti Levu 1912+proj=longlat +a=6378306.3696 +b=6356571.996 +towgs84=51,391,-36,0,0,0,0 +no_defsGEOGCS["Viti Levu 1912",DATUM["Viti_Levu_1912",SPHEROID["Clarke 1880 (international foot)",6378306.3696,293.4663076556349,AUTHORITY["EPSG","7055"]],TOWGS84[51,391,-36,0,0,0,0],AUTHORITY["EPSG","6752"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4752"]]n %?epsgKertau (RSO)+proj=longlat +a=6377295.664 +b=6356094.667915204 +no_defsGEOGCS["Kertau (RSO)",DATUM["Kertau_RSO",SPHEROID["Everest 1830 (RSO 1969)",6377295.664,300.8017,AUTHORITY["EPSG","7056"]],AUTHORITY["EPSG","6751"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4751"]] ##$ 'epsgLGD2006+proj=longlat +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +no_defsGEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]]1Qepsgfk89+proj=longlat +ellps=intl +no_defsGEOGCS["fk89",DATUM["fk89",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6753"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4753"]] BB>SepsgVN-2000+proj=longlat +ellps=WGS84 +no_defsGEOGCS["VN-2000",DATUM["Vietnam_2000",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6756"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4756"]]x aepsgDGN95+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]] ;(5BO\iv,9FS`mz #0=JWdq~ ~epsg~ epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg %epsg% &epsg& 'epsg' (epsg( N$epsgN$ N%epsgN% N&epsgN& XXm GepsgJAD2001+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["JAD2001",DATUM["Jamaica_2001",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6758"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4758"]]3SepsgSVY21+proj=longlat +ellps=WGS84 +no_defsGEOGCS["SVY21",DATUM["SVY21",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6757"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4757"]] ]CS%epsgWGS 66+proj=longlat +ellps=WGS66 +no_defsGEOGCS["WGS 66",DATUM["World_Geodetic_System_1966",SPHEROID["NWL 9D",6378145,298.25,AUTHORITY["EPSG","7025"]],AUTHORITY["EPSG","6760"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4760"]] +epsgNAD83(NSRS2007)+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]] vm GepsgBDA2000+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["BDA2000",DATUM["Bermuda_2000",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6762"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4762"]] {epsgHTRS96+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["HTRS96",DATUM["Croatian_Terrestrial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6761"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4761"]]   }epsgRSRGD2000+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["RSRGD2000",DATUM["Ross_Sea_Region_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6764"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4764"]]z 'UepsgPitcairn 2006+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["Pitcairn 2006",DATUM["Pitcairn_2006",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6763"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4763"]] qkA-gMepsgBern 1898 (Bern)+proj=longlat +ellps=bessel +pm=bern +no_defsGEOGCS["Bern 1898 (Bern)",DATUM["CH1903_Bern",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6801"]],PRIMEM["Bern",7.439583333333333,AUTHORITY["EPSG","8907"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4801"]]  'wepsgSlovenia 1996+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["Slovenia 1996",DATUM["Slovenia_Geodetic_Datum_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6765"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4765"]] nC+gUepsgLisbon (Lisbon)+proj=longlat +ellps=intl +pm=lisbon +no_defsGEOGCS["Lisbon (Lisbon)",DATUM["Lisbon_1937_Lisbon",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6803"]],PRIMEM["Lisbon",-9.131906111111112,AUTHORITY["EPSG","8902"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4803"]]xB5g_epsgBogota 1975 (Bogota)+proj=longlat +ellps=intl +pm=bogota +no_defsGEOGCS["Bogota 1975 (Bogota)",DATUM["Bogota_1975_Bogota",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6802"]],PRIMEM["Bogota",-74.08091666666667,AUTHORITY["EPSG","8904"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4802"]] 5}E#iyepsgMGI (Ferro)+proj=longlat +ellps=bessel +pm=ferro +no_defsGEOGCS["MGI (Ferro)",DATUM["Militar_Geographische_Institut_Ferro",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6805"]],PRIMEM["Ferro",-17.66666666666667,AUTHORITY["EPSG","8909"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4805"]]GD 19-epsgMakassar (Jakarta)+proj=longlat +ellps=bessel +towgs84=-587.8,519.75,145.76,0,0,0,0 +pm=jakarta +no_defsGEOGCS["Makassar (Jakarta)",DATUM["Makassar_Jakarta",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-587.8,519.75,145.76,0,0,0,0],AUTHORITY["EPSG","6804"]],PRIMEM["Jakarta",106.8077194444444,AUTHORITY["EPSG","8908"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4804"]] FG #99epsgNTF (Paris)+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +no_defsGEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4807"]]mF1cQepsgMonte Mario (Rome)+proj=longlat +ellps=intl +pm=rome +no_defsGEOGCS["Monte Mario (Rome)",DATUM["Monte_Mario_Rome",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6806"]],PRIMEM["Rome",12.45233333333333,AUTHORITY["EPSG","8906"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4806"]] I7ksepsgBelge 1950 (Brussels)+proj=longlat +ellps=intl +pm=brussels +no_defsGEOGCS["Belge 1950 (Brussels)",DATUM["Reseau_National_Belge_1950_Brussels",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6809"]],PRIMEM["Brussels",4.367975,AUTHORITY["EPSG","8910"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4809"]]yH-mcepsgPadang (Jakarta)+proj=longlat +ellps=bessel +pm=jakarta +no_defsGEOGCS["Padang (Jakarta)",DATUM["Padang_1884_Jakarta",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6808"]],PRIMEM["Jakarta",106.8077194444444,AUTHORITY["EPSG","8908"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4808"]] RAK 39epsgVoirol 1875 (Paris)+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-73,-247,227,0,0,0,0 +pm=paris +no_defsGEOGCS["Voirol 1875 (Paris)",DATUM["Voirol_1875_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-73,-247,227,0,0,0,0],AUTHORITY["EPSG","6811"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4811"]]*J 1# epsgTananarive (Paris)+proj=longlat +ellps=intl +towgs84=-189,-242,-91,0,0,0,0 +pm=paris +no_defsGEOGCS["Tananarive (Paris)",DATUM["Tananarive_1925_Paris",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-189,-242,-91,0,0,0,0],AUTHORITY["EPSG","6810"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4810"]] N-qqepsgRT38 (Stockholm)+proj=longlat +ellps=bessel +pm=stockholm +no_defsGEOGCS["RT38 (Stockholm)",DATUM["Stockholm_1938_Stockholm",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6814"]],PRIMEM["Stockholm",18.05827777777778,AUTHORITY["EPSG","8911"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4814"]]wM/m]epsgBatavia (Jakarta)+proj=longlat +ellps=bessel +pm=jakarta +no_defsGEOGCS["Batavia (Jakarta)",DATUM["Batavia_Jakarta",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6813"]],PRIMEM["Jakarta",106.8077194444444,AUTHORITY["EPSG","8908"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4813"]] {P-}WepsgCarthage (Paris)+proj=longlat +a=6378249.2 +b=6356515 +pm=paris +no_defsGEOGCS["Carthage (Paris)",DATUM["Carthage_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],AUTHORITY["EPSG","6816"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4816"]]eO)kAepsgGreek (Athens)+proj=longlat +ellps=bessel +pm=athens +no_defsGEOGCS["Greek (Athens)",DATUM["Greek_Athens",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6815"]],PRIMEM["Athens",23.7163375,AUTHORITY["EPSG","8912"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4815"]] kR)iOepsgS-JTSK (Ferro)+proj=longlat +ellps=bessel +pm=ferro +no_defsGEOGCS["S-JTSK (Ferro)",DATUM["S_JTSK_Ferro",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6818"]],PRIMEM["Ferro",-17.66666666666667,AUTHORITY["EPSG","8909"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4818"]]bQ +o3epsgNGO 1948 (Oslo)+proj=longlat +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +no_defsGEOGCS["NGO 1948 (Oslo)",DATUM["NGO_1948_Oslo",SPHEROID["Bessel Modified",6377492.018,299.1528128,AUTHORITY["EPSG","7005"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUTHORITY["EPSG","6817"]],PRIMEM["Oslo",10.72291666666667,AUTHORITY["EPSG","8913"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4817"]] {{T-mgepsgSegara (Jakarta)+proj=longlat +ellps=bessel +pm=jakarta +no_defsGEOGCS["Segara (Jakarta)",DATUM["Gunung_Segara_Jakarta",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6820"]],PRIMEM["Jakarta",106.8077194444444,AUTHORITY["EPSG","8908"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4820"]]S=igepsgNord Sahara 1959 (Paris)+proj=longlat +ellps=clrk80 +pm=paris +no_defsGEOGCS["Nord Sahara 1959 (Paris)",DATUM["Nord_Sahara_1959_Paris",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6819"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4819"]] WxW% +!wepsg%unnamed ellipse+proj=longlat +a=6376523 +b=6355862.933255573 +pm=2.3372291666985 +no_defsGEOGCS["unnamed ellipse",DATUM["unknown",SPHEROID["unnamed",6376523,308.6399999999991]],PRIMEM["unnamed",2.3372291666985],UNIT["degree",0.0174532925199433],AUTHORITY["EPSG","4901"]]U3}cepsgVoirol 1879 (Paris)+proj=longlat +a=6378249.2 +b=6356515 +pm=paris +no_defsGEOGCS["Voirol 1879 (Paris)",DATUM["Voirol_1879_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],AUTHORITY["EPSG","6821"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4821"]]  ' 5[epsg'Madrid 1870 (Madrid)+proj=longlat +a=6378298.3 +b=6356657.142669561 +pm=madrid +no_defsGEOGCS["Madrid 1870 (Madrid)",DATUM["Madrid_1870_Madrid",SPHEROID["Struve 1860",6378298.3,294.73,AUTHORITY["EPSG","7028"]],AUTHORITY["EPSG","6903"]],PRIMEM["Madrid",-3.687938888888889,AUTHORITY["EPSG","8905"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4903"]]n& # 5epsg&NDG (Paris)+proj=longlat +a=6376523 +b=6355862.933255573 +pm=paris +no_defsGEOGCS["NDG (Paris)",DATUM["Nord_de_Guerre_Paris",SPHEROID["Plessis 1817",6376523,308.64,AUTHORITY["EPSG","7027"]],AUTHORITY["EPSG","6902"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4902"]] }}(5kiepsg(Lisbon 1890 (Lisbon)+proj=longlat +ellps=bessel +pm=lisbon +no_defsGEOGCS["Lisbon 1890 (Lisbon)",DATUM["Lisbon_1890_Lisbon",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6904"]],PRIMEM["Lisbon",-9.131906111111112,AUTHORITY["EPSG","8902"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4904"]] B$ Q%epsgN$Pulkovo 1995 / Gauss-Kruger zone 4+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=4500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger zone 4",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",1],PARAMETER["false_easting",4500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20004"],AXIS["X",NORTH],AXIS["Y",EAST]] B% Q%epsgN%Pulkovo 1995 / Gauss-Kruger zone 5+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=5500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger zone 5",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",1],PARAMETER["false_easting",5500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20005"],AXIS["X",NORTH],AXIS["Y",EAST]] B& Q%epsgN&Pulkovo 1995 / Gauss-Kruger zone 6+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=6500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger zone 6",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",1],PARAMETER["false_easting",6500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20006"],AXIS["X",NORTH],AXIS["Y",EAST]] B' Q%epsgN'Pulkovo 1995 / Gauss-Kruger zone 7+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=7500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger zone 7",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",1],PARAMETER["false_easting",7500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20007"],AXIS["X",NORTH],AXIS["Y",EAST]] B( Q%epsgN(Pulkovo 1995 / Gauss-Kruger zone 8+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=8500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger zone 8",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",1],PARAMETER["false_easting",8500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20008"],AXIS["X",NORTH],AXIS["Y",EAST]] B) Q%epsgN)Pulkovo 1995 / Gauss-Kruger zone 9+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=9500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger zone 9",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",1],PARAMETER["false_easting",9500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20009"],AXIS["X",NORTH],AXIS["Y",EAST]] F* S)epsgN*Pulkovo 1995 / Gauss-Kruger zone 10+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=10500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger zone 10",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",57],PARAMETER["scale_factor",1],PARAMETER["false_easting",10500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20010"],AXIS["X",NORTH],AXIS["Y",EAST]] F+ S)epsgN+Pulkovo 1995 / Gauss-Kruger zone 11+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=11500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger zone 11",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",63],PARAMETER["scale_factor",1],PARAMETER["false_easting",11500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20011"],AXIS["X",NORTH],AXIS["Y",EAST]] F, S)epsgN,Pulkovo 1995 / Gauss-Kruger zone 12+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=12500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger zone 12",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",69],PARAMETER["scale_factor",1],PARAMETER["false_easting",12500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20012"],AXIS["X",NORTH],AXIS["Y",EAST]] F- S)epsgN-Pulkovo 1995 / Gauss-Kruger zone 13+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=13500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger zone 13",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",1],PARAMETER["false_easting",13500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20013"],AXIS["X",NORTH],AXIS["Y",EAST]] F. S)epsgN.Pulkovo 1995 / Gauss-Kruger zone 14+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=14500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger zone 14",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",1],PARAMETER["false_easting",14500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20014"],AXIS["X",NORTH],AXIS["Y",EAST]] F/ S)epsgN/Pulkovo 1995 / Gauss-Kruger zone 15+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=15500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger zone 15",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",1],PARAMETER["false_easting",15500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20015"],AXIS["X",NORTH],AXIS["Y",EAST]] F0 S)epsgN0Pulkovo 1995 / Gauss-Kruger zone 16+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=16500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger zone 16",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",1],PARAMETER["false_easting",16500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20016"],AXIS["X",NORTH],AXIS["Y",EAST]] F1 S)epsgN1Pulkovo 1995 / Gauss-Kruger zone 17+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=17500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger zone 17",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",1],PARAMETER["false_easting",17500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20017"],AXIS["X",NORTH],AXIS["Y",EAST]] H2 S+epsgN2Pulkovo 1995 / Gauss-Kruger zone 18+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=18500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger zone 18",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",1],PARAMETER["false_easting",18500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20018"],AXIS["X",NORTH],AXIS["Y",EAST]] H3 S+epsgN3Pulkovo 1995 / Gauss-Kruger zone 19+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=19500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger zone 19",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",1],PARAMETER["false_easting",19500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20019"],AXIS["X",NORTH],AXIS["Y",EAST]] H4 S+epsgN4Pulkovo 1995 / Gauss-Kruger zone 20+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=20500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger zone 20",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",1],PARAMETER["false_easting",20500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20020"],AXIS["X",NORTH],AXIS["Y",EAST]] H5 S+epsgN5Pulkovo 1995 / Gauss-Kruger zone 21+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=21500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger zone 21",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",1],PARAMETER["false_easting",21500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20021"],AXIS["X",NORTH],AXIS["Y",EAST]] H6 S+epsgN6Pulkovo 1995 / Gauss-Kruger zone 22+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=22500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger zone 22",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",1],PARAMETER["false_easting",22500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20022"],AXIS["X",NORTH],AXIS["Y",EAST]] H7 S+epsgN7Pulkovo 1995 / Gauss-Kruger zone 23+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=23500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger zone 23",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",1],PARAMETER["false_easting",23500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20023"],AXIS["X",NORTH],AXIS["Y",EAST]] H8 S+epsgN8Pulkovo 1995 / Gauss-Kruger zone 24+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=24500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger zone 24",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",141],PARAMETER["scale_factor",1],PARAMETER["false_easting",24500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20024"],AXIS["X",NORTH],AXIS["Y",EAST]] H9 S+epsgN9Pulkovo 1995 / Gauss-Kruger zone 25+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=25500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger zone 25",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",147],PARAMETER["scale_factor",1],PARAMETER["false_easting",25500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20025"],AXIS["X",NORTH],AXIS["Y",EAST]] H: S+epsgN:Pulkovo 1995 / Gauss-Kruger zone 26+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=26500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger zone 26",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",153],PARAMETER["scale_factor",1],PARAMETER["false_easting",26500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20026"],AXIS["X",NORTH],AXIS["Y",EAST]] H; S+epsgN;Pulkovo 1995 / Gauss-Kruger zone 27+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=27500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger zone 27",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",159],PARAMETER["scale_factor",1],PARAMETER["false_easting",27500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20027"],AXIS["X",NORTH],AXIS["Y",EAST]] H< S+epsgN S+epsgN>Pulkovo 1995 / Gauss-Kruger zone 30+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=30500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger zone 30",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",177],PARAMETER["scale_factor",1],PARAMETER["false_easting",30500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20030"],AXIS["X",NORTH],AXIS["Y",EAST]] ;(5BO\iv,9FS`mz #0=JWdq~ N(epsgN( N)epsgN) N*epsgN* N+epsgN+ N,epsgN, N-epsgN- N.epsgN. N/epsgN/ N0epsgN0 N1epsgN1 N2epsgN2 N3epsgN3 N4epsgN4 N5epsgN5 N6epsgN6 N7epsgN7 N8epsgN8 N9epsgN9 N:epsgN: N;epsgN; NepsgN> N?epsgN? N@epsgN@ N`epsgN` NaepsgNa NbepsgNb NcepsgNc NdepsgNd NeepsgNe NfepsgNf NgepsgNg NhepsgNh NiepsgNi NjepsgNj NkepsgNk NlepsgNl NmepsgNm NnepsgNn NoepsgNo NpepsgNp NqepsgNq NrepsgNr NsepsgNs NtepsgNt NuepsgNu NvepsgNv NwepsgNw NxepsgNx NyepsgNy NzepsgNz N{epsgN{ N|epsgN| NepsgN NepsgN NepsgN NepsgN OepsgO J? S-epsgN?Pulkovo 1995 / Gauss-Kruger zone 31+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=31500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger zone 31",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-177],PARAMETER["scale_factor",1],PARAMETER["false_easting",31500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20031"],AXIS["X",NORTH],AXIS["Y",EAST]] J@ S-epsgN@Pulkovo 1995 / Gauss-Kruger zone 32+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=32500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger zone 32",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-171],PARAMETER["scale_factor",1],PARAMETER["false_easting",32500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20032"],AXIS["X",NORTH],AXIS["Y",EAST]] R` c5epsgN`Pulkovo 1995 / Gauss-Kruger 4N (deprecated)+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 4N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20064"],AXIS["X",NORTH],AXIS["Y",EAST]] Ra c5epsgNaPulkovo 1995 / Gauss-Kruger 5N (deprecated)+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 5N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20065"],AXIS["X",NORTH],AXIS["Y",EAST]] Rb c5epsgNbPulkovo 1995 / Gauss-Kruger 6N (deprecated)+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 6N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20066"],AXIS["X",NORTH],AXIS["Y",EAST]] Rc c5epsgNcPulkovo 1995 / Gauss-Kruger 7N (deprecated)+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 7N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20067"],AXIS["X",NORTH],AXIS["Y",EAST]]cTTZ`flrx~$+29@GNU\cjqx  '.5<CJQX_fmt{}I~KNPRT%'($%&'()*+,-./0123456789:;<=>?@`abcdefghijklmnopqrstuvwxyz{|'Á(ā)Ł*ƁǁȁɁʁˁ́́΁ ρ!Ё"с|ҁ}Ӂ~ԁՁցׁ؁فځہ܁T݁UށVWၟX⁠ Rd c5epsgNdPulkovo 1995 / Gauss-Kruger 8N (deprecated)+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 8N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20068"],AXIS["X",NORTH],AXIS["Y",EAST]] Re c5epsgNePulkovo 1995 / Gauss-Kruger 9N (deprecated)+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 9N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20069"],AXIS["X",NORTH],AXIS["Y",EAST]] Tf e7epsgNfPulkovo 1995 / Gauss-Kruger 10N (deprecated)+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 10N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",57],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20070"],AXIS["X",NORTH],AXIS["Y",EAST]] Tg e7epsgNgPulkovo 1995 / Gauss-Kruger 11N (deprecated)+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 11N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",63],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20071"],AXIS["X",NORTH],AXIS["Y",EAST]] Th e7epsgNhPulkovo 1995 / Gauss-Kruger 12N (deprecated)+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 12N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",69],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20072"],AXIS["X",NORTH],AXIS["Y",EAST]] Ti e7epsgNiPulkovo 1995 / Gauss-Kruger 13N (deprecated)+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 13N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20073"],AXIS["X",NORTH],AXIS["Y",EAST]] Tj e7epsgNjPulkovo 1995 / Gauss-Kruger 14N (deprecated)+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 14N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20074"],AXIS["X",NORTH],AXIS["Y",EAST]] Tk e7epsgNkPulkovo 1995 / Gauss-Kruger 15N (deprecated)+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 15N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20075"],AXIS["X",NORTH],AXIS["Y",EAST]] Tl e7epsgNlPulkovo 1995 / Gauss-Kruger 16N (deprecated)+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 16N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20076"],AXIS["X",NORTH],AXIS["Y",EAST]] Tm e7epsgNmPulkovo 1995 / Gauss-Kruger 17N (deprecated)+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 17N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20077"],AXIS["X",NORTH],AXIS["Y",EAST]] Vn e9epsgNnPulkovo 1995 / Gauss-Kruger 18N (deprecated)+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 18N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20078"],AXIS["X",NORTH],AXIS["Y",EAST]] Vo e9epsgNoPulkovo 1995 / Gauss-Kruger 19N (deprecated)+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 19N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20079"],AXIS["X",NORTH],AXIS["Y",EAST]] Vp e9epsgNpPulkovo 1995 / Gauss-Kruger 20N (deprecated)+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 20N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20080"],AXIS["X",NORTH],AXIS["Y",EAST]] Vq e9epsgNqPulkovo 1995 / Gauss-Kruger 21N (deprecated)+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 21N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20081"],AXIS["X",NORTH],AXIS["Y",EAST]] Vr e9epsgNrPulkovo 1995 / Gauss-Kruger 22N (deprecated)+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 22N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20082"],AXIS["X",NORTH],AXIS["Y",EAST]] Vs e9epsgNsPulkovo 1995 / Gauss-Kruger 23N (deprecated)+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 23N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20083"],AXIS["X",NORTH],AXIS["Y",EAST]] Vt e9epsgNtPulkovo 1995 / Gauss-Kruger 24N (deprecated)+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 24N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",141],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20084"],AXIS["X",NORTH],AXIS["Y",EAST]] Vu e9epsgNuPulkovo 1995 / Gauss-Kruger 25N (deprecated)+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 25N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",147],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20085"],AXIS["X",NORTH],AXIS["Y",EAST]] Vv e9epsgNvPulkovo 1995 / Gauss-Kruger 26N (deprecated)+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 26N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",153],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20086"],AXIS["X",NORTH],AXIS["Y",EAST]] Vw e9epsgNwPulkovo 1995 / Gauss-Kruger 27N (deprecated)+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 27N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",159],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20087"],AXIS["X",NORTH],AXIS["Y",EAST]] Vx e9epsgNxPulkovo 1995 / Gauss-Kruger 28N (deprecated)+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 28N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20088"],AXIS["X",NORTH],AXIS["Y",EAST]] Vy e9epsgNyPulkovo 1995 / Gauss-Kruger 29N (deprecated)+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 29N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",171],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20089"],AXIS["X",NORTH],AXIS["Y",EAST]] Vz e9epsgNzPulkovo 1995 / Gauss-Kruger 30N (deprecated)+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 30N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",177],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20090"],AXIS["X",NORTH],AXIS["Y",EAST]] X{ e;epsgN{Pulkovo 1995 / Gauss-Kruger 31N (deprecated)+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 31N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-177],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20091"],AXIS["X",NORTH],AXIS["Y",EAST]] X| e;epsgN|Pulkovo 1995 / Gauss-Kruger 32N (deprecated)+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 32N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-171],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20092"],AXIS["X",NORTH],AXIS["Y",EAST]] EE6'9qMepsgNAdindan / UTM zone 35N+proj=utm +zone=35 +ellps=clrk80 +units=m +no_defsPROJCS["Adindan / UTM zone 35N",GEOGCS["Adindan",DATUM["Adindan",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6201"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4201"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20135"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] EE6(9qMepsgNAdindan / UTM zone 36N+proj=utm +zone=36 +ellps=clrk80 +units=m +no_defsPROJCS["Adindan / UTM zone 36N",GEOGCS["Adindan",DATUM["Adindan",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6201"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4201"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20136"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] EE6)9qMepsgNAdindan / UTM zone 37N+proj=utm +zone=37 +ellps=clrk80 +units=m +no_defsPROJCS["Adindan / UTM zone 37N",GEOGCS["Adindan",DATUM["Adindan",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6201"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4201"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20137"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] EE6*9qMepsgNAdindan / UTM zone 38N+proj=utm +zone=38 +ellps=clrk80 +units=m +no_defsPROJCS["Adindan / UTM zone 38N",GEOGCS["Adindan",DATUM["Adindan",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6201"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4201"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20138"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] \ 3 epsgOAGD66 / AMG zone 48+proj=utm +zone=48 +south +ellps=aust_SA +units=m +no_defsPROJCS["AGD66 / AMG zone 48",GEOGCS["AGD66",DATUM["Australian_Geodetic_Datum_1966",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],AUTHORITY["EPSG","6202"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4202"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","20248"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] \ 3 epsgOAGD66 / AMG zone 49+proj=utm +zone=49 +south +ellps=aust_SA +units=m +no_defsPROJCS["AGD66 / AMG zone 49",GEOGCS["AGD66",DATUM["Australian_Geodetic_Datum_1966",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],AUTHORITY["EPSG","6202"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4202"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","20249"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] \ 3 epsgOAGD66 / AMG zone 50+proj=utm +zone=50 +south +ellps=aust_SA +units=m +no_defsPROJCS["AGD66 / AMG zone 50",GEOGCS["AGD66",DATUM["Australian_Geodetic_Datum_1966",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],AUTHORITY["EPSG","6202"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4202"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","20250"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] \ 3 epsgOAGD66 / AMG zone 51+proj=utm +zone=51 +south +ellps=aust_SA +units=m +no_defsPROJCS["AGD66 / AMG zone 51",GEOGCS["AGD66",DATUM["Australian_Geodetic_Datum_1966",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],AUTHORITY["EPSG","6202"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4202"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","20251"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] \ 3 epsgOAGD66 / AMG zone 52+proj=utm +zone=52 +south +ellps=aust_SA +units=m +no_defsPROJCS["AGD66 / AMG zone 52",GEOGCS["AGD66",DATUM["Australian_Geodetic_Datum_1966",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],AUTHORITY["EPSG","6202"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4202"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","20252"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] \ 3 epsgOAGD66 / AMG zone 53+proj=utm +zone=53 +south +ellps=aust_SA +units=m +no_defsPROJCS["AGD66 / AMG zone 53",GEOGCS["AGD66",DATUM["Australian_Geodetic_Datum_1966",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],AUTHORITY["EPSG","6202"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4202"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","20253"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] \ 3 epsgOAGD66 / AMG zone 54+proj=utm +zone=54 +south +ellps=aust_SA +units=m +no_defsPROJCS["AGD66 / AMG zone 54",GEOGCS["AGD66",DATUM["Australian_Geodetic_Datum_1966",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],AUTHORITY["EPSG","6202"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4202"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",141],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","20254"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] \ 3 epsgOAGD66 / AMG zone 55+proj=utm +zone=55 +south +ellps=aust_SA +units=m +no_defsPROJCS["AGD66 / AMG zone 55",GEOGCS["AGD66",DATUM["Australian_Geodetic_Datum_1966",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],AUTHORITY["EPSG","6202"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4202"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",147],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","20255"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] \ 3 epsgO AGD66 / AMG zone 56+proj=utm +zone=56 +south +ellps=aust_SA +units=m +no_defsPROJCS["AGD66 / AMG zone 56",GEOGCS["AGD66",DATUM["Australian_Geodetic_Datum_1966",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],AUTHORITY["EPSG","6202"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4202"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",153],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","20256"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] \! 3 epsgO!AGD66 / AMG zone 57+proj=utm +zone=57 +south +ellps=aust_SA +units=m +no_defsPROJCS["AGD66 / AMG zone 57",GEOGCS["AGD66",DATUM["Australian_Geodetic_Datum_1966",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],AUTHORITY["EPSG","6202"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4202"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",159],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","20257"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] \" 3 epsgO"AGD66 / AMG zone 58+proj=utm +zone=58 +south +ellps=aust_SA +units=m +no_defsPROJCS["AGD66 / AMG zone 58",GEOGCS["AGD66",DATUM["Australian_Geodetic_Datum_1966",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],AUTHORITY["EPSG","6202"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4202"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","20258"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] \| 3 epsgO|AGD84 / AMG zone 48+proj=utm +zone=48 +south +ellps=aust_SA +units=m +no_defsPROJCS["AGD84 / AMG zone 48",GEOGCS["AGD84",DATUM["Australian_Geodetic_Datum_1984",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],AUTHORITY["EPSG","6203"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4203"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","20348"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] \} 3 epsgO}AGD84 / AMG zone 49+proj=utm +zone=49 +south +ellps=aust_SA +units=m +no_defsPROJCS["AGD84 / AMG zone 49",GEOGCS["AGD84",DATUM["Australian_Geodetic_Datum_1984",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],AUTHORITY["EPSG","6203"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4203"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","20349"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] \~ 3 epsgO~AGD84 / AMG zone 50+proj=utm +zone=50 +south +ellps=aust_SA +units=m +no_defsPROJCS["AGD84 / AMG zone 50",GEOGCS["AGD84",DATUM["Australian_Geodetic_Datum_1984",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],AUTHORITY["EPSG","6203"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4203"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","20350"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] \ 3 epsgOAGD84 / AMG zone 51+proj=utm +zone=51 +south +ellps=aust_SA +units=m +no_defsPROJCS["AGD84 / AMG zone 51",GEOGCS["AGD84",DATUM["Australian_Geodetic_Datum_1984",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],AUTHORITY["EPSG","6203"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4203"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","20351"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] \ 3 epsgOAGD84 / AMG zone 52+proj=utm +zone=52 +south +ellps=aust_SA +units=m +no_defsPROJCS["AGD84 / AMG zone 52",GEOGCS["AGD84",DATUM["Australian_Geodetic_Datum_1984",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],AUTHORITY["EPSG","6203"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4203"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","20352"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] \ 3 epsgOAGD84 / AMG zone 53+proj=utm +zone=53 +south +ellps=aust_SA +units=m +no_defsPROJCS["AGD84 / AMG zone 53",GEOGCS["AGD84",DATUM["Australian_Geodetic_Datum_1984",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],AUTHORITY["EPSG","6203"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4203"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","20353"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] \ 3 epsgOAGD84 / AMG zone 54+proj=utm +zone=54 +south +ellps=aust_SA +units=m +no_defsPROJCS["AGD84 / AMG zone 54",GEOGCS["AGD84",DATUM["Australian_Geodetic_Datum_1984",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],AUTHORITY["EPSG","6203"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4203"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",141],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","20354"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] \ 3 epsgOAGD84 / AMG zone 55+proj=utm +zone=55 +south +ellps=aust_SA +units=m +no_defsPROJCS["AGD84 / AMG zone 55",GEOGCS["AGD84",DATUM["Australian_Geodetic_Datum_1984",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],AUTHORITY["EPSG","6203"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4203"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",147],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","20355"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] \ 3 epsgOAGD84 / AMG zone 56+proj=utm +zone=56 +south +ellps=aust_SA +units=m +no_defsPROJCS["AGD84 / AMG zone 56",GEOGCS["AGD84",DATUM["Australian_Geodetic_Datum_1984",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],AUTHORITY["EPSG","6203"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4203"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",153],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","20356"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] \ 3 epsgOAGD84 / AMG zone 57+proj=utm +zone=57 +south +ellps=aust_SA +units=m +no_defsPROJCS["AGD84 / AMG zone 57",GEOGCS["AGD84",DATUM["Australian_Geodetic_Datum_1984",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],AUTHORITY["EPSG","6203"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4203"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",159],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","20357"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] \ 3 epsgOAGD84 / AMG zone 58+proj=utm +zone=58 +south +ellps=aust_SA +units=m +no_defsPROJCS["AGD84 / AMG zone 58",GEOGCS["AGD84",DATUM["Australian_Geodetic_Datum_1984",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],AUTHORITY["EPSG","6203"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4203"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","20358"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ==>T?m[epsgOAin el Abd / UTM zone 36N+proj=utm +zone=36 +ellps=intl +units=m +no_defsPROJCS["Ain el Abd / UTM zone 36N",GEOGCS["Ain el Abd",DATUM["Ain_el_Abd_1970",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6204"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4204"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20436"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ==>U?m[epsgOAin el Abd / UTM zone 37N+proj=utm +zone=37 +ellps=intl +units=m +no_defsPROJCS["Ain el Abd / UTM zone 37N",GEOGCS["Ain el Abd",DATUM["Ain_el_Abd_1970",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6204"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4204"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20437"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ==>V?m[epsgOAin el Abd / UTM zone 38N+proj=utm +zone=38 +ellps=intl +units=m +no_defsPROJCS["Ain el Abd / UTM zone 38N",GEOGCS["Ain el Abd",DATUM["Ain_el_Abd_1970",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6204"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4204"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20438"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ;(5BO\iv,9FS`mz #0=JWdq~ OepsgO OepsgO OepsgO OepsgO OepsgO OepsgO O epsgO O!epsgO! O"epsgO" O|epsgO| O}epsgO} O~epsgO~ OepsgO OepsgO OepsgO OepsgO OepsgO OepsgO OepsgO OepsgO OepsgO OepsgO OepsgO OepsgO OepsgO PepsgP P:epsgP: P;epsgP; Q6epsgQ6 Q7epsgQ7 QVepsgQV QWepsgQW QXepsgQX QepsgQ QepsgQ QepsgQ R+epsgR+ R,epsgR, R-epsgR- RgepsgRg RhepsgRh RiepsgRi RlepsgRl RepsgR RepsgR RepsgR S+epsgS+ S,epsgS, SepsgS SepsgS SepsgS SepsgS SepsgS SepsgS SepsgS SepsgS SepsgS SepsgS SepsgS ==>W?m[epsgOAin el Abd / UTM zone 39N+proj=utm +zone=39 +ellps=intl +units=m +no_defsPROJCS["Ain el Abd / UTM zone 39N",GEOGCS["Ain el Abd",DATUM["Ain_el_Abd_1970",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6204"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4204"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20439"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ==>X?m[epsgOAin el Abd / UTM zone 40N+proj=utm +zone=40 +ellps=intl +units=m +no_defsPROJCS["Ain el Abd / UTM zone 40N",GEOGCS["Ain el Abd",DATUM["Ain_el_Abd_1970",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6204"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4204"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20440"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ==>?m[epsgPAin el Abd / Bahrain Grid+proj=utm +zone=39 +ellps=intl +units=m +no_defsPROJCS["Ain el Abd / Bahrain Grid",GEOGCS["Ain el Abd",DATUM["Ain_el_Abd_1970",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6204"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4204"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20499"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] h: 9)wepsgP:Afgooye / UTM zone 38N+proj=utm +zone=38 +ellps=krass +towgs84=-43,-163,45,0,0,0,0 +units=m +no_defsPROJCS["Afgooye / UTM zone 38N",GEOGCS["Afgooye",DATUM["Afgooye",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[-43,-163,45,0,0,0,0],AUTHORITY["EPSG","6205"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4205"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20538"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] h; 9)wepsgP;Afgooye / UTM zone 39N+proj=utm +zone=39 +ellps=krass +towgs84=-43,-163,45,0,0,0,0 +units=m +no_defsPROJCS["Afgooye / UTM zone 39N",GEOGCS["Afgooye",DATUM["Afgooye",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[-43,-163,45,0,0,0,0],AUTHORITY["EPSG","6205"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4205"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20539"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] <6 as-epsgQ6Lisbon (Lisbon) / Portuguese National Grid+proj=tmerc +lat_0=39.66666666666666 +lon_0=1 +k=1 +x_0=200000 +y_0=300000 +ellps=intl +pm=lisbon +units=m +no_defsPROJCS["Lisbon (Lisbon) / Portuguese National Grid",GEOGCS["Lisbon (Lisbon)",DATUM["Lisbon_1937_Lisbon",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6803"]],PRIMEM["Lisbon",-9.131906111111112,AUTHORITY["EPSG","8902"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4803"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",39.66666666666666],PARAMETER["central_meridian",1],PARAMETER["scale_factor",1],PARAMETER["false_easting",200000],PARAMETER["false_northing",300000],AUTHORITY["EPSG","20790"],AXIS["X",EAST],AXIS["Y",NORTH]] 7 O_epsgQ7Lisbon (Lisbon) / Portuguese Grid+proj=tmerc +lat_0=39.66666666666666 +lon_0=1 +k=1 +x_0=0 +y_0=0 +ellps=intl +pm=lisbon +units=m +no_defsPROJCS["Lisbon (Lisbon) / Portuguese Grid",GEOGCS["Lisbon (Lisbon)",DATUM["Lisbon_1937_Lisbon",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6803"]],PRIMEM["Lisbon",-9.131906111111112,AUTHORITY["EPSG","8902"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4803"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",39.66666666666666],PARAMETER["central_meridian",1],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","20791"],AXIS["X",EAST],AXIS["Y",NORTH]] GG4V5{CepsgQVAratu / UTM zone 22S+proj=utm +zone=22 +south +ellps=intl +units=m +no_defsPROJCS["Aratu / UTM zone 22S",GEOGCS["Aratu",DATUM["Aratu",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6208"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4208"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","20822"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] GG4W5{CepsgQWAratu / UTM zone 23S+proj=utm +zone=23 +south +ellps=intl +units=m +no_defsPROJCS["Aratu / UTM zone 23S",GEOGCS["Aratu",DATUM["Aratu",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6208"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4208"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","20823"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] GG4X5{CepsgQXAratu / UTM zone 24S+proj=utm +zone=24 +south +ellps=intl +units=m +no_defsPROJCS["Aratu / UTM zone 24S",GEOGCS["Aratu",DATUM["Aratu",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6208"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4208"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","20824"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] cF ;+iepsgQArc 1950 / UTM zone 34S+proj=utm +zone=34 +south +a=6378249.145 +b=6356514.966398753 +units=m +no_defsPROJCS["Arc 1950 / UTM zone 34S",GEOGCS["Arc 1950",DATUM["Arc_1950",SPHEROID["Clarke 1880 (Arc)",6378249.145,293.4663077,AUTHORITY["EPSG","7013"]],AUTHORITY["EPSG","6209"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4209"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","20934"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] cG ;+iepsgQArc 1950 / UTM zone 35S+proj=utm +zone=35 +south +a=6378249.145 +b=6356514.966398753 +units=m +no_defsPROJCS["Arc 1950 / UTM zone 35S",GEOGCS["Arc 1950",DATUM["Arc_1950",SPHEROID["Clarke 1880 (Arc)",6378249.145,293.4663077,AUTHORITY["EPSG","7013"]],AUTHORITY["EPSG","6209"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4209"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","20935"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] cH ;+iepsgQArc 1950 / UTM zone 36S+proj=utm +zone=36 +south +a=6378249.145 +b=6356514.966398753 +units=m +no_defsPROJCS["Arc 1950 / UTM zone 36S",GEOGCS["Arc 1950",DATUM["Arc_1950",SPHEROID["Clarke 1880 (Arc)",6378249.145,293.4663077,AUTHORITY["EPSG","7013"]],AUTHORITY["EPSG","6209"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4209"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","20936"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 33H+;aepsgR+Arc 1960 / UTM zone 35S+proj=utm +zone=35 +south +ellps=clrk80 +units=m +no_defsPROJCS["Arc 1960 / UTM zone 35S",GEOGCS["Arc 1960",DATUM["Arc_1960",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6210"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4210"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","21035"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 33H,;aepsgR,Arc 1960 / UTM zone 36S+proj=utm +zone=36 +south +ellps=clrk80 +units=m +no_defsPROJCS["Arc 1960 / UTM zone 36S",GEOGCS["Arc 1960",DATUM["Arc_1960",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6210"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4210"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","21036"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 33H-;aepsgR-Arc 1960 / UTM zone 37S+proj=utm +zone=37 +south +ellps=clrk80 +units=m +no_defsPROJCS["Arc 1960 / UTM zone 37S",GEOGCS["Arc 1960",DATUM["Arc_1960",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6210"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4210"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","21037"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] AA:g;qSepsgRgArc 1960 / UTM zone 35N+proj=utm +zone=35 +ellps=clrk80 +units=m +no_defsPROJCS["Arc 1960 / UTM zone 35N",GEOGCS["Arc 1960",DATUM["Arc_1960",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6210"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4210"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21095"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] AA:h;qSepsgRhArc 1960 / UTM zone 36N+proj=utm +zone=36 +ellps=clrk80 +units=m +no_defsPROJCS["Arc 1960 / UTM zone 36N",GEOGCS["Arc 1960",DATUM["Arc_1960",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6210"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4210"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21096"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] AA:i;qSepsgRiArc 1960 / UTM zone 37N+proj=utm +zone=37 +ellps=clrk80 +units=m +no_defsPROJCS["Arc 1960 / UTM zone 37N",GEOGCS["Arc 1960",DATUM["Arc_1960",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6210"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4210"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21097"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] vl YSIepsgRlBatavia (Jakarta) / NEIEZ (deprecated)+proj=merc +lon_0=110 +k=0.997 +x_0=3900000 +y_0=900000 +ellps=bessel +pm=jakarta +units=m +no_defsPROJCS["Batavia (Jakarta) / NEIEZ (deprecated)",GEOGCS["Batavia (Jakarta)",DATUM["Batavia_Jakarta",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6813"]],PRIMEM["Jakarta",106.8077194444444,AUTHORITY["EPSG","8908"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4813"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Mercator_1SP"],PARAMETER["central_meridian",110],PARAMETER["scale_factor",0.997],PARAMETER["false_easting",3900000],PARAMETER["false_northing",900000],AUTHORITY["EPSG","21100"],AXIS["X",EAST],AXIS["Y",NORTH]] 88C9YepsgRBatavia / UTM zone 48S+proj=utm +zone=48 +south +ellps=bessel +units=m +no_defsPROJCS["Batavia / UTM zone 48S",GEOGCS["Batavia",DATUM["Batavia",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6211"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4211"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","21148"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 88C9YepsgRBatavia / UTM zone 49S+proj=utm +zone=49 +south +ellps=bessel +units=m +no_defsPROJCS["Batavia / UTM zone 49S",GEOGCS["Batavia",DATUM["Batavia",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6211"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4211"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","21149"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 88C9YepsgRBatavia / UTM zone 50S+proj=utm +zone=50 +south +ellps=bessel +units=m +no_defsPROJCS["Batavia / UTM zone 50S",GEOGCS["Batavia",DATUM["Batavia",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6211"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4211"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","21150"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] h+ ]'UepsgS+Barbados 1938 / British West Indies Grid+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x_0=400000 +y_0=0 +ellps=clrk80 +towgs84=31.95,300.99,419.19,0,0,0,0 +units=m +no_defsPROJCS["Barbados 1938 / British West Indies Grid",GEOGCS["Barbados 1938",DATUM["Barbados_1938",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[31.95,300.99,419.19,0,0,0,0],AUTHORITY["EPSG","6212"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4212"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-62],PARAMETER["scale_factor",0.9995],PARAMETER["false_easting",400000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21291"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] YY", YYepsgS,Barbados 1938 / Barbados National Grid+proj=tmerc +lat_0=13.17638888888889 +lon_0=-59.55972222222222 +k=0.9999986 +x_0=30000 +y_0=75000 +ellps=clrk80 +towgs84=31.95,300.99,419.19,0,0,0,0 +units=m +no_defsPROJCS["Barbados 1938 / Barbados National Grid",GEOGCS["Barbados 1938",DATUM["Barbados_1938",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[31.95,300.99,419.19,0,0,0,0],AUTHORITY["EPSG","6212"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4212"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",13.17638888888889],PARAMETER["central_meridian",-59.55972222222222],PARAMETER["scale_factor",0.9999986],PARAMETER["false_easting",30000],PARAMETER["false_northing",75000],AUTHORITY["EPSG","21292"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] h% S;KepsgSBeijing 1954 / Gauss-Kruger zone 13+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=13500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger zone 13",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",1],PARAMETER["false_easting",13500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21413"],AXIS["X",NORTH],AXIS["Y",EAST]] h& S;KepsgSBeijing 1954 / Gauss-Kruger zone 14+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=14500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger zone 14",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",1],PARAMETER["false_easting",14500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21414"],AXIS["X",NORTH],AXIS["Y",EAST]] h' S;KepsgSBeijing 1954 / Gauss-Kruger zone 15+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=15500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger zone 15",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",1],PARAMETER["false_easting",15500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21415"],AXIS["X",NORTH],AXIS["Y",EAST]] h( S;KepsgSBeijing 1954 / Gauss-Kruger zone 16+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=16500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger zone 16",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",1],PARAMETER["false_easting",16500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21416"],AXIS["X",NORTH],AXIS["Y",EAST]] h) S;KepsgSBeijing 1954 / Gauss-Kruger zone 17+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=17500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger zone 17",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",1],PARAMETER["false_easting",17500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21417"],AXIS["X",NORTH],AXIS["Y",EAST]] j* S=MepsgSBeijing 1954 / Gauss-Kruger zone 18+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=18500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger zone 18",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",1],PARAMETER["false_easting",18500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21418"],AXIS["X",NORTH],AXIS["Y",EAST]] j+ S=MepsgSBeijing 1954 / Gauss-Kruger zone 19+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=19500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger zone 19",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",1],PARAMETER["false_easting",19500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21419"],AXIS["X",NORTH],AXIS["Y",EAST]] j, S=MepsgSBeijing 1954 / Gauss-Kruger zone 20+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=20500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger zone 20",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",1],PARAMETER["false_easting",20500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21420"],AXIS["X",NORTH],AXIS["Y",EAST]] j- S=MepsgSBeijing 1954 / Gauss-Kruger zone 21+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=21500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger zone 21",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",1],PARAMETER["false_easting",21500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21421"],AXIS["X",NORTH],AXIS["Y",EAST]] j. S=MepsgSBeijing 1954 / Gauss-Kruger zone 22+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=22500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger zone 22",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",1],PARAMETER["false_easting",22500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21422"],AXIS["X",NORTH],AXIS["Y",EAST]] j/ S=MepsgSBeijing 1954 / Gauss-Kruger zone 23+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=23500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger zone 23",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",1],PARAMETER["false_easting",23500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21423"],AXIS["X",NORTH],AXIS["Y",EAST]] bM Q7EepsgSBeijing 1954 / Gauss-Kruger CM 75E+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger CM 75E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21453"],AXIS["X",NORTH],AXIS["Y",EAST]] bN Q7EepsgSBeijing 1954 / Gauss-Kruger CM 81E+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger CM 81E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21454"],AXIS["X",NORTH],AXIS["Y",EAST]] bO Q7EepsgSBeijing 1954 / Gauss-Kruger CM 87E+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger CM 87E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21455"],AXIS["X",NORTH],AXIS["Y",EAST]] bP Q7EepsgSBeijing 1954 / Gauss-Kruger CM 93E+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger CM 93E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21456"],AXIS["X",NORTH],AXIS["Y",EAST]] bQ Q7EepsgSBeijing 1954 / Gauss-Kruger CM 99E+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger CM 99E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21457"],AXIS["X",NORTH],AXIS["Y",EAST]] fR S9IepsgSBeijing 1954 / Gauss-Kruger CM 105E+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger CM 105E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21458"],AXIS["X",NORTH],AXIS["Y",EAST]] fS S9IepsgSBeijing 1954 / Gauss-Kruger CM 111E+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger CM 111E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21459"],AXIS["X",NORTH],AXIS["Y",EAST]] fT S9IepsgSBeijing 1954 / Gauss-Kruger CM 117E+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger CM 117E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21460"],AXIS["X",NORTH],AXIS["Y",EAST]] fU S9IepsgSBeijing 1954 / Gauss-Kruger CM 123E+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger CM 123E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21461"],AXIS["X",NORTH],AXIS["Y",EAST]] fV S9IepsgSBeijing 1954 / Gauss-Kruger CM 129E+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger CM 129E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21462"],AXIS["X",NORTH],AXIS["Y",EAST]]bR HRY`gnu|$+29@GNU\cjqx  '.5<CJQX_fmt{䁠;偢6恢7灢V聢W遢XꁣF끣G쁣H큤+,-ghil+,%&'()*+ , - . / M N O P Q R S T U V W a b c d e f g h i j k |    9 !: " # $ % & ' ( ) * + ,K -L . / 0 1 2 3 4! 5% 6& 7' 8( 9) :* ;+ 1 ?2 @3 A4 B5 CZ D[ E\ F< Gw fW S9IepsgSBeijing 1954 / Gauss-Kruger CM 135E+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger CM 135E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21463"],AXIS["X",NORTH],AXIS["Y",EAST]] va e7YepsgSBeijing 1954 / Gauss-Kruger 13N (deprecated)+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger 13N (deprecated)",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21473"],AXIS["X",NORTH],AXIS["Y",EAST]] vb e7YepsgSBeijing 1954 / Gauss-Kruger 14N (deprecated)+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger 14N (deprecated)",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21474"],AXIS["X",NORTH],AXIS["Y",EAST]] vc e7YepsgSBeijing 1954 / Gauss-Kruger 15N (deprecated)+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger 15N (deprecated)",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21475"],AXIS["X",NORTH],AXIS["Y",EAST]] vd e7YepsgSBeijing 1954 / Gauss-Kruger 16N (deprecated)+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger 16N (deprecated)",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21476"],AXIS["X",NORTH],AXIS["Y",EAST]] ve e7YepsgSBeijing 1954 / Gauss-Kruger 17N (deprecated)+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger 17N (deprecated)",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21477"],AXIS["X",NORTH],AXIS["Y",EAST]] xf e9[epsgSBeijing 1954 / Gauss-Kruger 18N (deprecated)+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger 18N (deprecated)",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21478"],AXIS["X",NORTH],AXIS["Y",EAST]] xg e9[epsgSBeijing 1954 / Gauss-Kruger 19N (deprecated)+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger 19N (deprecated)",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21479"],AXIS["X",NORTH],AXIS["Y",EAST]] xh e9[epsgSBeijing 1954 / Gauss-Kruger 20N (deprecated)+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger 20N (deprecated)",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21480"],AXIS["X",NORTH],AXIS["Y",EAST]] xi e9[epsgSBeijing 1954 / Gauss-Kruger 21N (deprecated)+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger 21N (deprecated)",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21481"],AXIS["X",NORTH],AXIS["Y",EAST]] xj e9[epsgSBeijing 1954 / Gauss-Kruger 22N (deprecated)+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger 22N (deprecated)",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21482"],AXIS["X",NORTH],AXIS["Y",EAST]] xk e9[epsgSBeijing 1954 / Gauss-Kruger 23N (deprecated)+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger 23N (deprecated)",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21483"],AXIS["X",NORTH],AXIS["Y",EAST]] QQ*| ]1OepsgSBelge 1950 (Brussels) / Belge Lambert 50+proj=lcc +lat_1=49.83333333333334 +lat_2=51.16666666666666 +lat_0=90 +lon_0=0 +x_0=150000 +y_0=5400000 +ellps=intl +pm=brussels +units=m +no_defsPROJCS["Belge 1950 (Brussels) / Belge Lambert 50",GEOGCS["Belge 1950 (Brussels)",DATUM["Reseau_National_Belge_1950_Brussels",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6809"]],PRIMEM["Brussels",4.367975,AUTHORITY["EPSG","8910"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4809"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",49.83333333333334],PARAMETER["standard_parallel_2",51.16666666666666],PARAMETER["latitude_of_origin",90],PARAMETER["central_meridian",0],PARAMETER["false_easting",150000],PARAMETER["false_northing",5400000],AUTHORITY["EPSG","21500"],AXIS["X",EAST],AXIS["Y",NORTH]] G =euepsgUBern 1898 (Bern) / LV03C+proj=somerc +lat_0=46.95240555555556 +lon_0=0 +k_0=1 +x_0=0 +y_0=0 +ellps=bessel +pm=bern +units=m +no_defsPROJCS["Bern 1898 (Bern) / LV03C",GEOGCS["Bern 1898 (Bern)",DATUM["CH1903_Bern",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6801"]],PRIMEM["Bern",7.439583333333333,AUTHORITY["EPSG","8907"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4801"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Hotine_Oblique_Mercator"],PARAMETER["latitude_of_center",46.95240555555556],PARAMETER["longitude_of_center",0],PARAMETER["azimuth",90],PARAMETER["rectified_grid_angle",90],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","21780"],AXIS["Y",EAST],AXIS["X",NORTH]] ;(5BO\iv,9FS`mz #0=JWdq~ SepsgS SepsgS SepsgS SepsgS SepsgS SepsgS SepsgS SepsgS SepsgS SepsgS SepsgS SepsgS SepsgS SepsgS SepsgS SepsgS SepsgS SepsgS SepsgS SepsgS SepsgS SepsgS UepsgU UepsgU UepsgU U9epsgU9 U:epsgU: UepsgU UepsgU UepsgU UepsgU UepsgU UepsgU UepsgU UepsgU VepsgV VepsgV VKepsgVK VLepsgVL VepsgV VepsgV VepsgV VepsgV VepsgV VepsgV VepsgV VepsgV VepsgV VepsgV VepsgV VepsgV VepsgV VepsgV VepsgV VepsgV VepsgV VepsgV VepsgV VepsgV ii 'W/epsgUCH1903 / LV03+proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333333333 +k_0=1 +x_0=600000 +y_0=200000 +ellps=bessel +towgs84=674.374,15.056,405.346,0,0,0,0 +units=m +no_defsPROJCS["CH1903 / LV03",GEOGCS["CH1903",DATUM["CH1903",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[674.374,15.056,405.346,0,0,0,0],AUTHORITY["EPSG","6149"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4149"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Hotine_Oblique_Mercator"],PARAMETER["latitude_of_center",46.95240555555556],PARAMETER["longitude_of_center",7.439583333333333],PARAMETER["azimuth",90],PARAMETER["rectified_grid_angle",90],PARAMETER["scale_factor",1],PARAMETER["false_easting",600000],PARAMETER["false_northing",200000],AUTHORITY["EPSG","21781"],AXIS["Y",EAST],AXIS["X",NORTH]] ww -C!epsgUCH1903 / LV03C-G+proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333333333 +k_0=1 +x_0=0 +y_0=0 +ellps=bessel +towgs84=674.374,15.056,405.346,0,0,0,0 +units=m +no_defsPROJCS["CH1903 / LV03C-G",GEOGCS["CH1903",DATUM["CH1903",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[674.374,15.056,405.346,0,0,0,0],AUTHORITY["EPSG","6149"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4149"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Hotine_Oblique_Mercator"],PARAMETER["latitude_of_center",46.95240555555556],PARAMETER["longitude_of_center",7.439583333333333],PARAMETER["azimuth",90],PARAMETER["rectified_grid_angle",90],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","21782"],AXIS["Y",EAST],AXIS["X",NORTH]] 9 [)/epsgU9Bogota 1975 / UTM zone 17N (deprecated)+proj=utm +zone=17 +ellps=intl +towgs84=307,304,-318,0,0,0,0 +units=m +no_defsPROJCS["Bogota 1975 / UTM zone 17N (deprecated)",GEOGCS["Bogota 1975",DATUM["Bogota_1975",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY["EPSG","6218"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4218"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21817"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] {: A)epsgU:Bogota 1975 / UTM zone 18N+proj=utm +zone=18 +ellps=intl +towgs84=307,304,-318,0,0,0,0 +units=m +no_defsPROJCS["Bogota 1975 / UTM zone 18N",GEOGCS["Bogota 1975",DATUM["Bogota_1975",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY["EPSG","6218"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4218"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21818"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] {{ g?cepsgUBogota 1975 / Colombia West zone (deprecated)+proj=tmerc +lat_0=4.599047222222222 +lon_0=-77.08091666666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs84=307,304,-318,0,0,0,0 +units=m +no_defsPROJCS["Bogota 1975 / Colombia West zone (deprecated)",GEOGCS["Bogota 1975",DATUM["Bogota_1975",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY["EPSG","6218"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4218"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",4.599047222222222],PARAMETER["central_meridian",-77.08091666666667],PARAMETER["scale_factor",1],PARAMETER["false_easting",1000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","21891"],AXIS["X",EAST],AXIS["Y",NORTH]] ww k?gepsgUBogota 1975 / Colombia Bogota zone (deprecated)+proj=tmerc +lat_0=4.599047222222222 +lon_0=-74.08091666666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs84=307,304,-318,0,0,0,0 +units=m +no_defsPROJCS["Bogota 1975 / Colombia Bogota zone (deprecated)",GEOGCS["Bogota 1975",DATUM["Bogota_1975",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY["EPSG","6218"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4218"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",4.599047222222222],PARAMETER["central_meridian",-74.08091666666667],PARAMETER["scale_factor",1],PARAMETER["false_easting",1000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","21892"],AXIS["X",EAST],AXIS["Y",NORTH]] kk w?sepsgUBogota 1975 / Colombia East Central zone (deprecated)+proj=tmerc +lat_0=4.599047222222222 +lon_0=-71.08091666666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs84=307,304,-318,0,0,0,0 +units=m +no_defsPROJCS["Bogota 1975 / Colombia East Central zone (deprecated)",GEOGCS["Bogota 1975",DATUM["Bogota_1975",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY["EPSG","6218"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4218"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",4.599047222222222],PARAMETER["central_meridian",-71.08091666666667],PARAMETER["scale_factor",1],PARAMETER["false_easting",1000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","21893"],AXIS["X",EAST],AXIS["Y",NORTH]] v ]?YepsgUBogota 1975 / Colombia East (deprecated)+proj=tmerc +lat_0=4.599047222222222 +lon_0=-68.08091666666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs84=307,304,-318,0,0,0,0 +units=m +no_defsPROJCS["Bogota 1975 / Colombia East (deprecated)",GEOGCS["Bogota 1975",DATUM["Bogota_1975",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY["EPSG","6218"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4218"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",4.599047222222222],PARAMETER["central_meridian",-68.08091666666667],PARAMETER["scale_factor",1],PARAMETER["false_easting",1000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","21894"],AXIS["X",EAST],AXIS["Y",NORTH]] f M?IepsgUBogota 1975 / Colombia West zone+proj=tmerc +lat_0=4.599047222222222 +lon_0=-77.08091666666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs84=307,304,-318,0,0,0,0 +units=m +no_defsPROJCS["Bogota 1975 / Colombia West zone",GEOGCS["Bogota 1975",DATUM["Bogota_1975",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY["EPSG","6218"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4218"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",4.599047222222222],PARAMETER["central_meridian",-77.08091666666667],PARAMETER["scale_factor",1],PARAMETER["false_easting",1000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","21896"],AXIS["X",NORTH],AXIS["Y",EAST]] j Q?MepsgUBogota 1975 / Colombia Bogota zone+proj=tmerc +lat_0=4.599047222222222 +lon_0=-74.08091666666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs84=307,304,-318,0,0,0,0 +units=m +no_defsPROJCS["Bogota 1975 / Colombia Bogota zone",GEOGCS["Bogota 1975",DATUM["Bogota_1975",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY["EPSG","6218"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4218"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",4.599047222222222],PARAMETER["central_meridian",-74.08091666666667],PARAMETER["scale_factor",1],PARAMETER["false_easting",1000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","21897"],AXIS["X",NORTH],AXIS["Y",EAST]] v ]?YepsgUBogota 1975 / Colombia East Central zone+proj=tmerc +lat_0=4.599047222222222 +lon_0=-71.08091666666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs84=307,304,-318,0,0,0,0 +units=m +no_defsPROJCS["Bogota 1975 / Colombia East Central zone",GEOGCS["Bogota 1975",DATUM["Bogota_1975",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY["EPSG","6218"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4218"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",4.599047222222222],PARAMETER["central_meridian",-71.08091666666667],PARAMETER["scale_factor",1],PARAMETER["false_easting",1000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","21898"],AXIS["X",NORTH],AXIS["Y",EAST]] \ C??epsgUBogota 1975 / Colombia East+proj=tmerc +lat_0=4.599047222222222 +lon_0=-68.08091666666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs84=307,304,-318,0,0,0,0 +units=m +no_defsPROJCS["Bogota 1975 / Colombia East",GEOGCS["Bogota 1975",DATUM["Bogota_1975",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY["EPSG","6218"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4218"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",4.599047222222222],PARAMETER["central_meridian",-68.08091666666667],PARAMETER["scale_factor",1],PARAMETER["false_easting",1000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","21899"],AXIS["X",NORTH],AXIS["Y",EAST]] 44G;_epsgVCamacupa / UTM zone 32S+proj=utm +zone=32 +south +ellps=clrk80 +units=m +no_defsPROJCS["Camacupa / UTM zone 32S",GEOGCS["Camacupa",DATUM["Camacupa",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6220"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4220"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","22032"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 33H;aepsgVCamacupa / UTM zone 33S+proj=utm +zone=33 +south +ellps=clrk80 +units=m +no_defsPROJCS["Camacupa / UTM zone 33S",GEOGCS["Camacupa",DATUM["Camacupa",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6220"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4220"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","22033"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] tK 9UcepsgVKCamacupa / TM 11.30 SE+proj=tmerc +lat_0=0 +lon_0=11.5 +k=0.9996 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defsPROJCS["Camacupa / TM 11.30 SE",GEOGCS["Camacupa",DATUM["Camacupa",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6220"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4220"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",11.5],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","22091"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] jL 3QYepsgVLCamacupa / TM 12 SE+proj=tmerc +lat_0=0 +lon_0=12 +k=0.9996 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defsPROJCS["Camacupa / TM 12 SE",GEOGCS["Camacupa",DATUM["Camacupa",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6220"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4220"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",12],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","22092"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] k ;?eepsgVPOSGAR 98 / Argentina 1+proj=tmerc +lat_0=-90 +lon_0=-72 +k=1 +x_0=1500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["POSGAR 98 / Argentina 1",GEOGCS["POSGAR 98",DATUM["Posiciones_Geodesicas_Argentinas_1998",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6190"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4190"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-72],PARAMETER["scale_factor",1],PARAMETER["false_easting",1500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","22171"],AXIS["X",NORTH],AXIS["Y",EAST]] k ;?eepsgVPOSGAR 98 / Argentina 2+proj=tmerc +lat_0=-90 +lon_0=-69 +k=1 +x_0=2500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["POSGAR 98 / Argentina 2",GEOGCS["POSGAR 98",DATUM["Posiciones_Geodesicas_Argentinas_1998",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6190"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4190"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",1],PARAMETER["false_easting",2500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","22172"],AXIS["X",NORTH],AXIS["Y",EAST]] k ;?eepsgVPOSGAR 98 / Argentina 3+proj=tmerc +lat_0=-90 +lon_0=-66 +k=1 +x_0=3500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["POSGAR 98 / Argentina 3",GEOGCS["POSGAR 98",DATUM["Posiciones_Geodesicas_Argentinas_1998",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6190"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4190"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-66],PARAMETER["scale_factor",1],PARAMETER["false_easting",3500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","22173"],AXIS["X",NORTH],AXIS["Y",EAST]] k ;?eepsgVPOSGAR 98 / Argentina 4+proj=tmerc +lat_0=-90 +lon_0=-63 +k=1 +x_0=4500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["POSGAR 98 / Argentina 4",GEOGCS["POSGAR 98",DATUM["Posiciones_Geodesicas_Argentinas_1998",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6190"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4190"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",1],PARAMETER["false_easting",4500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","22174"],AXIS["X",NORTH],AXIS["Y",EAST]] k ;?eepsgVPOSGAR 98 / Argentina 5+proj=tmerc +lat_0=-90 +lon_0=-60 +k=1 +x_0=5500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["POSGAR 98 / Argentina 5",GEOGCS["POSGAR 98",DATUM["Posiciones_Geodesicas_Argentinas_1998",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6190"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4190"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-60],PARAMETER["scale_factor",1],PARAMETER["false_easting",5500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","22175"],AXIS["X",NORTH],AXIS["Y",EAST]] k ;?eepsgVPOSGAR 98 / Argentina 6+proj=tmerc +lat_0=-90 +lon_0=-57 +k=1 +x_0=6500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["POSGAR 98 / Argentina 6",GEOGCS["POSGAR 98",DATUM["Posiciones_Geodesicas_Argentinas_1998",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6190"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4190"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",1],PARAMETER["false_easting",6500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","22176"],AXIS["X",NORTH],AXIS["Y",EAST]] k! ;?eepsgVPOSGAR 98 / Argentina 7+proj=tmerc +lat_0=-90 +lon_0=-54 +k=1 +x_0=7500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["POSGAR 98 / Argentina 7",GEOGCS["POSGAR 98",DATUM["Posiciones_Geodesicas_Argentinas_1998",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6190"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4190"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-54],PARAMETER["scale_factor",1],PARAMETER["false_easting",7500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","22177"],AXIS["X",NORTH],AXIS["Y",EAST]] % ;mepsgVPOSGAR 94 / Argentina 1+proj=tmerc +lat_0=-90 +lon_0=-72 +k=1 +x_0=1500000 +y_0=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["POSGAR 94 / Argentina 1",GEOGCS["POSGAR 94",DATUM["Posiciones_Geodesicas_Argentinas_1994",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6694"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4694"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-72],PARAMETER["scale_factor",1],PARAMETER["false_easting",1500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","22181"],AXIS["X",NORTH],AXIS["Y",EAST]] & ;mepsgVPOSGAR 94 / Argentina 2+proj=tmerc +lat_0=-90 +lon_0=-69 +k=1 +x_0=2500000 +y_0=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["POSGAR 94 / Argentina 2",GEOGCS["POSGAR 94",DATUM["Posiciones_Geodesicas_Argentinas_1994",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6694"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4694"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",1],PARAMETER["false_easting",2500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","22182"],AXIS["X",NORTH],AXIS["Y",EAST]] ' ;mepsgVPOSGAR 94 / Argentina 3+proj=tmerc +lat_0=-90 +lon_0=-66 +k=1 +x_0=3500000 +y_0=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["POSGAR 94 / Argentina 3",GEOGCS["POSGAR 94",DATUM["Posiciones_Geodesicas_Argentinas_1994",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6694"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4694"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-66],PARAMETER["scale_factor",1],PARAMETER["false_easting",3500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","22183"],AXIS["X",NORTH],AXIS["Y",EAST]] ( ;mepsgVPOSGAR 94 / Argentina 4+proj=tmerc +lat_0=-90 +lon_0=-63 +k=1 +x_0=4500000 +y_0=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["POSGAR 94 / Argentina 4",GEOGCS["POSGAR 94",DATUM["Posiciones_Geodesicas_Argentinas_1994",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6694"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4694"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",1],PARAMETER["false_easting",4500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","22184"],AXIS["X",NORTH],AXIS["Y",EAST]] ) ;mepsgVPOSGAR 94 / Argentina 5+proj=tmerc +lat_0=-90 +lon_0=-60 +k=1 +x_0=5500000 +y_0=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["POSGAR 94 / Argentina 5",GEOGCS["POSGAR 94",DATUM["Posiciones_Geodesicas_Argentinas_1994",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6694"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4694"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-60],PARAMETER["scale_factor",1],PARAMETER["false_easting",5500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","22185"],AXIS["X",NORTH],AXIS["Y",EAST]] * ;mepsgVPOSGAR 94 / Argentina 6+proj=tmerc +lat_0=-90 +lon_0=-57 +k=1 +x_0=6500000 +y_0=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["POSGAR 94 / Argentina 6",GEOGCS["POSGAR 94",DATUM["Posiciones_Geodesicas_Argentinas_1994",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6694"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4694"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",1],PARAMETER["false_easting",6500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","22186"],AXIS["X",NORTH],AXIS["Y",EAST]] + ;mepsgVPOSGAR 94 / Argentina 7+proj=tmerc +lat_0=-90 +lon_0=-54 +k=1 +x_0=7500000 +y_0=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["POSGAR 94 / Argentina 7",GEOGCS["POSGAR 94",DATUM["Posiciones_Geodesicas_Argentinas_1994",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6694"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4694"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-54],PARAMETER["scale_factor",1],PARAMETER["false_easting",7500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","22187"],AXIS["X",NORTH],AXIS["Y",EAST]] f/ G=QepsgVCampo Inchauspe / Argentina 1+proj=tmerc +lat_0=-90 +lon_0=-72 +k=1 +x_0=1500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["Campo Inchauspe / Argentina 1",GEOGCS["Campo Inchauspe",DATUM["Campo_Inchauspe",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6221"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4221"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-72],PARAMETER["scale_factor",1],PARAMETER["false_easting",1500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","22191"],AXIS["X",NORTH],AXIS["Y",EAST]] f0 G=QepsgVCampo Inchauspe / Argentina 2+proj=tmerc +lat_0=-90 +lon_0=-69 +k=1 +x_0=2500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["Campo Inchauspe / Argentina 2",GEOGCS["Campo Inchauspe",DATUM["Campo_Inchauspe",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6221"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4221"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",1],PARAMETER["false_easting",2500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","22192"],AXIS["X",NORTH],AXIS["Y",EAST]] f1 G=QepsgVCampo Inchauspe / Argentina 3+proj=tmerc +lat_0=-90 +lon_0=-66 +k=1 +x_0=3500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["Campo Inchauspe / Argentina 3",GEOGCS["Campo Inchauspe",DATUM["Campo_Inchauspe",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6221"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4221"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-66],PARAMETER["scale_factor",1],PARAMETER["false_easting",3500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","22193"],AXIS["X",NORTH],AXIS["Y",EAST]] f2 G=QepsgVCampo Inchauspe / Argentina 4+proj=tmerc +lat_0=-90 +lon_0=-63 +k=1 +x_0=4500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["Campo Inchauspe / Argentina 4",GEOGCS["Campo Inchauspe",DATUM["Campo_Inchauspe",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6221"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4221"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",1],PARAMETER["false_easting",4500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","22194"],AXIS["X",NORTH],AXIS["Y",EAST]] f3 G=QepsgVCampo Inchauspe / Argentina 5+proj=tmerc +lat_0=-90 +lon_0=-60 +k=1 +x_0=5500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["Campo Inchauspe / Argentina 5",GEOGCS["Campo Inchauspe",DATUM["Campo_Inchauspe",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6221"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4221"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-60],PARAMETER["scale_factor",1],PARAMETER["false_easting",5500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","22195"],AXIS["X",NORTH],AXIS["Y",EAST]] f4 G=QepsgVCampo Inchauspe / Argentina 6+proj=tmerc +lat_0=-90 +lon_0=-57 +k=1 +x_0=6500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["Campo Inchauspe / Argentina 6",GEOGCS["Campo Inchauspe",DATUM["Campo_Inchauspe",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6221"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4221"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",1],PARAMETER["false_easting",6500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","22196"],AXIS["X",NORTH],AXIS["Y",EAST]] f5 G=QepsgVCampo Inchauspe / Argentina 7+proj=tmerc +lat_0=-90 +lon_0=-54 +k=1 +x_0=7500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["Campo Inchauspe / Argentina 7",GEOGCS["Campo Inchauspe",DATUM["Campo_Inchauspe",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6221"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4221"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-54],PARAMETER["scale_factor",1],PARAMETER["false_easting",7500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","22197"],AXIS["X",NORTH],AXIS["Y",EAST]] ((SZ 3+QepsgVCape / UTM zone 34S+proj=utm +zone=34 +south +a=6378249.145 +b=6356514.966398753 +units=m +no_defsPROJCS["Cape / UTM zone 34S",GEOGCS["Cape",DATUM["Cape",SPHEROID["Clarke 1880 (Arc)",6378249.145,293.4663077,AUTHORITY["EPSG","7013"]],AUTHORITY["EPSG","6222"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4222"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","22234"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ((S[ 3+QepsgVCape / UTM zone 35S+proj=utm +zone=35 +south +a=6378249.145 +b=6356514.966398753 +units=m +no_defsPROJCS["Cape / UTM zone 35S",GEOGCS["Cape",DATUM["Cape",SPHEROID["Clarke 1880 (Arc)",6378249.145,293.4663077,AUTHORITY["EPSG","7013"]],AUTHORITY["EPSG","6222"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4222"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","22235"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ((S\ 3+QepsgVCape / UTM zone 36S+proj=utm +zone=36 +south +a=6378249.145 +b=6356514.966398753 +units=m +no_defsPROJCS["Cape / UTM zone 36S",GEOGCS["Cape",DATUM["Cape",SPHEROID["Clarke 1880 (Arc)",6378249.145,293.4663077,AUTHORITY["EPSG","7013"]],AUTHORITY["EPSG","6222"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4222"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","22236"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] \< ;%aepsgW ? @ E F G H I J K L N O P Q R S T U V o p $  q r w x y       2 3 /" Mepsg]"DGN95 / Indonesia TM-3 zone 52.2+proj=tmerc +lat_0=0 +lon_0=130.5 +k=0.9999 +x_0=200000 +y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["DGN95 / Indonesia TM-3 zone 52.2",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",130.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",200000],PARAMETER["false_northing",1500000],AUTHORITY["EPSG","23842"],AXIS["X",EAST],AXIS["Y",NORTH]] /# Mepsg]#DGN95 / Indonesia TM-3 zone 53.1+proj=tmerc +lat_0=0 +lon_0=133.5 +k=0.9999 +x_0=200000 +y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["DGN95 / Indonesia TM-3 zone 53.1",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",133.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",200000],PARAMETER["false_northing",1500000],AUTHORITY["EPSG","23843"],AXIS["X",EAST],AXIS["Y",NORTH]] /$ Mepsg]$DGN95 / Indonesia TM-3 zone 53.2+proj=tmerc +lat_0=0 +lon_0=136.5 +k=0.9999 +x_0=200000 +y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["DGN95 / Indonesia TM-3 zone 53.2",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",136.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",200000],PARAMETER["false_northing",1500000],AUTHORITY["EPSG","23844"],AXIS["X",EAST],AXIS["Y",NORTH]] /% Mepsg]%DGN95 / Indonesia TM-3 zone 54.1+proj=tmerc +lat_0=0 +lon_0=139.5 +k=0.9999 +x_0=200000 +y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["DGN95 / Indonesia TM-3 zone 54.1",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",139.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",200000],PARAMETER["false_northing",1500000],AUTHORITY["EPSG","23845"],AXIS["X",EAST],AXIS["Y",NORTH]] ''T& 3kepsg]&ID74 / UTM zone 46N+proj=utm +zone=46 +a=6378160 +b=6356774.50408554 +units=m +no_defsPROJCS["ID74 / UTM zone 46N",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","23846"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ''T' 3kepsg]'ID74 / UTM zone 47N+proj=utm +zone=47 +a=6378160 +b=6356774.50408554 +units=m +no_defsPROJCS["ID74 / UTM zone 47N",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","23847"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] &&U( 3mepsg](ID74 / UTM zone 48N+proj=utm +zone=48 +a=6378160 +b=6356774.50408554 +units=m +no_defsPROJCS["ID74 / UTM zone 48N",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","23848"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] &&U) 3mepsg])ID74 / UTM zone 49N+proj=utm +zone=49 +a=6378160 +b=6356774.50408554 +units=m +no_defsPROJCS["ID74 / UTM zone 49N",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","23849"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] &&U* 3mepsg]*ID74 / UTM zone 50N+proj=utm +zone=50 +a=6378160 +b=6356774.50408554 +units=m +no_defsPROJCS["ID74 / UTM zone 50N",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","23850"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] &&U+ 3mepsg]+ID74 / UTM zone 51N+proj=utm +zone=51 +a=6378160 +b=6356774.50408554 +units=m +no_defsPROJCS["ID74 / UTM zone 51N",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","23851"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] &&U, 3mepsg],ID74 / UTM zone 52N+proj=utm +zone=52 +a=6378160 +b=6356774.50408554 +units=m +no_defsPROJCS["ID74 / UTM zone 52N",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","23852"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]   o- Mepsg]-ID74 / UTM zone 53N (deprecated)+proj=utm +zone=53 +a=6378160 +b=6356774.50408554 +units=m +no_defsPROJCS["ID74 / UTM zone 53N (deprecated)",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","23853"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] i: 5 epsg]:DGN95 / UTM zone 46N+proj=utm +zone=46 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["DGN95 / UTM zone 46N",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","23866"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] i; 5 epsg];DGN95 / UTM zone 47N+proj=utm +zone=47 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["DGN95 / UTM zone 47N",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","23867"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] j< 5 epsg] 5 epsg]>DGN95 / UTM zone 50N+proj=utm +zone=50 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["DGN95 / UTM zone 50N",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","23870"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] j? 5 epsg]?DGN95 / UTM zone 51N+proj=utm +zone=51 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["DGN95 / UTM zone 51N",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","23871"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] j@ 5 epsg]@DGN95 / UTM zone 52N+proj=utm +zone=52 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["DGN95 / UTM zone 52N",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","23872"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] wE 5+epsg]EDGN95 / UTM zone 47S+proj=utm +zone=47 +south +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["DGN95 / UTM zone 47S",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","23877"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] xF 5+epsg]FDGN95 / UTM zone 48S+proj=utm +zone=48 +south +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["DGN95 / UTM zone 48S",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","23878"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] xG 5+epsg]GDGN95 / UTM zone 49S+proj=utm +zone=49 +south +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["DGN95 / UTM zone 49S",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","23879"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] xH 5+epsg]HDGN95 / UTM zone 50S+proj=utm +zone=50 +south +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["DGN95 / UTM zone 50S",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","23880"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] xI 5+epsg]IDGN95 / UTM zone 51S+proj=utm +zone=51 +south +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["DGN95 / UTM zone 51S",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","23881"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] xJ 5+epsg]JDGN95 / UTM zone 52S+proj=utm +zone=52 +south +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["DGN95 / UTM zone 52S",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","23882"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] xK 5+epsg]KDGN95 / UTM zone 53S+proj=utm +zone=53 +south +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["DGN95 / UTM zone 53S",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","23883"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] xL 5+epsg]LDGN95 / UTM zone 54S+proj=utm +zone=54 +south +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["DGN95 / UTM zone 54S",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",141],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","23884"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] |N M!epsg]NID74 / UTM zone 46S (deprecated)+proj=utm +zone=46 +south +a=6378160 +b=6356774.50408554 +units=m +no_defsPROJCS["ID74 / UTM zone 46S (deprecated)",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","23886"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] bO 3!yepsg]OID74 / UTM zone 47S+proj=utm +zone=47 +south +a=6378160 +b=6356774.50408554 +units=m +no_defsPROJCS["ID74 / UTM zone 47S",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","23887"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] cP 3!{epsg]PID74 / UTM zone 48S+proj=utm +zone=48 +south +a=6378160 +b=6356774.50408554 +units=m +no_defsPROJCS["ID74 / UTM zone 48S",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","23888"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] cQ 3!{epsg]QID74 / UTM zone 49S+proj=utm +zone=49 +south +a=6378160 +b=6356774.50408554 +units=m +no_defsPROJCS["ID74 / UTM zone 49S",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","23889"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] cR 3!{epsg]RID74 / UTM zone 50S+proj=utm +zone=50 +south +a=6378160 +b=6356774.50408554 +units=m +no_defsPROJCS["ID74 / UTM zone 50S",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","23890"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] cS 3!{epsg]SID74 / UTM zone 51S+proj=utm +zone=51 +south +a=6378160 +b=6356774.50408554 +units=m +no_defsPROJCS["ID74 / UTM zone 51S",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","23891"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] cT 3!{epsg]TID74 / UTM zone 52S+proj=utm +zone=52 +south +a=6378160 +b=6356774.50408554 +units=m +no_defsPROJCS["ID74 / UTM zone 52S",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","23892"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] cU 3!{epsg]UID74 / UTM zone 53S+proj=utm +zone=53 +south +a=6378160 +b=6356774.50408554 +units=m +no_defsPROJCS["ID74 / UTM zone 53S",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","23893"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ;(5BO\iv,9FS`mz #0=JWdq~ ]:epsg]: ];epsg]; ]epsg]> ]?epsg]? ]@epsg]@ ]Eepsg]E ]Fepsg]F ]Gepsg]G ]Hepsg]H ]Iepsg]I ]Jepsg]J ]Kepsg]K ]Lepsg]L ]Nepsg]N ]Oepsg]O ]Pepsg]P ]Qepsg]Q ]Repsg]R ]Sepsg]S ]Tepsg]T ]Uepsg]U ]Vepsg]V ]epsg] ]epsg] ]epsg] ]epsg] ]epsg] ^$epsg^$ ^epsg^ ^epsg^ ^epsg^ ^epsg^ ^epsg^ ^epsg^ _epsg_ _epsg_ _epsg_ _epsg_ _epsg_ _epsg_ _2epsg_2 _3epsg_3 _4epsg_4 _5epsg_5 _6epsg_6 _7epsg_7 _8epsg_8 _9epsg_9 _:epsg_: _;epsg_; _epsg_> _?epsg_? _epsg_ _epsg_ _epsg_ cV 3!{epsg]VID74 / UTM zone 54S+proj=utm +zone=54 +south +a=6378160 +b=6356774.50408554 +units=m +no_defsPROJCS["ID74 / UTM zone 54S",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",141],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","23894"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] $ AU;epsg]Indian 1954 / UTM zone 46N+proj=utm +zone=46 +a=6377276.345 +b=6356075.41314024 +towgs84=217,823,299,0,0,0,0 +units=m +no_defsPROJCS["Indian 1954 / UTM zone 46N",GEOGCS["Indian 1954",DATUM["Indian_1954",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],TOWGS84[217,823,299,0,0,0,0],AUTHORITY["EPSG","6239"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4239"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","23946"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] $ AU;epsg]Indian 1954 / UTM zone 47N+proj=utm +zone=47 +a=6377276.345 +b=6356075.41314024 +towgs84=217,823,299,0,0,0,0 +units=m +no_defsPROJCS["Indian 1954 / UTM zone 47N",GEOGCS["Indian 1954",DATUM["Indian_1954",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],TOWGS84[217,823,299,0,0,0,0],AUTHORITY["EPSG","6239"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4239"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","23947"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] % AU=epsg]Indian 1954 / UTM zone 48N+proj=utm +zone=48 +a=6377276.345 +b=6356075.41314024 +towgs84=217,823,299,0,0,0,0 +units=m +no_defsPROJCS["Indian 1954 / UTM zone 48N",GEOGCS["Indian 1954",DATUM["Indian_1954",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],TOWGS84[217,823,299,0,0,0,0],AUTHORITY["EPSG","6239"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4239"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","23948"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] jo Aepsg]Indian 1975 / UTM zone 47N+proj=utm +zone=47 +a=6377276.345 +b=6356075.41314024 +units=m +no_defsPROJCS["Indian 1975 / UTM zone 47N",GEOGCS["Indian 1975",DATUM["Indian_1975",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],AUTHORITY["EPSG","6240"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4240"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","24047"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] kp Aepsg]Indian 1975 / UTM zone 48N+proj=utm +zone=48 +a=6377276.345 +b=6356075.41314024 +units=m +no_defsPROJCS["Indian 1975 / UTM zone 48N",GEOGCS["Indian 1975",DATUM["Indian_1975",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],AUTHORITY["EPSG","6240"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4240"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","24048"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] i$ OGEepsg^$Jamaica 1875 / Jamaica (Old Grid)+proj=lcc +lat_1=18 +lat_0=18 +lon_0=-77 +k_0=1 +x_0=167638.49597 +y_0=121918.90616 +a=6378249.144808011 +b=6356514.966204134 +to_meter=0.3047972654 +no_defsPROJCS["Jamaica 1875 / Jamaica (Old Grid)",GEOGCS["Jamaica 1875",DATUM["Jamaica_1875",SPHEROID["Clarke 1880",6378249.144808011,293.4663076556349,AUTHORITY["EPSG","7034"]],AUTHORITY["EPSG","6241"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4241"]],UNIT["Clarke's foot",0.3047972654,AUTHORITY["EPSG","9005"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",18],PARAMETER["central_meridian",-77],PARAMETER["scale_factor",1],PARAMETER["false_easting",550000],PARAMETER["false_northing",400000],AUTHORITY["EPSG","24100"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]   G[yepsg^JAD69 / Jamaica National Grid+proj=lcc +lat_1=18 +lat_0=18 +lon_0=-77 +k_0=1 +x_0=250000 +y_0=150000 +ellps=clrk66 +units=m +no_defsPROJCS["JAD69 / Jamaica National Grid",GEOGCS["JAD69",DATUM["Jamaica_1969",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6242"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4242"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",18],PARAMETER["central_meridian",-77],PARAMETER["scale_factor",1],PARAMETER["false_easting",250000],PARAMETER["false_northing",150000],AUTHORITY["EPSG","24200"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] vq Gepsg^Kalianpur 1937 / UTM zone 45N+proj=utm +zone=45 +a=6377276.345 +b=6356075.41314024 +units=m +no_defsPROJCS["Kalianpur 1937 / UTM zone 45N",GEOGCS["Kalianpur 1937",DATUM["Kalianpur_1937",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],AUTHORITY["EPSG","6144"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4144"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","24305"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] vr Gepsg^Kalianpur 1937 / UTM zone 46N+proj=utm +zone=46 +a=6377276.345 +b=6356075.41314024 +units=m +no_defsPROJCS["Kalianpur 1937 / UTM zone 46N",GEOGCS["Kalianpur 1937",DATUM["Kalianpur_1937",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],AUTHORITY["EPSG","6144"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4144"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","24306"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] zw Gepsg^Kalianpur 1962 / UTM zone 41N+proj=utm +zone=41 +a=6377301.243 +b=6356100.230165384 +units=m +no_defsPROJCS["Kalianpur 1962 / UTM zone 41N",GEOGCS["Kalianpur 1962",DATUM["Kalianpur_1962",SPHEROID["Everest 1830 (1962 Definition)",6377301.243,300.8017255,AUTHORITY["EPSG","7044"]],AUTHORITY["EPSG","6145"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4145"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","24311"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] zx Gepsg^Kalianpur 1962 / UTM zone 42N+proj=utm +zone=42 +a=6377301.243 +b=6356100.230165384 +units=m +no_defsPROJCS["Kalianpur 1962 / UTM zone 42N",GEOGCS["Kalianpur 1962",DATUM["Kalianpur_1962",SPHEROID["Everest 1830 (1962 Definition)",6377301.243,300.8017255,AUTHORITY["EPSG","7044"]],AUTHORITY["EPSG","6145"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4145"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","24312"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] zy Gepsg^Kalianpur 1962 / UTM zone 43N+proj=utm +zone=43 +a=6377301.243 +b=6356100.230165384 +units=m +no_defsPROJCS["Kalianpur 1962 / UTM zone 43N",GEOGCS["Kalianpur 1962",DATUM["Kalianpur_1962",SPHEROID["Everest 1830 (1962 Definition)",6377301.243,300.8017255,AUTHORITY["EPSG","7044"]],AUTHORITY["EPSG","6145"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4145"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","24313"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 4 GWSepsg_Kalianpur 1975 / UTM zone 42N+proj=utm +zone=42 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defsPROJCS["Kalianpur 1975 / UTM zone 42N",GEOGCS["Kalianpur 1975",DATUM["Kalianpur_1975",SPHEROID["Everest 1830 (1975 Definition)",6377299.151,300.8017255,AUTHORITY["EPSG","7045"]],TOWGS84[295,736,257,0,0,0,0],AUTHORITY["EPSG","6146"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4146"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","24342"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 4 GWSepsg_Kalianpur 1975 / UTM zone 43N+proj=utm +zone=43 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defsPROJCS["Kalianpur 1975 / UTM zone 43N",GEOGCS["Kalianpur 1975",DATUM["Kalianpur_1975",SPHEROID["Everest 1830 (1975 Definition)",6377299.151,300.8017255,AUTHORITY["EPSG","7045"]],TOWGS84[295,736,257,0,0,0,0],AUTHORITY["EPSG","6146"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4146"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","24343"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 4 GWSepsg_Kalianpur 1975 / UTM zone 44N+proj=utm +zone=44 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defsPROJCS["Kalianpur 1975 / UTM zone 44N",GEOGCS["Kalianpur 1975",DATUM["Kalianpur_1975",SPHEROID["Everest 1830 (1975 Definition)",6377299.151,300.8017255,AUTHORITY["EPSG","7045"]],TOWGS84[295,736,257,0,0,0,0],AUTHORITY["EPSG","6146"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4146"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","24344"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 4 GWSepsg_Kalianpur 1975 / UTM zone 45N+proj=utm +zone=45 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defsPROJCS["Kalianpur 1975 / UTM zone 45N",GEOGCS["Kalianpur 1975",DATUM["Kalianpur_1975",SPHEROID["Everest 1830 (1975 Definition)",6377299.151,300.8017255,AUTHORITY["EPSG","7045"]],TOWGS84[295,736,257,0,0,0,0],AUTHORITY["EPSG","6146"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4146"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","24345"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 4 GWSepsg_Kalianpur 1975 / UTM zone 46N+proj=utm +zone=46 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defsPROJCS["Kalianpur 1975 / UTM zone 46N",GEOGCS["Kalianpur 1975",DATUM["Kalianpur_1975",SPHEROID["Everest 1830 (1975 Definition)",6377299.151,300.8017255,AUTHORITY["EPSG","7045"]],TOWGS84[295,736,257,0,0,0,0],AUTHORITY["EPSG","6146"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4146"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","24346"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 4 GWSepsg_Kalianpur 1975 / UTM zone 47N+proj=utm +zone=47 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defsPROJCS["Kalianpur 1975 / UTM zone 47N",GEOGCS["Kalianpur 1975",DATUM["Kalianpur_1975",SPHEROID["Everest 1830 (1975 Definition)",6377299.151,300.8017255,AUTHORITY["EPSG","7045"]],TOWGS84[295,736,257,0,0,0,0],AUTHORITY["EPSG","6146"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4146"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","24347"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] __2 G{epsg_2Kalianpur 1880 / India zone 0+proj=lcc +lat_1=39.5 +lat_0=39.5 +lon_0=68 +k_0=0.99846154 +x_0=2153865.73916853 +y_0=2368292.194628102 +a=6377299.36559538 +b=6356098.359005156 +to_meter=0.9143985307444408 +no_defsPROJCS["Kalianpur 1880 / India zone 0",GEOGCS["Kalianpur 1880",DATUM["Kalianpur_1880",SPHEROID["Everest (1830 Definition)",6377299.36559538,300.8017255433552,AUTHORITY["EPSG","7042"]],AUTHORITY["EPSG","6243"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4243"]],UNIT["Indian yard",0.9143985307444408,AUTHORITY["EPSG","9084"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",39.5],PARAMETER["central_meridian",68],PARAMETER["scale_factor",0.99846154],PARAMETER["false_easting",2355500],PARAMETER["false_northing",2590000],AUTHORITY["EPSG","24370"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ^^3 G}epsg_3Kalianpur 1880 / India zone I+proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=68 +k_0=0.99878641 +x_0=2743195.592233322 +y_0=914398.5307444407 +a=6377299.36559538 +b=6356098.359005156 +to_meter=0.9143985307444408 +no_defsPROJCS["Kalianpur 1880 / India zone I",GEOGCS["Kalianpur 1880",DATUM["Kalianpur_1880",SPHEROID["Everest (1830 Definition)",6377299.36559538,300.8017255433552,AUTHORITY["EPSG","7042"]],AUTHORITY["EPSG","6243"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4243"]],UNIT["Indian yard",0.9143985307444408,AUTHORITY["EPSG","9084"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",32.5],PARAMETER["central_meridian",68],PARAMETER["scale_factor",0.99878641],PARAMETER["false_easting",3000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","24371"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ``4 Kuepsg_4Kalianpur 1880 / India zone IIa+proj=lcc +lat_1=26 +lat_0=26 +lon_0=74 +k_0=0.99878641 +x_0=2743195.592233322 +y_0=914398.5307444407 +a=6377299.36559538 +b=6356098.359005156 +to_meter=0.9143985307444408 +no_defsPROJCS["Kalianpur 1880 / India zone IIa",GEOGCS["Kalianpur 1880",DATUM["Kalianpur_1880",SPHEROID["Everest (1830 Definition)",6377299.36559538,300.8017255433552,AUTHORITY["EPSG","7042"]],AUTHORITY["EPSG","6243"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4243"]],UNIT["Indian yard",0.9143985307444408,AUTHORITY["EPSG","9084"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",26],PARAMETER["central_meridian",74],PARAMETER["scale_factor",0.99878641],PARAMETER["false_easting",3000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","24372"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ``5 Kuepsg_5Kalianpur 1880 / India zone III+proj=lcc +lat_1=19 +lat_0=19 +lon_0=80 +k_0=0.99878641 +x_0=2743195.592233322 +y_0=914398.5307444407 +a=6377299.36559538 +b=6356098.359005156 +to_meter=0.9143985307444408 +no_defsPROJCS["Kalianpur 1880 / India zone III",GEOGCS["Kalianpur 1880",DATUM["Kalianpur_1880",SPHEROID["Everest (1830 Definition)",6377299.36559538,300.8017255433552,AUTHORITY["EPSG","7042"]],AUTHORITY["EPSG","6243"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4243"]],UNIT["Indian yard",0.9143985307444408,AUTHORITY["EPSG","9084"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",19],PARAMETER["central_meridian",80],PARAMETER["scale_factor",0.99878641],PARAMETER["false_easting",3000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","24373"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] bb6 Iu}epsg_6Kalianpur 1880 / India zone IV+proj=lcc +lat_1=12 +lat_0=12 +lon_0=80 +k_0=0.99878641 +x_0=2743195.592233322 +y_0=914398.5307444407 +a=6377299.36559538 +b=6356098.359005156 +to_meter=0.9143985307444408 +no_defsPROJCS["Kalianpur 1880 / India zone IV",GEOGCS["Kalianpur 1880",DATUM["Kalianpur_1880",SPHEROID["Everest (1830 Definition)",6377299.36559538,300.8017255433552,AUTHORITY["EPSG","7042"]],AUTHORITY["EPSG","6243"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4243"]],UNIT["Indian yard",0.9143985307444408,AUTHORITY["EPSG","9084"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",12],PARAMETER["central_meridian",80],PARAMETER["scale_factor",0.99878641],PARAMETER["false_easting",3000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","24374"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] W7 K#Iepsg_7Kalianpur 1937 / India zone IIb+proj=lcc +lat_1=26 +lat_0=26 +lon_0=90 +k_0=0.99878641 +x_0=2743185.69 +y_0=914395.23 +a=6377276.345 +b=6356075.41314024 +units=m +no_defsPROJCS["Kalianpur 1937 / India zone IIb",GEOGCS["Kalianpur 1937",DATUM["Kalianpur_1937",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],AUTHORITY["EPSG","6144"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4144"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",26],PARAMETER["central_meridian",90],PARAMETER["scale_factor",0.99878641],PARAMETER["false_easting",2743185.69],PARAMETER["false_northing",914395.23],AUTHORITY["EPSG","24375"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Y8 G)Kepsg_8Kalianpur 1962 / India zone I+proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=68 +k_0=0.99878641 +x_0=2743196.4 +y_0=914398.8 +a=6377301.243 +b=6356100.230165384 +units=m +no_defsPROJCS["Kalianpur 1962 / India zone I",GEOGCS["Kalianpur 1962",DATUM["Kalianpur_1962",SPHEROID["Everest 1830 (1962 Definition)",6377301.243,300.8017255,AUTHORITY["EPSG","7044"]],AUTHORITY["EPSG","6145"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4145"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",32.5],PARAMETER["central_meridian",68],PARAMETER["scale_factor",0.99878641],PARAMETER["false_easting",2743196.4],PARAMETER["false_northing",914398.8],AUTHORITY["EPSG","24376"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] W9 K!Kepsg_9Kalianpur 1962 / India zone IIa+proj=lcc +lat_1=26 +lat_0=26 +lon_0=74 +k_0=0.99878641 +x_0=2743196.4 +y_0=914398.8 +a=6377301.243 +b=6356100.230165384 +units=m +no_defsPROJCS["Kalianpur 1962 / India zone IIa",GEOGCS["Kalianpur 1962",DATUM["Kalianpur_1962",SPHEROID["Everest 1830 (1962 Definition)",6377301.243,300.8017255,AUTHORITY["EPSG","7044"]],AUTHORITY["EPSG","6145"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4145"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",26],PARAMETER["central_meridian",74],PARAMETER["scale_factor",0.99878641],PARAMETER["false_easting",2743196.4],PARAMETER["false_northing",914398.8],AUTHORITY["EPSG","24377"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] hh: Gcepsg_:Kalianpur 1975 / India zone I+proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=68 +k_0=0.99878641 +x_0=2743195.5 +y_0=914398.5 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defsPROJCS["Kalianpur 1975 / India zone I",GEOGCS["Kalianpur 1975",DATUM["Kalianpur_1975",SPHEROID["Everest 1830 (1975 Definition)",6377299.151,300.8017255,AUTHORITY["EPSG","7045"]],TOWGS84[295,736,257,0,0,0,0],AUTHORITY["EPSG","6146"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4146"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",32.5],PARAMETER["central_meridian",68],PARAMETER["scale_factor",0.99878641],PARAMETER["false_easting",2743195.5],PARAMETER["false_northing",914398.5],AUTHORITY["EPSG","24378"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] jj; K[epsg_;Kalianpur 1975 / India zone IIa+proj=lcc +lat_1=26 +lat_0=26 +lon_0=74 +k_0=0.99878641 +x_0=2743195.5 +y_0=914398.5 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defsPROJCS["Kalianpur 1975 / India zone IIa",GEOGCS["Kalianpur 1975",DATUM["Kalianpur_1975",SPHEROID["Everest 1830 (1975 Definition)",6377299.151,300.8017255,AUTHORITY["EPSG","7045"]],TOWGS84[295,736,257,0,0,0,0],AUTHORITY["EPSG","6146"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4146"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",26],PARAMETER["central_meridian",74],PARAMETER["scale_factor",0.99878641],PARAMETER["false_easting",2743195.5],PARAMETER["false_northing",914398.5],AUTHORITY["EPSG","24379"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] jj< K[epsg_ Kuepsg_>Kalianpur 1880 / India zone IIb+proj=lcc +lat_1=26 +lat_0=26 +lon_0=90 +k_0=0.99878641 +x_0=2743195.592233322 +y_0=914398.5307444407 +a=6377299.36559538 +b=6356098.359005156 +to_meter=0.9143985307444408 +no_defsPROJCS["Kalianpur 1880 / India zone IIb",GEOGCS["Kalianpur 1880",DATUM["Kalianpur_1880",SPHEROID["Everest (1830 Definition)",6377299.36559538,300.8017255433552,AUTHORITY["EPSG","7042"]],AUTHORITY["EPSG","6243"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4243"]],UNIT["Indian yard",0.9143985307444408,AUTHORITY["EPSG","9084"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",26],PARAMETER["central_meridian",90],PARAMETER["scale_factor",0.99878641],PARAMETER["false_easting",3000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","24382"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ll? I[epsg_?Kalianpur 1975 / India zone IV+proj=lcc +lat_1=12 +lat_0=12 +lon_0=80 +k_0=0.99878641 +x_0=2743195.5 +y_0=914398.5 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defsPROJCS["Kalianpur 1975 / India zone IV",GEOGCS["Kalianpur 1975",DATUM["Kalianpur_1975",SPHEROID["Everest 1830 (1975 Definition)",6377299.151,300.8017255,AUTHORITY["EPSG","7045"]],TOWGS84[295,736,257,0,0,0,0],AUTHORITY["EPSG","6146"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4146"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",12],PARAMETER["central_meridian",80],PARAMETER["scale_factor",0.99878641],PARAMETER["false_easting",2743195.5],PARAMETER["false_northing",914398.5],AUTHORITY["EPSG","24383"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Y4 ES#epsg_Kertau 1968 / Singapore Grid+proj=cass +lat_0=1.287646666666667 +lon_0=103.8530022222222 +x_0=30000 +y_0=30000 +a=6377304.063 +b=6356103.038993155 +towgs84=-11,851,5,0,0,0,0 +units=m +no_defsPROJCS["Kertau 1968 / Singapore Grid",GEOGCS["Kertau 1968",DATUM["Kertau_1968",SPHEROID["Everest 1830 Modified",6377304.063,300.8017,AUTHORITY["EPSG","7018"]],TOWGS84[-11,851,5,0,0,0,0],AUTHORITY["EPSG","6245"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4245"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Cassini_Soldner"],PARAMETER["latitude_of_origin",1.287646666666667],PARAMETER["central_meridian",103.8530022222222],PARAMETER["false_easting",30000],PARAMETER["false_northing",30000],AUTHORITY["EPSG","24500"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] c AS%epsg_Kertau 1968 / UTM zone 47N+proj=utm +zone=47 +a=6377304.063 +b=6356103.038993155 +towgs84=-11,851,5,0,0,0,0 +units=m +no_defsPROJCS["Kertau 1968 / UTM zone 47N",GEOGCS["Kertau 1968",DATUM["Kertau_1968",SPHEROID["Everest 1830 Modified",6377304.063,300.8017,AUTHORITY["EPSG","7018"]],TOWGS84[-11,851,5,0,0,0,0],AUTHORITY["EPSG","6245"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4245"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","24547"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] rr{ ]Qepsg_Kertau / R.S.O. Malaya (ch) (deprecated)+proj=omerc +lat_0=4 +lonc=102.25 +alpha=323.025 d AS'epsg_Kertau 1968 / UTM zone 48N+proj=utm +zone=48 +a=6377304.063 +b=6356103.038993155 +towgs84=-11,851,5,0,0,0,0 +units=m +no_defsPROJCS["Kertau 1968 / UTM zone 48N",GEOGCS["Kertau 1968",DATUM["Kertau_1968",SPHEROID["Everest 1830 Modified",6377304.063,300.8017,AUTHORITY["EPSG","7018"]],TOWGS84[-11,851,5,0,0,0,0],AUTHORITY["EPSG","6245"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4245"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","24548"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]7905 +k=0.99984 +x_0=804671.2997750348 +y_0=0 +a=6377304.063 +b=6356103.038993155 +towgs84=-11,851,5,0,0,0,0 +to_meter=20.11678249437587 +no_defsPROJCS["Kertau / R.S.O. Malaya (ch) (deprecated)",GEOGCS["Kertau 1968",DATUM["Kertau_1968",SPHEROID["Everest 1830 Modified",6377304.063,300.8017,AUTHORITY["EPSG","7018"]],TOWGS84[-11,851,5,0,0,0,0],AUTHORITY["EPSG","6245"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4245"]],UNIT["British chain (Benoit 1895 B)",20.11678249437587,AUTHORITY["EPSG","9062"]],PROJECTION["Hotine_Oblique_Mercator"],PARAMETER["latitude_of_center",4],PARAMETER["longitude_of_center",102.25],PARAMETER["azimuth",323.0257905],PARAMETER["rectified_grid_angle",323.1301023611111],PARAMETER["scale_factor",0.99984],PARAMETER["false_easting",40000],PARAMETER["false_northing",0],AUTHORITY["EPSG","24571"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] U #Q?epsg`KOC Lambert+proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=45 +k_0=0.9987864078000001 +x_0=1500000 +y_0=1166200 +ellps=clrk80 +towgs84=-294.7,-200.1,525.5,0,0,0,0 +units=m +no_defsPROJCS["KOC Lambert",GEOGCS["KOC",DATUM["Kuwait_Oil_Company",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-294.7,-200.1,525.5,0,0,0,0],AUTHORITY["EPSG","6246"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4246"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",32.5],PARAMETER["central_meridian",45],PARAMETER["scale_factor",0.9987864078],PARAMETER["false_easting",1500000],PARAMETER["false_northing",1166200],AUTHORITY["EPSG","24600"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] } ;7epsg`La Canoa / UTM zone 18N+proj=utm +zone=18 +ellps=intl +towgs84=-273.5,110.6,-357.9,0,0,0,0 +units=m +no_defsPROJCS["La Canoa / UTM zone 18N",GEOGCS["La Canoa",DATUM["La_Canoa",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-273.5,110.6,-357.9,0,0,0,0],AUTHORITY["EPSG","6247"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4247"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","24718"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] } ;7epsg`La Canoa / UTM zone 19N+proj=utm +zone=19 +ellps=intl +towgs84=-273.5,110.6,-357.9,0,0,0,0 +units=m +no_defsPROJCS["La Canoa / UTM zone 19N",GEOGCS["La Canoa",DATUM["La_Canoa",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-273.5,110.6,-357.9,0,0,0,0],AUTHORITY["EPSG","6247"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4247"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","24719"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] } ;7epsg`La Canoa / UTM zone 20N+proj=utm +zone=20 +ellps=intl +towgs84=-273.5,110.6,-357.9,0,0,0,0 +units=m +no_defsPROJCS["La Canoa / UTM zone 20N",GEOGCS["La Canoa",DATUM["La_Canoa",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-273.5,110.6,-357.9,0,0,0,0],AUTHORITY["EPSG","6247"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4247"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","24720"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 22Iq7myepsg`PSAD56 / UTM zone 17N+proj=utm +zone=17 +ellps=intl +units=m +no_defsPROJCS["PSAD56 / UTM zone 17N",GEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","24817"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 22Ir7myepsg`PSAD56 / UTM zone 18N+proj=utm +zone=18 +ellps=intl +units=m +no_defsPROJCS["PSAD56 / UTM zone 18N",GEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","24818"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 22Is7myepsg`PSAD56 / UTM zone 19N+proj=utm +zone=19 +ellps=intl +units=m +no_defsPROJCS["PSAD56 / UTM zone 19N",GEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","24819"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 22It7myepsg`PSAD56 / UTM zone 20N+proj=utm +zone=20 +ellps=intl +units=m +no_defsPROJCS["PSAD56 / UTM zone 20N",GEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","24820"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 22Iu7myepsg`PSAD56 / UTM zone 21N+proj=utm +zone=21 +ellps=intl +units=m +no_defsPROJCS["PSAD56 / UTM zone 21N",GEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","24821"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] $$W-7{epsga-PSAD56 / UTM zone 17S+proj=utm +zone=17 +south +ellps=intl +units=m +no_defsPROJCS["PSAD56 / UTM zone 17S",GEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","24877"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] $$W.7{epsga.PSAD56 / UTM zone 18S+proj=utm +zone=18 +south +ellps=intl +units=m +no_defsPROJCS["PSAD56 / UTM zone 18S",GEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","24878"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] $$W/7{epsga/PSAD56 / UTM zone 19S+proj=utm +zone=19 +south +ellps=intl +units=m +no_defsPROJCS["PSAD56 / UTM zone 19S",GEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","24879"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] $$W07{epsga0PSAD56 / UTM zone 20S+proj=utm +zone=20 +south +ellps=intl +units=m +no_defsPROJCS["PSAD56 / UTM zone 20S",GEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","24880"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] $$W17{epsga1PSAD56 / UTM zone 21S+proj=utm +zone=21 +south +ellps=intl +units=m +no_defsPROJCS["PSAD56 / UTM zone 21S",GEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","24881"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] $$W27{epsga2PSAD56 / UTM zone 22S+proj=utm +zone=22 +south +ellps=intl +units=m +no_defsPROJCS["PSAD56 / UTM zone 22S",GEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","24882"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  ; ;cepsga;PSAD56 / Peru west zone+proj=tmerc +lat_0=-6 +lon_0=-80.5 +k=0.99983008 +x_0=222000 +y_0=1426834.743 +ellps=intl +units=m +no_defsPROJCS["PSAD56 / Peru west zone",GEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-6],PARAMETER["central_meridian",-80.5],PARAMETER["scale_factor",0.99983008],PARAMETER["false_easting",222000],PARAMETER["false_northing",1426834.743],AUTHORITY["EPSG","24891"],AXIS["X",EAST],AXIS["Y",NORTH]] < Ac epsga ? 4 c {     q Ár ās Łt Ɓu ǁ- ȁ. Ɂ/ ʁ0 ˁ1 ́2 ́; ΁< ρ= Ё( с ҁ/ Ӂ0 ԁ1 ց2 ׁ3 ؁d فd ځe ہf ݁g ށh ߁i j k l m n  L O P Q R S } [ \    @ _ `  D M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b i j k l m n o ..Mg7oepsgdETRS89 / UTM zone 31N+proj=utm +zone=31 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / UTM zone 31N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","25831"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ..Mh7oepsgdETRS89 / UTM zone 32N+proj=utm +zone=32 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / UTM zone 32N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","25832"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] --Ni7oepsgdETRS89 / UTM zone 33N+proj=utm +zone=33 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / UTM zone 33N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","25833"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] --Nj7oepsgdETRS89 / UTM zone 34N+proj=utm +zone=34 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / UTM zone 34N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","25834"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] --Nk7oepsgdETRS89 / UTM zone 35N+proj=utm +zone=35 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / UTM zone 35N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","25835"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] --Nl7oepsgdETRS89 / UTM zone 36N+proj=utm +zone=36 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / UTM zone 36N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","25836"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] --Nm7oepsgdETRS89 / UTM zone 37N+proj=utm +zone=37 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / UTM zone 37N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","25837"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] --Nn7oepsgdETRS89 / UTM zone 38N+proj=utm +zone=38 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / UTM zone 38N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","25838"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] i 5AeepsgeETRS89 / TM Baltic93+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9996 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / TM Baltic93",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",24],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","25884"],AXIS["X",NORTH],AXIS["Y",EAST]] --NLC{iepsgeLMalongo 1987 / UTM zone 32S+proj=utm +zone=32 +south +ellps=intl +units=m +no_defsPROJCS["Malongo 1987 / UTM zone 32S",GEOGCS["Malongo 1987",DATUM["Malongo_1987",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6259"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4259"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","25932"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] MO 7C)epsgfOMerchich / Nord Maroc+proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=-5.4 +k_0=0.999625769 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +towgs84=31,146,47,0,0,0,0 +units=m +no_defsPROJCS["Merchich / Nord Maroc",GEOGCS["Merchich",DATUM["Merchich",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[31,146,47,0,0,0,0],AUTHORITY["EPSG","6261"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4261"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",33.3],PARAMETER["central_meridian",-5.4],PARAMETER["scale_factor",0.999625769],PARAMETER["false_easting",500000],PARAMETER["false_northing",300000],AUTHORITY["EPSG","26191"],AXIS["X",EAST],AXIS["Y",NORTH]] RP 5Q'epsgfPMerchich / Sud Maroc+proj=lcc +lat_1=29.7 +lat_0=29.7 +lon_0=-5.4 +k_0=0.9996155960000001 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +towgs84=31,146,47,0,0,0,0 +units=m +no_defsPROJCS["Merchich / Sud Maroc",GEOGCS["Merchich",DATUM["Merchich",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[31,146,47,0,0,0,0],AUTHORITY["EPSG","6261"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4261"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",29.7],PARAMETER["central_meridian",-5.4],PARAMETER["scale_factor",0.999615596],PARAMETER["false_easting",500000],PARAMETER["false_northing",300000],AUTHORITY["EPSG","26192"],AXIS["X",EAST],AXIS["Y",NORTH]] WQ I;3epsgfQMerchich / Sahara (deprecated)+proj=lcc +lat_1=26.1 +lat_0=26.1 +lon_0=-5.4 +k_0=0.9996 +x_0=1200000 +y_0=400000 +a=6378249.2 +b=6356515 +towgs84=31,146,47,0,0,0,0 +units=m +no_defsPROJCS["Merchich / Sahara (deprecated)",GEOGCS["Merchich",DATUM["Merchich",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[31,146,47,0,0,0,0],AUTHORITY["EPSG","6261"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4261"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",26.1],PARAMETER["central_meridian",-5.4],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",1200000],PARAMETER["false_northing",400000],AUTHORITY["EPSG","26193"],AXIS["X",EAST],AXIS["Y",NORTH]] QR 9E-epsgfRMerchich / Sahara Nord+proj=lcc +lat_1=26.1 +lat_0=26.1 +lon_0=-5.4 +k_0=0.999616304 +x_0=1200000 +y_0=400000 +a=6378249.2 +b=6356515 +towgs84=31,146,47,0,0,0,0 +units=m +no_defsPROJCS["Merchich / Sahara Nord",GEOGCS["Merchich",DATUM["Merchich",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[31,146,47,0,0,0,0],AUTHORITY["EPSG","6261"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4261"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",26.1],PARAMETER["central_meridian",-5.4],PARAMETER["scale_factor",0.999616304],PARAMETER["false_easting",1200000],PARAMETER["false_northing",400000],AUTHORITY["EPSG","26194"],AXIS["X",EAST],AXIS["Y",NORTH]] OS 7E+epsgfSMerchich / Sahara Sud+proj=lcc +lat_1=22.5 +lat_0=22.5 +lon_0=-5.4 +k_0=0.999616437 +x_0=1500000 +y_0=400000 +a=6378249.2 +b=6356515 +towgs84=31,146,47,0,0,0,0 +units=m +no_defsPROJCS["Merchich / Sahara Sud",GEOGCS["Merchich",DATUM["Merchich",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[31,146,47,0,0,0,0],AUTHORITY["EPSG","6261"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4261"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",22.5],PARAMETER["central_meridian",-5.4],PARAMETER["scale_factor",0.999616437],PARAMETER["false_easting",1500000],PARAMETER["false_northing",400000],AUTHORITY["EPSG","26195"],AXIS["X",EAST],AXIS["Y",NORTH]] m} 9)epsgf}Massawa / UTM zone 37N+proj=utm +zone=37 +ellps=bessel +towgs84=639,405,60,0,0,0,0 +units=m +no_defsPROJCS["Massawa / UTM zone 37N",GEOGCS["Massawa",DATUM["Massawa",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[639,405,60,0,0,0,0],AUTHORITY["EPSG","6262"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4262"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26237"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] NN-[5q?epsgfMinna / UTM zone 31N+proj=utm +zone=31 +ellps=clrk80 +units=m +no_defsPROJCS["Minna / UTM zone 31N",GEOGCS["Minna",DATUM["Minna",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6263"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4263"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26331"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] NN-\5q?epsgfMinna / UTM zone 32N+proj=utm +zone=32 +ellps=clrk80 +units=m +no_defsPROJCS["Minna / UTM zone 32N",GEOGCS["Minna",DATUM["Minna",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6263"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4263"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26332"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] l ?MUepsggMinna / Nigeria West Belt+proj=tmerc +lat_0=4 +lon_0=4.5 +k=0.99975 +x_0=230738.26 +y_0=0 +ellps=clrk80 +units=m +no_defsPROJCS["Minna / Nigeria West Belt",GEOGCS["Minna",DATUM["Minna",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6263"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4263"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",4],PARAMETER["central_meridian",4.5],PARAMETER["scale_factor",0.99975],PARAMETER["false_easting",230738.26],PARAMETER["false_northing",0],AUTHORITY["EPSG","26391"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] j =MSepsggMinna / Nigeria Mid Belt+proj=tmerc +lat_0=4 +lon_0=8.5 +k=0.99975 +x_0=670553.98 +y_0=0 +ellps=clrk80 +units=m +no_defsPROJCS["Minna / Nigeria Mid Belt",GEOGCS["Minna",DATUM["Minna",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6263"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4263"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",4],PARAMETER["central_meridian",8.5],PARAMETER["scale_factor",0.99975],PARAMETER["false_easting",670553.98],PARAMETER["false_northing",0],AUTHORITY["EPSG","26392"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]   n ?OWepsggMinna / Nigeria East Belt+proj=tmerc +lat_0=4 +lon_0=12.5 +k=0.99975 +x_0=1110369.7 +y_0=0 +ellps=clrk80 +units=m +no_defsPROJCS["Minna / Nigeria East Belt",GEOGCS["Minna",DATUM["Minna",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6263"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4263"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",4],PARAMETER["central_meridian",12.5],PARAMETER["scale_factor",0.99975],PARAMETER["false_easting",1110369.7],PARAMETER["false_northing",0],AUTHORITY["EPSG","26393"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] @ OG%epsgg@Mhast / UTM zone 32S (deprecated)+proj=utm +zone=32 +south +ellps=intl +towgs84=-252.95,-4.11,-96.38,0,0,0,0 +units=m +no_defsPROJCS["Mhast / UTM zone 32S (deprecated)",GEOGCS["Mhast",DATUM["Mhast",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-252.95,-4.11,-96.38,0,0,0,0],AUTHORITY["EPSG","6264"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4264"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","26432"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] B_ iq3epsggMonte Mario (Rome) / Italy zone 1 (deprecated)+proj=tmerc +lat_0=0 +lon_0=-3.45233333333333 +k=0.9996 +x_0=1500000 +y_0=0 +ellps=intl +pm=rome +units=m +no_defsPROJCS["Monte Mario (Rome) / Italy zone 1 (deprecated)",GEOGCS["Monte Mario (Rome)",DATUM["Monte_Mario_Rome",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6806"]],PRIMEM["Rome",12.45233333333333,AUTHORITY["EPSG","8906"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4806"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-3.45233333333333],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",1500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26591"],AXIS["X",EAST],AXIS["Y",NORTH]] @` io1epsggMonte Mario (Rome) / Italy zone 2 (deprecated)+proj=tmerc +lat_0=0 +lon_0=2.54766666666666 +k=0.9996 +x_0=2520000 +y_0=0 +ellps=intl +pm=rome +units=m +no_defsPROJCS["Monte Mario (Rome) / Italy zone 2 (deprecated)",GEOGCS["Monte Mario (Rome)",DATUM["Monte_Mario_Rome",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6806"]],PRIMEM["Rome",12.45233333333333,AUTHORITY["EPSG","8906"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4806"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",2.54766666666666],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",2520000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26592"],AXIS["X",EAST],AXIS["Y",NORTH]] ''T ?mepsghM'poraloko / UTM zone 32N+proj=utm +zone=32 +a=6378249.2 +b=6356515 +units=m +no_defsPROJCS["M'poraloko / UTM zone 32N",GEOGCS["M'poraloko",DATUM["M_poraloko",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],AUTHORITY["EPSG","6266"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4266"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26632"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] bD ?{epsghDM'poraloko / UTM zone 32S+proj=utm +zone=32 +south +a=6378249.2 +b=6356515 +units=m +no_defsPROJCS["M'poraloko / UTM zone 32S",GEOGCS["M'poraloko",DATUM["M_poraloko",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],AUTHORITY["EPSG","6266"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4266"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","26692"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] **QM 3 oepsghMNAD27 / UTM zone 1N+proj=utm +zone=1 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / UTM zone 1N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-177],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26701"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] **QN 3 oepsghNNAD27 / UTM zone 2N+proj=utm +zone=2 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / UTM zone 2N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-171],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26702"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] **QO 3 oepsghONAD27 / UTM zone 3N+proj=utm +zone=3 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / UTM zone 3N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26703"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] **QP 3 oepsghPNAD27 / UTM zone 4N+proj=utm +zone=4 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / UTM zone 4N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-159],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26704"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] **QQ 3 oepsghQNAD27 / UTM zone 5N+proj=utm +zone=5 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / UTM zone 5N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-153],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26705"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] **QR 3 oepsghRNAD27 / UTM zone 6N+proj=utm +zone=6 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / UTM zone 6N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-147],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26706"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] **QS 3 oepsghSNAD27 / UTM zone 7N+proj=utm +zone=7 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / UTM zone 7N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-141],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26707"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] **QT 3 oepsghTNAD27 / UTM zone 8N+proj=utm +zone=8 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / UTM zone 8N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-135],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26708"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] **QU 3 oepsghUNAD27 / UTM zone 9N+proj=utm +zone=9 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / UTM zone 9N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-129],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26709"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ''TV 5 qepsghVNAD27 / UTM zone 10N+proj=utm +zone=10 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / UTM zone 10N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-123],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26710"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ''TW 5 qepsghWNAD27 / UTM zone 11N+proj=utm +zone=11 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / UTM zone 11N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26711"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ''TX 5 qepsghXNAD27 / UTM zone 12N+proj=utm +zone=12 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / UTM zone 12N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26712"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ''TY 5 qepsghYNAD27 / UTM zone 13N+proj=utm +zone=13 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / UTM zone 13N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26713"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ((SZ 5 oepsghZNAD27 / UTM zone 14N+proj=utm +zone=14 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / UTM zone 14N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26714"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ((S[ 5 oepsgh[NAD27 / UTM zone 15N+proj=utm +zone=15 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / UTM zone 15N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26715"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ((S\ 5 oepsgh\NAD27 / UTM zone 16N+proj=utm +zone=16 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / UTM zone 16N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-87],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26716"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ((S] 5 oepsgh]NAD27 / UTM zone 17N+proj=utm +zone=17 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / UTM zone 17N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26717"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ((S^ 5 oepsgh^NAD27 / UTM zone 18N+proj=utm +zone=18 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / UTM zone 18N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26718"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ((S_ 5 oepsgh_NAD27 / UTM zone 19N+proj=utm +zone=19 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / UTM zone 19N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26719"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ((S` 5 oepsgh`NAD27 / UTM zone 20N+proj=utm +zone=20 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / UTM zone 20N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26720"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ((Sa 5 oepsghaNAD27 / UTM zone 21N+proj=utm +zone=21 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / UTM zone 21N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26721"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ((Sb 5 oepsghbNAD27 / UTM zone 22N+proj=utm +zone=22 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / UTM zone 22N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26722"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ?i 5#/epsghiNAD27 / Alabama East+proj=tmerc +lat_0=30.5 +lon_0=-85.83333333333333 +k=0.99996 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Alabama East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",30.5],PARAMETER["central_meridian",-85.83333333333333],PARAMETER["scale_factor",0.99996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26729"],AXIS["X",EAST],AXIS["Y",NORTH]] )j 5 epsghjNAD27 / Alabama West+proj=tmerc +lat_0=30 +lon_0=-87.5 +k=0.999933333 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Alabama West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",30],PARAMETER["central_meridian",-87.5],PARAMETER["scale_factor",0.999933333],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26730"],AXIS["X",EAST],AXIS["Y",NORTH]] %%Vk 7oepsghkNAD27 / Alaska zone 1+proj=omerc +lat_0=57 +lonc=-133.6666666666667 +alpha=323.1301023611111 +k=0.9999 +x_0=5000000.001016002 +y_0=-5000000.001016002 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Alaska zone 1",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Hotine_Oblique_Mercator"],PARAMETER["latitude_of_center",57],PARAMETER["longitude_of_center",-133.6666666666667],PARAMETER["azimuth",323.1301023611111],PARAMETER["rectified_grid_angle",323.1301023611111],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",16404166.67],PARAMETER["false_northing",-16404166.67],AUTHORITY["EPSG","26731"],AXIS["X",EAST],AXIS["Y",NORTH]] l 7epsghlNAD27 / Alaska zone 2+proj=tmerc +lat_0=54 +lon_0=-142 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Alaska zone 2",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",54],PARAMETER["central_meridian",-142],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26732"],AXIS["X",EAST],AXIS["Y",NORTH]] m 7epsghmNAD27 / Alaska zone 3+proj=tmerc +lat_0=54 +lon_0=-146 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Alaska zone 3",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",54],PARAMETER["central_meridian",-146],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26733"],AXIS["X",EAST],AXIS["Y",NORTH]] n 7epsghnNAD27 / Alaska zone 4+proj=tmerc +lat_0=54 +lon_0=-150 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Alaska zone 4",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",54],PARAMETER["central_meridian",-150],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26734"],AXIS["X",EAST],AXIS["Y",NORTH]] ;(5BO\iv,9FS`mz #0=JWdq~ hRepsghR hSepsghS hTepsghT hUepsghU hVepsghV hWepsghW hXepsghX hYepsghY hZepsghZ h[epsgh[ h\epsgh\ h]epsgh] h^epsgh^ h_epsgh_ h`epsgh` haepsgha hbepsghb hiepsghi hjepsghj hkepsghk hlepsghl hmepsghm hnepsghn hoepsgho hpepsghp hqepsghq hrepsghr hsepsghs htepsght huepsghu hvepsghv hwepsghw hxepsghx hyepsghy hzepsghz h{epsgh{ h|epsgh| h}epsgh} h~epsgh~ hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh o 7epsghoNAD27 / Alaska zone 5+proj=tmerc +lat_0=54 +lon_0=-154 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Alaska zone 5",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",54],PARAMETER["central_meridian",-154],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26735"],AXIS["X",EAST],AXIS["Y",NORTH]] p 7epsghpNAD27 / Alaska zone 6+proj=tmerc +lat_0=54 +lon_0=-158 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Alaska zone 6",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",54],PARAMETER["central_meridian",-158],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26736"],AXIS["X",EAST],AXIS["Y",NORTH]] q 7epsghqNAD27 / Alaska zone 7+proj=tmerc +lat_0=54 +lon_0=-162 +k=0.9999 +x_0=213360.4267208534 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Alaska zone 7",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",54],PARAMETER["central_meridian",-162],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",700000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26737"],AXIS["X",EAST],AXIS["Y",NORTH]] r 7epsghrNAD27 / Alaska zone 8+proj=tmerc +lat_0=54 +lon_0=-166 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Alaska zone 8",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",54],PARAMETER["central_meridian",-166],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26738"],AXIS["X",EAST],AXIS["Y",NORTH]] s 7epsghsNAD27 / Alaska zone 9+proj=tmerc +lat_0=54 +lon_0=-170 +k=0.9999 +x_0=182880.3657607315 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Alaska zone 9",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",54],PARAMETER["central_meridian",-170],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26739"],AXIS["X",EAST],AXIS["Y",NORTH]] fft 9M-epsghtNAD27 / Alaska zone 10+proj=lcc +lat_1=53.83333333333334 +lat_2=51.83333333333334 +lat_0=51 +lon_0=-176 +x_0=914401.8288036576 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Alaska zone 10",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",53.83333333333334],PARAMETER["standard_parallel_2",51.83333333333334],PARAMETER["latitude_of_origin",51],PARAMETER["central_meridian",-176],PARAMETER["false_easting",3000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26740"],AXIS["X",EAST],AXIS["Y",NORTH]] ``u ?M3epsghuNAD27 / California zone I+proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.33333333333334 +lon_0=-122 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / California zone I",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.66666666666666],PARAMETER["standard_parallel_2",40],PARAMETER["latitude_of_origin",39.33333333333334],PARAMETER["central_meridian",-122],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26741"],AXIS["X",EAST],AXIS["Y",NORTH]] @@;v AkSepsghvNAD27 / California zone II+proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / California zone II",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.83333333333334],PARAMETER["standard_parallel_2",38.33333333333334],PARAMETER["latitude_of_origin",37.66666666666666],PARAMETER["central_meridian",-122],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26742"],AXIS["X",EAST],AXIS["Y",NORTH]] TT'w CU?epsghwNAD27 / California zone III+proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666667 +lat_0=36.5 +lon_0=-120.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / California zone III",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.43333333333333],PARAMETER["standard_parallel_2",37.06666666666667],PARAMETER["latitude_of_origin",36.5],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26743"],AXIS["X",EAST],AXIS["Y",NORTH]] vvx A5epsghxNAD27 / California zone IV+proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.33333333333334 +lon_0=-119 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / California zone IV",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.25],PARAMETER["standard_parallel_2",36],PARAMETER["latitude_of_origin",35.33333333333334],PARAMETER["central_meridian",-119],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26744"],AXIS["X",EAST],AXIS["Y",NORTH]] \\y ?Q7epsghyNAD27 / California zone V+proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333333 +lat_0=33.5 +lon_0=-118 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / California zone V",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",35.46666666666667],PARAMETER["standard_parallel_2",34.03333333333333],PARAMETER["latitude_of_origin",33.5],PARAMETER["central_meridian",-118],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26745"],AXIS["X",EAST],AXIS["Y",NORTH]] ::Az AqYepsghzNAD27 / California zone VI+proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / California zone VI",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",33.88333333333333],PARAMETER["standard_parallel_2",32.78333333333333],PARAMETER["latitude_of_origin",32.16666666666666],PARAMETER["central_meridian",-116.25],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26746"],AXIS["X",EAST],AXIS["Y",NORTH]]66666666667 +lat_0=34.13333333333333 +lon_0=-118.3333333333333 +x_0=1276106.450596901 +y_0=127079.524511049 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / California zone VII (deprecated)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",34.41666666666666],PARAMETER["standard_parallel_2",33.86666666666667],PARAMETER["latitude_of_origin",34.13333333333333],PARAMETER["central_meridian",-118.3333333333333],PARAMETER["false_easting",4186692.58],PARAMETER["false_northing",416926.74],AUTHORITY["EPSG","26747"],AXIS["X",EAST],AXIS["Y",NORTH]] RR9| 5)epsgh|NAD27 / Arizona East+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Arizona East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-110.1666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26748"],AXIS["X",EAST],AXIS["Y",NORTH]] { ]%!epsgh{NAD27 / California zone VII (deprecated)+proj=lcc +lat_1=34.41666666666666 +lat_2=33.866 ?} ;/epsgh}NAD27 / Arizona Central+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Arizona Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-111.9166666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26749"],AXIS["X",EAST],AXIS["Y",NORTH]] -~ 5epsgh~NAD27 / Arizona West+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Arizona West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-113.75],PARAMETER["scale_factor",0.999933333],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26750"],AXIS["X",EAST],AXIS["Y",NORTH]] JJ1 9iIepsghNAD27 / Arkansas North+proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Arkansas North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.23333333333333],PARAMETER["standard_parallel_2",34.93333333333333],PARAMETER["latitude_of_origin",34.33333333333334],PARAMETER["central_meridian",-92],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26751"],AXIS["X",EAST],AXIS["Y",NORTH]] dd 9O/epsghNAD27 / Arkansas South+proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32.66666666666666 +lon_0=-92 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Arkansas South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",34.76666666666667],PARAMETER["standard_parallel_2",33.3],PARAMETER["latitude_of_origin",32.66666666666666],PARAMETER["central_meridian",-92],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26752"],AXIS["X",EAST],AXIS["Y",NORTH]] DD7 9oOepsghNAD27 / Colorado North+proj=lcc +lat_1=39.71666666666667 +lat_2=40.78333333333333 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Colorado North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.71666666666667],PARAMETER["standard_parallel_2",40.78333333333333],PARAMETER["latitude_of_origin",39.33333333333334],PARAMETER["central_meridian",-105.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26753"],AXIS["X",EAST],AXIS["Y",NORTH]] pp  =?#epsghNAD27 / Colorado Central+proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.83333333333334 +lon_0=-105.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Colorado Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.75],PARAMETER["standard_parallel_2",38.45],PARAMETER["latitude_of_origin",37.83333333333334],PARAMETER["central_meridian",-105.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26754"],AXIS["X",EAST],AXIS["Y",NORTH]] DD7 9oOepsghNAD27 / Colorado South+proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Colorado South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.43333333333333],PARAMETER["standard_parallel_2",37.23333333333333],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-105.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26755"],AXIS["X",EAST],AXIS["Y",NORTH]] ee 3U-epsghNAD27 / Connecticut+proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40.83333333333334 +lon_0=-72.75 +x_0=182880.3657607315 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Connecticut",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.86666666666667],PARAMETER["standard_parallel_2",41.2],PARAMETER["latitude_of_origin",40.83333333333334],PARAMETER["central_meridian",-72.75],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26756"],AXIS["X",EAST],AXIS["Y",NORTH]] 5 -!%epsghNAD27 / Delaware+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999995 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Delaware",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38],PARAMETER["central_meridian",-75.41666666666667],PARAMETER["scale_factor",0.999995],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26757"],AXIS["X",EAST],AXIS["Y",NORTH]] C 5'3epsghNAD27 / Florida East+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Florida East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",24.33333333333333],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26758"],AXIS["X",EAST],AXIS["Y",NORTH]] C 5'3epsghNAD27 / Florida West+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Florida West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",24.33333333333333],PARAMETER["central_meridian",-82],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26759"],AXIS["X",EAST],AXIS["Y",NORTH]] ~~} 77epsghNAD27 / Florida North+proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=29 +lon_0=-84.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Florida North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",30.75],PARAMETER["standard_parallel_2",29.58333333333333],PARAMETER["latitude_of_origin",29],PARAMETER["central_meridian",-84.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26760"],AXIS["X",EAST],AXIS["Y",NORTH]] 9 5)epsghNAD27 / Georgia East+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Georgia East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",30],PARAMETER["central_meridian",-82.16666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26766"],AXIS["X",EAST],AXIS["Y",NORTH]] 9 5)epsghNAD27 / Georgia West+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Georgia West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",30],PARAMETER["central_meridian",-84.16666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26767"],AXIS["X",EAST],AXIS["Y",NORTH]] d 1SMepsghNAD27 / Idaho East+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666666667 +k=0.9999473679999999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Idaho East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.66666666666666],PARAMETER["central_meridian",-112.1666666666667],PARAMETER["scale_factor",0.999947368],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26768"],AXIS["X",EAST],AXIS["Y",NORTH]] N 777epsghNAD27 / Idaho Central+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.9999473679999999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Idaho Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.66666666666666],PARAMETER["central_meridian",-114],PARAMETER["scale_factor",0.999947368],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26769"],AXIS["X",EAST],AXIS["Y",NORTH]] G 1/7epsghNAD27 / Idaho West+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0.999933333 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Idaho West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.66666666666666],PARAMETER["central_meridian",-115.75],PARAMETER["scale_factor",0.999933333],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26770"],AXIS["X",EAST],AXIS["Y",NORTH]] g 7SMepsghNAD27 / Illinois East+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333333333 +k=0.9999749999999999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Illinois East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-88.33333333333333],PARAMETER["scale_factor",0.999975],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26771"],AXIS["X",EAST],AXIS["Y",NORTH]] c 7ESepsghNAD27 / Illinois West+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666666667 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Illinois West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-90.16666666666667],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26772"],AXIS["X",EAST],AXIS["Y",NORTH]] G 5+7epsghNAD27 / Indiana East+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.999966667 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Indiana East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",37.5],PARAMETER["central_meridian",-85.66666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26773"],AXIS["X",EAST],AXIS["Y",NORTH]] G 5+7epsghNAD27 / Indiana West+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.999966667 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Indiana West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",37.5],PARAMETER["central_meridian",-87.08333333333333],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26774"],AXIS["X",EAST],AXIS["Y",NORTH]] hh 1S+epsghNAD27 / Iowa North+proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666667 +lat_0=41.5 +lon_0=-93.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Iowa North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43.26666666666667],PARAMETER["standard_parallel_2",42.06666666666667],PARAMETER["latitude_of_origin",41.5],PARAMETER["central_meridian",-93.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26775"],AXIS["X",EAST],AXIS["Y",NORTH]] ll 1O'epsghNAD27 / Iowa South+proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666667 +lat_0=40 +lon_0=-93.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Iowa South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.78333333333333],PARAMETER["standard_parallel_2",40.61666666666667],PARAMETER["latitude_of_origin",40],PARAMETER["central_meridian",-93.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26776"],AXIS["X",EAST],AXIS["Y",NORTH]] NN- 5iEepsghNAD27 / Kansas North+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Kansas North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.78333333333333],PARAMETER["standard_parallel_2",38.71666666666667],PARAMETER["latitude_of_origin",38.33333333333334],PARAMETER["central_meridian",-98],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26777"],AXIS["X",EAST],AXIS["Y",NORTH]] JJ1 5mIepsghNAD27 / Kansas South+proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Kansas South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.56666666666667],PARAMETER["standard_parallel_2",37.26666666666667],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-98.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26778"],AXIS["X",EAST],AXIS["Y",NORTH]] ^^ 9U5epsghNAD27 / Kentucky North+proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666667 +lat_0=37.5 +lon_0=-84.25 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Kentucky North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.96666666666667],PARAMETER["standard_parallel_2",38.96666666666667],PARAMETER["latitude_of_origin",37.5],PARAMETER["central_meridian",-84.25],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26779"],AXIS["X",EAST],AXIS["Y",NORTH]] DD7 9oOepsghNAD27 / Kentucky South+proj=lcc +lat_1=36.73333333333333 +lat_2=37.93333333333333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Kentucky South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.73333333333333],PARAMETER["standard_parallel_2",37.93333333333333],PARAMETER["latitude_of_origin",36.33333333333334],PARAMETER["central_meridian",-85.75],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26780"],AXIS["X",EAST],AXIS["Y",NORTH]] DD7 ;mOepsghNAD27 / Louisiana North+proj=lcc +lat_1=31.16666666666667 +lat_2=32.66666666666666 +lat_0=30.66666666666667 +lon_0=-92.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Louisiana North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",31.16666666666667],PARAMETER["standard_parallel_2",32.66666666666666],PARAMETER["latitude_of_origin",30.66666666666667],PARAMETER["central_meridian",-92.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26781"],AXIS["X",EAST],AXIS["Y",NORTH]] ^^ ;S5epsghNAD27 / Louisiana South+proj=lcc +lat_1=29.3 +lat_2=30.7 +lat_0=28.66666666666667 +lon_0=-91.33333333333333 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Louisiana South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",29.3],PARAMETER["standard_parallel_2",30.7],PARAMETER["latitude_of_origin",28.66666666666667],PARAMETER["central_meridian",-91.33333333333333],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26782"],AXIS["X",EAST],AXIS["Y",NORTH]] 9 1!)epsghNAD27 / Maine East+proj=tmerc +lat_0=43.83333333333334 +lon_0=-68.5 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Maine East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",43.83333333333334],PARAMETER["central_meridian",-68.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26783"],AXIS["X",EAST],AXIS["Y",NORTH]] ] 1EMepsghNAD27 / Maine West+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666666667 +k=0.999966667 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Maine West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",42.83333333333334],PARAMETER["central_meridian",-70.16666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26784"],AXIS["X",EAST],AXIS["Y",NORTH]] ~~}! -7epsghNAD27 / Maryland+proj=lcc +lat_1=38.3 +lat_2=39.45 +lat_0=37.83333333333334 +lon_0=-77 +x_0=243840.4876809754 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Maryland",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.3],PARAMETER["standard_parallel_2",39.45],PARAMETER["latitude_of_origin",37.83333333333334],PARAMETER["central_meridian",-77],PARAMETER["false_easting",800000.0000000002],PARAMETER["false_northing",0],AUTHORITY["EPSG","26785"],AXIS["X",EAST],AXIS["Y",NORTH]]bR RY`gnu|$+29@GNU\cjqx  '.5<CJQX_fmt{ q r s t u v w x y z !| "} #~ $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A! C" D# E' F( G) H* I+ J, K- L/ N1 O2 P3 R; T< U= V> W? XC YD ZE [F \G ]H ^I _N aO bP cQ dR eS fT gU i[ l\ m] o_ p` qa rb sc td ue vf wg xh yi zj {k |l }m ~n o p s UU&" IO=epsghNAD27 / Massachusetts Mainland+proj=lcc +lat_1=41.71666666666667 +lat_2=42.68333333333333 +lat_0=41 +lon_0=-71.5 +x_0=182880.3657607315 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Massachusetts Mainland",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.71666666666667],PARAMETER["standard_parallel_2",42.68333333333333],PARAMETER["latitude_of_origin",41],PARAMETER["central_meridian",-71.5],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26786"],AXIS["X",EAST],AXIS["Y",NORTH]] YY"# EO9epsghNAD27 / Massachusetts Island+proj=lcc +lat_1=41.28333333333333 +lat_2=41.48333333333333 +lat_0=41 +lon_0=-70.5 +x_0=60960.12192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Massachusetts Island",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.28333333333333],PARAMETER["standard_parallel_2",41.48333333333333],PARAMETER["latitude_of_origin",41],PARAMETER["central_meridian",-70.5],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26787"],AXIS["X",EAST],AXIS["Y",NORTH]] QQ*' ;m5epsghNAD27 / Minnesota North+proj=lcc +lat_1=47.03333333333333 +lat_2=48.63333333333333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Minnesota North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.03333333333333],PARAMETER["standard_parallel_2",48.63333333333333],PARAMETER["latitude_of_origin",46.5],PARAMETER["central_meridian",-93.1],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26791"],AXIS["X",EAST],AXIS["Y",NORTH]] tt( ?9epsghNAD27 / Minnesota Central+proj=lcc +lat_1=45.61666666666667 +lat_2=47.05 +lat_0=45 +lon_0=-94.25 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Minnesota Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.61666666666667],PARAMETER["standard_parallel_2",47.05],PARAMETER["latitude_of_origin",45],PARAMETER["central_meridian",-94.25],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26792"],AXIS["X",EAST],AXIS["Y",NORTH]] ff) ;K-epsghNAD27 / Minnesota South+proj=lcc +lat_1=43.78333333333333 +lat_2=45.21666666666667 +lat_0=43 +lon_0=-94 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Minnesota South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43.78333333333333],PARAMETER["standard_parallel_2",45.21666666666667],PARAMETER["latitude_of_origin",43],PARAMETER["central_meridian",-94],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26793"],AXIS["X",EAST],AXIS["Y",NORTH]] a* ==QepsghNAD27 / Mississippi East+proj=tmerc +lat_0=29.66666666666667 +lon_0=-88.83333333333333 +k=0.99996 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Mississippi East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",29.66666666666667],PARAMETER["central_meridian",-88.83333333333333],PARAMETER["scale_factor",0.99996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26794"],AXIS["X",EAST],AXIS["Y",NORTH]] O+ =+?epsghNAD27 / Mississippi West+proj=tmerc +lat_0=30.5 +lon_0=-90.33333333333333 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Mississippi West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",30.5],PARAMETER["central_meridian",-90.33333333333333],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26795"],AXIS["X",EAST],AXIS["Y",NORTH]] I, 7+9epsghNAD27 / Missouri East+proj=tmerc +lat_0=35.83333333333334 +lon_0=-90.5 +k=0.999933333 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Missouri East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",35.83333333333334],PARAMETER["central_meridian",-90.5],PARAMETER["scale_factor",0.999933333],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26796"],AXIS["X",EAST],AXIS["Y",NORTH]] O- =+?epsghNAD27 / Missouri Central+proj=tmerc +lat_0=35.83333333333334 +lon_0=-92.5 +k=0.999933333 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Missouri Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",35.83333333333334],PARAMETER["central_meridian",-92.5],PARAMETER["scale_factor",0.999933333],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26797"],AXIS["X",EAST],AXIS["Y",NORTH]] BBu/ C' epsghNAD27 / California zone VII+proj=lcc +lat_1=34.41666666666666 +lat_2=33.86666666666667 + MI. 7+9epsghNAD27 / Missouri West+proj=tmerc +lat_0=36.16666666666666 +lon_0=-94.5 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Missouri West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36.16666666666666],PARAMETER["central_meridian",-94.5],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26798"],AXIS["X",EAST],AXIS["Y",NORTH]]lat_0=34.13333333333333 +lon_0=-118.3333333333333 +x_0=1276106.450596901 +y_0=1268253.006858014 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / California zone VII",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",34.41666666666666],PARAMETER["standard_parallel_2",33.86666666666667],PARAMETER["latitude_of_origin",34.13333333333333],PARAMETER["central_meridian",-118.3333333333333],PARAMETER["false_easting",4186692.58],PARAMETER["false_northing",4160926.74],AUTHORITY["EPSG","26799"],AXIS["X",EAST],AXIS["Y",NORTH]] s1 EIaepsghNAD Michigan / Michigan East+proj=tmerc +lat_0=41.5 +lon_0=-83.66666666666667 +k=0.999942857 +x_0=152400.3048006096 +y_0=0 +a=6378450.047548896 +b=6356826.621488444 +units=us-ft +no_defsPROJCS["NAD Michigan / Michigan East",GEOGCS["NAD27 Michigan",DATUM["NAD_Michigan",SPHEROID["Clarke 1866 Michigan",6378450.047548896,294.9786971646739,AUTHORITY["EPSG","7009"]],AUTHORITY["EPSG","6268"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4268"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.5],PARAMETER["central_meridian",-83.66666666666667],PARAMETER["scale_factor",0.999942857],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26801"],AXIS["X",EAST],AXIS["Y",NORTH]] i2 S1WepsghNAD Michigan / Michigan Old Central+proj=tmerc +lat_0=41.5 +lon_0=-85.75 +k=0.999909091 +x_0=152400.3048006096 +y_0=0 +a=6378450.047548896 +b=6356826.621488444 +units=us-ft +no_defsPROJCS["NAD Michigan / Michigan Old Central",GEOGCS["NAD27 Michigan",DATUM["NAD_Michigan",SPHEROID["Clarke 1866 Michigan",6378450.047548896,294.9786971646739,AUTHORITY["EPSG","7009"]],AUTHORITY["EPSG","6268"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4268"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.5],PARAMETER["central_meridian",-85.75],PARAMETER["scale_factor",0.999909091],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26802"],AXIS["X",EAST],AXIS["Y",NORTH]] [3 E1IepsghNAD Michigan / Michigan West+proj=tmerc +lat_0=41.5 +lon_0=-88.75 +k=0.999909091 +x_0=152400.3048006096 +y_0=0 +a=6378450.047548896 +b=6356826.621488444 +units=us-ft +no_defsPROJCS["NAD Michigan / Michigan West",GEOGCS["NAD27 Michigan",DATUM["NAD_Michigan",SPHEROID["Clarke 1866 Michigan",6378450.047548896,294.9786971646739,AUTHORITY["EPSG","7009"]],AUTHORITY["EPSG","6268"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4268"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.5],PARAMETER["central_meridian",-88.75],PARAMETER["scale_factor",0.999909091],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26803"],AXIS["X",EAST],AXIS["Y",NORTH]] ;(5BO\iv,9FS`mz #0=JWdq~ hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh  [; GqepsghNAD Michigan / Michigan North+proj=lcc +lat_1=45.48333333333333 +lat_2=47.08333333333334 +lat_0=44.78333333333333 +lon_0=-87 +x_0=609601.2192024384 +y_0=0 +a=6378450.047548896 +b=6356826.621488444 +units=us-ft +no_defsPROJCS["NAD Michigan / Michigan North",GEOGCS["NAD27 Michigan",DATUM["NAD_Michigan",SPHEROID["Clarke 1866 Michigan",6378450.047548896,294.9786971646739,AUTHORITY["EPSG","7009"]],AUTHORITY["EPSG","6268"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4268"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.48333333333333],PARAMETER["standard_parallel_2",47.08333333333334],PARAMETER["latitude_of_origin",44.78333333333333],PARAMETER["central_meridian",-87],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26811"],AXIS["X",EAST],AXIS["Y",NORTH]]31666666666667 +lon_0=-84.33333333333333 +x_0=609601.2192024384 +y_0=0 +a=6378450.047548896 +b=6356826.621488444 +units=us-ft +no_defsPROJCS["NAD Michigan / Michigan Central",GEOGCS["NAD27 Michigan",DATUM["NAD_Michigan",SPHEROID["Clarke 1866 Michigan",6378450.047548896,294.9786971646739,AUTHORITY["EPSG","7009"]],AUTHORITY["EPSG","6268"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4268"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",44.18333333333333],PARAMETER["standard_parallel_2",45.7],PARAMETER["latitude_of_origin",43.31666666666667],PARAMETER["central_meridian",-84.33333333333333],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26812"],AXIS["X",EAST],AXIS["Y",NORTH]] c< K yepsghNAD Michigan / Michigan Central+proj=lcc +lat_1=44.18333333333333 +lat_2=45.7 +lat_0=43. S 66E= Gq[epsghNAD Michigan / Michigan South+proj=lcc +lat_1=42.1 +lat_2=43.66666666666666 +lat_0=41.5 +lon_0=-84.33333333333333 +x_0=609601.2192024384 +y_0=0 +a=6378450.047548896 +b=6356826.621488444 +units=us-ft +no_defsPROJCS["NAD Michigan / Michigan South",GEOGCS["NAD27 Michigan",DATUM["NAD_Michigan",SPHEROID["Clarke 1866 Michigan",6378450.047548896,294.9786971646739,AUTHORITY["EPSG","7009"]],AUTHORITY["EPSG","6268"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4268"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",42.1],PARAMETER["standard_parallel_2",43.66666666666666],PARAMETER["latitude_of_origin",41.5],PARAMETER["central_meridian",-84.33333333333333],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26813"],AXIS["X",EAST],AXIS["Y",NORTH]] .> Y epsghNAD83 / Maine East (ftUS) (deprecated)+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9999 +x_0=300000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Maine East (ftUS) (deprecated)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",43.66666666666666],PARAMETER["central_meridian",-68.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",300000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26814"],AXIS["X",EAST],AXIS["Y",NORTH]] R? Y%/epsghNAD83 / Maine West (ftUS) (deprecated)+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Maine West (ftUS) (deprecated)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",42.83333333333334],PARAMETER["central_meridian",-70.16666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",900000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26815"],AXIS["X",EAST],AXIS["Y",NORTH]] --NC c}EepsghNAD83 / Minnesota North (ftUS) (deprecated)+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.0000101601 +y_0=99999.99998984 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Minnesota North (ftUS) (deprecated)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",48.63333333333333],PARAMETER["standard_parallel_2",47.03333333333333],PARAMETER["latitude_of_origin",46.5],PARAMETER["central_meridian",-93.1],PARAMETER["false_easting",800000.0000101601],PARAMETER["false_northing",99999.99998984],AUTHORITY["EPSG","26819"],AXIS["X",EAST],AXIS["Y",NORTH]] PP+D gI/epsghNAD83 / Minnesota Central (ftUS) (deprecated)+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=45 +lon_0=-94.25 +x_0=800000.0000101601 +y_0=99999.99998984 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Minnesota Central (ftUS) (deprecated)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.05],PARAMETER["standard_parallel_2",45.61666666666667],PARAMETER["latitude_of_origin",45],PARAMETER["central_meridian",-94.25],PARAMETER["false_easting",800000.0000101601],PARAMETER["false_northing",99999.99998984],AUTHORITY["EPSG","26820"],AXIS["X",EAST],AXIS["Y",NORTH]] BB9E c[=epsghNAD83 / Minnesota South (ftUS) (deprecated)+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101601 +y_0=99999.99998984 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Minnesota South (ftUS) (deprecated)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.21666666666667],PARAMETER["standard_parallel_2",43.78333333333333],PARAMETER["latitude_of_origin",43],PARAMETER["central_meridian",-94],PARAMETER["false_easting",800000.0000101601],PARAMETER["false_northing",99999.99998984],AUTHORITY["EPSG","26821"],AXIS["X",EAST],AXIS["Y",NORTH]] uF U%yepsghNAD83 / Nebraska (ftUS) (deprecated)+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +lon_0=-100 +x_0=500000.0000101601 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Nebraska (ftUS) (deprecated)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43],PARAMETER["standard_parallel_2",40],PARAMETER["latitude_of_origin",39.83333333333334],PARAMETER["central_meridian",-100],PARAMETER["false_easting",500000.0000101601],PARAMETER["false_northing",0],AUTHORITY["EPSG","26822"],AXIS["X",EAST],AXIS["Y",NORTH]] eG kiepsghNAD83 / West Virginia North (ftUS) (deprecated)+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79.5 +x_0=1968500 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / West Virginia North (ftUS) (deprecated)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.25],PARAMETER["standard_parallel_2",39],PARAMETER["latitude_of_origin",38.5],PARAMETER["central_meridian",-79.5],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","26823"],AXIS["X",EAST],AXIS["Y",NORTH]] hhH k-epsghNAD83 / West Virginia South (ftUS) (deprecated)+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333333 +lat_0=37 +lon_0=-81 +x_0=1968500 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / West Virginia South (ftUS) (deprecated)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.88333333333333],PARAMETER["standard_parallel_2",37.48333333333333],PARAMETER["latitude_of_origin",37],PARAMETER["central_meridian",-81],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","26824"],AXIS["X",EAST],AXIS["Y",NORTH]] >I eg9epsghNAD83(HARN) / Maine East (ftUS) (deprecated)+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9999 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Maine East (ftUS) (deprecated)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",43.66666666666666],PARAMETER["central_meridian",-68.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",300000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26825"],AXIS["X",EAST],AXIS["Y",NORTH]] ))^N ocsepsghNAD83(HARN) / Minnesota North (ftUS) (deprecated)+proj=lcc +lat_1=48.63333333333333 +lat `bJ e ]epsghNAD83(HARN) / Maine West (ftUS) (deprecated)+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Maine West (ftUS) (deprecated)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",42.83333333333334],PARAMETER["central_meridian",-70.16666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",900000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26826"],AXIS["X",EAST],AXIS["Y",NORTH]]_2=47.03333333333333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.0000101601 +y_0=99999.99998984 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Minnesota North (ftUS) (deprecated)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",48.63333333333333],PARAMETER["standard_parallel_2",47.03333333333333],PARAMETER["latitude_of_origin",46.5],PARAMETER["central_meridian",-93.1],PARAMETER["false_easting",800000.0000101601],PARAMETER["false_northing",99999.99998984],AUTHORITY["EPSG","26830"],AXIS["X",EAST],AXIS["Y",NORTH]] @@;O s/]epsghNAD83(HARN) / Minnesota Central (ftUS) (deprecated)+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=45 +lon_0=-94.25 +x_0=800000.0000101601 +y_0=99999.99998984 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Minnesota Central (ftUS) (deprecated)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.05],PARAMETER["standard_parallel_2",45.61666666666667],PARAMETER["latitude_of_origin",45],PARAMETER["central_meridian",-94.25],PARAMETER["false_easting",800000.0000101601],PARAMETER["false_northing",99999.99998984],AUTHORITY["EPSG","26831"],AXIS["X",EAST],AXIS["Y",NORTH]] 22IP oAkepsghNAD83(HARN) / Minnesota South (ftUS) (deprecated)+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101601 +y_0=99999.99998984 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Minnesota South (ftUS) (deprecated)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.21666666666667],PARAMETER["standard_parallel_2",43.78333333333333],PARAMETER["latitude_of_origin",43],PARAMETER["central_meridian",-94],PARAMETER["false_easting",800000.0000101601],PARAMETER["false_northing",99999.99998984],AUTHORITY["EPSG","26832"],AXIS["X",EAST],AXIS["Y",NORTH]] vvQ a 'epsghNAD83(HARN) / Nebraska (ftUS) (deprecated)+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +lon_0=-100 +x_0=500000.0000101601 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Nebraska (ftUS) (deprecated)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43],PARAMETER["standard_parallel_2",40],PARAMETER["latitude_of_origin",39.83333333333334],PARAMETER["central_meridian",-100],PARAMETER["false_easting",500000.0000101601],PARAMETER["false_northing",0],AUTHORITY["EPSG","26833"],AXIS["X",EAST],AXIS["Y",NORTH]] uR weepsghNAD83(HARN) / West Virginia North (ftUS) (deprecated)+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79.5 +x_0=1968500 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / West Virginia North (ftUS) (deprecated)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.25],PARAMETER["standard_parallel_2",39],PARAMETER["latitude_of_origin",38.5],PARAMETER["central_meridian",-79.5],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","26834"],AXIS["X",EAST],AXIS["Y",NORTH]] XX#S wEepsghNAD83(HARN) / West Virginia South (ftUS) (deprecated)+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333333 +lat_0=37 +lon_0=-81 +x_0=1968500 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / West Virginia South (ftUS) (deprecated)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.88333333333333],PARAMETER["standard_parallel_2",37.48333333333333],PARAMETER["latitude_of_origin",37],PARAMETER["central_meridian",-81],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","26835"],AXIS["X",EAST],AXIS["Y",NORTH]] {{T mepsghNAD83(NSRS2007) / Maine East (ftUS) (deprecated)+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9999 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Maine East (ftUS) (deprecated)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",43.66666666666666],PARAMETER["central_meridian",-68.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",300000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26836"],AXIS["X",EAST],AXIS["Y",NORTH]] WW$U m9+epsghNAD83(NSRS2007) / Maine West (ftUS) (deprecated)+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Maine West (ftUS) (deprecated)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",42.83333333333334],PARAMETER["central_meridian",-70.16666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",900000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26837"],AXIS["X",EAST],AXIS["Y",NORTH]]+lat_2=47.03333333333333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.0000101601 +y_0=99999.99998984 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Minnesota North (ftUS) (deprecated)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",48.63333333333333],PARAMETER["standard_parallel_2",47.03333333333333],PARAMETER["latitude_of_origin",46.5],PARAMETER["central_meridian",-93.1],PARAMETER["false_easting",800000.0000101601],PARAMETER["false_northing",99999.99998984],AUTHORITY["EPSG","26841"],AXIS["X",EAST],AXIS["Y",NORTH]]   [ wo9epsghNAD83(NSRS2007) / Minnesota South (ftUS) (deprecated)+proj=lcc +lat_1=45.21666666666667 k}Z {]+epsghNAD83(NSRS2007) / Minnesota Central (ftUS) (deprecated)+proj=lcc +lat_1=47.05 +lat_2=45. j Y wAepsghNAD83(NSRS2007) / Minnesota North (ftUS) (deprecated)+proj=lcc +lat_1=48.63333333333333 h61666666666667 +lat_0=45 +lon_0=-94.25 +x_0=800000.0000101601 +y_0=99999.99998984 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Minnesota Central (ftUS) (deprecated)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.05],PARAMETER["standard_parallel_2",45.61666666666667],PARAMETER["latitude_of_origin",45],PARAMETER["central_meridian",-94.25],PARAMETER["false_easting",800000.0000101601],PARAMETER["false_northing",99999.99998984],AUTHORITY["EPSG","26842"],AXIS["X",EAST],AXIS["Y",NORTH]]+lat_2=43.78333333333333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101601 +y_0=99999.99998984 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Minnesota South (ftUS) (deprecated)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.21666666666667],PARAMETER["standard_parallel_2",43.78333333333333],PARAMETER["latitude_of_origin",43],PARAMETER["central_meridian",-94],PARAMETER["false_easting",800000.0000101601],PARAMETER["false_northing",99999.99998984],AUTHORITY["EPSG","26843"],AXIS["X",EAST],AXIS["Y",NORTH]] 44G\ i9uepsghNAD83(NSRS2007) / Nebraska (ftUS) (deprecated)+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +lon_0=-100 +x_0=500000.0000101601 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Nebraska (ftUS) (deprecated)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43],PARAMETER["standard_parallel_2",40],PARAMETER["latitude_of_origin",39.83333333333334],PARAMETER["central_meridian",-100],PARAMETER["false_easting",500000.0000101601],PARAMETER["false_northing",0],AUTHORITY["EPSG","26844"],AXIS["X",EAST],AXIS["Y",NORTH]] DD7] eepsghNAD83(NSRS2007) / West Virginia North (ftUS) (deprecated)+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79.5 +x_0=1968500 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / West Virginia North (ftUS) (deprecated)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.25],PARAMETER["standard_parallel_2",39],PARAMETER["latitude_of_origin",38.5],PARAMETER["central_meridian",-79.5],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","26845"],AXIS["X",EAST],AXIS["Y",NORTH]]333 +lat_2=37.48333333333333 +lat_0=37 +lon_0=-81 +x_0=1968500 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / West Virginia South (ftUS) (deprecated)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.88333333333333],PARAMETER["standard_parallel_2",37.48333333333333],PARAMETER["latitude_of_origin",37],PARAMETER["central_meridian",-81],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","26846"],AXIS["X",EAST],AXIS["Y",NORTH]] CCH_ ?;epsghNAD83 / Maine East (ftUS)+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9999 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Maine East (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",43.66666666666666],PARAMETER["central_meridian",-68.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",984250.0000000002],PARAMETER["false_northing",0],AUTHORITY["EPSG","26847"],AXIS["X",EAST],AXIS["Y",NORTH]]e^ AepsghNAD83(NSRS2007) / West Virginia South (ftUS) (deprecated)+proj=lcc +lat_1=38.88333333333 n W` ?-KepsghNAD83 / Maine West (ftUS)+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Maine West (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",42.83333333333334],PARAMETER["central_meridian",-70.16666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",2952750],PARAMETER["false_northing",0],AUTHORITY["EPSG","26848"],AXIS["X",EAST],AXIS["Y",NORTH]] ..Ma I OepsghNAD83 / Minnesota North (ftUS)+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.0000101599 +y_0=99999.99998983997 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Minnesota North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",48.63333333333333],PARAMETER["standard_parallel_2",47.03333333333333],PARAMETER["latitude_of_origin",46.5],PARAMETER["central_meridian",-93.1],PARAMETER["false_easting",2624666.6667],PARAMETER["false_northing",328083.3333],AUTHORITY["EPSG","26849"],AXIS["X",EAST],AXIS["Y",NORTH]] QQ*b MW9epsghNAD83 / Minnesota Central (ftUS)+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=45 +lon_0=-94.25 +x_0=800000.0000101599 +y_0=99999.99998983997 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Minnesota Central (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.05],PARAMETER["standard_parallel_2",45.61666666666667],PARAMETER["latitude_of_origin",45],PARAMETER["central_meridian",-94.25],PARAMETER["false_easting",2624666.6667],PARAMETER["false_northing",328083.3333],AUTHORITY["EPSG","26850"],AXIS["X",EAST],AXIS["Y",NORTH]] CC8c IiGepsghNAD83 / Minnesota South (ftUS)+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101599 +y_0=99999.99998983997 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Minnesota South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.21666666666667],PARAMETER["standard_parallel_2",43.78333333333333],PARAMETER["latitude_of_origin",43],PARAMETER["central_meridian",-94],PARAMETER["false_easting",2624666.6667],PARAMETER["false_northing",328083.3333],AUTHORITY["EPSG","26851"],AXIS["X",EAST],AXIS["Y",NORTH]] rd ;) epsghNAD83 / Nebraska (ftUS)+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +lon_0=-100 +x_0=500000.00001016 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Nebraska (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43],PARAMETER["standard_parallel_2",40],PARAMETER["latitude_of_origin",39.83333333333334],PARAMETER["central_meridian",-100],PARAMETER["false_easting",1640416.6667],PARAMETER["false_northing",0],AUTHORITY["EPSG","26852"],AXIS["X",EAST],AXIS["Y",NORTH]] he QepsghNAD83 / West Virginia North (ftUS)+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79.5 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / West Virginia North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.25],PARAMETER["standard_parallel_2",39],PARAMETER["latitude_of_origin",38.5],PARAMETER["central_meridian",-79.5],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","26853"],AXIS["X",EAST],AXIS["Y",NORTH]] eef Q31epsghNAD83 / West Virginia South (ftUS)+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / West Virginia South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.88333333333333],PARAMETER["standard_parallel_2",37.48333333333333],PARAMETER["latitude_of_origin",37],PARAMETER["central_meridian",-81],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","26854"],AXIS["X",EAST],AXIS["Y",NORTH]] Xg KiepsghNAD83(HARN) / Maine East (ftUS)+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9999 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Maine East (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",43.66666666666666],PARAMETER["central_meridian",-68.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",984250.0000000002],PARAMETER["false_northing",0],AUTHORITY["EPSG","26855"],AXIS["X",EAST],AXIS["Y",NORTH]] gh KyepsghNAD83(HARN) / Maine West (ftUS)+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Maine West (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",42.83333333333334],PARAMETER["central_meridian",-70.16666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",2952750],PARAMETER["false_northing",0],AUTHORITY["EPSG","26856"],AXIS["X",EAST],AXIS["Y",NORTH]] ]i Uq}epsghNAD83(HARN) / Minnesota North (ftUS)+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.0000101599 +y_0=99999.99998983997 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Minnesota North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",48.63333333333333],PARAMETER["standard_parallel_2",47.03333333333333],PARAMETER["latitude_of_origin",46.5],PARAMETER["central_meridian",-93.1],PARAMETER["false_easting",2624666.6667],PARAMETER["false_northing",328083.3333],AUTHORITY["EPSG","26857"],AXIS["X",EAST],AXIS["Y",NORTH]] AA:j Y=gepsghNAD83(HARN) / Minnesota Central (ftUS)+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=45 +lon_0=-94.25 +x_0=800000.0000101599 +y_0=99999.99998983997 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Minnesota Central (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.05],PARAMETER["standard_parallel_2",45.61666666666667],PARAMETER["latitude_of_origin",45],PARAMETER["central_meridian",-94.25],PARAMETER["false_easting",2624666.6667],PARAMETER["false_northing",328083.3333],AUTHORITY["EPSG","26858"],AXIS["X",EAST],AXIS["Y",NORTH]] 33Hk UOuepsghNAD83(HARN) / Minnesota South (ftUS)+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101599 +y_0=99999.99998983997 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Minnesota South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.21666666666667],PARAMETER["standard_parallel_2",43.78333333333333],PARAMETER["latitude_of_origin",43],PARAMETER["central_meridian",-94],PARAMETER["false_easting",2624666.6667],PARAMETER["false_northing",328083.3333],AUTHORITY["EPSG","26859"],AXIS["X",EAST],AXIS["Y",NORTH]] yyl G7epsghNAD83(HARN) / Nebraska (ftUS)+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +lon_0=-100 +x_0=500000.00001016 +y_0=0 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Nebraska (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43],PARAMETER["standard_parallel_2",40],PARAMETER["latitude_of_origin",39.83333333333334],PARAMETER["central_meridian",-100],PARAMETER["false_easting",1640416.6667],PARAMETER["false_northing",0],AUTHORITY["EPSG","26860"],AXIS["X",EAST],AXIS["Y",NORTH]] xm ]k1epsghNAD83(HARN) / West Virginia North (ftUS)+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / West Virginia North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.25],PARAMETER["standard_parallel_2",39],PARAMETER["latitude_of_origin",38.5],PARAMETER["central_meridian",-79.5],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","26861"],AXIS["X",EAST],AXIS["Y",NORTH]] UU&n ]_epsghNAD83(HARN) / West Virginia South (ftUS)+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / West Virginia South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.88333333333333],PARAMETER["standard_parallel_2",37.48333333333333],PARAMETER["latitude_of_origin",37],PARAMETER["central_meridian",-81],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","26862"],AXIS["X",EAST],AXIS["Y",NORTH]] aao S37epsghNAD83(NSRS2007) / Maine East (ftUS)+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9999 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Maine East (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",43.66666666666666],PARAMETER["central_meridian",-68.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",984250.0000000002],PARAMETER["false_northing",0],AUTHORITY["EPSG","26863"],AXIS["X",EAST],AXIS["Y",NORTH]] RR)p SAGepsghNAD83(NSRS2007) / Maine West (ftUS)+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Maine West (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",42.83333333333334],PARAMETER["central_meridian",-70.16666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",2952750],PARAMETER["false_northing",0],AUTHORITY["EPSG","26864"],AXIS["X",EAST],AXIS["Y",NORTH]]33333333333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.0000101599 +y_0=99999.99998983997 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Minnesota North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",48.63333333333333],PARAMETER["standard_parallel_2",47.03333333333333],PARAMETER["latitude_of_origin",46.5],PARAMETER["central_meridian",-93.1],PARAMETER["false_easting",2624666.6667],PARAMETER["false_northing",328083.3333],AUTHORITY["EPSG","26865"],AXIS["X",EAST],AXIS["Y",NORTH]]   s ]}CepsghNAD83(NSRS2007) / Minnesota South (ftUS)+proj=lcc +lat_1=45.21666666666667 +lat_2=43.783 |r ak5epsghNAD83(NSRS2007) / Minnesota Central (ftUS)+proj=lcc +lat_1=47.05 +lat_2=45.6166666666666 q ]KepsghNAD83(NSRS2007) / Minnesota North (ftUS)+proj=lcc +lat_1=48.63333333333333 +lat_2=47.033 7 +lat_0=45 +lon_0=-94.25 +x_0=800000.0000101599 +y_0=99999.99998983997 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Minnesota Central (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.05],PARAMETER["standard_parallel_2",45.61666666666667],PARAMETER["latitude_of_origin",45],PARAMETER["central_meridian",-94.25],PARAMETER["false_easting",2624666.6667],PARAMETER["false_northing",328083.3333],AUTHORITY["EPSG","26866"],AXIS["X",EAST],AXIS["Y",NORTH]]33333333333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101599 +y_0=99999.99998983997 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Minnesota South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.21666666666667],PARAMETER["standard_parallel_2",43.78333333333333],PARAMETER["latitude_of_origin",43],PARAMETER["central_meridian",-94],PARAMETER["false_easting",2624666.6667],PARAMETER["false_northing",328083.3333],AUTHORITY["EPSG","26867"],AXIS["X",EAST],AXIS["Y",NORTH]] 77Dt O=epsghNAD83(NSRS2007) / Nebraska (ftUS)+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +lon_0=-100 +x_0=500000.00001016 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Nebraska (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43],PARAMETER["standard_parallel_2",40],PARAMETER["latitude_of_origin",39.83333333333334],PARAMETER["central_meridian",-100],PARAMETER["false_easting",1640416.6667],PARAMETER["false_northing",0],AUTHORITY["EPSG","26868"],AXIS["X",EAST],AXIS["Y",NORTH]] AA:u eepsghNAD83(NSRS2007) / West Virginia North (ftUS)+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79.5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / West Virginia North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.25],PARAMETER["standard_parallel_2",39],PARAMETER["latitude_of_origin",38.5],PARAMETER["central_meridian",-79.5],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","26869"],AXIS["X",EAST],AXIS["Y",NORTH]].48333333333333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / West Virginia South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.88333333333333],PARAMETER["standard_parallel_2",37.48333333333333],PARAMETER["latitude_of_origin",37],PARAMETER["central_meridian",-81],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","26870"],AXIS["X",EAST],AXIS["Y",NORTH]]  ?Gepsgi NAD83(CSRS) / MTM zone 11+proj=tmerc +lat_0=0 +lon_0=-82.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / MTM zone 11",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-82.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","26891"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]hv eG-epsghNAD83(NSRS2007) / West Virginia South (ftUS)+proj=lcc +lat_1=38.88333333333333 +lat_2=37  ?Cepsgi NAD83(CSRS) / MTM zone 12+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / MTM zone 12",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","26892"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  ?Cepsgi NAD83(CSRS) / MTM zone 13+proj=tmerc +lat_0=0 +lon_0=-84 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / MTM zone 13",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-84],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","26893"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  ?CepsgiNAD83(CSRS) / MTM zone 14+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / MTM zone 14",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-87],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","26894"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  ?CepsgiNAD83(CSRS) / MTM zone 15+proj=tmerc +lat_0=0 +lon_0=-90 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / MTM zone 15",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-90],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","26895"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  ?CepsgiNAD83(CSRS) / MTM zone 16+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / MTM zone 16",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-93],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","26896"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  ?CepsgiNAD83(CSRS) / MTM zone 17+proj=tmerc +lat_0=0 +lon_0=-96 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / MTM zone 17",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-96],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","26897"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] { =CepsgiNAD83(CSRS) / MTM zone 1+proj=tmerc +lat_0=0 +lon_0=-53 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / MTM zone 1",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-53],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","26898"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] { =CepsgiNAD83(CSRS) / MTM zone 2+proj=tmerc +lat_0=0 +lon_0=-56 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / MTM zone 2",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-56],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","26899"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] ;(5BO\iv,9FS`mz #0=JWdq~ hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh hepsgh i epsgi i epsgi i epsgi iepsgi iepsgi iepsgi iepsgi iepsgi iepsgi iepsgi iepsgi iepsgi iepsgi iepsgi iepsgi iepsgi iepsgi iepsgi iepsgi iepsgi i epsgi i!epsgi! i"epsgi" i#epsgi# i$epsgi$ i%epsgi% i&epsgi& i'epsgi' i(epsgi( i)epsgi) i*epsgi* i+epsgi+ i1epsgi1 i2epsgi2 i3epsgi3 i4epsgi4 i5epsgi5 i6epsgi6 i7epsgi7 i8epsgi8 i9epsgi9 i:epsgi: i;epsgi; i ? @ A B D E F G H I J ÁK āL ŁM ƁN ǁO ȁP ɁQ ʁR ˁS ́T ́U ΁V ЁW сX ҁY ӁZ ԁ[ Ձ\ ց] ׁ^ ؁_ ف` ځa ہb ܁c ݁d ށe ߁f g h i j k l m n o p q r l; 7aIepsgi;NAD83 / Alaska zone 9+proj=tmerc +lat_0=54 +lon_0=-170 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Alaska zone 9",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",54],PARAMETER["central_meridian",-170],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26939"],AXIS["X",EAST],AXIS["Y",NORTH]] c< 9/gepsgi ?Wepsgi>NAD83 / California zone 2+proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000 +y_0=500000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / California zone 2",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.83333333333334],PARAMETER["standard_parallel_2",38.33333333333334],PARAMETER["latitude_of_origin",37.66666666666666],PARAMETER["central_meridian",-122],PARAMETER["false_easting",2000000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","26942"],AXIS["X",EAST],AXIS["Y",NORTH]] {? ?Aepsgi?NAD83 / California zone 3+proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666667 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000 +y_0=500000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / California zone 3",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.43333333333333],PARAMETER["standard_parallel_2",37.06666666666667],PARAMETER["latitude_of_origin",36.5],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","26943"],AXIS["X",EAST],AXIS["Y",NORTH]] [@ ?!_epsgi@NAD83 / California zone 4+proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.33333333333334 +lon_0=-119 +x_0=2000000 +y_0=500000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / California zone 4",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.25],PARAMETER["standard_parallel_2",36],PARAMETER["latitude_of_origin",35.33333333333334],PARAMETER["central_meridian",-119],PARAMETER["false_easting",2000000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","26944"],AXIS["X",EAST],AXIS["Y",NORTH]] wA ?={epsgiANAD83 / California zone 5+proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333333 +lat_0=33.5 +lon_0=-118 +x_0=2000000 +y_0=500000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / California zone 5",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",35.46666666666667],PARAMETER["standard_parallel_2",34.03333333333333],PARAMETER["latitude_of_origin",33.5],PARAMETER["central_meridian",-118],PARAMETER["false_easting",2000000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","26945"],AXIS["X",EAST],AXIS["Y",NORTH]] ddB ?]epsgiBNAD83 / California zone 6+proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000 +y_0=500000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / California zone 6",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",33.88333333333333],PARAMETER["standard_parallel_2",32.78333333333333],PARAMETER["latitude_of_origin",32.16666666666666],PARAMETER["central_meridian",-116.25],PARAMETER["false_easting",2000000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","26946"],AXIS["X",EAST],AXIS["Y",NORTH]] D 5}cepsgiDNAD83 / Arizona East+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Arizona East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-110.1666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",213360],PARAMETER["false_northing",0],AUTHORITY["EPSG","26948"],AXIS["X",EAST],AXIS["Y",NORTH]]  E ;}iepsgiENAD83 / Arizona Central+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Arizona Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-111.9166666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",213360],PARAMETER["false_northing",0],AUTHORITY["EPSG","26949"],AXIS["X",EAST],AXIS["Y",NORTH]] zF 5qWepsgiFNAD83 / Arizona West+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0=213360 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Arizona West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-113.75],PARAMETER["scale_factor",0.999933333],PARAMETER["false_easting",213360],PARAMETER["false_northing",0],AUTHORITY["EPSG","26950"],AXIS["X",EAST],AXIS["Y",NORTH]] ~~}G 9IepsgiGNAD83 / Arkansas North+proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=400000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Arkansas North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.23333333333333],PARAMETER["standard_parallel_2",34.93333333333333],PARAMETER["latitude_of_origin",34.33333333333334],PARAMETER["central_meridian",-92],PARAMETER["false_easting",400000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26951"],AXIS["X",EAST],AXIS["Y",NORTH]] mH 99qepsgiHNAD83 / Arkansas South+proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32.66666666666666 +lon_0=-92 +x_0=400000 +y_0=400000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Arkansas South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",34.76666666666667],PARAMETER["standard_parallel_2",33.3],PARAMETER["latitude_of_origin",32.66666666666666],PARAMETER["central_meridian",-92],PARAMETER["false_easting",400000],PARAMETER["false_northing",400000],AUTHORITY["EPSG","26952"],AXIS["X",EAST],AXIS["Y",NORTH]] ZZ!I 9m%epsgiINAD83 / Colorado North+proj=lcc +lat_1=40.78333333333333 +lat_2=39.71666666666667 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Colorado North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.78333333333333],PARAMETER["standard_parallel_2",39.71666666666667],PARAMETER["latitude_of_origin",39.33333333333334],PARAMETER["central_meridian",-105.5],PARAMETER["false_easting",914401.8289],PARAMETER["false_northing",304800.6096],AUTHORITY["EPSG","26953"],AXIS["X",EAST],AXIS["Y",NORTH]] uJ ==yepsgiJNAD83 / Colorado Central+proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.83333333333334 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Colorado Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.75],PARAMETER["standard_parallel_2",38.45],PARAMETER["latitude_of_origin",37.83333333333334],PARAMETER["central_meridian",-105.5],PARAMETER["false_easting",914401.8289],PARAMETER["false_northing",304800.6096],AUTHORITY["EPSG","26954"],AXIS["X",EAST],AXIS["Y",NORTH]] ZZ!K 9m%epsgiKNAD83 / Colorado South+proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Colorado South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.43333333333333],PARAMETER["standard_parallel_2",37.23333333333333],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-105.5],PARAMETER["false_easting",914401.8289],PARAMETER["false_northing",304800.6096],AUTHORITY["EPSG","26955"],AXIS["X",EAST],AXIS["Y",NORTH]] zzL 3SepsgiLNAD83 / Connecticut+proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40.83333333333334 +lon_0=-72.75 +x_0=304800.6096 +y_0=152400.3048 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Connecticut",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.86666666666667],PARAMETER["standard_parallel_2",41.2],PARAMETER["latitude_of_origin",40.83333333333334],PARAMETER["central_meridian",-72.75],PARAMETER["false_easting",304800.6096],PARAMETER["false_northing",152400.3048],AUTHORITY["EPSG","26956"],AXIS["X",EAST],AXIS["Y",NORTH]] M -_epsgiMNAD83 / Delaware+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999995 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Delaware",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38],PARAMETER["central_meridian",-75.41666666666667],PARAMETER["scale_factor",0.999995],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26957"],AXIS["X",EAST],AXIS["Y",NORTH]] N 5mepsgiNNAD83 / Florida East+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999941177 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Florida East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",24.33333333333333],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26958"],AXIS["X",EAST],AXIS["Y",NORTH]] O 5mepsgiONAD83 / Florida West+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999941177 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Florida West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",24.33333333333333],PARAMETER["central_meridian",-82],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26959"],AXIS["X",EAST],AXIS["Y",NORTH]] IP 7MepsgiPNAD83 / Florida North+proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=29 +lon_0=-84.5 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Florida North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",30.75],PARAMETER["standard_parallel_2",29.58333333333333],PARAMETER["latitude_of_origin",29],PARAMETER["central_meridian",-84.5],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26960"],AXIS["X",EAST],AXIS["Y",NORTH]] Q 7 uepsgiQNAD83 / Hawaii zone 1+proj=tmerc +lat_0=18.83333333333333 +lon_0=-155.5 +k=0.999966667 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Hawaii zone 1",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",18.83333333333333],PARAMETER["central_meridian",-155.5],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26961"],AXIS["X",EAST],AXIS["Y",NORTH]] 0R 7% epsgiRNAD83 / Hawaii zone 2+proj=tmerc +lat_0=20.33333333333333 +lon_0=-156.6666666666667 +k=0.999966667 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Hawaii zone 2",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",20.33333333333333],PARAMETER["central_meridian",-156.6666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26962"],AXIS["X",EAST],AXIS["Y",NORTH]]  S 7iepsgiSNAD83 / Hawaii zone 3+proj=tmerc +lat_0=21.16666666666667 +lon_0=-158 +k=0.99999 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Hawaii zone 3",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",21.16666666666667],PARAMETER["central_meridian",-158],PARAMETER["scale_factor",0.99999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26963"],AXIS["X",EAST],AXIS["Y",NORTH]] T 7mepsgiTNAD83 / Hawaii zone 4+proj=tmerc +lat_0=21.83333333333333 +lon_0=-159.5 +k=0.99999 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Hawaii zone 4",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",21.83333333333333],PARAMETER["central_meridian",-159.5],PARAMETER["scale_factor",0.99999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26964"],AXIS["X",EAST],AXIS["Y",NORTH]] U 7yepsgiUNAD83 / Hawaii zone 5+proj=tmerc +lat_0=21.66666666666667 +lon_0=-160.1666666666667 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Hawaii zone 5",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",21.66666666666667],PARAMETER["central_meridian",-160.1666666666667],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26965"],AXIS["X",EAST],AXIS["Y",NORTH]] V 5}cepsgiVNAD83 / Georgia East+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.9999 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Georgia East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",30],PARAMETER["central_meridian",-82.16666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26966"],AXIS["X",EAST],AXIS["Y",NORTH]] ;(5BO\iv,9FS`mz #0=JWdq~ i?epsgi? i@epsgi@ iAepsgiA iBepsgiB iDepsgiD iEepsgiE iFepsgiF iGepsgiG iHepsgiH iIepsgiI iJepsgiJ iKepsgiK iLepsgiL iMepsgiM iNepsgiN iOepsgiO iPepsgiP iQepsgiQ iRepsgiR iSepsgiS iTepsgiT iUepsgiU iVepsgiV iWepsgiW iXepsgiX iYepsgiY iZepsgiZ i[epsgi[ i\epsgi\ i]epsgi] i^epsgi^ i_epsgi_ i`epsgi` iaepsgia ibepsgib icepsgic idepsgid ieepsgie ifepsgif igepsgig ihepsgih iiepsgii ijepsgij ikepsgik ilepsgil imepsgim inepsgin ioepsgio ipepsgip iqepsgiq irepsgir isepsgis itepsgit iuepsgiu ivepsgiv iepsgi iepsgi iepsgi iepsgi W 5}cepsgiWNAD83 / Georgia West+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.9999 +x_0=700000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Georgia West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",30],PARAMETER["central_meridian",-84.16666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",700000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26967"],AXIS["X",EAST],AXIS["Y",NORTH]] 1X 13epsgiXNAD83 / Idaho East+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666666667 +k=0.9999473679999999 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Idaho East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.66666666666666],PARAMETER["central_meridian",-112.1666666666667],PARAMETER["scale_factor",0.999947368],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26968"],AXIS["X",EAST],AXIS["Y",NORTH]] Y 7qepsgiYNAD83 / Idaho Central+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.9999473679999999 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Idaho Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.66666666666666],PARAMETER["central_meridian",-114],PARAMETER["scale_factor",0.999947368],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26969"],AXIS["X",EAST],AXIS["Y",NORTH]] Z 1qepsgiZNAD83 / Idaho West+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0.999933333 +x_0=800000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Idaho West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.66666666666666],PARAMETER["central_meridian",-115.75],PARAMETER["scale_factor",0.999933333],PARAMETER["false_easting",800000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26970"],AXIS["X",EAST],AXIS["Y",NORTH]] 4[ 73epsgi[NAD83 / Illinois East+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333333333 +k=0.9999749999999999 +x_0=300000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Illinois East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-88.33333333333333],PARAMETER["scale_factor",0.999975],PARAMETER["false_easting",300000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26971"],AXIS["X",EAST],AXIS["Y",NORTH]] 0\ 7% epsgi\NAD83 / Illinois West+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666666667 +k=0.999941177 +x_0=700000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Illinois West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-90.16666666666667],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",700000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26972"],AXIS["X",EAST],AXIS["Y",NORTH]] ] 5{epsgi]NAD83 / Indiana East+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.999966667 +x_0=100000 +y_0=250000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Indiana East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",37.5],PARAMETER["central_meridian",-85.66666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",100000],PARAMETER["false_northing",250000],AUTHORITY["EPSG","26973"],AXIS["X",EAST],AXIS["Y",NORTH]] ^ 5{epsgi^NAD83 / Indiana West+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.999966667 +x_0=900000 +y_0=250000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Indiana West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",37.5],PARAMETER["central_meridian",-87.08333333333333],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",900000],PARAMETER["false_northing",250000],AUTHORITY["EPSG","26974"],AXIS["X",EAST],AXIS["Y",NORTH]] m_ 1Aqepsgi_NAD83 / Iowa North+proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666667 +lat_0=41.5 +lon_0=-93.5 +x_0=1500000 +y_0=1000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Iowa North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43.26666666666667],PARAMETER["standard_parallel_2",42.06666666666667],PARAMETER["latitude_of_origin",41.5],PARAMETER["central_meridian",-93.5],PARAMETER["false_easting",1500000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","26975"],AXIS["X",EAST],AXIS["Y",NORTH]] [` 1/_epsgi`NAD83 / Iowa South+proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666667 +lat_0=40 +lon_0=-93.5 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Iowa South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.78333333333333],PARAMETER["standard_parallel_2",40.61666666666667],PARAMETER["latitude_of_origin",40],PARAMETER["central_meridian",-93.5],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26976"],AXIS["X",EAST],AXIS["Y",NORTH]] ya 5I}epsgiaNAD83 / Kansas North+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=400000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Kansas North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.78333333333333],PARAMETER["standard_parallel_2",38.71666666666667],PARAMETER["latitude_of_origin",38.33333333333334],PARAMETER["central_meridian",-98],PARAMETER["false_easting",400000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26977"],AXIS["X",EAST],AXIS["Y",NORTH]] ttb 5W epsgibNAD83 / Kansas South+proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=400000 +y_0=400000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Kansas South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.56666666666667],PARAMETER["standard_parallel_2",37.26666666666667],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-98.5],PARAMETER["false_easting",400000],PARAMETER["false_northing",400000],AUTHORITY["EPSG","26978"],AXIS["X",EAST],AXIS["Y",NORTH]] xxc S5epsgicNAD83 / Kentucky North (deprecated)+proj=lcc +lat_1=37.96666666666667 +lat_2=37.96666666666667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Kentucky North (deprecated)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.96666666666667],PARAMETER["standard_parallel_2",37.96666666666667],PARAMETER["latitude_of_origin",37.5],PARAMETER["central_meridian",-84.25],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26979"],AXIS["X",EAST],AXIS["Y",NORTH]] nn d 9YepsgidNAD83 / Kentucky South+proj=lcc +lat_1=37.93333333333333 +lat_2=36.73333333333333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000 +y_0=500000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Kentucky South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.93333333333333],PARAMETER["standard_parallel_2",36.73333333333333],PARAMETER["latitude_of_origin",36.33333333333334],PARAMETER["central_meridian",-85.75],PARAMETER["false_easting",500000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","26980"],AXIS["X",EAST],AXIS["Y",NORTH]] ke ;5oepsgieNAD83 / Louisiana North+proj=lcc +lat_1=32.66666666666666 +lat_2=31.16666666666667 +lat_0=30.5 +lon_0=-92.5 +x_0=1000000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Louisiana North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",32.66666666666666],PARAMETER["standard_parallel_2",31.16666666666667],PARAMETER["latitude_of_origin",30.5],PARAMETER["central_meridian",-92.5],PARAMETER["false_easting",1000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26981"],AXIS["X",EAST],AXIS["Y",NORTH]] Qf ;UepsgifNAD83 / Louisiana South+proj=lcc +lat_1=30.7 +lat_2=29.3 +lat_0=28.5 +lon_0=-91.33333333333333 +x_0=1000000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Louisiana South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",30.7],PARAMETER["standard_parallel_2",29.3],PARAMETER["latitude_of_origin",28.5],PARAMETER["central_meridian",-91.33333333333333],PARAMETER["false_easting",1000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26982"],AXIS["X",EAST],AXIS["Y",NORTH]] g 1cepsgigNAD83 / Maine East+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9999 +x_0=300000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Maine East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",43.66666666666666],PARAMETER["central_meridian",-68.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",300000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26983"],AXIS["X",EAST],AXIS["Y",NORTH]] *h 1%epsgihNAD83 / Maine West+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Maine West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",42.83333333333334],PARAMETER["central_meridian",-70.16666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",900000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26984"],AXIS["X",EAST],AXIS["Y",NORTH]] ?i -CepsgiiNAD83 / Maryland+proj=lcc +lat_1=39.45 +lat_2=38.3 +lat_0=37.66666666666666 +lon_0=-77 +x_0=400000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Maryland",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.45],PARAMETER["standard_parallel_2",38.3],PARAMETER["latitude_of_origin",37.66666666666666],PARAMETER["central_meridian",-77],PARAMETER["false_easting",400000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26985"],AXIS["X",EAST],AXIS["Y",NORTH]] ~~}j I9epsgijNAD83 / Massachusetts Mainland+proj=lcc +lat_1=42.68333333333333 +lat_2=41.71666666666667 +lat_0=41 +lon_0=-71.5 +x_0=200000 +y_0=750000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Massachusetts Mainland",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",42.68333333333333],PARAMETER["standard_parallel_2",41.71666666666667],PARAMETER["latitude_of_origin",41],PARAMETER["central_meridian",-71.5],PARAMETER["false_easting",200000],PARAMETER["false_northing",750000],AUTHORITY["EPSG","26986"],AXIS["X",EAST],AXIS["Y",NORTH]] ok E/sepsgikNAD83 / Massachusetts Island+proj=lcc +lat_1=41.48333333333333 +lat_2=41.28333333333333 +lat_0=41 +lon_0=-70.5 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Massachusetts Island",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.48333333333333],PARAMETER["standard_parallel_2",41.28333333333333],PARAMETER["latitude_of_origin",41],PARAMETER["central_meridian",-70.5],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26987"],AXIS["X",EAST],AXIS["Y",NORTH]] ||l 9KepsgilNAD83 / Michigan North+proj=lcc +lat_1=47.08333333333334 +lat_2=45.48333333333333 +lat_0=44.78333333333333 +lon_0=-87 +x_0=8000000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Michigan North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.08333333333334],PARAMETER["standard_parallel_2",45.48333333333333],PARAMETER["latitude_of_origin",44.78333333333333],PARAMETER["central_meridian",-87],PARAMETER["false_easting",8000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26988"],AXIS["X",EAST],AXIS["Y",NORTH]] ttm =O epsgimNAD83 / Michigan Central+proj=lcc +lat_1=45.7 +lat_2=44.18333333333333 +lat_0=43.31666666666667 +lon_0=-84.36666666666666 +x_0=6000000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Michigan Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.7],PARAMETER["standard_parallel_2",44.18333333333333],PARAMETER["latitude_of_origin",43.31666666666667],PARAMETER["central_meridian",-84.36666666666666],PARAMETER["false_easting",6000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26989"],AXIS["X",EAST],AXIS["Y",NORTH]] in 95mepsginNAD83 / Michigan South+proj=lcc +lat_1=43.66666666666666 +lat_2=42.1 +lat_0=41.5 +lon_0=-84.36666666666666 +x_0=4000000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Michigan South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43.66666666666666],PARAMETER["standard_parallel_2",42.1],PARAMETER["latitude_of_origin",41.5],PARAMETER["central_meridian",-84.36666666666666],PARAMETER["false_easting",4000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26990"],AXIS["X",EAST],AXIS["Y",NORTH]] {{o ;WwepsgioNAD83 / Minnesota North+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000 +y_0=100000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Minnesota North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",48.63333333333333],PARAMETER["standard_parallel_2",47.03333333333333],PARAMETER["latitude_of_origin",46.5],PARAMETER["central_meridian",-93.1],PARAMETER["false_easting",800000],PARAMETER["false_northing",100000],AUTHORITY["EPSG","26991"],AXIS["X",EAST],AXIS["Y",NORTH]] ]p ?#aepsgipNAD83 / Minnesota Central+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=45 +lon_0=-94.25 +x_0=800000 +y_0=100000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Minnesota Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.05],PARAMETER["standard_parallel_2",45.61666666666667],PARAMETER["latitude_of_origin",45],PARAMETER["central_meridian",-94.25],PARAMETER["false_easting",800000],PARAMETER["false_northing",100000],AUTHORITY["EPSG","26992"],AXIS["X",EAST],AXIS["Y",NORTH]] kq ;5oepsgiqNAD83 / Minnesota South+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333333 +lat_0=43 +lon_0=-94 +x_0=800000 +y_0=100000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Minnesota South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.21666666666667],PARAMETER["standard_parallel_2",43.78333333333333],PARAMETER["latitude_of_origin",43],PARAMETER["central_meridian",-94],PARAMETER["false_easting",800000],PARAMETER["false_northing",100000],AUTHORITY["EPSG","26993"],AXIS["X",EAST],AXIS["Y",NORTH]] r =qepsgirNAD83 / Mississippi East+proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.99995 +x_0=300000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Mississippi East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",29.5],PARAMETER["central_meridian",-88.83333333333333],PARAMETER["scale_factor",0.99995],PARAMETER["false_easting",300000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26994"],AXIS["X",EAST],AXIS["Y",NORTH]] s =qepsgisNAD83 / Mississippi West+proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.99995 +x_0=700000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Mississippi West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",29.5],PARAMETER["central_meridian",-90.33333333333333],PARAMETER["scale_factor",0.99995],PARAMETER["false_easting",700000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26995"],AXIS["X",EAST],AXIS["Y",NORTH]] t 7 sepsgitNAD83 / Missouri East+proj=tmerc +lat_0=35.83333333333334 +lon_0=-90.5 +k=0.999933333 +x_0=250000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Missouri East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",35.83333333333334],PARAMETER["central_meridian",-90.5],PARAMETER["scale_factor",0.999933333],PARAMETER["false_easting",250000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26996"],AXIS["X",EAST],AXIS["Y",NORTH]] u = yepsgiuNAD83 / Missouri Central+proj=tmerc +lat_0=35.83333333333334 +lon_0=-92.5 +k=0.999933333 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Missouri Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",35.83333333333334],PARAMETER["central_meridian",-92.5],PARAMETER["scale_factor",0.999933333],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26997"],AXIS["X",EAST],AXIS["Y",NORTH]] v 7 sepsgivNAD83 / Missouri West+proj=tmerc +lat_0=36.16666666666666 +lon_0=-94.5 +k=0.999941177 +x_0=850000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Missouri West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36.16666666666666],PARAMETER["central_meridian",-94.5],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",850000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26998"],AXIS["X",EAST],AXIS["Y",NORTH]] 11JCqkepsgiNahrwan 1967 / UTM zone 37N+proj=utm +zone=37 +ellps=clrk80 +units=m +no_defsPROJCS["Nahrwan 1967 / UTM zone 37N",GEOGCS["Nahrwan 1967",DATUM["Nahrwan_1967",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6270"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4270"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","27037"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 11JCqkepsgiNahrwan 1967 / UTM zone 38N+proj=utm +zone=38 +ellps=clrk80 +units=m +no_defsPROJCS["Nahrwan 1967 / UTM zone 38N",GEOGCS["Nahrwan 1967",DATUM["Nahrwan_1967",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6270"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4270"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","27038"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 11JCqkepsgiNahrwan 1967 / UTM zone 39N+proj=utm +zone=39 +ellps=clrk80 +units=m +no_defsPROJCS["Nahrwan 1967 / UTM zone 39N",GEOGCS["Nahrwan 1967",DATUM["Nahrwan_1967",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6270"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4270"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","27039"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 11J CqkepsgiNahrwan 1967 / UTM zone 40N+proj=utm +zone=40 +ellps=clrk80 +units=m +no_defsPROJCS["Nahrwan 1967 / UTM zone 40N",GEOGCS["Nahrwan 1967",DATUM["Nahrwan_1967",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6270"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4270"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","27040"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 55FpEmeepsgiNaparima 1972 / UTM zone 20N+proj=utm +zone=20 +ellps=intl +units=m +no_defsPROJCS["Naparima 1972 / UTM zone 20N",GEOGCS["Naparima 1972",DATUM["Naparima_1972",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6271"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4271"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","27120"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] '@ GY7epsgj@NZGD49 / New Zealand Map Grid+proj=nzmg +lat_0=-41 +lon_0=173 +x_0=2510000 +y_0=6023150 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / New Zealand Map Grid",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["New_Zealand_Map_Grid"],PARAMETER["latitude_of_origin",-41],PARAMETER["central_meridian",173],PARAMETER["false_easting",2510000],PARAMETER["false_northing",6023150],AUTHORITY["EPSG","27200"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] wwE C%)epsgjENZGD49 / Mount Eden Circuit+proj=tmerc +lat_0=-36.87986527777778 +lon_0=174.7643393611111 +k=0.9999 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / Mount Eden Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-36.87986527777778],PARAMETER["central_meridian",174.7643393611111],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",300000],PARAMETER["false_northing",700000],AUTHORITY["EPSG","27205"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] vF IepsgjFNZGD49 / Bay of Plenty Circuit+proj=tmerc +lat_0=-37.76124980555556 +lon_0=176.46619725 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / Bay of Plenty Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-37.76124980555556],PARAMETER["central_meridian",176.46619725],PARAMETER["scale_factor",1],PARAMETER["false_easting",300000],PARAMETER["false_northing",700000],AUTHORITY["EPSG","27206"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] |G E!epsgjGNZGD49 / Poverty Bay Circuit+proj=tmerc +lat_0=-38.62470277777778 +lon_0=177.8856362777778 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / Poverty Bay Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-38.62470277777778],PARAMETER["central_meridian",177.8856362777778],PARAMETER["scale_factor",1],PARAMETER["false_easting",300000],PARAMETER["false_northing",700000],AUTHORITY["EPSG","27207"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] zH CepsgjHNZGD49 / Hawkes Bay Circuit+proj=tmerc +lat_0=-39.65092930555556 +lon_0=176.6736805277778 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / Hawkes Bay Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-39.65092930555556],PARAMETER["central_meridian",176.6736805277778],PARAMETER["scale_factor",1],PARAMETER["false_easting",300000],PARAMETER["false_northing",700000],AUTHORITY["EPSG","27208"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] lI ?epsgjINZGD49 / Taranaki Circuit+proj=tmerc +lat_0=-39.13575830555556 +lon_0=174.22801175 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / Taranaki Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-39.13575830555556],PARAMETER["central_meridian",174.22801175],PARAMETER["scale_factor",1],PARAMETER["false_easting",300000],PARAMETER["false_northing",700000],AUTHORITY["EPSG","27209"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] xJ AepsgjJNZGD49 / Tuhirangi Circuit+proj=tmerc +lat_0=-39.51247038888889 +lon_0=175.6400368055556 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / Tuhirangi Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-39.51247038888889],PARAMETER["central_meridian",175.6400368055556],PARAMETER["scale_factor",1],PARAMETER["false_easting",300000],PARAMETER["false_northing",700000],AUTHORITY["EPSG","27210"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] vK ?epsgjKNZGD49 / Wanganui Circuit+proj=tmerc +lat_0=-40.24194713888889 +lon_0=175.4880996111111 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / Wanganui Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-40.24194713888889],PARAMETER["central_meridian",175.4880996111111],PARAMETER["scale_factor",1],PARAMETER["false_easting",300000],PARAMETER["false_northing",700000],AUTHORITY["EPSG","27211"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] xL AepsgjLNZGD49 / Wairarapa Circuit+proj=tmerc +lat_0=-40.92553263888889 +lon_0=175.6473496666667 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / Wairarapa Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-40.92553263888889],PARAMETER["central_meridian",175.6473496666667],PARAMETER["scale_factor",1],PARAMETER["false_easting",300000],PARAMETER["false_northing",700000],AUTHORITY["EPSG","27212"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] zM CepsgjMNZGD49 / Wellington Circuit+proj=tmerc +lat_0=-41.30131963888888 +lon_0=174.7766231111111 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / Wellington Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-41.30131963888888],PARAMETER["central_meridian",174.7766231111111],PARAMETER["scale_factor",1],PARAMETER["false_easting",300000],PARAMETER["false_northing",700000],AUTHORITY["EPSG","27213"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] pN EepsgjNNZGD49 / Collingwood Circuit+proj=tmerc +lat_0=-40.71475905555556 +lon_0=172.6720465 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / Collingwood Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-40.71475905555556],PARAMETER["central_meridian",172.6720465],PARAMETER["scale_factor",1],PARAMETER["false_easting",300000],PARAMETER["false_northing",700000],AUTHORITY["EPSG","27214"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] rO ;epsgjONZGD49 / Nelson Circuit+proj=tmerc +lat_0=-41.27454472222222 +lon_0=173.2993168055555 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / Nelson Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-41.27454472222222],PARAMETER["central_meridian",173.2993168055555],PARAMETER["scale_factor",1],PARAMETER["false_easting",300000],PARAMETER["false_northing",700000],AUTHORITY["EPSG","27215"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] tP =epsgjPNZGD49 / Karamea Circuit+proj=tmerc +lat_0=-41.28991152777778 +lon_0=172.1090281944444 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / Karamea Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-41.28991152777778],PARAMETER["central_meridian",172.1090281944444],PARAMETER["scale_factor",1],PARAMETER["false_easting",300000],PARAMETER["false_northing",700000],AUTHORITY["EPSG","27216"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] rQ ;epsgjQNZGD49 / Buller Circuit+proj=tmerc +lat_0=-41.81080286111111 +lon_0=171.5812600555556 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / Buller Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-41.81080286111111],PARAMETER["central_meridian",171.5812600555556],PARAMETER["scale_factor",1],PARAMETER["false_easting",300000],PARAMETER["false_northing",700000],AUTHORITY["EPSG","27217"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] nR 7epsgjRNZGD49 / Grey Circuit+proj=tmerc +lat_0=-42.33369427777778 +lon_0=171.5497713055556 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / Grey Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-42.33369427777778],PARAMETER["central_meridian",171.5497713055556],PARAMETER["scale_factor",1],PARAMETER["false_easting",300000],PARAMETER["false_northing",700000],AUTHORITY["EPSG","27218"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] pS 9epsgjSNZGD49 / Amuri Circuit+proj=tmerc +lat_0=-42.68911658333333 +lon_0=173.0101333888889 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / Amuri Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-42.68911658333333],PARAMETER["central_meridian",173.0101333888889],PARAMETER["scale_factor",1],PARAMETER["false_easting",300000],PARAMETER["false_northing",700000],AUTHORITY["EPSG","27219"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] |T E!epsgjTNZGD49 / Marlborough Circuit+proj=tmerc +lat_0=-41.54448666666666 +lon_0=173.8020741111111 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / Marlborough Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-41.54448666666666],PARAMETER["central_meridian",173.8020741111111],PARAMETER["scale_factor",1],PARAMETER["false_easting",300000],PARAMETER["false_northing",700000],AUTHORITY["EPSG","27220"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] jU ?epsgjUNZGD49 / Hokitika Circuit+proj=tmerc +lat_0=-42.88632236111111 +lon_0=170.9799935 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / Hokitika Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-42.88632236111111],PARAMETER["central_meridian",170.9799935],PARAMETER["scale_factor",1],PARAMETER["false_easting",300000],PARAMETER["false_northing",700000],AUTHORITY["EPSG","27221"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] tV =epsgjVNZGD49 / Okarito Circuit+proj=tmerc +lat_0=-43.11012813888889 +lon_0=170.2609258333333 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / Okarito Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-43.11012813888889],PARAMETER["central_meridian",170.2609258333333],PARAMETER["scale_factor",1],PARAMETER["false_easting",300000],PARAMETER["false_northing",700000],AUTHORITY["EPSG","27222"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] pW G epsgjWNZGD49 / Jacksons Bay Circuit+proj=tmerc +lat_0=-43.97780288888889 +lon_0=168.606267 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / Jacksons Bay Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-43.97780288888889],PARAMETER["central_meridian",168.606267],PARAMETER["scale_factor",1],PARAMETER["false_easting",300000],PARAMETER["false_northing",700000],AUTHORITY["EPSG","27223"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] yyX K'epsgjXNZGD49 / Mount Pleasant Circuit+proj=tmerc +lat_0=-43.59063758333333 +lon_0=172.7271935833333 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / Mount Pleasant Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-43.59063758333333],PARAMETER["central_meridian",172.7271935833333],PARAMETER["scale_factor",1],PARAMETER["false_easting",300000],PARAMETER["false_northing",700000],AUTHORITY["EPSG","27224"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] rY ;epsgjYNZGD49 / Gawler Circuit+proj=tmerc +lat_0=-43.74871155555556 +lon_0=171.3607484722222 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / Gawler Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-43.74871155555556],PARAMETER["central_meridian",171.3607484722222],PARAMETER["scale_factor",1],PARAMETER["false_easting",300000],PARAMETER["false_northing",700000],AUTHORITY["EPSG","27225"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] rZ ;epsgjZNZGD49 / Timaru Circuit+proj=tmerc +lat_0=-44.40222036111111 +lon_0=171.0572508333333 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / Timaru Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-44.40222036111111],PARAMETER["central_meridian",171.0572508333333],PARAMETER["scale_factor",1],PARAMETER["false_easting",300000],PARAMETER["false_northing",700000],AUTHORITY["EPSG","27226"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ;(5BO\iv,9FS`mz #0=JWdq~ j@epsgj@ jEepsgjE jFepsgjF jGepsgjG jHepsgjH jIepsgjI jJepsgjJ jKepsgjK jLepsgjL jMepsgjM jNepsgjN jOepsgjO jPepsgjP jQepsgjQ jRepsgjR jSepsgjS jTepsgjT jUepsgjU jVepsgjV jWepsgjW jXepsgjX jYepsgjY jZepsgjZ j[epsgj[ j\epsgj\ j]epsgj] j^epsgj^ j_epsgj_ j`epsgj` jzepsgjz j{epsgj{ j|epsgj| jepsgj jepsgj jepsgj kepsgk kepsgk kepsgk kepsgk kepsgk kepsgk kepsgk k%epsgk% kdepsgkd keepsgke klepsgkl kepsgk kepsgk kepsgk kepsgk kepsgk kepsgk kepsgk kepsgk kepsgk kepsgk kepsgk kepsgk kepsgk |[ E!epsgj[NZGD49 / Lindis Peak Circuit+proj=tmerc +lat_0=-44.73526797222222 +lon_0=169.4677550833333 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / Lindis Peak Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-44.73526797222222],PARAMETER["central_meridian",169.4677550833333],PARAMETER["scale_factor",1],PARAMETER["false_easting",300000],PARAMETER["false_northing",700000],AUTHORITY["EPSG","27227"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] yy\ K'epsgj\NZGD49 / Mount Nicholas Circuit+proj=tmerc +lat_0=-45.13290258333333 +lon_0=168.3986411944444 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / Mount Nicholas Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-45.13290258333333],PARAMETER["central_meridian",168.3986411944444],PARAMETER["scale_factor",1],PARAMETER["false_easting",300000],PARAMETER["false_northing",700000],AUTHORITY["EPSG","27228"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] z] Cepsgj]NZGD49 / Mount York Circuit+proj=tmerc +lat_0=-45.56372616666666 +lon_0=167.7388617777778 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / Mount York Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-45.56372616666666],PARAMETER["central_meridian",167.7388617777778],PARAMETER["scale_factor",1],PARAMETER["false_easting",300000],PARAMETER["false_northing",700000],AUTHORITY["EPSG","27229"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ss^ Q-epsgj^NZGD49 / Observation Point Circuit+proj=tmerc +lat_0=-45.81619661111111 +lon_0=170.6285951666667 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / Observation Point Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-45.81619661111111],PARAMETER["central_meridian",170.6285951666667],PARAMETER["scale_factor",1],PARAMETER["false_easting",300000],PARAMETER["false_northing",700000],AUTHORITY["EPSG","27230"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] qq _ G'/epsgj_NZGD49 / North Taieri Circuit+proj=tmerc +lat_0=-45.86151336111111 +lon_0=170.2825891111111 +k=0.99996 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / North Taieri Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-45.86151336111111],PARAMETER["central_meridian",170.2825891111111],PARAMETER["scale_factor",0.99996],PARAMETER["false_easting",300000],PARAMETER["false_northing",700000],AUTHORITY["EPSG","27231"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] n` 9epsgj`NZGD49 / Bluff Circuit+proj=tmerc +lat_0=-46.60000961111111 +lon_0=168.342872 +k=1 +x_0=300002.66 +y_0=699999.58 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / Bluff Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-46.60000961111111],PARAMETER["central_meridian",168.342872],PARAMETER["scale_factor",1],PARAMETER["false_easting",300002.66],PARAMETER["false_northing",699999.58],AUTHORITY["EPSG","27232"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] z 7cepsgjzNZGD49 / UTM zone 58S+proj=utm +zone=58 +south +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / UTM zone 58S",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","27258"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] { 7cepsgj{NZGD49 / UTM zone 59S+proj=utm +zone=59 +south +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / UTM zone 59S",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",171],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","27259"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] | 7cepsgj|NZGD49 / UTM zone 60S+proj=utm +zone=60 +south +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / UTM zone 60S",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",177],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","27260"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] jj A91epsgjNZGD49 / North Island Grid+proj=tmerc +lat_0=-39 +lon_0=175.5 +k=1 +x_0=274319.5243848086 +y_0=365759.3658464114 +ellps=intl +datum=nzgd49 +to_meter=0.9143984146160287 +no_defsPROJCS["NZGD49 / North Island Grid",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["British yard (Sears 1922)",0.9143984146160287,AUTHORITY["EPSG","9040"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-39],PARAMETER["central_meridian",175.5],PARAMETER["scale_factor",1],PARAMETER["false_easting",300000],PARAMETER["false_northing",400000],AUTHORITY["EPSG","27291"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] jj A91epsgjNZGD49 / South Island Grid+proj=tmerc +lat_0=-44 +lon_0=171.5 +k=1 +x_0=457199.2073080143 +y_0=457199.2073080143 +ellps=intl +datum=nzgd49 +to_meter=0.9143984146160287 +no_defsPROJCS["NZGD49 / South Island Grid",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["British yard (Sears 1922)",0.9143984146160287,AUTHORITY["EPSG","9040"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-44],PARAMETER["central_meridian",171.5],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","27292"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] xx Ek_epsgjNGO 1948 (Oslo) / NGO zone I+proj=tmerc +lat_0=58 +lon_0=-4.666666666666667 +k=1 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defsPROJCS["NGO 1948 (Oslo) / NGO zone I",GEOGCS["NGO 1948 (Oslo)",DATUM["NGO_1948_Oslo",SPHEROID["Bessel Modified",6377492.018,299.1528128,AUTHORITY["EPSG","7005"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUTHORITY["EPSG","6817"]],PRIMEM["Oslo",10.72291666666667,AUTHORITY["EPSG","8913"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4817"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",58],PARAMETER["central_meridian",-4.666666666666667],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","27391"],AXIS["x",NORTH],AXIS["y",EAST]]bR SRY`gnu|$+29@GNU\cjqx  '.5<CJQX_fmt{ t u v    p @ E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` z { |           !% "d #e $l %) &* '+ (, )3 *4 +5 ,6 -= .> /? 0@ 1G 2H 3I 4J 54 6 8 9! :H ;< <= => >? ?@ @A AB BC CD DE EF Fr Gs Ht Iu Jv Lw Mx Ny Oz P{ Q| R} vv GkaepsgkNGO 1948 (Oslo) / NGO zone II+proj=tmerc +lat_0=58 +lon_0=-2.333333333333333 +k=1 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defsPROJCS["NGO 1948 (Oslo) / NGO zone II",GEOGCS["NGO 1948 (Oslo)",DATUM["NGO_1948_Oslo",SPHEROID["Bessel Modified",6377492.018,299.1528128,AUTHORITY["EPSG","7005"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUTHORITY["EPSG","6817"]],PRIMEM["Oslo",10.72291666666667,AUTHORITY["EPSG","8913"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4817"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",58],PARAMETER["central_meridian",-2.333333333333333],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","27392"],AXIS["x",NORTH],AXIS["y",EAST]] e IIAepsgkNGO 1948 (Oslo) / NGO zone III+proj=tmerc +lat_0=58 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defsPROJCS["NGO 1948 (Oslo) / NGO zone III",GEOGCS["NGO 1948 (Oslo)",DATUM["NGO_1948_Oslo",SPHEROID["Bessel Modified",6377492.018,299.1528128,AUTHORITY["EPSG","7005"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUTHORITY["EPSG","6817"]],PRIMEM["Oslo",10.72291666666667,AUTHORITY["EPSG","8913"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4817"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",58],PARAMETER["central_meridian",0],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","27393"],AXIS["x",NORTH],AXIS["y",EAST]] g GMCepsgkNGO 1948 (Oslo) / NGO zone IV+proj=tmerc +lat_0=58 +lon_0=2.5 +k=1 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defsPROJCS["NGO 1948 (Oslo) / NGO zone IV",GEOGCS["NGO 1948 (Oslo)",DATUM["NGO_1948_Oslo",SPHEROID["Bessel Modified",6377492.018,299.1528128,AUTHORITY["EPSG","7005"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUTHORITY["EPSG","6817"]],PRIMEM["Oslo",10.72291666666667,AUTHORITY["EPSG","8913"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4817"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",58],PARAMETER["central_meridian",2.5],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","27394"],AXIS["x",NORTH],AXIS["y",EAST]] zz Ei]epsgkNGO 1948 (Oslo) / NGO zone V+proj=tmerc +lat_0=58 +lon_0=6.166666666666667 +k=1 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defsPROJCS["NGO 1948 (Oslo) / NGO zone V",GEOGCS["NGO 1948 (Oslo)",DATUM["NGO_1948_Oslo",SPHEROID["Bessel Modified",6377492.018,299.1528128,AUTHORITY["EPSG","7005"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUTHORITY["EPSG","6817"]],PRIMEM["Oslo",10.72291666666667,AUTHORITY["EPSG","8913"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4817"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",58],PARAMETER["central_meridian",6.166666666666667],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","27395"],AXIS["x",NORTH],AXIS["y",EAST]] xx Gi_epsgkNGO 1948 (Oslo) / NGO zone VI+proj=tmerc +lat_0=58 +lon_0=10.16666666666667 +k=1 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defsPROJCS["NGO 1948 (Oslo) / NGO zone VI",GEOGCS["NGO 1948 (Oslo)",DATUM["NGO_1948_Oslo",SPHEROID["Bessel Modified",6377492.018,299.1528128,AUTHORITY["EPSG","7005"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUTHORITY["EPSG","6817"]],PRIMEM["Oslo",10.72291666666667,AUTHORITY["EPSG","8913"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4817"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",58],PARAMETER["central_meridian",10.16666666666667],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","27396"],AXIS["x",NORTH],AXIS["y",EAST]] vv IiaepsgkNGO 1948 (Oslo) / NGO zone VII+proj=tmerc +lat_0=58 +lon_0=14.16666666666667 +k=1 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defsPROJCS["NGO 1948 (Oslo) / NGO zone VII",GEOGCS["NGO 1948 (Oslo)",DATUM["NGO_1948_Oslo",SPHEROID["Bessel Modified",6377492.018,299.1528128,AUTHORITY["EPSG","7005"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUTHORITY["EPSG","6817"]],PRIMEM["Oslo",10.72291666666667,AUTHORITY["EPSG","8913"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4817"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",58],PARAMETER["central_meridian",14.16666666666667],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","27397"],AXIS["x",NORTH],AXIS["y",EAST]] tt KicepsgkNGO 1948 (Oslo) / NGO zone VIII+proj=tmerc +lat_0=58 +lon_0=18.33333333333333 +k=1 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defsPROJCS["NGO 1948 (Oslo) / NGO zone VIII",GEOGCS["NGO 1948 (Oslo)",DATUM["NGO_1948_Oslo",SPHEROID["Bessel Modified",6377492.018,299.1528128,AUTHORITY["EPSG","7005"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUTHORITY["EPSG","6817"]],PRIMEM["Oslo",10.72291666666667,AUTHORITY["EPSG","8913"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4817"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",58],PARAMETER["central_meridian",18.33333333333333],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","27398"],AXIS["x",NORTH],AXIS["y",EAST]] JJ1%;mEepsgk%Datum 73 / UTM zone 29N+proj=utm +zone=29 +ellps=intl +units=m +no_defsPROJCS["Datum 73 / UTM zone 29N",GEOGCS["Datum 73",DATUM["Datum_73",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6274"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4274"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","27429"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Nd mepsgkdDatum 73 / Modified Portuguese Grid (deprecated)+proj=tmerc +lat_0=39.66666666666666 +lon_0=-8.131906111111112 +k=1 +x_0=180.598 +y_0=-86.98999999999999 +ellps=intl +units=m +no_defsPROJCS["Datum 73 / Modified Portuguese Grid (deprecated)",GEOGCS["Datum 73",DATUM["Datum_73",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6274"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4274"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",39.66666666666666],PARAMETER["central_meridian",-8.131906111111112],PARAMETER["scale_factor",1],PARAMETER["false_easting",180.598],PARAMETER["false_northing",-86.99],AUTHORITY["EPSG","27492"],AXIS["X",NORTH],AXIS["Y",EAST]] 4e SepsgkeDatum 73 / Modified Portuguese Grid+proj=tmerc +lat_0=39.66666666666666 +lon_0=-8.131906111111112 +k=1 +x_0=180.598 +y_0=-86.98999999999999 +ellps=intl +units=m +no_defsPROJCS["Datum 73 / Modified Portuguese Grid",GEOGCS["Datum 73",DATUM["Datum_73",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6274"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4274"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",39.66666666666666],PARAMETER["central_meridian",-8.131906111111112],PARAMETER["scale_factor",1],PARAMETER["false_easting",180.598],PARAMETER["false_northing",-86.99],AUTHORITY["EPSG","27493"],AXIS["X",EAST],AXIS["Y",NORTH]] cl Asepsgklunnamed+proj=lcc +lat_1=49.5 +lat_0=49.5 +lon_0=5.4 +k_0=0.99950908 +x_0=500000 +y_0=300000 +a=6376523 +b=6355862.933255573 +pm=2.3372291666985 +units=m +no_defsPROJCS["unnamed",GEOGCS["unnamed ellipse",DATUM["unknown",SPHEROID["unnamed",6376523,308.6399999999991]],PRIMEM["unnamed",2.3372291666985],UNIT["degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",49.5],PARAMETER["central_meridian",5.4],PARAMETER["scale_factor",0.99950908],PARAMETER["false_easting",500000],PARAMETER["false_northing",300000],UNIT["Meter",1],AUTHORITY["EPSG","27500"]] PP+) O epsgkNTF (Paris) / Lambert Nord France+proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000001 +lon_0=0 +k_0=0.999877341 +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defsPROJCS["NTF (Paris) / Lambert Nord France",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4807"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",55],PARAMETER["central_meridian",0],PARAMETER["scale_factor",0.999877341],PARAMETER["false_easting",600000],PARAMETER["false_northing",200000],AUTHORITY["EPSG","27561"],AXIS["X",EAST],AXIS["Y",NORTH]] hh* SUepsgkNTF (Paris) / Lambert Centre France+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.99987742 +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defsPROJCS["NTF (Paris) / Lambert Centre France",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4807"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",52],PARAMETER["central_meridian",0],PARAMETER["scale_factor",0.99987742],PARAMETER["false_easting",600000],PARAMETER["false_northing",200000],AUTHORITY["EPSG","27562"],AXIS["X",EAST],AXIS["Y",NORTH]] RR)+ M epsgkNTF (Paris) / Lambert Sud France+proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000001 +lon_0=0 +k_0=0.999877499 +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defsPROJCS["NTF (Paris) / Lambert Sud France",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4807"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",49],PARAMETER["central_meridian",0],PARAMETER["scale_factor",0.999877499],PARAMETER["false_easting",600000],PARAMETER["false_northing",200000],AUTHORITY["EPSG","27563"],AXIS["X",EAST],AXIS["Y",NORTH]] QQ*, CepsgkNTF (Paris) / Lambert Corse+proj=lcc +lat_1=42.16500000000001 +lat_0=42.16500000000001 +lon_0=0 +k_0=0.99994471 +x_0=234.358 +y_0=185861.369 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defsPROJCS["NTF (Paris) / Lambert Corse",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4807"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",46.85],PARAMETER["central_meridian",0],PARAMETER["scale_factor",0.99994471],PARAMETER["false_easting",234.358],PARAMETER["false_northing",185861.369],AUTHORITY["EPSG","27564"],AXIS["X",EAST],AXIS["Y",NORTH]] XX#3 E }epsgkNTF (Paris) / Lambert zone I+proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000001 +lon_0=0 +k_0=0.999877341 +x_0=600000 +y_0=1200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defsPROJCS["NTF (Paris) / Lambert zone I",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4807"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",55],PARAMETER["central_meridian",0],PARAMETER["scale_factor",0.999877341],PARAMETER["false_easting",600000],PARAMETER["false_northing",1200000],AUTHORITY["EPSG","27571"],AXIS["X",EAST],AXIS["Y",NORTH]] rr 4 GW}epsgkNTF (Paris) / Lambert zone II+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.99987742 +x_0=600000 +y_0=2200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defsPROJCS["NTF (Paris) / Lambert zone II",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4807"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",52],PARAMETER["central_meridian",0],PARAMETER["scale_factor",0.99987742],PARAMETER["false_easting",600000],PARAMETER["false_northing",2200000],AUTHORITY["EPSG","27572"],AXIS["X",EAST],AXIS["Y",NORTH]] TT'5 I epsgkNTF (Paris) / Lambert zone III+proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000001 +lon_0=0 +k_0=0.999877499 +x_0=600000 +y_0=3200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defsPROJCS["NTF (Paris) / Lambert zone III",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4807"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",49],PARAMETER["central_meridian",0],PARAMETER["scale_factor",0.999877499],PARAMETER["false_easting",600000],PARAMETER["false_northing",3200000],AUTHORITY["EPSG","27573"],AXIS["X",EAST],AXIS["Y",NORTH]] KK06 G epsgkNTF (Paris) / Lambert zone IV+proj=lcc +lat_1=42.16500000000001 +lat_0=42.16500000000001 +lon_0=0 +k_0=0.99994471 +x_0=234.358 +y_0=4185861.369 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defsPROJCS["NTF (Paris) / Lambert zone IV",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4807"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",46.85],PARAMETER["central_meridian",0],PARAMETER["scale_factor",0.99994471],PARAMETER["false_easting",234.358],PARAMETER["false_northing",4185861.369],AUTHORITY["EPSG","27574"],AXIS["X",EAST],AXIS["Y",NORTH]] JJ1= S epsgkNTF (Paris) / France I (deprecated)+proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000001 +lon_0=0 +k_0=0.999877341 +x_0=600000 +y_0=1200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defsPROJCS["NTF (Paris) / France I (deprecated)",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4807"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",55],PARAMETER["central_meridian",0],PARAMETER["scale_factor",0.999877341],PARAMETER["false_easting",600000],PARAMETER["false_northing",1200000],AUTHORITY["EPSG","27581"],AXIS["X",EAST],AXIS["Y",NORTH]] dd> UW epsgkNTF (Paris) / France II (deprecated)+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.99987742 +x_0=600000 +y_0=2200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defsPROJCS["NTF (Paris) / France II (deprecated)",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4807"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",52],PARAMETER["central_meridian",0],PARAMETER["scale_factor",0.99987742],PARAMETER["false_easting",600000],PARAMETER["false_northing",2200000],AUTHORITY["EPSG","27582"],AXIS["X",EAST],AXIS["Y",NORTH]] FF5? W epsgkNTF (Paris) / France III (deprecated)+proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000001 +lon_0=0 +k_0=0.999877499 +x_0=600000 +y_0=3200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defsPROJCS["NTF (Paris) / France III (deprecated)",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4807"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",49],PARAMETER["central_meridian",0],PARAMETER["scale_factor",0.999877499],PARAMETER["false_easting",600000],PARAMETER["false_northing",3200000],AUTHORITY["EPSG","27583"],AXIS["X",EAST],AXIS["Y",NORTH]] ==>@ UepsgkNTF (Paris) / France IV (deprecated)+proj=lcc +lat_1=42.16500000000001 +lat_0=42.16500000000001 +lon_0=0 +k_0=0.99994471 +x_0=234.358 +y_0=4185861.369 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defsPROJCS["NTF (Paris) / France IV (deprecated)",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4807"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",46.85],PARAMETER["central_meridian",0],PARAMETER["scale_factor",0.99994471],PARAMETER["false_easting",234.358],PARAMETER["false_northing",4185861.369],AUTHORITY["EPSG","27584"],AXIS["X",EAST],AXIS["Y",NORTH]] FF5G Y epsgkNTF (Paris) / Nord France (deprecated)+proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000001 +lon_0=0 +k_0=0.999877341 +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defsPROJCS["NTF (Paris) / Nord France (deprecated)",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4807"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",55],PARAMETER["central_meridian",0],PARAMETER["scale_factor",0.999877341],PARAMETER["false_easting",600000],PARAMETER["false_northing",200000],AUTHORITY["EPSG","27591"],AXIS["X",EAST],AXIS["Y",NORTH]] ^^H ]UepsgkNTF (Paris) / Centre France (deprecated)+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.99987742 +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defsPROJCS["NTF (Paris) / Centre France (deprecated)",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4807"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",52],PARAMETER["central_meridian",0],PARAMETER["scale_factor",0.99987742],PARAMETER["false_easting",600000],PARAMETER["false_northing",200000],AUTHORITY["EPSG","27592"],AXIS["X",EAST],AXIS["Y",NORTH]] HH3I W epsgkNTF (Paris) / Sud France (deprecated)+proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000001 +lon_0=0 +k_0=0.999877499 +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defsPROJCS["NTF (Paris) / Sud France (deprecated)",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4807"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",49],PARAMETER["central_meridian",0],PARAMETER["scale_factor",0.999877499],PARAMETER["false_easting",600000],PARAMETER["false_northing",200000],AUTHORITY["EPSG","27593"],AXIS["X",EAST],AXIS["Y",NORTH]] GG4J MepsgkNTF (Paris) / Corse (deprecated)+proj=lcc +lat_1=42.16500000000001 +lat_0=42.16500000000001 +lon_0=0 +k_0=0.99994471 +x_0=234.358 +y_0=185861.369 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defsPROJCS["NTF (Paris) / Corse (deprecated)",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4807"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",46.85],PARAMETER["central_meridian",0],PARAMETER["scale_factor",0.99994471],PARAMETER["false_easting",234.358],PARAMETER["false_northing",185861.369],AUTHORITY["EPSG","27594"],AXIS["X",EAST],AXIS["Y",NORTH]] 4 Ou}epsgl4OSGB 1936 / British National Grid+proj=tmerc +lat_0=49 +lon_0=-2 +k=0.9996012717 +x_0=400000 +y_0=-100000 +ellps=airy +datum=OSGB36 +units=m +no_defsPROJCS["OSGB 1936 / British National Grid",GEOGCS["OSGB 1936",DATUM["OSGB_1936",SPHEROID["Airy 1830",6377563.396,299.3249646,AUTHORITY["EPSG","7001"]],AUTHORITY["EPSG","6277"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4277"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",49],PARAMETER["central_meridian",-2],PARAMETER["scale_factor",0.9996012717],PARAMETER["false_easting",400000],PARAMETER["false_northing",-100000],AUTHORITY["EPSG","27700"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] DD7 KepsgnPalestine 1923 / Palestine Grid+proj=cass +lat_0=31.73409694444445 +lon_0=35.21208055555556 +x_0=170251.555 +y_0=126867.909 +a=6378300.789 +b=6356566.435 +towgs84=-275.722,94.7824,340.894,-8.001,-4.42,-11.821,1 +units=m +no_defsPROJCS["Palestine 1923 / Palestine Grid",GEOGCS["Palestine 1923",DATUM["Palestine_1923",SPHEROID["Clarke 1880 (Benoit)",6378300.789,293.4663155389802,AUTHORITY["EPSG","7010"]],TOWGS84[-275.722,94.7824,340.894,-8.001,-4.42,-11.821,1],AUTHORITY["EPSG","6281"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4281"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Cassini_Soldner"],PARAMETER["latitude_of_origin",31.73409694444445],PARAMETER["central_meridian",35.21208055555556],PARAMETER["false_easting",170251.555],PARAMETER["false_northing",126867.909],AUTHORITY["EPSG","28191"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]5556 +k=1 +x_0=170251.555 +y_0=1126867.909 +a=6378300.789 +b=6356566.435 +towgs84=-275.722,94.7824,340.894,-8.001,-4.42,-11.821,1 +units=m +no_defsPROJCS["Palestine 1923 / Palestine Belt",GEOGCS["Palestine 1923",DATUM["Palestine_1923",SPHEROID["Clarke 1880 (Benoit)",6378300.789,293.4663155389802,AUTHORITY["EPSG","7010"]],TOWGS84[-275.722,94.7824,340.894,-8.001,-4.42,-11.821,1],AUTHORITY["EPSG","6281"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4281"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31.73409694444445],PARAMETER["central_meridian",35.21208055555556],PARAMETER["scale_factor",1],PARAMETER["false_easting",170251.555],PARAMETER["false_northing",1126867.909],AUTHORITY["EPSG","28192"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] _ K%Wepsgn Palestine 1923 / Palestine Belt+proj=tmerc +lat_0=31.73409694444445 +lon_0=35.2120805555 7 @@;! Mepsgn!Palestine 1923 / Israeli CS Grid+proj=cass +lat_0=31.73409694444445 +lon_0=35.21208055555556 +x_0=170251.555 +y_0=1126867.909 +a=6378300.789 +b=6356566.435 +towgs84=-275.722,94.7824,340.894,-8.001,-4.42,-11.821,1 +units=m +no_defsPROJCS["Palestine 1923 / Israeli CS Grid",GEOGCS["Palestine 1923",DATUM["Palestine_1923",SPHEROID["Clarke 1880 (Benoit)",6378300.789,293.4663155389802,AUTHORITY["EPSG","7010"]],TOWGS84[-275.722,94.7824,340.894,-8.001,-4.42,-11.821,1],AUTHORITY["EPSG","6281"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4281"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Cassini_Soldner"],PARAMETER["latitude_of_origin",31.73409694444445],PARAMETER["central_meridian",35.21208055555556],PARAMETER["false_easting",170251.555],PARAMETER["false_northing",1126867.909],AUTHORITY["EPSG","28193"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] uH CepsgnHPointe Noire / UTM zone 32S+proj=utm +zone=32 +south +a=6378249.2 +b=6356515 +units=m +no_defsPROJCS["Pointe Noire / UTM zone 32S",GEOGCS["Pointe Noire",DATUM["Congo_1960_Pointe_Noire",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],AUTHORITY["EPSG","6282"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4282"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","28232"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] < 3+)epsgnGDA94 / MGA zone 48+proj=utm +zone=48 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GDA94 / MGA zone 48",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","28348"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] = 3+)epsgnGDA94 / MGA zone 49+proj=utm +zone=49 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GDA94 / MGA zone 49",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","28349"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] > 3+)epsgnGDA94 / MGA zone 50+proj=utm +zone=50 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GDA94 / MGA zone 50",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","28350"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ? 3+)epsgnGDA94 / MGA zone 51+proj=utm +zone=51 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GDA94 / MGA zone 51",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","28351"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] @ 3+)epsgnGDA94 / MGA zone 52+proj=utm +zone=52 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GDA94 / MGA zone 52",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","28352"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] A 3+)epsgnGDA94 / MGA zone 53+proj=utm +zone=53 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GDA94 / MGA zone 53",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","28353"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] B 3+)epsgnGDA94 / MGA zone 54+proj=utm +zone=54 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GDA94 / MGA zone 54",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",141],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","28354"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] C 3+)epsgnGDA94 / MGA zone 55+proj=utm +zone=55 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GDA94 / MGA zone 55",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",147],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","28355"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] D 3+)epsgnGDA94 / MGA zone 56+proj=utm +zone=56 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GDA94 / MGA zone 56",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",153],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","28356"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] E 3+)epsgnGDA94 / MGA zone 57+proj=utm +zone=57 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GDA94 / MGA zone 57",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",159],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","28357"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] F 3+)epsgnGDA94 / MGA zone 58+proj=utm +zone=58 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GDA94 / MGA zone 58",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","28358"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] *r k7;epsgnPulkovo 1942 / Gauss-Kruger zone 2 (deprecated)+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=2500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 2 (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",1],PARAMETER["false_easting",2500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28402"],AXIS["X",NORTH],AXIS["Y",EAST]] ,s k9=epsgnPulkovo 1942 / Gauss-Kruger zone 3 (deprecated)+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=3500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 3 (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",1],PARAMETER["false_easting",3500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28403"],AXIS["X",NORTH],AXIS["Y",EAST]] t Q9#epsgnPulkovo 1942 / Gauss-Kruger zone 4+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=4500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 4",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",1],PARAMETER["false_easting",4500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28404"],AXIS["X",NORTH],AXIS["Y",EAST]] u Q9#epsgnPulkovo 1942 / Gauss-Kruger zone 5+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=5500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 5",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",1],PARAMETER["false_easting",5500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28405"],AXIS["X",NORTH],AXIS["Y",EAST]] v Q9#epsgnPulkovo 1942 / Gauss-Kruger zone 6+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=6500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 6",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",1],PARAMETER["false_easting",6500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28406"],AXIS["X",NORTH],AXIS["Y",EAST]] ;(5BO\iv,9FS`mz #0=JWdq~ kepsgk kepsgk l4epsgl4 nepsgn n epsgn n!epsgn! nHepsgnH nepsgn nepsgn nepsgn nepsgn nepsgn nepsgn nepsgn nepsgn nepsgn nepsgn nepsgn nepsgn nepsgn nepsgn nepsgn nepsgn nepsgn nepsgn nepsgn nepsgn nepsgn nepsgn nepsgn nepsgn nepsgn oepsgo oepsgo oepsgo oepsgo oepsgo oepsgo oepsgo oepsgo oepsgo o epsgo o epsgo o epsgo o epsgo o epsgo oepsgo oepsgo oepsgo o.epsgo. o/epsgo/ o0epsgo0 o1epsgo1 o2epsgo2 o3epsgo3 o4epsgo4 o5epsgo5 o6epsgo6 o7epsgo7 w Q9#epsgnPulkovo 1942 / Gauss-Kruger zone 7+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=7500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 7",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",1],PARAMETER["false_easting",7500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28407"],AXIS["X",NORTH],AXIS["Y",EAST]] x Q9#epsgnPulkovo 1942 / Gauss-Kruger zone 8+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=8500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 8",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",1],PARAMETER["false_easting",8500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28408"],AXIS["X",NORTH],AXIS["Y",EAST]] y Q9#epsgnPulkovo 1942 / Gauss-Kruger zone 9+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=9500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 9",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",1],PARAMETER["false_easting",9500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28409"],AXIS["X",NORTH],AXIS["Y",EAST]] z S;'epsgnPulkovo 1942 / Gauss-Kruger zone 10+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=10500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 10",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",57],PARAMETER["scale_factor",1],PARAMETER["false_easting",10500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28410"],AXIS["X",NORTH],AXIS["Y",EAST]] { S;'epsgnPulkovo 1942 / Gauss-Kruger zone 11+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=11500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 11",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",63],PARAMETER["scale_factor",1],PARAMETER["false_easting",11500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28411"],AXIS["X",NORTH],AXIS["Y",EAST]] | S;'epsgnPulkovo 1942 / Gauss-Kruger zone 12+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=12500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 12",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",69],PARAMETER["scale_factor",1],PARAMETER["false_easting",12500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28412"],AXIS["X",NORTH],AXIS["Y",EAST]] } S;'epsgnPulkovo 1942 / Gauss-Kruger zone 13+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=13500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 13",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",1],PARAMETER["false_easting",13500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28413"],AXIS["X",NORTH],AXIS["Y",EAST]] ~ S;'epsgnPulkovo 1942 / Gauss-Kruger zone 14+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=14500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 14",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",1],PARAMETER["false_easting",14500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28414"],AXIS["X",NORTH],AXIS["Y",EAST]]  S;'epsgnPulkovo 1942 / Gauss-Kruger zone 15+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=15500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 15",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",1],PARAMETER["false_easting",15500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28415"],AXIS["X",NORTH],AXIS["Y",EAST]]  S;'epsgoPulkovo 1942 / Gauss-Kruger zone 16+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=16500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 16",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",1],PARAMETER["false_easting",16500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28416"],AXIS["X",NORTH],AXIS["Y",EAST]]  S;'epsgoPulkovo 1942 / Gauss-Kruger zone 17+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=17500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 17",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",1],PARAMETER["false_easting",17500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28417"],AXIS["X",NORTH],AXIS["Y",EAST]]  S=)epsgoPulkovo 1942 / Gauss-Kruger zone 18+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=18500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 18",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",1],PARAMETER["false_easting",18500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28418"],AXIS["X",NORTH],AXIS["Y",EAST]]  S=)epsgoPulkovo 1942 / Gauss-Kruger zone 19+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=19500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 19",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",1],PARAMETER["false_easting",19500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28419"],AXIS["X",NORTH],AXIS["Y",EAST]]  S=)epsgoPulkovo 1942 / Gauss-Kruger zone 20+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=20500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 20",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",1],PARAMETER["false_easting",20500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28420"],AXIS["X",NORTH],AXIS["Y",EAST]]  S=)epsgoPulkovo 1942 / Gauss-Kruger zone 21+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=21500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 21",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",1],PARAMETER["false_easting",21500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28421"],AXIS["X",NORTH],AXIS["Y",EAST]]  S=)epsgoPulkovo 1942 / Gauss-Kruger zone 22+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=22500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 22",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",1],PARAMETER["false_easting",22500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28422"],AXIS["X",NORTH],AXIS["Y",EAST]]  S=)epsgoPulkovo 1942 / Gauss-Kruger zone 23+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=23500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 23",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",1],PARAMETER["false_easting",23500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28423"],AXIS["X",NORTH],AXIS["Y",EAST]]  S=)epsgoPulkovo 1942 / Gauss-Kruger zone 24+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=24500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 24",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",141],PARAMETER["scale_factor",1],PARAMETER["false_easting",24500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28424"],AXIS["X",NORTH],AXIS["Y",EAST]]  S=)epsgo Pulkovo 1942 / Gauss-Kruger zone 25+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=25500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 25",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",147],PARAMETER["scale_factor",1],PARAMETER["false_easting",25500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28425"],AXIS["X",NORTH],AXIS["Y",EAST]]  S=)epsgo Pulkovo 1942 / Gauss-Kruger zone 26+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=26500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 26",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",153],PARAMETER["scale_factor",1],PARAMETER["false_easting",26500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28426"],AXIS["X",NORTH],AXIS["Y",EAST]]  S=)epsgo Pulkovo 1942 / Gauss-Kruger zone 27+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=27500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 27",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",159],PARAMETER["scale_factor",1],PARAMETER["false_easting",27500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28427"],AXIS["X",NORTH],AXIS["Y",EAST]]  S=)epsgo Pulkovo 1942 / Gauss-Kruger zone 28+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=28500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 28",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",1],PARAMETER["false_easting",28500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28428"],AXIS["X",NORTH],AXIS["Y",EAST]]  S=)epsgo Pulkovo 1942 / Gauss-Kruger zone 29+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=29500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 29",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",171],PARAMETER["scale_factor",1],PARAMETER["false_easting",29500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28429"],AXIS["X",NORTH],AXIS["Y",EAST]]  S=)epsgoPulkovo 1942 / Gauss-Kruger zone 30+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=30500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 30",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",177],PARAMETER["scale_factor",1],PARAMETER["false_easting",30500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28430"],AXIS["X",NORTH],AXIS["Y",EAST]]  S?+epsgoPulkovo 1942 / Gauss-Kruger zone 31+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=31500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 31",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-177],PARAMETER["scale_factor",1],PARAMETER["false_easting",31500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28431"],AXIS["X",NORTH],AXIS["Y",EAST]]  S?+epsgoPulkovo 1942 / Gauss-Kruger zone 32+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=32500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 32",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-171],PARAMETER["scale_factor",1],PARAMETER["false_easting",32500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28432"],AXIS["X",NORTH],AXIS["Y",EAST]]  . c51epsgo.Pulkovo 1942 / Gauss-Kruger 2N (deprecated)+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 2N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28462"],AXIS["X",NORTH],AXIS["Y",EAST]] "/ c73epsgo/Pulkovo 1942 / Gauss-Kruger 3N (deprecated)+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 3N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28463"],AXIS["X",NORTH],AXIS["Y",EAST]] "0 c73epsgo0Pulkovo 1942 / Gauss-Kruger 4N (deprecated)+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 4N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28464"],AXIS["X",NORTH],AXIS["Y",EAST]] "1 c73epsgo1Pulkovo 1942 / Gauss-Kruger 5N (deprecated)+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 5N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28465"],AXIS["X",NORTH],AXIS["Y",EAST]] "2 c73epsgo2Pulkovo 1942 / Gauss-Kruger 6N (deprecated)+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 6N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28466"],AXIS["X",NORTH],AXIS["Y",EAST]] "3 c73epsgo3Pulkovo 1942 / Gauss-Kruger 7N (deprecated)+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 7N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28467"],AXIS["X",NORTH],AXIS["Y",EAST]] "4 c73epsgo4Pulkovo 1942 / Gauss-Kruger 8N (deprecated)+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 8N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28468"],AXIS["X",NORTH],AXIS["Y",EAST]] "5 c73epsgo5Pulkovo 1942 / Gauss-Kruger 9N (deprecated)+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 9N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28469"],AXIS["X",NORTH],AXIS["Y",EAST]] $6 e75epsgo6Pulkovo 1942 / Gauss-Kruger 10N (deprecated)+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 10N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",57],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28470"],AXIS["X",NORTH],AXIS["Y",EAST]] $7 e75epsgo7Pulkovo 1942 / Gauss-Kruger 11N (deprecated)+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 11N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",63],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28471"],AXIS["X",NORTH],AXIS["Y",EAST]] $8 e75epsgo8Pulkovo 1942 / Gauss-Kruger 12N (deprecated)+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 12N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",69],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28472"],AXIS["X",NORTH],AXIS["Y",EAST]] $9 e75epsgo9Pulkovo 1942 / Gauss-Kruger 13N (deprecated)+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 13N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28473"],AXIS["X",NORTH],AXIS["Y",EAST]] $: e75epsgo:Pulkovo 1942 / Gauss-Kruger 14N (deprecated)+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 14N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28474"],AXIS["X",NORTH],AXIS["Y",EAST]] $; e75epsgo;Pulkovo 1942 / Gauss-Kruger 15N (deprecated)+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 15N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28475"],AXIS["X",NORTH],AXIS["Y",EAST]] $< e75epsgo e97epsgo>Pulkovo 1942 / Gauss-Kruger 18N (deprecated)+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 18N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28478"],AXIS["X",NORTH],AXIS["Y",EAST]] &? e97epsgo?Pulkovo 1942 / Gauss-Kruger 19N (deprecated)+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 19N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28479"],AXIS["X",NORTH],AXIS["Y",EAST]] &@ e97epsgo@Pulkovo 1942 / Gauss-Kruger 20N (deprecated)+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 20N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28480"],AXIS["X",NORTH],AXIS["Y",EAST]] &A e97epsgoAPulkovo 1942 / Gauss-Kruger 21N (deprecated)+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 21N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28481"],AXIS["X",NORTH],AXIS["Y",EAST]] &B e97epsgoBPulkovo 1942 / Gauss-Kruger 22N (deprecated)+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 22N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28482"],AXIS["X",NORTH],AXIS["Y",EAST]] &C e97epsgoCPulkovo 1942 / Gauss-Kruger 23N (deprecated)+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 23N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28483"],AXIS["X",NORTH],AXIS["Y",EAST]] &D e97epsgoDPulkovo 1942 / Gauss-Kruger 24N (deprecated)+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 24N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",141],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28484"],AXIS["X",NORTH],AXIS["Y",EAST]] &E e97epsgoEPulkovo 1942 / Gauss-Kruger 25N (deprecated)+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 25N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",147],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28485"],AXIS["X",NORTH],AXIS["Y",EAST]] &F e97epsgoFPulkovo 1942 / Gauss-Kruger 26N (deprecated)+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 26N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",153],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28486"],AXIS["X",NORTH],AXIS["Y",EAST]]bR RY`gnu|$+29@GNU\cjqx  '.5<CJQX_fmt{ T U V W X Y Z [ \ ] ^ _ ` a b c d e f. g/ h0 i1 j2 k3 l4 m5 n6 o7 p8 q9 r: s; t< u= v> w? x@ yA zB {C |D }E ~F G H I J K L 8 ? @ , - > ? @ A B p q r s t y z { | } ~         $ %  C D   * +  0 1 L M N O &G e97epsgoGPulkovo 1942 / Gauss-Kruger 27N (deprecated)+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 27N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",159],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28487"],AXIS["X",NORTH],AXIS["Y",EAST]] &H e97epsgoHPulkovo 1942 / Gauss-Kruger 28N (deprecated)+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 28N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28488"],AXIS["X",NORTH],AXIS["Y",EAST]] &I e97epsgoIPulkovo 1942 / Gauss-Kruger 29N (deprecated)+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 29N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",171],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28489"],AXIS["X",NORTH],AXIS["Y",EAST]] &J e97epsgoJPulkovo 1942 / Gauss-Kruger 30N (deprecated)+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 30N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",177],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28490"],AXIS["X",NORTH],AXIS["Y",EAST]] (K e;9epsgoKPulkovo 1942 / Gauss-Kruger 31N (deprecated)+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 31N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-177],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28491"],AXIS["X",NORTH],AXIS["Y",EAST]] (L e;9epsgoLPulkovo 1942 / Gauss-Kruger 32N (deprecated)+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 32N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-171],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28492"],AXIS["X",NORTH],AXIS["Y",EAST]] #8 MqepsgoQatar 1974 / Qatar National Grid+proj=tmerc +lat_0=24.45 +lon_0=51.21666666666667 +k=0.99999 +x_0=200000 +y_0=300000 +ellps=intl +units=m +no_defsPROJCS["Qatar 1974 / Qatar National Grid",GEOGCS["Qatar 1974",DATUM["Qatar_1974",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6285"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4285"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",24.45],PARAMETER["central_meridian",51.21666666666667],PARAMETER["scale_factor",0.99999],PARAMETER["false_easting",200000],PARAMETER["false_northing",300000],AUTHORITY["EPSG","28600"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  ? 3}qepsgq?Amersfoort / RD Old+proj=sterea +lat_0=52.15616055555555 +lon_0=5.38763888888889 +k=0.9999079 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["Amersfoort / RD Old",GEOGCS["Amersfoort",DATUM["Amersfoort",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6289"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4289"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Oblique_Stereographic"],PARAMETER["latitude_of_origin",52.15616055555555],PARAMETER["central_meridian",5.38763888888889],PARAMETER["scale_factor",0.9999079],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","28991"],AXIS["X",EAST],AXIS["Y",NORTH]]  @ 3epsgq@Amersfoort / RD New+proj=sterea +lat_0=52.15616055555555 +lon_0=5.38763888888889 +k=0.9999079 +x_0=155000 +y_0=463000 +ellps=bessel +units=m +no_defsPROJCS["Amersfoort / RD New",GEOGCS["Amersfoort",DATUM["Amersfoort",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6289"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4289"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Oblique_Stereographic"],PARAMETER["latitude_of_origin",52.15616055555555],PARAMETER["central_meridian",5.38763888888889],PARAMETER["scale_factor",0.9999079],PARAMETER["false_easting",155000],PARAMETER["false_northing",463000],AUTHORITY["EPSG","28992"],AXIS["X",EAST],AXIS["Y",NORTH]] ;(5BO\iv,9FS`mz #0=JWdq~ o9epsgo9 o:epsgo: o;epsgo; oepsgo> o?epsgo? o@epsgo@ oAepsgoA oBepsgoB oCepsgoC oDepsgoD oEepsgoE oFepsgoF oGepsgoG oHepsgoH oIepsgoI oJepsgoJ oKepsgoK oLepsgoL oepsgo q?epsgq? q@epsgq@ qepsgq qepsgq qepsgq qepsgq qepsgq qepsgq qepsgq qepsgq qepsgq qepsgq qepsgq qepsgq qepsgq qepsgq qepsgq qepsgq qepsgq qepsgq qepsgq repsgr repsgr repsgr repsgr repsgr repsgr repsgr repsgr r epsgr r epsgr r epsgr r$epsgr$ r%epsgr% repsgr sepsgs sepsgs tepsgt ''T, W=epsgqSAD69 / Brazil Polyconic (deprecated)+proj=poly +lat_0=0 +lon_0=-54 +x_0=5000000 +y_0=10000000 +ellps=GRS67 +units=m +no_defsPROJCS["SAD69 / Brazil Polyconic (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polyconic"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-54],PARAMETER["false_easting",5000000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","29100"],AXIS["X",EAST],AXIS["Y",NORTH]] <<?- =A epsgqSAD69 / Brazil Polyconic+proj=poly +lat_0=0 +lon_0=-54 +x_0=5000000 +y_0=10000000 +ellps=aust_SA +units=m +no_defsPROJCS["SAD69 / Brazil Polyconic",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polyconic"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-54],PARAMETER["false_easting",5000000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","29101"],AXIS["X",EAST],AXIS["Y",NORTH]] ''T>OouepsgqSAD69 / UTM zone 18N (deprecated)+proj=utm +zone=18 +ellps=GRS67 +units=m +no_defsPROJCS["SAD69 / UTM zone 18N (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","29118"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ''T?OouepsgqSAD69 / UTM zone 19N (deprecated)+proj=utm +zone=19 +ellps=GRS67 +units=m +no_defsPROJCS["SAD69 / UTM zone 19N (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","29119"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ''T@OouepsgqSAD69 / UTM zone 20N (deprecated)+proj=utm +zone=20 +ellps=GRS67 +units=m +no_defsPROJCS["SAD69 / UTM zone 20N (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","29120"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ''TAOouepsgqSAD69 / UTM zone 21N (deprecated)+proj=utm +zone=21 +ellps=GRS67 +units=m +no_defsPROJCS["SAD69 / UTM zone 21N (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","29121"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ''TBOouepsgqSAD69 / UTM zone 22N (deprecated)+proj=utm +zone=22 +ellps=GRS67 +units=m +no_defsPROJCS["SAD69 / UTM zone 22N (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","29122"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] <<?p5saepsgqSAD69 / UTM zone 18N+proj=utm +zone=18 +ellps=aust_SA +units=m +no_defsPROJCS["SAD69 / UTM zone 18N",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","29168"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] <<?q5saepsgqSAD69 / UTM zone 19N+proj=utm +zone=19 +ellps=aust_SA +units=m +no_defsPROJCS["SAD69 / UTM zone 19N",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","29169"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] <<?r5saepsgqSAD69 / UTM zone 20N+proj=utm +zone=20 +ellps=aust_SA +units=m +no_defsPROJCS["SAD69 / UTM zone 20N",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","29170"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] <<?s5saepsgqSAD69 / UTM zone 21N+proj=utm +zone=21 +ellps=aust_SA +units=m +no_defsPROJCS["SAD69 / UTM zone 21N",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","29171"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] <<?t5saepsgqSAD69 / UTM zone 22N+proj=utm +zone=22 +ellps=aust_SA +units=m +no_defsPROJCS["SAD69 / UTM zone 22N",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","29172"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] byO}epsgqSAD69 / UTM zone 17S (deprecated)+proj=utm +zone=17 +south +ellps=GRS67 +units=m +no_defsPROJCS["SAD69 / UTM zone 17S (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","29177"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] bzO}epsgqSAD69 / UTM zone 18S (deprecated)+proj=utm +zone=18 +south +ellps=GRS67 +units=m +no_defsPROJCS["SAD69 / UTM zone 18S (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","29178"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] b{O}epsgqSAD69 / UTM zone 19S (deprecated)+proj=utm +zone=19 +south +ellps=GRS67 +units=m +no_defsPROJCS["SAD69 / UTM zone 19S (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","29179"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] b|O}epsgqSAD69 / UTM zone 20S (deprecated)+proj=utm +zone=20 +south +ellps=GRS67 +units=m +no_defsPROJCS["SAD69 / UTM zone 20S (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","29180"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] b}O}epsgqSAD69 / UTM zone 21S (deprecated)+proj=utm +zone=21 +south +ellps=GRS67 +units=m +no_defsPROJCS["SAD69 / UTM zone 21S (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","29181"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] b~O}epsgqSAD69 / UTM zone 22S (deprecated)+proj=utm +zone=22 +south +ellps=GRS67 +units=m +no_defsPROJCS["SAD69 / UTM zone 22S (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","29182"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] bO}epsgqSAD69 / UTM zone 23S (deprecated)+proj=utm +zone=23 +south +ellps=GRS67 +units=m +no_defsPROJCS["SAD69 / UTM zone 23S (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","29183"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] bO}epsgrSAD69 / UTM zone 24S (deprecated)+proj=utm +zone=24 +south +ellps=GRS67 +units=m +no_defsPROJCS["SAD69 / UTM zone 24S (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","29184"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] bO}epsgrSAD69 / UTM zone 25S (deprecated)+proj=utm +zone=25 +south +ellps=GRS67 +units=m +no_defsPROJCS["SAD69 / UTM zone 25S (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","29185"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] --N 5oepsgrSAD69 / UTM zone 17S+proj=utm +zone=17 +south +ellps=aust_SA +units=m +no_defsPROJCS["SAD69 / UTM zone 17S",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","29187"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] --N 5oepsgrSAD69 / UTM zone 18S+proj=utm +zone=18 +south +ellps=aust_SA +units=m +no_defsPROJCS["SAD69 / UTM zone 18S",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","29188"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] --N 5oepsgrSAD69 / UTM zone 19S+proj=utm +zone=19 +south +ellps=aust_SA +units=m +no_defsPROJCS["SAD69 / UTM zone 19S",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","29189"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] --N 5oepsgrSAD69 / UTM zone 20S+proj=utm +zone=20 +south +ellps=aust_SA +units=m +no_defsPROJCS["SAD69 / UTM zone 20S",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","29190"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] --N 5oepsgrSAD69 / UTM zone 21S+proj=utm +zone=21 +south +ellps=aust_SA +units=m +no_defsPROJCS["SAD69 / UTM zone 21S",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","29191"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] --N 5oepsgrSAD69 / UTM zone 22S+proj=utm +zone=22 +south +ellps=aust_SA +units=m +no_defsPROJCS["SAD69 / UTM zone 22S",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","29192"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] --N 5oepsgr SAD69 / UTM zone 23S+proj=utm +zone=23 +south +ellps=aust_SA +units=m +no_defsPROJCS["SAD69 / UTM zone 23S",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","29193"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] --N 5oepsgr SAD69 / UTM zone 24S+proj=utm +zone=24 +south +ellps=aust_SA +units=m +no_defsPROJCS["SAD69 / UTM zone 24S",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","29194"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] --N 5oepsgr SAD69 / UTM zone 25S+proj=utm +zone=25 +south +ellps=aust_SA +units=m +no_defsPROJCS["SAD69 / UTM zone 25S",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","29195"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] $ K3=epsgr$Sapper Hill 1943 / UTM zone 20S+proj=utm +zone=20 +south +ellps=intl +towgs84=-355,21,72,0,0,0,0 +units=m +no_defsPROJCS["Sapper Hill 1943 / UTM zone 20S",GEOGCS["Sapper Hill 1943",DATUM["Sapper_Hill_1943",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-355,21,72,0,0,0,0],AUTHORITY["EPSG","6292"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4292"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","29220"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] % K3=epsgr%Sapper Hill 1943 / UTM zone 21S+proj=utm +zone=21 +south +ellps=intl +towgs84=-355,21,72,0,0,0,0 +units=m +no_defsPROJCS["Sapper Hill 1943 / UTM zone 21S",GEOGCS["Sapper Hill 1943",DATUM["Sapper_Hill_1943",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-355,21,72,0,0,0,0],AUTHORITY["EPSG","6292"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4292"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","29221"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ` ?epsgrSchwarzeck / UTM zone 33S+proj=utm +zone=33 +south +ellps=bess_nam +units=m +no_defsPROJCS["Schwarzeck / UTM zone 33S",GEOGCS["Schwarzeck",DATUM["Schwarzeck",SPHEROID["Bessel Namibia (GLM)",6377483.865280419,299.1528128,AUTHORITY["EPSG","7046"]],AUTHORITY["EPSG","6293"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4293"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","29333"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] !!ZC OiepsgsSudan / UTM zone 35N (deprecated)+proj=utm +zone=35 +a=6378249.2 +b=6356515 +units=m +no_defsPROJCS["Sudan / UTM zone 35N (deprecated)",GEOGCS["Sudan",DATUM["Sudan",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],AUTHORITY["EPSG","6296"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4296"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","29635"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] !!ZD OiepsgsSudan / UTM zone 36N (deprecated)+proj=utm +zone=36 +a=6378249.2 +b=6356515 +units=m +no_defsPROJCS["Sudan / UTM zone 36N (deprecated)",GEOGCS["Sudan",DATUM["Sudan",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],AUTHORITY["EPSG","6296"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4296"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","29636"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ##X ioaepsgtTananarive (Paris) / Laborde Grid (deprecated)+proj=omerc +lat_0=-18.9 +lonc=44.10000000000001 +alpha=18.9 +k=0.9995000000000001 +x_0=400000 +y_0=800000 +ellps=intl +towgs84=-189,-242,-91,0,0,0,0 +pm=paris +units=m +no_defsPROJCS["Tananarive (Paris) / Laborde Grid (deprecated)",GEOGCS["Tananarive (Paris)",DATUM["Tananarive_1925_Paris",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-189,-242,-91,0,0,0,0],AUTHORITY["EPSG","6810"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4810"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Hotine_Oblique_Mercator"],PARAMETER["latitude_of_center",-21],PARAMETER["longitude_of_center",49],PARAMETER["azimuth",21],PARAMETER["rectified_grid_angle",21],PARAMETER["scale_factor",0.9995],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","29700"],AXIS["X",EAST],AXIS["Y",NORTH]] !!Z kocepsgtTananarive (Paris) / Laborde Grid approximation+proj=omerc +lat_0=-18.9 +lonc=44.10000000000001 +alpha=18.9 +k=0.9995000000000001 +x_0=400000 +y_0=800000 +ellps=intl +towgs84=-189,-242,-91,0,0,0,0 +pm=paris +units=m +no_defsPROJCS["Tananarive (Paris) / Laborde Grid approximation",GEOGCS["Tananarive (Paris)",DATUM["Tananarive_1925_Paris",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-189,-242,-91,0,0,0,0],AUTHORITY["EPSG","6810"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4810"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Hotine_Oblique_Mercator"],PARAMETER["latitude_of_center",-21],PARAMETER["longitude_of_center",49],PARAMETER["azimuth",21],PARAMETER["rectified_grid_angle",21],PARAMETER["scale_factor",0.9995],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","29702"],AXIS["X",NORTH],AXIS["Y",EAST]]  * ?9'epsgt*Tananarive / UTM zone 38S+proj=utm +zone=38 +south +ellps=intl +towgs84=-189,-242,-91,0,0,0,0 +units=m +no_defsPROJCS["Tananarive / UTM zone 38S",GEOGCS["Tananarive",DATUM["Tananarive_1925",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-189,-242,-91,0,0,0,0],AUTHORITY["EPSG","6297"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4297"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","29738"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  + ?9'epsgt+Tananarive / UTM zone 39S+proj=utm +zone=39 +south +ellps=intl +towgs84=-189,-242,-91,0,0,0,0 +units=m +no_defsPROJCS["Tananarive / UTM zone 39S",GEOGCS["Tananarive",DATUM["Tananarive_1925",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-189,-242,-91,0,0,0,0],AUTHORITY["EPSG","6297"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4297"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","29739"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ^EsepsgtTimbalai 1948 / UTM zone 49N+proj=utm +zone=49 +ellps=evrstSS +units=m +no_defsPROJCS["Timbalai 1948 / UTM zone 49N",GEOGCS["Timbalai 1948",DATUM["Timbalai_1948",SPHEROID["Everest 1830 (1967 Definition)",6377298.556,300.8017,AUTHORITY["EPSG","7016"]],AUTHORITY["EPSG","6298"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4298"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","29849"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ==l0 KW?epsgtTimbalai 1948 / RSO Borneo (ft)+proj=omerc +lat_0=4 +lonc=115 +alpha=53.31582047222222 + j/ KS?epsgtTimbalai 1948 / RSO Borneo (ch)+proj=omerc +lat_0=4 +lonc=115 +alpha=53.31582047222222 + ^EsepsgtTimbalai 1948 / UTM zone 50N+proj=utm +zone=50 +ellps=evrstSS +units=m +no_defsPROJCS["Timbalai 1948 / UTM zone 50N",GEOGCS["Timbalai 1948",DATUM["Timbalai_1948",SPHEROID["Everest 1830 (1967 Definition)",6377298.556,300.8017,AUTHORITY["EPSG","7016"]],AUTHORITY["EPSG","6298"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4298"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","29850"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]k=0.99984 +x_0=590476.8714630401 +y_0=442857.653094361 +ellps=evrstSS +to_meter=20.11676512155263 +no_defsPROJCS["Timbalai 1948 / RSO Borneo (ch)",GEOGCS["Timbalai 1948",DATUM["Timbalai_1948",SPHEROID["Everest 1830 (1967 Definition)",6377298.556,300.8017,AUTHORITY["EPSG","7016"]],AUTHORITY["EPSG","6298"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4298"]],UNIT["British chain (Sears 1922)",20.11676512155263,AUTHORITY["EPSG","9042"]],PROJECTION["Hotine_Oblique_Mercator"],PARAMETER["latitude_of_center",4],PARAMETER["longitude_of_center",115],PARAMETER["azimuth",53.31582047222222],PARAMETER["rectified_grid_angle",53.13010236111111],PARAMETER["scale_factor",0.99984],PARAMETER["false_easting",29352.4763],PARAMETER["false_northing",22014.3572],AUTHORITY["EPSG","29871"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]k=0.99984 +x_0=590476.8727431979 +y_0=442857.6545573985 +ellps=evrstSS +to_meter=0.3047994715386762 +no_defsPROJCS["Timbalai 1948 / RSO Borneo (ft)",GEOGCS["Timbalai 1948",DATUM["Timbalai_1948",SPHEROID["Everest 1830 (1967 Definition)",6377298.556,300.8017,AUTHORITY["EPSG","7016"]],AUTHORITY["EPSG","6298"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4298"]],UNIT["British foot (Sears 1922)",0.3047994715386762,AUTHORITY["EPSG","9041"]],PROJECTION["Hotine_Oblique_Mercator"],PARAMETER["latitude_of_center",4],PARAMETER["longitude_of_center",115],PARAMETER["azimuth",53.31582047222222],PARAMETER["rectified_grid_angle",53.13010236111111],PARAMETER["scale_factor",0.99984],PARAMETER["false_easting",1937263.44],PARAMETER["false_northing",1452947.58],AUTHORITY["EPSG","29872"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] \\1 IoepsgtTimbalai 1948 / RSO Borneo (m)+proj=omerc +lat_0=4 +lonc=115 +alpha=53.31582047222222 +k=0.99984 +x_0=590476.87 +y_0=442857.65 +ellps=evrstSS +units=m +no_defsPROJCS["Timbalai 1948 / RSO Borneo (m)",GEOGCS["Timbalai 1948",DATUM["Timbalai_1948",SPHEROID["Everest 1830 (1967 Definition)",6377298.556,300.8017,AUTHORITY["EPSG","7016"]],AUTHORITY["EPSG","6298"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4298"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Hotine_Oblique_Mercator"],PARAMETER["latitude_of_center",4],PARAMETER["longitude_of_center",115],PARAMETER["azimuth",53.31582047222222],PARAMETER["rectified_grid_angle",53.13010236111111],PARAMETER["scale_factor",0.99984],PARAMETER["false_easting",590476.87],PARAMETER["false_northing",442857.65],AUTHORITY["EPSG","29873"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] $L [uepsgtTM65 / Irish National Grid (deprecated)+proj=tmerc +lat_0=53.5 +lon_0=-8 +k=1.000035 +x_0=200000 +y_0=250000 +ellps=mod_airy +datum=ire65 +units=m +no_defsPROJCS["TM65 / Irish National Grid (deprecated)",GEOGCS["TM65",DATUM["TM65",SPHEROID["Airy Modified 1849",6377340.189,299.3249646,AUTHORITY["EPSG","7002"]],AUTHORITY["EPSG","6299"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4299"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",53.5],PARAMETER["central_meridian",-8],PARAMETER["scale_factor",1.000035],PARAMETER["false_easting",200000],PARAMETER["false_northing",250000],AUTHORITY["EPSG","29900"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] bM K1QepsgtOSNI 1952 / Irish National Grid+proj=tmerc +lat_0=53.5 +lon_0=-8 +k=1 +x_0=200000 +y_0=250000 +ellps=airy +towgs84=482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15 +units=m +no_defsPROJCS["OSNI 1952 / Irish National Grid",GEOGCS["OSNI 1952",DATUM["OSNI_1952",SPHEROID["Airy 1830",6377563.396,299.3249646,AUTHORITY["EPSG","7001"]],TOWGS84[482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15],AUTHORITY["EPSG","6188"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4188"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",53.5],PARAMETER["central_meridian",-8],PARAMETER["scale_factor",1],PARAMETER["false_easting",200000],PARAMETER["false_northing",250000],AUTHORITY["EPSG","29901"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] xN /uUepsgtTM65 / Irish Grid+proj=tmerc +lat_0=53.5 +lon_0=-8 +k=1.000035 +x_0=200000 +y_0=250000 +ellps=mod_airy +datum=ire65 +units=m +no_defsPROJCS["TM65 / Irish Grid",GEOGCS["TM65",DATUM["TM65",SPHEROID["Airy Modified 1849",6377340.189,299.3249646,AUTHORITY["EPSG","7002"]],AUTHORITY["EPSG","6299"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4299"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",53.5],PARAMETER["central_meridian",-8],PARAMETER["scale_factor",1.000035],PARAMETER["false_easting",200000],PARAMETER["false_northing",250000],AUTHORITY["EPSG","29902"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] }O /[yepsgtTM75 / Irish Grid+proj=tmerc +lat_0=53.5 +lon_0=-8 +k=1.000035 +x_0=200000 +y_0=250000 +ellps=mod_airy +units=m +no_defsPROJCS["TM75 / Irish Grid",GEOGCS["TM75",DATUM["Geodetic_Datum_of_1965",SPHEROID["Airy Modified 1849",6377340.189,299.3249646,AUTHORITY["EPSG","7002"]],AUTHORITY["EPSG","6300"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4300"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",53.5],PARAMETER["central_meridian",-8],PARAMETER["scale_factor",1.000035],PARAMETER["false_easting",200000],PARAMETER["false_northing",250000],AUTHORITY["EPSG","29903"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] gQ UAAepsguTokyo / Japan Plane Rectangular CS I+proj=tmerc +lat_0=33 +lon_0=129.5 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["Tokyo / Japan Plane Rectangular CS I",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",33],PARAMETER["central_meridian",129.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","30161"],AXIS["X",NORTH],AXIS["Y",EAST]] eR W=?epsguTokyo / Japan Plane Rectangular CS II+proj=tmerc +lat_0=33 +lon_0=131 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["Tokyo / Japan Plane Rectangular CS II",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",33],PARAMETER["central_meridian",131],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","30162"],AXIS["X",NORTH],AXIS["Y",EAST]] S YY]epsguTokyo / Japan Plane Rectangular CS III+proj=tmerc +lat_0=36 +lon_0=132.1666666666667 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["Tokyo / Japan Plane Rectangular CS III",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36],PARAMETER["central_meridian",132.1666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","30163"],AXIS["X",NORTH],AXIS["Y",EAST]] iT WACepsguTokyo / Japan Plane Rectangular CS IV+proj=tmerc +lat_0=33 +lon_0=133.5 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["Tokyo / Japan Plane Rectangular CS IV",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",33],PARAMETER["central_meridian",133.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","30164"],AXIS["X",NORTH],AXIS["Y",EAST]] U UYYepsguTokyo / Japan Plane Rectangular CS V+proj=tmerc +lat_0=36 +lon_0=134.3333333333333 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["Tokyo / Japan Plane Rectangular CS V",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36],PARAMETER["central_meridian",134.3333333333333],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","30165"],AXIS["X",NORTH],AXIS["Y",EAST]] eV W=?epsguTokyo / Japan Plane Rectangular CS VI+proj=tmerc +lat_0=36 +lon_0=136 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["Tokyo / Japan Plane Rectangular CS VI",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36],PARAMETER["central_meridian",136],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","30166"],AXIS["X",NORTH],AXIS["Y",EAST]] W YY]epsguTokyo / Japan Plane Rectangular CS VII+proj=tmerc +lat_0=36 +lon_0=137.1666666666667 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["Tokyo / Japan Plane Rectangular CS VII",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36],PARAMETER["central_meridian",137.1666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","30167"],AXIS["X",NORTH],AXIS["Y",EAST]] mX [AGepsguTokyo / Japan Plane Rectangular CS VIII+proj=tmerc +lat_0=36 +lon_0=138.5 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["Tokyo / Japan Plane Rectangular CS VIII",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36],PARAMETER["central_meridian",138.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","30168"],AXIS["X",NORTH],AXIS["Y",EAST]] Y WY[epsguTokyo / Japan Plane Rectangular CS IX+proj=tmerc +lat_0=36 +lon_0=139.8333333333333 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["Tokyo / Japan Plane Rectangular CS IX",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36],PARAMETER["central_meridian",139.8333333333333],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","30169"],AXIS["X",NORTH],AXIS["Y",EAST]] Z UYYepsguTokyo / Japan Plane Rectangular CS X+proj=tmerc +lat_0=40 +lon_0=140.8333333333333 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["Tokyo / Japan Plane Rectangular CS X",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40],PARAMETER["central_meridian",140.8333333333333],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","30170"],AXIS["X",NORTH],AXIS["Y",EAST]] k[ WCEepsguTokyo / Japan Plane Rectangular CS XI+proj=tmerc +lat_0=44 +lon_0=140.25 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["Tokyo / Japan Plane Rectangular CS XI",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",44],PARAMETER["central_meridian",140.25],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","30171"],AXIS["X",NORTH],AXIS["Y",EAST]] m\ YCGepsguTokyo / Japan Plane Rectangular CS XII+proj=tmerc +lat_0=44 +lon_0=142.25 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["Tokyo / Japan Plane Rectangular CS XII",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",44],PARAMETER["central_meridian",142.25],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","30172"],AXIS["X",NORTH],AXIS["Y",EAST]] ;(5BO\iv,9FS`mz #0=JWdq~ t*epsgt* t+epsgt+ tepsgt tepsgt tepsgt tepsgt tepsgt tepsgt tepsgt tepsgt tepsgt uepsgu uepsgu uepsgu uepsgu uepsgu uepsgu uepsgu uepsgu uepsgu uepsgu uepsgu uepsgu uepsgu uepsgu uepsgu uepsgu uepsgu uepsgu uepsgu uepsgu vepsgv vepsgv wepsgw wepsgw wepsgw wepsgw x epsgx x epsgx x epsgx x epsgx xGepsgxG xHepsgxH xPepsgxP y4epsgy4 yepsgy yepsgy yepsgy yepsgy zepsgz zepsgz zepsgz zepsgz zepsgz zepsgz zepsgz zepsgz zepsgz z!epsgz!   o] [CIepsguTokyo / Japan Plane Rectangular CS XIII+proj=tmerc +lat_0=44 +lon_0=144.25 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["Tokyo / Japan Plane Rectangular CS XIII",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",44],PARAMETER["central_meridian",144.25],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","30173"],AXIS["X",NORTH],AXIS["Y",EAST]] g^ Y=AepsguTokyo / Japan Plane Rectangular CS XIV+proj=tmerc +lat_0=26 +lon_0=142 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["Tokyo / Japan Plane Rectangular CS XIV",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",26],PARAMETER["central_meridian",142],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","30174"],AXIS["X",NORTH],AXIS["Y",EAST]] i_ WACepsguTokyo / Japan Plane Rectangular CS XV+proj=tmerc +lat_0=26 +lon_0=127.5 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["Tokyo / Japan Plane Rectangular CS XV",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",26],PARAMETER["central_meridian",127.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","30175"],AXIS["X",NORTH],AXIS["Y",EAST]] g` Y=AepsguTokyo / Japan Plane Rectangular CS XVI+proj=tmerc +lat_0=26 +lon_0=124 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["Tokyo / Japan Plane Rectangular CS XVI",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",26],PARAMETER["central_meridian",124],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","30176"],AXIS["X",NORTH],AXIS["Y",EAST]] ia [=CepsguTokyo / Japan Plane Rectangular CS XVII+proj=tmerc +lat_0=26 +lon_0=131 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["Tokyo / Japan Plane Rectangular CS XVII",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",26],PARAMETER["central_meridian",131],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","30177"],AXIS["X",NORTH],AXIS["Y",EAST]] kb ]=EepsguTokyo / Japan Plane Rectangular CS XVIII+proj=tmerc +lat_0=20 +lon_0=136 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["Tokyo / Japan Plane Rectangular CS XVIII",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",20],PARAMETER["central_meridian",136],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","30178"],AXIS["X",NORTH],AXIS["Y",EAST]] gc Y=AepsguTokyo / Japan Plane Rectangular CS XIX+proj=tmerc +lat_0=26 +lon_0=154 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["Tokyo / Japan Plane Rectangular CS XIX",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",26],PARAMETER["central_meridian",154],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","30179"],AXIS["X",NORTH],AXIS["Y",EAST]] qx Gs1epsguTrinidad 1903 / Trinidad Grid+proj=cass +lat_0=10.44166666666667 +lon_0=-61.33333333333334 +x_0=86501.46392051999 +y_0=65379.0134283 +a=6378293.645208759 +b=6356617.987679838 +to_meter=0.201166195164 +no_defsPROJCS["Trinidad 1903 / Trinidad Grid",GEOGCS["Trinidad 1903",DATUM["Trinidad_1903",SPHEROID["Clarke 1858",6378293.645208759,294.2606763692569,AUTHORITY["EPSG","7007"]],AUTHORITY["EPSG","6302"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4302"]],UNIT["Clarke's link",0.201166195164,AUTHORITY["EPSG","9039"]],PROJECTION["Cassini_Soldner"],PARAMETER["latitude_of_origin",10.44166666666667],PARAMETER["central_meridian",-61.33333333333334],PARAMETER["false_easting",430000],PARAMETER["false_northing",325000],AUTHORITY["EPSG","30200"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] AA:;sQepsgvTC(1948) / UTM zone 39N+proj=utm +zone=39 +ellps=helmert +units=m +no_defsPROJCS["TC(1948) / UTM zone 39N",GEOGCS["TC(1948)",DATUM["Trucial_Coast_1948",SPHEROID["Helmert 1906",6378200,298.3,AUTHORITY["EPSG","7020"]],AUTHORITY["EPSG","6303"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4303"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","30339"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] AA:;sQepsgvTC(1948) / UTM zone 40N+proj=utm +zone=40 +ellps=helmert +units=m +no_defsPROJCS["TC(1948) / UTM zone 40N",GEOGCS["TC(1948)",DATUM["Trucial_Coast_1948",SPHEROID["Helmert 1906",6378200,298.3,AUTHORITY["EPSG","7020"]],AUTHORITY["EPSG","6303"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4303"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","30340"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] q W?UepsgwVoirol 1875 / Nord Algerie (ancienne)+proj=lcc +lat_1=36 +lat_0=36 +lon_0=2.7 +k_0=0.999625544 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +towgs84=-73,-247,227,0,0,0,0 +units=m +no_defsPROJCS["Voirol 1875 / Nord Algerie (ancienne)",GEOGCS["Voirol 1875",DATUM["Voirol_1875",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-73,-247,227,0,0,0,0],AUTHORITY["EPSG","6304"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4304"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",36],PARAMETER["central_meridian",2.7],PARAMETER["scale_factor",0.999625544],PARAMETER["false_easting",500000],PARAMETER["false_northing",300000],AUTHORITY["EPSG","30491"],AXIS["X",EAST],AXIS["Y",NORTH]] u UGWepsgwVoirol 1875 / Sud Algerie (ancienne)+proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=2.7 +k_0=0.999625769 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +towgs84=-73,-247,227,0,0,0,0 +units=m +no_defsPROJCS["Voirol 1875 / Sud Algerie (ancienne)",GEOGCS["Voirol 1875",DATUM["Voirol_1875",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-73,-247,227,0,0,0,0],AUTHORITY["EPSG","6304"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4304"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",33.3],PARAMETER["central_meridian",2.7],PARAMETER["scale_factor",0.999625769],PARAMETER["false_easting",500000],PARAMETER["false_northing",300000],AUTHORITY["EPSG","30492"],AXIS["X",EAST],AXIS["Y",NORTH]] 5 WepsgwVoirol 1879 / Nord Algerie (ancienne)+proj=lcc +lat_1=36 +lat_0=36 +lon_0=2.7 +k_0=0.999625544 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +units=m +no_defsPROJCS["Voirol 1879 / Nord Algerie (ancienne)",GEOGCS["Voirol 1879",DATUM["Voirol_1879",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],AUTHORITY["EPSG","6671"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4671"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",36],PARAMETER["central_meridian",2.7],PARAMETER["scale_factor",0.999625544],PARAMETER["false_easting",500000],PARAMETER["false_northing",300000],AUTHORITY["EPSG","30493"],AXIS["X",EAST],AXIS["Y",NORTH]] 9 U epsgwVoirol 1879 / Sud Algerie (ancienne)+proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=2.7 +k_0=0.999625769 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +units=m +no_defsPROJCS["Voirol 1879 / Sud Algerie (ancienne)",GEOGCS["Voirol 1879",DATUM["Voirol_1879",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],AUTHORITY["EPSG","6671"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4671"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",33.3],PARAMETER["central_meridian",2.7],PARAMETER["scale_factor",0.999625769],PARAMETER["false_easting",500000],PARAMETER["false_northing",300000],AUTHORITY["EPSG","30494"],AXIS["X",EAST],AXIS["Y",NORTH]] !!Z Kqepsgx Nord Sahara 1959 / UTM zone 29N+proj=utm +zone=29 +ellps=clrk80 +units=m +no_defsPROJCS["Nord Sahara 1959 / UTM zone 29N",GEOGCS["Nord Sahara 1959",DATUM["Nord_Sahara_1959",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6307"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4307"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","30729"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] !!Z Kqepsgx Nord Sahara 1959 / UTM zone 30N+proj=utm +zone=30 +ellps=clrk80 +units=m +no_defsPROJCS["Nord Sahara 1959 / UTM zone 30N",GEOGCS["Nord Sahara 1959",DATUM["Nord_Sahara_1959",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6307"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4307"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","30730"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ""Y Kqepsgx Nord Sahara 1959 / UTM zone 31N+proj=utm +zone=31 +ellps=clrk80 +units=m +no_defsPROJCS["Nord Sahara 1959 / UTM zone 31N",GEOGCS["Nord Sahara 1959",DATUM["Nord_Sahara_1959",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6307"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4307"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","30731"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ""Y Kqepsgx Nord Sahara 1959 / UTM zone 32N+proj=utm +zone=32 +ellps=clrk80 +units=m +no_defsPROJCS["Nord Sahara 1959 / UTM zone 32N",GEOGCS["Nord Sahara 1959",DATUM["Nord_Sahara_1959",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6307"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4307"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","30732"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] -G WoepsgxGNord Sahara 1959 / Voirol Unifie Nord+proj=lcc +lat_1=36 +lat_0=36 +lon_0=2.7 +k_0=0.999625544 +x_0=500135 +y_0=300090 +ellps=clrk80 +units=m +no_defsPROJCS["Nord Sahara 1959 / Voirol Unifie Nord",GEOGCS["Nord Sahara 1959",DATUM["Nord_Sahara_1959",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6307"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4307"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",36],PARAMETER["central_meridian",2.7],PARAMETER["scale_factor",0.999625544],PARAMETER["false_easting",500135],PARAMETER["false_northing",300090],AUTHORITY["EPSG","30791"],AXIS["X",EAST],AXIS["Y",NORTH]] 1H UwepsgxHNord Sahara 1959 / Voirol Unifie Sud+proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=2.7 +k_0=0.999625769 +x_0=500135 +y_0=300090 +ellps=clrk80 +units=m +no_defsPROJCS["Nord Sahara 1959 / Voirol Unifie Sud",GEOGCS["Nord Sahara 1959",DATUM["Nord_Sahara_1959",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6307"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4307"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",33.3],PARAMETER["central_meridian",2.7],PARAMETER["scale_factor",0.999625769],PARAMETER["false_easting",500135],PARAMETER["false_northing",300090],AUTHORITY["EPSG","30792"],AXIS["X",EAST],AXIS["Y",NORTH]] uP CYWepsgxPRT38 2.5 gon W (deprecated)+proj=tmerc +lat_0=0 +lon_0=15.80827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["RT38 2.5 gon W (deprecated)",GEOGCS["RT38",DATUM["Stockholm_1938",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6308"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4308"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15.80827777777778],PARAMETER["scale_factor",1],PARAMETER["false_easting",1500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","30800"],AXIS["X",NORTH],AXIS["Y",EAST]] ==>4 3Mepsgy4Yoff / UTM zone 28N+proj=utm +zone=28 +a=6378249.2 +b=6356515 +units=m +no_defsPROJCS["Yoff / UTM zone 28N",GEOGCS["Yoff",DATUM["Yoff",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],AUTHORITY["EPSG","6310"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4310"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31028"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]   q ;+epsgyZanderij / UTM zone 21N+proj=utm +zone=21 +ellps=intl +towgs84=-265,120,-358,0,0,0,0 +units=m +no_defsPROJCS["Zanderij / UTM zone 21N",GEOGCS["Zanderij",DATUM["Zanderij",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-265,120,-358,0,0,0,0],AUTHORITY["EPSG","6311"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4311"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31121"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 2 3}epsgyZanderij / TM 54 NW+proj=tmerc +lat_0=0 +lon_0=-54 +k=0.9996 +x_0=500000 +y_0=0 +ellps=intl +towgs84=-265,120,-358,0,0,0,0 +units=m +no_defsPROJCS["Zanderij / TM 54 NW",GEOGCS["Zanderij",DATUM["Zanderij",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-265,120,-358,0,0,0,0],AUTHORITY["EPSG","6311"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4311"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-54],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31154"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ?B A)epsgyZanderij / Suriname Old TM+proj=tmerc +lat_0=0 +lon_0=-55.68333333333333 +k=0.9996 +x_0=500000 +y_0=0 +ellps=intl +towgs84=-265,120,-358,0,0,0,0 +units=m +no_defsPROJCS["Zanderij / Suriname Old TM",GEOGCS["Zanderij",DATUM["Zanderij",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-265,120,-358,0,0,0,0],AUTHORITY["EPSG","6311"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4311"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-55.68333333333333],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31170"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 7C 9!epsgyZanderij / Suriname TM+proj=tmerc +lat_0=0 +lon_0=-55.68333333333333 +k=0.9999 +x_0=500000 +y_0=0 +ellps=intl +towgs84=-265,120,-358,0,0,0,0 +units=m +no_defsPROJCS["Zanderij / Suriname TM",GEOGCS["Zanderij",DATUM["Zanderij",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-265,120,-358,0,0,0,0],AUTHORITY["EPSG","6311"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4311"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-55.68333333333333],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31171"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  QQepsgzMGI (Ferro) / Austria GK West Zone+proj=tmerc +lat_0=0 +lon_0=28 +k=1 +x_0=0 +y_0=-5000000 +ellps=bessel +pm=ferro +units=m +no_defsPROJCS["MGI (Ferro) / Austria GK West Zone",GEOGCS["MGI (Ferro)",DATUM["Militar_Geographische_Institut_Ferro",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6805"]],PRIMEM["Ferro",-17.66666666666667,AUTHORITY["EPSG","8909"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4805"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",28],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",-5000000],AUTHORITY["EPSG","31251"],AXIS["X",NORTH],AXIS["Y",EAST]] ! WQ#epsgzMGI (Ferro) / Austria GK Central Zone+proj=tmerc +lat_0=0 +lon_0=31 +k=1 +x_0=0 +y_0=-5000000 +ellps=bessel +pm=ferro +units=m +no_defsPROJCS["MGI (Ferro) / Austria GK Central Zone",GEOGCS["MGI (Ferro)",DATUM["Militar_Geographische_Institut_Ferro",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6805"]],PRIMEM["Ferro",-17.66666666666667,AUTHORITY["EPSG","8909"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4805"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",31],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",-5000000],AUTHORITY["EPSG","31252"],AXIS["X",NORTH],AXIS["Y",EAST]]  QQepsgzMGI (Ferro) / Austria GK East Zone+proj=tmerc +lat_0=0 +lon_0=34 +k=1 +x_0=0 +y_0=-5000000 +ellps=bessel +pm=ferro +units=m +no_defsPROJCS["MGI (Ferro) / Austria GK East Zone",GEOGCS["MGI (Ferro)",DATUM["Militar_Geographische_Institut_Ferro",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6805"]],PRIMEM["Ferro",-17.66666666666667,AUTHORITY["EPSG","8909"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4805"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",34],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",-5000000],AUTHORITY["EPSG","31253"],AXIS["X",NORTH],AXIS["Y",EAST]] H 7]epsgzMGI / Austria GK West+proj=tmerc +lat_0=0 +lon_0=10.33333333333333 +k=1 +x_0=0 +y_0=-5000000 +ellps=bessel +datum=hermannskogel +units=m +no_defsPROJCS["MGI / Austria GK West",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4312"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",10.33333333333333],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",-5000000],AUTHORITY["EPSG","31254"],AXIS["X",NORTH],AXIS["Y",EAST]] N =cepsgzMGI / Austria GK Central+proj=tmerc +lat_0=0 +lon_0=13.33333333333333 +k=1 +x_0=0 +y_0=-5000000 +ellps=bessel +datum=hermannskogel +units=m +no_defsPROJCS["MGI / Austria GK Central",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4312"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",13.33333333333333],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",-5000000],AUTHORITY["EPSG","31255"],AXIS["X",NORTH],AXIS["Y",EAST]] H 7]epsgzMGI / Austria GK East+proj=tmerc +lat_0=0 +lon_0=16.33333333333333 +k=1 +x_0=0 +y_0=-5000000 +ellps=bessel +datum=hermannskogel +units=m +no_defsPROJCS["MGI / Austria GK East",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4312"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",16.33333333333333],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",-5000000],AUTHORITY["EPSG","31256"],AXIS["X",NORTH],AXIS["Y",EAST]]bR "RY`gnu|$+29@GNU\cjqx  '.5<CJQX_fmt{ R S T U V W X Y ÁZ ā[ Ł\ ǁ] ȁ^ Ɂ_ ʁ` ˁa ́b ́c ΁x ρ Ё с ҁ Ӂ ԁ Ձ ց ׁ ؁ فG ځH ہP ܁4 ݁ ށ2 ߁B C          ! " # $ + , - . / 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A e f g h i j k l m ( ) p T ^ _   ] ^ _ ` a b c d !e P 5eepsgzMGI / Austria GK M28+proj=tmerc +lat_0=0 +lon_0=10.33333333333333 +k=1 +x_0=150000 +y_0=-5000000 +ellps=bessel +datum=hermannskogel +units=m +no_defsPROJCS["MGI / Austria GK M28",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4312"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",10.33333333333333],PARAMETER["scale_factor",1],PARAMETER["false_easting",150000],PARAMETER["false_northing",-5000000],AUTHORITY["EPSG","31257"],AXIS["X",NORTH],AXIS["Y",EAST]] P 5eepsgzMGI / Austria GK M31+proj=tmerc +lat_0=0 +lon_0=13.33333333333333 +k=1 +x_0=450000 +y_0=-5000000 +ellps=bessel +datum=hermannskogel +units=m +no_defsPROJCS["MGI / Austria GK M31",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4312"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",13.33333333333333],PARAMETER["scale_factor",1],PARAMETER["false_easting",450000],PARAMETER["false_northing",-5000000],AUTHORITY["EPSG","31258"],AXIS["X",NORTH],AXIS["Y",EAST]] P 5eepsgzMGI / Austria GK M34+proj=tmerc +lat_0=0 +lon_0=16.33333333333333 +k=1 +x_0=750000 +y_0=-5000000 +ellps=bessel +datum=hermannskogel +units=m +no_defsPROJCS["MGI / Austria GK M34",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4312"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",16.33333333333333],PARAMETER["scale_factor",1],PARAMETER["false_easting",750000],PARAMETER["false_northing",-5000000],AUTHORITY["EPSG","31259"],AXIS["X",NORTH],AXIS["Y",EAST]] N! ]ecepsgz!MGI / 3-degree Gauss zone 5 (deprecated)+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 +ellps=bessel +datum=hermannskogel +units=m +no_defsPROJCS["MGI / 3-degree Gauss zone 5 (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4312"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",1],PARAMETER["false_easting",5500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31265"],AXIS["X",EAST],AXIS["Y",NORTH]] N" ]ecepsgz"MGI / 3-degree Gauss zone 6 (deprecated)+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=6500000 +y_0=0 +ellps=bessel +datum=hermannskogel +units=m +no_defsPROJCS["MGI / 3-degree Gauss zone 6 (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4312"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",18],PARAMETER["scale_factor",1],PARAMETER["false_easting",6500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31266"],AXIS["X",EAST],AXIS["Y",NORTH]] N# ]ecepsgz#MGI / 3-degree Gauss zone 7 (deprecated)+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=7500000 +y_0=0 +ellps=bessel +datum=hermannskogel +units=m +no_defsPROJCS["MGI / 3-degree Gauss zone 7 (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4312"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",1],PARAMETER["false_easting",7500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31267"],AXIS["X",EAST],AXIS["Y",NORTH]] N$ ]ecepsgz$MGI / 3-degree Gauss zone 8 (deprecated)+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=8500000 +y_0=0 +ellps=bessel +datum=hermannskogel +units=m +no_defsPROJCS["MGI / 3-degree Gauss zone 8 (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4312"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",24],PARAMETER["scale_factor",1],PARAMETER["false_easting",8500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31268"],AXIS["X",EAST],AXIS["Y",NORTH]] J+ Oo_epsgz+MGI / Balkans zone 5 (deprecated)+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9999 +x_0=5500000 +y_0=0 +ellps=bessel +datum=hermannskogel +units=m +no_defsPROJCS["MGI / Balkans zone 5 (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4312"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",5500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31275"],AXIS["X",NORTH],AXIS["Y",EAST]] J, Oo_epsgz,MGI / Balkans zone 6 (deprecated)+proj=tmerc +lat_0=0 +lon_0=18 +k=0.9999 +x_0=6500000 +y_0=0 +ellps=bessel +datum=hermannskogel +units=m +no_defsPROJCS["MGI / Balkans zone 6 (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4312"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",18],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",6500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31276"],AXIS["X",NORTH],AXIS["Y",EAST]] J- Oo_epsgz-MGI / Balkans zone 7 (deprecated)+proj=tmerc +lat_0=0 +lon_0=21 +k=0.9999 +x_0=7500000 +y_0=0 +ellps=bessel +datum=hermannskogel +units=m +no_defsPROJCS["MGI / Balkans zone 7 (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4312"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",7500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31277"],AXIS["X",NORTH],AXIS["Y",EAST]] J. Oo_epsgz.MGI / Balkans zone 8 (deprecated)+proj=tmerc +lat_0=0 +lon_0=21 +k=0.9999 +x_0=7500000 +y_0=0 +ellps=bessel +datum=hermannskogel +units=m +no_defsPROJCS["MGI / Balkans zone 8 (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4312"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",7500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31278"],AXIS["X",NORTH],AXIS["Y",EAST]] J/ Oo_epsgz/MGI / Balkans zone 8 (deprecated)+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9999 +x_0=8500000 +y_0=0 +ellps=bessel +datum=hermannskogel +units=m +no_defsPROJCS["MGI / Balkans zone 8 (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4312"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",24],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",8500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31279"],AXIS["X",NORTH],AXIS["Y",EAST]] 1 KC epsgz1MGI (Ferro) / Austria West Zone+proj=tmerc +lat_0=0 +lon_0=28 +k=1 +x_0=0 +y_0=0 +ellps=bessel +pm=ferro +units=m +no_defsPROJCS["MGI (Ferro) / Austria West Zone",GEOGCS["MGI (Ferro)",DATUM["Militar_Geographische_Institut_Ferro",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6805"]],PRIMEM["Ferro",-17.66666666666667,AUTHORITY["EPSG","8909"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4805"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",28],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","31281"],AXIS["X",NORTH],AXIS["Y",EAST]]  2 QCepsgz2MGI (Ferro) / Austria Central Zone+proj=tmerc +lat_0=0 +lon_0=31 +k=1 +x_0=0 +y_0=0 +ellps=bessel +pm=ferro +units=m +no_defsPROJCS["MGI (Ferro) / Austria Central Zone",GEOGCS["MGI (Ferro)",DATUM["Militar_Geographische_Institut_Ferro",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6805"]],PRIMEM["Ferro",-17.66666666666667,AUTHORITY["EPSG","8909"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4805"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",31],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","31282"],AXIS["X",NORTH],AXIS["Y",EAST]] 3 KC epsgz3MGI (Ferro) / Austria East Zone+proj=tmerc +lat_0=0 +lon_0=34 +k=1 +x_0=0 +y_0=0 +ellps=bessel +pm=ferro +units=m +no_defsPROJCS["MGI (Ferro) / Austria East Zone",GEOGCS["MGI (Ferro)",DATUM["Militar_Geographische_Institut_Ferro",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6805"]],PRIMEM["Ferro",-17.66666666666667,AUTHORITY["EPSG","8909"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4805"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",34],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","31283"],AXIS["X",NORTH],AXIS["Y",EAST]] <4 /Qepsgz4MGI / Austria M28+proj=tmerc +lat_0=0 +lon_0=10.33333333333333 +k=1 +x_0=150000 +y_0=0 +ellps=bessel +datum=hermannskogel +units=m +no_defsPROJCS["MGI / Austria M28",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4312"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",10.33333333333333],PARAMETER["scale_factor",1],PARAMETER["false_easting",150000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31284"],AXIS["X",NORTH],AXIS["Y",EAST]] <5 /Qepsgz5MGI / Austria M31+proj=tmerc +lat_0=0 +lon_0=13.33333333333333 +k=1 +x_0=450000 +y_0=0 +ellps=bessel +datum=hermannskogel +units=m +no_defsPROJCS["MGI / Austria M31",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4312"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",13.33333333333333],PARAMETER["scale_factor",1],PARAMETER["false_easting",450000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31285"],AXIS["X",NORTH],AXIS["Y",EAST]] <6 /Qepsgz6MGI / Austria M34+proj=tmerc +lat_0=0 +lon_0=16.33333333333333 +k=1 +x_0=750000 +y_0=0 +ellps=bessel +datum=hermannskogel +units=m +no_defsPROJCS["MGI / Austria M34",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4312"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",16.33333333333333],PARAMETER["scale_factor",1],PARAMETER["false_easting",750000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31286"],AXIS["X",NORTH],AXIS["Y",EAST]] ff7 7+Qepsgz7MGI / Austria Lambert+proj=lcc +lat_1=49 +lat_2=46 +lat_0=47.5 +lon_0=13.33333333333333 +x_0=400000 +y_0=400000 +ellps=bessel +datum=hermannskogel +units=m +no_defsPROJCS["MGI / Austria Lambert",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4312"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",49],PARAMETER["standard_parallel_2",46],PARAMETER["latitude_of_origin",47.5],PARAMETER["central_meridian",13.33333333333333],PARAMETER["false_easting",400000],PARAMETER["false_northing",400000],AUTHORITY["EPSG","31287"],AXIS["X",NORTH],AXIS["Y",EAST]] u8 /Mwepsgz8MGI (Ferro) / M28+proj=tmerc +lat_0=0 +lon_0=28 +k=1 +x_0=150000 +y_0=0 +ellps=bessel +pm=ferro +units=m +no_defsPROJCS["MGI (Ferro) / M28",GEOGCS["MGI (Ferro)",DATUM["Militar_Geographische_Institut_Ferro",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6805"]],PRIMEM["Ferro",-17.66666666666667,AUTHORITY["EPSG","8909"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4805"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",28],PARAMETER["scale_factor",1],PARAMETER["false_easting",150000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31288"],AXIS["X",NORTH],AXIS["Y",EAST]] u9 /Mwepsgz9MGI (Ferro) / M31+proj=tmerc +lat_0=0 +lon_0=31 +k=1 +x_0=450000 +y_0=0 +ellps=bessel +pm=ferro +units=m +no_defsPROJCS["MGI (Ferro) / M31",GEOGCS["MGI (Ferro)",DATUM["Militar_Geographische_Institut_Ferro",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6805"]],PRIMEM["Ferro",-17.66666666666667,AUTHORITY["EPSG","8909"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4805"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",31],PARAMETER["scale_factor",1],PARAMETER["false_easting",450000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31289"],AXIS["X",NORTH],AXIS["Y",EAST]] u: /Mwepsgz:MGI (Ferro) / M34+proj=tmerc +lat_0=0 +lon_0=34 +k=1 +x_0=750000 +y_0=0 +ellps=bessel +pm=ferro +units=m +no_defsPROJCS["MGI (Ferro) / M34",GEOGCS["MGI (Ferro)",DATUM["Militar_Geographische_Institut_Ferro",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6805"]],PRIMEM["Ferro",-17.66666666666667,AUTHORITY["EPSG","8909"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4805"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",34],PARAMETER["scale_factor",1],PARAMETER["false_easting",750000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31290"],AXIS["X",NORTH],AXIS["Y",EAST]] !; eC#epsgz;MGI (Ferro) / Austria West Zone (deprecated)+proj=tmerc +lat_0=0 +lon_0=28 +k=1 +x_0=0 +y_0=0 +ellps=bessel +pm=ferro +units=m +no_defsPROJCS["MGI (Ferro) / Austria West Zone (deprecated)",GEOGCS["MGI (Ferro)",DATUM["Militar_Geographische_Institut_Ferro",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6805"]],PRIMEM["Ferro",-17.66666666666667,AUTHORITY["EPSG","8909"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4805"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",28],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","31291"],AXIS["X",EAST],AXIS["Y",NORTH]] '< kC)epsgz 9[epsgz>MGI / M28 (deprecated)+proj=tmerc +lat_0=0 +lon_0=10.33333333333333 +k=1 +x_0=150000 +y_0=0 +ellps=bessel +datum=hermannskogel +units=m +no_defsPROJCS["MGI / M28 (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4312"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",10.33333333333333],PARAMETER["scale_factor",1],PARAMETER["false_easting",150000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31294"],AXIS["X",EAST],AXIS["Y",NORTH]] F? 9[epsgz?MGI / M31 (deprecated)+proj=tmerc +lat_0=0 +lon_0=13.33333333333333 +k=1 +x_0=450000 +y_0=0 +ellps=bessel +datum=hermannskogel +units=m +no_defsPROJCS["MGI / M31 (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4312"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",13.33333333333333],PARAMETER["scale_factor",1],PARAMETER["false_easting",450000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31295"],AXIS["X",EAST],AXIS["Y",NORTH]] F@ 9[epsgz@MGI / M34 (deprecated)+proj=tmerc +lat_0=0 +lon_0=16.33333333333333 +k=1 +x_0=750000 +y_0=0 +ellps=bessel +datum=hermannskogel +units=m +no_defsPROJCS["MGI / M34 (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4312"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",16.33333333333333],PARAMETER["scale_factor",1],PARAMETER["false_easting",750000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31296"],AXIS["X",EAST],AXIS["Y",NORTH]] ;(5BO\iv,9FS`mz #0=JWdq~ z#epsgz# z$epsgz$ z+epsgz+ z,epsgz, z-epsgz- z.epsgz. z/epsgz/ z1epsgz1 z2epsgz2 z3epsgz3 z4epsgz4 z5epsgz5 z6epsgz6 z7epsgz7 z8epsgz8 z9epsgz9 z:epsgz: z;epsgz; zepsgz> z?epsgz? z@epsgz@ zAepsgzA zDepsgzD zepsgz zepsgz zepsgz zepsgz zepsgz zepsgz zepsgz zepsgz zepsgz zepsgz {(epsg{( {)epsg{) {pepsg{p {epsg{ |^epsg|^ |_epsg|_ |epsg| |epsg| |epsg| |epsg| |epsg| |epsg| |epsg| |epsg| |epsg| |epsg| |epsg| |epsg| |epsg| |epsg| |epsg| |epsg| |epsg| |epsg| LL/A Q+kepsgzAMGI / Austria Lambert (deprecated)+proj=lcc +lat_1=49 +lat_2=46 +lat_0=47.5 +lon_0=13.33333333333333 +x_0=400000 +y_0=400000 +ellps=bessel +datum=hermannskogel +units=m +no_defsPROJCS["MGI / Austria Lambert (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4312"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",49],PARAMETER["standard_parallel_2",46],PARAMETER["latitude_of_origin",47.5],PARAMETER["central_meridian",13.33333333333333],PARAMETER["false_easting",400000],PARAMETER["false_northing",400000],AUTHORITY["EPSG","31297"],AXIS["X",EAST],AXIS["Y",NORTH]] +lat_0=90 +lon_0=4.356939722222222 +x_0=150000.01256 +y_0=5400088.4378 +ellps=intl +towgs84=106.869,-52.2978,103.724,-0.33657,0.456955,-1.84218,1 +units=m +no_defsPROJCS["Belge 1972 / Belge Lambert 72",GEOGCS["Belge 1972",DATUM["Reseau_National_Belge_1972",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[106.869,-52.2978,103.724,-0.33657,0.456955,-1.84218,1],AUTHORITY["EPSG","6313"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4313"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP_Belgium"],PARAMETER["standard_parallel_1",49.83333333333334],PARAMETER["standard_parallel_2",51.16666666666666],PARAMETER["latitude_of_origin",90],PARAMETER["central_meridian",4.356939722222222],PARAMETER["false_easting",150000.01256],PARAMETER["false_northing",5400088.4378],AUTHORITY["EPSG","31300"],AXIS["X",EAST],AXIS["Y",NORTH]]   e _WmepsgzDHDN / 3-degree Gauss zone 1 (deprecated)+proj=tmerc +lat_0=0 +lon_0=3 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defsPROJCS["DHDN / 3-degree Gauss zone 1 (deprecated)",GEOGCS["DHDN",DATUM["Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6314"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4314"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",3],PARAMETER["scale_factor",1],PARAMETER["false_easting",1500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31461"],AXIS["X",EAST],AXIS["Y",NORTH]] K7)epsgzBelge 1972 / Belgian Lambert 72+proj=lcc +lat_1=51.16666723333333 +lat_2=49.8333339 +lat )D GKIepsgzDBelge 1972 / Belge Lambert 72+proj=lcc +lat_1=49.83333333333334 +lat_2=51.16666666666666 _0=90 +lon_0=4.367486666666666 +x_0=150000.013 +y_0=5400088.438 +ellps=intl +towgs84=106.869,-52.2978,103.724,-0.33657,0.456955,-1.84218,1 +units=m +no_defsPROJCS["Belge 1972 / Belgian Lambert 72",GEOGCS["Belge 1972",DATUM["Reseau_National_Belge_1972",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[106.869,-52.2978,103.724,-0.33657,0.456955,-1.84218,1],AUTHORITY["EPSG","6313"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4313"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",51.16666723333333],PARAMETER["standard_parallel_2",49.8333339],PARAMETER["latitude_of_origin",90],PARAMETER["central_meridian",4.367486666666666],PARAMETER["false_easting",150000.013],PARAMETER["false_northing",5400088.438],AUTHORITY["EPSG","31370"],AXIS["X",EAST],AXIS["Y",NORTH]]  f _WmepsgzDHDN / 3-degree Gauss zone 2 (deprecated)+proj=tmerc +lat_0=0 +lon_0=6 +k=1 +x_0=2500000 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defsPROJCS["DHDN / 3-degree Gauss zone 2 (deprecated)",GEOGCS["DHDN",DATUM["Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6314"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4314"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",6],PARAMETER["scale_factor",1],PARAMETER["false_easting",2500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31462"],AXIS["X",EAST],AXIS["Y",NORTH]]  g _WmepsgzDHDN / 3-degree Gauss zone 3 (deprecated)+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defsPROJCS["DHDN / 3-degree Gauss zone 3 (deprecated)",GEOGCS["DHDN",DATUM["Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6314"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4314"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",1],PARAMETER["false_easting",3500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31463"],AXIS["X",EAST],AXIS["Y",NORTH]] h _YoepsgzDHDN / 3-degree Gauss zone 4 (deprecated)+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defsPROJCS["DHDN / 3-degree Gauss zone 4 (deprecated)",GEOGCS["DHDN",DATUM["Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6314"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4314"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",12],PARAMETER["scale_factor",1],PARAMETER["false_easting",4500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31464"],AXIS["X",EAST],AXIS["Y",NORTH]] i _YoepsgzDHDN / 3-degree Gauss zone 5 (deprecated)+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defsPROJCS["DHDN / 3-degree Gauss zone 5 (deprecated)",GEOGCS["DHDN",DATUM["Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6314"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4314"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",1],PARAMETER["false_easting",5500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31465"],AXIS["X",EAST],AXIS["Y",NORTH]] j SWaepsgzDHDN / 3-degree Gauss-Kruger zone 2+proj=tmerc +lat_0=0 +lon_0=6 +k=1 +x_0=2500000 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defsPROJCS["DHDN / 3-degree Gauss-Kruger zone 2",GEOGCS["DHDN",DATUM["Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6314"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4314"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",6],PARAMETER["scale_factor",1],PARAMETER["false_easting",2500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31466"],AXIS["X",NORTH],AXIS["Y",EAST]] k SWaepsgzDHDN / 3-degree Gauss-Kruger zone 3+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defsPROJCS["DHDN / 3-degree Gauss-Kruger zone 3",GEOGCS["DHDN",DATUM["Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6314"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4314"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",1],PARAMETER["false_easting",3500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31467"],AXIS["X",NORTH],AXIS["Y",EAST]] l SYcepsgzDHDN / 3-degree Gauss-Kruger zone 4+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defsPROJCS["DHDN / 3-degree Gauss-Kruger zone 4",GEOGCS["DHDN",DATUM["Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6314"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4314"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",12],PARAMETER["scale_factor",1],PARAMETER["false_easting",4500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31468"],AXIS["X",NORTH],AXIS["Y",EAST]] m SYcepsgzDHDN / 3-degree Gauss-Kruger zone 5+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defsPROJCS["DHDN / 3-degree Gauss-Kruger zone 5",GEOGCS["DHDN",DATUM["Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6314"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4314"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",1],PARAMETER["false_easting",5500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31469"],AXIS["X",NORTH],AXIS["Y",EAST]] ( C=5epsg{(Conakry 1905 / UTM zone 28N+proj=utm +zone=28 +a=6378249.2 +b=6356515 +towgs84=-23,259,-9,0,0,0,0 +units=m +no_defsPROJCS["Conakry 1905 / UTM zone 28N",GEOGCS["Conakry 1905",DATUM["Conakry_1905",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-23,259,-9,0,0,0,0],AUTHORITY["EPSG","6315"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4315"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31528"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ) C=3epsg{)Conakry 1905 / UTM zone 29N+proj=utm +zone=29 +a=6378249.2 +b=6356515 +towgs84=-23,259,-9,0,0,0,0 +units=m +no_defsPROJCS["Conakry 1905 / UTM zone 29N",GEOGCS["Conakry 1905",DATUM["Conakry_1905",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-23,259,-9,0,0,0,0],AUTHORITY["EPSG","6315"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4315"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31529"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] /p Mu%epsg{pDealul Piscului 1930 / Stereo 33+proj=sterea +lat_0=45.9 +lon_0=25.39246588888889 +k=0.9996667 +x_0=500000 +y_0=500000 +ellps=intl +units=m +no_defsPROJCS["Dealul Piscului 1930 / Stereo 33",GEOGCS["Dealul Piscului 1930",DATUM["Dealul_Piscului_1930",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6316"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4316"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Oblique_Stereographic"],PARAMETER["latitude_of_origin",45.9],PARAMETER["central_meridian",25.39246588888889],PARAMETER["scale_factor",0.9996667],PARAMETER["false_easting",500000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","31600"],AXIS["X",EAST],AXIS["Y",NORTH]] !T eQepsg{Dealul Piscului 1970/ Stereo 70 (deprecated)+proj=sterea +lat_0=46 +lon_0=25 +k=0.99975 +x_0=500000 +y_0=500000 +ellps=krass +units=m +no_defsPROJCS["Dealul Piscului 1970/ Stereo 70 (deprecated)",GEOGCS["Dealul Piscului 1970",DATUM["Dealul_Piscului_1970",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6317"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4317"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Oblique_Stereographic"],PARAMETER["latitude_of_origin",46],PARAMETER["central_meridian",25],PARAMETER["scale_factor",0.99975],PARAMETER["false_easting",500000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","31700"],AXIS["X",NORTH],AXIS["Y",EAST]]   q^ 1- epsg|^NGN / UTM zone 38N+proj=utm +zone=38 +ellps=WGS84 +towgs84=-3.2,-5.7,2.8,0,0,0,0 +units=m +no_defsPROJCS["NGN / UTM zone 38N",GEOGCS["NGN",DATUM["National_Geodetic_Network",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[-3.2,-5.7,2.8,0,0,0,0],AUTHORITY["EPSG","6318"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4318"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31838"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]   q_ 1- epsg|_NGN / UTM zone 39N+proj=utm +zone=39 +ellps=WGS84 +towgs84=-3.2,-5.7,2.8,0,0,0,0 +units=m +no_defsPROJCS["NGN / UTM zone 39N",GEOGCS["NGN",DATUM["National_Geodetic_Network",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[-3.2,-5.7,2.8,0,0,0,0],AUTHORITY["EPSG","6318"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4318"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31839"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] d ?AQepsg|KUDAMS / KTM (deprecated)+proj=tmerc +lat_0=0 +lon_0=48 +k=0.9996 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["KUDAMS / KTM (deprecated)",GEOGCS["KUDAMS",DATUM["Kuwait_Utility",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6319"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4319"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",48],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31900"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ;;@ %7-epsg|KUDAMS / KTM+proj=tmerc +lat_0=0 +lon_0=48 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["KUDAMS / KTM",GEOGCS["KUDAMS",DATUM["Kuwait_Utility",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6319"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4319"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",48],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31901"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ] Aiepsg|SIRGAS 2000 / UTM zone 11N+proj=utm +zone=11 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 2000 / UTM zone 11N",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31965"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ^ Aiepsg|SIRGAS 2000 / UTM zone 12N+proj=utm +zone=12 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 2000 / UTM zone 12N",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31966"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] _ Aiepsg|SIRGAS 2000 / UTM zone 13N+proj=utm +zone=13 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 2000 / UTM zone 13N",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31967"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ` Agepsg|SIRGAS 2000 / UTM zone 14N+proj=utm +zone=14 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 2000 / UTM zone 14N",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31968"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] a Agepsg|SIRGAS 2000 / UTM zone 15N+proj=utm +zone=15 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 2000 / UTM zone 15N",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31969"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] b Agepsg|SIRGAS 2000 / UTM zone 16N+proj=utm +zone=16 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 2000 / UTM zone 16N",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-87],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31970"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] c Agepsg|SIRGAS 2000 / UTM zone 17N+proj=utm +zone=17 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 2000 / UTM zone 17N",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31971"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] d Agepsg|SIRGAS 2000 / UTM zone 18N+proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 2000 / UTM zone 18N",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31972"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] e Agepsg|SIRGAS 2000 / UTM zone 19N+proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 2000 / UTM zone 19N",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31973"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] f Agepsg|SIRGAS 2000 / UTM zone 20N+proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 2000 / UTM zone 20N",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31974"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] g Agepsg|SIRGAS 2000 / UTM zone 21N+proj=utm +zone=21 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 2000 / UTM zone 21N",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31975"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] h Agepsg|SIRGAS 2000 / UTM zone 22N+proj=utm +zone=22 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 2000 / UTM zone 22N",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31976"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ,i A+uepsg|SIRGAS 2000 / UTM zone 17S+proj=utm +zone=17 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 2000 / UTM zone 17S",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","31977"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ,j A+uepsg|SIRGAS 2000 / UTM zone 18S+proj=utm +zone=18 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 2000 / UTM zone 18S",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","31978"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ,k A+uepsg|SIRGAS 2000 / UTM zone 19S+proj=utm +zone=19 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 2000 / UTM zone 19S",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","31979"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ,l A+uepsg|SIRGAS 2000 / UTM zone 20S+proj=utm +zone=20 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 2000 / UTM zone 20S",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","31980"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ,m A+uepsg|SIRGAS 2000 / UTM zone 21S+proj=utm +zone=21 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 2000 / UTM zone 21S",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","31981"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ,n A+uepsg|SIRGAS 2000 / UTM zone 22S+proj=utm +zone=22 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 2000 / UTM zone 22S",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","31982"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ,o A+uepsg|SIRGAS 2000 / UTM zone 23S+proj=utm +zone=23 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 2000 / UTM zone 23S",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","31983"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ,p A+uepsg|SIRGAS 2000 / UTM zone 24S+proj=utm +zone=24 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 2000 / UTM zone 24S",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","31984"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ,q A+uepsg|SIRGAS 2000 / UTM zone 25S+proj=utm +zone=25 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 2000 / UTM zone 25S",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","31985"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] r Agepsg|SIRGAS 1995 / UTM zone 17N+proj=utm +zone=17 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 1995 / UTM zone 17N",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31986"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] s Agepsg|SIRGAS 1995 / UTM zone 18N+proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 1995 / UTM zone 18N",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31987"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] t Agepsg|SIRGAS 1995 / UTM zone 19N+proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 1995 / UTM zone 19N",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31988"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] u Agepsg|SIRGAS 1995 / UTM zone 20N+proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 1995 / UTM zone 20N",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31989"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] v Agepsg|SIRGAS 1995 / UTM zone 21N+proj=utm +zone=21 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 1995 / UTM zone 21N",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31990"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] w Agepsg|SIRGAS 1995 / UTM zone 22N+proj=utm +zone=22 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 1995 / UTM zone 22N",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31991"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ,x A+uepsg|SIRGAS 1995 / UTM zone 17S+proj=utm +zone=17 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 1995 / UTM zone 17S",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","31992"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ,y A+uepsg|SIRGAS 1995 / UTM zone 18S+proj=utm +zone=18 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 1995 / UTM zone 18S",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","31993"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ,z A+uepsg|SIRGAS 1995 / UTM zone 19S+proj=utm +zone=19 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 1995 / UTM zone 19S",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","31994"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ,{ A+uepsg|SIRGAS 1995 / UTM zone 20S+proj=utm +zone=20 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 1995 / UTM zone 20S",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","31995"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ,| A+uepsg|SIRGAS 1995 / UTM zone 21S+proj=utm +zone=21 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 1995 / UTM zone 21S",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","31996"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ,} A+uepsg|SIRGAS 1995 / UTM zone 22S+proj=utm +zone=22 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 1995 / UTM zone 22S",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","31997"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ,~ A+uepsg|SIRGAS 1995 / UTM zone 23S+proj=utm +zone=23 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 1995 / UTM zone 23S",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","31998"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] , A+uepsg|SIRGAS 1995 / UTM zone 24S+proj=utm +zone=24 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 1995 / UTM zone 24S",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","31999"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] , A+uepsg}SIRGAS 1995 / UTM zone 25S+proj=utm +zone=25 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 1995 / UTM zone 25S",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32000"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] || 79epsg}NAD27 / Montana North+proj=lcc +lat_1=48.71666666666667 +lat_2=47.85 +lat_0=47 +lon_0=-109.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Montana North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",48.71666666666667],PARAMETER["standard_parallel_2",47.85],PARAMETER["latitude_of_origin",47],PARAMETER["central_meridian",-109.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32001"],AXIS["X",EAST],AXIS["Y",NORTH]] ZZ! ;W9epsg}NAD27 / Montana Central+proj=lcc +lat_1=47.88333333333333 +lat_2=46.45 +lat_0=45.83333333333334 +lon_0=-109.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Montana Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.88333333333333],PARAMETER["standard_parallel_2",46.45],PARAMETER["latitude_of_origin",45.83333333333334],PARAMETER["central_meridian",-109.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32002"],AXIS["X",EAST],AXIS["Y",NORTH]] ~~} 77epsg}NAD27 / Montana South+proj=lcc +lat_1=46.4 +lat_2=44.86666666666667 +lat_0=44 +lon_0=-109.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Montana South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",46.4],PARAMETER["standard_parallel_2",44.86666666666667],PARAMETER["latitude_of_origin",44],PARAMETER["central_meridian",-109.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32003"],AXIS["X",EAST],AXIS["Y",NORTH]] `` 9S3epsg}NAD27 / Nebraska North+proj=lcc +lat_1=41.85 +lat_2=42.81666666666667 +lat_0=41.33333333333334 +lon_0=-100 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Nebraska North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.85],PARAMETER["standard_parallel_2",42.81666666666667],PARAMETER["latitude_of_origin",41.33333333333334],PARAMETER["central_meridian",-100],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32005"],AXIS["X",EAST],AXIS["Y",NORTH]] ;(5BO\iv,9FS`mz #0=JWdq~ |epsg| |epsg| |epsg| |epsg| |epsg| |epsg| |epsg| |epsg| |epsg| |epsg| |epsg| |epsg| |epsg| |epsg| |epsg| |epsg| |epsg| |epsg| }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} } epsg} } epsg} } epsg} } epsg} } epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }!epsg}! }"epsg}" }#epsg}# }$epsg}$ }%epsg}% }&epsg}& }'epsg}' }(epsg}( })epsg}) }*epsg}* FF5 9mMepsg}NAD27 / Nebraska South+proj=lcc +lat_1=40.28333333333333 +lat_2=41.71666666666667 +lat_0=39.66666666666666 +lon_0=-99.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Nebraska South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.28333333333333],PARAMETER["standard_parallel_2",41.71666666666667],PARAMETER["latitude_of_origin",39.66666666666666],PARAMETER["central_meridian",-99.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32006"],AXIS["X",EAST],AXIS["Y",NORTH]] = 3#-epsg}NAD27 / Nevada East+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Nevada East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",34.75],PARAMETER["central_meridian",-115.5833333333333],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32007"],AXIS["X",EAST],AXIS["Y",NORTH]] C 9#3epsg}NAD27 / Nevada Central+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Nevada Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",34.75],PARAMETER["central_meridian",-116.6666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32008"],AXIS["X",EAST],AXIS["Y",NORTH]] = 3#-epsg} NAD27 / Nevada West+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Nevada West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",34.75],PARAMETER["central_meridian",-118.5833333333333],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32009"],AXIS["X",EAST],AXIS["Y",NORTH]] I 7+9epsg} NAD27 / New Hampshire+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.999966667 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / New Hampshire",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",42.5],PARAMETER["central_meridian",-71.66666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32010"],AXIS["X",EAST],AXIS["Y",NORTH]] b 1SIepsg} NAD27 / New Jersey+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.66666666666667 +k=0.9999749999999999 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / New Jersey",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38.83333333333334],PARAMETER["central_meridian",-74.66666666666667],PARAMETER["scale_factor",0.999975],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32011"],AXIS["X",EAST],AXIS["Y",NORTH]] I ;'9epsg} NAD27 / New Mexico East+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999909091 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / New Mexico East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-104.3333333333333],PARAMETER["scale_factor",0.999909091],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32012"],AXIS["X",EAST],AXIS["Y",NORTH]] / Aepsg} NAD27 / New Mexico Central+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / New Mexico Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-106.25],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32013"],AXIS["X",EAST],AXIS["Y",NORTH]] I ;'9epsg}NAD27 / New Mexico West+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999916667 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / New Mexico West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-107.8333333333333],PARAMETER["scale_factor",0.999916667],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32014"],AXIS["X",EAST],AXIS["Y",NORTH]] E 7'5epsg}NAD27 / New York East+proj=tmerc +lat_0=40 +lon_0=-74.33333333333333 +k=0.999966667 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / New York East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40],PARAMETER["central_meridian",-74.33333333333333],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32015"],AXIS["X",EAST],AXIS["Y",NORTH]] G =#7epsg}NAD27 / New York Central+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.9999375 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / New York Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40],PARAMETER["central_meridian",-76.58333333333333],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32016"],AXIS["X",EAST],AXIS["Y",NORTH]] A 7#1epsg}NAD27 / New York West+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.9999375 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / New York West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40],PARAMETER["central_meridian",-78.58333333333333],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32017"],AXIS["X",EAST],AXIS["Y",NORTH]] XX# EO;epsg}NAD27 / New York Long Island+proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666666 +lat_0=40.5 +lon_0=-74 +x_0=304800.6096012192 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / New York Long Island",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.03333333333333],PARAMETER["standard_parallel_2",40.66666666666666],PARAMETER["latitude_of_origin",40.5],PARAMETER["central_meridian",-74],PARAMETER["false_easting",1000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32018"],AXIS["X",EAST],AXIS["Y",NORTH]]bR RY`gnu|$+29@GNU\cjqx  '.5<CJQX_fmt{ #g $h %i &j 'k (l )m *n +o ,p -q .r /s 0t 1u 2v 3w 4x 5y 6z 7{ 8| 9} :~ ; < = > ? @ B C D E F G H I J K L M N P Q R S T U V W X Y Z [ \ ]! ^" _# `$ a% b& c' d( e) f* g+ h, i- j. k/ l0 m1 n2 o3 p4 q5 r6 s7 t8 u9 v: w= x> y@ zA {B |C }J ~K L M Q R S T U V bb 9Q1epsg}NAD27 / North Carolina+proj=lcc +lat_1=34.33333333333334 +lat_2=36.16666666666666 +lat_0=33.75 +lon_0=-79 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / North Carolina",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",34.33333333333334],PARAMETER["standard_parallel_2",36.16666666666666],PARAMETER["latitude_of_origin",33.75],PARAMETER["central_meridian",-79],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32019"],AXIS["X",EAST],AXIS["Y",NORTH]] ZZ! AQ9epsg}NAD27 / North Dakota North+proj=lcc +lat_1=47.43333333333333 +lat_2=48.73333333333333 +lat_0=47 +lon_0=-100.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / North Dakota North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.43333333333333],PARAMETER["standard_parallel_2",48.73333333333333],PARAMETER["latitude_of_origin",47],PARAMETER["central_meridian",-100.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32020"],AXIS["X",EAST],AXIS["Y",NORTH]] <<? AoWepsg}NAD27 / North Dakota South+proj=lcc +lat_1=46.18333333333333 +lat_2=47.48333333333333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / North Dakota South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",46.18333333333333],PARAMETER["standard_parallel_2",47.48333333333333],PARAMETER["latitude_of_origin",45.66666666666666],PARAMETER["central_meridian",-100.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32021"],AXIS["X",EAST],AXIS["Y",NORTH]] hh 1S+epsg}NAD27 / Ohio North+proj=lcc +lat_1=40.43333333333333 +lat_2=41.7 +lat_0=39.66666666666666 +lon_0=-82.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Ohio North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.43333333333333],PARAMETER["standard_parallel_2",41.7],PARAMETER["latitude_of_origin",39.66666666666666],PARAMETER["central_meridian",-82.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32022"],AXIS["X",EAST],AXIS["Y",NORTH]] ll 1O'epsg}NAD27 / Ohio South+proj=lcc +lat_1=38.73333333333333 +lat_2=40.03333333333333 +lat_0=38 +lon_0=-82.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Ohio South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.73333333333333],PARAMETER["standard_parallel_2",40.03333333333333],PARAMETER["latitude_of_origin",38],PARAMETER["central_meridian",-82.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32023"],AXIS["X",EAST],AXIS["Y",NORTH]] hh 9K+epsg}NAD27 / Oklahoma North+proj=lcc +lat_1=35.56666666666667 +lat_2=36.76666666666667 +lat_0=35 +lon_0=-98 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Oklahoma North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",35.56666666666667],PARAMETER["standard_parallel_2",36.76666666666667],PARAMETER["latitude_of_origin",35],PARAMETER["central_meridian",-98],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32024"],AXIS["X",EAST],AXIS["Y",NORTH]] JJ1 9iIepsg}NAD27 / Oklahoma South+proj=lcc +lat_1=33.93333333333333 +lat_2=35.23333333333333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Oklahoma South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",33.93333333333333],PARAMETER["standard_parallel_2",35.23333333333333],PARAMETER["latitude_of_origin",33.33333333333334],PARAMETER["central_meridian",-98],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32025"],AXIS["X",EAST],AXIS["Y",NORTH]] ff 5Q-epsg}NAD27 / Oregon North+proj=lcc +lat_1=44.33333333333334 +lat_2=46 +lat_0=43.66666666666666 +lon_0=-120.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Oregon North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",44.33333333333334],PARAMETER["standard_parallel_2",46],PARAMETER["latitude_of_origin",43.66666666666666],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32026"],AXIS["X",EAST],AXIS["Y",NORTH]] ff 5Q-epsg}NAD27 / Oregon South+proj=lcc +lat_1=42.33333333333334 +lat_2=44 +lat_0=41.66666666666666 +lon_0=-120.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Oregon South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",42.33333333333334],PARAMETER["standard_parallel_2",44],PARAMETER["latitude_of_origin",41.66666666666666],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32027"],AXIS["X",EAST],AXIS["Y",NORTH]] TT' AW?epsg}NAD27 / Pennsylvania North+proj=lcc +lat_1=40.88333333333333 +lat_2=41.95 +lat_0=40.16666666666666 +lon_0=-77.75 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Pennsylvania North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.88333333333333],PARAMETER["standard_parallel_2",41.95],PARAMETER["latitude_of_origin",40.16666666666666],PARAMETER["central_meridian",-77.75],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32028"],AXIS["X",EAST],AXIS["Y",NORTH]] VV% AU=epsg}NAD27 / Pennsylvania South+proj=lcc +lat_1=39.93333333333333 +lat_2=40.8 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Pennsylvania South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.93333333333333],PARAMETER["standard_parallel_2",40.8],PARAMETER["latitude_of_origin",39.33333333333334],PARAMETER["central_meridian",-77.75],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32029"],AXIS["X",EAST],AXIS["Y",NORTH]] C 5'3epsg}NAD27 / Rhode Island+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.9999938 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Rhode Island",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.08333333333334],PARAMETER["central_meridian",-71.5],PARAMETER["scale_factor",0.9999938],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32030"],AXIS["X",EAST],AXIS["Y",NORTH]] \\ EK7epsg}NAD27 / South Carolina North+proj=lcc +lat_1=33.76666666666667 +lat_2=34.96666666666667 +lat_0=33 +lon_0=-81 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / South Carolina North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",33.76666666666667],PARAMETER["standard_parallel_2",34.96666666666667],PARAMETER["latitude_of_origin",33],PARAMETER["central_meridian",-81],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32031"],AXIS["X",EAST],AXIS["Y",NORTH]] >>=! EiUepsg}!NAD27 / South Carolina South+proj=lcc +lat_1=32.33333333333334 +lat_2=33.66666666666666 +lat_0=31.83333333333333 +lon_0=-81 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / South Carolina South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",32.33333333333334],PARAMETER["standard_parallel_2",33.66666666666666],PARAMETER["latitude_of_origin",31.83333333333333],PARAMETER["central_meridian",-81],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32033"],AXIS["X",EAST],AXIS["Y",NORTH]] @@;" AkSepsg}"NAD27 / South Dakota North+proj=lcc +lat_1=44.41666666666666 +lat_2=45.68333333333333 +lat_0=43.83333333333334 +lon_0=-100 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / South Dakota North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",44.41666666666666],PARAMETER["standard_parallel_2",45.68333333333333],PARAMETER["latitude_of_origin",43.83333333333334],PARAMETER["central_meridian",-100],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32034"],AXIS["X",EAST],AXIS["Y",NORTH]] >>=# AmUepsg}#NAD27 / South Dakota South+proj=lcc +lat_1=42.83333333333334 +lat_2=44.4 +lat_0=42.33333333333334 +lon_0=-100.3333333333333 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / South Dakota South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",42.83333333333334],PARAMETER["standard_parallel_2",44.4],PARAMETER["latitude_of_origin",42.33333333333334],PARAMETER["central_meridian",-100.3333333333333],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32035"],AXIS["X",EAST],AXIS["Y",NORTH]] SS($ IQ?epsg}$NAD27 / Tennessee (deprecated)+proj=lcc +lat_1=35.25 +lat_2=36.41666666666666 +lat_0=34.66666666666666 +lon_0=-86 +x_0=30480.06096012192 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Tennessee (deprecated)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",35.25],PARAMETER["standard_parallel_2",36.41666666666666],PARAMETER["latitude_of_origin",34.66666666666666],PARAMETER["central_meridian",-86],PARAMETER["false_easting",100000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32036"],AXIS["X",EAST],AXIS["Y",NORTH]] {% 39epsg}%NAD27 / Texas North+proj=lcc +lat_1=34.65 +lat_2=36.18333333333333 +lat_0=34 +lon_0=-101.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Texas North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",34.65],PARAMETER["standard_parallel_2",36.18333333333333],PARAMETER["latitude_of_origin",34],PARAMETER["central_meridian",-101.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32037"],AXIS["X",EAST],AXIS["Y",NORTH]] <<?& CmWepsg}&NAD27 / Texas North Central+proj=lcc +lat_1=32.13333333333333 +lat_2=33.96666666666667 +lat_0=31.66666666666667 +lon_0=-97.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Texas North Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",32.13333333333333],PARAMETER["standard_parallel_2",33.96666666666667],PARAMETER["latitude_of_origin",31.66666666666667],PARAMETER["central_meridian",-97.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32038"],AXIS["X",EAST],AXIS["Y",NORTH]] ..M' 7eepsg}'NAD27 / Texas Central+proj=lcc +lat_1=30.11666666666667 +lat_2=31.88333333333333 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Texas Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",30.11666666666667],PARAMETER["standard_parallel_2",31.88333333333333],PARAMETER["latitude_of_origin",29.66666666666667],PARAMETER["central_meridian",-100.3333333333333],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32039"],AXIS["X",EAST],AXIS["Y",NORTH]] @@;( CiSepsg}(NAD27 / Texas South Central+proj=lcc +lat_1=28.38333333333333 +lat_2=30.28333333333333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Texas South Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",28.38333333333333],PARAMETER["standard_parallel_2",30.28333333333333],PARAMETER["latitude_of_origin",27.83333333333333],PARAMETER["central_meridian",-99],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32040"],AXIS["X",EAST],AXIS["Y",NORTH]] LL/) 3mGepsg})NAD27 / Texas South+proj=lcc +lat_1=26.16666666666667 +lat_2=27.83333333333333 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Texas South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",26.16666666666667],PARAMETER["standard_parallel_2",27.83333333333333],PARAMETER["latitude_of_origin",25.66666666666667],PARAMETER["central_meridian",-98.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32041"],AXIS["X",EAST],AXIS["Y",NORTH]] LL/* 1oGepsg}*NAD27 / Utah North+proj=lcc +lat_1=40.71666666666667 +lat_2=41.78333333333333 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Utah North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.71666666666667],PARAMETER["standard_parallel_2",41.78333333333333],PARAMETER["latitude_of_origin",40.33333333333334],PARAMETER["central_meridian",-111.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32042"],AXIS["X",EAST],AXIS["Y",NORTH]] ``+ 5W3epsg}+NAD27 / Utah Central+proj=lcc +lat_1=39.01666666666667 +lat_2=40.65 +lat_0=38.33333333333334 +lon_0=-111.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Utah Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.01666666666667],PARAMETER["standard_parallel_2",40.65],PARAMETER["latitude_of_origin",38.33333333333334],PARAMETER["central_meridian",-111.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32043"],AXIS["X",EAST],AXIS["Y",NORTH]] dd, 1W/epsg},NAD27 / Utah South+proj=lcc +lat_1=37.21666666666667 +lat_2=38.35 +lat_0=36.66666666666666 +lon_0=-111.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Utah South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.21666666666667],PARAMETER["standard_parallel_2",38.35],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-111.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32044"],AXIS["X",EAST],AXIS["Y",NORTH]] #- +epsg}-NAD27 / Vermont+proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964286 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Vermont",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",42.5],PARAMETER["central_meridian",-72.5],PARAMETER["scale_factor",0.999964286],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32045"],AXIS["X",EAST],AXIS["Y",NORTH]] ``. 9S3epsg}.NAD27 / Virginia North+proj=lcc +lat_1=38.03333333333333 +lat_2=39.2 +lat_0=37.66666666666666 +lon_0=-78.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Virginia North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.03333333333333],PARAMETER["standard_parallel_2",39.2],PARAMETER["latitude_of_origin",37.66666666666666],PARAMETER["central_meridian",-78.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32046"],AXIS["X",EAST],AXIS["Y",NORTH]] FF5/ 9mMepsg}/NAD27 / Virginia South+proj=lcc +lat_1=36.76666666666667 +lat_2=37.96666666666667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Virginia South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.76666666666667],PARAMETER["standard_parallel_2",37.96666666666667],PARAMETER["latitude_of_origin",36.33333333333334],PARAMETER["central_meridian",-78.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32047"],AXIS["X",EAST],AXIS["Y",NORTH]] ``0 =O3epsg}0NAD27 / Washington North+proj=lcc +lat_1=47.5 +lat_2=48.73333333333333 +lat_0=47 +lon_0=-120.8333333333333 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Washington North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.5],PARAMETER["standard_parallel_2",48.73333333333333],PARAMETER["latitude_of_origin",47],PARAMETER["central_meridian",-120.8333333333333],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32048"],AXIS["X",EAST],AXIS["Y",NORTH]] @@;1 =oSepsg}1NAD27 / Washington South+proj=lcc +lat_1=45.83333333333334 +lat_2=47.33333333333334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Washington South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.83333333333334],PARAMETER["standard_parallel_2",47.33333333333334],PARAMETER["latitude_of_origin",45.33333333333334],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32049"],AXIS["X",EAST],AXIS["Y",NORTH]] o2 Cepsg}2NAD27 / West Virginia North+proj=lcc +lat_1=39 +lat_2=40.25 +lat_0=38.5 +lon_0=-79.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / West Virginia North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39],PARAMETER["standard_parallel_2",40.25],PARAMETER["latitude_of_origin",38.5],PARAMETER["central_meridian",-79.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32050"],AXIS["X",EAST],AXIS["Y",NORTH]] ^^3 CK5epsg}3NAD27 / West Virginia South+proj=lcc +lat_1=37.48333333333333 +lat_2=38.88333333333333 +lat_0=37 +lon_0=-81 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / West Virginia South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.48333333333333],PARAMETER["standard_parallel_2",38.88333333333333],PARAMETER["latitude_of_origin",37],PARAMETER["central_meridian",-81],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32051"],AXIS["X",EAST],AXIS["Y",NORTH]] HH34 ;iKepsg}4NAD27 / Wisconsin North+proj=lcc +lat_1=45.56666666666667 +lat_2=46.76666666666667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Wisconsin North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.56666666666667],PARAMETER["standard_parallel_2",46.76666666666667],PARAMETER["latitude_of_origin",45.16666666666666],PARAMETER["central_meridian",-90],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32052"],AXIS["X",EAST],AXIS["Y",NORTH]] vv5 ?7epsg}5NAD27 / Wisconsin Central+proj=lcc +lat_1=44.25 +lat_2=45.5 +lat_0=43.83333333333334 +lon_0=-90 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Wisconsin Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",44.25],PARAMETER["standard_parallel_2",45.5],PARAMETER["latitude_of_origin",43.83333333333334],PARAMETER["central_meridian",-90],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32053"],AXIS["X",EAST],AXIS["Y",NORTH]] ff6 ;K-epsg}6NAD27 / Wisconsin South+proj=lcc +lat_1=42.73333333333333 +lat_2=44.06666666666667 +lat_0=42 +lon_0=-90 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Wisconsin South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",42.73333333333333],PARAMETER["standard_parallel_2",44.06666666666667],PARAMETER["latitude_of_origin",42],PARAMETER["central_meridian",-90],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32054"],AXIS["X",EAST],AXIS["Y",NORTH]] a7 5EQepsg}7NAD27 / Wyoming East+proj=tmerc +lat_0=40.66666666666666 +lon_0=-105.1666666666667 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Wyoming East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40.66666666666666],PARAMETER["central_meridian",-105.1666666666667],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32055"],AXIS["X",EAST],AXIS["Y",NORTH]] q8 EEaepsg}8NAD27 / Wyoming East Central+proj=tmerc +lat_0=40.66666666666666 +lon_0=-107.3333333333333 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Wyoming East Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40.66666666666666],PARAMETER["central_meridian",-107.3333333333333],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32056"],AXIS["X",EAST],AXIS["Y",NORTH]] [9 E/Kepsg}9NAD27 / Wyoming West Central+proj=tmerc +lat_0=40.66666666666666 +lon_0=-108.75 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Wyoming West Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40.66666666666666],PARAMETER["central_meridian",-108.75],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32057"],AXIS["X",EAST],AXIS["Y",NORTH]] a: 5EQepsg}:NAD27 / Wyoming West+proj=tmerc +lat_0=40.66666666666666 +lon_0=-110.0833333333333 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Wyoming West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40.66666666666666],PARAMETER["central_meridian",-110.0833333333333],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32058"],AXIS["X",EAST],AXIS["Y",NORTH]] o= ;iCepsg}=NAD27 / Guatemala Norte+proj=lcc +lat_1=16.81666666666667 +lat_0=16.81666666666667 +lon_0=-90.33333333333333 +k_0=0.99992226 +x_0=500000 +y_0=292209.579 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / Guatemala Norte",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",16.81666666666667],PARAMETER["central_meridian",-90.33333333333333],PARAMETER["scale_factor",0.99992226],PARAMETER["false_easting",500000],PARAMETER["false_northing",292209.579],AUTHORITY["EPSG","32061"],AXIS["X",EAST],AXIS["Y",NORTH]] D> 75%epsg}>NAD27 / Guatemala Sur+proj=lcc +lat_1=14.9 +lat_0=14.9 +lon_0=-90.33333333333333 +k_0=0.99989906 +x_0=500000 +y_0=325992.681 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / Guatemala Sur",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",14.9],PARAMETER["central_meridian",-90.33333333333333],PARAMETER["scale_factor",0.99989906],PARAMETER["false_easting",500000],PARAMETER["false_northing",325992.681],AUTHORITY["EPSG","32062"],AXIS["X",EAST],AXIS["Y",NORTH]]  @ 9{epsg}@NAD27 / BLM 14N (ftUS)+proj=tmerc +lat_0=0 +lon_0=-99 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / BLM 14N (ftUS)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",1640416.67],PARAMETER["false_northing",0],AUTHORITY["EPSG","32064"],AXIS["X",EAST],AXIS["Y",NORTH]]  A 9{epsg}ANAD27 / BLM 15N (ftUS)+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / BLM 15N (ftUS)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",1640416.67],PARAMETER["false_northing",0],AUTHORITY["EPSG","32065"],AXIS["X",EAST],AXIS["Y",NORTH]]  B 9{epsg}BNAD27 / BLM 16N (ftUS)+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / BLM 16N (ftUS)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-87],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",1640416.67],PARAMETER["false_northing",0],AUTHORITY["EPSG","32066"],AXIS["X",EAST],AXIS["Y",NORTH]]  C 9{epsg}CNAD27 / BLM 17N (ftUS)+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / BLM 17N (ftUS)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",1640416.67],PARAMETER["false_northing",0],AUTHORITY["EPSG","32067"],AXIS["X",EAST],AXIS["Y",NORTH]] :J S{/epsg}JNAD27 / BLM 14N (feet) (deprecated)+proj=tmerc +lat_0=0 +lon_0=-99 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / BLM 14N (feet) (deprecated)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",1640416.67],PARAMETER["false_northing",0],AUTHORITY["EPSG","32074"],AXIS["X",EAST],AXIS["Y",NORTH]] :K S{/epsg}KNAD27 / BLM 15N (feet) (deprecated)+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / BLM 15N (feet) (deprecated)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",1640416.67],PARAMETER["false_northing",0],AUTHORITY["EPSG","32075"],AXIS["X",EAST],AXIS["Y",NORTH]] ;(5BO\iv,9FS`mz #0=JWdq~ },epsg}, }-epsg}- }.epsg}. }/epsg}/ }0epsg}0 }1epsg}1 }2epsg}2 }3epsg}3 }4epsg}4 }5epsg}5 }6epsg}6 }7epsg}7 }8epsg}8 }9epsg}9 }:epsg}: }=epsg}= }>epsg}> }@epsg}@ }Aepsg}A }Bepsg}B }Cepsg}C }Jepsg}J }Kepsg}K }Lepsg}L }Mepsg}M }Qepsg}Q }Repsg}R }Sepsg}S }Tepsg}T }Uepsg}U }Vepsg}V }bepsg}b }cepsg}c }depsg}d }hepsg}h }kepsg}k }lepsg}l }mepsg}m }nepsg}n }oepsg}o }pepsg}p }qepsg}q }repsg}r }sepsg}s }tepsg}t }uepsg}u }vepsg}v }wepsg}w }xepsg}x }yepsg}y }zepsg}z }{epsg}{ }|epsg}| }}epsg}} }~epsg}~ }epsg} }epsg} }epsg} }epsg}55FWhy#4EVgxY epsgZ QepsgQ epsg epsg&  epsg c  Wepsg W  epsg   epsg   epsg Y  Gepsg G  epsg   epsg   epsg O  7epsg 7  sepsg s  epsg   epsg L  -epsg -  mepsg m  epsg   epsg C  "epsg "  ^epsg ^  epsg   epsg C epsg NepsgN!0FWhy#4EVgx5$ epsg bepsgb w ~epsg~ : ~epsg~ ~6epsg~6 }epsg}  }epsg} epsgO BepsgB epsg ,epsg, kepsgk epsg epsg6 AepsgAV }epsg}t N'epsgN' OepsgO SepsgS  VepsgV Z ]-epsg]- _epsg_ hQepsghQ  hepsgh Q hepsgh i>epsgi> iepsgi kepsgk K o8epsgo8 tepsgt z"epsgz" A }+epsg}+  |epsg| :L S{/epsg}LNAD27 / BLM 16N (feet) (deprecated)+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / BLM 16N (feet) (deprecated)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-87],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",1640416.67],PARAMETER["false_northing",0],AUTHORITY["EPSG","32076"],AXIS["X",EAST],AXIS["Y",NORTH]] :M S{/epsg}MNAD27 / BLM 17N (feet) (deprecated)+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / BLM 17N (feet) (deprecated)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",1640416.67],PARAMETER["false_northing",0],AUTHORITY["EPSG","32077"],AXIS["X",EAST],AXIS["Y",NORTH]] yQ 1_kepsg}QNAD27 / MTM zone 1+proj=tmerc +lat_0=0 +lon_0=-53 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / MTM zone 1",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-53],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","32081"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] yR 1_kepsg}RNAD27 / MTM zone 2+proj=tmerc +lat_0=0 +lon_0=-56 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / MTM zone 2",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-56],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","32082"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] }S 1coepsg}SNAD27 / MTM zone 3+proj=tmerc +lat_0=0 +lon_0=-58.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / MTM zone 3",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-58.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","32083"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] }T 1coepsg}TNAD27 / MTM zone 4+proj=tmerc +lat_0=0 +lon_0=-61.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / MTM zone 4",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-61.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","32084"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] }U 1coepsg}UNAD27 / MTM zone 5+proj=tmerc +lat_0=0 +lon_0=-64.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / MTM zone 5",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-64.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","32085"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] }V 1coepsg}VNAD27 / MTM zone 6+proj=tmerc +lat_0=0 +lon_0=-67.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / MTM zone 6",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-67.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","32086"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 'b 9k3epsg}bNAD27 / Quebec Lambert+proj=lcc +lat_1=60 +lat_2=46 +lat_0=44 +lon_0=-68.5 +x_0=0 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / Quebec Lambert",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",60],PARAMETER["standard_parallel_2",46],PARAMETER["latitude_of_origin",44],PARAMETER["central_meridian",-68.5],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","32098"],AXIS["X",EAST],AXIS["Y",NORTH]] $$Wc Aoepsg}cNAD27 / Louisiana Offshore+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666667 +lat_0=25.66666666666667 +lon_0=-91.33333333333333 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Louisiana Offshore",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",27.83333333333333],PARAMETER["standard_parallel_2",26.16666666666667],PARAMETER["latitude_of_origin",25.66666666666667],PARAMETER["central_meridian",-91.33333333333333],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32099"],AXIS["X",EAST],AXIS["Y",NORTH]] !d +{%epsg}dNAD83 / Montana+proj=lcc +lat_1=49 +lat_2=45 +lat_0=44.25 +lon_0=-109.5 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Montana",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",49],PARAMETER["standard_parallel_2",45],PARAMETER["latitude_of_origin",44.25],PARAMETER["central_meridian",-109.5],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32100"],AXIS["X",EAST],AXIS["Y",NORTH]] 7h -;epsg}hNAD83 / Nebraska+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +lon_0=-100 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Nebraska",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43],PARAMETER["standard_parallel_2",40],PARAMETER["latitude_of_origin",39.83333333333334],PARAMETER["central_meridian",-100],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32104"],AXIS["X",EAST],AXIS["Y",NORTH]] k 3sepsg}kNAD83 / Nevada East+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0.9999 +x_0=200000 +y_0=8000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Nevada East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",34.75],PARAMETER["central_meridian",-115.5833333333333],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",200000],PARAMETER["false_northing",8000000],AUTHORITY["EPSG","32107"],AXIS["X",EAST],AXIS["Y",NORTH]] l 9yepsg}lNAD83 / Nevada Central+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0.9999 +x_0=500000 +y_0=6000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Nevada Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",34.75],PARAMETER["central_meridian",-116.6666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",6000000],AUTHORITY["EPSG","32108"],AXIS["X",EAST],AXIS["Y",NORTH]] m 3sepsg}mNAD83 / Nevada West+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0.9999 +x_0=800000 +y_0=4000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Nevada West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",34.75],PARAMETER["central_meridian",-118.5833333333333],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",800000],PARAMETER["false_northing",4000000],AUTHORITY["EPSG","32109"],AXIS["X",EAST],AXIS["Y",NORTH]] n 7 sepsg}nNAD83 / New Hampshire+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.999966667 +x_0=300000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / New Hampshire",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",42.5],PARAMETER["central_meridian",-71.66666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",300000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32110"],AXIS["X",EAST],AXIS["Y",NORTH]] o 1cepsg}oNAD83 / New Jersey+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / New Jersey",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38.83333333333334],PARAMETER["central_meridian",-74.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",150000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32111"],AXIS["X",EAST],AXIS["Y",NORTH]] p ;sepsg}pNAD83 / New Mexico East+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999909091 +x_0=165000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / New Mexico East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-104.3333333333333],PARAMETER["scale_factor",0.999909091],PARAMETER["false_easting",165000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32112"],AXIS["X",EAST],AXIS["Y",NORTH]] |q AgYepsg}qNAD83 / New Mexico Central+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / New Mexico Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-106.25],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32113"],AXIS["X",EAST],AXIS["Y",NORTH]] r ;sepsg}rNAD83 / New Mexico West+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999916667 +x_0=830000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / New Mexico West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-107.8333333333333],PARAMETER["scale_factor",0.999916667],PARAMETER["false_easting",830000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32114"],AXIS["X",EAST],AXIS["Y",NORTH]]  s 7iepsg}sNAD83 / New York East+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / New York East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38.83333333333334],PARAMETER["central_meridian",-74.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",150000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32115"],AXIS["X",EAST],AXIS["Y",NORTH]] t =qepsg}tNAD83 / New York Central+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.9999375 +x_0=250000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / New York Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40],PARAMETER["central_meridian",-76.58333333333333],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",250000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32116"],AXIS["X",EAST],AXIS["Y",NORTH]] u 7kepsg}uNAD83 / New York West+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.9999375 +x_0=350000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / New York West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40],PARAMETER["central_meridian",-78.58333333333333],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",350000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32117"],AXIS["X",EAST],AXIS["Y",NORTH]] rr v EI epsg}vNAD83 / New York Long Island+proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666666 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / New York Long Island",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.03333333333333],PARAMETER["standard_parallel_2",40.66666666666666],PARAMETER["latitude_of_origin",40.16666666666666],PARAMETER["central_meridian",-74],PARAMETER["false_easting",300000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32118"],AXIS["X",EAST],AXIS["Y",NORTH]] kw 97oepsg}wNAD83 / North Carolina+proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333334 +lat_0=33.75 +lon_0=-79 +x_0=609601.22 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / North Carolina",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.16666666666666],PARAMETER["standard_parallel_2",34.33333333333334],PARAMETER["latitude_of_origin",33.75],PARAMETER["central_meridian",-79],PARAMETER["false_easting",609601.22],PARAMETER["false_northing",0],AUTHORITY["EPSG","32119"],AXIS["X",EAST],AXIS["Y",NORTH]] mx A1qepsg}xNAD83 / North Dakota North+proj=lcc +lat_1=48.73333333333333 +lat_2=47.43333333333333 +lat_0=47 +lon_0=-100.5 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / North Dakota North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",48.73333333333333],PARAMETER["standard_parallel_2",47.43333333333333],PARAMETER["latitude_of_origin",47],PARAMETER["central_meridian",-100.5],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32120"],AXIS["X",EAST],AXIS["Y",NORTH]] pp y AOepsg}yNAD83 / North Dakota South+proj=lcc +lat_1=47.48333333333333 +lat_2=46.18333333333333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / North Dakota South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.48333333333333],PARAMETER["standard_parallel_2",46.18333333333333],PARAMETER["latitude_of_origin",45.66666666666666],PARAMETER["central_meridian",-100.5],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32121"],AXIS["X",EAST],AXIS["Y",NORTH]] _z 13cepsg}zNAD83 / Ohio North+proj=lcc +lat_1=41.7 +lat_2=40.43333333333333 +lat_0=39.66666666666666 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Ohio North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.7],PARAMETER["standard_parallel_2",40.43333333333333],PARAMETER["latitude_of_origin",39.66666666666666],PARAMETER["central_meridian",-82.5],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32122"],AXIS["X",EAST],AXIS["Y",NORTH]] [{ 1/_epsg}{NAD83 / Ohio South+proj=lcc +lat_1=40.03333333333333 +lat_2=38.73333333333333 +lat_0=38 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Ohio South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.03333333333333],PARAMETER["standard_parallel_2",38.73333333333333],PARAMETER["latitude_of_origin",38],PARAMETER["central_meridian",-82.5],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32123"],AXIS["X",EAST],AXIS["Y",NORTH]] _| 9+cepsg}|NAD83 / Oklahoma North+proj=lcc +lat_1=36.76666666666667 +lat_2=35.56666666666667 +lat_0=35 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Oklahoma North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.76666666666667],PARAMETER["standard_parallel_2",35.56666666666667],PARAMETER["latitude_of_origin",35],PARAMETER["central_meridian",-98],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32124"],AXIS["X",EAST],AXIS["Y",NORTH]] ~~}} 9Iepsg}}NAD83 / Oklahoma South+proj=lcc +lat_1=35.23333333333333 +lat_2=33.93333333333333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Oklahoma South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",35.23333333333333],PARAMETER["standard_parallel_2",33.93333333333333],PARAMETER["latitude_of_origin",33.33333333333334],PARAMETER["central_meridian",-98],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32125"],AXIS["X",EAST],AXIS["Y",NORTH]] c~ 53gepsg}~NAD83 / Oregon North+proj=lcc +lat_1=46 +lat_2=44.33333333333334 +lat_0=43.66666666666666 +lon_0=-120.5 +x_0=2500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Oregon North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",46],PARAMETER["standard_parallel_2",44.33333333333334],PARAMETER["latitude_of_origin",43.66666666666666],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",2500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32126"],AXIS["X",EAST],AXIS["Y",NORTH]] c 53gepsg}NAD83 / Oregon South+proj=lcc +lat_1=44 +lat_2=42.33333333333334 +lat_0=41.66666666666666 +lon_0=-120.5 +x_0=1500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Oregon South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",44],PARAMETER["standard_parallel_2",42.33333333333334],PARAMETER["latitude_of_origin",41.66666666666666],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",1500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32127"],AXIS["X",EAST],AXIS["Y",NORTH]] s A7wepsg}NAD83 / Pennsylvania North+proj=lcc +lat_1=41.95 +lat_2=40.88333333333333 +lat_0=40.16666666666666 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Pennsylvania North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.95],PARAMETER["standard_parallel_2",40.88333333333333],PARAMETER["latitude_of_origin",40.16666666666666],PARAMETER["central_meridian",-77.75],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32128"],AXIS["X",EAST],AXIS["Y",NORTH]] pp  AOepsg}NAD83 / Pennsylvania South+proj=lcc +lat_1=40.96666666666667 +lat_2=39.93333333333333 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Pennsylvania South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.96666666666667],PARAMETER["standard_parallel_2",39.93333333333333],PARAMETER["latitude_of_origin",39.33333333333334],PARAMETER["central_meridian",-77.75],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32129"],AXIS["X",EAST],AXIS["Y",NORTH]]  5 oepsg}NAD83 / Rhode Island+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.99999375 +x_0=100000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Rhode Island",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.08333333333334],PARAMETER["central_meridian",-71.5],PARAMETER["scale_factor",0.99999375],PARAMETER["false_easting",100000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32130"],AXIS["X",EAST],AXIS["Y",NORTH]] c 9/gepsg}NAD83 / South Carolina+proj=lcc +lat_1=34.83333333333334 +lat_2=32.5 +lat_0=31.83333333333333 +lon_0=-81 +x_0=609600 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / South Carolina",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",34.83333333333334],PARAMETER["standard_parallel_2",32.5],PARAMETER["latitude_of_origin",31.83333333333333],PARAMETER["central_meridian",-81],PARAMETER["false_easting",609600],PARAMETER["false_northing",0],AUTHORITY["EPSG","32133"],AXIS["X",EAST],AXIS["Y",NORTH]] tt AK epsg}NAD83 / South Dakota North+proj=lcc +lat_1=45.68333333333333 +lat_2=44.41666666666666 +lat_0=43.83333333333334 +lon_0=-100 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / South Dakota North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.68333333333333],PARAMETER["standard_parallel_2",44.41666666666666],PARAMETER["latitude_of_origin",43.83333333333334],PARAMETER["central_meridian",-100],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32134"],AXIS["X",EAST],AXIS["Y",NORTH]] rr  AM epsg}NAD83 / South Dakota South+proj=lcc +lat_1=44.4 +lat_2=42.83333333333334 +lat_0=42.33333333333334 +lon_0=-100.3333333333333 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / South Dakota South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",44.4],PARAMETER["standard_parallel_2",42.83333333333334],PARAMETER["latitude_of_origin",42.33333333333334],PARAMETER["central_meridian",-100.3333333333333],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32135"],AXIS["X",EAST],AXIS["Y",NORTH]] [ /1_epsg}NAD83 / Tennessee+proj=lcc +lat_1=36.41666666666666 +lat_2=35.25 +lat_0=34.33333333333334 +lon_0=-86 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Tennessee",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.41666666666666],PARAMETER["standard_parallel_2",35.25],PARAMETER["latitude_of_origin",34.33333333333334],PARAMETER["central_meridian",-86],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32136"],AXIS["X",EAST],AXIS["Y",NORTH]] S 3%Wepsg}NAD83 / Texas North+proj=lcc +lat_1=36.18333333333333 +lat_2=34.65 +lat_0=34 +lon_0=-101.5 +x_0=200000 +y_0=1000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Texas North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.18333333333333],PARAMETER["standard_parallel_2",34.65],PARAMETER["latitude_of_origin",34],PARAMETER["central_meridian",-101.5],PARAMETER["false_easting",200000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","32137"],AXIS["X",EAST],AXIS["Y",NORTH]] dd CYepsg}NAD83 / Texas North Central+proj=lcc +lat_1=33.96666666666667 +lat_2=32.13333333333333 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000 +y_0=2000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Texas North Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",33.96666666666667],PARAMETER["standard_parallel_2",32.13333333333333],PARAMETER["latitude_of_origin",31.66666666666667],PARAMETER["central_meridian",-98.5],PARAMETER["false_easting",600000],PARAMETER["false_northing",2000000],AUTHORITY["EPSG","32138"],AXIS["X",EAST],AXIS["Y",NORTH]] VV% 7s)epsg}NAD83 / Texas Central+proj=lcc +lat_1=31.88333333333333 +lat_2=30.11666666666667 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +x_0=700000 +y_0=3000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Texas Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",31.88333333333333],PARAMETER["standard_parallel_2",30.11666666666667],PARAMETER["latitude_of_origin",29.66666666666667],PARAMETER["central_meridian",-100.3333333333333],PARAMETER["false_easting",700000],PARAMETER["false_northing",3000000],AUTHORITY["EPSG","32139"],AXIS["X",EAST],AXIS["Y",NORTH]] hh CUepsg}NAD83 / Texas South Central+proj=lcc +lat_1=30.28333333333333 +lat_2=28.38333333333333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0=4000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Texas South Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",30.28333333333333],PARAMETER["standard_parallel_2",28.38333333333333],PARAMETER["latitude_of_origin",27.83333333333333],PARAMETER["central_meridian",-99],PARAMETER["false_easting",600000],PARAMETER["false_northing",4000000],AUTHORITY["EPSG","32140"],AXIS["X",EAST],AXIS["Y",NORTH]] tt 3Y epsg}NAD83 / Texas South+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666667 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=300000 +y_0=5000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Texas South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",27.83333333333333],PARAMETER["standard_parallel_2",26.16666666666667],PARAMETER["latitude_of_origin",25.66666666666667],PARAMETER["central_meridian",-98.5],PARAMETER["false_easting",300000],PARAMETER["false_northing",5000000],AUTHORITY["EPSG","32141"],AXIS["X",EAST],AXIS["Y",NORTH]] tt 1[ epsg}NAD83 / Utah North+proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000 +y_0=1000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Utah North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.78333333333333],PARAMETER["standard_parallel_2",40.71666666666667],PARAMETER["latitude_of_origin",40.33333333333334],PARAMETER["central_meridian",-111.5],PARAMETER["false_easting",500000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","32142"],AXIS["X",EAST],AXIS["Y",NORTH]] s 5Cwepsg}NAD83 / Utah Central+proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=38.33333333333334 +lon_0=-111.5 +x_0=500000 +y_0=2000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Utah Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.65],PARAMETER["standard_parallel_2",39.01666666666667],PARAMETER["latitude_of_origin",38.33333333333334],PARAMETER["central_meridian",-111.5],PARAMETER["false_easting",500000],PARAMETER["false_northing",2000000],AUTHORITY["EPSG","32143"],AXIS["X",EAST],AXIS["Y",NORTH]] o 1Csepsg}NAD83 / Utah South+proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=36.66666666666666 +lon_0=-111.5 +x_0=500000 +y_0=3000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Utah South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.35],PARAMETER["standard_parallel_2",37.21666666666667],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-111.5],PARAMETER["false_easting",500000],PARAMETER["false_northing",3000000],AUTHORITY["EPSG","32144"],AXIS["X",EAST],AXIS["Y",NORTH]]   p +qMepsg}NAD83 / Vermont+proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964286 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Vermont",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",42.5],PARAMETER["central_meridian",-72.5],PARAMETER["scale_factor",0.999964286],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32145"],AXIS["X",EAST],AXIS["Y",NORTH]] u 9Ayepsg}NAD83 / Virginia North+proj=lcc +lat_1=39.2 +lat_2=38.03333333333333 +lat_0=37.66666666666666 +lon_0=-78.5 +x_0=3500000 +y_0=2000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Virginia North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.2],PARAMETER["standard_parallel_2",38.03333333333333],PARAMETER["latitude_of_origin",37.66666666666666],PARAMETER["central_meridian",-78.5],PARAMETER["false_easting",3500000],PARAMETER["false_northing",2000000],AUTHORITY["EPSG","32146"],AXIS["X",EAST],AXIS["Y",NORTH]] ll 9[epsg}NAD83 / Virginia South+proj=lcc +lat_1=37.96666666666667 +lat_2=36.76666666666667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3500000 +y_0=1000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Virginia South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.96666666666667],PARAMETER["standard_parallel_2",36.76666666666667],PARAMETER["latitude_of_origin",36.33333333333334],PARAMETER["central_meridian",-78.5],PARAMETER["false_easting",3500000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","32147"],AXIS["X",EAST],AXIS["Y",NORTH]] g =/kepsg}NAD83 / Washington North+proj=lcc +lat_1=48.73333333333333 +lat_2=47.5 +lat_0=47 +lon_0=-120.8333333333333 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Washington North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",48.73333333333333],PARAMETER["standard_parallel_2",47.5],PARAMETER["latitude_of_origin",47],PARAMETER["central_meridian",-120.8333333333333],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32148"],AXIS["X",EAST],AXIS["Y",NORTH]]bR RY`gnu|$+29@GNU\cjqx  '.5<CJQX_fmt{ c d h k l m n o p q r s t u v w x y z { | } ~                         ! Á$ ā% Ł& Ɓ' ǁ4 ȁ5 Ɂ6 ʁ7 ˁ8 ́9 ́: ΁; ρ< Ё= с> ҁ? Ӂ@ ԁA ՁB ցC ׁD ؁E فF ځG ہI ܁J ݁K ށL ߁M N O P Q R S T U V W X Y Z [ \ tt =O epsg}NAD83 / Washington South+proj=lcc +lat_1=47.33333333333334 +lat_2=45.83333333333334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Washington South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.33333333333334],PARAMETER["standard_parallel_2",45.83333333333334],PARAMETER["latitude_of_origin",45.33333333333334],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32149"],AXIS["X",EAST],AXIS["Y",NORTH]] ; C}?epsg}NAD83 / West Virginia North+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79.5 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / West Virginia North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.25],PARAMETER["standard_parallel_2",39],PARAMETER["latitude_of_origin",38.5],PARAMETER["central_meridian",-79.5],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32150"],AXIS["X",EAST],AXIS["Y",NORTH]] i C+mepsg}NAD83 / West Virginia South+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / West Virginia South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.88333333333333],PARAMETER["standard_parallel_2",37.48333333333333],PARAMETER["latitude_of_origin",37],PARAMETER["central_meridian",-81],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32151"],AXIS["X",EAST],AXIS["Y",NORTH]] || ;Iepsg}NAD83 / Wisconsin North+proj=lcc +lat_1=46.76666666666667 +lat_2=45.56666666666667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Wisconsin North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",46.76666666666667],PARAMETER["standard_parallel_2",45.56666666666667],PARAMETER["latitude_of_origin",45.16666666666666],PARAMETER["central_meridian",-90],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32152"],AXIS["X",EAST],AXIS["Y",NORTH]] Q ?Uepsg}NAD83 / Wisconsin Central+proj=lcc +lat_1=45.5 +lat_2=44.25 +lat_0=43.83333333333334 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Wisconsin Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.5],PARAMETER["standard_parallel_2",44.25],PARAMETER["latitude_of_origin",43.83333333333334],PARAMETER["central_meridian",-90],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32153"],AXIS["X",EAST],AXIS["Y",NORTH]] a ;+eepsg}NAD83 / Wisconsin South+proj=lcc +lat_1=44.06666666666667 +lat_2=42.73333333333333 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Wisconsin South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",44.06666666666667],PARAMETER["standard_parallel_2",42.73333333333333],PARAMETER["latitude_of_origin",42],PARAMETER["central_meridian",-90],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32154"],AXIS["X",EAST],AXIS["Y",NORTH]]  5mepsg}NAD83 / Wyoming East+proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.9999375 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Wyoming East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40.5],PARAMETER["central_meridian",-105.1666666666667],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32155"],AXIS["X",EAST],AXIS["Y",NORTH]] * Eepsg}NAD83 / Wyoming East Central+proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.9999375 +x_0=400000 +y_0=100000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Wyoming East Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40.5],PARAMETER["central_meridian",-107.3333333333333],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",400000],PARAMETER["false_northing",100000],AUTHORITY["EPSG","32156"],AXIS["X",EAST],AXIS["Y",NORTH]] ;(5BO\iv,9FS`mz #0=JWdq~ }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg}   Eqgepsg}NAD83 / Wyoming West Central+proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.9999375 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Wyoming West Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40.5],PARAMETER["central_meridian",-108.75],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32157"],AXIS["X",EAST],AXIS["Y",NORTH]]  5wepsg}NAD83 / Wyoming West+proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.9999375 +x_0=800000 +y_0=100000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Wyoming West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40.5],PARAMETER["central_meridian",-110.0833333333333],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",800000],PARAMETER["false_northing",100000],AUTHORITY["EPSG","32158"],AXIS["X",EAST],AXIS["Y",NORTH]] BB9! Mq=epsg}NAD83 / Puerto Rico & Virgin Is.+proj=lcc +lat_1=18.43333333333333 +lat_2=18.03333333333333 +lat_0=17.83333333333333 +lon_0=-66.43333333333334 +x_0=200000 +y_0=200000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Puerto Rico & Virgin Is.",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",18.43333333333333],PARAMETER["standard_parallel_2",18.03333333333333],PARAMETER["latitude_of_origin",17.83333333333333],PARAMETER["central_meridian",-66.43333333333334],PARAMETER["false_easting",200000],PARAMETER["false_northing",200000],AUTHORITY["EPSG","32161"],AXIS["X",EAST],AXIS["Y",NORTH]] $ 9yepsg}NAD83 / BLM 14N (ftUS)+proj=tmerc +lat_0=0 +lon_0=-99 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / BLM 14N (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",1640416.67],PARAMETER["false_northing",0],AUTHORITY["EPSG","32164"],AXIS["X",EAST],AXIS["Y",NORTH]] % 9yepsg}NAD83 / BLM 15N (ftUS)+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / BLM 15N (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",1640416.67],PARAMETER["false_northing",0],AUTHORITY["EPSG","32165"],AXIS["X",EAST],AXIS["Y",NORTH]] & 9yepsg}NAD83 / BLM 16N (ftUS)+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / BLM 16N (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-87],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",1640416.67],PARAMETER["false_northing",0],AUTHORITY["EPSG","32166"],AXIS["X",EAST],AXIS["Y",NORTH]] ' 9yepsg}NAD83 / BLM 17N (ftUS)+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / BLM 17N (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",1640416.67],PARAMETER["false_northing",0],AUTHORITY["EPSG","32167"],AXIS["X",EAST],AXIS["Y",NORTH]] j4 5aGepsg}NAD83 / SCoPQ zone 2+proj=tmerc +lat_0=0 +lon_0=-55.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / SCoPQ zone 2",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-55.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","32180"],AXIS["X",EAST],AXIS["Y",NORTH]] h5 1]Kepsg}NAD83 / MTM zone 1+proj=tmerc +lat_0=0 +lon_0=-53 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / MTM zone 1",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-53],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","32181"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] h6 1]Kepsg}NAD83 / MTM zone 2+proj=tmerc +lat_0=0 +lon_0=-56 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / MTM zone 2",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-56],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","32182"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] l7 1aOepsg}NAD83 / MTM zone 3+proj=tmerc +lat_0=0 +lon_0=-58.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / MTM zone 3",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-58.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","32183"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] l8 1aOepsg}NAD83 / MTM zone 4+proj=tmerc +lat_0=0 +lon_0=-61.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / MTM zone 4",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-61.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","32184"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] l9 1aOepsg}NAD83 / MTM zone 5+proj=tmerc +lat_0=0 +lon_0=-64.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / MTM zone 5",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-64.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","32185"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] l: 1aOepsg}NAD83 / MTM zone 6+proj=tmerc +lat_0=0 +lon_0=-67.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / MTM zone 6",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-67.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","32186"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] l; 1aOepsg}NAD83 / MTM zone 7+proj=tmerc +lat_0=0 +lon_0=-70.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / MTM zone 7",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-70.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","32187"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] l< 1aOepsg}NAD83 / MTM zone 8+proj=tmerc +lat_0=0 +lon_0=-73.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / MTM zone 8",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-73.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","32188"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] l= 1aOepsg}NAD83 / MTM zone 9+proj=tmerc +lat_0=0 +lon_0=-76.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / MTM zone 9",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-76.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","32189"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]]   n> 3aQepsg}NAD83 / MTM zone 10+proj=tmerc +lat_0=0 +lon_0=-79.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / MTM zone 10",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-79.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","32190"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] u? 3a_epsg}NAD83 / MTM zone 11+proj=tmerc +lat_0=0 +lon_0=-82.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / MTM zone 11",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-82.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","32191"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]   q@ 3][epsg}NAD83 / MTM zone 12+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / MTM zone 12",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","32192"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]   qA 3][epsg}NAD83 / MTM zone 13+proj=tmerc +lat_0=0 +lon_0=-84 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / MTM zone 13",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-84],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","32193"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]   qB 3][epsg}NAD83 / MTM zone 14+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / MTM zone 14",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-87],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","32194"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]   qC 3][epsg}NAD83 / MTM zone 15+proj=tmerc +lat_0=0 +lon_0=-90 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / MTM zone 15",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-90],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","32195"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]   qD 3][epsg}NAD83 / MTM zone 16+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / MTM zone 16",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-93],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","32196"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]   qE 3][epsg}NAD83 / MTM zone 17+proj=tmerc +lat_0=0 +lon_0=-96 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / MTM zone 17",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-96],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","32197"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] F 9i!epsg}NAD83 / Quebec Lambert+proj=lcc +lat_1=60 +lat_2=46 +lat_0=44 +lon_0=-68.5 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Quebec Lambert",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",60],PARAMETER["standard_parallel_2",46],PARAMETER["latitude_of_origin",44],PARAMETER["central_meridian",-68.5],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","32198"],AXIS["X",EAST],AXIS["Y",NORTH]] pp G AOepsg}NAD83 / Louisiana Offshore+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666667 +lat_0=25.5 +lon_0=-91.33333333333333 +x_0=1000000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Louisiana Offshore",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",27.83333333333333],PARAMETER["standard_parallel_2",26.16666666666667],PARAMETER["latitude_of_origin",25.5],PARAMETER["central_meridian",-91.33333333333333],PARAMETER["false_easting",1000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32199"],AXIS["X",EAST],AXIS["Y",NORTH]] YY"I5m-epsg}WGS 72 / UTM zone 1N+proj=utm +zone=1 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 1N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-177],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32201"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] YY"J5m-epsg}WGS 72 / UTM zone 2N+proj=utm +zone=2 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 2N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-171],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32202"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] YY"K5m-epsg}WGS 72 / UTM zone 3N+proj=utm +zone=3 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 3N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32203"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] YY"L5m-epsg}WGS 72 / UTM zone 4N+proj=utm +zone=4 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 4N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-159],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32204"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] YY"M5m-epsg}WGS 72 / UTM zone 5N+proj=utm +zone=5 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 5N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-153],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32205"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] YY"N5m-epsg}WGS 72 / UTM zone 6N+proj=utm +zone=6 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 6N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-147],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32206"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] YY"O5m-epsg}WGS 72 / UTM zone 7N+proj=utm +zone=7 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 7N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-141],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32207"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] YY"P5m-epsg}WGS 72 / UTM zone 8N+proj=utm +zone=8 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 8N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-135],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32208"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] YY"Q5m-epsg}WGS 72 / UTM zone 9N+proj=utm +zone=9 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 9N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-129],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32209"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] VV%R7o/epsg}WGS 72 / UTM zone 10N+proj=utm +zone=10 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 10N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-123],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32210"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] VV%S7o/epsg}WGS 72 / UTM zone 11N+proj=utm +zone=11 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 11N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32211"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] VV%T7o/epsg}WGS 72 / UTM zone 12N+proj=utm +zone=12 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 12N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32212"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] VV%U7o/epsg}WGS 72 / UTM zone 13N+proj=utm +zone=13 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 13N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32213"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW$V7o-epsg}WGS 72 / UTM zone 14N+proj=utm +zone=14 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 14N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32214"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW$W7o-epsg}WGS 72 / UTM zone 15N+proj=utm +zone=15 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 15N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32215"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW$X7o-epsg}WGS 72 / UTM zone 16N+proj=utm +zone=16 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 16N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-87],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32216"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW$Y7o-epsg}WGS 72 / UTM zone 17N+proj=utm +zone=17 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 17N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32217"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW$Z7o-epsg}WGS 72 / UTM zone 18N+proj=utm +zone=18 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 18N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32218"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW$[7o-epsg}WGS 72 / UTM zone 19N+proj=utm +zone=19 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 19N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32219"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW$\7o-epsg}WGS 72 / UTM zone 20N+proj=utm +zone=20 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 20N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32220"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW$]7o-epsg}WGS 72 / UTM zone 21N+proj=utm +zone=21 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 21N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32221"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW$^7o-epsg}WGS 72 / UTM zone 22N+proj=utm +zone=22 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 22N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32222"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW$_7o-epsg}WGS 72 / UTM zone 23N+proj=utm +zone=23 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 23N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32223"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW$`7o-epsg}WGS 72 / UTM zone 24N+proj=utm +zone=24 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 24N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32224"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW$a7o-epsg}WGS 72 / UTM zone 25N+proj=utm +zone=25 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 25N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32225"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW$b7o-epsg}WGS 72 / UTM zone 26N+proj=utm +zone=26 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 26N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32226"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW$c7o-epsg}WGS 72 / UTM zone 27N+proj=utm +zone=27 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 27N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-21],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32227"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW$d7o-epsg}WGS 72 / UTM zone 28N+proj=utm +zone=28 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 28N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32228"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] XX#e7o+epsg}WGS 72 / UTM zone 29N+proj=utm +zone=29 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 29N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32229"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] XX#f7o+epsg}WGS 72 / UTM zone 30N+proj=utm +zone=30 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 30N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32230"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] YY"g7o)epsg}WGS 72 / UTM zone 31N+proj=utm +zone=31 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 31N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32231"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] YY"h7o)epsg}WGS 72 / UTM zone 32N+proj=utm +zone=32 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 32N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32232"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] XX#i7o+epsg}WGS 72 / UTM zone 33N+proj=utm +zone=33 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 33N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32233"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ;(5BO\iv,9FS`mz #0=JWdq~ }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~-epsg~- ~.epsg~. ~/epsg~/ ~0epsg~0 ~1epsg~1 ~2epsg~2 ~3epsg~3 ~4epsg~4 ~5epsg~5 XX#j7o+epsg}WGS 72 / UTM zone 34N+proj=utm +zone=34 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 34N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32234"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] XX#k7o+epsg}WGS 72 / UTM zone 35N+proj=utm +zone=35 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 35N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32235"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] XX#l7o+epsg}WGS 72 / UTM zone 36N+proj=utm +zone=36 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 36N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32236"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] XX#m7o+epsg}WGS 72 / UTM zone 37N+proj=utm +zone=37 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 37N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32237"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] XX#n7o+epsg}WGS 72 / UTM zone 38N+proj=utm +zone=38 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 38N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32238"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] XX#o7o+epsg}WGS 72 / UTM zone 39N+proj=utm +zone=39 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 39N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32239"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] XX#p7o+epsg}WGS 72 / UTM zone 40N+proj=utm +zone=40 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 40N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32240"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] XX#q7o+epsg}WGS 72 / UTM zone 41N+proj=utm +zone=41 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 41N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32241"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] XX#r7o+epsg}WGS 72 / UTM zone 42N+proj=utm +zone=42 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 42N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32242"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] XX#s7o+epsg}WGS 72 / UTM zone 43N+proj=utm +zone=43 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 43N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32243"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] XX#t7o+epsg}WGS 72 / UTM zone 44N+proj=utm +zone=44 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 44N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32244"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] XX#u7o+epsg}WGS 72 / UTM zone 45N+proj=utm +zone=45 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 45N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32245"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] XX#v7o+epsg}WGS 72 / UTM zone 46N+proj=utm +zone=46 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 46N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32246"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] XX#w7o+epsg}WGS 72 / UTM zone 47N+proj=utm +zone=47 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 47N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32247"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW$x7o-epsg}WGS 72 / UTM zone 48N+proj=utm +zone=48 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 48N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32248"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW$y7o-epsg}WGS 72 / UTM zone 49N+proj=utm +zone=49 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 49N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32249"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW$z7o-epsg}WGS 72 / UTM zone 50N+proj=utm +zone=50 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 50N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32250"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW${7o-epsg}WGS 72 / UTM zone 51N+proj=utm +zone=51 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 51N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32251"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW$|7o-epsg}WGS 72 / UTM zone 52N+proj=utm +zone=52 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 52N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32252"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW$}7o-epsg}WGS 72 / UTM zone 53N+proj=utm +zone=53 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 53N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32253"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW$~7o-epsg}WGS 72 / UTM zone 54N+proj=utm +zone=54 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 54N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",141],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32254"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW$7o-epsg}WGS 72 / UTM zone 55N+proj=utm +zone=55 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 55N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",147],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32255"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW$7o-epsg~WGS 72 / UTM zone 56N+proj=utm +zone=56 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 56N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",153],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32256"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW$7o-epsg~WGS 72 / UTM zone 57N+proj=utm +zone=57 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 57N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",159],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32257"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW$7o-epsg~WGS 72 / UTM zone 58N+proj=utm +zone=58 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 58N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32258"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW$7o-epsg~WGS 72 / UTM zone 59N+proj=utm +zone=59 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 59N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",171],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32259"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW$7o-epsg~WGS 72 / UTM zone 60N+proj=utm +zone=60 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 60N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",177],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32260"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] KK0-5{;epsg~-WGS 72 / UTM zone 1S+proj=utm +zone=1 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 1S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-177],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32301"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] KK0.5{;epsg~.WGS 72 / UTM zone 2S+proj=utm +zone=2 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 2S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-171],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32302"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] KK0/5{;epsg~/WGS 72 / UTM zone 3S+proj=utm +zone=3 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 3S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32303"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] KK005{;epsg~0WGS 72 / UTM zone 4S+proj=utm +zone=4 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 4S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-159],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32304"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]bR URY`gnu|$+29@GNU\cjqx  '.5<CJQX_fmt{ ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~       - . / 0 1 2 3 4 !5 "6 #7 $8 %9 &: '; (< )= *> +? ,@ -A .B /C 0D 1E 2F 3G 4H 5I 6J 7K 8L 9M ;N Q ?R @S AT BU CV DW EX FY GZ H[ I\ J] K^ L_ M` Na Ob Pc Qd Re Sf Tg KK015{;epsg~1WGS 72 / UTM zone 5S+proj=utm +zone=5 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 5S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-153],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32305"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] KK025{;epsg~2WGS 72 / UTM zone 6S+proj=utm +zone=6 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 6S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-147],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32306"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] KK035{;epsg~3WGS 72 / UTM zone 7S+proj=utm +zone=7 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 7S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-141],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32307"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] KK045{;epsg~4WGS 72 / UTM zone 8S+proj=utm +zone=8 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 8S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-135],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32308"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] KK055{;epsg~5WGS 72 / UTM zone 9S+proj=utm +zone=9 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 9S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-129],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32309"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] HH367}=epsg~6WGS 72 / UTM zone 10S+proj=utm +zone=10 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 10S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-123],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32310"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] HH377}=epsg~7WGS 72 / UTM zone 11S+proj=utm +zone=11 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 11S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32311"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] HH387}=epsg~8WGS 72 / UTM zone 12S+proj=utm +zone=12 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 12S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32312"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] HH397}=epsg~9WGS 72 / UTM zone 13S+proj=utm +zone=13 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 13S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32313"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] II2:7};epsg~:WGS 72 / UTM zone 14S+proj=utm +zone=14 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 14S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32314"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] II2;7};epsg~;WGS 72 / UTM zone 15S+proj=utm +zone=15 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 15S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32315"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] II2<7};epsg~7};epsg~>WGS 72 / UTM zone 18S+proj=utm +zone=18 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 18S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32318"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] II2?7};epsg~?WGS 72 / UTM zone 19S+proj=utm +zone=19 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 19S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32319"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] II2@7};epsg~@WGS 72 / UTM zone 20S+proj=utm +zone=20 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 20S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32320"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] II2A7};epsg~AWGS 72 / UTM zone 21S+proj=utm +zone=21 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 21S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32321"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] II2B7};epsg~BWGS 72 / UTM zone 22S+proj=utm +zone=22 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 22S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32322"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] II2C7};epsg~CWGS 72 / UTM zone 23S+proj=utm +zone=23 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 23S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32323"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] II2D7};epsg~DWGS 72 / UTM zone 24S+proj=utm +zone=24 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 24S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32324"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] II2E7};epsg~EWGS 72 / UTM zone 25S+proj=utm +zone=25 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 25S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32325"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] II2F7};epsg~FWGS 72 / UTM zone 26S+proj=utm +zone=26 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 26S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32326"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] II2G7};epsg~GWGS 72 / UTM zone 27S+proj=utm +zone=27 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 27S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-21],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32327"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] II2H7};epsg~HWGS 72 / UTM zone 28S+proj=utm +zone=28 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 28S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32328"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] JJ1I7}9epsg~IWGS 72 / UTM zone 29S+proj=utm +zone=29 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 29S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32329"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] JJ1J7}9epsg~JWGS 72 / UTM zone 30S+proj=utm +zone=30 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 30S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32330"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] KK0K7}7epsg~KWGS 72 / UTM zone 31S+proj=utm +zone=31 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 31S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32331"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] KK0L7}7epsg~LWGS 72 / UTM zone 32S+proj=utm +zone=32 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 32S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32332"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] JJ1M7}9epsg~MWGS 72 / UTM zone 33S+proj=utm +zone=33 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 33S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32333"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ;(5BO\iv,9FS`mz #0=JWdq~ ~7epsg~7 ~8epsg~8 ~9epsg~9 ~:epsg~: ~;epsg~; ~epsg~> ~?epsg~? ~@epsg~@ ~Aepsg~A ~Bepsg~B ~Cepsg~C ~Depsg~D ~Eepsg~E ~Fepsg~F ~Gepsg~G ~Hepsg~H ~Iepsg~I ~Jepsg~J ~Kepsg~K ~Lepsg~L ~Mepsg~M ~Nepsg~N ~Oepsg~O ~Pepsg~P ~Qepsg~Q ~Repsg~R ~Sepsg~S ~Tepsg~T ~Uepsg~U ~Vepsg~V ~Wepsg~W ~Xepsg~X ~Yepsg~Y ~Zepsg~Z ~[epsg~[ ~\epsg~\ ~]epsg~] ~^epsg~^ ~_epsg~_ ~`epsg~` ~aepsg~a ~bepsg~b ~cepsg~c ~depsg~d ~eepsg~e ~fepsg~f ~gepsg~g ~hepsg~h ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ JJ1N7}9epsg~NWGS 72 / UTM zone 34S+proj=utm +zone=34 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 34S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32334"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] JJ1O7}9epsg~OWGS 72 / UTM zone 35S+proj=utm +zone=35 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 35S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32335"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] JJ1P7}9epsg~PWGS 72 / UTM zone 36S+proj=utm +zone=36 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 36S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32336"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] JJ1Q7}9epsg~QWGS 72 / UTM zone 37S+proj=utm +zone=37 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 37S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32337"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] JJ1R7}9epsg~RWGS 72 / UTM zone 38S+proj=utm +zone=38 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 38S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32338"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] JJ1S7}9epsg~SWGS 72 / UTM zone 39S+proj=utm +zone=39 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 39S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32339"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] JJ1T7}9epsg~TWGS 72 / UTM zone 40S+proj=utm +zone=40 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 40S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32340"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] JJ1U7}9epsg~UWGS 72 / UTM zone 41S+proj=utm +zone=41 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 41S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32341"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] JJ1V7}9epsg~VWGS 72 / UTM zone 42S+proj=utm +zone=42 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 42S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32342"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] JJ1W7}9epsg~WWGS 72 / UTM zone 43S+proj=utm +zone=43 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 43S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32343"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] JJ1X7}9epsg~XWGS 72 / UTM zone 44S+proj=utm +zone=44 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 44S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32344"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] JJ1Y7}9epsg~YWGS 72 / UTM zone 45S+proj=utm +zone=45 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 45S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32345"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] JJ1Z7}9epsg~ZWGS 72 / UTM zone 46S+proj=utm +zone=46 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 46S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32346"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] JJ1[7}9epsg~[WGS 72 / UTM zone 47S+proj=utm +zone=47 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 47S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32347"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] II2\7};epsg~\WGS 72 / UTM zone 48S+proj=utm +zone=48 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 48S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32348"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] II2]7};epsg~]WGS 72 / UTM zone 49S+proj=utm +zone=49 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 49S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32349"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] II2^7};epsg~^WGS 72 / UTM zone 50S+proj=utm +zone=50 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 50S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32350"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] II2_7};epsg~_WGS 72 / UTM zone 51S+proj=utm +zone=51 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 51S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32351"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] II2`7};epsg~`WGS 72 / UTM zone 52S+proj=utm +zone=52 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 52S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32352"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] II2a7};epsg~aWGS 72 / UTM zone 53S+proj=utm +zone=53 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 53S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32353"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] II2b7};epsg~bWGS 72 / UTM zone 54S+proj=utm +zone=54 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 54S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",141],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32354"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] II2c7};epsg~cWGS 72 / UTM zone 55S+proj=utm +zone=55 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 55S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",147],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32355"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] II2d7};epsg~dWGS 72 / UTM zone 56S+proj=utm +zone=56 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 56S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",153],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32356"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] II2e7};epsg~eWGS 72 / UTM zone 57S+proj=utm +zone=57 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 57S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",159],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32357"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] II2f7};epsg~fWGS 72 / UTM zone 58S+proj=utm +zone=58 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 58S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32358"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] II2g7};epsg~gWGS 72 / UTM zone 59S+proj=utm +zone=59 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 59S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",171],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32359"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] II2h7};epsg~hWGS 72 / UTM zone 60S+proj=utm +zone=60 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 60S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",177],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32360"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  9//epsg~WGS 72BE / UTM zone 1N+proj=utm +zone=1 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 1N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-177],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32401"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  9//epsg~WGS 72BE / UTM zone 2N+proj=utm +zone=2 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 2N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-171],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32402"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  9//epsg~WGS 72BE / UTM zone 3N+proj=utm +zone=3 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 3N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32403"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  9//epsg~WGS 72BE / UTM zone 4N+proj=utm +zone=4 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 4N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-159],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32404"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  9//epsg~WGS 72BE / UTM zone 5N+proj=utm +zone=5 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 5N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-153],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32405"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  9//epsg~WGS 72BE / UTM zone 6N+proj=utm +zone=6 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 6N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-147],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32406"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  9//epsg~WGS 72BE / UTM zone 7N+proj=utm +zone=7 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 7N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-141],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32407"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  9//epsg~WGS 72BE / UTM zone 8N+proj=utm +zone=8 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 8N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-135],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32408"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  9//epsg~WGS 72BE / UTM zone 9N+proj=utm +zone=9 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 9N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-129],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32409"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]   ;11epsg~WGS 72BE / UTM zone 10N+proj=utm +zone=10 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 10N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-123],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32410"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]   ;11epsg~WGS 72BE / UTM zone 11N+proj=utm +zone=11 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 11N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32411"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]   ;11epsg~WGS 72BE / UTM zone 12N+proj=utm +zone=12 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 12N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32412"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]   ;11epsg~WGS 72BE / UTM zone 13N+proj=utm +zone=13 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 13N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32413"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]   ;1/epsg~WGS 72BE / UTM zone 14N+proj=utm +zone=14 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 14N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32414"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]   ;1/epsg~WGS 72BE / UTM zone 15N+proj=utm +zone=15 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 15N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32415"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  ;1/epsg~WGS 72BE / UTM zone 16N+proj=utm +zone=16 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 16N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-87],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32416"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  ! ;1/epsg~WGS 72BE / UTM zone 17N+proj=utm +zone=17 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 17N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32417"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  " ;1/epsg~WGS 72BE / UTM zone 18N+proj=utm +zone=18 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 18N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32418"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  # ;1/epsg~WGS 72BE / UTM zone 19N+proj=utm +zone=19 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 19N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32419"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  $ ;1/epsg~WGS 72BE / UTM zone 20N+proj=utm +zone=20 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 20N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32420"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  % ;1/epsg~WGS 72BE / UTM zone 21N+proj=utm +zone=21 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 21N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32421"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  & ;1/epsg~WGS 72BE / UTM zone 22N+proj=utm +zone=22 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 22N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32422"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  ' ;1/epsg~WGS 72BE / UTM zone 23N+proj=utm +zone=23 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 23N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32423"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  ( ;1/epsg~WGS 72BE / UTM zone 24N+proj=utm +zone=24 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 24N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32424"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  ) ;1/epsg~WGS 72BE / UTM zone 25N+proj=utm +zone=25 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 25N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32425"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  * ;1/epsg~WGS 72BE / UTM zone 26N+proj=utm +zone=26 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 26N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32426"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  + ;1/epsg~WGS 72BE / UTM zone 27N+proj=utm +zone=27 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 27N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-21],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32427"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  , ;1/epsg~WGS 72BE / UTM zone 28N+proj=utm +zone=28 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 28N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32428"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] - ;1-epsg~WGS 72BE / UTM zone 29N+proj=utm +zone=29 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 29N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32429"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] . ;1-epsg~WGS 72BE / UTM zone 30N+proj=utm +zone=30 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 30N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32430"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] / ;1+epsg~WGS 72BE / UTM zone 31N+proj=utm +zone=31 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 31N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32431"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 0 ;1+epsg~WGS 72BE / UTM zone 32N+proj=utm +zone=32 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 32N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32432"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 1 ;1-epsg~WGS 72BE / UTM zone 33N+proj=utm +zone=33 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 33N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32433"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ;(5BO\iv,9FS`mz #0=JWdq~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ 2 ;1-epsg~WGS 72BE / UTM zone 34N+proj=utm +zone=34 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 34N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32434"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 3 ;1-epsg~WGS 72BE / UTM zone 35N+proj=utm +zone=35 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 35N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32435"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 4 ;1-epsg~WGS 72BE / UTM zone 36N+proj=utm +zone=36 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 36N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32436"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 5 ;1-epsg~WGS 72BE / UTM zone 37N+proj=utm +zone=37 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 37N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32437"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 6 ;1-epsg~WGS 72BE / UTM zone 38N+proj=utm +zone=38 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 38N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32438"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 7 ;1-epsg~WGS 72BE / UTM zone 39N+proj=utm +zone=39 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 39N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32439"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 8 ;1-epsg~WGS 72BE / UTM zone 40N+proj=utm +zone=40 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 40N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32440"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 9 ;1-epsg~WGS 72BE / UTM zone 41N+proj=utm +zone=41 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 41N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32441"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] : ;1-epsg~WGS 72BE / UTM zone 42N+proj=utm +zone=42 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 42N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32442"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ; ;1-epsg~WGS 72BE / UTM zone 43N+proj=utm +zone=43 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 43N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32443"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]bR RY`gnu|$+29@GNU\cjqx  '.5<CJQX_fmt{ V W X Y Z [ \ ] ^ _ ` a b c d e f! g" h# i$ j% k& l' m( n) o* p+ q, r- s. t/ u0 v1 x2 y3 z4 {5 |6 }7 ~8 9 : ; < = > ? @ A B C D E F G H I J K L u v w x y z { | } ~                       < ;1-epsg~WGS 72BE / UTM zone 44N+proj=utm +zone=44 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 44N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32444"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] = ;1-epsg~WGS 72BE / UTM zone 45N+proj=utm +zone=45 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 45N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32445"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] > ;1-epsg~WGS 72BE / UTM zone 46N+proj=utm +zone=46 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 46N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32446"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ? ;1-epsg~WGS 72BE / UTM zone 47N+proj=utm +zone=47 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 47N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32447"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  @ ;1/epsg~WGS 72BE / UTM zone 48N+proj=utm +zone=48 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 48N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32448"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  A ;1/epsg~WGS 72BE / UTM zone 49N+proj=utm +zone=49 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 49N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32449"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  B ;1/epsg~WGS 72BE / UTM zone 50N+proj=utm +zone=50 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 50N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32450"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  C ;1/epsg~WGS 72BE / UTM zone 51N+proj=utm +zone=51 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 51N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32451"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  D ;1/epsg~WGS 72BE / UTM zone 52N+proj=utm +zone=52 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 52N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32452"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  E ;1/epsg~WGS 72BE / UTM zone 53N+proj=utm +zone=53 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 53N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32453"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  F ;1/epsg~WGS 72BE / UTM zone 54N+proj=utm +zone=54 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 54N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",141],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32454"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  G ;1/epsg~WGS 72BE / UTM zone 55N+proj=utm +zone=55 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 55N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",147],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32455"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  H ;1/epsg~WGS 72BE / UTM zone 56N+proj=utm +zone=56 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 56N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",153],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32456"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  I ;1/epsg~WGS 72BE / UTM zone 57N+proj=utm +zone=57 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 57N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",159],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32457"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  J ;1/epsg~WGS 72BE / UTM zone 58N+proj=utm +zone=58 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 58N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32458"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  K ;1/epsg~WGS 72BE / UTM zone 59N+proj=utm +zone=59 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 59N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",171],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32459"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  L ;1/epsg~WGS 72BE / UTM zone 60N+proj=utm +zone=60 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 60N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",177],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32460"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] u 9==epsg~WGS 72BE / UTM zone 1S+proj=utm +zone=1 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 1S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-177],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32501"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] v 9==epsg~WGS 72BE / UTM zone 2S+proj=utm +zone=2 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 2S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-171],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32502"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] w 9==epsg~WGS 72BE / UTM zone 3S+proj=utm +zone=3 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 3S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32503"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] x 9==epsg~WGS 72BE / UTM zone 4S+proj=utm +zone=4 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 4S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-159],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32504"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] y 9==epsg~WGS 72BE / UTM zone 5S+proj=utm +zone=5 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 5S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-153],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32505"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] z 9==epsg~WGS 72BE / UTM zone 6S+proj=utm +zone=6 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 6S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-147],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32506"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] { 9==epsg~WGS 72BE / UTM zone 7S+proj=utm +zone=7 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 7S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-141],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32507"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] | 9==epsg~WGS 72BE / UTM zone 8S+proj=utm +zone=8 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 8S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-135],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32508"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] } 9==epsg~WGS 72BE / UTM zone 9S+proj=utm +zone=9 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 9S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-129],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32509"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ~ ;??epsg~WGS 72BE / UTM zone 10S+proj=utm +zone=10 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 10S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-123],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32510"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  ;??epsg~WGS 72BE / UTM zone 11S+proj=utm +zone=11 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 11S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32511"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  ;??epsgWGS 72BE / UTM zone 12S+proj=utm +zone=12 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 12S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32512"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  ;??epsgWGS 72BE / UTM zone 13S+proj=utm +zone=13 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 13S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32513"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  ;?=epsgWGS 72BE / UTM zone 14S+proj=utm +zone=14 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 14S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32514"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  ;?=epsgWGS 72BE / UTM zone 15S+proj=utm +zone=15 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 15S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32515"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  ;?=epsgWGS 72BE / UTM zone 16S+proj=utm +zone=16 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 16S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-87],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32516"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  ;?=epsgWGS 72BE / UTM zone 17S+proj=utm +zone=17 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 17S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32517"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  ;?=epsgWGS 72BE / UTM zone 18S+proj=utm +zone=18 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 18S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32518"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  ;?=epsgWGS 72BE / UTM zone 19S+proj=utm +zone=19 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 19S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32519"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  ;?=epsgWGS 72BE / UTM zone 20S+proj=utm +zone=20 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 20S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32520"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  ;?=epsg WGS 72BE / UTM zone 21S+proj=utm +zone=21 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 21S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32521"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  ;?=epsg WGS 72BE / UTM zone 22S+proj=utm +zone=22 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 22S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32522"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  ;?=epsg WGS 72BE / UTM zone 23S+proj=utm +zone=23 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 23S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32523"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  ;?=epsg WGS 72BE / UTM zone 24S+proj=utm +zone=24 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 24S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32524"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  ;?=epsg WGS 72BE / UTM zone 25S+proj=utm +zone=25 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 25S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32525"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  ;?=epsgWGS 72BE / UTM zone 26S+proj=utm +zone=26 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 26S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32526"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  ;?=epsgWGS 72BE / UTM zone 27S+proj=utm +zone=27 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 27S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-21],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32527"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  ;?=epsgWGS 72BE / UTM zone 28S+proj=utm +zone=28 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 28S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32528"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  ;?;epsgWGS 72BE / UTM zone 29S+proj=utm +zone=29 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 29S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32529"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  ;?;epsgWGS 72BE / UTM zone 30S+proj=utm +zone=30 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 30S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32530"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  ;?9epsgWGS 72BE / UTM zone 31S+proj=utm +zone=31 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 31S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32531"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  ;?9epsgWGS 72BE / UTM zone 32S+proj=utm +zone=32 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 32S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32532"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  ;?;epsgWGS 72BE / UTM zone 33S+proj=utm +zone=33 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 33S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32533"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ;(5BO\iv,9FS`mz #0=JWdq~ ~epsg~ epsg epsg epsg epsg epsg epsg epsg epsg epsg  epsg  epsg  epsg  epsg  epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg  epsg !epsg! "epsg" #epsg# $epsg$ %epsg% &epsg& 'epsg' (epsg( )epsg) *epsg* +epsg+ ,epsg, -epsg- .epsg. /epsg/ 0epsg0 YepsgY ZepsgZ [epsg[ \epsg\ ]epsg] ^epsg^ _epsg_ `epsg` aepsga  ;?;epsgWGS 72BE / UTM zone 34S+proj=utm +zone=34 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 34S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32534"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  ;?;epsgWGS 72BE / UTM zone 35S+proj=utm +zone=35 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 35S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32535"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  ;?;epsgWGS 72BE / UTM zone 36S+proj=utm +zone=36 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 36S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32536"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  ;?;epsgWGS 72BE / UTM zone 37S+proj=utm +zone=37 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 37S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32537"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  ;?;epsgWGS 72BE / UTM zone 38S+proj=utm +zone=38 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 38S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32538"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  ;?;epsgWGS 72BE / UTM zone 39S+proj=utm +zone=39 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 39S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32539"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  ;?;epsgWGS 72BE / UTM zone 40S+proj=utm +zone=40 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 40S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32540"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  ;?;epsgWGS 72BE / UTM zone 41S+proj=utm +zone=41 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 41S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32541"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  ;?;epsgWGS 72BE / UTM zone 42S+proj=utm +zone=42 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 42S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32542"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  ;?;epsgWGS 72BE / UTM zone 43S+proj=utm +zone=43 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 43S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32543"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]  ;?;epsg WGS 72BE / UTM zone 44S+proj=utm +zone=44 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 44S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32544"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ! ;?;epsg!WGS 72BE / UTM zone 45S+proj=utm +zone=45 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 45S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32545"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] " ;?;epsg"WGS 72BE / UTM zone 46S+proj=utm +zone=46 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 46S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32546"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] # ;?;epsg#WGS 72BE / UTM zone 47S+proj=utm +zone=47 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 47S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32547"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] $ ;?=epsg$WGS 72BE / UTM zone 48S+proj=utm +zone=48 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 48S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32548"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] % ;?=epsg%WGS 72BE / UTM zone 49S+proj=utm +zone=49 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 49S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32549"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] & ;?=epsg&WGS 72BE / UTM zone 50S+proj=utm +zone=50 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 50S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32550"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ' ;?=epsg'WGS 72BE / UTM zone 51S+proj=utm +zone=51 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 51S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32551"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ( ;?=epsg(WGS 72BE / UTM zone 52S+proj=utm +zone=52 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 52S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32552"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ) ;?=epsg)WGS 72BE / UTM zone 53S+proj=utm +zone=53 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 53S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32553"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] * ;?=epsg*WGS 72BE / UTM zone 54S+proj=utm +zone=54 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 54S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",141],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32554"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] + ;?=epsg+WGS 72BE / UTM zone 55S+proj=utm +zone=55 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 55S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",147],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32555"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] , ;?=epsg,WGS 72BE / UTM zone 56S+proj=utm +zone=56 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 56S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",153],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32556"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] - ;?=epsg-WGS 72BE / UTM zone 57S+proj=utm +zone=57 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 57S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",159],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32557"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] . ;?=epsg.WGS 72BE / UTM zone 58S+proj=utm +zone=58 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 58S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32558"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] / ;?=epsg/WGS 72BE / UTM zone 59S+proj=utm +zone=59 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 59S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",171],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32559"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 0 ;?=epsg0WGS 72BE / UTM zone 60S+proj=utm +zone=60 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 60S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",177],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32560"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] DD7Y 5;epsgYWGS 84 / UTM zone 1N+proj=utm +zone=1 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 1N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-177],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32601"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] DD7Z 5;epsgZWGS 84 / UTM zone 2N+proj=utm +zone=2 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 2N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-171],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32602"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] DD7[ 5;epsg[WGS 84 / UTM zone 3N+proj=utm +zone=3 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 3N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32603"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] DD7\ 5;epsg\WGS 84 / UTM zone 4N+proj=utm +zone=4 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 4N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-159],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32604"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] DD7] 5;epsg]WGS 84 / UTM zone 5N+proj=utm +zone=5 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 5N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-153],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32605"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] DD7^ 5;epsg^WGS 84 / UTM zone 6N+proj=utm +zone=6 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 6N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-147],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32606"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] DD7_ 5;epsg_WGS 84 / UTM zone 7N+proj=utm +zone=7 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 7N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-141],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32607"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] DD7` 5;epsg`WGS 84 / UTM zone 8N+proj=utm +zone=8 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 8N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-135],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32608"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] DD7a 5;epsgaWGS 84 / UTM zone 9N+proj=utm +zone=9 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 9N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-129],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32609"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] AA:b 7 =epsgbWGS 84 / UTM zone 10N+proj=utm +zone=10 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 10N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-123],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32610"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] AA:c 7 =epsgcWGS 84 / UTM zone 11N+proj=utm +zone=11 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 11N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32611"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] AA:d 7 =epsgdWGS 84 / UTM zone 12N+proj=utm +zone=12 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 12N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32612"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] AA:e 7 =epsgeWGS 84 / UTM zone 13N+proj=utm +zone=13 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 13N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32613"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] BB9f 7 ;epsgfWGS 84 / UTM zone 14N+proj=utm +zone=14 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 14N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32614"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] BB9g 7 ;epsggWGS 84 / UTM zone 15N+proj=utm +zone=15 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 15N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32615"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] BB9h 7 ;epsghWGS 84 / UTM zone 16N+proj=utm +zone=16 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 16N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-87],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32616"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] BB9i 7 ;epsgiWGS 84 / UTM zone 17N+proj=utm +zone=17 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 17N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32617"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] BB9j 7 ;epsgjWGS 84 / UTM zone 18N+proj=utm +zone=18 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 18N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32618"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] BB9k 7 ;epsgkWGS 84 / UTM zone 19N+proj=utm +zone=19 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 19N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32619"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] BB9l 7 ;epsglWGS 84 / UTM zone 20N+proj=utm +zone=20 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 20N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32620"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] BB9m 7 ;epsgmWGS 84 / UTM zone 21N+proj=utm +zone=21 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 21N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32621"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] BB9n 7 ;epsgnWGS 84 / UTM zone 22N+proj=utm +zone=22 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 22N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32622"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]T$+29@GNU\cjqx  '.5<CJQX_fmt{     ! " Á# ā$ Ł% Ɓ& ǁ' ȁ( Ɂ) ʁ* ˁ+ ́, ́- ΁. ρ/ Ё0 сY ҁZ Ӂ[ ԁ\ Ձ] ց^ ׁ_ ؁` فa ځb ہc ܁d ݁e ށf ߁g h i j k l m n o p q r s t u v w x y z { | } ~                 BB9o 7 ;epsgoWGS 84 / UTM zone 23N+proj=utm +zone=23 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 23N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32623"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] BB9p 7 ;epsgpWGS 84 / UTM zone 24N+proj=utm +zone=24 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 24N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32624"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] BB9q 7 ;epsgqWGS 84 / UTM zone 25N+proj=utm +zone=25 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 25N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32625"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] BB9r 7 ;epsgrWGS 84 / UTM zone 26N+proj=utm +zone=26 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 26N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32626"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] BB9s 7 ;epsgsWGS 84 / UTM zone 27N+proj=utm +zone=27 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 27N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-21],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32627"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] BB9t 7 ;epsgtWGS 84 / UTM zone 28N+proj=utm +zone=28 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 28N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32628"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] CC8u 7 9epsguWGS 84 / UTM zone 29N+proj=utm +zone=29 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 29N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32629"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] CC8v 7 9epsgvWGS 84 / UTM zone 30N+proj=utm +zone=30 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 30N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32630"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] DD7w 7 7epsgwWGS 84 / UTM zone 31N+proj=utm +zone=31 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 31N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32631"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] DD7x 7 7epsgxWGS 84 / UTM zone 32N+proj=utm +zone=32 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 32N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32632"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] CC8y 7 9epsgyWGS 84 / UTM zone 33N+proj=utm +zone=33 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 33N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32633"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 2vv,9FS`mz #0=JWdq~ cepsgc depsgd eepsge fepsgf gepsgg hepsgh iepsgi jepsgj kepsgk lepsgl mepsgm nepsgn oepsgo pepsgp qepsgq repsgr sepsgs tepsgt uepsgu vepsgv wepsgw xepsgx yepsgy zepsgz {epsg{ |epsg| }epsg} ~epsg~ epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg CC8z 7 9epsgzWGS 84 / UTM zone 34N+proj=utm +zone=34 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 34N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32634"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] CC8{ 7 9epsg{WGS 84 / UTM zone 35N+proj=utm +zone=35 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 35N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32635"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] CC8| 7 9epsg|WGS 84 / UTM zone 36N+proj=utm +zone=36 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 36N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32636"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] CC8} 7 9epsg}WGS 84 / UTM zone 37N+proj=utm +zone=37 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 37N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32637"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] CC8~ 7 9epsg~WGS 84 / UTM zone 38N+proj=utm +zone=38 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 38N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32638"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] CC8 7 9epsgWGS 84 / UTM zone 39N+proj=utm +zone=39 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 39N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32639"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] CC8 7 9epsgWGS 84 / UTM zone 40N+proj=utm +zone=40 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 40N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32640"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] CC8 7 9epsgWGS 84 / UTM zone 41N+proj=utm +zone=41 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 41N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32641"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] CC8 7 9epsgWGS 84 / UTM zone 42N+proj=utm +zone=42 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 42N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32642"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] CC8 7 9epsgWGS 84 / UTM zone 43N+proj=utm +zone=43 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 43N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32643"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] CC8 7 9epsgWGS 84 / UTM zone 44N+proj=utm +zone=44 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 44N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32644"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] CC8 7 9epsgWGS 84 / UTM zone 45N+proj=utm +zone=45 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 45N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32645"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] CC8 7 9epsgWGS 84 / UTM zone 46N+proj=utm +zone=46 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 46N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32646"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] CC8 7 9epsgWGS 84 / UTM zone 47N+proj=utm +zone=47 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 47N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32647"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] BB9 7 ;epsgWGS 84 / UTM zone 48N+proj=utm +zone=48 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 48N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32648"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] BB9 7 ;epsgWGS 84 / UTM zone 49N+proj=utm +zone=49 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 49N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32649"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] BB9 7 ;epsgWGS 84 / UTM zone 50N+proj=utm +zone=50 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 50N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32650"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] BB9 7 ;epsgWGS 84 / UTM zone 51N+proj=utm +zone=51 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 51N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32651"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] BB9 7 ;epsgWGS 84 / UTM zone 52N+proj=utm +zone=52 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 52N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32652"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] BB9 7 ;epsgWGS 84 / UTM zone 53N+proj=utm +zone=53 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 53N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32653"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] BB9 7 ;epsgWGS 84 / UTM zone 54N+proj=utm +zone=54 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 54N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",141],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32654"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] BB9 7 ;epsgWGS 84 / UTM zone 55N+proj=utm +zone=55 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 55N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",147],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32655"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] BB9 7 ;epsgWGS 84 / UTM zone 56N+proj=utm +zone=56 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 56N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",153],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32656"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] BB9 7 ;epsgWGS 84 / UTM zone 57N+proj=utm +zone=57 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 57N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",159],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32657"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] BB9 7 ;epsgWGS 84 / UTM zone 58N+proj=utm +zone=58 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 58N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32658"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] BB9 7 ;epsgWGS 84 / UTM zone 59N+proj=utm +zone=59 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 59N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",171],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32659"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] BB9 7 ;epsgWGS 84 / UTM zone 60N+proj=utm +zone=60 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 60N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",177],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32660"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] w 1}IepsgWGS 84 / UPS North+proj=stere +lat_0=90 +lat_ts=90 +lon_0=0 +k=0.994 +x_0=2000000 +y_0=2000000 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UPS North",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",90],PARAMETER["central_meridian",0],PARAMETER["scale_factor",0.994],PARAMETER["false_easting",2000000],PARAMETER["false_northing",2000000],AUTHORITY["EPSG","32661"],AXIS["Northing",UNKNOWN],AXIS["Easting",UNKNOWN]] @@; QKcepsgWGS 84 / Plate Carree (deprecated)+proj=eqc +lat_ts=0 +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / Plate Carree (deprecated)",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Equirectangular"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",0],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","32662"],AXIS["X",EAST],AXIS["Y",NORTH]]  ;yaepsgWGS 84 / BLM 14N (ftUS)+proj=tmerc +lat_0=0 +lon_0=-99 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=us-ft +no_defsPROJCS["WGS 84 / BLM 14N (ftUS)",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",1640416.67],PARAMETER["false_northing",0],AUTHORITY["EPSG","32664"],AXIS["X",EAST],AXIS["Y",NORTH]]  ;yaepsgWGS 84 / BLM 15N (ftUS)+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=us-ft +no_defsPROJCS["WGS 84 / BLM 15N (ftUS)",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",1640416.67],PARAMETER["false_northing",0],AUTHORITY["EPSG","32665"],AXIS["X",EAST],AXIS["Y",NORTH]]  ;yaepsgWGS 84 / BLM 16N (ftUS)+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=us-ft +no_defsPROJCS["WGS 84 / BLM 16N (ftUS)",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-87],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",1640416.67],PARAMETER["false_northing",0],AUTHORITY["EPSG","32666"],AXIS["X",EAST],AXIS["Y",NORTH]]  ;yaepsgWGS 84 / BLM 17N (ftUS)+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=us-ft +no_defsPROJCS["WGS 84 / BLM 17N (ftUS)",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",1640416.67],PARAMETER["false_northing",0],AUTHORITY["EPSG","32667"],AXIS["X",EAST],AXIS["Y",NORTH]] 66E= 5IepsgWGS 84 / UTM zone 1S+proj=utm +zone=1 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 1S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-177],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32701"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 66E> 5IepsgWGS 84 / UTM zone 2S+proj=utm +zone=2 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 2S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-171],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32702"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 66E? 5IepsgWGS 84 / UTM zone 3S+proj=utm +zone=3 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 3S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32703"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 66E@ 5IepsgWGS 84 / UTM zone 4S+proj=utm +zone=4 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 4S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-159],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32704"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 66EA 5IepsgWGS 84 / UTM zone 5S+proj=utm +zone=5 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 5S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-153],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32705"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 66EB 5IepsgWGS 84 / UTM zone 6S+proj=utm +zone=6 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 6S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-147],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32706"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 66EC 5IepsgWGS 84 / UTM zone 7S+proj=utm +zone=7 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 7S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-141],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32707"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 66ED 5IepsgWGS 84 / UTM zone 8S+proj=utm +zone=8 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 8S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-135],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32708"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 66EE 5IepsgWGS 84 / UTM zone 9S+proj=utm +zone=9 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 9S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-129],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32709"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 33HF 7KepsgWGS 84 / UTM zone 10S+proj=utm +zone=10 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 10S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-123],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32710"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 33HG 7KepsgWGS 84 / UTM zone 11S+proj=utm +zone=11 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 11S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32711"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 33HH 7KepsgWGS 84 / UTM zone 12S+proj=utm +zone=12 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 12S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32712"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 33HI 7KepsgWGS 84 / UTM zone 13S+proj=utm +zone=13 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 13S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32713"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44GJ 7IepsgWGS 84 / UTM zone 14S+proj=utm +zone=14 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 14S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32714"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44GK 7IepsgWGS 84 / UTM zone 15S+proj=utm +zone=15 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 15S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32715"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44GL 7IepsgWGS 84 / UTM zone 16S+proj=utm +zone=16 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 16S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-87],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32716"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44GM 7IepsgWGS 84 / UTM zone 17S+proj=utm +zone=17 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 17S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32717"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44GN 7IepsgWGS 84 / UTM zone 18S+proj=utm +zone=18 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 18S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32718"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44GO 7IepsgWGS 84 / UTM zone 19S+proj=utm +zone=19 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 19S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32719"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44GP 7IepsgWGS 84 / UTM zone 20S+proj=utm +zone=20 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 20S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32720"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44GQ 7IepsgWGS 84 / UTM zone 21S+proj=utm +zone=21 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 21S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32721"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44GR 7IepsgWGS 84 / UTM zone 22S+proj=utm +zone=22 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 22S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32722"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44GS 7IepsgWGS 84 / UTM zone 23S+proj=utm +zone=23 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 23S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32723"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44GT 7IepsgWGS 84 / UTM zone 24S+proj=utm +zone=24 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 24S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32724"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44GU 7IepsgWGS 84 / UTM zone 25S+proj=utm +zone=25 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 25S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32725"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44GV 7IepsgWGS 84 / UTM zone 26S+proj=utm +zone=26 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 26S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32726"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44GW 7IepsgWGS 84 / UTM zone 27S+proj=utm +zone=27 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 27S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-21],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32727"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] CS`mz #0=JWdq~F9,vi\OB5( epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg 44GX 7IepsgWGS 84 / UTM zone 28S+proj=utm +zone=28 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 28S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32728"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 55FY 7GepsgWGS 84 / UTM zone 29S+proj=utm +zone=29 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 29S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32729"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 55FZ 7GepsgWGS 84 / UTM zone 30S+proj=utm +zone=30 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 30S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32730"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 66E[ 7EepsgWGS 84 / UTM zone 31S+proj=utm +zone=31 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 31S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32731"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 66E\ 7EepsgWGS 84 / UTM zone 32S+proj=utm +zone=32 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 32S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32732"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 55F] 7GepsgWGS 84 / UTM zone 33S+proj=utm +zone=33 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 33S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32733"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 55F^ 7GepsgWGS 84 / UTM zone 34S+proj=utm +zone=34 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 34S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32734"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 55F_ 7GepsgWGS 84 / UTM zone 35S+proj=utm +zone=35 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 35S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32735"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 55F` 7GepsgWGS 84 / UTM zone 36S+proj=utm +zone=36 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 36S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32736"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 55Fa 7GepsgWGS 84 / UTM zone 37S+proj=utm +zone=37 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 37S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32737"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 55Fb 7GepsgWGS 84 / UTM zone 38S+proj=utm +zone=38 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 38S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32738"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 55Fc 7GepsgWGS 84 / UTM zone 39S+proj=utm +zone=39 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 39S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32739"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 55Fd 7GepsgWGS 84 / UTM zone 40S+proj=utm +zone=40 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 40S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32740"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 55Fe 7GepsgWGS 84 / UTM zone 41S+proj=utm +zone=41 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 41S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32741"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 55Ff 7GepsgWGS 84 / UTM zone 42S+proj=utm +zone=42 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 42S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32742"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 55Fg 7GepsgWGS 84 / UTM zone 43S+proj=utm +zone=43 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 43S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32743"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 55Fh 7GepsgWGS 84 / UTM zone 44S+proj=utm +zone=44 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 44S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32744"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 55Fi 7GepsgWGS 84 / UTM zone 45S+proj=utm +zone=45 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 45S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32745"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 55Fj 7GepsgWGS 84 / UTM zone 46S+proj=utm +zone=46 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 46S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32746"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 55Fk 7GepsgWGS 84 / UTM zone 47S+proj=utm +zone=47 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 47S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32747"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44Gl 7IepsgWGS 84 / UTM zone 48S+proj=utm +zone=48 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 48S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32748"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44Gm 7IepsgWGS 84 / UTM zone 49S+proj=utm +zone=49 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 49S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32749"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44Gn 7IepsgWGS 84 / UTM zone 50S+proj=utm +zone=50 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 50S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32750"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44Go 7IepsgWGS 84 / UTM zone 51S+proj=utm +zone=51 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 51S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32751"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44Gp 7IepsgWGS 84 / UTM zone 52S+proj=utm +zone=52 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 52S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32752"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44Gq 7IepsgWGS 84 / UTM zone 53S+proj=utm +zone=53 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 53S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32753"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44Gr 7IepsgWGS 84 / UTM zone 54S+proj=utm +zone=54 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 54S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",141],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32754"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44Gs 7IepsgWGS 84 / UTM zone 55S+proj=utm +zone=55 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 55S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",147],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32755"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]@@Ux  '.5<CJQX_fmt{qjc\UNG@T@SyRxQwPvOuNtLs=>?@ABCDEFG H!I"J#K$L%M&N'O(P)Q*R+S,T-U.V/W1X2Y3Z4[5\6]7^8_9`:a;be?f@gAhBiCjDkElFmGnHoIpJqKr 44Gt 7IepsgWGS 84 / UTM zone 56S+proj=utm +zone=56 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 56S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",153],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32756"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44Gu 7IepsgWGS 84 / UTM zone 57S+proj=utm +zone=57 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 57S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",159],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32757"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44Gv 7IepsgWGS 84 / UTM zone 58S+proj=utm +zone=58 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 58S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32758"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44Gw 7IepsgWGS 84 / UTM zone 59S+proj=utm +zone=59 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 59S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",171],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32759"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44Gx 7IepsgWGS 84 / UTM zone 60S+proj=utm +zone=60 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 60S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",177],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32760"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] zy 1KepsgWGS 84 / UPS South+proj=stere +lat_0=-90 +lat_ts=-90 +lon_0=0 +k=0.994 +x_0=2000000 +y_0=2000000 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UPS South",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",0],PARAMETER["scale_factor",0.994],PARAMETER["false_easting",2000000],PARAMETER["false_northing",2000000],AUTHORITY["EPSG","32761"],AXIS["Northing",UNKNOWN],AXIS["Easting",UNKNOWN]] QQ>@K)gfoss.itItaly mainland zone 1 GB Roma40+proj=tmerc+lat_0=0 +lon_0=9 +k=0.9996 +x_0=1500000 +y_0=0 +ellps=intl +units=m +towgs84=-104.1,-49.1,-9.9,0.971,-2.917,0.714,-11.68 +no_defsg~ /i?epsgWGS 84 / TM 36 SE+proj=tmerc +lat_0=0 +lon_0=36 +k=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / TM 36 SE",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",36],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32766"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] <~7C9-gfoss.itItaly Sicily GB Roma40+proj=tmerc +lat_0=0 +lon_0=9 +k=0.9996 +x_0=1500000 +y_0=0 +ellps=intl +units=m +towgs84=-50.2,-50.4,84.8,-0.690,-2.012,0.459,-28.08 +no_defs9B=-gfoss.itItaly Sardinia GB Roma40+proj=tmerc +lat_0=0 +lon_0=9 +k=0.9996 +x_0=1500000 +y_0=0 +ellps=intl +units=m +towgs84=-168.6,-34.0,38.6,-0.374,-0.679,-1.379,-9.48 +no_defs?AK+gfoss.itItaly mainland zone 2 GB Roma40+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9996 +x_0=2520000 +y_0=0 +ellps=intl +units=m +towgs84=-104.1,-49.1,-9.9,0.971,-2.917,0.714,-11.68 +no_defs 6pS644"40ffffff"47ffffff"4@"4@ 333333 eZ , zm&@Tka8E@صm&@=$8E@|صm&@Tka8E@zm&@=$8E@ jL lm&@-7E@صm&@Tka8E@|lm&@-7E@m&@^8E@صm&@Tka8E@ zl#)l&@^7E@lm&@-7E@|#)l&@^7E@Cp\Mm&@87E@$WAgm&@Wd7E@lm&@-7E@Z,l# l&@S7E@#)l&@^7E@|l# l&@S7E@#)l&@^7E@Z,Ƥk&@)7E@l# l&@S7E@|Ƥk&@)7E@l# l&@S7E@Z,/Qk&@7E@Ƥk&@)7E@|/Qk&@7E@Ƥk&@)7E@jL1!j&@QJV7E@/Qk&@7E@|1!j&@QJV7E@[A+k&@N8E@@Nl&@J8E@\Ҭl&@WII8E@Z,C(VNm&@U8E@c~m&@ʒ]8E@|c~m&@ʒ]8E@C(VNm&@U8E@Z ,m&@[z8E@щNm&@#8E@|щNm&@[z8E@m&@#8E@ kz l 3~m&@d8E@+Ưn&@[z8E@|3~m&@d8E@| m&@̷e8E@+Ưn&@5`i8E@щNm&@[z8E@ z l C(VNm&@O@8E@KM'~m&@U8E@|KM'~m&@O@8E@]am&@:x&4I8E@GSm&@z2Q8E@C(VNm&@U8E@ j L KM'~m&@=$8E@zm&@O@8E@|zm&@=$8E@W_]m&@28E@KM'~m&@O@8E@ (Px Z,Ժh#2k&@C8E@ Rk&@ma'8E@| Rk&@C8E@Ժh#2k&@ma'8E@UjLyZi&@ iT7E@j&@!7E@|yZi&@!7E@۸i&@xm7E@j&@ iT7E@Z,yZi&@!7E@ QZi&@R7E@| QZi&@R7E@yZi&@!7E@zl QZi&@R7E@Vnj&@kN8E@|Vnj&@kN8E@C']j&@\8E@$Ej&@R7E@ QZi&@R7E@zlVnj&@kN8E@?k&@4á28E@|?k&@4á28E@&$k&@C*8E@>j&@#8E@Vnj&@kN8E@Z,?k&@4á28E@CfYk&@,Pz68E@|CfYk&@,Pz68E@?k&@4á28E@jLCfYk&@,Pz68E@ʠk&@G2;8E@|ʠk&@G2;8E@M(ik&@Ej88E@CfYk&@,Pz68E@jLʠk&@G2;8E@/wk&@H¾D8E@|/wk&@H¾D8E@%k&@w/>8E@ʠk&@G2;8E@ #[7Z!,#Akk&@,8E@Hֆ/k&@+98E@|Hֆ/k&@,8E@Akk&@+98E@!"Z ,"Hֆ/k&@,8E@Nk&@UId8E@|Nk&@UId8E@Hֆ/k&@,8E@ !jL!Nk&@UId8E@Nl&@i}&8E@|Nl&@i}&8E@(k&@F 8E@Nk&@UId8E@ Z, Nl&@i}&8E@r]l&@4V+8E@|r]l&@4V+8E@Nl&@i}&8E@Z,r]l&@4V+8E@2l&@R08E@|2l&@R08E@r]l&@4V+8E@Z,2l&@R08E@Ϻm&@kH78E@|Ϻm&@kH78E@2l&@R08E@jL\Ҭl&@kH78E@Ϻm&@WII8E@|\Ҭl&@WII8E@dl&@}1?E8E@Ϻm&@kH78E@Z,9 3n&@8E@W0;o&@sH]|8E@| ODn&@sH]|8E@rxo&@ݛ:C8E@W0;o&@C $8E@4o&@8E@#w"Ҁo&@_ 8E@вo&@Z\#88E@]n&@֥F8E@_bn&@`M8E@6fghn&@-cyW8E@9 3n&@Pm8E@o ?(+S?Z),+{p-Il&@8E@tVl&@98E@|{p-Il&@98E@tVl&@8E@)*Z(,*e9 /l&@98E@{p-Il&@(8E@|e9 /l&@(8E@{p-Il&@98E@()Z',)`^6k&@v%G%8E@k&@ϻ08E@|k&@v%G%8E@`^6k&@ϻ08E@'Hj&L(k&@1k8E@_m* l&@v%G%8E@|_m* l&@1k8E@(k&@F 8E@k&@v%G%8E@&'j%L''l&@7E@M"l&@1k8E@|M"l&@7E@'l&@e[8E@_m* l&@1k8E@%&z$l&1!j&@;7E@$WAgm&@{Z4S8E@| d9m&@{Z4S8E@8>)Lm&@)8E@$WAgm&@Wd7E@Y"am&@h )7E@UPm&@7L7E@X:%l&@L7E@r k&@)Q7E@Akk&@ 7E@Uk&@2W7E@2Sj&@/ T7E@L[j&@;7E@1!j&@QJV7E@$Z#,%Ժh#2k&@$?8E@<1Fk&@8E@|Ժh#2k&@8E@<1Fk&@$?8E@#`z"l$?k&@+98E@Akk&@4á28E@|Akk&@+98E@"3k&@0)>>!8E@ &owk&@J&8E@?k&@4á28E@" 8`g j1L3\k&@Os7E@Cpk&@c:7E@|Cpk&@c:7E@Ek&@7E@\k&@Os7E@12Z0,2x>]l&@4V+8E@r]l&@9<8E@|x>]l&@9<8E@r]l&@4V+8E@0Z/,1m&@3Rs8E@щNm&@[z8E@|щNm&@[z8E@m&@3Rs8E@ Q.,0Ϻm&@Ї|8E@$ \m&@kH78E@|&m&@"78E@&l&@R08E@2l&@ B8E@|*>l&@ B8E@2l&@R08E@9Z8,:##l&@ѕc 8E@{p-Il&@98E@|##l&@ѕc 8E@{p-Il&@98E@,)Z7,9UZl&@^7E@#)l&@\8E@|#)l&@^7E@UZl&@\8E@+j6L8Vnj&@LK8E@8k&@kN8E@|8k&@LK8E@Vj&@ 8E@Vnj&@kN8E@6Z5,7n;m&@-GB8E@8>)Lm&@y8E@|8>)Lm&@-GB8E@n;m&@y8E@5[j4L6IHk&@6ɏ8E@Up6k&@,8E@|Up6k&@6ɏ8E@IHk&@b픳8E@Hֆ/k&@,8E@4!Z3,5ʠk&@sV+8E@]k&@G2;8E@|]k&@sV+8E@ʠk&@G2;8E@3:2l4/4'/j&@C.7E@\k&@Os7E@|\k&@Os7E@zVLk&@y7E@_m*k&@ۇ7E@ DOʤj&@47E@aobHNj&@C.7E@_Qj&@i7E@8?j&@vۅ7E@/4'/j&@!67E@2E S/w SZC,FNm m&@8E@T m&@w8E@|Nm m&@8E@T m&@w8E@C^ZB,ENm m&@Pe8E@P黶m&@8E@|P黶m&@Pe8E@Nm m&@8E@BCjALDjm&@7!8E@zm&@=$8E@|jm&@7!8E@0qm&@5L@Akk&@XS8E@k&@(#8E@|Akk&@XS8E@]k&@M? 8E@k&@(#8E@>?Z=,? Rk&@C8E@Akk&@XS8E@| Rk&@C8E@Akk&@XS8E@><,>j&@ iT7E@ Rk&@C8E@|j&@ iT7E@(1j&@~7E@8?j&@vۅ7E@f j&@Kv7E@4n k&@c:7E@ Rk&@C8E@j;L=Ϻm&@j<68E@KM'~m&@O@8E@|KM'~m&@O@8E@UPm&@j<68E@Ϻm&@kH78E@  C/w CjLLONl&@Pe8E@lj 0l&@i}&8E@|Nl&@i}&8E@ᣴjl&@J8E@lj 0l&@Pe8E@]ZK,N*>l&@ B8E@"3l&@FͳH8E@|*>l&@ B8E@"3l&@FͳH8E@9jJLMx>]l&@9<8E@*>l&@ B8E@|x>]l&@9<8E@$ tl&@b?8E@*>l&@ B8E@09ZI,Lǝk&@m½28E@x>]l&@9<8E@|ǝk&@m½28E@x>]l&@9<8E@I0ZH,K`^6k&@ϻ08E@ǝk&@m½28E@|`^6k&@ϻ08E@ǝk&@m½28E@HIZG,J]k&@sV+8E@`^6k&@ϻ08E@|]k&@sV+8E@`^6k&@ϻ08E@3HzFlIԺh#2k&@8E@]k&@sV+8E@|Ժh#2k&@8E@"3k&@0)>>!8E@eOk&@rz(8E@]k&@sV+8E@#3 E H/4'/j&@!67E@Ժh#2k&@8E@|/4'/j&@!67E@^:Hj&@?7E@Lee`j&@ W7E@Vj&@ 8E@Ժh#2k&@8E@E#jDLG QZi&@ۇ7E@/4'/j&@R7E@| QZi&@R7E@j&@ۇ7E@/4'/j&@!67E@E d8p,dZU,X8k&@LK8E@Ժh#2k&@ma'8E@|Ժh#2k&@ma'8E@8k&@LK8E@U6jTLWԺh#2k&@ma'8E@Up6k&@6ɏ8E@|Up6k&@6ɏ8E@{ۦk&@a cI8E@Ժh#2k&@ma'8E@4UjSLVUp6k&@1k8E@_m* l&@f38E@|_m* l&@1k8E@cL$k&@f38E@Up6k&@6ɏ8E@&4jRLUgIk&@Os7E@\k&@C8E@|\k&@Os7E@gIk&@j+7E@ Rk&@C8E@2jQLTn>9m&@3Rs8E@m&@8O8E@|m&@3Rs8E@gQqm&@W}8E@n>9m&@8O8E@QlZP,Sm&@Dc8E@Um&@3Rs8E@|Um&@Dc8E@m&@3Rs8E@PQjOLR{,"/m&@ʒ]8E@c~m&@~8E@|c~m&@ʒ]8E@ AOm&@bh8E@{,"/m&@~8E@mjNLQ Qk&@UId8E@k&@v%G%8E@|Nk&@UId8E@ Qk&@5(l&@8P8E@T m&@w8E@]^Z\,_tVl&@8E@lj 0l&@Pe8E@|tVl&@8E@lj 0l&@Pe8E@*]Z[,^Nm m&@8E@n;m&@y8E@|n;m&@y8E@Nm m&@8E@[CZZ,]n;m&@y8E@& V YmPUj&@7E@/Qk&@LK8E@|8k&@LK8E@mPUj&@Y8E@4n k&@c:7E@_m*k&@ۇ7E@/Qk&@7E@6 (8`<(Zh,kk&@87E@H̢fk&@JbI7E@|H̢fk&@JbI7E@k&@87E@a:Zg,jH̢fk&@JbI7E@M"l&@7E@|M"l&@7E@H̢fk&@JbI7E@%aZf,iM"l&@7E@UZl&@\8E@|UZl&@\8E@M"l&@7E@+%jeLhUZl&@\8E@P黶m&@Pe8E@|P黶m&@Pe8E@Uɶªl&@'8E@UZl&@\8E@B+Zd,gP黶m&@Pe8E@d9m&@{Z4S8E@|d9m&@{Z4S8E@P黶m&@Pe8E@$BZc,fd9m&@{Z4S8E@8>)Lm&@-GB8E@|8>)Lm&@-GB8E@d9m&@{Z4S8E@5$zble8>)Lm&@-GB8E@صm&@Tka8E@|صm&@Tka8E@m&@W#8E@|Ğ,km&@v<8E@8>)Lm&@-GB8E@ 5Za,dk&@JbI7E@H̢fk&@(#8E@|H̢fk&@JbI7E@k&@(#8E@a?j`Lc<1Fk&@$?8E@'ack&@W#8E@|<1Fk&@$?8E@'ack&@38E@\k&@W#8E@`rZ_,b_m*k&@_g 8E@<1Fk&@$?8E@|_m*k&@_g 8E@<1Fk&@$?8E@_` _o7lwVia Guglielmo Marconi3~m&@d8E@9 3n&@Pm8E@|9 3n&@Pm8E@n&@5Fj8E@+Ưn&@5`i8E@3~m&@d8E@o n7LvVia Guglielmo Marconi9 3n&@Pm8E@ODn&@sH]|8E@|ODn&@sH]|8E@Ԃr6xn&@8s8E@9 3n&@Pm8E@oJm tCfYk&@,Pz68E@{,"/m&@~8E@| {,"/m&@~8E@ ?l&@}3{8E@Il&@9cx8E@FMl&@_q8E@7nfl&@f8E@Ol&@[8E@ʔųk&@u.{J8E@Ək&@rfB8E@CfYk&@,Pz68E@mZl,s{,"/m&@~8E@n>9m&@8O8E@|n>9m&@8O8E@{,"/m&@~8E@lmZk,rn>9m&@8O8E@m&@#8E@|m&@#8E@n>9m&@8O8E@kl j mAkk&@c:7E@Cpk&@+98E@|Akk&@+98E@{ۦk&@a cI8E@]k&@M? 8E@1|k&@'8E@Cpk&@c:7E@"1Zi,lCpk&@c:7E@k&@87E@|k&@87E@Cpk&@c:7E@:1 oq7,yVia Guglielmo Marconic~m&@ʒ]8E@Um&@Dc8E@|Um&@Dc8E@c~m&@ʒ]8E@Pop7,xVia Guglielmo MarconiUm&@Dc8E@3~m&@d8E@|3~m&@d8E@Um&@Dc8E@ P wX|)Atriggerggu_roads_geomroadsCREATE TRIGGER "ggu_roads_geom" BEFORE UPDATE ON "roads" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'roads.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT type FROM geometry_columns WHERE f_table_name = 'roads' AND f_geometry_column = 'geom' AND GeometryConstraints(NEW."geom", type, srid, 'XY') = 1) IS NULL; END^)triggergii_roads_geomroadsCREATE TRIGGER "gii_roads_geom" AFTER INSERT ON "roads" FOR EACH ROW BEGIN DELETE FROM "idx_roads_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_roads_geom', NEW.ROWID, NEW."geom");END^)triggergiu_roads_geomroadsCREATE TRIGGER "giu_roads_geom" AFTER UPDATE ON "roads" FOR EACH ROW BEGIN DELETE FROM "idx_roads_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_roads_geom', NEW.ROWID, NEW."geom");END%)triggergid_roads_geomroadsCREATE TRIGGER "gid_roads_geom" AFTER DELETE ON "roads" FOR EACH ROW BEGIN DELETE FROM "idx_roads_geom" WHERE pkid = OLD.ROWID; END ".y))-tableidx_roads_geomidx_roads_geomCREATE VIRTUAL TABLE "idx_roads_geom" USING rtree( pkid, xmin, xmax, ymin, ymax)}33tableidx_roads_geom_nodeidx_roads_geom_nodehCREATE TABLE "idx_roads_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB)55)tableidx_roads_geom_rowididx_roads_geom_rowidiCREATE TABLE "idx_roads_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER) 775tableidx_roads_geom_parentidx_roads_geom_parentjCREATE TABLE "idx_roads_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER){))/tableroads_net_dataroads_net_dataqCREATE TABLE "roads_net_data" (Id INTEGER PRIMARY KEY, NetworkData BLOB NOT NULL)f tableroads_netroads_netCREATE VIRTUAL TABLE "roads_net" USING VirtualNetwork("roads_net_data")h!##tablealpha_roadsalpha_roadsyCREATE TABLE alpha_roads( id, geom NUM, node_from, node_to )pD 'A3P,A3PyB)B)A3PyA3TB)B)A3TA3ZB)B)A3ZA3^B)B)A3^A3`PB)B)A3`PA3dqB)B)]A3dqA3lB)]B)A3lA3mB)B) A3mA3mB)B)& A3kA3mB)&B) A3jsA3kB)B)­ A3ndA3puB)&B) A3n/A3o?B)B)YA3jsA3kB)­B)A3fA3jsB)MB)­A3fPA3fB)FB)MA3^8A3fPB)%B)A3[A3^8B)B)%A3ZA3[B)B)A3YA3ZB)B)A3UA3YB)B)A3OA3UB)B)A3NA3OB)fB)A3NA3P,B)B)fA3YA3ZB)B)1A3qA3~B)B)A3fA3hyB)B)MA3f*A3hyB)B)A3d+A3f*B)]B)A3buA3d+B)5B)]A3^A3buB)B)5 A3]A3^B)B)!A3\cA3]B)B)"A3YA3\cB)B)#A3YA3Z2B)B)$A3TA3k:B)B)%A3`.A3aB)B)&A3_A3`YB)B)*'A3_:A3_B)onmlk qZ|vpjd^XRLF@:4.(" ztnhb\VPJD>82,& ~xrlf`Zqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!        99D A3NA3k:B)B)A3dqA3~B)]B)YA3UA3_:B)B)%A3ZA3jB)sB)A3_A3hB)B) 99D A3dqA3lB)]B)A3f*A3hyB)B)A3fPA3fB)FB)MA3fA3hyB)B)MA3fA3jsB)MB)­ A3jsA3kB)B)­A3jsA3kB)­B) A3kA3mB)&B)A3lA3mB)B) A3mA3mB)B)& A3n/A3o?B)B)Y A3ndA3puB)&B)A3qA3~B)B)-A3kA3lB)B)/A3lA3o?B)ÛB);A3hyA3kB)B)AA3l A3mB) B)&OA3hA3kB)B)PA3lA3mB)B)ÛQA3iA3lB)ÛB)XA3kA3lCB)B) YA3jSA3kB)B)bA3jaA3mB)B)kA3iA3n/B)B)YlA3hA3iB)B)nA3qA3vB)iB)oA3ndA3qB)&B)ipA3mA3ndB)B)&qA3kA3mB)B) 99D A3NA3OB)fB)A3NA3P,B)B)fDA3OA3QyB)WB)A3OA3UB)B)A3P,A3PyB)B)A3\cA3^B)3B)wA3^A3`PB)B)aA3^A3_B)B)whA3_A3_B)B):A3_A3`PB)B)iA3^A3_B)B) 99D A3UA3YB)B)#A3YA3Z2B)B)FA3YA3]B)B)[A3YA3ZB)B)"A3YA3\cB)B)`A3Z2A3[B)B)A3ZA3[B)B)3A3[A3]B)[B)A3[A3^8B)B)%!A3\cA3]B)B)GA3]A3_:B)[B)4A3]A3^B)B) A3]A3^B)B)jA3\cA3^B)B) 99D SA3^A3`YB)B)MA3^8A3_B)B)%A3^8A3fPB)%B)?A3^A3`YB)wB)NA3^A3_B)B)*A3^A3buB)B)5'A3_:A3_B)*B)HA3_:A3_B)B)&A3_A3`YB)B)*IA3_A3bB)B)@A3`YA3a}B)B)A3buA3d+B)5B)]LA3buA3d:B)sB)50A3bA3d+B)]B)JA3bA3dB)B)A3d+A3f*B)]B)]A3d:A3hcB)sB)9A3dA3f*B)B)KA3dA3fPB)B)FCA3h[A3hcB)B)BA3h[A3hB)sB)[A3h[A3iB)B)^A3hcA3hB)B).A3hyA3jB)B)cA3iA3jaB)B)ZA3iA3jSB)B)5A3iA3jaB)B)dA3hA3iB)sB)mA3ZA3hB)B) 99D gA3_A3aB)B)%A3`.A3aB)B)A3`PA3dqB)B)],A3`YA3aB)kB)fA3aA3bB)B)8A3aA3bIB)kB)+A3aA3bB)B)k(A3a}A3bIB)B))A3bIA3bB)GB)*A3bA3bB)B)G\A3bA3d:B)GB)s7A3bA3dqB)]B)eA3bA3hB)B)s sjLj&@ iT7E@TM?T k@?T<X$+zQ?1!j&@QJV7E@T>+zQ?T3N W?T$"ӲrGiLroads node_fromnode_togeomname?s:qz?/Qk&@7E@T[70_GL?T3N W?TV36Jd'Y?Ƥk&@)7E@T@=cB?T[70_GL?TW6~U?l# l&@S7E@T@=cB?T:53/8H?Tv QQ?#)l&@^7E@T7)dA&I?Tv QQ?T`?lm&@-7E@Td/sK?T-+ͮ4M?T`? صm&@Tka8E@T ijrO^Y&?ToJd}(CJ?T gR? щNm&@[z8E@T G#O?B?T/?>F?T gR? c~m&@ʒ]8E@TtѰM >?TOI,tU?C(VNm&@U8E@T ѰMVPA?T<X$D2?TN%ѼGo7?T'0 tM?!Hֆ/k&@,8E@T |>D2?T415I2?T! {-Ѽ5? "Akk&@+98E@T!{-Ѽ5?T"2K?Tj.A=U?!#Ժh#2k&@8E@T#E>U-?TF0GT?TE;v{Jb?"$d9m&@{Z4S8E@Tc2/;##?Td9؟:H3?T$Ӳ:qz?#%M"l&@7E@TgF͇S2?Tf)t `?T-ͮ4M?,.&]l&@9<8E@TJ4 =?T0Y׬C?TI=9J?.1Cpk&@c:7E@Ti5f:'?T1/$xYP?Tj A=U?/2\k&@Os7E@TRf>VPA?T1.$xYP?T2;9og?03]k&@sV+8E@TG<.]:?T3kbUz,E?TF!GT?14Up6k&@6ɏ8E@T45I2?TS$JpWB?TT@MKS?258>)Lm&@-GB8E@Tc"/;##?T5AN*?Tb"L?368k&@LK8E@TU@R-0?T6O?TV6Jd'Y?49*>l&@ B8E@TK]=?TJ- =?T9%E?5:k&@87E@ThFPC?Ti.f:'?T:x3/8H?6>Akk&@XS8E@T=TU??T>7!gD?TW~U?7?k&@(#8E@T?$!/m7;?T>6!gD?TaF~^ϱoE?8Ajm&@7!8E@TA D,=?TX+z>?9BP黶m&@Pe8E@TB:qz(?Td"؟:H3?Te)R8W?:CNm m&@8E@TCC2jx#Q?TB9qz(?T[A|G8?;E/4'/j&@!67E@TDlqsA?TE!{Jb?T2/9og?<H`^6k&@ϻ08E@TH=IGK%?T'%1jJ38?TG0.]:?=Iǝk&@m½28E@TH<IGK%?TMF?TI-9J?>PUm&@Dc8E@Tp rO^Y&?Tq >?TP?z[!`B??Qm&@3Rs8E@TP>z[!`B?T/ >F?TQHNL?@UԺh#2k&@ma'8E@TU3R-0?TV#E3?TT1MKS?A[n;m&@y8E@TZ,TUE?T52N*?T[:|G8?B]lj 0l&@Pe8E@T\(j:?TL1\L?T]CxJQ?C^T m&@w8E@TC:2jx#Q?T^*觙LP?T]BxJQ?D__m*k&@_g 8E@T_ES%.?E`<1Fk&@$?8E@T#!>U-?T_DS%.?T`K-,6?FaH̢fk&@JbI7E@Th5PC?Tg#͇S2?Ta7~^ϱoE?Gkm&@#8E@T #O?B?TkH0Q?Hln>9m&@8O8E@TlIFX6?TQ?NL?TkG0Q?Im{,"/m&@~8E@TlHFX6?TO ,tU?Tm lJp?Jo9 3n&@Pm8E@To d}(CJ?TnrBlBV?T xŌ~?Kr\k&@W#8E@T`E-,6?zwLARC_9lm&@-7E@صm&@Tka8E@|lm&@-7E@m&@^8E@صm&@Tka8E@NODE_8NODE_9lARC_8#)l&@^7E@lm&@-7E@|#)l&@^7E@Cp\Mm&@87E@$WAgm&@Wd7E@lm&@-7E@NODE_7NODE_8g,ARC_7l# l&@S7E@#)l&@^7E@|l# l&@S7E@#)l&@^7E@NODE_6NODE_7g,ARC_6Ƥk&@)7E@l# l&@S7E@|Ƥk&@)7E@l# l&@S7E@NODE_5NODE_6g,ARC_5/Qk&@7E@Ƥk&@)7E@|/Qk&@7E@Ƥk&@)7E@NODE_4NODE_5wLARC_41!j&@QJV7E@/Qk&@7E@|1!j&@QJV7E@[A+k&@9m&@8O8E@|n>9m&@8O8E@{,"/m&@~8E@NODE_108NODE_109 FIFwLARC_9lm&@-7E@صm&@Tka8E@|lm&@-7E@m&@^8E@صm&@Tka8E@NODE_8NODE_9lARC_8#)l&@^7E@lm&@-7E@|#)l&@^7E@Cp\Mm&@87E@$WAgm&@Wd7E@lm&@-7E@NODE_7NODE_8g,ARC_7l# l&@S7E@#)l&@^7E@|l# l&@S7E@#)l&@^7E@NODE_6NODE_7g,ARC_6Ƥk&@)7E@l# l&@S7E@|Ƥk&@)7E@l# l&@S7E@NODE_5NODE_6g,ARC_5/Qk&@7E@Ƥk&@)7E@|/Qk&@7E@Ƥk&@)7E@NODE_4NODE_5wLARC_41!j&@QJV7E@/Qk&@7E@|1!j&@QJV7E@[A+k&@9m&@8O8E@m&@#8E@|m&@#8E@n>9m&@8O8E@NODE_107NODE_108j ARC_109Akk&@c:7E@Cpk&@+98E@|Akk&@+98E@{ۦk&@a cI8E@]k&@M? 8E@1|k&@'8E@Cpk&@c:7E@NODE_34NODE_49ki,ARC_108Cpk&@c:7E@k&@87E@|k&@87E@Cpk&@c:7E@NODE_58NODE_49kh,ARC_107k&@87E@H̢fk&@JbI7E@|H̢fk&@JbI7E@k&@87E@NODE_97NODE_58kg,ARC_106H̢fk&@JbI7E@M"l&@7E@|M"l&@7E@H̢fk&@JbI7E@NODE_37NODE_97kf,ARC_105M"l&@7E@UZl&@\8E@|UZl&@\8E@M"l&@7E@NODE_43NODE_37{eLARC_104UZl&@\8E@P黶m&@Pe8E@|P黶m&@Pe8E@Uɶªl&@'8E@UZl&@\8E@NODE_66NODE_43kd,ARC_103P黶m&@Pe8E@d9m&@{Z4S8E@|d9m&@{Z4S8E@P黶m&@Pe8E@NODE_36NODE_66 ;5;kc,ARC_102d9m&@{Z4S8E@8>)Lm&@-GB8E@|8>)Lm&@-GB8E@d9m&@{Z4S8E@NODE_53NODE_36 blARC_1018>)Lm&@-GB8E@صm&@Tka8E@|صm&@Tka8E@m&@W#8E@|Ğ,km&@v<8E@8>)Lm&@-GB8E@NODE_9NODE_53ka,ARC_100k&@JbI7E@H̢fk&@(#8E@|H̢fk&@JbI7E@k&@(#8E@NODE_97NODE_63{`LARC_99<1Fk&@$?8E@'ack&@W#8E@|<1Fk&@$?8E@'ack&@38E@\k&@W#8E@NODE_96NODE_114j_,ARC_98_m*k&@_g 8E@<1Fk&@$?8E@|_m*k&@_g 8E@<1Fk&@$?8E@NODE_95NODE_96 ^lARC_97T m&@w8E@=m&@kH78E@|T m&@w8E@Dm&@8E@=m&@^$Y,8E@Ϻm&@kH78E@NODE_94NODE_28z]LARC_96lj 0l&@Pe8E@T m&@w8E@|lj 0l&@Pe8E@>(l&@8P8E@T m&@w8E@NODE_93NODE_94j\,ARC_95tVl&@8E@lj 0l&@Pe8E@|tVl&@8E@lj 0l&@Pe8E@NODE_42NODE_93 A|Aj[,ARC_94Nm m&@8E@n;m&@y8E@|n;m&@y8E@Nm m&@8E@NODE_91NODE_67jZ,ARC_93n;m&@y8E@&6>zSLARC_86Up6k&@1k8E@_m* l&@f38E@|_m* l&@1k8E@cL$k&@f38E@Up6k&@6ɏ8E@NODE_38NODE_52zRLARC_85gIk&@Os7E@\k&@C8E@|\k&@Os7E@gIk&@j+7E@ Rk&@C8E@NODE_50NODE_25{QLARC_84n>9m&@3Rs8E@m&@8O8E@|m&@3Rs8E@gQqm&@W}8E@n>9m&@8O8E@NODE_81NODE_108jP,ARC_83m&@Dc8E@Um&@3Rs8E@|Um&@Dc8E@m&@3Rs8E@NODE_80NODE_81{OLARC_82{,"/m&@ʒ]8E@c~m&@~8E@|c~m&@ʒ]8E@ AOm&@bh8E@{,"/m&@~8E@NODE_14NODE_109zNLARC_81 Qk&@UId8E@k&@v%G%8E@|Nk&@UId8E@ Qk&@5l&@ B8E@"3l&@FͳH8E@|*>l&@ B8E@"3l&@FͳH8E@NODE_57NODE_17zJLARC_77x>]l&@9<8E@*>l&@ B8E@|x>]l&@9<8E@$ tl&@b?8E@*>l&@ B8E@NODE_48NODE_57jI,ARC_76ǝk&@m½28E@x>]l&@9<8E@|ǝk&@m½28E@x>]l&@9<8E@NODE_73NODE_48jH,ARC_75`^6k&@ϻ08E@ǝk&@m½28E@|`^6k&@ϻ08E@ǝk&@m½28E@NODE_72NODE_73jG,ARC_74]k&@sV+8E@`^6k&@ϻ08E@|]k&@sV+8E@`^6k&@ϻ08E@NODE_51NODE_72 FlARC_73Ժh#2k&@8E@]k&@sV+8E@|Ժh#2k&@8E@"3k&@0)>>!8E@eOk&@rz(8E@]k&@sV+8E@NODE_35NODE_51E ARC_72/4'/j&@!67E@Ժh#2k&@8E@|/4'/j&@!67E@^:Hj&@?7E@Lee`j&@ W7E@Vj&@ 8E@Ժh#2k&@8E@NODE_69NODE_35zDLARC_71 QZi&@ۇ7E@/4'/j&@R7E@| QZi&@R7E@j&@ۇ7E@/4'/j&@!67E@NODE_23NODE_69 @Tl@jC,ARC_70Nm m&@8E@T m&@w8E@|Nm m&@8E@T m&@w8E@NODE_67NODE_94jB,ARC_69Nm m&@Pe8E@P黶m&@8E@|P黶m&@Pe8E@Nm m&@8E@NODE_66NODE_67zALARC_68jm&@7!8E@zm&@=$8E@|jm&@7!8E@0qm&@5LARC_64Akk&@XS8E@k&@(#8E@|Akk&@XS8E@]k&@M? 8E@k&@(#8E@NODE_62NODE_63j=,ARC_63 Rk&@C8E@Akk&@XS8E@| Rk&@C8E@Akk&@XS8E@NODE_25NODE_62)<,ARC_62j&@ iT7E@ Rk&@C8E@|j&@ iT7E@(1j&@~7E@8?j&@vۅ7E@f j&@Kv7E@4n k&@c:7E@ Rk&@C8E@NODE_1NODE_25 r1Yrz;LARC_61Ϻm&@j<68E@KM'~m&@O@8E@|KM'~m&@O@8E@UPm&@j<68E@Ϻm&@kH78E@NODE_11NODE_28i:,ARC_60k&@S7E@l# l&@87E@|k&@87E@l# l&@S7E@NODE_58NODE_6j9,ARC_59*>l&@R08E@2l&@ B8E@|*>l&@ B8E@2l&@R08E@NODE_57NODE_29j8,ARC_58##l&@ѕc 8E@{p-Il&@98E@|##l&@ѕc 8E@{p-Il&@98E@NODE_44NODE_41i7,ARC_57UZl&@^7E@#)l&@\8E@|#)l&@^7E@UZl&@\8E@NODE_7NODE_43z6LARC_56Vnj&@LK8E@8k&@kN8E@|8k&@LK8E@Vj&@ 8E@Vnj&@kN8E@NODE_54NODE_22j5,ARC_55n;m&@-GB8E@8>)Lm&@y8E@|8>)Lm&@-GB8E@n;m&@y8E@NODE_53NODE_91z4LARC_54IHk&@6ɏ8E@Up6k&@,8E@|Up6k&@6ɏ8E@IHk&@b픳8E@Hֆ/k&@,8E@NODE_52NODE_33 :t[s:j3,ARC_53ʠk&@sV+8E@]k&@G2;8E@|]k&@sV+8E@ʠk&@G2;8E@NODE_51NODE_19J2lARC_52/4'/j&@C.7E@\k&@Os7E@|\k&@Os7E@zVLk&@y7E@_m*k&@ۇ7E@ DOʤj&@47E@aobHNj&@C.7E@_Qj&@i7E@8?j&@vۅ7E@/4'/j&@!67E@NODE_50NODE_69z1LARC_51\k&@Os7E@Cpk&@c:7E@|Cpk&@c:7E@Ek&@7E@\k&@Os7E@NODE_49NODE_50j0,ARC_50x>]l&@4V+8E@r]l&@9<8E@|x>]l&@9<8E@r]l&@4V+8E@NODE_48NODE_30j/,ARC_49m&@3Rs8E@щNm&@[z8E@|щNm&@[z8E@m&@3Rs8E@NODE_13NODE_81*.,ARC_48Ϻm&@Ї|8E@$ \m&@kH78E@|&m&@"78E@&)Lm&@)8E@$WAgm&@Wd7E@Y"am&@h )7E@UPm&@7L7E@X:%l&@L7E@r k&@)Q7E@Akk&@ 7E@Uk&@2W7E@2Sj&@/ T7E@L[j&@;7E@1!j&@QJV7E@NODE_36NODE_3j#,ARC_37Ժh#2k&@$?8E@<1Fk&@8E@|Ժh#2k&@8E@<1Fk&@$?8E@NODE_35NODE_96 "lARC_36?k&@+98E@Akk&@4á28E@|Akk&@+98E@"3k&@0)>>!8E@ &owk&@J&8E@?k&@4á28E@NODE_34NODE_21j!,ARC_35Akk&@,8E@Hֆ/k&@+98E@|Hֆ/k&@,8E@Akk&@+98E@NODE_33NODE_34j ,ARC_34Hֆ/k&@,8E@Nk&@UId8E@|Nk&@UId8E@Hֆ/k&@,8E@NODE_32NODE_33zLARC_33Nk&@UId8E@Nl&@i}&8E@|Nl&@i}&8E@(k&@F 8E@Nk&@UId8E@NODE_31NODE_32j,ARC_32Nl&@i}&8E@r]l&@4V+8E@|r]l&@4V+8E@Nl&@i}&8E@NODE_30NODE_31 kCkj,ARC_31r]l&@4V+8E@2l&@R08E@|2l&@R08E@r]l&@4V+8E@NODE_29NODE_30j,ARC_302l&@R08E@Ϻm&@kH78E@|Ϻm&@kH78E@2l&@R08E@NODE_28NODE_29zLARC_29\Ҭl&@kH78E@Ϻm&@WII8E@|\Ҭl&@WII8E@dl&@}1?E8E@Ϻm&@kH78E@NODE_16NODE_28k,ARC_289 3n&@8E@W0;o&@sH]|8E@| ODn&@sH]|8E@rxo&@ݛ:C8E@W0;o&@C $8E@4o&@8E@#w"Ҁo&@_ 8E@вo&@Z\#88E@]n&@֥F8E@_bn&@`M8E@6fghn&@-cyW8E@9 3n&@Pm8E@NODE_26NODE_111j,ARC_27Ժh#2k&@C8E@ Rk&@ma'8E@| Rk&@C8E@Ժh#2k&@ma'8E@NODE_25NODE_85yLARC_25yZi&@ iT7E@j&@!7E@|yZi&@!7E@۸i&@xm7E@j&@ iT7E@NODE_24NODE_1j,ARC_24yZi&@!7E@ QZi&@R7E@| QZi&@R7E@yZi&@!7E@NODE_23NODE_24 9;S9 lARC_23 QZi&@R7E@Vnj&@kN8E@|Vnj&@kN8E@C']j&@\8E@$Ej&@R7E@ QZi&@R7E@NODE_22NODE_23 lARC_22Vnj&@kN8E@?k&@4á28E@|?k&@4á28E@&$k&@C*8E@>j&@#8E@Vnj&@kN8E@NODE_21NODE_22j,ARC_21?k&@4á28E@CfYk&@,Pz68E@|CfYk&@,Pz68E@?k&@4á28E@NODE_20NODE_21zLARC_20CfYk&@,Pz68E@ʠk&@G2;8E@|ʠk&@G2;8E@M(ik&@Ej88E@CfYk&@,Pz68E@NODE_19NODE_20zLARC_19ʠk&@G2;8E@/wk&@H¾D8E@|/wk&@H¾D8E@%k&@w/>8E@ʠk&@G2;8E@NODE_18NODE_19Z ARC_18/wk&@H¾D8E@"3l&@(4ZX8E@| "3l&@FͳH8E@4l&@"I8E@C˥l&@NcO8E@6ܓl&@+qU8E@*~l&@(4ZX8E@ !jl&@]V8E@;&'l&@*$O8E@OpVk&@H8E@/wk&@H¾D8E@NODE_17NODE_18j,ARC_17"3l&@FͳH8E@\Ҭl&@WII8E@|\Ҭl&@WII8E@"3l&@FͳH8E@NODE_16NODE_17 y&y*,ARC_16\Ҭl&@WII8E@C(VNm&@U8E@|C(VNm&@U8E@T=Em&@XRT8E@iW!'m&@S-Q8E@7m&@a>N8E@@Nl&@J8E@\Ҭl&@WII8E@NODE_15NODE_16j,ARC_15C(VNm&@U8E@c~m&@ʒ]8E@|c~m&@ʒ]8E@C(VNm&@U8E@NODE_14NODE_15k ,ARC_14m&@[z8E@щNm&@#8E@|щNm&@[z8E@m&@#8E@NODE_13NODE_107 lARC_133~m&@d8E@+Ưn&@[z8E@|3~m&@d8E@| m&@̷e8E@+Ưn&@5`i8E@щNm&@[z8E@NODE_12NODE_13 lARC_12C(VNm&@O@8E@KM'~m&@U8E@|KM'~m&@O@8E@]am&@:x&4I8E@GSm&@z2Q8E@C(VNm&@U8E@NODE_11NODE_15z LARC_11KM'~m&@=$8E@zm&@O@8E@|zm&@=$8E@W_]m&@28E@KM'~m&@O@8E@NODE_10NODE_11i ,ARC_10zm&@Tka8E@صm&@=$8E@|صm&@Tka8E@zm&@=$8E@NODE_9NODE_10 ] "5#qtriggerggi_alpha_roads_geomalpha_roadsCREATE TRIGGER "ggi_alpha_roads_geom" BEFORE INSERT ON "alpha_roads" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'alpha_roads.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT type FROM geometry_columns WHERE f_table_name = 'alpha_roads' AND f_geometry_column = 'geom' AND GeometryConstraints(NEW."geom", type, srid, 'XY') = 1) IS NULL; END #5#qtriggerggu_alpha_roads_geomalpha_roadsCREATE TRIGGER "ggu_alpha_roads_geom" BEFORE UPDATE ON "alpha_roads" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'alpha_roads.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT type FROM geometry_columns WHERE f_table_name = 'alpha_roads' AND f_geometry_column = 'geom' AND GeometryConstraints(NEW."geom", type, srid, 'XY') = 1) IS NULL; END SS?LNODE_1j&@ iT7E@TM?T k@?T<X$9m&@8O8E@TlFX6?TQCIiL alpha_roads node_fromnode_togeom?NL?Tk0Q?NODE_109{,"/m&@~8E@TlFX6?TO ,tU?Tm lJp?NODE_11KM'~m&@O@8E@T d BH?T;+O?T "z-O?NODE_1119 3n&@Pm8E@Tod}(CJ?TnrBlBV?T xŌ~?NODE_114\k&@W#8E@T`J-,6?NODE_123~m&@d8E@TpBrO^Y&?Tod}(CJ?T gR? NODE_13щNm&@[z8E@T #O?B?T/C>F?T gR? NODE_14c~m&@ʒ]8E@T ѰM?TO,tU? NODE_15C(VNm&@U8E@T ѰM+zQ?NODE_20CfYk&@,Pz68E@TU}g/?Trc5?Tm lJp?NODE_21?k&@4á28E@TU}g/?T"2K?T QiV?NODE_22Vnj&@kN8E@T64O?T QiV?Tb-^?NODE_23 QZi&@R7E@T6d:$U 2?TD=lqsA?Tb-^?NODE_24yZi&@!7E@T6d:$U 2?T k@?NODE_25 Rk&@C8E@TDV#E3?T=8TU??TR0f>VPA?T<X$+zQ?T%3N W?T$!Ӳ:qz?NODE_30r]l&@4V+8E@TAQ9<(=?TZċ@?T0-Y׬C?NODE_31Nl&@i}&8E@TAQ9<(=?TLG1\L?T'0 tM?NODE_32Nk&@UId8E@T |>D2?TN$ѼGo7?T'0 tM?NODE_33Hֆ/k&@,8E@T |>D2?T425I2?T!{-Ѽ5?NODE_34Akk&@+98E@T!{-Ѽ5?T"2K?Tj.A=U? NODE_35Ժh#2k&@8E@T#J>U-?TF1GT?TE={Jb?!NODE_36d9m&@{Z4S8E@Tc3/;##?Td;؟:H3?T$Ӳ:qz?"NODE_37M"l&@7E@TgK͇S2?Tf)t `dA&I?Te;R8W?*NODE_44##l&@ѕc 8E@T,#ܕ541?T8'kZ/\3?T+)ׅ);YB?+NODE_45::`m&@qs*8E@TY,5UR&?TX:z>?T-Aͮ4M?,NODE_46&]l&@9<8E@TJ5 =?T0Y׬C?TI@9J?.NODE_49Cpk&@c:7E@Ti6f:'?T10$xYP?TjA=U?/NODE_5Ƥk&@)7E@T7@=cB?T%[70_GL?TW8~U?0NODE_50\k&@Os7E@TRf>VPA?T1.$xYP?T2=9og?1NODE_51]k&@sV+8E@TG?.]:?T3kbUz,E?TF GT?2NODE_52Up6k&@6ɏ8E@T45I2?TS#JpWB?TTDMKS?3NODE_538>)Lm&@-GB8E@Tc!/;##?T5FN*?TbE"L?4NODE_548k&@LK8E@TUDR-0?T6O?TV%6Jd'Y?5NODE_57*>l&@ B8E@TK ]=?TJ- =?T9%E?6NODE_58k&@87E@ThKPC?Ti.f:'?T:73/8H?7NODE_6l# l&@S7E@T/@=cB?T:63/8H?T>v QQ?8NODE_62Akk&@XS8E@T=TU??T>9!gD?TW/~U?9NODE_63k&@(#8E@T?#!/m7;?T>8!gD?TaK~^ϱoE?:NODE_65jm&@7!8E@TAD,=?TX+z>?;NODE_66P黶m&@Pe8E@TB<qz(?Td!؟:H3?Te)R8W?<NODE_67Nm m&@8E@TCH2jx#Q?TB;qz(?T[F|G8?=NODE_69/4'/j&@!67E@TDlqsA?TE {Jb?T209og?>NODE_7#)l&@^7E@T7)dA&I?T7v QQ?TA`??NODE_72`^6k&@ϻ08E@TH@IGK%?T'$1jJ38?TG1.]:?@NODE_73ǝk&@m½28E@TH?IGK%?TMF?TI-9J?ANODE_8lm&@-7E@TEd/sK?T-+ͮ4M?T>`?BNODE_80Um&@Dc8E@TprO^Y&?Tq >?TPCz[!`B?CNODE_81m&@3Rs8E@TPBz[!`B?T/ >F?TQNL?DNODE_85Ժh#2k&@ma'8E@TU4R-0?TV#E3?TT2MKS?ENODE_9صm&@Tka8E@T  ijU-?T_IS%.?T`-,6?KNODE_97H̢fk&@JbI7E@Th6PC?Tg"͇S2?Ta9~^ϱoE?  $55;tablealpha_roads_net_dataalpha_roads_net_dataCREATE TABLE "alpha_roads_net_data" (Id INTEGER PRIMARY KEY, NetworkData BLOB NOT NULL)~%++3tablealpha_roads_netalpha_roads_netCREATE VIRTUAL TABLE "alpha_roads_net" USING VirtualNetwork("alpha_roads_net_data")          ~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! libspatialite-4.1.1/test/sql_stmt_tests/geomtype46.testcase0000664000175000017500000000067012163502134021075 00000000000000geometrytype - GEOMETRYCOLLECTIONM - point and polygon :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("GEOMETRYCOLLECTIONM(POINTM(4 6 0),POLYGONM((4 6 1,7 10 1, 12 3 2, 4 6 1)))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) GEOMETRYCOLLECTION M XYM GEOMETRYCOLLECTIONlibspatialite-4.1.1/test/sql_stmt_tests/geomtype3.testcase0000664000175000017500000000046412163502134021007 00000000000000geometrytype3 - POINTZM :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom) from (SELECT GeomFromText("POINTZM(-71.1043443253471 42.315067601582900 26.2 3)") as geom) dummy; 1 # rows (not including the header row) 2 # columns GeometryType(geom) CoordDimension(geom) POINT ZM XYZMlibspatialite-4.1.1/test/sql_stmt_tests/fromgml9.testcase0000664000175000017500000000134212163502134020623 00000000000000FromGML - MultiPoint v2 (no namespace) :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('1,23,45,6')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('1,23,45,6')):0 SRID=4326;MULTIPOINT(1 2,3 4,5 6) libspatialite-4.1.1/test/sql_stmt_tests/makearc1.testcase0000664000175000017500000000026412163502134020555 00000000000000makearc1 - NULL cx :memory: #use in-memory database SELECT MakeArc(NULL, 0, 100, 30, 60); 1 # rows (not including the header row) 1 # columns MakeArc(NULL, 0, 100, 30, 60) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/normalizelonlat5.testcase0000664000175000017500000000045112163502134022366 00000000000000normalizelonlat- out of range positive longitude to negative longitude :memory: #use in-memory database SELECT AsText(NormalizeLonLat(GeomFromText("POINT(181 2)", 4326))) 1 # rows (not including the header row) 1 # columns AsText(NormalizeLonLat(GeomFromText("POINT(181 2)", 4326))) POINT(-179 2) libspatialite-4.1.1/test/sql_stmt_tests/makecircularsector19.testcase0000664000175000017500000000036612163502134023130 00000000000000makecircularsector19 - WGS84 srid :memory: #use in-memory database SELECT ST_Area(MakeCircularSector(0, 0, 100, 30, 60, 4326)); 1 # rows (not including the header row) 1 # columns ST_Area(MakeCircularSector(0, 0, 100, 30, 60, 4326)) 2604.7226:4 libspatialite-4.1.1/test/sql_stmt_tests/forcenull20.testcase0000664000175000017500000000027312163502134021224 00000000000000ForceAsNull() - NULL/BLOB :memory: #use in-memory database SELECT ForceAsNull(NULL, zeroblob(4)) 1 # rows (not including the header row) 1 # columns ForceAsNull(NULL, zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/casttomulti7.testcase0000664000175000017500000000061212163502133021524 00000000000000casttomulti - LINESTRING and POINT :memory: #use in-memory database SELECT AsText(CastToMulti(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(0 1, 2 1, 2 4, 0 4),POINT(4 2.3))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToMulti(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(0 1, 2 1, 2 4, 0 4),POINT(4 2.3))"))) GEOMETRYCOLLECTION(POINT(4 2.3), LINESTRING(0 1, 2 1, 2 4, 0 4)) libspatialite-4.1.1/test/sql_stmt_tests/geomfromtext20.testcase0000664000175000017500000000041512163502134021751 00000000000000geomfromtext20 :memory: #use in-memory database SELECT AsText(GeomFromText('MULTIPOINTZ((0 1 9), (2 3 9), (4 5 9))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('MULTIPOINTZ((0 1 9), (2 3 9), (4 5 9))')); MULTIPOINT Z(0 1 9, 2 3 9, 4 5 9) libspatialite-4.1.1/test/sql_stmt_tests/wkb36.testcase0000664000175000017500000000231212163502134020021 00000000000000Hex Wkb: MultiPolygon XYZM (single polygon with interior ring) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("MULTIPOLYGONZM(((10 10 100 1, 15 10 101 2, 15 15 102 3, 10 15 103 3, 10 10 100 1), (11 11 100 1, 12 11 101 2, 12 12 102 3, 11 12 103 3, 11 11 100 1)))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("MULTIPOLYGONZM(((10 10 100 1, 15 10 101 2, 15 15 102 3, 10 15 103 3, 10 10 100 1), (11 11 100 1, 12 11 101 2, 12 12 102 3, 11 12 103 3, 11 11 100 1)))", 4326))); 01BE0B00000100000001BB0B00000200000005000000000000000000244000000000000024400000000000005940000000000000F03F0000000000002E400000000000002440000000000040594000000000000000400000000000002E400000000000002E400000000000805940000000000000084000000000000024400000000000002E400000000000C059400000000000000840000000000000244000000000000024400000000000005940000000000000F03F05000000000000000000264000000000000026400000000000005940000000000000F03F00000000000028400000000000002640000000000040594000000000000000400000000000002840000000000000284000000000008059400000000000000840000000000000264000000000000028400000000000C059400000000000000840000000000000264000000000000026400000000000005940000000000000F03F libspatialite-4.1.1/test/sql_stmt_tests/geomtype30.testcase0000664000175000017500000000064712163502134021072 00000000000000geometrytype - GEOMETRYCOLLECTIONZ :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(4 6 4), POINTZ(3 3 29), LINESTRINGZ(4 6 0,7 10 0))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) GEOMETRYCOLLECTION Z XYZ GEOMETRYCOLLECTIONlibspatialite-4.1.1/test/sql_stmt_tests/makearc18.testcase0000664000175000017500000000031312163502134020640 00000000000000makearc18 - BLOB srid :memory: #use in-memory database SELECT MakeArc(0, 0, 100, 30, 60, zeroblob(4)); 1 # rows (not including the header row) 1 # columns MakeArc(0, 0, 100, 30, 60, zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/fromWkb1.testcase0000664000175000017500000000053112163502134020556 00000000000000fromWkb :memory: #use in-memory database SELECT Hex(GeomFromWkb(AsBinary(GeomFromText("Point(1 2)", 4326)))) 1 # rows (not including the header row) 1 # columns Hex(GeomFromWkb(AsBinary(GeomFromText("Point(1 2)", 4326)))) 000100000000000000000000F03F0000000000000040000000000000F03F00000000000000407C01000000000000000000F03F0000000000000040FE libspatialite-4.1.1/test/sql_stmt_tests/us_ch_m.testcase0000664000175000017500000000023712163502134020506 00000000000000US chains to metres :memory: #use in-memory database SELECT CvtFromUsCh(100); 1 # rows (not including the header row) 1 # columns CvtFromUsCh(100); 2011.684:8 libspatialite-4.1.1/test/sql_stmt_tests/geomtype35.testcase0000664000175000017500000000051312163502134021067 00000000000000geometrytype - GEOMETRYCOLLECTION only linestring :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom) from (SELECT GeomFromText("GEOMETRYCOLLECTION(LINESTRING(4 6, 10 0))") as geom) dummy; 1 # rows (not including the header row) 2 # columns GeometryType(geom) CoordDimension(geom) GEOMETRYCOLLECTION XYlibspatialite-4.1.1/test/sql_stmt_tests/makeline6.testcase0000664000175000017500000000031312163502134020737 00000000000000makeline6 :memory: #use in-memory database SELECT MakeLine("hello", GeomFromText("POINT(1 2)")); 1 # rows (not including the header row) 1 # columns MakeLine("hello", GeomFromText("POINT(1 2)")) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/forcenull2.testcase0000664000175000017500000000025312163502134021142 00000000000000ForceAsNull() - INTEGER/TEXT :memory: #use in-memory database SELECT ForceAsNull(1, 'alpha') 1 # rows (not including the header row) 1 # columns ForceAsNull(1, 'alpha') 1 libspatialite-4.1.1/test/sql_stmt_tests/collect55.testcase0000664000175000017500000000131312163502133020663 00000000000000collect - PolygonZM, Polygon :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POLYGONZM((1 2 4 1, 3 4 2 1, 3 2 3 2, 1 2 4 1),(1.5 2.5 4 1, 2.5 3.5 3 2, 2.5 2.3 3 1, 1.5 2.5 4 1))"), GeomFromText("POLYGON((4 5, 1 2, 4 2, 4 5),(2 3, 3 4, 3 3, 2 3))"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POLYGONZM((1 2 4 1, 3 4 2 1, 3 2 3 2, 1 2 4 1),(1.5 2.5 4 1, 2.5 3.5 3 2, 2.5 2.3 3 1, 1.5 2.5 4 1))"), GeomFromText("POLYGON((4 5, 1 2, 4 2, 4 5),(2 3, 3 4, 3 3, 2 3))"))) MULTIPOLYGON ZM(((1 2 4 1, 3 4 2 1, 3 2 3 2, 1 2 4 1), (1.5 2.5 4 1, 2.5 3.5 3 2, 2.5 2.3 3 1, 1.5 2.5 4 1)), ((4 5 0 0, 1 2 0 0, 4 2 0 0, 4 5 0 0), (2 3 0 0, 3 4 0 0, 3 3 0 0, 2 3 0 0))) libspatialite-4.1.1/test/sql_stmt_tests/ewkb6.testcase0000664000175000017500000000054212163502134020106 00000000000000EWkb: Linestring XYZM :memory: #use in-memory database SELECT AsText(GeomFromEWkb('01020000E0E610000002000000000000000000F03F0000000000000040000000000000594000000000000024400000000000000840000000000000104000000000004059400000000000002640')) AS wkt_geom; 1 # rows (not including the header row) 1 # columns wkt_geom LINESTRING ZM(1 2 100 10, 3 4 101 11) libspatialite-4.1.1/test/sql_stmt_tests/ring20.testcase0000664000175000017500000000060112163502134020165 00000000000000InteriorRingN - float interior (error) :memory: #use in-memory database SELECT InteriorRingN(GeomFromText("POLYGON((0 0, 0 4, 4 4, 4 0, 0 0),(1 1, 1 3, 3 3, 3 1, 1 1),(2 2, 2 3, 3 3, 3 2, 2 2))"), 2.3); 1 # rows (not including the header row) 1 # columns InteriorRingN(GeomFromText("POLYGON((0 0, 0 4, 4 4, 4 0, 0 0),(1 1, 1 3, 3 3, 3 1, 1 1),(2 2, 2 3, 3 3, 3 2, 2 2))"), 2.3) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/wkb35.testcase0000664000175000017500000000172712163502134020031 00000000000000Hex Wkb: MultiPolygon XYM (single polygon with interior ring) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("MULTIPOLYGONM(((10 10 1, 15 10 2, 15 15 3, 10 15 3, 10 10 1), (11 11 1, 12 11 2, 12 12 3, 11 12 3, 11 11 1)))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("MULTIPOLYGONM(((10 10 1, 15 10 2, 15 15 3, 10 15 3, 10 10 1), (11 11 1, 12 11 2, 12 12 3, 11 12 3, 11 11 1)))", 4326))); 01D60700000100000001D3070000020000000500000000000000000024400000000000002440000000000000F03F0000000000002E40000000000000244000000000000000400000000000002E400000000000002E40000000000000084000000000000024400000000000002E40000000000000084000000000000024400000000000002440000000000000F03F0500000000000000000026400000000000002640000000000000F03F00000000000028400000000000002640000000000000004000000000000028400000000000002840000000000000084000000000000026400000000000002840000000000000084000000000000026400000000000002640000000000000F03F libspatialite-4.1.1/test/sql_stmt_tests/collect59.testcase0000664000175000017500000000030712163502133020671 00000000000000collect - step non-blob :memory: #use in-memory database SELECT AsText(Collect(geom)) FROM (SELECT 300 as geom) dummy; 1 # rows (not including the header row) 1 # columns AsText(Collect(geom)) (NULL)libspatialite-4.1.1/test/sql_stmt_tests/makeline.testcase0000664000175000017500000000041712163502134020656 00000000000000makeline1 :memory: #use in-memory database SELECT AsText(MakeLine(GeomFromText("POINT(0 0)"), GeomFromText("POINT(1 2)"))); 1 # rows (not including the header row) 1 # columns AsText(MakeLine(GeomFromText("POINT(0 0)"), GeomFromText("POINT(1 2)"))) LINESTRING(0 0, 1 2) libspatialite-4.1.1/test/sql_stmt_tests/fromgml15.testcase0000664000175000017500000000240212163502134020676 00000000000000FromGML - GeometryCollection v2 (no namescpaces) :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('8,89,9 10,100,0 5,0 5,5 0,5 0,01,1 2,1 2,2 1,2 1,1')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('8,89,9 10,100,0 5,0 5,5 0,5 0,01,1 2,1 2,2 1,2 1,1')):0 SRID=4326;GEOMETRYCOLLECTION(POINT(8 8),LINESTRING(9 9,10 10),POLYGON((0 0,5 0,5 5,0 5,0 0),(1 1,2 1,2 2,1 2,1 1))) libspatialite-4.1.1/test/sql_stmt_tests/casttotext6.testcase0000664000175000017500000000026712163502133021363 00000000000000CastToText() - INTEGER, NULL zero_pad :memory: #use in-memory database SELECT CastToText(123, NULL) 1 # rows (not including the header row) 1 # columns CastToText(123, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/togars1.testcase0000664000175000017500000000034212163502134020446 00000000000000togars - southwest :memory: #use in-memory database SELECT ToGARS(GeomFromText("Point(-179.999 -89.999)", 4326)) 1 # rows (not including the header row) 1 # columns ToGARS(GeomFromText("Point(-179.999 -89.999)", 4326)) 001AA37libspatialite-4.1.1/test/sql_stmt_tests/forcenull21.testcase0000664000175000017500000000025012163502134021220 00000000000000ForceAsNull() - INTEGER - mismatching :memory: #use in-memory database SELECT ForceAsNull(1, 2) 1 # rows (not including the header row) 1 # columns ForceAsNull(1, 2) 1 libspatialite-4.1.1/test/sql_stmt_tests/addpoint23.testcase0000664000175000017500000000047412163502133021042 00000000000000ST_AddPoint() - append (no index) Z :memory: #use in-memory database SELECT AsText(AddPoint(GeomFromText('LINESTRINGZ(0 0 1, 1 0 2)'), MakePoint(1, 1))) 1 # rows (not including the header row) 1 # columns AsText(AddPoint(GeomFromText('LINESTRINGZ(0 0 1, 1 0 2)'), MakePoint(1, 1))) LINESTRING Z(0 0 1, 1 0 2, 1 1 0) libspatialite-4.1.1/test/sql_stmt_tests/collectextract15.testcase0000664000175000017500000000045112163502133022254 00000000000000Collection Extract - Extract linestring :memory: #use in-memory database SELECT AsText(CollectionExtract(GeomFromText("LINESTRING(1 2, 4 3)"), 2)); 1 # rows (not including the header row) 1 # columns AsText(CollectionExtract(GeomFromText("LINESTRING(1 2, 4 3)"), 2)) MULTILINESTRING((1 2, 4 3)) libspatialite-4.1.1/test/sql_stmt_tests/makecircularsector8.testcase0000664000175000017500000000033312163502134023040 00000000000000makecircularsector8 - text radius :memory: #use in-memory database SELECT MakeCircularSector(0, 0, 'alpha', 30, 60); 1 # rows (not including the header row) 1 # columns MakeCircularSector(0, 0, 'alpha', 30, 60) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/dissolve6.testcase0000664000175000017500000000025712163502133021010 00000000000000dissolve points - text input :memory: #use in-memory database SELECT DissolvePoints("hell0") 1 # rows (not including the header row) 1 # columns DissolvePoints("hell0") (NULL)libspatialite-4.1.1/test/sql_stmt_tests/casttoxym1.testcase0000664000175000017500000000025012163502133021177 00000000000000casttoxym - bad blob :memory: #use in-memory database SELECT CastToXYM(zeroblob(99)) 1 # rows (not including the header row) 1 # columns CastToXYM(zeroblob(99)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/forcenull18.testcase0000664000175000017500000000025512163502134021233 00000000000000ForceAsNull() - NULL/DOUBLE :memory: #use in-memory database SELECT ForceAsNull(NULL, 1.5) 1 # rows (not including the header row) 1 # columns ForceAsNull(NULL, 1.5) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/nm_m.testcase0000664000175000017500000000023112163502134020011 00000000000000nautical miles to metres :memory: #use in-memory database SELECT CvtFromKmi(1); 1 # rows (not including the header row) 1 # columns CvtFromKmi(1); 1852.0libspatialite-4.1.1/test/sql_stmt_tests/makepoint15.testcase0000664000175000017500000000034112163502134021222 00000000000000makepoint - MakepointZM, bad SRID arg :memory: #use in-memory database SELECT AsText(MakePointZM(-71, 42, 3, 4, "hello")) 1 # rows (not including the header row) 1 # columns AsText(MakePointZM(-71, 42, 3, 4, "hello")) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makeline3.testcase0000664000175000017500000000022112163502134020732 00000000000000makeline3 :memory: #use in-memory database SELECT MakeLine("text"); 1 # rows (not including the header row) 1 # columns MakeLine("text") (NULL) libspatialite-4.1.1/test/sql_stmt_tests/casttoxyzm3.testcase0000664000175000017500000000035712163502133021403 00000000000000casttoxy - POINT :memory: #use in-memory database SELECT AsText(CastToXYZM(GeomFromText("POINTZM(4 3 10 20)"))) 1 # rows (not including the header row) 1 # columns AsText(CastToXYZM(GeomFromText("POINTZM(4 3 10 20)"))) POINT ZM(4 3 10 20) libspatialite-4.1.1/test/sql_stmt_tests/casttotext13.testcase0000664000175000017500000000030412163502133021431 00000000000000CastToText() - DOUBLE, TEXT zero_pad :memory: #use in-memory database SELECT CastToText(123.456, 'alpha') 1 # rows (not including the header row) 1 # columns CastToText(123.456, 'alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_tests/st_z3.testcase0000664000175000017500000000022212163502134020125 00000000000000ST_Z - text :memory: #use in-memory database SELECT Z("hello world"); 1 # rows (not including the header row) 1 # columns Z("hello world") (NULL) libspatialite-4.1.1/test/sql_stmt_tests/casttoint3.testcase0000664000175000017500000000026012163502133021157 00000000000000CastToInteger() - TEXT invalid :memory: #use in-memory database SELECT CastToInteger('alpha') 1 # rows (not including the header row) 1 # columns CastToInteger('alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_tests/numgeometries3.testcase0000664000175000017500000000026612163502134022041 00000000000000numgeometries - single point :memory: #use in-memory database SELECT NumGeometries(MakePoint(2,3)) 1 # rows (not including the header row) 1 # columns NumGeometries(MakePoint(2,3)) 1libspatialite-4.1.1/test/sql_stmt_tests/fromgml26.testcase0000664000175000017500000000243112163502134020702 00000000000000FromGML - MultiPolygon v3 3D (no namespace) :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('0 0 10 5 0 11 5 5 12 0 5 13 0 0 101 1 5 2 1 5 2 2 5 1 2 5 1 1 52 2 10 3 2 11 3 3 12 2 3 13 2 2 10')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('0 0 10 5 0 11 5 5 12 0 5 13 0 0 101 1 5 2 1 5 2 2 5 1 2 5 1 1 52 2 10 3 2 11 3 3 12 2 3 13 2 2 10')):0 SRID=4326;MULTIPOLYGON(((0 0 10,5 0 11,5 5 12,0 5 13,0 0 10),(1 1 5,2 1 5,2 2 5,1 2 5,1 1 5)),((2 2 10,3 2 11,3 3 12,2 3 13,2 2 10))) libspatialite-4.1.1/test/sql_stmt_tests/dissolve17.testcase0000664000175000017500000000060712163502133021071 00000000000000dissolve - GEOMETRY COLLECTION :memory: #use in-memory database SELECT AsText(DissolveSegments(geom)),AsText(DissolvePoints(geom)) from (SELECT GeomFromText("GEOMETRYCOLLECTIONM(LINESTRINGM(4 6 0,7 10 0))") as geom) dummy; 1 # rows (not including the header row) 2 # columns AsText(DissolveSegments(geom)) AsText(DissolvePoints(geom)) LINESTRING M(4 6 0, 7 10 0) MULTIPOINT M(4 6 0, 7 10 0) libspatialite-4.1.1/test/sql_stmt_tests/fromewkt2.testcase0000664000175000017500000000015312163502134021006 00000000000000From EWKT - bad text :memory: SELECT GeomFromEwkt("g'day") 1 # rows 1 # column GeomFromEwkt("g'day") (NULL)libspatialite-4.1.1/test/sql_stmt_tests/asgml9.testcase0000664000175000017500000000033312163502133020261 00000000000000asgml - bad args (non-int 2nd arg) :memory: #use in-memory database SELECT asgml(GeomFromText("Point(1 2)"), "four"); 1 # rows (not including the header row) 1 # columns asgml(GeomFromText("Point(1 2)"), "four") (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makepointzm-null10.testcase0000664000175000017500000000040112163502134022531 00000000000000makepointzm-null10 :memory: #use in-memory database SELECT AsText(MakePointZM(26.0, 42.3150676015829, 0.0038723129645, 'beta')); 1 # rows (not including the header row) 1 # columns AsText(MakePointZM(26.0, 42.3150676015829, 0.0038723129645, 'beta')) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geomtype41.testcase0000664000175000017500000000071512163502134021070 00000000000000geometrytype - GEOMETRYCOLLECTIONZ - two polygons :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("GEOMETRYCOLLECTIONZ(POLYGONZ((4 6 0,7 10 0, 12 3 1, 4 6 0)),POLYGONZ((4 6 1,7 10 1, 12 3 2, 4 6 1)))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) GEOMETRYCOLLECTION Z XYZ GEOMETRYCOLLECTIONlibspatialite-4.1.1/test/sql_stmt_tests/reverse1.testcase0000664000175000017500000000025112163502134020621 00000000000000reverse - zeroblob :memory: #use in-memory database SELECT ST_Reverse(zeroblob(99)); 1 # rows (not including the header row) 1 # columns ST_Reverse(zeroblob(99)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/endpoint1.testcase0000664000175000017500000000037612163502133020775 00000000000000endpoint - regular LINESTRING :memory: #use in-memory database SELECT AsText(EndPoint(GeomFromText("LINESTRING(4 0, 4 4, 8 4)"))); 1 # rows (not including the header row) 1 # columns AsText(EndPoint(GeomFromText("LINESTRING(4 0, 4 4, 8 4)"))) POINT(8 4) libspatialite-4.1.1/test/sql_stmt_tests/fromgml55.testcase0000664000175000017500000000162512163502134020710 00000000000000FromGML - MultiLinestring v3 3D (no namespace) :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('1 2 10 3 4 11 5 6 127 8 13 9 10 13')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('1 2 10 3 4 11 5 6 127 8 13 9 10 13')):0 SRID=4326;MULTILINESTRING((1 2 10,3 4 11,5 6 12),(7 8 13,9 10 13)) libspatialite-4.1.1/test/sql_stmt_tests/us_ft_m.testcase0000664000175000017500000000023012163502134020516 00000000000000US feet to metres :memory: #use in-memory database SELECT CvtFromUsFt(10); 1 # rows (not including the header row) 1 # columns CvtFromUsFt(10); 3.048:5 libspatialite-4.1.1/test/sql_stmt_tests/badGML6.testcase0000664000175000017500000000244012163502133020242 00000000000000bad GML: MultiPolygon :memory: #use in-memory database SELECT GeomFromGML('0,0 4,0 4,4 0,4 0,01,1 2,1 2,2 1,2 1,15,5 6,5 6,6 5,6 5,50,0 4,0 4,4 0,4 0,01,1 2,1 2,2 1,2 1,15,5 6,5 6,6 5,6 5,5-112.3372510731295,36.14888505105317 -112.3356128688403,36.14781540589019 -112.3368169371048,36.14658677734382 -112.3384408457543,36.14762778914076 -112.3372510731295,36.14888505105317")) 1 # rows 1 # column AsText(GeomFromKML("-112.3372510731295,36.14888505105317 -112.3356128688403,36.14781540589019 -112.3368169371048,36.14658677734382 -112.3384408457543,36.14762778914076 -112.3372510731295,36.14888505105317")) POLYGON((-112.337251 36.148885, -112.335613 36.147815, -112.336817 36.146587, -112.338441 36.147628, -112.337251 36.148885))libspatialite-4.1.1/test/sql_stmt_tests/geomtype13.testcase0000664000175000017500000000062412163502134021066 00000000000000geometrytype - MULTIPOLYGON :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("MULTIPOLYGON (((30 20, 10 40, 45 40, 30 20)),((15 5, 40 10, 10 20, 5 10, 15 5)))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) MULTIPOLYGON XY MULTIPOLYGONlibspatialite-4.1.1/test/sql_stmt_tests/scalecoords6.testcase0000664000175000017500000000152312163502134021457 00000000000000scale coords - POLYGON :memory: #use in-memory database SELECT AsText(ScaleCoords(geom, 0)), AsText(ScaleCoords(geom, 0.0)), AsText(ScaleCoords(geom, 2, 3.0)), AsText(ScaleCoords(geom, 1.0, -1)), ScaleCoords(zeroblob(20), 10), ScaleCoords(geom, "hello"), ScaleCoords(geom, 1, "hello"), ScaleCoords("foo", 2) FROM (SELECT GeomFromText("POLYGON((1 2, 1 3, 2 3, 2 2, 1 2))") as geom) dummy; 1 # rows (not including the header row) 8 # columns AsText(ScaleCoords(geom, 0)) AsText(ScaleCoords(geom, 0.0)) AsText(ScaleCoords(geom, 2, 3.0)) AsText(ScaleCoords(geom, 1.0, -1)) ScaleCoords(zeroblob(20), 10) ScaleCoords(geom, "hello") ScaleCoords(geom, 1, "hello") ScaleCoords("foo", 2) POLYGON((0 0, 0 0, 0 0, 0 0, 0 0)) POLYGON((0 0, 0 0, 0 0, 0 0, 0 0)) POLYGON((2 6, 2 9, 4 9, 4 6, 2 6)) POLYGON((1 -2, 1 -3, 2 -3, 2 -2, 1 -2)) (NULL) (NULL) (NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/badGeoJSON4.testcase0000664000175000017500000000042612163502133021027 00000000000000bad GeoJSON: MultiPoint :memory: #use in-memory database SELECT GeomFromGeoJSON('{"type":"MultiPoint","coordinates":[[1.1,2.2],[3.3,4.4]]'); 1 # rows (not including the header row) 1 # columns GeomFromGeoJSON('{"type":"MultiPoint","coordinates":[[1.1,2.2],[3.3,4.4]]'):0 (NULL) libspatialite-4.1.1/test/sql_stmt_tests/ewkb2.testcase0000664000175000017500000000036312163502134020103 00000000000000EWkb: Point XYZ :memory: #use in-memory database SELECT AsText(GeomFromEWkb('01010000A0E61000009A9999999999F13F9A999999999901400000000000005940')) AS wkt_geom; 1 # rows (not including the header row) 1 # columns wkt_geom POINT Z(1.1 2.2 100) libspatialite-4.1.1/test/sql_stmt_tests/casttosingle6.testcase0000664000175000017500000000052312163502133021653 00000000000000casttosingle - LINESTRING and POINT :memory: #use in-memory database SELECT AsText(CastToSingle(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(0 1, 2 1, 2 4, 0 4),POINT(4 2.3))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToSingle(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(0 1, 2 1, 2 4, 0 4),POINT(4 2.3))"))) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/badKML1.testcase0000664000175000017500000000036512163502133020245 00000000000000bad KML: Point :memory: #use in-memory database SELECT GeomFromKML('1.1,2.21.1,2.2Mqypdx\egcC//cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc"E!1A"Qa2q#3BR$4brCS%DcTs.!1AQaq"2BR# ?I$I$I$ $@$II$I$ $@$II$I$ $@$II$I$ $@$II$I$ $@$II$I$ $@$II$I$ $@$II$I$ $@$II$I$ $@$II$I$ $@$II$I$ $@$II$I$ $@$II$I$ $@$II$I$ $@$II$I$ $@$II$I$ $@$II$I$ $@$II$I$ $@$II$I$ $@$II$.~G]pPI8~9ڲ6V)'Ժ0y?Pz$bi$@$II$I$ $@$II$I$ $@$II$I$ $@$II$I2Nyp%*H$ rI$ $HI I$I$$HI I$I$$HI I$I$$HI I$I$$HI I$I$$HI I$I$$HI I$I$$HI I$I$$HI I$I$$HI I$I$$HI I$I$$HI I$I$$HI I$I$$HI I$I$$HI 93v9TuPz1kYkh$II$I$$HI I$I$$HI I$I$$HI I$I$$Hmr3 .H%I$8ErL)W$pRI$ $@$II$I$ $@$I$@$@I$I$$HI I$I$$HI I$I$$HI I$I$$HI I$I$$HI I$I$$HI I$I$$HI I$I$$HI I$I$$HI I$I$$HI I$I$$HI I$I$$HI TP ^3C9+?c9e򋎛DrFAF_8XK\t]Q\8I$I$@$II$I$ $@$II$I$ $@$II$I$ $@$J\'3mH ?V8]&:ru꯯= yw gWJ*mKBIH=va]j=\dʮ)0r-ۼUX`uHqqrD)(كc>4{=$Bj+&YmZZ,;v8Ӓ)VwnqsF\trrJI$I$$HI TP +pKj*.kk%Ѻq+/eҦkmMI5$ $@$II$I$ $@$II$I$ $@$II$I$ $@$II$I$ $@$II$I$ $@$II$I$ $@$II$I$ $@$II$I$ $@$II$I$ $@$II$I$ $@$II$I$ $@$II*PVjhG똥*?*s}"=P?jMwnmQLྯ Um/lk\vK5 z@v<㼩a=I1jI$I$ $@$II$I$ $@$II$I$ $@$II$I$:NަKNg(k6U ^>vs3yGۡՒ2F1RؒznIaiI6b@J D3^@7+lrp0 ?4H0@Fô{E}54swE{UB'wLV9^WWW5ӵni񜁚FOUoZe^eܱ0۹OT_v%FqTB1xٹ7 K1?ս\Cgs f:=%n S[x!Owcʒow.3=bI8 ԕB#5x:D[Zf/5VMLwqO*<$ :Pkpsۼ,,[@.TI$4I I$I$$HI I$I$$HI I$I$$HI I$I$$HI I$I$$HI I$I$$HI I$I$$HI I$I$$HI I$I$$2KH7$p4I I$I$$HT߀R`Bʜ"-f0O2 jF[N11n\ ?%?9!!iZV #=eK1i5-u>ЃM^wgq+u/ac"=f6Ҏasu3SUYnGY:vo~g㤽+e7)mR;tT˻|%o-0IA騥uM^s%zBTv3:*08Iu;E[T9Px b3:N^Ny39iҒTI$I$$HI I$I$$HI I$I$$HI I$I$$HI I$I$$HI I$I$$HI I$I$$T rJrJŵ7&q I i$$ d K/nMWr?Vg0%L2*sK!~v[t5wy<(3 Pobg&6s2ਹ?n.Ss99iDK'u#KOVիtșX9^j뎱rf.$Zjkf#HuܙV |Zϕ`t--mԒq,UT="|/<2%c.Gk}w=,ss/'r?/6[M6Xa02Dz-ڽٓ,.&Œ: a3vqز<[l3$w97 L#7lDNޑ N;u^GQ{*flIɈ|ÁL9)XIgo+9$;21oLJTIsl˟0?AIY[9).joP?ȿ)rݣڑ?2|xH8^z֧9}|OUoƝF,@ p/~Ҷߴ<񾆯wxd?l3V+y-}Z<3/g$B]Z6;vi|Uė*\FI$I$ $@$II$I$ *I O? 00NKETf-Lciw)?P"M*/''> T+`d NOoxWff ~X<{K,{Ms3X I- [2=x&jq"(^O1oٲp˴k~tZP> JQ~]dtf rAX;@m<>ҍ &fX;lqgQə碂>a 5v:`GU8wțҿ,IL2j=Ľ1le/ r 9 :^o49:rKI$II$I$ $@$II$I$ $@$zaB 7cV䓘Kt]n`M2$ْp޶ f>5([?}Q]y'tI%u?>I9tZ _5Q>3}'N\R_[V#]DkT$HI I$I$$HI I$I$$H.HN]oB͍c N|F'Xq1hWqj ' ^w.ON֮Jg9\w&gBӷ~}d/^q*a/u$$p>g>!6Ը Z6;[OOwi(8ϲ#w(8_ZGa,ڋ/:.M[zR+ٹz0~xϤgԼNUUI=\8UMZL7 `pfT-8*a=)>#i2iD[V?0mc-G;'6kS(12I]Mu]sƬ7{N6㉥礩dvG\N}cDz<)ȭz)f;= fiFzEƫ\+DfCfSY|ٲrf\i 8 qGA48l x9Q67:`!9a'(A/8wY" D;¨eD:A9hחMIJl LGk0٫$xkW<37^zz`T5y#%?)W?OP9-g.Q?\gLO'b9^?ZuFKnٜcF˖0T[ۘ^YFv[$t'HQIP۴!)$8 Mu-A,YuA؊Df(ROc+ըTXYg- tAfEoLWdsW Q#dLӂ>#ȻrO#gZ*I.IR@.I$II$I$ $ I$Z~`3%i9&Y^t'Grq}YFn]LEa>S~`D& JtPAKȒg&`m c0q!=`%>`1$~0,tϼCQẠ J3jpg(Т:ĹK.IRYh5*)g8{~?hQ5.|YE}U}nyG$µSՌ qOJ?cƔ=5?$c7 Sxø*lfSElXxD}E$1㉽6x&/ϨciFy?:Sļ63 l"_Prb1dt1l+:cΨV-}GW1~SYԧ'%+:t#5bڪ'jX Z kc Z&XO@%0nNmmՌX5$ lV0q*q[xUZ #i93WV3wYU2ѤM% ʾ=eY {H*r'.dƮq. 5O5sbKdgFEᐋq9}Xršb8)Ulo!M *>vۂ]PP;E^ q  a}"0 Q~1(5A_#cX$BrFW&R 3uNڥNz~:-`Fz9s@5$#rtoKs Y4UZd.MNP`锞De[&\dL"_np?XV$q fʨ c( nR@/nGIvf#T^cߙg 0b.֯_ q"U^٬ ~vi.Uis&q8MDg/X'z/j,?+3C)# Yl ԰uRq5gۏ}`}O5<,WۉP `(W w1a 8JAC'9{‡=3&zǼ5%-zd]MR#5]5yQJJInNq/fM[kF~3s#=:G1ʽcx}%-osLnaXDewo8A[⺗N{`E;1-b)k9ogG1me_& $\]C@ʤRKJ9~)3,+'F Mp㤯5G_7ّ0 _Pd &2 .}($ DJۘ(XVe_r󙌜X'3mdlh$[,Lߥӊ3;>7mU9I i$@$II$I$Iݧ%c7y+O[qe㚉1qR bc͑į/zjnle> *xqViXL+,}fvct*[B#%ṏ )k˜A:I0:O~,OnOF )f6}epxV$5'ͮFy0ǃ/^Қz-T#/GFd' pxdQ:?YW ΍?Ge΄I%KI I$I$6ؔXUy$AEzW.=E?L^*ӓZ-f;?C3PBd!ǩ'~b`HQXmVOUjla(/é9q BIB(1!QcSc&0qƢwYshFv*?y<ׯ3l'&c/#P3'Ԑa$=ln~zwkm]Ğb#kF1~U֑]{&r>gZlrS?#u0h cm5WLy㼲N[wI&^H0C0f ;SKr'A*"l P|G5k``NY(%XV-.Ԁ6_w04𿬯oz*СsoI͖,ޓ s??xI YG2f(clUU0q[]GCPBܡؤĬe0ȎՋgk7go 1kUBusO'gG!l8^ԝznbcV͘Ty| n?ي3BIS#^H${D>0/s.jNL8>m 3;˪.I+f8l( (8b1; BJ.&F?|rzJ;urW$“Z6!s2N:H*1' r ,8kQsĩZ8qCrzvt+u ȊkI=tRn[[l9+ (>T=RP4h}9=cWkmY \.!XJ̀cklj¹Lz C, ]rKcԧ1M1@D_gdnyep,?Wb?+Z+`92eO'$2XF ؓmݬr>IlWM};<JVE0FTeUg#rPs=&0?$qnCpDXX Uaט!5ĮZuwAF(~ @2Y_]e#畚̐Q_-˱$r?iuA13 rdn}Ր1;&vFǿ1  GoБt;-y{Ĭr$V`H Y` c~fI=ӟyA$`9bUGxbA: J,dٺәu'Elj*ᘰegSJOjw(vhs9 v>aT\D,)u]L we/T!c"cGR:< >s ?Ia! 90h 1YV'PۏRg OW"Oa 9cr{L=ITx5Jzt?rW008tjሕpNOiӿHi ׆yc.jkTR-$HI I$I$;AcR^{OUSjO)9^ԜV']HHmO5',*"C'NNeX0pFKė\747 !~\Ӗ0;jk`hz23ݖ _@yV 6V鶹'"kjB'^/5{jCp%rԪ 7iXIZ_virU?xǪo\69@9玖0%5#9:ԃ8An*H5:ֿ/{9%EF2ƴ2-Sk)X~_Shߘ8*,.pGNygۈ֖̒n]=ߑl0jzfJpnq) pPIvmPϕL{eU)aZ]5㇑ 4N]d$31A7:?Ni;$)9Hw'9eN!s|KI b3ZTi8ٱzK^GX_'Um8#I3Vz{DoԵw&baop;Ҝi!}V"9h~@;LE&?9tϴBO{^0뎦 ,cK"P?E8~%_GZk_ Yi֟&e;]sl_-kMצʆr;ͷh՟)ϴIXB˥{5u3w( d`},bYSeOQ]KPMw7Ex]>c#ߑX@jbkJ'{3bQO32'9W# r:bCCPҡ L~c8iyT9jm8W_4f/+{-A40DAYsŭW3^F`DDi(G ˲_oLۣi\".}ScY`%1p4/ioMӞW2V>9-_Ѐ.uX:dm@#1eо0u ǼV?yuGcztQ HP?QMCV,@at$.I%@.H vYs*>ex s]Fnu`:Dv%I<@χp̩)e:Tc8(NΜ xhR1/QQ=COBj?V.XAf@OMZVQk1ܤ-8N.y8#:ep@өU^yLOGkq .Ձ|Cf%5vieO)СI@~ +xejqp2y~a?O.v@C(|`JoMg.uK6SU]esHm0aHcJ~VYq03@v3IPJjF;K]7n`L22gvuUj֧3`Z|3;zfRӞЂ1EzbFW>g?t&M:;Cln?"̯6hxla2A䎃Wη Q;AQVkf] qzF+lwf0$Mbg5:8mb@8=#ĩA[Fk8A -u&io:*@eMj2+s wTA GyӔzfiyvq B#eGM\{L=yzbL=q̘avceD#;.ޗĵT-ȞOpwIG]v)c!Q/,sؒ|2bwJyv 叹0^Yg OYϖ.#C #9RbH\H*}#@5f\gbjwT:ʜv/㬚ڳ?iVl999CV2:c^;M.zKeIiE04I&;+iWI]VgVCʯX(M{?y)'E'$Lj$r:Em[ةv̩aYrnMMιg$/'[ZLF'E<sK6}Wauuތ@8oHyD"|?띫 Bq)j0*܌ eE̸kGQ7N?s5A961D*9A&V  ka!LihS9MKTd3S" :!P:2VPO&? V'-̥ +W\T0e&20 hRnxzMFLaF:bLЬsZ-֖g42g=aU2+6[EuUV[ꮅ%.+@'~YCm"I\#ӧp42gMֺXDU rf{̳gSP26 H6?d+=eQ ! 1?<եltɔ+Mxv{Ee]o0fUCFqvV9UYϔd`aB뮻OUN|G=erA6{flȄtCqPD5vq#=X!8/Ljmzty-XަFC 6n%KӚ,ydf)R Olɷb'x;Ϡf\919陀ݰ~ =-Lc%y֜`7=EGX);FmJ@&{M ɝmrti e6/qk}rg77 \}9MqҽT^@8tV.\_OY$Sf|eSDiD YCi<1mRHY&7WHK}\_Dٳ{^7c7d'sm%o|C}BUΝy/NJCM6M+i4x*C7Jۃѹ!Tr0x굕;ar%ؑngP_KW@u\{Mt9ԑ î4h8NMIMۘGvנ0WN2#*#>ӟX{dT_[r;9DF0OcCZ!ryFG]g 6}KNEĜͭG$s!fs@Nu,e?yi6 h ^q#΀68>ߏ^nY%7XkB3қr݌>Tx2ŴIWB|oĢC[K(*[B+r:B3Ӂ HIyBE} %^㡛Z̽@կz50ty 7Ua,ji? }1=QMnC/LBA-Q;03_Xtr?HvJ"ƻ:9'g80[erDnp@2E`ckFz6RtYĜ; ϷI;: X2%JӒ+( K21̫c"##j(n8ƭ#]e=Gt럧c4:*:(}#Km$b0 zIg!]gQ&OM>Zg1?[\՜9ȋ[笚oU5{@œ.|w=d#/̔ _,r.81QՄHk潤FҲ~-d5Er}dQ2|J)wX0 VoIV%ˤI%=O9}8UcU\Ipí@)Y'+2X{Lo^,q۳T&@ u:ЀpFaXrry[:XbW{lc OW1Qi4Ξӱ6Ny8NN<V$Tc"MΖ5G?w:d/<M=#9:]g;TE"~ 9D(:LϸULQ[ȧmS1>KO;gV` {W$Nfr681B0='aU G-9Z-5ZVX,ǩb/+FK=LzKb 3rKʓ0HX&]03  X8`P%*,`GڤH#IN&5~FE&$a6[pP( 3NrFe fwff-i!NpyN{ϴ']d8|ʴn;Yɷ+ܦ)k9 Zg'F3ەc V&m8S9W353`Ƿ34~R[gG:q iqJzb%HdsaV=1+1ʒ# ANcaq6anՔة`#0G>Ћ.@2&9tTQ6J:~_ZR%9Π9ęi@x5,}0iUv}k'Dϝ38YkX׃:6#d.A9Oc+h.IsA c>[6yCIae]S@(hp4(T}h#k`H~SKY,m#˫ɴB Y,>0 ]v36&?~M6;lYI*kjs2g2fX#_Yy~[дgn:`JOWTizHgGD'?{bߤU'僂G#2+u-lOt2]rLݬ#9{ǫՑi4u䞜㡪ϒh=I=vAb˂&s6.Zڍ lz;:B_I:;?i))ҝNscK vRP/2^; ,!l 0f,8U{]kk3?Gk@n\aQ%WK. <{tiB v>Vѹq*"3aϱ]n#0'Ĵa3縜i~> PNU9 @<;>ۨhS`* ŃE@tc&sxKVv2~fns6Nez6c]MÆ%6BӚuyi9".w4nVMƽPzTW-Fm0:yM8̙!}+06Bsyy@&,>78 1W+fՓ2eVOI;s(aQ"M$fhv+WX^_^7q5VK[iKqdy]1yBvSUmko>q 4jN "BQ8 v"8%esޜs:{ ;1XWP^=z@*0Pqu:r@QfFq\+(ȹr;8]>v򥙹9GEI>$PI"HFxE "%z7g(fS L!BHՍm~fd%0b^"DbL!GjQvRIw؈ty}7@qɇM(@LOL,*7%>[f CBÂDmhP$ Pi6quG=f p?Xh fs^$_&œ*M`Y 1(u9e1P{''[l|LPx΍dv7VJyp0\(J'n۞q!bt$g2 dSFsV-j/V_ #TZ2,F8°f( tMYpT3NoʬrHH'%] 3T문}P!ڗ€ ~N}ss.k6FE`Ì3~$۞툵Dya͛*`xe^ƑCig9lj3_0Ms:#?9 N~I0ˢ>_?p$E!qq :BA~d|)z2eyF p;JFH02If2bWxTXkdb"Ɲ3ܘL2/#+vؘ,Lznp=#CZ+dw1' iҲU^J2}[lcʁ:T9*P=ɍ{xiZMgk9 }{D5|ع G4(Ǐp&WWBJ=r}b#S@3T;z{ӍDdD4_hp&/>)P8(^,1O-_>5{Q%9Q:՜>ӏO'^kP8NFO>Ŵwc!M՟b{\fu:Qpw(ى ޢX($c1ͦPD鏧 N"ˣS?=;Σ۳رgLhd=:jr]p$X6OMS:ᛏi~XIyUX:Zc4i#S;]cهb򚫊nDV=d { ӓK}g1+J2Ggosn_]̏~ӷPi퟼r0:NRF[:+)Unz7L@3!\of)?/u'u~]3s7 ## )89tGRmG5=dž[xTk9\N:j\aϼqԒuOOuvݨPkN8e FYH=4 **A&5n-aOm5Q ˢ<`dgNMFR8g#Uz1QQ&pZF论N>>R'NΘ!9NrNr!'Wq2G=`uD:t$VpS3Vdb=켴Ys<7Z[k [91x~ć粧gb=LN~meh6ѷL9x0|Byo#AW3gMJɸS73o\ntvf1xߢ;!1En]EM!r)PYjQ 6 A?y3fn9 J<7%y` 6PSu Q{ Ak9 ;Dz<%"{lX q7ME-pp= !3eoӳuKzJfu_~a[Os&F&p"T,%b Lk*],SϜ Cwd֤ʚD-]ݒ34xOLdvf6H#R|0A,蔒w7U\doC[7y''%ߴ@ǴMd+9ۀW&-iBi~EnG* ;ɷ xgSV'=p [S+Rc^&?f]n(xf0D^V-G6bu@! LP92`>byh "#X>BtB]Qkc#&auw7 Ax]xoQ 1TT )WjֺST(o 8eL4OiوΦV$dgNϖi9kG_k ]A'El!<Sp sRYW'xX#it F#'XGC&nq^\/~s`eiF Kd1rӫֿ~5gz7xv^LR)TFNΥbVHr-ឰGsj yT}a+^3oSj6(OBٰƉ*e %l[+@G[uM9>i8o. RT`&UW!nkMv|pz1k(+f#:4[{.@= ?@΂Js5-K}1*veytq}r/>ϸ'U ě(DF<@|A~bC(ӟ2rPĪpI?gLB< \::6X.=9迉W8>,8pIfODTOG} ;ŭb)5N^'P}ΡGɏK~< zǵ4B7' C=^ Ț f` N)D5 r}ln9b$(=s%9՜Xsg'Zv {CQ0hց\:Stf2+E-BVK&2W 7;aAO;j %*T-OJNU40"?e-Cic<׫ D-U ʀϫm1/ cIzOTk`A oIxI x#.:'U'vGy΄ӇY4 W:=z֠~{c-n2vJ#OIW9s?+:2F]+( /Rgf]s37>rj9-\| Zєۧz[i:֢ nx(ukVc}-_7MM7.TcG돇 9,?B}5vt uc`2 u݀UrTkyTe86cT^#:tD$f8 YF͊9SCiA;zaA&H23V-$6Lc1}`p&s%}V)w\{jak.w SthC>t5=TiW肣]h |v'ȈNqM]1'|οCKkIN j;[=֕AreF4c83,9#Yx-_f;<I=r?~ks͟g7gG+Jr@7]txddt?;*I13I6 KjphAR8.a5nzm Ҟq sEfќtx_^-v1]->XߊڿX8gjBq c+;n cN26.iy:cc`qK]$z2GramcWEJO^*r#'mk\aeMJ*"rl$5y[ OmlPq'e1;\=ඐȖ9U8dKH'"kOC+'`! fB0I!*23\}HG4*rfbd>#k/j C.GYeϠp97e2\O=YS(9FlȺ5'È\+31w韅71Վ};R}]cܣM9J{ HFzhV;r]ww+_5#nQ_؜f[Wtj[?<$Ԍتa9SZeTzVMlMGBʰK 'JwXrOL|ЌYL+!{ȶu-m8zՋLﲩ%c_ gl~ۂ;NƏIUcy7LIs6ljs/vX]TaG{G<,c2F%yQ=֚c=av稂0y#q;Wj13E:/ aG(Z2YzqC)kLݴUhmH1'5Re8c5JN}jҿiVr0c3OxB.Ϲ!bG){Mr#.Յ ݢ͇>TSinNF{4[@ue^r`6M:Jպ|r+ؾBwiUdZs oQܮ՜#^gN;CXyCUM1R+n#v1T|ʃaW,JS\$V#:jBM8nVpD~Vqz@4¼`qۄ~;֜fTa hkzqb'3SRGS0FئV%ƭ,>Y@Y|Hl(M>^SE%yߦ9NY.r3Jg\pgWQR6@A&٪jG՟BU}Dd3tYNkOZy18LvCO] `06)Jvq:KW* 5 7G'gp9c+ןcSOf1+[JdMƜuӵQz1 |65e =Qgma8N釶/{Lkpvcn:Ҵ?^IN2[kM,n{-WUzϦF${T꾦m.A9и`)NI|H a5v{gTUfQmrX*+`scvϒqϒ̳V.gvzOkX4? uh-{/CD%PaȏCN/^sC >3^! r8p ;WA pYp&q1x??spzTu/4sfqӴ-yg1]` wD~QL HRĬ9x̕5itO8ڤ7r#¸ě,=*eQK1cQ[}. 9,"Y0&ق0D)%-bkOne3hoGusJ{ bǴY&G 1X u>Wn`_wXhC^X*[=D*U*H\v퐊;Bu8h2Jl6{8b;#p8g&e[q҂8?^/0W0*G-_xQF#QD^ p [Y&?%Ӡ8+-9Uq~;'@CP[t``~{֛Usod/?.1+z/g`{2Փ^3=EnS^9#x'м ~3Z"{rTF&[Sa?_ b>zm7h2|óLucdaf=`*hzti'v8qy%zN ^[C0l2$rcFc L@76GȄ[71aN`EJ;C(zCLI;L""V )e%>COfxzuM?ˎ=tsv6"BT˼wHPn]rhNۈ'bnPl.2>477XW+L E",=`n@7eix)H en1Z׌qyđɒeDU}7x[YX `V<:PV+ȭlϼ*VԻH!v9{fpz0N6v8`J3^$lK_1nc% g(v V9AVmhBZZNOiz0 #E'-P^sԣ X X{@?UCጰcZ <`s/CYKT:,% Y G?xe.32g iU<ߊc'9@w/oIbAc,$-BY%_WjF!v]U8 `_IvXYDm!%isWNU%sSw0+YZ%^}Ӝ9۪5a v~гtÁ+ӆUcךk8uߏpjȚjcE֢v, ~J|zR {t rH'!$s3v#ҫhW#PUԂ&][J qghlq`;w[tfTe-/xQSa,/:"fq pjWqu*O&яvѧ i/7y[ʀ R"֫wNVE`"+Sjuv5|2}VFUfmv-YA#եkٍ<ר6iԒGW"yd"h?</cEdt4-18sr&w1K4d*3ֹU,:cZ:{GB(H)rX[3)yz}.¶I k<o7my3~42ZRߎѵJL. RC)#$?y9:Ú~Azf<~0ߧD,3IoncCn?=e9Ŀ QȢ[bhG8Uݜbk::]lMA#Xp"?]!]#ۦ7 >/\cdeiZGct'"_OF9 W-Yٙ#E,q@nh=TAI`UY.8u!lP/3c`syz$kXz+t &Rtr 8#zaz=MnjJ.!i}&îqyF9hF\Lc: F=cܡ=U0r61 C-N=&`Jq,93,If{KPQ`&Ni[ 1/blcF% @8 U#7 9etN;rn|}5cUاXzmKԸ82jޫ/f_oe7o ˋ YLRue̙Fs)A9u>iԓ+ a =̼($XA PFʎCu;èSM9ZضHwnAc9lgu6)!x[ 84ꔒ5 5 gA`=iY(c{y1(0>ջYcSlXiʥ+ME2d{DZViyU'iUm`|d";/5s3 ʅFBk$'+/a7T`Lfփ̮0'\>q[g`3c%T>#}ϼy^Qe# wg{ʟg0 Ott@;eSe26`(#&IPJJ  6yLq t2ďƦ A[w)Ӷ A[~7a&ڔ68 @vǕKJjCmf\"FjҤvɎ-lElFF h\=*>кvX~)5`#0#>!}wQp;`U{@% 8+ wK 9\q3*:X[m)QVp3 u+O\J/btet[`} fZ\y9b29TFkw(<PN[ų]i%v f'xHb§!6ҮPFjϒ}E0Hr Fh pz q:Tg*R}#yOK3?N;NMgԤ%/k79#Q09̵A)-U=Efs[tt#8fte1 #{ȦOĩs#JgNE=HI)/dsw4Pϸ94cl*(Ua @uCϏĶwj ۃaAHGۉ929B&IN13WI:wϴJxk,O8mL-2쵃[2(55XO3̾GH#go 38靯 ǐLXGW3@:6tBpÙ~]2tR5],2Ĝɰ 7lCQ)1Cjބfm=Ua-ORƶ]st==2^Bd7.'Y&,8^X< ڸa:e "`21-oT8?Rr@11Pv" -D=OGjNJ,Nx>ȱ wG q&oRpbI6 dVEn'cz3/Aa35|=;+_9^d|{u* ."s59$ְ EWYPT r=sLE1AkM>ݥYJYrP:–pۧZm>`!9 B̛9e z3qdP0g-cap ^Ct0#NǼtkn9F s7Y:ɴL  E ju$8TH%lJhUBO]7p Νz MN,Are6;4%}GJgo3{=9/BCu|/)C##1^5󒩼^V 3Jm [%col.Fӏ6tc3^ڭSq.rA/ѮәӁN92289^ɚc< ;F30 <@7owl9X[TSgG\fHGl!(Ѱ֧ר_-)J]1~9)ӣgoqI-b+%+i1',qQ#a8=8zO vC!<}G1vßx}FylN܏kn&QcScVQ~Mƥ|+ӿA")@ӴYOlJb$`C~w %*fsR-3fCirM~mнQ<s˧BgGcS@;N:Ha9^ԏ--#=``)=WgX{K8Hj,bqԨ=GG:҃I^5I{,@9:gZg#Q^uRF;m1[TM0[NM1iN^#1S#.ՏN6~k|zj$r:JoxM'Dם"9 1Kx^cّy'"ۈjMPr3+{u_Vm89ͪr!뵍 _Q!+~aCL>&>#ڜS11/= i'AɕqɓpD$7M\ñXV*g9lA?[\F MxW;`dJ8ǯM:*@ȋ&RS epC<"Ir[1= C"b׈cj96~tUTSrd=vZ pd( zT}*-.k_ N#O!D$[TI= [֦,ƍfKC9fʼnNi=-8eLan1$Kpe 2T2~mU{ܐ?MWrN:TG82Џ-GĀrqɳm3]n&rROHӣ2ʞj՟)Y8=s,Td`2ۊ UVVeH`'[=ՃD p$XωU^R;H1tn&?Lqt`98e\ST4_q9Đ{ΈTTr) kwUjlu>Bc{ ms#3" S:D<@nC"-5B0s&vkVR0ySm-vtFqpbi*r{vRc&9zJž[ 4U|tB }L ivOhF鑃+!; _TaWNl,&nx 2G)ѺJ=AyFY ,rA1X_s΢U;鉭hښ%NUqE~+W:WpG :{|cCj4Ս2W= 5jNNLTN3G5 N (s)90{ ilEP[9 4/%8"aZjՠMJBX/$ v~bI#X4^q :teH@3j!3ff8qSKygN=_ԣ^;KeZe S3=N,pa1A7Ijovm-^ +xa)՚q%îWS?=@q`+Ԫ:n_B})1n4eFG%ue#Y-"r d$v,C1Ew6OyEzOBNOY$c3GW*0ny Ld1f $yj4eږ ~Oyr>:u4N|b0>tđCt^kHu7[z{A f [kV8k4Ld]e\z )c9?yTI"c1+45:NY@)´: 7sޫvcg=jOq#:GZxMezxqL_M囗po>GyPddt@eeu%L 2a+LLd~a./^=hPk?2#b5[2VA Јry*wɂ3afZDdKN{ j=2b,pJհiU$r}٧ERAmCX^13`Ddc*3xjjWqƒ SB`i?Ibj4 ;E˷ro_W["OV?2T#p#5ʵ1 |O'Sv g&WG*wj\s*OBWI%V c-Ћc`A]Cj b9otK6# UYu@R tո,?z- w5wm)Uu%gIEb 37j-X?nF@H r~LSQ]URT:"Z$ Q' \tVJ?](sx3zF}EXzgWo< -[X=nnC8o~9 6γ{a3W`&\tbXɮLYv. fZwbyXF?e^E.~W +[IYg pT*nBh1q \C-rdݙgJ2W6dJf6lf79gUL}ep4V7\}۴ܶi3R૝RgERq&TpRX&>F;5 nVF9N#ҿj5Vj)JJT+utc<2̣yPM)#]DM#`FTlB2WUU>S`x O15xFXy^{I)ӛ,ϧ p2pcb]9!6o/0>]TFFqS^ wleF#ٕCٗ`mvNG? l|WT9G_^T<J YtIchv' .mf\WQF3ڞQr8ᏴܽQ GYlcZ]7t“_a5B0O400 knPN:' _Xj\a2,!_?p 3i5J +>H$7+5pۥ)6O?o{uyGQ eݡ}:~@I>H}o/ͥG3{U Wg(`j+*CҔjTծ8poCR!>:++5Q.\^s)j`xuQ\TT kP@S55Sr8aRQ *SH1=BYfÖ~ec}4VZNq#Hu_0z= k dv,VHFpbtvYfNhP˛9iiZmQ1_䛰Nq7U5Ty'vJ9Qt7fα,u [uDZoVVq5g9+[mgs2Eyӭc6sChĴl[/W`hfZЧܱB]A+G'3L9fոwXGVkGrr񞸚^ge>#Qq s+SWQ)=!w8%U{ yM%v LL/Ux#hKo}7y6 nՕ$\s:܁Ӟx;Lh^qegeɹ~ FPA-BqUM k In1h?E;"TEme3ԣ9VqbvRS:vvl%pN1rz"~ػ` 0Wޢ;75.7s+ud +zp2Z˝V1㝑bn*`u>РVzEtK̹Mhpt-LuEv8%RLX# I9~_9}#,ަ/ StC]d(Zp38@J<ʰȾev Pc" [ _~ZW96 MѲ<^obXfaR͝}k ԑX'u.IIpEr2^8jmcY`<`BWzzW90[rHS]b8$+)>a(&3vA&Dp NnRN&nz~i?f0uK,փǚ”8f.<)V=$3^uVy{Jg0hZlAF6d:Ne651F60??H$R_%au"ڸuI&.0b1/fΒ"%YF5W` }2Rq b71^1E;9~':f(TKʬ1כTx() 5ji(6`u#XuiI̽{BZZYNa8a1Y?ykM?/.FVߦT@ [>՝FYb+"KPT5M;ijbBd|M]-Y%Uma+z'7jJzL5QZsטϜ%*0,˪ G?-`ާb~X鰎{Cnjۜ+ZAIuZlbPqeW=cWBy籚IH9%Lʻ nc_31e[kn-hx}>g;I9눶?%+ߴgOKڏbM|.gԤ [5d֤{7;{3QF0@7qE4Ks`\Pq6PzI$ڝf<#Z u^Qe&"R\'XIH8#%I~wVc\ޣƨQ``˶km'i5H#1JT}ZJ*XO9ZTWiު0x+(pA1V y; Zʨ%J'R8Tg3}y Ʉ9#[GUgbLfðȘCb(=y[츹9[9!%aAs Mhn `sU4l!u_? q:]E:#X8V n^wK-A9m6ϗPLNkHbF$ꙍYuam˕#4N9 fm8<` pzNMuͻ=-WO^կ5i(~;z\l;rXumV]Ȳރ[u1*kΟkkUC9Ecq'= 6 vrJZ،}@'N{FWO>͜c>"\N!K4˥L@wf9FD|2vW[Ui&N19frר=񈭛9ۮ.Aybm--0V+pB2&q0PPj`0c`y$eǎLwJEٷ#ŏS&s^̄T2e/TGQs32#Ѩ3ZC8t yL"LO0j-;Ox]ǹ0'@r9i+W N{3}sYm5)x)C͌XF(1oh%#Fz{W)Qbۦe;B>by 6^s휉8Xzm?5~G|KJ5< B~rGOhCǞ,|H?We xyi2yOeloc nG7t.U1'=#b kv̘?1UsӤ4LR0%MMszDi%ьd`Te'OK[A> u1OX C'" P+cGHI[hȤ&sv(d1rFʎNI:?UH?>Q1JNvkS#/x ki P#dp?&`%{q)LXgʼnUVU$r vXqqvt5 C\YFN$ĭϢ w/ vڈr3kt3$SSPvUp1؎ n=L%MlR``=ӧޥqyf:ҸCmH  CYMZ lFOYs,*09`31MՂr39Q6`@9 &rthJFt嬥s3>+J'$9ܓCmu;Nek jFBD&T݈lqQZ;eik^z͚;*D[`}]N6칗hij?2$xݷQ@nPsȀߩNԫ q#9tF9nswSAu {Ko:BsJ8{ZN5'vkv ;6UΈTˎyJ|SWTI}ʮc?6=ϼ;mqׯuT7`ԟLr_NPue$]oL3u 1'Į5޶ljP` eDߵgMf{FSJqKnuhlԡTPH$x5(:1& N [yE˶Xd0PA~GԧbQ+`VvGJ ,̛'<!=6a(FOuJNBeb dE aL~ Tyu:aU:TiQXh{ )M+Ae_E6ݬʿ<`Ygn85\\ 28F˚kXpL q\"UG/mՐq1YVI-hƫI_6ʩZC{cg4 I-ҭM<0Org<A$̙/qckw*lh:ne̢ 400Xs9[ek;@w9v,e ě4PMx_a6=`) E NVp\Y-_Rh: "g,8Hj) rfT(4gbVHnC'SldT?S-u,O(9/(>{I`r;A׷FkGÆNI}ϸXy#_0rGKK99C8R^CCfU?yBVA\eyOyE+djks>iܠiK~jlnVs aC:QN6RxSMFMz[v?0l{< ڿ+vnR|Ղ8֛Jl.PdPykKĭG@#5i4L}#oM7H>:pIV*[ 8!VKԮXX(Qz7p-Cv"/p:4no/#EX[CAϢWBiԁvGt,+">Rꏙjg#u\RZJUWyГad%Puz ,n^C-!Y[ߒ'SM7W1O+Ka@ydQhk*H(:҆QW!x~ yгY}24KM}ُ, \m1l`JOH3PE%d=nvBՎrfE7|w W]B'Nr~#TRN͏2tEqS-جxy^]5~]EjMLw5]!I,S 6N-ZmE=}W:0wL_4AVU_tP1$Kwɸi֛&Ѽ x촪|=|{N:VarYq1O5ARÒAI-&ٽ jͼVI'Q% '`?#a17.ڍ45HB5gcX\p99I-$zs;$l5@rޮA8ϨUz:ktui+ X6"}G CK/_ה',qܺZ)w.^~2OQMhk nr LWHU Ghxn5v%wD'12Nksv\H `{Ud4>Qۂ8=徏}y Gzye.q'2 ea  {3^> ?$mU9{߬mٝgO#8c\tWnB_UN~,[u4^ u`:2O_@~<U2"qL.f'w8~ҎrVvSi~houk#A@ȱX砀}RcOc[p_R(l&.H[rGʬ3q,+=3lJ|J{t􏴱ߎCclZ`6|_82T8`SRzg5GtKg҂ (GHXS:jWt7^ٜjrM2FFqtMX~u]X٦s4nA6ّ:/;h,qf5zB輶H鉟ħ5^nt +E yOM=-mGD"+6S\m'Xa}9[|^QEUv5_kmv548#P+{VD*P zq2kGnGܨWn831'+,`r3h3yVc:yl9źj<ŗ4[pR,$pH`BNxj_\kKS.ފ#q3ӵ|;Q]maL1gJ갭NW*3=MU#p=q]u+5JR4X3cWU}v=<0ijt u-ar\|}> %A'5Zۙs0 U{+Ծ74OLG4bXLlvCMsWW~4yHj jʪdycUkTYU}$c%U޼?[Tmzx#ֻ+wZOVTP,'A#wHz6թzH%XizcT:'TPK($Lx6AeoR:f/mVm)[=ԈtaR0u:]5X%ӎgӶBi;bgůP.QH f9xg΅hwYs/ : h){`rv]> k]HǾdz35ob u7\|lt͕. 2~1;V\2; EDvH6yeQ<y hJlY 痳:V+VpU)H =h]Q)]zk5ѨU<< x[BIk\NGL]̢>za{El$Zlde1Ywen5:K6kg/3ۣӥƲY1v;N,m0|$;[~T2_q]rUW=s9"]lOzezRHoe aa:ZӾR߷nOj)fP i6Nr xfbmHQMF;x!=^3~#OB0fX'>V5vnjIΆB.+nz_6-Ej5:cZ yw#/4G]"`=gIU5 0ZۨۑX<t6-@j32] k[Sg2Y?-_XjiZHa3\$=+pPsJwqΊjekVa n zGuG 9ܵ%848q3uwjv:s,+}0Bez_(um}=╽w8ln 2;FUo{K5%Ep;V3CӬT]r0A/T GNԃ0k4* SZ7[rר)s[#H0,;[G޸.FIXw0C_A,1M]#qDP~!UWЙYX5C()S3qK%ǤըT%:w_ƣЪ\;^ nhQB*͌Jsb[,[oYڢp13FmX&J)g+knGث_&lQXj34iVWpىݩKnEAB m-VM9ӣ 7X@:|G,Vo@e\.G2O_fyGp;L!žZ-:/,Ei*HE%QƐ ICؠN[.#=D/TpGߴZtnE[i7ǴsFQMh) m®He#ENŴexds;z}^n5nQXӮhy=F+Oy1Ӳ5pjOY +ϰ+)F-){XR{nJ!=K1R1SU^ pfOnXg Zl8I{@y&e%=9j[Kgi!/hr dF0 (FOIfv~W]&3{Uj$p{5ThjoC%~rjӑȍ%TU$ [ר33 wJNBk\x{*wă՚ 3#T&@.snyau S# R> pЭ$e59=mSWv1YGѹ ߇PRz͞ E7;0M*:üai`bZzeZG=a 00~k9''RSy-݀?3x}dXrҶ.j OnpcvoU7k5杉L/9}@f"ڪ9QVROMT-x:Zvji Ajt)vWs^liJ ſ)od S,Y|GBfUM(l$"s&Ay*oUHEjU 7SUE9>~a=:Si]*uYĈleWH=Dzk+%I_15]C_cnuHRF𱧡_`%rNfhmF Ftڻ+&2pۏS 6[4-޼t-5vR Ϫ_5ʕwgu}njG9[GꨵKKn=i/qkrKc=~=+ ӝvܞ>"{Ym$x_QUQC#~hF\\F/ s=ܷ@jױU=9rYj91Wp>5EIL&Q013qN&r`4u ʨ8Jcz b[# -#iZ+k)$CaS- Zkv!=PYr B|ǤLXUpA uvBUu3etjnF#U3lHR@sO]VM{70-+ҕ9lBMVѩbz,V }V7zF;rvM4U[ m[٩0߰׽Mڪ)f4OvGyvi3q][xVUb֛Ee?pQ1/UMi b˄N߆赾;.YQL^'.PʫnME`f>Ӑ]Y+ aWM]Ԍk4WMc'mxpyٱXq2%ꃒ F,׫[ZnX/x_ծ\5` `<+6ۛf;Ymt4 =@kEq|WTh@pyjχKm缏E:vR^` W}+i6ӥT1rH}"t53mu eq@K7(0*j=dIw][[SZ¿ޚδ\d(>kM5K:jhWymGt4Yez.YwQrcѽA' Yڣ=7N-Z^zMC*cUWCEZ 8ZWa' r 'QF`cDx!\m䛝k *c:W 38>nas.9fO5mT*\oO[W1H<%eg1  .2Ojki8nYGHzm7f T1EW]`dc,$SүjY8&9cwZfKJFAFr8p&ͼ$Uj#.0#E5ϵbҠ.lbO'7ZUN9|{Ǵwt{56W'NՃwi%u5q ]y׹M2q%[9pszE`>[ +]"%%it[u/eZVpΖ(ҧ"hפ\7A=L Tpf,q=LwH@ĕkE6Ra^6(>H\PJqgOwiV+sK]Nq^;Qf~SG_YH];yGIZMۡ9)]߁ұ8c"S`9$u0n젨}s=W V4€u̜5z?"u 5,Ky''MKкqЗxs@]4cjt,p"C`QiA?0ZS`:JwX7F|SU|Hኜ^ _nr0eop;E5#+|*]%U_1C\]\fUbn pOnym z®a,Pǿe&Ll@J\Fy9k9tbY wTl2#ܥ% .m* Os:+kuK82dpA F1}aTFRkX Um Wv׈6,# :1e? ^\k6!cdU]X*N.OK\ISϣoA騬n2 ES\Ea%h QRŖrHzvӮMy@p1&F#.j3R=?0w` O|W'?_k);օ<14"Ӎޭ>ô2/*UZvFgܻzLj4=L+ /wh57(#9WƒyG_zoOTJͣSFk^rai|2ǀàn"8oA+F#\ y9L94=/26"T R+K8,7(H*wthGNOvFZdÇj)%Siui?aku]+p;Cڷl${L 9}>SԱ)ˋ[9a[hI*k\qԮjˑZ鬕*0AϪ FzkBA%ylv1ݧL^Ϩ;0V)PXmbmxGUԹwt>4- 6JRz4on]}?PU#nHAE#jU. j|AZ&sy39+"dA=} 9w3WscycڊQ3WMP5gz]=Gu㏙]ہEkPR.PXgKSUU0:|N]Vno9w03cP=pݭ9MI-RꌁwǹVu@*5at6rl̛-@inaU rLoR \*{MYb9̭.]J:?TvDF` J0՗iEHn8,:F j*~co}mp{hX zG)U]v~Xt1m/]ốGhtV"5V[G9Qv`ne=QgeDKVg' 6Wk 4i@2?I-E@73Wᨲҟ/p&2e ONm5[Qf^%'it4R5 Ayģux(Kצ ;~GCFiLnʎ:u_Cm#-@@ܝKe띣Z=5U#Ued%r5zѫrwBxYv1OEf߈KbX@p`K-w98(Q] ]O򈰋Hw=&]5j;OqQ00:cc:1ͷeJv3ĞWq+Oon  ݚ E G\r%BobG|Am392EcFK1}8*(, s+?cnӵ+egR5,k\/mm$`8]'d[/Pt=Ύ&UHѽ7OL |G^$Zj)8a˦ں"a6< ](i? q$շQМnPͭh4ce}|+S)zVk2f#;^7X JF"Pe|]l*pW&k]V  #BYjGhZ9m Q|p9hK4u(fktR Ө)ÒQW /UNH*) IA f*p10֖hUؒ6k_@W)MH60 tl[sa@mߕsDZEj3Ep/BNNzyZ!SCws;`/Nڎ=G=U"Ưalu3ծJZN:Gu% X\}ܠ* b08bH%);J{ڍj5VHD^ڈRհ<qn1=SGڶn7d/ӞPd~Υ*KQ@PRqte {11v/ݨbI#$פqkt +$ȚKW#rGXa*Եjvv&VRwPjr*@QEQr;> ; Mer8`éb\3]V-N6lSkYAӇLp OTr²۹sanJT cLnK[YTRdZx9`CƝl6I|t/s&;yNv:;t3omyLЭ.@Gi4k[yFo*꩷nqϼvke(#<M`)]ȤhP+W FL&?XlB^ENp5  .չ_c+b ҅Q99EjtؘܾZT ;Oa5n=z+B z-ǩd=>Mi'aMm8;ݓf2{kל 84nʢPz XX-LX29 ė$\<69@E9L"YmƐX"&6'ƕ5Vvr Ff`ko!FA ӵM%weRiOYl[Fs5ewaA n 5: 4m. ' j,ʓCnܒܩ ozE-(Qю@  .9J߅ ,' o%m'2rAA< =j0%}l )11:䩬f^q![V-f\;J䌩a놿2 F}[Euj!xSėV`(ۀ8iV>;I;eZJ.ߩr2k:6p +p֗˯Q`{1;b.} BNxJ@,qNw1ꝊF.|{Wn}>ڴ c$w PMX_NaRtyb!hjn;%vE:]-˸c HɿI뗉wHFNN9hShaN:kJEs^(`eSJĜLHp&K|5ؘ0z3@Lnou}w&{Th쥗U/W퉫fH;:o[;奵y C4- äfvŢ~Zg=1Qi=5%4%~a`2I>u%GɇVYU{k]K3? GzL )U`79'ⶇURW*xizo&C]#Tmc`ugJ8Oc[F )>^ůfj2kHRc:j< =vN}?]~bsac5TS)uN5kEE#ӳzߧJ(3-/}2O\-Ē42oA6mg*Ȯ/`!!Fqtڗj%!{:f&Icv&u uP9_[[֕ +M* xP!g_G!+*<[,,/(@2wx;6(ۼFiՎyV'۬0Z*>3ԋ0 ps_Wm1UC)9+Nsgi#-j2:L[NM^p=n@)m3:]mfmc NQ'Mk%9^O Ԗ67EaK[I{i*ɰV85m 5ڳV)ݜNmu1IȽKyW֧\5ºrn9]{Oq,4ָ'#ĝM|-sfYסnѧMıߟ6i "A+{\6rqVFW˩/nԻX]dr#(s"MR2A3=.\Reo *x=g 'ȥNx0q,l+|'[v)ցV"-u S8:%]v8's声*K*KW3µuן=AXCҷX?iF:viB5~!U0ψ]GM`;eK4ﭻ:;c P[Pɐыqָժ2VUybRE4:qZ@l8癭u'?ҔQr$tൺcYw(ݧtEU'83-k?0qC[<!wGEov>J\N!lc\^}J92ߦVE `.bw>ბoSecPV\pb8XX 4Rz搾܀sկW*;9RODM+:F Q#:} 60t `A9}\NӰ]s1{ );yvp7jڍ] iՙ 'XU{K2=GQV! KÑЖ9\ęsZeAL1vK<7<؀Y^\R9a j6 8$w,}WP5 k8]Fղߎ[ﹼFݏeE̕'/ɟ>u^"W-V ^,r1ƿ]D[mV92IEuے=ކ0[춲~V:G:toL>FS?Pط`}VC dL#hXNnx2ѧmkիt;p9ɊCQeV-V 4-4Wj ڌ-r{/C)>fs;e08ʧ[Zfۀ8PHMV[ Y66{] 5n#x'ѻ} V~r2 贻;8:%~b9P:'ͣ\ @qMu;I؈*f/U&–܁AC=]zsr=GIc35Dzt>`m#i:&(Jkb< c8U1+Ev߰2j+o&̅^%VԶK $SwQ\-*yiY*Us@(X Tuhn}Z'1C$2+>[e5_m{lwJ*ۃ0:L]v-ԹZÒ%q1Z*Px$65nZ)@<0_nJӜ{imH=;{׵~f[o<Ѧ/௑aTNYwgokkuw`!Xc2x/lŏp.w AxlӭY;8+IRBRN[t-tٟq|BꮟOX+XX\8XA6=UhysiFΘ6@=~isSF RS>!Ve vn ѩRHd cȲ,NB#`6>8`~䢯­CTtրls@/e5hÂc(z~21.N`Z|ޣԵ.F7G5r;W3"6j"Ec?74^2<1r ,O,mO/m漏o7YCVcfK+6vD,Y߁.tYqx ^nnBuxioSmDž_URjL"rRpRMUFͬ|6ݼsi0H*f8&YjŒ?OÝP+MKVY[GIzԖ8}2dۑ5bnNra@魷QR ]ڶ=Iyj=%]s)uӓn5ޠ0,l^ -uc&ʔY<{cNm6HK)Β.3NM9kے7u3.,W#hE9QmFU?ytԎZy=߄ϗZF;[դr19;/Sn/R'=iU@ijAZ)HČYMV诙O;I^0n==k}|;CPn. Ƕ"My0Oy=9^_q^-c1r0g&&Xoi(FqWa#fL%mT0H̢DLJ"5ni{G~dzq 3OYkYjݻwa:!moEǒ&dz:$mx2h*.VvU8.L}A^@6<}=*۹a[#.C7QE\e/J}C"\/ (ou)[v=.J꭫g;aktV}e=BF6-ؠqvɨ -NX! *VUAU]ڕpghssw: fk}`qM)MR$|wXRVECe؃ï)%wV*s$Wb! +[ M;d[)vFv*Av=ƻluemF-Sa8%z,ܾcsbfP<yDy➵99j-TtFcBMm[%fdj0r}@eRm%sel PKKک3;.zq l`q[VF6TmepvpW5=+h }t4~w0qJuc&djѫ(ۏgf]/sVODa'n5VT+PI MV5e;OiVzR؅++fؚ}oKVNÃbjI۷leBMPVĩ*PiJSa&u<29AWn;MYQ@9J·[mMPGOЖI^ ċYncY_z.6&8k\Y܌+r02@3oK;Uii{խUdcLZyWѴuɗUQageA!]^j=}zUcl\3g9j-AY,Y֚m,Kty"N]͸ xA:,[etzPrZjʉKU~Ri.rsT l3)y<6{*Kc jw:n}][zV{ GBe8K\bAdh:e8}CZUmuDuNI vsôhy(OO?k_-W6`ѐ'zoƓ?MUD2xX2ɰՎIEMpʶ:co. yJ+.Odhe.Tx[Ү͸0O@"zzA:K;GhO\~Uچ /j+H[^}j,u%XdcΛ̺c09E9 rx{KQY@Ԃt SLZ{{A/%~Zs}uMP׭i62y xަLI n<5N6TTrǘvW7u!UwT -]i.ݳ~&,Tɨi@jUrPkضӾ~Yi1$b{&{M#M\;0Kj&>t*+N3b#iNeV3@M57~Њ֫Q[6 9>XC1pO&+ӵPK*&6>ҽsE:&I7S]\|rkg1VE Dچ@N1Jjt/H O[Jwkr{t_&u.O^r ZuvR+$ },@Fp@N8a*'<ůSm; dbҳѺ %kOǤ#yqb0aW`ohjp,]pC1k5yoCL|jC^@AbzCn++AXLlFDq\dz7Y4ӽZgPFr9G53MaU.AL<ʗ#8 Gzs^֮}z,e l)fAXZeܐ ~թaa%Aε L،G;-Ӛί7!p1ؕ #RR] #6m}]RvϳO',5tJ @S^XORG2冀4n0Ǽ;Z[WB[ame?apУ\0ĭE,H! οݡ*.a3>- TlPOLʓwzs^G[K7*>Y:}5ZbH<"na0(9Dڧ1ҽz lkX,3Ӱrw5M'˰]pA R^R5744`7Zlr,#ψΙY|*v#kQnO&++Φq2g#q`FR+BΛ[6<=t{rcrZ9J\;&cJlPG mE`q&Z_+|Ekre9'ro\7]`*e,-Zl'aT;N*Iǂgi(NJڗQkaI.veMkIf_9(rLMuM I/jU2chΡ|}#IU[%fJ/ |Ώ6j,a3,ظa׿Gi * >9iհXk[*]/TNt/J7eoNkN+ ?={GPujPN jMB?)z^t56,ZOF$֛ty*X0 {i[{}VRgF :d .MÒ}%y8-~OST֛1ъF(x,A0zκ9W׃=W_QlsӡyeUbUQ;UxvY7GqOSO\K}X}5Qkԯ>G'kIcn9d_՞? ,pLIhc+q6LLal3.^"U>-fùH3nw]GR ?3o_o6M9i5&͛Wa5YI=aϔ䎞РI0B s+v;v̗^+&Ei rs0In#)ږը͝랢+cmmg9<kaD"j;G$gߒSI"^9ԙ>չؐ)'o-o\[qSuz-aT|Wj=x`7y@OFԹ]ױt^`lM9A1 UsV0R}fM- 2Y-mu*@gIQs 1ˆ i;MI6Vk4˫!@ѩW6 zsΥ cQgkw>L-wUlWzՏ0WRx.mrp{G-/ S5 Kیjl۴fazV]6[pD\Su'-_xDO]uU~Za'?ٚ FVV=8${uFMmWpP@YL/Tӫubs{LE~apC[9 %o0&KOV\R1y~ XP\k R83Kq*,ݕy1Quh21}eW]A_/{Xåѭ5BY>V86I[yg!Wwhx qզ[Nu *pKv1sb68+~^9u8 @FJ0Xi?LĖ ʭzÿg=u<`H_F^7HZ"͇a!Gy]M(lèzMsֺRϨ #ƨ cq:ڏ쮿(#Z=2iyYVmp4p2qs)%rI҂lzO^3X.!:+[6U O3Ue{j[c, {4ti[m`2o0ek,9 r>!55LAרӭePPUWPV5پۊ]u BItzJںPT۴g:]EVS}QGLx&ґuV6N8n"ꞽS2ֹǬ uI^ZKjΞIĻhRc]e.A2xHi:[ :2Yb cƛQV/V,Ĩ;;fw|65#O y~#[PѺ;oIJJ*E;zktWZHg cZEPڛ[9?hjb`lѵE1>G)s}P ԯƈ C^ޭyȵdZSO18VYbQjPjfQ%"Nz6X=V.I'f)j*A+"[O?EY7z3yHlp;A[*1jJ[*WmNfLիo(XXƓu[Aj-"B#߄"ꚚnSwsѽw=cPm фjєRg7ӣ].~Ci鈥>DRN}G+AИcKe9UTS U*ր }M鴩H΢E~p"㱻єWc>aɌA+>ғd,9Ժ'a3zYJWcn5gqv-U]^VY]6] 랬#\nnAPvU[ WkCHL>9oOfixTjx:+:`X@NMڰiv=@7j0@*V_W$tRH7F eJJ$bX1'#nyLդKW%kُ[Q[Yq+3jj㑴3׮+pbYGg6;柮[tRGWjj*x?1m5uoe )Rn9^W':D+i-iG8.sxMAOR1L g5D;O}4Ǭcu뵫AnM:"B,=c=51)&Ez v_#= nUDb:Be)x9a\d["X珘'T\!1EͶʵܘ=};%@ΗhB @5Y&܌s;m^ϻ?ԦoVZ'LQjN9C]^=YeYK4ƝA_0NzC-6#9I1D[l tܼo=&OW^vxbc>t .v;t(ދ-H-{Za_PGuV_uinG/UfS<^ܝNn=ktTx8 @;ӡUMP*̓>%>F +'-ppMq]gnl4lWf!6(\#cNn%#+'a5VUb8$}F΀"j+"fs=;NVyt}RձQǜ=+i,jQc˂JJΊA&bϠP-|5 e'q9 FN%`p8dchMN.;FҚ4tz_9vIDmEIU 9Z|Jn.ESFA"F)t}(ܧ% y:Jd#nlpLރX_B+7'뵭B|0*'U~P~/]' ޢ.P;NXocYGLCW}cUj3U8 :opum- ]"=6ic!1࡜앜Ѯ 49Ȓ[k!y_a* +\s2Z3+ʪB?MޒG Uf4ocxuiFȗah(L><%QzXu̯-Wg_--n=~R^cri5tiό'r5$bNZYrM6Nܒ}~\5+{xS4}e i4K<.ֲ{0v'Q6t Ъ ;icUWzO*KoJnt|OkNPp+'*PÕٔc:ZeQo9Ob'WI GK-UGHEmUy6Z QE+03ZU+kw{{VΝJ+`P St|kSE$. O1k =`~w-1B[}'> Z5@8gZɤg'U.^Vng-Q K+'(-c(ՊpB;>9+Yn:wf89Riӱ<vr+l-l ~7΋)&MlS/8Y+,>`|KH/T@ZPS2kXʁSZ";>0r03w Q1_._w&j9 A6Qfq$(Yb! 2 I0m\+Jl0q 4@&01mgB-L An@tR,m9 Jt]+]#7.sK:1E`mt&xϋk[Qfv@M#{< X{eg"䨫^PrI&lYPy?MRP?x8hyN-Jشo8%m(Q}H7 ~"m}VYUG̬3-*>j-vOU>y% ZƜot`sbAMK]zIcV:fsrCe\'Ҥ%^YnOU:Q6nRriWtnuŊ?̼ C ZcVOvxqPɻTx]ʸZUkSI6rXg=mWa41=f!,.8c&W1Ξ`qQ. `nj բ6g#U}9CN1i[nsf^eJxUZB;y=&c!uN]{n ǯ#}X,.|e׏:iЯ;Odrwx^GN C0OCGݿ4n93iB$Ko5S- $9x0et(cG?2tw;OҼl.= ~q˺=3vJuk|r[̪4*OL ʹ ֲzw`hn?kyUQŦ$@c/Y;[笿,P?cMK3Cnu$+RgnE!J7qgkLJzBwTO?jk,4ʠ 5u:4>8lq1%mNߏ|9]^XQ@2 qBl ;$u,&Ö=]+j5;ƞQcYԉ(=!u:e ma#F# j,9'1/Jonc7'Wmd\v `t4 m%mÁNf, ^I8iu &#gR}IQR\d1⠮yĵ2 tK:ābs)7 ɋ:91u4(wpNVJtu;ǷpaL>XuZc#r?b]=hcC!6gqI Zj̤):_؋!{NVϐ۶UF잟T5{M>Mqf+Hb)Tj[' j:jv5lC/Gii5VCEHk yu,pq';z$9uaZƞu$UXOQg;5g51m]7=N n (9|FK`vF*0Ǽ@!1h:)9(y8}s9-Qz:C/ӻ]2P,$q(^ ='}N66.,0y amV6Y~ Tv>S"[VHVy!oߥ%za c؞cO'U +=DJ]O#i6R6moa@`a{X/i=9":Lnɂrz/'ZgJù@XWX"-LaPg?~ ?2{4.WezSs uVtNbãwxMS#QjV9S^)USp9H[9:j6QyuL7SkG$`G<]_`!Xd};DV9#5b8 ā',ǁsFHZ*z\c0Ljx\U,,Vga8n9q(#- n +VNہ'-"u7War?2 L8$ WSn;y:M=ۙ}[Ox-^_7+%>IQL zL 80Xtir~TUUiSycӞ'&t,Fsxj:5.AZuY:8;wj7rQP 9oWns5g03j<N &-fjmrDg)`k޳w8qSϴind8psg<2Xe =j_M(MhyXO '2i Lqj >-VI?ӷj\Ӽ͎Xs;@382SsS b 6:y-1'?c-hNq/pRwS<[vz dvd2v?lNnY=קp1cutf˫co v*-ak==Ps5eٺ|:ǵTN8jV03tJeڮ@W;LƩ mNn\-)8Hն.Ht57saXܯxb=v=ZR-f3EjkAfڠ}Gk?0:n{N}c9Nn6^,1e\p34.sCUbny#;HEb 7n` %%G-NG-P|AXeF}ͨj+{Hg=n=Gd&~&iFR>T=ϼ-Y$`ѧ@^XRxyML3ӑ;~*ʦOa4hF}WWymf^t{NцBy1]15kJ0g ,ԣwJʘU䲏S#=Niqk}gztJQc:?)6Ev9C(Z@@Y9̧ex+Ӣ<V΋h'+}aag]Gohϳ/B":98teg033m H76R  c$.FSX[DPXzʓJګpGOqB+mn80zMpK.OvIs봂1ק< k2MpN#tm(H7&T<%u::;g {&tFduɪgSb(D\whsc)v+ 3WM֓y şkR H=GƗWoNmft @cc7LJ('ewvyW8U[NCή$DjөJF2@Rr v]0ڟ4 bJoWo;+`L,vQ;_C^)p%"r+KXQ/5NqH^@&V3yWQ3v/`{5S92%I魹J؏xml {UiϫΗKFgPOAg*"6=Y=5շQv-uL XI<n9fti#j}gWPF?Re ǿζn9j0A*9ɏ'Oځgw%y|T/9=3 _[fz-GxS׋4կ+5mm9i&=ן9G5ZC3fl4]tmV/KX?x$ܓZb̮-@<ٝ7u r8@?Uj5EࢀDk}>Pҹu4_K:}5Oۦ;jO.zeEZ x}^ueoP9jx6P^ON<}XbZm5zXG2ǔq;F*x*Ct9&' bϴΡ:w=?i}2sXq څ;A f}S,2DOs{K F=%>ϴc0 i('Lِ4zBMq!8L|D߆>ӯPWW<ԐpyMW&y 9F89{ 3(uTTڈOcPUw¨6KŔLjsg{:Wۧ+=v6Fzԅpo4{ n2rljB8~Dx kQca X-݈J;Xlzuem߅j)-9#$gxM`pڣGC n{|NcN;K yk v![XA8!G_81>KeX-qd$S#ۤ#Hⅾ:M7x]>60 yN@S?IǚTx\n. '3YŕxZGHau\ō\FڵI |`pAҍާ]RNi0EG_P&G8VQK`uF.yQr9k- y`J>?fڿ]7^SGvUkf{%CCB:rz:KUĦN~Ã.mřQx)+['a866Uy8N 1ȁnIT|rԸ=8'>mPv{E)sI{?* Go:p5RcE-Zmܵ].ڷ*gD^ӆ)Z㤼n'x-Zy8n4hSMk6IsrBw$吓ޭ(=B׳AdXΠ F 2:weQӤ:mNT+zJwhjA,/Dg\'.8s.t*11GU㴝9 W>+UeysOYC cB*ϴ\,\{cH$IqCN,R@`Aog"9cK<76]X>!L&f+hi  Q]Rć\ZGnQ^9}Nސzv;fd G0G@~K Xs]} W;by'wYR_N |bukڒBPÌ\c+)I[iMBVzxV<<ҫTziEV)$>Lwڦz-z̅9] UUW#ݢm8$ώߛ!9^"U\MZki#=lfYOʱsnmtn:n;%@{1L,ېD& 1Y`Oebk8s]%;GP9-g$?[q9ǏkdS0zuڎzF g9[ {JfJ~9U?T |@ TnW9v-UHĜM{zt/li5r8JjD;\Y_Ӭs1O4k4.R1a0_UB-fʘyˎ_gBo2ioz6 ;smcu15Zu:,c3v9R*֫=T1 RovqpyI~E]`jQ}UkMk:Sߦ%±Lh.itOȂN$=='n+^MByv(t<{ļgA{+NQki ]5uՂ{gC<%䇎y{ֺ@0'j9SK91$l,r%) =&+ĸ0^yhɰ2&r#dhQ0rG3[JD"ٛ rNN W$.!1@KJ>>!] 1ǭsD!i܄g@Z ͻqe]yI),gv/@*b; jF3)9er[.аAjQvp95k|yW&3l8a::ARH~f9|_jKZQԀnc!wݫ)̍^޴Dxw=y #`c~eeLkj6!)s.]iՑaoԚdq .\U:+־9 JNua0ݞPF/`>Ȝ=?w;]#ӜE.[z)W#ׯF zs5nPtPXz9>ʲWX'cB+efp0IMcQEFV5Wiu/a`:9iwO`qWoˠ/8V6wSKkuMeGԜnߦդ9g&1Mm%Kr) kʧs*4l>FY`&Gsʜ)TDzkT=j̮Ѡ.Sif)N{LkA EU\Z֨Mc15;Wkps: YfbxNSbo\XZ `{NuOyau/K Xx~>gM>cPc0/(UsߙC; E6XTficKk㗎Ds-3H&9,Ӷ]MN U)`WTQi9Pr!b0SCz!0=\1Ž2b-)awuri/B+]%ļpLnVW~y1vCm̻Xx5mj8e&N?0ԃ+G35h11F!Cap9cQ]|.326-ԀB($fo;a?j$Q:.hgԪqq*)(AYo*0v\\c[c.'4ݻʐqAդ#&e8b[2Xmm44:_Kdc>@~ƥ|cZÌ7+k.0A0R1\C&_&| GL!x+"aLkKk]zG/-M^Sm<wS9-l3V6{ 0F9([0dspYxkkPY֫JzWfs| Ԡ' 9<9՝COE+sӓ9,@ɮL|COZF=3/] z('-' ~Z鞵[SÖ940<9陭-yl+*0y]VrթeȄyv >+{ C., \Dt z=G^d('gW/:{R3G Rt$huHNe'Uڽ9 s~Yw=L"ћpq5^xjEƴrf?x-r6Fߙ}nnǴ*0^GT"M:,ۣA>al®O8:? []Szš@Z?9CJ3` pnՅŕoaϷ,7/vQP\6NP#Dxg"1ߤɵޙQCKH3?%Npʸ~әZ#ԢشV"(*$kMJgPmҋIfr۴ْT㱜;Σy;GijAc`j^O&?ץU+̛b&ǭq  #2갉@^)W-$q\Ҩ{~%MHGtzOC{̵`-V1 eqt.erF88o63ѝ=k]&itvֺY:7 ߷$6;Om4n HbsA|5Y N[@RÜ,:'SvgGޓ;otO bVdڥ2J s,: q=a!' MCRߩ/]nU/Ijmu?,ϸg2|-k,y?<diOP1 aLj'=s JۈC$VY3DݕXaxJ}[I!M {fN35?O0"O@`eK09qP>GpH?j7Kg݃64 !=TNELI0Rۅnq߸2fQKqfӞpnrsI^OffgcrvR ZDF =EYlC"k!6o˜\()<僀aub+(۸G$xVoM<WE[3rt{nc5}n6B''ìn~T%7sHc84 4#Sbɝ>:JlŒh}0yNn62E7J[0zV@kGjl :=x0Fre},i+pA%pNsOh߷Ilr=jkH‡s#,+Xs4aG--il.X;{ΡH0T[1bq'W`AtL._(# =0Ycp f'fl MZ%߉a$`HM=y3b0O1/8<42tS[ {@i4h3^`9#ҦЕ9>]ERkP>DotaWw%fmqqίs 99#k6Pam>2h>ؘN8m9' )k\">'v4_B~QVg>ҧ] O2glu5u'6 ~ʹl M6̆2 ik|Aq0TlKݕ`]u8`3c㹊''1922>'B؀eV8QUJNݟCaScv?"Ettrv'nTm,[Ib 5CP=SZk :$2+F>%k<6؝ /XZ%Lt5)c;TZ1-׷nJV`ޫ{f.merֻ-a1Z3v+)Q1"K7FN֜ZylKGN*l&^uA4+]C7صHMohbgL[iӣ-<]yll9#]+U]]J}Oy^~Ȩ'؈2B9 XzwwWJ/4ڻ\'0DV*NXq)F VUr8CCprg` bB͌1vVޡ{D:6%32e=3#?iJ=\ElWS^Y~e`0eTHOsvC Ybӱ\x?5MejIÎm+c:R;(ptd^`1 O8:- jjg!cvnDA 1u  49-o`\8:CPI;yblLsf:MWnbэ0=3l̘ "0*&`ooIJ*&ճrjx#L[An.QT]3*[Ru '<~CsRnshQuKbj0lG30fv3}SnI'ǽUXm XSq3-PC!qɚ6k:zSjۻ'x_pVc3 jf dQ*q\t" i&){')[2uj:ԇTrǜgsf*H=0cʒǘ@E=(D=x~ѓA{ ӷ+qCiW=cQ6'oE:<7KYU,:yй8?yY^{{| u0P{Y0 ~i鞋F$13wY`Eg'FVs7V/ys)㲩{{I)QZ&)+tK#Zs5_I8 Kv*)㏸;DYTBGK.0:2;[NV6U|֓۷F`H= }XN DZ sۿM]8Mk[6Ӊ2>+m}99G͵!wzO|N[.G$ ?%Gg ]:(:ְ:3:M'f-jШb93uh[}kcTP =̨t-Ĥ,F%-h e48!YL& s+&FflJY8b0=mN:Zxҙ ϸFʫXW;21mi qX_O0O^MMXAR1/)^i`QydIڮ[6Qu@XJ&Xͤ}0ԣXcw^5ZpP=w2>tL20b >7ц)wN]tZʰ?YG_O)3;|>MvB~󟩫chUNDJ uLpこx7.e+ y4VU;9tTb^T g J\pvCPEU8$b CC n>)C |rYo ϼIepy{s6zBWEyl|GƜ"+VFZӺe5>r}o|ԐOn*ؤdZMb9c˷t]u|2VXr{7u'}Қ#qogUWqͱl 9cB}Bt9=x  &};h1/7]~k* :[^܌b+ǰѣwUBit-)"{3OTiP{kXd1lwK]8OM?6/իOxP˥}CVr'R+wP:.,+б][i'G\t*_ܓ:-?ڠp9Qu/kghtŸےˏz: xZ*\ ԣl|]: "cca~ctT"Z1UAbNd_U6OD`4l`p^70\9몶*bb9prssחז?L*jkHߪtV93'U?ðcN# l_Qe8r A#iuDv!#n[r8:brUَg&QHо':_zl?' gSq؀2wZ$$l6N=]Y7C]g3b K/+%m笙"L~ɌIRsK{bWS&# ϼe~T8LHg:̉` b(q_yMW. t6S=TG轺:yvsc\8\ ]0j'?j6 'XBU-S&G0g$TB6ܜhb, #:`vhOa9jX<Π['6ch:n]=ꔏT¼oCqbKVJĺ)p'+1j`3dZ\ZUI?5Q+\oDB3<ҿ!r%y&pAI M۱x C0l1΍82j&fsq0q!l;L[ҧkRs2Pg0ʋj /X`|CcJQ&[2h5-'>`{3ptvh<ޖg@h)bv.Zu&VWQl¨8?gWvHM o{oj׷VfI˰: e pȬ+ JPXE"Lh(X82d$ hMCaCi)z̽FGk2t<{Gv᱉9=@Uw3|yzl=j]}ԉn[m6|tԶg=g{UTo8=8?N@2.hbC1aW=UXLr)j.^]}\h}]m [F \b2yA&ton0IP,DvaSb[PrrtKm*+^kH+ Ʉۇ9:^1FE `0=OY?&+ߵxhvZsͫL@[hbqg"+5YtuLrר8ir`\* g9vd ӽoBpˎtuͶk[,+eAȂa!z2sRfI^aDƜbZj(~O]ڌ`H&r-Wveke f1A ,6WNA>󌅮/1DU?>ljENׁ7c2P b;|z;Fӥ@w;[=Fg7L='cOR͹QeWvP .`oGQ.±rp?HzP ե';Ehuzc#a)~Evci(5WsG!޹1CSy.Vբ2sq8 TY KQZ>xSq"u]XĶ==nfP 3„ a$h%gUJ&#ٛ ˢҖzyaOm?`L2Oij`8f|K#ŭ Y8 Y~kM 269T`J+ ajU'&Kr9u@Txuj$h';9!-9?46cNa Yo=꼓1~x#;Q:n'4y`f2W:?kӥ, e9]9Kq:~Հt8u}=OYD| y$v"yG ΂H>3L<N@>Y*nMF;NW8մ99̭obę+yX m(}>NJB*g>UOaKFA! LAa=$n+a1m9"q-pv3IZᕜ*TS)"LxŹZ?de=@m;J;ӘIu6}6K+4IW='y]HI@ st< GN0$Λa|/+jsch|u7Q9.l5y#FK/%ڠ~,Ƅ{H1@ wg㼵cfX/tK3:dDc=%5R\bh^"V8U9D31^6c^ G'9?V1U03E?F=xO]J#KYCt y@s'xuX `؏n-D 4*nG7UXhoZ*Zf>21<E^ZyŧTڊ#{ g] l#Cu tø f e'#%-gyz=IP35W;Ȃ6OiYjN;H$Yy ȎM+>98"n2@4rT̩dKV~&0ׄj.K{S_p!QKN>RtoU 'Qn]M+CtQ9㜑`gcz t\aXtMFW֪‘k%'0ҍ0=`BfǰWvy=!CSRous v3dnye˸U,bZ򽠼uj} j_>LUI§QXmr M\UEy2cȫ{{fAItYgm8m9rYp`؝29Sj<,LEzfq _z(l GHAq65v[NϹΫv㼓t+v3 k g,O~xJ:jk)nǹuВ~磌|̢ښA#v5nRNyȚV9hY `7z(C2V9gKڮ1 >!]:[1yj,IcٳeNָ,ab@=L N=e%}̜yʒsJybXO5mub OiNf5< ݡ7[{bZK3qČ^=5j6ag%Nr}-L ꨷,sZ(hzW2wZTlJ+VOWhCR3cʐ>a Xq#uiFy$ S97YA 6W2癦vCs0SixJrs7mP<JYcMi٪SF?€OH :nDonY*Zs|I㐞6+: ƶ9ߙ_rFl7|vM W<ɔyAegd0]Q$JϴO![g/g9̜ãPa+%+ɏ|Ln0dF[T?/#tbƐ `YG?˘F[7($q/;8AXS֮ I3.gJT/V-cfЌ'[9+|q"$ө/rR]2x90*=c*&NZz*(mV 8a=#e s4g4Q:g軆ma^:(SOmpR2+߬;m! Z/ŅIiZqԟtuA"5j)i'E0?YVsjYטU@tzX߈,%NFDvjK8?NiqЖ9?g\ğ='=F(v{NX{_IWɟ/,J̃_HZ{Af, W&1 ktC_֭iզ[L:shN3's0TjwC[]WX )21c 2ul9D 0 cK5ZT1&SJ34z RݨGN#L)㘻'}[SGlLg?Nu'1S2(TO^z:|p TcϧV_oϼYSNcޫCOQ8ɞ@ "1ĀY#3YǦ Na{A8"GWYS.@!E^{H.ň['FGli: &sR}chd#"FPr&5qЉH[y3fh 5Kx3eIfNϦojNi0I*gRIz~{Nc8 at+2N ܙ?y=#8#_{!P@n?b\e%9mڴd׬jA mHi%PʬGx㙦1ϚΨ9OY~,5lFf[g>m&m Ǥ0\,&MފqDvir3}[ eUm`!\?̥[='rj, MLHJ&ddxn8h6{lg^Ve2{AYX˴e.hHaH7W:$uA h/¹&kiEG9*6:3/s3JS(:H0+'vA&l17U1 <%,/25gM$dF= Ѫk: L V*8(tYj\CI'QTΪԸ{btj\cjL\Ziz@Z_@SS!.괶2§'HCw6I9tIu!36b6Y]]is+[;u j~fH$£y1Ul؛OyTjci] i+TEs;?P쩲0`_ 4'.m[ 1B12e9Mp'<i0GA!8 ct\QH:bY^[s7;_=K Lݞs|}!zѵSa'̦`$fPN5j#DFpڛ&'g X㗕v:urَrfb#A+ŬٻbI^Vlj&35R\> ͨ!>ÉEM)",'NA0Y`Z-/\tANsL۸Ӽ Z8Ts͟WI? SoG1 ۨ >X!" ? hRrhmF΍(zbQjUr'?b=Gz/AhpӀ9f>^UN33+ۢ]nj xP8 r=#L?s۴"78n;4 1+%;H1&909_2Tg_4`0sBAF8P';WX93(Đ9^ mdu֑ԜL  z.KcŊG:,*OVe X-3Hm$5 f)"rc [j4Vb*Xkv5󻡴':sh TDy?iјؓz=\S]Ugb;ʈ6)q܉Frgoǿw_cӏRbp #q5da>&\י3)bj&YHU;A #t#cȢfҸWBz#q3`Q7 ݦ1JmWh3+Ic@{ 96$/(s^J>ƒ+1 Usd?m}K\Yov8&c}xgXK+I==lWDx3AXL!P{e@\vz-vd@pĨh:"=#S^d{ֶp /ϟ`S+}o,2Ǹe*G4(鹘~ӝS^y۝'rj=j|s|K6X, z}+$Q[)<;>|1m6C,ׇ<|fR\(ɞM.+z9 S[p2>$[ ") ѥ#<] Ecsb6Xu%cnc;@6K 8+a,p&,9[ rp&~:€%r{@'#i}fv^0`3'kix^eI(K:%Iv3'hqax@) LO;VeLemƢrQStd'yKGvhk6B>i'Òs"m)w1kk"$Ǵ4v00kvRGXdԢvňwm6L*^l68X*{!kM6?JF~;3b\*o|j+ 2:kN=Ɋ8__<ĝ8e'0VX8 x P?" 9o&'J'AɃp93LSQ_+8#b㨆TA1+9Y Q?xD~ǁN:`g% -``'GikR=TW c:P'=\Km3, MTQ&A`#XI?IcGJF3:@xu.}GcSfW]ZEu0[ܫ] ӟU,Fʞ7Kfpf6Ce' &,XU0MkEhXI\dc@W,~&NZO%8&PYͼk&f:ǚM(%a*xa0 `*1 c3J$/lT/Kc[B:7Pq9!GM]u7{*Pmla_ F9Jbv9rsaecq¾AL&gͥOl^~IcPS$X &?u1jHˮ*xwQ7+U(W6Ϙ;g*F^BP8vV%fygs3?Xp!8zmM"0idYc\rӖW=`_j63:ӕ>ig$coWsSYԳ0R?80@&Tvl"Sw X jKm`XGe@zL;08IG1ܘ%ۙ3Fu+9ɐ8 ̱|A Mf]F&I4NA&2e=dZ#Q'c?OL$+Ђ3{_ljВtdden= s N]~*?z'OpіD@FpLSWC5 9114(0ɍ˗4Z.EmIuiS9Z9Ӆ#%30+?^x"Ev`u #l  aU*C #UHwo*:/|ZyOB$Yc*+V ЋKTlla  slS;UI#)<mX KgfO3R2KE?;XpDG; BOEEq׼gFԃDbNq{GTYH QZǼQԞCg [A->ÆOv &q/NK237959wߠȗc^{ּ}]6azy-cy{8 U11&G2k=Up1AT1Zհz@AÑ˱EbfS&mdwH֥P,~c:bxfu ?xg!kaE3 ۜQb}M: Д`"^O@ӘK ^a]m{ pǃҜP7Jbţq9[2=>,`dkt&{5cV F 2,&È02#=XP'=oJcB:u 3 F4V[~,nI9Vµq*se9uV&udC8i|ɝ5DzP\990b(c"@q 44c1C{B,͈XE0 B&zCy90Fn +;nF18X! rDD@']'xnMdGvLڪ39_Rn>h̛g2ea9H/' vLG'p%&y2 o-_Ǵ{j@{cp8 gx+}K^Q@ģZ1 }pzݸe)-7[|CQ1If}kFUAatngMC]FYlMZrOV>3Pd>>?&f>1ð>Hz<V52Mg"y铉߷$r"i ĕ'be=6lKo aT@+TEyFm& %+h֛ T uj=9?x0 R{2 er$I\vl+d~*qtVX-}$N\tm\D=|N`Ho3&%ZF{!!#fOhU8*kF<U (YC)%-$AVzEr xgp0 0"!v3ԜKj/6;1Sw#UT~ޟUħXm-:,O{VUlpg CNFص36OO~x,DLjR=-Š{7ȟC|WMj ͕+.:6*{*VG'xw(͸DUuz3lo'(c-e8wHH [c~-2DJXtj=3nfX+ XogXU\J^ڈ^5Wb!P?Sb1YĐ0hA,i G !0und:= hP/1j` ;0"v8*ck:K7 ɹ+MQk<xSgUH&e.%7 !Mu:*}N"y}c0g.pDxլ's.# ǩN~Cumg:ÏxY6 zHzʂPgHH_Rï:jy=HcoEl9B&a'x6@_~3uxKM {O9QWJPy"=NGRi)fK99l/Rο[VvV<|M(QA=q'6$ɭe';wtYGRfǠ3y2C`eA8)8Zۃ֪+NġT0yILL+fpǞߤ&s$326*r1Pσ/}~NJkP{UVlˤ'sq/0 IFm[Pfs7\CGTFߎt18l]L?x\(s> {~cӟT=P!k$|MAsdw˩!T޳gx|0,Ѿ; /AK2Y9iq1ɾ=&s_Q0NOa5V黮ZI'nx&r7V2@0'snWUR+c0L +v? Nz S Mզ(=o7G`Aժ068 A|OH#*b# Vn62[Rzfu5 ױ>P99 j0&ɆI$tt |0V69*6˖l`3䬎%2!89k.k_ ^ҵ'ݹ?-텳;A2Ng>)<|\񫗇cW Y\pz?I]BYqS)U}sYʰgsMo'2aQ\J J'aQ_*{X9$L)O&5g˘YrƱa bq]@FU(`p}^7+y}BYURr(R+$Οc5qkuع';-dv^+\9s̨Bnz!,TelLu'1ʴ{@^uM״]H2cx;%6ߩ'ZUZomqg/6ӯVZk´Z־$4~|)wZm:yٯ&LާO5WʬI&sOM{ -c3L2d4]x$õG=DVGq"U7} ٘(OilgOI61rk,2Lwh) -CX'< q5-+#OGd9mm @,/Z_Ӊ~pMcX}`^RLjWr>GPbZ.RU0\ +ï$& 4:k7+eTJӿ+Ǚte~:g2n=d&zih72DC{qLy44K;`-;V!VRtny0S4Yu 5 6 9@}gM"]1Y89e9R0do3 l|Vhv0ܶ/NzD6E` C9KT!ukm{EbRTecw˺̐Ş r X11J`z\~r:A}ג"qfrOZ6nO0 9fq̽'Hl? y"j°Va ˟Vzz} _#> C7R~ o}FR3=mPMFnBh%NIh KLVH&~$ɓ>zedI/$ 3'"A@bLhu{iV9QKg.&zcϼ)݇'3x̬fNfI3%N"Gs4 Cͅz6f`˄ k0J39>3grÅ KfϼF'n3d#1U|88V *+[<Mɴf䓶1^I 01Ҁ=_,qWCO@;3@1{'c4gI &}gݙ.Ne[xJYNLF,L@_Ku rb&T5caVz*ӪhrL ׅPp:btu 91DqAԷPsfw͖=LIXֹ$OS ӗ6B?ih68g1aViO¨;AqZp8i>3)7Ԭ# ˬo!=FL/㼐We=cT^ì0bxLV,ltnc@uZ::}ZC9_gHMF93],՟iͲ۟ze9ɇ43oap~Fm\7X+h#Ua UKc31OwKX'"vŴP-v Nù=bvoi$Hjy#\biÁr&qf81,fRZ:ʀ_1cǒLmQؘQ/Sf$Ԙ5f9'͝ĊVMiimCN_~'Uf2LSX豴$$\Ōj6ؘM~f0TMwx8ӄ>C'v}<-7TտMiw̽j#!9뤻Myִ\j=x̹Oǃ+S i785}Mw/&elO4@ǿy3#.3` t6!5 MNqۃtKgJ>#@cc#K1vxMk# ^:޻ ;BQk/ f3OIBkv9+ӯ.Ǡs.^} څ#6Wq#׸& 91QaEOG= s(Xüs2:ͳ Ib7;OQ0O\}_]0Ԏ\A=LE)ÇV1`AS#i6 ^VΡDɹț449rs(1|u—)ϼ+yBO?"|}cQ ~ltċ CEm0NYGhliNUጩy,, u_Va$~@Kd#02Bid!ԸLQkd&pq%+6B :3+OD<&Mp,(aAăr单Վ[4 0yw1kt=Ay"l΀j#qu+;|^!6bZ M/1UTchhO>ʼn e&&ۦF`,m][c~D5=E^%[(>9޸(1U`jnr/$=&ڿ> $%g O3jGs+}4ˍ@k?;! 2cyO@?Y0B}ʏ5|gls2Tp cn\>`n)CV9N'^D@<m+GI ~ KQabF8.VyU`@ļ "IsĭĞ28c/lԝm_! Te #@H 9\N6T33-]\L+Iy3*{kLfX$Ó_Iy̰ r Ա @h4!ilL l!Iv3rn[პXIc-X㹌Fy H#, WY5nzr{F z ̊XXc-ĝYhe14|Cf!nUFqFq89 {v8-EGnmʠY2kv GWp] @jmN_y2 ݭvfS M۬Z|DoH-b!O'֚[&.ۈgFTBH@ɏŭGTWǼ1ݺfZIc lCI-|uZBcZ Âk˒Nqؘ[!x^+1ƟEukz~;}Vl﫞LC֧?3 ɗr5'uMS2T]MCTDYGo'Lucpm> թN7g# 9L&>9{zCxvQ= V'?  ۮ"<綵`̞t.='mg892ta&Fzy]n&7I1{gxJi͹8 q>bhGU)" yr'~fa #L#`u2s( BL,3&xR^e}1c&Mc#+nB ч @\Ӡy{a9w3FI̯JtyF:s <уc2ŸGy{~Ph[ \U0Gɛ rƅ]Cq,i(:KFie {w<~ԣ|K'(rv?2</e ~h "ggP99aa2'QLWd4l@+fgbEрNq2{M2dtK:qh:FGN`Ea,KB[X=N1ҋ' 2ǒ&鎰g z1cu"02A `. q 2&s' U^3ƶVp jxL/(ˢZ&|6Ǣۚ6d9OU*u +NQDrݹv%)" i7Y8!]=#BQVшK+cMVǦxV\xy=ox_sH[M%ήV3EtTS>՛F9\*c}٬ӫ'a= v%='E5zv!q_c-uUktlZI[7c/qLdEX](^OAKUq3?5#L~uPŽ&]l{)ԁ Psvh,sOwta=L/@"X]S0[ CJЄﲲ}rl6+XA*;=fni@U:ji01&YFB1ăflb. *R >YB3iN6o,gH0OIO,fl'K'8%LoL$ϿHNx#0 zV }$L$ɘ$EFgYs"Ч 1aBKQWӠ%z|s3]uwt~InB+w̾\}BaGOs:U0Piv98s:W'-؆ 8fltUbe@f22b͚sq3t-H9GGiR,l2Fx҅ AGICN3/ Ny9s1?y$@.Q%g' :LmN11y1&6'X€N@e) faϼp8&Vdb^I]I>c'T2=\v@._&y.ȂI!?&{|hs$%֒Ͷ.q+m[@Wo)ٳ6s96 6θg~\ :2owsBVš)]$ݗy9y uxK:pĭ9?#\Q0ӌ29aLoPzƣGiC?9uoɣ. b AӉ6*I'F H0tC$F,CK*ZJtM]+_rO^ʯb!rzMFrDx}+me=iwǥ_<aE@}~mHTEchSi*O9n4:54:]Rц3#+kIM{ f$v\}-7T02Gxݧo^* l>D>|8h &U4 pR^|.C$/I JDo|=Yx?_K pl\)FF*UfA!zvYetl2c{K/!>5 q nL#(ޙ6ӳQL[[h(*Q99cI\ߪrsxttЋ~Lo2.ZN3fmbڐ;Lm%ӼVcG slseu9KwK0>}Bxze" <|fS6 7B@=,9C FH8$9%OC-pq%JN `ɀ$:5X=s&xgn c,s&}ljGpoB =w!?0O?\XM&ʻs^nv_Mry{õ׆3sqzf^u\\W"qѿVXNISKXiUeQxfWG~ڇ~tvoM|vYuK~U HwΟxm7 Lec,H(ʼ*?1;V1;9g93`i9; CmH*Qo:b`uT =cߗP.VYcg+5e]UKk3 ucsYʈ YG1'*ΤW</+{I=0 5N۔ 1:ztDUi@̢en,/3c"mk&mE ]eK=uKbC>J$c_p. }jqf,s0r=Lc|)Ӏ~3ienl׎!624>&ɂ!axif94խ O0)uSVY}&CzPxOUZ5䱖_ӛ#fqaiիxo3+!yO*˜탑V[W`xhNFd򭫞̓Q=fi&ߎs!;4=#b`bQieBr8 ss2dfLɉ1DK&&cK/+̱!g&}*yL3$ ҥI^فds+YX1(8Kf}eJ$X&7M6>e: Aʑ;$I;!KlОn.4ff3&m^ v&\R qL; =ez[GfÓrCs2cC)?4X/=#DLE;)bq?$:_$ȣe1BA2JPI@6؎y"Ne@5Q}fS>%IHG0ڍ kemӒ1a0X=ɝ,GԿM?e9eVt {usQCOrH*̭)5x嵌K3PQؿEXzc&m՜P \1Sɍ9}BGh.Xns%S[&MLZfuaIb;grST}GɌU)D]n ,23zA/uO^@լN Qs5MX4Ъ Q:<ٳN'<]>ÒɜF[kj,7JM#Ծ ~%T`SiԮ^ji#;+pè߃i*}Cie"l3PFrATzNq :`$tL!q2xa$38;gJ[[04 vt Ǯ~Lc#i⪝q=^&70RbM13䷨'iuRVd2[t}ɺs5QWN)3sU;u:WSc /(75y vsS3<m.WDɚo=:0m΄~fpj(h2es;a03fdȦɑN8DbI"_Y8"Q05gT(I?Idzs3+ $ ̒ q$?2& &yt Cd̹dt 39> ɓ2euXȌWy3̙C[f8='>X굗j8V%5əC/HdV`߱ JYh2|Jq/&Fq+HibBfKzW'asg#g6LkOC` ۼn}c':U`1KaOS1cV%Xw*$Z=}g1[܎ >>+ǖW<^!ϰ)= GV{B. ;y(1{|ǍNq7L6PsGG*> K)'908a3CފYO1fb=+ڽB2% 0/1цSM6l9Vf5MUf=z~Pjw #Tj=x瘱kkOOzEgXp21& sF`Bg6P'S^0$=fX\N%Nx t0cKc:_HzgitҏM{=<> #G) ƭ93֎sSyµ^F#)1(FR gmZrjg*g&4Y]N㙃Xn0xM5-RN3fWḓI.<}HD*OtZzO;qiEnDiW1vKǹS1IG+Yi1TXW@'$I%K+@/#I;2LJ"X'LAr$ >eI$ԨI> ״$,s_ J,g `3ad@ ӌACdlFaG.Sf}hn%Ęj9b7;̅Mm98~U&ۈJ'Ap珴஫ 6RB1ʵw;=:/Xe;r褃NWMڂ AY8[vZބNGgj]1N]j@cF\:Z pS<ίIf͖:W'#?ujb= cWJǼCB<09Ŗ7e/MӬ'=%>Jĝ>D(N Rr^q/0 Y`7{1*VmhڦרaxvҮFAkk#;Ueږ;mx՚Fr#3Zl)1 QNrey^u;8hW s8ՎV}U.`y $5xqkTxO<{=H p;wp,8# qn>ɛ7qxNf۸F-AYcfi יm=s B!T C4#3r<isݶdĺϗS"73FE&y0[AZz/:mUA3qQz_ PQ~ ?5g?2Kum-Gnd߉W MWE1:b+_uimjjȻG=T J74t c= v?h}Dx]ud:c jk^ #`fN2sжmz2 .mİC$1k%[9GѪ3q&r?/R͎Dϊe)p%9a~Ĵƫz=6/#g=!rL9'52D8z. -=S)cfzq.WT_ WQ\>OD3Ls|4%Ǥmɺc2u҉$̓m3s(ʐ!3&^$ĠdĒA]l YzUǓOaҴuw]a?x6rXVqQV )jn|e ,KLr|Ns|+Rтh0e,<9iDLh)xۃđ#0pyl+F ku))q}"Mҙ3dJb$d4ҀJh)HQP,:*A&Шq5S􊠆Isi6s8'*G`Khtp"xPQ{i|KV*ecvYVH#29z{ޥnǴnI8ue<\0*=A8'H2ɯ:ٖmT\&s /9|`Jcu@,oiz/ 06 *RF1!p3=}+#W`5#1䝼m!?l$f7~!?ivԄc 1{5"L1GoS<ɜ:iU~H8c~0iupO=#lÜtSh%fPª{F0}P8Q`[#\Ϥش'*@V®` |ɧɚTg c`)Mp[j~1YFNLV8O_CWPC1=~Q1r'+Vж =sR:+9;4Y.Z$槱pKJ7tڿ ^o buS2nVuܶVrW,\+4u 4Xrw)7J-̄f9> ,#1s\cq4`ʃs~{uq |E,;g1HjU`aU;ϼQYɢ!Aǡ[ldV u*gxkY7THcה/nXըi-/.,$G3C߉91j1YQ='yoO@,@@ 8ĉv:8c! CfLn! 37b=C33 (`2icR[Lٜ1zqB'%W>Ϥ 5T`BEY=@PTY$`qto 6Oe$Iu80}EZpځ5g8 *D3G5PmW,%8(MmAeݘo=̕(K#Î{y+AvEX:n X vFSt;OH'j Ks{NE#"OY_yg\dɎ> 9@&q&s+ɏe*Ad̒&e}^&ebV8Y2+b3&e`pd2bLy\%tzA\{!C-8Ų> 0rq%˲v֟iT:~¯^.)-ØǼ<>g(̥is2bcHR rb9Xn 'qY G!l 8Lv9S&U,pOiBa Aeڞa *fQ,iFs3_ p 퉥_`T VNa2QRCT67&^AeFS7k7x*93eXw;1gR 6рB QH(.FM9ӷ.Lwc6;`9lq)0,/ =m`yV{v3+RSGFq\ PG}ҳdp$@.I:IY] /iRXṡe' #'sqĊǼys|Z "$M 1+2 `Adz :itTޅ+{:_ߋ_RNO8jOy}* ^Fkj6?+켣^2@ l&5냃9n6vYcJp1048ydГx:l(-'z3M>a,U=Ok| (\)J*m {}L#jH8mkj5"U('3ߪP`_ &E]* zLrVWgKukE*è>g.tۨ"O™_N,?3<uX-kTdǭ Bʐ;LM4(yD3:YfaSiu2f!zŘ%mhz a#c􍢮C(Ū91bqta@q?I1{L")M|m"sXr59\[+~'HYW_~熦ҝzYuUh` :9;R姩ЧGWtz''oNM>4fҳ1&fB,0q&!wK X&=L9KBIİwGqL{;&*RX]%N:Cg16 Sڔ]&6 =iÂ;bgJ;K ]N(pXgi- {E4~5f\='['ыI'\a~UP g$XTX-YZ

LפTzjeI8j뻃͖ڮjy$eB]y$wf]zvx+<[RXJ, S&*2Iq8=;}'&&bd|ːǙNr$ I:wL|G2<@(g Ą'Y0dNs% +y`Ic@Xw'OI bI  1̾ ^s2 cOY{O ;񏱗iktXu 3v%/ 2+sE9Ye~&vvpg\s[KpSTo1ml e)9 &۰gfي`iJ]jQ2I3x/2nUc/l4OW#~AOfva020D4l֠$}-DZ!=?i["VT$q§*g``DGYp%68V™m]wʴW 8ynzfi"zOmlJNY uQqE32L0% \kXTҧ&i>;G*}"1`,c?hnWkY*lb<40 T}JGb!'Z_^. {Ma`:WΦ{yY}ם ق-'wD队'Ubg̸A0SrCviiJRؙ TnI@\JꎥX"pS+ Ucw Qx__ᛙϤtdqc* 왜 &6TMC}ъW-׮ D@?='gt:rB+q|L@H=سP#|HTXG^1sLw Qb KëkwǴI<5*\dP8*BҼ:ZU3 8-'1 s@0 cHWcmklibspatialite-4.1.1/test/sql_stmt_tests/reverse5.testcase0000664000175000017500000000203712163502134020631 00000000000000reverse - GeometryCollection XYM :memory: #use in-memory database SELECT AsEWKT(ST_Reverse(GeomFromText("GEOMETRYCOLLECTIONM(POINTM(1 2 10), LINESTRINGM(3 4 10, 5 6 11, 7 8 12, 9 9 13), POLYGONM((10 10 11, 14 10 12, 12 12 13, 10 10 11), (11 10.5 10, 13 10.5 11, 12 11.5 12, 11 10.5 10)), POLYGONM((20 20 10, 24 20 11, 22 18 12, 20 20 10), (21 19.5 11, 23 19.5 12, 22 18.5 13, 21 19.5 11)))", 4326))); 1 # rows (not including the header row) 1 # columns AsEWKT(ST_Reverse(GeomFromText("GEOMETRYCOLLECTIONM(POINTM(1 2 10), LINESTRINGM(3 4 10, 5 6 11, 7 8 12, 9 9 13), POLYGONM((10 10 11, 14 10 12, 12 12 13, 10 10 11), (11 10.5 10, 13 10.5 11, 12 11.5 12, 11 10.5 10)), POLYGONM((20 20 10, 24 20 11, 22 18 12, 20 20 10), (21 19.5 11, 23 19.5 12, 22 18.5 13, 21 19.5 11)))", 4326))) SRID=4326;GEOMETRYCOLLECTIONM(POINTM(1 2 10),LINESTRINGM(9 9 13,7 8 12,5 6 11,3 4 10),POLYGONM((10 10 11,12 12 13,14 10 12,10 10 11),(11 10.5 10,12 11.5 12,13 10.5 11,11 10.5 10)),POLYGONM((20 20 10,22 18 12,24 20 11,20 20 10),(21 19.5 11,22 18.5 13,23 19.5 12,21 19.5 11))) libspatialite-4.1.1/test/sql_stmt_tests/makecircularstripe7.testcase0000664000175000017500000000033512163502134023050 00000000000000makecircularstripe7 - NULL radius :memory: #use in-memory database SELECT MakeCircularStripe(0, 0, NULL, 90, 30, 60); 1 # rows (not including the header row) 1 # columns MakeCircularStripe(0, 0, NULL, 90, 30, 60) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/removepoint8.testcase0000664000175000017500000000040712163502134021527 00000000000000ST_RemovePoint() - TEXT index :memory: #use in-memory database SELECT ST_RemovePoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 'alpha') 1 # rows (not including the header row) 1 # columns ST_RemovePoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 'alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_tests/wkb14.testcase0000664000175000017500000000072012163502134020016 00000000000000Hex Wkb: GeometryCollection XYZ (single line) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONZ(LINESTRINGZ(1.2 3.4 100, 5.6 7.8 101))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONZ(LINESTRINGZ(1.2 3.4 100, 5.6 7.8 101))", 4326))) 01EF0300000100000001EA03000002000000333333333333F33F3333333333330B40000000000000594066666666666616403333333333331F400000000000405940 libspatialite-4.1.1/test/sql_stmt_tests/collect47.testcase0000664000175000017500000000110212163502133020660 00000000000000collect - Polygon, Polygon :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POLYGON((1 2, 3 4, 3 2, 1 2),(1.5 2.5, 2.5 3.5, 2.5 2.3, 1.5 2.5))"), GeomFromText("POLYGON((4 5, 1 2, 4 2, 4 5),(2 3, 3 4, 3 3, 2 3))"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POLYGON((1 2, 3 4, 3 2, 1 2),(1.5 2.5, 2.5 3.5, 2.5 2.3, 1.5 2.5))"), GeomFromText("POLYGON((4 5, 1 2, 4 2, 4 5),(2 3, 3 4, 3 3, 2 3))"))) MULTIPOLYGON(((1 2, 3 4, 3 2, 1 2), (1.5 2.5, 2.5 3.5, 2.5 2.3, 1.5 2.5)), ((4 5, 1 2, 4 2, 4 5), (2 3, 3 4, 3 3, 2 3))) libspatialite-4.1.1/test/sql_stmt_tests/makepointm-null8.testcase0000664000175000017500000000033512163502134022274 00000000000000makepointm-null8 :memory: #use in-memory database SELECT AsText(MakePointM(26.0, 42.3150676015829, 'alpha')); 1 # rows (not including the header row) 1 # columns AsText(MakePointM(26.0, 42.3150676015829, 'alpha')) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/collect19.testcase0000664000175000017500000000047112163502133020667 00000000000000collect - PointZM, Point :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POINTZM(4 5 6 3.2)"), GeomFromText("POINT(1 2)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POINTZM(4 5 6 3.2)"), GeomFromText("POINT(1 2)"))) MULTIPOINT ZM(4 5 6 3.2, 1 2 0 0) libspatialite-4.1.1/test/sql_stmt_tests/fromWkb16.testcase0000664000175000017500000000070312163502134020645 00000000000000fromWkb - GeometryCollection :memory: #use in-memory database SELECT Hex(GeometryCollectionFromWkb(AsBinary(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2))", 4326)))) 1 # rows (not including the header row) 1 # columns Hex(GeometryCollectionFromWkb(AsBinary(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2))", 4326)))) 000100000000000000000000F03F0000000000000040000000000000F03F00000000000000407C07000000010000006901000000000000000000F03F0000000000000040FE libspatialite-4.1.1/test/sql_stmt_tests/casttoint7.testcase0000664000175000017500000000034712163502133021171 00000000000000CastToInteger() - DOUBLE :memory: #use in-memory database SELECT CastToInteger(123.4), TypeOf(CastToInteger(123.4)) 1 # rows (not including the header row) 2 # columns CastToInteger(123.4) TypeOf(CastToInteger(123.4)) 123 integer libspatialite-4.1.1/test/sql_stmt_tests/mbr23.testcase0000664000175000017500000000043612163502134020017 00000000000000MbrTouches - Line + Point on :memory: #use in-memory database SELECT MbrTouches(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(1 2)")); 1 # rows (not including the header row) 1 # columns MbrTouches(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(1 2)")) # header 1libspatialite-4.1.1/test/sql_stmt_tests/pointn9.testcase0000664000175000017500000000050012163502134020462 00000000000000pointN - regular LINESTRINGZM (last point) :memory: #use in-memory database SELECT AsText(PointN(GeomFromText("LINESTRINGZM(4 0 4.4 9, 4 4 2.2 8, 8 4 3.3 7)"), -1)); 1 # rows (not including the header row) 1 # columns AsText(PointN(GeomFromText("LINESTRINGZM(4 0 4.4 9, 4 4 2.2 8, 8 4 3.3 7)"), -1)) POINT ZM(8 4 3.3 7) libspatialite-4.1.1/test/sql_stmt_tests/fromgml22.testcase0000664000175000017500000000054712163502134020704 00000000000000FromGML - Point v3 3D :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('1 2 10')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('1 2 10')):0 SRID=4326;POINT(1 2 10) libspatialite-4.1.1/test/sql_stmt_tests/m_ft.testcase0000664000175000017500000000022512163502134020013 00000000000000metres to feet :memory: #use in-memory database SELECT CvtToFt(1.0); 1 # rows (not including the header row) 1 # columns CvtToFt(1.0); 3.28083989:10 libspatialite-4.1.1/test/sql_stmt_tests/fromgml31.testcase0000664000175000017500000000100712163502134020674 00000000000000FromGML - GeometryCollection, single pointZ :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('1,2,3.2')) 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('1,2,3.2')):0 SRID=-1;GEOMETRYCOLLECTION(POINT(1 2 3.2)) libspatialite-4.1.1/test/sql_stmt_tests/makeellipticsector7.testcase0000664000175000017500000000034512163502134023043 00000000000000makeellipticsector7 - text x_axis :memory: #use in-memory database SELECT MakeEllipticSector(0, 0, 'alpha', 200, 30, 60); 1 # rows (not including the header row) 1 # columns MakeEllipticSector(0, 0, 'alpha', 200, 30, 60) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/shiftlongitude4.testcase0000664000175000017500000000026512163502134022206 00000000000000shiftlongitude - non blob :memory: #use in-memory database SELECT ST_Shift_Longitude("hello") 1 # rows (not including the header row) 1 # columns ST_Shift_Longitude("hello") (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geomtype11.testcase0000664000175000017500000000050512163502134021062 00000000000000geometrytype - GEOMETRYCOLLECTION :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom) from (SELECT GeomFromText("GEOMETRYCOLLECTION(POINT(4 6),LINESTRING(4 6,7 10))") as geom) dummy; 1 # rows (not including the header row) 2 # columns GeometryType(geom) CoordDimension(geom) GEOMETRYCOLLECTION XYlibspatialite-4.1.1/test/sql_stmt_tests/compressgeometry44.testcase0000664000175000017500000000105712163502133022650 00000000000000CompressGeometry - MULTIPOLYGON M :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("MULTIPOLYGONM(((10 10 7, 11 10 8, 11 11 9, 10 11 8, 10 10 7)), ((15 15 5, 16 15 6, 16 16 7, 15 16 8, 15 15 5)))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("MULTIPOLYGONM(((10 10 7, 11 10 8, 11 11 9, 10 11 8, 10 10 7)), ((15 15 5, 16 15 6, 16 16 7, 15 16 8, 15 15 5)))", 4326))) MULTIPOLYGON M(((10 10 7, 11 10 8, 11 11 9, 10 11 8, 10 10 7)), ((15 15 5, 16 15 6, 16 16 7, 15 16 8, 15 15 5))) libspatialite-4.1.1/test/sql_stmt_tests/gml7.testcase0000664000175000017500000000117112163502134017735 00000000000000GMLv2 MultiLinestring Z - no SRID :memory: #use in-memory database SELECT AsGML(GeomFromText("MULTILINESTRINGZ((1 2 100, 3 4 101), (5 5 88, 6 6 99))")); 1 # rows (not including the header row) 1 # columns AsGML(GeomFromText("MULTILINESTRINGZ((1 2 100, 3 4 101), (5 5 88, 6 6 99))")) 1,2,100 3,4,1015,5,88 6,6,99:0 # trailing ":0" required to avoid truncation !!! libspatialite-4.1.1/test/sql_stmt_tests/makecircularstripe4.testcase0000664000175000017500000000033512163502134023045 00000000000000makecircularstripe4 - NULL cy :memory: #use in-memory database SELECT MakeCircularStripe(0, NULL, 100, 90, 30, 60); 1 # rows (not including the header row) 1 # columns MakeCircularStripe(0, NULL, 100, 90, 30, 60) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/asewkb14.testcase0000664000175000017500000000240412163502133020507 00000000000000asewkb - POLYGONM :memory: #use in-memory database SELECT Hex(AsEWKB(GeomFromText("POLYGONM((0 0 0,10 0 0,10 10 0,0 10 0,0 0 0),(1 1 0,2 2 0, 2 1 0, 1 1 0))", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsEWKB(GeomFromText("POLYGONM((0 0 0,10 0 0,10 10 0,0 10 0,0 0 0),(1 1 0,2 2 0, 2 1 0, 1 1 0))", 4326))) 535249443D343332363B30313033303030303430303230303030303030353030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303234343030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303234343030303030303030303030303032343430303030303030303030303030303030303030303030303030303030303030303030303030303030303030303032343430303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303034303030303030303030303030303030303030463033463030303030303030303030304630334630303030303030303030303030303030303030303030303030303030303034303030303030303030303030303030343030303030303030303030303030303030303030303030303030303030303034303030303030303030303030304630334630303030303030303030303030303030303030303030303030303030463033463030303030303030303030304630334630303030303030303030303030303030 libspatialite-4.1.1/test/sql_stmt_tests/fromgeojson8.testcase0000664000175000017500000000066712163502134021520 00000000000000FromGeoJSON - polygon :memory: #use in-memory database SELECT AsText(GeomFromGeoJSON('{"type":"Polygon","coordinates":[[[1,2],[4,5],[2,2],[1,2]],[[1.5,2.5],[3.5,4.5],[2.5,3],[1.5,2.5]]]}')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromGeoJSON('{"type":"Polygon","coordinates":[[[1,2],[4,5],[2,2],[1,2]],[[1.5,2.5],[3.5,4.5],[2.5,3],[1.5,2.5]]]}')):0 POLYGON((1 2, 4 5, 2 2, 1 2), (1.5 2.5, 3.5 4.5, 2.5 3, 1.5 2.5)) libspatialite-4.1.1/test/sql_stmt_tests/makepointm-null5.testcase0000664000175000017500000000035712163502134022275 00000000000000makepointm-null5 :memory: #use in-memory database SELECT AsText(MakePointM(-26.0, 42.3150676015829, 12.6389, 4326.0)); 1 # rows (not including the header row) 1 # columns AsText(MakePointM(-26.0, 42.3150676015829, 12.6389, 4326.0)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/shiftlongitude22.testcase0000664000175000017500000000144612163502134022270 00000000000000shiftlongitude - polygonzm, negative interior rings :memory: #use in-memory database SELECT AsText(ST_Shift_Longitude(GeomFromText("POLYGONZM((185 0 4 2, 184 10 5 3, 175 10 5 4, 176 0 5 1, 185 0 4 2),(-177 1 4 2, -177 2 5 3, -178 2 6 4, -178 1 9 2, -177 1 4 2),(-179 4 0 0, 179 4 0 0, 179 5 0 0, -179 5 0 0, -179 4 0 0))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(ST_Shift_Longitude(GeomFromText("POLYGONZM((185 0 4 2, 184 10 5 3, 175 10 5 4, 176 0 5 1, 185 0 4 2),(-177 1 4 2, -177 2 5 3, -178 2 6 4, -178 1 9 2, -177 1 4 2),(-179 4 0 0, 179 4 0 0, 179 5 0 0, -179 5 0 0, -179 4 0 0))", 4326))) POLYGON ZM((185 0 4 2, 184 10 5 3, 175 10 5 4, 176 0 5 1, 185 0 4 2), (183 1 4 2, 183 2 5 3, 182 2 6 4, 182 1 9 2, 183 1 4 2), (181 4 0 0, 179 4 0 0, 179 5 0 0, 181 5 0 0, 181 4 0 0)) libspatialite-4.1.1/test/sql_stmt_tests/casttoblob4.testcase0000664000175000017500000000023412163502133021305 00000000000000CastToBlob() - INTEGER :memory: #use in-memory database SELECT CastToBlob(123) 1 # rows (not including the header row) 1 # columns CastToBlob(123) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/sanitizeGeometry13.testcase0000664000175000017500000000117312163502134022577 00000000000000Sanitize Geometry - POLYGON with interior :memory: #use in-memory database SELECT AsText(SanitizeGeometry(GeomFromText("POLYGON((-10 -10, -10 -10, 10 -10, 10 10, -10 10, -10 -10, -10 -10),(-6 -6, -6 -5, -5 -5, -5 -5, -5 -5, -5 -6, -6 -6),(6 6, 5 6, 5 6, 5 5, 6 5, 6 6))"))) 1 # rows (not including the header row) 1 # columns AsText(SanitizeGeometry(GeomFromText("POLYGON((-10 -10, -10 -10, 10 -10, 10 10, -10 10, -10 -10, -10 -10),(-6 -6, -6 -5, -5 -5, -5 -5, -5 -5, -5 -6, -6 -6),(6 6, 5 6, 5 6, 5 5, 6 5, 6 6))"))) POLYGON((-10 -10, 10 -10, 10 10, -10 10, -10 -10), (-6 -6, -6 -5, -5 -5, -5 -6, -6 -6), (6 6, 5 6, 5 5, 6 5, 6 6)) libspatialite-4.1.1/test/sql_stmt_tests/fromgml40.testcase0000664000175000017500000000136012163502134020676 00000000000000FromGML - Polygon v2, poslist, broken :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('0,0 5,0 5,5 0,5 0,0foo')) 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('0,0 5,0 5,5 0,5 0,0foo')):0 (NULL)libspatialite-4.1.1/test/sql_stmt_tests/garsmbr14.testcase0000664000175000017500000000025512163502134020673 00000000000000garsmbr - bad latitude :memory: #use in-memory database SELECT AsText(GARSMbr("001--")) 1 # rows (not including the header row) 1 # columns AsText(GARSMbr("001--")) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makeline5.testcase0000664000175000017500000000034512163502134020743 00000000000000makeline5 :memory: #use in-memory database SELECT AsText(MakeLine(zeroblob(10), GeomFromText("POINT(1 2)"))); 1 # rows (not including the header row) 1 # columns AsText(MakeLine(zeroblob(10), GeomFromText("POINT(1 2)"))) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/togars13.testcase0000664000175000017500000000073712163502134020541 00000000000000togars - GeometryCollection: Point + Linestring + Polygon :memory: #use in-memory database SELECT ToGARS(GeomFromText("GEOMETRYCOLLECTION(POINT(11.876910 43.461390), LINESTRING(11 43, 12 43), POLYGON((11 43, 11.05 43, 11.05 43.05, 11 43.05, 11 43)))", 4326)) 1 # rows (not including the header row) 1 # columns ToGARS(GeomFromText("GEOMETRYCOLLECTION(POINT(11.876910 43.461390), LINESTRING(11 43, 12 43), POLYGON((11 43, 11.05 43, 11.05 43.05, 11 43.05, 11 43)))", 4326)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/buildmbr8.testcase0000664000175000017500000000026512163502133020761 00000000000000buildmbr - null args :memory: #use in-memory database SELECT BuildMbr(5, 6, 7, NULL, NULL) 1 # rows (not including the header row) 1 # columns BuildMbr(5, 6, 7, NULL, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/expand1.testcase0000664000175000017500000000040012163502134020421 00000000000000Expand :memory: #use in-memory database SELECT AsText(ST_Expand(GeomFromText("Point(1 2)"), 0.5)) 1 # rows (not including the header row) 1 # columns AsText(ST_Expand(GeomFromText("Point(1 2)"), 0.5)) POLYGON((0.5 1.5, 1.5 1.5, 1.5 2.5, 0.5 2.5, 0.5 1.5)) libspatialite-4.1.1/test/sql_stmt_tests/asgml7.testcase0000664000175000017500000000034212163502133020257 00000000000000asgml - bad args (non-int, 3 arg) :memory: #use in-memory database SELECT asgml("hello", GeomFromText("Point(1 2)"), 4); 1 # rows (not including the header row) 1 # columns asgml("hello", GeomFromText("Point(1 2)"), 4) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makepointzm-null8.testcase0000664000175000017500000000036012163502134022464 00000000000000makepointzm-null8 :memory: #use in-memory database SELECT AsText(MakePointZM(26.0, 42.3150676015829, 'alpha', 'beta')); 1 # rows (not including the header row) 1 # columns AsText(MakePointZM(26.0, 42.3150676015829, 'alpha', 'beta')) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/gml15.testcase0000664000175000017500000000152312163502134020015 00000000000000GMLv2 MultiPolygon: no SRID :memory: #use in-memory database SELECT AsGML(GeomFromText("MULTIPOLYGON(((10 10, 20 10, 20 20, 10 20, 10 10)), ((85 85, 90 85, 90 90, 85 90, 85 85)))")); 1 # rows (not including the header row) 1 # columns AsGML(GeomFromText("MULTIPOLYGON(((10 10, 20 10, 20 20, 10 20, 10 10)), ((85 85, 90 85, 90 90, 85 90, 85 85)))")) 10,10 20,10 20,20 10,20 10,1085,85 90,85 90,90 85,90 85,85:0 # trailing ":0" required to avoid truncation !!! libspatialite-4.1.1/test/sql_stmt_tests/fromgml53.testcase0000664000175000017500000000132112163502134020677 00000000000000FromGML - MultiLinestring v2 3D (no namespace) :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('1,2,10 3,4,11 5,6,127,8,13 9,10,13')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('1,2,10 3,4,11 5,6,127,8,13 9,10,13')):0 SRID=4326;MULTILINESTRING((1 2 10,3 4 11,5 6 12),(7 8 13,9 10 13)) libspatialite-4.1.1/test/sql_stmt_tests/geomtype62.testcase0000664000175000017500000000060012163502134021064 00000000000000geometrytype - GEOMETRYCOLLECTION - one point :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("GEOMETRYCOLLECTION(POINT(3 2))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) GEOMETRYCOLLECTION XY GEOMETRYCOLLECTIONlibspatialite-4.1.1/test/sql_stmt_tests/asfgf9.testcase0000664000175000017500000000043012163502133020242 00000000000000asfgf - pointxy, 3 dim :memory: #use in-memory database SELECT Hex(AsFGF(GeomFromText("POINT(1 2)"), 3)) 1 # rows (not including the header row) 1 # columns Hex(AsFGF(GeomFromText("POINT(1 2)"), 3)) 0100000003000000000000000000F03F000000000000004000000000000000000000000000000000 libspatialite-4.1.1/test/sql_stmt_tests/lhr2.testcase0000664000175000017500000000024112163502134017733 00000000000000forceLHR - invalid :memory: #use in-memory database SELECT ST_ForceLHR("alpha"); 1 # rows (not including the header row) 1 # columns ST_ForceLHR("alpha") (NULL) libspatialite-4.1.1/test/sql_stmt_tests/casttodouble6.testcase0000664000175000017500000000033212163502133021642 00000000000000CastToDouble() - INTEGER :memory: #use in-memory database SELECT CastToDouble(123), TypeOf(CastToDouble(123)) 1 # rows (not including the header row) 2 # columns CastToDouble(123) TypeOf(CastToDouble(123)) 123.0 real libspatialite-4.1.1/test/sql_stmt_tests/dimension3.testcase0000664000175000017500000000033712163502133021141 00000000000000dimension3 - linestring :memory: #use in-memory database SELECT Dimension(GeomFromText("LINESTRING(4 0, 4 4, 8 4)")) 1 # rows (not including the header row) 1 # columns Dimension(GeomFromText("LINESTRING(4 0, 4 4, 8 4)")) 1libspatialite-4.1.1/test/sql_stmt_tests/scalecoords13.testcase0000664000175000017500000000230512163502134021534 00000000000000scale coords - POLYGONZM with inner ring :memory: #use in-memory database SELECT AsText(ScaleCoords(geom, 0)), AsText(ScaleCoords(geom, 0.0)), AsText(ScaleCoords(geom, 2, 3.0)), AsText(ScaleCoords(geom, 1.0, -1)), ScaleCoords(zeroblob(20), 10), ScaleCoords(geom, "hello"), ScaleCoords(geom, 1, "hello"), ScaleCoords("foo", 2) FROM (SELECT GeomFromText("POLYGONZM((0 0 1 2, 0 4 1 2, 4 4 1 2, 4 0 1 2, 0 0 1 2),(1 2 1 2, 1 3 1 2, 2 3 1 2, 2 2 1 2, 1 2 1 2))") as geom) dummy; 1 # rows (not including the header row) 8 # columns AsText(ScaleCoords(geom, 0)) AsText(ScaleCoords(geom, 0.0)) AsText(ScaleCoords(geom, 2, 3.0)) AsText(ScaleCoords(geom, 1.0, -1)) ScaleCoords(zeroblob(20), 10) ScaleCoords(geom, "hello") ScaleCoords(geom, 1, "hello") ScaleCoords("foo", 2) POLYGON ZM((0 0 1 2, 0 0 1 2, 0 0 1 2, 0 0 1 2, 0 0 1 2), (0 0 1 2, 0 0 1 2, 0 0 1 2, 0 0 1 2, 0 0 1 2)) POLYGON ZM((0 0 1 2, 0 0 1 2, 0 0 1 2, 0 0 1 2, 0 0 1 2), (0 0 1 2, 0 0 1 2, 0 0 1 2, 0 0 1 2, 0 0 1 2)) POLYGON ZM((0 0 1 2, 0 12 1 2, 8 12 1 2, 8 0 1 2, 0 0 1 2), (2 6 1 2, 2 9 1 2, 4 9 1 2, 4 6 1 2, 2 6 1 2)) POLYGON ZM((0 0 1 2, 0 -4 1 2, 4 -4 1 2, 4 0 1 2, 0 0 1 2), (1 -2 1 2, 1 -3 1 2, 2 -3 1 2, 2 -2 1 2, 1 -2 1 2)) (NULL) (NULL) (NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/casttoxyz2.testcase0000664000175000017500000000022212163502133021214 00000000000000casttoxyz - non-blob :memory: #use in-memory database SELECT CastToXYZ(4) 1 # rows (not including the header row) 1 # columns CastToXYZ(4) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geomfromkml14.testcase0000664000175000017500000000236612163502134021562 00000000000000From KML - MultiGeometry LINESTRING :memory: SELECT AsText(GeomFromKML(" -112.2550785337791,36.07954952145647 -112.2549277039738,36.08117083492122 -112.2552505069063,36.08260761307279 -112.2564540158376,36.08395660588506 -112.2580238976449,36.08511401044813 -112.2595218489022,36.08584355239394 -112.262073428656,36.08626019085147 -112.2633204928495,36.08621519860091 -112.2644963846444,36.08627897945274 -112.2656969554589,36.08649599090644 ")) 1 # rows 1 # column AsText(GeomFromKML(" -112.2550785337791,36.07954952145647 -112.2549277039738,36.08117083492122 -112.2552505069063,36.08260761307279 -112.2564540158376,36.08395660588506 -112.2580238976449,36.08511401044813 -112.2595218489022,36.08584355239394 -112.262073428656,36.08626019085147 -112.2633204928495,36.08621519860091 -112.2644963846444,36.08627897945274 -112.2656969554589,36.08649599090644 ")) MULTILINESTRING((-112.255079 36.07955, -112.254928 36.081171, -112.255251 36.082608, -112.256454 36.083957, -112.258024 36.085114, -112.259522 36.085844, -112.262073 36.08626, -112.26332 36.086215, -112.264496 36.086279, -112.265697 36.086496))libspatialite-4.1.1/test/sql_stmt_tests/casttosingle1.testcase0000664000175000017500000000026112163502133021645 00000000000000casttosingle - bad blob :memory: #use in-memory database SELECT CastToSingle(zeroblob(99)) 1 # rows (not including the header row) 1 # columns CastToSingle(zeroblob(99)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/shiftcoords8.testcase0000664000175000017500000000043612163502134021511 00000000000000shiftcoords - Linestring XY :memory: #use in-memory database SELECT AsText(ShiftCoords(GeomFromText("LINESTRING(1 2, 3 4)"), 1.4, 3.9)); 1 # rows (not including the header row) 1 # columns AsText(ShiftCoords(GeomFromText("LINESTRING(1 2, 3 4)"), 1.4, 3.9)) LINESTRING(2.4 5.9, 4.4 7.9) libspatialite-4.1.1/test/sql_stmt_tests/collect4.testcase0000664000175000017500000000033712163502133020602 00000000000000collect - second arg zeroblob :memory: #use in-memory database SELECT AsText(COLLECT(Makepoint(1,2), zeroblob(20))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(Makepoint(1,2), zeroblob(20))) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/asewkb7.testcase0000664000175000017500000000021512163502133020427 00000000000000asewkb - float :memory: #use in-memory database SELECT AsEWKB(3.2) 1 # rows (not including the header row) 1 # columns AsEWKB(3.2) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makeellipticsector11.testcase0000664000175000017500000000035612163502134023120 00000000000000makeellipticsector11 - BLOB y_axis :memory: #use in-memory database SELECT MakeEllipticSector(0, 0, 100, zeroblob(4), 30, 60); 1 # rows (not including the header row) 1 # columns MakeEllipticSector(0, 0, 100, zeroblob(4), 30, 60) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/casttolinestring8.testcase0000664000175000017500000000060612163502133022554 00000000000000casttolinestring - GEOMETRY COLLECTION, LINESTRING and POLYGON :memory: #use in-memory database SELECT AsText(CastToLineString(GeomFromText("GEOMETRYCOLLECTION(POLYGON((4 3, 4 1, 0 3, 4 3)),LINESTRING(4 1, 3 4))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToLineString(GeomFromText("GEOMETRYCOLLECTION(POLYGON((4 3, 4 1, 0 3, 4 3)),LINESTRING(4 1, 3 4))"))) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/fromgml21.testcase0000664000175000017500000000054512163502134020701 00000000000000FromGML - Point v2 3D :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('1,2,10')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('1,2,10')):0 SRID=4326;POINT(1 2 10) libspatialite-4.1.1/test/sql_stmt_tests/locatemeasure11.testcase0000664000175000017500000000050512163502134022062 00000000000000ST_Locate_Between_Measures - no M :memory: #use in-memory database SELECT ST_Locate_Between_Measures(GeomFromText('LINESTRING(0 1, 1 0, 2 1, 3 0, 4 1, 5 0)'), 20.1, 30); 1 # rows (not including the header row) 1 # columns ST_Locate_Between_Measures(GeomFromText('LINESTRING(0 1, 1 0, 2 1, 3 0, 4 1, 5 0)'), 20.1, 30) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makeellipticsector6.testcase0000664000175000017500000000033712163502134023043 00000000000000makeellipticsector5 - NULL x_axis :memory: #use in-memory database SELECT MakeEllipticSector(0, 0, NULL, 200, 30, 60); 1 # rows (not including the header row) 1 # columns MakeEllipticSector(0, 0, NULL, 200, 30, 60) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/compressgeometry7.testcase0000664000175000017500000000077012163502133022570 00000000000000CompressGeometry - LINESTRINGZM :memory: #use in-memory database SELECT Hex(CompressGeometry(GeomFromText("LINESTRINGZM(1 2 3 0, 3 4 3 0)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(CompressGeometry(GeomFromText("LINESTRINGZM(1 2 3 0, 3 4 3 0)", 4326))) 0001E6100000000000000000F03F0000000000000040000000000000084000000000000010407CFA4D0F0002000000000000000000F03F0000000000000040000000000000084000000000000000000000000000000840000000000000104000000000000008400000000000000000FE libspatialite-4.1.1/test/sql_stmt_tests/fromgml23.testcase0000664000175000017500000000142712163502134020703 00000000000000FromGML - MultiLinestring v2 3D (no namespace) :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('1,2,10 3,4,11 5,6,127,8,13 9,10,13')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('1,2,10 3,4,11 5,6,127,8,13 9,10,13')):0 SRID=4326;MULTILINESTRING((1 2 10,3 4 11,5 6 12),(7 8 13,9 10 13)) libspatialite-4.1.1/test/sql_stmt_tests/gml9.testcase0000664000175000017500000000133612163502134017742 00000000000000GML GeometryCollection Z (Point, Linestring) - no SRID :memory: #use in-memory database SELECT AsGML(3, GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(3 8 100), LINESTRINGZ(1 2 100, 3 4 101))")); 1 # rows (not including the header row) 1 # columns AsGML(3, GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(3 8 100), LINESTRINGZ(1 2 100, 3 4 101))")) 3 8 1001 2 100 3 4 101:0 # trailing ":0" required to avoid truncation !!! libspatialite-4.1.1/test/sql_stmt_tests/fromgeojson20.testcase0000664000175000017500000000110112163502134021552 00000000000000FromGeoJSON - multilinestring, SRID :memory: #use in-memory database SELECT AsEWkt(GeomFromGeoJSON('{"type":"MultiLineString","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:EPSG:3003"}},"bbox":[-3,2,4,25],"coordinates":[[[1,2],[4,6]],[[2,3],[-3,25],[1,2]]]}')) 1 # rows (not including the header row) 1 # columns AsEWkt(GeomFromGeoJSON('{"type":"MultiLineString","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:EPSG:3003"}},"bbox":[-3,2,4,25],"coordinates":[[[1,2],[4,6]],[[2,3],[-3,25],[1,2]]]}')):0 SRID=3003;MULTILINESTRING((1 2,4 6),(2 3,-3 25,1 2)) libspatialite-4.1.1/test/sql_stmt_tests/casttoblob13.testcase0000664000175000017500000000031012163502133021360 00000000000000CastToBlob() - Valid (1) hex_input :memory: #use in-memory database SELECT Hex(CastToBlob('0129abCF', 1)) 1 # rows (not including the header row) 1 # columns Hex(CastToBlob('0129abCF', 1)) 0129ABCF libspatialite-4.1.1/test/sql_stmt_tests/st_x5.testcase0000664000175000017500000000036312163502134020133 00000000000000ST_X5 :memory: #use in-memory database SELECT ST_X(GeomFromText("LINESTRINGZ(136 -35 635.2, 135.2 -34.5 675.1)")); 1 # rows (not including the header row) 1 # columns ST_X(GeomFromText("LINESTRINGZ(136 -35 635.2, 135.2 -34.5 675.1)")) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geojson1.testcase0000664000175000017500000000056712163502134020624 00000000000000GeoJSON Point: excessive precision :memory: #use in-memory database SELECT AsGeoJSON(GeomFromText("POINT(1 2)", 4326), 44, 2); 1 # rows (not including the header row) 1 # columns AsGeoJSON(GeomFromText("POINT(1 2)", 4326), 44, 2) {"type":"Point","crs":{"type":"name","properties":{"name":"EPSG:4326"}},"coordinates":[1,2]}:0 # trailing ":0" required to avoid truncation !!! libspatialite-4.1.1/test/sql_stmt_tests/geomtype40.testcase0000664000175000017500000000064412163502134021070 00000000000000geometrytype - GEOMETRYCOLLECTIONZ - one polygon :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("GEOMETRYCOLLECTIONZ(POLYGONZ((4 6 0,7 10 0, 12 3 1, 4 6 0)))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) GEOMETRYCOLLECTION Z XYZ GEOMETRYCOLLECTIONlibspatialite-4.1.1/test/sql_stmt_tests/pointn14.testcase0000664000175000017500000000033112163502134020540 00000000000000pointN - empty LINESTRINGZ (error) :memory: #use in-memory database SELECT PointN(GeomFromText("LINESTRINGZ()"), 0); 1 # rows (not including the header row) 1 # columns PointN(GeomFromText("LINESTRINGZ()"), 0) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geomtype14.testcase0000664000175000017500000000055412163502134021071 00000000000000geometrytype - MULTIPOLYGONZ :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom) from (SELECT GeomFromText("MULTIPOLYGONZ(((30 20 1, 10 40 1, 45 40 1, 30 20 1)),((15 5 2, 40 10 2, 10 20 2, 5 10 2, 15 5 2)))") as geom) dummy; 1 # rows (not including the header row) 2 # columns GeometryType(geom) CoordDimension(geom) MULTIPOLYGON Z XYZlibspatialite-4.1.1/test/sql_stmt_tests/makearc4.testcase0000664000175000017500000000026412163502134020560 00000000000000makearc4 - NULL cy :memory: #use in-memory database SELECT MakeArc(0, NULL, 100, 30, 60); 1 # rows (not including the header row) 1 # columns MakeArc(0, NULL, 100, 30, 60) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/casttomulti4.testcase0000664000175000017500000000034012163502133021517 00000000000000casttomulti - POINT :memory: #use in-memory database SELECT AsText(CastToMulti(GeomFromText("POINT(3 1)"))) 1 # rows (not including the header row) 1 # columns AsText(CastToMulti(GeomFromText("POINT(3 1)"))) MULTIPOINT(3 1) libspatialite-4.1.1/test/sql_stmt_tests/mbrminmax6.testcase0000664000175000017500000000024212163502134021145 00000000000000MbrMinY- bad blob :memory: #use in-memory database SELECT MbrMinY(zeroblob(49)) 1 # rows (not including the header row) 1 # columns MbrMinY(zeroblob(49)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makecircularsector4.testcase0000664000175000017500000000032512163502134023035 00000000000000makecircularsector4 - NULL cy :memory: #use in-memory database SELECT MakeCircularSector(0, NULL, 100, 30, 60); 1 # rows (not including the header row) 1 # columns MakeCircularSector(0, NULL, 100, 30, 60) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makearc11.testcase0000664000175000017500000000030412163502134020631 00000000000000makearc11 - BLOB start :memory: #use in-memory database SELECT MakeArc(0, 0, 100, zeroblob(4), 60); 1 # rows (not including the header row) 1 # columns MakeArc(0, 0, 100, zeroblob(4), 60) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geomfromtext23.testcase0000664000175000017500000000053212163502134021754 00000000000000geomfromtext23 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONM(MULTIPOINTM((0 1 9), (2 3 9), (4 5 9)))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTIONM(MULTIPOINTM((0 1 9), (2 3 9), (4 5 9)))')); GEOMETRYCOLLECTION M(POINT M(0 1 9), POINT M(2 3 9), POINT M(4 5 9)) libspatialite-4.1.1/test/sql_stmt_tests/ktorrent_sidebar.gif0000664000175000017500000000403512163502134021364 00000000000000GIF89a .! ?, *2DM2FeyjPtkf\=^tYMp7[]mkv{w|x}y~zûºūཱྀG> >d Ć FtĎ3^8#G-R$Ȕ%C4)rɑ,q޴YL1at2'ϟBΞ@e*uiTP>EhөW~kլ]b ZgْMڱhu[]w╛wÆ^Lǂ# ~3̷ψC3hŎ%[9tjҬOV]5ѫM][ܶg}vƉ Ã*izJjr*ꦡj jj**뭼Қ:+֪{l lfvkՆKӖ+Ѧ ϶ƫ⚫r . o{/+|0/p37K _\?oL2r&33/2+24߬s@ۜ3?׌>}tF3]D+=tB#VkuYCM5OO}`ݵgM6ah6jǽl6n-xn߈xߌސ-yޔmݘۭ/o^xG^y朓w^:訏顧>;쭫N{쮯^쯳n{{ #O|?scS?w}䟯>_??[_ P`@L @"J*Hl` P @DHB(T! 3p# 9 `m9DG#L4D.P8,jXDDt"F2Bq<,U2z rtֈG"0 00"`9@BRV8d%9A :memory: #use in-memory database SELECT AsText(GeomFromGml('0 05 05 50 50 0')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromGml('0 05 05 50 50 0')):0 LINESTRING(0 0, 5 0, 5 5, 0 5, 0 0) libspatialite-4.1.1/test/sql_stmt_tests/asgml1.testcase0000664000175000017500000000025312163502133020252 00000000000000asgml - bad args (broken blob) :memory: #use in-memory database SELECT asgml(zeroblob(20)); 1 # rows (not including the header row) 1 # columns asgml(zeroblob(20)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makeellipticarc17.testcase0000664000175000017500000000034512163502134022372 00000000000000makeellipticarc17 - BLOB stop :memory: #use in-memory database SELECT MakeEllipticArc(0, 0, 100, 200, 30, zeroblob(4)); 1 # rows (not including the header row) 1 # columns MakeEllipticArc(0, 0, 100, 200, 30, zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/ind_ch_m.testcase0000664000175000017500000000024612163502134020631 00000000000000Indian chains to metres :memory: #use in-memory database SELECT CvtFromIndCh(100); 1 # rows (not including the header row) 1 # columns CvtFromIndCh(100); 2011.6695:9 libspatialite-4.1.1/test/sql_stmt_tests/envelope3.testcase0000664000175000017500000000043412163502134020770 00000000000000Envelope - Polygon :memory: #use in-memory database SELECT AsText(Envelope(GeomFromText("POLYGON((1 1, 2 1, 2 2, 1 2, 1 1))"))) 1 # rows (not including the header row) 1 # columns AsText(Envelope(GeomFromText("POLYGON((1 1, 2 1, 2 2, 1 2, 1 1))"))) POLYGON((1 1, 2 1, 2 2, 1 2, 1 1)) libspatialite-4.1.1/test/sql_stmt_tests/isempty.testcase0000664000175000017500000000027112163502134020561 00000000000000isempty :memory: #use in-memory database SELECT IsEmpty(GeomFromText("Point(1 2)", 4326)) 1 # rows (not including the header row) 1 # columns IsEmpty(GeomFromText("Point(1 2)", 4326)) 0libspatialite-4.1.1/test/sql_stmt_tests/garsmbr8.testcase0000664000175000017500000000024612163502134020616 00000000000000garsmbr - bad segment number 5 :memory: #use in-memory database SELECT GARSMbr("001AA5") 1 # rows (not including the header row) 1 # columns GARSMbr("001AA5") (NULL) libspatialite-4.1.1/test/sql_stmt_tests/routing3.testcase0000664000175000017500000000060212163502134020637 00000000000000routing: integer ids (A*) sql_stmt_tests/testdb1.sqlite UPDATE roads_net SET Algorithm = 'A*'; SELECT Algorithm, ArcRowid, NodeFrom, NodeTo, Cost FROM roads_net WHERE NodeFrom = 29 AND NodeTo = 32; 4 # rows (not including the header row) 5 # columns Algorithm ArcRowid NodeFrom NodeTo Cost A* (NULL) 29 32 0.001856:6 A* 29 29 30 0.000512:6 A* 30 30 31 0.000445:6 A* 31 31 32 0.000898:6 libspatialite-4.1.1/test/sql_stmt_tests/setpoint19.testcase0000664000175000017500000000055312163502134021111 00000000000000ST_SetPoint() - not a point :memory: #use in-memory database SELECT ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1, GeomFromText('MULTILINESTRING(10 10, 11 10), (1 1, 2 2))')) 1 # rows (not including the header row) 1 # columns ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1, GeomFromText('MULTILINESTRING(10 10, 11 10), (1 1, 2 2))')) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/collect9.testcase0000664000175000017500000000045512163502133020610 00000000000000collect - Point, PointZ :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POINT(1 2)"), GeomFromText("POINTZ(4 5 3.2)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POINT(1 2)"), GeomFromText("POINTZ(4 5 3.2)"))) MULTIPOINT Z(1 2 0, 4 5 3.2) libspatialite-4.1.1/test/sql_stmt_tests/mbr19.testcase0000664000175000017500000000046612163502134020027 00000000000000MbrOverlaps - Line + same Line :memory: #use in-memory database SELECT MbrOverlaps(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("LINESTRING(0 0, 1 2)")); 1 # rows (not including the header row) 1 # columns MbrOverlaps(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("LINESTRING(0 0, 1 2)")) # header 1libspatialite-4.1.1/test/sql_stmt_tests/makeellipticarc13.testcase0000664000175000017500000000033612163502134022366 00000000000000makeellipticarc13 - text start :memory: #use in-memory database SELECT MakeEllipticArc(0, 0, 100, 200, 'alpha', 60); 1 # rows (not including the header row) 1 # columns MakeEllipticArc(0, 0, 100, 200, 'alpha', 60) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/collectextract7.testcase0000664000175000017500000000027512163502133022201 00000000000000Collection Extract - text arg :memory: #use in-memory database SELECT CollectionExtract("text", 1); 1 # rows (not including the header row) 1 # columns CollectionExtract("text", 1) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/shiftcoords1.testcase0000664000175000017500000000034112163502134021475 00000000000000shiftcoords1 :memory: #use in-memory database SELECT AsText(ShiftCoords(GeomFromText("POINT(1 2)"), 1, 3)); 1 # rows (not including the header row) 1 # columns AsText(ShiftCoords(GeomFromText("POINT(1 2)"), 1, 3)) POINT(2 5) libspatialite-4.1.1/test/sql_stmt_tests/makeellipticarc10.testcase0000664000175000017500000000033512163502134022362 00000000000000makeellipticarc10 - text y_axis :memory: #use in-memory database SELECT MakeEllipticArc(0, 0, 100, 'alpha', 30, 60); 1 # rows (not including the header row) 1 # columns MakeEllipticArc(0, 0, 100, 'alpha', 30, 60) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geomtype1.testcase0000664000175000017500000000044412163502134021003 00000000000000geometrytype1 - POINT :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom) from (SELECT GeomFromText("POINT(-71.1043443253471 42.315067601582900)") as geom) dummy; 1 # rows (not including the header row) 2 # columns GeometryType(geom) CoordDimension(geom) POINT XYlibspatialite-4.1.1/test/sql_stmt_tests/normalizelonlat12.testcase0000664000175000017500000000040112163502134022437 00000000000000normalizelonlat- in range -190 :memory: #use in-memory database SELECT AsText(NormalizeLonLat(GeomFromText("POINT(4 -190)", 4326))) 1 # rows (not including the header row) 1 # columns AsText(NormalizeLonLat(GeomFromText("POINT(4 -190)", 4326))) POINT(4 10) libspatialite-4.1.1/test/sql_stmt_tests/makecircularstripe8.testcase0000664000175000017500000000034312163502134023050 00000000000000makecircularstripe8 - text radius :memory: #use in-memory database SELECT MakeCircularStripe(0, 0, 'alpha', 90, 30, 60); 1 # rows (not including the header row) 1 # columns MakeCircularStripe(0, 0, 'alpha', 90, 30, 60) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/casttosingle2.testcase0000664000175000017500000000024112163502133021644 00000000000000casttosingle - non blob :memory: #use in-memory database SELECT CastToSingle(3.42) 1 # rows (not including the header row) 1 # columns CastToSingle(3.42) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/shiftlongitude18.testcase0000664000175000017500000000120612163502134022267 00000000000000shiftlongitude - positive and negative longitude polygon, interior rings :memory: #use in-memory database SELECT AsText(ST_Shift_Longitude(GeomFromText("POLYGON((-175 0, -176 10, 175 10, 176 0, -175 0),(-177 1, -177 2, -178 2, -178 1, -177 1),(-179 4, 179 4, 179 5, -179 5, -179 4))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(ST_Shift_Longitude(GeomFromText("POLYGON((-175 0, -176 10, 175 10, 176 0, -175 0),(-177 1, -177 2, -178 2, -178 1, -177 1),(-179 4, 179 4, 179 5, -179 5, -179 4))", 4326))) POLYGON((185 0, 184 10, 175 10, 176 0, 185 0), (183 1, 183 2, 182 2, 182 1, 183 1), (181 4, 179 4, 179 5, 181 5, 181 4)) libspatialite-4.1.1/test/sql_stmt_tests/makepointm-null6.testcase0000664000175000017500000000036112163502134022271 00000000000000makepointm-null6 :memory: #use in-memory database SELECT AsText(MakePointM(-26.0, 42.3150676015829, 12.6389, "WGS84")); 1 # rows (not including the header row) 1 # columns AsText(MakePointM(-26.0, 42.3150676015829, 12.6389, "WGS84")) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makecircularsector16.testcase0000664000175000017500000000033612163502134023122 00000000000000makecircularsector16 - NULL srid :memory: #use in-memory database SELECT MakeCircularSector(0, 0, 100, 30, 60, NULL); 1 # rows (not including the header row) 1 # columns MakeCircularSector(0, 0, 100, 30, 60, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makecircularstripe15.testcase0000664000175000017500000000035412163502134023130 00000000000000makecircularstripe15 - valid :memory: #use in-memory database SELECT ST_Area(MakeCircularStripe(0, 0, 100, 90, 30, 60)); 1 # rows (not including the header row) 1 # columns ST_Area(MakeCircularStripe(0, 0, 100, 90, 30, 60)) 494.8973:4 libspatialite-4.1.1/test/sql_stmt_tests/buildcirclembr4.testcase0000664000175000017500000000037612163502133022142 00000000000000buildcirclembr - float args :memory: #use in-memory database SELECT AsText(BuildCircleMbr(5.5, 6.6, 0.5, 4326)) 1 # rows (not including the header row) 1 # columns AsText(BuildCircleMbr(5.5, 6.6, 0.5, 4326)) POLYGON((5 6.1, 6 6.1, 6 7.1, 5 7.1, 5 6.1)) libspatialite-4.1.1/test/sql_stmt_tests/km_m.testcase0000664000175000017500000000023112163502134020006 00000000000000kilometres to metres :memory: #use in-memory database SELECT CvtFromKm(6.76); 1 # rows (not including the header row) 1 # columns CvtFromKm(6.76); 6760.0libspatialite-4.1.1/test/sql_stmt_tests/fromewkt32.testcase0000664000175000017500000000105612163502134021074 00000000000000geomfromtext38 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONZ(GEOMETRYCOLLECTIONZ(POINTZ(0 0 9), LINESTRINGZ(1 1 9, 2 2 9)), GEOMETRYCOLLECTIONZ(POINTZ(3 3 9), LINESTRINGZ(4 4 9, 5 5 9)))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTIONZ(GEOMETRYCOLLECTIONZ(POINTZ(0 0 9), LINESTRINGZ(1 1 9, 2 2 9)), GEOMETRYCOLLECTIONZ(POINTZ(3 3 9), LINESTRINGZ(4 4 9, 5 5 9)))')); GEOMETRYCOLLECTION Z(POINT Z(0 0 9), POINT Z(3 3 9), LINESTRING Z(1 1 9, 2 2 9), LINESTRING Z(4 4 9, 5 5 9)) libspatialite-4.1.1/test/sql_stmt_tests/compressgeometry20.testcase0000664000175000017500000000057712163502133022650 00000000000000CompressGeometry - MULTIPOINT :memory: #use in-memory database SELECT Hex(CompressGeometry(GeomFromText("MULTIPOINT(1 2)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(CompressGeometry(GeomFromText("MULTIPOINT(1 2)", 4326))) 0001E6100000000000000000F03F0000000000000040000000000000F03F00000000000000407C04000000010000006901000000000000000000F03F0000000000000040FE libspatialite-4.1.1/test/sql_stmt_tests/makepointzm-null4.testcase0000664000175000017500000000042412163502134022461 00000000000000makepointzm-null4 :memory: #use in-memory database SELECT AsText(MakePointZM("hello", 42.3150676015829, 0.0038723129645, 12.6389, 4326)); 1 # rows (not including the header row) 1 # columns AsText(MakePointZM("hello", 42.3150676015829, 0.0038723129645, 12.6389, 4326)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/fromewkt38.testcase0000664000175000017500000000113112163502134021074 00000000000000fromewkt38 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POINT(0 0 9 7), LINESTRING(1 1 9 7, 2 2 9 7)), GEOMETRYCOLLECTION(POINT(3 3 9 7), LINESTRING(4 4 9 7, 5 5 9 7)))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POINT(0 0 9 7), LINESTRING(1 1 9 7, 2 2 9 7)), GEOMETRYCOLLECTION(POINT(3 3 9 7), LINESTRING(4 4 9 7, 5 5 9 7)))')); GEOMETRYCOLLECTION ZM(POINT ZM(0 0 9 7), POINT ZM(3 3 9 7), LINESTRING ZM(1 1 9 7, 2 2 9 7), LINESTRING ZM(4 4 9 7, 5 5 9 7)) libspatialite-4.1.1/test/sql_stmt_tests/fromWkb23.testcase0000664000175000017500000000150412163502134020643 00000000000000fromWkb - MULTIPOLYGON :memory: #use in-memory database SELECT Hex(MultiPolygonFromWkb(AsBinary(MPolyFromText("MULTIPOLYGON (((30 20, 10 40, 45 40, 30 20)),((15 5, 40 10, 10 20, 5 10, 15 5)))")), 4326)) 1 # rows (not including the header row) 1 # columns Hex(MultiPolygonFromWkb(AsBinary(MPolyFromText("MULTIPOLYGON (((30 20, 10 40, 45 40, 30 20)),((15 5, 40 10, 10 20, 5 10, 15 5)))")), 4326)) 0001E610000000000000000014400000000000001440000000000080464000000000000044407C0600000002000000690300000001000000040000000000000000003E40000000000000344000000000000024400000000000004440000000000080464000000000000044400000000000003E400000000000003440690300000001000000050000000000000000002E4000000000000014400000000000004440000000000000244000000000000024400000000000003440000000000000144000000000000024400000000000002E400000000000001440FE libspatialite-4.1.1/test/sql_stmt_tests/casttomultilinestring1.testcase0000664000175000017500000000031412163502133023614 00000000000000casttomultilinestring - bad blob :memory: #use in-memory database SELECT CastToMultiLineString(zeroblob(99)) 1 # rows (not including the header row) 1 # columns CastToMultiLineString(zeroblob(99)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/expand7.testcase0000664000175000017500000000050512163502134020435 00000000000000Expand - illegal amount :memory: #use in-memory database SELECT ST_Expand(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"), "alpha") 1 # rows (not including the header row) 1 # columns ST_Expand(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"), "alpha") (NULL) libspatialite-4.1.1/test/sql_stmt_tests/dissolve3.testcase0000664000175000017500000000025412163502133021002 00000000000000dissolve - text input :memory: #use in-memory database SELECT DissolveSegments("hell0") 1 # rows (not including the header row) 1 # columns DissolveSegments("hell0") (NULL)libspatialite-4.1.1/test/sql_stmt_tests/collect28.testcase0000664000175000017500000000064612163502133020673 00000000000000collect - LineStringZ, LineStringZ :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("LINESTRINGZ(1 2 4, 3 4 2)"), GeomFromText("LINESTRINGZ(4 5 3.2, 1 2 4.6, 4 2 3.1)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("LINESTRINGZ(1 2 4, 3 4 2)"), GeomFromText("LINESTRINGZ(4 5 3.2, 1 2 4.6, 4 2 3.1)"))) MULTILINESTRING Z((1 2 4, 3 4 2), (4 5 3.2, 1 2 4.6, 4 2 3.1)) libspatialite-4.1.1/test/sql_stmt_tests/locatemeasure12.testcase0000664000175000017500000000072012163502134022062 00000000000000ST_Locate_Between_Measures - LinestringM :memory: #use in-memory database SELECT AsText(ST_Locate_Between_Measures(GeomFromText('LINESTRINGM(0 1 2.1, 1 0 1, 2 1 2.1, 3 0 2.2, 4 1 4, 5 0 2.5)'), 2, 3)); 1 # rows (not including the header row) 1 # columns AsText(ST_Locate_Between_Measures(GeomFromText('LINESTRINGM(0 1 2.1, 1 0 1, 2 1 2.1, 3 0 2.2, 4 1 4, 5 0 2.5)'), 2, 3)) GEOMETRYCOLLECTION M(POINT M(0 1 2.1), POINT M(5 0 2.5), LINESTRING M(2 1 2.1, 3 0 2.2)) libspatialite-4.1.1/test/sql_stmt_tests/geomtype56.testcase0000664000175000017500000000066612163502134021103 00000000000000geometrytype - GEOMETRYCOLLECTION - two polygons :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("GEOMETRYCOLLECTION(POLYGON((4 6,7 10, 12 3, 4 6)),POLYGON((4 6,7 10, 12 3, 4 6)))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) GEOMETRYCOLLECTION XY GEOMETRYCOLLECTIONlibspatialite-4.1.1/test/sql_stmt_tests/casttoxyz5.testcase0000664000175000017500000000034212163502133021222 00000000000000casttoxyz - POINT :memory: #use in-memory database SELECT AsText(CastToXYZ(GeomFromText("POINTZ(4 3 10)"))) 1 # rows (not including the header row) 1 # columns AsText(CastToXYZ(GeomFromText("POINTZ(4 3 10)"))) POINT Z(4 3 10) libspatialite-4.1.1/test/sql_stmt_tests/makepoint9.testcase0000664000175000017500000000033712163502134021152 00000000000000makepoint - MakepointM, int args, SRID :memory: #use in-memory database SELECT AsText(MakePointM(-71, 42, 3, 4326)) 1 # rows (not including the header row) 1 # columns AsText(MakePointM(-71, 42, 3, 4326)) POINT M(-71 42 3) libspatialite-4.1.1/test/sql_stmt_tests/forcenull8.testcase0000664000175000017500000000025212163502134021147 00000000000000ForceAsNull() - DOUBLE/NULL :memory: #use in-memory database SELECT ForceAsNull(1.5, NULL) 1 # rows (not including the header row) 1 # columns ForceAsNull(1.5, NULL) 1.5 libspatialite-4.1.1/test/sql_stmt_tests/makepoint-null7.testcase0000664000175000017500000000035212163502134022115 00000000000000makepoint-null7 :memory: #use in-memory database SELECT AsWkt(MakePoint(-71.1043443253471, 42.3150676015829), 4.1); 1 # rows (not including the header row) 1 # columns AsWkt(MakePoint(-71.1043443253471, 42.3150676015829), 4.1) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/compressgeometry47.testcase0000664000175000017500000000053712163502133022655 00000000000000CompressGeometry - GEOMETRYCOLLECTION Z (1 Point) :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(1 2 100))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(1 2 100))", 4326))) GEOMETRYCOLLECTION Z(POINT Z(1 2 100)) libspatialite-4.1.1/test/sql_stmt_tests/SridFromAuthCRS2.testcase0000664000175000017500000000032012163502133022062 00000000000000SridFromAuthCRS - non-integer second arg :memory: #use in-memory database SELECT SridFromAuthCRS("EPSG", "WGS084") 1 # rows (not including the header row) 1 # columns SridFromAuthCRS("EPSG", "WGS084") (NULL) libspatialite-4.1.1/test/sql_stmt_tests/badGML2.testcase0000664000175000017500000000047512163502133020244 00000000000000bad GML: Point :memory: #use in-memory database SELECT GeomFromGML('1.1,2.21.1,2.210 10 100 20 10 101 20 20 102 10 20 103 10 10 10015 15 80 16 15 90 16 16 95 15 16 90 15 15 80:0 # trailing ":0" required to avoid truncation !!! libspatialite-4.1.1/test/sql_stmt_tests/ewkb5.testcase0000664000175000017500000000047212163502134020107 00000000000000EWkb: Linestring XYZ :memory: #use in-memory database SELECT AsText(GeomFromEWkb('01020000A0E610000002000000000000000000F03F00000000000000400000000000005940000000000000084000000000000010400000000000405940')) AS wkt_geom; 1 # rows (not including the header row) 1 # columns wkt_geom LINESTRING Z(1 2 100, 3 4 101) libspatialite-4.1.1/test/sql_stmt_tests/fromewkt9.testcase0000664000175000017500000000164012163502134021017 00000000000000fromewkt9 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(POINT(8 8), MULTIPOLYGON(((0 0, 5 0, 5 5, 0 5, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), ((10 10, 11 10, 11 11, 10 11, 10 10))), POINT(7 7), MULTILINESTRING((0 1, 2 3), (4 5, 6 7)), POINT(6 6), MULTIPOINT((0 1), (2 3), (4 5)), POINT(9 9))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(POINT(8 8), MULTIPOLYGON(((0 0, 5 0, 5 5, 0 5, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), ((10 10, 11 10, 11 11, 10 11, 10 10))), POINT(7 7), MULTILINESTRING((0 1, 2 3), (4 5, 6 7)), POINT(6 6), MULTIPOINT((0 1), (2 3), (4 5)), POINT(9 9))')); GEOMETRYCOLLECTION(POINT(8 8), POINT(7 7), POINT(6 6), POINT(0 1), POINT(2 3), POINT(4 5), POINT(9 9), LINESTRING(0 1, 2 3), LINESTRING(4 5, 6 7), POLYGON((0 0, 5 0, 5 5, 0 5, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), POLYGON((10 10, 11 10, 11 11, 10 11, 10 10))) libspatialite-4.1.1/test/sql_stmt_tests/casttomultipolygon2.testcase0000664000175000017500000000025712163502133023134 00000000000000casttomultipolygon - non-blob :memory: #use in-memory database SELECT CastToMultiPolygon(99) 1 # rows (not including the header row) 1 # columns CastToMultiPolygon(99) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/gml2.testcase0000664000175000017500000000100712163502134017726 00000000000000GML MultiPoint Z: no Srid :memory: #use in-memory database SELECT AsGML(3, GeomFromText("MULTIPOINTZ(1 2 100, 3 4 101)")); 1 # rows (not including the header row) 1 # columns AsGML(3, GeomFromText("MULTIPOINTZ(1 2 100, 3 4 101)")) 1 2 1003 4 101:0 # trailing ":0" required to avoid truncation !!! libspatialite-4.1.1/test/sql_stmt_tests/gml14.testcase0000664000175000017500000000151512163502134020015 00000000000000GML MultiPolygon: no SRID :memory: #use in-memory database SELECT AsGML(3, GeomFromText("MULTIPOLYGON(((10 10, 20 10, 20 20, 10 20, 10 10)), ((85 85, 90 85, 90 90, 85 90, 85 85)))")); 1 # rows (not including the header row) 1 # columns AsGML(3, GeomFromText("MULTIPOLYGON(((10 10, 20 10, 20 20, 10 20, 10 10)), ((85 85, 90 85, 90 90, 85 90, 85 85)))")) 10 10 20 10 20 20 10 20 10 1085 85 90 85 90 90 85 90 85 85:0 # trailing ":0" required to avoid truncation !!! libspatialite-4.1.1/test/sql_stmt_tests/asgml10.testcase0000664000175000017500000000042512163502133020333 00000000000000asgml - 2 arg :memory: #use in-memory database SELECT asgml(GeomFromText("Point(1 2)", 4326), 4); 1 # rows (not including the header row) 1 # columns asgml(GeomFromText("Point(1 2)", 4326), 4) 1,2:0 libspatialite-4.1.1/test/sql_stmt_tests/nrings6.testcase0000664000175000017500000000061012163502134020452 00000000000000nrings - multipolygon :memory: #use in-memory database SELECT ST_NRings(GeomFromText("MULTIPOLYGON(((1 2, 3 4, 5 0, 1 2),(1.6 2.1, 1.7 2.1, 1.7 2.2, 1.6 2.2, 1.6 2.1)),((0 0, 1 0, 1 1, 0 1, 0 0)))")) 1 # rows (not including the header row) 1 # columns ST_NRings(GeomFromText("MULTIPOLYGON(((1 2, 3 4, 5 0, 1 2),(1.6 2.1, 1.7 2.1, 1.7 2.2, 1.6 2.2, 1.6 2.1)),((0 0, 1 0, 1 1, 0 1, 0 0)))")) 3 libspatialite-4.1.1/test/sql_stmt_tests/mbrminmax8.testcase0000664000175000017500000000022012163502134021143 00000000000000MbrMaxY- non blob :memory: #use in-memory database SELECT MbrMaxY(3.5) 1 # rows (not including the header row) 1 # columns MbrMaxY(3.5) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/fromgml43.testcase0000664000175000017500000000124312163502134020701 00000000000000FromGML - multipoint, multiple SRID - bad second SRID, no namespace :memory: #use in-memory database SELECT AsText(GeomFromGml('1,2,3.22,4,4.2')) 1 # rows (not including the header row) 1 # columns AsText(GeomFromGml('1,2,3.22,4,4.2')):0 MULTIPOINT Z(1 2 3.2, 2 4 4.2) libspatialite-4.1.1/test/sql_stmt_tests/geometryn2.testcase0000664000175000017500000000037112163502134021163 00000000000000Geometry N - multipoint - out of range 2 :memory: #use in-memory database SELECT AsText(GeometryN(GeomFromText("MULTIPOINT(1 2)"), 2)); 1 # rows (not including the header row) 1 # columns AsText(GeometryN(GeomFromText("MULTIPOINT(1 2)"), 2)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/compressgeometry50.testcase0000664000175000017500000000055612163502133022650 00000000000000CompressGeometry - GEOMETRYCOLLECTION (2 Points) :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2), POINT(3 4))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2), POINT(3 4))", 4326))) GEOMETRYCOLLECTION(POINT(1 2), POINT(3 4)) libspatialite-4.1.1/test/sql_stmt_tests/makeline28.testcase0000664000175000017500000000042412163502134021026 00000000000000makeline - MULTIPOINT (XY valid - reverse order) :memory: #use in-memory database SELECT AsText(MakeLine(GeomFromText("MULTIPOINT(1 2,3 4)"), 0)) 1 # rows (not including the header row) 1 # columns AsText(MakeLine(GeomFromText("MULTIPOINT(1 2,3 4)"), 0)) LINESTRING(3 4, 1 2) libspatialite-4.1.1/test/sql_stmt_tests/makecircularsector14.testcase0000664000175000017500000000034412163502134023117 00000000000000makecircularsector14 - BLOB stop :memory: #use in-memory database SELECT MakeCircularSector(0, 0, 100, 30, zeroblob(4)); 1 # rows (not including the header row) 1 # columns MakeCircularSector(0, 0, 100, 30, zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/garsmbr21.testcase0000664000175000017500000000024512163502134020670 00000000000000garsmbr - out of bounds lat :memory: #use in-memory database SELECT GARSMbr("001RA11") 1 # rows (not including the header row) 1 # columns GARSMbr("001RA11") (NULL) libspatialite-4.1.1/test/sql_stmt_tests/casttodouble7.testcase0000664000175000017500000000034112163502133021643 00000000000000CastToDouble() - DOUBLE :memory: #use in-memory database SELECT CastToDouble(123.4), TypeOf(CastToDouble(123.4)) 1 # rows (not including the header row) 2 # columns CastToDouble(123.4) TypeOf(CastToDouble(123.4)) 123.4 real libspatialite-4.1.1/test/sql_stmt_tests/compressgeometry43.testcase0000664000175000017500000000111512163502133022642 00000000000000CompressGeometry - MULTIPOLYGON Z :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("MULTIPOLYGONZ(((10 10 77, 11 10 88, 11 11 99, 10 11 88, 10 10 77)), ((15 15 55, 16 15 56, 16 16 57, 15 16 58, 15 15 55)))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("MULTIPOLYGONZ(((10 10 77, 11 10 88, 11 11 99, 10 11 88, 10 10 77)), ((15 15 55, 16 15 56, 16 16 57, 15 16 58, 15 15 55)))", 4326))) MULTIPOLYGON Z(((10 10 77, 11 10 88, 11 11 99, 10 11 88, 10 10 77)), ((15 15 55, 16 15 56, 16 16 57, 15 16 58, 15 15 55))) libspatialite-4.1.1/test/sql_stmt_tests/ewkb12.testcase0000664000175000017500000000261412163502134020165 00000000000000EWkb: GeometryCollection XYZM :memory: #use in-memory database SELECT AsText(GeomFromEWkb('01070000E0E61000000400000001010000C09A9999999999F13F9A999999999901400000000000005940000000000000244001020000C002000000000000000000F03F000000000000004000000000000059400000000000002440000000000000084000000000000010400000000000405940000000000000264001030000C00200000005000000000000000000244000000000000024400000000000005940000000000000F03F0000000000002E400000000000002440000000000040594000000000000000400000000000002E400000000000002E400000000000805940000000000000084000000000000024400000000000002E400000000000C059400000000000001040000000000000244000000000000024400000000000005940000000000000F03F05000000000000000000284000000000000028400000000000405940000000000000F03F0000000000002A4000000000000028400000000000805940000000000000F03F0000000000002A400000000000002A400000000000C05940000000000000084000000000000028400000000000002A400000000000005A400000000000001040000000000000284000000000000028400000000000405940000000000000F03F01010000C0000000000000304000000000000030400000000000005940000000000000F03F')) AS wkt_geom; 1 # rows (not including the header row) 1 # columns wkt_geom GEOMETRYCOLLECTION ZM(POINT ZM(1.1 2.2 100 10), POINT ZM(16 16 100 1), LINESTRING ZM(1 2 100 10, 3 4 101 11), POLYGON ZM((10 10 100 1, 15 10 101 2, 15 15 102 3, 10 15 103 4, 10 10 100 1), (12 12 101 1, 13 12 102 1, 13 13 103 3, 12 13 104 4, 12 12 101 1))) libspatialite-4.1.1/test/sql_stmt_tests/geometryn10.testcase0000664000175000017500000000037012163502134021241 00000000000000Geometry N - pointZM :memory: #use in-memory database SELECT AsText(GeometryN(GeomFromText("POINTZM(1 2 4 1.6)"), 1)); 1 # rows (not including the header row) 1 # columns AsText(GeometryN(GeomFromText("POINTZM(1 2 4 1.6)"), 1)) POINT ZM(1 2 4 1.6) libspatialite-4.1.1/test/sql_stmt_tests/forcenull23.testcase0000664000175000017500000000026112163502134021224 00000000000000ForceAsNull() - DOUBLE - mismatching :memory: #use in-memory database SELECT ForceAsNull(1.5, 1.6) 1 # rows (not including the header row) 1 # columns ForceAsNull(1.5, 1.6) 1.5 libspatialite-4.1.1/test/sql_stmt_tests/collect5.testcase0000664000175000017500000000033612163502133020602 00000000000000collect - first arg zeroblob :memory: #use in-memory database SELECT AsText(COLLECT(zeroblob(58), MakePoint(2,3))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(zeroblob(58), MakePoint(2,3))) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/collect56.testcase0000664000175000017500000000134512163502133020671 00000000000000collect - PolygonZM, MULTILINESTRING :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POLYGONZM((1 2 4 1, 3 4 2 1, 3 2 3 2, 1 2 4 1),(1.5 2.5 4 1, 2.5 3.5 3 2, 2.5 2.3 3 1, 1.5 2.5 4 1))"), GeomFromText("MULTILINESTRING((4 5, 1 2, 4 2),(2 3, 3 4, 3 3))"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POLYGONZM((1 2 4 1, 3 4 2 1, 3 2 3 2, 1 2 4 1),(1.5 2.5 4 1, 2.5 3.5 3 2, 2.5 2.3 3 1, 1.5 2.5 4 1))"), GeomFromText("MULTILINESTRING((4 5, 1 2, 4 2),(2 3, 3 4, 3 3))"))) GEOMETRYCOLLECTION ZM(LINESTRING ZM(4 5 0 0, 1 2 0 0, 4 2 0 0), LINESTRING ZM(2 3 0 0, 3 4 0 0, 3 3 0 0), POLYGON ZM((1 2 4 1, 3 4 2 1, 3 2 3 2, 1 2 4 1), (1.5 2.5 4 1, 2.5 3.5 3 2, 2.5 2.3 3 1, 1.5 2.5 4 1))) libspatialite-4.1.1/test/sql_stmt_tests/geomconstraints15.testcase0000664000175000017500000000053412163502134022456 00000000000000geometry constraints - MULTILINESTRING :memory: #use in-memory database SELECT GeometryConstraints(GeomFromText("MULTILINESTRING((1 2, 4 3),(0 4, 1 9))", 4326), "MULTILINESTRING", 4326) 1 # rows (not including the header row) 1 # columns GeometryConstraints(GeomFromText("MULTILINESTRING((1 2, 4 3),(0 4, 1 9))", 4326), "MULTILINESTRING", 4326) 1 libspatialite-4.1.1/test/sql_stmt_tests/makeline8.testcase0000664000175000017500000000044712163502134020751 00000000000000makeline8 :memory: #use in-memory database SELECT AsText(MakeLine(GeomFromText("POINTZ(0 0 0)"), GeomFromText("POINTZ(1 2 0.2)"))); 1 # rows (not including the header row) 1 # columns AsText(MakeLine(GeomFromText("POINTZ(0 0 0)"), GeomFromText("POINTZ(1 2 0.2)"))) LINESTRING Z(0 0 0, 1 2 0.2) libspatialite-4.1.1/test/sql_stmt_tests/compressgeometry54.testcase0000664000175000017500000000071512163502133022651 00000000000000CompressGeometry - GEOMETRYCOLLECTION (2 Linestrings) :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(1 2, 3 4, 5 6), LINESTRING(7 7, 8 8, 9 9))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(1 2, 3 4, 5 6), LINESTRING(7 7, 8 8, 9 9))", 4326))) GEOMETRYCOLLECTION(LINESTRING(1 2, 3 4, 5 6), LINESTRING(7 7, 8 8, 9 9)) libspatialite-4.1.1/test/sql_stmt_tests/asbinary9.testcase0000664000175000017500000000041712163502133020771 00000000000000asbinary - POINTZ :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("POINTZ(1 2 3)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("POINTZ(1 2 3)", 4326))) 01E9030000000000000000F03F00000000000000400000000000000840 libspatialite-4.1.1/test/sql_stmt_tests/buildmbr5.testcase0000664000175000017500000000033012163502133020747 00000000000000buildmbr - int args / no SRID :memory: #use in-memory database SELECT AsText(BuildMbr(5, 6, 7, 8)) 1 # rows (not including the header row) 1 # columns AsText(BuildMbr(5, 6, 7, 8)) POLYGON((5 6, 7 6, 7 8, 5 8, 5 6)) libspatialite-4.1.1/test/sql_stmt_tests/geomtype69.testcase0000664000175000017500000000060512163502134021100 00000000000000geometrytype - MULTILINESTRING - one line :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("MULTILINESTRING((30 20, 10 40, 45 40, 30 20))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) MULTILINESTRING XY MULTILINESTRINGlibspatialite-4.1.1/test/sql_stmt_tests/collect51.testcase0000664000175000017500000000120712163502133020661 00000000000000collect - PolygonM, Polygon :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POLYGONM((1 2 4, 3 4 2, 3 2 3, 1 2 4),(1.5 2.5 4, 2.5 3.5 3, 2.5 2.3 3, 1.5 2.5 4))"), GeomFromText("POLYGON((4 5, 1 2, 4 2, 4 5),(2 3, 3 4, 3 3, 2 3))"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POLYGONM((1 2 4, 3 4 2, 3 2 3, 1 2 4),(1.5 2.5 4, 2.5 3.5 3, 2.5 2.3 3, 1.5 2.5 4))"), GeomFromText("POLYGON((4 5, 1 2, 4 2, 4 5),(2 3, 3 4, 3 3, 2 3))"))) MULTIPOLYGON M(((1 2 4, 3 4 2, 3 2 3, 1 2 4), (1.5 2.5 4, 2.5 3.5 3, 2.5 2.3 3, 1.5 2.5 4)), ((4 5 0, 1 2 0, 4 2 0, 4 5 0), (2 3 0, 3 4 0, 3 3 0, 2 3 0))) libspatialite-4.1.1/test/sql_stmt_tests/collectextract21.testcase0000664000175000017500000000067712163502133022263 00000000000000Collection Extract - Extract POLYGONM :memory: #use in-memory database SELECT AsText(CollectionExtract(GeomFromText("POLYGONM((0 0 1, 10 0 2, 10 10 1, 0 0 1),(1 2 4, 4 3 1, 1 1 1, 1 2 4))"), 3)); 1 # rows (not including the header row) 1 # columns AsText(CollectionExtract(GeomFromText("POLYGONM((0 0 1, 10 0 2, 10 10 1, 0 0 1),(1 2 4, 4 3 1, 1 1 1, 1 2 4))"), 3)) MULTIPOLYGON M(((0 0 1, 10 0 2, 10 10 1, 0 0 1), (1 2 4, 4 3 1, 1 1 1, 1 2 4))) libspatialite-4.1.1/test/sql_stmt_tests/npoints3.testcase0000664000175000017500000000025312163502134020644 00000000000000npoints - single point :memory: #use in-memory database SELECT ST_NPoints(MakePoint(2,3)) 1 # rows (not including the header row) 1 # columns ST_NPoints(MakePoint(2,3)) 1 libspatialite-4.1.1/test/sql_stmt_tests/mbr29.testcase0000664000175000017500000000045112163502134020022 00000000000000MbrDisjoint - Line + Point down :memory: #use in-memory database SELECT MbrDisjoint(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(0.5 -2)")); 1 # rows (not including the header row) 1 # columns MbrDisjoint(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(0.5 -2)")) # header 1libspatialite-4.1.1/test/sql_stmt_tests/minm6.testcase0000664000175000017500000000041112163502134020111 00000000000000MinM - Linestring XYZM :memory: #use in-memory database SELECT ST_MinM(GeomFromText('LINESTRINGZM(1 2 100 10, 3 4 99 9, 5 6 101 12)')); 1 # rows (not including the header row) 1 # columns ST_MinM(GeomFromText('LINESTRINGZM(1 2 100 10, 3 4 99 9, 5 6 101 12)')) 9.0 libspatialite-4.1.1/test/sql_stmt_tests/geomfromkml3.testcase0000664000175000017500000000044512163502134021474 00000000000000From KML - Point :memory: SELECT AsText(GeomFromKML("-122.0822035425683,37.42228990140251,0")) 1 # rows 1 # column AsText(GeomFromKML("-122.0822035425683,37.42228990140251,0"))) POINT Z(-122.082204 37.42229 0)libspatialite-4.1.1/test/sql_stmt_tests/makeellipse15.testcase0000664000175000017500000000031112163502134021523 00000000000000makeellipse15 - text srid :memory: #use in-memory database SELECT MakeEllipse(0, 0, 100, 200, 'alpha'); 1 # rows (not including the header row) 1 # columns MakeEllipse(0, 0, 100, 200, 'alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_tests/checkspatialmetadata2.testcase0000664000175000017500000000032612163502133023305 00000000000000checkspatialmetadata - pure sqlite3 sql_stmt_tests/trivial.sqlite_RO #use special test database, read only SELECT CheckSpatialMetaData() 1 # rows (not including the header row) 1 # columns CheckSpatialMetaData() 0 libspatialite-4.1.1/test/sql_stmt_tests/shiftlongitude15.testcase0000664000175000017500000000150312163502134022264 00000000000000shiftlongitude - positive and negative longitude polygonzm, interior rings :memory: #use in-memory database SELECT AsText(ST_Shift_Longitude(GeomFromText("POLYGONZM((-175 0 4 2, -176 10 5 3, 175 10 5 4, 176 0 5 1, -175 0 4 2),(-177 1 4 2, -177 2 5 3, -178 2 6 4, -178 1 9 2, -177 1 4 2),(-179 4 0 0, 179 4 0 0, 179 5 0 0, -179 5 0 0, -179 4 0 0))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(ST_Shift_Longitude(GeomFromText("POLYGONZM((-175 0 4 2, -176 10 5 3, 175 10 5 4, 176 0 5 1, -175 0 4 2),(-177 1 4 2, -177 2 5 3, -178 2 6 4, -178 1 9 2, -177 1 4 2),(-179 4 0 0, 179 4 0 0, 179 5 0 0, -179 5 0 0, -179 4 0 0))", 4326))) POLYGON ZM((185 0 4 2, 184 10 5 3, 175 10 5 4, 176 0 5 1, 185 0 4 2), (183 1 4 2, 183 2 5 3, 182 2 6 4, 182 1 9 2, 183 1 4 2), (181 4 0 0, 179 4 0 0, 179 5 0 0, 181 5 0 0, 181 4 0 0)) libspatialite-4.1.1/test/sql_stmt_tests/geodesic-len4.testcase0000664000175000017500000000033312163502134021510 00000000000000geodesic length linestringM :memory: SELECT GeodesicLength(GeomFromText("LINESTRINGM(0 0 4, 1 0 2, 0 0 1)", 4326)); 1 # rows 1 # column GeodesicLength(GeomFromText("LINESTRINGM(0 0 4, 1 0 2, 0 0 1)", 4326)) 222638.98:9 libspatialite-4.1.1/test/sql_stmt_tests/badEWKT7.testcase0000664000175000017500000000050112163502133020372 00000000000000bad EWKT: GeometryCollection :memory: #use in-memory database SELECT GeomFromEWKT("SRID=4326;GEOMETRYCOLLECYION(POINT(11.2 12.3), LINESTRING(11.3 12.4, 11.4 12.4)"); 1 # rows (not including the header row) 1 # columns GeomFromEWKT("SRID=4326;GEOMETRYCOLLECYION(POINT(11.2 12.3), LINESTRING(11.3 12.4, 11.4 12.4)") (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makeline26.testcase0000664000175000017500000000050712163502134021026 00000000000000makeline - MULTIPOINT (XYZM valid - reverse order) :memory: #use in-memory database SELECT AsText(MakeLine(GeomFromText("MULTIPOINTZM(1 2 10 100,3 4 11 111)"), 0)) 1 # rows (not including the header row) 1 # columns AsText(MakeLine(GeomFromText("MULTIPOINTZM(1 2 10 100,3 4 11 111)"), 0)) LINESTRING ZM(3 4 11 111, 1 2 10 100) libspatialite-4.1.1/test/sql_stmt_tests/reflectcoords5.testcase0000664000175000017500000000027512163502134022016 00000000000000reflectcoords5 :memory: #use in-memory database SELECT AsText(ReflectCoords("hello", 0, 1)); 1 # rows (not including the header row) 1 # columns AsText(ReflectCoords("hello", 0, 1)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geomfromtext1.testcase0000664000175000017500000000041612163502134021671 00000000000000geomfromtext1 :memory: #use in-memory database SELECT AsWkt(GeomFromText("POINT(-71.1043443253471 42.315067601582900)"), 4); 1 # rows (not including the header row) 1 # columns AsWkt(GeomFromText("POINT(-71.1043443253471 42.315067601582900)"), 4) POINT(-71.1043 42.3151)libspatialite-4.1.1/test/sql_stmt_tests/makecircularstripe6.testcase0000664000175000017500000000035312163502134023047 00000000000000makecircularstripe6 - BLOB cy :memory: #use in-memory database SELECT MakeCircularStripe(0, zeroblob(4), 100, 90, 30, 60); 1 # rows (not including the header row) 1 # columns MakeCircularStripe(0, zeroblob(4), 100, 90, 30, 60) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/fromWkb15.testcase0000664000175000017500000000071712163502134020651 00000000000000fromWkb - GeometryCollection :memory: #use in-memory database SELECT Hex(GeometryCollectionFromWkb(AsBinary(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2))", 4326)), 4326)) 1 # rows (not including the header row) 1 # columns Hex(GeometryCollectionFromWkb(AsBinary(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2))", 4326)), 4326)) 0001E6100000000000000000F03F0000000000000040000000000000F03F00000000000000407C07000000010000006901000000000000000000F03F0000000000000040FE libspatialite-4.1.1/test/sql_stmt_tests/makecircle11.testcase0000664000175000017500000000031412163502134021326 00000000000000makecircle11 - NULL srid :memory: #use in-memory database SELECT ST_Length(MakeCircle(0, 0, 100, NULL)); 1 # rows (not including the header row) 1 # columns ST_Length(MakeCircle(0, 0, 100, NULL)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/normalizelonlat9.testcase0000664000175000017500000000042012163502134022366 00000000000000normalizelonlat- out of range positive lat huge :memory: #use in-memory database SELECT AsText(NormalizeLonLat(GeomFromText("POINT(4 390)", 4326))) 1 # rows (not including the header row) 1 # columns AsText(NormalizeLonLat(GeomFromText("POINT(4 390)", 4326))) POINT(4 30) libspatialite-4.1.1/test/sql_stmt_tests/fromgml49.testcase0000664000175000017500000000234512163502134020713 00000000000000FromGML - GeometryCollection v3 (no namespaces) :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('8 89 9 10 100 0 5 0 5 5 0 5 0 01 1 2 1 2 2 1 2 1 1')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('8 89 9 10 100 0 5 0 5 5 0 5 0 01 1 2 1 2 2 1 2 1 1')):0 SRID=4326;GEOMETRYCOLLECTION(POINT(8 8),LINESTRING(9 9,10 10),POLYGON((0 0,5 0,5 5,0 5,0 0),(1 1,2 1,2 2,1 2,1 1))) libspatialite-4.1.1/test/sql_stmt_tests/collectextract18.testcase0000664000175000017500000000051212163502133022255 00000000000000Collection Extract - Extract linestringZM :memory: #use in-memory database SELECT AsText(CollectionExtract(GeomFromText("LINESTRINGZM(1 2 4 1, 4 3 1 2)"), 2)); 1 # rows (not including the header row) 1 # columns AsText(CollectionExtract(GeomFromText("LINESTRINGZM(1 2 4 1, 4 3 1 2)"), 2)) MULTILINESTRING ZM((1 2 4 1, 4 3 1 2)) libspatialite-4.1.1/test/sql_stmt_tests/makepointzm-null9.testcase0000664000175000017500000000036212163502134022467 00000000000000makepointzm-null9 :memory: #use in-memory database SELECT AsText(MakePointZM(26.0, 42.3150676015829, 'alpha', 12.6389)); 1 # rows (not including the header row) 1 # columns AsText(MakePointZM(26.0, 42.3150676015829, 'alpha', 12.6389)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makepoint2.testcase0000664000175000017500000000037612163502134021146 00000000000000makepoint2 :memory: #use in-memory database SELECT AsText(MakePoint(-71.1043443253471, 42.3150676015829, 4326)); 1 # rows (not including the header row) 1 # columns AsText(MakePoint(-71.1043443253471, 42.3150676015829, 4326)) POINT(-71.104344 42.315068) libspatialite-4.1.1/test/sql_stmt_tests/geometryn18.testcase0000664000175000017500000000106112163502134021247 00000000000000Geometry N - multipolygonZ :memory: #use in-memory database SELECT AsText(GeometryN(GeomFromText("MULTIPOLYGONZ(((0 0 1, 10 0 1, 10 10 1, 0 10 1, 0 0 1),(2 2 2, 8 2 2, 8 8 2, 2 8 2, 2 2 2)),((0 0 3, -10 0 3, -10 -10 3, 0 -10 3, 0 0 3)))"), 1)) 1 # rows (not including the header row) 1 # columns AsText(GeometryN(GeomFromText("MULTIPOLYGONZ(((0 0 1, 10 0 1, 10 10 1, 0 10 1, 0 0 1),(2 2 2, 8 2 2, 8 8 2, 2 8 2, 2 2 2)),((0 0 3, -10 0 3, -10 -10 3, 0 -10 3, 0 0 3)))"), 1)) POLYGON Z((0 0 1, 10 0 1, 10 10 1, 0 10 1, 0 0 1), (2 2 2, 8 2 2, 8 8 2, 2 8 2, 2 2 2)) libspatialite-4.1.1/test/sql_stmt_tests/geomtype9.testcase0000664000175000017500000000044612163502134021015 00000000000000geometrytype - LINESTRINGM :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom) from (SELECT GeomFromText("LINESTRINGM(4 0 1, 4 4 2, 8 4 3)") as geom) dummy; 1 # rows (not including the header row) 2 # columns GeometryType(geom) CoordDimension(geom) LINESTRING M XYMlibspatialite-4.1.1/test/sql_stmt_tests/st_x2.testcase0000664000175000017500000000034512163502134020130 00000000000000ST_X2 :memory: #use in-memory database SELECT X(MakePoint(-71.1043443253471, 42.3150676015829, 4326)); 1 # rows (not including the header row) 1 # columns X(MakePoint(-71.1043443253471, 42.3150676015829, 4326)) -71.1043443253471 libspatialite-4.1.1/test/sql_stmt_tests/forcenull9.testcase0000664000175000017500000000025712163502134021155 00000000000000ForceAsNull() - TEXT/INTEGER :memory: #use in-memory database SELECT ForceAsNull('alpha', 1) 1 # rows (not including the header row) 1 # columns ForceAsNull('alpha', 1) alpha libspatialite-4.1.1/test/sql_stmt_tests/casttogeometrycollection2.testcase0000664000175000017500000000031312163502133024272 00000000000000casttogeometrycollection - non-blob :memory: #use in-memory database SELECT CastToGeometryCollection("hello") 1 # rows (not including the header row) 1 # columns CastToGeometryCollection("hello") (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geomconstraints13.testcase0000664000175000017500000000041012163502134022445 00000000000000geometry constraints - 3 arg, int arg 2 :memory: #use in-memory database SELECT GeometryConstraints(GeomFromText("POINT(1 2)", 4326), 40, 4326) 1 # rows (not including the header row) 1 # columns GeometryConstraints(GeomFromText("POINT(1 2)", 4326), 40, 4326) -1 libspatialite-4.1.1/test/sql_stmt_tests/fromWkb25.testcase0000664000175000017500000000246612163502134020655 00000000000000fromWkb - mixed big-little-endian sub-items (2) :memory: #use in-memory database SELECT AsText(GeomFromWkb(CastToBlob('0107000000030000000101000000000000000000F03F00000000000000400102000000020000000000000000000000000000000000000000000000000014400000000000002440000000000300000002000000050000000000000000000000000000000040240000000000000000000000000000402400000000000040240000000000000000000000000000402400000000000000000000000000000000000000000000000000054014000000000000401400000000000040180000000000004014000000000000401800000000000040180000000000004014000000000000401800000000000040140000000000004014000000000000', 1))); 1 # rows (not including the header row) 1 # columns AsText(GeomFromWkb(CastToBlob('0107000000030000000101000000000000000000F03F00000000000000400102000000020000000000000000000000000000000000000000000000000014400000000000002440000000000300000002000000050000000000000000000000000000000040240000000000000000000000000000402400000000000040240000000000000000000000000000402400000000000000000000000000000000000000000000000000054014000000000000401400000000000040180000000000004014000000000000401800000000000040180000000000004014000000000000401800000000000040140000000000004014000000000000', 1))) GEOMETRYCOLLECTION(POINT(1 2), LINESTRING(0 0, 5 10), POLYGON((0 0, 10 0, 10 10, 0 10, 0 0), (5 5, 6 5, 6 6, 5 6, 5 5))) libspatialite-4.1.1/test/sql_stmt_tests/geomfromtext11.testcase0000664000175000017500000000047412163502134021756 00000000000000geomfromtext11 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTION(MULTIPOINT((0 1), (2 3), (4 5)))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTION(MULTIPOINT((0 1), (2 3), (4 5)))')); GEOMETRYCOLLECTION(POINT(0 1), POINT(2 3), POINT(4 5)) libspatialite-4.1.1/test/sql_stmt_tests/isXblob6.testcase0000664000175000017500000000106012163502134020554 00000000000000isXblob - zeroblob, 1 byte :memory: #use in-memory database SELECT Hex(blob), IsPngBlob(blob), IsGifBlob(blob), IsGeometryBlob(blob), IsZipBlob(blob), IsPdfBlob(blob), IsTiffBlob(blob), IsJpegBlob(blob), IsExifBlob(blob), IsExifGpsBlob(blob), IsWebpBlob(blob) FROM (SELECT zeroblob(1) as blob) dummy 1 # rows (not including the header row) 11 # columns Hex(blob) IsPngBlob(blob) IsGifBlob(blob) IsGeometryBlob(blob) IsZipBlob(blob) IsPdfBlob(blob) IsTiffBlob(blob) IsJpegBlob(blob) IsExifBlob(blob) IsExifGpsBlob(blob) IsWebpBlob(blob) 00 0 0 0 0 0 0 0 0 0 0 libspatialite-4.1.1/test/sql_stmt_tests/is3d5.testcase0000664000175000017500000000030012163502134020007 00000000000000Is3D- Point XYM :memory: #use in-memory database SELECT ST_Is3D(GeomFromText('POINTM(1 2 10)')); 1 # rows (not including the header row) 1 # columns ST_Is3D(GeomFromText('POINTM(1 2 10)')) 0 libspatialite-4.1.1/test/sql_stmt_tests/casttomultipoint2.testcase0000664000175000017500000000025112163502133022570 00000000000000casttomultipoint - non-blob :memory: #use in-memory database SELECT CastToMultiPoint(99) 1 # rows (not including the header row) 1 # columns CastToMultiPoint(99) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/casttoxym2.testcase0000664000175000017500000000022212163502133021177 00000000000000casttoxym - non-blob :memory: #use in-memory database SELECT CastToXYM(4) 1 # rows (not including the header row) 1 # columns CastToXYM(4) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/addpoint24.testcase0000664000175000017500000000047412163502133021043 00000000000000ST_AddPoint() - append (no index) M :memory: #use in-memory database SELECT AsText(AddPoint(GeomFromText('LINESTRINGM(0 0 1, 1 0 2)'), MakePoint(1, 1))) 1 # rows (not including the header row) 1 # columns AsText(AddPoint(GeomFromText('LINESTRINGM(0 0 1, 1 0 2)'), MakePoint(1, 1))) LINESTRING M(0 0 1, 1 0 2, 1 1 0) libspatialite-4.1.1/test/sql_stmt_tests/geomconstraints8.testcase0000664000175000017500000000033312163502134022375 00000000000000geometry constraints - 3 arg, text :memory: #use in-memory database SELECT GeometryConstraints("hello", "POINT", 4326) 1 # rows (not including the header row) 1 # columns GeometryConstraints("hello", "POINT", 4326) -1 libspatialite-4.1.1/test/sql_stmt_tests/fromgml1.testcase0000664000175000017500000000056612163502134020622 00000000000000FromGML - Point :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('1,2')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('1,2')):0 SRID=4326;POINT(1 2) libspatialite-4.1.1/test/sql_stmt_tests/testFGF.sqlite0000664000175000017500000070000012163502134020054 00000000000000SQLite format 3@ %%%-# y`~}{yyxxxsvK%%[tablesqlite_stat1sqlite_stat1CREATE TABLE sqlite_stat1(tbl,idx,stat) ##]tableCenterlinesCenterlinesCREATE TABLE Centerlines(PRIMARYINDEX INTEGER PRIMARY KEY, Geometry BLOB, ACCURACY_STATUS TEXT, ACCURACY_STATUS_V TEXT, BKCL TEXT, BKCL_V TEXT, END_INT INTEGER, LANES REAL, MAP_CLASSNAME TEXT, MAP_LABEL TEXT, MAP_MAPTIP TEXT, SEG_CLASS TEXT, SEG_CLASS_V TEXT, SEG_DIREC TEXT, SEG_ID REAL, SEG_JURIS TEXT, SEG_LENGTH REAL, SEG_OWNER TEXT, SEG_OWNER_V TEXT, SEG_SURF TEXT, SEG_SURF_V TEXT, SEG_TYPE TEXT, SEG_TYPE_V TEXT, SEG_WIDTH INTEGER, START_INT INTEGER, STR_CODE TEXT, STR_RNAME TEXT)X//_tableAssessmentParcelsAssessmentParcelsCREATE TABLE AssessmentParcels(PRIMARYINDEX INTEGER PRIMARY KEY, Geometry BLOB, FOLIO TEXT, GISLINK INTEGER, HOUSE INTEGER, LEGAL_ID TEXT, LEGAL_LONG1 TEXT, LEGAL_LONG2 TEXT, LEGAL_TYPE TEXT, LOT_DESC TEXT, LOT_SIZE TEXT, LSTATUS TEXT, LSTATUS_V TEXT, NOTE TEXT, PLAN TEXT, PLAN_NUMBER TEXT, POSTAL_CODE TEXT, PRCL_KEY TEXT, PRCL_TYPE TEXT, PRCL_TYPE_V TEXT, STREET TEXT, UNIT TEXT, WSTATUS TEXT, WSTATUS_V TEXT, ZONING TEXT)P%%ctableHouseNumbersHouseNumbersCREATE TABLE HouseNumbers(PRIMARYINDEX INTEGER PRIMARY KEY, Geometry BLOB, TEXT_HALIGN INTEGER, TEXT_HEIGHT REAL, TEXT_LABEL TEXT, TEXT_ROTATION REAL, TEXT_VALIGN INTEGER)E--=tablegeometry_columnsgeometry_columnsCREATE TABLE geometry_columns (f_table_name TEXT,f_geometry_column TEXT,geometry_type INTEGER,coord_dimension INTEGER,srid INTEGER,geometry_format TEXT)++qtablespatial_ref_sysspatial_ref_sysCREATE TABLE spatial_ref_sys(srid INTEGER PRIMARY KEY,sr_name TEXT, auth_name TEXT,auth_srid INTEGER,srtext TEXT ) ~Q~Q,GUTM83-10PROJCS["NAD_1983_UTM_Zone_10N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-123],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0],UNIT["Meter",1]]  #CenterlinesGeometryFGF&/AssessmentParcelsGeometryFGF!%HouseNumbersGeometryFGF ~j?~(<ffffVEA MTA980g( <PEA3TA870g( <3333OEǍ.TA830g(<SEA`8TA882g/<ffffDEATA1150@E-@6q<ffff*IAYoTA@1121@vl pd~}|R{?z/yx vutsrqwpd8\ #%'GL=Afff.TAQ=Afffv7TA= ף=Aq= 7TA\=Aq= .TAGL=Afff.TA83852.000 106253LOT 13, BLOCK 3, DISTRICT LOT 96-G, NANAIMO DISTRICT, PLAN 2039LANDWIDTH/DEPTH50.00 115.002039V9S 1R6HUNTER STREETRS-1A4\ #%'q= ׉=A\•.TA(\=AfffV7TAQ=Afffv7TAGL=Afff.TAq= ׉=A\•.TA83851.000 106250LOT 12, BLOCK 3, DISTRICT LOT 96-G, NANAIMO DISTRICT, PLAN 2039LANDWIDTH/DEPTH50.00 115.002039V9S 1R6HUNTER STREETRS-1A'3\5#%-HAi0TAQHARe5TAzGAfff5TAGAG0TAHAi0TA84915.000105475LOT 21, DISTRICT LOT 96-G, NEWCASTLE RESERVE, SECTION 1, NANAIMO DISTRICT, PLAN 7828LANDWIDTH/DEPTH65.50 99.007828V9S 5E2CHURCHILL AVENUERS-1A1\ #%')\=ARu.TAR=A\57TA(\=AfffV7TAq= ׉=A\•.TA)\=ARu.TA83850.000 106249LOT 11, BLOCK 3, DISTRICT LOT 96-G, NANAIMO DISTRICT, PLAN 2039LANDWIDTH/DEPTH50.00 115.002039V9S 1R6HUNTER STREETRS-1A.\ #%'Q>AHzT.TA ףp>AR7TAR=A\57TA)\=ARu.TAQ>AHzT.TA83849.000106248LOT 10, BLOCK 3, DISTRICT LOT 96G, NANAIMO DISTRICT, PLAN 2039LANDWIDTH/DEPTH50.00 115.002039V9S 1R6HUNTER STREETRS-1A,\ #%'@>A= 3.TAffffE>AR6TA ףp>AR7TAQ>AHzT.TA@>A= 3.TA83848.000106246LOT 9, BLOCK 3, DISTRICT LOT 96-G, NANAIMO DISTRICT, PLAN 2039LANDWIDTH/DEPTH50.00 115.002039V9S 1R6HUNTER STREETRS-1A+\1%-(\HA{0TA{GHA3335TAp= HHA(L5TAQEHA ףP0TA(\HA{0TA84918.000105474LOT 2, DISTRICT LOT 96G, NEWCASTLE RESERVE, SECTION 1, NANAIMO DISTRICT, PLAN 7837LAND65.50 111.007837V9S 5E1CHURCHILL AVENUERS-1A&\ #%'p= >A= -TAz>Aq= 6TAffff>Aq= 6TAQ>A= .TAp= >A= -TA83918.000z106244LOT 16, BLOCK 8, DISTRICT LOT 96-G, NANAIMO DISTRICT, PLAN 2039LANDWIDTH/DEPTH52.00 115.002039V9S 1R5HUNTER STREETRS-1A$\ #%'(\?AHz-TA?A{6TAz>Aq= 6TAp= >A= -TA(\?AHz-TA83917.000p106242LOT 15, BLOCK 8, DISTRICT LOT 96G, NANAIMO DISTRICT, PLAN 2039LANDWidth/Depth52.00 115.002039V9S 1R5HUNTER STREETRS-1A \ #'zN?AHz-TAQS?A{w6TA?A{6TA(\?AHz-TAzN?AHz-TA83915.001f128492LOT 14, BLOCK 8, DISTRICT LOT 96-G, NANAIMO DISTRICT, PLAN 2039LANDWIDTH/DEPTH52 1152039V9S 1R5HUNTER STREETRS-1A\ #%'p= ?AR-TA= ף?A{W6TAQS?A{w6TAzN?AHz-TAp= ?AR-TA83915.000\106239LOT 13, BLOCK 8, DISTRICT LOT 96-G, NANAIMO DISTRICT, PLAN 2039LANDWIDTH/DEPTH52.00 115.002039V9S 1R5HUNTER STREETRS-1A@+#''?AQ86TA= ף?A{W6TAp= ?AR-TA(\?A\u-TAz @A\U-TAףp=@AQ6TA?AQ86TA83914.000R106237LOTS 11 & 12, BLOCK 8, DISTRICT LOT 96G, SECTION 1, PLAN 2039, NANAIMO DISTRICTLANDWIDTH/DEPTH104.00 115.002039V9S 1R5HUNTER STREETRS-1A;#'/z @A\U-TAL@Afff6-TA@AHz-TAR@Aq= 5TA(\P@A5TAףp=@AQ6TAz @A\U-TA83912.000Ʋk116402LOTS 9 AND 10, BLOCK 8, DISTRICT LOT 96-G, NANAIMO DISTRICT, PLAN 2039LANDWIDTH/DEPTH115.00 107.002039V9S 4Z5SUNDERLAND AVENUERS-1A'\3#%-QDAQ.TAQDA(\3TAQgDA= 3TAzdDA)\B/TAQDAQ.TA85749.000 o107296LOT 1, DISTRICT LOT 96G, NEWCASTLE RESERVE, SECTION 1, NANAIMO DISTRICT, PLAN 14412LANDWidth/Depth60.00 108.0014412V9S 5B4MILLSTONE AVENUERS-1A w ~}|{zyx w {cd!5##3333@ATA3333>AfffTAORTHOPHOTOORTHOPHOTO REFERENCELOCALDUFFERIN STDUFFERIN ST CLASS: LOCAL OWNER: City TYPE: Single Lane SURFACE: PavedLOCALLOCALr@b]_CITYCityPAVEDPavedSINGLESingle Lane360]$!5## CA TA3333CATAffffBATABA3333TABA333TA̶BAfffTAffffBA`TAhBATA4BA333TABAfffTAAAٱTA3333@ATAORTHOPHOTOORTHOPHOTO REFERENCELOCALDUFFERIN STDUFFERIN ST CLASS: LOCAL OWNER: City TYPE: Single Lane SURFACE: PavedLOCALLOCALl@g 1ACITYCityPAVEDPavedSINGLESingle Lane360!d!5)#@A TA@AfffTAORTHOPHOTOORTHOPHOTO REFERENCELOCALSUNDERLAND AVESUNDERLAND AVE CLASS: LOCAL OWNER: City TYPE: Single Lane SURFACE: PavedLOCALLOCAL@V/ CITYCityPAVEDPavedSINGLESingle Lane1087 !5)#@AfffTA@A333~TAffff@A nTAORTHOPHOTOORTHOPHOTO REFERENCEZLOCALSUNDERLAND AVESUNDERLAND AVE CLASS: LOCAL OWNER: City TYPE: Single Lane SURFACE: PavedLOCALLOCAL@VjT*OCITYCityPAVEDPavedSINGLESingle Lane1087d!5)#ffff@A nTA@AfffFWTAORTHOPHOTOORTHOPHOTO REFERENCELOCALSUNDERLAND AVESUNDERLAND AVE CLASS: LOCAL OWNER: City TYPE: Single Lane SURFACE: PavedLOCALLOCAL@V&؀`oCITYCityPAVEDPavedSINGLESingle LaneZ1087vfd!5#CA̬TACA TAORTHOPHOTOORTHOPHOTO REFERENCELOCALOAKLEY STOAKLEY ST CLASS: LOCAL OWNER: City TYPE: Single Lane SURFACE: PavedLOCALLOCALk@FDj8@CITYCityPAVEDPavedSINGLESingle Lane828,d!5'!9';#3333NA99TAKA:TAORTHOPHOTOORTHOPHOTO REFERENCENEIGHBOURHOODCYPRESS STCYPRESS ST CLASS: NEIGHBOURHOOD COLLECTOR OWNER: City TYPE: Single Lane SURFACE: PavedNEIGHBOURHOODNEIGHBOURHOOD COLLECTOR@dy+CITYCityPAVEDPavedSINGLESingle Lane!318 !5!#KA:TAtJA̬;TAEJA;TAORTHOPHOTOORTHOPHOTO REFERENCELOCALCYPRESS STCYPRESS ST CLASS: LOCAL OWNER: City TYPE: Single Lane SURFACE: PavedLOCALLOCAL@SWCCITYCityPAVEDPavedSINGLESingle Lane318 +spatial_ref_sys1-geometry_columns3%HouseNumbers6/AssessmentParcels14#Centerlines8libspatialite-4.1.1/test/sql_stmt_tests/makeellipticsector9.testcase0000664000175000017500000000033712163502134023046 00000000000000makeellipticsector9 - NULL y_axis :memory: #use in-memory database SELECT MakeEllipticSector(0, 0, 100, NULL, 30, 60); 1 # rows (not including the header row) 1 # columns MakeEllipticSector(0, 0, 100, NULL, 30, 60) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/buildmbr9.testcase0000664000175000017500000000025712163502133020763 00000000000000buildmbr - null args :memory: #use in-memory database SELECT BuildMbr(5, 6, 7, 8, NULL) 1 # rows (not including the header row) 1 # columns BuildMbr(5, 6, 7, 8, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/gml5.testcase0000664000175000017500000000055312163502134017736 00000000000000GMLv2 Linestring Z: no SRID :memory: #use in-memory database SELECT AsGML(GeomFromText("LINESTRINGZ(1 2 100, 3 4 101)")); 1 # rows (not including the header row) 1 # columns AsGML(GeomFromText("LINESTRINGZ(1 2 100, 3 4 101)")) 1,2,100 3,4,101:0 # trailing ":0" required to avoid truncation !!! libspatialite-4.1.1/test/sql_stmt_tests/fromgeojson30.testcase0000664000175000017500000000114612163502134021564 00000000000000FromGeoJSON - polygon with SRID and bbox :memory: #use in-memory database SELECT AsEWkt(GeomFromGeoJSON('{"type":"Polygon","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"bbox":[1,2,4,9],"coordinates":[[[1,2.3],[4,1.2],[2,1.6],[1,2.3]],[[1.5,2],[3.5,9],[2.5,1],[1.5,2]]]}')); 1 # rows (not including the header row) 1 # columns AsEWkt(GeomFromGeoJSON('{"type":"Polygon","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"bbox":[1,2,4,9],"coordinates":[[[1,2.3],[4,1.2],[2,1.6],[1,2.3]],[[1.5,2],[3.5,9],[2.5,1],[1.5,2]]]}')):0 SRID=3003;POLYGON((1 2.3,4 1.2,2 1.6,1 2.3),(1.5 2,3.5 9,2.5 1,1.5 2)) libspatialite-4.1.1/test/sql_stmt_tests/SridFromAuthCRS4.testcase0000664000175000017500000000027312163502133022073 00000000000000SridFromAuthCRS - gfoss.it :memory: #use in-memory database SELECT SridFromAuthCRS('gfoss.it', 1) 1 # rows (not including the header row) 1 # columns SridFromAuthCRS('gfoss.it', 1) 40000 libspatialite-4.1.1/test/sql_stmt_tests/shiftlongitude16.testcase0000664000175000017500000000134512163502134022271 00000000000000shiftlongitude - positive and negative longitude polygonz, interior rings :memory: #use in-memory database SELECT AsText(ST_Shift_Longitude(GeomFromText("POLYGONZ((-175 0 4, -176 10 5, 175 10 5, 176 0 5, -175 0 4),(-177 1 4, -177 2 5, -178 2 6, -178 1 9, -177 1 4),(-179 4 0, 179 4 0, 179 5 0, -179 5 0, -179 4 0))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(ST_Shift_Longitude(GeomFromText("POLYGONZ((-175 0 4, -176 10 5, 175 10 5, 176 0 5, -175 0 4),(-177 1 4, -177 2 5, -178 2 6, -178 1 9, -177 1 4),(-179 4 0, 179 4 0, 179 5 0, -179 5 0, -179 4 0))", 4326))) POLYGON Z((185 0 4, 184 10 5, 175 10 5, 176 0 5, 185 0 4), (183 1 4, 183 2 5, 182 2 6, 182 1 9, 183 1 4), (181 4 0, 179 4 0, 179 5 0, 181 5 0, 181 4 0)) libspatialite-4.1.1/test/sql_stmt_tests/compressgeometry4.testcase0000664000175000017500000000063712163502133022567 00000000000000CompressGeometry - LINESTRING :memory: #use in-memory database SELECT Hex(CompressGeometry(GeomFromText("LINESTRING(1 2, 3 4)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(CompressGeometry(GeomFromText("LINESTRING(1 2, 3 4)", 4326))) 0001E6100000000000000000F03F0000000000000040000000000000084000000000000010407C42420F0002000000000000000000F03F000000000000004000000000000008400000000000001040FE libspatialite-4.1.1/test/sql_stmt_tests/fromewkt8.testcase0000664000175000017500000000040612163502134021015 00000000000000fromewkt8 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;MULTIPOINT((0 1), (2 3), (4 5))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;MULTIPOINT((0 1), (2 3), (4 5))')); MULTIPOINT(0 1, 2 3, 4 5) libspatialite-4.1.1/test/sql_stmt_tests/shiftlongitude1.testcase0000664000175000017500000000040012163502134022172 00000000000000shiftlongitude - positive long :memory: #use in-memory database SELECT AsText(ST_Shift_Longitude(GeomFromText("POINT(1 2)", 4326))) 1 # rows (not including the header row) 1 # columns AsText(ST_Shift_Longitude(GeomFromText("POINT(1 2)", 4326))) POINT(1 2) libspatialite-4.1.1/test/sql_stmt_tests/badGeoJSON3.testcase0000664000175000017500000000051512163502133021025 00000000000000bad GeoJSON: Polygon :memory: #use in-memory database SELECT GeomFromGeoJSON('{"type":"Polygon","coordinates":[[[1.1,2.2],[3.3,2.2],[3.3,4.4],[1.1,4.4],[1.1,2.2]]]'); 1 # rows (not including the header row) 1 # columns GeomFromGeoJSON('{"type":"Polygon","coordinates":[[[1.1,2.2],[3.3,2.2],[3.3,4.4],[1.1,4.4],[1.1,2.2]]]'):0 (NULL) libspatialite-4.1.1/test/sql_stmt_tests/greatcircle-poly4.testcase0000664000175000017500000000035612163502134022424 00000000000000great circle length polygonM :memory: SELECT GreatCircleLength(GeomFromText("POLYGONM((0 0 2, 1 0 3, 0 0 2, 0 0 2))", 4326)); 1 # rows 1 # column GreatCircleLength(GeomFromText("POLYGONM((0 0 2, 1 0 3, 0 0 2, 0 0 2))", 4326)) 222390.15:9 libspatialite-4.1.1/test/sql_stmt_tests/collect17.testcase0000664000175000017500000000047112163502133020665 00000000000000collect - PointM, PointZ :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POINTM(4 5 3.2)"), GeomFromText("POINTZ(1 2 6)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POINTM(4 5 3.2)"), GeomFromText("POINTZ(1 2 6)"))) MULTIPOINT ZM(4 5 0 3.2, 1 2 6 0) libspatialite-4.1.1/test/sql_stmt_tests/shiftlongitude8.testcase0000664000175000017500000000065412163502134022214 00000000000000shiftlongitude - positive and negative longitude linestringz :memory: #use in-memory database SELECT AsText(ST_Shift_Longitude(GeomFromText("LINESTRINGZ(-170 0 1, -175 2 2.4, -179 4 3.2, 175.3 5 4.7)", 4326))) 1 # rows (not including the header row) 1 # columns AsText(ST_Shift_Longitude(GeomFromText("LINESTRINGZ(-170 0 1, -175 2 2.4, -179 4 3.2, 175.3 5 4.7)", 4326))) LINESTRING Z(190 0 1, 185 2 2.4, 181 4 3.2, 175.3 5 4.7) libspatialite-4.1.1/test/sql_stmt_tests/createuuid1.testcase0000664000175000017500000000023612163502133021302 00000000000000CreateUUID() - NULL :memory: #use in-memory database SELECT Length(CreateUUID()); 1 # rows (not including the header row) 1 # columns Length(CreateUUID()) 36 libspatialite-4.1.1/test/sql_stmt_tests/removepoint2.testcase0000664000175000017500000000026312163502134021521 00000000000000ST_RemovePoint() - INTEGER line :memory: #use in-memory database SELECT ST_RemovePoint(1, NULL) 1 # rows (not including the header row) 1 # columns ST_RemovePoint(1, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makeellipse20.testcase0000664000175000017500000000033512163502134021525 00000000000000makeellipse20 - BLOB step :memory: #use in-memory database SELECT MakeEllipse(0, 0, 100, 200, 4326, zeroblob(4)); 1 # rows (not including the header row) 1 # columns MakeEllipse(0, 0, 100, 200, 4326, zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/addpoint4.testcase0000664000175000017500000000026312163502133020755 00000000000000ST_AddPoint() - TEXT line :memory: #use in-memory database SELECT ST_AddPoint('alpha', NULL) 1 # rows (not including the header row) 1 # columns ST_AddPoint('alpha', NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/is3d3.testcase0000664000175000017500000000026712163502134020021 00000000000000Is3D- Point XY :memory: #use in-memory database SELECT ST_Is3D(GeomFromText('POINT(1 2)')); 1 # rows (not including the header row) 1 # columns ST_Is3D(GeomFromText('POINT(1 2)')) 0 libspatialite-4.1.1/test/sql_stmt_tests/geodesic-len7.testcase0000664000175000017500000000021312163502134021510 00000000000000geodesic length (wrong) zeroblob arg :memory: SELECT GeodesicLength(zeroblob(23)); 1 # rows 1 # column GeodesicLength(zeroblob(23)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/collectextract5.testcase0000664000175000017500000000036112163502133022173 00000000000000Collection Extract - Point invalid type 0 :memory: #use in-memory database SELECT CollectionExtract(GeomFromText("POINT(1 2)"), 0); 1 # rows (not including the header row) 1 # columns CollectionExtract(GeomFromText("POINT(1 2)"), 0) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/casttogeometrycollection6.testcase0000664000175000017500000000070012163502133024276 00000000000000casttogeometrycollection - toxic POLYGON :memory: #use in-memory database SELECT AsText(CastToGeometryCollection(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToGeometryCollection(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"))) GEOMETRYCOLLECTION(POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))) libspatialite-4.1.1/test/sql_stmt_tests/geomfromtext38.testcase0000664000175000017500000000105612163502134021764 00000000000000geomfromtext38 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONZ(GEOMETRYCOLLECTIONZ(POINTZ(0 0 9), LINESTRINGZ(1 1 9, 2 2 9)), GEOMETRYCOLLECTIONZ(POINTZ(3 3 9), LINESTRINGZ(4 4 9, 5 5 9)))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTIONZ(GEOMETRYCOLLECTIONZ(POINTZ(0 0 9), LINESTRINGZ(1 1 9, 2 2 9)), GEOMETRYCOLLECTIONZ(POINTZ(3 3 9), LINESTRINGZ(4 4 9, 5 5 9)))')); GEOMETRYCOLLECTION Z(POINT Z(0 0 9), POINT Z(3 3 9), LINESTRING Z(1 1 9, 2 2 9), LINESTRING Z(4 4 9, 5 5 9)) libspatialite-4.1.1/test/sql_stmt_tests/srid8.testcase0000664000175000017500000000032112163502134020114 00000000000000SetSRID - invalid srid :memory: #use in-memory database SELECT SetSRID(GeomFromText("Point(1 2)"), "four") 1 # rows (not including the header row) 1 # columns SetSRID(GeomFromText("Point(1 2)"), "four") (NULL)libspatialite-4.1.1/test/sql_stmt_tests/makeellipticarc25.testcase0000664000175000017500000000037112163502134022370 00000000000000makeellipticarc25 - BLOB step :memory: #use in-memory database SELECT MakeEllipticArc(0, 0, 100, 200, 30, 60, 4326, zeroblob(4)); 1 # rows (not including the header row) 1 # columns MakeEllipticArc(0, 0, 100, 200, 30, 60, 4326, zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geometryn4.testcase0000664000175000017500000000027412163502134021167 00000000000000Geometry N - bad blob input (error) :memory: #use in-memory database SELECT GeometryN(zeroblob(2), 1); 1 # rows (not including the header row) 1 # columns GeometryN(zeroblob(2), 1) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/compressgeometry40.testcase0000664000175000017500000000070312163502133022641 00000000000000CompressGeometry - MULTILINESTRING M :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("MULTILINESTRINGM((10 10 1, 11 11 2, 12 12 3), (15 15 1, 16 16 2, 17 17 3))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("MULTILINESTRINGM((10 10 1, 11 11 2, 12 12 3), (15 15 1, 16 16 2, 17 17 3))", 4326))) MULTILINESTRING M((10 10 1, 11 11 2, 12 12 3), (15 15 1, 16 16 2, 17 17 3)) libspatialite-4.1.1/test/sql_stmt_tests/garsmbr7.testcase0000664000175000017500000000024612163502134020615 00000000000000garsmbr - bad segment number 0 :memory: #use in-memory database SELECT GARSMbr("001AA0") 1 # rows (not including the header row) 1 # columns GARSMbr("001AA0") (NULL) libspatialite-4.1.1/test/sql_stmt_tests/swapcoords7.testcase0000664000175000017500000000064012163502134021342 00000000000000swapcoords7 :memory: #use in-memory database SELECT AsText(SwapCoords(GeomFromText("LINESTRINGZM(136 -35 100 1, 135.2 -34.5 101 2, 136 -35.2 102 3, 136 -36 103 4)"))); 1 # rows (not including the header row) 1 # columns AsText(SwapCoords(GeomFromText("LINESTRINGZM(136 -35 100 1, 135.2 -34.5 101 2, 136 -35.2 102 3, 136 -36 103 4)"))); LINESTRING ZM(-35 136 100 1, -34.5 135.2 101 2, -35.2 136 102 3, -36 136 103 4) libspatialite-4.1.1/test/sql_stmt_tests/aswkt-text.testcase0000664000175000017500000000023512163502133021201 00000000000000aswkt-text :memory: #use in-memory database SELECT AsWkt("not a blob", 4); 1 # rows (not including the header row) 1 # columns AsWkt("not a blob", 4) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/ring27.testcase0000664000175000017500000000076412163502134020206 00000000000000InteriorRingN - broken second interior :memory: #use in-memory database SELECT AsText(InteriorRingN(GeomFromText("POLYGONZ((0 0 0, 0 4 1, 4 4 2, 4 0 3, 0 0 0),(1 1 2, 1 3 2, 3 3 2, 3 1 2, 1 1 2),(2 2 1, 2 3 1, 3 3 1, 3 2 1, 2 2 2))"), 2)); 1 # rows (not including the header row) 1 # columns AsText(InteriorRingN(GeomFromText("POLYGONZ((0 0 0, 0 4 1, 4 4 2, 4 0 3, 0 0 0),(1 1 2, 1 3 2, 3 3 2, 3 1 2, 1 1 2),(2 2 1, 2 3 1, 3 3 1, 3 2 1, 2 2 2))"), 2)) LINESTRING Z(2 2 1, 2 3 1, 3 3 1, 3 2 1, 2 2 2) libspatialite-4.1.1/test/sql_stmt_tests/greatcircle-badblob.testcase0000664000175000017500000000021312163502134022732 00000000000000great circle length - bad blob :memory: SELECT GreatCircleLength(zeroblob(34)); 1 # rows 1 # column GreatCircleLength(zeroblob(34)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/rtreealign1.testcase0000664000175000017500000000024612163502134021306 00000000000000rtreealign - non-text first arg :memory: #use in-memory database SELECT RTreeAlign(0, 1, 2) 1 # rows (not including the header row) 1 # columns RTreeAlign(0, 1, 2) -1libspatialite-4.1.1/test/sql_stmt_tests/reverse3.testcase0000664000175000017500000000150312163502134020624 00000000000000reverse - GeometryCollection XY :memory: #use in-memory database SELECT AsEWKT(ST_Reverse(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2), LINESTRING(3 4, 5 6, 7 8, 9 9), POLYGON((10 10, 14 10, 12 12, 10 10), (11 10.5, 13 10.5, 12 11.5, 11 10.5)), POLYGON((20 20, 24 20, 22 18, 20 20), (21 19.5, 23 19.5, 22 18.5, 21 19.5)))"))); 1 # rows (not including the header row) 1 # columns AsEWKT(ST_Reverse(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2), LINESTRING(3 4, 5 6, 7 8, 9 9), POLYGON((10 10, 14 10, 12 12, 10 10), (11 10.5, 13 10.5, 12 11.5, 11 10.5)), POLYGON((20 20, 24 20, 22 18, 20 20), (21 19.5, 23 19.5, 22 18.5, 21 19.5)))"))) SRID=0;GEOMETRYCOLLECTION(POINT(1 2),LINESTRING(9 9,7 8,5 6,3 4),POLYGON((10 10,12 12,14 10,10 10),(11 10.5,12 11.5,13 10.5,11 10.5)),POLYGON((20 20,22 18,24 20,20 20),(21 19.5,22 18.5,23 19.5,21 19.5))) libspatialite-4.1.1/test/sql_stmt_tests/casttomultipolygon4.testcase0000664000175000017500000000036512163502133023136 00000000000000casttomultipolygon - LINESTRING :memory: #use in-memory database SELECT CastToMultiPolygon(GeomFromText("LINESTRING(1 2, 4 5)")) 1 # rows (not including the header row) 1 # columns CastToMultiPolygon(GeomFromText("LINESTRING(1 2, 4 5)")) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/reflectcoords7.testcase0000664000175000017500000000035312163502134022015 00000000000000reflectcoords7 :memory: #use in-memory database SELECT AsText(ReflectCoords(GeomFromText("POINT(1 2)"), 1, -23.3)); 1 # rows (not including the header row) 1 # columns AsText(ReflectCoords(GeomFromText("POINT(1 2)"), 1, -23.3)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/fromewkt36.testcase0000664000175000017500000000131212163502134021073 00000000000000fromewkt36 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTIONM(POINTM(9 9 9), GEOMETRYCOLLECTIONM(POINTM(0 0 9), LINESTRINGM(1 1 9, 2 2 9)), POINTM(8 8 9), GEOMETRYCOLLECTIONM(POINTM(3 3 9), LINESTRINGM(4 4 9, 5 5 9)), POINTM(7 7 9))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTIONM(POINTM(9 9 9), GEOMETRYCOLLECTIONM(POINTM(0 0 9), LINESTRINGM(1 1 9, 2 2 9)), POINTM(8 8 9), GEOMETRYCOLLECTIONM(POINTM(3 3 9), LINESTRINGM(4 4 9, 5 5 9)), POINTM(7 7 9))')); GEOMETRYCOLLECTION M(POINT M(9 9 9), POINT M(0 0 9), POINT M(8 8 9), POINT M(3 3 9), POINT M(7 7 9), LINESTRING M(1 1 9, 2 2 9), LINESTRING M(4 4 9, 5 5 9)) libspatialite-4.1.1/test/sql_stmt_tests/makeellipticsector15.testcase0000664000175000017500000000034012163502134023115 00000000000000makeellipticsector15 - NULL stop :memory: #use in-memory database SELECT MakeEllipticSector(0, 0, 100, 200, 30, NULL); 1 # rows (not including the header row) 1 # columns MakeEllipticSector(0, 0, 100, 200, 30, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geometryn7.testcase0000664000175000017500000000036712163502134021175 00000000000000Geometry N - multipointZ :memory: #use in-memory database SELECT AsText(GeometryN(GeomFromText("MULTIPOINTZ(1 2 4)"), 1)); 1 # rows (not including the header row) 1 # columns AsText(GeometryN(GeomFromText("MULTIPOINTZ(1 2 4)"), 1)) POINT Z(1 2 4) libspatialite-4.1.1/test/sql_stmt_tests/makecircularsector21.testcase0000664000175000017500000000036012163502134023113 00000000000000makecircularsector21 - TEXT step :memory: #use in-memory database SELECT MakeCircularSector(0, 0, 100, 30, 60, 4326, 'alpha'); 1 # rows (not including the header row) 1 # columns MakeCircularSector(0, 0, 100, 30, 60, 4326, 'alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makecircularstripe13.testcase0000664000175000017500000000034412163502134023125 00000000000000makecircularstripe13 - text stop :memory: #use in-memory database SELECT MakeCircularStripe(0, 0, 100, 90, 30, 'alpha'); 1 # rows (not including the header row) 1 # columns MakeCircularStripe(0, 0, 100, 90, 30, 'alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_tests/forcenull11.testcase0000664000175000017500000000030012163502134021213 00000000000000ForceAsNull() - TEXT/BLOB :memory: #use in-memory database SELECT ForceAsNull('alpha', zeroblob(4)) 1 # rows (not including the header row) 1 # columns ForceAsNull('alpha', zeroblob(4)) alpha libspatialite-4.1.1/test/sql_stmt_tests/ktorrent_grad1.jpg0000664000175000017500000000055712163502134020771 00000000000000JFIFHHExifMM*Created with The GIMPC  !"$"$C"Sa ?랋nb&"W)6l3llibspatialite-4.1.1/test/sql_stmt_tests/fromewkt1.testcase0000664000175000017500000000023212163502134021003 00000000000000From EWKT - Point :memory: SELECT AsText(GeomFromEwkt("SRID=4326;POINT(1 2)")) 1 # rows 1 # column AsText(GeomFromEwkt("SRID=4326;POINT(1 2)")) POINT(1 2)libspatialite-4.1.1/test/sql_stmt_tests/garsmbr2.testcase0000664000175000017500000000026612163502134020612 00000000000000garsmbr - bad text :memory: #use in-memory database SELECT GARSMbr("buzzys country store") 1 # rows (not including the header row) 1 # columns GARSMbr("buzzys country store") (NULL) libspatialite-4.1.1/test/sql_stmt_tests/wkb12.testcase0000664000175000017500000000074112163502134020017 00000000000000Hex Wkb: MultiLinestring XYZM (single line) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("MULTILINESTRINGZM((1.2 3.4 100 12, 5.6 7.8 101 13))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("MULTILINESTRINGZM((1.2 3.4 100 12, 5.6 7.8 101 13))", 4326))); 01BD0B00000100000001BA0B000002000000333333333333F33F3333333333330B400000000000005940000000000000284066666666666616403333333333331F4000000000004059400000000000002A40 libspatialite-4.1.1/test/sql_stmt_tests/garsmbr22.testcase0000664000175000017500000000041712163502134020672 00000000000000garsmbr - 001AB27 :memory: #use in-memory database SELECT AsText(GARSMbr("001AB27")) 1 # rows (not including the header row) 1 # columns AsText(GARSMbr("001AB27")) POLYGON((-179.75 -89.25, -179.666667 -89.25, -179.666667 -89.166667, -179.75 -89.166667, -179.75 -89.25)) libspatialite-4.1.1/test/sql_stmt_tests/collect33.testcase0000664000175000017500000000062412163502133020663 00000000000000collect - LineStringM, LineStringM :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("LINESTRINGM(1 2 4, 3 4 2)"), GeomFromText("LINESTRINGM(4 5 1, 1 2 2, 4 2 3)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("LINESTRINGM(1 2 4, 3 4 2)"), GeomFromText("LINESTRINGM(4 5 1, 1 2 2, 4 2 3)"))) MULTILINESTRING M((1 2 4, 3 4 2), (4 5 1, 1 2 2, 4 2 3)) libspatialite-4.1.1/test/sql_stmt_tests/st_z4.testcase0000664000175000017500000000031512163502134020131 00000000000000ST_Z4 :memory: #use in-memory database SELECT ST_Z(GeomFromText("POINTZM(136 -35 635.2 10.2)")); 1 # rows (not including the header row) 1 # columns ST_Z(GeomFromText("POINTZM(136 -35 635.2 10.2)")) 635.2 libspatialite-4.1.1/test/sql_stmt_tests/geomconstraints18.testcase0000664000175000017500000000057512163502134022466 00000000000000geometry constraints - MULTILINESTRINGM :memory: #use in-memory database SELECT GeometryConstraints(GeomFromText("MULTILINESTRINGM((1 2 3, 4 3 1),(0 4 4, 1 9 7))", 4326), "MULTILINESTRING", 4326, "XYM") 1 # rows (not including the header row) 1 # columns GeometryConstraints(GeomFromText("MULTILINESTRINGM((1 2 3, 4 3 1),(0 4 4, 1 9 7))", 4326), "MULTILINESTRING", 4326, "XYM") 1 libspatialite-4.1.1/test/sql_stmt_tests/dissolve4.testcase0000664000175000017500000000027412163502133021005 00000000000000dissolve - zeroblob input :memory: #use in-memory database SELECT DissolveSegments(zeroblob(126)) 1 # rows (not including the header row) 1 # columns DissolveSegments(zeroblob(126)) (NULL)libspatialite-4.1.1/test/sql_stmt_tests/wkbtosql3.testcase0000664000175000017500000000023312163502134021016 00000000000000ST_WKBToSQL - float :memory: #use in-memory database SELECT ST_WKBToSQL(1.67) 1 # rows (not including the header row) 1 # columns ST_WKBToSQL(1.67) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/casttogeometrycollection.testcase0000664000175000017500000000032512163502133024213 00000000000000casttogeometrycollection - bad blob :memory: #use in-memory database SELECT CastToGeometryCollection(zeroblob(99)) 1 # rows (not including the header row) 1 # columns CastToGeometryCollection(zeroblob(99)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geomcollfromtext1.testcase0000664000175000017500000000055112163502134022543 00000000000000geometrycollectionfromtext1 :memory: #use in-memory database SELECT AsWkt(GeometryCollectionFromText("GEOMETRYCOLLECTION(POINT(4 6),LINESTRING(4 6,7 10))", 4326)) 1 # rows (not including the header row) 1 # columns AsWkt(GeometryCollectionFromText("GEOMETRYCOLLECTION(POINT(4 6),LINESTRING(4 6,7 10))", 4326)) GEOMETRYCOLLECTION(POINT(4 6),LINESTRING(4 6,7 10))libspatialite-4.1.1/test/sql_stmt_tests/shiftlongitude19.testcase0000664000175000017500000000113712163502134022273 00000000000000shiftlongitude - negative long interior :memory: #use in-memory database SELECT AsText(ST_Shift_Longitude(GeomFromText("POLYGON((185 0, 184 10, 175 10, 176 0, 185 0),(-177 1, -177 2, -178 2, -178 1, -177 1),(-179 4, 179 4, 179 5, -179 5, -179 4))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(ST_Shift_Longitude(GeomFromText("POLYGON((185 0, 184 10, 175 10, 176 0, 185 0),(-177 1, -177 2, -178 2, -178 1, -177 1),(-179 4, 179 4, 179 5, -179 5, -179 4))", 4326))) POLYGON((185 0, 184 10, 175 10, 176 0, 185 0), (183 1, 183 2, 182 2, 182 1, 183 1), (181 4, 179 4, 179 5, 181 5, 181 4)) libspatialite-4.1.1/test/sql_stmt_tests/asbinary8.testcase0000664000175000017500000000041712163502133020770 00000000000000asbinary - POINTM :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("POINTM(1 2 3)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("POINTM(1 2 3)", 4326))) 01D1070000000000000000F03F00000000000000400000000000000840 libspatialite-4.1.1/test/sql_stmt_tests/wkb29.testcase0000664000175000017500000000115112163502134020023 00000000000000Hex Wkb: GeometryCollection XY (point, polygon) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2), POLYGON((10 10, 11 10, 11 11, 10 11, 10 10)))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2), POLYGON((10 10, 11 10, 11 11, 10 11, 10 10)))", 4326))); 0107000000020000000101000000000000000000F03F0000000000000040010300000001000000050000000000000000002440000000000000244000000000000026400000000000002440000000000000264000000000000026400000000000002440000000000000264000000000000024400000000000002440 libspatialite-4.1.1/test/sql_stmt_tests/assvg26.testcase0000664000175000017500000000112312163502133020356 00000000000000assvg - relative/absolute GeometryCollection :memory: #use in-memory database SELECT assvg(geom, 1) AS rel, assvg(geom, 0) AS abs FROM (SELECT GeomFromText("GEOMETRYCOLLECTION(POINT(1 2), POINT(7 8), LINESTRING(3 4, 5 6), POLYGON((71 11, 75 11, 75 15, 71 15, 71 11), (72 12, 73 12, 73 13, 72 13, 71 12)))", 4326) AS geom) dummy; 1 # rows (not including the header row) 2 # columns rel abs x="1" y="-2";x="7" y="-8";M 3 -4 l 2 -2 M 71 -11 l 4 0 0 -4 -4 0 z M 72 -12 l 1 0 0 -1 -1 0 z cx="1" cy="-2";cx="7" cy="-8";M 3 -4 L 5 -6 M 71 -11 L 75 -11 75 -15 71 -15 z M 72 -12 L 73 -12 73 -13 72 -13 z libspatialite-4.1.1/test/sql_stmt_tests/removepoint13.testcase0000664000175000017500000000041312163502134021600 00000000000000ST_RemovePoint() - XY :memory: #use in-memory database SELECT AsText(RemovePoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1)) 1 # rows (not including the header row) 1 # columns AsText(RemovePoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1)) LINESTRING(0 0, 1 1) libspatialite-4.1.1/test/sql_stmt_tests/mbr28.testcase0000664000175000017500000000045312163502134020023 00000000000000MbrDisjoint - Line + Point down :memory: #use in-memory database SELECT MbrDisjoint(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(-0.5 -2)")); 1 # rows (not including the header row) 1 # columns MbrDisjoint(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(-0.5 -2)")) # header 1libspatialite-4.1.1/test/sql_stmt_tests/casttoxyzm5.testcase0000664000175000017500000000035012163502133021376 00000000000000casttoxyzm - POINT :memory: #use in-memory database SELECT AsText(CastToXYZM(GeomFromText("POINTZ(4 3 10)"))) 1 # rows (not including the header row) 1 # columns AsText(CastToXYZM(GeomFromText("POINTZ(4 3 10)"))) POINT ZM(4 3 10 0) libspatialite-4.1.1/test/sql_stmt_tests/fromgml51.testcase0000664000175000017500000000116112163502134020677 00000000000000FromGML - multipoint, multiple SRID - bad second SRID, no namespace :memory: #use in-memory database SELECT AsText(GeomFromGml('1,2,3.22,4,4.2')) 1 # rows (not including the header row) 1 # columns AsText(GeomFromGml('1,2,3.22,4,4.2')):0 MULTIPOINT Z(1 2 3.2, 2 4 4.2) libspatialite-4.1.1/test/sql_stmt_tests/rotatecoords11.testcase0000664000175000017500000000167412163502134021751 00000000000000rotate coords - Two ring polygon :memory: #use in-memory database SELECT AsText(RotateCoords(geom, 0)), AsText(RotateCoords(geom, 90.0)), AsText(RotateCoords(geom, 180.0)), AsText(RotateCoords(geom, -90)), RotateCoords(zeroblob(20), 10), RotateCoords(geom, "hello"), RotateCoords("foo", 30) FROM (SELECT GeomFromText("POLYGON((0 0, 2 2, 2 4, -2 2, 0 0),(0 0, 1 1, 1 2, -1 1, 0 0))") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(RotateCoords(geom, 0)) AsText(RotateCoords(geom, 90.0)) AsText(RotateCoords(geom, 180.0)) AsText(RotateCoords(geom, -90)) RotateCoords(zeroblob(20), 10) RotateCoords(geom, "hello") RotateCoords("foo", 30) POLYGON((0 0, 2 2, 2 4, -2 2, 0 0), (0 0, 1 1, 1 2, -1 1, 0 0)) POLYGON((0 0, 2 -2, 4 -2, 2 2, 0 0), (0 0, 1 -1, 2 -1, 1 1, 0 0)) POLYGON((0 0, -2 -2, -2 -4, 2 -2, 0 0), (0 0, -1 -1, -1 -2, 1 -1, 0 0)) POLYGON((0 0, -2 2, -4 2, -2 -2, 0 0), (0 0, -1 1, -2 1, -1 -1, 0 0)) (NULL) (NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/dm_m.testcase0000664000175000017500000000022512163502133020001 00000000000000decimetres to metres :memory: #use in-memory database SELECT CvtFromDm(2.4); 1 # rows (not including the header row) 1 # columns CvtFromDm(2.4); 0.24libspatialite-4.1.1/test/sql_stmt_tests/m_ind_ch.testcase0000664000175000017500000000024212163502134020625 00000000000000metres to Indian chains :memory: #use in-memory database SELECT CvtToIndCh(1000); 1 # rows (not including the header row) 1 # columns CvtToIndCh(1000) 49.70995:8 libspatialite-4.1.1/test/sql_stmt_tests/dimension1.testcase0000664000175000017500000000037712163502133021143 00000000000000dimension1 - POINT :memory: #use in-memory database SELECT Dimension(GeomFromText("POINT(-71.1043443253471 42.315067601582900)")); 1 # rows (not including the header row) 1 # columns Dimension(GeomFromText("POINT(-71.1043443253471 42.315067601582900)")) 0libspatialite-4.1.1/test/sql_stmt_tests/maxz1.testcase0000664000175000017500000000021212163502134020122 00000000000000MaxZ - non-blob :memory: #use in-memory database SELECT ST_MaxZ(3) 1 # rows (not including the header row) 1 # columns ST_MaxZ(3) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/ring3.testcase0000664000175000017500000000061712163502134020115 00000000000000ExteriorRing - Simple Polygon Z :memory: #use in-memory database SELECT AsText(ExteriorRing(GeomFromText("POLYGONZ((136 -35 4, 135.2 -34.5 6.5, 136 -35.2 9.4, 136 -35 4))"))); 1 # rows (not including the header row) 1 # columns AsText(ExteriorRing(GeomFromText("POLYGONZ((136 -35 4, 135.2 -34.5 6.5, 136 -35.2 9.4, 136 -35 4))"))); LINESTRING Z(136 -35 4, 135.2 -34.5 6.5, 136 -35.2 9.4, 136 -35 4) libspatialite-4.1.1/test/sql_stmt_tests/maxm6.testcase0000664000175000017500000000041612163502134020120 00000000000000MaxM - Linestring XYZM :memory: #use in-memory database SELECT ST_MaxM(GeomFromText('LINESTRINGZM(1 2 100 10, 3 4 103 13, 5 6 101 12)')); 1 # rows (not including the header row) 1 # columns ST_MaxM(GeomFromText('LINESTRINGZM(1 2 100 10, 3 4 103 13, 5 6 101 12)')) 13.0 libspatialite-4.1.1/test/sql_stmt_tests/locatemeasure16.testcase0000664000175000017500000000072712163502134022075 00000000000000ST_Locate_Along_Measure - LinestringM :memory: #use in-memory database SELECT AsText(ST_Locate_Along_Measure(GeomFromText('LINESTRINGM(0 1 2.1, 1 0 1, 2 1 2.1, 3 0 2.2, 4 1 4, 5 0 2.1, 6 1 2.1)'), 2.1)); 1 # rows (not including the header row) 1 # columns AsText(ST_Locate_Along_Measure(GeomFromText('LINESTRINGM(0 1 2.1, 1 0 1, 2 1 2.1, 3 0 2.2, 4 1 4, 5 0 2.1, 6 1 2.1)'), 2.1)) GEOMETRYCOLLECTION M(POINT M(0 1 2.1), POINT M(2 1 2.1), LINESTRING M(5 0 2.1, 6 1 2.1)) libspatialite-4.1.1/test/sql_stmt_tests/mbr12.testcase0000664000175000017500000000043012163502134020007 00000000000000MbrEqual - Line + Point on :memory: #use in-memory database SELECT MbrEqual(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(1 2)")); 1 # rows (not including the header row) 1 # columns MbrEqual(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(1 2)")) # header 0libspatialite-4.1.1/test/sql_stmt_tests/shiftcoords9.testcase0000664000175000017500000000046512163502134021514 00000000000000shiftcoords - Linestring XYZ :memory: #use in-memory database SELECT AsText(ShiftCoords(GeomFromText("LINESTRINGZ(1 2 10, 3 4 10)"), 1.4, 3.9)); 1 # rows (not including the header row) 1 # columns AsText(ShiftCoords(GeomFromText("LINESTRINGZ(1 2 10, 3 4 10)"), 1.4, 3.9)) LINESTRING Z(2.4 5.9 10, 4.4 7.9 10) libspatialite-4.1.1/test/sql_stmt_tests/geomfromtext7.testcase0000664000175000017500000000041512163502134021676 00000000000000geomfromtext7 :memory: #use in-memory database SELECT AsEWkt(GeomFromText("POINT(-71.1043443253471 42.315067601582900)", "WGS-84")); 1 # rows (not including the header row) 1 # columns AsEWkt(GeomFromText("POINT(-71.1043443253471 42.315067601582900)", "WGS-84")) (NULL)libspatialite-4.1.1/test/sql_stmt_tests/collect43.testcase0000664000175000017500000000120712163502133020662 00000000000000collect - PolygonZ, Polygon :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POLYGONZ((1 2 4, 3 4 2, 3 2 3, 1 2 4),(1.5 2.5 4, 2.5 3.5 3, 2.5 2.3 3, 1.5 2.5 4))"), GeomFromText("POLYGON((4 5, 1 2, 4 2, 4 5),(2 3, 3 4, 3 3, 2 3))"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POLYGONZ((1 2 4, 3 4 2, 3 2 3, 1 2 4),(1.5 2.5 4, 2.5 3.5 3, 2.5 2.3 3, 1.5 2.5 4))"), GeomFromText("POLYGON((4 5, 1 2, 4 2, 4 5),(2 3, 3 4, 3 3, 2 3))"))) MULTIPOLYGON Z(((1 2 4, 3 4 2, 3 2 3, 1 2 4), (1.5 2.5 4, 2.5 3.5 3, 2.5 2.3 3, 1.5 2.5 4)), ((4 5 0, 1 2 0, 4 2 0, 4 5 0), (2 3 0, 3 4 0, 3 3 0, 2 3 0))) libspatialite-4.1.1/test/sql_stmt_tests/geomtype8.testcase0000664000175000017500000000044612163502134021014 00000000000000geometrytype - LINESTRINGZ :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom) from (SELECT GeomFromText("LINESTRINGZ(4 0 1, 4 4 2, 8 4 3)") as geom) dummy; 1 # rows (not including the header row) 2 # columns GeometryType(geom) CoordDimension(geom) LINESTRING Z XYZlibspatialite-4.1.1/test/sql_stmt_tests/lhr6.testcase0000664000175000017500000000244412163502134017746 00000000000000forceLHR - GeometryCollection XYZM :memory: #use in-memory database SELECT AsEWKT(ST_ForceLHR(GeomFromText("GEOMETRYCOLLECTIONZM(POINTZM(1 2 100 10), LINESTRINGZM(3 4 101 10, 5 6 102 11, 7 8 103 12, 9 9 194 13), POLYGONZM((10 10 101 11, 14 10 102 12, 12 12 103 13, 10 10 101 11), (11 10.5 100 10, 13 10.5 101 11, 12 11.5 102 12, 11 10.5 100 10)), POLYGONZM((20 20 100 10, 24 20 101 11, 22 18 102 12, 20 20 100 10), (21 19.5 101 11, 23 19.5 102 12, 22 18.5 103 13, 21 19.5 101 11)))", 4326))); 1 # rows (not including the header row) 1 # columns AsEWKT(ST_ForceLHR(GeomFromText("GEOMETRYCOLLECTIONZM(POINTZM(1 2 100 10), LINESTRINGZM(3 4 101 10, 5 6 102 11, 7 8 103 12, 9 9 194 13), POLYGONZM((10 10 101 11, 14 10 102 12, 12 12 103 13, 10 10 101 11), (11 10.5 100 10, 13 10.5 101 11, 12 11.5 102 12, 11 10.5 100 10)), POLYGONZM((20 20 100 10, 24 20 101 11, 22 18 102 12, 20 20 100 10), (21 19.5 101 11, 23 19.5 102 12, 22 18.5 103 13, 21 19.5 101 11)))", 4326))) SRID=4326;GEOMETRYCOLLECTION(POINT(1 2 100 10),LINESTRING(3 4 101 10,5 6 102 11,7 8 103 12,9 9 194 13),POLYGON((10 10 101 11,12 12 103 13,14 10 102 12,10 10 101 11),(11 10.5 100 10,13 10.5 101 11,12 11.5 102 12,11 10.5 100 10)),POLYGON((20 20 100 10,24 20 101 11,22 18 102 12,20 20 100 10),(21 19.5 101 11,22 18.5 103 13,23 19.5 102 12,21 19.5 101 11))) libspatialite-4.1.1/test/sql_stmt_tests/compressgeometry24.testcase0000664000175000017500000000052212163502133022642 00000000000000CompressGeometry - LINESTRING Z :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("LINESTRINGZ(1 2 100, 3 4 101, 5 6 102)", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("LINESTRINGZ(1 2 100, 3 4 101, 5 6 102)", 4326))) LINESTRING Z(1 2 100, 3 4 101, 5 6 102) libspatialite-4.1.1/test/sql_stmt_tests/gml1.testcase0000664000175000017500000000107312163502134017730 00000000000000GML MultiPoint Z: excessive precision :memory: #use in-memory database SELECT AsGML(3, GeomFromText("MULTIPOINTZ(1 2 100, 3 4 100)", 4326), 44); 1 # rows (not including the header row) 1 # columns AsGML(3, GeomFromText("MULTIPOINTZ(1 2 100, 3 4 100)", 4326), 44) 1 2 1003 4 100:0 # trailing ":0" required to avoid truncation !!! libspatialite-4.1.1/test/sql_stmt_tests/fromewkt19.testcase0000664000175000017500000000122112163502134021073 00000000000000fromewkt19 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTIONM(MULTIPOLYGONM(((0 0 9, 5 0 9, 5 5 9, 0 5 9, 0 0 9), (1 1 9, 2 1 9, 2 2 9, 1 2 9, 1 1 9)), ((10 10 9, 11 10 9, 11 11 9, 10 11 9, 10 10 9))))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTIONM(MULTIPOLYGONM(((0 0 9, 5 0 9, 5 5 9, 0 5 9, 0 0 9), (1 1 9, 2 1 9, 2 2 9, 1 2 9, 1 1 9)), ((10 10 9, 11 10 9, 11 11 9, 10 11 9, 10 10 9))))')); GEOMETRYCOLLECTION M(POLYGON M((0 0 9, 5 0 9, 5 5 9, 0 5 9, 0 0 9), (1 1 9, 2 1 9, 2 2 9, 1 2 9, 1 1 9)), POLYGON M((10 10 9, 11 10 9, 11 11 9, 10 11 9, 10 10 9))) libspatialite-4.1.1/test/sql_stmt_tests/makepointm-null3.testcase0000664000175000017500000000032312163502134022264 00000000000000makepointm-null3 :memory: #use in-memory database SELECT AsText(MakePointM(26.0, "world", 18.63, 4326)); 1 # rows (not including the header row) 1 # columns AsText(MakePointM(26.0, "world", 18.63, 4326)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/mbr16.testcase0000664000175000017500000000051412163502134020016 00000000000000MbrEqual - Line + Different Polygon :memory: #use in-memory database SELECT MbrEqual(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POLYGON((0 0, 0 -2, 1 -2, 1 0, 0 0))")); 1 # rows (not including the header row) 1 # columns MbrEqual(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POLYGON((0 0, 0 -2, 1 -2, 1 0, 0 0))")) 0libspatialite-4.1.1/test/sql_stmt_tests/scalecoords12.testcase0000664000175000017500000000213312163502134021532 00000000000000scale coords - POLYGONM with inner ring :memory: #use in-memory database SELECT AsText(ScaleCoords(geom, 0)), AsText(ScaleCoords(geom, 0.0)), AsText(ScaleCoords(geom, 2, 3.0)), AsText(ScaleCoords(geom, 1.0, -1)), ScaleCoords(zeroblob(20), 10), ScaleCoords(geom, "hello"), ScaleCoords(geom, 1, "hello"), ScaleCoords("foo", 2) FROM (SELECT GeomFromText("POLYGONM((0 0 1, 0 4 1, 4 4 1, 4 0 1, 0 0 1),(1 2 1, 1 3 1, 2 3 1, 2 2 1, 1 2 1))") as geom) dummy; 1 # rows (not including the header row) 8 # columns AsText(ScaleCoords(geom, 0)) AsText(ScaleCoords(geom, 0.0)) AsText(ScaleCoords(geom, 2, 3.0)) AsText(ScaleCoords(geom, 1.0, -1)) ScaleCoords(zeroblob(20), 10) ScaleCoords(geom, "hello") ScaleCoords(geom, 1, "hello") ScaleCoords("foo", 2) POLYGON M((0 0 1, 0 0 1, 0 0 1, 0 0 1, 0 0 1), (0 0 1, 0 0 1, 0 0 1, 0 0 1, 0 0 1)) POLYGON M((0 0 1, 0 0 1, 0 0 1, 0 0 1, 0 0 1), (0 0 1, 0 0 1, 0 0 1, 0 0 1, 0 0 1)) POLYGON M((0 0 1, 0 12 1, 8 12 1, 8 0 1, 0 0 1), (2 6 1, 2 9 1, 4 9 1, 4 6 1, 2 6 1)) POLYGON M((0 0 1, 0 -4 1, 4 -4 1, 4 0 1, 0 0 1), (1 -2 1, 1 -3 1, 2 -3 1, 2 -2 1, 1 -2 1)) (NULL) (NULL) (NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/buildmbr10.testcase0000664000175000017500000000037312163502133021032 00000000000000buildmbr - float args no Srid :memory: #use in-memory database SELECT AsText(BuildMbr(5.5, 6.6, 7.7, 8.8)) 1 # rows (not including the header row) 1 # columns AsText(BuildMbr(5.5, 6.6, 7.7, 8.8)) POLYGON((5.5 6.6, 7.7 6.6, 7.7 8.8, 5.5 8.8, 5.5 6.6)) libspatialite-4.1.1/test/sql_stmt_tests/scalecoords9.testcase0000664000175000017500000000171012163502134021460 00000000000000scale coords - POLYGONZM :memory: #use in-memory database SELECT AsText(ScaleCoords(geom, 0)), AsText(ScaleCoords(geom, 0.0)), AsText(ScaleCoords(geom, 2, 3.0)), AsText(ScaleCoords(geom, 1.0, -1)), ScaleCoords(zeroblob(20), 10), ScaleCoords(geom, "hello"), ScaleCoords(geom, 1, "hello"), ScaleCoords("foo", 2) FROM (SELECT GeomFromText("POLYGONZM((1 2 1 0 , 1 3 1 2, 2 3 2 4, 2 2 2 6, 1 2 1 0))") as geom) dummy; 1 # rows (not including the header row) 8 # columns AsText(ScaleCoords(geom, 0)) AsText(ScaleCoords(geom, 0.0)) AsText(ScaleCoords(geom, 2, 3.0)) AsText(ScaleCoords(geom, 1.0, -1)) ScaleCoords(zeroblob(20), 10) ScaleCoords(geom, "hello") ScaleCoords(geom, 1, "hello") ScaleCoords("foo", 2) POLYGON ZM((0 0 1 0, 0 0 1 2, 0 0 2 4, 0 0 2 6, 0 0 1 0)) POLYGON ZM((0 0 1 0, 0 0 1 2, 0 0 2 4, 0 0 2 6, 0 0 1 0)) POLYGON ZM((2 6 1 0, 2 9 1 2, 4 9 2 4, 4 6 2 6, 2 6 1 0)) POLYGON ZM((1 -2 1 0, 1 -3 1 2, 2 -3 2 4, 2 -2 2 6, 1 -2 1 0)) (NULL) (NULL) (NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geometryn20.testcase0000664000175000017500000000115012163502134021237 00000000000000Geometry N - multipolygonZM - second poly :memory: #use in-memory database SELECT AsText(GeometryN(GeomFromText("MULTIPOLYGONZM(((0 0 1 2, 10 0 1 2, 10 10 1 2, 0 10 1 2, 0 0 1 2),(2 2 2 3, 8 2 2 3, 8 8 2 3, 2 8 2 3, 2 2 2 3)),((0 0 3 4, -10 0 3 4, -10 -10 3 4, 0 -10 3 4, 0 0 3 4)))"), 2)) 1 # rows (not including the header row) 1 # columns AsText(GeometryN(GeomFromText("MULTIPOLYGONZM(((0 0 1 2, 10 0 1 2, 10 10 1 2, 0 10 1 2, 0 0 1 2),(2 2 2 3, 8 2 2 3, 8 8 2 3, 2 8 2 3, 2 2 2 3)),((0 0 3 4, -10 0 3 4, -10 -10 3 4, 0 -10 3 4, 0 0 3 4)))"), 2)) POLYGON ZM((0 0 3 4, -10 0 3 4, -10 -10 3 4, 0 -10 3 4, 0 0 3 4)) libspatialite-4.1.1/test/sql_stmt_tests/togars5.testcase0000664000175000017500000000022412163502134020451 00000000000000togars - non-blob :memory: #use in-memory database SELECT ToGARS("hello") 1 # rows (not including the header row) 1 # columns ToGARS("hello") (NULL)libspatialite-4.1.1/test/sql_stmt_tests/translate7.testcase0000664000175000017500000000040412163502134021151 00000000000000translate - float shift :memory: #use in-memory database SELECT AsText(ST_Translate(GeomFromText("POINT(1 2)"), 1.4, 3.9, 5.3)); 1 # rows (not including the header row) 1 # columns AsText(ST_Translate(GeomFromText("POINT(1 2)"), 1.4, 3.9, 5.3)) POINT(2.4 5.9) libspatialite-4.1.1/test/sql_stmt_tests/geomtype49.testcase0000664000175000017500000000065412163502134021102 00000000000000geometrytype - GEOMETRYCOLLECTIONM - one POLYGONM :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("GEOMETRYCOLLECTIONM(POLYGONM((30 20 1, 10 40 1, 45 40 1, 30 20 1)))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) GEOMETRYCOLLECTION M XYM GEOMETRYCOLLECTIONlibspatialite-4.1.1/test/sql_stmt_tests/extractmultilinestring1.testcase0000664000175000017500000000031712163502134023775 00000000000000extractmultilinestring - bad blob :memory: #use in-memory database SELECT ExtractMultiLinestring(zeroblob(99)) 1 # rows (not including the header row) 1 # columns ExtractMultiLinestring(zeroblob(99)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/casttoblob10.testcase0000664000175000017500000000030212163502133021356 00000000000000CastToBlob() - Invalid (1) hex_input :memory: #use in-memory database SELECT CastToBlob('0129abCFzZ', 1) 1 # rows (not including the header row) 1 # columns CastToBlob('0129abCFzZ', 1) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geomtype43.testcase0000664000175000017500000000062712163502134021074 00000000000000geometrytype - MULTIPOLYGONZM - one polygon :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("MULTIPOLYGONZM(((30 20 1 2, 10 40 1 2, 45 40 1 2, 30 20 1 2)))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) MULTIPOLYGON ZM XYZM MULTIPOLYGONlibspatialite-4.1.1/test/sql_stmt_tests/sanitizeGeometry3.testcase0000664000175000017500000000027212163502134022515 00000000000000Sanitize Geometry - non-blob :memory: #use in-memory database SELECT SanitizeGeometry("hell0o"); 1 # rows (not including the header row) 1 # columns SanitizeGeometry("hell0o") (NULL) libspatialite-4.1.1/test/sql_stmt_tests/collect42.testcase0000664000175000017500000000131312163502133020657 00000000000000collect - PolygonZ, PolygonM :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POLYGONZ((1 2 4, 3 4 2, 3 2 3, 1 2 4),(1.5 2.5 4, 2.5 3.5 3, 2.5 2.3 3, 1.5 2.5 4))"), GeomFromText("POLYGONM((4 5 4, 1 2 5, 4 2 3, 4 5 4),(2 3 1, 3 4 2, 3 3 3, 2 3 1))"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POLYGONZ((1 2 4, 3 4 2, 3 2 3, 1 2 4),(1.5 2.5 4, 2.5 3.5 3, 2.5 2.3 3, 1.5 2.5 4))"), GeomFromText("POLYGONM((4 5 4, 1 2 5, 4 2 3, 4 5 4),(2 3 1, 3 4 2, 3 3 3, 2 3 1))"))) MULTIPOLYGON ZM(((1 2 4 0, 3 4 2 0, 3 2 3 0, 1 2 4 0), (1.5 2.5 4 0, 2.5 3.5 3 0, 2.5 2.3 3 0, 1.5 2.5 4 0)), ((4 5 0 4, 1 2 0 5, 4 2 0 3, 4 5 0 4), (2 3 0 1, 3 4 0 2, 3 3 0 3, 2 3 0 1))) libspatialite-4.1.1/test/sql_stmt_tests/casttopoint6.testcase0000664000175000017500000000035312163502133021524 00000000000000casttopoint - LINESTRING, no points :memory: #use in-memory database SELECT CastToPoint(GeomFromText("LINESTRING(4 3, 4 1)")) 1 # rows (not including the header row) 1 # columns CastToPoint(GeomFromText("LINESTRING(4 3, 4 1)")) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/fromgml7.testcase0000664000175000017500000000151112163502134020617 00000000000000FromGML - Polygon v2 :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('0,0 5,0 5,5 0,5 0,01,1 2,1 2,2 1,2 1,1')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('0,0 5,0 5,5 0,5 0,01,1 2,1 2,2 1,2 1,1')):0 SRID=4326;POLYGON((0 0,5 0,5 5,0 5,0 0),(1 1,2 1,2 2,1 2,1 1)) libspatialite-4.1.1/test/sql_stmt_tests/fromgml35.testcase0000664000175000017500000000102412163502134020677 00000000000000FromGML - poslist polygon :memory: #use in-memory database SELECT AsText(GeomFromGml('0 0 -100 0 -100 100 0 100 0 0')) 1 # rows (not including the header row) 1 # columns AsText(GeomFromGml('0 0 -100 0 -100 100 0 100 0 0')):0 POLYGON((0 0, -100 0, -100 100, 0 100, 0 0)) libspatialite-4.1.1/test/sql_stmt_tests/st_y4.testcase0000664000175000017500000000036312163502134020133 00000000000000ST_Y4 :memory: #use in-memory database SELECT ST_Y(GeomFromText("LINESTRINGZ(136 -35 635.2, 135.2 -34.5 675.1)")); 1 # rows (not including the header row) 1 # columns ST_Y(GeomFromText("LINESTRINGZ(136 -35 635.2, 135.2 -34.5 675.1)")) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/sanitizeGeometry14.testcase0000664000175000017500000000136712163502134022605 00000000000000Sanitize Geometry - POLYGONZ with interior :memory: #use in-memory database SELECT AsText(SanitizeGeometry(GeomFromText("POLYGONZ((-10 -10 1, -10 -10 1, 10 -10 2, 10 10 3, -10 10 4, -10 -10 1, -10 -10 1),(-6 -6 2, -6 -5 3, -5 -5 3, -5 -5 4, -5 -5 4, -5 -6 9, -6 -6 2),(6 6 0, 5 6 0, 5 6 0, 5 5 0, 6 5 0, 6 6 0))"))) 1 # rows (not including the header row) 1 # columns AsText(SanitizeGeometry(GeomFromText("POLYGONZ((-10 -10 1, -10 -10 1, 10 -10 2, 10 10 3, -10 10 4, -10 -10 1, -10 -10 1),(-6 -6 2, -6 -5 3, -5 -5 3, -5 -5 4, -5 -5 4, -5 -6 9, -6 -6 2),(6 6 0, 5 6 0, 5 6 0, 5 5 0, 6 5 0, 6 6 0))"))) POLYGON Z((-10 -10 1, 10 -10 2, 10 10 3, -10 10 4, -10 -10 1), (-6 -6 2, -6 -5 3, -5 -5 3, -5 -5 4, -5 -6 9, -6 -6 2), (6 6 0, 5 6 0, 5 5 0, 6 5 0, 6 6 0)) libspatialite-4.1.1/test/sql_stmt_tests/addpoint15.testcase0000664000175000017500000000041512163502133021036 00000000000000ST_AddPoint() - invalid index :memory: #use in-memory database SELECT ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1), 2) 1 # rows (not including the header row) 1 # columns ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1), 2) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/st_z8.testcase0000664000175000017500000000025612163502134020141 00000000000000ST_Z8 :memory: #use in-memory database SELECT ST_Z(MakePointM(136, -35, 635.2)); 1 # rows (not including the header row) 1 # columns ST_Z(MakePointM(136, -35, 635.2)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/dissolve30.testcase0000664000175000017500000000131112163502133021055 00000000000000dissolve - Overlap points POLYGON :memory: #use in-memory database SELECT AsText(DissolveSegments(geom)),AsText(DissolvePoints(geom)) from (SELECT GeomFromText("POLYGON((-10 0, -10 10, -10 10, 10 10, 10 10, 10 10, 10 -10, -10 -10, -9 -9, -10 0),(0 1, 0 2, 1 2, 1 2, 2 3, 1 2, 0 1))") as geom) dummy; 1 # rows (not including the header row) 2 # columns AsText(DissolveSegments(geom)) AsText(DissolvePoints(geom)) MULTILINESTRING((-10 0, -10 10), (-10 10, 10 10), (10 10, 10 -10), (10 -10, -10 -10), (-10 -10, -9 -9), (-9 -9, -10 0), (0 1, 0 2), (0 2, 1 2), (1 2, 2 3), (2 3, 1 2), (1 2, 0 1)) MULTIPOINT(-10 0, -10 10, -10 10, 10 10, 10 10, 10 10, 10 -10, -10 -10, -9 -9, -10 0, 0 1, 0 2, 1 2, 1 2, 2 3, 1 2, 0 1) libspatialite-4.1.1/test/sql_stmt_tests/fromgml33.testcase0000664000175000017500000000072612163502134020705 00000000000000FromGML - multipoint, single pointZ, SRID, no namespace :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('1,2,3.2')) 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('1,2,3.2')):0 SRID=3213;MULTIPOINT(1 2 3.2) libspatialite-4.1.1/test/sql_stmt_tests/collect46.testcase0000664000175000017500000000123712163502133020670 00000000000000collect - Polygon, PolygonM :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POLYGON((1 2, 3 4, 3 2, 1 2),(1.5 2.5, 2.5 3.5, 2.5 2.3, 1.5 2.5))"), GeomFromText("POLYGONM((4 5 3.2, 1 2 4.6, 4 2 3.1, 4 5 3.2),(2 3 4, 3 4 1, 3 3 1, 2 3 4))"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POLYGON((1 2, 3 4, 3 2, 1 2),(1.5 2.5, 2.5 3.5, 2.5 2.3, 1.5 2.5))"), GeomFromText("POLYGONM((4 5 3.2, 1 2 4.6, 4 2 3.1, 4 5 3.2),(2 3 4, 3 4 1, 3 3 1, 2 3 4))"))) MULTIPOLYGON M(((1 2 0, 3 4 0, 3 2 0, 1 2 0), (1.5 2.5 0, 2.5 3.5 0, 2.5 2.3 0, 1.5 2.5 0)), ((4 5 3.2, 1 2 4.6, 4 2 3.1, 4 5 3.2), (2 3 4, 3 4 1, 3 3 1, 2 3 4))) libspatialite-4.1.1/test/sql_stmt_tests/ismeasured1.testcase0000664000175000017500000000022712163502134021312 00000000000000IsMeasured- non-blob :memory: #use in-memory database SELECT ST_IsMeasured(3) 1 # rows (not including the header row) 1 # columns ST_IsMeasured(3) -1 libspatialite-4.1.1/test/sql_stmt_tests/ewkb9.testcase0000664000175000017500000000173212163502134020113 00000000000000EWkb: Polygon XYZM :memory: #use in-memory database SELECT AsText(GeomFromEWkb('01030000E0E61000000200000005000000000000000000244000000000000024400000000000005940000000000000F03F0000000000002E400000000000002440000000000040594000000000000000400000000000002E400000000000002E400000000000805940000000000000084000000000000024400000000000002E400000000000C059400000000000001040000000000000244000000000000024400000000000005940000000000000F03F05000000000000000000284000000000000028400000000000405940000000000000F03F0000000000002A4000000000000028400000000000805940000000000000F03F0000000000002A400000000000002A400000000000C05940000000000000084000000000000028400000000000002A400000000000005A400000000000001040000000000000284000000000000028400000000000405940000000000000F03F')) AS wkt_geom; 1 # rows (not including the header row) 1 # columns wkt_geom POLYGON ZM((10 10 100 1, 15 10 101 2, 15 15 102 3, 10 15 103 4, 10 10 100 1), (12 12 101 1, 13 12 102 1, 13 13 103 3, 12 13 104 4, 12 12 101 1)) libspatialite-4.1.1/test/sql_stmt_tests/normalizelonlat14.testcase0000664000175000017500000000037712163502134022455 00000000000000normalizelonlat- in range 290 :memory: #use in-memory database SELECT AsText(NormalizeLonLat(GeomFromText("POINT(4 290)", 4326))) 1 # rows (not including the header row) 1 # columns AsText(NormalizeLonLat(GeomFromText("POINT(4 290)", 4326))) POINT(4 -70) libspatialite-4.1.1/test/sql_stmt_tests/fromgeojson32.testcase0000664000175000017500000000056212163502134021567 00000000000000FromGeoJSON - invalid polygon :memory: #use in-memory database SELECT GeomFromGeoJSON('{"type":"Polygon","coordinates":[[[1,2],[4,5],[2,2],[1,2]],[[1.5,2.5],[3.5,4.5],[2.5,3],[1.5,2.5]]]'); 1 # rows (not including the header row) 1 # columns GeomFromGeoJSON('{"type":"Polygon","coordinates":[[[1,2],[4,5],[2,2],[1,2]],[[1.5,2.5],[3.5,4.5],[2.5,3],[1.5,2.5]]]'):0 (NULL) libspatialite-4.1.1/test/sql_stmt_tests/addpoint25.testcase0000664000175000017500000000051612163502133021041 00000000000000ST_AddPoint() - append (no index) ZM :memory: #use in-memory database SELECT AsText(AddPoint(GeomFromText('LINESTRINGZM(0 0 1 3, 1 0 2 3)'), MakePoint(1, 1))) 1 # rows (not including the header row) 1 # columns AsText(AddPoint(GeomFromText('LINESTRINGZM(0 0 1 3, 1 0 2 3)'), MakePoint(1, 1))) LINESTRING ZM(0 0 1 3, 1 0 2 3, 1 1 0 0) libspatialite-4.1.1/test/sql_stmt_tests/makecircle3.testcase0000664000175000017500000000027312163502134021253 00000000000000makecircle3 - BLOB cx :memory: #use in-memory database SELECT MakeCircle(zeroblob(4), 0, 100); 1 # rows (not including the header row) 1 # columns MakeCircle(zeroblob(4), 0, 100) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/collect48.testcase0000664000175000017500000000140712163502133020671 00000000000000collect - PolygonM, PolygonZM :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POLYGONM((1 2 4, 3 4 2, 3 2 3, 1 2 4),(1.5 2.5 4, 2.5 3.5 3, 2.5 2.3 3, 1.5 2.5 4))"), GeomFromText("POLYGONZM((4 5 3.2 4, 1 2 4.6 5, 4 2 3.1 3, 4 5 3.2 4),(2 3 4 1, 3 4 1 2, 3 3 1 3, 2 3 4 1))"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POLYGONM((1 2 4, 3 4 2, 3 2 3, 1 2 4),(1.5 2.5 4, 2.5 3.5 3, 2.5 2.3 3, 1.5 2.5 4))"), GeomFromText("POLYGONZM((4 5 3.2 4, 1 2 4.6 5, 4 2 3.1 3, 4 5 3.2 4),(2 3 4 1, 3 4 1 2, 3 3 1 3, 2 3 4 1))"))); MULTIPOLYGON ZM(((1 2 0 4, 3 4 0 2, 3 2 0 3, 1 2 0 4), (1.5 2.5 0 4, 2.5 3.5 0 3, 2.5 2.3 0 3, 1.5 2.5 0 4)), ((4 5 3.2 4, 1 2 4.6 5, 4 2 3.1 3, 4 5 3.2 4), (2 3 4 1, 3 4 1 2, 3 3 1 3, 2 3 4 1))) libspatialite-4.1.1/test/sql_stmt_tests/makecircularsector18.testcase0000664000175000017500000000035412163502134023124 00000000000000makecircularsector18 - BLOB srid :memory: #use in-memory database SELECT MakeCircularSector(0, 0, 100, 30, 60, zeroblob(4)); 1 # rows (not including the header row) 1 # columns MakeCircularSector(0, 0, 100, 30, 60, zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/casttogeometrycollection4.testcase0000664000175000017500000000042612163502133024301 00000000000000casttogeometrycollection - POINT :memory: #use in-memory database SELECT AsText(CastToGeometryCollection(GeomFromText("POINT(3 1)"))) 1 # rows (not including the header row) 1 # columns AsText(CastToGeometryCollection(GeomFromText("POINT(3 1)"))) GEOMETRYCOLLECTION(POINT(3 1)) libspatialite-4.1.1/test/sql_stmt_tests/geomconstraints27.testcase0000664000175000017500000000102512163502134022455 00000000000000geometry constraints - GEOMETRYCOLLECTION :memory: #use in-memory database SELECT GeometryConstraints(GeomFromText("GEOMETRYCOLLECTIONZM(MULTIPOLYGONZM(((0 0 4 0, 1 0 4 0, 1 1 4 0, 0 0 4 0)),((0 0 4 0, -1 0 4 0, -1 -1 4 0, 0 0 4 0))))", 4326), "GEOMETRYCOLLECTION", 4326, "XYZM") 1 # rows (not including the header row) 1 # columns GeometryConstraints(GeomFromText("GEOMETRYCOLLECTIONZM(MULTIPOLYGONZM(((0 0 4 0, 1 0 4 0, 1 1 4 0, 0 0 4 0)),((0 0 4 0, -1 0 4 0, -1 -1 4 0, 0 0 4 0))))", 4326), "GEOMETRYCOLLECTION", 4326, "XYZM") 1 libspatialite-4.1.1/test/sql_stmt_tests/rotatecoords3.testcase0000664000175000017500000000132412163502134021662 00000000000000rotate coords - LINESTRING :memory: #use in-memory database SELECT AsText(RotateCoords(geom, 0)), AsText(RotateCoords(geom, 90.0)), AsText(RotateCoords(geom, 180.0)), AsText(RotateCoords(geom, -90)), RotateCoords(zeroblob(20), 10), RotateCoords(geom, "hello"), RotateCoords("foo", 30) FROM (SELECT GeomFromText("LINESTRING(0 0, 1 1)") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(RotateCoords(geom, 0)) AsText(RotateCoords(geom, 90.0)) AsText(RotateCoords(geom, 180.0)) AsText(RotateCoords(geom, -90)) RotateCoords(zeroblob(20), 10) RotateCoords(geom, "hello") RotateCoords("foo", 30) LINESTRING(0 0, 1 1) LINESTRING(0 0, 1 -1) LINESTRING(0 0, -1 -1) LINESTRING(0 0, -1 1) (NULL) (NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/badEWKT8.testcase0000664000175000017500000000034712163502133020403 00000000000000bad EWKT: illegal GeometryCollection :memory: #use in-memory database SELECT GeomFromEWKT("SRID=4326;GEOMETRYCOLLECTION()"); 1 # rows (not including the header row) 1 # columns GeomFromEWKT("SRID=4326;GEOMETRYCOLLECTION()") (NULL) libspatialite-4.1.1/test/sql_stmt_tests/envintersects2.testcase0000664000175000017500000000034312163502134022045 00000000000000ST_EnvIntersects - bad arg #2 :memory: #use in-memory database SELECT ST_EnvIntersects(zeroblob(50), "alpha", 2, 3, 3) 1 # rows (not including the header row) 1 # columns ST_EnvIntersects(zeroblob(50), "alpha", 2, 3, 3) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geomtype47.testcase0000664000175000017500000000061312163502134021073 00000000000000geometrytype - MULTIPOLYGONZ - one polygon :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("MULTIPOLYGONZ(((30 20 1, 10 40 1, 45 40 1, 30 20 1)))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) MULTIPOLYGON Z XYZ MULTIPOLYGONlibspatialite-4.1.1/test/sql_stmt_tests/fromgeojson3.testcase0000664000175000017500000000030312163502134021476 00000000000000FromGeoJSON - bad text :memory: #use in-memory database SELECT AsText(GeomFromGeoJSON("not json")); 1 # rows (not including the header row) 1 # columns AsText(GeomFromGeoJSON("not json")) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/casttotext1.testcase0000664000175000017500000000023112163502133021345 00000000000000CastToText() - NULL :memory: #use in-memory database SELECT CastToText(NULL) 1 # rows (not including the header row) 1 # columns CastToText(NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makeline25.testcase0000664000175000017500000000042312163502134021022 00000000000000makeline - MULTIPOINT (XY valid - direct order) :memory: #use in-memory database SELECT AsText(MakeLine(GeomFromText("MULTIPOINT(1 2,3 4)"), 1)) 1 # rows (not including the header row) 1 # columns AsText(MakeLine(GeomFromText("MULTIPOINT(1 2,3 4)"), 1)) LINESTRING(1 2, 3 4) libspatialite-4.1.1/test/sql_stmt_tests/geomfromtext9.testcase0000664000175000017500000000041312163502134021676 00000000000000geomfromtext9 :memory: #use in-memory database SELECT AsEWkt(GeomFromText("POINT(-71.1043443253471 42.315067601582900 45)", 4326)); 1 # rows (not including the header row) 1 # columns AsEWkt(GeomFromText("POINT(-71.1043443253471 42.315067601582900 45)", 4326)) (NULL)libspatialite-4.1.1/test/sql_stmt_tests/reflectcoords15.testcase0000664000175000017500000000124012163502134022070 00000000000000reflectcoords15 :memory: #use in-memory database SELECT AsText(ReflectCoords(GeomFromText("POLYGONZM((-10 -10 100 1, -20 -10 101 2, -20 -20 102 3, -20 -11 103 4, -10 -10 100 1), (-11 -11 100 1, -12 -11 101 2, -12 -12 102 3, -11 -12 103 4, -11 -11 100 1))"), 1, 1)); 1 # rows (not including the header row) 1 # columns AsText(ReflectCoords(GeomFromText("POLYGONZM((-10 -10 100 1, -20 -10 101 2, -20 -20 102 3, -20 -11 103 4, -10 -10 100 1), (-11 -11 100 1, -12 -11 101 2, -12 -12 102 3, -11 -12 103 4, -11 -11 100 1))"), 1, 1)) POLYGON ZM((10 10 100 1, 20 10 101 2, 20 20 102 3, 20 11 103 4, 10 10 100 1), (11 11 100 1, 12 11 101 2, 12 12 102 3, 11 12 103 4, 11 11 100 1)) libspatialite-4.1.1/test/sql_stmt_tests/st_m5.testcase0000664000175000017500000000036312163502134020120 00000000000000ST_M5 :memory: #use in-memory database SELECT ST_M(GeomFromText("LINESTRINGZ(136 -35 635.2, 135.2 -34.5 675.1)")); 1 # rows (not including the header row) 1 # columns ST_M(GeomFromText("LINESTRINGZ(136 -35 635.2, 135.2 -34.5 675.1)")) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/setpoint7.testcase0000664000175000017500000000040412163502134021021 00000000000000ST_SetPoint() - DOUBLE index :memory: #use in-memory database SELECT ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1.5, NULL) 1 # rows (not including the header row) 1 # columns ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1.5, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makeellipticsector21.testcase0000664000175000017500000000036612163502134023122 00000000000000makeellipticsector21 - BLOB srid :memory: #use in-memory database SELECT MakeEllipticSector(0, 0, 100, 200, 30, 60, zeroblob(4)); 1 # rows (not including the header row) 1 # columns MakeEllipticSector(0, 0, 100, 200, 30, 60, zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/normalizelonlat24.testcase0000664000175000017500000000117212163502134022450 00000000000000normalizelonlat- out of range negative lat polygonz :memory: #use in-memory database SELECT AsText(NormalizeLonLat(GeomFromText("POLYGONZ((120 -140 5, 120 -150 20, 130 -150 20, 130 -140 2, 120 -140 5), (122 -142 0, 124 -142 1, 124 -144 2, 122 -144 3, 122 -142 0))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(NormalizeLonLat(GeomFromText("POLYGONZ((120 -140 5, 120 -150 20, 130 -150 20, 130 -140 2, 120 -140 5), (122 -142 0, 124 -142 1, 124 -144 2, 122 -144 3, 122 -142 0))", 4326))) POLYGON Z((120 -40 5, 120 -30 20, 130 -30 20, 130 -40 2, 120 -40 5), (122 -38 0, 124 -38 1, 124 -36 2, 122 -36 3, 122 -38 0)) libspatialite-4.1.1/test/sql_stmt_tests/rtreealign2.testcase0000664000175000017500000000030612163502134021304 00000000000000rtreealign - non-int second arg :memory: #use in-memory database SELECT RTreeAlign("notreal", "non-int", 2) 1 # rows (not including the header row) 1 # columns RTreeAlign("notreal", "non-int", 2) -1libspatialite-4.1.1/test/sql_stmt_tests/geomfromkml4.testcase0000664000175000017500000000247512163502134021502 00000000000000From KML - LINESTRING Z :memory: SELECT AsText(GeomFromKML(" -112.2550785337791,36.07954952145647,2357 -112.2549277039738,36.08117083492122,2357 -112.2552505069063,36.08260761307279,2357 -112.2564540158376,36.08395660588506,2357 -112.2580238976449,36.08511401044813,2357 -112.2595218489022,36.08584355239394,2357 -112.262073428656,36.08626019085147,2357 -112.2633204928495,36.08621519860091,2357 -112.2644963846444,36.08627897945274,2357 -112.2656969554589,36.08649599090644,2357 ")) 1 # rows 1 # column AsText(GeomFromKML(" -112.2550785337791,36.07954952145647,2357 -112.2549277039738,36.08117083492122,2357 -112.2552505069063,36.08260761307279,2357 -112.2564540158376,36.08395660588506,2357 -112.2580238976449,36.08511401044813,2357 -112.2595218489022,36.08584355239394,2357 -112.262073428656,36.08626019085147,2357 -112.2633204928495,36.08621519860091,2357 -112.2644963846444,36.08627897945274,2357 -112.2656969554589,36.08649599090644,2357 ")) LINESTRING Z(-112.255079 36.07955 2357, -112.254928 36.081171 2357, -112.255251 36.082608 2357, -112.256454 36.083957 2357, -112.258024 36.085114 2357, -112.259522 36.085844 2357, -112.262073 36.08626 2357, -112.26332 36.086215 2357, -112.264496 36.086279 2357, -112.265697 36.086496 2357)libspatialite-4.1.1/test/sql_stmt_tests/compressgeometry30.testcase0000664000175000017500000000104612163502133022641 00000000000000CompressGeometry - GEOMETRYCOLLECTION :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(10 10, 11 11), POLYGON((0 0, 5 0, 5 5, 0 5, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(10 10, 11 11), POLYGON((0 0, 5 0, 5 5, 0 5, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)))", 4326))) GEOMETRYCOLLECTION(LINESTRING(10 10, 11 11), POLYGON((0 0, 5 0, 5 5, 0 5, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1))) libspatialite-4.1.1/test/sql_stmt_tests/makearc15.testcase0000664000175000017500000000030612163502134020637 00000000000000makearc14 - valid :memory: #use in-memory database SELECT ST_Length(MakeArc(0, 0, 100, 30, 60)); 1 # rows (not including the header row) 1 # columns ST_Length(MakeArc(0, 0, 100, 30, 60)) 52.2934:4 libspatialite-4.1.1/test/sql_stmt_tests/casttoint5.testcase0000664000175000017500000000040012163502133021155 00000000000000CastToInteger() - TEXT valid decimals :memory: #use in-memory database SELECT CastToInteger('123.88'), TypeOf(CastToInteger('123.88')) 1 # rows (not including the header row) 2 # columns CastToInteger('123.88') TypeOf(CastToInteger('123.88')) 124 integer libspatialite-4.1.1/test/sql_stmt_tests/collect40.testcase0000664000175000017500000000074212163502133020662 00000000000000collect - PolygonZ, PolygonZ :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POLYGONZ((1 2 4, 3 4 2, 3 2 3, 1 2 4))"), GeomFromText("POLYGONZ((4 5 3.2, 1 2 4.6, 4 2 3.1, 4 5 3.2))"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POLYGONZ((1 2 4, 3 4 2, 3 2 3, 1 2 4))"), GeomFromText("POLYGONZ((4 5 3.2, 1 2 4.6, 4 2 3.1, 4 5 3.2))"))) MULTIPOLYGON Z(((1 2 4, 3 4 2, 3 2 3, 1 2 4)), ((4 5 3.2, 1 2 4.6, 4 2 3.1, 4 5 3.2))) libspatialite-4.1.1/test/sql_stmt_tests/shiftcoords2.testcase0000664000175000017500000000034612163502134021503 00000000000000shiftcoords2 :memory: #use in-memory database SELECT AsText(ShiftCoords(GeomFromText("POINT(1 2)"), -1, -3)); 1 # rows (not including the header row) 1 # columns AsText(ShiftCoords(GeomFromText("POINT(1 2)"), -1, -3)) POINT(0 -1) libspatialite-4.1.1/test/sql_stmt_tests/extractmultipolygon1.testcase0000664000175000017500000000030612163502134023304 00000000000000extractmultipolygon - bad blob :memory: #use in-memory database SELECT ExtractMultiPolygon(zeroblob(99)) 1 # rows (not including the header row) 1 # columns ExtractMultiPolygon(zeroblob(99)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/maxz6.testcase0000664000175000017500000000041712163502134020136 00000000000000MaxZ - Linestring XYZM :memory: #use in-memory database SELECT ST_MaxZ(GeomFromText('LINESTRINGZM(1 2 100 10, 3 4 103 11, 5 6 101 12)')); 1 # rows (not including the header row) 1 # columns ST_MaxZ(GeomFromText('LINESTRINGZM(1 2 100 10, 3 4 103 11, 5 6 101 12)')) 103.0 libspatialite-4.1.1/test/sql_stmt_tests/makecircularstripe22.testcase0000664000175000017500000000040012163502134023116 00000000000000makecircularstripe21 - BLOB step :memory: #use in-memory database SELECT MakeCircularStripe(0, 0, 100, 90, 30, 60, 4326, zeroblob(4)); 1 # rows (not including the header row) 1 # columns MakeCircularStripe(0, 0, 100, 90, 30, 60, 4326, zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/envelope2.testcase0000664000175000017500000000043412163502134020767 00000000000000Envelope - Polygon :memory: #use in-memory database SELECT AsText(Envelope(GeomFromText("POLYGON((1 1, 2 1, 2 2, 1 2, 1 1))"))) 1 # rows (not including the header row) 1 # columns AsText(Envelope(GeomFromText("POLYGON((1 1, 2 1, 2 2, 1 2, 1 1))"))) POLYGON((1 1, 2 1, 2 2, 1 2, 1 1)) libspatialite-4.1.1/test/sql_stmt_tests/compressgeometry28.testcase0000664000175000017500000000101712163502133022646 00000000000000CompressGeometry - POLYGON Z :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("POLYGONZ((0 0 100, 5 0 101, 5 5 102, 0 5 103, 0 0 100), (1 1 100, 2 1 101, 2 2 102, 1 2 103, 1 1 100))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("POLYGONZ((0 0 100, 5 0 101, 5 5 102, 0 5 103, 0 0 100), (1 1 100, 2 1 101, 2 2 102, 1 2 103, 1 1 100))", 4326))) POLYGON Z((0 0 100, 5 0 101, 5 5 102, 0 5 103, 0 0 100), (1 1 100, 2 1 101, 2 2 102, 1 2 103, 1 1 100)) libspatialite-4.1.1/test/sql_stmt_tests/buildcirclembr1.testcase0000664000175000017500000000031512163502133022130 00000000000000buildcirclembr - null args :memory: #use in-memory database SELECT BuildCircleMbr(NULL, NULL, NULL, NULL) 1 # rows (not including the header row) 1 # columns BuildCircleMbr(NULL, NULL, NULL, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/mbr2.testcase0000664000175000017500000000043712163502134017735 00000000000000MbrContains - Line + Point :memory: #use in-memory database SELECT MbrContains(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(1 1)")); 1 # rows (not including the header row) 1 # columns MbrContains(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(1 1)")) # header 1libspatialite-4.1.1/test/sql_stmt_tests/m_yd.testcase0000664000175000017500000000022412163502134020015 00000000000000metres to yards :memory: #use in-memory database SELECT CvtToYd(1.0); 1 # rows (not including the header row) 1 # columns CvtToYd(1.0); 1.0936133:8 libspatialite-4.1.1/test/sql_stmt_tests/swapcoords5.testcase0000664000175000017500000000060512163502134021341 00000000000000swapcoords5 :memory: #use in-memory database SELECT AsText(SwapCoords(GeomFromText("LINESTRINGZ(136 -35 100, 135.2 -34.5 101, 136 -35.2 102, 136 -36 103)"))); 1 # rows (not including the header row) 1 # columns AsText(SwapCoords(GeomFromText("LINESTRINGZ(136 -35 100, 135.2 -34.5 101, 136 -35.2 102, 136 -36 103)"))); LINESTRING Z(-35 136 100, -34.5 135.2 101, -35.2 136 102, -36 136 103) libspatialite-4.1.1/test/sql_stmt_tests/geomtype42.testcase0000664000175000017500000000062212163502134021066 00000000000000geometrytype - MULTILINESTRINGM - one line :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("MULTILINESTRINGM((30 20 1, 10 40 1, 45 40 1, 30 20 1))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) MULTILINESTRING M XYM MULTILINESTRINGlibspatialite-4.1.1/test/sql_stmt_tests/casttolinestring1.testcase0000664000175000017500000000027512163502133022547 00000000000000casttolinestring - bad blob :memory: #use in-memory database SELECT CastToLineString(zeroblob(99)) 1 # rows (not including the header row) 1 # columns CastToLineString(zeroblob(99)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makecircularstripe23.testcase0000664000175000017500000000043712163502134023131 00000000000000makecircularstripe23 - valid step :memory: #use in-memory database SELECT ST_Area(MakeCircularStripe(0.0, 0.0, 100.0, 90.0, 30.0, 60.0, 4326, 1.0)); 1 # rows (not including the header row) 1 # columns ST_Area(MakeCircularStripe(0.0, 0.0, 100.0, 90.0, 30.0, 60.0, 4326, 1.0)) 497.3935:4 libspatialite-4.1.1/test/sql_stmt_tests/makeline14.testcase0000664000175000017500000000043612163502134021024 00000000000000makeline14 :memory: #use in-memory database SELECT AsText(MakeLine(GeomFromText("POINT(0 0)"), GeomFromText("POINT M(1 2 0)"))); 1 # rows (not including the header row) 1 # columns AsText(MakeLine(GeomFromText("POINT(0 0)"), GeomFromText("POINT M(1 2 0)"))) LINESTRING M(0 0 0, 1 2 0) libspatialite-4.1.1/test/sql_stmt_tests/ewkb11.testcase0000664000175000017500000000220712163502134020162 00000000000000EWkb: GeometryCollection XYZ :memory: #use in-memory database SELECT AsText(GeomFromEWkb('01070000A0E61000000400000001010000809A9999999999F13F9A999999999901400000000000005940010200008002000000000000000000F03F00000000000000400000000000005940000000000000084000000000000010400000000000405940010300008002000000050000000000000000002440000000000000244000000000000059400000000000002E40000000000000244000000000004059400000000000002E400000000000002E40000000000080594000000000000024400000000000002E400000000000C05940000000000000244000000000000024400000000000005940050000000000000000002840000000000000284000000000004059400000000000002A40000000000000284000000000008059400000000000002A400000000000002A400000000000C0594000000000000028400000000000002A400000000000005A400000000000002840000000000000284000000000004059400101000080000000000000304000000000000030400000000000005940')) AS wkt_geom; 1 # rows (not including the header row) 1 # columns wkt_geom GEOMETRYCOLLECTION Z(POINT Z(1.1 2.2 100), POINT Z(16 16 100), LINESTRING Z(1 2 100, 3 4 101), POLYGON Z((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (12 12 101, 13 12 102, 13 13 103, 12 13 104, 12 12 101))) libspatialite-4.1.1/test/sql_stmt_tests/scalecoords4.testcase0000664000175000017500000000145412163502134021460 00000000000000scale coords - LINESTRINGM :memory: #use in-memory database SELECT AsText(ScaleCoords(geom, 0)), AsText(ScaleCoords(geom, 0.0)), AsText(ScaleCoords(geom, 2, 3.0)), AsText(ScaleCoords(geom, 1.0, -1)), ScaleCoords(zeroblob(20), 10), ScaleCoords(geom, "hello"), ScaleCoords(geom, 1, "hello"), ScaleCoords("foo", 2) FROM (SELECT GeomFromText("LINESTRINGM(1 2 1, 4 5 2)") as geom) dummy; 1 # rows (not including the header row) 8 # columns AsText(ScaleCoords(geom, 0)) AsText(ScaleCoords(geom, 0.0)) AsText(ScaleCoords(geom, 2, 3.0)) AsText(ScaleCoords(geom, 1.0, -1)) ScaleCoords(zeroblob(20), 10) ScaleCoords(geom, "hello") ScaleCoords(geom, 1, "hello") ScaleCoords("foo", 2) LINESTRING M(0 0 1, 0 0 2) LINESTRING M(0 0 1, 0 0 2) LINESTRING M(2 6 1, 8 15 2) LINESTRING M(1 -2 1, 4 -5 2) (NULL) (NULL) (NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/casttoint6.testcase0000664000175000017500000000034012163502133021161 00000000000000CastToInteger() - INTEGER :memory: #use in-memory database SELECT CastToInteger(123), TypeOf(CastToInteger(123)) 1 # rows (not including the header row) 2 # columns CastToInteger(123) TypeOf(CastToInteger(123)) 123 integer libspatialite-4.1.1/test/sql_stmt_tests/Makefile.in0000664000175000017500000015315412163502133017407 00000000000000# Makefile.in generated by automake 1.12.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = test/sql_stmt_tests DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = addpoint10.testcase \ addpoint11.testcase \ addpoint12.testcase \ addpoint13.testcase \ addpoint14.testcase \ addpoint15.testcase \ addpoint16.testcase \ addpoint17.testcase \ addpoint18.testcase \ addpoint19.testcase \ addpoint1.testcase \ addpoint20.testcase \ addpoint21.testcase \ addpoint22.testcase \ addpoint23.testcase \ addpoint24.testcase \ addpoint25.testcase \ addpoint26.testcase \ addpoint27.testcase \ addpoint28.testcase \ addpoint2.testcase \ addpoint3.testcase \ addpoint4.testcase \ addpoint5.testcase \ addpoint6.testcase \ addpoint7.testcase \ addpoint8.testcase \ addpoint9.testcase \ asbinary10.testcase \ asbinary11.testcase \ asbinary12.testcase \ asbinary13.testcase \ asbinary14.testcase \ asbinary15.testcase \ asbinary16.testcase \ asbinary17.testcase \ asbinary1.testcase \ asbinary2.testcase \ asbinary3.testcase \ asbinary4.testcase \ asbinary5.testcase \ asbinary6.testcase \ asbinary7.testcase \ asbinary8.testcase \ asbinary9.testcase \ asewkb10.testcase \ asewkb11.testcase \ asewkb12.testcase \ asewkb13.testcase \ asewkb14.testcase \ asewkb15.testcase \ asewkb16.testcase \ asewkb17.testcase \ asewkb1.testcase \ asewkb2.testcase \ asewkb3.testcase \ asewkb4.testcase \ asewkb5.testcase \ asewkb6.testcase \ asewkb7.testcase \ asewkb8.testcase \ asewkb9.testcase \ asfgf1.testcase \ asfgf2.testcase \ asfgf3.testcase \ asfgf4.testcase \ asfgf5.testcase \ asfgf6.testcase \ asfgf7.testcase \ asfgf8.testcase \ asfgf9.testcase \ asgeojson1.testcase \ asgeojson2.testcase \ asgeojson3.testcase \ asgeojson4.testcase \ asgeojson5.testcase \ asgeojson6.testcase \ asgeojson7.testcase \ asgeojson8.testcase \ asgml10.testcase \ asgml11.testcase \ asgml1.testcase \ asgml2.testcase \ asgml3.testcase \ asgml4.testcase \ asgml5.testcase \ asgml6.testcase \ asgml7.testcase \ asgml8.testcase \ asgml9.testcase \ assvg17.testcase \ assvg18.testcase \ assvg19.testcase \ assvg1.testcase \ assvg20.testcase \ assvg21.testcase \ assvg22.testcase \ assvg23.testcase \ assvg24.testcase \ assvg25.testcase \ assvg26.testcase \ assvg2.testcase \ assvg3.testcase \ assvg4.testcase \ assvg5.testcase \ assvg6.testcase \ assvg7.testcase \ assvg8.testcase \ assvg9.testcase \ aswkt-text.testcase \ badEWKT1.testcase \ badEWKT2.testcase \ badEWKT3.testcase \ badEWKT4.testcase \ badEWKT5.testcase \ badEWKT6.testcase \ badEWKT7.testcase \ badEWKT8.testcase \ badGeoJSON1.testcase \ badGeoJSON2.testcase \ badGeoJSON3.testcase \ badGeoJSON4.testcase \ badGeoJSON5.testcase \ badGeoJSON6.testcase \ badGeoJSON7.testcase \ badGML1.testcase \ badGML2.testcase \ badGML3.testcase \ badGML4.testcase \ badGML5.testcase \ badGML6.testcase \ badGML7.testcase \ badKML1.testcase \ badKML2.testcase \ badKML3.testcase \ badKML4.testcase \ badKML5.testcase \ badKML6.testcase \ badKML7.testcase \ badwkt1.testcase \ badwkt2.testcase \ badwkt3.testcase \ badwkt4.testcase \ badwkt5.testcase \ badwkt6.testcase \ badwkt7.testcase \ badwkt8.testcase \ badwkt9.testcase \ buildcirclembr10.testcase \ buildcirclembr11.testcase \ buildcirclembr12.testcase \ buildcirclembr1.testcase \ buildcirclembr2.testcase \ buildcirclembr3.testcase \ buildcirclembr4.testcase \ buildcirclembr5.testcase \ buildcirclembr6.testcase \ buildcirclembr7.testcase \ buildcirclembr8.testcase \ buildcirclembr9.testcase \ buildmbr10.testcase \ buildmbr11.testcase \ buildmbr12.testcase \ buildmbr13.testcase \ buildmbr14.testcase \ buildmbr1.testcase \ buildmbr2.testcase \ buildmbr3.testcase \ buildmbr4.testcase \ buildmbr5.testcase \ buildmbr6.testcase \ buildmbr7.testcase \ buildmbr8.testcase \ buildmbr9.testcase \ casttoblob10.testcase \ casttoblob12.testcase \ casttoblob13.testcase \ casttoblob14.testcase \ casttoblob1.testcase \ casttoblob2.testcase \ casttoblob3.testcase \ casttoblob4.testcase \ casttoblob5.testcase \ casttoblob6.testcase \ casttoblob7.testcase \ casttoblob8.testcase \ casttoblob9.testcase \ casttodouble1.testcase \ casttodouble2.testcase \ casttodouble3.testcase \ casttodouble4.testcase \ casttodouble5.testcase \ casttodouble6.testcase \ casttodouble7.testcase \ casttogeometrycollection2.testcase \ casttogeometrycollection3.testcase \ casttogeometrycollection4.testcase \ casttogeometrycollection5.testcase \ casttogeometrycollection6.testcase \ casttogeometrycollection.testcase \ casttoint1.testcase \ casttoint2.testcase \ casttoint3.testcase \ casttoint4.testcase \ casttoint5.testcase \ casttoint6.testcase \ casttoint7.testcase \ casttolinestring1.testcase \ casttolinestring2.testcase \ casttolinestring3.testcase \ casttolinestring4.testcase \ casttolinestring5.testcase \ casttolinestring6.testcase \ casttolinestring7.testcase \ casttolinestring8.testcase \ casttomulti11.testcase \ casttomulti1.testcase \ casttomulti2.testcase \ casttomulti3.testcase \ casttomulti4.testcase \ casttomulti5.testcase \ casttomulti6.testcase \ casttomulti7.testcase \ casttomulti8.testcase \ casttomultilinestring1.testcase \ casttomultilinestring2.testcase \ casttomultilinestring3.testcase \ casttomultilinestring4.testcase \ casttomultilinestring5.testcase \ casttomultilinestring6.testcase \ casttomultilinestring7.testcase \ casttomultipoint1.testcase \ casttomultipoint2.testcase \ casttomultipoint3.testcase \ casttomultipoint4.testcase \ casttomultipoint5.testcase \ casttomultipoint6.testcase \ casttomultipoint7.testcase \ casttomultipoint8.testcase \ casttomultipoint9.testcase \ casttomultipolygon1.testcase \ casttomultipolygon2.testcase \ casttomultipolygon3.testcase \ casttomultipolygon4.testcase \ casttomultipolygon5.testcase \ casttopoint1.testcase \ casttopoint2.testcase \ casttopoint3.testcase \ casttopoint4.testcase \ casttopoint5.testcase \ casttopoint6.testcase \ casttopoint7.testcase \ casttopoint8.testcase \ casttopoly1.testcase \ casttopoly2.testcase \ casttopoly3.testcase \ casttopoly4.testcase \ casttopoly5.testcase \ casttopoly6.testcase \ casttopoly7.testcase \ casttopoly8.testcase \ casttosingle10.testcase \ casttosingle12.testcase \ casttosingle1.testcase \ casttosingle2.testcase \ casttosingle3.testcase \ casttosingle4.testcase \ casttosingle5.testcase \ casttosingle6.testcase \ casttosingle7.testcase \ casttosingle8.testcase \ casttosingle9.testcase \ casttotext10.testcase \ casttotext11.testcase \ casttotext12.testcase \ casttotext13.testcase \ casttotext14.testcase \ casttotext15.testcase \ casttotext1.testcase \ casttotext2.testcase \ casttotext3.testcase \ casttotext4.testcase \ casttotext5.testcase \ casttotext6.testcase \ casttotext7.testcase \ casttotext8.testcase \ casttotext9.testcase \ casttoxy1.testcase \ casttoxy2.testcase \ casttoxy3.testcase \ casttoxym1.testcase \ casttoxym2.testcase \ casttoxym3.testcase \ casttoxym4.testcase \ casttoxym5.testcase \ casttoxym6.testcase \ casttoxyz1.testcase \ casttoxyz2.testcase \ casttoxyz3.testcase \ casttoxyz4.testcase \ casttoxyz5.testcase \ casttoxyz6.testcase \ casttoxyzm1.testcase \ casttoxyzm2.testcase \ casttoxyzm3.testcase \ casttoxyzm4.testcase \ casttoxyzm5.testcase \ casttoxyzm6.testcase \ checkspatialmetadata1.testcase \ checkspatialmetadata2.testcase \ checkspatialmetadata3.testcase \ checkspatialmetadata4.testcase \ checkspatialmetadata5.testcase \ ch_m.testcase \ cm_m.testcase \ collect10.testcase \ collect11.testcase \ collect12.testcase \ collect13.testcase \ collect14.testcase \ collect15.testcase \ collect16.testcase \ collect17.testcase \ collect18.testcase \ collect19.testcase \ collect1.testcase \ collect20.testcase \ collect21.testcase \ collect23.testcase \ collect24.testcase \ collect25.testcase \ collect26.testcase \ collect27.testcase \ collect28.testcase \ collect29.testcase \ collect2.testcase \ collect30.testcase \ collect31.testcase \ collect32.testcase \ collect33.testcase \ collect34.testcase \ collect35.testcase \ collect36.testcase \ collect37.testcase \ collect38.testcase \ collect39.testcase \ collect3.testcase \ collect40.testcase \ collect41.testcase \ collect42.testcase \ collect43.testcase \ collect44.testcase \ collect45.testcase \ collect46.testcase \ collect47.testcase \ collect48.testcase \ collect49.testcase \ collect4.testcase \ collect50.testcase \ collect51.testcase \ collect52.testcase \ collect53.testcase \ collect54.testcase \ collect55.testcase \ collect56.testcase \ collect57.testcase \ collect58.testcase \ collect59.testcase \ collect5.testcase \ collect6.testcase \ collect7.testcase \ collect8.testcase \ collect9.testcase \ collectextract10.testcase \ collectextract11.testcase \ collectextract12.testcase \ collectextract13.testcase \ collectextract14.testcase \ collectextract15.testcase \ collectextract16.testcase \ collectextract17.testcase \ collectextract18.testcase \ collectextract19.testcase \ collectextract1.testcase \ collectextract20.testcase \ collectextract21.testcase \ collectextract22.testcase \ collectextract2.testcase \ collectextract3.testcase \ collectextract4.testcase \ collectextract5.testcase \ collectextract6.testcase \ collectextract7.testcase \ collectextract8.testcase \ collectextract9.testcase \ compressgeometry10.testcase \ compressgeometry11.testcase \ compressgeometry12.testcase \ compressgeometry13.testcase \ compressgeometry14.testcase \ compressgeometry15.testcase \ compressgeometry17.testcase \ compressgeometry18.testcase \ compressgeometry19.testcase \ compressgeometry1.testcase \ compressgeometry20.testcase \ compressgeometry21.testcase \ compressgeometry22.testcase \ compressgeometry23.testcase \ compressgeometry24.testcase \ compressgeometry25.testcase \ compressgeometry26.testcase \ compressgeometry27.testcase \ compressgeometry28.testcase \ compressgeometry29.testcase \ compressgeometry2.testcase \ compressgeometry30.testcase \ compressgeometry31.testcase \ compressgeometry32.testcase \ compressgeometry33.testcase \ compressgeometry34.testcase \ compressgeometry35.testcase \ compressgeometry36.testcase \ compressgeometry37.testcase \ compressgeometry38.testcase \ compressgeometry39.testcase \ compressgeometry3.testcase \ compressgeometry40.testcase \ compressgeometry41.testcase \ compressgeometry42.testcase \ compressgeometry43.testcase \ compressgeometry44.testcase \ compressgeometry45.testcase \ compressgeometry46.testcase \ compressgeometry47.testcase \ compressgeometry48.testcase \ compressgeometry49.testcase \ compressgeometry4.testcase \ compressgeometry50.testcase \ compressgeometry51.testcase \ compressgeometry52.testcase \ compressgeometry53.testcase \ compressgeometry54.testcase \ compressgeometry55.testcase \ compressgeometry56.testcase \ compressgeometry57.testcase \ compressgeometry58.testcase \ compressgeometry59.testcase \ compressgeometry5.testcase \ compressgeometry60.testcase \ compressgeometry61.testcase \ compressgeometry62.testcase \ compressgeometry63.testcase \ compressgeometry64.testcase \ compressgeometry65.testcase \ compressgeometry66.testcase \ compressgeometry67.testcase \ compressgeometry68.testcase \ compressgeometry69.testcase \ compressgeometry6.testcase \ compressgeometry7.testcase \ compressgeometry8.testcase \ compressgeometry9.testcase \ createrastercoverages.testcase \ createuuid1.testcase \ dimension1.testcase \ dimension2.testcase \ dimension3.testcase \ dimension4.testcase \ dimension5.testcase \ dimension6.testcase \ dimension7.testcase \ dimension8.testcase \ dissolve10.testcase \ dissolve11.testcase \ dissolve12.testcase \ dissolve13.testcase \ dissolve14.testcase \ dissolve15.testcase \ dissolve16.testcase \ dissolve17.testcase \ dissolve18.testcase \ dissolve19.testcase \ dissolve1.testcase \ dissolve20.testcase \ dissolve21.testcase \ dissolve22.testcase \ dissolve23.testcase \ dissolve24.testcase \ dissolve25.testcase \ dissolve26.testcase \ dissolve27.testcase \ dissolve28.testcase \ dissolve29.testcase \ dissolve2.testcase \ dissolve30.testcase \ dissolve3.testcase \ dissolve4.testcase \ dissolve5.testcase \ dissolve6.testcase \ dissolve7.testcase \ dissolve8.testcase \ dissolve9.testcase \ dm_m.testcase \ DSC_1467.JPG \ DSCN0042.JPG \ emptyfile.txt \ endpoint1.testcase \ envelope1.testcase \ envelope2.testcase \ envelope3.testcase \ envelope4.testcase \ envelope5.testcase \ envelope6.testcase \ envelope7.testcase \ envintersects10.testcase \ envintersects1.testcase \ envintersects2.testcase \ envintersects3.testcase \ envintersects4.testcase \ envintersects5.testcase \ envintersects6.testcase \ envintersects7.testcase \ envintersects8.testcase \ envintersects9.testcase \ ewkb10.testcase \ ewkb11.testcase \ ewkb12.testcase \ ewkb1.testcase \ ewkb2.testcase \ ewkb3.testcase \ ewkb4.testcase \ ewkb5.testcase \ ewkb6.testcase \ ewkb7.testcase \ ewkb8.testcase \ ewkb9.testcase \ expand1.testcase \ expand2.testcase \ expand3.testcase \ expand4.testcase \ expand5.testcase \ expand6.testcase \ expand7.testcase \ extent1.testcase \ extractmultilinestring1.testcase \ extractmultilinestring2.testcase \ extractmultilinestring3.testcase \ extractmultipoint1.testcase \ extractmultipoint2.testcase \ extractmultipoint3.testcase \ extractmultipolygon1.testcase \ extractmultipolygon2.testcase \ extractmultipolygon3.testcase \ fath_m.testcase \ fdo_ogr1.testcase \ fdo_ogr2.testcase \ fdo-wkb.sqlite_RO \ forcenull10.testcase \ forcenull11.testcase \ forcenull12.testcase \ forcenull13.testcase \ forcenull14.testcase \ forcenull15.testcase \ forcenull16.testcase \ forcenull17.testcase \ forcenull18.testcase \ forcenull19.testcase \ forcenull1.testcase \ forcenull20.testcase \ forcenull21.testcase \ forcenull22.testcase \ forcenull23.testcase \ forcenull24.testcase \ forcenull25.testcase \ forcenull26.testcase \ forcenull27.testcase \ forcenull28.testcase \ forcenull2.testcase \ forcenull3.testcase \ forcenull4.testcase \ forcenull5.testcase \ forcenull6.testcase \ forcenull7.testcase \ forcenull8.testcase \ forcenull9.testcase \ fromewkt10.testcase \ fromewkt11.testcase \ fromewkt12.testcase \ fromewkt13.testcase \ fromewkt14.testcase \ fromewkt15.testcase \ fromewkt16.testcase \ fromewkt17.testcase \ fromewkt18.testcase \ fromewkt19.testcase \ fromewkt1.testcase \ fromewkt20.testcase \ fromewkt22.testcase \ fromewkt23.testcase \ fromewkt24.testcase \ fromewkt25.testcase \ fromewkt26.testcase \ fromewkt27.testcase \ fromewkt28.testcase \ fromewkt29.testcase \ fromewkt2.testcase \ fromewkt30.testcase \ fromewkt31.testcase \ fromewkt32.testcase \ fromewkt33.testcase \ fromewkt34.testcase \ fromewkt35.testcase \ fromewkt36.testcase \ fromewkt37.testcase \ fromewkt38.testcase \ fromewkt39.testcase \ fromewkt3.testcase \ fromewkt4.testcase \ fromewkt5.testcase \ fromewkt6.testcase \ fromewkt7.testcase \ fromewkt8.testcase \ fromewkt9.testcase \ fromgeojson10.testcase \ fromgeojson11.testcase \ fromgeojson12.testcase \ fromgeojson13.testcase \ fromgeojson14.testcase \ fromgeojson15.testcase \ fromgeojson16.testcase \ fromgeojson17.testcase \ fromgeojson18.testcase \ fromgeojson19.testcase \ fromgeojson1.testcase \ fromgeojson20.testcase \ fromgeojson21.testcase \ fromgeojson22.testcase \ fromgeojson23.testcase \ fromgeojson24.testcase \ fromgeojson25.testcase \ fromgeojson26.testcase \ fromgeojson27.testcase \ fromgeojson28.testcase \ fromgeojson29.testcase \ fromgeojson2.testcase \ fromgeojson30.testcase \ fromgeojson31.testcase \ fromgeojson32.testcase \ fromgeojson3.testcase \ fromgeojson4.testcase \ fromgeojson5.testcase \ fromgeojson6.testcase \ fromgeojson7.testcase \ fromgeojson8.testcase \ fromgeojson9.testcase \ fromgml10.testcase \ fromgml11.testcase \ fromgml12.testcase \ fromgml13.testcase \ fromgml14.testcase \ fromgml15.testcase \ fromgml16.testcase \ fromgml17.testcase \ fromgml18.testcase \ fromgml19.testcase \ fromgml1.testcase \ fromgml20.testcase \ fromgml21.testcase \ fromgml22.testcase \ fromgml23.testcase \ fromgml24.testcase \ fromgml25.testcase \ fromgml26.testcase \ fromgml27.testcase \ fromgml28.testcase \ fromgml29.testcase \ fromgml2.testcase \ fromgml30.testcase \ fromgml31.testcase \ fromgml32.testcase \ fromgml33.testcase \ fromgml34.testcase \ fromgml35.testcase \ fromgml36.testcase \ fromgml37.testcase \ fromgml38.testcase \ fromgml39.testcase \ fromgml3.testcase \ fromgml40.testcase \ fromgml41.testcase \ fromgml43.testcase \ fromgml44.testcase \ fromgml45.testcase \ fromgml46.testcase \ fromgml47.testcase \ fromgml48.testcase \ fromgml49.testcase \ fromgml4.testcase \ fromgml50.testcase \ fromgml51.testcase \ fromgml52.testcase \ fromgml53.testcase \ fromgml54.testcase \ fromgml55.testcase \ fromgml56.testcase \ fromgml57.testcase \ fromgml58.testcase \ fromgml59.testcase \ fromgml5.testcase \ fromgml6.testcase \ fromgml7.testcase \ fromgml8.testcase \ fromgml9.testcase \ fromWkb10.testcase \ fromWkb11.testcase \ fromWkb12.testcase \ fromWkb13.testcase \ fromWkb14.testcase \ fromWkb15.testcase \ fromWkb16.testcase \ fromWkb17.testcase \ fromWkb18.testcase \ fromWkb19.testcase \ fromWkb1.testcase \ fromWkb20.testcase \ fromWkb21.testcase \ fromWkb22.testcase \ fromWkb23.testcase \ fromWkb24.testcase \ fromWkb25.testcase \ fromWkb26.testcase \ fromWkb2.testcase \ fromWkb3.testcase \ fromWkb4.testcase \ fromWkb5.testcase \ fromWkb6.testcase \ fromWkb7.testcase \ fromWkb8.testcase \ fromWkb9.testcase \ ft_m.testcase \ garsmbr10.testcase \ garsmbr11.testcase \ garsmbr12.testcase \ garsmbr13.testcase \ garsmbr14.testcase \ garsmbr15.testcase \ garsmbr16.testcase \ garsmbr17.testcase \ garsmbr18.testcase \ garsmbr1.testcase \ garsmbr20.testcase \ garsmbr21.testcase \ garsmbr22.testcase \ garsmbr23.testcase \ garsmbr24.testcase \ garsmbr25.testcase \ garsmbr26.testcase \ garsmbr27.testcase \ garsmbr28.testcase \ garsmbr29.testcase \ garsmbr2.testcase \ garsmbr30.testcase \ garsmbr31.testcase \ garsmbr32.testcase \ garsmbr33.testcase \ garsmbr34.testcase \ garsmbr35.testcase \ garsmbr36.testcase \ garsmbr3.testcase \ garsmbr4.testcase \ garsmbr5.testcase \ garsmbr6.testcase \ garsmbr7.testcase \ garsmbr8.testcase \ garsmbr9.testcase \ geodesic-len1.testcase \ geodesic-len2.testcase \ geodesic-len3.testcase \ geodesic-len4.testcase \ geodesic-len5.testcase \ geodesic-len6.testcase \ geodesic-len7.testcase \ geodesic-len8.testcase \ geojson1.testcase \ geojson2.testcase \ geojson3.testcase \ geojson4.testcase \ geojson5.testcase \ geojson6.testcase \ geomcollfromtext1.testcase \ geomcollfromtext2.testcase \ geomconstraints10.testcase \ geomconstraints11.testcase \ geomconstraints12.testcase \ geomconstraints13.testcase \ geomconstraints14.testcase \ geomconstraints15.testcase \ geomconstraints16.testcase \ geomconstraints17.testcase \ geomconstraints18.testcase \ geomconstraints19.testcase \ geomconstraints1.testcase \ geomconstraints20.testcase \ geomconstraints21.testcase \ geomconstraints22.testcase \ geomconstraints23.testcase \ geomconstraints24.testcase \ geomconstraints25.testcase \ geomconstraints26.testcase \ geomconstraints27.testcase \ geomconstraints28.testcase \ geomconstraints2.testcase \ geomconstraints3.testcase \ geomconstraints4.testcase \ geomconstraints5.testcase \ geomconstraints6.testcase \ geomconstraints7.testcase \ geomconstraints8.testcase \ geomconstraints9.testcase \ geometryn10.testcase \ geometryn11.testcase \ geometryn12.testcase \ geometryn13.testcase \ geometryn14.testcase \ geometryn15.testcase \ geometryn16.testcase \ geometryn17.testcase \ geometryn18.testcase \ geometryn19.testcase \ geometryn1.testcase \ geometryn20.testcase \ geometryn2.testcase \ geometryn3.testcase \ geometryn4.testcase \ geometryn5.testcase \ geometryn6.testcase \ geometryn7.testcase \ geometryn8.testcase \ geometryn9.testcase \ geometryn.testcase \ geomfromewkb1.testcase \ geomfromewkb2.testcase \ geomfromkml10.testcase \ geomfromkml11.testcase \ geomfromkml12.testcase \ geomfromkml13.testcase \ geomfromkml14.testcase \ geomfromkml15.testcase \ geomfromkml16.testcase \ geomfromkml17.testcase \ geomfromkml18.testcase \ geomfromkml19.testcase \ geomfromkml1.testcase \ geomfromkml20.testcase \ geomfromkml21.testcase \ geomfromkml22.testcase \ geomfromkml23.testcase \ geomfromkml2.testcase \ geomfromkml3.testcase \ geomfromkml4.testcase \ geomfromkml5.testcase \ geomfromkml6.testcase \ geomfromkml7.testcase \ geomfromkml8.testcase \ geomfromkml9.testcase \ geomfromtext10.testcase \ geomfromtext11.testcase \ geomfromtext12.testcase \ geomfromtext13.testcase \ geomfromtext14.testcase \ geomfromtext15.testcase \ geomfromtext16.testcase \ geomfromtext17.testcase \ geomfromtext18.testcase \ geomfromtext19.testcase \ geomfromtext1.testcase \ geomfromtext20.testcase \ geomfromtext21.testcase \ geomfromtext22.testcase \ geomfromtext23.testcase \ geomfromtext24.testcase \ geomfromtext25.testcase \ geomfromtext26.testcase \ geomfromtext27.testcase \ geomfromtext28.testcase \ geomfromtext29.testcase \ geomfromtext2.testcase \ geomfromtext30.testcase \ geomfromtext31.testcase \ geomfromtext32.testcase \ geomfromtext33.testcase \ geomfromtext34.testcase \ geomfromtext35.testcase \ geomfromtext36.testcase \ geomfromtext37.testcase \ geomfromtext38.testcase \ geomfromtext39.testcase \ geomfromtext3.testcase \ geomfromtext40.testcase \ geomfromtext41.testcase \ geomfromtext42.testcase \ geomfromtext43.testcase \ geomfromtext44.testcase \ geomfromtext45.testcase \ geomfromtext4.testcase \ geomfromtext5.testcase \ geomfromtext6.testcase \ geomfromtext7.testcase \ geomfromtext8.testcase \ geomfromtext9.testcase \ geomtype10.testcase \ geomtype11.testcase \ geomtype12.testcase \ geomtype13.testcase \ geomtype14.testcase \ geomtype15.testcase \ geomtype16.testcase \ geomtype17.testcase \ geomtype18.testcase \ geomtype19.testcase \ geomtype1.testcase \ geomtype20.testcase \ geomtype21.testcase \ geomtype22.testcase \ geomtype23.testcase \ geomtype24.testcase \ geomtype25.testcase \ geomtype26.testcase \ geomtype27.testcase \ geomtype28.testcase \ geomtype29.testcase \ geomtype2.testcase \ geomtype30.testcase \ geomtype31.testcase \ geomtype32.testcase \ geomtype33.testcase \ geomtype34.testcase \ geomtype35.testcase \ geomtype36.testcase \ geomtype37.testcase \ geomtype38.testcase \ geomtype39.testcase \ geomtype3.testcase \ geomtype40.testcase \ geomtype41.testcase \ geomtype42.testcase \ geomtype43.testcase \ geomtype44.testcase \ geomtype45.testcase \ geomtype46.testcase \ geomtype47.testcase \ geomtype48.testcase \ geomtype49.testcase \ geomtype4.testcase \ geomtype50.testcase \ geomtype51.testcase \ geomtype52.testcase \ geomtype53.testcase \ geomtype54.testcase \ geomtype55.testcase \ geomtype56.testcase \ geomtype57.testcase \ geomtype58.testcase \ geomtype59.testcase \ geomtype5.testcase \ geomtype60.testcase \ geomtype61.testcase \ geomtype62.testcase \ geomtype63.testcase \ geomtype64.testcase \ geomtype65.testcase \ geomtype66.testcase \ geomtype67.testcase \ geomtype68.testcase \ geomtype69.testcase \ geomtype6.testcase \ geomtype7.testcase \ geomtype8.testcase \ geomtype9.testcase \ getmimetype1.testcase \ getmimetype2.testcase \ getmimetype3.testcase \ getmimetype4.testcase \ getmimetype5.testcase \ gml10.testcase \ gml11.testcase \ gml12.testcase \ gml13.testcase \ gml14.testcase \ gml15.testcase \ gml16.testcase \ gml1.testcase \ gml2.testcase \ gml3.testcase \ gml4.testcase \ gml5.testcase \ gml6.testcase \ gml7.testcase \ gml8.testcase \ gml9.testcase \ greatcircle-badblob.testcase \ greatcircle-poly2.testcase \ greatcircle-poly3.testcase \ greatcircle-poly4.testcase \ greatcircle-poly5.testcase \ greatcircle-poly6.testcase \ greatcircle-poly7.testcase \ greatcircle-poly.testcase \ greatcircle.testcase \ greatcircle-text.testcase \ ind_ch_m.testcase \ ind_ft_m.testcase \ ind_yd_m.testcase \ in_m.testcase \ is3d1.testcase \ is3d2.testcase \ is3d3.testcase \ is3d4.testcase \ is3d5.testcase \ is3d6.testcase \ isempty2.testcase \ isempty3.testcase \ isempty4.testcase \ isempty.testcase \ ismeasured1.testcase \ ismeasured2.testcase \ ismeasured3.testcase \ ismeasured4.testcase \ ismeasured5.testcase \ ismeasured6.testcase \ isXblob5.testcase \ isXblob6.testcase \ isXblob7.testcase \ k3b-icon.png \ km_m.testcase \ ktorrent_grad1.jpg \ ktorrent_sidebar.gif \ La_folla_durante_il_Palio.jpg \ lhr1.testcase \ lhr2.testcase \ lhr3.testcase \ lhr4.testcase \ lhr5.testcase \ lhr6.testcase \ linefromtext1.testcase \ linefromtext2.testcase \ linesfromrings1.testcase \ linesfromrings2.testcase \ linesfromrings3.testcase \ linesfromrings4.testcase \ linesfromrings5.testcase \ linesfromrings6.testcase \ linesfromrings7.testcase \ link_m.testcase \ locatemeasure10.testcase \ locatemeasure11.testcase \ locatemeasure12.testcase \ locatemeasure13.testcase \ locatemeasure14.testcase \ locatemeasure15.testcase \ locatemeasure16.testcase \ locatemeasure17.testcase \ locatemeasure18.testcase \ locatemeasure19.testcase \ locatemeasure1.testcase \ locatemeasure2.testcase \ locatemeasure3.testcase \ locatemeasure4.testcase \ locatemeasure5.testcase \ locatemeasure6.testcase \ locatemeasure7.testcase \ locatemeasure8.testcase \ locatemeasure9.testcase \ makeline10.testcase \ makeline11.testcase \ makeline12.testcase \ makeline13.testcase \ makeline14.testcase \ makeline15.testcase \ makeline16.testcase \ makeline17.testcase \ makeline18.testcase \ makeline19.testcase \ makeline20.testcase \ makeline21.testcase \ makeline22.testcase \ makeline23.testcase \ makeline24.testcase \ makeline25.testcase \ makeline26.testcase \ makeline27.testcase \ makeline28.testcase \ makeline29.testcase \ makeline2.testcase \ makeline3.testcase \ makeline30.testcase \ makeline31.testcase \ makeline32.testcase \ makeline4.testcase \ makeline5.testcase \ makeline6.testcase \ makeline7.testcase \ makeline8.testcase \ makeline9.testcase \ makeline.testcase \ makepoint10.testcase \ makepoint11.testcase \ makepoint12.testcase \ makepoint13.testcase \ makepoint14.testcase \ makepoint15.testcase \ makepoint1.testcase \ makepoint2.testcase \ makepoint3.testcase \ makepoint4.testcase \ makepoint5.testcase \ makepoint6.testcase \ makepoint7.testcase \ makepoint8.testcase \ makepoint9.testcase \ makepointm-null1.testcase \ makepointm-null2.testcase \ makepointm-null3.testcase \ makepointm-null4.testcase \ makepointm-null5.testcase \ makepointm-null6.testcase \ makepointm-null7.testcase \ makepointm-null8.testcase \ makepoint-null1.testcase \ makepoint-null2.testcase \ makepoint-null3.testcase \ makepoint-null4.testcase \ makepoint-null5.testcase \ makepoint-null6.testcase \ makepoint-null7.testcase \ makepointzm-null10.testcase \ makepointzm-null1.testcase \ makepointzm-null2.testcase \ makepointzm-null3.testcase \ makepointzm-null4.testcase \ makepointzm-null5.testcase \ makepointzm-null6.testcase \ makepointzm-null7.testcase \ makepointzm-null8.testcase \ makepointzm-null9.testcase \ makepointz-null1.testcase \ makepointz-null2.testcase \ makepointz-null3.testcase \ makepointz-null4.testcase \ makepointz-null5.testcase \ makepointz-null6.testcase \ makepointz-null7.testcase \ makepointz-null8.testcase \ makepointz-null9.testcase \ makecircle1.testcase \ makecircle2.testcase \ makecircle3.testcase \ makecircle4.testcase \ makecircle5.testcase \ makecircle6.testcase \ makecircle7.testcase \ makecircle8.testcase \ makecircle9.testcase \ makecircle10.testcase \ makecircle11.testcase \ makecircle12.testcase \ makecircle13.testcase \ makecircle14.testcase \ makecircle15.testcase \ makecircle16.testcase \ makecircle17.testcase \ makecircle18.testcase \ makeellipse1.testcase \ makeellipse2.testcase \ makeellipse3.testcase \ makeellipse4.testcase \ makeellipse5.testcase \ makeellipse6.testcase \ makeellipse7.testcase \ makeellipse8.testcase \ makeellipse9.testcase \ makeellipse10.testcase \ makeellipse11.testcase \ makeellipse12.testcase \ makeellipse13.testcase \ makeellipse14.testcase \ makeellipse15.testcase \ makeellipse16.testcase \ makeellipse17.testcase \ makeellipse18.testcase \ makeellipse19.testcase \ makeellipse20.testcase \ makeellipse21.testcase \ makearc1.testcase \ makearc2.testcase \ makearc3.testcase \ makearc4.testcase \ makearc5.testcase \ makearc6.testcase \ makearc7.testcase \ makearc8.testcase \ makearc9.testcase \ makearc10.testcase \ makearc11.testcase \ makearc12.testcase \ makearc13.testcase \ makearc14.testcase \ makearc15.testcase \ makearc16.testcase \ makearc17.testcase \ makearc18.testcase \ makearc19.testcase \ makearc20.testcase \ makearc21.testcase \ makearc22.testcase \ makearc23.testcase \ makeellipticarc1.testcase \ makeellipticarc2.testcase \ makeellipticarc3.testcase \ makeellipticarc4.testcase \ makeellipticarc5.testcase \ makeellipticarc6.testcase \ makeellipticarc7.testcase \ makeellipticarc8.testcase \ makeellipticarc9.testcase \ makeellipticarc10.testcase \ makeellipticarc11.testcase \ makeellipticarc12.testcase \ makeellipticarc13.testcase \ makeellipticarc14.testcase \ makeellipticarc15.testcase \ makeellipticarc16.testcase \ makeellipticarc17.testcase \ makeellipticarc18.testcase \ makeellipticarc19.testcase \ makeellipticarc20.testcase \ makeellipticarc21.testcase \ makeellipticarc22.testcase \ makeellipticarc23.testcase \ makeellipticarc24.testcase \ makeellipticarc25.testcase \ makeellipticarc26.testcase \ makecircularsector1.testcase \ makecircularsector2.testcase \ makecircularsector3.testcase \ makecircularsector4.testcase \ makecircularsector5.testcase \ makecircularsector6.testcase \ makecircularsector7.testcase \ makecircularsector8.testcase \ makecircularsector9.testcase \ makecircularsector10.testcase \ makecircularsector11.testcase \ makecircularsector12.testcase \ makecircularsector13.testcase \ makecircularsector14.testcase \ makecircularsector15.testcase \ makecircularsector16.testcase \ makecircularsector17.testcase \ makecircularsector18.testcase \ makecircularsector19.testcase \ makecircularsector20.testcase \ makecircularsector21.testcase \ makecircularsector22.testcase \ makecircularsector23.testcase \ makecircularstripe1.testcase \ makecircularstripe2.testcase \ makecircularstripe3.testcase \ makecircularstripe4.testcase \ makecircularstripe5.testcase \ makecircularstripe6.testcase \ makecircularstripe7.testcase \ makecircularstripe8.testcase \ makecircularstripe9.testcase \ makecircularstripe10.testcase \ makecircularstripe11.testcase \ makecircularstripe12.testcase \ makecircularstripe13.testcase \ makecircularstripe14.testcase \ makecircularstripe15.testcase \ makecircularstripe16.testcase \ makecircularstripe17.testcase \ makecircularstripe18.testcase \ makecircularstripe19.testcase \ makecircularstripe20.testcase \ makecircularstripe21.testcase \ makecircularstripe22.testcase \ makecircularstripe23.testcase \ makecircularstripe24.testcase \ makecircularstripe25.testcase \ makecircularstripe26.testcase \ makeellipticsector1.testcase \ makeellipticsector2.testcase \ makeellipticsector3.testcase \ makeellipticsector4.testcase \ makeellipticsector5.testcase \ makeellipticsector6.testcase \ makeellipticsector7.testcase \ makeellipticsector8.testcase \ makeellipticsector9.testcase \ makeellipticsector10.testcase \ makeellipticsector11.testcase \ makeellipticsector12.testcase \ makeellipticsector13.testcase \ makeellipticsector14.testcase \ makeellipticsector15.testcase \ makeellipticsector16.testcase \ makeellipticsector17.testcase \ makeellipticsector18.testcase \ makeellipticsector19.testcase \ makeellipticsector20.testcase \ makeellipticsector21.testcase \ makeellipticsector22.testcase \ makeellipticsector23.testcase \ makeellipticsector24.testcase \ makeellipticsector25.testcase \ makeellipticsector26.testcase \ maxm1.testcase \ maxm2.testcase \ maxm3.testcase \ maxm4.testcase \ maxm5.testcase \ maxm6.testcase \ maxm7.testcase \ maxz1.testcase \ maxz2.testcase \ maxz3.testcase \ maxz4.testcase \ maxz5.testcase \ maxz6.testcase \ maxz7.testcase \ mbr10.testcase \ mbr11.testcase \ mbr12.testcase \ mbr13.testcase \ mbr14.testcase \ mbr15.testcase \ mbr16.testcase \ mbr17.testcase \ mbr18.testcase \ mbr19.testcase \ mbr1.testcase \ mbr20.testcase \ mbr21.testcase \ mbr22.testcase \ mbr23.testcase \ mbr24.testcase \ mbr25.testcase \ mbr26.testcase \ mbr27.testcase \ mbr28.testcase \ mbr29.testcase \ mbr2.testcase \ mbr30.testcase \ mbr31.testcase \ mbr32.testcase \ mbr3.testcase \ mbr4.testcase \ mbr5.testcase \ mbr6.testcase \ mbr7.testcase \ mbr8.testcase \ mbr9.testcase \ mbrminmax1.testcase \ mbrminmax2.testcase \ mbrminmax3.testcase \ mbrminmax4.testcase \ mbrminmax5.testcase \ mbrminmax6.testcase \ mbrminmax7.testcase \ mbrminmax8.testcase \ m_ch.testcase \ m_cm.testcase \ m_dm.testcase \ m_fath.testcase \ m_ft.testcase \ m_ft-text.testcase \ mi_m.testcase \ m_ind_ch.testcase \ m_ind_ft.testcase \ m_ind_yd.testcase \ minm1.testcase \ minm2.testcase \ minm3.testcase \ minm4.testcase \ minm5.testcase \ minm6.testcase \ m_in.testcase \ m_in_us.testcase \ minz1.testcase \ minz2.testcase \ minz3.testcase \ minz4.testcase \ minz5.testcase \ minz6.testcase \ m_km.testcase \ mlinefromtext1.testcase \ mlinefromtext2.testcase \ m_ln.testcase \ m_mi.testcase \ m_mm.testcase \ mm_m.testcase \ m_nm.testcase \ mpointfromtext1.testcase \ mpointfromtext2.testcase \ mpolygonfromtext1.testcase \ mpolygonfromtext2.testcase \ m_us_ch.testcase \ m_us_ft.testcase \ m_usmi.testcase \ m_yd.testcase \ m_yd_us.testcase \ ndims1.testcase \ ndims2.testcase \ ndims3.testcase \ ndims4.testcase \ ndims5.testcase \ ndims6.testcase \ nm_m.testcase \ normalizelonlat10.testcase \ normalizelonlat11.testcase \ normalizelonlat12.testcase \ normalizelonlat13.testcase \ normalizelonlat14.testcase \ normalizelonlat15.testcase \ normalizelonlat16.testcase \ normalizelonlat17.testcase \ normalizelonlat18.testcase \ normalizelonlat19.testcase \ normalizelonlat1.testcase \ normalizelonlat20.testcase \ normalizelonlat21.testcase \ normalizelonlat22.testcase \ normalizelonlat23.testcase \ normalizelonlat24.testcase \ normalizelonlat25.testcase \ normalizelonlat26.testcase \ normalizelonlat27.testcase \ normalizelonlat2.testcase \ normalizelonlat3.testcase \ normalizelonlat4.testcase \ normalizelonlat5.testcase \ normalizelonlat6.testcase \ normalizelonlat7.testcase \ normalizelonlat8.testcase \ normalizelonlat9.testcase \ npoints1.testcase \ npoints2.testcase \ npoints3.testcase \ npoints4.testcase \ npoints5.testcase \ npoints6.testcase \ nrings1.testcase \ nrings2.testcase \ nrings3.testcase \ nrings4.testcase \ nrings5.testcase \ nrings6.testcase \ numgeometries1.testcase \ numgeometries2.testcase \ numgeometries3.testcase \ numgeometries4.testcase \ numgeometries5.testcase \ numgeometries6.testcase \ NumPoints2.testcase \ NumPoints3.testcase \ NumPoints4.testcase \ NumPoints5.testcase \ NumPoints6.testcase \ NumPoints7.testcase \ NumPoints.testcase \ pointfromtext1.testcase \ pointfromtext2.testcase \ pointn10.testcase \ pointn11.testcase \ pointn12.testcase \ pointn13.testcase \ pointn14.testcase \ pointn15.testcase \ pointn1.testcase \ pointn2.testcase \ pointn3.testcase \ pointn4.testcase \ pointn5.testcase \ pointn6.testcase \ pointn7.testcase \ pointn8.testcase \ pointn9.testcase \ polygonfromtext1.testcase \ polygonfromtext2.testcase \ reflectcoords10.testcase \ reflectcoords11.testcase \ reflectcoords12.testcase \ reflectcoords13.testcase \ reflectcoords14.testcase \ reflectcoords15.testcase \ reflectcoords16.testcase \ reflectcoords17.testcase \ reflectcoords1.testcase \ reflectcoords2.testcase \ reflectcoords3.testcase \ reflectcoords4.testcase \ reflectcoords5.testcase \ reflectcoords6.testcase \ reflectcoords7.testcase \ reflectcoords8.testcase \ reflectcoords9.testcase \ removepoint10.testcase \ removepoint11.testcase \ removepoint12.testcase \ removepoint13.testcase \ removepoint14.testcase \ removepoint15.testcase \ removepoint16.testcase \ removepoint1.testcase \ removepoint2.testcase \ removepoint3.testcase \ removepoint4.testcase \ removepoint5.testcase \ removepoint6.testcase \ removepoint7.testcase \ removepoint8.testcase \ removepoint9.testcase \ reverse1.testcase \ reverse2.testcase \ reverse3.testcase \ reverse4.testcase \ reverse5.testcase \ reverse6.testcase \ ring10.testcase \ ring11.testcase \ ring12.testcase \ ring13.testcase \ ring14.testcase \ ring15.testcase \ ring16.testcase \ ring17.testcase \ ring18.testcase \ ring19.testcase \ ring1.testcase \ ring20.testcase \ ring21.testcase \ ring22.testcase \ ring23.testcase \ ring24.testcase \ ring25.testcase \ ring26.testcase \ ring27.testcase \ ring28.testcase \ ring2.testcase \ ring3.testcase \ ring4.testcase \ ring5.testcase \ ring6.testcase \ ring7.testcase \ ring8.testcase \ ring9.testcase \ rotatecoords10.testcase \ rotatecoords11.testcase \ rotatecoords12.testcase \ rotatecoords13.testcase \ rotatecoords14.testcase \ rotatecoords1.testcase \ rotatecoords2.testcase \ rotatecoords3.testcase \ rotatecoords4.testcase \ rotatecoords5.testcase \ rotatecoords6.testcase \ rotatecoords7.testcase \ rotatecoords8.testcase \ rotatecoords9.testcase \ routing1.testcase \ routing2.testcase \ routing3.testcase \ routing4.testcase \ routing5.testcase \ rtreealign1.testcase \ rtreealign2.testcase \ rtreealign3.testcase \ rtreealign4.testcase \ sandro.jpg \ sanitizeGeometry10.testcase \ sanitizeGeometry11.testcase \ sanitizeGeometry12.testcase \ sanitizeGeometry13.testcase \ sanitizeGeometry14.testcase \ sanitizeGeometry15.testcase \ sanitizeGeometry16.testcase \ sanitizeGeometry1.testcase \ sanitizeGeometry2.testcase \ sanitizeGeometry3.testcase \ sanitizeGeometry4.testcase \ sanitizeGeometry5.testcase \ sanitizeGeometry6.testcase \ sanitizeGeometry7.testcase \ sanitizeGeometry8.testcase \ sanitizeGeometry9.testcase \ scalecoords10.testcase \ scalecoords11.testcase \ scalecoords12.testcase \ scalecoords13.testcase \ scalecoords1.testcase \ scalecoords2.testcase \ scalecoords3.testcase \ scalecoords4.testcase \ scalecoords5.testcase \ scalecoords6.testcase \ scalecoords7.testcase \ scalecoords8.testcase \ scalecoords9.testcase \ seconds.wav \ setpoint10.testcase \ setpoint11.testcase \ setpoint12.testcase \ setpoint13.testcase \ setpoint14.testcase \ setpoint15.testcase \ setpoint16.testcase \ setpoint17.testcase \ setpoint18.testcase \ setpoint19.testcase \ setpoint1.testcase \ setpoint20.testcase \ setpoint21.testcase \ setpoint22.testcase \ setpoint23.testcase \ setpoint2.testcase \ setpoint3.testcase \ setpoint4.testcase \ setpoint5.testcase \ setpoint6.testcase \ setpoint7.testcase \ setpoint8.testcase \ setpoint9.testcase \ shiftcoords10.testcase \ shiftcoords11.testcase \ shiftcoords12.testcase \ shiftcoords13.testcase \ shiftcoords14.testcase \ shiftcoords15.testcase \ shiftcoords1.testcase \ shiftcoords2.testcase \ shiftcoords3.testcase \ shiftcoords4.testcase \ shiftcoords5.testcase \ shiftcoords6.testcase \ shiftcoords7.testcase \ shiftcoords8.testcase \ shiftcoords9.testcase \ shiftlongitude10.testcase \ shiftlongitude11.testcase \ shiftlongitude12.testcase \ shiftlongitude13.testcase \ shiftlongitude14.testcase \ shiftlongitude15.testcase \ shiftlongitude16.testcase \ shiftlongitude17.testcase \ shiftlongitude18.testcase \ shiftlongitude19.testcase \ shiftlongitude1.testcase \ shiftlongitude20.testcase \ shiftlongitude21.testcase \ shiftlongitude22.testcase \ shiftlongitude23.testcase \ shiftlongitude24.testcase \ shiftlongitude25.testcase \ shiftlongitude26.testcase \ shiftlongitude2.testcase \ shiftlongitude3.testcase \ shiftlongitude4.testcase \ shiftlongitude5.testcase \ shiftlongitude6.testcase \ shiftlongitude7.testcase \ shiftlongitude8.testcase \ shiftlongitude9.testcase \ spatialindex.testcase \ srid10.testcase \ srid11.testcase \ srid1.testcase \ srid2.testcase \ srid3.testcase \ srid4.testcase \ srid5.testcase \ srid6.testcase \ srid7.testcase \ srid8.testcase \ srid9.testcase \ SridFromAuthCRS2.testcase \ SridFromAuthCRS3.testcase \ SridFromAuthCRS4.testcase \ SridFromAuthCRS5.testcase \ SridFromAuthCRS6.testcase \ SridFromAuthCRS.testcase \ startpoint1.testcase \ startpoint2.testcase \ startpoint3.testcase \ st_m1.testcase \ st_m2.testcase \ st_m3.testcase \ st_m4.testcase \ st_m5.testcase \ st_m6.testcase \ st_m8.testcase \ st_x1.testcase \ st_x2.testcase \ st_x3.testcase \ st_x4.testcase \ st_x5.testcase \ st_x6.testcase \ st_x7.testcase \ st_x8.testcase \ st_x9.testcase \ st_y1.testcase \ st_y2.testcase \ st_y3.testcase \ st_y4.testcase \ st_y5.testcase \ st_y7.testcase \ st_y8.testcase \ st_y9.testcase \ st_z1.testcase \ st_z2.testcase \ st_z3.testcase \ st_z4.testcase \ st_z5.testcase \ st_z6.testcase \ st_z7.testcase \ st_z8.testcase \ st_z9.testcase \ swapcoords10.testcase \ swapcoords11.testcase \ swapcoords1.testcase \ swapcoords2.testcase \ swapcoords3.testcase \ swapcoords4.testcase \ swapcoords5.testcase \ swapcoords6.testcase \ swapcoords7.testcase \ swapcoords8.testcase \ swapcoords9.testcase \ testdb1.sqlite \ testFDO.sqlite \ testFGF.sqlite \ test.webp \ togars10.testcase \ togars11.testcase \ togars12.testcase \ togars13.testcase \ togars1.testcase \ togars2.testcase \ togars3.testcase \ togars4.testcase \ togars5.testcase \ togars6.testcase \ togars7.testcase \ togars8.testcase \ togars9.testcase \ translate10.testcase \ translate11.testcase \ translate12.testcase \ translate13.testcase \ translate14.testcase \ translate15.testcase \ translate16.testcase \ translate17.testcase \ translate18.testcase \ translate19.testcase \ translate1.testcase \ translate2.testcase \ translate3.testcase \ translate4.testcase \ translate5.testcase \ translate6.testcase \ translate7.testcase \ translate8.testcase \ translate9.testcase \ trivial.sqlite_RO \ uncompressgeom1.testcase \ uncompressgeom2.testcase \ uncompressgeom3.testcase \ unsafeTriggers1.testcase \ us_ch_m.testcase \ us_ft_m.testcase \ us_in_m.testcase \ us_mi_m.testcase \ us_yd_m.testcase \ wkb10.testcase \ wkb11.testcase \ wkb12.testcase \ wkb13.testcase \ wkb14.testcase \ wkb15.testcase \ wkb16.testcase \ wkb17.testcase \ wkb18.testcase \ wkb19.testcase \ wkb1.testcase \ wkb20.testcase \ wkb21.testcase \ wkb22.testcase \ wkb23.testcase \ wkb24.testcase \ wkb25.testcase \ wkb26.testcase \ wkb27.testcase \ wkb28.testcase \ wkb29.testcase \ wkb2.testcase \ wkb30.testcase \ wkb31.testcase \ wkb32.testcase \ wkb33.testcase \ wkb34.testcase \ wkb35.testcase \ wkb36.testcase \ wkb3.testcase \ wkb4.testcase \ wkb5.testcase \ wkb6.testcase \ wkb7.testcase \ wkb8.testcase \ wkb9.testcase \ wkbtosql1.testcase \ wkbtosql2.testcase \ wkbtosql3.testcase \ wkttosql1.testcase \ wkttosql2.testcase \ wkttosql3.testcase \ yd_m.testcase all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/sql_stmt_tests/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign test/sql_stmt_tests/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags: TAGS TAGS: ctags: CTAGS CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libspatialite-4.1.1/test/sql_stmt_tests/st_m2.testcase0000664000175000017500000000032212163502134020110 00000000000000ST_M2 :memory: #use in-memory database SELECT ST_M(MakePointZM(136, -35, 0.0038723129645, 635.2)); 1 # rows (not including the header row) 1 # columns ST_M(MakePointZM(136, -35, 0.0038723129645, 635.2)) 635.2 libspatialite-4.1.1/test/sql_stmt_tests/locatemeasure15.testcase0000664000175000017500000000075312163502134022073 00000000000000ST_Locate_Between_Measures - MultiPointZM :memory: #use in-memory database SELECT AsText(ST_Locate_Between_Measures(GeomFromText('MULTIPOINTZM(0 1 100 2.1, 1 0 101 1, 2 1 102 2.1, 3 0 103 2.2, 4 1 104 4, 5 0 105 2.5)'), 2, 3)); 1 # rows (not including the header row) 1 # columns AsText(ST_Locate_Between_Measures(GeomFromText('MULTIPOINTZM(0 1 100 2.1, 1 0 101 1, 2 1 102 2.1, 3 0 103 2.2, 4 1 104 4, 5 0 105 2.5)'), 2, 3)) MULTIPOINT ZM(0 1 100 2.1, 2 1 102 2.1, 3 0 103 2.2, 5 0 105 2.5) libspatialite-4.1.1/test/sql_stmt_tests/wkb3.testcase0000664000175000017500000000051412163502134017735 00000000000000Hex Wkb: MultiPoint XYM (single point) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("MULTIPOINTM(1.2 3.4 12)", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("MULTIPOINTM(1.2 3.4 12)", 4326))); 01D40700000100000001D1070000333333333333F33F3333333333330B400000000000002840 libspatialite-4.1.1/test/sql_stmt_tests/makearc22.testcase0000664000175000017500000000032712163502134020640 00000000000000makearc21 - BLOB step :memory: #use in-memory database SELECT MakeArc(0, 0, 100, 30, 60, 4326, zeroblob(4)); 1 # rows (not including the header row) 1 # columns MakeArc(0, 0, 100, 30, 60, 4326, zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/compressgeometry42.testcase0000664000175000017500000000075512163502133022652 00000000000000CompressGeometry - MULTIPOLYGON :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("MULTIPOLYGON(((10 10, 11 10, 11 11, 10 11, 10 10)), ((15 15, 16 15, 16 16, 15 16, 15 15)))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("MULTIPOLYGON(((10 10, 11 10, 11 11, 10 11, 10 10)), ((15 15, 16 15, 16 16, 15 16, 15 15)))", 4326))) MULTIPOLYGON(((10 10, 11 10, 11 11, 10 11, 10 10)), ((15 15, 16 15, 16 16, 15 16, 15 15))) libspatialite-4.1.1/test/sql_stmt_tests/asfgf2.testcase0000664000175000017500000000025212163502133020235 00000000000000asfgf - bad blob input :memory: #use in-memory database SELECT AsFGF(zeroblob(100), 1) 1 # rows (not including the header row) 1 # columns AsFGF(zeroblob(100), 1) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/casttotext15.testcase0000664000175000017500000000040312163502133021433 00000000000000CastToText() - DOUBLE, zero_pad :memory: #use in-memory database SELECT CastToText(123.456, 10), TypeOf(CastToText(123.456, 10)) 1 # rows (not including the header row) 2 # columns CastToText(123.456, 10) TypeOf(CastToText(123.456, 10)) 0000000123.456 text libspatialite-4.1.1/test/sql_stmt_tests/dissolve1.testcase0000664000175000017500000000046212163502133021001 00000000000000dissolve - POINT :memory: #use in-memory database SELECT AsText(DissolveSegments(geom)),AsText(DissolvePoints(geom)) from (SELECT GeomFromText("POINT(1 2)") as geom) dummy; 1 # rows (not including the header row) 2 # columns AsText(DissolveSegments(geom)) AsText(DissolvePoints(geom)) POINT(1 2) POINT(1 2)libspatialite-4.1.1/test/sql_stmt_tests/makepoint11.testcase0000664000175000017500000000035312163502134021221 00000000000000makepoint - MakepointZM, int args, SRID :memory: #use in-memory database SELECT AsText(MakePointZM(-71, 42, 3, 4, 4326)) 1 # rows (not including the header row) 1 # columns AsText(MakePointZM(-71, 42, 3, 4, 4326)) POINT ZM(-71 42 3 4) libspatialite-4.1.1/test/sql_stmt_tests/collect23.testcase0000664000175000017500000000050712163502133020662 00000000000000collect - PointZM, PointZM :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POINTZM(4 5 6 3.2)"), GeomFromText("POINTZM(1 2 5 4)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POINTZM(4 5 6 3.2)"), GeomFromText("POINTZM(1 2 5 4)"))) MULTIPOINT ZM(4 5 6 3.2, 1 2 5 4) libspatialite-4.1.1/test/sql_stmt_tests/casttomultipoint6.testcase0000664000175000017500000000051212163502133022574 00000000000000casttomultipoint - GEOMETRYCOLLECTION - 2 points :memory: #use in-memory database SELECT AsText(CastToMultiPoint(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2),POINT(4 8))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToMultiPoint(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2),POINT(4 8))"))) MULTIPOINT(1 2, 4 8) libspatialite-4.1.1/test/sql_stmt_tests/geomfromtext45.testcase0000664000175000017500000000141412163502134021760 00000000000000geomfromtext45 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONZM(POINTZM(9 9 9 7), GEOMETRYCOLLECTIONZM(POINTZM(0 0 9 7), LINESTRINGZM(1 1 9 7, 2 2 9 7)), POINTZM(8 8 9 7), GEOMETRYCOLLECTIONZM(POINTZM(3 3 9 7), LINESTRINGZM(4 4 9 7, 5 5 9 7)), POINTZM(7 7 9 7))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTIONZM(POINTZM(9 9 9 7), GEOMETRYCOLLECTIONZM(POINTZM(0 0 9 7), LINESTRINGZM(1 1 9 7, 2 2 9 7)), POINTZM(8 8 9 7), GEOMETRYCOLLECTIONZM(POINTZM(3 3 9 7), LINESTRINGZM(4 4 9 7, 5 5 9 7)), POINTZM(7 7 9 7))')); GEOMETRYCOLLECTION ZM(POINT ZM(9 9 9 7), POINT ZM(0 0 9 7), POINT ZM(8 8 9 7), POINT ZM(3 3 9 7), POINT ZM(7 7 9 7), LINESTRING ZM(1 1 9 7, 2 2 9 7), LINESTRING ZM(4 4 9 7, 5 5 9 7)) libspatialite-4.1.1/test/sql_stmt_tests/makeellipticsector13.testcase0000664000175000017500000000034712163502134023122 00000000000000makeellipticsector13 - text start :memory: #use in-memory database SELECT MakeEllipticSector(0, 0, 100, 200, 'alpha', 60); 1 # rows (not including the header row) 1 # columns MakeEllipticSector(0, 0, 100, 200, 'alpha', 60) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/asgml11.testcase0000664000175000017500000000022612163502133020333 00000000000000asgml - 2 arg :memory: #use in-memory database SELECT asgml(2, "hello"); 1 # rows (not including the header row) 1 # columns asgml(2, "hello") (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makepointz-null5.testcase0000664000175000017500000000037712163502134022314 00000000000000makepointz-null5 :memory: #use in-memory database SELECT AsText(MakePointZ(-26.0, 42.3150676015829, 0.0038723129645, 4326.0)); 1 # rows (not including the header row) 1 # columns AsText(MakePointZ(-26.0, 42.3150676015829, 0.0038723129645, 4326.0)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/mbr6.testcase0000664000175000017500000000036612163502134017742 00000000000000MbrContains - Point + bad blob (error) :memory: #use in-memory database SELECT MbrContains(GeomFromText("POINT(2 1)"), zeroblob(49)); 1 # rows (not including the header row) 1 # columns MbrContains(GeomFromText("POINT(2 1)"), zeroblob(49)) (NULL)libspatialite-4.1.1/test/sql_stmt_tests/fromgeojson31.testcase0000664000175000017500000000053512163502134021566 00000000000000FromGeoJSON - multipoint, default SRID :memory: #use in-memory database SELECT AsEWkt(GeomFromGeoJSON('{"type":"MultiPoint","bbox":[1,2,4,6],"coordinates":[[1,2],[4,6]]}')) 1 # rows (not including the header row) 1 # columns AsEWkt(GeomFromGeoJSON('{"type":"MultiPoint","bbox":[1,2,4,6],"coordinates":[[1,2],[4,6]]}')):0 SRID=0;MULTIPOINT(1 2,4 6) libspatialite-4.1.1/test/sql_stmt_tests/geomtype34.testcase0000664000175000017500000000053512163502134021072 00000000000000geometrytype - GEOMETRYCOLLECTIONZM only Linestring :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom) from (SELECT GeomFromText("GEOMETRYCOLLECTIONZM(LINESTRINGZM(4 6 0 0,7 10 0 0))") as geom) dummy; 1 # rows (not including the header row) 2 # columns GeometryType(geom) CoordDimension(geom) GEOMETRYCOLLECTION ZM XYZMlibspatialite-4.1.1/test/sql_stmt_tests/casttolinestring6.testcase0000664000175000017500000000051612163502133022552 00000000000000casttolinestring - GEOMETRY COLLECTION, 1 LINESTRING :memory: #use in-memory database SELECT AsText(CastToLineString(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(4 1, 3 4))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToLineString(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(4 1, 3 4))"))) LINESTRING(4 1, 3 4) libspatialite-4.1.1/test/sql_stmt_tests/buildmbr12.testcase0000664000175000017500000000026712163502133021036 00000000000000buildmbr - null args, no SRID :memory: #use in-memory database SELECT BuildMbr(5, 4, NULL, NULL) 1 # rows (not including the header row) 1 # columns BuildMbr(5, 4, NULL, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makepoint-null1.testcase0000664000175000017500000000031612163502134022107 00000000000000makepoint-null1 :memory: #use in-memory database SELECT AsText(MakePoint("hello", 42.3150676015829)); 1 # rows (not including the header row) 1 # columns AsText(MakePoint("hello", 42.3150676015829)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/removepoint1.testcase0000664000175000017500000000026612163502134021523 00000000000000ST_RemovePoint() - NULL line :memory: #use in-memory database SELECT ST_RemovePoint(NULL, NULL) 1 # rows (not including the header row) 1 # columns ST_RemovePoint(NULL, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/collect21.testcase0000664000175000017500000000050012163502133020651 00000000000000collect - PointZM, PointM :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POINTZM(4 5 6 3.2)"), GeomFromText("POINTM(1 2 4)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POINTZM(4 5 6 3.2)"), GeomFromText("POINTM(1 2 4)"))) MULTIPOINT ZM(4 5 6 3.2, 1 2 0 4) libspatialite-4.1.1/test/sql_stmt_tests/makeellipse21.testcase0000664000175000017500000000037012163502134021525 00000000000000makeellipse21 - valid step :memory: #use in-memory database SELECT ST_Length(MakeEllipse(0.0, 0.0, 100.0, 200.0, 4326, 1.0)); 1 # rows (not including the header row) 1 # columns ST_Length(MakeEllipse(0.0, 0.0, 100.0, 200.0, 4326, 1.0)) 968.8325:4 libspatialite-4.1.1/test/sql_stmt_tests/translate19.testcase0000664000175000017500000000037112163502134021237 00000000000000translate :memory: #use in-memory database SELECT AsText(ST_Translate(GeomFromText("POINTZM(1 2 3 4)"), 1, 3, 4)); 1 # rows (not including the header row) 1 # columns AsText(ST_Translate(GeomFromText("POINTZM(1 2 3 4)"), 1, 3, 4)) POINT ZM(2 5 7 4) libspatialite-4.1.1/test/sql_stmt_tests/fromgml20.testcase0000664000175000017500000000131012163502134020667 00000000000000FromGML - MultiPoint v3 3D :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('1 2 103 4 11')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('1 2 103 4 11')):0 SRID=4326;MULTIPOINT(1 2 10,3 4 11) libspatialite-4.1.1/test/sql_stmt_tests/mbr17.testcase0000664000175000017500000000060012163502134020013 00000000000000MbrEqual - Line + Toxic Polygon :memory: #use in-memory database SELECT MbrEqual(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))")); 1 # rows (not including the header row) 1 # columns MbrEqual(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))")) 0libspatialite-4.1.1/test/sql_stmt_tests/lhr3.testcase0000664000175000017500000000150612163502134017741 00000000000000forceLHR - GeometryCollection XY :memory: #use in-memory database SELECT AsEWKT(ST_ForceLHR(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2), LINESTRING(3 4, 5 6, 7 8, 9 9), POLYGON((10 10, 14 10, 12 12, 10 10), (11 10.5, 13 10.5, 12 11.5, 11 10.5)), POLYGON((20 20, 24 20, 22 18, 20 20), (21 19.5, 23 19.5, 22 18.5, 21 19.5)))"))); 1 # rows (not including the header row) 1 # columns AsEWKT(ST_ForceLHR(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2), LINESTRING(3 4, 5 6, 7 8, 9 9), POLYGON((10 10, 14 10, 12 12, 10 10), (11 10.5, 13 10.5, 12 11.5, 11 10.5)), POLYGON((20 20, 24 20, 22 18, 20 20), (21 19.5, 23 19.5, 22 18.5, 21 19.5)))"))) SRID=0;GEOMETRYCOLLECTION(POINT(1 2),LINESTRING(3 4,5 6,7 8,9 9),POLYGON((10 10,12 12,14 10,10 10),(11 10.5,13 10.5,12 11.5,11 10.5)),POLYGON((20 20,24 20,22 18,20 20),(21 19.5,22 18.5,23 19.5,21 19.5))) libspatialite-4.1.1/test/sql_stmt_tests/geomfromtext36.testcase0000664000175000017500000000114012163502134021754 00000000000000geomfromtext36 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTION(POINT(9 9), GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1, 2 2)), POINT(8 8), GEOMETRYCOLLECTION(POINT(3 3), LINESTRING(4 4, 5 5)), POINT(7 7))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTION(POINT(9 9), GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1, 2 2)), POINT(8 8), GEOMETRYCOLLECTION(POINT(3 3), LINESTRING(4 4, 5 5)), POINT(7 7))')); GEOMETRYCOLLECTION(POINT(9 9), POINT(0 0), POINT(8 8), POINT(3 3), POINT(7 7), LINESTRING(1 1, 2 2), LINESTRING(4 4, 5 5)) libspatialite-4.1.1/test/sql_stmt_tests/compressgeometry55.testcase0000664000175000017500000000104312163502133022645 00000000000000CompressGeometry - GEOMETRYCOLLECTION Z (2 Linestrings) :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONZ(LINESTRINGZ(1 2 100, 3 4 101, 5 6 102), LINESTRINGZ(7 7 101, 8 8 102, 9 9 103))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONZ(LINESTRINGZ(1 2 100, 3 4 101, 5 6 102), LINESTRINGZ(7 7 101, 8 8 102, 9 9 103))", 4326))) GEOMETRYCOLLECTION Z(LINESTRING Z(1 2 100, 3 4 101, 5 6 102), LINESTRING Z(7 7 101, 8 8 102, 9 9 103)) libspatialite-4.1.1/test/sql_stmt_tests/garsmbr26.testcase0000664000175000017500000000026512163502134020677 00000000000000garsmbr - bad latitude - 7 :memory: #use in-memory database SELECT AsText(GARSMbr("001--14")) 1 # rows (not including the header row) 1 # columns AsText(GARSMbr("001--14")) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geomtype33.testcase0000664000175000017500000000063112163502134021066 00000000000000geometrytype - GEOMETRYCOLLECTIONZ only linestring :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("GEOMETRYCOLLECTIONZ(LINESTRINGZ(4 6 0, 10 0 0))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) GEOMETRYCOLLECTION Z XYZ GEOMETRYCOLLECTIONlibspatialite-4.1.1/test/sql_stmt_tests/forcenull15.testcase0000664000175000017500000000031512163502134021225 00000000000000ForceAsNull() - BLOB/TEXT :memory: #use in-memory database SELECT Hex(ForceAsNull(x'0102a1b2', 'alpha')) 1 # rows (not including the header row) 1 # columns Hex(ForceAsNull(x'0102a1b2', 'alpha')) 0102A1B2 libspatialite-4.1.1/test/sql_stmt_tests/compressgeometry23.testcase0000664000175000017500000000045012163502133022641 00000000000000CompressGeometry - LINESTRING :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("LINESTRING(1 2, 3 4, 5 6)", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("LINESTRING(1 2, 3 4, 5 6)", 4326))) LINESTRING(1 2, 3 4, 5 6) libspatialite-4.1.1/test/sql_stmt_tests/fromgml13.testcase0000664000175000017500000000261512163502134020702 00000000000000FromGML - MultiPolygon v2 :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('0,0 5,0 5,5 0,5 0,01,1 2,1 2,2 1,2 1,16,6 7,6 7,7 6,7 6,6')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('0,0 5,0 5,5 0,5 0,01,1 2,1 2,2 1,2 1,16,6 7,6 7,7 6,7 6,6')):0 SRID=4326;MULTIPOLYGON(((0 0,5 0,5 5,0 5,0 0),(1 1,2 1,2 2,1 2,1 1)),((6 6,7 6,7 7,6 7,6 6))) libspatialite-4.1.1/test/sql_stmt_tests/addpoint6.testcase0000664000175000017500000000035612163502133020762 00000000000000ST_AddPoint() - NULL Point :memory: #use in-memory database SELECT ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), NULL) 1 # rows (not including the header row) 1 # columns ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/collect36.testcase0000664000175000017500000000067412163502133020673 00000000000000collect - LineStringZM, LineStringZ :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("LINESTRINGZM(1 2 4 1, 3 4 2 2)"), GeomFromText("LINESTRINGZ(4 5 3.2, 1 2 4.6, 4 2 3.1)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("LINESTRINGZM(1 2 4 1, 3 4 2 2)"), GeomFromText("LINESTRINGZ(4 5 3.2, 1 2 4.6, 4 2 3.1)"))) MULTILINESTRING ZM((1 2 4 1, 3 4 2 2), (4 5 3.2 0, 1 2 4.6 0, 4 2 3.1 0)) libspatialite-4.1.1/test/sql_stmt_tests/casttomultipoint7.testcase0000664000175000017500000000056512163502133022605 00000000000000casttomultipoint - GEOMETRYCOLLECTION - 2 points and linestring :memory: #use in-memory database SELECT AsText(CastToMultiPoint(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2),POINT(4 8),LINESTRING(0 1, 2 3))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToMultiPoint(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2),POINT(4 8),LINESTRING(0 1, 2 3))"))) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geomtype44.testcase0000664000175000017500000000072112163502134021070 00000000000000geometrytype - GEOMETRYCOLLECTIONZ - linestring and polygon :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("GEOMETRYCOLLECTIONZ(LINESTRINGZ(4 6 0,7 10 0, 12 3 1),POLYGONZ((4 6 1,7 10 1, 12 3 2, 4 6 1)))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) GEOMETRYCOLLECTION Z XYZ GEOMETRYCOLLECTIONlibspatialite-4.1.1/test/sql_stmt_tests/casttomultilinestring6.testcase0000664000175000017500000000062512163502133023626 00000000000000casttomultilinestring - GEOMETRY COLLECTION, LINESTRING and POLYGON :memory: #use in-memory database SELECT AsText(CastToMultiLineString(GeomFromText("GEOMETRYCOLLECTION(POLYGON((4 3, 4 1, 0 3, 4 3)),LINESTRING(4 1, 3 4))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToMultiLineString(GeomFromText("GEOMETRYCOLLECTION(POLYGON((4 3, 4 1, 0 3, 4 3)),LINESTRING(4 1, 3 4))"))) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/wkb25.testcase0000664000175000017500000000147112163502134020024 00000000000000Hex Wkb: GeometryCollection XY (2 polygons) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTION(POLYGON((10 10, 11 10, 11 11, 10 11, 10 10)), POLYGON((15 15, 16 15, 16 16, 15 16, 15 15)))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTION(POLYGON((10 10, 11 10, 11 11, 10 11, 10 10)), POLYGON((15 15, 16 15, 16 16, 15 16, 15 15)))", 4326))); 010700000002000000010300000001000000050000000000000000002440000000000000244000000000000026400000000000002440000000000000264000000000000026400000000000002440000000000000264000000000000024400000000000002440010300000001000000050000000000000000002E400000000000002E4000000000000030400000000000002E40000000000000304000000000000030400000000000002E4000000000000030400000000000002E400000000000002E40 libspatialite-4.1.1/test/sql_stmt_tests/geomtype39.testcase0000664000175000017500000000061112163502134021072 00000000000000geometrytype - GEOMETRYCOLLECTIONM - one point :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("GEOMETRYCOLLECTIONM(POINTM(3 3 29))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) GEOMETRYCOLLECTION M XYM GEOMETRYCOLLECTIONlibspatialite-4.1.1/test/sql_stmt_tests/expand6.testcase0000664000175000017500000000024112163502134020431 00000000000000Expand - non-geom :memory: #use in-memory database SELECT ST_Expand("hello", 1) 1 # rows (not including the header row) 1 # columns ST_Expand("hello", 1) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/fromgeojson12.testcase0000664000175000017500000000066512163502134021571 00000000000000FromGeoJSON - linestring with SRID :memory: #use in-memory database SELECT AsEWkt(GeomFromGeoJSON('{"type":"LineString","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"coordinates":[[1,2.3],[4,1.2]]}')) 1 # rows (not including the header row) 1 # columns AsEWkt(GeomFromGeoJSON('{"type":"LineString","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"coordinates":[[1,2.3],[4,1.2]]}')):0 SRID=3003;LINESTRING(1 2.3,4 1.2) libspatialite-4.1.1/test/sql_stmt_tests/makeellipticsector5.testcase0000664000175000017500000000034512163502134023041 00000000000000makeellipticsector5 - text cy :memory: #use in-memory database SELECT MakeEllipticSector(0, 'alpha', 100, 200, 30, 60); 1 # rows (not including the header row) 1 # columns MakeEllipticSector(0, 'alpha', 100, 200, 30, 60) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/garsmbr12.testcase0000664000175000017500000000023412163502134020666 00000000000000garsmbr - bad coords :memory: #use in-memory database SELECT GARSMbr("AA123A") 1 # rows (not including the header row) 1 # columns GARSMbr("AA123A") (NULL) libspatialite-4.1.1/test/sql_stmt_tests/addpoint20.testcase0000664000175000017500000000046612163502133021040 00000000000000ST_AddPoint() - append (negative index) :memory: #use in-memory database SELECT AsText(AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1), -1)) 1 # rows (not including the header row) 1 # columns AsText(AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1), -1)) LINESTRING(0 0, 1 0, 1 1) libspatialite-4.1.1/test/sql_stmt_tests/dissolve20.testcase0000664000175000017500000000107312163502133021061 00000000000000dissolve - POLYGON M :memory: #use in-memory database SELECT AsText(DissolveSegments(geom)),AsText(DissolvePoints(geom)) from (SELECT GeomFromText("POLYGONM((0 0 4,10 0 5,10 10 6,0 10 7,0 0 4),(1 1 2, 2 2 3, 2 1 4, 1 1 2))") as geom) dummy; 1 # rows (not including the header row) 2 # columns AsText(DissolveSegments(geom)) AsText(DissolvePoints(geom)) MULTILINESTRING M((0 0 4, 10 0 5), (10 0 5, 10 10 6), (10 10 6, 0 10 7), (0 10 7, 0 0 4), (1 1 2, 2 2 3), (2 2 3, 2 1 4), (2 1 4, 1 1 2)) MULTIPOINT M(0 0 4, 10 0 5, 10 10 6, 0 10 7, 0 0 4, 1 1 2, 2 2 3, 2 1 4, 1 1 2) libspatialite-4.1.1/test/sql_stmt_tests/addpoint12.testcase0000664000175000017500000000042012163502133021027 00000000000000ST_AddPoint() - DOUBLE index :memory: #use in-memory database SELECT ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1), 1.1) 1 # rows (not including the header row) 1 # columns ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1), 1.1) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/casttomultipoint1.testcase0000664000175000017500000000027512163502133022575 00000000000000casttomultipoint - bad blob :memory: #use in-memory database SELECT CastToMultiPoint(zeroblob(99)) 1 # rows (not including the header row) 1 # columns CastToMultiPoint(zeroblob(99)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/compressgeometry51.testcase0000664000175000017500000000062412163502133022645 00000000000000CompressGeometry - GEOMETRYCOLLECTION Z (2 Points) :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(1 2 100), POINTZ(3 4 101))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(1 2 100), POINTZ(3 4 101))", 4326))) GEOMETRYCOLLECTION Z(POINT Z(1 2 100), POINT Z(3 4 101)) libspatialite-4.1.1/test/sql_stmt_tests/link_m.testcase0000664000175000017500000000023012163502134020333 00000000000000links to metres :memory: #use in-memory database SELECT CvtFromLink(4971); 1 # rows (not including the header row) 1 # columns CvtFromLink(4971) 1000:4 libspatialite-4.1.1/test/sql_stmt_tests/collectextract14.testcase0000664000175000017500000000043612163502133022256 00000000000000Collection Extract - Extract linestring from point :memory: #use in-memory database SELECT AsText(CollectionExtract(GeomFromText("MULTIPOINT(1 2, 4 2)"), 2)); 1 # rows (not including the header row) 1 # columns AsText(CollectionExtract(GeomFromText("MULTIPOINT(1 2, 4 2)"), 2)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makecircularstripe11.testcase0000664000175000017500000000035512163502134023125 00000000000000makecircularstripe11 - BLOB start :memory: #use in-memory database SELECT MakeCircularStripe(0, 0, 100, 90, zeroblob(4), 60); 1 # rows (not including the header row) 1 # columns MakeCircularStripe(0, 0, 100, 90, zeroblob(4), 60) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/routing4.testcase0000664000175000017500000000061312163502134020642 00000000000000routing: integer ids (A*, from-to) sql_stmt_tests/testdb1.sqlite UPDATE roads_net SET Algorithm = 'A*'; SELECT Algorithm, ArcRowid, NodeFrom, NodeTo, Cost FROM roads_net WHERE NodeTo = 32 AND NodeFrom = 29; 4 # rows (not including the header row) 5 # columns Algorithm ArcRowid NodeFrom NodeTo Cost A* (NULL) 29 32 0.001856:6 A* 29 29 30 0.000512:6 A* 30 30 31 0.000445:6 A* 31 31 32 0.000898:6 libspatialite-4.1.1/test/sql_stmt_tests/togars6.testcase0000664000175000017500000000024012163502134020450 00000000000000togars - bad blob :memory: #use in-memory database SELECT ToGARS(zeroblob(100)) 1 # rows (not including the header row) 1 # columns ToGARS(zeroblob(100)) (NULL)libspatialite-4.1.1/test/sql_stmt_tests/fromgml14.testcase0000664000175000017500000000255712163502134020710 00000000000000FromGML - MultiPolygon v3 :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('0 0 5 0 5 5 0 5 0 01 1 2 1 2 2 1 2 1 16 6 7 6 7 7 6 7 6 6')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('0 0 5 0 5 5 0 5 0 01 1 2 1 2 2 1 2 1 16 6 7 6 7 7 6 7 6 6')):0 SRID=4326;MULTIPOLYGON(((0 0,5 0,5 5,0 5,0 0),(1 1,2 1,2 2,1 2,1 1)),((6 6,7 6,7 7,6 7,6 6))) libspatialite-4.1.1/test/sql_stmt_tests/asewkb13.testcase0000664000175000017500000000240412163502133020506 00000000000000asewkb - POLYGONZ :memory: #use in-memory database SELECT Hex(AsEWKB(GeomFromText("POLYGONZ((0 0 0,10 0 0,10 10 0,0 10 0,0 0 0),(1 1 0,2 2 0, 2 1 0, 1 1 0))", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsEWKB(GeomFromText("POLYGONZ((0 0 0,10 0 0,10 10 0,0 10 0,0 0 0),(1 1 0,2 2 0, 2 1 0, 1 1 0))", 4326))) 535249443D343332363B30313033303030303830303230303030303030353030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303234343030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303234343030303030303030303030303032343430303030303030303030303030303030303030303030303030303030303030303030303030303030303030303032343430303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303034303030303030303030303030303030303030463033463030303030303030303030304630334630303030303030303030303030303030303030303030303030303030303034303030303030303030303030303030343030303030303030303030303030303030303030303030303030303030303034303030303030303030303030304630334630303030303030303030303030303030303030303030303030303030463033463030303030303030303030304630334630303030303030303030303030303030 libspatialite-4.1.1/test/sql_stmt_tests/rotatecoords14.testcase0000664000175000017500000000222412163502134021744 00000000000000rotate coords - Two ring polygonzm :memory: #use in-memory database SELECT AsText(RotateCoords(geom, 0)), AsText(RotateCoords(geom, 90.0)), AsText(RotateCoords(geom, 180.0)), AsText(RotateCoords(geom, -90)), RotateCoords(zeroblob(20), 10), RotateCoords(geom, "hello"), RotateCoords("foo", 30) FROM (SELECT GeomFromText("POLYGONZM((0 0 1 1, 2 2 2 2, 2 4 3 3, -2 2 4 4, 0 0 1 1),(0 0 5 0, 1 1 6 1, 1 2 7 2, -1 1 8 3, 0 0 5 0))") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(RotateCoords(geom, 0)) AsText(RotateCoords(geom, 90.0)) AsText(RotateCoords(geom, 180.0)) AsText(RotateCoords(geom, -90)) RotateCoords(zeroblob(20), 10) RotateCoords(geom, "hello") RotateCoords("foo", 30) POLYGON ZM((0 0 1 1, 2 2 2 2, 2 4 3 3, -2 2 4 4, 0 0 1 1), (0 0 5 0, 1 1 6 1, 1 2 7 2, -1 1 8 3, 0 0 5 0)) POLYGON ZM((0 0 1 1, 2 -2 2 2, 4 -2 3 3, 2 2 4 4, 0 0 1 1), (0 0 5 0, 1 -1 6 1, 2 -1 7 2, 1 1 8 3, 0 0 5 0)) POLYGON ZM((0 0 1 1, -2 -2 2 2, -2 -4 3 3, 2 -2 4 4, 0 0 1 1), (0 0 5 0, -1 -1 6 1, -1 -2 7 2, 1 -1 8 3, 0 0 5 0)) POLYGON ZM((0 0 1 1, -2 2 2 2, -4 2 3 3, -2 -2 4 4, 0 0 1 1), (0 0 5 0, -1 1 6 1, -2 1 7 2, -1 -1 8 3, 0 0 5 0)) (NULL) (NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/fromgeojson24.testcase0000664000175000017500000000241412163502134021566 00000000000000FromGeoJSON - geometry collection, SRID :memory: #use in-memory database SELECT AsEWkt(GeomFromGeoJSON('{"type":"GeometryCollection","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"bbox":[4,3,12,10],"geometries":[{"type":"Point","coordinates":[4,6]},{"type":"Polygon","coordinates":[[[4,6],[7,10],[12,3],[4,6]]]},{"type":"LineString","coordinates":[[8,-2],[0.2,3.2]]},{"type":"Point","coordinates":[-4,2.4]},{"type":"Point","coordinates":[1,-4]},{"type":"LineString","coordinates":[[4,6],[1.2,4]]},{"type":"Polygon","coordinates":[[[1,0],[2,3],[4,3],[1,0]]]}]}')) 1 # rows (not including the header row) 1 # columns AsEWkt(GeomFromGeoJSON('{"type":"GeometryCollection","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"bbox":[4,3,12,10],"geometries":[{"type":"Point","coordinates":[4,6]},{"type":"Polygon","coordinates":[[[4,6],[7,10],[12,3],[4,6]]]},{"type":"LineString","coordinates":[[8,-2],[0.2,3.2]]},{"type":"Point","coordinates":[-4,2.4]},{"type":"Point","coordinates":[1,-4]},{"type":"LineString","coordinates":[[4,6],[1.2,4]]},{"type":"Polygon","coordinates":[[[1,0],[2,3],[4,3],[1,0]]]}]}')):0 SRID=3003;GEOMETRYCOLLECTION(POINT(4 6),POINT(-4 2.4),POINT(1 -4),LINESTRING(8 -2,0.2 3.2),LINESTRING(4 6,1.2 4),POLYGON((4 6,7 10,12 3,4 6)),POLYGON((1 0,2 3,4 3,1 0))) libspatialite-4.1.1/test/sql_stmt_tests/addpoint8.testcase0000664000175000017500000000035612163502133020764 00000000000000ST_AddPoint() - DOUBLE Point :memory: #use in-memory database SELECT ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), 1.5) 1 # rows (not including the header row) 1 # columns ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), 1.5) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makeellipse10.testcase0000664000175000017500000000027312163502134021525 00000000000000makeellipse10 - NULL y_axis :memory: #use in-memory database SELECT MakeEllipse(0, 0, 100, NULL); 1 # rows (not including the header row) 1 # columns MakeEllipse(0, 0, 100, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/numgeometries1.testcase0000664000175000017500000000026312163502134022034 00000000000000numgeometries - bad blob :memory: #use in-memory database SELECT NumGeometries(zeroblob(99)) 1 # rows (not including the header row) 1 # columns NumGeometries(zeroblob(99)) (NULL)libspatialite-4.1.1/test/sql_stmt_tests/makeline15.testcase0000664000175000017500000000045512163502134021026 00000000000000makeline15 :memory: #use in-memory database SELECT AsText(MakeLine(GeomFromText("POINTZ(0 0 4)"), GeomFromText("POINTM(1 2 0.4)"))); 1 # rows (not including the header row) 1 # columns AsText(MakeLine(GeomFromText("POINTZ(0 0 4)"), GeomFromText("POINTM(1 2 0.4)"))) LINESTRING ZM(0 0 4 0, 1 2 0 0.4) libspatialite-4.1.1/test/sql_stmt_tests/createrastercoverages.testcase0000664000175000017500000000026512163502133023454 00000000000000CreateRasterCoveragesTable :memory: #use in-memory database SELECT CreateRasterCoveragesTable(); 1 # rows (not including the header row) 1 # columns CreateRasterCoveragesTable() 1 libspatialite-4.1.1/test/sql_stmt_tests/badwkt2.testcase0000664000175000017500000000035612163502133020430 00000000000000bad WKT: Linestring :memory: #use in-memory database SELECT GeomFromText("LINESTRING(11.2 12.3, 11.3 12.4, 11.4 12.5"); 1 # rows (not including the header row) 1 # columns GeomFromText("LINESTRING(11.2 12.3, 11.3 12.4, 11.4 12.5") (NULL) libspatialite-4.1.1/test/sql_stmt_tests/shiftlongitude2.testcase0000664000175000017500000000040612163502134022201 00000000000000shiftlongitude - negative long :memory: #use in-memory database SELECT AsText(ST_Shift_Longitude(GeomFromText("POINT(-90 2)", 4326))) 1 # rows (not including the header row) 1 # columns AsText(ST_Shift_Longitude(GeomFromText("POINT(-90 2)", 4326))) POINT(270 2) libspatialite-4.1.1/test/sql_stmt_tests/geometryn5.testcase0000664000175000017500000000060512163502134021166 00000000000000Geometry N - toxic blob :memory: #use in-memory database SELECT AsText(GeometryN(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"), 1)); 1 # rows (not including the header row) 1 # columns AsText(GeometryN(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"), 1)) POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5)) libspatialite-4.1.1/test/sql_stmt_tests/makeellipse5.testcase0000664000175000017500000000030012163502134021440 00000000000000makeellipse5 - text cy :memory: #use in-memory database SELECT MakeEllipse(0, 'alpha', 100, 200); 1 # rows (not including the header row) 1 # columns MakeEllipse(0, 'alpha', 100, 200) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/fromewkt30.testcase0000664000175000017500000000116012163502134021066 00000000000000fromewkt30 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(POINT(9 9), GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1, 2 2)), POINT(8 8), GEOMETRYCOLLECTION(POINT(3 3), LINESTRING(4 4, 5 5)), POINT(7 7))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(POINT(9 9), GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1, 2 2)), POINT(8 8), GEOMETRYCOLLECTION(POINT(3 3), LINESTRING(4 4, 5 5)), POINT(7 7))')); GEOMETRYCOLLECTION(POINT(9 9), POINT(0 0), POINT(8 8), POINT(3 3), POINT(7 7), LINESTRING(1 1, 2 2), LINESTRING(4 4, 5 5)) libspatialite-4.1.1/test/sql_stmt_tests/makecircularstripe26.testcase0000664000175000017500000000036112163502134023130 00000000000000makecircularstripe26 - BLOB radius #2 :memory: #use in-memory database SELECT MakeCircularStripe(0, 0, 100, zeroblob(4), 30, 60); 1 # rows (not including the header row) 1 # columns MakeCircularStripe(0, 0, 100, zeroblob(4), 30, 60) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geomfromtext4.testcase0000664000175000017500000000025712163502134021677 00000000000000geomfromtext4 :memory: #use in-memory database SELECT GeomFromText("POINT(0 1 2 3)"); 1 # rows (not including the header row) 1 # columns GeomFromText("POINT(0 1 2 3)") (NULL)libspatialite-4.1.1/test/sql_stmt_tests/badGML4.testcase0000664000175000017500000000137312163502133020244 00000000000000bad GML: Polygon :memory: #use in-memory database SELECT GeomFromGML('0,0 4,0 4,4 0,4 0,01,1 2,1 2,2 1,2 1,10,0 4,0 4,4 0,4 0,01,1 2,1 2,2 1,2 1,1SAP1|`$A`A>SA|P1|`$A`A>SAn@2001/04/13 KR;@n &3tablep05p05 CREATE TABLE 'p05' ( OGC_FID INTEGER PRIMARY KEY, GEOMETRY BLOB , 'feature_id' FLOAT, 'code' INTEGER, 'sub_type' INTEGER, 'datum' VARCHAR, 'code_firma' INTEGER, 'aufn_art' INTEGER, 'objectid' FLOAT, 'ort_id' INTEGER, 'text_d' VARCHAR, 'text_i' VARCHAR, 'text_l' VARCHAR, 'text_dil' VARCHAR, 'text_code' FLOAT, 'hoehe' FLOAT, 'hoehe_max' FLOAT, 'hoehe_rel' FLOAT, 'melde_code' FLOAT, 'hausnr' VARCHAR, 'geb_id' FLOAT, 'id_strasse' FLOAT, 'textur' VARCHAR, 'gueltig_v' VARCHAR, 'gueltig_b' VARCHAR, 'e_id' FLOAT, 'winkel' INTEGER)ug!!LINESTRING (665085.100727885961533 5170408.406696654856205 302.82,665085.961702213971876 5170407.155712282285094 302.82,665087.103690737741999 5170408.28568262886256 302.82)2003/09/06 /)R;2005/09/01Ohvi!!LINESTRING (665084.531706119771115 5170404.447772771120071 302.82,665085.392680447548628 5170403.196788399480283 302.82,665086.534668971551582 5170404.326758746989071 302.82)2003/09/06 /(R;2005/09/01Ohte!!LINESTRING (665083.961684371111915 5170400.488848899491131 302.82,665084.8226586910896 5170399.236864545382559 302.82,665085.964647214976139 5170400.366834891960025 302.82)2003/09/06 /'R;2005/09/01Ohug!!LINESTRING (665083.392662604805082 5170396.52992501668632 302.82,665084.253636924782768 5170395.277940663509071 302.82,665085.395625448436476 5170396.407911010086536 302.82)2003/09/06 /&R;2005 tablel05l05 CREATE TABLE 'l05' ( OGC_FID INTEGER PRIMARY KEY, WKT_GEOMETRY VARCHAR , 'feature_id' FLOAT, 'code' INTEGER, 'sub_type' INTEGER, 'datum' VARCHAR, 'code_firma' INTEGER, 'aufn_art' INTEGER, 'objectid' FLOAT, 'ort_id' INTEGER, 'text_d' VARCHAR, 'text_i' VARCHAR, 'text_l' VARCHAR, 'text_dil' VARCHAR, 'text_code' FLOAT, 'hoehe' FLOAT, 'hoehe_max' FLOAT, 'hoehe_rel' FLOAT, 'melde_code' FLOAT, 'hausnr' VARCHAR, 'geb_id' FLOAT, 'id_strasse' FLOAT, 'gueltig_v' VARCHAR, 'gueltig_b' VARCHAR, 'e_id' FLOAT, 'winkel' INTEGER)!?!$rS$A{΍SA@3/u@S$AnSAG-u@*S$A&npSA,u@(S$A9-SA`*u@ S$A'SA`*u@+1997/03/07 :R;['^!@a:*aS$A SA@ v@P NgS$AlSA@ v@)>jS$AXdSAv@K jS$ASAGv@+1997/03/07 9R;[G!w mWS$A;tSA`fw@1-6IXS$AދxSA@w@9#>[S$Aa8dSAw@b^S$AH7$SA w@-5IcS$A/MSA w@YlfS$Ar;* SAw@lspSjS$A SAw@qWXnS$ARFrSAzw@|7%qS$A; SAw@FtS$AB!fSAzw@XabvS$ASA w@@}S$A\SA`fw@o]S$AwўSA w@6fS$A0-dSA \w@zS$ADSA@3w@?]*S$A||SA@3w@-1997/03/07 8R;[ݔv~!?>S$AkSAࣘw@) kXS$ASA`w@+1997/03/07   tablel06l06CREATE TABLE 'l06' ( OGC_FID INTEGER PRIMARY KEY, GEOMETRY BLOB , 'feature_id' FLOAT, 'code' INTEGER, 'sub_type' INTEGER, 'datum' VARCHAR, 'code_firma' INTEGER, 'aufn_art' INTEGER, 'objectid' FLOAT, 'ort_id' INTEGER, 'text_d' VARCHAR, 'text_i' VARCHAR, 'text_l' VARCHAR, 'text_dil' VARCHAR, 'text_code' FLOAT, 'hoehe' FLOAT, 'hoehe_max' FLOAT, 'hoehe_rel' FLOAT, 'melde_code' FLOAT, 'hausnr' VARCHAR, 'geb_id' FLOAT, 'id_strasse' FLOAT, 'gueltig_v' VARCHAR, 'gueltig_b' VARCHAR, 'e_id' FLOAT, 'winkel' INTEGER)'w|!P/?R$AݗSAwrS$A2ԙSA v@IsS$AfYSA v@sS$A+%pSA v@91997/03/07& %#"  tablel07l07CREATE TABLE 'l07' ( OGC_FID INTEGER PRIMARY KEY, GEOMETRY BLOB , 'feature_id' FLOAT, 'code' INTEGER, 'sub_type' INTEGER, 'datum' VARCHAR, 'code_firma' INTEGER, 'aufn_art' INTEGER, 'objectid' FLOAT, 'ort_id' INTEGER, 'text_d' VARCHAR, 'text_i' VARCHAR, 'text_l' VARCHAR, 'text_dil' VARCHAR, 'text_code' FLOAT, 'hoehe' FLOAT, 'hoehe_max' FLOAT, 'hoehe_rel' FLOAT, 'melde_code' FLOAT, 'hausnr' VARCHAR, 'geb_id' FLOAT, 'id_strasse' FLOAT, 'gueltig_v' VARCHAR, 'gueltig_b' VARCHAR, 'e_id' FLOAT, 'winkel' INTEGER) a.m!POLYGON ((666671.722027849Y2Q)B< :96421  tablef04f04CREATE TABLE 'f04' ( OGC_FID INTEGER PRIMARY KEY, WKT_GEOMETRY VARCHAR , 'feature_id' FLOAT, 'code' INTEGER, 'sub_type' INTEGER, 'datum' VARCHAR, 'code_firma' INTEGER, 'aufn_art' INTEGER, 'objectid' FLOAT, 'ort_id' INTEGER, 'text_d' VARCHAR, 'text_i' VARCHAR, 'text_l' VARCHAR, 'text_dil' VARCHAR, 'text_code' FLOAT, 'hoehe' FLOAT, 'hoehe_max' FLOAT, 'hoehe_rel' FLOAT, 'melde_code' FLOAT, 'hausnr' VARCHAR, 'geb_id' FLOAT, 'id_strasse' FLOAT, 'gueltig_v' VARCHAR, 'gueltig_b' VARCHAR, 'e_id' FLOAT, 'winkel' INTEGER)v&!!t %)W$AXQ KSARq@҅W$A/]JSA{Gq@W$A 'JSAr@S\W$A%JSAףp= r@mV\W$A&dJSAףp= r@AW$APRjJSAQr@'W$AhJSARq@t %)W$AXQ KSARq@ǫ 2003/09/06 /lR;2005/09/01M&!!\W$An#*W@SA(\q@ (W$AC6]J@SA33333q@6W$A)?SA33333q@Ǩ(W$AR>SAHzq@uGW$A=SAHzq@k(W$A>SAQq@SW$A.@SA(\q@\W$An#*W@SA(\q@ǫ 2003/09/06 /kR;2005/09/01M-V!! -[W$A}'SA= ףpq@ W$ADEW'SA= ףpq@X$AE{x&SAGzq@}[X$A;&SAGzq@X$Ak&SAGzq@\(W$A﬽&SAGzq@)̎W$A'SAGzq@f(W$Ad'SA= ףpq@-[W$A}'SA= ףpq@ǫ 2003/09/06 /jR;2005/09/01M}v!!'s楠V$A zSAq@ñNW$AakAiBf edc  tablef05f05CREATE TABLE 'f05' ( OGC_FID INTEGER PRIMARY KEY, GEOMETRY BLOB , 'feature_id' FLOAT, 'code' INTEGER, 'sub_type' INTEGER, 'datum' VARCHAR, 'code_firma' INTEGER, 'aufn_art' INTEGER, 'objectid' FLOAT, 'ort_id' INTEGER, 'text_d' VARCHAR, 'text_i' VARCHAR, 'text_l' VARCHAR, 'text_dil' VARCHAR, 'text_code' FLOAT, 'hoehe' FLOAT, 'hoehe_max' FLOAT, 'hoehe_rel' FLOAT, 'melde_code' FLOAT, 'hausnr' VARCHAR, 'geb_id' FLOAT, 'id_strasse' FLOAT, 'gueltig_v' VARCHAR, 'gueltig_b' VARCHAR, 'e_id' FLOAT, 'winkel' INTEGER)}D!!Pmߧ0X$A0m SA˜߉X$AY#SA|5mߧ0X$ASAQq@q8X$APSA(\©q@Ԯ7X$AXNgSAQq@C6X$A.RSA ףp=~q@86X$AJSAQq@V5X$A:d!SAzGq@6-7X$AH!SA)\q@hBX$AY#SAtq@ IX$A5qP#SAp= ׿q@Z"?X$AG!SAq@"=X$A4!SA{Gq@ТSAP1|`$A`A>SA|P1|`$A`A>SAn@2001/04/13 KR;@nO# nzn !PPcY$Au(xSAPcY$Au(xSA|PcY$Au(xSA@Fq@1997/03/07 xR;@qFG{O# !PZZ$A @SAZZ$A @SA|ZZ$A @SAq@1997/03/07 wR;@qQO#!P}Y$Ain)SSA}Y$Ain)SSA|}Y$Ain)SSApyq@1997/03/07 vR;@qyp =O#   ug!!LINESTRING (665085.100727885961533 5170408.406696654856205 302.82,665085.961702213971876 5170407.155712282285094 302.82,665087.103690737741999 5170408.28568262886256 302.82)2003/09/06 /)R;2005/09/01Ohvi!!LINESTRING (665084.531706119771115 5170404.447772771120071 302.82,665085.392680447548628 5170403.196788399480283 302.82,665086.534668971551582 5170404.326758746989071 302.82)2003/09/06 /(R;2005/09/01Ohte!!LINESTRING (665083.961684371111915 5170400.488848899491131 302.82,665084.8226586910896 5170399.236864545382559 302.82,665085.964647214976139 5170400.366834891960025 302.82)2003/09/06 /'R;2005/09/01Ohug!!LINESTRING (665083.392662604805082 5170396.52992501668632 302.82,665084.253636924782768 5170395.277940663509071 302.82,665085.395625448436476 5170396.407911010086536 302.82)2003/09/06 /&R;2005/09/01Oh wk!!LINESTRING (664364.677294756518677 5170158.237038942985237 295.486,664364.87169657764025 5170156.730071949772537 295.486,664366.403612907626666 5170157.21401733905077 295.486)2003/09/06 /,R;2005/09/01Ohxm!!LINESTRING (664362.98980452818796 5170155.357023659162223 295.984,664363.168704005307518 5170153.848137790337205 295.984,664364.705514486529864 5170154.316309051588178 295.984)2003/09/06 /+R;2005/09/01Oh+S!!LINESTRING (664203.542119031655602 5169478.28163287974894 293.37,664207.192165044369176 5169492.111353524960577 293.67,664209.822181890718639 5169500.061188635416329 293.65,664213.602190028992482 5169509.500987526029348 293.99)~2003/09/06 /*R;2005/09/01L8 S3S] K!LINESTRING (666527.786393713671714 5171485.446564291603863 0,666526.836406901944429 5171484.956580830737948 0,666527.326390445814468 5171484.016593844629824 0)1997/03/07 eR;OhO /!LINESTRING (666422.202313058427535 5171981.198463727720082 354.42999267578125,666424.662262809695676 5171980.478456822223961 354.459991455078125)1997/03/07 dR;O0xm!!LINESTRING (664366.10539035173133 5170160.701673706993461 295.059,664366.330690213479102 5170159.199015542864799 295.059,664367.852347937179729 5170159.714310172013938 295.059)2003/09/06 /-R;2005/09/01Oh RR?!$rS$A{΍SA@3/u@S$AnSAG-u@*S$A&npSA,u@(S$A9-SA`*u@ S$A'SA`*u@+1997/03/07 :R;['^!@a:*aS$A SA@ v@P NgS$AlSA@ v@)>jS$AXdSAv@K jS$ASAGv@+1997/03/07 9R;[G!w mWS$A;tSA`fw@1-6IXS$AދxSA@w@9#>[S$Aa8dSAw@b^S$AH7$SA w@-5IcS$A/MSA w@YlfS$Ar;* SAw@lspSjS$A SAw@qWXnS$ARFrSAzw@|7%qS$A; SAw@FtS$AB!fSAzw@XabvS$ASA w@@}S$A\SA`fw@o]S$AwўSA w@6fS$A0-dSA \w@zS$ADSA@3w@?]*S$A||SA@3w@-1997/03/07 8R;[ݔv~!?>S$AkSAࣘw@) kXS$ASA`w@+1997/03/07 7R;[ @V@?!ږ*R$ASA`w@R$ANlSA`w@qR$ASA@ w@rڭR$AvSA`fw@w6S$AYtSAw@+1997/03/07 >R;[?!/$S$AQ QSA@3w@b%(S$AcCSA@3w@]",S$AۭSAw@6D0S$Ai9SA@ w@-V5S$A68S"SApw@+1997/03/07 =R;[.!{&~S$A&׳SAw@! S$A!SA`fw@n@݇S$A]SAׯw@+1997/03/07 rAS$AG{SA@3w@uFS$AydSA w@)*HS$AW\0SAw@JS$A?SAw@dQS$Ae-SA)w@WS$ASA)w@?[S$AЄSA)w@SbS$A*;KSAw@miS$ASAw@ZbNnS$ASAw@T ]qS$ASA`w@CItS$A mSA`w@#7yS$AzSAw@mS$AYy! SApw@a *S$AӪ SAw@ S$A;Hf SA@ w@6QwS$AIʓ SAzw@lS$Ah f SA`w@u S$A SAw@@^ݔS$Agh%SAw@8IS$A4bSA@ w@+1997/03/07 ?R;[ 4&4v ~!*!kW$A SAQ(w@*!kW$A SAQ(w@)1997/03/07 CR;[vK~!`4PR$AvŹSAu@`4PR$AvŹSAu@+1997/03/07 R;[W >!w6S$AYtSAw@˭* S$A/CSAw@ҪcS$A!SAw@S$ASAw@|S$AC4SAw@٣S$AwSA w@+1997/03/07 @R;[ X.tXw|!P/?R$AݗSAwrS$A2ԙSA v@IsS$AfYSA v@sS$A+%pSA v@91997/03/07 R;bnW ll'\!P A2S$AqISAw mWS$A;tSA|-w mWS$A;tSAw@.\VS$AtSAw@US$AaSAw@_SS$AE:d`SAw@$_L!PG]GS$A4SAY*^S$A;tSA|G]GS$A4SA`w@Z^-wIS$AoSA`w@x6NKS$ASA`w@xņMS$AQSA`w@.oXQS$Ab/o@SA`w@8]SS$A"PkSA`w@q8US$AߝSA`w@]WS$A SA`w@YS$A]: SA`w@`ZS$AaSA`w@([}\S$A0SA`w@!\S$ASA`w@' ]S$A:Y}SA`w@a^S$AFSA`w@Y*^S$AtSA`w@1ڐ]]S$ALSA`w@d#b*\S$AxSA`w@$lZS$A*SA`w@$XS$AbVSA`w@=XS$A#2SA`w@}͹WS$AznSA`w@ĜWS$A`LS$AeSAw@9LS$AQrSAw@=v*JS$A&7SAw@JNKS$AUSAw@}LS$AADSAw@#KS$A73BSAw@XKS$A 0SAw@IS$A+ l@SAw@>JS$ASAw@閆JS$ASAw@JS$A镌SAw@D/IS$A)gHSAw@HGS$A׿SAw@ vGS$ASAw@HS$A̡CSAw@GS$ASAw@YES$AbNSAw@dCS$AmSAw@WbAS$AopSAw@vr>S$A8R{SAw@R#&=S$Ah>MSAw@DL!PJ3 S$A;SAWCS$A|>=SA|J3 S$A;SAw@)!S$AHSAw@o+#S$A8k SAw@о9%S$Ad:SAw@p .'S$AB}SAw@|s*S$ASAw@v{4,S$AISAw@ -S$A=KSAw@1/S$A^SAw@2S$AO6&SAw@g6S$AjfOSAw@E<8S$A XSAw@z;:S$AoSAw@ex]=S$A/4SAw@ji*?S$A}*SAw@?@S$A,SAw@DBS$Aj+!SAw@WCS$A|>=SAw@91997/03/07 R;xnW? !PwSAw@,@S$A*SAw@hsS$A?mSAw@G S$A8SAw@LI"S$AwSAw@w~?$S$Am\RSAw@Q%S$AֶSAw@-'S$ANSAw@6.S$AӶSAw@=9.S$AӨXSAw@91997/03/07 R;~nW ^^ L!PvrdS$ASAeS$ASA|vrdS$ASA`v@eS$ASA`v@91997/03/07 R;fnW ..O ,!PWCS$A|>=SASXS$A;tSA|$WCS$A|>=SAw@lGS$A=\SAw@JS$A~aSAw@~>LS$A̘SAw@>gOS$A6SAw@VQS$A:HrSAw@>1OSS$AoSAw@*bUS$A׵SAw@_XVS$A/SAw@ %VS$AmDtSAw@O9WS$A"^SAw@NhWS$Aul0SAw@\9XS$AE.SAw@U>qXS$A1BSAw@h5XS$A8SAw@.KB%WS$AgL[SAw@WSWS$A`SAw@cxȐXS$AaDjSAw@SXS$AՒUSAw@e WS$ASAw@Ȃ9VS$A{@SAw@ VS$Ai SAw@n4VS$AQ[SAw@US$A TSAw@]nTS$ASAw@US$A>SSAw@2>US$Aw]YSAw@HTS$AͦSAw@~~TS$A)SAw@SS$A׸SAw@kSS$A+RRSAw@ ϪSS$Ad)=SAw@\SS$ASAw@ SS$AXSAw@79TS$AVխSAw@w mWS$A;tSAw@91997/03/07  R;xnW)5,666667.512040087254718 5172494.72720183711499 368.79998779296875,666665.082047137897462 5172490.177303694188595 368.57000732421875,666662.482054829713888 5172485.327412347309291 368.29998779296875,666652.752063623745926 5172464.707863573916256 366.8599853515625,666650.682064335560426 5172460.177962155081332 366.660003662109375,666647.612058821483515 5172452.648123023100197 366.239990234375,666646.362052820506506 5172449.118196905590594 366.160003662109375,666645.262044839328155 5172445.678267947398126 365.920013427734375,666644.542034771991894 5172442.828325253911316 365.67999267578125,666644.192018590169027 5172440.048378302715719 365.519989013671875,666643.961998784681782 5172437.088433633558452 365.399993896484375,666644.02197123283986 5172433.818492216989398 365.1099853515625,666645.011904548038729 5172427.788593124598265 364.769989013671875,666646.571828865678981 5172421.918686531484127 364.269989013671875,666648.911717244656757 5172413.348822394385934 363.829986572265625,666652.731552996905521 517*2401.579004080966115 363.269989013671875,666656.661384577280842 5172389.539189756847918 362.8900146484375,666663.891078864689916 5172367.899522129446268 362.589996337890625,666669.610834090271965 5172350.419791580177844 362.209991455078125,666674.830615909071639 5172335.110025880858302 361.95001220703125,666676.800533551955596 5172329.330114339478314 361.910003662109375,666677.480490352958441 5172325.510177839547396 361.829986572265625,666678.710412049782462 5172318.580293062143028 361.80999755859375,666679.930332308635116 5172311.450411980971694 361.769989013671875,666681.140248133917339 5172303.750541277229786 361.69000244140625,666682.26012381806504 5172290.890764507465065 361.75,666682.690031469333917 5172280.440949791111052 361.80999755859375,666682.639943902846426 5172269.511147630400956 362.029998779296875,666682.719867911073379 5172260.301313345320523 362.04998779296875,666682.949822315713391 5172255.1814039722085 362.170013427734375,666682.009650209569372 5172231.821833544410765 363.1000061035156+25,666681.479556336766109 5172219.042068684473634 363.339996337890625,666681.4695506086573 5172218.312081952579319 363.3599853515625,666681.42953036702238 5172215.722129059955478 363.399993896484375,666681.399517796235159 5172214.102158566005528 363.3599853515625,666681.04947830317542 5172208.442263641394675 363.420013427734375,666680.859448952483945 5172204.392338334582746 363.339996337890625,666680.549428810831159 5172201.21239828504622 363.459991455078125,666680.14940632856451 5172197.542467816732824 363.480010986328125,666679.579369755694643 5172191.75257701985538 363.660003662109375,666678.689339609118178 5172186.042687362991273 363.720001220703125,666678.04932485986501 5172182.792751250788569 363.8800048828125,666676.719294240698218 5172176.042883946560323 363.899993896484375,666674.299254326731898 5172165.713090129196644 364.3800048828125,666671.749218298704363 5172155.573293933644891 364.94000244140625,666670.869205940398388 5172152.083364098332822 365.17999267578125,666670.069190923590213 5172148,.443436324596405 365.3800048828125,666669.569172756047919 5172145.083501065149903 365.5,666668.869128979975358 5172138.113632634282112 365.920013427734375,666668.38908341655042 5172131.413757544010878 366.489990234375,666664.00916121294722 5172131.253795888274908 366.6300048828125,666664.249203015584499 5172136.953690982423723 366.04998779296875,666664.429259419091977 5172144.323556396178901 365.649993896484375,666665.279266005381942 5172147.033500565215945 365.45001220703125,666665.859277305426076 5172149.723447280935943 365.329986572265625,666671.769364846055396 5172173.72296591848135 364.010009765625,666672.539377652574331 5172177.022900076583028 363.899993896484375,666674.259406085708179 5172184.372753386385739 363.649993896484375,666675.509432240854949 5172190.392634526826441 363.45001220703125,666675.799443516414613 5172192.432595330290496 363.3699951171875,666676.079454163322225 5172194.372558021917939 363.290008544921875,666676.549489222699776 5172199.752457033842802 363.350006103515625,666677.139-58201254718 5172212.53222140762955 363.290008544921875,666678.049769714707509 5172237.75175847671926 362.730010986328125,666677.959820471820422 5172243.821649563498795 362.329986572265625,666678.029888574616052 5172252.391494190320373 362.30999755859375,666678.189928989508189 5172257.74139625672251 362.20001220703125,666678.500002633896656 5172267.531216906383634 362.010009765625,666678.230114918900654 5172280.800979387946427 361.709991455078125,666677.730180525919423 5172287.7908571716398 361.6300048828125,666676.150356694008224 5172306.030540481209755 361.6300048828125,666675.350446416065097 5172315.330378965474665 361.6300048828125,666673.320556729566306 5172324.430231019854546 361.75,666671.330647461232729 5172331.200124837458134 361.730010986328125,666668.510769611457363 5172339.99998870305717 361.850006103515625,666662.941007549408823 5172356.969727250747383 362.3699951171875,666658.541190364165232 5172369.739532195031643 362.54998779296875,666656.461275679524988 5172375.639442456886172 362.75,66665.2.191471525700763 5172390.309212028980255 362.8900146484375,666641.941930440021679 5172424.138683907687664 364.470001220703125,666640.062030193395913 5172432.268552266061306 365.1300048828125,666639.61206567788031 5172435.648494857363403 365.42999267578125,666639.502084985841066 5172437.788457089103758 365.54998779296875,666639.512107063899748 5172440.538407335057855 365.709991455078125,666639.612121932441369 5172442.598369314335287 365.80999755859375,666639.972132429946214 5172444.69832846801728 365.8699951171875,666640.222135038813576 5172445.578310548327863 365.92999267578125,666640.712139788898639 5172447.258276234380901 366.04998779296875,666641.192140025086701 5172448.358252480626106 366.07000732421875,666641.822139980853535 5172449.758222091011703 366.089996337890625,666648.532132864114828 5172463.847913266159594 366.829986572265625,666657.112123467260972 5172481.827519035898149 367.850006103515625,666666.832103440770879 5172501.037093359977007 369.30999755859375,666676.482090750127099 5172520.996654704213142 370.95001220703125,666685.162085699383169 5172539.73624593950808 372.730010986328125,666687.652083069784567 5172544.966131310909986 373.209991455078125,666691.0420635411283 5172550.116010845638812 374.010009765625,666693.862037145067006 5172553.145933287218213 374.3699951171875,666696.182009336771443 5172554.885883077979088 374.589996337890625,666698.691930179134943 5172550.705938268452883 374.3900146484375,666697.571944413240999 5172549.965960700064898 374.269989013671875,666695.211969868629239 5172547.84601809643209 374.04998779296875,666693.581984327523969 5172545.996064706705511 373.790008544921875,666692.361988711636513 5172543.816113960929215 373.470001220703125,666691.051995611749589 5172541.746161955408752 373.19000244140625,666689.251999379950576 5172538.196240649558604 372.790008544921875,666677.572017807513475 5172514.416764741763473 370.410003662109375,666671.722027849289589 5172502.607025422155857 370.410003662109375)) 1997/03/07 +R;>0.317931315861642 5172444.0164600526914 411.040008544921875,666874.15788700140547 5172442.646469907835126 411.519989013671875,666876.107845961814746 5172441.926467129029334 412,666878.597797518363222 5172441.496454740874469 412.55999755859375,666880.927755525917746 5172441.506435700692236 413.20001220703125,666883.027720114565454 5172441.816413104534149 413.82000732421875,666885.087688096798956 5172442.456384868361056 414.5,666887.397653103107587 5172443.286351177841425 415.040008544921875,666892.297545033507049 5172440.86635522916913 415.519989013671875,666889.747580638271756 5172439.57639916986227 415.1199951171875,666885.687641809694469 5172438.076459130272269 414.29998779296875,666882.067700458690524 5172437.24650342296809 413.44000244140625,666878.177771511254832 5172437.346533103846014 412.8599853515625,666874.777839057613164 5172438.106546895578504 412.17999267578125,666871.927900315262377 5172439.316548108123243 411.660003662109375,666869.707951410557143 5172440.676541510038078 411.1199951171875,666867.318012941512279 5172442.94651985168457 410.3599853515625,666863.598123742965981 5172448.336452600546181 409.339996337890625,666860.628226991160773 5172454.466365911066532 408.160003662109375,666858.358306914800778 5172459.276297400705516 406.959991455078125,666856.608382790465839 5172464.746212755329907 405.760009765625,666856.028417627443559 5172467.756163081154227 405.260009765625,666855.778447072487324 5172470.83610946778208 404.8599853515625,666856.258460825891234 5172473.606055547483265 404.459991455078125,666857.99847902439069 5172479.735930733382702 402.660003662109375,666859.178498269291595 5172484.745830684900284 401.399993896484375,666859.92852398334071 5172489.595737004652619 400.44000244140625,666860.288556011393666 5172494.355648110620677 399.660003662109375,666860.398586726281792 5172498.395574242807925 398.8599853515625,666865.678465077187866 5172495.145590209402144 399.55999755859375,666865.408449392998591 5172492.605638277716935 399.899993896484375)) 1997/03/07 +R;> .m!POLYGON ((666671.722027849289589 5172502.607025422155857 370.41000366210937( pp!POLYGON ((666865.408449392998591 5172492.605638277716935 399.899993896484375,666864.888418554328382 5172487.635732262395322 400.67999267578125,666864.378397652646527 5172483.915803586132824 401.420013427734375,666863.348382579744793 5172479.755887068808079 402.420013427734375,666862.158363839029334 5172474.785986475646496 403.660003662109375,666861.428340273210779 5172470.246074392460287 404.600006103515625,666861.278315622825176 5172466.866136661730707 405.20001220703125,666861.758273201994598 5172462.696208101697266 406.3599853515625,666862.298243053606711 5172460.17624925263226 407.05999755859375,666863.578195090871304 5172457.106294345110655 407.660003662109375,666865.318136636051349 5172453.766340594738722 408.399993896484375,666867.898055081255734 5172449.44639774505049 409.420013427734375,666870.427981228218414 5172445.966440126299858 410.239990234375,666872/734375,666720.011681182077155 5172567.505462230183184 377.149993896484375,666701.461892949417233 5172552.285887306556106 375.040008544921875,666698.69197583058849 5172556.345836390741169 374.80999755859375,666718.871734630316496 5172571.565398119390011 377.410003662109375,666745.571418839506805 5172592.114810799248517 380.910003662109375,666753.05132416181732 5172597.104660118930042 382.07000732421875,666756.661279615829699 5172599.654584835283458 382.529998779296875,666759.651244565146044 5172601.994518363848329 383.1099853515625,666763.751196755911224 5172605.234426653012633 383.6300048828125,666765.44118072791025 5172607.024380641058087 383.75,666766.691176125896163 5172609.244330421090126 383.970001220703125,666767.19118733308278 5172611.744281214661896 384.04998779296875,666767.321205220767297 5172614.244235003367066 384.1300048828125,666767.011232187622227 5172616.884189827367663 384.209991455078125,666766.221274054609239 5172620.294134624302387 384.30999755859375)) 1997/03/07 +R;> DD1s!POLYGON ((666766.221274054609239 5172620.294134624302387 384.30999755859375,666789.330499064060859 5172576.104745790362358 384.290008544921875,666784.860635064309463 5172582.934658598154783 384.30999755859375,666780.040775765664876 5172589.564577852375805 384.3699951171875,666778.34081844240427 5172591.044564878568053 384.269989013671875,666775.040894381818362 5172593.064555102027953 384.089996337890625,666772.39094935671892 5172593.944560654461384 384.1099853515625,666765.961076472885907 5172595.304588134400547 383.3900146484375,666762.151143652154133 5172595.104622586630285 382.989990234375,666758.301205968600698 5172594.214669825509191 382.489990234375,666754.24126746377442 5172592.754729061387479 381.92999267578125,666749.751329114194959 5172590.35480875801295 381.45001220703125,666745.551383909536526 5172587.754889719188213 380.850006103515625,666733.861523445346393 5172578.915144022554159 379.17001342736777.431514392141253 5172674.993055816739798 389.04998779296875,666784.911438898299821 5172682.352862324565649 389.69000244140625,666795.321316648158245 5172690.472631388343871 390.769989013671875,666797.5412552729249 5172687.842660925351083 390.790008544921875,666784.461398457875475 5172676.352974346838892 389.510009765625,666778.731453278916888 5172670.34312928840518 389.029998779296875,666775.861476611113176 5172666.82321610301733 388.470001220703125,666773.761494295555167 5172664.323278257623315 388.1300048828125,666766.241479369695298 5172645.70367547031492 385.670013427734375,666765.121475634747185 5172642.743738004006445 385.30999755859375,666764.441479414817877 5172641.693762474693358 385.07000732421875,666764.111469185096212 5172639.693801272660494 384.92999267578125,666764.47145321406424 5172638.523819493129849 384.95001220703125,666772.021192310377955 5172623.134036378934979 384.769989013671875,666766.221274054609239 5172620.294134624302387 384.30999755859375)) 1997/03/07 +R;> K'!POLYGON ((666852.908526740851812 5172474.27607055939734 399.32000732421875,7u{!POLYGON ((666766.221274054609239 5172620.294134624302387 384.30999755859375,666762.581408665515482 5172628.804010369814932 384.470001220703125,666760.661480245296843 5172633.363943539559841 384.529998779296875,666759.921512224711478 5172635.663907982409 384.6300048828125,666760.291535330470651 5172639.343838515691459 384.829986572265625,666760.951542029739358 5172641.643791628070176 384.989990234375,666762.761560744955204 5172647.993662272579968 385.510009765625,666764.761566882603802 5172653.213551793247461 386.30999755859375,666767.781560268253088 5172659.133420412428677 387.1099853515625,666770.511560104438104 5172665.20328866969794 387.829986572265625,666773.931536797201261 5172669.953175187110901 388.649993896484375,665666847.578631404554471 5172475.316094917245209 399.089996337890625,666847.358647275948897 5172476.786070143803954 399.100006103515625,666847.238667088211514 5172478.966031735762954 399.100006103515625,666847.508680667262524 5172481.245988366194069 399.079986572265625,666848.428681457648054 5172483.395942084491253 399,666850.258665977278724 5172485.565888073295355 398.959991455078125,666852.468647196888924 5172488.1758230375126 398.67999267578125,666855.708667044062167 5172497.855621960014105 396.70001220703125,666856.348678070353344 5172500.645566379651427 396,666860.398586726281792 5172498.395574242807925 398.8599853515625,666859.918585842475295 5172497.215599440969527 398.739990234375,666859.178572898497805 5172493.96566413808614 398.720001220703125,666857.898559992318042 5172489.515754883177578 398.899993896484375,666855.158554104040377 5172482.675900614820421 399.079986572265625,666852.908526740851812 5172474.27607055939734 399.32000732421875)) 1997/03/07 +R;> 360.8699951171875,666632.411742738331668 5172379.689563964493573 361.19000244140625,666639.681642381940037 5172383.509436117485166 361.8699951171875,666646.661542891291901 5172386.78932037204504 362.45001220703125,666649.791497541591525 5172388.169270108453929 362.649993896484375,666651.361476881196722 5172389.119240242056549 362.769989013671875,666652.191471525700763 5172390.309212028980255 362.8900146484375,666656.461275679524988 5172375.639442456886172 362.75,666654.751333510968834 5172378.969396144151688 362.670013427734375,666653.331372993532568 5172380.679376753047109 362.670013427734375,666652.201400844729505 5172381.599369280040264 362.670013427734375,666650.93142677238211 5172381.969372875057161 362.6300048828125,666648.911463733646087 5172382.029388141818345 362.45001220703125,666645.6915157266194 5172381.269427933730185 362.25,666631.611717603635043 5172374.799658769741654 361.089996337890625,666574.452580831362866 5172353.930498420260847 359.589996337890625)) 1997/03/07 +R;> YC!POLYGON ((666574.452580831362866 5172353.930498420260847 359.589996337890625,666573.052633955259807 5172357.37044761236757 359.709991455078125,666593.392323572770692 5172364.400155991315842 360.1099853515625,666614.552001620759256 5172371.829850506037474 360.529998779296875,666626.081833567586727 5172376.7896675849333418 .ic!POLYGON ((667014.540288269519806 5171817.066633986309171 413.98001098632812;O/!POLYGON ((666573.052633955259807 5172357.37044761236757 359.709991455078125,666565.912742648739368 5172354.870550562627614 359.45001220703125,666562.522793421172537 5172353.580601304769516 359.6099853515625,666563.362797355279326 5172355.940551876090467 359.6300048828125,666563.382806383306161 5172357.100530759431422 359.350006103515625,666560.692877216846682 5172359.850502858869731 359.25,666563.85282930219546 5172360.980456868186593 359.209991455078125,666567.122756818542257 5172359.320460386574268 359.57000732421875,666570.472685885266401 5172358.03045657183975 359.80999755859375,666573.052633955259807 5172357.37044761236757 359.709991455078125)) 1997/03/07 +R;>5,667014.290331554599106 5171821.856549486517906 413.8599853515625,667017.670317466370761 5171827.656417356804013 415.05999755859375,667020.070297601283528 5171830.556345545686781 415.899993896484375,667021.460277358070016 5171831.156323458999395 416.579986572265625,667023.650245582452044 5171832.116288390941918 421.019989013671875,667024.310236011631787 5171832.406277810223401 415.94000244140625,667026.490193732548505 5171832.046266666613519 416.260009765625,667024.070184495998546 5171825.5064043905586 416.160003662109375,667022.160217852913775 5171825.366422380320728 415.600006103515625,667020.190245493664406 5171824.386456028558314 415.279998779296875,667017.780268453177996 5171821.846521416679025 414.44000244140625,667015.940281282179058 5171819.326581832952797 414.079986572265625,667014.540288269519806 5171817.066633986309171 413.980010986328125)) 1997/03/07 +R;> T(TQ 3!POLYGON ((666788.160634320927784 5172590.20450056437403 384.3900146484375,666796.43034851772245 5172573.344738175161183 384.3900146484375,666789.330499064060859 5172576.104745790362358 384.290008544921875,666766.221274054609239 5172620.294134624302387 384.30999755859375,666772.021192310377955 5172623.134036378934979 384.769989013671875,666788.160634320927784 5172590.20450056437403 384.3900146484375)) 1997/03/07 +R;>U ;!POLYGON ((666698.691930179134943 5172550.705938268452883 374.3900146484375,666696.182009336771443 5172554.885883077979088 374.589996337890625,666698.69197583058849 5172556.345836390741169 374.80999755859375,666701.461892949417233 5172552.285887306556106 374.769989013671875,666700.451906573609449 5172551.715905776247382 373.720001220703125,666698.691930179134943 5172550.705938268452883 374.3900146484375)) 1997/03/07 +R;>>5,666302.41449969203677 5170748.641698095016181 372.489990234375,666307.46444055205211 5170752.601585690863431 373.25,666311.304395734332502 5170755.631499876268208 373.480010986328125,666314.864349822048098 5170757.901430059224367 373.709991455078125,666321.884255674900487 5170761.931300442665815 374.19000244140625,666325.444213242502883 5170764.631222858093679 374.489990234375,666337.024075278546661 5170773.420970352366567 375.67999267578125,666345.333971273037605 5170779.110800311900675 376.399993896484375,666353.853860480245203 5170784.430635255761445 377.1400146484375,666358.173802220029756 5170786.870556214824319 377.739990234375,666365.603700912091881 5170790.930422740057111 378.29998779296875,666378.283522284124047 5170797.150207755155861 379.3800048828125,666396.4032574017765 5170804.849922006949782 380.79998779296875,666408.963067909586243 5170809.459737076424062 381.79998779296875,666422.782853156211786 5170813.759547548368573 382.8599853515625,666435.532648740336299 5170816.949386729858816 383?.8599853515625,666446.402470098575577 5170819.129259373061359 384.850006103515625,666456.602299508173019 5170820.809146471321583 385.779998779296875,666460.962225147639401 5170821.349101426079869 386.160003662109375,666466.722124939784408 5170821.819046319462359 386.660003662109375,666470.63205579132773 5170821.999011422507465 387.040008544921875,666474.341989040141925 5170822.028980851173401 387.329986572265625,666480.751870943233371 5170821.738934207707644 387.95001220703125,666491.891656912514009 5170820.148872764781117 389.55999755859375,666491.891656831838191 5170820.138872945681214 389.55999755859375,666497.181545686209574 5170818.208864995278418 389.55999755859375,666507.351339053828269 5170815.368833982385695 390.69000244140625,666502.43137035111431 5170808.259002236649394 389.67999267578125,666498.051465469179675 5170810.239001921378076 389.29998779296875,666494.851533370558172 5170811.489005241543055 389,666491.561601197696291 5170812.529013082385063 388.670013427734375,666488.501662686001509 51@70813.299023942090571 388.3599853515625,666484.751736067701131 5170813.999041646718979 388.05999755859375,666479.291839275858365 5170814.569075541570783 387.579986572265625,666474.851921555935405 5170814.829106780700386 387.07000732421875,666469.592016701353714 5170814.849148993380368 386.54998779296875,666460.442176181823015 5170814.139235875569284 385.75,666445.462427908089012 5170811.81939902715385 384.3599853515625,666436.682570913922973 5170809.899504772387445 383.600006103515625,666423.212786307674833 5170806.459675933234394 382.420013427734375,666411.78296478302218 5170803.009830764494836 381.55999755859375,666397.063186318613589 5170797.540048711933196 380.290008544921875,666381.783406392438337 5170790.640297023579478 379.19000244140625,666373.343528205063194 5170786.860433615744114 378.470001220703125,666371.673550914973021 5170785.940463748760521 378.29998779296875,666366.153626150102355 5170782.920562979765236 377.75,666365.103640254586935 5170782.320582317188382 377.75,666355.343772305292077 5A170776.860759937204421 376.829986572265625,666344.873905846383423 5170770.000968597829342 375.839996337890625,666336.224013239960186 5170763.97114753164351 375.1099853515625,666327.534113181056455 5170756.931345033459365 374.209991455078125,666317.604223859263584 5170748.451578584499657 373.3699951171875,666311.344287852523848 5170742.391738717444241 372.8800048828125,666309.644300825544633 5170740.201792035251856 372.839996337890625,666308.384305286686867 5170737.941843058913946 372.720001220703125,666307.84430605371017 5170736.831867479719222 372.70001220703125,666307.684302791603841 5170736.07188250310719 372.709991455078125,666307.754293757257983 5170735.111899276264012 372.709991455078125,666308.114279001369141 5170734.091914789751172 372.709991455078125,666301.014446383342147 5170738.93188482709229 372.30999755859375,666301.4644374481868 5170738.831882989965379 372.3699951171875,666302.594420199748129 5170739.221866797655821 372.5,666304.534395284717903 5170740.471828517504036 372.6199951171875,666307.444373169215396 5170744.231737044639885 372.910003662109375,666307.134382004966028 5170744.631732327863574 372.910003662109375,666303.254429729655385 5170741.871813586913049 372.579986572265625,666301.134452310507186 5170739.931865789927542 372.410003662109375,666300.924450922640972 5170739.291879049502313 372.30999755859375,666301.014446383342147 5170738.93188482709229 372.30999755859375,666292.534684333018959 5170749.411764150485396 371.779998779296875,666293.334668268449605 5170749.211761290207505 371.709991455078125,666294.304648729041219 5170748.961757955141366 376.519989013671875,666295.104633635608479 5170748.881752923130989 376.540008544921875,666297.984579120879062 5170748.571735215373337 372.6099853515625,666298.784564027097076 5170748.491730182431638 371.529998779296875,666299.784546293085441 5170748.531721368432045 371.790008544921875)) 1997/03/07 ,R;> S5!POLYGON ((665422.730003672884777 5170701.549668749794364 315.410003662109375,665422.590007334016263 5170701.689667354337871 315.410003662109375,665421.550037363427691 5170703.079650662839413 315.3699951171875,665420.210071758134291 5170704.339638748206198 315.329986572265625,665418.590109023498371 5170705.329633977264166 315.290008544921875,665416.80014774017036 5170706.119634193368256 315.25,665417.030150870676152 5170707.019616075791419 315.25,665416.940157270873897 5170707.609606145881116 315.25,665416.490169524913654 5170708.11960057541728 315.25,665415.690186155843548 5170708.389602174051106 315.25,665437.069757517194375 5170703.129524149000645 315.269989013671875,665436.299768022145145 5170702.709537968970835 315.230010986328125,665435.729770302306861 5170701.719560464844108 315.209991455078125,665435.589765546377748 5170700.819577855989337 315CXsA!POLYGON ((666299.784546293085441 5170748.531721368432045 371.79000854492187=D.230010986328125,665432.989719907520339 5170689.379805544391274 315.209991455078125,665433.36970827030018 5170688.789813127368689 315.209991455078125,665433.029702512663789 5170687.319842431694269 315.209991455078125,665431.999722973210737 5170687.549846612848341 313.45001220703125,665431.86972564458847 5170687.589846942573786 313.45001220703125,665431.779727350454777 5170687.599847491830587 313.45001220703125,665431.699728633509949 5170687.579848499037325 313.45001220703125,665431.589730133768171 5170687.519850472919643 313.45001220703125,665431.519730750122108 5170687.439852486364543 313.45001220703125,665431.43973130476661 5170687.329855118878186 313.45001220703125,665430.799719147966243 5170684.399913225322962 313.45001220703125,665430.799718095688149 5170684.269915574230254 313.45001220703125,665430.829716663691215 5170684.159917320124805 313.45001220703125,665430.869715212844312 5170684.069918620400131 313.45001220703125,665430.949713282985613 5170684.009919056668878 313.45001220703125,665431.069710E79215873 5170683.96991880889982 313.45001220703125,665430.799705389072187 5170682.69994393363595 313.45001220703125,665430.719706995645538 5170682.719944220036268 313.45001220703125,665430.62970837764442 5170682.68994549009949 313.45001220703125,665430.519709878601134 5170682.62994746491313 313.45001220703125,665430.449710414279252 5170682.539949656464159 313.45001220703125,665430.369711049483158 5170682.439952111802995 313.45001220703125,665429.729698892682791 5170679.510010216385126 313.45001220703125,665429.729697840753943 5170679.380012565292418 313.45001220703125,665429.759696408407763 5170679.270014308393002 313.45001220703125,665429.799694957910106 5170679.180015610530972 313.45001220703125,665429.87969302770216 5170679.120016044937074 313.45001220703125,665429.999690537108108 5170679.080015797168016 313.45001220703125,665429.709685576031916 5170677.820040904916823 313.45001220703125,665429.639686921029352 5170677.830041291192174 313.45001220703125,665429.539688564836979 5170677.810042462311685 313F.45001220703125,665429.439689884893596 5170677.750044354237616 313.45001220703125,665429.35969060100615 5170677.660046628676355 313.45001220703125,665429.289690974634141 5170677.550049181096256 313.45001220703125,665428.639678998617455 5170674.620107369497418 313.45001220703125,665428.649677846697159 5170674.500109454616904 313.45001220703125,665428.679676414700225 5170674.390111200511456 313.45001220703125,665428.719674883410335 5170674.290112681686878 313.45001220703125,665428.799673033878207 5170674.240112937986851 313.45001220703125,665428.909670724067837 5170674.200112770311534 313.45001220703125,665428.629665582207963 5170672.940137795172632 313.45001220703125,665428.549667107639834 5170672.950138263404369 313.45001220703125,665428.459668571129441 5170672.930139351636171 313.45001220703125,665428.349670071620494 5170672.870141326449811 313.45001220703125,665428.279670607182197 5170672.780143519863486 313.45001220703125,665428.209670981392264 5170672.67014607321471 313.45001220703125,665427.559659004G793502 5170669.74020426068455 313.45001220703125,665427.569657772313803 5170669.610206527635455 313.45001220703125,665427.589656601427123 5170669.510208171792328 313.45001220703125,665427.639654889469966 5170669.410209573805332 313.45001220703125,665427.709653220954351 5170669.360209910199046 313.45001220703125,665427.829650729894638 5170669.320209659636021 313.45001220703125,665426.979641070589423 5170666.230272356420755 312.910003662109375,665426.909642577404156 5170666.26027237996459 312.910003662109375,665426.809644221095368 5170666.240273552015424 312.910003662109375,665426.699645802844316 5170666.190275345928967 312.910003662109375,665426.619646599632688 5170666.110277438536286 312.910003662109375,665426.529647415620275 5170666.010279972106218 312.910003662109375,665425.579641503980383 5170663.16033914219588 312.910003662109375,665425.56964071339462 5170663.040341391228139 312.910003662109375,665425.589639462064952 5170662.930343218147755 312.910003662109375,665425.619638111209497 5170662.8303447784H85596 312.910003662109375,665425.689636280527338 5170662.760345476679504 312.910003662109375,665425.799633970367722 5170662.72034530993551 312.910003662109375,665425.279633567319252 5170661.510371373966336 312.910003662109375,665425.209635155042633 5170661.550371220335364 312.910003662109375,665425.109636879642494 5170661.540372207760811 312.910003662109375,665424.999638704233803 5170661.520373460836709 312.910003662109375,665424.899639943265356 5170661.450375535525382 312.910003662109375,665424.799641101621091 5170661.370377789251506 312.910003662109375,665423.459643446840346 5170658.670437406748533 312.910003662109375,665423.439642755547538 5170658.540439914911985 312.910003662109375,665423.439641946228221 5170658.440441721118987 312.910003662109375,665423.459640775690787 5170658.340443366207182 312.910003662109375,665423.519639044767246 5170658.260444327257574 312.910003662109375,665423.629636653698981 5170658.210444339551032 312.910003662109375,665422.979639326920733 5170657.090469832532108 312.730010I986328125,665422.919640734209679 5170657.130469595082104 312.730010986328125,665422.81964270141907 5170657.150470042601228 312.730010986328125,665422.699644625885412 5170657.120471554808319 312.730010986328125,665422.599646026734263 5170657.070473269559443 312.730010986328125,665422.489647446665913 5170657.000475424341857 312.730010986328125,665420.859656403772533 5170654.470534317195415 312.730010986328125,665420.819656074047089 5170654.34053698554635 312.730010986328125,665420.809655364020728 5170654.23053905647248 312.730010986328125,665420.819654454942793 5170654.140540600754321 312.730010986328125,665420.869652742985636 5170654.040542001836002 312.730010986328125,665420.969650451792404 5170653.980542276985943 312.730010986328125,665421.049648683168925 5170653.940542353317142 312.730010986328125,665418.739668139023706 5170651.190610721707344 312.660003662109375,665416.849686081055552 5170649.190662146545947 312.6099853515625,665414.729708256665617 5170647.200715248472989 312.54998779296875,665402.4798J47231647 5170637.040997917763889 312.239990234375,665400.109875621274114 5170635.261049252003431 312.17999267578125,665398.859889128478244 5170634.141079601831734 312.149993896484375,665398.37988986459095 5170633.161101188510656 312.1300048828125,665398.479882960091345 5170632.531111759133637 312.1199951171875,665398.749874037923291 5170632.031118607148528 312.1199951171875,665397.479888958507217 5170631.041146767325699 312.160003662109375,665395.999902734067291 5170629.441187645308673 312.1199951171875,665394.759912014240399 5170627.821226946078241 312.079986572265625,665393.099920946289785 5170625.221287346445024 312.019989013671875,665390.869933697162196 5170621.821366809308529 311.8800048828125,665388.849942979170009 5170618.461443852633238 311.82000732421875,665387.909947084728628 5170616.871480180881917 311.779998779296875,665387.459945903159678 5170615.721504598855972 311.760009765625,665387.299940456170589 5170614.691524495370686 311.720001220703125,665387.249933023238555 5170613.661543506197631 3K11.720001220703125,665387.299923783983104 5170612.631561707705259 311.720001220703125,665387.599909302196465 5170611.511579508893192 311.67999267578125,665388.209888170473278 5170610.261597151868045 311.720001220703125,665388.869867835659534 5170609.221610597334802 311.720001220703125,665380.470080784521997 5170616.791541840881109 311.57000732421875,665381.530059215496294 5170616.491538679227233 311.57000732421875,665382.500045018503442 5170616.901523424312472 311.6099853515625,665384.180032729753293 5170619.131469546817243 311.6099853515625,665387.980011134175584 5170624.941333839669824 311.709991455078125,665391.69999017380178 5170630.65120059158653 311.8900146484375,665392.929982450325042 5170632.44115830399096 311.8900146484375,665393.09998545050621 5170633.191143377684057 311.910003662109375,665392.889993046643212 5170633.661136589944363 311.95001220703125,665392.300003052921966 5170633.581142810173333 311.95001220703125,665391.480013246880844 5170633.011159742251039 311.95001220703125,665385.7300595L33030726 5170625.901334709487855 311.850006103515625,665380.020106391631998 5170618.951506465673447 311.589996337890625,665379.91010101349093 5170618.041523794643581 311.589996337890625,665380.160089376964606 5170617.161537667736411 311.6300048828125,665380.470080784521997 5170616.791541840881109 311.57000732421875,665374.870201572775841 5170619.221543268300593 311.25,665381.470153777394444 5170628.04133053123951 311.730010986328125,665384.780126947443932 5170632.111230225302279 311.790008544921875,665388.170095921028405 5170635.841135411523283 311.8699951171875,665390.020080077578314 5170638.011081241071224 311.8900146484375,665392.820049507310614 5170640.481013962998986 311.92999267578125,665394.210033552953973 5170641.610982300713658 311.970001220703125,665394.500032039475627 5170642.070971645414829 311.989990234375,665394.610034342505969 5170642.600961181335151 312.019989013671875,665394.530040157260373 5170643.14095207490027 312.04998779296875,665394.20005137717817 5170643.790943004190922 312.089996337890625,665406.2298997027101 5170651.890699324198067 312.42999267578125,665415.40981753997039 5170662.220438432879746 313.489990234375,665416.63978885486722 5170661.420442926697433 313.489990234375,665416.94978293357417 5170661.380441141314805 313.489990234375,665417.269778935355134 5170661.600434578955173 313.489990234375,665418.889778413926251 5170665.150357339531183 313.510009765625,665421.939841178827919 5170679.71006965264678 314.42999267578125,665423.589876940473914 5170687.809909983538091 314.709991455078125,665424.839897587196901 5170693.149803406558931 315.1300048828125,665425.499921199399978 5170697.539718765765429 315.230010986328125,665425.529936277540401 5170699.469683660194278 315.350006103515625,665425.029958660481498 5170701.119657902047038 315.350006103515625,665424.679968946496956 5170701.609651884995401 315.3900146484375,665423.929983946494758 5170701.789654702879488 315.3900146484375,665422.730003672884777 5170701.549668749794364 315.410003662109375)) 1997/03/07 5R;>N911 292.209991455078125,664909.300072603626177 5169564.524363229051232 292.670013427734375,664965.138890351634473 5169543.034299506805837 292.230010986328125,664965.158897759858519 5169543.994282007217407 292.149993896484375,664965.088904041564092 5169544.614271374419332 292.1300048828125,664964.718915497534908 5169545.204263712279499 292.1300048828125,664964.118929649936035 5169545.614261160604656 292.1300048828125,664930.689637228264473 5169558.454299768432975 292.220001220703125,664911.370045178802684 5169565.754324258305132 292.600006103515625,664910.590057968860492 5169565.594333461485803 292.6400146484375,664909.850067366030999 5169565.104348302818835 292.6400146484375,664909.300072603626177 5169564.524363229051232 292.670013427734375,664895.710360412835144 5169569.764378560706973 292.980010986328125,664891.370452297618613 5169571.434383515268564 293.079986572265625,664888.120507423765957 5169570.994417766109109 292.959991455078125,664887.88052519201301 5169572.654389719478786 292.80999755859375,664O887.44053686002735 5169573.114384975284338 292.779998779296875,664873.790826399927028 5169578.434399342164397 292.69000244140625,664868.071000178344548 5169587.144288301467896 292.3599853515625,664884.280804985202849 5169599.193939447402954 292.660003662109375,664885.140779986861162 5169598.0239536203444 292.660003662109375,664886.990726024378091 5169595.483984531834722 292.55999755859375,664889.7106467213016 5169591.754029897041619 293.04998779296875,664892.550563875236548 5169587.854077360592782 293.019989013671875,664890.870584338787012 5169586.63411299418658 293.019989013671875,664894.020492819836363 5169582.354164814576507 293.019989013671875,664898.220441742683761 5169585.414075551554561 293.25,664907.95015678787604 5169571.914240665733814 293.089996337890625,664910.620099024614319 5169570.734240370802581 292.739990234375,664911.360084367101081 5169570.574237273074687 292.730010986328125,664912.130070139071904 5169570.53423176612705 292.739990234375,664912.7400596907828 5169570.604225562885404 292.7P20001220703125,664920.299967929138802 5169576.134064488112926 292.589996337890625,664922.779894011677243 5169572.534109447151423 292.589996337890625,664922.479895382537507 5169572.034120906144381 292.589996337890625,664922.559889001073316 5169571.424131277948618 292.6099853515625,664922.979843380395323 5169566.724212777800858 292.470001220703125,664942.789424477377906 5169559.164189019240439 292.269989013671875,664975.638729557977058 5169546.594150226563215 292.32000732421875,664976.158719844184816 5169546.554146740585566 292.32000732421875,664976.798709905939177 5169546.754137950018048 292.32000732421875,664977.468702096608467 5169547.284122951328754 292.329986572265625,664978.828688382869586 5169548.624087744392455 292.339996337890625,664979.248679423006251 5169548.454087412916124 292.329986572265625,664984.478569119470194 5169546.49408049415797 292.170013427734375,664992.958390741376206 5169543.374068222939968 292.19000244140625,664995.698332684813067 5169542.314065196551383 292.17999267578125,664996.878307735198177 5169541.864063774235547 292.170013427734375,665001.068218477419578 5169540.184060210362077 292.149993896484375,665001.028214182239026 5169539.564071734435856 292.089996337890625,665001.018209830857813 5169539.00408193282783 292.089996337890625,665001.228201264049858 5169538.414090889506042 292.089996337890625,665001.528192771365866 5169538.034095327369869 292.089996337890625,665011.337984792073257 5169534.224084757268429 292.1099853515625,665012.477954090572894 5169532.974098110571504 292.079986572265625,665013.237929522409104 5169531.634116166271269 292.04998779296875,665013.757907102699392 5169530.024141040630639 291.980010986328125,665014.277881283778697 5169527.994173501618207 291.920013427734375,665014.68785834161099 5169526.074204864911735 291.8900146484375,665015.087833719211631 5169523.924240465275943 291.8599853515625,665011.317913692793809 5169525.39424442127347 291.95001220703125,665010.807924439781345 5169525.584245117381215 291.95001220703125)) 1997/03/07 5_R;> bb$)Y!POLYGON ((666613.259719115216285 5168380.441962315700948 287.70999145507812RM?!POLYGON ((665010.807924439781345 5169525.584245117381215 291.95001220703125,665010.807924520573579 5169525.594244935549796 291.95001220703125,665010.047953945002519 5169527.534216042608023 291.94000244140625,665009.577967853983864 5169528.204207744449377 291.94000244140625,665007.408014079905115 5169529.074209591373801 291.92999267578125,664982.338543990277685 5169538.61424015276134 292.019989013671875,664970.768787716166116 5169542.914256112650037 292.1199951171875,664969.918801608495414 5169542.734266244806349 292.1400146484375,664969.428807057905942 5169542.314277797006071 292.160003662109375,664968.958809475181624 5169541.564295148476958 292.160003662109375,664968.218825104064308 5169541.844296078197658 292.20001220703125,664966.998850937699899 5169542.314297460950MS5,666612.399702759226784 5168376.502040449529886 287.82000732421875,666612.229678960284218 5168373.182101801037788 287.79998779296875,666612.439648218685761 5168369.852160256356001 287.720001220703125,666612.829616977716796 5168366.862211112864316 287.600006103515625,666607.899819630663842 5168380.901997386477888 287.760009765625,666608.619807194918394 5168380.97199029289186 287.760009765625,666609.119802455301397 5168381.501976674422622 287.739990234375,666609.729802770190872 5168382.901946446858346 287.82000732421875,666611.509806396905333 5168387.321852195076644 287.839996337890625,666616.399782350286841 5168395.261669190600514 288.040008544921875,666617.509775254875422 5168396.861631303094327 288.040008544921875,666617.289783597574569 5168397.401623329147696 288.040008544921875,666616.229801687411964 5168397.271634256467223 288.040008544921875,666614.049837331869639 5168396.81166020873934 288.019989013671875,666610.079905381193385 5168396.361700466834009 287.899993896484375,666606.499970839242451 5168T396.461727633140981 287.899993896484375,666606.289972932077944 5168396.251733127050102 287.980010986328125,666606.159969209693372 5168395.501747726462781 287.94000244140625,666605.130038714851253 5168401.791642436757684 287.920013427734375,666605.590026361285709 5168401.291647746227682 287.920013427734375,666606.110015352489427 5168401.091647149994969 287.959991455078125,666607.859981160843745 5168400.771638767793775 288.040008544921875,666609.799946046783589 5168400.761623248457909 288.079986572265625,666611.999907775083557 5168400.941602190956473 288.079986572265625,666615.529850099468604 5168401.691560076549649 288.100006103515625,666618.79980165080633 5168403.001509948633611 288.079986572265625,666624.439727561082691 5168406.431402340531349 288.1199951171875,666629.14967544504907 5168410.501290700398386 288.239990234375,666629.499674627790228 5168411.181275585666299 288.32000732421875,666629.08968769677449 5168411.881266256794333 288.29998779296875,666628.509699951391667 5168412.101266977377236 288.29U998779296875,666627.269716921029612 5168411.431289117783308 288.29998779296875,666624.229759759502485 5168409.941340634599328 288.279998779296875,666621.229800581233576 5168408.291394719853997 288.279998779296875,666616.22987355326768 5168406.151473843492568 288.239990234375,666605.630039720912464 5168403.03161599021405 287.94000244140625,666605.300041066948324 5168402.461628956720233 287.920013427734375,666605.130038714851253 5168401.791642436757684 287.920013427734375,666604.790084995911457 5168406.751555590890348 288.019989013671875,666605.620069359894842 5168406.67155031580478 288.040008544921875,666608.27002967975568 5168407.681510626338422 288.019989013671875,666609.620011289953254 5168408.421486333012581 287.980010986328125,666610.010005784337409 5168408.611479742452502 288.05999755859375,666608.590034988475963 5168409.051483285613358 288.05999755859375,666605.340100799570791 5168409.931493693962693 288.019989013671875,666604.420118222595192 5168410.031499330885708 288,666603.770182078820653 516841V6.471388257108629 287.980010986328125,666604.340169277507812 5168416.161389243789017 288,666606.270134667749517 5168416.191373084671795 288.079986572265625,666607.650114279123954 5168416.751351797953248 288.079986572265625,666608.95009768253658 5168417.601325921714306 288.079986572265625,666610.070086197694764 5168418.681297349743545 288.040008544921875,666611.430073859170079 5168420.191259063780308 287.980010986328125,666611.820071024587378 5168420.711246515624225 287.920013427734375,666615.200004646205343 5168420.051231083460152 287.8800048828125,666613.010012550046667 5168416.141319438815117 288.05999755859375,666612.520010473090224 5168414.791347791440785 288.079986572265625,666612.250006932183169 5168413.751368762925267 288.079986572265625,666612.210001746658236 5168413.021382274106145 288.239990234375,666612.4699921956053 5168412.421391008421779 288.1400146484375,666617.529914417071268 5168414.101319709792733 288.160003662109375,666625.659804426599294 5168418.651171719655395 288.3599853515625,666634W.979686299804598 5168424.85098429210484 288.459991455078125,666640.699620882282034 5168429.530853459611535 288.579986572265625,666648.069539345335215 5168435.900678744539618 288.779998779296875,666656.3694561481243 5168444.140462720766664 288.82000732421875,666658.259437637287192 5168446.070412560366094 288.8599853515625,666658.499439211329445 5168446.800397430546582 288.8599853515625,666658.519444919889793 5168447.550383720546961 288.8599853515625,666658.069468746660277 5168449.490352318622172 288.8800048828125,666660.509443379240111 5168451.800290840677917 288.899993896484375,666661.579421062837355 5168451.430288868024945 288.899993896484375,666662.649403358926065 5168451.630276594310999 288.899993896484375,666663.929387851967476 5168452.570249253883958 288.94000244140625,666667.799348962609656 5168456.400148745626211 289.05999755859375,666668.199347242480144 5168457.080133225768805 289.269989013671875,666694.189088246319443 5168483.06945339217782 289.709991455078125,666695.259077583206818 5168484.139425404369831 289.739990234375,666700.498940469580702 5168478.889477835968137 289.82000732421875,666697.798969075083733 5168476.399544666521251 289.82000732421875,666687.899068216560408 5168466.559802541509271 289.540008544921875,666685.509092761669308 5168464.259863431565464 289.45001220703125,666673.909208843950182 5168452.720165776088834 289.3699951171875,666655.9493836928159 5168434.250644778832793 288.80999755859375,666642.979502906324342 5168420.041006441228092 288.470001220703125,666640.149527142988518 5168416.721089317463338 288.399993896484375,666622.069682226283476 5168395.54161824285984 287.970001220703125,666620.189696752582677 5168393.141676815226674 287.850006103515625,666617.439714931184426 5168389.251769339665771 287.850006103515625,666615.229724734090269 5168385.53185442648828 287.80999755859375,666614.129724689526483 5168383.071907767094672 287.75,666613.259719115216285 5168380.441962315700948 287.709991455078125)) 1997/03/07 9R;>2197265625,667829.174532054690644 5170452.46469063591212 583.05999755859375,667828.464510395540856 5170448.204773337580264 583.47998046875,667827.894496811903082 5170445.254831242375076 583.6199951171875,667826.844511887524277 5170444.774848410859704 583.6300048828125,667825.574537897133268 5170445.154851825907826 582.280029296875,667820.984633166808635 5170446.684861340560019 579.0999755859375,667819.434623358305544 5170442.014958243817091 579.19000244140625,667816.024694001534954 5170443.134965613484383 578.59002685546875,667818.244674066081643 5170445.624902662821114 579.1099853515625,667819.74466114374809 5170447.374858911149204 579.1099853515625,667820.564661148004234 5170449.204819216392934 579.1099853515625,667820.924680952448398 5170452.454757592640817 579.1300048828125,667818.734735068515874 5170454.25474280398339 579.45001220703125,667817.294765523751266 5170454.804744523018599 579.44000244140625,667824.434715586248785 5170464.564510424621403 580.4000244140625))w2001/04/13 ;R;@>| __2;!POLYGON ((667824.434715586248785 5170464.564510424621403 580.4000244140625,667821.784720784868114 5170459.294627074152231 580.05999755859375,667825.354640615638345 5170457.354633222334087 580.5,667827.344649520236999 5170462.894517037086189 580.530029296875,667824.434715586248785 5170464.564510424621403 580.4000244140625,667827.044666673988104 5170464.344493274576962 580.52001953125,667828.674629954854026 5170463.444496337324381 580.96002197265625,667829.51459536049515 5170461.044532894156873 581.57000732421875,667829.504575387341902 5170458.554577955044806 582.09002685546875,667829.254553030012175 5170455.23463995102793 582.7100X[49993896484375,667437.053608354413882 5170698.97341148648411 485.07000732421875,667436.113609384279698 5170697.003454682417214 484.989990234375,667435.903599254554138 5170695.283487451262772 484.980010986328125,667435.933587219566107 5170693.863512859679759 484.980010986328125,667436.013574929209426 5170692.52353641949594 484.980010986328125,667436.183558180578984 5170690.833565572276711 485,667436.593538393150084 5170689.30358989071101 485.1199951171875,667437.013524819281884 5170688.563599860295653 485.149993896484375,667438.11349313845858 5170687.103617331013083 485.279998779296875,667440.073440019390546 5170684.91364102717489 485.459991455078125,667440.933419714332558 5170684.323644722811878 485.459991455078125,667441.72340569132939 5170684.353637787513435 485.55999755859375,667442.953388174646534 5170684.933617353439331 485.79998779296875,667444.973368371138349 5170686.993563792668283 486.230010986328125,667446.623353630537167 5170688.853516838513315 486.720001220703125,667448.163341118837707 5170690\.743470233865082 487.19000244140625,667449.333334964700043 5170692.59342734515667 487.529998779296875,667450.743328604614362 5170694.953373302705586 487.920013427734375,667452.18332121707499 5170697.253320096991956 488.230010986328125,667455.913240506313741 5170695.603319713845849 488.399993896484375,667453.983258198713884 5170693.483373627997935 487.95001220703125,667452.873264726484194 5170691.813412779942155 487.709991455078125,667452.193265350768343 5170690.373444299213588 487.470001220703125,667451.613264654530212 5170688.993473920039833 487.339996337890625,667451.323258559918031 5170687.593501556664705 487.1400146484375,667451.133247583988123 5170685.813535250723362 486.970001220703125,667450.763227636227384 5170682.523597677238286 486.829986572265625,667450.463206100976095 5170679.193660255521536 486.55999755859375,667450.213185929111205 5170676.143717375583947 486.45001220703125,667449.983152202912606 5170671.46380377933383 486.260009765625,667450.133085471577942 5170663.553945451043546 485.929992]67578125,667450.552996057784185 5170653.444124679081142 485.70001220703125,667451.622841082280502 5170636.684418776072562 485.25,667452.672649722080678 5170615.384795043617487 484.519989013671875,667453.292564062285237 5170606.184956217184663 484.220001220703125,667453.962466654367745 5170595.645141188986599 483.8800048828125,667455.152338083600625 5170582.415370546281338 483.600006103515625,667455.802289032959379 5170577.805448560044169 483.3900146484375,667456.402253673644736 5170574.77549843955785 483.279998779296875,667457.042224795673974 5170572.635531916283071 483.230010986328125,667457.402218537870795 5170572.66552846133709 483.269989013671875,667461.332023329334334 5170557.315773937851191 481.8599853515625,667460.602042177109979 5170558.015767199918628 482.040008544921875,667460.182053403928876 5170558.465762471780181 482.1099853515625,667458.882094200351276 5170560.605734336189926 482.30999755859375,667457.392143526463769 5170563.375696358270943 482.6099853515625,667456.452176284044981 5170565.32^566874101758 482.8599853515625,667455.432216880377382 5170568.065627500414848 483.089996337890625,667454.40226243250072 5170571.395575683563948 483.260009765625,667453.52231587911956 5170576.035498989745975 483.3699951171875,667452.362409913679585 5170585.065345257520676 483.6400146484375,667451.312508680159226 5170594.925175645388663 483.8599853515625,667450.652607769472525 5170605.694986435584724 484.05999755859375,667449.952737609157339 5170620.174730532802641 484.70001220703125,667448.892900012317114 5170637.874419376254082 485.279998779296875,667448.203018259606324 5170650.944188861176372 485.57000732421875,667447.623125050333329 5170662.843978593125939 485.8900146484375,667447.413201444549486 5170671.813818257302046 486.29998779296875,667447.363211574265733 5170672.953798069618642 486.279998779296875,667447.133223255397752 5170673.883783131837845 486.279998779296875,667446.613242762745358 5170675.133764759637415 486.279998779296875,667445.833265427150764 5170676.193751922808588 486.220001220703125,6_67444.323304673656821 5170677.673737411387265 486.100006103515625,667442.563348030089401 5170679.103725824505091 485.769989013671875,667441.613371740793809 5170679.913718882016838 485.670013427734375,667439.713419001433067 5170681.513705357909203 485.470001220703125,667439.353427930152975 5170681.81370285153389 485.42999267578125,667437.493476491537876 5170683.66368448920548 485.329986572265625,667436.483504847390577 5170684.913670084439218 485.25,667435.593533140723594 5170686.423650010488927 485.089996337890625,667434.623564011882991 5170688.073628053069115 485.019989013671875,667434.023586016148329 5170689.453607983887196 485.029998779296875,667433.343611083459109 5170691.033584943972528 484.980010986328125,667433.053625790635124 5170692.20356615819037 484.970001220703125,667432.943637570599094 5170693.413545191287994 484.8900146484375,667432.873647009255365 5170694.423527513630688 484.8599853515625,667433.033654723316431 5170695.733502554707229 484.8699951171875,667433.173659155727364 5170696.59348588`436842 484.8699951171875,667433.383659491548315 5170697.103474971838295 484.8900146484375,667433.833663263358176 5170698.573444776237011 484.8900146484375,667434.053671431262046 5170700.07341589871794 484.980010986328125,667434.083680845331401 5170701.30339343752712 484.94000244140625,667434.383687002235092 5170702.73336517624557 484.769989013671875,667437.303653536597267 5170705.113298550248146 485.239990234375,667439.673617619671859 5170705.963264015503228 485.239990234375,667441.973573900875635 5170705.693250274285674 485.489990234375,667443.413543770089746 5170705.183247835375369 485.970001220703125,667445.533496907562949 5170704.123249822296202 486.420013427734375,667448.803422074764967 5170702.173258582130075 487.350006103515625,667451.053372136550024 5170701.023261141031981 487.910003662109375,667452.77333589666523 5170700.383258782327175 488.170013427734375,667452.18332121707499 5170697.253320096991956 488.230010986328125),(667443.94334820122458 5170682.203658656217158 485.779998779296875,667443.783347448101267 5170681.753668081015348 485.779998779296875,667444.343332722201012 5170681.183673845604062 485.79998779296875,667444.913318382110447 5170680.683678263798356 485.910003662109375,667445.923292940016836 5170679.793686165474355 486.079986572265625,667447.013263301574625 5170678.563699563033879 486.32000732421875,667447.89323842653539 5170677.453712491318583 486.399993896484375,667447.98324368102476 5170678.303696407936513 486.45001220703125,667448.163258803775534 5170680.573653944768012 486.6300048828125,667448.363277936121449 5170683.383601565845311 486.79998779296875,667448.663298014551401 5170686.533542237244546 486.910003662109375,667448.503303412580863 5170686.843537931330502 486.850006103515625,667448.223307902691886 5170686.773541461676359 486.739990234375,667447.083318209042773 5170685.503573630005121 486.470001220703125,667445.093337552156299 5170683.453626768663526 486.079986572265625,667443.94334820122458 5170682.203658656217158 485.779998779296875)) 1997/03/07 -R;> LLM1!POLYGON ((667452.18332121707499 5170697.253320096991956 488.230010986328125,667451.413341273204423 5170698.013312601484358 488.05999755859375,667449.863378328154795 5170699.133304916322231 487.720001220703125,667447.633429281413555 5170700.453299121931195 487.19000244140625,667444.463501498568803 5170702.303291359916329 486.30999755859375,667442.123552252538502 5170703.35329133272171 485.779998779296875,667440.983574538026005 5170703.563296765089035 485.45001220703125,667439.933591880137101 5170703.363308875821531 485.329986572265625,667438.703606482944451 5170702.423335811123252 485.239990234375,667437.823609342798591 5170700.813372017815709 485.1ZSAQq@r4W$AykTqSA= ףpq@aGW$Ao:nSAzGq@vRW$AM(3lSA(\q@%^W$Aƕ jSAQq@>iW$AgSAGzq@HbxW$A dSAQq@: W$A{yaSA{Gq@aW$A0G^SA{Gq@ iW$AZSA33333q@TU|W$AR1l6YSA33333q@gҲW$Aa䢉USA(\q@0#(W$AV|RSA= ףpq@W$ApLSA= ףpr@¿W$AcJSA ףp=q@"j\W$AH'JSA{Gq@0)W$A:ISAGzr@>W$A"WHSA= ףpr@8®W$AKI7OSAQq@MW$Aw^iSAq= ףq@hbAW$AlSA(\q@O5W$A{nSA= ףpq@础*,W$A:oSAfffffq@B,W$AGsSA ףp=q@>V$AS''ySAfffffq@s楠V$A zSAq@Ǻ 2003/09/06 /iR;2005/09/01M 2bJ2&!!t %)W$AXQ KSARq@҅W$A/]JSA{Gq@W$A 'JSAr@S\W$A%JSAףp= r@mV\W$A&dJSAףp= r@AW$APRjJSAQr@'W$AhJSARq@t %)W$AXQ KSARq@ǫ 2003/09/06 /lR;2005/09/01M&!!\W$An#*W@SA(\q@ (W$AC6]J@SA33333q@6W$A)?SA33333q@Ǩ(W$AR>SAHzq@uGW$A=SAHzq@k(W$A>SAQq@SW$A.@SA(\q@\W$An#*W@SA(\q@ǫ 2003/09/06 /kR;2005/09/01M-V!! -[W$A}'SA= ףpq@ W$ADEW'SA= ףpq@X$AE{x&SAGzq@}[X$A;&SAGzq@X$Ak&SAGzq@\(W$A﬽&SAGzq@)̎W$A'SAGzq@f(W$Ad'SA= ףpq@-[W$A}'SA= ףpq@ǫ 2003/09/06 /jR;2005/09/01M}v!!'s楠V$A zSAq@ñNW$AaOySAq@!}'?W$A@Tfub 00H0&!!ۭ( X$A[HSAp= r@TT4 X$AGSAQr@lX$As0GSA(\r@S*\X$ACGSA(\r@HoX$AcGSA(\r@X$AYKGSA(\r@k \X$AFGSA(\r@ۭ( X$A[HSAp= r@ǫ 2003/09/06 /oR;2005/09/01MeF!!6X$AWۂHSA{Gr@(X$AKHSA{Gr@X$AOJHSA\(r@CQ(X$A2HSA{Gr@F(X$AwHSA{Gr@6X$AWۂHSA{Gr@ǫ 2003/09/06 /nR;2005/09/01MM!!W$AR]LSAףp= q@W$AiKSAzGq@W$AQKSAq@3)W$AZI7LSAq= ףq@W$AR]LSAףp= q@ǫ 2003/09/06 /mR;2005/09/01M mV!!!|ufW$AN]HSAr@{GW$AUqHSAr@?uW$A]QHSAr@RW$A/YgHSA)\r@&Y+W$A` GSARr@vW$A3GSAp= r@T5W$A FSAzGr@W$AF^FSA= ףpr@R$LW$AӜ YESAQr@W$A9DSAGzr@W$ARB,DSAp= r@0'*W$AȷCSAHzr@w?W$AQbQCSAHzr@`(W$AsBSA(\r@ގW$A2xBSAףp= r@W$ALdQBSAfffffr@ygW$An2BSAr@>ܺW$AG>0BSAGzr@8˶W$AGKBSA33333q@KQW$AmyBSA ףp=q@7:pW$A/3BSA(\q@WW$A CSAq@w^$Ai+sSAT~@\eXy^$Ad{mSAQH~@ʕz^$AR֋kSA C~@m{^$AEIhSA>~@AM~^$AXneSA9~@͠Ś^$AxsdSA=6~@1̀^$A5ġcSAz4~@ }^$A(cSA 3~@͂^$A*cSAQ4~@:^$A5T_SA~@K>4^$AnT_SA ~@6]^$Af ϝ_SA!~@١Å^$AY&`SA$~@K Ȃ^$Ah `SA)~@`^$ATaSA-~@K~^$A=3bSAp1~@pW|^$AQbSA)4~@l {^$AEdSA5~@ʍx^$A.DfSA=:~@B#v^$A6hSA=~@"Nu^$AczlkSA@~@R9s^$A. oSA@3K~@0*q^$A|wsSAzT~@cgp^$AmvSAY~@!? ?o^$AʾySA=^~@#n^$A,{SAd~@n^$A =|SAzd~@5Dn^$A x|SAzd~@9m^$A|SAzd~@ġk^$Awnf }SA c~@0h^$Ak}SAa~@+'o e^$Aq}SAQ\~@^ :c^$A^z}SA`Z~@_AEm_^$Ap`~SA W~@s^^$A t~SA@V~@aZ^$Ay~SAGU~@X^$Ay:SAT~@i/W^$ASApQ~@F$A\@SAr@8F$A=.SAr@F$A<SA@3r@JF$AƢSA@3r@*qF$A*kSA@ r@WF$AAk2SA@ r@RHF$A8w)SA@ r@"F$AZ@SA@ r@/ F$A̫SAr@-F$A(SAr@o|F$AC1SA@r@;\G$A SA@ r@'G$AF|SA r@8"G$A֎)SA`fr@[$G$-G$Ah`SAGr@eU)DG$A7 SAr@OG$Az>HSAr@kkTG$AZSAr@VG$A*eSAr@WG$A`SAr@oWG$A̵ވSAr@WVG$A SAr@䯸UG$AblSAr@aRG$AvbSAr@/?OG$AeOSAr@[G$AsSAr@2fG$ASAr@tN3}G$AESAr@ٳyG$AsSAr@=vG$A'Sz"SAr@RřlG$A^- SAzr@껓MG$ASAzr@ֽG$A#SAr@YG$AkbSApr@G$An/SA=r@G$A SAr@⼿ F$A}SAr@8rF$A *SAr@zF$A%SAr@UpF$AQSAr@KF$Av SAr@Ǻ) 1997/03/07 AbR;M qqA!MKF$Av SAr@UZF$AP]CSA@3r@$F$A_CSA r@)gF$A_SA=r@t$F$AzSA`fr@,vF$AdSAr@CF$A`FSAr@iF$A SA`fr@3HF$A'LBSA=r@3\F$AO>SAr@HrvG$ACSAQr@G$ABXSA r@ G$A SA r@!G$AW-SAr@^Pq!G$A"ZSAr@ez!G$A"SAr@H|M!G$A'SAzr@G$ALSAr@/?OG$AeOSAr@?EKG$AWSAr@!GG$A SAr@DG$AuwSAr@@a@G$AISAr@zv)CSAr@vfC$A7T BSA=r@^<$ D$A?}?SAr@B6D$Akif+G$AйSAr@4w0G$Aڏ1йSAr@u2G$AйSAr@8K4G$A}йSAr@87G$APйSA`fr@@2^cG$A#J\ʹSA@r@fQaG$A2ɹSAr@zDjdG$AVȹSAr@]G$AiW#ȹSA`fr@l!j]G$AsMǹSAzr@(j^G$A!ǹSA@r@pYG$A=mƹSA`r@P!pSG$AKƹSA r@s/ QG$AV ŹSA`r@PG$AHùSA`r@DSG$ArùSAr@!ܿkG$A(SAQor@QG$ASAGr@[G$A 4SA@r@@TƹSA`fr@&CW~F$AHKǹSA`fr@z€XF$A`r̹SAr@paSWF$AF$As<йSAr@R0F$Am'ҹSAr@/F$Al ҹSAr@ə-F$A$wӹSA@ r@# *-F$A\ʤdԹSA=r@$F$AiԹSA=r@^E$AeSAr@;E$AY2SAr@IE$A&pSAzr@> ٭E$AASAr@QmE$AT8SAGr@؆E$ALSAr@@rE$ATSA@r@DُE$AcpSA@3r@f|E$AQNSA r@^{E$AHSAr@4E$ARBSA@3r@ʴi^E$Ae5SA r@AME$A7c*SA)r@8.TE$A [qSAQr@@=E$AD15SAr@ ϰE$AgSA)r@0E$AڥSA@r@=a2cE$AN@SA@r@OrE$A SAr@á|E$A(1^SApr@ NE$ASApr@iE$Av)SApr@lF$ANڹSAr@ME$A\ESAr@5hE$A8SAr@PE$A)ڹSAr@lF$ANڹSAr@ F$AڹSA`r@qF$A=/RٹSA`r@k F$Ae*׹SA r@pvGF$A׹SA`r@F$A!;عSAr@F$A8.ڹSA \r@o\/F$A2gڹSA)r@ԉX/F$Aw{ڹSAr@l#F$A7aڹSAr@V]+F$A8.ٹSAr@pٜ2F$A9/GعSAr@snb*F$A1Y׹SAQr@ 9]F$A йSA`fr@gNF$A.LιSA@3r@:\yF$A'YɹSAGr@~ԤܓF$A6g̹SA \r@0HF$A>E˹SA`r@ F$A kʹSA`r@F$AgʹSA@3r@lҽF$AgʹSA@3r@`F$At6ʹSAr@ F$A`ϹSA`r@LgXF$AijԹSA@3qr@.kgGF$A}$׹SA r@?S3F$A "ڹSA \r@*F$AOEܹSA r@F$ASA)r@ F$A8[:SAr@KZF$AS,۹SApr@B F$AA۹SApr@:#jF$A\y۹SAr@|F$AͼY۹SAr@ɾ4F$AYt۹SAr@D F$A/۹SAr@.E$Aݕ^޹SA r@oًE$A.4SAr@,E$ASA r@ E$ASAzr@ ԁE$AG-SA`fr@;E$A&5SAr@pE$A\aSAr@; E$A]8WSA=r@,2TE$ASAr@rAJiE$A]_hSAr@? hE$AX SAr@8_E$AׇdSA r@C VE$Ab+%SA \r@QE$AISAr@TNE$AWSA`fr@wME$AΕSAr@;RHE$AW3SAr@ ^EE$ACǘSAr@o6:d4E$AEzSA r@=*R E$A74XSAr@4ҊD$Aj2gSA=r@*D$AC@SA@r@JD$A] SAzr@~D$A? SAQr@KD$A^RSAr@=SD$AՍASAGr@|ƀD$AQS%SA@3r@ChD$A"j SAzr@P QD$AܥgSA r@ 9FD$A\ SSA r@ J+3C$A?j;SAr@q0C$AY :SAr@*7C$AWM:SA@r@r:C$AF>:SA@r@fARC$AjB@SA \r@lKC$A߼ @SA)s@ >3C$A?j;SAr@ 2QC$A`~DESA@3s@;|JC$AI׏CSA s@%QC$Aa CSA@3s@k SC$A5uBSA@ s@sSC$Agy\BSA`fs@UC$AO2CSA`fs@WqXC$A8*DSA`fs@v\C$Am)ESA=s@$}[C$Au:ESAr@񆏐WC$A/mESApr@J|UC$A9ESAGs@zHSC$AsESA=s@2QC$A`~DESA@3s@QfC$AGtPGSAs@veC$AݜGSAs@&@mgC$A7FSAs@GHiC$An #GSAs@QfC$AGtPGSAs@kR͘C$Ar.SApr@rC$A ,SAr@vRC$AHTf,SAr@$vK{C$AT)SAQr@唝C$Aҏ)SAQr@0C$AxX'SAQr@"C$A]'SAQr@bkC$Am&SAQr@|C$As(SAt@3r@MC$A^)SAr@`GC$A@s)SAr@1hׯC$AFq+SAr@UC$A|͚+SAr@|UaC$A\.SApr@kR͘C$Ar.SApr@~C$AT0SAr@`"C$AMc-SAQr@ބD$A7'SAr@D$Aw"*SA`r@~C$AT0SAr@wD$A&)SA r@rʂD$AT(SA r@샚D$As_(SA r@R'D$A~(SA r@wD$A&)SA r@܄CE$AXSAr@|i5E$A(SSA`r@} 0E$A2SAr@fE$AU%SAr@U2|E$AVPSA=r@9EE$AnnVSA=r@/E$A8SA=r@ SF$A֔SA=r@p{ F$AFuoFSA=r@W<F$AGqSA=r@{+: F$AJYF:SA=r@ F$A1d;SA=r@ F$A7)SA=r@zKF$Aғ/SA=r@upF$A$sSA=r@hF$A?SA=r@0GF$AQSA=r@KF$A-SA@ r@Ҧ- F$AJ)WSA@ r@TF$AnSA@ r@yF$A_SA@ r@bNE$A!SA@ r@E$AAUSA@ r@܄CE$AXSAr@!EhE$Ag(7SAࣈs@tSE$AuSAࣈs@bmE$ASAࣈs@cME$AfSAࣈs@TL?E$A~SAࣈs@@E$A=SAࣈs@E$A۸ SAࣈs@RE$AiRSAࣈs@!E$AfM{SAࣈs@E$AySAࣈs@/E$AL}SAࣈs@汴|E$A͇SAࣈs@XE$AS̗SAࣈs@JME$AtSAࣈs@TE$A2SAࣈs@ E$AmQSAࣈs@]E$A1SAࣈs@~WmE$AUSAࣈs@[SE$A1:SAࣈs@ N E$A dYSAࣈs@ 1E$AQj! .C$A%+:SAGs@|b4JC$Avt@SA)s@gOC$A)BSA s@@QC$A\{BSA s@J&OC$A'BSA s@̚gMC$A.gBSA s@={FC$A9^CSAG s@2*JC$ADSA s@{QC$AESA` s@qIC$A.ESA= s@}IC$AucFSA= s@;WJC$AOFSAs@CSAs@C$A aCSAs@S{C$ABSAlp= q@T˶oX$Av SAp= q@knX$A۲FSA33333q@6wX$AiYSA)\q@PyxX$A C SAzGq@e_[X$A۵ SAGzq@<\X$AUz SA(\q@u"yX$A#3 SA(\q@˜߉X$AJ) SA(\+r@_5}X$A@U SA= ףpq@d;]X$A SAQq@vZWX$A{9 SAQq@ΒQX$A0m SAQq@] jPX$Ay SA ףp=q@/#PX$Az SA ףp=q@vPMX$AZ SAHzq@ov6X$A*SARq@4X$A%:RSA33333q@c5X$ASA{Gq@&}o4X$A_SAq@{U3X$AsySA\(q@mߧ0X$ASAQq@ ySA`q@InaK]X$AkZ)SA@3q@`1^X$A.SA q@ڵ\X$A_SA q@NFfRX$AR~SA@q@yW$A"WHSA= ףpr@W$AcFSARq@.+)W$A3^YESAQq@ƍµW$AZDSAq@ !)W$Ae[CSA)\q@J\W$AďBSA)\q@M>\W$A|ASA\(r@p)W$Ajx@SAQq@;PW$A]ϐ]ASA= ףpq@zW$A#BSA ףp=q@M\W$A>~\BSAzGq@L!)W$A(CSAq@8[\W$A4ݍDSA= ףpq@)W$AESAQq@W$A@6XFSA= ףpq@o,·W$A*<}GSAfffffq@Md\W$A"WHSAfffffq@ÏW$A0A#OSAq= ףq@8®W$AKI7OSAQq@+2003/09/06 /IR;2005/09/01[ ::4d!!PW$AUn3SA4vW$A○8SA| 4vW$A○8SAHzq@xW$AH8SA(\­q@\W$AuI8SAHzq@(W$A>B8SA ףp=q@MgWW$A7SAp= ׻q@&\W$AUn3SA ףp=q@W$ADԷ3SA\(q@+W$AOQ3SA= ףpq@(\W$A 3SA= ףpq@WW$A4n7SAHzq@c(W$A m}H8SAGzq@(W$A6SI8SA(\q@4vW$A○8SAHzq@+2003/09/06 /LR;2005/09/01[ !!P2(W$APH.SA_[X$Aڕ2SA|LzW$Aڕ2SAp= ףq@[W$ALr0SAGzq@_[X$APH.SAq@W$Aی0SARq@2(W$A72SA{Gq@LzW$Aڕ2SAp= ףq@+2003/09/06 /KR;2005/09/01[ JaJ$!!Pj rW$Ap1SAW$A};SA|W$A};SA ףp=q@]xW$A_ D5SA= ףpq@NΖvW$A D5SAGzq@ d\uW$A!q*5SA= ףpq@rW$A?3SA= ףpq@GrW$A4`sj3SA= ףpq@')tW$A 2SAQq@"RwW$A6ǂ1SAHzq@dwW$Ap1SAfffffq@usW$A5o2SAq@j rW$A_\3SA(\q@arW$A'+3SA ףp=q@V2tW$A2""5SAfffffq@ѱvW$AU5SAfffffq@daxW$A%b5SAfffffq@[3#W$Aib;SA33333q@W$A};SA ףp=q@+2003/09/06 /NR;2005/09/01[4!!POW$A|Q2SApW$A^7SA| pW$A^7SAףp= q@oW$A%}7SA= ףpq@@W$A[}7SAp= q@Ғ(W$AB7SAQq@QW$A*6SA ףp=q@&pªW$A|Q2SAq@OW$AQ޷2SA(\q@\W$AZ6SAp= ׻q@~»W$A+K6SA(\q@(W$A@^n7SAQq@"\W$Av9}7SAp= ׫q@pW$A^7SAףp= q@+2003/09/06 /MR;2005/09/01[ L !!P-bD$A7E#_SAGD$A/Z/SA|-bD$A/Z/SA ףp=jr@zcD$A!#SAp= +r@E)spD$A=YD$A ÍSA(\Rr@D$A1DSAQPr@ڇD$APߟSAףp= Wr@}YvD$AoSAQ]r@NXoD$A-!jSAQ]r@YiD$A χSA\r@seD$ASAQ[r@ibD$AЯ#SAQ[r@fb&tD$AG|SA)\Pr@:0rD$AԳY|SARIr@%bD$Ap"iSA= ףp=r@YaD$AS)SAGznr@}ncD$A篆SAQmr@}&hD$ASAp= kr@4mnD$A]"JvSA{Gjr@uD$Aş{SAGzfr@6`D$A۔SAp= cr@>4D$ASAq= ף`r@D$A0 ㍸SAQ]r@4"D$AqSAGz\r@+2003/09/06 /QR;2005/09/01[libspatialite-4.1.1/test/sql_stmt_tests/mbr4.testcase0000664000175000017500000000036112163502134017733 00000000000000MbrContains - Text + Point (error) :memory: #use in-memory database SELECT MbrContains("hello", GeomFromText("POINT(2 1)")); 1 # rows (not including the header row) 1 # columns MbrContains("hello", GeomFromText("POINT(2 1)")) # header (NULL)libspatialite-4.1.1/test/sql_stmt_tests/extractmultipolygon3.testcase0000664000175000017500000000071412163502134023311 00000000000000extractmultipolygon - POINT :memory: #use in-memory database SELECT AsText(ExtractMultiPolygon(GeomFromText("GEOMETRYCOLLECTION(POINT(4 3), LINESTRING(5 6, 6 7), POLYGON((10 10, 11 10, 11 11, 10 11, 10 10)))"))) 1 # rows (not including the header row) 1 # columns AsText(ExtractMultiPolygon(GeomFromText("GEOMETRYCOLLECTION(POINT(4 3), LINESTRING(5 6, 6 7), POLYGON((10 10, 11 10, 11 11, 10 11, 10 10)))"))) MULTIPOLYGON(((10 10, 11 10, 11 11, 10 11, 10 10))) libspatialite-4.1.1/test/sql_stmt_tests/sanitizeGeometry9.testcase0000664000175000017500000000070112163502134022520 00000000000000Sanitize Geometry - LINESTRING ZM :memory: #use in-memory database SELECT AsEWkt(SanitizeGeometry(GeomFromText("LINESTRING ZM(-71 42 2 0, -70 41 2 0, -70 42 3 0, -70 42 4 0, -71 42 2 0)", 4326))) 1 # rows (not including the header row) 1 # columns AsEWkt(SanitizeGeometry(GeomFromText("LINESTRING ZM(-71 42 2 0, -70 41 2 0, -70 42 3 0, -70 42 4 0, -71 42 2 0)", 4326))) SRID=4326;LINESTRING(-71 42 2 0,-70 41 2 0,-70 42 3 0,-70 42 4 0,-71 42 2 0) libspatialite-4.1.1/test/sql_stmt_tests/asfgf6.testcase0000664000175000017500000000037012163502133020242 00000000000000asfgf - pointxy, 0 dim :memory: #use in-memory database SELECT Hex(AsFGF(GeomFromText("POINT(1 2)"), 0)) 1 # rows (not including the header row) 1 # columns Hex(AsFGF(GeomFromText("POINT(1 2)"), 0)) 0100000000000000000000000000F03F0000000000000040 libspatialite-4.1.1/test/sql_stmt_tests/makeellipse6.testcase0000664000175000017500000000031012163502134021442 00000000000000makeellipse6 - BLOB cy :memory: #use in-memory database SELECT MakeEllipse(0, zeroblob(4), 100, 200); 1 # rows (not including the header row) 1 # columns MakeEllipse(0, zeroblob(4), 100, 200) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/fromewkt33.testcase0000664000175000017500000000126612163502134021100 00000000000000fromewkt32 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(POINT(9 9 9), GEOMETRYCOLLECTION(POINT(0 0 9), LINESTRING(1 1 9, 2 2 9)), POINT(8 8 9), GEOMETRYCOLLECTION(POINT(3 3 9), LINESTRING(4 4 9, 5 5 9)), POINT(7 7 9))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(POINT(9 9 9), GEOMETRYCOLLECTION(POINT(0 0 9), LINESTRING(1 1 9, 2 2 9)), POINT(8 8 9), GEOMETRYCOLLECTION(POINT(3 3 9), LINESTRING(4 4 9, 5 5 9)), POINT(7 7 9))')); GEOMETRYCOLLECTION Z(POINT Z(9 9 9), POINT Z(0 0 9), POINT Z(8 8 9), POINT Z(3 3 9), POINT Z(7 7 9), LINESTRING Z(1 1 9, 2 2 9), LINESTRING Z(4 4 9, 5 5 9)) libspatialite-4.1.1/test/sql_stmt_tests/st_z2.testcase0000664000175000017500000000040712163502134020131 00000000000000ST_Z2 :memory: #use in-memory database SELECT Z(MakePointZ(-71.1043443253471, 42.3150676015829, 0.0038723129645, 4326)); 1 # rows (not including the header row) 1 # columns Z(MakePointZ(-71.1043443253471, 42.3150676015829, 0.0038723129645, 4326)) 0.0038723129645 libspatialite-4.1.1/test/sql_stmt_tests/wkb23.testcase0000664000175000017500000000141512163502134020020 00000000000000Hex Wkb: GeometryCollection XYZM (single polygon) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONZM(POLYGONZM((10 10 100 1, 11 10 101 2, 11 11 102 3, 10 11 103 3, 10 10 100 1)))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONZM(POLYGONZM((10 10 100 1, 11 10 101 2, 11 11 102 3, 10 11 103 3, 10 10 100 1)))", 4326))); 01BF0B00000100000001BB0B00000100000005000000000000000000244000000000000024400000000000005940000000000000F03F00000000000026400000000000002440000000000040594000000000000000400000000000002640000000000000264000000000008059400000000000000840000000000000244000000000000026400000000000C059400000000000000840000000000000244000000000000024400000000000005940000000000000F03F libspatialite-4.1.1/test/sql_stmt_tests/setpoint1.testcase0000664000175000017500000000027112163502134021015 00000000000000ST_SetPoint() - NULL line :memory: #use in-memory database SELECT ST_SetPoint(NULL, NULL, NULL) 1 # rows (not including the header row) 1 # columns ST_SetPoint(NULL, NULL, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/fromgeojson25.testcase0000664000175000017500000000152612163502134021572 00000000000000FromGeoJSON - MULTIPOLYGON with SRID :memory: #use in-memory database SELECT AsEWkt(GeomFromGeoJSON('{"type":"MultiPolygon","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"coordinates":[[[[10,10],[0,10],[0,0],[0,10],[10,10]]],[[[-10,-10],[-10,10],[10,10],[10,-10],[-10,-10]],[[-8,-8],[-2,-8],[-2,-2],[-8,-2],[-8,-8]],[[8,8],[2,8],[2,2],[8,2],[8,8]]]]}')) 1 # rows (not including the header row) 1 # columns AsEWkt(GeomFromGeoJSON('{"type":"MultiPolygon","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"coordinates":[[[[10,10],[0,10],[0,0],[0,10],[10,10]]],[[[-10,-10],[-10,10],[10,10],[10,-10],[-10,-10]],[[-8,-8],[-2,-8],[-2,-2],[-8,-2],[-8,-8]],[[8,8],[2,8],[2,2],[8,2],[8,8]]]]}')):0 SRID=3003;MULTIPOLYGON(((10 10,0 10,0 0,0 10,10 10)),((-10 -10,-10 10,10 10,10 -10,-10 -10),(-8 -8,-2 -8,-2 -2,-8 -2,-8 -8),(8 8,2 8,2 2,8 2,8 8))) libspatialite-4.1.1/test/sql_stmt_tests/fromewkt34.testcase0000664000175000017500000000067612163502134021105 00000000000000fromewkt34 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTIONM(GEOMETRYCOLLECTIONM(GEOMETRYCOLLECTIONM(POINTM(0 0 9), LINESTRINGM(1 1 9, 2 2 9))))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTIONM(GEOMETRYCOLLECTIONM(GEOMETRYCOLLECTIONM(POINTM(0 0 9), LINESTRINGM(1 1 9, 2 2 9))))')); GEOMETRYCOLLECTION M(POINT M(0 0 9), LINESTRING M(1 1 9, 2 2 9)) libspatialite-4.1.1/test/sql_stmt_tests/geomfromkml19.testcase0000664000175000017500000000304512163502134021562 00000000000000From KML - MultiGeometry LINESTRING x 2 - 3D :memory: SELECT AsText(GeomFromKML(" -112.2550785337791,36.07954952145647,2357 -112.2549277039738,36.08117083492122,2357 -112.2552505069063,36.08260761307279,2357 -112.2564540158376,36.08395660588506,2357 -112.2580238976449,36.08511401044813,2357 -112.2595218489022,36.08584355239394,2357 -112.262073428656,36.08626019085147,2357 -112.2633204928495,36.08621519860091,2357 -112.2644963846444,36.08627897945274,2357 -112.2656969554589,36.08649599090644,2357 1,2,4 3,5,7")) 1 # rows 1 # column AsText(GeomFromKML(" -112.2550785337791,36.07954952145647,2357 -112.2549277039738,36.08117083492122,2357 -112.2552505069063,36.08260761307279,2357 -112.2564540158376,36.08395660588506,2357 -112.2580238976449,36.08511401044813,2357 -112.2595218489022,36.08584355239394,2357 -112.262073428656,36.08626019085147,2357 -112.2633204928495,36.08621519860091,2357 -112.2644963846444,36.08627897945274,2357 -112.2656969554589,36.08649599090644,2357 1,2,4 3,5,7")) MULTILINESTRING Z((-112.255079 36.07955 2357, -112.254928 36.081171 2357, -112.255251 36.082608 2357, -112.256454 36.083957 2357, -112.258024 36.085114 2357, -112.259522 36.085844 2357, -112.262073 36.08626 2357, -112.26332 36.086215 2357, -112.264496 36.086279 2357, -112.265697 36.086496 2357), (1 2 4, 3 5 7))libspatialite-4.1.1/test/sql_stmt_tests/setpoint11.testcase0000664000175000017500000000037312163502134021101 00000000000000ST_SetPoint() - INTEGER Point :memory: #use in-memory database SELECT ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1, 1) 1 # rows (not including the header row) 1 # columns ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1, 1) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/fromgml54.testcase0000664000175000017500000000202112163502134020676 00000000000000FromGML - MultiLinestring v3 :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('1 2 3 4 5 6 7 810 10 11.5 11')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('1 2 3 4 5 6 7 810 10 11.5 11')):0 SRID=4326;MULTILINESTRING((1 2,3 4,5 6,7 8),(10 10,11.5 11)) libspatialite-4.1.1/test/sql_stmt_tests/sanitizeGeometry15.testcase0000664000175000017500000000135612163502134022604 00000000000000Sanitize Geometry - POLYGONM with interior :memory: #use in-memory database SELECT AsText(SanitizeGeometry(GeomFromText("POLYGONM((-10 -10 1, -10 -10 1, 10 -10 2, 10 10 3, -10 10 4, -10 -10 1, -10 -10 1),(-6 -6 2, -6 -5 3, -5 -5 3, -5 -5 4, -5 -5 4, -5 -6 9, -6 -6 2),(6 6 0, 5 6 0, 5 6 0, 5 5 0, 6 5 0, 6 6 0))"))) 1 # rows (not including the header row) 1 # columns AsText(SanitizeGeometry(GeomFromText("POLYGONM((-10 -10 1, -10 -10 1, 10 -10 2, 10 10 3, -10 10 4, -10 -10 1, -10 -10 1),(-6 -6 2, -6 -5 3, -5 -5 3, -5 -5 4, -5 -5 4, -5 -6 9, -6 -6 2),(6 6 0, 5 6 0, 5 6 0, 5 5 0, 6 5 0, 6 6 0))"))) POLYGON M((-10 -10 1, 10 -10 2, 10 10 3, -10 10 4, -10 -10 1), (-6 -6 2, -6 -5 3, -5 -5 3, -5 -6 9, -6 -6 2), (6 6 0, 5 6 0, 5 5 0, 6 5 0, 6 6 0)) libspatialite-4.1.1/test/sql_stmt_tests/makepointzm-null6.testcase0000664000175000017500000000042612163502134022465 00000000000000makepointzm-null6 :memory: #use in-memory database SELECT AsText(MakePointZM(-26.0, 42.3150676015829, 0.0038723129645, 12.6389, "WGS84")); 1 # rows (not including the header row) 1 # columns AsText(MakePointZM(-26.0, 42.3150676015829, 0.0038723129645, 12.6389, "WGS84")) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/mbr13.testcase0000664000175000017500000000045012163502134020012 00000000000000MbrEqual - Line + Line :memory: #use in-memory database SELECT MbrEqual(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("LINESTRING(1 0, 0 2)")); 1 # rows (not including the header row) 1 # columns MbrEqual(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("LINESTRING(1 0, 0 2)")) # header 1libspatialite-4.1.1/test/sql_stmt_tests/ring14.testcase0000664000175000017500000000030612163502134020172 00000000000000NumInteriorRings - bad blob (error) :memory: #use in-memory database SELECT NumInteriorRings(zeroblob(12)); 1 # rows (not including the header row) 1 # columns NumInteriorRings(zeroblob(12)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/setpoint3.testcase0000664000175000017500000000027112163502134021017 00000000000000ST_SetPoint() - DOUBLE line :memory: #use in-memory database SELECT ST_SetPoint(1.5, NULL, NULL) 1 # rows (not including the header row) 1 # columns ST_SetPoint(1.5, NULL, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/wkttosql2.testcase0000664000175000017500000000025212163502134021040 00000000000000ST_WKTToSQL - blob :memory: #use in-memory database SELECT ST_WKTToSQL(zeroblob(50)) 1 # rows (not including the header row) 1 # columns ST_WKTToSQL(zeroblob(50)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/badwkt6.testcase0000664000175000017500000000063612163502133020435 00000000000000bad WKT: MultiPolygon :memory: #use in-memory database SELECT GeomFromText("MULTIPOLYGON(((11.2 12.3, 11.3 12.3, 11.3 12.4, 11.2 12.4, 11.2 12.3)), ((10.2 11.3, 10.3 11.3, 10.3 11.4, 10.2 11.4, 10.2 11.3))"); 1 # rows (not including the header row) 1 # columns GeomFromText("MULTIPOLYGON(((11.2 12.3, 11.3 12.3, 11.3 12.4, 11.2 12.4, 11.2 12.3)), ((10.2 11.3, 10.3 11.3, 10.3 11.4, 10.2 11.4, 10.2 11.3))") (NULL) libspatialite-4.1.1/test/sql_stmt_tests/sanitizeGeometry8.testcase0000664000175000017500000000067712163502134022533 00000000000000Sanitize Geometry - MULTIPOINT ZM :memory: #use in-memory database SELECT AsEWkt(SanitizeGeometry(GeomFromText("MULTIPOINTZM(-71 42 2 0, -70 41 2 0, -70 42 3 0, -70 42 4 0, -71 42 2 0)", 4326))) 1 # rows (not including the header row) 1 # columns AsEWkt(SanitizeGeometry(GeomFromText("MULTIPOINTZM(-71 42 2 0, -70 41 2 0, -70 42 3 0, -70 42 4 0, -71 42 2 0)", 4326))) SRID=4326;MULTIPOINT(-71 42 2 0,-70 41 2 0,-70 42 3 0,-70 42 4 0,-71 42 2 0) libspatialite-4.1.1/test/sql_stmt_tests/geomtype32.testcase0000664000175000017500000000052412163502134021066 00000000000000geometrytype - GEOMETRYCOLLECTIONM only linestring :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom) from (SELECT GeomFromText("GEOMETRYCOLLECTIONM(LINESTRINGM(4 6 0,7 10 0))") as geom) dummy; 1 # rows (not including the header row) 2 # columns GeometryType(geom) CoordDimension(geom) GEOMETRYCOLLECTION M XYMlibspatialite-4.1.1/test/sql_stmt_tests/maxm4.testcase0000664000175000017500000000037312163502134020120 00000000000000MaxM - Linestring XYZ :memory: #use in-memory database SELECT ST_MaxM(GeomFromText('LINESTRINGZ(1 2 100, 3 4 103, 5 6 101)')); 1 # rows (not including the header row) 1 # columns ST_MaxM(GeomFromText('LINESTRINGZ(1 2 100, 3 4 103, 5 6 101)')) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/collect20.testcase0000664000175000017500000000050012163502133020650 00000000000000collect - PointZM, PointZ :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POINTZM(4 5 6 3.2)"), GeomFromText("POINTZ(1 2 4)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POINTZM(4 5 6 3.2)"), GeomFromText("POINTZ(1 2 4)"))) MULTIPOINT ZM(4 5 6 3.2, 1 2 4 0) libspatialite-4.1.1/test/sql_stmt_tests/wkbtosql2.testcase0000664000175000017500000000025612163502134021022 00000000000000ST_WKBToSQL - bad blob :memory: #use in-memory database SELECT ST_WKBToSQL(zeroblob(50)) 1 # rows (not including the header row) 1 # columns ST_WKBToSQL(zeroblob(50)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/casttodouble2.testcase0000664000175000017500000000025512163502133021642 00000000000000CastToDouble() - BLOB :memory: #use in-memory database SELECT CastToDouble(zeroblob(4)) 1 # rows (not including the header row) 1 # columns CastToDouble(zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/collectextract12.testcase0000664000175000017500000000040612163502133022251 00000000000000Collection Extract - PointM :memory: #use in-memory database SELECT AsText(CollectionExtract(GeomFromText("POINTM(1 2 4)"), 1)); 1 # rows (not including the header row) 1 # columns AsText(CollectionExtract(GeomFromText("POINTM(1 2 4)"), 1)) MULTIPOINT M(1 2 4) libspatialite-4.1.1/test/sql_stmt_tests/wkb8.testcase0000664000175000017500000000101112163502134017733 00000000000000Hex Wkb: GeometryColelction XYZM (2 points) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONZM(POINTZM(1.2 3.4 100 12), POINTZM(5.6 7.8 101 11))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONZM(POINTZM(1.2 3.4 100 12), POINTZM(5.6 7.8 101 11))", 4326))); 01BF0B00000200000001B90B0000333333333333F33F3333333333330B400000000000005940000000000000284001B90B000066666666666616403333333333331F4000000000004059400000000000002640 libspatialite-4.1.1/test/sql_stmt_tests/assvg21.testcase0000664000175000017500000000053312163502133020355 00000000000000assvg - relative/absolute Linestring XYZM :memory: #use in-memory database SELECT assvg(geom, 1) AS rel, assvg(geom, 0) AS abs FROM (SELECT GeomFromText("LINESTRINGZM(1 2 100 10, 4 3 101 11, 5 6 102 12, 8 7 103 13)", 4326) AS geom) dummy; 1 # rows (not including the header row) 2 # columns rel abs M 1 -2 l 3 -1 1 -3 3 -1 M 1 -2 L 4 -3 5 -6 8 -7 libspatialite-4.1.1/test/sql_stmt_tests/mbrminmax5.testcase0000664000175000017500000000021412163502134021143 00000000000000MbrMinY- non-blob :memory: #use in-memory database SELECT MbrMinY(3) 1 # rows (not including the header row) 1 # columns MbrMinY(3) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/lhr5.testcase0000664000175000017500000000204212163502134017737 00000000000000forceLHR - GeometryCollection XYM :memory: #use in-memory database SELECT AsEWKT(ST_ForceLHR(GeomFromText("GEOMETRYCOLLECTIONM(POINTM(1 2 10), LINESTRINGM(3 4 10, 5 6 11, 7 8 12, 9 9 13), POLYGONM((10 10 11, 14 10 12, 12 12 13, 10 10 11), (11 10.5 10, 13 10.5 11, 12 11.5 12, 11 10.5 10)), POLYGONM((20 20 10, 24 20 11, 22 18 12, 20 20 10), (21 19.5 11, 23 19.5 12, 22 18.5 13, 21 19.5 11)))", 4326))); 1 # rows (not including the header row) 1 # columns AsEWKT(ST_ForceLHR(GeomFromText("GEOMETRYCOLLECTIONM(POINTM(1 2 10), LINESTRINGM(3 4 10, 5 6 11, 7 8 12, 9 9 13), POLYGONM((10 10 11, 14 10 12, 12 12 13, 10 10 11), (11 10.5 10, 13 10.5 11, 12 11.5 12, 11 10.5 10)), POLYGONM((20 20 10, 24 20 11, 22 18 12, 20 20 10), (21 19.5 11, 23 19.5 12, 22 18.5 13, 21 19.5 11)))", 4326))) SRID=4326;GEOMETRYCOLLECTIONM(POINTM(1 2 10),LINESTRINGM(3 4 10,5 6 11,7 8 12,9 9 13),POLYGONM((10 10 11,12 12 13,14 10 12,10 10 11),(11 10.5 10,13 10.5 11,12 11.5 12,11 10.5 10)),POLYGONM((20 20 10,24 20 11,22 18 12,20 20 10),(21 19.5 11,22 18.5 13,23 19.5 12,21 19.5 11))) libspatialite-4.1.1/test/sql_stmt_tests/makecircle10.testcase0000664000175000017500000000030012163502134021320 00000000000000makecircle10 - valid :memory: #use in-memory database SELECT ST_Length(MakeCircle(0, 0, 100)); 1 # rows (not including the header row) 1 # columns ST_Length(MakeCircle(0, 0, 100)) 627.5213:4 libspatialite-4.1.1/test/sql_stmt_tests/makeellipticarc19.testcase0000664000175000017500000000033712163502134022375 00000000000000makeellipticarc19 - NULL srid :memory: #use in-memory database SELECT MakeEllipticArc(0, 0, 100, 200, 30, 60, NULL); 1 # rows (not including the header row) 1 # columns MakeEllipticArc(0, 0, 100, 200, 30, 60, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/normalizelonlat25.testcase0000664000175000017500000000130312163502134022445 00000000000000normalizelonlat- out of range negative lat polygonzm :memory: #use in-memory database SELECT AsText(NormalizeLonLat(GeomFromText("POLYGONZM((120 -140 5 20, 120 -150 20 30, 130 -150 20 1, 130 -140 2 8, 120 -140 5 20), (122 -142 0 0, 124 -142 1 2, 124 -144 2 4, 122 -144 3 6, 122 -142 0 0))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(NormalizeLonLat(GeomFromText("POLYGONZM((120 -140 5 20, 120 -150 20 30, 130 -150 20 1, 130 -140 2 8, 120 -140 5 20), (122 -142 0 0, 124 -142 1 2, 124 -144 2 4, 122 -144 3 6, 122 -142 0 0))", 4326))) POLYGON ZM((120 -40 5 20, 120 -30 20 30, 130 -30 20 1, 130 -40 2 8, 120 -40 5 20), (122 -38 0 0, 124 -38 1 2, 124 -36 2 4, 122 -36 3 6, 122 -38 0 0)) libspatialite-4.1.1/test/sql_stmt_tests/addpoint19.testcase0000664000175000017500000000045012163502133021041 00000000000000ST_AddPoint() - append (no index) :memory: #use in-memory database SELECT AsText(AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1))) 1 # rows (not including the header row) 1 # columns AsText(AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1))) LINESTRING(0 0, 1 0, 1 1) libspatialite-4.1.1/test/sql_stmt_tests/assvg5.testcase0000664000175000017500000000024212163502133020274 00000000000000assvg - 1 arg bad blob :memory: #use in-memory database SELECT assvg(zeroblob(49)) 1 # rows (not including the header row) 1 # columns assvg(zeroblob(49)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makepointz-null1.testcase0000664000175000017500000000036312163502134022303 00000000000000makepointz-null1 :memory: #use in-memory database SELECT AsText(MakePointZ("hello", 42.3150676015829, 0.0038723129645)); 1 # rows (not including the header row) 1 # columns AsText(MakePointZ("hello", 42.3150676015829, 0.0038723129645)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geomtype16.testcase0000664000175000017500000000060212163502134021065 00000000000000geometrytype - MULTIPOLYGONZM :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom) from (SELECT GeomFromText("MULTIPOLYGONZM(((30 20 1 2, 10 40 1 2, 45 40 1 2, 30 20 1 2)),((15 5 2 3, 40 10 2 3, 10 20 2 3, 5 10 2 3, 15 5 2 3)))") as geom) dummy; 1 # rows (not including the header row) 2 # columns GeometryType(geom) CoordDimension(geom) MULTIPOLYGON ZM XYZMlibspatialite-4.1.1/test/sql_stmt_tests/collect25.testcase0000664000175000017500000000063312163502133020664 00000000000000collect - LineString, LineStringZ :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("Linestring(1 2, 3 4)"), GeomFromText("LINESTRINGZ(4 5 3.2, 1 2 4.6, 4 2 3.1)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("Linestring(1 2, 3 4)"), GeomFromText("LINESTRINGZ(4 5 3.2, 1 2 4.6, 4 2 3.1)"))) MULTILINESTRING Z((1 2 0, 3 4 0), (4 5 3.2, 1 2 4.6, 4 2 3.1)) libspatialite-4.1.1/test/sql_stmt_tests/wkb7.testcase0000664000175000017500000000072212163502134017742 00000000000000Hex Wkb: GeometryCollection XYM (2 points) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONM(POINTM(1.2 3.4 12), POINTM(5.6 7.8 11))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONM(POINTM(1.2 3.4 12), POINTM(5.6 7.8 11))", 4326))); 01D70700000200000001D1070000333333333333F33F3333333333330B40000000000000284001D107000066666666666616403333333333331F400000000000002640 libspatialite-4.1.1/test/sql_stmt_tests/ring1.testcase0000664000175000017500000000045412163502134020112 00000000000000ExteriorRing - Linestring (error) :memory: #use in-memory database SELECT ExteriorRing(GeomFromText("LINESTRING(136 -35, 135.2 -34.5, 136 -35.2, 136 -35)")); 1 # rows (not including the header row) 1 # columns ExteriorRing(GeomFromText("LINESTRING(136 -35, 135.2 -34.5, 136 -35.2, 136 -35)")) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/fromgml48.testcase0000664000175000017500000000311412163502134020705 00000000000000FromGML - GeometryCollection v3 3D :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('8 8 10.59 9 10.5 10.1 10.1 10.60 0 10 5 0 11 5 5 12 0 5 13 0 0 101 1 5 2 1 5 2 2 5 1 2 5 1 1 5')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('8 8 10.59 9 10.5 10.1 10.1 10.60 0 10 5 0 11 5 5 12 0 5 13 0 0 101 1 5 2 1 5 2 2 5 1 2 5 1 1 5')):0 SRID=4326;GEOMETRYCOLLECTION(POINT(8 8 10.5),LINESTRING(9 9 10.5,10.1 10.1 10.6),POLYGON((0 0 10,5 0 11,5 5 12,0 5 13,0 0 10),(1 1 5,2 1 5,2 2 5,1 2 5,1 1 5))) libspatialite-4.1.1/test/sql_stmt_tests/normalizelonlat2.testcase0000664000175000017500000000041312163502134022361 00000000000000normalizelonlat- out of range positive long :memory: #use in-memory database SELECT AsText(NormalizeLonLat(GeomFromText("POINT(361 2)", 4326))) 1 # rows (not including the header row) 1 # columns AsText(NormalizeLonLat(GeomFromText("POINT(361 2)", 4326))) POINT(1 2) libspatialite-4.1.1/test/sql_stmt_tests/makeline27.testcase0000664000175000017500000000045312163502134021027 00000000000000makeline - MULTIPOINT (XYZ valid - reverse order) :memory: #use in-memory database SELECT AsText(MakeLine(GeomFromText("MULTIPOINTZ(1 2 10,3 4 11)"), 0)) 1 # rows (not including the header row) 1 # columns AsText(MakeLine(GeomFromText("MULTIPOINTZ(1 2 10,3 4 11)"), 0)) LINESTRING Z(3 4 11, 1 2 10) libspatialite-4.1.1/test/sql_stmt_tests/makecircle18.testcase0000664000175000017500000000034712163502134021343 00000000000000makecircle18 - valid step :memory: #use in-memory database SELECT ST_Length(MakeCircle(0.0, 0.0, 100.0, 4326, 1.0)); 1 # rows (not including the header row) 1 # columns ST_Length(MakeCircle(0.0, 0.0, 100.0, 4326, 1.0)) 628.3105:4 libspatialite-4.1.1/test/sql_stmt_tests/garsmbr31.testcase0000664000175000017500000000025012163502134020665 00000000000000garsmbr - bad segment number 5 :memory: #use in-memory database SELECT GARSMbr("001AA51") 1 # rows (not including the header row) 1 # columns GARSMbr("001AA51") (NULL) libspatialite-4.1.1/test/sql_stmt_tests/normalizelonlat27.testcase0000664000175000017500000000110312163502134022445 00000000000000normalizelonlat- out of range negative lat polygon :memory: #use in-memory database SELECT AsText(NormalizeLonLat(GeomFromText("POLYGON((120 -140, 120 -150, 130 -150, 130 -140, 120 -140), (122 -142, 124 -142, 124 -144, 122 -144, 122 -142))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(NormalizeLonLat(GeomFromText("POLYGON((120 -140, 120 -150, 130 -150, 130 -140, 120 -140), (122 -142, 124 -142, 124 -144, 122 -144, 122 -142))", 4326)))42 0))", 4326))) POLYGON((120 -40, 120 -30, 130 -30, 130 -40, 120 -40), (122 -38, 124 -38, 124 -36, 122 -36, 122 -38)) libspatialite-4.1.1/test/sql_stmt_tests/makeellipse17.testcase0000664000175000017500000000033612163502134021534 00000000000000makeellipse17 - WGS84 srid :memory: #use in-memory database SELECT ST_Length(MakeEllipse(0, 0, 100, 200, 4326)); 1 # rows (not including the header row) 1 # columns ST_Length(MakeEllipse(0, 0, 100, 200, 4326)) 967.6155:4 libspatialite-4.1.1/test/sql_stmt_tests/fromgml58.testcase0000664000175000017500000000107612163502134020713 00000000000000FromGML - Curve :memory: #use in-memory database SELECT AsText(GeomFromGml('1 23 45 67 8')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromGml('1 23 45 67 8')):0 LINESTRING(1 2, 3 4, 5 6, 7 8) libspatialite-4.1.1/test/sql_stmt_tests/assvg17.testcase0000664000175000017500000000037212163502133020363 00000000000000assvg - 3 arg excessive precision :memory: #use in-memory database SELECT assvg(GeomFromText("Point(1.3759 2)", 4326), 0, 17) 1 # rows (not including the header row) 1 # columns assvg(GeomFromText("Point(1.3759 2)", 4326), 0, 17) cx="1.3759" cy="-2" libspatialite-4.1.1/test/sql_stmt_tests/geomconstraints17.testcase0000664000175000017500000000057512163502134022465 00000000000000geometry constraints - MULTILINESTRINGZ :memory: #use in-memory database SELECT GeometryConstraints(GeomFromText("MULTILINESTRINGZ((1 2 3, 4 3 1),(0 4 4, 1 9 7))", 4326), "MULTILINESTRING", 4326, "XYM") 1 # rows (not including the header row) 1 # columns GeometryConstraints(GeomFromText("MULTILINESTRINGZ((1 2 3, 4 3 1),(0 4 4, 1 9 7))", 4326), "MULTILINESTRING", 4326, "XYM") 0 libspatialite-4.1.1/test/sql_stmt_tests/rotatecoords5.testcase0000664000175000017500000000136312163502134021667 00000000000000rotate coords - LINESTRING M :memory: #use in-memory database SELECT AsText(RotateCoords(geom, 0)), AsText(RotateCoords(geom, 90.0)), AsText(RotateCoords(geom, 180.0)), AsText(RotateCoords(geom, -90)), RotateCoords(zeroblob(20), 10), RotateCoords(geom, "hello"), RotateCoords("foo", 30) FROM (SELECT GeomFromText("LINESTRINGM(0 0 2, 1 1 3)") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(RotateCoords(geom, 0)) AsText(RotateCoords(geom, 90.0)) AsText(RotateCoords(geom, 180.0)) AsText(RotateCoords(geom, -90)) RotateCoords(zeroblob(20), 10) RotateCoords(geom, "hello") RotateCoords("foo", 30) LINESTRING M(0 0 2, 1 1 3) LINESTRING M(0 0 2, 1 -1 3) LINESTRING M(0 0 2, -1 -1 3) LINESTRING M(0 0 2, -1 1 3) (NULL) (NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/startpoint3.testcase0000664000175000017500000000027012163502134021360 00000000000000startpoint - text input (error) :memory: #use in-memory database SELECT StartPoint("hello world"); 1 # rows (not including the header row) 1 # columns StartPoint("hello world") (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makecircularsector12.testcase0000664000175000017500000000032612163502134023115 00000000000000makecircularsector12 - NULL stop :memory: #use in-memory database SELECT MakeCircularSector(0, 0, 100, 30, NULL); 1 # rows (not including the header row) 1 # columns MakeCircularSector(0, 0, 100, 30, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/nrings4.testcase0000664000175000017500000000044712163502134020460 00000000000000nrings - Point plus linestring :memory: #use in-memory database SELECT ST_NRings(GeomFromText("GeometryCollection(POINT(1 2), LINESTRING(1 3, 4 6, 7 9))")) 1 # rows (not including the header row) 1 # columns ST_NRings(GeomFromText("GeometryCollection(POINT(1 2), LINESTRING(1 3, 4 6, 7 9))")) 0 libspatialite-4.1.1/test/sql_stmt_tests/NumPoints7.testcase0000664000175000017500000000031112163502133021104 00000000000000NumPoints - Simple line Z :memory: #use in-memory database SELECT NumPoints(GeomFromText("POINT(0 0)")); 1 # rows (not including the header row) 1 # column NumPoints(GeomFromText("POINT(0 0)")) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/fromewkt4.testcase0000664000175000017500000000047712163502134021021 00000000000000fromewkt4 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(MULTIPOINT(0 1, 2 3, 4 5))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(MULTIPOINT(0 1, 2 3, 4 5))')); GEOMETRYCOLLECTION(POINT(0 1), POINT(2 3), POINT(4 5)) libspatialite-4.1.1/test/sql_stmt_tests/casttoblob5.testcase0000664000175000017500000000023712163502133021311 00000000000000CastToBlob() - DOUBLE :memory: #use in-memory database SELECT CastToBlob(123.5) 1 # rows (not including the header row) 1 # columns CastToBlob(123.5) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/removepoint4.testcase0000664000175000017500000000027412163502134021525 00000000000000ST_RemovePoint() - TEXT line :memory: #use in-memory database SELECT ST_RemovePoint('alpha', NULL) 1 # rows (not including the header row) 1 # columns ST_RemovePoint('alpha', NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/casttosingle7.testcase0000664000175000017500000000053012163502133021652 00000000000000casttosingle - POLYGON and POINT :memory: #use in-memory database SELECT AsText(CastToSingle(GeomFromText("GEOMETRYCOLLECTION(POLYGON((0 1, 2 1, 2 4, 0 4, 0 1)),POINT(4 2.3))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToSingle(GeomFromText("GEOMETRYCOLLECTION(POLYGON((0 1, 2 1, 2 4, 0 4, 0 1)),POINT(4 2.3))"))) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/minz5.testcase0000664000175000017500000000036512163502134020135 00000000000000MinZ - Linestring XYM :memory: #use in-memory database SELECT ST_MinZ(GeomFromText('LINESTRINGM(1 2 10, 3 4 11, 5 6 12)')); 1 # rows (not including the header row) 1 # columns ST_MinZ(GeomFromText('LINESTRINGM(1 2 10, 3 4 11, 5 6 12)')) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/pointn2.testcase0000664000175000017500000000041412163502134020457 00000000000000pointN - regular LINESTRING (first point) :memory: #use in-memory database SELECT AsText(PointN(GeomFromText("LINESTRING(4 0, 4 4, 8 4)"), 1)); 1 # rows (not including the header row) 1 # columns AsText(PointN(GeomFromText("LINESTRING(4 0, 4 4, 8 4)"), 1)) POINT(4 0) libspatialite-4.1.1/test/sql_stmt_tests/addpoint1.testcase0000664000175000017500000000025512163502133020753 00000000000000ST_AddPoint() - NULL line :memory: #use in-memory database SELECT ST_AddPoint(NULL, NULL) 1 # rows (not including the header row) 1 # columns ST_AddPoint(NULL, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/extractmultilinestring2.testcase0000664000175000017500000000027112163502134023775 00000000000000extractmultilinestring - non-blob :memory: #use in-memory database SELECT ExtractMultiLinestring(4) 1 # rows (not including the header row) 1 # columns ExtractMultiLinestring(4) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/badwkt7.testcase0000664000175000017500000000045412163502133020434 00000000000000bad WKT: GeometryCollection :memory: #use in-memory database SELECT GeomFromText("GEOMETRYCOLLECYION(POINT(11.2 12.3), LINESTRING(11.3 12.4, 11.4 12.4)"); 1 # rows (not including the header row) 1 # columns GeomFromText("GEOMETRYCOLLECYION(POINT(11.2 12.3), LINESTRING(11.3 12.4, 11.4 12.4)") (NULL) libspatialite-4.1.1/test/sql_stmt_tests/envelope7.testcase0000664000175000017500000000057212163502134020777 00000000000000Envelope - toxic :memory: #use in-memory database SELECT AsText(Envelope(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"))) 1 # rows (not including the header row) 1 # columns AsText(Envelope(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"))) POLYGON((135.2 -35.2, 136 -35.2, 136 -34.5, 135.2 -34.5, 135.2 -35.2)) libspatialite-4.1.1/test/sql_stmt_tests/scalecoords7.testcase0000664000175000017500000000161712163502134021464 00000000000000scale coords - POLYGONZ :memory: #use in-memory database SELECT AsText(ScaleCoords(geom, 0)), AsText(ScaleCoords(geom, 0.0)), AsText(ScaleCoords(geom, 2, 3.0)), AsText(ScaleCoords(geom, 1.0, -1)), ScaleCoords(zeroblob(20), 10), ScaleCoords(geom, "hello"), ScaleCoords(geom, 1, "hello"), ScaleCoords("foo", 2) FROM (SELECT GeomFromText("POLYGONZ((1 2 1, 1 3 1, 2 3 2, 2 2 2, 1 2 1))") as geom) dummy; 1 # rows (not including the header row) 8 # columns AsText(ScaleCoords(geom, 0)) AsText(ScaleCoords(geom, 0.0)) AsText(ScaleCoords(geom, 2, 3.0)) AsText(ScaleCoords(geom, 1.0, -1)) ScaleCoords(zeroblob(20), 10) ScaleCoords(geom, "hello") ScaleCoords(geom, 1, "hello") ScaleCoords("foo", 2) POLYGON Z((0 0 1, 0 0 1, 0 0 2, 0 0 2, 0 0 1)) POLYGON Z((0 0 1, 0 0 1, 0 0 2, 0 0 2, 0 0 1)) POLYGON Z((2 6 1, 2 9 1, 4 9 2, 4 6 2, 2 6 1)) POLYGON Z((1 -2 1, 1 -3 1, 2 -3 2, 2 -2 2, 1 -2 1)) (NULL) (NULL) (NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geomtype19.testcase0000664000175000017500000000060712163502134021075 00000000000000geometrytype - MULTILINESTRINGZM :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom) from (SELECT GeomFromText("MULTILINESTRINGZM((30 20 1 2, 10 40 1 2, 45 40 1 2, 30 20 1 2),(15 5 2 3, 40 10 2 3, 10 20 2 3, 5 10 2 3, 15 5 2 3))") as geom) dummy; 1 # rows (not including the header row) 2 # columns GeometryType(geom) CoordDimension(geom) MULTILINESTRING ZM XYZMlibspatialite-4.1.1/test/sql_stmt_tests/makepointz-null9.testcase0000664000175000017500000000033012163502134022305 00000000000000makepointz-null9 :memory: #use in-memory database SELECT MakePointZ(26.0, 42.3150676015829, 'alpha', 3389) 1 # rows (not including the header row) 1 # columns MakePointZ(26.0, 42.3150676015829, 'alpha', 3389) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makearc14.testcase0000664000175000017500000000030312163502134020633 00000000000000makearc14 - BLOB stop :memory: #use in-memory database SELECT MakeArc(0, 0, 100, 30, zeroblob(4)); 1 # rows (not including the header row) 1 # columns MakeArc(0, 0, 100, 30, zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/mbr5.testcase0000664000175000017500000000035012163502134017732 00000000000000MbrContains - Point + Text (error) :memory: #use in-memory database SELECT MbrContains(GeomFromText("POINT(2 1)"), "hello"); 1 # rows (not including the header row) 1 # columns MbrContains(GeomFromText("POINT(2 1)"), "hello") (NULL)libspatialite-4.1.1/test/sql_stmt_tests/garsmbr3.testcase0000664000175000017500000000022212163502134020603 00000000000000garsmbr - non text :memory: #use in-memory database SELECT GARSMbr(3.41) 1 # rows (not including the header row) 1 # columns GARSMbr(3.41) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/dissolve24.testcase0000664000175000017500000000067612163502133021075 00000000000000dissolve - Overlap points M :memory: #use in-memory database SELECT AsText(DissolveSegments(geom)),AsText(DissolvePoints(geom)) from (SELECT GeomFromText("LINESTRINGM(0 1 0, 0 2 1, 1 2 2, 1 2 3, 1 2 3)") as geom) dummy; 1 # rows (not including the header row) 2 # columns AsText(DissolveSegments(geom)) AsText(DissolvePoints(geom)) MULTILINESTRING M((0 1 0, 0 2 1), (0 2 1, 1 2 2), (1 2 2, 1 2 3)) MULTIPOINT M(0 1 0, 0 2 1, 1 2 2, 1 2 3, 1 2 3) libspatialite-4.1.1/test/sql_stmt_tests/NumPoints3.testcase0000664000175000017500000000034212163502133021104 00000000000000NumPoints - Simple line Z :memory: #use in-memory database SELECT NumPoints(GeomFromText("LINESTRINGZ(0 0 0, 1 2 1)")); 1 # rows (not including the header row) 1 # column NumPoints(GeomFromText("LINESTRINGZ(0 0 0, 1 2 1)")) 2 libspatialite-4.1.1/test/sql_stmt_tests/dissolve19.testcase0000664000175000017500000000107312163502133021071 00000000000000dissolve - POLYGON Z :memory: #use in-memory database SELECT AsText(DissolveSegments(geom)),AsText(DissolvePoints(geom)) from (SELECT GeomFromText("POLYGONZ((0 0 4,10 0 5,10 10 6,0 10 7,0 0 4),(1 1 2, 2 2 3, 2 1 4, 1 1 2))") as geom) dummy; 1 # rows (not including the header row) 2 # columns AsText(DissolveSegments(geom)) AsText(DissolvePoints(geom)) MULTILINESTRING Z((0 0 4, 10 0 5), (10 0 5, 10 10 6), (10 10 6, 0 10 7), (0 10 7, 0 0 4), (1 1 2, 2 2 3), (2 2 3, 2 1 4), (2 1 4, 1 1 2)) MULTIPOINT Z(0 0 4, 10 0 5, 10 10 6, 0 10 7, 0 0 4, 1 1 2, 2 2 3, 2 1 4, 1 1 2) libspatialite-4.1.1/test/sql_stmt_tests/normalizelonlat18.testcase0000664000175000017500000000050612163502134022453 00000000000000normalizelonlat- out of range positive lat linestring :memory: #use in-memory database SELECT AsText(NormalizeLonLat(GeomFromText("LINESTRING(120 140, 130 150)", 4326))) 1 # rows (not including the header row) 1 # columns AsText(NormalizeLonLat(GeomFromText("LINESTRING(120 140, 130 150)", 4326))) LINESTRING(120 40, 130 30) libspatialite-4.1.1/test/sql_stmt_tests/ring5.testcase0000664000175000017500000000027212163502134020114 00000000000000ExteriorRing - Bad blob (error) :memory: #use in-memory database SELECT ExteriorRing(zeroblob(27)); 1 # rows (not including the header row) 1 # columns ExteriorRing(zeroblob(27)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/pointn5.testcase0000664000175000017500000000040612163502134020463 00000000000000pointN - text index (error) :memory: #use in-memory database SELECT AsText(PointN(GeomFromText("LINESTRING(4 0, 4 4, 8 4)"), "three")); 1 # rows (not including the header row) 1 # columns AsText(PointN(GeomFromText("LINESTRING(4 0, 4 4, 8 4)"), "three")) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geometryn14.testcase0000664000175000017500000000047612163502134021254 00000000000000Geometry N - multilinestring :memory: #use in-memory database SELECT AsText(GeometryN(GeomFromText("MULTILINESTRING((1 1.6, 2.3 8.7, 2 1),(1 2, 1 1))"), 2)) 1 # rows (not including the header row) 1 # columns AsText(GeometryN(GeomFromText("MULTILINESTRING((1 1.6, 2.3 8.7, 2 1),(1 2, 1 1))"), 2)) LINESTRING(1 2, 1 1) libspatialite-4.1.1/test/sql_stmt_tests/st_m6.testcase0000664000175000017500000000022112163502134020112 00000000000000ST_M6 :memory: #use in-memory database SELECT ST_M(zeroblob(10)); 1 # rows (not including the header row) 1 # columns ST_M(zeroblob(10)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/scalecoords2.testcase0000664000175000017500000000141612163502134021454 00000000000000scale coords - LINESTRING :memory: #use in-memory database SELECT AsText(ScaleCoords(geom, 0)), AsText(ScaleCoords(geom, 0.0)), AsText(ScaleCoords(geom, 2, 3.0)), AsText(ScaleCoords(geom, 1.0, -1)), ScaleCoords(zeroblob(20), 10), ScaleCoords(geom, "hello"), ScaleCoords(geom, 1, "hello"), ScaleCoords("foo", 2) FROM (SELECT GeomFromText("LINESTRING(1 2, 4 5)") as geom) dummy; 1 # rows (not including the header row) 8 # columns AsText(ScaleCoords(geom, 0)) AsText(ScaleCoords(geom, 0.0)) AsText(ScaleCoords(geom, 2, 3.0)) AsText(ScaleCoords(geom, 1.0, -1)) ScaleCoords(zeroblob(20), 10) ScaleCoords(geom, "hello") ScaleCoords(geom, 1, "hello") ScaleCoords("foo", 2) LINESTRING(0 0, 0 0) LINESTRING(0 0, 0 0) LINESTRING(2 6, 8 15) LINESTRING(1 -2, 4 -5) (NULL) (NULL) (NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/fromWkb3.testcase0000664000175000017500000000022612163502134020561 00000000000000fromWkb - float :memory: #use in-memory database SELECT GeomFromWkb(1.67) 1 # rows (not including the header row) 1 # columns GeomFromWkb(1.67) (NULL)libspatialite-4.1.1/test/sql_stmt_tests/fromgeojson15.testcase0000664000175000017500000000077412163502134021575 00000000000000FromGeoJSON - polygon with SRID, bad coords :memory: #use in-memory database SELECT AsEWkt(GeomFromGeoJSON('{"type":"Polygon","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"coordinates":[[[1,2.3],[4,1.2],[2,1.6],[1,2.3]],[[1.5,2],[3.5,9],[2.5,1],[]]]}')); 1 # rows (not including the header row) 1 # columns AsEWkt(GeomFromGeoJSON('{"type":"Polygon","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"coordinates":[[[1,2.3],[4,1.2],[2,1.6],[1,2.3]],[[1.5,2],[3.5,9],[2.5,1],[]]]}')):0 (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geomconstraints14.testcase0000664000175000017500000000044512163502134022456 00000000000000geometry constraints - 4 arg, text arg 3 :memory: #use in-memory database SELECT GeometryConstraints(GeomFromText("POINT(1 2)", 4326), "POINT", "hello", 4326) 1 # rows (not including the header row) 1 # columns GeometryConstraints(GeomFromText("POINT(1 2)", 4326), "POINT", "hello", 4326) -1 libspatialite-4.1.1/test/sql_stmt_tests/makepointz-null3.testcase0000664000175000017500000000032112163502134022277 00000000000000makepointz-null3 :memory: #use in-memory database SELECT AsText(MakePointZ(26.0, "world", 0.54, 4326)); 1 # rows (not including the header row) 1 # columns AsText(MakePointZ(26.0, "world", 0.54, 4326)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makepointz-null6.testcase0000664000175000017500000000040112163502134022301 00000000000000makepointz-null6 :memory: #use in-memory database SELECT AsText(MakePointZ(-26.0, 42.3150676015829, 0.0038723129645, "WGS84")); 1 # rows (not including the header row) 1 # columns AsText(MakePointZ(-26.0, 42.3150676015829, 0.0038723129645, "WGS84")) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/fromgeojson11.testcase0000664000175000017500000000070212163502134021560 00000000000000FromGeoJSON - linestringZ with SRID :memory: #use in-memory database SELECT AsEWkt(GeomFromGeoJSON('{"type":"LineString","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"coordinates":[[1,2,2.3],[4,5,1.2]]}')) 1 # rows (not including the header row) 1 # columns AsEWkt(GeomFromGeoJSON('{"type":"LineString","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"coordinates":[[1,2,2.3],[4,5,1.2]]}')):0 SRID=3003;LINESTRING(1 2 2.3,4 5 1.2) libspatialite-4.1.1/test/sql_stmt_tests/reflectcoords6.testcase0000664000175000017500000000034712163502134022017 00000000000000reflectcoords6 :memory: #use in-memory database SELECT AsText(ReflectCoords(GeomFromText("POINT(1 2)"), 1.0, 1)); 1 # rows (not including the header row) 1 # columns AsText(ReflectCoords(GeomFromText("POINT(1 2)"), 1.0, 1)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/envintersects8.testcase0000664000175000017500000000041612163502134022054 00000000000000ST_EnvIntersects - ok [double coords] :memory: #use in-memory database SELECT ST_EnvIntersects(GeomFromText('POINT(2.5 2.8)'), 2.1, 2.1, 3.1, 3.1) 1 # rows (not including the header row) 1 # columns ST_EnvIntersects(GeomFromText('POINT(2.5 2.8)'), 2.1, 2.1, 3.1, 3.1) 1 libspatialite-4.1.1/test/sql_stmt_tests/geomfromtext43.testcase0000664000175000017500000000071512163502134021761 00000000000000geomfromtext43 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONZM(GEOMETRYCOLLECTIONZM(GEOMETRYCOLLECTIONZM(POINTZM(0 0 9 7), LINESTRINGZM(1 1 9 7, 2 2 9 7))))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTIONZM(GEOMETRYCOLLECTIONZM(GEOMETRYCOLLECTIONZM(POINTZM(0 0 9 7), LINESTRINGZM(1 1 9 7, 2 2 9 7))))')); GEOMETRYCOLLECTION ZM(POINT ZM(0 0 9 7), LINESTRING ZM(1 1 9 7, 2 2 9 7)) libspatialite-4.1.1/test/sql_stmt_tests/locatemeasure10.testcase0000664000175000017500000000065012163502134022062 00000000000000ST_Locate_Between_Measures - GeometryCollectionM :memory: #use in-memory database SELECT ST_Locate_Between_Measures(GeomFromText('GEOMETRYCOLLECTIONM(LINESTRINGM(0 1 2.1, 1 0 1, 2 1 2.1, 3 0 2.2, 4 1 4, 5 0 2.5))'), 20, 30.1); 1 # rows (not including the header row) 1 # columns ST_Locate_Between_Measures(GeomFromText('GEOMETRYCOLLECTIONM(LINESTRINGM(0 1 2.1, 1 0 1, 2 1 2.1, 3 0 2.2, 4 1 4, 5 0 2.5))'), 20, 30.1) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/fromewkt17.testcase0000664000175000017500000000055212163502134021077 00000000000000fromewkt17 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTIONM(MULTIPOINTM((0 1 9), (2 3 9), (4 5 9)))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTIONM(MULTIPOINTM((0 1 9), (2 3 9), (4 5 9)))')); GEOMETRYCOLLECTION M(POINT M(0 1 9), POINT M(2 3 9), POINT M(4 5 9)) libspatialite-4.1.1/test/sql_stmt_tests/garsmbr11.testcase0000664000175000017500000000023212163502134020663 00000000000000garsmbr - bad coords :memory: #use in-memory database SELECT GARSMbr("AA123") 1 # rows (not including the header row) 1 # columns GARSMbr("AA123") (NULL) libspatialite-4.1.1/test/sql_stmt_tests/casttomultilinestring4.testcase0000664000175000017500000000057712163502133023632 00000000000000casttomultilinestring - multilinestring :memory: #use in-memory database SELECT AsText(CastToMultiLineString(GeomFromText("MULTILINESTRING((0 1, 2 3),(7 9, 4 2, 0 1, 0.3 -2))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToMultiLineString(GeomFromText("MULTILINESTRING((0 1, 2 3),(7 9, 4 2, 0 1, 0.3 -2))"))) MULTILINESTRING((0 1, 2 3), (7 9, 4 2, 0 1, 0.3 -2)) libspatialite-4.1.1/test/sql_stmt_tests/shiftcoords14.testcase0000664000175000017500000000100312163502134021555 00000000000000shiftcoords - Polygon XYM :memory: #use in-memory database SELECT AsText(ShiftCoords(GeomFromText("POLYGONM((0 0 1, 10 0 2, 10 10 3, 0 10 4, 0 0 1), (5 5 1, 6 5 2, 6 6 3, 5 6 3, 5 5 1))"), 1.4, 3.9)); 1 # rows (not including the header row) 1 # columns AsText(ShiftCoords(GeomFromText("POLYGONM((0 0 1, 10 0 2, 10 10 3, 0 10 4, 0 0 1), (5 5 1, 6 5 2, 6 6 3, 5 6 3, 5 5 1))"), 1.4, 3.9)) POLYGON M((1.4 3.9 1, 11.4 3.9 2, 11.4 13.9 3, 1.4 13.9 4, 1.4 3.9 1), (6.4 8.9 1, 7.4 8.9 2, 7.4 9.9 3, 6.4 9.9 3, 6.4 8.9 1)) libspatialite-4.1.1/test/sql_stmt_tests/gml16.testcase0000664000175000017500000000135212163502134020016 00000000000000GML GeometryCollection (Point, Polygon): no SRID :memory: #use in-memory database SELECT AsGML(3, GeomFromText("GEOMETRYCOLLECTION(POINT(4 8), POLYGON((10 10, 20 10, 20 20, 10 20, 10 10)))")); 1 # rows (not including the header row) 1 # columns AsGML(3, GeomFromText("GEOMETRYCOLLECTION(POINT(4 8), POLYGON((10 10, 20 10, 20 20, 10 20, 10 10)))")) 4 810 10 20 10 20 20 10 20 10 10:0 # trailing ":0" required to avoid truncation !!! libspatialite-4.1.1/test/sql_stmt_tests/fromgml25.testcase0000664000175000017500000000246712163502134020712 00000000000000FromGML - MultiPolygon v2 3D (no namespace) :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('0,0,10 5,0,11 5,5,12 0,5,13 0,0,101,1,5 2,1,5 2,2,5 1,2,5 1,1,52,2,10 3,2,11 3,3,12 2,3,13 2,2,10')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('0,0,10 5,0,11 5,5,12 0,5,13 0,0,101,1,5 2,1,5 2,2,5 1,2,5 1,1,52,2,10 3,2,11 3,3,12 2,3,13 2,2,10')):0 SRID=4326;MULTIPOLYGON(((0 0 10,5 0 11,5 5 12,0 5 13,0 0 10),(1 1 5,2 1 5,2 2 5,1 2 5,1 1 5)),((2 2 10,3 2 11,3 3 12,2 3 13,2 2 10))) libspatialite-4.1.1/test/sql_stmt_tests/makeellipse9.testcase0000664000175000017500000000031012163502134021445 00000000000000makeellipse9 - BLOB x_axis :memory: #use in-memory database SELECT MakeEllipse(0, 0, zeroblob(4), 200); 1 # rows (not including the header row) 1 # columns MakeEllipse(0, 0, zeroblob(4), 200) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/ismeasured6.testcase0000664000175000017500000000033512163502134021317 00000000000000IsMeasured- Point XYZM :memory: #use in-memory database SELECT ST_IsMeasured(GeomFromText('POINTZM(1 2 100 10)')); 1 # rows (not including the header row) 1 # columns ST_IsMeasured(GeomFromText('POINTZM(1 2 100 10)')) 1 libspatialite-4.1.1/test/sql_stmt_tests/st_m3.testcase0000664000175000017500000000027612163502134020121 00000000000000ST_M3 :memory: #use in-memory database SELECT ST_M(GeomFromText("POINTM(136 -35 -8.6)")); 1 # rows (not including the header row) 1 # columns ST_M(GeomFromText("POINTM(136 -35 -8.6)")) -8.6 libspatialite-4.1.1/test/sql_stmt_tests/asewkb9.testcase0000664000175000017500000000074512163502133020441 00000000000000asewkb - LINESTRINGM :memory: #use in-memory database SELECT Hex(AsEWKB(GeomFromText("LINESTRINGM(1 3 2,1 0 2)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsEWKB(GeomFromText("LINESTRINGM(1 3 2,1 0 2)", 4326))) 535249443D343332363B303130323030303034303032303030303030303030303030303030303030463033463030303030303030303030303038343030303030303030303030303030303430303030303030303030303030463033463030303030303030303030303030303030303030303030303030303030303430 libspatialite-4.1.1/test/sql_stmt_tests/assvg20.testcase0000664000175000017500000000051112163502133020350 00000000000000assvg - relative/absolute Linestring XYM :memory: #use in-memory database SELECT assvg(geom, 1) AS rel, assvg(geom, 0) AS abs FROM (SELECT GeomFromText("LINESTRINGM(1 2 10, 4 3 11, 5 6 12, 8 7 13)", 4326) AS geom) dummy; 1 # rows (not including the header row) 2 # columns rel abs M 1 -2 l 3 -1 1 -3 3 -1 M 1 -2 L 4 -3 5 -6 8 -7 libspatialite-4.1.1/test/sql_stmt_tests/normalizelonlat7.testcase0000664000175000017500000000041212163502134022365 00000000000000normalizelonlat- out of range positive lat :memory: #use in-memory database SELECT AsText(NormalizeLonLat(GeomFromText("POINT(4 180)", 4326))) 1 # rows (not including the header row) 1 # columns AsText(NormalizeLonLat(GeomFromText("POINT(4 180)", 4326))) POINT(4 0) libspatialite-4.1.1/test/sql_stmt_tests/scalecoords11.testcase0000664000175000017500000000213312163502134021531 00000000000000scale coords - POLYGONZ with inner ring :memory: #use in-memory database SELECT AsText(ScaleCoords(geom, 0)), AsText(ScaleCoords(geom, 0.0)), AsText(ScaleCoords(geom, 2, 3.0)), AsText(ScaleCoords(geom, 1.0, -1)), ScaleCoords(zeroblob(20), 10), ScaleCoords(geom, "hello"), ScaleCoords(geom, 1, "hello"), ScaleCoords("foo", 2) FROM (SELECT GeomFromText("POLYGONZ((0 0 1, 0 4 1, 4 4 1, 4 0 1, 0 0 1),(1 2 1, 1 3 1, 2 3 1, 2 2 1, 1 2 1))") as geom) dummy; 1 # rows (not including the header row) 8 # columns AsText(ScaleCoords(geom, 0)) AsText(ScaleCoords(geom, 0.0)) AsText(ScaleCoords(geom, 2, 3.0)) AsText(ScaleCoords(geom, 1.0, -1)) ScaleCoords(zeroblob(20), 10) ScaleCoords(geom, "hello") ScaleCoords(geom, 1, "hello") ScaleCoords("foo", 2) POLYGON Z((0 0 1, 0 0 1, 0 0 1, 0 0 1, 0 0 1), (0 0 1, 0 0 1, 0 0 1, 0 0 1, 0 0 1)) POLYGON Z((0 0 1, 0 0 1, 0 0 1, 0 0 1, 0 0 1), (0 0 1, 0 0 1, 0 0 1, 0 0 1, 0 0 1)) POLYGON Z((0 0 1, 0 12 1, 8 12 1, 8 0 1, 0 0 1), (2 6 1, 2 9 1, 4 9 1, 4 6 1, 2 6 1)) POLYGON Z((0 0 1, 0 -4 1, 4 -4 1, 4 0 1, 0 0 1), (1 -2 1, 1 -3 1, 2 -3 1, 2 -2 1, 1 -2 1)) (NULL) (NULL) (NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/reflectcoords9.testcase0000664000175000017500000000047212163502134022021 00000000000000reflectcoords9 :memory: #use in-memory database SELECT AsText(ReflectCoords(GeomFromText("LINESTRINGZ(-1 -1 10, 1 0 11, 0 1 12)"), 1, 1)); 1 # rows (not including the header row) 1 # columns AsText(ReflectCoords(GeomFromText("LINESTRINGZ(-1 -1 10, 1 0 11, 0 1 12)"), 1, 1)) LINESTRING Z(1 1 10, -1 0 11, 0 -1 12) libspatialite-4.1.1/test/sql_stmt_tests/wkb34.testcase0000664000175000017500000000177712163502134020035 00000000000000Hex Wkb: MultiPolygon XYZ (single polygon with interior ring) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("MULTIPOLYGONZ(((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 12 12 102, 11 12 103, 11 11 100)))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("MULTIPOLYGONZ(((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 12 12 102, 11 12 103, 11 11 100)))", 4326))); 01EE0300000100000001EB03000002000000050000000000000000002440000000000000244000000000000059400000000000002E40000000000000244000000000004059400000000000002E400000000000002E40000000000080594000000000000024400000000000002E400000000000C0594000000000000024400000000000002440000000000000594005000000000000000000264000000000000026400000000000005940000000000000284000000000000026400000000000405940000000000000284000000000000028400000000000805940000000000000264000000000000028400000000000C05940000000000000264000000000000026400000000000005940 libspatialite-4.1.1/test/sql_stmt_tests/geomfromtext13.testcase0000664000175000017500000000103512163502134021752 00000000000000geomfromtext13 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTION(MULTIPOLYGON(((0 0, 5 0, 5 5, 0 5, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), ((10 10, 11 10, 11 11, 10 11, 10 10))))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTION(MULTIPOLYGON(((0 0, 5 0, 5 5, 0 5, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), ((10 10, 11 10, 11 11, 10 11, 10 10))))')); GEOMETRYCOLLECTION(POLYGON((0 0, 5 0, 5 5, 0 5, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), POLYGON((10 10, 11 10, 11 11, 10 11, 10 10))) libspatialite-4.1.1/test/sql_stmt_tests/casttolinestring3.testcase0000664000175000017500000000041612163502133022546 00000000000000casttolinestring - LINESTRING :memory: #use in-memory database SELECT AsText(CastToLineString(GeomFromText("LINESTRING(4 1, 3 4)"))) 1 # rows (not including the header row) 1 # columns AsText(CastToLineString(GeomFromText("LINESTRING(4 1, 3 4)"))) LINESTRING(4 1, 3 4) libspatialite-4.1.1/test/sql_stmt_tests/mbrminmax4.testcase0000664000175000017500000000024412163502134021145 00000000000000MbrMinX- bad blob :memory: #use in-memory database SELECT MbrMinX(zeroblob(340)) 1 # rows (not including the header row) 1 # columns MbrMinX(zeroblob(340)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/locatemeasure8.testcase0000664000175000017500000000066312163502134022015 00000000000000ST_Locate_Between_Measures - MultiPointZM - no match :memory: #use in-memory database SELECT ST_Locate_Between_Measures(GeomFromText('MULTIPOINTZM(0 1 100 2.1, 1 0 101 1, 2 1 102 2.1, 3 0 103 2.2, 4 1 104 4, 5 0 105 2.5)'), 20.1, 30); 1 # rows (not including the header row) 1 # columns ST_Locate_Between_Measures(GeomFromText('MULTIPOINTZM(0 1 100 2.1, 1 0 101 1, 2 1 102 2.1, 3 0 103 2.2, 4 1 104 4, 5 0 105 2.5)'), 20.1, 30) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makecircle13.testcase0000664000175000017500000000033212163502134021330 00000000000000makecircle13 - BLOB srid :memory: #use in-memory database SELECT ST_Length(MakeCircle(0, 0, 100, zeroblob(4))); 1 # rows (not including the header row) 1 # columns ST_Length(MakeCircle(0, 0, 100, zeroblob(4))) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/m_nm.testcase0000664000175000017500000000024512163502134020016 00000000000000metres to nautical miles :memory: #use in-memory database SELECT CvtToKmi(2000.0); 1 # rows (not including the header row) 1 # columns CvtToKmi(2000.0) 1.07991361:7 libspatialite-4.1.1/test/sql_stmt_tests/compressgeometry67.testcase0000664000175000017500000000075012163502133022654 00000000000000CompressGeometry - GEOMETRYCOLLECTION Z (1 Polygon) :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONZ(POLYGONZ((10 10 77, 11 10 88, 11 11 99, 10 11 88, 10 10 77)))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONZ(POLYGONZ((10 10 77, 11 10 88, 11 11 99, 10 11 88, 10 10 77)))", 4326))) GEOMETRYCOLLECTION Z(POLYGON Z((10 10 77, 11 10 88, 11 11 99, 10 11 88, 10 10 77))) libspatialite-4.1.1/test/sql_stmt_tests/geomfromtext39.testcase0000664000175000017500000000127212163502134021765 00000000000000geomfromtext39 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONZ(POINTZ(9 9 9), GEOMETRYCOLLECTIONZ(POINTZ(0 0 9), LINESTRINGZ(1 1 9, 2 2 9)), POINTZ(8 8 9), GEOMETRYCOLLECTIONZ(POINTZ(3 3 9), LINESTRINGZ(4 4 9, 5 5 9)), POINTZ(7 7 9))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTIONZ(POINTZ(9 9 9), GEOMETRYCOLLECTIONZ(POINTZ(0 0 9), LINESTRINGZ(1 1 9, 2 2 9)), POINTZ(8 8 9), GEOMETRYCOLLECTIONZ(POINTZ(3 3 9), LINESTRINGZ(4 4 9, 5 5 9)), POINTZ(7 7 9))')); GEOMETRYCOLLECTION Z(POINT Z(9 9 9), POINT Z(0 0 9), POINT Z(8 8 9), POINT Z(3 3 9), POINT Z(7 7 9), LINESTRING Z(1 1 9, 2 2 9), LINESTRING Z(4 4 9, 5 5 9)) libspatialite-4.1.1/test/sql_stmt_tests/minm5.testcase0000664000175000017500000000036012163502134020113 00000000000000MinM - Linestring XYM :memory: #use in-memory database SELECT ST_MinM(GeomFromText('LINESTRINGM(1 2 10, 3 4 9, 5 6 12)')); 1 # rows (not including the header row) 1 # columns ST_MinM(GeomFromText('LINESTRINGM(1 2 10, 3 4 9, 5 6 12)')) 9.0 libspatialite-4.1.1/test/sql_stmt_tests/locatemeasure1.testcase0000664000175000017500000000033712163502134022004 00000000000000ST_Locate_Between_Measures - bad arg #1 :memory: #use in-memory database SELECT ST_Locate_Between_Measures("alpha", 2, 3) 1 # rows (not including the header row) 1 # columns ST_Locate_Between_Measures("alpha", 2, 3) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makecircularsector5.testcase0000664000175000017500000000033312163502134023035 00000000000000makecircularsector5 - text cy :memory: #use in-memory database SELECT MakeCircularSector(0, 'alpha', 100, 30, 60); 1 # rows (not including the header row) 1 # columns MakeCircularSector(0, 'alpha', 100, 30, 60) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/rotatecoords6.testcase0000664000175000017500000000141512163502134021666 00000000000000rotate coords - LINESTRING ZM :memory: #use in-memory database SELECT AsText(RotateCoords(geom, 0)), AsText(RotateCoords(geom, 90.0)), AsText(RotateCoords(geom, 180.0)), AsText(RotateCoords(geom, -90)), RotateCoords(zeroblob(20), 10), RotateCoords(geom, "hello"), RotateCoords("foo", 30) FROM (SELECT GeomFromText("LINESTRINGZM(0 0 2 4, 1 1 3 5)") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(RotateCoords(geom, 0)) AsText(RotateCoords(geom, 90.0)) AsText(RotateCoords(geom, 180.0)) AsText(RotateCoords(geom, -90)) RotateCoords(zeroblob(20), 10) RotateCoords(geom, "hello") RotateCoords("foo", 30) LINESTRING ZM(0 0 2 4, 1 1 3 5) LINESTRING ZM(0 0 2 4, 1 -1 3 5) LINESTRING ZM(0 0 2 4, -1 -1 3 5) LINESTRING ZM(0 0 2 4, -1 1 3 5) (NULL) (NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/setpoint20.testcase0000664000175000017500000000045112163502134021076 00000000000000ST_SetPoint() - XY :memory: #use in-memory database SELECT AsText(SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1, MakePoint(2, 3))) 1 # rows (not including the header row) 1 # columns AsText(SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1, MakePoint(2, 3))) LINESTRING(0 0, 2 3, 1 1) libspatialite-4.1.1/test/sql_stmt_tests/st_z7.testcase0000664000175000017500000000023612163502134020136 00000000000000ST_Z7 :memory: #use in-memory database SELECT ST_Z(MakePoint(136, -35)); 1 # rows (not including the header row) 1 # columns ST_Z(MakePoint(136, -35)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geomfromtext33.testcase0000664000175000017500000000241512163502134021757 00000000000000geomfromtext33 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONZM(POINTZM(8 8 9 7), MULTIPOLYGONZM(((0 0 9 7, 5 0 9 7, 5 5 9 7, 0 5 9 7, 0 0 9 7), (1 1 9 7, 2 1 9 7, 2 2 9 7, 1 2 9 7, 1 1 9 7)), ((10 10 9 7, 11 10 9 7, 11 11 9 7, 10 11 9 7, 10 10 9 7))), POINTZM(7 7 9 7), MULTILINESTRINGZM((0 1 9 7, 2 3 9 7), (4 5 9 7, 6 7 9 7)), POINTZM(6 6 9 7), MULTIPOINTZM((0 1 9 7), (2 3 9 7), (4 5 9 7)), POINTZM(9 9 9 7))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTIONZM(POINTZM(8 8 9 7), MULTIPOLYGONZM(((0 0 9 7, 5 0 9 7, 5 5 9 7, 0 5 9 7, 0 0 9 7), (1 1 9 7, 2 1 9 7, 2 2 9 7, 1 2 9 7, 1 1 9 7)), ((10 10 9 7, 11 10 9 7, 11 11 9 7, 10 11 9 7, 10 10 9 7))), POINTZM(7 7 9 7), MULTILINESTRINGZM((0 1 9 7, 2 3 9 7), (4 5 9 7, 6 7 9 7)), POINTZM(6 6 9 7), MULTIPOINTZM((0 1 9 7), (2 3 9 7), (4 5 9 7)), POINTZM(9 9 9 7))')); GEOMETRYCOLLECTION ZM(POINT ZM(8 8 9 7), POINT ZM(7 7 9 7), POINT ZM(6 6 9 7), POINT ZM(0 1 9 7), POINT ZM(2 3 9 7), POINT ZM(4 5 9 7), POINT ZM(9 9 9 7), LINESTRING ZM(0 1 9 7, 2 3 9 7), LINESTRING ZM(4 5 9 7, 6 7 9 7), POLYGON ZM((0 0 9 7, 5 0 9 7, 5 5 9 7, 0 5 9 7, 0 0 9 7), (1 1 9 7, 2 1 9 7, 2 2 9 7, 1 2 9 7, 1 1 9 7)), POLYGON ZM((10 10 9 7, 11 10 9 7, 11 11 9 7, 10 11 9 7, 10 10 9 7))) libspatialite-4.1.1/test/sql_stmt_tests/minz1.testcase0000664000175000017500000000021212163502134020120 00000000000000MinZ - non-blob :memory: #use in-memory database SELECT ST_MinZ(3) 1 # rows (not including the header row) 1 # columns ST_MinZ(3) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/fromewkt7.testcase0000664000175000017500000000105412163502134021014 00000000000000fromewkt7 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(MULTIPOLYGON(((0 0, 5 0, 5 5, 0 5, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), ((10 10, 11 10, 11 11, 10 11, 10 10))))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(MULTIPOLYGON(((0 0, 5 0, 5 5, 0 5, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), ((10 10, 11 10, 11 11, 10 11, 10 10))))')); GEOMETRYCOLLECTION(POLYGON((0 0, 5 0, 5 5, 0 5, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), POLYGON((10 10, 11 10, 11 11, 10 11, 10 10))) libspatialite-4.1.1/test/sql_stmt_tests/compressgeometry35.testcase0000664000175000017500000000050312163502133022643 00000000000000CompressGeometry - MULTIPOINT Z :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("MULTIPOINTZ(10 10 100, 11 11 101)", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("MULTIPOINTZ(10 10 100, 11 11 101)", 4326))) MULTIPOINT Z(10 10 100, 11 11 101) libspatialite-4.1.1/test/sql_stmt_tests/wkbtosql1.testcase0000664000175000017500000000053412163502134021020 00000000000000ST_WKBToSQL :memory: #use in-memory database SELECT Hex(ST_WKBToSQL(AsBinary(GeomFromText("Point(1 2)", 4326)))) 1 # rows (not including the header row) 1 # columns Hex(ST_WKBToSQL(AsBinary(GeomFromText("Point(1 2)", 4326)))) 000100000000000000000000F03F0000000000000040000000000000F03F00000000000000407C01000000000000000000F03F0000000000000040FE libspatialite-4.1.1/test/sql_stmt_tests/makecircularsector9.testcase0000664000175000017500000000032612163502134023043 00000000000000makecircularsector9 - NULL start :memory: #use in-memory database SELECT MakeCircularSector(0, 0, 100, NULL, 60); 1 # rows (not including the header row) 1 # columns MakeCircularSector(0, 0, 100, NULL, 60) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/setpoint23.testcase0000664000175000017500000000052412163502134021102 00000000000000ST_SetPoint() - ZM :memory: #use in-memory database SELECT AsText(SetPoint(GeomFromText('LINESTRINGZM(0 0 1 2, 1 0 2 3, 1 1 3 4)'), 1, MakePoint(2, 3))) 1 # rows (not including the header row) 1 # columns AsText(SetPoint(GeomFromText('LINESTRINGZM(0 0 1 2, 1 0 2 3, 1 1 3 4)'), 1, MakePoint(2, 3))) LINESTRING ZM(0 0 1 2, 2 3 0 0, 1 1 3 4) libspatialite-4.1.1/test/sql_stmt_tests/makecircle9.testcase0000664000175000017500000000027312163502134021261 00000000000000makecircle9 - BLOB radius :memory: #use in-memory database SELECT MakeCircle(0, 0, zeroblob(4)); 1 # rows (not including the header row) 1 # columns MakeCircle(0, 0, zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/casttomultipoint5.testcase0000664000175000017500000000043012163502133022572 00000000000000casttomultipoint - MULTIPOINT - 2 points :memory: #use in-memory database SELECT AsText(CastToMultiPoint(GeomFromText("MULTIPOINT(1 2, 4 8)"))) 1 # rows (not including the header row) 1 # columns AsText(CastToMultiPoint(GeomFromText("MULTIPOINT(1 2, 4 8)"))) MULTIPOINT(1 2, 4 8) libspatialite-4.1.1/test/sql_stmt_tests/fromgml41.testcase0000664000175000017500000000144212163502134020700 00000000000000FromGML - Polygon v2, inner ring poslist, bad closing :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('0,0 5,0 5,5 0,5 0,01 1 2 1 2 2 1 2 1 1')) 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('0,0 5,0 5,5 0,5 0,01 1 2 1 2 2 1 2 1 1')):0 (NULL)libspatialite-4.1.1/test/sql_stmt_tests/locatemeasure3.testcase0000664000175000017500000000036512163502134022007 00000000000000ST_Locate_Between_Measures - bad arg #3 :memory: #use in-memory database SELECT ST_Locate_Between_Measures(zeroblob(99), 2, "alpha") 1 # rows (not including the header row) 1 # columns ST_Locate_Between_Measures(zeroblob(99), 2, "alpha") (NULL) libspatialite-4.1.1/test/sql_stmt_tests/casttodouble4.testcase0000664000175000017500000000034512163502133021644 00000000000000CastToDouble() - TEXT valid :memory: #use in-memory database SELECT CastToDouble('123'), TypeOf(CastToDouble('123')) 1 # rows (not including the header row) 2 # columns CastToDouble('123') TypeOf(CastToDouble('123')) 123.0 real libspatialite-4.1.1/test/sql_stmt_tests/geomtype29.testcase0000664000175000017500000000056212163502134021076 00000000000000geometrytype - GEOMETRYCOLLECTIONZM :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom) from (SELECT GeomFromText("GEOMETRYCOLLECTIONZM(POINTZM(4 6 4 1), POINTZM(3 3 29 1), LINESTRINGZM(4 6 0 0,7 10 0 0))") as geom) dummy; 1 # rows (not including the header row) 2 # columns GeometryType(geom) CoordDimension(geom) GEOMETRYCOLLECTION ZM XYZMlibspatialite-4.1.1/test/sql_stmt_tests/seconds.wav0000664000175000017500000000060412163502134017507 00000000000000RIFF|WAVEfmt @@factJdataJR;(2.=aC++;5`I8'բ.^K=)>-KK;+,45Y>7(h-^K>'7+NVD-./>YE1&@0kA9%D.LA).,BbL0)79~L:'d\4cG=(;0MEB.-5@R<3(ҟE4U>9*M1\B>-24OVD2*=7PA9(Lq2PH>*8.DWM/,4<^D6'ߞG4^K?'?-IID,/0?dF0*<5XJ=(N}1N>?*6.NKD/+36WK;(蟢M1PP>&F-HQR,2.>MN1*33]V;'韢F-XL?)A,DI@-1libspatialite-4.1.1/test/sql_stmt_tests/m_usmi.testcase0000664000175000017500000000023212163502134020355 00000000000000metres to US miles :memory: #use in-memory database SELECT CvtToUsMi(1000); 1 # rows (not including the header row) 1 # columns CvtToUsMi(1000); 0.6213:6 libspatialite-4.1.1/test/sql_stmt_tests/collectextract8.testcase0000664000175000017500000000036712163502133022204 00000000000000Collection Extract - Point Float idx (NULL) :memory: #use in-memory database SELECT CollectionExtract(GeomFromText("POINT(1 2)"), 3.2); 1 # rows (not including the header row) 1 # columns CollectionExtract(GeomFromText("POINT(1 2)"), 3.2) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geometryn15.testcase0000664000175000017500000000043712163502134021252 00000000000000Geometry N - multipoint :memory: #use in-memory database SELECT AsText(GeometryN(GeomFromText("MULTIPOINT(1 1.6, 2.3 8.7, 2 1, 1 2, 1 1)"), 3)) 1 # rows (not including the header row) 1 # columns AsText(GeometryN(GeomFromText("MULTIPOINT(1 1.6, 2.3 8.7, 2 1, 1 2, 1 1)"), 3)) POINT(2 1) libspatialite-4.1.1/test/sql_stmt_tests/casttopoly4.testcase0000664000175000017500000000050412163502133021352 00000000000000casttopolygon - Geometry collection, point plus linestring :memory: #use in-memory database SELECT CastToPolygon(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(4 3, 4 1),POINT(1 2))")) 1 # rows (not including the header row) 1 # columns CastToPolygon(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(4 3, 4 1),POINT(1 2))")) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geodesic-len1.testcase0000664000175000017500000000032112163502134021502 00000000000000geodesic length polygon :memory: SELECT GeodesicLength(GeomFromText("POLYGON((0 0, 1 0, 0 0, 0 0))", 4326)); 1 # rows 1 # column GeodesicLength(GeomFromText("POLYGON((0 0, 1 0, 0 0, 0 0))", 4326)) 222638.98:9 libspatialite-4.1.1/test/sql_stmt_tests/casttoblob7.testcase0000664000175000017500000000027512163502133021315 00000000000000CastToBlob() - DOUBLE hex_input :memory: #use in-memory database SELECT CastToBlob('0129abCF', 2.3) 1 # rows (not including the header row) 1 # columns CastToBlob('0129abCF', 2.3) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geomcollfromtext2.testcase0000664000175000017500000000053512163502134022546 00000000000000geometrycollectionfromtext2 :memory: #use in-memory database SELECT AsWkt(GeometryCollectionFromText("GEOMETRYCOLLECTION(POINT(4 6),LINESTRING(4 6,7 10))")) 1 # rows (not including the header row) 1 # columns AsWkt(GeometryCollectionFromText("GEOMETRYCOLLECTION(POINT(4 6),LINESTRING(4 6,7 10))")) GEOMETRYCOLLECTION(POINT(4 6),LINESTRING(4 6,7 10))libspatialite-4.1.1/test/sql_stmt_tests/compressgeometry5.testcase0000664000175000017500000000071312163502133022563 00000000000000CompressGeometry - LINESTRINGZ :memory: #use in-memory database SELECT Hex(CompressGeometry(GeomFromText("LINESTRINGZ(1 2 3, 3 4 3)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(CompressGeometry(GeomFromText("LINESTRINGZ(1 2 3, 3 4 3)", 4326))) 0001E6100000000000000000F03F0000000000000040000000000000084000000000000010407C2A460F0002000000000000000000F03F00000000000000400000000000000840000000000000084000000000000010400000000000000840FE libspatialite-4.1.1/test/sql_stmt_tests/rotatecoords7.testcase0000664000175000017500000000144712163502134021674 00000000000000rotate coords - Simple polygon :memory: #use in-memory database SELECT AsText(RotateCoords(geom, 0)), AsText(RotateCoords(geom, 90.0)), AsText(RotateCoords(geom, 180.0)), AsText(RotateCoords(geom, -90)), RotateCoords(zeroblob(20), 10), RotateCoords(geom, "hello"), RotateCoords("foo", 30) FROM (SELECT GeomFromText("POLYGON((0 0, 1 1, 1 2, -1 1, 0 0))") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(RotateCoords(geom, 0)) AsText(RotateCoords(geom, 90.0)) AsText(RotateCoords(geom, 180.0)) AsText(RotateCoords(geom, -90)) RotateCoords(zeroblob(20), 10) RotateCoords(geom, "hello") RotateCoords("foo", 30) POLYGON((0 0, 1 1, 1 2, -1 1, 0 0)) POLYGON((0 0, 1 -1, 2 -1, 1 1, 0 0)) POLYGON((0 0, -1 -1, -1 -2, 1 -1, 0 0)) POLYGON((0 0, -1 1, -2 1, -1 -1, 0 0)) (NULL) (NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/asgml6.testcase0000664000175000017500000000033412163502133020257 00000000000000asgml - bad args (non-int, 2 arg) :memory: #use in-memory database SELECT asgml("hello", GeomFromText("Point(1 2)")); 1 # rows (not including the header row) 1 # columns asgml("hello", GeomFromText("Point(1 2)")) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/compressgeometry6.testcase0000664000175000017500000000101412163502133022557 00000000000000CompressGeometry - LINESTRINGM :memory: #use in-memory database SELECT Hex(geom), AsText(geom) FROM (SELECT CompressGeometry(GeomFromText("LINESTRINGM(1 2 3, 3 4 3, 5 6 4)", 4326)) AS geom) 1 # rows (not including the header row) 2 # columns Hex(geom) AsText(geom) 0001E6100000000000000000F03F0000000000000040000000000000144000000000000018407C124A0F0003000000000000000000F03F0000000000000040000000000000084000000040000000400000000000000840000000000000144000000000000018400000000000001040FE LINESTRING M(1 2 3, 3 4 3, 5 6 4) libspatialite-4.1.1/test/sql_stmt_tests/dissolve5.testcase0000664000175000017500000000027612163502133021010 00000000000000dissolvePoints - zeroblob input :memory: #use in-memory database SELECT DissolvePoints(zeroblob(126)) 1 # rows (not including the header row) 1 # columns DissolvePoints(zeroblob(126)) (NULL)libspatialite-4.1.1/test/sql_stmt_tests/geodesic-len5.testcase0000664000175000017500000000035512163502134021515 00000000000000geodesic length linestring ZM :memory: SELECT GeodesicLength(GeomFromText("LINESTRINGZM(0 0 4 1, 1 0 2 6, 0 0 1 34)", 4326)); 1 # rows 1 # column GeodesicLength(GeomFromText("LINESTRINGZM(0 0 4 1, 1 0 2 6, 0 0 1 34)", 4326)) 222638.98:9 libspatialite-4.1.1/test/sql_stmt_tests/reflectcoords17.testcase0000664000175000017500000000111612163502134022074 00000000000000reflectcoords - polygon no reflection :memory: #use in-memory database SELECT AsText(ReflectCoords(GeomFromText("POLYGONM((-10 -10 1, -20 -10 2, -20 -20 3, -20 -11 4, -10 -10 1), (-11 -11 1, -12 -11 2, -12 -12 3, -11 -12 4, -11 -11 1))"), 0, 0)) 1 # rows (not including the header row) 1 # columns AsText(ReflectCoords(GeomFromText("POLYGONM((-10 -10 1, -20 -10 2, -20 -20 3, -20 -11 4, -10 -10 1), (-11 -11 1, -12 -11 2, -12 -12 3, -11 -12 4, -11 -11 1))"), 0, 0)) POLYGON M((-10 -10 1, -20 -10 2, -20 -20 3, -20 -11 4, -10 -10 1), (-11 -11 1, -12 -11 2, -12 -12 3, -11 -12 4, -11 -11 1)) libspatialite-4.1.1/test/sql_stmt_tests/sanitizeGeometry2.testcase0000664000175000017500000000030412163502134022510 00000000000000Sanitize Geometry - zeroblob :memory: #use in-memory database SELECT SanitizeGeometry(zeroblob(100)); 1 # rows (not including the header row) 1 # columns SanitizeGeometry(zeroblob(100)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/collectextract4.testcase0000664000175000017500000000037712163502133022201 00000000000000Collection Extract - Point invalid type :memory: #use in-memory database SELECT AsText(CollectionExtract(GeomFromText("POINT(1 2)"), 4)); 1 # rows (not including the header row) 1 # columns AsText(CollectionExtract(GeomFromText("POINT(1 2)"), 4)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/casttodouble3.testcase0000664000175000017500000000025512163502133021643 00000000000000CastToDouble() - TEXT invalid :memory: #use in-memory database SELECT CastToDouble('alpha') 1 # rows (not including the header row) 1 # columns CastToDouble('alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_tests/casttodouble5.testcase0000664000175000017500000000037312163502133021646 00000000000000CastToDouble() - TEXT valid decimals :memory: #use in-memory database SELECT CastToDouble('123.88'), TypeOf(CastToDouble('123.88')) 1 # rows (not including the header row) 2 # columns CastToDouble('123.88') TypeOf(CastToDouble('123.88')) 123.88 real libspatialite-4.1.1/test/sql_stmt_tests/casttopoint3.testcase0000664000175000017500000000033312163502133021517 00000000000000casttopoint - POINT :memory: #use in-memory database SELECT AsText(CastToPoint(GeomFromText("POINT(4 3)"))) 1 # rows (not including the header row) 1 # columns AsText(CastToPoint(GeomFromText("POINT(4 3)"))) POINT(4 3) libspatialite-4.1.1/test/sql_stmt_tests/srid1.testcase0000664000175000017500000000026312163502134020112 00000000000000SRID :memory: #use in-memory database SELECT SRID(GeomFromText("Point(1 2)", 4326)) 1 # rows (not including the header row) 1 # columns SRID(GeomFromText("Point(1 2)", 4326)) 4326libspatialite-4.1.1/test/sql_stmt_tests/fromWkb24.testcase0000664000175000017500000000246612163502134020654 00000000000000fromWkb - mixed big-little-endian sub-items (1) :memory: #use in-memory database SELECT AsText(GeomFromWkb(CastToBlob('01070000000300000000000000013FF000000000000040000000000000000000000002000000020000000000000000000000000000000040140000000000004024000000000000010300000002000000050000000000000000000000000000000000000000000000000024400000000000000000000000000000244000000000000024400000000000000000000000000000244000000000000000000000000000000000050000000000000000001440000000000000144000000000000018400000000000001440000000000000184000000000000018400000000000001440000000000000184000000000000014400000000000001440', 1))); 1 # rows (not including the header row) 1 # columns AsText(GeomFromWkb(CastToBlob('01070000000300000000000000013FF000000000000040000000000000000000000002000000020000000000000000000000000000000040140000000000004024000000000000010300000002000000050000000000000000000000000000000000000000000000000024400000000000000000000000000000244000000000000024400000000000000000000000000000244000000000000000000000000000000000050000000000000000001440000000000000144000000000000018400000000000001440000000000000184000000000000018400000000000001440000000000000184000000000000014400000000000001440', 1))) GEOMETRYCOLLECTION(POINT(1 2), LINESTRING(0 0, 5 10), POLYGON((0 0, 10 0, 10 10, 0 10, 0 0), (5 5, 6 5, 6 6, 5 6, 5 5))) libspatialite-4.1.1/test/sql_stmt_tests/routing1.testcase0000664000175000017500000000057112163502134020642 00000000000000routing: integer ids (Dijkstra) sql_stmt_tests/testdb1.sqlite SELECT Algorithm, ArcRowid, NodeFrom, NodeTo, Cost FROM roads_net WHERE NodeFrom = 29 AND NodeTo = 32; 4 # rows (not including the header row) 5 # columns Algorithm ArcRowid NodeFrom NodeTo Cost Dijkstra (NULL) 29 32 0.001856:6 Dijkstra 29 29 30 0.000512:6 Dijkstra 30 30 31 0.000445:6 Dijkstra 31 31 32 0.000898:6 libspatialite-4.1.1/test/sql_stmt_tests/ring2.testcase0000664000175000017500000000054412163502134020113 00000000000000ExteriorRing - Simple Polygon :memory: #use in-memory database SELECT AsText(ExteriorRing(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35))"))); 1 # rows (not including the header row) 1 # columns AsText(ExteriorRing(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35))"))) LINESTRING(136 -35, 135.2 -34.5, 136 -35.2, 136 -35) libspatialite-4.1.1/test/sql_stmt_tests/SridFromAuthCRS.testcase0000664000175000017500000000025512163502133022007 00000000000000SridFromAuthCRS :memory: #use in-memory database SELECT SridFromAuthCRS("EPSG", 4326) 1 # rows (not including the header row) 1 # columns SridFromAuthCRS("EPSG", 4326) 4326 libspatialite-4.1.1/test/sql_stmt_tests/setpoint15.testcase0000664000175000017500000000043212163502134021101 00000000000000ST_SetPoint() - negative index :memory: #use in-memory database SELECT ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), -1, MakePoint(2, 0)) 1 # rows (not including the header row) 1 # columns ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), -1, MakePoint(2, 0)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makecircularstripe19.testcase0000664000175000017500000000037412163502134023136 00000000000000makecircularstrpe19 - WGS84 srid :memory: #use in-memory database SELECT ST_Area(MakeCircularStripe(0, 0, 100, 90, 30, 60, 4326)); 1 # rows (not including the header row) 1 # columns ST_Area(MakeCircularStripe(0, 0, 100, 90, 30, 60, 4326)) 494.8973:4 libspatialite-4.1.1/test/sql_stmt_tests/geomfromtext28.testcase0000664000175000017500000000055012163502134021761 00000000000000geomfromtext28 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONZM(MULTIPOINTZM(0 1 9 7, 2 3 9 7, 4 5 9 7))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTIONZM(MULTIPOINTZM(0 1 9 7, 2 3 9 7, 4 5 9 7))')); GEOMETRYCOLLECTION ZM(POINT ZM(0 1 9 7), POINT ZM(2 3 9 7), POINT ZM(4 5 9 7)) libspatialite-4.1.1/test/sql_stmt_tests/compressgeometry17.testcase0000664000175000017500000000056512163502133022653 00000000000000CompressGeometry - POINTZ :memory: #use in-memory database SELECT Hex(CompressGeometry(GeomFromText("POINTZ(1 2 1)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(CompressGeometry(GeomFromText("POINTZ(1 2 1)", 4326))) 0001E6100000000000000000F03F0000000000000040000000000000F03F00000000000000407CE9030000000000000000F03F0000000000000040000000000000F03FFE libspatialite-4.1.1/test/sql_stmt_tests/normalizelonlat26.testcase0000664000175000017500000000117212163502134022452 00000000000000normalizelonlat- out of range negative lat polygonm :memory: #use in-memory database SELECT AsText(NormalizeLonLat(GeomFromText("POLYGONM((120 -140 5, 120 -150 20, 130 -150 20, 130 -140 2, 120 -140 5), (122 -142 0, 124 -142 1, 124 -144 2, 122 -144 3, 122 -142 0))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(NormalizeLonLat(GeomFromText("POLYGONM((120 -140 5, 120 -150 20, 130 -150 20, 130 -140 2, 120 -140 5), (122 -142 0, 124 -142 1, 124 -144 2, 122 -144 3, 122 -142 0))", 4326))) POLYGON M((120 -40 5, 120 -30 20, 130 -30 20, 130 -40 2, 120 -40 5), (122 -38 0, 124 -38 1, 124 -36 2, 122 -36 3, 122 -38 0)) libspatialite-4.1.1/test/sql_stmt_tests/is3d2.testcase0000664000175000017500000000023312163502134020011 00000000000000Is3D- bad blob :memory: #use in-memory database SELECT ST_Is3D(zeroblob(48)) 1 # rows (not including the header row) 1 # columns ST_Is3D(zeroblob(48)) -1 libspatialite-4.1.1/test/sql_stmt_tests/ewkb4.testcase0000664000175000017500000000041712163502134020105 00000000000000EWkb: Linestring XY :memory: #use in-memory database SELECT AsText(GeomFromEWkb('0102000020E610000002000000000000000000F03F000000000000004000000000000008400000000000001040')) AS wkt_geom; 1 # rows (not including the header row) 1 # columns wkt_geom LINESTRING(1 2, 3 4) libspatialite-4.1.1/test/sql_stmt_tests/garsmbr25.testcase0000664000175000017500000000026312163502134020674 00000000000000garsmbr - bad latitude - 6 :memory: #use in-memory database SELECT AsText(GARSMbr("001--1")) 1 # rows (not including the header row) 1 # columns AsText(GARSMbr("001--1")) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makeellipticarc18.testcase0000664000175000017500000000035112163502134022370 00000000000000makeellipticarc18 - valid :memory: #use in-memory database SELECT ST_Length(MakeEllipticArc(0, 0, 100, 200, 30, 60)); 1 # rows (not including the header row) 1 # columns ST_Length(MakeEllipticArc(0, 0, 100, 200, 30, 60)) 82.3891:4 libspatialite-4.1.1/test/sql_stmt_tests/makeellipse19.testcase0000664000175000017500000000032512163502134021534 00000000000000makeellipse19 - text step :memory: #use in-memory database SELECT MakeEllipse(0, 0, 100, 200, 4326, 'alpha'); 1 # rows (not including the header row) 1 # columns MakeEllipse(0, 0, 100, 200, 4326, 'alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_tests/mbr15.testcase0000664000175000017500000000047612163502134020024 00000000000000MbrEqual - Line + Polygon :memory: #use in-memory database SELECT MbrEqual(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POLYGON((0 0, 0 2, 1 2, 1 0, 0 0))")); 1 # rows (not including the header row) 1 # columns MbrEqual(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POLYGON((0 0, 0 2, 1 2, 1 0, 0 0))")) 1libspatialite-4.1.1/test/sql_stmt_tests/geomtype51.testcase0000664000175000017500000000063512163502134021072 00000000000000geometrytype - GEOMETRYCOLLECTION - one POLYGON :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("GEOMETRYCOLLECTION(POLYGON((30 20, 10 40, 45 40, 30 20)))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) GEOMETRYCOLLECTION XY GEOMETRYCOLLECTIONlibspatialite-4.1.1/test/sql_stmt_tests/makecircle4.testcase0000664000175000017500000000025512163502134021254 00000000000000makecircle4 - NULL cy :memory: #use in-memory database SELECT MakeCircle(0, NULL, 100); 1 # rows (not including the header row) 1 # columns MakeCircle(0, NULL, 100) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makeellipticsector12.testcase0000664000175000017500000000034112163502134023113 00000000000000makeellipticsector12 - NULL start :memory: #use in-memory database SELECT MakeEllipticSector(0, 0, 100, 200, NULL, 60); 1 # rows (not including the header row) 1 # columns MakeEllipticSector(0, 0, 100, 200, NULL, 60) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/asfgf3.testcase0000664000175000017500000000032412163502133020236 00000000000000asfgf - non-int second arg :memory: #use in-memory database SELECT AsFGF(GeomFromText("POINT(1 2)"), "world") 1 # rows (not including the header row) 1 # columns AsFGF(GeomFromText("POINT(1 2)"), "world") (NULL) libspatialite-4.1.1/test/sql_stmt_tests/maxz7.testcase0000664000175000017500000000066312163502134020142 00000000000000MaxZ - Polygon XYZM :memory: #use in-memory database SELECT ST_MaxZ(GeomFromText('POLYGONZM((0 0 100 10, 5 0 99 11, 5 5 102 12, 0 5 103 13, 0 0 100 10), (1 1 88 11, 2 1 102 12, 2 2 103 13, 1 2 104 14, 1 1 101 11))')); 1 # rows (not including the header row) 1 # columns ST_MaxZ(GeomFromText('POLYGONZM((0 0 100 10, 5 0 99 11, 5 5 102 12, 0 5 103 13, 0 0 100 10), (1 1 88 11, 2 1 102 12, 2 2 103 13, 1 2 104 14, 1 1 101 11))')); 104.0 libspatialite-4.1.1/test/sql_stmt_tests/makeellipse12.testcase0000664000175000017500000000031112163502134021520 00000000000000makeellipse12 - BLOB y_axis :memory: #use in-memory database SELECT MakeEllipse(0, 0, 100, zeroblob(4)); 1 # rows (not including the header row) 1 # columns MakeEllipse(0, 0, 100, zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/mbrminmax3.testcase0000664000175000017500000000024212163502134021142 00000000000000MbrMaxX- bad blob :memory: #use in-memory database SELECT MbrMaxX(zeroblob(48)) 1 # rows (not including the header row) 1 # columns MbrMaxX(zeroblob(48)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geometryn1.testcase0000664000175000017500000000037112163502134021162 00000000000000Geometry N - multipoint - out of range 0 :memory: #use in-memory database SELECT AsText(GeometryN(GeomFromText("MULTIPOINT(1 2)"), 0)); 1 # rows (not including the header row) 1 # columns AsText(GeometryN(GeomFromText("MULTIPOINT(1 2)"), 0)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/garsmbr15.testcase0000664000175000017500000000025612163502134020675 00000000000000garsmbr - bad longitude :memory: #use in-memory database SELECT AsText(GARSMbr("-01AB")) 1 # rows (not including the header row) 1 # columns AsText(GARSMbr("-01AB")) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/casttotext7.testcase0000664000175000017500000000026712163502133021364 00000000000000CastToText() - INTEGER, DOUBLE zero_pad :memory: #use in-memory database SELECT CastToText(123, 1.5) 1 # rows (not including the header row) 1 # columns CastToText(123, 1.5) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/asewkb12.testcase0000664000175000017500000000167512163502133020516 00000000000000asewkb - POLYGON :memory: #use in-memory database SELECT Hex(AsEWKB(GeomFromText("POLYGON((0 0,10 0,10 10,0 10,0 0),(1 1,2 2, 2 1, 1 1))", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsEWKB(GeomFromText("POLYGON((0 0,10 0,10 10,0 10,0 0),(1 1,2 2, 2 1, 1 1))", 4326))) 535249443D343332363B30313033303030303030303230303030303030353030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030323434303030303030303030303030303030303030303030303030303030303032343430303030303030303030303030323434303030303030303030303030303030303030303030303030303030303032343430303030303030303030303030303030303030303030303030303030303030303030343030303030303030303030303030303030304630334630303030303030303030303046303346303030303030303030303030303034303030303030303030303030303030343030303030303030303030303030303430303030303030303030303030463033463030303030303030303030304630334630303030303030303030303046303346 libspatialite-4.1.1/test/sql_stmt_tests/casttotext11.testcase0000664000175000017500000000027612163502133021437 00000000000000CastToText() - DOUBLE, NULL zero_pad :memory: #use in-memory database SELECT CastToText(123.456, NULL) 1 # rows (not including the header row) 1 # columns CastToText(123.456, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/badGML5.testcase0000664000175000017500000000122212163502133020236 00000000000000bad GML: MultiPoint :memory: #use in-memory database SELECT GeomFromGML('1.1,2.23.3,4.41.1,2.23.3,4.41 2 3 45 5 6 6:0 # trailing ":0" required to avoid truncation !!! libspatialite-4.1.1/test/sql_stmt_tests/collect8.testcase0000664000175000017500000000046112163502133020604 00000000000000collect - two pointZs :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POINTZ(1 2 3)"), GeomFromText("POINTZ(4 5 3.2)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POINTZ(1 2 3)"), GeomFromText("POINTZ(4 5 3.2)"))) MULTIPOINT Z(1 2 3, 4 5 3.2) libspatialite-4.1.1/test/sql_stmt_tests/casttomultipoint8.testcase0000664000175000017500000000047412163502133022605 00000000000000casttomultipoint - GEOMETRYCOLLECTION - linestring :memory: #use in-memory database SELECT AsText(CastToMultiPoint(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(0 1, 2 3))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToMultiPoint(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(0 1, 2 3))"))) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/compressgeometry49.testcase0000664000175000017500000000055712163502133022661 00000000000000CompressGeometry - GEOMETRYCOLLECTION ZM (1 Point) :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONZM(POINTZM(1 2 100 10))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONZM(POINTZM(1 2 100 10))", 4326))) GEOMETRYCOLLECTION ZM(POINT ZM(1 2 100 10)) libspatialite-4.1.1/test/sql_stmt_tests/makecircle5.testcase0000664000175000017500000000026312163502134021254 00000000000000makecircle5 - text cy :memory: #use in-memory database SELECT MakeCircle(0, 'alpha', 100); 1 # rows (not including the header row) 1 # columns MakeCircle(0, 'alpha', 100) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/expand3.testcase0000664000175000017500000000044212163502134020431 00000000000000Expand - Polygon :memory: #use in-memory database SELECT AsText(ST_Expand(GeomFromText("POLYGON((1 1, 2 1, 2 2, 1 2, 1 1))"), 1)) 1 # rows (not including the header row) 1 # columns AsText(ST_Expand(GeomFromText("POLYGON((1 1, 2 1, 2 2, 1 2, 1 1))"), 1)) POLYGON((0 0, 3 0, 3 3, 0 3, 0 0)) libspatialite-4.1.1/test/sql_stmt_tests/fromWkb2.testcase0000664000175000017500000000025112163502134020556 00000000000000fromWkb - bad blob :memory: #use in-memory database SELECT GeomFromWkb(zeroblob(50)) 1 # rows (not including the header row) 1 # columns GeomFromWkb(zeroblob(50)) (NULL)libspatialite-4.1.1/test/sql_stmt_tests/compressgeometry53.testcase0000664000175000017500000000066012163502133022647 00000000000000CompressGeometry - GEOMETRYCOLLECTION ZM (2 Points) :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONZM(POINTZM(1 2 100 10), POINTZM(3 4 101 11))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONZM(POINTZM(1 2 100 10), POINTZM(3 4 101 11))", 4326))) GEOMETRYCOLLECTION ZM(POINT ZM(1 2 100 10), POINT ZM(3 4 101 11)) libspatialite-4.1.1/test/sql_stmt_tests/DSCN0042.JPG0000664000175000017500000046202712163502133016743 00000000000000+ExifII*  (12i %f NIKONCOOLPIX P6000,,Nikon Transfer 1.1 W 2008:11:01 21:15:11""'@0220   | z~0100xF   d, 2008:10:22 17:00:072008:10:22 17:00:07  ASCII dR980100 NE4L04 d n+`^ 4J9)dWGS-84 2008:10:23 NikonII*#0210   ! ")/      * < B V b j  p :z   " COLORFINE AUTO NORMALAF-S i$AUTO 1.0a1G2x~##&@,- .3JM} J~+:j""""6D ^ pFR<<<HVA:36  Dm j)!@r+17;= ;wwww99f: d*T 0;,r:]=88 nLf B  eA@r+jjj<2 _d+fjEI$e)z 'x9yL@ EA<= .HB: l6 0peo     )*      $!" * " B@=>"=A1!.""?%EFB@=>"=A1!.""?%EFBC;>";E5!/#"D<HD;E;?!<C6"0&"A=MC5<>?"=D7#2=$@CLH6@=@"><>#/B2C=IK;?>A#<A@$4C@IC@LBH@@#==?13C@PE:ICMAD">?@98D@QI:D@DBB".D@77CBJI>E@;?>&5FH>@DCKFF>A=@=>=JG@>ECKFE;=>?>@=IC@:BBJFFF=8:@=BC?9@BNCMP@9;><;C=7BBOFAM<68====D<3B?MD<H@NORMAL NORMAL OFF  DCOFF NORMALVR-ONNORMAL 0100STANDARD STANDARD COOLPIX P6000V1.0 (JHH    ! #'2*#%/%+;,/35888!*=A<6A2785 5$$55555555555555555555555555555555555555555555555555 5$$55555555555555555555555555555555555555555555555555 }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzx! ?E(VA?GӌpEH\S1Ok,HojGF$ChsvS˰F$ qҫx pxG򦟼Nx X29{6qw'QBk(Vγ"T< 74ly =b-uKgVrӵX,Tg7di,T2HG89m[ۣJAezug? R,n.ێ-ׯ -/d ڶbG ~,7S~UrFTP*b%i/ .dd_:Xyw:GrיS0*wڳ3(eRWo}O[D=%7>b%U??z&ia{8R@ϝbwcנi O[+8)Lg#\:gS^jl3j&eUw'rgnosֵ-NtE6ޡh'jFIOqWZI1/=Itqd3pk&\gՊdR$cի8%k.BJZGiEk< gJRLgMLceh$PA^vT&˜ ?Z׉(._b'LutduTG}~J,#ϮEїo)QWee `E+?_ҹTtZLΑo&>hv=Fk[w1`jWDbi,qܜEjb|u]zӼ;K$>bI'*C<9=9ҢfcCH3\0a~وt(E"YZZ"Y|$0' ҴXp<L±k+[L wrzgM)<+^S+7ia^ɪw l=3M"W&6.Kb-{D,dz4-~w_,"֮9,-Ml?ZuգpBrq sʳ3&+#:+$ְVq^7p,f0X?^5fjl%Akp]70W#k‚;=xZ35<2V?~cgGXPaP4{2vFy7w,~gV0!QhrGZ-ްv9APw,ʄ?ut[:ض#xXMn +g 09ihfm^z?VWQ$8 }c:_c={c^onA@8ϛqZ d3;j",c`jjVϣזW8f8&t7o[3c69gb#p=ӻN'=$+`ww/.a dx^LOh?Cq{ybC*tƮh֊CO! JN[Y^Y!8'XiiP3q$Ċnmvn* U Y ol X%s[』8TCc*ugrUUr| yT1eFџ|V,)SlKsGM9Č 85'?Yr.O W# cB4:U2Hjrd o//;V6_&`'jҮ#U Sw'k2Z Qb,)*F>wS'<4.[yLYxPy Mkdyp^棩f5)~H~`8CKmCPW* өkZ=ҙc HzW7-ҮmМ~JX}KqmR"xd9&4 !e\O&ѯ롤t,]J4.#;T)9>Q-|tH9_pH63ͣ{;[v06U쿭X:,gALR2vfKg^#Hp b}: b!ԗWJjhq_iqN38 /ڍ+[GƧ*@-#;KfK9@֗ 7#d+7*Ӵ/ \\JڛI롷dmb@??fNѭ{r d=?w=HCգFuN lkUA}_C s|6:wT=lit.[%RYrɮV/6K^ ! q,Y#?Y2,77ְ _l,H9VTӺf} [zD"VBpx%?? u:] I`+(%vA -e\>^5ʚoF|̃V4@E^nO*, wq(+v=xoWF됈zP?AYcNx K}e$ty`pw>tuѤf$Kkӂ= 뛴.sE^v23JШI>d;f0Țvgo2#cƚGCL\b}6XzO$_ֺ-?my!nR4az{V2m0;I!d)J~w}j cM eɚ3(~@#/e0J^sGp u6*w#p':sXptY]I%k|Z*/"[8rl3 ;H#s$/!81ʷn^C o6G!>ƞ.c<xǭV`)g# F`)4V Kw-Գeˑj#T{#Ew)ʨ M;exuH՘3;T$Bz לhڪyz'2I>[Uc k޹ʥKJǃ1(?)u{t;t _ܰ;IȌ#_'9?Oo:Ě| ͜P;.3M#&!F~FI8* ycQH dz2r@$;Xe=֪ﴈ)-ve ck.&V3Nj NHd1(.A׮LTS FO2a{} d6H#`x'r<+Ijkh^IVFFO8Dt Fݒ:ׯ;O B!9?'t(8[cfY\X6%0<1ש?NtM1v` Lb2)';'KQI$T 70<cƇ?/"50untXb"HLw}3ZhBz/co A+?5wi i>K|m j3p$I g++1ds?Zr܆mPRBr&Tqq֮||p2G1g ÚB&BgeEs&sN1q O$c׌uԻ[CIdPT~ qqZVz-]hQqTǝXO +`5mG-z~yQ^7ؼط6BtESAQ>I`Y8yDK|sHۻ0mЅR~fdŻ2?8~P=̠y**ˊ@irOp1)@OR9l./P@¡8c?r/"(á*Fzc]6LRŴ[M"ZX4*zS{-\' g8֬;Ta=:ScP쐔G5fh!('{TV9Ǎ>l3?k闗VWD$/0[r?3|V %t)ՕE'_,7_k F"mv \n?4_5HNyy-!1lP ?X>U/sxyRU#PZiV{?țvݻSn3uy=2׮=y!Doa)$[̌w53=CsT-{m@ *yc֨iR0Y.QwF6^>⩻FY<|Mf>S]s0O?XFWƺy?R0pT`8ަIXk8TMU H"3[QOZLdjG\ǧv; z cB`nexnU[vȌWaZk/X< 0 ?PId?,w{k=~YjS4 QdwzWtnD7B!"ȧF-j6<)ʃkXpG= V/jzFduE Czyg\\XۉC9PzNqj5 AɄCtɓ]dV5&II!{Ω$Ձv>4K+GpP79;s¼zkZފ\m+^[p'QSkOȦܗ4.LROІsXFFHkhTH%#q J'Sw*NuxQe((Fǩ|uP6mԷTChJ#,>cÅ8 [Mٓ]hsi}#˵%xms c[E]k[ӌT2&^,ѭ|G{WK%R Ho  ai+ln㸳D3B[yF jRʮ;)6]7c#1יMg{Hoi}v]qX@HBD>H h[0.b\b°+÷ʛ,Gt-̖N\;B`FH9Z_:guD/{SIU$ +cmܽUaxCL]#g`t88Э}޼L[=<_-z>w(kC,$3ޒwBџ¯$Q2+mm.Cg+,0e#y_G ŵR|WWg%^%̬<+>cKWNXmD+dAqqYKK 21 BVTd-A"WH?O_u] uKn/2$`,dZT1m.EG8|y2GSso^}\6W͘sDj X넖V `1lr$䞽;WEUJV 1Z&v:+#2܈\cnߟJeg-W̷*v'aeVan wm-m<n=+" )ύaC+ϩہW֩]pckX#:y`>1.>4jafF$,@]UW\ZvmKͤzླ]/wk݆²EppU r7z=7Jѻ\O1I 0\@,˕1R|Uf$m G>fEDkfrlb;u+Ύo]|(l<_?l>r|º-mhl;wt9(i›hǐϒx>r>H!My4&qCO߷?x~^P>8'J7L[@85Ҽ$Vw?$?/udV2[(?3V3c^U{xӹ3N uJgwŚǂ>^&.+(̞v^Z"bZeV4 `okyxH[[9t..-4r\QEj K3+/YdiN4{unnڿ~"O/8Saz.A;$I9=k놤T*8j QY )h(((a3@>O4pLM1 'IIkw4,u$D##0F9T\mpxqVM%} ^hC _B՘/8PU#ܻF:uC[E?h7f>8&K8U#c 9>&ӟ,[=4\)S㯋uGԵC#AcB(%Ѓ *a60$ +Ikk$tod^5Iоow!caeߚ2Mrvjgj6R|!ܓo"YMx)ʎ1CclN['8Wrsw恮a>V%Eli& 2,DvǗ:]Yv+w㳷Cy;'G!{ߢDeii?tT?tz}+`<_{pbpʕ4.\+@'ii9'wtV>"s שkvbdW$kFӼ vume +uh'ڊÁF*p~-]-9Z b+r>eҭVO/=6IK)y8#3\]Տ9bmL5L_*|{io ئ,8/R3O?}zZ??޲>pSf" +̭^Ujg[QZOL]ӥeZkGhM<Zb>?uEI+6pMRU Ai_M~YmO]]gX@qC':ۺGWZpf6ҊCTtѩkOԄMqޡh[xWο?eZ[_hgCt *E" ysa[t֕iRzlCK:W xz$H6xsxPk-A'4n IrUYZiʹzo\׵koJHyo/Q́1x'¶4T6z2c ѕA;y\pknpxZ4,^;21Oe\sW7qSdBX.>?wsVA[FFw5)1AG}Epne%h&Uy5ҶƙC۵|"jMAJ<=HP1v&mfK1&MQ H>Z76>*_];4_1XƾVY9':|1Kw)!xC*Fa!7yrc_`_x1Wzw9>)[GMCg=ws`v.g4Xrѷ_U,>onTӷ|{mhZ?!M,M?/XcC~3>s[mB )(ۥgA?\[ۙ5,;h`&h`#?\s8}jRJ8?p@>!Qm˹ 6{܂c9ޗ U{rr0;Ri :rr},HO֦w@CZ~fDJF =J׼0A$1ddV8#ȭ!1f4'm.VE! {}\/܍1XzB'=C;MYu=bF| Ll Js>QEFՅ4,"H]ehw|o^,g{Z-F-#M}V۝$+mPAkU h=S̾L![ QR0NJjst=W_Po<[xF{X4.It@Or?>+f5rx aj?~+<k;h,/3Ѳ#]$qQfQ6 Iu|4}z W4<5񟏮ZF|h S*DN?$)pZFM=_ڔy/#M*M[U4GirB-y:eDVv''j.#(ҭ&kUnnH5F:jT|68eyZ]'UFUG 7zzjJWn,mYIq }9H[Kd8Z]m:*c]F3_\d:^mm wRJ'xcK{bIUc'>$T/~3hTiZڶNd"N01ڮ:J _:ͷښK)w1pl|aWx}zJެiԬ2Q+̉ǮbifZ6$?ŀ^zS^ӱgT[G qB#3sP(n,Faeߋ~]& ݺ7噌 :ɕÜNN> #[2k62:tCnq6Ս )l UTm|?S[V_q% $6y8%yx:iY|zS\EW9l+rFz^q׏>lLOj뢟#XĽ//v"69kgG!*֘Lݜ +3|)w%/Pu77Zw}{=c_->X(7zޕ*ism.`[e76)p>y9`SK|׬hP_:[0k+H´-xL&P[SUE=6MOT|:6eԼ?2 ^6mQ}G«g 4d-Đ ,  odZ~4T#(5RS 43NLXBx# C0<}$B#2M<(7xdVGٗ(]V2:r񴪹n9E})F=O¤t+FuUChs#s @q\lD |f1Ԟw?:)+) ~q  ?^+Tqy[elcvEI]xr1v4Z;87wuҽ6G ˓}/&p:>Ub9WӤ6vVtdrĪD sH_?BֵǵZ|v$rmpNaͻ`ts ׾EQ?VNޛ#F[F!ks&-_-Fis…oI W(X`/jTyJq^n|(qiAj?t<ʭ6.l@͹FVW鞋)Vw_a+5ف?k3cvZ'Ƨ}:]R8"/  Yl_GV9~z.#]ǖau8lN8/kX#, >׵Ԛhh'ܦ3YJTT8 k_X<ɨ^O,s!@6IB1wH˸)bmp0өWSтy)t"$ *>iw=N𝽵@ש=¯Ȼ ۯ~ϠqyJ 1x1[Cb=⽍[Y݇FtgH \E4rxeW=fGr!/ƍcS*Z=ĉ8,?/05]dנKkt!A#,ZODҽ_4jHcid}y[V FFgs[Jm׼+K#:/Dl9!s>,w?;1.۵r}7L[*ͷn?*/[~+sr88/=iEfs_*"Ơ-^@>a>bnFvݴӭuKE'h}M󌂭Ԩ[6|a*]R>+a̽l%ēI朧l,< {4>ZReG)+3q`t=;LژQ:m$ 9u! ڤtRŻO9H =ؑe6䉒+[vc=TJo +8W2xuebq)lpB’: I\h)+'': czWA% r`AF8kE}"Vmͨ^O|[U`Ͳ$PUG^8痎tbϦhdim&jnzI@&x@4IbO!lvs|rMOxgOJ /%^7'ie@\kuTdLP"1,"'g$Xbk[O=w}R_]-äDGbҜn' =$ ZI@'2}kCY?1=AHW=}j֦MjKy`p1W^Վ92 1S'm vm$'0iu4 TlG|׋=lu><=qsBYb8`8\:Ho|MxE4#q;gde* GIKيzu> K+;O~7m# [U6+e8"=scU~iM߿t#Tn`!5= Y`_:k2{|䎳={wI/fQz&H@Rʹl)s~hbC9$\ׯs77oK: X($eYX<7 >Rɝ@B=+S#)ڝ댎'?펃` BMl^+uTQݧ5]kP*U1dnq3]FZH7[#AڽuXY6{1 *iGya2A2Bj(y!UyU%CF gdd5r a(8 ڜy[#φ/l"2\H@efS 2e\>Rinb9O#WkfCmTV-Nnm/$ٯ^i|jTCyk OG%zs_ x?M 9r̀Z;'k L`XBܦS>]#%G gAcW}_`cn0`A=e$9~bHw7P2;قp9/|ׅZ{ yy+4tsL)+$y_%lj~1ͦ84;ˎR聸a3H8HWߣ o )Gc̜g s+KԮ4fryyrP VR鶓 Vq8bBâ2ri*n1Fys3\L.X,[q,$W|4ӵ;Oquhl8v g5;N撫i燵o> M.3`ă1z{ױ:y-iֻ7Ks[*qoBst}!*l ">떑bϚxXp.9Ӑad!o"ث-Gj0sy 9E{ωEsL?ZsJ`!S ) =*4s@ '/CXw2Ut+˄q+ThbY]+4*q]\6}:Gy,w{8/<ʤB,F*,mc3. #r&:͟ANy47( -*y%JW `2SLCfD9 v5m+`6џN*"\ݛ%d}Ǻ3 8~ea~|ZqU[k\IJfnnSvnSۚS[=حDz#"0ɴ|m l<#IZnut.qxU-o ݜ}TGy\ԀW';xт=x"H0nO~*˩[> Iq $`+WƺmZk,z]mNܖ8gm͖(0TW<⶧ah:%8̋X9c/H^V<;)m t<珺6eͰzVkyikSKK{+\}0i2]&v$<<אᆓ]wPy3<&8 z UeJ >ƚنK[v!}S\6{2\N'J'__Imqqsnn"+GH?JҲmΟ2h[uVIwh2+r3m>loZY_hQu "52E-PYyv>\l=j43N{q=RzXډVo 4rAIe'P NE KTc.WB:v9U.w0=oVnZHt#.C0}Zi{YYyycdu&-Vՙd-F:xg#O5dӥK8$ŽwA3Nx h;c2"D1J!%<.Υ\B&xq;GzzMՒ-vJK,(; ˒=0OOxhDn8Ol`~tiQGo/P-,bi5eazUHF"߉ F3ʪ0<;A^2:qFxƭGd@,zM{_;FKL;Fw8h˞p+R志yҲ>9_H,Uy}w%Oٯ#3c?MԞ9;/݋e6#'z5xJ5:֔%8ݩ#5^OwTpU=f~|0.~+Xxt,xWtn:awy+ygWm8gӱsWKğj~#/Ҙa-,QDUF"Oa-,3Y1l,["/Tp:t=S1*蝾}ʌK#]C-7yL.wmV`XH4MA"K\Ărk2GF^^[R\xgkyo6aDDDcF[7=Ͽz4_clLֽ dv#/yw6 $!j!m$#ܐ{\t gڢwPgSMlM ` 7\s#-vo11담tHdՀ$ywj];̱;g.F]BuNC(T`x8}>hBA3N9'8FF[6p׷,"ԣZyW[8'o|uyJޔtPȦ!Ҭo.<)&/i^#pk:Vv8S$ jCYg]/nk]Rצ:6oo凉_j @`V.ݗ0ݑRυ X|ȼJ!őѤ7,3~n۟usǞ ] DtN-湐&&-G)! e)#Jm.wzTroYziT3{p#ro6VA;6G3>&(wd6ĽTeC*LsҼoZQCF#n^ZZW ] 55$0C:qY 7VcNM+$i6Hlf͊AUNhleXd}vwwݫt;?NԿ`* 8R^8_R|,}At?#sf28RN1޼{\;𺿼7Yڿ$WeT1qq Aaq&e,G,XG"\bO2K u >m+ݘPZS| #HWC8v2Vwlz8?Om>?O9+9-.v@FP_O;(722`LSaGO%3&E]gi~ iw1[ fTBVwUQrE #,7|Mmmi׆T}kUU#-8##\anuatYKZĖ=ҩElȑi\*ȢqæH#2~8~r?kVm0nSto[ 9Lk>%Yk3[OsP#xmN f濭(?c~z:ߐNA鞟λm-ƂYPT\~F|O~HE yhVJ% q 7_/|J_A|Vv8on8Gϊ~(܆lB.e(vS%t$gtwF9ךD/mݸ,dh "1ݞ2q{qh%]7uT#7XW ǧ`95Ÿ$_6K3þ<²ܶqIV%ȸVBC1V'+ICw|`rm*zpng#1qnńaz1zl|69nh4wor=ҹ?idmKSɿiv}C\++%P0&xn=yȩ|u{@%6Iځ'Ҙs =i?_/3 p2[#J@Xe팪wpX'^<1Pp9beG RoWY偗ef z̽|ZS(GzĖ7Z4iP۱Q3I؝ 2$Fpr+5;.7;sO:w9Ҫk"6õ +E&Bi[xure@?ʉ;n juv^![Oyȧ9=kǚq+zGiVP'ȕ/,kwAS)W#oBQIk_ׅY|FzЏ|1vB%Y0_:{!Q4r܋+ tBa~4ߙ$EŨ¯gaT4wq^?E}kFǣ~C ΏYR5ϙ[wid)F]]fl(<̎xMz^~GҬu1ji&78 R8nS^>텔z@$B:l_`8 O3h)۰zҾ=j{ܴ]9]2ylNvǎGP] P$Ndv'}lt~!H*}b_{60WV1\GsUae)csu}Fb1Wď d8-;'pUXj5I"8o(Qum^d_==ji=Qiab01JV]b6f3s hד-la%cJ4 7iG< SëaՕX&ݶ5ғ$p>dxqA(R)8y$<7AH ^ WZ+Џ:ݩrph1? >&?Z2e+%m~=5:\Ihk}I/%cx|v>si'p ߴ%LQ.EVer"bpG.gk+.a8F u$nܤԬoN߆5m2+M:[0 ,JwO|4> 񆏩kR4{ͣ:I,X3AlǐUiyZnyO!wC\]iz ėFed1#^ >Eޙ١HT{]ѮФG@ Ns)cj)f X<3{,m%)| ?$yLHEں0rf۫ O0Sj|AFt ҿBck? [ZAo foH#IIҹUc\/ܚT6$lUN9S~~0}p3y$[n?a .8sf+IEfTyIbz4vdƕk"oM.[Bv!y$cUT}^ij>*j^jڌN} @,qHe@[,I?<5)0 O\؎IUi=:zt=Tbz_!Qn1֟&=%joٻce;hLoFYa\z[/3 8lg[drҨ+9 ߒr#Re!pnls$XFe*P`4ڼзwNWV|)[i~O"c<4b$7R7%iv|@q֯Ck&Gt2n ?OJ1֕!4[HMaB9bvgk^ wD9qH뎹?Or;4zqIDNNiDNNc_Z!ّ>X2>JЋocUi\nOхjkEm hRBAycj稢p$V(!?tAZFٚO>eOy.Eiفn1F-LWPgD&5$67@3/F=43[Id;O0[ <#}23֭{T6Uų$ oUpH>0+/FOmS#?sw9ң,qW|LY`i/-`O]iK8>0|QgHB1+vmheϗ&?kCL:xvv#[,1z^/0lų9c,gWRz#i=,FIH~)[8⿓ƳA5ЌyƖV[3HB؏s+_ 8+CAw 7G-.LakXZ02cF+tAM;dԠ) /dYY,Q 3ZX3ϮæFݑ:{A4a[kʬp%ryHE fE =n[-z"my Eu;Uԕ7m0E(VWYc+mzzL"]g+!~a`Li&T"k}6,nK:d/2G:9t@*M8^7lgm0T܃8|/>$pG̱ezet_6GMibDHM&PJq&<5D5fڔ99ܦHUDCpP6э?iV_#4߶/~Y0ϸy;Zs~$$q%ܳ#OW*}[é1oشh)%7oK svWv'$o?R7}v hc;(>f:}ڪ{ ^ĭq =܉ۻ`}q,L7%eh@x9ݣnT)Q~0"+g!80׊~/V3EdYJ=0z''dO*ʹU+ g'֖)/Lo0c`s {{Ugfggҝj 9,*z?Lhqm7 rٕ*wrj6\1gtKoXo-bG@kdA)Ywn'rI{w}#W?MkqYGQx40j_Rm8|v;|Vkţ"@JɅyAeP>M^IZmz&}Go~D*zpA%|q{oXIIc$r3(FVLF†VǝSY@E)!s#wYe.5{[ Ŷǯ p62kևU@$Z`p#'*pq>lUEkϯE1iFO2/T"uU `dAincĞ0u1>i}{%˫sj𥬈<,@8mnϰ{֩kkj>uScDr` Ϥ_a[H_L9(f0ᄈhgogo íʗ# |=UO#6ik  (#aA\dz'{)q=i]Д|mem+Y "9n @ #U[iKqqsr ft/ 6H<4[r/dѻiM}NKh%7͸&FAU :c<`c+c)boXݯqm-y1?kQ(+ 'ʌdd1W5]C5*O0 @ܩnn aWw%ߞ\S֟}gV֢0$pr+$n 0.8C0̻z?:"SXͥKp17a;rI㹩լnYa]>R?]J=>'_T+|-$K>m !I ߵ];o1]GаxiQ+^ ZlȄ! {+;GpZUpɻѤ?)*[uEm$Wf#itl|z79'}2Pm&+⶜G^d+sо 5UJ@<-;COtW|tF/->E3wvBs &~qRrTx(M2v $O$c>s4ѧvƦGnO'bSp*\ǠjlѷRohSFL}խ9ohru?'݄bdSnKA+(|W%wDˎ0*^G۽.Yck F-9g'FE_yzf>KB%m4y# 7wG1'K> >ZJ XG\_#\.'IEP?1S4֒Խ.Dك0r2Oԑ77˨[jr=׌b򝣋ns޾5 Y/moo¬1 9W6z1iDE5v0pI r3\0EoVk?l#SyDSm|RLbycwpjVx6V䤲IHܣtRdv+/u3:Q2$xGUC$fINF3{WZHm~T?Z܇Tf8iH9j†A!.`dֽ^t6g :&qimOUҡX5InZ5 $LjI ]>uZPԒH-Ev!|;0Zv9gm$TF-JP3:+-B蟼\1/Ť["Vt470[_É?ieMwsfRǙq<*ײHi/֠z,R3Efo剤 09RvcXd60T\25F 6NHa2|҄ׄCTm1f÷Vu؂8\X(UIc h-48V H Qzם:񏦾E ^ͿC~iY ,0[?\Vz#K(NH^ּEn[HI|בƒN1PV>5M{IdD^I0 (#9+xqsj&8gA5 ss__'4ϘVƲ{IxPh~ cxɦ">dP.ҹ/F?[mDs(Wᄷ ?L~hooj# z_on:VMI̐X*i(l.>U8 189?|'g};OuvlVL`[П'!_Cˮ5wSYxz΄d0^U>\H^`Y~QMi5- ɤFmK<eyzu@p[GW$o-6 8:ލU`fm0'ۯkJ@$ v*AMm5tDug[͵HoWl(8R,j^G )эccCU>4S-v *z# WI޾JTt*R65t`W>t* '#l;%Iqt1O]%֏6c-!>lʻ (ëPֆ_A{qoeZ=*,Fp;H.spywAV ˳d*AZ:VqV.c~xx*cE-vזafݰ3C![JW *o͛ " 3Sww]eQ?ݭuG^',]9~ [iֺ\, iBdBЫve PgzݞL&F*լwzeŤ3FѾ*a9W9įxS@t-nėF;7 ʟ*F4w07˧ƂR"w0f\x# F7t%s&a'V818N VC‘O|"(a(@q+̧)i\nq"ܲ$g|r#H?k/& dž\}U&OCÚ uƐ5hTQMWҤ+-v^ 1?A{ﶼlل_׹ߴf7j2i<ֵiZL$dd嗌G,v?\O{p@ 0 t#8aeDa^Q[ _,-6f{1#~$luk_( {% dm>;WZ*j:/ xZj1i&LHTlaB^a sA5q)e2Wqe p~\Vx(S&\FxJXXw>w J3Ҁf1ށ/N)gnqB@~Y7[_4DA # cf|eCGzwqu~y L8@}: ^ф7_T[$M-bg^|[U%?{Chh6]Ep N+񼼲MsV9')!U݂2 _&YROfX1*2.- $1;aZB*UuDP޹ᯂ5I[VeN?Wk^,krW6.JY?Tv>,h2'MICzaZW绚_Bi#aJ*G&ESq ޘbզבޑ VqNn$+>pi,!-W Ox:{Db_8|d) `0j4Wo7[ Ϊ[qzf*gl qW̧x3*C aB6VoSH5[?Yҭl[\@X`7tU$y-w# LN Uhxzf?B/%-d|8.=Jry;-&$Uc9Uj (eHu]:{S#9GTgF p}]>E-1A4opxc3ߑZwqs{&[x丸[ŕ {䯵fJK#3.Woj\[#V^ROCZ.5(H%|@'94;-~/'JKkܸkzč ?tAݴbr9B$ {hicnM9E {VBWn?ӇCf G:!$y֨hc`H1?L }8/쭿b3ռ3՞g]L,cmGˋֲDV.aÃ#>7DK"1떅DF~H pCw  8cH{!D[FN3ھGמ rcPߎH+NKr0|9xz0+Dס?6X4"_6d$]ǫ>=E!p>WUvǟYh~kw\w7EF6w潐|oi4ݨHş&i")L}Ε@y'Wͨ^^0̒9-i^>={dJPugc"ImCY9*dܐPC9=zrHh#ih! "`-s2y5毁ǯzHҿf]U~̺Uƥv'=0}[M~7&NUA}2":%8J8 LP94k^ ) szfM^KCIUI8݄?/ϋߴe9]O^'h${BŖf0R$W<&y5YI+Kzzl#*]?s `pÚoY) 9~TN*]Mpzl֌%PyҨF(z_+s۱JxVD;A~A0 l{B%ͪāY;r { TF:/J/t^Hg 9)(,`cۚ4]2R 8df78{Gn^%"HY$w*#l}k֤Og54trX.Ll )ڧIqx%Q=$n shHS@xP@%[TM֜v*KxqdddqٜƿF"8.ܾZLpH[Oy,eGzM=Ɲ/2&b Jw8p@]M\$Qڊ1vv9+zpId%Op_w *?|5O|ǫ-֤}Z-[! N :so7X#o.dϰ=R'б~~BƓoW1Yģ/.#І[g^-(ȇ]Zhh_MDq  6 X]1$:On1׮Nlh]zGrKɮak#3\$0N9$^6+xRBn?'_cwUG53+eIW8<Zք&4v?l8LFrrA99nNyȥYv=kG)^K6[pY|ܗ+ /l߳Xckx\ߊ%*ͯ1cU;9_^j65ޛI 'R1JOjnz!Ϳ)9~ö o/ o[,ѐY3I.Pލ_Pݏn..m <CTulooETiGBk.l#oZGS럗ZᩫMgxY<GfVDP #Olx!T(Lcb I]X s^+rIz %Zmdn (ьW:]6~U`H0 Ny#g;x 勖Y`㲬O |7>R5ٶZI"3h+Mz@wFA-oE?kq79$*ѬƁUP^va>jv;0/й'eAb6) /Nz׎z, lr$)-YzU!F:S"v7pqE deR=QT{T6?dbZ+obWU6 6uͩf~6r9ϽeZI$SM}._ WhZDQi6߹Ç d-r1WVǡEY]M%0#*W Hrn-O㱅H/x錎8ڹ:!>1ڋ]>E=đʬ}vI$A!Ḫq+&~fIJ=Xf1{6 ̟|RM<ҼHZVq?vmX0<]FEx?#JoO;߈^)|+RPe!|( 'k˨M&8j@%/HG8?y7nC%O )o5u}Zw|eYGeFOv/2+N~%va^ ''aUd[qUf4H[:W*:R[-S.G:UH?i?/=2mm/SEώe3^Cut!,Jr #1R]1i6lѯ Ļ2R;zc7Z&:Vwcqe+ tIsƪIЦs${A$Pܛ_C[Lthm9)@~iH Ǣӟj5ާm >TJ'zSkV q"\BNn]Z9 %JI&gqM쑅Ոʝ%A;Y Wks4c o@UݵF5vc%?D#C@6CҼ2F~^q]]مŰ*5n-ba lydj>"ÿ"#xoqlU9e9S:wqZV˳=)|, ͜SC d,>OPN{׍rG1P0X~iC]>38۪B2b{zB8ե ;s}iFVlgk^P;{q\.g\9`rtf =zMK\U?l5 0CҰ|e As-pftTwvEۣjBlY$alCZ"K?MV{= zD +>x["Cqss7FTK5ۯ6oobJ bHẊܬ$00s`29>c"*vgcAڔofksʹIY^a{^0jիi1)v`ee?ҼTԷLߺTeKݸ(dǃ @Gzc_ə'W 6X73|io5;g@ıF?x9=Y$]vIdTtěF01㹭$2QnL[[5YLS0P\ۆJr=յ-;6u-,.mHѣ`K)rX(YͶ/oX-G H7==*!4Nn.8K^suMɴ] Q]_4ʬ[A&|F p:{rkW4ۿC6ywkz9Zvi풓FFՔu\f}7zXqN-Xwpy5 #m@ 8~՟!iǧxKc{7}0* ǵ>A/eu-ĩg& Ucާ.JZ6vSWdrop/~"hYV fڃǢҔ[֧L6[6)Cه%rNs 'c^ ,|Q,>CjSDiÖXcdGʗb:#5ש-2%6ߨ?nAܟ+m]V9[}?è&Cr<6YO_#Wx*\6BFY%U&fpz,>ԫ|#hV$U)mW[@A5~m+JYgīy 6GA7#o]Xm)zMǼxN$fD >cXc $Y ˨yc^PwG [,''r*1/F.ˠXxR״m?M],.Z9 F0 ! BXf> 9m Eգ߮<ܘS'? Uqt3э9*򔏣v1P89^9Ј\qQNc :`cF R|ڙN; z}lܚ$@O\ЮgSԞCVFc9sۓqۊ4פ]Bb$so襋1sB<#>%Iu7ě؋~-E : "kqħʨ~Ѳvhա8ۊ}Fjݳ}s۞J'CўX*gYdb6gd'9`Fn"ϛi%r.݆@G\&䍣m? )N9d<Čxf4V1|\\Ggn]{ʶLhX,O{. "|\o!F;)zqЀ9Ns\H?ڊUSθo}L+ާs:CۧuytFf q>^z ٚ lOgG=/Sܼ.KCet!9Rp#-^>to^T*18U3/b&kZ˯Xc [ꗖmJ_" EA=m^\TvXjwQsŚ]^&H݆#)¨Ђ9M~/-tK+;je1xd9 9p\KԢ7ٯ{Ԣט|s)\c.FpƼo~ï_ =Z.##.AC#*,Rq8U׋5C8+}$Qr(S/Vk@0+KJ׼-qgQDP?ʼc B3͋RօFާ)3Y_S֯綕--վ̬$*6'7>/t]彾d s0/ AmV8j\.iVN5lPX~ ]y,g7kk"U% pHN]ZU-mP (BA$Hc'vG^tZÌM:G,{ِ޾s(A)'t=zzW7y3M1LC&H_ۜ6@$9[!ǯsj=k5>XCM [A&z\/{o;UύX~ WR?Ö]DTYnE86+yp%GqP(T՟LcM"󼓓d{W&.SSWE4jdi0Ca{4t.f8L ǁǯa^eiBϩN1Ujh/fY! |V ^XP܌gVeC 9?Et'#f۷?f% 5iv_jh#q^}EwsB[K[ (ޫӟ׫=-bV9YX8ץGXүBO-vm r"</mn[ %𪌓v: D~4>w/u=o  5Red|7񢲴Ft]7r|[wcl>D) ,Oۆ;OT}]8#,%9s*}urJ]Ig\@9 \Ki lzWF/)ƒV,Ns'58<[f^Z\KiSD$a3+Ǧ8M|>).< BJ8qJ+1~gvija~ P! q܀xgۻ J9,IO_ $WQ]¯I[i[['%+װqkLVx,OJ:9}.fP .w/NNU-yO45X8ɯ I"jqYʣ5Ӈ6" _Y+5Ӽ!kiOttO$JgRb8<\&hnL6NfgtE-Z-<8.2A?Jok]\`cW4ZM7ngȟw <"IvrkiEviO)u2!N8Ϧk4gkV<<#oG}:3{\Β m|@8 y"&Hh1UԢwZ%0L$Üg~Y˨|}m`7b>1px4\&ܫw8M{k]^Kur {c ?}{CR.푭,5 S`pN~JЋgɨy|Bm^OK(o1r6K #*MfT&ǥX =U-lt.b3$M DTd19$Z>Ga=xHZhQuB)T %ȑLJ⺇>#_Z'EeZ)c ʁvӛGBEt7|}|B_kmޫSW7H#9جțBʹ(8y5,: ?ZVrzT vjiũn-UN{u^Hź86|pF˂˃ָj0l腽iu㯆eŦoKؼ>W '*+9迱?u׌<:g?#OM鰩8A:=_ScP3!!4$o+ O-4n&j0to+u)&9r潋k6i[=WgGWmX>[GFRe*oW|[`dn8嘰~tq2Mb}CJ&[cʃ[.z)i&_ ePG'1MU$ih2sdwy7Ed @/wgÚݾL]VXPKh,H9*Ru*_yC<9YX\ 1DA 0j |Zvcxq{(Fr;׺c͂oiQ\u?롼pci f>6Q<^C,K" ` TbeC]4ϪΠ.&B+#+GrAH9ޞGxJ5Lgj&ȥqVfko|w={x'j"Iٜ$'q? A1Q(~ؑ]'FU|M+y;s_=AywEw4Sq9kg8 |fvY 1"~uG#K5iHi1 p̖>OEzuּ:gޱ>&;:ZF]]'Enk;|YR-/vr@nZ->#)<DVl1{}y4~%YŹ2dAנ+Z3̯ghK*E:GൢEJ/py{s[I3>Y|Q)xJ0+xGXv9ޫ修i{ݣ-R\[ /8¯ncڿ@bu@«KbvqqrȨ(U Ko }ӼԆC[;p:ퟤ͚=:_:.VD\Po5e %B0Xj[!9Jό+9_#i;kMn"m%E|><-*#3݋G̒ H\5 |9_SM/CndB˶fdd(sz\(q^t^G=.-V<:X{3_vG"\!-\e!O׌)5USr]v~[ZIxoOG<6Efڤunw}cB kM~x8`k-MP>VP[h#jU_G_Cr#ucV~ai5;eY-J 98s޾_w_T]Ԯ[h i4/nҦ_3`᝶W~;ЌLtG*fHi ;r@23LJE .z?t: 9γ X̙ s#焉>lv}%+9K.3|[meOO$Pg!,X+Izdh< RQ<e~_9 >%5Z"_c]2[qk LjU{y^\L,!b&9'}}[vHn宬4Fl|ϖ n-2Hw w82^ZN nI( c<:DRo4.^3DVF(鷨JRf*tcf,8ğFyw{ZhZDbyh[GmD1'u$u,FSzuMwr4QuFfN8%󮖥D9Rf$ևyv>d5#Ѥ-8qH5[E=#@y+Q(oʹ|-'/S>'_ĿCs]JYK̹%cCE<~BSŪ7 u;P Fw =2'{-er0?NN8a_߻FS~vWʑ3Џ$|Vܞ+.7=@j{]j Go&C;wt澆WZs"м9_ZX4`g62.b^c1;$n#~oJn=~ ׶;>l`haTBa 6k[1v&~gZn:Gh7o+p)3ѫozg<9bu-cFub=\0D*mV|pb3v&VZY&*o65cY}Pk5ĕՑvgots?KuH&YVFr3^97x;i<1[׃g#R|}I^:Rk(-Y~W؞DlLRQ +ͻ: sqWQ"R-Թ226g_n~s+K#򶮜ǐsu/_7421cUQ$ L?k3nkXg2i_:,s4Y| qDH5Dy=4W n0Z@Þ,FfKmhbWpUsWRbMe џjA!9?k #R,Q[n8m+Xݻ Š2oբ2K˪:Sإ #ή6IotSuy>{E7fٛ[J<\0*C?#`U hX!ԙB@ >޳bV7"/ {ʠ%_n\VѺ;>n"=4Z8,C_G֙2 K8m-vǎ nZ<#n~"x7ݲw呓({{Ul{@A8C8p21_o>fF1PЌӪjgK!$HI BO Ϸ_uEIA#inmc(6#9+7g_;g"D6W?/ʵ F1\C~ZpR!`ԅŕ:c+Tܽ5;A$mK!vw٫S<9OZxަYiVv R~]g FHpO {b-[,^5*4:VɯsoC}x^ep㓎7M>R% ;jX/1 D?pM~"|0g?`i^ 癉vO N_J|񅽏<]O[ Cuisc0yc/«2Ar) wo xWROYG\I*l&T@eb:ӔWQ]oBÿz;zI,$-G Aڿ*.Y;ݿ'zYy5PHtb ^sAL}j֛wqse4K2p8NTdofyg|/xVK[y Dc᱌.Ifߠ[x3q>]$܋&pr1L\ɯC&iO 5ݻ=@Es=̜[:W.'W9k15Mۼr @^3u4@ehf~xty(.`TyMJӤ]$n$b-(#53x\YX%itdG|1ga9KlGŸ?w*k{4,<>k|FD"Pvђ2 j,ԲY''?Rʽ(E{;uck&#^rֻiK2y[<`sQU4)ԵcռZ23Pqr9}(Cp*`9/Ӳ?x򕼎ݕ[5#š~I5{m2UI2;Enc| c@͸zU$dOq^YqQ؎pxwڥeB3{¯=YEt& R0z~k^-\A\݄hH ǧ8?TrW$7ʧXXhznw-y\rHtMAU%HVkԳi  T݌v蝏v'F6If%V"{Uic_~Q Z{&&7 wxدOGEތ_ X0ے9Q v8+Z#YG-7GV3}k״_KU+.0L ;9i:[hw۠R:lT/mZ=bx.FlDG'uL\{f2.rzu8.zؾWbKDskquŕ?s9>X^IUArw֐ZͶϚuG[E#xnf!_Sz3I$HH!Fk~t߳ޑ *!x} ߡk$:DذC$ e=G^=9<~FYlf0XmXi;;ǥq'+y[\y{Ȩ/QHIsjs~Jݷ`?At.<ȕCAWݽ8e0!IQ[M%hD'(H`y>.jq^gF9aO:4%Ne~OnVK:O?s׷m [KlWgȾ_E6@>O_֌F#2|/euMoK?a>I7vITcǻIz=?hABd_~:o#CxC1ݪڜ~Jiizzjt}YXH FO#:bky[EH8#JG@<{};r/Y ][ךyS!V`7Cnv'?zͶK 2*9>¼Lv;qp䕌r|,M* !]LBy9{WNeQvnzF疰̩ܧicq; niOZ'-2[ho.iOYI? g:>_R: Z3_ \طٮ#tcp7+cj5ytWA$p[;bN1lrIqי_-4umfZGUSouԋ<\*+$ݣSl>N=þ+E}d.Xm,bxHw>2WX.O=~SU*Z+ Ȍ 1U?3ôuVu(OSӒ=wZFxP+N˽zMx&]_X%JPZFH#CR[IiwB9Q۞RYI!IFlEj)^>_d``5JMu/TU+͚J썴9M5mEZڴ3 +zӏ˥|F޾7u~w‰NB)Uԙr->J~_[&&ZP蠑xMhX4ҭܳ=E0c85E{w:*;#OxJ8Tװ4*ҖlGNm;75Kv&ҕ7V{Yl& ֞,]Eu/..#[|vTz/4{Od\(Qn7ae*N9# Fn MS<R*OOk~Š隘۴i岒$tvy;9< B(n~1 $^Ws_(#p$VϮr+<%*Z9GFr3wB'qK$lrk oxc߱F} z}p_:- 9 &Z2Y?۰2JyxE7Q,\F)Aʻ WZ3½mW »E״A/Jet;aX$jWzk V"G$Ho|)O1ΣVr^_J-48@bO5| cd Jguk>\*ܣ݀(Bs۶*1%hӪLԴmK~m4f  3="x,-%eG*N7m.qB-{.m I<1mq."i$w[nW sL{Gy#ީʴyaHA:Mk}Ɍaz!VȎ&;_|~;W_Bİe8RNO281>̾2|K~6,rá4JΩspGo 2# &x/߸ }c%6"+ "^\ f0qz49u &\'yn[5j9֕G>A*1{zl~|O]lrO Db9$5կ-?O[6\\Z|< ;N.%e>bTģew#٫.X|MsZ{ݫʷȅ~Q \>Ƴ @퓸_Kld+GN.!<+wiu "8#8;OZn;Eg4UBaB1J :p/2> 񧆑?^->!,IWFTԃSh6+Z7~۞ ѤK[|+ŖBG`Q?" <ƵJ$+?5Qf}JȬ.2rq[1I's_UZH}Vb2WE|'ws+K{GUt9-X&#RyO-{Ga6QN]AcKȤ`X`͹ay]SC/xWi# ӓɨ"6ڜW:>§Ě\oiz)Ui;;}z m^+ !b 3&"+)u)S]+m'>(Η 2 ʊVɶSűgܞFGM|$'(ϗ͟M(k\M,Hp +[퇮l89f5т]V&ȟџRxI6:dkg-* Ȯ4#26#c}ֳ53ⵎ}B;O [;x]-’+bʣi#h[֣8-?IYQ5IS`dx@Pt99!~ښϙ)jZ$7Z=уT[u_3iIs޿>&WF7S\2L5/R1?`b&}=C}cJU4yu; 1kXaF~XymzTG7g/9w#ho~YH%a|r؆6>SV'uucr!lW4%ٞİAjn ` ??hV,k۝8X\ː0x y"0 zn39S_(wӥɭmkpH9>+ꯃOd&^~Vl{@F>bw*v̀a\F6?Z'Jѧ`l_n&xd@bAq)>Wm&v8 AЬațeF WxnT$O"7-[= RDi_Nt IfF*~RMj̈́ZM䶥+lܯ,:ry5jw|Q[|4i5HU[wg8Axh>$x{>L&`YL:VnUp񻨴m`" o&E wN>FR)*sӥQ[$<`þ8T:mя*(jjFީ#F#gB| _ѤmJMT!eMq Q b? Kz8vHC޴?'?^($xfWѡ&qyK٥³: Fdu_|~?/]yh ^[%LpLMb@d@cl{{Bɽ{tϥS+j|ۧڑ@=K!U@,@$_"q|sB|iռMT7b-WqZ]he .7e2G2Ss(lk }#|2|OËwO4v&Ba2lF,yR6 VҔe{.Jh[+^{>'Olk6a{b_(:>Q F@9k1V"I !v$5nvYj|_ }x?39e81]짠?Dks> K{(mxI?xհH(#qx#u_UoXx_tIH5/pܹxmb%_ 3H 1_y6NR}%jGZ#kL+A߼c a[IӼ+go;kM,2sdA O]Z%{;F;);绖b[8Ud]8فrᴯoxn$\L‰;/'Ǯzl줿#"L=[C>tZX[ 39U1}' }C ִK$NX (7;]aF86zq]4-=a63uQǵ@Nck4t3'wsƑF<(ن?Wn5mvZICO:Ѵ=sxVXG,2 EsD?ƥ>[Դb;C%`͝UGfv;~-$mFL,RXz u{)g+&Kv6zyHp2$j_wQcByFmq:ʮg^V^/ 6EMO2cWcc9*Dm<޷5|3 ;J&v] #ȗ9덹Ñj~z9Y4ˈ% $S=7ϚoOki@y$1?QƖJByf@?y Ϩa^ [cbO2v\t ~cֺ; =cͷp8\2Cs%bԻu+B]dğy=y)a>ːF:<d`10+O۱I]jPn--lAUz|TfK?s m@͖ 3Ǯgcj+.Y+(`1'#}^k֭Ea}ķ{;R9tkrHҵGM坿 cfifg|[RMDίk۩XFHϱ> ;C-9Oނ=We$YV @Svk |\.XA^USӼD𧃼D ;R; #=BoLY$FfM1F~Ūl0K~&ܬ>5"x~XAK{U{6vz#a@ ¹ 9 dy^ʿQ>k^d^7?*H<1 RBȗ(2.G\,Gh|W'I0ZMw,E4ݟ:G?Z*N{wa#9KO>{ *;{y%g۸*'3־1[Fm/qYB|cc۩\D.> #}%\p8F,{ ,r#~4kBjHxWSS, ]O 쟩nx/~־){7W5)՛JYL74SE-y]F7yQ|wjSvot [rFb⥀`Nگb~O\>𞓪Ah佶Q ($2͉ɹsMmt}Te-.e=j,vLURrC'[̋:!l#I<,=\~ceib- "mZnoL3lGm[ |!a X= ăH{pyFkhJ:tf}+7K&wy$`g~O{W q*/}P#7~Y澎k ZLK|NulrH1zҾ?-ƃmdǭuvb<[v{g(xhfVWMFG5WJZǃo9ndTU:0+i6{l@._*0njuH^e l2* tEpc#)b?-+3إ6LılIH sǏdh|uw_53QaA Zť_X3=_Xt zi֒]^\+xcRHx $?o0~־6RuI . th8m?c%mX$ygŰYZGI,`~+kZB>b(F8ⱒq_XtRS_z|[{_ZY?at((7UґFp~TxXX{K\ g<7'ӅF?]un4%hZ;0x}+jn4}8`0 'ӞiZ9_2+cn=y,-"Yĝ?=r][Ě6~Z>D.?0wtQ|{bBMq21*S0wqWyjM_cIitq*([9s_s #n xӴ x_j_oCۮdY #~D0c$"O,eF2N=j*y?ɒݗ6׼R@B5M%cQpܡd9?<:Q^?z?_R8R]669vlP4j'|_^ߋyYu+-Ȱڨf%jHU saSRxٮJ-[hYo'.Fnq-,tn.#DaTE*Ó֞2-u'OL2>|}]M[vI׆x̧{Hm9E _19c|7-N-VM'OM9w۱Wy7lA;ՁKIhco3k>i ᛟYX:G>AG̣./zmƟD 7.e\ULsH9}VgD~m/*IӯW#W㝗ʕ?$ʠɁK~4GWhZɗ DҶl`O)ֶP-g2ڥΞ+I#/K3I99&8E]Mf|څ[mMċIr[,Ė۾%JWCўZA|+n Ž+p>F"yup{S֑;V->xo H=iO39%rڼH{g"\[[_c u)u+&"o8K# lq:~^Uok7N{HAR cP8 cG|^;35 [y':sӎ꽳J)j[Đ57S-Ȥ8$!pGLX汧ށqm,kpu-~`A[-5BJR_ƲќhsFbP謮0Gsy\,RdOԏf0A9t\Z:3 ^i橤+RY~ ʉkC~ m?S=;)&f ) vV`\`[NX*C/g}\oF?A^rVOw&}\cm L8 #s^w)z/ Rs6$^O~_\1gZ0Q( qUݞ#0~e~'4ܜ{YXXZ;xDmE0zPzMA,l^k6z5iK?v'}tYOPmȯ&+X !HgC5}@!YS ۉ+[ⷑxQ/,JOο؏sK kJ52+yy=ڷqYȯ_fAFj"C.'ϯ=>FnGnen#סEqh+ơ,1\&I]&y|iҼ2IoIrQ7fF" H^8gO+j%'$Q͙p2󥇓Vz7#UX=S5m$m:h\G+R`l2!ڿ7E=0vGl\`)#Ե_YIj{|#l$.9.1tAFO8F8լW14.bg :6= {JnI$|eʷڴKG|nYcO"6wZN=*/^5bOX+g+~!F>k%V`W\̑t+"KOh:\؆iۑ Z*kBbP۶d6ǐF1`Oqr־☱YOq"'ï؎rZk~6kGhZh[tVD Š9#8r.cbX'M4R0Tق' x^MjehL=Y\8aW+ε%$vs ^㋁ԾO!Orxbpi&sV^_i/\;?ʱ~ oQ_imcnRBHBGN'/XF2s8iRV{ppfv ??ho_e ̱Y;(ŸF>`y<׏7|U4J,)xnRyNAf)(~{FxA^]\EIӱF`h.fJ]\MgM'@ĕf8$ o~?O[t˾9$TI#6r V摼v?EKĚMHoFh( [ڼz^մmXyS)G#l98,I=nia4wH]ȷծ6@ l7XLz~`%_08~+ Ќ c&^/bxj mfB)A˶cwo-"YkZj=b[D NH$^gԼ3Ũ| M=QtTV,bAUY?uS?oj)ͥIip ۑNIʯnF^vcnZWn[ZXfuqSNOɼ_}٣RL9`FNwUeVoO%Gi_)cYK@ڥwuNq_4KXeizH| m12#»S\Mrcfiy~g7n_P+6wOO-dq+0W`Zr6/,9*6ՠmb i?'O+IK^~g.[.}~Ni4Hn9~_B?iĀ}&.X&fĪA FO"V6Y=Z5CCW{<2(V6ǖF3_O=돔fW~gvx/=Z9t'?Lsʹd9P3qq+ĭ$h#hC],+)p$]8;?`G|FRo(W].u.DsCES R>lz`sQd%㆓e'ŽjMJC&]%x?'ĐG}Q)bhk4̪r0;T[-ZNq !\~FWuκh1٬_ wBK<~)һt}Z:>/Ox>4x"\ "LF37* 0zx&+kJs1ңw~gO^g5Y/]Z_X66 7?_/|GWe-7GuG50&gMfϩMBɽb! @8]jGaghe$*2W'bh]df0鈷T gSNL5hS npvcFmsAhpڂ޺N9|LՂTZڤ[wwsұZ4#5 6fC9BTU̧Zhp6@F䴐  # :jVo^KG,^,/.~jm3Hщl`t=|5[q-կG&虎2NI@ԏm[о|@Kcuol;7aY 'ԥ6✵"mL6hVw.uXC)< zz?LW>8oB5WI'>Kz^)fB`X(>YUߏ6=ġJn//D~qwN{s$1B㉝SOjc / P}`==}皼QnizР줶0Bpw2 )&.tbgNOĒ6pN@?a/m4bU·l=8=+ʼ4[H_@*HێھcB9ycLV+DY;1#' zӦi>x6VimgiY"ܮTH!$YRx>Y+xuiVӶ~kpDbe ˻3i-utf m-K4fi.#``9Moi^CyD*zVtx"#4 ^o dW4>G!e3~>{c9_DA!qsz^:&Ϧ,,6-IULF;Q@q3v̀}:EGly'm?o_;0 &o_Im_s^DerpӢ;*|o!V;Q;n‡* X[h|`'(oK?[?%®-- by F`a7r8c[|.JѺ!Uf~:Oi{7wDI Qewv>_c5t˿x~XYy#:M䍥%z )9y~kaw3j_"4 `=)?6Nzfc`ڼũTK;pp6އڢ݁9V dgG.bsJ~8}RCfP3׽YEHaFP /sM #.&M> "'O}_?xce4JnWv;-G7y{ ߈W0k,&=b־5n3a-v,_nDkH7>U'/箛}}y=ٛgG߷Q }"Ͻy/Ļk?Zױx^E"%ConK?7O[.[r>]qղ9kͼXwŭOhR1w0ګB x -Ӂ|?z/;궩#_Gmo?WzOXd>lqVGϿJq9TkiAXmVp$^8UlCb஢ =>l9^;4qs.hȥ\W["]L/q `"#/+EklE퓐g Ad9ZZ՜V 3J.d'OOOY|ߘ']:HD$AS-d~\qJkZ=̲ivŐ#+,;>sMY艵rY'Iկݼ;O~0x~sdܺ$#08͸VWs:[ShE#G̀l|Kgo\ىH2E,k'RsOJ5Ǐ% lֹ؈}A{VIʓ8 yćw+\ڞG(4WPp`qޱo,@HK=G,$h:xm;]OB+g+ <_N% $̅pA\`yMhGmCya%Ѕզe!L 3*~ٮb4Ɍco4U \^:׵hqXFYe ,I'''x@Qr??;ɧj[u4$@gzg5LjkYb~ = &F̸|_X?i~6Y*~+~g?gOvl:Z Ì#+S+I(}դbE|ukY_DRDvU ok{`Vۀ bTF2ٳKv?y(UeD3m!sHUp6q'$p? 7_4gn4%(%>bqOW5߈(?|lp݆)קnk_GSr>j`3 Ok=p%q7:~U]S?-QwE> +#/>; x}{Q5r_!)"/&\0,$DΤEuMsI] *jv %χ4jdZ@q"[BsY1TQσ߉ֶW>q"[5b*}gh'*QQ=I-F|99ֿ_0DH˸ rpIǰ}mZF,خE^<!"x+‚M֌E+uu (cj*l$m22ȃJڛYZU]3X7W핼sғ%NlІ'ا?]mn^XNI\ĭa-t8L}Ād@0'>T&ܮ'Gmf! mA9GB3/s?Wm$zp#ׯ]4ժSdwzJYhI,I,rr}@_;x?GKR[R̟oPd8%6wt =HMZ.H3z֯"$"9|"W' =jQQ,38tE>-ݪZ؊Kߡf7iztʄyzCȘ&" oGqӐ"[kvi>n=rܼ3[]ʬc9B:3$p|mqCN|KtB07~hPoѦUvڗ^]ΛeyM eknUGv|VdݫH%̈68 g\j_݇vtɓKha H-]## 89_`~ҼAt Ve-XI]X=+O2h&YE bG4$LwP_έR)3v+K{[)-Ps)rS#dOaq֩5;74Y`ym+g?柤}{CnVMH/?:̦֔X>*X&E ''$8rO݄Jt G -H>+z2 0pQH1Xƥ1JQG^4_݀7=1^~GQוT cǵsKSh-l{>o S!##<םG>,$KVjp'q?JR-uM]XhoiZ,5 >xd p [r|OGȗ ʃGlJrSk,dǥChqoʪvܾ#OvvKXI@ӿ28u}EŚ̎GbG̉- G׽|bQ%sGg#G%"?k躕ɑ[c@wP ($$å|kihiKyi)E#9;3`|1jc|(?5M΅i7:^S$4R(#v\?RS}0<-qqm}CRC!$ovg~-0-G\%$WR. P{s=Dž^\yI@os/6P]~u݂G{י ~gf_>Vʘ?pW3ۤV,,cq |w$j>|E|Sм4'ii7#"ܻ$>=+c_>"\vi/i;CF*P.Ts {{KNWޣPE+F X<S_Ox ܭwወ ݟJΪrqvٯiTOn;x}"Ho.#N_<+dr3Z_M#Es *Yߓh $je̴V ̭Խ/-ki:Żivשoog ,L6v۝g(ۀ#-ğ xGh¿9*Pe`֝TMzu4IouF]0Pmkg|}}gǭEtsy>[ {bGg]F@ʊ4$$iVIn\gş |S iRn5bͻUV`JV(C:/ 6ZdnA%=)PPXğ2Ic8T9~fW ӜaIDᮭ6Hsg52o Ϗ; yKGkxoi I# ebn# [lQn@ __LJ/#_x}G6ŭ1'y :D,b|i%[}zMe[KYI"bάc_AYtt%XzMh:&a/oU.`3g\4J|o԰Htwv"$L'dn}_̞yY_8Gt)'f;}*I#˒sJ8]0ebsdH~h&sWjM}seDv;ޠauz062mR\hx'P"iֱgae+՘k~?>MtfkdXє$z`=W:QBh05ޮyL¾6"!7ǘpc2S8%sњ$e>~4=qW9GKv,23ݫ(ùv ݺ1OzU>}ҤhAۅ1Fb1MS@g%]p#YmbvO<=/NW m,NJ" ~b1qڕm]2')-MZ"Ex6;HQ/]Ŧ[!HKIb< vFGK?،sKn1i{'uaͩêj2ɦCim>yvIGϱ7Z̑qg޸mt3RkHMouf %9<'Th~ ZHTJDn8*QΥu붓i ʲ:Cׅ(\sҤY4{y"H@#f`At]vՒYxO##m8rOz}kJΓ /9fg ?T_v3wgFE06[^~bو 硄c#zX5S)g.Okwa_>@Ay KK&dKcNB ʓo8zUM)maQ'ת1ѷ?Z}^ =wiz53?_%|jا>#ZnH30 <&vW,bC i x^=u*e&mg# ~*^IG٭oa18 p;Wu1n"x1]_ZDXc ^h+īP;hSgӗS;qk]4PXʡXdħx?zW={ڊcHa# ŲdS'͞flu5qGkbdQ < q}8s̫~ygh"ׯ[CF `ZR=?IC3KztY7Q{ ~ξ.hȔt|v<<%AC8Bk!GQ׷S[wQ{nQ|G:!Ҿ<).].l:Sڞ&OYI^ [xKKOߚ-f!@݀8$k_7¾o}èYZ^Z$,%q0 p1y|Om"1,4Ə j߳-oZ_|.M ʚ*j!lƍ(U)MАfTz /mzFm bg_2W ǒX$cqϩ{ҧ'u=O)i/ߠ6g`7c)S GۤmѳEX8Fg Qć(;/o|u<%i?iY`K\ Uqyhi=V|3V?tm6ьs3EH.2 B"YWۣ_3GxVKteywrFYUʣ$]#ڋt/f<:5n ݍAҵjD/y|5Ю\Eq=#8c^?V<GOoqIjnxeoíi n^`CJW`KFWZ檚VXWhQӹUX ik4C{xƷt; X̬PJ$F~c4-9(@J  PGԨkhƥy&|pyVxNXwYo"yF͇%f2߼8$B֏z_S۴#Po?MHr^0I'=0v׸rs`t+qJ1]KmYqi2zW8ʳm9o^+Ũs҅2Acu/rm{ iSF{Ht ]ǔ!gu$GMls_;O7"Pf}1^U2? A-oykh[i sg6:pmV -_[.-bIˤG2+=Мb/BE{?],/؆<ѶMeT!<~q5|&d_6zw.$̍omtX?ξ^SƥKyjq&r@_Ӯ$b@x0*դiS=OIcua ʅRG >$$B#Mg{d!?UVpBpO#9ZGk.Wkഗ͉JI16y?. I5-!gL$`=gYb>_vJ.k[1HN3z'?$fhod{]}-D`4 fz??Ȝo_:>9q;xyU$%UZHpkװaf&:N\HXIҽܴNўh[ [,[h}-կd_;Fc%\.̬j[z5j:,3(9>Z b3$I5Ou6!qD œg+2N;/}Y̷8 p1@3鍿d:[ygsNo%@=^*+W}z-Ć4XALeTcϡcVz!EMlYquISt{ctQSe4iX)mAq ^"&:rpNktN(aH#8=L.s$qb:k1ڡsc>joW{)eKvx-AV9;9w=rFXy9I?~ftb?#eER\L#פ|O/rEVA8m[m>q+n'7F']I+qXa9]k>8YUn]m"c;F}ho) R(nB8nlJMݧPA czZTvaI&UV 6q֖RKe,s! rO9{T7ed;=c$o<{Iۍp6ӭ_4(4{) g) H=x=*#ػ6 o$P c,}q˚$^]Zl%ޥ8bqJ]bԹcZ"/2AR LI %1$3q[^ڣ4 ]#/jI91ZE#yhj Sz8{Ut ~˂ 8e5g]FnoȰI0y' ۧ}NU[iPT@tsyuwwEY  p=fP+"}2BT 0pݰ>1֞zt6u}A卒sq@\gҭ5R̗wd 5ګ Gލ9?"Kǫr8V'+Ҿ D<;^Qʉe+ʆJhwxZZoRM>Kv&AU;` $WxwWzt,:_(cTrnB6IQZ[s^[x{'} /oӦ[{]7LⴼvLqFiyOi4"(7esu_m cm?&/ rx϶h^)uBt]^$Q%H%@PI^9_b?{97̙?n-].lR bXo>Iv8VƝFKM>;; %ّ.T(s3xTT*FF^^[7ԯ!,]#*.!\ j> y+\(FX|4m_O1.B֧oа 'f<׳;Fӏ-J3n4X!As8$zPK'BO; 2ki°2P3dc﷭ ⏈uۗᆔ-} I4 V ,XV$ @H^564ӿ`*#8-s]4(/wω sy8DpoWDRQ*'d6gx' bX(A+"KT)$+nQ_ ̶{vQf"JOnЏk6~߹5eh] g q|U?]ߊ/n][.$YO&8ڋ󁽐55xIK<flI?w-J.}40bެJT(s>s$E9%}Ǵ'htd?28v9n ' { "3%C5zdyGsmIڤ}Q>w_Gkz**yPi"I1168{}x33K+y | #ir{Ymt`ڠ#򯜚QOXn5wڛ0nE'^v0yTX44^׉5i巄@)¯\O#%W|%}J͸y!i ˵~SźLzonLd1 y ozjLw*IC,UC;^=M{E@[Ib < r35߻'ѿI~_S'ïVL$^QFV$$[mdD͌c`7WQ?~f~7cJZpղyq/үzlF"wLa|x]z5w> SY 5ygS`I-+xWE7G ]%GrNP{ӮF28f yGbS@M[[=ËuP Rr0> |r|2w Eth7n1L ]W'$8z]NI8ߩE޳}zUtkF<Ԯnn[Z-#ש뜁Rhv*2D0 ;aP~qJ= )m-g bN3Zwլ[Mp2̓끻О rd[ž"Xm G ^:x~ܐ՘GCh (PN Lמ}{A} S|^" fO[6(fr >sq;KV;I TrGkߡV7'(gI !UTq99'j7}R߂Ӧ2}=~]v|M"Hs)~IPr:W=j⻤ sF<:#W|8OHuPl3$#-Έnz,gu #9 ןR-·+odA÷E^:~u]S:^(Ն,\+n#r?N+ uTsȻ{ Mz/v~\ZI& -³l|ˀЖnya""~fc?&ǞQ= o Q~d_5y4Q>eD Y yz-3^nn V9P̠ಫ3gdQޱ5^[.y"1xCNKK8fAygypKn+"gcHos,z4akhsǖR #J %L]:Hg&M6sq[7KRXc=V@0XrA$F )GM1z'fD 7nn/-t0 P#*`=qTu~ [iu9:ccs1889yv{(W[ Y,io,[[[̭I$r9~z /eyAs/L.߃s}ZuF'zX^`T.!Iaȉ%UApᔣ]UZc䎓6GSgӏ5;xΡ6qԬXJ"89u:%F(䁼w9XIx7Ğ(Úcp䴷3*Gjلe zv<sO:鸣ƝY+uvI3&)#'3ɮj[#~y.o%9</~65xc@# 7ԦѵYhcr9 2DÞ3TEZެ<⮓<7&K3| !'㑓y G$g?{T:Uu5QF>nkZjz%\% _(6Ҥ q޹HlSƒ5?ݎ{}˷쁬q#ՏaZnΡFƤo6z?+L{t ]x?ּvæG@'x@8%fxrvx8,kps,]by#׭|$jX,n4䉓/ߣ_c0S+*=?J-~ׂai[J3qVle~| /M;͜ Z_/?zv? 4fլu/̸0LGm+ԱWSҚGUw'1OiЬbZqfYQ$*:FmyXş ox⫍F7 'URD .P >{o63ů>vWz6{6mSl-@6h(M<$#FP^I䃗k4ܒ6ed[F{1i4͹f B8lRYI\;re𝌚.r%v*I' g5"k}-e4mbXPd l n,E6,$-8e {o&[W8źm_<_n8tdec{Hz$N$O?9n$$dx R|}:o+멪tnFO琲6;yvCN㜓,o,o+3w1# 08\:TFK"ljkWrB#O2Vn>l`x}֟g)T.t-+7}F2H{FWV{&jqq8?TY",D  G|  _iR V~Vu[)Htl[iዋmvM#}N;dd_I5V["04,K`@=\c峽,Õ%nmhPX6,@끨[gr>?I1\^/+u8  {͜g9 tZn^mO_Z}7Ak~X`LN$rK%ԡii-i\>dpO|Viߔ}ZO&;#96JRA,{{."VRw2;-s3J"`%[r1N |O=D߿?mYnb#Uvs$ꦧWK޸cz8k笾ٯ_WQkɋDI!GB[/!5 oK8K[շh+{F g})'dxCs>!ӴwjW+omiw2s%1ԜWjϪ[4"\d @ѷ72KWr~³-77o Tp=fc,linT2 G>/:ԯ4{Ce#{y-%E"&%W  OTyRsv:]Ocy5ޭ E\9g/ٺ ~^i kq9U iq!yOJqa*u\Rm 1w]f5CKذNߞ\ovf8죎PA-#V8EOM>+xR8tp[z]ij?S䪶z`:n`?¾{.VF[][j1ǧzV]ǡ"~̖ 03::q}ZZ7VKoC"!xu-GEѬKmƒ!Q>:W$kR:*"fm#1Jˋa8D)!(b[' U E<%ݣ;<yY:L1VG/])CoHд1N{Z6O`ݮygsN"[jYNVHfd9 }A9i-a\XzC/,C5їAn5ˀK} Z3 Z#ux7AbL5ēq9ECmYE3W5m7P"^$ 1E[y<~+ŨE]b}6վLHe'g9'Tgʵ8)o|C\BVAn4`P6NF2 9gN<ArFI6, }83)q|?^T*܂ a%Es9?zǓ5\N[Izi%{y1sϯ^ \K,ܫJqiӣ΃w-j[ $ƈ 8?1ǰcڼkO$0iz63Ai(E +oSWk]~ ׿sHm55U#AP@;V|m+2`57[4׺FѡYbq=9.@hAHJKm|%HKI{5+*7UIfvy7ޕۏvz5^+6HpИLrҫȲc9U_Zwכ=5:Q_Za0C:,07Sx$碪O@w qan˝Nmu?.4H>ѥ )nqm"9QWNg_ P=nڳQ )f`3F[-f-n9lu2QQw׌mN0Tջ=n6M>,=\ϿFki"de>R%̞ͤEFO>=B&W*/#9QUqMJ>e:-AcPOJهdۣr+#VVK_Yb#gqdjۀēӞYM;w6{Xx*iUY"x2pT.0W!ޣnXo8cOerdX8F*.My1Km5yILܪᘑp8/oe,RZ N)7۽ŪiwB(z9}|ͭ IҖy}>0ȆS8!NAҾw48tK羋|i~ P! 8U!GA*3=JXm{}ڞfa4_t{&ĽXu->/ oc,R'hMq~$Ge_> U3,,ctl]w6=]/[rI~/xn~˺&P1 *=zDUcRC Y[NI.5eWg[:K[Lx#>W~-ꟳ?]$P4ybA%&2e} 4JGH |2xtiyW0iB7` bu-ˡڅyu2oE ׺⛰-}oV7O ۙ ؆I3#0@UVԔoVqsipJ\?9 . `qu`-m')q(ur D {3vVt b~v:{u~1|i6bNeGk#ڲ2ﱔO%H +[\F@Uxd;ߦljЄoVW θy,Azne1 u }H4m#SDO#\׉k  aK~6jwG2̰iG4RHP?c;zWE_$RN^HV[w`^':;j< sZl&"$AqW-+gipG6a@G~ 91޺)7DT6fAim42)\0=G5]LhpDP2D>gTZM?_ɭwxMbKK"$FA~[8N5 i98[Zlې_g$mG}5 aN{zU͕A;?Rk>O.)w~T @*xޥ^0lz:$>&s+SWv'S_H0 H+ щ'~3f}3h_hMBݤv)+7ɜ+/ֹ{ e)udq+e[n{ Oўt[u>{Yj_*xB-Cź,渖z4v+,N @"FI~e~|w_b; \떭qoO1J* } Nwcandz_B|;]7>ա^ֱo'MI 3c N&ѳ=yM%x~#o]n5b\r}دZaY.Vyl.nڹz MOu۩t#wwE."ABA~PyLf`Fy=,6vHΊF$\~2zANM-Tb[EYs9mYo q< +?؇$9'̒rS8+a4{L*qi[Cc6Vb~a#DI~g{kmjEY%ıMp;Brws v5GYneHQY׾m=ӽk^̗r :cmndU`T0 ^Fpsm_Mu*WTI6 e$e wʍN^mmnQlfHinM!s d_5x 'W[_Wlۯae CudTKp^[ >b$*+>7Oz%4{{qry7;vvf=Ëac;ź/l>m`3;A4DTrX6'vظTHUez9-o&ykg Sı4A. 4 o_ᓦG4cM;KS#wjB69l8V!SCF­ BkŌ2ᙛ$M|i]>Eo_[T#z9~h7D/k4ZSnRF.{~5ꚢiͦ.} d@9^G=y؅lt}YI_ /o[=ωa5 U) Yd L>MNYȧ2M\lwAsXfi{(߿u`էo%φ8²&3+]+c[pnʨc @F?hv]멝dh}uM$Ҽ._OG?hMnNGJ$k5R x&R*M[Y%.?wo'2n;Tub3Yu F֚{Euڤd.>Zե7jIGO0hDA ULc=Hpq_mg[(BViqI\C\USZKkS/ jvڍ\E*Έ*H?^m2<;9OQߚ+;ֆzaW ۾\RS꒿)}ϒg|I3_[Q'=ڸw4ѭ+6a ;FFz;_6O^k$I99t,V3{y űWʁw0Ad\Irx[i6M,?&O Vwn 8r㎛fk5oKU^gҚaFY @l(WE9zW1$0d_Ȩumr*1ڿ Fr:s-|pC;#FLl jw/x Bo>0jPix}db)c AQ NEٞgWf+.ӳcWN i%".-4w8«K,ǰ|x| /^ v@Ь2[x%mҽ &#Ok+v\}l[J36B>8@w617WzIMxSig= :W^.jP4H u;e, _=~GZKuEL/L&NiMrFƾ[E2ZfiQ`wc@Íإs%%6:ˏ=Ü/yCЋs!UdGivI gs8"7&u (Tc{gc>IF\P[㸷["c ʒFG l05^"4 %4MFvq9))Rԇ+NзMxu=L9kݪ]]c_u$6*h-hk=43\۶tt?(,VE:LufkzנmPܭ^Xv*I*f՛)U/WDž|5">hGl{{Tx!Yz#jWZCV0ܣGqb5N3>iO v^a2[!.!rz~\jv6~7/۟ܫemy'e&evy!`xky&CmwҎ hZXc"p'kd-m_ g͟vw.m%/VwEƴ -S˟ivIKg#:J%UH6Yeψ?NB?my%4x@,.l\fxELDEZE_BqVz)ieiy]ԼK;Nk4V]\OHZI$TE&r[SܗhV֗?4ho6V=ܲf(-¾I w|'t p!8dd=N{p3jȼOmѐ{!=،3yq@yGҰYskb<{y^A /ngGfhb]ہf6׼ok[_ OcKC9$Ԓ{%Yw4Ny2|RYFO3hs'B_2޾YlⳬB,j6GYc.w2\.r|r>,s^&!UxzQsU2sjd;:#)ӤaIfRq'n=j '$tQ [`mZek8ff":p瑚=tnoV,{(n qҺtum'v=z4~ =#[Ү|Y6pD`8*Qs3MAߵuٳᠵ>#S[up9\1Ga)=nxO@7yݞ,.5y팓F G$A+Jgg:mEޚ|9(336$'.]lw6jziv_dRe<;R5* ́*cqk{%[kteUG^ƊJVn ETq[\@L\1꽺J[Kل!Ӣx>l}X$x8y_F@H"Ъ(RISA{t뚷7: .nOY򼡈!CpQ:hZSFrT>1f3]'r2zoŹ_"d-\ aPx[JwoS4dy@"9*8d~j'[?Ah7$S{t&(J 9;z0eVVיZv+NeG&Wρ.mf2YH_MV\=EhgFfQr'Q$M+,y)@YbÞy3G τ1y)'#)k|[_&CKxI@DFY(kEӣ/-OG;aI)1gۅ@K;Vr?CT9j-ݢ^HqVGڧ<7Pv<đuWY41#;ӏQs]_c?bymj8"ǚ4蛓6:13o5x> ZU m)d#GeL:66( |N4KwylEb.?ҌW"mEOiOk>Id{950ØلM]N[; ruKDӿhH+KsnOA'uJB󯅮wr?XyP3^˨5b7P\W=֋Wxoz֟f{R-U V ąbe^pv G½#Q䵄2W-׽cXh=_ۅvנz;rVy^ = |s^.쎳K` iźlg.ʸ9 s%=w ˗:mV[҃X怨d¡wɍyU lT[R_hRE1Fʟy%w\ex}nq{5N -m?sV,H|aATb=HoNXgK%Oe۳DaㄽfXr[y'1H#ԎkJ=l=sQ`DF7'qv$z~ZΦܸ0<Ȋ{⹫FQZ=-HJ޶z}:,a&r52h了Aەv #U#M)5^"Mc-> M2 WQђ9XX[Ȳmvdg5x/OR'u[w_ͻx=]p_=~Gh} %ơh|Ö? <+x?R1X]򯜭.y߹(ݏ ՞xv0@7 <)e,J&ou}ym#nݤIܓ+#+3 HCFN.+_Q?y{G4W?%Dw>QRO[yPK4osI98㓜~T|bQpcWXYEi*YJŒXR9xa&ުZ[K0MFS] SpЄՅ7Y=SM7:I=Dg:/>Tg"RH$4 8g+v&rzɶt-9Ad Ң>b?,n6]iwΡH"G=Ń>:K/|'Lbܴ[mCM&xEm.D'7"[?Cx U `ʓ6?ؿXJќg~O$i<&L#?ƼⰊĞ&TT,J'!9’ 4Q4ps&rsvW1C-߉&hxM6ӌ#EU6=&י%h7Wr4 &!X]zZ=[mTҧh\[Os,^%itGUrG}lZmw,D.v.jI[ȕyJKOHfCFhe FA:^/axm7=ו,M\mS7lԴ7Qw",[~tN $:]:;(3 b``A1Ys*Ww=!c `W:L字iʼNEޚdRAyһvGdu<L|SRMɀ]7F2~Xf8p8Ҿ>q ~Ͼ'[͜|こW$$*e^>?x_4c'iEw%e,ʰKlm؆iaA<ÿ~kJ3WԻslʂNGY?53JM>hw'ی|8zZ-F+yVH2FZb-q|0៾B~8Dt ]\x\`u( `sJAqur63OVUo[\DRFmBpII8a+-ǘ޿{wÿ\\xJK6:xH uxj)Xʔni$vX,x=H<ޣ3jZٴ/NYC.T`RTSRWwg'c ֵ5yb\zIL H}蜛%_c[D-ak:1Bͧ;v. 0:l* :VH=^@9@8#6^ӡk0 .m薑4rXwgzYmJ+S~a;^$Q )>nJw#-'}&= oNgE"k2A9!CWRD6%p|O8I.}ˌlX =/Υk.O+nPWcnG'Ӷ]6;!nԆ@rI=\M%5 ^ZWVZ ,4֎C4 KFrN6u|s㞣~?/Q@s0@R9=:jT޶>Hz|w^jڧ\pzWx'櫫]\,pWV,lE5?$}վoos<"mCh,xL_SxKQB"v `8LwW}nw|wLkϋ-R;MFJG iҼnYG!(g=uO*?&[%E$ac>x x*-+?m⾂֒?6$K":g8#`Wg\nsʱA#RPgf =~};_>xڬ1½ZyŽUT 0%UTHҳ륤<#FA;[XFWr ?&'rfV'?Ƽ |#dQv3c^=AXR5*=ŬQAbx1#f|7˵eu,x> |׾)xƐ zeI`Y3`ÑrF'=I=Cw>&gSqc va :5 Qӣy#Y4d1cskG)˩nఱ|d"E]<*n.ܱI'9sQ*payNxk >etp> m?Eb][ݯdA Jͨ 6?WtDz$cQ:}W'A걮czG((K0cckói">HF: d҂ٰV#== }gQ4dSjItvј sWGZ9+l7> fJ=/8X.m'23y>R烴i' *kv#'zs涤DFl:JF&iSwq(FG1ӌs^|GZ9k;Rfi:P*7윸#XJDew$>Ig)K~hΪwHњG_C$7:c+zctŗVN_J\pN6wE6)=H-HK눤F-rM([}`x֧u4,-峲 #snpyiVZVW>l_[9MWN$@;;ϵ}'I_k JׇvyOO&FYXm-?x}5F,ș*t{i{g~?j6:m-$ Py>ZLҼ5DKu<` :g>d#ʵxֹ=fFɺ)$` R]7H-_C.Uk L΍ inVrJmLj qVtR_K#"Lk~ǨX%y^et(uH!}$ei,$YgR?s f\GB:Kif{@gWh'8lחW[4_3G̒n" 3`YN@9&>Ѝ:&IaؼR) a&r,t>N ] '?z;.5xomqrFhq  XEC `bW?KkvFVKXӤӵ/KϱX* OpQ0ylt/NVtqt#u-tvߚӞ񿋾/skSQS-"iM\aķCrB'<n?'Cj4JGl$I$kN?1R|ܽSn=r8-q;28Eᮛxf ne#b}+JϚcXj};3UֵK1D)$f/lr|Ƶ꿵ޝ6XO06!hC*{(@f2HN QRn2KGޔ`~=Hu%Zp6 0@H- Dֵ-GW?αn&JdRrrĥh7>ջV6 ch$U+xg4U @=q H?zc)|q~L6vz[ꚍvwH"YUY7mR(ѩCF+"hZ;9Tѝќ;AێrAT#2f$~Eb6n%PC;g,W -?X-U=*Lgao5֝'Pb}MRߨ z}|tQSGq?lw|_ 0Qi/pP8Ew9vk x_/3NfWtx0Ğ׽y[ox,lݩ F&\*#$(8)A,'}i7O;Sko L"N6st+Dښ$8\E S<AwW9ϭUU4ytҿ7jр}l[E@WԒo~\"VVl#yJڵXŴߑԍOF|%vlv‘'Mk.]v#mWJ F!.k:Ao ƽymHK[[ωHHI^ I91x\um4u-^>V ޴R  /p¼S9FqR>ѴO]JWDeh:徃5k›wG$z$イHe.F=#vzm!p P9ft5ڔZIyݼR]88czhI$Os8?*:d*9tZm>xy͕2HU$?QN_*"˺#m|UfR{_C-.' :Iu qj-ϝٔ`cR|FoX/$ߍR 'IGeЮ2k]XnCmq+s©>ʡHn)TQ[Xqo6vֲ+~zzYm(d1ȹHL8}j/}Esk\媧,U젟qGF,iSĖt8u&CI!(?x;~|IKm&ᄯ˖7u^__KlghifGuR9PV)$Ϟ,:>{!QSc/;B#4ږ1"mC8rI$lk}H6/HIZ5D[JFeېq^–>x-0f.>Rvwo?i.~C#22B3`o[vh:헜t37ֳս V"6m5:[b8!PHF'Azy2cy(:ןRV`ֈꂼ>%3>^_Nfj )ʆY]݋&U/:H_*]*RhվR62 s3Z;é3O39sW9'=^gh)˖7e"([\"3'N:gTTZ[[-]w<-#Jk0F*m]CJ|?~ y#h+L$OmG/Su+B ۖ7F! 9v4=x)KSvUB v줎rr8ꞗd\#$3G[a 9cm3w?Cvq򮑛LQU~2rmyύ_n}m_ڙpDO<b"v)oFGP\uߎƉi?.|FF*DDН>=\.j>_Λvo+1U ',Kd`u^ ok=ېu2n#;FA V¦#ơ.>38hZL z,1NA➛uGմtbUV`p ;uڜezkE?m%OŻi&XcU $PT?Nf#!Gk1n2Hco_w+In(7'U݅{‹;Eo*s1ᛗܹ]0q7ę@`ͼ0P;qڮNniFi搁P?tW6QgI/j]Nlj-mN]7SlC#2 苍j$;_,\|U rQ*pUPo NSQk%V~3^G \I<QIl܎>Q[joxٯ ZË痶IQF<JzQH+bB: 2y&ܡRm5Y˚'ӿC/E^n㺎K /%.Iyk8 2I|r=}=2+Lurly揬˭f-'$hA"={M"%+ "TK#Kr7>\vxSț%7REp}+k5ZiZ3ZOF#lRck׊}'Pκw=gtm+Fu2_G32(Wo?yH|]sAf20POVo3;{tz?zH1\C0}\zT]5SoxWX^( ӓָ7cIk*+q^B)Y4i-ev96_َ!ֶ ISqHRI|>DrL𶏗Eqɭd9ʰmthYa>vi\ߙotek:ZȡZ& 2 }փsE׮ƺ5jI.e9K+8e--vI"`À<>kهכKELJ=LŨ%V'oogH*LfFogŞ,qp=EX<(a^Asv['c[ܗk5R.^d{7V Zz;?. #FFiUVdd# @.9^߭%xs/ہ$mg3G:LۻEF gɧ$lk4v)"H'Qynpw M(m&Ս!db9 5Yb{b*]C SƼzjwwEro4 zK=|,`# ;?Ji.5&)!j<+$)ӭ)Ӓ)Nז^YqsNM:%خbݹpT}wscO2 ]7Ki242n.='k>0x6힩t(.l̆m(9V$4]1JZ-ϚSXҵHuߵyHhS$3"FܡI9c7/i1\96G߷#p xSnIt1Œg=O-|X?s\Gq0B|7`2{]S%2jXN^e#ڭAڴR?"*;H7u;dvyGE>y/u]ƓjZxѤcywM5pi BRI$-z#ݞ}3/wڢ%cJ6 IwROҰ.v2Bawa͞ps.+ԔZ= *$?SӵN}3inwVIȲȪJ2p  85o>2k< dcUvUTuգgx3faKOuWʔ`b?S5L5/ۼx3B?r'<),XGL7V6^'NԤ-Y%fh®Fc,ao(_ػ_ ݜaѲFh-7rdI>2j-v3 #uxqi ND瓎IP\3m7)xDDq$I+ƭb|D-bsT88r.-)G̊fiW -B;veM<`dWuoͭߠˇ8i@\߽niKi+4. |XjmL"r!F1H\b:fq^ JdOY㢤K~FWe/G`Ty.#c{;T^X㲚 "x J曷$}ݡ|ׄ(xp7:h?X|O ;>XBO)QWʞ-!ΡZ(Qm+LCԓ.@<8 J*ۯKQf?*** oSS֙x, ApO,s ڽx?ߨy3Β.fxFMC\İ`fu-#9ȩF~YfWbMŽ sIfI?ҮY+ks utPp~jh;& hƯ%$vkV:Q Wm1q=,7cײ. E\\*v>e?s5gė[mnbQӃB6Þlchb.YǷJ蜶] !lv \ {+[¤׷ީ%~ǥ[Q+F]_C TYֺs5AX  glo26r>I.jGG\_M-bE_&CGMagLGh5݅I]lmRplR2=8?nfu -c4unk )4$}=῕;h![zI8\5jml`aFe>z&bS[9`GuiIZOeZwu<1hOFTkL܌s5N`0E][ݝW3x׎+]RC&>8Sײ"w\x\] Q%b8wgo@aITQrF/F{fWmG*\d32)aX8+m%Ƶzuy"fV;vFU!PbqcjuΩ,4G]kl@<,^iYJjf]t<ݟ2͂zFw` *m8jRS(hؤ-*vIzesj|j6ј(L\[oAQ6nݗ7`=N ݹY Cٴ( >bC`5C;[LWd$';WkΩ_ٹ!/t}>/jrŨyFFޚI N2ib2s߿^.?Jh>w=MX,f9h|YzwЃ޵i72#>6iqsyrC?X[!/X_hz`0s=s=;J)S[MŭB-&eP0bbqpU{#-"u> XŤgd`^SkάbKVS .8׏n /ԩ'B[T Zx]2 zv GXP#$R0 `@'>CiTK7@ou))ա Ns^7R6y-j-? bůd%g? y~,An%cx3`/ʃɝRëWkreo (~(1(J˞ʔܰM[[J[~'0i;;9.-I Pŷtq,B=y8WQ|O#qn# 9BIʼ3 vªRAh\;1K&\~&zY5H.n|V\! ʀn;)bU*Uh$oˑ GiB:,[3_IRh^R3!iCVA4$ X&ȬfkmRyǶyky#rɑaFN1\W* l7OCЏc^>,' =,3u<❓[Zm'n9]$kGxhY]%7dkusx+g l!63*=0\ڭͧ,{"aM1Õ=wN4=y(au2 g[;kH {[%JHODm;{5Jj7k&.88r9kvZ3mnDF`#js|xhB! ,IW9$ㄚ=D5i umryԒo-0)cךxW^(h~!ҵUG#2QURd@$:W"ɩ=_CY~>Ӥ_-Gpj%i`k 6J PN2 ۈOZ\i4Y̊mxwtDRQ};6mP",`1=83{MsM,/AqY$gUGo/"hf)̣sk xi$-%71rE,x),EZO04y}Y[H9W0KEd#E s cK|&8*6P 3aI 7#y+BTܥOfPo `>s+qZMle\\]'9 |򥺰uy#D98%[s7=*,sEmw!V.dYIt3k^YKdӗE)E|AӼe嶏ao>9'3b>$D>]f ScOE$^km|)H!O~B6DQK0 *mw>WÏCXg}մɆWs, 'rjׅew'Lmkvkp$~+IoTr~J<ᮜ^_vRn%aSyYL+F>m$?ygݬRJI:߅[$zw+ <)5㻟G폌c$p9(y{mtiV;%/@- /弞^NZSzirK_^6s+jR[\W1He!y׎~xWĥՠ{In7`kYp88yQ>NɣHrπO@'{~WoC`7ikjJtwyXfB :m~JA۝.h7\]|I,VmH񴑀8k3ofŋ;J;zO)4Ěq4nOnǤM+.8YMqj/ܦ# -.ާ4 OYqP$ʃh;F@\oRMqܤER(o(lXyŽ8"4+X-vյMTŨ,m-``\'=:oi$<ĴP2x<7fGDآe_:`uXI7IyX.[|F4[[fe7Pڪ5ŀp>$bF֧bXX`=iqך"ՠ#[vŸsr Ԥun"aFySчpk:=~l%(C#)s@*9QmNIh j׾"-eE} 6q~5׼W q~&ӅNg\~u>Қ㆗7J 8ڻ_#}n y`.s=xV"BRȯ,̱^^42ۂ[vT*:r:sLth :<7d0zVpޖkH라zQwH?߶uصl}WiN6k#VgC R/.hvvkv|Ek};`x 8u۽Ǟb&:dWo FU"خ4oW`cSV^W:ЮeѢ$,` Fӛwܴ}7q,7*3F1\W>:2v^8a'ϝ+OS.qro8#T@3 o\Ygk(w8@6ӕz~hSd F:p{ JaV2x}O ytjw eD<#Fd%/qOWѼ Aywz=Ƨ0߲b|""T*W;7Ci]?y;'zrI۹Г^m! ( jL2ZHz:Whvw j0m7C B&L[J7K3$P8pd|1_?q˧ZQEeg D9yjݝG#~qcVXLuŴ}+l°ĤȄ!>͡Zt$ [6QB8VeT+Hf[K֙k.bwc7)U<ן8 |{oXYc19-+d'kg`GBs Z(dm;UM@xn袖;ȬՏw#w T΃—Lĉ, oP1yiox_J eol};T.[rjSX% .@Xgl˸ע."& ڡp/C:tE+dSy-&as s8ک_i:l"4y7~9'{և姡˫|do'k+b,BDY~PrHNWRK-+F##yl r@ポXS# +\tdN3%{BF1V9wApf!j =Fds֬`܊qrw]((3c,((iWB*5erws8XKb=뎳?4hZ?t->-J9t#x>x_Y%ѬauvhQ=x|MJ5x\Ŀ3{L޾|ivø1:n xO wSQW-Ν9II4n`F2@$~_7njRd{h pʒd1zvJ6Q_3Wk[ݖ$l@,y Τo˦M)lzݎVWwhEZ'XQ8gcq$'kI$JH!#Imt_MO(ɵOjۚ%]&zq9Z1I ]֟[\:V{A []{NOỹhݬC(VkKHS7>@iܝ([} FS~#"[Km> R!Ic*7##n]p@G3*~'_. wj5;mӱDaIOs"Sğu ~^x$ðeY7#U &8l *)Ŵ)FV2-^kxo?Q\ 횘PY]d>Q~hU ;CqUgR5{op>琓!lg=.i;yF=OEՠf8"@HS9ֵ,ck}UEy-(Zqzs>{ 6U~,Tdl4˝Yc:˧ oyQmԶ/$$\H/˓8;q;{W~,<úd\z2Z !׎%ęCwkq1iY @ AM>9b$;4 t#\sJRE]KV7  %NԐ A,KPʧʹcž3KJizsЫ xW*9 n(ҤnȌZIo῎7 gӭJ23G$s!ϭ['4ȾOIr%˳ ,FNFP>qSvӖRA̖֦?~ŻP Vvsz#Ӯ?IYivФUU bwdBl[QV5;S$2zc^==e&zZ"s89XR ~cڲn*6k~UPqY78'Ӡ[.gȿ|;_CA+r@1ӌ\Z瞕)ݡW.iAAȮZczuD)/qL1F=/ զ!; tۙO$FI$9p+-, ּZ=j:JE]'$|`qq] k6^E8Lָwzzd8⟈H\r֟jEfNB}k"{Ũ jR@浾C/̂RSءfXe;I{YuJ?~qj?[EVo})uf*,f@ШkngKAqa$D1Flq_`FEνzo>S2l./Sn?$QMUһL7R'`J*j:7s$qrR$w>  8HH񸾊U[6{<#V3qik1♯~&%RJ%VC$yx=nwiq ;N81Ǻ#@T 2?Jf;~ނ^{>. %֪p5Xy#IJҰًg?hjRWۡkHO}V.jmVKrRiϹ\٧2Q[є8Np }S_nc-Ʃ5D |9?{}eV+tml⸗IXG#iY%Br찖-T*zqQQ%iGK/f8,TCt#vo>7#X#ݥ!Kdoaּ}NyY\]XfP6kbsE`#q[ئvc$$亐Xd3ݍssyk:smu!@$0 s8pe$a.Y5eWZ3IYX<>=D~@GlO{iz 2;]9TQ3îJw; bG'nH0G6ʼnÀXf @m,+Gߵ\0Re'=lhiZ\U֬D^VLY xB },BYb.ڱf"ʦX槄8Ҷl>&Ih2=3Y|~n@d(X??њ!^o9Y \Y;̬v0,P2) yxp/%7m἖\jSi?o\pz/Qų7y֎G~m~KVU:o8 ɿW/gĿ 7MGyU_Jߒކt8qyaA9d9[YFR~BʳiclGnܶ< qGRԒ{]\LYȸ 3^8gCkca jI +L2>rp6MMGLN^νmi_jF;{=ͶFfR';sVŎ:jЍy׍򜃑 Lg> ?h6Ybl"9bOdT 9\Gk;k@.\'ǠgCN~EЊMOv-VqĻcqشc榽J*9M,iw ek28G5ŻN-5+\o;y@tx sj.GI"XI`xpxe:q Jڞ^OH9hּI| Gp5-{žO|QmWj:x}<>|j"/#Yܸ ryoםjMC<O p=8Njߺ΅v'w]^U 7g+kLAӌswSO[Ե+s;k{`噐1٨+u,L99vi\S+0zߊH`pyM:SG mkHjB'MJ/WpN(^KqX,lm}>QB3ɞ!M;^M7,vDG3Ce%' }UA+ IfRx㿷jwvkCͱۭzyOϢ}DyI>W a1OJ}o?=^)~q3Cnu6$hr {y@纰~u3s 34*TC7'k97 |vNē֍ B/ c 8P Y:iG"<:5.WZZ͕.'&tz#X oV.x;A8#Z1x3Ğ(P6$rʊdžFގ00s#8~FKK]NB4[x-4\Ăv9!pňK6gM5sRm OjLeH&66,IE2Rm8;OCUSR4B-GבIۓY瓀*yS\珼Ϥ?u#/ Y|1;K2=C:Ni|WFekomfݝ9a./ usj"g~4jt n#KK˵9O4ۋjW^z/OO't^u$m|1;+[ro׏s޸S~Fѷ[xD~ Լk,F9dx'X }RXkE,erzP F!A\y/U3V}jJG ▬dxF`Ӟ_?\7pEAۛ"B&@"#V(xMe\\.V O;Dݣ9$(f+S\_ˣ4I&.*A'ȧ1b$ ״zWwmr`̃qk|G-?W+1W r$1ƽnGYm[]4G^b-RcZX EЂwKY0`\?֊v:M^slin.UTD&I p$K7 YW2*kp,]H!r1s#9<9?Z%yẲ1oiNFI$r/y4RmP7NKx؁8񓷲I5(h V0=nc1ڟ/+&*|Xީq xkY-4.ݠ2-fUNIki@z>\?m>kK1pU@<(@#$fbU)Ykψ\'}Ʒ<9JT+Inpr a?5_]ׇ-L,PC0/y?{}k真"^GL z(ZzͭHo, O#|#mdt~TIBsەi.:/Zӱ1V%1F Jm*|푌ܮ8+}4L^&G)s.+O:ė PO3uGmFQ>yjBZRttzme1BdU +b }Z D"LBt{7O+rfxw9=+x2n϶02e85ȕ亻]ջxzBcu/p&n`uMNAY&Ot+%'S?̀)FP8RO+,5uJU-̚;y=nܣGүkztO&fcImYB"ӵH@yIbv1$!ȶ" )0l@Mx93y6IgkY`3l$-]5#[zdO+)oStu*y[)$2qktWC>ΟWJG/_V:fou2kB;[hKH^95)]yG1ivj I\B=A+̵ωRְEsrFۀn%<{WL`94և^0隆Ueg7܍UR#<8^esia080ailXdF$nx(`e7/[k%p:Ē뗭t5Uf !ʀ68 09Z]GƴH-l%o cl6pdgMnPo1NIEivܤAU9$Le8j"F$JJlz1՜On=zc;e#kÑ~~*O5)_dwGKx[i98 F['{iFO/?*qt֝},\mPGִb6oi$a.KmpqޮSQǓX} Zd7F8댑ה7,f|iɫgiv5$Kj-\0)>/Abwyo5V!$vP@e)z?ݷ>ĺܒiWRAg|eefprPd 0l -I[{xe}ݫb~MwR~^gׄ=%s>4x{XI#6Tnw]f4QC=Sy,Y&w@c,ObxmA_|ObB[.%1k2h篆j c6|M]kw f n*$b;r*\YͶcfio%oܕ̎bFNqI:c'H%y$rT1uL~^!,:f(DVʒut'F_2/&ik׳dI!f@R|7anlӤo+mҡ9RNEsήa/ODJo1@İ۰d#?0*ﵛ{inݺ,q9he'wRJz4w/]@'h< 67JV+%4 2Fc,m(l򒧯=xFXk6*Vw=46zTI5uBZI]aIkײZG_ss>GҾe-k5?=i'_g7[ǻկ) 2 dá.  try>g8#"*+լCi KmF.YCB(zv<)R 0R-[_^%u]9C C!|׶*Լ^;ʱʜR 9O5!GS)^Si|ލz]_?:91ý5TJ53iWBȬ"Bp< CW6jz$DSpIѓc7G~.XN86V NvKӊZZw|D-dnm5䴜9b?zGF=Xּ4_oOnqi"˒l|kEh~T@'>f?xkχƛrKm*cD 6P#ڑMsKDmgۛ)Ǜ;Xϥygl +(T~4ӥoam3l I? x|!\ޚ~3{ }Pn6+&,;T1ʃR7EqSt&CZ PI,e̤.$R@@`UDN;I{Co Kk-.eȵYXڇ*I#zNqj[Vw*f8UQʜ3F/FK[_r7W?:2F8OK7S;s+ɞnA1E/aQ䶹$DV4*C1 N'f7b/zH/bqeqLzwMol8.-ȧ?XF -xb>ڹ6 OΉxṈx 7b|T(;v_Cz.}y6m5,6a+[*U(aك5vI|* $GkndGw<ÚݖmZ{9;EbwCԕ["]ԣ}?$s?چBDv8fj%!ÕP j&:("(Vݓ5k[](9'2 OO>/0w94-[IU`g [_B=)lc8־ 6}_m:/ؚ4e#䄆;{e'k&kҼvoN3i[#>~dZ/s8&)x$+HǕvtC}+z֩ep;gL}MD!w$C 9ɮd_C.|_o^XM,Rܦ+;Yxf^Lv$gd. V&2a2]FMH+jQ+_4gE{C68By]%K{wqcߨ㯽tgQ79z$ŬqSUr1&0zz_KKh4Z ?z^S; >',LA BHrwR4q6ahߧֻ iݍk+u# :b#SBTˍŏXtW̪-gQCq׏ƾs\n 9Lj7Ó?_CZV=>)]<ܫ@|^~=eӵ qf=՗{z3SH.)혫0%%NzWRKo:>5om-pE20%«悏t,wĪ||Axz*J^Y\ xOCFrzŵ]:kƣ-vD?\gn_ g}Kl\EەE,q]]K/t[KYm7RL~V]|ʛ /$]JU*W*eT2;_X{{:?w+ S슫%i^dc;+JZd"/XKmglk^[Oj:w<~]sA;iX3mX8WSq~{YQAYһ2+ɫҤ1 RGZ5>- u[+}7 K{XmiKƮdVf "N&aS۪*1͇7=NMGoƆ")n5xې\5#kbuϹ]lVix~ծY34H\<u }6Oky-o>tOyʿ$9VNR՛2|7mΚ۸>bHdOB΍ fuOcS|D83Y>/4\$CHi"l2Kq&5oLb.Ό"mc<ܒ^qE1xs{-NMNu,oopcF\$# NX=? t1sz+_0fO¶~|?VJk:!ȹu]?+Ld>JyjHV q8ՔWSJOzvrX͋Fb{$g. vR,ex4qFe1ͶhG&7>c7}uosmY.BW05%5i!KK8|-[21 ㌞~ xw#Oyį[4ߚ7Dj>u;N3sW 73ez2#'yegfb,kʤ\CdzFIFc Wi"8|KBJ'_i'nm;xJZ/vV27/(̐Gs'%wnPX`G:Fml-"@=xgIy l>n ?.x7߈K}7\AM1dcNTy$7t?ѯ!eѮYKunOƽ.m,(&}- *KO qoVF' _jD@$ּ,o_OS UξQ:ŴmU3c$d8V<_iȋmjBJ2.yV8yjCEk[}ZKG66vBC:9 p}>J~r٫*iq&#^dRVfi|Ƕvc_]ndKZVhev#H#АsK DƞY-=^ٴZ9"`T˷+ׂ{=4ΖK-R{f><֒-}.FVWDWdg-#9qK}61# z]ӑΓH}i?wODiN'OTg?Z\&21X#Jc95,[?RyVCP;Ұ6ǫhu , TC1ۑt3V%Kwv[60t#p9Ћ驱k#=lb8Uǿk~*$i9wy9+*ZMU{9O mE$X"շmkɐT0*qI{pk֮ K| <)U$=HjN6sootI4V-y(R=8?C`x?,RB7 ES9}㉴?mj^Ա=p3L5 6m KT]+LKJ1ځ>wm߄Jɍ1;o$y06r ]Vf7sA֫w57֖k@N'p^ZIOY@]q[̴_m_?Jڴ%o[RN2?sm#(3_Kksh!c{k7I3W,91#yĿlwMS;"3+[? =ƷKgH#/zuVNI#I] Ou=sQ>%T~*%CEυX9ڠgj"/:ܠn[՚F ּZRGd_O1H@9>Z#nԩl7㺳yςm?~!|Vox\SA|zqT _ '[ZuVR9#h!Sl v[r[$Uq`ۑ5(7</8(Ef{qIϨnGĭ%qk+B`^ Vz4y@YQ) sH <슦V[k4n^?3%󓓗$峸,?/|kK_kv1+<8&`7gnT#\.yo 2@|jcB| 3ddn~K8֒ӣ=\a]]#Y^x}ApJc|=^uj|~%_=`fm*7CCg=XWssq42T:@e9pwqJ9m}?3ZrTl.վ#2 W\H#]sycZpYMuZ}/aKˈhcI5r% 6y񜏚p8#+#$ߡ.3DRMxeei66,B{HUIvZ/\ׯ&{[7si2L[Jգkiacڌ2@$} AOh:]GӚzQn]/|)9%ٝS5Qpܠ)D6׫w  + 䚖ؔ)jZmŬv$bg `CyOq.oqn۬=Ktkc':t0+&[#nr::}%`4 RȻhTB@-=qִ5 "5QTJutb>2 AǞ[_빡cGPkF7N Q]Z:Z" ,3%X;wv_~c`[e!xm]zOy UI;9W?IQmy܊i2yRebn'i?{{+jWaӴyJ! ǜpTRCQ"8=Bh^A@0Oɷl[Hg% 3Hgŝį>OS W1^j:|jbyVu84QmB#s{ ' QV|_\0z]]Gg:e\G,| ۪>{/|Z(Cz]t'.i&:JQ9"-S8R^\~ԚR.(hA=>q]k ׉ȯ>ۨV{o?9>~~vf<=y?EulP[֞׳ܙc(Щ!~[϶df.?ϵrӷ!5h]?H#v:ҵy7׭SjB'`p^@Tp CLn~:+47fVOG Na\Wt#ʬywJ7hCIӉq 9 NzZ.}ZH[{[`8Ċ1"*)F:OrRS4֊(U0:x[vS/U2 L 99] v^N:;;M|ՙv20XcCI:vgul2ƛlL<1}8kE(7pvc ű'F?1ָm48JJT2'8}+A n7玿nv&b0\n\הxP/9v##4QOEW*Vbms6eЯnVVp4b}O3^xV kzլ},:1ᗺM[w[baq$ P:`^=/uλp\%B$1:S^|̗xhmT $ws^[\YrD|>ֺy_7r&G /.[k9&M?X[fHdY7@l|z׼wJ^o>hq<,$Nѷ;Ӟz5]rG=Rpnɣi&Ko4n1xW d95i5Əh7g/`{D;rTVci/Gm}4+A{a*!VvP9<6F'xEyQCnr@U7<[ n2-ݳ+ +" Ơo[Pr۹bA Ϯ6駥zlio܄l;.1GEzuA-=EΛ[J5uDq짌+'m-/Í]B,B#λh/C̦gx]T) I;ۈ5y9ζl[~DSQ/=0s׼u;뱚L'⻤&8Ե=,G-?f=\muZ܂eG8JG f$ccgI#O>!Zߴ;B-1659N2wc{ eb'r~^m}8#I˒Nݫ/Tf dyfrbbt9qo¼YH( qƼ|Wx7z_]]yKHɍ'9 *mb<' u߈4/x;hVi,[ĕX7# y8w!:|V JVu_MK5A=~z;o =cf(,ŭm)g$"Gp>3xPI% nymgs'=46pל]L*iFq.5<EN<ͣ'U[LU\G=:WFwXA=9gciW}J'h#Vz]dR/A0s=hKtQ]I<}=qq%#A3`H1y)=]5CQu.R)rq CyT|K|UjԀ:]JCkұʒz{zƺ\C!p: ZS)܂7Hnʼ6vZEGlfbf(;5k*ݺ3~ ױ瞿!57L#ukFErN9[{˚,g}n-y$+dd$WX7F4[MVBE6(.%KnobLnHXҹ'hUj|͠c_Z_B"aTP`:W^axcY(a ΊIm 2[hh劵'w]VDclF tVqjR)-_a;F299)+;ҽϜK>mBm3˵c ?`fhPU1Fr2=+Ѝsȕc"dw^NR뚅ŤVd"Hs$&bE\( %prnΚvI6}gӇؠ[2I5 Gw uúY<QMGBA#93p{!Y(4yXD'hRQ>ШIly8{qSSv`<4كV!aa,l̺ԭ8I ̾w^lWڌ7E\FpϒO}N}뺂/%yrP$k7m'fzQqs&|gc(*8⮝eeC?5ԉHAR[kP-r:vK5F +{(2* SL 61UZ^^j_>:DU㘗l*Q"lpI'.!M1K]Q.+rJɒ' dѕqf:&>/]BCXKo9ԒWg?^Eb\B+nFW8;_Θ;;#|A>V3Ҿb+@|;8dĞLȶsN K1 9妹ަm#3G]w7[-ͦ[ *Y#pGnbD\.1Y[ω5T$Ι 4kHwrMHbQI4Ӱsk+Y>_=4Iy9I#G UI?5_/T3Īh/|U X14E?_ iRG]fuWr( }?Wۭi d2+iM^+Ծ.@$VXeso@s@{_ K.$ UHmx>î/N62j=cu΃59/9 ( nnGFG,2ORp>Ԣ%¾5K$}+d%=Fk'D=UBtĸ` $R?01=mW DuqXN>!};gL]q+kBRS-o )c? % opjߩR@]8Hn>'v#~4+guH y8$*ȿ\~5Vv5ƦY;4ȸG]NXJZhC]#'gZSIJ&Չ'uQ(y?)=q\v4H<:jsd2By quk2arlA֫*]ti䅙.6Aq$ҶLR2F2r]F;OBzU^L#!(,~])^%A5%txdFxKwtP_!{18ͥ]Y,AUvbcsZTkWQzv_Y,W:2 RRs=نr(l@`EO! 7꾃qie8nmNHǑ‘O:hs.Uon?g#XQ#Eq &y@9{QMb^yi:Zw~cn68plD<$dN}+"`2D[~ֳ/J!}3Y͝$EIU~ezs^g Rݣ9VMZ5exMq.J[ =^eGxJଗ6}/W[э-h$i邪8Q'aY>&|>HXN&"6O!=2==s\WwQ$MF_V=AYobؾ[d;T'<'Bq,R+xPXg<Q{XB g,LNA覹g*5~B}Nw/rM+SE+.ë*ఄUF6ֽ$LJ:8܏T?O ?Qk\ܞF=o˨j_6UA{X܀ v2ЯŸ?df Zk~L(VKX;ziм)},`m%e\qraׇt=/úVMv 苍?Z'm}r;s_"|rd.%b=bp8CJ>k4Nz'ĺ'|yWYJbr&3c0˕'QqsDwG{)_)19$}X rS=*)(S~'~ЯFjѻKn+ Hc BxF2n uG|)~Nnmy$Gf A 2cx2k}B@K5l75I3oP%cLG'Xُ+|;=e{Y؋㓷eizwqCyWS&I@4QdKr2Not{C[ sDm qJܿ4a{I<33J#y+!ʍg?DŽ|c/Yl͒wVR8=r O= )qc Gdc{P Q%BA~Bĺ|K57?xa;q=88VO}ՋiEٟnG}G{jw\3 v+0^|-$Wd3&=돥q㈳ubVZA9խvxdDpU#߁_nYK}9![@*$iuSRI\Ys<|-uOɻDP(WZƥܼ2dP7F8 ^>[c2]-V}'AT8[^٦S'[?-,+9#<`<ѱF"5/zFx5kB͕[~<3W]k,!n/llȮVu^ps!?$ۓ$?]5-U,~Dc}ϖ0 0 5 0 5 5 0 5 0 01 1 2 1 2 2 1 2 1 16 6 7 6 7 7 6 7 6 6')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('0 0 5 0 5 5 0 5 0 01 1 2 1 2 2 1 2 1 16 6 7 6 7 7 6 7 6 6')):0 SRID=4326;MULTIPOLYGON(((0 0,5 0,5 5,0 5,0 0),(1 1,2 1,2 2,1 2,1 1)),((6 6,7 6,7 7,6 7,6 6))) libspatialite-4.1.1/test/sql_stmt_tests/makeline7.testcase0000664000175000017500000000031312163502134020740 00000000000000makeline7 :memory: #use in-memory database SELECT MakeLine(GeomFromText("POINT(0 0)"), "world"); 1 # rows (not including the header row) 1 # columns MakeLine(GeomFromText("POINT(0 0)"), "world") (NULL) libspatialite-4.1.1/test/sql_stmt_tests/collectextract6.testcase0000664000175000017500000000030712163502133022174 00000000000000Collection Extract - Bad blob :memory: #use in-memory database SELECT CollectionExtract(zeroblob(4), 0); 1 # rows (not including the header row) 1 # columns CollectionExtract(zeroblob(4), 0) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/collect50.testcase0000664000175000017500000000130212163502133020654 00000000000000collect - PolygonM, PolygonM :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POLYGONM((1 2 4, 3 4 2, 3 2 3, 1 2 4),(1.5 2.5 4, 2.5 3.5 3, 2.5 2.3 3, 1.5 2.5 4))"), GeomFromText("POLYGONM((4 5 3.2, 1 2 4.6, 4 2 3.1, 4 5 3.2),(2 3 4, 3 4 1, 3 3 1, 2 3 4))"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POLYGONM((1 2 4, 3 4 2, 3 2 3, 1 2 4),(1.5 2.5 4, 2.5 3.5 3, 2.5 2.3 3, 1.5 2.5 4))"), GeomFromText("POLYGONM((4 5 3.2, 1 2 4.6, 4 2 3.1, 4 5 3.2),(2 3 4, 3 4 1, 3 3 1, 2 3 4))"))) MULTIPOLYGON M(((1 2 4, 3 4 2, 3 2 3, 1 2 4), (1.5 2.5 4, 2.5 3.5 3, 2.5 2.3 3, 1.5 2.5 4)), ((4 5 3.2, 1 2 4.6, 4 2 3.1, 4 5 3.2), (2 3 4, 3 4 1, 3 3 1, 2 3 4))) libspatialite-4.1.1/test/sql_stmt_tests/collect38.testcase0000664000175000017500000000065212163502133020671 00000000000000collect - LineStringZM, LineStringM :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("LINESTRINGZM(1 2 4 1, 3 4 2 2)"), GeomFromText("LINESTRINGM(4 5 1, 1 2 2, 4 2 4)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("LINESTRINGZM(1 2 4 1, 3 4 2 2)"), GeomFromText("LINESTRINGM(4 5 1, 1 2 2, 4 2 4)"))) MULTILINESTRING ZM((1 2 4 1, 3 4 2 2), (4 5 0 1, 1 2 0 2, 4 2 0 4)) libspatialite-4.1.1/test/sql_stmt_tests/fromgml37.testcase0000664000175000017500000000067012163502134020707 00000000000000FromGML - poslist polygon, bad contents :memory: #use in-memory database SELECT AsText(GeomFromGml('foo')) 1 # rows (not including the header row) 1 # columns AsText(GeomFromGml('foo')):0 (NULL) libspatialite-4.1.1/test/sql_stmt_tests/casttoxy3.testcase0000664000175000017500000000034212163502133021026 00000000000000casttoxy - POINT :memory: #use in-memory database SELECT AsText(CastToXY(GeomFromText("POINTZM(4 3 10 20)"))) 1 # rows (not including the header row) 1 # columns AsText(CastToXY(GeomFromText("POINTZM(4 3 10 20)"))) POINT(4 3) libspatialite-4.1.1/test/sql_stmt_tests/wkb11.testcase0000664000175000017500000000065612163502134020023 00000000000000Hex Wkb: MultiLinestring XYM (single line) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("MULTILINESTRINGM((1.2 3.4 12, 5.6 7.8 13))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("MULTILINESTRINGM((1.2 3.4 12, 5.6 7.8 13))", 4326))); 01D50700000100000001D207000002000000333333333333F33F3333333333330B40000000000000284066666666666616403333333333331F400000000000002A40 libspatialite-4.1.1/test/sql_stmt_tests/casttotext10.testcase0000664000175000017500000000036012163502133021430 00000000000000CastToText() - INTEGER, zero_pad :memory: #use in-memory database SELECT CastToText(123, 10), TypeOf(CastToText(123, 10)) 1 # rows (not including the header row) 2 # columns CastToText(123, 10) TypeOf(CastToText(123, 10)) 0000000123 text libspatialite-4.1.1/test/sql_stmt_tests/ring6.testcase0000664000175000017500000000025512163502134020116 00000000000000ExteriorRing - float input (error) :memory: #use in-memory database SELECT ExteriorRing(3.14); 1 # rows (not including the header row) 1 # columns ExteriorRing(3.14) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geomfromtext29.testcase0000664000175000017500000000056412163502134021767 00000000000000geomfromtext29 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONZM(MULTIPOINTZM((0 1 9 7), (2 3 9 7), (4 5 9 7)))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTIONZM(MULTIPOINTZM((0 1 9 7), (2 3 9 7), (4 5 9 7)))')); GEOMETRYCOLLECTION ZM(POINT ZM(0 1 9 7), POINT ZM(2 3 9 7), POINT ZM(4 5 9 7)) libspatialite-4.1.1/test/sql_stmt_tests/maxz4.testcase0000664000175000017500000000037212163502134020134 00000000000000MaxZ - Linestring XYZ :memory: #use in-memory database SELECT ST_MaxZ(GeomFromText('LINESTRINGZ(1 2 100, 3 4 103, 5 6 101)')); 1 # rows (not including the header row) 1 # columns ST_MaxZ(GeomFromText('LINESTRINGZ(1 2 100, 3 4 103, 5 6 101)')) 103.0 libspatialite-4.1.1/test/sql_stmt_tests/addpoint16.testcase0000664000175000017500000000041212163502133021034 00000000000000ST_AddPoint() - not a line :memory: #use in-memory database SELECT ST_AddPoint(GeomFromText('MULTIPOINT(0 0, 1 0)'), MakePoint(1, 1), 1) 1 # rows (not including the header row) 1 # columns ST_AddPoint(GeomFromText('MULTIPOINT(0 0, 1 0)'), MakePoint(1, 1), 1) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geomfromtext34.testcase0000664000175000017500000000061412163502134021757 00000000000000geomfromtext34 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1, 2 2))))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1, 2 2))))')); GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1, 2 2)) libspatialite-4.1.1/test/sql_stmt_tests/collect27.testcase0000664000175000017500000000055612163502133020672 00000000000000collect - LineString, LineString :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("Linestring(1 2, 3 4)"), GeomFromText("LINESTRING(4 5, 1 2, 4 2)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("Linestring(1 2, 3 4)"), GeomFromText("LINESTRING(4 5, 1 2, 4 2)"))) MULTILINESTRING((1 2, 3 4), (4 5, 1 2, 4 2)) libspatialite-4.1.1/test/sql_stmt_tests/compressgeometry56.testcase0000664000175000017500000000102112163502133022642 00000000000000CompressGeometry - GEOMETRYCOLLECTION M (2 Linestrings) :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONM(LINESTRINGM(1 2 10, 3 4 11, 5 6 12), LINESTRINGM(7 7 11, 8 8 12, 9 9 13))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONM(LINESTRINGM(1 2 10, 3 4 11, 5 6 12), LINESTRINGM(7 7 11, 8 8 12, 9 9 13))", 4326))) GEOMETRYCOLLECTION M(LINESTRING M(1 2 10, 3 4 11, 5 6 12), LINESTRING M(7 7 11, 8 8 12, 9 9 13)) libspatialite-4.1.1/test/sql_stmt_tests/removepoint9.testcase0000664000175000017500000000041712163502134021531 00000000000000ST_RemovePoint() - BLOB index :memory: #use in-memory database SELECT ST_RemovePoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), zeroblob(4)) 1 # rows (not including the header row) 1 # columns ST_RemovePoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/casttoint2.testcase0000664000175000017500000000026012163502133021156 00000000000000CastToInteger() - BLOB :memory: #use in-memory database SELECT CastToInteger(zeroblob(4)) 1 # rows (not including the header row) 1 # columns CastToInteger(zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/envelope6.testcase0000664000175000017500000000023312163502134020770 00000000000000Envelope - non-geom :memory: #use in-memory database SELECT Envelope("hello") 1 # rows (not including the header row) 1 # columns Envelope("hello") (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geomconstraints24.testcase0000664000175000017500000000075512163502134022463 00000000000000geometry constraints - GEOMETRYCOLLECTION :memory: #use in-memory database SELECT GeometryConstraints(GeomFromText("GEOMETRYCOLLECTION(MULTIPOLYGONM(((0 0 0, 1 0 0, 1 1 0, 0 0 0)),((0 0 0, -1 0 0, -1 -1 0, 0 0 0))))", 4326), "GEOMETRYCOLLECTION", 4326, "XYM") 1 # rows (not including the header row) 1 # columns GeometryConstraints(GeomFromText("GEOMETRYCOLLECTION(MULTIPOLYGONM(((0 0 0, 1 0 0, 1 1 0, 0 0 0)),((0 0 0, -1 0 0, -1 -1 0, 0 0 0))))", 4326), "GEOMETRYCOLLECTION", 4326, "XYM") 1 libspatialite-4.1.1/test/sql_stmt_tests/geojson2.testcase0000664000175000017500000000072112163502134020615 00000000000000GeoJSON Polygon :memory: #use in-memory database SELECT AsGeoJSON(GeomFromText("POLYGON((5 5, 6 5, 6 6, 5 6, 5 5))", 4326), 2, 5); 1 # rows (not including the header row) 1 # columns AsGeoJSON(GeomFromText("POLYGON((5 5, 6 5, 6 6, 5 6, 5 5))", 4326), 2, 5) {"type":"Polygon","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:EPSG:4326"}},"bbox":[5,5,6,6],"coordinates":[[[5,5],[6,5],[6,6],[5,6],[5,5]]]}:0 # trailing ":0" required to avoid truncation !!! libspatialite-4.1.1/test/sql_stmt_tests/collect35.testcase0000664000175000017500000000066112163502133020666 00000000000000collect - LineStringM, LineStringZ :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("LINESTRINGM(1 2 4, 3 4 2)"), GeomFromText("LINESTRINGZ(4 5 3.2, 1 2 4.6, 4 2 3.1)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("LINESTRINGM(1 2 4, 3 4 2)"), GeomFromText("LINESTRINGZ(4 5 3.2, 1 2 4.6, 4 2 3.1)"))) MULTILINESTRING ZM((1 2 0 4, 3 4 0 2), (4 5 3.2 0, 1 2 4.6 0, 4 2 3.1 0)) libspatialite-4.1.1/test/sql_stmt_tests/fromgeojson9.testcase0000664000175000017500000000062212163502134021510 00000000000000FromGeoJSON - PointZ with SRID :memory: #use in-memory database SELECT AsEWkt(GeomFromGeoJSON('{"type":"Point","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"coordinates":[-1,1,2.3]}')) 1 # rows (not including the header row) 1 # columns AsEWkt(GeomFromGeoJSON('{"type":"Point","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"coordinates":[-1,1,2.3]}')):0 SRID=3003;POINT(-1 1 2.3) libspatialite-4.1.1/test/sql_stmt_tests/geomfromkml10.testcase0000664000175000017500000000056712163502134021557 00000000000000From KML - Multigeometry - Point :memory: SELECT AsText(GeomFromKML("-122.0822035425683,37.42228990140251,0")) 1 # rows 1 # column AsText(GeomFromKML("-122.0822035425683,37.42228990140251,0")) MULTIPOINT Z(-122.082204 37.42229 0)libspatialite-4.1.1/test/sql_stmt_tests/ring25.testcase0000664000175000017500000000070412163502134020176 00000000000000InteriorRingN - POLGON Z third interior (error) :memory: #use in-memory database SELECT InteriorRingN(GeomFromText("POLYGONZ((0 0 0, 0 4 1, 4 4 2, 4 0 3, 0 0 0),(1 1 2, 1 3 2, 3 3 2, 3 1 2, 1 1 2),(2 2 1, 2 3 1, 3 3 1, 3 2 1, 2 2 1))"), 3); 1 # rows (not including the header row) 1 # columns InteriorRingN(GeomFromText("POLYGONZ((0 0 0, 0 4 1, 4 4 2, 4 0 3, 0 0 0),(1 1 2, 1 3 2, 3 3 2, 3 1 2, 1 1 2),(2 2 1, 2 3 1, 3 3 1, 3 2 1, 2 2 1))"), 3) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/dissolve11.testcase0000664000175000017500000000051712163502133021063 00000000000000dissolve - POINT ZM :memory: #use in-memory database SELECT AsText(DissolveSegments(geom)),AsText(DissolvePoints(geom)) from (SELECT GeomFromText("POINTZM(1 2 4.3 3)") as geom) dummy; 1 # rows (not including the header row) 2 # columns AsText(DissolveSegments(geom)) AsText(DissolvePoints(geom)) POINT ZM(1 2 4.3 3) POINT ZM(1 2 4.3 3)libspatialite-4.1.1/test/sql_stmt_tests/fromgml30.testcase0000664000175000017500000000072212163502134020676 00000000000000FromGML - MULTIPOINT, single pointZ :memory: #use in-memory database SELECT AsText(GeomFromGml('1,2,3.2')) 1 # rows (not including the header row) 1 # columns AsText(GeomFromGml('1,2,3.2')):0 MULTIPOINT Z(1 2 3.2) libspatialite-4.1.1/test/sql_stmt_tests/addpoint9.testcase0000664000175000017500000000036412163502133020764 00000000000000ST_AddPoint() - TEXT Point :memory: #use in-memory database SELECT ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), 'alpha') 1 # rows (not including the header row) 1 # columns ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), 'alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makepointzm-null2.testcase0000664000175000017500000000032612163502134022460 00000000000000makepointzm-null2 :memory: #use in-memory database SELECT AsText(MakePointZM(26.0, "world", 0.54, 18.63)); 1 # rows (not including the header row) 1 # columns AsText(MakePointZM(26.0, "world", 0.54, 18.63)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/wkb2.testcase0000664000175000017500000000051612163502134017736 00000000000000Hex Wkb: MultiPoint XYZ (single point) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("MULTIPOINTZ(1.2 3.4 100)", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("MULTIPOINTZ(1.2 3.4 100)", 4326))); 01EC0300000100000001E9030000333333333333F33F3333333333330B400000000000005940 libspatialite-4.1.1/test/sql_stmt_tests/collectextract13.testcase0000664000175000017500000000043612163502133022255 00000000000000Collection Extract - Point extract from linestring :memory: #use in-memory database SELECT AsText(CollectionExtract(GeomFromText("LINESTRING(1 2, 4 2)"), 1)); 1 # rows (not including the header row) 1 # columns AsText(CollectionExtract(GeomFromText("LINESTRING(1 2, 4 2)"), 1)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/compressgeometry12.testcase0000664000175000017500000000067112163502133022644 00000000000000CompressGeometry - MULTILINESTRING :memory: #use in-memory database SELECT Hex(CompressGeometry(GeomFromText("MULTILINESTRING((1 2, 3 4))"))) 1 # rows (not including the header row) 1 # columns Hex(CompressGeometry(GeomFromText("MULTILINESTRING((1 2, 3 4))"))) 000100000000000000000000F03F0000000000000040000000000000084000000000000010407C05000000010000006942420F0002000000000000000000F03F000000000000004000000000000008400000000000001040FE libspatialite-4.1.1/test/sql_stmt_tests/dissolve13.testcase0000664000175000017500000000056212163502133021065 00000000000000dissolve - LINESTRING Z :memory: #use in-memory database SELECT AsText(DissolveSegments(geom)),AsText(DissolvePoints(geom)) from (SELECT GeomFromText("LINESTRING Z(1 2 4.3, 4 1 49)") as geom) dummy; 1 # rows (not including the header row) 2 # columns AsText(DissolveSegments(geom)) AsText(DissolvePoints(geom)) LINESTRING Z(1 2 4.3, 4 1 49) MULTIPOINT Z(1 2 4.3, 4 1 49)libspatialite-4.1.1/test/sql_stmt_tests/fromewkt39.testcase0000664000175000017500000000136412163502134021105 00000000000000fromewkt39 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(POINT(9 9 9 7), GEOMETRYCOLLECTION(POINT(0 0 9 7), LINESTRING(1 1 9 7, 2 2 9 7)), POINT(8 8 9 7), GEOMETRYCOLLECTION(POINT(3 3 9 7), LINESTRING(4 4 9 7, 5 5 9 7)), POINT(7 7 9 7))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(POINT(9 9 9 7), GEOMETRYCOLLECTION(POINT(0 0 9 7), LINESTRING(1 1 9 7, 2 2 9 7)), POINT(8 8 9 7), GEOMETRYCOLLECTION(POINT(3 3 9 7), LINESTRING(4 4 9 7, 5 5 9 7)), POINT(7 7 9 7))')); GEOMETRYCOLLECTION ZM(POINT ZM(9 9 9 7), POINT ZM(0 0 9 7), POINT ZM(8 8 9 7), POINT ZM(3 3 9 7), POINT ZM(7 7 9 7), LINESTRING ZM(1 1 9 7, 2 2 9 7), LINESTRING ZM(4 4 9 7, 5 5 9 7)) libspatialite-4.1.1/test/sql_stmt_tests/geomconstraints10.testcase0000664000175000017500000000036712163502134022455 00000000000000geometry constraints - 4 arg, zeroblob 4 :memory: #use in-memory database SELECT GeometryConstraints(zeroblob(4), "POINT", 4326, "XYM") 1 # rows (not including the header row) 1 # columns GeometryConstraints(zeroblob(4), "POINT", 4326, "XYM") -1 libspatialite-4.1.1/test/sql_stmt_tests/removepoint14.testcase0000664000175000017500000000043612163502134021606 00000000000000ST_RemovePoint() - Z :memory: #use in-memory database SELECT AsText(RemovePoint(GeomFromText('LINESTRINGZ(0 0 1, 1 0 2, 1 1 3)'), 1)) 1 # rows (not including the header row) 1 # columns AsText(RemovePoint(GeomFromText('LINESTRINGZ(0 0 1, 1 0 2, 1 1 3)'), 1)) LINESTRING Z(0 0 1, 1 1 3) libspatialite-4.1.1/test/sql_stmt_tests/asbinary12.testcase0000664000175000017500000000122712163502133021043 00000000000000asbinary - MULTILINESTRINGZ :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("MULTILINESTRINGZ((0 0 0, 3 0 1,3 0 2, 3 3 3), (0 0 1, 0 3 2))", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("MULTILINESTRINGZ((0 0 0, 3 0 1,3 0 2, 3 3 3), (0 0 1, 0 3 2))", 4326))) 01ED0300000200000001EA0300000400000000000000000000000000000000000000000000000000000000000000000008400000000000000000000000000000F03F00000000000008400000000000000000000000000000004000000000000008400000000000000840000000000000084001EA0300000200000000000000000000000000000000000000000000000000F03F000000000000000000000000000008400000000000000040 libspatialite-4.1.1/test/sql_stmt_tests/casttosingle9.testcase0000664000175000017500000000040212163502133021652 00000000000000casttosingle - LINESTRING :memory: #use in-memory database SELECT AsText(CastToSingle(GeomFromText("LINESTRING(4 1, 3 4)"))) 1 # rows (not including the header row) 1 # columns AsText(CastToSingle(GeomFromText("LINESTRING(4 1, 3 4)"))) LINESTRING(4 1, 3 4) libspatialite-4.1.1/test/sql_stmt_tests/compressgeometry63.testcase0000664000175000017500000000066712163502133022657 00000000000000CompressGeometry - MULTIPOLYGON Z (1 Polygon) :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("MULTIPOLYGONZ(((10 10 77, 11 10 88, 11 11 99, 10 11 88, 10 10 77)))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("MULTIPOLYGONZ(((10 10 77, 11 10 88, 11 11 99, 10 11 88, 10 10 77)))", 4326))) MULTIPOLYGON Z(((10 10 77, 11 10 88, 11 11 99, 10 11 88, 10 10 77))) libspatialite-4.1.1/test/sql_stmt_tests/compressgeometry34.testcase0000664000175000017500000000044512163502133022647 00000000000000CompressGeometry - MULTIPOINT :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("MULTIPOINT(10 10, 11 11)", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("MULTIPOINT(10 10, 11 11)", 4326))) MULTIPOINT(10 10, 11 11) libspatialite-4.1.1/test/sql_stmt_tests/casttopoint4.testcase0000664000175000017500000000036312163502133021523 00000000000000casttopoint - MULTIPOINT, 1 point :memory: #use in-memory database SELECT AsText(CastToPoint(GeomFromText("MULTIPOINT(4 3)"))) 1 # rows (not including the header row) 1 # columns AsText(CastToPoint(GeomFromText("MULTIPOINT(4 3)"))) POINT(4 3) libspatialite-4.1.1/test/sql_stmt_tests/envintersects3.testcase0000664000175000017500000000034312163502134022046 00000000000000ST_EnvIntersects - bad arg #3 :memory: #use in-memory database SELECT ST_EnvIntersects(zeroblob(50), 2, "alpha", 3, 3) 1 # rows (not including the header row) 1 # columns ST_EnvIntersects(zeroblob(50), 2, "alpha", 3, 3) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/shiftcoords12.testcase0000664000175000017500000000070212163502134021560 00000000000000shiftcoords - Polygon XY :memory: #use in-memory database SELECT AsText(ShiftCoords(GeomFromText("POLYGON((0 0, 10 0, 10 10, 0 10, 0 0), (5 5, 6 5, 6 6, 5 6, 5 5))"), 1.4, 3.9)); 1 # rows (not including the header row) 1 # columns AsText(ShiftCoords(GeomFromText("POLYGON((0 0, 10 0, 10 10, 0 10, 0 0), (5 5, 6 5, 6 6, 5 6, 5 5))"), 1.4, 3.9)) POLYGON((1.4 3.9, 11.4 3.9, 11.4 13.9, 1.4 13.9, 1.4 3.9), (6.4 8.9, 7.4 8.9, 7.4 9.9, 6.4 9.9, 6.4 8.9)) libspatialite-4.1.1/test/sql_stmt_tests/locatemeasure14.testcase0000664000175000017500000000064712163502134022074 00000000000000ST_Locate_Between_Measures - MultiPointM :memory: #use in-memory database SELECT AsText(ST_Locate_Between_Measures(GeomFromText('MULTIPOINTM(0 1 2.1, 1 0 1, 2 1 2.1, 3 0 2.2, 4 1 4, 5 0 2.5)'), 2, 3)); 1 # rows (not including the header row) 1 # columns AsText(ST_Locate_Between_Measures(GeomFromText('MULTIPOINTM(0 1 2.1, 1 0 1, 2 1 2.1, 3 0 2.2, 4 1 4, 5 0 2.5)'), 2, 3)) MULTIPOINT M(0 1 2.1, 2 1 2.1, 3 0 2.2, 5 0 2.5) libspatialite-4.1.1/test/sql_stmt_tests/makepoint-null4.testcase0000664000175000017500000000033212163502134022110 00000000000000makepoint-null4 :memory: #use in-memory database SELECT AsText(MakePoint("hello", 42.3150676015829, 4326)); 1 # rows (not including the header row) 1 # columns AsText(MakePoint("hello", 42.3150676015829, 4326)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/asfgf5.testcase0000664000175000017500000000031512163502133020240 00000000000000asfgf - out of range second arg :memory: #use in-memory database SELECT AsFGF(GeomFromText("POINT(1 2)"), 4) 1 # rows (not including the header row) 1 # columns AsFGF(GeomFromText("POINT(1 2)"), 4) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geomtype21.testcase0000664000175000017500000000057512163502134021072 00000000000000geometrytype - POLYGON :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("POLYGON ((30 20, 10 40, 45 40, 30 20),(15 5, 40 10, 10 20, 5 10, 15 5))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) POLYGON XY POLYGON libspatialite-4.1.1/test/sql_stmt_tests/translate16.testcase0000664000175000017500000000037112163502134021234 00000000000000translate - text shift (Z error) :memory: #use in-memory database SELECT ST_Translate(GeomFromText("POINT(1 2)"), 1, 2.5, "alpha"); 1 # rows (not including the header row) 1 # columns ST_Translate(GeomFromText("POINT(1 2)"), 1, 2.5, "alpha") (NULL) libspatialite-4.1.1/test/sql_stmt_tests/garsmbr28.testcase0000664000175000017500000000037112163502134020677 00000000000000garsmbr - 361HN38 :memory: #use in-memory database SELECT AsText(GARSMbr("361HN38")) 1 # rows (not including the header row) 1 # columns AsText(GARSMbr("361HN38")) POLYGON((0.083333 0, 0.166667 0, 0.166667 0.083333, 0.083333 0.083333, 0.083333 0)) libspatialite-4.1.1/test/sql_stmt_tests/collect32.testcase0000664000175000017500000000060512163502133020661 00000000000000collect - LineStringM, LineString :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("LINESTRINGM(1 2 4, 3 4 2)"), GeomFromText("LINESTRING(4 5, 1 2, 4 2)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("LINESTRINGM(1 2 4, 3 4 2)"), GeomFromText("LINESTRING(4 5, 1 2, 4 2)"))) MULTILINESTRING M((1 2 4, 3 4 2), (4 5 0, 1 2 0, 4 2 0)) libspatialite-4.1.1/test/sql_stmt_tests/makeline19.testcase0000664000175000017500000000032612163502134021027 00000000000000makeline - POINTZ :memory: #use in-memory database SELECT AsText(MakeLine(GeomFromText("POINTZ(1 2 3)"))) 1 # rows (not including the header row) 1 # columns AsText(MakeLine(GeomFromText("POINTZ(1 2 3)"))) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makearc8.testcase0000664000175000017500000000027212163502134020563 00000000000000makearc8 - text radius :memory: #use in-memory database SELECT MakeArc(0, 0, 'alpha', 30, 60); 1 # rows (not including the header row) 1 # columns MakeArc(0, 0, 'alpha', 30, 60) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/compressgeometry14.testcase0000664000175000017500000000074412163502133022647 00000000000000CompressGeometry - MULTILINESTRINGM :memory: #use in-memory database SELECT Hex(CompressGeometry(GeomFromText("MULTILINESTRINGM((1 2 2, 3 4 2))"))) 1 # rows (not including the header row) 1 # columns Hex(CompressGeometry(GeomFromText("MULTILINESTRINGM((1 2 2, 3 4 2))"))) 000100000000000000000000F03F0000000000000040000000000000084000000000000010407CD50700000100000069124A0F0002000000000000000000F03F00000000000000400000000000000040000000000000084000000000000010400000000000000040FE libspatialite-4.1.1/test/sql_stmt_tests/collect1.testcase0000664000175000017500000000035012163502133020572 00000000000000collect - two points :memory: #use in-memory database SELECT AsText(COLLECT(Makepoint(1,2), MakePoint(2,3))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(Makepoint(1,2), MakePoint(2,3))) MULTIPOINT(1 2, 2 3) libspatialite-4.1.1/test/sql_stmt_tests/shiftlongitude9.testcase0000664000175000017500000000065412163502134022215 00000000000000shiftlongitude - positive and negative longitude linestringm :memory: #use in-memory database SELECT AsText(ST_Shift_Longitude(GeomFromText("LINESTRINGM(-170 0 1, -175 2 2.4, -179 4 3.2, 175.3 5 4.7)", 4326))) 1 # rows (not including the header row) 1 # columns AsText(ST_Shift_Longitude(GeomFromText("LINESTRINGM(-170 0 1, -175 2 2.4, -179 4 3.2, 175.3 5 4.7)", 4326))) LINESTRING M(190 0 1, 185 2 2.4, 181 4 3.2, 175.3 5 4.7) libspatialite-4.1.1/test/sql_stmt_tests/compressgeometry38.testcase0000664000175000017500000000055712163502133022657 00000000000000CompressGeometry - MULTILINESTRING :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("MULTILINESTRING((10 10, 11 11), (15 15, 16 16))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("MULTILINESTRING((10 10, 11 11), (15 15, 16 16))", 4326))) MULTILINESTRING((10 10, 11 11), (15 15, 16 16)) libspatialite-4.1.1/test/sql_stmt_tests/mbr11.testcase0000664000175000017500000000045412163502134020014 00000000000000MbrIntersects - Line + Point outside :memory: #use in-memory database SELECT MbrIntersects(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(2 2)")); 1 # rows (not including the header row) 1 # columns MbrIntersects(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(2 2)")) # header 0libspatialite-4.1.1/test/sql_stmt_tests/makepoint4.testcase0000664000175000017500000000027012163502134021141 00000000000000makepoint4 :memory: #use in-memory database SELECT AsText(MakePoint(-71, 42, 4326)); 1 # rows (not including the header row) 1 # columns AsText(MakePoint(-71, 42, 4326)) POINT(-71 42) libspatialite-4.1.1/test/sql_stmt_tests/linesfromrings4.testcase0000664000175000017500000000027612163502134022221 00000000000000LinesFromRings - bad blob :memory: #use in-memory database SELECT LinesFromRings(zeroblob(4), 1); 1 # rows (not including the header row) 1 # columns LinesFromRings(zeroblob(4), 1) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/st_y2.testcase0000664000175000017500000000034412163502134020130 00000000000000ST_Y2 :memory: #use in-memory database SELECT Y(MakePoint(-71.1043443253471, 42.3150676015829, 4326)); 1 # rows (not including the header row) 1 # columns Y(MakePoint(-71.1043443253471, 42.3150676015829, 4326)) 42.3150676015829 libspatialite-4.1.1/test/sql_stmt_tests/forcenull27.testcase0000664000175000017500000000033612163502134021233 00000000000000ForceAsNull() - BLOB - mismatching :memory: #use in-memory database SELECT Hex(ForceAsNull(x'0102a1b2', zeroblob(4))) 1 # rows (not including the header row) 1 # columns Hex(ForceAsNull(x'0102a1b2', zeroblob(4))) 0102A1B2 libspatialite-4.1.1/test/sql_stmt_tests/fromgml27.testcase0000664000175000017500000000053712163502134020710 00000000000000FromGML - non-WGS84 Point :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('1,2')) 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('1,2')):0 SRID=3003;POINT(1 2) libspatialite-4.1.1/test/sql_stmt_tests/locatemeasure4.testcase0000664000175000017500000000035312163502134022005 00000000000000ST_Locate_Between_Measures - invalid geom :memory: #use in-memory database SELECT ST_Locate_Between_Measures(zeroblob(99), 2, 3) 1 # rows (not including the header row) 1 # columns ST_Locate_Between_Measures(zeroblob(99), 2, 3) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/nrings5.testcase0000664000175000017500000000064312163502134020457 00000000000000nrings - Polygon plus linestring :memory: #use in-memory database SELECT ST_NRings(GeomFromText("GeometryCollection(POLYGON((1 2, 3 4, 5 0, 1 2), (1.6 2.1, 1.7 2.1, 1.7 2.2, 1.6 2.2, 1.6 2.1)), LINESTRING(1 3, 4 6))")) 1 # rows (not including the header row) 1 # columns ST_NRings(GeomFromText("GeometryCollection(POLYGON((1 2, 3 4, 5 0, 1 2), (1.6 2.1, 1.7 2.1, 1.7 2.2, 1.6 2.2, 1.6 2.1)), LINESTRING(1 3, 4 6))")) 2 libspatialite-4.1.1/test/sql_stmt_tests/makeline29.testcase0000664000175000017500000000045312163502134021031 00000000000000makeline - MULTIPOINT (XYM valid - reverse order) :memory: #use in-memory database SELECT AsText(MakeLine(GeomFromText("MULTIPOINTM(1 2 10,3 4 11)"), 0)) 1 # rows (not including the header row) 1 # columns AsText(MakeLine(GeomFromText("MULTIPOINTM(1 2 10,3 4 11)"), 0)) LINESTRING M(3 4 11, 1 2 10) libspatialite-4.1.1/test/sql_stmt_tests/ndims6.testcase0000664000175000017500000000051612163502134020271 00000000000000Coord Dimensions - GeometryCollection XYZM :memory: #use in-memory database SELECT CoordDimension(geom), ST_NDims(geom) FROM (SELECT GeomFromText('GEOMETRYCOLLECTIONZM(POINTZM(1 2 100 10), LINESTRINGZM(3 4 101 11, 5 6 102 12))') AS geom); 1 # rows (not including the header row) 2 # columns CoordDimension(geom) ST_NDims(geom) XYZM 4 libspatialite-4.1.1/test/sql_stmt_tests/extractmultipoint3.testcase0000664000175000017500000000064212163502134022753 00000000000000extractmultipoint - POINT :memory: #use in-memory database SELECT AsText(ExtractMultiPoint(GeomFromText("GEOMETRYCOLLECTION(POINT(4 3), LINESTRING(5 6, 6 7), POLYGON((10 10, 11 10, 11 11, 10 11, 10 10)))"))) 1 # rows (not including the header row) 1 # columns AsText(ExtractMultiPoint(GeomFromText("GEOMETRYCOLLECTION(POINT(4 3), LINESTRING(5 6, 6 7), POLYGON((10 10, 11 10, 11 11, 10 11, 10 10)))"))) MULTIPOINT(4 3) libspatialite-4.1.1/test/sql_stmt_tests/casttopoly2.testcase0000664000175000017500000000024012163502133021345 00000000000000casttopolygon - non blob :memory: #use in-memory database SELECT CastToPolygon(99) 1 # rows (not including the header row) 1 # columns CastToPolygon(99) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/wkb33.testcase0000664000175000017500000000141412163502134020020 00000000000000Hex Wkb: MultiPolygon XY (single polygon with interior ring) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("MULTIPOLYGON(((10 10, 15 10, 15 15, 10 15, 10 10), (11 11, 12 11, 12 12, 11 12, 11 11)))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("MULTIPOLYGON(((10 10, 15 10, 15 15, 10 15, 10 10), (11 11, 12 11, 12 12, 11 12, 11 11)))", 4326))); 01060000000100000001030000000200000005000000000000000000244000000000000024400000000000002E4000000000000024400000000000002E400000000000002E4000000000000024400000000000002E4000000000000024400000000000002440050000000000000000002640000000000000264000000000000028400000000000002640000000000000284000000000000028400000000000002640000000000000284000000000000026400000000000002640 libspatialite-4.1.1/test/sql_stmt_tests/geomconstraints12.testcase0000664000175000017500000000037212163502134022453 00000000000000geometry constraints - 4 arg, zeroblob 50 :memory: #use in-memory database SELECT GeometryConstraints(zeroblob(50), "POINT", 4326, "XYM") 1 # rows (not including the header row) 1 # columns GeometryConstraints(zeroblob(50), "POINT", 4326, "XYM") -1 libspatialite-4.1.1/test/sql_stmt_tests/makecircle16.testcase0000664000175000017500000000033612163502134021337 00000000000000makecircle16 - text step :memory: #use in-memory database SELECT ST_Length(MakeCircle(0, 0, 100, 4326, 'alpha')); 1 # rows (not including the header row) 1 # columns ST_Length(MakeCircle(0, 0, 100, 4326, 'alpha')) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/sanitizeGeometry16.testcase0000664000175000017500000000155412163502134022605 00000000000000Sanitize Geometry - POLYGON ZM with interior :memory: #use in-memory database SELECT AsText(SanitizeGeometry(GeomFromText("POLYGONZM((-10 -10 1 0, -10 -10 1 0, 10 -10 2 2, 10 10 3 2, -10 10 4 2, -10 -10 1 2, -10 -10 1 0),(-6 -6 2 1, -6 -5 3 1, -5 -5 3 1, -5 -5 4 1, -5 -5 4 1, -5 -6 9 1, -6 -6 2 1),(6 6 0 1, 5 6 0 2, 5 6 0 1, 5 5 0 2, 6 5 0 1, 6 6 0 1))"))) 1 # rows (not including the header row) 1 # columns AsText(SanitizeGeometry(GeomFromText("POLYGONZM((-10 -10 1 0, -10 -10 1 0, 10 -10 2 2, 10 10 3 2, -10 10 4 2, -10 -10 1 2, -10 -10 1 0),(-6 -6 2 1, -6 -5 3 1, -5 -5 3 1, -5 -5 4 1, -5 -5 4 1, -5 -6 9 1, -6 -6 2 1),(6 6 0 1, 5 6 0 2, 5 6 0 1, 5 5 0 2, 6 5 0 1, 6 6 0 1))"))) POLYGON ZM((-10 -10 1 0, 10 -10 2 2, 10 10 3 2, -10 10 4 2, -10 -10 1 0), (-6 -6 2 1, -6 -5 3 1, -5 -5 3 1, -5 -5 4 1, -5 -6 9 1, -6 -6 2 1), (6 6 0 1, 5 6 0 2, 5 5 0 2, 6 5 0 1, 6 6 0 1)) libspatialite-4.1.1/test/sql_stmt_tests/nrings1.testcase0000664000175000017500000000024512163502134020451 00000000000000nrings - bad blob :memory: #use in-memory database SELECT ST_NRings(zeroblob(99)) 1 # rows (not including the header row) 1 # columns ST_NRings(zeroblob(99)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geomconstraints19.testcase0000664000175000017500000000062212163502134022460 00000000000000geometry constraints - MULTILINESTRINGZM :memory: #use in-memory database SELECT GeometryConstraints(GeomFromText("MULTILINESTRINGZM((1 2 3 1, 4 3 1 2),(0 4 4 3, 1 9 7 4))", 4326), "MULTILINESTRING", 4326, "XYZM") 1 # rows (not including the header row) 1 # columns GeometryConstraints(GeomFromText("MULTILINESTRINGZM((1 2 3 1, 4 3 1 2),(0 4 4 3, 1 9 7 4))", 4326), "MULTILINESTRING", 4326, "XYZM") 1 libspatialite-4.1.1/test/sql_stmt_tests/greatcircle-poly7.testcase0000664000175000017500000000040712163502134022424 00000000000000great circle length polygonZM, Airy :memory: SELECT GreatCircleLength(GeomFromText("POLYGONZM((0 0 2 3, 1 0 3 4, 0 0 2 3, 0 0 2 3))", 4188)); 1 # rows 1 # column GreatCircleLength(GeomFromText("POLYGONZM((0 0 2 3, 1 0 3 4, 0 0 2 3, 0 0 2 3))", 4188)) 222371.04:9 libspatialite-4.1.1/test/sql_stmt_tests/casttotext4.testcase0000664000175000017500000000031712163502133021355 00000000000000CastToText() - INTEGER :memory: #use in-memory database SELECT CastToText(123), TypeOf(CastToText(123)) 1 # rows (not including the header row) 2 # columns CastToText(123) TypeOf(CastToText(123)) 123 text libspatialite-4.1.1/test/sql_stmt_tests/compressgeometry10.testcase0000664000175000017500000000102112163502133022630 00000000000000CompressGeometry - GEOMETRYCOLLECTION / LINESTRINGM :memory: #use in-memory database SELECT Hex(CompressGeometry(GeomFromText("GeometryCollectionM(LINESTRINGM(1 2 0, 3 4 0))"))) 1 # rows (not including the header row) 1 # columns Hex(CompressGeometry(GeomFromText("GeometryCollectionM(LINESTRINGM(1 2 0, 3 4 0))"))) 000100000000000000000000F03F0000000000000040000000000000084000000000000010407CD70700000100000069124A0F0002000000000000000000F03F00000000000000400000000000000000000000000000084000000000000010400000000000000000FE libspatialite-4.1.1/test/sql_stmt_tests/lhr4.testcase0000664000175000017500000000213412163502134017740 00000000000000forceLHR - GeometryCollection XYZ :memory: #use in-memory database SELECT AsEWKT(ST_ForceLHR(GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(1 2 100), LINESTRINGZ(3 4 101, 5 6 102, 7 8 103, 9 9 194), POLYGONZ((10 10 101, 14 10 102, 12 12 103, 10 10 101), (11 10.5 100, 13 10.5 101, 12 11.5 102, 11 10.5 100)), POLYGONZ((20 20 100, 24 20 101, 22 18 102, 20 20 100), (21 19.5 101, 23 19.5 102, 22 18.5 103, 21 19.5 101)))", 4326))); 1 # rows (not including the header row) 1 # columns AsEWKT(ST_ForceLHR(GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(1 2 100), LINESTRINGZ(3 4 101, 5 6 102, 7 8 103, 9 9 194), POLYGONZ((10 10 101, 14 10 102, 12 12 103, 10 10 101), (11 10.5 100, 13 10.5 101, 12 11.5 102, 11 10.5 100)), POLYGONZ((20 20 100, 24 20 101, 22 18 102, 20 20 100), (21 19.5 101, 23 19.5 102, 22 18.5 103, 21 19.5 101)))", 4326))) SRID=4326;GEOMETRYCOLLECTION(POINT(1 2 100),LINESTRING(3 4 101,5 6 102,7 8 103,9 9 194),POLYGON((10 10 101,12 12 103,14 10 102,10 10 101),(11 10.5 100,13 10.5 101,12 11.5 102,11 10.5 100)),POLYGON((20 20 100,24 20 101,22 18 102,20 20 100),(21 19.5 101,22 18.5 103,23 19.5 102,21 19.5 101))) libspatialite-4.1.1/test/sql_stmt_tests/shiftlongitude17.testcase0000664000175000017500000000134512163502134022272 00000000000000shiftlongitude - positive and negative longitude polygonm, interior rings :memory: #use in-memory database SELECT AsText(ST_Shift_Longitude(GeomFromText("POLYGONM((-175 0 4, -176 10 5, 175 10 5, 176 0 5, -175 0 4),(-177 1 4, -177 2 5, -178 2 6, -178 1 9, -177 1 4),(-179 4 0, 179 4 0, 179 5 0, -179 5 0, -179 4 0))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(ST_Shift_Longitude(GeomFromText("POLYGONM((-175 0 4, -176 10 5, 175 10 5, 176 0 5, -175 0 4),(-177 1 4, -177 2 5, -178 2 6, -178 1 9, -177 1 4),(-179 4 0, 179 4 0, 179 5 0, -179 5 0, -179 4 0))", 4326))) POLYGON M((185 0 4, 184 10 5, 175 10 5, 176 0 5, 185 0 4), (183 1 4, 183 2 5, 182 2 6, 182 1 9, 183 1 4), (181 4 0, 179 4 0, 179 5 0, 181 5 0, 181 4 0)) libspatialite-4.1.1/test/sql_stmt_tests/geomfromkml18.testcase0000664000175000017500000000257412163502134021567 00000000000000From KML - MultiGeometry LINESTRING x 2 :memory: SELECT AsText(GeomFromKML(" -112.2550785337791,36.07954952145647 -112.2549277039738,36.08117083492122 -112.2552505069063,36.08260761307279 -112.2564540158376,36.08395660588506 -112.2580238976449,36.08511401044813 -112.2595218489022,36.08584355239394 -112.262073428656,36.08626019085147 -112.2633204928495,36.08621519860091 -112.2644963846444,36.08627897945274 -112.2656969554589,36.08649599090644 1,2 3,4")) 1 # rows 1 # column AsText(GeomFromKML(" -112.2550785337791,36.07954952145647 -112.2549277039738,36.08117083492122 -112.2552505069063,36.08260761307279 -112.2564540158376,36.08395660588506 -112.2580238976449,36.08511401044813 -112.2595218489022,36.08584355239394 -112.262073428656,36.08626019085147 -112.2633204928495,36.08621519860091 -112.2644963846444,36.08627897945274 -112.2656969554589,36.08649599090644 1,2 3,4")) MULTILINESTRING((-112.255079 36.07955, -112.254928 36.081171, -112.255251 36.082608, -112.256454 36.083957, -112.258024 36.085114, -112.259522 36.085844, -112.262073 36.08626, -112.26332 36.086215, -112.264496 36.086279, -112.265697 36.086496), (1 2, 3 4))libspatialite-4.1.1/test/sql_stmt_tests/fromgml4.testcase0000664000175000017500000000054612163502134020623 00000000000000FromGML - Point, no namespace :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('1,2')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('1,2')):0 SRID=4326;POINT(1 2) libspatialite-4.1.1/test/sql_stmt_tests/togars12.testcase0000664000175000017500000000054112163502134020531 00000000000000togars - GeometryCollection: Point + Linestring :memory: #use in-memory database SELECT ToGARS(GeomFromText("GEOMETRYCOLLECTION(POINT(11.876910 43.461390), LINESTRING(11 43, 12 43))", 4326)) 1 # rows (not including the header row) 1 # columns ToGARS(GeomFromText("GEOMETRYCOLLECTION(POINT(11.876910 43.461390), LINESTRING(11 43, 12 43))", 4326)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/getmimetype1.testcase0000664000175000017500000000023412163502134021500 00000000000000GetMimeType - NULL :memory: #use in-memory database SELECT GetMimeType(NULL); 1 # rows (not including the header row) 1 # columns GetMimeType(NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/wkb6.testcase0000664000175000017500000000072612163502134017745 00000000000000Hex Wkb: GeometryCollection XYZ (2 points) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(1.2 3.4 100), POINTZ(5.6 7.8 101))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(1.2 3.4 100), POINTZ(5.6 7.8 101))", 4326))); 01EF0300000200000001E9030000333333333333F33F3333333333330B40000000000000594001E903000066666666666616403333333333331F400000000000405940 libspatialite-4.1.1/test/sql_stmt_tests/casttomultipolygon3.testcase0000664000175000017500000000033412163502133023131 00000000000000casttomultipolygon - POINT :memory: #use in-memory database SELECT CastToMultiPolygon(GeomFromText("POINT(1 2)")) 1 # rows (not including the header row) 1 # columns CastToMultiPolygon(GeomFromText("POINT(1 2)")) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/reflectcoords4.testcase0000664000175000017500000000030712163502134022011 00000000000000reflectcoords4 :memory: #use in-memory database SELECT AsText(ReflectCoords(zeroblob(20), 0, 1)); 1 # rows (not including the header row) 1 # columns AsText(ReflectCoords(zeroblob(20), 0, 1)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makearc3.testcase0000664000175000017500000000030212163502134020550 00000000000000makearc3 - BLOB cx :memory: #use in-memory database SELECT MakeArc(zeroblob(4), 0, 100, 30, 60); 1 # rows (not including the header row) 1 # columns MakeArc(zeroblob(4), 0, 100, 30, 60) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/shiftlongitude26.testcase0000664000175000017500000000075712163502134022300 00000000000000shiftlongitude - polygon with interior, all positive :memory: #use in-memory database SELECT AsText(ST_Shift_Longitude(GeomFromText("POLYGON((185 0, 184 10, 175 10, 176 0, 185 0),(176 2, 181 2, 181 4, 176 4, 176 2))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(ST_Shift_Longitude(GeomFromText("POLYGON((185 0, 184 10, 175 10, 176 0, 185 0),(176 2, 181 2, 181 4, 176 4, 176 2))", 4326))) POLYGON((185 0, 184 10, 175 10, 176 0, 185 0), (176 2, 181 2, 181 4, 176 4, 176 2)) libspatialite-4.1.1/test/sql_stmt_tests/asbinary6.testcase0000664000175000017500000000056612163502133020773 00000000000000asbinary - multipointm :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("MultiPointM(1 2 3,2 4 4)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("MultiPointM(1 2 3,2 4 4)", 4326))) 01D40700000200000001D1070000000000000000F03F0000000000000040000000000000084001D1070000000000000000004000000000000010400000000000001040 libspatialite-4.1.1/test/sql_stmt_tests/compressgeometry48.testcase0000664000175000017500000000053412163502133022653 00000000000000CompressGeometry - GEOMETRYCOLLECTION M (1 Point) :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONM(POINTM(1 2 10))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONM(POINTM(1 2 10))", 4326))) GEOMETRYCOLLECTION M(POINT M(1 2 10)) libspatialite-4.1.1/test/sql_stmt_tests/numgeometries2.testcase0000664000175000017500000000025112163502134022032 00000000000000numgeometries - non-blob :memory: #use in-memory database SELECT NumGeometries("hello") 1 # rows (not including the header row) 1 # columns NumGeometries("hello") (NULL)libspatialite-4.1.1/test/sql_stmt_tests/fromewkt26.testcase0000664000175000017500000000045612163502134021102 00000000000000fromewkt26 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;MULTIPOINT((0 1 9 7), (2 3 9 7), (4 5 9 7))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;MULTIPOINT((0 1 9 7), (2 3 9 7), (4 5 9 7))')); MULTIPOINT ZM(0 1 9 7, 2 3 9 7, 4 5 9 7) libspatialite-4.1.1/test/sql_stmt_tests/swapcoords3.testcase0000664000175000017500000000024112163502134021333 00000000000000swapcoords3 :memory: #use in-memory database SELECT SwapCoords(zeroblob(4)); 1 # rows (not including the header row) 1 # columns SwapCoords(zeroblob(4)); (NULL) libspatialite-4.1.1/test/sql_stmt_tests/fromgml46.testcase0000664000175000017500000000237512163502134020713 00000000000000FromGML - MultiPolygon v2 3D (no namespace) :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('0,0,10 5,0,11 5,5,12 0,5,13 0,0,101,1,5 2,1,5 2,2,5 1,2,5 1,1,52,2,10 3,2,11 3,3,12 2,3,13 2,2,10')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('0,0,10 5,0,11 5,5,12 0,5,13 0,0,101,1,5 2,1,5 2,2,5 1,2,5 1,1,52,2,10 3,2,11 3,3,12 2,3,13 2,2,10')):0 SRID=4326;MULTIPOLYGON(((0 0 10,5 0 11,5 5 12,0 5 13,0 0 10),(1 1 5,2 1 5,2 2 5,1 2 5,1 1 5)),((2 2 10,3 2 11,3 3 12,2 3 13,2 2 10))) libspatialite-4.1.1/test/sql_stmt_tests/locatemeasure19.testcase0000664000175000017500000000102512163502134022070 00000000000000ST_Locate_Along_Measure - Alternate name :memory: #use in-memory database SELECT AsText(ST_LocateAlong(GeomFromText('LINESTRINGZM(0 1 100 2.1, 1 0 101 1, 2 1 102 2.1, 3 0 103 2.2, 4 1 104 4, 5 0 105 2.1, 6 1 106 2.1)'), 2.1)); 1 # rows (not including the header row) 1 # columns AsText(ST_LocateAlong(GeomFromText('LINESTRINGZM(0 1 100 2.1, 1 0 101 1, 2 1 102 2.1, 3 0 103 2.2, 4 1 104 4, 5 0 105 2.1, 6 1 106 2.1)'), 2.1)) GEOMETRYCOLLECTION ZM(POINT ZM(0 1 100 2.1), POINT ZM(2 1 102 2.1), LINESTRING ZM(5 0 105 2.1, 6 1 106 2.1)) libspatialite-4.1.1/test/sql_stmt_tests/fromgml3.testcase0000664000175000017500000000041012163502134020610 00000000000000FromGML - bad text :memory: #use in-memory database SELECT GeomFromGml('1,21,21,2 3,4 5,6 7,810,10 11.5,11')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('1,2 3,4 5,6 7,810,10 11.5,11')):0 SRID=4326;MULTILINESTRING((1 2,3 4,5 6,7 8),(10 10,11.5 11)) libspatialite-4.1.1/test/sql_stmt_tests/collectextract11.testcase0000664000175000017500000000042012163502133022244 00000000000000Collection Extract - PointZM :memory: #use in-memory database SELECT AsText(CollectionExtract(GeomFromText("POINTZM(1 2 3 4)"), 1)); 1 # rows (not including the header row) 1 # columns AsText(CollectionExtract(GeomFromText("POINTZM(1 2 3 4)"), 1)) MULTIPOINT ZM(1 2 3 4) libspatialite-4.1.1/test/sql_stmt_tests/casttoblob9.testcase0000664000175000017500000000031312163502133021310 00000000000000CastToBlob() - BLOB hex_input :memory: #use in-memory database SELECT CastToBlob('0129abCF', zeroblob(4)) 1 # rows (not including the header row) 1 # columns CastToBlob('0129abCF', zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makeellipticsector26.testcase0000664000175000017500000000044212163502134023122 00000000000000makeellipticsector26 - valid step :memory: #use in-memory database SELECT ST_Area(MakeEllipticSector(0.0, 0.0, 100.0, 200.0, 30.0, 60.0, 4326, 1.0)); 1 # rows (not including the header row) 1 # columns ST_Area(MakeEllipticSector(0.0, 0.0, 100.0, 200.0, 30.0, 60.0, 4326, 1.0)) 5235.7219:4 libspatialite-4.1.1/test/sql_stmt_tests/NumPoints2.testcase0000664000175000017500000000032612163502133021105 00000000000000NumPoints - Simple line :memory: #use in-memory database SELECT NumPoints(GeomFromText("LINESTRING(0 0, 1 2)")); 1 # rows (not including the header row) 1 # column NumPoints(GeomFromText("LINESTRING(0 0, 1 2)")) 2 libspatialite-4.1.1/test/sql_stmt_tests/compressgeometry65.testcase0000664000175000017500000000073112163502133022651 00000000000000CompressGeometry - MULTIPOLYGON ZM (1 Polygon) :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("MULTIPOLYGONZM(((10 10 77 7, 11 10 88 8, 11 11 99 9, 10 11 88 8, 10 10 77 7)))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("MULTIPOLYGONZM(((10 10 77 7, 11 10 88 8, 11 11 99 9, 10 11 88 8, 10 10 77 7)))", 4326))) MULTIPOLYGON ZM(((10 10 77 7, 11 10 88 8, 11 11 99 9, 10 11 88 8, 10 10 77 7))) libspatialite-4.1.1/test/sql_stmt_tests/forcenull19.testcase0000664000175000017500000000026312163502134021233 00000000000000ForceAsNull() - NULL/TEXT :memory: #use in-memory database SELECT ForceAsNull(NULL, 'alpha') 1 # rows (not including the header row) 1 # columns ForceAsNull(NULL, 'alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makecircularstripe3.testcase0000664000175000017500000000035312163502134023044 00000000000000makecircularstripe3 - BLOB cx :memory: #use in-memory database SELECT MakeCircularStripe(zeroblob(4), 0, 100, 90, 30, 60); 1 # rows (not including the header row) 1 # columns MakeCircularStripe(zeroblob(4), 0, 100, 90, 30, 60) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/casttodouble1.testcase0000664000175000017500000000023712163502133021641 00000000000000CastToDouble() - NULL :memory: #use in-memory database SELECT CastToDouble(NULL) 1 # rows (not including the header row) 1 # columns CastToDouble(NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geomtype60.testcase0000664000175000017500000000061112163502134021064 00000000000000geometrytype - GEOMETRYCOLLECTIONZ - one point :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(3 3 29))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) GEOMETRYCOLLECTION Z XYZ GEOMETRYCOLLECTIONlibspatialite-4.1.1/test/sql_stmt_tests/collect41.testcase0000664000175000017500000000140712163502133020662 00000000000000collect - PolygonZ, PolygonZM :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POLYGONZ((1 2 4, 3 4 2, 3 2 3, 1 2 4),(1.5 2.5 4, 2.5 3.5 3, 2.5 2.3 3, 1.5 2.5 4))"), GeomFromText("POLYGONZM((4 5 3.2 4, 1 2 4.6 5, 4 2 3.1 3, 4 5 3.2 4),(2 3 4 1, 3 4 1 2, 3 3 1 3, 2 3 4 1))"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POLYGONZ((1 2 4, 3 4 2, 3 2 3, 1 2 4),(1.5 2.5 4, 2.5 3.5 3, 2.5 2.3 3, 1.5 2.5 4))"), GeomFromText("POLYGONZM((4 5 3.2 4, 1 2 4.6 5, 4 2 3.1 3, 4 5 3.2 4),(2 3 4 1, 3 4 1 2, 3 3 1 3, 2 3 4 1))"))); MULTIPOLYGON ZM(((1 2 4 0, 3 4 2 0, 3 2 3 0, 1 2 4 0), (1.5 2.5 4 0, 2.5 3.5 3 0, 2.5 2.3 3 0, 1.5 2.5 4 0)), ((4 5 3.2 4, 1 2 4.6 5, 4 2 3.1 3, 4 5 3.2 4), (2 3 4 1, 3 4 1 2, 3 3 1 3, 2 3 4 1))) libspatialite-4.1.1/test/sql_stmt_tests/assvg4.testcase0000664000175000017500000000032312163502133020273 00000000000000assvg - 1 arg with SRID :memory: #use in-memory database SELECT assvg(GeomFromText("Point(1 2)", 4326)) 1 # rows (not including the header row) 1 # columns assvg(GeomFromText("Point(1 2)", 4326)) cx="1" cy="-2" libspatialite-4.1.1/test/sql_stmt_tests/greatcircle-poly3.testcase0000664000175000017500000000035612163502134022423 00000000000000great circle length polygonZ :memory: SELECT GreatCircleLength(GeomFromText("POLYGONZ((0 0 2, 1 0 3, 0 0 2, 0 0 2))", 4326)); 1 # rows 1 # column GreatCircleLength(GeomFromText("POLYGONZ((0 0 2, 1 0 3, 0 0 2, 0 0 2))", 4326)) 222390.15:9 libspatialite-4.1.1/test/sql_stmt_tests/geomfromtext32.testcase0000664000175000017500000000044212163502134021754 00000000000000geomfromtext32 :memory: #use in-memory database SELECT AsText(GeomFromText('MULTIPOINTZM((0 1 9 7), (2 3 9 7), (4 5 9 7))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('MULTIPOINTZM((0 1 9 7), (2 3 9 7), (4 5 9 7))')); MULTIPOINT ZM(0 1 9 7, 2 3 9 7, 4 5 9 7) libspatialite-4.1.1/test/sql_stmt_tests/is3d6.testcase0000664000175000017500000000031312163502134020014 00000000000000Is3D- Point XYZM :memory: #use in-memory database SELECT ST_Is3D(GeomFromText('POINTZM(1 2 100 10)')); 1 # rows (not including the header row) 1 # columns ST_Is3D(GeomFromText('POINTZM(1 2 100 10)')) 1 libspatialite-4.1.1/test/sql_stmt_tests/gml12.testcase0000664000175000017500000000167212163502134020017 00000000000000GML MultiPolygon Z: no SRID :memory: #use in-memory database SELECT AsGML(3, GeomFromText("MULTIPOLYGONZ(((10 10 100, 20 10 101, 20 20 102, 10 20 103, 10 10 100)), ((85 85 80, 90 85 90, 90 90 95, 85 90 90, 85 85 80)))")); 1 # rows (not including the header row) 1 # columns AsGML(3, GeomFromText("MULTIPOLYGONZ(((10 10 100, 20 10 101, 20 20 102, 10 20 103, 10 10 100)), ((85 85 80, 90 85 90, 90 90 95, 85 90 90, 85 85 80)))")) 10 10 100 20 10 101 20 20 102 10 20 103 10 10 10085 85 80 90 85 90 90 90 95 85 90 90 85 85 80:0 # trailing ":0" required to avoid truncation !!! libspatialite-4.1.1/test/sql_stmt_tests/fromWkb26.testcase0000664000175000017500000000246612163502134020656 00000000000000fromWkb - mixed big-little-endian sub-items (3) :memory: #use in-memory database SELECT AsText(GeomFromWkb(CastToBlob('0000000007000000030101000000000000000000F03F00000000000000400102000000020000000000000000000000000000000000000000000000000014400000000000002440010300000002000000050000000000000000000000000000000000000000000000000024400000000000000000000000000000244000000000000024400000000000000000000000000000244000000000000000000000000000000000050000000000000000001440000000000000144000000000000018400000000000001440000000000000184000000000000018400000000000001440000000000000184000000000000014400000000000001440', 1))); 1 # rows (not including the header row) 1 # columns AsText(GeomFromWkb(CastToBlob('0000000007000000030101000000000000000000F03F00000000000000400102000000020000000000000000000000000000000000000000000000000014400000000000002440010300000002000000050000000000000000000000000000000000000000000000000024400000000000000000000000000000244000000000000024400000000000000000000000000000244000000000000000000000000000000000050000000000000000001440000000000000144000000000000018400000000000001440000000000000184000000000000018400000000000001440000000000000184000000000000014400000000000001440', 1))) GEOMETRYCOLLECTION(POINT(1 2), LINESTRING(0 0, 5 10), POLYGON((0 0, 10 0, 10 10, 0 10, 0 0), (5 5, 6 5, 6 6, 5 6, 5 5))) libspatialite-4.1.1/test/sql_stmt_tests/geomfromtext37.testcase0000664000175000017500000000065612163502134021770 00000000000000geomfromtext37 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONZ(GEOMETRYCOLLECTIONZ(GEOMETRYCOLLECTIONZ(POINTZ(0 0 9), LINESTRINGZ(1 1 9, 2 2 9))))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTIONZ(GEOMETRYCOLLECTIONZ(GEOMETRYCOLLECTIONZ(POINTZ(0 0 9), LINESTRINGZ(1 1 9, 2 2 9))))')); GEOMETRYCOLLECTION Z(POINT Z(0 0 9), LINESTRING Z(1 1 9, 2 2 9)) libspatialite-4.1.1/test/sql_stmt_tests/makepoint10.testcase0000664000175000017500000000034412163502134021220 00000000000000makepoint - MakepointM, non-number M, SRID :memory: #use in-memory database SELECT AsText(MakePointM(-71, 42, "hello", 4326)) 1 # rows (not including the header row) 1 # columns AsText(MakePointM(-71, 42, "hello", 4326)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/fromgeojson5.testcase0000664000175000017500000000050212163502134021501 00000000000000FromGeoJSON - linestringZ :memory: #use in-memory database SELECT AsText(GeomFromGeoJSON('{"type":"LineString","coordinates":[[1,2,2.3],[4,5,1.2]]}')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromGeoJSON('{"type":"LineString","coordinates":[[1,2,2.3],[4,5,1.2]]}')):0 LINESTRING Z(1 2 2.3, 4 5 1.2) libspatialite-4.1.1/test/sql_stmt_tests/badwkt5.testcase0000664000175000017500000000046112163502133020430 00000000000000bad WKT: MultiLinestring :memory: #use in-memory database SELECT GeomFromText("MULTILINESTRING((11.2 12.3, 11.3 12.4, 11.4 12.5), (11.5 12.6, 11.6 12.7)"); 1 # rows (not including the header row) 1 # columns GeomFromText("MULTILINESTRING((11.2 12.3, 11.3 12.4, 11.4 12.5), (11.5 12.6, 11.6 12.7)") (NULL) libspatialite-4.1.1/test/sql_stmt_tests/translate6.testcase0000664000175000017500000000041612163502134021153 00000000000000translate - text shift both (error) :memory: #use in-memory database SELECT ST_Translate(GeomFromText("POINT(1 2)"), "text", "three", "alpha"); 1 # rows (not including the header row) 1 # columns ST_Translate(GeomFromText("POINT(1 2)"), "text", "three", "alpha") (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geomfromtext40.testcase0000664000175000017500000000065612163502134021762 00000000000000geomfromtext40 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONM(GEOMETRYCOLLECTIONM(GEOMETRYCOLLECTIONM(POINTM(0 0 9), LINESTRINGM(1 1 9, 2 2 9))))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTIONM(GEOMETRYCOLLECTIONM(GEOMETRYCOLLECTIONM(POINTM(0 0 9), LINESTRINGM(1 1 9, 2 2 9))))')); GEOMETRYCOLLECTION M(POINT M(0 0 9), LINESTRING M(1 1 9, 2 2 9)) libspatialite-4.1.1/test/sql_stmt_tests/makepointz-null2.testcase0000664000175000017500000000030512163502134022300 00000000000000makepointz-null2 :memory: #use in-memory database SELECT AsText(MakePointZ(26.0, "world", 0.54)); 1 # rows (not including the header row) 1 # columns AsText(MakePointZ(26.0, "world", 0.54)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makeline20.testcase0000664000175000017500000000032612163502134021017 00000000000000makeline - POINTM :memory: #use in-memory database SELECT AsText(MakeLine(GeomFromText("POINTM(1 2 3)"))) 1 # rows (not including the header row) 1 # columns AsText(MakeLine(GeomFromText("POINTM(1 2 3)"))) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/wkb17.testcase0000664000175000017500000000102612163502134020021 00000000000000Hex Wkb: GeometryCollection XY (2 lines) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(1.2 3.4, 5.6 7.8), LINESTRING(5 6, 7 8))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(1.2 3.4, 5.6 7.8), LINESTRING(5 6, 7 8))", 4326))); 010700000002000000010200000002000000333333333333F33F3333333333330B4066666666666616403333333333331F40010200000002000000000000000000144000000000000018400000000000001C400000000000002040 libspatialite-4.1.1/test/sql_stmt_tests/compressgeometry69.testcase0000664000175000017500000000101512163502133022651 00000000000000CompressGeometry - GEOMETRYCOLLECTION ZM (1 Polygon) :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONZM(POLYGONZM((10 10 77 7, 11 10 88 8, 11 11 99 9, 10 11 88 8, 10 10 77 7)))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONZM(POLYGONZM((10 10 77 7, 11 10 88 8, 11 11 99 9, 10 11 88 8, 10 10 77 7)))", 4326))) GEOMETRYCOLLECTION ZM(POLYGON ZM((10 10 77 7, 11 10 88 8, 11 11 99 9, 10 11 88 8, 10 10 77 7))) libspatialite-4.1.1/test/sql_stmt_tests/m_ln.testcase0000664000175000017500000000023212163502134020011 00000000000000metres to links :memory: #use in-memory database SELECT CvtToLink(1000); 1 # rows (not including the header row) 1 # columns CvtToLink(1000) 4970.96954:9 libspatialite-4.1.1/test/sql_stmt_tests/m_ind_yd.testcase0000664000175000017500000000024112163502134020646 00000000000000metres to Indian yards :memory: #use in-memory database SELECT CvtToIndYd(1.0); 1 # rows (not including the header row) 1 # columns CvtToIndYd(1.0); 1.0936190:8 libspatialite-4.1.1/test/sql_stmt_tests/wkb13.testcase0000664000175000017500000000063312163502134020020 00000000000000Hex Wkb: GeometryCollection XY(single line) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(1.2 3.4, 5.6 7.8))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(1.2 3.4, 5.6 7.8))", 4326))); 010700000001000000010200000002000000333333333333F33F3333333333330B4066666666666616403333333333331F40 libspatialite-4.1.1/test/sql_stmt_tests/compressgeometry31.testcase0000664000175000017500000000130412163502133022637 00000000000000CompressGeometry - GEOMETRYCOLLECTION Z :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONZ(LINESTRINGZ(10 10 100, 11 11 101), POLYGONZ((0 0 100, 5 0 101, 5 5 102, 0 5 103, 0 0 100), (1 1 100, 2 1 101, 2 2 102, 1 2 103, 1 1 100)))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONZ(LINESTRINGZ(10 10 100, 11 11 101), POLYGONZ((0 0 100, 5 0 101, 5 5 102, 0 5 103, 0 0 100), (1 1 100, 2 1 101, 2 2 102, 1 2 103, 1 1 100)))", 4326))) GEOMETRYCOLLECTION Z(LINESTRING Z(10 10 100, 11 11 101), POLYGON Z((0 0 100, 5 0 101, 5 5 102, 0 5 103, 0 0 100), (1 1 100, 2 1 101, 2 2 102, 1 2 103, 1 1 100))) libspatialite-4.1.1/test/sql_stmt_tests/makecircle7.testcase0000664000175000017500000000025512163502134021257 00000000000000makecircle7 - NULL radius :memory: #use in-memory database SELECT MakeCircle(0, 0, NULL); 1 # rows (not including the header row) 1 # columns MakeCircle(0, 0, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/dissolve29.testcase0000664000175000017500000000152612163502133021075 00000000000000dissolve - Overlap points POLYGON M :memory: #use in-memory database SELECT AsText(DissolveSegments(geom)),AsText(DissolvePoints(geom)) from (SELECT GeomFromText("POLYGONM((-10 0 0, -10 10 0, -10 10 10, 10 10 10, 10 10 10, 10 10 -10, 10 -10 -10, -10 -10 -10, -10 0 0),(0 1 0, 0 2 1, 1 2 2, 1 2 3, 1 2 3, 1 2 3, 0 1 0))") as geom) dummy; 1 # rows (not including the header row) 2 # columns AsText(DissolveSegments(geom)) AsText(DissolvePoints(geom)) MULTILINESTRING M((-10 0 0, -10 10 0), (-10 10 0, -10 10 10), (-10 10 10, 10 10 10), (10 10 10, 10 10 -10), (10 10 -10, 10 -10 -10), (10 -10 -10, -10 -10 -10), (-10 -10 -10, -10 0 0), (0 1 0, 0 2 1), (0 2 1, 1 2 2), (1 2 2, 1 2 3), (1 2 3, 0 1 0)) MULTIPOINT M(-10 0 0, -10 10 0, -10 10 10, 10 10 10, 10 10 10, 10 10 -10, 10 -10 -10, -10 -10 -10, -10 0 0, 0 1 0, 0 2 1, 1 2 2, 1 2 3, 1 2 3, 1 2 3, 0 1 0) libspatialite-4.1.1/test/sql_stmt_tests/makeellipse7.testcase0000664000175000017500000000027212163502134021452 00000000000000makeellipse7 - NULL x_axis :memory: #use in-memory database SELECT MakeEllipse(0, 0, NULL, 200); 1 # rows (not including the header row) 1 # columns MakeEllipse(0, 0, NULL, 200) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makecircularstripe12.testcase0000664000175000017500000000033612163502134023125 00000000000000makecircularstripe12 - NULL stop :memory: #use in-memory database SELECT MakeCircularStripe(0, 0, 100, 90, 30, NULL); 1 # rows (not including the header row) 1 # columns MakeCircularStripe(0, 0, 100, 90, 30, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/setpoint17.testcase0000664000175000017500000000047212163502134021107 00000000000000ST_SetPoint() - not a line :memory: #use in-memory database SELECT ST_SetPoint(GeomFromText('POLYGON((10 10, 11 10, 11 11, 10 11, 10 10))'), 1, MakePoint(2, 0)) 1 # rows (not including the header row) 1 # columns ST_SetPoint(GeomFromText('POLYGON((10 10, 11 10, 11 11, 10 11, 10 10))'), 1, MakePoint(2, 0)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makeellipticarc21.testcase0000664000175000017500000000035512163502134022366 00000000000000makeellipticarc21 - BLOB srid :memory: #use in-memory database SELECT MakeEllipticArc(0, 0, 100, 200, 30, 60, zeroblob(4)); 1 # rows (not including the header row) 1 # columns MakeEllipticArc(0, 0, 100, 200, 30, 60, zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makearc16.testcase0000664000175000017500000000027512163502134020645 00000000000000makearc16 - NULL srid :memory: #use in-memory database SELECT MakeArc(0, 0, 100, 30, 60, NULL); 1 # rows (not including the header row) 1 # columns MakeArc(0, 0, 100, 30, 60, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/greatcircle-poly.testcase0000664000175000017500000000033312163502134022333 00000000000000great circle length polygon :memory: SELECT GreatCircleLength(GeomFromText("POLYGON((0 0, 1 0, 0 0, 0 0))", 4326)); 1 # rows 1 # column GreatCircleLength(GeomFromText("POLYGON((0 0, 1 0, 0 0, 0 0))", 4326)) 222390.15:9 libspatialite-4.1.1/test/sql_stmt_tests/fromWkb22.testcase0000664000175000017500000000150212163502134020640 00000000000000fromWkb - MULTIPOLYGON :memory: #use in-memory database SELECT Hex(MultiPolygonFromWkb(AsBinary(MPolyFromText("MULTIPOLYGON (((30 20, 10 40, 45 40, 30 20)),((15 5, 40 10, 10 20, 5 10, 15 5)))", 4326)))) 1 # rows (not including the header row) 1 # columns Hex(MultiPolygonFromWkb(AsBinary(MPolyFromText("MULTIPOLYGON (((30 20, 10 40, 45 40, 30 20)),((15 5, 40 10, 10 20, 5 10, 15 5)))", 4326)))) 00010000000000000000000014400000000000001440000000000080464000000000000044407C0600000002000000690300000001000000040000000000000000003E40000000000000344000000000000024400000000000004440000000000080464000000000000044400000000000003E400000000000003440690300000001000000050000000000000000002E4000000000000014400000000000004440000000000000244000000000000024400000000000003440000000000000144000000000000024400000000000002E400000000000001440FE libspatialite-4.1.1/test/sql_stmt_tests/geomfromtext8.testcase0000664000175000017500000000026312163502134021700 00000000000000geomfromtext8 :memory: #use in-memory database SELECT AsEWkt(GeomFromText(3.14, 4326)); 1 # rows (not including the header row) 1 # columns AsEWkt(GeomFromText(3.14, 4326)) (NULL)libspatialite-4.1.1/test/sql_stmt_tests/makepoint5.testcase0000664000175000017500000000037512163502134021150 00000000000000makepoint5 :memory: #use in-memory database SELECT AsWkt(MakePoint(-71.1043443253470, 42.3150676015829)); 1 # rows (not including the header row) 1 # columns AsWkt(MakePoint(-71.1043443253470, 42.3150676015829)) POINT(-71.104344325347 42.3150676015829) libspatialite-4.1.1/test/sql_stmt_tests/npoints5.testcase0000664000175000017500000000064712163502134020655 00000000000000npoints - Polygon plus linestring :memory: #use in-memory database SELECT ST_NPoints(GeomFromText("GeometryCollection(POLYGON((1 2, 3 4, 5 0, 1 2), (1.6 2.1, 1.7 2.1, 1.7 2.2, 1.6 2.2, 1.6 2.1)), LINESTRING(1 3, 4 6))")) 1 # rows (not including the header row) 1 # columns ST_NPoints(GeomFromText("GeometryCollection(POLYGON((1 2, 3 4, 5 0, 1 2), (1.6 2.1, 1.7 2.1, 1.7 2.2, 1.6 2.2, 1.6 2.1)), LINESTRING(1 3, 4 6))")) 11 libspatialite-4.1.1/test/sql_stmt_tests/makeellipse14.testcase0000664000175000017500000000030312163502134021523 00000000000000makeellipse14 - NULL srid :memory: #use in-memory database SELECT MakeEllipse(0, 0, 100, 200, NULL); 1 # rows (not including the header row) 1 # columns MakeEllipse(0, 0, 100, 200, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/sanitizeGeometry5.testcase0000664000175000017500000000065212163502134022521 00000000000000Sanitize Geometry - MultilinestringM dupe points :memory: #use in-memory database SELECT AsText(SanitizeGeometry(GeomFromText('MULTILINESTRINGM((0 0 0, 1 0 9, 1 1 8, 0 1 8, 1 1 8, 1 1 8, 0 0 0))'))); 1 # rows (not including the header row) 1 # columns AsText(SanitizeGeometry(GeomFromText('MULTILINESTRINGM((0 0 0, 1 0 9, 1 1 8, 0 1 8, 1 1 8, 1 1 8, 0 0 0))'))) MULTILINESTRING M((0 0 0, 1 0 9, 1 1 8, 0 1 8, 1 1 8, 0 0 0)) libspatialite-4.1.1/test/sql_stmt_tests/geomtype65.testcase0000664000175000017500000000056612163502134021102 00000000000000geometrytype - MULTIPOINTM :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("MULTIPOINTM (10 40 10, 40 30 15, 20 20 20, 30 10 9)") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) MULTIPOINT M XYM MULTIPOINT libspatialite-4.1.1/test/sql_stmt_tests/mpointfromtext2.testcase0000664000175000017500000000050212163502134022245 00000000000000multipointfromtext2 :memory: #use in-memory database SELECT AsWkt(MPointFromText("MULTIPOINT(-71 42, -70 41, -70 42, -70 42, -71 42)", 4326)) 1 # rows (not including the header row) 1 # columns AsWkt(MPointFromText("MULTIPOINT(-71 42, -70 41, -70 42, -70 42, -71 42)", 4326)) MULTIPOINT(-71 42,-70 41,-70 42,-70 42,-71 42)libspatialite-4.1.1/test/sql_stmt_tests/badGML1.testcase0000664000175000017500000000047512163502133020243 00000000000000bad GML: Point :memory: #use in-memory database SELECT GeomFromGML('1.1,2.21.1,2.21,2,3.2')) 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('1,2,3.2')):0 SRID=-1;GEOMETRYCOLLECTION(POINT(1 2 3.2)) libspatialite-4.1.1/test/sql_stmt_tests/reverse6.testcase0000664000175000017500000000244112163502134020631 00000000000000reverse - GeometryCollection XYZM :memory: #use in-memory database SELECT AsEWKT(ST_Reverse(GeomFromText("GEOMETRYCOLLECTIONZM(POINTZM(1 2 100 10), LINESTRINGZM(3 4 101 10, 5 6 102 11, 7 8 103 12, 9 9 194 13), POLYGONZM((10 10 101 11, 14 10 102 12, 12 12 103 13, 10 10 101 11), (11 10.5 100 10, 13 10.5 101 11, 12 11.5 102 12, 11 10.5 100 10)), POLYGONZM((20 20 100 10, 24 20 101 11, 22 18 102 12, 20 20 100 10), (21 19.5 101 11, 23 19.5 102 12, 22 18.5 103 13, 21 19.5 101 11)))", 4326))); 1 # rows (not including the header row) 1 # columns AsEWKT(ST_Reverse(GeomFromText("GEOMETRYCOLLECTIONZM(POINTZM(1 2 100 10), LINESTRINGZM(3 4 101 10, 5 6 102 11, 7 8 103 12, 9 9 194 13), POLYGONZM((10 10 101 11, 14 10 102 12, 12 12 103 13, 10 10 101 11), (11 10.5 100 10, 13 10.5 101 11, 12 11.5 102 12, 11 10.5 100 10)), POLYGONZM((20 20 100 10, 24 20 101 11, 22 18 102 12, 20 20 100 10), (21 19.5 101 11, 23 19.5 102 12, 22 18.5 103 13, 21 19.5 101 11)))", 4326))) SRID=4326;GEOMETRYCOLLECTION(POINT(1 2 100 10),LINESTRING(9 9 194 13,7 8 103 12,5 6 102 11,3 4 101 10),POLYGON((10 10 101 11,12 12 103 13,14 10 102 12,10 10 101 11),(11 10.5 100 10,12 11.5 102 12,13 10.5 101 11,11 10.5 100 10)),POLYGON((20 20 100 10,22 18 102 12,24 20 101 11,20 20 100 10),(21 19.5 101 11,22 18.5 103 13,23 19.5 102 12,21 19.5 101 11))) libspatialite-4.1.1/test/sql_stmt_tests/fdo_ogr2.testcase0000664000175000017500000000020312163502134020563 00000000000000FDO_OGR2 :memory: #use in-memory database SELECT AutoFDOStop() 1 # rows (not including the header row) 1 # columns AutoFDOStop() 0 libspatialite-4.1.1/test/sql_stmt_tests/SridFromAuthCRS3.testcase0000664000175000017500000000027612163502133022075 00000000000000SridFromAuthCRS - non-test first arg :memory: #use in-memory database SELECT SridFromAuthCRS(384, 4326) 1 # rows (not including the header row) 1 # columns SridFromAuthCRS(384, 4326) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geometryn13.testcase0000664000175000017500000000053312163502134021245 00000000000000Geometry N - multilinestringm :memory: #use in-memory database SELECT AsText(GeometryN(GeomFromText("MULTILINESTRINGM((1 2 1.6, 4 2.3 8.7, 1 2 1),(0 1 2, 8 1 1))"), 2)) 1 # rows (not including the header row) 1 # columns AsText(GeometryN(GeomFromText("MULTILINESTRINGM((1 2 1.6, 4 2.3 8.7, 1 2 1),(0 1 2, 8 1 1))"), 2)) LINESTRING M(0 1 2, 8 1 1) libspatialite-4.1.1/test/sql_stmt_tests/geomtype36.testcase0000664000175000017500000000066312163502134021076 00000000000000geometrytype - GEOMETRYCOLLECTIONZ two linestring :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("GEOMETRYCOLLECTIONZ(LINESTRINGZ(4 6 0, 10 0 0), LINESTRINGZ(2 3 0, 5 1 0))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) GEOMETRYCOLLECTION Z XYZ GEOMETRYCOLLECTIONlibspatialite-4.1.1/test/sql_stmt_tests/casttopoint5.testcase0000664000175000017500000000037212163502133021524 00000000000000casttopoint - MULTIPOINT, 2 points :memory: #use in-memory database SELECT AsText(CastToPoint(GeomFromText("MULTIPOINT(4 3, 1 6)"))) 1 # rows (not including the header row) 1 # columns AsText(CastToPoint(GeomFromText("MULTIPOINT(4 3, 1 6)"))) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/fromgml24.testcase0000664000175000017500000000170712163502134020705 00000000000000FromGML - MultiLinestring v3 3D (no namespace) :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('1 2 10 3 4 11 5 6 127 8 13 9 10 13')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('1 2 10 3 4 11 5 6 127 8 13 9 10 13')):0 SRID=4326;MULTILINESTRING((1 2 10,3 4 11,5 6 12),(7 8 13,9 10 13)) libspatialite-4.1.1/test/sql_stmt_tests/makearc21.testcase0000664000175000017500000000031712163502134020636 00000000000000makearc21 - TEXT step :memory: #use in-memory database SELECT MakeArc(0, 0, 100, 30, 60, 4326, 'alpha'); 1 # rows (not including the header row) 1 # columns MakeArc(0, 0, 100, 30, 60, 4326, 'alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_tests/ring22.testcase0000664000175000017500000000076612163502134020203 00000000000000InteriorRingN - POLGON Z second interior :memory: #use in-memory database SELECT AsText(InteriorRingN(GeomFromText("POLYGONZ((0 0 0, 0 4 1, 4 4 2, 4 0 3, 0 0 0),(1 1 2, 1 3 2, 3 3 2, 3 1 2, 1 1 2),(2 2 1, 2 3 1, 3 3 1, 3 2 1, 2 2 1))"), 2)); 1 # rows (not including the header row) 1 # columns AsText(InteriorRingN(GeomFromText("POLYGONZ((0 0 0, 0 4 1, 4 4 2, 4 0 3, 0 0 0),(1 1 2, 1 3 2, 3 3 2, 3 1 2, 1 1 2),(2 2 1, 2 3 1, 3 3 1, 3 2 1, 2 2 1))"), 2)) LINESTRING Z(2 2 1, 2 3 1, 3 3 1, 3 2 1, 2 2 1) libspatialite-4.1.1/test/sql_stmt_tests/togars7.testcase0000664000175000017500000000035212163502134020455 00000000000000togars - southwest, plus a bit :memory: #use in-memory database SELECT ToGARS(GeomFromText("Point(-179.85 -89.85)", 4326)) 1 # rows (not including the header row) 1 # columns ToGARS(GeomFromText("Point(-179.85 -89.85)", 4326)) 001AA35libspatialite-4.1.1/test/sql_stmt_tests/forcenull4.testcase0000664000175000017500000000024512163502134021145 00000000000000ForceAsNull() - INTEGER/NULL :memory: #use in-memory database SELECT ForceAsNull(1, NULL) 1 # rows (not including the header row) 1 # columns ForceAsNull(1, NULL) 1 libspatialite-4.1.1/test/sql_stmt_tests/uncompressgeom3.testcase0000664000175000017500000000030312163502134022214 00000000000000uncompressgeometry - bad blob :memory: #use in-memory database SELECT UncompressGeometry(zeroblob(99)) 1 # rows (not including the header row) 1 # columns UncompressGeometry(zeroblob(99)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/assvg7.testcase0000664000175000017500000000036412163502133020303 00000000000000assvg - 3 arg negative precision :memory: #use in-memory database SELECT assvg(GeomFromText("Point(1.3759 2)", 4326), 0, -1) 1 # rows (not including the header row) 1 # columns assvg(GeomFromText("Point(1.3759 2)", 4326), 0, -1) cx="1" cy="-2" libspatialite-4.1.1/test/sql_stmt_tests/envintersects1.testcase0000664000175000017500000000031512163502134022043 00000000000000ST_EnvIntersects - bad arg #1 :memory: #use in-memory database SELECT ST_EnvIntersects("alpha", 2, 2, 3, 3) 1 # rows (not including the header row) 1 # columns ST_EnvIntersects("alpha", 2, 2, 3, 3) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makeellipse1.testcase0000664000175000017500000000027212163502134021444 00000000000000makeellipse1 - NULL cx :memory: #use in-memory database SELECT MakeEllipse(NULL, 0, 100, 200); 1 # rows (not including the header row) 1 # columns MakeEllipse(NULL, 0, 100, 200) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/extractmultipoint2.testcase0000664000175000017500000000025212163502134022747 00000000000000extractmultipoint - non-blob :memory: #use in-memory database SELECT ExtractMultiPoint(4) 1 # rows (not including the header row) 1 # columns ExtractMultiPoint(4) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/mbr14.testcase0000664000175000017500000000045512163502134020020 00000000000000MbrEqual - Line + same Line :memory: #use in-memory database SELECT MbrEqual(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("LINESTRING(0 0, 1 2)")); 1 # rows (not including the header row) 1 # columns MbrEqual(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("LINESTRING(0 0, 1 2)")) # header 1libspatialite-4.1.1/test/sql_stmt_tests/geomconstraints28.testcase0000664000175000017500000000076712163502134022472 00000000000000geometry constraints - GEOMETRY :memory: #use in-memory database SELECT GeometryConstraints(GeomFromText("GEOMETRYCOLLECTIONZM(MULTIPOLYGONZM(((0 0 4 0, 1 0 4 0, 1 1 4 0, 0 0 4 0)),((0 0 4 0, -1 0 4 0, -1 -1 4 0, 0 0 4 0))))", 4326), "GEOMETRY", 4326, "XYZM") 1 # rows (not including the header row) 1 # columns GeometryConstraints(GeomFromText("GEOMETRYCOLLECTIONZM(MULTIPOLYGONZM(((0 0 4 0, 1 0 4 0, 1 1 4 0, 0 0 4 0)),((0 0 4 0, -1 0 4 0, -1 -1 4 0, 0 0 4 0))))", 4326), "GEOMETRY", 4326, "XYZM") 1 libspatialite-4.1.1/test/sql_stmt_tests/wkb31.testcase0000664000175000017500000000135212163502134020017 00000000000000Hex Wkb: GeometryCollection XYM (point, polygon) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONM(POINTM(1 2 11), POLYGONM((10 10 1, 11 10 2, 11 11 3, 10 11 3, 10 10 1)))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONM(POINTM(1 2 11), POLYGONM((10 10 1, 11 10 2, 11 11 3, 10 11 3, 10 10 1)))", 4326))); 01D70700000200000001D1070000000000000000F03F0000000000000040000000000000264001D3070000010000000500000000000000000024400000000000002440000000000000F03F00000000000026400000000000002440000000000000004000000000000026400000000000002640000000000000084000000000000024400000000000002640000000000000084000000000000024400000000000002440000000000000F03F libspatialite-4.1.1/test/sql_stmt_tests/linesfromrings6.testcase0000664000175000017500000000053512163502134022221 00000000000000LinesFromRings - Simple polygon, non-int select :memory: #use in-memory database SELECT AsText(LinesFromRings(GeomFromText("POLYGON((0 0, 1 1, 0 2, -1 1, 0 0))"), "hello")); 1 # rows (not including the header row) 1 # columns AsText(LinesFromRings(GeomFromText("POLYGON((0 0, 1 1, 0 2, -1 1, 0 0))"), "hello")) LINESTRING(0 0, 1 1, 0 2, -1 1, 0 0) libspatialite-4.1.1/test/sql_stmt_tests/translate11.testcase0000664000175000017500000000053112163502134021225 00000000000000translate - Linestring XYZM :memory: #use in-memory database SELECT AsText(ST_Translate(GeomFromText("LINESTRINGZM(1 2 10 20, 3 4 10 20)"), 1.4, 3.9, 5.3)); 1 # rows (not including the header row) 1 # columns AsText(ST_Translate(GeomFromText("LINESTRINGZM(1 2 10 20, 3 4 10 20)"), 1.4, 3.9, 5.3)) LINESTRING ZM(2.4 5.9 15.3 20, 4.4 7.9 15.3 20) libspatialite-4.1.1/test/sql_stmt_tests/setpoint8.testcase0000664000175000017500000000041212163502134021021 00000000000000ST_SetPoint() - TEXT index :memory: #use in-memory database SELECT ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 'alpha', NULL) 1 # rows (not including the header row) 1 # columns ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 'alpha', NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/fromWkb11.testcase0000664000175000017500000000025012163502134020635 00000000000000fromWkb - float, args :memory: #use in-memory database SELECT GeomFromWkb(1.67, 4326) 1 # rows (not including the header row) 1 # columns GeomFromWkb(1.67, 4326) (NULL)libspatialite-4.1.1/test/sql_stmt_tests/geomfromtext18.testcase0000664000175000017500000000056612163502134021767 00000000000000geomfromtext18 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONZ(MULTILINESTRINGZ((0 1 9, 2 3 9), (4 5 9, 6 7 9)))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTIONZ(MULTILINESTRINGZ((0 1 9, 2 3 9), (4 5 9, 6 7 9)))')); GEOMETRYCOLLECTION Z(LINESTRING Z(0 1 9, 2 3 9), LINESTRING Z(4 5 9, 6 7 9)) libspatialite-4.1.1/test/sql_stmt_tests/collect30.testcase0000664000175000017500000000063712163502133020664 00000000000000collect - LineStringZ, LineStringM :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("LINESTRINGZ(1 2 4, 3 4 2)"), GeomFromText("LINESTRINGM(4 5 1, 1 2 2, 4 2 3)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("LINESTRINGZ(1 2 4, 3 4 2)"), GeomFromText("LINESTRINGM(4 5 1, 1 2 2, 4 2 3)"))) MULTILINESTRING ZM((1 2 4 0, 3 4 2 0), (4 5 0 1, 1 2 0 2, 4 2 0 3)) libspatialite-4.1.1/test/sql_stmt_tests/geomtype55.testcase0000664000175000017500000000074412163502134021077 00000000000000geometrytype - GEOMETRYCOLLECTION ZM - two polygons :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("GEOMETRYCOLLECTIONZM(POLYGONZM((4 6 0 1,7 10 0 1, 12 3 1 1, 4 6 0 1)),POLYGONZM((4 6 1 2,7 10 1 2, 12 3 2 2, 4 6 1 2)))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) GEOMETRYCOLLECTION ZM XYZM GEOMETRYCOLLECTIONlibspatialite-4.1.1/test/sql_stmt_tests/gml4.testcase0000664000175000017500000000067212163502134017737 00000000000000GML Linestring Z: no SRID :memory: #use in-memory database SELECT AsGML(3, GeomFromText("LINESTRINGZ(1 2 100, 3 4 101)")); 1 # rows (not including the header row) 1 # columns AsGML(3, GeomFromText("LINESTRINGZ(1 2 100, 3 4 101)")) 1 2 100 3 4 101:0 # trailing ":0" required to avoid truncation !!! libspatialite-4.1.1/test/sql_stmt_tests/buildmbr13.testcase0000664000175000017500000000026112163502133021031 00000000000000buildmbr - null args, no SRID :memory: #use in-memory database SELECT BuildMbr(5, 4, 2, NULL) 1 # rows (not including the header row) 1 # columns BuildMbr(5, 4, 2, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/rtreealign3.testcase0000664000175000017500000000026612163502134021312 00000000000000rtreealign - non-blob third arg :memory: #use in-memory database SELECT RTreeAlign("notreal", 2, 2) 1 # rows (not including the header row) 1 # columns RTreeAlign("notreal", 2, 2) -1libspatialite-4.1.1/test/sql_stmt_tests/uncompressgeom1.testcase0000664000175000017500000000045512163502134022222 00000000000000uncompressgeometry :memory: #use in-memory database SELECT AsText(UncompressGeometry(GeomFromText("POLYGON((1 2, 3 1, 4 4, 1 2))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(UncompressGeometry(GeomFromText("POLYGON((1 2, 3 1, 4 4, 1 2))", 4326))) POLYGON((1 2, 3 1, 4 4, 1 2)) libspatialite-4.1.1/test/sql_stmt_tests/translate12.testcase0000664000175000017500000000071412163502134021231 00000000000000translate - Polygon XY :memory: #use in-memory database SELECT AsText(ST_Translate(GeomFromText("POLYGON((0 0, 10 0, 10 10, 0 10, 0 0), (5 5, 6 5, 6 6, 5 6, 5 5))"), 1.4, 3.9, 5.3)); 1 # rows (not including the header row) 1 # columns AsText(ST_Translate(GeomFromText("POLYGON((0 0, 10 0, 10 10, 0 10, 0 0), (5 5, 6 5, 6 6, 5 6, 5 5))"), 1.4, 3.9, 5.3)) POLYGON((1.4 3.9, 11.4 3.9, 11.4 13.9, 1.4 13.9, 1.4 3.9), (6.4 8.9, 7.4 8.9, 7.4 9.9, 6.4 9.9, 6.4 8.9)) libspatialite-4.1.1/test/sql_stmt_tests/asewkb5.testcase0000664000175000017500000000024312163502133020426 00000000000000asewkb - bad blob :memory: #use in-memory database SELECT AsEWKB(zeroblob(40)) 1 # rows (not including the header row) 1 # columns AsEWKB(zeroblob(40)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/fromgeojson21.testcase0000664000175000017500000000100112163502134021552 00000000000000FromGeoJSON - multilinestring, SRID one point :memory: #use in-memory database SELECT AsEWkt(GeomFromGeoJSON('{"type":"MultiLineString","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:EPSG:3003"}},"bbox":[-3,2,4,25],"coordinates":[[[1,2],[4,6]],[[2,3]]]}')) 1 # rows (not including the header row) 1 # columns AsEWkt(GeomFromGeoJSON('{"type":"MultiLineString","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:EPSG:3003"}},"bbox":[-3,2,4,25],"coordinates":[[[1,2],[4,6]],[[2,3]]]}')):0 (NULL) libspatialite-4.1.1/test/sql_stmt_tests/polygonfromtext2.testcase0000664000175000017500000000050512163502134022431 00000000000000polygonfromtext2 :memory: #use in-memory database SELECT AsWkt(PolygonFromText("POLYGON((-71 42, -70 41, -70 42, -70 42, -71 42))", 4326), 4); 1 # rows (not including the header row) 1 # columns AsWkt(PolygonFromText("POLYGON((-71 42, -70 41, -70 42, -70 42, -71 42))", 4326), 4) POLYGON((-71 42,-70 41,-70 42,-70 42,-71 42))libspatialite-4.1.1/test/sql_stmt_tests/shiftlongitude7.testcase0000664000175000017500000000057012163502134022210 00000000000000shiftlongitude - negative longitude linestringz :memory: #use in-memory database SELECT AsText(ST_Shift_Longitude(GeomFromText("LINESTRINGZ(-170 0 1, -175 2 2.4, -179 4 3.2)", 4326))) 1 # rows (not including the header row) 1 # columns AsText(ST_Shift_Longitude(GeomFromText("LINESTRINGZ(-170 0 1, -175 2 2.4, -179 4 3.2)", 4326))) LINESTRING Z(190 0 1, 185 2 2.4, 181 4 3.2) libspatialite-4.1.1/test/sql_stmt_tests/fromgml6.testcase0000664000175000017500000000103112163502134020613 00000000000000FromGML - Linestring v3 :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('1 2 3 4')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('1 2 3 4')):0 SRID=4326;LINESTRING(1 2,3 4) libspatialite-4.1.1/test/sql_stmt_tests/casttoxyz3.testcase0000664000175000017500000000035212163502133021221 00000000000000casttoxyz - POINT :memory: #use in-memory database SELECT AsText(CastToXYZ(GeomFromText("POINTZM(4 3 10 20)"))) 1 # rows (not including the header row) 1 # columns AsText(CastToXYZ(GeomFromText("POINTZM(4 3 10 20)"))) POINT Z(4 3 10) libspatialite-4.1.1/test/sql_stmt_tests/geomtype23.testcase0000664000175000017500000000062312163502134021066 00000000000000geometrytype - POLYGONM :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("POLYGONM((30 20 1, 10 40 1, 45 40 1, 30 20 1),(15 5 2, 40 10 2, 10 20 2, 5 10 2, 15 5 2))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) POLYGON M XYM POLYGON libspatialite-4.1.1/test/sql_stmt_tests/swapcoords9.testcase0000664000175000017500000000104412163502134021343 00000000000000swapcoords9 :memory: #use in-memory database SELECT AsText(SwapCoords(GeomFromText("POLYGONZ((10 10 100, 20 10 101, 20 20 102, 10 20 103, 10 10 100), (14 14 100, 16 14 101, 16 16 102, 14 16 103, 14 14 100))"))); 1 # rows (not including the header row) 1 # columns AsText(SwapCoords(GeomFromText("POLYGONZ((10 10 100, 20 10 101, 20 20 102, 10 20 103, 10 10 100), (14 14 100, 16 14 101, 16 16 102, 14 16 103, 14 14 100))"))); POLYGON Z((10 10 100, 10 20 101, 20 20 102, 20 10 103, 10 10 100), (14 14 100, 14 16 101, 16 16 102, 16 14 103, 14 14 100)) libspatialite-4.1.1/test/sql_stmt_tests/makeellipticarc1.testcase0000664000175000017500000000032612163502134022302 00000000000000makeellipticarc1 - NULL cx :memory: #use in-memory database SELECT MakeEllipticArc(NULL, 0, 100, 200, 30, 60); 1 # rows (not including the header row) 1 # columns MakeEllipticArc(NULL, 0, 100, 200, 30, 60) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makearc19.testcase0000664000175000017500000000032712163502134020646 00000000000000makearc19 - WGS84 srid :memory: #use in-memory database SELECT ST_Length(MakeArc(0, 0, 100, 30, 60, 4326)); 1 # rows (not including the header row) 1 # columns ST_Length(MakeArc(0, 0, 100, 30, 60, 4326)) 52.2934:4 libspatialite-4.1.1/test/sql_stmt_tests/compressgeometry64.testcase0000664000175000017500000000065012163502133022650 00000000000000CompressGeometry - MULTIPOLYGON M (1 Polygon) :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("MULTIPOLYGONM(((10 10 7, 11 10 8, 11 11 9, 10 11 8, 10 10 7)))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("MULTIPOLYGONM(((10 10 7, 11 10 8, 11 11 9, 10 11 8, 10 10 7)))", 4326))) MULTIPOLYGON M(((10 10 7, 11 10 8, 11 11 9, 10 11 8, 10 10 7))) libspatialite-4.1.1/test/sql_stmt_tests/reflectcoords2.testcase0000664000175000017500000000035112163502134022006 00000000000000reflectcoords2 :memory: #use in-memory database SELECT AsText(ReflectCoords(GeomFromText("POINT(1 2)"), 1, 1)); 1 # rows (not including the header row) 1 # columns AsText(ReflectCoords(GeomFromText("POINT(1 2)"), 1, 1)) POINT(-1 -2) libspatialite-4.1.1/test/sql_stmt_tests/ring8.testcase0000664000175000017500000000061212163502134020115 00000000000000ExteriorRing - Toxic polygon :memory: #use in-memory database SELECT AsText(ExteriorRing(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"))); 1 # rows (not including the header row) 1 # columns AsText(ExteriorRing(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"))) LINESTRING(136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5) libspatialite-4.1.1/test/sql_stmt_tests/st_y9.testcase0000664000175000017500000000044212163502134020136 00000000000000ST_Y9 :memory: #use in-memory database SELECT ST_Y(MakePointZM(-71.1043443253471, 42.3150676015829, 0.0038723129645, 12.6389, 4326)); 1 # rows (not including the header row) 1 # columns ST_Y(MakePointZM(-71.1043443253471, 42.3150676015829, 0.0038723129645, 12.6389, 4326)) 42.3150676015829 libspatialite-4.1.1/test/sql_stmt_tests/makepoint-null6.testcase0000664000175000017500000000033412163502134022114 00000000000000makepoint-null6 :memory: #use in-memory database SELECT AsText(MakePoint(-26.0, 42.3150676015829, "WGS84")); 1 # rows (not including the header row) 1 # columns AsText(MakePoint(-26.0, 42.3150676015829, "WGS84")) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makecircle6.testcase0000664000175000017500000000027312163502134021256 00000000000000makecircle6 - BLOB cy :memory: #use in-memory database SELECT MakeCircle(0, zeroblob(4), 100); 1 # rows (not including the header row) 1 # columns MakeCircle(0, zeroblob(4), 100) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/addpoint21.testcase0000664000175000017500000000046312163502133021036 00000000000000ST_AddPoint() - insert into the middle :memory: #use in-memory database SELECT AsText(AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1), 1)) 1 # rows (not including the header row) 1 # columns AsText(AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1), 1)) LINESTRING(0 0, 1 1, 1 0) libspatialite-4.1.1/test/sql_stmt_tests/collect49.testcase0000664000175000017500000000134312163502133020671 00000000000000collect - PolygonM, PolygonZ :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POLYGONM((1 2 4, 3 4 2, 3 2 3, 1 2 4),(1.5 2.5 4, 2.5 3.5 3, 2.5 2.3 3, 1.5 2.5 4))"), GeomFromText("POLYGONZ((4 5 3.2, 1 2 4.6, 4 2 3.1, 4 5 3.2),(2 3 4, 3 4 1, 3 3 1, 2 3 4))"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POLYGONM((1 2 4, 3 4 2, 3 2 3, 1 2 4),(1.5 2.5 4, 2.5 3.5 3, 2.5 2.3 3, 1.5 2.5 4))"), GeomFromText("POLYGONZ((4 5 3.2, 1 2 4.6, 4 2 3.1, 4 5 3.2),(2 3 4, 3 4 1, 3 3 1, 2 3 4))"))) MULTIPOLYGON ZM(((1 2 0 4, 3 4 0 2, 3 2 0 3, 1 2 0 4), (1.5 2.5 0 4, 2.5 3.5 0 3, 2.5 2.3 0 3, 1.5 2.5 0 4)), ((4 5 3.2 0, 1 2 4.6 0, 4 2 3.1 0, 4 5 3.2 0), (2 3 4 0, 3 4 1 0, 3 3 1 0, 2 3 4 0))) libspatialite-4.1.1/test/sql_stmt_tests/isXblob7.testcase0000664000175000017500000000103112163502134020553 00000000000000isXblob - zeroblob, 0 bytes :memory: #use in-memory database SELECT IsPngBlob(blob), IsGifBlob(blob), IsGeometryBlob(blob), IsZipBlob(blob), IsPdfBlob(blob), IsTiffBlob(blob), IsJpegBlob(blob), IsExifBlob(blob), IsExifGpsBlob(blob), IsWebpBlob(blob) FROM (SELECT zeroblob(0) as blob) dummy 1 # rows (not including the header row) 10 # columns IsPngBlob(blob) IsGifBlob(blob) IsGeometryBlob(blob) IsZipBlob(blob) IsPdfBlob(blob) IsTiffBlob(blob) IsJpegBlob(blob) IsExifBlob(blob) IsExifGpsBlob(blob) IsWebpBlob(blob) 0 0 0 0 0 0 0 0 0 0 libspatialite-4.1.1/test/sql_stmt_tests/fromgml2.testcase0000664000175000017500000000025212163502134020613 00000000000000FromGML - non-text :memory: #use in-memory database SELECT GeomFromGml(zeroblob(10)) 1 # rows (not including the header row) 1 # columns GeomFromGml(zeroblob(10)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/envelope1.testcase0000664000175000017500000000034212163502134020764 00000000000000Envelope :memory: #use in-memory database SELECT AsText(Envelope(GeomFromText("Point(1 2)"))) 1 # rows (not including the header row) 1 # columns AsText(Envelope(GeomFromText("Point(1 2)"))) POLYGON((1 2, 1 2, 1 2, 1 2, 1 2)) libspatialite-4.1.1/test/sql_stmt_tests/casttomulti8.testcase0000664000175000017500000000076212163502133021533 00000000000000casttomulti - 2 linestrings and polygon :memory: #use in-memory database SELECT AsText(CastToMulti(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(4 1, 3 4),LINESTRING(4 6, 3 1),POLYGON((0 1, 2 1, 2 4, 0 4, 0 1)))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToMulti(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(4 1, 3 4),LINESTRING(4 6, 3 1),POLYGON((0 1, 2 1, 2 4, 0 4, 0 1)))"))) GEOMETRYCOLLECTION(LINESTRING(4 1, 3 4), LINESTRING(4 6, 3 1), POLYGON((0 1, 2 1, 2 4, 0 4, 0 1)))libspatialite-4.1.1/test/sql_stmt_tests/casttomultipoint4.testcase0000664000175000017500000000041012163502133022567 00000000000000casttomultipoint - MULTIPOINT - 1 point :memory: #use in-memory database SELECT AsText(CastToMultiPoint(GeomFromText("MULTIPOINT(1 2)"))) 1 # rows (not including the header row) 1 # columns AsText(CastToMultiPoint(GeomFromText("MULTIPOINT(1 2)"))) MULTIPOINT(1 2) libspatialite-4.1.1/test/sql_stmt_tests/dissolve18.testcase0000664000175000017500000000076312163502133021075 00000000000000dissolve - POLYGON :memory: #use in-memory database SELECT AsText(DissolveSegments(geom)),AsText(DissolvePoints(geom)) from (SELECT GeomFromText("POLYGON((0 0,10 0,10 10,0 10,0 0),(1 1,2 2, 2 1, 1 1))") as geom) dummy; 1 # rows (not including the header row) 2 # columns AsText(DissolveSegments(geom)) AsText(DissolvePoints(geom)) MULTILINESTRING((0 0, 10 0), (10 0, 10 10), (10 10, 0 10), (0 10, 0 0), (1 1, 2 2), (2 2, 2 1), (2 1, 1 1)) MULTIPOINT(0 0, 10 0, 10 10, 0 10, 0 0, 1 1, 2 2, 2 1, 1 1) libspatialite-4.1.1/test/sql_stmt_tests/asewkb6.testcase0000664000175000017500000000060112163502133020425 00000000000000asewkb - POINTZM :memory: #use in-memory database SELECT Hex(AsEWKB(GeomFromText("POINTZM(1 3 1 0)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsEWKB(GeomFromText("POINTZM(1 3 1 0)", 4326))) 535249443D343332363B3031303130303030433030303030303030303030303046303346303030303030303030303030303834303030303030303030303030304630334630303030303030303030303030303030 libspatialite-4.1.1/test/sql_stmt_tests/envintersects9.testcase0000664000175000017500000000041612163502134022055 00000000000000ST_EnvIntersects - no [double coords] :memory: #use in-memory database SELECT ST_EnvIntersects(GeomFromText('POINT(3.5 3.8)'), 2.1, 2.1, 3.1, 3.1) 1 # rows (not including the header row) 1 # columns ST_EnvIntersects(GeomFromText('POINT(3.5 3.8)'), 2.1, 2.1, 3.1, 3.1) 0 libspatialite-4.1.1/test/sql_stmt_tests/minz3.testcase0000664000175000017500000000034012163502134020124 00000000000000MinZ - Linestring XY :memory: #use in-memory database SELECT ST_MinZ(GeomFromText('LINESTRING(1 2, 3 4, 5 6)')); 1 # rows (not including the header row) 1 # columns ST_MinZ(GeomFromText('LINESTRING(1 2, 3 4, 5 6)')) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geomtype54.testcase0000664000175000017500000000071512163502134021074 00000000000000geometrytype - GEOMETRYCOLLECTIONM - two polygons :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("GEOMETRYCOLLECTIONM(POLYGONM((4 6 0,7 10 0, 12 3 1, 4 6 0)),POLYGONM((4 6 1,7 10 1, 12 3 2, 4 6 1)))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) GEOMETRYCOLLECTION M XYM GEOMETRYCOLLECTIONlibspatialite-4.1.1/test/sql_stmt_tests/linefromtext2.testcase0000664000175000017500000000050012163502134021664 00000000000000linefromtext2 :memory: #use in-memory database SELECT AsWkt(LineFromText("LINESTRING(-71.1043443253471 42.315067601582900, -71 42)", 4326), 4); 1 # rows (not including the header row) 1 # columns AsWkt(LineFromText("LINESTRING(-71.1043443253471 42.315067601582900, -71 42)", 4326), 4) LINESTRING(-71.1043 42.3151,-71 42)libspatialite-4.1.1/test/sql_stmt_tests/makecircularstripe21.testcase0000664000175000017500000000037012163502134023123 00000000000000makecircularstripe21 - TEXT step :memory: #use in-memory database SELECT MakeCircularStripe(0, 0, 100, 90, 30, 60, 4326, 'alpha'); 1 # rows (not including the header row) 1 # columns MakeCircularStripe(0, 0, 100, 90, 30, 60, 4326, 'alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_tests/isempty2.testcase0000664000175000017500000000021112163502134020635 00000000000000isempty - null :memory: #use in-memory database SELECT IsEmpty(null) 1 # rows (not including the header row) 1 # columns IsEmpty(null) -1libspatialite-4.1.1/test/sql_stmt_tests/fromgml8.testcase0000664000175000017500000000146512163502134020630 00000000000000FromGML - Polygon v3 :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('0 0 5 0 5 5 0 5 0 01 1 2 1 2 2 1 2 1 1')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('0 0 5 0 5 5 0 5 0 01 1 2 1 2 2 1 2 1 1')):0 SRID=4326;POLYGON((0 0,5 0,5 5,0 5,0 0),(1 1,2 1,2 2,1 2,1 1)) libspatialite-4.1.1/test/sql_stmt_tests/st_x1.testcase0000664000175000017500000000035512163502134020130 00000000000000ST_X1 :memory: #use in-memory database SELECT ST_X(MakePointZ(-71.1043443253471, 42.3150676015829, 4326)); 1 # rows (not including the header row) 1 # columns ST_X(MakePointZ(-71.1043443253471, 42.3150676015829, 4326)) -71.1043443253471 libspatialite-4.1.1/test/sql_stmt_tests/fromgml18.testcase0000664000175000017500000000335412163502134020710 00000000000000FromGML - GeometryCollection v3 3D :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('8 8 10.59 9 10.5 10.1 10.1 10.60 0 10 5 0 11 5 5 12 0 5 13 0 0 101 1 5 2 1 5 2 2 5 1 2 5 1 1 5')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('8 8 10.59 9 10.5 10.1 10.1 10.60 0 10 5 0 11 5 5 12 0 5 13 0 0 101 1 5 2 1 5 2 2 5 1 2 5 1 1 5')):0 SRID=4326;GEOMETRYCOLLECTION(POINT(8 8 10.5),LINESTRING(9 9 10.5,10.1 10.1 10.6),POLYGON((0 0 10,5 0 11,5 5 12,0 5 13,0 0 10),(1 1 5,2 1 5,2 2 5,1 2 5,1 1 5))) libspatialite-4.1.1/test/sql_stmt_tests/geomconstraints23.testcase0000664000175000017500000000066412163502134022461 00000000000000geometry constraints - MULTIPOLYGONM :memory: #use in-memory database SELECT GeometryConstraints(GeomFromText("MULTIPOLYGONM(((0 0 0, 1 0 0, 1 1 0, 0 0 0)),((0 0 0, -1 0 0, -1 -1 0, 0 0 0)))", 4326), "MULTIPOLYGON", 4326, "XYM") 1 # rows (not including the header row) 1 # columns GeometryConstraints(GeomFromText("MULTIPOLYGONM(((0 0 0, 1 0 0, 1 1 0, 0 0 0)),((0 0 0, -1 0 0, -1 -1 0, 0 0 0)))", 4326), "MULTIPOLYGON", 4326, "XYM") 1 libspatialite-4.1.1/test/sql_stmt_tests/yd_m.testcase0000664000175000017500000000021712163502134020017 00000000000000yards to metres :memory: #use in-memory database SELECT CvtFromYd(10); 1 # rows (not including the header row) 1 # columns CvtFromYd(10); 9.144libspatialite-4.1.1/test/sql_stmt_tests/mbr3.testcase0000664000175000017500000000043712163502134017736 00000000000000MbrContains - Line + Point :memory: #use in-memory database SELECT MbrContains(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(2 1)")); 1 # rows (not including the header row) 1 # columns MbrContains(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(2 1)")) # header 0libspatialite-4.1.1/test/sql_stmt_tests/fromWkb14.testcase0000664000175000017500000000057612163502134020653 00000000000000fromWkb - mandatory POINT, 2 arg :memory: #use in-memory database SELECT Hex(PointFromWkb(AsBinary(GeomFromText("Point(1 2)", 4326)), 4326)) 1 # rows (not including the header row) 1 # columns Hex(PointFromWkb(AsBinary(GeomFromText("Point(1 2)", 4326)), 4326)) 0001E6100000000000000000F03F0000000000000040000000000000F03F00000000000000407C01000000000000000000F03F0000000000000040FE libspatialite-4.1.1/test/sql_stmt_tests/checkspatialmetadata1.testcase0000664000175000017500000000024112163502133023300 00000000000000checkspatialmetadata :memory: #use in-memory database SELECT CheckSpatialMetaData() 1 # rows (not including the header row) 1 # columns CheckSpatialMetaData() 3 libspatialite-4.1.1/test/sql_stmt_tests/asewkb8.testcase0000664000175000017500000000074512163502133020440 00000000000000asewkb - LINESTRINGZ :memory: #use in-memory database SELECT Hex(AsEWKB(GeomFromText("LINESTRINGZ(1 3 2,1 0 2)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsEWKB(GeomFromText("LINESTRINGZ(1 3 2,1 0 2)", 4326))) 535249443D343332363B303130323030303038303032303030303030303030303030303030303030463033463030303030303030303030303038343030303030303030303030303030303430303030303030303030303030463033463030303030303030303030303030303030303030303030303030303030303430 libspatialite-4.1.1/test/sql_stmt_tests/casttotext5.testcase0000664000175000017500000000033012163502133021351 00000000000000CastToText() - DOUBLE :memory: #use in-memory database SELECT CastToText(123.5), TypeOf(CastToText(123.5)) 1 # rows (not including the header row) 2 # columns CastToText(123.5) TypeOf(CastToText(123.5)) 123.5 text libspatialite-4.1.1/test/sql_stmt_tests/normalizelonlat23.testcase0000664000175000017500000000117212163502134022447 00000000000000normalizelonlat- out of range negative lat polygonz :memory: #use in-memory database SELECT AsText(NormalizeLonLat(GeomFromText("POLYGONZ((120 -140 5, 120 -150 20, 130 -150 20, 130 -140 2, 120 -140 5), (122 -142 0, 124 -142 1, 124 -144 2, 122 -144 3, 122 -142 0))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(NormalizeLonLat(GeomFromText("POLYGONZ((120 -140 5, 120 -150 20, 130 -150 20, 130 -140 2, 120 -140 5), (122 -142 0, 124 -142 1, 124 -144 2, 122 -144 3, 122 -142 0))", 4326))) POLYGON Z((120 -40 5, 120 -30 20, 130 -30 20, 130 -40 2, 120 -40 5), (122 -38 0, 124 -38 1, 124 -36 2, 122 -36 3, 122 -38 0)) libspatialite-4.1.1/test/sql_stmt_tests/maxz3.testcase0000664000175000017500000000034012163502134020126 00000000000000MaxZ - Linestring XY :memory: #use in-memory database SELECT ST_MaxZ(GeomFromText('LINESTRING(1 2, 3 4, 5 6)')); 1 # rows (not including the header row) 1 # columns ST_MaxZ(GeomFromText('LINESTRING(1 2, 3 4, 5 6)')) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/setpoint6.testcase0000664000175000017500000000040412163502134021020 00000000000000ST_SetPoint() - NULL index :memory: #use in-memory database SELECT ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), NULL, NULL) 1 # rows (not including the header row) 1 # columns ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), NULL, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/forcenull22.testcase0000664000175000017500000000025212163502134021223 00000000000000ForceAsNull() - INTEGER - matching :memory: #use in-memory database SELECT ForceAsNull(1, 1) 1 # rows (not including the header row) 1 # columns ForceAsNull(1, 1) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makearc20.testcase0000664000175000017500000000031112163502134020627 00000000000000makearc20 - NULL step :memory: #use in-memory database SELECT MakeArc(0, 0, 100, 30, 60, 4326, NULL); 1 # rows (not including the header row) 1 # columns MakeArc(0, 0, 100, 30, 60, 4326, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/mbr24.testcase0000664000175000017500000000044612163502134020021 00000000000000MbrTouches - Line + Point inside :memory: #use in-memory database SELECT MbrTouches(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(0.5 1)")); 1 # rows (not including the header row) 1 # columns MbrTouches(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(0.5 1)")) # header 0libspatialite-4.1.1/test/sql_stmt_tests/fromgeojson26.testcase0000664000175000017500000000177412163502134021600 00000000000000FromGeoJSON - MULTIPOLYGONZ with SRID :memory: #use in-memory database SELECT AsEWkt(GeomFromGeoJSON('{"type":"MultiPolygon","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"coordinates":[[[[10,10,1.2],[0,10,1.3],[0,0,1.1],[0,10,1.3],[10,10,1.2]]],[[[-10,-10,4],[-10,10,5],[10,10,6],[10,-10,5],[-10,-10,4]],[[-8,-8,1],[-2,-8,3],[-2,-2,5],[-8,-2,7],[-8,-8,1]],[[8,8,11],[2,8,13],[2,2,17],[8,2,13],[8,8,11]]]]}')) 1 # rows (not including the header row) 1 # columns AsEWkt(GeomFromGeoJSON('{"type":"MultiPolygon","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"coordinates":[[[[10,10,1.2],[0,10,1.3],[0,0,1.1],[0,10,1.3],[10,10,1.2]]],[[[-10,-10,4],[-10,10,5],[10,10,6],[10,-10,5],[-10,-10,4]],[[-8,-8,1],[-2,-8,3],[-2,-2,5],[-8,-2,7],[-8,-8,1]],[[8,8,11],[2,8,13],[2,2,17],[8,2,13],[8,8,11]]]]}')):0 SRID=3003;MULTIPOLYGON(((10 10 1.2,0 10 1.3,0 0 1.1,0 10 1.3,10 10 1.2)),((-10 -10 4,-10 10 5,10 10 6,10 -10 5,-10 -10 4),(-8 -8 1,-2 -8 3,-2 -2 5,-8 -2 7,-8 -8 1),(8 8 11,2 8 13,2 2 17,8 2 13,8 8 11))) libspatialite-4.1.1/test/sql_stmt_tests/fromgeojson29.testcase0000664000175000017500000000075512163502134021601 00000000000000FromGeoJSON - linestringZ with SRID and bbox :memory: #use in-memory database SELECT AsEWkt(GeomFromGeoJSON('{"type":"LineString","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"bbox":[1,2,4,5],"coordinates":[[1,2,2.3],[4,5,1.2]]}')) 1 # rows (not including the header row) 1 # columns AsEWkt(GeomFromGeoJSON('{"type":"LineString","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"bbox":[1,2,4,5],"coordinates":[[1,2,2.3],[4,5,1.2]]}')):0 SRID=3003;LINESTRING(1 2 2.3,4 5 1.2) libspatialite-4.1.1/test/sql_stmt_tests/makeellipticarc3.testcase0000664000175000017500000000034412163502134022304 00000000000000makeellipticarc3 - BLOB cx :memory: #use in-memory database SELECT MakeEllipticArc(zeroblob(4), 0, 100, 200, 30, 60); 1 # rows (not including the header row) 1 # columns MakeEllipticArc(zeroblob(4), 0, 100, 200, 30, 60) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/in_m.testcase0000664000175000017500000000022112163502134020004 00000000000000inches to metres :memory: #use in-memory database SELECT CvtFromIn(100); 1 # rows (not including the header row) 1 # columns CvtFromIn(100); 2.54libspatialite-4.1.1/test/sql_stmt_tests/makearc17.testcase0000664000175000017500000000030312163502134020636 00000000000000makearc17 - text srid :memory: #use in-memory database SELECT MakeArc(0, 0, 100, 30, 60, 'alpha'); 1 # rows (not including the header row) 1 # columns MakeArc(0, 0, 100, 30, 60, 'alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_tests/dimension7.testcase0000664000175000017500000000051512163502133021143 00000000000000dimension7 - MPOLYGON :memory: #use in-memory database SELECT Dimension(MPolyFromText("MULTIPOLYGON (((30 20, 10 40, 45 40, 30 20)),((15 5, 40 10, 10 20, 5 10, 15 5)))")) 1 # rows (not including the header row) 1 # columns Dimension(MPolyFromText("MULTIPOLYGON (((30 20, 10 40, 45 40, 30 20)),((15 5, 40 10, 10 20, 5 10, 15 5)))")) 2libspatialite-4.1.1/test/sql_stmt_tests/shiftcoords11.testcase0000664000175000017500000000051312163502134021557 00000000000000shiftcoords - Linestring XYZM :memory: #use in-memory database SELECT AsText(ShiftCoords(GeomFromText("LINESTRINGZM(1 2 10 20, 3 4 10 20)"), 1.4, 3.9)); 1 # rows (not including the header row) 1 # columns AsText(ShiftCoords(GeomFromText("LINESTRINGZM(1 2 10 20, 3 4 10 20)"), 1.4, 3.9)) LINESTRING ZM(2.4 5.9 10 20, 4.4 7.9 10 20) libspatialite-4.1.1/test/sql_stmt_tests/expand5.testcase0000664000175000017500000000025312163502134020433 00000000000000Expand - bad blob :memory: #use in-memory database SELECT ST_Expand(zeroblob(28), 1) 1 # rows (not including the header row) 1 # columns ST_Expand(zeroblob(28), 1) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geomfromtext19.testcase0000664000175000017500000000120112163502134021753 00000000000000geomfromtext13 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONZ(MULTIPOLYGONZ(((0 0 9, 5 0 9, 5 5 9, 0 5 9, 0 0 9), (1 1 9, 2 1 9, 2 2 9, 1 2 9, 1 1 9)), ((10 10 9, 11 10 9, 11 11 9, 10 11 9, 10 10 9))))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTIONZ(MULTIPOLYGONZ(((0 0 9, 5 0 9, 5 5 9, 0 5 9, 0 0 9), (1 1 9, 2 1 9, 2 2 9, 1 2 9, 1 1 9)), ((10 10 9, 11 10 9, 11 11 9, 10 11 9, 10 10 9))))')); GEOMETRYCOLLECTION Z(POLYGON Z((0 0 9, 5 0 9, 5 5 9, 0 5 9, 0 0 9), (1 1 9, 2 1 9, 2 2 9, 1 2 9, 1 1 9)), POLYGON Z((10 10 9, 11 10 9, 11 11 9, 10 11 9, 10 10 9))) libspatialite-4.1.1/test/sql_stmt_tests/addpoint27.testcase0000664000175000017500000000050712163502133021043 00000000000000ST_AddPoint() - insert into the middle M :memory: #use in-memory database SELECT AsText(AddPoint(GeomFromText('LINESTRINGM(0 0 1, 1 0 2)'), MakePoint(1, 1), 1)) 1 # rows (not including the header row) 1 # columns AsText(AddPoint(GeomFromText('LINESTRINGM(0 0 1, 1 0 2)'), MakePoint(1, 1), 1)) LINESTRING M(0 0 1, 1 1 0, 1 0 2) libspatialite-4.1.1/test/sql_stmt_tests/fath_m.testcase0000664000175000017500000000025012163502134020322 00000000000000fathoms to metres :memory: #use in-memory database SELECT CvtFromFath(546.806650); 1 # rows (not including the header row) 1 # columns CvtFromFath(546.806650) 1000.0:6 libspatialite-4.1.1/test/sql_stmt_tests/mbr8.testcase0000664000175000017500000000044512163502134017742 00000000000000MbrContains - Line + PointZ :memory: #use in-memory database SELECT MbrContains(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINTZ(1 2 1)")); 1 # rows (not including the header row) 1 # columns MbrContains(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINTZ(1 2 1)")) # header 1libspatialite-4.1.1/test/sql_stmt_tests/swapcoords6.testcase0000664000175000017500000000055512163502134021346 00000000000000swapcoords6 :memory: #use in-memory database SELECT AsText(SwapCoords(GeomFromText("LINESTRINGM(136 -35 1, 135.2 -34.5 2, 136 -35.2 3, 136 -36 4)"))); 1 # rows (not including the header row) 1 # columns AsText(SwapCoords(GeomFromText("LINESTRINGM(136 -35 1, 135.2 -34.5 2, 136 -35.2 3, 136 -36 4)"))); LINESTRING M(-35 136 1, -34.5 135.2 2, -35.2 136 3, -36 136 4) libspatialite-4.1.1/test/sql_stmt_tests/normalizelonlat19.testcase0000664000175000017500000000054012163502134022452 00000000000000normalizelonlat- out of range negative lat linestringz :memory: #use in-memory database SELECT AsText(NormalizeLonLat(GeomFromText("LINESTRINGZ(120 -140 5, 130 -150 20)", 4326))) 1 # rows (not including the header row) 1 # columns AsText(NormalizeLonLat(GeomFromText("LINESTRINGZ(120 -140 5, 130 -150 20)", 4326))) LINESTRING Z(120 -40 5, 130 -30 20) libspatialite-4.1.1/test/sql_stmt_tests/dissolve7.testcase0000664000175000017500000000025112163502133021003 00000000000000dissolve points - null input :memory: #use in-memory database SELECT DissolvePoints(null) 1 # rows (not including the header row) 1 # columns DissolvePoints(null) (NULL)libspatialite-4.1.1/test/sql_stmt_tests/geomfromtext30.testcase0000664000175000017500000000062512163502134021755 00000000000000geomfromtext30 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONZM(MULTILINESTRINGZM((0 1 9 7, 2 3 9 7), (4 5 9 7, 6 7 9 7)))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTIONZM(MULTILINESTRINGZM((0 1 9 7, 2 3 9 7), (4 5 9 7, 6 7 9 7)))')); GEOMETRYCOLLECTION ZM(LINESTRING ZM(0 1 9 7, 2 3 9 7), LINESTRING ZM(4 5 9 7, 6 7 9 7)) libspatialite-4.1.1/test/sql_stmt_tests/geomtype37.testcase0000664000175000017500000000066312163502134021077 00000000000000geometrytype - GEOMETRYCOLLECTIONM two linestring :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("GEOMETRYCOLLECTIONM(LINESTRINGM(4 6 0, 10 0 0), LINESTRINGM(2 3 0, 5 1 0))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) GEOMETRYCOLLECTION M XYM GEOMETRYCOLLECTIONlibspatialite-4.1.1/test/sql_stmt_tests/geometryn12.testcase0000664000175000017500000000053312163502134021244 00000000000000Geometry N - multilinestringz :memory: #use in-memory database SELECT AsText(GeometryN(GeomFromText("MULTILINESTRINGZ((1 2 1.6, 4 2.3 8.7, 1 2 1),(0 1 2, 8 1 1))"), 2)) 1 # rows (not including the header row) 1 # columns AsText(GeometryN(GeomFromText("MULTILINESTRINGZ((1 2 1.6, 4 2.3 8.7, 1 2 1),(0 1 2, 8 1 1))"), 2)) LINESTRING Z(0 1 2, 8 1 1) libspatialite-4.1.1/test/sql_stmt_tests/asewkb2.testcase0000664000175000017500000000053212163502133020424 00000000000000asewkb - POINTZ :memory: #use in-memory database SELECT Hex(AsEWKB(GeomFromText("POINTZ(1 3 1)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsEWKB(GeomFromText("POINTZ(1 3 1)", 4326))) 535249443D343332363B30313031303030303830303030303030303030303030463033463030303030303030303030303038343030303030303030303030303046303346 libspatialite-4.1.1/test/sql_stmt_tests/spatialindex.testcase0000664000175000017500000000041012163502134021547 00000000000000VirtualSpatialIndex sql_stmt_tests/testdb1.sqlite SELECT ROWID FROM SpatialIndex WHERE f_table_name = 'roads' AND f_geometry_column = 'geom' AND search_frame = BuildMBR(11.215, 42.438, 11.218, 42.439); 1 # rows (not including the header row) 1 # columns rowid 26 libspatialite-4.1.1/test/sql_stmt_tests/compressgeometry19.testcase0000664000175000017500000000061412163502133022650 00000000000000CompressGeometry - POINTZM :memory: #use in-memory database SELECT Hex(CompressGeometry(GeomFromText("POINTZM(1 2 1 0)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(CompressGeometry(GeomFromText("POINTZM(1 2 1 0)", 4326))) 0001E6100000000000000000F03F0000000000000040000000000000F03F00000000000000407CB90B0000000000000000F03F0000000000000040000000000000F03F0000000000000000FE libspatialite-4.1.1/test/sql_stmt_tests/badKML3.testcase0000664000175000017500000000121312163502133020240 00000000000000bad KML: Polygon :memory: #use in-memory database SELECT GeomFromKML('0,0 1,0 1,1 0,1 0,00.1,0.1 0.9,0.1 0.9,0.9 0.1,0.9 0.1,0.10,0 1,0 1,1 0,1 0,00.1,0.1 0.9,0.1 0.9,0.9 0.1,0.9 0.1,0.1-122.0822035425683,37.42228990140251,6-122,37,1.3")) 1 # rows 1 # column AsText(GeomFromKML("-122.0822035425683,37.42228990140251,6-122,37,1.3")) MULTIPOINT Z(-122.082204 37.42229 6, -122 37 1.3)libspatialite-4.1.1/test/sql_stmt_tests/wkb5.testcase0000664000175000017500000000063712163502134017745 00000000000000Hex Wkb: GeometryCollection XY (2 points) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTION(POINT(1.2 3.4), POINT(5.6 7.8))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTION(POINT(1.2 3.4), POINT(5.6 7.8))", 4326))); 0107000000020000000101000000333333333333F33F3333333333330B40010100000066666666666616403333333333331F40 libspatialite-4.1.1/test/sql_stmt_tests/locatemeasure18.testcase0000664000175000017500000000067612163502134022102 00000000000000ST_Locate_Between_Measures - Alternate name :memory: #use in-memory database SELECT AsText(ST_LocateBetween(GeomFromText('LINESTRINGM(0 1 2.1, 1 0 1, 2 1 2.1, 3 0 2.2, 4 1 4, 5 0 2.5)'), 2, 3)); 1 # rows (not including the header row) 1 # columns AsText(ST_LocateBetween(GeomFromText('LINESTRINGM(0 1 2.1, 1 0 1, 2 1 2.1, 3 0 2.2, 4 1 4, 5 0 2.5)'), 2, 3)) GEOMETRYCOLLECTION M(POINT M(0 1 2.1), POINT M(5 0 2.5), LINESTRING M(2 1 2.1, 3 0 2.2)) libspatialite-4.1.1/test/sql_stmt_tests/greatcircle.testcase0000664000175000017500000000030112163502134021345 00000000000000great circle length :memory: SELECT GreatCircleLength(GeomFromText("LINESTRING(0 0, 1 0)", 4326)); 1 # rows 1 # column GreatCircleLength(GeomFromText("LINESTRING(0 0, 1 0)", 4326)) 111195.07:9 libspatialite-4.1.1/test/sql_stmt_tests/mbr31.testcase0000664000175000017500000000044412163502134020015 00000000000000MbrDisjoint - Line + Point right :memory: #use in-memory database SELECT MbrDisjoint(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(3 1)")); 1 # rows (not including the header row) 1 # columns MbrDisjoint(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(3 1)")) # header 1libspatialite-4.1.1/test/sql_stmt_tests/wkb21.testcase0000664000175000017500000000104712163502134020017 00000000000000Hex Wkb: GeometryCollection XY (single polygon) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTION(POLYGON((10 10, 11 10, 11 11, 10 11, 10 10)))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTION(POLYGON((10 10, 11 10, 11 11, 10 11, 10 10)))", 4326))); 010700000001000000010300000001000000050000000000000000002440000000000000244000000000000026400000000000002440000000000000264000000000000026400000000000002440000000000000264000000000000024400000000000002440 libspatialite-4.1.1/test/sql_stmt_tests/casttomulti5.testcase0000664000175000017500000000045412163502133021526 00000000000000casttomulti - POLYGON :memory: #use in-memory database SELECT AsText(CastToMulti(GeomFromText("POLYGON((0 1, 2 1, 2 4, 0 4, 0 1))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToMulti(GeomFromText("POLYGON((0 1, 2 1, 2 4, 0 4, 0 1))"))) MULTIPOLYGON(((0 1, 2 1, 2 4, 0 4, 0 1))) libspatialite-4.1.1/test/sql_stmt_tests/buildmbr14.testcase0000664000175000017500000000026712163502133021040 00000000000000buildmbr - null args, no SRID :memory: #use in-memory database SELECT BuildMbr(NULL, 4, 2, NULL) 1 # rows (not including the header row) 1 # columns BuildMbr(NULL, 4, 2, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/greatcircle-poly6.testcase0000664000175000017500000000036412163502134022425 00000000000000great circle length linestringzm :memory: SELECT GreatCircleLength(GeomFromText("LINESTRINGZM(0 0 2 3, 0 1 3 4, 0 0 2 3)", 4326)); 1 # rows 1 # column GreatCircleLength(GeomFromText("LINESTRINGZM(0 0 2 3, 0 1 3 4, 0 0 2 3)", 4326)) 222390.15:9 libspatialite-4.1.1/test/sql_stmt_tests/collect34.testcase0000664000175000017500000000070012163502133020657 00000000000000collect - LineStringM, LineStringZM :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("LINESTRINGM(1 2 4, 3 4 2)"), GeomFromText("LINESTRINGZM(4 5 3.2 1, 1 2 4.6 2, 4 2 3.1 3)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("LINESTRINGM(1 2 4, 3 4 2)"), GeomFromText("LINESTRINGZM(4 5 3.2 1, 1 2 4.6 2, 4 2 3.1 3)"))) MULTILINESTRING ZM((1 2 0 4, 3 4 0 2), (4 5 3.2 1, 1 2 4.6 2, 4 2 3.1 3)) libspatialite-4.1.1/test/sql_stmt_tests/makeellipticarc4.testcase0000664000175000017500000000032612163502134022305 00000000000000makeellipticarc4 - NULL cy :memory: #use in-memory database SELECT MakeEllipticArc(0, NULL, 100, 200, 30, 60); 1 # rows (not including the header row) 1 # columns MakeEllipticArc(0, NULL, 100, 200, 30, 60) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geomfromkml2.testcase0000664000175000017500000000015212163502134021466 00000000000000From KML - bad text :memory: SELECT GeomFromKML("Hell0!") 1 # rows 1 # column GeomFromKML("Hell0!") (NULL)libspatialite-4.1.1/test/sql_stmt_tests/makeline23.testcase0000664000175000017500000000044612163502134021025 00000000000000makeline - GEOMETRYCOLLECTION (error) :memory: #use in-memory database SELECT MakeLine(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2),LINESTRING(4 1, 2 6))")) 1 # rows (not including the header row) 1 # columns MakeLine(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2),LINESTRING(4 1, 2 6))")) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/asbinary14.testcase0000664000175000017500000000142212163502133021042 00000000000000asbinary - MULTILINESTRINGZM :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("MULTILINESTRINGZM((0 0 0 1, 3 0 1 1,3 0 2 1, 3 3 3 1), (0 0 1 2, 0 3 2 2))", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("MULTILINESTRINGZM((0 0 0 1, 3 0 1 1,3 0 2 1, 3 3 3 1), (0 0 1 2, 0 3 2 2))", 4326))) 01BD0B00000200000001BA0B000004000000000000000000000000000000000000000000000000000000000000000000F03F00000000000008400000000000000000000000000000F03F000000000000F03F000000000000084000000000000000000000000000000040000000000000F03F000000000000084000000000000008400000000000000840000000000000F03F01BA0B00000200000000000000000000000000000000000000000000000000F03F00000000000000400000000000000000000000000000084000000000000000400000000000000040 libspatialite-4.1.1/test/sql_stmt_tests/wkttosql1.testcase0000664000175000017500000000027712163502134021046 00000000000000ST_WKTToSQL :memory: #use in-memory database SELECT AsEWKT(ST_WKTToSQL("Point(1 2)")) 1 # rows (not including the header row) 1 # columns AsEWKT(ST_WKTToSQL("Point(1 2)")) SRID=0;POINT(1 2) libspatialite-4.1.1/test/sql_stmt_tests/forcenull25.testcase0000664000175000017500000000027712163502134021235 00000000000000ForceAsNull() - TEXT - mismatching :memory: #use in-memory database SELECT ForceAsNull('alpha', 'beta') 1 # rows (not including the header row) 1 # columns ForceAsNull('alpha', 'beta') alpha libspatialite-4.1.1/test/sql_stmt_tests/wkb9.testcase0000664000175000017500000000057712163502134017754 00000000000000Hex Wkb: MultiLinestring XY (single line) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("MULTILINESTRING((1.2 3.4, 5.6 7.8))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("MULTILINESTRING((1.2 3.4, 5.6 7.8))", 4326))); 010500000001000000010200000002000000333333333333F33F3333333333330B4066666666666616403333333333331F40 libspatialite-4.1.1/test/sql_stmt_tests/checkspatialmetadata3.testcase0000664000175000017500000000031512163502133023304 00000000000000checkspatialmetadata - FDO sql_stmt_tests/fdo-wkb.sqlite_RO #use special test database, read only SELECT CheckSpatialMetaData() 1 # rows (not including the header row) 1 # columns CheckSpatialMetaData() 2 libspatialite-4.1.1/test/sql_stmt_tests/sanitizeGeometry7.testcase0000664000175000017500000000067312163502134022526 00000000000000Sanitize Geometry - POLYGON ZM :memory: #use in-memory database SELECT AsEWkt(SanitizeGeometry(GeomFromText("POLYGON ZM((-71 42 2 0, -70 41 2 0, -70 42 3 0, -70 42 4 0, -71 42 2 0))", 4326))) 1 # rows (not including the header row) 1 # columns AsEWkt(SanitizeGeometry(GeomFromText("POLYGON ZM((-71 42 2 0, -70 41 2 0, -70 42 3 0, -70 42 4 0, -71 42 2 0))", 4326))) SRID=4326;POLYGON((-71 42 2 0,-70 41 2 0,-70 42 3 0,-70 42 4 0,-71 42 2 0)) libspatialite-4.1.1/test/sql_stmt_tests/st_m1.testcase0000664000175000017500000000027212163502134020113 00000000000000ST_M1 :memory: #use in-memory database SELECT ST_M(MakePointZM(136, -35, 635.2, 10.2)); 1 # rows (not including the header row) 1 # columns ST_M(MakePointZM(136, -35, 635.2, 10.2)) 10.2 libspatialite-4.1.1/test/sql_stmt_tests/fromgml36.testcase0000664000175000017500000000102212163502134020676 00000000000000FromGML - poslist polygon, no namespace :memory: #use in-memory database SELECT AsText(GeomFromGml('0 0 -100 0 -100 100 0 100 0 0')) 1 # rows (not including the header row) 1 # columns AsText(GeomFromGml('0 0 -100 0 -100 100 0 100 0 0')):0 POLYGON((0 0, -100 0, -100 100, 0 100, 0 0)) libspatialite-4.1.1/test/sql_stmt_tests/normalizelonlat16.testcase0000664000175000017500000000027312163502134022452 00000000000000normalizelonlat- bad blob :memory: #use in-memory database SELECT NormalizeLonLat(zeroblob(100)) 1 # rows (not including the header row) 1 # columns NormalizeLonLat(zeroblob(100)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/forcenull24.testcase0000664000175000017500000000026112163502134021225 00000000000000ForceAsNull() - DOUBLE - matching :memory: #use in-memory database SELECT ForceAsNull(1.5, 1.5) 1 # rows (not including the header row) 1 # columns ForceAsNull(1.5, 1.5) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/ring21.testcase0000664000175000017500000000033412163502134020171 00000000000000InteriorRingN - POINT (error) :memory: #use in-memory database SELECT InteriorRingN(GeomFromText("POINT(1 2)"), 1); 1 # rows (not including the header row) 1 # columns InteriorRingN(GeomFromText("POINT(1 2)"), 1) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/ndims5.testcase0000664000175000017500000000047512163502134020274 00000000000000Coord Dimensions - GeometryCollection XYM :memory: #use in-memory database SELECT CoordDimension(geom), ST_NDims(geom) FROM (SELECT GeomFromText('GEOMETRYCOLLECTIONM(POINTM(1 2 10), LINESTRINGM(3 4 11, 5 6 12))') AS geom); 1 # rows (not including the header row) 2 # columns CoordDimension(geom) ST_NDims(geom) XYM 3 libspatialite-4.1.1/test/sql_stmt_tests/assvg6.testcase0000664000175000017500000000021712163502133020277 00000000000000assvg - 1 arg - integer :memory: #use in-memory database SELECT assvg(49) 1 # rows (not including the header row) 1 # columns assvg(49) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/badwkt8.testcase0000664000175000017500000000032212163502133020427 00000000000000bad WKT: illegal GeometryCollection :memory: #use in-memory database SELECT GeomFromText("GEOMETRYCOLLECTION()"); 1 # rows (not including the header row) 1 # columns GeomFromText("GEOMETRYCOLLECTION()") (NULL) libspatialite-4.1.1/test/sql_stmt_tests/collect15.testcase0000664000175000017500000000050012163502133020654 00000000000000collect - PointM, PointZM :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POINTM(4 5 3.2)"), GeomFromText("POINTZM(1 2 6 4)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POINTM(4 5 3.2)"), GeomFromText("POINTZM(1 2 6 4)"))) MULTIPOINT ZM(4 5 0 3.2, 1 2 6 4) libspatialite-4.1.1/test/sql_stmt_tests/badEWKT5.testcase0000664000175000017500000000050612163502133020375 00000000000000bad EWKT: MultiLinestring :memory: #use in-memory database SELECT GeomFromEWKT("SRID=4326;MULTILINESTRING((11.2 12.3, 11.3 12.4, 11.4 12.5), (11.5 12.6, 11.6 12.7)"); 1 # rows (not including the header row) 1 # columns GeomFromEWKT("SRID=4326;MULTILINESTRING((11.2 12.3, 11.3 12.4, 11.4 12.5), (11.5 12.6, 11.6 12.7)") (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geomtype2.testcase0000664000175000017500000000045612163502134021007 00000000000000geometrytype2 - POINTZ :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom) from (SELECT GeomFromText("POINTZ(-71.1043443253471 42.315067601582900 26.2)") as geom) dummy; 1 # rows (not including the header row) 2 # columns GeometryType(geom) CoordDimension(geom) POINT Z XYZlibspatialite-4.1.1/test/sql_stmt_tests/translate3.testcase0000664000175000017500000000031412163502134021145 00000000000000translate - bad blob (null) :memory: #use in-memory database SELECT ST_Translate(zeroblob(4), -1, -3, -4); 1 # rows (not including the header row) 1 # columns ST_Translate(zeroblob(4), -1, -3, -4) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makepoint7.testcase0000664000175000017500000000036212163502134021146 00000000000000makepoint7 :memory: #use in-memory database SELECT AsWkt(MakePoint(-71.1043443253471, 42.3150676015829), 4); 1 # rows (not including the header row) 1 # columns AsWkt(MakePoint(-71.1043443253471, 42.3150676015829), 4) POINT(-71.1043 42.3151) libspatialite-4.1.1/test/sql_stmt_tests/buildmbr7.testcase0000664000175000017500000000027312163502133020757 00000000000000buildmbr - null args :memory: #use in-memory database SELECT BuildMbr(5, 6, NULL, NULL, NULL) 1 # rows (not including the header row) 1 # columns BuildMbr(5, 6, NULL, NULL, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makeellipse2.testcase0000664000175000017500000000030012163502134021435 00000000000000makeellipse2 - text cx :memory: #use in-memory database SELECT MakeEllipse('alpha', 0, 100, 200); 1 # rows (not including the header row) 1 # columns MakeEllipse('alpha', 0, 100, 200) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/fromgml57.testcase0000664000175000017500000000204612163502134020710 00000000000000FromGML - Polygon LinearRing outer/innerBoundary :memory: #use in-memory database SELECT AsText(GeomFromGml('0 05 05 50 50 01 12 12 21 21 1')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromGml('0 05 05 50 50 01 12 12 21 21 1')):0 POLYGON((0 0, 5 0, 5 5, 0 5, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)) libspatialite-4.1.1/test/sql_stmt_tests/geomconstraints11.testcase0000664000175000017500000000037212163502134022452 00000000000000geometry constraints - 4 arg, zeroblob 20 :memory: #use in-memory database SELECT GeometryConstraints(zeroblob(20), "POINT", 4326, "XYM") 1 # rows (not including the header row) 1 # columns GeometryConstraints(zeroblob(20), "POINT", 4326, "XYM") -1 libspatialite-4.1.1/test/sql_stmt_tests/asbinary10.testcase0000664000175000017500000000044612163502133021043 00000000000000asbinary - POINTZM :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("POINTZM(1 2 3 0)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("POINTZM(1 2 3 0)", 4326))) 01B90B0000000000000000F03F000000000000004000000000000008400000000000000000 libspatialite-4.1.1/test/sql_stmt_tests/garsmbr20.testcase0000664000175000017500000000023612163502134020667 00000000000000garsmbr - bad coords :memory: #use in-memory database SELECT GARSMbr("AA123A1") 1 # rows (not including the header row) 1 # columns GARSMbr("AA123A1") (NULL) libspatialite-4.1.1/test/sql_stmt_tests/fromgml17.testcase0000664000175000017500000000315012163502134020701 00000000000000FromGML - GeometryCollection v2 3D :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('8,8,10.59,9,10.5 10.1,10.1,10.60,0,10 5,0,11 5,5,12 0,5,13 0,0,101,1,5 2,1,5 2,2,5 1,2,5 1,1,5')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('8,8,10.59,9,10.5 10.1,10.1,10.60,0,10 5,0,11 5,5,12 0,5,13 0,0,101,1,5 2,1,5 2,2,5 1,2,5 1,1,5')):0 SRID=4326;GEOMETRYCOLLECTION(POINT(8 8 10.5),LINESTRING(9 9 10.5,10.1 10.1 10.6),POLYGON((0 0 10,5 0 11,5 5 12,0 5 13,0 0 10),(1 1 5,2 1 5,2 2 5,1 2 5,1 1 5))) libspatialite-4.1.1/test/sql_stmt_tests/makepointm-null1.testcase0000664000175000017500000000034312163502134022264 00000000000000makepointm-null1 :memory: #use in-memory database SELECT AsText(MakePointM("hello", 42.3150676015829, 12.6389)); 1 # rows (not including the header row) 1 # columns AsText(MakePointM("hello", 42.3150676015829, 12.6389)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makepointm-null2.testcase0000664000175000017500000000030712163502134022265 00000000000000makepointm-null2 :memory: #use in-memory database SELECT AsText(MakePointM(26.0, "world", 18.63)); 1 # rows (not including the header row) 1 # columns AsText(MakePointM(26.0, "world", 18.63)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geomfromtext5.testcase0000664000175000017500000000043212163502134021673 00000000000000geomfromtext5 :memory: #use in-memory database SELECT AsWkt(GeomFromText("POINT(-71.1043443253471 42.315067601582900)", 4326), 4); 1 # rows (not including the header row) 1 # columns AsWkt(GeomFromText("POINT(-71.1043443253471 42.315067601582900)", 4326), 4) POINT(-71.1043 42.3151)libspatialite-4.1.1/test/sql_stmt_tests/addpoint14.testcase0000664000175000017500000000043612163502133021040 00000000000000ST_AddPoint() - BLOB index :memory: #use in-memory database SELECT ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1), zeroblob(4)) 1 # rows (not including the header row) 1 # columns ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1), zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/fromWkb8.testcase0000664000175000017500000000046512163502134020573 00000000000000fromWkb - mandatory LINESTRING, but POLYGON arg :memory: #use in-memory database SELECT LinestringFromWkb(AsBinary(GeomFromText("POLYGON((1 2, 3 1, 4 4, 1 2))", 4326))) 1 # rows (not including the header row) 1 # columns LinestringFromWkb(AsBinary(GeomFromText("POLYGON((1 2, 3 1, 4 4, 1 2))", 4326))) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/badGeoJSON7.testcase0000664000175000017500000000107012163502133021026 00000000000000bad GeoJSON: GeometryCollection :memory: #use in-memory database SELECT GeomFromGeoJSON('{"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[3,3]},{"type":"LineString","coordinates":[[4,4],[5,5]]},{"type":"Polygon","coordinates":[[[0,0],[1,0],[1,1],[0,1],[0,0]]]}]'); 1 # rows (not including the header row) 1 # columns GeomFromGeoJSON('{"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[3,3]},{"type":"LineString","coordinates":[[4,4],[5,5]]},{"type":"Polygon","coordinates":[[[0,0],[1,0],[1,1],[0,1],[0,0]]]}]'):0 (NULL) libspatialite-4.1.1/test/sql_stmt_tests/wkb30.testcase0000664000175000017500000000140012163502134020010 00000000000000Hex Wkb: GeometryCollection XYZ (point, polygon) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(1 2 100), POLYGONZ((10 10 100, 11 10 101, 11 11 102, 10 11 103, 10 10 100)))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(1 2 100), POLYGONZ((10 10 100, 11 10 101, 11 11 102, 10 11 103, 10 10 100)))", 4326))); 01EF0300000200000001E9030000000000000000F03F0000000000000040000000000000594001EB0300000100000005000000000000000000244000000000000024400000000000005940000000000000264000000000000024400000000000405940000000000000264000000000000026400000000000805940000000000000244000000000000026400000000000C05940000000000000244000000000000024400000000000005940 libspatialite-4.1.1/test/sql_stmt_tests/makearc9.testcase0000664000175000017500000000026512163502134020566 00000000000000makearc9 - NULL start :memory: #use in-memory database SELECT MakeArc(0, 0, 100, NULL, 60); 1 # rows (not including the header row) 1 # columns MakeArc(0, 0, 100, NULL, 60) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/asewkb10.testcase0000664000175000017500000000106012163502133020500 00000000000000asewkb - LINESTRINGZM :memory: #use in-memory database SELECT Hex(AsEWKB(GeomFromText("LINESTRINGZM(1 3 2 0,1 0 2 0)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsEWKB(GeomFromText("LINESTRINGZM(1 3 2 0,1 0 2 0)", 4326))) 535249443D343332363B3031303230303030433030323030303030303030303030303030303030304630334630303030303030303030303030383430303030303030303030303030303034303030303030303030303030303030303030303030303030303030303046303346303030303030303030303030303030303030303030303030303030303030343030303030303030303030303030303030 libspatialite-4.1.1/test/sql_stmt_tests/togars3.testcase0000664000175000017500000000034012163502134020446 00000000000000togars - southeast :memory: #use in-memory database SELECT ToGARS(GeomFromText("Point(179.999 -89.999)", 4326)) 1 # rows (not including the header row) 1 # columns ToGARS(GeomFromText("Point(179.999 -89.999)", 4326)) 720AA49libspatialite-4.1.1/test/sql_stmt_tests/geomfromkml21.testcase0000664000175000017500000000237512163502134021560 00000000000000From KML - MultiGeometry POLYGON [hole] x 2 - 3D :memory: SELECT AsText(GeomFromKML("10,10,100 15,10,101 15,15,102 10,15,103 10,10,10011,11,100 12,11,101 12,12,102 11,12,103 11,11,10016,16,100 17,16,101 17,17,102 16,17,103 16,16,100")) 1 # rows 1 # column AsText(GeomFromKML("10,10,100 15,10,101 15,15,102 10,15,103 10,10,10011,11,100 12,11,101 12,12,102 11,12,103 11,11,10016,16,100 17,16,101 17,17,102 16,17,103 16,16,100")) MULTIPOLYGON Z(((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 12 12 102, 11 12 103, 11 11 100)), ((16 16 100, 17 16 101, 17 17 102, 16 17 103, 16 16 100))) libspatialite-4.1.1/test/sql_stmt_tests/garsmbr10.testcase0000664000175000017500000000036412163502134020670 00000000000000garsmbr - 001AB2 :memory: #use in-memory database SELECT AsText(GARSMbr("001AB2")) 1 # rows (not including the header row) 1 # columns AsText(GARSMbr("001AB2")) POLYGON((-179.75 -89.25, -179.5 -89.25, -179.5 -89, -179.75 -89, -179.75 -89.25)) libspatialite-4.1.1/test/sql_stmt_tests/addpoint5.testcase0000664000175000017500000000027312163502133020757 00000000000000ST_AddPoint() - BLOB line :memory: #use in-memory database SELECT ST_AddPoint(zeroblob(4), NULL) 1 # rows (not including the header row) 1 # columns ST_AddPoint(zeroblob(4), NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/fromewkt18.testcase0000664000175000017500000000060612163502134021100 00000000000000fromewkt18 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTIONM(MULTILINESTRINGM((0 1 9, 2 3 9), (4 5 9, 6 7 9)))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTIONM(MULTILINESTRINGM((0 1 9, 2 3 9), (4 5 9, 6 7 9)))')); GEOMETRYCOLLECTION M(LINESTRING M(0 1 9, 2 3 9), LINESTRING M(4 5 9, 6 7 9)) libspatialite-4.1.1/test/sql_stmt_tests/makeellipticarc7.testcase0000664000175000017500000000033412163502134022307 00000000000000makeellipticarc7 - text x_axis :memory: #use in-memory database SELECT MakeEllipticArc(0, 0, 'alpha', 200, 30, 60); 1 # rows (not including the header row) 1 # columns MakeEllipticArc(0, 0, 'alpha', 200, 30, 60) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/casttolinestring5.testcase0000664000175000017500000000047012163502133022550 00000000000000casttolinestring - MULTILINESTRING, 2 linestrings :memory: #use in-memory database SELECT AsText(CastToLineString(GeomFromText("MULTILINESTRING((4 1, 3 4),(4 6, 3 1))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToLineString(GeomFromText("MULTILINESTRING((4 1, 3 4),(4 6, 3 1))"))) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/casttoxym6.testcase0000664000175000017500000000034212163502133021206 00000000000000casttoxym - POINT :memory: #use in-memory database SELECT AsText(CastToXYM(GeomFromText("POINTM(4 3 20)"))) 1 # rows (not including the header row) 1 # columns AsText(CastToXYM(GeomFromText("POINTM(4 3 20)"))) POINT M(4 3 20) libspatialite-4.1.1/test/sql_stmt_tests/compressgeometry18.testcase0000664000175000017500000000056512163502133022654 00000000000000CompressGeometry - POINTM :memory: #use in-memory database SELECT Hex(CompressGeometry(GeomFromText("POINTM(1 2 1)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(CompressGeometry(GeomFromText("POINTM(1 2 1)", 4326))) 0001E6100000000000000000F03F0000000000000040000000000000F03F00000000000000407CD1070000000000000000F03F0000000000000040000000000000F03FFE libspatialite-4.1.1/test/sql_stmt_tests/wkb4.testcase0000664000175000017500000000054712163502134017744 00000000000000Hex Wkb: MultiPoint XYZM (single point) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("MULTIPOINTZM(1.2 3.4 100 12)", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("MULTIPOINTZM(1.2 3.4 100 12)", 4326))); 01BC0B00000100000001B90B0000333333333333F33F3333333333330B4000000000000059400000000000002840 libspatialite-4.1.1/test/sql_stmt_tests/makeline30.testcase0000664000175000017500000000050612163502134021020 00000000000000makeline - MULTIPOINT (XYZM valid - direct order) :memory: #use in-memory database SELECT AsText(MakeLine(GeomFromText("MULTIPOINTZM(1 2 10 100,3 4 11 111)"), 1)) 1 # rows (not including the header row) 1 # columns AsText(MakeLine(GeomFromText("MULTIPOINTZM(1 2 10 100,3 4 11 111)"), 1)) LINESTRING ZM(1 2 10 100, 3 4 11 111) libspatialite-4.1.1/test/sql_stmt_tests/mlinefromtext1.testcase0000664000175000017500000000056312163502134022051 00000000000000multilinefromtext1 :memory: #use in-memory database SELECT AsWkt(MLineFromText("MULTILINESTRING ((10 10, 20 20, 10 40),(40 40, 30 30, 40 20, 30 10))", 4326)) 1 # rows (not including the header row) 1 # columns AsWkt(MLineFromText("MULTILINESTRING ((10 10, 20 20, 10 40),(40 40, 30 30, 40 20, 30 10))", 4326)) MULTILINESTRING((10 10,20 20,10 40),(40 40,30 30,40 20,30 10))libspatialite-4.1.1/test/sql_stmt_tests/rotatecoords2.testcase0000664000175000017500000000127212163502134021663 00000000000000rotate coords - PointZ :memory: #use in-memory database SELECT AsText(RotateCoords(geom, 0)), AsText(RotateCoords(geom, 90.0)), AsText(RotateCoords(geom, 180.0)), AsText(RotateCoords(geom, -90)), RotateCoords(zeroblob(20), 10), RotateCoords(geom, "hello"), RotateCoords("foo", 30) FROM (SELECT GeomFromText("POINTZ(1 2 1.5)") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(RotateCoords(geom, 0)) AsText(RotateCoords(geom, 90.0)) AsText(RotateCoords(geom, 180.0)) AsText(RotateCoords(geom, -90)) RotateCoords(zeroblob(20), 10) RotateCoords(geom, "hello") RotateCoords("foo", 30) POINT Z(1 2 1.5) POINT Z(2 -1 1.5) POINT Z(-1 -2 1.5) POINT Z(-2 1 1.5) (NULL) (NULL) (NULL)libspatialite-4.1.1/test/sql_stmt_tests/fromWkb21.testcase0000664000175000017500000000070012163502134020636 00000000000000fromWkb - MULTIPOINT :memory: #use in-memory database SELECT Hex(MultiPointFromWkb(AsBinary(GeomFromText("MULTIPOINT(1 2,2 1)")), 4326)); 1 # rows (not including the header row) 1 # columns Hex(MultiPointFromWkb(AsBinary(GeomFromText("MULTIPOINT(1 2,2 1)")), 4326)) 0001E6100000000000000000F03F000000000000F03F000000000000004000000000000000407C04000000020000006901000000000000000000F03F000000000000004069010000000000000000000040000000000000F03FFE libspatialite-4.1.1/test/sql_stmt_tests/casttopoly6.testcase0000664000175000017500000000052612163502133021360 00000000000000casttopoly - Geometry collection, polygon :memory: #use in-memory database SELECT AsText(CastToPolygon(GeomFromText("GEOMETRYCOLLECTION(POLYGON((4 3, 4 1, 0 3, 4 3)))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToPolygon(GeomFromText("GEOMETRYCOLLECTION(POLYGON((4 3, 4 1, 0 3, 4 3)))"))) POLYGON((4 3, 4 1, 0 3, 4 3)) libspatialite-4.1.1/test/sql_stmt_tests/casttosingle12.testcase0000664000175000017500000000047112163502133021732 00000000000000casttosingle - MULTIPOLYGON, one polygon :memory: #use in-memory database SELECT AsText(CastToSingle(GeomFromText("MULTIPOLYGON(((4 3, 1 1, 9 8, 4 3)))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToSingle(GeomFromText("MULTIPOLYGON(((4 3, 1 1, 9 8, 4 3)))"))) POLYGON((4 3, 1 1, 9 8, 4 3)) libspatialite-4.1.1/test/sql_stmt_tests/buildmbr1.testcase0000664000175000017500000000030712163502133020747 00000000000000buildmbr - null args :memory: #use in-memory database SELECT BuildMbr(NULL, NULL, NULL, NULL, NULL) 1 # rows (not including the header row) 1 # columns BuildMbr(NULL, NULL, NULL, NULL, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/ismeasured2.testcase0000664000175000017500000000025512163502134021314 00000000000000IsMeasured- bad blob :memory: #use in-memory database SELECT ST_IsMeasured(zeroblob(48)) 1 # rows (not including the header row) 1 # columns ST_IsMeasured(zeroblob(48)) -1 libspatialite-4.1.1/test/sql_stmt_tests/casttosingle4.testcase0000664000175000017500000000037012163502133021651 00000000000000casttosingle - MULTIPOINT, one point :memory: #use in-memory database SELECT AsText(CastToSingle(GeomFromText("MULTIPOINT(3 1)"))) 1 # rows (not including the header row) 1 # columns AsText(CastToSingle(GeomFromText("MULTIPOINT(3 1)"))) POINT(3 1) libspatialite-4.1.1/test/sql_stmt_tests/compressgeometry46.testcase0000664000175000017500000000051112163502133022644 00000000000000CompressGeometry - GEOMETRYCOLLECTION (1 Point) :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2))", 4326))) GEOMETRYCOLLECTION(POINT(1 2)) libspatialite-4.1.1/test/sql_stmt_tests/reflectcoords14.testcase0000664000175000017500000000104512163502134022072 00000000000000reflectcoords14 :memory: #use in-memory database SELECT AsText(ReflectCoords(GeomFromText("POLYGONM((-10 -10 1, -20 -10 2, -20 -20 3, -20 -11 4, -10 -10 1), (-11 -11 1, -12 -11 2, -12 -12 3, -11 -12 4, -11 -11 1))"), 1, 1)); 1 # rows (not including the header row) 1 # columns AsText(ReflectCoords(GeomFromText("POLYGONM((-10 -10 1, -20 -10 2, -20 -20 3, -20 -11 4, -10 -10 1), (-11 -11 1, -12 -11 2, -12 -12 3, -11 -12 4, -11 -11 1))"), 1, 1)) POLYGON M((10 10 1, 20 10 2, 20 20 3, 20 11 4, 10 10 1), (11 11 1, 12 11 2, 12 12 3, 11 12 4, 11 11 1)) libspatialite-4.1.1/test/sql_stmt_tests/geojson6.testcase0000664000175000017500000000117512163502134020625 00000000000000GeoJSON GeometryCollection (Linestring + Linestring) :memory: #use in-memory database SELECT AsGeoJSON(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(5 5, 6 6), LINESTRING(7 8, 8 7))", 4326), 2, 5); 1 # rows (not including the header row) 1 # columns AsGeoJSON(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(5 5, 6 6), LINESTRING(7 8, 8 7))", 4326), 2, 5) {"type":"GeometryCollection","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:EPSG:4326"}},"bbox":[5,5,8,8],"geometries":[{"type":"LineString","coordinates":[[5,5],[6,6]]},{"type":"LineString","coordinates":[[7,8],[8,7]]}]}:0 # trailing ":0" required to avoid truncation !!! libspatialite-4.1.1/test/sql_stmt_tests/geomtype66.testcase0000664000175000017500000000060212163502134021072 00000000000000geometrytype - MULTIPOINTZM :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("MULTIPOINTZM (10 40 10 1, 40 30 15 2, 20 20 20 2, 30 10 9 1)") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) MULTIPOINT ZM XYZM MULTIPOINT libspatialite-4.1.1/test/sql_stmt_tests/isempty4.testcase0000664000175000017500000000021712163502134020645 00000000000000isempty - text :memory: #use in-memory database SELECT IsEmpty("hello") 1 # rows (not including the header row) 1 # columns IsEmpty("hello") -1libspatialite-4.1.1/test/sql_stmt_tests/makeline10.testcase0000664000175000017500000000046712163502134021024 00000000000000makeline10 :memory: #use in-memory database SELECT AsText(MakeLine(GeomFromText("POINTM(0 0 38.5)"), GeomFromText("POINTM(1 2 38.64)"))); 1 # rows (not including the header row) 1 # columns AsText(MakeLine(GeomFromText("POINTM(0 0 38.5)"), GeomFromText("POINTM(1 2 38.64)"))) LINESTRING M(0 0 38.5, 1 2 38.64) libspatialite-4.1.1/test/sql_stmt_tests/fromgeojson7.testcase0000664000175000017500000000100312163502134021500 00000000000000FromGeoJSON - polygon Z :memory: #use in-memory database SELECT AsText(GeomFromGeoJSON('{"type":"Polygon","coordinates":[[[1,2,2.3],[4,5,1.2],[2,2,1.6],[1,2,2.3]],[[1.5,2.5,2],[3.5,4.5,9],[2.5,3,1],[1.5,2.5,2]]]}')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromGeoJSON('{"type":"Polygon","coordinates":[[[1,2,2.3],[4,5,1.2],[2,2,1.6],[1,2,2.3]],[[1.5,2.5,2],[3.5,4.5,9],[2.5,3,1],[1.5,2.5,2]]]}')):0 POLYGON Z((1 2 2.3, 4 5 1.2, 2 2 1.6, 1 2 2.3), (1.5 2.5 2, 3.5 4.5 9, 2.5 3 1, 1.5 2.5 2)) libspatialite-4.1.1/test/sql_stmt_tests/asgml3.testcase0000664000175000017500000000027612163502133020261 00000000000000asgml - bad args (broken blob, 3 arg) :memory: #use in-memory database SELECT asgml(2, zeroblob(20), 5); 1 # rows (not including the header row) 1 # columns asgml(2, zeroblob(20), 5) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/compressgeometry13.testcase0000664000175000017500000000074512163502133022647 00000000000000CompressGeometry - MULTILINESTRINGZ :memory: #use in-memory database SELECT Hex(CompressGeometry(GeomFromText("MULTILINESTRINGZ((1 2 2, 3 4 2))"))) 1 # rows (not including the header row) 1 # columns Hex(CompressGeometry(GeomFromText("MULTILINESTRINGZ((1 2 2, 3 4 2))"))) 000100000000000000000000F03F0000000000000040000000000000084000000000000010407CED03000001000000692A460F0002000000000000000000F03F00000000000000400000000000000040000000000000084000000000000010400000000000000040FE libspatialite-4.1.1/test/sql_stmt_tests/gml13.testcase0000664000175000017500000000172112163502134020013 00000000000000GML MultiPolygon Z :memory: #use in-memory database SELECT AsGML(3, GeomFromText("MULTIPOLYGONZ(((10 10 100, 20 10 101, 20 20 102, 10 20 103, 10 10 100)), ((85 85 80, 90 85 90, 90 90 95, 85 90 90, 85 85 80)))", 4326)); 1 # rows (not including the header row) 1 # columns AsGML(3, GeomFromText("MULTIPOLYGONZ(((10 10 100, 20 10 101, 20 20 102, 10 20 103, 10 10 100)), ((85 85 80, 90 85 90, 90 90 95, 85 90 90, 85 85 80)))", 4326)) 10 10 100 20 10 101 20 20 102 10 20 103 10 10 10085 85 80 90 85 90 90 90 95 85 90 90 85 85 80:0 # trailing ":0" required to avoid truncation !!! libspatialite-4.1.1/test/sql_stmt_tests/fromewkt15.testcase0000664000175000017500000000212512163502134021073 00000000000000fromewkt15 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(POINT(8 8 9), MULTIPOLYGON(((0 0 9, 5 0 9, 5 5 9, 0 5 9, 0 0 9), (1 1 9, 2 1 9, 2 2 9, 1 2 9, 1 1 9)), ((10 10 9, 11 10 9, 11 11 9, 10 11 9, 10 10 9))), POINT(7 7 9), MULTILINESTRING((0 1 9, 2 3 9), (4 5 9, 6 7 9)), POINT(6 6 9), MULTIPOINT((0 1 9), (2 3 9), (4 5 9)), POINT(9 9 9))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(POINT(8 8 9), MULTIPOLYGON(((0 0 9, 5 0 9, 5 5 9, 0 5 9, 0 0 9), (1 1 9, 2 1 9, 2 2 9, 1 2 9, 1 1 9)), ((10 10 9, 11 10 9, 11 11 9, 10 11 9, 10 10 9))), POINT(7 7 9), MULTILINESTRING((0 1 9, 2 3 9), (4 5 9, 6 7 9)), POINT(6 6 9), MULTIPOINT((0 1 9), (2 3 9), (4 5 9)), POINT(9 9 9))')); GEOMETRYCOLLECTION Z(POINT Z(8 8 9), POINT Z(7 7 9), POINT Z(6 6 9), POINT Z(0 1 9), POINT Z(2 3 9), POINT Z(4 5 9), POINT Z(9 9 9), LINESTRING Z(0 1 9, 2 3 9), LINESTRING Z(4 5 9, 6 7 9), POLYGON Z((0 0 9, 5 0 9, 5 5 9, 0 5 9, 0 0 9), (1 1 9, 2 1 9, 2 2 9, 1 2 9, 1 1 9)), POLYGON Z((10 10 9, 11 10 9, 11 11 9, 10 11 9, 10 10 9))) libspatialite-4.1.1/test/sql_stmt_tests/makepointm-null7.testcase0000664000175000017500000000037712163502134022301 00000000000000makepointm-null7 :memory: #use in-memory database SELECT AsWkt(MakePointM(-71.1043443253471, 42.3150676015829, 12.6389), 4.1); 1 # rows (not including the header row) 1 # columns AsWkt(MakePointM(-71.1043443253471, 42.3150676015829, 12.6389), 4.1) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/lhr1.testcase0000664000175000017500000000025412163502134017736 00000000000000forceLHR - zeroblob :memory: #use in-memory database SELECT ST_ForceLHR(zeroblob(99)); 1 # rows (not including the header row) 1 # columns ST_ForceLHR(zeroblob(99)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/fromgeojson17.testcase0000664000175000017500000000077012163502134021573 00000000000000FromGeoJSON - multipointZ, SRID :memory: #use in-memory database SELECT AsEWkt(GeomFromGeoJSON('{"type":"MultiPoint","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:EPSG:3003"}},"bbox":[1,2,4,6],"coordinates":[[1,2,3],[4,6,32]]}')) 1 # rows (not including the header row) 1 # columns AsEWkt(GeomFromGeoJSON('{"type":"MultiPoint","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:EPSG:3003"}},"bbox":[1,2,4,6],"coordinates":[[1,2,3],[4,6,32]]}')):0 SRID=3003;MULTIPOINT(1 2 3,4 6 32) libspatialite-4.1.1/test/sql_stmt_tests/collectextract9.testcase0000664000175000017500000000032012163502133022172 00000000000000Collection Extract - bad blob (NULL) :memory: #use in-memory database SELECT CollectionExtract(zeroblob(40), 3); 1 # rows (not including the header row) 1 # columns CollectionExtract(zeroblob(40), 3) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/makecircularstripe1.testcase0000664000175000017500000000033512163502134023042 00000000000000makecircularstripe1 - NULL cx :memory: #use in-memory database SELECT MakeCircularStripe(NULL, 0, 100, 90, 30, 60); 1 # rows (not including the header row) 1 # columns MakeCircularStripe(NULL, 0, 100, 90, 30, 60) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/casttoxyzm4.testcase0000664000175000017500000000033712163502133021402 00000000000000casttoxyzm - POINT :memory: #use in-memory database SELECT AsText(CastToXYZM(GeomFromText("POINT(4 3)"))) 1 # rows (not including the header row) 1 # columns AsText(CastToXYZM(GeomFromText("POINT(4 3)"))) POINT ZM(4 3 0 0) libspatialite-4.1.1/test/sql_stmt_tests/pointn8.testcase0000664000175000017500000000045612163502134020473 00000000000000pointN - regular LINESTRINGZ (last point) :memory: #use in-memory database SELECT AsText(PointN(GeomFromText("LINESTRINGZ(4 0 4.4, 4 4 2.2, 8 4 3.3)"), -1)); 1 # rows (not including the header row) 1 # columns AsText(PointN(GeomFromText("LINESTRINGZ(4 0 4.4, 4 4 2.2, 8 4 3.3)"), -1)) POINT Z(8 4 3.3) libspatialite-4.1.1/test/sql_stmt_tests/makecircularsector6.testcase0000664000175000017500000000034312163502134023037 00000000000000makecircularsector6 - BLOB cy :memory: #use in-memory database SELECT MakeCircularSector(0, zeroblob(4), 100, 30, 60); 1 # rows (not including the header row) 1 # columns MakeCircularSector(0, zeroblob(4), 100, 30, 60) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geomfromkml15.testcase0000664000175000017500000000044012163502134021552 00000000000000From KML - Point 2D :memory: SELECT AsText(GeomFromKML("-122.0822035425683,37.42228990140251")) 1 # rows 1 # column AsText(GeomFromKML("-122.0822035425683,37.42228990140251"))) POINT(-122.082204 37.42229)libspatialite-4.1.1/test/sql_stmt_tests/makepointz-null4.testcase0000664000175000017500000000037712163502134022313 00000000000000makepointz-null4 :memory: #use in-memory database SELECT AsText(MakePointZ("hello", 42.3150676015829, 0.0038723129645, 4326)); 1 # rows (not including the header row) 1 # columns AsText(MakePointZ("hello", 42.3150676015829, 0.0038723129645, 4326)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/asfgf1.testcase0000664000175000017500000000023612163502133020236 00000000000000asfgf - non-blob input :memory: #use in-memory database SELECT AsFGF("hello", 1) 1 # rows (not including the header row) 1 # columns AsFGF("hello", 1) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/asgeojson2.testcase0000664000175000017500000000026712163502133021145 00000000000000asgeojson - bad args (non-blob, 2 arg) :memory: #use in-memory database SELECT asgeojson("hello", 4); 1 # rows (not including the header row) 1 # columns asgeojson("hello", 4) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/fromgml44.testcase0000664000175000017500000000233712163502134020707 00000000000000FromGML - MultiPolygon v3 3D (no namespace) :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('0 0 10 5 0 11 5 5 12 0 5 13 0 0 101 1 5 2 1 5 2 2 5 1 2 5 1 1 52 2 10 3 2 11 3 3 12 2 3 13 2 2 10')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('0 0 10 5 0 11 5 5 12 0 5 13 0 0 101 1 5 2 1 5 2 2 5 1 2 5 1 1 52 2 10 3 2 11 3 3 12 2 3 13 2 2 10')):0 SRID=4326;MULTIPOLYGON(((0 0 10,5 0 11,5 5 12,0 5 13,0 0 10),(1 1 5,2 1 5,2 2 5,1 2 5,1 1 5)),((2 2 10,3 2 11,3 3 12,2 3 13,2 2 10))) libspatialite-4.1.1/test/sql_stmt_tests/maxm5.testcase0000664000175000017500000000036312163502134020120 00000000000000MaxM - Linestring XYM :memory: #use in-memory database SELECT ST_MaxM(GeomFromText('LINESTRINGM(1 2 10, 3 4 13, 5 6 12)')); 1 # rows (not including the header row) 1 # columns ST_MaxM(GeomFromText('LINESTRINGM(1 2 10, 3 4 13, 5 6 12)')) 13.0 libspatialite-4.1.1/test/sql_stmt_tests/fromWkb20.testcase0000664000175000017500000000070012163502134020635 00000000000000fromWkb - MULTIPOINT :memory: #use in-memory database SELECT Hex(MultiPointFromWkb(AsBinary(GeomFromText("MULTIPOINT(1 2,2 1)", 4326)))); 1 # rows (not including the header row) 1 # columns Hex(MultiPointFromWkb(AsBinary(GeomFromText("MULTIPOINT(1 2,2 1)", 4326)))) 000100000000000000000000F03F000000000000F03F000000000000004000000000000000407C04000000020000006901000000000000000000F03F000000000000004069010000000000000000000040000000000000F03FFE libspatialite-4.1.1/test/sql_stmt_tests/ring28.testcase0000664000175000017500000000043612163502134020203 00000000000000NumInteriorRings - non-Polygon :memory: #use in-memory database SELECT NumInteriorRings(GeomFromText("LINESTRING(136 -35, 135.2 -34.5, 136 -35.2)")) 1 # rows (not including the header row) 1 # columns NumInteriorRings(GeomFromText("LINESTRING(136 -35, 135.2 -34.5, 136 -35.2)")) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/compressgeometry39.testcase0000664000175000017500000000074712163502133022661 00000000000000CompressGeometry - MULTILINESTRING Z :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("MULTILINESTRINGZ((10 10 100, 11 11 101, 12 12 102), (15 15 101, 16 16 102, 17 17 103))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("MULTILINESTRINGZ((10 10 100, 11 11 101, 12 12 102), (15 15 101, 16 16 102, 17 17 103))", 4326))) MULTILINESTRING Z((10 10 100, 11 11 101, 12 12 102), (15 15 101, 16 16 102, 17 17 103)) libspatialite-4.1.1/test/sql_stmt_tests/asbinary16.testcase0000664000175000017500000000122412163502133021044 00000000000000asbinary - POLYGON :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("POLYGON((0 0, 3 0,3 3, 0 3,0 0), (1 1, 1 2, 2 2, 2 1, 1 1))", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("POLYGON((0 0, 3 0,3 3, 0 3,0 0), (1 1, 1 2, 2 2, 2 1, 1 1))", 4326))) 01030000000200000005000000000000000000000000000000000000000000000000000840000000000000000000000000000008400000000000000840000000000000000000000000000008400000000000000000000000000000000005000000000000000000F03F000000000000F03F000000000000F03F0000000000000040000000000000004000000000000000400000000000000040000000000000F03F000000000000F03F000000000000F03F libspatialite-4.1.1/test/sql_stmt_tests/makeline11.testcase0000664000175000017500000000051012163502134021012 00000000000000makeline11 :memory: #use in-memory database SELECT AsText(MakeLine(GeomFromText("POINTZM(0 0 1.3 38.5)"), GeomFromText("POINTM(1 2 38.64)"))); 1 # rows (not including the header row) 1 # columns AsText(MakeLine(GeomFromText("POINTZM(0 0 1.3 38.5)"), GeomFromText("POINTM(1 2 38.64)"))) LINESTRING ZM(0 0 1.3 38.5, 1 2 0 38.64) libspatialite-4.1.1/test/sql_stmt_tests/collectextract2.testcase0000664000175000017500000000037112163502133022171 00000000000000Collection Extract - Point (NULL) :memory: #use in-memory database SELECT AsText(CollectionExtract(GeomFromText("POINT(1 2)"), 2)); 1 # rows (not including the header row) 1 # columns AsText(CollectionExtract(GeomFromText("POINT(1 2)"), 2)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geomtype12.testcase0000664000175000017500000000054612163502134021070 00000000000000geometrytype - MULTIPOINT :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("MULTIPOINT (10 40, 40 30, 20 20, 30 10)") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) MULTIPOINT XY MULTIPOINT libspatialite-4.1.1/test/sql_stmt_tests/makeellipticsector23.testcase0000664000175000017500000000036412163502134023122 00000000000000makeellipticsector23 - NULL step :memory: #use in-memory database SELECT MakeEllipticSector(0, 0, 100, 200, 30, 60, 4326, NULL); 1 # rows (not including the header row) 1 # columns MakeEllipticSector(0, 0, 100, 200, 30, 60, 4326, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geomconstraints21.testcase0000664000175000017500000000073112163502134022452 00000000000000geometry constraints - MULTIPOLYGONZM :memory: #use in-memory database SELECT GeometryConstraints(GeomFromText("MULTIPOLYGONZM(((0 0 0 0, 1 0 0 0, 1 1 0 0, 0 0 0 0)),((0 0 0 0, -1 0 0 0, -1 -1 0 0, 0 0 0 0)))", 4326), "MULTIPOLYGON", 4326, "XYZM") 1 # rows (not including the header row) 1 # columns GeometryConstraints(GeomFromText("MULTIPOLYGONZM(((0 0 0 0, 1 0 0 0, 1 1 0 0, 0 0 0 0)),((0 0 0 0, -1 0 0 0, -1 -1 0 0, 0 0 0 0)))", 4326), "MULTIPOLYGON", 4326, "XYZM") 1 libspatialite-4.1.1/test/sql_stmt_tests/translate5.testcase0000664000175000017500000000036612163502134021156 00000000000000translate - text shift (error) :memory: #use in-memory database SELECT ST_Translate(GeomFromText("POINT(1 2)"), 1, "three", 2); 1 # rows (not including the header row) 1 # columns ST_Translate(GeomFromText("POINT(1 2)"), 1, "three", 2) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/rotatecoords4.testcase0000664000175000017500000000136312163502134021666 00000000000000rotate coords - LINESTRING Z :memory: #use in-memory database SELECT AsText(RotateCoords(geom, 0)), AsText(RotateCoords(geom, 90.0)), AsText(RotateCoords(geom, 180.0)), AsText(RotateCoords(geom, -90)), RotateCoords(zeroblob(20), 10), RotateCoords(geom, "hello"), RotateCoords("foo", 30) FROM (SELECT GeomFromText("LINESTRINGZ(0 0 2, 1 1 3)") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(RotateCoords(geom, 0)) AsText(RotateCoords(geom, 90.0)) AsText(RotateCoords(geom, 180.0)) AsText(RotateCoords(geom, -90)) RotateCoords(zeroblob(20), 10) RotateCoords(geom, "hello") RotateCoords("foo", 30) LINESTRING Z(0 0 2, 1 1 3) LINESTRING Z(0 0 2, 1 -1 3) LINESTRING Z(0 0 2, -1 -1 3) LINESTRING Z(0 0 2, -1 1 3) (NULL) (NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/collect44.testcase0000664000175000017500000000134312163502133020664 00000000000000collect - Polygon, PolygonZM :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POLYGON((1 2, 3 4, 3 2, 1 2),(1.5 2.5, 2.5 3.5, 2.5 2.3, 1.5 2.5))"), GeomFromText("POLYGONZM((4 5 3.2 4, 1 2 4.6 5, 4 2 3.1 3, 4 5 3.2 4),(2 3 4 1, 3 4 1 2, 3 3 1 3, 2 3 4 1))"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POLYGON((1 2, 3 4, 3 2, 1 2),(1.5 2.5, 2.5 3.5, 2.5 2.3, 1.5 2.5))"), GeomFromText("POLYGONZM((4 5 3.2 4, 1 2 4.6 5, 4 2 3.1 3, 4 5 3.2 4),(2 3 4 1, 3 4 1 2, 3 3 1 3, 2 3 4 1))"))) MULTIPOLYGON ZM(((1 2 0 0, 3 4 0 0, 3 2 0 0, 1 2 0 0), (1.5 2.5 0 0, 2.5 3.5 0 0, 2.5 2.3 0 0, 1.5 2.5 0 0)), ((4 5 3.2 4, 1 2 4.6 5, 4 2 3.1 3, 4 5 3.2 4), (2 3 4 1, 3 4 1 2, 3 3 1 3, 2 3 4 1))) libspatialite-4.1.1/test/sql_stmt_tests/fromgeojson6.testcase0000664000175000017500000000044712163502134021512 00000000000000FromGeoJSON - linestring :memory: #use in-memory database SELECT AsText(GeomFromGeoJSON('{"type":"LineString","coordinates":[[1,2],[4,5]]}')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromGeoJSON('{"type":"LineString","coordinates":[[1,2],[4,5]]}')):0 LINESTRING(1 2, 4 5) libspatialite-4.1.1/test/sql_stmt_tests/casttolinestring2.testcase0000664000175000017500000000025112163502133022542 00000000000000casttolinestring - non blob :memory: #use in-memory database SELECT CastToLineString(99) 1 # rows (not including the header row) 1 # columns CastToLineString(99) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/fromgml47.testcase0000664000175000017500000000250312163502134020705 00000000000000FromGML - MultiPolygon v2 :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('0,0 5,0 5,5 0,5 0,01,1 2,1 2,2 1,2 1,16,6 7,6 7,7 6,7 6,6')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('0,0 5,0 5,5 0,5 0,01,1 2,1 2,2 1,2 1,16,6 7,6 7,7 6,7 6,6')):0 SRID=4326;MULTIPOLYGON(((0 0,5 0,5 5,0 5,0 0),(1 1,2 1,2 2,1 2,1 1)),((6 6,7 6,7 7,6 7,6 6))) libspatialite-4.1.1/test/sql_stmt_tests/rotatecoords12.testcase0000664000175000017500000000205212163502134021741 00000000000000rotate coords - Two ring polygonz :memory: #use in-memory database SELECT AsText(RotateCoords(geom, 0)), AsText(RotateCoords(geom, 90.0)), AsText(RotateCoords(geom, 180.0)), AsText(RotateCoords(geom, -90)), RotateCoords(zeroblob(20), 10), RotateCoords(geom, "hello"), RotateCoords("foo", 30) FROM (SELECT GeomFromText("POLYGONZ((0 0 1, 2 2 2, 2 4 3, -2 2 4, 0 0 1),(0 0 5, 1 1 6, 1 2 7, -1 1 8, 0 0 5))") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(RotateCoords(geom, 0)) AsText(RotateCoords(geom, 90.0)) AsText(RotateCoords(geom, 180.0)) AsText(RotateCoords(geom, -90)) RotateCoords(zeroblob(20), 10) RotateCoords(geom, "hello") RotateCoords("foo", 30) POLYGON Z((0 0 1, 2 2 2, 2 4 3, -2 2 4, 0 0 1), (0 0 5, 1 1 6, 1 2 7, -1 1 8, 0 0 5)) POLYGON Z((0 0 1, 2 -2 2, 4 -2 3, 2 2 4, 0 0 1), (0 0 5, 1 -1 6, 2 -1 7, 1 1 8, 0 0 5)) POLYGON Z((0 0 1, -2 -2 2, -2 -4 3, 2 -2 4, 0 0 1), (0 0 5, -1 -1 6, -1 -2 7, 1 -1 8, 0 0 5)) POLYGON Z((0 0 1, -2 2 2, -4 2 3, -2 -2 4, 0 0 1), (0 0 5, -1 1 6, -2 1 7, -1 -1 8, 0 0 5)) (NULL) (NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geomfromtext2.testcase0000664000175000017500000000022712163502134021672 00000000000000geomfromtext2 :memory: #use in-memory database SELECT GeomFromText(3.14); 1 # rows (not including the header row) 1 # columns GeomFromText(3.14) (NULL)libspatialite-4.1.1/test/sql_stmt_tests/wkb19.testcase0000664000175000017500000000116512163502134020027 00000000000000Hex Wkb: GeometryCollection XYM (2 lines) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONM(LINESTRINGM(1.2 3.4 12, 5.6 7.8 13), LINESTRINGM(5 6 11, 7 8 12))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONM(LINESTRINGM(1.2 3.4 12, 5.6 7.8 13), LINESTRINGM(5 6 11, 7 8 12))", 4326))); 01D70700000200000001D207000002000000333333333333F33F3333333333330B40000000000000284066666666666616403333333333331F400000000000002A4001D2070000020000000000000000001440000000000000184000000000000026400000000000001C4000000000000020400000000000002840 libspatialite-4.1.1/test/sql_stmt_tests/geometryn9.testcase0000664000175000017500000000040712163502134021172 00000000000000Geometry N - multipointZM :memory: #use in-memory database SELECT AsText(GeometryN(GeomFromText("MULTIPOINTZM(1 2 4 1.6)"), 1)); 1 # rows (not including the header row) 1 # columns AsText(GeometryN(GeomFromText("MULTIPOINTZM(1 2 4 1.6)"), 1)) POINT ZM(1 2 4 1.6) libspatialite-4.1.1/test/sql_stmt_tests/st_y8.testcase0000664000175000017500000000037612163502134020143 00000000000000ST_Y8 :memory: #use in-memory database SELECT ST_Y(MakePointM(-71.1043443253471, 42.3150676015829, 12.6389, 4326)); 1 # rows (not including the header row) 1 # columns ST_Y(MakePointM(-71.1043443253471, 42.3150676015829, 12.6389, 4326)) 42.3150676015829 libspatialite-4.1.1/test/sql_stmt_tests/togars10.testcase0000664000175000017500000000045012163502134020526 00000000000000togars - GeometryCollection, single Point :memory: #use in-memory database SELECT ToGARS(GeomFromText("GEOMETRYCOLLECTION(POINT(11.876910 43.461390))", 4326)) 1 # rows (not including the header row) 1 # columns ToGARS(GeomFromText("GEOMETRYCOLLECTION(POINT(11.876910 43.461390))", 4326)) 384MC22 libspatialite-4.1.1/test/sql_stmt_tests/fromgml29.testcase0000664000175000017500000000077212163502134020713 00000000000000FromGML - GeometryCollection, single point :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('1,2')) 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('1,2')):0 SRID=-1;GEOMETRYCOLLECTION(POINT(1 2)) libspatialite-4.1.1/test/sql_stmt_tests/NumPoints.testcase0000664000175000017500000000026012163502133021020 00000000000000NumPoints - bad blob (error) :memory: #use in-memory database SELECT NumPoints(zeroblob(12)); 1 # rows (not including the header row) 1 # column NumPoints(zeroblob(12)) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/collectextract19.testcase0000664000175000017500000000076312163502133022266 00000000000000Collection Extract - Extract POLYGONZM :memory: #use in-memory database SELECT AsText(CollectionExtract(GeomFromText("POLYGONZM((0 0 1 3, 10 0 2 3, 10 10 1 6, 0 0 1 3),(1 2 4 1, 4 3 1 2, 1 1 1 6, 1 2 4 1))"), 3)); 1 # rows (not including the header row) 1 # columns AsText(CollectionExtract(GeomFromText("POLYGONZM((0 0 1 3, 10 0 2 3, 10 10 1 6, 0 0 1 3),(1 2 4 1, 4 3 1 2, 1 1 1 6, 1 2 4 1))"), 3)) MULTIPOLYGON ZM(((0 0 1 3, 10 0 2 3, 10 10 1 6, 0 0 1 3), (1 2 4 1, 4 3 1 2, 1 1 1 6, 1 2 4 1))) libspatialite-4.1.1/test/sql_stmt_tests/npoints2.testcase0000664000175000017500000000023612163502134020644 00000000000000npoints - non-blob :memory: #use in-memory database SELECT ST_NPoints("hello") 1 # rows (not including the header row) 1 # columns ST_NPoints("hello") (NULL) libspatialite-4.1.1/test/sql_stmt_tests/garsmbr5.testcase0000664000175000017500000000024712163502134020614 00000000000000garsmbr - out of bounds longitude :memory: #use in-memory database SELECT GARSMbr("721AA") 1 # rows (not including the header row) 1 # columns GARSMbr("721AA") (NULL) libspatialite-4.1.1/test/sql_stmt_tests/ewkb8.testcase0000664000175000017500000000144412163502134020112 00000000000000EWkb: Polygon XYZ :memory: #use in-memory database SELECT AsText(GeomFromEWkb('01030000A0E610000002000000050000000000000000002440000000000000244000000000000059400000000000002E40000000000000244000000000004059400000000000002E400000000000002E40000000000080594000000000000024400000000000002E400000000000C05940000000000000244000000000000024400000000000005940050000000000000000002840000000000000284000000000000059400000000000002A40000000000000284000000000004059400000000000002A400000000000002A40000000000080594000000000000028400000000000002A400000000000C05940000000000000284000000000000028400000000000005940')) AS wkt_geom; 1 # rows (not including the header row) 1 # columns wkt_geom POLYGON Z((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (12 12 100, 13 12 101, 13 13 102, 12 13 103, 12 12 100)) libspatialite-4.1.1/test/sql_stmt_tests/translate1.testcase0000664000175000017500000000034612163502134021150 00000000000000translate :memory: #use in-memory database SELECT AsText(ST_Translate(GeomFromText("POINT(1 2)"), 1, 3, 4)); 1 # rows (not including the header row) 1 # columns AsText(ST_Translate(GeomFromText("POINT(1 2)"), 1, 3, 4)) POINT(2 5) libspatialite-4.1.1/test/sql_stmt_tests/m_km.testcase0000664000175000017500000000022212163502134020006 00000000000000metres to kilometres :memory: #use in-memory database SELECT CvtToKm(2100); 1 # rows (not including the header row) 1 # columns CvtToKm(2100); 2.1libspatialite-4.1.1/test/sql_stmt_tests/linesfromrings7.testcase0000664000175000017500000000063612163502134022224 00000000000000LinesFromRings - Toxic polygon :memory: #use in-memory database SELECT AsText(LinesFromRings(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"), 1)); 1 # rows (not including the header row) 1 # columns AsText(LinesFromRings(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"), 1)) MULTILINESTRING((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5)) libspatialite-4.1.1/test/sql_stmt_tests/dimension2.testcase0000664000175000017500000000023712163502133021137 00000000000000dimension 2 - float (error) :memory: #use in-memory database SELECT Dimension(3.14); 1 # rows (not including the header row) 1 # columns Dimension(3.14) (NULL)libspatialite-4.1.1/test/sql_stmt_tests/m_ind_ft.testcase0000664000175000017500000000024012163502134020642 00000000000000metres to Indian feet :memory: #use in-memory database SELECT CvtToIndFt(1.0); 1 # rows (not including the header row) 1 # columns CvtToIndFt(1.0); 3.2808570:9 libspatialite-4.1.1/test/sql_stmt_tests/numgeometries6.testcase0000664000175000017500000000047212163502134022043 00000000000000numgeometries - multipolygon :memory: #use in-memory database SELECT NumGeometries(GeomFromText("MULTIPOLYGON(((1 2, 3 4, 5 0, 1 2)),((0 0, 1 0, 1 1, 0 1, 0 0)))")) 1 # rows (not including the header row) 1 # columns NumGeometries(GeomFromText("MULTIPOLYGON(((1 2, 3 4, 5 0, 1 2)),((0 0, 1 0, 1 1, 0 1, 0 0)))")) 2libspatialite-4.1.1/test/sql_stmt_tests/geodesic-len8.testcase0000664000175000017500000000062512163502134021520 00000000000000geodesic length polygon with hole :memory: SELECT GeodesicLength(GeomFromText("POLYGON((11.5 43.5, 11.8 43.5, 11.8 43.8, 11.5 43.8, 11.5 43.5), (11.6 43.6, 11.7 43.6, 11.7 43.7, 11.6 32.7, 11.6 43.6))", 4326)); 1 # rows 1 # column GeodesicLength(GeomFromText("POLYGON((11.5 43.5, 11.8 43.5, 11.8 43.8, 11.5 43.8, 11.5 43.5), (11.6 43.6, 11.7 43.6, 11.7 43.7, 11.6 32.7, 11.6 43.6))", 4326)) 2565198.35:10 libspatialite-4.1.1/test/sql_stmt_tests/fromWkb10.testcase0000664000175000017500000000101612163502134020635 00000000000000fromWkb - mandatory POLYGON, 2 arg :memory: #use in-memory database SELECT Hex(PolygonFromWkb(AsBinary(GeomFromText("POLYGON((1 2, 3 1, 4 4, 1 2))")), 4326)) 1 # rows (not including the header row) 1 # columns Hex(PolygonFromWkb(AsBinary(GeomFromText("POLYGON((1 2, 3 1, 4 4, 1 2))")), 4326)) 0001E6100000000000000000F03F000000000000F03F000000000000104000000000000010407C030000000100000004000000000000000000F03F00000000000000400000000000000840000000000000F03F00000000000010400000000000001040000000000000F03F0000000000000040FE libspatialite-4.1.1/test/sql_stmt_tests/asfgf7.testcase0000664000175000017500000000041012163502133020236 00000000000000asfgf - pointxy, 1 dim :memory: #use in-memory database SELECT Hex(AsFGF(GeomFromText("POINT(1 2)"), 1)) 1 # rows (not including the header row) 1 # columns Hex(AsFGF(GeomFromText("POINT(1 2)"), 1)) 0100000001000000000000000000F03F00000000000000400000000000000000 libspatialite-4.1.1/test/sql_stmt_tests/ndims3.testcase0000664000175000017500000000045712163502134020272 00000000000000Coord Dimensions - GeometryCollection XY :memory: #use in-memory database SELECT CoordDimension(geom), ST_NDims(geom) FROM (SELECT GeomFromText('GEOMETRYCOLLECTION(POINT(1 2), LINESTRING(3 4, 5 6))') AS geom); 1 # rows (not including the header row) 2 # columns CoordDimension(geom) ST_NDims(geom) XY 2 libspatialite-4.1.1/test/sql_stmt_tests/fromgeojson28.testcase0000664000175000017500000000070112163502134021567 00000000000000FromGeoJSON - PointZ with SRID and bbox :memory: #use in-memory database SELECT AsEWkt(GeomFromGeoJSON('{"type":"Point","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"bbox":[-1,1,-1,1],"coordinates":[-1,1,2.3]}')) 1 # rows (not including the header row) 1 # columns AsEWkt(GeomFromGeoJSON('{"type":"Point","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"bbox":[-1,1,-1,1],"coordinates":[-1,1,2.3]}')):0 SRID=3003;POINT(-1 1 2.3) libspatialite-4.1.1/test/sql_stmt_tests/getmimetype4.testcase0000664000175000017500000000024212163502134021502 00000000000000GetMimeType - TEXT :memory: #use in-memory database SELECT GetMimeType('alpha'); 1 # rows (not including the header row) 1 # columns GetMimeType('alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_tests/geomtype10.testcase0000664000175000017500000000046112163502134021062 00000000000000geometrytype - LINESTRING ZM :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom) from (SELECT GeomFromText("LINESTRINGZM(4 0 4 1, 4 4 4 2, 8 4 2 3)") as geom) dummy; 1 # rows (not including the header row) 2 # columns GeometryType(geom) CoordDimension(geom) LINESTRING ZM XYZMlibspatialite-4.1.1/test/sql_stmt_tests/normalizelonlat6.testcase0000664000175000017500000000041612163502134022370 00000000000000normalizelonlat- out of range positive lat :memory: #use in-memory database SELECT AsText(NormalizeLonLat(GeomFromText("POINT(10 120)", 4326))) 1 # rows (not including the header row) 1 # columns AsText(NormalizeLonLat(GeomFromText("POINT(10 120)", 4326))) POINT(10 60) libspatialite-4.1.1/test/sql_stmt_tests/makecircularsector11.testcase0000664000175000017500000000034512163502134023115 00000000000000makecircularsector11 - BLOB start :memory: #use in-memory database SELECT MakeCircularSector(0, 0, 100, zeroblob(4), 60); 1 # rows (not including the header row) 1 # columns MakeCircularSector(0, 0, 100, zeroblob(4), 60) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/casttopoly3.testcase0000664000175000017500000000043412163502133021353 00000000000000casttopolygon - POLYGON :memory: #use in-memory database SELECT AsText(CastToPolygon(GeomFromText("POLYGON((4 3, 1 1, 9 8, 4 3))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToPolygon(GeomFromText("POLYGON((4 3, 1 1, 9 8, 4 3))"))) POLYGON((4 3, 1 1, 9 8, 4 3)) libspatialite-4.1.1/test/sql_stmt_tests/casttoxym5.testcase0000664000175000017500000000034112163502133021204 00000000000000casttoxym - POINT :memory: #use in-memory database SELECT AsText(CastToXYM(GeomFromText("POINTZ(4 3 10)"))) 1 # rows (not including the header row) 1 # columns AsText(CastToXYM(GeomFromText("POINTZ(4 3 10)"))) POINT M(4 3 0) libspatialite-4.1.1/test/sql_stmt_tests/ring15.testcase0000664000175000017500000000030212163502134020167 00000000000000InteriorRingN - bad blob (error) :memory: #use in-memory database SELECT InteriorRingN(zeroblob(12), 1); 1 # rows (not including the header row) 1 # column InteriorRingN(zeroblob(12), 1) (NULL) libspatialite-4.1.1/test/sql_stmt_tests/casttopoly5.testcase0000664000175000017500000000052012163502133021351 00000000000000casttopoly - Geometry collection, point plus polygon :memory: #use in-memory database SELECT CastToPolygon(GeomFromText("GEOMETRYCOLLECTION(POLYGON((4 3, 4 1, 0 3, 4 3)),POINT(1 2))")) 1 # rows (not including the header row) 1 # columns CastToPolygon(GeomFromText("GEOMETRYCOLLECTION(POLYGON((4 3, 4 1, 0 3, 4 3)),POINT(1 2))")) (NULL) libspatialite-4.1.1/test/check_point_to_tile_multiresult.c0000664000175000017500000002321612163502133021067 00000000000000/* check_point_to_tile_multiresult.c - Test case for GeoPackage Extensions Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Brad Hards Portions created by the Initial Developer are Copyright (C) 2012 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #include #include "test_helpers.h" int main (int argc UNUSED, char *argv[] UNUSED) { sqlite3 *db_handle = NULL; char *sql_statement; sqlite3_stmt *stmt; int ret; char *err_msg = NULL; int i; const uint8_t *blob0; const uint8_t *blob1; void *cache = spatialite_alloc_connection(); char *old_SPATIALITE_SECURITY_ENV = NULL; #ifdef _WIN32 char *env; #endif /* not WIN32 */ old_SPATIALITE_SECURITY_ENV = getenv("SPATIALITE_SECURITY"); #ifdef _WIN32 putenv("SPATIALITE_SECURITY=relaxed"); #else /* not WIN32 */ setenv("SPATIALITE_SECURITY", "relaxed", 1); #endif ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); // For debugging / testing if required // ret = sqlite3_open_v2 ("check_point_to_tile_multiresult.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); spatialite_init_ex(db_handle, cache, 0); if (old_SPATIALITE_SECURITY_ENV) { #ifdef _WIN32 env = sqlite3_mprintf("SPATIALITE_SECURITY=%s", old_SPATIALITE_SECURITY_ENV); putenv(env); sqlite3_free(env); #else /* not WIN32 */ setenv("SPATIALITE_SECURITY", old_SPATIALITE_SECURITY_ENV, 1); #endif } else { #ifdef _WIN32 putenv("SPATIALITE_SECURITY="); #else /* not WIN32 */ unsetenv("SPATIALITE_SECURITY"); #endif } if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } /* Create the base tables */ ret = sqlite3_exec (db_handle, "SELECT InitSpatialMetadata(1, 'WGS84')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf(stderr, "Unexpected InitSpatialMetadata result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -2; } ret = sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf(stderr, "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -3; } /* create a target table */ ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS test1_tiles", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP test1_tiles error: %s\n", err_msg); sqlite3_free (err_msg); return -10; } ret = sqlite3_exec (db_handle, "CREATE TABLE test1_tiles (id INTEGER PRIMARY KEY AUTOINCREMENT, zoom_level INTEGER NOT NULL DEFAULT 0, tile_column INTEGER NOT NULL DEFAULT 0, tile_row INTEGER NOT NULL DEFAULT 0, tile_data BLOB NOT NULL DEFAULT (zeroblob(4)))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE mytable_tiles error: %s\n", err_msg); sqlite3_free (err_msg); return -11; } /* add in some test entries */ ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (1, 0, 0, 0, BlobFromFile('tile000.jpeg'))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT level0 error: %s\n", err_msg); sqlite3_free (err_msg); return -12; } ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (2, 1, 0, 0, BlobFromFile('tile100.jpeg'))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT level1 error: %s\n", err_msg); sqlite3_free (err_msg); return -13; } ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (3, 1, 0, 1, BlobFromFile('tile101.jpeg'))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT level1 error: %s\n", err_msg); sqlite3_free (err_msg); return -14; } ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (4, 1, 1, 1, BlobFromFile('tile111.jpeg'))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT level1 error: %s\n", err_msg); sqlite3_free (err_msg); return -15; } ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS test1_tiles_rt_metadata", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP test1_tiles_rt_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -16; } ret = sqlite3_exec (db_handle, "CREATE TABLE test1_tiles_rt_metadata (id INTEGER PRIMARY KEY AUTOINCREMENT, min_x DOUBLE NOT NULL DEFAULT -180.0, min_y DOUBLE NOT NULL DEFAULT -90.0, max_x DOUBLE NOT NULL DEFAULT 180.0, max_y DOUBLE NOT NULL DEFAULT 90.0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE test1_tiles_rt_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -17; } ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles_rt_metadata (id, min_x, min_y, max_x, max_y) VALUES (1, -180.0, -90.0, 180.0, 90.0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT level0 _rt_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -18; } /* duplicate area */ ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles_rt_metadata (id, min_x, min_y, max_x, max_y) VALUES (2, -40.0, -90.0, 100.0, 0.0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT level1 (0,0) _rt_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -19; } /* Deliberately skip 3 */ ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles_rt_metadata (id, min_x, min_y, max_x, max_y) VALUES (4, 0.0, -90.0, 180.0, 0.0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT level1 (1,1) _rt_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -20; } ret = sqlite3_exec (db_handle, "INSERT INTO raster_columns VALUES (\"test1_tiles\", \"tile_data\", 99, 1, 4326)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT raster_columns row error: %s\n", err_msg); sqlite3_free (err_msg); return -21; } /* try gpkgPointToTile multiple result */ sql_statement = "SELECT gpkgPointToTile(\"test1_tiles\", 4326, 20.0, -30.0, 1), BlobFromFile(\"tile100.jpeg\")"; ret = sqlite3_prepare_v2 (db_handle, sql_statement, strlen(sql_statement), &stmt, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "failed to prepare SQL statement: %i (%s)\n", ret, sqlite3_errmsg(db_handle)); return -30; } ret = sqlite3_step (stmt); if (ret != SQLITE_ROW) { fprintf(stderr, "unexpected return value for first step: %i\n", ret); return -31; } if (sqlite3_column_type (stmt, 0) != SQLITE_BLOB) { fprintf(stderr, "bad type for column 0: %i\n", sqlite3_column_type (stmt, 0)); return -32; } if (sqlite3_column_type (stmt, 1) != SQLITE_BLOB) { fprintf(stderr, "bad type for column 1: %i\n", sqlite3_column_type (stmt, 1)); return -33; } blob0 = sqlite3_column_blob(stmt, 0); blob1 = sqlite3_column_blob(stmt, 1); if (sqlite3_column_bytes(stmt, 0) != sqlite3_column_bytes(stmt, 1)) { fprintf(stderr, "mismatch in blob sizes: %i vs %i\n", sqlite3_column_bytes(stmt, 0), sqlite3_column_bytes(stmt, 1)); return -34; } for (i = 0; i < sqlite3_column_bytes(stmt, 0); ++i) { if (blob0[i] != blob1[i]) { fprintf(stderr, "mismatch in blob content at offset: %i\n", i); return -35; } } ret = sqlite3_step(stmt); if (ret != SQLITE_DONE) { fprintf(stderr, "unexpected return value for second step: %i\n", ret); return -36; } ret = sqlite3_finalize (stmt); ret = sqlite3_close (db_handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle)); return -100; } spatialite_cleanup_ex(cache); return 0; } libspatialite-4.1.1/test/books.xml0000664000175000017500000000134512163502133014103 00000000000000 The Pickwick PapersOliver TwistDavid Copperfield A Christmas CarolHard Times The Scarlet Letter Vanity Fair The Luck of Barry Lyndon Lord JimThe Secret AgentHeart of Darkness libspatialite-4.1.1/test/check_add_rt_metadata_triggers_wrong_arg_type.c0000664000175000017500000001214212163502133023653 00000000000000/* check_add_rt_metadata_triggers_wrong_arg_type.c - Test case for GeoPackage Extensions Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Brad Hards Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #include "test_helpers.h" int main (int argc UNUSED, char *argv[] UNUSED) { sqlite3 *db_handle = NULL; int ret; char *err_msg = NULL; void *cache = spatialite_alloc_connection(); ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); // For debugging / testing if required // ret = sqlite3_open_v2 ("check_add_rt_metadata_triggers_wrong_arg_type.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); spatialite_init_ex(db_handle, cache, 0); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } /* create a minimal raster_columns table */ ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS raster_columns", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP raster_columns error: %s\n", err_msg); sqlite3_free (err_msg); return -4; } ret = sqlite3_exec (db_handle, "CREATE TABLE raster_columns (r_table_name TEXT NOT NULL, r_raster_column TEXT NOT NULL, srid INTEGER NOT NULL DEFAULT 0, CONSTRAINT pk_rc PRIMARY KEY (r_table_name, r_raster_column) ON CONFLICT ROLLBACK, CONSTRAINT fk_rc_r_srid FOREIGN KEY (srid) REFERENCES spatial_ref_sys(srid))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE raster_columns error: %s\n", err_msg); sqlite3_free (err_msg); return -5; } /* add in a test entry */ ret = sqlite3_exec (db_handle, "INSERT INTO raster_columns VALUES (\"test1_matrix_tiles\", \"tile_data\", 4326)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT raster_columns error: %s\n", err_msg); sqlite3_free (err_msg); return -6; } /* create a target table */ ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS test1_matrix_tiles", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP test1_matrix_tiles error: %s\n", err_msg); sqlite3_free (err_msg); return -7; } ret = sqlite3_exec (db_handle, "CREATE TABLE test1_matrix_tiles (id INTEGER PRIMARY KEY AUTOINCREMENT, zoom_level INTEGER NOT NULL DEFAULT 0, tile_column INTEGER NOT NULL DEFAULT 0, tile_row INTEGER NOT NULL DEFAULT 0, tile_data BLOB NOT NULL DEFAULT (zeroblob(4)))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE test1_matrix_tiles error: %s\n", err_msg); sqlite3_free (err_msg); return -8; } /* test trigger setup */ ret = sqlite3_exec (db_handle, "SELECT gpkgAddRtMetadataTriggers(0)", NULL, NULL, &err_msg); if (ret != SQLITE_ERROR) { fprintf(stderr, "Unexpected gpkgAddRtMetadataTriggers result: %i\n", ret); return -9; } if (strcmp(err_msg, "gpkgAddRtMetadataTriggers() error: argument 1 [table] is not of the String type") != 0) { fprintf (stderr, "SELECT gpkgAddRtMetadataTriggers unexpected error message: %s\n", err_msg); sqlite3_free (err_msg); return -10; } sqlite3_free(err_msg); ret = sqlite3_close (db_handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle)); return -200; } spatialite_cleanup_ex(cache); return 0; } libspatialite-4.1.1/test/check_fdo_bufovflw.c0000664000175000017500000002335212163502133016231 00000000000000/* check_fdo2.c -- SpatiaLite Test Case Author: Sandro Furieri ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include "sqlite3.h" #include "spatialite.h" int main (int argc, char *argv[]) { int ret; sqlite3 *handle; char *err_msg = NULL; int suffix_len = 16 * 1024; /* 16 KB suffix */ char *suffix; char *pt_2d_wkt; char *pt_3d_wkt; char *geometry; char *sql; char **results; int rows; int columns; void *cache = spatialite_alloc_connection(); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); sqlite3_close(handle); return -1; } spatialite_init_ex (handle, cache, 0); /* FDO initialization */ sql = "SELECT InitFDOSpatialMetadata()"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -2; } /* setting up very long table and column names */ suffix = malloc(suffix_len); memset(suffix, 'z', suffix_len); suffix[suffix_len-1] = '\0'; pt_2d_wkt = sqlite3_mprintf("pt_2d_wkt_%s", suffix); pt_3d_wkt = sqlite3_mprintf("pt_3d_wkt_%s", suffix); geometry = sqlite3_mprintf("geometry_%s", suffix); /* creating a Point 2D WKT table */ sql = sqlite3_mprintf("CREATE TABLE %s (id INTEGER, name TEXT, value DOUBLE)", pt_2d_wkt); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -3; } sql = sqlite3_mprintf( "SELECT AddFDOGeometryColumn(%Q, %Q, -1, 1, 2, 'WKT')", pt_2d_wkt, geometry); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -4; } /* creating a Point 3D WKT table */ sql = sqlite3_mprintf("CREATE TABLE %s (id INTEGER, pic1 BLOB, pic2 BLOB)", pt_3d_wkt); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -5; } sql = sqlite3_mprintf("SELECT AddFDOGeometryColumn(%Q, %Q, -1, 1, 3, 'WKT')", pt_3d_wkt, geometry); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -6; } /* FDO start-up */ sql = "SELECT AutoFDOStart()"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -7; } /* Inserting into pt_2d_wkt */ sql = sqlite3_mprintf("INSERT INTO %s (id, name, value, %s) VALUES " "(1, 'alpha', 0.1, GeomFromText('POINT(1 2)', -1))", pt_2d_wkt, geometry); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -8; } /* Inserting (take two) into pt_2d_wkt */ sql = sqlite3_mprintf("INSERT INTO %s (id, name, value, %s) VALUES " "(2, 'beta', 0.2, GeomFromText('POINT(2 3)', -1))", pt_2d_wkt, geometry); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -9; } /* Updating pt_2d_wkt */ sql = sqlite3_mprintf("UPDATE %s SET name = 'beta', value = 0.2, " "%s = GeomFromText('POINT(10 20)', -1) WHERE id = 1", pt_2d_wkt, geometry); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -10; } /* Deleting form pt_2d_wkt */ sql = sqlite3_mprintf("DELETE FROM %s WHERE id = 1", pt_2d_wkt); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -11; } /* Inserting into pt_3d_wkt */ sql = sqlite3_mprintf("INSERT INTO %s (id, pic1, pic2, %s) VALUES " "(1, zeroblob(16), NULL, GeomFromText('POINTZ(1 2 3)', -1))", pt_3d_wkt, geometry); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -12; } /* checking pt_2d_wkt */ sql = sqlite3_mprintf("SELECT AsText(%s) FROM %s", geometry, pt_2d_wkt); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -13; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -14; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -15; } if (strcmp(results[1], "POINT(2 3)") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -16; } sqlite3_free_table (results); /* checking pt_3d_wkt */ sql = sqlite3_mprintf("SELECT AsText(%s) FROM %s", geometry, pt_3d_wkt); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -17; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -18; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -19; } if (strcmp(results[1], "POINT Z(1 2 3)") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -20; } sqlite3_free_table (results); /* dropping an FDO virtual table */ sql = sqlite3_mprintf("DROP TABLE %s", pt_2d_wkt); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -21; } /* discarding an FDO Geometry column */ sql = sqlite3_mprintf("SELECT DiscardFDOGeometryColumn(%Q, %Q)", pt_3d_wkt, geometry); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -22; } /* recovering an FDO Geometry column */ sql = sqlite3_mprintf("SELECT RecoverFDOGeometryColumn(%Q, %Q, -1, 1, 3, 'WKT')", pt_3d_wkt, geometry); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -23; } /* FDO shut-down */ sql = "SELECT AutoFDOStop()"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -24; } ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -25; } spatialite_cleanup_ex (cache); sqlite3_free(pt_2d_wkt); sqlite3_free(pt_3d_wkt); sqlite3_free(geometry); free(suffix); return 0; } libspatialite-4.1.1/test/check_fdo3.c0000664000175000017500000001376712163502133014413 00000000000000/* check_fdo3.c -- SpatiaLite Test Case Author: Sandro Furieri ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" #include "spatialite/gaiageo.h" #ifndef OMIT_GEOS /* including GEOS */ #include #endif int main (int argc, char *argv[]) { #ifndef OMIT_GEOS /* only if GEOS is supported */ int ret; sqlite3 *handle; char *err_msg = NULL; const char *sql; char **results; int rows; int columns; void *cache = spatialite_alloc_connection(); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = system("cp sql_stmt_tests/testFGF.sqlite testFGF.sqlite"); if (ret != 0) { fprintf(stderr, "cannot copy testFGF.sqlite database\n"); return -1001; } ret = sqlite3_open_v2 ("testFGF.sqlite", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "cannot open testFGF.sqlite db: %s\n", sqlite3_errmsg (handle)); sqlite3_close(handle); return -1000; } spatialite_init_ex (handle, cache, 0); /* FDO start-up */ sql = "SELECT AutoFDOStart()"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -1; } /* testing aggregate Union() Point FGF "HouseNumbers" */ sql = "SELECT AsText(ST_Union(Geometry)) FROM fdo_HouseNumbers WHERE TEXT_LABEL LIKE '11%'"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -2; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -3; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -4; } if (strcmp(results[1], "MULTIPOINT(430417.1 5448290.9, 430666.6 5448125.4)") != 0) { fprintf (stderr, "Unexpected error: invalid result |%s|\n", results[1]); return -5; } sqlite3_free_table (results); /* testing Sum(GLength()) Linestring FGF "Centrerlines" */ sql = "SELECT Sum(GLength(Geometry)) FROM fdo_Centerlines"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -6; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -7; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -8; } if (strncmp(results[1], "895.3351", 7) != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -9; } sqlite3_free_table (results); /* testing Sum(Area()) Polygon FGF "AssessmentParcels" */ sql = "SELECT Sum(Area(Geometry)) FROM fdo_AssessmentParcels"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -10; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -11; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -12; } if (strncmp(results[1], "9022.1792", 9) != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -13; } sqlite3_free_table (results); /* FDO shut-down */ sql = "SELECT AutoFDOStop()"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -14; } ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -15; } spatialite_cleanup_ex (cache); ret = unlink("testFGF.sqlite"); if (ret != 0) { fprintf(stderr, "cannot remove testFGF database\n"); return -16; } #endif /* end GEOS conditional */ return 0; } libspatialite-4.1.1/test/check_wfsin.c0000664000175000017500000005002412163502133014671 00000000000000/* check_wfsin.c -- SpatiaLite Test Case Author: Sandro Furieri ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" #include "spatialite/gg_wfs.h" #ifdef ENABLE_LIBXML2 /* only if LIBXML2 is supported */ #include #endif int main (int argc, char *argv[]) { int ret; sqlite3 *handle; char *err_msg = NULL; int row_count; int count; int srid; gaiaWFScatalogPtr catalog = NULL; gaiaWFSitemPtr lyr; gaiaWFSschemaPtr schema; gaiaWFScolumnPtr column; char *str; const char *name; int type; int dims; int nillable; void *cache = spatialite_alloc_connection(); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); sqlite3_close(handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -2; } #ifdef ENABLE_LIBXML2 /* only if LIBXML2 is supported */ ret = load_from_wfs (handle, "./test.wfs", NULL, "topp:p02", 0, "test_wfs1", "objectid", 1, &row_count, &err_msg, NULL, NULL); if (!ret) { fprintf (stderr, "load_from_wfs() error for test.wfs (1): %s\n", err_msg); free(err_msg); sqlite3_close(handle); return -3; } if (row_count != 3) { fprintf (stderr, "unexpected row count for test_wfs: %i\n", row_count); sqlite3_close(handle); return -4; } ret = load_from_wfs (handle, "./test.wfs", NULL, "topp:p02", 0, "test_wfs2", NULL, 0, &row_count, &err_msg, NULL, NULL); if (!ret) { fprintf (stderr, "load_from_wfs() error for test.wfs (2): %s\n", err_msg); free(err_msg); sqlite3_close(handle); return -5; } if (row_count != 3) { fprintf (stderr, "unexpected row count for test_wfs: %i\n", row_count); sqlite3_close(handle); return -6; } catalog = create_wfs_catalog ("./getcapabilities-1.0.0.wfs", &err_msg); if (catalog == NULL) { fprintf (stderr, "create_wfs_catalog() error for getcapabilities-1.0.0.wfs: %s\n", err_msg); free(err_msg); sqlite3_close(handle); return -7; } count = get_wfs_catalog_count (catalog); if (count != 49) { fprintf(stderr, "get_wfs_catalog_count() 1.0.0 error: got %d, expected 49\n", count); sqlite3_close(handle); return -8; } lyr = get_wfs_catalog_item(catalog, 2); if (lyr == NULL) { fprintf(stderr, "get_wfs_catalog_item() 1.0.0 error (NULL)\n"); sqlite3_close(handle); return -9; } str = (char *)get_wfs_item_name(lyr); if (str == NULL) { fprintf(stderr, "get_wfs_item_name() 1.0.0 error (NULL)\n"); sqlite3_close(handle); return -10; } if (strcmp(str, "tiger:tiger_roads") != 0) { fprintf(stderr, "get_wfs_item_name() 1.0.0 error: got \"%s\", expected \"tiger:tiger_roads\"\n", str); sqlite3_close(handle); return -11; } str = (char *)get_wfs_item_title(lyr); if (str == NULL) { fprintf(stderr, "get_wfs_item_title() 1.0.0 error (NULL)\n"); sqlite3_close(handle); return -12; } if (strcmp(str, "Manhattan (NY) roads") != 0) { fprintf(stderr, "get_wfs_item_title() 1.0.0 error: got \"%s\", expected \"Manhattan (NY) roads\"\n", str); sqlite3_close(handle); return -13; } str = (char *)get_wfs_item_abstract(lyr); if (str == NULL) { fprintf(stderr, "get_wfs_item_abstract() error (NULL)\n"); sqlite3_close(handle); return -14; } if (strcmp(str, "Highly simplified road layout of Manhattan in New York..") != 0) { fprintf(stderr, "get_wfs_item_abstract() 1.0.0 error: got \"%s\", expected \"Highly simplified road layout of Manhattan in New York..\"\n", str); sqlite3_close(handle); return -15; } count = get_wfs_layer_srid_count (lyr); if (count != 1) { fprintf(stderr, "get_wfs_layer_srid_count() 1.0.0 error: got %d, expected 1\n", count); sqlite3_close(handle); return -16; } srid = get_wfs_layer_srid (lyr, 0); if (srid != 4326) { fprintf(stderr, "get_wfs_layer_srid() 1.0.0 error: got %d, expected 4326\n", srid); sqlite3_close(handle); return -17; } count = get_wfs_keyword_count (lyr); if (count != 3) { fprintf(stderr, "get_wfs_keyword_count() 1.0.0 error: got %d, expected 3\n", count); sqlite3_close(handle); return -18; } str = (char *)get_wfs_keyword (lyr, 2); if (strcmp(str, "roads") != 0) { fprintf(stderr, "get_wfs_keyword() 1.0.0 error: got \"%s\", expected \"roads\"\n", str); sqlite3_close(handle); return -19; } str = (char *)get_wfs_base_request_url (catalog); if (strcmp(str, "http://www.gaia-gis.it:8080/geoserver/wfs?") != 0) { fprintf(stderr, "get_wfs_base_request_url() 1.0.0 error: got \"%s\", expected \"http://www.gaia-gis.it:8080/geoserver/wfs?\"\n", str); sqlite3_close(handle); return -20; } str = (char *)get_wfs_request_url (catalog, "sf:roads", "1.0.0", 26713, -1); if (strcmp(str, "http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.0.0&request=GetFeature&typeName=sf:roads&srsName=EPSG:26713") != 0) { fprintf(stderr, "get_wfs_request_url() 1.0.0 error: got \"%s\", expected \"http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.0.0&request=GetFeature&typeName=sf:roads&srsName=EPSG:26713\"\n", str); sqlite3_close(handle); return -21; } free(str); str = (char *)get_wfs_describe_url (catalog, "sf:roads", "1.0.0"); if (strcmp(str, "http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.0.0&request=DescribeFeatureType&typeName=sf:roads") != 0) { fprintf(stderr, "get_wfs_describe_url() 1.0.0 error: got \"%s\", expected \"http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.0.0&request=DescribeFeatureType&typeName=sf:roads\"\n", str); sqlite3_close(handle); return -22; } free(str); destroy_wfs_catalog(catalog); catalog = create_wfs_catalog ("./getcapabilities-1.1.0.wfs", &err_msg); if (catalog == NULL) { fprintf (stderr, "create_wfs_catalog() error for getcapabilities-1.1.0.wfs: %s\n", err_msg); free(err_msg); sqlite3_close(handle); return -23; } count = get_wfs_catalog_count (catalog); if (count != 49) { fprintf(stderr, "get_wfs_catalog_count() 1.1.0 error: got %d, expected 49\n", count); sqlite3_close(handle); return -24; } lyr = get_wfs_catalog_item(catalog, 3); if (lyr == NULL) { fprintf(stderr, "get_wfs_catalog_item() 1.1.0 error (NULL)\n"); sqlite3_close(handle); return -25; } str = (char *)get_wfs_item_name(lyr); if (str == NULL) { fprintf(stderr, "get_wfs_item_name() 1.1.0 error (NULL)\n"); sqlite3_close(handle); return -26; } if (strcmp(str, "sf:archsites") != 0) { fprintf(stderr, "get_wfs_item_name() 1.1.0 error: got \"%s\", expected \"sf:archsites\"\n", str); sqlite3_close(handle); return -27; } str = (char *)get_wfs_item_title(lyr); if (str == NULL) { fprintf(stderr, "get_wfs_item_title() error (NULL)\n"); sqlite3_close(handle); return -28; } if (strcmp(str, "Spearfish archeological sites") != 0) { fprintf(stderr, "get_wfs_item_title() 1.1.0 error: got \"%s\", expected \"Spearfish archeological sites\"\n", str); sqlite3_close(handle); return -29; } str = (char *)get_wfs_item_abstract(lyr); if (str == NULL) { fprintf(stderr, "get_wfs_item_abstract() 1.1.0 error (NULL)\n"); sqlite3_close(handle); return -30; } if (strcmp(str, "Sample data from GRASS, archeological sites location, Spearfish, South Dakota, USA") != 0) { fprintf(stderr, "get_wfs_item_abstract() 1.1.0 error: got \"%s\", expected \"Sample data from GRASS, archeological sites location, Spearfish, South Dakota, USA\"\n", str); sqlite3_close(handle); return -31; } count = get_wfs_layer_srid_count (lyr); if (count != 1) { fprintf(stderr, "get_wfs_layer_srid_count() 1.1.0 error: got %d, expected 1\n", count); sqlite3_close(handle); return -32; } srid = get_wfs_layer_srid (lyr, 0); if (srid != 26713) { fprintf(stderr, "get_wfs_layer_srid() 1.1.0 error: got %d, expected 26713\n", srid); sqlite3_close(handle); return -33; } srid = get_wfs_layer_srid (lyr, 10); if (srid != -1) { fprintf(stderr, "get_wfs_layer_srid() 1.1.0 error: got %d, expected -1\n", srid); sqlite3_close(handle); return -34; } count = get_wfs_keyword_count (lyr); if (count != 4) { fprintf(stderr, "get_wfs_keyword_count() 1.1.0 error: got %d, expected 4\n", count); sqlite3_close(handle); return -35; } str = (char *)get_wfs_keyword (lyr, 1); if (strcmp(str, "spearfish") != 0) { fprintf(stderr, "get_wfs_keyword() 1.1.0 error: got \"%s\", expected \"spearfish\"\n", str); sqlite3_close(handle); return -36; } str = (char *)get_wfs_keyword (lyr, 100); if (str != NULL) { fprintf(stderr, "get_wfs_keyword() 1.1.0 error: expected NULL\n"); sqlite3_close(handle); return -37; } str = (char *)get_wfs_base_request_url (catalog); if (strcmp(str, "http://www.gaia-gis.it:8080/geoserver/wfs?") != 0) { fprintf(stderr, "get_wfs_base_request_url() 1.1.0 error: got \"%s\", expected \"http://www.gaia-gis.it:8080/geoserver/wfs?\"\n", str); sqlite3_close(handle); return -38; } str = get_wfs_request_url (catalog, "sf:roads", "1.1.0", 26713, 100); if (strcmp(str, "http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.1.0&request=GetFeature&typeName=sf:roads&srsName=urn:x-ogc:def:crs:EPSG:26713&maxFeatures=100") != 0) { fprintf(stderr, "get_wfs_request_url() 1.1.0 error: got \"%s\", expected \"http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.1.0&request=GetFeature&typeName=sf:roads&srsName=urn:x-ogc:def:crs:EPSG:26713&maxFeatures=100\"\n", str); sqlite3_close(handle); return -39; } free(str); str = get_wfs_request_url (catalog, NULL, "1.1.0", 26713, -1); if (str != NULL) { fprintf(stderr, "get_wfs_request_url() 1.1.0 error: expected NULL\n"); sqlite3_close(handle); return -40; } free(str); str = get_wfs_request_url (catalog, "sf:roads", NULL, -1, 100); if (strcmp(str, "http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.1.0&request=GetFeature&typeName=sf:roads&maxFeatures=100") != 0) { fprintf(stderr, "get_wfs_request_url() 1.1.0 error: got \"%s\", expected \"http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.1.0&request=GetFeature&typeName=sf:roads&maxFeatures=100\"\n", str); sqlite3_close(handle); return -41; } free(str); str = get_wfs_request_url (catalog, "sf:roads", NULL, 1234, 100); if (strcmp(str, "http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.1.0&request=GetFeature&typeName=sf:roads&maxFeatures=100") != 0) { fprintf(stderr, "get_wfs_request_url() 1.1.0 error: got \"%s\", expected \"http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.1.0&request=GetFeature&typeName=sf:roads&maxFeatures=100\"\n", str); sqlite3_close(handle); return -42; } free(str); str = get_wfs_describe_url (catalog, "sf:roads", "1.1.0"); if (strcmp(str, "http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.1.0&request=DescribeFeatureType&typeName=sf:roads") != 0) { fprintf(stderr, "get_wfs_describe_url() 1.1.0 error: got \"%s\", expected \"http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.1.0&request=DescribeFeatureType&typeName=sf:roads\"\n", str); sqlite3_close(handle); return -43; } free(str); str = get_wfs_describe_url (catalog, NULL, "1.1.0"); if (str != NULL) { fprintf(stderr, "get_wfs_describe_url() 1.1.0 error: : expected NULL\n"); sqlite3_close(handle); return -44; } free(str); str = get_wfs_describe_url (catalog, "sf:roads", NULL); if (strcmp(str, "http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.1.0&request=DescribeFeatureType&typeName=sf:roads") != 0) { fprintf(stderr, "get_wfs_describe_url() 1.1.0 error: got \"%s\", expected \"http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.1.0&request=DescribeFeatureType&typeName=sf:roads\"\n", str); sqlite3_close(handle); return -45; } free(str); destroy_wfs_catalog(catalog); lyr = get_wfs_catalog_item(NULL, 3); if (lyr != NULL) { fprintf(stderr, "get_wfs_catalog_item() 1.1.0 error (NULL)\n"); sqlite3_close(handle); return -46; } str = (char *)get_wfs_item_name(NULL); if (str != NULL) { fprintf(stderr, "get_wfs_item_name() 1.1.0 error (NULL)\n"); sqlite3_close(handle); return -47; } str = (char *)get_wfs_item_title(NULL); if (str != NULL) { fprintf(stderr, "get_wfs_item_title() error (NULL)\n"); sqlite3_close(handle); return -48; } str = (char *)get_wfs_item_abstract(NULL); if (str != NULL) { fprintf(stderr, "get_wfs_item_abstract() 1.1.0 error (NULL)\n"); sqlite3_close(handle); return -49; } count = get_wfs_layer_srid_count (NULL); if (count != -1) { fprintf(stderr, "get_wfs_layer_srid_count() 1.1.0 error: got %d, expected -1\n", count); sqlite3_close(handle); return -50; } srid = get_wfs_layer_srid (NULL, 0); if (srid != -1) { fprintf(stderr, "get_wfs_layer_srid() 1.1.0 error: got %d, expected -1\n", srid); sqlite3_close(handle); return -51; } count = get_wfs_keyword_count (NULL); if (count != -1) { fprintf(stderr, "get_wfs_keyword_count() 1.1.0 error: got %d, expected -1\n", count); sqlite3_close(handle); return -52; } str = (char *)get_wfs_keyword (NULL, 1); if (str != NULL) { fprintf(stderr, "get_wfs_keyword() 1.1.0 error: expected NULL\n"); sqlite3_close(handle); return -53; } str = (char *)get_wfs_keyword (NULL, 100); if (str != NULL) { fprintf(stderr, "get_wfs_keyword() 1.1.0 error: expected NULL\n"); sqlite3_close(handle); return -54; } str = (char *)get_wfs_base_request_url (NULL); if (str != NULL) { fprintf(stderr, "get_wfs_base_request_url() error: expected NULL\n"); sqlite3_close(handle); return -55; } str = (char *)get_wfs_base_describe_url (NULL); if (str != NULL) { fprintf(stderr, "get_wfs_base_describe_url() error: expected NULL\n"); sqlite3_close(handle); return -56; } str = (char *)get_wfs_request_url (NULL, "sf:roads", "1.1.0", 26713, -1); if (str != NULL) { fprintf(stderr, "get_wfs_request_url() error: expected NULL\n"); sqlite3_close(handle); return -57; } str = (char *)get_wfs_describe_url (NULL, "sf:roads", "1.1.0"); if (str != NULL) { fprintf(stderr, "get_wfs_describe_url() error: expected NULL\n"); sqlite3_close(handle); return -58; } destroy_wfs_catalog(NULL); schema = create_wfs_schema ("./describefeaturetype.wfs", "sf:roads", &err_msg); if (schema == NULL) { fprintf (stderr, "create_wfs_schema() error for describefeaturetype.wfs: %s\n", err_msg); free(err_msg); sqlite3_close(handle); return -59; } count = get_wfs_schema_column_count (schema); if (count != 8) { fprintf(stderr, "get_wfs_schema_column_count() error: got %d, expected 8\n", count); sqlite3_close(handle); return -60; } column = get_wfs_schema_column(schema, 5); if (column == NULL) { fprintf(stderr, "get_wfs_schema_column() error (NULL)\n"); sqlite3_close(handle); return -61; } if (get_wfs_schema_column_info(column, &name, &type, &nillable) == 0) { fprintf(stderr, "get_wfs_schema_column_info() error\n"); sqlite3_close(handle); return -62; } if (strcmp(name, "codcom") != 0) { fprintf(stderr, "get_wfs_schema_column_info() NAME error: got \"%s\", expected \"codcom\"\n", name); sqlite3_close(handle); return -63; } if (type != SQLITE_TEXT) { fprintf(stderr, "get_wfs_schema_column_info() TYPE error: got %d, expected %d\n", type, SQLITE_TEXT); sqlite3_close(handle); return -64; } if (nillable == 0) { fprintf(stderr, "get_wfs_schema_column_info() NILLABLE error: got %d, expected 1\n", nillable); sqlite3_close(handle); return -65; } if (get_wfs_schema_geometry_info(schema, &name, &type, &srid, &dims, &nillable) == 0) { fprintf(stderr, "get_wfs_schema_geometry_info() error\n"); sqlite3_close(handle); return -66; } if (strcmp(name, "geometry") != 0) { fprintf(stderr, "get_wfs_schema_geometry_info() NAME error: got \"%s\", expected \"geometry\"\n", name); sqlite3_close(handle); return -67; } if (type != GAIA_MULTIPOLYGON) { fprintf(stderr, "get_wfs_schema_geometry_info() TYPE error: got %d, expected %d\n", type, GAIA_MULTIPOLYGON); sqlite3_close(handle); return -68; } if (srid != -1) { fprintf(stderr, "get_wfs_schema_geometry_info() TYPE error: got %d, expected -1\n", srid); sqlite3_close(handle); return -69; } if (dims != 2) { fprintf(stderr, "get_wfs_schema_geometry_info() DIMS error: got %d, expected 2\n", dims); sqlite3_close(handle); return -70; } if (nillable == 0) { fprintf(stderr, "get_wfs_schema_geometry_info() NILLABLE error: got %d, expected 1\n", nillable); sqlite3_close(handle); return -71; } destroy_wfs_schema (schema); schema = create_wfs_schema (NULL, NULL, &err_msg); if (schema != NULL) { fprintf (stderr, "create_wfs_schema() unexpected result for NULL\n"); free(err_msg); sqlite3_close(handle); return -72; } count = get_wfs_schema_column_count (NULL); if (count != -1) { fprintf(stderr, "get_wfs_schema_column_count() unexpected result for NULL\n"); sqlite3_close(handle); return -73; } column = get_wfs_schema_column(NULL, 5); if (column != NULL) { fprintf(stderr, "get_wfs_schema_column() unexpected result for NULL\n"); sqlite3_close(handle); return -74; } if (get_wfs_schema_column_info(NULL, &name, &type, &nillable) != 0) { fprintf(stderr, "get_wfs_schema_column_info() unexpected result for NULL\n"); sqlite3_close(handle); return -75; } if (get_wfs_schema_geometry_info(NULL, &name, &type, &srid, &dims, &nillable) != 0) { fprintf(stderr, "get_wfs_schema_geometry_info() unexpected result for NULL\n"); sqlite3_close(handle); return -76; } destroy_wfs_schema (NULL); xmlCleanupParser(); #endif /* end LIBXML2 conditional */ ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -77; } spatialite_cleanup_ex (cache); return 0; } libspatialite-4.1.1/test/check_add_tile_triggers.c0000664000175000017500000003604712163502133017227 00000000000000/* check_add_tile_triggers.c - Test case for GeoPackage Extensions Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Brad Hards Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #include "test_helpers.h" int main (int argc UNUSED, char *argv[] UNUSED) { sqlite3 *db_handle = NULL; int ret; char *err_msg = NULL; void *cache = spatialite_alloc_connection(); char *old_SPATIALITE_SECURITY_ENV = NULL; #ifdef _WIN32 char *env; #endif /* not WIN32 */ old_SPATIALITE_SECURITY_ENV = getenv("SPATIALITE_SECURITY"); #ifdef _WIN32 putenv("SPATIALITE_SECURITY=relaxed"); #else /* not WIN32 */ setenv("SPATIALITE_SECURITY", "relaxed", 1); #endif ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); // For debugging / testing if required // ret = sqlite3_open_v2 ("check_add_tile_triggers.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); spatialite_init_ex(db_handle, cache, 0); if (old_SPATIALITE_SECURITY_ENV) { #ifdef _WIN32 env = sqlite3_mprintf("SPATIALITE_SECURITY=%s", old_SPATIALITE_SECURITY_ENV); putenv(env); sqlite3_free(env); #else /* not WIN32 */ setenv("SPATIALITE_SECURITY", old_SPATIALITE_SECURITY_ENV, 1); #endif } else { #ifdef _WIN32 putenv("SPATIALITE_SECURITY="); #else /* not WIN32 */ unsetenv("SPATIALITE_SECURITY"); #endif } if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } /* create a minimal raster_format_metadata table (not spec compliant) */ ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS raster_format_metadata", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP raster_format_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -4; } ret = sqlite3_exec (db_handle, "CREATE TABLE raster_format_metadata (r_table_name TEXT NOT NULL, r_raster_column TEXT NOT NULL, mime_type TEXT NOT NULL DEFAULT 'image/jpeg', bit_depth INTEGER NOT NULL DEFAULT 24)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE raster_format_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -5; } /* add in a test entry */ ret = sqlite3_exec (db_handle, "INSERT INTO raster_format_metadata VALUES (\"test1_matrix_tiles\", \"tile_data\", \"image/png\", 24)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT raster_format_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -6; } /* create a minimal tile_matrix_metadata table (not spec compliant) */ ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS tile_matrix_metadata", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP tile_matrix_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -7; } ret = sqlite3_exec (db_handle, "CREATE TABLE tile_matrix_metadata (t_table_name TEXT NOT NULL, zoom_level INTEGER NOT NULL, matrix_width INTEGER NOT NULL, matrix_height INTEGER NOT NULL)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE tile_matrix_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -8; } /* add in a test entry */ ret = sqlite3_exec (db_handle, "INSERT INTO tile_matrix_metadata VALUES (\"test1_matrix_tiles\", 0, 1, 1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT tile_matrix_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -9; } /* create a target table */ ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS test1_matrix_tiles", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP test1_matrix_tiles error: %s\n", err_msg); sqlite3_free (err_msg); return -10; } ret = sqlite3_exec (db_handle, "CREATE TABLE test1_matrix_tiles (id INTEGER PRIMARY KEY AUTOINCREMENT, zoom_level INTEGER NOT NULL DEFAULT 0, tile_column INTEGER NOT NULL DEFAULT 0, tile_row INTEGER NOT NULL DEFAULT 0, tile_data BLOB NOT NULL DEFAULT (zeroblob(4)))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE test1_matrix_tiles error: %s\n", err_msg); sqlite3_free (err_msg); return -11; } /* test trigger setup */ ret = sqlite3_exec (db_handle, "SELECT gpkgAddTileTriggers(\"test1_matrix_tiles\")", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "SELECT add_tile_trigger error: %s\n", err_msg); sqlite3_free (err_msg); return -12; } /* test the trigger works - several different cases here */ ret = sqlite3_exec (db_handle, "INSERT INTO test1_matrix_tiles VALUES ( 3, 0, 0, 1, BlobFromFile('empty.png'))", NULL, NULL, &err_msg); if (ret != SQLITE_CONSTRAINT) { fprintf (stderr, "unexpected INSERT INTO 17A result: %i\n", ret); return -17; } if (strcmp(err_msg, "insert on table 'test1_matrix_tiles' violates constraint: tile_row must be < matrix_height specified for table and zoom level in tile_matrix_metadata") !=0) { fprintf(stderr, "unexpected INSERT INTO error message 3: %s\n", err_msg); sqlite3_free(err_msg); return -18; } sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "INSERT INTO test1_matrix_tiles VALUES ( 4, 0, 1, 0, BlobFromFile('empty.png'))", NULL, NULL, &err_msg); if (ret != SQLITE_CONSTRAINT) { fprintf (stderr, "unexpected INSERT INTO 17 result: %i\n", ret); return -17; } if (strcmp(err_msg, "insert on table 'test1_matrix_tiles' violates constraint: tile_column must be < matrix_width specified for table and zoom level in tile_matrix_metadata") != 0) { fprintf(stderr, "unexpected INSERT INTO error message 4: %s\n", err_msg); sqlite3_free(err_msg); return -18; } sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "INSERT INTO test1_matrix_tiles VALUES ( 5, 1, 0, 0, BlobFromFile('empty.png'))", NULL, NULL, &err_msg); if (ret != SQLITE_CONSTRAINT) { fprintf (stderr, "unexpected INSERT INTO 19 result: %i\n", ret); return -19; } if (strcmp(err_msg, "insert on table 'test1_matrix_tiles' violates constraint: zoom_level not specified for table in tile_matrix_metadata") != 0) { fprintf(stderr, "unexpected INSERT INTO error message 5: %s\n", err_msg); sqlite3_free(err_msg); return -20; } sqlite3_free (err_msg); /* Check a proper INSERT */ ret = sqlite3_exec (db_handle, "INSERT INTO test1_matrix_tiles VALUES (6, 0, 0 ,0, BlobFromFile('empty.png'))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT error 6: %s\n", err_msg); sqlite3_free (err_msg); return -21; } /* try some update checks */ ret = sqlite3_exec (db_handle, "UPDATE test1_matrix_tiles SET zoom_level = 1 WHERE id = 6", NULL, NULL, &err_msg); if (ret != SQLITE_CONSTRAINT) { fprintf (stderr, "unexpected UPDATE result: %i\n", ret); return -24; } if (strcmp(err_msg, "update on table 'test1_matrix_tiles' violates constraint: zoom_level not specified for table in tile_matrix_metadata") != 0) { fprintf(stderr, "unexpected UPDATE error message 1: %s\n", err_msg); sqlite3_free(err_msg); return -25; } sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "UPDATE test1_matrix_tiles SET zoom_level = -1 WHERE id = 6", NULL, NULL, &err_msg); if (ret != SQLITE_CONSTRAINT) { fprintf (stderr, "unexpected UPDATE 34 result: %i\n", ret); return -34; } if (strcmp(err_msg, "update on table 'test1_matrix_tiles' violates constraint: zoom_level not specified for table in tile_matrix_metadata") != 0) { fprintf(stderr, "unexpected UPDATE error message 5: %s\n", err_msg); sqlite3_free(err_msg); return -35; } sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "UPDATE test1_matrix_tiles SET tile_column = -1 WHERE id = 6", NULL, NULL, &err_msg); if (ret != SQLITE_CONSTRAINT) { fprintf (stderr, "unexpected UPDATE 36 result: %i\n", ret); return -36; } if (strcmp(err_msg, "update on table 'test1_matrix_tiles' violates constraint: tile_column cannot be < 0") != 0) { fprintf(stderr, "unexpected UPDATE error message 6: %s\n", err_msg); sqlite3_free(err_msg); return -37; } sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "UPDATE test1_matrix_tiles SET tile_row = -1 WHERE id = 6", NULL, NULL, &err_msg); if (ret != SQLITE_CONSTRAINT) { fprintf (stderr, "unexpected UPDATE 38 result: %i\n", ret); return -38; } if (strcmp(err_msg, "update on table 'test1_matrix_tiles' violates constraint: tile_row cannot be < 0") != 0) { fprintf(stderr, "unexpected UPDATE error message 7: %s\n", err_msg); sqlite3_free(err_msg); return -39; } sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "UPDATE test1_matrix_tiles SET tile_row = 1 WHERE id = 6", NULL, NULL, &err_msg); if (ret != SQLITE_CONSTRAINT) { fprintf (stderr, "unexpected UPDATE 40 result: %i\n", ret); return -40; } if (strcmp(err_msg, "update on table 'test1_matrix_tiles' violates constraint: tile_row must be < matrix_height specified for table and zoom level in tile_matrix_metadata") != 0) { fprintf(stderr, "unexpected UPDATE error message 8: %s\n", err_msg); sqlite3_free(err_msg); return -41; } sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "UPDATE test1_matrix_tiles SET tile_column = 1 WHERE id = 6", NULL, NULL, &err_msg); if (ret != SQLITE_CONSTRAINT) { fprintf (stderr, "unexpected UPDATE 42 result: %i\n", ret); return -42; } if (strcmp(err_msg, "update on table 'test1_matrix_tiles' violates constraint: tile_column must be < matrix_width specified for table and zoom level in tile_matrix_metadata") != 0) { fprintf(stderr, "unexpected UPDATE error message 9: %s\n", err_msg); sqlite3_free(err_msg); return -43; } sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "INSERT INTO test1_matrix_tiles VALUES ( 4, 0, -1, 0, BlobFromFile('empty.png'))", NULL, NULL, &err_msg); if (ret != SQLITE_CONSTRAINT) { fprintf (stderr, "unexpected INSERT INTO 44 result: %i\n", ret); return -44; } if (strcmp(err_msg, "insert on table 'test1_matrix_tiles' violates constraint: tile_column cannot be < 0") != 0) { fprintf(stderr, "unexpected INSERT INTO error message 9: %s\n", err_msg); sqlite3_free(err_msg); return -45; } sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "INSERT INTO test1_matrix_tiles VALUES ( 4, 0, 0, -1, BlobFromFile('empty.png'))", NULL, NULL, &err_msg); if (ret != SQLITE_CONSTRAINT) { fprintf (stderr, "unexpected INSERT INTO 46 result: %i\n", ret); return -46; } if (strcmp(err_msg, "insert on table 'test1_matrix_tiles' violates constraint: tile_row cannot be < 0") != 0) { fprintf(stderr, "unexpected INSERT INTO error message 10: %s\n", err_msg); sqlite3_free(err_msg); return -47; } sqlite3_free (err_msg); /* new tiles table */ ret = sqlite3_exec (db_handle, "INSERT INTO raster_format_metadata VALUES (\"test2_matrix_tiles\", \"tile_data\", \"image/jpeg\", 24)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT raster_format_metadata jpeg error: %s\n", err_msg); sqlite3_free (err_msg); return -50; } ret = sqlite3_exec (db_handle, "INSERT INTO tile_matrix_metadata VALUES (\"test2_matrix_tiles\", 0, 1, 1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT tile_matrix_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -51; } ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS test2_matrix_tiles", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP test2_matrix_tiles error: %s\n", err_msg); sqlite3_free (err_msg); return -52; } ret = sqlite3_exec (db_handle, "CREATE TABLE test2_matrix_tiles (id INTEGER PRIMARY KEY AUTOINCREMENT, zoom_level INTEGER NOT NULL DEFAULT 0, tile_column INTEGER NOT NULL DEFAULT 0, tile_row INTEGER NOT NULL DEFAULT 0, tile_data BLOB NOT NULL DEFAULT (zeroblob(4)))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE test2_matrix_tiles error: %s\n", err_msg); sqlite3_free (err_msg); return -53; } /* test trigger setup */ ret = sqlite3_exec (db_handle, "SELECT gpkgAddTileTriggers(\"test2_matrix_tiles\")", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "SELECT gpkgAddTileTriggers(test2_matrix_tiles) error: %s\n", err_msg); sqlite3_free (err_msg); return -54; } /* test trigger setup, bad table type */ ret = sqlite3_exec (db_handle, "SELECT gpkgAddTileTriggers(0)", NULL, NULL, &err_msg); if (ret != SQLITE_ERROR) { fprintf(stderr, "unexpected SELECT gpkgAddTileTriggers(0) result: %i\n", ret); return -100; } if (strcmp(err_msg, "gpkgAddTileTriggers() error: argument 1 [table] is not of the String type") != 0) { fprintf (stderr, "unexpected SELECT gpkgAddTileTriggers(0) error: %s\n", err_msg); sqlite3_free (err_msg); return -101; } sqlite3_free(err_msg); ret = sqlite3_close (db_handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle)); return -200; } spatialite_cleanup_ex(cache); return 0; } libspatialite-4.1.1/test/check_md5.c0000664000175000017500000001652512163502133014240 00000000000000/* check_md5.c -- SpatiaLite Test Case Author: Sandro Furieri ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include "sqlite3.h" #include "spatialite.h" #include "spatialite/gaiaaux.h" int main (int argc, char *argv[]) { int ret; sqlite3 *handle; char *err_msg = NULL; int i; double x = 0.0; double y = 0.0; char sql[256]; char **results; int rows; int columns; void *cache = spatialite_alloc_connection(); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle)); sqlite3_close(handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -2; } ret = sqlite3_exec (handle, "CREATE TABLE test (id INTEGER PRIMARY KEY NOT NULL, name TEXT NOT NULL)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE TABLE error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -3; } ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('test', 'geom', 4326, 'POINT', 'XY')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -4; } for (i = 0; i < 1000; i++) { /* inserting thousand points */ sprintf(sql, "INSERT INTO test (id, name, geom) VALUES " "(%d, 'qwertyUOIOP%d', MakePoint(%1.2f, %1.2f, 4326))", i, i, x, y); x += 0.01; y += 0.25; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Insert Point(%d) error: %s\n", i, err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -5; } } /* testing MD5Checksum() - BLOB */ strcpy(sql, "SELECT MD5Checksum(geom) FROM test WHERE id IN (10, 100, 750)"); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -6; } if ((rows != 3) || (columns != 1)) { fprintf (stderr, "Unexpected error: MD5Checksum (blob) bad result: %i/%i.\n", rows, columns); return -7; } if (strcmp(results[1], "66db2227f970c7881b57247a28e2f893") != 0) { fprintf (stderr, "Unexpected error: MD5Checksum blob-#1 bad result: %s.\n", results[1]); return -8; } if (strcmp(results[2], "6fc5f82a0f9093c5287617cac908b557") != 0) { fprintf (stderr, "Unexpected error: MD5Checksum blob-#2 bad result: %s.\n", results[2]); return -9; } if (strcmp(results[3], "5f92e335d709c85f5858772a5072f0e3") != 0) { fprintf (stderr, "Unexpected error: MD5Checksum blob-#3 bad result: %s.\n", results[3]); return -10; } sqlite3_free_table (results); /* testing the aggregate function: MD5TotalChecksum() - BLOB */ strcpy(sql, "SELECT MD5TotalChecksum(geom) FROM test"); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -11; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: MD5TotalChecksum (blob) bad result: %i/%i.\n", rows, columns); return -12; } if (strcmp(results[1], "480b0dd7524a3bb4a75e01123a3eedf0") != 0) { fprintf (stderr, "Unexpected error: MD5TotalChecksum() (blob) bad result: %s.\n", results[1]); return -13; } sqlite3_free_table (results); /* testing MD5Checksum() - TEXT */ strcpy(sql, "SELECT MD5Checksum(name) FROM test WHERE id IN (10, 100, 750)"); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -14; } if ((rows != 3) || (columns != 1)) { fprintf (stderr, "Unexpected error: MD5Checksum (text) bad result: %i/%i.\n", rows, columns); return -15; } if (strcmp(results[1], "05bc33eb92fb4a319da50825571358ad") != 0) { fprintf (stderr, "Unexpected error: MD5Checksum text-#1 bad result: %s.\n", results[1]); return -16; } if (strcmp(results[2], "bbf88f3dfa445ea7a37feca8959b08ed") != 0) { fprintf (stderr, "Unexpected error: MD5Checksum text-#2 bad result: %s.\n", results[2]); return -17; } if (strcmp(results[3], "97805a371d30b02f7a4ee611ff027664") != 0) { fprintf (stderr, "Unexpected error: MD5Checksum text-#3 bad result: %s.\n", results[3]); return -18; } sqlite3_free_table (results); /* testing the aggregate function: MD5TotalChecksum() - TEXT */ strcpy(sql, "SELECT MD5TotalChecksum(name) FROM test"); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -19; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: MD5TotalChecksum (text) bad result: %i/%i.\n", rows, columns); return -20; } if (strcmp(results[1], "b775beceb3ef0ee9d9c16d4ddfe81879") != 0) { fprintf (stderr, "Unexpected error: MD5TotalChecksum() (text) bad result: %s.\n", results[1]); return -21; } sqlite3_free_table (results); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -22; } spatialite_cleanup_ex(cache); return 0; } libspatialite-4.1.1/test/tile100.jpeg0000664000175000017500000002164412163502134014276 00000000000000JFIFC  !"$"$C" )ii431 Ɛ3@@i1 Ɛ3@i1@"`R Q;l@H2t1@X@(3yweZ7jvFc\NM-˲H *3Jo)5VDBV#IS "B$d"-*֨ˢU-vF uζ<4.ߛM/ BH-v9F&еVŲj7ћMb`C&"Q! MmTZ7VClάKxwCe\y։@% ƅ* '4TūZ3K2UZP^xwBzAvR F4_+GU3rzRWHhY=q% jb@p=9[qr _.e\u^.vRAA4ugI34D%.5:YK#]\c7Q(·"`eR)Ґ S6eUhg5s vS=H8r6W",N?m*@;}je;)"!"՘.Qa1{OC7Sֽηj zzAE0m^c1V7{ ތPy;A\ɽ"*`A+`&<31_ƆN{<{}N=͑b cҭ7 c ɐNJ9^}>_TV2cˮʮes8 ìRu:ٴO vLmzT|TI͇&?'\x}/՛X cͰޝKefsdGB&4_a5?&Luco\35bcElFQݙ"㺿lEL8 P'"S7ȱ]L;hW?Z+?]͛c`A6, P@4l{u1-m~ˉqY?ъDbO'  |L@7Mߢ l1|6eXVVq kI_^{v')wb;{7e $ !1"A0Q2@q?8= Cݜ_ҢI} &]vojg5C4cݣ.5-OP7գ8(8T9!gGɑ1j1~ntSgM V9RJd $JvxɢRT9r[6qj Xb8$YxP%CӬ{Tq&蓱 zѪBKO_C۰jNn*Gf0C*a0|d 7;*ԣc ّT 7q|DHZe4WIu2ŦZG;EO8N:E'} đU*U>Nd>%>\ ʴ#)~[0e*Eɕ;Ֆ+ZM<ӑA:&"sq}6|mM݇ǾQ7evXI*l_q Ԏ̤\u=\' C#f2HA!u7v6 es+K *!1AQ aq0@P?!~??-?bx|O}l=jjaI`-{Ye /nu~^S*`lA0V9G@ 38 ]t_ ZpN2}p{#n1!ų2:XeσQ{`0FµKJ04֡ZKDG$"ĀB%̈́y]/|APL4b15u 9nu}]ъwSEJ^b/Esʠ5t Jf?=n$J@2w=t DEԺ2^/q,,p_wE;¡bV; pمe9!Ӂr+;cֺNf6Ԫ˄HP7Z[C-?3Alp6:57K#P΢:UvbX7r_J M6=G@#ts)ſҥ?'EZ{!R=0vTaS42RA5,TRz.4pDQV[8&'Cū Ui?dU[GiqN&VP wh f[\\Xq`$5<3=2`b޻VEwe> $ h(cp/r>WQ2~ж 6iAYsLW(ϗ/5۶r .Y9;J&:bKYq Ħ% JG$n/WA3 ; ]&&+\EntLLtFP 0J{(.q jql P"W qZ')n 7r*p'Cr<{k{_"hjk,OkW]C+Pf}lhb7UkVe7UVkT;VΥ7UMK]T7QJn$U"K JvVa nVe7UMfSuYTj6k' "4@(bE<AP  E [ekX pRTYDesN`G E7)-J'0IZR 6-x2mHTw*-0uI!QxkנHVtSJJSxB(ѠNߏzťЦ j ya 2\ "!1 A0Qaq?|mcx.55̐ܺ[ !t剋8 ?=ś9+ UH0ݢ=soDammV&9#Mor 8Jb& de_=; ;C`;waDtf36\2[ë|Yc3 "dIB/6P|ܛ2$bɓ8#O>5[MӋd-w|e-l۶7XqGuI)|^llllaI?\mpMp,: xuv=E1T=53Ԡ ,;C ^f5Q-R.eCYnS0ٷ <ST6 *3YԨȂS,1)oC[PׂC 䇊~7?ǂ@Q+K7Zǟ?%g.-Uj~%3D@C3f>-‘8g.cՙo_7 k+ pn w]NrŸ́K AM~n}^sFʂP!69d@%0uh./fQ 8w0<3CMs |e?'P*e ̵V[TC9{Ħ0`DK8(حI~cΣ ߇3KFKAt\nKRF"3cV9enBp5ؔ_R$NNsc{6T6 BVXD,sʦV37>x8f$JڷůO1Dts)y17WfZ_9\dxaAF]3~`h"v JǏ~/ǹS\!n0e`~5 N̅q(%rjP1-+NNf(폰7٣)]OaxKu1f@ j^Fz QH̹qLe>6f+1@5,F 21ԥ ʬB 8F>ņP3e5gMh ࠜv7--!ULST쳔qHrqpӾجjUx4!R7XQԧv.* -ic'R]ԣ1h癉kH5P`0L5T0ip1XHɇ;+'Ԧ{3`W A_0b&0Ξ35r*%H z-R^&~`5A /ڣP^teNc϶Wuuhh.1A VV\(m*%Nk UlS=2Q*qz Tn;s3 vRa:@TiJP1:2;!Ek+hɯX&|iWfG0UȲU#T.zgvpP㐓p-REC%p~ Jru.IRY`H1taרeq\*1r6G\@6f84 Z,Lm T׆\C"Db7purr3Lodn_kL8}儺:1PS~F'A]'"o`f[ ǀ.D|@\ήq[aFأ ԆFXZ oxQr jo| \:\ !+2DSpS] -y4H!iPmZ,*l n~6JLx([G2£H0tc>-#U6m%\qhFR4˺sx T\6I=Y*`f+qȨ PyPw&/X'ئtNpXQ1&~lWdZWGt E%m\oe,džqZj/0>~ g<퀱GkE߄}hc TcB!c\ʋL7"9;&kֈe`]@)7ˮ-5 4_0 GR0obp5qE=Sa[? hƣB*7(m68[Χ? RGQ1 Jyi3D`FYX14tpvl=%m 4 ij8sż#J5 T:6(Pje'x$oF1 o ";+GDRZUJ8 a ʃ )U}B&_)D0@Vmvns,{ bYP݆LKu +Z; օSnHnG?C=6|cw3BՂ1Cq*;ӱ)0509[ 切 L eLSLUs 7ω{nfQD.?йf y7Sf""OFVxܱ]sF>OqS /9xfT)#*P ]s)TW3EÄ2,/%Vsz&#v­v`VoG-(([0b 7-&e7 uHK>GFPR9mF/jG1MK ]̭_KѧKЀ.L?Voe©^bF`ubSV&ÙDb'7k`aY%XcW(~lPc*a\Fksax0F!2.M9 ɶۘRiZi\Ń*K 8ZJWI޼ e\BcL S*ƸKÆj9=H2 YIia3^|jb(rSTv:3\ݛCU,a}F+eAr)~_Qo<ܜJ} 3m|Wf]>kʗK%j@J"W+x6b]|8F! Rigoletto Il trovatore La traviata Aida Nabucco Carmen The Barber of Seville William Tell The Marriage of Figaro Thus Do They All Don Giovanni libspatialite-4.1.1/test/tile111.jpeg0000664000175000017500000001403512163502134014274 00000000000000JFIFC  !"$"$C" ;z_xvx>[G#Q9xur3],mx=??s>-_??WKHRQ(5=}ۗ˯3V6l/>=+ӖI|i@J3s޻f߫Yx[#sןPnJ,z5\s}f/Y@ )@+Dq M ( ( P !B RRP I,-)DD^~oF{ys:pg~5뱛2gӗuE{m_V3'ӦnmL˿Lz}|{fk9S6vzu9k5Hя?ɩXߧח=?ǗWӪ^=fkV]ܽ33Ν;q|Lf;ɟ/nTtig:o|z$IZSRyWLy٦xUT Z7ɨM[XsjY^:DpԢ)5)Q`n()ǫ>m/M,Vaf=F͋ϟo\( !10@A2"B3p]K aXB,*Dv34_)9/5*5Kkt%7`m+5nED@ޒU/*L%`17z=20nLj-D'LQSVuQ '9M uXS7`*㤚uE f3o#SĉNԇ}rT#wR4~ (  JZn)>MFM-qc94G^.|6!OF,rL_+AiL{` AM2sMd>)sNn:fQrU02,QAM6-49:Ig҂"Χ=M6VU*5cztX㽕D ,Q*v!EɰRNq۞@M*{Lp/0%<| Mǐ5R!KVAdTVMY5dՓVAdAdAHRAdՓVMY5dՓQ-NsS\Փg$ 1!0@QAP?[Bn=-Cvh'Q;l*H@LKD('ZƼs@);WH-SiA V ,l%5>.(ybQCvNUCNtM١cWcT}f"rDo6-L Ƥ >$ \a5'\.~7Dm5ӷ&=*1!0 "@AQqPa2pBR?NBxǵijBwv].\{Yt~-K-A Sw}ZsSˊ4R2$Ie-lKgM:N'e}~v…z ,`Mne,T&" ) B) B) B) B) B) B) B) B)!1 AQa0@qᡱP?!*Qa5ڿ$^;wxU7y> %^rԡ8ٴc8yj]' I#=tCXqf5Fi5%$ϐj֭ #mmk>bٖ31")5&,vP^FjhHB_P)<_"5 IJiTWF6}i.FOA=bt5dvv/!*%[񵕲)?6aQ(IJXS-g[fh^m ƈ٥[/GۛأBO:dc5)A]$fz3S3Bqb/E)d{]PĪhMj4eƱ/~i;vnHS_YpZcRٛ\QU|UCqZ Co_wc\4$_ ~Ej>4_Wɯ#94Qt-#YQ3qz)M'Hl,"ihE *e`k!fY-]N\7ע)FnWW.6R |'YmoTx r>Ҿo =B 鋂c|.l_">*)Ns!|}F:]NʑSߏ~=ݏv=_z=_=#ݏv=cݏ~a~#܏r="_yWB)}-  _ppԜp/'F,wJ)ˇi 5 L0Z@|u,0@I1( D@ I :$2j*\fe2P"ҹ6c5P$8 ,x솳5Qv0񐰍* 9xcsGGUH?! 10AQ@q? EhGb1該 ¨="z{ʥ5m*(a<>OE[/V6km_eDV?/\'}Ku*x)`4'NJv#DOib*q@Q sT .Ez.\r8]8嗾o{-"*sr˗^UD3$!1 AQ0aq@?A(spo" L|4[ ]ϼsaw{}@ᗊǹZ>+P? k<|9LRۂMH7>?V u_AQ%k޸%0p/i ם~Գ(wd0BgO{IlR0V_>Z`AjUE"oSbM%%`@ ʁ Q'ebX X.*5NKXLMDbG7O'!1AQaq ?nۃldWs_~.guu XG_Lbx *fx%SBtB6xP" UwZ|/ʠjhShtN˸w7fM@ J`$jw͈ oy}ǰ(KiP@]D? (Pel- mr?1EF”LS@u{@Kg4:1`ܾ $ fgm (Rc2b r8 \Yv-cdTK~4T \jL%C[hhKr@~Ŕ*hwha0V:MCXCp- zܨ%V̲j_Rsu5J( +~X+={QB s:p 9j bU WFx v81oʯ|3ң#.HĢqY?Իyp p+1o0UKgJv93QXܼo<7 sxJ̬uK+fS3>eOs˹9\.:5/&e %aa70K$cH71%]K'\(51YJpPq%63xq:)<8s~zC\/8U%fnR>xG}JWL#ze̳2_j6c2݌iKA" RX/BCKİaOp*h5IW3zM2S>>eLϜKt|unesml6l[a]JD>ăteZ`GeV]0 (;(DjH v HzaU1TZx`KMl׈ e3fM2;2]C Jzhrce ,xy "B@X@Vx S ʗL{*n\HJ4GxL,B "jUBzj;AksrAFM}X-պP8W쵌y31 J1Y,ƐË.seEFُ " J<TM,̤BA4"WH916 Tzcm¯qqZ:wsHRĺU3* 4E`r֥@pěF\LV@)[7-Vw,48ؽA}FYK̹uNZf #kW {&Я)-/3*0 ̼Ejx]3a4dbs K^cQ\;( =!Y)r Ldn [es"50nwv,R0K/YXa4֟puw\rr!eŝJ5GY0Geϳ9O!W;|B+qgu3L1 30ܚzb0x"}D%f޼J%"@e@&u>!V/X`S;֥+d]T=^ vJTp|~~??9y_?ky<6~?}7YFk?^xOk:B-;^+n?libspatialite-4.1.1/test/shp/0000775000175000017500000000000012163503226013117 500000000000000libspatialite-4.1.1/test/shp/merano-3d/0000775000175000017500000000000012163503226014704 500000000000000libspatialite-4.1.1/test/shp/merano-3d/points.shp0000664000175000017500000000122412163502133016647 00000000000000' JAӭ6L$A> }(SA6Bz(`$A. SA HUM$A. SA @M$APBmSA Aӭ6L$A wSA m:_$A ,HSA @7۸Q_$A:CSA W(_$AWi?SA ba,_$A(9SA 5[$&_$AN#x6SA 3E_$A@4SA E_$A [k+SA &:)(_$A> }(SA 4^$As ISA ^$Ap6NSA N^$APSA h3_$Aa06SA j_$AQ3SA ~F_$AP5SA `$AOi8SA 6Bz(`$AU>9SA kC$`$At6;SAlibspatialite-4.1.1/test/shp/merano-3d/points.dbf0000664000175000017500000001743212163502133016620 00000000000000!fPK_UIDNFEATURE_IDNCODENSUB_TYPENDATUMNCODE_FIRMANAUFN_ARTNOBJECTIDNORT_IDNTEXT_DCTEXT_ICTEXT_LCTEXT_DILCTEXT_CODENHOEHENHOEHE_MAXNHOEHE_RELNMELDE_CODENHAUSNRCGEB_IDNID_STRASSENGUELTIG_VNE_IDNWINKELN 1316010162452888.50000010100040523921051 00.0000000.0000000.0000000 002453614.50000031601000 2316010162452888.50000010100040524021051 00.0000000.0000000.0000000 002453614.50000031601000 3316010162452888.50000010100040524121051 00.0000000.0000000.0000000 002453614.50000031601000 4316010162452012.50000010100035143221051 00.0000000.0000000.0000000 0031601000 5316010162452012.50000010100035143321051 00.0000000.0000000.0000000 0031601000 6316010162452012.50000010100035143421051 00.0000000.0000000.0000000 0031601000 7316010162452012.50000010100035143521051 00.0000000.0000000.0000000 0031601000 8316010162452012.50000010100035143621051 00.0000000.0000000.0000000 0031601000 9316010162452012.50000010100035143721051 00.0000000.0000000.0000000 0031601000 10316010162452012.50000010100035143821051 00.0000000.0000000.0000000 0031601000 11316010162452012.50000010100035143921051 00.0000000.0000000.0000000 0031601000 12316010162452012.50000010100035144021051 00.0000000.0000000.0000000 0031601000 13316010162452012.50000010100035144121051 00.0000000.0000000.0000000 0031601000 14316010162452012.50000010100035144221051 00.0000000.0000000.0000000 0031601000 15316010162452012.50000010100035144321051 00.0000000.0000000.0000000 0031601000 16316010162452012.50000010100035144421051 00.0000000.0000000.0000000 0031601000 17316010162452012.50000010100035144521051 00.0000000.0000000.0000000 0031601000 18316010162452012.50000010100035144621051 00.0000000.0000000.0000000 0031601000 19316010162452012.50000010100035144721051 00.0000000.0000000.0000000 0031601000 20316010162452012.50000010100035144821051 00.0000000.0000000.0000000 0031601000libspatialite-4.1.1/test/shp/merano-3d/roads.shp0000664000175000017500000001312412163502133016445 00000000000000' *FKS$AE]\aSA,M#[$A={SAEv()X$AW$Au{SAܘ5W$Af$SA ĈW$Av|SA0G W$ASSA"V$A_^SAV$AxSAþ:V$A-QSAlrAV$Avm!SABxjV$Ac3"SAcPV$A0R]#SA)a4V$AN#SAZ#V$A"3;$SAZ#V$A"3;$SAC +U$A)7SAU$A QSAU$A)7SAxWU$A9SAبU$A&X["ESAI( U$A4mGSA6 h>U$A"#ISA2RU$A=$NSA3e럙U$AOOSA{U$A'OSA{U$A'OSA{U$A'OSAC +U$A QSAU$A"3;$SAZ#V$A)7SAU$A)7SANU$AT(7SAUWU$Aһ5SA\U$A|4SA\7V$A3SAZ8V$A2SA H0V$AA@0SA^TMV$A-SA`V$AneQ,SAVjV$Av+SA*'V$A)4(SAѽ V$AS'SAcoV$Aǘ~%SA˷V$AS$%SAZ#V$A"3;$SAxY$ASA܉qY$A7_ASA ܉qY$ASA[qY$AuSA#pY$AB8FSAXaY$A׋SAL?+ VY$A—qSAjIY$AvSA*_&V@Y$AnOSA?5Y$APSAo)Y$A\~SA7Y$A6tSAvY$A ASAY$A7_ASAbOYY$AE]\aSA(+Y$ASA܉qY$ASA_nY$ACSA#kY$A6XSA|hY$AESA8)6AfY$Az;SA,)UeY$A'$#SAߙUdY$A|1=SAAcY$A{NSAҔ'_Y$Aw5SAw[Y$Ae>*SA.;ZY$A|-SA\Y$A-䅸SA@^Y$ANSA]M^`Y$A@SA\@eY$AgݶSAnW,fY$A'}SA|FyeY$A#{SAƁcY$A ySA dY$A;mvSA뢽aY$AmSA^Y$A3lSA c\Y$A>jSAsYY$ASAj# Z$Ap_7SA$EZ$Ah"=SAlY$A{MSAy:+1Y$AǓZSA]HY$ASAQOY$A4LSAfY$ASAIpyY$A\N㕸SAb;Y$ASAûY$A (SAsiY$AjSAHO"Y$A]TSAdrY$Aq1SA,݈{Y$AMLSAyY$AdșSA\ZuY$A%9SA܉qY$ASA Hp<&OU$AsVSA.j#U$AQscSAp<&OU$AQscSAaPU$AZ>2cSAhUU$Aa,aSA`4gU$A &\SAZrU$AXSA.j#U$AsVSA `.j#U$A QSAC +U$AsVSA .j#U$AsVSA?&U$AGCVSA~蓋U$AOTyVSA+U$AZTSA4zm4U$A$ASSAuU$AˉMRSA8"*U$AlQSA +U$AE QSAC +U$A QSA pGHlZZ$AGSA,M#[$Am}ۅSA GHlZZ$Am}ۅSATsZZ$AՅSAi&cZ$ASA]t5xZ$AkSAYZ$AnkuSA6Z$AyŔSAY?Z$A4 ֐SAbNZ$AvSAd [$A=pLSA[$AGSA,M#[$A1YSA FKS$A3SA" SNU$Av˾ڸSA0FKS$A`SAx4HS$AEQNjSAlS$A"XQSA׏8S$Ar7SAy S$A3SA7S$A7X$A\SAuW$A\SAG}uW$AjSA0uW$ASAAޅW$APrSA\7ŔW$A (SA6z຤W$AwSAX$A>ѸSA>X$A\QѸSA>X$A=~ʹSAX$A\QѸSAX$A=~ʹSA X$AىSA"$3X$A SAqwX$AafSA lX$A NnCSAn3-`X$Ad¸SAsTX$A8DŸSALNQX$A'٠ƸSA8inMX$A᧮$ȸSA{KX$AɸSA\{]FX$AR͸SABEX$A~q͸SAEX$A͸SAEX$A͸SA2dgAX$A$иSA>X$A\QѸSA0Y$A7_ASAY$AOůSAY$A7_ASA47Y$A%4SAY$AOůSAX$AOůSAY$A=~ʹSAY$AOůSAzY$AULǯSA%pY$AhSAY$A9UTSAG Y$AkxSA =X$A9VβSAz%X$AۉSAvxX$AKtSASuX$A[SAH8X$A"SAkX$AX^$SA5+j X$ArSAsX$AaA0SAR&y‰X$AsnʹSAX$A=~ʹSAlibspatialite-4.1.1/test/shp/merano-3d/roads.dbf0000664000175000017500000001704212163502133016411 00000000000000!PK_UIDNFEATURE_IDNCODENSUB_TYPENDATUMNCODE_FIRMANAUFN_ARTNOBJECTIDNORT_IDNTEXT_DCTEXT_ICTEXT_LCTEXT_DILCTEXT_CODENHOEHENHOEHE_MAXNHOEHE_RELNMELDE_CODENHAUSNRCGEB_IDNID_STRASSENE_IDNWINKELNLengthN 156920020202450514.50000010100027899621051 VIA DANTE ALIGHIERI -STRASSE00.0000000.0000000.0000000 0120920020000.192562 185920020202450514.50000010100027902821051 VIA DANTE ALIGHIERI -STRASSE00.0000000.0000000.0000000 0120920020000.011543 187920020202450514.50000010100027903021051 VIA DANTE ALIGHIERI -STRASSE00.0000000.0000000.0000000 0120920020000.138272 188920020202450514.50000010100027903121051 VIA DANTE ALIGHIERI -STRASSE00.0000000.0000000.0000000 0120920020000.115159 189920020202450514.50000010100027903221051 VIA DANTE ALIGHIERI -STRASSE00.0000000.0000000.0000000 0120920020000.134453 190920020202450514.50000010100027903321051 VIA DANTE ALIGHIERI -STRASSE00.0000000.0000000.0000000 0120920020000.084582 191920020202450514.50000010100027903421051 VIA DANTE ALIGHIERI -STRASSE00.0000000.0000000.0000000 0120920020000.244289 192920020202450514.50000010100027903521051 VIA DANTE ALIGHIERI -STRASSE00.0000000.0000000.0000000 0120920020000.124011 319920020202450514.50000010100027916821051 VIA DANTE ALIGHIERI -STRASSE00.0000000.0000000.0000000 0120920020000.057539 320920020202450514.50000010100027916921051 VIA DANTE ALIGHIERI -STRASSE00.0000000.0000000.0000000 0120920020000.023299 364920020202450514.50000010100027921521051 VIA DANTE ALIGHIERI -STRASSE00.0000000.0000000.0000000 0120920020000.101662 601920020202450514.50000010100027945821051 VIA DANTE ALIGHIERI -STRASSE00.0000000.0000000.0000000 0120920020000.352757 724920020202450514.50000010100027959021051 VIA DANTE ALIGHIERI -STRASSE00.0000000.0000000.0000000 0120920020000.040406 725920020202450514.50000010100027959121051 VIA DANTE ALIGHIERI -STRASSE00.0000000.0000000.0000000 0120920020000.057274 736920020202450514.50000010100027960221051 VIA DANTE ALIGHIERI -STRASSE00.0000000.0000000.0000000 0120920020000.243982 737920020202450514.50000010100027960321051 VIA DANTE ALIGHIERI -STRASSE00.0000000.0000000.0000000 0120920020000.104872 740920020202450514.50000010100027960621051 VIA DANTE ALIGHIERI -STRASSE00.0000000.0000000.0000000 0120920020000.011605 741920020202450514.50000010100027960721051 VIA DANTE ALIGHIERI -STRASSE00.0000000.0000000.0000000 0120920020000.079904libspatialite-4.1.1/test/shp/merano-3d/points.shx0000664000175000017500000000040412163502133016656 00000000000000' Aӭ6L$A> }(SA6Bz(`$A. SA2 @ N \ j x    . < libspatialite-4.1.1/test/shp/merano-3d/polygons.dbf0000664000175000017500000001043612163502133017153 00000000000000 !fPK_UIDNFEATURE_IDNCODENSUB_TYPENDATUMNCODE_FIRMANAUFN_ARTNOBJECTIDNORT_IDNTEXT_DCTEXT_ICTEXT_LCTEXT_DILCTEXT_CODENHOEHENHOEHE_MAXNHOEHE_RELNMELDE_CODENHAUSNRCGEB_IDNID_STRASSENGUELTIG_VNE_IDNWINKELN 160725072452888.50000010100040532021051 00.0000000.0000000.0000000 002453614.50000060725000 2602032022452888.50000010100040532121051 00.0000000.0000000.0000000 002453614.50000060203200 3602032022452888.50000010100040532221051 00.0000000.0000000.0000000 002453614.50000060203200 4602032022452888.50000010100040532321051 00.0000000.0000000.0000000 002453614.50000060203200 5602032022452888.50000010100040532421051 00.0000000.0000000.0000000 002453614.50000060203200 6602032022452888.50000010100040532521051 00.0000000.0000000.0000000 002453614.50000060203200 7602032022452888.50000010100040532621051 00.0000000.0000000.0000000 002453614.50000060203200 8602032022452888.50000010100040532721051 00.0000000.0000000.0000000 002453614.50000060203200 9602032022452888.50000010100040532821051 00.0000000.0000000.0000000 002453614.50000060203200 10602032022452888.50000010100040532921051 00.0000000.0000000.0000000 002453614.50000060203200libspatialite-4.1.1/test/shp/merano-3d/points.prj0000664000175000017500000000117312163502133016653 00000000000000PROJCS["ETRS89 / UTM zone 32N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","25832"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] libspatialite-4.1.1/test/shp/merano-3d/roads.prj0000664000175000017500000000117312163502133016447 00000000000000PROJCS["ETRS89 / UTM zone 32N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","25832"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] libspatialite-4.1.1/test/shp/merano-3d/polygons.shp0000664000175000017500000001633412163502133017215 00000000000000' nYaD$A0m SA˜߉X$AqSAmߧ0X$A0m SA˜߉X$AY#SAH5Bmߧ0X$ASAq8X$APSAԮ7X$AXNgSAC6X$A.RSA86X$AJSAV5X$A:d!SA6-7X$AH!SAhBX$AY#SA IX$A5qP#SAZ"?X$AG!SA"=X$A4!SAТSAInaK]X$AkZ)SA`1^X$A.SAڵ\X$A_SANFfRX$AR~SAyW$A"WHSAW$AcFSA.+)W$A3^YESAƍµW$AZDSA !)W$Ae[CSAJ\W$AďBSAM>\W$A|ASAp)W$Ajx@SA;PW$A]ϐ]ASAzW$A#BSAM\W$A>~\BSAL!)W$A(CSA8[\W$A4ݍDSA)W$AESAW$A@6XFSAo,·W$A*<}GSAMd\W$A"WHSAÏW$A0A#OSA8®W$AKI7OSAQq@= ףpr@Rq@Qq@q@)\q@)\q@\(r@Qq@= ףpq@ ףp=q@zGq@q@= ףpq@Qq@= ףpq@fffffq@fffffq@q= ףq@Qq@2W$AU-SA~$X$AҼ3SA^W$AҼ3SA^)W$AJH1SA6!X$Aq-SA~$X$AU-SAYòW$A$1SA2W$Af@i3SA^W$AҼ3SAQq@ ףp=q@Qq@Gzq@zGq@q@Qq@2(W$APH.SA_[X$Aڕ2SALzW$Aڕ2SA[W$ALr0SA_[X$APH.SAW$Aی0SA2(W$A72SALzW$Aڕ2SAp= ףq@Gzq@q@Rq@{Gq@p= ףq@W$AUn3SA4vW$A○8SA 4vW$A○8SAxW$AH8SA\W$AuI8SA(W$A>B8SAMgWW$A7SA&\W$AUn3SAW$ADԷ3SA+W$AOQ3SA(\W$A 3SAWW$A4n7SAc(W$A m}H8SA(W$A6SI8SA4vW$A○8SAHzq@(\­q@Hzq@ ףp=q@p= ׻q@ ףp=q@\(q@= ףpq@= ףpq@Hzq@Gzq@(\q@Hzq@OW$A|Q2SApW$A^7SA pW$A^7SAoW$A%}7SA@W$A[}7SAҒ(W$AB7SAQW$A*6SA&pªW$A|Q2SAOW$AQ޷2SA\W$AZ6SA~»W$A+K6SA(W$A@^n7SA"\W$Av9}7SApW$A^7SAףp= q@= ףpq@p= q@Qq@ ףp=q@q@(\q@p= ׻q@(\q@Qq@p= ׫q@ףp= q@8j rW$Ap1SAW$A};SAW$A};SA]xW$A_ D5SANΖvW$A D5SA d\uW$A!q*5SArW$A?3SAGrW$A4`sj3SA')tW$A 2SA"RwW$A6ǂ1SAdwW$Ap1SAusW$A5o2SAj rW$A_\3SAarW$A'+3SAV2tW$A2""5SAѱvW$AU5SAdaxW$A%b5SA[3#W$Aib;SAW$A};SA ףp=q@= ףpq@Gzq@= ףpq@= ףpq@= ףpq@Qq@Hzq@fffffq@q@(\q@ ףp=q@fffffq@fffffq@fffffq@33333q@ ףp=q@80#(W$A GJSAI-\W$ARSA)W$ARSA}V\W$A4LSAW$ALSA0W$AKSAx )W$AтOjKSA<)W$A KSA~&cW$Al+JSA e/\W$AP}KSAI-\W$A9]KSA(W$A GJSA)W$AЂJSA`A\W$AtWCKSAQW$A8KSA/ )W$ANLSAW$ApLSA0#(W$AV|RSA)W$ARSA\(q@)\q@p= q@(\q@= ףpq@Rq@(\q@Hzq@Gzr@q= ףr@zGr@33333r@Qr@r@= ףpr@Qq@\(q@ -bD$A7E#_SAGD$A/Z/SA-bD$A/Z/SAzcD$A!#SAE)spD$A=YD$A ÍSAD$A1DSAڇD$APߟSA}YvD$AoSANXoD$A-!jSAYiD$A χSAseD$ASAibD$AЯ#SAfb&tD$AG|SA:0rD$AԳY|SA%bD$Ap"iSAYaD$AS)SA}ncD$A篆SA}&hD$ASA4mnD$A]"JvSAuD$Aş{SA6`D$A۔SA>4D$ASAD$A0 ㍸SA4"D$AqSAGz\r@HzWr@(\Rr@QPr@ףp= Wr@Q]r@Q]r@\r@Q[r@Q[r@)\Pr@RIr@= ףp=r@Gznr@Qmr@p= kr@{Gjr@Gzfr@p= cr@q= ף`r@Q]r@Gz\r@libspatialite-4.1.1/test/shp/merano-3d/polygons.shx0000664000175000017500000000026412163502133017220 00000000000000' ZYaD$A0m SA˜߉X$AqSA2hNvr ^8 8  libspatialite-4.1.1/test/shp/merano-3d/polygons.prj0000664000175000017500000000117312163502133017211 00000000000000PROJCS["ETRS89 / UTM zone 32N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","25832"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] libspatialite-4.1.1/test/shp/merano-3d/roads.shx0000664000175000017500000000036412163502133016457 00000000000000' zFKS$AE]\aSA,M#[$A={SA2( .xrH`"p2P@ b0 libspatialite-4.1.1/test/shp/taiwan/0000775000175000017500000000000012163503226014402 500000000000000libspatialite-4.1.1/test/shp/taiwan/route.prj0000664000175000017500000000040312163502133016166 00000000000000GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]] libspatialite-4.1.1/test/shp/taiwan/hystoric.prj0000664000175000017500000000040312163502133016674 00000000000000GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]] libspatialite-4.1.1/test/shp/taiwan/route.shx0000664000175000017500000000020412163502133016174 00000000000000' BO`L^@. GF6@ g^@01L\#9@2 T xPZlibspatialite-4.1.1/test/shp/taiwan/route.dbf0000664000175000017500000000045612163502133016136 00000000000000+idNsub_typeCnameC 447449subway文湖線 447451subway淡水線 447471subway新店線 80497291ferry Fugang to Green Islibspatialite-4.1.1/test/shp/taiwan/leisure.shx0000664000175000017500000000021412163502133016507 00000000000000' FVLY`^@J4* 9@ӂa^@I} 9@28>DJplibspatialite-4.1.1/test/shp/taiwan/hystoric.shx0000664000175000017500000000033412163502133016706 00000000000000' n ^@C66@E&o^@`n_(9@2 @ N \ j x libspatialite-4.1.1/test/shp/taiwan/route.shp0000664000175000017500000002175412163502133016201 00000000000000' O`L^@. GF6@ g^@01L\#9@ TӜb^@39A8@ g^@19@DGpSc^@19@!bLc^@ǀ9@#/Fc^@끠9@|~!~%9@ 5b^@9@b^@w$9@ b^@9@tb^@qj9@FD c^@w¦)9@q#c^@_$\9@6pjc^@5Odu9@\Ylc^@|#;9@EYac^@RJ9@vdQc^@9@qu9c^@>09@9X3c^@4[9@ec^@|ǁ9@f c^@[+9@jy/b^@t.{9@g*c^@S<9@Wyc^@=9@zc^@|49@jy/b^@t.{9@Hb^@9@~`b^@ hDz9@ Ib^@,G#9@Ab^@:M9@ b^@W9@] /b^@29@{%ڟb^@Ag9@lb^@L=G9@ɮb^@9@b^@e 9@y Ub^@s ] 9@_b^@ܫE 9@\b5b^@1zn 9@ob^@XΔ9@%b^@w9@Ӝb^@{(=x9@F=b^@]M n9@Zpb^@7e9@\b^@.`9@Xb^@+H\9@$NKb^@Y9@ob^@*U9@b^@lR9@ 8c^@J9@hVc^@F<9@rZc^@O[~;9@w~\c^@N89@G ^c^@1{49@\`c^@A.9@hc^@]9@[- c^@o<9@c^@-#9@Jc^@h؅9@Y4c^@`\s9@hc^@g>d9@H]c^@9V9@c^@F9@Mq Lc^@,269@Wyc^@9@g*c^@S<9@c^@-ɦ9@93c^@dC9@Ժ jc^@49@_)&ʹc^@l9@ȓIc^@@P9@YLl>c^@r]9@Lܪc^@⿊9@YQޢc^@Qr=I9@`cDc^@9-.D9@BLxc^@.t=9@klexc^@ ~Y59@J4c^@OMe^@Ju9@iݫle^@Dh9@ Lne^@ 7k9@gqe^@j9@U@rfe^@V|P9@eie^@`Z9@t_le^@.8_9@>i%pe^@.8_9@x"se^@,]9@nyve^@_Y9@jxe^@(rET9@'a^e^@It9@gqe^@j9@ ue^@M^i9@!vye^@19f9@{F|e^@ĺa9@ae^@99@+ѣse^@`aG9@LwLve^@<9@Ce^@ޚ*9@Ne^@9@:#J{e^@8%j8@N)e^@Ni8@eie^@`Z9@dncXje^@f@b`9@iݫle^@Dh9@Joe^@19f9@Ure^@\4d9@^-we^@,]9@ Zye^@8X9@?e^@-F9@H("he^@Xn=T9@ԱJie^@ztV9@iݫle^@Z9@rxRpe^@Z9@xxtre^@8X9@ue^@ =T9@Qsxe^@ЉN9@8Sאe^@D 9@mve^@YoB9@Vh*ze^@'B#39@+~e^@M(9@yoe^@2G 9@U@rfe^@V|P9@H("he^@Xn=T9@]9ke^@ =T9@9Nme^@(rET9@숞oe^@ sQ9@nre^@ZpI9@+ѣse^@`aG9@mve^@YoB9@8{e^@CdR69@Pe^@(,9@RHڍe^@p9@b]g^@2H 9@!g^@y9@ g^@{N9@g^@H@9@X-g^@J9@tg^@We9@.g^@#fy9@g4g^@)Yv9@:!tХg^@Y9@Ag^@ZI9@rg^@ )9@0)g^@ O!9@ g^@#9@;5g^@j2>'9@7Ӆg^@ޕ*9@kg^@MYd.9@s69|g^@n ?9@0{g^@]\,V9@c|g^@b39@O6}g^@:(9@[ng^@R9@gg^@%`9@R?q_g^@|r9@&Xg^@-AF@9@(Tg^@I9@#SGg^@h-9@ P >e^@"Lt9@ e^@1Qi9@m [ie^@5'9@j#d^@ʿW9@Md^@ (9@d^@5,9@б(id^@Ua9@7Nd^@9@|a2U0d^@큱9@?d^@>59@Ud^@VHT9@9c^@#Ƥ9@Tc^@y9@~|c^@`Z'9@!A c^@9@eJ5c^@mz9@\c^@<\9@]~Lc^@YtF9@ tc^@풂9@8pc^@1~9@$cc^@ba-9@pSc^@19@x Ҍ]^@g:9@'Za^@01L\#9@04/$a^@g:9@Ճa^@ޅf9@G4a^@GNp/ 9@XB-a^@~W[ 9@B:`^@ރ! 9@)ՙa^@3~ 9@[R`^@W^ 9@CwUa^@ŷ 9@zMa^@ma 9@"a^@ 9@/a^@I]M 9@pFa^@~$A 9@X5Ha^@AlD 9@(8Ia^@H 9@Ka^@|| 9@M Oa^@K= By 9@Sa^@x9@I*Sa^@H.9@qYvRa^@YCJ9@lplPa^@e9@qSMa^@.a#9@(+Ha^@.9@smBa^@y9@6&&9a^@hREL9@Au8a^@{E\`9@fKVE8a^@ Tw9@E8a^@9@E8a^@9@==a^@ !9@=Y_^@MPq#"9@HN_^@5g؃"9@Y_^@ .g#9@k%y_^@N:#9@%/!f_^@d._MT#9@mU_^@01L\#9@ !J_^@|гY#9@l _^@wW.#9@ke/^^@#9@ 1^^@#9@㊋^^@np"9@T^^@(@"9@I^^@M"|!9@8^)^^@N"!9@y"]^@Ƌ!r 9@V]^@6c! 9@Mno]^@.x, 9@|Y$7]^@!9@ Ҍ]^@%۷9@iG5_^@!9@)>_^@$!9@_^@6\!9@=Y_^@MPq#"9@==a^@ !9@zxJa^@a C9@YtOa^@U g9@]Ra^@f9@8Wa^@OP9@(ma^@[u9@|Xa^@R9@KVa^@lkU\f9@O%^a^@hY9@4;a^@ƫ9@c/oia^@I|9@ս_a^@Q[V9@(a^@|8c9@9aa^@v*-9@[a^@?u 9@'a^@9@vj}a^@fYA9@PRa^@l9@a^@!9@?a^@f?Ѡ9@ma^@G9@3{a^@-h9@'Za^@09@ǫa^@J9@eT>a^@oS9@D~ a^@P)9@qCLa^@?!9@h 2a^@ug7D&9@ea>a^@"h9@ Ja^@C9Ѯ9@6(Pza^@~9@Aea^@j<9@}{a^@Ri9@va^@$9@ܭv^ta^@G]!9@׀ra^@H!P9@9@A$`^@S9@mu9% `^@6h9@崧`^@I9@RZ`^@U&9@Aʙ7`^@X9@=`^@WL9@i`^@߸1 9@`|`^@`P 9@`^@جD 9@}  `^@MY< 9@ `^@ 궟 9@b `^@$ 9@D`^@UF!9@o`^@P9!9@ː^_^@cV9U!9@oN_^@s昇!9@iG5_^@!9@P/$a^@>J8@uܽb^@g:9@G/$a^@g:9@T8a^@9@;":_Ga^@%9@Rba^@U^<9@%c\qa^@J9@kтa^@kF9@!#a^@E ;9@̱aa^@'9@U88a^@@+0d9@a^@WX9@ٗlhb^@G> 2]8@ l‡b^@0)>>!8@͋b^@{r8@Pb^@dGä8@t_b^@F;n8@;qb^@mDA8@C/Hb^@V8@Ekb^@\R8@;!b^@-6%8@ilb^@Y8@4Hb^@y8@yb^@ţ8@b^@qXy8@qcib^@޷kS8@wλb^@388@|b^@h3 8@d3b^@ʨ28@j_b^@he8@L1b^@!z8@uܽb^@LB8@b^@H*8@*b^@6)*8@9sb^@{8@]|nb^@M]8@2/,b^@x8@qlb^@l8@Àb^@P)e8@Ib^@/|8@{b^@cÉJ8@'yb^@9#8@ܶob^@P6@8@ͰQob^@2+[d8@pb^@>J8@O`L^@. GF6@)d^^@v6@eLL^@v6@sTNL^@?}m6@,!:L^@hUM6@Qw&L^@!Rxu36@O`L^@;H6@n/L^@b6@SfxL^@} yP6@xn8O^@oB6@_PS^@B6@c= W^@q6@}SQ[^@;:6@E3]^@+16@Q|]^@CD6@41AH^^@7L6@)d^^@FtϨ6@!gP#c^^@. GF6@libspatialite-4.1.1/test/shp/taiwan/hystoric.dbf0000664000175000017500000000165412163502133016645 000000000000006idNsub_typeCnameC 262996077monument 293422100memorial 鄭漢紀念碑 309679442monument 王得祿墓 378727035archaeological_site台中放送局 695446660wayside_shrine 800332375memorial 800771510monument 劉氏宗祠 945771195city_gate South Gate 945771291city_gate East Gate 946524530monument ChiKanLou 948007214city_gate Great South Gate 949661330city_gate East Gate 1085529876monument British Embassy 1129844115ruins Dutch Fort 1364234523castle Japanese Fort libspatialite-4.1.1/test/shp/taiwan/leisure.dbf0000664000175000017500000000060112163502133016440 000000000000003idNsub_typeCnameC 1289086park自強公園 (Ziciang Park) 1289102park福林公園 (Fulin Park) 1289104park介壽公園 (Jieshou Park) 1289105park陽明公園 (Yangming Park) 28357585park228 Memorial Park libspatialite-4.1.1/test/shp/taiwan/leisure.shp0000664000175000017500000000057412163502133016510 00000000000000' VLY`^@J4* 9@ӂa^@I} 9@pVLY`^@J4* 9@ӂa^@I} 9@ VG`^@I} 9@pdy`^@V  9@h?RDa^@ 9@ӂa^@-. 9@\a^@u 9@CwUa^@ŷ 9@a^@J4* 9@VLY`^@l{%9 9@`^@’ 9@HL`^@B 9@VG`^@I} 9@libspatialite-4.1.1/test/shp/taiwan/hystoric.shp0000664000175000017500000000101012163502133016666 00000000000000'  ^@C66@E&o^@`n_(9@ zW^@!"6@ tK6^@ L[8@ Ԡײ^@xfݚ7@ FK0,^@#e&8@ UX_c^@ 9@ };^@W67@ Vğ&^@_xm6@  C/^@C66@ ˪/^@6@  ^@dNR6@  ^@+6@ ѷ` ^@" 6@ 7B^@%r6@ E&o^@T:'9@ g[m^@`n_(9@libspatialite-4.1.1/test/shp/taiwan/leisure.prj0000664000175000017500000000040312163502133016500 00000000000000GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]] libspatialite-4.1.1/test/shp/gaza/0000775000175000017500000000000012163503226014041 500000000000000libspatialite-4.1.1/test/shp/gaza/aeroway.shp0000664000175000017500000000113412163502133016137 00000000000000' .~8A"A@C~G:?@ݜ$A@%2B?@~8A"A@C~G:?@ݜ$A@%2B?@"A@C~G:?@D/X"A@,@c:?@["A@1:?@~8A"A@-;?@"A@$N??@H#A@[uA?@I#A@A?@'tW#A@%2B?@Š#A@x B?@$Ί#A@LA?@ #A@ {A?@ ǘ#A@0 8@?@Be#A@ߚ??@b̧#A@kL??@ݜ$A@P0A??@Ǡn#A@IQ??@x}#A@>9 ??@H#A@'q ??@Çm#A@&5??@# #A@ẽ>?@el#A@'>?@̸#A@iܛ>?@rƋ#A@ȱ >?@ؖ#A@B=?@"J #A@6V:?@R"A@=Żm:?@"A@C~G:?@libspatialite-4.1.1/test/shp/gaza/route.prj0000664000175000017500000000040312163502133015625 00000000000000GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]] libspatialite-4.1.1/test/shp/gaza/route.shx0000664000175000017500000000016412163502133015640 00000000000000' :56A@ X?@9O?A@5_%o?@2 Z libspatialite-4.1.1/test/shp/gaza/route.dbf0000664000175000017500000000033412163502133015570 00000000000000-idNsub_typeCnameC 1393012bicycleסינגל בארי 1560935bicycleסינגל רעיםlibspatialite-4.1.1/test/shp/gaza/barrier.shx0000664000175000017500000000021412163502133016124 00000000000000' Fa A@!8?@ s9A@A5p?@2 @ N \ j libspatialite-4.1.1/test/shp/gaza/aeroway.prj0000664000175000017500000000040312163502133016136 00000000000000GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]] libspatialite-4.1.1/test/shp/gaza/barrier.prj0000664000175000017500000000040312163502133016115 00000000000000GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]] libspatialite-4.1.1/test/shp/gaza/aeroway.dbf0000664000175000017500000000032412163502133016100 00000000000000RidNsub_typeC nameC6 41317768aerodromeمطار ياسر عرفات الدولي (مقفلة)libspatialite-4.1.1/test/shp/gaza/route.shp0000664000175000017500000002541412163502133015635 00000000000000' 56A@ X?@9O?A@5_%o?@ Z56A@e?@9O?A@5_%o?@'GP"$9O?A@qm?@ǁ?A@XEm?@^G?A@"n?@? z?A@әn?@8ep?A@%n?@_d?A@^\_1n?@7iZZ?A@SFn?@dXD?A@)yGn?@SG";?A@H;ɱPn?@00?A@Jn?@" %?A@g-Mn?@ó?A@ $fn?@Cg?A@օi)jn?@m?A@C|n?@}?A@N:n?@7?A@n?@>-?A@5Cn?@i>A@[!n?@݌?>A@Q諚n?@o>A@in?@o>A@IIn?@|i>A@Yo?@?>A@5_%o?@>A@1n?@(F̱>A@E-nn?@>A@oan?@1>A@En?@ږ\ >A@n?@?!>A@}mn?@y>A@ln?@I/>A@ Cn?@n^x>A@3n?@jHv>A@en?@eпi>A@i(xn?@a$jX>A@Mæn?@wIQ>A@҈}n?@wڑE>A@nwBcn?@)3>A@H;ɱPn?@>A@m?2n?@1=A@Ep93n?@0LX=A@:wn?@.=A@S/ n?@n=A@m?@X=A@m?@9V΃=A@6q n?@2i=A@Ǝ|n?@c=A@@w)n?@EĜV=A@q9n?@@L=A@@n?@w"-:=A@*`n?@>ܰ=A@n?@Jj?@-eT7A@-j?@(XP7A@<j?@~8gD7A@3j?@&B7A@ kti?@D7A@bx6i?@+B7A@hcgi?@A@7A@ƵFi?@ܝ.7A@˥i?@W#7A@lהi?@"q7A@[i?@cmg7A@i?@-!:6A@"wi?@56A@EaEi?@'5 7A@=#i?@$7A@b,/i?@I?37A@=lإh?@_G7A@jh?@ =N7A@1h?@RT7A@u~@Vh?@t7A@W)h?@bA7A@l%g?@g؃7A@Iڍ>g?@67A@ g?@U7A@Δ1g?@*/7A@יtPg?@]17A@Fb0g?@7A@Mjü"g?@r+)7A@%Xf?@x0?7A@7hf?@SV7A@\df?@d7A@q.#f?@87A@tf?@c8A@e?@-B48A@_xf?@cbqm8A@g'f?@dl8A@1lf?@pC8A@Ym_uf?@>8A@DZtf?@ 8A@/|f?@J)8A@Czf?@8+79A@0?f?@32m9A@?ef?@Ps"9A@eEҹf?@F"9A@Sf?@ZF"9A@Z~qf?@[r&79A@c)f?@YB9A@"i7f?@gV9A@cg?@oSc9A@?$g?@an9A@uܕg?@}V9A@Gf?@ާO9A@f?@/9A@rMf?@9A@ f?@\9A@[닄f?@1q :A@f?@:A@!Kf?@y$.:A@pf?@?=:A@|[Uf?@(:A@:f?@I:A@Pf?@_;A@kdf?@˶x;A@Y~qf?@+Gm+;A@LWff?@iOn>;A@ʦ\]f?@fI;A@,-~f?@G˵h;A@~Of?@o|;A@)af?@Pd;A@azzf?@z\;A@/ff?@+-;A@4f?@;A@wf?@g?@FB[ΥA@i?@*>A@aTR'i?@ >A@i?@O>A@?'i?@dߺ>A@i?@yY>A@;i?@>A@0i?@M>A@ji?@ >A@W;i?@H>A@|'fj?@/I >A@A0j?@+,>A@HޔMj?@'_>A@VF~Xj?@>A@Ajj?@X =A@M+j?@=A@8j?@I}=A@Kbj?@*v=A@!j?@,,=A@Iíj?@)YNB=A@.7&j?@=}=A@}2j?@M=A@{ k?@W=A@θk?@.Ue=A@r!ES,k?@=A@s[Bk?@sk=A@4jk?@DT=A@,e|k?@4}v=A@*u$k?@Š=A@j{k?@=A@g0+l?@=A@BDl?@Br=A@^yjl?@s};A@2n?@oax;A@11n?@gei;A@j.n?@6S\;A@8n?@*Y\-;A@~/ϔm?@;A@ؙBm?@8;A@Wm?@Tn.:A@XF4m?@/;A@0{m?@ _p;A@Z1m?@>#;A@tdm?@Z8;A@km?@~@;A@vdm?@vR;A@`1m?@¤S;A@Rm?@z.Fn;A@ Tl?@1Xx;A@=tl?@b;A@Ko$ul?@dp;A@r@ʕl?@J;A@l?@eP;A@NGl?@y ;A@#Pl?@!XU/;A@=>l?@ E;A@~ /l?@g ;;A@P,l?@93K;A@U%6l?@辜;A@`8l?@wP;A@)Sq]l?@c;A@?dl?@6w\;A@h]l?@J{d;A@s?Kl?@6w\;A@(l?@\;A@F}k?@h$?;A@Dq"Uk?@^+;A@F]kSk?@u':A@P;Kk?@|u:A@&`*Xk?@^:A@ĭ'_uk?@^:A@ĭ'_uk?@":A@ź!k?@R);A@$2.n?@ő";A@˫8n?@s};A@2n?@ ~9A@ X?@a=A@JXc?@{B_"9A@JXc?@9A@^/ c?@l9A@ Eb?@- 9A@3b?@{Dϱ9A@hb?@j"}9A@b?@~9A@&,;b?@h}9A@G]b?@Β9A@ab?@wh9A@Eb?@( 9A@K,b?@9A@'ob?@]9A@["b?@^~9A@*b?@i9A@ /b?@% $9A@#Աa?@x>9A@Ƌa?@9A@Ua?@g%9A@CƣTa?@9A@jUa?@19A@*2fa?@\9A@FHa?@0:A@<$|a?@:A@ __Ra?@?{:A@È3a?@2:A@F'a?@?s(:A@qGQ a?@ꑫB:A@(`?@G:A@K6`?@IN:A@]j`?@O:A@r m`?@zܷZ:A@-b`?@e^:A@E`?@4;I_:A@p'v`?@Kb:A@n$m`?@/Uj:A@a`?@n:A@^9S`?@z:A@-=`?@ X(:A@&`?@;i:A@Ps"`?@ +&:A@UfJ_?@ ܮ:A@C_?@(K:A@?"\_?@,9$:A@k_?@6z:A@2b_?@Q{:A@;_?@C:A@-\o_?@ص:A@,^m_?@4|:A@fX_?@X:A@$E_?@j(:A@ ~,_?@'X-:A@ _?@qNa;A@6_?@;A@ K^?@`sf;A@% $^?@ ,ʶ;A@9^?@Y2#;A@sc^?@ a5;A@Bo;~^?@jG:;A@^?@A[sE;A@%^?@M;A@{kdw^?@wR;A@pLY^?@pGR;A@mnLO^?@ڝhI;A@ <^?@i>B(J;A@^?@" U;A@ ^?@w9Q\;A@I"E]?@HP;A@|]?@OJ;A@ ]?@suM;A@ms]?@=-R;A@ j]?@SR;A@jdrj]?@d[aU;A@2^]?@a cI6n\?@[~g ,\?@vj.7UW[?@m݊Z?@`,;A@(/Z?@ 3;A@=Z?@ٲ;A@RZ?@[;A@,jZ?@]j~;A@!Z?@BhN;A@ՔdZ?@H;A@CėZ?@EO;A@܁Z?@O8;A@Z?@xm;A@حZ?@((;A@Z?@E;A@/O\Z?@];A@wpf[?@ ~;A@.4"[?@pG;A@B6[?@9b;A@;U[?@`~]f:A@.Xi_?@}9i:A@Uu_?@: k:A@!_?@hf:A@*]b_?@Bi:A@I_?@o:A@`<_?@Dl:A@uZ_?@ #m:A@`?@SQa:A@H}`?@`l\:A@c'`?@DMX:A@$3`?@zPPV:A@/?`?@gxXM:A@ X`?@_{fI:A@p5Wr`?@?,>:A@R .`?@x9:A@D`?@8y6:A@q`?@|h0:A@`?@IV:A@Y`?@M:A@7Zi`?@:A@ ``?@%ڟ:A@`?@>L :A@?tA}`?@?_:A@!%`?@:A@`?@:A@2 `?@:A@yHu`?@XV:A@16`?@x :A@ca?@:A@D na?@лg:A@a?@Om:A@la?@:A@x'a?@_J:A@Z a?@L_:A@8%.a?@?{:A@È3a?@libspatialite-4.1.1/test/shp/gaza/barrier.dbf0000664000175000017500000000107712163502133016065 00000000000000YidNsub_typeCnameC8 328444065border_controlמעבר כרם שלום معبر كرم أبو سالم 504288554entrance Main entrance for UNRWA 504293363entrance Saraya Entrance 505112371gate Karm Abu Salem Crossing 1266480503gate Rafah Crossing libspatialite-4.1.1/test/shp/gaza/barrier.shp0000664000175000017500000000036012163502133016116 00000000000000' xa A@!8?@ s9A@A5p?@ Z- "A@!8?@ I58A@A5p?@  s9A@-dd?@ Fe"A@@D!9?@ a A@??@libspatialite-4.1.1/test/shp/gaza/aeroway.shx0000664000175000017500000000015412163502133016150 00000000000000' 6~8A"A@C~G:?@ݜ$A@%2B?@2libspatialite-4.1.1/test/shp/new-caledonia/0000775000175000017500000000000012163503226015625 500000000000000libspatialite-4.1.1/test/shp/new-caledonia/points.shp0000664000175000017500000000057412163502133017577 00000000000000' U5d@˾+6S'I6d@C*I6Ud@$F*I6v1d@EY 'I6Kd@ %I6םd@}D#I63d@P I6@ld@v"w668 d@[66@d@[668 d@66d@v"w66ld@G{66@d@[66l d@E6n,d@/>2^E6H d@0N`E6kV;d@7vE6Fd@uE6S?o*d@1y|E6cd@ꄆ|E6tCVd@[vE6>ܰd@uE6n,d@ixE6Lnod@'E6ed@$E6vd@2^E6H d@0N`E6C-d@~F6ܫ3d@ ij_F6% N3d@/xF6rR3d@vb{F6luk-d@~F6C-d@ia`gF6`.d@ZfF6DǠ.d@©jaF63d@ ij_F6W 3d@gEeF62d@mWeF6Q2d@PcdF6<^1d@;BdF6`1d@UPeF6[I0d@ނ[-fF6s0d@okF6m3d@v5yjF6ܫ3d@ FxF6% N3d@/xF6P{jd@%F6y"*d@NaF6bd@NaF6d@!F6y"*d@:rΙF6 d@%F6ѝrd@:8؛F6{jd@DF6bd@NaF6@2xd@AG6ٴd@4$8?G62xd@ܥh@G6ed@4$8?G6ٴd@zG6<d@AG62xd@ܥh@G6PUd@?hF6q2d@ꭁF65!d@F6q2d@sG˵F6L8d@?hF6Ud@K6A^ld@LWK6 d@|K6Ud@,K6Ud@9VK6T kd@LWK6 -d@KvlK6?9d@ ZK6yd@K6]d@4K6A^ld@OnK6d@_>K6!d@HjK61^d@cTcSK6[jsRd@7K6hU d@V}SK6 d@|K6 @WBd@gh'6G1d@D u'6G1d@TcS}'6e9 d@gh'6WBd@\{'6ld@D u'6G1d@TcS}'6 @y6d@L6 cd@:Uk5hςd@ Y8j5> cd@:Uk5xnkd@NUsk5fOsd@B!T.k5.|d@Dj5hςd@ Y8j5 8hςd@ Y8j5OΚd@ir1i5hςd@ Y8j5,i d@NX,j5id@{>j5OΚd@ir1i5  H^7hd@Gu5E ;Ld@uJQxn5!H^7hd@Cͩt5Kd@7t5rd@d|vt5d@Kt5tFƸd@EY u5%׸d@ su5Yd@Jt*u5ϴXd@^ Du5 d@9Xbu5t9d@yɤ+}u5Jd@u5 Хn]d@Gu5,zd@PS&u53ᏹd@}pu5Sۗ}d@Jt*u58d@Pt5%0չd@%=t5Ε'd@ s5ydd@.5B?s5}qd@;r5u$d@Ver5:#/+d@8r55d@ ˽q5Nn>d@[VBq5ߺEd@Rp5 Id@?k~p5nKd@)Kcjp5E ;Ld@# o5ZKd@KxB?o5чx5Jd@]ζn5FHd@n5C{Gd@-Zn5$Fd@uJQxn5 (SYd@!l5> cd@:Uk5SYd@!l5> cd@:Uk5libspatialite-4.1.1/test/shp/new-caledonia/railways.dbf0000664000175000017500000000213512163502133020052 00000000000000_ Losm_idN nameC0typeC 72831435Tunnel de Tonghoué rail 73736038Ancienne Gare du Mont Mou station 76811935Chargement en Mer platform 76988035La serpentine de Kouaoua rail 76988036Chargement en Mer rail 76988037Chargement en Mer rail 76988049La serpentine de Kouaoua rail 76988054La serpentine de Kouaoua rail 76988056La serpentine de Kouaoua rail 76988058La serpentine de Kouaoua rail 76988060La serpentine de Kouaoua rail 76988072La serpentine de Kouaoua rail 76988304La serpentine de Kouaoua rail libspatialite-4.1.1/test/shp/foggia/0000775000175000017500000000000012163503226014353 500000000000000libspatialite-4.1.1/test/shp/foggia/local_councils.shx0000664000175000017500000000111412163502133020001 00000000000000' &(Q{mY.A逢jQA0AlLQA20("70G*U6gR%&|@8| @)d =>\{hT@,ݶ- <H#k"Pv;P *hJv#3z#(Vj|HH*4("C2 =*hT3'3 "4W&H}`\8$/( 6L@Qo, |%DX  `t 0libspatialite-4.1.1/test/shp/foggia/local_councils.dbf0000664000175000017500000002407112163502133017741 00000000000000=aidNlc_nameCFLD#1NFLD#2CFLD#3CelevationNFLD#4NFLD#5NFLD#6NFLD#7N 1532Carlantino 0FOGGIAPUGLIA5581294111310951079 1533Carpino 0FOGGIAPUGLIA1474704443044094380 1534Casalnuovo Monterotaro 0FOGGIAPUGLIA4321954177017291697 1535Casalvecchio di Puglia 0FOGGIAPUGLIA4652167200919851978 1536Castelluccio dei Sauri 0FOGGIAPUGLIA2841951205121142144 1537Castelluccio Valmaggiore0FOGGIAPUGLIA6301469137013661370 1538Castelnuovo della Daunia0FOGGIAPUGLIA5431763161416101578 1539Celenza Valfortore 0FOGGIAPUGLIA4801990180917821741 1540Celle di San Vito 0FOGGIAPUGLIA726186193187173 1541Cerignola 0FOGGIAPUGLIA12057366586085882759103 1542Chieuti 0FOGGIAPUGLIA2211788176017531772 1543Deliceto 0FOGGIAPUGLIA5754117399740023947 1544Faeto 0FOGGIAPUGLIA820758661655643 1545Foggia 1FOGGIAPUGLIA76155203153239152959152747 1546Ischitella 0FOGGIAPUGLIA3104562436944014401 1547Isole Tremiti 0FOGGIAPUGLIA70367497496486 1548Lesina 0FOGGIAPUGLIA56286634764246397 1549Lucera 0FOGGIAPUGLIA21935162346173465934513 1550Manfredonia 0FOGGIAPUGLIA557704571115729457455 1551Mattinata 0FOGGIAPUGLIA756333654265346523 1552Monteleone di Puglia 0FOGGIAPUGLIA8421413115311511085 1553Monte Sant'Angelo 0FOGGIAPUGLIA79613917132571325013221 1554Motta Montecorvino 0FOGGIAPUGLIA662951839821798 1555Orsara di Puglia 0FOGGIAPUGLIA6353313301630102990 1556Orta Nova 0FOGGIAPUGLIA6917665177611776717868 1557Panni 0FOGGIAPUGLIA801976876884865 1558Peschici 0FOGGIAPUGLIA904339440144014411 1559Pietramontecorvino 0FOGGIAPUGLIA4562972279227642765 1560Poggio Imperiale 0FOGGIAPUGLIA732891282828382835 1561Rignano Garganico 0FOGGIAPUGLIA5902309220822022216 1562Rocchetta Sant'Antonio 0FOGGIAPUGLIA6332034198019871982 1563Rodi Garganico 0FOGGIAPUGLIA423778369137043673 1564Roseto Valfortore 0FOGGIAPUGLIA6581316123112231205 1565San Giovanni Rotondo 0FOGGIAPUGLIA56626106270372720227327 1566San Marco in Lamis 0FOGGIAPUGLIA55015739146501457614444 1567San Marco la Catola 0FOGGIAPUGLIA6831515114011221108 1568San Nicandro Garganico 0FOGGIAPUGLIA22418074162381613416054 1569San Paolo di Civitate 0FOGGIAPUGLIA1876119601760456018 1570San Severo 0FOGGIAPUGLIA8655861556285539955321 1571Sant'Agata di Puglia 0FOGGIAPUGLIA7942321215722012149 1572Serracapriola 0FOGGIAPUGLIA2704356408041004106 1573Stornara 0FOGGIAPUGLIA1074739492049905114 1574Stornarella 0FOGGIAPUGLIA1545032504451505137 1575Torremaggiore 0FOGGIAPUGLIA16917021172241736517434 1576Troia 0FOGGIAPUGLIA4397495740174217411 3432Accadia 0FOGGIAPUGLIA6502702250424702481 3433Alberona 0FOGGIAPUGLIA7321134103110101012 3434Anzano di Puglia 0FOGGIAPUGLIA7602239192618421759 3435Apricena 0FOGGIAPUGLIA7313647136601367313694 3436Ascoli Satriano 0FOGGIAPUGLIA3936373631863236390 3437Biccari 0FOGGIAPUGLIA4503070291028872893 3438Bovino 0FOGGIAPUGLIA6203991363736023574 3439Cagnano Varano 0FOGGIAPUGLIA1658617784176977663 3440Candela 0FOGGIAPUGLIA4742823275627452753 3441Carapelle 0FOGGIAPUGLIA625905619463806527 3442Vico del Gargano 0FOGGIAPUGLIA4458107795279897982 3443Vieste 0FOGGIAPUGLIA4313430137771388613963 3444Volturara Appula 0FOGGIAPUGLIA526595506497496 3445Volturino 0FOGGIAPUGLIA7351992182618261800 3446Ordona 0FOGGIAPUGLIA1202584264926732720 3447Zapponeta 0FOGGIAPUGLIA23013333534033465libspatialite-4.1.1/test/shp/foggia/local_councils.shp0000664000175000017500000344352012163502133020007 00000000000000' #(Q{mY.A逢jQA0AlLQA(Q{mY.AlLkQA.AlLeQAn.AlLQAko.AlLQA5p.AlLQAKq.AlLߦQAq.AlL`ѦQAs.AlLʦQAs.AlLQAs.AlL`QAPt.AlL QAt.AlL ¦QAdu.AlLǦQAu.AlLѦQAv.AlL֦QAw.AlL զQApx.AUҦQAx.AlLҦQAz.AlLɦQA{.AlLQA{.AlL`QAn|.AlLદQA|.AlLQA}.AlLQA}.AlLqQA%}.AlL@WQA6}.AlLCQAH_?}.Anl.QAB}.AlL'QA-}.AlLQA4}.AlLQA}.AlLޥQA~.AlL˥QA~.AlL`QA@.AlLQA).AlL@QA.AlL`QA.AlL QA5.AlLQAxS.AiZQAɂ.AlL@|QA.AlLxQA.AlLtQA(.AlLvQA+.AlLQAփ.AlL@QAv.AlLQA.AlLQA.AlL`ťQA.AlL`̥QA.AlL եQAp2!7.A`إQA.AlLܥQAI.AlLߥQA.AlLޥQAh.AlLեQAՆ.AlLͥQAA.AlL`QAg.AlLQA.AlL QA.AlL@QA҇.AlL`QA.AlL QA .AlLQA.AlL`qQA .AlLgQA*.AlLGQAI.AlL`=QAt.AlL@5QAΈ.AlL+QAx.AlL "QA&.AlLQA.AlL QAY.AlLQA%.AlLQA.AlL@QA.AlL`QA.AlL`$QAU.AlL-QAɎ.AlL5QA\.AlL;QAҏ.AlL=QAz.AlL>QAʐ.AlL ?QA8.AlL=QA.AlL5QA.AlL@0QAX.AlL'QA.AlL`$QA.AlL#QA2.AlL@!QA.AlL@!QAޓ.AlL@$QA(.AlL'QAn.AlL)QA.AlL+QA.AlL`/QA8.AlL 2QAT.AlL`2QAk.AlL:QA.AlL.QA.AlL#QAÕ.AlLQAŕ.AlLQA.AlLQAK.AlLQA^.AlLQA.AlL ޤQA.AlLˤQA.AlLQA.AlL@QA1.AlL`QAf.AlLQA.AlLoQA.AlL@[QA.AlLJQA.AlL3QA@.AlL`!QA.AlL QA.AlL@QA̘.AlL@QA.AlLˣQA.AlL@ɣQA!.AlLQA?.AlL@QAk.AlLQA.AlLQAӗ.AlLQA.AlLQA.AlL QA.AlL`QA.AlLQA#.AlLQA<.AlL`zQAk.AlL@sQA.AlLlQA.AlL`bQA.AlLXQAȘ.AlL KQAʘ.AlLCQA.AlL3QA}.AlL2QAA.AlL?QA.AlLGQAǗ.AlL`JQA.AlLIQAm.AlLAQA.AlL:QA.AlL2QAo.AlL`'QAP.AlL@QAB.AlLQA@.AlL`QAV.AlLQA].AlLբQA:.AlL΢QA.AlL`ʢQA.AlLĢQA.AlL`QAI.AlLQA.AlLଢQA.AlL QA[.AlL@ɢQA>.AlL`ԢQAʔ.AlL`ڢQAє.AlLQAÔ.AlL QA.AlL@QA.AlLQAR.AlLQA.AlLQA.AlL QAv.AlL QAJ.AlL@QAؒ.AlLQA.AlLQA,.AlLQAۑ.AlL@QA.AlLQAv.AlL QAP.AlLQA'.AlLQA.AlLQAؐ.AlLۢQAː.AlL ϢQA .AlLQA.AlL QAޑ.AlLQA.AlL@QA.AlLQA`.AlL QA.AlLQA.AlL QA.AlL@xQA.AlLoQAɓ.AlL@cQA.AlL[QAy.AlLUQA*.AlLOQAݒ.AlLHQA].AlL CQAБ.AlLFQA.AlL@AQAn.AlL>QA.AlL@=QA;.AlL =QA.AlL@;QAQ.AlL;QA.AlL@>QA.AlL@>QA.AlL5QAW.AlL.QA(.AlL#QA4.AlL QAl.AlL QAx.AlL`QAF.AlLQA.AlLQA.AlLQA.AlL١QA.AlLˡQA.AlL QA.AlLೡQA.AlLQA.AlLQA.AlLQA.AlL QAʍ.AlLQAՍ.AlL@|QA.AlLsQAq.AlLpQA.AlL@qQAt.AlLkQA.AlL@dQAn.AlL[QA.AlLLQA.AlL`>QA[.AlL*QA.AlL@QA7.AlL`QA.AlL QA.AlLQA4.AlLQA.AlLQA2.AlL QA.AlL QA.AlL` QA .AlLQA.AlL!QA.AlL*QA.AlL1QAڀ.AlL9QA).AlL@QA.AlL@NQA.AlL`WQA~.AlL^QA|.AlLRQA{.AlLKQA7{.AlL0NQAz.AlLRQAxz.AlL@XQA-z.AlL`\QAy.AlL`XQAy.AlLQQAy.AlLCQAy.AlLBQAx.AlL@QAw.AlL`۠QA5w.AlL QA w.AlLའQAv.AlLQAv.AlL@QAOv.AlLQA v.AlLQAu.AlLQAu.AlL`QAQu.AlLQAu.AlLའQAgt.AlLŠQAs.AlL@ѠQAr.AlL ϠQAq.AlL@ˠQAq.AlL ˠQA~q.AlL`ҠQAvq.AlLܠQAHq.AlL@ߠQAp.AlL`ߠQAp.AlL@QAp.AlLQAp.AlLQAwo.AlLQAo.AlLQAn.AlL QAn.AlLQA_n.AlLQA n.AlLQAm.AlLQAGm.AlLQAl.AlL QAl.AlLQAl.AlL@QAk.AlL@QA;k.AlLQAj.AlLϠQAj.AlL`ǠQAdj.AlLQAXj.AlL QAj.AlLठQAi.AlLQAi.AlLQAi.AlLQAZi.AlL`QA!i.AlLQAh.AlL@QAh.AlLQAh.AlLQAEh.AlL}QAg.AlLuQAf.AlLkQAf.AlLmQAe.AlL@QAb Xd.AhQAGd.AlLQAd.AlL QAd.AlLԠQAe.AlLQAe.AlLQAd.AlLQAd.AlL@QAd.AlLQAd.AlLQAd.AlL@$QArd.AlL 0QApd.AlL;QAd.AlLMQAe.AlL ]QA[e.AlL@mQAe.AlLtQAf.AlLQA%f.AlLQAf.AlL@QAe.AlLQAe.AlL ġQAd.AlL ءQAd.AlLQAcc.AlL@QAb.AlL QAb.AlL@.QAb.AlLHQA_b.AlLcQARb.AlL@QAb.AlLQAb.AlL@QAb.AlL@QAc.AlL`̢QAcc.AlLQAbc.AlLQAYc.AlL` QAQc.AlL*QAbc.AlL`8QAc.AlLEQAwd.AlL GQA0ce.A5IjEQA8~- e.Ai8 EQAX!xe.A^NVAQA0lLe.Aآ}@QApw&f.A2)?QA`%f.A >QAPpoXf.AkQAg.AlL`AQAg.AlL@GQAg.AlLMQAf.AlL@WQAf.AlL@^QAf.AlL cQAf.AlLiQAf.AlLtQA8!f.AnlxQA?֏f.A^PyQADf.AlLpQAf.AlLoQAe.AlLhQAe.AlLcQAe.AlL aQATe.AlL`aQAe.AlLeQAd.AlL@iQAd.AlLgQAd.AlL@iQAc.AlLgQAb.AlLaQAb.AlL fQAb.AlL@gQAb.AlL lQAb.AlLqQA_b.AlL@QAYb.AlL@QA00b.A )_QA@ b.AlLQAa.AlL QAQa.AlLQA`.AlLQA@`.AlL`QAPpo_.A$IxQA_.AlL QA_.AlLQA Ff_.AbjQAP}GO_.AĠQA^.AlLQAk^.AlL QA_^.Ao@QA^.AlL`QA].AlLQA_a].ALoAɣQA__\.A5ߣQAxw\.A'iXQA(^\.ANQA+)N\.A&@QA0/~V[.Ar_QA.[.A(QA+kW[.A<$QA@eI[.A_aQAZ.AlLQAZ.AlL%QA{Z.AlL8QAFZ.AlL IQA(Q{mY.AnlP^QA Z.AlL@]QAZ.AlLpQAZ.A~QA-Z.AlLQAk>Z.A*ȎQAZZ.AlLQAbZ.AQAZ.AlL`QAZ.AlLQA[.AlL@ʤQA?\.AlLQAO].AlLQAF^.AlL QA^.AlL$QAw_.AlL 3QA_.AlLNQAN`.AlLfQA`.AlLxQAa.AlL`QA~la.AZBQAb.AlLQA}b.AlL@QAb.AlL¥QAc.AlLեQAAc.AlLQAc.AlL QAc.AlL@,QAd.AlL ?QAxd.AlLNQAd.AlLVQAd.AlLbQAe.AlLgQA0e.A SjQAFe.AlLnQAkye.AlLvQAe.AlL QAe.AlL QAe.AlLQAe.AlL`QA7f.AlLQAQf.AlL@QARf.AlLQAhf.AlLͦQAtf.AlLۦQAxf.AlLQAf.AlL@QAf.AlL QAf.AlLQAf.AlL $QAg.AlL1QACg.AlL8QAtg.AlL@BQAg.AlLJQAh.AlLNQADh.AlLRQAh.AlL`ZQAh.AlL_QAh.AlL@eQA=i.AlLeQAi.AlLbQAi.AlL@]QAMj.AlLRQAj.AlL`HQA.k.AlL@>QAk.AlL1QAl.AlL@"QA8'ٖl.AnQAl.AlL`QAm.AlLQAm.AlL`QA4n.AlLQAn.AlLQA080AlLQAs0AlL@QADR0AlLQA@R0AlL`QABR0AlLQA@cR0AlLQA}R0AlLQA@R0AlL@QAR0AlLQAS0AlLQA@S0AlLQA6S0AlL@QAUS0AlLQAxS0AlLQAS0AlL}QA@S0AlL@yQAS0AlLvQAT0AlLvQA0T0AlLtQAMT0AlLpQAjT0AlLkQAT0AlL eQAT0AlL[QAT0AlLUQA@T0AlLKQAT0AlL=QAT0AlL4QAU0AlL`/QA2U0AlL .QA@IU0AlL@*QATU0AlL$QA@bU0AlLQAwU0AlL@QAU0AlL`QAoU0AlL@QA@U0AlL@QAU0AlLQAU0AlL@QAV0AlL QA@PV0AlLQA@sV0AlLQA@V0AlL QAV0AlLQA@V0AlLQAV0AlL@QAV0AlLQA W0AlLQA8W0AlLQA@ZW0AlLQAqW0AlL`QA@W0AlL@QAW0AlLQAW0AlLQAW0AlLQA X0AlL QAQAY0AlL8QAY0AlL-QAaZ0AlL@QA@}Z0AlLQAZ0AlLQAZ0AlL`QA@Z0AlLQA@[0AlLQA"[0AlLQA9[0AlL`QAP[0AlLQA@v[0AlL@QA[0AlL`QA@[0AlL ~QA[0AlL {QA\0AlL@hQA@\0AlLaQAZ\0AlL[QA\0AlLRQA\0AlL`LQA\0AlL=QA@\0AlL8QA@]0AlL@3QA']0AlL`.QA@]]0AlL@)QA]0AlL`!QA@^0AlLQA@D^0AlL`QA^0AlL`QA^0AlL@QA^0AlL QA&_0AlLQAV_0AlLQA}_0AlL QA(`0AlLQA@`0AlLQA`0AlLQA`0AlL`QAa0AlLQA=a0AlL@QAVa0AlLQAsa0AlL QAa0AlL@QAa0AlLQA@a0AlLQA@a0AlLQA@a0AlLQAa0AlLQAa0AlL QAa0AlLQAb0AlL`QA@4b0AlL QABb0AlL@QAbb0AlL@QAb0AlLQAb0AlL`QA@b0AlL`QA c0AlLQA2c0AlL`yQALc0AlL@kQAGc0AlLaQACc0AlLZQAHc0AlL@SQAVc0AlLHQA@xc0AlL@QAc0AlL>QAc0AlLQAAq0AlL@:QAkq0AlL6QAq0AlL`8QAq0AlL =QA@q0AlLAQAq0AlLBQAr0AlL?QA@5r0AlL`FQANr0AlL`KQAmr0AlL IQA@r0AlLAQAr0AlL8QAr0AlL`1QAr0AlL*QA@r0AlL@&QA@r0AlL"QAs0AlL"QA+s0AlLQA@Is0AlL QAks0AlLQAs0AlLQAs0AlLQA@s0AlLQAs0AlLQAs0AlL QAs0AlLQA@s0AlL`QAs0AlLQA^s0AlLQA@8s0AlL@QAs0AlLݾQAr0AlL@׾QAr0AlLоQA@r0AlLʾQAar0AlL`ǾQA8r0AlL¾QA@r0AlLQAr0AlL QAq0AlL QAq0AlL`yQAq0AlL`rQA@q0AlL kQAnq0AlL@cQASq0AlLZQA3q0AlL@QQA@q0AlLHQAq0AlL :QAp0AlL0QAp0AlL$QAp0AlLQA@p0AlLQA@Mp0AlL@QAp0AlL QAo0AlL׽QA@o0AlL`ýQA@o0AlL QAOo0AlLQA@n0AlL`kQAn0AlL@]QAn0AlLTQAqn0AlL PQA2n0AlLLQAm0AlLIQAm0AlLEQAm0AlL@BQAem0AlLQA@Uk0AlLAQA@/k0AlL?QAk0AlL`:QAj0AlL2QAj0AlL*QA@Vj0AlL!QA2j0AlLQA@!j0AlL`QAi0AlL@QA@i0AlLQAi0AlLQA@i0AlLPQAni0AlLQAdi0AlLQA\i0AlLQA[i0AlLQA@Si0AlLڼQAFi0AlLҼQAi0AlLӼQAh0AlL`ټQAh0AlL`ڼQAVh0AlL`ּQAh0AlLҼQAg0AlL˼QA@g0AlL ¼QAZg0AlLQA-f0AlL QAe0AlLQAe0AlLQA@e0AlLQA6e0AlL`QA@d0AlLQAd0AlL}QA~d0AlLsQAud0AlLkQAZd0AlL`_QAQAIH0AlLBQA@H0AlLHQAG0AlLNQAG0AlLVQAgG0AlL`^QA/G0AlL bQAG0AlLhQAF0AlLqQAF0AlLQAF0AlL`QAF0AlLQAE0AlL`QAVE0AlLQAE0AlL`ͿQA@D0AlL@ܿQAD0AlLQA@uD0AlL`QAC0AlLQAC0AlL:QA@VC0AlL`>QA.C0AlLGQA@B0AlL JQAB0AlLOQA@B0AlL`RQAbB0AlLTQAGB0AlL`ZQA@:B0AlL`jQA5B0AlL vQA0B0AlLQA,B0AlL QA"B0AlLQA@B0AlLQAB0AlLQAA0AlL`QAA0AlL QAA0AlLQAA0AlLQA@A0AlLQAA0AlL@QA@A0AlLQAA0AlL@QA@A0AlLQA@A0AlL QA@A0AlL`QA@A0AlL%QAA0AlLp+QA@A0AlL0QA@A0AlL;QAA0AlL`JQAvA0AlLQQAUA0AlL]QA)A0AlL@hQA@A0AlLpQA@@0AlL`QA@0AlLQAo@0AlLQA@h@0AlL`QAeA0AlLQA@oA0AlL QAXA0AlLQA'A0AlL QA)A0AlLQA!A0AlL QAA0AlLQA@0AlL@QAA0AlL)QA@0AlL0QA@@0AlL8QA@0AlLAQA A0AlL HQA@0AlLNQA@@0AlL`SQA@@0AlL]QA@0AlLoQA@?0AlLyQA@?0AlL`QAk?0AlL QA@;?0AlL@QA?0AlL QA?0AlL`QA>0AlLQA>0AlL`QA>0AlL@QA|>0AlL`QAr>0AlLQA@i>0AlLQAZ>0AlLQA`S>0AlL0QA >0AlL QA@=0AlL QA=0AlLQAh=0AlL QA =0AlLQA<0AlL9QAv<0AlL QQA@!<0AlLgQA;0AlLwQA@o;0AlL`QA:0AlLQA80AlLIQA@ A0AlLPuQAA0AlLuQA5A0AlL vQA@8A0AlLlQAGA0AlL hQA]A0AlLaQA|A0AlLZQAA0AlLVQA@A0AlLSQAA0AlLPQAA0AlL`NQAB0AlL LQA9B0AlLJQAfB0AlLDQA@B0AlL?QAB0AlL=QAB0AlL@:QAC0AlL8QALC0AlL7QA@}C0AlL9QAC0AlL8QAC0AlL 6QAC0AlL 2QAD0AlL`0QA%D0AlL 3QAFD0AlL0QA@nD0AlL0QA@D0AlL`1QAD0AlL 3QAD0AlL3QAE0AlL9QA9E0AlL=QA@WE0AlLQAE0AlL BQA@F0AlL EQA&F0AlLCQA@GF0AlL@>QA@]F0AlL4QAyF0AlL@.QAF0AlL`3QA@F0AlL6QA@F0AlL6QAF0AlL=QAF0AlLBQA@F0AlLQA.AlL2QA.AlL'QA.AlLQA.AlL` QA.AlL`QA.AlL QA.AlLΨQA(.AlL¨QAH.AlL@QA.AlLQA.AlLQA.AlLQA .AlLtQA.AlLaQA/.AlLRQAL.AlL`FQA.AlL 6QA.AlL (QAW.AlL`QA.AlLQA.AlL`QA&.AlL QAj.AlL@QAl.AlLͧQA@.AlL@QA.AlLࣧQA.AlLQA.AlL@|QA.AlLlQA{.AlL [QA.AlLMQA.AlL`?QA.AlL/QA.AlL#QA*.AlLQAW.AlLQA.AlLQA.AlLݦQA.AlLզQAf.AlLʦQA.AlLQA.AlLQAS.AlL@QAs.AlL QAx.AlLpQA.AlL@PQA.AlL`8QA.AlL2QAh.AlL@)QAS.AlL@QAS.AlL QAz.AlL QAL.AlLQAF.AlLQA.AlLإQA.AlL`QA.AlL`NQAJ.AlLQA.AlLQA.AlLQA.AlL QA.AlL@QA.AlL QA.AlL QA0.AlLQA .AlL@QA.AlL ¤QA.AlLQA.AlLQA.AlLpQAl.AlLbQAC.AlL@RQA.AlL GQA.AlLQA^.AlLQA.AlLQA.AlLQA'.AlL3QA.AlL`ݢQA.AlLQAž.AlL`2QA.AlLQA-.AlLԡQAܼ.AlL@ˡQA.AlLQAػ.AlLQA.AlLQA.AlL`QA}.AlLQA.AlL@QA`.AlL |QA1.AlL`vQA.AlLsQA۹.AlL nQA.AlLgQA.AlL]QAs.AlLVQAz.AlL`LQA.AlLFQA.AlL=QAf.AlL;QA3.AlL:QA.AlL:QA.AlL`=QAp.AlL 6QAS.AlL0QA6.AlL+QA.AlL#QA.AlLQA.AlL`QA.AlLQAK.AlLQA.AlL@ QAӶ.AlL QA.AlL@QA.AlL`QAJ.AlL`QA.AlL QA.AlL QA\.AlLQA$.AlL@QAѴ.AlLQAg.AlLQA5.AlL`QA.AlLQA.AlL QAp.AlLQA9.AlLQA.AlLQA.AlL QAs.AlLݠQA&.AlLޠQAб.AlLQA.AlL QAI.AlLޠQA.AlL٠QA.AlL`ߠQA1.AlLQAܯ.AlLQA.AlL QAE.AlLpQA.AlLQAԮ.AlLQA.AlLQAN.AlL QA.AlL@QA.AlLQAĭ.AlLQA.AlLQAF.AlL`QA.AlLQA.AlL`!QA׬.AlL`&QA`.AlL -QA .AlL3QA.AlL8QAv.AlL`AQA.AlL@OQA.AlL@bQAN.AlL tQA.AlLQA.AlLQA$.AlLQA@.AlLQA".AlLQAة.AlL`QAө.AlLQAĩ.AlL`¡QA.AlLˡQAV.AlL@ˡQA.AlLơQA.AlLQA.AlLġQA.AlLˡQA.AlLѡQA.AlLޡQA.AlLQA.AlLQAz.AlLPQAo.AlLQA3.AlLQA.AlLQA.AlL`QA.AlL@QAo.AlL`QA.AlLQAަ.AlLQA.AlL@QAf.AlL@"QA .AlL (QA.AlL1QA.AlL9QA.AlLAQAW.AlL@HQA.AlLNQA.AlLRQAb.AlLYQA.AlL@cQAأ.AlL nQA.AlLyQAg.AlLQA.AlLQA.AlLQA.AlL`QA`.AlLQA-.AlLརQA.AlL`ǢQA.AlL ӢQA.AlL@ޢQA.AlLQA.AlL QAt.AlL@QAL.AlL#QA%.AlL3QA.AlL`?QA.AlLBQA.AlL`YQAf.AlL`QAR.AlLoQA=.AlL xQA.AlLQA.AlLQA.AlL`QAß.AlL`QAi.AlL`QA.AlLQA̞.AlḶQA.AlL٣QAT.AlLQA.AlLQA.AlLQAK.AlLQA.AlL QA֝.AlLQA.AlLQA(.AlL!QAI.AlL@*QA&.AlL3QA.AlL;QAe.AlL@EQAI.AlL@OQAB.AlL`_QA".AlLnQA.AlL wQA.AlLzQA.AlL@yQA8.AlL zQA.AlLQAb.AlLQA.AlLQA.AlL`wQAz.AlLyQA).AlL QA .AlLQAə.AlLQA_.AlL@QA9.AlLʤQA.AlL@֤QAԘ.AlLܤQA.AlL`QA.AlL QA.AlLQAY.AlL@QA$.AlLQAٗ.AlL@QA.AlLQAW.AlLPQA .AlLQAؖ.AlL QA.AlLQAq.AlLQAK.AlLQA.AlLQAŕ.AlLQAÕ.AlLQA.AlL#QA.AlL.QAk.AlL:QA.AlL@QA~.AlLPQAa.AlL`WQAI.AlLZQA;.AlLaQA-.AlLjQA .AlLtQAߔ.AlLQA.AlLQAW.AlLQA.AlL`QA.AlL QA.AlL`QA.AlLԥQA.AlLQA̓.AlL QA.AlL#QA).AlL@=QAQ.AlLOQA|.AlL hQA.AlLyQA.AlL@QAX.AlLQAӕ.AlLQAw.AlL@QA+.AlLQA.AlL QA.AlL`QA1.AlLĦQA3.AlLѦQA.AlLަQA.AlL QA.AlL@QAT.AlL`QA.AlL@QA.AlLQA.AlLQAb.AlLQA .AlLQAϛ.AlLQAşq.A"bQA.AlL@QA).AlL@ئQA-.AlLצQA.AlL@ۦQAР.AlL@QA@.AlLQAUK.AbQAe.AlLQA(.AlL`QA.AlL CQA&.AlLoQAҟ.AlLQA.AlLQA\.AlLQA].AlLɧQA.AlLQA.AlL@QAY.AlL`QA.AlL`!QAF.AlL1QA.AlLDQA.AlLQQA.AlL_QA v.A27UjQAp.AlL nQAa.AlL@{QA`.AlLQAi.AlLQAp]Մ.AlLQA.AlLQAԡ.AlL QA`2Nݡ.AvQA.AlL@ŨQA.AlLبQA(.AlLQAO.AlLQA.AlL QAO.AlL"QA.AlL+QAF.AlL@;QA.AlLFQA.AlLOQA>.AlLWQA.AlL dQAxoȥ.A;9eeQA]ԥ.A$eQA!.AlLiQA.AlL@nQAW.AlL`pQA(r.A68rQA.AlLsQA`.AlLxQA٨.AlLzQAh.AlLxQA.AlLsQA{.AlLjQA .AlLZQA.A悫UQAQ.A7UQA.AlLUQA.AlLSQAJ.AlL RQA.AlL@RQA .AlL \QA@.AlL`QA.AlL\QAĮ.AlLVQA&.AlLSQA].AlL WQA|.AlL`_QA.AlLwQA.AlL`QA.AlL@QA.AlLQAa.AlL@QAJ.AlLQAM.AlLQAa.AlLϩQA^.AlL QA_.AlL@QA.AlL@QA.AlLQAY.AlLQAװ.AlL@QA.AlLQAA.AlL QA.AlLQAP.AlL@QA̳.AlL@QA.AlL QAW.AlL-QAu.AlL 1QA.AlL@3QA.AlL@8QA .AlL ;QAc.AlL@AQA.AlLFQAԵ.AlL`OQA.AlL VQA$.AlL ZQAO.AlL`QAu.AlL fQA.AlLmQA.AlL@xQA.AlLQAն.AlLQA.AlLQA.AlLQA.AlL@QA.AlL QAD.AlLQA.AlLQAз.AlLQA .AlLQAL.AlLપQA.AlL QA.AlLQAL.AlLபQA@8OV.A^lҋQA.AlLപQA.AlLཪQA.AlLĪQA.AlLժQA@~.AlL@ߪQA@.AlL`QAk@.AlLQA.AlLQAμ.AlLQA.AlL QA,.AlLڪQA.AlLϪQA.AlLɪQA.AlL QA0}.AlLoQA?.AlLQA.AlLĩQA.AlL`QAm.AlLQA.AlLQA.AlL`QA.AlLQA.AlLQAN.AlL |QA&.AlL@mQA .AlL[QA.AlL@MQA.AlLAQA.AlL7QA.AlL'QA.AlL*QA.AlL@3QA .AlL5QA.AlL5QA2.AlL`6QA.AlL`/QA.AlL`&QA.AlL!QA .AlLQA.AlLQA.AlL`QA.AlLQA.AlLQA.AlL`QA.AlL`QA.AlLQAH.AlLŨQA.AlLQA.AlLQA.AlL@QA.AlL@QA{.AlLQA:.AlL@QA.AlL@QA$.AlLyQA.AlL@oQA.AlLiQAm.AlLgQA.AlLaQA.AlLYQAo.AlL@ZQA.AlLWQA.AlLRQA%.AlLKQA.AlL@EQA9.AlL@AQA.AlL QA.AlL]QA .AlL`jQA#.AlLsQA.AlL|QA.AlL QA.AlLQA.AlLQA%.AlLQAr.AlL@QA.AlL`QA.AlLQA%.AlLQA`.AlL@QA.AlLQA.AlL`QA.AlLQAK.AlLQA~.AlL QA.AlLQA.AlL`QAZ.AlLQA.AlL@QA.AlLQA.AlLQAh.AlLyQA.AlL vQA.AlLsQAm.AlL@pQA.AlLpQA.AlLPrQA.AlL@sQA.AlLQA.AlL QA.AlL`QA.AlL`éQA.AlLѩQA.AlLީQA.AlLQA.AlL`QA.AlL@QA.AlL QA.AlLQAm.AlL QA^.AlL`)QAi.AlL6QA|.AlL@>QA.AlLIQA4.AlLYQAx.AlLeQA.AlLrQA.AlL@~QAD.AlLQA.AlLQA.AlLQA.AlLQAX.AlLQA.AlLQA .AlLҪQA`.AlL@QA.AlL@QA4.AlLQA.AlLQAi.AlL` QA .AlL@QA.AlL@!QA.AlL.QAe.AlLDQA.AlLVQA.AlLiQA.AlLQAO.AlL@QA.AlL`QA6.AlLQA.AlLQA*.AlL࡫QAC.AlL QA`.AlL@QAz.AlLQA.AlL~QA.AlLuQA.AlLmQA.AlLbQA.AlLXQA.AlLIQA-.AlL ;QAB.AlL2QAp.AlL@#QA.AlL@QA.AlL QA.AlL QA".AlLQA.AlLʪQA.AlLɪQA.AlLQA.AlL QA(.AlL@QAl.AlL QA_.AlLpQA.AlLGQA.AlL QA.AlL QAI.AlL@ QA[.AlL` QA.AlLQA.AlLQA.AlL`QA.AlLߩQA4.AlL`שQA.AlLĩQAt/AlL߀QA0AlLQA/AlL QAS/AlL`gQA?/AlL0ZQA/AlLDQAa0AlL}QAj0AlLQAx0AlLQA0AlL@QA0AlLQA0AlLQA0AlL@QAK0AlLQA@t0AlLQA@0AlLQA0AlLQAD0AlL੉QA`0AlL QA0AlL`QA0AlL@QA@u0AlL@QAO0AlLQA-0AlLQA0AlLQA0AlL@QA0AlL`QA,0AlLQA0AlL QA0AlL`QA@0AlL@yQA@0AlL@rQA0AlL@kQAt0AlLdQAh0AlL]QA@#0AlL`QA0AlLYQA@0AlLTQA0AlL@OQA0AlLGQA0AlL>QA0AlL6QA@0AlL/QA@0AlL(QA0AlLQA0AlL@QA@0AlLQA@0AlLQA/AlLQA/AlLQA/AlL@QAT/AlLQA/AlL QA/AlL`QA/AlLQA^/AlL QA/AlL߈QA/AlLQA/AlLڈQA/AlL`ЈQA}/AlL`ʈQAS/AlL`ÈQA#/AlLQA/AlL@QA/AlLQA/AlL@QA /AlL~QAE/AlLmQA/AlLiQA/AlLgQA/AlL`QA/AlL _QA/AlLXQA/AlL SQA/AlL MQA /AlLDQA/AlL;QA/AlL2QA/AlL*QA/AlL QA/AlLQA/AlLQA/AlL@QA/AlLQA/AlL@ QA/AlL QA/AlLQA/AlL`QAe/AlLއQA/AlL@QA@/AlLQA/AlL-QA;/AlL`QA/AlL`ÆQA:/AlLQA/AlLQA/AlLQA /AlLQAf/AlLPcQAk/AlL0`QA=/AlLڅQA/AlL`QA&/AlLQAf/AlLQA/AlL QA\/AlL`QA/AlL@ӄQA~/AlLDŽQA/AlLQA/AlLQA/AlL`xQA/AlLZQAW/AlL^QA9/AlL7QAW/AlL )QA/AlLQA/AlL@GQAb/AlL6QA+/AlL 5QA/AlL`0QA/AlL$QA/AlLQA/AlLQA/AlL QA@/AlLQA+/AlL`ւQA/AlLQA/AlL`QA/AlL TQA/AlLLQA/AlL8QA/AlL`&QA!/AlLQA?/AlLQA/AlLρQAz/AlLpˁQA /AlL فQAs/AlLQA;/AlL܁QA/AlLQA0/AlLQA/AlLQAt/AlLQAa/AlLQA/AlL߀QA@/AlL QA/AlLQA/AlL 8QA/AlL[QA/AlL vQA/AlL|QAp/AlLQAd/AlL QA/AlLqQA/AlLmQA/AlLkQA/AlLhQA /AlLeQAp/AlLcQA/AlL@dQA/AlL@cQA/AlL{QA/AlL`QA8/AlL QA/AlLQA/AlL QAf/AlLQA/AlLQAb/AlLQA/AlL༁QA/AlLځQA8/AlL@QAB/AlLQA/AlL QA/AlL@QA=/AlLQA/AlL QA/AlL QA/AlL %QA/AlL+QAտ/AlL2QA/AlL6QA//AlLEQA;/AlL`MQAf/AlLWQA/AlL cQAݽ/AlLiQAĽ/AlLqQA/AlL`tQA0/AlL@{QAf/AlL|QA/AlL`QA/AlL QA /AlLQAD/AlLQAY/AlL@QA/AlLQAѿ/AlLूQA/AlL`QA/AlL@QA>/AlLQA[/AlLȂQAf/AlL тQA/AlLւQA/AlLۂQA/AlLQA /AlLQA/AlLQA4/AlLQA\/AlLQA/AlLQA/AlL`!QA/AlL *QA/AlL`/QA/AlL`0QA0/AlL3QA-/AlLP:QA(/AlL8QAټ/AlL>QA/AlLBQA#/AlL@JQA/AlLKQA/AlLMQA)/AlL@OQAX/AlL@VQA/AlL \QA/AlL`iQAR/AlL@hQA/AlL`fQA/AlLfQA)/AlL`hQA[/AlLlQA/AlLrQA/AlLxQA/AlLyQAb/AlL`xQA/AlL@zQAX/AlL`~QA/AlLQA/AlLQA\/AlL@~QA/AlLzQA/AlL`xQA@/AlL@yQA/AlL QA/AlL QA;/AlL@QA/AlL QA/AlLQA7/AlLQA/AlLQA/AlL`QAI/AlLQA/AlL`QA/AlLQA"/AlLQA/AlLQA"/AlLQA/AlLઇQA/AlL QA;/AlLQA/AlL QA/AlL ̇QAE/AlLׇQA/AlL݇QA/AlL݇QAq/AlL@QA/AlL`QA/AlLQA/AlLQAy/AlLQA/AlL`QAe/AlLQA/AlL QA4/AlL@'QA/AlL3QA/AlL`?QA/AlLMQAd/AlL]QA/AlL`QA/AlL cQA./AlLfQAr/AlLjQA/AlLmQA/AlLqQA /AlLtQA\/AlL yQA/AlL}QA/AlLQA0/AlL@QAt/AlLQA/AlLQA /AlL@QAd/AlLQA/AlLQA/AlLQA/AlLQA/AlL`QA)/AlLψQA/AlLQA/AlL@QA3/AlLQAj/AlLQA/AlLQA/AlL`QA>/AlL"QA/AlL*QA/AlL3QA6/AlL:QA/AlLDQA/AlLNQA/AlL QA/AlL`QA>/AlL@QA?/AlL}QAU/AlLOQAV/AlLMQA/AlL VQA+/AlLVQA/AlLVQA/AlLRQAj/AlL@RQA /AlL WQA/AlL[QA"/AlL _QA/AlLdQA/AlLhQA_/AlL nQA/AlLpQA/AlLQA/AlLࠉQA/AlLQA/AlLQA>/AlLQA/AlLQA /AlLQAp/AlLQA /AlLQA{/AlL@ʼnQA/AlLQAD/AlLQA/AlLQA/AlLQA*/AlLQAF/AlL`QA/AlL QA/AlLiQAT6/AlLQA@,/AlLQA,/AlL`،QA,/AlLόQA-/AlL`ɌQA-/AlLȌQA-/AlĽQA-/AlLόQA#./AlL͌QAl./AlĽQA./AlLьQA//AlLԌQAU//AlLӌQA//AlL`ЌQA//AlLˌQAI0/AlL ȌQA0/AlL`ƌQA0/AlL@QA1/AlLQAf1/AlLQAq1/AlLQA~1/AlLQA1/AlL QA1/AlL@QAC2/AlL QA2/AlL{QA2/AlL{QA3/AlL@{QA3/AlLxQA3/AlLuQA 4/AlLtQAp4/AlL`qQA4/AlL lQA<5/AlLgQA5/AlLcQAK6/AlLp_QAP6/AlL XQAI6/AlLNQA=6/AlLDQA=6/AlL4QA?6/AlL@.QAS6/AlL`#QAT6/AlL@QAM6/AlLQA,6/AlL QA6/AlL`QA5/AlLQA5/AlLQA5/AlL`݋QA]5/AlLՋQA:5/AlL΋QA5/AlL@ËQA4/AlLQA4/AlL`QA4/AlLQAN4/AlLQA.4/AlL@QA4/AlLQA3/AlL`wQAu3/AlLnQA83/AlL hQA3/AlL_QA2/AlLWQA2/AlLKQA2/AlLFQA2/AlL>QA_2/AlL #QA=2/AlLQA2/AlLQA1/AlLQA1/AlLQA1/AlL`QA1/AlL@QA2/AlL@QA2/AlL@ފQA1/AlL׊QA2/AlLЊQA2/AlLʊQA2/AlLQA1/AlLQA1/AlLQA0/AlLQA0/AlLsQA0/AlLeQAf0/AlL0`QAW0/AlL^QA0/AlLTQA//AlL`KQA//AlL>QA//AlL/QAl//AlL )QAB//AlLQA./AlL QA./AlL`QA./AlLQA9./AlL`QA-/AlL`ىQA-/AlLЉQAm-/AlLȉQA,-/AlL`QA -/AlLQA,/AlL@QA-/AlLQA,/AlLQA,/AlL uQA,/AlL@bQA,/AlL SQA,/AlL CQAr,/AlL3QAV,/AlL`(QA/,/AlL`QA ,/AlL@QA+/AlL@QA+/AlLQA+/AlLQAe+/AlLވQA\+/AlLֈQAW+/AlL`ψQAp+/AlL@^QA3+/AlLUQA +/AlLKQA+/AlL@DQA+/AlL9QA+/AlL-QA+/AlL!QAA+/AlLQA`+/AlLPQAj+/AlLQA+/AlL QA+/AlLQA@,/AlLQA,/AlLQAB-/AlL %QA-/AlL@(QA-/AlL@*QA0./AlL+QAz./AlL0QA./AlL.QA./AlL,QA./AlL"QA./AlLQAY./AlLQA ./AlL QA-/AlL`QA-/AlL`QAy-/AlL QAv-/AlLQA/-/AlLQA,/AlLQA,/AlL`QA,/AlL`߇QA,/AlLևQA,/AlL@ЇQA,/AlLȇQA,/AlL QA,/AlLQA,/AlL@QA\,/AlLQAk,/AlL`QAD,/AlL`QAI,/AlLQAX,/AlLQAq,/AlL{QA,/AlLtQA,/AlLpQA,/AlL`jQA,/AlL cQA,/AlL`YQA-/AlLNQA&-/AlL`HQAJ-/AlLBQAy-/AlL =QA-/AlL9QA-/AlL4QA-/AlL/QA./AlL`*QA,./AlL#QA<./AlLQAn./AlL`QA|./AlLQA./AlL@QA./AlLQA./AlLQA//AlL QA//AlL QA8//AlL ۆQA^//AlL ֆQA//AlL φQA//AlL ɆQA//AlL@QA//AlL`QA//AlL QA//AlLଆQA//AlL@QA00/AlL`QA0/AlLQA0/AlL|QA0/AlL`tQA1/AlLlQA;1/AlL`fQAV1/AlL`QA1/AlL@DQAD1/AlL5QA1/AlL*QA0/AlL'QA0/AlL%QAf0/AlL QA0/AlL`QA//AlL QA//AlL QA6//AlLQA./AlLQA./AlLQA./AlL`ׅQA-/AlL΅QA;-/AlLÅQA,/AlLQA,/AlLQA(,/AlL QA+/AlLQAI+/AlLQA*/AlLQAv*/AlLQA*/AlLQA)/AlL`QAe)/AlLQA)/AlL`~QA(/AlLxQA/(/AlLtQA'/AlLiQA'/AlLpkQA'/AlLqQAp'/AlL yQAG'/AlLQA&'/AlL QA&/AlLQA&/AlL`QA&/AlLQA&/AlL QA%/AlL@QAO%/AlLQA$/AlLQAo$/AlL@QA1$/AlL QA#/AlLQAw#/AlLQA"/AlLQAL#/AlLQA#/AlL`QA#/AlL QA5$/AlL`QAm$/AlL@ʅQAg$/AlL؅QAP$/AlLQA"$/AlLQA#/AlLQAo#/AlLQA<#/AlLQA#/AlL ԅQA"/AlLمQA"/AlL@؅QAP"/AlL ՅQA"/AlL@хQA!/AlLυQAU!/AlLυQA /AlLׅQA /AlL߅QAD /AlLQA/AlLQA/AlLQA/AlL@QA/AlL,QAm/AlL4QA*/AlL8QA/AlL6QA/AlL2QAe/AlL)QAF/AlL`QA/AlLQA/AlL@QA/AlL`!QAx/AlL.QA/AlL:QA`/AlL EQA/AlLKQA/AlLMQA/AlL OQA;/AlLQQA/AlLSQA$/AlL`_QA/AlLhQA/AlLoQAz/AlL xQA/AlL@QA4/AlL`QA/AlLQA\/AlL@QA/AlLQA/AlL@QA/AlLQA/AlLQA</AlLQA/AlL`QA/AlL@QAk/AlLQAD/AlLÆQA</AlL@ΆQAR/AlLֆQA7/AlLۆQA/AlL݆QA/AlL QA>/AlLQA,/AlL QA/AlLQA/AlL@QA/AlLQA</AlL QA /AlLQA/AlL QA/AlLQAi/AlL@QA$/AlLQA/AlLQA/AlL`QA/AlL@QA/AlL QAu/AlL@QA:/AlLQA /AlL QA /AlLQAv /AlL QA% /AlL`QA /AlL`QA /AlLQA /AlL QA /AlL@QA /AlL"QA /AlL@,QA /AlL3QAK /AlL?QA /AlL LQA /AlLZQA /AlLeQA /AlLqQAo /AlLpwQA\ /AlL{QA? /AlLQA /AlLQA /AlLࢇQA /AlLQA /AlL QA /AlLQAS /AlL྇QA /AlLŇQA /AlLχQA= /AlL@ׇQAG /AlL QA /AlL@QA /AlLQA /AlLQA /AlLQAO /AlLQA /AlL݇QA /AlL܇QA /AlL@QA /AlLQA /AlL@QA /AlL`*QA9 /AlL0QA /AlL@/QA /AlL$QAu /AlL@QA8 /AlL QA/AlL QA/AlLQA/AlL` QAp/AlL &QA/AlLQA/AlL QA/AlLQAE/AlLQA2/AlLQA/AlL*QA/AlL@3QA/AlL4QA"/AlL`6QA/AlLBQA/AlLOQA/AlLhQAh/AlLQA&/AlL@QA/AlLఈQA/AlLĈQA/AlLӈQA/AlL@ԈQA!/AlLՈQAS/AlL݈QAA/AlLQA /AlLQA/AlL`QA/AlL QA/AlLQAb/AlL@QAI/AlLQA/AlL-QA/AlL9QA/AlLEQA/AlLLQA/AlL`^QAQ/AlLoQA/AlLQA/AlLQA/AlLQAa/AlL QAN/AlLྉQA@/AlL@ωQA/AlL@QA/AlLQA/AlL@ QA/AlLQA/AlL#QA/AlL.QA/AlL6QA/AlL@QA/AlL=QA/AlL;QAX/AlL`:QA/AlL9QA/AlL9QA(/AlL`7QAb/AlL 5QA/AlL2QA/AlL.QA$/AlL,QAY/AlL $QA/AlL'QA\/AlL+QA/AlL 1QAO/AlL`7QA/AlL AQA,/AlL`FQA/AlLOQA/AlLXQAr/AlL@bQA/AlLkQA! /AlLsQA /AlLQA /AlLQA /AlLQA; /AlL QAf /AlLQA /AlL࣊QA /AlLQA /AlLQAe /AlL@QA /AlL QA /AlL QAu /AlL QA* /AlLQA /AlL`ƊQA/AlL@ъQA/AlLЊQAT/AlL̊QA/AlLȊQA /AlLŊQAL/AlLĊQA{/AlLŊQA/AlLNJQA;/AlLŊQA/AlLÊQA/AlLQA/AlL@QAn/AlLQA/AlL@QA/AlLÊQA/AlLĊQAm/AlLŊQA/AlL`QA/AlLQAO/AlL0ÊQAo/AlLȊQA/AlL ΊQA/AlL`ҊQA/AlL`׊QAd/AlL ܊QA/AlLߊQA/AlL QAI/AlLQA/AlL@QAT/AlL@QA/AlL@QA/AlL`QA/AlLQAX/AlLQA/AlL QA/AlL QA:/AlL QA/AlL` QA/AlL QA;/AlL@ QA/AlLQA/AlLQA /AlL QA8/AlLQA/AlLQA/AlLQA$/AlL`QA/AlLQA/AlL"QA /AlL%QAi/AlL(QA/AlL-QAE/AlL &QAv/AlL@$QA/AlLQA/AlL`QAf /AlLQA /AlLQA /AlL QA'!/AlL`QAR!/AlLQA!/AlLQA!/AlL$QA!/AlL'QA3"/AlL%QA"/AlL+QA"/AlL`7QA#/AlL?QA[#/AlLCQA#/AlL@IQA#/AlLPQA#/AlL`YQA$/AlL@dQA$/AlLfQAn$/AlLsQA$/AlLyQA$/AlL{QA%/AlL`QAl%/AlLQA%/AlLQA%/AlLଋQAD&/AlLQA&/AlL@QA&/AlL`̋QA&/AlL@ڋQA&/AlLQA&/AlLQA&/AlLQA8'/AlLQAs'/AlLQA'/AlL QA'/AlL"QA(/AlLQA(/AlL "QA(/AlL .QA>(/AlL@:QAg(/AlLFQA(/AlL`ZQA(/AlLgQA(/AlLoQAx(/AlLQA(/AlLQA(/AlL`QA)/AlLQAP)/AlLpQA[)/AlLQAp)/AlL`ŒQA)/AlLȌQA)/AlLьQAw*/AlLڌQA*/AlLӌQA+/AlLٌQA:+/AlL`QA+/AlL@QA+/AlL@QA_,/AlLQA,/AlLQA%&@].AlLlQA/AlLŭQAK/AlL QA/AlL QA/AlL`QA/AlL٨QA/AlLȨQA/AlLQA/AlL QAr/AlL`QAM/AlLQA./AlL`QAL/AlL`QAn/AlL }QA/AlL@xQA/AlLoQA/AlLeQA/AlL@^QA|/AlLNQAa/AlLEQAR/AlL=QAY/AlL2QA/AlL (QA/AlL` QA/AlLQA5/AlLQAy/AlL QA/AlL@QA/AlL`QA/AlL@QA /AlLQA/AlL ާQA/AlL`اQA/AlLЧQAV/AlL`ǧQA(/AlL QA/AlL๧QA/AlL@QA/AlL@QA/AlL@QAz/AlL QA_/AlLQA7/AlLzQA/AlLuQA/AlL@nQA/AlLdQA{/AlL\QAS/AlLWQA/AlLOQA/AlL@IQA/AlLEQAc/AlL@@QA/AlL ;QA/AlL@3QA/AlL)QA/AlL@#QA/AlL QAm/AlL QAe/AlLQAx/AlLQAa/AlLQAM/AlL QA/AlLߦQA/AlL`ئQAU/AlLԦQA\/AlL`ͦQA+/AlLɦQA/AlLæQA,/AlL`QA/AlLQA/AlL QA/AlLQA/AlLQAm/AlLQAN/AlLhQA?/AlLXQA)/AlLHQA./AlL`=QAY/AlL0QA/AlLQA/AlL` QA2/AlLQA{/AlLQA/AlL`QA/AlLQA /AlL֥QA/AlL̥QA/AlLQA/AlLQAA/AlL@QA/AlL@QA|/AlL`QA//AlLQA/AlL QA/AlLQAs/AlLQA^/AlL {QAV/AlL`xQAk/AlL0vQA|/AlLtQA/AlL sQA:/AlLoQA/AlLkQA/AlLhQAd/AlLdQA/AlLaQA/AlL[QA/AlLUQA/AlLPQA9/AlLJQAx/AlL`HQAZ/AlL=QAh/AlL@QA/AlL@5QA/AlL`.QA]/AlL'QA&/AlL!QA/AlL@QA/AlL@QAb/AlL`QAX/AlL QAE/AlL@QA>/AlLQA/AlLQA/AlLQA/AlLQA/AlL@QA/AlL`ڡQA/AlLϡQA/AlL áQAa/AlL`QA`/AlLQA/AlL@QA/AlL@QA/AlLQA/AlL@QA/AlL QAP/AlL@QAP/AlLQAI/AlLyQA,/AlLoQA.AlLbQA.AlLSQA.AlL`FQA.AlL.AlL QA.AlL QA.AlLQAo.AlL)QA.AlL4QA.AlL @QAY.AlLGQA.AlLWQA.AlL`ZQA.AlLXQAq.AlLTQA4.AlLMQA.AlLSQA.AlL]QA.AlL@gQAq.AlL@uQA.AlLvQA2.AlLQA.AlLQA.AlLQA!.AlLQA.AlL QA.AlLQA.AlLQA.AlLQAU.AlL}QA.AlLyQA.AlLuQA.AlLoQA<.AlLqQA.AlLsQA.AlLvQA.AlL@|QA".AlLQAB.AlLQAe.AlLQA.AlLQA.AlLQA;.AlLQA{.AlLQA.AlLডQA.AlL@QA=.AlLQAz.AlLQA.AlLQA.AlLơQA4.AlLȡQA{.AlL`ʡQA.AlL`̡QA,.AlL ΡQA.AlLСQA.AlL@ҡQAs.AlL@ԡQA.AlLԡQAd.AlL`ѡQA.AlLˡQA=.AlLQA.AlLQA.AlL`QAz.AlLзQA.AlLQA.AlL`QA\.AlL࿡QA.AlLšQA.AlL@͡QA.AlL@ӡQA.AlLڡQA.AlLQA.AlL QA).AlL`QA4.AlLQA.AlLQAi.AlL`QA.AlL"QAZ.AlL +QA.AlL@/QA=.AlL0QA.AlL5QA.AlLDQA.AlLRQAq.AlLeQA.AlLuQA.AlLQA.AlLQA2.AlL`QA.AlL`QA.AlLQA.AlL âQA.AlLǢQAq.AlLʢQA.AlL ˢQAW.AlL̢QA.AlLТQA.AlL@QA.AlLQAm.AlLQA.AlL QA.AlLQAs.AlL,QA6.AlL=QA.AlLFQA.AlLVQA.AlLeQAY.AlLpQAh.AlLqQA.AlLQA.AlLQAK.AlLQA.AlL`QA.AlLţQA.AlLQA.AlLQA .AlL QA.AlLQA.AlL QA.AlL QA.AlL QAp.AlLQAJ.AlL QA.AlL@ QA.AlLQA.AlLQA=.AlL@"QA.AlL+QA.AlL7QA.AlLHQA$.AlLUQA=.AlLaQAb.AlLkQA.AlL {QA.AlLQA.AlLQAL.AlLQA.AlLQAe.AlLФQA.AlLQA~.AlL`"QA.AlL .QA`.AlL:QA.AlL`EQA/.AlL`QQA.AlL\QA.AlLfQAo.AlLqQA.AlL`zQAX.AlLQA.AlLQA .AlLQAp.AlL`QA.AlL@QA .AlLཥQA.AlLǥQA.AlL@ѥQA.AlL`إQAL.AlL@QA|.AlLpQA.AlL`QAa.AlLQA.AlLQA.AlL+QA.AlL@AQA'.AlLPQA7.AlL RQA.AlL^QAD.AlLjQA .AlL wQAt.AlLQA7.AlLQA.AlLQA.AlL@QAS.AlLQA%.AlL`QA.AlL๦QAr.AlL¦QA.AlL˦QA.AlLզQA.AlLۦQA-.AlLߦQA?.AlLQA<.AlLQA .AlL`QA.AlL QA.AlL@QAm.AlL -QA(.AlL@IQA.AlL@jQA.AlL@QA.AlLQA.AlLQA.AlLࢧQA6.AlL@QAM.AlLQAn.AlL`QA.AlLƧQA.AlLѧQA.AlL٧QA.AlLQA.AlLQA.AlLQA.AlL QA>.AlL QA_.AlL`QA.AlL`"QA.AlL+QA.AlL`6QAK.AlL 1QA.AlL*QA.AlL@QA .AlL QAn.AlL`QA.AlL` QA=.AlL QA.AlL QA%.AlLQA.AlL@QA.AlLQA=.AlLQA.AlLQA.AlLQA.AlLQA.AlLQA.AlLQAq.AlLQA.AlL`QA.AlL@"QA1.AlL`.QAU.AlL5QAo.AlL=QAb.AlLEQA%.AlL@NQA.AlLYQAl.AlLdQA.AlL`mQA.AlLrQA_.AlLuQA.AlLQA.AlLQA.AlL QA.AlL QAV.AlLQA.AlL@QA.AlLQA.AlLèQA7.AlL`ȨQAu.AlLͨQA.AlLҨQA.AlL`רQAH.AlL ۨQAq.AlLިQA`/AlLQA/AlL࿨QA/AlL̨QA/AlLרQA/AlL`QA/AlL QA/AlL@QA/AlL@QA9/AlLQA/AlL`QA//AlL QA/AlLQA/AlL QAk/AlLQA/AlL QAT/AlL QA/AlL QA/AlL QA/AlL@ QA/AlLQA/AlL QA.AlLQA4.AlLQA.AlL@QA`.AlL@QA .AlLҪQA.AlLQAX.AlLQA.AlLQA.AlLQA.AlLQAD.AlLQA.AlL@~QA.AlLrQAx.AlLeQA4.AlLYQA.AlLIQA|.AlL@>QAi.AlL6QA^.AlL`)QAm.AlL QA.AlLQA.AlL QA.AlL@QA.AlL`QA.AlLQA.AlLީQA.AlLѩQA.AlL`éQA.AlL`QA.AlL QA.AlLQA.AlL@sQA.AlLPrQA.AlLpQAm.AlL@pQA.AlLsQA.AlL vQAh.AlLyQA.AlLQA.AlLQA.AlL@QAZ.AlLQA.AlL`QA.AlLQA~.AlL QAK.AlLQA.AlLQA.AlL`QA.AlLQA`.AlL@QA%.AlLQA.AlLQA.AlL`QAr.AlL@QA%.AlLQA.AlLQA.AlLQA(.AlL೩QA.AlL௩QA|.AlL`QA.AlLQA.AlLQA].AlLQA.AlL@QA`.AlLQA.AlL@QAR.AlLQA.AlL`QA.AlL@QA_.AlLQA.AlL`QA.AlL@QA].AlL`QA!.AlL`ǩQA.AlLթQA.AlLQAV.AlL QA .AlL`QA.AlL@QA.AlL@QA.AlLQAP.AlL $QA.AlL`CQA.AlLFQAF.AlL`RQA .AlLWQA.AlLZQAF.AlLWQA.AlL`ZQA־.AlLaQA.AlLgQAm.AlL`lQA1.AlLpQA.AlLwQA.AlLQAp.AlLQA.AlL QA.AlLɪQA.AlLϪQA,.AlLڪQA.AlL QAμ.AlLQA.AlLQAk@.AlLQA@.AlLQA@.AlL QA.AlLQA˼.AlL` QA@.AlLQA.AlLQAͻ.AlLQA@w.AlL@QA@7.AlL$QA.AlL'QA.AlL@-QA4.AlL`1QA.AlL;QA.AlL >QAc.AlLCQA@].AlLNQA.AlL^QAƹ.AlL`iQAڹ.AlL`qQA.AlLQA.AlLQA .AlLQA@*.AlL`QA_.AlLQA.AlLЫQA6u.AګQAƺ.AlLQA@.AlL QAF.AlL`QA.AlLQA.AlL@QA_.AlL QA.AlL`QAH.AQA .AlLQA3.AlLQA`t.AlL ޫQA [J~.AlLݫQA.AlL@ثQA.AlL@ҫQA.AlLǫQA5.AlLQA@[.AlL@QA@z.AlL QA|.AlLQA.AlL@QA.AlL qQA.AlL``QA.AlL SQA@.AlL FQA-.AlL`8QA.AlL /QA.AlL`,QAW.AlL &QA@.AlL@(QAl.AlL*QA.AlL #QA7.AlL@QA.AlLQA@.AlLQA@S.AlL`QA.AlLQAa.AlL QA@.AlLQA@>.AlL#QAZ.AlL'QA@z.AlL5QA.AlL?QA@.AlLNQA@.AlL`ZQA .A]QA.AlLhQA.AlLzQA@.AlL`QA.AlLQA-.AlL QA.AlLQA .A0ëQA@.AlLǫQA.AlL ֫QA.AlLQA.AlL@QA.AlL QA@.AlL@.QA@1.AlL@QAi.AlL SQAK.AXQA@.AlL`QA.AlLgQA@.AlLvQA.AlLQA@D.AlLQA.AlL@QA@.AlLQAv.AlLQA@.AlL༬QA@M.AlLìQA@.AlLҬQA@.AlLQA.AlL@QAD.AlL QA@.AlLQA.AlL QA4.AlLQA@.AlL$QA.AlL@1QA@.AlL@QAV.AlL JQA@.AlL@QQA.AlL@XQA&.AlL`eQAA.AlLnQA@.AlL yQA@.AlL{QA.AlL QA2@1.AQAF.AlL QA.AlLQA@F.AlL`QA@.AlLQA%.(.A;9%QA@@.AlLQA@.AlLQA.AlLŭQA3.AlL QAV.AlLQA.AlL@QA.AlLQA+.AlL@QA.AlLnQA.AlL@lQA.AlL^QA.AlLLQA.AlL@>QA.AlL *QA.AlLQA.AlLQAv.AlLQA].AlL`QA.AlL`QA".AlLQAb.AlL@ҬQA.AlLQA.AlLQAL.AlL`QA.AlL@QA .AlLnQA.AlL YQA.AlLPQA.AlL@0QA.AlL#QAe.AlL QA.AlLQA.AlL@QA1.AlL`QAN.AlL߫QA.AlL@׫QA.AlL@ΫQA~.AlL`īQA.AlLQA6.AlLQA.AlL`QAO.AlL@QA.AlLQA.AlLiQA.AlLVQAe.AlLDQA.AlL.QA.AlL@!QA .AlL@QAi.AlL` QA.AlLQA.AlL8QA.AlL,QA.AlL%QAv.AlL@QAH.AlLQAA.AlL QAV.AlLQA`.AlL`QAE.AlL QA .AlLQA.AlLQA.AlLQA.AlLبQAq.AlL@ӨQA .AlLʨQA.AlLƨQA.AlL بQAP.AlLQA(.AlL`QA.AlLQAh.AlL*QA;.AlL2QA.AlL+QAC.AlL ˨QA.AlL`QA.AlL HQA.AlL+QA.AlL"QAY.AlL QA.AlL&QAc.AlL )QA.AlL+QA.AlL.QA.AlL 4QAS.AlL`7QA.AlL .AlLXQA0.AlLPQA.AlL`DQA.AlL8QA/AlL`QA/AlLQA/AlLQA/AlL QA /AlLQA/AlL`ܥQA/AlLԥQA/AlL˥QA/AlLQA/AlLQA/AlL@QAy/AlLQA./AlLQA/AlL`QA/AlLQAp/AlL~QA@/AlL{QA/AlL@zQA/AlLxQA"/AlL@vQA/AlL`wQAp/AlL@wQA/AlLpQAj/AlL`fQA/AlL[QA;/AlL VQA/AlL@TQA/AlL`OQA|/AlL`HQAF/AlLCQA/AlLFQA/AlL@LQA/AlLOQAl/AlL`PQA /AlLMQA/AlLNQA/AlL*QA/AlL,QA/AlL QA/AlLQA/AlL QA/AlLQA/AlL@QA/AlL ۤQA/AlL`ͤQA/AlLɤQA/AlLQA/AlL൤QA/AlLQA/AlL QA0/AlLQA/AlLQA/AlLQA/AlLQA/AlLQAC/AlL֤QAu/AlLQA/AlLQA/AlL`QA /AlLQA/AlLQA/AlL@QAC/AlL@QA%/AlLQAi/AlL QA[/AlLQA/AlLQAO/AlLQAV/AlLQA/AlL QA/AlL@ QA(/AlLQA/AlLQAK/AlLQA/AlL@QA/AlLQAn/AlLQA0/AlL QA/AlL QA>/AlL QA/AlLQA(/AlL QAu/AlLQA/AlLQA/AlL QA/AlL`QA@K_.AlLQA.AlLPQAEz.AlLyQA.AlL`wQA.AlLQAb.AlLQA.AlLQA8.AlL zQA.AlL@yQA.AlLzQA.AlL wQA".AlLnQAB.AlL`_QAI.AlL@OQAe.AlL@EQA.AlL;QA&.AlL3QAI.AlL@*QA(.AlL!QA.AlLQA֝.AlLQA.AlL QAK.AlLQA.AlLQA.AlLQAT.AlLQA.AlL٣QA̞.AlḶQA.AlLQAi.AlL`QAß.AlL`QA.AlL`QA.AlLQA.AlLQA=.AlL xQAR.AlLoQAf.AlL`QA.AlL`YQA.AlLBQA.AlL`?QA%.AlL3QAL.AlL#QAt.AlL@QA.AlL QA.AlLQA.AlL@ޢQA.AlL ӢQA.AlL`ǢQA-.AlLརQA`.AlLQA.AlL`QA.AlLQA.AlLQAg.AlLQA.AlLyQAأ.AlL nQA.AlL@cQAb.AlLYQA.AlLRQA.AlLNQAW.AlL@HQA.AlLAQA.AlL9QA.AlL1QA .AlL (QAf.AlL@"QA.AlL@QAަ.AlLQA.AlLQAo.AlL`QA.AlL@QA.AlL`QA.AlLQA3.AlLQAo.AlLQAz.AlLPQA.AlLQA.AlLQA.AlLޡQA.AlLѡQA.AlLˡQA.AlLġQA.AlLQA.AlLơQAV.AlL@ˡQA.AlLˡQAĩ.AlL`¡QAө.AlLQAة.AlL`QA".AlLQA@.AlLQA$.AlLQA.AlLQA.AlLQAN.AlL tQA.AlL@bQA.AlL@OQAv.AlL`AQA.AlL8QA .AlL3QA`.AlL -QA׬.AlL`&QA.AlL`!QA.AlLQAF.AlL`QA.AlLQAĭ.AlLQA.AlLQA.AlL@QAN.AlL QA.AlLQAԮ.AlLQA.AlLQAE.AlLpQA.AlL QAܯ.AlLQA1.AlLQA.AlL`ߠQA.AlL٠QA.AlLΠQA.AlLǠQA.AlLའQA.AlLQA.AlLQA.AlLठQA.AlL`QA.AlL@QA.AlLQA8.AlLQAk.AlL@jQAo.AlL`]QA.AlLPQA.AlL`HQA.AlL:QAD.AlL'QAR.AlL@QA<.AlL QAA.AlLQA[.AlL QAT.AlL@QA,.AlL ۟QA3.AlL`ҟQAs.AlLǟQA.AlLQAݲ.AlLଟQA.AlL |QA.AlL xQAk.AlL`uQAk.AlLkQA.AlLdQA.AlLWQA.AlL`LQA.AlL?QA<.AlL)QAT.AlL0"QAf.AlL@QA.AlLQAҳ.AlL` QAҳ.AlLQA.AlLQA^.AlL QA.AlL ֞QA.AlLǞQAӴ.AlLQAQ.AlL QA .AlLQAس.AlL@QA.AlL`QA.AlL`QA.AlLxQA.AlLhQA.AlL \QA.AlLTQAY.AlL`HQAH.AlL9QA=.AlL'QA%.AlLQA.AlL QA.AlLQAز.AlLٝQAݲ.AlLϝQA .AlL@ÝQA!.AlLQA.AlL@QAR.AlL QA.AlLQAֳ.AlL@QA.AlLwQA.AlL@nQA#.AlL@dQAY.AlL`UQA.AlLNQAд.AlLGQA.AlL`CQA0.AlL9QAp.AlLp1QA.AlL+QA.AlLQAA.AlL QA.AlLQA.AlLQAj.AlLQA!.AlLڜQA׳.AlLϜQA.AlLĜQA.AlL๜QA.AlLQA.AlLQAb.AlLQA8.AlLQA8.AlL QAA.AlLwQAB.AlL nQAI.AlL`eQAP.AlL`[QA1.AlLLQA.AlL CQA1.AlL=QA.AlL`)QA.AlL QA.AlLQA.AlLQA.AlLQA.AlLQAֲ.AlL QA.AlL ћQAE.AlL@ǛQAy.AlL`QA.AlLQA'.AlLQA;.AlL@QA[.AlLQAa.AlLQAt.AlL`uQA}.AlLjQA.AlL`QA.AlL\QA.AlLVQA.AlLLQA.AlLDQAʴ.AlL3QAҴ.AlL&QA.AlL@QA.AlL@QAɴ.AlL QAٴ.AlLQA.AlL@QA.AlL`QA.AlLQA:.AlL@QA.AlL QA.AlLQA@.AlL@QA.AlL`QAn.AlL$QA.AlL+QA.AlL1QA.AlL:QAذ.AlL DQAj.AlLKQAޯ.AlLVQAU.AlLjQA#.AlL`pQA.AlL@wQAۮ.AlL@QA.AlLQAp.AlLQA-.AlLQA.AlLQA.AlLQA.AlL࿛QA.AlLʛQAG.AlLכQA.AlLߛQA.AlL@QA.AlL QA.AlL QA.AlLQA.AlL1QAZ.AlL @QAF.AlLDQA.AlLMQAߪ.AlL SQAS.AlL@YQA.AlL_QAn.AlLfQA.AlL`jQA.AlLmQA0.AlLtQA.AlLnQA[.AlLlQA.AlLmQA.AlLpQA.AlLxQA.AlL|QA{.AlL {QA.AlL`vQA.AlLqQA2.AlLoQA@ģ.AlL@mQAr.AlLiQA@.AlL`eQA.AlL^QA֢.AlL0]QA.AlLbQAX.AlL jQAɡ.AlL`nQA4.AlL`sQAY.AlLxQA.AlLyQA@.AlLwQA.AlL`wQAG.AlLxQAڝ.AlLQA.AlLQA.AlLQA.AlLQA}.AlLଜQA>.AlLQA.AlL@œQAe.AlL͜QA7.AlLԜQA*.AlL QA".AlL`QA .AlLQA.AlL QA.AlLQA՚.AlL`QA.AlL!QA*.AlL QAe.AlLQA͗.AlLQAp.AlL@ܜQA.AlLМQAB.AlLĜQA.AlL`QA>.AlLজQA.AlL@QA.AlL`QA.AlL QA .AlLQA.AlLlQA.AlL]QA$.AlLEQAő.AlL4QA>.AlL)QA.AlL$QAz.AlL`(QA.AlL1QAf.AlL;QA.AlLJQA.AlL ZQA].AlL_QA7.AlL^QA.AlLZQA.AlLTQA].AlLMQA{.AlLCQAS.AlLGQA.AlL HQAօ.AlLEQA.AlL;QA.AlL1QA;.AlL`!QA.AlL`QA.AlL@QAU.AlLQAۀ.AlLQA.AlLQAK.AlL՛QA.AlL͛QAk.AlL QA~.AlLࣛQAp~.AlLQA}.AlL{QA}.AlLaQA<}.AlLIQA|.AlL@6QA|.AlL&QA{.AlLQAU{.AlL QAz.AlLQAz.AlLQA?z.AlLQAz.AlL ؚQA z.AlLǚQA z.AlL QAy.AlL@QAmy.AlL@QAx.AlL QAx.AlL`}QAx.AlL@lQAx.AlLcQAy.AlL [QAy.AlLLQAy.AlL0KQAy.AlLۙQAff.AlL@ޙQA1f.AlL`QAf.AlLQAe.AlL@QAe.AlL@QATe.AlL QAd.AlLQAd.AlLQAXd.AlLQAc.AlLQAmc.AlL QAc.AlLQAb.AlLQAb.AlL*QA@Ab.AlL;QAb.AlLIQAa.AlLQQAa.AlL]QAya.AlL hQA_a.AlLrQA@oa.AlLQAa.AlLQAta.AlL`QAUa.AlLQA4a.AlLĚQAa.AlL`ԚQAa.AlL@QA`.AlLQA`.AlL`QA`.AlL QA`.AlL "QA@ a.AlL5QAa.AlL`DQA`.AlLZQA`.AlLjQA`.AlL zQAK`.A *~QA`.AlLQA8`.AlLQA_.AlL`QA_.AlL࿛QAR_.AlLћQAK_.AlL QA_.AlLQA@!_.ArQA_.AlLQA`.AlL QA@g`.AlL0QA`.AlLBQA`.AlLSQAz`.AlLQAm`.AlL@QAL`.AlLQAN`.AlL ƜQAO`.AlL՜QAg`.AlL QA`.AlLQA$a.AlLQA{a.AlLQAa.AlL@QAa.AlL3QAa.AlLBQAa.AlLYQA@b.AlLqQA)b.AlLQA@Ob.AlLQAzb.AlLQAb.AlL`ŝQAb.AlL؝QAYb.A2KޝQAc.AlLQA0c.AlLQAtc.AlL`QAc.AlLQAc.AlL`QA d.AlLQAHd.AlLQAfd.AlL,QAd.AlL@d.AlLQAc.AlLQAc.AlL@QA@c.AlLžQAc.AlL@ϞQAc.AlL@ߞQA"d.AlLQAd.AlLQAd.AlLQAKe.AlL QAe.AlL`QA*f.AlL)QAf.AlL`QA.AlLLQAn.AlL[QA.AlL@dQAt.AlLkQA.AlL@qQAq.AlLpQA.AlLsQAՍ.AlL@|QAʍ.AlLQA.AlL QA.AlLQA.AlLQA.AlLQA.AlLೡQA.AlL QA.AlLˡQA.AlL١QA.AlLQA.AlLQAF.AlLQAx.AlL`QAl.AlL QA4.AlL QA(.AlL#QAW.AlL.QA.AlL5QA.AlL@>QA.AlL@>QAQ.AlL;QA.AlL@;QA;.AlL =QA.AlL@=QAn.AlL>QA.AlL@AQAБ.AlLFQA].AlL CQAݒ.AlLHQA*.AlLOQAy.AlLUQA.AlL[QAɓ.AlL@cQA.AlLoQA.AlL@xQA.AlL QA.AlLQA`.AlL QA.AlLQA.AlL@QAޑ.AlLQA.AlL QA .AlLQAː.AlL ϢQAؐ.AlLۢQA.AlLQA'.AlLQAP.AlLQAv.AlL QA.AlLQAۑ.AlL@QA,.AlLQA.AlLQAؒ.AlLQAJ.AlL@QAv.AlL QA.AlL QA.AlLQAR.AlLQA.AlLQA.AlL@QAÔ.AlL QAє.AlLQAʔ.AlL`ڢQA>.AlL`ԢQA[.AlL@ɢQA.AlL QA.AlLଢQAI.AlLQA.AlL`QA.AlLĢQA.AlL`ʢQA:.AlL΢QA].AlLբQAV.AlLQA@.AlL`QAB.AlLQAP.AlL@QAo.AlL`'QA.AlL2QA.AlL:QAm.AlLAQA.AlLIQAǗ.AlL`JQA.AlLGQAA.AlL?QA}.AlL2QA.AlL3QAʘ.AlLCQAȘ.AlL KQA.AlLXQA.AlL`bQA.AlLlQAk.AlL@sQA<.AlL`zQA#.AlLQA.AlLQA.AlL`QA.AlL QA.AlLQAӗ.AlLQA.AlLQAk.AlLQA?.AlL@QA!.AlLQA.AlL@ɣQA.AlLˣQA̘.AlL@QA.AlL@QA.AlL QA@.AlL`!QA.AlL3QA.AlLJQA.AlL@[QA.AlLoQAf.AlLQA1.AlL`QA.AlL@QA.AlLQA.AlLˤQA.AlL ޤQA^.AlLQAK.AlLQAq.AlLQA.AlLQAؖ.AlL QA .AlLQAW.AlLPQA.AlLQAٗ.AlL@QA$.AlLQAY.AlL@QA.AlLQA.AlL QA.AlL`QAԘ.AlLܤQA.AlL@֤QA9.AlLʤQA_.AlL@QAə.AlLQA .AlLQA).AlL QAz.AlLyQA .AlL@QAe5/AlLRQA/AlL@QA/AlL6QA/AlL.QA/AlL#QA/AlLQA/AlL@ QA/AlLQA/AlL@QA@/AlL@ωQAN/AlLྉQAa/AlL QA/AlLQA/AlLQA/AlLQAQ/AlLoQA/AlL`^QA/AlLLQA/AlLEQA/AlL9QA/AlL-QAI/AlLQAb/AlL@QA/AlLQA/AlL QA/AlL`QA /AlLQAA/AlLQAS/AlL݈QA!/AlLՈQA/AlL@ԈQA/AlLӈQA/AlLĈQA/AlLఈQA&/AlL@QAh/AlLQA/AlLhQA/AlLOQA/AlLBQA"/AlL`6QA/AlL4QA/AlL@3QA/AlL*QA2/AlLQAE/AlLQA/AlLQA/AlL QA/AlLQAp/AlL &QA/AlL` QA/AlLQA/AlL QA8 /AlL QAu /AlL@QA /AlL$QA /AlL@/QA9 /AlL0QA /AlL`*QA /AlL@QA /AlLQA /AlL@QA /AlL܇QA /AlL݇QAO /AlLQA /AlLQA /AlLQA /AlLQA /AlL@QAG /AlL QA= /AlL@ׇQA /AlLχQA /AlLŇQAS /AlL྇QA /AlLQA /AlL QA /AlLQA /AlLࢇQA /AlLQA? /AlLQA\ /AlL{QAo /AlLpwQA /AlLqQA /AlLeQA /AlLZQA /AlL LQAK /AlL?QA /AlL3QA /AlL@,QA /AlL"QA /AlL@QA /AlL QA /AlLQA /AlL`QA% /AlL`QAv /AlL QA /AlLQA /AlL QA:/AlLQAu/AlL@QA/AlL QA/AlL@QA/AlL`QA/AlLQA$/AlLQAi/AlL@QA/AlLQA/AlL QA /AlLQA</AlL QA/AlLQA/AlL@QA/AlLQA,/AlL QA>/AlLQA/AlL QA/AlL݆QA7/AlLۆQAR/AlLֆQA</AlL@ΆQAD/AlLÆQAk/AlLQA/AlL@QA/AlL`QA</AlLQA/AlLQA/AlLQA/AlL@QA/AlLQA\/AlL@QA/AlLQA4/AlL`QA/AlL@QAz/AlL xQA/AlLoQA/AlLhQA$/AlL`_QA/AlLSQA;/AlLQQA/AlL OQA/AlLMQA/AlLKQA`/AlL EQA/AlL:QAx/AlL.QA/AlL`!QA/AlL@QA/AlLQAF/AlL`QAe/AlL)QA/AlL2QA/AlL6QA*/AlL8QAm/AlL4QA/AlL,QA/AlL@QA/AlLQA/AlLQAD /AlLQA /AlL߅QA /AlLׅQAU!/AlLυQA!/AlLυQA"/AlL@хQAP"/AlL ՅQA"/AlL@؅QA"/AlLمQA#/AlL ԅQA<#/AlLQAo#/AlLQA#/AlLQA"$/AlLQAP$/AlLQAg$/AlL؅QAm$/AlL@ʅQA5$/AlL`QA#/AlL QA#/AlL`QAL#/AlLQA"/AlLQAw#/AlLQA#/AlLQA1$/AlL QAo$/AlL@QA$/AlLQAO%/AlLQA%/AlL@QA&/AlL QA&/AlLQA&/AlL`QA&/AlLQA&'/AlL QAG'/AlLQAp'/AlL yQA'/AlLqQA'/AlLpkQA'/AlLiQA/(/AlLtQA(/AlLxQA)/AlL`~QAe)/AlLQA)/AlL`QA*/AlLQAv*/AlLQA*/AlLQAI+/AlLQA+/AlLQA(,/AlL QA,/AlLQA,/AlLQA;-/AlLÅQA-/AlL΅QA./AlL`ׅQA./AlLQA./AlLQA6//AlLQA//AlL QA//AlL QA0/AlL`QAf0/AlL QA0/AlL%QA0/AlL'QA1/AlL*QAD1/AlL5QA1/AlL@DQA2/AlL 8QAO2/AlL@0QA2/AlL#QA2/AlL`QA3/AlLQAC3/AlL QA3/AlL@QA3/AlL QA3/AlLޅQA3/AlL օQA3/AlLɅQA3/AlLQA3/AlLQA3/AlLQAt3/AlLQAR3/AlL |QA?3/AlL`nQA.3/AlL ]QA*3/AlL@PQA.3/AlL@@QA%3/AlL-QA3/AlL !QA/3/AlLQAa3/AlL QA3/AlLQA3/AlL QA3/AlLQA3/AlLQA)4/AlL߄QA`4/AlLׄQA4/AlLτQA4/AlLĄQA4/AlL@QA/5/AlL಄QAe5/AlLQAW5/AlLQA5/AlLQA4/AlLQA4/AlLQA^4/AlLQA+4/AlL`QA3/AlL@QA3/AlL{QA=3/AlLwQA2/AlLsQA2/AlLlQA62/AlL`dQA2/AlL]QA2/AlL@[QA1/AlLVQA1/AlL@QQA1/AlLGQA1/AlL?QA1/AlL8QA1/AlL8QAm1/AlL8QA0/AlL@6QAk0/AlL2QA//AlL5QAt//AlL@5QA./AlL@4QA0./AlL2QA -/AlL0QA,/AlL`/QA+/AlL+QA+/AlL+QA*/AlL@%QAf*/AlLQA */AlLQA)/AlL QA&)/AlL QA(/AlLQA(/AlLQA]'/AlLQA&/AlLQA&/AlLQA%/AlLQA$/AlLQA$/AlLQA5$/AlLQA#/AlLQAR#/AlLQA"/AlLQA"/AlL QA"/AlL`QA!/AlLQA!/AlL`QAC!/AlLQA /AlL`QA /AlL0QA /AlL@QA /AlL QA/AlLQA/AlLQA/AlLQA/AlLQA/AlLQA1/AlL`߃QA/AlLڃQA%/AlL׃QA/AlL҃QAr/AlLЃQA2/AlLσQA/AlLՃQA/AlLۃQA\/AlL܃QA4/AlL@كQA/AlLփQA/AlL`ԃQA/AlL`˃QA/AlLƃQA/AlL QA/AlL`QAE/AlL@QAv/AlLృQA /AlL`QAD/AlL@QA/AlLQA/AlLQA4/AlLࢃQA/AlLQA/AlLQAC/AlL QA/AlL`QA*/AlLyQA/AlL rQA/AlL@kQA /AlLdQA /AlL ^QAz!/AlLTQA!/AlLNQA}"/AlLGQA"/AlLCQA#/AlL:QA1$/AlL`1QA$/AlL@(QA %/AlL#QA~%/AlLQA&/AlL@QAS&/AlL QA&/AlL@QA,'/AlLQA'/AlL@QA'/AlLQA (/AlL`QA^(/AlL@QA(/AlLQA(/AlLQA)/AlLQA&)/AlL` QA)/AlL QA)/AlL`QA()/AlLQA(/AlLQA(/AlLQA?(/AlLQA'/AlLQA'/AlLQAg'/AlL؂QAT'/AlLςQAA'/AlL@ƂQA5'/AlLགQA&/AlL QA&/AlLQA5&/AlLQA%/AlLQAX%/AlLQA$/AlL|QAG$/AlLnQA#/AlL@`QA#/AlLMQA#/AlL@>QA#/AlL3QA#/AlL`$QA#/AlL`QAt#/AlL`QAX#/AlL@QA"/AlLQA"/AlLQA"/AlL QA$"/AlLQA!/AlLQA /AlL 'QA /AlL`/QA /AlL 7QA/AlLAQA"/AlL JQA/AlL@RQAk/AlLZQA/AlLdQA/AlL`kQA/AlLpQA_/AlL@uQA/AlL}QA/AlLQA/AlL@QA0/AlLQA/AlLQA/AlLQA*/AlL@QA/AlLQA/AlLÂQA/AlL@ǂQAS/AlL@ȂQA /AlLƂQA/AlLĂQA/AlLÂQA/AlL ĂQAM/AlLĂQA/AlL ȂQA/AlL ˂QAX/AlL؂QA/AlL@QA/AlL@QAA/AlLQA/AlLQAN/AlL@#QA/AlL@+QA\/AlL6QA/AlL@@QA/AlLPQA{/AlLZQA3/AlL@dQA/AlL[QA/AlLPQA"/AlL`EQA/AlL/AlL QA/AlL`QA/AlL໅QA/AlLQA/AlL@QA/AlL`ŅQA/AlLDžQA/AlLԅQA/AlL@QAH/AlL QA;/AlLQA/AlL QA/AlLQA/AlL%QA/AlL@6QAM/AlLBQA/AlLQQA|/AlL`[QA6/AlLaQA/AlLdQA/AlLgQA)/AlLkQA/AlLsQA/AlLzQA /AlLQAc/AlLQA/AlL QA+/AlLQAp/AlLQA[/AlL QA</AlLQA/AlLQA/AlLQA/AlLආQA/AlLQA/AlLQAt/AlLņQA/AlL ̆QA/AlL`نQA/AlL@QAk/AlL QAP/AlLQA;/AlL QA/AlLQA/AlL"QA/AlL@*QA/AlL@0QA/AlL@8QA/AlL>QA/AlL CQAR/AlLEQA/AlLHQA/AlLHQA/AlLPQA/AlLVQA/AlL_QA/AlLfQA]/AlLoQA+/AlLzQA /AlLQA/AlL`QA/AlLQA/AlLQA/AlLQA/AlLQA/AlLQA/AlL·QA/AlL؇QAO/AlL`QA/AlLQA/AlL@QA/AlL QA}/AlLQA&/AlL`QA/AlL@$QA/AlL /QA/AlLQA0AlLIQA70AlL NQA {0AlLPTQA0AlL]QA50AlLcQA0AlLiQA@0AlLmQA20AlLjQA0AlLdQA\0AlL MQA0AlL`>QA@ԏ0AlL@-QA 0AlLQAZ0AlL QA0AlLQA0AlL@QA0AlL`ߒQA@90AlLܒQAh0AlLגQA0AlLʒQA0AlL༒QA@00AlL౒QAi0AlLQA0AlLQA@b0AlLQA@0AlL`QA0AlL~QA@c0AlLvQA0AlLeQA0AlLTQA@00AlLEQA@y0AlL5QA0AlL*QA0AlL@QAH0AlL QA0AlLQA50AlLQA0AlLQA0AlL ֑QA&0AlLӑQA{0AlL ˑQAژ0AlLđQAK0AlL QA0AlLQA@0AlLÑQAؚ0AlL@ڑQA 0AlLґQAp0AlL@ʑQA0AlLQA@0AlLQA0AlLvQA&0AlL`bQA30AlLOQA;0AlL:QA"0AlL@.QA@0AlL=QA@0AlLLQA0AlL]QA0AlL jQAݜ0AlL@vQA@Ŝ0AlL QA0AlL`QA@i0AlL QA>0AlLsQA0AlL gQA0AlLVQA0AlLCQA0AlL`QA0AlLQA@ʛ0AlL@QAɛ0AlL ԐQA֛0AlLQA0AlLQA)0AlL QA@/0AlL`QA0AlL QA@0AlLQA[0AlLQA0AlLvQA0AlL%QA0AlL"QA@#0AlLPhQA0AlL`ʎQAn0AlL@ێQAs0AlLQAi0AlL QAh0AlLQAX0AlLQA@0AlL@QA0AlLQA0AlL QAv0AlL@ҋQAw0AlLЋQA0AlLQA@ʌ0AlL QA0AlLpQA0AlLQA0AlL`QA0AlLֈQAύ0AlL QA̍0AlLQA0AlLQA@$0AlLQA+0AlLQAA0AlL`QA@J0AlLQA0AlLPQA0AlL@zQA@0AlL hQAǏ0AlLBQA؏0AlL1QA0AlL0)QA0AlL"QA0AlLQA'0AlL QA60AlLpQA@K0AlL QAd0AlL QAy0AlL@QA0AlL؇QA@А0AlLQA&0AlLQAZ0AlLQA0AlLpQA0AlL@QA@0AlLxQAR0AlL@pQA0AlLpgQA0AlLdQAɒ0AlLbQA@Ԓ0AlL^QA*ޒ0AUEZQA0AlLYQA@0AlLXQAL0AlL QAh0AlLQA0AlLQA0AlL0QAœ0AlLQA@0AlL wQA 0A3skQA0AlLhQA@0AlLp0QA@0AlL.QA&0AlL QAE0AlL QQA0AlL@dQA@0AlLdQA0AlLQA0AlLzQA@10AlLvQAc0AlL yQAx0AlL@|QA0AlLQA0AlL`QA0AlLQA@0AlL=QA@0AlL˄QA0AlLɄQA#0AlLp2QA@0AlL@ QA@0AlLQA@0AlLQA@0AlL΂QAϝ0AlLQA˝0AlLQA@0AlLQA࡝0AlLQA0AlLQA0AlLQA0AlLQAF0AlLvQAќ0AlL?QA0AlL &QAn0AlLQA=0AlL`QA0AlLQA0AlL@QA|0AlL܁QA\0AlL`ҁQAK0AlL@ȁQAF0AlL࿁QAI0AlLJQAI0AlLHQA@J0AlL`9QA@J0AlL6QAJ0AlL01QAJ0AlL,QAK0AlLQA@K0AlLQAL0AlL QA@L0AlLQAL0AlLQAL0AlL`QA@M0AlL`ԀQA@M0AlLπQAM0AlLŀQAt0AlL€QA0AlLQA_0AlLೀQA`0AlLQAX0AlLQA]0AlLyQA@k0AlL _QA0AlLMQA0AlL`;QAӜ0AlL%QA؜0AlLQA՜0AlLQA؜0AlL@QA0AlLQA0AlLQA͜0AlLQA0AlL QAw0AlL QA60AlLQA0AlLQA0AlLQAڛ0AlL`vQA0AlL]QA0AlLQQA0AlL EQA0AlL;QA0AlL<QA@B0AlL`@QA@0AlL`CQAܚ0AlL?QA0AlL`4QA0AlL`%QA0AlLQA0AlL QA0AlL`~QA@0AlL~QA@0AlL~QA0AlL@~QA0AlL ~QA0AlL@~QA0AlL ~QAb0AlL~QA70AlL~QA 0AlL`~QA@ڙ0AlL~QA0AlL~QA0AlL`z~QA^0AlLp~QA@G0AlL j~QA:0AlLf~QA0AlL^~QA0AlLW~QAǘ0AlL X~QA0AlL^~QA0AlLa~QAm0AlL@c~QA 0AlLt~QAȗ0AlLx~QA@0AlLx~QAx0AlL@l~QA^0AlLb~QA@M0AlLU~QAD0AlLM~QA@40AlLB~QA0AlL8~QA@Ɩ0AlL 6~QA0AlL-~QA40AlL@&~QA0AlL~QA•0AlL~QA0AlL ~QA,0AlL~QA0AlL }QA0AlL`}QA@0AlL }QA@0AlL}QAD0AlL }QAs0AlL }QA0AlL}QA0AlL}QA0AlLr}QA@0AlL f}QA(0AlL@Y}QA0AlLM}QAƕ0AlLM}QA@0AlL`L}QAJ0AlLE}QA(0AlL9}QA0AlL4}QA0AlL }QAؔ0AlL}QA@0AlL|QA@0AlL`|QA@|0AlL|QAR0AlL|QA@0AlL`|QAؓ0AlL |QA@0AlL|QAN0AlL|QA10AlL|QA0AlL`}QA0AlL}QAÒ0AlL`}QA0AlL&}QA10AlL3}QA0AlL`/}QA@x0AlL@&}QA10AlL`}QA0AlL }QA@ 0AlL }QA 0AlL}QA0AlL|QAؐ0AlL |QA@0AlL |QA0AlL@|QA0AlL|QA@ߐ0AlL|QA0AlL`|QA?0AlL@|QAh0AlL|QA0AlL|QA@0AlL@|QA͑0AlL`|QA0AlL@|QA0AlL|QA0AlL|QA0AlL@{|QA0AlLl|QA`0AlL`R|QAC0AlLI|QA@0AlLJ|QA0AlL R|QA0AlLa|QA0AlLl|QA0AlL||QAȐ0AlL|QA0AlL`|QA@d0AlL|QA70AlL|QA@܏0AlL|QA@0AlL|QA0AlL|QA0AlLy|QA@ԏ0AlLn|QA0AlLf|QA@0AlLX|QA0AlLM|QAՏ0AlL I|QA@0AlLK|QAX0AlLM|QA 0AlLI|QA0AlLA|QAŎ0AlL`|QA0AlL@|QAw0AlL` |QA@D0AlL@|QA&0AlL|QA@0AlL|QA0AlL|QA@V0AlL|QA0AlL |QA0AlL|QAJ0AlL|QA0AlL|QA0AlL|QA@g0AlL|QA:0AlL |QA0AlL@{QA0AlL{QA@0AlL@{QA@0AlL{QA0AlL{QA0AlL{QA@0AlL{QA 0AlL{QA"0AlL{QA&0AlL@{QA0AlL{QA 0AlLu{QA0AlLf{QA؊0AlL[{QA0AlLU{QA@j0AlLV{QA@(0AlL [{QA0AlL`{QA@Ɖ0AlL`g{QA0AlL`n{QAO0AlL@v{QA0AlL{{QA@0AlL{QAʈ0AlL@{QA0AlL{QA0AlL@{QAM0AlL`{QA@0AlL`{QA@0AlL{QAd0AlL{QA@B0AlL{QA*0AlL|{QA/0AlLp{QA+0AlLf{QA@*0AlL`[{QA,0AlLS{QA:0AlLL{QA?0AlL@A{QA:0AlL2{QA60AlL@({QA#0AlL`"{QA0AlL@"{QAφ0AlL &{QA@0AlL,{QA[0AlL@-{QA.0AlL@,{QA@0AlL`,{QA0AlL@-{QA0AlL/{QA>0AlL3{QA0AlL`>{QA0AlLH{QA20AlLb{QA0AlLk{QA0AlL x{QAx0AlLu{QAP0AlLl{QA@10AlL a{QA@40AlL`V{QAN0AlLN{QAy0AlLG{QA0AlL@{QA@0AlL8{QA0AlL +{QA0AlL{QAw0AlL{QAA0AlL` {QA0AlL@{QAÂ0AlL{QA0AlL {QA@I0AlL {QA0AlL{QA 0AlL{QA0AlL{QA@0AlL{QA@y0AlL{QA80AlL{QA@̀0AlL`{QA0AlL {QAW0AlL@ {QA0AlL{QA0AlL{QA0AlL`zQA0AlLzQAr0AlL zQAn0AlLzQA0AlLzQA0AlLzQA0AlL zQA0AlL@zQA0AlLzQA.0AlLzQAP0AlL@zQA@{0AlL`zQA@0AlLzQAƀ0AlL`zQA@0AlLzQA0AlL zQA 0AlLzQA0AlLxzQA0AlLpzQA@0AlL jzQA0AlLgzQAm0AlLhzQA%0AlLqzQA@0AlLzzQA0AlLzQA10AlL@zQA~0AlL|zQA~0AlLxzQA@U~0AlL qzQA~0AlLhzQA@}0AlL`bzQAe}0AlLVzQAA}0AlL IzQA }0AlL =zQA|0AlL(zQA|0AlL&zQA@|0AlL"zQA|0AlL`zQA|0AlL@zQA|0AlLzQA|0AlLzQA }0AlLyQA-}0AlLyQA@l}0AlL yQA}0AlLyQA}0AlLyQA}0AlL yQA}0AlLyQA@~}0AlL`yQAS}0AlL@yQA(}0AlLyQA@|0AlLyQA@|0AlL@yQA|0AlLyQA@`|0AlLyQAB|0AlLyQA@ |0AlL yQA|0AlLyQA@{0AlLyQA{0AlL yQA{0AlLyQAq{0AlL@yQA@f{0AlL@yQA@q{0AlL`yQAy{0AlL@|yQA{0AlL oyQA{0AlL gyQA{0AlL]yQA{0AlLWyQA@{0AlL@MyQA{0AlL FyQA{0AlL`;yQA{0AlL@0yQA@w{0AlL +yQA^{0AlL'yQA<{0AlL#yQA${0AlL!yQA{0AlLyQAz0AlL@yQAz0AlLyQAz0AlLyQA@Oz0AlL@ yQAFz0AlLyQABz0AlL`yQA@Gz0AlL xQA@z0AlL`xQA@z0AlLxQA@;z0AlLxQA@2z0AlLxQAz0AlL@xQA@y0AlLxQAy0AlLxQAy0AlLxQAMy0AlL@xQA@y0AlL`xQAx0AlLxQAx0AlL xQA@x0AlL@xQAkx0AlLxQAOx0AlL xQA&x0AlLxQAx0AlLxQAw0AlLxQAw0AlL@xQA@|w0AlLxQA_w0AlLxQADw0AlL@xQA0w0AlL`xQAw0AlLxQA@w0AlLxQA@w0AlLPxQA@v0AlLxQA@v0AlLxQA@v0AlLxQA@v0AlLxQAv0AlL txQA@v0AlL@hxQAv0AlL@XxQAv0AlLAxQAv0AlL`-xQAv0AlLxQA@v0AlLxQAv0AlLwQA@w0AlLwQAv0AlL@wQAv0AlLwQAv0AlLwQA@v0AlL wQAPv0AlL@wQA6v0AlL wQAu0AlLwQAau0AlL@wQAu0AlLwQAt0AlL wQAt0AlL wQAZt0AlL wQA@uQA@ym0AlL`)uQAgm0AlL uQAXs_]m0AȹŖuQA@:m0AlLuQA6A'm0A@Vh uQApm0AlLuQAl0AlLtQApl0AlL`tQApsl0AlLuQAp6l0Ar uQA/l0AlL uQAl0AlL uQA@k0AlL`uQAk0AlLuQAk0AlL uQA~k0AlLuQABk0AlL`uQAk0AlLuQA0k0AlLuQAj0AlLtQAj0AlL`tQAj0AlL`tQApfj0AlLtQAMj0AlLuQA@,j0AlL`uQAi0AlLuQA0i0AlL`uQApi0AlLuQAi0AlL*uQA7i0AlL@6uQAi0AlL8uQA0h0AlL:uQAh0AlL@>uQA0h0AlL@uQA[h0AlLDuQA@-h0AlL@DuQA0g0AlL?uQAg0AlL8uQAg0AlL/uQAhg0AlL`#uQAAg0AlLuQAp?@g0AX|3uQA8g0AlL uQA@8g0AlL`tQA9g0AlLtQA:g0Aư;otQAt^:g0A@tQAp;g0AlLtQAGg0AlLtQApJg0AlLtQAFg0AlL`tQA+g0AlL@xtQA0!g0AlLktQA(g0AlL[tQA@,g0AlL@NtQAPE;%g0AbJtQA g0AlL9tQApf0AlL3tQA@f0AlL+tQA0f0AlL(tQApf0AlL@&tQAlo%f0A~%tQAvf0AlL $tQA@Lf0AlL !tQA@'f0AlLtQA f0AlL tQA0e0AlLtQAe0AlL@tQAe0AlLtQANe0AlLtQAe0AlL tQAd0AlL@tQA d0AlL#tQAd0AlL1tQA0d0AlLFtQA0d0AlLXtQA`d0AlLgtQApd0AlL`ytQAJrd0A" tQAd0A tQApd0AlLtQA d0AlL tQA0d0AlLtQAd0AlLtQAgd0AlLtQA"d0AlL`tQAc0AlL`tQAc0AlL@tQA0?c0AlLtQApc0AlL`tQAb0AlL@tQA`zb0AlLtQA,b0AlLtQA|W&b0AΔtQA@b0AlLDtQA`a0AlLztQAa0AlL`mtQAa0AlL@[tQAa0AlLItQApa0AlL 7tQApa0AlL(tQApa0AlL tQAa0AlLtQAa0AlL`sQA a0AlL`sQAԐa0AjisQA a0AlL`sQA`a0AlLsQAa0AlLsQA a0AlL`sQAa0AlL`sQAa0AlL`osQA a0AlL`csQAa0AlL\sQAa0AlL`WsQA`a0AlL TsQA03a0AlLPsQAa0AlL@QsQA@`0AlL@FsQA֫`0AtFsQA`0AlLGsQA]`0AlLUsQA[`0AlLbsQAb`0AlL jsQA^`0AlL`rsQA0V`0AlL~sQApK`0AlLsQA:`0AlLsQA `0AlLsQA_0AlLsQAp_0AlLsQA0_0AlLsQAph_0AlL`sQAA_0AlL`sQA(c>_0Az3sQA"_0AlL{sQA^0AlLisQAp^0AlL@WsQA^0AlL`MsQA`^0AlLHsQA$Ix&^0AFh|IsQA]0AlLJsQA]0AlL@LsQA>d]0AtgKsQA@Y]0AlLKsQA]0AlLGsQA\0AlL`?sQA\0AlL6sQAp\0AlL,sQA]\0AlL&sQAB\0AlL!sQA\0AlLsQA\0AlL@sQA\0AlL sQA[0AlLsQA[0AlLrQA[0AlL@rQA[0AlLrQA0}[0AlL@rQA@n[0AlLrQAF[0AlLrQA"[0AlLrQAZ0AUrQAZ0AlLrQAZ0AlL@rQAZ0AlL@rQAZ0AlLrQAeZ0AlLrQAJZ0AlL@rQA0AlL`svQA7=0AlL@bvQA<0AlLZvQA@<0AlL ZvQA<0AlLYvQA<0AlLYvQA2<0AlL{vQAi<0AlLvQA;0AlL`vQA@:0AlLvQA:0AlLvQAT90AlLvQA'90AlL@vQA90AlL vQA@90AlLvQA@90AlLvQA90AlLvQA90AlLwQA90AlL`wQA90AlL $wQAx90AlL-wQA@\90AlL`2wQA+90AlL9wQA 90AlL`DwQA80AlLRwQA@80AlLcwQA@90AlLmwQA<90AlLrwQAT90AlLywQAW90AlL@wQA@ 90AlLwQA80AlL`wQAz80AlLwQA:80AlLwQA70AlLwQA70AlLwQA70AlL`wQAa70AlLwQA970AlL@wQA70AlL@wQA60AlLwQA@60AlLwQA@60AlLwQA60AlLwQA60AlL wQA60AlL@wQA@60AlL wQA@60AlLxQA@60AlLxQA60AlL xQA@60AlLxQA@60AlLxQA60AlL xQA60AlL xQA60AlL`"xQA60AlL#xQA70AlL@$xQA70AlL$xQA+70AlL #xQA;70AlL"xQAY70AlL`xQA@j70AlL`xQA70AlLxQA70AlLxQA70AlLxQA70AlL`xQA70AlL xQA70AlL xQA80AlLxQA680AlLxQAS80AlL xQAp80AlL wQA80AlL`wQA@80AlL@wQA80AlLwQA80AlLwQA80AlLwQA90AlLwQAE90AlLwQAn90AlL wQA@90AlLwQA90AlLwQA90AlLwQA+:0AlLwQA@H:0AlLwQA[:0AlLwQAl:0AlLwQAn:0AlLxQAy:0AlL` xQA@:0AlL xQA:0AlL@xQA:0AlL+xQA:0AlL@5xQA@y:0AlL`=xQA@u:0AlLDxQA@]:0AlL@LxQA@B:0AlLYxQA%:0AlL@gxQA:0AlLsxQA@90AlL xQA90AlLxQA90AlLxQA90AlLxQA90AlLxQA}90AlL`xQAc90AlLxQAL90AlL xQA"90AlLxQA90AlL`xQA@80AlLxQA@80AlLxQA80AlLyQA80AlL yQA80AlLByQA70AlLHyQA70AlL`fyQAS70AlLyQAN70AlLyQA@I70AlLyQA@@70AlL@yQA,70AlLyQA70AlLyQA60AlLyQAu60AlL@yQA160AlL yQA@50AlLyQAA50AlL zQA40AlL@zQA40AlLzQA40AlLzQA40AlL0zQA40AlL@ zQAf30AlL zQA20AlL]zQA20AlL_zQA530AlL`zQA30AlLzQA@J40AlL@zQA50AlLzQA50AlLzQA50AlLzQA50AlLzQA50AlLzQA60AlL }zQA*60AlLvzQAI60AlLpzQA@v60AlL@kzQA@60AlLezQA60AlLdzQA370AlLgzQAq70AlLhzQA@70AlLgzQA70AlLgzQA=80AlL@hzQA@y80AlLhzQA80AlLhzQA80AlLrzQAS90AlLwzQA@P90AlLzQAS90AlL`zQAR90AlL`zQAU90AlLzQAZ90AlLzQAT90AlLzQAM90AlLzQAI90AlLzQA@@90AlL zQA@990AlL@zQA290AlL{QA(90AlL {QA80AlL2{QA80AlL@E{QA280AlLh{QA@70AlL_{QA60AlLa{QA60AlLe{QA60AlL@q{QA@60AlL@z{QA60AlL@{QA60AlL{QAh60AlL@{QAM60AlL{QA=60AlL {QA60AlL{QA@70AlL{QA70AlL{QA(80AlL@{QAW80AlL`{QA80AlL{QA80AlL{QA80AlL`{QA80AlL@{QA80AlL{QA@u80AlL` |QAQ80AlL|QA780AlL`|QA$80AlL '|QA@ 80AlL/|QA70AlL9|QA70AlLC|QA@Z70AlLp|QAU70AlLr|QA60AlL|QA60AlL|QA40AlL O}QA{40AlLX}QA30AlLE}QA@30AlLI}QA@10AlL`r}QAf40AlLL~QA 50AlL@~QAM40AlL~QA@30AlL~QA@q30AlL~QA30AlL@~QA20AlL@~QA30AlLQAp20AlL ^QA}20AlL`QA20AlLaQA20AlLxQA@'30AlLvQA@330AlL~QA:30AlLQA30AlLQA`50AlL QA@50AlL QA@30AlL@QA@l30AlLQA{30AlLQA30AlLQA@30AlLഀQA@30AlLༀQA30AlL€QA@30AlL`ȀQA@30AlLЀQA30AlLՀQA40AlLڀQA#40AlLQA;40AlL@QA@N40AlLQAw40AlLQA40AlLQA40AlLQA950AlLQA50AlLQA80AlLVQA80AlLZQA80AlL[QA@90AlL`ZQA290AlLSQAN90AlL@IQA}90AlL`9QA90AlLQA90AlLQA@90AlLQA90AlLQA:0AlL@QA@:0AlLQA9:0AlLQAY:0AlLQA@e:0AlLQA@:0AlL ӀQA:0AlLÀQA@;0AlL@QA9;0AlLQAf;0AlLQA;0AlL@QA<0AlL`PQAJ<0AlLJQA@u<0AlLKQA@<0AlLLQA<0AlLpOQA<0AlL@PQA@<0AlLNQA=0AlLJQA<=0AlL`FQAo=0AlL?QA=0AlL:QA@=0AlL/QA=0AlL#QA>0AlLQA>0AlLQA>0AlLQA>0AlLQA@'?0AlLQAd?0AlL@ QA@?0AlLQA@0AlL;QAXA0AlLXQAA0AlLrQA@B0AlL`}QAC0AlL@QAeC0AlLQA@C0AlLQA@0D0AlLQAD0AlL`QAD0AlLŀQA E0AlL΀QA(E0AlLπQA@gE0AlL ׀QAE0AlL߀QAE0AlL`QAF0AlL QA2F0AlLQAOF0AlL QAsF0AlL QAF0AlLQA@F0AlL$QAF0AlL@8QAYG0AlLVQA@cG0AlL^QAAH0AlLQAH0AlL@QAH0AlLҁQACI0AlL@ށQA@\I0AlL@QAI0AlL@QA/J0AlL@QA@J0AlL QA6K0AlL@QAK0AlL&QAAL0AlL =QAL0AlL`EQAL0AlLNQAM0AlLRQAO0AlLXQAN0AlL`ǂQA@O0AlLQANP0AlLQA2Q0AlL ԂQAuQ0AlL݂QAQ0AlLQA'R0AlLQA@{R0AlLQAR0AlLQA\S0AlLQAS0AlL(QA+T0AlL5QAhT0AlL;QAT0AlL@QAT0AlLEQA0U0AlLKQAU0AlL`RQA@U0AlL`[QA&V0AlLbQA@uV0AlL@iQAV0AlLpQA W0AlLyQA@UW0AlLQApW0AlL@QA@W0AlL QAW0AlLQAX0AlLQAGX0AlLăQAX0AlLփQAX0AlL QAX0AlL`QAX0AlL`QAY0AlL`QA@Y0AlLQA%Y0AlL`QA@(Y0AlLQA2Y0AlLQALY0AlL QA_Y0AlL&QAqY0AlL .QAtY0AlL;QA@rY0AlL GQAgY0AlL tQAXY0AlL@DŽQA@V0AlL`QAVX0AlL`QAX0AlLpQAX0AlLpQAjR0AlLPQAR0AlL@QAQ0AlL@QAQ0AlL QA7R0AlL $QAdR0AlL'QAR0AlL ,QAR0AlL2QAR0AlL9QA@R0AlLLQAR0AlLTQAR0AlL^QAzR0AlLdQA@R0AlL`jQAR0AlL`nQAR0AlL wQA@R0AlLQAR0AlLQAS0AlL@QA)S0AlLQAWS0AlL QAS0AlLƈQAS0AlLֈQAS0AlLQAT0AlLQA@ T0AlLQAT0AlLQA8T0AlLQA@VT0AlL1QA@hT0AlL@QAyT0AlLRQAT0AlLnQA@T0AlL@QAT0AlLQAT0AlL@QA@T0AlL`QAU0AlLཉQA@+U0AlL`ωQA[U0AlL`QA@zU0AlLQA~U0AlL@QA@U0AlL`QAU0AlL@QAU0AlLQA@'V0AlL2QAaV0AlL@GQAV0AlL`QA8W0AlL QA@W0AlL`QA X0AlLQA#X0AlLQA@nY0AlLQA@~Y0AlLQAY0AlL๋QAY0AlLƋQAY0AlLӋQA@Y0AlLQAY0AlLQAY0AlL8QAY0AlLQA@Y0AlL@QAY0AlLQAY0AlLQAY0AlL`QAY0AlL@ QA}Y0AlL&QA7Y0AlL@:QAW0AlL`QAT0AlLppQA^T0AlL0}QA@ T0AlLQAS0AlL QAP0AlL QAO0AlLQAO0AlL`QAJ0AlL(LQALH0AҲfVQAH0AlL QAH0AlLQAH0AlLQAH0AlLQA!I0AlLQAQI0AlLQArI0AlL QA@I0AlLǏQAI0AlL̏QAI0AlLՏQAI0AlLڏQA@ J0AlLQAJ0AlL QA@ J0AlLQA9J0AlL` QA?J0AlLQA6J0AlL@$QA$J0AlL.QAJ0AlL6QAJ0AlLAQAJ0AlL MQAJ0AlLXQA J0AlL aQA@J0AlLiQA9J0AlL@oQA@NJ0AlL uQAfJ0AlL|QA{J0AlLQA@J0AlL`QA@J0AlLQAJ0AlL`uQALJ0AtQA K0AlLtQAK0AlLtQA(K0AlLxQAdK0AlLxQApK0AlLzQAK0AlL}QAK0AlLp~QA@K0AlLQA@K0AlL`QAK0AlLQAK0AlL@}QAL0AlL{QA@GL0AlL`}QA{L0AlL`QAL0AlLQAL0AlLQAL0AlLॐQA@L0AlL@QA M0AlL QA.M0AlL̐QA@M0AlLאQA@|M0AlLސQA@M0AlLېQAM0AlLڐQAM0AlLQAN0AlL QA@CN0AlLQA}N0AlLQAN0AlLQAN0AlLQAN0AlLQA@O0AlLQA@RO0AlLQA@O0AlLQA@O0AlL QAO0AlLQAP0AlL"QA@TP0AlL@0QA{P0AlL`.QAP0AlL -QA@P0AlLQAP0AlLQABQ0AlL QAQ0AlL`QAQ0AlL@$QAQ0AlLHQA@lQ0AlLSQA@[Q0AlL`\QAQ0AlL`eQA@Q0AlLkQAQ0AlLrQAFR0AlL{QAR0AlL}QAR0AlLQAR0AlL@QAR0AlLQA@%S0AlLQA$S0AlL0QA"S0AlL࿑QAS0AlLPQA S0AlL`ˑQAR0AlLPΑQAR0AlLԑQAR0AlLޑQA@R0AlLQAyR0AlLQAR0AlLQAR0AlLQA}R0AlL QA_R0AlLQAR0AlL#QAQ0AlL+QAQ0AlL,QA@QQ0AlL@/QA@1Q0AlL2QAQ0AlL@4QA@Q0AlL@QA@Q0AlLRQAQ0AlL`QAQ0AlLpcQAQ0AlL jQAP0AlLpoQAP0AlLvQAP0AlL~QA@P0AlL@QAP0AlLQAQ0AlL`QA3Q0AlLQAXQ0AlLQAQ0AlL@QA@Q0AlLQAQ0AlLQA@Q0AlLPQA@R0AlLQA5R0AlL@QANR0AlL@QAQR0AlLQATR0AlLhQA@`R0AlLQAeR0AlLདྷQAqR0AlL ˒QA\R0AlLՒQA@CR0AlLQA@;R0AlL QA@.R0AlLQA/R0AlL (QATR0AlL4QA@gR0AlLAQArR0AlLUQApR0AlL^QA@pR0AlLaQAqR0AlLPgQAsR0AlLoQAtR0AlLQAR0AlL@QAR0AlL@QAR0AlL QAR0AlL`QA@R0AlLQA@ S0AlLQAS0AlL`QAS0AlLQA@2S0AlLēQA;S0AlLΓQA5S0AlLٓQA$S0AlLߓQA@S0AlLQAS0AlLQAS0AlL`QA%S0AlLQATS0AlLQA@}S0AlLQAS0AlL@QAS0AlLQAT0AlL0QAT0AlLQA2T0AlLQA@KT0AlLQA}T0AlL,QAT0AlL?QAT0AlL`JQAT0AlL@[QAT0AlL`cQAT0AlLkQA U0AlLvQAU0AlLQA?U0AlLQA_U0AlLQA@pU0AlLQA@U0AlL@QAU0AlLQAU0AlLpQAU0AlL QAV0AlLඔQA'V0AlLQAMV0AlL`QAV0AlLดQAV0AlLດQA@V0AlLཔQA@W0AlL`ƔQAMW0AlL ̔QA@W0AlL@єQAW0AlLהQA@W0AlLڔQAX0AlL0QAAX0AlLQAUX0AlLQA@X0AlLQAX0AlLQA+Y0AlLpQAY0AlLQAY0AlL` QAZ0AlL 'QAYZ0AlL.QAZ0AlL:QA@Z0AlLFQAP[0AlL@RQA[0AlL`^QA[0AlLjQA]\0AlLvQA@\0AlLQA]0AlLQA]0AlLQA@$]0AlLQAf]0AlLQA]0AlLQA@^0AlLకQA$^0AlL`QA@o^0AlLQA^0AlLQA^0AlLĕQA!_0AlL ƕQA|_0AlLǕQA_0AlL˕QA`0AlLϕQA:`0AlLϕQA@``0AlLϕQA2a0AlLΕQA0AlL|QAD>0AlL|QAw>0AlL|QA>0AlL|QA@>0AlL@|QA@>0AlL|QA>0AlL|QA>0AlL|QA>0AlL`|QA ?0AlL|QA@.?0AlL}QAU?0AlL }QA?0AlL}QA?0AlL }QA?0AlL`}QA@%@0AlL"}QADA0AlL^}QA@r?0AlL}QA@f?0AlL}QA\?0AlL}QA@ <0AlL@}QA:0AlL}QA:0AlL@}QA:0AlL }QAl:0AlL`}QA}:0AlL}QA;0AlL}QA 90AlLZ}QAb80AlL}QAq70AlL q}QA@60AlL@h}QA60AlL@m}QA60AlL@v}QA`60AlLd}QA@50AlL `}QA60AlL`|QA "70AlL|QA@870AlL|QA\70AlL|QA@70AlL`}QA70AlL }QA80AlL`}QA?80AlL`"}QAs80AlL.}QA@80AlL8}QA80AlLI}QA80AlLS}QA 90AlLZ}QA .AlL0QA/AlL QA.AlL0QA.AlLQAW.AlLQA.AlLpQA.AlL0QA$.AlLQAk.AlL`QA.AlLQA.AlLQA.AlL@QA.AlLpQA .AlLQA.AlLPQAu.AlLQA.AlLQAZ.AlLpQA.AlL@QAl.AlLQA.AlLQA,.AlLQA.AlL@QAb.AlLЏQA .AlLQAy.AlLЌQA.AlLQA<.AlLQA^.AlL QAw.AlLQA.AlLPQA.AlLQA.AlL`QA7.AlLQA.AlLQA.AlL@QA.AlLQA .AlL0QAL.AlLQA.AlLQA.AlLЇQA.AlLQAe.AlLPQAK.AlLЂQA.AlLЁQAI.AlL0QA.AlLQA.AlLQA).AlL0QA.AlL ~QA.AlL@~QAU.AlLQA.AlLQAA.AlLQA.AlLzQA.AlL |QA.AlLyQAt.AlLzQA.AlL`{QA.AlL`|QAI.AlL0|QA.AlL|QA.AlL |QA.AlL |QA7.AlLp{QA~.AlLzQA.AlL zQA.AlLyQA0.AlLPxQAs.AlLyQA.AlLwQA.AlLyQAA.AlLxQA.AlL yQA.AlLPyQA.AlLpyQAY.AlL0xQA.AlLpyQA.AlLxQA;.AlLwQA.AlLvQA.AlLPvQA-.AlLuQAa.AlLpvQA.AlLvQA.AlLvQA.AlLwQA.AlL@yQA.AlL wQA<.AlLxQAy.AlLvQA.AlLwQA.AlLuQA .AlLuQA*.AlL0uQAb.AlL`wQA.AlLPyQA.AlL@yQA.AlLxQA.AlLvQAP.AlLvQA.AlLvQA.AlLpwQA.AlL wQA).AlLwQAc.AlLvQA.AlLyQA.AlL yQA.AlLxQAH.AlL0yQA{.AlLyQA.AlL`yQA.AlL`zQAB.AlL`{QA.AlLyQA.AlLzQAV.AlL0{QA.AlLzQA.AlL{QA.AlLPzQA$.AlL}QAi.AlL{QA.AlL}QA.AlL@}QA3.AlL~QAk.AlL~QA.AlLP~QA.AlL}QA.AlL0~QAR.AlLQA.AlLQA.AlLQA/AlLQA[/AlLQA/AlLQA /AlL@QAh/AlLQA/AlL0QA/AlL QA/AlL0QA/AlLЂQA$/AlLPQAa/AlLQA/AlL`QA/AlLPQA/AlLQAV/AlLPQA/AlL@QA/AlL`QA/AlLvQA/AlLsQA%/AlL sQA/AlLoQA/AlL gQA/AlL`QAO/AlL]QA/AlL`VQA/AlLQQA/AlLLQA`/AlLBQA/AlL6QA/AlL@0QAg/AlL/QA/AlL,QA/AlL'QA/AlLQA/AlLQA /AlLQA/AlLQA/AlL QA/AlL QA.AlL@QA.AlLQA.AlL@QA).AlL@QA.AlLQA\.AlL`QA.AlL QA.AlL`QA.AlL`QA.AlL`QA.AlLQA.AlL@QA.AlLQA.AlLQA.AlLQA.AlL QA.AlLQA.AlLvQA.AlL@gQA.AlL\QA.AlLPQA.AlLIQA.AlLBQA.AlL`7QA.AlL )QA.AlLQA.AlLQA.AlL QA.AlLQA.AlLQA.AlL QA.AlLQA.AlLQA.AlL QA.AlL@QA.AlL@QA.AlLQA.AlL QA.AlL@QA.AlLQA.AlLQA6.AlL@|QAD.AlL[QAC.AlL@LQAt.AlL@CQA.AlL 8QA.AlL-QA.AlL$QA.AlL@QA.AlL QA.AlL@QA.AlLQA.AlLQA.AlLQA.AlLQA.AlLQA.AlL`QAh.AlL`lQA[.AlL ]QAH.AlLIQA(.AlL/QA.AlLQA.AlLQA.AlL@QAG.AlL QA.AlL@QA.AlLQA.AlL`QA.AlL wQAm.AlL@rQA*.AlLhQA .AlL_QA.AlLXQA.AlL`SQA.AlLMQA.AlLBQA.AlL9QA.AlL`*QA.AlLQA.AlLQA.AlL QA.AlLQA.AlLQA.AlLQA.AlLQA.AlLQA.AlL@QA.AlLQA.AlL`QA.AlLsQAj.AlL@eQAD.AlL ^QA'.AlL@SQA.AlLJQA.AlL@QA.AlL:QA.AlL2QAo.AlL*QA5.AlLQA.AlLQA.AlLQA@.AlLX QA.AlL QAl.AlL QA..AlLQA.AlLQA.AlLQAw.AlLQAL.AlL@QA.AlLQA.AlLQA.AlL`QA.AlLQA.AlL@{QA.AlLlQA.AlL@_QA.AlLQQA!.AlL QA.AlLQA.AlL` QA.AlL QA.AlLʼQAv.AlLQAD.AlL QA.AlL`QA.AlLQA.AlLQA.AlLQA{.AlLQAY.AlLQA.AlL@|QA.AlL@pQA.AlLeQA#.AlL\QA.AlLWQA~.AlL`JQA.AlL@+QA.AlLQA}.AlL@ QA5.AlL0QA.AlLQA.AlLpQA.AlLQAy.AlL@ QAO.AlL`QAJ.AlL` QAn.AlL`/QA}.AlL.AlL=QA.AlL`CQA.AlLHQA}.AlLRQAQ.AlLVQA.AlL]QA.AlLyQA.AlL{QA.AlL QA;.AlLQAl.AlL`QA.AlLQA.AlLQA;.AlLQA.AlL@QA_.AlL@QA.AlLQA`.AlL@QA.AlLঽQA.AlLࢽQAZ.AlL`QA.AlLॽQA.AlLQA.AlL QAD.AlLQA.AlL@ĽQA|.AlL½QA.AlL½QA.AlLĽQA0.AlL ƽQA.AlLʽQAg.AlL ʽQA .AlL@ǽQA.AlLQA.AlL QA.AlLQA.AlL`QA.AlLൽQAh.AlLQA3.AlLQA.AlLQA.AlL୽QA.AlLQAq.AlLQAD.AlLQA.AlL QA.AlLQA.AlLQAE.AlLQA.AlL~QA.AlL QA.AlL`QA<.AlL QA0.AlLQA.AlLQA.AlL QA.AlLQA.AlL`QA.AlL@QA.AlL |QA.AlLqQA.AlLiQAM.AlLdQA6.AlLZQAF.AlL`QQAf.AlL@FQA{.AlL.AlLռQA-.AlL`QA@4.AlL@QAM.AlLQAg.AlLQA@.AlL$QA.AlL(QA.AlL)QA_.AlL`)QA.AlL`0QA@y.AlL;QA@Y.AlLBQA%.AlL`IQA .AlLNQAb).AFh|UQA.AlLYQA@.AlLdQA.AlL zQA.AlLQA".AlLQAY.AlLQA@u.AlLQA.AlL`QA.AlLQA@.AlL@ĽQA@.AlLѽQA@.AlL޽QA.AlL@QAe.AlL QA@^.AlL`QAp.AlLQA.AlL` QAĺ.AlLQA .AlLQA7.AlL%QA{.AlL0QA.AlL?QA@.AlLOQA.AlL^QAݻ.AlL^QA,.AlLYQA.AlLVQA˼.AlLTQA.AlLLQA@0.AlLIQA@.AlLFQA.AlL KQA@..AlLOQA.AlLWQAӾ.AlLYQA3.AlL`^QA.AlL`QA.AlL eQA=.AlLkQAr.AlLnQA.AlLpQA.AlLwQA@B.AlL~QA@h.AlLQA}.AlLQA.AlLQA@.AlLQA.AlL QA@.AlLQA.AlLQAm.AlLþQA.AlLȾQA@.AlL`оQA&.AlL־QAL.AlLݾQA@.AlLQA@.AlL@߾QA".AlL`پQAX.AlL پQA@.AlL۾QA@.AlLQA.AlLQA@.AlLQAg.AlL@ QA.AlLQA.AlLQA.AlL QA.AlLQA.AlL@-QAp]U.AlL`5QA@.AlL@7QA.AlL:QA@.AlLAQA@a.AlL@GQA.AlL NQA.AlLYQA.AlLaQA.AlLjQA.AlLmQAe.AlL@qQA.AlLqQA7.AlLwQAa.AlL~QAp]F.A悫QA@.AlLQA.AlL QA.AlL QA.AlL੿QA.AlLQA%.AlL@QA^.AlLQA.AlLQAF.AlLͿQA.AlL ֿQA.AlLݿQAT.AlLQA .AlL QA.AlLQA@.AlLQA].AlL@QA.AlL@QA.AlLQA.AlLQAk.AlL@%QA(.AlL@-QA.AlL3QA.AlL ;QA.AlLAQA?.AlLIQAO.AlLVQAu.AlLZQA.AlL`QAw.AlLiQAE.AlLqQA.AlL wQA.AlL|QA.AlLQA.AlLQA.AlLQA.AlL`QA.AlLQA$.AlL QAg.AlL@QA4.AlLQA@.AlLQA.AlLQA@.AlLQA.AlLQA@.AlLQAW.AlL@QA.AlL`QA.AlLQA.AlLQA .AlL`QAb.AlLQA~.AlLQA~.AlLQA@a.AlLQA].AlL QAy.AlLQA.AlL QA@.AlL`QApT.AVs1<QA.AlL@QAA.AlLQAm.AlL`QA.AlLQA.AlL QA,.AlLQAk.AlLQA.AlLQA.AlL`QA@ .AlL` QA.AlLQA.AlLQA.AlLQA@w.AlL`.QA@.AlL5QAg.AlL9QAu.AlL AQA.AlL`EQA.AlLKQA@!.AlLTQAp.AlL@[QA@.AlL ]QA.AlL_QA.AlLdQAE.AlL hQA@.AlL@mQA.AlLrQA.AlL vQA".AlL@{QA@ .AlL@QA.AlLQA.AlLQA.AlLQA@O.AlLQA.AlLQA.AlLQA.AlL QA.AlLQA$.AlL`QAv.AlLQA.AlLQA.AlL`QA@.AlL@QA.AlLQA@ .AlL@QA.AlL`QA.AlL`QAs.AlLQAN.AlLQA+.AlLQA.AlLQA@.AlLQA@w.AlLQA@u.AlLQA@d.AlL QAJ.AlL QA!.AlLQA@.AlLQA.AlL QA.AlLQAG.AlLQA!.AlL QA .AlL@"QA.AlL+QA .AlL@6QA-.AlL;QAm.AlL@@QA.AlLIQA.AlLUQAp.AlL`]QA^.AlL hQAQ.AlLrQA@.AlL@{QA@.AlL}QA.AlL@QA@.AlL@QA.AlLQA@#.AlLQAJ.AlL`QA;.AlLQA.AlL@QA@.AlLQA@.AlL`QA.AlL QA.AlLQA.AlLQA.AlLQA@.AlL QA.AlLQA.AlLQA.AlL@QA.AlLQA=.AlLQA@.AlLQA.AlL`QA.AlLQA.AlL QA@X.AlLQA2.AlLQA.AlL(QA.AlL@6QA.AlL=QAm.AlLHQA1.AlL@QQA.AlLVQA.AlL^QA\.AlLcQA6.AlLjQA@.AlLvQA .AlL@QA.AlLQA.AlL@QA.AlL QA@j.AlLQA@.AlLQA<.AlLQAM.AlLQA_.AlLQAe.AlLQAQ.AlLQA6.AlLQA.AlL QA.AlLQA.AlL QA.AlLQA9.AlL@IQAd.AlL UQA.AlL^QA.AlLiQA.AlL`uQA.AlLQA.AlLQA.AlL@QA.AlLhQA.AlLQA.AlLQA.AlLQA.AlLQA.AlLQA.AlLQA.AlL QA@^.AlLQAK.AlLQA1.AlL QA.AlL`QA.AlL$QA.AlL0QA .AlL@>QA@.AlLKQA".AlLYQA/.AlLiQA@:.AlLsQAU.AlLQAo.AlL@QAxM.A!QA.AlLQA.AlLQA.AlLQA=.AlLQA\.AlL@QA.AlLQA.AlLQA.AlL@QA.AlLp QA'.AlL QA.AlLQA.AlLPQA.AlLQAN.AlLQA.AlL0QA9.AlLQA.AlL@QA.AlLpQA.AlLQA.AlLQA.AlL@QAO.AlL QA.AlL`QA.AlL0QA @J/AlL -xQA/AlLqQA/AlL cQAf/AlLWQA;/AlL`MQA//AlLEQA/AlL6QAտ/AlL2QA/AlL+QA/AlL %QA/AlL QA/AlL QA=/AlLQA/AlL@QA/AlL QAB/AlLQA8/AlL@QA/AlLځQA/AlL༁QAb/AlLQA/AlLQAf/AlLQA/AlL QA/AlLQA8/AlL QA/AlL`QA/AlL{QA/AlL@cQA/AlL@dQAp/AlLcQA /AlLeQA/AlLhQA/AlLkQA/AlLmQA/AlLqQAd/AlL QAp/AlLQA/AlL|QA/AlL vQA/AlL[QA/AlL 8QA/AlLQA@/AlL QA/AlL߀QA/AlL`QA-/AlLQAj/AlL`GQA/AlL@QA/AlL :QA"/AlLQA/AlLQA/AlLQA/AlL`QA}/AlLQA7/AlL~QA/AlL`~QA/AlL`~QA/AlL ~QA/AlL@~QAr/AlL ~QA//AlL~QAA/AlL~QAN/AlL ~QAv/AlL~QA/AlLs~QA/AlLV~QA/AlL ?~QA/AlL6~QA/AlL@'~QA1/AlL`~QAN/AlL`~QA/AlL}QAN/AlL`}QAC/AlL}QA/AlLo}QAH/AlLB}QA/AlL&}QA/AlL}QA/AlL@}QA/AlL@|QA/AlL|QA/AlL|QA/AlL|QA/AlL@|QA/AlL |QA/AlL|QA/AlL|QA/AlL|QA6/AlL|QA*/AlL|QA/AlL0L|QA/AlLE|QA!/AlLD|QA?/AlL =|QAg/AlL@2|QAd/AlL*|QAJ/AlL!|QAV/AlL |QAl/AlL |QA\/AlL|QAl/AlL {QAj/AlL{QAx/AlL i{QA/AlLN{QA/AlLH{QA/AlL?{QAX/AlL7{QA/AlL !{QA/AlL{QAD/AlL`{QA/AlL{QA/AlL{QA/AlL zQA|/AlL@zQA/AlLzQA/AlL zQA/AlLzQA/AlLzQA/AlLzQAr/AlL zQA+/AlLzQA/AlL zQA/AlLzQA%/AlL@zQA/AlLzQA/AlL zQA/AlL{QA/AlL {QAn/AlL zQA/AlL zQAv/AlL@{QA/AlL{QA/AlL@{QA&/AlL{QA/AlL {QA|/AlL@{QA&/AlL`"{QA/AlL%{QA{/AlL({QA@/AlL`'{QA/AlL-{QAy/AlL/{QAq/AlL ${QAf/AlL {QAs/AlL {QA/AlL@zQA/AlLzQA/AlLzQA/AlLzQA/AlLzQA/AlLzQAh/AlLzQA\/AlLzQAX/AlL@zQAB/AlLzQA/AlL|zQA/AlLszQA/AlLhzQA&/AlL@czQA/AlL@TzQA/AlLIzQA6/AlL ?zQA/AlL0zQA/AlL zQAq/AlL`zQA/AlLzQA}/AlLyQA/AlL`yQA//AlL@yQA/AlLyQA/AlLyQA:/AlL`yQA/AlLyQA/AlL`yQA/AlL yQA>/AlL yQAq/AlL@yQA/AlLyyQA/AlLpyQA/AlL@gyQA/AlLXyQA/AlLQyQA/AlL@OyQA`/AlLKyQA/AlL@JyQA/AlLKyQA/AlL`JyQA`/AlL`GyQA'/AlLEyQA/AlL=yQA/AlL5yQAo/AlL`.yQA'/AlL@'yQA/AlL"yQAa/AlLyQA/AlLyQA/AlLyQAI/AlLyQA/AlLyQAd/AlL xQA/AlLxQAL/AlLxQA/AlL@xQAT/AlLxQA/AlLxQA0/AlL`xQA/AlLxQAM/AlL xQA/AlLxQAg/AlLxQA/AlLxQA/AlL xQA:/AlL`xQA /AlL0xQA/AlL@xQAv/AlL`xQA/AlLxQA/AlLxQA/AlLxQA5/AlLxQA/AlLxQA|/AlL~xQA/AlL`{xQA/AlLyxQAi/AlL yxQA,/AlL zxQA/AlL`zxQA/AlL{xQAt/AlL|xQA/AlL~xQA/AlL~xQAv/AlL|xQA=/AlL ~xQA/AlL@xQA/AlLxQA`/AlL@xQA/AlLxQA/AlL xQAg/AlLxQA"/AlLxQA/AlL xQA/AlL@xQAh/AlL@xQAC/AlL@xQA/AlLxQAr/AlL`xQA/AlLxQA/AlL@xQA=/AlLxQAxQAZ/AlL`5xQAxQAT/AlLCxQA/AlLGxQAج/AlLIxQA/AlLMxQA,/AlL SxQA/AlLWxQA/AlL[xQAV/AlL@_xQA/AlL`xQAժ/AlLbxQAZ/AlL`xQA$/AlL _xQA/AlL^xQA/AlL_xQAE/AlL_xQA/AlL@^xQA/AlLWxQAb/AlLWxQA3/AlL \xQA/AlL`xQA/AlL bxQA|/AlL`cxQA7/AlL@dxQAĦ/AlL@gxQAy/AlL`ixQA!/AlLexQA/AlL cxQAp/AlLaxQA/AlL_xQA/AlL _xQAH/AlLbxQA/AlLexQA/AlLfxQA/AlL exQAF/AlLexQA /AlL`gxQAǢ/AlLixQA/AlLexQAs/AlL`wxQA/AlL {xQA/AlL@~xQA/AlLxQA/AlL xQA9/AlLxQA/AlLxQA/AlLxQA9/AlL xQA/AlL`xQA/AlL xQA/AlL`xQA/AlLxQAd/AlLxQAd/AlLxQAa/AlLxQAK/AlL xQA/AlL@xQA/AlLxQA՝/AlLxQA/AlLxQA`/AlL@xQA*/AlLxQA/AlLxQA/AlLxQAc/AlL`xQA3/AlLxQA/AlLxQA/AlL@xQAm/AlLxQA;/AlLxQA/AlLxQAs/AlL xQA/AlL xQA/AlLxQAK/AlL xQA/AlLxQA[/AlLxQA/AlLxQA/AlLxQA'/AlLxQAۖ/AlLxQAv/AlLxQA%/AlL xQA/AlLxQAѕ/AlLxQAm/AlLxQA /AlLxQA/AlLxQA?/AlLxQA/AlLxQAv/AlL`xQA/AlL xQA~/AlLxQA/AlLxQA/AlLxQA(/AlL xQA/AlLxQA/AlLxQA/AlLxQAj/AlL`xQA/AlLxQAǏ/AlLxQAl/AlL@xQA8/AlLxQA/AlL`xQA/AlL xQAC/AlL xQA/AlL xQA/AlLxQA/AlLxQAQ/AlLxQA/AlLxQAŌ/AlL@xQA/AlL xQAw/AlL@yxQAe/AlLnxQAA/AlL _xQAȋ/AlL``xQAh/AlLcxQA/AlL gxQA/AlLjxQAL/AlLuxQA/AlL}xQA/AlLxQAL/AlLxQA/AlLxQA҈/AlL@xQA0/AlLxQA/AlLxQA/AlL xQAR/AlL@xQA/AlL@xQAņ/AlL`xQA/AlL xQAy/AlL`yQAi/AlL@yQAV/AlLPyQAQ/AlL`yQAK/AlL(yQA=/AlL4yQAA/AlLByQA6/AlLRyQA/AlL@]yQA/AlLgyQA/AlLtyQAd/AlLyQAJ/AlL@yQAP/AlL`yQAh/AlL@yQA/AlL`yQA/AlLyQAɅ/AlL@yQA/AlLyQA܅/AlLyQA/AlLyQAK/AlL yQA{/AlL@yQA/AlLzQA/AlL@zQAY/AlL"zQA/AlL.zQA/AlL7zQA/AlLCzQA/AlL OzQA/AlLSzQA|/AlL_zQAu/AlLozQA/AlLyzQA/AlLzQA/AlLzQAc/AlL zQAH/AlLzQA2/AlLzQA/AlL@zQA/AlLzQA/AlL@zQA/AlLzQA /AlL zQA/AlLzQA%/AlL zQA%/AlLzQA/AlLzQA҆/AlL`{QA-/AlL{QAN/AlL{QA~/AlL{QA/AlL@&{QAʇ/AlL1{QA/AlL<{QA/AlL@G{QA!/AlLQ{QA9/AlLY{QAL/AlL`_{QA/AlLe{QAψ/AlL@f{QA/AlLg{QA/AlLr{QA'/AlL|{QA3/AlL{QAI/AlL`{QAU/AlL{QAi/AlL{QA/AlL`{QA/AlL{QA/AlL{QA /AlL@{QA>/AlL{QA^/AlL`{QA/AlL`{QA/AlL{QA/AlL{QA/AlL{QA//AlL`|QA@/AlL|QAQAʣ/AlLGQA/AlLTQA/AlL]QAm/AlLdQA/AlL@oQA/AlL|QA/AlLQA/AlLQAD/AlLQAp/AlLQA/AlLQA̦/AlLQA /AlLQAS/AlLQAv/AlLQA/AlL QAç/AlL QA/AlLQA6/AlL`QA/AlLQA/AlLQAҨ/AlL`QA /AlLQA?/AlL@QA^/AlLQA/AlL QA#/AlL QA/AlLQA /AlL`QAr/AlL@QA/AlL@!QA/AlL@,QA%/AlL@3QA/AlL:QA/AlL@DQA/AlL PQAS/AlL\QA/AlL eQA/AlLnQAH/AlLtQA/AlL`zQA/AlL`QAO/AlL}QAӯ/AlL@~QAF/AlLQA/AlLQAհ/AlLQA/AlL`QA/AlLQAa/AlLQA/AlL຀QA(/AlL ĀQA&/AlL ΀QAs/AlLЀQAڳ/AlL ЀQA1/AlLՀQAh/AlL ـQA/AlLڀQA/AlL݀QA/AlLQA /AlLQAJ/AlL@QAp/AlL QA/AlLQA/AlLQA/AlLQA/AlLQAŵ/AlL`QAߵ/AlL #QA/AlL+QA/AlL@1QA׵/AlL`9QA/AlLDQA/AlL NQA[/AlLUQAW/AlLZQAR/AlL@aQAv/AlL`mQA`/AlL@wQAs/AlL@QAܵ/AlLQA/AlLQA6/AlLQA/AlLQA/AlL QA/AlLQA/AlLQA=/AlLQAK/AlL`QAI/AlLQA/AlL@āQA/AlĹQA/AlL`ՁQA/AlL݁QA'/AlLQAW/AlLQA/AlL QAø/AlLQA/AlL QA/AlL`QAS/AlL QA/AlL@#QA/AlL $QAA/AlL%QA/AlL+QA/AlL@0QA/AlL5QA /AlL;QA_/AlL>QA/AlLQA/AlL@8QA/AlL@0QA/AlL@*QA/AlL"QA/AlLQA;/AlL QAP/AlLQAk/AlL QA/AlL@QA/AlL`نQA/AlL ̆QAt/AlLņQA/AlLQA/AlLQA/AlLආQA/AlLQA/AlLQA</AlLQA[/AlL QAp/AlLQA+/AlLQA/AlL QAc/AlLQA /AlLQA/AlLzQA/AlLsQA)/AlLkQA/AlLgQA/AlLdQA6/AlLaQA|/AlL`[QA/AlLQQAM/AlLBQA/AlL@6QA/AlL%QA/AlLQA/AlL QA;/AlLQAH/AlL QA/AlL@QA/AlLԅQA/AlLDžQA/AlL`ŅQA/AlL@QA/AlLQA/AlL໅QA/AlL`QA>/AlL QAj/AlLQA/AlLQA/AlL@QA# /AlLఅQA= /AlLQAl /AlLଅQA| /AlLQA /AlLQAv /AlLQA[ /AlLQA9 /AlLQA /AlL`QA/AlLQA/AlLQAw/AlLQAJ/AlL`QA-/AlL`QA/AlL`QA/AlL`QA/AlLyQA/AlL@wQA/AlLrQA/AlLoQA/AlLlQA/AlLiQA/AlLhQA /AlLhQA!/AlLfQA\/AlL@iQA/AlLmQA/AlL`nQA /AlLeQAg /AlLXQA /AlL`KQA /AlL?QA /AlL7QA /AlL0QA /AlL@*QA /AlL#QA /AlL QA /AlL QA /AlLQA /AlLQAU /AlLQA /AlLQA /AlLQA/AlLQA/AlLQA/AlLQA/AlL`QA/AlLׄQAp/AlLDŽQA[/AlL QA/AlL QA/AlL@QA/AlL`QA/AlLQA/AlLQA/AlLQAn/AlLQAT/AlLQAG/AlLQA;/AlLQA!/AlLQA/AlLQA/AlLQA/AlL@QA/AlLQA/AlL`QA/AlLxQA/AlL qQA/AlL`QA/AlL NQA/AlLJQA/AlL DQA/AlL@QA/AlL ;QA" /AlL 6QA /AlL"QA /AlLQA /AlL`QAf /AlL QA /AlLQA /AlLQA /AlLQA /AlL ŃQA /AlLఃQA /AlLQA /AlLQA /AlL`QA /AlL zQA! /AlL xQAz /AlL`wQA /AlL`{QA /AlLQA /AlL QA /AlLQAT /AlLQAt /AlLQA /AlLQA/AlLsQA?/AlL@hQAn/AlLUQA/AlLEQA/AlL0QA/AlL@#QAz/AlL`(QA/AlL*QAH/AlL2QA/AlL#/AlLQA#/AlL QA"/AlLQA"/AlLځQA^"/AlL`ҁQA"/AlLƁQA!/AlLཱྀQA!/AlLกQA!/AlL࿁QAH!/AlLQA /AlLŁQA /AlL@ŁQAz /AlL ƁQA/ /AlLǁQA/AlLǁQA/AlLQAl/AlLQA7/AlLQA/AlLQA/AlLཁQA/AlLQA/AlL@ˁQAy/AlLցQAP/AlL܁QA>/AlLށQA/AlL`߁QA/AlL߁QA/AlL ށQA/AlLفQAg/AlLׁQA</AlL ԁQA/AlL`сQA/AlLƁQA</A>QAhg/AEQA@U)/Aw%QAκ /A֮QAؘ\/AyCQAؘ\hx/A42@ QAH/AyCQA懩/AE QAO9/AƎ>QA4/AX<@QAh/AA@QAWM/AX<`QA`W/AyCQA@/A\cH ~QAWM/AJvQAxo/AFqQA!/H/A\cHqQAtVg/AE@vQAtV/AX< {QAtVg/A|9QApg/AƎ>QAph/AyCQAP./AJQA/A|9QA`5/AyCࡁQA]e/AƎ>QAP /AFਁQA@OW/AAઁQApv/AG;@QA]/AJ`QA]W/AEQA(Ww/AFQA8"g;/AyCQA/AJ@QAf/AJQApfZ/AyCQA`V/AƎ>QAaӆ/AFQA*f/A\cHQAo/AƎ>QA FƆ#/AG;`QAHV /AƎ>QAVV /AyCQAJi /AE`QAj]f0 /A\cHQA* /A42@ zQAXؑB /AƎ>nQA@6 /A42@dQAjf /AA`WQAqG /AG;@SQA/Vo /A|9VQAhU /AyCTQA/AƎ>LQA0AUb/AE`EQA\ /A\cH >QA@*Je/AX<4QAjUk/AG;1QA(ad/AƎ>`0QA6&/A81QAhZ,/A`X/QAd/AA+QA./A42@ "QA@/AE"QAnTQ.A|9&QAn.AG;@+QA3.A8*QA8ST.AyC)QA7'.AyC QAX.AX< QA].AX< QAd.A42@ QA8\0T.AEQAw=W.A42@QA@#T5.A|9QA(sxd4.A42@QAw=TB.AF`QA(sxB.AX<؀QA?.A рQA(sx.AFЀQA`P.A8ـQA T.AFQA`c{.A42@QAhDd0.AyC QAS.A|9QA)cD.A42@QAh.A8QA D.A42@+QA.AX<`1QAi.AƎ>4QAPNr.A42@ RQAS.AFiQASK.A|9 QA ^.AG;ूQAxS.A|9QAPWz.AyC@QAR.A8`˂QA(.AG;@ӂQAJc(.A|9 ՂQAPWb.A|9ЂQAa.AX<`ɂQAՂ.A]6@łQA.A8`˂QA$.AG;ՂQAb.AXQA{q.AA`QAκb!.AG;%QA(rR.A42@%QA_m.AG; $QA`@R.AƎ>QAQb.AX<`!QA0l .A@%QA{.A8'QA.A|90QA(r.AE ?QA@wR.AX`QA[Rz.AƎ>@QA8.AyC@QAp .A42@ ƒQAR.A42@΃QAR.A]6QA(R.AyCQA`@R .AA QA$%.A|9QA@wR9.A42@QA`@A.A8`#QAκbL.AyC-QAr ].AA:QAr r.AG;@CQAxS.A8OQA[R.A42@[QA8.AƎ>dQAp b.AyCmQAS.AG;uQA[y.AyC`~QAr r.AyC QAh.AƎ>QAPWbl.AƎ>QA$Rm.AyCQA;s.AEQAPW.A|9@QA@O.AFh|UQA.AlL`QA.AlLQA9.AlLQA.AlLÄQA.AlLńQA!.AlLƄQAK.AlL@ńQAZ.AlLĄQA.AlLQA.AlL QA.AlLQAA.AlL@QA.AlL QA.AlL wQA3.AlL jQAl.AlL_QA.AlLRQA+.AlL`HQA.AlL@@QA.AlL?QA.AlL`DQA.AlLMQA.AlLVQA.AlL`aQA|.AlLlQAV.AlL@}QA@.AlLQA).AlL@QA .AlL QA.AlL@QA.AlL@؄QA.AlLQA.AlLQAc.AlL&QAD.AlLEQA.AlL@ZQA.AlL jQA.AlLQA.AlLQAg.AlL υQA@B.AlLQA.AlL "QAz.AlL`6QA^.AlLHQAM.AlLQQAo.AlLZQA.AlL_QA.AlLZQA.AlLQQA.AlL`JQA.AlL?QAo.AlL7QA.AlL :QAi.AlL@>QA.AlLEQAQ.AlL`OQA.AlLXQA4.AlLbQA.AlL@kQA=.AlLiQA.AlLeQA.AlL iQA.AlL@qQA.AlL zQA1.AlL`QA^.AlLQA.AlL QA.AlL@QA*.AlL@QAu.AlLQA.AlL@QA7.AlLQAs.AlLQA.AlLQAh.AlL`ĆQA.AlL ņQA.AlL`ƆQA.AlL@ˆQA.AlLΆQAY.AlLӆQA.AlLԆQA.AlLԆQA.AlL`ԆQA`.AlL`ԆQA.AlL؆QA.AlLQA.AlLQA.AlLQA.AlLQAu.AlL@QA..AlL+QA.AlL7QA.AlLEQA].AlL RQA.AlL _QA.AlLnQA.AlL`wQA.AlLQA.AlL`QAw.AlLQAA.AlLQA.AlLQA.AlLQA.AlLQA.AlLQAQ.AlL`QA.AlL`QA.AlLQA.AlL$QA.AlL1QAJ.AlL@?QA.AlLPQA.AlLcQA.AlLkQAl.AlL`tQA.AlL|QA.AlLQA.AlLQA.AlLQA.AlL@QA.AlLഈQA.AlL QA .AlL@QA(.AlLQA2.AlLQA,.AlL!QA1.AlL`.QA!.AlL 9QA.AlLAQA.AlL IQA.AlLOQA.AlLWQA.AlLbQA.AlL oQA.AlLyQAf.AlL`QA;.AlL`QA%.AlLQA.AlL@QA7.AlLQA.AlL༉QA.AlL@QA.AlLQAG.AlL`QA.AlL@QA.AlLQA.AlLQA.AlLຉQA.AlL‰QA%.AlL`͉QA*.AlL ׉QAG.AlLQAu.AlLQA.AlLQA.AlLQA*.AlLQAp.AlL QA.AlLQA.AlL QA.AlL@QA?.AlL`QAT.AlL`QA.AlL-QAv.AlL QA.AlLQA.AlLQA.AlL׉QA.AlL͉QA.AlL@ȉQA.AlL‰QA.AlLQA>\(/AlL@QAK0AlLpWQAhR/AlL@2QA0AlLQA0AlL=QAr0AlL2QA@0AlL`QA0AlLQA0AlLܦQA0AlLͦQA0AlLQA@0AlL`QA@0AlL०QA@0AlLQA|0AlL QAV0AlLQA10AlLQA0AlL`{QA@0AlL@sQA0AlLiQA 0AlLbQA@0AlL@YQA0AlLOQA@0AlLCQA0AlL3QA0AlL@4QAr0AlL@5QAH0AlL;QA@'0AlL;QA0AlL5QA/AlLP-QA/AlL"QA_/AlLQA$/AlL@QA/AlLQAr/AlL QA0AlL`QA[0AlL QA0AlL@QA-0AlLڥQA@0AlL˥QA@F0AlL QAm0AlL QA0AlLuQA@0AlL@=QA@0AlL@$QA0AlL QA@0AlL`QA@0AlLQA60AlL@QA@0AlLQA0AlL`ŤQA0AlL@ˤQA0AlL`ϤQA70AlL`ѤQAf0AlL֤QA0AlLԤQA0AlL@פQA0AlL٤QA<0AlL`QAT0AlLQAc0AlLQAw0AlLQA@0AlL QA0AlL)QA@0AlL;QA@0AlL NQA0AlL\QA@0AlL oQA0AlLyQA0AlLQA@ 0AlLQAP0AlLQA`0AlL@QA0AlLQA0AlL QA@0AlL`QA0AlL QA0AlL QA0AlLQA0AlLQA50AlLথQA50AlL QA@0AlLQA?0AlLQA;0AlL|QA@:0AlLpQA=0AlL `QAE0AlL PQAE0AlL QA 10AlL @QA00AlL @0AlLQA@a@0AlLQA@0AlL QA@MA0AlLuQAiA0AlL@tQA@A0AlLlQAA0AlL@[QAA0AlL`SQA%B0AlLPQANB0AlLNQAsB0AlL MQAB0AlL@LQAB0AlLMQA@B0AlLvQA@B0AlLQAB0AlLࡒQA@B0AlLQAB0AlL@ɒQArB0AlLߒQADB0AlLQA>B0AlLQA@FB0AlL QAYB0AlL QAB0AlLQAxB0AlLQAVB0AlLQA/B0AlL"QAA0AlL$QA@A0AlL&QAA0AlL*QAA0AlL0QAA0AlL@QA-0AlL@/0AlLQA00AlLΒQA}50AlL`[QA@50AlL@UQA50AlL IQA50AlL8QA@50AlL`8QA@y50AlL@;QAh50AlL@@QA750AlL@QA50AlL >QA40AlL@;QA40AlL@QA@40AlL FQA@40AlLFQA40AlL?QA40AlL5QA@40AlL`.QA40AlL(QAX40AlL(QA<40AlL/QA040AlL6QA(40AlL=QA@40AlLBQA30AlLAQA30AlL>QA30AlL8QA30AlL`/QA{30AlL )QAU30AlL@#QA630AlL QA20AlL@QA@10AlLQA@10AlLQAV10AlLQA10AlL@QA@00AlLQA00AlL@QAk00AlLQAU00AlLQAJ00AlLpޑQAA00AlLۑQA=00AlL@БQA>00AlLÑQA@D00AlLQAO00AlL QA`00AlL@QAp00AlL@QA@00AlLQA00AlL`QA00AlL|QA@00AlL`sQA00AlLdQA410AlLRQA]10AlL>QAl10AlL4QA10AlL%QA@10AlLQA@10AlLQAb20AlLQAK30AlLQA@Z30AlLQA30AlLP QA30AlL QA40AlLEQA@40AlLQA50AlLQA60AlL`yQA.70AlLqQAu70AlLlQA 80AlL`^QA80AlL=QA@90AlLQA:0AlL`QAx;0AlLːQA<0AlLQA@l=0AlLkQA@.>0AlLDQA@@=0AlLȏQA@;=0AlLŏQA@<0AlLQA<0AlL@QA<0AlL}QA<0AlLzQA=0AlL xQA7=0AlLuQA@W=0AlL`qQAm=0AlLkQA{=0AlLcQA=0AlL ZQA=0AlLOQA=0AlLHQA=0AlLBQA=0AlL :QA=0AlL1QA>0AlL QA>0AlL QA >0AlLQA4>0AlL@QA@>>0AlLQA@>0AlL QA=0AlLՎQA<0AlL@QA<0AlLQA<0AlLИQA@`<0AlLQA@<0AlLQA@;0AlLQA@;0AlLQA@:0AlLQA:0AlLQA:0AlL QAq:0AlLQAD:0AlLŽQA:0AlLҎQA90AlLގQAx90AlLQAc90AlLQAf90AlLQA/90AlLQA80AlL`QA80AlL@QA@j80AlL"QA70AlLQA^70AlLQA70AlLQA60AlLQA60AlL` QA@|60AlLQA?60AlLQA50AlLQA50AlL@QA50AlLQA50AlLQA@W50AlL`QA@40AlL`QA40AlLێQAZ40AlLҎQA40AlLˎQA30AlL@ŽQAL30AlL`QA30AlL`QA30AlLQA@20AlL`QA@20AlLQA@n20AlL`}QA20AlL tQA 20AlLrQA10AlLhQA810AlL]QA00AlLWQA00AlLXQAB00AlL``QA@/0AlLgQAl/0AlLjQAU/0AlLaQAI/0AlLWQA8/0AlL PQA /0AlL@KQA.0AlLIQA.0AlL HQA.0AlLCQAp6?.0ABQAp.0AlL @QA_.0AlL@?QAM.0AlLP>QA%.0AlLDQA@.0AlLNQA-0AlL@NQA-0AlL@JQAe-0AlL=QA-0AlL)QA,0AlLQA,0AlLQAo,0AlLQA,0AlL QA+0AlLQA+0AlL0ٍQA@+0AlLՍQA)0AlL7QA)0AlL>QA)0AlL@?QA)0AlL@0QA|)0AlL"QA@T)0AlLQA5)0AlL QA)0AlL@QA)0AlLp؍QA@)0AlLQAe)0AlLQAO)0AlL QA@)0AlLQA(0AlLQA(0AlLQA(0AlLލQA@m(0AlLٍQA(0AlL@؍QA'0AlLՍQA'0AlL ΍QA@'0AlLQA'0AlL QA@'0AlL`QA@'0AlLQAs'0AlLQAF'0AlLQA^)0AlLQAt)0AlL QA)0AlLPQAF)0AlL QA@)0AlLQA@(0AlL QAv(0AlLQA@)(0AlLQA'0AlLQA'0AlLPQAE'0AlL@9QA'0AlL ?QA&0AlL?QA&0AlL?QA&0AlL@7QA@>&0AlL +QA/&0AlL!QA.&0AlLQAD&0AlL@QAH&0AlLQA@B&0AlL QA<&0AlLQA@B&0AlLԌQA@I&0AlLɌQAB&0AlL`ŒQA &0AlL`QA%0AlL@QA@%0AlLQA%0AlLQA%0AlLQA%0AlLsQA%0AlLfQAw%0AlL^QAt%0AlL[QAo%0AlLWQAj%0AlLSQAB$0AlLQA@R$0AlLQA@a$0AlLwQA^$0AlLlQAD$0AlL^QA$0AlLpUQA#0AlLXQA@#0AlL^QA@#0AlL`QA#0AlL@OQA#0AlLEQAr#0AlL GQA[#0AlL@GQA@<#0AlL@QAN#0AlL7QA@b#0AlL0QAL#0AlL@"QA"0AlLQA"0AlL`QA"0AlLQAw"0AlLQA@P"0AlLQA@'"0AlLQA@ "0AlL`QA!0AlL0%QA!0AlL!QA@!0AlL QA!0AlLQA@!0AlL QA@!0AlL@ߋQA&"0AlLӋQAo"0AlL ȋQA"0AlLഋQA@"0AlLQA@"0AlL@QA"0AlLQA@"0AlLyQA"0AlL@nQA"0AlLfQA@["0AlL`bQA"0AlL\QA!0AlL ]QA!0AlLaQA/AlLQA/AlLQA/AlLQA/AlLࠉQA/AlLQA/AlLpQA_/AlL nQA/AlLhQA/AlLdQA"/AlL _QA/AlL[QA /AlL WQAj/AlL@RQA/AlLRQA/AlLVQA+/AlLVQA/AlL VQAV/AlLMQAU/AlLOQA?/AlL}QA>/AlL@QA/AlL`QA/AlL QA/AlLNQA/AlLDQA6/AlL:QA/AlL3QA/AlL*QA>/AlL"QA/AlL`QA/AlLQAj/AlLQA3/AlLQA/AlL@QA/AlLQA)/AlLψQA/AlL`QA/AlLQA/AlLQA/AlLQAd/AlLQA /AlL@QA/AlLQAt/AlLQA0/AlL@QA/AlLQA/AlL}QA\/AlL yQA /AlLtQA/AlLqQA/AlLmQAr/AlLjQA./AlLfQA/AlL cQA/AlL`QAd/AlL]QA/AlL`iQA/AlL`pQA/AlLuQA#/AlL@zQAL/AlLQAw/AlL@QA/AlLQA/AlLQA/AlL QA /AlL࢈QAB/AlL QA/AlL` QA>/AlL.QA/AlLBQA_/AlLJQA\/AlLOQAY/AlL`UQAp/AlL^QA/AlLiQA/AlLoQA/AlLyQA/AlL }QA6/AlL QA/AlL QA/AlL`|QA/AlLxQAs/AlLwQA/AlLwQA/AlLqQAH/AlLhQA/AlLhQA/AlLjQA"/AlL`gQA/AlL^QA/AlLTQA+/AlLNQA/AlLMQAt/AlLQQAD/AlLTQAL/AlLEQA[/AlL@ƉQA/AlLȉQA/AlLQA/AlL@rQA/AlL gQA/AlL`[QA/AlL@UQAy/AlLNQAp/AlLEQAy/AlL9QAy/AlL`*QA/AlLQA/AlLQA/AlL@QA/AlL`QAO/AlLӈQA/AlLQA/AlL@QA/AlL@QA/AlLईQA/AlL`QAo/AlLQA/AlLQA/AlL@QAH/AlLQA"/AlLQA/AlLQA/AlL`QA*/AlL`QA/AlL`QA/AlL@QA]/AlLQA/AlL`QA/AlLQAN/AlLQA /AlLQA/AlL@QA/AlL`QA{/AlL|QA'/AlLrQA/AlLmQA/AlL`rQAȾ/AlLQA/AlL QAY/AlLQA//AlLࠈQA/AlL@QAֽ/AlLQA}/AlL@QAO/AlL`QA/AlLQAڼ/AlL@QA/AlLQAX/AlL`}QA/AlLrQAV/AlLsQA/AlLvQA/AlLxQA/AlLxQAS/AlLoQAx/AlL`eQA /AlL`QA/AlLTQAB/AlL@NQA/AlLHQAڷ/AlL@=QA/AlL@5QAW/AlL,QA/AlL!QA4/AlLQAõ/AlL QA?/AlL@QA/AlLQA/AlLQAy/AlLQA/AlL QA/AlLQA/AlLQA/AlLQA/AlLQAij/AlL QA/AlL QA9/AlL QAβ/AlL@QAѲ/AlLQAܲ/AlL QA/AlLQAԲ/AlL!QA/AlL)QA/AlL/QA\/AlL6QAN/AlL=QA/AlL@AQA/AlL?QA/AlLCQA+/AlLMQAi/AlLWQA/AlL@\QA/AlLcQA/AlL`>QA+/AlL2QA/AlL`-QAI/AlLQA/AlLQA/AlLQAg/AlLQA/AlL@QA /AlLQAJ/AlL׈QA/AlLԈQAx/AlL ҈QA/AlL@̈QAX/AlL@ƈQAծ/AlLQA/AlL̈QA?/AlL`ՈQA/AlLQA)/AlL QA/AlL QA۰/AlL QAF/AlL`QAű/AlL(QA/AlL@4QA/AlL @QA^/AlLOQA/AlLYQA/AlL@cQAu/AlL nQA/AlLzQA;/AlLQA/AlLQA/AlL QAb/AlLQA/AlL້QA/AlLʉQAG/AlLՉQAT/AlLމQA~/AlLQA/AlL QA/AlLQAI/AlLQAܷ/AlLQA-/AlLQAǸ/AlL@!QAO/AlL-QA /AlL?QAt/AlLJQA/AlL WQAZ/AlLbQA/AlLmQA/AlL sQA6/AlL{QAa/AlLQA/AlLQAu/AlLQA /AlL`QAX/AlLఊQA/AlLชQA/AlL QAW/AlLيQA/AlL@HQA/AlLQA/AlL@QQAE/AlL yQA/AlLQA/AlL๋QA/AlL΋QAH/AlL QAl/AlLQAb/AlLQA/AlLQA/AlL QA/AlL`QA/AlL QA0/AlL#QAp/AlL`#QA/AlL`$QA/AlL@AQAK/AlLSQA/AlLp]QA/AlLyQAV/AlLQA/AlLࢌQAe/AlLQA/AlL͌QA\/AlLQA/AlLQA#/AlLQA=/AlL QAE/AlL QA/AlLQAX/AlL$QA$/AlL2QA/AlLPQA/AlL cQA/AlLvQA /AlLQA/AlLQA/AlLPQA/AlLQA/AlLQA/AlLQA/AlL\QA"/AlLQA/AlL`QA/AlLQA/AlL QA/AlLOQA+/AlL`eQA;/AlL@ÐQA/AlL@QA/AlLQA/AlLЪQA/AlL@QA2/AlL@MQA/AlLIQA"/AlL׏QA/AlL`QA/AlLp-QA&/AlLPِQAH/AlL QA/AlLQA̹/AlLQAع/AlLQA/AlLQA/AlL` QA2/AlL QA8/AlLQAC/AlL 'QAF/AlL0QAV/AlL`8QAf/AlL`@QAy/AlL`HQA/AlL PQA/AlL[QA/AlLcQA̺/AlLnQA/AlL`yQA/AlLQA/AlLQA/AlLˑQA:/AlL`QAe/AlLQA/AlL`QA/AlL9QAٻ/AlL jQA/AlL@QAV/AlLÒQA|/AlLQAμ/AlL"QA/AlL`XQAF/AlLQA/AlL͓QA/AlL QAE/AlL`)QA/AlL@XQA;/AlLQAپ/AlLQA/AlLÔQA/AlLŔQA+/AlLQAU/AlLQAs/AlL?QAĿ/AlL`pQA|I/AQA /AlL ݕQA/AlLQA$/AlL QAQA /AlLFQA,/AlLNQA/AlL]QA/AlL fQAι/AlL0gQA/AlLmQAw/AlLtQA/AlL@xQAk/AlLwQAл/AlL@wQAA/AlLvQA/AlLtQA/AlLvQA>/AlLQA/AlLQAȽ/AlL@QA/AlL@QAu/AlLQA/AlL |QAھ/AlLmQA/AlL@^QA%/AlLSQAE/AlLLQAo/AlL>QA/AlL-QAӿ/AlL%QA/AlLQAa/AlL QA/AlLQA/AlL,QAu/AlL:QA@/AlL mQA,/AlLQA,/AlL@QA /AlL QAտ/AlLӡQAĿ/AlLQAȿ/AlLQA/AlL QA/AlLQA/AlL@+QA/AlL6QAH/AlL7QA,/AlL :QA/AlL=QA/AlL@QA/AlL@FQA/AlL`KQA/AlLOQA//AlLSQA/AlL@VQAt/AlL]QAm/AlL`QA/AlL QA/AlLQA/AlLQA/AlLĢQAq/AlL ΢QA /AlLܢQA7/AlLQA/AlL@QA/AlLQAX/AlLQA/AlL@QA/AlLp-QAj/AlL2QA/AlL?QA/AlL[QA;/AlLyQA/AlL`QA/AlLQA/AlLPQA/AlLQA/AlLãQA/AlL@QA/AlLСQAx/AlL`QAT/AlLˣQA!/AlL@ QAY/AlL@TQA/AlLQA/AlLQAj/AlLPQA/AlLQA/AlLQA/AlLͤQA./AlL`QA^/AlL`QA/AlL຤QAx/AlL`QA2/AlL@QA/AlLQA/AlLQAt/AlLQAr/AlL QA/AlL`ףQA|/AlLQA/AlL QAK/AlLQA /AlLQA/AlL|QA/AlLyQA/AlLsQA /AlL rQAv/AlLrQA/AlL xQA/AlL{QAO/AlL@QA/AlLQA/AlLQA/AlL QAJ/AlLQA/AlL QA./AlLQA/AlLਣQA*/AlL QA/AlL QA!/AlLQA/AlL£QA/AlLQA/AlL࿣QA /AlL QA/AlLpɣQA/AlLףQA6/AlL`QA/AlLQA/AlL QAV/AlLQA/AlL"QA/AlL%QAb/AlL CQA2/AlLNQA/AlLUQA./AlLaQAV/AlLgQAn/AlL@nQA/AlLvQA /AlL`}QAj/AlL@QA/AlLQA/AlL`QA/AlLࠤQA+/AlLQAr/AlLQA/AlLQA./AlLƤQAv/AlLʤQA/AlL@ФQA)/AlLؤQA/AlL ݤQA/AlLQA/AlL QA/AlL #QA /AlL:QA/AlL^QAJ/AlL kQA?/AlL@lQA/AlL`pQA/AlLQA/AlLQA/AlLQA/AlL`QA/AlLѥQA /AlLޥQA6/AlL7QA/AlLQA/AlLʦQA//AlL`QA/AlL0GQAh/AIQQA/AlLQA/AlLQA/AlLQA/AlLpWQAX/AlLTQAp/AlLQQA/AlLJQA/AlLBQAy/AlL:QAR/AlL@2QA/AlL EQA/AlLnQA/AlLaQA/AlL`XQA_/AlL@LQA/AlLAQA/AlL@4QA/AlL`QA/AlLQAE/AlLQA/AlL@QA6/AlLཟQAU/AlLQA/AlL@QA/AlLQAR/AlL@yQA/AlLgQA/AlLPQA/AlL /QA/AlL0QA?/AlL;QAH/AlLHQA5/AlLUQA /AlLiQA/AlLyQA/AlL@QA9/AlL QAy/AlLQAn/AlLQAR/AlL࿟QA4/AlL`ǟQA6/AlLПQA7/AlL`ݟQA/AlL@QA/AlLQA/AlL`QA/AlLQA/AlL &QAB/AlL`1QA/AlL@eQA/AlLgQAt/AlL`pQA/AlL@QA;/AlLQAU/AlL QA|/AlLಠQA/AlLȠQA/AlL٠QA/AlLQA/AlL QA/AlLQA/AlLQA/AlL@QA!/AlL&QA/AlL1QA/AlL;QAC/AlL 2QA/AlL EQA/AlL QAh/AlLQA0/AlLxQA/AlLwQA/AlL_QA:/AlL:QA/AlL 1QA/AlL(QA/AlLQA/AlL`QA/AlL QA/AlLࡢQA@/AlL`QA/AlLQA+/AlL@QA/AlL QA /AlL QAy/AlL`QA/AlL QAN/AlL@QA/AlLQA'/AlL๢QA/AlLQAC/AlL`QA/AlLǢQA/AlL ѢQAe/AlL٢QA~/AlLQA4/AlLQA/AlLQAc/AlLQA/AlL'QAk/AlL6QA /AlL@FQA/AlLQQAW/AlL dQA/AlLtQA/AlL QAh(0AlLQAj0AlL`QAJ@WC0AlL`JQA@jC0AlL>QAnC0AlLQA@wb0AlL QA@xc0AlL@QAVc0AlLHQAHc0AlL@SQACc0AlLZQAGc0AlLaQALc0AlL@kQA2c0AlL`yQA c0AlLQA@b0AlL`QAb0AlL`QAb0AlLQAbb0AlL@QABb0AlL@QA@4b0AlL QAb0AlL`QAa0AlLQAa0AlL QAa0AlLQA@a0AlLQA@a0AlLQA@a0AlLQAa0AlLQAa0AlL@QAsa0AlL QAVa0AlLQA=a0AlL@QAa0AlLQA`0AlL`QA`0AlLQA@`0AlLQA(`0AlLQA}_0AlL QAV_0AlLQA&_0AlLQA^0AlL QA^0AlL@QA^0AlL`QA@D^0AlL`QA@^0AlLQA]0AlL`!QA@]]0AlL@)QA']0AlL`.QA@]0AlL@3QA@\0AlL8QA\0AlL=QA\0AlL`LQA\0AlLRQAZ\0AlL[QA@\0AlLaQA\0AlL@hQA[0AlL {QA@[0AlL ~QA[0AlL`QA@v[0AlL@QAP[0AlLQA9[0AlL`QA"[0AlLQA@[0AlLQA@Z0AlLQAZ0AlL`QAZ0AlLQA@}Z0AlLQAaZ0AlL@QAY0AlL-QAY0AlL8QA@Y0AlL`>QAY0AlL@PQAuY0AlLVQA@ZY0AlL \QA@1Y0AlLeQA@Y0AlLpQAX0AlL`zQA|X0AlL@QAQA&F0AlLCQA@F0AlL EQAE0AlL BQAE0AlL>QAE0AlLQA:0AlL`@QA:0AlL\QA:0AlLP^QA@:0AlL RQA;0AlL`?QA;0AlL09QA";0AlL;QA;0AlLCQA ;0AlL@_QA;0AlL_QA@";0AlL[QA;0AlLZQA";0AlLHQA@*;0AlLpAQA5;0AlL AQAF;0AlL`@QA;0AlL>QA;0AlLAQA@<0AlL@QA@<0AlL`CQA<0AlL@EQA=0AlL@HQA*=0AlLIQAH=0AlLLQAm=0AlLOQA}=0AlLPQA=0AlL0SQA=0AlL UQA=0AlL`WQA$>0AlLZQAS>0AlL\QA@~>0AlL^QA>0AlL_QA@>0AlL`QA@>0AlLbQA@?0AlLdQA-?0AlLfQAN?0AlL hQAt?0AlLjQA?0AlLmQA@0AlL`tQA4@0AlLvQAp@0AlLpzQA@0AlLzQA@0AlLp|QA@0AlL~QA@0AlLQA@A0AlL`QAGA0AlLQA_A0AlLPQA@A0AlLpQA B0AlL0QANB0AlLQA@tB0AlL`QAB0AlLQAB0AlLPQA@B0AlL0QAB0AlL`QA@B0AlL`QA C0AlLyQA@C0AlL`pQA@$C0AlL fQA0C0AlL`]QA8C0AlLWQAFC0AlLPQA@WC0AlL`JQA@/AlLQAr"0AlLQAd`?-Ĥ/AlLQQA/AlL JQA`/AlL/QA/AlL.QAå/AlL1QA/AlL *QAå/AlL`"QA/AlLpQA /AlLQA./AlLQAI/AlL@"QA/AlL!QA/AlLPQAզ/AlLQA/AlLQA3/AlLQAl/AlLQA/AlL QA/AlLQA/AlL QAn/AlLQA/AlLQA/AlL@QA/AlLQA1/AlL0QA$/AlLQA/AlLpQA+/AlL QA%/AlLQA/AlLQA/AlLQA/AlL QAF/AlLQAe/AlLQAa/AlL`QA*/AlLQAަ/AlLQA/AlLЧQAg/AlL0QA@/AlLQA!/AlLQA/AlL0QA/AlL QAV/AlLQA/AlLQA/AlLQA/AlLQA/AlLQA(/AlLQA_/AlLPQAe/AlLpQAG/AlLyQA8/AlLuQA /AlLPtQA/AlLpQAڦ/AlLkQA/AlLkQAc/AlL0rQA /AlLsQAҥ/AlLzQA/AlL{QA/AlL|QA^/AlLxQA/AlL`sQA/AlL@oQA/AlLiQA/AlL cQA/AlL_QA/AlL0\QA|/AlL@UQA/AlLMQA/AlLGQAѥ/AlLDQA/AlL@QA/AlL0QAٜ/AlLBQA/AlLIQA/AlLLQA/AlLQQA9/AlLRQAV/AlLSQAj/AlLXQAx/AlL\QA/AlLcQAҝ/AlLgQA/AlLlQA/AlLqQA:/AlLtQAA/AlL{QAo/AlL~QA/AlLuQA/AlL`yQA/AlLQA/AlLPQA/AlL`QAT/AlL`QAT/AlLQA4/AlLQA/AlLpQA/AlLQAž/AlLQA/AlLQA/AlLQA8/AlLQAP/AlL@QAm/AlL@QA/AlL`QA/AlL0QAϟ/AlLQA/AlLQA/AlLpQAz/AlLQAV/AlLQA//AlL0QA/AlLQA/AlL QAb/AlL0QA)/AlL0QAE/AlLQAp/AlLQA/AlLpQA/AlLQAٞ/AlLQA/AlL QA'/AlLQA1/AlLQA /AlL`QAG/AlLQA[/AlLQAX/AlLQAh/AlLQAp/AlLQA/AlLpQA/AlLPQA/AlLQAş/AlL`QAܟ/AlLQA/AlLQA2/AlLQAQ/AlL@QAu/AlLQA/AlLQA /AlL@QA͠/AlLQA/AlL@QA/AlLQAr/AlL QA/AlLQA/AlL0QA/AlLQAݠ/AlLQA/AlLQA/AlLPQA/AlL QA/AlLPQA/AlLQAV/AlL QA/AlL QA/AlL QA̡/AlLPQA/AlLQAʡ/AlLQA/AlLpQA/AlLQAd/AlLQAZ/AlLQAG/AlLQA;/AlLP QA/AlL0#QA/AlL1QAߠ/AlL9QA /AlLAQAG/AlL AQAX/AlLCQA[/AlLFQA^/AlL`JQAp/AlLSQA/AlLYQA/AlLZQA8/AlLWQAQ/AlLPVQAȢ/AlLJQA/AlLNQAԢ/AlLpOQA/AlL\QA{/AlLhQA/AlLtQA/AlLwQAĢ/AlL|QA/AlLQA/AlLPQA0/AlLQAf/AlLQAo/AlLQA/AlLPQA/AlLQA/AlL0QA/AlL`QAǣ/AlL~QAأ/AlLyQA/AlL sQA/AlLiQA#/AlLbQAP/AlLP^QAp/AlL0[QAw/AlLXQA/AlLVQAĤ/AlLQQAc/AlLGQAy/AlL`@QA/AlL>QA/AlL;QA/AlLp8QA /AlLP4QA/AlL-QA/AlL*QA/AlL'QAG/AlL#QA/AlL QA/AlLpQA/AlL0 QA /AlL%QA8/AlL,QAY/AlL/QAv/AlL 3QA/AlLp5QA/AlL2QA /AlL0QA"/AlL.QA;/AlL,QAM/AlL%QAu/AlL@#QAu/AlLQAu/AlL0QA/AlLQA/AlL QA/AlLQA/AlL QA"0AlL QAK"0AlLQA["0AlLQAh"0AlLQAr"0AlLQAl"0AlL` QAj"0AlLQAi"0AlLQAb"0AlLQA`"0AlLQAb"0AlL@QAf"0AlLPQAZ"0AlLQA@M"0AlLQA8"0AlLPQA@&"0AlLQA"0AlL`QA"0AlL QA "0AlL@QA"0AlL0QA"0AlLQA"0AlLpQA!0AlLQA!0AlL@QA!0AlLQA!0AlLQA@!0AlLQA!0AlLQA!0AlLQAq!0AlL@QA`!0AlLQAH!0AlLpQAQA/AlL:QAt/AlL3QAu/AlL/QA8/AlL@(QA/AlLP)QA/AlL`*QA/AlL(QAk/AlL+QA>/AlL*QA/AlLP.QA/AlL0QA/AlL6QA/AlL`:QAЧ/AlLAQA/AlL@QA_/AlL CQAx/AlLEQA/AlL@HQA§/AlLHQAԧ/AlL`OQA/AlLKQA&/AlLEQAU/AlLpDQA/AlLPCQAͨ/AlL?QA/AlL@?QA/AlLP;QA,/AlL=QA/AlL DQA/AlLEQA/AlLHQA/AlLKQA /AlLSQA/AlL@YQA/AlL[QAҨ/AlLp`QA/AlL@dQA/AlLcQA/AlL`fQA+/AlL@cQAN/AlLaQAj/AlL`QAx/AlL0gQA]/AlLkQA/AlLhQA/AlLfQAĩ/AlLdQAݩ/AlLpbQA,~ /AlL@QA/AlLQA^/AlLQA/AlLQA./AlL QA/AlL`QA/AlL QA/AlLQA/AlLQAp/AlLQA#/AlL@QA/AlL QA/AlL QAr/AlLQAD/AlL`QA/AlL@QA/AlL`QA/AlLQAd/AlLQA/AlLQA/AlLQA/AlL QAR/AlL`vQA/AlLcQAR/AlL PQA/AlLDQAq/AlL =QA/AlL6QA^/AlL 4QAu/AlLAQA/AlL`0QA/AlL@$QA/AlLQA/AlLQA/AlLQA/AlL QA/AlL`QA/AlL QA2/AlL`QA4/AlLQA/AlLQA/AlL@QA$/AlLQA/AlLQAX/AlLvQA/AlLbQA/AlLp^QAv/AlLPQAL/AlLDQA/AlL@8QA/AlL.QA/AlLQA|/AlL`QA/AlL@QA/AlLQA/AlLQA/AlLQA$/AlLQA/AlLQA/AlL`QA/AlLQAy/AlLQA&/AlL@QA/AlL QA/AlLQA/AlLQAq/AlLQA./AlL QA/AlL@}QA/AlL uQAW/AlLmQA/AlLhQA/AlLhQAa/AlL@dQA/AlLYQA/AlL@OQAz/AlL@IQA/AlLpAQA/AlLDQA/AlL:QAx/AlL 1QAB/AlL 'QA/AlL QA/AlL`QA/AlLQA/AlL QAg/AlLQA?/AlLQA/AlLQA/AlLQA/AlLQAH/AlLQA/AlL QA/AlLQA/AlLQAK/AlL@QA/AlLQA/AlLQAr/AlL QA2/AlLQA /AlLQA/AlL`QA/AlLQAq/AlL@QA_/AlLQAF/AlLQAE/AlLQAB/AlLQA?/AlL QA9/AlLQA/AlLQA/AlLQA/AlL@QAw/AlLQA1/AlLQA/AlL`QA|/AlL~QA/AlL`tQA/AlL hQA/AlL^QA/AlL`WQA/AlLMQAt/AlLGQA,/AlL>QA/AlL5QA/AlL/QAr/AlL$QAp/AlLQAa/AlL`QAl/AlL QA3/AlLQA/AlL QA/AlLQA/AlLQA/AlL QA/AlLQA/AlLQAa/AlLQA/AlLQA/AlLQA~/AlL@QA/AlLQA/AlL@QAB/AlLQA/AlLQA/AlLQA~/AlL@~QA/AlL sQA/AlL{QA/AlLQA`/AlLQA/AlLQA|/AlLQA1/AlLQA/AlL QA/AlLQA /AlL`QA/AlL QA/AlL xQAn/AlLnQA4/AlLiQA/AlLcQA/AlL`QA/AlL[QA/AlL`jQA/AlLkQA/AlL`bQA/AlL[QAC/AlLSQA/AlLRQA/AlL[QA/AlLQAE/AlL QA/AlL`QA/AlL QAe/AlL`QA/AlLQA/AlLQA/AlL@QAE/AlLQA/AlLQA8/AlL@QA/AlL QA/AlL@QA/AlL QAy/AlLQA=/AlL QAN/AlLQA!/AlL QA/AlL`QA/AlL@QAv/AlL`QA@/AlL`QA/AlLQA/AlL`QA/AlLQAp/AlLQAU/AlL`QA/AlLQA/AlL QA/AlLQAy/AlLQA6/AlLQA/AlLQA/AlL~QAl/AlLyQA"/AlLsQA/AlLlQA/AlLhQAj/AlL`QA1/AlL]QA/AlL [QAo/AlL[QA&/AlL]QAֿ/AlL@\QA/AlL_QAx/AlL\QA@/AlLSQA+/AlL@SQAǾ/AlLPQA/AlLNQA/AlLIQAh/AlLAQAV/AlL:QAO/AlL7QAn/AlL@QAn/AlLQAm/AlLQAm/AlL*QA!n/AlL5QASn/AlL=QAn/AlL EQAn/AlLLQAn/AlL YQAkn/AlLkQARn/AlL|QA)n/AlLQAn/AlL QAm/AlLQAm/AlLýQAm/AlLԽQAlm/AlL`ݽQAbm/AlLQAMm/AlLQAFm/AlLQATm/AlL@QAWm/AlLQAPm/AlL&QA@m/AlL/QA1m/AlL`5QAm/AlL?QAHm/AlL@CQAlm/AlLIQAm/AlLSQAm/AlL`hQAm/AlL`qQAm/AlLwQAn/AlL@QAn/AlL QAn/AlLQA+n/AlLQA"n/AlLQA-n/AlL QA>n/AlLžQAJn/AlLоQAn/AlLɾQAn/AlL@ʾQAn/AlL@оQAn/AlL`ؾQAn/AlLQAm/AlLCQAj/AlL@QAe/AlLOQAa/AlL QA]/AlLQAY/AlL`QAyP/AlL@AQA9P/AlLBQAnP/AlLKQA|P/AlL@SQAP/AlLfQAP/AlLuQAP/AlLQAP/AlLQAfP/AlLିQAJP/AlL@QA?P/AlL@ҿQA6P/AlLQA!P/AlL@QAO/AlLQAO/AlLQAO/AlLQAO/AlL*QAO/AlL:QAO/AlL HQAO/AlLdQAYP/AlLQAP/AlLQAO/AlLQAO/AlLQAO/AlL@QAfO/AlLQA9O/AlLQA O/AlLQAN/AlL@QAM/AlLQAkM/AlLpQACM/AlL@QAL/AlL`QAL/AlLQA/AlLpQA>/AlLQA>/AlL ؿQA>/AlLǿQA>/AlL෿QA>/AlLQA>/AlLQA>/AlLQA?/AlL@QA ?/AlLyQA"?/AlLjQAY?/AlLAQA?/AlL@0QA?/AlLQA?/AlL`QA?/AlLQA?/AlL޾QA?/AlLѾQA @/AlLʾQA4@/AlLþQAP@/AlL QAk@/AlL@QAi@/AlL QA\@/AlLQAk@/AlL QAx@/AlLQA}@/AlLQA^@/AlL@uQA8@/AlLgQA@/AlL`QA?/AlL@YQA?/AlL`SQA?/AlLIQA?/AlL=QA?/AlL5QA @/AlL`)QA @/AlL#QA=@/AlL@QAZ@/AlL QAz@/AlL QA@/AlLQA@/AlL QA@/AlLQA@/AlLQAA/AlLQAKA/AlLԽQAbA/AlL@ȽQAiA/AlL@QA{A/AlL`QAA/AlL`QAA/AlLQA B/AlLQAB/AlLQA+B/AlL`QAHB/AlL|QAtB/AlLuQAB/AlL`sQAB/AlLrQA+C/AlL@nQAhC/AlLeQAC/AlL_QAC/AlL[QAC/AlLUQA7D/AlLJQAD/AlL1QAD/AlL&QAD/AlL QAD/AlLQAD/AlL@QAD/AlL@QAD/AlLQAD/AlLQAD/AlLQA1E/AlLQAQE/AlL޼QA}E/AlLڼQA6F/AlLļQAF/AlLQAF/AlLQAG/AlLQA&G/AlL@QAE8/AlLQA7/AlLQA6/AlL QA6/AlL@QA"6/AlLQA5/AlLQA4/AlL@QAE4/AlL@QA2/AlL`QAv2/AlLQA1/AlLQA1/AlL`QA+1/AlLQA0/AlL಺QAq0/AlLQA0/AlLźQA//AlL˺QAr//AlL ӺQA//AlL@ܺQA./AlL QAy./AlLQA./AlLQA-/AlLQAg-/AlL QA-/AlL QA,/AlL`QA,/AlL#QA*/AlLOQAH*/AlLZQA*/AlLZQAF'/AlL QA&/AlLQA"&/AlL@QA%/AlLûQAQ%/AlLлQA$/AlL`ڻQAM$/AlLQA#/AlLQA:#/AlL QA"/AlLQA"/AlL&QAn"/AlL2QAk"/AlL@@QAU"/AlLHQAA"/AlLPQA "/AlL@^QA!/AlLlQAr!/AlL xQA{/AlLQA$/AlL`QA/AlL QAt/AlL,QA/AlL@=QA|/AlL`>QA /AlL@=QA/AlL@CQA/AlL vQAz/AlLxQA0/AlL|QA/AlLhQA /AlLQA/AlLQA/AlLQAx/AlL`QA/AlLQA/AlL QA/AlL@QA/AlL QAh/AlLĽQA!/AlLǽQA/AlL̽QA/AlLνQAK/AlLѽQA/AlLսQA/AlLڽQA/AlL`۽QAO/AlLڽQA~ /AlL QA /AlLQA /AlLQA /AlL@&QA /AlL@/QA /AlL`9QA /AlL`DQA /AlLNQA/AlLUQA5/AlL`QA/AlL gQA/AlL@hQA /AlL hQAF/AlLeQA/AlLvQAy/AlLQAx/AlL¾QAx/AlL̾QA}/AlLվQA/AlLQA/AlLQA/AlLQA/AlL QAB/AlL`QAf/AlL"QA/AlL0QA/AlLAQA/AlLPQA/AlL`QA/AlLdQA/AlLhQA /AlL}QA!/AlLQA/AlLQA/AlL QA/AlL೿QAf/AlL@QA/AlL¿QA/AlL ʿQA/AlLϿQA/AlLԿQA7/AlL׿QAw/AlLۿQA/AlL`QA/AlLQA/AlLQA2/AlLQA/AlLQA/AlLQA/AlL@*QA/AlL8QA/AlL BQA/AlLHQA/AlLPQA/AlLXQA/AlLhQA/AlL wQAm/AlLQAH/AlLQAH/AlLQAV/AlL QA\/AlLQAm/AlL QA/AlL@QA/AlLQA/AlLQA/AlLQA/AlLQA/AlLQA#/AlL QA6/AlLQA5/AlLQA(/AlL&QA+/AlL@)QA4/AlL0QAK/AlL=QAb/AlL GQA/AlL@UQA/AlLbQA,/AlLlQAU/AlLvQAn/AlL@QAv/AlL QAZ/AlL@QAH/AlL`QA;/AlLQA;/AlL@QAS/AlLQA/AlLQA/AlLQA3/AlLQA/AlL QA/AlL`QA/AlL!QA/AlL#QA/AlL'QA/AlLP*QA/AlL0QA/AlL@FQA(/AlLQQA8/AlL[QAU/AlL eQAh/AlL@kQA/AlLrQA/AlL@vQA/AlL~QA/AlLQA /AlLQA> /AlLQAH /AlL@QAQ /AlLQAQ /AlLPQAP /AlLQAM /AlLQAK /AlLQAE /AlL@QA5 /AlLQA /AlL@QA/AlL QA/AlLQA/AlLQA/AlL QA/AlL@QA /AlLQAe /AlL@QA /AlL QA /AlLQA!/AlLQA4!/AlL QAe!/AlL`QA!/AlLQA!/AlLQA!/AlLPQA"/AlLQAO"/AlLQA{"/AlLQA"/AlLQA"/AlLQA"/AlL@ QA"/AlL@QA"/AlLQA"/AlL 'QA"/AlL-QA"/AlLp/QA"/AlL 4QA^"/AlL=QA-"/AlLFQA"/AlLOQA!/AlLWQA!/AlL@_QA!/AlLfQA"/AlLmQA6"/AlL@tQAN"/AlLzQA^"/AlLQAx"/AlL@QA1#/AlLQA}#/AlL QA#/AlL@QA$/AlL~QA$/AlLtQA?$/AlLkQA$/AlL^QA$/AlL\QA>%/AlL_QA%/AlLgQA &/AlL oQA0&/AlL@tQAE&/AlL wQAm&/AlL|QA&/AlLQA&/AlLQA'/AlL QAT'/AlLQA'/AlL QA'/AlL QA'/AlL QA(/AlL`QA(/AlLoQA(/AlLaQA(/AlL`_QA'/AlL]QA'/AlL[QA;'/AlLSQA'/AlLHQA&/AlL`?QA&/AlL8QA&/AlL.QA&/AlL@$QA'/AlLQA<'/AlLQAv'/AlLQA'/AlL`QA(/AlLQA[(/AlL QA)/AlL`QA*/AlLQA~+/AlL@QA+/AlL`QA ,/AlLQAp,/AlLQA,/AlLQA,/AlL QA,/AlLQA -/AlLQA-/AlL`QA-/AlL*QA6-/AlL/QAp-/AlL /AlLbQA~?/AlLcQA$@/AlL eQA@/AlLhQAA/AlL nQAB/AlLuQAUC/AlL|QAC/AlL QA?D/AlLQAvD/AlLQAD/AlLQAD/AlLQAD/AlLQAvD/AlL@QAhD/AlL QAdD/AlLQAgD/AlLQAjD/AlLQAkD/AlLQAoD/AlLQAD/AlLQAD/AlLQAE/AlL QA,E/AlL QALE/AlLQAmE/AlLQAE/AlLQAE/AlLQAE/AlLQAF/AlL`QAF/AlLQAF/AlL@QA'G/AlL`QA=G/AlLQA%H/AlLQAH/AlLQAI/AlLQAJ/AlL@QAL/AlLQA|M/AlLQAM/AlLQAN/AlLPQAN/AlLQA?O/AlLQA\O/AlL#QAO/AlL QAO/AlLQAGO/AlLQA/O/AlL0 QAO/AlL QAO/AlL0QAN/AlLQApO/AlL@QAnO/AlLQAEO/AlL QANO/AlL`QAhO/AlLQAnO/AlLPQAO/AlLQAO/AlL QAO/AlLpQAO/AlLQA_P/AlLQAP/AlLQAP/AlLQADQ/AlL QAQ/AlLQAQ/AlL@QAR/AlLQASR/AlL@QANR/AlL@QA?R/AlLQA/R/AlL0QAIR/AlLQA8R/AlLQAR/AlLQAR/AlLQAR/AlLQAS/AlLzQAS/AlL0mQA@T/AlLdQAT/AlL0XQAU/AlLOQA.U/AlL0QQAtU/AlL =QAU/AlL5QAxV/AlL@)QAW/AlLQAX/AlL0QAoX/AlLQAY/AlL@QAFZ/AlL`QAxZ/AlL QA[/AlL QA[/AlLQA\/AlL`QA]/AlLpQA0^/AlLpQA^/AlL0QAH_/AlLQA_/AlL`QA`/AlL`QAa/AlL`QAb/AlLQAd/AlLPQAe/AlLQA|g/AlLQAh/AlLQAk/AlLQAl/AlL0QAm/AlLQAo/AlL@QAp/AlLQA q/AlLQA&q/AlL@QAq/AlLQArr/AlLQAr/AlLQAzs/AlLQAs/AlL`QAx/AlLQA{/AlL`QAI}/AlLQA}/AlL`QA~/AlL@QA,/AlLQA/AlL`QAԀ/AlLQA/AlL@QA/AlL QA/AlL`QA//AlLQA/AlL QAU/AlLQA/AlLQA@/AlL QAF/AlLQA"/AlL`QA/AlLQA /AlLQAd/AlLQAˍ/AlLPQAΎ/AlLPQA:/AlLQA /AlLQAk/AlLQAm/AlL`QA/AlL QA/AlL QAt/AlLQAʒ/AlLQA$/AlL@QA/AlLQA/AlL@QAD/AlLQA/AlLQA/AlLQAP/AlL@QA|/AlL`QAÕ/AlL QA$/AlL"QA|/AlL $QA/AlL`%QA /AlL%QAH/AlL&QA/AlL@)QA՗/AlL-QA/AlL@0QAE/AlL1QA/AlL4QA/AlL4QAژ/AlL4QA/AlL4QA/AlL7QA˙/AlL9QA/AlL;QAn/AlL=QA̚/AlL`>QA/AlL?QA/AlLBQA:/AlLEQAŜ/AlL IQA(/AlLOQA/AlL TQA/AlL TQA/AlLVQA/AlL[QA/AlL`^QAݟ/AlL`_QA/AlLPdQAl/AlLnQA/AlLpQA֢/AlLpxQAգ/AlLQA:/AlLІQAp/AlLQAΥ/AlL@QA/AlLQA/AlLQAD/AlLQAB/AlLpQA/AlLQA/AlLQAg/AlLQA/AlLQA/AlLQAZ/AlL`QA/AlLQAڮ/AlLQAį/AlL`QA*/AlLQA/AlLQAQAXt/AlL`1QAt/AlL@+QA-*/AlLЍQA/AlLQAC}"k/AlLעQAPk/AlLԢQAk/AlL ϢQApl/AlL͢QAl/AlLʢQAl/AlLâQAm/AlLརQAtn/AlLâQA0o/AlL`QAo/AlL QAp/AlL@QAq/AlLQAq/AlLQAq/AlL QAq/AlLQAr/AlLQAWs/AlLQA6t/AlLQAt/AlL{QAAu/AlLrQAu/AlLiQAv/AlLbQA5v/AlL`QAv/AlLWQAw/AlLKQAw/AlL GQA[x/AlL@BQAx/AlL?QA y/AlL >QAy/AlLQAz/AlL`@QA{/AlLDQAU{/AlL`IQA{/AlLTQA{/AlL@PQA|/AlL 2QA ~/AlL QA^/AlLQA/AlL`QA/AlL஡QA*/AlLডQA/AlLQA/AlL@QA/AlL uQA/AlL fQA/AlL@OQA\/AlL`AQA/AlL0QAz/AlL #QA/AlLQA/AlLQA/AlLQA`/AlLޠQA/AlLנQA/AlL@РQAԆ/AlL ŠQA/AlL@QA؆/AlLQA/AlL QAt/AlLQA/AlL QA/AlLQAX/AlL`vQA/AlLlQA/AlLbQA_/AlLWQA#/AlL@PQAǃ/AlL HQAf/AlL@AQA /AlL:QA/AlL`4QA[/AlL`.QA#/AlL"QAv/AlL@,QA/AlL"QA׃/AlLQAۃ/AlLQA/AlLQA/AlLQA/AlLQAh/AlLQA#/AlL`CQA؆/AlL`9QA9/AlLMQA/AlLaQA/AlL`lQA2/AlLoQAs/AlLmQA/AlLmQA/AlLVQA/AlLOQAz/AlLFQA/AlL>QAG/AlL`8QA7/AlL(QA\/AlL!QA/AlLQAՌ/AlL QAD/AlL@QAӍ/AlLQAT/AlL@QAƎ/AlLQA,/AlLQA/AlLQA/AlL QAr/AlLQA/AlLQAn/AlLQA/AlLQA[/AlL QA/AlLQA/AlL QAH/AlL`QA/AlL`؟QAĔ/AlLҟQA /AlL@ʟQA/AlLQA1/AlL`QA/AlL@QA>/AlLQAN/AlL QAʘ/AlLQA4/AlL`˟QAt/AlLԟQAș/AlL`QA/AlLQA/AlL QA/AlL QA/AlL QA;/AlLQA/AlL@$QA/AlL (QA/AlL0QA/AlL3QA/AlL7QAќ/AlLX/AlL`QAW/AlL ߎQAW/AlLڎQA"W/AlLݎQAV/AlLQAV/AlL QA V/AlL ݎQAU/AlL@ގQAfU/AlL`QA$U/AlLQAT/AlLQAT/AlLQAJT/AlLQAS/AlL@QAqS/AlLQA&S/AlLQAR/AlLQAR/AlLQA)R/AlLQA{Q/AlL QAP/AlLQAKP/AlL`QA,P/AlLQAO/AlL`QA#O/AlLQAN/AlLQA(N/AlLQAM/AlLQAM/AlL@QAM/AlLQAsL/AlLQAK/AlL@QAK/AlLQA6K/AlLQAJ/AlLӎQAJ/AlLˎQA)J/AlLÎQAmI/AlLཎQAI/AlL`QA{H/AlLQAG/AlLQAG/AlLQAG/AlL`sQAYG/AlL`QAF/AlLMQApF/AlL?QA F/AlL-QAE/AlL`QAD/AlL@ QAC/AlL`QAUC/AlLQAB/AlLQAB/AlL`QAA/AlL@QA@/AlLQAy@/AlL`QA?/AlLQAN?/AlLQA>/AlLp׍QA>/AlL`֍QA=/AlLЍQAu>/AlL@QA>/AlLQA>/AlLQA>/AlL QA?/AlL@QA6?/AlL(QAk?/AlL4QA?/AlL?QA?/AlLHQA?@/AlLRQAt@/AlL[QA@/AlLcQA@/AlLmQA@/AlLtQA@/AlL`|QAA/AlLQA B/AlLʎQA%C/AlL QA*E/AlL~QAIE/AlL@QAF/AlL ֏QAF/AlLQAHG/AlLQAG/AlL`QA-H/AlL QAH/AlLQAH/AlL(QAI/AlL;QAI/AlL JQA J/AlLXQA/AlL]QA=/AlLYQAvQA./AlL@:QA./AlL/QA./AlL&QA5./AlL`'QA./AlLQA-/AlLQA6-/AlL%QA,/AlL/QA,/AlL`4QAT,/AlLQA+/AlLLQA-,/AlLNQA,/AlL@OQA-/AlLRQAb-/AlLdQA-/AlLQA-/AlL QA2./AlLQAd./AlL`5QAj./AlL ^QAt./AlLnQA./AlLQA./AlLQA //AlLQA$//AlLQAs//AlLQA//AlL QA//AlL(QA//AlL`:QA//AlLDQA0/AlLQQA*1/AlLQA1/AlLQA2/AlL@!QA83/AlLSQA3/AlL|QA/4/AlL`QAp3/AlL`QA/3/AlL@QA2/AlLQA2/AlLÝQA1/AlLQA0/AlLƝQAp0/AlLĝQA80/AlLQA//AlL@QA://AlLQA./AlLQA./AlL@QA-/AlLQA@-/AlLQA,/AlLĝQAb,/AlL@ĝQA,/AlL͝QA+/AlLӝQAT+/AlLםQA*/AlLםQA*/AlL՝QA*/AlL۝QAs*/AlLQAl*/AlL`QAX*/AlLQA;*/AlL QA*/AlL@QA)/AlLQA)/AlL QAz)/AlL,QA8)/AlL 2QA(/AlL1QAp(/AlL`5QA%(/AlL;QA'/AlL`EQA4'/AlLGQA&/AlLMQA%/AlLNQA%/AlL SQA%/AlL]QA$/AlL@cQAY$/AlL`iQA#/AlLtQA#/AlL tQAT#/AlL lQA#/AlLdQA"/AlLbQAF"/AlLdQA!/AlLiQA!/AlLoQA_!/AlLoQA!/AlLjQA /AlL@lQAG /AlLpQA/AlL@sQAh/AlLvQA /AlL|QA/AlLQA/AlL`QAR/AlLQA/AlLQA/AlLQA./AlLQA/AlLQA/AlLQA,/AlL QA/AlLQA3/AlLQA/AlLQA/AlL@QA/AlL QAt/AlLQA!/AlL@QA/AlLQAx/AlLQA/AlLQA\/AlL`yQA/AlLcQA/AlL`VQA/AlL IQA]/AlL;QAS/AlL`5QAH/AlL.QA/AlLQA/AlL QA/AlL@QAr/AlLQA=/AlL`QA/AlL QA/AlL`ԝQA/AlLÝQA/AlL QA/AlLQA/AlLZQA/AlLQA#/AlLQA(/AlL]QA/AlL@VQA/AlLVQAn/AlL [QA/AlL]QA/AlL `QA/AlL`QA/AlLcQA/AlLeQA /AlL@gQA/AlL`eQA9/AlLbQA/AlL aQAl/AlL rQA /AlL QA /AlLQA /AlL@QA` /AlLQAd /AlL QA /AlL̜QA /AlLߜQA /AlLCQA /AlL\QA /AlLpQA /AlLQAx /AlL@QAe /AlLQAg /AlLಝQA /AlLQA /AlLQA /AlLQAH /AlLQAm /AlL ՝QAu /AlLܝQAp /AlLQAb /AlL@QAU /AlL QA' /AlL@QA /AlLQAs /AlLQA* /AlLQA /AlL`QA /AlLQA /AlLQA /AlLQA /AlL`$QA /AlL7QA] /AlLGQA3 /AlLUQA /AlL@hQA /AlLxQA /AlL QA /AlLQA /AlL@QAN /AlL QA /AlL`QA, /AlL QAl /AlLQA /AlLQA- /AlLQAq /AlL@QA /AlLQA/AlL`QAM/AlLQA`/AlLQA_/AlL`QAN/AlL ڞQA8/AlLQA"/AlL QA&/AlLQA[/AlLGQA|/AlLjQA/AlLQA/AlL@QA/AlL`QA,/AlL`QA/AlLQA8/AlLQA /AlL&QA /AlL BQA> /AlLXQA /AlLwQA /AlL {QA /AlLyQA- /AlLyQA /AlLQA /AlLQA< /AlLQA /AlL{QA| /AlLvQA/AlL`mQA/AlLiQAt/AlLdQA/AlL\QA/AlLWQA6/AlLTQA/AlLMQAd/AlLEQA/AlL`=QA/AlL8QA@/AlL4QA/AlL`2QA/AlL@/QA:/AlL*QA*/AlL1QA./AlL CQAZ/AlLUQA/AlLlQA/AlL`yQA2/AlL QAx/AlLQA/AlLQA/AlL`QAK/AlLՠQA/AlLQA/AlLQA@/AlL`QA/AlL"QAd/AlL /QA /AlL6QA /AlL>QA /AlL FQA[ /AlL`KQA /AlL`PQA /AlLQA /AlLQA /AlL&QA$ /AlL -QA9 /AlL 7QAF /AlL@CQAV /AlL@RQA{ /AlLbQA /AlLlQA /AlLvQA /AlL`QA /AlLQA /AlL`QA$ /AlL@yQAA /AlL@sQAn /AlLjQA /AlLdQA /AlL[QA /AlLTQA/AlLWQAL/AlLaQAx/AlL`fQA/AlLnQA/AlLuQA/AlL}QA/AlLQA/AlLQA:/AlLQA}/AlL`QA/AlL QA/AlL@QA/AlLQA/AlL QAO/AlL~QA/AlL xQA/AlLrQAy/AlLnQA/AlLjQA$/AlLgQAw/AlLcQA/AlL_QA/AlLZQAF/AlLYQAJ/AlLP^QAP/AlLcQA(/AlLqQA/AlL}QA/AlL@QA/AlLQA/AlLQA/AlL@QAD/AlL`ʢQA/AlLQA/AlLEQA0/AlL`eQA/AlLQAM/AlL@QA/AlL`QA/AlLˣQA/AlLУQA/AlLףQA>/AlL@ڣQAt/AlLۣQA/AlLܣQA/AlLߣQA=/AlL ߣQA/AlLQA/AlLQA;/AlL QA/AlL@QA/AlLQA!/AlL QA/AlL ߣQA/AlLޣQA//AlLۣQA|/AlL ףQA/AlLףQA'/AlLݣQAY/AlL`QA/AlLQA/AlLQAE/AlLQA/AlLQA7/AlLQA/AlLQA/AlLQAg/AlLQA/AlLQA/AlLQA/AlLQA7/AlL ڣQA/AlL ͣQA/AlLQA/AlLQA/AlLQA/AlLQA0/AlLxQA>/AlLtQAx/AlLbQA/AlL[QA/AlLSQA/AlLIQA/AlL CQA/AlL@9QA /AlL0QA/AlL)QA/AlL QAl/AlL@QA,/AlLQA/AlLQA\/AlL`QA/AlL QA/AlL@QA/AlLQA/AlLޢQA/AlL ӢQA/AlL ̢QA2/AlLQA/AlL`QA/AlLQAX/AlLQA /AlLQA/AlLQA/AlLQAj/AlL`QAF/AlL`zQA/AlLtQA/AlLtQAb/AlLnQAo/AlLdQAx/AlLTQA/AlLSQA/AlLOQA*/AlLJQA/AlLAQA:/AlL/AlLQA>/AlL`QA @/AlL QA/@/AlL`TQAO@/AlL QAm@/AlL`ŢQA|@/AlLQA@/AlLQA@/AlLyQA@/AlL`QA@/AlLQAA/AlLQA4A/AlL QAA/AlL QAA/AlLࡢQAA/AlL QA!B/AlLQAUB/AlLQAB/AlLâQAB/AlLˢQA5C/AlL ԢQAC/AlL`עQA*D/AlLآQAD/AlLޢQA(E/AlLQAE/AlL QAF/AlLQAgF/AlLQAKG/AlLQARH/AlL@/QAH/AlL@7QAgI/AlLFQAI/AlLQQA!J/AlL gQAlJ/AlLwQA{J/AlL{QAJ/AlLQA-K/AlLQAK/AlL@QAL/AlLQADM/AlLyQAM/AlLvQAM/AlLuQAN/AlL@tQA`N/AlLtQAN/AlLwQA5O/AlL@}QAO/AlLQAyP/AlLQA'Q/AlL~QAQ/AlL xQAR/AlLlQAR/AlLhQAES/AlLfQAS/AlLeQALT/AlLjQAT/AlLsQAT/AlLQAhU/AlLQAU/AlL`QAV/AlLQAFV/AlL tQAV/AlLlQAV/AlLbQA W/AlLUQAW/AlL LQA!X/AlLOQAnX/AlLYQAX/AlLoQAtY/AlL|QAY/AlL|QA\Z/AlL`uQA9[/AlLbQA[/AlL _QA\/AlLZQA]\/AlL@WQA\/AlL@SQA\/AlLQQAG]/AlLOQA]/AlL@OQA^/AlLOQA^/AlLIQA7a/AlL+QARc/AlLQA@d/AlL@ QAd/AlLQAe/AlL QA f/AlL`QAf/AlLQAf/AlLQAg/AlLQAXh/AlLQAh/AlL`QAh/AlL`QAi/AlLQATi/AlLQAi/AlLQAi/AlL QAj/AlL`QAj/AlLܢQA"k/AlLעQA/AlLQAL/AlL QA/AlLQA/AlL QA/AlL`QA/AlLQA/AlLQA</AlLQAL/AlLzQAX/AlLqQAI/AlLhQA/AlL`aQA/AlLWQA/AlLQQA;/AlLGQA/AlL@=QA|/AlL9QA/AlL@6QA/AlL (QA/AlLQAL/AlL`QAg/AlL mQA/AlL`mQA/AlL`kQA`/AlLfQA/AlLaQA/AlLdQA/AlL@uQA/AlLQA/AlL̝QA/AlL ݝQAI/AlLQA/AlLQA/AlLQAf/AlLQA/AlL@ QA/AlL`QA/AlL`QAW/AlL@ҝQA/AlLQA/AlLQA./AlLQAy/AlL@QA/AlL஝QA/AlLQA/AlLଝQA/AlL@QAt/AlL`ʝQA/AlL ՝QA/AlL`QA</AlL@QA/AlLQA/AlL QAJ/AlL0QA/AlL`QAe/AlLQA/AlL@QA/AlLQA/AlL`QAb/AlLQA/AlLQA/AlL@QA/AlLQAB/AlLQA/AlLQA/AlLQAr/AlL,QA/AlL5QA/AlL;QA/AlL5QA/AlL4QA/AlL@6QA/AlL4QA%/AlL`6QA/AlL1QA/AlL.QA/AlL/QA#/AlL4QAA/AlL@7QA/AlL;QA/AlL`QAo/AlL`QA/AlLQA/AlLQA/AlL QA/AlL`QA /AlL@QA/AlLQAz/AlLQA/AlLQA/AlLڞQAX/AlL՞QA/AlLўQA/AlLɞQA/AlL`QAo/AlL`QA/AlL@?QA/AlL8QAT/AlL@9QA/AlL 6QA/AlL)QA/AlLQAC/AlLQA/AlL` QA/AlLQA:/AlLQAW/AlL.QAO/AlLe0AlL9QA=e0AlL )QA@Be0AlLQA@Ne0AlL QA^e0AlL`QAke0AlLQAie0AlL@QAae0AlLQA[e0AlL װQAne0AlL ɰQAe0AlL`°QAe0AlL QAe0AlLQAf0AlLQARf0AlLQApf0AlL୰QA@f0AlLQAf0AlLQAf0AlL`QA@f0AlL@QAf0AlL~QAg0AlLsQA@#g0AlLeQAAg0AlLUQA@dg0AlLJQAng0AlL =QAg0AlL 6QAg0AlL0QAg0AlL*QAh0AlL@'QA@'h0AlLQA@6h0AlL QAAh0AlL@QA@Uh0AlL@QAph0AlLQAh0AlL@QAh0AlL QAh0AlL@QAh0AlLگQA@}h0AlL֯QA@h0AlLǯQAh0AlLQA@h0AlLQAh0AlL৯QAh0AlLQA@h0AlLQAh0AlLQA@h0AlL QAh0AlLQAh0AlL zQAh0AlLrQA@h0AlLdQAi0AlL^QA3i0AlL]QAYi0AlL \QA@i0AlLWQAi0AlLNQA@i0AlL`4QAi0AlL`.QAi0AlL$QAi0AlLQAi0AlLQAi0AlLQA@.j0AlLQA@Oj0AlLQA@Nj0AlLQA@j0AlL QA@4j0AlL`֮QA@-j0AlL ˮQA@j0AlL QAVj0AlLQAzj0AlL@QAj0AlL QA j0AlL0QAj0AlL`QAj0AlL QAk0AlLYQAk0AlLXQA+l0AlLWQAWl0AlLNQA@l0AlL@EQAl0AlL;QA+m0AlL@6QAdm0AlL0QAm0AlL .QA@m0AlL(QA@m0AlLQA@n0AlLQA@'n0AlL QAn0AlLQA@n0AlL QA#o0AlLҭQA>o0AlLǭQAo0AlLQAo0AlLQAp0AlLQA"p0AlLyQA@jp0AlLdQA@p0AlL`IQAp0AlL2QA-q0AlLQA6q0AlLQA@q0AlL@QA@q0AlLQAr0AlL֬QA[r0AlL`QAr0AlLQAr0AlLQAr0AlL QALs0AlL ~QA8s0AlL xQA3s0AlL0uQA@*s0AlL0vQA@1s0AlLqQA&s0AlLqQA@s0AlLoQA s0AlLnQA@ s0AlLjQAs0AlLgQAr0AlLbQAs0AlL]QA@r0AlLYQAr0AlLYQA@r0AlL0\QAr0AlLWQAr0AlLXQAr0AlL XQAr0AlLpTQAr0AlLUQA@r0AlL`RQAr0AlLQQA@r0AlLNQAr0AlLMQAer0AlL`GQAZr0AlL0IQALr0AlL GQAHr0AlL@IQA7r0AlL@HQA@7r0AlLEQA?r0AlL DQA@:r0AlLPBQA@2r0AlLAQA+r0AlL=QA&r0AlL9QAr0AlL`7QA@r0AlL08QAq0AlL7QAq0AlL5QAq0AlL4QAq0AlL4QAq0AlL 1QAq0AlL.QAq0AlL@.QA q0AlLH/QA@q0AlL`,QAq0AlL,QA@q0AlL-QAq0AlL,QA@eq0AlL0(QAZq0AlL`&QAQq0AlLp'QA;q0AlL"QA6q0AlL@QAq0AlLQAq0AlL@QA@p0AlLQAp0AlLQAp0AlL QAp0AlL QAp0AlL` QAp0AlL QAp0AlL@ QAp0AlLQAp0AlL QAp0AlL0QAp0AlLQAp0AlL QA@p0AlLQAip0AlL`QASp0AlLQA@5p0AlLQA@$p0AlLQAp0AlLQAp0AlLQAo0AlLQA@o0AlLQAo0AlLpQA@o0AlL߫QAo0AlLޫQAo0AlL@۫QAo0AlLӫQAo0AlLЫQAzo0AlLϫQAoo0AlLΫQA]o0AlLɫQANo0AlLPǫQADo0AlL«QA@3o0AlLྫQA%o0AlLQAo0AlLQAo0AlLQA o0AlL0QAo0AlLQAo0AlLyQAo0AlLaQA@ o0AlLLQA@o0AlLQAo0AlLQA@o0AlLpQAo0AlLQAo0AlLQAo0AlL`QAo0AlLQA@o0AlL QAo0AlLتQA@o0AlLɪQAo0AlLĪQAo0AlL໪QAo0AlLQAo0AlLpQAo0AlLpQAo0AlLQAo0AlLQAo0AlLQA@o0AlLQAo0AlLpQAo0AlLQAo0AlLpڪQAo0AlL`QA@o0AlL QA|o0AlLQAUo0AlL QAMo0AlL` QA@=o0AlLQAo0AlL`-QAn0AlLP;QAn0AlLBQAn0AlLPNQAn0AlLOQAn0AlLPbQAn0AlL@hQAn0AlLdQAn0AlLjQA}n0AlLoQApn0AlLnQAon0AlLiQAQn0AlL hQA?n0AlL`QA!n0AlL eQA@n0AlLPdQAn0AlL`QAm0AlL`cQAm0AlL_QAm0AlL`SQAm0AlL@NQAm0AlLGQAm0AlL?QAm0AlLAQA@sm0AlLDQA@\m0AlL0=QA\m0AlL:QAem0AlL,QAom0AlL@!QA`l0AlLQAPl0AlLQAGl0AlLQA@l0AlLQAk0AlLQAk0AlL0QAk0AlLpQA@k0AlLQAk0AlLQAk0AlL`QAk0AlL0ߪQAk0AlLԪQAk0AlLϪQA@k0AlL@ͪQAk0AlLʪQAk0AlLŪQA@l0AlLԪQAk0AlLQA@3k0AlLQA)k0AlL0QAk0AlLpQA k0AlL@QAk0AlL QAj0AlLpQAj0AlLQA@j0AlLQAj0AlLQA@j0AlLQA@j0AlL`QAj0AlLQA@j0AlLQA@kj0AlLQAIj0AlLQA@&j0AlLQA(j0AlL|QAj0AlL|QAj0AlLxQA@j0AlLtQA$j0AlLrQAj0AlL0lQAj0AlLjQAi0AlLgQAi0AlLkQA@i0AlL`nQA@i0AlLmQAi0AlLgQAi0AlLaQAi0AlL]QAi0AlL XQAi0AlLOQAi0AlLIQA@i0AlL@QAi0AlL?QA@i0AlLP3QAi0AlL-QAi0AlL(QA|i0AlL` QAOi0AlLQA)i0AlLQAi0AlL QAi0AlL!QA@h0AlL $QAh0AlL$QA@h0AlL`!QAh0AlL QAh0AlL0#QA h0AlL QAh0AlLQAh0AlLQAh0AlL QAh0AlL0 QA@wh0AlLQAGh0AlL٩QA1h0AlLP̩QA(h0AlLũQA@h0AlL QAh0AlL`QAg0AlL`QAg0AlLЎQA@g0AlL QAg0AlLQAg0AlLrQAg0AlLbQAg0AlLRQAg0AlLpGQAg0AlLEQAg0AlL9QAg0AlL2QAg0AlL,QAg0AlL0#QAg0AlLQAg0AlLQA@tg0AlLQAlg0AlLpQA@^g0AlLШQA@Mg0AlLpQA@g0AlLPQA#g0AlL_QA@g0AlL7QAg0AlL@"QA@g0AlLpQA@g0AlLPQAg0AlL0QAf0AlL@ݧQAf0AlLקQAf0AlLQAf0AlL0QA@f0AlLQAf0AlL`QAf0AlLtQA@f0AlLHQAf0AlLQAf0AlL@QA@f0AlLpӦQAf0AlL ͦQAf0AlLQA@f0AlL`QAf0AlLPQAf0AlLQA@f0AlL QA@f0AlLqQA@f0AlLcQAf0AlLpSQAg0AlL@5QAg0AlLQAg0AlLQA@g0AlLPQAg0AlLХQA@0g0AlLpQA2g0AlLQA4g0AlLyQA3g0AlL@qQA~g0AlLQA@g0AlLݤQAg0AlLQA@g0AlLQAh0AlLhQAh0AlLPأQAh0AlLgQAWi0AlLQA@\i0AlLQAi0AlL஢QA@i0AlL QA@i0AlL@xQAi0AlLFQA@?j0AlL@QAfj0AlLQAsj0AlL QAj0AlL0סQAj0AlLQA@j0AlLQAk0AlLQAk0AlLwQA@k0AlLQAk0AlLQAl0AlLQAl0AlLpݠQAl0AlLPՠQA*l0AlLȠQAxl0AlL0QA@l0AlLQAl0AlLQA m0AlL`QAm0AlL`QA%m0AlL@ZQA@m0AlL7QA m0AlL)QAl0AlLQAl0AlL` QAol0AlLQAk0AlL@ߚQA;k0AlLҚQAk0AlLɚQAj0AlL`ĚQAj0AlLQAbj0AlL`QAFj0AlLบQAj0AlLQAi0AlLQAi0AlLQAii0AlL QA.i0AlLQA@$i0AlLQAh0AlLQAh0AlL`QA@Oh0AlL@zQAg0AlL@hQA@f0AlL RQAe0AlL*QA@rd0AlL QALbc0AҲf&QARc0AlLQA@_a0AlLPeQA@Aa0AlLlQA`0AlL@QA^0AlLQA@{]0AlLݙQA[0AlLpQA7Z0AlL QAX0AlLQA*X0AlLQA@W0AlL`QA@4X0AlLQAX0AlLeQAU0AlL6QAS0AlL0QA?U0AlL@QAU0AlL QAX0AlL`QAbZ0AlLQAhZ0AlLQA@?]0AlLPQA@\0AlLQA@$]0AlLQA]0AlLQA]0AlLQA@\0AlLQA]\0AlLvQA[0AlLjQA[0AlL`^QAP[0AlL@RQA@Z0AlLFQAZ0AlL:QAYZ0AlL.QAZ0AlL 'QAY0AlL` QAY0AlLQA+Y0AlLpQAX0AlLQA@X0AlLQAUX0AlLQAAX0AlLQAX0AlL0QA@W0AlLڔQAW0AlLהQA@W0AlL@єQAMW0AlL ̔QA@W0AlL`ƔQA@V0AlLཔQAV0AlLດQAV0AlLดQAMV0AlL`QA'V0AlLQAV0AlLඔQAU0AlL QAU0AlLpQAU0AlLQA@U0AlL@QA@pU0AlLQA_U0AlLQA?U0AlLQAU0AlLQA U0AlLvQAT0AlLkQAT0AlL`cQAT0AlL@[QAT0AlL`JQAT0AlL?QA}T0AlL,QA@KT0AlLQA2T0AlLQAT0AlLQAT0AlL0QAS0AlLQAS0AlL@QA@}S0AlLQATS0AlLQA%S0AlLQAS0AlL`QAS0AlLQA@S0AlLQA$S0AlLߓQA5S0AlLٓQA;S0AlLΓQA@2S0AlLēQAS0AlLQAS0AlL`QA@ S0AlLQA@R0AlLQAR0AlL`QAR0AlL QAR0AlL@QAR0AlL@QAtR0AlLQAsR0AlLoQAqR0AlLPgQA@pR0AlLaQApR0AlL^QArR0AlLUQA@gR0AlLAQATR0AlL4QA/R0AlL (QA@.R0AlLQA@;R0AlL QA@CR0AlLQA\R0AlLՒQAqR0AlL ˒QAeR0AlLདྷQA@`R0AlLQATR0AlLhQAQR0AlLQANR0AlL@QA5R0AlL@QA@R0AlLQA@Q0AlLPQAQ0AlLQA@Q0AlLQAQ0AlL@QAXQ0AlLQA3Q0AlLQAQ0AlL`QAP0AlLQA@P0AlL@QAP0AlL~QAP0AlLvQAP0AlLpoQAQ0AlL jQAQ0AlLpcQAQ0AlL`QA@Q0AlLRQA@Q0AlL@QAQ0AlL@4QA@1Q0AlL2QA@QQ0AlL@/QAQ0AlL,QAQ0AlL+QAR0AlL#QA_R0AlLQA}R0AlL QAR0AlLQAR0AlLQAyR0AlLQA@R0AlLQAR0AlLޑQAR0AlLԑQAR0AlLPΑQA S0AlL`ˑQAS0AlLPQA"S0AlL࿑QA$S0AlL0QA@%S0AlLQAR0AlLQAR0AlL@QAR0AlLQAR0AlL}QAFR0AlL{QAQ0AlLrQA@Q0AlLkQAQ0AlL`eQA@[Q0AlL`\QA@lQ0AlLSQAQ0AlLHQAQ0AlL@$QAQ0AlL`QABQ0AlL QAP0AlLQA@P0AlLQAP0AlL -QA{P0AlL`.QA@TP0AlL@0QAP0AlL"QAO0AlLQA@O0AlL QA@O0AlLQA@RO0AlLQA@O0AlLQAN0AlLQAN0AlLQAN0AlLQA}N0AlLQA@CN0AlLQAN0AlL QAM0AlLQAM0AlLڐQA@M0AlLېQA@|M0AlLސQA@M0AlLאQA.M0AlL̐QA M0AlL QA@L0AlL@QAL0AlLॐQAL0AlLQAL0AlLQA{L0AlL`QA@GL0AlL`}QAL0AlL{QAK0AlL@}QAK0AlLQA@K0AlL`QA@K0AlLQAK0AlLp~QAK0AlL}QApK0AlLzQAdK0AlLxQA(K0AlLxQAK0AlLtQA K0AlLtQALJ0AtQAJ0AlL`QAK0AlLQAJ0AlLQAJ0AlL0QAJ0AlL QA@J0AlLQAJ0AlLQAaI0AlL`֐QA@J0AlL QAH0AlLKQAI0AlLQAG0AlLQAG0AlLP;QAWH0AlLQAG0AlLQAG0AlL QAG0AlLQAlG0AlL ’QA@OG0AlL ΒQA@DG0AlL`ܒQA G0AlLHQAG0AlL@WQAF0AlL]QAF0AlL hQAF0AlLvQAF0AlL~QA@F0AlLQA@F0AlLQAF0AlLQA)F0AlLQA@E0AlL QAD0AlLQA@)D0AlL ˓QA@C0AlL@֓QAB0AlL`QAUB0AlLQAA0AlLQA@0AlL@!QA^?0AlL@QA,?0AlL0HQA?0AlLYQA?0AlL [QA @0AlL^QAZ@0AlL \QA|@0AlLRQA@0AlL MQA@0AlLGQA@0AlL@QA@0AlL`?QA@0AlL?QA&A0AlLCQA@A0AlLLQA@@0AlLQA]A0AlL#QA@A0AlL0QAA0AlL=QAA0AlLEQAGB0AlLMQAQAV10AlL`?QA@m10AlLpCQA@q10AlL@UQA\10AlLZQAN10AlLeQAc10AlLuQA@10AlL~QA@10AlL QA10AlL`QA10AlLQA20AlL QA320AlLQA620AlL`QA@020AlLQA@20AlLŖQA@10AlL˖QA10AlLۖQA10AlLQAX10AlL QA/10AlL@QA00AlL QA00AlL0QA00AlL BQA00AlL`OQA|00AlL`\QA[00AlLfQA<00AlLtQA00AlLQA 00AlLQA/0AlL QA/0AlL@QAu/0AlLQA//0AlL@QA.0AlLΗQA.0AlLٗQA@.0AlLQA<.0AlLQA.0AlL QA-0AlLQA@-0AlL@.QA-0AlL`@QAS-0AlLSQA%-0AlL_QA@-0AlLlQA,0AlLQA,0AlL`QA@,0AlLQA|,0AlLQAZ,0AlL@QA+,0AlL˘QAj*0AlLQA@A+0AlLڙQA+0AlL QA+0AlL QA+0AlL"QA@,0AlL)QA,0AlL0QA),0AlL5QAF,0AlLAQAO,0AlLHQA\,0AlL OQAk,0AlL`UQA@x,0AlL [QA,0AlLaQA,0AlLgQA,0AlLoQA@,0AlLwQA,0AlL`QAy,0AlL@QAn,0AlLQA?,0AlLQA@,0AlLQA+0AlLQA+0AlLQA+0AlL QA)0AlLyQA@'0AlLRQAL'0AlL\QAZ)0AlL gQAm)0AlLVQA@)0AlLFQA)0AlL)QA)0AlLQA)0AlLQA9*0AlLQA@*0AlL ֚QAz+0AlLQA@b+0AlL QA@I+0AlL@QA+0AlL#QA*0AlL5QA@*0AlLLQA"*0AlL@lQA)0AlLQA)0AlL QA)0AlLQA)0AlLQA)0AlL QA)0AlLQA@})0AlLQA)0AlLQA)0AlLQA@*0AlL@țQA6*0AlLΛQAo*0AlLԛQA@*0AlLٛQA*0AlL@QA/+0AlLQAO+0AlLQA@t+0AlLQA+0AlL QA+0AlL QA@+0AlL@QA+0AlLQA ,0AlL QA,0AlLQA5,0AlLQA\,0AlLQAy,0AlL` QA,0AlLQA,0AlL QA@,0AlLQA@,0AlL`QA-0AlL`QA4-0AlLQAQ-0AlL`QAq-0AlL@ QA/0AlL`eQA 00AlLQA@ 00AlLQA@G/0AlLQA-0AlLlQA@+0AlLLQA+0AlL@=QAH*0AlL"QA*0AlLQA@E+0AlL ĜQA@+0AlLQA@;,0AlLVQA@,0AlLƝQA,0AlL ѝQA-0AlL@ƝQA*.0AlL ˝QA /0AlLƝQA/0AlLÝQA/0AlL@ĝQA@900AlLQAn00AlL QA 10AlLQA@10AlL@QAA10AlL@QA]10AlL ؝QAl10AlLQAk10AlL QAk10AlLQAa10AlL@QA^10AlLQAY10AlLQAR10AlL0QAG10AlLQA10AlL[QA@10AlLQA10AlLQA10AlLQA420AlLޟQA:20AlLQA20AlLQA@20AlL`FQA@30AlLQA@^30AlL QA30AlL@QA30AlL`@QA@30AlLzQA30AlLQA@U40AlLQA50AlLQA50AlLáQA80AlLQA90AlLѢQAy90AlLQAh80AlL)QAN80AlL/QA@+80AlL6QA80AlL`?QA70AlL HQA70AlLOQA70AlLYQA70AlL`cQA@60AlL0QA@i70AlLQA[:0AlL0QA:0AlL%QA@:0AlL`-QA:0AlL@1QA:0AlL`2QA;0AlLP0AlL`1QA@?0AlL ZQA@&?0AlL`QA @0AlL QA8@0AlLQAc@0AlL॥QA@@0AlLQA@0AlL࿥QA@A0AlLΥQA A0AlLեQAA0AlLQA@A0AlL QAA0AlL QAA0AlLQA8A0AlL`3QA@A0AlLCQALA0AlLZQA@nA0AlLyQA@A0AlL`QAkA0AlLദQAKA0AlLƦQA#A0AlL QA@0AlL3QA@@0AlL\QA@0AlLQA@0AlLQA`w@0AlL(QA@@0AlLQA@=A0AlLQAA0AlL\QAA0AlL@QA@A0AlL QA@A0AlLpQA B0AlL èQA)B0AlL@ȨQAbB0AlL@̨QAB0AlL ϨQA@C0AlLҨQA@PC0AlL֨QA@C0AlL@٨QAC0AlL ݨQA@1D0AlL QA}D0AlLQAD0AlLQA@D0AlLQA@E0AlLQA`E0AlL@QAE0AlLQAF0AlLQA\F0AlL QAF0AlL`QA@F0AlL`QAF0AlLQAF0AlLQAG0AlLQA@,G0AlLQAHG0AlL`*QAaG0AlL:QA|G0AlLEQAG0AlLSQAG0AlLpVQAG0AlLaQAG0AlLmQAH0AlL}QA@2H0AlLQA@fH0AlLQAH0AlLQAH0AlLQAH0AlL̩QA3I0AlLީQATI0AlL QA|I0AlL@QA@I0AlL`QAI0AlL`QAI0AlL@QA@I0AlL%QA@I0AlL,QAI0AlL`6QA@ J0AlL BQA2J0AlL`JQA@[J0AlLRQA@pJ0AlLSQAJ0AlLVQAJ0AlL\QA!K0AlLaQAzK0AlL@fQAK0AlLhQA@8L0AlL iQA@^L0AlL@lQA@|L0AlLmQAM0AlL@sQA@0M0AlL@uQAaM0AlL`xQAzM0AlLyQAM0AlL|QAM0AlL~QAM0AlLQAM0AlL@QAM0AlLQAM0AlLQAN0AlLQA6N0AlL@QAVN0AlL`QAwN0AlLࢪQAN0AlLQA@N0AlL४QA@N0AlLQA@N0AlLQA@O0AlLQA@O0AlLQA2O0AlL`QAXO0AlL`ȪQApO0AlLͪQA@O0AlLѪQA@O0AlLQA@O0AlLQAO0AlLQAP0AlLQA@*P0AlLQA`P0AlLQA@P0AlLQAP0AlL QAP0AlLQAP0AlL QAP0AlLQAQ0AlL QAQ0AlLQAQ0AlL%QAP0AlL0QA@P0AlL`?QAP0AlLKQAP0AlLVQAP0AlLgQAP0AlL@yQAP0AlLQA@~P0AlL ЫQAP0AlLCQA@O0AlLYQAO0AlLsQA@O0AlLQAO0AlL8QAO0AlL`QAO0AlL೬QAO0AlL`ĬQA@O0AlLQAO0AlLQA\O0AlLGQAO0AlL`KQAO0AlLMQAO0AlL PQA@P0AlL@RQA@:P0AlL SQAZP0AlLQQA{P0AlLRQAP0AlLRQAP0AlL`RQAP0AlLZQA@P0AlL cQAP0AlL@nQAQ0AlLzQA Q0AlLQAQ0AlLQA.Q0AlL`QANQ0AlLQA@LQ0AlL`̭QARQ0AlL ܭQAFQ0A3sQA8Q0AlL@QA"Q0AlLQA Q0AlL QAP0AlL QAP0AlLQAP0AlL`QA@P0AlL`QAP0AlL`$QA6P0AlL8QAP0AlL:QAO0AlL@QAO0AlLGQAO0AlLOQAO0AlLXQAO0AlL fQAO0AlLqQA@O0AlLzQAO0AlL QAO0AlLQAO0AlLQAxO0AlL QA@gO0AlL@QA@WO0AlL@QAJO0AlL̮QA=O0AlL֮QA!O0AlLQAO0AlLQA O0AlLQAO0AlLQA@%O0AlLQA@+O0AlLQA@O0AlL%QAgO0AlLKQAtO0AlLYQAO0AlLhQAO0AlL wQAO0AlL QAO0AlLQA@O0AlLQAO0AlL@QA1P0AlLQApP0AlL`QAP0AlL`QA@P0AlLQA|Q0AlLQA@R0AlL௯QA2R0AlL@QA@qR0AlL QAR0AlL@QAR0AlLQAS0AlL`ůQA\S0AlL@ʯQAS0AlL@̯QAS0AlL̯QA@T0AlL ίQAlT0AlLίQAT0AlLϯQAT0AlLկQA@3U0AlL`ׯQAeU0AlLگQAU0AlLۯQA@U0AlL`ۯQAU0AlL ۯQAQA V0AlLEQA@(V0AlL IQA@V0AlL HQADV0AlL?QAFV0AlL8QA@IV0AlL/QA\V0AlL %QAV0AlL QA@V0AlL QAV0AlLQA@V0AlL`QA"W0AlLQA@FW0AlLQAoW0AlLQAW0AlL` QAW0AlLQAW0AlL@QAW0AlL!QAW0AlL&QA@W0AlL)QA@W0AlL@-QAW0AlL`1QA@sW0AlL:QA>W0AlL`>QA!W0AlL@QAV0AlL>QAV0AlL\0AlL`QA\0AlLQA[0AlL@ QA[0AlLQA^[0AlLQA0[0AlL QA@Z0AlL 6QA@Z0AlL`IQA[0AlL]QAh[0AlL@rQA@[0AlLyQA@[0AlL QA[0AlLQA\0AlL QA]\0AlLQA~\0AlL`QA@\0AlLQA\0AlL QA@\0AlLQA\0AlLQA]0AlLQA]0AlL@ҲQA]0AlLòQA]0AlL QA]0AlLQA@\0AlL@QA@]0AlLQA@]0AlLwQA$]0AlL`kQA@;]0AlL@_QAF]0AlLUQA@)]0AlLIQA ]0AlL@FQA]0AlL@;QA]0AlL`0QA@\0AlL $QA\0AlL@ QA\0AlLQA\0AlL@QA\0AlLQA@\0AlLQA\0AlLQAVX0AlL QA7X0AlLQAX0AlLQAW0AlL@QAW0AlLQAW0AlL`QAyW0AlL QAW0AlLװQAW0AlLӰQAW0AlL̰QA X0AlLİQAW0AlL QAW0AlL`QAW0AlL`QAW0AlL`QA@W0AlLQA}W0AlL@QAmW0AlL`QA@]W0AlLQAMW0AlL@}QA>W0AlL tQA:W0AlL@pQA6W0AlLkQA>W0AlL@bQA@PW0AlL [QAdW0AlL`QQA@sW0AlL@IQA@W0AlL@BQA@W0AlL8QAW0AlL2QA@W0AlL /QAW0AlL`-QAX0AlL@.QA1X0AlL2QA@X0AlL:QA@X0AlL8QAW0AlL8QAX0AlL@QA X0AlLHQAX0AlLOQAX0AlLXQA#X0AlL`QA'X0AlLdQA/X0AlLkQA4X0AlLrQA:X0AlL zQABX0AlL@QAKX0AlLQAUX0AlLQA]X0AlLQAbX0AlLЧQAiX0AlLQAqX0AlL QAX0AlL@QA@X0AlLͰQAX0AlLذQAX0AlL QAX0AlL`QAX0AlL`QAX0AlLQAX0AlLQA@X0AlLQAX0AlLQAkX0AlL QAVX0AlL QA@R<0AlLړQAH<0AlL`“QA?0AlL@ēQA?0AlLQA@0AlLgQA@A0AlLHQA%A0AlL`CQA=A0AlLBQAwA0AlLDQAA0AlL`AQAA0AlL@B0AlLQADB0AlLQArB0AlLߒQAB0AlL@ɒQA@B0AlLQAB0AlLࡒQA@B0AlLQA@B0AlLvQAB0AlLMQAB0AlL@LQAsB0AlL MQANB0AlLNQA%B0AlLPQAA0AlL`SQAA0AlL@[QA@A0AlLlQAiA0AlL@tQA@MA0AlLuQA@0AlL QA@a@0AlLQA>@0AlLQA@@0AlL`QA@?0AlL QA@?0AlLQA?0AlLQA?0AlLIQA?0AlLIQA@0AlL QAB0AlL +QAB0AlL QA@IC0AlL`)QAD0AlL QAD0AlLQA.E0AlLQARE0AlLQAE0AlLӑQAE0AlL‘QAE0AlLПQA@JE0AlLQAD0AlLmQA;D0AlLSQAC0AlL;QAB0AlL`QAuB0AlL` QA B0AlL@QAA0AlLԐQA@~A0AlLҐQA>A0AlL`ϐQAA0AlL@̐QA@@0AlL ȐQA@0AlLÐQA@0AlLQA@0AlLQA]@0AlL@QA&@0AlLQA?0AlLQA?0AlLQA?0AlL@QA?0AlL`tQA?0AlLkQAc?0AlLdQA@=?0AlL\QA ?0AlL SQA@>0AlL KQAy>0AlL@HQAG>0AlLFQA@.>0AlLDQA@l=0AlLkQA<0AlLQAx;0AlLːQA:0AlL`QA@90AlLQA80AlL=QA 80AlL`^QAu70AlLlQA.70AlLqQA60AlL`yQA50AlLQA@40AlLQA40AlLEQA30AlL QA30AlLP QA@Z30AlLQAK30AlLQAb20AlLQA@10AlLQA@10AlLQA10AlL%QAl10AlL4QA]10AlL>QA410AlLRQA00AlLdQA@00AlL`sQA00AlL|QA00AlL`QA@00AlLQAp00AlL@QA`00AlL@QAO00AlL QA@D00AlLQA>00AlLÑQA=00AlL@БQAA00AlLۑQAJ00AlLpޑQAU00AlLQAk00AlLQA00AlL@QA@00AlLQA10AlL@QAV10AlLQA@10AlLQA@10AlLQA20AlL@QA630AlL QAU30AlL@#QA{30AlL )QA30AlL`/QA30AlL8QA30AlL>QA30AlLAQA@40AlLBQA(40AlL=QA040AlL6QA<40AlL/QAX40AlL(QA40AlL(QA@40AlL`.QA40AlL5QA40AlL?QA@40AlLFQA@40AlL FQA40AlL@QA40AlL@;QA50AlL >QA750AlL@QAh50AlL@@QA@y50AlL@;QA@50AlL`8QA50AlL8QA50AlL IQA@50AlL@UQA}50AlL`[QA00AlLΒQA>/0AlLQA@.0AlL`QA.0AlLQAp.0AlL QA.0AlL QA-0AlL QA@-0AlLQA-0AlL@QA@r-0AlLQA7-0AlL QA-0AlL#QAA-0AlL.QAc-0AlL 6QA-0AlL@QA@ .0AlL@.QA,.0AlL)QA@M.0AlL(QA@l.0AlL(QA.0AlL5QA@.0AlLAQA.0AlL@OQA/0AlL`[QA6/0AlL@dQA;/0AlL fQA@b/0AlLsQAi/0AlLPuQA@/0AlLp|QA/0AlLQA!00AlL QAv00AlL`QA00AlLQA+10AlL˓QAf10AlLדQA10AlLQA20AlLQAB20AlLQA20AlL@QA@20AlL@ QA20AlLQA20AlLQA20AlL@ؓQAn20AlL`ʓQA@20AlLQA20AlLQA10AlLQA@10AlL@sQA10AlLIQA10AlL@;QA10AlLQA@10AlLQA10AlL QA@10AlLQA10AlLQA-20AlLQA;20AlL QA=20AlL`QAR20AlL`QA20AlL QA20AlL QA20AlL@QA20AlL QA20AlLQA30AlL@QA?30AlL QAb30AlLQA@30AlL"QA30AlL %QA30AlL`QA30AlLQA30AlLQA40AlL QA<40AlLQA@n40AlLQA40AlL QA@40AlL`QA40AlLhQA40AlLQA40AlL!QA40AlL(QA50AlL0-QA/50AlL5QA@?50AlL;QAZ50AlL`@QA@t50AlL ?QA50AlL 0AlL QA30AlL@۹QA0AlL@ϹQA0AlLʹQA0AlL@ŹQA0AlL`QA@0AlLQA0AlLQA0AlLQA0AlLQA0AlL@QA@Բ0AlLQADz0AlLQA@0AlL@QA0AlLQA@0AlL`bQAz0AlL`KQAz0AlL`HQA0AlLFQA@0AlLEQA0AlL DQA0AlLBQADz0AlL`0AlLgQA`90AlL`dQA@(0AlLYQA0AlLVQA@0AlLRQA@0AlLNQA@0AlLKQAڢ0AlL3QA0AlL /QA0AlL/QA0AlL&QAz0AlL QA^0AlLQAK0AlL QAB0AlL@QA,0AlL QA"0AlLQA0AlL`QA@0AlL QA@0AlL QAϡ0AlLٵQA0AlL@ֵQA@L0AlLɵQA@*0AlLɵQA@0AlL@ȵQA0AlLƵQA@0AlLȵQA͠0AlL`ĵQA0AlLQA0AlL@QAf0AlL@QA@J0AlLQA0AlLQA@0AlLQA0AlLQA@0AlL`QAu0AlL@QAY0AlLQA<0AlLQA'0AlLQA 0AlLQA0AlL@zQA@0AlL@uQA0AlLqQA@Ξ0AlLkQAÞ0AlLfQA0AlLcQA0AlL[QA@0AlL@YQA0AlL XQA0AlL`UQAg0AlL@MQA@H0AlLCQA@80AlL@QA50AlLpQA@0AlL>QAm0AlLBQAJ0AlL HQA10AlLMQA0AlLUQA׉0AlL[QA0AlL]QA@0AlL`QAZ0AlL``QA@0AlL@dQA0AlL`pQA0AlL}QA0AlLQA0AlL QA0AlLQA@ʈ0AlL@QA@0AlLɴQAJ0AlL ѴQA@0AlL`شQA܇0AlLQA0AlL QA0AlLQALJ0AlL#QA@0AlL:QAx0AlLJQA@h0AlL `QAJ0AlLtQA@/0AlL QA@0AlLQA0AlL`QAĆ0AlLଵQA@0AlL0QA0AlL@QAx0AlLŵQA[0AlLϵQA@+0AlLQAQ0AlL@QA0AlLQA0AlLQA@0AlL QAz0AlL QAo0AlL`QA@0AlL(QA0AlL@1QAԆ0AlL@QA@0AlLUQA0AlLhQA@ 0AlL }QA#0AlLQAU0AlL@QA~0AlL QA0AlLQA@Ƈ0AlL0QA0AlL@QA0AlLp~QAA0AlL@QAw0AlLQA0AlLQAψ0AlLQA0AlL@QA70AlLQAf0AlLQA 0AlLcQA80AlLkQAl0AlLvQA0AlLpQA0AlL@QA@0AlL`QA@y0AlL QAa0AlLQAD0AlLQA@0AlL QAÉ0AlLQA0AlLĶQA0AlL@϶QA 0AlLP޶QA@f0AlLQA@00AlL QA0AlL@QAƈ0AlLQA0AlLQA^0AlLQA0AlLQA0AlL`QA@0AlL@QA0AlLQA·0AlLQA0AlLQAq0AlL`QAB0AlL`QA0AlL QA0AlL`QA0AlL`(QA݆0AlL6QAφ0AlL`CQA@0AlLKQA0AlLMQA?0AlL@LQA0AlLLQA0AlLLQA0AlLTQAs0AlL_QA0AlL qQA@0AlL QA0AlL QA@E0AlL@QA0AlL QAՃ0AlLQA@0AlLQA@h0AlL ~QAB0AlLQA*0AlL QA@%0AlLQA;0AlLQA@n0AlLQA@0AlL QAӃ0AlLQA0AlL`QA@u0AlL@÷QA@0AlL`̷QAӄ0AlLַQA@݄0AlLQAڄ0AlL`QA0AlLQA>0AlLQA@0AlL'QA0AlL6QA@&0AlL@6QAB0AlL6QA@a0AlL:QA0AlLFQA0AlLOQA0AlLYQA@ن0AlLaQA0AlLcQA/0AlLgQAx0AlLmQA0AlL{QA@Ӈ0AlL@QA0AlLQA0AlLQA0AlL@QA'0AlLQAO0AlL QAy0AlL`QA0AlL`QA0AlL୸QAވ0AlLQA@0AlLQA0AlLQA@?0AlLQA@a0AlL QA0AlLǸQA҉0AlLǸQA0AlL ƸQA0AlLQA0AlLQA/0AlL QA@H0AlLŸQA_0AlL ʸQAm0AlL`ѸQAu0AlLڸQA0AlL`QA0AlLQA0AlL QA0AlLQA0AlLQA@0AlLQA0AlL&QA@0AlL/QAӊ0AlL9QA@ފ0AlLBQÅ0AlLLQA0AlLUQA0AlLdQA0AlLmQA0AlLuQA0AlL@~QA0AlLQA@0AlLQA0AlLQA@0AlL@QA@0AlL`QAƊ0AlLഹQAÊ0AlL¹QAЊ0AlLйQA0AlLعQA0AlL߹QA0AlL`QA@0AlLQA@Ɋ0AlL@QAƊ0AlLQA@ӊ0AlL+QÅ0AlL5QAȊ0AlL`FQA0AlL`OQA؊0AlLdQA0AlLhQA@"0AlL`gQA@J0AlLgQA@p0AlL@eQA0AlL ZQA0AlLNQA0AlLIQA0AlL IQA0AlLQQA&0AlL`ZQA@?0AlL fQAo0AlLjQA0AlLdQA0AlL@]QA@ƌ0AlL XQAߌ0AlL@PQA0AlLGQA0AlLBQA@0AlL=QAG0AlL0AlLQA@P0AlLQAT0AlLQA"0AlLQAx0AlLѼQA@Ǜ0AlL¼QA0AlLຼQA0AlLQAm0AlL QA0AlLQA0AlLQA@0AlLƼQA0AlL@̼QAY0AlL μQAy0AlLѼQA@0AlLܼQA0AlLQAߝ0AlL`QA@0AlLQA0AlL`QA50AlL QAO0AlL` QA@p0AlL`QA0AlLQA˞0AlL@QA@0AlL QAX0AlL@QA@0AlLQA0AlLQA@0AlLQA:0AlLQA0AlLQA@ܠ0AlL QAG0AlL QA@`0AlLQA0AlLQA@ԡ0AlLQA0AlLQA 0AlL QA*0AlL QAPNs)/A42@`_oQA_/AlL`xQAJ/AlL`xQA4K/AlL xxQA1K/AlL`oxQAK/AlLgxQAK/AlL`xQA.K/AlLTxQA-K/AlL NxQAK/AlL@DxQAJ/AlL@>xQAK/AlL`4xQA.K/AlL/xQAxK/AlL@&xQAIK/AlL #xQAK/AlLxQA.K/AlL@xQAsK/AlL`xQAK/AlLxQAK/AlL wQAK/AlLwQAK/AlL@wQAL/AlL`wQA#L/AlL wQA8L/AlLwQAXL/AlLwQA}L/AlL@wQAL/AlLwQAL/AlLwQAM/AlLwQAM/AlLwQAM/AlLwQAN/AlL uwQAN/AlL`lwQAM/AlLdwQAN/AlL@^wQAN/AlLVwQA=N/AlL`MwQASN/AlL@wQAbN/AlL7wQAJN/AlL 0wQALN/AlL'wQA]N/AlLwQAdN/AlLwQAN/AlL wQAN/AlLwQAO/AlLvQAO/AlLvQAO/AlLvQAO/AlLvQAP/AlLvQAP/AlLvQAP/AlLvQAP/AlLvQA P/AlLvQAP/AlL`vQA$P/AlLvQA=P/AlL vQADP/AlL`{vQAQP/AlLovQALP/AlL fvQAtP/AlL^vQAP/AlLUvQA Q/AlL NvQAbQ/AlL LvQAQ/AlLGvQAQ/AlL@vQA8R/AlL5vQApR/AlL*vQAR/AlL#vQAR/AlL@vQAR/AlL vQAS/AlL@vQA0S/AlLvQAYS/AlL uQAS/AlL@uQAS/AlLuQAS/AlLuQAT/AlLuQALT/AlLuQAT/AlL@uQAT/AlLuQAU/AlLuQAYU/AlLuQAU/AlL`uQAU/AlL uQAU/AlLuQAV/AlLuQADV/AlLuQAoV/AlLuQAV/AlLuQAV/AlLuQARW/AlLuQAW/AlL`uQAW/AlL uQAW/AlL uQAHX/AlLuQAX/AlLuQAX/AlLuQAX/AlLuQA5Y/AlLuQAjY/AlL uQAY/AlL`|uQAY/AlLsuQAZ/AlL@ouQAXZ/AlL@huQAZ/AlL`_uQAZ/AlLWuQAZ/AlLJuQAZ/AlLAuQAZ/AlL:uQA[/AlL 5uQA[/AlL/uQA6[/AlL@)uQA@[/AlL`#uQA [/AlLuQA[/AlL@uQA[/AlL@uQA*[/AlL0 uQAC[/AlL@uQAU[/AlL@tQAv[/AlLtQA[/AlLtQA)\/AlL`tQA\/AlL@tQA ]/AlL tQA]/AlL@tQAm^/AlL@tQA^/AlLtQA'_/AlL|tQAQ_/AlLrtQAw_/AlL ktQA_/AlLctQA_/AlLXtQA__/AlLRtQAJ_/AlLLtQA_/AlL JtQA^/AlLLtQAr^/AlLJtQAS^/AlL DtQA^/AlL@@tQA]/AlL`8tQA]/AlL0tQA]/AlL$tQAs]/AlLtQA;]/AlLtQA]/AlLtQA\/AlL tQA\/AlLtQA\/AlLsQA}\/AlLsQA\/AlL`sQA\/AlLsQA\/AlL@sQA\/AlLsQAk\/AlL@sQA,\/AlL sQA[/AlLsQA[/AlLsQA[/AlLsQA[/AlL@sQA}[/AlLЫsQA3[/AlL@sQA[/AlLsQA([/AlL`sQAW[/AlLsQA[/AlLsQAZ/AlLsQAZ/AlLsQAZ/AlLsQAZ/AlLusQAZ/AlL msQAhZ/AlLisQAZ/AlL@fsQAY/AlL[sQAY/AlL@TsQAY/AlL`MsQAtY/AlLEsQAMY/AlL@sQA$Y/AlL :sQAX/AlL`4sQAY/AlL'sQA$Y/AlLsQA=Y/AlL sQA[Y/AlLsQAvY/AlLrQAY/AlL`rQAY/AlLrQAY/AlLrQAY/AlLrQAY/AlL`rQAY/AlLrQAtY/AlL`rQATY/AlLrQABY/AlL}rQAX/AlL orQAX/AlL brQAX/AlL@SrQAcX/AlLFrQA(X/AlL9rQAW/AlL+rQAW/AlLrQAW/AlL@ rQAW/AlLqQA)X/AlLqQAaX/AlLqQA|X/AlLqQA{X/AlLqQA\X/AlLqQAMX/AlLqQAUX/AlL`qQAgX/AlLqQAyX/AlL@qQAX/AlL`qQAX/AlL qQAX/AlL@qQAX/AlL wqQAX/AlL@mqQAX/AlL@dqQAX/AlL[qQAX/AlLRqQAmX/AlLLqQA`X/AlLAqQAqX/AlL`5qQAvX/AlL(qQAsX/AlL@qQAzX/AlLqQAX/AlL qQAX/AlLpQAX/AlL@pQAX/AlLpQAX/AlLpQAX/AlLpQAY/AlLpQAY/AlLpQAY/AlLpQA5Y/AlLpQAY/AlL pQAdKY/AP?pQAY/AlLpQAY/AlLpQALY/AlLpQAY/AlL`~pQAX/AlL`zpQAZX/AlLrpQAW/AlLkpQAvW/AlL@_pQAW/AlLPpQAV/AlL?pQAWV/AlL(pQA$V/AlL`pQAU/AlL pQAU/AlLoQAU/AlLoQAU/AlLoQAfU/AlL oQAT/AlLoQAT/AlL oQAT/AlL`oQANT/AlL oQAT/AlLoQAS/AlLoQArS/AlLxoQA%S/AlLroQAR/AlL@poQA]R/AlL`moQA0R/AlLploQAR/AlLloQAQ/AlLjoQAQ/AlLioQAQ/AlLioQAHQ/AlLhoQA Q/AlLfoQAP/AlLcoQAhP/A42@`_oQAXJP/AN|oQAm0P/ANoQAP/A\cH oQAO/AJ oQA(Q{meO/AEoQASm O/A8KoQAZN/AMM@oQA8:3N/A42@oQA qMGN/AEoQAumN/AA oQA M/AE@oQAU@M/AMM oQA M/ANoQA9hM/AEoQAum*M/AJoQAH#L/AA@oQAumL/AFoQA^xL/A42@oQAumGL/A42@oQAH#l L/ANoQA>K/A8K@oQAum\K/ANoQAX -K/AFoQA J/AJoQAH#lJ/AFoQA@CJ/AƎ>@oQAlZJ/A8K oQA^FJ/AE@oQA4J/AFoQAl&J/AJ oQA zJ/AJoQAJ/ANoQAH#I/AF@ pQAI/AA@ pQA0clxI/A\cH2pQA7I/AyCApQAP,uI/AE GpQA'H/AJ`SpQAnSH/AAZpQAhl,H/AN^pQA~G/A42@cpQA@lG/AMMhpQA'G/AJnpQA@l`G/A\cH vpQA0:G/AMM~pQAGlF/AE pQAMlF/AE`pQAxՈF/AA pQA3F/AyCpQAxՈRF/AFpQAn/F/A8KpQA aF/AApQA@lE/A42@ pQAhZlE/AyCpQA0llE/AJpQAQE/AE pQAP5kE/AFpQAD/A8KpQAP l\D/AA pQAp!D/ANpQA(C/AFqQA9B/AEqQAOB/AA"qQA}A/AF;qQApA/A42@EqQAP>k@/AF@MqQAk@/AyCYqQA(uC@/AƎ>eqQA3@/A42@nqQȀ@/A8K}qQA"|?/AyC qQAk@/AMM@qQAYk7@/AyCqQA8ukL@/AMMqQȀ-@/A8K@qQA9@/AEqQA"|k@/A42@qQAyh?/AEqQA(u?/A42@qQA Gkf?/A\cH qQA;?/AJqQA"|k?/A\cHqQA>/AMMqQAH^[>/AMMqQA>/AErQȀ^>/A42@rQAH^[6>/AF rQA:k=/AyC rQA(u=/A8K@rQA8~-kR=/AA !rQAyh=/A\cH(rQA:kqQAXGk[;/AMMqQAI;/AF`qQApj#;/AƎ>qQA8~-:/AƎ>qQA :/AJ@qQAb }:/AyCqQA@jJ:/AAqQAK:/AƎ>`qQA–9/AAqQAkj9/AFqQAkjg9/AJ@qQA9/AE qQA@j8/AE`rQA–8/AyC`rQATbu8/AJ rQAxj[8/A\cHrQAj8/AyC!rQAkj8/AyC@'rQAx8/A\cH/rQA j8/AJ6rQAj8/AyCArQAHg8/AFHrQAHg8/AALrQAjz8/A8K@KrQAvK8/Ade~IrQATb'8/AMMNrQA7/AJVrQAPpo7/AA arQAh9U7/AƎ>frQAHa7/A8KirQAPpo57/AFjrQAkj6/A42@lrQA06/A8KirQA [j6/A42@drQAXPj}6/AyCYrQA [r6/AFPrQA4Z6/A8KErQA|6/AyC@GrQA05/AFIrQANjs5/A8K LrQA`Y'C5/A\cH NrQAj5/AƎ>LrQA@Aj4/AX<@JrQA [j4/AA@HrQA;)4/AX<DrQA-3/A8KArQAj3/AE>rQA o2/AJFrQAj)2/AyC`NrQA}i1/AX< SrQApB1/A\cHXrQA&R1/AE _rQA&0/AE`erQA`bi0/AA irQAJQ0/AjnmrQA //A3`vrQAޣZ//AVs1}rQAN //A|9rQAHZ./A]6 rQAN./A42@rQA0Z4./A42@rQAh9U-/AVs1rQAu-/A42@rQA= o-/AVs1rQA|;-/A8`rQAPpo-/AƎ>rQAaB,/A6rQA0Z,/A|9rQA=},/AG;`rQAN:,/A3rQAPy+/A8rQA;ڔ+/A]6rQA-j+/AƎ>`rQA-?+/AƎ>rQAZ+/AƎ>rQA0Z*/AX< sQAZ*/AX<`!sQA*/A/.sQAPyYX*/A3AsQA)*/A24PsQAPyY)/A8isQApBY)/A|9sQA Y)/A|9sQA`Y' )/A3@sQA-ڣ)/AVs1sQA )/A8sQA})/A8sQA )/A]6`sQAPyY*/A8`sQAG*/A|9tQAh9UZ>*/AG;@tQA]YC*/A8tQA=Y*/A42@ *tQA]Y*/AƎ>/tQAt4 */AVs1:tQAHZ*/A3AtQA@A*/A24CtQAPyY&+/A42@DtQA;Z+/AG;`BtQAu+/AG;>tQA-+/A/`?tQA [+/A24DtQAh9U+/A42@KtQA [+/A|9PtQAx+/AG;UtQA Zk+/AVs1]tQA@AB+/AVs1etQA;+/A]6jtQA*/A42@{tQAZ*/A/@tQA []*/AƎ>tQATbZ/*/AX<@tQAN*/AG;@tQA)/AVs1tQA0Z)/AG;tQA-Z)/AXtQAHZ)/AƎ>tQA*/AG;tQA;Z8*/AG;tQAt4 u*/A42@tQAh9UZ*/A8tQAh9U*/A8uQAh*/A8uQA Z*/A42@uQAHZ*/A3uQAt4+/A]6 uQAHZ[+/AX<@uQAHڅ+/AG;uQA0\+/A5'#uQA4 +/AX<@*uQA–Z,/AVs13uQA@A,/A]69uQA-ڸ,/AG; nuQATbZ6./AXnuQAZq./A|9vuQAZ./A3yuQA [ ./AX< {uQAXP //AX< uQAޣZ$//A8uQAZc//A42@uQA//A8uQA//A42@ uQA@//A42@uQA–Z//AX<@uQAKZ//A3uQA|Z//A|9uQAޣZ0/A8uQA@Q0/A24 uQA0/A/`uQAXG 0/A8uQA0/A]6uQAh01/A24uQAZ 1/A]6@uQA 1/AVs1 uQA0/A42@uQA[0/AX<` vQAp 0/A/@vQA–Zz0/A42@=vQA 0/AX@QvQA [0/AƎ>]vQAh0Z 1/A]6`lvQA O1/A]6@uvQA1/AƎ>vQA`'A[1/A3`vQA 1/AƎ>vQA$1/A vQAb 2/A3`vQA G C2/A42@vQAb 2/A24@vQA: 2/AƎ>vQA:3/AƎ>vQA`'A[3/A3 vQAXG 3/A42@vQA"| 4/A3@vQABN[ 4/A|9vQAT I4/AVs1vQAT4/AƎ>vQAT ;5/A42@vQAH^[[5/A3@vQAyh[(6/AVs1wQA|6/A|9wQA7/A8` wQAp[w7/A8wQA[7/AVs1wQA 8/A3wQA([8/A8`wQA`[9/A]6`wQA-pS9/AYq,wQA9/AVs1wQA9/AA@(wQAx\9/A82wQA@U9/AG;@;wQA@U[9/A24DwQA9/AA@PwQA9/A3YwQA':/A|9 ewQA\^:/A|9owQAp :/A8wwQAx\:/A42@}wQAP5\;/A3@wQA`-\;/AG;wQA`-\/A3`wQA@|>/AG;wQA a\>/AG; wQA a\?/A24wQA\&?/A24wQA\J?/AAwQAhZ?/AXwQAhZ ?/AG;wQAP,u+@/A24wQA'\s@/A3wQA{\@/A24@wQA z\@/AAwQA\A/AƎ>`wQAxՈ\.A/A8wQAH#,A/A8wQA@C\$A/AX<`wQA z\8A/A]6`xQABA/AG;@ xQA0A/A]6 xQA z\?A/AAxQAA/AX<$xQA0cA/A24(xQA@C\OB/AX<@*xQAHߨB/Aʗ+xQAB/AG;-xQA@C\C/A3*xQA SC/A|9&xQAC/A3 xQAx\D/A3)xQAH# ID/AG; ,xQAu D/A|9@4xQA, D/A|9@@yxQAg]MH/A8`{xQAhFH/AA{xQA I/AƎ>|xQAEI/A24`}xQAI/A24xQAX.bJ/A"uxQAJ/AlL`xQAJ/AlL`xQA;PB0AlL ~QAx0AlL`QAgƎ0AlL`QA<0AlLQA0AlL`QA 0AlLQA0AlL QA0AlLxQA0AlL@nQA0AlL`cQA0AlL [QA0AlLOQA0AlLCQA 0AlL@>QA@0AlL6QA@0AlL`+QA@10AlL@QA@B0AlL@QAm0AlLQA0AlL QAĎ0AlL`QA0AlL@QA@0AlL`QA 0AlLQA 0AlL پQA0AlL@ξQA0AlLQA@؎0AlLாQA@0AlL@QA0AlLQAz0AlLQAz0AlLxQA0AlLiQA0AlL@\QAݎ0AlLKQA0AlLBQA@0AlLAQA#0AlL:QAK0AlL`9QA0AlL=QAʏ0AlLCQA@0AlL MQA@'0AlLfQA@]0AlL`eQA0AlL@aQA0AlL`QAR0AlL `QA@0AlL@^QA@0AlL WQA0AlLMQA@0AlL?QA0AlL5QAˑ0AlL`+QA@0AlL#QA0AlLQA@0AlLQA@,0AlLQA@0AlLQA0AlLQAܒ0AlL@ QA"0AlL QAS0AlL@ QAܓ0AlL!QA 0AlL(QAE0AlL)QAu0AlL)QA0AlL +QA0AlL`)QA@0AlLQA0AlL`QA@0AlLQA0AlLֽQA0AlLϽQA@0AlLQA0AlLQA@0AlL`QA0AlL QAK0AlLQAu0AlLQA0AlL}QA͕0AlLwQA@0AlLrQA$0AlLkQAI0AlLgQA0AlL`^QA@0AlL ZQA0AlL OQA@0AlL`OQAO0AlL VQA0AlL`[QAϗ0AlL^QA@0AlL `QAH0AlL^QA@0AlL`\QA0AlL``QA0AlL_QA0AlL [QA>0AlLVQAY0AlL@SQA0AlLRQA@0AlLOQA@0AlL`JQA@(0AlLDQA@l0AlL>QA0AlL4QA@0AlL@$QAΚ0AlL@QAޚ0AlLQA0AlL@QA'0AlLQAU0AlL׼QAx0AlLѼQA"0AlLQAT0AlLQA@P0AlLQA>0AlLQA/0AlLQA0AlL~QA0AlLmQA0AlL^QA.0AlL SQA20AlLQQA80AlL@FQA@B0AlL:QAV0AlL -QAc0AlL QA`0AlL`QA@K0AlL QA,0AlL`QA0AlLQA0AlLQA@Ě0AlLQA@0AlL`QA0AlLQAs0AlLQAx0AlLQA0AlLQA0AlL`QAԚ0AlLۻQA0AlLѻQA0AlL˻QAҚ0AlLɻQA̚0AlLɻQA0AlL`̻QAo0AlLͻQAL0AlL`λQA80AlLɻQA20AlL ûQA80AlL QA@m0AlLQA0AlLQA0AlLࢻQA0AlL@QAz0AlLQA0AlLpQAZ0AlLtQA0AlLrQA0AlL sQAȚ0AlLsQA՚0AlLsQA0AlL`tQA0AlL`tQA10AlLoQA80AlL@nQA(0AlLcQA0AlL\QA@0AlL@VQA0AlL`KQA0AlLAQAۚ0AlL`5QA՚0AlL,QA0AlL &QA0AlL!QA\0AlLQA@)0AlL`QA0AlL%QA0AlL!QAә0AlLQA0AlLQA@0AlL`QA0AlLQAb0AlL QAF0AlL@QA&0AlL QA0AlL@QAؘ0AlLQA0AlLQA0AlL`ݺQA@U0AlL׺QA0AlLӺQA 0AlLҺQA0AlL0ѺQAӗ0AlLֺQA@ė0AlL޺QA0AlLQAs0AlL@QA@b0AlL@QA20AlLQA0AlL'QA0AlL9QA@0AlLHQA0AlLXQA@֖0AlL@aQAy0AlLvQAW0AlL`uQA90AlLpQA0AlLpQA0AlL{QA@ԕ0AlLQA@0AlL`QA0AlLQA^0AlLQAD0AlL`QA@20AlL@QA 0AlLQA0AlLQA0AlL QAr0AlLQA@ 0AlLQA@0AlL଻QA֓0AlLQA0AlL@QA 0AlLyQA&0AlL sQA60AlLhQA0AlL\QA0AlL6QA0AlL@+QA@0AlL`QA@+0AlLQA@D0AlLQAS0AlLQAf0AlLQA0AlLQA0AlLںQA@ϓ0AlLͺQA0AlLQA0AlL QA 0AlLQA 0AlLQA0AlLQA@a0AlL QA@0AlLQA'0AlL@QA@0AlL`QA0AlL@QAʑ0AlLQA0AlL@QAd0AlL@QAB0AlLQA0AlL{QA0AlLsQA0AlLgQA0AlL\QAΐ0AlL`\QA@0AlL`QA@|0AlLpbQAL0AlL ]QA#0AlL YQA0AlLVQA0AlLYQA@M0AlLXQA$0AlL XQA0AlLTQAҎ0AlL KQA0AlL@QA@0AlL5QA0AlL@)QA@0AlL "QA@k0AlL0 QAe0AlL QAE0AlL@%QA@0AlL`-QA=0AlL`3QA@0AlL4QA@0AlL(QA0AlL!QAҍ0AlL+QA0AlL@7QAh0AlL0AlLQA0AlLQAڄ0AlL`QA@݄0AlLQAӄ0AlLַQA@0AlL`̷QA@u0AlL@÷QA0AlL`QAӃ0AlLQA@0AlL QA@n0AlLQA;0AlLQA@%0AlLQA*0AlL QAB0AlLQA@h0AlL ~QA@0AlLQAՃ0AlLQA0AlL QA@E0AlL@QA0AlL QA@0AlL QA0AlL qQAs0AlL_QA0AlLTQA0AlLLQA0AlLLQA?0AlL@LQA0AlLMQA@0AlLKQAφ0AlL`CQA݆0AlL6QA0AlL`(QA0AlL`QA0AlL QAB0AlL`QAq0AlL`QA0AlLQA·0AlLQA0AlLQA@0AlL@QA0AlL`QA0AlLQA^0AlLQA0AlLQAƈ0AlLQA0AlL@QA@00AlL QA@f0AlLQA 0AlLP޶QA0AlL@϶QA0AlLĶQAÉ0AlLQA@0AlL QAD0AlLQAa0AlLQA@y0AlL QA@0AlL`QA0AlL@QA0AlLpQAl0AlLvQA80AlLkQA 0AlLcQAf0AlLQA70AlLQA0AlL@QAψ0AlLQA0AlLQAw0AlLQAA0AlL@QA0AlLp~QA0AlL@QA@Ƈ0AlL0QA0AlLQA~0AlL QAU0AlL@QA#0AlLQA@ 0AlL }QA0AlLhQA@0AlLUQAԆ0AlL@QA0AlL@1QA@0AlL(QAo0AlL`QAz0AlL QA@0AlL QA0AlLQA0AlLQAQ0AlL@QA@+0AlLQA[0AlLϵQAx0AlLŵQA0AlL@QA@0AlL0QAĆ0AlLଵQA0AlL`QA@0AlLQA@/0AlL QAJ0AlLtQA@h0AlL `QAx0AlLJQA@0AlL:QALJ0AlL#QA0AlLQA0AlL QA܇0AlLQA@0AlL`شQAJ0AlL ѴQA@0AlLɴQA@ʈ0AlL@QA0AlLQA0AlL QA0AlLQA0AlL}QA0AlL`pQA@0AlL@dQAZ0AlL``QA@0AlL`QA0AlL]QA׉0AlL[QA0AlLUQA10AlLMQAJ0AlL HQAm0AlLBQA@0AlL>QA0AlL`>QA@0AlL@@QA 0AlL`FQA,0AlL;QA 0AlL/QA@0AlL@ QA0AlL@ QA0AlL`QA0AlL`޳QA0AlLͳQA0AlLQA(0AlLQA*0AlLQA;0AlLQAg0AlL`QA0AlL`QA0AlL`QAҋ0AlLQA0AlLQA&0AlL |QAI0AlL`iQAY0AlLVQA`0AlL SQAm0AlLKQAr0AlLHQA0AlLAQA0AlL;QA0AlL:QAʌ0AlL@.QA@0AlL)QA=0AlLQA0AlLQAǍ0AlL`QA@Ŏ0AlLQA0AlLQA0AlLQA50AlLQA0AlLڲQA0AlLӲQA0AlL̲QA0AlL0˲QA@Y0AlLӲQA|0AlLزQA@0AlL߲QA0AlL QA{0AlL@QA@E0AlLQA0AlLQA@ 0AlLp QA0AlL QAA0AlL` QA0AlLQA@ŏ0AlL QA0AlLQA*0AlLQA@0AlL ߲QA0AlLزQAϏ0AlL ԲQA@0AlLβQA@0AlLƲQAt0AlL`QAq0AlLpQAm0AlL QA0AlLQA0AlLQA0AlL@QA;0AlLQA@]0AlLQA0AlLQA0AlLQA0AlLQA.0AlLQA@e0AlL@pQA@~0AlL@_QA0AlL`QQA@q0AlL`EQAR0AlL;QA@V0AlL@/QA@c0AlL'QA@0AlLQA0AlLQA@͑0AlLQA0AlLQA(0AlL@ QA`0AlL QA0AlLQA0AlLQA0AlLQA@0AlLڱQA@0AlL@ӱQA0AlLαQA@0AlL˱QA0AlL±QA0AlLQA0AlL`QAv0AlL@QAb0AlL౱QAM0AlL@QA<0AlLறQA@(0AlLQA@0AlLQA 0AlL@QA0AlL@QA@0AlLQA0AlLQA@ȑ0AlLQA0AlLQA0AlLQA0AlLQA0AlLQA@0AlLQA@0AlL`}QA0AlLtQA0AlL`qQA|0AlL mQAt0AlL@jQAm0AlL gQA@!0AlLeQA0AlLkQAސ0AlLmQAԐ0AlLoQA0AlLrQA0AlLuQAu0AlLuQA]0AlLrQAL0AlLpQA;0AlLnQA$0AlLnQA0AlL mQA0AlLiQA0AlL`fQA0AlL_QAЏ0AlL`[QA@0AlL]QA0AlL0^QAz0AlLZQAq0AlLXQA^0AlL`WQA@M0AlLPQA=0AlLMQA@20AlLFQA@0AlLBQA0AlL?QAҎ0AlL?QAƎ0AlL>QA0AlL ;QA0AlL/QA0AlL -QA0AlL*QA@h0AlL)QAR0AlL%QAG0AlL"QA:0AlLQA'0AlLQA0AlLQAӍ0AlL QAÍ0AlL QA0AlLQA0AlL@QA0AlLQA0AlLQA0AlL`QA@u0AlLQA]0AlLQAI0AlL`QAI0AlLQAJ0AlL`QA<0AlL@ްQA.0AlLҰQA0AlL аQA@0AlLΰQA0AlL̰QAԌ0AlL ȰQA0AlLðQA0AlL@QA0AlLQAy0AlL QA\0AlL`QAQ0AlLQAC0AlL`QA@(0AlLQA@0AlLरQA0AlLQAދ0AlLQAы0AlL QA@0AlL QA0AlLQA0AlL`QA@0AlLQA0AlLQA@k0AlL`QAX0AlLQA@G0AlL@{QA-0AlL@vQA0AlL`nQA@0AlLlQAŠ0AlLeQA0AlLdQA0AlL@cQA0AlLbQAt0AlL``QA@O0AlLcQA20AlLdQA0AlL gQA0AlLcQA@0AlL ^QA0AlL@WQAӉ0AlLOQAΉ0AlLLQAɉ0AlLHQA@0AlLBQA0AlLCQA0AlL@QA@l0AlL@>QAL0AlL0AlLQA@0AlLQA~0AlL QA~0AlLQA~0AlLvQA@~0AlLqQAc~0AlL@oQA<~0AlL@mQA"~0AlLmQA~0AlLoQA}0AlLlQA}0AlL`jQA@}0AlLgQA}0AlLdQA@}0AlLcQA}0AlL bQA@x}0AlL\QAc}0AlL YQAP}0AlLVQAA}0AlLRQA@8}0AlLOQA@0}0AlL`LQA@#}0AlLIQA}0AlLFQA@ }0AlL DQA@}0AlL@@QA|0AlL`;QA|0AlL 8QA@|0AlL4QA|0AlL1QA|0AlL.QA@|0AlL*QA@|0AlL$QA|0AlL`QA@u|0AlL QAk|0AlL`QA^|0AlL@ QA?|0AlL QA|0AlL QA |0AlLQA{0AlLQA{0AlL`QA@{0AlLQA{0AlLQA{0AlL0QA@s{0AlLQA@<{0AlLQA{0AlL`QA {0AlL QA{0AlL`QA@z0AlLޭQAz0AlL٭QA@z0AlLحQAz0AlLP׭QAz0AlLpѭQAyz0AlLέQAZz0AlLͭQA@?z0AlLȭQA@#z0AlL0ƭQA@z0AlLǭQA@y0AlL˭QAy0AlLpЭQA@y0AlL0ѭQA@\y0AlL`QAHy0AlL`QA-y0AlLอQAy0AlL๭QA y0AlLQAx0AlL`QA@x0AlLQAx0AlL QAx0AlL`QAx0AlLQAx0AlLQAx0AlL`QAx0AlL@QA@x0AlLQAx0AlL QAx0AlLQAbx0AlLQAXx0AlLQAJx0AlLQA7x0AlLQA@x0AlL`QAw0AlL`QA@w0AlLQA@w0AlLQAw0AlL}QAw0AlL{QA@w0AlLwQA@w0AlLrQAw0AlLqQAw0AlL@oQAw0AlLjQAw0AlLhQAw0AlL`eQAyw0AlL@dQAjw0AlL@bQA@_w0AlL_QA@Vw0AlL ]QA8w0AlL@WQA,w0AlLWQAw0AlLXQAw0AlLXQAv0AlL`UQAv0AlL@QQAv0AlLNQAv0AlLPQAv0AlL OQAv0AlL NQAv0AlLLQAv0AlLNQAwv0AlL BQA*v0AlL*QAAv0AlL0#QA8v0AlL@!QAv0AlL,QA@v0AlL.QAu0AlLp0QAu0AlL01QAu0AlLP.QAu0AlL)QA@u0AlL&QAu0AlLp&QA@zu0AlL"QAbu0AlL@QAJu0AlLQA?u0AlLQA*u0AlLQA@u0AlL@QAu0AlL@ QAt0AlL QAt0AlLQAt0AlLQAt0AlLQA@t0AlLQA@t0AlLQAt0AlLQAut0AlL٬QA{t0AlLլQAVt0AlLͬQACt0AlLˬQA@7t0AlL@ȬQA-t0AlL@ŬQA$t0AlLQAt0AlLQAt0AlL@QA@t0AlLQAt0AlL`QAt0AlLQAs0AlLQAs0AlL`QAs0AlL0QA@s0AlLQA@s0AlL0QA@s0AlLQAs0AlLQAs0AlLQAs0AlLQAs0AlLQAus0AlLQAgs0AlL`QA^s0AlLQALs0AlL ~QAr0AlL QAr0AlLQAr0AlLQA[r0AlL`QAr0AlL֬QA@q0AlLQA@q0AlL@QA6q0AlLQA-q0AlLQAp0AlL2QA@p0AlL`IQA@jp0AlLdQA"p0AlLyQAp0AlLQAo0AlLQAo0AlLQA>o0AlLǭQA#o0AlLҭQA@n0AlL QAn0AlLQA@'n0AlL QA@n0AlLQA@m0AlLQA@m0AlL(QAm0AlL .QAdm0AlL0QA+m0AlL@6QAl0AlL;QA@l0AlL@EQAWl0AlLNQA+l0AlLWQAk0AlLXQAk0AlLYQAj0AlL QAj0AlL`QA j0AlL0QAj0AlL QAzj0AlL@QAVj0AlLQA@j0AlL QA@-j0AlL ˮQA@4j0AlL`֮QA@j0AlL QA@Nj0AlLQA@Oj0AlLQA@.j0AlLQAi0AlLQAi0AlLQAi0AlLQAi0AlL$QAi0AlL`.QA@i0AlL`4QAi0AlLNQA@i0AlLWQAYi0AlL \QA3i0AlL]QAi0AlL^QA@h0AlLdQAh0AlLrQAh0AlL zQAh0AlLQA@h0AlL QAh0AlLQA@h0AlLQAh0AlLQAh0AlL৯QA@h0AlLQAh0AlLQA@h0AlLǯQA@}h0AlL֯QAh0AlLگQAh0AlL@QAh0AlL QAh0AlL@QAph0AlLQA@Uh0AlL@QAAh0AlL@QA@6h0AlL QA@'h0AlLQAh0AlL@'QAg0AlL*QAg0AlL0QAg0AlL 6QAng0AlL =QA@dg0AlLJQAAg0AlLUQA@#g0AlLeQAg0AlLsQAf0AlL~QA@f0AlL@QAf0AlL`QAf0AlLQA@f0AlLQApf0AlL୰QARf0AlLQAf0AlLQAe0AlLQAe0AlL QAe0AlL`°QAne0AlL ɰQA[e0AlL װQAae0AlLQAie0AlL@QAke0AlLQA^e0AlL`QA@Ne0AlL QA@Be0AlLQA=e0AlL )QA@>e0AlL9QA?e0AlL EQAIe0AlLOQARe0AlL]QAXe0AlLlQA_e0AlL}QAae0AlL`QApe0AlLQA~e0AlLQAe0AlL઱QAe0AlLQAxe0AlLཱQAbe0AlL@ȱQATe0AlL ѱQAd0AlLڱQAc0AlL@QA@Nc0AlLQA@$b0AlLQA@a0AlL QAa0AlLQAxa0AlLQA@Ia0AlLQA3a0AlLQA@a0AlL@QA`0AlL QA@`0AlLQA`0AlLQA`0AlLQA`0AlLQAg`0AlLQA:`0AlL`QA@`0AlL@QA@^0AlLQA@^0AlLQAr^0AlL QAH^0AlLQA9^0AlL@QA ^0AlL$QA@^0AlL 'QA]0AlL)QA]0AlL'QA]0AlL#QA]0AlLQA]0AlL`QA]0AlL@ QAQ]0AlLQA0]0AlLQA]0AlLQA\0AlLQA@\0AlLQA\0AlLQA\0AlL@QA\0AlLQA\0AlL@ QA@\0AlL $QA]0AlL`0QA]0AlL@;QA ]0AlL@FQA@)]0AlLIQAF]0AlLUQA@;]0AlL@_QA$]0AlL`kQA@]0AlLwQA@]0AlLQA@\0AlL@QA]0AlLQA]0AlL QA]0AlLòQA]0AlL@ҲQA]0AlLQA\0AlLQA@\0AlLQA\0AlL QA@\0AlLQA~\0AlL`QA]\0AlLQA\0AlL QA[0AlLQA@[0AlL QA@[0AlLyQAh[0AlL@rQA[0AlL]QAZ0AlL`iQA@Z0AlLoQAZ0AlLvQAZ0AlL~QAZ0AlLQAZ0AlL QA@vZ0AlLQAXZ0AlL@QA@XZ0AlL`QAY0AlLQAX0AlLQAxX0AlL%QAHX0AlL.QA%X0AlL3QA@X0AlL9QAW0AlL@QAW0AlLHQAW0AlL@LQAW0AlL PQAW0AlLWQA`V0AlLYQAIV0AlLpYQAU0AlLZQA@U0AlL\QA@U0AlL`]QAT0AlLfQAT0AlL hQAT0AlL`hQA@XT0AlLgQA@FS0AlLfQA@S0AlL dQA@R0AlL_QA@R0AlL`[QA@R0AlL SQAzR0AlLPQAbR0AlLPQAL0AlL`QAL0AlLQAK0AlL@QA@K0AlLQAK0AlL঵QAK0AlLવQA@SK0AlL`QA.K0AlLQAJ0AlL ͵QAJ0AlL@ҵQAJ0AlLڵQAJ0AlLQA@J0AlL`QAJ0AlL@QAJ0AlL QA@J0AlLQAJ0AlL`QA@uJ0AlL(QA%J0AlLIQA@J0AlL`XQAI0AlL\QA@I0AlL`QA@I0AlLaQAI0AlL`lQA`I0AlL@vQA>I0AlL`QA@H0AlL8QAH0AlL@QAH0AlLQAH0AlL`QAH0AlL öQAH0AlLͶQAH0AlL`۶QAH0AlLQAH0AlL`QAH0AlL`QAH0AlLQA@H0AlLQAH0AlLQAH0AlL"QAH0AlL 1QAH0AlL8QA@H0AlL@QA@H0AlLCQAH0AlL@NQA@H0AlL`VQA@H0AlLWQA@H0AlL^QAI0AlL@dQAkH0AlLyQAI0AlLQA@H0AlLٷQAQH0AlLQAQALH0AlL@QAH0AlLFQA@H0AlL`LQAH0AlLRQAH0AlL YQAH0AlL`QA@H0AlL@jQAI0AlLqQA,I0AlLuQAJI0AlL yQAdI0AlL|QAI0AlLQAI0AlLQAI0AlLQA@I0AlL`QAJ0AlLQA@J0AlLúQA@$J0AlL`κQA;J0AlLպQAeJ0AlL@ںQAJ0AlLݺQAJ0AlLQA@J0AlLܺQAJ0AlLԺQAJ0AlL@̺QAJ0AlLƺQAJ0AlL úQAK0AlLQA@0K0AlLQAMK0AlLQA@pK0AlL ĺQAK0AlLźQAK0AlLźQA@K0AlL ƺQAK0AlLźQAK0AlL`ºQA@.L0AlL QAML0AlLQAjL0AlLºQAL0AlL`ºQAL0AlL QA@L0AlL`QAL0AlLQA M0AlLQA%M0AlLúQA@=M0AlLǺQA@hM0AlL0ͺQAM0AlLQA@M0AlLQAM0AlLQAN0AlL઺QAGN0AlL਺QAaN0AlL QAyN0AlL QAN0AlLúQAN0AlL ͺQAN0AlL׺QAN0AlL@ٺQAN0AlL ۺQA@N0AlL`QAO0AlL`QA O0AlLQAO0AlL@ QAO0AlL`QA6O0AlL$QAO0AlLiQAO0AlLtQA@O0AlL|QA@O0AlLQAO0AlL`QAO0AlL@QA@O0AlLQAyO0AlLQAfO0AlL@QA^O0AlL`QAWO0AlL`QA@^O0AlLĻQAcO0AlL λQA`O0AlL`ջQA6O0AlL޻QA@O0AlLQAN0AlLQAN0AlLQAN0AlLQA@N0AlLQAzN0AlL QA@mN0AlLQAN0AlLQAN0AlLQAN0AlLQA@N0AlL`QA#O0AlLQA@NO0AlLQAxO0AlL QAO0AlL` QA@O0AlLQA@P0AlLQA-P0AlL QAJP0AlL`QAkP0AlLQA@P0AlL,QAP0AlL5QA@P0AlLQA@k0AlL@8QAk0AlL6QAl0AlL7QA.l0AlL?QADl0AlLCQAnl0AlLBQA@l0AlL8QAl0AlL:QAl0AlL=QAl0AlLpAQA m0AlL;QA@7m0AlLP8QAem0AlLQA@~0AlL@QA0AlLFQA10AlLNQA>0AlL]QA;0AlLmQA80AlLzQA>0AlLQAO0AlLQAs0AlL`QA0AlLQA0AlLQA@&0AlLQA@,0AlLQA@K0AlL`QA`0AlLxQA0AlL QA0AlL QA?0AlLQA_0AlL`QA_0AlLQA0AlL QA0AlLQAÁ0AlLQA݁0AlLQA0AlL@QA@ 0AlLQA"0AlLQA70AlLQAX0AlLQA}0AlL`QA‚0AlLДQA0AlLQA0AlLQA<0AlLЭQA@u0AlL QA0AlL@QA@ԃ0AlLQA@0AlLQA/0AlLQAՄ0AlLQA@0AlLQA0AlLQA@@0AlL@QA@Z0AlLQA0AlL`QA0AlLQA0AlL`QA40AlLQAc0AlLQA@0AlLQA@0AlLQA0AlLpQA0AlLQA@0AlLQA0AlL`QA60AlLQAZ0AlLQA0AlLQA0AlL QA0AlLsQA0AlLbQA0AlLXQA@0AlLIQA0AlL`.AlL-QA.AlL 2QA .AlL8QAb.AlL>QA.AlLFQA.AlLQQA.AlL`TQA.AlL`VQA'.AlLVQA4.AlLPQA.AlLOQA.AlLLQAD.AlL`KQA.AlLJQA{.AlLHQA.AlLHQA.AlL@NQA.AlLQQAW.AlLTQA.AlLYQA.AlL^QAb.AlL `QA.AlL[QA.AlLVQAF.AlL@NQA}.AlL EQA.AlLCQA.AlL=QAW.AlL@8QA.AlL 3QAK.AlL`0QA.AlL /QAM.AlL@0QA.AlL2QA.AlL:QA.AlL@QA~.AlLIQA.AlLRQA<.AlLWQAy.AlL\QA.AlL_QA.AlL `QAD.AlL `QA.AlL`QA.AlLaQA.AlLaQA8.AlL@bQA.AlL^QA.AlL`[QA.AlLVQAE.AlLPQAw.AlL JQA.AlLCQA.AlL@QA.AlL;QAj.AlL5QA.AlL@/QA.AlL )QAK.AlLQA{.AlL`QA.AlL`QA .AlLQAR.AlLQA.AlLQA.AlL@QA.AlL%QA?.AlL`(QA.AlLޚQA.AlL ӚQAI.AlLɚQAy.AlLQA.AlL@QA.AlL@QA.AlLQA.AlL`QAF.AlLQAp.AlL~QA.AlLoQA.AlL@gQA.AlL]QA.AlLUQA.AlLMQA.AlL`DQAo.AlL7QAh.AlL'QAC.AlLQA0.AlL QA.AlLQA~.AlL`QA.AlL QA=.AlLQA.AlLQA.AlL@QAl.AlLQA.AlL QAk.AlL QA .AlLQAp.AlLۙQA.AlLՙQAe.AlL͙QA.AlLřQAb.AlL@QAo.AlLQA.AlL QA*.AlL@QAY.AlL QAV.AlLQAJ.AlL`QAa.AlL@QAo.AlLQA{.AlLuQA.AlL dQAz.AlL`VQAq.AlL@CQAh.AlL2QAA.AlLQAQ.AlLQAZ.AlLQAh.AlLQA].AlLQAE.AlL ҘQA9.AlLQA6.AlLෘQA0.AlL௘QA1.AlLQA2.AlL@QA%.AlLQA.AlLQA.AlL|QA.AlLtQA.AlL0lQA.AlL cQA.AlL@VQA.AlLIQA.AlL`QAv/AlL8QAu/AlL*QAu/AlL-QAgu/AlL/QAt/AlL'QAt/AlL!QAt/AlLQAt/AlL QAft/AlL QA&t/AlLQAs/AlL@QAos/AlLQA(s/AlL`QAr/AlL`QAr/AlL@QArr/AlLQALr/AlL QA,r/AlLQA r/AlL`QAq/AlLPQAq/AlLQAq/AlL QAPq/AlLpQAp/AlLQAp/AlL`QA.p/AlLQAo/AlL QAo/AlL`QAo/AlLQApo/AlLQAVo/AlLQAio/AlL؄QAo/AlL ӄQAo/AlLp̄QA.o/AlL̈́QAn/AlL@˄QAn/AlL ʄQAn/AlLĄQASn/AlL ÄQA>n/AlLQA.n/AlL@QA*n/AlL`QAHn/AlLQA=n/AlLQAn/AlL`pQA)n/AlLfQAFn/AlL`\QApn/AlLRQAn/AlLDQAn/AlL:QAn/AlL-QAn/AlL"QAn/AlLQAn/AlL QAn/AlLQAn/AlLQAn/AlLQAqn/AlLQAdn/AlL QACn/AlLQAEn/AlL`؃QAKn/AlL̓QABn/AlLÃQAPn/AlLQArn/AlLQAn/AlLqQAn/AlLmQAo/AlL`QA#o/AlLQQAEo/AlLBQA^o/AlL`2QAo/AlL 'QAo/AlLQAo/AlLQAo/AlL QAo/AlLQA p/AlLQA/p/AlLQA[p/AlL QArp/AlLۂQAwp/AlL΂QAYp/AlL`ÂQAp/AlLࡂQAp/AlL@QAOp/AlL@QAjp/AlLxQAp/AlL cQAp/AlLXQAp/AlLPQAp/AlLMQAp/AlLKQAp/AlL;QA q/AlL@.QAHq/AlL@QAeq/AlLQAxq/AlL QA~q/AlL@QAq/AlLQAq/AlLQAq/AlL`QAq/AlL`ՁQAq/AlLɁQAr/AlLQA!r/AlLQA;r/AlL`QAbr/AlL@QAr/AlLQAr/AlLQAr/AlLQAs/AlLQA9s/AlLyQAs/AlL eQAs/AlL _QAt/AlL@RQAet/AlL JQAt/AlL DQAt/AlL`>QAu/AlL9QA0u/AlL4QAfu/AlL`.QAu/AlL)QAu/AlL $QAu/AlLQA{v/AlL`QAv/AlL QAv/AlLQAw/AlLQA6w/AlL`QA^w/AlLQAw/AlLQAw/AlLQAx/AlL`߀QAsx/AlLـQAx/AlLԀQA@y/AlLQAy/AlLQAy/AlL`QAy/AlLQAz/AlLQAQz/AlL QAtz/AlL QAz/AlL`QAnz/AlL@|QA1z/AlL xQAy/AlL`sQAy/AlL`mQACy/AlLgQAx/AlLbQAix/AlL@WQAw/AlLNQA}w/AlL FQA,w/AlL?QAv/AlL8QAv/AlL 2QA'v/AlL,QAu/AlL 'QAlu/AlL`!QAu/AlL`QAt/AlLQA~t/AlL@ QAs/AlLQANs/AlL`QAr/AlL QAr/AlL QAvr/AlLQA@r/AlLQAr/AlLQAq/AlLQAq/AlL@QA}q/AlLQA/q/AlL@QAp/AlLQAp/AlLQA~p/AlL@QALp/AlLQAp/AlLQAo/AlL`QAo/AlLQARo/AlLQAo/AlL`QAn/AlL`~QA^n/AlL }QAn/AlL@{QAm/AlL wQAm/AlL@oQA9m/AlLfQAm/AlL`SQAl/AlL@KQA3l/AlLFQAk/AlL@FQA2k/AlLFQAj/AlLDQA>j/AlLEQAi/AlL`BQAi/AlL@;QAji/AlL.QA i/AlL#QAh/AlL@QA'h/AlLQAg/AlLQACg/AlL@ QAf/AlLQAWf/AlLQAe/AlLQAe/AlL~QAAe/AlL~QA&e/AlL~QAe/AlL~QA=d/AlL QAc/AlLQAc/AlLQAkc/AlL QAb/AlL QAb/AlL`QA%b/AlL QAa/AlLQAa/AlL QAa/AlL#QA`/AlL(QAZ`/AlL,QA_/AlL 1QA_/AlL@6QA_/AlL`>QA_/AlL`KQA_/AlL`VQAg_/AlL _QAU_/AlLhQA,_/AlLtQA_/AlL}QA^/AlLQA^/AlL QAe^/AlL`QA(^/AlLQA]/AlLQAU]/AlL`QA]/AlL`}QA\/AlL vQA\/AlLeQA\/AlL[QA\/AlL`WQA\/AlL`SQA\/AlLKQA\/AlL`@QA\/AlL`8QA\/AlL/QA\/AlL'QAv\/AlLQAb\/AlL`QAL\/AlL~QA:\/AlL~QA[/AlL@~QA[/AlL~QA[/AlL~QAd[/AlL~QAU[/AlL@~QAF[/AlL@~QAI[/AlL~QA[/AlL~QA[/AlL~QA[/AlL~QAN[/AlL~QAZ/AlL~QAZ/AlL|~QAZ/AlLt~QAZ/AlLe~QAZ/AlL`]~QAZ/AlLQ~QA}Z/AlLH~QA}Z/AlL =~QAjZ/AlL4~QA#Z/AlL@*~QAZ/AlL#~QAY/AlL ~QAY/AlL~QAY/AlL~QAY/AlL ~QAY/AlL~QAY/AlL }QAY/AlL}QAY/AlL}QAY/AlL}QAY/AlL}QAY/AlL}QAY/AlL}QAY/AlL`}QAY/AlL }QAY/AlL}QAY/AlL}QAY/AlL}QAY/AlL}QAY/AlLu}QAY/AlL W}QAX/AlLT}QAeX/AlLX}QAW/AlL_}QAW/AlLe}QA%W/AlL m}QAV/AlL`r}QA:V/AlLp}QAU/AlLn}QA9U/AlLj}QAT/AlLg}QAT/AlL`}QAGT/AlL`Z}QAS/AlLQ}QAS/AlLK}QAS/AlLG}QADS/AlLF}QAhLS/AH}QA@80S/AFR}QAFR/AMM@b}QA -SoR/AP`h}QAhR/AJn}QAnR/ANt}QAR/AJz}QA?_{R/AN}QAh9R/AJ@}QAXQ/A\cH}QAV^Q/AMM}QAqAQ/AJ`}QA講Q/AA }QASP/Az3}QAP/AA }QA^sP/AN}QAV^QP/AJ}QAh2P/AMM}QAxnP/AJ}QA0^ P/AMM}QAxP/AA}QA^!P/AE`}QA?P/AP}QA@>P/AP`~QAn6P/AF~QA(P/AMM@~QA@nP/AE@~QA@nO/AN%~QAxO/AN,~QA@O/AE`5~QAPz^O/AMM>~QA 6gO/AF`D~QAv3O/AMMG~QA(?gnJN/AMM@R~QAm^1N/AJW~QAqM/AF`~QAnM/AP`h~QA^M/AyC p~QA%M/AEr~QAvL/ANu~QAP^!L/AE@~~QAZtK/AF~QA+K/A, ~QAm^K/AMM`~QA?6K/AF~QAcmJ/AJ ~QAcJ/AP~QAcm%J/AF~QAI/AE ~QAHI/AP@~QAh]I/A42@~QAh]OI/A\cH~QA`ڼH/AA ~QAcsH/AA~QAɍH/AMM~QAmG/AJ~QAG/A\cH~QAcmG/AE QAG/AJQA]9G/AN #QAm[F/AyC5QA5nmE/AJFQA8:3]sE/A42@TQA5nE/AAbQAށD/AA qQA9mLD/A\cH ~QA(Q{D/AyCQA0ZmC/AFQAx\/C/AJ@QA0ZB/AyC`QA>lsB/A42@QA)B/ANQA9mA/AyC`QA&WA/A8K QA ]@/AEQAu8@/AE`QAH#댳?/A42@$QA{\/?/A\cH'QAn\>/AE*QA0c>/AyC`6QAhO>/AJ EQAgT\=/A8K TQAX \=/AA[QAk7/AFaQA(u[Y7/AAbQAp[6/A42@eQA96/AAjQȀ6/A42@nQAyh5/AErQApok4/AyCtQAXGk04/A8KqQAa3/AF`lQAZg3/A42@cQAp 3/AyC`VQAh2/A؛NQAZ2/AX<LQA [2/A8K DQA [m2/AA 9QAj+2/A8K ,QAZ1/AƎ>@!QAZ1/AFQA[s1/A\cH QA#1/A\cH@QAHg0/AF`QA00/AMM`QA0Z0/AEQA–Z0/A\cHQAZ0/A8KQAKZ0/AE`QAj0/A8K`QAZg0/AA`QA4j>0/A8KQAPpo//AJ`QAHgZo//AFQAj./A8KQA{./AA QA- ./A42@QA@AP-/A8KQA;Z,/AyC QAx" j~,/A8K QATb ,/AFQA0Z+/AJ QA@AW+/A8K@QApBY +/AA`QAH*/AQA}*/AƎ>`QA]Yu*/AyC QA}P*/AJ`QA`b-*/AyCQA}i)/AX<@QA0Z)/A8K@QAi)/AMMQA(剀)/AAQA G)/A42@QA@)/AƎ>QAZ(/AƎ>&QA(/AƎ>5QA&v(/AFBQA`bX(/AFQQAi*(/AX<_QA`b'/A\cH@mQA8Y'/AƎ>~QA+ '/ALQAk'/AX<`QA08W'/AN[QAYM'/AE`QAfvY'/AyCQApB&/AyC QA|i&/AJQAOYa&/AFQA8Y+&/A8K`€QAPY%/A\cH@ŀQApKiY%/A8KɀQAb%/A\cH րQA|ii%/AƎ>@ـQA`k;%%/AAۀQA8Y$/AyC܀QAȦYr$/AƎ>܀QA(oi1$/A42@݀QAȦY#/AAڀQAІHi#/AƎ>րQAih#/AJҀQAHU+#/AJπQAІHi"/AyC̀QA9X"/AX< ˀQA4YF"/AX<ȀQA4Y "/A42@ƀQA4!/A8K ĀQA}!/AX<ĀQA X/!/AJ@ĀQAHh /A\cH ƀQAht /A8KȀQAhR /AX<@ʀQA؏҈ /AÈQA؏҈/AyC̀QAx]}Xe/A42@̀QAHih/AFЀQAhtň/AF`ԀQA&c/A8K؀QABpX/AA`߀QAY/AFQA8˱X)/AE QA8˱X/AG;QA=h&/AƎ>QABpX/AX<`QAx]}/A\cHQAvw/A\cHQAH5/A8KQA@;X!/AyC QAh/AyCQAx]}/A42@#QAXU/AƎ>/QAؘ\1/AƎ>@9QA0 h./AJBQAи.X[/AX<TQA V_/A42@]QAvhw/AJ mQA@;X/A\cHxQAX!X/AyCQAXX/AF`QAؘ\1/AJQAxX]/A42@QAXX/AƎ>@QAи.X/AX`QA</A>QA/AlLƁQA/AlL`сQA</AlL ԁQAg/AlLׁQA/AlLفQA/AlL ށQA/AlL߁QA/AlL`߁QA>/AlLށQAP/AlL܁QAy/AlLցQA/AlL@ˁQA/AlLQA/AlLཁQA/AlLQA7/AlLQAl/AlLQA/AlLQA/AlLǁQA/ /AlLǁQAz /AlL ƁQA /AlL@ŁQA /AlLŁQAH!/AlLQA!/AlL࿁QA!/AlLกQA!/AlLཱྀQA"/AlLƁQA^"/AlL`ҁQA"/AlLځQA"/AlLQA#/AlL QA>#/AlLQAX#/AlL@QAt#/AlL`QA#/AlL`QA#/AlL`$QA#/AlL3QA#/AlL@>QA#/AlLMQA#/AlL@`QAG$/AlLnQA$/AlL|QAX%/AlLQA%/AlLQA5&/AlLQA&/AlLQA&/AlL QA5'/AlLགQAA'/AlL@ƂQAT'/AlLςQAg'/AlL؂QA'/AlLQA'/AlLQA?(/AlLQA(/AlLQA(/AlLQA()/AlLQA)/AlL`QA)/AlL QA&)/AlL` QA)/AlLQA(/AlLQA(/AlLQA^(/AlL@QA (/AlL`QA'/AlLQA'/AlL@QA,'/AlLQA&/AlL@QAS&/AlL QA&/AlL@QA~%/AlLQA %/AlL#QA$/AlL@(QA1$/AlL`1QA#/AlL:QA"/AlLCQA}"/AlLGQA!/AlLNQAz!/AlLTQA /AlL ^QA /AlLdQA/AlL@kQA/AlL rQA*/AlLyQA/AlL`QAC/AlL QA/AlLQA/AlLQA4/AlLࢃQA/AlLQA/AlLQAD/AlL@QA /AlL`QAv/AlLృQAE/AlL@QA/AlL`QA/AlL QA/AlLƃQA/AlL`˃QA/AlL`ԃQA/AlLփQA4/AlL@كQA\/AlL܃QA/AlLۃQA/AlLՃQA2/AlLσQAr/AlLЃQA/AlL҃QA%/AlL׃QA/AlLڃQA1/AlL`߃QA/AlLQA/AlLQA/AlLQA/AlLQA/AlLQA /AlL QA /AlL@QA /AlL0QA /AlL`QAC!/AlLQA!/AlL`QA!/AlLQA"/AlL`QA"/AlL QA"/AlLQAR#/AlLQA#/AlLQA5$/AlLQA$/AlLQA$/AlLQA%/AlLQA&/AlLQA&/AlLQA]'/AlLQA(/AlLQA(/AlLQA&)/AlL QA)/AlL QA */AlLQAf*/AlLQA*/AlL@%QA+/AlL+QA+/AlL+QA,/AlL`/QA -/AlL0QA0./AlL2QA./AlL@4QAt//AlL@5QA//AlL5QAk0/AlL2QA0/AlL@6QAm1/AlL8QA1/AlL8QA1/AlL8QA1/AlL?QA1/AlLGQA1/AlL@QQA1/AlLVQA2/AlL@[QA2/AlL]QA62/AlL`dQA2/AlLlQA2/AlLsQA=3/AlLwQA3/AlL{QA3/AlL@QA+4/AlL`QA^4/AlLQA4/AlLQA4/AlLQA5/AlLQAW5/AlLQAe5/AlLQA/5/AlL಄QA4/AlL@QA4/AlLĄQA4/AlLτQA`4/AlLׄQA)4/AlL߄QA3/AlLQA3/AlLQA3/AlL QA3/AlLQAa3/AlL QA/3/AlLQA3/AlL !QA%3/AlL-QA.3/AlL@@QA*3/AlL@PQA.3/AlL ]QA?3/AlL`nQAR3/AlL |QAt3/AlLQA3/AlLQA3/AlLQA3/AlLQA3/AlLɅQA3/AlL օQA3/AlLޅQA3/AlL QA3/AlL@QA(4/AlLQA4/AlL QA5/AlL QAz5/AlL QA5/AlL QA6/AlLQAi6/AlL`QA6/AlLQA"7/AlLQA7/AlLQA28/AlLQAt8/AlL`QA@9/AlL QA9/AlL#QA:/AlL`&QAT:/AlL )QA:/AlL+QA?;/AlL`*QA=/AlL`)QA=/AlL+QA=/AlL@.QAp>/AlL/QA}>/AlL 0QA>/AlL*QA>/AlL 'QAf?/AlL%QA?/AlL$QAK@/AlL"QA@/AlLQA'A/AlL QAA/AlLQAA/AlL QAB/AlL QAB/AlL`QA.C/AlLQAC/AlLQAC/AlL`QAD/AlL@#QAD/AlL)QA#D/AlL/QAHD/AlL6QAnD/AlL=QAD/AlLAQAE/AlLDQASE/AlL`IQAE/AlL`KQAE/AlLNQA6F/AlLSQAUF/AlL YQAF/AlL`]QAF/AlLcQAF/AlLkQAG/AlLrQApG/AlLuQAG/AlL`yQAG/AlLQAG/AlL`QAH/AlLQAQH/AlL QAH/AlLQA I/AlLQAII/AlLQAI/AlLQAI/AlLQAJ/AlLQAQK/AlL@QAK/AlLQAK/AlLQAL/AlLQAL/AlL QA#L/AlLQAYL/AlL`ĆQAvL/AlL ΆQAL/AlLֆQAAM/AlL҆QAvM/AlL ͆QAM/AlLdžQAM/AlLÆQAbN/AlLQAN/AlLÆQAN/AlL ƆQAoO/AlLȆQAtP/AlL@͆QAP/AlLφQAQ/AlL@ՆQAoQ/AlL`ՆQAQ/AlL ՆQAQ/AlL@QAR/AlLQARR/AlLQAR/AlLQAR/AlLQA(S/AlLQA7S/AlLQAS/AlL QAS/AlLQAT/AlLQAS/AlL`QAS/AlLQAS/AlL`QAS/AlL@QA%T/AlLQAuT/AlLQAT/AlLQAT/AlL0QA4U/AlL@QAU/AlLQAU/AlL QAU/AlLQAV/AlL`QApV/AlL`"QAV/AlLP%QAV/AlL &QAV/AlL+QA W/AlL1QAW/AlL;QA9W/AlL CQAW/AlLIQA-X/AlL@MQAX/AlL OQAX/AlL SQA+Y/AlLZQAkY/AlL cQAY/AlLhQAZ/AlL@gQAPZ/AlL_QAZ/AlL`YQAZ/AlL@ZQAB[/AlL_QA[/AlLbQA[/AlL _QA \/AlL ZQA/\/AlLJQAa\/AlLCQA\/AlL>QA]/AlL/AlL@9QA/AlL/AlLQA/AlL@QA/AlL`QA:/AlLÇQA$/AlL`ʇQA/AlL`̇QA/AlL؇QA׏/AlLQAZ/AlLQAԐ/AlLQAS/AlL`QA/AlL`QA/AlL`QAD/AlLQAl/AlL`QA/AlLQA/AlL`QAf/AlLQAԓ/AlLQA/AlLQAs/AlL QA/AlL QAt/AlLQA/AlL`QAL/AlL@QA|/AlLQA/AlLQA/AlLQA^/AlLQA/AlL QAz/AlLQAИ/AlLQA0AlL!QAY0AlL(LQAP0AlL QAS0AlL QA@ T0AlLQA^T0AlL0}QAT0AlLppQAW0AlL`QA7Y0AlL@:QA}Y0AlL&QAY0AlL@ QAY0AlL`QAY0AlLQAY0AlLQA@Y0AlL@QAY0AlLQAY0AlL8QAY0AlLQA@Y0AlLQAY0AlLӋQAY0AlLƋQAY0AlL๋QA@~Y0AlLQA@nY0AlLQA#X0AlLQA X0AlLQA@W0AlL`QA8W0AlL QAV0AlL`QAaV0AlL@GQA@'V0AlL2QAU0AlLQAU0AlL@QA@U0AlL`QA~U0AlL@QA@zU0AlLQA[U0AlL`QA@+U0AlL`ωQAU0AlLཉQA@T0AlL`QAT0AlL@QAT0AlLQA@T0AlL@QAT0AlLnQAyT0AlLRQA@hT0AlL@QA@VT0AlL1QA8T0AlLQAT0AlLQA@ T0AlLQAT0AlLQAS0AlLQAS0AlLֈQAS0AlLƈQAWS0AlL QA)S0AlLQAS0AlL@QAR0AlLQA@R0AlLQAR0AlL wQAR0AlL`nQA@R0AlL`jQAzR0AlLdQAR0AlL^QAR0AlLTQA@R0AlLLQAR0AlL9QAR0AlL2QAR0AlL ,QAdR0AlL'QA7R0AlL $QAQ0AlL QAQ0AlL@QAQ0AlLQA1J0AlLGQA+J0AlLHQAJ0AlLHQAJ0AlL@IQAI0AlLDQAI0AlL@QAI0AlL@>QAI0AlLTQA_F0AlL/QA G0AlLQA@E0AlLQA@E0AlLPQAC0AlLćQAC0AlLŇQAD0AlLQAWE0AlLQAE0AlLňQAD0AlL QA@@E0AlL?QA#E0AlLFQAD0AlLLQAD0AlL TQAD0AlL`^QAD0AlL jQA@D0AlLuQAC0AlLdQAC0AlLVQA@C0AlL HQA@C0AlL0AlLQA>0AlL`QA>0AlL@;QA<0AlLzQA;0AlL@{QA;0AlL$QA;0AlLQA;0AlL QA;0AlL@QA;0AlL`QA;0AlLQA70AlLQA30AlLKQA 40AlL0HQA50AlL@QA50AlL@ӄQA50AlLQA?30AlL@փQA20AlLQA20AlL`QA20AlLQAX20AlL@QA320AlLQA 20AlLQA10AlL`QA10AlLQA@~10AlLQA_10AlL@QA-10AlLQA00AlL@QA@00AlLQAA00AlL QA@*00AlLQA/0AlLQA 00AlLQA@/0AlLQAX*0AlL@ނQA@R*0AlL QAL*0AlLQAI*0AlL QAN*0AlL QAc*0AlL.QA@*0AlL?QA*0AlLMQA@*0AlL^QA*0AlLoQA +0AlL@|QA@"+0AlLQAO+0AlLQAv+0AlL QA+0AlLQA+0AlL̓QA+0AlLڃQA+0AlL QA@,0AlLQA+,0AlLQAr,0AlL@QA,0AlL QA,0AlLQA,0AlL'QA -0AlL.QA2-0AlL0QAf-0AlL6QA*0AlLtQA_+0AlL߄QA{*0AlLQA@*0AlL`QA)0AlL`QA)0AlLQA?(0AlL QA'0AlL@YQA'0AlLVQA?'0AlL ރQA(0AlLQAY'0AlLQA@{)0AlL@QA(0AlLQA&0AlL༂QA@P$0AlL0сQA?$0AlL ʁQA@$0AlLुQA@#0AlLQA:#0AlL0/QA'#0AlL@ QA"0AlLQA@"0AlLQA"0AlLـQA@"0AlL̀QA"0AlL̀QA@"0AlLÀQAA"0AlLQA/"0AlLQA"0AlLQA"0AlLQA!0AlL`QA!0AlLQA!0AlLzQA!0AlL`oQAu!0AlLcQAR!0AlLXQA>!0AlLTQA@"!0AlLKQA!0AlL BQA 0AlL5QA 0AlL *QA` 0AlL!QA_ 0AlL"QA\0AlL`%QA0AlL@5QA%0AlL9QA0AlL.QA0AlL)QA@0AlL>QA@M0AlLbQA0AlLtQA0AlL QA@0AlLીQA0AlL஀QA@0AlL ـQA@H0AlLQA0AlLڀQA0AlL`΀QA@o0AlL`ĀQA@40AlL@QA0AlL`QA0AlLQAy0AlLxQA0AlL`QA@{0AlLQA0AlLQA0AlLཀQA0AlLހQAK0AlLQA0AlLQA]0AlL@QA@0AlLQA@0AlL %QA0AlL3QA0AlL@QA0AlL@TQA0AlLdQA`0AlLqQA 0AlLQA0AlL@QA 0AlLQA0AlLQA-0AlL΁QAG0AlLPρQAr0AlLQA@v0AlL QA@0AlL@'QA@0AlL2QA0AlL@΃QA'0A$/LQALO7^%0A wZPQA4K-0AUQAm~0AyCQA'0A ~yQA(70A5qلQA܀0A?QAxE;0A?QA<0ARj`7QA0AN?3QA {wc0A]6QAD40A`QA|aB0AaQA#0AlLkQA0AlL0QA0AlL0QA 0AlLQA@0AlLQA0AlLQA0AlL`QA@0AlLQA0AlL@QA@0AlL@QA@0AlLQA@0AlLQA0AlLQA0AlLȅQA@0AlLЅQA0AlL`څQA@ 0AlLQA8 0AlLQAU 0AlL@QA@w 0AlLQA@ 0AlLQA 0AlL#QA@ 0AlL4QA!0AlL`BQA&!0AlLQQAl!0AlLgQA!0AlL@tQA!0AlL@QA!0AlL`QA"0AlLQA>"0AlL`QAs"0AlLQA"0AlLQA#0AlL@QAk#0AlLQA#0AlLdžQAP$0AlL@φQA$0AlLԆQA$0AlLنQA$0AlLۆQA$0AlLۆQAF%0AlLۆQA%0AlLۆQAR&0AlLۆQA4vh7'0AۆQAJ'0AlLQAj'0AlLQA'0AlL8QA8vc(0AC2QA8vc(0Az 1PQATQ/(0A'NbQAŸ(0A̠R·QA}(0AF8·QAi(0AlL`҇QAx'0AlLQAZ[M&0AQA(7M&0AG]yQA&0AlLuQA%0AlLaQAH%0AlL]QA!0AlL@QA"0AlL QA"0AlL@QA@F#0AlLQA"0AlL8UQA"0AlL WQA}$0AlL0QA!&0AlLbQA'&0AlLaQA'0AlLP5QA'0AlL1QAt,0AlLQA,0AlLQA@-0AlLQAs-0AlLQA@-/0AlLpˋQA00AlL`2QA10AlLQA40AlL|QA40AlLpzQA@40AlLuQA40AlLqQA40AlLqQA40AlLrQA550AlL QA50AlL@ȌQA50AlĽQA50AlL،QA@50AlLxڌQA50AlL ܌QA@50AlLQA50AlL@QA@50AlLQA}50AlL@QAe50AlLQAT50AlL@QA@Q50AlL QA_50AlL`QA@u50AlLQAB60AlL KQAV60AlLQQA@60AlL`WQA60AlL@]QA 70AlL@cQA@H70AlL mQAp70AlL wQA70AlLQA@70AlL QA70AlLQA#80AlL QA80AlLQA@ 90AlLQA@U90AlL਍QA90AlLQA90AlL`ÍQA90AlL֍QA:0AlLQA@ :0AlLQA:0AlL@QA :0AlL@QA:0AlL QA:0AlLQA@#:0AlL QA+:0AlL` QA>0AlLQA?0AlLQA @0AlLQA@D@0AlLQAo@0AlLQA@0AlL QA&A0AlL@QA@cA0AlLQAlA0AlL QA@A0AlL(QAD0AlLQAD0AlLQAJ0AlL(LQAO0AlL`QAO0AlLQAP0AlL QA@F0AlL`QA@AG0AlL@ QAG0AlL4QAG0AlLKQA@F0AlL`QAE0AlLQAaF0AlLQAF0AlLQA@F0AlLQAF0AlLhQAyF0AlL‰QAEF0AlLQAF0AlL QA@E0AlLQAE0AlLQAhZLxQAK/AlL@DxQA-K/AlL NxQA.K/AlLTxQAK/AlL`xQAK/AlLgxQA1K/AlL`oxQA4K/AlL xxQAJ/AlL`xQAJ/AlL`xQAX.bJ/A"uxQAMkJ/A42@xQA81]mJ/A24xQA`ڼhJ/AƎ>xQAHMKJ/A42@xQA7J/AXE/AG;yQA,MD/AG;yQA&D/AG;yQAU@yD/A3yQA0ZM+D/AƎ>`yQAHf D/A5MyQA8:3D/AƎ>yQAhFC/AG; yQA0ZMC/A3 zQA,MC/AX<zQAX}C/A]6)zQAMC/A|98zQA,ZC/A3JzQAu*C/A3QzQAMB/AA`WzQA ]KB/A|9XzQAA/A80\zQA>LA/AAbzQA~wA/A3@ozQAL_A/A|9xzQAx\/A/AG;zQA@C\@/AG;zQA\@/AAzQAxՈQ@/AXzQAG?/AX/AVs1zQA>/AG;zQA{\>/A8zQAxՈ\>/A24` {QAGL>/A3@{QAh>/AA${QA>/AX<,{QA>/A42@6{QA@C\>/AX/A8I{QA|>/AX< C{QA^\G>/A8A{QAL>/A42@ B{QAX \=/AX{QA0cL#=/A|9{QAn\a=/AG;{QAgT\=/A8{QA{ܧ=/A|9 {QA{\=/AX<{QAgT\q=/A3@{QAX ܞ=/A8{QAn=/A8{QAn=/A42@{QA=/AA|QAGL=/AG; |QA=/A8|QA\=/A3`|QA@Cy=/AA#|QA a\T=/AyC,|QAn\E=/A24`5|QAGL9=/A]6@=|QAG*=/AX/AJ`|QA@>/AMM|QAرϟ>/AsI|QA&(?/AE|QA'k?/A\cH|QAP,u?/AF|QA'\@/AN|QAl>@/A8K |QAv@/AyC |QAh@/A\cH |QAlA/AMM`|QA{\=A/AyC|QA~lA/AF|QAhlA/A\cH|QAl7B/AƎ>@|QAB/A8K`|QA&B/AA|QA0ZC/A\cH@|QA8:3D/A42@ |QAXD/AMM|QAU@]E/AJ`|QA9mLE/AyC|QA@LGsE/AFyT|QA,mE/AJ|QA&]F/A42@|QA,mF/AA|QASm`/AlL}QAj`/AlL}QA`/AlL}QA`/AlL}QA`/AlL}QAa/AlL}QAa/AlL}QA,a/AlL }QASa/AlL`}QAa/AlL@}QAa/AlL}QAa/AlL}QAa/AlL@y}QA%b/AlL i}QAab/AlL[}QA#@$y0AlLzQA@^0AlLPQA]>0AlLQA00AlLQA/0AlLQA=0AlLPQA;0AlLQA@0AlLpQAH0AlL QAf0AlLQA@x0AlLQA0AlLQA@0AlLPQA0AlL QA0AlLQA0AlLQA0AlLQA@0AlLQA0AlLQA0AlLQA@0AlL`QA{0AlLQA0AlLQA0AlLQA@0AlL QA0AlLQA0AlLpQAǐ0AlL`QA@Ԑ0AlLQA0AlLQA0AlLQA@#0AlL`QA.0AlLQA]0AlLQA@}0AlLQA@0AlLQA|0AlLЬQA0AlLQA0AlLQA0AlLpQA@Ñ0AlLQAÑ0AlLQA0AlLQA0AlL`QA0AlLQA0AlLQA0AlLhQA0AlL QAё0AlLQA0AlLQAO0AlLQA@y0AlL`QA0AlL`QA@0AlLQA0AlLQA0AlL@QA@Ԓ0AlLКQA0AlL QA@0AlLQA0AlLQA0AlL QA0AlLQA0AlLQA70AlLQAI0AlLQA]0AlL QAj0AlL`QAy0AlLQA0AlLQA0AlL`QA0AlL@QA0AlL QA0AlL QA0AlLQAȓ0AlLQAɓ0AlLQA̓0AlLPQAѓ0AlLQAٓ0AlL QAݓ0AlLQA@0AlLQA0AlLPQA0AlLQA@0AlLQA0AlL QA@0AlL@QA@0AlLQA0AlL QAד0AlL QAؓ0AlLQA0AlLQA0AlL0QA@0AlLQA0AlL`QA0AlLQA 0AlLQA0AlLQA&0AlL@QA.0AlLQA20AlL|QA%0AlLoQA0AlLmQA@0AlL0iQA+0AlLeQA_0AlL`^QA0AlLUQA@0AlL@QQA@є0AlLMQA@0AlL`FQAE0AlLAQA@g0AlL@QA{0AlLP@QA@0AlL @QA0AlL`@QA0AlLCQA0AlLHQA@0AlL QQA0AlLVQA0AlL0[QA@Ε0AlL`_QA0AlL`cQA0AlL0cQA@0AlLbQA0AlLaQA0AlL_QA 0AlLbQA+0AlLaQA50AlLeQAB0AlLpcQAG0AlLaQA@J0AlL@\QA@S0AlLZQA@]0AlL0YQAp0AlLZQA{0AlLSQA0AlLpTQA0AlLRQA@0AlL@NQA@0AlLNQAז0AlL`NQA0AlLHQA@0AlLpCQA0AlL=QA0AlL0:QA0AlL9QA@0AlL0>QA0AlL FQA@.0AlL`JQA=0AlLNQAH0AlL@SQAU0AlL@VQAb0AlL`TQAn0AlLOQA0AlLLQA0AlLPKQA0AlLRQA0AlLWQAҗ0AlL_QA@0AlLaQA@0AlLpdQA0AlLiQA0AlLkQA0AlL`gQA0AlLaQA0AlLaQA0AlLbQA,0AlL_QA20AlL ZQA@20AlLVQAC0AlL@SQAp0AlLQQA@0AlLRQA0AlLPQA0AlLJQA0AlLEQA0AlLPCQA0AlLPCQAĘ0AlLAQA0AlL?QA0AlL@QA0AlL;QA0AlL06QAĘ0AlL2QA0AlL4QA0AlL;QA0AlL5QA 0AlL6QA@0AlL:QA40AlL >QA@O0AlL>QAS0AlL`QA0AlL`7QAٙ0AlL2QA˙0AlL`'QA@0AlL QA@0AlLQA@0AlL@QA0AlLQA0AlLQA@{0AlL@QAg0AlL QA@h0AlLQA@c0AlLQA_0AlL`QAZ0AlL@QAV0AlLQAG0AlL@QA/0AlLQA0AlLQA0AlLQAĘ0AlL QA0AlLQA0AlLQAj0AlL@QAD0AlL@QA@&0AlLQA@0AlLQA@×0AlLQA@0AlLQAM0AlL}QA 0AlLyQA@ۖ0AlL@sQA0AlLoQA@0AlL@pQA@^0AlL@lQA50AlLdQA0AlL bQA@0AlL@_QA@֕0AlL]QA0AlL@ZQAc0AlLQQA@0AlLGQA10AlL>QA'0AlL@5QA@!0AlL.QA0AlL@QA@0AlLQA0AlL QA@0AlL@QA@0AlLQA@0AlLQA0AlLQAؔ0AlLQA0AlLQA0AlL@QAv0AlL QA^0AlL QA90AlLQA0AlL QA0AlLQAГ0AlLQA0AlL QA0AlLQA@0AlL`QA@~0AlLQA@E0AlL@QA@(0AlL@QA@ 0AlLQA0AlL{QAڒ0AlLtQA@0AlLmQA@0AlL jQA@0AlL`bQA0AlLYQAa0AlLPQAS0AlLKQAB0AlLEQA@0AlL8QA@ 0AlL 0QA@0AlL`%QA0AlL #QA0AlLQAƑ0AlLQA0AlLQA0AlLzQA@0AlL tQA@0AlL oQA0AlL dQA0AlL@XQA@0AlL OQA@0AlLGQA@0AlL@QA@{0AlL2QA>0AlL`QA@'0AlLQA0AlLQA@0AlLQA0AlLQA@0AlL QAn0AlLQA:0AlL QA0AlLQA0AlLQAҏ0AlLQA0AlLQA0AlLQA@p0AlLQA@B0AlLQA0AlLQAΎ0AlL`QA0AlLQA0AlLQA~0AlL@QA)0AlLQA@0AlL@QA@0AlLQA@ƍ0AlLQA0AlL`QA0AlLQAs0AlLQAS0AlLQA<0AlL QA 0AlL QA@ 0AlL@}QA0AlL@tQA0AlL mQA0AlL@^QA0AlL@VQA@0AlLNQA@0AlL@QA$0AlL5QA@10AlL/QA@;0AlL@%QA@C0AlLQAH0AlL QAJ0AlL QA@K0AlL@QAG0AlLQAF0AlLQAP0AlL QAi0AlL@QA{0AlLQA@0AlLQA0AlLQA0AlL`QA@0AlL`QA@0AlL QA΍0AlL{QA0AlL`eQA 0AlLUQA0AlLMQA0AlL CQA@&0AlL=QAL0AlL9QAg0AlL5QA@0AlL1QA0AlL+QA0AlL $QAώ0AlLQA0AlLQA@0AlLQA0AlLQA0AlLQA@E0AlLQAf0AlL QA0AlLQA0AlLQȀ0AlLQA0AlLQA 0AlL@QA0AlL`QA@50AlLQA@D0AlLQA`0AlLQA@v0AlLQA@0AlLzQA>0AlLyQA0AlL@wQA@ߏ0AlLnQA0AlLhQA0AlLcQA^0AlLaQA0AlLWQA0AlLKQA0AlL@QA܎0AlL@1QA0AlL`QA0AlL@QAg0AlL QAJ0AlLQA0AlLQA@0AlLQAЍ0AlL@QA@0AlLQAx0AlLQAF0AlLQA*0AlLQA@0AlLQA@ 0AlL@QA0AlLQAˌ0AlLQA@0AlLQA0AlLQA@0AlLQA0AlL`QAY0AlLQAV0AlLQAN0AlL@QA90AlLQA0AlLtQA0AlL@iQAË0AlL`QA0AlLUQA{0AlLLQA@W0AlL BQA/0AlL@?QA0AlL@3QA0AlL/QA0AlL*QA@k0AlL'QA<0AlL$QA@0AlL!QA@Ӊ0AlL!QA0AlL@!QA]0AlLQA@#0AlL QA0AlLQAƈ0AlL`QA@0AlL QAO0AlL QA'0AlLQA0AlL@QAڇ0AlLQA0AlL QA0AlL`QA@O0AlL@QA0AlLQA0AlLQAl0AlLQAE0AlLQA0AlLQA0AlLQA0AlL@QA0AlLQA0AlL@QAc0AlL@QAA0AlL QA,0AlL QA@0AlLuQA0AlLnQAބ0AlL jQA0AlL@mQAu0AlLiQA@0AlLhQA0AlL@hQAȃ0AlLhQA0AlLiQAn0AlLeQA@:0AlL^QA"0AlL[QA0AlLXQA0AlLNQAS0AlLHQA#0AlL`CQA@0AlL=QA@0AlL`6QA0AlL*QA@o0AlL"QA80AlLQA0AlL` QA@%0AlL@QA@.0AlL`QA20AlLQA30AlLQA@40AlLQA20AlL QA+0AlLQA'0AlL@QA@p0AlLzQA@0AlLQA0AlLQA@0AlL`QAv0AlLQA@^0AlL QA<0AlL QA0AlLQA~0AlLQA@~0AlLQA`~0AlLXQA@~0AlL *QA@p~0AlL`8QAf~0AlLGQA@r~0AlLTQA@~0AlLfQA~0AlL@QA@~0AlLQA@~0AlLQA~0AlL QA~0AlL QA@~0AlL QA~0AlL@QA@~0AlL QA@~0AlLQA~0AlL QAe~0AlL QAM~0AlL&QAA~0AlL6QA@<~0AlLJQA@8~0AlL^QA6~0AlL`rQA;~0AlL`QAQ~0AlLQAw~0AlLQA~0AlLQA@~0AlLQA@~0AlL`QA~0AlLQA0AlL QA 0AlLQA0AlL/QA 0AlL@;QA0AlLNQA0AlL[QA~0AlL`jQA~0AlL@|QA~0AlL@QA0AlLQA-0AlLQA@H0AlLQAj0AlLQA@0AlLQA@0AlLQA@0AlLQA0AlL` QA0AlLQAw0AlL&QAR0AlLOQAG0AlL\QA/0AlLkQA@0AlLwQA@0AlL QA~0AlLQA@~0AlL QA~0AlLQA~0AlL@QA@~0AlLQA~0AlLQA@~0AlL QA@0AlLQA0AlL QA@0AlL`QA0AlL*QA)0AlL4QA10AlL7QA@U0AlL`KQA@n0AlL@SQAs0AlLTQAw0AlL_QAX0AlLiQA@@0AlL@rQAF0AlLQAI0AlLQAA0AlL@QAC0AlLQA@O0AlLQAZ0AlLQA~0AlLQA~0AlLQA~0AlL QA@~0AlL`QAV~0AlLQA~0AlLQA}0AlLQA@}0AlLQAx}0AlL@QA<}0AlL@QA}0AlLQA@|0AlLQA}0AlL QA}0AlLQA}0AlLQA }0AlLQA&}0AlL@QA*}0AlL QA)}0AlLQA}0AlL "QA }0AlL-QA|0AlL`@QA|0AlL iQA|0AlLuQAy|0AlL`QAh|0AlLQAI|0AlL`QA<|0AlL`QA3|0AlL@QA"|0AlL@QA!|0AlLQA@|0AlL QA@|0AlLQA|0AlLQA,|0AlLQA@1|0AlLQA;|0AlL` QA;|0AlLQA@1|0AlLQA-|0AlL*QA(|0AlL5QA@(|0AlLGQA@|0AlLMQA |0AlLUQA|0AlL`\QA{0AlLgQA{0AlLoQA{0AlLuQA{0AlLQA{0AlL@QA@{0AlL`QA@{0AlL@QA{0AlLQA{0AlLQA{0AlLQA{0AlL@QA{0AlLQA@{0AlLQA@{0AlLQA{0AlL@QA{0AlLpQA{0AlLQA{0AlL`QA{0AlL`QA{0AlL(QA{0AlL.QA@{0AlL 7QA{0AlLAQA@{0AlLHQA@u{0AlL`RQAt{0AlLXQAp{0AlLbQAb{0AlLsQA@T{0AlLQAO{0AlL`QAM{0AlLQAN{0AlLQAG{0AlLQAD{0AlLQAG{0AlLQAF{0AlLQAC{0AlLQA={0AlLQA<{0AlL QAA{0AlLQAA{0AlL#QA5{0AlL`-QA){0AlL5QA@{0AlL@QAz0AlLKQAz0AlLUQAz0AlLdQA@z0AlLmQA@z0AlLQAz0AlLQAz0AlL`QAz0AlLQAz0AlLQA@z0AlL@QA@z0AlL`QA;z0AlLQAz0AlLQA*y0AlL`>QA@$y0AlLAQA@?y0AlL0KQAey0AlLHQAy0AlL`NQAy0AlL`TQA@y0AlL@WQAy0AlLZQAy0AlLpZQAy0AlLXQA@y0AlLUQA@y0AlLOQAy0AlL`OQAy0AlLPQA@ z0AlL`IQA@"z0AlL`HQA+z0AlLEQA5z0AlLGQA6z0AlLMQA@Iz0AlL VQAMz0AlLYQAOz0AlLZQANz0AlL]QACz0AlL dQAEz0AlLlQA@Iz0AlLpQALz0AlLsQA=z0AlLvQA@=z0AlL@yQAFz0AlLzQA@=z0AlL0QA@>z0AlLPQAGz0AlL@QA@Pz0AlL QA`z0AlL}QA@az0AlLuQAhz0AlL tQA}z0AlLqQAz0AlLqQA@z0AlLqQA@z0AlL`qQA@z0AlLpQAz0AlLpQAz0AlLqQAz0AlLsQAz0AlLuQA@z0AlL@wQA{0AlLpuQA{0AlLrQA{0AlLqQA){0AlLnQA@/{0AlLlQAC{0AlLiQAE{0AlLlQA@J{0AlLmQAI{0AlLpoQAT{0AlLpQAb{0AlLqQAk{0AlLpQAz{0AlLrQA{0AlLqQA@{0AlLoQA@{0AlLlQA@{0AlLhQA{0AlL@cQA@{0AlLbQA{0AlL hQA@{0AlL`jQA{0AlLlQA{0AlL`iQA@{0AlLfQA{0AlLbQA@{0AlLcQA@{0AlLpbQA@|0AlL@hQA|0AlLjQA@ |0AlLiQA|0AlLhQA@|0AlL eQA@|0AlL\QA@|0AlL`VQA|0AlLSQA'|0AlL`SQA3|0AlLTQA8|0AlLQQA2|0AlL@NQA'|0AlL0KQA@4|0AlL@IQAY|0AlLHQAj|0AlL0IQA|0AlLMQA@}0AlLOQA1}0AlLQQA}0AlL[QA@*~0AlLcQA@~0AlLpQA@:0AlLQA\0AlLQA@0AlLQA@~0AlLQA@~0AlLpQA~0AlL`QA@~0AlL`QA@~0AlLPQA~0AlL0QA~0AlLQA@~0AlLQA~0AlLQA~0AlLQA0AlLQAO0AlLPQA@{0AlLQA0AlL`QA0AlL@QA0AlLpQA0AlLQA0AlLQAm0AlLpQAN0AlLQA=0AlL0QA20AlLQA@-0AlL QA.0AlLQA=0AlL@QA@T0AlLQA0AlLQA0AlLQA0AlLQA0AlLQA@0AlLQA@0AlL`QA0AlL`QA)0AlLQA:0AlLQA50AlLQAN0AlLPQA0AlLPQA0AlLQA0AlLQA0AlLQA@΀0AlL0QAӀ0AlLpQAҀ0AlLQAـ0AlLQA0AlLQA0AlLQA0AlLQA0AlLQA 0AlLQA0AlLQA0AlLQA 0AlLpQA!0AlL@QA$0AlLQA0AlL`QA0AlLpQA@!0AlLQA00AlLQAC0AlLQAW0AlL@QAm0AlLQA0AlLQA0AlL0QA܁0AlL0QA0AlLQA0AlL@QA0AlL@QA-0AlLЩQA@;0AlLQA@F0AlL`QA@;0AlLQA60AlLQA)0AlLQA'0AlLQA10AlL0QAG0AlLQA@Z0AlLQAr0AlLQAw0AlL@QA~0AlLQA@0AlLQA@0AlLQA@0AlLQA@҂0AlLQA(0AlLQA.0AlLQAL0AlLQA@^0AlLQA@c0AlLQAv0AlLQA0AlLQA@0AlLQA΃0AlLPQA@0AlL@QA@0AlL@QA@0AlLQA@0AlLQA0AlLQA 0AlL`QA$0AlLPQA,0AlLPQA60AlLQAC0AlLQA@0AlLІQA@L0AlLQA@R0AlLwQAa0AlLwQAh0AlL xQA~0AlLxQA@0AlLxQAɄ0AlLwQAՄ0AlL wQA0AlL@wQA0AlL xQA0AlL}QA0AlL~QA0AlLpQA@0AlLQA0AlLQA!0AlLQA40AlLQA:0AlLQAQ0AlLQA@k0AlL`QA@s0AlLQA0AlLQA0AlLQA0AlL@QA@0AlLQAƅ0AlL`QAυ0AlLЌQA؅0AlLQA0AlLАQA0AlLВQA0AlL`QA0AlLQA0AlLQA0AlLQA0AlLQA0AlL@QA0AlL QA@#0AlLQA@&0AlLpQA+0AlLPQA30AlL`QA70AlLQAE0AlLQAQ0AlL@QA^0AlLQAc0AlLQAm0AlL QA0AlLQA0AlL0QA@0AlLQA@0AlLQA@0AlL`QA0AlLQA0AlLQA0AlLQA@0AlL QA0AlL QAĆ0AlLQA@0AlLQAB0AlL@QA0AlLQA@ć0AlLQA0AlLQA00AlLQAk0AlLQA0AlLQA0AlLQA@ֈ0AlLpQAۈ0AlLQA0AlLpQA0AlLQA0AlLQA@ 0AlLQA0AlL`QA0AlL@QA-0AlLQA@D0AlLQAM0AlLQAO0AlLQAY0AlL@QAg0AlL`QAs0AlLQA|0AlLpQA0AlLQA0AlL`QA@Ӊ0AlLQA0AlLНQA0AlLQA10AlLQA@O0AlL`QA@Y0AlLQAU0AlLQAN0AlLQAE0AlLQAB0AlL`QAA0AlLQAK0AlLкQAR0AlL QA@T0AlLQAS0AlLQAR0AlLQAK0AlL@QA@Q0AlL QA`0AlLQA@d0AlLQAu0AlL QA}0AlL`QAu0AlLQAn0AlLQAv0AlL0QA0AlLQA@0AlLQA@0AlLQA0AlLQAʊ0AlL@QA0AlLpQA@0AlLQA0AlLQA0AlLQA0AlLQAۊ0AlLQA@Ԋ0AlLQA@ߊ0AlL0QA0AlLQA50AlL@QAj0AlLQA@q0AlL@QA{0AlL@QA0AlL QA@Ջ0AlLQA0AlLQA0AlLQAG0AlL QA0AlL`QA0AlLQAȌ0AlLжQA0AlLQA0AlL0QA0AlL@QA@#0AlLQA)0AlLPQA@0AlLPQA0AlL@QA0AlL0QA0AlLQA!0AlLQA@<0AlL`QA@`0AlLQA`s0AlL`QAv0AlLQA0AlLQA0AlLQA0AlLpQA0AlL QA0AlLQA΍0AlLQA@ԍ0AlL`QAލ0AlLQA0AlLQA@0AlLQA0AlLQA@!0AlLQA@,0AlLQA30AlLQAS0AlLQA|0AlLQA0AlLQA@0AlL QA@Î0AlLQA@0AlLQAŽ0AlLQAˎ0AlLQA@Վ0AlLpQA@0AlLQA0AlLQA0AlLQA0AlL`QA0AlLQA.0AlLQAV0AlLQAs0AlL`QA0AlLQA0AlLQA0AlLpQA0AlLQAÏ0AlLеQA0AlLQA@0AlLQA0AlL`QA0AlLQA0AlL QA0AlLQA0AlLQA0AlLQA0AlLQA@0AlLQA0AlL`QA0AlLPQA@0AlLQAϏ0AlLQA܏0AlL QA@ߏ0AlLp QA0AlLp QA0AlLp QA0AlL@QA0AlL@QA30AlLPQA>0AlLQA#(.AlL QA/4/AlL@QAa&=L /AlLlQA{ /AlLbQAV /AlL@RQAF /AlL@CQA9 /AlL 7QA$ /AlL -QA /AlL&QA /AlLQA /AlLQA /AlL`PQA[ /AlL`KQA /AlL FQA /AlL>QA /AlL6QAd/AlL /QA/AlL"QA@/AlL`QA/AlLQA/AlLQAK/AlLՠQA/AlL`QA/AlLQAx/AlLQA2/AlL QA/AlL`yQA/AlLlQAZ/AlLUQA./AlL CQA*/AlL1QA:/AlL*QA/AlL@/QA/AlL`2QA@/AlL4QA/AlL8QA/AlL`=QAd/AlLEQA/AlLMQA6/AlLTQA/AlLWQA/AlL\QAt/AlLdQA/AlLiQA/AlL`mQA| /AlLvQA /AlL{QA< /AlLQA /AlLQA /AlLQA- /AlLyQA /AlLyQA /AlL {QA /AlLwQA> /AlLXQA /AlL BQA /AlL&QA8/AlLQA/AlLQA,/AlL`QA/AlL`QA/AlL@QA/AlLQA|/AlLjQA[/AlLGQA&/AlLQA"/AlL QA8/AlLQAN/AlL ڞQA_/AlL`QA`/AlLQAM/AlLQA/AlL`QA /AlLQAq /AlL@QA- /AlLQA /AlLQAl /AlLQA, /AlL QA /AlL`QAN /AlL QA /AlL@QA /AlLQA /AlL QA /AlLxQA /AlL@hQA3 /AlLUQA] /AlLGQA /AlL7QA /AlL`$QA /AlLQA /AlLQA /AlLQA /AlL`QA* /AlLQAs /AlLQA /AlLQA' /AlL@QAU /AlL QAb /AlL@QAp /AlLQAu /AlLܝQAm /AlL ՝QAH /AlLQA /AlLQA /AlLQA /AlLQAg /AlLಝQAe /AlLQAx /AlL@QA /AlLQA /AlLpQA /AlL\QA /AlLCQA /AlLߜQA /AlL̜QAd /AlL QA` /AlLQA /AlL@QA /AlLQA /AlL QAl/AlL rQA/AlL aQA9/AlLbQA/AlL`eQA /AlL@gQA/AlLeQA/AlLcQA/AlL`QA/AlL `QA/AlL]QAn/AlL [QA/AlLVQA/AlL@VQA(/AlL]QA#/AlLQA/AlLQA/AlLZQA/AlLQA/AlL QA/AlLÝQA/AlL`ԝQA/AlL QA=/AlL`QAr/AlLQA/AlL@QA/AlL QA/AlLQAH/AlL.QAS/AlL`5QA]/AlL;QA/AlL IQA/AlL`VQA/AlLcQA\/AlL`yQA/AlLQAx/AlLQA/AlLQA!/AlL@QAt/AlLQA/AlL QA/AlL@QA/AlLQA3/AlLQA/AlLQA,/AlL QA/AlLQA/AlLQA./AlLQA/AlLQA/AlLQAR/AlLQA/AlL`QA/AlLQA /AlL|QAh/AlLvQA/AlL@sQAG /AlLpQA /AlL@lQA!/AlLjQA_!/AlLoQA!/AlLoQA!/AlLiQAF"/AlLdQA"/AlLbQA#/AlLdQAT#/AlL lQA#/AlL tQA#/AlLtQAY$/AlL`iQA$/AlL@cQA%/AlL]QA%/AlL SQA%/AlLNQA&/AlLMQA4'/AlLGQA'/AlL`EQA%(/AlL;QAp(/AlL`5QA(/AlL1QA8)/AlL 2QAz)/AlL,QA)/AlL QA)/AlLQA*/AlL@QA;*/AlL QAX*/AlLQAl*/AlL`QAs*/AlLQA*/AlL۝QA*/AlL՝QA*/AlLםQAT+/AlLםQA+/AlLӝQA,/AlL͝QAb,/AlL@ĝQA,/AlLĝQA@-/AlLQA-/AlLQA./AlL@QA./AlLQA://AlLQA//AlL@QA80/AlLQAp0/AlLĝQA0/AlLƝQA1/AlLQA2/AlLÝQA2/AlLQA/3/AlL@QAp3/AlL`QA/4/AlL`QA3/AlL|QA83/AlLSQA2/AlL@!QA1/AlLQA*1/AlLQA0/AlLQQA//AlLDQA//AlL`:QA//AlL(QA//AlL QAs//AlLQA$//AlLQA //AlLQA./AlLQA./AlLQAt./AlLnQAj./AlL ^QAd./AlL`5QA2./AlLQA-/AlL QA-/AlLQAb-/AlLdQA-/AlLRQA,/AlL@OQA-,/AlLNQA+/AlLLQAv+/AlL>QA+/AlL(QA*/AlLQA*/AlL&QAN)/AlL&QA(/AlL)QA^(/AlL0*QA'/AlL+QA'/AlL ,QA)'/AlL (QA&/AlL`!QA&/AlL`QA&/AlLQA!&/AlL QA%/AlL`QA%/AlLQA$/AlLQAl$/AlL QA#/AlL QAp#/AlLQA"/AlLQAs"/AlLQA!/AlL#QAK!/AlLQA /AlLQAb /AlL@QA$ /AlL@QA/AlLQA/AlL`QAi/AlL%QA/AlL`*QAA/AlL4QA/AlL2QA/AlL3QA\/AlL@5QA/AlL5QA5/AlL@7QAx/AlL7QA/AlL@?QA/AlLHQA/AlLOQA/AlLWQA/AlLcQAW/AlLfQA/AlLiQA3/AlL hQA/AlLdQA/AlL^QA/AlL`]QAV/AlLeQA/AlLgQA)/AlLiQA/AlLeQAU/AlL`lQA/AlLqQA/AlLxQA/AlL`QAJ/AlLQA/AlL`QA/AlLQA}/AlLQA;/AlLQA /AlLQA /AlLњQA /AlL ԚQA. /AlLӚQA /AlLךQAA /AlLٚQA /AlLܚQAB /AlLQA /AlL`QA /AlLQAJ /AlLQA /AlLQA /AlLQA /AlL QA/AlLQA/AlLQAr/AlL@(QA/AlL2QA9/AlL`QA .AlL8QA.AlL 2QA>.AlL-QA.AlL0QA.AlL4QA9.AlL6QA.AlL8QA}.AlL9QA.AlL7QA.AlL6QA|.AlL5QAF.AlL 4QA.AlL`3QA.AlL1QA.AlL 4QA.AlL`7QAY.AlL:QA.AlLLQA.AlLTQA.AlLVQAS.AlLWQA.AlL^QA.AlLbQA.AlL@fQAn.AlL cQA.AlLaQA.AlL ZQA׼.AlLUQA-.AlLMQAһ.AlLJQA.AlL`BQA@.AlL ;QA.AlL 4QA.AlL@)QA۷.AlLQA.AlL QA.AlL QA.AlL`QA.AlL@QAٴ.AlLQAɴ.AlL QA.AlL@QA.AlL@QAҴ.AlL&QAʴ.AlL3QA.AlLDQA.AlLLQA.AlLVQA.AlL\QA.AlL`QA}.AlLjQAt.AlL`uQAa.AlLQA[.AlLQA;.AlL@QA'.AlLQA.AlLQAy.AlL`QAE.AlL@ǛQA.AlL ћQAֲ.AlL QA.AlLQA.AlLQA.AlLQA.AlLQA.AlL QA.AlL`)QA1.AlL=QA.AlL CQA1.AlLLQAP.AlL`[QAI.AlL`eQAB.AlL nQAA.AlLwQA8.AlL QA8.AlLQAb.AlLQA.AlLQA.AlLQA.AlL๜QA.AlLĜQA׳.AlLϜQA!.AlLڜQAj.AlLQA.AlLQA.AlLQAA.AlL QA.AlLQA.AlL+QAp.AlLp1QA0.AlL9QA.AlL`CQAд.AlLGQA.AlLNQAY.AlL`UQA#.AlL@dQA.AlL@nQA.AlLwQAֳ.AlL@QA.AlLQAR.AlL QA.AlL@QA!.AlLQA .AlL@ÝQAݲ.AlLϝQAز.AlLٝQA.AlLQA.AlL QA%.AlLQA=.AlL'QAH.AlL9QAY.AlL`HQA.AlLTQA.AlL \QA.AlLhQA.AlLxQA.AlL`QA.AlL`QAس.AlL@QA .AlLQAQ.AlL QAӴ.AlLQA.AlLǞQA.AlL ֞QA^.AlL QA.AlLQAҳ.AlLQAҳ.AlL` QA.AlLQAf.AlL@QAT.AlL0"QA<.AlL)QA.AlL?QA.AlL`LQA.AlLWQA.AlLdQAk.AlLkQAk.AlL`uQA.AlL xQA.AlL |QAݲ.AlLଟQA.AlLQAs.AlLǟQA3.AlL`ҟQA,.AlL ۟QAT.AlL@QA[.AlL QAA.AlLQA<.AlL QAR.AlL@QAD.AlL'QA.AlL:QA.AlL`HQA.AlLPQAo.AlL`]QAk.AlL@jQA8.AlLQA.AlLQA.AlL@QA.AlL`QA.AlLठQA.AlLQA.AlLQA.AlLའQA.AlLǠQA.AlLΠQA.AlL٠QAI.AlLޠQA.AlL QAб.AlLQA&.AlLޠQAs.AlLݠQA.AlL QA.AlLQA9.AlLQAp.AlLQA.AlL QA.AlLQA5.AlL`QAg.AlLQAѴ.AlLQA$.AlL@QA\.AlLQA.AlL QA.AlL QAJ.AlL`QA.AlL`QA.AlL@QAӶ.AlL QA.AlL@ QAK.AlLQA.AlLQA.AlL`QA.AlLQA.AlL#QA6.AlL+QAS.AlL0QAp.AlL 6QA.AlL`=QA.AlL:QA3.AlL:QAf.AlL;QA.AlL=QA.AlLFQAz.AlL`LQAs.AlLVQA.AlL]QA.AlLgQA۹.AlL nQA.AlLsQA1.AlL`vQA`.AlL |QA.AlL@QA.AlLQA.AlLQAb.AlLQA.AlLQA.AlL`QAl.AlLQA.AlLQA׼.AlL`QAJ.AlL QA.AlLQA.AlLQA<.AlLQA.AlLQA-.AlLQA.AlL~QA.AlLxQAq.AlL@uQA.AlL@gQA.AlL]QA.AlLSQA4.AlLMQAq.AlLTQA.AlLXQA.AlL`ZQA.AlLWQAY.AlLGQA.AlL @QA.AlL4QAo.AlL)QA.AlLQA.AlL QA>.AlL QAu.AlLQA.AlL`QA.AlLQA.AlL QA.AlL֠QAC.AlLʠQA^.AlL๠QAk.AlLQA.AlLQA.AlLQA].AlLQA.AlL@{QA.AlLpQA.AlLbQA.AlLVQA.AlLHQA.AlL 8QA|.AlL`,QA.AlL#QA.AlLQAd.AlLQA.AlLQA .AlL@ğQA..AlL౟QA.AlLQA.AlLQA7.AlLQA.AlLQA.AlLwQAL.AlL@kQA.AlLWQA[.AlLVQA.AlL^QAW.AlL`QA.AlLaQA1.AlL_QA.AlLOQA.AlL=QA.AlL@3QA.AlLQA .AlL`QAA.AlLQAe.AlL מQA{.AlLQA{.AlL QAy.AlLQA.AlLQA.AlLQA.AlLQA.AlLxQA.AlLlQA .AlL@pQAW.AlLtQA.AlL`~QA?.AlL`QAt.AlL QA.AlLQAE.AlLQAq.AlL QA.AlL๞QA.AlLQAO.AlL@QA.AlL@̞QA.AlL̞QA.AlLԞQAE.AlLܞQA.AlLQA.AlLQA`.AlL`QA.AlLQA.AlLQAn.AlLQA.AlL@QA?.AlL&QA.AlL2QA.AlL9QA.AlL =QA.AlL9QAH.AlL`8QAp.AlL/AlLQAE/AlL@QAX/AlL QAb/AlL`QA/AlL@QA/AlL@QA&/AlL!QA]/AlL'QA/AlL`.QA/AlL@5QA/AlL>QA/AlLDQA/AlLMQA/AlL[QA/AlL`bQA./AlL@bQAs/AlL``QA/AlL@fQA /AlLlQAQ/AlLfQA/AlL iQA/AlLlQA/AlL tQA(/AlL |QA0/AlLQA^/AlLQA/AlLQAV/AlL`QA/AlL`QA/AlL QA/AlL@QAH/AlL QAz/AlLQA/AlL¢QA /AlLϢQA[/AlLޢQA/AlLQA/AlLQA/AlL@QAU /AlLߢQA /AlLТQA6 /AlL QA /AlL`QAx /AlLQA /AlLQA /AlL`QA /AlLvQA /AlLlQAJ/AlL0QA/AlL QA/AlLQA</AlL@QA/AlL`QA/AlL ՝QAt/AlL`ʝQA/AlL@QA/AlLଝQA/AlLQA/AlL஝QAy/AlL@QA./AlLQA/AlLQA/AlLQAW/AlL@ҝQA/AlL`QA/AlL`QA/AlL@ QAf/AlLQA/AlLQA/AlLQAI/AlLQA/AlL ݝQA/AlL̝QA/AlLQA/AlL@uQA/AlLdQA/AlLaQA`/AlLfQA/AlL`kQA/AlL`mQAg/AlL mQAL/AlL`QA/AlLQA/AlL (QA/AlL@6QA|/AlL9QA/AlL@=QA;/AlLGQA/AlLQQA/AlLWQA/AlL`aQAI/AlLhQAX/AlLqQAL/AlLzQA</AlLQA/AlLQA/AlLQA/AlL`QA/AlL QA/AlLQAL/AlL QA/AlLQA/AlL@QAe/AlLQA/AlL`QAJ/AlL0QA/AlL/QA/AlL.QA/AlL1QA%/AlL`6QA/AlL4QA/AlL@6QA/AlL4QA/AlL5QA/AlL;QA/AlL5QAr/AlL,QA/AlLQA/AlLQAB/AlLQA/AlLQA/AlL@QA/AlLQAb/AlLQA/AlL`QA/AlL;QAA/AlL@7QA#/AlL4QA/AlL/QAo/AlL`QA/AlL`QA/AlLɞQA/AlLўQAX/AlL՞QA/AlLڞQA/AlLQAz/AlLQA/AlLQA /AlL@QA/AlL`QA/AlL QA/AlLQA/AlLQAo/AlL`QA^/AlLKQA/AlLJQA6/AlLJQA/AlL@HQA/AlL@IQA7/AlLGQAO/AlLn/AlLžQA-n/AlL QA"n/AlLQA+n/AlLQAn/AlLQAn/AlL QAn/AlL@QAm/AlLwQAm/AlL`qQAm/AlL`hQAm/AlLSQAlm/AlLIQAHm/AlL@CQAm/AlL?QA1m/AlL`5QA@m/AlL/QAPm/AlL&QAWm/AlLQATm/AlL@QAFm/AlLQAMm/AlLQAbm/AlLQAlm/AlL`ݽQAm/AlLԽQAm/AlLýQAm/AlLQAn/AlL QA)n/AlLQARn/AlL|QAkn/AlLkQAn/AlL YQAn/AlLLQAn/AlL EQASn/AlL=QA!n/AlL5QAm/AlL*QAm/AlLQAn/AlLQA>n/AlL@QA[n/AlLQAn/AlLQAn/AlLQAn/AlLؼQAn/AlLQAo/AlL QA&o/AlLQAo/AlLQAo/AlLQAo/AlL}QA#o/AlLoQA3o/AlL`QAHo/AlLPQAro/AlLFQAo/AlL FQA-p/AlL`CQAp/AlL:QAp/AlL-QAq/AlL %QAjq/AlL@%QAq/AlL#QA r/AlL@ QAWr/AlL@QAr/AlL@QA:s/AlLQAIs/AlL QA?s/AlL@QA3s/AlL QAs/AlLڻQAs/AlLѻQA s/AlLɻQAs/AlL`QA,s/AlLQA=s/AlLQAr/AlLQA7r/AlLQAq/AlLQAq/AlL୻QAEq/AlLQAp/AlL఻QAp/AlLQAp/AlLૻQAmp/AlL_QA%q/AlL@eQAq/AlL QAn/AlLQA*m/AlL QAFl/AlL*QAk/AlL6QAQk/AlLJQAk/AlLVQAjj/AlL`pQAj/AlLQAi/AlLQAsi/AlL`QAg/AlL`QApg/AlLQAg/AlLQAf/AlLQAf/AlLQA9f/AlLQAhd/AlL QAcd/AlL`QA]d/AlLࢻQAUd/AlLQAWd/AlL@QAdd/AlLŻQApd/AlL̻QA d/AlL̻QAc/AlLɻQAc/AlL@ƻQAb/AlLĻQAsb/AlL»QAa/AlLQAQa/AlLQA`/AlL୻QAx`/AlLQA`/AlL`QA_/AlL`QAF_/AlL QA^/AlLQAO^/AlLQA]/AlLQA~]/AlL@QA\/AlLQA\/AlLQA5\/AlLQA[/AlLQA[/AlL QAZ/AlLQAZ/AlLQAZ/AlL QA*Y/AlL(QAY/AlL 9QAY/AlL*QAY/AlL`QAY/AlLQAY/AlL`QApY/AlL ۺQAqY/AlL˺QApY/AlLQAqY/AlLQAY/AlLQAY/AlLQAY/AlLlQAuY/AlLXQA@nY/AlLQQAQ/AlLȺQA1N/AlLQAG/AlL`JQA@/AlLpuQA@/AlLuQA;@/AlL@uQA?/AlL vQAo?/AlLvQA>/AlL@wQA>/AlL@xQA%>/AlL zQA=/AlLyQA.=/AlL@}QA(;/AlL`QA:/AlLQA:/AlLQA;:/AlLQA9/AlLQA9/AlLQA9/AlL`QAE8/AlLQA&G/AlL@QAG/AlLQAF/AlLQAF/AlLQA6F/AlLļQA}E/AlLڼQAQE/AlL޼QA1E/AlLQAD/AlLQAD/AlLQAD/AlLQAD/AlL@QAD/AlL@QAD/AlLQAD/AlL QAD/AlL&QAD/AlL1QA7D/AlLJQAC/AlLUQAC/AlL[QAC/AlL_QAhC/AlLeQA+C/AlL@nQAB/AlLrQAB/AlL`sQAtB/AlLuQAHB/AlL|QA+B/AlL`QAB/AlLQA B/AlLQAA/AlLQAA/AlL`QA{A/AlL`QAiA/AlL@QAbA/AlL@ȽQAKA/AlLԽQAA/AlLQA@/AlLQA@/AlLQA@/AlL QA@/AlLQAz@/AlL QAZ@/AlL QA=@/AlL@QA @/AlL#QA @/AlL`)QA?/AlL5QA?/AlL=QA?/AlLIQA?/AlL`SQA?/AlL@YQA@/AlL`QA8@/AlLgQA^@/AlL@uQA}@/AlLQAx@/AlLQAk@/AlL QA\@/AlLQAi@/AlL QAk@/AlL@QAP@/AlL QA4@/AlLþQA @/AlLʾQA?/AlLѾQA?/AlL޾QA?/AlLQA?/AlL`QA?/AlLQA?/AlL@0QAY?/AlLAQA"?/AlLjQA ?/AlLyQA?/AlL@QA>/AlLQA>/AlLQA>/AlLQA>/AlL෿QA>/AlLǿQA>/AlL ؿQA>/AlLQA>/AlLpQAT?/AlLQA?/AlL$QA?/AlL )QAf@/AlL WQA@/AlLdQA@/AlLlQAA/AlL@vQAA/AlLQAA/AlLQAB/AlLQAtB/AlL`QAB/AlLpQAE/AlLQAQE/AlLQAE/AlLQAE/AlL QA F/AlLQAAF/AlLQAgF/AlL@QAF/AlL%QAF/AlL.QA G/AlLBQAG/AlL@TQAlH/AlLQAI/AlLQAI/AlL0QAI/AlLQAJ/AlLQAJ/AlLQATK/AlLQAK/AlL`QAK/AlL@QAQA9/AlL`9QAҞ/AlL.QAX/AlL"QA/AlLQA/AlL`QAu/AlLQAz/AlL QA/AlLQA/AlLQAh/AlLQA'/AlLQAk/AlL QA/AlLQAɝ/AlLQA/AlLQA%/AlLQA6/AlLQAQAs/AlLHQAs/AlLQQAs/AlL`XQAhs/AlL`QA:s/AlL`fQAs/AlLnQARs/AlL rQAs/AlL`xQAht/AlL@QAt/AlL QAPu/AlLQAu/AlLQAu/AlL@QAv/AlLQABv/AlL}QA]v/AlL@uQAuv/AlLjQAv/AlLaQAv/AlLYQAv/AlLKQAv/AlL?QAv/AlL@2QAv/AlL"QAUv/AlL`QAv/AlL`QA|/AlL ^QA0AlLQA7/AlLQA1/AlLQAt/AlLQA/AlL@QA/AlL0QA/AlLQA/AlL@QAN/AlL@QA/AlLQA+/AlL QA\/AlLQA/AlL`QA/AlLQA/AlLܲQA/AlLֲQA/AlL`ͲQA/AlL²QA0/AlL QA/AlL`QA/AlL@QAG/AlLQA/AlL QA/AlLലQA/AlLQAG/AlLQAR/AlLQA/AlL`QA/AlL@QA/AlL QAv/AlLQA/AlL~QA/AlL@wQAJ/AlLnQA/AlL bQA/AlLZQA>/AlLSQAw/AlLNQAu/AlL`CQAh/AlL;QAb/AlL 5QA/AlL1QA/AlL@4QA#/AlL0QAD/AlL#QAq/AlLQA/AlL QAn/AlL`QA/AlLQA/AlLQA0AlLQA+0AlL`ݱQAC0AlḺQA@N0AlLñQA@P0AlLQAP0AlLPQAO0AlLQAq0AlL૱QA0AlLQA0AlL`QA@0AlL@QA0AlLQAF0AlLQA{0AlLQA@0AlLQA0AlL`QA40AlL@QA@g0AlLQA@0AlL@QA0AlLQA0AlL QAB0AlLQA@0AlLQA0AlLzQA@0AlLwQAF0AlLrQAj0AlL sQA0AlL`rQA@0AlLpQA@0AlLtQA0AlLpQAV0AlL@oQA0AlLcQA0AlLZQA@J0AlLXQAd0AlLVQA@0AlLUQA0AlLUQA@0AlL PQA0AlL AQA0AlL@:QA0AlL0QA@0AlL#QA0AlLQA@%0AlLQA@30AlL QAQ0AlL QAo0AlLQA0AlLQA0AlLްQA0AlL@հQA0AlLʰQA@0AlL@ðQA0AlLQA0AlLQA0AlL`QA.0AlLࢰQAI0AlL`QA_0AlL`QA|0AlLQA0AlL`QA@0AlLzQA0AlLpQA 0AlLjQA2 0AlLdQAI 0AlLaQAl 0AlL`QA@ 0AlL]QA 0AlL@[QA 0AlLYQA 0AlL`VQA@ 0AlL@UQA@4 0AlL`SQA@N 0AlLOQA@g 0AlL@IQA 0AlLFQA 0AlL@EQA@ 0AlLDQA@ 0AlL@QA 0AlL 8QAF 0AlL3QA@h 0AlL@.QA 0AlL&QA@ 0AlLQA 0AlLQA@ 0AlLQA 0AlLٯQA 0AlL@ǯQA! 0AlL QA* 0AlL QA5 0AlLQAP 0AlL`QAp 0AlL QA 0AlL`~QA@ 0AlLxQA@ 0AlL@rQA@I 0AlLlQAl 0AlLdQA 0AlL ^QA 0AlLXQA@ 0AlLRQA 0AlLIQA@0AlL=QA0AlL3QA0AlL%QA,0AlL QAZ0AlL QA0AlLQA@0AlLQA@0AlL`QA0AlL@ڮQA@0AlLϮQA!0AlL`QAL0AlL@QA@e0AlL@QAv0AlL QA{0AlLQA0AlLQA0AlLQA0AlL|QA0AlLqQA 0AlL`fQA(0AlL\QA>0AlL`SQAK0AlLGQAH0AlL@@QAV0AlL9QAj0AlL0QAz0AlL %QA@t0AlLQAs0AlLpQAq0AlL QA\0AlLQAJ0AlLQAD0AlLQA@L0AlLQAB0AlLQA80AlLڭQA50AlLӭQA>0AlḼQA@O0AlL@QA@V0AlL QAd0AlL QA@w0AlL`QA0AlLQA0AlLQA0AlL QA0AlLQA@0AlL QA0AlLvQA0AlL`pQA}0AlL`lQAV0AlLbQAK0AlLZQAE0AlLNQAA0AlLFQA@00AlL5QA 0AlL/QA 0AlL@(QA0AlLQA0AlLQA0AlL QA0AlL@ QAx0AlLQAZ0AlL@QA0AlLQA0AlL 2QA@0AlLQA 0AlLʪQAhQ 0AlL@QA@ 0AlL YQA@ 0AlLWQA@j 0AlL`QA 0AlL QA@ 0AlLQA? 0AlLQA0AlL@QA$0AlLsQA90AlLpQA@0AlLlQA0AlLkQA0AlLcQA0AlLQA0AlLeQA@z0AlLPLQA@x 0AlL^QA@ 0AlLPQA 0AlL JQA 0AlLCQA 0AlL`2QA@ 0AlL &QA 0AlLQAi 0AlLQA\ 0AlL QAU 0AlLQA@D 0AlLQA3 0AlLQA 0AlLQA@ 0AlL@QA 0AlLQA 0AlLަQA@ 0AlLԦQAl 0AlL`ʦQAO 0AlLŦQA2 0AlLQA 0AlL QA 0AlLQA 0AlLQA 0AlLXQA 0AlL@QA@} 0AlLQAY 0AlLQA9 0AlLzQA 0AlL rQA 0AlLjQA 0AlLfQA 0AlL@aQA 0AlL ^QA}0AlL~QA60AlLQA-0AlLQA@0AlL@QA0AlL7QAn0AlLAQAr0AlL2QA0AlL=QA0AlLQAR/AlL@2QAy/AlL:QA/AlLBQA/AlLJQAp/AlLQQAX/AlLTQA/AlLpWQA/AlLQA/AlLQA/AlLQAh/AIQQAz/AlL@ǧQA6/AlL`˧QA/AlLQA/AlL QA/AlL#QAH/AlL`8QA'/AlLQQA/AlLWQA-/AlL@gQAT/AlLyQA/AlL@QA5/AlLQA/AlL@QA/AlLgQA/AlL `QAm/AlLVQA/AlL FQAV/AlLQA/AlLFQA;/AlL@QQA"/AlLaQAC/AlL@nQA/AlLQA/AlLQAr/AlL QA/AlLపQA=/AlLΪQA=/AlLѪQA>/AlL֪QA?/AlLܪQA/AlLQA/AlLEQA/AlL [QAm/AlL`QA/AlLQA/AlLūQA/AlL`QA/AlL 0QA/AlL@pQAF/AlLQA%/AlLQA/AlL׬QA/AlLQAq/AlLQAa/AlL QA /AlLQA/AlLQAd/AlL1QA3/AlL7QA&/AlLP9QA/AlL`@QA/AlL`OQAV/AlL^QA/AlLpQA/AlL`zQA/AlLQAc/AlLQA/AlL@QA&/AlLQA/AlLQA]/AlLQAv/AlLQA&/AlLQA/AlL QAG/AlLQA/AlLQA`/AlLƭQA/AlL`ҭQA+/AlLܭQA/AlL@QA/AlL`QA/AlL@QA"/AlLQAp/AlL@/QA/AlL EQA/AlL]QAS/AlLQA/AlLQA4/AlL߮QA/AlLQAN/AlL`QA/AlL QA/AlLQA /AlL QA|/AlL+QA/AlL@0QA;/AlL6QA/AlL=QA/AlL`DQAG/AlLKQA/AlL`UQA8/AlLdQAw/AlLjQA/AlLvQAբ7/A51~QA/AlLpQA/AlLQA/AlLQAe/AlLQA)/AlL`QA/AlL@QA/AlLQA/AlLQAr/AlLQAb/AlLQAG/AlLQA6/AlL@QA//AlL`QA0/AlLQA7/AlLQAF/AlLůQAR/AlL ˯QA/AlLӯQA/AlL`ݯQA,/AlLQA/AlL@QA/AlLQA/AlLQA/AlL`QA/AlL QA/AlL)QA/AlL*QA/AlLFQAZ/AlLNQA*/AlLbQAE/AlL@QA/AlLQA/AlLQA/AlL`ȰQA/AlLذQA/AlLQA/AlL QA/AlL QA/AlLQA/AlL QAb/AlL#QA/AlL@#QA[/AlLQAf/AlL߰QA/AlL@ǰQA/AlL QA:/AlL@QA/AlLQA/AlLQA/AlLQA/AlLҰQAO/AlL@CQA/AlL`WQA/AlLiQAY/AlL@vQA/AlLQAh/AlL@QA/AlLȱQA}/AlLԱQAa/AlL@QA]/AlL@QAG/AlL QA/AlLQA/AlL@QAr/AlLQAt/AlL QA/AlL@ QAb/AlL@QA/AlL QA/AlL`QA`/AlL`QA/AlLQA /AlLQAl/AlLQA/AlL`QAD/AlL@QA/AlL"QA/AlL+QAj/AlL4QA/AlL?QA)/AlLPQA/AlL@\QA/AlL`hQA/AlLwQA/AlL QA/AlLQA`/AlL QA/AlLQA/AlL`QAi/AlL௲QA/AlL౲QA/AlLQA/AlL ϲQA/AlLݲQA /AlLQA/AlLQA/AlL QA /AlLQA/AlL`QA/AlL QA@/AlLQA/AlLQA/AlLQA/AlL QA;/AlL QAs/AlLQA/AlLQAH`//A逢jQA5U50AlLtQA /AlLutQA/AlL`dtQA:/AlL \tQA}/AlLXtQA/AlLQtQA2/AlLItQAs/AlLDtQA/AlL;tQA3/AlL4tQA/AlL.tQA/AlLP(tQAJ/AlL*tQA/AlL.tQA./AlL3tQA/AlL@4tQA/AlL1tQA/AlL@)tQA/AlL!tQA%/AlLtQA /AlL@tQA/AlLsQA/AlLsQAA/AlLsQA /AlLsQA/AlL sQA/AlLsQAr/AlLsQA8/AlLsQA/AlL sQA/AlLosQA/AlLasQAH/AlL@FsQA/AlL@7sQA/AlL*sQA/AlL!sQA7/AlL sQA /AlLsQA/AlLsQA /AlLP sQA/AlLsQAT/AlL@sQA/AlLsQA/AlL sQA/AlL sQAx/AlLsQA/AlL@ sQA/AlLrQA/AlL@rQAp/AlLrQA/AlLrQA&/AlLxrQAY/AlLerQA/AlL@KrQA/AlLqQA^/AlL@qQA/AlLBqQA/AlLCqQA/AlL6qQA/AlL,qQA/AlL@#qQAoQA0AlL 6oQA0AlL/oQA5U50AU'oQA0AlLoQAD-0A%>oQAp0AlLoQAp0AlL oQAd0AlLoQAH0AlLoQA0AlLnQA 0AlLnQA 0AlLnQApx 0AlL@nQA 0AlLnQA 0AlL@nQA@ 0AlLnQA@ 0AlLnQAw 0AlLnQA] 0AlLnQA@ Q 0A( nQAp> 0AlL@nQA 0AlL`nQA 0AlL nQA 0AlL nQAp 0AlLnQAZ 0AlLnQA 0AlLnQAp 0AlL@nQAȎl 0A%>nQA 0AlLnQAl 0AlLvnQA? 0AlLmnQA 0AlL`nQAp 0AlLUnQA@ 0AlLGnQA0 0AlL0AlLPlQA0AlLlQA0AlLlQAfo0A\cH0lQA@0AlLlQA]0AtlQA@0AlLlQAĨy;0AZB>lQAp(0AlLlQA0AlLlQA0AlL@lQA^0AlLlQA60AlL{lQA0AlL^lQA-0A QlQA@50AlL@JlQApK0AlL;lQA]0AlL/lQAp0AlLlQA@0AlL lQA0AlL lQA0AlL lQA]!0A3lQAp;0AlLlQAs0AlLlQA~0AlQAp0AlLlQA0AlLlQAp0AlLkQA0AlL kQA@0AlLkQA00AlLkQAp0AlL kQA0AlL`kQAY0AlL`kQA0AlLkQA0AlLkQA0AlLkQA0AlL@kQAs\0AB7kQA0AlL`kQA00AlL~kQAp0AlLvkQA@ 0AlLskQAp,0AlL`pkQAp\0AlL@jkQA@0AlL`ekQA00AlL ^kQA0AlLZkQA0AlLNkQA@x=0AwIkQA0AlL@DkQA@0AlL ;kQATY0Ad9kQA/O0A(㐗6kQA0AlL2kQA0AlL`(kQA@0AlL`kQA0AlLkQA0AlLkQA0AlLjQA@0AlLjQA,[w0AD?jQA0AlLjQA0AlL jQA@0AlLjQA$&0A]LjQAԻj0A&BjQAN9g0A逢jQA<90Aԅ"jQA)0AԅBjQAi0AajQAt0AFFbjQA9Q0AJjQA20AjQAtɩ0AԅjQA2y0AjQAnW0A&jQAR)*0AnwjQAn0AJjQAĨ0AFFbjQAhn0A&jQAi60AnwjQA􍎩0AjQA 70AԅBjQAh)0A&jQA<O0AJjQA;g&0A$jQAz0A0jQA`y0AkQAwF0AJbkQAL?l0A$kQAWtP0A kQA;g9#0A%kQAdKr/A$'kQA_B/Anw-kQA{B8/AJ"2kQA$r/AJb8kQAdKr8/AaB@kQADB /AJKkQAHXr/AbTkQAHXE/AJTkQAp2A/AaUkQA`I>r/AԅBSkQA`I>r#/AaNkQA`I>/AԅPkQA(qn/AUkQA r/AԅB[kQAp2a/AFF\kQAm//AakQAVAT/AnwBjkQAHq/AnwokQAq/AFFBnkQAXrA)/AJbhkQAx;A/A0bkQAȍA}/Anw_kQAЖ1g/AJ`kQAHlq /AbdkQA XA/AFFkkQA0Ɇ /Aآ}BokQAh[Rq7/A$BukQA)@/Aj{{kQAhdp/AakQAq/A$kQAX{$aD/A"kQAП@/A•kQA)@q/AԅbkQAHp/AakQAPp/Aآ}bkQAh`/Aآ}"kQApc/Aa"kQAxM@/AFFkQAsp/AnwkQA`@n/AFFBkQAxM`(/Aآ}"kQA2`/AJkQA1p/A"kQAШE@/Aآ}kQA`8@f/Aآ}bkQA;@/A$BkQAШE`P/AԅkQAp/AFFbkQA?\/A$BkQAq+`/AԅBkQA(?/A适kQA?/AlQA(?x/AnwlQA_/A$ lQAdmB/AnwlQAz?/A0"lQAhL_2/AlQAD?/AnwlQA(?/AJblQAغY?/A0lQAM%?/AlQAP^p/A0blQAmn/A!lQAo/Aآ}%lQAXo/A0"-lQAV^/Anw0lQAxo/A$B5lQAvn+/A"?lQAP>/AԅGlQAn/AnwNlQA>=/AnwVlQA:>/A$_lQAV>/A[zelQAq>z/A[zklQA@nD/Aj{rlQAv9/AvlQA@Mn5/A~lQA@Mn./Aj{blQAv$/AFFblQAPz^(/Aآ}lQAPz^(/A[z¤lQA`Ȩn"/AԅBlQA:>/Aj{³lQA^/AFFºlQAV>/AJ"lQAV^/AԅblQAPz^/Aآ}BlQAȦy/A&'ulQAzF>/Aԅ"lQA?nY/AFFlQAm>/AnwlQA0^n/AnwBlQAPz^/A[zlQA(Hm,/A$lQA n/Aآ}BlQA nU/AlQA=/A0BlQAmu/AlQA]/AlQAH/AԅlQA81=e/AlQA=!/AlQAHm/AlQAh]/A0lQAHI/AFFlQA=/Anw¾lQAH/Aj{lQA81=/AnwlQA5nmO/A0"lQAl/AԅlQAHaml/AlQA qM=/A[zlQAHaͺ/AxlQA0Zmc/A[zBlQAZ=/AԅblQAHa/A逢lQA8:3=:/AԅBlQA8:3=/Aآ}"lQAle/A[z~lQA,m/Ax~lQA/A[z}lQA`@/A"@X~lQA> "/A<Z~lQAh/A0~lQAH#/Aآ}}lQA>*/A[z|lQA\/Anw}lQAhlI/A0"}lQAhl/Aj{{lQAP,ul/AԅB{lQAhl+/A$ylQAxՈZ/A$lQAkC/A0BlQAT$/A0"lQABN(/A[zlQATk3/Aj{lQABN[>/Aآ}"lQAyhtQA/AlL4tQA/AlL.tQA8/AlL$tQA/AlLtQA/AlL@tQAL/AlLtQA/AlLtQA/AlL`tQA./AlL@#tQAj/AlL'tQA/AlL)tQA/AlL@(tQA(/AlL#tQAz/AlL`'tQA/AlL1tQA/AlL=tQA/AlLHtQA/AlL StQA/AlL[tQAB/AlLdtQA/AlLotQA/AlL utQA /AlLutQAH/AlLwtQA/AlLutQAA/AlL`ntQA/AlLitQA/AlLjtQA7/AlL`utQAx/AlL{tQA/AlLtQA/AlLtQA/AlLtQA/AlLtQA/AlLtQA/AlLtQA/AlLtQA/AlLtQA@/AlLtQAr/AlLtQA/AlL@tQA/AlLtQA4/AlLtQA/AlLtQA/AlLtQA/AlLtQA$/AlL@tQAx/AlL`tQA/AlLtQA /AlLutQA HB0AlLmQAig0AlL`QAFf0AlL pQAf0AlL\QAf0AlL`RQAf0AlLDQAf0AlL9QAf0AlL@+QA@f0AlLQAf0AlL@ QAf0AlL`QArf0AlLQA@Uf0AlLQA@>f0AlL@QAPf0AlL@QA+f0AlLQA@f0AlLQA@e0AlL QA@e0AlLQAe0AlL@QA@e0AlLQAe0AlL@QA@ze0AlLQA@:e0AlLQA@Te0AlL@QAke0AlLQA@e0AlLQAe0AlL QAe0AlL QAe0AlLQAe0AlL`QAe0AlL QAe0AlLQAe0AlL QA@e0AlLQA{e0AlL`QA]e0AlL`QA.e0AlLQAd0AlL@QA@d0AlL@QA@d0AlLQAd0AlLQA@d0AlL QAd0AlL@QAd0AlLQALd0AlLQATd0AlLvQAid0AlL@kQA@jd0AlLaQA@Pd0AlL^QAPd0AlLVQAdd0AlL@RQA@d0AlLIQA@d0AlLBQAd0AlL6QAwd0AlLQA]d0AlLQA@Ad0AlL@ QA@.d0AlLQA@d0AlLQA@d0AlLQA@c0AlLQAc0AlL@QARc0AlL@QA3c0AlL@QAc0AlLQA@c0AlL QA@ c0AlL`QAc0AlL QA#c0AlL@QAc0AlL`QAb0AlLQAb0AlLQAb0AlLQA@b0AlL`QA@b0AlL`QA`b0AlL`QA@Gb0AlL@QAb0AlLQAb0AlLQA9b0AlLQA@Sb0AlL QAmb0AlL@QA@}b0AlL@QAb0AlLQAb0AlLQAb0AlL|QAb0AlLyQAb0AlLqQAb0AlL`kQA@b0AlLcQA@c0AlL`\QAc0AlL SQA@c0AlL MQAc0AlLEQAb0AlL=QAb0AlLQAEb0AlL?QA#b0AlL@BQAb0AlLFQAa0AlLGQAa0AlLJQA@a0AlL`KQA{a0AlL`NQAYa0AlLQQA@ a0AlLVQA`0AlLfQA`0AlL@eQAT`0AlLbQA@/`0AlL`QA@_0AlL_QA_0AlL]QAV_0AlL ZQA1_0AlL@VQA@_0AlLOQA_0AlLIQA_0AlLBQA^0AlL;QA@^0AlL 8QA^0AlL:QA^0AlL ;QAH^0AlL=QA^0AlLQA@WC0AlL`JQAFC0AlLPQA8C0AlLWQA0C0AlL`]QA@$C0AlL fQA@C0AlL`pQA C0AlLyQA@B0AlL`QAB0AlL`QAB0AlLQA@3C0AlLQAC0AlLQAD0AlLQAiD0AlLQAD0AlL0QAD0AlLQAE0AlLPQA@6E0AlL0QA]E0AlLQA@E0AlLQAE0AlLQAF0AlLQAlF0AlLQA]G0AlLQA@G0AlLpQAG0AlLQAH0AlL0QAI0AlLQA1I0AlLQA`I0AlLQAmI0AlL@QAI0AlL`QAI0AlLQA@I0AlL@QA@ J0AlLQA&J0AlL@ QA@JJ0AUe QApJ0AlLQAJ0AlLQAJ0AlL@QAJ0AlL QAJ0AlLQAJ0AlLQAK0AlL@QA-K0AlLQA@K0AlL`"QA@K0AlL%QAL0AlL&QAvL0AlL *QA@L0AlL-QA@L0AlL@.QAL0AlL/QAM0AlL2QAQM0AlL4QAtM0AlL 7QAM0AlLQAvN0AlL ?QA@N0AlL`AQAN0AlLBQAO0AlL@EQA;O0AlLGQAgO0AlLHQAO0AlL KQAO0AlLMQAP0AlLPQA.P0AlL@RQATP0AlL TQAmP0AlLUQAP0AlLWQA@P0AlL`YQAP0AlL`ZQAP0AlL[QAQ0AlL_QA Q0AlL@aQA@/Q0AlLbQAXQ0AlLdQA@sQ0AlLgQAQ0AlLhQA@Q0AlLiQA@Q0AlL@kQAQ0AlLoQAR0AlLoQA@'R0AlL@pQA@R0AlLrQATR0AlLuQA@|R0AlLwQAR0AlLzQAR0AlL`}QAR0AlLQA'S0AlLQA=S0AlLQA^S0AlL@QAS0AlLQAS0AlL`QAS0AlL QA@S0AlLQA T0AlL QA(T0AlL QAOT0AlLQAnT0AlLQA@T0AlLQAT0AlLQAT0AlLQAU0AlL QA@(U0AlLQADU0AlLQA[U0AlL@QAjU0AlLQAzU0AlLQAU0AlLQA@U0AlL QA@U0AlL`QAU0AlLQA@U0AlL`QAU0AlL`QAU0AlLQAU0AlLQAU0AlLQAU0AlLQAU0AlL QAU0AlLQAU0AlL`QAU0AlL`QAU0AlLQA U0AlL`QAVU0AlL QAU0AlLXQAU0AlLQAV0AlLQA V0AlLQAV0AlL@QA`V0AlLQA!V0AlLQA(V0AlLQA@1V0AlLQA5V0AlLQA;V0AlLQA@V0AlLhQAGV0AlLPQA0LV0AlLPQAPV0AlL QA@XV0AlL QA`V0AlL QA5UiV0A悫*QAPtV0AlLQA`~V0AlLQApV0AlLHQAV0A悫QAV0AlLQAV0AlLpQAV0AlLQA@V0AlLQAV0AlLPQAV0AlLQAV0AlLQA V0AlLQAV0AlLQA0V0AlL(QAV0AlL@QAV0AlL`QAV0AlL0QAV0AlL@QAW0AlLQA W0AlL@QAW0AlLQA"W0AlL@QA1W0AlLQA;W0AlLQAJW0AlLQA@UW0AlLQAbW0AlLQAfW0AlLxQAhW0AlL QAoW0AlLQAtW0AlLpQA|W0AlLQA@W0AlLQA`W0AlLQAW0AlLQAW0AlLQAW0AlLQA@W0AlLQAW0AlL QA W0AlLQA`W0AlLQAW0AlLQA@W0AlL`QAW0AlLQAW0AlLQAW0AlL0QA@W0AlLQAW0AlL QAW0AlLQAW0AlL QAW0AlLQAW0AlLQAX0AlLQA@ X0AlLQAX0AlLQA"X0AlLQA+X0AlL`QA@4X0AlLQA;X0AlLQA@BX0AlLQANX0AlL`QAXX0AlL QA^X0AlLQAmX0AlLQAuX0AlLQAX0AlL QAX0AlLQAX0AlLQAX0AlL QAX0AlLQAX0AlL QAX0AlLQA@X0AlLQA@X0AlLQAX0AlL`QA@X0AlL QA@X0AlLQA@X0AlLQA0Y0AlLPQAY0AlLQA@ Y0AlLQAY0AlL QAY0AlL QAY0AlL QA@ Y0AlL`QA@+Y0AlL QAY0AlLQAX0AlL QA@X0AlLQAX0AlLQA@X0AlLQAX0AlLQA@X0AlL QA@X0AlL QAY0AlLQAY0AlLQAY0AlL QA.Y0AlLQA;Y0AlL QAEY0AlLQAMY0AlL0QA@\Y0AlL`QA@Y0AlLQAZ0AlLQAs[0AlLQAe]0AlL@QA]0AlLp QA]0AlL QA^0AlL QA^0AlLQA`0AlLQA.AlL :QAo.AlL7QA.AlL?QA.AlL`JQA.AlLQQA.AlLZQA.AlL_QAo.AlLZQAM.AlLQQA^.AlLHQAz.AlL`6QA.AlL "QA@B.AlLQAg.AlL υQA.AlLQA.AlLQA.AlL jQA.AlL@ZQAD.AlLEQAc.AlL&QA.AlLQA.AlLQA.AlL@؄QA.AlL@QA .AlL QA).AlL@QA@.AlLQAV.AlL@}QA|.AlLlQA.AlL`aQA.AlLVQA.AlLMQA.AlL`DQA.AlL?QA.AlL@@QA+.AlL`HQA.AlLRQAl.AlL_QA3.AlL jQA.AlL wQA.AlL QAA.AlL@QA.AlLQA.AlL QA.AlLQAZ.AlLĄQAK.AlL@ńQA!.AlLƄQA.AlLńQA.AlLÄQA9.AlLQA.AlLQA.AlL`QA@O.AFh|UQAκ.AXQA8b.A8QADy:.AƎ>QAeR.AG;QA_b.AE`QAXib.AƎ>ńQAMb.AA ɄQADg.A|9 ̈́QA7b.A8τQAQ.AX<τQAu.AƎ>΄QA.A24 τQA.AA@ЄQAa.AX< ӄQAȍS.A42@ӄQAVa.AG;ՄQAyQ.A8 քQAȍ.AA`ׄQAf.A8ׄQAȍaS.A24@քQAȍ.AyCԄQA9 .A,ӄQAK.A42@ ҄QAXra.AƎ>QA@>..AAQA0Q.A42@QAyQ.A24 QA"h .A.)QAX{$.AX@QAFO[.A3QAغY.A]6QA1.AƎ>`QA? .A3QAmW.A]6QA=<'.ALo%ƅQA~.A3`΅QA^.A42@ څQAN.AX<ޅQAh^+.AƎ>QA^.AƎ>@QA^.A3@QAx3.A42@QA ^v.A֙jQAxNO.A]6 QA(?g;.A8QAZt-.A3 QAZt.A24 'QA~.A8/QAp`~*.A24@6QAzF~.A8`;QAZ.AAQAPz~.A3@GQAv.AVs1KQA#Z`.A42@ RQAvA.A24`UQA_9~.A8`[QAx.AVs1cQAPz^.AG;mQAZt.A8xQAS~.A|9QA8(~.A|9QAxy.A8`QA@Mo.A]6`QA_9~e.AX<@QAzF^:.AVs1QA?.A]6ɆQA_9~.A8φQAPzޚ.A]6نQAP~v.A8QA(?gC.AG;QA_9^.AX<`QA_9~.A42@QAC,^.A24@QA%q.A3@QAc].AƎ>` QA#ZK.AVs1,QAzF~A.A42@ :QA ~'.AƎ>`HQA ~.A42@ ZQA_9.AX<@jQAc.AƎ>vQA_9~,.AƎ>QAPK.A]6QAS~.A8QA_9~.AG;QA(?g.A8`QAZtm.A]6`QA1.A3!QAHi .ALXa&QAC,~.AX<(QA`@Ҷ.A'0QA(H ¾.AX@QA .A]6QA }.AX<` QA D.A8QA}.AG;5QApt}ڻ.A42@fQA,.AA`QApt].AXQAP ~.A[zDQAK.A wbHQA`-\.AquBJQAXع.ALQAu.A JVQA8(~>.AgQAxܬ.A*r"uQAPz.A~`?†QAhI6.A~`?QAhZ.Ax¤QAP> .ARjQA@>a;.A]QA .ALQALC.Aj{ŠQA?N.A5I.ˊQA_.AΊQA(u{V.Ay!؊QA`I>2.A+QA<.AxQAuM".AFFbQA&=W.ADsQA++c.AVQAܮ.A适 QA.AxQAuM.A[z"QA\).A(R.QA<6.A w"2QAU@=2.A[z"9QALP.AquDQAX=.A wOQA8:3=.Aآ}TQAM>.A w_QA,͒.Aj{jQA .A|QAhx.AQA(Q{M.AFFQA`ڼ5.A wBQAh=.A$QAD.A[zQA.Ax%QA=.A[zB(QA<.A$0QA_9޲.A$8QAS>.A[z.A[z"1QAC,>.AFFB5QAp`>x.A@QAzF>.AquHQA(?gN.A[zRQAV>.Aآ}\QA|qV.AWeQA:>.Aآ}"oQAZtNW.A逢qQAoٽ.AsnQA6.AqubqQAq>.Aqu"sQA.AXxQAI.AlLrQA.AlLmQA.AlLhQAh.AlLbQA.AlL``QA.AlL@YQA!.AlLPQA.AlLMQAH.AlL`IQA.AlLOQA.AlL0SQA.AlLTQA.AlLZQA.AlL ^QAE.AlLbQA.AlLdQA.AlLgQA7.AlL@lQA|.AlL rQA.AlLwQA.AlLyQA,.AlL@QAe.AlL@QA.AlLzQA.AlLwQA[.AlLxQA.AlL|QAP.AlLQA.AlL@QA.AlL@QAf.AlLQA.AlLQA8.AlLૌQA.AlLQA.AlL QA_.AlLQA.AlL`QA#.AlL`QA.AlLQAP.AlL`QA.AlLௌQA.AlLೌQAJ.AlLQA.AlLŒQAl.AlLԌQA.AlL ܌QA.AlL`QA<.AlLQAO.AlLQA\.AlLQA.AlL@QA%.AlLQA.AlL@%QA(.AlL6QAh.AlLEQA.AlLOQA.AlLTQAs.AlLfQA.AlL`{QA..AlLQAf.AlLQA.AlL@QA.AlLQA.AlLQA .AlLQA_.AlL@ƍQA.AlLQA_.AlLQA@.AlL`QA5.AlLQA).AlL QA2.AlLQA:.AlLiQA;.AlL`[QA1.AlLMQA2.AlL9QAP.AlL$QAs.AlL QA.AlL@QA.AlLQA.AlL`܌QA.AlL`QA"4(@0AlLQA@\0AlL ;QA1@eA0AlL ;QAA0AlL9QA@A0AlL:QAA0AlL8QAA0AlL5QA@ B0AlL1QA@0B0AlL.QAVB0AlL*QAvB0AlL'QAB0AlL'QA@B0AlLQAB0AlLQA@B0AlLQAC0AlLQA-C0AlL QA@FC0AlLQAZC0AlLQA@aC0AlLQAxC0AlLQAC0AlL`QA@C0AlLQAC0AlLQA@C0AlLQAD0AlL`ٸQAD0AlL`иQA@lD0AlLQA@D0AlL QAD0AlLQAD0AlLQA[E0AlLQAE0AlLQAE0AlLQA F0AlL@QA@JF0AlLQAtF0AlLࢸQAF0AlL@QAF0AlLQAF0AlL QAF0AlL|QAF0AlLrQA#G0AlL`dQA*G0AlL ZQA2G0AlLRQA8G0AlLJQA@DG0AlL ?QAWG0AlL7QAxG0AlL2QAG0AlL-QA@G0AlL (QAG0AlL@QAG0AlLQA@H0AlL QA-H0AlL QAI0AlL`QA`I0AlL@vQAI0AlL`lQA@I0AlLaQA@I0AlL`QAI0AlL\QA@J0AlL`XQA%J0AlLIQA@uJ0AlL(QAJ0AlL`QA@J0AlLQAJ0AlL QAJ0AlL@QA@J0AlL`QAJ0AlLQAJ0AlLڵQAJ0AlL@ҵQAJ0AlL ͵QA.K0AlLQA@SK0AlL`QAK0AlLવQAK0AlL঵QA@K0AlLQAK0AlL@QAL0AlLQA@>L0AlL`QA`L0AlL QAL0AlL@QA@L0AlL`QAL0AlLQA@L0AlL |QA@M0AlLvQA$M0AlLmQA3M0AlL@eQAOM0AlL`YQA@lM0AlLSQA@M0AlLMQAM0AlLFQAM0AlL@\0AlL`QAj\0AlLQA\0AlLQAб\0AlLQA@\0AlL`۱QA@\0AlLбQA\0AlL@QAi\0AlLQAJ\0AlLQA<\0AlL QA@.\0AlLQA(\0AlLQA\0AlLQA@[0AlL@QA@[0AlLQA[0AlL wQA[0AlLoQA[0AlLhQA[0AlL@aQA[0AlLXQA[0AlLQQA@[0AlLNQAy[0AlL JQA@R[0AlLMQA@1[0AlLLQA@Z0AlLKQAZ0AlLGQAZ0AlL`8QA{Z0AlL.QA@ZZ0AlL`$QA9Z0AlLQAZ0AlL@QA@Y0AlLQA@Y0AlLQAY0AlLQAyY0AlLQA\Y0AlL@ QA@DY0AlLQAY0AlL@&QA@X0AlL@-QA@X0AlL2QAIX0AlL8QA@X0AlLDQAW0AlL@LQAHW0AlLXQAV0AlLaQA@V0AlLlQA@V0AlL ZQAV0AlLLQAV0AlLCQAV0AlL=QAV0AlLQA!W0AlL@QA>W0AlL`>QA@sW0AlL:QAW0AlL`1QA@W0AlL@-QA@W0AlL)QAW0AlL&QAW0AlL!QAW0AlL@QAW0AlLQAW0AlL` QAoW0AlLQA@FW0AlLQA"W0AlLQA@V0AlL`QAV0AlLQA@V0AlL QAV0AlL QA\V0AlL %QA@IV0AlL/QAFV0AlL8QADV0AlL?QA@V0AlL HQA@(V0AlL IQA V0AlLEQAU0AlL>QAV0AlL7QAV0AlL0QAV0AlL'QAU0AlL%QAU0AlL$QA@U0AlL!QAuU0AlLQAU0AlLQAU0AlLQAU0AlLQAU0AlL@QA@U0AlLQAU0AlLQA@U0AlLQAU0AlLQAU0AlL@QAU0AlLQAjU0AlLQAIU0AlL QA)U0AlLQAiU0AlLQAU0AlL@QAU0AlLհQAOU0AlLܰQA@/U0AlL ްQAU0AlL߰QAT0AlL۰QAT0AlLҰQA@T0AlL@ŰQA@T0AlL@QAT0AlL`QA@0AlL`1QA@=0AlLQAh=0AlLQA<0AlLQA<0AlL ѤQA@=0AlL QAC;0AlLFQA@9;0AlL@EQA;0AlL?QA;0AlLPQAY10AlLQA@H10AlLQA+10AlLǞQA10AlLQA10AlLࠞQA10AlLQA10AlLQA 10AlLQA@$10AlLrQA@$10AlLPpQA$10AlLiQA@'10AlL`QA.10AlL`TQA:10AlLJQAG10AlL&0AlL!QA&0AlLQA%0AlL`QA"%0AlL4QA$0AlLp>QA$0AlL`AQA$0AlL@BQA$0AlLDQA#0AlLBQA@>#0AlLCQA#0AlLDQA"0AlL`BQA@}"0AlL8QAf"0AlL4QA@ "0AlL/QA!0AlL1QA!0AlL 9QA!0AlL`@QA!0AlL`IQA!0AlLTQA!0AlL[QA!0AlL fQA!0AlLkQA!0AlL`kQA]!0AlL mQA@!0AlLpQA 0AlL tQA~ 0AlLvQA@ 0AlL zQA50AlL@QA@0AlLQA0AlL`QAz0AlL QA60AlL@QA0AlL`QAm0AlL ÞQA0AlL ˞QA0AlL@QA0AlLQA@0AlLQAG0AlLQAA0AlLnQA0AlL`QA0AlLХQA0AlLQA@ 0AlL0QA0AlLQA*0AlL QA@0AlLPٞQA0AlLEQA0AlLPQA0AlLYQAB0AlLfQAm0AlLlQA@0AlLoQA0AlL pQA0AlLǟQA0AlL@QA0AlL@QA0AlL QA0AlLQA0AlLQA0AlLQA0AlL`XQA@0AlL@yQA@90AlLQA@0AlLୡQA0AlLšQA@=0AlLQA@ 0AlLBQA0AlLIQA<0AlL`QQAc0AlL_QA0AlL@hQA0AlL@rQA0AlL@QA0AlL@QA!0AlLQA@D0AlL QAZ0AlL`QA@s0AlLQA0AlL`̢QA@0AlLԢQA0AlLۢQA0AlLQA0AlLQA@*0AlL`QA0AlL@QA 0AlL`QA0AlLQA0AlL` QA@0AlL QA50AlLQA@Z0AlL@QA@y0AlL`QA0AlLQA0AlLQA0AlLQA@0AlL`QA0AlLQA0AlL@QA@0AlLڢQA@0AlL`ТQA@0AlLQA@<0AlL@QAn0AlLQA0AlL෢QA0AlL`QA0AlL QA]0AlLQA}0AlLQA@0AlLQA0AlL QA0AlLƢQA0AlL֢QA0AlLQA0AlL@QA@0AlLQA@0AlL` QA0AlL`QA0AlL(QA$0AlL`4QA.0AlL`=QAI0AlL ?QAk0AlL?QA0AlL@QA0AlL>QA0AlL8QA0AlL`/QA0AlL'QA60AlL@'QA\0AlL*QAp0AlL@$QA0AlL`#QA 0AlL`QAW 0AlLQAk 0AlLQAe 0AlL QA^ 0AlLQA_ 0AlL QAS 0AlLߢQAK 0AlLѢQAB 0AlLĢQA> 0AlL QA@5 0AlL@QAN 0AlL QAo 0AlLQA 0AlL`QA 0AlLढQA 0AlLQA!0AlLQA]!0AlLQA!0AlLQA!0AlLQA*"0AlLߢQAZ"0AlL QA@"0AlL@5QA"0AlLQQA"0AlL_QA@"0AlLeQA@#0AlL@cQA#0AlL^QA#0AlL@WQA@"0AlLPQA"0AlLIQA@"0AlLAQA"0AlLQA@#0AlL@@QA$0AlL@QA3$0AlL@QA^$0AlL`BQA@$0AlL DQA$0AlL EQA%0AlLDQA%0AlLCQA%0AlLEQA%0AlLDQA@0&0AlL?QAe&0AlL=QA&0AlL:QA&0AlL`7QA1'0AlL5QA@x'0AlL8QA'0AlL7QA'0AlL :QAR(0AlL;QA(0AlL0AlL[QA-0AlLaQA 0AlL`jQA0AlLpQA0AlL@zQA@0AlLQA0AlLQA0AlLQA0AlLQA@0AlL`QA0AlLQA?0AlLഩQA|0AlL QA@0AlL໩QA@0AlLQA0AlLQAi0AlLǩQA@0AlL@ϩQA0AlLשQAj0AlL۩QA0AlLکQA<0AlL שQAx0AlLԩQA0AlL`ȩQA@40AlL@QA0AlLQA@0AlLQA@ 0AlLQA0AlL`QA0AlL@QA@0AlL`xQA@' 0AlL rQAd 0AlLmQA 0AlLdQA!0AlL_QA!0AlLWQA!0AlLSQAP"0AlLQQA"0AlL`OQA"0AlL KQAF#0AlLHQA#0AlLMQA2$0AlLWQA@U$0AlL@iQAq$0AlL@vQA$0AlL@QA@$0AlLQA$0AlLQA$0AlLQA@$0AlLྩQA@%0AlLQA@%0AlL`QA@%0AlLQA/&0AlLĩQAg&0AlLũQA@&0AlLũQA&0AlLQA@&0AlLQA1'0AlLéQAR'0AlL ˩QAm'0AlL`֩QA'0AlLQA'0AlLQA@'0AlLQA'0AlL@QA@'0AlL QA'0AlLQA'0AlL /QA@'0AlL`?QA'0AlLNQA'0AlLdQA'0AlL`wQA'0AlLQA'0AlLQA'0AlLQA@'0AlLQA'0AlLɪQA'0AlLتQA'0AlL QA'0AlLQA@'0AlLQA'0AlLQA'0AlL`!QA@'0AlL5QA@'0AlLCQA'0AlLWQA'0AlL@jQA(0AlLQA@(0AlLQAI&0AlL`QA%0AlLQA%0AlL@QA$0AlLQA@B$0AlLQA#0AlLQA#0AlLQA+#0AlLQA"0AlL}QAM"0AlL@yQA!0AlLwQA@!0AlL uQAA!0AlL@sQA 0AlLpQA 0AlL@pQA@C 0AlLnQAU 0AlL{QAi 0AlL@QA 0AlLQA 0AlL@̫QA@ 0AlL@QA@!0AlL`QA0!0AlL,QA5!0AlLHQA !0AlL bQA!0AlLxQA 0AlLQA 0AlLŬQA 0AlL`QA 0AlLQA@y 0AlL?QA@ 0AlLQA0AlL߭QA0AlL QA0AlL1QA0AlL3QA0AlL`4QA@0AlL`=QA0AlLEQAg0AlLLQA*0AlLRQA@-0AlL _QA@30AlLfQA30AlL mQA40AlL wQA@0AlL QA0AlL QA0AlL QA0AlLQA@0AlLQA0AlLQA0AlL@QA0AlL@QA0AlL࿮QA0AlL ˮQA0AlLѮQA0AlL`ծQA@0AlLծQA0AlL׮QA`0AlL ݮQAN0AlLQA@@0AlLQA40AlLQAU0AlL QAj0AlLQAs0AlL QA@0AlLQA0AlLQA@0AlLQA0AlL%QA0AlL,QA@0AlL2QA0AlLCQA@0AlL HQA0AlL`PQA0AlLXQA0AlL^QA0AlLiQA@0AlLlQA@0AlLrQA0AlLQA0AlLQA@0AlLQA@0AlL QA@0AlL`QAq0AlLQAj0AlL@QAs0AlLQAu0AlL QA@m0AlL@¯QA@R0AlLůQAC0AlL ϯQA50AlLկQA'0AlLܯQA0AlLQA@0AlL QA0AlLQA0AlL@QA@0AlL@QA0AlL QA@0AlLQA@0AlL`QA0AlL QA@0AlL0'QA@0AlL@)QA@r0AlL`7QAi0AlL@AQA@L0AlLHQA.0AlL`NQA 0AlLVQA0AlL^QA@0AlL gQA0AlL@pQA0AlL {QA0AlLQA@0AlLQA@ 0AlL QA0AlL̰QA0AlLذQA@0AlLQA 0AlLQA0AlLQA0AlL@QA0AlLQA0AlL QA@0AlLQAg0AlL`QA0AlLGQA@0AlL`RQA0AlL[QA@0AlL dQA0AlLoQA0AlLwQA@0AlL`QA0AlLQA@0AlLQA0AlLQA0AlL`QA@0AlLQA0AlLQAo0AlL QA`0AlL ͱQAM0AlL ٱQA>0AlLQA!0AlL@QA@ 0AlL`QA@0AlLQA@0AlL QA0AlL@PQA0AlL`ZQA@0AlL`fQA0AlLrQA0AlL}QA0AlLQA@0AlL QA0AlLQA0AlLQAx0AlL ƲQA0AlLԲQA@0AlL ޲QA`0AlLQA0AlLQAA0AlL QAl0AlLQA0AlL(QA0AlL1QA0AlL@:QA0AlLDQA0AlLOQA0AlL[QA0AlLiQA0AlLyQA0AlL QA@0AlLQAl0AlLࢳQAG0AlLQA@"0AlLQA0AlL`QA@0AlL+QA@:0AlL_QA 0AlLlQA0AlLQA@0AlL QA0AlL´QA@0AlL QAV0AlLQA 0AlLQA#0AlLQA)'0AlLQA@+0AlL`dQA',0AlL`qQAA,0AlLxQA@],0AlL QA@z,0AlL QA@,0AlL QA@,0AlLQA,0AlLQA*-0AlL QAQ-0AlLQAu-0AlLQA@-0AlLQA@-0AlLQA-0AlLQA@-0AlL·QA'.0AlLǷQA@?.0AlL@˷QAs.0AlL`ԷQAu/0AlLQA/0AlLQA@/0AlLQA 00AlL`QA600AlLQA]00AlL QA00AlLQA@00AlL@QA00AlL$QA00AlL@+QA10AlL1QAA10AlL@:QA@W10AlL@AQA10AlL@FQA@10AlL MQA10AlLTQA20AlL]QA@^20AlLcQA20AlLjQA20AlL`nQA30AlLsQA30AlL@QA30AlLQA}40AlLQA40AlL`QA40AlL`¸QA50AlL@̸QA@50AlL`ԸQAX50AlL`߸QA@50AlL`QA50AlLQA@50AlL@QA@ 60AlL QA@&60AlL QA]60AlLQA60AlL QA60AlL@QA60AlLQA@G70AlLQA@70AlL QA70AlLQA70AlLQA280AlL`QAk80AlL`QA@80AlLQA80AlLQA80AlL QA90AlL QA90AlL QA90AlLQA@90AlLQA:0AlLQA.:0AlL@QAj:0AlL`QA:0AlLQA@p;0AlL` QA;0AlL"QA@;0AlLQA;0AlL@QA@;0AlL`QA<0AlL"QA><0AlL@#QA`<0AlL$QA<0AlL*QA<0AlL .QA<0AlL@2QA@<0AlL4QA =0AlL6QA.=0AlL6QA@S=0AlL 6QAt=0AlL4QA@=0AlL`0QA=0AlL+QA=0AlL'QA=0AlL`#QA>0AlLQA >0AlL QAL>0AlL QA_>0AlL@!QAs>0AlL %QA>0AlL)QA>0AlL+QA>0AlL@%QA?0AlL@QA@0AlL#QA>@0AlL@ QAa@0AlL QAy@0AlLQA@0AlLQA@0AlL` QA@0AlL$QA A0AlL,QA'A0AlL@2QAOA0AlL8QAeA0AlL ;QA 0AlLQA@[!0AlLQAd!0AlLQAl!0AlL@̡QAi!0AlLסQA"0AlL@١QA@"0AlL¡QA@"0AlLQA@3"0AlL~QA?"0AlLaQA@S"0AlLIQAa"0AlL)QAb"0AlL QAa"0AlLQA`"0AlLQAf"0AlL QAq"0AlLQA@y"0AlLڠQA@"0AlL QA"0AlLQA#0AlL`QA!%0AlL@QA`(%0AlLPQA@%0AlL+QAO'0AlLgQA@^'0AlLiQAl'0AlLkQA@@(0AlL`QA/(0AlL@QA@s'0AlLϡQA&0AlL`QA&0AlLơQAb&0AlL@ʡQA@&0AlL ϡQA@%0AlL@סQA%0AlL@ܡQA@w%0AlL@QAd%0AlLQA>%0AlLQA@)%0AlL QA %0AlLQA$0AlL 'QA$0AlL4QA@$0AlL>QA$0AlL`MQA$0AlLhQA$0AlLyQA$0AlL`QA@2$0AlL`|QA#0AlLzQA#0AlLwQA*#0AlLvQA@"0AlL{QA"0AlL`}QA}"0AlL`QA!0AlLQA!0AlL@QA@!0AlL`QAV!0AlLMQA@/!0AlL@1QA@ 0AlL@QA0AlL@QA@0AlL QA0AlLQA0AlLǡQA 0AlL QAC 0AlLQA 0AlLQA@xU0AlLsQA@jU0AlLwQA@WU0AlL@zQA?U0AlL|QA,U0AlL{QAU0AlLyQAT0AlL@qQAT0AlL dQAT0AlL@ZQAT0AlLUQA@.U0AlLRQAZU0AlL@QQAU0AlLRQAU0AlLSQAU0AlL]QAU0AlLdQAU0AlL iQAU0AlLnQA@xU0AlLsQAU0AlL`QAU0AlL|QAU0AlLvQAU0AlL@uQA#V0AlLvQA@W0AlL@bQA6W0AlLkQA:W0AlL@pQA>W0AlL tQAMW0AlL@}QA@]W0AlLQAmW0AlL`QA}W0AlL@QA@W0AlLQAW0AlL`QAW0AlL`QAW0AlL`QAW0AlL QA X0AlLİQAW0AlL̰QAW0AlLӰQAW0AlLװQAyW0AlL QAW0AlL`QAW0AlLQAW0AlL@QAX0AlLQA7X0AlLQAVX0AlL QAkX0AlL QAX0AlLQA@X0AlLQAX0AlLQAX0AlLQAX0AlL`QAX0AlL`QAX0AlL QAX0AlLذQA@X0AlLͰQAX0AlL@QAqX0AlL QAiX0AlLQAbX0AlLЧQA]X0AlLQAUX0AlLQAKX0AlLQABX0AlL@QA:X0AlL zQA4X0AlLrQA/X0AlLkQA'X0AlLdQA#X0AlL`QAX0AlLXQAX0AlLOQA X0AlLHQAX0AlL@QAW0AlL8QA#C /AlLRQA@(D0AlLQAoWH_"0AlLQA=0AlLQAm0AlLQA0AlL@QA0AlLQA0AlL@QA0AlL QA 0AlLQA2 0AlL`QAI 0AlLQA@y 0AlL`QA@ 0AlL}QA@ 0AlLzQA@ !0AlL@kQA@D!0AlLbQA!0AlL@SQA@!0AlL`KQA"0AlL@AQA4"0AlL`8QAQ"0AlL 3QA@"0AlL+QA@"0AlL(QA"0AlL@(QA#0AlL(QA8#0AlL)QA@e#0AlL-QA@#0AlL5QA@#0AlL`:QA$0AlL=QA4$0AlL;QA$0AlL8QA$0AlL6QA$0AlL6QAe%0AlL@/QA@%0AlL+QA%0AlL !QA&0AlL`QA:&0AlL QA@g&0AlL QA&0AlLQA&0AlLQA&0AlLQA*'0AlLQA@s'0AlL@QA(0AlL@ӻQAY(0AlLͻQA(0AlL̻QA@(0AlLȻQA@4)0AlL`ƻQAc)0AlLĻQA)0AlL»QA)0AlL@QA@y*0AlLQA@l+0AlLQA,0AlL{QA@!-0AlL qQA@H-0AlLkQA@|-0AlL eQA-0AlLaQAO.0AlLVQA}.0AlLPQA.0AlL`IQAw/0AlL 8QA00AlL@)QAG00AlL`$QA@00AlLQA@00AlL@QA00AlL`QA@00AlLQA"10AlL`QA\10AlL`QA10AlLQA10AlLQA20AlL@QA@720AlL`QAy20AlLQA@20AlLQA@20AlLQA20AlL@QA20AlLQA;30AlLQAx30AlL`ںQA@30AlLغQA.40AlLʺQA{40AlL@QA40AlL෺QA@40AlL@QA50AlLQA;50AlLQAt50AlL@QA50AlL@QA50AlL`QA50AlLQA@ 60AlL`QA460AlL@QA60AlLQA70AlLQA@970AlLQA70AlL}QA70AlL@xQA70AlLqQA 80AlLkQA;80AlL`eQA@v80AlL`QA80AlL \QA@80AlLTQA@80AlLPQA@80AlL@JQA90AlLEQA@90AlL@AQA;90AlL :QAd90AlL@5QA90AlL3QA90AlL/QA:0AlL +QA::0AlL`!QA@P:0AlLQAm:0AlLQA@:0AlL QA@:0AlL QA@:0AlLQA;0AlLQA5;0AlL@QAP;0AlLQA@i;0AlL`QA;0AlL@QA;0AlL޹QA<0AlL׹QA[<0AlL йQA<0AlLʹQA<0AlL@ĹQAX=0AlLQA=0AlLQA=0AlLູQA=0AlLQA >0AlL QA@*>0AlL`QA@@>0AlL@QA`>0AlLQAr>0AlL`QA>0AlL`QA>0AlL@QA>0AlL`QA>0AlL@QA"?0AlLQA>?0AlLQA@b?0AlL`QA?0AlLQA?0AlLQAe@0AlLQA@0AlL QAA0AlL~QA9A0AlLzQAoA0AlLvQAA0AlL`wQAA0AlL@xQA@A0AlL{QA@+B0AlLQA@gB0AlLQAB0AlL`QAC0AlL@QA@5C0AlL`QA\C0AlLQAC0AlL QAC0AlLQA@C0AlLQA@C0AlLQAC0AlLQAC0AlLQA@(D0AlLƹQA#D0AlL༹QAD0AlLQAD0AlLQAD0AlL`QAD0AlLQA!D0AlLQA#D0AlL`QAD0AlLQAC0AlL@zQAC0AlLvQAC0AlLtQAsC0AlLqQA\C0AlL jQA@NC0AlLcQA5C0AlL`]QAC0AlLZQA@B0AlLVQAB0AlLQQAB0AlLOQAB0AlLDQAB0AlL@0AlL@ QA@0AlL#QA?0AlL@QA>0AlL@%QA>0AlL+QA>0AlL)QAs>0AlL %QA_>0AlL@!QAL>0AlL QA >0AlL QA>0AlLQA=0AlL`#QA=0AlL'QA=0AlL+QA@=0AlL`0QAt=0AlL4QA@S=0AlL 6QA.=0AlL6QA =0AlL6QA@<0AlL4QA<0AlL@2QA<0AlL .QA<0AlL*QA`<0AlL$QA><0AlL@#QA<0AlL"QA@;0AlL`QA;0AlL@QA@;0AlLQA;0AlL"QA@p;0AlL` QA:0AlLQAj:0AlL`QA.:0AlL@QA:0AlLQA@90AlLQA90AlLQA90AlL QA90AlL QA80AlL QA80AlLQA@80AlLQAk80AlL`QA280AlL`QA70AlLQA70AlLQA@70AlL QA@G70AlLQA60AlLQA60AlL@QA60AlL QA]60AlLQA@&60AlL QA@ 60AlL QA@50AlL@QA50AlLQA@50AlL`QAX50AlL`߸QA@50AlL`ԸQA50AlL@̸QA40AlL`¸QA40AlL`QA}40AlLQA30AlLQA30AlL@QA30AlLsQA20AlL`nQA20AlLjQA@^20AlLcQA20AlL]QA10AlLTQA@10AlL MQA10AlL@FQA@W10AlL@AQAA10AlL@:QA10AlL1QA00AlL@+QA00AlL$QA@00AlL@QA00AlLQA]00AlL QA600AlLQA 00AlL`QA@/0AlLQA/0AlLQAu/0AlLQAs.0AlL`ԷQA@?.0AlL@˷QA'.0AlLǷQA@-0AlL·QA-0AlLQA@-0AlLQA@-0AlLQAu-0AlLQAQ-0AlLQA*-0AlL QA,0AlLQA@,0AlLQA@,0AlL QA@z,0AlL QA@],0AlL QAA,0AlLxQA',0AlL`qQA@+0AlL`dQA)'0AlLQA#0AlLQA 0AlLQAV0AlLQA@0AlL QA0AlL´QA@0AlL QA0AlLQA 0AlLlQA@:0AlL_QA@0AlL+QA0AlL`QA@"0AlLQAG0AlLQAl0AlLࢳQA@0AlLQA0AlL QA0AlLyQA0AlLiQA0AlL[QA0AlLOQA0AlLDQA0AlL@:QA0AlL1QA0AlL(QAl0AlLQAA0AlL QA0AlLQA`0AlLQA@0AlL ޲QA0AlLԲQAx0AlL ƲQA0AlLQA0AlLQA@0AlL QA0AlLQA0AlL}QA0AlLrQA@0AlL`fQA0AlL`ZQA0AlL@PQA@0AlL QA@0AlLQA@ 0AlL`QA!0AlL@QA>0AlLQAM0AlL ٱQA`0AlL ͱQAo0AlL QA0AlLQA@0AlLQA0AlL`QA0AlLQA@0AlLQA0AlLQA@0AlL`QA0AlLwQA0AlLoQA@0AlL dQA0AlL[QA@0AlL`RQA0AlLGQAg0AlL`QA@0AlLQA0AlL QA0AlLQA0AlL@QA0AlLQA 0AlLQA@0AlLQA0AlLذQA0AlL̰QA@ 0AlL QA@0AlLQA0AlLQA0AlL {QA0AlL@pQA@0AlL gQA0AlL^QA 0AlLVQA.0AlL`NQA@L0AlLHQAi0AlL@AQA@r0AlL`7QA@0AlL@)QA@0AlL0'QA0AlL QA@0AlL`QA@0AlLQA0AlL QA@0AlL@QA0AlL@QA0AlLQA@0AlL QA0AlLQA'0AlLܯQA50AlLկQAC0AlL ϯQA@R0AlLůQA@m0AlL@¯QAu0AlL QAs0AlLQAj0AlL@QAq0AlLQA@0AlL`QA@0AlL QA@0AlLQA0AlLQA0AlLQA@0AlLrQA@0AlLlQA0AlLiQA0AlL^QA0AlLXQA0AlL`PQA@0AlL HQA0AlLCQA@0AlL2QA0AlL,QA0AlL%QA@0AlLQA0AlLQA@0AlLQAs0AlL QAj0AlLQAU0AlL QA40AlLQA@@0AlLQAN0AlLQA`0AlL ݮQA0AlL׮QA@0AlLծQA0AlL`ծQA0AlLѮQA0AlL ˮQA0AlL࿮QA0AlL@QA0AlL@QA0AlLQA@0AlLQA0AlLQA0AlL QA0AlL QA@0AlL QA40AlL wQA30AlL mQA@30AlLfQA@-0AlL _QA*0AlLRQAg0AlLLQA0AlLEQA@0AlL`=QA0AlL`4QA0AlL3QA0AlL1QA0AlL QA0AlL߭QA@ 0AlLQA@y 0AlL?QA 0AlLQA 0AlL`QA 0AlLŬQA 0AlLQA!0AlLxQA !0AlL bQA5!0AlLHQA0!0AlL,QA@!0AlL`QA@ 0AlL@QA 0AlL@̫QA 0AlLQAi 0AlL@QAU 0AlL{QA@C 0AlLnQA 0AlL@pQA 0AlLpQAA!0AlL@sQA@!0AlL uQA!0AlLwQAM"0AlL@yQA"0AlL}QA+#0AlLQA#0AlLQA#0AlLQA@B$0AlLQA$0AlLQA%0AlL@QA%0AlLQAI&0AlL`QA@(0AlLQA(0AlLQA'0AlL@jQA'0AlLWQA@'0AlLCQA@'0AlL5QA'0AlL`!QA'0AlLQA@'0AlLQA'0AlLQA'0AlL QA'0AlLتQA'0AlLɪQA@'0AlLQA'0AlLQA'0AlLQA'0AlLQA'0AlL`wQA'0AlLdQA'0AlLNQA@'0AlL`?QA'0AlL /QA'0AlLQA@'0AlL QA'0AlL@QA@'0AlLQA'0AlLQA'0AlLQAm'0AlL`֩QAR'0AlL ˩QA1'0AlLéQA@&0AlLQA&0AlLQA@&0AlLũQAg&0AlLũQA/&0AlLĩQA@%0AlLQA@%0AlL`QA@%0AlLQA@$0AlLྩQA$0AlLQA$0AlLQA@$0AlLQA$0AlL@QAq$0AlL@vQA@U$0AlL@iQA2$0AlLWQA#0AlLMQAF#0AlLHQA"0AlL KQA"0AlL`OQAP"0AlLQQA!0AlLSQA!0AlLWQA!0AlL_QA 0AlLdQAd 0AlLmQA@' 0AlL rQA@0AlL`xQA0AlL@QA0AlL`QA@ 0AlLQA@0AlLQA0AlLQA@40AlL@QA0AlL`ȩQAx0AlLԩQA<0AlL שQA0AlLکQAj0AlL۩QA0AlLשQA@0AlL@ϩQAi0AlLǩQA0AlLQA@0AlLQA@0AlL໩QA|0AlL QA?0AlLഩQA0AlLQA@0AlL`QA0AlLQA0AlLQA0AlLQA@0AlLQA0AlL@zQA0AlLpQA 0AlL`jQA-0AlLaQA@>0AlL[QA@O0AlLVQA@j0AlL@QQA0AlL`LQA0AlL 8QA0AlL*QA0AlL`QA0AlLQA&0AlLQAM0AlLQAx0AlLQA0AlL`QA0AlLݨQA0AlL@ӨQA0AlLɨQAH0AlL`¨QA}0AlLQA@0AlL@QA0AlLQA@0AlLQA0AlLȨQA0AlL@ڨQA@0AlL ͨQA0AlL¨QA'0AlLQA=0AlLQAN0AlLQAX0AlLࡨQA@c0AlLQA0AlLQA@0AlLQA@0AlL`QA0AlL@QA0AlLࣨQA0AlLࡨQA 0AlLQA0AlLQA0AlLQA0AlL`|QA0AlL@oQA0AlLfQA0AlLSQA0AlLGQA@0AlL9QA@0AlL.QA0AlL!QA@0AlL`QAp0AlLQAV0AlLQAk0AlLQAp0AlLQA@0AlLQA@0AlLQA0AlL QA@B0AlL`QAe0AlLQA0AlL ߧQA0AlL@էQA@0AlLͧQA<0AlL@ɧQA@g0AlL@ħQA0AlL@QA@0AlLQA0AlLQA0AlLQA0AlLQA0AlLधQA0AlLQA@0AlLQA0AlL`~QA0AlLxQA0AlL`vQA0AlLvQA!0AlLxQA "0AlLwQA,#0AlL@zQA#0AlLvQA$0AlL`tQA$0AlLqQA$0AlL`rQA$0AlL@tQA$0AlLxQA4%0AlLzQAv%0AlL`zQA%0AlL`vQA%0AlL@pQA@,&0AlLjQAh&0AlLbQA@&0AlL]QA&0AlLWQA &0AlL8mQA#'0AlLlQA@]'0AlLeQA'0AlLaQA7(0AlL^QA@(0AlL[QA)0AlL`UQAK)0AlLQQAu)0AlLQQA@)0AlL`QQA)0AlL@OQA)0AlLMQA)0AlL`EQA)0AlL4QA)0AlL`)QA)0AlL`QA@)0AlLQA@)0AlLQA)0AlLQA)0AlLQA})0AlLߦQAu)0AlL`ҦQAi)0AlL`ǦQA`)0AlLQA[)0AlLQA@R)0AlLQAK)0AlL QAH)0AlL`QAH)0AlL`QA@U)0AlLQA})0AlLvQA@)0AlL`vQA)0AlL`rQA@*0AlLqQA^*0AlLeQA*0AlL`_QA*0AlL@ZQA@*0AlLUQA*0AlLQQA@+0AlLKQA@%+0AlLAQAM+0AlL5QA@n+0AlL 1QA+0AlL&QA+0AlL`(QA ,0AlL )QA7,0AlL`3QA,0AlL%QA,0AlLQA@A-0AlL@ QA@t-0AlLQA-0AlL0QA@-0AlL QA`-0AlL ԥQA@-0AlL@ĥQA@-0AlLQA,0AlLQA@,0AlL QA@,0AlLQA,0AlLQAO,0AlL@lQA ,0AlLPQA@+0AlL 8QA+0AlL 1QA+0AlL$QA+0AlLQA+0AlL@QA@+0AlLQA+0AlL QA+0AlLQA+0AlLФQA@{+0AlLQAq+0AlLQA@L+0AlL@QA5+0AlL@QA@'+0AlL`tQA+0AlLhQA*0AlLTQA*0AlL?QA*0AlL`:QA*0AlL0QAo*0AlL`%QAL*0AlLQA5*0AlL QA(*0AlLQA@)0AlLģQA)0AlL QA)0AlL{QA@)0AlLDQA(0AlL@QA(0AlLQA#0AlL@=QA]#0AlL 0AlL QAB 0AlLĢQAK 0AlLѢQAS 0AlLߢQA_ 0AlL QA^ 0AlLQAe 0AlL QAk 0AlLQAW 0AlLQA 0AlL`QA0AlL`#QAp0AlL@$QA\0AlL*QA60AlL@'QA0AlL'QA0AlL`/QA0AlL8QA0AlL>QA0AlL@QAk0AlL?QAI0AlL ?QA.0AlL`=QA$0AlL`4QA0AlL(QA0AlL`QA@0AlL` QA@0AlLQA0AlL@QA0AlLQA0AlL֢QA0AlLƢQA0AlL QA@0AlLQA}0AlLQA]0AlLQA0AlL QA0AlL`QA0AlL෢QAn0AlLQA@<0AlL@QA@0AlLQA@0AlL`ТQA@0AlLڢQA0AlL@QA0AlLQA@0AlL`QA0AlLQA0AlLQA0AlLQA@y0AlL`QA@Z0AlL@QA50AlLQA@0AlL QA0AlL` QA0AlLQA 0AlL`QA0AlL@QA@*0AlL`QA0AlLQA0AlLQAJ0AlL@QA/0AlLQA0AlL QA0AlLQA0AlL`QA@0AlLQA@0AlLQA@g0AlL QAS0AlL*QA@0AlL4QA 0AlL@QA0AlLGQA@0AlLLQA0AlLWQA@0AlLaQA0AlLjQA~0AlLmQAf0AlL vQA@0AlLQA@0AlLȣQA0AlL֣QA0AlLQA0AlL`QA0AlLQAq0AlL@QAY0AlLQA@M0AlL@QA60AlL"QA$0AlL@+QA@0AlL@7QA 0AlL @QA@0AlL@IQA@0AlL`SQA@0AlLYQA&0AlL]QA@Q0AlLfQAe0AlLnQAy0AlL yQA0AlLQA@0AlL@QA0AlLQA0AlLQA@0AlLQA0AlLQA0AlL QA0AlLQA0AlLQA@0AlL`QA0AlLඤQAf0AlL@QA@I0AlL`QA@'0AlL QA0AlL࿤QA0AlLŤQA@w0AlL`ΤQAB0AlLӤQA0AlLפQA0AlL פQA|0AlL դQA-0AlLפQA0AlLϤQA0AlL@̤QA$0AlLƤQA@0AlL QA0AlLQA@b0AlL@QAA0AlLQA0AlL QA@0AlLQA0AlLQAZ0AlLQA60AlLQA@0AlLxQA@0AlL@pQA0AlLmQAQ0AlL dQA0AlL`[QA@0AlL`WQA 0AlLRQAe 0AlL@OQA0 0AlL@EQA@ 0AlLDQA 0AlLBQA_ 0AlL@@QA@ 0AlL=QA 0AlL;QA@ 0AlL8QA 0AlL`5QAl 0AlL .QA0AlL`)QA0AlL(QA@0AlL'QA@0AlL#QA@0AlL "QA0AlLQA-0AlL QA0AlL@+QA@0AlL=QA0AlL`LQA0AlL^QAc0AlLvQA0AlLP]QA0AlL@tQA^0AlL`QAC0AlLQA0AlL@QA0AlLQA@0AlLQA@0AlL`QA0AlL୤QA0AlLгQA0AlL෤QA80AlLQAx0AlLQA0AlLQA@0AlLQA0AlLȤQA0AlLФQA@0AlL٤QA0AlLQA0AlL`QA 0AlL`QA@ 0AlL` QA@40AlLQAF0AlLQAN0AlL`-QAE0AlL 0AlḼQA50AlLӭQA80AlLڭQAB0AlLQA@L0AlLQAD0AlLQAJ0AlLQA\0AlLQAq0AlL QAs0AlLpQA@t0AlLQAz0AlL %QAj0AlL0QAV0AlL9QAH0AlL@@QAK0AlLGQA>0AlL`SQA(0AlL\QA 0AlL`fQA0AlLqQA0AlL|QA0AlLQA0AlLQA{0AlLQAv0AlL QA@e0AlL@QAL0AlL@QA!0AlL`QA@0AlLϮQA0AlL@ڮQA@0AlL`QA@0AlLQA0AlLQAZ0AlL QA,0AlL QA0AlL%QA0AlL3QA@0AlL=QA 0AlLIQA@ 0AlLRQA 0AlLXQA 0AlL ^QAl 0AlLdQA@I 0AlLlQA@ 0AlL@rQA@ 0AlLxQA 0AlL`~QAp 0AlL QAP 0AlL`QA5 0AlLQA* 0AlL QA! 0AlL QA 0AlL@ǯQA 0AlLٯQA@ 0AlLQA 0AlLQA@ 0AlLQA 0AlL&QA@h 0AlL@.QAF 0AlL3QA 0AlL 8QA@ 0AlL@QA@ 0AlLDQA 0AlL@EQA 0AlLFQA@g 0AlL@IQA@N 0AlLOQA@4 0AlL`SQA@ 0AlL@UQA 0AlL`VQA 0AlLYQA 0AlL@[QA@ 0AlL]QAl 0AlL`QAI 0AlLaQA2 0AlLdQA 0AlLjQA0AlLpQA@0AlLzQA0AlL`QA|0AlLQA_0AlL`QAI0AlL`QA.0AlLࢰQA0AlL`QA0AlLQA0AlLQA@0AlL@ðQA0AlLʰQA0AlL@հQA0AlLްQA0AlLQAo0AlLQAQ0AlL QA@30AlL QA@%0AlLQA0AlLQA@0AlL#QA0AlL0QA0AlL@:QA0AlL AQA@0AlL PQA0AlLUQA@0AlLUQAd0AlLVQA@J0AlLXQA0AlLZQA0AlLcQAV0AlL@oQA0AlLpQA@0AlLtQA@0AlLpQA0AlL`rQAj0AlL sQAF0AlLrQA@0AlLwQA0AlLzQA@0AlLQAB0AlLQA0AlL QA0AlLQA@0AlL@QA@g0AlLQA40AlL@QA0AlL`QA@0AlLQA{0AlLQAF0AlLQA0AlLQA@0AlL@QA0AlL`QA0AlLQAq0AlL૱QAO0AlLQAP0AlLPQA@P0AlLQA@N0AlLñQAC0AlḺQA+0AlL`ݱQA0AlLQA/AlLQA/AlLQAn/AlL`QA/AlL QAq/AlLQAD/AlL#QA#/AlL0QA/AlL@4QA/AlL1QAb/AlL 5QAh/AlL;QAu/AlL`CQAw/AlLNQA>/AlLSQA/AlLZQA/AlL bQAJ/AlLnQA/AlL@wQA/AlL~QAv/AlLQA/AlL QA/AlL@QA/AlL`QAR/AlLQAG/AlLQA/AlLQA/AlLലQA/AlL QAG/AlLQA/AlL@QA/AlL`QA0/AlL QA/AlL²QA/AlL`ͲQA/AlLֲQA/AlLܲQA/AlLQA/AlL`QA\/AlLQA+/AlL QA/AlLQAN/AlL@QA/AlL@QA/AlLQA/AlL0QA/AlL@QAt/AlLQA1/AlLQA/AlLQAs/AlLQA;/AlL QA/AlL QA/AlLQA/AlLQA@/AlLQA/AlL QA/AlL`QA /AlLQA/AlL QA/AlLQA /AlLQA/AlLݲQA/AlL ϲQA/AlLQA/AlL౲QAi/AlL௲QA/AlL`QA/AlLQA`/AlL QA/AlLQA/AlL QA/AlLwQA/AlL`hQA/AlL@\QA)/AlLPQA/AlL?QAj/AlL4QA/AlL+QA/AlL"QAD/AlL@QA/AlL`QAl/AlLQA /AlLQA/AlLQA`/AlL`QA/AlL`QA/AlL QAb/AlL@QA/AlL@ QAt/AlL QA/AlLQA/AlLQA/AlL QAd/AlL QA=/AlLQA/AlL QA/AlLQAI/AlLQA/AlL`!QA/AlL $QAQ/AlL &QA /AlL`'QA/AlL'QAu/AlL$QA/AlL`QA/AlLQAZ/AlLQA/AlL`!QA|/AlL@!QAh/AlL+QAP/AlL@6QA+/AlLBQA/AlL KQA/AlL@PQA /AlLVQA?/AlL`^QAv/AlLaQA/AlLbQA9/AlL eQA/AlLbQA/AlL`aQA/AlLbQA`/AlL dQA/AlLgQA/AlLhQA+/AlL`jQAp/AlLlQA/AlL@nQA/AlL pQAL/AlLsQA/AlL`tQA/AlL sQA/AlLQA'/AlLQAL/AlLQAu/AlLQA/AlLQA/AlL QA/AlLɲQA/AlLҲQA"/AlLQAD/AlL QA/AlL QA/AlL QA/AlL QA/AlLQA/AlL@&QAQ/AlL`.QA/AlL4QAi/AlLBQA /AlLPQA/AlL\QA[/AlL eQA /AlL`kQA/AlLqQA/AlL{QA/AlL`QAZ/AlLQA/AlLQA/AlLQAM/AlL@QA/AlLQA/AlLQA>/AlLQA/AlLPQA/AlL@QA/AlL`QA6/AlLQA\/AlL`QA/AlLQAG/AlL'QA/AlL2QA/AlL=QA/AlLGQAQA/AlLJQA7/AlL TQA=/AlL`_QAp/AlLtQAl/AlLyQAk/AlL|QAh/AlLQAR/AlL`QAK/AlLQAM/AlLQA\/AlL`QAa/AlLQAE/AlLQA+/AlL öQAM/AlLضQAl/AlL QAu/AlLQA/AlLQA/AlLQA/AlL`QA/AlL@(QA/AlL>QA/AlLCQA/AlL@JQA/AlL@QQA$/AlL`SQA>/AlL^QAO/AlLfQA/AlLsQA/AlLQA/AlL QA/AlLQA9/AlLQA_/AlLষQA/AlLQA/AlL QA/AlLķQAF/AlLҷQA/AlLQAF/AlL QA/AlLQA/AlL QA/AlL QA/AlL%QA/AlL -QA/AlL4QA/AlL >QA/AlLFQA/AlLPQA+/AlLXQAG/AlL_QA/AlL`fQA/AlLqQA/AlL@wQA/AlL@QA/AlLQA /AlLQA/AlL QA/AlLQA/AlLQA/AlL ȸQA/AlLոQA/AlL`߸QA/AlL QA/AlL`QA/AlL@QA/AlLQA/AlLQA/AlLQA/AlL"QAX/AlL [QA/AlLQAk/AlL@QA/AlL QA/AlL@ĹQA0AlLιQA10AlLعQA@0AlL߹QA@W0AlLQA@m0AlL`QA0AlL@QA0AlLQA0AlLQA0AlL`QA0AlLQA10AlL QA@0AlLQA0AlL"QA0AlL@2QA0AlL 4QA0AlL8QA0AlLAQA0AlL KQA0AlL@QQA@0AlL`WQA0AlL]QA0AlLcQA%0AlLsQAA0AlLzQAN0AlL QAg0AlL QA~0AlLQA0AlL QA0AlLQA@0AlL`QA0AlLQA-0AlLQA@H0AlL@QAs0AlLQA0AlL@QA0AlLQA0AlL@źQA@0AlL`ʺQA0AlLѺQA0AlLۺQAW0AlLQA0AlL@QA0AlL`QA0AlL QA!0AlL QAU0AlL#QAp0AlL'QA0AlL-QA@0AlL1QA4vh0AҲf5QA0AlL8QA0AlL#0AlLCQA#0AlLBQA$0AlLDQA$0AlL@BQA$0AlL`AQA$0AlLp>QA"%0AlL4QA%0AlL`QA&0AlLQA>&0AlL!QAn&0AlL&QA&0AlL`.QA&0AlL`0QA'0AlL+QAH'0AlL#QA@8(0AlLQA](0AlLQA@(0AlLQA(0AlL`QA)0AlLQA1)0AlLQAi)0AlL`QA)0AlLQA)0AlL`QA@)0AlLQA)0AlLQA*0AlLQAB*0AlLQA*0AlL`QA*0AlLQA*0AlLQA*0AlL@QA@ +0AlL@QA=+0AlL`QA@d+0AlLQA+0AlLQA+0AlL@QA+0AlL QA,0AlL`QA@0,0AlLQA@U,0AlLQAm,0AlL QA,0AlL@QA,0AlLQA@,0AlL۝QA,0AlL ֝QA,0AlL ѝQA@,0AlLƝQA@;,0AlLVQA@+0AlLQA@E+0AlL ĜQA*0AlLQAH*0AlL"QA+0AlL@=QA@+0AlLLQA-0AlLlQA@G/0AlLQA@ 00AlLQA 00AlLQA/0AlL`eQAq-0AlL@ QAQ-0AlL`QA4-0AlLQA-0AlL`QA@,0AlL`QA@,0AlLQA,0AlL QA,0AlLQAy,0AlL` QA\,0AlLQA5,0AlLQA,0AlLQA ,0AlL QA+0AlLQA@+0AlL@QA+0AlL QA+0AlL QA@t+0AlLQAO+0AlLQA/+0AlLQA*0AlL@QA@*0AlLٛQAo*0AlLԛQA6*0AlLΛQA@*0AlL@țQA)0AlLQA)0AlLQA@j)0AlLкQA@g(0AlL QAq'0AlLQA&0AlLkQA%0AlLRQA=%0AlLQA@ %0AlL ޛQA$0AlL QA@$0AlL5QA@$0AlL2QAC$0AlLeQA$0AlLQA$0AlLQA@q#0AlL@QA"0AlLNQA@"0AlL`WQA@U"0AlL`QA!0AlLQA!0AlL7QA!0AlL 9QA!0AlL 9QAY!0AlL9QA@ 0AlL 6QA0AlL@2QA@ 0AlL)QA0AlL&QAL0AlL%QA0AlL@"QA0AlL!QA@0AlL!QA0AlL'QA@0AlL@QA@x0AlLQA@70AlL`QA0AlL QA0AlL@"QAs0AlL(QA0AlL3QA@0AlLQA$0AlL4QA$0AlL 'QA %0AlLQA@)%0AlL QA>%0AlLQAd%0AlLQA@w%0AlL@QA%0AlL@ܡQA@%0AlL@סQA@&0AlL ϡQAb&0AlL@ʡQA&0AlLơQA&0AlL`QA@s'0AlLϡQA/(0AlL@QA@@(0AlL`QAl'0AlLkQA@^'0AlLiQAO'0AlLgQA@%0AlL+QA`(%0AlLPQA!%0AlL@QA#0AlL`QA"0AlLQA@"0AlL QA@y"0AlLڠQAq"0AlLQAf"0AlL QA`"0AlLQAa"0AlLQAb"0AlL QAa"0AlL)QA@S"0AlLIQA?"0AlLaQA@3"0AlL~QA@"0AlLQA@"0AlL¡QA"0AlL@١QAi!0AlLסQAl!0AlL@̡QAd!0AlLQA@[!0AlLQA 0AlLQAC 0AlLQA 0AlL QA0AlLǡQA0AlLQA@0AlL QA0AlL@QA@ 0AlL@QA@/!0AlL@1QAV!0AlLMQA@!0AlL`QA!0AlL@QA!0AlLQA}"0AlL`QAU0AlL6QA0AlLuQA0AlLEQA@0AlLPٞQA*0AlL QA0AlLQA@ 0AlL0QA0AlLQA@0AlL`QAW0AlL@QA 0AlL@QA0AlLQAd0AlLȞQA0AlL֞QA0AlLԞQA0AlL@ٞQA@}0AlL ݞQA@E0AlLQA0AlL QAb0AlL@NQA@f0AlL@PQA0AlLlQAU0AlL6QA0AlLQAv0AlLQAJ0AlLQA@0AlLQA0AlLQA0AlL`QA[0AlLQA@g0AlLQA0AlLQAL0AlLQA@h0AlL@QA+0AlL`ڠQAn0AlL@mQA@0AlL@yQA0AlL`XQA0AlLQA$ p]Uu.A'ƕQA.AlL!QA^.AlL`wQA@.AlLwQA.AlLyQAY.AlLxQA4.AlL`sQAɡ.AlL`nQAX.AlL jQA.AlLbQA֢.AlL0]QA.AlL^QA@.AlL`eQAr.AlLiQA@ģ.AlL@mQA2.AlLoQA.AlLqQA.AlL`vQA{.AlL {QA.AlL|QA.AlLxQA.AlLpQA.AlLmQA[.AlLlQA.AlLnQA0.AlLtQA.AlLmQA.AlL`jQAn.AlLfQA.AlL_QAS.AlL@YQAߪ.AlL SQA.AlLMQAF.AlLDQAZ.AlL @QA.AlL1QA.AlLQA.AlL QA.AlL QA.AlL@QA.AlLߛQAG.AlLכQA.AlLʛQA.AlL࿛QA.AlLQA.AlLQA-.AlLQAp.AlLQA.AlLQAۮ.AlL@QA.AlL@wQA#.AlL`pQAU.AlLjQAޯ.AlLVQAj.AlLKQAذ.AlL DQA.AlL:QA.AlL=QA.AlLBQA.AlL@GQA<.AlLJQA.AlLNQA!.AlL`IQA.AlL6QA%.AlL QA.AlL QAШ.AlLQAj.AlL@QA.AlLQA.AlL QAe.AlL֚QA .AlLԚQA.AlL`ΚQAs.AlLQAE.AlLQAޥ.AlL@QAh.AlL QA$.AlLQA.AlL`QAy.AlLQA}.AlLvQA.AlLpQA\.AlL aQA .AlL UQAޣ.AlLNQA֣.AlLFQA.AlL ;QA..AlL.QA?.AlL@QA<.AlL QA.AlLQA.AlL`QAۣ.AlLܙQA@.AlL`QAբ.AlLuQA.AlLlQAm.AlLdQAG.AlL YQA7.AlLGQA(.AlL`7QA.AlL`%QA@.AlLQA.AlL QAڡ.AlL QA.AlLQA.AlLQA.AlLјQA.AlLQAl.AlL@QAC.AlLQA.AlLQA.AlLQA.AlLQAE.AlL yQA.AlL@rQA.AlL@kQA:.AlLhQA.AlLdQA.AlL@\QAԞ.AlLRQAĞ.AlLGQA.AlL@;QA{.AlL0QAq.AlL.QA9.AlL&QA0.AlL%QA.AlL QA.AlLQAڝ.AlLQA͝.AlLPQAĝ.AlLQA.AlL QAk.AlL@QAQ.AlL`QA..AlL@QA$.AlLQA.AlLޗQA.AlL@ԗQA.AlL@ɗQAܜ.AlL`QAĜ.AlLQA.AlLQA.AlL QA.AlLQA.AlL}QA.AlL uQA.AlL@iQAd.AlL^QA .AlLXQA›.AlLRQA[.AlLGQA.AlL =QA.AlL1QAX.AlL&QA .AlLQA͙.AlL QA.AlLQAH.AlLQA.AlLܖQA.AlL`˖QA.AlL QA.AlL`QA!.AlLQA+.AlLQA1.AlL`{QA8.AlLgQA?.AlLTQA<.AlL`CQA#.AlL`+QA.AlLQA.AlLQAǘ.AlLQA.AlL QA.AlL ܕQAp.AlLԕQAB.A'ƕQA(.AhpȕQAht.Aآ}̕QAhtň.AxϕQA 5.ADs֕QAH.ADsBܕQA"h .AnQA=h.ADsbQAȯ".A[zbQA&c؂.Aqu QAX.A*r9QAؘ\j.AxEQAKZ.AXQA0.AlLuQAА.AlLQA5.AlLQA.AlLଖQA.AlL`QA_.AlL–QA .AlL`ϖQA.AlL@ܖQAY.AlL@QA.AlLQAƍ.AlLQAy.AlLQA2.AlLQA.AlLQA.AlL@QAN.AlLQA .AlLQA.AlL QA.AlL,QAn.AlL7QA'.AlL@QA.AlLGQAP.A悫LQA.AlL`VQAÉ.AlL`QAe.AlLcQA.AlL@gQA.AlLnQA4.AlLtQA`@.ADv/xQA؇.AlL ~QAx.AlLQA .AlLQA.AlL`QA`.AlLQA.AlLQA.AlLQA.AlL඗QA<.AlL๗QA.AlLQAD.AlLQA.AlL`ȗQA@$.AlL`ԗQA.AlLQA .AlL`QAJ.AlLQAu.AlLQA@.AlL`+QA~.AlL`BQAD~.ApGQA@~.AlLIQA}.AlL QQA}.AlL^QAh}.AlLiQAP}.AlL zQA|.AlLQAR|.AlL`QA@{.AlLQAz.AlLɘQA=z.AlL`ܘQAy.AlLQAx.AlL QAx.AlL`%QAw.AlL`4QAWw.AlLDQAv.AlLYQAv.AlL@iQAIv.AlLxQAu.AlLQAu.AlLQAcu.AlL QAp]Uu.AlLQAu.AlL`QATv.AlLQA1w.AlL@ڙQAw.AlL@QAKx.AlL@QAx.AlL@$QAy.AlL.AlL)QAő.AlL4QA$.AlLEQA.AlL]QA.AlLlQA .AlLQA.AlL QA.AlL`QA.AlL@QA>.AlLজQA.AlL`QAB.AlLĜQA.AlLМQAp.AlL@ܜQA͗.AlLQAe.AlLQA*.AlL QA.AlL!QA՚.AlL`QA.AlLQA.AlL QA .AlLQA".AlL`QA*.AlL QA7.AlLԜQAe.AlL͜QA.AlL@œQA>.AlLQA}.AlLଜQA.AlLQA.AlLQA.AlLQAڝ.AlLQAG.AlLxQA.AlL`wQA%*'/AlLQA0AlL@QAV0AlL`QA0AlL`QA-0AlL`QAM0AlLQAY0AlLQAp0AlLQA0AlLQA0AlLQA0AlL@QA0AlLQA;0AlLQAM0AlL`QA@Z0AlLQAk0AlLQA0AlL`QA0AlLQA0AlL`QA0AlLQA0AlLPQA0AlLQA0AlL QA0AlL QAB0AlL@QA@m0AlLQA0AlLQA@0AlLQA0AlLQA@0AlLQA0AlL@QA0AlLQA%0AlLQA:0AlL`QAh0AlLQAw0AlL0QA0AlLQA0AlLQA0AlLQA@0AlLQA0AlL`QA0AlLQA 0AlLQA@0AlLQA(0AlL@QA30AlLQAC0AlLQAU0AlL`QAe0AlLQA}0AlLQA0AlLQA0AlLQA0AlL QA0AlL`QA 0AlL@QA0AlLQA80AlLQAE0AlL QAQ0AlL`QAi0AlLQA0AlLQA0AlLPQA0AlLQA0AlLQA0AlLQA0AlLQA0AlLQA 0AlLQA! 0AlLQA8 0AlLQA@J 0AlL@QAc 0AlLQA 0AlL QA 0AlLQA 0AlLQA 0AlL@QA@ 0AlL@QA 0AlLQA 0AlLQA 0AlL`QA 0AlLQA! 0AlLQA7 0AlLQA@3 0AlL`QA@2 0AlL@QA5 0AlL`QA< 0AlLQAI 0AlLQA@X 0AlLQA@o 0AlLQA@ 0AlL`QA 0AlLQA 0AlL`QA 0AlLQA 0AlLQA 0AlLQA 0AlLQA 0AlLQA@ 0AlL@QA7 0AlL`QAF 0AlLQAX 0AlLQA@N 0AlLQAh 0AlLQA@} 0AlL`QA 0AlL QA 0AlLQA 0AlLQA 0AlLQA 0AlLQA 0AlL@QA@ 0AlLQA 0AlLQA/ 0AlLQAZ 0AlLQAj 0AlLQA 0AlL`QA@ 0AlL QA 0AlLQA@ 0AlLQA 0AlLQA 0AlL QA 0AlL}QA 0AlLQA 0AlLQA' 0AlL }QAi 0AlLuQAv 0AlLrQA 0AlL qQA 0AlLrQA 0AlLoQA@ 0AlL oQA@ 0AlLoQA@*0AlL`pQAL0AlL pQA0AlLoQA0AlL qQA0AlLtQA0AlLzQA0AlL}QA#0AlL{QA0AlL`dQA0AlL`BQA-0AlLQA@ 0AlL QA 0AlL QA@ 0AlLQAo 0AlLQAU 0AlL`QA> 0AlLQA3 0AlLQA! 0AlL QA 0AlLQA 0AlL`QA 0AlL QA 0AlL`QA 0AlLyQA 0AlL kQA 0AlL`cQA` 0AlLUQAH 0AlL LQA 0AlL=QA 0AlL@0QA 0AlL#QAb 0AlL@QA/ 0AlL QA 0AlL@QA@ 0AlLQA 0AlLQA 0AlLQA 0AlLQA 0AlLQA 0AlLQA 0AlLQA@ 0AlL|QAt 0AlLnQA? 0AlL@^QA 0AlL@IQA 0AlL9QA@ 0AlL!QA 0AlLQA 0AlL QAv 0AlLQAl 0AlL0QAJ 0AlLQA0AlLQA0AlLQA0AlLsQA0AlLqQA0AlLhQAT0AlL `QA0AlL`VQA0AlL LQA0AlL>QA0AlL`7QAC0AlLQA,0AlLQA+0AlL`QA50AlLQAE0AlLQA@Z0AlL@QA@{0AlLQA0AlLQA@0AlL`QA0AlL`QA0AlLQA0AlLQA0AlLsQA0AlL`gQA@0AlLQQA0AlL5QA0AlL QA@0AlL QA0AlLQA@0AlLQA0AlLQA0AlL QA0AlL@QA@0AlLQA0AlL@QA0AlL`QA0AlL`QA-0AlL}QA@0AlL 9QA0AlL`!QA0AlLQA0AlLQA0AlLQA@0AlLQA0AlL`QA@ 0AlL@QA 0AlLQA 0AlL0QA 0AlL@QA@0AlLQA0AlL`QA@0AlL vQA0AlLlQA0AlLbQA0AlLXQA 0AlLMQA/ 0AlL AQAT 0AlL8QA{ 0AlL5QA 0AlL`0QA 0AlL*QA 0AlL%QA@ 0AlLQA 0AlL@QA@( 0AlL`QA@K 0AlL QA` 0AlL@QAo 0AlLQAq 0AlL QA} 0AlLQA 0AlLQA 0AlL QA@ 0AlLQA! 0AlL`QAf 0AlLQA 0AlLQA 0AlLQA! 0AlLQA@M 0AlLQAc 0AlLQAx 0AlLQA 0AlL@QA 0AlLQA 0AlL`QA 0AlLQA 0AlLyQA 0AlLvQA@ 0AlLvQA0 0AlLvQA@c 0AlL~QA 0AlL QA 0AlLQA0AlLQAO0AlL@QA0AlL@QA@0AlLQA0AlLQA@0AlLQA@"0AlLQA@[0AlLQA~0AlLQA 0AlL}QA@+0AlLtQAk0AlLkQA0AlLfQA0AlL]QA@<0AlLNQA0AlL?QA@w0AlL 2QA@0AlL)QA0AlL` QA@80AlLQA@W0AlL@ QA@0AlLQA0AlL QA0AlLQA0AlLQAH0AlLQA0AlLQA@0AlLQA0AlLQA%0AlLQA@i0AlL`QA@g0AlLQAP0AlL@QA@70AlLxQA)0AlLdQA 0AlLDQA0AlLQA@0AlLQA0AlL QA@0AlLQA-0AlL@QA?0AlLQAC0AlLQAD0AlLQAQ0AlLQAq0AlLpQAw0AlL|QA0AlL`xQA0AlLqQA@0AlL@hQA0AlL]QA0AlLUQA0AlLNQA@&0AlLIQA>0AlLEQAX0AlLAQA0AlL:QA0AlL@5QA0AlL-QA@0AlL$QAn0AlL QA00AlLQA@0AlL@QA0AlLQA0AlLQA0AlLQA-0AlLQA0AlLQA@0AlLʿQA@V0AlL@ڿQA0AlLQAy0AlLQA0AlL QA0AlLQA0AlLQA0AlL wQA0AlLoQA@0AlL iQA@0AlL`eQAb0AlLaQAC0AlL_QA@0AlLOQA@0AlL ;QAY0AlL`1QA/0AlL`$QA 0AlLQA0AlLQA0AlLQA0AlL QA0AlL QAs0AlLQA[0AlLQA/0AlLQA0AlLQA0AlL`۾QA@0AlLԾQA0AlL˾QAu0AlL`¾QAL0AlLQA0AlLQA 0AlL`QAs 0AlLCQA@ 0AlL-QA 0AlL`+QA@S 0AlL@QAD 0AlLQA# 0AlL`QA@ 0AlLQA 0AlLQA@ 0AlLQA 0AlLQA@i 0AlL`ݽQAO 0AlL`ԽQA7 0AlLǽQA@ 0AlL@QA 0AlL@QA 0AlLQA 0AlL৽QA 0AlL`QA 0AlL QA 0AlLQA@ 0AlL`QA@ 0AlL zQA 0AlL`tQA@]0AlLQA@\0AlL ޼QAX0AlL`QAZ0AlLQA@N0AlLQA=0AlLQA0AlLuQA@0AlL\QA@0AlLPQA0AlLEQAa0AlLQA@0AlL ׻QA0AlL»QA0AlLQA0AlLQA@0AlLQA0AlLQA0AlL QA0AlLzQA@0AlL`sQA@y0AlLeQA@u0AlLZQAg0AlLSQAM0AlLLQA20AlLIQA0AlL@DQA0AlLQA/AlL4QA/AlL -QA/AlL%QA/AlL QA/AlL QA/AlLQAF/AlL QA/AlLQAF/AlLҷQA/AlLķQA/AlL QA/AlLQA_/AlLষQA9/AlLQA/AlLQA/AlL QA/AlLQA/AlLsQAO/AlLfQA>/AlL^QA$/AlL`SQA/AlL@QQA/AlL@JQA/AlLCQA/AlL>QA/AlL@(QA/AlL`QA/AlLQA/AlLQAu/AlLQAl/AlL QAM/AlLضQA+/AlL öQAE/AlLQAa/AlLQA\/AlL`QAM/AlLQAK/AlLQAR/AlL`QAh/AlLQAk/AlL|QAl/AlLyQAp/AlLtQA=/AlL`_QA7/AlL TQA/AlLJQA/AlL>QA/AlL0QAm/AlL&QAI/AlL`QA /AlL`QA/AlLQA/AlLQAg/AlLQA6/AlLQA/AlLQA/AlL`׵QA/AlLεQA/AlLǵQA/AlL@QA/AlLີQA:/AlL`QA_/AlL@QA/AlL`QA/AlLQA}/AlL@QA/AlL QAJ/AlLwQA/AlL_QA/AlL@EQA/AlL@1QAE/AlL`)QA/AlLQA/AlL@ QA$/AlL@QA/AlLѴQA*/AlLPQA'/AlLQA/AlLQAj/AlL`QAN/AlLʳQA/AlL#QA/AlL`uQAj/AlLQA/AlL´QA/AlL`ǴQA/AlL̴QAm/AlLشQA/AlL`QA/AlL`QA/AlLQA/AlLQAS/AlL QA)/AlL&QA/AlL+QAP/AlL .QA/AlL0QA/AlL3QA'/AlL;QA/AlLNQA;/AlLgQA/AlL hQA/AlLhQAt/AlLgQA!/AlLhQA/AlL jQA/AlLkQA/AlLpQAd/AlL zQAJ/AlL`QA0/AlLQA/AlLQA/AlLQA/AlL@QA/AlL@QA/AlL@QAv/AlL QA5/AlL`QA /AlLµQA/AlL`ƵQA/AlLεQA/AlL ׵QA/AlL@׵QA/AlL`ٵQAa/AlL۵QA2/AlL@ݵQA/AlL`޵QA/AlL ޵QAy/AlL۵QAA/AlLصQA/AlL`ֵQA/AlL`ԵQAN/AlLԵQA/AlL ׵QA/AlL0صQAY/AlLԵQA%/AlLյQA/AlL`ݵQA/AlLQA/AlLQA/AlLQA/AlLQA?/AlL`QA/AlLQAe/AlLQA/AlLQA/AlLQAB/AlLQA/AlL QA/AlLQA/AlLQA:/AlLQA/AlLQA/AlL`QAQA{/AlLBQA7/AlLLQA/AlLTQA/AlLZQAn/AlL`\QA/AlL]QA/AlL]QAe/AlL@\QAd/AlL,QA/AlL`%QA/AlLQA/AlLQAϳ/AlL QA/AlL0QAe/AlLQA7/AlLQAC/AlL&QA/AlL1QAȳ/AlL;QAV/AlL@BQA/AlLJQA/AlL MQA/AlLOQA /AlLSQA/AlL`VQA/AlLZQA/AlL_QA /AlLfQA/AlLhQAN/AlLgQAD/AlLoQAB/AlLuQA/AlL}QA/AlL}QA8/AlLQA:/AlLwQA:/AlL@bQA5/AlLTQA/AlLDQA/AlLQA*/AlLQQAI/AlLeQA0/AlL@QAQA/AlLPHQA/AlLJQA/AlL@WQAz/AlL_QA/AlLoQA/AlL@QAt/AlLQA /AlL`QA/AlL@QA/AlLQA/AlLQA/AlL"QA/AlL`UQAo/AlLQAx/AlL@QAp/AlLQA~/AlL@QA8{/A8,QAۣ/AlL@QA/AlLQA`/AlL`QA/AlLQA /AlL`QA/AlLQA/AlLQAɧ/AlL@QA_/AlLQA/AlLQA/AlLQA/AlL`QAl/AlLQA/AlLQA/AlL QAP/AlLQA/AlL`QAϫ/AlLQA/AlLQA۫/AlL`QA!/AlL QAd/AlLp QAʬ/AlLQA%/AlL`QA/AlLQA/AlL@QAx/AlL%QAW/AlLBQA/AlLLQA/AlLUQA/AlL`\QAv/AlLoQAq/AlL{QA/AlLQA/AlLQA/AlLQA/AlLQAt/AlLQA/AlLQA7/AlLQA/AlLQAܺ/AlL QA/AlL`QA1/AlLQAX/AlLQA/AlLQA/AlL QA/AlLQAX/AlL QA/AlL@QAL/AlLQA/AlL QA/AlL@QAݽ/AlLQA/AlL QA /AlL )QAQAt/AlLGQA/AlLMQA/AlL`WQA/AlL^QA/AlL hQA/AlL`tQA|/AlL~QA/AlL`QA1/AlLQAw/AlLQA/AlL@QA/AlLQA/AlLQA9/AlLQA?/AlL QAB/AlLQAE/AlLQAF/AlLQA_/AlLQAq/AlL@QA/AlLQA/AlL`QA /AlLQA2/AlLQAr/AlL QA/AlLQA/AlLQAK/AlL@QA/AlLQA/AlLQA/AlL QAH/AlLQA/AlLQA/AlLQA/AlLQA?/AlLQAg/AlLQA/AlL QA/AlLQA/AlL`QA/AlL QAB/AlL 'QAx/AlL 1QA/AlL:QA/AlLDQA/AlLpAQAz/AlL@IQA/AlL@OQA/AlLYQAa/AlL@dQA/AlLhQA/AlLhQAW/AlLmQA/AlL uQA/AlL@}QA./AlL QAq/AlLQA/AlLQA/AlLQA/AlL QA&/AlL@QAy/AlLQA/AlLQA/AlL`QA/AlLQA$/AlLQA/AlLQA/AlLQA/AlLQA/AlL@QA|/AlL`QA/AlLQA/AlL.QA/AlL@8QAL/AlLDQAv/AlLPQA/AlLp^QA/AlLbQAX/AlLvQA/AlLQA$/AlLQA/AlL@QA/AlLQA4/AlLQA2/AlL`QA/AlL QA/AlL`QA/AlL QA/AlLQA/AlLQA/AlLQA/AlL@$QA/AlL`0QAu/AlLAQA^/AlL 4QA/AlL6QAq/AlL =QA/AlLDQAR/AlL PQA/AlLcQAR/AlL`vQA/AlL QA/AlLQA/AlLQAd/AlLQA/AlLQA/AlL`QA/AlL@QAD/AlL`QAr/AlLQA/AlL QA/AlL QA#/AlL@QAp/AlLQA/AlLQA/AlLQA/AlL QA/AlL`QA./AlL QA/AlLQA/AlLQA/AlLQA/AlLQA/AlLQA/AlL@QA/AlL #QA/AlL)QA/AlL2QA/AlL`6QA3/AlLMQA /AlL_QA/AlLwQA/AlLQA/AlLQA/AlLQA/AlLQA0AlLQA20AlLQAS0AlLQA}0AlLQA0AlL QA0AlLQA0AlLpQA+0AlLQA.0AlLpQAH0AlLQA\0AlL`QA0AlL@QA0AlLQA0AlLQA0AlL`QA@0AlLpQA0AlLQA@0AlL@QAm0AlL`QA@0AlLQA@0AlLQA0AlL`QA0AlL`QA&.AlL`-QAT/AlLhQAt/AlL@CQA /AlL@=QA|/AlL`>QA/AlL@=QAt/AlL,QA/AlL QA$/AlL`QA{/AlLQAr!/AlL xQA!/AlLlQA "/AlL@^QAA"/AlLPQAU"/AlLHQAk"/AlL@@QAn"/AlL2QA"/AlL&QA"/AlLQA:#/AlL QA#/AlLQAM$/AlLQA$/AlL`ڻQAQ%/AlLлQA%/AlLûQA"&/AlL@QA&/AlLQAF'/AlL QA*/AlLZQAH*/AlLZQA*/AlLOQA,/AlL#QA,/AlL`QA-/AlL QAg-/AlL QA-/AlLQA./AlLQAy./AlLQA./AlL QA//AlL@ܺQAr//AlL ӺQA//AlL˺QA0/AlLźQAq0/AlLQA0/AlL಺QA+1/AlLQA1/AlL`QA1/AlLQAv2/AlLQA2/AlL`QAE4/AlL@QA4/AlL@QA5/AlLQA"6/AlLQA6/AlL@QA6/AlL QA7/AlLQAE8/AlLQA9/AlL`QA9/AlLQA9/AlLQA;:/AlLQA:/AlLQA:/AlLQA(;/AlL`QA.=/AlL@}QA=/AlLyQA%>/AlL zQA>/AlL@xQA>/AlL@wQAo?/AlLvQA?/AlL vQA;@/AlL@uQA@/AlLuQA@/AlLpuQAF/AlLݸQAkG/AlLQAI/AlLP4QAJ/AlLQA"J/AlLPQA'J/AlLQA&J/AlLηQA>J/AlL ķQA]J/AlL QAtJ/AlLQAJ/AlLQAJ/AlL QA(K/AlL@QAlK/AlLQAK/AlLQAK/AlL QA@L/AlLQAL/AlLQAL/AlLQAL/AlLQA&M/AlL}QAM/AlLxQAM/AlLtQA'N/AlL`tQAN/AlL`6QA O/AlL,QA?O/AlL QAhO/AlL QA~O/AlL QAO/AlL QAO/AlL@QAFP/AlLQAP/AlL ߶QAQ/AlL`ضQAQAP/AlL ;QAO/AlL0QAO/AlL+QARO/AlL*QAO/AlL%QAN/AlL@QAN/AlL@QAjN/AlL QAM/AlL QAM/AlLQA M/AlLQAL/AlLQA(L/AlL`QAK/AlL@QAK/AlLQAvK/AlLߵQA)K/AlLݵQAJ/AlL`ڵQAtJ/AlL@ٵQA'J/AlLڵQAI/AlL@ٵQAWI/AlL׵QAI/AlL`ڵQAH/AlL޵QAH/AlL`ߵQA!H/AlL@ߵQAG/AlLQAwG/AlLQAG/AlLQAF/AlLQAF/AlL`QA>F/AlLQAE/AlL`QAE/AlLQAbE/AlLQAE/AlL@QAD/AlLQAD/AlLQAdD/AlL QAD/AlLQAC/AlL`QAQC/AlLݵQA"C/AlL еQA C/AlL@ƵQA)C/AlLQAC/AlLQAB/AlL`QAB/AlL QATB/AlL@pQAA/AlLVQAA/AlLDQA7A/AlL/AlL෴QA>/AlL QA>/AlLQAv>/AlLQAb>/AlL`QAr>/AlLyQA>/AlLrQA>/AlLkQA>/AlLeQA>/AlL_QA>/AlL`WQA>/AlLRQAX>/AlL`DQA2>/AlL8QA>/AlL(QAHc=/AiQA=/AlLQA=/AlL QA=/AlL QA=/AlL QA&>/AlL QAt>/AlLQA>/AlL`QA>/AlL QAQ?/AlL`QA?/AlLQAC@/AlLQAeA/AlLڳQAA/AlLxسQAB/AlLʳQAC/AlL QAE/AlL QAE/AlLQAF/AlL QAG/AlL pQAH/AlLHQAgI/AlL@QAJ/AlL@߲QAhK/AlL βQAK/AlL QAM/AlL@QAM/AlLtQA~N/AlLQQALO/AlL#QAP/AlL QAAQ/AlLQA~Q/AlLQAQ/AlLQAQ/AlLQAQ/AlLQALQ/AlLQAP/AlL`QA^P/AlL QAP/AlL@QAO/AlL QANO/AlL@QA O/AlL QAN/AlL`QAN/AlL`QANN/AlLറQA/N/AlL QAM/AlLQA{M/AlL`ƱQA$M/AlLƱQAL/AlLñQAL/AlLQASL/AlLQAL/AlLೱQAK/AlLQARK/AlL଱QAK/AlLQAlJ/AlLࣱQAI/AlLQA|I/AlL@QA,I/AlLQAH/AlLQAH/AlLQAtH/AlL`QA,H/AlLQAG/AlLQAPG/AlL@QAG/AlLPQAF/AlL@~QAF/AlLxQAyF/AlL vQA@F/AlLqQAF/AlL@nQAE/AlL`iQAhE/AlL dQAE/AlL^QAD/AlL@`QAYD/AlLWQAC/AlL@PQAC/AlL@JQAlC/AlLBQA2C/AlL:QAB/AlL 3QADB/AlL-QAA/AlL *QAA/AlL 'QAA/AlL!QA@/AlLQA@/AlLQA5@/AlL QA?/AlLQA?/AlL QAm?/AlL*QA ?/AlL1QA>/AlL4QAU>/AlL2QA=/AlL1QA=/AlL6QA^=/AlLQARQA'9/AlL`=QA8/AlL?QA8/AlLDQA8/AlLYQAe8/AlL \QA7/AlLbQA6/AlLfQA 6/AlLeQA]5/AlL fQA4/AlLgQA3/AlLiQAh3/AlLiQA2/AlLlQA2/AlLoQA~2/AlLrQA1/AlL@vQAm1/AlLtQA0/AlLrQAd0/AlLpQA//AlLnQAb//AlL`mQA./AlLgQA|./AlL`QA:./AlL`TQA-/AlLNQA-/AlLIQAh-/AlLHQA-/AlL CQA,/AlL/AlL@KQA/AlL SQA/AlL]QAr/AlLkQA/AlL`vQA/AlLQA/AlLQAy/AlLQA/AlLQA#/AlLQA/AlL@QA/AlL`QAX/AlLQA/AlLQAG /AlL QA /AlLQAm /AlLQA /AlLQAG /AlLQA /AlLQA; /AlLİQA /AlL˰QA /AlL۰QAb /AlL@QAQ /AlLQA] /AlL`QAd /AlL@ QA6 /AlL QA /AlL QA/AlL&QAs/AlL 4QA/AlL>QA/AlLFQA/AlLPQAm/AlL`[QAL/AlL`dQA/AlLwQA/AlL@QAc/AlL QA*/AlL QA/AlLQA/AlL QAz/AlL`DZQAJ/AlL@ٱQA4/AlL`QA/AlL QA/AlLQAM/AlLQA/AlL`QA/AlL@QA/AlLQA/AlL QAH/AlLQA/AlLQA/AlL,QA/AlL6QAj/AlL@=QA/AlL7QA/AlL4QA/AlLQAH/AlL QA/AlL QA/AlLQA/AlLQA.AlLQA\.AlLQA.AlL#QA.AlL2QA .AlL=QAC.AlL@IQA.AlLLQA.AlLhQA.AlLQA2.AlLQAB.AlLQAB.AlLQA7.AlL QA).AlLQA .AlLŲQA.AlLɲQA.AlLɲQAy.AlLʲQA:.AlLβQA.AlLҲQA.AlL ֲQA.AlLڲQA(.AlL@޲QA.AlLݲQA.AlLزQA.AlLβQA.AlLIJQAw.AlL@QAY.AlLQA8.AlLQA.AlL`QA.AlLQA.AlL`QA.AlL`ʲQA.AlL@زQA.AlLQA.AlLQA.AlL@QAj.AlL(QA.AlL7QA.AlLFQA.AlLNQA.AlLTQA.AlL[QA.AlL`QAm.AlL `QA.AlL``QAn.AlLdQA.AlL@eQA.AlLqQA.AlL{QA.AlLQA.AlL`QA.AlLQA\.AlL@QA.AlLQA.AlL`QAX.AlL QA.AlLQA.AlLQA^.AlLƳQA .AlLɳQA.AlLͳQA.AlLӳQAz.AlL ٳQA_.AlL@QA].AlL@QAg.AlLQAl.AlL@QA.AlL QA.AlL` QA.AlLhQA.AlL QA.AlL&QA.AlL`.QA .AlL3QA'.AlL8QAJ.AlL@?QA}.AlLFQA.AlLKQA.AlLQQA!.AlL YQAc.AlLeQA.AlLjQA.AlLmQAx.AlL@qQA.AlLrQA%.AlLuQA.AlL uQA.AlLrQAa.AlL@qQA.AlLqQA'.AlL sQAT.AlL0uQA.AlL@xQA .AlL@{QAb.AlL{QA.AlLzQA&/AlL|QAX/AlLQAd/AlL@QAc/AlLQAX/AlL@QA//AlLQA.AlL QA.AlL@QA.AlL࿴QA.AlLʹQA.AlL@޴QA.AlL`QAb.AlL`QA(.AlL`QA.AlLQA.AlL QA.AlL QA[.AlLQA .AlLQA.AlL#QA.AlL*QAN.AlL 1QA8.AlL@;QA?.AlLKQA.AlLUQA.AlL`\QA.AlLeQA.AlLkQA.AlLzQA.AlLQA.AlLQA!.AlL@QA.AlLQA.AlLQA.AlL QA /AlL`QA1/AlLQAQ/AlL೵QA|/AlL@QA/AlLQA/AlLPQA./AlL õQAt/AlLõQA/AlLŵQA/AlLǵQAG/AlLϵQA/AlLԵQA/AlL`׵QA)/AlL۵QAt/AlLߵQA/AlLQA/AlLQA/AlL`QA/AlL@QA/AlLQA/AlL QAN/AlLQA%/AlLQA/AlLQA/AlL@%QA/AlL+QA/AlL4QAm/AlL@;QA)/AlLBQA/AlL@JQA/AlLUQA/AlL]QA/AlLeQA/AlLrQA/AlLyQA]/AlL~QA/AlL QA/AlLQA/AlLQA,/AlLQAh/AlL`QAu/AlLQAz/AlL QA/AlL`ƶQA/AlLͶQA/AlL@۶QA/AlLQA/AlL@QA/AlLQA@/AlL QA/AlLQA/AlLQA/AlL"QA/AlL!QA/AlLQA>/AlLQA/AlLQA/AlLQA/AlL@QAt/AlL`QA/AlLQA /AlL/QA] /AlLHQAx /AlLUQA /AlLeQA /AlLrQA /AlLQA /AlL@QA /AlLQA /AlL@QA: /AlLQAf /AlL৷QA7 /AlL࠷QA /AlL QA /AlLQAj /AlL QAt /AlLQAgT| /A\XQA /AlL୷QA /AlLQA /AlL ·QA /AlL0ƷQA /AlLзQA /AlL۷QA /AlL@QA /AlL QA /AlLQAw /AlLQAN /AlL@ QA /AlL`QA /AlL'QA /AlL`-QA /AlL1QA /AlL@QA /AlLOQA5 /AlL`VQA /AlLZQA /AlL]QA% /AlL `QAz /AlL@_QA /AlL eQA /AlL@nQA /AlL@tQAh /AlLQAj /AlL QAh /AlLQAZ /AlL`QAL /AlLQA8 /AlL@QA /AlL@QA /AlLĸQA /AlL ̸QA /AlL׸QA /AlLQA /AlL`QA /AlL QA /AlL`QA /AlLQA /AlLpQA /AlL`QAN/AlLQA3/AlL(QA /AlL/QA /AlL@7QA /AlL@>QA /AlL@KQAi /AlLXQAW /AlLbQA8 /AlLnQAS /AlL@tQA{ /AlL|QA /AlL QA /AlLQA:/AlL@QAn/AlLQA/AlL@QA/AlLQA/AlL@QA0/AlL QAb/AlLQA/AlL`QA/AlLQA%/AlLQAB/AlLQA+/AlLQA/AlL`QA/AlL`QA/AlL QA/AlLQAq/AlLԹQAu/AlL`۹QA/AlLQA/AlLQAJ/AlLQAV/AlLPQA/AlLQA/AlLQAR/AlL&QA|/AlL3QA/AlL=QA/AlL@GQAk/AlLTQA$/AlL^QA/AlLcQA/AlLiQA/AlLtQA;/AlL~QA/AlLQA/AlLQA/AlL QA/AlLQA4/AlLQAu/AlL@QA/AlLQA)/AlLQAe/AlL`QA/AlLQA/AlL`QA4/AlL QA`/AlL QAo/AlL~QA/AlLxQA/AlLPvQA/AlLrQA/AlL@oQA/AlLmQA#/AlLoQA2/AlL`pQAq/AlLPxQA/AlL ~QA/AlL@QA/AlLQA /AlLQA/AlL`QA/AlL@QA/AlL`QA /AlL˺QA/AlLܺQA:/AlLQAD/AlLpQA}/AlL@QA/AlLQA;/AlLQA/AlLQA/AlL$QA/AlL ,QA/AlL@4QA/AlL8QA/AlL@QA /AlLHQA./AlLOQA/AlL[QA/AlLdQA/AlL pQA_/AlLyQA/AlLQAO/AlLQA/AlLQA/AlL@QA/AlL`QA/AlL஻QA/AlL@QA/AlLŻQA/AlLȻQA/AlLʻQA/AlL`ʻQA]/AlLȻQA/AlLɻQA(/AlL ɻQA/AlLѻQA/AlLڻQA/AlL@QA/AlL0QA/AlLQA/AlL QA;/AlL.QAk/AlL =QA/AlLEQA/AlLHQA/AlLKQA /AlLSQAA/AlL@`QAr/AlL@jQA/AlLvQA/AlLQA'/AlLQA-/AlL QA>/AlL@QA7/AlL QA/AlL`ļQA/AlL˼QA/AlL`ԼQA/AlLQA/AlLQA/AlL QA/AlLQA/AlL QA/AlLQA/AlL@QA/AlL`$QA/AlL)QA/AlL,QAq/AlL/QAB/AlL1QA/AlL`6QA/AlL ;QA/AlL`AQAm/AlLGQAe/AlLMQAc/AlLPVQAc/AlLYQAr/AlL`aQA/AlL`hQA/AlLpQA/AlLyQA/AlL|QA/AlLhQA0/AlL|QAz/AlLxQA/AlL vQA/AlL@CQA'3=/AlL /QA-0AlLQAtN8k/AlL AQAwk/AlL5QAk/AlL/QAk/AlL)QAl/AlL #QA\l/AlLQAol/AlLQAl/AlLQA]m/AlL`QAm/AlLQA.n/AlL QA~n/AlL QAn/AlLQAn/AlLQAo/AlLQAio/AlL@QAo/AlLQA4p/AlL QAp/AlLQAp/AlL`ݶQA@q/AlL`׶QAq/AlLжQAPr/AlL`öQAr/AlLQAr/AlL๶QA=s/AlLശQAs/AlLQAs/AlL QA.t/AlLQAt/AlLQAt/AlL`QAt/AlLQAu/AlL@|QA8u/AlLpQA^u/AlL`fQAu/AlL^QAu/AlL`XQALv/AlL RQAv/AlL@LQAv/AlL`HQAv/AlLFQAv/AlLDQAw/AlL`8QAEw/AlL+QA{w/AlL"QAw/AlL`QAx/AlLQAzx/AlL`QAx/AlL QA y/AlLQAfy/AlL@QAy/AlLQAy/AlL QAOz/AlLֵQAz/AlLѵQAz/AlLʵQAb{/AlLõQA{/AlL`QA%|/AlLQA_|/AlL౵QA|/AlL`QA|/AlL`QA|/AlLQA|/AlLQA|/AlL`~QA}/AlL@wQA)}/AlL`rQAo}/AlLoQA}/AlLoQA}/AlLnQA}/AlLlQA@~/AlLjQA%~/AlL hQA>~/AlL`fQAt~/AlL_QA~/AlLWQAc/AlL`QQA/AlL`GQA/AlLLQA4/AlL@SQA/AlL@\QA/AlL`]QA/AlLXQA/AlLEQAS/AlLDQA/AlLFQA/AlLEQA/AlL;QA/AlL 1QA /AlL)QAX/AlL,QA/AlL(QA/AlLQA/AlLQAx/AlLQA/AlL QAC/AlLQA/AlLQA/AlLQA /AlLQA/AlL@QAY/AlLQA"/AlLQAO/AlLQA-/AlLQA/AlL QAZ/AlLմQA/AlLƴQAȊ/AlLQA@/AlLЭQAD/AlLQAd/AlL`QA/AlL QAI/AlLQA/AlLQA/AlL~QA8/AlL uQA/AlLoQA/AlL@kQA/AlLcQA/AlL]QA#/AlLWQAj/AlLRQAŽ/AlLRQA/AlLHQA/AlLBQA-/AlL;QAO/AlL5QA/AlL 1QAΏ/AlL2QA /AlL6QAV/AlL=QA/AlL@QA/AlLAQA /AlL=QA0/AlL@6QA/AlL&QA/AlL@QA/AlLQAԐ/AlLpQA/AlL QA/AlLQA/AlLQA/AlLӳQA/AlLijQA/AlL]QA/AlL^QA/AlL_QA+/AlL[QA/AlLUQA/AlLPQA7/AlLLQA/AlLHQA/AlL DQA>/AlL`;QAs/AlL2QA/AlL%QA/AlLQA$/AlLQAv/AlLQA/AlL QA/AlL QAy/AlLQA/AlLQA/AlLQA7/AlLQAy/AlL`QAΣ/AlLQAp/AlLQA/AlLQA/AlLQA^/AlLQA/AlLQA/AlLQAԥ/AlLQA/AlL۲QA-/AlLײQA}/AlL ղQAæ/AlLԲQA /AlL ղQA@/AlLҲQAk/AlL`вQA/AlL`ͲQA/AlLʲQA/AlL̲QA/AlLβQA/AlL@ҲQAM/AlL ԲQAժ/AlLֲQAD/AlLٲQA/AlL`ٲQA5/AlL`ӲQAE/AlLҲQA/AlL0ѲQA/AlLвQA/AlL ϲQA-/AlLѲQAX/AlLӲQA/AlL@QA/AlLQAp/AlL QA/AlLQAȮ/AlLQA!/AlLQA/AlL QA/AlL@QA/AlL`QA/AlLQAq/AlLQADZ/AlLQA"/AlLQA^/AlLQADz/AlLQAM/AlLQAӳ/AlLQAw/AlLQAִ/AlL`QA5/AlL QA/AlLQAɵ/AlL"QA/AlL-QA/AlL0QA/AlL5QA/AlL 5QAj/AlL 3QA/AlL@0QA߷/AlL'QA/AlL QAŸ/AlL@QA%/AlLQA5/AlLQA/AlLQA /AlLQA/AlL`QA/AlLQAh/AlL@QA/AlLQAʻ/AlLQA/AlLQA7/AlL QA/AlLQA/AlLQAo/AlL QA/AlL@QA/AlLײQAE/AlLղQAп/AlL@ײQA/AlL@ղQA/AlLֲQAn/AlLղQA/AlLͲQA /AlL`ɲQAQAa/AlL @QA/AlLAQA/AlLBQA /AlLBQAy/AlLDQA/AlLDQA/AlLEQA/AlLFQA/AlLGQAQ/AlLHQA(/AlL KQA?/AlL IQAT/AlL`GQAg/AlL>QAJ/AlL@1QA /AlL'QA/AlLQA/AlL@ QA>/AlL`QA/AlL`QA/AlLQA/AlL`QA^/AlLQAW/AlLޱQA?/AlLӱQA/AlLıQA /AlL@QA*/AlLQA/AlL QA/AlL@QA,/AlLpQA7/AlLcQA{/AlLAQA/AlL`2QA/AlL+QA/AlL)QAk/AlLQA?/AlLQAH/AlLQAY/AlLQAe/AlL@QAp/AlLҰQAn/AlL ŰQA|/AlLQA{/AlLQA/AlLQAH/AlL@QA/AlL`~QA/AlL@cQA/AlL`WQAG/AlLIQA/AlL/AlL֪QA=/AlLѪQA=/AlLΪQA/AlLపQAr/AlL QA/AlLQA/AlLQAC/AlL@nQA"/AlLaQA;/AlL@QQA/AlLFQA/AlL >QA/AlL:QA./AlL 2QA:/AlL@'QA/AlL`QA/AlL QA/AlL@QA/AlLQA{/AlLQAU/AlLQAU/AlL@QAT/AlLQA/AlL@өQAX/AlLͩQA/AlL`ǩQA0/AlLQA/AlLQA/AlLQA/AlLQAK/AlLQA/AlLQA7/AlL`uQA/AlLdQA/AlLMQA/AlL 5QA/AlL@QA/AlLQA/AlLQA;/AlL QA5/AlLݨQA/AlL`ѨQA/AlL`ʨQAU/AlL`ŨQA?/AlLQA/AlLQAi/AlL}QA/AlLqQA /AlL`iQAZ/AlLaQA/AlLfQA/AlLqQA1/AlL`QA/AlLQA$/AlLQA/AlL@QA/AlL̨QA/AlL@بQAQ/AlLQA/AlLQA/AlL@QA/AlL QAz/AlL QA/AlL-QA/AlLQAE/AlLLQA%/AlLSQA/AlL@^QAھ/AlLmQA/AlL |QAu/AlLQA/AlL@QAȽ/AlL@QA/AlLQA>/AlLQA/AlLvQA/AlLtQAA/AlLvQAл/AlL@wQAk/AlLwQA/AlL@xQAw/AlLtQA/AlLmQAι/AlL0gQA/AlL fQA/AlL]QA,/AlLNQA /AlLFQA/AlL>QA2/AlL6QA4/AlL+QA/AlL"QAҸ/AlL QA/AlLQA7/AlLQA/AlL!QA/AlL`'QA/AlL 1QA/AlL`;QAo/AlL@BQAc/AlLLQA /AlLNQA/AlLOQA8/AlL JQAյ/AlLCQA/AlL7QA%/AlL,QAʴ/AlL-QA/AlL 4QAf/AlL;QA=/AlL`@QA/AlLAQA/AlL=QAv/AlL7QA2/AlL4QA/AlL3QA/AlL`5QAR/AlL`8QA /AlL7QAα/AlL4QA{/AlL0QA$/AlL.QA/AlL,QA/AlL`+QAV/AlLP%QAD/AlLQA/AlL@ QA/AlL QAE/AlLQA/AlL QA/AlLQA(/AlL QA/AlL`QA/AlL`۠QA/AlLРQA/AlL@ƠQAh/AlLQA/AlL@QAm/AlL@QAت/AlLࢠQAR/AlL`QA֩/AlL@QA`/AlL@QA%/AlLQA/AlLQA/AlLQAP/AlLQA/AlL`QAç/AlLQAg/AlL QA /AlL`QAĦ/AlL QAn/AlLQAM/AlLQA2/AlLQA/AlLQA/AlLQA/AlLQA$/AlLQA̤/AlL@QAg/AlL`QAjB/AlLPQA//AlLQAa/AlL`~QAɡ/AlL@|QA/AlLsQA/AlL@lQA0/AlL bQA/AlLXQA=/AlL RQA/AlLKQA/AlLDQA/AlLAQAl/AlLGQA./AlLFQA/AlL?QAќ/AlL/AlLQA/AlL@QA1/AlL`QA/AlLQA /AlL@ʟQAĔ/AlLҟQA/AlL`؟QAH/AlL`QA/AlL QA/AlLQA[/AlL QA/AlLQAn/AlLQA/AlLQAr/AlLQA/AlL QA/AlLQA,/AlLQAƎ/AlLQAT/AlL@QAӍ/AlLQAD/AlL@QAՌ/AlL QA/AlLQA\/AlL!QA7/AlL(QAG/AlL`8QA/AlL>QAz/AlLFQA/AlLOQA/AlLVQA/AlLmQAs/AlLmQA2/AlLoQA/AlL`lQA/AlLaQA9/AlLMQA؆/AlL`9QA#/AlL`CQAh/AlLQA/AlLQA/AlLQA/AlLQAۃ/AlLQA׃/AlLQA/AlL"QAv/AlL@,QA#/AlL"QA[/AlL`.QA/AlL`4QA /AlL:QAf/AlL@AQAǃ/AlL HQA#/AlL@PQA_/AlLWQA/AlLbQA/AlLlQAX/AlL`vQA/AlLQA/AlL QAt/AlLQA/AlL QA؆/AlLQA/AlL@QAԆ/AlL ŠQA/AlL@РQA/AlLנQA`/AlLޠQA/AlLQA/AlLQA/AlLQAz/AlL #QA/AlL0QA\/AlL`AQA/AlL@OQA/AlL fQA/AlL uQA/AlL@QA/AlLQA*/AlLডQA/AlL஡QA/AlL`QA^/AlLQA ~/AlL QA|/AlL 2QA{/AlL@PQA{/AlLTQAU{/AlL`IQA{/AlLDQAz/AlL`@QAz/AlL@>QAz/AlL?QAy/AlLQAx/AlL?QA[x/AlL@BQAw/AlL GQAw/AlLKQAv/AlLWQA5v/AlL`QAv/AlLbQAu/AlLiQAAu/AlLrQAt/AlL{QA6t/AlLQAWs/AlLQAr/AlLQAq/AlLQAq/AlL QAq/AlLQAq/AlLQAp/AlL@QAo/AlL QA0o/AlL`QAtn/AlLâQAm/AlLརQAl/AlLâQAl/AlLʢQApl/AlL͢QAk/AlL ϢQAPk/AlLԢQA"k/AlLעQA"k/AlL QA%k/AlLQA1k/AlL@ QA8k/AlL QA;k/AlL@-QAPk/AlL`HQAPk/AlLeQAJk/AlL}QANk/AlL@QARk/AlL QA[k/AlLQAjk/AlLʣQAPk/AlLQATk/AlL QA\k/AlL` QAbk/AlLQAPk/AlL3QA`k/AlL@QA_k/AlLcQAlk/AlLsQAvk/AlLQA{k/AlL QAck/AlLQAIk/AlLQA"k/AlL QAj/AlLpQAj/AlLQA(j/AlLQA#i/AlLQAg/AlLQAf/AlLQAd/AlL`QAb/AlLQA`/AlL@QA_/AlL෤QA[/AlLˤQAZ/AlLˤQAtZ/AlLˤQAY/AlL ѤQAUY/AlLؤQAX/AlLؤQAjW/AlLQAV/AlL`QAU/AlL`QAT/AlL0QA$T/AlL QAR/AlLQAbQ/AlL 1QAP/AlLDQAN/AlL RQAQN/AlLjQA>J/AlLQAJ/AlL'QAbK/AlL+QAK/AlL +QAyL/AlL ,QAL/AlL`2QA"M/AlL@?QA;M/AlL@HQALM/AlL@TQAlM/AlL`fQAM/AlLoQAN/AlL ~QAfN/AlL QAN/AlL`QAzO/AlL`QAO/AlL@QAO/AlL০QAO/AlLQA.P/AlL౦QAtP/AlL@QAP/AlL QAP/AlLQAP/AlLΦQAQ/AlLۦQAm/AlLLQAm/AlL`TQAl/AlL`dQAZl/AlL`|QAk/AlL`QAPk/AlLQAj/AlL̦QAj/AlL QA|i/AlL QAi/AlL#QAh/AlL>QAh/AlLUQAg/AlL mQAg/AlL@QAf/AlL QA6f/AlLQAe/AlL@QAe/AlLQATe/AlLQAe/AlL@QAd/AlL QA d/AlLཧQAc/AlLQAb/AlLQA>b/AlL`QAa/AlLQA`/AlL@QA`/AlL ϧQA`/AlLڧQAa/AlLQALa/AlL`(QA a/AlL`-QA`/AlL0QA|`/AlL`0QA*`/AlL6QA_/AlL:QA_/AlL`HQAv^/AlL RQA]/AlLXQA]/AlL ZQA]/AlL@TQA\/AlLQAP\/AlLQA[/AlL QA[/AlL QAz[/AlLQA[/AlLQAZ/AlLQAZ/AlL "QAZ/AlL$QAY/AlL`%QA[Y/AlL'QA*Y/AlLAQAX/AlL]QAX/AlLpQAX/AlLQAX/AlLQAzX/AlL൨QA[X/AlLɨQAEX/AlLިQACX/AlLQAX/AlLQAW/AlL QAW/AlLQA;W/AlL QAV/AlLQAV/AlLߨQALV/AlLߨQAfU/AlL@ܨQAU/AlL`QAT/AlLQA|T/AlLQAT/AlL QAS/AlL`QA#S/AlL QAR/AlLQAtR/AlLQA-R/AlLQAP/AlLQAP/AlLQAP/AlLQAhP/AlLQAP/AlL QAO/AlL QAO/AlLQAO/AlLԨQAO/AlLQAO/AlLQAO/AlLQAO/AlL`!QAO/AlL$QAO/AlL@2QAO/AlLIQAO/AlL QAO/AlL`QAO/AlL QAO/AlLةQAO/AlL QAO/AlL QAO/AlL+QAO/AlL`QQA9P/AlLkQApP/AlL QAP/AlL`QAP/AlL QA6Q/AlL@ŪQAQ/AlLQAQ/AlLQA&R/AlL QA1R/AlL+QA%R/AlL=QA)R/AlL OQAQ/AlL sQAQ/AlLQAQ/AlLQAQ/AlLQAR/AlL QA&R/AlLQAhR/AlL๫QAS/AlL ЫQA;S/AlL۫QAHS/AlLޫQAOS/AlL@QAS/AlL@QA1T/AlL@ QAT/AlLQAT/AlL'QA2U/AlL3QAU/AlL`MQAU/AlL^QAU/AlLkQAU/AlLwQAU/AlLQAU/AlL`QAV/AlLQA3V/AlLQA8V/AlLŬQAPV/AlL`ҬQAXV/AlL`جQAdV/AlLQAV/AlLQAV/AlLQAV/AlL QA&V/AlL`,QA{U/AlLHQAU/AlL@WQAT/AlL`eQAT/AlL`oQAT/AlLwQAU/AlLQA[U/AlLQAU/AlL@QAU/AlL QAU/AlLQAU/AlL`QAU/AlLQA-V/AlLQA\V/AlL*QAmV/AlL0>QApV/AlLBQAzV/AlL@IQAV/AlLiQAV/AlL QAV/AlLQAV/AlLʮQAV/AlLQAV/AlL#QAV/AlLWQAV/AlLQAV/AlLQAV/AlLQAiV/AlLïQA2V/AlL`ɯQAU/AlLЯQAU/AlLޯQAT/AlL@QAS/AlLQApS/AlLQAST/AlLpQApT/AlLQAT/AlLQA U/AlL.QAYU/AlL`7QAU/AlL DQAU/AlLOQAWV/AlLaQAV/AlLmQAW/AlLyQAbW/AlL@QAtW/AlL؆QAW/AlLQAW/AlLQA&X/AlLQA@X/AlL(QAW/AlLȰQAV/AlL@QA V/AlL@QAVU/AlL QAT/AlL@QAT/AlL 6QAS/AlLEQAR/AlLyQAuR/AlL`QA;R/AlLQAQ/AlLQAQ/AlLQAQ/AlLQA~Q/AlLQAAQ/AlLQAP/AlL QALO/AlL#QA~N/AlLQQAM/AlLtQAM/AlL@QAK/AlL QAhK/AlL βQAJ/AlL@߲QAgI/AlL@QAH/AlLHQAG/AlL pQAF/AlL QAE/AlLQAE/AlL QAC/AlL QAB/AlLʳQAA/AlLxسQAeA/AlLڳQAC@/AlLQA?/AlLQAQ?/AlL`QA>/AlL QA>/AlL`QAt>/AlLQA&>/AlL QA=/AlL QA=/AlL QA=/AlL QA=/AlLQAHc=/AiQA>/AlL(QA2>/AlL8QAX>/AlL`DQA>/AlLRQA>/AlL`WQA>/AlL_QA>/AlLeQA>/AlLkQA>/AlLrQAr>/AlLyQAb>/AlL`QAv>/AlLQA>/AlLQA>/AlL QA>/AlL෴QA?/AlLĴQAF?/AlLδQAw?/AlLڴQA?/AlL@QA?/AlLQA$@/AlL QAp@/AlLQA@/AlL&QA@/AlL@4QA7A/AlLF/AlLQAF/AlL`QAF/AlLQAG/AlLQAwG/AlLQAG/AlLQA!H/AlL@ߵQAH/AlL`ߵQAH/AlL޵QAI/AlL`ڵQAWI/AlL׵QAI/AlL@ٵQA'J/AlLڵQAtJ/AlL@ٵQAJ/AlL`ڵQA)K/AlLݵQAvK/AlLߵQAK/AlLQAK/AlL@QA(L/AlL`QAL/AlLQA M/AlLQAM/AlLQAM/AlL QAjN/AlL QAN/AlL@QAN/AlL@QAO/AlL%QARO/AlL*QAO/AlL+QAO/AlL0QAP/AlL ;QA2P/AlL>QAXP/AlL0?QAlP/AlL`?QAP/AlLBQAQ/AlL @QArQ/AlLBQAQ/AlL`HQA*R/AlLKQAmR/AlLTQAR/AlL^QAR/AlLkQAQS/AlL wQAS/AlL~QA T/AlLQAXT/AlLQAT/AlL QAT/AlL@QAHU/AlL`QAU/AlLྲྀQAV/AlL@ʶQAJV/AlL@ѶQAV/AlL`ضQAV/AlL@׶QAW/AlL ݶQA]W/AlL@QAW/AlLQAW/AlLQAW/AlLQA"X/AlL QAX/AlL QAX/AlL QAY/AlL@QARY/AlL`QAoY/AlLQAwY/AlL%QAzY/AlL.QAY/AlL`;QAY/AlLEQA Z/AlLFQA\Z/AlLFQAZ/AlLIQA[/AlLGQAb[/AlL`IQA[/AlLIQA\/AlLIQAb\/AlLDQA\/AlL@QAD]/AlLDQA]/AlLEQA^/AlL?QAt^/AlL`=QA^/AlLxQA/AlL.xQA2/AlL@ xQAc/AlL@xQA/AlL xQA/AlLwQA/AlLwQA'/AlL@wQA/AlL`wQA/AlLwQA/AlL wQAI/AlLwQAk/AlL wQA/AlLwQA/AlLwQA/AlL`wQA/AlLvwQA#/AlL jwQAS/AlL@`wQA{/AlLUwQA/AlLLwQA/AlLCwQAf/AlL2wQA/AlL@+wQA/AlL$wQA0/AlL wQAn/AlLwQA/AlLwQA/AlL@wQA/AlL wQA /AlL wQA/AlL@vQAO/AlLvQA/AlL vQA/AlL@vQA)/AlLvQA)/AlLvQA/AlL`vQA/AlLvQA/AlLvQAN/AlL`vQA /AlLvQA/AlL@vQA/AlLvQAT/AlL`vQA/AlL`vQA/AlLvQA/AlLvQA/AlLvQA/AlL`vQA/AlL`vQA/AlLvQA/AlLvQA/AlLvvQA/AlL`ovQA/AlLhvQA/AlL]vQA/AlL VvQA/AlLOvQAq/AlL@KvQA2/AlLHvQA/AlLCvQA/AlL@vQA6/AlL@;vQA/AlL@8vQA/AlL3vQA/AlL@-vQA/AlL)vQA/AlL"vQA/AlL`vQA/AlLvQA/AlLvQA#/AlL vQA/AlLuQA/AlL`uQA\/AlL uQA)/AlL uQA/AlL`uQA/AlLuQAY/AlL uQA/AlLuQA/AlLuQA/AlLuQA/AlLuQA/AlL`uQA/AlL`uQA/AlL@uQA/AlL |uQAO/AlLruQAb/AlL cuQAG/AlL@RuQA/AlL EuQA/AlL >uQA/AlL9uQA2/AlL8uQA/AlL7uQAj/AlL 1uQA*/AlL*uQA/AlLuQA/AlLuQA /AlLuQA&/AlLuQAm/AlLtQA/AlLtQA/AlL tQA3/AlLtQAB/AlL`tQA/AlLtQA/AlLtQA/AlLtQA/AlLtQA/AlLtQA/AlLtQAx/AlL{tQA7/AlL`utQA/AlLjtQA/AlLitQAA/AlL`ntQA/AlLutQAH/AlLwtQA /AlLutQA/AlL utQA/AlLotQAB/AlLdtQA/AlL[tQA/AlL StQA/AlLHtQA/AlL=tQA/AlL1tQAz/AlL`'tQA(/AlL#tQA/AlL@(tQA/AlL)tQAj/AlL'tQA./AlL@#tQA/AlL`tQA/AlLtQAL/AlLtQA/AlL@tQA/AlLtQA8/AlL$tQA/AlL.tQA/AlL4tQA-/AlL >tQA/AlLFtQAS/AlLQtQA/AlL`ZtQAj/AlL_tQA2/AlL^tQA/AlLVtQA/AlLEtQA(/AlL7tQAH/AlL/tQAY/AlL&tQA4/AlLtQA/AlL tQA/AlLsQA/AlLsQA/AlL sQA/AlLpsQA/AlLsQA@/AlLsQA/AlLsQA/AlL sQA/AlLsQA0/AlL sQA/AlL`sQA/AlLsQAA/AlLsQA/AlLsQA/AlL@sQA/AlLtQAU/AlL tQA/AlL tQA/AlL0tQA[/AlL tQAY/AlL`sQAl/AlL@sQAj/AlL`sQA1/AlL`sQA/AlL`sQA/AlLsQAH/AlLsQA/AlLsQA/AlLsQA/AlLsQA/AlL`sQAT/AlLsQA/AlL@sQA/AlLsQA/AlLsQA/AlL sQA/AlL`sQA/AlLsQA/AlLsQA\/AlLsQA/AlL sQA/AlLsQA/AlL sQA/AlLsQA=/AlL sQA/AlL@sQAy/AlLsQAF/AlLxsQA/AlLlsQA/AlLPgsQA/AlL dsQA/AlL@YsQA~/AlLMsQAE/AlL@AsQA/AlL5sQA/AlL@.sQA/AlL(sQA/AlL &sQA1/AlLsQA/AlLsQA/AlL sQAm/AlL`sQA/AlL rQA/AlL rQA'/AlLrQA/AlL rQAP/AlL`rQA%/AlLrQAؾ/AlL@rQAl/AlL`rQA@@/AlLPrQA*/AlLrQA/AlLrQA/AlL}rQA/AlL|rQA?/AlLxrQA̻/AlLnrQA/AlLarQA/AlL RrQA/AlL FrQA/AlL:rQA/AlL*rQAL/AlLrQA/AlL"rQA/AlL$rQA/AlL`-rQAQ/AlL6rQA/AlL|/ACnQAgg/ARI/A3 mQA$R/AVs1 mQAȄ⪆/A8mQA8*"/A]6mQAMB/A*mQA R /A24`mQA A}/A*mQA(Q/A* mQAhRQs/Ax,.mQA/A*mQAȍᰂ/A/mQA6QW/A]6`mQAQ/A|9mQAề/Ax,.`mQA Av/A3mQA/A*mQAya/A|9mQAXrA/A|9mQAA/A|9@mQA6QB/A*mQAXrA~/AVs1mQAx;A^~/A24mQAHlQ ~/A|9mQAQ}/A/`mQA?EQ}/A]6@mQAK<}/A*mQAQ }/A.B)nQA s|/A*nQA +Q|/A24nQA X_|/Ax,. nQAV@|/A24 nQAh[RQ{/Ax,.@!nQAЖ1{/Ax,.nQA0QK{/A.B)nQA @{/A]6 nQAE{/A(RnQAXGkz/AX :[nQAQz/Ax,.@)nQAPPLz/A/4nQA +Q-z/AVs1:nQAQy/AVs1:nQA +Qy/A/=nQAh[RQyy/A8?nQAhdPFy/A24@nQAxD y/A ,@BnQA_x/A8`CnQA_jx/A24@nQAHPx/A|9>nQA +Qw/A/=nQA`hw/A]6 >nQAH#w/AVs1;nQA(@v/A]6;nQAП@(v/A24 ?nQAhu/AVs1 AnQAPPu/AVs1DnQAPMu/A8InQAHPu/A.B)QnQAPt/A ,`nQAxM@jt/A ,tnQA(lt/Ax,. znQAБs/Ax,. nQARYP1s/A ,`nQA6LPr/A24nQAΘepr/A(;nQAb \r/AuբnQAq/AlL@nQAuq/AlLnQASq/AlL`nQAbq/AlLnQA?q/AlL`nQAp/AlL@oQAEp/AlL&oQAo/AlL`3oQA;o/AlL8oQAWn/AlL`AoQAn/AlLEoQAm/AlL`RoQAcm/AlL@eoQAm/AlL@{oQA m/AlLoQA4m/AlLoQAdm/AlLoQAgm/AlLoQAem/AlL`oQAlm/AlLoQAzm/AlLoQA|m/AlLoQAZm/AlL@oQAm/AlL pQAl/AlLpQAVl/AlL@QpQAXl/AlLfpQAJl/AlL~pQAUl/AlL pQAol/AlLpQAl/AlL@pQAFl/AlLpQA-l/AlLpQA6l/AlL pQAQl/AlL`pQAl/AlLpQAl/AlLpQA8Cm/A9pQAzm/AlLpQAm/AlL@qQA)n/AlL`qQA^n/AlL qQAXn/AlL@ qQAHn/AlL@qQA#m/AlLqQA'l/AlL@/AlLxQA/AlL@ xQA/AlLxQAҌ/AlLxQA/AlL$xQA/AlL,xQA/AlL6xQAr/AlLAxQA]/AlLMxQAA/AlL _xQAe/AlLnxQAw/AlL@yxQA/AlL xQAŌ/AlL@xQA/AlLxQAQ/AlLxQA/AlLxQA/AlLxQA/AlL xQAC/AlL xQA/AlL xQA/AlL`xQA8/AlLxQAl/AlL@xQAǏ/AlLxQA/AlLxQAj/AlL`xQA/AlLxQA/AlLxQA/AlLxQA(/AlL xQA/AlLxQA/AlLxQA~/AlLxQA/AlL xQAv/AlL`xQA/AlLxQA?/AlLxQA/AlLxQA /AlLxQAm/AlLxQAѕ/AlLxQA/AlLxQA%/AlL xQAv/AlLxQAۖ/AlLxQA'/AlLxQA/AlLxQA/AlLxQA[/AlLxQA/AlLxQAK/AlL xQA/AlLxQA/AlL xQAs/AlL xQA/AlLxQA;/AlLxQAm/AlLxQA/AlL@xQA/AlLxQA3/AlLxQAc/AlL`xQA/AlLxQA/AlLxQA*/AlLxQA`/AlL@xQA/AlLxQA՝/AlLxQA/AlLxQA/AlL@xQAK/AlL xQAa/AlLxQAd/AlLxQAd/AlLxQA/AlLxQA/AlL`xQA/AlL xQA/AlL`xQA9/AlL xQA/AlLxQA/AlLxQA9/AlLxQA/AlL xQA/AlLxQA/AlL@~xQA/AlL {xQAs/AlL`wxQA/AlLexQAǢ/AlLixQA /AlL`gxQAF/AlLexQA/AlL exQA/AlLfxQA/AlLexQAH/AlLbxQA/AlL _xQA/AlL_xQAp/AlLaxQA/AlL cxQA!/AlLexQAy/AlL`ixQAĦ/AlL@gxQA7/AlL@dxQA|/AlL`cxQA/AlL bxQA/AlL`xQA3/AlL \xQAb/AlLWxQA/AlLWxQA/AlL@^xQAE/AlL_xQA/AlL_xQA/AlL^xQA$/AlL _xQAZ/AlL`xQAժ/AlLbxQA/AlL`xQAV/AlL@_xQA/AlL[xQA/AlLWxQA,/AlL SxQA/AlLMxQAج/AlLIxQA/AlLGxQAT/AlLCxQA/AlL>xQAҭ/AlL:xQA/AlL@6xQA2/AlLP4xQAI/AlL3xQA/AlL0xQA/AlL.xQA/AlL@/xQA8/AlL 0xQAn/AlL0xQAɯ/AlL`/xQA /AlL -xQAxQA./AlLDxQA/AlLLxQA/AlL`WxQA/AlL^xQA/AlLaxQAa/AlL YxQAİ/AlLTxQA/AlLOxQAF/AlLNxQAx/AlLNxQA/AlL`MxQA"/AlLLxQAS/AlLKxQA/AlLLxQA/AlLOxQAX/AlLOxQA/AlLSxQA/AlL@VxQAr/AlLZxQA/AlL@]xQAk/AlL`xQA޵/AlL@cxQA"/AlL`cxQA\/AlLdxQA/AlLexQA/AlLgxQA9/AlL@gxQAj/AlLhxQA·/AlL@hxQA/AlLixQAQ/AlLnxQA/AlLpxQA/AlLxQA,/AlLxQA~/AlLxQA/AlLxQA/AlLxQAĺ/AlLxQA%/AlLxQAm/AlL xQA޻/AlLxQAD/AlLxQA/AlLxQA/AlL`xQAI/AlLxQA/AlL@xQA/AlL QAs>/AlL@QA>/AlL@QA?/AlL`QA}?/AlLQA@/AlL`QAx@/AlLQA@/AlL QAZA/AlLQAB/AlL`QAB/AlLQAB/AlLQATC/AlLQAC/AlLQAC/AlLQA%D/AlL QAoD/AlLQAkD/AlLQAjD/AlLQAgD/AlLQAdD/AlLQAhD/AlL QAvD/AlL@QAD/AlLQAD/AlLQAD/AlLQAvD/AlLQA?D/AlLQAC/AlL QAUC/AlL|QAB/AlLuQAA/AlL nQA@/AlLhQA$@/AlL eQA~?/AlLcQA>/AlLbQA=/AlL bQAp=/AlL@aQA=/AlL_QA%/AlL_QA$/AlL\QA$/AlL^QA?$/AlLkQA$/AlLtQA$/AlL~QA#/AlL@QA}#/AlL QA1#/AlLQAx"/AlL@QA^"/AlLQAN"/AlLzQA6"/AlL@tQA"/AlLmQA!/AlLfQA!/AlL@_QA!/AlLWQA"/AlLOQA-"/AlLFQA^"/AlL=QA"/AlL 4QA"/AlLp/QA"/AlL-QA"/AlL 'QA"/AlLQA"/AlL@QA"/AlL@ QA"/AlLQA"/AlLQA{"/AlLQAO"/AlLQA"/AlLQA!/AlLPQA!/AlLQA!/AlLQAe!/AlL`QA4!/AlL QA!/AlLQA /AlLQA /AlL QAe /AlL@QA /AlLQA/AlL@QA/AlL QA/AlLQA/AlLQA/AlL QA /AlL@QA5 /AlLQAE /AlL@QAK /AlLQAM /AlLQAP /AlLQAQ /AlLPQAQ /AlLQAH /AlL@QA> /AlLQA /AlLQA/AlLQA/AlL~QA/AlL@vQA/AlLrQAh/AlL@kQAU/AlL eQA8/AlL[QA(/AlLQQA/AlL@FQA/AlL0QA/AlLP*QA/AlL'QA/AlL#QA/AlL!QA/AlL`QA/AlL QA3/AlLQA/AlLQA/AlLQAS/AlLQA;/AlL@QA;/AlLQAH/AlL`QAZ/AlL@QAv/AlL QAn/AlL@QAU/AlLvQA,/AlLlQA/AlLbQA/AlL@UQAb/AlL GQAK/AlL=QA4/AlL0QA+/AlL@)QA(/AlL&QA5/AlLQA6/AlLQA#/AlL QA/AlLQA/AlLQA/AlLQA/AlLQA/AlLQA/AlL@QAm/AlL QA\/AlLQAV/AlL QAH/AlLQAH/AlLQAm/AlLQA/AlL wQA/AlLhQA/AlLXQA/AlLPQA/AlLHQA/AlL BQA/AlL8QA/AlL@*QA/AlLQA/AlLQA2/AlLQA/AlLQA/AlLQA/AlL`QAw/AlLۿQA7/AlL׿QA/AlLԿQA/AlLϿQA/AlL ʿQA/AlL¿QAf/AlL@QA/AlL೿QA/AlL QA/AlLQA!/AlLQA /AlL}QA/AlLhQA/AlLdQA/AlL`QA/AlLPQA/AlLAQA/AlL0QAf/AlL"QAB/AlL`QA/AlL QA/AlLQA/AlLQA/AlLQA}/AlLվQAx/AlL̾QAx/AlL¾QAy/AlLQA/AlLvQAF/AlLeQA /AlL hQA/AlL@hQA/AlL gQA5/AlL`QA/AlLUQA /AlLNQA /AlL`DQA /AlL`9QA /AlL@/QA /AlL@&QA /AlLQA /AlLQA~ /AlL QAO/AlLڽQA/AlL`۽QA/AlLڽQA/AlLսQAK/AlLѽQA/AlLνQA/AlL̽QA!/AlLǽQAh/AlLĽQA/AlL QA/AlL@QA/AlL QA/AlLQAx/AlL`QA/AlLQA/AlLQA /AlLQA/AlLhQA/AlL|QA/AlLyQA/AlLpQA/AlL`hQAr/AlL`aQAc/AlLYQAc/AlLPVQAe/AlLMQAm/AlLGQA/AlL`AQA/AlL ;QA/AlL`6QAB/AlL1QAq/AlL/QA/AlL,QA/AlL)QA/AlL`$QA/AlL@QA/AlLQA/AlL QA/AlLQA/AlL QA/AlLQA/AlLQA/AlL`ԼQA/AlL˼QA/AlL`ļQA7/AlL QA>/AlL@QA-/AlL QA'/AlLQA/AlLQA/AlLvQAr/AlL@jQAA/AlL@`QA /AlLSQA/AlLKQA/AlLHQA/AlLEQAk/AlL =QA;/AlL.QA/AlL QA/AlLQA/AlL0QA/AlL@QA/AlLڻQA/AlLѻQA(/AlL ɻQA/AlLɻQA]/AlLȻQA/AlL`ʻQA/AlLʻQA/AlLȻQA/AlLŻQA/AlL@QA/AlL஻QA/AlL`QA/AlL@QA/AlLQAO/AlLQA/AlLQA_/AlLyQA/AlL pQA/AlLdQA/AlL[QA./AlLOQA /AlLHQA/AlL@QA/AlL8QA/AlL@4QA/AlL ,QA/AlL$QA/AlLQA;/AlLQA/AlLQA}/AlL@QAD/AlLpQA:/AlLQA/AlLܺQA /AlL˺QA/AlL`QA/AlL@QA/AlL`QA /AlLQA/AlLQA/AlL@QA/AlL ~QAq/AlLPxQA2/AlL`pQA#/AlLoQA/AlLmQA/AlL@oQA/AlLrQA/AlLPvQA/AlLxQAo/AlL~QA`/AlL QA4/AlL QA/AlL`QA/AlLQAe/AlL`QA)/AlLQA/AlLQAu/AlL@QA4/AlLQA/AlLQA/AlL QA/AlLQA/AlLQA;/AlL~QA/AlLtQA/AlLiQA/AlLcQA$/AlL^QAk/AlLTQA/AlL@GQA/AlL=QA|/AlL3QAR/AlL&QA/AlLQA/AlLQAV/AlLPQAJ/AlLQA/AlLQA/AlLQAu/AlL`۹QAq/AlLԹQA/AlLQA/AlL QA/AlL`QA/AlL`QA+/AlLQAB/AlLQA%/AlLQA/AlLQA/AlL`QAb/AlLQA0/AlL QA/AlL@QA/AlLQA/AlL@QAn/AlLQA:/AlL@QA /AlLQA /AlL QA{ /AlL|QAS /AlL@tQA8 /AlLnQAW /AlLbQAi /AlLXQA /AlL@KQA /AlL@>QA /AlL@7QA /AlL/QA3/AlL(QAN/AlLQA /AlL`QA /AlLpQA /AlLQA /AlL`QA /AlL QA /AlL`QA /AlLQA /AlL׸QA /AlL ̸QA /AlLĸQA /AlL@QA8 /AlL@QAL /AlLQAZ /AlL`QAh /AlLQAj /AlL QAh /AlLQA /AlL@tQA /AlL@nQA /AlL eQAz /AlL@_QA% /AlL `QA /AlL]QA /AlLZQA5 /AlL`VQA /AlLOQA /AlL@QA /AlL1QA /AlL`-QA /AlL'QA /AlL`QAN /AlL@ QAw /AlLQA /AlLQA /AlL QA /AlL@QA /AlL۷QA /AlLзQA /AlL0ƷQA /AlL ·QA /AlLQA /AlL୷QAgT| /A\XQAt /AlLQAj /AlL QA /AlLQA /AlL QA7 /AlL࠷QAf /AlL৷QA: /AlLQA /AlL@QA /AlLQA /AlL@QA /AlLQA /AlLrQA /AlLeQAx /AlLUQA] /AlLHQA /AlL/QA/AlLQAt/AlL`QA/AlL@QA/AlLQA/AlLQA>/AlLQA/AlLQA/AlL!QA/AlL"QA/AlLQA/AlLQA@/AlL QA/AlLQA/AlL@QA/AlLQA/AlL@۶QA/AlLͶQA/AlL`ƶQAz/AlL QAu/AlLQAh/AlL`QA,/AlLQA/AlLQA/AlLQA/AlL QA]/AlL~QA/AlLyQA/AlLrQA/AlLeQA/AlL]QA/AlLUQA/AlL@JQA)/AlLBQAm/AlL@;QA/AlL4QA/AlL+QA/AlL@%QA/AlLQA%/AlLQAN/AlLQA/AlL QA/AlLQA/AlL@QA/AlL`QA/AlLQA/AlLQAt/AlLߵQA)/AlL۵QA/AlL`׵QA/AlLԵQAG/AlLϵQA/AlLǵQA/AlLŵQAt/AlLõQA./AlL õQA/AlLPQA/AlLQA|/AlL@QAQ/AlL೵QA1/AlLQA /AlL`QA.AlL QA.AlLQA.AlLQA!.AlL@QA.AlLQA.AlLQA.AlLzQA.AlLkQA.AlLeQA.AlL`\QA.AlLUQA?.AlLKQA8.AlL@;QAN.AlL 1QA.AlL*QA.AlL#QA .AlLQA[.AlLQA.AlL QA.AlL QA.AlLQA(.AlL`QAb.AlL`QA.AlL`QA.AlL@޴QA.AlLʹQA.AlL࿴QA.AlL@QA.AlL QA//AlLQAX/AlL@QAc/AlLQAd/AlL@QAX/AlLQA&/AlL|QA.AlLzQAb.AlL{QA .AlL@{QA.AlL@xQAT.AlL0uQA'.AlL sQA.AlLqQAa.AlL@qQA.AlLrQA.AlL uQA%.AlLuQA.AlLrQAx.AlL@qQA.AlLmQA.AlLjQAc.AlLeQA!.AlL YQA.AlLQQA.AlLKQA}.AlLFQAJ.AlL@?QA'.AlL8QA .AlL3QA.AlL`.QA.AlL&QA.AlL QA.AlLhQA.AlL` QA.AlL QAl.AlL@QAg.AlLQA].AlL@QA_.AlL@QAz.AlL ٳQA.AlLӳQA.AlLͳQA .AlLɳQA^.AlLƳQA.AlLQA.AlLQAX.AlL QA.AlL`QA.AlLQA\.AlL@QA.AlLQA.AlL`QA.AlLQA.AlL{QA.AlLqQA.AlL@eQAn.AlLdQA.AlL``QAm.AlL `QA.AlL`QA.AlL[QA.AlLTQA.AlLNQA.AlLFQA.AlL7QAj.AlL(QA.AlL@QA.AlLQA.AlLQA.AlL@زQA.AlL`ʲQA.AlL`QA.AlLQA.AlL`QA8.AlLQAY.AlLQAw.AlL@QA.AlLIJQA.AlLβQA.AlLزQA.AlLݲQA(.AlL@޲QA.AlLڲQA.AlL ֲQA.AlLҲQA:.AlLβQAy.AlLʲQA.AlLɲQA.AlLɲQA .AlLŲQA).AlLQA7.AlL QAB.AlLQAB.AlLQA2.AlLQA.AlLQA.AlLhQA.AlLZQAs.AlL IQAb.AlL;QA[.AlL@0QA.AlL"QA.AlLQA^.AlLQA%.AlLQA.AlLQAr.AlLQA%.AlL ۱QA.AlLֱQA+.AlL`αQA.AlLɱQAu.AlLQA.AlLQAi.AlLQA.AlLQA.AlLrQA.AlL@cQAz.AlL VQAd.AlLIQA.AlL[QA.AlLaQA.AlLrQA.AlL{QA:.AlLQA.AlL`QA.AlL QA3.AlL QA.AlLQAx.AlLQA7.AlL@QA.AlLQA .AlLQAd.AlLñQA.AlL ˱QAj.AlLұQA.AlL QA.AlL`QA+.AlLQA.AlLQA.AlLQA.AlLQA<.AlL@QA.AlL@&QA.AlL@0QAG.AlL@:QA.AlL@GQA.AlLYQA .AlLdQA.AlLhQA.AlLuQA..AlLQAM.AlLQA.AlL@QA,.AlLQA.AlL`QA .AlLQA.AlLQA.AlLQA.AlL QA6.AlLາQA.AlL QA.AlLQA{.AlL²QA.AlLȲQA.AlL˲QA.AlLҲQA.AlLڲQA=.AlLQA.AlL@QAm.AlL QA.AlLQAE.AlLQA.AlL QA.AlL QA;.AlL !QA.AlL+QA.AlL`3QAB.AlL@6QA.AlL?QA.AlLDQAK.AlLNQA.AlL[QA.AlL`dQA.AlL{QAs.AlLQA.AlLQA,.AlLQA.AlLQA.AlL`óQAk.AlL`̳QA5.AlL гQA.AlL@ֳQA.AlL޳QA3.AlLQA.AlLQA.AlL`QAc.AlLQA2.AlLQA.AlL QA.AlL`QAP.AlL QA .AlL`*QA.AlL0QA.AlL 7QAN.AlL@QA .AlLCQA.AlLFQAa.AlL LQA.AlLOQA.AlLVQA.AlL`QAK.AlLhQA .AlLoQA.AlL@{QA.AlL QA.AlL`QAc.AlL࠴QA.AlL`ôQA.AlLдQA.AlL@ݴQA.AlLQA.AlLQA_.AlL޴QAK.AlL@״QA;.AlLȴQA!.AlLQA.AlL`QA.AlLQA.AlLQA.AlLnQA.AlL[QA.AlLEQA.AlL7QA.AlL`*QA.AlLQA.AlL` QA.AlL`QA.AlLQA,.AlLسQAH.AlL@˳QAe.AlLQA.AlL`QA.AlL QA.AlLQA.AlLQAn.AlLQA:.AlL{QA).AlLzQA .AlLxQA.AlL@wQA Qd.A*[uQA.AlLp~QA`.AlLQA3.AlLQA.AlLQA.AlLQA.AlLQA.AlLQA.AlLQA.AlLQAs.AlL ³QAT.AlLdzQA+.AlL̳QA .AlL@гQA.AlLճQAd.AlLڳQA.AlL@QA.AlLQA.AlL QAO.AlLQA.AlLQA.AlLQA.AlLQAD.AlLQA.AlLQA.AlLQA.AlL` QAF.AlLQA.AlL QA.AlL(QAU.AlL,QA .AlL`2QA.AlL@;QA.AlLEQA.AlLKQAH.AlLVQA.AlL`^QA.AlLmQA.AlL`{QA.AlLQAw.AlL`QAf.AlL QAw.AlLQA.AlL QA.AlLQA}.AlL@QA4.AlLдQA.AlLٴQA.AlL`ݴQA~.AlLQAg.AlL@QAV.AlLQAF.AlL QA.AlL`QA.AlLQA;.AlL`QA.AlLQAU.AlLQA.AlL`QA.AlL QAt.AlLQA>.AlLQA.AlLQAļ.AlLQA!.AlLQAۻ.AlL!QA.AlL $QAH.AlL0QA/.AlL`8QA&.AlL@AQA.AlL@LQA.AlLYQA.AlLeQA.AlLqQA.AlL~QA.AlLQA.AlLQA.AlL@QA.AlL@QA..AlLQAd.AlLQA.AlLȵQAֻ.AlLϵQA.AlL`յQA<.AlL`۵QAt.AlLߵQA.AlLQA.AlLQA.AlLQA.AlLQAƼ.AlLQA̼.AlL`QA.AlL QA.AlL&QA.AlL`3QAü.AlL8QA.AlL@=QA!.AlL DQA6.AlLMQAH.AlLWQA;.AlL]QA,.AlL bQA".AlLiQA.AlL sQA .AlL{QA.AlLQA.AlLQA .AlLQA .AlL@QA.AlLQA.AlL`QA.AlLQAټ.AlL`QAɼ.AlLQAͼ.AlLQA.AlLŶQA.AlL˶QA.AlL@ӶQA.AlLܶQA.AlLQA.AlLQA.Az3QA.AlLQA:.AlL QA.AlLQA.AlLQAG.AlLQA.AlL QA۾.AlL@QA.AlL@"QA@.AlL )QAf.AlL 4QA.AlL>QA.AlLEQA;.AlL NQA}.AlLVQA.AlL[QA8.AlL``QA.AlLhQA.AlLlQA7.AlLwQA.AlLyQA.AlL{QA?.AlLyQAf.AlLQA.AlLQA.AlL@QA.AlL`QA.AlLQA/.AlL QA@.AlLషQAQ.AlLQAm.AlLȷQA.AlLͷQA.AlL ҷQA.AlLзQA.AlLϷQAA.AlLԷQA\.AlL@۷QA[.AlL`QA7.AlL@QA".AlL`QA.AlLQA.AlLQA.AlL`QA.AlL QA.AlLQA.AlLQA.AlL "QA.AlL`.QA0.AlL 4QAV.AlL@;QA.AlL=QA.AlLCQA.AlLMQA.AlL]QA.AlLdQA_.AlLoQAI.AlLwQAL.AlL QA\.AlLQAX.AlLQAF.AlLQA6.AlL`QA,.AlLQA!.AlLQA).AlL`ŸQA1.AlL͸QAH.AlLٸQAM.AlL߸QAT.AlLQA.AlL`QA.AlL`QA.AlLQA:.AlLQAT.AlL QAd.AlLQAj.AlL@!QA^.AlL*QAU.AlL:QAG.AlL`IQA).AlL@TQA.AlL cQA.AlL iQA.AlLnQAO.AlLqQA .AlL`sQA.AlL@xQAu.AlL@QA9.AlLQA.AlL@QA.AlL@QA.AlLQA.AlL QA.AlLǹQAa.AlLѹQAI.AlL`߹QAR.AlLQAz.AlL`QA.AlLQA.AlL QA.AlL@QA.AlL$QAp].AlL+QA.AlL 3QA.AlL9QA.AlL @QA.AlLDQA .AlLFQA1.AlL`JQA_.AlL`MQAg.AlLUQA].AlL[QAy.AlLdQA.AlLkQA.AlLpQA.AlL`vQA.AlL|QA.AlL@QA.AlL`QA.AlLQA.AlLQAr.AlLQAI.AlL QA#.AlLQA.AlLQA.AlL`QA.AlL@غQA.AlLQAU.AlL`QA.AlLQA.AlLQAo.AlLQAR.AlL@QA.AlLQA.AlL@QA.AlLQA.AlLQA.AlL!QA.AlL&QA].AlL6QAT.AlL ;QAc.AlL EQAf.AlLJQA?.AlL`PQA.AlLGQA.AlL:QA.AlL6QAW.AlL6QA.AlL 8QA.AlL@9QAl.AlL>QAG.AlL`CQA.AlL MQA5.AlL@TQA\.AlL`ZQA[.AlL_QA0.AlL bQA.AlL aQA.AlLaQA.AlL lQAf.AlL`uQAa.AlL@}QA.AlL`QA.AlLQA.AlLQAd.AlLQA.AlLQA.AlLQAԽ.AlLQA.AlL QA.AlL୻QA .AlLQA.AlLQA.AlL»QA4.AlL@ϻQA.AlLֻQA.AlL޻QA$.AlLQAI.AlL`QA^.AlLQAf.AlLQAV.AlL QA.AlL`QAp.AlL QAc.AlL@QAr.AlLQAv.AlLQA9.AlL`'QA.AlL)QAȻ.AlL ,QA.AlL6QA.AlL:QA.AlL@QAk*.AlL`NQA.AlLRQA}.AlL@VQAļ.AlL XQA.AlL XQAD.AlLUQA.AlLQQAƽ.AlL`WQA.AlLZQAU.AlLZQA.AlL\QA.AlL _QA.AlLaQAg.AlLeQA.AlL`iQA޿.AlLmQA'.AlL@uQAt.AlLzQA.AlLQA .AlL QAp.AlLQA.AlLQA.AlL@QAD.AlLQAz.AlLQA.AlLQA.AlLQAP.AlLࡼQA.AlLQAF.AlL௼QAc.AlLQA.AlLQA.AlLQAP.AlLQA.AlL QA.AlL QA.AlL QAL.AlLüQA.AlLżQA.AlL żQA2.AlLżQA.AlLļQAm.AlLʼQA.AlLʼQA.AlLżQAs.AlLüQA.AlLǼQA.AlLͼQA.AlLҼQA.AlL`ռQA\.AlL ׼QA.AlL`ּQA.AlL@ռQAP.AlLӼQA.AlLѼQA.AlL߼QA.AlLQA.AlL@QA.AlL QA.AlLQA.AlLQA.AlL#QA.AlL0QA{.AlL.AlL=QAj.AlL`:QAv.AlL3QA`.AlL`+QAz.AlL`"QA.AlL#QA.AlL%QA2.AlL8'QA9.AlLp%QAG.AlL!QA2.AlLQA.AlLQA.AlL@ QA.AlL@QA.AlLQAZ.AlLQA.AlLQA.AlL`QA.AlLۼQA!.AlL`ּQAQ.AlL̼QA.AlL࿼QA.AlLQA.AlLQA0.AlL QAj.AlLQAp.AlLkQAx.AlL ZQA.AlL IQA}.AlLQA.AlLNQAr.AlLfQA.AlL ~QA.AlLQA%.AlLQAS.AlL˽QAz.AlL@ݽQA.AlLQA.AlLQAf.AlL QA.AlL"QA.AlL1QA.AlL@?QA.AlLJQA4.AlL@]QA.AlLlQA .AlL }QA.AlL QA.AlLQA.AlL@QA.AlL¾QA^.AlL@ξQA.AlL۾QA.AlLQA..AlLQA.AlL@QA.AlL@QA".AlL QAb.AlLQA.AlL'QA2.AlLQAI0AlL@QAI0AlLDQAJ0AlL@IQAJ0AlLHQA+J0AlLHQA1J0AlLGQAQ0AlLQAQ0AlL@QAR0AlL@QAjR0AlLPQAX0AlLpQAX0AlLpQAVX0AlL`QA@V0AlL`QAXY0AlL@DŽQAgY0AlL tQA@rY0AlL GQAtY0AlL;QAqY0AlL .QA_Y0AlL&QALY0AlL QA2Y0AlLQA@(Y0AlLQA%Y0AlL`QA@Y0AlLQAY0AlL`QAX0AlL`QAX0AlL`QAX0AlL QAX0AlLփQAGX0AlLăQAX0AlLQAW0AlLQA@W0AlL QApW0AlL@QA@UW0AlLQA W0AlLyQAV0AlLpQA@uV0AlL@iQA&V0AlLbQA@U0AlL`[QAU0AlL`RQA0U0AlLKQAT0AlLEQAT0AlL@QAhT0AlL;QA+T0AlL5QAS0AlL(QA\S0AlLQAR0AlLQA@{R0AlLQA'R0AlLQAQ0AlLQAuQ0AlL݂QA2Q0AlL ԂQANP0AlLQA@O0AlLQAN0AlL`ǂQA@N0AlL@ςQA@N0AlL߂QAYN0AlLQA+N0AlL@߂QAM0AlLقQA@M0AlLӂQA@M0AlLЂQAnM0AlLׂQA^M0AlL݂QALL0AlL`QAJ0AlL QAZJ0AlL@ZQAJ0AlL8]QAI0AlL qQAkI0AlLQARI0AlLQA@I0AlLQAH0AlLQA7C0AlL@QAA0AlLQQAA0AlL eQAA0AlL tQAA0AlL`QAA0AlLQAA0AlL@QAA0AlL QAA0AlLƃQA_A0AlL ՃQAA0AlL@QA@0AlLQA@@0AlL QA@0AlL@QA@0AlL9QA?0AlLNQA@?0AlLYQA?0AlLqQA>0AlL`̈́QA>0AlLȄQAy>0AlLQA">0AlL@QA=0AlL੄QA=0AlLQA@{=0AlL`QA@;=0AlLQA=0AlLQA<0AlLQA<0AlL|QA@<0AlLQA<0AlL@QA<0AlLQA*=0AlLQA=0AlL,QA=0AlLeQA0>0AlLQA^>0AlLQA>0AlLۅQA@>0AlL݅QA@d>0AlL݅QA8>0AlLQA >0AlLQA=0AlLQA=0AlLQAz=0AlLQA@Q=0AlLQA#=0AlLQA<0AlLQA@<0AlLQA~<0AlLQAI<0AlLQA<0AlLQA;0AlL@QA;0AlL QA;0AlLQA;0AlL$QA;0AlL@{QA<0AlLzQA>0AlL@;QA>0AlL`QA>0AlLQA@ ?0AlLQAA0AlLyQA@A0AlL}QAA0AlL@QA0AlLQA8>0AlLQA@d>0AlL݅QA@>0AlL݅QA>0AlLۅQA^>0AlLQA0>0AlLQA=0AlLeQA=0AlL,QA*=0AlLQA<0AlLQA<0AlL@QA@<0AlLQA<0AlL|QA<0AlLQA=0AlLQA@;=0AlLQA@{=0AlL`QA=0AlLQA=0AlL੄QA">0AlL@QAy>0AlLQA>0AlLȄQA>0AlL`̈́QA?0AlLqQA@?0AlLYQA?0AlLNQA@0AlL9QA@0AlL@QA@@0AlL QA@0AlLQAA0AlL@QA_A0AlL ՃQAA0AlLƃQAA0AlL QAA0AlL@QAA0AlLQAA0AlL`QAA0AlL tQAA0AlL eQAA0AlLQQA7C0AlL@QAH0AlLQA@I0AlLQARI0AlLQAkI0AlLQAI0AlL qQAJ0AlL8]QAZJ0AlL@ZQAJ0AlL QALL0AlL`QA^M0AlL݂QAnM0AlLׂQA@M0AlLЂQA@M0AlLӂQAM0AlLقQA+N0AlL@߂QAYN0AlLQA@N0AlL߂QA@N0AlL@ςQAN0AlL`ǂQAO0AlLXQAM0AlLRQAL0AlLNQAL0AlL`EQAAL0AlL =QAK0AlL&QA6K0AlL@QA@J0AlL QA/J0AlL@QAI0AlL@QA@\I0AlL@QACI0AlL@ށQAH0AlLҁQAH0AlL@QAAH0AlLQA@cG0AlL^QAYG0AlLVQAF0AlL@8QA@F0AlL$QAF0AlLQAsF0AlL QAOF0AlL QA2F0AlLQAF0AlL QAE0AlL`QAE0AlL߀QA@gE0AlL ׀QA(E0AlLπQA E0AlL΀QAD0AlLŀQAD0AlL`QA@0D0AlLQA@C0AlLQAeC0AlLQAC0AlL@QA@B0AlL`}QAA0AlLrQAXA0AlLXQA@0AlL;QA@?0AlLQAd?0AlL@ QA@'?0AlLQA>0AlLQA>0AlLQA>0AlLQA>0AlLQA=0AlL#QA@=0AlL/QA=0AlL:QAo=0AlL?QA<=0AlL`FQA=0AlLJQA@<0AlLNQA<0AlL@PQA<0AlLpOQA@<0AlLLQA@u<0AlLKQAJ<0AlLJQA<0AlL`PQA;0AlL@QAf;0AlLQA9;0AlLQA@;0AlL@QA:0AlLÀQA@:0AlL ӀQA@e:0AlLQAY:0AlLQA9:0AlLQA@:0AlLQA:0AlL@QA90AlLQA@90AlLQA90AlLQA90AlLQA}90AlL`9QAN90AlL@IQA290AlLSQA@90AlL`ZQA80AlL[QA80AlLZQA80AlLVQA50AlLQA950AlLQA40AlLQA40AlLQAw40AlLQA@N40AlLQA;40AlL@QA#40AlLQA40AlLڀQA30AlLՀQA@30AlLЀQA@30AlL`ȀQA30AlL€QA@30AlLༀQA@30AlLഀQA30AlLQA{30AlLQA@l30AlLQA>30AlLQA@10AlL`QA10AlLQAD10AlL@QA@00AlL@QAT00AlL`QA/0AlL`QA/0AlL@QA>/0AlL@QA.0AlLQA.0AlLQAO.0AlLࣀQA-0AlLQA{-0AlL@QA@^-0AlL@QA@,0AlL`ӀQA,0AlLQA,0AlL`QA^)0AlL݁QA@Z)0AlLށQA(0AlL QA(0AlLԁQA@(0AlLсQA'0AlL΁QA'0AlL ʁQAz'0AlLɁQA'0AlLQA?'0AlLࢁQA&0AlLQA@&0AlLdQA@.%0AlL`QA%0AlLОQA$0AlL QA$0AlL QA@$0AlLQAp$0AlL QAW$0AlL@ŁQA?$0AlL ʁQA@P$0AlL0сQA&0AlL༂QA(0AlLQA@{)0AlL@QAY'0AlLQA(0AlLQA?'0AlL ރQA'0AlLVQA'0AlL@YQA?(0AlL QA)0AlLQA)0AlL`QA@*0AlL`QA{*0AlLQA_+0AlL߄QA*0AlLtQAf-0AlL6QA2-0AlL0QA -0AlL.QA,0AlL'QA,0AlLQA,0AlL QAr,0AlL@QA+,0AlLQA@,0AlLQA+0AlL QA+0AlLڃQA+0AlL̓QA+0AlLQAv+0AlL QAO+0AlLQA@"+0AlLQA +0AlL@|QA*0AlLoQA@*0AlL^QA*0AlLMQA@*0AlL?QAc*0AlL.QAN*0AlL QAI*0AlL QAL*0AlLQA@R*0AlL QAX*0AlL@ނQA@/0AlLQA 00AlLQA/0AlLQA@*00AlLQAA00AlL QA@00AlLQA00AlL@QA-10AlLQA_10AlL@QA@~10AlLQA10AlLQA10AlL`QA 20AlLQA320AlLQAX20AlL@QA20AlLQA20AlL`QA20AlLQA?30AlL@փQA50AlLQA50AlL@ӄQA50AlL@QA 40AlL0HQA30AlLKQA70AlLQA;0AlLQA;0AlL`QA;0AlL@QA,4t.AlLQA_m/AlLQACK.AlLNQA.AlLDQA.AlL?QAB.AlL@6QA.AlL`3QA.AlL+QA;.AlL !QA.AlL QA.AlL QAE.AlLQA.AlLQAm.AlL QA.AlL@QA=.AlLQA.AlLڲQA.AlLҲQA.AlL˲QA.AlLȲQA{.AlL²QA.AlLQA.AlL QA6.AlLາQA.AlL QA.AlLQA.AlLQA .AlLQA.AlL`QA,.AlLQA.AlL@QAM.AlLQA..AlLQA.AlLuQA.AlLhQA .AlLdQA.AlLYQA.AlL@GQAG.AlL@:QA.AlL@0QA.AlL@&QA<.AlL@QA.AlLQA.AlLQA.AlLQA+.AlLQA.AlL`QA.AlL QAj.AlLұQA.AlL ˱QAd.AlLñQA .AlLQA.AlLQA7.AlL@QAx.AlLQA.AlLQA3.AlL QA.AlL QA.AlL`QA:.AlLQA.AlL{QA.AlLrQA.AlLaQA.AlL[QAd.AlLIQAz.AlL VQA.AlL@cQA.AlLrQA.AlLQAi.AlLQA.AlLQAu.AlLQA.AlLɱQA+.AlL`αQA.AlLֱQA%.AlL ۱QAr.AlLQA.AlLQA%.AlLQA^.AlLQA.AlLQA.AlL"QA[.AlL@0QAb.AlL;QAs.AlL IQA.AlLZQA.AlLhQA.AlLLQAC.AlL@IQA .AlL=QA.AlL2QA.AlL#QA\.AlLQA.AlLQA/AlLQA/AlLQA/AlL QAH/AlL QA/AlLQA/AlL4QA/AlL7QAj/AlL@=QA/AlL6QA/AlL,QA/AlLQAH/AlLQA/AlL QA/AlLQA/AlL@QA/AlL`QAM/AlLQA/AlLQA/AlL QA4/AlL`QAJ/AlL@ٱQAz/AlL`DZQA/AlL QA/AlLQA*/AlL QAc/AlL QA/AlL@QA/AlLwQAL/AlL`dQAm/AlL`[QA/AlLPQA/AlLFQA/AlL>QAs/AlL 4QA/AlL&QA /AlL QA6 /AlL QAd /AlL@ QA] /AlL`QAQ /AlLQAb /AlL@QA /AlL۰QA /AlL˰QA; /AlLİQA /AlLQAG /AlLQA /AlLQAm /AlLQA /AlLQAG /AlL QA/AlLQAX/AlLQA/AlL`QA/AlL@QA#/AlLQA/AlLQAy/AlLQA/AlLQA/AlLQA/AlL`vQAr/AlLkQA/AlL]QA/AlL SQA>/AlL@KQA/AlLAQA9/AlL@QAG/AlL`@QA^/AlL?QA/AlL/QA+/AlL-QAd/AlL`-QA/AlL2QA"/AlL@6QA/AlL ;QA/AlL`@QA/AlLGQA=/AlLLQA/AlLOQAV/AlLWQA/AlLWQAA/AlL`\QA/AlLcQA/AlL`kQA\/AlL@vQA/AlL QAh /AlL`QA /AlLQAY!/AlLQA!/AlL@QA!/AlLQAG"/AlLQA"/AlLQA#/AlL QA[#/AlLQA#/AlL`QA$/AlL QAg$/AlL`QA$/AlLQA$/AlLQA%/AlLQA6%/AlLʰQAx%/AlL`ҰQA%/AlL հQA%/AlL@ְQA&/AlLְQAd&/AlLװQA&/AlLٰQA '/AlLްQAT'/AlL`QA'/AlLQA3(/AlL`QA{(/AlL QA(/AlL`QAd)/AlLQA)/AlLQA)/AlLQAF*/AlLQA*/AlLQA*/AlL!QA.+/AlL%QA+/AlL@)QA+/AlL@-QAB,/AlL 7QA,/AlLQA<:/AlL=QA:/AlL?QAE;/AlLBQA;/AlL@QARQA^=/AlL/AlL2QA>/AlL4QA ?/AlL1QAm?/AlL*QA?/AlL QA?/AlLQA5@/AlL QA@/AlLQA@/AlLQAA/AlL!QAA/AlL 'QAA/AlL *QADB/AlL-QAB/AlL 3QA2C/AlL:QAlC/AlLBQAC/AlL@JQAC/AlL@PQAYD/AlLWQAD/AlL@`QAE/AlL^QAhE/AlL dQAE/AlL`iQAF/AlL@nQA@F/AlLqQAyF/AlL vQAF/AlLxQAF/AlL@~QAG/AlLPQAPG/AlL@QAG/AlLQA,H/AlLQAtH/AlL`QAH/AlLQAH/AlLQA,I/AlLQA|I/AlL@QAI/AlLQAlJ/AlLࣱQAK/AlLQARK/AlL଱QAK/AlLQAL/AlLೱQASL/AlLQAL/AlLQAL/AlLñQA$M/AlLƱQA{M/AlL`ƱQAM/AlLQA/N/AlL QANN/AlLറQAN/AlL`QAN/AlL`QA O/AlL QANO/AlL@QAO/AlL QAP/AlL@QA^P/AlL QAP/AlL`QALQ/AlLQAQ/AlLQA;R/AlLQAuR/AlL`QAR/AlLyQAS/AlLEQAT/AlL 6QAT/AlL@QAVU/AlL QA V/AlL@QAV/AlL@QAW/AlLȰQA@X/AlL(QA&X/AlLQAW/AlLQAW/AlLQAtW/AlL؆QAbW/AlL@QAW/AlLyQAV/AlLmQAWV/AlLaQAU/AlLOQAU/AlL DQAYU/AlL`7QA U/AlL.QAT/AlLQApT/AlLQAST/AlLpQApS/AlLQAS/AlLQAT/AlL@QAU/AlLޯQAU/AlLЯQA2V/AlL`ɯQAiV/AlLïQAV/AlLQAV/AlLQAV/AlLQAV/AlLWQAV/AlL#QAV/AlLQAV/AlLʮQAV/AlLQAV/AlL QAV/AlLiQAzV/AlL@IQApV/AlLBQAmV/AlL0>QA\V/AlL*QA-V/AlLQAU/AlLQAU/AlL`QAU/AlLQAU/AlL QAU/AlL@QA[U/AlLQAU/AlLQAT/AlLwQAT/AlL`oQAT/AlL`eQAU/AlL@WQA{U/AlLHQA&V/AlL`,QAV/AlL QAV/AlLQAV/AlLQAdV/AlLQAXV/AlL`جQAPV/AlL`ҬQA8V/AlLŬQA3V/AlLQAV/AlLQAU/AlL`QAU/AlLQAU/AlLwQAU/AlLkQAU/AlL^QAU/AlL`MQA2U/AlL3QAT/AlL'QAT/AlLQA1T/AlL@ QAS/AlL@QAOS/AlL@QAHS/AlLޫQA;S/AlL۫QAS/AlL ЫQAhR/AlL๫QA&R/AlLQAR/AlL QAQ/AlLQAQ/AlLQAQ/AlLQAQ/AlL sQA)R/AlL OQA%R/AlL=QA1R/AlL+QA&R/AlL QAQ/AlLQAQ/AlLQA6Q/AlL@ŪQAP/AlL QAP/AlL`QApP/AlL QA9P/AlLkQAO/AlL`QQAO/AlL+QAO/AlL QAO/AlL QAO/AlLةQAO/AlL QAO/AlL`QAO/AlL QAO/AlLIQAO/AlL@2QAO/AlL$QAO/AlL`!QAO/AlLQAO/AlLQAO/AlLQAO/AlLԨQAO/AlLQAO/AlL QAP/AlL QAhP/AlLQAP/AlLQAP/AlLQAP/AlLQA-R/AlLQAtR/AlLQAR/AlLQA#S/AlL QAS/AlL`QAT/AlL QA|T/AlLQAT/AlLQAU/AlL`QAfU/AlL@ܨQALV/AlLߨQAV/AlLߨQAV/AlLQA;W/AlL QAW/AlLQAW/AlL QAX/AlLQACX/AlLQAEX/AlLިQA[X/AlLɨQAzX/AlL൨QAX/AlLQAX/AlLQAX/AlLpQAX/AlL]QA*Y/AlLAQA[Y/AlL'QAY/AlL`%QAZ/AlL$QAZ/AlL "QAZ/AlLQA[/AlLQAz[/AlLQA[/AlL QA[/AlL QAP\/AlLQA\/AlLQA]/AlL@TQA]/AlL ZQA]/AlLXQAv^/AlL RQA_/AlL`HQA_/AlL:QA*`/AlL6QA|`/AlL`0QA`/AlL0QA a/AlL`-QALa/AlL`(QAa/AlLQA`/AlLڧQA`/AlL ϧQA`/AlL@QAa/AlLQA>b/AlL`QAb/AlLQAc/AlLQA d/AlLཧQAd/AlL QAe/AlL@QATe/AlLQAe/AlLQAe/AlL@QA6f/AlLQAf/AlL QAg/AlL@QAg/AlL mQAh/AlLUQAh/AlL>QAi/AlL#QA|i/AlL QAj/AlL QAj/AlL̦QAPk/AlLQAk/AlL`QAZl/AlL`|QAl/AlL`dQAm/AlL`TQA>m/AlLLQATm/AlL@FQA_m/AlL`@QAPm/AlL 4QA m/AlL QAl/AlL QAl/AlLQAl/AlL`QApl/AlL ϥQAMl/AlL¥QAGl/AlLhQACl/AlLQA5l/AlLQA l/AlL@QAk/AlLaQAk/AlL@KQAk/AlL:QAbk/AlL$QAOk/AlL@QALk/AlLQAAk/AlLQA$k/AlL`QAk/AlLߤQA&k/AlL@ФQA*k/AlL@ȤQAk/AlLQAj/AlLQAj/AlLQAh/AlL`ܤQAx`/AlL`9QAa/AlL^QAta/AlL dQAb/AlLࣥQAgb/AlLQAc/AlL` QAc/AlLp QAD_/AlLQAB_/AlLQA^/AlLpQA^/AlLQA^/AlLQA^/AlL QA^/AlLQA_/AlL ϦQA7_/AlLQAo]/AlLQA"]/AlL@QA[/AlLQAY/AlL@QA8Y/AlLQAX/AlL`QAX/AlL@ QA.X/AlLQAW/AlL!QAW/AlL5QAV/AlL7QA.V/AlL9QAU/AlL7QA2U/AlL2QAT/AlL,QAT/AlL QAeT/AlL`QA T/AlL@ QAS/AlLQAS/AlLQA/S/AlLQAR/AlLQAR/AlLQA1R/AlLQAQ/AlLQAQ/AlLQAJ/AlLQAQN/AlLjQAN/AlL RQAP/AlLDQAbQ/AlL 1QAR/AlLQA$T/AlL QAT/AlL0QAU/AlL`QAV/AlL`QAjW/AlLQAX/AlLؤQAUY/AlLؤQAY/AlL ѤQAtZ/AlLˤQAZ/AlLˤQA[/AlLˤQA_/AlL෤QA`/AlL@QAb/AlLQAd/AlL`QAf/AlLQAg/AlLQA#i/AlLQA(j/AlLQAj/AlLQAj/AlLpQA"k/AlL QAIk/AlLQAck/AlLQA{k/AlL QAvk/AlLQAlk/AlLsQA_k/AlLcQA`k/AlL@QAPk/AlL3QAbk/AlLQA\k/AlL` QATk/AlL QAPk/AlLQAjk/AlLʣQA[k/AlLQARk/AlL QANk/AlL@QAJk/AlL}QAPk/AlLeQAPk/AlL`HQA;k/AlL@-QA8k/AlL QA1k/AlL@ QA%k/AlLQA"k/AlL QA"k/AlLעQAj/AlLܢQAj/AlL`QAi/AlL QAi/AlLQATi/AlLQAi/AlLQAh/AlL`QAh/AlL`QAXh/AlLQAg/AlLQAf/AlLQAf/AlLQA f/AlL`QAe/AlL QAd/AlLQA@d/AlL@ QARc/AlLQA7a/AlL+QA^/AlLIQA^/AlLOQA]/AlL@OQAG]/AlLOQA\/AlLQQA\/AlL@SQA]\/AlL@WQA\/AlLZQA[/AlL _QA9[/AlLbQA\Z/AlL`uQAY/AlL|QAtY/AlL|QAX/AlLoQAnX/AlLYQA!X/AlLOQAW/AlL LQA W/AlLUQAV/AlLbQAV/AlLlQAFV/AlL tQAV/AlLQAU/AlL`QAhU/AlLQAT/AlLQAT/AlLsQALT/AlLjQAS/AlLeQAES/AlLfQAR/AlLhQAR/AlLlQAQ/AlL xQA'Q/AlL~QAyP/AlLQAO/AlLQA5O/AlL@}QAN/AlLwQA`N/AlLtQAN/AlL@tQAM/AlLuQAM/AlLvQADM/AlLyQAL/AlLQAK/AlL@QA-K/AlLQAJ/AlLQA{J/AlL{QAlJ/AlLwQA!J/AlL gQAI/AlLQQAgI/AlLFQAH/AlL@7QARH/AlL@/QAKG/AlLQAgF/AlLQAF/AlLQAE/AlL QA(E/AlLQAD/AlLޢQA*D/AlLآQAC/AlL`עQA5C/AlL ԢQAB/AlLˢQAB/AlLâQAUB/AlLQA!B/AlLQAA/AlL QAA/AlLࡢQAA/AlL QA4A/AlL QAA/AlLQA@/AlLQA@/AlL`QA@/AlLyQA@/AlLQA|@/AlLQAm@/AlL`ŢQAO@/AlL QA/@/AlL`TQA @/AlL QA>/AlL`QAN>/AlLQA/AlLtQA0/AlLxQA/AlLQA/AlLQA/AlLQA/AlLQA/AlL ͣQA7/AlL ڣQA/AlLQA/AlLQA/AlLQAg/AlLQA/AlLQA/AlLQA7/AlLQA/AlLQAE/AlLQA/AlLQA/AlLQAY/AlL`QA'/AlLݣQA/AlLףQA|/AlL ףQA//AlLۣQA/AlLޣQA/AlL ߣQA!/AlL QA/AlLQA/AlL@QA;/AlL QA/AlLQA/AlLQA=/AlL ߣQA/AlLߣQA/AlLܣQAt/AlLۣQA>/AlL@ڣQA/AlLףQA/AlLQA/AlLQA /AlL QA/AlL`-QAh/AlL`=QA[ /AlLZQA /AlL uQA /AlLQA{ /AlLQAg /AlLQA /AlLતQA /AlL`¤QAt /AlL`QA /AlL@QA /AlLQA/AlLQA{/AlL !QA5/AlL'QA/AlL-QA/AlL@7QAh/AlL@.AlL QA.AlL QA.AlLQA.AlLQA.AlLQA.AlL٧QA.AlLѧQA.AlLƧQAn.AlL`QAM.AlLQA6.AlL@QA.AlLࢧQA.AlLQA.AlLQA.AlL@QA .AlLQA*.AlL QAj.AlLQA.AlL QA9.AlL@ QAL.AlLQAl.AlL` QA.AlL`-QA.AlL`8QA.AlLBQA.AlLMQA.AlLSQA.AlL]QA.AlL`cQA.AlL mQA.AlLyQA:.AlL~QA^.AlLQA.AlL QA.AlL QAr.AlLQA.AlLQA.AlLQA.AlLQA.AlLƨQA .AlLʨQAq.AlL@ӨQA.AlLبQA.AlLQA.AlLQA .AlLQAE.AlL QA`.AlL`QAV.AlLQAA.AlL QAH.AlLQAv.AlL@QA.AlL%QA.AlL,QA.AlL8QA.AlL`DQA0.AlLPQA>.AlLXQAG.AlL@dQAC.AlL@pQAT.AlL@|QAu.AlL`QA.AlLQA.AlLQA.AlLQA.AlLQA.AlL`©QAz.AlLȩQAh.AlLϩQA.AlLةQAf.AlL ۩QA.AlLQA&.AlLQA`.AlLQA.AlLQA.AlLQA-.AlL QA.AlL QA.AlLQA.AlLQA.AlL QA.AlL`QA.AlLQAK.AlLQA.AlLQA.AlL@QA.AlLQAj.AlLQA.AlLکQA.AlLةQA.AlLөQAb.AlLϩQA.AlLĩQA4.AlL`שQA.AlLߩQA.AlL`QA.AlLQA.AlLQA[.AlL` QAI.AlL@ QA.AlL QA.AlL QA.AlLGQA_.AlLpQAl.AlL QA(.AlL@QA.AlL QA.AlLQA.AlLɪQA.AlLʪQA".AlLQA.AlL QA.AlL QA.AlL@QAp.AlL@#QAB.AlL2QA-.AlL ;QA.AlLIQA.AlLXQA.AlLbQA.AlLmQA.AlLuQA.AlL~QAz.AlLQA`.AlL@QAC.AlL QA*.AlL࡫QA.AlLQA~.AlL`īQA.AlL@ΫQA.AlL@׫QAN.AlL߫QA1.AlL`QA.AlL@QA.AlLQAe.AlL QA.AlL#QA.AlL@0QA.AlLPQA.AlL YQA .AlLnQA.AlL@QAL.AlL`QA.AlLQA.AlLQAb.AlL@ҬQA".AlLQA.AlL`QA].AlL`QAv.AlLQA.AlLQA.AlLQA.AlL *QA.AlL@>QA.AlLLQA.AlL^QA.AlL@lQA.AlLnQA+.AlL@QA.AlLQA.AlL@QAV.AlLQA3.AlL QA.AlLŭQA.AlL`ɭQA@.AlL έQA.AlLԭQAP.AlLޭQA.AlL`QAe.AlLQA .AlLQA.AlLQA@j.AlL@QA.AlLQAl.AlLQA@ .AlLQA.AlLQAA.AlL'QA@.AlL6QA`.AlLJQA.AlLVQAw.AlL eQA..AlLsQA.AlLQA.AlLQA@'.AlLQA@.AlL@QA@.AlLQA.AlL QA.AlLȮQA.AlL`ӮQA@.AlLٮQAy.AlL@߮QA@.AlL`QA@}.AlLQA@.AlL@QAw.AlL`QA.AlLQAO.AlLQA.AlL QA@b.AlLQA@.AlLQAF.AlL %QA@.AlL*QA.AlL0QA@.AlL 8QA.AlL>QA.AlL AQA@.AlL NQAxo.AW$UQA.AlLVQA=.AlLcQA@z.AlLmQA@.AlLvQA@@T.A`yQA.AlL QAW.AlLQA.AlLQAp.AlLQA.AlL࣯QA@.AlL`QAy.AlL`QA4.AlLQA.AlL@QA.AlL@QA@.AlL`QA@.AlLQA.AlLQAf.AlL@QA@<.AlLQA.AlLQA@.AlLQA.AlLQA@{.AlLQAW.AlLQA,.AlL {QA.AlLxQA@.AlLQA@`.AlLQA.AlL QA.AlL@QA.AlLQA@.AlLQA.AlL@QA.AlL`QAO.AlLQA.AlLQA.AlL`QAQ.AlLQA.AlLQA.AlLQAS.AlL@QA@7.AlLQAD.AlL@|QAF.AlLuQA@.AlL{QA.AlL@QAK.AlLQA@9.AlLQA.AlL`QA@.AlLQAu.AlL@QA].AlLQAR.AlLQA8.AlL ȯQA@.AlLЯQA@.AlL үQAu.AlLϯQAK.AlL`˯QA@.AlLïQA.AlL¯QA.AlL`ǯQA.AlL`˯QA.AlLүQA.AlL ׯQA@.AlL@ݯQA .AlLQA@.AlLQA@.AlL@QAW.AlL`QA@-.AlLQA@ .AlL߯QA.AlL@ܯQA@.AlLٯQAa.AlL دQA@ .AlLۯQA.AlLQA@.AlL@QA.AlLQAM.AlL`QA.AlLQA.AlLQA@[.AlLQA@(.AlL QA@.AlLQA.AlLQA.AlLޯQA8.AlLܯQA.AlLQA.AlLQA3.AlLQA@y.AlL QA.AlL QAQ.AlLQA.AlLQA.AlLQAi.AlL`QA.AlL@QA@.AlL@QA.AlL`QA.AlL@ QA.AlLQA@.AlL@QA@ .AlL!QA..AlL,QA6.AlL`7QA.AlL=QA.AlLFQA.AlLGQA@j.AlL@EQA.AlLAQA.AlLDQA:.AlL IQA.AlL PQA:.AlLTQA.AlLTQA@B.AlLVQA.AlL\QA.AlL `QA .AlL`_QA.Ar7_QA@.AlL^QAd.AlLbQAa.AlLlQAl.AlL`tQA@W.AlL@~QA.AlL`QA.AlLQA.AlL QAp]Uw.AlLQA[.AlL@QA@ .AlL`QA.AlL@QA.AlL ѰQA.AlLQA@.AlLQA.AlL`QA@Q.AlLQA@.AlL@+QA.AlL8QA.AlLJQA@.AlL@WQA.AlL@vQAm.AlL QA.AlL`QA@Z.AlLୱQA.AlLñQAP.AlLұQA@.AlL@QA`@R.A:QA.AlLQAU.AlLQA.AlLQA}.AlL*QA.AlL CQAd.AlLSQA.AlLeQAg.AlLsQA.AlL`~QA\.AlLQA.AlLQA.AlLೲQA.AlL βQA@{.AlLQAt.AlLQA@u.AlLQA.AlL'QA@.AlL;QAۿ.AlL@JQA.AlL@^QA@).AlL@dQA.AlL@dQA@ .AlLbQA@.AlL aQAr.AlL ^QA'.AlL YQA@.AlLTQA@_.AlL RQA.AlL@OQA=.AlLNQA.AlL LQA .AlLLQA.AlL`VQAX.AlL^QA@.AlLiQA$.AlLlQAy.AlLoQA Qd.A*[uQA.AlL@wQA .AlLxQA).AlLzQA:.AlL{QAn.AlLQA.AlLQA.AlLQA.AlL QA.AlL`QAe.AlLQAH.AlL@˳QA,.AlLسQA.AlLQA.AlL`QA.AlL` QA.AlLQA.AlL`*QA.AlL7QA.AlLEQA.AlL[QA.AlLnQA.AlLQA.AlLQA.AlL`QA!.AlLQA;.AlLȴQAK.AlL@״QA_.AlL޴QA.AlLQA.AlLQA.AlL@ݴQA.AlLдQA.AlL`ôQAc.AlL࠴QA.AlL`QA.AlL QA.AlL@{QA .AlLoQAK.AlLhQA.AlL`QA.AlLVQA.AlLOQAa.AlL LQA.AlLFQA .AlLCQAN.AlL@QA.AlL 7QA.AlL0QA .AlL`*QAP.AlL QA.AlL`QA.AlL QA2.AlLQAc.AlLQA.AlL`QA.AlLQA3.AlLQA.AlL޳QA.AlL@ֳQA5.AlL гQAk.AlL`̳QA.AlL`óQA.AlLQA,.AlLQA.AlLQAs.AlLQA.AlL{QA.AlL`dQA.AlL[QAK.AlLNQA/AlL QA0/AlL QAn/AlLQA/AlLQA/AlL@QAK/AlLQA/AlLQA(/AlLQA/AlL@ QA/AlL QAV/AlLQAO/AlLQA/AlLQA[/AlLQAi/AlL QA%/AlLQAC/AlL@QA/AlL@QA/AlLQA /AlLQA/AlL`QA/AlLQAu/AlLQAC/AlL֤QA/AlLQA/AlLQA/AlLQA/AlLQA0/AlLQA/AlL QA/AlLQA/AlL൤QA/AlLQA/AlLɤQA/AlL`ͤQA/AlL ۤQA/AlL@QA/AlLQA/AlL QA/AlLQA/AlL QA/AlL,QA/AlL*QA/AlLNQA /AlLMQAl/AlL`PQA/AlLOQA/AlL@LQA/AlLFQAF/AlLCQA|/AlL`HQA/AlL`OQA/AlL@TQA;/AlL VQA/AlL[QAj/AlL`fQA/AlLpQAp/AlL@wQA/AlL`wQA"/AlL@vQA/AlLxQA/AlL@zQA@/AlL{QAp/AlL~QA/AlLQA/AlL`QA./AlLQAy/AlLQA/AlL@QA/AlLQA/AlLQA/AlL˥QA/AlLԥQA/AlL`ܥQA /AlLQA/AlL QA/AlLQA/AlLQA/AlL`QA/AlL QA/AlLQAu/AlLQA(/AlL QA/AlLQA>/AlL QA/AlL QA-&H +/AlLQA;/AlLېQA&/AlLPِQA/AlLp-QA/AlL`QA"/AlL׏QA/AlLIQA2/AlL@MQA/AlL@QA/AlLЪQA/AlLQA/AlL@QA;/AlL@ÐQA+/AlL`eQA/AlLOQA/AlL QA/AlLQA/AlL`QA"/AlLQA/AlL\QA/AlLQA/AlLQA/AlLQA/AlLPQA/AlLQA /AlLQA/AlLvQA/AlL cQA/AlLPQA$/AlL2QAX/AlL$QA/AlLQAE/AlL QA=/AlL QA#/AlLQA/AlLQA\/AlLQA/AlL͌QAe/AlLQA/AlLࢌQAV/AlLQA/AlLyQA/AlLp]QAK/AlLSQA/AlL@AQA/AlL`$QAp/AlL`#QA0/AlL#QA/AlL QA/AlL`QA/AlL QA/AlLQAb/AlLQAl/AlLQAH/AlL QA/AlL΋QA/AlL๋QA/AlLQAE/AlL yQA/AlL@QQA/AlLQA/AlL@HQAW/AlLيQA/AlL QA/AlLชQAX/AlLఊQA /AlL`QAu/AlLQA/AlLQAa/AlLQA6/AlL{QA/AlL sQA/AlLmQAZ/AlLbQA/AlL WQAt/AlLJQA /AlL?QAO/AlL-QAǸ/AlL@!QA-/AlLQAܷ/AlLQAI/AlLQA/AlLQA/AlL QA~/AlLQAT/AlLމQAG/AlLՉQA/AlLʉQA/AlL້QAb/AlLQA/AlL QA/AlLQA;/AlLQA/AlLzQAu/AlL nQA/AlL@cQA/AlLYQA^/AlLOQA/AlL @QA/AlL@4QAű/AlL(QAF/AlL`QA۰/AlL QA/AlL QA)/AlL QA/AlLQA?/AlL`ՈQA/AlL̈QAծ/AlLQAX/AlL@ƈQA/AlL@̈QAx/AlL ҈QA/AlLԈQAJ/AlL׈QA /AlLQA/AlL@QAg/AlLQA/AlLQA/AlLQAI/AlLQA/AlL`-QA+/AlL2QA/AlL`>QA/AlLcQA/AlL@\QAi/AlLWQA+/AlLMQA/AlLCQA/AlL?QA/AlL@AQAN/AlL=QA\/AlL6QA/AlL/QA/AlL)QAԲ/AlL!QA/AlLQAܲ/AlL QAѲ/AlLQAβ/AlL@QA9/AlL QA/AlL QAij/AlL QA/AlLQA/AlLQA/AlLQA/AlLQA/AlL QAy/AlLQA/AlLQA/AlLQA?/AlL@QAõ/AlL QA4/AlLQA/AlL!QAW/AlL,QA/AlL@5QAڷ/AlL@=QA/AlLHQAB/AlL@NQA/AlLTQA /AlL`QAx/AlL`eQAS/AlLoQA/AlLxQA/AlLxQA/AlLvQAV/AlLsQA/AlLrQAX/AlL`}QA/AlLQAڼ/AlL@QA/AlLQAO/AlL`QA}/AlL@QAֽ/AlLQA/AlL@QA//AlLࠈQAY/AlLQA/AlL QAȾ/AlLQA/AlL`rQA/AlLmQA'/AlLrQA{/AlL|QA/AlL`QA/AlL@QA /AlLQAN/AlLQA/AlLQA/AlL`QA]/AlLQA/AlL@QA/AlL`QA*/AlL`QA/AlL`QA/AlLQA"/AlLQAH/AlLQA/AlL@QA/AlLQAo/AlLQA/AlL`QA/AlLईQA/AlL@QA/AlL@QA/AlLQAO/AlLӈQA/AlL`QA/AlL@QA/AlLQA/AlLQAy/AlL`*QAy/AlL9QAp/AlLEQAy/AlLNQA/AlL@UQA/AlL`[QA/AlL gQA/AlL@rQA/AlLQA/AlLȉQA[/AlL@ƉQAL/AlLEQAD/AlLTQAt/AlLQQA/AlLMQA+/AlLNQA/AlLTQA/AlL^QA"/AlL`gQA/AlLjQA/AlLhQAH/AlLhQA/AlLqQA/AlLwQAs/AlLwQA/AlLxQA/AlL`|QA/AlL QA6/AlL QA/AlL }QA/AlLyQA/AlLoQA/AlLiQAp/AlL^QAY/AlL`UQA\/AlLOQA_/AlLJQA/AlLBQA>/AlL.QA/AlL` QAB/AlL QA /AlL࢈QA/AlL QA/AlLQA/AlLQAw/AlL@QAL/AlLQA#/AlL@zQA/AlLuQA/AlL`pQA/AlL`iQAd/AlL]QA/AlLMQA/AlL`?QA/AlL3QA4/AlL@'QA/AlL QAe/AlLQA/AlL`QAy/AlLQA/AlLQA/AlLQA/AlL`QAq/AlL@QA/AlL݇QA/AlL݇QAE/AlLׇQA/AlL ̇QA/AlL QA;/AlLQA/AlL QA/AlLઇQA"/AlLQA/AlLQA"/AlLQA/AlLQA/AlL`QAI/AlLQA/AlL`QA/AlLQA7/AlLQA/AlLQA/AlL QA;/AlL@QA/AlL QA/AlL QA@/AlL@yQA/AlL`xQA/AlLzQA\/AlL@~QA/AlLQA/AlLQAX/AlL`~QA/AlL@zQAb/AlL`xQA/AlLyQA/AlLxQA/AlLrQA[/AlLlQA)/AlL`hQA/AlLfQA/AlL`fQAR/AlL@hQA/AlL`iQA/AlL \QAX/AlL@VQA)/AlL@OQA/AlLMQA/AlLKQA#/AlL@JQA/AlLBQAټ/AlL>QA/AlL>QAJ/AlL BQA/AlLEQAл/AlLDQA/AlL=QAQ/AlL`5QA/AlL;QA/AlLNQA/AlL/AlLQAl/AlL QA/AlLÇQA/AlL QAʎ/AlL࿇QA/AlLQA/AlL QAP/AlL`QA%/AlL`QA/AlL QA/AlLേQA`/AlL QAy/AlL`QA#/AlLಇQA/AlLQAC/AlLଇQA /AlL`QA/AlLQA/AlLQA/AlLQA/AlL@QAG/AlL@QA։/AlL QA/AlLQA/AlLQA/AlL@zQA/AlLhQA/AlL0_QA/AlL\QAK/AlLMQA$/AlLGQAЇ/AlLMQA/AlL`KQAg/AlL@@QA@/AlL`6QA/AlL.QAdž/AlL@4QA/AlLDQA/AlLQQAj/AlL QQA˅/AlL@NQA~/AlLJQA6/AlLGQAƄ/AlLEQA/AlL/AlL@9QA&/AlL2QAq/AlL-QA/AlL +QA /AlL'QAބ/AlLQA؄/AlLQA/AlL@ QA/AlL`QAR/AlL`QA&/AlLQÃ/AlLQA/AlLQAv/AlLQAn/AlLQAӂ/AlLQAW/AlLQAo/AlL QAp/AlL`-QA /AlL*QAρ/AlL"QA/AlL&QAb/AlL`/QA/AlL 1QAĀ/AlL-QA/AlL&QAX/AlL'QA/AlL,QA/AlL!QA /AlL@QA/AlLQA/AlL QA{/AlL QAR/AlLQA~/AlLQA~/AlLQA{~/AlLQA=~/AlLQA~/AlL QA}/AlLQA}/AlLQA}/AlL` QA}/AlL`QA}/AlL!QAR}/AlL&QA }/AlLQA|/AlLQAn|/AlLQAN|/AlLQAX|/AlLQA|/AlL`QA{/AlLQA{/AlLQAQ{/AlLQA{/AlLQAz/AlLQAuz/AlLQAz/AlLQAy/AlL QAqy/AlLQAy/AlLQAx/AlL`QAx/AlL ݆QALx/AlLކQAw/AlL܆QAww/AlLކQAw/AlLنQAv/AlL@ԆQApv/AlL҆QA[v/AlL܆QAYv/AlL QA=v/AlL QAv/AlLQAGu/AlL`QAt/AlL QAt/AlLQAt/AlLQA`t/AlLQAs/AlLQAs/AlLQAs/AlLQAr/AlL QAr/AlLQAZr/AlL QAr/AlL@QARr/AlLQAor/AlL QAQAa\/AlLCQA/\/AlLJQA \/AlL ZQA[/AlL _QA[/AlLbQAB[/AlL_QAZ/AlL@ZQAZ/AlL`YQAPZ/AlL_QAZ/AlL@gQAY/AlLhQAkY/AlL cQA+Y/AlLZQAX/AlL SQAX/AlL OQA-X/AlL@MQAW/AlLIQA9W/AlL CQAW/AlL;QA W/AlL1QAV/AlL+QAV/AlL &QAV/AlLP%QApV/AlL`"QAV/AlL`QAU/AlLQAU/AlL QAU/AlLQA4U/AlL@QAT/AlL0QAT/AlLQAuT/AlLQA%T/AlLQAS/AlL@QAS/AlL`QAS/AlLQAS/AlL`QAT/AlLQAS/AlLQAS/AlL QA7S/AlLQA(S/AlLQAR/AlLQAR/AlLQARR/AlLQAR/AlLQAQ/AlL@QAQ/AlL ՆQAoQ/AlL`ՆQAQ/AlL@ՆQAP/AlLφQAtP/AlL@͆QAoO/AlLȆQAN/AlL ƆQAN/AlLÆQAbN/AlLQAM/AlLÆQAM/AlLdžQAvM/AlL ͆QAAM/AlL҆QAL/AlLֆQAvL/AlL ΆQAYL/AlL`ĆQA#L/AlLQAL/AlL QAL/AlLQAK/AlLQAK/AlLQAQK/AlL@QAJ/AlLQAI/AlLQAI/AlLQAII/AlLQA I/AlLQAH/AlLQAQH/AlL QAH/AlLQAG/AlL`QAG/AlLQAG/AlL`yQApG/AlLuQAG/AlLrQAF/AlLkQAF/AlLcQAF/AlL`]QAUF/AlL YQA6F/AlLSQAE/AlLNQAE/AlL`KQASE/AlL`IQAE/AlLDQAD/AlLAQAnD/AlL=QAHD/AlL6QA#D/AlL/QAD/AlL)QAD/AlL@#QAC/AlL`QAC/AlLQA.C/AlLQAB/AlL`QAB/AlL QAA/AlL QAA/AlLQA'A/AlL QA@/AlLQAK@/AlL"QA?/AlL$QAf?/AlL%QA>/AlL 'QA>/AlL*QA}>/AlL 0QAp>/AlL/QA=/AlL@.QA=/AlL+QA>=/AlL`)QAQA//AlL`KQA0/AlLTQAW0/AlL^QAf0/AlL0`QA0/AlLeQA0/AlLsQA0/AlLQA1/AlLQA1/AlLQA2/AlLQA2/AlLʊQA2/AlLЊQA1/AlL׊QA2/AlL@ފQA2/AlL@QA1/AlL@QA1/AlL`QA1/AlLQA1/AlLQA2/AlLQA=2/AlLQA_2/AlL #QA2/AlL>QA2/AlLFQA2/AlLKQA2/AlLWQA3/AlL_QA83/AlL hQAu3/AlLnQA3/AlL`wQA4/AlLQA.4/AlL@QAN4/AlLQA4/AlLQA4/AlL`QA4/AlLQA5/AlL@ËQA:5/AlL΋QA]5/AlLՋQA5/AlL`݋QA5/AlLQA5/AlLQA6/AlL`QA,6/AlL QAM6/AlLQAT6/AlL@QAS6/AlL`#QA?6/AlL@.QA=6/AlL4QA=6/AlLDQAI6/AlLNQAP6/AlL XQAK6/AlLp_QA6/AlL}QA6/AlL QA6/AlL`QA6/AlLQA7/AlLQA7/AlL`QA77/AlLQA]7/AlLQA7/AlLQA7/AlL ɌQA7/AlL@ҌQA8/AlLڌQA|8/AlLQA8/AlL`QA'9/AlLQAr9/AlL QA9/AlLQA$:/AlL(QAm:/AlL5QA:/AlLPBQA;/AlL`LQA;/AlLWQA /AlL`֍QA>/AlLp׍QAN?/AlLQA?/AlLQAy@/AlL`QA@/AlLQAA/AlL@QAB/AlL`QAB/AlLQAUC/AlLQAC/AlL`QAD/AlL@ QAE/AlL`QA F/AlL-QApF/AlL?QAF/AlLMQAYG/AlL`QAG/AlL`sQAG/AlLQAG/AlLQA{H/AlLQAI/AlL`QAmI/AlLཎQA)J/AlLÎQAJ/AlLˎQAJ/AlLӎQA6K/AlLQAK/AlLQAK/AlL@QAsL/AlLQAM/AlLQAM/AlL@QAM/AlLQA(N/AlLQAN/AlLQA#O/AlLQAO/AlL`QA,P/AlLQAKP/AlL`QAP/AlLQA{Q/AlL QA)R/AlLQAR/AlLQAR/AlLQA&S/AlLQAqS/AlLQAS/AlL@QAJT/AlLQAT/AlLQAT/AlLQA$U/AlLQAfU/AlL`QAU/AlL@ގQA V/AlL ݎQAV/AlL QAV/AlLQA"W/AlLݎQAW/AlLڎQAW/AlL ߎQA>X/AlL`QAX/AlLQAX/AlLQAHY/AlLQAY/AlL QA)Z/AlL QAZ/AlL QA[/AlL`QA[/AlL QA'\/AlL@ QA\/AlL`QA\/AlLQA0]/AlL#QAt]/AlL'QA]/AlL +QAb^/AlL-QA^/AlL+QAD_/AlL`)QA_/AlL,QAN`/AlL@6QA`/AlL=QAa/AlLCQAa/AlL@JQAb/AlLVQAMb/AlLdQAyb/AlLsQAb/AlLzQAb/AlL@tQAb/AlL@nQACc/AlLmQA[c/AlLwQAc/AlL QAc/AlL QA)d/AlLQA[d/AlLQApd/AlL QAd/AlLQAd/AlL@QAd/AlL@QAMe/AlLQAve/AlL`QAye/AlL|QAe/AlL`tQAe/AlL oQAe/AlLpQAf/AlLvQA^f/AlL@yQAf/AlL@zQAf/AlL@{QAf/AlLzQAg/AlLwQAg/AlLvQA h/AlLwQATh/AlL`xQAh/AlLqQAh/AlLqQA0i/AlLoQAi/AlL@iQA!j/AlLeQA{j/AlL@bQAj/AlLgQAk/AlLoQAhk/AlL uQAk/AlLuQA7l/AlL`vQAvl/AlLrQAl/AlLkQAl/AlLaQAgm/AlL`_QA&n/AlL@\QAn/AlLZQAn/AlL`[QAoo/AlLYQAp/AlL@VQAp/AlLTQAp/AlL[QAq/AlLfQAr/AlLtQAkr/AlLzQAr/AlLQAr/AlLQALs/AlLQAs/AlLQA2t/AlL`QAt/AlLQAt/AlL`QAHu/AlL@QAu/AlLQAu/AlLࡏQAu/AlLQA#v/AlLQAVv/AlLɏQAv/AlL֏QAv/AlLۏQAAw/AlL@QAw/AlLQAw/AlL QAix/AlLQAx/AlL@QAYy/AlL@QAy/AlL`QAy/AlLQAz/AlLQA6z/AlL QArz/AlL QAz/AlL`QA{/AlL` QA<{/AlL@QAf{/AlL@QA{/AlL QA{/AlL#QA5|/AlL .QA|/AlL3QA|/AlL0QA,}/AlL*QA*}/AlL2QA$}/AlLYQA:}/AlL@`QAS}/AlLgQA}}/AlL lQA}/AlLkQA}/AlLhQA/AlLTQA/AlL8QA]/AlL@QAy/AlLQA$/AlLЅQAi/AlL~QA/AlL`QAҡ/AlLʎQAƤ/AlL`QA/AlLQA/AlLQAD/AlL QA/AlL`QA/AlL@*QAM/AlL=QA/AlL`PQA/AlLPcQA@ͩ/AlL`eQA/AlLoQA/AlL`QAy/AlLQAm/AlLQA/AlLxQAY/AlLwQAs/AlLwQA}/AlLwQA/AlLwQAu/AlLwQAq/AlLwQAb/AlLwQA[/AlL`wQAl/AlLwQA}/AlLqwQA/AlLewQA/AlLVwQAy/AlLIwQAm/AlL8wQAs/AlLp2wQAv/AlL,wQAv/AlL`'wQA/AlL@wQA/AlL wQA/AlLwQA/AlLvQAȍ/AlLvQAލ/AlLvQA/AlL vQA/AlLvQA/AlLvQA/AlL vQA/AlL@vQA/AlLuvQAݍ/AlLbvQA/AlL@LvQA/AlL?vQA/AlL+vQA/AlLvQA/AlL vQA /AlLuQA+/AlL@uQA0/AlL@uQA /AlLuQA/AlLuQA"/AlLuQA"/AlL uQA./AlLuQAA/AlLuQA5/AlLuQA@0/AlLxuQA!/AlLuQA׍/AlLuQA/AlL~uQA8/AlL`|uQA/AlL|uQA[/AlLvuQAP/AlLsuQA1/AlLluQA/AlLauQAʋ/AlLbuQA/AlLguQA/AlLouQA^/AlLvuQA/AlLtuQA/AlLquQA/AlLouQA[/AlLquQA2/AlL@zuQA/AlL0{uQA߉/AlLuuQA׉/AlL tuQA/AlLluQA/AlLeuQAA/AlL@]uQA/AlL@XuQA/AlLXuQA|/AlLSuQA/AlLLuQA/AlLFuQA/AlL;uQAy/AlL8uQAX/AlL7uQA/AlL7uQAw/AlLP9uQA/AlL.uQAC/AlL-uQA/AlL/uQA͆/AlL3uQA/AlL-uQAz/AlL@'uQAx/AlL uQA/AlLuQA/AlL uQAs/AlLuQAS/AlL@uQA/AlLtQAȅ/AlLtQAb/AlLuQA%/AlL`tQA/AlLtQA/AlLtQAՄ/AlL@tQAЄ/AlLtQA/AlLtQA/AlLtQA/AlL`tQA_/AlLtQA6/AlLtQA/AlLtQA߃/AlLtQA/AlLtQA'/AlLtQAт/AlLtQA/AlL tQAV/AlLtQAׁ/AlL`tQA/AlL`tQAW/AlLtQA-/AlLtQA/AlLtQA΀/AlLtQA/AlLtQAN/AlLptQA%/AlLptQA/AlLtQA/AlLtQAt/AlLtQA+/AlL@tQA~/AlLtQA~/AlLtQAP~/AlL`|tQA&~/AlLttQA~/AlLktQA~/AlLctQA}/AlL\tQA}/AlLYtQA{}/AlLStQAr}/AlLItQAr}/AlL?tQA}/AlL9tQA}/AlL1tQAr}/AlL *tQA7}/AlL#tQA}/AlL tQA|/AlLtQA|/AlLtQA,}/AlL` tQA&}/AlLtQA}/AlLsQA|/AlLsQA|/AlLsQAW|/AlLsQA~|/AlLsQA|/AlLsQA|/AlLsQA|/AlL0sQA|/AlL`sQA|/AlLsQA |/AlL@sQA{/AlL sQAj{/AlLPsQA*{/AlLsQA{/AlL@sQA&{/AlL`sQA{/AlLsQAz/AlL`sQAz/AlLsQAz/AlLsQAz/AlLpsQAz/AlLsQAy/AlLsQAy/AlLsQALy/AlL sQAy/AlLsQAx/AlLйsQAx/AlLsQAQx/AlLsQAMx/AlLsQA-x/AlL`sQAx/AlLsQAw/AlLsQAw/AlLмsQATw/AlLsQAw/AlL sQAv/AlLsQAv/AlL@sQA?v/AlLsQA v/AlL`sQAu/AlLsQAu/AlL sQAeu/AlLsQA9u/AlLsQAt/AlLsQAt/AlL`sQAt/AlLsQAtt/AlLsQAot/AlLtQA8t/AlLtQAs/AlLtQAs/AlL@!tQAs/AlL&tQAs/AlL(tQAhs/AlL$tQAs/AlL $tQAs/AlL`+tQA,s/AlL1tQA!s/AlL7tQAs/AlLzQA,|/AlLEzQA0|/AlL`OzQA|/AlLXzQA|/AlL@`zQAH|/AlL`dzQA|/AlL@dzQA|/AlLnzQA|/AlL|zQA}/AlL }zQAH}/AlL@zQA}/AlLzQA~/AlLzQAR~/AlLzQA~/AlLzQA~/AlLzQA/AlL`zQAy/AlL@zQA/AlLzQA/AlLzQA/AlL@zQA/AlLzQA/AlL`{QAO/AlL {QAv/AlLP{QA/AlL{QA/AlL{QA܀/AlL&{QAE/AlL0{QA/AlL05{QA/AlL0{QAԂ/AlL@!{QA/AlL{QAK/AlL{QA~/AlL {QA/AlL {QA/AlL` {QA//AlL{QA/, X.AlL`IQAd,/AlLQA|$/AlL@QA$/AlLQAb&/AlL QA&/AlLQA!'/AlL@QAQ'/AlL QA'/AlL@QA'/AlLpQA'/AlLaQA(/AlLPQA )/AlL QA)/AlLQAW*/AlL ߖQA+/AlL`QA+/AlLQAd,/AlL ]QAT,/AlLQAZt.A[zCQAC,ޗ.AFFKQA`2N.AxVQAxn.A wfQA`Ȩnc.A"oQAmp.A wBzQA.A$€QA 6Ι.A[z"QA講N.AxQA講Ύ.A wBQA0 .A[zbQAxo%.AqubQA].AFF♏QAQΟ.A0QAP.A[z"QAhގ.Aj{"QA -S.ADs¯QA+o.Aj{"QAM%Q.AFFQA@8Ϣ.AFFbŏQAhL.AxǏQAFOb.AFFˏQAhLs.Aآ}ӏQA1`.Aqu"܏QA?.AquQAغY.AFF QAFo0.Aj{bQAQ.A8QA.A[zCQA 6n`.AquHQAmB.A"OQAQnC.Aآ}[QA -SOZ.A$BeQAغYr.AFFrQAOz.AqubQAk.AxQAQNJ.AxQA 6N=.AqubQA .A适ÐQAxO.AQAQnJ.A wQA+#.AԅQA1.A$QAxϥ.A[zB)QAغYW.AX/QA#.AlL@4QA.AlL`:QA.AlL`@QA1.AlLHQA.AlLOQA2.AlL@XQAt.AlL_QA.AlLkQA.AlLwQA.AlL@QA$.AlLQA.AlL`QA.AlL@QA+.AlL`QA[.AlL`ÑQA.AlLԑQA.AlL QA.AlLQA.AlLQA.AlLQA5.AlLQA.AlL@QA.AlL QA.AlL -QA3.AlL 9QAS.AlLGQAE.AlLRQA-.AlL\QA.AlL`iQA.AlLqQA.AlLQAq.AlLQA:.AlLಒQA.AlL@ŒQA .AlL ВQA.AlLےQA3.AlL QA].AlL`QA\.AlLQA^.AlLPQAv.AlL@QA.AlL1QA.AlLCQA.AlLIQA.AlL SQAO.AlL hQA.AlLzQAB.AlL QA.AlL`QA.AlL`QA.AlLQA.AlL@œQA.AlLQA*.AlLQA.AlL@QA.AlLQAr.AlLQA.AlLēQAp.AlLǓQA .AlLQAO.AlLQA.AlLQA .AlLQA.AlLQA/.AlL`QAi.AlL`QA.AlLQAS.AlLQA.AlL`QAv.AlLQA.AlLQAf.AlL@QA.AlLQAM.AlL“QA.AlL˓QA.AlL`֓QA.AlLܓQA.AlL`ܓQAa.AlLܓQA.AlLpQA.AlLQA/.AlLQAZ.AlLQA8.AlLQA .AlLQA.AlLQA\.AlLQA.AlL QAa.AlLQA[.AlL&QA{.AlL0QAu.AlL`0QA.AlL 4QA.AlL ;QA.AlLGQA.AlLQQA.AlL`_QA .AlL oQA.AlLQA$/AlLQA/AlL`QA/AlLĔQA/AlLՔQA/AlLQA8/AҲffQAe/AlL`QA/AlL QA/AlLQAm/AlL QA6/AlL QA.AlLQA.AlL@1QA.AlL >QA.AlLQQA.AlL@gQA.AlLuQA/AlLQA/AlL@QA.AlL@QA.AlL@QAK.AlLQA.AlLЕQA.AlLQA1.AlL`QA.AlL@QA.AlL!QA.AlLKQA:.AlLZQAj.AlL@fQA.AlLrQA.AlLQA.AlL@QA].AlLQA.AlL`QA /AlL`QA4/AlL@ŖQA/AlL͖QA/AlL@ӖQAL/AlLږQA/AlL QA_/AlLQA/AlL@QA/AlLQA/AlLQA(/AlLQA/AlLQA/AlLQAD/AlL@QA}/AlL@QA/AlLQA,/AlLQAe/AlL QA/AlLQA~/AlLQA/AlLQAy/AlL@ QA /AlL QAU /AlL&QAo /AlL`+QA /AlL`:QA4 /AlLDQA /AlLLQA /AlLQQAX /AlL@JQA /AlL >QA /AlL-QA /AlL#QA1 /AlLQA /AlL$QA/AlL *QAo/AlL%QA/AlL'QA/AlL+QA/AlL.QA/AlL@2QA3/AlL`9QAu/AlL:QA/AlL7QA /AlL7QAX/AlL :QA/AlL?QA/AlLCQA/AlL:QAL/AlL9QAz/AlL@QA/AlLJQA/AlL MQA/AlLDQA/AlL =QAr/AlL`?QA/AlLGQA/AlLMQA/AlL OQAl/AlL PQA/AlL`MQA/AlL NQA/AlL@UQA/AlL`]QA/AlLdQA/AlLjQA$/AlLoQA/AlLqQA{/AlLgQAr/AlL@aQA/AlLbQA5/AlLbQAs/AlL\QA/AlLYQA/AlL\QA&/AlLeQA/AlL iQA/AlL`oQAj/AlL pQA/AlL mQAQ/AlLjQA/AlLdQA/AlL _QAp/AlLcQAc/AlLpQAc/AlLQA/AlLQA/AlL~QA/AlLQA/AlLQAh/AlL QA/AlL@QA/AlLQAB/AlLࣗQAq/AlL`QA/AlLQA /AlLQAr /AlL˗QA /AlL՗QA!/AlL ޗQA:!/AlLޗQA!/AlLQA!/AlLQA"/AlLQAI"/AlLQA"/AlL@QA"/AlL`QA#/AlL@QA"/AlLQA"/AlLQA #/AlLQAR#/AlL QA#/AlL QA#/AlL@ QA*$/AlLQAc$/AlLQA$/AlL@QA0ށO/AV$3mQAb \r/AlL0dqQAf/AlLBqQA.h/AlL@AqQAi/AlLCqQAzj/AlL`GqQAj/AlLGqQAk/AlLIqQAk/AlL`EqQA'l/AlL@Gb/A.B)`mQAxOa/A8mQANoa/A]6mQAFIXa/A(RܹmQAa/A3@mQA1`/A , mQAxO`/Ax,.mQA 6ND`/AVs1mQA`/A ,mQAM%?_/A3mQAQf_/A24`mQA)_/A3`mQAN^/A ,mQA0 ?w^/Ax,. mQA@N0^/Ax,.mQA ԓ]/A֙jmQAm΂]/A3mQAhހ]/A24`mQA>k]/Ax,.mQAxO;]/AVs1 mQA0\/A3mQA`ȨN\/A/mQA@N"\/A3@mQA講N[/A24`mQAp`q[/A ,`nQAxN[/A*nQANZ/A24@nQAPz7Z/A , nQAS>Y/A'@ nQAxNY/A , nQA(?gN.Y/AVs1nQA_9X/A.B)`nQA`2NX/A24 nQAPzLX/A ,`)nQASX/AVs13nQA >W/A' =nQAC,ސW/A.B)@nQAS>]W/A ,@nQAC,IW/A ,`InQADW/A]6RnQAxN,W/A3ZnQANV/Ax,.@anQAm>V/AVs1bnQA`2NbV/A3bnQA@MNU/Ax,. bnQA#ZΧU/A/enQA#ZNU/A3knQA%TU/A.B)qnQA=)U/AVs1{nQA?NT/A]6nQA@MNT/A ,nQAzFVT/A*nQAT/A* nQA%NS/AVs1 nQA=)T/AVs1nQAMS/A*nQAHMKS/A3nQA`2N8S/Ax,.nQA NR/Ax,.nQA݅R/Ax,.nQA`ڼMLR/A*nQA(HM&R/A/nQApQ/A3nQAMQ/A24|nQApiQ/A/~nQAP/Q/AVs1nQAL=Q/A'`nQALP/AVs1nQAL݁P/AVs1 nQAM(P/A3nQAO/A/nQAށO/AVs1nQA,MO/A , nQAlO/A3nQA P/A*nQAP/A ,nQApP/A24 nQApP/Ax,.nQAP/A3nQA*P/A3nQAX5P/A*oQAMTP/A'@oQAcM^P/A.B)oQAcM^P/A*%oQApiP/A24@.oQApuP/A'6oQAGlyP/A3=oQApwP/A|9@DoQApt]~P/AG;MoQAL]P/AXQAI/AlL@QA/AlLJQA0/AlL RQA/AlL`VQA/AlLVQAs/AlLXQA/AlL`ZQA&/AlLXQA/AlLQA/AlLQA/AlLQAM/AlL@QA/AlLQA/AlLQAZ/AlLQA/AlL`QA/AlL{QA/AlLqQA /AlL`kQA[/AlL eQA/AlL\QA /AlLPQAi/AlLBQA/AlL4QAQ/AlL`.QA/AlL@&QA/AlLQA/AlL QA/AlL QA/AlL QAD/AlL QA"/AlLQA/AlLҲQA/AlLɲQA/AlL QA/AlLQAu/AlLQAL/AlLQA'/AlLQA/AlLQA/AlL sQA/AlL`tQAL/AlLsQA/AlL pQA/AlL@nQAp/AlLlQA+/AlL`jQA/AlLhQA/AlLgQA`/AlL dQA/AlLbQA/AlL`aQA/AlLbQA9/AlL eQA/AlLbQAv/AlLaQA?/AlL`^QA /AlLVQA/AlL@PQA/AlL KQA+/AlLBQAP/AlL@6QAh/AlL+QA|/AlL@!QA/AlL`!QAZ/AlLQA/AlLQA/AlL`QAu/AlL$QA/AlL'QA /AlL`'QAQ/AlL &QA/AlL $QA/AlL`!QAI/AlLQA/AlLQA/AlL QA=/AlLQAd/AlL QA/AlL QA/AlLQA/AlLQAt/AlL QAr/AlLQA/AlL@QA/AlLQAG/AlL QA]/AlL@QAa/AlL@QA}/AlLԱQA/AlLȱQAh/AlL@QA/AlLQAY/AlL@vQA/AlLiQA/AlL`WQAO/AlL@CQA/AlLҰQA/AlLQA/AlLQA/AlLQA:/AlL@QA/AlL QA/AlL@ǰQAf/AlL߰QA[/AlLQA/AlL@#QAb/AlL#QA/AlL QA/AlLQA/AlL QA/AlL QA/AlLQA/AlLذQA/AlL`ȰQA/AlLQA/AlLQAE/AlL@QA*/AlLbQAZ/AlLNQA/AlLFQA/AlL*QA/AlL)QA/AlL/AlL`QA/AlL@ QA/AlLQA /AlL'QAJ/AlL@1QAg/AlL>QAT/AlL`GQA?/AlL IQA(/AlL KQAQ/AlLHQA/AlLGQA/AlLFQA/AlLEQA/AlLDQAy/AlLDQA /AlLBQA/AlLBQA/AlLAQAa/AlL @QA/AlL@>QA/AlL=QA7/AlL/AlL`;QA/AlL DQA/AlLHQA7/AlLLQA/AlLPQA/AlLUQA+/AlL[QA/AlL_QA/AlL^QA>/AlL]QA֜/AlL@^QAw/AlL]QA/AlL[QA/AlL[QAC/AlL[QA/AlL^QA/AlL gQAX/AlLeQA/AlL aQAߙ/AlL ^QA/AlL\QA7/AlLcQA/AlLeQA/AlL@cQAO/AlL ]QAܗ/AlLZQA/AlL@VQAS/AlLWQA/AlL@XQA/AlL _QA/AlL@eQA/AlLeQAm/AlLgQA~/AlL`fQA%~/AlL hQA@~/AlLjQA}/AlLlQA}/AlLnQA}/AlLoQAo}/AlLoQA)}/AlL`rQA}/AlL@wQA|/AlL`~QA|/AlLQA|/AlLQA|/AlL`QA|/AlL`QA_|/AlL౵QA%|/AlLQA{/AlL`QAb{/AlLõQAz/AlLʵQAz/AlLѵQAOz/AlLֵQAy/AlL QAy/AlLQAfy/AlL@QA y/AlLQAx/AlL QAzx/AlL`QAx/AlLQAw/AlL`QA{w/AlL"QAEw/AlL+QAw/AlL`8QAv/AlLDQAv/AlLFQAv/AlL`HQAv/AlL@LQALv/AlL RQAu/AlL`XQAu/AlL^QA^u/AlL`fQA8u/AlLpQAu/AlL@|QAt/AlLQAt/AlL`QAt/AlLQA.t/AlLQAs/AlL QAs/AlLQA=s/AlLശQAr/AlL๶QAr/AlLQAPr/AlL`öQAq/AlLжQA@q/AlL`׶QAp/AlL`ݶQAp/AlLQA4p/AlL QAo/AlLQAio/AlL@QAo/AlLQAn/AlLQAn/AlLQA~n/AlL QA.n/AlL QAm/AlLQA]m/AlL`QAl/AlLQAol/AlLQA\l/AlLQAl/AlL #QAk/AlL)QAk/AlL/QAwk/AlL5QA8k/AlL AQAj/AlL@IQArj/AlLQQAj/AlLVQAi/AlL@bQA~i/AlLiQA@i/AlLoQAi/AlL`wQAh/AlL`QAh/AlLQA7h/AlL QAg/AlL@QAg/AlL@QA#g/AlLQAf/AlLQA-f/AlLQAe/AlLQAe/AlL0QAte/AlL`QA4e/AlLQAd/AlL`QAd/AlL@QA:d/AlLQA!d/AlL{QAd/AlLuQAc/AlLmQADc/AlL@bQAb/AlLTQACb/AlL IQAa/AlLCQAda/AlL@QA`/AlL@?QA`/AlLJ/AlL ķQA&J/AlLηQA'J/AlLQA"J/AlLPQAJ/AlLQAI/AlLP4QAkG/AlLQAF/AlLݸQA@/AlLpuQAG/AlL`JQA1N/AlLQAQ/AlLȺQA@nY/AlLQQAuY/AlLXQAY/AlLlQAY/AlLQAY/AlLQAqY/AlLQApY/AlLQAqY/AlL˺QApY/AlL ۺQAY/AlL`QAY/AlLQAY/AlL`QAY/AlL*QAY/AlL 9QA*Y/AlL(QAZ/AlL QAZ/AlLQAZ/AlLQA[/AlL QA[/AlLQA5\/AlLQA\/AlLQA\/AlLQA~]/AlL@QA]/AlLQAO^/AlLQA^/AlLQAF_/AlL QA_/AlL`QA`/AlL`QAx`/AlLQA`/AlL୻QAQa/AlLQAa/AlLQAsb/AlL»QAb/AlLĻQAc/AlL@ƻQAc/AlLɻQA d/AlL̻QApd/AlL̻QAdd/AlLŻQAWd/AlL@QAUd/AlLQA]d/AlLࢻQAcd/AlL`QAhd/AlL QA9f/AlLQAf/AlLQAf/AlLQAg/AlLQApg/AlLQAg/AlL`QAsi/AlL`QAi/AlLQAj/AlLQAjj/AlL`pQAk/AlLVQAQk/AlLJQAk/AlL6QAFl/AlL*QA*m/AlL QAn/AlLQAq/AlL QAKs/AlL@QA|t/AlLQAou/AlLQAu/AlLQAyw/AlLɺQAw/AlLɺQA x/AlL`QA]x/AlLQAx/AlL@QAGy/AlLQAy/AlLQAy/AlLQARz/AlLQAz/AlLQAx{/AlLQA{/AlLQA{/AlL@QA7|/AlL(QAg|/AlL0QA|/AlLQA./AlL.QAS/AlL QA^/AlLQAk/AlLQAs/AlL@ϿQA/AlLQA/AlLQA]/AlL QAE/AlL`qQAb/AlL [QA/AlLQQAО/AlL@FQA/AlL;QA /AlL`,QA*/AlLQA/AlL` QA/AlLQA2/j/AlLnQA1]0AlLQA0AlL QA0AlLQA0AlL`QA0AlLyQAG0AlLlQAr0AlL_QA0AlL@TQA0AlLFQA@0AlL>QA@0AlL6QA0AlL0QA0AlL,QA 0AlLైQA 0AlL1QA 0AlL)QA5 0AlLQA 0AlLQA 0AlL@QA 0AlLчQAE 0AlL`QA@ 0AlL QA 0AlLQA@0 0AlLQA 0AlLEQA' 0AlLQA 0AlLQA0AlL QA@0AlLQA0AlL@QA0AlL@ȆQA0AlL@͆QA0AlLQA0AlLQA0AlLૅQA0AlL`QA0AlLQA@0AlLQA0AlLQA@0AlLxQA@0AlLlQA0AlLbQA@0AlLpXQA@0AlL JQA 0AlLh9QA0AlL@QAf0AlL`0QAX0AlL@QA!0AlL QA@ 0AlL QA 0AlL@cQA 0AlL2QA@ 0AlL QA 0AlL QA: 0AlLQAh 0AlL QA 0AlL`QA@ 0AlL QA 0AlLQA 0AlL QA 0AlLQA@M 0AlLQA 0AlL@QA@ 0AlL{QA 0AlLrQA 0AlLiQA 0AlL[QAj 0AlLPQAf 0AlLOQA@] 0AlL3QA@X 0AlL@,QA@X 0AlL!QA@] 0AlL@QAO 0AlL QA4 0AlLQA@ 0AlL`QA@ 0AlLQA 0AlLQA 0AlLQAP 0AlLQA 0AlLQA 0AlLQA 0AlL QA 0AlLQA 0AlLQAu 0AlLւQA 0AlL͂QA 0AlL łQA 0AlL‚QA 0AlL QA@ 0AlL‚QA 0AlL@ƂQA& 0AlL`˂QA9 0AlL@ςQA@P 0AlL҂QAj 0AlL݂QA` 0AlL@QA@ 0AlL߂QA 0AlLςQA 0AlLʂQA@ 0AlLQA@30AlLbQA0AlLOQA0AlLPQAI0AlL RQA@0AlLTQA@0AlLXQA0AlLRQA 0AlL JQA 0AlL?QA0AlL4QA0AlL)QA0AlLQA!0AlLQA50AlLQA@G0AlL@QA^0AlL`QAn0AlLQAl0AlL߁QAe0AlLՁQA@a0AlL`ρQAe0AlL`ǁQA0AlLཱྀQA0AlLQA0AlLQA 0AlLQA0AlL@QA 0AlLQA`0AlLqQA0AlLdQA0AlL@TQA0AlL@QA0AlL3QA@0AlL %QA@0AlLQA]0AlL@QA0AlLQAK0AlLQA0AlLހQA0AlLཀQA0AlLQA@{0AlLQA0AlL`QAy0AlLxQA0AlLQA0AlL`QA@40AlL@QA@o0AlL`ĀQA0AlL`΀QA0AlLڀQA@H0AlLQA@0AlL ـQA0AlL஀QA@0AlLીQA0AlL QA0AlLtQA@M0AlLbQA@0AlL>QA0AlL)QA0AlL.QA%0AlL9QA0AlL@5QA\0AlL`%QA_ 0AlL"QA` 0AlL!QA 0AlL *QA 0AlL5QA!0AlL BQA@"!0AlLKQA>!0AlLTQAR!0AlLXQAu!0AlLcQA!0AlL`oQA!0AlLzQA!0AlLQA!0AlL`QA"0AlLQA"0AlLQA/"0AlLQAA"0AlLQA@"0AlLÀQA"0AlL̀QA@"0AlL̀QA"0AlLـQA@"0AlLQA"0AlLQA'#0AlL@ QA:#0AlL0/QA@#0AlLQA@$0AlLुQA?$0AlL ʁQAW$0AlL@ŁQAp$0AlL QA@$0AlLQA$0AlL QA$0AlL QA%0AlLОQA@.%0AlL`QA@&0AlLdQA&0AlLQA?'0AlLࢁQA'0AlLQAz'0AlLɁQA'0AlL ʁQA'0AlL΁QA@(0AlLсQA(0AlLԁQA(0AlL QA@Z)0AlLށQA^)0AlL݁QA,0AlL`QA,0AlLQA@,0AlL`ӀQA@^-0AlL@QA{-0AlL@QA-0AlLQAO.0AlLࣀQA.0AlLQA.0AlLQA>/0AlL@QA/0AlL@QA/0AlL`QAT00AlL`QA@00AlL@QAD10AlL@QA10AlLQA@10AlL`QA>30AlLQA@l30AlLQA@30AlL@QA@50AlL QA`50AlL QA30AlLQA:30AlLQA@330AlL~QA@'30AlLvQA20AlLxQA20AlLaQA}20AlL`QAp20AlL ^QA30AlLQA20AlL@~QA30AlL@~QA@q30AlL~QA@30AlL~QAM40AlL~QA 50AlL@~QAf40AlLL~QA@10AlL`r}QA@30AlLI}QA30AlLE}QA{40AlLX}QA40AlL O}QA60AlL|QA60AlL|QAU70AlLr|QA@Z70AlLp|QA70AlLC|QA70AlL9|QA@ 80AlL/|QA$80AlL '|QA780AlL`|QAQ80AlL|QA@u80AlL` |QA80AlL{QA80AlL@{QA80AlL`{QA80AlL{QA80AlL{QAW80AlL`{QA(80AlL@{QA70AlL{QA@70AlL{QA60AlL{QA=60AlL {QAM60AlL{QAh60AlL@{QA60AlL{QA60AlL@{QA@60AlL@z{QA60AlL@q{QA60AlLe{QA60AlLa{QA@70AlL_{QA280AlLh{QA80AlL@E{QA80AlL2{QA(90AlL {QA290AlL{QA@990AlL@zQA@@90AlL zQAI90AlLzQAM90AlLzQAT90AlLzQAZ90AlLzQAU90AlLzQAR90AlL`zQAS90AlL`zQA@P90AlLzQAS90AlLwzQA80AlLrzQA80AlLhzQA@y80AlLhzQA=80AlL@hzQA70AlLgzQA@70AlLgzQAq70AlLhzQA370AlLgzQA60AlLdzQA@60AlLezQA@v60AlL@kzQAI60AlLpzQA*60AlLvzQA60AlL }zQA50AlLzQA50AlLzQA50AlLzQA50AlLzQA50AlLzQA@J40AlL@zQA30AlLzQA530AlL`zQA20AlL_zQA20AlL]zQAf30AlL zQA40AlL@ zQA40AlL0zQA40AlLzQA40AlLzQA40AlL@zQAA50AlL zQA@50AlLyQA160AlL yQAu60AlL@yQA60AlLyQA70AlLyQA,70AlLyQA@@70AlL@yQA@I70AlLyQAN70AlLyQAS70AlLyQA70AlL`fyQA70AlLHyQA80AlLByQA80AlL yQA80AlLyQA@80AlLxQA@80AlLxQA90AlL`xQA"90AlLxQAL90AlL xQAc90AlLxQA}90AlL`xQA90AlLxQA90AlLxQA90AlLxQA90AlLxQA@90AlL xQA:0AlLsxQA%:0AlL@gxQA@B:0AlLYxQA@]:0AlL@LxQA@u:0AlLDxQA@y:0AlL`=xQA:0AlL@5xQA:0AlL+xQA:0AlL@xQA@:0AlL xQAy:0AlL` xQAn:0AlLxQAl:0AlLwQA[:0AlLwQA@H:0AlLwQA+:0AlLwQA90AlLwQA90AlLwQA@90AlLwQAn90AlL wQAE90AlLwQA90AlLwQA80AlLwQA80AlLwQA80AlLwQA@80AlL@wQA80AlL`wQAp80AlL wQAS80AlL xQA680AlLxQA80AlLxQA70AlL xQA70AlL xQA70AlL`xQA70AlLxQA70AlLxQA70AlLxQA@j70AlL`xQAY70AlL`xQA;70AlL"xQA+70AlL #xQA70AlL$xQA70AlL@$xQA60AlL#xQA60AlL`"xQA60AlL xQA60AlL xQA@60AlLxQA@60AlLxQA60AlL xQA@60AlLxQA@60AlLxQA@60AlL wQA60AlL@wQA60AlL wQA60AlLwQA@60AlLwQA@60AlLwQA60AlLwQA70AlL@wQA970AlL@wQAa70AlLwQA70AlL`wQA70AlLwQA70AlLwQA:80AlLwQAz80AlLwQA80AlL`wQA@ 90AlLwQAW90AlL@wQAT90AlLywQA<90AlLrwQA@90AlLmwQA@80AlLcwQA80AlLRwQA 90AlL`DwQA+90AlL9wQA@\90AlL`2wQAx90AlL-wQA90AlL $wQA90AlL`wQA90AlLwQA90AlLvQA@90AlLvQA@90AlLvQA90AlL vQA'90AlL@vQAT90AlLvQA:0AlLvQA@:0AlLvQA;0AlL`vQAi<0AlLvQA2<0AlL{vQA<0AlLYvQA<0AlLYvQA@<0AlL ZvQA<0AlLZvQA7=0AlL@bvQA@>0AlL`svQA?0AlLvQAA0AlL@vQAWA0AlLvQAA0AlLvQAB0AlL`vQAkB0AlLvQAB0AlLvQAB0AlL vQA4C0AlLwQArC0AlLwQAC0AlL0wQAC0AlL BwQAD0AlLUwQA@&D0AlL[wQA@,D0AlL`\wQA4D0AlL ^wQAtD0AlLawQA@D0AlL\wQAD0AlL`XwQAD0AlL`VwQAD0AlLRwQA%E0AlL QwQA@ME0AlL SwQAE0AlL@SwQA@E0AlLRwQA@E0AlLOwQA F0AlLKwQA2F0AlLFwQAvF0AlLBwQAF0AlL:wQA@F0AlL6wQAF0AlL@6wQAF0AlL6wQAG0AlL5wQA-G0AlL5wQANG0AlL@1wQAzG0AlL@9wQAG0AlL`7wQAG0AlL`8wQAG0AlL?wQAG0AlL @wQAH0AlL=wQA+H0AlL9wQASH0AlL@/wQA@H0AlL 3wQAH0AlL.wQAH0AlL@#wQAH0AlLwQAI0AlL wQAHI0AlLvQA@I0AlLvQAI0AlLvQAI0AlLvQA@J0AlLvQA K0AlLvQA6K0AlLgvQA@cK0AlLSvQAkK0AlL0PvQAK0AlL9vQAK0AlL`#vQAK0AlLvQAL0AlLvQAeL0AlLuQAL0AlLuQAL0AlLuQA/M0AlLuQAM0AlLuQAUN0AlLouQAN0AlL]uQAN0AlL`IuQA@N0AlL3uQAO0AlL#uQA@UO0AlL`uQAO0AlLtQA@7P0AlLtQARP0AlLtQA[P0AlL`tQA}P0AlL@tQAP0AlLtQA@Q0AlLtQA2Q0AlLtQAmQ0AlL`tQAQ0AlL@tQAR0AlLntQAT0AlLtQA0T0AlLtQA@wT0AlLtQA@T0AlLtQA@T0AlL tQA;U0AlLtQAwU0AlLtQA@U0AlLtQAU0AlL tQA V0AlLtQA@0V0AlLtQAgV0AlL tQAV0AlLtQAV0AlLtQAV0AlLtQAV0AlLtQAW0AlLtQA(W0AlLtQA@*Y0AlL[tQAZ0AlLtQA=\0AlL tQA1]0AlLsQA]0AlL`sQA\0AlLsQA@\0AlLsQA@\0AlLsQAt\0AlLsQAP\0AlLsQA+\0AlLsQA@\0AlL sQA[0AlLsQA[0AlL`sQA@[0AlL@sQA[0AlL`sQA[0AlL~sQA[0AlL ysQAq[0AlLwsQA@L[0AlLtsQA([0AlL`rsQA [0AlLnsQAZ0AlLhsQAZ0AlL`sQAZ0AlL WsQAZ0AlLJsQA@Z0AlL ?sQAZ0AlL4sQAZ0AlL .sQAZ0AlL$sQAHZ0AlLsQA@?Z0AlLsQA_"pQAT0AlL!pQAT0AlLpQApbT0AlL@pQA)T0AlL pQApS0AlLpQAS0AlL@pQA@yS0AlL pQA/S0AlLoQA@R0AlL@oQApR0AlL`oQAR0A{SoQAR0AlLoQAkR0AlLoQA6R0AlLoQAvR0A(EoQA0R0AlL oQAQ0AlLoQAYQ0AlLoQAQ0AlLoQAP0AlL oQAآP0AHqoQA(5P0AoQA\s P0AމoQA06P0AlL uoQAO0AlL[oQAO0AlLNoQA0cO0AlLEoQA@ފ[O0AxԢCoQA9O0AlL >oQAO0AlL9oQA@N0AlL 3oQAN0AlL@4oQAN0AlL7oQA0N0AlLF0AlL`pQAE0AlLpQAE0AlLpQA[E0AlLpQA@9E0AlLpQAE0AlLpQAD0AlL`pQA0^D0AlLpQAD0AlL`pQA0C0AlLpQAhC0AlL pQA/C0AlLpQA4)B0Aą(pQA@B0AlLpQAB0AlLpQAp%B0AlLpQAA0AlLpQApA0AlLpQAA0AlLpQAA0AlLtpQAA0AlLlpQApA0AlLfpQA0iA0AlLbpQA3A0AlL^pQA@0AlL@YpQA@0AlLMpQAp3l@0A۸ApQA0@0AlL@pQAGi@0Aqu0AlLoQA>0AlLoQAP>0AlL`oQA>0AlLoQA=0AoQAp=0AlLoQA@=0AlLoQA;=0A!"oQA06=0AlL`oQA0<0AlLoQA<0A yӢoQAp<0AlLoQA@s<0AlLoQA4<0AlLoQA <0AlLoQA;0AlLoQA;0AlL oQA@l;0AlL oQA@A;0AlLoQA&;0AlL@{oQA(;0AlL@poQA9;0AlLeoQA?;0AlL@WoQAp>;0AlLMoQA);0AlL>oQA;0AlL@2oQA:0AlL/oQA:0AlL1oQAm:0AlL 5oQAp@:0AlL 9oQAhI+:0A8;oQAp:0AlL`?oQA90AlLBoQA90Aqu:CoQA90AlLFoQA90AlL JoQA090AlLKoQAi90AlL MoQA0790AlLPoQA@90AlLToQA090AlLXoQA480AGboQA80AlL@doQAR80ARoeoQA080AlLhoQA80AlL ooQAi80AlLkoQA80AlLeoQA70AlL^oQA70AyQA*/AlL`JyQA/AlLUyQA,/AlL ayQA/AlLXyQA/AlLPyQA]/AlLZyQAQA0AlLGQA0AlL@OQA@0AlLTQA0AlLYQA@#0AlL`QAh0AlL]QAt0AlLdQA0AlL@kQA@0AlL@rQA@0AlL@yQA0AlL`QA0AlL QA,0AlLQA0AlL`QA0AlL@QA0AlLQA-0AlLQAO0AlLQA@u0AlL@QA0AlL@QA0AlL`QA0AlL`QA@80AlLQAS0AlLQA0AlLQA0AlL QA:0AlL}QA@ <0AlL@}QA\?0AlL}QA@f?0AlL}QA@r?0AlL}QADA0AlL^}QA@%@0AlL"}QA?0AlL`}QA?0AlL }QA?0AlL}QAU?0AlL }QA@.?0AlL}QA ?0AlL|QA>0AlL`|QA>0AlL|QA>0AlL|QA@>0AlL|QA@>0AlL@|QA>0AlL|QAw>0AlL|QAD>0AlL|QA>0AlL|QA@=0AlL@|QA=0AlL|QAu=0AlL|QAY=0AlL|QA2=0AlL|QA`<0AlLj|QAX<0AlL@h|QA;0AlL}QA}:0AlL}QAl:0AlL`}QA:0AlL }QA:0AlL@}QA:0AlL}QAb80AlL}QA 90AlLZ}QA80AlLS}QA80AlLI}QA@80AlL8}QAs80AlL.}QA?80AlL`"}QA80AlL`}QA70AlL }QA@70AlL`}QA\70AlL|QA@870AlL|QA "70AlL|QA60AlL`|QA@50AlL `}QA`60AlLd}QA60AlL@v}QA60AlL@m}QA@60AlL@h}QAq70AlL q}QAb80AlL}QA3).AlL@QAR/AlL]QA->/AlL]QA#@/AlLQAS@/AlLQAj@/AlLQAE/AlL0QA-E/AlL QAE/AlLQAE/AlLQAF/AlLQAF/AlLƕQAF/AlL͕QA G/AlLΕQAG/AlLǕQAG/AlL@yQAH/AlLQAgJ/AlLmQAR/AlL`QAQ/AlLQArQ/AlLdQAaQ/AlLSQAXQ/AlLFQAgQ/AlL )QAIQ/AlL@QAQ/AlLQAP/AlLQA!P/AlLȒQAO/AlL@QAO/AlL QAhO/AlLQAN/AlLyQA#O/AlLtQA/O/AlL nQA/AlL QA>/AlLQA>/AlLQAu>/AlL@QA=/AlLЍQA=/AlL ȍQA=/AlLQAU=/AlLQA==/AlLQA(/AlL@:QA(/AlL .QA(/AlL "QA(/AlLQA'/AlL"QA'/AlL QAs'/AlLQA8'/AlLQA&/AlLQA&/AlLQA&/AlLQA&/AlL@ڋQA&/AlL`̋QA&/AlL@QAD&/AlLQA%/AlLଋQA%/AlLQAl%/AlLQA%/AlL`QA$/AlL{QA$/AlLyQAn$/AlLsQA$/AlLfQA$/AlL@dQA#/AlL`YQA#/AlLPQA#/AlL@IQA[#/AlLCQA#/AlL?QA"/AlL`7QA"/AlL+QA3"/AlL%QA!/AlL'QA!/AlL$QA!/AlLQAR!/AlLQA'!/AlL`QA /AlL QA /AlLQAf /AlLQA/AlL`QA/AlLQAv/AlL@$QAE/AlL &QA/AlL-QAi/AlL(QA /AlL%QA/AlL"QA/AlLQA$/AlL`QA/AlLQA/AlLQA8/AlLQA /AlL QA/AlLQA/AlLQA;/AlL@ QA/AlL QA/AlL` QA:/AlL QA/AlL QA/AlL QAX/AlLQA/AlLQA/AlL`QA/AlL@QAT/AlL@QA/AlL@QAI/AlLQA/AlL QA/AlLߊQAd/AlL ܊QA/AlL`׊QA/AlL`ҊQA/AlL ΊQAo/AlLȊQAO/AlL0ÊQA/AlLQA/AlL`QAm/AlLŊQA/AlLĊQA/AlLÊQA/AlL@QAn/AlLQA/AlL@QA/AlLQA/AlLÊQA;/AlLŊQA/AlLNJQA{/AlLŊQAL/AlLĊQA /AlLŊQA/AlLȊQAT/AlL̊QA/AlLЊQA/AlL@ъQA /AlL`ƊQA* /AlLQAu /AlL QA /AlL QA /AlL QAe /AlL@QA /AlLQA /AlLQA /AlL࣊QAf /AlLQA; /AlL QA /AlLQA /AlLQA /AlLQA! /AlLsQA/AlLkQAr/AlL@bQA/AlLXQA/AlLOQA,/AlL`FQA/AlL AQAO/AlL`7QA/AlL 1QA\/AlL+QA/AlL'QAY/AlL $QA$/AlL,QA/AlL.QA/AlL2QAb/AlL 5QA(/AlL`7QA/AlL9QA/AlL9QAX/AlL`:QA/AlL;QA/AlL=QA/AlL@QA,/AlLDQA/AlLIQA/AlLMQAj/AlLPQA1/AlLRQA/AlLQQA.AlLPQA.AlLMQAO.AlLIQA.AlLFQA.AlLCQA.AlL@QA^.AlL=QA3.AlL :QA.AlL@6QA.AlL-QAT.AlL`QA?.AlL`QA.AlL@QA.AlL QA.AlLQAp.AlL QA*.AlLQA.AlLQA.AlLQAu.AlLQAG.AlLQA*.AlL ׉QA%.AlL`͉QA.AlL‰QA.AlLຉQA.AlLQA.AlLQA.AlL@QAG.AlL`QA.AlLQA.AlL@QA.AlL༉QA7.AlLQA.AlL@QA.AlLQA.AlL ˉQAv.AlL܉QAZ.AlLQAM.AlL QA,.AlL#QA.AlL@/QA.AlL9QA.AlL @QA.AlLQQAE.AlL ^QA.AlL@kQA.AlLxQA.AlLQAz.AlL QAm.AlLQAf.AlL QA@.AlLQA4.AlLĊQA".AlLԊQA#.AlLߊQA .AlLQA&.AlL@QA/.AlL`QA=.AlLQA<.AlLQA6.AlL`#QA.AlL2QA.AlL ?QA.AlLKQA.AlLWQA.AlL@cQA.AlL@qQAk.AlL}QA#.AlLQA.AlLQA.AlLQA_.AlL QA.AlLQA.AlLQA.AlL`ЋQAc.AlL@QA[.AlLQAU.AlL@QA<.AlL` QA(.AlLQA.AlL(QA.AlL`=QA:.AlLPQA.AlL@^QA.AlLoQA.AlL`QA;.AlLQA.AlL`QA.AlL`܌QA.AlLQA.AlL@QAs.AlL QAP.AlL$QA2.AlL9QA1.AlLMQA;.AlL`[QA:.AlLiQA2.AlLQA).AlL QA5.AlLQA@.AlL`QA_.AlLQA.AlLQA_.AlL@ƍQAJ.AlL`͍QAE.AlL`ӍQAF.AlL@ݍQAH.AlL@QAR.AlL QAi.AlLQA.AlL@QA.AlL@QA^.AlL QA.AlLQA.AlLQA.AlL%QAC.AlL+QA.AlL3QA.AlL8QA.AlL@QAN.AlLLQA.AlLXQA.AlL`eQA.AlL qQA.AlL@yQA0.AlLQAM.AlL QAx.AlLQA.AlLQAK.AlL QA.AlL`QA.AlLQAE.AlLQA.AlLQA.AlLQA.AlLQAj.AlLQA.AlL QA.AlL`QAF.AlLQA.AlL`QA.AlL@QA .AlLQA.AlLQA.AlLQAX.AlLQA.AlL QA.AlLQA$.AlL ȎQA.AlL`юQA.AlLԎQA[.AlLHێQA.AlLQA.AlLQAp.AlL QA.AlL QAo.AlLQA .AlL@QA].AlL@QA.AlL QA.AlL QA.AlL #QA.AlL`-QA:.AlL2QA.AlL:QA7/AlL`@QA/AlLGQA/AlLUQAC/AlLhQA/AlLsQA?/AlL|QA{/AlL QA/AlLQA/AlLQA /AlL@QAC/AlLQAK/AlL QAW/AlLQAk/AlLǏQA/AlL̏QA/AlLӏQA/AlLQA/AlLQA/AlLQAe/AlLQA/AlL` QA/AlL QA/AlLQA/AlL #QA/AlL-QA/AlL@:QA6/AlLCQA/AlL HQA/AlLWQA//AlL`dQA/AlL@xQA/AlLQA/AlL@QA/AlLQA/AlLQAf/AlL@QA5/AlLԐQA/AlLQAK/AlL`%QA.AlLQA.AlL@QA.AlL"QA.AlLuQA.AlLwQAQ.AlLQA@.AlL QA.AlLQA.AlLΒQA.AlL֒QA.AlLQAF.AlL`QA5.AlL QA<.AlL'QAY.AlL@QA.AlL@oQA.AlLQA.AlLࠓQA.AlLQAL.AlLQA.AlL`ΓQAb.AlL֓QA.AlLQA4.AlLQA.AlL@QAj.AlL`QA'.AlLQA.AlL%QA/AlL3QA/AlLQA//AlLEQA?//AlLGQA}//AlLIQA//AlLDQA0/AlLNQAp0/AlL]QA0/AlL`QAI1/AlLYQA`1/AlL YQA1/AlLVQA)2/AlL[QA2/AlL `QAN3/AlLgQA3/AlL sQAk4/AlLxQA4/AlL@|QA5/AlLQA5/AlL@QA5/AlL`QA5/AlLQA5/AlLQA5/AlLQA5/AlLQA'6/AlL ŖQAg6/AlL@ЖQA6/AlLږQA6/AlLޖQAW7/AlL`QA7/AlLQA7/AlLQA|8/AlL QA-9/AlL*QA9/AlL1QA=:/AlL;QA:/AlL DQA;/AlLTQA;/AlL\QA/AlL]QA4 Y/AlL@zQA0/AlL=QÄ/AlL#QA/AlLQA'/AlLQA/AlLQA/AlL@$QA/AlL'QA"/AlL +QA}/AlL*QA/AlL*QA/AlL`QA/AlL QAD/AlLP QA/AlLQA/AlL QA/AlLQA./AlLQAa/AlL` QA/AlL QA/AlLQAL/AlLQA/AlLQA/AlLQAd/AlLQAݎ/AlLQA/AlLQAO/AlLQA/AlLQA/AlLQA;/AlLQAl/AlL` QA/AlL QAȐ/AlLQA/AlLQAS/AlLQA/AlLQA/AlLQA~/AlLQAȒ/AlLQA/AlL`QA)/AlL`QA^/AlLڅQA/AlL ߅QA;/AlL0QA}/AlL QA/AlLڅQA/AlL؅QA&/AlL݅QA:/AlLQA/AlLQA͕/AlLQAK/AlLQA/AlLۅQA /AlLՅQA/AlLυQA/AlLɅQA\/AlLƅQAɘ/AlLŅQAN/AlLȅQA/AlL؅QA /AlLׅQAQ/AlL@QA/AlL@݅QA/AlLͅQAv/AlLŅQA/AlL QA /AlLQA}/AlL@QA/AlL QAC/AlL௅QA/AlLQA/AlL@QA/AlL@QA./AlLQAL/AlL QA/AlLQA˟/AlL QAd/AlL0QA/AlLQA/AlLQA)/AlLQA/AlLQA1/AlL@QA/AlL`QA/AlL`ʅQA/AlLхQA7/AlL@ޅQA/AlLQA/AlLQAZ/AlLQAp/AlLp QAt/AlL@ QA/AlLQA6/AlLQA\/AlLQA/AlL@ۅQA/AlL ̅QA'/AlLQAp/AlL QAɩ/AlLQA/AlL@QAY/AlLQA/AlLzQAժ/AlLsQA/AlL`qQA,/AlLkQA/AlL bQA/AlL@ZQAi/AlL SQAŬ/AlL`QQA,/AlLLQA/AlLBQAw/AlLp:QA/AlLQA/AlL@QA/AlL`QAѿ/AlLूQA/AlLQAY/AlL@QAD/AlLQA /AlLQA/AlL QA/AlL`QAf/AlL|QA0/AlL@{QA/AlL`tQAĽ/AlLqQA/AlLkQAf/AlL jQA//AlLdQA/AlL`_QAϼ/AlL`QA/AlLVQA/AlL PQA?/AlL HQA?/AlL=QA/AlL 8QA/AlLQA /AlL;QA/AlL5QA/AlL@0QA/AlL+QAA/AlL%QA/AlL $QA/AlL@#QAS/AlL QA/AlL`QA/AlL QAø/AlLQA/AlL QAW/AlLQA'/AlLQA/AlL݁QA/AlL`ՁQA/AlĹQA/AlL@āQAI/AlLQAK/AlL`QA=/AlLQA/AlLQA/AlLQA/AlL QA/AlLQA6/AlLQA/AlLQAܵ/AlLQAs/AlL@QA`/AlL@wQAv/AlL`mQAR/AlL@aQAW/AlLZQA[/AlLUQA/AlL NQA/AlLDQA׵/AlL`9QA/AlL@1QA/AlL+QAߵ/AlL #QAŵ/AlL`QA/AlLQA/AlLQA/AlLQA/AlLQAp/AlL QAJ/AlL@QA /AlLQA/AlLQA/AlL݀QA/AlLڀQAh/AlL ـQA1/AlLՀQAڳ/AlL ЀQAs/AlLЀQA&/AlL ΀QA(/AlL ĀQA/AlL຀QAa/AlLQA/AlLQA/AlL`QAհ/AlLQA/AlLQAF/AlLQAӯ/AlL@~QAO/AlL}QA/AlL`QA/AlL`zQAH/AlLtQA/AlLnQA/AlL eQAS/AlL\QA/AlL PQA/AlL@DQA/AlL:QA%/AlL@3QA/AlL@,QA/AlL@!QAr/AlL@QA /AlL`QA/AlLQA#/AlL QA/AlL QA^/AlLQA?/AlL@QA /AlLQAҨ/AlL`QA/AlLQA/AlLQA6/AlL`QA/AlLQAç/AlL QA/AlL QAv/AlLQAS/AlLQA /AlLQA̦/AlLQA/AlLQAp/AlLQAD/AlLQA/AlLQA/AlLQA/AlL|QA/AlL@oQAm/AlLdQA/AlL]QA/AlLTQAʣ/AlLGQA/AlL>QA/AlL6QA/AlL`0QA^/AlL)QA8/AlL`%QA/AlL QA/AlLQAT/AlLQA /AlL@QA/AlL@QA/AlLQAF/AlLQA/AlL QA/AlLQA/AlLQA8/AlL~QA/AlL@~QA/AlL`~QAk/AlL~QA+/AlL~QA/AlL~QA̞/AlL~QA/AlL~QAG/AlL~QA/AlL ~QAܝ/AlL~QA/AlL~QAX/AlL~QA^/AlL@~QAL/AlL~QA /AlL`~QA/AlL~QA/AlL~QA/AlLs~QA /AlL`m~QA(/AlL`T~QAΜ/AlLI~QA/AlL~QAz/AlL~QA@/AlL~QAܘ/AlL ~QA/AlL}QA/AlL`}QA/AlL}QA6/AlL`}QA/AlL@}QA/AlL}QA?/AlL}QA/AlL}QA/AlL}QA`/AlL }QA!/AlL }QAޔ/AlL}QA/AlL@}QA^/AlL}QA)/AlL }QA/AlL}QA}/AlL}QAC/AlL@}QA/AlL`}QA/AlL}QA/AlL}QA4/AlL }QAؑ/AlL{}QA/AlLr}QAX/AlL i}QA/AlL]}QA/AlLQ}QA/AlL@O}QAِ/AlL F}QA͐/AlL:}QAƐ/AlL%}QA/AlL`}QA/AlL}QA/AlL{QA /AlL@{QA/AlL{QA/AlL{QA/AlL`{QAi/AlL{QAU/AlL{QAI/AlL`{QA3/AlL{QA'/AlL|{QA/AlLr{QA/AlLg{QAψ/AlL@f{QA/AlLe{QAL/AlL`_{QA9/AlLY{QA!/AlLQ{QA/AlL@G{QA/AlL<{QAʇ/AlL1{QA/AlL@&{QA~/AlL{QAN/AlL{QA-/AlL{QA҆/AlL`{QA/AlL {QA]/AlL {QA/AlLp{QA/AlL@{QAS/AlL {QA /AlL {QA/AlL{QAx/AlL`{QA//AlL{QA/AlL` {QA/AlL {QA~/AlL {QAK/AlL{QA/AlL{QAԂ/AlL@!{QA/AlL0{QA/AlL05{QAE/AlL0{QA܀/AlL&{QA/AlL{QA/AlL{QAv/AlLP{QAO/AlL {QA/AlL`{QA/AlLzQA/AlL@zQA/AlLzQA/AlLzQAy/AlL@zQA/AlL`zQA~/AlLzQA~/AlLzQAR~/AlLzQA~/AlLzQA}/AlLzQAH}/AlL@zQA}/AlL }zQA|/AlL|zQA|/AlLnzQA|/AlL@dzQAH|/AlL`dzQA|/AlL@`zQA|/AlLXzQA0|/AlL`OzQA,|/AlLEzQA|/AlL@>zQA{/AlL@9zQAq{/AlL@5zQA5{/AlL3zQAz/AlL/zQA|z/AlL`-zQAGz/AlL`'zQAy/AlL@"zQAy/AlL@zQAty/AlL@zQA$y/AlLzQAx/AlL"zQAvx/AlL&zQA x/AlL@.zQAw/AlL 5zQAw/AlL;zQAGw/AlLBzQA w/AlLIzQAv/AlL OzQAv/AlLVzQA]v/AlL`[zQAv/AlL_zQAu/AlLfzQAu/AlLqzQAau/AlLxzQAGu/AlL`~zQAu/AlLzQAt/AlLzQAt/AlL@zQAkt/AlL`zQA!t/AlLzQAs/AlL@zQAs/AlLzQAcs/AlLzQA$s/AlL`zQA4r/AlLzQAq/AlLzQAq/AlLzQAFq/AlL@zQAp/AlLzQAp/AlLzQAZp/AlLzQAp/AlLzQAo/AlLzQAo/AlL{QAn/AlL {QAn/AlL@1{QAun/AlLB{QAEn/AlL P{QAm/AlL_{QA{m/AlLy{QAam/AlL{QA{m/AlL{QAm/AlL`{QA0m/AlL`{QAl/AlL`{QAl/AlL{QAl/AlL{QA`/AlL}QA`/AlL}QA_/AlL}QA_/AlL}QA_/AlL}QA]_/AlL`}QA^/AlL}QAd^/AlL`}QA]/AlL}QA]/AlL }QAj]/AlL}QAe]/AlL}QA]/AlL }QA]/AlL`y}QA]/AlL@n}QA"]/AlLi}QA\/AlL`i}QA\/AlLi}QA[/AlLh}QA1[/AlL@b}QA=Z/AlL@[}QAY/AlL W}QAY/AlLu}QAY/AlL}QAY/AlL}QAY/AlL}QAY/AlL}QAY/AlL }QAY/AlL`}QAY/AlL}QAY/AlL}QAY/AlL}QAY/AlL}QAY/AlL}QAY/AlL}QAY/AlL }QAY/AlL~QAY/AlL ~QAY/AlL~QAY/AlL~QAY/AlL ~QAZ/AlL#~QA#Z/AlL@*~QAjZ/AlL4~QA}Z/AlL =~QA}Z/AlLH~QAZ/AlLQ~QAZ/AlL`]~QAZ/AlLe~QAZ/AlLt~QAZ/AlL|~QAZ/AlL~QAN[/AlL~QA[/AlL~QA[/AlL~QA[/AlL~QAI[/AlL~QAF[/AlL@~QAU[/AlL@~QAd[/AlL~QA[/AlL~QA[/AlL~QA[/AlL@~QA:\/AlL~QAL\/AlL~QAb\/AlL`QAv\/AlLQA\/AlL'QA\/AlL/QA\/AlL`8QA\/AlL`@QA\/AlLKQA\/AlL`SQA\/AlL`WQA\/AlL[QA\/AlLeQA\/AlL vQA]/AlL`}QAU]/AlL`QA]/AlLQA(^/AlLQAe^/AlL`QA^/AlL QA^/AlLQA_/AlL}QA,_/AlLtQAU_/AlLhQAg_/AlL _QA_/AlL`VQA_/AlL`KQA_/AlL`>QA_/AlL@6QA_/AlL 1QAZ`/AlL,QA`/AlL(QAa/AlL#QAa/AlL QAa/AlLQA%b/AlL QAb/AlL`QAb/AlL QAkc/AlL QAc/AlLQAc/AlLQA=d/AlL QAe/AlL~QA&e/AlL~QAAe/AlL~QAe/AlL~QAe/AlLQAWf/AlLQAf/AlLQACg/AlL@ QAg/AlLQA'h/AlLQAh/AlL@QA i/AlL#QAji/AlL.QAi/AlL@;QAi/AlL`BQA>j/AlLEQAj/AlLDQA2k/AlLFQAk/AlL@FQA3l/AlLFQAl/AlL@KQAm/AlL`SQA9m/AlLfQAm/AlL@oQAm/AlL wQAn/AlL@{QA^n/AlL }QAn/AlL`~QAo/AlL`QARo/AlLQAo/AlLQAo/AlL`QAp/AlLQALp/AlLQA~p/AlL@QAp/AlLQAp/AlLQA/q/AlL@QA}q/AlLQAq/AlL@QAq/AlLQAr/AlLQA@r/AlLQAvr/AlLQAr/AlL QAr/AlL QANs/AlL`QAs/AlLQA~t/AlL@ QAt/AlLQAu/AlL`QAlu/AlL`!QAu/AlL 'QA'v/AlL,QAv/AlL 2QAv/AlL8QA,w/AlL?QA}w/AlL FQAw/AlLNQAix/AlL@WQAx/AlLbQACy/AlLgQAy/AlL`mQAy/AlL`sQA1z/AlL xQAnz/AlL@|QAz/AlL`QAtz/AlL QAQz/AlL QAz/AlLQAy/AlLQAy/AlL`QAy/AlLQA@y/AlLQAx/AlLԀQAsx/AlLـQAx/AlL`߀QAw/AlLQAw/AlLQA^w/AlLQA6w/AlL`QAw/AlLQAv/AlLQAv/AlL QA{v/AlL`QAu/AlLQAu/AlL $QAu/AlL)QAfu/AlL`.QA0u/AlL4QAu/AlL9QAt/AlL`>QAt/AlL DQAet/AlL JQAt/AlL@RQAs/AlL _QAs/AlL eQA9s/AlLyQAs/AlLQAr/AlLQAr/AlLQAr/AlLQAbr/AlL@QA;r/AlL`QA!r/AlLQAr/AlLQAq/AlLɁQAq/AlL`ՁQAq/AlL`QAq/AlLQAq/AlLQA~q/AlL@QAxq/AlL QAeq/AlLQAHq/AlL@QA q/AlL@.QAp/AlL;QAp/AlLKQAp/AlLMQAp/AlLPQAp/AlLXQAp/AlL cQAjp/AlLxQAOp/AlL@QAp/AlL@QAp/AlLࡂQAYp/AlL`ÂQAwp/AlL΂QArp/AlLۂQA[p/AlL QA/p/AlLQA p/AlLQAo/AlLQAo/AlL QAo/AlLQAo/AlLQAo/AlL 'QA^o/AlL`2QAEo/AlLBQA#o/AlLQQAo/AlL`QAn/AlLmQAn/AlLqQArn/AlLQAPn/AlLQABn/AlLÃQAKn/AlL̓QAEn/AlL`؃QACn/AlLQAdn/AlL QAqn/AlLQAn/AlLQAn/AlLQAn/AlLQAn/AlL QAn/AlLQAn/AlL"QAn/AlL-QAn/AlL:QAn/AlLDQApn/AlLRQAFn/AlL`\QA)n/AlLfQAn/AlL`pQA=n/AlLQAHn/AlLQA*n/AlL`QA.n/AlL@QA>n/AlLQASn/AlL ÄQAn/AlLĄQAn/AlL ʄQAn/AlL@˄QA.o/AlL̈́QAo/AlLp̄QAo/AlL ӄQAio/AlL؄QAVo/AlLQApo/AlLQAo/AlLQAo/AlL`QAo/AlL QA.p/AlLQAp/AlL`QAp/AlLQAPq/AlLpQAq/AlL QAq/AlLQAq/AlLPQA r/AlL`QA,r/AlLQALr/AlL QArr/AlLQAr/AlL@QAr/AlL`QA(s/AlL`QAos/AlLQAs/AlL@QA&t/AlLQAft/AlL QAt/AlL QAt/AlLQAt/AlL!QAt/AlL'QAgu/AlL/QAu/AlL-QAu/AlL*QAv/AlL8QAYv/AlL>QAyv/AlLJQAv/AlL@VQAv/AlL^QA&w/AlLbQAw/AlLhQAw/AlLpiQAw/AlL`dQA\x/AlLdQAx/AlL@^QAx/AlLWQAy/AlL[QAy/AlL_QAy/AlLgQAz/AlLsQAAz/AlL|QAz/AlL`QA:{/AlLQA6|/AlL QA|/AlLQA|/AlL@QA|/AlLළQA}/AlLQA)}/AlLQA}/AlLQA}/AlLQAS}/AlLТQAv}/AlL৅QA}/AlLQA}/AlL QA~/AlL QA~/AlL@QA~/AlLŅQA[~/AlL҅QA~/AlLӅQA~/AlLׅQA/AlL@ޅQA;/AlL`QA[/AlLQA/AlLQA/AlLQA1/AlL`QA/AlL@QA/AlL QAM/AlLQA/AlL@ QA/AlL QA]/AlL QA/AlL@QA9/AlLQA/AlL@QA /AlL#QA\/AlL"QA/AlL`QAՄ/AlLQA:/AlLQAk/AlLQA/AlLP!QA܅/AlL QAK/AlLQA/AlLP!QAن/AlLQA/AlL$QA0/AlL`.QAF/AlL5QA/AlL=QAۇ/AlL=QA/AlL9QA@/AlL@4QA/AlL-QÄ/AlL#QA5@+0AlLvQAO0AlLQAeG0AlLQA00AlLkQA!0AlL@^QA@*0AlLTQA>0AlL0SQAJ0AlLNQAY0AlLJQA@P0AlLIQA@Q0AlLEQA@o0AlL=QA0AlLP5QA0AlL+QA@`0AlL QA@0AlLQA0AlL0QAd0AlL@*QA0AlLJQA@0AlLXQA0AlL`kQA0AlLQA0AlLQA0AlLQA0AlLQA@0AlLQA0AlL0~QA0AlLdQA@0AlL`FQA0AlL&QA@ 0AlLQA@>0AlL`QAS0AlL`QAn0AlLQA0AlL@QA@0AlLQA0AlL QA@0AlLQA0AlL QA@0AlLQA*0AlLQA0AlL`QA0AlL@QA@0AlLQA0AlL`QA 0AlL`QA0AlLQAz0AlLQA0AlLQA0AlLQA0AlLQA0AlL QA@0AlLQA0AlL QA0AlLQA@C0AlLQAs0AlL`QA@0AlLQA0AlLQA@0AlLQA0AlLQA/0AlL QAW0AlL@ QAs0AlL@ QA0AlL QA0AlL QA0AlLQAN"0AlL`QA@"0AlL%QA@"0AlL@(QA#0AlL`-QA-$0AlL0QA$0AlL8QA &0AlLpDQA@&0AlLKQA:'0AlLKQA'0AlLOQA'0AlL TQA'0AlLUQA@p(0AlL`WQA(0AlLXQA)0AlL0QA)0AlL QA)0AlLQA)0AlL}QAT+0AlLQA+0AlLQA1,0AlLQA80AlLpKQA80AlLIQA:0AlLQA@o;0AlL`QA;0AlLwQA@!<0AlLgQAv<0AlL QQA<0AlL9QA =0AlLQAh=0AlL QA=0AlLQA@=0AlL QA >0AlL QA`S>0AlL0QAZ>0AlLQA@i>0AlLQAr>0AlLQA|>0AlL`QA>0AlL@QA>0AlL`QA>0AlLQA?0AlL`QA?0AlL QA@;?0AlL@QAk?0AlL QA@?0AlL`QA@?0AlLyQA@0AlLoQA@@0AlL]QA@@0AlL`SQA@0AlLNQA A0AlL HQA@0AlLAQA@@0AlL8QA@0AlL0QAA0AlL)QA@0AlL@QAA0AlLQA!A0AlL QA)A0AlLQA'A0AlL QAXA0AlLQA@oA0AlL QAeA0AlLQA@h@0AlL`QAo@0AlLQA@0AlLQA@@0AlL`QA@A0AlLpQA)A0AlL@hQAUA0AlL]QAvA0AlLQQAA0AlL`JQA@A0AlL;QA@A0AlL0QAA0AlLp+QA@A0AlL%QA@A0AlL`QA@A0AlL QA@A0AlLQAA0AlL@QA@A0AlLQAA0AlL@QA@A0AlLQAA0AlLQAA0AlLQAA0AlL QAA0AlL`QAB0AlLQA@B0AlLQA"B0AlLQA,B0AlL QA0B0AlLQA5B0AlL vQA@:B0AlL`jQAGB0AlL`ZQAbB0AlLTQA@B0AlL`RQAB0AlLOQA@B0AlL JQA.C0AlLGQA@VC0AlL`>QAC0AlL:QAC0AlLQA@uD0AlL`QAD0AlLQA@D0AlL@ܿQAE0AlL`ͿQAVE0AlLQAE0AlL`QAF0AlLQAF0AlL`QAF0AlLQAF0AlLqQAG0AlLhQA/G0AlL bQAgG0AlL`^QAG0AlLVQAG0AlLNQA@H0AlLHQAIH0AlLBQAH0AlL`>QA@H0AlL@;QAH0AlL1QAH0AlL@/QAI0AlL2QA"I0AlL-QA'I0AlL'QAI0AlLQA@I0AlL QAI0AlLQA'I0AlLQA7I0AlLQA@0I0AlLQA@ I0AlLQAI0AlLھQAJI0AlLҾQAjI0AlL ϾQAI0AlLʾQAI0AlL`ɾQAI0AlLȾQAI0AlL ȾQA@4J0AlLƾQAbJ0AlL`žQAJ0AlL¾QAJ0AlLQAJ0AlL`QA@9K0AlLQA@MK0AlLQAaK0AlL`QAvK0AlLQAK0AlLQA@K0AlL|QAK0AlLqQAK0AlL`mQA L0AlL@dQA*L0AlL`QACL0AlL ZQAXL0AlLSQAL0AlL CQAL0AlL9QAL0AlL`4QAL0AlL@.QAL0AlL&QAL0AlLQAL0AlLQAL0AlL QAL0AlLQAL0AlLQA@ZL0AlLQA@L0AlLQAK0AlL QAK0AlLQA@K0AlLQAK0AlLٽQAK0AlLQA@sK0AlL@QAtK0AlLQA@K0AlL uQAK0AlLdQA@K0AlL@SQAK0AlLFQAK0AlL`=QA*L0AlL0QAL0AlL&QA@L0AlLQA,M0AlL QAQM0AlLQAnM0AlL`QAxM0AlL@QAhM0AlLQABM0AlL@QA%M0AlLQAM0AlLܼQAL0AlLԼQAL0AlLϼQA@L0AlLɼQAL0AlL ļQAM0AlL๼QA@-M0AlLQAKM0AlL@QAhM0AlLQAM0AlLQAM0AlLQA@M0AlL QAM0AlLQAM0AlLQAM0AlL@QAM0AlL QA@M0AlLQA@M0AlLxQAM0AlL`lQAM0AlL@eQA@M0AlL[QAM0AlLUQA@M0AlLSQAM0AlL@NQAM0AlL`HQA@M0AlL?QAM0AlL ;QAM0AlL0QAM0AlL`,QAN0AlL*QA+N0AlL@'QA@PN0AlLxQA@mN0AlLQAzN0AlL QA@N0AlLQAN0AlLQAN0AlLQAN0AlLQA@O0AlLQA6O0AlL޻QA`O0AlL`ջQAcO0AlL λQA@^O0AlLĻQAWO0AlL`QA^O0AlL`QAfO0AlL@QAyO0AlLQA@O0AlLQAO0AlL@QAO0AlL`QA@O0AlLQA@O0AlL|QAO0AlLtQAO0AlLiQA6O0AlL$QAO0AlL`QAO0AlL@ QA O0AlLQAO0AlL`QA@N0AlL`QAN0AlL ۺQAN0AlL@ٺQAN0AlL׺QAN0AlL ͺQAN0AlLúQAyN0AlL QAaN0AlL QAGN0AlL਺QAN0AlL઺QAM0AlLQA@M0AlLQAM0AlLQA@hM0AlL0ͺQA@=M0AlLǺQA%M0AlLúQA M0AlLQAL0AlLQA@L0AlL`QAL0AlL QAL0AlL`ºQAjL0AlLºQAML0AlLQA@.L0AlL QAK0AlL`ºQAK0AlLźQA@K0AlL ƺQAK0AlLźQAK0AlLźQA@pK0AlL ĺQAMK0AlLQA@0K0AlLQAK0AlLQAJ0AlL úQAJ0AlLƺQAJ0AlL@̺QAJ0AlLԺQA@J0AlLܺQAJ0AlLQAJ0AlLݺQAeJ0AlL@ںQA;J0AlLպQA@$J0AlL`κQA@J0AlLúQAJ0AlLQA@I0AlL`QAI0AlLQAI0AlLQAI0AlLQAdI0AlL|QAJI0AlL yQA,I0AlLuQAI0AlLqQA@H0AlL@jQAH0AlL`QAH0AlL YQAH0AlLRQA@H0AlL`LQAH0AlLFQALH0AlL@QAH0AlL>QAG0AlL ?0AlLQA"?0AlLQA>0AlL@QA>0AlL`QA>0AlL@QA>0AlL`QAr>0AlL`QA`>0AlLQA@@>0AlL@QA@*>0AlL`QA >0AlL QA=0AlLQA=0AlLູQA=0AlLQAX=0AlLQA<0AlL@ĹQA<0AlLʹQA[<0AlL йQA<0AlL׹QA;0AlL޹QA;0AlL@QA@i;0AlL`QAP;0AlLQA5;0AlL@QA;0AlLQA@:0AlLQA@:0AlL QA@:0AlL QAm:0AlLQA@P:0AlLQA::0AlL`!QA:0AlL +QA90AlL/QA90AlL3QAd90AlL@5QA;90AlL :QA@90AlL@AQA90AlLEQA@80AlL@JQA@80AlLPQA@80AlLTQA80AlL \QA@v80AlL`QA;80AlL`eQA 80AlLkQA70AlLqQA70AlL@xQA70AlL}QA@970AlLQA70AlLQA60AlLQA460AlL@QA@ 60AlL`QA50AlLQA50AlL`QA50AlL@QAt50AlL@QA;50AlLQA50AlLQA@40AlL@QA40AlL෺QA{40AlL@QA.40AlLʺQA@30AlLغQAx30AlL`ںQA;30AlLQA20AlLQA20AlL@QA@20AlLQA@20AlLQAy20AlLQA@720AlL`QA20AlL@QA10AlLQA10AlLQA\10AlL`QA"10AlL`QA@00AlLQA00AlL`QA@00AlL@QA@00AlLQAG00AlL`$QA00AlL@)QAw/0AlL 8QA.0AlL`IQA}.0AlLPQAO.0AlLVQA-0AlLaQA@|-0AlL eQA@H-0AlLkQA@!-0AlL qQA,0AlL{QA@l+0AlLQA@y*0AlLQA)0AlL@QA)0AlL»QAc)0AlLĻQA@4)0AlL`ƻQA@(0AlLȻQA(0AlL̻QAY(0AlLͻQA(0AlL@ӻQA@s'0AlL@QA*'0AlLQA&0AlLQA&0AlLQA&0AlLQA@g&0AlL QA:&0AlL QA&0AlL`QA%0AlL !QA@%0AlL+QAe%0AlL@/QA$0AlL6QA$0AlL6QA$0AlL8QA4$0AlL;QA$0AlL=QA@#0AlL`:QA@#0AlL5QA@e#0AlL-QA8#0AlL)QA#0AlL(QA"0AlL@(QA@"0AlL(QA@"0AlL+QAQ"0AlL 3QA4"0AlL`8QA"0AlL@AQA@!0AlL`KQA!0AlL@SQA@D!0AlLbQA@ !0AlL@kQA@ 0AlLzQA@ 0AlL}QA@y 0AlL`QAI 0AlLQA2 0AlL`QA 0AlLQA0AlL QA0AlL@QA0AlLQA0AlL@QAm0AlLQA=0AlLQA"0AlLQA 0AlLQA0AlLQA0AlL QA0AlLQA0AlL@QAk0AlLQAK0AlL@QA20AlL`QA@0AlL`̼QA0AlLּQA0AlL ۼQA@0AlL`QA~0AlL QAh0AlL QA@Q0AlLQA@20AlL@QA@0AlLQA0AlL@%QA0AlL0*QA0AlL +QA@K0AlL@.QA 0AlL@2QA0AlL5QA0AlL=QA@~0AlLCQA@S0AlLIQA@*0AlLRQA0AlL]QA0AlLfQA0AlLoQA@0AlL zQA_0AlL@QA/0AlLQA0AlLQA0AlLQA@0AlLQA0AlL௽QA0AlLලQA}0AlL QA@o0AlLƽQA@c0AlLͽQAV0AlL ڽQA@0AlL(QA0AlL6QA0AlL=QA0AlLDQA0AlLHQA0AlLRQAf0AlLaQAS0AlLeQA@0AlL`vQA0AlL{QA0AlLQA0AlLQAu0AlLQA[0AlL`QAF0AlL QA/0AlLQA@#0AlL`QA0AlLQA0AlL`QA@0AlLQA0AlLQA0AlLɾQA0AlLѾQA0AlL޾QA0AlLQA0AlLQA{0AlLQA^0AlL QAQ0AlLQAP0AlLQAK0AlL#QA+0AlL0AlLEQA@&0AlLIQA0AlLNQA0AlLUQA0AlL]QA@0AlL@hQA0AlLqQA0AlL`xQAw0AlL|QAq0AlLpQAQ0AlLQAD0AlLQAC0AlLQA?0AlLQA-0AlL@QA@0AlLQA0AlL QA@0AlLQA0AlLQA 0AlLDQA)0AlLdQA@70AlLxQAP0AlL@QA@g0AlLQA@i0AlL`QA%0AlLQA0AlLQA@0AlLQA0AlLQAH0AlLQA0AlLQA0AlLQA0AlL QA@0AlLQA@W0AlL@ QA@80AlLQA0AlL` QA@0AlL)QA@w0AlL 2QA0AlL?QA@<0AlLNQA0AlL]QA0AlLfQAk0AlLkQA@+0AlLtQA 0AlL}QA~0AlLQA@[0AlLQA@"0AlLQA@0AlLQA0AlLQA@0AlLQA0AlL@QAO0AlL@QA0AlLQA 0AlLQA 0AlL QA@c 0AlL~QA0 0AlLvQA@ 0AlLvQA 0AlLvQA 0AlLyQA 0AlLQA 0AlL`QA 0AlLQA 0AlL@QAx 0AlLQAc 0AlLQA@M 0AlLQA! 0AlLQA 0AlLQA 0AlLQAf 0AlLQA! 0AlL`QA@ 0AlLQA 0AlL QA 0AlLQA} 0AlLQAq 0AlL QAo 0AlLQA` 0AlL@QA@K 0AlL QA@( 0AlL`QA 0AlL@QA@ 0AlLQA 0AlL%QA 0AlL*QA 0AlL`0QA{ 0AlL5QAT 0AlL8QA/ 0AlL AQA 0AlLMQA0AlLXQA0AlLbQA0AlLlQA@0AlL vQA0AlL`QA@0AlLQA 0AlL@QA 0AlL0QA 0AlLQA@ 0AlL@QA0AlL`QA@0AlLQA0AlLQA0AlLQA0AlLQA0AlL`!QA@0AlL 9QA-0AlL}QA0AlL`QA0AlL`QA0AlL@QA@0AlLQA0AlL@QA0AlL QA0AlLQA@0AlLQA0AlLQA@0AlL QA0AlL QA0AlL5QA@0AlLQQA0AlL`gQA0AlLsQA0AlLQA0AlLQA0AlL`QA@0AlL`QA0AlLQA@{0AlLQA@Z0AlL@QAE0AlLQA50AlLQA+0AlL`QA,0AlLQAC0AlLQA0AlL`7QA0AlL>QA0AlL LQA0AlL`VQAT0AlL `QA0AlLhQA0AlLqQA0AlLsQA0AlLQA0AlLQAJ 0AlLQAl 0AlL0QAv 0AlLQA 0AlL QA 0AlLQA@ 0AlL!QA 0AlL9QA 0AlL@IQA? 0AlL@^QAt 0AlLnQA@ 0AlL|QA 0AlLQA 0AlLQA 0AlLQA 0AlLQA 0AlLQA 0AlLQA@ 0AlLQA 0AlL@QA/ 0AlL QAb 0AlL@QA 0AlL#QA 0AlL@0QA 0AlL=QAH 0AlL LQA` 0AlLUQA 0AlL`cQA 0AlL kQA 0AlLyQA 0AlL`QA 0AlL QA 0AlL`QA 0AlLQA! 0AlL QA3 0AlLQA> 0AlLQAU 0AlL`QAo 0AlLQA@ 0AlLQA 0AlL QA@ 0AlL QA-0AlLQA0AlL`BQA0AlL`dQA#0AlL{QA@>0AlLyQA^0AlLp}QA0AlLQA0AlLQA0AlLQA 0AlL|QAD0AlLyQAY0AlL@zQA@s0AlLPvQA0AlLpQA0AlL wQA0AlLvQA+0AlLvQA@:0AlLQAB0AlLПQAI0AlLQAZ0AlLQAQ0AlLЙQAG0AlLQA6/AlLnQA10AlL/{QA/AlL-{QA@/AlL`'{QA{/AlL({QA/AlL%{QA&/AlL`"{QA|/AlL@{QA/AlL {QA&/AlL{QA/AlL@{QA/AlL{QAv/AlL@{QA/AlL zQAn/AlL zQA/AlL {QA/AlL{QA/AlL zQA/AlLzQA%/AlL@zQA/AlLzQA/AlL zQA+/AlLzQAr/AlL zQA/AlLzQA/AlLzQA/AlLzQA!/AlLzQA/AlLzQA9/AlLzQA/AlLzQA3/AlLzQA/AlLzQAM/AlLzQA/AlLzQAQ/AlL@zQA/AlLzQA]/AlL@zQA/AlLzQA9/AlL`zQA/AlL`zQA/AlLzQA/AlL@zQA/AlLzQAO/AlL@zQA/AlLzQA/AlL zQA/AlL`|zQA{/AlLuzQA/AlLozQA0/AlLkzQA/AlLczQA/AlL`^zQA/AlL\zQA/AlL`TzQA/AlL`WzQAq/AlL UzQA/AlLOzQA/AlL`HzQA/AlLGzQA{/AlLKzQA/AlLOzQA /AlL[zQA/AlLZzQA/AlL`zQA=/AlLbzQA/AlL ^zQAY/AlL@ZzQA/AlL`ZzQA/AlL^zQA-/AlL_zQAi/AlL`zQA/AlL_zQA/AlL UzQA/AlLFzQA/AlL:zQA/AlL2zQAV/AlL )zQA/AlLzQA/AlL zQA/AlL@zQA/AlLyQA/AlLyQA/AlLyQA!/AlL`yQA(/AlL yQAR/AlL yQAt/AlL`yQA/AlLyQA/AlLyQA/AlLyQAA/AlLyQA/AlLyQA#/AlLyQA/AlL`|yQA/AlLryQAyQA/AlL2yQAb/AlL!yQA/AlL yQA/AlL yQA#/AlLyQAy/AlL@xQA/AlLxQA/AlLxQAN/AlLxQA/AlLxQA /AlLxQAX/AlL xQA/AlL@xQA/AlLxQA/AlL`xQAX/AlL xQA/AlL xQA1/AlL`xQA/AlL`xQA/AlLxQA/AlL@xxQA/AlL`nxQAC/AlL_xQAr/AlLPxQA/AlL?xQA/AlLxQA/AlLwQA/AlLwQA=/AlLwQAk/AlLwQA/AlL wQA/AlL`wQA/AlLwQAq/AlL wQA/AlLwQA/AlLwQA/AlLwQA/AlL@wQA/AlLwQA&/AlLwQAn/AlLwQA/AlL`xwQA/AlL@gwQA/AlL`WwQA0AlLLwQA@*0AlLDwQA@?0AlL =wQAU0AlL2wQAr0AlL"wQA@0AlLwQA0AlLwQA0AlL`vQA@0AlLvQA@0AlLvQA0AlLvQA0AlL`vQA@(0AlLvQAC0AlLvQA@`0AlLvQA@x0AlL vQA0AlLvQA@0AlLvQA0AlL`vQA0AlL`}vQA0AlL@svQAV0AlL`TvQA0AlL@BvQA@0AlL`6vQA0AlL@(vQA0AlLvQA&0AlL vQA]0AlL uQA@|0AlLuQA0AlL`uQA0AlLuQA0AlLuQA+0AlLuQA@O0AlLuQAw0AlLuQA0AlL@tuQA*0AlLvuQAS0AlL`xuQAx0AlL zuQA0AlL}uQA@0AlL@uQA80AlLuQA{0AlL uQA@0AlLuQA0AlLuQAh0AlL`uQA0AlLuQA.0AlLuQAu0AlL@uQA0AlLuQA@0AlL@uQA@ 0AlLuQA. 0AlL`cuQA5 0AlLSuQA: 0AlLFuQA< 0AlL4uQA? 0AlL@(uQAE 0AlLuQAG 0AlL uQA 0AlLtQA 0AlL`tQAq 0AlLtQA 0AlL`tQA 0AlL`tQA@ 0AlL`tQA3 0AlL}tQA 0AlLXtQA 0AlLOtQA. 0AlLItQAT 0AlL@FtQA 0AlLAtQA@ 0AlL@tQA 0AlL=tQA 0AlL_ZoQAjD.)0AjXoQA)0AlL@PoQA)0AlL@EoQAU)0AlL@7oQA)0AlL@,oQA@(0AlL`oQA(0AlL`oQAS(0AlLoQA*(0AlL&oQA@(0AlL/oQA'0AlL:oQA'0AlL8oQA@a'0AlL /oQA0?'0AlL'oQAp&0AlL!oQAp&0AlLoQA&0AlLoQA~&0AlLoQAX&0AٗZ-oQA%0AlL /oQA%0AlL :oQA~k%0A(RHCoQAA%0AlLJoQA$0AlL`ToQAl$0AlLYoQA$0AlLWoQA@#0AlLJoQA#0AlL@JoQAA#0AlL@OoQAZ,#0At=XoQAr #0AH{]oQA"0AlLuoQAs"0AlL oQAT"0AlL`oQA7"0AlLoQA "0AlL`oQA!0AlL oQA0!0AlLoQA!0AlL`oQAp`!0AlL@oQA0#!0AlL`oQA 0AlLoQA 0AlLoQAd t 0AR oQApa 0AlL oQA) 0AlL`oQA0AlLoQA0AlL@oQA=`0A ,oQAf0AlL oQA00AlLoQA0AlL`oQA0AlLoQA@a0AlLoQA@50AlLoQA0AlLoQA0AlLoQA~u0AٗoQAn0AlL oQA20AlLoQA00AlLoQA0AlL oQA0z0AlLoQA000AlL`oQAE*0A3oQA0AlL`oQAp0AlLoQA0AlLoQAY0AlLoQA0AlLoQATj0AJoQA8v0A6C}oQA0AlLoQA@l0AlLoQAp$0AlLoQA0AlLoQAp0AlLoQA@h0AlL oQA! 0ANoQA0AlL@oQAp0AlLoQAq0AlL`oQA0H0AlLoQA00AlL@oQATSX0A oQA 0AlLoQAp0AlLoQA~0AlLoQA M0AlL`oQA0AlL oQA00AlL oQA0AlLoQA`d0AlLoQA0D0AlLoQA`20AlLoQA<0A*oQA0AlL oQA`0AlLoQA0AlL`}oQAxX0Ap{oQA50AlLzoQA0AlL@|oQA0AlLoQA@ z0A ְoQApb0AlLoQA`D0AlLoQA0AlLoQA`0AlL`oQA 0AlLoQA0AlLoQA0u0AlL`oQAJ?b0A0boQA90AlL oQA0AlLoQA@0AlLoQA0AlL oQA0AlL~oQApB0AlLxoQA0AlLtoQA0AlLtoQA0AlL}oQAH0AlL~oQA0AlL}oQAxP0ADsvoQA@0AlLnoQA0AlLeoQA0AlL_oQA0AlLVoQApz0AlL@NoQA@d0AlLEoQAN0AlL>oQA=0AlL8oQA30AlL6oQAp0AlL1oQA0AlL.oQAp0AlL`)oQA5U50AU'oQA0AlL/oQA0AlL 6oQA@0AlL>oQA@X0AlLIoQA@C0AlLSoQA@-0AlLZoQA 0AlLeoQA 0AlLooQA 0AlLyoQA} 0AlL@oQA@S 0AlLoQA 0AlLoQA 0AlL@oQA 0AlLoQAw 0AlLoQAW 0AlLoQA@7 0AlLoQA@ 0AlLpQA 0AlL`pQA 0AlLpQA@ 0AlL)pQA@_ 0AlL:pQA@" 0AlLJpQA 0AlLVpQA@ 0AlLbpQA 0AlLmpQAt 0AlL`xpQAI 0AlL pQA% 0AlLpQA 0AlLpQA 0AlLpQA 0AlLpQA 0AlLpQAY 0AlLpQA@. 0AlLpQA0AlL@pQA0AlLpQA0AlL`pQA@0AlLpQA@0AlL pQAy0AlLpQAR0AlLpQA@+0AlL pQA0AlLpQA0AlLpQA@0AlL@pQA0AlLpQA}0AlLpQAV0AlLpQA0AlLpQA0AlL`~pQA0AlLtpQA@0AlLlpQA@z0AlLgpQA@P0AlLcpQA0AlLTpQA0AlLHpQA@0AlL6pQA_0AlL/pQA30AlL*pQA0AlL%pQA@0AlLpQAf0AlL pQA/0AlLpQA0AlLP pQA@0AlLpQA0AlL@pQA@p0AlLoQA60AlL oQA0AlLoQA0AlLoQA0AlL`oQA0AlLoQAP0AlLoQA0AlL oQA0AlLoQA@0AlLoQA@T0AlL0oQAE0AlL`oQA/AlLoQA/AlLoQA/AlLoQA/AlL`oQA/AlLoQAq/AlL`oQA/AlLoQA/AlL`oQA/AlLoQAi/AlLoQA/AlL@oQA/AlLoQA*/AlLoQA/AlLoQAB/AlLoQA/AlL@oQAP/AlLoQA/AlL@oQA/AlL oQAa/AlL@oQA"/AlL pQA/AlLpQA/AlLpQAz/AlLpQA/AlL pQA/AlL@#pQAm/AlL&pQA=/AlL(pQA/AlL*pQA/AlL-pQA/AlL .pQA/AlL2pQAv/AlL3pQA /AlL0pQAl/AlL-pQA/AlL6pQA/AlLBpQA/AlLSpQAK/AlLfpQA/AlL`qpQA/AlLpQA/AlL pQAX/AlLpQA/AlLpQA/AlLpQA/AlLpQAq/AlL`pQA"/AlLpQA/AlL`pQA/AlL@pQA/AlLqQAy/AlLqQAqQA/AlL`uQA/AlL EuQAG/AlL@RuQAb/AlL cuQAO/AlLruQA/AlL |uQA/AlL@uQA/AlL`uQA/AlL`uQA/AlLuQA/AlLuQA/AlLuQA/AlLuQAY/AlL uQA/AlLuQA/AlL`uQA)/AlL uQA\/AlL uQA/AlL`uQA/AlLuQA#/AlL vQA/AlLvQA/AlLvQA/AlL`vQA/AlL"vQA/AlL)vQA/AlL@-vQA/AlL3vQA/AlL@8vQA6/AlL@;vQA/AlL@vQA/AlLCvQA2/AlLHvQAq/AlL@KvQA/AlLOvQA/AlL VvQA/AlL]vQA/AlLhvQA/AlL`ovQA/AlLvvQA/AlLvQA/AlLvQA/AlL`vQA/AlL`vQA/AlLvQA/AlLvQA/AlLvQA/AlL`vQAT/AlL`vQA/AlLvQA/AlL@vQA /AlLvQAN/AlL`vQA/AlLvQA/AlLvQA/AlL`vQA)/AlLvQA)/AlLvQA/AlL@vQA/AlL vQAO/AlLvQA/AlL@vQA /AlL wQA/AlL wQA/AlL@wQA/AlLwQAn/AlLwQA0/AlL wQA/AlL$wQA/AlL@+wQAf/AlL2wQA/AlLCwQA/AlLLwQA{/AlLUwQAS/AlL@`wQA#/AlL jwQA/AlLvwQA/AlL`wQA/AlLwQA/AlLwQAk/AlL wQAI/AlLwQA/AlL wQA/AlLwQA/AlL`wQA'/AlL@wQA/AlLwQA/AlLwQA/AlL xQAc/AlL@xQA2/AlL@ xQA/AlL.xQA/AlL>xQA]/AlL OxQA/AlL@[xQA/AlLnxQA\/AlLyxQA/AlL@xQA/AlLxQA3/AlLxQA/AlLxQAk/AlLxQA/AlLxQA/AlLxQA$/AlLyQA/AlL0yQA/AlLyQA/AlL`+yQA/AlL:yQA/AlL`AyQAh/AlLMyQA/AlL RyQA/AlL`UyQA/AlLXyQA/AlL@gyQA/AlLpyQA/AlLyyQAq/AlL@yQA>/AlL yQA/AlL yQA/AlL`yQA/AlLyQA:/AlL`yQA/AlLyQA/AlLyQA//AlL@yQA/AlL`yQA}/AlLyQA/AlLzQAq/AlL`zQA/AlL zQA/AlL0zQA6/AlL ?zQA/AlLIzQA/AlL@TzQA&/AlL@czQA/AlLhzQA/AlLszQA/AlL|zQAB/AlLzQAX/AlL@zQA\/AlLzQAh/AlLzQA/AlLzQA/AlLzQA/AlLzQA/AlLzQA/AlLzQA/AlL@zQAs/AlL {QAf/AlL {QAq/AlL ${QAy/AlL/{QA/AlL-{QA7 0AlL@QAJ0AlL` QA@8E0AlLsQAF0AlL QA G0AlL QA6G0AlLQAeG0AlL`QAG0AlL`QAG0AlLՏQAG0AlL@ԏQAG0AlL@ʏQAG0AlLQAG0AlLඏQAG0AlLQAwG0AlLQAyG0AlLQAG0AlL@QAG0AlL QA@G0AlLQAG0AlL QA@H0AlLQA@7H0AlL QA]H0AlLPQAuH0AlLQAH0AlLQALH0AҲfVQAJ0AlL(LQAD0AlLQAD0AlLQA@A0AlL(QAlA0AlL QA@cA0AlLQA&A0AlL@QA@0AlL QAo@0AlLQA@D@0AlLQA @0AlLQA?0AlLQA>0AlLQA+:0AlL` QA@#:0AlL QA:0AlLQA:0AlL QA :0AlL@QA:0AlL@QA@ :0AlLQA:0AlLQA90AlL֍QA90AlL`ÍQA90AlLQA@U90AlL਍QA@ 90AlLQA80AlLQA#80AlL QA70AlLQA@70AlL QA70AlLQAp70AlL wQA@H70AlL mQA 70AlL@cQA60AlL@]QA@60AlL`WQAV60AlLQQAB60AlL KQA@u50AlLQA_50AlL`QA@Q50AlL QAT50AlL@QAe50AlLQA}50AlL@QA@50AlLQA50AlL@QA@50AlLQA50AlL ܌QA@50AlLxڌQA50AlL،QA50AlĽQA50AlL@ȌQA550AlL QA40AlLrQA40AlLqQA40AlLqQA@40AlLuQA40AlLpzQA40AlL|QA10AlLQA00AlL`2QA@-/0AlLpˋQAs-0AlLQA@-0AlLQA,0AlLQAt,0AlLQA'0AlL1QA'0AlLP5QA'&0AlLaQA!&0AlLbQA}$0AlL0QA"0AlL WQA"0AlL8UQA@i"0AlL@PQAd!0AlL0QAu 0AlL`QA0AlL@QAQ0AlL`QA0AlLQA0AlL։QA20AlL QA@0AlLࠉQA0AlLHQA0AlLFQA0AlLEQAi0AlLƈQAB0AlL@QAB0AlL@QA>0AlLψQA<0AlLۈQA80AlL`QA20AlL`QA@+0AlLQA 0AlL QA 0AlLQA0AlL`"QA0AlL (QA0AlL+QA@0AlL`,QAb0AlL -QA@80AlL1QA@#0AlL8QA#0AlLCQA@"0AlL`JQA@ 0AlLQQA0AlL`SQA0AlLTQA0AlLVQA0AlLYQAx0AlL ^QAk0AlL eQA@X0AlL qQAG0AlL`yQAK0AlL QA0AlLQA0AlL 8QAF0AlL;QA@d0AlLAQA@0AlLHQA@0AlLMQA0AlLSQA0AlLWQA0AlLcQA0AlLmQA@0AlL{QA'0AlLQA@30AlLQA@\0AlLQA0AlLQA0AlL@ÊQA@0AlLɊQA0AlLΊQAX0AlL@ΊQA0AlLϊQA0AlLЊQA 0AlLۊQA@50AlLQAR0AlLߊQA0AlLQA0AlLQA0AlLQA0AlL QA@0AlL@QA0AlL`QAe0AlL QA0AlLQA@0AlL QAU0AlLQA@m0AlLQA@0AlL*QA0AlL7QAB0AlLp?QAY0AlL`:QA@0AlL6QA0AlL9QA@0AlL`GQA@0AlLSQAH0AlL@\QA0AlL`eQA@0AlL`pQA0AlL zQA)0AlL`QA@l0AlL@QA@0AlLQA@0AlL@QA0AlL`QA} 0AlL[QA 0AlLVQA 0AlLpSQA@ 0AlLZQA&0AlL +QA&0AlL@7QA&0AlL?QA&0AlL?QA'0AlL ?QAE'0AlL@9QA'0AlLPQA'0AlLQA@)(0AlLQAv(0AlLQA@(0AlL QA@)0AlLQAF)0AlL QA)0AlLPQAt)0AlL QA^)0AlLQAF'0AlLQAs'0AlLQA@'0AlLQA@'0AlL`QA'0AlL QA@'0AlLQA'0AlL ΍QA'0AlLՍQA(0AlL@؍QA@m(0AlLٍQA(0AlLލQA(0AlLQA(0AlLQA@)0AlLQAO)0AlL QAe)0AlLQA@)0AlLQA)0AlLp؍QA)0AlL@QA5)0AlL QA@T)0AlLQA|)0AlL"QA)0AlL@0QA)0AlL@?QA)0AlL>QA)0AlL7QA@+0AlLՍQA+0AlL0ٍQA+0AlLQA,0AlL QAo,0AlLQA,0AlLQA,0AlLQA-0AlL)QAe-0AlL=QA-0AlL@JQA-0AlL@NQA@.0AlLNQA%.0AlLDQAM.0AlLP>QA_.0AlL@?QAp.0AlL @QAp6?.0ABQA.0AlLCQA.0AlL HQA.0AlLIQA /0AlL@KQA8/0AlL PQAI/0AlLWQAU/0AlLaQAl/0AlLjQA@/0AlLgQAB00AlL``QA00AlLXQA00AlLWQA810AlL]QA10AlLhQA 20AlLrQA20AlL tQA@n20AlL`}QA@20AlLQA@20AlL`QA30AlLQA30AlL`QAL30AlL`QA30AlL@ŽQA40AlLˎQAZ40AlLҎQA40AlLێQA@40AlL`QA@W50AlL`QA50AlLQA50AlLQA50AlL@QA50AlLQA?60AlLQA@|60AlLQA60AlL` QA60AlLQA70AlLQA^70AlLQA70AlLQA@j80AlL"QA80AlL@QA80AlL`QA/90AlLQAf90AlLQAc90AlLQAx90AlLQA90AlLގQA:0AlLҎQAD:0AlLŽQAq:0AlLQA:0AlL QA:0AlLQA@:0AlLQA@;0AlLQA@;0AlLQA@<0AlLQA@`<0AlLQA<0AlLИQA<0AlLQA<0AlL@QA=0AlLՎQA@>0AlL QA@>>0AlLQA4>0AlL@QA >0AlLQA>0AlL QA>0AlL QA=0AlL1QA=0AlL :QA=0AlLBQA=0AlLHQA=0AlLOQA=0AlL ZQA{=0AlLcQAm=0AlLkQA@W=0AlL`qQA7=0AlLuQA=0AlL xQA<0AlLzQA<0AlL}QA<0AlL@QA@<0AlLQA@;=0AlLŏQA@@=0AlLȏQA@.>0AlLDQAG>0AlLFQAy>0AlL@HQA@>0AlL KQA ?0AlL SQA@=?0AlL\QAc?0AlLdQA?0AlLkQA?0AlL`tQA?0AlL@QA?0AlLQA?0AlLQA&@0AlLQA]@0AlL@QA@0AlLQA@0AlLQA@0AlLÐQA@@0AlL ȐQAA0AlL@̐QA>A0AlL`ϐQA@~A0AlLҐQAA0AlLԐQA B0AlL@QAuB0AlL` QAB0AlL QAB0AlL QAB0AlL QARC0AlLQAD0AlLQA@8E0AlLsQA8%b0AlLQAr0AlL`>QAz0AlLQAz0AlL`QAz0AlLQA@z0AlLQA@z0AlLmQAz0AlLdQAz0AlLUQAz0AlLKQA@{0AlL@QA){0AlL5QA5{0AlL`-QAA{0AlL#QAA{0AlLQA<{0AlL QA={0AlLQAC{0AlLQAF{0AlLQAG{0AlLQAD{0AlLQAG{0AlLQAN{0AlLQAM{0AlLQAO{0AlL`QA@T{0AlLQAb{0AlLsQAp{0AlLbQAt{0AlLXQA@u{0AlL`RQA@{0AlLHQA{0AlLAQA@{0AlL 7QA{0AlL.QA{0AlL(QA{0AlL`QA{0AlL`QA{0AlLQA{0AlLpQA{0AlL@QA@{0AlLQA@{0AlLQA{0AlLQA{0AlL@QA{0AlLQA{0AlLQA{0AlLQA@{0AlL@QA@{0AlL`QA{0AlL@QA{0AlLQA{0AlLuQA{0AlLoQA{0AlLgQA|0AlL`\QA |0AlLUQA@|0AlLMQA@(|0AlLGQA(|0AlL5QA-|0AlL*QA@1|0AlLQA;|0AlLQA;|0AlL` QA@1|0AlLQA,|0AlLQA|0AlLQA@|0AlLQA@|0AlL QA!|0AlLQA"|0AlL@QA3|0AlL@QA<|0AlL`QAI|0AlL`QAh|0AlLQAy|0AlL`QA|0AlLuQA|0AlL iQA|0AlL`@QA }0AlL-QA}0AlL "QA)}0AlLQA*}0AlL QA&}0AlL@QA }0AlLQA}0AlLQA}0AlLQA}0AlL QA@|0AlLQA}0AlLQA<}0AlL@QAx}0AlL@QA@}0AlLQA}0AlLQA~0AlLQAV~0AlLQA@~0AlL`QA~0AlL QA~0AlLQA~0AlLQAZ0AlLQA@O0AlLQAC0AlLQAA0AlL@QAI0AlLQAF0AlLQA@@0AlL@rQAX0AlLiQAw0AlL_QAs0AlLTQA@n0AlL@SQA@U0AlL`KQA10AlL7QA)0AlL4QA0AlL*QA@0AlL`QA0AlL QA@0AlLQA@~0AlL QA~0AlLQA@~0AlLQA~0AlL@QA~0AlLQA@~0AlL QA~0AlLQA@0AlL QA@0AlLwQA/0AlLkQAG0AlL\QAR0AlLOQAw0AlL&QA0AlLQA0AlL` QA@0AlLQA@0AlLQA@0AlLQAj0AlLQA@H0AlLQA-0AlLQA0AlLQA~0AlL@QA~0AlL@|QA~0AlL`jQA0AlL[QA0AlLNQA 0AlL@;QA0AlL/QA 0AlLQA0AlL QA~0AlLQA@~0AlL`QA@~0AlLQA~0AlLQAw~0AlLQAQ~0AlLQA;~0AlL`QA6~0AlL`rQA@8~0AlL^QA@<~0AlLJQAA~0AlL6QAM~0AlL&QAe~0AlL QA~0AlL QA@~0AlLQA@~0AlL QA~0AlL@QA@~0AlL QA~0AlL QA~0AlL QA@~0AlLQA@~0AlLQA~0AlL@QA@~0AlLfQA@r~0AlLTQAf~0AlLGQA@p~0AlL`8QA@~0AlL *QA`~0AlLXQA@~0AlLQA~0AlLQA0AlLQA<0AlL QA@^0AlL QAv0AlLQA@0AlL`QA0AlLQA@0AlLQA@p0AlLzQA'0AlL@QA+0AlLQA20AlL QA@40AlLQA30AlLQA20AlLQA@.0AlL`QA@%0AlL@QA0AlL` QA80AlLQA@o0AlL"QA0AlL*QA@0AlL`6QA@0AlL=QA#0AlL`CQAS0AlLHQA0AlLNQA0AlLXQA"0AlL[QA@:0AlL^QAn0AlLeQA0AlLiQAȃ0AlLhQA0AlL@hQA@0AlLhQAu0AlLiQA0AlL@mQAބ0AlL jQA0AlLnQA@0AlLuQA,0AlL QAA0AlL QAc0AlL@QA0AlL@QA0AlLQA0AlL@QA0AlLQA0AlLQAE0AlLQAl0AlLQA0AlLQA0AlLQA@O0AlL@QA0AlL`QA0AlL QAڇ0AlLQA0AlL@QA'0AlLQAO0AlL QA@0AlL QAƈ0AlL`QA0AlLQA@#0AlL QA]0AlLQA0AlL@!QA@Ӊ0AlL!QA@0AlL!QA<0AlL$QA@k0AlL'QA0AlL*QA0AlL/QA0AlL@3QA/0AlL@?QA@W0AlL BQA{0AlLLQA0AlLUQAË0AlL`QA0AlL@iQA0AlLtQA90AlLQAN0AlL@QAV0AlLQAY0AlLQA0AlL`QA@0AlLQA0AlLQA@0AlLQAˌ0AlLQA0AlLQA@ 0AlL@QA@0AlLQA*0AlLQAF0AlLQAx0AlLQA@0AlLQAЍ0AlL@QA@0AlLQA0AlLQAJ0AlLQAg0AlL QA0AlL@QA0AlL`QA܎0AlL@1QA0AlL@QA0AlLKQA0AlLWQA^0AlLaQA0AlLcQA0AlLhQA@ߏ0AlLnQA0AlL@wQA>0AlLyQA@0AlLzQA0AlLwQA0AlLxQAG0AlLxQAs0AlLxQA@0AlLmQA0AlLvQA,0AlLQAD0AlLQAS0AlL QA@w0AlLQA@0AlL`QA0AlLQA0AlLQAŒ0AlLQA@0AlLQA0AlL QA@0AlLsQA@0AlLiQA0AlL``QAo0AlL UQAS0AlL`KQA@X0AlL0AlLcQAC0AlL@XQA@L0AlLLQA`0AlLCQAs0AlL1QA}0AlL`$QA@0AlL`QA0AlLQA0AlL` QA@0AlLQA0AlLQA0AlL`QA’0AlLQAߒ0AlL`QA@0AlL QA0AlLQA@10AlLQAl0AlL QA@0AlLQA@0AlL QA0AlLQA0AlL@QA@0AlL`XQA 0AlLNQA0AlLHQAI0AlL#QAW0AlL`QAj0AlL QAm0AlL QA@d0AlL@QAL0AlL@QA@30AlLQA0AlL@QA 0AlLQA0AlL@QA@0AlL`QA0AlL`QA@0AlLQA0AlLrQA0AlLiQA0AlLZQA0AlL PQAٓ0AlLEQAɓ0AlL@5QA0AlL)QA0AlL'QA@0AlLQA@0AlL`QA@0AlL@ QA0AlL QAԓ0AlLQA0AlLQA0AlLQA 0AlL`QA0AlL`QA@0AlLQA(0AlL@QA;0AlL@QAI0AlL@QAX0AlL`QAj0AlL QAr0AlL~QA@m0AlLtQAd0AlL`jQAU0AlLZQAN0AlL@TQAG0AlLLQA70AlL@QA)0AlL@6QA0AlL`)QA0AlLQA0AlLQA 0AlLQA 0AlL`QA0AlLQA0AlL`QA0AlLQA0AlL QA@0AlLQA@0AlLQAѓ0AlLQA˓0AlL`QAȓ0AlL QAƓ0AlLQA0AlLQA0AlLQA0AlLQA0AlL~QA@0AlL wQA0AlLjQA0AlLaQA0AlL@[QA0AlL`UQA0AlLIQA|0AlL=QA@|0AlL6QA0AlL,QA@0AlL`$QA0AlLQA0AlLQA@0AlLQA0AlLQA~0AlL QAn0AlLQAI0AlL`QA80AlLQA=0AlLQAI0AlL`QAX0AlLQAt0AlL`QA0AlLQA@ȓ0AlL|QAԓ0AlLtQAܓ0AlL iQAՓ0AlLbQAē0AlLZQA@0AlL MQA0AlLDQAc0AlL`9QAR0AlL@-QA=0AlL"QA@30AlL`QA50AlLQA50AlLQA@10AlL@QA@(0AlLQA0AlLQA0AlLQAג0AlLQA0AlLQA@0AlLQAc0AlL@QA>0AlL@QA0AlLQA0AlLQA0AlL@QAޑ0AlLQAő0AlLQA0AlL@QA0AlL`QAk0AlLQA@`0AlLQA@S0AlL@QA@N0AlLPQA@L0AlL~QAC0AlLwQA90AlLqQA00AlLlQA&0AlLbQA0AlL [QA0AlLTQA0AlLNQA0AlLFQAҐ0AlL=QA@0AlL5QA0AlL/QA@0AlL@'QA0AlL`QAk0AlL@QA^0AlL@QAJ0AlL`QA(0AlL QA 0AlLQA@0AlLQAˏ0AlL@QA0AlLQA@0AlLQA0AlL QA\0AlLQA(0AlLQA0AlL`ؿQA0AlLѿQA@0AlLǿQA@؎0AlL`ÿQAƎ0AlL`QAX0AlL`QA70AlLQA 0AlL`QA؍0AlLQA@0AlLQA`0AlL`QA%0AlLQA@Ԍ0AlLQA@40AlL@QA 0AlL QA@0AlL`QA0AlL`QA;0AlLQA0AlLQA0AlL!QA@y0AlL"QA=0AlL@(QA0AlL@0QA@0AlL0AlLQA80AlLzQA;0AlLmQA>0AlL]QA10AlLNQA0AlLFQA@~0AlL@QA~0AlL >QA~0AlL /QA~0AlL` QA{~0AlLQA~0AlLQA}0AlL`QA}0AlL QA}0AlL@QA}0AlLQA}0AlLQA}0AlLQA@}0AlLQA}0AlLQA@}0AlLpQA@}0AlLQAl}0AlLQAP}0AlLQA@|0AlLuQA|0AlLoQA@u|0AlLoQA@T|0AlLoQA|0AlL@sQA@{0AlL@sQA{0AlL`sQA|{0AlL oQA@{0AlLjQA"{0AlL`QA{0AlLWQA{0AlL PQA@z0AlL CQAz0AlLAQAz0AlL@;QA@z0AlL5QAz0AlL@.QAz0AlL #QAz0AlLQAz0AlL QA@;z0AlL QA@z0AlL QAy0AlLQAy0AlLQAy0AlLQAx0AlLQACx0AlL ۿQA!x0AlLֿQAw0AlLͿQAw0AlLÿQA@w0AlL`QA6w0AlL@QAw0AlLQA@v0AlLQAv0AlLQAv0AlLQA}v0AlL`~QAWv0AlL}QA7v0AlLxQA v0AlL@sQA@u0AlLnQAu0AlL`mQA@u0AlL`oQA{u0AlLprQA@Yu0AlL`kQA'u0AlLcQA u0AlLdQA@t0AlLeQAt0AlL@eQAt0AlL dQAt0AlLbQAt0AlL\QAt0AlLSQAt0AlLHQArt0AlL`AQAMt0AlL8QA4t0AlL1QA t0AlL (QAs0AlLQA@s0AlLQAs0AlLQAs0AlLQAks0AlLQA@Is0AlL QA+s0AlLQAs0AlL"QA@r0AlL"QA@r0AlL@&QAr0AlL*QAr0AlL`1QAr0AlL8QA@r0AlLAQAmr0AlL IQANr0AlL`KQA@5r0AlL`FQAr0AlL?QAq0AlLBQA@q0AlLAQAq0AlL =QAq0AlL`8QAkq0AlL6QAAq0AlL@:QAq0AlL`>QAp0AlL`IQAGp0AlL SQA$p0AlL@YQAp0AlLcQAo0AlL@lQAo0AlLoQAo0AlL`rQAo0AlL tQA@o0AlL{QAn0AlL@~QAn0AlL QAn0AlLQAn0AlL`QAon0AlLQAbn0AlLQA@\n0AlLQA_n0AlL QA[n0AlLQAQn0AlLQA9n0AlL QA@$n0AlLĿQA@n0AlL˿QAm0AlL@QA@m0AlL@QAm0AlLQAm0AlLQAm0AlL QA@m0AlL@%QA@m0AlL ,QA@m0AlL5QAm0AlL ;QAm0AlL?QA@m0AlLGQA`m0AlL@OQAm0AlL`gQAm0AlL@mQA@l0AlL@QA@l0AlLQAl0AlL@QAl0AlL`QA@Xl0AlLQA)l0AlL@QAk0AlLQA@k0AlL@QA@k0AlLQAnk0AlLQA@Dk0AlLQAk0AlLQAi0AlLQA@i0AlLQAi0AlL QAi0AlLQAwi0AlLQA_i0AlLQA?i0AlLQAi0AlLQAh0AlLQAh0AlL`QA^h0AlLQA@Mh0AlL@QA5h0AlL QAh0AlL@QA@h0AlLQAh0AlL QAg0AlL*QAg0AlL/QA@g0AlL 4QAg0AlL9QA@g0AlL=QA@ig0AlL@DQA@Hg0AlLEQA*g0AlL JQAg0AlLOQA g0AlLUQAf0AlL\QAf0AlL@bQA@f0AlLgQAf0AlLhQAf0AlL@kQA@bf0AlLkQAJf0AlLlQA(f0AlL@pQA@f0AlLxQAe0AlLQA@e0AlLQAe0AlLQAe0AlLQAe0AlLQAe0AlLQAd0AlLQA e0AlL` QA9e0AlLQA@Je0AlLQA_e0AlLQAhe0AlL%QAke0AlL,QApe0AlL7QAte0AlL @QAme0AlLNQAYe0AlL@VQA@Fe0AlL`QA0e0AlLmQA0e0AlL@wQAf0AlL@QA@Uf0AlLQArf0AlLQAf0AlL`QAf0AlL@ QA@f0AlLQAf0AlL@+QAf0AlL9QAf0AlLDQAf0AlL`RQAf0AlL\QAf0AlL pQAf0AlLvQA@f0AlL|QAg0AlLQA@g0AlLQA[g0AlLQAig0AlLQAdg0AlL`QAKg0AlL`QAg0AlLQAh0AlLQA>i0AlL@QAi0AlLQAi0AlL@QA j0AlLQAQAz0AlLQA;z0AlLQA@z0AlL`QA@z0AlL@QAz0AlLQAz0AlLQA9DX0AlL YQA0AlLQACj@e0AlLbQA@O0AlLAQA@\0AlLQA0AlL@@QA0AlLBQA0AlLDQA0AlLDQA 0AlL DQA@0AlL`BQA'0AlL?QA<0AlLQA0AlL>QA@0AlL?QA@0AlL@QA0AlL6QA0AlL@1QA0AlL ,QA0AlL (QA0AlL#QA@0AlL@QA0AlL QA0AlLQAo0AlLQAe0AlLQA@Z0AlLQA@H0AlL QA@M0AlL QAJ0AlLQAH0AlLQA$0AlLQA@0AlL QA0AlLQA@0AlLQA0AlLQA@0AlL@QA0AlLQAF0AlL QA20AlLQA0AlLQA0AlLQA0AlL`QA0AlL`QAE0AlL`QA@m0AlLQA@0AlL`QA@0AlLQA0AlL@QA0AlL@QA@0AlL`QA@0AlLQA#0AlLQA.0AlLQA<0AlL@QA#0AlLQA0AlLQA0AlLQA0AlLQA 0AlL`QA@0AlLQA0AlL QA 0AlLQA0AlLQA@)0AlLQA>0AlLQAa0AlLQAd0AlLQAj0AlL~QA@r0AlLyQAu0AlLjQA@j0AlL`dQAS0AlL ^QA!0AlLXQA@0AlL TQA@0AlLKQA@0AlLDQA0AlL@QA10AlL`BQAM0AlLAQAo0AlL?QA0AlL>QA@0AlL>QA0AlL=QA0AlL7QA0AlL@1QA0AlL+QA0AlL#QA0AlLQA0AlLQA0AlL QA0AlLQA0AlL QA0AlLQAm0AlLQA\0AlL QAO0AlL`QA;0AlLQA00AlL@QA@0AlL QA 0AlLQA@0AlLQA0AlLQA@0AlL QA0AlLQA0AlL`QA0AlL QA0AlL`QA0AlLQA0AlLٿQA|0AlL@ԿQAh0AlLӿQAX0AlLҿQAQ0AlLпQAS0AlL`ȿQAS0AlL`QAZ0AlLQAf0AlL QAt0AlL`QA@0AlL QA0AlL`QA0AlLൿQA@0AlLQA0AlL@QA0AlL QA@0AlL QA@0AlL QA@0AlLQA0AlLQA@0AlLQA0AlL`QA@-0AlLQA@+0AlL@QA@$0AlLࣿQA0AlL QA0AlL QA0AlLQA0AlL`QA0AlLQA0AlLQA80AlLQAD0AlL QAK0AlLQA]0AlLyQAa0AlLoQAU0AlLjQA@W0AlL@dQA@X0AlLaQAM0AlLXQAG0AlLUQAG0AlL`IQA@N0AlLDQAR0AlLBQAv0AlLCQA{0AlL@QA@0AlL;QA|0AlL5QAi0AlL@1QA@a0AlL+QA_0AlL$QA@\0AlL QAf0AlLQA@t0AlLQA0AlLQA0AlL QA0AlL QA0AlLQA0AlLQAi0AlL@QA_0AlL`QAV0AlLQAJ0AlLQA<0AlLQA@ 0AlLQA0AlLݾQA0AlL ؾQA90AlLҾQAR0AlLȾQA^0AlLžQAk0AlLþQAc0AlL྾QA@f0AlL๾QA_0AlLQAV0AlLാQA@N0AlL`QA@<0AlLQA'0AlLাQA0AlL`QA0AlLQA0AlLQA0AlL QA0AlLQA@0AlLாQA@0AlL QA0AlL`QA0AlL QA@0AlLQA0AlLQAm0AlLࣾQAb0AlLQAR0AlLQA@>0AlLQA@0AlL@QA0AlLQA@0AlL@QA0AlLQAɿ0AlLQA0AlLQA0AlLQA0AlLQAu0AlLQAx0AlL@QA0AlL QA@0AlLQA@0AlL |QA0AlLzQA@0AlLvQA@0AlLoQA0AlL`aQA;0AlL@JQA+0AlLBQA&0AlL:QA00AlL2QAL0AlL'QAy0AlL@QA@0AlLQA0AlLQA0AlLQAο0AlL@QAտ0AlLQA@0AlL@QA@0AlLQA@%0AlL@QA80AlLQAE0AlL@QA0AlL QA0AlL`QA0AlL QA0AlL`QA0AlLQA0AlL0QA0AlLQA0AlLpQA0AlLQA0AlLQA0AlLQA@0AlL@߽QA0AlLؽQA0AlLԽQA0AlLԽQA0AlLнQA0AlL ʽQA0AlLýQA0AlLĽQA0AlL ŽQA@0AlL@QA0AlLQA0AlL QA0AlL`QAe0AlLQAJ0AlLQA@70AlLQA0AlLQA@0AlLQAٿ0AlLQA0AlL QA@j0AlLQAQ0AlLQAA0AlLQA10AlLQA20AlLQAy0AlLQA0AlL|QA0AlLzQA0AlLsQA0AlL@pQA/0AlLlQA<0AlLeQA50AlL^QAB0AlLXQA@A0AlL RQA@#0AlLMQA0AlL@KQA0AlLJQA@ֿ0AlL@IQA0AlLBQA@ӿ0AlL>QA@0AlL:QA0AlL4QA0AlL`0QA߿0AlL)QAۿ0AlLQA0AlLQA@0AlLQA0AlLQA20AlL QA@;0AlLQA 0AlLQA@0AlLQA0AlLQA0AlL@QA0AlLQA@ֿ0AlLQAſ0AlL@QA0AlL@QA0AlL QA0AlLQA0AlLQA}0AlLݼQA@j0AlL׼QAc0AlLӼQA@`0AlL ͼQAe0AlL QA]0AlL`QA@X0AlLQA@F0AlLQA:0AlLQA0AlL๼QA0AlLQA0AlL఼QA0AlL୼QA@0AlLQA0AlL`QAо0AlLQA0AlL@QA@0AlL@QA@0AlL QAo0AlLQA_0AlL@QAH0AlLQA10AlL QA0AlLQA0AlL QA0AlLQA@0AlLQAĽ0AlLQA0AlL`QA@0AlLwQA0AlLmQA0AlLhQA0AlLhQAs0AlLgQAO0AlLgQA20AlL hQA0AlLdQA0AlL@aQA0AlL\QA0AlLXQAݼ0AlLQQAټ0AlL@KQA0AlL`EQA0AlLAQA@0AlL@@QA&0AlL@BQA=0AlL?QA@H0AlL6QA@ڼ0AlL "QA˼0AlL !QA0AlLQAz0AlL QAo0AlL #QA`0AlL&QAE0AlL"QA+0AlL`QA0AlLQA@0AlLQAٻ0AlLQAֻ0AlL`QA˻0AlLQA0AlLQA0AlL@ QA0AlL QAy0AlLQAp0AlL QA_0AlL` QAF0AlLQA=0AlLQA*0AlLQA0AlLQA@0AlLQA@0AlL QA@ٺ0AlLQAк0AlLQA@ĺ0AlL QA@0AlLQA0AlL QA0AlL QA@v0AlL!QAt0AlL@QAS0AlLQA>0AlLQA70AlL`QA"0AlL@QA0AlLQA0AlLQAݹ0AlLQA@Ϲ0AlLQA˹0AlL QA0AlL@QA@0AlL@QAy0AlLQAa0AlL`QA]0AlLQAY0AlLQA@G0AlLQA'0AlL ĻQA0AlLQA0AlL@QAŸ0AlL zQA@0AlL`nQA@ø0AlL dQA0AlL]QA@E0AlL YQA0AlL`QA0AlLfQAv0AlL@lQAX0AlLkQA@"0AlLjQA0AlL`iQA0AlLiQAV0AlL@pQA 0AlLxQA@Ե0AlLxQA0AlLwQAD0AlLQA0AlL`QA0AlL}QA@70AlL@wQA@0AlLmQAƳ0AlLgQA@^0AlL bQA0AlL gQAf0AlL}QA/0AlLQA@0AlLQA0AlL౻QA@f0AlL QA0AlLົQA@°0AlL»QA0AlL`һQAi0AlL޻QA_0AlL QA00AlL QA@0AlLQA0AlLPQA0AlL QA˯0AlL QA0AlLQA`0AlLQA@#0AlLQAۮ0AlLQA0AlL`QAm0AlL QAI0AlL%QA@0AlL`KQA@0AlL`RQA0AlL@eQA0AlLoQAx0AlL@QAX0AlLQA10AlLQA0AlLQA0AlLQA0AlLQA:0AlLƼQA@0AlLȼQA"0AlLQA0AlLQAߪ0AlL@QA0AlLQA0AlLQA0AlL਼QA0AlL`QA@~0AlL QAW0AlL`QA80AlLQA0AlL@ͼQA0AlLڼQA0AlLQA@0AlLQAU0AlL޼QA@0AlLͼQA@p0AlLӼQA30AlLټQA0AlL@QA@0AlLQA0AlLQAs0AlLټQA@R0AlL ̼QA@,0AlL@˼QA0AlL`ԼQAե0AlL޼QA0AlLQA@g0AlLQA@=0AlLQA@#0AlL`QAp0AlLQA@:0AlLQA0AlLQAߣ0AlL@QA@0AlL@QAf0AlLQA60AlL`QA0AlLQA0AlLQAa0AlLQA*0AlL QA 0AlL QA0AlLQA@ԡ0AlLQA0AlLQA@`0AlLQAG0AlL QA@ܠ0AlL QA0AlLQA:0AlLQA@0AlLQA0AlLQA@0AlLQAX0AlL@QA@0AlL QA˞0AlL@QA0AlLQA@p0AlL`QAO0AlL` QA50AlL QA0AlL`QA@0AlLQAߝ0AlL`QA0AlLQA@0AlLܼQAy0AlLѼQAY0AlL μQA0AlL@̼QA@0AlLƼQA0AlLQA0AlLQAm0AlL QA0AlLQA0AlLຼQA@Ǜ0AlL¼QAx0AlLѼQAU0AlL׼QA'0AlLQA0AlL@QAޚ0AlLQAΚ0AlL@QA@0AlL@$QA0AlL4QA@l0AlL>QA@(0AlLDQA@0AlL`JQA@0AlLOQA0AlLRQAY0AlL@SQA>0AlLVQA0AlL [QA0AlL_QA0AlL``QA@0AlL`\QAH0AlL^QA@0AlL `QAϗ0AlL^QA0AlL`[QAO0AlL VQA@0AlL`OQA0AlL OQA@0AlL ZQA0AlL`^QAI0AlLgQA$0AlLkQA@0AlLrQA͕0AlLwQA0AlL}QAu0AlLQAK0AlLQA0AlL QA@0AlL`QA0AlLQA@0AlLQA0AlLϽQA0AlLֽQA@0AlLQA0AlL`QA@0AlLQA0AlL`)QA0AlL +QAu0AlL)QAE0AlL)QA 0AlL(QAܓ0AlL!QAS0AlL@ QA"0AlL QAܒ0AlL@ QA0AlLQA@0AlLQA@,0AlLQA@0AlLQA0AlLQA@0AlL#QAˑ0AlL`+QA0AlL5QA@0AlL?QA0AlLMQA@0AlL WQA@0AlL@^QAR0AlL `QA0AlL`QA0AlL@aQA@]0AlL`eQA@'0AlLfQA@0AlL MQAʏ0AlLCQA0AlL=QAK0AlL`9QA#0AlL:QA@0AlLAQA0AlLBQAݎ0AlLKQA0AlL@\QA0AlLiQAz0AlLxQAz0AlLQA0AlLQA@0AlL@QA@؎0AlLாQA0AlLQA0AlL@ξQA 0AlL پQA 0AlLQA@0AlL`QA0AlL@QAĎ0AlL`QA0AlL QAm0AlLQA@B0AlL@QA@10AlL@QA@0AlL`+QA@0AlL6QA 0AlL@>QA0AlLCQA0AlLOQA0AlL [QA0AlL`cQA0AlL@nQA0AlLxQA0AlL QA 0AlLQA0AlL`QA<0AlLQAƎ0AlL`QA@؎0AlL`ÿQA@0AlLǿQA0AlLѿQA0AlL`ؿQA(0AlLQA\0AlLQA0AlL QA@0AlLQA0AlLQAˏ0AlL@QA@0AlLQA 0AlLQA(0AlL QAJ0AlL`QA^0AlL@QAk0AlL@QA0AlL`QA@0AlL@'QA0AlL/QA@0AlL5QAҐ0AlL=QA0AlLFQA0AlLNQA0AlLTQA0AlL [QA&0AlLbQA00AlLlQA90AlLqQAC0AlLwQA@L0AlL~QA@N0AlLPQA@S0AlL@QA@`0AlLQAk0AlLQA0AlL`QA0AlL@QAő0AlLQAޑ0AlLQA0AlL@QA0AlLQA0AlLQA>0AlL@QAc0AlL@QA@0AlLQA0AlLQAג0AlLQA0AlLQA0AlLQA@(0AlLQA@10AlL@QA50AlLQA50AlLQA@30AlL`QA=0AlL"QAR0AlL@-QAc0AlL`9QA0AlLDQA@0AlL MQAē0AlLZQAՓ0AlLbQAܓ0AlL iQAԓ0AlLtQA@ȓ0AlL|QA0AlLQAt0AlL`QAX0AlLQAI0AlL`QA=0AlLQA80AlLQAI0AlL`QAn0AlLQA~0AlL QA0AlLQA@0AlLQA0AlLQA0AlLQA@0AlL`$QA0AlL,QA@|0AlL6QA|0AlL=QA0AlLIQA0AlL`UQA0AlL@[QA0AlLaQA0AlLjQA@0AlL wQA0AlL~QA0AlLQA0AlLQA0AlLQAƓ0AlLQAȓ0AlL QA˓0AlL`QAѓ0AlLQA@0AlLQA@0AlLQA0AlL QA0AlLQA0AlL`QA0AlLQA 0AlL`QA 0AlLQA0AlLQA0AlLQA0AlL`)QA)0AlL@6QA70AlL@QAG0AlLLQAN0AlL@TQAU0AlLZQAd0AlL`jQA@m0AlLtQAr0AlL~QAj0AlL QAX0AlL`QAI0AlL@QA;0AlL@QA(0AlL@QA@0AlLQA0AlL`QA 0AlL`QA0AlLQA0AlLQAԓ0AlLQA0AlL QA@0AlL@ QA@0AlL`QA@0AlLQA0AlL'QA0AlL)QAɓ0AlL@5QAٓ0AlLEQA0AlL PQA0AlLZQA0AlLiQA0AlLrQA@0AlLQA0AlL`QA@0AlL`QA0AlL@QA 0AlLQA0AlL@QA@30AlLQAL0AlL@QA@d0AlL@QAm0AlL QAj0AlL QAW0AlL`QAI0AlL#QA0AlLHQA 0AlLNQA@0AlL`XQA0AlL@QA0AlLQA@0AlL QA@0AlLQAl0AlL QA@10AlLQA0AlLQA@0AlL QAߒ0AlL`QA’0AlLQA0AlL`QA0AlLQA@0AlLQA0AlL` QA0AlLQA@0AlL`QA}0AlL`$QAs0AlL1QA`0AlLCQA@L0AlLLQAC0AlL@XQA>0AlLcQA@H0AlL@mQAZ0AlLrQAo0AlLzQA@0AlL QA0AlL@QA0AlL`QA0AlLQA@’0AlL@QA0AlL@QA@0AlL QA0AlL`QA@0AlL QA0AlLQA0AlLQAy0AlLQAk0AlL`QA@n0AlL QA@c0AlL+QA@X0AlL0AlL`QA@{0AlL2QA@0AlL@QA@0AlLGQA@0AlL OQA0AlL@XQA0AlL dQA@0AlL oQA@0AlL tQA0AlLzQA0AlLQAƑ0AlLQA0AlLQA0AlL #QA@0AlL`%QA@ 0AlL 0QA@0AlL8QAB0AlLEQAS0AlLKQAa0AlLPQA0AlLYQA@0AlL`bQA@0AlL jQA@0AlLmQAڒ0AlLtQA0AlL{QA@ 0AlLQA@(0AlL@QA@E0AlL@QA@~0AlLQA@0AlL`QA0AlLQA0AlL QAГ0AlLQA0AlLQA0AlL QA90AlLQA^0AlL QAv0AlL QA0AlL@QA0AlLQAؔ0AlLQA0AlLQA@0AlLQA@0AlLQA@0AlL@QA0AlL QA@0AlLQA0AlL@QA@!0AlL.QA'0AlL@5QA10AlL>QA@0AlLGQAc0AlLQQA0AlL@ZQA@֕0AlL]QA@0AlL@_QA0AlL bQA50AlLdQA@^0AlL@lQA@0AlL@pQA0AlLoQA@ۖ0AlL@sQA 0AlLyQAM0AlL}QA@0AlLQA@×0AlLQA@0AlLQA@&0AlLQAD0AlL@QAj0AlL@QA0AlLQA0AlLQAĘ0AlL QA0AlLQA0AlLQA/0AlLQAG0AlL@QAV0AlLQAZ0AlL@QA_0AlL`QA@c0AlLQA@h0AlLQAg0AlL QA@{0AlL@QA0AlLQA0AlLQA@0AlL@QA@0AlLQA@0AlL QA˙0AlL`'QAٙ0AlL2QA0AlL`7QA-0AlL@>QAX0AlL`CQA@0AlLIQA@0AlL`RQA0AlL\QA 0AlL``QA"0AlLeQA40AlLlQA70AlLyQA?0AlL@QA@^0AlLQA0AlL`QA0AlL{QAЛ0AlLsQA0AlLmQA@K0AlLfQAr0AlLbQA0AlLbQA@0AlLeQA0AlLhQA0AlLoQA@0AlL xQAǜ0AlLzQA@ۜ0AlL`QA0AlLQA0AlLQA@0AlLQA0AlL@~QA"0AlL`zQA@(0AlL vQAF0AlLuQA@h0AlLtQA0AlL`mQAl0AlLiQA@e0AlLbQA@ݹ0AlL QA0AlL@QA0AlLQA@0AlLQA0AlLQA@ 0AlL`QA@0AlLQA0AlLЊQA!0AlL@QA,0AlL`QA:0AlLQAD0AlLQA@M0AlLQA@U0AlL`~QA[0AlLP}QA^0AlL@{QA`g0AlL@zQAm0AlL{QAu0AlLyQAw0AlLwQAz0AlLtQA@}0AlL`pQA0AlLmQA0AlLjQA0AlLhQA0AlLfQA0AlL@eQA0AlLcQA0AlLaQA@0AlL_QA@0AlL]QA0AlL\QAº0AlL\QAȺ0AlL`ZQA̺0AlLWQA`̺0AlL`UQAȺ0AlL@SQA0AlL`PQA0AlL`NQA0AlL`LQA@0AlLJQA0AlLIQA0AlLEQA0AlLPCQA0AlL@BQA0AlL?QA`0AlL>QA5UU0AlLp>QA0AlL`=QA@0AlLp0AlLwQA10AlL sQA@%0AlL`nQA0AlLjQA@ 0AlL`jQA@0AlL@kQA0AlLnQA@0AlLrQA0AlLtQA0AlLxQA@0AlL}QA0AlL@QA0AlL@QA0AlL`QA0AlLQA0AlL@QA@0AlLQA$0AlLQA.0AlLQAA0AlLQAN0AlLQA^0AlLQA0AlLQA@0AlL QA@x0AlLQAr0AlL@QA@d0AlL@QA@Y0AlLQAD0AlLQA40AlLQA+0AlLQA@0AlLQA0AlL QA@ 0AlLQA0AlLQA0AlLQA0AlL QA@޼0AlLQA@0AlLQAӼ0AlLQAʼ0AlLQAǼ0AlLQA0AlLQA0AlLQA0AlL QA0AlL QA@ȼ0AlLQA@Ӽ0AlLQAؼ0AlLQA0AlL@QA0AlLQA0AlLQA0AlL@QA10AlLQA@>0AlLQAX0AlLQAh0AlLQAq0AlL`QA@~0AlLQA0AlLQA0AlLQAb0AlL 0QAm0AlL-QA@u0AlL)QAs0AlL'QA@i0AlL`$QA`0AlL#QAN0AlL QA@/0AlL` QA0AlL@!QA0AlL`"QA0AlL #QA0AlL"QAʠ0AlL$QA0AlL#QA0AlL$QA0AlL`(QA0AlL+QA0AlL-QA0AlL/QA@Π0AlL@.QA0AlL 0QA0AlL2QA@0AlL5QA 0AlL8QA@0AlL@9QA%0AlL 8QA@;0AlL6QAF0AlL`5QAb0AlL 0QA:B.AxQA.AlLNQA.AlL:QA.AlL1QA.AlL+QAn.AlL$QA.AlL`QA@.AlL@QA.AlLQA.AlL QA:.AlL@QA.AlLQAܴ.AlL@QA.AlL֚QA?.AlL@̚QA.AlL@ÚQA.AlLQAd.AlL QA.AlLQA.AlLQAK.AlL@QA.AlLQA߷.AlLQA;.AlLQA.AlLࠚQA¸.AlL@QA+.AlLQA.AlLQA.AlLQAv.AlL QAк.AlLQA$.AlL୚QA.AlLQAѻ.AlLQA.AlL@QA.AlLQAǼ.AlLQA.AlLPQA.AlLQA4.AlL QA.AlLxQA.AlL vQAƽ.AlLrQA.AlL`kQA.AlL hQA..AlLeQAg.AlL[QA.AlLVQA.AlLNQA̾.AlLKQA.AlL BQA".AlL@:QAY.AlL2QAy.AlL*QA.AlLQAѿ.AlLQA.AlLQA.AlL`QA.AlL QA".AlLQAE.AlL`QA^.AlL QAt.AlL`יQA.AlLQA.AlL QA.AlLQA.AlLQA.AlLQA.AlLyQA.AlLmQA.AlL`QA.AlLXQA.AlL NQAs.AlL`BQA}.AlL`0QA.AlLQA.AlLQA.AlL@ޘQA.AlLɘQA.AlLQAa.AlLQA.AlLQA.AlL@nQA.AlL@^QA.AlL`SQA.AlL`DQA,.AlLQAE.AlL`QAa.AlL QAu.AlLQAj.AlLQA].AlL֗QAV.AlL`ǗQAW.AlLQAX.AlLQAX.AlL QAa.AlLQA\.AlL@tQA].AlL`cQA.AlLSQA.AlLFQA.AlL`;QA&.AlL-QA0.AlLQAc.AlL QA.AlL QA.AlLQA.AlLQA.AlL˖QA.AlL`ȖQA.AlLQA.AlL࢖QA.AlL`QA.AlLyQA.AlL@bQA@4.AlL0SQAq.AlL @QA.AlL(QA.AlLQA.AlLQA.AlLQA.AlLQA4.AlLؕQA.AlLɕQA.AlLQA.AlLQA(.AlL QA#.AlLQA.AlLQAR.AlL@QAz.AlLQA4.AlL`mQA.AlL`nQA.AlLrQAb.AlL@tQA.AlLzQA.AlL {QAJ.AlLQA.AlLQA.AlL QAB.AlL QAv.AlLpQA.AlLQAu.AlLQA.AlL`QAy.AlL@QA.AlLQA{.AlL@|QA.AlL`vQA.AlLwQA .AlL@}QA.AlL|QA.AlLtQA .AlLlQAc.AlLcQA.AlL ZQA.AlLQQAR.AlL GQAu.AlL;QA.AlL1QA.AlL!QA.AlLQA.AlLQA .AlLQAm.AlL`QAw.AlLQA.AlL۔QA.AlL͔QA=.AlL`QAo.AlLQA.AlL@QA.AlLQA .AlLQAf.AlL QA.AlL}QA.AlLtQA".AlLiQA_.AlL aQA.AlLWQA.AlL@IQAq.AlL8QAv.AlL7QA.AlL.QA.AlL%QA.AlLQA.AlL`QA.AlL QA.AlL@QA.AlL QA.AlL@QA.AlLQA.AlL QA.AlL@QA.AlLۓQA.AlLԓQA.AlL̓QA.AlL@œQA.AlLQA.AlL`QA.AlL`QAB.AlL QA.AlLzQAO.AlL hQA.AlL SQA.AlLIQA.AlLCQA.AlL1QAv.AlL@QA^.AlLPQA\.AlLQA].AlL`QA3.AlL QA.AlLےQA .AlL ВQA.AlL@ŒQA:.AlLಒQAq.AlLQA.AlLQA.AlLqQA.AlL`iQA-.AlL\QAE.AlLRQAS.AlLGQA3.AlL 9QA.AlL -QA.AlL QA.AlL@QA5.AlLQA.AlLQA.AlLQA.AlLQA.AlL QA.AlLԑQA[.AlL`ÑQA+.AlL`QA.AlL@QA.AlL`QA$.AlLQA.AlL@QA.AlLwQA.AlLkQAt.AlL_QA2.AlL@XQA.AlLOQA1.AlLHQA.AlL`@QA.AlL`:QA#.AlL@4QAغYW.AX/QAQ .A w-QAx.Aqu)QA.AxQA?.A0bQA 6n.A$QAP.A$"QA%w.ArQAM.AFFQA.Aآ}BQA`Ȩ.A wQA`Ȩn.AxQAxnA.A[zQAq.AquQA?.Aj{bQAPzޓ.Aآ}%QA?7.AFF)QA%n.A0"-QA講.A$/QAPzZ.Aqub2QA@Mn.A0QA8(.A(QAp`.AQA_9޳.Ax QAcm.A"QA,.ADs"QAPՕ.ALzxQA6.Aآ}QA`ڼm.A适QAށ.AquQAer.ALX=QA`ڼ/.AxQAm.ADsQA qM.AqubQA qMݜ.A wQAX5.Aآ}QAptݚ.ADs"QAށD.Aqu"QA9 .AFFQA&.ADsQA qM?.A[zQA qM.Aqu"QA qMx.ADsBQA(Z.A$ QA9m/.ADsBQAhF .AquBQA0Zm.Aqu!QA,Z.Aqu)QA .A wB2QA'.A*r1QA>H.A*r1QAH# .Aآ}3QAlӽ.A9QAތ.Aj{"9QA^?.AFF3QAxՈ߼.AFF2QA0c.Aآ}b6QAh '.A wGQA{ٻ.A wPQAv.ADsBdQAhZl.A wxQA~lԺ.A适QAP,ul.A"QAM |.A[zbQA.A[zQA@.Aj{ⲑQAó.AtŴQAp .A wQAp䋖.ADsBQA8u ڱ.Aj{QAP>k.AFFQA`'A.AFFQAb .A wBQA"|.A wQA+.AxQAyh.Aآ}"QA`'A.A"QA 4.Aj{bQAb kv.Aآ}BQAjݫ.Aj{B0QA.Ax"KQAXGki.A*raQA+k.AquiQA0(&.AHq1tQAj-.AxvQA X.AxQA.A*rQAHg.AxϒQA&.A[z"QA@j.Aj{ QA+.AquB#QA&y.AFFb=QA j.ADsVQApjܩ.Aqu".A*rOQAt4 ..A wBbQA(.AxtQA(i.Aj{QA} .A*rQAt4j.A wBQAt4 .ADsQA;0.A[z"ʓQA=jD.A wbٓQA8.ADsbQA@ %.Aj{BQA(i.AFFb QA(i.Ax$QA( .AFFbUQA 6.AhpbQA]Ѡ.Aj{nQA&K.Ax"{QAiݟ.Aj{QA8.AhpbQA؉9.A*r⯔QA8.ADsbQAPy.A[z̔QA`bi.An"הQA}ž.Ax"QAfv.Aj{BQAPA.ADsQA .A wQAo.ADs&QAi.Aj{*QAFÜ.A*r"6QAfv.A wBBQA`biќ.AhpHQA} .AhpKQAHU2.ADsVQA+i=.A w_QAи.82.Aԅ^cQA8.ADsjQAІH .Aqu"tQA(oԛ.A*rBQAІHH.A w╕QAA.A wbQA6.Aآ}"QAO..Aj{ⲕQAi.AxµQAih.A wbQAbi#.AFF⹕QA.AnQAB.A'ƕQAp.AlLԕQA.AlL ܕQA.AlL QAǘ.AlLQA.AlLQA.AlLQA#.AlL`+QA<.AlL`CQA?.AlLTQA8.AlLgQA1.AlL`{QA+.AlLQA!.AlLQA.AlL`QA.AlL QA.AlL`˖QA.AlLܖQAH.AlLQA.AlLQA͙.AlL QA .AlLQAX.AlL&QA.AlL1QA.AlL =QA[.AlLGQA›.AlLRQA .AlLXQAd.AlL^QA.AlL@iQA.AlL uQA.AlL}QA.AlLQA.AlL QA.AlLQAĜ.AlLQAܜ.AlL`QA.AlL@ɗQA.AlL@ԗQA.AlLޗQA$.AlLQA..AlL@QAQ.AlL`QAk.AlL@QA.AlL QAĝ.AlLQA͝.AlLPQAڝ.AlLQA.AlLQA.AlL QA0.AlL%QA9.AlL&QAq.AlL.QA{.AlL0QA.AlL@;QAĞ.AlLGQAԞ.AlLRQA.AlL@\QA.AlLdQA:.AlLhQA.AlL@kQA.AlL@rQAE.AlL yQA.AlLQA.AlLQA.AlLQAC.AlLQAl.AlL@QA.AlLQA.AlLјQA.AlLQA.AlLQAڡ.AlL QA.AlL QA@.AlLQA.AlL`%QA(.AlL`7QA7.AlLGQAG.AlL YQAm.AlLdQA.AlLlQAբ.AlLuQA@.AlL`QAۣ.AlLܙQA.AlL`QA.AlLQA<.AlL QA?.AlL@QA..AlL.QA.AlL ;QA֣.AlLFQAޣ.AlLNQA .AlL UQA\.AlL aQA.AlLpQA}.AlLvQAy.AlLQA.AlL`QA$.AlLQAh.AlL QAޥ.AlL@QAE.AlLQAs.AlLQA.AlL`ΚQA .AlLԚQAe.AlL֚QA.AlL QA.AlLQAj.AlL@QAШ.AlLQA.AlL QA%.AlL QA.AlL6QA!.AlL`IQA.AlLNQA<.AlLJQA.AlL@GQA.AlLBQA.AlL=QA.AlL:QA;.AlLQA*/AlLdQA`.AlLQA.AlLQAb.AlLQA.AlLQA;.AlLQA.AlL@QAI.AlLQA.AlLQA.AlL QAt.AlL@{QA.AlL xQA%.AlLwQA\.AlLvQA.AlL@yQA.AlLQA.AlL`QA.AlL QA.AlLQA5.AlL QA.AlL@QA<.AlL`QA.AlLQA.AlLtQA.AlLdQA .AlLSQA2.AlLCQAc.AlL`7QA.AlL`0QA.AlLQA.AlL QA,.AlLQAx.AlLQA.AlLQA.AlLQA.AlLQA&.AlLQAv.AlL QA.AlL`ڛQA.AlL՛QA<.AlLӛQA.AlL`ΛQA.AlL`țQA.AlLQAf.AlLQAZ/AlLQA/AlL`QAw/AlLQA/AlLQAs/AlL@QA/AlL@QA/AlL@wQA/AlL`kQA/AlL@aQAs/AlL XQA/AlLQQA9/AlL`QAX /AlL@JQA /AlLQQA /AlLLQA4 /AlLDQA /AlL`:QAo /AlL`+QAU /AlL&QA /AlL QAy/AlL@ QA/AlLQA~/AlLQA/AlLQAe/AlL QA,/AlLQA/AlLQA}/AlL@QAD/AlL@QA/AlLQA/AlLQA(/AlLQA/AlLQA/AlLQA/AlL@QA_/AlLQA/AlL QAL/AlLږQA/AlL@ӖQA/AlL͖QA4/AlL@ŖQA /AlL`QA.AlL`QA].AlLQA.AlL@QA.AlLQA.AlLrQAj.AlL@fQA:.AlLZQA.AlLKQA.AlL!QA.AlL@QA1.AlL`QA.AlLQA.AlLЕQAK.AlLQA.AlL@QA.AlL@QA/AlL@QA/AlLQA.AlLuQA.AlL@gQA.AlLQQA.AlL >QA.AlL@1QA.AlLQA6/AlL QAm/AlL QA/AlLQA/AlL QAe/AlL`QA8/AҲffQA/AlLQA/AlLՔQA/AlLĔQA/AlL`QA$/AlLQA.AlLQA .AlL oQA.AlL`_QA.AlLQQA.AlLGQA.AlL ;QA.AlL 4QAu.AlL`0QA{.AlL0QA[.AlL&QAa.AlLQA.AlL QA\.AlLQA.AlLQA .AlLQA8.AlLQAZ.AlLQA/.AlLQA.AlLQA.AlLpQAa.AlLܓQA.AlL`ܓQA.AlLܓQA.AlL`֓QA.AlL˓QAM.AlL“QA.AlLQAf.AlL@QA.AlLQAv.AlLQA.AlL`QAS.AlLQA.AlLQAi.AlL`QA/.AlL`QA.AlLQA .AlLQA.AlLQAO.AlLQA .AlLQAp.AlLǓQA.AlLēQAr.AlLQA.AlLQA.AlL@QA*.AlLQA.AlLQA.AlL@œQA.AlL̓QA.AlLԓQA.AlLۓQA.AlL@QA.AlL QA.AlLQA.AlL@QA.AlL QA.AlL@QA.AlL QA.AlL`QA.AlLQA.AlL%QA.AlL.QAv.AlL7QAq.AlL8QA.AlL@IQA.AlLWQA_.AlL aQA".AlLiQA.AlLtQA.AlL}QAf.AlL QA .AlLQA.AlLQA.AlL@QAo.AlLQA=.AlL`QA.AlL͔QA.AlL۔QAw.AlLQAm.AlL`QA .AlLQA.AlLQA.AlLQA.AlL!QA.AlL1QAu.AlL;QAR.AlL GQA.AlLQQA.AlL ZQAc.AlLcQA .AlLlQA.AlLtQA.AlL|QA .AlL@}QA.AlLwQA.AlL`vQA{.AlL@|QA.AlLQAy.AlL@QA.AlL`QAu.AlLQA.AlLQAv.AlLpQAB.AlL QA.AlL QA.AlLQAJ.AlLQA.AlL {QA.AlLzQAb.AlL@tQA.AlLrQA.AlL`nQA4.AlL`mQAz.AlLQAR.AlL@QA.AlLQA#.AlLQA(.AlL QA.AlLQA.AlLQA.AlLɕQA4.AlLؕQA.AlLQA.AlLQA.AlLQA.AlLQA.AlL(QAq.AlL @QA@4.AlL0SQA.AlL@bQAd.AlL@bQA.AlLeQA.AlLgQAQ.AlLkQA.AlL qQA.AlLwQA.AlL@QA.AlLQAa.AlLQA.AlL@QA.AlLQA.AlLQA6.AlL{QAg.AlLwQA.AlLuQA5.AlL }QA.AlL@QA.AlLQA$.AlLQA_.AlLQA.AlLQA.AlL QA.AlLQA.AlLఖQAk.AlLQA.AlLQA.AlLÖQAU.AlL`͖QA.AlL ՖQAG.AlLږQA.AlL`QA.AlLQA9.AlL QA[.AlLQAx.AlL QA.AlLQA.AlL.QA1.AlL :QA.AlLFQA.AlLRQA.AlL`\QA.AlLeQAI.AlLkQA~.AlLlQA.AlLlQA.AlLoQAq.AlL`tQA.AlL |QA.AlL`QA4.AlLQAZ.AlLQA.AlLQA.AlLQA?.AlL@QA.AlL෗QA.AlL`QAw.AlL@—QA.AlL˗QA.AlLחQA@.AlLٗQAX.AlLޗQA.AlLQA.AlL QA.AlL QAR.AlL QA.AlLQA8.AlLQA.AlLQA7.AlLQAx.AlLQA.AlLQAo.AlL`QA.AlLQA.AlLQAn.AlLQA.AlL`QA1.AlL@QA.AlL@QA.AlLQA8.AlLQA.AlLQA.AlL QAo.AlLQA.AlL QA.AlLQA.AlLQA.AlLQA.AlLQA_.AlLQA.AlLQA0.AlL`QA.AlLQA%.AlLQAy.AlLQA.AlLQA.AlLQA'.AlL`QA.AlLQA6.AlLQAe.AlL`QA.AlL QAl.AlLQA.AlLQAn.AlL QAr.AlL QAy.AlLQA.AlL`QA.AlL .QA.AlL`"0AlL`QA"0AlLQA!0AlL`QA!0AlL@QA!0AlL@tQAl!0AlLgQA&!0AlLQQA!0AlL`BQA@ 0AlL4QA 0AlL#QA@ 0AlLQA@w 0AlLQAU 0AlL@QA8 0AlLQA@ 0AlLQA0AlL`څQA@0AlLЅQA0AlLȅQA0AlLQA@0AlLQA@0AlLQA@0AlL@QA0AlL@QA@0AlLQA0AlL`QA0AlLQA@0AlLQA 0AlLQA0AlL0QA0AlL0QA#0AlLkQA|aB0AaQAD40A`QA {wc0A]6QA0AN?3QA<0ARj`7QAxE;0A?QA܀0A?QA(70A5qلQA'0A ~yQAm~0AyCQA4K-0AUQALO7^%0A wZPQA'0A$/LQA0A6E>΃QA0AlLQAL0AlL`QA@20AlL@yQA0AlLlQA0AlL``QA0AlLRQA@0AlLDQA0AlL`;QA@0AlL 4QA[0AlL`)QAD0AlLQA/0AlL@QA0AlLQA0AlLQA0AlLQA0AlLւQA0AlLǂQA0AlL@QA0AlLQAs0AlLQAR0AlL`QA@0AlLQA0AlL`xQA@0AlLcQA0AlLWQA0AlLJQA0AlL@QA0AlLFQA0AlL@TQAr0AlL_QAG0AlLlQA0AlLyQA0AlL`QA0AlLQA0AlL QA0AlLQAS0AlLQA0AlLQA@0AlLQA0AlLQA@0AlLQA0AlL෉QA@0AlL@QA<0AlLQA@e0AlL@QA0AlL@QA0AlLQA0AlL`‰QA0AlLƉQA*0AlL`͉QAJ0AlLՉQAo0AlLډQA0AlL`݉QA0AlL@߉QA 0AlL߉QA@90AlL݉QAx0AlL`܉QA0AlLىQAV0AlL@؉QAK 0AlL@։QA@ 0AlLQA 0AlLщQA*0AlLpQA@10AlLɉQA$0AlL QA0AlL`QA0AlL QA 0AlLQA@D0AlL`QAp0AlL੉QA@0AlL@QA0AlL౉QA@0AlL ‰QA0AlL͉QA0AlL@ىQA0AlLQA0AlLQA0AlL`QAs0AlL QAn0AlL`QAt0AlLQA0AlL$QA0AlL(QA0AlL@+QA0AlL 8QA0AlLQAK0AlL QAG0AlL`yQA@X0AlL qQAk0AlL eQAx0AlL ^QA0AlLYQA0AlLVQA0AlLTQA0AlL`SQA@ 0AlLQQA@"0AlL`JQA#0AlLCQA@#0AlL8QA@80AlL1QAb0AlL -QA@0AlL`,QA0AlL+QA0AlL (QA0AlL`"QA 0AlLQA 0AlL QA@+0AlLQA20AlL`QA80AlL`QA<0AlLۈQA>0AlLψQAB0AlL@QAB0AlL@QAi0AlLƈQA0AlLEQA0AlLFQA0AlLHQA@0AlLࠉQA20AlL QA0AlL։QA0AlLQAQ0AlL`QA0AlL@QAu 0AlL`QAd!0AlL0QA@i"0AlL@PQA"0AlL8UQA@F#0AlLQA"0AlL@QA"0AlL QA!0AlL@QA= 0S0AlL yQA80AlL QAy0AlL0QAz0AlLмQA"{0AlLQA{0AlL0wQA|0AlL-QA }0AlLQA;}0AlLQA@w}0AlLQA}0AlLQA}0AlL QA}0AlL`QA!~0AlLיQA2~0AlL`ҙQAQ~0AlL ̙QAz~0AlL`ÙQA~0AlL QA@~0AlLQA~0AlL QA@0AlL`QA)0AlLQA@@0AlLQAo0AlLQA0AlLQA0AlL |QA0AlLtQA@{0AlLUQA0AlLJQA0AlLQA@-0AlL QA0AlL@QAP0AlLQA0AlL QA@Є0AlL`QA0AlL QA0AlL~QAP0AlLuQA`0AlL0sQA0AlLcQA@t0AlLP7QA@0AlLQA@0AlL0QA00AlL0QA0AlLۗQA0AlLԗQA60AlL@QA0AlLQA0AlLQAj0AlLЈQA0AlL qQA@0AlLXQAK0AlLIQA0AlL?QA@0AlL3QAO0AlL%QA@0AlLQAύ0AlLQA0AlLQA10AlL QA@o0AlL QA0AlL`QA@Վ0AlLQA@0AlL`QAI0AlLQA0AlL`QAƏ0AlLږQA@0AlLՖQA0AlLҖQAB0AlL ϖQA`0AlLǖQA@0AlL`QA0AlL@QA0AlLབQA̐0AlLQA0AlL QA0AlL๖QA@[0AlL`QAl0AlL@QA0AlLQA0AlL QA@M0AlLQA˒0AlL`QAl0AlLpQA@0AlLdQA 0AlL^QA@70AlLWQA0AlLIQA@0AlLBQA/0AlL@:QAb0AlL5QA@0AlL&QA0AlLQA0AlL` QA˖0AlLܕQA80AlLQA0AlL`QA0AlLQAƖ0AlLQA0AlLQA@0AlL QA_0AlLQA@50AlLQA@0AlL QAߕ0AlLQA0AlLƕQA@0AlL ̕QAڔ0AlL`ԕQA0AlLڕQAu0AlL ߕQA&0AlL QA@ 0AlL@QA0AlL@QA0AlLQA@'0AlL"QA@0AlLHQAc0AlLlQA@0AlLvQAΐ0AlLYQA0AlLZQA0AlL^QA0AlL\QA?0AlLcQA܍0AlL`mQA@0AlLxQAY0AlLQA-0AlLQA0AlL@QA0AlL QAc0AlLQA0AlLQA0AlLǖQA0AlLQA0AlLٖQA@u0AlLQA@0AlLQA0AlLQA0AlL QAk0AlLQA 0AlL!QA0AlL#QA0AlL%QA@p0AlL&QA80AlL'QA0AlL*QA0AlL/QA)0AlL5QA҄0AlL`3QA(0AlL/QA0AlL-QA,0AlL`,QA@0AlL.QAɂ0AlL 2QA0AlL@6QAg0AlL4QA0AlL.QA0AlL+QA0AlL -QA0AlL)QA@0AlL*QA~0AlL`>QA$~0AlLHQA@}0AlL@QA|0AlLQA@{0AlL9QA{0AlLʕQA^z0AlL yQA{x0AlL`QA w0AlLPQA@wv0AlL2QA#v0AlLǙQAu0AlL`QA u0AlL QA5s0AlLqQAr0AlL@}QAr0AlL@QAp0AlLњQAo0AlLQAo0AlLQAo0AlLϙQA`o0AlLQA@Lo0AlL QA@2o0AlLQAo0AlLQA@n0AlL`zQAn0AlLjQAn0AlL`]QA@n0AlLPQAn0AlL ?QAkn0AlL1QAQn0AlLQA?n0AlLQA.n0AlL QAn0AlLQA@n0AlLQAm0AlL@˘QAm0AlL@QAm0AlL`QAm0AlLQAm0AlLQAm0AlLaQAm0AlLTQAm0AlL2QAm0AlL(QAum0AlLQA@_m0AlLQAYm0AlLQA*m0AlLڗQA@l0AlL`QAl0AlLQAl0AlLQAAl0AlLhQAk0AlL`m0AlL7QAm0AlLpLQAq0AlLQAq0AlL )QAq0AlL`5QAq0AlL@?QAq0AlLIQAq0AlLgQArq0AlLrQAcq0AlLp}QA\q0AlLQAaq0AlLQAsq0AlL@QA@q0AlL`QAq0AlL࢜QAq0AlL QAq0AlLஜQAr0AlLQA@0r0AlL@QAQr0AlL ĜQA@qr0AlL̜QAr0AlLӜQAr0AlLלQAr0AlL`ޜQA@r0AlLQAr0AlL@QA s0AlL QA(s0AlLQA?s0AlL QAes0AlL QA@~s0AlLQAs0AlL QAs0AlL QAs0AlLQAs0AlL@QAs0AlLQAs0AlLQAt0AlLQAt0AlL@ٜQALt0AlLǜQA@t0AlLQAt0AlLQAu0AlL`QA,u0AlL@wQATu0AlL fQA@ou0AlL aQAu0AlL`YQAu0AlL`OQAu0AlLGQAu0AlL@QAu0AlL9QAu0AlL0QAv0AlL`)QAv0AlL`"QA0v0AlL@QABv0AlLQARv0AlL@QAjv0AlLQA@v0AlLQAv0AlLQAv0AlL`QAv0AlLQAv0AlL`QA@)w0AlLÛQA@}w0AlL@QAQx0AlLjQAx0AlL@QAry0AlLQAy0AlL0QAlibspatialite-4.1.1/test/shp/foggia/local_councils.prj0000664000175000017500000000114012163502133017771 00000000000000PROJCS["ED50 / UTM zone 32N",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","23032"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] libspatialite-4.1.1/test/check_point_to_tile_integer_coordinates.c0000664000175000017500000002320512163502133022523 00000000000000/* check_point_to_tile_integer_coordinates.c - Test case for GeoPackage Extensions Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Brad Hards Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #include #include "test_helpers.h" int main (int argc UNUSED, char *argv[] UNUSED) { sqlite3 *db_handle = NULL; char *sql_statement; sqlite3_stmt *stmt; int ret; char *err_msg = NULL; int i; const uint8_t *blob0; const uint8_t *blob1; void *cache = spatialite_alloc_connection(); char *old_SPATIALITE_SECURITY_ENV = NULL; #ifdef _WIN32 char *env; #endif /* not WIN32 */ old_SPATIALITE_SECURITY_ENV = getenv("SPATIALITE_SECURITY"); #ifdef _WIN32 putenv("SPATIALITE_SECURITY=relaxed"); #else /* not WIN32 */ setenv("SPATIALITE_SECURITY", "relaxed", 1); #endif ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); // For debugging / testing if required // ret = sqlite3_open_v2 ("check_point_to_tile_integer_coordinates.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); spatialite_init_ex(db_handle, cache, 0); if (old_SPATIALITE_SECURITY_ENV) { #ifdef _WIN32 env = sqlite3_mprintf("SPATIALITE_SECURITY=%s", old_SPATIALITE_SECURITY_ENV); putenv(env); sqlite3_free(env); #else /* not WIN32 */ setenv("SPATIALITE_SECURITY", old_SPATIALITE_SECURITY_ENV, 1); #endif } else { #ifdef _WIN32 putenv("SPATIALITE_SECURITY="); #else /* not WIN32 */ unsetenv("SPATIALITE_SECURITY"); #endif } if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } /* Create the base tables */ ret = sqlite3_exec (db_handle, "SELECT InitSpatialMetadata(1, 'WGS84')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf(stderr, "Unexpected InitSpatialMetadata result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -2; } ret = sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf(stderr, "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -3; } /* create a target table */ ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS test1_tiles", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP test1_tiles error: %s\n", err_msg); sqlite3_free (err_msg); return -10; } ret = sqlite3_exec (db_handle, "CREATE TABLE test1_tiles (id INTEGER PRIMARY KEY AUTOINCREMENT, zoom_level INTEGER NOT NULL DEFAULT 0, tile_column INTEGER NOT NULL DEFAULT 0, tile_row INTEGER NOT NULL DEFAULT 0, tile_data BLOB NOT NULL DEFAULT (zeroblob(4)))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE mytable_tiles error: %s\n", err_msg); sqlite3_free (err_msg); return -11; } /* add in some test entries */ ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (1, 0, 0, 0, BlobFromFile('tile000.jpeg'))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT level0 error: %s\n", err_msg); sqlite3_free (err_msg); return -12; } ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (2, 1, 0, 0, BlobFromFile('tile100.jpeg'))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT level1 error: %s\n", err_msg); sqlite3_free (err_msg); return -13; } ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (3, 1, 0, 1, BlobFromFile('tile101.jpeg'))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT level1 error: %s\n", err_msg); sqlite3_free (err_msg); return -14; } ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (4, 1, 1, 1, BlobFromFile('tile111.jpeg'))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT level1 error: %s\n", err_msg); sqlite3_free (err_msg); return -15; } ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS test1_tiles_rt_metadata", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP test1_tiles_rt_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -16; } ret = sqlite3_exec (db_handle, "CREATE TABLE test1_tiles_rt_metadata (id INTEGER PRIMARY KEY AUTOINCREMENT, min_x DOUBLE NOT NULL DEFAULT -180.0, min_y DOUBLE NOT NULL DEFAULT -90.0, max_x DOUBLE NOT NULL DEFAULT 180.0, max_y DOUBLE NOT NULL DEFAULT 90.0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE test1_tiles_rt_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -17; } ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles_rt_metadata (id, min_x, min_y, max_x, max_y) VALUES (1, -180.0, -90.0, 180.0, 90.0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT level0 _rt_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -18; } ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles_rt_metadata (id, min_x, min_y, max_x, max_y) VALUES (2, -180.0, 0.0, 0.0, 90.0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT level1 (0,0) _rt_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -19; } /* Deliberately skip 3 */ ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles_rt_metadata (id, min_x, min_y, max_x, max_y) VALUES (4, 0.0, -90.0, 180.0, 0.0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT level1 (1,1) _rt_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -20; } ret = sqlite3_exec (db_handle, "INSERT INTO raster_columns VALUES (\"test1_tiles\", \"tile_data\", 90, 1, 4326)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT raster_columns row error: %s\n", err_msg); sqlite3_free (err_msg); return -21; } /* try gpkgPointToTile normal operation */ sql_statement = "SELECT gpkgPointToTile(\"test1_tiles\", 4326, 20, -30, 1), BlobFromFile(\"tile111.jpeg\")"; ret = sqlite3_prepare_v2 (db_handle, sql_statement, strlen(sql_statement), &stmt, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "failed to prepare SQL statement: %i (%s)\n", ret, sqlite3_errmsg(db_handle)); return -30; } ret = sqlite3_step (stmt); if (ret != SQLITE_ROW) { fprintf(stderr, "unexpected return value for first step: %i\n", ret); return -31; } if (sqlite3_column_type (stmt, 0) != SQLITE_BLOB) { fprintf(stderr, "bad type for column 0: %i\n", sqlite3_column_type (stmt, 0)); return -32; } if (sqlite3_column_type (stmt, 1) != SQLITE_BLOB) { fprintf(stderr, "bad type for column 1: %i\n", sqlite3_column_type (stmt, 1)); return -33; } blob0 = sqlite3_column_blob(stmt, 0); blob1 = sqlite3_column_blob(stmt, 1); if (sqlite3_column_bytes(stmt, 0) != sqlite3_column_bytes(stmt, 1)) { fprintf(stderr, "mismatch in blob sizes: %i vs %i\n", sqlite3_column_bytes(stmt, 0), sqlite3_column_bytes(stmt, 1)); return -34; } for (i = 0; i < sqlite3_column_bytes(stmt, 0); ++i) { if (blob0[i] != blob1[i]) { fprintf(stderr, "mismatch in blob content at offset: %i\n", i); return -35; } } ret = sqlite3_step(stmt); if (ret != SQLITE_DONE) { fprintf(stderr, "unexpected return value for second step: %i\n", ret); return -36; } ret = sqlite3_finalize (stmt); ret = sqlite3_close (db_handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle)); return -100; } spatialite_cleanup_ex(cache); return 0; } libspatialite-4.1.1/test/sql_stmt_security_tests/0000775000175000017500000000000012163503230017337 500000000000000libspatialite-4.1.1/test/sql_stmt_security_tests/Makefile.am0000664000175000017500000000052212163502133021313 00000000000000 EXTRA_DIST = blobfromfile1.testcase \ blobfromfile2.testcase \ blobfromfile3.testcase \ blobfromfile4.testcase \ blobtofile1.testcase \ blobtofile2.testcase \ blobtofile3.testcase \ blobtofile4.testcase \ isXblob1.testcase \ isXblob2.testcase \ isXblob3.testcase \ isXblob4.testcase \ isXblob8.testcase \ isXblob9.testcase libspatialite-4.1.1/test/sql_stmt_security_tests/isXblob3.testcase0000664000175000017500000000247712163502133022514 00000000000000isXblob - jpeg with (token) EXIF header :memory: #use in-memory database SELECT Hex(blob), IsPngBlob(blob), IsGifBlob(blob), IsGeometryBlob(blob), IsZipBlob(blob), IsPdfBlob(blob), IsTiffBlob(blob), IsJpegBlob(blob), IsExifBlob(blob), IsExifGpsBlob(blob), IsWebpBlob(blob) FROM (SELECT BlobFromFile("sql_stmt_tests/ktorrent_grad1.jpg") as blob) dummy 1 # rows (not including the header row) 11 # columns Hex(blob) IsPngBlob(blob) IsGifBlob(blob) IsGeometryBlob(blob) IsZipBlob(blob) IsPdfBlob(blob) IsTiffBlob(blob) IsJpegBlob(blob) IsExifBlob(blob) IsExifGpsBlob(blob) IsWebpBlob(blob) FFD8FFE000104A46494600010101004800480000FFE100164578696600004D4D002A00000008000000000000FFFE0017437265617465642077697468205468652047494D50FFDB0043000503040404030504040405050506070C08070707070F0B0B090C110F1212110F111113161C1713141A1511111821181A1D1D1F1F1F13172224221E241C1E1F1EFFDB0043010505050706070E08080E1E1411141E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1EFFC00011080014000103012200021101031101FFC400160001010100000000000000000000000000000607FFC4001C1001000104030000000000000000000000000401031453151661FFC40017010003010000000000000000000000000003040607FFC400161101010100000000000000000000000000000313FFDA000C03010002110311003F0087EB9E8B6E62269B225729361D6CCC33E56CA8019F7FFFD9 0 0 0 0 0 0 1 1 0 0 libspatialite-4.1.1/test/sql_stmt_security_tests/isXblob8.testcase0000664000175000017500000000262012163502133022507 00000000000000isXblob - RIFF, not Webp :memory: #use in-memory database SELECT Hex(blob), IsPngBlob(blob), IsGifBlob(blob), IsGeometryBlob(blob), IsZipBlob(blob), IsPdfBlob(blob), IsTiffBlob(blob), IsJpegBlob(blob), IsExifBlob(blob), IsExifGpsBlob(blob), GeomFromExifGpsBlob(blob), IsWebpBlob(blob) FROM (SELECT BlobFromFile("sql_stmt_tests/seconds.wav") as blob) dummy 1 # rows (not including the header row) 12 # columns Hex(blob) IsPngBlob(blob) IsGifBlob(blob) IsGeometryBlob(blob) IsZipBlob(blob) IsPdfBlob(blob) IsTiffBlob(blob) IsJpegBlob(blob) IsExifBlob(blob) IsExifGpsBlob(blob) GeomFromExifGpsBlob(blob) IsWebpBlob(blob) 524946467C01000057415645666D74201200000007000100401F0000401F000001000800000066616374040000004A010000646174614A010000523B2832AC9EAE2E3D61432B2BB49FA43B3560493827D5A2A0F62E5E4B3D293EA79EB52D4B4B3B2B2CB09DA53435593E3728F7A19E682D5E4B3E2737A89DBB2B4E56442D2EAD9CAA2F3E59453126C09E9F40306B41392544A49ED12EEF4C41292EAB9DB52C42624C3029BA9EA837397E4C3A27649F9F5C3463473D283BA89EBD304D45422E2DAF9DAB3540523C3328D29FA24534553E392A4DA29ED5315C423E2D32AC9EB3344F5644322AB99EA83D37504139284CA1A0713250483E2A38A89EBC2E44574D2F2CB49DAA343C5E443627DF9EA247345E4B3F273FA19FDD2D4949442C2FA99DB4303F6446302ABB9DA83C35584A3D284EA09F7D314E3E3F2A36A59DBC2E4E4B442F2BB29EAB3336574B3B28E89FA24D3150503E2646A29FDA2D4851522C32AA9DB52E3E4D4E312AB79DA733335D563B27E99FA2462D584C3F2941A29ECB2C4449402D31AB 0 0 0 0 0 0 0 0 0 (NULL) 0 libspatialite-4.1.1/test/sql_stmt_security_tests/blobfromfile3.testcase0000664000175000017500000000031312163502133023537 00000000000000blobfromfile - missing file :memory: #use in-memory database SELECT BlobFromFile("no such file.whatever") 1 # rows (not including the header row) 1 # columns BlobFromFile("no such file.whatever") (NULL) libspatialite-4.1.1/test/sql_stmt_security_tests/isXblob2.testcase0000664000175000017500000001120312163502133022476 00000000000000isXblob - gif :memory: #use in-memory database SELECT Hex(blob), IsPngBlob(blob), IsGifBlob(blob), IsGeometryBlob(blob), IsZipBlob(blob), IsPdfBlob(blob), IsTiffBlob(blob), IsJpegBlob(blob), IsExifBlob(blob), IsExifGpsBlob(blob), IsWebpBlob(blob) FROM (SELECT BlobFromFile("sql_stmt_tests/ktorrent_sidebar.gif") as blob) dummy 1 # rows (not including the header row) 11 # columns Hex(blob) IsPngBlob(blob) IsGifBlob(blob) IsGeometryBlob(blob) IsZipBlob(blob) IsPdfBlob(blob) IsTiffBlob(blob) IsJpegBlob(blob) IsExifBlob(blob) IsExifGpsBlob(blob) IsWebpBlob(blob) 4749463839610D00B80BA52E00BDBDBDCBCBCBCCCCCCCFCFCFD0D0D0D1D1D1D3D3D3D4D4D4D5D5D5D7D7D7D8D8D8D9D9D9DBDBDBDCDCDCDEDEDEDFDFDFE2E2E2E3E3E3E4E4E4E5E5E5E6E6E6E7E7E7E8E8E8E9E9E9EAEAEAEBEBEBECECECEDEDEDEEEEEEEFEFEFF0F0F0F1F1F1F2F2F2F3F3F3F4F4F4F5F5F5F6F6F6F7F7F7F8F8F8F9F9F9FAFAFAFBFBFBFCFCFCFDFDFDFEFEFEFFFFFFBDBCC1BDBCC1BDBCC1BDBCC1BDBCC1BDBCC1BDBCC1BDBCC1BDBCC1BDBCC1BDBCC1BDBCC1BDBCC1BDBCC1BDBCC1BDBCC1BDBCC1BDBCC121F904010A003F002C000000000D00B80B0006FEC0952A853291449E4DA63201088946A492E91C168FC965F379956AAB50EC746B8D66A95CF318DC3D93C35E7459FC4DD3E570375B5D9FC7DF6D6B767F7B77807C78817D79827E7A838F8E8D8C8B8A898887868584909396999C9295989B9194979A9DA3A9A2A8A1A7A0A69FA59EA4AAAEB2B6ADB1B5ACB0B4ABAFB3B7BCC1B9BEC3BBC0B8BDC2BABFC4CBC5CCC6CDC7CEC8CFC9D0CAD1DEDDE0DCE2DBE4DAE6D9E8D8EAD7ECD6EED5F0D4F2D3F4D2F6DFE3E7EBEFF3F7E1E5E9DAC5AB870FE0BE81FEF205E447F09F3E81FD0A3E6498D020C4860A0F4674B810A1C48E1B335EAC38D123478D182D52FC889224C8942543AA342972E5C9912C71DEB45993E6FE4C993161BE74D93227CF9F428BEEF41994A8CE9E40871A652A756954A550933E45EAF468D3A957B77EB5AAD56BD5AC5DA962E50AB6AC5AB167D9924D1BD6ECDAB168DBD2755BF7AD5DB877E3E2959B77AEDEC38613175E4CB8F1E0C78223079E0CB8F2DFCB7E33F7DDCCB7F3DECF881943A68C993368C58E255BD6EC39746AD2AC4F8B565DBA35EAD1AB4DBBC65D5BF6EBDCB667C3D67D9B76ECDDC6890B07EE9BF7F1E2C383FFEE8D3C7AF3E4D29D2B9FFE7C3975E8CCAB8707FFDD7B77EEDBB567C77EDDBAF8F2E8D7BB277F5E7DFBF1E6D3B37F5F7F3F7DFDF3E5271F7EF1DD079F7DFC01482082FF0D78A07F021AD85F800526E8E0840B4258618312FE2AF820850C46686187177A88E1871982A861881B8AC8E18830BE28A38B34B668238B38AEA8A38A3CA6E8238A409E28A489449668248948C658638E3D0659649233DEB8E38F431EA9A4944D5609E592533A6965944C52F9E495617AB92596627EC965966382D9A59664BED9E69A699E59269C6EB2A9269A66C6A9A79D72EE79E79C7CE249679F79D6E9A7A289227AA8A185123AA8A08102FAE7A28E464AE9A58D423AA9A58C3E2A69A5987A4A6AA7A3722AEAA6A16A0A6AA69F969A6AABB1A2CA2AACA7AEFAAAA9AABA2AEBADBCD29AABAFB6EE3A2BAEBDD6AAEBAFC6027B6CB0C80A9BECB0CA12BB6CB1CC668BEDB6D7766BEDB7D5864BEDB8D3962BEDB9FED1A60BEDBACFB6EBECBBCDC6ABADB7E29AABAEBBF2720B2EB9E8B20BEFBCFBDAEB6FBEF4F27BEFBFFAD6DB2FBE002B7C30C1012F8C70C102339CB0C103378CB1C5144B0CB1C3195F5CF1C4113FACF1C81F6F4C32C81C971C72C7268BECF1C933CB1C33CC2FBBDC32CB2BAB9C32CA34DFAC73CF40DB9C33CF3FD78CF3CE3E077D74D346335DF4D2442B3D74D24223EDB4D4566B1D75D559434D35D64F4F7DF5D66097DDB5D8677F4D36D7619BEDF5D868BF9D36DC6AC7BDB6DC6CCFDD36DD6ED72D78E084036EF8DF88FBAD78DF8CF3EDF8DE90EB2D79DE94E36DF9DD98DBADF9E0872FFEF8E4976F5E78E28D475E79E69C93FEF9E9A2775E3AE8A88FEEB9FEE9A1A73E3BECADAB4E7BECAEAF5EBBECAFB36E7BF0BFF7BE7BEEB70B0FBCEFBCEB8EFBF0CC234F7CF3C917EFBCF2C63FBFFCF1D073BFBDF6D9637FBDF5D5533FBDF4D1770FFEF8E6A7FFBDF8E5A3EF7DF8E49FAF3EFCF6BF5FBFFBF4B73F3FFBF25B5FFCEEB7BFFF0D507FFE1360FEFA1740FCF10F80044CA0030DB8400822104A2A48C6106CF1040E0EE1049A60C10A8450841120810319C840004448421398D0032854210B33E8C213A6708523A4E10B39A0810C0860866DE0A10F8108C213F6F087394401084700C3231291044CEC8006348044122EF1031D50C2009E38022C6A918B5844E11693B8441074808704E022089A98463242718D3C2C8008FE5590C1327A208B7274E308D6884722BA30041FD8C0060C30C3149CE08F1FE0C0060E30C70F2292031C60A4101C390240425292563864251319C93912419396E400023CA9C4478AB291A5DC24073A304A32D6D08B09F0A30961294B11C0510185D4E41E6188CB1C1AD285BBE4C00266A88243BE118BC3F4A53137D98164E67099806C2631515082128820046B64000B4958CD4A66739B19EC26363DA0CD1176B004DE242738536002748EB39CBE6C673AE179CE7436009C2A90A72D3D70CF6D12019DD704810358E0CF1300149B030527358F10821024D49CE16468081E405088A6A00412A5A8428D50C9895634891C6DA846734843288AB405D3C4A8086CFE09019492949AD664A94B27598483B6749AF2AC6404664AC79A8E40A73CDD203043B0D3692E53044525E92FA12802091094881835E1049E4AC6A88A800254B522468F80D58FD6B19A5CCD6A1DDB09C50A88B594DD34AB57D18A4EB5FAB19B16F8E8130E6904125C40AE8EACEB5DD7790263DA55AC863C6435310058B612D6AB9F34A8093080D2422A91AE1968AC2F1F6B02136440AE56346607B26A452596C0039CB582673F20D9C99692B47825C2691B5BC8C48280B54A45816C43D082D2AA800B2810416D9FCAC214586104BBCDAA6F89005CD6F6D60A2408AE57877051E58AB091C574EE0A66B802144897BAD635EE74E758DDDAB2B605D3F5A5779F0A415E8B8E97A0E535670ACECB02F0FA93BDEE15AF724BBB82F5CE57AEF6FD6E7BD5EB5DF6EE5705FD752E78011C60DE0E38C0286DAC4B11DC5EF48A10C1C175691000003B 0 1 0 0 0 0 0 0 0 0 libspatialite-4.1.1/test/sql_stmt_security_tests/isXblob1.testcase0000664000175000017500000000475712163502133022515 00000000000000isXblob - png :memory: #use in-memory database SELECT Hex(blob), IsPngBlob(blob), IsGifBlob(blob), IsGeometryBlob(blob), IsZipBlob(blob), IsPdfBlob(blob), IsTiffBlob(blob), IsJpegBlob(blob), IsExifBlob(blob), IsExifGpsBlob(blob), IsWebpBlob(blob) FROM (SELECT BlobFromFile("sql_stmt_tests/k3b-icon.png") as blob) dummy 1 # rows (not including the header rows) 11 # columns Hex(blob) IsPngBlob(blob) IsGifBlob(blob) IsGeometryBlob(blob) IsZipBlob(blob) IsPdfBlob(blob) IsTiffBlob(blob) IsJpegBlob(blob) IsExifBlob(blob) IsExifGpsBlob(blob) IsWebpBlob(blob) 89504E470D0A1A0A0000000D4948445200000010000000100803000000282D0F5300000231504C54450000009FA1ACA1A0AAAFB2B7A3A7ADAFB2B7919AABADA796AFB4B6B7BBBDBCC0C4BEC4C62122239FA495B9BDBFBFC3C5000000000000121212131313989CA4A2A7AD989CA5A2A7AD5E61640000000404040000000303039B9FA79EA2A99A9FA79EA3A91D1E1E1A1B1C1415162A2B2D2B2C2E212223979CA9AB9AA2B4B8BCADB2B6BCC0C3C8CBCE504C535A585C737374767673EBE6E7F0F0F19CA7B1B1B39CC6C8CBCCCFD0D2D5D7D2D5D6A8A8A8ACACACB8B8B8888889878788B2B4BEB9AFB8D8DADEC1C4C9CCCED3F4F4F5E9D9CD898A8BBDC3C98E8E8E959595E7E7E718181E1B1B2123222927252E3231393938423E3D4441404B4A49504C4B574C4C504F4F5651515559585E59585F5958605A5A5F5D5C645E5E625F60687272757B7C7F7D7C818080868686898A8A8C8F8E90908F9493939495949696969B9797989A9A9B9F9FA1A3A2A7AAAAADB4B4B5B6B6B7B8B8BCB9B9BDB9B9BEC2C7D8C3C3C5C6CEDBC7C8D0C7C8D1CBCCCCD1D8E4D2D4C5D4D4DFD4D7E3D5D6DED6C2BDD7D7DED7D8DDD9D9D9DACBD3DAD7BFDADAE2DBDBE2DBDCE3DBDECDDCD6DEDFE0E7E0E0E7E0E1E7E1CCCDE2D8DEE3E5ECE4DAC6E4E6D5E5E4EAE5E5E6E5E5EBE8E7ECE9D9DBE9E9ECEBE8EDEBEBEFEBEBF0ECECF1EDEDF1EFEEF2F1F1F4F2F2F4F2F3F3F3F3F4F3F3F5F3F3F6F4F4F6F4F4F7F5F5F6F6F6F6F6F6F8F6F7F7F7F7F7F7F7F8F7F7F9F8F8FAF9F9FAF9F9FBFBFBFBFBFBFCFBFBFDFCFBFCFCFCFCFCFCFDFDFDFEFEFEFDFEFEFEFEFEFFFEFFFFFFFFFF42B14FFC0000004A74524E53000B0B0B0D0D111111111213212526282D303F404B4B4C4D585B5E60656C6C6D6E6F71768181858F9090929498C7C7C8C8D0D0DBDBDCDCDEDFE6E6E9F1F2F6F6F7F8F8F8F9FBFDFEFEFEC6B2B0FB0000010A4944415478DA35CF855242011445D163777737767762777777773776B762072A0662A2A0E0FD3A9FCCB03E60CF6CC829993B385AA84141DD3D6E8CB3329BE8AD0D39BDE0A1A9A50DEE19FF2EDC000C8D90C991E975EEE9D5CBB738420780C7CCE2EAC4CE05FF5D267DE3F900CAEC85ADDDBDD4D898F4CE8EB6D6145D988EAE6D1F250710E3B7EF809C60C7D9DC3F09F4A3F1DEAE86C101891BEC97995E90EF6D7FFBF58D544CAE309B3BE7BF26F93FD5940D57F7D4923354E2EF0522499AB0B0BCA2AAA494AC014FDEE787A0F939BFBBA8A0BE38C30AD00A133D5C36092B5BF27289220D01E8871E1F363E6666E76451B431FE697A25D4D1D78F6C3ECA44F1AB6AC962B9D8DA1801F8033208565E8EDAAFA30000000049454E44AE426082 1 0 0 0 0 0 0 0 0 0 libspatialite-4.1.1/test/sql_stmt_security_tests/blobtofile4.testcase0000664000175000017500000000026312163502133023223 00000000000000blobtofile - non-text path :memory: #use in-memory database SELECT BlobToFile(zeroblob(100), 1) 1 # rows (not including the header row) 1 # columns BlobToFile(zeroblob(100), 1) 0 libspatialite-4.1.1/test/sql_stmt_security_tests/blobfromfile1.testcase0000664000175000017500000000024312163502133023537 00000000000000blobfromfile - null input :memory: #use in-memory database SELECT BlobFromFile(null) 1 # rows (not including the header row) 1 # columns BlobFromFile(null) (NULL) libspatialite-4.1.1/test/sql_stmt_security_tests/blobtofile2.testcase0000664000175000017500000000032212163502133023215 00000000000000blobtofile - non-Blob payload :memory: #use in-memory database SELECT BlobToFile('alpha', 'abracadabra.outfile') 1 # rows (not including the header row) 1 # columns BlobToFile('alpha', 'abracadabra.outfile') 0 libspatialite-4.1.1/test/sql_stmt_security_tests/blobtofile3.testcase0000664000175000017500000000032012163502133023214 00000000000000blobtofile - ok :memory: #use in-memory database SELECT BlobToFile(zeroblob(100), 'abracadabra.outfile') 1 # rows (not including the header row) 1 # columns BlobToFile(zeroblob(100), 'abracadabra.outfile') 1 libspatialite-4.1.1/test/sql_stmt_security_tests/blobtofile1.testcase0000664000175000017500000000031012163502133023211 00000000000000blobtofile - null payload :memory: #use in-memory database SELECT BlobToFile(null, 'abracadabra.outfile') 1 # rows (not including the header row) 1 # columns BlobToFile(null, 'abracadabra.outfile') 0 libspatialite-4.1.1/test/sql_stmt_security_tests/Makefile.in0000664000175000017500000002542612163502133021336 00000000000000# Makefile.in generated by automake 1.12.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = test/sql_stmt_security_tests DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = blobfromfile1.testcase \ blobfromfile2.testcase \ blobfromfile3.testcase \ blobfromfile4.testcase \ blobtofile1.testcase \ blobtofile2.testcase \ blobtofile3.testcase \ blobtofile4.testcase \ isXblob1.testcase \ isXblob2.testcase \ isXblob3.testcase \ isXblob4.testcase \ isXblob8.testcase \ isXblob9.testcase all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/sql_stmt_security_tests/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign test/sql_stmt_security_tests/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags: TAGS TAGS: ctags: CTAGS CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libspatialite-4.1.1/test/sql_stmt_security_tests/isXblob4.testcase0000664000175000017500000013310312163502133022504 00000000000000isXblob - jpeg with plain jfif :memory: #use in-memory database SELECT Hex(blob), IsPngBlob(blob), IsGifBlob(blob), IsGeometryBlob(blob), IsZipBlob(blob), IsPdfBlob(blob), IsTiffBlob(blob), IsJpegBlob(blob), IsExifBlob(blob), IsExifGpsBlob(blob), GeomFromExifGpsBlob(blob), IsWebpBlob(blob) FROM (SELECT BlobFromFile("sql_stmt_tests/sandro.jpg") as blob) dummy 1 # rows (not including the header row) 12 # columns Hex(blob) IsPngBlob(blob) IsGifBlob(blob) IsGeometryBlob(blob) IsZipBlob(blob) IsPdfBlob(blob) IsTiffBlob(blob) IsJpegBlob(blob) IsExifBlob(blob) IsExifGpsBlob(blob) GeomFromExifGpsBlob(blob) IsWebpBlob(blob) FFD8FFE000104A46494600010101006000600000FFDB004300080606070605080707070909080A0C140D0C0B0B0C1912130F141D1A1F1E1D1A1C1C20242E2720222C231C1C2837292C30313434341F27393D38323C2E333432FFDB0043010909090C0B0C180D0D1832211C213232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232FFC000110801BC019103012200021101031101FFC4001F0000010501010101010100000000000000000102030405060708090A0BFFC400B5100002010303020403050504040000017D01020300041105122131410613516107227114328191A1082342B1C11552D1F02433627282090A161718191A25262728292A3435363738393A434445464748494A535455565758595A636465666768696A737475767778797A838485868788898A92939495969798999AA2A3A4A5A6A7A8A9AAB2B3B4B5B6B7B8B9BAC2C3C4C5C6C7C8C9CAD2D3D4D5D6D7D8D9DAE1E2E3E4E5E6E7E8E9EAF1F2F3F4F5F6F7F8F9FAFFC4001F0100030101010101010101010000000000000102030405060708090A0BFFC400B51100020102040403040705040400010277000102031104052131061241510761711322328108144291A1B1C109233352F0156272D10A162434E125F11718191A262728292A35363738393A434445464748494A535455565758595A636465666768696A737475767778797A82838485868788898A92939495969798999AA2A3A4A5A6A7A8A9AAB2B3B4B5B6B7B8B9BAC2C3C4C5C6C7C8C9CAD2D3D4D5D6D7D8D9DAE2E3E4E5E6E7E8E9EAF2F3F4F5F6F7F8F9FAFFDA000C03010002110311003F00E7A63E58C2F5A8A3259B9144F932F1DA9DF7938EB5CAAC6EC942957049E2AC34E235155A29047804673533468E410719A99414B4218E7954C79C1DC6A4B2642DF21FAD218D4C617AD3A3B4318DCB54E8C6F6B9375B171C608C77A4DA0723AD4225DDC13C8A59AE4469CF3E9554612827CAC9E5EC32691A352455337B23B6D04D2CB72D3FCA071489118D8498FAD6737389B463A5C922B2673BD8F5AB325B2797EE05391D4C791D69F80E8413DAB921527CDA99A93E6B1CC6A0B2962AAD5425B6610E5AB6AF4086427AD5195CCE028E95DB037B9911CDE4822B52D0968779CD5596C5B7E40AD6B4B561128038C735AF425B23B666F38291C1AB3F628FCECCB8C1AB5FD9FB7122727B8A8AEB7F93C81C5429F41295F433EE2D5239405EE78AB71C6020E7B5518964925249E053A799A3F9492293D50DAE83A72CAFF275AB96F7F709185CB0AA302BB1DC7935AF05BADC4391D452BBD912DA5A0D6BD778F0CE7352D8DC0F35738358DA9412C4FB17F9D3AD1655019B3C5394535EF21B49A3B7578576B155DBDFDAA1BEB28EEE3FDC63A66B063BC6C8C9C015A11EA5E56369A8D1AB1924EF638FD663786708C738E2B4349984B12C48393D6AA6BB3ADD5FA9038EF52DB1FB2A87420E450D3E4B22E71B1AF26991C9F2103279A866B21671706A8C9AD323648271EF56ADEF85E8F99703153084D6AD93CB6DCB1A4EA889BE2989C56D45756061666703EB5CCDDD8EC569554F159B148FB8AF35BA9329C5337353D42371E5DBE37671915269B17C9BE5EA6B02390C73E4F526B516579000AC40A372ED6469F92AEE5D78C77AAE18A4E7B5448F3C7DCE28944870C463DEB2690ACB62E4A1DE2CA803DEAB477064631C9F3678C55796E6541B4138C5436F38598FA8F5A86899268BD259C6483B40AD08E18E3B518E5B233F4A84C82450A42F4A8E47920889078A9A53704D128E7B5485DEE58AF037D64DCDA48581C9ADAB8BB469C2B2F350CE30BB86306BAA2EF1D4D22AE675B40CA84F5C547223BC9B066B46D24015948EB5616D2320C9D0D5329AE873732C904A3B5753A65D34B6613B8C5635DB45E61DE79157F4E936E0A8E2B44F415AC6D2C7BBEF534C4037CBD6A58EE41501979C75A52A0FCC2B2722B7162B60F8F3077AB2BB2D158E38AABF680AC15DB0296770C07395ACD4AC4DFA0EFED28FFBB4567ED87D28A63B1388D9DB766A5F2B0327EF546B2EC2715346E1816C73513B6E84EE4241246E26985C86C0356A70121DDD73FA55581433E722926DEE4FA97212FD6A532100F207E350C93C691E10FCD5488966CB64E0D69192BD992D21F24C4B900F7ED53A06D80BF4A6D9C2A189735627202E145126E3AC41BB11EC1C143565197006066AA443073939A591F6F3CD613ABCCAC0E572E92A2AB5CCAC8410D5596EB2D83D2A5660E3AD73A5283215D320B964963DA4E4D64CC4433715A5700015952C666623278AED83B9D0B6356CE48660A09C9ADC8E2531E140AE6F4F876483731DB5ACACD1BFC84E3AD697B12D96E777B5C038C524EAB3C448DBC8E6ABDC4CD30553CE2890F976ACC302B2B59E84346529D9707681C0ED4D92DCCF282073524316EF9CF735A11C6888188EF436DC95C3616D6148D4029CFD2B46358421643B5B15424BD4CEE180CB5546A4C250C3E95A3496A8D2C90F9545C5D2A939C1AD3B6D3A39131C64565199DA5F315307D7157ECEF248F923AD65CD27A33297910DFE9FE53652B318BAE54E6BA2FB50958865ACCBC306E2C78AA50499317AD9986D67E74DB9873EE6B40D895B704F4C7AD1106918B295D83DAAFC68C63E7A5134FA1ACAE73B2D96E2715369F6F24326DE715ADF620AC189EBCD3E2B6CB0E78F5AD2DA06E36EDCB45B36F18AA16D14692E48E48AD7BA81120DEAC49F7AC891F6364F7A8BBBD90ED6216B5696E8140703DAB41A29309B570075CD4BA588DBE6DC377BD6D3881E0257018751EB577B2D48948C41763E4475E6A596E50C206DC567DD2849B23D6AB35D10369E952A3ADC1334F08E8718E9583743C8988049C9E82B5A201EDC90C738E959132CAB38CA9233D69B5729BD0E874DC4F165B3B40EF4EBC62C1906738E2ABE992930640C01D73523DC61CB374A53A6AC4C7439B9E1717592C7AD3EE66DB08526ADCD26F727670735957870DC55A7A58D63DC44BB112E69EF7CEE9956359524723B67071535B8DB8073BAA9A25B63E289EE2E7735743671794A062AA5BC7198F7A9F9875AB3148C930C74A71611376D4C0ABFBD1D689539CC472B598F261860E0F5A58EEA4924D91124F7ACE5665105F098C9819A6C7E62A7CD9AD68A357CEF5CB5588B4F4DA7CC5F96946C294D18DBE3F7A2B67EC367FDCA295919F3A284ABB73EA285621783572F210916E93AD6389CF2AA72B9A1492DCB8CEE5A7B85F2886A8A2324BF2C60E09A87CA321041AEA7C356F0484C7228CD29479824D1942C1C2867069E0AA4654AEDC7EB5DDDCE9F6CB6E7E51D2B88D5422C8C141001A8E5B33353B9044F96E29F2C809009159F1B75C1A1CBB2F3D29B684685B8567E48C54D7289B40522B151DB76326ACAC9271BB2454AB3D1A08C6EC2E202002386A626E5FBC307D6AFF962664CF4AB77360AB16E0474A27C91668EC63CF8F2B3D78AA56D1F985B03BD5BB8011B6B1E2A3B7951186315AA8E9745BD8B76D0AEEC77AB2919590861C55769D11C321C9A53702543CE0D2775B9832748402CC181F6ACFBEB96542AA6AF5B95D87CC7359F7A232FD49152DDF6057B95209A451D3BE6B612EF36F823B553822495311FDE14E8E611131C839A15EE532B4A5B793D0135AFA4E9915C1F3646C0159B727760A0247D2ACC578E96E235C8C569A0DDDAD0E8E65B1B75E194903A562DD6A51862B128FCAA8B79CC093B9B3EB55D62669390C315124C8E5B6E5FFED2644CB20E7DAB2EFAF45CB6D43863E956C94F2C86038AE7E639BBF93D6A612E834BA9BDA6C726DDA1B033D6B50799171B4FD6B12DA4F940E7356D2FDA27C392456CB52AF226BAB9742158633566D1D5D46587D33542EE54B8883E7F3AA705CEE72AA7A53B341AB3AE8AD639970C462ABDDE851C8A7691F9D621BD9E08CB2B9AA6BE2AB889CA1E68F7591CB27B1ABFD8D35B31113633E94D924B8B71F30C91505A7884C9303236DCD5DBCBA49632EA3F1C54CA2839ADF114B7BDD3EE75E9556E6D955B72F5A8E4BC68C9C1205471EA11BB61DB9A6B5D8D3D0B3672132F96091EB5A0230FC1C567DA812CDF20AD78230BC3F5349BE84912DB32A9F28601EB8A85AD2E300E188AD62040A1997E53DEAF453C0F0E3159B972EEC96D9CABA80D87419EF542482396751C6DAE9B52B78D90B2FA5721347379ADE5E7835709A975358CB42DCB6688BC0CD2E9FA38BEBAF2FA5374F7B933A24CA48ADB7DD63751CF1E013D45689A5A89BBAD027F0A9B605831FCEA93C06252003915D10D57ED1101228CD53B82AD1B00A39ACDD5F7AC8CE329276673E0962771E86AE5A148C83EB55E580A316CF14D8DD54F2DC8AB5A9B5EE8DF836AB83EB5667B958E3318C7358ABA846F10552430EF42CB2C8F907358A7A9935A9A5C51553F7D455E8216F2EFED69B631D7AD57B6D3C004B7D69D6BB221F37DEABF1B8671E95CCE72BD81DD10A591C12AB9A7432BD94DBD49535D0C4B0A44A4E39ACCD412170769E6B452E55AB1467DCBABAACB7511C31248C5737AA09048793935622B892D14EDE955A69FED321663CD369BD4D144A36C1CB1FAD6AC70078F9F4A448A30A08EBDEACA1D98E38A9926C4D36CA31D9E6E39E055E4B252DC638EB4F65DC3280D32396446C9527156B468228936A47301C51792AB21553CD559655793207CD55E49D95B04F1594E3CD2B8ED7654B942F2E064D53689E36E322B5ADC2BCA180C9A59ADB73E76D752D2C5B9AB5834FB759E125BA8ABE34C5F2F2A4EFA9349B7467D8DC29AD868BCA976AE0FA62AF97988B5CC48B4D65187E79A827D38EE2D818AE8DA40CBE591F3E6A94CA3241EB495149DC6A36336CEC8447918CD597D263BA67E30C3BD2EF6538C7152A5C98C71C735A72A2D2221A4C22DF3BF2CBC62991DA26EC6C07356D672D9269B905B766928AB87290CD6A122FDD281EB541ED8B5B971F7C1ADADCACB86EF4A60DB0384C1CF7A5288389C75C9740C08AC7B65F36F0B01CD7577763210DEF5434ED2985D0C9EF9359C29EA2B5916EDAC4F925C8ACABB53BDB03A1AED2E16386D9109038E6B16F6C53C82EB839E6A9AB3B2239AC732C6428474150AA10FB831CD59955951C01D3D2A8C32319B695EF47A976D0DB8EE11ADB6375C77EF5913D982ECE077AD04B56900299CD25D42D145F364543D04B429D95B34B3A8C702BA395521B72319207E55574844C827F33526A6C76944E7F1A3DAAD8C9EE60CECD3CCCABD3352DB6932CAF902AC5BAC71924AFCDDEB560BD10E0AA8349CE2B52AF61B636C6C9C6EC669D7377E5DC8C83F85477372D2CEADF773E956D34E33A891B26A14B9DE84DC94DE35D43B1B9514F556823DE0E57D2A54B68618BE7C0A85D034676B647A66954A4DEA3BDF42BDEEA48C87E604F4C547A67D9DCB3BEDC9AC2D464F2E723DEA6D2A744219C9AB8538D8D251B2D0E99AD637914C6A1467A8AB9259C2B18691C961D05627DBB3CC44E451F6C9193E673549A5A196ACD19A38946500CD352DA475201E2AB40E1F0ACC6AF21D831BA9B485668C5BDB768D8824D67BA6D5F97926BB982D2DEE53E7C13552EF4681918A6030E6A13B32E3516C72F6F03860D5B5630A632E696D523F99187DDEB556EA5584B18891533B3D86F5357F73ED45733FDA12FA9A2B3E590CBF359B862C87233D33562CD18BED6EB5316690E01A72DB9116F1C3A9A728F32D09E5722D943B3058D51B9DD8386E95777F99B54919AA9771321C9E86B9D51A97BB25C1A3325B97DBB48C7BD2C76CD2464FE35604119F99A9AF3345809D2BBA3A2D4AE633DA796D9FE66CAE6B7F4CBCB59E20ACC035511686E46E3CD67C96A6090ECC839A57426EE75933C16F1EE0C0E6AAC2CB2877ED585FE912A85DC58569D9C86280A91CD24D028D86BEC0EC4F18AA93B46C6A697A9383CD5616E5B712322A22A4DEA5242D8DC86970BDAB7A2113A8F33A5615BDB7D9F2E0633561EE5963F95B9AEB514D072B66A4A8D6CC190E54F7A924BD668D76707B9CD64457F205C3F407A521BB5572C01287B568A362E31B1A323C8C3218E6A3599C1C30CD555BF848C6E3F4A6C9768065723DE997A17DEF220B8D8775536B9DD9DBC7D6A9BDFC4CA42805AA9BDD10D90314981BB0EA007CB260E6A7F396442ABC5728D7FF00360D588AFBD09A561A67422E0960B9EB57E1B9C46C871D38AE6C5E062A33CD68C528F2FB9CD00CB129F3140CD374F0B6F3EE6E6A16DDD4A9C52A44DC3026AA3125D993DE5C0964EF8ACF98B08CAA9F94F5AB6F3281B5D727B544CC9B71851DEB1941AD4CEDA98D6F6A669FCB23A9AB575E1F6800655F7A96DF6A5F06CF02BA976436E0AAEE5C7358D476444A4E2CE26D1CC5742274F6AB3AD08CC6BB7AD695C450ADD799803158DA94827B95588E547A53BA71D071D5DCA7179912E5692499D949639ABC96B3B20C8FA5413D932AE76F1DEA1A57D43DD331AE0A9E8685D40E7183C569A58C663CB019354E4B2891C9E0FB5528402C9920BA2CE84D7456D76E6DD4E722B9868589181C0AE86C7E6B45E3A75AA518AD899C52D892EA4927C04C8A6AC1288F68E49AB65D7002819A05EAC71153B7352A69BB5C13387D4D1D2E595877A742AE60E335AB7C90CD3B3BE3F0A8C08D13E515527CAB4346F41D618119127DEED560A2B37CB9CD55F30120E3A55FB650CB90C302B35EF6E28F7258230A320E0D48E431081C934AD6EC5320E0D5531C88C5F18C77AA9241A1665BC6B7503730FC6922BE91F80C4E7D6B3A676B97C67914F84CB6FCB722A254D5AEC4D2DD13B993CEC86C64D5B96CA0FB296763BCF3C9ACB9EE5DDC6D1CD598A5775646C9C8A70DAC540A3F668BD28AB3E437A51556197B732AAC8B9CFA55D82E01521D4E2AB6F884BB4B023AE28B8B901B3101C534AC692D116248E6077203C552B896565C30E95AD67741A221F9CF634CBC48CA80075A72764649B7B9908588C126A786C9A51C8357E1B153B5B2055CDEB1FCA00E3BD73CA49194AD7D0A696A208F7303557EC4B71B9B774E79AB5784C876A9E3DAB2E795ADFF00D5B93EA694277DC493420CDBCA3D055BF314AEEC0F7ACAF3CCC0E7AFAD2FEF5149C9C56D08F565A4CD433DBFDE6C715526BA46E231C565C92396DB9A74730036F1EF5718F315187565F92E95A0DA383545A6656E738A9B642E99DDCD5770002324D6E958D50EF3D4F73BAA19AE004E324D4582BCE0E2A5B785E66F9467DAA9B2922012CACDF22D38C7339F989C62BA1B4D19E5C1740056849A6C76F09017E63EB52E48AE4672D145B23C18FF001A69B6791BD05755168AC2332CA98CF4A41A67CFB767068E743F6672CDA4B93D31DF34F82D4893CBC64D75CFA76C83762AAB69C194346B86CD1CE907B3673973692C278CB77A75BDCB8187C8C5744D6DF26D65E6B3EE74E27E64068B8B95A245BC32205660C076A74775B1FE539F6ACA8F10BED93E5E7A9ABC8B1AB874915891D335A42572251B16819267DF8E2A5B9B450AB2EE04E3A556FB4242B82E0F3D05496D70970CC9B80AA6AE40D8EDF2C0E2B52D98AA6D3D2991A94E3A8C52991924031C573D4A69E8C4E2A454BE4FDDB1DA473D6B374C8152E8B4A720FAD744CA254C11D6A9358A46FBB0466B250E4D81C34099E3DC020E3B552BB05A3CF4C7EB53CAA911C83546EA767C8403A566D36EECC54599D25DB2B150B93515BC325CC9B9860D5C8E04542F20C93E950DA4DB2EB6ED20138AA8D9152565A0DB89A4B63B0A023D6B4B4B94B0C30C034F9ADA39143639F7AA858C120028751DEC4AD51AAC5564C564EA4CC9C21EB5656662A49C566DD4A5C905AB0517CF72E31B156490CA154F63CD4F2288E2071DA99A7C22691BDAB4DA05D9B08AE89AD2E5E864A4FE648136F06B4576C2005E491F95361B758B7B6DEDD69801E48E953CD6417E84E2F1C0C9EC6A49AE32A03E3E6AA139022CF3C551696675C163B6886A4346D048E32240C29D713F98BE5A8AC74B870A16ADC722AA6E6355E424996EDC2C52A34C702AD5CBC6CCA6D5867BE2B026BB695F686E2A7B6B8168C19BB534ADAA2D2B6A6879777E868A3FB757DE8A9B95CCC65C6C0BC3F3E951DADC046C120D51B82D34C719A7DBC522B6D23AD28EA42379278D88C707FBBEB561DDB2A7F86A85AC1BA3E7822AD96963B6E4657349A7DC4CB4976ACB81F7AABDC5EEC1822A0B7FDEC873C1A5B86C29561C7AD60A9F33B9318A6C8DAF5A58C8E54F6AAA632E32DCD4E20E3746777B51BFE5DA7835A72EBB1725D88EDADCB4D82BC568C962E230A0706ABC44A0DF91ED514DAC3C64C790D55EF3D8145943508D6038EFDEB29E71D3356350BB32C9B9F8AC992652DEB5D34E324B52D16C5CB03C3714E5B87638DC6B3C4A49C2D741A26912DDC8AECBC6456927646905763EC6C27BB208C81FCEBB2D2B458A3452C70DEF5ABA5688B0C6A5900E2B623B4883636573CEA763A141257328411C2DB63F9A4F6153DA69524D3F9938DA17A0ADA8ACE2DC0E02B763530B69B3F2B67EB4E226CCD92C2338500D41269C106702B7D2DC8FBDD695ED948E141A56EA2E6B1CDC9684C2C0293590D13C1303B322BB0962238C62B2A7832C72A0D4DEC5C59962D96E172AA03546B6BE54BB64515AB1DB37F0260D366B5B8917E64C01DEA9484EC72FABE8AB3A99235DAF5CCB5A5C45294319E3B8AF4E8ECCCABB0E73E9505CE8411BCCD8369E0D3E66B506A2CF2CBB9658F77CA476E6A2D2F5065BA0AE786AED756D054C6CC16B85FB3FD97515ED835B52AB77631AB4D257476D6D778552B82BDEAE6E571C9EBDAB9E8E42846D3F291E95A105C212037CBEF5B4B7325B1A6C372FC840351B1900C32803D69A170BC37068705700B641ACDAB8CAF2C2A7276E47A8A8E3D3FCC6CEDE2A612491B7CAD91E86AF59B317E71CFA56328E867233E5B38A35D8F8ACEB98A2421971C56F6A2A255D8A0EFAE72E20624A93CFA563CCCCD223379BB807DAA1B857765614490889727AD3332B61BF8455246D106326CC7355C2160D91CD69B3C49065BA9150C4D1648C8E6AB9496EC54D343453E08E0D74712C4E9BB1F38ACF8AD148DEB5AB6691B47F370450E2D99F35CAD2C024538C5575B144255CF5E956EE06C63B18E2AB08DE7942E6A5C4D23A14AEADC46A4679ED59E96D2313806BA7B9D2D9234773C1E2AACEB1C0032E188A2324129186D6CCBF29C64D2ADA4F2360A9DB5D3E916505C48269CAE3D2B62F21B18E12576F029BBA5733F69AD91E6D7567244F95EB54A49645386E6BA2D52E944C4200547A561CB8B8B90AAB834A1293D0A23F347A5157BFB2DE8ABB05CB89B5183704D58FB42291C0A80C0FB37015098E40DCF4AE74E4D917B9A915D38195ABD6F722E0B213C1AC7806EE054920922F993838F5AD05CA7450C36EA30CCABDEAB5EF922220373DAB005DDC96C3EE22A691DA58B38E40A4D7612BDC48EE1E198004804D5D96781828380DEB58A66F9F6B1A90C2EE0143BAAA37364EDB9A6C437CA1B8C5625DA94909FD6AEC70DC6D2C3B555BE98888EF5C1E9546AA57463DC5CE060F35577296CE2A39DF32127A669605324800AD5099B5A1E98DA85CAA81800E7EB5EABA35847668A020181C9AC4F09E9BE4D9F9BB704E2BB0B6882F240AC6ACBA1D34A3A5CB91A2923157618323A55584027815A9011C035314549E83A28005E477AB4A836F3D0530B85028F313D79AD0C58FC2FB52140698641C62977D17158AF3C391C0AA52DA16E475AD5CE47423EB5132AD4B452958CA587675AB7188DE3DA466A492253D7AD45B769C0CE292299524B4757DC838CD5F5459622ACBB4E3AD4B16D03E6A4930A32381552D89673DA95A654A91915E5FE24B236D73E6A8EF5ECB76A92C5B8726BCF7C5967BA0638ACE32E59A364EF139BB7937DB2483A8EB56D0A91BBB562691721247B5978049C569C5B95B693F4AED4EFA9CB6B5CD9B36F308849F97D6A676F2D8A13C67AD65412295250FCC0F35712549464FE34D88B4E8AEA1F2A40A9ADE5546C0C0A8E2CAA6DFE135048460B2B104563376224AE8B97775E58E3696AE7EE44D2C8641F77393537DB064890671ED55E7D5146026467B62B06AFB1118114872BF30AA77137969B7B5692CB1CB1E4F5F7E2A19ED22788B6FE7146A8B5646499BCD5C134D96711C8857823355F3E4CC71D8D4371234F28F6A7177645EE741A7EA1BA250E01607D6B5A3B98719FBA3B8AE72D60912D7BE0D59198EDF1CE4D69715936695D5CA09032F4A6B5F2C255947CB594B704B61C6714F7963F2F6FDE27B54295F41E8F437354D7239AC9638C7CF8C573F2BCCF116C9AB165664B07704A9ED8ADD9B4FB76B3255467152ED129B5B1C8C5AADDC0C5558A0A9CDF5D5D11BE4622AC4BA7066248E29F6B6055B38E2AE3A912496A52BD2CB092413C77ACAB462D72BF5AE9754548AD082064D62E9702CB71803BD3F2426EE8DADF27A0A2AC7D968ACB9591CC3E7223B7DB815451C73BB18AB1A9DEC1E52953838AC579B3CAB1E6AA9C6E99A289A913C692E5783FCEAF3AACF1650FCDE95CF5A095E655EC7BD742B6EF0C40E4F22869A15ACCA6B2794C5644EF56522329DA8BD69D25A79E8181C11CF34A924B0018619142B0A450BDD16757F342E02D5AB29A282DBF7806E15249AA5CCDF2390474AA4EB1B0209009AB5E434EFB8B35CF9CC7C9231DEB0F532CB192CC6BA3B6B48BCA2432D61788D045B54107E94752A32B3B1CCB37CDF8D6AE8B6C66BA45C719ACA55264FC6BABF0C460DEA2F15ABD8D23AB3D474E8560B08D40E702AEA4A138A8A00AB0A81E82A46C2906B8A4FDE3BE0B42FDBCC091DAB4E3689B18E4FD6B9D490F9838ABF048E7A71FD6AE2C528E86D87555C6051E728FE1AA7E6BEC2314CDCDD4E6AB98CB94BA6507B6293CDC1AA8920CF5A93706E7AD170B16FCCC8EA0D2EF045552572300D264E0ED6E68B8B94B0D8269A63C722ABE64F5A9E370461A80155493C83C539B19E4FCB4E041E94E2A08CF7A64B6529E2C2E54900D727E27847D89CF5E3AD76D291B086F4AE23C4EC3C860A3039AC9EE6B06790DC86B7BD2CBEB5B505D89163627B62B1EF97FD218FB9A7DA4C231B4F7AEE83F74E79FC46FA38864DE3BD5817217A8F94D6525CE70AC06DA9B398D81E0F51CF5A7703A28240F08208C531B19259B8ACFD3AE03ED04F03B55FB84E772E4715135A0B72BCD0C2E8581E7D2B31E0323E5578156AE498C03B855BD205BDC4A51DF69358A8DC87EEA334C68A00CE0D55B966F2C85735D1EBBA5476E9E6023047506B023884AA71DAB3D6E4395D188B03B31269D159BC936D4FBD56675314D800D6DF8634F59EFC3C99C63D2B5859937B17346B1FDC9132FCA0537508228C1DA38AEBAF2D2381408FD2B95D619605209049ED512776445BB9CBDC154738A20864790360919A956D6495BCC6076F5AD2B19D213B24033DB8A4BB94E5627B67380AC9C0AD88648EE144298DC7B5436F61F6C24C446719A4B4B57B3BECCBC91D2A92BBD494EE6AC3A246C374A99AA77F6B6B6CB88D9777A54FA8EBC218B6469838EB5CCCB70F3167DDC934E52E9140AEF723BFD3E5BBC2A679A974FD064B16F35C7CB52E9D2CCB38671951D2B4EFF5192E13CB44EDD850A492F31B6F62BED5A2A879973FDD6A298F90E7EEE19DA62190E054304644815860679AEA9A58A4C9603BD65496A5E5668CE067349688A726CB2628618D5D480702A7374644209E08ED589E63F9DE5BE4807D6B4D140404F031533936856688A5BCF24901B27D2A0FB7BC8D8CD3AE56262486E6ABC76E9E670DEF59C65706D1604E54E48CF155637325C373C7A5687D9D4AF079C5662829767033DAB483D471B17E3F354923381589AE4EF2C801F4AE8D166588E14F35CE6B21837CC3BD34EECB49190A36F23AD759E1019BE5245721BBE6AEB7C1F9FB58AD65B1A53F88F558581451ED53E323A66AADB65D40C7402B5218B29CD72B5A9DA9E85711924718AB3146C185598E25C0C8AB0B1467A641A690390D8D4EDA76187503153793B704B7148E140ABB195C88804F414F11061C669E3611CF4A95546383C50D03643B481F4A00DDCED3563691CE38A51186E84D1626E43B72285524E31563CAC53845F2FCBD68B09B1A8B814E39DC33D2906E51C8A6BC831EF49E84EE457526D8DAB80F1348595F9AED6EE4DC0F3DAB84F123633F35657D4DE11B23CE6EC1F349F7AA8C4A1AB53CA12E1870431FCAA29143A647D2BBE3F09CD3DC9619C48A39E455DF30B6DF6AC44631B95CF35A30DC00016FA53BDC9BEA5B8AE4DA5D29CFCA4D750255BBB74F9C7CA3A5724CCB2C647F10E455DB1BA2B11049E38A7D2C1D6E69DCAAFDD65C1EC6A28ADCC6E0C6793CD06556B439FBE3A525A09656E338FA573ECCCEA3BA26BB13DD204691B155E087ECD2056E56B65ACC0803375C566C8CE84AE32B59CD58C6EED6257D36DEE50B20F9B19A7E828F6D7251CE3078A642DB10B21C1EF50DCDE155C29018F7A8836B7295DAB1D3EB1AC456F005420B918AE61ED64BA93CDB83C7500D4B676C5D84B33167EB52DEDCC61B2E4285C5529C6E28AB6887C761E62055191493E80EC85829FCE922F135940A149C9AA5A878B5DDB6C3F76B4959A128C9B24B3B9B9D326C07185EC69B79AEB4D2176DA081DAB0E6BF9EF5B209269D059967CCA719ACDBBB4996A296E4B25E4978F8C607AD6843A7CDE4072C31491DAA478D9926B562B59DA1C6D38C5689240D896AD1A42438E7A50EC76EE518155CE612CAE87DA98B787695DB85A57438F2963268AADF686F43456856860DCDD3A12AAB5556E6743C77AD59ED04EA19579A3EC8890012280E2B2725B13B19A03CAFB80FAD6BC65362AB119231562C96048BE60A6A2BD8D2393318032334F634E533F518360DCA6B31657F3319ABF79B9F02AB08B0C38A99596C4CAC5BB7959577134968565BCCF39A57888849C76ACA8E768E62C38E68845DEE36F4D0EF1A4416DB7603C75AE27C472A99004E9CE6ADC7AC481705B8E959DAA8F363F36B6EA440C2DDCD767E0C4DD705BD057143FD67E35E81E0E84A5B4929C512D8DE9EE7A2E9E381C8AD512855183CD734FAB5BDB5A1669141AE7DFC632AB9556C8278ACA316CEA7247A38B84DBC9E6A51729B7E53CD79D43E2C42A3CC3DFB56841E248266187C53706851699DAFDBC0C0269C6E430CE6B9A8AF965F995B35762B8053AD45CD390D7370B8E0D3D6EF6E39AC7330084E6AADC5F794B90C29F30721D543A820387008AB6972ADC8C62BCF64F10245D7B5363F1C47136C54E7E956B53294123D2448A48CE29E5D3036D79FC7E388FAB01F80AD2B3F175ADC4806E20FA62AB9198B3AC6C483E955245E0F3525B5CA4F1074C1434E9C284C8EF594D148C99DB927AD71BE2880F905D4735D9CCB96AE7B5D80496E466B15B9D1077D0F1BBC6DB31F5CD2472E633CD4BADC5E55D371DCD66C521DD8AEE84AF1396A46D22590E79CF7A911CB601AAE18799CD5948CB26F5ED5713365B824CB6DCD6B5B44CC9951F5AE7E094C72EEEF9ADDB2BC68B8ED4DEC3B9BFA5588B985989E8718ABD15BA40C471C1AC7B5D53C8C90719ED9A8A6D4E691C9407AD60DEA6351366FCCDE6C7807AD312D944641048354B4EBD5C137008AD09358D3A043FBCCB63A62B29DCC9292322F627B7CB6085359E268CA36E3CD5E9EECEA329C2ED8FD6A196DA3007CA3FC694636344C34E9C87EA76D1AB6658B282AD5A5BA8889C628B9B77751B7915A3F215ECCE4BECAE492734F485470D9CD6E3DA10A485E7BD55F257761C629DC398A91AB2E36AD5A57651F32D3F7AC4C002314F6B88F1F32D165226FA9ABA2CD6CF28FB4BAA80323353EA5E29B485FECF6C77638F6AE36F2E70488883ED59E209C9DDD3273D69ABEC8B51BEACEE23D4639FAE327DAAC1781622300135CDE92AE0A863CD6EBDB9700F145AC4CA36D887CE4F514527D98FB5145905988F2B464C4AB91EBD6A41242C3F7C08C0AAB6B7F1C8833CF4EB566568A588F2A2B994A5CDB1ADECCCD96E5239B0A4E0F4A11A498FCDBBDB351EF84C8720707A8AD884C3E41231D2B66FA96E7745286D55C1DC3F3AAB7D1796408D7A56BC5776E8C54A8A86E5E3954BC2B9352DE974427E46349741632AF58ACE59C91D335A97D04810BB022B2E18998B71DE9C1B7B8D8E50491497DBD21193907B5685B593C8724702A1D5D5447803A56B7222B539F8577495EA1A1DA08BC3DB80E4AD79CD943BEE1411C135EC36368174A8579E528A8ED13A68ABB3909EDA7B96DA1B8069B1E813CADFCAB56F675B095FA6DACA3E21BB95F16EA06DEF8AC94B4D0EA715BB245F0DDC2B649E2A78F4A7894E4D64C9AE6A46522491B1E9535AEA577231605CEDEB4ED2EE28B8DCDDB69A4B7214E715D0D94A5D41DD5C82EA066FBCBC8AECFC390C77606E27A54289AB6922E3E5A3C62B0AF0BABB0CF15DBDC58A2C4401F376AE17577F225209E01359BBDC70926664B6AF364AB73541B45BA66383C1AB8FAA0897E414C4D76784190852BE98AB8B904A2ADA91DBF87EF18EDCB63EB5B369A05CC3872C4629B61E35B1120134657B64575763AB69D7F16619E324FF0E79AD54A68C1A453B0BFBDB2611B0252BA0B6D44DC2E0F07D2A9EC8DCF18C7B52888472020D4CA57DC9E54693F2BF5ACEBE80342D91D41AD18A32F1D3258098C8AC648A83B3B1E29E2CB4F2E72C076AE5617C3107D6BD3FC6DA7010170066BCBA41B24603AD6F41F433AEBA96650032903AD4F0C8108C0F97BD546626119A9607DC361AE9473962E061D5D7BD68C522B468EA7E6C63158AE5973CF15A1A6481CED6E68DD033650AE0165AB9E746231B1067E95527B7D90A9539C8E94EB79BCB2A64C62B06FA112B9A56E629A3FDE802B3DACE396F7098C54F3324D8308C1F6A8D7313E4F5A4C8499AD1086D6DC97C71D2B0752D5CE0AC63BD43A8DE3BB050E71543CA675DC4E693BC89B5B52C41AD5D29C6EE2B734DD51E76D920CD61AD81316E009A92CA66B594920FA53D85A48EA9191DC1000CF5AA1AE4512425D080D4DB3959994E71CF4357EFE08E5B262402F4360B738396E9C3632473D6ADDBCDE647F33738A82EA02588C703354B7340E00E9445E853D49963792EB70048CD757696493C284A7207A553D20DB940D2804E4D74B697766B6C4719DB4F9EC3DCC75B6F2674DAB85E7352CBAB476E183AF4E0536EF528A1763D49E95837024BB98CBB4EDA1C9D8125D4D2FEDE4FEE1A2B33ECCBFDDA2A39E44DC5D3EE905B608E69F24DBC1C122B3B4EF99B67BD6FC5A7A98F737A56AEC916DEA51B4684B00EDCFBD6BC422C6E57AC86B0227053A66AD2C0F10AE6946EEE989E85D314326777E753C30C59D8879ACE8EE0C6D89055C8E51B83464D3517D589C9B35AD34886F4324CD818ACCBBD0E0B6B82B110C2AEC372C9C96238AAB7774EED88D4F3DEA95A2AE0AFD4ACF6E026D8D79359379A74922152BEF5B28B703E6DADF9536E27916221929C67760A4D3395B0B60B7F146C3AB7F5AF63B58BFD123451FC02BC9AC72DAAC5D3EF67F5AF65B44DB0464A8E9FD2AAAEC76D2393F1068C2460CC00CFA56041606DA40CAB9FC2BD13514496221B1815CADC4524521F2CE07D2B04ECCEB4935631DF4CB79E4DEC594F702ACA410409E5A29FA9A9F32370596A486105BA64D69CED96A9A4578AD1031D8BC9AEEBC2762523F308E6B06DED871C576FA045B213C55C4C6AE88BB7A0242186738E78AF3DD62106779186466BD22F08303645729A85A09413818AC5AD428B3CFA4B5865930475AD28E087EC6D6EC830C382474ABF71A41C33AEDAAA85E066478C30FA552925A1BD948E7D7C3F2BCDC6D31E73E957CE872295368591C742A6B76136DC168F04D6DDA4B0C6A36A63F0A7CFA19B82462593EB5628A278CC9181D475C574B6334572A1991B3DC55986412021C02A6AC5AD9C6242C00C54F35CCDB45DB70021DAA454AD1A953BB19C539612B8C74A47F93A9A662B7389F195BA9D36463DABC5E5B60D33807B935EE3E3260DA5C871D01AF16639B87FA9AAA1F132AAFC2527502323D38A62F038AB724259B6A8E4D4B3696F05AF9A7D6B6E6E531507B99ECFB9866B63478774BB82922B12089A4B80067AD75D6509B6851BA1AAE6B2B994DD8BD28560303040AC998912E01EA6ADEA179E4A1914FCC6A85990F3AB39E7AD63BBB99B6CDBD3A248C02DB73D79AB570226383B72476AAF2C0C63DC848E2B35BCF59482D4E4D1317AEA367B54766D8DCE69608140C375A622C9B89EBCD499937671ED4B9ACAC8D7DD7A166DE748D8A374E956D6CA1964040CE6B14C4DE76EDC6B66D6E502283F7871445BEA65285B635A3B38E350CAAA4FF002A8EEC85B73BB8152C775184F988CE2A86A574AF1158EA657212BB32A45888271DEB15ADBED5A8AC682BA7D3ADE29C32CB8CD3A5D3ADED65330602B48C6CAECBBDB42A3686F6D0AB039518CFB56749712425922C9E6B426D5AE6E0F916E3776E2A0B5B77B7B80D71839EA0D26B504C86CAD8DC4FE65C723D0D744915B184200A3FAD54B811050D1E071DAA92CD9629B88A69AD85ABD4D3FB241E94550C9FEF8A29F2B118506DB7D44291C66BA0F343FCA84D606B16CD6F7C3070D9C839AE93C3568B704194E57BD6525CCAE99ACAD6B95FED5144D86EB532DC4521E718A8BC4DA415B906D7A1A4B3D39D61065C6462B073E5DD99BB3572C9B48AE40C114C5B296DE71B7EED2A03149B51BF2AB5733B247B7B915BD3926AF61C5142EAF5623B0E334EB1BE8A4750DB6AAC5A736A321264DA474A53626D9FCBDDC8EF435D472B743A412C463F9596A85DB2796722AB448D1AE77B545216964F2E3059BE953ECECEF72229DCCBB450BAC42303064AF558E42EA8071800579A0865B6D4626923C7CF5E97A76C90A96E3815ABD51E951562DA42B37CAEB9AAB73A1A15DC09FA56E46B1F04629D2BA04CFE1C566E28D949A6714DA118E419E41A93FB3960E5579AE8E7542735937F751AC78192C0E2935D8D549C886D606320CF4CD769A745E5C2081DAB9AD22279232EDC1ED5D0DB3E3E5C90075AD228C2A6A5B9D4B21E2B2DA0DC4A915B51912C657AD665D388652306A651D49837B23365B1562700F359373A4488C5D5777B5740B751BF01B0476A9136B9EC6A394B8CDA7A9CA476AEADF3427F2AD0B7B47E8A315B86DD09CD4F1C0AA320668E52A552E5382D9940C9AB918DAC2A50BB79DB4D7007238354A36326EE5A497E5C71515C302BDAAB87DA41A599B70E4F18A5222C71FE2E971A748993CE6BC8645FDFE71DEBD6FC5481EDD80AF3C96C4CF791A4606E634E8E8CDAA6B12ADADBBC9280172C6AFEA91EDB44B7C727935B7169B16991FCD9F37191C573DAADC19261DBB7D6AD7BD2B035681976B6DE5DDA903EB5D0C9708D0E075C556B586230EE7F4A259A2887CA9F9D762C3F32D59E64DEA654C6479CAB7DDABB6DB565527B542D7B1AB92235CFD2946A2A7A2283F4A6B0CBB90DB3A269649200B10C71D6B224F32390BB118CF355FF00B5E651B54002A95CDE4B28249C544B0DAEE091B56F79BC96500A8EB4925CC3BB71183F5AADA5CF8B1313203939DD505E468FF75B9AE4A914A6921D8B8668DD81040A6BF1F3A1C9AA515B654E5A9F11789C863F2D1A6CD97177D19A56972EE3F78A49078AD48521B85C11B4FBD66DB95E08ABBBC323150722B4768A14A367A15AF3CCB29F117208ED593777D7370E626042D6879CDE7319074F5A45586497076E4D4295F60B2B5D9069B726D1B2137135A4C8F7AC1F183508B58C3E43015604DF67C00D9CD536DAB1056943C4DB1BE9493D8F96BE6E054F719970C3934C68EE658F6E702A146C3451DAFF00DEA2A7FB0CBFDF14555995CC52F104892B2BC67357F459674B5578F35CE5C82D0E58F4AD8F0F6A8B0DBB46C338EF4249C5A29EC6DCBA9FCF89796C77A8DAE5A75FDD8FCAAB3AC77731207279ABB6968D9C29AE78E1A3CD705156D45B28FCA23CCFBC6A4BF1163E56DC4D3DAC5A39B731F4A9560881CB64D74D95AC89725D0CFD3FE4663BB1CFAD2DD79724DF2BE5AB425D2E0B9C6D3B0FA834DFEC58A101F712477A9688D0AAF12CF0FC8DF30EA2B47C3B62A1CBBAE48AA73948082320D3AD3580AF8CFCA38A526AC26FB16FC4CF089A05014303E95A3A6DD80AA73D40AC6BE85F53B85911B2A8292199A371CFDDE0D28AD2E77E1A57D19DA477D85ED4F9750181CF38ED5CDA5F61339A25BEDCBF4A4D9DD1822FDD5F119C37E759F6D18BCBB0646C2039FAD645DDFEE6DABEBCD58B6129B7631B329EBF5A499A3492D0EC2D6ED47CA8460715785DAEE1F30C9AF348B5896DE628CE720FAD6ADB6B9E61C16357CFA1972DCF458AED76819ED53792B71CF1D2BCF26F108B751B4B31FEEAD59B3F1C4D9082D654038DC56872BAB19BA5AE86AEACAF6574083C1A75ADF1651C9CD433DE7F6B448C14AB01D4D663335BCBB318F7ACEFCA6C95D599D743759503357E1941ED5C95B5E1DA0135AF6D7A0601AA4CC674EC6D79AA0FB543704B29C7DEED51098491F140723BD36EE656B0D0ACE879E45207C2153C7BD4E0C6AB9279354EE1B61C8EF5160B9CF78890CB1E10F359BA568C14A5C3A80F9E09ADBBB8D64DACDD8E6B434F8E296D4A91F38E956B443E631357D126BAB8F3768F2C28C915E69AB301A9BC648C06C57B2EA9AA47A768770EE7E6DB851EF5E27A96E90B5C8CE4E4F4A745352B8E736E362486F52198275FAD5E9228E68F700B93CD7173DC4A2424B115D06937A5E1018E78AF5E8C94958F366ACC4B9B603381CD52F25D1B24715B1332C99C75ACD176D0C85641B97E954D244904922A0C0EB5116DE7048E69F3324AC6448CD440EE6E9822B1A92D0691D8E85A50BBB3241191583ACC12DBDE18FA30E98ABFE1DD65ED6EF6B1FDDF43536BE63B8BE5940C826BCE9AF7D32A1B98511B950090D814497722F5CFE35A4F7F147085118C8E2AA1F2E7380BC9A1C55EECB5143EC6F24DDB71F29AEAAC823465940E7AD73966A910208C1AD4B7B95806DDC0E7B0A26D35621B7B0DD460712EE8C7E5550432FE35B0CFE66D239AA57F7AD6ECA1A3C03DF15947B137E85495A50B8C9E2A9497B3C6F863C56CAA25CC41D3AE2B3AFAD7099C722B4B3409F4342C276914349C8C55A6B95DBB41AE7EDA7744DA4E055E42D210471EF4E49EE2B17BCCFF006A8AAD86F5A28BB1D8C5B987742703A543A432ABBAB1C735B32AC4B0383D40AC6B4B4737BB941C75E94E0BA1A43537E0DA0EF5FBD5D0E9F340B0F992B006B0E3511A2E7A77AC9BFBB9B7958C90BFCEADF61CA29A3AC9EE5667C093A5461A3EF2AFE75C8412C8CBF7883F5A9FC87671BA46C1F7ACECD333505DCEA4DE4710E25FCA8FED0338DAA73F53587F641115657DFED56243F67405090C0670686C1C2C1A807047E7D6A8C21919B3DE8176F2C803734970EE23F97BD652D46917ECEF6E2D4B387E08A920BBDEEC4E0B31C9C5645BC3249C1240357DADC5B9520F26AD2B235A2ECCD21758E2ABDE5E6C434C51BB1516A3183016F4ACDAB33D38CFDDB956DAEC49382D8C66BACB79635B6CF1C8AE0127DAC09EC6B7ACEF0B47D7802B7B2B58C5D46D8BA8D9896E4B463049CE45476D14B1B6CCB7AD5A86569266DA7A0A92CE546B96F348F4E2A792C3532C416F2160C5719EF8ADEB3D3E376024079154BCE894AAAB55F8EE4803239F5CD160E766EA5BC7145B500E9599A85B99790071518D4994633542E75B4809539C9A8942E5466D318B73E449B589E38AD9B3B95600F02B8CBCBF8E53E6838E6B4749BF5917839CD4AB9AB9268EDA1B8C0F94FF00F5EACF9F9231D6B1A0756C1CE0E2A74971C64F06998C91A9E696E07350CEC4A7D2A34942AE3A13DE846E092D95A7632910CA53CA663C6C527EB5C4C5E3B82CEFA5565638622BA7D5E71069372E3BAD7855F485AE5DB77539FD69C55E56279AD13ADF1278BE6D71F68F921FEEE7AD65ADD0680072DB7B573A2E0A8E4D4B1DF100A9F98574C22A2633A8E4497AD06415CE7356F4B6207CB5852CACD2138C73572C7526B66E06735D1467CBB984F53A5919B6E704D519E497BC7C7A91500D55E453DBE94D134B29DA58E2BA1C9321683D8EE1F7706A291B647B875A98293C67352CBA55C5C2828A0D6334DAD1149A441A7CD8739FAD684B74C4605525B19EDF968CFA74A9141046462B99C1ADCAD3702924AD9CD5CB742B8623A547BC2AF039A7472939C8A8B264B771B737059C761D2ACDAAACACA371CD549222E09C525ACC61941C74A5648967676B6E362E79E2AAEBF10B8B4215482BDEA1B5D4833AEE180055D9248EE3E4E81856334B7410D19CEE9D72D000AFC01C569CE3ED3092BCF154756B416AE181183CF152E9776A61298CB7A56B1775660D6B728450C827218719AD2F385BC38E334F74C3921304F35977DE6679E47A5269A29163ED87D28ACDDC7D28A5C84DCD57DA570FD0D32D716F29665C8ED50CE5A40D8FBBD45537BAC2ED1D4714FD0D9248E865BA8E540A005A82E6DA168490C09ACB8659188A9F05A4C39DB9A8B3B94D6822DB9119640302AEDAC4F3A74E955DC2DBA81BB39ABB6B7236809C57652C3CA68CA5A6C4AB68EBF7739A65CD94B36001CD5A8EF1A12491BA9FFDA99E8A0557D4F5D599B948CE1A3CB12F98EC063D4D45318E060D292C07A735A52DC99D4E7D2B25E768DC8DB91F4AD3D8462526D8B26BD69163C98B91EB5147AAAEA371B768423D29FF00D943506023B472C7BC60D6A587C3BD6F7ACF05BB08C0E778C7158D4925A686D4E37632370985EA6A6BA8BCFB5FBBDAA1311B4B931B8F9D4E1867BD5B0C366411F415C9257D51DD17A58E6934D677254720D483CEB4E0838AE974DB64999F70C9A7DDE991B823151CD62D462CE5E39897C062A0D5AC0500A4993DEADCBA4847195A174A63D8814F999A46921F05D148BE6396ED532EAB232ED0D8C5363D21C8E738FAD685AF877CD6C818E3D69DD87B24B76517BC729BB7F359B712195B2EC71ED5DA43E168800586E3E9573FE11BB768F1E50A96EC26A279B4685C61726B63C3F0C893312A719AD4D5741160DBD4000D49605228576804E79A77E6445ADA9B70E0ED0320D4E8CD14BEB8F5AA124E17E74E302A582569C641CD28A264CD38E4DEA4D3D5C9427B551590EC2A0F353C05CEE20135691949983E2CB9820D39D6462A5870335E2F772833B1073C9AF49F1B433EA372FE5E709D4579A5DDB4B0C8564520E68835733A89F2DCA8CF93499A423A8A4ED5D0998343B348A79A68A55EB4D12F62EDA49F3638AD783F79C2A804F1F5AC9B680BD743A7DB796A1CF6E4574C2E413C360EACACE302B44460600CD480B491866EC29AC78EB5D508D913262E767CC4861E8695AD6D6E8E0808DEA2AB34809C134F570A722938296E85B10CFA3CA9F34443AFD6A382C676932548C54D25F491FDDA6C5ACCB1B61C03587D5E170BB3456C1E58B6ECE7D6A8CBA3C8AF95CB1ADBB2BD8EEA2040C3549233104A9E9553C246DA13CCCE70C12C2E032E2B56DE2135BE3EEB0EF9A9D9525E1C65A9F0DAB44F946CA7A5727D56517B1AD396BA9CC5FACE5CA9762B9A8F4D97C89C120FF8D7417167BA7DAC0E0D674B65E54F90302B9FE16693E57B175AFA250011824542B6875062C1B03E9559ECA6940703E4156639A4B34C8CE3149CB52A14EFB8BFD89FEDD1517F6E37A515361F2C4CCB8B9C828A78AC79652B36735A0CBB989ACDBB5C4A2B4B10A57356D6F7080922A633995F7E7F2AC78812BC66B52CE3731924F15AD28733264EC3C312D97AD1B7701460D517288401D69CB36D239AF462AC8CEF735B79618A824CA026A386E033019A9E42A63CD53D808E19599B0B5E91E13F0025EC11DFEAABB53A845EF5E6F672A5A5F4533A078D64048C57B368FE23FED308226C46A00C7A579F8BA8E2B436A71B97EF6EF4EF0F43E5DA5A226070DB79AE52FF00C537B704A23ED435DB4E96B7B118E755607B9F5AE2F57F0FBD948CF02968739C8ED5E2CE72BDD9E861D42DA9C1EA01FED0663EBC9AA29787795CD74B7D67E64046391EB5CEC902C72AFCBCE7B575D19F32B0EAAB6A74361246B10C1F988AB52905723AD6645B52340A46F22B4162DD18607B734548D8AA4EE548D1EE262AED8029E51B7E232768A710501C734B1C8AAC33D2848D5A922731BC61586EC1AB56BE62C831DEA14767808C9C76AB1048410083ED43D04AEF737A1902AED2C326AE46EABC9F4AC5491B19E054DE7B607CC6A6F7225128788C19622532BDB3589A6C8B110642A42D74971207859A450CB8AE488FF4C3B09C6738AA8AB10DE96375904ADE60C00471835774CB6440DB8FCA6B0C4D24800185ADDB19018822F27BD5A443629288EC429273C55D8A7FB259C933272074AB16B63E69C9183D6A1D442888C3C302289691334EEEC7150DD25FDEC8FC7CCC462B3F5CF0EC5751332A618F435185934ED70A36423B035D8246B3DA29C673CD724A4E2D33AB953563C4351D2A7B4959194ED1596E841E7B57AFEB1A42CC8C760AF3FD574A680B10B819AE9A75948E5AB42DAA39D3D6A48C6E2291D486C1F5A9ED23324C00E95D91D4E57E66E69D688A9E6CA404519FAD4BFDAC5E5F2D5711E700D50BEBC202403E55039152D8797238661DFAE2BA69DDBB112D8E8ECA42CBC9C8238A95CE01A7585AE14BC4C590919A7DCC0D19DC075AEB6EC8C96E67C980D9A546E3AD4533104D3A26CF4A94CA1D2E31D2A94984E7DEAEB9F7E6B3EE7201A89E9A81A9A35D0572B9E6BA02D9C7BD7116371E55C29EDDEBB086457B7DE4F2456B195E24C85F2C87C8353AB9523D6ABF9C00EB406EFBAAEE27B1796542C19B069D2C304A47CAA0D54461D722964948E8C2B39422F742BB25FB2A98D9558153D8563DFD948AA5149C56825C957DC4D4D30F35432919AC658583D51B2AAD6871FF00607F4FD68AE9361FEE8A2B0FAAC85ED2272A8C0BA8CD56D4E0DB8615D04FA65AA0CA484375C564DFC32347B03647BD73CA94E1BA293445A6DAACC8377AD6CADB851B41381595636F342A1FF833C9ADC5002061C922BBA9455886EECAAD6418E7351BC088304E2ADB3B0ED8A89CF99C30AD9A0BD8AC235072AE2A4329098CE6A19ADCAF22A03BD7AD436348B3E70EC715D4784F5E82C6730CCCC164E03678CD71DD7AD1BB69E0FEB58D6829C6C5C25CACF775170504A8FF00BB23208A9D2F1CA947191EE2BCF3C1DE32FB3B2586A0FBA0230AE4F4AF459200D18922219586411E95E0D6A52A6F5D8EEA735232EE74FB79A5121F950F5FAD79E7896CA4B1BC2D18FDDB670457A549B92B9ED76CC5FD9B20C6E00D2A35395E86CEED58E174F9CB488ACDDFB9AEDACE2431005D79C5799CBE6DADE0472576B74AEEF492B25B23C848040C73D6BD071538DCC6327066B3DAC4A37D569238719C714FBC90AC2761E2A9DBDC128C3AFAD64A1637552E6C58470942AF8C91C55C5B38990945CE2B05660250C187B8AD887508635210E0B0E71DE9B57D84E7664896C4BE3A6298FD4853F38ED534371BD095EA7D6A85E86B7944D9E7EB53C9617B4B85D4C8B091BB63775F5AE7E62219074F9B9E2AEDE4A8C8E58FCE464563C9302E04A7EB54C85B9A1692ABCD920EDC62BAFD22CC7941C827BD723A647E6BE509C0AEE74E93CB87A718C552D889B7B1A2932DBA3A907A7158D74C19CB6339AD295D5A22188C1E959876997682BC9A97AB260ADA989E2AD1C1D262BD403CC8D8678ED468B26FB55049C915D46AD0097C3CE8573C1FE55C86920DBA053D3D3F1AC2BC2C6D4677BA2DDEDBEE0470735C8EB1A76F46E3D6BB794871C0AC3D4A3054822B960ECCDB7D0F1ED42D8C53E31DEB4344B5DCE1D8702AEEB56799F2077AB16A82DACC0EE6BDAC2EB13CEAF1B339FD56331DD31038CD2D949B4F1D7EB56F54C32EEC550B5C06539AE885D48C65B58EC74AD44C7180D90727F1AE863960BE4DA40DD8AE0E37654C8269D0EAB35BCA0876EB5D4A6B6662E2F7474D7FA25C14926890B44BD71DAB1A21B4F7F706BA3D1BC48242125230C3057D6B3B51B658AE9D9010AC77714AD67E452D7733E5E083546E4E50D5B98F6AA770DF2D4CC119EAE56503D6BACD32E0B44AA4F18C571CDF2C99AE8F49941500D3A2FA0A68DB9A2DC495CD428CCA08A59E59624132F207DEA549A1B840CBC377ADC91E64253E5EB5089F920919F4A93203E6ABDCA05F9F1498D0B3C984C818FA55AB1BD5C6D73594ECC53EF715145261B8A4A4368E9FCE8A8AC0F3CFA9A29F399EA2DC96490B0E5BB532175BB04E06E1D56AC5CC44AF4E958324D2595C8719C75ACDB49EA696B9AAB98E52840D87B527CE246447E319E7B52C57705C8560DB4E39A56C79B8539E29E9D0051BD47CCCA69BB8EEF5A949F9306A2240CE298C46208E8735149B4AFBD3C93EB4C23DA9302AB32AF5A85893C81C55A9222DD2AA1C86C7359BD4698190A0C8C83ED5D3E8DE3FD4B4987C80566847457ED5CC330C540C0139AC2AD252566691958F5ED3FC71A76A5B63B91F6798FBF04D694A524883C4C1D0F71DEBC2BCD646E718AD7D33C4B7BA71FDDCE4A7F718F15E6D5C1DB589D54EBD8E8FC51A72EFF3D5003D4D47A46A70344B1B3306048DB9A078B2CB5180C7748232C396C715CCDEA7D96E0CF6CE194F4C5141CA0B9648AA9696A8EE0CE6672A1F083A5430DEADB09233939EF5C8DBEBB2C60248D9FAF6AB49A9A49D5BA9AD9C5742633B1BF25C8DDF2373D6B474998CF3AAB9C81EF5CC2CE8C41DC315A5677AB1B7C87269452454A6D9DCAF951B9CB14502B135DD50074880C9C706B227D72701A109B95BBD436F135C4F991B24FAD0F508AEE3A6BA96755755391C5322B76B9B81BC633CD6BC16313A95CE0FB55882C80932B8C0359DCB26D32DBECE188AE82C5D9D1901C7154E3410A0210722AC5AE63752ADB726A5B605E28444559B355ADED59AE965CF02A66642FB4364F6AD5B18408C31037678AD69A727A9954972A1D7B1EFB09148CFCBFD2BCFE0320B865087258D7A16A2C2DF4D98F42578AE574F895E2DCCBB8939CFE35962878695F50112B4008FBF58D7EAD8208EF5AD793B5B4A06D18ACFBA2658B785C91C9C0AF3A3B9D870DAA427CC271D0D66CAF9C2E2AF6A57C93CCEAAAC36920D649396C8AF73091F76E79F887A95F506FDD609AA76AA4C9C8E2ADDEB6E8BA7350D98CB735D515EF1CACBFB711D509C1526B418E78C76AA338EB4E42432DEE9E271824735D6699A826A10FD9E46C31E15AB8C084FE75AFA5C7B2656DD8239ABA4DBD052EE5DBB8DE39D95D791D6A8CA320D7517B69F6FB40EA3F7CA3A7A8AE6A6050B291834E4ADA045DCC990624AD6D2D886AC8B804393EF5A1A6361C54D27EF0E5B1D746CAF16D7E878358B70AD67707A85ED5A2BB8C24AE7355E6FF4980A4872CA78ADE7DC843A0B95917AF38A573E6A94279ACCB690C52EC3D01EF5A2FC30751F29A39AE8A2165C82777355A173BF04E6A794104E41C1ACF12F9530FAD45ECC0D2C51507DB17D051556417357CC1247D727A62B2750B7DC086A9E29F3839C03524C8B22ED0738F5A53D50A3A1CEC2CD0BB01D29E9A8C90C993F30F4A7DCC451C37BD527526421BA1AC6ED6C568CD51AEDBB603A907BE29DFDB168064135CEDC5B98CE71C540A8C4F4A8F6D25D07CA8E99F5AB4C701B34875BB7DBF709AE7D2DD98F4A97EC6C474A3DA4FB072A35CEB909E361A60D46DE407276D63496AE8338AAEC0AF1DEA7DA496E87CA7426589FEEB8A61EB5802465EF532DD4ABFC4714FDAA61CACD475C026AB3B751512DF9E8DCFD69C2747EB8149B4C3541E66D14E4BB9138DC714A155FA114D680D4385C6A6C1E7F33918CD2C7395C7CD51FD9CF5A4284543A6D16A66DDB5D23200E79AD6B4BB44233820D7182529F74F7AD3B29DB1C1E4D672491A293675C648E49877E33F4ADAB78E310A61B935C85A19C306F2D8FD056DC573347183342E80F4256B26D23A237674410C2002460D4A2540030EA2B121BC0CE159CF357A0491E5DA8AC54F7A98C64D96D5B7353ED724AA14118AB11CEFF00280B91D2A1B6D0AEE739DE573D2BAAD2F40481559C6E3DCD6F1A2DEE73CEAA8AD0874FD3A494AB48319E40AE8A1B711A74E82A6860589460548548E4F4AD9251395C9C9985AC032C4D1E782318ACB48C5ADB796A3915AB7A7CCB82076AA1700918AF2B155799D91D9423631AED3CD42A57AD67F972A46CBB7E5ADA9532DD4563EA971E4C6C3763835CF057D0EBBE879F6B6228EFA4318C66B36340E7827352DFCFE6DD3F7E4D247D057D061E368A3CCAEEECA77A984C62996AA00A935166C0DD496C38FC2B68FC4623E438AA770C2ACCC39AA57272B8A52D0105BB03F9D6C592E58560DB311263DEB7ED932015393E9574D899D369F390007C83D07BD606B050DDB94C63BD684770D1424483031D7158973207958F6AAA9A931D0CBB81F355AB0E1C555B8FBF566CC7CE2A29FC5729EC7516CDF22F6FEB55A43E5CC5BDEA5B53F28A6DEA60835D3244752ADE20389579C8E7DAA5B790CB114CFCC071490B07568DFA76A822636D7015BA03C56696A038B49F7475AA13E77FCC2B56E474753C1E6B32E4926A665221DDEF45378F5A2A2E3B0B6975BC019AD249B74785AE7195ADA5C7419AD1827240A719BB5989A2EB849010E4038AC79F0B71B54E40ABB3390B935987972D9EF52D8D2349A1596D57039AAA2CB0DD2AF594A863DAD57D604C6477ABE55215CCE82CC63A55B16CA1718AB202A8C5073F855D905CA12DB8CF4ACABCB0201602BA3201ED50CB0864E959CE0A48699C7B4641C1A6ECAD9BCB20A4B28FAD6718F69E9DEB99C1A2EE57F2CD33054D5E45E6A536CAEA76F5A9E5BEC1733D642BDEA659E4ECD51CB6EC8DD2888956191446F7B0684E2694D059CF5AD182249541EF52FD90775AD7D9B1736A6384C9E3AD58B72D13061DAADBD88EA8706A1314B1F54CFBD672A65266F69DAE1876EFC7A74AEEB4CF1869F750C76B7D0C6D10C0CEDE6BCBAD844D2A87DC173CD76BA6F8562D46D966B4995BD549AE2AF4D257675529F31E816B61E1AB9512452C4A4F3826B5ADACF4B8F063B98BF3AF365F096A16E4928E57FD96AB96FE1F989CC9F6853F535CB1ADC9B48DDD252DD9EA96E2D1480B347F98AD289622BF248A47B5798DB786D8E31797087AFDEAD18ACB58D3C07B7BB13A8EAB9E456B0C759FBC632C2A7B33D15631B7819AA778EE91938C015CED97895DD845701E3940C618704D4936BB25CDC0B35030DC9239AE975A138E8CC3D84E2C936972493D6A19A2C9ABB1AF18EF54B59BFB6D32D1A79DC03D96BC89EB2D0EB87632751963B481A491C228AF34D7BC482E64686DFEE03827D699E21D7EE757B86C3110E4802B9C652A726BAF0D4B5BB1D47CB11B23664E4D588580C60D502C379E6A78CE08C1AF6E9E88F3A5B8CBD7DF2E3D296DD874A714F358B1A043B1F35496B72465C1C1AA531C8AB539F9AA9CC78A8982196E7F7AA2BA0B655DA0EE22B9C849F33F1ADCB4B8C300C323157498A46A4B21F24464E6B2A662091524B390F9538A8269038F7AB9058A731F9AADD983E62D5373FBC157EC465A9535A8337213802A69C6F8BF0AAEBC2D5946DC9B2BA1ED623632F2525AB457CC8BCC2318EF50DD2104E3AD32DAE4A12A4FCADD6B34FA0C987EF63233D2A85CAB2AF6AD1F2F69C8E954E751D73F5A52434CCEF9BDE8AB5B93D28A9E463B9527417306FC7CC38AAB03B44F83C76ABF0A18C119AA5347B27040ACEDADC0B1248596AA39F9AAC970630075AAA47CD431972DB35A08E42F5ACEB6EB8ABAA3156844A246CD58472C306AAA819A91060F5AD101688E29B8F6A11BDC5389CD31156484329C564DD5B146276F5ADDCF5A86689655DA475ACE51BA04CE6CA61AA589B69EB535D4062931DAA151CD64958A2CB42B32F4AAAF6786E054BE6ED1D6945D91D70687CA21F66851F15A3818ACD5B919E3BD594B918C1357192D80B45723A53367B0A12506A5041AB7A8109811CF400D58B3B9BBD39FCCB59DA3C1EC7834C2280D8ACA54949598D49A3BAD17E24490958755837A0E03A8E6BBCD3F54D3B568C3D9DCA1623EE9E08AF0D204CB8619F4AACB35EE9337996F23800E72A7A579B88C0C7747442B1F40CB34968DFE9280C47A3AD68C2209E2055B9238E2BC6349F8917210417E3CD8CF19EE05761E1FF11C32CCA239B742E72013D0D79F2C34E27429A92D0EC2EB498AEA32B26063906B0F4C8DAC755962B83BCA8F90FB574DBF741B8376C935C6EAD34906AC92924A9E2B08B7176358372D19D6ACEA096FE155CD79178A750B8D4F5290166F2D090057A4DBCC64D36E4AFDE20D713368ECEC5C8CF7AB8AF7B51C236B9C67D91DFF0086A9EA16C605C918AEE45924470C066B93F11B0F3C8EC2BB68CEF2B13517BB7399C64935246C77E2A3C839A72B00C2BD781E6CB72E400EE34F9411CE6A1824C93CD12BFCA6B4B928A739E4D5793EED3E46EB50BF295949DC63623F3F35AB07CB1EE159B0C409CD5DCEC4DB9EB4E1A0873C9C55779483448DC55566E69B9022CAB6F39AD8D3D30BBAB2ADA3DC335B16FF00200B9EB5AD3D0522E87EC7F0AB31310C2B399BE5EB53432E4806B45225A27BC8F90D8EB596D9563F5AD863BE1E7B74ACB9D08E693566345A85FCD50BD187EB55AF632AD9E9C5321728E1853EF24F341CFA54C9DD09197BA8A5D87D68AC79CBB0E49FCC3EF493AE4038AAF1FC8D56C90C83355B888542F9673D69850751526E0ADCF4A6C93C78C28E696831F6E486AB80E455280F39AB41B8AA4C44EAD8A432EDE6A2DD504AF95AA720B0F92F4AB706A68EF72464D663F5A6A9C1A853770E53A0122C801CD23120F159B6F332F19AB624E335AA62B0E9A359D318E6B16789A0739AD766E73514A1278F6B019159CA3D50D18CCE48A666AD4F68D19C8E45562A4562CAD0746DCD4BB88AAEA79A9450845B8A53BBAD5A496B39477A9D1C835A290AC682BE452D5647A943639ABBDC0941C1A9D595D0AB60A91554B6450B260E334D24F46056BDD3D95BCC8B91E9505A6A371652E55D9483D01AD98E55CFCC01AA57BA7097324630DD6B9AA51EA8D233B1E8DE14F88E0AA5AEA446CC001CF6AE875A962BBB6F3A13B97EF022BC0C33C2F8DC4106BA4D17C5171643C9918B43FDDAF32B61549DE3B9D34AAF2B3D87C2B74B730CB131CFB1AD0B9B550182815C4784B58886AEBB48DB276AF44BD40A770E8466B8AB46516AE7429A6EE721A85B6CDCD5E61AF49BEEA4FAD7AB6B122AC4E723A1AF22D6240F70F8F535D58357770AEFDC324D3148C9CD4990074A86461B4D7AFD0F349607DA4F3523BE54D5489AA72DFBBAA5B125673F3535BEED29FBD4D6A902584038C9A57399300D2C4BB62CD318F0698586BB13C522479393483AE6A78D7730A23AB132DDB21C8C55D71B306A2B74DAB9A9E400AD745AC840AF9142B957C8351C630DC7E353601EF420342DA4DE98FCEA1B98C60902A2B66DA460E3FAD5C9BE688FAD5BD50BA9963AE33529198EA26FBE454B1328E0F7ACDEC5329EDA2ADF934567CA519F243CE7DE81F77156582B74A81F1B48154F425155F1B8D47800E69C4FCF4A7150864B15585E955E3A9F3C55880B62A176A73B62A02D9349B18D6A5419348DD69E9D2A5012C6B8A90CD8E334C4CF34D78DBA81557603BCDE7AD065AACCA452648A5CC05F8E7523630C8351CB64AEBBE3E7DAAA6F3EB5621B8643D78A774F416A566B7653C8A6918AD5631DC0E4735566B465E40C8A4E361DCA60D4B19C734D68D8750C2914106A501695B9CD4A24C0AAAB4ACDC555EC05A128A52475AA1E61079353C72E451CD702D24841A9D27F7C8F4AA61C50DC8E2A930B12DC5AA4EA597EFD67342C8D91C1156966643D6A50D1CC3D5AB394131A6D1268FA84965748E0FDD35EFF00A2DFC5ADE8092464191061BF2AF9F0C07395EB5D7F81BC48FA3DF88266220938DB9EF5C389C3A9C4DA9CEC759E213E55ACB9CF4C5792EA0DBA53F5AF5AF126CD40C90D99591997762BC9B55825B6BA78E75DAE2B2C1C1C7E23A2BD44D19CEC40355A47F7AB123A95C0EB54646DCD8AF424CE22646A943E4D55071522373426038E771A7042EC053704B7D6AD46BB5735691235F8403D2A16E952B72D4C601450C647D2ADDAA16238AA89CBF15AB6C9B06EAA82B92CB29F2AFD28F37A8C530B64D2AA16AD2EC444642AFED532BEE14935BB609029918238340C97356ADE7326E8D875E955B1C7D6A5830AE2A968C4C65C2ED7CD350F39AB9771868C102A829C1C1A5D750E85AF30FA515167DA8AA24CB49C90013521E573544707AD5946F96B04EE6840C48969DBB34C93EFD203CD45F5196236AB1BBE5AAD19A99F85AB4C4472373D6A3CE294E73CD34F5A901734E52453075A7D0809E1724E2AEAA02BD2B3A238357A37E2B48F98991C90E41AA924441AD5FBC2A292307B50E3D84999456984907AD5B921C678AAEC959B4CA4093153D6AE45780100D50DB8A4342935B8DA35D923B81943F37A553920643D0F5A8239995BAD5D8AE4300AE01156ACF626D62A12453431E6B41ED1261BA26FC2AA4B6EF11C1C9A4D31A657273406C538AD467AD43605857E9CD588E504609AA19E29C09C7154A405F74DE32315015646CD4693329E6AC090498C9A603E1BADA70D560CA5712467E61CD52DA326A44057273C5125741B1BD67AD3FF0068C772F29407E4722B235FB9FB45EB48AC5D4F4268B56DF6D3425410DCEE3DA924B352983229C0E95828B6F62D3309F7119A8B1CD58B9528E573C544B116E943DEC219D294139E2A4F239A916309CF7A12B08727CB8CF5A999B0B558C84B6295DCE6B4E6113A48B91BAA59635299154A205DEAD9E5428AB4EE8432DE2DCFD3A569E00502A18A308A08EB53A8DD571D0058E3E7245598B078C1A87385C6696263BC73DEAD09974AEF4C75AA72405189ABE8015CD472C794CE2A9A1265655F96A445F9C5440E1B152A1E6945EA365C74F321183F5ACB993CB63DB9AD78496E2A9DE4203138A2A2B893286EF61452EC14545CA332480A9351A928D8AD560922F1551E10AC6B371B0EE5394E1F34D46F98D24C7E7C546A7E6ACAFA8CB8870455C48F760D6723E6B4219300735AC1888E540A0E055467DA79AD195770CD674E9934A4AC084F3076A5128355B247149CF5ACF98763423705AAE44D9158D1CB83D6AFDBCE3D6B48484D1A2A6A4C645451B86152A8ADB72485D073559E2C76AD02063A544D18349A1DCCD6515195ABF242369E2AB18F07A566D0CAE4522E41AB053DA91539A94807452306041AD059B78024C1154963DBCD3CB718AB8BB0AC4B359C720CC640359D2DBC91FDE5C0F51575646079E952EF0C30CB9068693D82E64018352C6326ADCD6B952D18CFB55239538231516E5DC65811034BB369A8A39086193C54AF260552D0052FC62985CE2A32C739A4627143606959DF4105B4B1CF1960FF00C40F4AAF717B0471958D58679C9AA0CCD4D9C16407BD65CCD3D0A424920979CD2420EEE7A51042C54961C54C133C29AADF5621CC19B8514D16CCC79AB300DBD6A772BB6AF9534233668BCA1D6AAB31AB574D9EF548F5AC9EE51244C41AD1832E326B3E35216B56D93080D694F725965178152A0E0D22E734B9CF15B122E3DE80841CD3945588941EA0534AE17258394FA54B9C8C5406650DB40A9030718CD52D40A738DB25119E6A6B84DC954E3728DB73DEA7E1606B40453AE53CC4CD410BE5463A55B203475A3D5096E66793455CD83D28ACF94B3944B865E86A47BC0633DCD53CF14D62715CDCEC761ACDB9C9A13EF53475A55EB59DEE3274EB56E235493A55984D6B164B2EE32B54E45C135763E54D579C0CD68F5424674A8435308C0AB4E38AACE39AC1A2D32339A9A194AD46DD29AA79A85A31B46C433838157A3932466B1216391CD6942C7239AE984AE4346881B8535979A48D8D48C38AD6C495DD6ABC91D5DDA09E6A19635E78A4D0265365C0A881F9AA761559FEF565D4A2C03F2FD695549A231902ACA20AB5110C58F38E2A748C63A538281DA9C055A49031D1A67B0C550D46D3F8907D6B4E2E3344AA194E7D289A4D093B1CC213BB1E95230239C53AE5024E71EB53200C83358228AE0F1F4A6F9841E94E97E56E295147A75A96C640EDCE4D3D537A734E9401D2851B6318A9B6B718A64CA05C702846543C75A55398CD30D5DC9272D9C1A6BC85462A2DE474A6312413439680412B139CD44A371A593934E8C62B3193C69C0AD3B7E702B354D5AB5918498ADA0C4D1A0CDB475A6F9A3AD473B9249AAAD237AD539D98AC5D374B1F5A960BD8D9F05B00D639624F35164AB1C1A4AADFA09A3AA681644DC873507EF623C838ACFB19E40400C6B6E2959C00D820D6C85B15C4C5FE5355A550AF9AD836D1633B71F4AA7731A8538A24BA85C2D9805AD0425A3E2B2AD865B9AD3878381D2AA2EE21B86A2A7A2819FFD9 0 0 0 0 0 0 1 0 0 (NULL) 0 libspatialite-4.1.1/test/sql_stmt_security_tests/blobfromfile2.testcase0000664000175000017500000000023512163502133023541 00000000000000blobfromfile - non-text :memory: #use in-memory database SELECT BlobFromFile(32) 1 # rows (not including the header row) 1 # columns BlobFromFile(32) (NULL) libspatialite-4.1.1/test/sql_stmt_security_tests/blobfromfile4.testcase0000664000175000017500000000027012163502133023542 00000000000000blobfromfile - emptyfile :memory: #use in-memory database SELECT BlobFromFile("emptyfile.txt") 1 # rows (not including the header row) 1 # columns BlobFromFile("emptyfile.txt") (NULL) libspatialite-4.1.1/test/sql_stmt_security_tests/isXblob9.testcase0000664000175000017500000002437412163502133022522 00000000000000isXblob - Webp :memory: #use in-memory database SELECT Hex(blob), IsPngBlob(blob), IsGifBlob(blob), IsGeometryBlob(blob), IsZipBlob(blob), IsPdfBlob(blob), IsTiffBlob(blob), IsJpegBlob(blob), IsExifBlob(blob), IsExifGpsBlob(blob), GeomFromExifGpsBlob(blob), IsWebpBlob(blob) FROM (SELECT BlobFromFile("sql_stmt_tests/test.webp") as blob) dummy 1 # rows (not including the header row) 12 # columns Hex(blob) IsPngBlob(blob) IsGifBlob(blob) IsGeometryBlob(blob) IsZipBlob(blob) IsPdfBlob(blob) IsTiffBlob(blob) IsJpegBlob(blob) IsExifBlob(blob) IsExifGpsBlob(blob) GeomFromExifGpsBlob(blob) IsWebpBlob(blob) 52494646381300005745425056503820FC120000D03E009D012A80008000000708858588858488028219C1D32F2755672A4E67F137FFDD8CFDBE9D39FDFA9FE7536E0AFC2BF32FC1D7AD7DCFF573C95F595A85FCB3EDE7EA3FBCFEE3FC65FE03BCFF923A82FB13FD5F8ABEC36DA3FD6FFCEF505EF07FC5FF01E2DBFEE7A0DF5BBFE77B80FF32FE61FEDBD54FF37E141F75FF4BEC03FD1BFB67FD6FF3DF98DF249FF17F99FCDEF6EFF4CFFE4FF35F00FFAB3FF2FFBC7B5EFFFFF73DFB85ECB1FAC7FF87DEFCD6E1CCB7C52211F324FAD197772F07ADFF320C8A6E3C954257AA7D1D37D2E3DFE692A22442982085E1D214D44549FE4B87B9AF1AA705E5618B9A6CB936CF8D950E9D08F2262F84562F4D3A9EC827E7EEBDD7BD95ED9637C83E991EB4E61D31D8688EDC9F6DAE95789CF8178A989A30CE4B3DBBF88671461109594162D6878D75E4198E04D7225B1A17CBC83189D0AA0EBF3290BE2B020FB221914F0E75A2FE86661E2224636ECB04DA2E078107BDD1BD79A073912F2255BA4A9E3F2E5CAB360885056C7FF617FF2D128EC21630BAA994E7FF19467493FA443061439801CCE618020B0A60E239DC6DCC4E6E9D21EBAF822697B6731EDF7766E4EB449B6870CB32CD316120FFFF112CB5AB755AC0A728D7CF1C882794C50DF5BC848870054E346FB04C426A5DEE7E50F9B6CA043A4D5819BF7500DF3DD5EB43A5EDA5F766B8733DE67B21D802F45D051870127ABBB9A0FEFFFE1381F5747C039FFF921BF9E7FD5E69A3FFC9BC2FEE2C690BA401704F7EF1BF3EACDCE82334409DED4675F173A1C1C417F03FC220A554FD54F4DBD328E45139063A58698F766F82FCD2B591549E20E23BF425C47FC7A1FCAE2DFFB04ECB2C8076274C9FF456233F65E2F6ABEA766FD6F30CD8596D9DDE7F491BF36955BA853B80B7DD7D2DB7466230967B8035373285B84630EF4A084D1388367502F970A662A37561708B6B7D392C1D959FCA8DD88A5BEA53C69FC239E39CF0A500D2658B751E67D12F185EADB6664F2B58573CB7880F61F8B54E7F66BFD6DFFBE896767BFE61931A97F9442FBFEE2CBB9EE91A4D215960754CA00BD922C191AA1F949535D7E26A5BE8002ADD5CD8B1B8A7F43E3851AD08BF00B5FF7AE99D3D3474CD0388168AEE9775E50BB7D0FA08327B3D04BC2F77EFA0D157E9C5D32A155C4714A97531FFC1B55B1363E825BD814D13EF96CF72363FFEFC44357DCC6283F4D30FF3C32ADC0E7FFE733B95DA5B3D7BB9FFA67F6571D35612FFF109509DE5DA5AFBFDB95896E2B2E51FAAD29F41787A55C068A62E011F1AFC72E709D7F2FAA2FEAF7F46E64FD6514D34EE1C0A11EAC027FC578C58D02DCCABF46A6AB2B2EAB608BD1903E3D882EA978A6D80304A127A0E8BEE556567DF49447780352611F4D253C4ECE8FCC8EFDB1D6F946FFF011C9E981C8F795C91F26DA2DDFEECE906CA45832D4201B17E5E2CCAE32E75871588DE9ADBF75FB3577F9D4AD9F0135BBF8624DE5FF880A1C293C1C4B94305366B09E25FC07EBB23D4920988B08D39024334650A9D1576A8955C5D1BB5FF56F9A6B3743FD39F8F04F10835E088A68F03D11D0C11AF2939721065C8C87FFA6A5E964AC9C914684D9D4489A42558716F07CB7A781D6342CF8C42B07414A8322CEDA3C88DF2691FD146B6405116000F21294A9C1303491EB1228668ED7767F72CA5A4B5E8B9C09277ADAC135353AADF56D858D240CB91EFCB37E68E3B687DC74D8FE4D9FDF41F0B435839C87D9971EFF3ACF1D15C477D84E3E01231B174F16E4D1C84A12FE9D9E7ACD3256D28B32E751641CA25663EDA61D903A00D2141C16D9E2A9A98F2DC6776DB2F2DFC1E72B97A5142DC347B48E23AE9706311E9E987F5543AF8CF2983C2CD1BE96D2EF46FEC81105A1C92B9E6D03631E0201271437201299B73D6F8733BC6FEFB31934D8FBF6F6F900E2809F05A1643364566C6ABF94F96095E7CD5F47B69F891C0ECB906A706106010730D01A20460FD122A9CAD3471A0A2F85918883AE0E6F43FE6AE84B0E23DD80A57F50DE5BFB5DA6F0F2A650971267B7D2925EE5A16D387A2BBC441443F66DA408991A23CF13DF96615385430C544F62CF0BB4E0DA8C663E78D868D4688DC1175A01B5DEFA2720075AB17CA74084D4B9EE325F33A11AB969742857EC5461B9050F0475983F94E6B6CC27D04E01313A52A9CD8F949925B781A4484675499BADBF8B9904F31BA5CC2266820E65662688FA65E3D47DA990098933EA095642C430C8120F80ACF1BD7B0FC44F1F4CF7D4610EFAE786C658A821F4A0EF142F546455692A296B8DCC28C57C4AEC85AF4DFE680749C3065CE2EE8A716F2B1E518FB01ED4B76B5EBF225EC13877A71E614E25C4B4B72B068A68E4FCF5EEE6C879B22C4DCE83C6F33EB8B144F4A2BA134B962FDC8B42B50E3CA19BCF431A7D746CC681C5CB9C789BEB4F3373029511B2A62C038CDC1FF612A903D2A6242FC75ECDA5FBB6B830F3F09C0589A6C9E0FE162B5736B957073931DF627E0A95593DDED2F919F96C281458B75F16F71BD8721EA97D45FD9BE3D4BA97EF1E8478B25172F3D8E2F35CAE99B96DAF13D060C96C1901A6E42A18BCE7913CCAC787778C970AB41E3489E5D37EBEFDDE1AE28793D6129F01E79BFE8F71EF9E2FBA6FEF5184C6F0878FF3FCEABF97CA7D1552D623B980CF69409A0B8AD241EF855F79C2DF32B66A26730F03124C04F56AF74C3BC5C8B7050982CAF44CB23A3A12FF25305D98556D854E9578CAFFA14F30317B784429AA6FE4521F16B179AC8724A78FCBC2398676EEF4809FD47BA160BEB3008B55403374EFE07D3FBB1BFD25A2771D8B414DAE124561355D39CBB6E3A919FAD83F12C83EBFDA741D5A7F0976CA032A194FC3A2490DBE9C373E1EFC555175979283DC2F22B7FEA0E3C0139DEA1E60865B88D156907B738CE1896679C1156F348C3A71F84ED748D8CE7F61C2F01073848BA043CDF4C46B0237C9BF5F7C58A02EE25F1FDADF45E3D5D98F93E2211263E07B368A76A9B8CADC0878C48D591E14693DE1E8D4EFC192B4235CF5F54C191E39EC66C2B59A4B36B4A38961A60D7F20B6B038C50468CF6AB7105EF7C5BB5FDF855C2AB9BE89D39C1C38394701D5EEA1E62FFBC9B41B6B3FB5D9A15316F05AA31FA0791EBE7FEEBBCBF8A1196372196794CA47A9F361AACCFC998CF9273FC3ECE5B38944DD276B0C45C2C97B749B745B84752CCA1F9F8ECFE0041023F8D5455F86745F6D7F0343A7951524F4DF4CC5B9314BF0DF650D43C006A5DD6DCB75761D7603150FDADCDC100C7E84C641157B80B4688C054BAAFB0AC8F79A19728F473D4A6491D8CC940A9985B91F731F79677F30F982F615F5D1E8B710A04A3CEC757477C7903F39BA92A1815571990770813EE970AFB080F0D99D8888B59157900AF8FFC54F117B089A2D9FF99E6B1948A7A2BFA779CD7EED737C911020D2281A833D70A5EAD5A9625786570CD7D4E834F6D6EF5C16DDF88BE427EB417F098532175F7FA1E9858C5C3E75CD5EE8733DB3830116FFF0669FCDD3FC1AAABBD9D65F2FB15AE2D142CCD1452C850FC6B563880E35DA8D6CD937B263699C3B974151AAB748EAB8922B3478531B43B4A505AF8C2DE2A2F660D9A5E37AEFACFB6AFA5D981A8C70A6F04B76197261EBB0FF3328ED056EF9C24AE8754E0A3F42D23D2FF7F6E8566B6D91DEC01DF4C272479593B9A2B6519EC16FFA83CBED670867AEE5D806D75CD6BD4F9BB47E4447A2439619F2EDF1F913632617DF30203AF0251FC82455FA639983E5332E44F9B00BB66AFEC61DC21CBDA5419BCE84FD1FF55F845A9063AC622B451D8465E7E7D893C3565B5DD06E49FE6CCE94F5EDB3EF441EC8AF35FA69681799FFEE9462F3CD7EEB9BE83C411CA2EBECA8A42B8CD5627F6E25A3875A9E12784E259C1844F4B7B3A582147CCE8C32553C25B75CB727758FEF364CB0F687330601B9AC8EABB67B426C1B4348D64B1578E79C09A4C5D971E3D5C4834E4245EC778F05E5423183A9B3415A115B6FA910561C053F41A57C67A23578ED3B45B63BE6433FE51444E0FE2D764FC1655AF28918AAA87FC2F926D01CA76DE6451287ABFC5B3197ED971A0CDBC35F6D39F82F497A7C9C5EBE757E00182941DE76F22CF3BE0D835CA1D60E33B2DEF7AB1D4760DCA69AABBCD9868BD05E748C3D49DC74F2D9BC04E37F676E67BFB086EFB6C6CBF4127EC3011B70A9F483381DEC0018C1A1B3724AAFCEC8A0973BEA7FD31FA7CF50C3FA99C8A8123EF0EF92D4CDA395D1915B02693D375D576DD29AE5280B454537A5B6009AB1137D296C47715398E1038FC0E7F01B2B034FD1361717416E75157D7E5B14C0F3825170708C009B86A25B168935D3C7609F6F47F6F2035C02C78079BD45C6E28C6B71E8C0E539FE8A2C2F58E1B072B0109318E5CE0DC7EB3CAA10EEFA1C5A3711FAD493B5C7EC999D27E657369E439B4D08302B8AEE65F8D73DB79D9DEE1696232359FE7F68D196C683787E278221228D5D7253F0E7278A0947E073ED2AC4559AE65247A98736793B9FBED54D3CBBF8D215D95010FE2BA7F0C6C16F38B7CD152F04BD39BDD681EA7CA6372CF33F1C8AB544D97C03594B2F3DF9B74B889F070CCCBCF7D2CE63A096BEB28785705B74E54139DEF95B0F210C7CFB1E030AB4E39FBD0866BE0DFE4BF6BA43C6EF34D7EEFC770DC76326D0F8289323044C38E78E5D08FDFDE4DAE74B47EA2FD38C2E847340D6D2C5AD71281C8687320CDFFD7DA37F2B1BD7A26D3C6DF60DDE0AD5AFD201C237F203C473417AFF8F551B7D49575A086910D59E65011661FC2EA0F54B5919B26DAE1A1E9B7BD8B46CF984637B9C70DA2C5B6A7297FD6420F16CFEF7F839DC0E97BE8A80729FCF2CEE4E0FFA440B0D36B6828CEBF2618DE96F70340B317D524D0D701BEF4624580BD576C109F46083226AB7B163280B21778F371B32B186EF4005383538E5EFFF8B09EE648E32D79022ED5F305F0262D20A434C7D6463B520430C480800AF5D3E880F133D0781A2C61B358519DE88003B1C843ADE2F1201BA10B83D57255B8EF70663C139B27609240580D4B8168C6AC4F014D6032209928BF5FB65A293F1CACFE3491313DD683040F97452C9C48EFD6365C152A74E94156F8CBA544388FFAD737199D9269D2447821C88133DA943FD56663CE10F2574D53C85190BB7768AFF7189548FE817726C6ED00C43A383C34955CD09443A35326693524F65E94048D9D13740D39D0B27ABB3B111FB0C91779D5913B28E61FFF965999C6662A48A0E4643834F2D6CA8E5098DE1520B5EFCB7B0BD34F36388B5B23A35A7A50B893EECF3CC7396CFF51FE1CDB1C9736C40DB11B2022A65D43FED9189CF9B6D24D88EAA613949425030861FE846CEC72BD5D1329167CB2B134518959485587E18D98ABA1B10095673ED69E1458410337DCE7D02A1CE49116E3959E897033639F56711501298FB4CE63280BFB51188590BAD6654F823CD4E7416EC031DD3268125DB01C2867780427D309208971E6CF9AFED31E91F0C31A6B2EA4F9992BA582CC7D221C55436637FE3145E4CABDB051320BD52CC5805FDCAE119DB659D90EE08F35F4009C9E1B578E863F8720B824134175FC7C757EB0318E0BCFF64DB8EA99D8B7FFE59D19BA0796A3FF94312ED0D26549D6E1E3B2619EA0C4B529B19A9B1CA82740D38437ADD1D6BB0EA4C502774F539F0A34193EA9108D7860CB0800E81B94D0C966F1893D102E91BF22730D7A9B8768C7ABED66016CBC430F00163F5F3B5EBBA2F0EEA0BA8DA054DD18437BD4CA49725FE6FB06F609AC4829B158D4C03A4952A2226F378E50130DA7625021260533393929024CECC98564D0A0F5179E25A444F31B5BCFBEE042C4310816604534B42AE39B0C337A42C4C8F6595A6690FA47D698FCFA8C81A6114AB5149E29A77F57DB5AF5FE974FCA5FD676A1D18E47E983A842ABB4D3A24366993CEC14790B44481DC7B98CD8BF023EB2BC80EC58C6ED80C406C79B89F8003EBE641731864EC091464367A30405B7406713805F60038037B94D403181E2CE30EA92EB1F1405ED43DB6704BE529F94B3FA130EB13E31554788FC996D08AE2B50CDB2CE06EE60AFD6E404863069CB7229041A9A00BCA53347BAC08C2A60BDC708916ACCA8176AF5C30C80E3501A98AC99535A0324E8C9AE9BE365C64212677CF11F7897F852A8F240135F9F7622BAEC84B962285E65503BDA3BD0E5D674EE36B54C9EAC921EE7EF6A7C8E169D14D034223CD55AB82BAA1700467C42FD7954148032D919E9C00E247A26364046F09E86CB9E24B48D7EEE1949E698B0731033C79022715A5B3ACEF98DD3AB4E6E0F9F32C0BB563C31C1D9F700694623BB6881C184B1BFDBB2FDE4552DA930FD0B7A247DC121884709258EA5EF46EE15D4A5BF1F37A274432AE1CA0A54FE12B43CA9D49EC25F300CD3021DCC4BC651265F7C2FB4F61941B360A70371F4EB3CBA13480CF3C5B1B28C3E59FC8F6F0990C46F033E2643736C00DE293FB65ACFB9AD54BEAAD5B4B2EF47CEC5C8D804EA198646E61BCB3E0E3A6AE1F63834470F228740D0C12EB4860A5A962BCB74D62C66EDE2A2AC5E845EB6A23BF6726B027ECA8C599719E43C910BFBA285FD0AD1E5184623A1B47691C3105D5906DA48EA8D929EA89A4801CA3D2586CF4A84732C0750A94B1D489F9C6C3205BE384E0CCBD41D70B1D198A1AEC92B7133551E7948932A900494B61154C4A86DCCF37DE4BE3D6A6E7508AA288A3C1E627CB942CD11E8FE27A75E070686B90846A6AC7F460CECA0FD032A23DA8730B11CA3D417565FFC1C82B23F1AA0432037911B27A04468EE14BB69928074E834EF5ABAB3110EC3E7DEE90700004941525408000000756E6B6E6F776E0049434F5005000000323031300000494E414D09000000796F73656D6974650000 0 0 0 0 0 0 0 0 0 (NULL) 1 libspatialite-4.1.1/test/check_gpkgGetImageFormat_webp.c0000664000175000017500000001066012163502133020266 00000000000000/* check_gpkgGetImageFormat_webp.c - Test case for GeoPackage Extensions Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Brad Hards Portions created by the Initial Developer are Copyright (C) 2012 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #include "test_helpers.h" int main (int argc UNUSED, char *argv[] UNUSED) { sqlite3 *db_handle = NULL; char *sql_statement; sqlite3_stmt *stmt; int ret; void *cache = spatialite_alloc_connection(); char *old_SPATIALITE_SECURITY_ENV = NULL; #ifdef _WIN32 char *env; #endif /* not WIN32 */ old_SPATIALITE_SECURITY_ENV = getenv("SPATIALITE_SECURITY"); #ifdef _WIN32 putenv("SPATIALITE_SECURITY=relaxed"); #else /* not WIN32 */ setenv("SPATIALITE_SECURITY", "relaxed", 1); #endif ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); // For debugging / testing if required // ret = sqlite3_open_v2 ("check_gpkgGetImageFormat_webp.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); spatialite_init_ex(db_handle, cache, 0); if (old_SPATIALITE_SECURITY_ENV) { #ifdef _WIN32 env = sqlite3_mprintf("SPATIALITE_SECURITY=%s", old_SPATIALITE_SECURITY_ENV); putenv(env); sqlite3_free(env); #else /* not WIN32 */ setenv("SPATIALITE_SECURITY", old_SPATIALITE_SECURITY_ENV, 1); #endif } else { #ifdef _WIN32 putenv("SPATIALITE_SECURITY="); #else /* not WIN32 */ unsetenv("SPATIALITE_SECURITY"); #endif } if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } sql_statement = "SELECT gpkgGetImageType(BlobFromFile(\"test.webp\"))"; ret = sqlite3_prepare_v2 (db_handle, sql_statement, strlen(sql_statement), &stmt, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "failed to prepare SQL statement: %i (%s)\n", ret, sqlite3_errmsg(db_handle)); return -30; } ret = sqlite3_step (stmt); if (ret != SQLITE_ROW) { fprintf(stderr, "unexpected return value for first step: %i\n", ret); return -31; } if (sqlite3_column_type (stmt, 0) != SQLITE_TEXT) { fprintf(stderr, "bad type for column 0: %i\n", sqlite3_column_type (stmt, 0)); return -32; } if (strcmp((const char*)sqlite3_column_text(stmt, 0), "x-webp") != 0) { fprintf(stderr, "wrong image type: %s\n", sqlite3_column_text(stmt, 0)); return -33; } ret = sqlite3_step(stmt); if (ret != SQLITE_DONE) { fprintf(stderr, "unexpected return value for second step: %i\n", ret); return -34; } ret = sqlite3_finalize (stmt); ret = sqlite3_close (db_handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle)); return -200; } spatialite_cleanup_ex(cache); return 0; } libspatialite-4.1.1/test/check_point_to_tile_broken_srid.c0000664000175000017500000002061112163502133020773 00000000000000/* check_point_to_tile_broken_srid.c - Test case for GeoPackage Extensions Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Brad Hards Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #include #include "test_helpers.h" int main (int argc UNUSED, char *argv[] UNUSED) { sqlite3 *db_handle = NULL; char *sql_statement; sqlite3_stmt *stmt; int ret; char *err_msg = NULL; void *cache = spatialite_alloc_connection(); char *old_SPATIALITE_SECURITY_ENV = NULL; #ifdef _WIN32 char *env; #endif /* not WIN32 */ old_SPATIALITE_SECURITY_ENV = getenv("SPATIALITE_SECURITY"); #ifdef _WIN32 putenv("SPATIALITE_SECURITY=relaxed"); #else /* not WIN32 */ setenv("SPATIALITE_SECURITY", "relaxed", 1); #endif ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); // For debugging / testing if required // ret = sqlite3_open_v2 ("check_point_to_tile.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); spatialite_init_ex(db_handle, cache, 0); if (old_SPATIALITE_SECURITY_ENV) { #ifdef _WIN32 env = sqlite3_mprintf("SPATIALITE_SECURITY=%s", old_SPATIALITE_SECURITY_ENV); putenv(env); sqlite3_free(env); #else /* not WIN32 */ setenv("SPATIALITE_SECURITY", old_SPATIALITE_SECURITY_ENV, 1); #endif } else { #ifdef _WIN32 putenv("SPATIALITE_SECURITY="); #else /* not WIN32 */ unsetenv("SPATIALITE_SECURITY"); #endif } if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } /* Create the base tables */ ret = sqlite3_exec (db_handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf(stderr, "Unexpected InitSpatialMetadata result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -2; } ret = sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf(stderr, "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -3; } /* create a target table */ ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS test1_tiles", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP test1_tiles error: %s\n", err_msg); sqlite3_free (err_msg); return -10; } ret = sqlite3_exec (db_handle, "CREATE TABLE test1_tiles (id INTEGER PRIMARY KEY AUTOINCREMENT, zoom_level INTEGER NOT NULL DEFAULT 0, tile_column INTEGER NOT NULL DEFAULT 0, tile_row INTEGER NOT NULL DEFAULT 0, tile_data BLOB NOT NULL DEFAULT (zeroblob(4)))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE mytable_tiles error: %s\n", err_msg); sqlite3_free (err_msg); return -11; } /* add in some test entries */ ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (1, 0, 0, 0, BlobFromFile('tile000.jpeg'))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT level0 error: %s\n", err_msg); sqlite3_free (err_msg); return -12; } ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (2, 1, 0, 0, BlobFromFile('tile100.jpeg'))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT level1 error: %s\n", err_msg); sqlite3_free (err_msg); return -13; } ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (3, 1, 0, 1, BlobFromFile('tile101.jpeg'))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT level1 error: %s\n", err_msg); sqlite3_free (err_msg); return -14; } ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (4, 1, 1, 1, BlobFromFile('tile111.jpeg'))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT level1 error: %s\n", err_msg); sqlite3_free (err_msg); return -15; } ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS test1_tiles_rt_metadata", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP test1_tiles_rt_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -16; } ret = sqlite3_exec (db_handle, "CREATE TABLE test1_tiles_rt_metadata (id INTEGER PRIMARY KEY AUTOINCREMENT, min_x DOUBLE NOT NULL DEFAULT -180.0, min_y DOUBLE NOT NULL DEFAULT -90.0, max_x DOUBLE NOT NULL DEFAULT 180.0, max_y DOUBLE NOT NULL DEFAULT 90.0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE test1_tiles_rt_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -17; } ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles_rt_metadata (id, min_x, min_y, max_x, max_y) VALUES (1, -180.0, -90.0, 180.0, 90.0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT level0 _rt_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -18; } ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles_rt_metadata (id, min_x, min_y, max_x, max_y) VALUES (2, -180.0, 0.0, 0.0, 90.0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT level1 (0,0) _rt_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -19; } /* Deliberately skip 3 */ ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles_rt_metadata (id, min_x, min_y, max_x, max_y) VALUES (4, 0.0, -90.0, 180.0, 0.0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT level1 (1,1) _rt_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -20; } /* try gpkgPointToTile normal operation, but there is no raster_columns entry for test1_tiles */ sql_statement = "SELECT gpkgPointToTile(\"test1_tiles\", 4326, 20.0, -30.0, 1), BlobFromFile(\"tile111.jpeg\")"; ret = sqlite3_prepare_v2 (db_handle, sql_statement, strlen(sql_statement), &stmt, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "failed to prepare SQL statement: %i (%s)\n", ret, sqlite3_errmsg(db_handle)); return -30; } ret = sqlite3_step (stmt); if (ret != SQLITE_ERROR) { fprintf(stderr, "unexpected return value for first step: %i (%s)\n", ret, sqlite3_errmsg(db_handle)); return -31; } ret = sqlite3_finalize (stmt); ret = sqlite3_close (db_handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle)); return -100; } spatialite_cleanup_ex(cache); return 0; } libspatialite-4.1.1/test/check_point_to_tile_broken_geopackage2.c0000664000175000017500000002222712163502133022207 00000000000000/* check_point_to_tile_broken_geopackage2.c - Test case for GeoPackage Extensions Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Brad Hards Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #include #include "test_helpers.h" int main (int argc UNUSED, char *argv[] UNUSED) { sqlite3 *db_handle = NULL; char *sql_statement; sqlite3_stmt *stmt; int ret; void *cache = spatialite_alloc_connection(); char *err_msg = NULL; #ifdef _WIN32 char *env; #endif /* not WIN32 */ char *old_SPATIALITE_SECURITY_ENV = NULL; old_SPATIALITE_SECURITY_ENV = getenv("SPATIALITE_SECURITY"); #ifdef _WIN32 putenv("SPATIALITE_SECURITY=relaxed"); #else /* not WIN32 */ setenv("SPATIALITE_SECURITY", "relaxed", 1); #endif ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); // For debugging / testing if required // ret = sqlite3_open_v2 ("check_point_to_tile_broken_geopackage.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); spatialite_init_ex(db_handle, cache, 0); if (old_SPATIALITE_SECURITY_ENV) { #ifdef _WIN32 env = sqlite3_mprintf("SPATIALITE_SECURITY=%s", old_SPATIALITE_SECURITY_ENV); putenv(env); sqlite3_free(env); #else /* not WIN32 */ setenv("SPATIALITE_SECURITY", old_SPATIALITE_SECURITY_ENV, 1); #endif } else { #ifdef _WIN32 putenv("SPATIALITE_SECURITY="); #else /* not WIN32 */ unsetenv("SPATIALITE_SECURITY"); #endif } if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } /* Create the base tables */ ret = sqlite3_exec (db_handle, "SELECT InitSpatialMetadata(1, 'WGS84')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf(stderr, "Unexpected InitSpatialMetadata result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -2; } ret = sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf(stderr, "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -3; } /* corrupt the raster_columns table */ ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS raster_columns", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP raster_columns error: %s\n", err_msg); sqlite3_free (err_msg); return -4; } ret = sqlite3_exec (db_handle, "CREATE TABLE raster_columns (r_table_name TEXT NOT NULL, r_raster_column TEXT NOT NULL, srid BLOB)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE raster_columns error: %s\n", err_msg); sqlite3_free (err_msg); return -5; } ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS test1_tiles", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP test1_tiles error: %s\n", err_msg); sqlite3_free (err_msg); return -10; } // Didn't use NOT NULL for the tile_data ret = sqlite3_exec (db_handle, "CREATE TABLE test1_tiles (id INTEGER PRIMARY KEY AUTOINCREMENT, zoom_level INTEGER NOT NULL DEFAULT 0, tile_column INTEGER NOT NULL DEFAULT 0, tile_row INTEGER NOT NULL DEFAULT 0, tile_data BLOB DEFAULT (zeroblob(4)))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE mytable_tiles error: %s\n", err_msg); sqlite3_free (err_msg); return -11; } /* add in some test entries */ ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (1, 0, 0, 0, BlobFromFile('tile000.jpeg'))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT level0 error: %s\n", err_msg); sqlite3_free (err_msg); return -12; } ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (2, 1, 0, 0, BlobFromFile('tile100.jpeg'))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT level1 error: %s\n", err_msg); sqlite3_free (err_msg); return -13; } ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (3, 1, 0, 1, BlobFromFile('tile101.jpeg'))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT level1 error: %s\n", err_msg); sqlite3_free (err_msg); return -14; } ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (4, 1, 1, 1, 42)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT level1 error: %s\n", err_msg); sqlite3_free (err_msg); return -15; } ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS test1_tiles_rt_metadata", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP test1_tiles_rt_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -16; } ret = sqlite3_exec (db_handle, "CREATE TABLE test1_tiles_rt_metadata (id INTEGER PRIMARY KEY AUTOINCREMENT, min_x DOUBLE NOT NULL DEFAULT -180.0, min_y DOUBLE NOT NULL DEFAULT -90.0, max_x DOUBLE NOT NULL DEFAULT 180.0, max_y DOUBLE NOT NULL DEFAULT 90.0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE test1_tiles_rt_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -17; } ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles_rt_metadata (id, min_x, min_y, max_x, max_y) VALUES (1, -180.0, -90.0, 180.0, 90.0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT level0 _rt_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -18; } ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles_rt_metadata (id, min_x, min_y, max_x, max_y) VALUES (2, -180.0, 0.0, 0.0, 90.0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT level1 (0,0) _rt_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -19; } ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles_rt_metadata (id, min_x, min_y, max_x, max_y) VALUES (4, 0.0, -90.0, 180.0, 0.0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT level1 (1,1) _rt_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -20; } ret = sqlite3_exec (db_handle, "INSERT INTO raster_columns VALUES (\"test1_tiles\", \"tile_data\", zeroblob(40))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT raster_columns row error: %s\n", err_msg); sqlite3_free (err_msg); return -21; } /* try gpkgPointToTile with bad tile_data */ sql_statement = "SELECT gpkgPointToTile(\"test1_tiles\", 4326, 20.0, -30.0, 1)"; ret = sqlite3_prepare_v2 (db_handle, sql_statement, strlen(sql_statement), &stmt, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "failed to prepare SQL statement: %i (%s)\n", ret, sqlite3_errmsg(db_handle)); return -30; } ret = sqlite3_step (stmt); if (ret != SQLITE_ERROR) { fprintf(stderr, "unexpected return value for first step: %i\n", ret); return -31; } ret = sqlite3_finalize (stmt); ret = sqlite3_close (db_handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle)); return -100; } spatialite_cleanup_ex(cache); return 0; } libspatialite-4.1.1/test/tile000.jpeg0000664000175000017500000002166112163502134014274 00000000000000JFIFC  !"$"$C" 9yAxDIr! +,5EҊ )/n  `"hϧNYlh%0 0BYIqдJiӔ%9\N&!"PDLTm@<яLՐ5,rU rO 7j_>M ~]%VqC=O ;Vssfz-^[/랓YG&fhW'L.kNmUQB-jcNĝ85z/qɿ:EFITՋKOk6]a#_RgWgXck\I *YLxR/}.dRu <])uYl:Ž3垼\>>\+˺32<<_}gE'SI!0Iؔ ^T1}) P^[.Wc#f<3wf+ ޠ*LL'{Cύhyt=ngźaǷ nX41i@XXqϏӍRc|6+{`C3cƧCW(Ԯsshz̤"N±58>f*/i2gĤa#bǵZ^0AhF;JA% Jl8MW"StSǭa@F`!?U "ҧcV}}} *҂q)"1 Iox>^ D$ w/?rD)'0tj_>De/B/Kg2c80?G1dY*O" γ"ZW.20Z8Ӆ 87,:Bmө۳Fպ6 B ihZ2;6MtF=z\nf@'l&qtf 'I@+űrfLsPg3Lh TơV.\ƽZ5|w#06ݱӮ;hΔ?^\0W'ij\q&Z0 kGgA K-}u_L_Zw!s5z3%Q#J&qL*1! 02A"@QaPqB`?H_$rG$rG$rB#9!| H_$/9#9#9#9#9!|/vS҅qՋlYC\:enp]m R :T}PR9~=H*!v=P:.-Ta =CҐ%W Z]l~SG>ɶ OQEZO~Fs:h.h hevm ;0G\$=GҎfFO6dCF=5Uv3UjFbuU6f\chv!UV ηRG3jKfFHuQ03\S(άYU Sҹ~73`ɰ㯵H;fߜ:u_fgi-:T_6F] {`PV+D[\Qj_r:'DI8I$I$I$I$*!1AQ a0q@P?!3W򽧝P)<0_y&xCpP\ 5Ӡj@ij?(᡾دi`ԫei6T-'d' a5K*gvڟS=D] G ^\nm.cyc7:ǦI-PCp\t:7ѶM)pYJ[ =/ٗ[Ƴ cbnfgx\5.b[:iF0X?ԳeV\nX%MG1T *0=tS}X,tJwx`әfZc9R BB%,,PޙALv+cIS |%3A/0$+K1>z h+YuaM# P:`sd ")P9 mBM QGQKJo&Øڃ6 ,иΉ|VYWs:tEFx:#%@:n+QV< PR-9GJFǔ>J!y[BV1@fjtS@4{i+\9e2RzAPΒ%<@s߉ RFZKzG O b[w(;cFu !QJxe<}֚yc,[5+'z-`NUTo ȳ-p֓3}uE2WEi&&fvo{ \X֣uL2 G Ga0&n0Qoi64 C,xHVt=z :3 !lU)ɘd%t꾬]h"7|ȵ{v]l7YG z:hpTN;|t=mU)Aʄ b\Aәb & f9QlU|)rAD0KhDAF-2QML<UJ_MGKQ'Qy1M)p:*«p-,Pܓ\a[*Aˌgn}8Y0^j P.Bpi*fY1f> $ߤ$knGއ X$mBCW A,9%AdD H] JxdI\1F '|!`/M֢0S ciTQ$APaA @A3aʷw. \B:B߁B^]^"Wf G.} !1 AQaq@?x/HEb^Tu(Ƈ=R}@1I%BűHkPPet䩖bUH׸TJ8/{[@j%&9Qƛ0˾ஓ&VUkQ>{$I.Agaul7TT*FDs"J8;.\ӒSMF/>kՃdټK^QoJ4y 41~A:$ Ak:2\9. aKhO鄿&Q9^ܼ&!1 AQa0q@?PR8QeMRlA73ŗFReƍG*%mh5o3z2:r#.(#nKy36S6Ī:aE&*j:^;wn'378 )+~#5^"H6p^;)]8ӟp\>ܠ50[{J;yi4ߞ<-;߅q,9ϓ9+Z_Qƫ3qpq*ssO5/0% K*aAP휲|x 4&WCAEc)}Ru oFΡfR7'R/5L`ȡdÙ!ļeKq>*Xn6c8Sq"w5wH4Zl6;9(X)  #E tEpu. L*jnIM]nB*Dzawu8eЊ+Ri6@ W5]F20-U/Zg}O"8CrH+KFYJW3n=LH/`2֔QpгqK%,-rMr,Uy!P,XfCS4,ЂᵬY穘?yZ rK~rF'B-pUnt"35C7 A1ǩU G e䂰3iW̿A67QFA'H[(']F %KZr gK҄Y5M %[+b; +Ѵ=Q+zJ *Z(Ъj5baP* 5onrp.(Cop;ߺE #]0<əͿDaНF ekJc@\df-@p] F9_ۗP UeIPEcr@iJb*2 O0l`*'s@S9g2/Nm;v.`iu n2)r=gce~S4ExFޗAR 8j~EzL8hF*>HcmL%yϩcX.[_|F]ݨyf$7 )*dkj [ eʬ^kQԻ#dDjQ"ݙH<_G^U9||xlk1$Ef4I$Gmp)l_* 'D* =˖EL2QV՗{%42FF/}@u|YKQ5/P+OH%6OD~%gx U徫K3ihT$b6~HӔW*&>925J46#I G+ S@QJ5麗Lb#ĥ^niwFK.0ʋ@3ŊZ˪ Qp˵Ԥ<\`C*z/eSFe+L߇u DG jZ`& cep0A, TJa.Ӏ2/Ĥ^SaP6Q D JtɽC  Y03{_W3}gOSng^w[.9 ]1J%Z[|{d*fXbC_V/(n}hkIm nW $GSh,+j˻w"G#3{Ai~@hA-^6ǯ-<\Xۘh9j 7~;xeh+w/jK0"[қtpq _TaqѨ:2~ Q:=Kb W1}%{ps /tUZw!TTThr!o>]q=t2qar.)m}|EF0m5Ms F*Կš l7`f F$(% -«Z̢> ʕ-ԫ*SB!+s)88*nL}k5|ܨ54+2j`ϟ^7O>92h p1e~cbj!TG^<91>1σ_x>/,|5^3Ss ~8ߊV* ;GW>oSH3Xf2\B!]4635lЯES%ςfj}e>3ߊ@ "7ܿy]LFڋ[85 )H1S(H5ɁJ`96)rB"6J>00V48˩ 丵z2Un?cY7 7}o`W/QW?0;aQU5(EV Z'h 0ЃoQR^^9"Rnua1h0\ϸ\~<0Q,q,߀ U(vY,:\n[+UnҎ9 ,3Hk2tn$M1 maH@EKK@+B?Y *PB DpA0;NJ C*]% wF\E 5^\){ +(d%tTnSۖˍAoB/1(ͦ1i}-\خA3`Mnz ]԰>abn\f`V1pz"\ߟ ĦE04)qCpy X+lrT:=3 O8Gܿ`K,AD"8}+Ftt:hn~Ge(sP5#,-Ulibspatialite-4.1.1/test/test.webp0000664000175000017500000001150012163502134014075 00000000000000RIFF8WEBPVP8 >*/'Ug*Ng7݌9Sn +/׭}s_YZ?e:_moP^[{2aO~uKgoߘ$O_?{^=̷"$їw/2 n1hܟmx0K=qF YAbևu"[1Ъ2+!Ouf"$cn.ѽys/"UJ?.\6l-0FtD0aC `9mNn!믂&swfDhp21a ,uZ(' pN4oLBj]~P:MXu=Cfs={!]pzt|^iɼ/,i pO~>#4@Fus? TT(Q9:XivoҵT ;%ǡ-N,v'LV#?evo YmIiU;}-Fb0{572F0JM6upbuapk}9,ʍ؊[SƟ9eug/^fO+XW<aNfv{aD/,M!Y`uL "5j[*\ر>8Qz=4tu 2{=/wW*\Gu1[c%Mr6?D5}b*s;[={eqV PZXҟAxzUh.r FOQM4 'WX-̫jj؂ꗊm0JzUegIDw5&Sooy\mE-B~^,.uޚ_WJ[$_“ĹC6k _~#Ԓ 9C4e v\]Vt?ӟ5 )9rej^JhMD%XqozxcBόBt2,ȍiF@Q!)JI"hwg,wSSVX@ˑ7;h}M CX9}q\G}1tnM/%m(.uA%f>a !Am*gv/-rzQB4{H:pcT:)m.oZ61 qCr)ss;1Moo( ZC6EfƫO ^|{i`s `*4qY:?殄= W 念o*e q&{})%ZӇAD?f@<=f8T0D,N c獆Fu]rutMK%:B~FPGYNkl}*I[xDgTO1\&h Vbh^=Gڙ>d,C װD}FxleJBFEVŒWĮZt0e.Kv%zq\KKrhO^l""&>hjHՑFN+B5_Tl+YkJ8` kPFq|[U«9Ãp^bA]1o1뼿7!yLz6ɘϒs>[8Mv\,IEGR̡A?TUgE4:yQROM[ P<j]ܷWa`1PLdW FTy(sԦI@[1w/a_]q WG|y*Ww  ؈YyT汔z+w7 "3 ^Z%xep}NOmnm߈B~S!uX\380oi?e-,RPkV8]͓{&6ùtt"G1;JPZ*/f ^7϶ف oa&2V$T-#nfL'$yY;+eS2Ofa!TOUE:"QF^~}<5eO^>A_yF/<.ʊBV'Z8u'YOK{:X!G%S[urwXdhs0`g&4dWyL]=\H4$^x^T#:4aSWz#WӴ[cd3QDNdU(/mvdQ(zų~qͼ5ӟWo";5`;-zv i͘hHԝO-N7v{nllA'0 H37$ s1| ?#-L9]&uv)RTSz[` 7Җw984aqtQWL8% j%h]ҬEYe$zsgT˿!] l|RKӛhcr3ȫTM5ߛtp},: k(xWNTϱ0N9Іkk֞XA7*㕞p3cVq)c( QeOx`f=."s zhǫflC?_;^TC{Ir_ H)X:IR"o7P bP!&399)LɅdР%D[ϾB1`E4* 3zBYZfG֘J)WZO_vюG部BӢCf<y DHǹؿ>XǛ>d1NFCg@g_`7M@10CgR>1UGm+PͲ`0ir)3G*`j̨j PSZ$ɮeBg|xR@_v"섹b(^eP;;t6Lj|4"Yo o>&Csl)?ZϹTմGF>:j84G"@. Z+t,f⢬^^;rk~ʌY< F#v]YHꍒH=%Js,PKHl28N pј+q3UyH*TĨm}=jnu(<b|B'^FF *#ڇ0V_?C 7'Dhit4ZIARTunknownICOP2010INAM yosemitelibspatialite-4.1.1/test/sql_stmt_xmlsec_tests/0000775000175000017500000000000012163503232016765 500000000000000libspatialite-4.1.1/test/sql_stmt_xmlsec_tests/loadxml4.testcase0000664000175000017500000000025412163502134022167 00000000000000XB_LoadXML - BLOB input :memory: #use in-memory database SELECT XB_LoadXML(zeroblob(4)); 1 # rows (not including the header row) 1 # columns XB_LoadXML(zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_xmlsec_tests/loadxml3.testcase0000664000175000017500000000023612163502134022166 00000000000000XB_LoadXML - DOUBLE input :memory: #use in-memory database SELECT XB_LoadXML(1.1); 1 # rows (not including the header row) 1 # columns XB_LoadXML(1.1) (NULL) libspatialite-4.1.1/test/sql_stmt_xmlsec_tests/Makefile.am0000664000175000017500000000076112163502134020745 00000000000000 EXTRA_DIST = loadxml1.testcase \ loadxml2.testcase \ loadxml3.testcase \ loadxml4.testcase \ loadxml5.testcase \ loadxml6.testcase \ storexml10.testcase \ storexml11.testcase \ storexml12.testcase \ storexml13.testcase \ storexml14.testcase \ storexml15.testcase \ storexml16.testcase \ storexml1.testcase \ storexml2.testcase \ storexml3.testcase \ storexml4.testcase \ storexml5.testcase \ storexml6.testcase \ storexml7.testcase \ storexml8.testcase \ storexml9.testcase libspatialite-4.1.1/test/sql_stmt_xmlsec_tests/storexml15.testcase0000664000175000017500000000037012163502134022465 00000000000000XB_LoadXML - valid BLOB payload, DOUBLE path :memory: #use in-memory database SELECT XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), 1.1); 1 # rows (not including the header row) 1 # columns XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), 1.1); -1 libspatialite-4.1.1/test/sql_stmt_xmlsec_tests/storexml8.testcase0000664000175000017500000000046612163502134022415 00000000000000XB_LoadXML - valid BLOB payload, TEXT indent :memory: #use in-memory database SELECT XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), 'xml-test-out-indent.xml', 'alpha'); 1 # rows (not including the header row) 1 # columns XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), 'xml-test-out-indent.xml', 'alpha'); -1 libspatialite-4.1.1/test/sql_stmt_xmlsec_tests/storexml5.testcase0000664000175000017500000000033412163502134022404 00000000000000XB_LoadXML - invalid BLOB payload :memory: #use in-memory database SELECT XB_StoreXML(zeroblob(4), 'xml-test-out.xml'); 1 # rows (not including the header row) 1 # columns XB_StoreXML(zeroblob(4), 'xml-test-out.xml'); 0 libspatialite-4.1.1/test/sql_stmt_xmlsec_tests/storexml16.testcase0000664000175000017500000000040612163502134022466 00000000000000XB_LoadXML - valid BLOB payload, BLOB path :memory: #use in-memory database SELECT XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), zeroblob(4)); 1 # rows (not including the header row) 1 # columns XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), zeroblob(4)); -1 libspatialite-4.1.1/test/sql_stmt_xmlsec_tests/storexml1.testcase0000664000175000017500000000030712163502134022400 00000000000000XB_LoadXML - NULL payload :memory: #use in-memory database SELECT XB_StoreXML(NULL, 'xml-test-out.xml'); 1 # rows (not including the header row) 1 # columns XB_StoreXML(NULL, 'xml-test-out.xml'); -1 libspatialite-4.1.1/test/sql_stmt_xmlsec_tests/storexml3.testcase0000664000175000017500000000030412163502134022377 00000000000000XB_LoadXML - INTEGER payload :memory: #use in-memory database SELECT XB_StoreXML(1, 'xml-test-out.xml'); 1 # rows (not including the header row) 1 # columns XB_StoreXML(1, 'xml-test-out.xml'); -1 libspatialite-4.1.1/test/sql_stmt_xmlsec_tests/storexml10.testcase0000664000175000017500000000047612163502134022467 00000000000000XB_LoadXML - valid BLOB payload, BLOB indent :memory: #use in-memory database SELECT XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), 'xml-test-out-indent.xml', zeroblob(4)); 1 # rows (not including the header row) 1 # columns XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), 'xml-test-out-indent.xml', zeroblob(4)); -1 libspatialite-4.1.1/test/sql_stmt_xmlsec_tests/loadxml5.testcase0000664000175000017500000000032412163502134022166 00000000000000XB_LoadXML - filepath input - invalid :memory: #use in-memory database SELECT XB_LoadXML('not-existing-books.xml'); 1 # rows (not including the header row) 1 # columns XB_LoadXML('not-existing-books.xml') (NULL) libspatialite-4.1.1/test/sql_stmt_xmlsec_tests/loadxml6.testcase0000664000175000017500000000316112163502134022171 00000000000000XB_LoadXML - filepath input - valid :memory: #use in-memory database SELECT Hex(XB_LoadXML('books.xml')); 1 # rows (not including the header row) 1 # columns Hex(XB_LoadXML('books.xml')) 3C3F786D6C2076657273696F6E3D22312E302220656E636F64696E673D227574662D38223F3E0A3C426F6F6B7320786D6C6E733A7873693D22687474703A2F2F7777772E77332E6F72672F323030312F584D4C536368656D612D696E7374616E636522207873693A6E6F4E616D657370616365536368656D614C6F636174696F6E3D22626F6F6B732E787364223E3C617574686F722066697273744E616D653D22436861726C657322206C6173744E616D653D224469636B656E73223E0A3C7469746C653E546865205069636B7769636B205061706572733C2F7469746C653E3C7469746C653E4F6C697665722054776973743C2F7469746C653E3C7469746C653E446176696420436F707065726669656C643C2F7469746C653E0A3C7469746C653E41204368726973746D6173204361726F6C3C2F7469746C653E3C7469746C653E486172642054696D65733C2F7469746C653E3C2F617574686F723E0A3C617574686F722066697273744E616D653D224E617468616E69656C22206C6173744E616D653D2248617774686F726E65223E3C7469746C653E54686520536361726C6574204C65747465723C2F7469746C653E3C2F617574686F723E0A3C617574686F722066697273744E616D653D2257696C6C69616D204D616B65706561636522206C6173744E616D653D22546861636B65726179223E3C7469746C653E56616E69747920466169723C2F7469746C653E0A3C7469746C653E546865204C75636B206F66204261727279204C796E646F6E3C2F7469746C653E3C2F617574686F723E3C617574686F722066697273744E616D653D224A6F7365706822206C6173744E616D653D22436F6E726164223E0A3C7469746C653E4C6F7264204A696D3C2F7469746C653E3C7469746C653E54686520536563726574204167656E743C2F7469746C653E3C7469746C653E4865617274206F66204461726B6E6573733C2F7469746C653E0A3C2F617574686F723E3C2F426F6F6B733E0A libspatialite-4.1.1/test/sql_stmt_xmlsec_tests/storexml14.testcase0000664000175000017500000000036512163502134022470 00000000000000XB_LoadXML - valid BLOB payload, INTEGER path :memory: #use in-memory database SELECT XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), 1); 1 # rows (not including the header row) 1 # columns XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), 1); -1 libspatialite-4.1.1/test/sql_stmt_xmlsec_tests/storexml13.testcase0000664000175000017500000000037012163502134022463 00000000000000XB_LoadXML - valid BLOB payload, NULL path :memory: #use in-memory database SELECT XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), NULL); 1 # rows (not including the header row) 1 # columns XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), NULL); -1 libspatialite-4.1.1/test/sql_stmt_xmlsec_tests/storexml2.testcase0000664000175000017500000000031512163502134022400 00000000000000XB_LoadXML - TEXT payload :memory: #use in-memory database SELECT XB_StoreXML('alpha', 'xml-test-out.xml'); 1 # rows (not including the header row) 1 # columns XB_StoreXML('alpha', 'xml-test-out.xml'); -1 libspatialite-4.1.1/test/sql_stmt_xmlsec_tests/Makefile.in0000664000175000017500000002565712163502134020771 00000000000000# Makefile.in generated by automake 1.12.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = test/sql_stmt_xmlsec_tests DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = loadxml1.testcase \ loadxml2.testcase \ loadxml3.testcase \ loadxml4.testcase \ loadxml5.testcase \ loadxml6.testcase \ storexml10.testcase \ storexml11.testcase \ storexml12.testcase \ storexml13.testcase \ storexml14.testcase \ storexml15.testcase \ storexml16.testcase \ storexml1.testcase \ storexml2.testcase \ storexml3.testcase \ storexml4.testcase \ storexml5.testcase \ storexml6.testcase \ storexml7.testcase \ storexml8.testcase \ storexml9.testcase all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/sql_stmt_xmlsec_tests/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign test/sql_stmt_xmlsec_tests/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags: TAGS TAGS: ctags: CTAGS CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libspatialite-4.1.1/test/sql_stmt_xmlsec_tests/loadxml2.testcase0000664000175000017500000000023312163502134022162 00000000000000XB_LoadXML - INTEGER input :memory: #use in-memory database SELECT XB_LoadXML(1); 1 # rows (not including the header row) 1 # columns XB_LoadXML(1) (NULL) libspatialite-4.1.1/test/sql_stmt_xmlsec_tests/storexml9.testcase0000664000175000017500000000046012163502134022410 00000000000000XB_LoadXML - valid BLOB payload, DOUBLE indent :memory: #use in-memory database SELECT XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), 'xml-test-out-indent.xml', 1.5); 1 # rows (not including the header row) 1 # columns XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), 'xml-test-out-indent.xml', 1.5); -1 libspatialite-4.1.1/test/sql_stmt_xmlsec_tests/storexml6.testcase0000664000175000017500000000043212163502134022404 00000000000000XB_LoadXML - valid BLOB payload :memory: #use in-memory database SELECT XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), 'xml-test-out-noindent.xml'); 1 # rows (not including the header row) 1 # columns XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), 'xml-test-out-noindent.xml'); 1 libspatialite-4.1.1/test/sql_stmt_xmlsec_tests/storexml11.testcase0000664000175000017500000000044412163502134022463 00000000000000XB_LoadXML - valid BLOB payload, indent :memory: #use in-memory database SELECT XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), 'xml-test-out-indent.xml', 8); 1 # rows (not including the header row) 1 # columns XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), 'xml-test-out-indent.xml', 8); 1 libspatialite-4.1.1/test/sql_stmt_xmlsec_tests/storexml12.testcase0000664000175000017500000000046312163502134022465 00000000000000XB_LoadXML - valid BLOB payload, zero-indent :memory: #use in-memory database SELECT XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), 'xml-test-out-zero-indent.xml', 0); 1 # rows (not including the header row) 1 # columns XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), 'xml-test-out-zero-indent.xml', 0); 1 libspatialite-4.1.1/test/sql_stmt_xmlsec_tests/loadxml1.testcase0000664000175000017500000000023612163502134022164 00000000000000XB_LoadXML - NULL input :memory: #use in-memory database SELECT XB_LoadXML(NULL); 1 # rows (not including the header row) 1 # columns XB_LoadXML(NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_xmlsec_tests/storexml4.testcase0000664000175000017500000000030712163502134022403 00000000000000XB_LoadXML - DOUBLE payload :memory: #use in-memory database SELECT XB_StoreXML(1.2, 'xml-test-out.xml'); 1 # rows (not including the header row) 1 # columns XB_StoreXML(1.2, 'xml-test-out.xml'); -1 libspatialite-4.1.1/test/sql_stmt_xmlsec_tests/storexml7.testcase0000664000175000017500000000046012163502134022406 00000000000000XB_LoadXML - valid BLOB payload, NULL indent :memory: #use in-memory database SELECT XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), 'xml-test-out-indent.xml', NULL); 1 # rows (not including the header row) 1 # columns XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), 'xml-test-out-indent.xml', NULL); -1 libspatialite-4.1.1/test/linked.dxf0000664000175000017500000017710012163502133014220 00000000000000 0 SECTION 2 HEADER 9 $ACADVER 1 AC1015 9 $ACADMAINTVER 70 20 9 $DWGCODEPAGE 3 ANSI_1252 9 $INSBASE 10 0.0 20 0.0 30 0.0 9 $EXTMIN 10 672969.77 20 4860404.25 30 0.0 9 $EXTMAX 10 675545.0 20 4861382.92 30 139.97 9 $LIMMIN 10 0.0 20 0.0 9 $LIMMAX 10 420.0 20 297.0 9 $ORTHOMODE 70 0 9 $REGENMODE 70 1 9 $FILLMODE 70 1 9 $QTEXTMODE 70 0 9 $MIRRTEXT 70 0 9 $LTSCALE 40 1.0 9 $ATTMODE 70 1 9 $TEXTSIZE 40 2.5 9 $TRACEWID 40 1.0 9 $TEXTSTYLE 7 romans 9 $CLAYER 8 0 9 $CELTYPE 6 ByLayer 9 $CECOLOR 62 256 9 $CELTSCALE 40 1.0 9 $DISPSILH 70 0 9 $DIMSCALE 40 1.0 9 $DIMASZ 40 2.5 9 $DIMEXO 40 0.625 9 $DIMDLI 40 3.75 9 $DIMRND 40 0.0 9 $DIMDLE 40 0.0 9 $DIMEXE 40 1.25 9 $DIMTP 40 0.0 9 $DIMTM 40 0.0 9 $DIMTXT 40 2.5 9 $DIMCEN 40 2.5 9 $DIMTSZ 40 0.0 9 $DIMTOL 70 0 9 $DIMLIM 70 0 9 $DIMTIH 70 0 9 $DIMTOH 70 0 9 $DIMSE1 70 0 9 $DIMSE2 70 0 9 $DIMTAD 70 1 9 $DIMZIN 70 8 9 $DIMBLK 1 9 $DIMASO 70 1 9 $DIMSHO 70 1 9 $DIMPOST 1 9 $DIMAPOST 1 9 $DIMALT 70 0 9 $DIMALTD 70 3 9 $DIMALTF 40 0.03937007874016 9 $DIMLFAC 40 1.0 9 $DIMTOFL 70 1 9 $DIMTVP 40 0.0 9 $DIMTIX 70 0 9 $DIMSOXD 70 0 9 $DIMSAH 70 0 9 $DIMBLK1 1 9 $DIMBLK2 1 9 $DIMSTYLE 2 ISO-25 9 $DIMCLRD 70 0 9 $DIMCLRE 70 0 9 $DIMCLRT 70 0 9 $DIMTFAC 40 1.0 9 $DIMGAP 40 0.625 9 $DIMJUST 70 0 9 $DIMSD1 70 0 9 $DIMSD2 70 0 9 $DIMTOLJ 70 0 9 $DIMTZIN 70 8 9 $DIMALTZ 70 0 9 $DIMALTTZ 70 0 9 $DIMUPT 70 0 9 $DIMDEC 70 2 9 $DIMTDEC 70 2 9 $DIMALTU 70 2 9 $DIMALTTD 70 3 9 $DIMTXSTY 7 Standard 9 $DIMAUNIT 70 0 9 $DIMADEC 70 0 9 $DIMALTRND 40 0.0 9 $DIMAZIN 70 0 9 $DIMDSEP 70 44 9 $DIMATFIT 70 3 9 $DIMFRAC 70 0 9 $DIMLDRBLK 1 9 $DIMLUNIT 70 2 9 $DIMLWD 70 -2 9 $DIMLWE 70 -2 9 $DIMTMOVE 70 0 9 $LUNITS 70 2 9 $LUPREC 70 4 9 $SKETCHINC 40 1.0 9 $FILLETRAD 40 0.0 9 $AUNITS 70 0 9 $AUPREC 70 0 9 $MENU 1 . 9 $ELEVATION 40 0.0 9 $PELEVATION 40 0.0 9 $THICKNESS 40 0.0 9 $LIMCHECK 70 0 9 $CHAMFERA 40 0.0 9 $CHAMFERB 40 0.0 9 $CHAMFERC 40 0.0 9 $CHAMFERD 40 0.0 9 $SKPOLY 70 0 9 $TDCREATE 40 2456262.062314271 9 $TDUCREATE 40 2456261.978980938 9 $TDUPDATE 40 2456409.797222755 9 $TDUUPDATE 40 2456409.713889422 9 $TDINDWG 40 0.0612841898 9 $TDUSRTIMER 40 0.0612841898 9 $USRTIMER 70 1 9 $ANGBASE 50 0.0 9 $ANGDIR 70 0 9 $PDMODE 70 2 9 $PDSIZE 40 0.5 9 $PLINEWID 40 0.0 9 $SPLFRAME 70 0 9 $SPLINETYPE 70 6 9 $SPLINESEGS 70 8 9 $HANDSEED 5 AF7 9 $SURFTAB1 70 6 9 $SURFTAB2 70 6 9 $SURFTYPE 70 6 9 $SURFU 70 6 9 $SURFV 70 6 9 $UCSBASE 2 9 $UCSNAME 2 9 $UCSORG 10 0.0 20 0.0 30 0.0 9 $UCSXDIR 10 1.0 20 0.0 30 0.0 9 $UCSYDIR 10 0.0 20 1.0 30 0.0 9 $UCSORTHOREF 2 9 $UCSORTHOVIEW 70 0 9 $UCSORGTOP 10 0.0 20 0.0 30 0.0 9 $UCSORGBOTTOM 10 0.0 20 0.0 30 0.0 9 $UCSORGLEFT 10 0.0 20 0.0 30 0.0 9 $UCSORGRIGHT 10 0.0 20 0.0 30 0.0 9 $UCSORGFRONT 10 0.0 20 0.0 30 0.0 9 $UCSORGBACK 10 0.0 20 0.0 30 0.0 9 $PUCSBASE 2 9 $PUCSNAME 2 9 $PUCSORG 10 0.0 20 0.0 30 0.0 9 $PUCSXDIR 10 1.0 20 0.0 30 0.0 9 $PUCSYDIR 10 0.0 20 1.0 30 0.0 9 $PUCSORTHOREF 2 9 $PUCSORTHOVIEW 70 0 9 $PUCSORGTOP 10 0.0 20 0.0 30 0.0 9 $PUCSORGBOTTOM 10 0.0 20 0.0 30 0.0 9 $PUCSORGLEFT 10 0.0 20 0.0 30 0.0 9 $PUCSORGRIGHT 10 0.0 20 0.0 30 0.0 9 $PUCSORGFRONT 10 0.0 20 0.0 30 0.0 9 $PUCSORGBACK 10 0.0 20 0.0 30 0.0 9 $USERI1 70 0 9 $USERI2 70 0 9 $USERI3 70 0 9 $USERI4 70 0 9 $USERI5 70 0 9 $USERR1 40 0.0 9 $USERR2 40 0.0 9 $USERR3 40 0.0 9 $USERR4 40 0.0 9 $USERR5 40 0.0 9 $WORLDVIEW 70 1 9 $SHADEDGE 70 3 9 $SHADEDIF 70 70 9 $TILEMODE 70 1 9 $MAXACTVP 70 64 9 $PINSBASE 10 0.0 20 0.0 30 0.0 9 $PLIMCHECK 70 0 9 $PEXTMIN 10 0.0 20 0.0 30 0.0 9 $PEXTMAX 10 0.0 20 0.0 30 0.0 9 $PLIMMIN 10 0.0 20 0.0 9 $PLIMMAX 10 12.0 20 9.0 9 $UNITMODE 70 0 9 $VISRETAIN 70 1 9 $PLINEGEN 70 0 9 $PSLTSCALE 70 1 9 $TREEDEPTH 70 3020 9 $CMLSTYLE 2 Standard 9 $CMLJUST 70 0 9 $CMLSCALE 40 20.0 9 $PROXYGRAPHICS 70 1 9 $MEASUREMENT 70 1 9 $CELWEIGHT 370 -1 9 $ENDCAPS 280 0 9 $JOINSTYLE 280 0 9 $LWDISPLAY 290 0 9 $INSUNITS 70 4 9 $HYPERLINKBASE 1 9 $STYLESHEET 1 9 $XEDIT 290 1 9 $CEPSNTYPE 380 0 9 $PSTYLEMODE 290 1 9 $FINGERPRINTGUID 2 {FDEAD578-A652-11D2-9A35-0060089B3A3F} 9 $VERSIONGUID 2 {930FB465-C28D-4FEE-99FE-12C9CCA164C6} 9 $EXTNAMES 290 1 9 $PSVPSCALE 40 0.0 9 $OLESTARTUP 290 0 0 ENDSEC 0 SECTION 2 CLASSES 0 CLASS 1 ACDBDICTIONARYWDFLT 2 AcDbDictionaryWithDefault 3 ObjectDBX Classes 90 0 280 0 281 0 0 CLASS 1 ACDBPLACEHOLDER 2 AcDbPlaceHolder 3 ObjectDBX Classes 90 0 280 0 281 0 0 CLASS 1 LAYOUT 2 AcDbLayout 3 ObjectDBX Classes 90 0 280 0 281 0 0 CLASS 1 DICTIONARYVAR 2 AcDbDictionaryVar 3 ObjectDBX Classes 90 0 280 0 281 0 0 CLASS 1 MATERIAL 2 AcDbMaterial 3 ObjectDBX Classes 90 32768 280 0 281 0 0 ENDSEC 0 SECTION 2 TABLES 0 TABLE 2 VPORT 5 19 330 0 100 AcDbSymbolTable 70 2 0 VPORT 5 AEF 330 19 100 AcDbSymbolTableRecord 100 AcDbViewportTableRecord 2 *Active 70 0 10 0.0 20 0.0 11 1.0 21 1.0 12 674273.3755786976 22 4860957.893425077 13 0.0 23 0.0 14 10.0 24 10.0 15 10.0 25 10.0 16 0.0 26 0.0 36 1.0 17 0.0 27 0.0 37 0.0 40 1679.347345922142 41 2.135029354207436 42 50.0 43 0.0 44 0.0 50 0.0 51 0.0 71 0 72 1000 73 1 74 3 75 0 76 0 77 0 78 0 281 0 65 1 110 0.0 120 0.0 130 0.0 111 1.0 121 0.0 131 0.0 112 0.0 122 1.0 132 0.0 79 0 146 0.0 0 ENDTAB 0 TABLE 2 LTYPE 5 14 330 0 100 AcDbSymbolTable 70 1 0 LTYPE 5 15 330 14 100 AcDbSymbolTableRecord 100 AcDbLinetypeTableRecord 2 ByBlock 70 0 3 72 65 73 0 40 0.0 0 LTYPE 5 16 330 14 100 AcDbSymbolTableRecord 100 AcDbLinetypeTableRecord 2 ByLayer 70 0 3 72 65 73 0 40 0.0 0 LTYPE 5 8 330 14 100 AcDbSymbolTableRecord 100 AcDbLinetypeTableRecord 2 Continuous 70 0 3 Solid line 72 65 73 0 40 0.0 0 ENDTAB 0 TABLE 2 LAYER 5 10 330 0 100 AcDbSymbolTable 70 2 0 LAYER 5 6B537 102 {ACAD_XDICTIONARY 360 6D825 102 } 330 2 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 P020208 70 0 62 7 6 Continuous 370 -3 390 F 347 6C8 0 LAYER 5 1AF9 102 {ACAD_XDICTIONARY 360 6D7B5 102 } 330 2 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 A010101 70 0 62 7 6 Continuous 370 -3 390 F 347 6C8 0 LAYER 5 11F2 102 {ACAD_XDICTIONARY 360 6D7B1 102 } 330 2 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 T080201_1004 70 0 62 7 6 Continuous 370 -3 390 F 347 6C8 0 LAYER 5 4 330 10 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 0 70 0 62 7 6 Continuous 370 -3 390 5 0 LAYER 5 28 330 10 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 A020206_entra_esci_1 70 0 62 3 6 Continuous 370 -3 390 5 0 ENDTAB 0 TABLE 2 STYLE 5 11 330 0 100 AcDbSymbolTable 70 2 0 STYLE 5 12 330 11 100 AcDbSymbolTableRecord 100 AcDbTextStyleTableRecord 2 Standard 70 0 40 0.0 41 1.0 50 0.0 71 0 42 2.5 3 txt 4 0 STYLE 5 24 330 11 100 AcDbSymbolTableRecord 100 AcDbTextStyleTableRecord 2 romans 70 0 40 0.0 41 0.9 50 0.0 71 0 42 2.5 3 romans.shx 4 0 ENDTAB 0 TABLE 2 VIEW 5 17 330 0 100 AcDbSymbolTable 70 0 0 ENDTAB 0 TABLE 2 UCS 5 18 330 0 100 AcDbSymbolTable 70 0 0 ENDTAB 0 TABLE 2 APPID 5 1B 330 0 100 AcDbSymbolTable 70 5 0 APPID 5 1C 330 1B 100 AcDbSymbolTableRecord 100 AcDbRegAppTableRecord 2 ACAD 70 0 0 APPID 5 49 330 1B 100 AcDbSymbolTableRecord 100 AcDbRegAppTableRecord 2 SHP_NREC 70 0 0 APPID 5 4A 330 1B 100 AcDbSymbolTableRecord 100 AcDbRegAppTableRecord 2 SHP_FLDDSC 70 0 0 APPID 5 4B 330 1B 100 AcDbSymbolTableRecord 100 AcDbRegAppTableRecord 2 SHP_FLDVAL 70 0 0 APPID 5 AE9 330 1B 100 AcDbSymbolTableRecord 100 AcDbRegAppTableRecord 2 PIDXPTOWER 70 0 0 ENDTAB 0 TABLE 2 DIMSTYLE 5 1D 330 0 100 AcDbSymbolTable 70 1 100 AcDbDimStyleTable 71 0 0 DIMSTYLE 105 26 330 1D 100 AcDbSymbolTableRecord 100 AcDbDimStyleTableRecord 2 ISO-25 70 0 41 2.5 42 0.625 43 3.75 44 1.25 73 0 74 0 77 1 78 8 140 2.5 141 2.5 143 0.03937007874016 147 0.625 171 3 172 1 271 2 272 2 274 3 278 44 283 0 284 8 340 12 0 ENDTAB 0 TABLE 2 BLOCK_RECORD 5 1 330 0 100 AcDbSymbolTable 70 0 0 BLOCK_RECORD 5 2 330 1 100 AcDbSymbolTableRecord 100 AcDbBlockTableRecord 2 *Model_Space 340 A 0 BLOCK_RECORD 5 C 330 1 100 AcDbSymbolTableRecord 100 AcDbBlockTableRecord 2 *Paper_Space 340 F 0 ENDTAB 0 ENDSEC 0 SECTION 2 BLOCKS 0 BLOCK 5 3 330 2 100 AcDbEntity 8 0 100 AcDbBlockBegin 2 *Model_Space 70 0 10 0.0 20 0.0 30 0.0 3 *Model_Space 1 0 ENDBLK 5 9 330 2 100 AcDbEntity 8 0 100 AcDbBlockEnd 0 BLOCK 5 D 330 C 100 AcDbEntity 67 1 8 0 100 AcDbBlockBegin 2 *Paper_Space 70 0 10 0.0 20 0.0 30 0.0 3 *Paper_Space 1 0 ENDBLK 5 E 330 C 100 AcDbEntity 67 1 8 0 100 AcDbBlockEnd 0 ENDSEC 0 SECTION 2 ENTITIES 0 POLYLINE 5 21E 330 2 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDb3dPolyline 66 1 10 0.0 20 0.0 30 0.0 70 9 1001 SHP_NREC 1000 54|A020206 1001 SHP_FLDDSC 1000 OBJECTID|N|9|0;ID_ZRIL|C|12|0;AATT_TY|C|10|0;GC_CODICE|C|8|0;LIV|N|4|0;FID_|N|9|0;Classe|C|8|0;ID_Poly_FT|C|20|0;Descrizion|C|250|0;COD_Pol_FT|C|20|0;Flag_Mod|C|1|0;FeatureID|C|20|0;Origine|C|8|0;COD_ORIG|C|8|0;Shape_Leng|F|19|11;Shape_Area|F|19|11;Rip|N 1001 SHP_FLDVAL 1000 26 06 C26005 0 0020206 0 VERTEX 5 21F 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673212.05 20 4860975.28 30 79.15 70 32 0 VERTEX 5 220 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673225.76 20 4860968.83 30 76.76000000000001 70 32 0 VERTEX 5 221 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673229.5999999999 20 4860967.03 30 76.70999999999998 70 32 0 VERTEX 5 222 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673242.37 20 4860961.03 30 76.52 70 32 0 VERTEX 5 223 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673260.74 20 4860952.349999998 30 76.52 70 32 0 VERTEX 5 224 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673260.2199999999 20 4860951.25 30 76.45 70 32 0 VERTEX 5 225 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673259.4500000001 20 4860949.62 30 76.34999999999998 70 32 0 VERTEX 5 226 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673258.73 20 4860948.12 30 76.25 70 32 0 VERTEX 5 227 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673256.91 20 4860944.48 30 76.25 70 32 0 VERTEX 5 228 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673255.8100000002 20 4860942.259999999 30 77.84 70 32 0 VERTEX 5 229 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673251.0300000001 20 4860932.690000001 30 77.79 70 32 0 VERTEX 5 22A 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673246.61 20 4860923.5 30 76.93999999999999 70 32 0 VERTEX 5 22B 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673243.9300000002 20 4860917.92 30 77.97 70 32 0 VERTEX 5 22C 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673240.63 20 4860910.87 30 75.67 70 32 0 VERTEX 5 22D 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673239.7 20 4860911.33 30 75.67 70 32 0 VERTEX 5 22E 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673236.5600000001 20 4860904.76 30 75.60999999999999 70 32 0 VERTEX 5 22F 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673234.3100000001 20 4860900.85 30 75.98 70 32 0 VERTEX 5 230 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673232.49 20 4860898.589999999 30 76.18999999999998 70 32 0 VERTEX 5 231 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673228.8199999999 20 4860894.78 30 76.2 70 32 0 VERTEX 5 232 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673226.6 20 4860892.99 30 76.15999999999998 70 32 0 VERTEX 5 233 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673223.7399999999 20 4860890.92 30 76.09999999999998 70 32 0 VERTEX 5 234 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673220.74 20 4860889.280000001 30 76.01 70 32 0 VERTEX 5 235 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673217.7800000001 20 4860888.01 30 76.09 70 32 0 VERTEX 5 236 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673215.3499999999 20 4860887.22 30 76.05 70 32 0 VERTEX 5 237 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673212.48 20 4860886.46 30 75.92 70 32 0 VERTEX 5 238 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673209.2800000001 20 4860885.92 30 75.76999999999998 70 32 0 VERTEX 5 239 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673206.09 20 4860885.74 30 75.68999999999999 70 32 0 VERTEX 5 23A 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673203.6100000001 20 4860885.78 30 75.64 70 32 0 VERTEX 5 23B 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673201.1800000001 20 4860885.849999998 30 76.36 70 32 0 VERTEX 5 23C 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673201.23 20 4860886.579999999 30 77.14 70 32 0 VERTEX 5 23D 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673200.03 20 4860886.849999999 30 77.14 70 32 0 VERTEX 5 23E 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673198.4200000001 20 4860887.51 30 77.3 70 32 0 VERTEX 5 23F 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673196.9499999999 20 4860888.23 30 77.43999999999998 70 32 0 VERTEX 5 240 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673195.98 20 4860889.059999998 30 77.67 70 32 0 VERTEX 5 241 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673195.17 20 4860890.35 30 77.09999999999998 70 32 0 VERTEX 5 242 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673193.25 20 4860891.45 30 75.19 70 32 0 VERTEX 5 243 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673192.25 20 4860894.24 30 75.19 70 32 0 VERTEX 5 244 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673188.7900000001 20 4860896.05 30 75.19 70 32 0 VERTEX 5 245 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673186.1800000001 20 4860895.179999999 30 75.16 70 32 0 VERTEX 5 246 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673184.04 20 4860896.26 30 75.16 70 32 0 VERTEX 5 247 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673183.6300000002 20 4860895.469999999 30 77.11 70 32 0 VERTEX 5 248 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673181.0 20 4860896.58 30 77.61 70 32 0 VERTEX 5 249 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673179.06 20 4860897.62 30 77.48999999999998 70 32 0 VERTEX 5 24A 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673178.02 20 4860898.5 30 77.43000000000002 70 32 0 VERTEX 5 24B 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673177.46 20 4860897.92 30 76.78 70 32 0 VERTEX 5 24C 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673175.65 20 4860900.21 30 75.08 70 32 0 VERTEX 5 24D 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673174.2800000001 20 4860902.13 30 75.06 70 32 0 VERTEX 5 24E 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673173.1 20 4860904.14 30 75.06 70 32 0 VERTEX 5 24F 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673172.1300000001 20 4860905.9 30 75.04999999999999 70 32 0 VERTEX 5 250 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673171.37 20 4860907.639999999 30 75.04999999999999 70 32 0 VERTEX 5 251 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673170.41 20 4860910.099999999 30 75.04999999999999 70 32 0 VERTEX 5 252 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673169.7 20 4860912.56 30 75.04999999999999 70 32 0 VERTEX 5 253 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673169.11 20 4860915.150000001 30 75.04999999999999 70 32 0 VERTEX 5 254 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673168.78 20 4860917.419999998 30 75.04999999999999 70 32 0 VERTEX 5 255 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673168.5699999999 20 4860919.93 30 75.04999999999999 70 32 0 VERTEX 5 256 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673168.5500000001 20 4860922.389999998 30 75.04999999999999 70 32 0 VERTEX 5 257 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673168.64 20 4860924.96 30 75.04000000000002 70 32 0 VERTEX 5 258 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673168.9300000001 20 4860926.919999999 30 75.04000000000002 70 32 0 VERTEX 5 259 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673169.39 20 4860928.98 30 75.12999999999998 70 32 0 VERTEX 5 25A 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673169.9499999999 20 4860930.639999999 30 75.3 70 32 0 VERTEX 5 25B 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673170.4300000001 20 4860932.08 30 75.44 70 32 0 VERTEX 5 25C 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673171.0699999999 20 4860933.95 30 75.56999999999998 70 32 0 VERTEX 5 25D 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673172.0799999999 20 4860936.33 30 75.70999999999997 70 32 0 VERTEX 5 25E 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673173.39 20 4860938.95 30 75.86 70 32 0 VERTEX 5 25F 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673174.9399999999 20 4860942.04 30 76.0 70 32 0 VERTEX 5 260 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673173.61 20 4860942.67 30 76.18000000000002 70 32 0 VERTEX 5 261 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673175.1700000001 20 4860945.86 30 76.97 70 32 0 VERTEX 5 262 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673191.8900000002 20 4860979.79 30 76.97 70 32 0 VERTEX 5 263 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673192.44 20 4860980.969999999 30 76.97 70 32 0 VERTEX 5 264 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673193.4599999999 20 4860983.12 30 79.87999999999998 70 32 0 VERTEX 5 265 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673211.59 20 4860974.32 30 81.34 70 32 0 VERTEX 5 266 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673212.05 20 4860975.28 30 79.15 70 32 0 VERTEX 5 267 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673215.5600000003 20 4860950.639999999 30 76.2 70 32 0 VERTEX 5 268 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673222.86 20 4860965.110000001 30 76.65 70 32 0 VERTEX 5 269 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673196.5600000001 20 4860977.6 30 76.79999999999998 70 32 0 VERTEX 5 26A 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673189.6 20 4860963.070000001 30 76.29999999999999 70 32 0 VERTEX 5 26B 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673215.5600000003 20 4860950.639999999 30 76.2 70 32 0 VERTEX 5 26C 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673212.05 20 4860975.28 30 79.15 70 32 0 VERTEX 5 26D 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673206.0 20 4860931.69 30 75.81 70 32 0 VERTEX 5 26E 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673213.2199999999 20 4860945.990000001 30 76.06 70 32 0 VERTEX 5 26F 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673187.3 20 4860958.27 30 76.14 70 32 0 VERTEX 5 270 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673180.4100000001 20 4860943.889999999 30 76.0 70 32 0 VERTEX 5 271 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673206.0 20 4860931.69 30 75.81 70 32 0 VERTEX 5 272 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673212.05 20 4860975.28 30 79.15 70 32 0 VERTEX 5 273 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673191.8199999999 20 4860918.62 30 75.42 70 32 0 VERTEX 5 274 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673193.0100000001 20 4860919.9 30 75.44 70 32 0 VERTEX 5 275 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673194.7600000001 20 4860921.049999999 30 75.47 70 32 0 VERTEX 5 276 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673196.6400000001 20 4860921.78 30 75.53 70 32 0 VERTEX 5 277 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673198.2399999999 20 4860921.94 30 75.59999999999998 70 32 0 VERTEX 5 278 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673200.1600000001 20 4860922.17 30 75.64 70 32 0 VERTEX 5 279 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673200.7900000001 20 4860922.219999999 30 75.64 70 32 0 VERTEX 5 27A 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673202.4100000001 20 4860924.78 30 75.68000000000002 70 32 0 VERTEX 5 27B 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673203.9900000001 20 4860927.639999998 30 75.73999999999998 70 32 0 VERTEX 5 27C 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673178.4600000001 20 4860939.799999999 30 75.95 70 32 0 VERTEX 5 27D 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673176.22 20 4860935.17 30 75.75 70 32 0 VERTEX 5 27E 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673175.4999999999 20 4860933.349999998 30 75.64 70 32 0 VERTEX 5 27F 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673174.6 20 4860930.74 30 75.48999999999998 70 32 0 VERTEX 5 280 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673173.2 20 4860927.53 30 75.14 70 32 0 VERTEX 5 281 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673191.8199999999 20 4860918.62 30 75.42 70 32 0 VERTEX 5 282 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673212.05 20 4860975.28 30 79.15 70 32 0 VERTEX 5 283 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673190.13 20 4860900.37 30 75.26 70 32 0 VERTEX 5 284 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673190.6000000001 20 4860900.66 30 75.26 70 32 0 VERTEX 5 285 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673192.68 20 4860905.62 30 75.34 70 32 0 VERTEX 5 286 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673191.74 20 4860906.87 30 75.35 70 32 0 VERTEX 5 287 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673190.95 20 4860908.23 30 75.34 70 32 0 VERTEX 5 288 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673190.28 20 4860909.799999999 30 75.35 70 32 0 VERTEX 5 289 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673189.9 20 4860911.549999999 30 75.35 70 32 0 VERTEX 5 28A 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673189.8499999999 20 4860913.009999999 30 75.36 70 32 0 VERTEX 5 28B 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673189.8000000001 20 4860914.1 30 75.37 70 32 0 VERTEX 5 28C 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673189.6800000001 20 4860914.78 30 75.37 70 32 0 VERTEX 5 28D 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673172.71 20 4860923.0 30 75.11 70 32 0 VERTEX 5 28E 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673172.83 20 4860920.23 30 75.12 70 32 0 VERTEX 5 28F 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673172.9699999999 20 4860918.169999999 30 75.12 70 32 0 VERTEX 5 290 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673173.4900000001 20 4860915.44 30 75.12 70 32 0 VERTEX 5 291 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673175.45 20 4860910.23 30 75.12999999999998 70 32 0 VERTEX 5 292 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673176.7600000002 20 4860906.87 30 75.12 70 32 0 VERTEX 5 293 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673178.3800000001 20 4860903.94 30 75.12999999999998 70 32 0 VERTEX 5 294 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673179.85 20 4860901.88 30 75.14 70 32 0 VERTEX 5 295 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673180.5699999999 20 4860901.07 30 75.14 70 32 0 VERTEX 5 296 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673181.4599999999 20 4860900.769999998 30 75.15 70 32 0 VERTEX 5 297 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673183.1800000001 20 4860900.86 30 75.18 70 32 0 VERTEX 5 298 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673184.7900000001 20 4860901.2 30 75.20999999999998 70 32 0 VERTEX 5 299 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673186.3800000002 20 4860901.150000001 30 75.23 70 32 0 VERTEX 5 29A 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673188.5100000001 20 4860900.92 30 75.25 70 32 0 VERTEX 5 29B 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673189.7 20 4860900.4 30 75.25 70 32 0 VERTEX 5 29C 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673190.13 20 4860900.37 30 75.26 70 32 0 VERTEX 5 29D 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673212.05 20 4860975.28 30 79.15 70 32 0 VERTEX 5 29E 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673228.77 20 4860901.23 30 76.12 70 32 0 VERTEX 5 29F 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673229.57 20 4860902.15 30 76.03 70 32 0 VERTEX 5 2A0 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673230.3900000002 20 4860903.099999998 30 75.94 70 32 0 VERTEX 5 2A1 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673231.63 20 4860905.309999998 30 75.73 70 32 0 VERTEX 5 2A2 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673235.22 20 4860912.78 30 75.67 70 32 0 VERTEX 5 2A3 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673208.5999999999 20 4860925.45 30 75.72 70 32 0 VERTEX 5 2A4 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673207.34 20 4860922.15 30 75.67 70 32 0 VERTEX 5 2A5 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673206.0699999999 20 4860919.44 30 75.60999999999999 70 32 0 VERTEX 5 2A6 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673207.0600000001 20 4860918.54 30 75.59000000000001 70 32 0 VERTEX 5 2A7 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673207.85 20 4860916.94 30 75.65000000000002 70 32 0 VERTEX 5 2A8 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673208.75 20 4860913.7 30 75.73999999999998 70 32 0 VERTEX 5 2A9 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673208.7599999999 20 4860910.62 30 75.73999999999998 70 32 0 VERTEX 5 2AA 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673228.77 20 4860901.23 30 76.12 70 32 0 VERTEX 5 2AB 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673212.05 20 4860975.28 30 79.15 70 32 0 VERTEX 5 2AC 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673207.6400000001 20 4860890.24 30 75.70999999999997 70 32 0 VERTEX 5 2AD 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673211.56 20 4860890.719999999 30 75.89 70 32 0 VERTEX 5 2AE 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673215.54 20 4860892.03 30 76.03 70 32 0 VERTEX 5 2AF 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673219.27 20 4860893.35 30 75.99 70 32 0 VERTEX 5 2B0 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673222.61 20 4860895.38 30 76.06999999999998 70 32 0 VERTEX 5 2B1 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673225.4799999998 20 4860897.57 30 76.12999999999998 70 32 0 VERTEX 5 2B2 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673207.17 20 4860906.32 30 75.75 70 32 0 VERTEX 5 2B3 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673206.4499999999 20 4860905.080000001 30 75.70999999999997 70 32 0 VERTEX 5 2B4 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673204.41 20 4860903.77 30 75.62000000000002 70 32 0 VERTEX 5 2B5 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673202.0699999999 20 4860902.99 30 75.51000000000001 70 32 0 VERTEX 5 2B6 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673199.89 20 4860902.85 30 75.41 70 32 0 VERTEX 5 2B7 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673197.6899999999 20 4860903.15 30 75.34 70 32 0 VERTEX 5 2B8 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673195.2099999999 20 4860898.28 30 75.26 70 32 0 VERTEX 5 2B9 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673195.9899999999 20 4860897.3 30 75.25 70 32 0 VERTEX 5 2BA 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673197.5900000001 20 4860895.86 30 75.28 70 32 0 VERTEX 5 2BB 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673199.1 20 4860894.32 30 75.34 70 32 0 VERTEX 5 2BC 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673200.4100000001 20 4860892.03 30 75.39 70 32 0 VERTEX 5 2BD 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673202.04 20 4860890.9 30 75.45999999999998 70 32 0 VERTEX 5 2BE 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673204.25 20 4860890.36 30 75.56 70 32 0 VERTEX 5 2BF 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673207.6400000001 20 4860890.24 30 75.70999999999997 70 32 0 VERTEX 5 2C0 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673212.05 20 4860975.28 30 79.15 70 32 0 VERTEX 5 2C1 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673199.25 20 4860907.019999999 30 75.4 70 32 0 VERTEX 5 2C2 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673199.75 20 4860907.03 30 75.42 70 32 0 VERTEX 5 2C3 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673200.25 20 4860907.08 30 75.44 70 32 0 VERTEX 5 2C4 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673200.74 20 4860907.17 30 75.45999999999998 70 32 0 VERTEX 5 2C5 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673201.2199999999 20 4860907.309999999 30 75.48999999999998 70 32 0 VERTEX 5 2C6 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673201.6800000001 20 4860907.49 30 75.51000000000001 70 32 0 VERTEX 5 2C7 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673202.1300000001 20 4860907.71 30 75.53 70 32 0 VERTEX 5 2C8 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673202.5600000001 20 4860907.98 30 75.54999999999998 70 32 0 VERTEX 5 2C9 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673202.96 20 4860908.28 30 75.56999999999998 70 32 0 VERTEX 5 2CA 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673203.32 20 4860908.62 30 75.59000000000001 70 32 0 VERTEX 5 2CB 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673203.66 20 4860908.99 30 75.59999999999998 70 32 0 VERTEX 5 2CC 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673203.96 20 4860909.389999998 30 75.62000000000002 70 32 0 VERTEX 5 2CD 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673204.23 20 4860909.809999998 30 75.62999999999998 70 32 0 VERTEX 5 2CE 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673204.4499999999 20 4860910.259999998 30 75.64 70 32 0 VERTEX 5 2CF 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673204.63 20 4860910.73 30 75.65000000000002 70 32 0 VERTEX 5 2D0 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673204.7700000001 20 4860911.21 30 75.65999999999998 70 32 0 VERTEX 5 2D1 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673204.86 20 4860911.7 30 75.67 70 32 0 VERTEX 5 2D2 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673204.9100000001 20 4860912.19 30 75.67 70 32 0 VERTEX 5 2D3 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673204.92 20 4860912.48 30 75.67 70 32 0 VERTEX 5 2D4 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673204.8900000002 20 4860912.980000001 30 75.67 70 32 0 VERTEX 5 2D5 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673204.8299999999 20 4860913.469999998 30 75.67 70 32 0 VERTEX 5 2D6 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673204.7099999999 20 4860913.96 30 75.67 70 32 0 VERTEX 5 2D7 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673204.5600000001 20 4860914.43 30 75.65999999999998 70 32 0 VERTEX 5 2D8 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673204.35 20 4860914.89 30 75.65999999999998 70 32 0 VERTEX 5 2D9 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673204.11 20 4860915.33 30 75.65000000000002 70 32 0 VERTEX 5 2DA 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673203.84 20 4860915.74 30 75.64 70 32 0 VERTEX 5 2DB 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673203.52 20 4860916.129999999 30 75.62000000000002 70 32 0 VERTEX 5 2DC 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673203.17 20 4860916.49 30 75.60999999999999 70 32 0 VERTEX 5 2DD 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673202.78 20 4860916.8 30 75.59000000000001 70 32 0 VERTEX 5 2DE 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673202.38 20 4860917.09 30 75.56999999999998 70 32 0 VERTEX 5 2DF 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673201.94 20 4860917.34 30 75.56 70 32 0 VERTEX 5 2E0 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673201.49 20 4860917.54 30 75.56 70 32 0 VERTEX 5 2E1 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673201.01 20 4860917.709999999 30 75.56 70 32 0 VERTEX 5 2E2 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673200.53 20 4860917.829999999 30 75.54999999999998 70 32 0 VERTEX 5 2E3 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673200.03 20 4860917.9 30 75.54999999999998 70 32 0 VERTEX 5 2E4 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673199.5300000001 20 4860917.93 30 75.54000000000002 70 32 0 VERTEX 5 2E5 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673199.0300000001 20 4860917.92 30 75.53 70 32 0 VERTEX 5 2E6 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673198.5400000001 20 4860917.849999998 30 75.51999999999998 70 32 0 VERTEX 5 2E7 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673198.05 20 4860917.74 30 75.51999999999998 70 32 0 VERTEX 5 2E8 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673197.5699999999 20 4860917.59 30 75.51000000000001 70 32 0 VERTEX 5 2E9 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673197.1099999999 20 4860917.4 30 75.5 70 32 0 VERTEX 5 2EA 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673196.67 20 4860917.17 30 75.48999999999998 70 32 0 VERTEX 5 2EB 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673196.25 20 4860916.889999999 30 75.48 70 32 0 VERTEX 5 2EC 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673195.86 20 4860916.58 30 75.47 70 32 0 VERTEX 5 2ED 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673195.5000000002 20 4860916.23 30 75.47 70 32 0 VERTEX 5 2EE 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673195.17 20 4860915.85 30 75.45999999999998 70 32 0 VERTEX 5 2EF 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673194.8800000002 20 4860915.44 30 75.45 70 32 0 VERTEX 5 2F0 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673194.63 20 4860915.01 30 75.45 70 32 0 VERTEX 5 2F1 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673194.42 20 4860914.56 30 75.44 70 32 0 VERTEX 5 2F2 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673194.2500000001 20 4860914.09 30 75.43000000000002 70 32 0 VERTEX 5 2F3 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673194.1299999999 20 4860913.61 30 75.43000000000002 70 32 0 VERTEX 5 2F4 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673194.04 20 4860913.12 30 75.42 70 32 0 VERTEX 5 2F5 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673194.01 20 4860912.62 30 75.42 70 32 0 VERTEX 5 2F6 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673194.0200000001 20 4860912.12 30 75.42 70 32 0 VERTEX 5 2F7 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673194.0699999999 20 4860911.62 30 75.41 70 32 0 VERTEX 5 2F8 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673194.17 20 4860911.129999998 30 75.41 70 32 0 VERTEX 5 2F9 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673194.3199999999 20 4860910.65 30 75.41 70 32 0 VERTEX 5 2FA 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673194.51 20 4860910.190000001 30 75.41 70 32 0 VERTEX 5 2FB 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673194.74 20 4860909.740000001 30 75.41 70 32 0 VERTEX 5 2FC 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673195.01 20 4860909.33 30 75.41 70 32 0 VERTEX 5 2FD 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673195.3100000001 20 4860908.929999999 30 75.4 70 32 0 VERTEX 5 2FE 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673195.6600000001 20 4860908.57 30 75.4 70 32 0 VERTEX 5 2FF 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673196.03 20 4860908.24 30 75.4 70 32 0 VERTEX 5 300 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673196.4300000001 20 4860907.94 30 75.4 70 32 0 VERTEX 5 301 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673196.86 20 4860907.679999999 30 75.4 70 32 0 VERTEX 5 302 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673197.3100000001 20 4860907.459999999 30 75.4 70 32 0 VERTEX 5 303 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673197.78 20 4860907.280000001 30 75.4 70 32 0 VERTEX 5 304 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673198.2600000002 20 4860907.15 30 75.4 70 32 0 VERTEX 5 305 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673198.7499999999 20 4860907.07 30 75.4 70 32 0 VERTEX 5 306 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673199.25 20 4860907.019999999 30 75.4 70 32 0 VERTEX 5 307 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673212.05 20 4860975.28 30 79.15 70 32 0 VERTEX 5 308 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673237.2500000001 20 4860916.92 30 75.75 70 32 0 VERTEX 5 309 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673244.32 20 4860931.309999998 30 76.01 70 32 0 VERTEX 5 30A 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673217.83 20 4860943.78 30 76.04 70 32 0 VERTEX 5 30B 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673210.6800000001 20 4860929.52 30 75.79 70 32 0 VERTEX 5 30C 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673237.2500000001 20 4860916.92 30 75.75 70 32 0 VERTEX 5 30D 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673212.05 20 4860975.28 30 79.15 70 32 0 VERTEX 5 30E 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673246.6200000001 20 4860935.910000001 30 76.18999999999998 70 32 0 VERTEX 5 30F 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673248.8899999999 20 4860940.65 30 77.40999999999998 70 32 0 VERTEX 5 310 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673252.5200000002 20 4860938.91 30 78.04000000000002 70 32 0 VERTEX 5 311 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673258.99 20 4860952.45 30 78.04000000000002 70 32 0 VERTEX 5 312 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673255.39 20 4860954.17 30 77.98999999999998 70 32 0 VERTEX 5 313 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673253.6300000001 20 4860950.5 30 77.43000000000002 70 32 0 VERTEX 5 314 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673227.5900000001 20 4860962.87 30 76.58 70 32 0 VERTEX 5 315 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673220.28 20 4860948.57 30 76.14 70 32 0 VERTEX 5 316 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673246.6200000001 20 4860935.910000001 30 76.18999999999998 70 32 0 SEQEND 5 317 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 0 POINT 5 6B538 330 1F 100 AcDbEntity 8 P020208 100 AcDbPoint 10 675645.41 20 4867515.0 30 508.06 1001 SHP_TIPM 1000 3Z NaN 1001 SHP_NREC 1000 1|P020208 1001 SHP_FLDDSC 1000 OBJECTID|N|9|0;ID_ZRIL|C|12|0;PALO_TY|C|10|0;PALO_IMP|C|10|0;GC_CODICE|C|8|0;PALO_SY|C|50|0;PALO_QE|F|19|11;PALO_ANG|F|19|11;PALO_F_SC|F|19|11;FID_|N|9|0;Classe|C|8|0;Descrizion|C|250|0;COD_SS_Pun|C|20|0;Flag_Mod|C|1|0;FeatureID|C|20|0;COD_ORIG|C|8|0;Rip 1001 SHP_FLDVAL 1000 1 11 06 C28000_ S10 5.08280000000e+002 0.00000000000e+000 1.00000000000e+000 020208 0 POINT 5 6B539 330 1F 100 AcDbEntity 8 P020208 100 AcDbPoint 10 675768.8100000001 20 4867500.02 30 490.0599999999999 1001 SHP_TIPM 1000 3Z NaN 1001 SHP_NREC 1000 2|P020208 1001 SHP_FLDDSC 1000 OBJECTID|N|9|0;ID_ZRIL|C|12|0;PALO_TY|C|10|0;PALO_IMP|C|10|0;GC_CODICE|C|8|0;PALO_SY|C|50|0;PALO_QE|F|19|11;PALO_ANG|F|19|11;PALO_F_SC|F|19|11;FID_|N|9|0;Classe|C|8|0;Descrizion|C|250|0;COD_SS_Pun|C|20|0;Flag_Mod|C|1|0;FeatureID|C|20|0;COD_ORIG|C|8|0;Rip 1001 SHP_FLDVAL 1000 2 11 06 C28000_ S10 4.90970000000e+002 0.00000000000e+000 1.00000000000e+000 020208 0 TEXT 5 11F3 330 1F 100 AcDbEntity 8 T080201_1004 100 AcDbText 10 675632.98 20 4867502.400000001 30 0.0 40 2.399999999999999 1 VIA 50 60.0 7 romans 100 AcDbText 1001 RT_INFO 1000 1004| 1001 PARAM_VEST 1000 1.20 60.00 0 TEXT 5 11F4 330 1F 100 AcDbEntity 8 T080201_1004 100 AcDbText 10 675645.0699999999 20 4867525.839999999 30 0.0 40 2.399999999999999 1 DI 50 75.0 7 romans 100 AcDbText 1001 RT_INFO 1000 1004| 1001 PARAM_VEST 1000 1.20 75.00 0 POLYLINE 5 1B0C 330 1F 100 AcDbEntity 8 A010101 100 AcDb3dPolyline 66 1 10 0.0 20 0.0 30 0.0 70 9 1001 SHP_NREC 1000 2|A010101 1001 SHP_FLDDSC 1000 OBJECTID|N|9|0;ID_ZRIL|C|12|0;GC_CODICE|C|8|0;LIV|N|4|0;FID_|N|9|0;Classe|C|8|0;ID_Poly_FT|C|20|0;Descrizion|C|250|0;COD_Pol_FT|C|20|0;COD_Strada|C|20|0;COD_Ar_Str|C|20|0;Flag_Mod|C|1|0;COD_Sup_3D|C|20|0;AR_STR_CF|C|8|0;AR_STR_STA|C|8|0;FeatureID|C|20|0; 1001 SHP_FLDVAL 1000 2 B11600 0 010101 0 VERTEX 5 1B0D 330 1B0C 100 AcDbEntity 8 A010101 100 AcDbVertex 100 AcDb3dPolylineVertex 10 675598.03 20 4867406.519999999 30 506.1799999999999 70 32 0 VERTEX 5 1B0E 330 1B0C 100 AcDbEntity 8 A010101 100 AcDbVertex 100 AcDb3dPolylineVertex 10 675593.8900000001 20 4867407.73 30 508.0899999999999 70 32 0 VERTEX 5 1B0F 330 1B0C 100 AcDbEntity 8 A010101 100 AcDbVertex 100 AcDb3dPolylineVertex 10 675595.55 20 4867413.67 30 507.86 70 32 0 VERTEX 5 1B10 330 1B0C 100 AcDbEntity 8 A010101 100 AcDbVertex 100 AcDb3dPolylineVertex 10 675599.76 20 4867412.44 30 506.12 70 32 0 VERTEX 5 1B0D 330 1B0C 100 AcDbEntity 8 A010101 100 AcDbVertex 100 AcDb3dPolylineVertex 10 675598.03 20 4867406.519999999 30 506.1799999999999 70 32 0 SEQEND 5 1B11 330 1B0C 100 AcDbEntity 8 A010101 0 POLYLINE 5 1B0C 330 1F 100 AcDbEntity 8 A010101 100 AcDb3dPolyline 66 1 10 0.0 20 0.0 30 0.0 70 8 1001 SHP_NREC 1000 2|A010101 1001 SHP_FLDDSC 1000 OBJECTID|N|9|0;ID_ZRIL|C|12|0;GC_CODICE|C|8|0;LIV|N|4|0;FID_|N|9|0;Classe|C|8|0;ID_Poly_FT|C|20|0;Descrizion|C|250|0;COD_Pol_FT|C|20|0;COD_Strada|C|20|0;COD_Ar_Str|C|20|0;Flag_Mod|C|1|0;COD_Sup_3D|C|20|0;AR_STR_CF|C|8|0;AR_STR_STA|C|8|0;FeatureID|C|20|0; 1001 SHP_FLDVAL 1000 2 B11600 0 010101 0 VERTEX 5 1B0D 330 1B0C 100 AcDbEntity 8 A010101 100 AcDbVertex 100 AcDb3dPolylineVertex 10 675598.03 20 4867406.519999999 30 506.1799999999999 70 32 0 VERTEX 5 1B0E 330 1B0C 100 AcDbEntity 8 A010101 100 AcDbVertex 100 AcDb3dPolylineVertex 10 675593.8900000001 20 4867407.73 30 508.0899999999999 70 32 0 VERTEX 5 1B0F 330 1B0C 100 AcDbEntity 8 A010101 100 AcDbVertex 100 AcDb3dPolylineVertex 10 675595.55 20 4867413.67 30 507.86 70 32 0 VERTEX 5 1B10 330 1B0C 100 AcDbEntity 8 A010101 100 AcDbVertex 100 AcDb3dPolylineVertex 10 675599.76 20 4867412.44 30 506.12 70 32 0 SEQEND 5 1B11 330 1B0C 100 AcDbEntity 8 A010101 0 ENDSEC 0 SECTION 0 EOFlibspatialite-4.1.1/test/empty.tif0000664000175000017500000011562312163502133014113 00000000000000MM*cc( ?P8$ BaPd6DbQ8V-FcQv=HdR9$M'JeRd]/LfS9m7NgS}?PhT:%GRiTe6OTjU:VWVkUv_XlV;%gZmVeo\nW;w^oW`pX<& bqXf7drY(4*F)4]2N*5*RV+5r^,6+f-6]n.7+v/7~08, 18^329,S+  AT. CN)En9GI%ITY-Ki5My=OEQU.MSNUUn]WeYUm[u]}_ aV/cO)e L* áJ'Ţj7ǣ G$ɤLW,˥ g4ͦw<ϧ DѨM*Lө JTժj\׫ d٬Mlۭ tݮ|߯  N+ K'A`xD& CaF%Ebxf5GcE#IdyDU+Kee3Mfyu;OgCQhzE&KSiFSUjzf[WkcYl{Ek[ms]n{{_oap|F'cqG%er| h<" !|B#"hb3#C"$i#1~C#2lb@X4 Bt>!DX^1F~A!HY4Q)Jta1LYq9NAPZ5IRu>QTZ^YV~aX[5iZuq\[y^`\6bv?!d\_1pH,¡pl:ĢqHZ/ƣqz? ȤrI,O(ʥrl_0̦sIo8Χs@ШtJ-Hҩtm:PԪuJZX֫uz`جvK-hڭvmpܮwKxޯwxL.xn;yL[/?P8$ BaPd6DbQ8V-FcQv=HdR9$M'JeRd]/LfS9m7NgS}?PhT:%GRiTe6OTjU:VWVkUv_XlV;%gZmVeo\nW;w^oW`pX<& bqXf7drY(4*F)4]2N*5*RV+5r^,6+f-6]n.7+v/7~08, 18^329,S+  AT. CN)En9GI%ITY-Ki5My=OEQU.MSNUUn]WeYUm[u]}_ aV/cO)e L* áJ'Ţj7ǣ G$ɤLW,˥ g4ͦw<ϧ DѨM*Lө JTժj\׫ d٬Mlۭ tݮ|߯  N+ K'A`xD& CaF%Ebxf5GcE#IdyDU+Kee3Mfyu;OgCQhzE&KSiFSUjzf[WkcYl{Ek[ms]n{{_oap|F'cqG%er| h<" !|B#"hb3#C"$i#1~C#2lb@X4 Bt>!DX^1F~A!HY4Q)Jta1LYq9NAPZ5IRu>QTZ^YV~aX[5iZuq\[y^`\6bv?!d\_1pH,¡pl:ĢqHZ/ƣqz? ȤrI,O(ʥrl_0̦sIo8Χs@ШtJ-Hҩtm:PԪuJZX֫uz`جvK-hڭvmpܮwKxޯwxL.xn;yL[/?P8$ BaPd6DbQ8V-FcQv=HdR9$M'JeRd]/LfS9m7NgS}?PhT:%GRiTe6OTjU:VWVkUv_XlV;%gZmVeo\nW;w^oW`pX<& bqXf7drY(4*F)4]2N*5*RV+5r^,6+f-6]n.7+v/7~08, 18^329,S+  AT. CN)En9GI%ITY-Ki5My=OEQU.MSNUUn]WeYUm[u]}_ aV/cO)e L* áJ'Ţj7ǣ G$ɤLW,˥ g4ͦw<ϧ DѨM*Lө JTժj\׫ d٬Mlۭ tݮ|߯  N+ K'A`xD& CaF%Ebxf5GcE#IdyDU+Kee3Mfyu;OgCQhzE&KSiFSUjzf[WkcYl{Ek[ms]n{{_oap|F'cqG%er| h<" !|B#"hb3#C"$i#1~C#2lb@X4 Bt>!DX^1F~A!HY4Q)Jta1LYq9NAPZ5IRu>QTZ^YV~aX[5iZuq\[y^`\6bv?!d\_1pH,¡pl:ĢqHZ/ƣqz? ȤrI,O(ʥrl_0̦sIo8Χs@ШtJ-Hҩtm:PԪuJZX֫uz`جvK-hڭvmpܮwKxޯwxL.xn;yL[/?P8$ BaPd6DbQ8V-FcQv=HdR9$M'JeRd]/LfS9m7NgS}?PhT:%GRiTe6OTjU:VWVkUv_XlV;%gZmVeo\nW;w^oW`pX<& bqXf7drY(4*F)4]2N*5*RV+5r^,6+f-6]n.7+v/7~08, 18^329,S+  AT. CN)En9GI%ITY-Ki5My=OEQU.MSNUUn]WeYUm[u]}_ aV/cO)e L* áJ'Ţj7ǣ G$ɤLW,˥ g4ͦw<ϧ DѨM*Lө JTժj\׫ d٬Mlۭ tݮ|߯  N+ K'A`xD& CaF%Ebxf5GcE#IdyDU+Kee3Mfyu;OgCQhzE&KSiFSUjzf[WkcYl{Ek[ms]n{{_oap|F'cqG%er| h<" !|B#"hb3#C"$i#1~C#2lb@X4 Bt>!DX^1F~A!HY4Q)Jta1LYq9NAPZ5IRu>QTZ^YV~aX[5iZuq\[y^`\6bv?!d\_1pH,¡pl:ĢqHZ/ƣqz? ȤrI,O(ʥrl_0̦sIo8Χs@ШtJ-Hҩtm:PԪuJZX֫uz`جvK-hڭvmpܮwKxޯwxL.xn;yL[/?P8$ BaPd6DbQ8V-FcQv=HdR9$M'JeRd]/LfS9m7NgS}?PhT:%GRiTe6OTjU:VWVkUv_XlV;%gZmVeo\nW;w^oW`pX<& bqXf7drY(4*F)4]2N*5*RV+5r^,6+f-6]n.7+v/7~08, 18^329,S+  AT. CN)En9GI%ITY-Ki5My=OEQU.MSNUUn]WeYUm[u]}_ aV/cO)e L* áJ'Ţj7ǣ G$ɤLW,˥ g4ͦw<ϧ DѨM*Lө JTժj\׫ d٬Mlۭ tݮ|߯  N+ K'A`xD& CaF%Ebxf5GcE#IdyDU+Kee3Mfyu;OgCQhzE&KSiFSUjzf[WkcYl{Ek[ms]n{{_oap|F'cqG%er| h<" !|B#"hb3#C"$i#1~C#2lb@X4 Bt>!DX^1F~A!HY4Q)Jta1LYq9NAPZ5IRu>QTZ^YV~aX[5iZuq\[y^`\6bv?!d\_1pH,¡pl:ĢqHZ/ƣqz? ȤrI,O(ʥrl_0̦sIo8Χs@ШtJ-Hҩtm:PԪuJZX֫uz`جvK-hڭvmpܮwKxޯwxL.xn;yL[/?P8$ BaPd6DbQ8V-FcQv=HdR9$M'JeRd]/LfS9m7NgS}?PhT:%GRiTe6OTjU:VWVkUv_XlV;%gZmVeo\nW;w^oW`pX<& bqXf7drY(4*F)4]2N*5*RV+5r^,6+f-6]n.7+v/7~08, 18^329,S+  AT. CN)En9GI%ITY-Ki5My=OEQU.MSNUUn]WeYUm[u]}_ aV/cO)e L* áJ'Ţj7ǣ G$ɤLW,˥ g4ͦw<ϧ DѨM*Lө JTժj\׫ d٬Mlۭ tݮ|߯  N+ K'A`xD& CaF%Ebxf5GcE#IdyDU+Kee3Mfyu;OgCQhzE&KSiFSUjzf[WkcYl{Ek[ms]n{{_oap|F'cqG%er| h<" !|B#"hb3#C"$i#1~C#2lb@X4 Bt>!DX^1F~A!HY4Q)Jta1LYq9NAPZ5IRu>QTZ^YV~aX[5iZuq\[y^`\6bv?!d\_1pH,¡pl:ĢqHZ/ƣqz? ȤrI,O(ʥrl_0̦sIo8Χs@ШtJ-Hҩtm:PԪuJZX֫uz`جvK-hڭvmpܮwKxޯwxL.xn;yL[/?P8$ BaPd6DbQ8V-FcQv=HdR9$M'JeRd]/LfS9m7NgS}?PhT:%GRiTe6OTjU:VWVkUv_XlV;%gZmVeo\nW;w^oW`pX<& bqXf7drY(4*F)4]2N*5*RV+5r^,6+f-6]n.7+v/7~08, 18^329,S+  AT. CN)En9GI%ITY-Ki5My=OEQU.MSNUUn]WeYUm[u]}_ aV/cO)e L* áJ'Ţj7ǣ G$ɤLW,˥ g4ͦw<ϧ DѨM*Lө JTժj\׫ d٬Mlۭ tݮ|߯  N+ K'A`xD& CaF%Ebxf5GcE#IdyDU+Kee3Mfyu;OgCQhzE&KSiFSUjzf[WkcYl{Ek[ms]n{{_oap|F'cqG%er| h<" !|B#"hb3#C"$i#1~C#2lb@X4 Bt>!DX^1F~A!HY4Q)Jta1LYq9NAPZ5IRu>QTZ^YV~aX[5iZuq\[y^`\6bv?!d\_1pH,¡pl:ĢqHZ/ƣqz? ȤrI,O(ʥrl_0̦sIo8Χs@ШtJ-Hҩtm:PԪuJZX֫uz`جvK-hڭvmpܮwKxޯwxL.xn;yL[/?P8$ BaPd6DbQ8V-FcQv=HdR9$M'JeRd]/LfS9m7NgS}?PhT:%GRiTe6OTjU:VWVkUv_XlV;%gZmVeo\nW;w^oW`pX<& bqXf7drY(4*F)4]2N*5*RV+5r^,6+f-6]n.7+v/7~08, 18^329,S+  AT. CN)En9GI%ITY-Ki5My=OEQU.MSNUUn]WeYUm[u]}_ aV/cO)e L* áJ'Ţj7ǣ G$ɤLW,˥ g4ͦw<ϧ DѨM*Lө JTժj\׫ d٬Mlۭ tݮ|߯  N+ K'A`xD& CaF%Ebxf5GcE#IdyDU+Kee3Mfyu;OgCQhzE&KSiFSUjzf[WkcYl{Ek[ms]n{{_oap|F'cqG%er| h<" !|B#"hb3#C"$i#1~C#2lb@X4 Bt>!DX^1F~A!HY4Q)Jta1LYq9NAPZ5IRu>QTZ^YV~aX[5iZuq\[y^`\6bv?!d\_1pH,¡pl:ĢqHZ/ƣqz? ȤrI,O(ʥrl_0̦sIo8Χs@ШtJ-Hҩtm:PԪuJZX֫uz`جvK-hڭvmpܮwKxޯwxL.xn;yL[/?P8$ BaPd6DbQ8V-FcQv=HdR9$M'JeRd]/LfS9m7NgS}?PhT:%GRiTe6OTjU:VWVkUv_XlV;%gZmVeo\nW;w^oW`pX<& bqXf7drY(4*F)4]2N*5*RV+5r^,6+f-6]n.7+v/7~08, 18^329,S+  AT. CN)En9GI%ITY-Ki5My=OEQU.MSNUUn]WeYUm[u]}_ aV/cO)e L* áJ'Ţj7ǣ G$ɤLW,˥ g4ͦw<ϧ DѨM*Lө JTժj\׫ d٬Mlۭ tݮ|߯  N+ K'A`xD& CaF%Ebxf5GcE#IdyDU+Kee3Mfyu;OgCQhzE&KSiFSUjzf[WkcYl{Ek[ms]n{{_oap|F'cqG%er| h<" !|B#"hb3#C"$i#1~C#2lb@X4 Bt>!DX^1F~A!HY4Q)Jta1LYq9NAPZ5IRu>QTZ^YV~aX[5iZuq\[y^`\6bv?!d\_1pH,¡pl:ĢqHZ/ƣqz? ȤrI,O(ʥrl_0̦sIo8Χs@ШtJ-Hҩtm:PԪuJZX֫uz`جvK-hڭvmpܮwKxޯwxL.xn;yL[/?P8$ BaPd6DbQ8V-FcQv=HdR9$M'JeRd]/LfS9m7NgS}?PhT:%GRiTe6OTjU:VWVkUv_XlV;%gZmVeo\nW;w^oW`pX<& bqXf7drY(4*F)4]2N*5*RV+5r^,6+f-6]n.7+v/7~08, 18^329,S+  AT. CN)En9GI%ITY-Ki5My=OEQU.MSNUUn]WeYUm[u]}_ aV/cO)e L* áJ'Ţj7ǣ G$ɤLW,˥ g4ͦw<ϧ DѨM*Lө JTժj\׫ d٬Mlۭ tݮ|߯  N+ K'A`xD& CaF%Ebxf5GcE#IdyDU+Kee3Mfyu;OgCQhzE&KSiFSUjzf[WkcYl{Ek[ms]n{{_oap|F'cqG%er| h<" !|B#"hb3#C"$i#1~C#2lb@X4 Bt>!DX^1F~A!HY4Q)Jta1LYq9NAPZ5IRu>QTZ^YV~aX[5iZuq\[y^`\6bv?!d\_1pH,¡pl:ĢqHZ/ƣqz? ȤrI,O(ʥrl_0̦sIo8Χs@ШtJ-Hҩtm:PԪuJZX֫uz`جvK-hڭvmpܮwKxޯwxL.xn;yL[/?P8$ BaPd6DbQ8V-FcQv=HdR9$M'JeRd]/LfS9m7NgS}?PhT:%GRiTe6OTjU:VWVkUv_XlV;%gZmVeo\nW;w^oW`pX<& bqXf7drY(4*F)4]2N*5*RV+5r^,6+f-6]n.7+v/7~08, 18^329,S+  AT. CN)En9GI%ITY-Ki5My=OEQU.MSNUUn]WeYUm[u]}_ aV/cO)e L* áJ'Ţj7ǣ G$ɤLW,˥ g4ͦw<ϧ DѨM*Lө JTժj\׫ d٬Mlۭ tݮ|߯  N+ K'A`xD& CaF%Ebxf5GcE#IdyDU+Kee3Mfyu;OgCQhzE&KSiFSUjzf[WkcYl{Ek[ms]n{{_oap|F'cqG%er| h<" !|B#"hb3#C"$i#1~C#2lb@X4 Bt>!DX^1F~A!HY4Q)Jta1LYq9NAPZ5IRu>QTZ^YV~aX[5iZuq\[y^`\6bv?!d\_1pH,¡pl:ĢqHZ/ƣqz? ȤrI,O(ʥrl_0̦sIo8Χs@ШtJ-Hҩtm:PԪuJZX֫uz`جvK-hڭvmpܮwKxޯwxL.xn;yL[/?P8$ BaPd6DbQ8V-FcQv=HdR9$M'JeRd]/LfS9m7NgS}?PhT:%GRiTe6OTjU:VWVkUv_XlV;%gZmVeo\nW;w^oW`pX<& bqXf7drY(4*F)4]2N*5*RV+5r^,6+f-6]n.7+v/7~08, 18^329,S+  AT. CN)En9GI%ITY-Ki5My=OEQU.MSNUUn]WeYUm[u]}_ aV/cO)e L* áJ'Ţj7ǣ G$ɤLW,˥ g4ͦw<ϧ DѨM*Lө JTժj\׫ d٬Mlۭ tݮ|߯  N+ K'A`xD& CaF%Ebxf5GcE#IdyDU+Kee3Mfyu;OgCQhzE&KSiFSUjzf[WkcYl{Ek[ms]n{{_oap|F'cqG%er| h<" !|B#"hb3#C"$i#1~C#2lb@X4 Bt>!DX^1F~A!HY4Q)Jta1LYq9NAPZ5IRu>QTZ^YV~aX[5iZuq\[y^`\6bv?!d\_1pH,¡pl:ĢqHZ/ƣqz? ȤrI,O(ʥrl_0̦sIo8Χs@ШtJ-Hҩtm:PԪuJZX֫uz`جvK-hڭvmpܮwKxޯwxL.xn;yL[/?P8$ BaPd6DbQ8V-FcQv=HdR9$M'JeRd]/LfS9m7NgS}?PhT:%GRiTe6OTjU:VWVkUv_XlV;%gZmVeo\nW;w^oW`pX<& bqXf7drY(4*F)4]2N*5*RV+5r^,6+f-6]n.7+v/7~08, 18^329,S+  AT. CN)En9GI%ITY-Ki5My=OEQU.MSNUUn]WeYUm[u]}_ aV/cO)e L* áJ'Ţj7ǣ G$ɤLW,˥ g4ͦw<ϧ DѨM*Lө JTժj\׫ d٬Mlۭ tݮ|߯  N+ K'A`xD& CaF%Ebxf5GcE#IdyDU+Kee3Mfyu;OgCQhzE&KSiFSUjzf[WkcYl{Ek[ms]n{{_oap|F'cqG%er| h<" !|B#"hb3#C"$i#1~C#2lb@X4 Bt>!DX^1F~A!HY4Q)Jta1LYq9NAPZ5IRu>QTZ^YV~aX[5iZuq\[y^`\6bv?!d\_1pH,¡pl:ĢqHZ/ƣqz? ȤrI,O(ʥrl_0̦sIo8Χs@ШtJ-Hҩtm:PԪuJZX֫uz`جvK-hڭvmpܮwKxޯwxL.xn;yL[/?P8$ BaPd6DbQ8V-FcQv=HdR9$M'JeRd]/LfS9m7NgS}?PhT:%GRiTe6OTjU:VWVkUv_XlV;%gZmVeo\nW;w^oW`pX<& bqXf7drY(4*F)4]2N*5*RV+5r^,6+f-6]n.7+v/7~08, 18^329,S+  AT. CN)En9GI%ITY-Ki5My=OEQU.MSNUUn]WeYUm[u]}_ aV/cO)e L* áJ'Ţj7ǣ G$ɤLW,˥ g4ͦw<ϧ DѨM*Lө JTժj\׫ d٬Mlۭ tݮ|߯  N+ K'A`xD& CaF%Ebxf5GcE#IdyDU+Kee3Mfyu;OgCQhzE&KSiFSUjzf[WkcYl{Ek[ms]n{{_oap|F'cqG%er| h<" !|B#"hb3#C"$i#1~C#2lb@X4 Bt>!DX^1F~A!HY4Q)Jta1LYq9NAPZ5IRu>QTZ^YV~aX[5iZuq\[y^`\6bv?!d\_1pH,¡pl:ĢqHZ/ƣqz? ȤrI,O(ʥrl_0̦sIo8Χs@ШtJ-Hҩtm:PԪuJZX֫uz`جvK-hڭvmpܮwKxޯwxL.xn;yL[/?P8$ BaPd6DbQ8V-FcQv=HdR9$M'JeRd]/LfS9m7NgS}?PhT:%GRiTe6OTjU:VWVkUv_XlV;%gZmVeo\nW;w^oW`pX<& bqXf7drY(4*F)4]2N*5*RV+5r^,6+f-6]n.7+v/7~08, 18^329,S+  AT. CN)En9GI%ITY-Ki5My=OEQU.MSNUUn]WeYUm[u]}_ aV/cO)e L* áJ'Ţj7ǣ G$ɤLW,˥ g4ͦw<ϧ DѨM*Lө JTժj\׫ d٬Mlۭ tݮ|߯  N+ K'A`xD& CaF%Ebxf5GcE#IdyDU+Kee3Mfyu;OgCQhzE&KSiFSUjzf[WkcYl{Ek[ms]n{{_oap|F'cqG%er| h<" !|B#"hb3#C"$i#1~C#2lb@X4 Bt>!DX^1F~A!HY4Q)Jta1LYq9NAPZ5IRu>QTZ^YV~aX[5iZuq\[y^`\6bv?!d\_1pH,¡pl:ĢqHZ/ƣqz? ȤrI,O(ʥrl_0̦sIo8Χs@ШtJ-Hҩtm:PԪuJZX֫uz`جvK-hڭvmpܮwKxޯwxL.xn;yL[/?P8$ BaPd6DbQ8V-FcQv=HdR9$M'JeRd]/LfS9m7NgS}?PhT:%GRiTe6OTjU:VWVkUv_XlV;%gZmVeo\nW;w^oW`pX<& bqXf7drY(4*F)4]2N*5*RV+5r^,6+f-6]n.7+v/7~08, 18^329,S+  AT. CN)En9GI%ITY-Ki5My=OEQU.MSNUUn]WeYUm[u]}_ aV/cO)e L* áJ'Ţj7ǣ G$ɤLW,˥ g4ͦw<ϧ DѨM*Lө JTժj\׫ d٬Mlۭ tݮ|߯  N+ K'A`xD& CaF%Ebxf5GcE#IdyDU+Kee3Mfyu;OgCQhzE&KSiFSUjzf[WkcYl{Ek[ms]n{{_oap|F'cqG%er| h<" !|B#"hb3#C"$i#1~C#2lb@X4 Bt>!DX^1F~A!HY4Q)Jta1LYq9NAPZ5IRu>QTZ^YV~aX[5iZuq\[y^`\6bv?!d\_1pH,¡pl:ĢqHZ/ƣqz? ȤrI,O(ʥrl_0̦sIo8Χs@ШtJ-Hҩtm:PԪuJZX֫uz`جvK-hڭvmpܮwKxޯwxL.xn;yL[/?P8$ BaPd6DbQ8V-FcQv=HdR9$M'JeRd]/LfS9m7NgS}?PhT:%GRiTe6OTjU:VWVkUv_XlV;%gZmVeo\nW;w^oW`pX<& bqXf7drY(4*F)4]2N*5*RV+5r^,6+f-6]n.7+v/7~08, 18^329,S+  AT. CN)En9GI%ITY-Ki5My=OEQU.MSNUUn]WeYUm[u]}_ aV/cO)e L* áJ'Ţj7ǣ G$ɤLW,˥ g4ͦw<ϧ DѨM*Lө JTժj\׫ d٬Mlۭ tݮ|߯  N+ K'A`xD& CaF%Ebxf5GcE#IdyDU+Kee3Mfyu;OgCQhzE&KSiFSUjzf[WkcYl{Ek[ms]n{{_oap|F'cqG%er| h<" !|B#"hb3#C"$i#1~C#2lb@X4 Bt>!DX^1F~A!HY4Q)Jta1LYq9NAPZ5IRu>QTZ^YV~aX[5iZuq\[y^`\6bv?!d\_1pH,¡pl:ĢqHZ/ƣqz? ȤrI,O(ʥrl_0̦sIo8Χs@ШtJ-Hҩtm:PԪuJZX֫uz`جvK-hڭvmpܮwKxޯwxL.xn;yL[/?P8$ BaPd6DbQ8V-FcQv=HdR9$M'JeRd]/LfS9m7NgS}?PhT:%GRiTe6OTjU:VWVkUv_XlV;%gZmVeo\nW;w^oW`pX<& bqXf7drY(4*F)4]2N*5*RV+5r^,6+f-6]n.7+v/7~08, 18^329,S+  AT. CN)En9GI%ITY-Ki5My=OEQU.MSNUUn]WeYUm[u]}_ aV/cO)e L* áJ'Ţj7ǣ G$ɤLW,˥ g4ͦw<ϧ DѨM*Lө JTժj\׫ d٬Mlۭ tݮ|߯  N+ K'A`xD& CaF%Ebxf5GcE#IdyDU+Kee3Mfyu;OgCQhzE&KSiFSUjzf[WkcYl{Ek[ms]n{{_oap|F'cqG%er| h<" !|B#"hb3#C"$i#1~C#2lb@X4 Bt>!DX^1F~A!HY4Q)Jta1LYq9NAPZ5IRu>QTZ^YV~aX[5iZuq\[y^`\6bv?!d\_1pH,¡pl:ĢqHZ/ƣqz? ȤrI,O(ʥrl_0̦sIo8Χs@ШtJ-Hҩtm:PԪuJZX֫uz`جvK-hڭvmpܮwKxޯwxL.xn;yL[/?P8$ BaPd6DbQ8V-FcQv=HdR9$M'JeRd]/LfS9m7NgS}?PhT:%GRiTe6OTjU:VWVkUv_XlV;%gZmVeo\nW;w^oW`pX<& bqXf7drY(4*F)4]2N*5*RV+5r^,6+f-6]n.7+v/7~08, 18^329,S+  AT. CN)En9GI%ITY-Ki5My=OEQU.MSNUUn]WeYUm[u]}_ aV/cO)e L* áJ'Ţj7ǣ G$ɤLW,˥ g4ͦw<ϧ DѨM*Lө JTժj\׫ d٬Mlۭ tݮ|߯  N+ K'A`xD& CaF%Ebxf5GcE#IdyDU+Kee3Mfyu;OgCQhzE&KSiFSUjzf[WkcYl{Ek[ms]n{{_oap|F'cqG%er| h<" !|B#"hb3#C"$i#1~C#2lb@X4 Bt>!DX^1F~A!HY4Q)Jta1LYq9NAPZ5IRu>QTZ^YV~aX[5iZuq\[y^`\6bv?!d\_1pH,¡pl:ĢqHZ/ƣqz? ȤrI,O(ʥrl_0̦sIo8Χs@ШtJ-Hҩtm:PԪuJZX֫uz`جvK-hڭvmpܮwKxޯwxL.xn;yL[/?P8$ BaPd6DbQ8V-FcQv=HdR9$M'JeRd]/LfS9m7NgS}?PhT:%GRiTe6OTjU:VWVkUv_XlV;%gZmVeo\nW;w^oW`pX<& bqXf7drY(4*F)4]2N*5*RV+5r^,6+f-6]n.7+v/7~08, 18^329,S+  AT. CN)En9GI%ITY-Ki5My=OEQU.MSNUUn]WeYUm[u]}_ aV/cO)e L* áJ'Ţj7ǣ G$ɤLW,˥ g4ͦw<ϧ DѨM*Lө JTժj\׫ d٬Mlۭ tݮ|߯  N+ K'A`xD& CaF%Ebxf5GcE#IdyDU+Kee3Mfyu;OgCQhzE&KSiFSUjzf[WkcYl{Ek[ms]n{{_oap|F'cqG%er| h<" !|B#"hb3#C"$i#1~C#2lb@X4 Bt>!DX^1F~A!HY4Q)Jta1LYq9NAPZ5IRu>QTZ^YV~aX[5iZuq\[y^`\6bv?!d\_1pH,¡pl:ĢqHZ/ƣqz? ȤrI,O(ʥrl_0̦sIo8Χs@ШtJ-Hҩtm:PԪuJZX֫uz`جvK-hڭvmpܮwKxޯwxL.xn;yL[/?P8$ BaPd6DbQ8V-FcQv=HdR9$M'JeRd]/LfS9m7NgS}?PhT:%GRiTe6OTjU:VWVkUv_XlV;%gZmVeo\nW;w^oW`pX<& bqXf7drY(4*F)4]2N*5*RV+5r^,6+f-6]n.7+v/7~08, 18^329,S+  AT. CN)En9GI%ITY-Ki5My=OEQU.MSNUUn]WeYUm[u]}_ aV/cO)e L* áJ'Ţj7ǣ G$ɤLW,˥ g4ͦw<ϧ DѨM*Lө JTժj\׫ d٬Mlۭ tݮ|߯  N+ K'A`xD& CaF%Ebxf5GcE#IdyDU+Kee3Mfyu;OgCQhzE&KSiFSUjzf[WkcYl{Ek[ms]n{{_oap|F'cqG%er| h<" !|B#"hb3#C"$i#1~C#2lb@X4 Bt>!DX^1F~A!HY4Q)Jta1LYq9NAPZ5IRu>QTZ^YV~aX[5iZuq\[y^`\6bv?!d\_1pH,¡pl:ĢqHZ/ƣqz? ȤrI,O(ʥrl_0̦sIo8Χs@ШtJ-Hҩtm:PԪuJZX֫uz`جvK-hڭvmpܮwKxޯwxL.xn;yL[/?P8$ BaPd6DbQ8V-FcQv=HdR9$M'JeRd]/LfS9m7NgS}?PhT:%GRiTe6OTjU:VWVkUv_XlV;%gZmVeo\nW;w^oW`pX<& bqXf7drY(4*F)4]2N*5*RV+5r^,6+f-6]n.7+v/7~08, 18^329,S+  AT. CN)En9GI%ITY-Ki5My=OEQU.MSNUUn]WeYUm[u]}_ aV/cO)e L* áJ'Ţj7ǣ G$ɤLW,˥ g4ͦw<ϧ DѨM*Lө JTժj\׫ d٬Mlۭ tݮ|߯  N+ K'A`xD& CaF%Ebxf5GcE#IdyDU+Kee3Mfyu;OgCQhzE&KSiFSUjzf[WkcYl{Ek[ms]n{{_oap|F'cqG%er| h<" !|B#"hb3#C"$i#1~C#2lb@X4 Bt>!DX^1F~A!HY4Q)Jta1LYq9NAPZ5IRu>QTZ^YV~aX[5iZuq\[y^`\6bv?!d\_1pH,¡pl:ĢqHZ/ƣqz? ȤrI,O(ʥrl_0̦sIo8Χs@ШtJ-Hҩtm:PԪuJZX֫uz`جvK-hڭvmpܮwKxޯwxL.xn;yL[/?P8$ BaPd6DbQ8V-FcQv=HdR9$M'JeRd]/LfS9m7NgS}?PhT:%GRiTe6OTjU:VWVkUv_XlV;%gZmVeo\nW;w^oW`pX<& bqXf7drY(4*F)4]2N*5*RV+5r^,6+f-6]n.7+v/7~08, 18^329,S+  AT. CN)En9GI%ITY-Ki5My=OEQU.MSNUUn]WeYUm[u]}_ aV/cO)e L* áJ'Ţj7ǣ G$ɤLW,˥ g4ͦw<ϧ DѨM*Lө JTժj\׫ d٬Mlۭ tݮ|߯  N+ K'A`xD& CaF%Ebxf5GcE#IdyDU+Kee3Mfyu;OgCQhzE&KSiFSUjzf[WkcYl{Ek[ms]n{{_oap|F'cqG%er| h<" !|B#"hb3#C"$i#1~C#2lb@X4 Bt>!DX^1F~A!HY4Q)Jta1LYq9NAPZ5IRu>QTZ^YV~aX[5iZuq\[y^`\6bv?!d\_1pH,¡pl:ĢqHZ/ƣqz? ȤrI,O(ʥrl_0̦sIo8Χs@ШtJ-Hҩtm:PԪuJZX֫uz`جvK-hڭvmpܮwKxޯwxL.xn;yL[/?P8$ BaPd6DbQ8V-FcQv=HdR9$M'JeRd]/LfS9m7NgS}?PhT:%GRiTe6OTjU:VWVkUv_XlV;%gZmVeo\nW;w^oW`pX<& bqXf7drY(4*F)4]2N*5*RV+5r^,6+f-6]n.7+v/7~08, 18^329,S+  AT. CN)En9GI%ITY-Ki5My=OEQU.MSNUUn]WeYUm[u]}_ aV/cO)e L* áJ'Ţj7ǣ G$ɤLW,˥ g4ͦw<ϧ DѨM*Lө JTժj\׫ d٬Mlۭ tݮ|߯  N+ K'A`xD& CaF%Ebxf5GcE#IdyDU+Kee3Mfyu;OgCQhzE&KSiFSUjzf[WkcYl{Ek[ms]n{{_oap|F'cqG%er| h<" !|B#"hb3#C"$i#1~C#2lb@X4 Bt>!DX^1F~A!HY4Q)Jta1LYq9NAPZ5IRu>QTZ^YV~aX[5iZuq\[y^`\6bv?!d\_1pH,¡pl:ĢqHZ/ƣqz? ȤrI,O(ʥrl_0̦sIo8Χs@ШtJ-Hҩtm:PԪuJZX֫uz`جvK-hڭvmpܮwKxޯwxL.xn;yL[/?P8$ BaPd6DbQ8V-FcQv=HdR9$M'JeRd]/LfS9m7NgS}?PhT:%GRiTe6OTjU:VWVkUv_XlV;%gZmVeo\nW;w^oW`pX<& bqXf7drY(4*F)4]2N*5*RV+5r^,6+f-6]n.7+v/7~08, 18^329,S+  AT. CN)En9GI%ITY-Ki5My=OEQU.MSNUUn]WeYUm[u]}_ aV/cO)e L* áJ'Ţj7ǣ G$ɤLW,˥ g4ͦw<ϧ DѨM*Lө JTժj\׫ d٬Mlۭ tݮ|߯  N+ K'A`xD& CaF%Ebxf5GcE#IdyDU+Kee3Mfyu;OgCQhzE&KSiFSUjzf[WkcYl{Ek[ms]n{{_oap|F'cqG%er| h<" !|B#"hb3#C"$i#1~C#2lb@X4 Bt>!DX^1F~A!HY4Q)Jta1LYq9NAPZ5IRu>QTZ^YV~aX[5iZuq\[y^`\6bv?!d\_1pH,¡pl:ĢqHZ/ƣqz? ȤrI,O(ʥrl_0̦sIo8Χs@ШtJ-Hҩtm:PԪuJZX֫uz`جvK-hڭvmpܮwKxޯwxL.xn;yL[/?P8$ BaPd6DbQ8V-FcQv=HdR9$M'JeRd]/LfS9m7NgS}?PhT:%GRiTe6OTjU:VWVkUv_XlV;%gZmVeo\nW;w^oW`pX<& bqXf7drY(4*F)4]2N*5*RV+5r^,6+f-6]n.7+v/7~08, 18^329,S+  AT. CN)En9GI%ITY-Ki5My=OEQU.MSNUUn]WeYUm[u]}_ aV/cO)e L* áJ'Ţj7ǣ G$ɤLW,˥ g4ͦw<ϧ DѨM*Lө JTժj\׫ d٬Mlۭ tݮ|߯  N+ K'A`xD& CaF%Ebxf5GcE#IdyDU+Kee3Mfyu;OgCQhzE&KSiFSUjzf[WkcYl{Ek[ms]n{{_oap|F'cqG%er| h<" !|B#"hb3#C"$i#1~C#2lb@X4 Bt>!DX^1F~A!HY4Q)Jta1LYq9NAPZ5IRu>QTZ^YV~aX[5iZuq\[y^`\6bv?!d\_1pH,¡pl:ĢqHZ/ƣqz? ȤrI,O(ʥrl_0̦sIo8Χs@ШtJ-Hҩtm:PԪuJZX֫uz`جvK-hڭvmpܮwKxޯwxL.xn;yL[/?P8$ BaPd6DbQ8V-FcQv=HdR9$M'JeRd]/LfS9m7NgS}?PhT:%GRiTe6OTjU:VWVkUv_XlV;%gZmVeo\nW;w^oW`pX<& bqXf7drY(4*F)4]2N*5*RV+5r^,6+f-6]n.7+v/7~08, 18^329,S+  AT. CN)En9GI%ITY-Ki5My=OEQU.MSNUUn]WeYUm[u]}_ aV/cO)e L* áJ'Ţj7ǣ G$ɤLW,˥ g4ͦw<ϧ DѨM*Lө JTժj\׫ d٬Mlۭ tݮ|߯  N+ K'A`xD& CaF%Ebxf5GcE#IdyDU+Kee3Mfyu;OgCQhzE&KSiFSUjzf[WkcYl{Ek[ms]n{{_oap|F'cqG%er| h<" !|B#"hb3#C"$i#1~C#2lb@X4 Bt>!DX^1F~A!HY4Q)Jta1LYq9NAPZ5IRu>QTZ^YV~aX[5iZuq\[y^`\6bv?!d\_1pH,¡pl:ĢqHZ/ƣqz? ȤrI,O(ʥrl_0̦sIo8Χs@ШtJ-Hҩtm:PԪuJZX֫uz`جvK-hڭvmpܮwKxޯwxL.xn;yL[/?P8$ BaPd6DbQ8V-FcQv=HdR9$M'JeRd]/LfS9m7NgS}?PhT:%GRiTe6OTjU:VWVkUv_XlV;%gZmVeo\nW;w^oW`pX<& bqXf7drY(4*F)4]2N*5*RV+5r^,6+f-6]n.7+v/7~08, 18^329,S+  AT. CN)En9GI%ITY-Ki5My=OEQU.MSNUUn]WeYUm[u]}_ aV/cO)e L* áJ'Ţj7ǣ G$ɤLW,˥ g4ͦw<ϧ DѨM*Lө JTժj\׫ d٬Mlۭ tݮ|߯  N+ K'A`xD& CaF%Ebxf5GcE#IdyDU+Kee3Mfyu;OgCQhzE&KSiFSUjzf[WkcYl{Ek[ms]n{{_oap|F'cqG%er| h<" !|B#"hb3#C"$i#1~C#2lb@X4 Bt>!DX^1F~A!HY4Q)Jta1LYq9NAPZ5IRu>QTZ^YV~aX[5iZuq\[y^`\6bv?!d\_1pH,¡pl:ĢqHZ/ƣqz? ȤrI,O(ʥrl_0̦sIo8Χs@ШtJ-Hҩtm:PԪuJZX֫uz`جvK-hڭvmpܮwKxޯwxL.xn;yL[/?P8$ BaPd6DbQ8V-FcQv=HdR9$M'JeRd]/LfS9m7NgS}?PhT:%GRiTe6OTjU:VWVkUv_XlV;%gZmVeo\nW;w^oW`pX<& bqXf7drY(4*F)4]2N*5*RV+5r^,6+f-6]n.7+v/7~08, 18^329,S+  AT. CN)En9GI%ITY-Ki5My=OEQU.MSNUUn]WeYUm[u]}_ aV/cO)e L* áJ'Ţj7ǣ G$ɤLW,˥ g4ͦw<ϧ DѨM*Lө JTժj\׫ d٬Mlۭ tݮ|߯  N+ K'A`xD& CaF%Ebxf5GcE#IdyDU+Kee3Mfyu;OgCQhzE&KSiFSUjzf[WkcYl{Ek[ms]n{{_oap|F'cqG%er| h<" !|B#"hb3#C"$i#1~C#2lb@X4 Bt>!DX^1F~Alibspatialite-4.1.1/test/check_add_tile_triggers_bad_table_name.c0000664000175000017500000001401112163502133022167 00000000000000/* check_add_tile_triggers_bad_table_name.c - Test case for GeoPackage Extensions Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Brad Hards Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #include "test_helpers.h" int main (int argc UNUSED, char *argv[] UNUSED) { sqlite3 *db_handle = NULL; int ret; char *err_msg = NULL; void *cache = spatialite_alloc_connection(); ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); // For debugging / testing if required // ret = sqlite3_open_v2 ("check_add_tile_triggers_bad_table_name.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); spatialite_init_ex(db_handle, cache, 0); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } /* create a minimal raster_format_metadata table (not spec compliant) */ ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS raster_format_metadata", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP raster_format_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -4; } ret = sqlite3_exec (db_handle, "CREATE TABLE raster_format_metadata (r_table_name TEXT NOT NULL, r_raster_column TEXT NOT NULL, mime_type TEXT NOT NULL DEFAULT 'image/jpeg', bit_depth INTEGER NOT NULL DEFAULT 24)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE raster_format_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -5; } /* add in a test entry */ ret = sqlite3_exec (db_handle, "INSERT INTO raster_format_metadata VALUES (\"mytable_tiles\", \"tile_data\", \"image/png\", 24)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT raster_format_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -6; } /* create a minimal tile_matrix_metadata table (not spec compliant) */ ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS tile_matrix_metadata", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP tile_matrix_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -7; } ret = sqlite3_exec (db_handle, "CREATE TABLE tile_matrix_metadata (t_table_name TEXT NOT NULL, zoom_level INTEGER NOT NULL, matrix_width INTEGER NOT NULL, matrix_height INTEGER NOT NULL)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE tile_matrix_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -8; } /* add in a test entry */ ret = sqlite3_exec (db_handle, "INSERT INTO tile_matrix_metadata VALUES (\"mytable_tiles\", 0, 1, 1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT tile_matrix_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -9; } /* create a target table */ ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS mytable_tiles", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP mytable_tiles error: %s\n", err_msg); sqlite3_free (err_msg); return -10; } ret = sqlite3_exec (db_handle, "CREATE TABLE mytable_tiles (id INTEGER PRIMARY KEY AUTOINCREMENT, zoom_level INTEGER NOT NULL DEFAULT 0, tile_column INTEGER NOT NULL DEFAULT 0, tile_row INTEGER NOT NULL DEFAULT 0, tile_data BLOB NOT NULL DEFAULT (zeroblob(4)))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE mytable_tiles error: %s\n", err_msg); sqlite3_free (err_msg); return -11; } /* test trigger setup */ ret = sqlite3_exec (db_handle, "SELECT gpkgAddTileTriggers(\"no_such_table\")", NULL, NULL, &err_msg); if (ret != SQLITE_ERROR) { fprintf(stderr, "Unexpected gpkgAddTileTriggers result: %i\n", ret); return -12; } if (strcmp(err_msg, "no such table: main.no_such_table") != 0) { fprintf (stderr, "SELECT gpkgAddTileTriggers unexpected error message: %s\n", err_msg); sqlite3_free (err_msg); return -13; } sqlite3_free(err_msg); ret = sqlite3_close (db_handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle)); return -200; } spatialite_cleanup_ex(cache); return 0; } libspatialite-4.1.1/test/describefeaturetype.wfs0000664000175000017500000000364012163502133017023 00000000000000 libspatialite-4.1.1/test/check_point_to_tile_no_tile.c0000664000175000017500000002154212163502133020127 00000000000000/* check_point_to_tile_no_tile.c - Test case for GeoPackage Extensions Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Brad Hards Portions created by the Initial Developer are Copyright (C) 2012 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #include #include "test_helpers.h" int main (int argc UNUSED, char *argv[] UNUSED) { sqlite3 *db_handle = NULL; char *sql_statement; sqlite3_stmt *stmt; int ret; char *err_msg = NULL; void *cache = spatialite_alloc_connection(); char *old_SPATIALITE_SECURITY_ENV = NULL; #ifdef _WIN32 char *env; #endif /* not WIN32 */ old_SPATIALITE_SECURITY_ENV = getenv("SPATIALITE_SECURITY"); #ifdef _WIN32 putenv("SPATIALITE_SECURITY=relaxed"); #else /* not WIN32 */ setenv("SPATIALITE_SECURITY", "relaxed", 1); #endif ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); // For debugging / testing if required // ret = sqlite3_open_v2 ("check_point_to_tile_no_tile.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); spatialite_init_ex(db_handle, cache, 0); if (old_SPATIALITE_SECURITY_ENV) { #ifdef _WIN32 env = sqlite3_mprintf("SPATIALITE_SECURITY=%s", old_SPATIALITE_SECURITY_ENV); putenv(env); sqlite3_free(env); #else /* not WIN32 */ setenv("SPATIALITE_SECURITY", old_SPATIALITE_SECURITY_ENV, 1); #endif } else { #ifdef _WIN32 putenv("SPATIALITE_SECURITY="); #else /* not WIN32 */ unsetenv("SPATIALITE_SECURITY"); #endif } if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } /* Create the base tables */ ret = sqlite3_exec (db_handle, "SELECT InitSpatialMetadata(1, 'WGS84')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf(stderr, "Unexpected InitSpatialMetadata result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -2; } ret = sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf(stderr, "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -3; } /* create a target table */ ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS test1_tiles", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP test1_tiles error: %s\n", err_msg); sqlite3_free (err_msg); return -10; } ret = sqlite3_exec (db_handle, "CREATE TABLE test1_tiles (id INTEGER PRIMARY KEY AUTOINCREMENT, zoom_level INTEGER NOT NULL DEFAULT 0, tile_column INTEGER NOT NULL DEFAULT 0, tile_row INTEGER NOT NULL DEFAULT 0, tile_data BLOB NOT NULL DEFAULT (zeroblob(4)))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE mytable_tiles error: %s\n", err_msg); sqlite3_free (err_msg); return -11; } /* add in some test entries */ ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (1, 0, 0, 0, BlobFromFile('tile000.jpeg'))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT level0 error: %s\n", err_msg); sqlite3_free (err_msg); return -12; } ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (2, 1, 0, 0, BlobFromFile('tile100.jpeg'))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT level1 error: %s\n", err_msg); sqlite3_free (err_msg); return -13; } ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (3, 1, 0, 1, BlobFromFile('tile101.jpeg'))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT level1 error: %s\n", err_msg); sqlite3_free (err_msg); return -14; } ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (4, 1, 1, 1, BlobFromFile('tile111.jpeg'))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT level1 error: %s\n", err_msg); sqlite3_free (err_msg); return -15; } ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS test1_tiles_rt_metadata", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP test1_tiles_rt_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -16; } ret = sqlite3_exec (db_handle, "CREATE TABLE test1_tiles_rt_metadata (id INTEGER PRIMARY KEY AUTOINCREMENT, min_x DOUBLE NOT NULL DEFAULT -180.0, min_y DOUBLE NOT NULL DEFAULT -90.0, max_x DOUBLE NOT NULL DEFAULT 180.0, max_y DOUBLE NOT NULL DEFAULT 90.0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE test1_tiles_rt_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -17; } ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles_rt_metadata (id, min_x, min_y, max_x, max_y) VALUES (1, -180.0, -90.0, 180.0, 90.0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT level0 _rt_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -18; } ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles_rt_metadata (id, min_x, min_y, max_x, max_y) VALUES (2, -180.0, 0.0, 0.0, 90.0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT level1 (0,0) _rt_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -19; } ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles_rt_metadata (id, min_x, min_y, max_x, max_y) VALUES (4, 0.0, -90.0, 180.0, 0.0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT level1 (1,1) _rt_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -19; } ret = sqlite3_exec (db_handle, "INSERT INTO raster_columns VALUES (\"test1_tiles\", \"tile_data\", 100, 0, 4326)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT raster_columns row error: %s\n", err_msg); sqlite3_free (err_msg); return -20; } /* try gpkgPointToTile missing tile */ sql_statement = "SELECT gpkgPointToTile(\"test1_tiles\", 4326, 20.0, 30.0, 1)"; ret = sqlite3_prepare_v2 (db_handle, sql_statement, strlen(sql_statement), &stmt, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "failed to prepare SQL statement: %i (%s)\n", ret, sqlite3_errmsg(db_handle)); return -30; } ret = sqlite3_step (stmt); if (ret != SQLITE_ROW) { fprintf(stderr, "unexpected return value for first step: %i\n", ret); return -31; } if (sqlite3_column_type (stmt, 0) != SQLITE_NULL) { fprintf(stderr, "bad type for column 0: %i\n", sqlite3_column_type (stmt, 0)); return -32; } ret = sqlite3_step(stmt); if (ret != SQLITE_DONE) { fprintf(stderr, "unexpected return value for second step: %i\n", ret); return -36; } ret = sqlite3_finalize (stmt); ret = sqlite3_close (db_handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle)); return -100; } spatialite_cleanup_ex(cache); return 0; } libspatialite-4.1.1/test/check_get_normal_zoom_bad_geopackage2.c0000664000175000017500000000721212163502133021775 00000000000000/* check_get_normal_zoom_bad_geopackage2 - Test case for GeoPackage Extensions Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Brad Hards Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #include "test_helpers.h" int main (int argc UNUSED, char *argv[] UNUSED) { sqlite3 *db_handle = NULL; int ret; char *err_msg = NULL; char **results; int rows; int columns; void *cache = spatialite_alloc_connection(); ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); // For debugging / testing if required // ret = sqlite3_open_v2 ("check_get_normal_zoom_bad_geopackage2.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); spatialite_init_ex(db_handle, cache, 0); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } /* delete the tile_matrix_metadata table (deliberately broken) */ ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS tile_matrix_metadata", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP tile_matrix_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -4; } /* now do the query */ ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 0)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_ERROR) { fprintf(stderr, "Expected error for broken geopackage, got %i\n", ret); sqlite3_free (err_msg); return -5; } if (strcmp(err_msg, "no such table: tile_matrix_metadata") != 0) { fprintf (stderr, "Unexpected error message for broken geopackage: %s\n", err_msg); sqlite3_free(err_msg); return -6; } sqlite3_free(err_msg); ret = sqlite3_close (db_handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle)); return -100; } spatialite_cleanup_ex(cache); return 0; } libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/0000775000175000017500000000000012163503227017517 500000000000000libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/concave_hull17.testcase0000664000175000017500000000270712163502133024007 00000000000000ST_ConcaveHull XYZ - no_holes :memory: #use in-memory database SELECT ST_Equals(ST_ConcaveHull(GeomFromText('MULTIPOINTZ(10 10 100, 10 12 100, 10 14 100, 10 16 100, 10 18 100, 10 20 100, 12 10 100, 12 12 100, 12 14 100, 12 16 100, 12 18 100, 12 20 100, 14 10 100, 14 12 100, 14 14 100, 14 18 100, 14 20 100, 17 10 100, 17 12 100, 17 14 100, 17 16 100, 17 18 100, 17 20 100, 16 10 100, 16 12 100, 16 14 100, 16 16 100, 16 18 100, 16 20 100, 18 10 100, 18 20 100, 20 10 100, 20 20 100)')), GeomFromText('POLYGONZ((12 10 100, 10 10 100, 10 12 100, 10 14 100, 10 16 100, 10 18 100, 10 20 100, 12 20 100, 14 20 100, 16 20 100, 17 20 100, 18 20 100, 17 18 100, 17 16 100, 17 14 100, 17 12 100, 18 10 100, 17 10 100, 16 10 100, 14 10 100, 12 10 100))')); 1 # rows (not including the header row) 1 # columns ST_Equals(ST_ConcaveHull(GeomFromText('MULTIPOINTZ(10 10 100, 10 12 100, 10 14 100, 10 16 100, 10 18 100, 10 20 100, 12 10 100, 12 12 100, 12 14 100, 12 16 100, 12 18 100, 12 20 100, 14 10 100, 14 12 100, 14 14 100, 14 18 100, 14 20 100, 17 10 100, 17 12 100, 17 14 100, 17 16 100, 17 18 100, 17 20 100, 16 10 100, 16 12 100, 16 14 100, 16 16 100, 16 18 100, 16 20 100, 18 10 100, 18 20 100, 20 10 100, 20 20 100)')), GeomFromText('POLYGONZ((12 10 100, 10 10 100, 10 12 100, 10 14 100, 10 16 100, 10 18 100, 10 20 100, 12 20 100, 14 20 100, 16 20 100, 17 20 100, 18 20 100, 17 18 100, 17 16 100, 17 14 100, 17 12 100, 18 10 100, 17 10 100, 16 10 100, 14 10 100, 12 10 100))')) 1 libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/concave_hull19.testcase0000664000175000017500000000335012163502133024004 00000000000000ST_ConcaveHull XYZM - no_holes :memory: #use in-memory database SELECT ST_Equals(ST_ConcaveHull(GeomFromText('MULTIPOINTZM(10 10 100 10, 10 12 100 10, 10 14 100 10, 10 16 100 10, 10 18 100 10, 10 20 100 10, 12 10 100 10, 12 12 100 10, 12 14 100 10, 12 16 100 10, 12 18 100 10, 12 20 100 10, 14 10 100 10, 14 12 100 10, 14 14 100 10, 14 18 100 10, 14 20 100 10, 17 10 100 10, 17 12 100 10, 17 14 100 10, 17 16 100 10, 17 18 100 10, 17 20 100 10, 16 10 100 10, 16 12 100 10, 16 14 100 10, 16 16 100 10, 16 18 100 10, 16 20 100 10, 18 10 100 10, 18 20 100 10, 20 10 100 10, 20 20 100 10)')), GeomfromText('POLYGON ZM((12 10 100 0, 10 10 100 0, 10 12 100 0, 10 14 100 0, 10 16 100 0, 10 18 100 0, 10 20 100 0, 12 20 100 0, 14 20 100 0, 16 20 100 0, 17 20 100 0, 18 20 100 0, 17 18 100 0, 17 16 100 0, 17 14 100 0, 17 12 100 0, 18 10 100 0, 17 10 100 0, 16 10 100 0, 14 10 100 0, 12 10 100 0))')); 1 # rows (not including the header row) 1 # columns ST_Equals(ST_ConcaveHull(GeomFromText('MULTIPOINTZM(10 10 100 10, 10 12 100 10, 10 14 100 10, 10 16 100 10, 10 18 100 10, 10 20 100 10, 12 10 100 10, 12 12 100 10, 12 14 100 10, 12 16 100 10, 12 18 100 10, 12 20 100 10, 14 10 100 10, 14 12 100 10, 14 14 100 10, 14 18 100 10, 14 20 100 10, 17 10 100 10, 17 12 100 10, 17 14 100 10, 17 16 100 10, 17 18 100 10, 17 20 100 10, 16 10 100 10, 16 12 100 10, 16 14 100 10, 16 16 100 10, 16 18 100 10, 16 20 100 10, 18 10 100 10, 18 20 100 10, 20 10 100 10, 20 20 100 10)')), GeomfromText('POLYGON ZM((12 10 100 0, 10 10 100 0, 10 12 100 0, 10 14 100 0, 10 16 100 0, 10 18 100 0, 10 20 100 0, 12 20 100 0, 14 20 100 0, 16 20 100 0, 17 20 100 0, 18 20 100 0, 17 18 100 0, 17 16 100 0, 17 14 100 0, 17 12 100 0, 18 10 100 0, 17 10 100 0, 16 10 100 0, 14 10 100 0, 12 10 100 0))')) 1 libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/delaunay3.testcase0000664000175000017500000000031512163502133023053 00000000000000ST_DelaunayTriangulation - integer input (error) :memory: #use in-memory database SELECT ST_DelaunayTriangulation(1); 1 # rows (not including the header row) 1 # columns ST_DelaunayTriangulation(1) (NULL) libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/delaunay11.testcase0000664000175000017500000000050412163502133023132 00000000000000ST_DelaunayTriangulation - NULL tolerance (error) :memory: #use in-memory database SELECT ST_DelaunayTriangulation(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 0, NULL); 1 # rows (not including the header row) 1 # columns ST_DelaunayTriangulation(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 0, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/delaunay15.testcase0000664000175000017500000000130712163502133023140 00000000000000ST_DelaunayTriangulation - (only_edges=yes) :memory: #use in-memory database SELECT ST_Equals(ST_DelaunayTriangulation(GeomFromText('MULTIPOINTZ(0 0 10, 1 1 11, 2 2 12, 0 1 13, 2 1 14)'), 1), GeomFromText('MULTILINESTRINGZ((0 1 13, 2 2 12), (0 0 10, 0 1 13), (0 0 10, 2 1 14), (2 1 14, 2 2 12), (1 1 11, 2 1 14), (1 1 11, 2 2 12), (0 1 13, 1 1 11), (0 0 10, 1 1 11))')); 1 # rows (not including the header row) 1 # columns ST_Equals(ST_DelaunayTriangulation(GeomFromText('MULTIPOINTZ(0 0 10, 1 1 11, 2 2 12, 0 1 13, 2 1 14)'), 1), GeomFromText('MULTILINESTRINGZ((0 1 13, 2 2 12), (0 0 10, 0 1 13), (0 0 10, 2 1 14), (2 1 14, 2 2 12), (1 1 11, 2 1 14), (1 1 11, 2 2 12), (0 1 13, 1 1 11), (0 0 10, 1 1 11))')) 1 libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/voronoj6.testcase0000664000175000017500000000046012163502133022751 00000000000000ST_VoronojDiagram - text edges_only (error) :memory: #use in-memory database SELECT ST_VoronojDiagram(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 'alpha'); 1 # rows (not including the header row) 1 # columns ST_VoronojDiagram(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 'alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/Makefile.am0000664000175000017500000000251212163502133021466 00000000000000 EXTRA_DIST = concave_hull10.testcase \ concave_hull11.testcase \ concave_hull12.testcase \ concave_hull13.testcase \ concave_hull14.testcase \ concave_hull15.testcase \ concave_hull16.testcase \ concave_hull17.testcase \ concave_hull18.testcase \ concave_hull19.testcase \ concave_hull1.testcase \ concave_hull2.testcase \ concave_hull3.testcase \ concave_hull4.testcase \ concave_hull5.testcase \ concave_hull6.testcase \ concave_hull7.testcase \ concave_hull8.testcase \ concave_hull9.testcase \ delaunay10.testcase \ delaunay11.testcase \ delaunay12.testcase \ delaunay13.testcase \ delaunay14.testcase \ delaunay15.testcase \ delaunay16.testcase \ delaunay17.testcase \ delaunay18.testcase \ delaunay19.testcase \ delaunay1.testcase \ delaunay2.testcase \ delaunay3.testcase \ delaunay4.testcase \ delaunay5.testcase \ delaunay6.testcase \ delaunay7.testcase \ delaunay8.testcase \ delaunay9.testcase \ voronoj10.testcase \ voronoj11.testcase \ voronoj12.testcase \ voronoj13.testcase \ voronoj14.testcase \ voronoj15.testcase \ voronoj16.testcase \ voronoj17.testcase \ voronoj18.testcase \ voronoj19.testcase \ voronoj1.testcase \ voronoj20.testcase \ voronoj2.testcase \ voronoj3.testcase \ voronoj4.testcase \ voronoj5.testcase \ voronoj6.testcase \ voronoj8.testcase \ voronoj9.testcase libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/voronoj9.testcase0000664000175000017500000000047512163502133022762 00000000000000ST_VoronojDiagram - BLOB tolerance (error) :memory: #use in-memory database SELECT ST_VoronojDiagram(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 0, zeroblob(4)); 1 # rows (not including the header row) 1 # columns ST_VoronojDiagram(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 0, zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/voronoj3.testcase0000664000175000017500000000027012163502133022745 00000000000000ST_VoronojDiagram - integer input (error) :memory: #use in-memory database SELECT ST_VoronojDiagram(1); 1 # rows (not including the header row) 1 # columns ST_VoronojDiagram(1) (NULL) libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/concave_hull14.testcase0000664000175000017500000000045412163502133024001 00000000000000ST_ConcaveHull - NULL tolerance (error) :memory: #use in-memory database SELECT ST_ConcaveHull(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 1, 1, NULL); 1 # rows (not including the header row) 1 # columns ST_ConcaveHull(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 1, 1, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/voronoj5.testcase0000664000175000017500000000045212163502133022751 00000000000000ST_VoronojDiagram - NULL edges_only (error) :memory: #use in-memory database SELECT ST_VoronojDiagram(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), NULL); 1 # rows (not including the header row) 1 # columns ST_VoronojDiagram(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/concave_hull13.testcase0000664000175000017500000000046212163502133023777 00000000000000ST_ConcaveHull - text tolerance (error) :memory: #use in-memory database SELECT ST_ConcaveHull(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 1, 1, 'alpha'); 1 # rows (not including the header row) 1 # columns ST_ConcaveHull(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 1, 1, 'alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/concave_hull9.testcase0000664000175000017500000000045612163502133023727 00000000000000ST_ConcaveHull - text allow_holes (error) :memory: #use in-memory database SELECT ST_ConcaveHull(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 1, 'alpha'); 1 # rows (not including the header row) 1 # columns ST_ConcaveHull(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 1, 'alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/concave_hull4.testcase0000664000175000017500000000026212163502133023715 00000000000000ST_ConcaveHull - NULL input (error) :memory: #use in-memory database SELECT ST_ConcaveHull(NULL); 1 # rows (not including the header row) 1 # columns ST_ConcaveHull(NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/delaunay10.testcase0000664000175000017500000000051312163502133023131 00000000000000ST_DelaunayTriangulation - text tolerancey (error) :memory: #use in-memory database SELECT ST_DelaunayTriangulation(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 0, 'alpha'); 1 # rows (not including the header row) 1 # columns ST_DelaunayTriangulation(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 0, 'alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/concave_hull2.testcase0000664000175000017500000000027012163502133023712 00000000000000ST_ConcaveHull - text input (error) :memory: #use in-memory database SELECT ST_ConcaveHull('alpha'); 1 # rows (not including the header row) 1 # columns ST_ConcaveHull('alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/concave_hull1.testcase0000664000175000017500000000031012163502133023704 00000000000000ST_ConcaveHull - Invalid BLOB input (error) :memory: #use in-memory database SELECT ST_ConcaveHull(zeroblob(4)); 1 # rows (not including the header row) 1 # columns ST_ConcaveHull(zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/delaunay13.testcase0000664000175000017500000000110712163502133023134 00000000000000ST_DelaunayTriangulation XY - (only_edges=yes) :memory: #use in-memory database SELECT ST_Equals(ST_DelaunayTriangulation(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 1), GeomFromText('MULTILINESTRING((0 1, 2 2), (0 0, 0 1), (0 0, 2 1), (2 1, 2 2), (1 1, 2 1), (1 1, 2 2), (0 1, 1 1), (0 0, 1 1))')); 1 # rows (not including the header row) 1 # columns ST_Equals(ST_DelaunayTriangulation(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 1), GeomFromText('MULTILINESTRING((0 1, 2 2), (0 0, 0 1), (0 0, 2 1), (2 1, 2 2), (1 1, 2 1), (1 1, 2 2), (0 1, 1 1), (0 0, 1 1))')) 1libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/delaunay14.testcase0000664000175000017500000000130412163502133023134 00000000000000ST_DelaunayTriangulation XYZ - (only_edges=no) :memory: #use in-memory database SELECT ST_Equals(ST_DelaunayTriangulation(GeomFromText('MULTIPOINTZ(0 0 10, 1 1 11, 2 2 12, 0 1 13, 2 1 14)'), 0), GeomFromText('MULTIPOLYGONZ(((0 1 13, 1 1 11, 0 0 10, 0 1 13)), ((0 1 13, 2 2 12, 1 1 11, 0 1 13)), ((2 2 12, 2 1 14, 1 1 11, 2 2 12)), ((0 0 10, 1 1 11, 2 1 14, 0 0 10)))')); 1 # rows (not including the header row) 1 # columns ST_Equals(ST_DelaunayTriangulation(GeomFromText('MULTIPOINTZ(0 0 10, 1 1 11, 2 2 12, 0 1 13, 2 1 14)'), 0), GeomFromText('MULTIPOLYGONZ(((0 1 13, 1 1 11, 0 0 10, 0 1 13)), ((0 1 13, 2 2 12, 1 1 11, 0 1 13)), ((2 2 12, 2 1 14, 1 1 11, 2 2 12)), ((0 0 10, 1 1 11, 2 1 14, 0 0 10)))')) 1 libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/concave_hull11.testcase0000664000175000017500000000045012163502133023772 00000000000000ST_ConcaveHull - NULL allow_holes (error) :memory: #use in-memory database SELECT ST_ConcaveHull(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 1, NULL); 1 # rows (not including the header row) 1 # columns ST_ConcaveHull(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 1, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/concave_hull6.testcase0000664000175000017500000000044312163502133023720 00000000000000ST_ConcaveHull - text factor (error) :memory: #use in-memory database SELECT ST_ConcaveHull(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 'alpha'); 1 # rows (not including the header row) 1 # columns ST_ConcaveHull(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 'alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/voronoj1.testcase0000664000175000017500000000032112163502133022740 00000000000000ST_VoronojDiagram - Invalid BLOB input (error) :memory: #use in-memory database SELECT ST_VoronojDiagram(zeroblob(4)); 1 # rows (not including the header row) 1 # columns ST_VoronojDiagram(zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/voronoj11.testcase0000664000175000017500000000046612163502133023033 00000000000000ST_VoronojDiagram - NULL extra_frame_size (error) :memory: #use in-memory database SELECT ST_VoronojDiagram(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 0, NULL); 1 # rows (not including the header row) 1 # columns ST_VoronojDiagram(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 0, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/delaunay7.testcase0000664000175000017500000000051512163502133023061 00000000000000ST_DelaunayTriangulation - BLOB edges_only (error) :memory: #use in-memory database SELECT ST_DelaunayTriangulation(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), zeroblob(4)); 1 # rows (not including the header row) 1 # columns ST_DelaunayTriangulation(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/delaunay5.testcase0000664000175000017500000000047712163502133023066 00000000000000ST_DelaunayTriangulation - NULL edges_only (error) :memory: #use in-memory database SELECT ST_DelaunayTriangulation(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), NULL); 1 # rows (not including the header row) 1 # columns ST_DelaunayTriangulation(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/concave_hull18.testcase0000664000175000017500000000256512163502133024012 00000000000000ST_ConcaveHull XYM - no_holes :memory: #use in-memory database SELECT ST_Equals(ST_ConcaveHull(GeomFromText('MULTIPOINTM(10 10 100, 10 12 100, 10 14 100, 10 16 100, 10 18 100, 10 20 100, 12 10 100, 12 12 100, 12 14 100, 12 16 100, 12 18 100, 12 20 100, 14 10 100, 14 12 100, 14 14 100, 14 18 100, 14 20 100, 17 10 100, 17 12 100, 17 14 100, 17 16 100, 17 18 100, 17 20 100, 16 10 100, 16 12 100, 16 14 100, 16 16 100, 16 18 100, 16 20 100, 18 10 100, 18 20 100, 20 10 100, 20 20 100)')), GeomFromText('POLYGON M((12 10 0, 10 10 0, 10 12 0, 10 14 0, 10 16 0, 10 18 0, 10 20 0, 12 20 0, 14 20 0, 16 20 0, 17 20 0, 18 20 0, 17 18 0, 17 16 0, 17 14 0, 17 12 0, 18 10 0, 17 10 0, 16 10 0, 14 10 0, 12 10 0))')); 1 # rows (not including the header row) 1 # columns ST_Equals(ST_ConcaveHull(GeomFromText('MULTIPOINTM(10 10 100, 10 12 100, 10 14 100, 10 16 100, 10 18 100, 10 20 100, 12 10 100, 12 12 100, 12 14 100, 12 16 100, 12 18 100, 12 20 100, 14 10 100, 14 12 100, 14 14 100, 14 18 100, 14 20 100, 17 10 100, 17 12 100, 17 14 100, 17 16 100, 17 18 100, 17 20 100, 16 10 100, 16 12 100, 16 14 100, 16 16 100, 16 18 100, 16 20 100, 18 10 100, 18 20 100, 20 10 100, 20 20 100)')), GeomFromText('POLYGON M((12 10 0, 10 10 0, 10 12 0, 10 14 0, 10 16 0, 10 18 0, 10 20 0, 12 20 0, 14 20 0, 16 20 0, 17 20 0, 18 20 0, 17 18 0, 17 16 0, 17 14 0, 17 12 0, 18 10 0, 17 10 0, 16 10 0, 14 10 0, 12 10 0))')) 1 libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/delaunay18.testcase0000664000175000017500000000144112163502133023142 00000000000000ST_DelaunayTriangulation XYZM - (only_edges=no) :memory: #use in-memory database SELECT ST_Equals(ST_DelaunayTriangulation(GeomFromText('MULTIPOINTZM(0 0 10 1, 1 1 11 2, 2 2 12 3, 0 1 13 4, 2 1 14 5)'), 0), GeomFromText('MULTIPOLYGONZM(((0 1 13 0, 1 1 11 0, 0 0 10 0, 0 1 13 0)), ((0 1 13 0, 2 2 12 0, 1 1 11 0, 0 1 13 0)), ((2 2 12 0, 2 1 14 0, 1 1 11 0, 2 2 12 0)), ((0 0 10 0, 1 1 11 0, 2 1 14 0, 0 0 10 0))) ')); 1 # rows (not including the header row) 1 # columns ST_Equals(ST_DelaunayTriangulation(GeomFromText('MULTIPOINTZM(0 0 10 1, 1 1 11 2, 2 2 12 3, 0 1 13 4, 2 1 14 5)'), 0), GeomFromText('MULTIPOLYGONZM(((0 1 13 0, 1 1 11 0, 0 0 10 0, 0 1 13 0)), ((0 1 13 0, 2 2 12 0, 1 1 11 0, 0 1 13 0)), ((2 2 12 0, 2 1 14 0, 1 1 11 0, 2 2 12 0)), ((0 0 10 0, 1 1 11 0, 2 1 14 0, 0 0 10 0))) ')) 1 libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/voronoj16.testcase0000664000175000017500000000113612163502133023033 00000000000000ST_VoronojDiagram - (only_edges=yes) :memory: #use in-memory database SELECT AsText(ST_ForceLHR(ST_VoronojDiagram(GeomFromText('MULTIPOINT(10 5, 15 5, 20 4, 12 3, 17 2, 16 6)'), 1))); 1 # rows (not including the header row) 1 # columns AsText(ST_ForceLHR(ST_VoronojDiagram(GeomFromText('MULTIPOINT(10 5, 15 5, 20 4, 12 3, 17 2, 16 6)'), 1))) MULTILINESTRING((12.5 5.5, 14.5 2.5), (12.5 5.5, 12.5 8.5), (12.5 5.5, 9.5 2.5), (12.5 8.5, 16.9 4.1), (12.5 8.5, 12.416667 9), (16.9 4.1, 14.5 2.5), (16.9 4.1, 17.642857 4.285714), (17.642857 4.285714, 19.5 1.5), (17.642857 4.285714, 20 9), (14.5 2.5, 14.5 1.5)) libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/delaunay17.testcase0000664000175000017500000000125712163502133023146 00000000000000ST_DelaunayTriangulation XYM - (only_edges=yes) :memory: #use in-memory database SELECT ST_Equals(ST_DelaunayTriangulation(GeomFromText('MULTIPOINTM(0 0 10, 1 1 11, 2 2 12, 0 1 13, 2 1 14)'), 1), GeomFromText('MULTILINESTRINGM((0 1 0, 2 2 0), (0 0 0, 0 1 0), (0 0 0, 2 1 0), (2 1 0, 2 2 0), (1 1 0, 2 1 0), (1 1 0, 2 2 0), (0 1 0, 1 1 0), (0 0 0, 1 1 0)) ')); 1 # rows (not including the header row) 1 # columns ST_Equals(ST_DelaunayTriangulation(GeomFromText('MULTIPOINTM(0 0 10, 1 1 11, 2 2 12, 0 1 13, 2 1 14)'), 1), GeomFromText('MULTILINESTRINGM((0 1 0, 2 2 0), (0 0 0, 0 1 0), (0 0 0, 2 1 0), (2 1 0, 2 2 0), (1 1 0, 2 1 0), (1 1 0, 2 2 0), (0 1 0, 1 1 0), (0 0 0, 1 1 0)) ')) 1 libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/voronoj8.testcase0000664000175000017500000000045212163502133022754 00000000000000ST_VoronojDiagram - double edges_only (error) :memory: #use in-memory database SELECT ST_VoronojDiagram(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 0.0); 1 # rows (not including the header row) 1 # columns ST_VoronojDiagram(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 0.0) (NULL) libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/delaunay6.testcase0000664000175000017500000000050512163502133023057 00000000000000ST_DelaunayTriangulation - text edges_only (error) :memory: #use in-memory database SELECT ST_DelaunayTriangulation(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 'alpha'); 1 # rows (not including the header row) 1 # columns ST_DelaunayTriangulation(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 'alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/concave_hull16.testcase0000664000175000017500000000130112163502133023773 00000000000000ST_ConcaveHull - allow_holes :memory: #use in-memory database SELECT ST_Area(ST_ConcaveHull(GeomFromText('MULTIPOINT(10 10, 10 12, 10 14, 10 16, 10 18, 10 20, 12 10, 12 12, 12 14, 12 16, 12 18, 12 20, 14 10, 14 12, 14 14, 14 18, 14 20, 17 10, 17 12, 17 14, 17 16, 17 18, 17 20, 16 10, 16 12, 16 14, 16 16, 16 18, 16 20, 18 10, 18 20, 20 10, 20 20)'), 3, 1)); 1 # rows (not including the header row) 1 # columns ST_Area(ST_ConcaveHull(GeomFromText('MULTIPOINT(10 10, 10 12, 10 14, 10 16, 10 18, 10 20, 12 10, 12 12, 12 14, 12 16, 12 18, 12 20, 14 10, 14 12, 14 14, 14 18, 14 20, 17 10, 17 12, 17 14, 17 16, 17 18, 17 20, 16 10, 16 12, 16 14, 16 16, 16 18, 16 20, 18 10, 18 20, 20 10, 20 20)'), 3, 1)) 64.0 libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/delaunay4.testcase0000664000175000017500000000032012163502133023050 00000000000000ST_DelaunayTriangulation - NULL input (error) :memory: #use in-memory database SELECT ST_DelaunayTriangulation(NULL); 1 # rows (not including the header row) 1 # columns ST_DelaunayTriangulation(NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/delaunay12.testcase0000664000175000017500000000110112163502133023125 00000000000000ST_DelaunayTriangulation XY - (only_edges=no) :memory: #use in-memory database SELECT ST_Equals(ST_DelaunayTriangulation(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 0), GeomFromText('MULTIPOLYGON(((0 1, 1 1, 0 0, 0 1)), ((0 1, 2 2, 1 1, 0 1)), ((2 2, 2 1, 1 1, 2 2)), ((0 0, 1 1, 2 1, 0 0)))')); 1 # rows (not including the header row) 1 # columns ST_Equals(ST_DelaunayTriangulation(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 0), GeomFromText('MULTIPOLYGON(((0 1, 1 1, 0 0, 0 1)), ((0 1, 2 2, 1 1, 0 1)), ((2 2, 2 1, 1 1, 2 2)), ((0 0, 1 1, 2 1, 0 0)))')) 1 libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/Makefile.in0000664000175000017500000002742112163502133021505 00000000000000# Makefile.in generated by automake 1.12.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = test/sql_stmt_geostrunk_tests DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = concave_hull10.testcase \ concave_hull11.testcase \ concave_hull12.testcase \ concave_hull13.testcase \ concave_hull14.testcase \ concave_hull15.testcase \ concave_hull16.testcase \ concave_hull17.testcase \ concave_hull18.testcase \ concave_hull19.testcase \ concave_hull1.testcase \ concave_hull2.testcase \ concave_hull3.testcase \ concave_hull4.testcase \ concave_hull5.testcase \ concave_hull6.testcase \ concave_hull7.testcase \ concave_hull8.testcase \ concave_hull9.testcase \ delaunay10.testcase \ delaunay11.testcase \ delaunay12.testcase \ delaunay13.testcase \ delaunay14.testcase \ delaunay15.testcase \ delaunay16.testcase \ delaunay17.testcase \ delaunay18.testcase \ delaunay19.testcase \ delaunay1.testcase \ delaunay2.testcase \ delaunay3.testcase \ delaunay4.testcase \ delaunay5.testcase \ delaunay6.testcase \ delaunay7.testcase \ delaunay8.testcase \ delaunay9.testcase \ voronoj10.testcase \ voronoj11.testcase \ voronoj12.testcase \ voronoj13.testcase \ voronoj14.testcase \ voronoj15.testcase \ voronoj16.testcase \ voronoj17.testcase \ voronoj18.testcase \ voronoj19.testcase \ voronoj1.testcase \ voronoj20.testcase \ voronoj2.testcase \ voronoj3.testcase \ voronoj4.testcase \ voronoj5.testcase \ voronoj6.testcase \ voronoj8.testcase \ voronoj9.testcase all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/sql_stmt_geostrunk_tests/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign test/sql_stmt_geostrunk_tests/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags: TAGS TAGS: ctags: CTAGS CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/voronoj13.testcase0000664000175000017500000000050012163502133023022 00000000000000ST_VoronojDiagram - text tolerancey (error) :memory: #use in-memory database SELECT ST_VoronojDiagram(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 0, 0.0, 'alpha'); 1 # rows (not including the header row) 1 # columns ST_VoronojDiagram(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 0, 0.0, 'alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/concave_hull3.testcase0000664000175000017500000000025712163502133023720 00000000000000ST_ConcaveHull - integer input (error) :memory: #use in-memory database SELECT ST_ConcaveHull(1); 1 # rows (not including the header row) 1 # columns ST_ConcaveHull(1) (NULL) libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/voronoj14.testcase0000664000175000017500000000047112163502133023032 00000000000000ST_VoronojDiagram - NULL tolerance (error) :memory: #use in-memory database SELECT ST_VoronojDiagram(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 0, 0.0, NULL); 1 # rows (not including the header row) 1 # columns ST_VoronojDiagram(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 0, 0.0, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/voronoj15.testcase0000664000175000017500000000135412163502133023034 00000000000000ST_VoronojDiagram - (only_edges=no) :memory: #use in-memory database SELECT AsText(ST_ForceLHR(ST_VoronojDiagram(GeomFromText('MULTIPOINT(10 5, 15 5, 20 4, 12 3, 17 2, 16 6)'), 0))); 1 # rows (not including the header row) 1 # columns AsText(ST_ForceLHR(ST_VoronojDiagram(GeomFromText('MULTIPOINT(10 5, 15 5, 20 4, 12 3, 17 2, 16 6)'), 0))) MULTIPOLYGON(((12.5 5.5, 14.5 2.5, 14.5 1.5, 9.5 1.5, 9.5 2.5, 12.5 5.5)), ((14.5 2.5, 12.5 5.5, 12.5 8.5, 16.9 4.1, 14.5 2.5)), ((12.5 8.5, 12.5 5.5, 9.5 2.5, 9.5 9, 12.416667 9, 12.5 8.5)), ((16.9 4.1, 12.5 8.5, 12.416667 9, 20 9, 17.642857 4.285714, 16.9 4.1)), ((14.5 2.5, 16.9 4.1, 17.642857 4.285714, 19.5 1.5, 14.5 1.5, 14.5 2.5)), ((19.5 1.5, 17.642857 4.285714, 20 9, 20.5 9, 20.5 1.5, 19.5 1.5))) libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/voronoj12.testcase0000664000175000017500000000050712163502133023030 00000000000000ST_VoronojDiagram - BLOB tolerance (error) :memory: #use in-memory database SELECT ST_VoronojDiagram(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 0, 0.0, zeroblob(4)); 1 # rows (not including the header row) 1 # columns ST_VoronojDiagram(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 0, 0.0, zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/voronoj10.testcase0000664000175000017500000000047412163502133023031 00000000000000ST_VoronojDiagram - text extra_frame_size (error) :memory: #use in-memory database SELECT ST_VoronojDiagram(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 0, 'alpha'); 1 # rows (not including the header row) 1 # columns ST_VoronojDiagram(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 0, 'alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/voronoj18.testcase0000664000175000017500000000153612163502133023041 00000000000000ST_VoronojDiagram - XYM (only_edges=no) :memory: #use in-memory database SELECT AsText(ST_ForceLHR(ST_VoronojDiagram(GeomFromText('MULTIPOINTM(10 5 10, 15 5 11, 20 4 12, 12 3 13, 17 2 14, 16 6 15)'), 0))); 1 # rows (not including the header row) 1 # columns AsText(ST_ForceLHR(ST_VoronojDiagram(GeomFromText('MULTIPOINTM(10 5 10, 15 5 11, 20 4 12, 12 3 13, 17 2 14, 16 6 15)'), 0))) MULTIPOLYGON M(((12.5 5.5 0, 14.5 2.5 0, 14.5 1.5 0, 9.5 1.5 0, 9.5 2.5 0, 12.5 5.5 0)), ((14.5 2.5 0, 12.5 5.5 0, 12.5 8.5 0, 16.9 4.1 0, 14.5 2.5 0)), ((12.5 8.5 0, 12.5 5.5 0, 9.5 2.5 0, 9.5 9 0, 12.416667 9 0, 12.5 8.5 0)), ((16.9 4.1 0, 12.5 8.5 0, 12.416667 9 0, 20 9 0, 17.642857 4.285714 0, 16.9 4.1 0)), ((14.5 2.5 0, 16.9 4.1 0, 17.642857 4.285714 0, 19.5 1.5 0, 14.5 1.5 0, 14.5 2.5 0)), ((19.5 1.5 0, 17.642857 4.285714 0, 20 9 0, 20.5 9 0, 20.5 1.5 0, 19.5 1.5 0))) libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/delaunay19.testcase0000664000175000017500000000145012163502133023143 00000000000000ST_DelaunayTriangulation XYZM - (only_edges=yes) :memory: #use in-memory database SELECT ST_Equals(ST_DelaunayTriangulation(GeomFromText('MULTIPOINTZM(0 0 10 1, 1 1 11 2, 2 2 12 3, 0 1 13 4, 2 1 14 5)'), 1), GeomFromText('MULTILINESTRINGZM((0 1 13 0, 2 2 12 0), (0 0 10 0, 0 1 13 0), (0 0 10 0, 2 1 14 0), (2 1 14 0, 2 2 12 0), (1 1 11 0, 2 1 14 0), (1 1 11 0, 2 2 12 0), (0 1 13 0, 1 1 11 0), (0 0 10 0, 1 1 11 0)) ')); 1 # rows (not including the header row) 1 # columns ST_Equals(ST_DelaunayTriangulation(GeomFromText('MULTIPOINTZM(0 0 10 1, 1 1 11 2, 2 2 12 3, 0 1 13 4, 2 1 14 5)'), 1), GeomFromText('MULTILINESTRINGZM((0 1 13 0, 2 2 12 0), (0 0 10 0, 0 1 13 0), (0 0 10 0, 2 1 14 0), (2 1 14 0, 2 2 12 0), (1 1 11 0, 2 1 14 0), (1 1 11 0, 2 2 12 0), (0 1 13 0, 1 1 11 0), (0 0 10 0, 1 1 11 0)) ')) 1 libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/voronoj2.testcase0000664000175000017500000000030112163502133022737 00000000000000ST_VoronojDiagram - text input (error) :memory: #use in-memory database SELECT ST_VoronojDiagram('alpha'); 1 # rows (not including the header row) 1 # columns ST_VoronojDiagram('alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/delaunay8.testcase0000664000175000017500000000047712163502133023071 00000000000000ST_DelaunayTriangulation - double edges_only (error) :memory: #use in-memory database SELECT ST_DelaunayTriangulation(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 0.0); 1 # rows (not including the header row) 1 # columns ST_DelaunayTriangulation(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 0.0) (NULL) libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/concave_hull12.testcase0000664000175000017500000000047212163502133023777 00000000000000ST_ConcaveHull - BLOB tolerance (error) :memory: #use in-memory database SELECT ST_ConcaveHull(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 1, 1, zeroblob(4)); 1 # rows (not including the header row) 1 # columns ST_ConcaveHull(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 1, 1, zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/delaunay16.testcase0000664000175000017500000000124412163502133023141 00000000000000ST_DelaunayTriangulation XYM - (only_edges=no) :memory: #use in-memory database SELECT ST_Equals(ST_DelaunayTriangulation(GeomFromText('MULTIPOINTM(0 0 10, 1 1 11, 2 2 12, 0 1 13, 2 1 14)'), 0), GeomFromText('MULTIPOLYGONM(((0 1 0, 1 1 0, 0 0 0, 0 1 0)), ((0 1 0, 2 2 0, 1 1 0, 0 1 0)), ((2 2 0, 2 1 0, 1 1 0, 2 2 0)), ((0 0 0, 1 1 0, 2 1 0, 0 0 0)))')); 1 # rows (not including the header row) 1 # columns ST_Equals(ST_DelaunayTriangulation(GeomFromText('MULTIPOINTM(0 0 10, 1 1 11, 2 2 12, 0 1 13, 2 1 14)'), 0), GeomFromText('MULTIPOLYGONM(((0 1 0, 1 1 0, 0 0 0, 0 1 0)), ((0 1 0, 2 2 0, 1 1 0, 0 1 0)), ((2 2 0, 2 1 0, 1 1 0, 2 2 0)), ((0 0 0, 1 1 0, 2 1 0, 0 0 0)))')) 1 libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/concave_hull5.testcase0000664000175000017500000000045312163502133023720 00000000000000ST_ConcaveHull - BLOB factor (error) :memory: #use in-memory database SELECT ST_ConcaveHull(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), zeroblob(4)); 1 # rows (not including the header row) 1 # columns ST_ConcaveHull(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/voronoj20.testcase0000664000175000017500000000152412163502133023027 00000000000000ST_VoronojDiagram - (only_edges=no) :memory: #use in-memory database SELECT AsText(ST_ForceLHR(ST_VoronojDiagram(GeomFromText('MULTIPOINT(5 10, 2 15, 4 20, 3 12, 2 17, 6 16)'), 0))); 1 # rows (not including the header row) 1 # columns AsText(ST_ForceLHR(ST_VoronojDiagram(GeomFromText('MULTIPOINT(5 10, 2 15, 4 20, 3 12, 2 17, 6 16)'), 0))) MULTIPOLYGON(((3.875 16, 4.346154 14.115385, 1.5 13.166667, 1.5 16, 3.875 16)), ((4.346154 14.115385, 3.875 16, 4.285714 17.642857, 6.5 18.75, 6.5 12.833333, 5.928571 12.928571, 4.346154 14.115385)), ((4.285714 17.642857, 3.875 16, 1.5 16, 1.5 19.5, 4.285714 17.642857)), ((6.5 18.75, 4.285714 17.642857, 1.5 19.5, 1.5 20.5, 6.5 20.5, 6.5 18.75)), ((4.346154 14.115385, 5.928571 12.928571, 2.5 9.5, 1.5 9.5, 1.5 13.166667, 4.346154 14.115385)), ((2.5 9.5, 5.928571 12.928571, 6.5 12.833333, 6.5 9.5, 2.5 9.5))) libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/voronoj19.testcase0000664000175000017500000000170012163502133023033 00000000000000ST_VoronojDiagram - XYZM (only_edges=no) :memory: #use in-memory database SELECT AsText(ST_ForceLHR(ST_VoronojDiagram(GeomFromText('MULTIPOINTZM(10 5 10 1, 15 5 11 2, 20 4 12 3, 12 3 13 4, 17 2 14 5, 16 6 15 6)'), 0))); 1 # rows (not including the header row) 1 # columns AsText(ST_ForceLHR(ST_VoronojDiagram(GeomFromText('MULTIPOINTZM(10 5 10 1, 15 5 11 2, 20 4 12 3, 12 3 13 4, 17 2 14 5, 16 6 15 6)'), 0))) MULTIPOLYGON ZM(((12.5 5.5 0 0, 14.5 2.5 0 0, 14.5 1.5 0 0, 9.5 1.5 0 0, 9.5 2.5 0 0, 12.5 5.5 0 0)), ((14.5 2.5 0 0, 12.5 5.5 0 0, 12.5 8.5 0 0, 16.9 4.1 0 0, 14.5 2.5 0 0)), ((12.5 8.5 0 0, 12.5 5.5 0 0, 9.5 2.5 0 0, 9.5 9 0 0, 12.416667 9 0 0, 12.5 8.5 0 0)), ((16.9 4.1 0 0, 12.5 8.5 0 0, 12.416667 9 0 0, 20 9 0 0, 17.642857 4.285714 0 0, 16.9 4.1 0 0)), ((14.5 2.5 0 0, 16.9 4.1 0 0, 17.642857 4.285714 0 0, 19.5 1.5 0 0, 14.5 1.5 0 0, 14.5 2.5 0 0)), ((19.5 1.5 0 0, 17.642857 4.285714 0 0, 20 9 0 0, 20.5 9 0 0, 20.5 1.5 0 0, 19.5 1.5 0 0))) libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/delaunay1.testcase0000664000175000017500000000034612163502133023055 00000000000000ST_DelaunayTriangulation - Invalid BLOB input (error) :memory: #use in-memory database SELECT ST_DelaunayTriangulation(zeroblob(4)); 1 # rows (not including the header row) 1 # columns ST_DelaunayTriangulation(zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/voronoj4.testcase0000664000175000017500000000027312163502133022751 00000000000000ST_VoronojDiagram - NULL input (error) :memory: #use in-memory database SELECT ST_VoronojDiagram(NULL); 1 # rows (not including the header row) 1 # columns ST_VoronojDiagram(NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/concave_hull8.testcase0000664000175000017500000000046612163502133023727 00000000000000ST_ConcaveHull - BLOB allow_holes (error) :memory: #use in-memory database SELECT ST_ConcaveHull(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 1, zeroblob(4)); 1 # rows (not including the header row) 1 # columns ST_ConcaveHull(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 1, zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/concave_hull15.testcase0000664000175000017500000000126212163502133024000 00000000000000ST_ConcaveHull - no_holes :memory: #use in-memory database SELECT ST_Area(ST_ConcaveHull(GeomFromText('MULTIPOINT(10 10, 10 12, 10 14, 10 16, 10 18, 10 20, 12 10, 12 12, 12 14, 12 16, 12 18, 12 20, 14 10, 14 12, 14 14, 14 18, 14 20, 17 10, 17 12, 17 14, 17 16, 17 18, 17 20, 16 10, 16 12, 16 14, 16 16, 16 18, 16 20, 18 10, 18 20, 20 10, 20 20)'))); 1 # rows (not including the header row) 1 # columns ST_Area(ST_ConcaveHull(GeomFromText('MULTIPOINT(10 10, 10 12, 10 14, 10 16, 10 18, 10 20, 12 10, 12 12, 12 14, 12 16, 12 18, 12 20, 14 10, 14 12, 14 14, 14 18, 14 20, 17 10, 17 12, 17 14, 17 16, 17 18, 17 20, 16 10, 16 12, 16 14, 16 16, 16 18, 16 20, 18 10, 18 20, 20 10, 20 20)'))) 72.0 libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/concave_hull10.testcase0000664000175000017500000000045012163502133023771 00000000000000ST_ConcaveHull - double allow_holes (error) :memory: #use in-memory database SELECT ST_ConcaveHull(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 1, 2.3); 1 # rows (not including the header row) 1 # columns ST_ConcaveHull(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 1, 2.3) (NULL) libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/voronoj17.testcase0000664000175000017500000000153212163502133023034 00000000000000ST_VoronojDiagram - (only_edges=no) :memory: #use in-memory database SELECT AsText(ST_ForceLHR(ST_VoronojDiagram(GeomFromText('MULTIPOINTZ(10 5 10, 15 5 11, 20 4 12, 12 3 13, 17 2 14, 16 6 15)'), 0))); 1 # rows (not including the header row) 1 # columns AsText(ST_ForceLHR(ST_VoronojDiagram(GeomFromText('MULTIPOINTZ(10 5 10, 15 5 11, 20 4 12, 12 3 13, 17 2 14, 16 6 15)'), 0))) MULTIPOLYGON Z(((12.5 5.5 0, 14.5 2.5 0, 14.5 1.5 0, 9.5 1.5 0, 9.5 2.5 0, 12.5 5.5 0)), ((14.5 2.5 0, 12.5 5.5 0, 12.5 8.5 0, 16.9 4.1 0, 14.5 2.5 0)), ((12.5 8.5 0, 12.5 5.5 0, 9.5 2.5 0, 9.5 9 0, 12.416667 9 0, 12.5 8.5 0)), ((16.9 4.1 0, 12.5 8.5 0, 12.416667 9 0, 20 9 0, 17.642857 4.285714 0, 16.9 4.1 0)), ((14.5 2.5 0, 16.9 4.1 0, 17.642857 4.285714 0, 19.5 1.5 0, 14.5 1.5 0, 14.5 2.5 0)), ((19.5 1.5 0, 17.642857 4.285714 0, 20 9 0, 20.5 9 0, 20.5 1.5 0, 19.5 1.5 0))) libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/delaunay9.testcase0000664000175000017500000000052212163502133023061 00000000000000ST_DelaunayTriangulation - BLOB tolerance (error) :memory: #use in-memory database SELECT ST_DelaunayTriangulation(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 0, zeroblob(4)); 1 # rows (not including the header row) 1 # columns ST_DelaunayTriangulation(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 0, zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/concave_hull7.testcase0000664000175000017500000000043512163502133023722 00000000000000ST_ConcaveHull - NULL factor (error) :memory: #use in-memory database SELECT ST_ConcaveHull(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), NULL); 1 # rows (not including the header row) 1 # columns ST_ConcaveHull(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_geostrunk_tests/delaunay2.testcase0000664000175000017500000000032612163502133023054 00000000000000ST_DelaunayTriangulation - text input (error) :memory: #use in-memory database SELECT ST_DelaunayTriangulation('alpha'); 1 # rows (not including the header row) 1 # columns ST_DelaunayTriangulation('alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/0000775000175000017500000000000012163503230016762 500000000000000libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_project2.testcase0000664000175000017500000000031312163502133022673 00000000000000ST_Project - INTEGER start Point :memory: #use in-memory database SELECT ST_Project(1, 100000, Radians(45)); 1 # rows (not including the header row) 1 # columns ST_Project(1, 100000, Radians(45)) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid25.testcase0000664000175000017500000000040612163502133023467 00000000000000ST_SnapToGrid - six args - NULL grid origin (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), NULL, 1, 2, 3, 4); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), NULL, 1, 2, 3, 4) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_makevalid2.testcase0000664000175000017500000000025312163502133023165 00000000000000ST_MakeValid - NULL BLOB (error) :memory: #use in-memory database SELECT ST_MakeValid(NULL); 1 # rows (not including the header row) 1 # columns ST_MakeValid(NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_area18.testcase0000664000175000017500000000056412163502133022234 00000000000000ST_Area Geodesic - BLOB use_ellipsoid :memory: #use in-memory database SELECT ST_Area(GeomFromText("POLYGON((-0.4 -0.4, -0.4 4, 4 4, 4 -0.4, -0.4 -0.4),(1 1, 1 3, 3 3, 3 1, 1 1))"), zeroblob(4)); 1 # rows (not including the header row) 1 # columns ST_Area(GeomFromText("POLYGON((-0.4 -0.4, -0.4 4, 4 4, 4 -0.4, -0.4 -0.4),(1 1, 1 3, 3 3, 3 1, 1 1))"), zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_split48.testcase0000664000175000017500000000062512163502133022460 00000000000000ST_SplitRight - Polygon-Line (not split) :memory: #use in-memory database SELECT AsText(ST_ForceLHR(ST_SplitRight(GeomFromText('POLYGON((0 1, 10 1, 10 10, 0 10, 0 1))'), GeomFromText('LINESTRING(12 0, 12 20)')))); 1 # rows (not including the header row) 1 # columns AsText(ST_ForceLHR(ST_SplitRight(GeomFromText('POLYGON((0 1, 10 1, 10 10, 0 10, 0 1))'), GeomFromText('LINESTRING(12 0, 12 20)')))) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_split1.testcase0000664000175000017500000000033012163502133022356 00000000000000ST_Split - Invalid BLOB input (error) :memory: #use in-memory database SELECT ST_Split(zeroblob(4), MakePoint(5, 0)); 1 # rows (not including the header row) 1 # columns ST_Split(zeroblob(4), MakePoint(5, 0)) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_split33.testcase0000664000175000017500000000054012163502133022446 00000000000000ST_SplitLeft - Line-Line (not split) :memory: #use in-memory database SELECT AsText(ST_SplitLeft(GeomFromText('LINESTRING(0 1, 10 1)'), GeomFromText('LINESTRING(11 0, 11 3)'))); 1 # rows (not including the header row) 1 # columns AsText(ST_SplitLeft(GeomFromText('LINESTRING(0 1, 10 1)'), GeomFromText('LINESTRING(11 0, 11 3)'))) LINESTRING(0 1, 10 1) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_split16.testcase0000664000175000017500000000064512163502133022455 00000000000000ST_Split - MultiLine-Line (split) :memory: #use in-memory database SELECT AsText(ST_Split(GeomFromText('MULTILINESTRING((0 2, 10 2), (0 1, 10 1))'), GeomFromText('LINESTRING(7 0, 7 3)'))); 1 # rows (not including the header row) 1 # columns AsText(ST_Split(GeomFromText('MULTILINESTRING((0 2, 10 2), (0 1, 10 1))'), GeomFromText('LINESTRING(7 0, 7 3)'))) MULTILINESTRING((0 2, 7 2), (7 2, 10 2), (0 1, 7 1), (7 1, 10 1)) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_split22.testcase0000664000175000017500000000062512163502133022450 00000000000000ST_Split - MultiLine-Line (not split) :memory: #use in-memory database SELECT AsText(ST_Split(GeomFromText('MULTILINESTRING((0 2, 10 2), (0 1, 10 1))'), GeomFromText('LINESTRING(-1 0, -1 3)'))); 1 # rows (not including the header row) 1 # columns AsText(ST_Split(GeomFromText('MULTILINESTRING((0 2, 10 2), (0 1, 10 1))'), GeomFromText('LINESTRING(-1 0, -1 3)'))) MULTILINESTRING((0 2, 10 2), (0 1, 10 1)) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid9.testcase0000664000175000017500000000037212163502133023413 00000000000000ST_SnapToGrid - three args - text sizeX (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), 'alpha', 0.5); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), 'alpha', 0.5) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_azimuth7.testcase0000664000175000017500000000032612163502133022717 00000000000000ST_Azimuth - integer PointB (error) :memory: #use in-memory database SELECT ST_Azimuth(MakePoint(10, 10, 4326), 1); 1 # rows (not including the header row) 1 # columns ST_Azimuth(MakePoint(10, 10, 4326), 1) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_segmentize8.testcase0000664000175000017500000000043212163502133023407 00000000000000ST_Segmentize - text distance (error) :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(GeomFromText('LINESTRING(1 1, 2 2)'), 'alpha')); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Segmentize(GeomFromText('LINESTRING(1 1, 2 2)'), 'alpha')) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid40.testcase0000664000175000017500000000045212163502133023465 00000000000000ST_SnapToGrid - six args - BLOB sizeZ (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), MakePoint(1, 1), 1, 2, zeroblob(4), 4); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), MakePoint(1, 1), 1, 2, zeroblob(4), 4) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_makevalid4.testcase0000664000175000017500000000055312163502133023172 00000000000000ST_MakeValid - already valid MultiPolygon :memory: #use in-memory database SELECT ST_IsValid(ST_MakeValid(GeomFromText('MULTIPOLYGON(((0 0, 1 0, 1 1, 0 1, 0 0)), ((2 2, 3 2, 3 3, 2 3, 2 2)))'))); 1 # rows (not including the header row) 1 # columns ST_IsValid(ST_MakeValid(GeomFromText('MULTIPOLYGON(((0 0, 1 0, 1 1, 0 1, 0 0)), ((2 2, 3 2, 3 3, 2 3, 2 2)))'))) 1 libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid63.testcase0000664000175000017500000000072712163502133023477 00000000000000ST_SnapToGrid - MultiPoint M :memory: #use in-memory database SELECT AsText(ST_SnapToGrid(GeomFromText('MULTIPOINTM(1.2 2.3 10.1, 1.21 2.31 10.11, 2.2 3.3 21.1, 2.21 3.33 21.12)'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)); 1 # rows (not including the header row) 1 # columns AsText(ST_SnapToGrid(GeomFromText('MULTIPOINTM(1.2 2.3 10.1, 1.21 2.31 10.11, 2.2 3.3 21.1, 2.21 3.33 21.12)'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)) MULTIPOINT M(1.25 2.25 10, 2.25 3.25 21) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_asx3d4.testcase0000664000175000017500000000025712163502133022260 00000000000000ST_AsX3D - 2D point :memory: #use in-memory database SELECT ST_AsX3D(MakePoint(12, 21)); 1 # rows (not including the header row) 1 # columns ST_AsX3D(MakePoint(12, 21)) 12 21 libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_makevaliddiscarded2.testcase0000664000175000017500000000030612163502133025027 00000000000000ST_MakeValidDiscarded - NULL BLOB (error) :memory: #use in-memory database SELECT ST_MakeValidDiscarded(NULL); 1 # rows (not including the header row) 1 # columns ST_MakeValidDiscarded(NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_area16.testcase0000664000175000017500000000054612163502133022232 00000000000000ST_Area Geodesic - DOUBLE use_ellipsoid :memory: #use in-memory database SELECT ST_Area(GeomFromText("POLYGON((-0.4 -0.4, -0.4 4, 4 4, 4 -0.4, -0.4 -0.4),(1 1, 1 3, 3 3, 3 1, 1 1))"), 0.5); 1 # rows (not including the header row) 1 # columns ST_Area(GeomFromText("POLYGON((-0.4 -0.4, -0.4 4, 4 4, 4 -0.4, -0.4 -0.4),(1 1, 1 3, 3 3, 3 1, 1 1))"), 0.5) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_split12.testcase0000664000175000017500000000056112163502133022446 00000000000000ST_Split - Line-Collection (error) :memory: #use in-memory database SELECT ST_Split(GeomFromText('LINESTRING(0 1, 10 1)'), GeomFromText('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1, 2 2)')); 1 # rows (not including the header row) 1 # columns ST_Split(GeomFromText('LINESTRING(0 1, 10 1)'), GeomFromText('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1, 2 2)')) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_project9.testcase0000664000175000017500000000040512163502133022704 00000000000000ST_Project - TEXT distance :memory: #use in-memory database SELECT ST_Project(GeomFromText('POINT(0 0)', 4326), 'alpha', Radians(45)); 1 # rows (not including the header row) 1 # columns ST_Project(GeomFromText('POINT(0 0)', 4326), 'alpha', Radians(45)) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/Makefile.am0000664000175000017500000001536712163502133020753 00000000000000 EXTRA_DIST = 3ddistance10.testcase \ 3ddistance1.testcase \ 3ddistance2.testcase \ 3ddistance3.testcase \ 3ddistance4.testcase \ 3ddistance5.testcase \ 3ddistance6.testcase \ 3ddistance7.testcase \ 3ddistance8.testcase \ 3ddistance9.testcase \ 3dmaxdistance10.testcase \ 3dmaxdistance1.testcase \ 3dmaxdistance2.testcase \ 3dmaxdistance3.testcase \ 3dmaxdistance4.testcase \ 3dmaxdistance5.testcase \ 3dmaxdistance6.testcase \ 3dmaxdistance7.testcase \ 3dmaxdistance8.testcase \ 3dmaxdistance9.testcase \ maxdistance10.testcase \ maxdistance1.testcase \ maxdistance2.testcase \ maxdistance3.testcase \ maxdistance4.testcase \ maxdistance5.testcase \ maxdistance6.testcase \ maxdistance7.testcase \ maxdistance8.testcase \ maxdistance9.testcase \ st_asx3d10.testcase \ st_asx3d11.testcase \ st_asx3d12.testcase \ st_asx3d13.testcase \ st_asx3d14.testcase \ st_asx3d15.testcase \ st_asx3d16.testcase \ st_asx3d17.testcase \ st_asx3d18.testcase \ st_asx3d19.testcase \ st_asx3d1.testcase \ st_asx3d20.testcase \ st_asx3d21.testcase \ st_asx3d22.testcase \ st_asx3d23.testcase \ st_asx3d24.testcase \ st_asx3d25.testcase \ st_asx3d26.testcase \ st_asx3d27.testcase \ st_asx3d28.testcase \ st_asx3d29.testcase \ st_asx3d2.testcase \ st_asx3d30.testcase \ st_asx3d3.testcase \ st_asx3d4.testcase \ st_asx3d5.testcase \ st_asx3d6.testcase \ st_asx3d7.testcase \ st_asx3d8.testcase \ st_asx3d9.testcase \ st_area10.testcase \ st_area11.testcase \ st_area12.testcase \ st_area13.testcase \ st_area14.testcase \ st_area15.testcase \ st_area16.testcase \ st_area17.testcase \ st_area18.testcase \ st_azimuth11.testcase \ st_azimuth12.testcase \ st_azimuth13.testcase \ st_azimuth14.testcase \ st_azimuth15.testcase \ st_azimuth16.testcase \ st_azimuth17.testcase \ st_azimuth1.testcase \ st_azimuth2.testcase \ st_azimuth3.testcase \ st_azimuth4.testcase \ st_azimuth5.testcase \ st_azimuth6.testcase \ st_azimuth7.testcase \ st_azimuth8.testcase \ st_azimuth9.testcase \ st_geohash10.testcase \ st_geohash1.testcase \ st_geohash2.testcase \ st_geohash3.testcase \ st_geohash4.testcase \ st_geohash5.testcase \ st_geohash6.testcase \ st_geohash7.testcase \ st_geohash8.testcase \ st_geohash9.testcase \ st_makevalid1.testcase \ st_makevalid2.testcase \ st_makevalid3.testcase \ st_makevalid4.testcase \ st_makevalid5.testcase \ st_makevalid6.testcase \ st_makevalid7.testcase \ st_makevalid8.testcase \ st_makevaliddiscarded1.testcase \ st_makevaliddiscarded2.testcase \ st_makevaliddiscarded3.testcase \ st_makevaliddiscarded4.testcase \ st_makevaliddiscarded5.testcase \ st_makevaliddiscarded6.testcase \ st_makevaliddiscarded7.testcase \ st_makevaliddiscarded8.testcase \ st_project1.testcase \ st_project2.testcase \ st_project3.testcase \ st_project4.testcase \ st_project5.testcase \ st_project6.testcase \ st_project7.testcase \ st_project8.testcase \ st_project9.testcase \ st_project10.testcase \ st_project11.testcase \ st_project12.testcase \ st_project13.testcase \ st_project14.testcase \ st_segmentize10.testcase \ st_segmentize11.testcase \ st_segmentize12.testcase \ st_segmentize13.testcase \ st_segmentize14.testcase \ st_segmentize15.testcase \ st_segmentize16.testcase \ st_segmentize17.testcase \ st_segmentize18.testcase \ st_segmentize19.testcase \ st_segmentize1.testcase \ st_segmentize20.testcase \ st_segmentize21.testcase \ st_segmentize22.testcase \ st_segmentize23.testcase \ st_segmentize24.testcase \ st_segmentize25.testcase \ st_segmentize26.testcase \ st_segmentize27.testcase \ st_segmentize28.testcase \ st_segmentize29.testcase \ st_segmentize2.testcase \ st_segmentize30.testcase \ st_segmentize31.testcase \ st_segmentize3.testcase \ st_segmentize4.testcase \ st_segmentize5.testcase \ st_segmentize6.testcase \ st_segmentize7.testcase \ st_segmentize8.testcase \ st_segmentize9.testcase \ st_snaptogrid10.testcase \ st_snaptogrid11.testcase \ st_snaptogrid12.testcase \ st_snaptogrid13.testcase \ st_snaptogrid14.testcase \ st_snaptogrid15.testcase \ st_snaptogrid16.testcase \ st_snaptogrid17.testcase \ st_snaptogrid18.testcase \ st_snaptogrid19.testcase \ st_snaptogrid1.testcase \ st_snaptogrid20.testcase \ st_snaptogrid21.testcase \ st_snaptogrid22.testcase \ st_snaptogrid23.testcase \ st_snaptogrid24.testcase \ st_snaptogrid25.testcase \ st_snaptogrid26.testcase \ st_snaptogrid27.testcase \ st_snaptogrid28.testcase \ st_snaptogrid29.testcase \ st_snaptogrid2.testcase \ st_snaptogrid30.testcase \ st_snaptogrid31.testcase \ st_snaptogrid32.testcase \ st_snaptogrid33.testcase \ st_snaptogrid34.testcase \ st_snaptogrid35.testcase \ st_snaptogrid36.testcase \ st_snaptogrid37.testcase \ st_snaptogrid38.testcase \ st_snaptogrid39.testcase \ st_snaptogrid3.testcase \ st_snaptogrid40.testcase \ st_snaptogrid41.testcase \ st_snaptogrid42.testcase \ st_snaptogrid43.testcase \ st_snaptogrid44.testcase \ st_snaptogrid45.testcase \ st_snaptogrid46.testcase \ st_snaptogrid47.testcase \ st_snaptogrid48.testcase \ st_snaptogrid49.testcase \ st_snaptogrid4.testcase \ st_snaptogrid50.testcase \ st_snaptogrid51.testcase \ st_snaptogrid52.testcase \ st_snaptogrid53.testcase \ st_snaptogrid54.testcase \ st_snaptogrid55.testcase \ st_snaptogrid56.testcase \ st_snaptogrid57.testcase \ st_snaptogrid58.testcase \ st_snaptogrid59.testcase \ st_snaptogrid5.testcase \ st_snaptogrid60.testcase \ st_snaptogrid61.testcase \ st_snaptogrid62.testcase \ st_snaptogrid63.testcase \ st_snaptogrid64.testcase \ st_snaptogrid65.testcase \ st_snaptogrid6.testcase \ st_snaptogrid7.testcase \ st_snaptogrid8.testcase \ st_snaptogrid9.testcase \ st_split10.testcase \ st_split11.testcase \ st_split12.testcase \ st_split13.testcase \ st_split14.testcase \ st_split15.testcase \ st_split16.testcase \ st_split17.testcase \ st_split18.testcase \ st_split19.testcase \ st_split1.testcase \ st_split20.testcase \ st_split21.testcase \ st_split22.testcase \ st_split23.testcase \ st_split24.testcase \ st_split25.testcase \ st_split26.testcase \ st_split27.testcase \ st_split28.testcase \ st_split29.testcase \ st_split2.testcase \ st_split30.testcase \ st_split31.testcase \ st_split32.testcase \ st_split33.testcase \ st_split34.testcase \ st_split35.testcase \ st_split36.testcase \ st_split37.testcase \ st_split38.testcase \ st_split39.testcase \ st_split3.testcase \ st_split40.testcase \ st_split41.testcase \ st_split42.testcase \ st_split43.testcase \ st_split44.testcase \ st_split45.testcase \ st_split46.testcase \ st_split47.testcase \ st_split48.testcase \ st_split49.testcase \ st_split4.testcase \ st_split5.testcase \ st_split6.testcase \ st_split7.testcase \ st_split8.testcase \ st_split9.testcase libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_asx3d23.testcase0000664000175000017500000000062612163502133022341 00000000000000ST_AsX3D - 3D linestring, 6 digit precision, blob options :memory: #use in-memory database SELECT ST_AsX3D(GeomFromText('LINESTRINGZ(10.12345678 10.98765432 101.123, 11 10 102, 11.321 11.12 103.6453128)'), 6, zeroblob(4)); 1 # rows (not including the header row) 1 # columns ST_AsX3D(GeomFromText('LINESTRINGZ(10.12345678 10.98765432 101.123, 11 10 102, 11.321 11.12 103.6453128)'), 6, zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_azimuth14.testcase0000664000175000017500000000043012163502133022771 00000000000000ST_Azimuth - MultiPoint (error) :memory: #use in-memory database SELECT ST_Azimuth(MakePoint(10, 10, 4326), GeomFromText('MULTIPOINT(0 0, 1 1)')); 1 # rows (not including the header row) 1 # columns ST_Azimuth(MakePoint(10, 10, 4326), GeomFromText('MULTIPOINT(0 0, 1 1)')) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_segmentize24.testcase0000664000175000017500000000146412163502133023473 00000000000000ST_Segmentize - Polygon M :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(GeomFromText('POLYGONM((3 3 10, 6 3 11, 6 6 12, 3 6 13, 3 3 10), (4 4 10, 5 4 11, 5 5 12, 5 4 13, 4 4 10))'), 0.5)); 1 # rows (not including the header row) 1 # column ST_AsText(ST_Segmentize(GeomFromText('POLYGONM((3 3 10, 6 3 11, 6 6 12, 3 6 13, 3 3 10), (4 4 10, 5 4 11, 5 5 12, 5 4 13, 4 4 10))'), 0.5)) POLYGON M((3 3 10, 3.5 3 10.166667, 4 3 10.333333, 4.5 3 10.5, 5 3 10.666667, 5.5 3 10.833333, 6 3 11, 6 3.5 11.166667, 6 4 11.333333, 6 4.5 11.5, 6 5 11.666667, 6 5.5 11.833333, 6 6 12, 5.5 6 12.166667, 5 6 12.333333, 4.5 6 12.5, 4 6 12.666667, 3.5 6 12.833333, 3 6 13, 3 5.5 12.5, 3 5 12, 3 4.5 11.5, 3 4 11, 3 3.5 10.5, 3 3 10), (4 4 10, 4.5 4 10.5, 5 4 11, 5 4.5 11.5, 5 5 12, 5 4.5 12.5, 5 4 13, 4.5 4 11.5, 4 4 10)) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_geohash8.testcase0000664000175000017500000000047412163502133022661 00000000000000ST_GeoHash - WGS84 Polygon :memory: #use in-memory database SELECT ST_GeoHash(GeomFromText('POLYGON((7 10, 7.0001 10, 7.0001 10.0001, 7 10.0001, 7 10))', 4326)); 1 # rows (not including the header row) 1 # columns ST_GeoHash(GeomFromText('POLYGON((7 10, 7.0001 10, 7.0001 10.0001, 7 10.0001, 7 10))', 4326)) s1ubzk3 libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid3.testcase0000664000175000017500000000034712163502133023407 00000000000000ST_SnapToGrid - two args - NULL size (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), NULL); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_split37.testcase0000664000175000017500000000121512163502133022452 00000000000000ST_SplitLeft - Collection-Line (not split) :memory: #use in-memory database SELECT AsText(ST_ForceLHR(ST_SplitLeft(GeomFromText('GEOMETRYCOLLECTION(LINESTRING(0 11, 10 11), POLYGON((0 1, 10 1, 10 10, 0 10, 0 1), (5 5, 9 5, 9 9, 5 9, 5 5)))'), GeomFromText('LINESTRING(-1 0, -1 20)')))); 1 # rows (not including the header row) 1 # columns AsText(ST_ForceLHR(ST_SplitLeft(GeomFromText('GEOMETRYCOLLECTION(LINESTRING(0 11, 10 11), POLYGON((0 1, 10 1, 10 10, 0 10, 0 1), (5 5, 9 5, 9 9, 5 9, 5 5)))'), GeomFromText('LINESTRING(-1 0, -1 20)')))) GEOMETRYCOLLECTION(LINESTRING(0 11, 10 11), POLYGON((0 1, 0 10, 10 10, 10 1, 0 1), (5 5, 9 5, 9 9, 5 9, 5 5))) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_asx3d14.testcase0000664000175000017500000000071212163502133022335 00000000000000ST_AsX3D - 2D multipolygon :memory: #use in-memory database SELECT ST_AsX3D(GeomFromText('MULTIPOLYGON(((10 10, 11 10, 11 11, 10 11, 10 10)), ((20 20, 21 20, 21 21, 20 21, 20 20)))')); 1 # rows (not including the header row) 1 # columns ST_AsX3D(GeomFromText('MULTIPOLYGON(((10 10, 11 10, 11 11, 10 11, 10 10)), ((20 20, 21 20, 21 21, 20 21, 20 20)))')) 10 10 11 10 11 11 10 11 20 20 21 20 21 21 20 21 ' />:0 libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_azimuth5.testcase0000664000175000017500000000035312163502133022715 00000000000000ST_Azimuth - bad blob PointB (error) :memory: #use in-memory database SELECT ST_Azimuth(MakePoint(10, 10, 4326), zeroblob(4)); 1 # rows (not including the header row) 1 # columns ST_Azimuth(MakePoint(10, 10, 4326), zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_asx3d20.testcase0000664000175000017500000000074212163502133022335 00000000000000ST_AsX3D - 3D linestring, 6 digit precision :memory: #use in-memory database SELECT ST_AsX3D(GeomFromText('LINESTRINGZ(10.12345678 10.98765432 101.123, 11 10 102, 11.321 11.12 103.6453128)'), 6); 1 # rows (not including the header row) 1 # columns ST_AsX3D(GeomFromText('LINESTRINGZ(10.12345678 10.98765432 101.123, 11 10 102, 11.321 11.12 103.6453128)'), 6) :0 libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/maxdistance8.testcase0000664000175000017500000000050512163502133023030 00000000000000MaxDistance - intersecting 2D lines :memory: #use in-memory database SELECT ST_MaxDistance(GeomFromText("LINESTRING(0 0, 10 0)"), GeomFromText("LINESTRING(0 0, 0 5)")) 1 # rows (not including the header row) 1 # columns ST_MaxDistance(GeomFromText("LINESTRING(0 0, 10 0)"), GeomFromText("LINESTRING(0 0, 0 5)")) 11.180339:6 libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_segmentize21.testcase0000664000175000017500000000052212163502133023462 00000000000000ST_Segmentize - Linestring ZM :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(GeomFromText('LINESTRINGZM(1 1 10 11, 1 2 11 13)'), 0.5)); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Segmentize(GeomFromText('LINESTRINGZM(1 1 10 11, 1 2 11 13)'), 0.5)) LINESTRING ZM(1 1 10 11, 1 1.5 10.5 12, 1 2 11 13) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid21.testcase0000664000175000017500000000040512163502133023462 00000000000000ST_SnapToGrid - five args - text sizeX (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), 1, 1, 'alpha', 0.5); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), 1, 1, 'alpha', 0.5) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_split3.testcase0000664000175000017500000000031012163502133022356 00000000000000ST_Split - text input (error) :memory: #use in-memory database SELECT ST_Split('alpha', MakePoint(5, 0)); 1 # rows (not including the header row) 1 # columns ST_Split('alpha', MakePoint(5, 0)) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid61.testcase0000664000175000017500000000072312163502133023471 00000000000000ST_SnapToGrid - Linestring M :memory: #use in-memory database SELECT AsText(ST_SnapToGrid(GeomFromText('LINESTRINGM(1.2 2.3 10.1, 1.21 2.31 10.11, 1.22 2.32 10.12, 2.1 3.9 11.4)'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)); 1 # rows (not including the header row) 1 # columns AsText(ST_SnapToGrid(GeomFromText('LINESTRINGM(1.2 2.3 10.1, 1.21 2.31 10.11, 1.22 2.32 10.12, 2.1 3.9 11.4)'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)) LINESTRING M(1.25 2.25 10, 2 4 11.5) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_geohash3.testcase0000664000175000017500000000023212163502133022644 00000000000000ST_GeoHash - int geometry :memory: #use in-memory database SELECT ST_GeoHash(1); 1 # rows (not including the header row) 1 # columns ST_GeoHash(1) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid30.testcase0000664000175000017500000000043412163502133023464 00000000000000ST_SnapToGrid - six args - NULL sizeX (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), MakePoint(1, 1), NULL, 2, 3, 4); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), MakePoint(1, 1), NULL, 2, 3, 4) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid50.testcase0000664000175000017500000000232212163502133023464 00000000000000ST_SnapToGrid - Polygon ZM :memory: #use in-memory database SELECT AsText(ST_SnapToGrid(GeomFromText('POLYGONZM((0.1 0.1 10.1 20.1, 0.2 0.2 10.11 20.12, 0.2 5.1 10.12 20.13, 4.9 4.9 10.51 20.51, 5.1 5.1 10.49 20.49, 4.9 0.15 10.1 20.1, 0.1 0.1 10.1 20.1), (3.1 3.1 10.1 20.1, 3.2 3.1 10.11 20.11, 3.2 3.2 10.12 20.12, 3.2 3.1 10.13 20.13, 3.1 3.1 10.1 20.1), (1.1 1.1 10.1 20.1, 1.1 2.1 10.2 20.2, 2.1 2.1 10.3 20.3, 2.1 1.1 10.4 20.4, 1.1 1.1 10.1 20.1))'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)); 1 # rows (not including the header row) 1 # columns AsText(ST_SnapToGrid(GeomFromText('POLYGONZM((0.1 0.1 10.1 20.1, 0.2 0.2 10.11 20.12, 0.2 5.1 10.12 20.13, 4.9 4.9 10.51 20.51, 5.1 5.1 10.49 20.49, 4.9 0.15 10.1 20.1, 0.1 0.1 10.1 20.1), (3.1 3.1 10.1 20.1, 3.2 3.1 10.11 20.11, 3.2 3.2 10.12 20.12, 3.2 3.1 10.13 20.13, 3.1 3.1 10.1 20.1), (1.1 1.1 10.1 20.1, 1.1 2.1 10.2 20.2, 2.1 2.1 10.3 20.3, 2.1 1.1 10.4 20.4, 1.1 1.1 10.1 20.1))'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)) POLYGON ZM((0 0 10 20, 0.25 0.25 10 20, 0.25 5 10 20.25, 5 5 10.5 20.5, 5 0.25 10 20, 0 0 10 20), (3 3 10 20, 3.25 3 10 20, 3.25 3.25 10 20, 3.25 3 10.25 20.25, 3 3 10 20), (1 1 10 20, 1 2 10.25 20.25, 2 2 10.25 20.25, 2 1 10.5 20.5, 1 1 10 20)) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/3ddistance9.testcase0000664000175000017500000000036412163502133022555 000000000000003DDistance - two 3D points :memory: #use in-memory database SELECT ST_3DDistance(MakePointZ(1, 2, 3), MakePointZ(4, 6, 5)); 1 # rows (not including the header row) 1 # columns ST_3DDistance(MakePointZ(1, 2, 3), MakePointZ(4, 6, 5)) 5.385164:6 libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_asx3d5.testcase0000664000175000017500000000027712163502133022263 00000000000000ST_AsX3D - 3D point :memory: #use in-memory database SELECT ST_AsX3D(MakePointZ(12, 21, 101)); 1 # rows (not including the header row) 1 # columns ST_AsX3D(MakePointZ(12, 21, 101)) 12 21 101 libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_azimuth15.testcase0000664000175000017500000000043012163502133022772 00000000000000ST_Azimuth - Linestring (error) :memory: #use in-memory database SELECT ST_Azimuth(MakePoint(10, 10, 4326), GeomFromText('LINESTRING(0 0, 1 1)')); 1 # rows (not including the header row) 1 # columns ST_Azimuth(MakePoint(10, 10, 4326), GeomFromText('LINESTRING(0 0, 1 1)')) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid62.testcase0000664000175000017500000000172612163502133023476 00000000000000ST_SnapToGrid - Polygon M :memory: #use in-memory database SELECT AsText(ST_SnapToGrid(GeomFromText('POLYGONM((0.1 0.1 10.1, 0.2 0.2 10.11, 0.2 5.1 10.12, 4.9 4.9 10.51, 5.1 5.1 10.49, 4.9 0.15 10.1, 0.1 0.1 10.1), (3.1 3.1 10.1, 3.2 3.1 10.11, 3.2 3.2 10.12, 3.2 3.1 10.13, 3.1 3.1 10.1), (1.1 1.1 10.1, 1.1 2.1 10.2, 2.1 2.1 10.3, 2.1 1.1 10.4, 1.1 1.1 10.1))'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)); 1 # rows (not including the header row) 1 # columns AsText(ST_SnapToGrid(GeomFromText('POLYGONM((0.1 0.1 10.1, 0.2 0.2 10.11, 0.2 5.1 10.12, 4.9 4.9 10.51, 5.1 5.1 10.49, 4.9 0.15 10.1, 0.1 0.1 10.1), (3.1 3.1 10.1, 3.2 3.1 10.11, 3.2 3.2 10.12, 3.2 3.1 10.13, 3.1 3.1 10.1), (1.1 1.1 10.1, 1.1 2.1 10.2, 2.1 2.1 10.3, 2.1 1.1 10.4, 1.1 1.1 10.1))'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)) POLYGON M((0 0 10, 0.25 0.25 10, 0.25 5 10, 5 5 10.5, 5 0.25 10, 0 0 10), (3 3 10, 3.25 3 10, 3.25 3.25 10, 3.25 3 10.25, 3 3 10), (1 1 10, 1 2 10.25, 2 2 10.25, 2 1 10.5, 1 1 10)) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid23.testcase0000664000175000017500000000041512163502133023465 00000000000000ST_SnapToGrid - five args - BLOB sizeY (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), 1, 1, 0.5, zeroblob(0)); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), 1, 1, 0.5, zeroblob(0)) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_asx3d27.testcase0000664000175000017500000000103412163502133022337 00000000000000ST_AsX3D - 3D linestring, 6 digit precision, long SRS, NULL refid :memory: #use in-memory database SELECT ST_AsX3D(GeomFromText('GEOMETRYCOLLECTIONZ(LINESTRINGZ(10.12345678 10.98765432 101.123, 11 10 102, 11.321 11.12 103.6453128), POINTZ(15.1234567 14.7654321 7.654321))', 4326), 6, 1, NULL); 1 # rows (not including the header row) 1 # columns ST_AsX3D(GeomFromText('GEOMETRYCOLLECTIONZ(LINESTRINGZ(10.12345678 10.98765432 101.123, 11 10 102, 11.321 11.12 103.6453128), POINTZ(15.1234567 14.7654321 7.654321))', 4326), 6, 1, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_split40.testcase0000664000175000017500000000053712163502133022452 00000000000000ST_SplitRight - MultiLine-Point (split) :memory: #use in-memory database SELECT AsText(ST_SplitRight(GeomFromText('MULTILINESTRING((0 2, 10 2), (0 0, 10 0))'), MakePoint(7, 0))); 1 # rows (not including the header row) 1 # columns AsText(ST_SplitRight(GeomFromText('MULTILINESTRING((0 2, 10 2), (0 0, 10 0))'), MakePoint(7, 0))) LINESTRING(7 0, 10 0) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_makevaliddiscarded7.testcase0000664000175000017500000000043012163502133025032 00000000000000ST_MakeValid - invalid Polygon :memory: #use in-memory database SELECT ST_IsValid(ST_MakeValid(GeomFromText('POLYGON((0 0, 1 0, 0 1, 1 1, 0 0))'))); 1 # rows (not including the header row) 1 # columns ST_IsValid(ST_MakeValid(GeomFromText('POLYGON((0 0, 1 0, 0 1, 1 1, 0 0))'))) 1 libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_split45.testcase0000664000175000017500000000052412163502133022453 00000000000000ST_SplitRight - Line-Line (not split) :memory: #use in-memory database SELECT AsText(ST_SplitRight(GeomFromText('LINESTRING(0 1, 10 1)'), GeomFromText('LINESTRING(11 0, 11 3)'))); 1 # rows (not including the header row) 1 # columns AsText(ST_SplitRight(GeomFromText('LINESTRING(0 1, 10 1)'), GeomFromText('LINESTRING(11 0, 11 3)'))) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_segmentize20.testcase0000664000175000017500000000047112163502133023464 00000000000000ST_Segmentize - Linestring M :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(GeomFromText('LINESTRINGM(1 1 10, 1 2 11)'), 0.5)); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Segmentize(GeomFromText('LINESTRINGM(1 1 10, 1 2 11)'), 0.5)) LINESTRING M(1 1 10, 1 1.5 10.5, 1 2 11) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_makevalid6.testcase0000664000175000017500000000054512163502133023175 00000000000000ST_MakeValid - invalid MultiPolygon :memory: #use in-memory database SELECT ST_IsValid(ST_MakeValid(GeomFromText('MULTIPOLYGON(((0 0, 1 0, 0 1, 1 1, 0 0)), ((2 2, 3 2, 3 3, 2 3, 2 2)))'))); 1 # rows (not including the header row) 1 # columns ST_IsValid(ST_MakeValid(GeomFromText('MULTIPOLYGON(((0 0, 1 0, 0 1, 1 1, 0 0)), ((2 2, 3 2, 3 3, 2 3, 2 2)))'))) 1 libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_makevaliddiscarded4.testcase0000664000175000017500000000055212163502133025034 00000000000000ST_MakeValid - already valid MultiPolygon :memory: #use in-memory database SELECT ST_MakeValidDiscarded(GeomFromText('MULTIPOLYGON(((0 0, 1 0, 1 1, 0 1, 0 0)), ((2 2, 3 2, 3 3, 2 3, 2 2)))')); 1 # rows (not including the header row) 1 # columns ST_MakeValidDiscarded(GeomFromText('MULTIPOLYGON(((0 0, 1 0, 1 1, 0 1, 0 0)), ((2 2, 3 2, 3 3, 2 3, 2 2)))')) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_azimuth4.testcase0000664000175000017500000000035312163502133022714 00000000000000ST_Azimuth - bad blob PointA (error) :memory: #use in-memory database SELECT ST_Azimuth(zeroblob(4), MakePoint(10, 10, 4326)); 1 # rows (not including the header row) 1 # columns ST_Azimuth(zeroblob(4), MakePoint(10, 10, 4326)) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_azimuth3.testcase0000664000175000017500000000040612163502133022712 00000000000000ST_Azimuth - same Point :memory: #use in-memory database SELECT ST_Azimuth(MakePoint(10.5, 10.5, 4326), MakePoint(10.5, 10.5, 4326)); 1 # rows (not including the header row) 1 # columns ST_Azimuth(MakePoint(10.5, 10.5, 4326), MakePoint(10.5, 10.5, 4326)) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_split9.testcase0000664000175000017500000000057512163502133022401 00000000000000ST_Split - Polygon-Multiline (error) :memory: #use in-memory database SELECT ST_Split(GeomFromText('POLYGON((0 1, 10 1, 10 10, 0 10, 0 1))'), GeomFromText('MULTILINESTRING((3 0, 3 3), (5 0, 5 3))')); 1 # rows (not including the header row) 1 # columns ST_Split(GeomFromText('POLYGON((0 1, 10 1, 10 10, 0 10, 0 1))'), GeomFromText('MULTILINESTRING((3 0, 3 3), (5 0, 5 3))')) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/3ddistance8.testcase0000664000175000017500000000047212163502133022554 000000000000003DDistance - intersecting 2D lines :memory: #use in-memory database SELECT ST_3DDistance(GeomFromText("LINESTRING(0 0, 10 0)"), GeomFromText("LINESTRING(0 0, 0 5)")) 1 # rows (not including the header row) 1 # columns ST_3DDistance(GeomFromText("LINESTRING(0 0, 10 0)"), GeomFromText("LINESTRING(0 0, 0 5)")) 0.0 libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid27.testcase0000664000175000017500000000041412163502133023470 00000000000000ST_SnapToGrid - six args - text grid origin (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), 'alpha', 1, 2, 3, 4); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), 'alpha', 1, 2, 3, 4) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid35.testcase0000664000175000017500000000044212163502133023470 00000000000000ST_SnapToGrid - six args - text sizeM (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), MakePoint(1, 1), 1, 2, 3, 'alpha'); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), MakePoint(1, 1), 1, 2, 3, 'alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_azimuth16.testcase0000664000175000017500000000046112163502133022777 00000000000000ST_Azimuth - Polygon (error) :memory: #use in-memory database SELECT ST_Azimuth(MakePoint(10, 10, 4326), GeomFromText('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))')); 1 # rows (not including the header row) 1 # columns ST_Azimuth(MakePoint(10, 10, 4326), GeomFromText('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))')) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_segmentize16.testcase0000664000175000017500000000040112163502133023462 00000000000000ST_Segmentize - Point M :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(GeomFromText('POINTM(0 0 10)'), 0.5)); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Segmentize(GeomFromText('POINTM(0 0 10)'), 0.5)) POINT M(0 0 10) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_segmentize19.testcase0000664000175000017500000000047112163502133023474 00000000000000ST_Segmentize - Linestring Z :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(GeomFromText('LINESTRINGZ(1 1 10, 1 2 11)'), 0.5)); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Segmentize(GeomFromText('LINESTRINGZ(1 1 10, 1 2 11)'), 0.5)) LINESTRING Z(1 1 10, 1 1.5 10.5, 1 2 11) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_project7.testcase0000664000175000017500000000045412163502133022706 00000000000000ST_Project - start Point (actually: Linestring) :memory: #use in-memory database SELECT ST_Project(GeomFromText('LINESTRING(0 0, 1 1)', 4326), 100000, Radians(45)); 1 # rows (not including the header row) 1 # columns ST_Project(GeomFromText('LINESTRING(0 0, 1 1)', 4326), 100000, Radians(45)) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_asx3d19.testcase0000664000175000017500000000044612163502133022346 00000000000000ST_AsX3D - 3D linestring DOUBLE precision :memory: #use in-memory database SELECT ST_AsX3D(GeomFromText('LINESTRINGZ(10 10 101, 11 10 102, 11 11 103)'), 0.5); 1 # rows (not including the header row) 1 # columns ST_AsX3D(GeomFromText('LINESTRINGZ(10 10 101, 11 10 102, 11 11 103)'), 0.5) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_split13.testcase0000664000175000017500000000046612163502133022453 00000000000000ST_Split - Line-Point (split) :memory: #use in-memory database SELECT AsText(ST_Split(GeomFromText('LINESTRING(0 0, 10 0)'), MakePoint(7, 0))); 1 # rows (not including the header row) 1 # columns AsText(ST_Split(GeomFromText('LINESTRING(0 0, 10 0)'), MakePoint(7, 0))) MULTILINESTRING((0 0, 7 0), (7 0, 10 0)) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_segmentize30.testcase0000664000175000017500000000066312163502133023470 00000000000000ST_Segmentize - Collection - two Linestrings :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(GeomFromText('GEOMETRYCOLLECTION(LINESTRING(1 1, 1 2), LINESTRING(3 3, 4 3))'), 0.5)); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Segmentize(GeomFromText('GEOMETRYCOLLECTION(LINESTRING(1 1, 1 2), LINESTRING(3 3, 4 3))'), 0.5)) GEOMETRYCOLLECTION(LINESTRING(1 1, 1 1.5, 1 2), LINESTRING(3 3, 3.5 3, 4 3)) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_asx3d22.testcase0000664000175000017500000000061612163502133022337 00000000000000ST_AsX3D - 3D linestring, 6 digit precision, text options :memory: #use in-memory database SELECT ST_AsX3D(GeomFromText('LINESTRINGZ(10.12345678 10.98765432 101.123, 11 10 102, 11.321 11.12 103.6453128)'), 6, 'alpha'); 1 # rows (not including the header row) 1 # columns ST_AsX3D(GeomFromText('LINESTRINGZ(10.12345678 10.98765432 101.123, 11 10 102, 11.321 11.12 103.6453128)'), 6, 'alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid13.testcase0000664000175000017500000000040512163502133023463 00000000000000ST_SnapToGrid - five args - NULL originX (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), NULL, 1, 0.5, 0.5); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), NULL, 1, 0.5, 0.5) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/maxdistance10.testcase0000664000175000017500000000053112163502133023100 00000000000000MaxDistance - two 3D linestring :memory: #use in-memory database SELECT ST_MaxDistance(GeomFromText("LINESTRINGZ(0 0 1, 10 2 5)"), GeomFromText("LINESTRINGZ(0 2 3, 10 3 4)")); 1 # rows (not including the header row) 1 # columns ST_MaxDistance(GeomFromText("LINESTRINGZ(0 0 1, 10 2 5)"), GeomFromText("LINESTRINGZ(0 2 3, 10 3 4)")); 10.440306:6 libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_asx3d29.testcase0000664000175000017500000000105212163502133022341 00000000000000ST_AsX3D - 3D linestring, 6 digit precision, long SRS, BLOB refid :memory: #use in-memory database SELECT ST_AsX3D(GeomFromText('GEOMETRYCOLLECTIONZ(LINESTRINGZ(10.12345678 10.98765432 101.123, 11 10 102, 11.321 11.12 103.6453128), POINTZ(15.1234567 14.7654321 7.654321))', 4326), 6, 1, zeroblob(4)); 1 # rows (not including the header row) 1 # columns ST_AsX3D(GeomFromText('GEOMETRYCOLLECTIONZ(LINESTRINGZ(10.12345678 10.98765432 101.123, 11 10 102, 11.321 11.12 103.6453128), POINTZ(15.1234567 14.7654321 7.654321))', 4326), 6, 1, zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/3ddistance4.testcase0000664000175000017500000000034112163502133022543 000000000000003DDistance - bad blob second arg :memory: #use in-memory database SELECT ST_3DDistance(MakePoint(1, 2), zeroblob(100)) 1 # rows (not including the header row) 1 # columns ST_3DDistance(MakePoint(1, 2), zeroblob(100)) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_split34.testcase0000664000175000017500000000056612163502133022457 00000000000000ST_SplitLeft - MultiLine-Point (not split) :memory: #use in-memory database SELECT AsText(ST_SplitLeft(GeomFromText('MULTILINESTRING((0 2, 10 2), (0 0, 10 0))'), MakePoint(-1, 0))); 1 # rows (not including the header row) 1 # columns AsText(ST_SplitLeft(GeomFromText('MULTILINESTRING((0 2, 10 2), (0 0, 10 0))'), MakePoint(-1, 0))) MULTILINESTRING((0 2, 10 2), (0 0, 10 0)) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_asx3d26.testcase0000664000175000017500000000143212163502133022340 00000000000000ST_AsX3D - 3D linestring, 6 digit precision, long SRS :memory: #use in-memory database SELECT ST_AsX3D(GeomFromText('GEOMETRYCOLLECTIONZ(LINESTRINGZ(10.12345678 10.98765432 101.123, 11 10 102, 11.321 11.12 103.6453128), POINTZ(15.1234567 14.7654321 7.654321))', 4326), 6, 1); 1 # rows (not including the header row) 1 # columns ST_AsX3D(GeomFromText('GEOMETRYCOLLECTIONZ(LINESTRINGZ(10.12345678 10.98765432 101.123, 11 10 102, 11.321 11.12 103.6453128), POINTZ(15.1234567 14.7654321 7.654321))', 4326), 6, 1) 15.123457 14.765432 7.654321:0 libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_azimuth8.testcase0000664000175000017500000000033112163502133022714 00000000000000ST_Azimuth - double PointA (error) :memory: #use in-memory database SELECT ST_Azimuth(1.1, MakePoint(10, 10, 4326)); 1 # rows (not including the header row) 1 # columns ST_Azimuth(1.1, MakePoint(10, 10, 4326)) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_asx3d17.testcase0000664000175000017500000000045412163502133022343 00000000000000ST_AsX3D - 3D linestring TEXT precision :memory: #use in-memory database SELECT ST_AsX3D(GeomFromText('LINESTRINGZ(10 10 101, 11 10 102, 11 11 103)'), 'alpha'); 1 # rows (not including the header row) 1 # columns ST_AsX3D(GeomFromText('LINESTRINGZ(10 10 101, 11 10 102, 11 11 103)'), 'alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_segmentize26.testcase0000664000175000017500000000050212163502133023465 00000000000000ST_Segmentize - Collection - single Point :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(GeomFromText('GEOMETRYCOLLECTION(POINT(0 0))'), 0.5)); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Segmentize(GeomFromText('GEOMETRYCOLLECTION(POINT(0 0))'), 0.5)) GEOMETRYCOLLECTION(POINT(0 0)) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid12.testcase0000664000175000017500000000037212163502133023465 00000000000000ST_SnapToGrid - three args - text sizeY (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), 0.5, 'alpha'); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), 0.5, 'alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid6.testcase0000664000175000017500000000030512163502133023404 00000000000000ST_SnapToGrid - two args - double geom (error) :memory: #use in-memory database SELECT ST_SnapToGrid(1.2, NULL); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(1.2, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/maxdistance3.testcase0000664000175000017500000000034312163502133023023 00000000000000MaxDistance - bad blob first arg :memory: #use in-memory database SELECT ST_MaxDistance(zeroblob(100), MakePoint(1, 2)) 1 # rows (not including the header row) 1 # columns ST_MaxDistance(zeroblob(100), MakePoint(1, 2)) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_asx3d25.testcase0000664000175000017500000000141212163502133022335 00000000000000ST_AsX3D - 3D linestring, 6 digit precision, short SRS :memory: #use in-memory database SELECT ST_AsX3D(GeomFromText('GEOMETRYCOLLECTIONZ(LINESTRINGZ(10.12345678 10.98765432 101.123, 11 10 102, 11.321 11.12 103.6453128), POINTZ(15.1234567 14.7654321 7.654321))', 4326), 6, 0); 1 # rows (not including the header row) 1 # columns ST_AsX3D(GeomFromText('GEOMETRYCOLLECTIONZ(LINESTRINGZ(10.12345678 10.98765432 101.123, 11 10 102, 11.321 11.12 103.6453128), POINTZ(15.1234567 14.7654321 7.654321))', 4326), 6, 0) 15.123457 14.765432 7.654321:0 libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_makevalid3.testcase0000664000175000017500000000025412163502133023167 00000000000000ST_MakeValid - text (error) :memory: #use in-memory database SELECT ST_MakeValid('alpha'); 1 # rows (not including the header row) 1 # columns ST_MakeValid('alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_asx3d13.testcase0000664000175000017500000000071512163502133022337 00000000000000ST_AsX3D - 3D multilinestring :memory: #use in-memory database SELECT ST_AsX3D(GeomFromText('MULTILINESTRINGZ((10 10 1, 11 10 2, 11 11 2), (20 20 4, 21 20 5, 21 21 6))')); 1 # rows (not including the header row) 1 # columns ST_AsX3D(GeomFromText('MULTILINESTRINGZ((10 10 1, 11 10 2, 11 11 2), (20 20 4, 21 20 5, 21 21 6))')) :0 libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_asx3d2.testcase0000664000175000017500000000024112163502133022247 00000000000000ST_AsX3D - text geometry :memory: #use in-memory database SELECT ST_AsX3D('alpha'); 1 # rows (not including the header row) 1 # columns ST_AsX3D('alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_split14.testcase0000664000175000017500000000053712163502133022453 00000000000000ST_Split - Line-Line (split) :memory: #use in-memory database SELECT AsText(ST_Split(GeomFromText('LINESTRING(0 1, 10 1)'), GeomFromText('LINESTRING(7 0, 7 3)'))); 1 # rows (not including the header row) 1 # columns AsText(ST_Split(GeomFromText('LINESTRING(0 1, 10 1)'), GeomFromText('LINESTRING(7 0, 7 3)'))) MULTILINESTRING((0 1, 7 1), (7 1, 10 1)) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_azimuth9.testcase0000664000175000017500000000033112163502133022715 00000000000000ST_Azimuth - double PointB (error) :memory: #use in-memory database SELECT ST_Azimuth(MakePoint(10, 10, 4326), 1.1); 1 # rows (not including the header row) 1 # columns ST_Azimuth(MakePoint(10, 10, 4326), 1.1) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_project3.testcase0000664000175000017500000000031612163502133022677 00000000000000ST_Project - DOUBLE start Point :memory: #use in-memory database SELECT ST_Project(1.1, 100000, Radians(45)); 1 # rows (not including the header row) 1 # columns ST_Project(1.1, 100000, Radians(45)) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid46.testcase0000664000175000017500000000074012163502133023473 00000000000000ST_SnapToGrid - MultiLinestring 2D :memory: #use in-memory database SELECT AsText(ST_SnapToGrid(GeomFromText('MULTILINESTRING((1.2 2.3, 1.21 2.31, 1.22 2.32, 2.1 3.9), (2.11 3.11, 2.12 3.12), (3.2 4.2, 4.2 3.2))'), 0.25)); 1 # rows (not including the header row) 1 # columns AsText(ST_SnapToGrid(GeomFromText('MULTILINESTRING((1.2 2.3, 1.21 2.31, 1.22 2.32, 2.1 3.9), (2.11 3.11, 2.12 3.12), (3.2 4.2, 4.2 3.2))'), 0.25)) MULTILINESTRING((1.25 2.25, 2 4), (3.25 4.25, 4.25 3.25)) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_split21.testcase0000664000175000017500000000055212163502133022446 00000000000000ST_Split - MultiLine-Point (not split) :memory: #use in-memory database SELECT AsText(ST_Split(GeomFromText('MULTILINESTRING((0 2, 10 2), (0 0, 10 0))'), MakePoint(-1, 0))); 1 # rows (not including the header row) 1 # columns AsText(ST_Split(GeomFromText('MULTILINESTRING((0 2, 10 2), (0 0, 10 0))'), MakePoint(-1, 0))) MULTILINESTRING((0 2, 10 2), (0 0, 10 0)) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/3dmaxdistance5.testcase0000664000175000017500000000032112163502133023250 000000000000003DMaxDistance - non-blob first arg :memory: #use in-memory database SELECT ST_3DMaxDistance(3, MakePoint(1, 2)) 1 # rows (not including the header row) 1 # columns ST_3DMaxDistance(3, MakePoint(1, 2)) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid31.testcase0000664000175000017500000000045212163502133023465 00000000000000ST_SnapToGrid - six args - BLOB sizeX (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), MakePoint(1, 1), zeroblob(4), 2, 3, 4); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), MakePoint(1, 1), zeroblob(4), 2, 3, 4) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_segmentize14.testcase0000664000175000017500000000036212163502133023466 00000000000000ST_Segmentize - Point :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(GeomFromText('POINT(0 0)'), 0.5)); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Segmentize(GeomFromText('POINT(0 0)'), 0.5)) POINT(0 0) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid64.testcase0000664000175000017500000000120712163502133023472 00000000000000ST_SnapToGrid - MultiLinestring M :memory: #use in-memory database SELECT AsText(ST_SnapToGrid(GeomFromText('MULTILINESTRINGM((1.2 2.3 10.1, 1.21 2.31 10.11, 1.22 2.32 10.1, 2.1 3.9 10.11), (2.11 3.11 10, 2.12 3.12 10.1), (3.2 4.2 10.1, 4.2 3.2 10.4))'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)); 1 # rows (not including the header row) 1 # columns AsText(ST_SnapToGrid(GeomFromText('MULTILINESTRINGM((1.2 2.3 10.1, 1.21 2.31 10.11, 1.22 2.32 10.1, 2.1 3.9 10.11), (2.11 3.11 10, 2.12 3.12 10.1), (3.2 4.2 10.1, 4.2 3.2 10.4))'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)) MULTILINESTRING M((1.25 2.25 10, 2 4 10), (3.25 4.25 10, 4.25 3.25 10.5)) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_project13.testcase0000664000175000017500000000040212163502133022754 00000000000000ST_Project - BLOB bearing :memory: #use in-memory database SELECT ST_Project(GeomFromText('POINT(0 0)', 4326), 100000, zeroblob(4)); 1 # rows (not including the header row) 1 # columns ST_Project(GeomFromText('POINT(0 0)', 4326), 100000, zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/3ddistance1.testcase0000664000175000017500000000033412163502133022542 000000000000003DDistance - two 2D points :memory: #use in-memory database SELECT ST_3DDistance(MakePoint(1, 2), MakePoint(4, 6)) 1 # rows (not including the header row) 1 # columns ST_3DDistance(MakePoint(1, 2), MakePoint(4, 6)) 5.0 libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_segmentize11.testcase0000664000175000017500000000201512163502133023460 00000000000000ST_Segmentize - Collection Z :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(GeomFromText('GEOMETRYCOLLECTIONZ(POINTZ(0 0 10), LINESTRINGZ(1 1 10, 1 2 11), POLYGONZ((3 3 10, 6 3 11, 6 6 12, 3 6 13, 3 3 10), (4 4 10, 5 4 11, 5 5 12, 5 4 13, 4 4 10)))'), 0.5)); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Segmentize(GeomFromText('GEOMETRYCOLLECTIONZ(POINTZ(0 0 10), LINESTRINGZ(1 1 10, 1 2 11), POLYGONZ((3 3 10, 6 3 11, 6 6 12, 3 6 13, 3 3 10), (4 4 10, 5 4 11, 5 5 12, 5 4 13, 4 4 10)))'), 0.5)) GEOMETRYCOLLECTION Z(POINT Z(0 0 10), LINESTRING Z(1 1 10, 1 1.5 10.5, 1 2 11), POLYGON Z((3 3 10, 3.5 3 10.166667, 4 3 10.333333, 4.5 3 10.5, 5 3 10.666667, 5.5 3 10.833333, 6 3 11, 6 3.5 11.166667, 6 4 11.333333, 6 4.5 11.5, 6 5 11.666667, 6 5.5 11.833333, 6 6 12, 5.5 6 12.166667, 5 6 12.333333, 4.5 6 12.5, 4 6 12.666667, 3.5 6 12.833333, 3 6 13, 3 5.5 12.5, 3 5 12, 3 4.5 11.5, 3 4 11, 3 3.5 10.5, 3 3 10), (4 4 10, 4.5 4 10.5, 5 4 11, 5 4.5 11.5, 5 5 12, 5 4.5 12.5, 5 4 13, 4.5 4 11.5, 4 4 10))) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_asx3d12.testcase0000664000175000017500000000060312163502133022332 00000000000000ST_AsX3D - 2D multilinestring :memory: #use in-memory database SELECT ST_AsX3D(GeomFromText('MULTILINESTRING((10 10, 11 10, 11 11), (20 20, 21 20, 21 21))')); 1 # rows (not including the header row) 1 # columns ST_AsX3D(GeomFromText('MULTILINESTRING((10 10, 11 10, 11 11), (20 20, 21 20, 21 21))')) 10 10 11 10 11 11 20 20 21 20 21 21 ' />:0 libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid39.testcase0000664000175000017500000000043412163502133023475 00000000000000ST_SnapToGrid - six args - NULL sizeZ (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), MakePoint(1, 1), 1, 2, NULL, 4); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), MakePoint(1, 1), 1, 2, NULL, 4) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_segmentize13.testcase0000664000175000017500000000250212163502133023463 00000000000000ST_Segmentize - Collection ZM :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(GeomFromText('GEOMETRYCOLLECTIONZM(POINTZM(0 0 10 11), LINESTRINGZM(1 1 10 11, 1 2 11 13), POLYGONZM((3 3 10 11, 6 3 11 12, 6 6 12 13, 3 6 13 14, 3 3 10 11), (4 4 10 11, 5 4 11 12, 5 5 12 13, 5 4 13 14, 4 4 10 11)))'), 0.5)); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Segmentize(GeomFromText('GEOMETRYCOLLECTIONZM(POINTZM(0 0 10 11), LINESTRINGZM(1 1 10 11, 1 2 11 13), POLYGONZM((3 3 10 11, 6 3 11 12, 6 6 12 13, 3 6 13 14, 3 3 10 11), (4 4 10 11, 5 4 11 12, 5 5 12 13, 5 4 13 14, 4 4 10 11)))'), 0.5)) GEOMETRYCOLLECTION ZM(POINT ZM(0 0 10 11), LINESTRING ZM(1 1 10 11, 1 1.5 10.5 12, 1 2 11 13), POLYGON ZM((3 3 10 11, 3.5 3 10.166667 11.166667, 4 3 10.333333 11.333333, 4.5 3 10.5 11.5, 5 3 10.666667 11.666667, 5.5 3 10.833333 11.833333, 6 3 11 12, 6 3.5 11.166667 12.166667, 6 4 11.333333 12.333333, 6 4.5 11.5 12.5, 6 5 11.666667 12.666667, 6 5.5 11.833333 12.833333, 6 6 12 13, 5.5 6 12.166667 13.166667, 5 6 12.333333 13.333333, 4.5 6 12.5 13.5, 4 6 12.666667 13.666667, 3.5 6 12.833333 13.833333, 3 6 13 14, 3 5.5 12.5 13.5, 3 5 12 13, 3 4.5 11.5 12.5, 3 4 11 12, 3 3.5 10.5 11.5, 3 3 10 11), (4 4 10 11, 4.5 4 10.5 11.5, 5 4 11 12, 5 4.5 11.5 12.5, 5 5 12 13, 5 4.5 12.5 13.5, 5 4 13 14, 4.5 4 11.5 12.5, 4 4 10 11))) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_split8.testcase0000664000175000017500000000053012163502133022367 00000000000000ST_Split - Line-Multiline (error) :memory: #use in-memory database SELECT ST_Split(GeomFromText('LINESTRING(0 1, 10 1)'), GeomFromText('MULTILINESTRING((3 0, 3 3), (5 0, 5 3))')); 1 # rows (not including the header row) 1 # columns ST_Split(GeomFromText('LINESTRING(0 1, 10 1)'), GeomFromText('MULTILINESTRING((3 0, 3 3), (5 0, 5 3))')) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid24.testcase0000664000175000017500000000040512163502133023465 00000000000000ST_SnapToGrid - five args - text sizeY (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), 1, 1, 0.5, 'alpha'); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), 1, 1, 0.5, 'alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid53.testcase0000664000175000017500000000342212163502133023471 00000000000000ST_SnapToGrid - MultiPolygon ZM :memory: #use in-memory database SELECT AsText(ST_SnapToGrid(GeomFromText('MULTIPOLYGONZM(((5.11 5.11 10.1 20.1, 5.12 5.11 10.11 20.11, 5.11 5.11 10.12 20.12, 5.11 5.12 10.13 20.13, 5.11 5.11 10.1 20.1)), ((0.1 0.1 10.1 20.1, 0.2 0.2 10.11 20.11, 0.2 5.1 10.12 20.12, 4.9 4.9 10.13 20.13, 5.1 5.1 10.14 20.14, 4.9 0.15 10.15 20.15, 0.1 0.1 10.1 20.1), (3.1 3.1 10.1 20.1, 3.2 3.1 10.11 20.11, 3.2 3.2 10.11 20.11, 3.2 3.1 10.12 20.12, 3.1 3.1 10.1 20.1), (1.1 1.1 10.1 20.1, 1.1 2.1 10.11 20.11, 2.1 2.1 10.12 20.12, 2.1 1.1 10.13 20.13, 1.1 1.1 10.1 20.1)), ((5.51 5.51 10.1 20.1, 6.51 5.51 10.11 20.11, 6.51 6.51 10.12 20.12, 5.51 6.51 10.13 20.13, 5.51 5.51 10.1 20.1)))'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)); 1 # rows (not including the header row) 1 # columns AsText(ST_SnapToGrid(GeomFromText('MULTIPOLYGONZM(((5.11 5.11 10.1 20.1, 5.12 5.11 10.11 20.11, 5.11 5.11 10.12 20.12, 5.11 5.12 10.13 20.13, 5.11 5.11 10.1 20.1)), ((0.1 0.1 10.1 20.1, 0.2 0.2 10.11 20.11, 0.2 5.1 10.12 20.12, 4.9 4.9 10.13 20.13, 5.1 5.1 10.14 20.14, 4.9 0.15 10.15 20.15, 0.1 0.1 10.1 20.1), (3.1 3.1 10.1 20.1, 3.2 3.1 10.11 20.11, 3.2 3.2 10.11 20.11, 3.2 3.1 10.12 20.12, 3.1 3.1 10.1 20.1), (1.1 1.1 10.1 20.1, 1.1 2.1 10.11 20.11, 2.1 2.1 10.12 20.12, 2.1 1.1 10.13 20.13, 1.1 1.1 10.1 20.1)), ((5.51 5.51 10.1 20.1, 6.51 5.51 10.11 20.11, 6.51 6.51 10.12 20.12, 5.51 6.51 10.13 20.13, 5.51 5.51 10.1 20.1)))'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)) MULTIPOLYGON ZM(((0 0 10 20, 0.25 0.25 10 20, 0.25 5 10 20, 5 5 10.25 20.25, 5 0.25 10.25 20.25, 0 0 10 20), (3 3 10 20, 3.25 3 10 20, 3.25 3.25 10 20, 3.25 3 10 20, 3 3 10 20), (1 1 10 20, 1 2 10 20, 2 2 10 20, 2 1 10.25 20.25, 1 1 10 20)), ((5.5 5.5 10 20, 6.5 5.5 10 20, 6.5 6.5 10 20, 5.5 6.5 10.25 20.25, 5.5 5.5 10 20))) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/3dmaxdistance9.testcase0000664000175000017500000000037512163502133023265 000000000000003DMaxDistance - two 3D points :memory: #use in-memory database SELECT ST_3DMaxDistance(MakePointZ(1, 2, 3), MakePointZ(4, 6, 5)); 1 # rows (not including the header row) 1 # columns ST_3DMaxDistance(MakePointZ(1, 2, 3), MakePointZ(4, 6, 5)) 5.385164:6 libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid55.testcase0000664000175000017500000000072312163502133023474 00000000000000ST_SnapToGrid - Linestring Z :memory: #use in-memory database SELECT AsText(ST_SnapToGrid(GeomFromText('LINESTRINGZ(1.2 2.3 10.1, 1.21 2.31 10.11, 1.22 2.32 10.12, 2.1 3.9 11.4)'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)); 1 # rows (not including the header row) 1 # columns AsText(ST_SnapToGrid(GeomFromText('LINESTRINGZ(1.2 2.3 10.1, 1.21 2.31 10.11, 1.22 2.32 10.12, 2.1 3.9 11.4)'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)) LINESTRING Z(1.25 2.25 10, 2 4 11.5) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_project1.testcase0000664000175000017500000000031612163502133022675 00000000000000ST_Project - NULL start Point :memory: #use in-memory database SELECT ST_Project(NULL, 100000, Radians(45)); 1 # rows (not including the header row) 1 # columns ST_Project(NULL, 100000, Radians(45)) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_split28.testcase0000664000175000017500000000064312163502133022456 00000000000000ST_SplitLeft - MultiLine-Point (split) :memory: #use in-memory database SELECT AsText(ST_SplitLeft(GeomFromText('MULTILINESTRINGZ((0 2 10, 10 2 11), (0 0 10, 10 0 11))'), MakePointZ(7, 0, 10))); 1 # rows (not including the header row) 1 # columns AsText(ST_SplitLeft(GeomFromText('MULTILINESTRINGZ((0 2 10, 10 2 11), (0 0 10, 10 0 11))'), MakePointZ(7, 0, 10))) MULTILINESTRING Z((0 2 10, 10 2 11), (0 0 10, 7 0 10.7)) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid28.testcase0000664000175000017500000000040312163502133023467 00000000000000ST_SnapToGrid - six args - num grid origin (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), 1.1, 1, 2, 3, 4); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), 1.1, 1, 2, 3, 4) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_segmentize27.testcase0000664000175000017500000000055412163502133023475 00000000000000ST_Segmentize - Collection - single Linestring :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(GeomFromText('GEOMETRYCOLLECTION(LINESTRING(1 1, 1 2))'), 0.5)); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Segmentize(GeomFromText('GEOMETRYCOLLECTION(LINESTRING(1 1, 1 2))'), 0.5)) GEOMETRYCOLLECTION(LINESTRING(1 1, 1 1.5, 1 2)) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/maxdistance7.testcase0000664000175000017500000000050312163502133023025 00000000000000MaxDistance - parallel 2D lines :memory: #use in-memory database SELECT ST_MaxDistance(GeomFromText("LINESTRING(0 0, 10 0)"), GeomFromText("LINESTRING(0 2, 10 2)")) 1 # rows (not including the header row) 1 # columns ST_MaxDistance(GeomFromText("LINESTRING(0 0, 10 0)"), GeomFromText("LINESTRING(0 2, 10 2)")) 10.198039:6 libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_split17.testcase0000664000175000017500000000065312163502133022455 00000000000000ST_Split - Polygon-Line (split) :memory: #use in-memory database SELECT AsText(ST_Split(GeomFromText('POLYGON((0 1, 10 1, 10 10, 0 10, 0 1))'), GeomFromText('LINESTRING(7 0, 7 20)'))); 1 # rows (not including the header row) 1 # columns AsText(ST_Split(GeomFromText('POLYGON((0 1, 10 1, 10 10, 0 10, 0 1))'), GeomFromText('LINESTRING(7 0, 7 20)'))) MULTIPOLYGON(((7 1, 0 1, 0 10, 7 10, 7 1)), ((7 10, 10 10, 10 1, 7 1, 7 10))) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid49.testcase0000664000175000017500000000101312163502133023470 00000000000000ST_SnapToGrid - Linestring ZM :memory: #use in-memory database SELECT AsText(ST_SnapToGrid(GeomFromText('LINESTRINGZM(1.2 2.3 10.1 20.1, 1.21 2.31 10.11 20.11, 1.22 2.32 10.12 20.12, 2.1 3.9 11.4 21.4)'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)); 1 # rows (not including the header row) 1 # columns AsText(ST_SnapToGrid(GeomFromText('LINESTRINGZM(1.2 2.3 10.1 20.1, 1.21 2.31 10.11 20.11, 1.22 2.32 10.12 20.12, 2.1 3.9 11.4 21.4)'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)) LINESTRING ZM(1.25 2.25 10 20, 2 4 11.5 21.5) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_segmentize18.testcase0000664000175000017500000000043412163502133023472 00000000000000ST_Segmentize - Linestring :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(GeomFromText('LINESTRING(1 1, 1 2)'), 0.5)); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Segmentize(GeomFromText('LINESTRING(1 1, 1 2)'), 0.5)) LINESTRING(1 1, 1 1.5, 1 2) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/3dmaxdistance7.testcase0000664000175000017500000000051112163502133023253 000000000000003DMaxDistance - parallel 2D lines :memory: #use in-memory database SELECT ST_3DMaxDistance(GeomFromText("LINESTRING(0 0, 10 0)"), GeomFromText("LINESTRING(0 2, 10 2)")) 1 # rows (not including the header row) 1 # columns ST_3DMaxDistance(GeomFromText("LINESTRING(0 0, 10 0)"), GeomFromText("LINESTRING(0 2, 10 2)")) 10.198039:6 libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/maxdistance9.testcase0000664000175000017500000000036012163502133023030 00000000000000MaxDistance - two 3D points :memory: #use in-memory database SELECT ST_MaxDistance(MakePointZ(1, 2, 3), MakePointZ(4, 6, 5)); 1 # rows (not including the header row) 1 # columns ST_MaxDistance(MakePointZ(1, 2, 3), MakePointZ(4, 6, 5)) 5.0 libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid48.testcase0000664000175000017500000000054612163502133023501 00000000000000ST_SnapToGrid - Point ZM :memory: #use in-memory database SELECT AsText(ST_SnapToGrid(GeomFromText('POINTZM(1.2 2.3 10.1 20.1)'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)); 1 # rows (not including the header row) 1 # columns AsText(ST_SnapToGrid(GeomFromText('POINTZM(1.2 2.3 10.1 20.1)'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)) POINT ZM(1.25 2.25 10 20) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid45.testcase0000664000175000017500000000053412163502133023473 00000000000000ST_SnapToGrid - MultiPoint 2D :memory: #use in-memory database SELECT AsText(ST_SnapToGrid(GeomFromText('MULTIPOINT(1.2 2.3, 1.21 2.31, 2.2 3.3, 2.21 3.33)'), 0.25)); 1 # rows (not including the header row) 1 # columns AsText(ST_SnapToGrid(GeomFromText('MULTIPOINT(1.2 2.3, 1.21 2.31, 2.2 3.3, 2.21 3.33)'), 0.25)) MULTIPOINT(1.25 2.25, 2.25 3.25) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_asx3d9.testcase0000664000175000017500000000064412163502133022265 00000000000000ST_AsX3D - 3D polygon :memory: #use in-memory database SELECT ST_AsX3D(GeomFromText('POLYGONZ((10 10 101, 11 10 102, 11 11 103, 10 11 104, 10 10 101))')); 1 # rows (not including the header row) 1 # columns ST_AsX3D(GeomFromText('POLYGONZ((10 10 101, 11 10 102, 11 11 103, 10 11 104, 10 10 101))')) :0 libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid36.testcase0000664000175000017500000000043412163502133023472 00000000000000ST_SnapToGrid - six args - NULL sizeY (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), MakePoint(1, 1), 1, NULL, 3, 4); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), MakePoint(1, 1), 1, NULL, 3, 4) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_geohash4.testcase0000664000175000017500000000032312163502133022646 00000000000000ST_GeoHash - not Long/Lat geometry :memory: #use in-memory database SELECT ST_GeoHash(MakePoint(123456, 654321)); 1 # rows (not including the header row) 1 # columns ST_GeoHash(MakePoint(123456, 654321)) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_segmentize1.testcase0000664000175000017500000000132112163502133023376 00000000000000ST_Segmentize - Collection :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(GeomFromText('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1, 1 2), POLYGON((3 3, 6 3, 6 6, 3 6, 3 3), (4 4, 5 4, 5 5, 5 4, 4 4)))'), 0.5)); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Segmentize(GeomFromText('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1, 1 2), POLYGON((3 3, 6 3, 6 6, 3 6, 3 3), (4 4, 5 4, 5 5, 5 4, 4 4)))'), 0.5)) GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1, 1 1.5, 1 2), POLYGON((3 3, 3.5 3, 4 3, 4.5 3, 5 3, 5.5 3, 6 3, 6 3.5, 6 4, 6 4.5, 6 5, 6 5.5, 6 6, 5.5 6, 5 6, 4.5 6, 4 6, 3.5 6, 3 6, 3 5.5, 3 5, 3 4.5, 3 4, 3 3.5, 3 3), (4 4, 4.5 4, 5 4, 5 4.5, 5 5, 5 4.5, 5 4, 4.5 4, 4 4))) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_segmentize3.testcase0000664000175000017500000000054112163502133023403 00000000000000ST_Segmentize - Multilinestring :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(GeomFromText('MULTILINESTRING((1 1, 1 2), (3 3, 4 3))'), 0.5)); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Segmentize(GeomFromText('MULTILINESTRING((1 1, 1 2), (3 3, 4 3))'), 0.5)) MULTILINESTRING((1 1, 1 1.5, 1 2), (3 3, 3.5 3, 4 3)) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_area17.testcase0000664000175000017500000000055412163502133022232 00000000000000ST_Area Geodesic - TEXT use_ellipsoid :memory: #use in-memory database SELECT ST_Area(GeomFromText("POLYGON((-0.4 -0.4, -0.4 4, 4 4, 4 -0.4, -0.4 -0.4),(1 1, 1 3, 3 3, 3 1, 1 1))"), 'alpha'); 1 # rows (not including the header row) 1 # columns ST_Area(GeomFromText("POLYGON((-0.4 -0.4, -0.4 4, 4 4, 4 -0.4, -0.4 -0.4),(1 1, 1 3, 3 3, 3 1, 1 1))"), 'alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_asx3d11.testcase0000664000175000017500000000052212163502133022331 00000000000000ST_AsX3D - 3D multipoint :memory: #use in-memory database SELECT ST_AsX3D(GeomFromText('MULTIPOINTZ(10 10 101, 11 10 102, 11 11 103)')); 1 # rows (not including the header row) 1 # columns ST_AsX3D(GeomFromText('MULTIPOINTZ(10 10 101, 11 10 102, 11 11 103)')) :0 libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid44.testcase0000664000175000017500000000123012163502133023464 00000000000000ST_SnapToGrid - Polygon 2D :memory: #use in-memory database SELECT AsText(ST_SnapToGrid(GeomFromText('POLYGON((0.1 0.1, 0.2 0.2, 0.2 5.1, 4.9 4.9, 5.1 5.1, 4.9 0.15, 0.1 0.1), (3.1 3.1, 3.2 3.1, 3.2 3.2, 3.2 3.1, 3.1 3.1), (1.1 1.1, 1.1 2.1, 2.1 2.1, 2.1 1.1, 1.1 1.1))'), 0.25)); 1 # rows (not including the header row) 1 # columns AsText(ST_SnapToGrid(GeomFromText('POLYGON((0.1 0.1, 0.2 0.2, 0.2 5.1, 4.9 4.9, 5.1 5.1, 4.9 0.15, 0.1 0.1), (3.1 3.1, 3.2 3.1, 3.2 3.2, 3.2 3.1, 3.1 3.1), (1.1 1.1, 1.1 2.1, 2.1 2.1, 2.1 1.1, 1.1 1.1))'), 0.25)) POLYGON((0 0, 0.25 0.25, 0.25 5, 5 5, 5 0.25, 0 0), (3 3, 3.25 3, 3.25 3.25, 3.25 3, 3 3), (1 1, 1 2, 2 2, 2 1, 1 1)) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_project11.testcase0000664000175000017500000000036412163502133022761 00000000000000ST_Project - NULL bearing :memory: #use in-memory database SELECT ST_Project(GeomFromText('POINT(0 0)', 4326), 100000, NULL); 1 # rows (not including the header row) 1 # columns ST_Project(GeomFromText('POINT(0 0)', 4326), 100000, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_segmentize4.testcase0000664000175000017500000000126212163502133023405 00000000000000ST_Segmentize - Multipolygon :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(GeomFromText('MULTIPOLYGON(((0 0, 1 0, 1 1, 0 1, 0 0)), ((3 3, 6 3, 6 6, 3 6, 3 3), (4 4, 5 4, 5 5, 5 4, 4 4)))'), 0.5)); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Segmentize(GeomFromText('MULTIPOLYGON(((0 0, 1 0, 1 1, 0 1, 0 0)), ((3 3, 6 3, 6 6, 3 6, 3 3), (4 4, 5 4, 5 5, 5 4, 4 4)))'), 0.5)) MULTIPOLYGON(((0 0, 0.5 0, 1 0, 1 0.5, 1 1, 0.5 1, 0 1, 0 0.5, 0 0)), ((3 3, 3.5 3, 4 3, 4.5 3, 5 3, 5.5 3, 6 3, 6 3.5, 6 4, 6 4.5, 6 5, 6 5.5, 6 6, 5.5 6, 5 6, 4.5 6, 4 6, 3.5 6, 3 6, 3 5.5, 3 5, 3 4.5, 3 4, 3 3.5, 3 3), (4 4, 4.5 4, 5 4, 5 4.5, 5 5, 5 4.5, 5 4, 4.5 4, 4 4))) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_split25.testcase0000664000175000017500000000045112163502133022450 00000000000000ST_Split - Line-Point (not split) :memory: #use in-memory database SELECT AsText(ST_Split(GeomFromText('LINESTRING(0 0, 10 0)'), MakePoint(11, 0))); 1 # rows (not including the header row) 1 # columns AsText(ST_Split(GeomFromText('LINESTRING(0 0, 10 0)'), MakePoint(11, 0))) LINESTRING(0 0, 10 0) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_azimuth17.testcase0000664000175000017500000000053012163502133022775 00000000000000ST_Azimuth - Collection (error) :memory: #use in-memory database SELECT ST_Azimuth(MakePoint(10, 10, 4326), GeomFromText('GEOMETRYCOLLECTION(LINESTRING(0 0, 1 1), POINT(2 2))')); 1 # rows (not including the header row) 1 # columns ST_Azimuth(MakePoint(10, 10, 4326), GeomFromText('GEOMETRYCOLLECTION(LINESTRING(0 0, 1 1), POINT(2 2))')) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_azimuth13.testcase0000664000175000017500000000033112163502133022770 00000000000000ST_Azimuth - NULL PointB (error) :memory: #use in-memory database SELECT ST_Azimuth(MakePoint(10, 10, 4326), NULL); 1 # rows (not including the header row) 1 # columns ST_Azimuth(MakePoint(10, 10, 4326), NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_asx3d1.testcase0000664000175000017500000000023312163502133022247 00000000000000ST_AsX3D - NULL geometry :memory: #use in-memory database SELECT ST_AsX3D(NULL); 1 # rows (not including the header row) 1 # columns ST_AsX3D(NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid18.testcase0000664000175000017500000000041312163502133023467 00000000000000ST_SnapToGrid - five args - text originY (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), 1, 'alpha', 0.5, 0.5); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), 1, 'alpha', 0.5, 0.5) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_geohash2.testcase0000664000175000017500000000024712163502133022651 00000000000000ST_GeoHash - text geometry :memory: #use in-memory database SELECT ST_GeoHash('alpha'); 1 # rows (not including the header row) 1 # columns ST_GeoHash('alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid5.testcase0000664000175000017500000000031312163502133023402 00000000000000ST_SnapToGrid - two args - text geom (error) :memory: #use in-memory database SELECT ST_SnapToGrid('alpha', NULL); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid('alpha', NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid57.testcase0000664000175000017500000000072712163502133023502 00000000000000ST_SnapToGrid - MultiPoint Z :memory: #use in-memory database SELECT AsText(ST_SnapToGrid(GeomFromText('MULTIPOINTZ(1.2 2.3 10.1, 1.21 2.31 10.11, 2.2 3.3 21.1, 2.21 3.33 21.12)'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)); 1 # rows (not including the header row) 1 # columns AsText(ST_SnapToGrid(GeomFromText('MULTIPOINTZ(1.2 2.3 10.1, 1.21 2.31 10.11, 2.2 3.3 21.1, 2.21 3.33 21.12)'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)) MULTIPOINT Z(1.25 2.25 10, 2.25 3.25 21) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid29.testcase0000664000175000017500000000051312163502133023472 00000000000000ST_SnapToGrid - six args - not-point grid origin (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), GeomFromText('LINESTRING(0 0, 1 1)'), 1, 2, 3, 4); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), GeomFromText('LINESTRING(0 0, 1 1)'), 1, 2, 3, 4) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid42.testcase0000664000175000017500000000037712163502133023475 00000000000000ST_SnapToGrid - Point 2D :memory: #use in-memory database SELECT AsText(ST_SnapToGrid(GeomFromText('POINT(1.2 2.3)'), 0.25)); 1 # rows (not including the header row) 1 # columns AsText(ST_SnapToGrid(GeomFromText('POINT(1.2 2.3)'), 0.25)) POINT(1.25 2.25) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_split29.testcase0000664000175000017500000000062712163502133022461 00000000000000ST_SplitLeft - MultiLine-Line (split) :memory: #use in-memory database SELECT AsText(ST_SplitLeft(GeomFromText('MULTILINESTRING((0 2, 10 2), (0 1, 10 1))'), GeomFromText('LINESTRING(7 0, 7 3)'))); 1 # rows (not including the header row) 1 # columns AsText(ST_SplitLeft(GeomFromText('MULTILINESTRING((0 2, 10 2), (0 1, 10 1))'), GeomFromText('LINESTRING(7 0, 7 3)'))) MULTILINESTRING((0 2, 7 2), (0 1, 7 1)) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_makevalid1.testcase0000664000175000017500000000027412163502133023167 00000000000000ST_MakeValid - Invalid BLOB (error) :memory: #use in-memory database SELECT ST_MakeValid(zeroblob(4)); 1 # rows (not including the header row) 1 # columns ST_MakeValid(zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid33.testcase0000664000175000017500000000043412163502133023467 00000000000000ST_SnapToGrid - six args - NULL sizeM (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), MakePoint(1, 1), 1, 2, 3, NULL); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), MakePoint(1, 1), 1, 2, 3, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid59.testcase0000664000175000017500000000262312163502133023501 00000000000000ST_SnapToGrid - MultiPolygon Z :memory: #use in-memory database SELECT AsText(ST_SnapToGrid(GeomFromText('MULTIPOLYGONZ(((5.11 5.11 10.1, 5.12 5.11 10.11, 5.11 5.11 10.12, 5.11 5.12 10.13, 5.11 5.11 10.1)), ((0.1 0.1 10.1, 0.2 0.2 10.11, 0.2 5.1 10.12, 4.9 4.9 10.13, 5.1 5.1 10.14, 4.9 0.15 10.15, 0.1 0.1 10.1), (3.1 3.1 10.1, 3.2 3.1 10.11, 3.2 3.2 10.11, 3.2 3.1 10.12, 3.1 3.1 10.1), (1.1 1.1 10.1, 1.1 2.1 10.11, 2.1 2.1 10.12, 2.1 1.1 10.13, 1.1 1.1 10.1)), ((5.51 5.51 10.1, 6.51 5.51 10.11, 6.51 6.51 10.12, 5.51 6.51 10.13, 5.51 5.51 10.1)))'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)); 1 # rows (not including the header row) 1 # columns AsText(ST_SnapToGrid(GeomFromText('MULTIPOLYGONZ(((5.11 5.11 10.1, 5.12 5.11 10.11, 5.11 5.11 10.12, 5.11 5.12 10.13, 5.11 5.11 10.1)), ((0.1 0.1 10.1, 0.2 0.2 10.11, 0.2 5.1 10.12, 4.9 4.9 10.13, 5.1 5.1 10.14, 4.9 0.15 10.15, 0.1 0.1 10.1), (3.1 3.1 10.1, 3.2 3.1 10.11, 3.2 3.2 10.11, 3.2 3.1 10.12, 3.1 3.1 10.1), (1.1 1.1 10.1, 1.1 2.1 10.11, 2.1 2.1 10.12, 2.1 1.1 10.13, 1.1 1.1 10.1)), ((5.51 5.51 10.1, 6.51 5.51 10.11, 6.51 6.51 10.12, 5.51 6.51 10.13, 5.51 5.51 10.1)))'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)) MULTIPOLYGON Z(((0 0 10, 0.25 0.25 10, 0.25 5 10, 5 5 10.25, 5 0.25 10.25, 0 0 10), (3 3 10, 3.25 3 10, 3.25 3.25 10, 3.25 3 10, 3 3 10), (1 1 10, 1 2 10, 2 2 10, 2 1 10.25, 1 1 10)), ((5.5 5.5 10, 6.5 5.5 10, 6.5 6.5 10, 5.5 6.5 10.25, 5.5 5.5 10))) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid43.testcase0000664000175000017500000000052612163502133023472 00000000000000ST_SnapToGrid - Linestring 2D :memory: #use in-memory database SELECT AsText(ST_SnapToGrid(GeomFromText('LINESTRING(1.2 2.3, 1.21 2.31, 1.22 2.32, 2.1 3.9)'), 0.25)); 1 # rows (not including the header row) 1 # columns AsText(ST_SnapToGrid(GeomFromText('LINESTRING(1.2 2.3, 1.21 2.31, 1.22 2.32, 2.1 3.9)'), 0.25)) LINESTRING(1.25 2.25, 2 4) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_asx3d8.testcase0000664000175000017500000000050612163502133022261 00000000000000ST_AsX3D - 2D polygon :memory: #use in-memory database SELECT ST_AsX3D(GeomFromText('POLYGON((10 10, 11 10, 11 11, 10 11, 10 10))')); 1 # rows (not including the header row) 1 # columns ST_AsX3D(GeomFromText('POLYGON((10 10, 11 10, 11 11, 10 11, 10 10))')) 10 10 11 10 11 11 10 11 ' />:0 libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_area14.testcase0000664000175000017500000000034012163502133022220 00000000000000ST_Area Geodesic - Point - Ellipsoid :memory: #use in-memory database SELECT ST_Area(GeomFromText("POINT(50.4 50.4)"), 1); 1 # rows (not including the header row) 1 # columns ST_Area(GeomFromText("POINT(50.4 50.4)"), 1) 0.0 libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/maxdistance1.testcase0000664000175000017500000000033712163502133023024 00000000000000MaxDistance - two 2D points :memory: #use in-memory database SELECT ST_MaxDistance(MakePoint(1, 2), MakePoint(4, 6)) 1 # rows (not including the header row) 1 # columns ST_MaxDistance(MakePoint(1, 2), MakePoint(4, 6)) 5.0 libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_asx3d30.testcase0000664000175000017500000000152612163502133022337 00000000000000ST_AsX3D - 3D linestring, 6 digit precision, long SRS, refid :memory: #use in-memory database SELECT ST_AsX3D(GeomFromText('GEOMETRYCOLLECTIONZ(LINESTRINGZ(10.12345678 10.98765432 101.123, 11 10 102, 11.321 11.12 103.6453128), POINTZ(15.1234567 14.7654321 7.654321))', 4326), 6, 1, 'test_'); 1 # rows (not including the header row) 1 # columns ST_AsX3D(GeomFromText('GEOMETRYCOLLECTIONZ(LINESTRINGZ(10.12345678 10.98765432 101.123, 11 10 102, 11.321 11.12 103.6453128), POINTZ(15.1234567 14.7654321 7.654321))', 4326), 6, 1, 'test_') 15.123457 14.765432 7.654321:0 libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_split19.testcase0000664000175000017500000000045112163502133022453 00000000000000ST_Split - Line-Point (not split) :memory: #use in-memory database SELECT AsText(ST_Split(GeomFromText('LINESTRING(0 0, 10 0)'), MakePoint(11, 0))); 1 # rows (not including the header row) 1 # columns AsText(ST_Split(GeomFromText('LINESTRING(0 0, 10 0)'), MakePoint(11, 0))) LINESTRING(0 0, 10 0) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/3ddistance5.testcase0000664000175000017500000000031012163502133022540 000000000000003DDistance - non-blob first arg :memory: #use in-memory database SELECT ST_3DDistance(3, MakePoint(1, 2)) 1 # rows (not including the header row) 1 # columns ST_3DDistance(3, MakePoint(1, 2)) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_azimuth2.testcase0000664000175000017500000000045012163502133022710 00000000000000ST_Azimuth - -1 SRID points :memory: #use in-memory database SELECT ST_Azimuth(MakePoint(123456, 12345678.5, -1), MakePoint(123457, 12345679.5, -1)); 1 # rows (not including the header row) 1 # columns ST_Azimuth(MakePoint(123456, 12345678.5, -1), MakePoint(123457, 12345679.5, -1)); 0.785398:6 libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_segmentize7.testcase0000664000175000017500000000042412163502133023407 00000000000000ST_Segmentize - NULL distance (error) :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(GeomFromText('LINESTRING(1 1, 2 2)'), NULL)); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Segmentize(GeomFromText('LINESTRING(1 1, 2 2)'), NULL)) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid60.testcase0000664000175000017500000000052512163502133023470 00000000000000ST_SnapToGrid - Point M :memory: #use in-memory database SELECT AsText(ST_SnapToGrid(GeomFromText('POINTM(1.2 2.3 10.1)'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)); 1 # rows (not including the header row) 1 # columns AsText(ST_SnapToGrid(GeomFromText('POINTM(1.2 2.3 10.1)'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)) POINT M(1.25 2.25 10) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_area13.testcase0000664000175000017500000000061512163502133022224 00000000000000ST_Area Geodesic - valid Polygon - Ellipsoid :memory: #use in-memory database SELECT ST_Area(GeomFromText("POLYGON((50.4 50.4, 50.4 54, 54 54, 54 50.4, 50.4 50.4),(51 51, 51 53, 53 53, 53 51, 51 51))"), 1); 1 # rows (not including the header row) 1 # columns ST_Area(GeomFromText("POLYGON((50.4 50.4, 50.4 54, 54 54, 54 50.4, 50.4 50.4),(51 51, 51 53, 53 53, 53 51, 51 51))"), 1) 67989516071.49:2 libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_split38.testcase0000664000175000017500000000046312163502133022457 00000000000000ST_SplitlRight - Line-Point (split) :memory: #use in-memory database SELECT AsText(ST_SplitRight(GeomFromText('LINESTRING(0 0, 10 0)'), MakePoint(7, 0))); 1 # rows (not including the header row) 1 # columns AsText(ST_SplitRight(GeomFromText('LINESTRING(0 0, 10 0)'), MakePoint(7, 0))) LINESTRING(7 0, 10 0) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_geohash5.testcase0000664000175000017500000000026312163502133022652 00000000000000ST_GeoHash - zeroblob geometry :memory: #use in-memory database SELECT ST_GeoHash(zeroblob(4)); 1 # rows (not including the header row) 1 # columns ST_GeoHash(zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_split32.testcase0000664000175000017500000000046512163502133022453 00000000000000ST_SplitLeft - Line-Point (not split) :memory: #use in-memory database SELECT AsText(ST_SplitLeft(GeomFromText('LINESTRING(0 0, 10 0)'), MakePoint(11, 0))); 1 # rows (not including the header row) 1 # columns AsText(ST_SplitLeft(GeomFromText('LINESTRING(0 0, 10 0)'), MakePoint(11, 0))) LINESTRING(0 0, 10 0) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_asx3d3.testcase0000664000175000017500000000022412163502133022251 00000000000000ST_AsX3D - int geometry :memory: #use in-memory database SELECT ST_AsX3D(1); 1 # rows (not including the header row) 1 # columns ST_AsX3D(1) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_asx3d18.testcase0000664000175000017500000000046412163502133022345 00000000000000ST_AsX3D - 3D linestring BLOB precision :memory: #use in-memory database SELECT ST_AsX3D(GeomFromText('LINESTRINGZ(10 10 101, 11 10 102, 11 11 103)'), zeroblob(4)); 1 # rows (not including the header row) 1 # columns ST_AsX3D(GeomFromText('LINESTRINGZ(10 10 101, 11 10 102, 11 11 103)'), zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid7.testcase0000664000175000017500000000036412163502133023412 00000000000000ST_SnapToGrid - three args - NULL sizeX (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), NULL, 0.5); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), NULL, 0.5) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_makevaliddiscarded3.testcase0000664000175000017500000000030712163502133025031 00000000000000ST_MakeValidDiscarded - text (error) :memory: #use in-memory database SELECT ST_MakeValidDiscarded('alpha'); 1 # rows (not including the header row) 1 # columns ST_MakeValidDiscarded('alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_makevaliddiscarded8.testcase0000664000175000017500000000072312163502133025040 00000000000000ST_MakeValidDiscarded - invalid MultiPolygon [discarded items] :memory: #use in-memory database SELECT IsValid(v.v), NumGeometries(v.v), GeometryType(v.v) FROM (SELECT MakeValidDiscarded(g.g) AS v FROM (SELECT GeomFromText ('MULTIPOLYGON(((0 0, 1 0, 1 2, 1 1, 0 1, 0 0)), ((2 2, 3 2, 3 2.5, 2.5 2.5, 3 2.5, 3 3, 2 3, 2 2)))') AS g) AS g) AS v; 1 # rows (not including the header row) 3 # columns IsValid(v.v) NumGeometries(v.v) GeometryType(v.v) 1 2 MULTILINESTRING libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_split41.testcase0000664000175000017500000000063412163502133022451 00000000000000ST_SplitRight - MultiLine-Line (split) :memory: #use in-memory database SELECT AsText(ST_SplitRight(GeomFromText('MULTILINESTRING((0 2, 10 2), (0 1, 10 1))'), GeomFromText('LINESTRING(7 0, 7 3)'))); 1 # rows (not including the header row) 1 # columns AsText(ST_SplitRight(GeomFromText('MULTILINESTRING((0 2, 10 2), (0 1, 10 1))'), GeomFromText('LINESTRING(7 0, 7 3)'))) MULTILINESTRING((7 2, 10 2), (7 1, 10 1)) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_project14.testcase0000664000175000017500000000042112163502133022756 00000000000000ST_Project - valid :memory: #use in-memory database SELECT AsText(ST_Project(GeomFromText('POINT(0 0)'), 100000, Radians(45))); 1 # rows (not including the header row) 1 # columns AsText(ST_Project(GeomFromText('POINT(0 0)'), 100000, Radians(45))) POINT(0.635231 0.639472) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_project8.testcase0000664000175000017500000000037712163502133022713 00000000000000ST_Project - NULL distance :memory: #use in-memory database SELECT ST_Project(GeomFromText('POINT(0 0)', 4326), NULL, Radians(45)); 1 # rows (not including the header row) 1 # columns ST_Project(GeomFromText('POINT(0 0)', 4326), NULL, Radians(45)) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_split43.testcase0000664000175000017500000000115012163502133022445 00000000000000ST_SplitRight - Collection-Line (split) :memory: #use in-memory database SELECT AsText(ST_SplitRight(GeomFromText('GEOMETRYCOLLECTION(LINESTRING(0 11, 10 11), POLYGON((0 1, 10 1, 10 10, 0 10, 0 1), (5 5, 9 5, 9 9, 5 9, 5 5)))'), GeomFromText('LINESTRING(7 0, 7 20)'))); 1 # rows (not including the header row) 1 # columns AsText(ST_SplitRight(GeomFromText('GEOMETRYCOLLECTION(LINESTRING(0 11, 10 11), POLYGON((0 1, 10 1, 10 10, 0 10, 0 1), (5 5, 9 5, 9 9, 5 9, 5 5)))'), GeomFromText('LINESTRING(7 0, 7 20)'))) GEOMETRYCOLLECTION(LINESTRING(7 11, 10 11), POLYGON((7 10, 10 10, 10 1, 7 1, 7 5, 9 5, 9 9, 7 9, 7 10))) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_project4.testcase0000664000175000017500000000032412163502133022677 00000000000000ST_Project - TEXT start Point :memory: #use in-memory database SELECT ST_Project('alpha', 100000, Radians(45)); 1 # rows (not including the header row) 1 # columns ST_Project('alpha', 100000, Radians(45)) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_segmentize29.testcase0000664000175000017500000000061312163502133023473 00000000000000ST_Segmentize - Collection - three Points :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(GeomFromText('GEOMETRYCOLLECTION(POINT(0 0), POINT(1 1), POINT(2 2))'), 0.5)); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Segmentize(GeomFromText('GEOMETRYCOLLECTION(POINT(0 0), POINT(1 1), POINT(2 2))'), 0.5)) GEOMETRYCOLLECTION(POINT(0 0), POINT(1 1), POINT(2 2)) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_asx3d10.testcase0000664000175000017500000000043012163502133022326 00000000000000ST_AsX3D - 2D multipoint :memory: #use in-memory database SELECT ST_AsX3D(GeomFromText('MULTIPOINT(10 10, 11 10, 11 11)')); 1 # rows (not including the header row) 1 # columns ST_AsX3D(GeomFromText('MULTIPOINT(10 10, 11 10, 11 11)')) :0 libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_geohash9.testcase0000664000175000017500000000035412163502133022657 00000000000000ST_GeoHash - WGS84 Point, invalid precision :memory: #use in-memory database SELECT ST_GeoHash(MakePoint(10, -20, 4326), 'alpha'); 1 # rows (not including the header row) 1 # columns ST_GeoHash(MakePoint(10, -20, 4326), 'alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid34.testcase0000664000175000017500000000045212163502133023470 00000000000000ST_SnapToGrid - six args - BLOB sizeM (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), MakePoint(1, 1), 1, 2, 3, zeroblob(4)); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), MakePoint(1, 1), 1, 2, 3, zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_segmentize12.testcase0000664000175000017500000000201512163502133023461 00000000000000ST_Segmentize - Collection M :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(GeomFromText('GEOMETRYCOLLECTIONM(POINTM(0 0 10), LINESTRINGM(1 1 10, 1 2 11), POLYGONM((3 3 10, 6 3 11, 6 6 12, 3 6 13, 3 3 10), (4 4 10, 5 4 11, 5 5 12, 5 4 13, 4 4 10)))'), 0.5)); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Segmentize(GeomFromText('GEOMETRYCOLLECTIONM(POINTM(0 0 10), LINESTRINGM(1 1 10, 1 2 11), POLYGONM((3 3 10, 6 3 11, 6 6 12, 3 6 13, 3 3 10), (4 4 10, 5 4 11, 5 5 12, 5 4 13, 4 4 10)))'), 0.5)) GEOMETRYCOLLECTION M(POINT M(0 0 10), LINESTRING M(1 1 10, 1 1.5 10.5, 1 2 11), POLYGON M((3 3 10, 3.5 3 10.166667, 4 3 10.333333, 4.5 3 10.5, 5 3 10.666667, 5.5 3 10.833333, 6 3 11, 6 3.5 11.166667, 6 4 11.333333, 6 4.5 11.5, 6 5 11.666667, 6 5.5 11.833333, 6 6 12, 5.5 6 12.166667, 5 6 12.333333, 4.5 6 12.5, 4 6 12.666667, 3.5 6 12.833333, 3 6 13, 3 5.5 12.5, 3 5 12, 3 4.5 11.5, 3 4 11, 3 3.5 10.5, 3 3 10), (4 4 10, 4.5 4 10.5, 5 4 11, 5 4.5 11.5, 5 5 12, 5 4.5 12.5, 5 4 13, 4.5 4 11.5, 4 4 10))) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_segmentize6.testcase0000664000175000017500000000031612163502133023406 00000000000000ST_Segmentize - NULL BLOB (error) :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(NULL, 0.5)); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Segmentize(NULL, 0.5)) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_split23.testcase0000664000175000017500000000064612163502133022454 00000000000000ST_Split - Polygon-Line (not split) :memory: #use in-memory database SELECT AsText(ST_ForceLHR(ST_Split(GeomFromText('POLYGON((0 1, 10 1, 10 10, 0 10, 0 1))'), GeomFromText('LINESTRING(12 0, 12 20)')))); 1 # rows (not including the header row) 1 # columns AsText(ST_ForceLHR(ST_Split(GeomFromText('POLYGON((0 1, 10 1, 10 10, 0 10, 0 1))'), GeomFromText('LINESTRING(12 0, 12 20)')))) POLYGON((0 1, 0 10, 10 10, 10 1, 0 1)) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_segmentize10.testcase0000664000175000017500000000031612163502133023461 00000000000000ST_Segmentize - NULL BLOB (error) :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(NULL, 0.5)); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Segmentize(NULL, 0.5)) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_project6.testcase0000664000175000017500000000042212163502133022700 00000000000000ST_Project - start Point (not long/lat) :memory: #use in-memory database SELECT ST_Project(GeomFromText('POINT(0 0)', 32632), 100000, Radians(45)); 1 # rows (not including the header row) 1 # columns ST_Project(GeomFromText('POINT(0 0)', 32632), 100000, Radians(45)) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_segmentize31.testcase0000664000175000017500000000137312163502133023470 00000000000000ST_Segmentize - Collection - two Polygons :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(GeomFromText('GEOMETRYCOLLECTION(POLYGON((0 0, 1 0, 1 1, 0 1, 0 0)), POLYGON((3 3, 6 3, 6 6, 3 6, 3 3), (4 4, 5 4, 5 5, 5 4, 4 4)))'), 0.5)); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Segmentize(GeomFromText('GEOMETRYCOLLECTION(POLYGON((0 0, 1 0, 1 1, 0 1, 0 0)), POLYGON((3 3, 6 3, 6 6, 3 6, 3 3), (4 4, 5 4, 5 5, 5 4, 4 4)))'), 0.5)) GEOMETRYCOLLECTION(POLYGON((0 0, 0.5 0, 1 0, 1 0.5, 1 1, 0.5 1, 0 1, 0 0.5, 0 0)), POLYGON((3 3, 3.5 3, 4 3, 4.5 3, 5 3, 5.5 3, 6 3, 6 3.5, 6 4, 6 4.5, 6 5, 6 5.5, 6 6, 5.5 6, 5 6, 4.5 6, 4 6, 3.5 6, 3 6, 3 5.5, 3 5, 3 4.5, 3 4, 3 3.5, 3 3), (4 4, 4.5 4, 5 4, 5 4.5, 5 5, 5 4.5, 5 4, 4.5 4, 4 4))) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid41.testcase0000664000175000017500000000044212163502133023465 00000000000000ST_SnapToGrid - six args - text sizeZ (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), MakePoint(1, 1), 1, 2, 'alpha', 4); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), MakePoint(1, 1), 1, 2, 'alpha', 4) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_geohash6.testcase0000664000175000017500000000032512163502133022652 00000000000000ST_GeoHash - WGS84 Point :memory: #use in-memory database SELECT ST_GeoHash(MakePoint(10, -20, 4326)); 1 # rows (not including the header row) 1 # columns ST_GeoHash(MakePoint(10, -20, 4326)) khrn5x1g8cu2yhrn5x1g libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_azimuth11.testcase0000664000175000017500000000033512163502133022772 00000000000000ST_Azimuth - text PointB (error) :memory: #use in-memory database SELECT ST_Azimuth(MakePoint(10, 10, 4326), 'beta'); 1 # rows (not including the header row) 1 # columns ST_Azimuth(MakePoint(10, 10, 4326), 'beta') (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_project12.testcase0000664000175000017500000000037212163502133022761 00000000000000ST_Project - TEXT bearing :memory: #use in-memory database SELECT ST_Project(GeomFromText('POINT(0 0)', 4326), 100000, 'alpha'); 1 # rows (not including the header row) 1 # columns ST_Project(GeomFromText('POINT(0 0)', 4326), 100000, 'alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/3dmaxdistance2.testcase0000664000175000017500000000035712163502133023256 000000000000003DMaxDistance - two 2D identical points :memory: #use in-memory database SELECT ST_3DMaxDistance(MakePoint(1, 2), MakePoint(1, 2)) 1 # rows (not including the header row) 1 # columns ST_3DMaxDistance(MakePoint(1, 2), MakePoint(1, 2)) 0.0 libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/Makefile.in0000664000175000017500000004226512163502133020761 00000000000000# Makefile.in generated by automake 1.12.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = test/sql_stmt_lwgeom_tests DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = 3ddistance10.testcase \ 3ddistance1.testcase \ 3ddistance2.testcase \ 3ddistance3.testcase \ 3ddistance4.testcase \ 3ddistance5.testcase \ 3ddistance6.testcase \ 3ddistance7.testcase \ 3ddistance8.testcase \ 3ddistance9.testcase \ 3dmaxdistance10.testcase \ 3dmaxdistance1.testcase \ 3dmaxdistance2.testcase \ 3dmaxdistance3.testcase \ 3dmaxdistance4.testcase \ 3dmaxdistance5.testcase \ 3dmaxdistance6.testcase \ 3dmaxdistance7.testcase \ 3dmaxdistance8.testcase \ 3dmaxdistance9.testcase \ maxdistance10.testcase \ maxdistance1.testcase \ maxdistance2.testcase \ maxdistance3.testcase \ maxdistance4.testcase \ maxdistance5.testcase \ maxdistance6.testcase \ maxdistance7.testcase \ maxdistance8.testcase \ maxdistance9.testcase \ st_asx3d10.testcase \ st_asx3d11.testcase \ st_asx3d12.testcase \ st_asx3d13.testcase \ st_asx3d14.testcase \ st_asx3d15.testcase \ st_asx3d16.testcase \ st_asx3d17.testcase \ st_asx3d18.testcase \ st_asx3d19.testcase \ st_asx3d1.testcase \ st_asx3d20.testcase \ st_asx3d21.testcase \ st_asx3d22.testcase \ st_asx3d23.testcase \ st_asx3d24.testcase \ st_asx3d25.testcase \ st_asx3d26.testcase \ st_asx3d27.testcase \ st_asx3d28.testcase \ st_asx3d29.testcase \ st_asx3d2.testcase \ st_asx3d30.testcase \ st_asx3d3.testcase \ st_asx3d4.testcase \ st_asx3d5.testcase \ st_asx3d6.testcase \ st_asx3d7.testcase \ st_asx3d8.testcase \ st_asx3d9.testcase \ st_area10.testcase \ st_area11.testcase \ st_area12.testcase \ st_area13.testcase \ st_area14.testcase \ st_area15.testcase \ st_area16.testcase \ st_area17.testcase \ st_area18.testcase \ st_azimuth11.testcase \ st_azimuth12.testcase \ st_azimuth13.testcase \ st_azimuth14.testcase \ st_azimuth15.testcase \ st_azimuth16.testcase \ st_azimuth17.testcase \ st_azimuth1.testcase \ st_azimuth2.testcase \ st_azimuth3.testcase \ st_azimuth4.testcase \ st_azimuth5.testcase \ st_azimuth6.testcase \ st_azimuth7.testcase \ st_azimuth8.testcase \ st_azimuth9.testcase \ st_geohash10.testcase \ st_geohash1.testcase \ st_geohash2.testcase \ st_geohash3.testcase \ st_geohash4.testcase \ st_geohash5.testcase \ st_geohash6.testcase \ st_geohash7.testcase \ st_geohash8.testcase \ st_geohash9.testcase \ st_makevalid1.testcase \ st_makevalid2.testcase \ st_makevalid3.testcase \ st_makevalid4.testcase \ st_makevalid5.testcase \ st_makevalid6.testcase \ st_makevalid7.testcase \ st_makevalid8.testcase \ st_makevaliddiscarded1.testcase \ st_makevaliddiscarded2.testcase \ st_makevaliddiscarded3.testcase \ st_makevaliddiscarded4.testcase \ st_makevaliddiscarded5.testcase \ st_makevaliddiscarded6.testcase \ st_makevaliddiscarded7.testcase \ st_makevaliddiscarded8.testcase \ st_project1.testcase \ st_project2.testcase \ st_project3.testcase \ st_project4.testcase \ st_project5.testcase \ st_project6.testcase \ st_project7.testcase \ st_project8.testcase \ st_project9.testcase \ st_project10.testcase \ st_project11.testcase \ st_project12.testcase \ st_project13.testcase \ st_project14.testcase \ st_segmentize10.testcase \ st_segmentize11.testcase \ st_segmentize12.testcase \ st_segmentize13.testcase \ st_segmentize14.testcase \ st_segmentize15.testcase \ st_segmentize16.testcase \ st_segmentize17.testcase \ st_segmentize18.testcase \ st_segmentize19.testcase \ st_segmentize1.testcase \ st_segmentize20.testcase \ st_segmentize21.testcase \ st_segmentize22.testcase \ st_segmentize23.testcase \ st_segmentize24.testcase \ st_segmentize25.testcase \ st_segmentize26.testcase \ st_segmentize27.testcase \ st_segmentize28.testcase \ st_segmentize29.testcase \ st_segmentize2.testcase \ st_segmentize30.testcase \ st_segmentize31.testcase \ st_segmentize3.testcase \ st_segmentize4.testcase \ st_segmentize5.testcase \ st_segmentize6.testcase \ st_segmentize7.testcase \ st_segmentize8.testcase \ st_segmentize9.testcase \ st_snaptogrid10.testcase \ st_snaptogrid11.testcase \ st_snaptogrid12.testcase \ st_snaptogrid13.testcase \ st_snaptogrid14.testcase \ st_snaptogrid15.testcase \ st_snaptogrid16.testcase \ st_snaptogrid17.testcase \ st_snaptogrid18.testcase \ st_snaptogrid19.testcase \ st_snaptogrid1.testcase \ st_snaptogrid20.testcase \ st_snaptogrid21.testcase \ st_snaptogrid22.testcase \ st_snaptogrid23.testcase \ st_snaptogrid24.testcase \ st_snaptogrid25.testcase \ st_snaptogrid26.testcase \ st_snaptogrid27.testcase \ st_snaptogrid28.testcase \ st_snaptogrid29.testcase \ st_snaptogrid2.testcase \ st_snaptogrid30.testcase \ st_snaptogrid31.testcase \ st_snaptogrid32.testcase \ st_snaptogrid33.testcase \ st_snaptogrid34.testcase \ st_snaptogrid35.testcase \ st_snaptogrid36.testcase \ st_snaptogrid37.testcase \ st_snaptogrid38.testcase \ st_snaptogrid39.testcase \ st_snaptogrid3.testcase \ st_snaptogrid40.testcase \ st_snaptogrid41.testcase \ st_snaptogrid42.testcase \ st_snaptogrid43.testcase \ st_snaptogrid44.testcase \ st_snaptogrid45.testcase \ st_snaptogrid46.testcase \ st_snaptogrid47.testcase \ st_snaptogrid48.testcase \ st_snaptogrid49.testcase \ st_snaptogrid4.testcase \ st_snaptogrid50.testcase \ st_snaptogrid51.testcase \ st_snaptogrid52.testcase \ st_snaptogrid53.testcase \ st_snaptogrid54.testcase \ st_snaptogrid55.testcase \ st_snaptogrid56.testcase \ st_snaptogrid57.testcase \ st_snaptogrid58.testcase \ st_snaptogrid59.testcase \ st_snaptogrid5.testcase \ st_snaptogrid60.testcase \ st_snaptogrid61.testcase \ st_snaptogrid62.testcase \ st_snaptogrid63.testcase \ st_snaptogrid64.testcase \ st_snaptogrid65.testcase \ st_snaptogrid6.testcase \ st_snaptogrid7.testcase \ st_snaptogrid8.testcase \ st_snaptogrid9.testcase \ st_split10.testcase \ st_split11.testcase \ st_split12.testcase \ st_split13.testcase \ st_split14.testcase \ st_split15.testcase \ st_split16.testcase \ st_split17.testcase \ st_split18.testcase \ st_split19.testcase \ st_split1.testcase \ st_split20.testcase \ st_split21.testcase \ st_split22.testcase \ st_split23.testcase \ st_split24.testcase \ st_split25.testcase \ st_split26.testcase \ st_split27.testcase \ st_split28.testcase \ st_split29.testcase \ st_split2.testcase \ st_split30.testcase \ st_split31.testcase \ st_split32.testcase \ st_split33.testcase \ st_split34.testcase \ st_split35.testcase \ st_split36.testcase \ st_split37.testcase \ st_split38.testcase \ st_split39.testcase \ st_split3.testcase \ st_split40.testcase \ st_split41.testcase \ st_split42.testcase \ st_split43.testcase \ st_split44.testcase \ st_split45.testcase \ st_split46.testcase \ st_split47.testcase \ st_split48.testcase \ st_split49.testcase \ st_split4.testcase \ st_split5.testcase \ st_split6.testcase \ st_split7.testcase \ st_split8.testcase \ st_split9.testcase all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/sql_stmt_lwgeom_tests/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign test/sql_stmt_lwgeom_tests/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags: TAGS TAGS: ctags: CTAGS CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_makevaliddiscarded1.testcase0000664000175000017500000000032712163502133025031 00000000000000ST_MakeValidDiscarded - Invalid BLOB (error) :memory: #use in-memory database SELECT ST_MakeValidDiscarded(zeroblob(4)); 1 # rows (not including the header row) 1 # columns ST_MakeValidDiscarded(zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_split20.testcase0000664000175000017500000000052412163502133022444 00000000000000ST_Split - Line-Line (not split) :memory: #use in-memory database SELECT AsText(ST_Split(GeomFromText('LINESTRING(0 1, 10 1)'), GeomFromText('LINESTRING(11 0, 11 3)'))); 1 # rows (not including the header row) 1 # columns AsText(ST_Split(GeomFromText('LINESTRING(0 1, 10 1)'), GeomFromText('LINESTRING(11 0, 11 3)'))) LINESTRING(0 1, 10 1) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_split11.testcase0000664000175000017500000000051412163502133022443 00000000000000ST_Split - Line-Polygon (error) :memory: #use in-memory database SELECT ST_Split(GeomFromText('LINESTRING(0 1, 10 1)'), GeomFromText('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))')); 1 # rows (not including the header row) 1 # columns ST_Split(GeomFromText('LINESTRING(0 1, 10 1)'), GeomFromText('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))')) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid10.testcase0000664000175000017500000000036412163502133023464 00000000000000ST_SnapToGrid - three args - NULL sizeY (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), 0.5, NULL); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), 0.5, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid54.testcase0000664000175000017500000000052512163502133023473 00000000000000ST_SnapToGrid - Point Z :memory: #use in-memory database SELECT AsText(ST_SnapToGrid(GeomFromText('POINTZ(1.2 2.3 10.1)'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)); 1 # rows (not including the header row) 1 # columns AsText(ST_SnapToGrid(GeomFromText('POINTZ(1.2 2.3 10.1)'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)) POINT Z(1.25 2.25 10) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid4.testcase0000664000175000017500000000035512163502133023407 00000000000000ST_SnapToGrid - two args - text size (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), 'alpha'); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), 'alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/maxdistance6.testcase0000664000175000017500000000033012163502133023022 00000000000000MaxDistance - bad blob second arg :memory: #use in-memory database SELECT ST_MaxDistance(MakePoint(1, 2), "hello") 1 # rows (not including the header row) 1 # columns ST_MaxDistance(MakePoint(1, 2), "hello") (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/3dmaxdistance10.testcase0000664000175000017500000000053712163502133023335 000000000000003DMaxDistance - two 3D linestring :memory: #use in-memory database SELECT ST_3DMaxDistance(GeomFromText("LINESTRINGZ(0 0 1, 10 2 5)"), GeomFromText("LINESTRINGZ(0 2 3, 10 3 4)")); 1 # rows (not including the header row) 1 # columns ST_3DMaxDistance(GeomFromText("LINESTRINGZ(0 0 1, 10 2 5)"), GeomFromText("LINESTRINGZ(0 2 3, 10 3 4)")); 10.862780:6 libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_azimuth1.testcase0000664000175000017500000000040512163502133022707 00000000000000ST_Azimuth - WGS84 points :memory: #use in-memory database SELECT ST_Azimuth(MakePoint(10.5, 10, 4326), MakePoint(11.5, 11, 4326)); 1 # rows (not including the header row) 1 # columns ST_Azimuth(MakePoint(10.5, 10, 4326), MakePoint(11.5, 11, 4326)) 0.778630:6 libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_project10.testcase0000664000175000017500000000041512163502133022755 00000000000000ST_Project - BLOB distance :memory: #use in-memory database SELECT ST_Project(GeomFromText('POINT(0 0)', 4326), zeroblob(4), Radians(45)); 1 # rows (not including the header row) 1 # columns ST_Project(GeomFromText('POINT(0 0)', 4326), zeroblob(4), Radians(45)) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_area10.testcase0000664000175000017500000000056712163502133022227 00000000000000ST_Area Geodesic - valid Polygon - Sphere/Equator :memory: #use in-memory database SELECT ST_Area(GeomFromText("POLYGON((-0.4 -0.4, -0.4 4, 4 4, 4 -0.4, -0.4 -0.4),(1 1, 1 3, 3 3, 3 1, 1 1))"), 0); 1 # rows (not including the header row) 1 # columns ST_Area(GeomFromText("POLYGON((-0.4 -0.4, -0.4 4, 4 4, 4 -0.4, -0.4 -0.4),(1 1, 1 3, 3 3, 3 1, 1 1))"), 0) 189884187084.89:2 libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_split26.testcase0000664000175000017500000000057212163502133022455 00000000000000ST_SplitlLeft - Line-Point (split) :memory: #use in-memory database SELECT AsText(ST_SplitLeft(GeomFromText('LINESTRINGZM(0 0 10 100, 10 0 11 101)'), MakePointZM(7, 0, 10, 100))); 1 # rows (not including the header row) 1 # columns AsText(ST_SplitLeft(GeomFromText('LINESTRINGZM(0 0 10 100, 10 0 11 101)'), MakePointZM(7, 0, 10, 100))) LINESTRING ZM(0 0 10 100, 7 0 10.7 100.7) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_split49.testcase0000664000175000017500000000074212163502133022461 00000000000000ST_SplitRight - Collection-Line (not split) :memory: #use in-memory database SELECT ST_ForceLHR(ST_SplitRight(GeomFromText('GEOMETRYCOLLECTION(LINESTRING(0 11, 10 11), POLYGON((0 1, 10 1, 10 10, 0 10, 0 1)))'), GeomFromText('LINESTRING(-1 0, -1 20)'))); 1 # rows (not including the header row) 1 # columns ST_ForceLHR(ST_SplitRight(GeomFromText('GEOMETRYCOLLECTION(LINESTRING(0 11, 10 11), POLYGON((0 1, 10 1, 10 10, 0 10, 0 1)))'), GeomFromText('LINESTRING(-1 0, -1 20)'))) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_makevalid8.testcase0000664000175000017500000000067512163502133023203 00000000000000ST_MakeValid - invalid MultiPolygon [discarded items] :memory: #use in-memory database SELECT IsValid(v.v), NumGeometries(v.v), GeometryType(v.v) FROM (SELECT MakeValid(g.g) AS v FROM (SELECT GeomFromText ('MULTIPOLYGON(((0 0, 1 0, 1 2, 1 1, 0 1, 0 0)), ((2 2, 3 2, 3 2.5, 2.5 2.5, 3 2.5, 3 3, 2 3, 2 2)))') AS g) AS g) AS v; 1 # rows (not including the header row) 3 # columns IsValid(v.v) NumGeometries(v.v) GeometryType(v.v) 1 2 MULTIPOLYGON libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/3ddistance6.testcase0000664000175000017500000000032512163502133022547 000000000000003DDistance - bad blob second arg :memory: #use in-memory database SELECT ST_3DDistance(MakePoint(1, 2), "hello") 1 # rows (not including the header row) 1 # columns ST_3DDistance(MakePoint(1, 2), "hello") (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_split35.testcase0000664000175000017500000000064112163502133022452 00000000000000ST_SplitLeft - MultiLine-Line (not split) :memory: #use in-memory database SELECT AsText(ST_SplitLeft(GeomFromText('MULTILINESTRING((0 2, 10 2), (0 1, 10 1))'), GeomFromText('LINESTRING(-1 0, -1 3)'))); 1 # rows (not including the header row) 1 # columns AsText(ST_SplitLeft(GeomFromText('MULTILINESTRING((0 2, 10 2), (0 1, 10 1))'), GeomFromText('LINESTRING(-1 0, -1 3)'))) MULTILINESTRING((0 2, 10 2), (0 1, 10 1)) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid65.testcase0000664000175000017500000000262312163502133023476 00000000000000ST_SnapToGrid - MultiPolygon M :memory: #use in-memory database SELECT AsText(ST_SnapToGrid(GeomFromText('MULTIPOLYGONM(((5.11 5.11 10.1, 5.12 5.11 10.11, 5.11 5.11 10.12, 5.11 5.12 10.13, 5.11 5.11 10.1)), ((0.1 0.1 10.1, 0.2 0.2 10.11, 0.2 5.1 10.12, 4.9 4.9 10.13, 5.1 5.1 10.14, 4.9 0.15 10.15, 0.1 0.1 10.1), (3.1 3.1 10.1, 3.2 3.1 10.11, 3.2 3.2 10.11, 3.2 3.1 10.12, 3.1 3.1 10.1), (1.1 1.1 10.1, 1.1 2.1 10.11, 2.1 2.1 10.12, 2.1 1.1 10.13, 1.1 1.1 10.1)), ((5.51 5.51 10.1, 6.51 5.51 10.11, 6.51 6.51 10.12, 5.51 6.51 10.13, 5.51 5.51 10.1)))'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)); 1 # rows (not including the header row) 1 # columns AsText(ST_SnapToGrid(GeomFromText('MULTIPOLYGONM(((5.11 5.11 10.1, 5.12 5.11 10.11, 5.11 5.11 10.12, 5.11 5.12 10.13, 5.11 5.11 10.1)), ((0.1 0.1 10.1, 0.2 0.2 10.11, 0.2 5.1 10.12, 4.9 4.9 10.13, 5.1 5.1 10.14, 4.9 0.15 10.15, 0.1 0.1 10.1), (3.1 3.1 10.1, 3.2 3.1 10.11, 3.2 3.2 10.11, 3.2 3.1 10.12, 3.1 3.1 10.1), (1.1 1.1 10.1, 1.1 2.1 10.11, 2.1 2.1 10.12, 2.1 1.1 10.13, 1.1 1.1 10.1)), ((5.51 5.51 10.1, 6.51 5.51 10.11, 6.51 6.51 10.12, 5.51 6.51 10.13, 5.51 5.51 10.1)))'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)) MULTIPOLYGON M(((0 0 10, 0.25 0.25 10, 0.25 5 10, 5 5 10.25, 5 0.25 10.25, 0 0 10), (3 3 10, 3.25 3 10, 3.25 3.25 10, 3.25 3 10, 3 3 10), (1 1 10, 1 2 10, 2 2 10, 2 1 10.25, 1 1 10)), ((5.5 5.5 10, 6.5 5.5 10, 6.5 6.5 10, 5.5 6.5 10.25, 5.5 5.5 10))) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_split39.testcase0000664000175000017500000000053312163502133022456 00000000000000ST_SplitRight - Line-Line (split) :memory: #use in-memory database SELECT AsText(ST_SplitRight(GeomFromText('LINESTRING(0 1, 10 1)'), GeomFromText('LINESTRING(7 0, 7 3)'))); 1 # rows (not including the header row) 1 # columns AsText(ST_SplitRight(GeomFromText('LINESTRING(0 1, 10 1)'), GeomFromText('LINESTRING(7 0, 7 3)'))) LINESTRING(7 1, 10 1) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_split6.testcase0000664000175000017500000000037212163502133022371 00000000000000ST_Split - text input blade (error) :memory: #use in-memory database SELECT ST_Split(GeomFromText('LINESTRING(0 0, 10 0)'), 'alpha'); 1 # rows (not including the header row) 1 # columns ST_Split(GeomFromText('LINESTRING(0 0, 10 0)'), 'alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_asx3d28.testcase0000664000175000017500000000102512163502133022340 00000000000000ST_AsX3D - 3D linestring, 6 digit precision, long SRS, int refid :memory: #use in-memory database SELECT ST_AsX3D(GeomFromText('GEOMETRYCOLLECTIONZ(LINESTRINGZ(10.12345678 10.98765432 101.123, 11 10 102, 11.321 11.12 103.6453128), POINTZ(15.1234567 14.7654321 7.654321))', 4326), 6, 1, 1); 1 # rows (not including the header row) 1 # columns ST_AsX3D(GeomFromText('GEOMETRYCOLLECTIONZ(LINESTRINGZ(10.12345678 10.98765432 101.123, 11 10 102, 11.321 11.12 103.6453128), POINTZ(15.1234567 14.7654321 7.654321))', 4326), 6, 1, 1) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_asx3d24.testcase0000664000175000017500000000061012163502133022333 00000000000000ST_AsX3D - 3D linestring, 6 digit precision, double options :memory: #use in-memory database SELECT ST_AsX3D(GeomFromText('LINESTRINGZ(10.12345678 10.98765432 101.123, 11 10 102, 11.321 11.12 103.6453128)'), 6, 0.5); 1 # rows (not including the header row) 1 # columns ST_AsX3D(GeomFromText('LINESTRINGZ(10.12345678 10.98765432 101.123, 11 10 102, 11.321 11.12 103.6453128)'), 6, 0.5) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_geohash7.testcase0000664000175000017500000000046212163502133022655 00000000000000ST_GeoHash - WGS84 Linestring :memory: #use in-memory database SELECT ST_GeoHash(GeomFromText('LINESTRING(10 -20, 10.0001 -19.9899, 10.0002 -19.9899)', 4326)); 1 # rows (not including the header row) 1 # columns ST_GeoHash(GeomFromText('LINESTRING(10 -20, 10.0001 -19.9899, 10.0002 -19.9899)', 4326)) khrn libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_segmentize15.testcase0000664000175000017500000000040112163502133023461 00000000000000ST_Segmentize - Point Z :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(GeomFromText('POINTZ(0 0 10)'), 0.5)); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Segmentize(GeomFromText('POINTZ(0 0 10)'), 0.5)) POINT Z(0 0 10) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_makevaliddiscarded5.testcase0000664000175000017500000000044612163502133025037 00000000000000ST_MakeValidDiscarded - already valid Polygon :memory: #use in-memory database SELECT ST_MakeValidDiscarded(GeomFromText('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))')); 1 # rows (not including the header row) 1 # columns ST_MakeValidDiscarded(GeomFromText('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))')) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/3dmaxdistance3.testcase0000664000175000017500000000034312163502133023252 00000000000000MaxDistance - bad blob first arg :memory: #use in-memory database SELECT ST_MaxDistance(zeroblob(100), MakePoint(1, 2)) 1 # rows (not including the header row) 1 # columns ST_MaxDistance(zeroblob(100), MakePoint(1, 2)) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/3dmaxdistance1.testcase0000664000175000017500000000034512163502133023252 000000000000003DMaxDistance - two 2D points :memory: #use in-memory database SELECT ST_3DMaxDistance(MakePoint(1, 2), MakePoint(4, 6)) 1 # rows (not including the header row) 1 # columns ST_3DMaxDistance(MakePoint(1, 2), MakePoint(4, 6)) 5.0 libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_split46.testcase0000664000175000017500000000050512163502133022453 00000000000000ST_SplitRigt - MultiLine-Point (not split) :memory: #use in-memory database SELECT ST_SplitRight(GeomFromText('MULTILINESTRING((0 2, 10 2), (0 0, 10 0))'), MakePoint(-1, 0)); 1 # rows (not including the header row) 1 # columns ST_SplitRight(GeomFromText('MULTILINESTRING((0 2, 10 2), (0 0, 10 0))'), MakePoint(-1, 0)) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_asx3d6.testcase0000664000175000017500000000047112163502133022260 00000000000000ST_AsX3D - 2D linestring :memory: #use in-memory database SELECT ST_AsX3D(GeomFromText('LINESTRING(10 10, 11 10, 11 11)')); 1 # rows (not including the header row) 1 # columns ST_AsX3D(GeomFromText('LINESTRING(10 10, 11 10, 11 11)')) :0 libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_segmentize22.testcase0000664000175000017500000000104412163502133023463 00000000000000ST_Segmentize - Polygon :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(GeomFromText('POLYGON((3 3, 6 3, 6 6, 3 6, 3 3), (4 4, 5 4, 5 5, 5 4, 4 4))'), 0.5)); 1 # rows (not including the header row) 1 # column ST_AsText(ST_Segmentize(GeomFromText('POLYGON((3 3, 6 3, 6 6, 3 6, 3 3), (4 4, 5 4, 5 5, 5 4, 4 4))'), 0.5)) POLYGON((3 3, 3.5 3, 4 3, 4.5 3, 5 3, 5.5 3, 6 3, 6 3.5, 6 4, 6 4.5, 6 5, 6 5.5, 6 6, 5.5 6, 5 6, 4.5 6, 4 6, 3.5 6, 3 6, 3 5.5, 3 5, 3 4.5, 3 4, 3 3.5, 3 3), (4 4, 4.5 4, 5 4, 5 4.5, 5 5, 5 4.5, 5 4, 4.5 4, 4 4)) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_geohash1.testcase0000664000175000017500000000024112163502133022642 00000000000000ST_GeoHash - NULL geometry :memory: #use in-memory database SELECT ST_GeoHash(NULL); 1 # rows (not including the header row) 1 # columns ST_GeoHash(NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid8.testcase0000664000175000017500000000040212163502133023404 00000000000000ST_SnapToGrid - three args - BLOB sizeX (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), zeroblob(4), 0.5); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), zeroblob(4), 0.5) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid37.testcase0000664000175000017500000000045212163502133023473 00000000000000ST_SnapToGrid - six args - BLOB sizeY (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), MakePoint(1, 1), 1, zeroblob(4), 3, 4); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), MakePoint(1, 1), 1, zeroblob(4), 3, 4) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/3dmaxdistance6.testcase0000664000175000017500000000033612163502133023257 000000000000003DMaxDistance - bad blob second arg :memory: #use in-memory database SELECT ST_3DMaxDistance(MakePoint(1, 2), "hello") 1 # rows (not including the header row) 1 # columns ST_3DMaxDistance(MakePoint(1, 2), "hello") (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_asx3d21.testcase0000664000175000017500000000061012163502133022330 00000000000000ST_AsX3D - 3D linestring, 6 digit precision, NULL options :memory: #use in-memory database SELECT ST_AsX3D(GeomFromText('LINESTRINGZ(10.12345678 10.98765432 101.123, 11 10 102, 11.321 11.12 103.6453128)'), 6, NULL); 1 # rows (not including the header row) 1 # columns ST_AsX3D(GeomFromText('LINESTRINGZ(10.12345678 10.98765432 101.123, 11 10 102, 11.321 11.12 103.6453128)'), 6, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_split18.testcase0000664000175000017500000000111512163502133022450 00000000000000ST_Split - Collection-Line (split) :memory: #use in-memory database SELECT AsText(ST_Split(GeomFromText('GEOMETRYCOLLECTION(LINESTRING(0 11, 10 11), POLYGON((0 1, 10 1, 10 10, 0 10, 0 1)))'), GeomFromText('LINESTRING(7 0, 7 20)'))); 1 # rows (not including the header row) 1 # columns AsText(ST_Split(GeomFromText('GEOMETRYCOLLECTION(LINESTRING(0 11, 10 11), POLYGON((0 1, 10 1, 10 10, 0 10, 0 1)))'), GeomFromText('LINESTRING(7 0, 7 20)'))) GEOMETRYCOLLECTION(LINESTRING(0 11, 7 11), LINESTRING(7 11, 10 11), POLYGON((7 1, 0 1, 0 10, 7 10, 7 1)), POLYGON((7 10, 10 10, 10 1, 7 1, 7 10))) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_split5.testcase0000664000175000017500000000036312163502133022370 00000000000000ST_Split - NULL BLOB blade (error) :memory: #use in-memory database SELECT ST_Split(GeomFromText('LINESTRING(0 0, 10 0)'), NULL); 1 # rows (not including the header row) 1 # columns ST_Split(GeomFromText('LINESTRING(0 0, 10 0)'), NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/3ddistance3.testcase0000664000175000017500000000034012163502133022541 000000000000003DDistance - bad blob first arg :memory: #use in-memory database SELECT ST_3DDistance(zeroblob(100), MakePoint(1, 2)) 1 # rows (not including the header row) 1 # columns ST_3DDistance(zeroblob(100), MakePoint(1, 2)) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid2.testcase0000664000175000017500000000032412163502133023401 00000000000000ST_SnapToGrid - two args - invalid BLOB (error) :memory: #use in-memory database SELECT ST_SnapToGrid(zeroblob(4), 0.5); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(zeroblob(4), 0.5) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_split4.testcase0000664000175000017500000000040412163502133022363 00000000000000ST_Split - Invalid BLOB blade (error) :memory: #use in-memory database SELECT ST_Split(GeomFromText('LINESTRING(0 0, 10 0)'), zeroblob(4)); 1 # rows (not including the header row) 1 # columns ST_Split(GeomFromText('LINESTRING(0 0, 10 0)'), zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_segmentize5.testcase0000664000175000017500000000033712163502133023410 00000000000000ST_Segmentize - Invalid BLOB (error) :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(zeroblob(4), 0.5)); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Segmentize(zeroblob(4), 0.5)) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid47.testcase0000664000175000017500000000171712163502133023501 00000000000000ST_SnapToGrid - MultiPolygon 2D :memory: #use in-memory database SELECT AsText(ST_SnapToGrid(GeomFromText('MULTIPOLYGON(((5.11 5.11, 5.12 5.11, 4.11 5.11, 5.11 5.12, 5.11 5.11)), ((0.1 0.1, 0.2 0.2, 0.2 5.1, 4.9 4.9, 5.1 5.1, 4.9 0.15, 0.1 0.1), (3.1 3.1, 3.2 3.1, 3.2 3.2, 3.2 3.1, 3.1 3.1), (1.1 1.1, 1.1 2.1, 2.1 2.1, 2.1 1.1, 1.1 1.1)), ((5.51 5.51, 6.51 5.51, 6.51 6.51, 5.51 6.51, 5.51 5.51)))'), 0.25)); 1 # rows (not including the header row) 1 # columns AsText(ST_SnapToGrid(GeomFromText('MULTIPOLYGON(((5.11 5.11, 5.12 5.11, 4.11 5.11, 5.11 5.12, 5.11 5.11)), ((0.1 0.1, 0.2 0.2, 0.2 5.1, 4.9 4.9, 5.1 5.1, 4.9 0.15, 0.1 0.1), (3.1 3.1, 3.2 3.1, 3.2 3.2, 3.2 3.1, 3.1 3.1), (1.1 1.1, 1.1 2.1, 2.1 2.1, 2.1 1.1, 1.1 1.1)), ((5.51 5.51, 6.51 5.51, 6.51 6.51, 5.51 6.51, 5.51 5.51)))'), 0.25)) MULTIPOLYGON(((0 0, 0.25 0.25, 0.25 5, 5 5, 5 0.25, 0 0), (3 3, 3.25 3, 3.25 3.25, 3.25 3, 3 3), (1 1, 1 2, 2 2, 2 1, 1 1)), ((5.5 5.5, 6.5 5.5, 6.5 6.5, 5.5 6.5, 5.5 5.5))) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/3ddistance10.testcase0000664000175000017500000000052512163502133022624 000000000000003DDistance - two 3D linestring :memory: #use in-memory database SELECT ST_3DDistance(GeomFromText("LINESTRINGZ(0 0 1, 10 2 5)"), GeomFromText("LINESTRINGZ(0 2 3, 10 3 4)")); 1 # rows (not including the header row) 1 # columns ST_3DDistance(GeomFromText("LINESTRINGZ(0 0 1, 10 2 5)"), GeomFromText("LINESTRINGZ(0 2 3, 10 3 4)")); 1.262388:6 libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/maxdistance4.testcase0000664000175000017500000000034412163502133023025 00000000000000MaxDistance - bad blob second arg :memory: #use in-memory database SELECT ST_MaxDistance(MakePoint(1, 2), zeroblob(100)) 1 # rows (not including the header row) 1 # columns ST_MaxDistance(MakePoint(1, 2), zeroblob(100)) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_area11.testcase0000664000175000017500000000057212163502133022224 00000000000000ST_Area Geodesic - valid Polygon - Ellipsoid/Equator :memory: #use in-memory database SELECT ST_Area(GeomFromText("POLYGON((-0.4 -0.4, -0.4 4, 4 4, 4 -0.4, -0.4 -0.4),(1 1, 1 3, 3 3, 3 1, 1 1))"), 1); 1 # rows (not including the header row) 1 # columns ST_Area(GeomFromText("POLYGON((-0.4 -0.4, -0.4 4, 4 4, 4 -0.4, -0.4 -0.4),(1 1, 1 3, 3 3, 3 1, 1 1))"), 1) 189884187084.89:2 libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_split24.testcase0000664000175000017500000000106012163502133022444 00000000000000ST_Split - Collection-Line (not split) :memory: #use in-memory database SELECT AsText(ST_ForceLHR(ST_Split(GeomFromText('GEOMETRYCOLLECTION(LINESTRING(0 11, 10 11), POLYGON((0 1, 10 1, 10 10, 0 10, 0 1)))'), GeomFromText('LINESTRING(-1 0, -1 20)')))); 1 # rows (not including the header row) 1 # columns AsText(ST_ForceLHR(ST_Split(GeomFromText('GEOMETRYCOLLECTION(LINESTRING(0 11, 10 11), POLYGON((0 1, 10 1, 10 10, 0 10, 0 1)))'), GeomFromText('LINESTRING(-1 0, -1 20)')))) GEOMETRYCOLLECTION(LINESTRING(0 11, 10 11), POLYGON((0 1, 0 10, 10 10, 10 1, 0 1))) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_segmentize9.testcase0000664000175000017500000000032412163502133023410 00000000000000ST_Segmentize - text geometry (error) :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize('alpha', 0)); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Segmentize('alpha', 0)) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/maxdistance2.testcase0000664000175000017500000000035112163502133023021 00000000000000MaxDistance - two 2D identical points :memory: #use in-memory database SELECT ST_MaxDistance(MakePoint(1, 2), MakePoint(1, 2)) 1 # rows (not including the header row) 1 # columns ST_MaxDistance(MakePoint(1, 2), MakePoint(1, 2)) 0.0 libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid19.testcase0000664000175000017500000000037712163502133023501 00000000000000ST_SnapToGrid - five args - NULL sizeX (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), 1, 1, NULL, 0.5); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), 1, 1, NULL, 0.5) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/3dmaxdistance4.testcase0000664000175000017500000000035212163502133023253 000000000000003DMaxDistance - bad blob second arg :memory: #use in-memory database SELECT ST_3DMaxDistance(MakePoint(1, 2), zeroblob(100)) 1 # rows (not including the header row) 1 # columns ST_3DMaxDistance(MakePoint(1, 2), zeroblob(100)) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_split44.testcase0000664000175000017500000000045112163502133022451 00000000000000ST_SplitRight - Line-Point (not split) :memory: #use in-memory database SELECT AsText(ST_SplitRight(GeomFromText('LINESTRING(0 0, 10 0)'), MakePoint(11, 0))); 1 # rows (not including the header row) 1 # columns AsText(ST_SplitRight(GeomFromText('LINESTRING(0 0, 10 0)'), MakePoint(11, 0))) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_area12.testcase0000664000175000017500000000061212163502133022220 00000000000000ST_Area Geodesic - valid Polygon - Sphere :memory: #use in-memory database SELECT ST_Area(GeomFromText("POLYGON((50.4 50.4, 50.4 54, 54 54, 54 50.4, 50.4 50.4),(51 51, 51 53, 53 53, 53 51, 51 51))"), 0); 1 # rows (not including the header row) 1 # columns ST_Area(GeomFromText("POLYGON((50.4 50.4, 50.4 54, 54 54, 54 50.4, 50.4 50.4),(51 51, 51 53, 53 53, 53 51, 51 51))"), 0) 67724290215.61:2 libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_azimuth12.testcase0000664000175000017500000000033112163502133022767 00000000000000ST_Azimuth - NULL PointA (error) :memory: #use in-memory database SELECT ST_Azimuth(NULL, MakePoint(10, 10, 4326)); 1 # rows (not including the header row) 1 # columns ST_Azimuth(NULL, MakePoint(10, 10, 4326)) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_split47.testcase0000664000175000017500000000056112163502133022456 00000000000000ST_SplitRight - MultiLine-Line (not split) :memory: #use in-memory database SELECT ST_SplitRight(GeomFromText('MULTILINESTRING((0 2, 10 2), (0 1, 10 1))'), GeomFromText('LINESTRING(-1 0, -1 3)')); 1 # rows (not including the header row) 1 # columns ST_SplitRight(GeomFromText('MULTILINESTRING((0 2, 10 2), (0 1, 10 1))'), GeomFromText('LINESTRING(-1 0, -1 3)')) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_segmentize23.testcase0000664000175000017500000000146412163502133023472 00000000000000ST_Segmentize - Polygon Z :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(GeomFromText('POLYGONZ((3 3 10, 6 3 11, 6 6 12, 3 6 13, 3 3 10), (4 4 10, 5 4 11, 5 5 12, 5 4 13, 4 4 10))'), 0.5)); 1 # rows (not including the header row) 1 # column ST_AsText(ST_Segmentize(GeomFromText('POLYGONZ((3 3 10, 6 3 11, 6 6 12, 3 6 13, 3 3 10), (4 4 10, 5 4 11, 5 5 12, 5 4 13, 4 4 10))'), 0.5)) POLYGON Z((3 3 10, 3.5 3 10.166667, 4 3 10.333333, 4.5 3 10.5, 5 3 10.666667, 5.5 3 10.833333, 6 3 11, 6 3.5 11.166667, 6 4 11.333333, 6 4.5 11.5, 6 5 11.666667, 6 5.5 11.833333, 6 6 12, 5.5 6 12.166667, 5 6 12.333333, 4.5 6 12.5, 4 6 12.666667, 3.5 6 12.833333, 3 6 13, 3 5.5 12.5, 3 5 12, 3 4.5 11.5, 3 4 11, 3 3.5 10.5, 3 3 10), (4 4 10, 4.5 4 10.5, 5 4 11, 5 4.5 11.5, 5 5 12, 5 4.5 12.5, 5 4 13, 4.5 4 11.5, 4 4 10)) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_segmentize25.testcase0000664000175000017500000000210212163502133023462 00000000000000ST_Segmentize - Polygon ZM :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(GeomFromText('POLYGONZM((3 3 10 11, 6 3 11 12, 6 6 12 13, 3 6 13 14, 3 3 10 11), (4 4 10 11, 5 4 11 12, 5 5 12 13, 5 4 13 14, 4 4 10 11))'), 0.5)); 1 # rows (not including the header row) 1 # column ST_AsText(ST_Segmentize(GeomFromText('POLYGONZM((3 3 10 11, 6 3 11 12, 6 6 12 13, 3 6 13 14, 3 3 10 11), (4 4 10 11, 5 4 11 12, 5 5 12 13, 5 4 13 14, 4 4 10 11))'), 0.5)) POLYGON ZM((3 3 10 11, 3.5 3 10.166667 11.166667, 4 3 10.333333 11.333333, 4.5 3 10.5 11.5, 5 3 10.666667 11.666667, 5.5 3 10.833333 11.833333, 6 3 11 12, 6 3.5 11.166667 12.166667, 6 4 11.333333 12.333333, 6 4.5 11.5 12.5, 6 5 11.666667 12.666667, 6 5.5 11.833333 12.833333, 6 6 12 13, 5.5 6 12.166667 13.166667, 5 6 12.333333 13.333333, 4.5 6 12.5 13.5, 4 6 12.666667 13.666667, 3.5 6 12.833333 13.833333, 3 6 13 14, 3 5.5 12.5 13.5, 3 5 12 13, 3 4.5 11.5 12.5, 3 4 11 12, 3 3.5 10.5 11.5, 3 3 10 11), (4 4 10 11, 4.5 4 10.5 11.5, 5 4 11 12, 5 4.5 11.5 12.5, 5 5 12 13, 5 4.5 12.5 13.5, 5 4 13 14, 4.5 4 11.5 12.5, 4 4 10 11)) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_asx3d16.testcase0000664000175000017500000000044612163502133022343 00000000000000ST_AsX3D - 3D linestring NULL precision :memory: #use in-memory database SELECT ST_AsX3D(GeomFromText('LINESTRINGZ(10 10 101, 11 10 102, 11 11 103)'), NULL); 1 # rows (not including the header row) 1 # columns ST_AsX3D(GeomFromText('LINESTRINGZ(10 10 101, 11 10 102, 11 11 103)'), NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid20.testcase0000664000175000017500000000041512163502133023462 00000000000000ST_SnapToGrid - five args - BLOB sizeX (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), 1, 1, zeroblob(0), 0.5); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), 1, 1, zeroblob(0), 0.5) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid17.testcase0000664000175000017500000000042312163502133023467 00000000000000ST_SnapToGrid - five args - BLOB originY (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), 1, zeroblob(0), 0.5, 0.5); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), 1, zeroblob(0), 0.5, 0.5) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid58.testcase0000664000175000017500000000120712163502133023475 00000000000000ST_SnapToGrid - MultiLinestring Z :memory: #use in-memory database SELECT AsText(ST_SnapToGrid(GeomFromText('MULTILINESTRINGZ((1.2 2.3 10.1, 1.21 2.31 10.11, 1.22 2.32 10.1, 2.1 3.9 10.11), (2.11 3.11 10, 2.12 3.12 10.1), (3.2 4.2 10.1, 4.2 3.2 10.4))'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)); 1 # rows (not including the header row) 1 # columns AsText(ST_SnapToGrid(GeomFromText('MULTILINESTRINGZ((1.2 2.3 10.1, 1.21 2.31 10.11, 1.22 2.32 10.1, 2.1 3.9 10.11), (2.11 3.11 10, 2.12 3.12 10.1), (3.2 4.2 10.1, 4.2 3.2 10.4))'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)) MULTILINESTRING Z((1.25 2.25 10, 2 4 10), (3.25 4.25 10, 4.25 3.25 10.5)) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid56.testcase0000664000175000017500000000172612163502133023501 00000000000000ST_SnapToGrid - Polygon Z :memory: #use in-memory database SELECT AsText(ST_SnapToGrid(GeomFromText('POLYGONZ((0.1 0.1 10.1, 0.2 0.2 10.11, 0.2 5.1 10.12, 4.9 4.9 10.51, 5.1 5.1 10.49, 4.9 0.15 10.1, 0.1 0.1 10.1), (3.1 3.1 10.1, 3.2 3.1 10.11, 3.2 3.2 10.12, 3.2 3.1 10.13, 3.1 3.1 10.1), (1.1 1.1 10.1, 1.1 2.1 10.2, 2.1 2.1 10.3, 2.1 1.1 10.4, 1.1 1.1 10.1))'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)); 1 # rows (not including the header row) 1 # columns AsText(ST_SnapToGrid(GeomFromText('POLYGONZ((0.1 0.1 10.1, 0.2 0.2 10.11, 0.2 5.1 10.12, 4.9 4.9 10.51, 5.1 5.1 10.49, 4.9 0.15 10.1, 0.1 0.1 10.1), (3.1 3.1 10.1, 3.2 3.1 10.11, 3.2 3.2 10.12, 3.2 3.1 10.13, 3.1 3.1 10.1), (1.1 1.1 10.1, 1.1 2.1 10.2, 2.1 2.1 10.3, 2.1 1.1 10.4, 1.1 1.1 10.1))'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)) POLYGON Z((0 0 10, 0.25 0.25 10, 0.25 5 10, 5 5 10.5, 5 0.25 10, 0 0 10), (3 3 10, 3.25 3 10, 3.25 3.25 10, 3.25 3 10.25, 3 3 10), (1 1 10, 1 2 10.25, 2 2 10.25, 2 1 10.5, 1 1 10)) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/3ddistance7.testcase0000664000175000017500000000047012163502133022551 000000000000003DDistance - parallel 2D lines :memory: #use in-memory database SELECT ST_3DDistance(GeomFromText("LINESTRING(0 0, 10 0)"), GeomFromText("LINESTRING(0 2, 10 2)")) 1 # rows (not including the header row) 1 # columns ST_3DDistance(GeomFromText("LINESTRING(0 0, 10 0)"), GeomFromText("LINESTRING(0 2, 10 2)")) 2.0 libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid26.testcase0000664000175000017500000000043412163502133023471 00000000000000ST_SnapToGrid - six args - invalid BLOB grid origin (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), zeroblob(4), 1, 2, 3, 4); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), zeroblob(4), 1, 2, 3, 4) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/maxdistance5.testcase0000664000175000017500000000031312163502133023022 00000000000000MaxDistance - non-blob first arg :memory: #use in-memory database SELECT ST_MaxDistance(3, MakePoint(1, 2)) 1 # rows (not including the header row) 1 # columns ST_MaxDistance(3, MakePoint(1, 2)) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_split7.testcase0000664000175000017500000000033112163502133022365 00000000000000ST_Split - Point-Point (error) :memory: #use in-memory database SELECT ST_Split(MakePoint(0, 0), MakePoint(1, 1)); 1 # rows (not including the header row) 1 # columns ST_Split(MakePoint(0, 0), MakePoint(1, 1)) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid52.testcase0000664000175000017500000000135112163502133023467 00000000000000ST_SnapToGrid - MultiLinestring ZM :memory: #use in-memory database SELECT AsText(ST_SnapToGrid(GeomFromText('MULTILINESTRINGZM((1.2 2.3 10.1 20.1, 1.21 2.31 10.11 20.11, 1.22 2.32 10.1 20.1, 2.1 3.9 10.11 20.11), (2.11 3.11 10 20, 2.12 3.12 10.1 20.1), (3.2 4.2 10.1 20.1, 4.2 3.2 10.4 20.4))'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)); 1 # rows (not including the header row) 1 # columns AsText(ST_SnapToGrid(GeomFromText('MULTILINESTRINGZM((1.2 2.3 10.1 20.1, 1.21 2.31 10.11 20.11, 1.22 2.32 10.1 20.1, 2.1 3.9 10.11 20.11), (2.11 3.11 10 20, 2.12 3.12 10.1 20.1), (3.2 4.2 10.1 20.1, 4.2 3.2 10.4 20.4))'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)) MULTILINESTRING ZM((1.25 2.25 10 20, 2 4 10 20), (3.25 4.25 10 20, 4.25 3.25 10.5 20.5)) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_segmentize17.testcase0000664000175000017500000000041612163502133023471 00000000000000ST_Segmentize - Point ZM :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(GeomFromText('POINTZM(0 0 10 11)'), 0.5)); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Segmentize(GeomFromText('POINTZM(0 0 10 11)'), 0.5)) POINT ZM(0 0 10 11) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_split2.testcase0000664000175000017500000000030712163502133022363 00000000000000ST_Split - NULL BLOB input (error) :memory: #use in-memory database SELECT ST_Split(NULL, MakePoint(5, 0)); 1 # rows (not including the header row) 1 # columns ST_Split(NULL, MakePoint(5, 0)) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_segmentize28.testcase0000664000175000017500000000116512163502133023475 00000000000000ST_Segmentize - Collection - single Polygon :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(GeomFromText('GEOMETRYCOLLECTION(POLYGON((3 3, 6 3, 6 6, 3 6, 3 3), (4 4, 5 4, 5 5, 5 4, 4 4)))'), 0.5)); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Segmentize(GeomFromText('GEOMETRYCOLLECTION(POLYGON((3 3, 6 3, 6 6, 3 6, 3 3), (4 4, 5 4, 5 5, 5 4, 4 4)))'), 0.5)) GEOMETRYCOLLECTION(POLYGON((3 3, 3.5 3, 4 3, 4.5 3, 5 3, 5.5 3, 6 3, 6 3.5, 6 4, 6 4.5, 6 5, 6 5.5, 6 6, 5.5 6, 5 6, 4.5 6, 4 6, 3.5 6, 3 6, 3 5.5, 3 5, 3 4.5, 3 4, 3 3.5, 3 3), (4 4, 4.5 4, 5 4, 5 4.5, 5 5, 5 4.5, 5 4, 4.5 4, 4 4))) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid14.testcase0000664000175000017500000000042312163502133023464 00000000000000ST_SnapToGrid - five args - BLOB originX (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), zeroblob(0), 1, 0.5, 0.5); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), zeroblob(0), 1, 0.5, 0.5) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid51.testcase0000664000175000017500000000101512163502133023463 00000000000000ST_SnapToGrid - MultiPoint ZM :memory: #use in-memory database SELECT AsText(ST_SnapToGrid(GeomFromText('MULTIPOINTZM(1.2 2.3 10.1 20.1, 1.21 2.31 10.11 20.11, 2.2 3.3 21.1 31.1, 2.21 3.33 21.12 31.12)'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)); 1 # rows (not including the header row) 1 # columns AsText(ST_SnapToGrid(GeomFromText('MULTIPOINTZM(1.2 2.3 10.1 20.1, 1.21 2.31 10.11 20.11, 2.2 3.3 21.1 31.1, 2.21 3.33 21.12 31.12)'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)) MULTIPOINT ZM(1.25 2.25 10 20, 2.25 3.25 21 31) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_split31.testcase0000664000175000017500000000131312163502133022443 00000000000000ST_SplitLeft - Collection-Line (split) :memory: #use in-memory database SELECT AsText(ST_SplitLeft(GeomFromText('GEOMETRYCOLLECTIONM(LINESTRINGM(0 11 10, 10 11 10), POLYGONM((0 1 10, 10 1 11, 10 10 12, 0 10 13, 0 1 10), (5 5 10, 9 5 11, 9 9 12, 5 9 13, 5 5 10)))'), GeomFromText('LINESTRING(7 0, 7 20)'))); 1 # rows (not including the header row) 1 # columns AsText(ST_SplitLeft(GeomFromText('GEOMETRYCOLLECTIONM(LINESTRINGM(0 11 10, 10 11 10), POLYGONM((0 1 10, 10 1 11, 10 10 12, 0 10 13, 0 1 10), (5 5 10, 9 5 11, 9 9 12, 5 9 13, 5 5 10)))'), GeomFromText('LINESTRING(7 0, 7 20)'))) GEOMETRYCOLLECTION M(LINESTRING M(0 11 0, 7 11 0), POLYGON M((7 1 0, 0 1 0, 0 10 0, 7 10 0, 7 9 0, 5 9 0, 5 5 0, 7 5 0, 7 1 0))) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_split27.testcase0000664000175000017500000000055312163502133022455 00000000000000ST_SplitLeft - Line-Line (split) :memory: #use in-memory database SELECT AsText(ST_SplitLeft(GeomFromText('LINESTRINGM(0 1 10, 10 1 10)'), GeomFromText('LINESTRING(7 0, 7 3)'))); 1 # rows (not including the header row) 1 # columns AsText(ST_SplitLeft(GeomFromText('LINESTRINGM(0 1 10, 10 1 10)'), GeomFromText('LINESTRING(7 0, 7 3)'))) LINESTRING M(0 1 0, 7 1 0) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_area15.testcase0000664000175000017500000000061712163502133022230 00000000000000ST_Area Geodesic - planar Polygon - Sphere :memory: #use in-memory database SELECT ST_Area(GeomFromText("POLYGON((50.4 50.4, 50.4 54, 54 54, 54 50.4, 50.4 50.4),(51 51, 51 53, 53 53, 53 51, 51 51))", 32632), 0); 1 # rows (not including the header row) 1 # columns ST_Area(GeomFromText("POLYGON((50.4 50.4, 50.4 54, 54 54, 54 50.4, 50.4 50.4),(51 51, 51 53, 53 53, 53 51, 51 51))", 32632), 0) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_split42.testcase0000664000175000017500000000125012163502133022445 00000000000000ST_SplitRight - Polygon-Line (split) :memory: #use in-memory database SELECT AsText(ST_SplitRight(GeomFromText('POLYGONZM((0 1 10 100, 10 1 11 101, 10 10 12 102, 0 10 13 103, 0 1 10 100), (5 5 10 100, 9 5 11 101, 9 9 12 102, 5 9 13 103, 5 5 10 100))'), GeomFromText('LINESTRING(7 0, 7 20)'))); 1 # rows (not including the header row) 1 # columns AsText(ST_SplitRight(GeomFromText('POLYGONZM((0 1 10 100, 10 1 11 101, 10 10 12 102, 0 10 13 103, 0 1 10 100), (5 5 10 100, 9 5 11 101, 9 9 12 102, 5 9 13 103, 5 5 10 100))'), GeomFromText('LINESTRING(7 0, 7 20)'))) POLYGON ZM((7 10 12.3 0, 10 10 12 0, 10 1 11 0, 7 1 10.7 0, 7 5 10.5 0, 9 5 11 0, 9 9 12 0, 7 9 12.5 0, 7 10 12.3 0)) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_makevalid5.testcase0000664000175000017500000000043612163502133023173 00000000000000ST_MakeValid - already valid Polygon :memory: #use in-memory database SELECT ST_IsValid(ST_MakeValid(GeomFromText('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))'))); 1 # rows (not including the header row) 1 # columns ST_IsValid(ST_MakeValid(GeomFromText('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))'))) 1 libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid32.testcase0000664000175000017500000000044212163502133023465 00000000000000ST_SnapToGrid - six args - text sizeX (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), MakePoint(1, 1), 'alpha', 2, 3, 4); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), MakePoint(1, 1), 'alpha', 2, 3, 4) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid16.testcase0000664000175000017500000000040512163502133023466 00000000000000ST_SnapToGrid - five args - NULL originY (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), 1, NULL, 0.5, 0.5); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), 1, NULL, 0.5, 0.5) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid1.testcase0000664000175000017500000000030312163502133023375 00000000000000ST_SnapToGrid - two args - NULL BLOB (error) :memory: #use in-memory database SELECT ST_SnapToGrid(NULL, 0.5); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(NULL, 0.5) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_segmentize2.testcase0000664000175000017500000000044512163502133023405 00000000000000ST_Segmentize - MultiPoint :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(GeomFromText('MULTIPOINT(0 1, 2 3, 4 5)'), 0.5)); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Segmentize(GeomFromText('MULTIPOINT(0 1, 2 3, 4 5)'), 0.5)) MULTIPOINT(0 1, 2 3, 4 5) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_makevalid7.testcase0000664000175000017500000000043012163502133023167 00000000000000ST_MakeValid - invalid Polygon :memory: #use in-memory database SELECT ST_IsValid(ST_MakeValid(GeomFromText('POLYGON((0 0, 1 0, 0 1, 1 1, 0 0))'))); 1 # rows (not including the header row) 1 # columns ST_IsValid(ST_MakeValid(GeomFromText('POLYGON((0 0, 1 0, 0 1, 1 1, 0 0))'))) 1 libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_asx3d15.testcase0000664000175000017500000000105012163502133022332 00000000000000ST_AsX3D - 3D multipolygon :memory: #use in-memory database SELECT ST_AsX3D(GeomFromText('MULTIPOLYGONZ(((10 10 1, 11 10 2, 11 11 3, 10 11 4, 10 10 1)), ((20 20 5, 21 20 6, 21 21 7, 20 21 8, 20 20 5)))')); 1 # rows (not including the header row) 1 # columns ST_AsX3D(GeomFromText('MULTIPOLYGONZ(((10 10 1, 11 10 2, 11 11 3, 10 11 4, 10 10 1)), ((20 20 5, 21 20 6, 21 21 7, 20 21 8, 20 20 5)))')) :0 libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_geohash10.testcase0000664000175000017500000000033212163502133022723 00000000000000ST_GeoHash - WGS84 Point, precision 6 :memory: #use in-memory database SELECT ST_GeoHash(MakePoint(10, -20, 4326), 6); 1 # rows (not including the header row) 1 # columns ST_GeoHash(MakePoint(10, -20, 4326), 6) khrn5x libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid22.testcase0000664000175000017500000000037712163502133023473 00000000000000ST_SnapToGrid - five args - NULL sizeY (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), 1, 1, 0.5, NULL); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), 1, 1, 0.5, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid38.testcase0000664000175000017500000000044212163502133023473 00000000000000ST_SnapToGrid - six args - text sizeY (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), MakePoint(1, 1), 1, 'alpha', 3, 4); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), MakePoint(1, 1), 1, 'alpha', 3, 4) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid11.testcase0000664000175000017500000000040212163502133023456 00000000000000ST_SnapToGrid - three args - BLOB sizeY (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), 0.5, zeroblob(4)); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), 0.5, zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_snaptogrid15.testcase0000664000175000017500000000041312163502133023464 00000000000000ST_SnapToGrid - five args - text originX (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), 'alpha', 1, 0.5, 0.5); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), 'alpha', 1, 0.5, 0.5) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_split10.testcase0000664000175000017500000000045112163502133022442 00000000000000ST_Split - Polygon-Point (error) :memory: #use in-memory database SELECT ST_Split(GeomFromText('POLYGON((0 1, 10 1, 10 10, 0 10, 0 1))'), MakePoint(4, 1)); 1 # rows (not including the header row) 1 # columns ST_Split(GeomFromText('POLYGON((0 1, 10 1, 10 10, 0 10, 0 1))'), MakePoint(4, 1)) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/3ddistance2.testcase0000664000175000017500000000034612163502133022546 000000000000003DDistance - two 2D identical points :memory: #use in-memory database SELECT ST_3DDistance(MakePoint(1, 2), MakePoint(1, 2)) 1 # rows (not including the header row) 1 # columns ST_3DDistance(MakePoint(1, 2), MakePoint(1, 2)) 0.0 libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_split36.testcase0000664000175000017500000000100312163502133022444 00000000000000ST_SplitLeft - Polygon-Line (not split) :memory: #use in-memory database SELECT AsText(ST_ForceLHR(ST_SplitLeft(GeomFromText('POLYGON((0 1, 10 1, 10 10, 0 10, 0 1), (5 5, 9 5, 9 9, 5 9, 5 5))'), GeomFromText('LINESTRING(12 0, 12 20)')))); 1 # rows (not including the header row) 1 # columns AsText(ST_ForceLHR(ST_SplitLeft(GeomFromText('POLYGON((0 1, 10 1, 10 10, 0 10, 0 1), (5 5, 9 5, 9 9, 5 9, 5 5))'), GeomFromText('LINESTRING(12 0, 12 20)')))) POLYGON((0 1, 0 10, 10 10, 10 1, 0 1), (5 5, 9 5, 9 9, 5 9, 5 5)) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/3dmaxdistance8.testcase0000664000175000017500000000051312163502133023256 000000000000003DMaxDistance - intersecting 2D lines :memory: #use in-memory database SELECT ST_3DMaxDistance(GeomFromText("LINESTRING(0 0, 10 0)"), GeomFromText("LINESTRING(0 0, 0 5)")) 1 # rows (not including the header row) 1 # columns ST_3DMaxDistance(GeomFromText("LINESTRING(0 0, 10 0)"), GeomFromText("LINESTRING(0 0, 0 5)")) 11.180339:6 libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_project5.testcase0000664000175000017500000000034412163502133022702 00000000000000ST_Project - invalid BLOB start Point :memory: #use in-memory database SELECT ST_Project(zeroblob(4), 100000, Radians(45)); 1 # rows (not including the header row) 1 # columns ST_Project(zeroblob(4), 100000, Radians(45)) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_split15.testcase0000664000175000017500000000056012163502133022450 00000000000000ST_Split - MultiLine-Point (split) :memory: #use in-memory database SELECT AsText(ST_Split(GeomFromText('MULTILINESTRING((0 2, 10 2), (0 0, 10 0))'), MakePoint(7, 0))); 1 # rows (not including the header row) 1 # columns AsText(ST_Split(GeomFromText('MULTILINESTRING((0 2, 10 2), (0 0, 10 0))'), MakePoint(7, 0))) MULTILINESTRING((0 2, 10 2), (0 0, 7 0), (7 0, 10 0)) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_azimuth6.testcase0000664000175000017500000000032612163502133022716 00000000000000ST_Azimuth - integer PointA (error) :memory: #use in-memory database SELECT ST_Azimuth(1, MakePoint(10, 10, 4326)); 1 # rows (not including the header row) 1 # columns ST_Azimuth(1, MakePoint(10, 10, 4326)) (NULL) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_asx3d7.testcase0000664000175000017500000000053712163502133022264 00000000000000ST_AsX3D - 3D linestring :memory: #use in-memory database SELECT ST_AsX3D(GeomFromText('LINESTRINGZ(10 10 101, 11 10 102, 11 11 103)')); 1 # rows (not including the header row) 1 # columns ST_AsX3D(GeomFromText('LINESTRINGZ(10 10 101, 11 10 102, 11 11 103)')) :0 libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_split30.testcase0000664000175000017500000000112712163502133022445 00000000000000ST_SplitLeft - Polygon-Line (split) :memory: #use in-memory database SELECT AsText(ST_ForceLHR(ST_SplitLeft(GeomFromText('POLYGONZ((0 1 10, 10 1 11, 10 10 12, 0 10 13, 0 1 10), (5 5 10, 9 5 11, 9 9 12, 5 9 13, 5 5 10))'), GeomFromText('LINESTRING(7 0, 7 20)')))); 1 # rows (not including the header row) 1 # columns AsText(ST_ForceLHR(ST_SplitLeft(GeomFromText('POLYGONZ((0 1 10, 10 1 11, 10 10 12, 0 10 13, 0 1 10), (5 5 10, 9 5 11, 9 9 12, 5 9 13, 5 5 10))'), GeomFromText('LINESTRING(7 0, 7 20)')))) POLYGON Z((7 1 10.7, 0 1 10, 0 10 13, 7 10 12.3, 7 9 12.5, 5 9 13, 5 5 10, 7 5 10.5, 7 1 10.7)) libspatialite-4.1.1/test/sql_stmt_lwgeom_tests/st_makevaliddiscarded6.testcase0000664000175000017500000000054512163502133025040 00000000000000ST_MakeValid - invalid MultiPolygon :memory: #use in-memory database SELECT ST_IsValid(ST_MakeValid(GeomFromText('MULTIPOLYGON(((0 0, 1 0, 0 1, 1 1, 0 0)), ((2 2, 3 2, 3 3, 2 3, 2 2)))'))); 1 # rows (not including the header row) 1 # columns ST_IsValid(ST_MakeValid(GeomFromText('MULTIPOLYGON(((0 0, 1 0, 0 1, 1 1, 0 0)), ((2 2, 3 2, 3 3, 2 3, 2 2)))'))) 1 libspatialite-4.1.1/test/l02.dxf0000664000175000017500000000471512163502133013350 00000000000000 0 SECTION 2 HEADER 9 $EXTMIN 10 663372.601 20 5165208.705 30 0.000 9 $EXTMAX 10 669268.593 20 5173521.041 30 777.470 9 $LUPREC 70 7 0 ENDSEC 0 SECTION 2 TABLES 0 TABLE 2 LAYER 70 1 0 LAYER 2 SHP_LINE 70 64 62 7 6 CONTINUOUS 0 ENDTAB 0 ENDSEC 0 SECTION 2 BLOCKS 0 BLOCK 8 SHP_LINE 2 BLK000001 70 64 10 667046.728 20 5171567.671 30 411.940 0 POLYLINE 8 SHP_LINE 66 1 70 8 0 VERTEX 8 SHP_LINE 10 667046.728 20 5171567.671 30 411.940 70 32 0 VERTEX 8 SHP_LINE 10 667044.618 20 5171569.311 30 411.670 70 32 0 VERTEX 8 SHP_LINE 10 667041.838 20 5171570.771 30 411.600 70 32 0 VERTEX 8 SHP_LINE 10 667037.168 20 5171573.241 30 411.440 70 32 0 VERTEX 8 SHP_LINE 10 667032.778 20 5171575.271 30 411.250 70 32 0 VERTEX 8 SHP_LINE 10 667029.308 20 5171577.161 30 411.110 70 32 0 VERTEX 8 SHP_LINE 10 667025.488 20 5171578.981 30 410.850 70 32 0 VERTEX 8 SHP_LINE 10 667022.308 20 5171580.511 30 410.600 70 32 0 VERTEX 8 SHP_LINE 10 667020.328 20 5171581.331 30 410.490 70 32 0 VERTEX 8 SHP_LINE 10 667019.158 20 5171582.021 30 410.260 70 32 0 VERTEX 8 SHP_LINE 10 667018.358 20 5171583.571 30 410.010 70 32 0 SEQEND 8 SHP_LINE 0 ENDBLK 0 BLOCK 8 SHP_LINE 2 BLK000002 70 64 10 666115.033 20 5171352.082 30 390.620 0 POLYLINE 8 SHP_LINE 66 1 70 8 0 VERTEX 8 SHP_LINE 10 666115.033 20 5171352.082 30 390.620 70 32 0 VERTEX 8 SHP_LINE 10 666119.793 20 5171352.632 30 388.860 70 32 0 VERTEX 8 SHP_LINE 10 666122.983 20 5171353.152 30 386.620 70 32 0 VERTEX 8 SHP_LINE 10 666124.133 20 5171353.332 30 386.100 70 32 0 SEQEND 8 SHP_LINE 0 ENDBLK 0 ENDSEC 0 SECTION 2 ENTITIES 0 INSERT 8 SHP_LINE 2 BLK000001 10 667046.728 20 5171567.671 30 411.940 0 INSERT 8 SHP_LINE 2 BLK000002 10 666115.033 20 5171352.082 30 390.620 0 ENDSEC 0 EOF libspatialite-4.1.1/test/fnmatch4win.h0000664000175000017500000000403012163502133014631 00000000000000/* Copyright (C) 1992 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. */ /* * Modified for WinCvs/MacCVS : Alexandre Parenteau --- June 1998 */ #ifndef _FNMATCH_H #define _FNMATCH_H 1 #ifdef __cplusplus extern "C" { #endif #define FNM_NOMATCH 1 /* Match failed. */ #define FNM_NOESCAPE 0x01 /* Disable backslash escaping. */ #define FNM_PATHNAME 0x02 /* Slash must be matched by slash. */ #define FNM_PERIOD 0x04 /* Period must be matched by period. */ #define FNM_LEADING_DIR 0x08 /* Ignore / after Imatch. */ #define FNM_CASEFOLD 0x10 /* Case insensitive search. */ #define FNM_PREFIX_DIRS 0x20 /* Directory prefixes of pattern match too. */ /* Value returned by `fnmatch' if STRING does not match PATTERN. */ #undef FNM_NOMATCH #define FNM_NOMATCH 1 #if !defined(__STDC__) && (defined(WIN32)|| defined(TARGET_OS_MAC)) # define __STDC__ 1 #endif /* Match STRING against the filename pattern PATTERN, returning zero if it matches, FNM_NOMATCH if not. */ #if __STDC__ extern int fnmatch (const char *pattern, const char *string, int flags); #else extern int fnmatch (); #endif #if defined (__CYGWIN32__) || defined (WIN32) /* Under Windows NT, filenames are case-insensitive, and both / and \ are path component separators. */ # define FOLD_FN_CHAR(c) (WNT_filename_classes[(unsigned char) (c)]) extern unsigned char WNT_filename_classes[]; #endif /* defined (__CYGWIN32__) || defined (WIN32) */ #ifdef __cplusplus } #endif #endif /* fnmatch.h */ libspatialite-4.1.1/test/check_point_to_tile_wrong_arg_type.c0000664000175000017500000001247312163502133021527 00000000000000/* check_point_to_tile_wrong_arg_type.c - Test case for GeoPackage Extensions Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Brad Hards Portions created by the Initial Developer are Copyright (C) 2012 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #include "test_helpers.h" int main (int argc UNUSED, char *argv[] UNUSED) { sqlite3 *db_handle = NULL; int ret; void *cache = spatialite_alloc_connection(); char *err_msg = NULL; ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); // For debugging / testing if required // ret = sqlite3_open_v2 ("check_point_to_tile_wrong_arg_type.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); spatialite_init_ex(db_handle, cache, 0); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } /* try gpkgPointToTile with the wrong argument types */ ret = sqlite3_exec (db_handle, "SELECT gpkgPointToTile(1, 2, 3, 4, 5)", NULL, NULL, &err_msg); if (ret != SQLITE_ERROR) { fprintf(stderr, "Expected error for bad arg 1, got %i\n", ret); sqlite3_free (err_msg); return -4; } if (strcmp(err_msg, "gpkgPointToTile() error: argument 1 [table] is not of the String type") != 0) { fprintf (stderr, "Unexpected error message for bad arg 1: %s\n", err_msg); sqlite3_free(err_msg); return -5; } sqlite3_free(err_msg); ret = sqlite3_exec (db_handle, "SELECT gpkgPointToTile('test1_tiles', 2.3, 3, 4, 5)", NULL, NULL, &err_msg); if (ret != SQLITE_ERROR) { fprintf(stderr, "Expected error for bad arg 2, got %i\n", ret); sqlite3_free (err_msg); return -6; } if (strcmp(err_msg, "gpkgPointToTile() error: argument 2 [srid] is not of the integer type") != 0) { fprintf (stderr, "Unexpected error message for bad arg 2: %s\n", err_msg); sqlite3_free(err_msg); return -7; } sqlite3_free(err_msg); ret = sqlite3_exec (db_handle, "SELECT gpkgPointToTile('test1_tiles', 4326, 'hello', 4, 5)", NULL, NULL, &err_msg); if (ret != SQLITE_ERROR) { fprintf(stderr, "Expected error for bad arg 3, got %i\n", ret); sqlite3_free (err_msg); return -8; } if (strcmp(err_msg, "gpkgPointToTile() error: argument 3 [x coordinate] is not of a numerical type") != 0) { fprintf (stderr, "Unexpected error message for bad arg 3: %s\n", err_msg); sqlite3_free(err_msg); return -9; } sqlite3_free(err_msg); ret = sqlite3_exec (db_handle, "SELECT gpkgPointToTile('test1_tiles', 4326, 3.2, 'bye', 5)", NULL, NULL, &err_msg); if (ret != SQLITE_ERROR) { fprintf(stderr, "Expected error for bad arg 4, got %i\n", ret); sqlite3_free (err_msg); return -10; } if (strcmp(err_msg, "gpkgPointToTile() error: argument 4 [y coordinate] is not of a numerical type") != 0) { fprintf (stderr, "Unexpected error message for bad arg 4: %s\n", err_msg); sqlite3_free(err_msg); return -11; } sqlite3_free(err_msg); ret = sqlite3_exec (db_handle, "SELECT gpkgPointToTile('test1_tiles', 4326, 3.2, 5.2, 1.9)", NULL, NULL, &err_msg); if (ret != SQLITE_ERROR) { fprintf(stderr, "Expected error for bad arg 5, got %i\n", ret); sqlite3_free (err_msg); return -12; } if (strcmp(err_msg, "gpkgPointToTile() error: argument 5 [zoom level] is not of the integer type") != 0) { fprintf (stderr, "Unexpected error message for bad arg 5: %s\n", err_msg); sqlite3_free(err_msg); return -13; } sqlite3_free(err_msg); ret = sqlite3_close (db_handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle)); return -100; } spatialite_cleanup_ex(cache); return 0; } libspatialite-4.1.1/test/hatch.dxf0000664000175000017500000005435412163502133014046 00000000000000 0 SECTION 2 HEADER 9 $ACADVER 1 AC1018 9 $ACADMAINTVER 70 0 9 $DWGCODEPAGE 3 ANSI_1252 9 $INSBASE 10 0.0 20 0.0 30 0.0 9 $EXTMIN 10 0 20 0 30 0.0 9 $EXTMAX 10 0 20 0 30 0.0 9 $LIMMIN 10 0.0 20 0.0 9 $LIMMAX 10 12.0 20 9.0 9 $ORTHOMODE 70 0 9 $REGENMODE 70 1 9 $FILLMODE 70 1 9 $QTEXTMODE 70 0 9 $MIRRTEXT 70 0 9 $LTSCALE 40 1.0 9 $ATTMODE 70 1 9 $TEXTSIZE 40 0.2 9 $TRACEWID 40 0.05 9 $TEXTSTYLE 7 Standard 9 $CLAYER 8 LineeTipo6 9 $CELTYPE 6 ByLayer 9 $CECOLOR 62 256 9 $CELTSCALE 40 1.0 9 $DISPSILH 70 0 9 $DIMSCALE 40 1.0 9 $DIMASZ 40 0.18 9 $DIMEXO 40 0.0625 9 $DIMDLI 40 0.38 9 $DIMRND 40 0.0 9 $DIMDLE 40 0.0 9 $DIMEXE 40 0.18 9 $DIMTP 40 0.0 9 $DIMTM 40 0.0 9 $DIMTXT 40 0.18 9 $DIMCEN 40 0.09 9 $DIMTSZ 40 0.0 9 $DIMTOL 70 0 9 $DIMLIM 70 0 9 $DIMTIH 70 1 9 $DIMTOH 70 1 9 $DIMSE1 70 0 9 $DIMSE2 70 0 9 $DIMTAD 70 0 9 $DIMZIN 70 0 9 $DIMBLK 1 9 $DIMASO 70 1 9 $DIMSHO 70 1 9 $DIMPOST 1 9 $DIMAPOST 1 9 $DIMALT 70 0 9 $DIMALTD 70 2 9 $DIMALTF 40 25.4 9 $DIMLFAC 40 1.0 9 $DIMTOFL 70 0 9 $DIMTVP 40 0.0 9 $DIMTIX 70 0 9 $DIMSOXD 70 0 9 $DIMSAH 70 1 9 $DIMBLK1 1 9 $DIMBLK2 1 Open30 9 $DIMSTYLE 2 Standard 9 $DIMCLRD 70 0 9 $DIMCLRE 70 0 9 $DIMCLRT 70 0 9 $DIMTFAC 40 1.0 9 $DIMGAP 40 0.09 9 $DIMJUST 70 0 9 $DIMSD1 70 0 9 $DIMSD2 70 0 9 $DIMTOLJ 70 1 9 $DIMTZIN 70 0 9 $DIMALTZ 70 0 9 $DIMALTTZ 70 0 9 $DIMUPT 70 0 9 $DIMDEC 70 4 9 $DIMTDEC 70 4 9 $DIMALTU 70 2 9 $DIMALTTD 70 2 9 $DIMTXSTY 7 Standard 9 $DIMAUNIT 70 0 9 $DIMADEC 70 0 9 $DIMALTRND 40 0.0 9 $DIMAZIN 70 0 9 $DIMDSEP 70 46 9 $DIMATFIT 70 3 9 $DIMFRAC 70 0 9 $DIMLDRBLK 1 9 $DIMLUNIT 70 2 9 $DIMLWD 70 -2 9 $DIMLWE 70 -2 9 $DIMTMOVE 70 0 9 $LUNITS 70 2 9 $LUPREC 70 4 9 $SKETCHINC 40 0.1 9 $FILLETRAD 40 0.0 9 $AUNITS 70 0 9 $AUPREC 70 0 9 $MENU 1 . 9 $ELEVATION 40 0.0 9 $PELEVATION 40 0.0 9 $THICKNESS 40 0.0 9 $LIMCHECK 70 0 9 $CHAMFERA 40 0.0 9 $CHAMFERB 40 0.0 9 $CHAMFERC 40 0.0 9 $CHAMFERD 40 0.0 9 $SKPOLY 70 0 9 $TDCREATE 40 2454180.428272026 9 $TDUCREATE 40 2454180.344938692 9 $TDUPDATE 40 2454238.487553021 9 $TDUUPDATE 40 2454238.404219688 9 $TDINDWG 40 1.0601266782 9 $TDUSRTIMER 40 1.0601209838 9 $USRTIMER 70 1 9 $ANGBASE 50 0.0 9 $ANGDIR 70 0 9 $PDMODE 70 0 9 $PDSIZE 40 0.0 9 $PLINEWID 40 0.0 9 $SPLFRAME 70 0 9 $SPLINETYPE 70 6 9 $SPLINESEGS 70 8 9 $HANDSEED 5 2AAE 9 $SURFTAB1 70 6 9 $SURFTAB2 70 6 9 $SURFTYPE 70 6 9 $SURFU 70 6 9 $SURFV 70 6 9 $UCSBASE 2 9 $UCSNAME 2 9 $UCSORG 10 0.0 20 0.0 30 0.0 9 $UCSXDIR 10 1.0 20 0.0 30 0.0 9 $UCSYDIR 10 0.0 20 1.0 30 0.0 9 $UCSORTHOREF 2 9 $UCSORTHOVIEW 70 0 9 $UCSORGTOP 10 0.0 20 0.0 30 0.0 9 $UCSORGBOTTOM 10 0.0 20 0.0 30 0.0 9 $UCSORGLEFT 10 0.0 20 0.0 30 0.0 9 $UCSORGRIGHT 10 0.0 20 0.0 30 0.0 9 $UCSORGFRONT 10 0.0 20 0.0 30 0.0 9 $UCSORGBACK 10 0.0 20 0.0 30 0.0 9 $PUCSBASE 2 9 $PUCSNAME 2 9 $PUCSORG 10 0.0 20 0.0 30 0.0 9 $PUCSXDIR 10 1.0 20 0.0 30 0.0 9 $PUCSYDIR 10 0.0 20 1.0 30 0.0 9 $PUCSORTHOREF 2 9 $PUCSORTHOVIEW 70 0 9 $PUCSORGTOP 10 0.0 20 0.0 30 0.0 9 $PUCSORGBOTTOM 10 0.0 20 0.0 30 0.0 9 $PUCSORGLEFT 10 0.0 20 0.0 30 0.0 9 $PUCSORGRIGHT 10 0.0 20 0.0 30 0.0 9 $PUCSORGFRONT 10 0.0 20 0.0 30 0.0 9 $PUCSORGBACK 10 0.0 20 0.0 30 0.0 9 $USERI1 70 0 9 $USERI2 70 0 9 $USERI3 70 0 9 $USERI4 70 0 9 $USERI5 70 0 9 $USERR1 40 0.0 9 $USERR2 40 0.0 9 $USERR3 40 0.0 9 $USERR4 40 0.0 9 $USERR5 40 0.0 9 $WORLDVIEW 70 1 9 $SHADEDGE 70 3 9 $SHADEDIF 70 70 9 $TILEMODE 70 1 9 $MAXACTVP 70 64 9 $PINSBASE 10 0.0 20 0.0 30 0.0 9 $PLIMCHECK 70 0 9 $PEXTMIN 10 1.000000000000000E+20 20 1.000000000000000E+20 30 1.000000000000000E+20 9 $PEXTMAX 10 -1.000000000000000E+20 20 -1.000000000000000E+20 30 -1.000000000000000E+20 9 $PLIMMIN 10 0.0 20 0.0 9 $PLIMMAX 10 12.0 20 9.0 9 $UNITMODE 70 0 9 $VISRETAIN 70 1 9 $PLINEGEN 70 1 9 $PSLTSCALE 70 1 9 $TREEDEPTH 70 3020 9 $CMLSTYLE 2 9 $CMLJUST 70 0 9 $CMLSCALE 40 1.0 9 $PROXYGRAPHICS 70 1 9 $MEASUREMENT 70 0 9 $CELWEIGHT 370 -1 9 $ENDCAPS 280 0 9 $JOINSTYLE 280 0 9 $LWDISPLAY 290 0 9 $INSUNITS 70 0 9 $HYPERLINKBASE 1 9 $STYLESHEET 1 9 $XEDIT 290 1 9 $CEPSNTYPE 380 0 9 $PSTYLEMODE 290 0 9 $FINGERPRINTGUID 2 {9F0361C4-6C7A-4C04-A603-B640F2F7BE05} 9 $VERSIONGUID 2 {AF92E7B2-CA18-4870-BB90-BAE43C40A327} 9 $EXTNAMES 290 1 9 $PSVPSCALE 40 0.0 9 $OLESTARTUP 290 0 9 $SORTENTS 280 127 9 $INDEXCTL 280 0 9 $HIDETEXT 280 0 9 $XCLIPFRAME 290 0 9 $HALOGAP 280 0 9 $OBSCOLOR 70 257 9 $OBSLTYPE 280 0 9 $INTERSECTIONDISPLAY 280 0 9 $INTERSECTIONCOLOR 70 257 9 $DIMASSOC 280 1 9 $PROJECTNAME 1 0 ENDSEC 0 SECTION 2 CLASSES 0 CLASS 1 ACDBDICTIONARYWDFLT 2 AcDbDictionaryWithDefault 3 ObjectDBX Classes 90 0 91 1 280 0 281 0 0 CLASS 1 IMAGE 2 AcDbRasterImage 3 ISM 90 127 91 0 280 0 281 1 0 CLASS 1 IMAGEDEF_REACTOR 2 AcDbRasterImageDefReactor 3 ISM 90 1 91 0 280 0 281 0 0 CLASS 1 SORTENTSTABLE 2 AcDbSortentsTable 3 ObjectDBX Classes 90 0 91 1 280 0 281 0 0 CLASS 1 IMAGEDEF 2 AcDbRasterImageDef 3 ISM 90 0 91 0 280 0 281 0 0 CLASS 1 RASTERVARIABLES 2 AcDbRasterVariables 3 ISM 90 0 91 1 280 0 281 0 0 ENDSEC 0 SECTION 2 TABLES 0 TABLE 2 VPORT 5 8 330 0 100 AcDbSymbolTable 70 9 0 VPORT 5 2AAD 330 8 100 AcDbSymbolTableRecord 100 AcDbViewportTableRecord 2 *Active 70 0 10 0.0 20 0.0 11 1.0 21 1.0 12 -84832.16874256809 22 45156.74916340834 13 0.0 23 0.0 14 1.0 24 1.0 15 0.0 25 0.0 16 0.0 26 0.0 36 1.0 17 0.0 27 0.0 37 0.0 40 35.99018809093105 41 1.786666666666666 42 50.0 43 0.0 44 0.0 50 0.0 51 0.0 71 0 72 1000 73 1 74 3 75 0 76 0 77 0 78 0 281 0 65 1 110 0.0 120 0.0 130 0.0 111 1.0 121 0.0 131 0.0 112 0.0 122 1.0 132 0.0 79 0 146 0.0 0 ENDTAB 0 TABLE 2 LTYPE 5 5 330 0 100 AcDbSymbolTable 70 15 0 LTYPE 5 13 330 5 100 AcDbSymbolTableRecord 100 AcDbLinetypeTableRecord 2 ByBlock 70 0 3 72 65 73 0 40 0.0 0 LTYPE 5 14 330 5 100 AcDbSymbolTableRecord 100 AcDbLinetypeTableRecord 2 ByLayer 70 0 3 72 65 73 0 40 0.0 0 LTYPE 5 15 330 5 100 AcDbSymbolTableRecord 100 AcDbLinetypeTableRecord 2 Continuous 70 0 3 Solid line 72 65 73 0 40 0.0 0 LTYPE 5 2A9D 330 5 100 AcDbSymbolTableRecord 100 AcDbLinetypeTableRecord 2 LineeTipo29 70 0 3 _ _ _ _ 72 65 73 2 40 5.299999999999999 49 3.799999999999999 74 0 49 -1.5 74 0 0 LTYPE 5 2A9E 330 5 100 AcDbSymbolTableRecord 100 AcDbLinetypeTableRecord 2 LineeTipo30 70 0 3 croci 72 65 73 3 40 2.9 49 0.95 74 2 75 0 340 11 46 1.9 50 0.0 44 0.0 45 -0.95 9 | 49 0.95 74 0 49 -1.0 74 0 0 LTYPE 5 2A9F 330 5 100 AcDbSymbolTableRecord 100 AcDbLinetypeTableRecord 2 LineeTipo5 70 0 3 - - - - 72 65 73 2 40 3.599999999999999 49 1.9 74 0 49 -1.7 74 0 0 LTYPE 5 2AA0 330 5 100 AcDbSymbolTableRecord 100 AcDbLinetypeTableRecord 2 LineeTipo6 70 0 3 . . . 72 65 73 2 40 1.7 49 0.0 74 0 49 -1.7 74 0 0 LTYPE 5 2AA6 330 5 100 AcDbSymbolTableRecord 100 AcDbLinetypeTableRecord 2 LineeTipo31 70 0 3 croce punto 72 65 73 5 40 3.5 49 0.95 74 2 75 0 340 11 46 1.9 50 0.0 44 0.0 45 -0.95 9 | 49 0.95 74 0 49 -0.8 74 0 49 0.0 74 0 49 -0.8 74 0 0 LTYPE 5 2AA7 330 5 100 AcDbSymbolTableRecord 100 AcDbLinetypeTableRecord 2 LineeTipo32 70 0 3 croce punto punto 72 65 73 7 40 4.3 49 0.95 74 2 75 0 340 11 46 1.9 50 0.0 44 0.0 45 -0.95 9 | 49 0.95 74 0 49 -0.8 74 0 49 0.0 74 0 49 -0.8 74 0 49 0.0 74 0 49 -0.8 74 0 0 LTYPE 5 2AA8 330 5 100 AcDbSymbolTableRecord 100 AcDbLinetypeTableRecord 2 LineeTipo33 70 0 3 tratto punto punto 72 65 73 6 40 4.2 49 1.5 74 0 49 -0.75 74 0 49 0.0 74 0 49 -1.199999999999999 74 0 49 0.0 74 0 49 -0.75 74 0 0 LTYPE 5 2AA9 330 5 100 AcDbSymbolTableRecord 100 AcDbLinetypeTableRecord 2 LineeTipo34 70 0 3 tratto punto 72 65 73 4 40 3.0 49 1.5 74 0 49 -0.75 74 0 49 0.0 74 0 49 -0.75 74 0 0 LTYPE 5 2AAA 330 5 100 AcDbSymbolTableRecord 100 AcDbLinetypeTableRecord 2 LineeTipo35 70 0 3 tratto tratto 72 65 73 2 40 2.5 49 1.5 74 0 49 -1.0 74 0 0 ENDTAB 0 TABLE 2 LAYER 5 2 330 0 100 AcDbSymbolTable 70 18 0 LAYER 5 10 330 2 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 0 70 0 62 7 6 Continuous 370 -3 390 2740 0 LAYER 5 72D 330 2 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 Simboli 70 0 62 7 6 Continuous 370 13 390 2740 0 LAYER 5 29F1 330 2 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 CODBO 70 0 62 7 6 Continuous 370 -3 390 2740 0 LAYER 5 29F2 330 2 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 Particelle 70 0 62 7 6 Continuous 370 13 390 2740 0 LAYER 5 29F3 330 2 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 RetinoFabb 70 0 62 7 6 Continuous 370 13 390 2740 0 LAYER 5 29F4 330 2 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 Testi 70 0 62 7 6 Continuous 370 25 390 2740 0 LAYER 5 29F5 330 2 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 LineeTipo1 70 0 62 7 6 Continuous 370 25 390 2740 0 LAYER 5 29F6 330 2 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 LineeTipo5 70 0 62 7 6 LineeTipo5 370 25 390 2740 0 LAYER 5 29F7 330 2 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 LineeTipo6 70 0 62 7 6 LineeTipo6 370 60 390 2740 0 LAYER 5 29F8 330 2 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 LineeTipo11 70 0 62 7 6 Continuous 370 25 390 2740 0 LAYER 5 29F9 330 2 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 LineeTipo12 70 1 62 7 6 Continuous 370 13 390 2740 0 LAYER 5 29FA 330 2 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 LineeTipo29 70 0 62 7 6 LineeTipo29 370 13 390 2740 0 LAYER 5 29FB 330 2 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 LineeTipo30 70 0 62 7 6 LineeTipo30 370 13 390 2740 0 LAYER 5 29FC 330 2 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 LineeTipo31 70 0 62 7 6 LineeTipo31 370 13 390 2740 0 LAYER 5 29FD 330 2 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 LineeTipo32 70 0 62 7 6 LineeTipo32 370 13 390 2740 0 LAYER 5 29FE 330 2 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 LineeTipo33 70 0 62 7 6 LineeTipo33 370 13 390 2740 0 LAYER 5 29FF 330 2 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 LineeTipo34 70 0 62 7 6 LineeTipo34 370 13 390 2740 0 LAYER 5 2A00 330 2 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 LineeTipo35 70 0 62 7 6 LineeTipo35 370 13 390 2740 0 ENDTAB 0 TABLE 2 STYLE 5 3 330 0 100 AcDbSymbolTable 70 2 0 STYLE 5 11 330 3 100 AcDbSymbolTableRecord 100 AcDbTextStyleTableRecord 2 Standard 70 0 40 0.0 41 1.0 50 0.0 71 0 42 0.2 3 txt 4 0 STYLE 5 2A03 330 3 100 AcDbSymbolTableRecord 100 AcDbTextStyleTableRecord 2 70 1 40 0.0 41 1.0 50 0.0 71 0 42 0.2 3 ltypeshp.shx 4 0 ENDTAB 0 TABLE 2 VIEW 5 6 330 0 100 AcDbSymbolTable 70 0 0 ENDTAB 0 TABLE 2 UCS 5 7 330 0 100 AcDbSymbolTable 70 0 0 ENDTAB 0 TABLE 2 APPID 5 9 330 0 100 AcDbSymbolTable 70 1 0 APPID 5 12 330 9 100 AcDbSymbolTableRecord 100 AcDbRegAppTableRecord 2 ACAD 70 0 0 ENDTAB 0 TABLE 2 DIMSTYLE 5 A 330 0 100 AcDbSymbolTable 70 1 100 AcDbDimStyleTable 71 1 340 710 0 DIMSTYLE 105 710 330 A 100 AcDbSymbolTableRecord 100 AcDbDimStyleTableRecord 2 Standard 70 0 173 1 340 11 344 775 0 ENDTAB 0 ENDSEC 0 SECTION 2 ENTITIES 0 LWPOLYLINE 100 AcDbEntity 100 AcDbPolyline 5 3AB5 90 9 70 128 8 Particelle 10 1674740.281 20 4851435.332 10 1674756.934 20 4851435.675 10 1674756.895 20 4851437.976 10 1674767.059 20 4851437.976 10 1674767.255 20 4851447.358 10 1674767.295 20 4851449.246 10 1674752.688 20 4851449.249 10 1674740.298 20 4851449.215 10 1674740.281 20 4851435.332 0 TEXT 100 AcDbEntity 100 AcDbText 5 3AB6 8 CODBO 1 1453 40 1.8 50 0 10 1674745.402 20 4851442.556 100 AcDbText 0 LWPOLYLINE 100 AcDbEntity 100 AcDbPolyline 5 4218 90 13 70 128 8 Particelle 10 1674507.564 20 4851463.201 10 1674505.527 20 4851457.662 10 1674504.389 20 4851454.568 10 1674503.801 20 4851453.115 10 1674500.606 20 4851444.521 10 1674498.904 20 4851439.903 10 1674514.521 20 4851433.919 10 1674516.258 20 4851438.699 10 1674519.209 20 4851446.586 10 1674518.701 20 4851446.915 10 1674519.874 20 4851450.062 10 1674522.508 20 4851457.742 10 1674507.564 20 4851463.201 0 TEXT 100 AcDbEntity 100 AcDbText 5 4219 8 CODBO 1 643 40 1.8 50 1.89171974522293 10 1674497.469 20 4851449.816 100 AcDbText 0 HATCH 5 4B48 330 20 100 AcDbEntity 100 AcDbHatch 8 RetinoFabb 10 0.0 20 0.0 30 0.0 210 0.0 220 0.0 230 1.0 2 ANSI31 70 0 71 0 91 1 92 16 93 13 72 1 10 1674393.216 20 4851421.768 11 1674392.525 21 4851422.191 72 1 10 1674392.525 20 4851422.191 11 1674391.267 21 4851422.962 72 1 10 1674391.267 20 4851422.962 11 1674382.854 21 4851428.021 72 1 10 1674382.854 20 4851428.021 11 1674378.659 21 4851430.452 72 1 10 1674378.659 20 4851430.452 11 1674371.438 21 4851423.932 72 1 10 1674371.438 20 4851423.932 11 1674372.188 21 4851423.488 72 1 10 1674372.188 20 4851423.488 11 1674374.743 21 4851420.983 72 1 10 1674374.743 20 4851420.983 11 1674374.201 21 4851420.130 72 1 10 1674374.201 20 4851420.130 11 1674376.013 21 4851418.669 72 1 10 1674376.013 20 4851418.669 11 1674376.557 21 4851419.422 72 1 10 1674376.557 20 4851419.422 11 1674385.032 21 4851413.382 72 1 10 1674385.032 20 4851413.382 11 1674386.977 21 4851411.968 72 1 10 1674386.977 20 4851411.968 11 1674393.216 21 4851421.768 97 0 75 0 76 1 52 0.0 41 10.0 77 0 78 1 53 45.0 43 0.0 44 0.0 45 -0.8838834764831842 46 0.8838834764831844 79 0 98 1 10 0.0 20 0.0 0 HATCH 5 4B36 330 20 100 AcDbEntity 100 AcDbHatch 8 RetinoFabb 10 0.0 20 0.0 30 0.0 210 0.0 220 0.0 230 1.0 2 ANSI31 70 0 71 0 91 1 92 16 93 11 72 1 10 1674842.191 20 4851309.751 11 1674842.877 21 4851309.799 72 1 10 1674842.877 20 4851309.799 11 1674842.813 21 4851316.024 72 1 10 1674842.813 20 4851316.024 11 1674841.655 21 4851316.003 72 1 10 1674841.655 20 4851316.003 11 1674839.300 21 4851315.989 72 1 10 1674839.300 20 4851315.989 11 1674839.266 21 4851317.271 72 1 10 1674839.266 20 4851317.271 11 1674835.567 21 4851317.166 72 1 10 1674835.567 20 4851317.166 11 1674832.808 21 4851317.089 72 1 10 1674832.808 20 4851317.089 11 1674832.833 21 4851315.951 72 1 10 1674832.833 20 4851315.951 11 1674837.234 21 4851315.977 72 1 10 1674837.234 20 4851315.977 11 1674837.351 21 4851309.667 72 1 10 1674837.351 20 4851309.667 11 1674842.191 21 4851309.751 97 0 75 0 76 1 52 0.0 41 10.0 77 0 78 1 53 60.0 43 0.0 44 0.0 45 -0.8838834764831842 46 0.8838834764831844 79 0 98 1 10 0.0 20 0.0 0 HATCH 5 4B4C 330 20 100 AcDbEntity 100 AcDbHatch 8 RetinoFabb 10 0.0 20 0.0 30 0.0 210 0.0 220 0.0 230 1.0 2 ANSI31 70 0 71 0 91 1 92 16 93 7 72 1 10 1674356.178 20 4851259.350 11 1674356.390 21 4851260.718 72 1 10 1674356.390 20 4851260.718 11 1674357.070 21 4851264.434 72 1 10 1674357.070 20 4851264.434 11 1674352.934 21 4851265.104 72 1 10 1674352.934 20 4851265.104 11 1674352.480 21 4851261.113 72 1 10 1674352.480 20 4851261.113 11 1674355.582 21 4851260.140 72 1 10 1674355.582 20 4851260.140 11 1674355.447 21 4851259.523 72 1 10 1674355.447 20 4851259.523 11 1674356.178 21 4851259.350 97 0 75 0 76 1 52 0.0 41 10.0 77 0 78 1 53 90.0 43 0.0 44 0.0 45 -0.8838834764831842 46 0.8838834764831844 79 0 98 1 10 0.0 20 0.0 0 HATCH 5 4A50 330 20 100 AcDbEntity 100 AcDbHatch 8 RetinoFabb 10 0.0 20 0.0 30 0.0 210 0.0 220 0.0 230 1.0 2 ANSI31 70 0 71 0 91 1 92 16 93 16 72 1 10 1681503.189 20 4849731.235 11 1681504.533 21 4849730.583 72 1 10 1681504.533 20 4849730.583 11 1681506.156 21 4849733.460 72 1 10 1681506.156 20 4849733.460 11 1681505.451 21 4849733.858 72 1 10 1681505.451 20 4849733.858 11 1681505.240 21 4849733.975 72 1 10 1681505.240 20 4849733.975 11 1681504.057 21 4849734.645 72 1 10 1681504.057 20 4849734.645 11 1681502.647 21 4849735.019 72 1 10 1681502.647 20 4849735.019 11 1681496.495 21 4849738.362 72 1 10 1681496.495 20 4849738.362 11 1681493.365 21 4849739.953 72 1 10 1681493.365 20 4849739.953 11 1681492.162 21 4849740.563 72 1 10 1681492.162 20 4849740.563 11 1681482.681 21 4849745.676 72 1 10 1681482.681 20 4849745.676 11 1681479.145 21 4849739.231 72 1 10 1681479.145 20 4849739.231 11 1681495.567 21 4849730.528 72 1 10 1681495.567 20 4849730.528 11 1681496.742 21 4849732.567 72 1 10 1681496.742 20 4849732.567 11 1681500.438 21 4849730.886 72 1 10 1681500.438 20 4849730.886 11 1681501.343 21 4849731.996 72 1 10 1681501.343 20 4849731.996 11 1681503.189 21 4849731.235 97 0 75 0 76 1 52 0.0 41 10.0 77 0 78 1 53 30.0 43 0.0 44 0.0 45 -0.8838834764831842 46 0.8838834764831844 79 0 98 1 10 0.0 20 0.0 0 ENDSEC 0 EOF libspatialite-4.1.1/test/check_point_to_tile_broken_geopackage.c0000664000175000017500000002160712163502133022126 00000000000000/* check_point_to_tile_broken_geopackage.c - Test case for GeoPackage Extensions Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Brad Hards Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #include #include "test_helpers.h" int main (int argc UNUSED, char *argv[] UNUSED) { sqlite3 *db_handle = NULL; char *sql_statement; sqlite3_stmt *stmt; int ret; char *err_msg = NULL; void *cache = spatialite_alloc_connection(); char *old_SPATIALITE_SECURITY_ENV = NULL; #ifdef _WIN32 char *env; #endif /* not WIN32 */ old_SPATIALITE_SECURITY_ENV = getenv("SPATIALITE_SECURITY"); #ifdef _WIN32 putenv("SPATIALITE_SECURITY=relaxed"); #else /* not WIN32 */ setenv("SPATIALITE_SECURITY", "relaxed", 1); #endif ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); // For debugging / testing if required // ret = sqlite3_open_v2 ("check_point_to_tile_broken_geopackage.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); spatialite_init_ex(db_handle, cache, 0); if (old_SPATIALITE_SECURITY_ENV) { #ifdef _WIN32 env = sqlite3_mprintf("SPATIALITE_SECURITY=%s", old_SPATIALITE_SECURITY_ENV); putenv(env); sqlite3_free(env); #else /* not WIN32 */ setenv("SPATIALITE_SECURITY", old_SPATIALITE_SECURITY_ENV, 1); #endif } else { #ifdef _WIN32 putenv("SPATIALITE_SECURITY="); #else /* not WIN32 */ unsetenv("SPATIALITE_SECURITY"); #endif } if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } /* Create the base tables */ ret = sqlite3_exec (db_handle, "SELECT InitSpatialMetadata(1, 'WGS84')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf(stderr, "Unexpected InitSpatialMetadata result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -2; } ret = sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf(stderr, "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -3; } /* create a target table */ ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS test1_tiles", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP test1_tiles error: %s\n", err_msg); sqlite3_free (err_msg); return -10; } // Didn't use NOT NULL for the tile_data ret = sqlite3_exec (db_handle, "CREATE TABLE test1_tiles (id INTEGER PRIMARY KEY AUTOINCREMENT, zoom_level INTEGER NOT NULL DEFAULT 0, tile_column INTEGER NOT NULL DEFAULT 0, tile_row INTEGER NOT NULL DEFAULT 0, tile_data BLOB DEFAULT (zeroblob(4)))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE mytable_tiles error: %s\n", err_msg); sqlite3_free (err_msg); return -11; } /* add in some test entries */ ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (1, 0, 0, 0, BlobFromFile('tile000.jpeg'))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT level0 error: %s\n", err_msg); sqlite3_free (err_msg); return -12; } ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (2, 1, 0, 0, BlobFromFile('tile100.jpeg'))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT level1 error: %s\n", err_msg); sqlite3_free (err_msg); return -13; } ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (3, 1, 0, 1, BlobFromFile('tile101.jpeg'))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT level1 error: %s\n", err_msg); sqlite3_free (err_msg); return -14; } ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (4, 1, 1, 1, 42)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT level1 error: %s\n", err_msg); sqlite3_free (err_msg); return -15; } ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS test1_tiles_rt_metadata", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP test1_tiles_rt_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -16; } ret = sqlite3_exec (db_handle, "CREATE TABLE test1_tiles_rt_metadata (id INTEGER PRIMARY KEY AUTOINCREMENT, min_x DOUBLE NOT NULL DEFAULT -180.0, min_y DOUBLE NOT NULL DEFAULT -90.0, max_x DOUBLE NOT NULL DEFAULT 180.0, max_y DOUBLE NOT NULL DEFAULT 90.0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE test1_tiles_rt_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -17; } ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles_rt_metadata (id, min_x, min_y, max_x, max_y) VALUES (1, -180.0, -90.0, 180.0, 90.0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT level0 _rt_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -18; } ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles_rt_metadata (id, min_x, min_y, max_x, max_y) VALUES (2, -180.0, 0.0, 0.0, 90.0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT level1 (0,0) _rt_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -19; } ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles_rt_metadata (id, min_x, min_y, max_x, max_y) VALUES (4, 0.0, -90.0, 180.0, 0.0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT level1 (1,1) _rt_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -20; } ret = sqlite3_exec (db_handle, "INSERT INTO raster_columns VALUES (\"test1_tiles\", \"tile_data\", 100, 0, 4326)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT raster_columns row error: %s\n", err_msg); sqlite3_free (err_msg); return -21; } /* try gpkgPointToTile with bad tile_data */ sql_statement = "SELECT gpkgPointToTile(\"test1_tiles\", 4326, 20.0, -30.0, 1)"; ret = sqlite3_prepare_v2 (db_handle, sql_statement, strlen(sql_statement), &stmt, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "failed to prepare SQL statement: %i (%s)\n", ret, sqlite3_errmsg(db_handle)); return -30; } ret = sqlite3_step (stmt); if (ret != SQLITE_ROW) { fprintf(stderr, "unexpected return value for first step: %i\n", ret); return -31; } if (sqlite3_column_type (stmt, 0) != SQLITE_NULL) { fprintf(stderr, "bad type for column 0: %i\n", sqlite3_column_type (stmt, 0)); return -32; } ret = sqlite3_step (stmt); if (ret != SQLITE_DONE) { fprintf(stderr, "unexpected return value for second step: %i\n", ret); return -40; } ret = sqlite3_finalize (stmt); ret = sqlite3_close (db_handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle)); return -100; } spatialite_cleanup_ex(cache); return 0; } libspatialite-4.1.1/test/empty.png0000664000175000017500000000024612163502133014107 00000000000000PNG  IHDR&6SL pHYslA<XIDATx1 ! QvmBWx8NĀsׇ}jzD4H$l4KIIIIIIIIIImijrIENDB`libspatialite-4.1.1/test/sql_stmt_mathsql_tests/0000775000175000017500000000000012163503230017141 500000000000000libspatialite-4.1.1/test/sql_stmt_mathsql_tests/log2-4.0.testcase0000664000175000017500000000022012163502133021753 00000000000000log2(4.0) :memory: #use in-memory database SELECT log2(4.0); 1 # rows (not including the header row) 1 # columns log2(4.0) # header 2.0 #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/signtext.testcase0000664000175000017500000000022512163502133022463 00000000000000sign-text :memory: SELECT sign("text"); # the SQL to run 1 # rows 1 # column sign("text") # this is the header row (NULL) # this is really the resultlibspatialite-4.1.1/test/sql_stmt_mathsql_tests/tan0.testcase0000664000175000017500000000020712163502133021460 00000000000000tan(0) :memory: #use in-memory database SELECT tan(0); 1 # rows (not including the header row) 1 # columns tan(0) # header 0.0 #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/sign01.testcase0000664000175000017500000000021112163502133021712 00000000000000sign01 :memory: SELECT sign(0.1); # the SQL to run 1 # rows 1 # column sign(0.1) # this is the header row 1.0 # this is really the resultlibspatialite-4.1.1/test/sql_stmt_mathsql_tests/Makefile.am0000664000175000017500000000422612163502133021122 00000000000000 EXTRA_DIST = acos10.testcase \ acos20.testcase \ acos2.testcase \ acos.testcase \ acos-text.testcase \ asin10.testcase \ asin1.testcase \ asin20.testcase \ asin2.testcase \ asin-text.testcase \ atan00.testcase \ atan0.testcase \ atan-text.testcase \ ceilfloat2.testcase \ ceilfloat.testcase \ ceil-int.testcase \ ceilnull.testcase \ cos00.testcase \ cos0.testcase \ cos-text.testcase \ cot00.testcase \ cot0.testcase \ cotpi2.testcase \ cot-text.testcase \ degrees45.testcase \ degrees.testcase \ degreestext.testcase \ exp00.testcase \ exp0.testcase \ exp10.testcase \ exp1.testcase \ expneg.testcase \ exptext.testcase \ floor32.testcase \ floorint.testcase \ floornull.testcase \ log10-0.0.testcase \ log10-100.0.testcase \ log10-100.testcase \ log10-text.testcase \ log2-0.0.testcase \ log2-0.testcase \ log2-4.0.testcase \ log2-4.testcase \ log2-text.testcase \ logn00.testcase \ logn0.testcase \ logn10.testcase \ logn1.testcase \ logn2-01.testcase \ logn2-02.testcase \ logn2-2.2.testcase \ logn2-4.2int.testcase \ logn2-4.2.testcase \ logn2-text2.testcase \ logn2-text3.testcase \ logn2-text4.testcase \ logn2-text.testcase \ logn-text.testcase \ pi.testcase \ pow00-1.testcase \ pow00-2.testcase \ pow00double.testcase \ pow00.testcase \ pow-badarg1.testcase \ pow-badarg2.testcase \ pow-edom.testcase \ pow-fp.testcase \ rad0.testcase \ radpi.testcase \ rad-text.testcase \ round0.testcase \ round-29.testcase \ round29.testcase \ round30.testcase \ round-31.testcase \ round31.testcase \ round3.testcase \ round-text.testcase \ sign00.testcase \ sign01.testcase \ sign0.testcase \ sign10.testcase \ signeg2int.testcase \ signeg2.testcase \ signeg.testcase \ signtext.testcase \ sin00.testcase \ sin0.testcase \ sin-pi2.testcase \ sinpi2.testcase \ sin-pi.testcase \ sinpi.testcase \ sin-text.testcase \ sqrt00.testcase \ sqrt0.testcase \ sqrt-10.testcase \ sqrt-1.testcase \ sqrt-640.testcase \ sqrt-64.testcase \ sqrt-text.testcase \ stddev.testcase \ tan00.testcase \ tan0.testcase \ tanpi4.testcase \ tan-pi.testcase \ tanpi.testcase \ tan-text.testcase \ variance.testcase libspatialite-4.1.1/test/sql_stmt_mathsql_tests/variance.testcase0000664000175000017500000000066612163502133022417 00000000000000variance sql_stmt_tests/testdb1.sqlite SELECT var_pop(a), var_pop(b), var_pop(nulls), var_pop(blobs), var_samp(a), var_samp(b), var_samp(blobs), var_samp(nulls) from data1; 1 # rows (not including the header row) 8 # columns var_pop(a) var_pop(b) var_pop(nulls) var_pop(blobs) var_samp(a) var_samp(b) var_samp(blobs) var_samp(nulls) 104.472222222222:10 150.12888888888:10 (NULL) (NULL) 125.36666666666:10 180.15466666666:10 (NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_mathsql_tests/pow00.testcase0000664000175000017500000000025212163502133021563 00000000000000pow(0, 0) # test of pow() function :memory: #use in-memory database SELECT pow(0, 0); 1 # rows (not including the header row) 1 # columns pow(0, 0) # header 1.0 # result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/round-29.testcase0000664000175000017500000000022312163502133022173 00000000000000round(-2.9) :memory: SELECT round(-2.9); # the SQL to run 1 # rows 1 # column round(-2.9) # this is the header row -3.0 # this is really the resultlibspatialite-4.1.1/test/sql_stmt_mathsql_tests/exptext.testcase0000664000175000017500000000032312163502133022316 00000000000000exp-text # test of exp() function, with text argument :memory: #use in-memory database SELECT exp("hello world"); 1 # rows (not including the header row) 1 # columns exp("hello world") # header (NULL) #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/round3.testcase0000664000175000017500000000021112163502133022023 00000000000000round(3) :memory: SELECT round(3); # the SQL to run 1 # rows 1 # column round(3) # this is the header row 3.0 # this is really the resultlibspatialite-4.1.1/test/sql_stmt_mathsql_tests/sqrt00.testcase0000664000175000017500000000020612163502133021746 00000000000000sqrt(0) :memory: SELECT sqrt(0); # the SQL to run 1 # rows 1 # column sqrt(0) # this is the header row 0.0 # this is really the resultlibspatialite-4.1.1/test/sql_stmt_mathsql_tests/tanpi.testcase0000664000175000017500000000022612163502133021732 00000000000000tan(pi) :memory: #use in-memory database SELECT 1 + tan(pi()); 1 # rows (not including the header row) 1 # columns 1 + tan(pi()) # header 1.0 #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/cot00.testcase0000664000175000017500000000022012163502133021536 00000000000000cot(0.0) :memory: #use in-memory database SELECT cot(0.0); 1 # rows (not including the header row) 1 # columns cot(0.0) # header (NULL) #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/round-31.testcase0000664000175000017500000000022312163502133022164 00000000000000round(-3.1) :memory: SELECT round(-3.1); # the SQL to run 1 # rows 1 # column round(-3.1) # this is the header row -3.0 # this is really the resultlibspatialite-4.1.1/test/sql_stmt_mathsql_tests/acos-text.testcase0000664000175000017500000000027412163502133022531 00000000000000acos-text # check of text argument to acos() :memory: #use in-memory database SELECT acos("test"); 1 # rows (not including the header row) 1 # columns acos("test") # header (NULL) #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/logn2-text4.testcase0000664000175000017500000000025212163502133022705 00000000000000logn(text, double) :memory: #use in-memory database SELECT log(1.0, "text"); 1 # rows (not including the header row) 1 # columns log(1.0, "text") # header (NULL) #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/cos0.testcase0000664000175000017500000000020712163502133021462 00000000000000cos(0) :memory: #use in-memory database SELECT cos(0); 1 # rows (not including the header row) 1 # columns cos(0) # header 1.0 #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/exp00.testcase0000664000175000017500000000030512163502133021551 00000000000000exp(0.0) # test of exp() function, with argument 0 (i.e. a float) :memory: #use in-memory database SELECT exp(0.0); 1 # rows (not including the header row) 1 # columns exp(0.0)# header 1.0#result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/logn0.testcase0000664000175000017500000000021212163502133021631 00000000000000log(0) :memory: #use in-memory database SELECT log(0); 1 # rows (not including the header row) 1 # columns log(0) # header (NULL) #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/round29.testcase0000664000175000017500000000021712163502133022121 00000000000000round(2.9) :memory: SELECT round(2.9); # the SQL to run 1 # rows 1 # column round(2.9) # this is the header row 3.0 # this is really the resultlibspatialite-4.1.1/test/sql_stmt_mathsql_tests/log2-text.testcase0000664000175000017500000000023212163502133022441 00000000000000log2(text) :memory: #use in-memory database SELECT log2("text"); 1 # rows (not including the header row) 1 # columns log2("text") # header (NULL) #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/exp0.testcase0000664000175000017500000000026012163502133021471 00000000000000exp(0) # test of exp() function, with argument 0 :memory: #use in-memory database SELECT exp(0); 1 # rows (not including the header row) 1 # columns exp(0)# header 1.0#result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/atan0.testcase0000664000175000017500000000021212163502133021615 00000000000000atan(0) :memory: #use in-memory database SELECT atan(0); 1 # rows (not including the header row) 1 # columns atan(0) # header 0.0 #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/expneg.testcase0000664000175000017500000000026612163502133022111 00000000000000exp-neg # test of exp() function, with negative :memory: #use in-memory database SELECT exp(-1.0); 1 # rows (not including the header row) 1 # columns exp(-1.0)# header 0.36787944:8 libspatialite-4.1.1/test/sql_stmt_mathsql_tests/rad0.testcase0000664000175000017500000000025012163502133021442 00000000000000radians(0) # test of radians() :memory: #use in-memory database SELECT radians(0); 1 # rows (not including the header row) 1 # columns radians(0) # header 0.0 #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/sqrt0.testcase0000664000175000017500000000022612163502133021670 00000000000000sqrt(text) :memory: SELECT sqrt("text"); # the SQL to run 1 # rows 1 # column sqrt("text") # this is the header row (NULL) # this is really the resultlibspatialite-4.1.1/test/sql_stmt_mathsql_tests/sqrt-text.testcase0000664000175000017500000000022612163502133022572 00000000000000sqrt(text) :memory: SELECT sqrt("text"); # the SQL to run 1 # rows 1 # column sqrt("text") # this is the header row (NULL) # this is really the resultlibspatialite-4.1.1/test/sql_stmt_mathsql_tests/tanpi4.testcase0000664000175000017500000000022412163502133022014 00000000000000tan(pi/4) :memory: #use in-memory database SELECT tan(pi()/4); 1 # rows (not including the header row) 1 # columns tan(pi()/4) # header 1.0 #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/asin1.testcase0000664000175000017500000000023012163502133021625 00000000000000asin(1) :memory: #use in-memory database SELECT asin(1); 1 # rows (not including the header row) 1 # columns asin(1) # header 1.570796326794:14 #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/asin20.testcase0000664000175000017500000000022312163502133021710 00000000000000asin(2.0) :memory: #use in-memory database SELECT asin(2.0); 1 # rows (not including the header row) 1 # columns asin(2.0) # header (NULL) #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/asin-text.testcase0000664000175000017500000000027412163502133022536 00000000000000asin-text # check of text argument to asin() :memory: #use in-memory database SELECT asin("test"); 1 # rows (not including the header row) 1 # columns asin("test") # header (NULL) #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/signeg2.testcase0000664000175000017500000000021712163502133022155 00000000000000sign-neg2 :memory: SELECT sign(-2.0); # the SQL to run 1 # rows 1 # column sign(-2.0) # this is the header row -1.0 # this is really the resultlibspatialite-4.1.1/test/sql_stmt_mathsql_tests/round30.testcase0000664000175000017500000000021712163502133022111 00000000000000round(3.0) :memory: SELECT round(3.0); # the SQL to run 1 # rows 1 # column round(3.0) # this is the header row 3.0 # this is really the resultlibspatialite-4.1.1/test/sql_stmt_mathsql_tests/logn2-01.testcase0000664000175000017500000000023512163502133022056 00000000000000logn(-0.1, 2) :memory: #use in-memory database SELECT log(-0.1, 2); 1 # rows (not including the header row) 1 # columns log(-0.1, 2) # header (NULL) #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/cot0.testcase0000664000175000017500000000021212163502133021457 00000000000000cot(0) :memory: #use in-memory database SELECT cot(0); 1 # rows (not including the header row) 1 # columns cot(0) # header (NULL) #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/pi.testcase0000664000175000017500000000021712163502133021227 00000000000000pi :memory: # use in-memory database SELECT pi(); 1 # rows (not including the header row) 1 # columns pi() # header 3.141592653589:14 # result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/logn1.testcase0000664000175000017500000000021012163502133021630 00000000000000logn(1) :memory: #use in-memory database SELECT log(1); 1 # rows (not including the header row) 1 # columns log(1) # header 0.0 #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/pow00-2.testcase0000664000175000017500000000026012163502133021721 00000000000000pow(0, 0.0) # test of pow() function :memory: #use in-memory database SELECT pow(0, 0.0); 1 # rows (not including the header row) 1 # columns pow(0, 0.0) # header 1.0 # result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/acos20.testcase0000664000175000017500000000022312163502133021703 00000000000000acos(2.0) :memory: #use in-memory database SELECT acos(2.0); 1 # rows (not including the header row) 1 # columns acos(2.0) # header (NULL) #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/pow00double.testcase0000664000175000017500000000026612163502133022763 00000000000000pow(0.0, 0.0) # test of pow() function :memory: #use in-memory database SELECT pow(0.0, 0.0); 1 # rows (not including the header row) 1 # columns pow(0.0, 0.0) # header 1.0 # result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/pow-fp.testcase0000664000175000017500000000033012163502133022023 00000000000000pow(0, -3.6) # test of pow() function :memory: #use in-memory database SELECT pow(0, -3.6); 1 # rows (not including the header row) 1 # columns pow(0, -3.6) # header (NULL) # result - its basically division by zero. libspatialite-4.1.1/test/sql_stmt_mathsql_tests/pow-badarg2.testcase0000664000175000017500000000031712163502133022725 00000000000000pow("test", 1) # test of pow() function with bad arguments :memory: #use in-memory database SELECT pow("test", 1); 1 # rows (not including the header row) 1 # columns pow("test", 1) # header (NULL) # result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/logn2-text3.testcase0000664000175000017500000000024612163502133022707 00000000000000logn(text, double) :memory: #use in-memory database SELECT log(1, "text"); 1 # rows (not including the header row) 1 # columns log(1, "text") # header (NULL) #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/sign0.testcase0000664000175000017500000000020412163502133021633 00000000000000sign0 :memory: SELECT sign(0); # the SQL to run 1 # rows 1 # column sign(0) # this is the header row 0.0 # this is really the resultlibspatialite-4.1.1/test/sql_stmt_mathsql_tests/degrees.testcase0000664000175000017500000000022312163502133022232 00000000000000degrees(0) :memory: #use in-memory database SELECT degrees(0); 1 # rows (not including the header row) 1 # columns degrees(0) # header 0.0 #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/logn2-text2.testcase0000664000175000017500000000024612163502133022706 00000000000000logn(text, double) :memory: #use in-memory database SELECT log("text", 0); 1 # rows (not including the header row) 1 # columns log("text", 0) # header (NULL) #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/signeg.testcase0000664000175000017500000000021612163502133022072 00000000000000sign-neg :memory: SELECT sign(-1.0); # the SQL to run 1 # rows 1 # column sign(-1.0) # this is the header row -1.0 # this is really the resultlibspatialite-4.1.1/test/sql_stmt_mathsql_tests/sinpi2.testcase0000664000175000017500000000022412163502133022021 00000000000000sin(pi/2) :memory: #use in-memory database SELECT sin(pi()/2); 1 # rows (not including the header row) 1 # columns sin(pi()/2) # header 1.0 #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/degrees45.testcase0000664000175000017500000000023512163502133022406 00000000000000degrees45 :memory: #use in-memory database SELECT degrees(pi()/4); 1 # rows (not including the header row) 1 # columns degrees(pi()/4) # header 45.0 #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/asin10.testcase0000664000175000017500000000023612163502133021713 00000000000000asin(1.0) :memory: #use in-memory database SELECT asin(1.0); 1 # rows (not including the header row) 1 # columns asin(1.0) # header 1.570796326794:14 #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/log10-text.testcase0000664000175000017500000000023512163502133022523 00000000000000log10(text) :memory: #use in-memory database SELECT log10("text"); 1 # rows (not including the header row) 1 # columns log10("text") # header (NULL) #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/logn2-2.2.testcase0000664000175000017500000000023512163502133022137 00000000000000logn(2.0, 2.0) :memory: #use in-memory database SELECT log(2.0, 2.0); 1 # rows (not including the header row) 1 # columns log(2.0, 2.0) # header 1.0 #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/stddev.testcase0000664000175000017500000000071112163502133022107 00000000000000stddev sql_stmt_tests/testdb1.sqlite SELECT stddev_pop(a), stddev_pop(b), stddev_pop(nulls), stddev_pop(blobs), stddev_samp(a), stddev_samp(b), stddev_samp(blobs), stddev_samp(nulls) from data1; 1 # rows (not including the header row) 8 # columns stddev_pop(a) stddev_pop(b) stddev_pop(nulls) stddev_pop(blobs) stddev_samp(a) stddev_samp(b) stddev_samp(blobs) stddev_samp(nulls) 10.2211654:8 12.252709:8 (NULL) (NULL) 11.1967257:8 13.422171:8 (NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_mathsql_tests/sqrt-10.testcase0000664000175000017500000000022212163502133022022 00000000000000sqrt(-1.0) :memory: SELECT sqrt(-1.0); # the SQL to run 1 # rows 1 # column sqrt(-1.0) # this is the header row (NULL) # this is really the resultlibspatialite-4.1.1/test/sql_stmt_mathsql_tests/sqrt-64.testcase0000664000175000017500000000021112163502133022031 00000000000000sqrt(64) :memory: SELECT sqrt(64); # the SQL to run 1 # rows 1 # column sqrt(64) # this is the header row 8.0 # this is really the resultlibspatialite-4.1.1/test/sql_stmt_mathsql_tests/logn-text.testcase0000664000175000017500000000023012163502133022533 00000000000000logn(text) :memory: #use in-memory database SELECT log("text"); 1 # rows (not including the header row) 1 # columns log("text") # header (NULL) #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/sqrt-640.testcase0000664000175000017500000000021712163502133022117 00000000000000sqrt(64.0) :memory: SELECT sqrt(64.0); # the SQL to run 1 # rows 1 # column sqrt(64.0) # this is the header row 8.0 # this is really the resultlibspatialite-4.1.1/test/sql_stmt_mathsql_tests/ceilfloat.testcase0000664000175000017500000000021612163502133022560 00000000000000ceil-float :memory: SELECT ceil(3.0); # the SQL to run 1 # rows 1 # column ceil(3.0) # this is the header row 3.0 # this is really the result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/radpi.testcase0000664000175000017500000000027012163502133021715 00000000000000radians(pi()) # test of radians() :memory: #use in-memory database SELECT radians(180.0); 1 # rows (not including the header row) 1 # columns radians(180.0) # header 3.1415:6 #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/atan-text.testcase0000664000175000017500000000022312163502133022521 00000000000000atan-text :memory: # use in-memory database SELECT atan('test'); 1 # rows (not including the header row) 1 # columns atan('test') # header (NULL) libspatialite-4.1.1/test/sql_stmt_mathsql_tests/log2-4.testcase0000664000175000017500000000021212163502133021616 00000000000000log2(4) :memory: #use in-memory database SELECT log2(4); 1 # rows (not including the header row) 1 # columns log2(4) # header 2.0 #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/tan00.testcase0000664000175000017500000000021512163502133021537 00000000000000tan(0.0) :memory: #use in-memory database SELECT tan(0.0); 1 # rows (not including the header row) 1 # columns tan(0.0) # header 0.0 #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/logn00.testcase0000664000175000017500000000022012163502133021710 00000000000000log(0.0) :memory: #use in-memory database SELECT log(0.0); 1 # rows (not including the header row) 1 # columns log(0.0) # header (NULL) #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/tan-pi.testcase0000664000175000017500000000023112163502133022003 00000000000000tan(-pi) :memory: #use in-memory database SELECT 1 + tan(-pi()); 1 # rows (not including the header row) 1 # columns 1 + tan(-pi()) # header 1.0 #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/round-text.testcase0000664000175000017500000000023112163502133022724 00000000000000round(text) :memory: SELECT round("text"); # the SQL to run 1 # rows 1 # column round("text") # this is the header row (NULL) # this is really the resultlibspatialite-4.1.1/test/sql_stmt_mathsql_tests/round0.testcase0000664000175000017500000000021112163502133022020 00000000000000round(0) :memory: SELECT round(0); # the SQL to run 1 # rows 1 # column round(0) # this is the header row 0.0 # this is really the resultlibspatialite-4.1.1/test/sql_stmt_mathsql_tests/sin-pi2.testcase0000664000175000017500000000023012163502133022073 00000000000000sin(-pi/2) :memory: #use in-memory database SELECT sin(-pi()/2); 1 # rows (not including the header row) 1 # columns sin(-pi()/2) # header -1.0 #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/pow-edom.testcase0000664000175000017500000000027412163502133022351 00000000000000pow(-2.1, 3.6) # test of pow() function :memory: #use in-memory database SELECT pow(-2.1, 3.6); 1 # rows (not including the header row) 1 # columns pow(-2.1, 3.6) # header (NULL) # result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/acos10.testcase0000664000175000017500000000022012163502133021677 00000000000000acos(1.0) :memory: #use in-memory database SELECT acos(1.0); 1 # rows (not including the header row) 1 # columns acos(1.0) # header 0.0 #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/tan-text.testcase0000664000175000017500000000022712163502133022364 00000000000000tan(text) :memory: #use in-memory database SELECT tan("text"); 1 # rows (not including the header row) 1 # columns tan("text") # header (NULL) #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/Makefile.in0000664000175000017500000003112712163502133021133 00000000000000# Makefile.in generated by automake 1.12.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = test/sql_stmt_mathsql_tests DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = acos10.testcase \ acos20.testcase \ acos2.testcase \ acos.testcase \ acos-text.testcase \ asin10.testcase \ asin1.testcase \ asin20.testcase \ asin2.testcase \ asin-text.testcase \ atan00.testcase \ atan0.testcase \ atan-text.testcase \ ceilfloat2.testcase \ ceilfloat.testcase \ ceil-int.testcase \ ceilnull.testcase \ cos00.testcase \ cos0.testcase \ cos-text.testcase \ cot00.testcase \ cot0.testcase \ cotpi2.testcase \ cot-text.testcase \ degrees45.testcase \ degrees.testcase \ degreestext.testcase \ exp00.testcase \ exp0.testcase \ exp10.testcase \ exp1.testcase \ expneg.testcase \ exptext.testcase \ floor32.testcase \ floorint.testcase \ floornull.testcase \ log10-0.0.testcase \ log10-100.0.testcase \ log10-100.testcase \ log10-text.testcase \ log2-0.0.testcase \ log2-0.testcase \ log2-4.0.testcase \ log2-4.testcase \ log2-text.testcase \ logn00.testcase \ logn0.testcase \ logn10.testcase \ logn1.testcase \ logn2-01.testcase \ logn2-02.testcase \ logn2-2.2.testcase \ logn2-4.2int.testcase \ logn2-4.2.testcase \ logn2-text2.testcase \ logn2-text3.testcase \ logn2-text4.testcase \ logn2-text.testcase \ logn-text.testcase \ pi.testcase \ pow00-1.testcase \ pow00-2.testcase \ pow00double.testcase \ pow00.testcase \ pow-badarg1.testcase \ pow-badarg2.testcase \ pow-edom.testcase \ pow-fp.testcase \ rad0.testcase \ radpi.testcase \ rad-text.testcase \ round0.testcase \ round-29.testcase \ round29.testcase \ round30.testcase \ round-31.testcase \ round31.testcase \ round3.testcase \ round-text.testcase \ sign00.testcase \ sign01.testcase \ sign0.testcase \ sign10.testcase \ signeg2int.testcase \ signeg2.testcase \ signeg.testcase \ signtext.testcase \ sin00.testcase \ sin0.testcase \ sin-pi2.testcase \ sinpi2.testcase \ sin-pi.testcase \ sinpi.testcase \ sin-text.testcase \ sqrt00.testcase \ sqrt0.testcase \ sqrt-10.testcase \ sqrt-1.testcase \ sqrt-640.testcase \ sqrt-64.testcase \ sqrt-text.testcase \ stddev.testcase \ tan00.testcase \ tan0.testcase \ tanpi4.testcase \ tan-pi.testcase \ tanpi.testcase \ tan-text.testcase \ variance.testcase all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/sql_stmt_mathsql_tests/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign test/sql_stmt_mathsql_tests/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags: TAGS TAGS: ctags: CTAGS CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libspatialite-4.1.1/test/sql_stmt_mathsql_tests/sin00.testcase0000664000175000017500000000021512163502133021546 00000000000000sin(0.0) :memory: #use in-memory database SELECT sin(0.0); 1 # rows (not including the header row) 1 # columns sin(0.0) # header 0.0 #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/acos2.testcase0000664000175000017500000000021512163502133021624 00000000000000acos(2) :memory: #use in-memory database SELECT acos(2); 1 # rows (not including the header row) 1 # columns acos(2) # header (NULL) #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/logn2-4.2int.testcase0000664000175000017500000000022112163502133022647 00000000000000logn(4, 2) :memory: #use in-memory database SELECT log(4, 2); 1 # rows (not including the header row) 1 # columns log(4, 2) # header 2.0 #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/ceil-int.testcase0000664000175000017500000000027612163502133022330 00000000000000ceil(integer) # integer input - this is just the name remember :memory: SELECT ceil(3); # the SQL to run 1 # rows 1 # column ceil(3) # this is the header row 3.0 # this is really the result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/round31.testcase0000664000175000017500000000021712163502133022112 00000000000000round(3.1) :memory: SELECT round(3.1); # the SQL to run 1 # rows 1 # column round(3.1) # this is the header row 3.0 # this is really the resultlibspatialite-4.1.1/test/sql_stmt_mathsql_tests/logn10.testcase0000664000175000017500000000021612163502133021716 00000000000000logn(1.0) :memory: #use in-memory database SELECT log(1.0); 1 # rows (not including the header row) 1 # columns log(1.0) # header 0.0 #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/signeg2int.testcase0000664000175000017500000000021612163502133022667 00000000000000sign-neg2int :memory: SELECT sign(-2); # the SQL to run 1 # rows 1 # column sign(-2) # this is the header row -1.0 # this is really the resultlibspatialite-4.1.1/test/sql_stmt_mathsql_tests/sin-text.testcase0000664000175000017500000000022712163502133022373 00000000000000sin(text) :memory: #use in-memory database SELECT sin("text"); 1 # rows (not including the header row) 1 # columns sin("text") # header (NULL) #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/pow00-1.testcase0000664000175000017500000000026012163502133021720 00000000000000pow(0.0, 0) # test of pow() function :memory: #use in-memory database SELECT pow(0.0, 0); 1 # rows (not including the header row) 1 # columns pow(0.0, 0) # header 1.0 # result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/sign00.testcase0000664000175000017500000000021112163502133021711 00000000000000sign00 :memory: SELECT sign(0.0); # the SQL to run 1 # rows 1 # column sign(0.0) # this is the header row 0.0 # this is really the resultlibspatialite-4.1.1/test/sql_stmt_mathsql_tests/acos.testcase0000664000175000017500000000021212163502133021537 00000000000000acos(1) :memory: #use in-memory database SELECT acos(1); 1 # rows (not including the header row) 1 # columns acos(1) # header 0.0 #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/sin-pi.testcase0000664000175000017500000000023112163502133022012 00000000000000sin(-pi) :memory: #use in-memory database SELECT 1 + sin(-pi()); 1 # rows (not including the header row) 1 # columns 1 + sin(-pi()) # header 1.0 #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/degreestext.testcase0000664000175000017500000000024012163502133023136 00000000000000degrees-text :memory: #use in-memory database SELECT degrees("foo"); 1 # rows (not including the header row) 1 # columns degrees("foo") # header (NULL) #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/sqrt-1.testcase0000664000175000017500000000021412163502133021743 00000000000000sqrt(-1) :memory: SELECT sqrt(-1); # the SQL to run 1 # rows 1 # column sqrt(-1) # this is the header row (NULL) # this is really the resultlibspatialite-4.1.1/test/sql_stmt_mathsql_tests/asin2.testcase0000664000175000017500000000021512163502133021631 00000000000000asin(2) :memory: #use in-memory database SELECT asin(2); 1 # rows (not including the header row) 1 # columns asin(2) # header (NULL) #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/pow-badarg1.testcase0000664000175000017500000000032512163502133022723 00000000000000pow(0.0, "test") # test of pow() function with bad arguments :memory: #use in-memory database SELECT pow(0.0, "test"); 1 # rows (not including the header row) 1 # columns pow(0.0, "test") # header (NULL) # result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/exp1.testcase0000664000175000017500000000034312163502133021474 00000000000000exp(1) # test of exp() function, with argument 1 :memory: #use in-memory database SELECT exp(1); 1 # rows (not including the header row) 1 # columns exp(1)# header 2.71828182845905:8#result, with limited precision comparision libspatialite-4.1.1/test/sql_stmt_mathsql_tests/log2-0.0.testcase0000664000175000017500000000022312163502133021752 00000000000000log2(0.0) :memory: #use in-memory database SELECT log2(0.0); 1 # rows (not including the header row) 1 # columns log2(0.0) # header (NULL) #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/cotpi2.testcase0000664000175000017500000000023712163502133022021 00000000000000cot(pi2) :memory: #use in-memory database SELECT (1 + cot(pi()/2)); 1 # rows (not including the header row) 1 # columns (1 + cot(pi()/2)) # header 1.0 #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/exp10.testcase0000664000175000017500000000035312163502133021555 00000000000000exp(1.0) # test of exp() function, with argument 1.0 :memory: #use in-memory database SELECT exp(1.0); 1 # rows (not including the header row) 1 # columns exp(1.0)# header 2.71828182845905:8#result, with limited precision comparision libspatialite-4.1.1/test/sql_stmt_mathsql_tests/floor32.testcase0000664000175000017500000000027112163502133022105 00000000000000floor(3.2) # you can use the SQL if you're not feeling imaginative. :memory: SELECT floor(3.2); 1 # rows 1 # columns floor(3.2) # this is the header row 3.0 # this is really the result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/ceilnull.testcase0000664000175000017500000000030612163502133022425 00000000000000ceil(null) # text input, expecting null output :memory: SELECT ceil("some text"); # the SQL to run 1 # rows 1 # columns ceil("some text") # this is the header row (NULL) # this is really the result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/log10-100.testcase0000664000175000017500000000022312163502133022034 00000000000000log10(100) :memory: #use in-memory database SELECT log10(100); 1 # rows (not including the header row) 1 # columns log10(100) # header 2.0 #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/logn2-02.testcase0000664000175000017500000000024012163502133022053 00000000000000logn(1.0, 1.0) :memory: #use in-memory database SELECT log(1.0, 1.0); 1 # rows (not including the header row) 1 # columns log(1.0, 1.0) # header (NULL) #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/rad-text.testcase0000664000175000017500000000027012163502133022346 00000000000000radians(text) # test of radians() :memory: #use in-memory database SELECT radians("text"); 1 # rows (not including the header row) 1 # columns radians("text") # header (NULL) #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/sin0.testcase0000664000175000017500000000020712163502133021467 00000000000000sin(0) :memory: #use in-memory database SELECT sin(0); 1 # rows (not including the header row) 1 # columns sin(0) # header 0.0 #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/log2-0.testcase0000664000175000017500000000021512163502133021615 00000000000000log2(0) :memory: #use in-memory database SELECT log2(0); 1 # rows (not including the header row) 1 # columns log2(0) # header (NULL) #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/atan00.testcase0000664000175000017500000000022112163502133021675 00000000000000atan(0.0) :memory: # use in-memory database SELECT atan(0.0); 1 # rows (not including the header row) 1 # columns atan(0.0) # header 0.0 #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/logn2-text.testcase0000664000175000017500000000025212163502133022621 00000000000000logn(text, double) :memory: #use in-memory database SELECT log("text", 0.0); 1 # rows (not including the header row) 1 # columns log("text", 0.0) # header (NULL) #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/cot-text.testcase0000664000175000017500000000022712163502133022367 00000000000000cot(text) :memory: #use in-memory database SELECT cot("text"); 1 # rows (not including the header row) 1 # columns cot("text") # header (NULL) #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/logn2-4.2.testcase0000664000175000017500000000023512163502133022141 00000000000000logn(4.0, 2.0) :memory: #use in-memory database SELECT log(4.0, 2.0); 1 # rows (not including the header row) 1 # columns log(4.0, 2.0) # header 2.0 #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/log10-0.0.testcase0000664000175000017500000000022612163502133022034 00000000000000log10(0.0) :memory: #use in-memory database SELECT log10(0.0); 1 # rows (not including the header row) 1 # columns log10(0.0) # header (NULL) #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/ceilfloat2.testcase0000664000175000017500000000021712163502133022643 00000000000000ceil-float2 :memory: SELECT ceil(3.1); # the SQL to run 1 # rows 1 # column ceil(3.1) # this is the header row 4.0 # this is really the result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/floornull.testcase0000664000175000017500000000031112163502133022626 00000000000000floor(null) # text input, expecting null output :memory: SELECT floor("some text"); # the SQL to run 1 # rows 1 # columns floor("some text") # this is the header row (NULL) # this is really the result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/sinpi.testcase0000664000175000017500000000022612163502133021741 00000000000000sin(pi) :memory: #use in-memory database SELECT 1 + sin(pi()); 1 # rows (not including the header row) 1 # columns 1 + sin(pi()) # header 1.0 #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/cos-text.testcase0000664000175000017500000000022612163502133022365 00000000000000cos-text :memory: #use in-memory database SELECT cos('test'); 1 # rows (not including the header row) 1 # columns cos('test') # header (NULL) #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/log10-100.0.testcase0000664000175000017500000000023112163502133022171 00000000000000log10(100.0) :memory: #use in-memory database SELECT log10(100.0); 1 # rows (not including the header row) 1 # columns log10(100.0) # header 2.0 #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/cos00.testcase0000664000175000017500000000021512163502133021541 00000000000000cos(0.0) :memory: #use in-memory database SELECT cos(0.0); 1 # rows (not including the header row) 1 # columns cos(0.0) # header 1.0 #result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/floorint.testcase0000664000175000017500000000030212163502133022446 00000000000000floor(integer) # integer input - this is just the name remember :memory: SELECT floor(3); # the SQL to run 1 # rows 1 # columns floor(3) # this is the header row 3.0 # this is really the result libspatialite-4.1.1/test/sql_stmt_mathsql_tests/sign10.testcase0000664000175000017500000000021112163502133021712 00000000000000sign10 :memory: SELECT sign(1.0); # the SQL to run 1 # rows 1 # column sign(1.0) # this is the header row 1.0 # this is really the resultlibspatialite-4.1.1/test/check_gpkgGetImageFormat_nonimage.c0000664000175000017500000000734512163502133021134 00000000000000/* check_gpkgGetImageFormat_nonimage.c - Test case for GeoPackage Extensions Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Brad Hards Portions created by the Initial Developer are Copyright (C) 2012 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #include "test_helpers.h" int main (int argc UNUSED, char *argv[] UNUSED) { sqlite3 *db_handle = NULL; char *sql_statement; sqlite3_stmt *stmt; int ret; void *cache = spatialite_alloc_connection(); ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); // For debugging / testing if required // ret = sqlite3_open_v2 ("check_gpkgGetImageFormat_nonimage.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); spatialite_init_ex(db_handle, cache, 0); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } sql_statement = "SELECT gpkgGetImageType(zeroblob(1000))"; ret = sqlite3_prepare_v2 (db_handle, sql_statement, strlen(sql_statement), &stmt, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "failed to prepare SQL statement: %i (%s)\n", ret, sqlite3_errmsg(db_handle)); return -30; } ret = sqlite3_step (stmt); if (ret != SQLITE_ROW) { fprintf(stderr, "unexpected return value for first step: %i\n", ret); return -31; } if (sqlite3_column_type (stmt, 0) != SQLITE_TEXT) { fprintf(stderr, "bad type for column 0: %i\n", sqlite3_column_type (stmt, 0)); return -32; } if (strcmp((const char*)sqlite3_column_text(stmt, 0), "unknown") != 0) { fprintf(stderr, "wrong image type: %s\n", sqlite3_column_text(stmt, 0)); return -33; } ret = sqlite3_step(stmt); if (ret != SQLITE_DONE) { fprintf(stderr, "unexpected return value for second step: %i\n", ret); return -34; } ret = sqlite3_finalize (stmt); ret = sqlite3_close (db_handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle)); return -200; } spatialite_cleanup_ex(cache); return 0; } libspatialite-4.1.1/test/check_virtualxpath.c0000664000175000017500000004120312163502133016275 00000000000000/* check_virtualxpath.c -- SpatiaLite Test Case Author: Sandro Furieri ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #define _GNU_SOURCE #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" #ifdef ENABLE_LIBXML2 /* only if LIBXML2 is supported */ #include #endif static int load_xml (void *cache, sqlite3 *db_handle, sqlite3_stmt *stmt, const char *path) { #ifdef ENABLE_LIBXML2 /* only if LIBXML2 is supported */ /* loading an XMLDocument into the DB */ FILE *fl; int sz = 0; int rd; unsigned char *xml = NULL; unsigned char *p_result = NULL; int len; int ret; /* loading the XMLDocument */ fl = fopen(path, "rb"); if (!fl) { fprintf (stderr, "cannot open \"%s\"\n", path); return 0; } if (fseek(fl, 0, SEEK_END) == 0) sz = ftell(fl); xml = malloc(sz); rewind(fl); rd = fread(xml, 1, sz, fl); if (rd != sz) { fprintf (stderr, "read error \"%s\"\n", path); return 0; } fclose(fl); /* parsing the XMLDocument */ gaiaXmlToBlob (cache, xml, rd, 1, NULL, &p_result, &len, NULL, NULL); if (p_result == NULL) { fprintf (stderr, "\"%s\": not a well-formed XML !!!\n", path); return 0; } free(xml); /* inserting into the DB */ sqlite3_reset(stmt); sqlite3_clear_bindings(stmt); sqlite3_bind_blob(stmt, 1, p_result, len, free); sqlite3_bind_text(stmt, 2, path, strlen(path), SQLITE_STATIC); ret = sqlite3_step(stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) return 1; fprintf (stderr, "INSERT error: %s\n", sqlite3_errmsg(db_handle)); return 0; #else return -1; /* no support */ #endif } int main (int argc, char *argv[]) { #ifdef ENABLE_LIBXML2 /* only if LIBXML2 is supported */ sqlite3 *db_handle = NULL; sqlite3_stmt *stmt; char *sql_statement; int ret; char *err_msg = NULL; char **results; int rows; int columns; void *cache = spatialite_alloc_connection(); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } spatialite_init_ex (db_handle, cache, 0); /* creating the base XML table */ sql_statement = "CREATE TABLE test (id INTEGER PRIMARY " "KEY AUTOINCREMENT, xml BLOB, name TEXT)"; ret = sqlite3_exec (db_handle, sql_statement, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CreateTable error: %s\n", err_msg); sqlite3_free (err_msg); return -2; } /* loading the XMLDocuments into the DB */ sql_statement = "INSERT INTO test (id, xml, name) VALUES (NULL, ?, ?)"; ret = sqlite3_prepare_v2 (db_handle, sql_statement, strlen (sql_statement), &stmt, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "PrepareStatement: error \"%s\"\n", sqlite3_errmsg (db_handle)); return -3; } if (!load_xml(cache, db_handle, stmt, "books.xml")) { fprintf (stderr, "Unable to load \"books.xml\""); return -4; } if (!load_xml(cache, db_handle, stmt, "opera.xml")) { fprintf (stderr, "Unable to load \"opera.xml\""); return -5; } if (!load_xml(cache, db_handle, stmt, "movies.xml")) { fprintf (stderr, "Unable to load \"movies.xml\""); return -6; } if (!load_xml(cache, db_handle, stmt, "books.xml")) { fprintf (stderr, "Unable to re-load yet again \"books.xml\""); return -7; } if (!load_xml(cache, db_handle, stmt, "inspire-data-example.xml")) { fprintf (stderr, "Unable to load \"books-bad.xml\""); return -8; } ret = sqlite3_finalize (stmt); /* checking for parse errors */ sql_statement = "SELECT XB_GetLastParseError()"; ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -9; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -10; } sqlite3_free_table (results); /* validating the XMLDocuments */ sql_statement = "UPDATE test SET xml = XB_SchemaValidate(xml, " "XB_GetInternalSchemaURI(XB_GetPayload(xml))) " "WHERE XB_GetInternalSchemaURI(XB_GetPayload(xml)) IS NOT NULL " "AND name <> 'inspire-data-example.xml'"; ret = sqlite3_exec (db_handle, sql_statement, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "SchemaValidation error: %s\n", err_msg); sqlite3_free (err_msg); return -11; } /* checking for validation errors */ sql_statement = "SELECT XB_GetLastValidateError()"; ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -12; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -13; } sqlite3_free_table (results); /* check #1: validity */ sql_statement = "SELECT Count(*) FROM test WHERE XB_IsValid(xml) = 1"; ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -14; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -15; } if (strcmp(results[1], "5") != 0) { fprintf (stderr, "Unexpected error: XB_IsValid() bad result: %s.\n", results[1]); return -16; } sqlite3_free_table (results); /* check #2: validated */ sql_statement = "SELECT Count(*) FROM test WHERE XB_IsSchemaValidated(xml) = 1"; ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -17; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -18; } if (strcmp(results[1], "4") != 0) { fprintf (stderr, "Unexpected error: XB_IsSchemaValidated() bad result: %s.\n", results[1]); return -19; } sqlite3_free_table (results); /* freeing the Schema cache */ sql_statement = "SELECT XB_CacheFlush()"; ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -20; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -21; } if (strcmp(results[1], "1") != 0) { fprintf (stderr, "Unexpected error: XB_CacheFlush() bad result: %s.\n", results[1]); return -22; } sqlite3_free_table (results); /* check #3: validated */ sql_statement = "SELECT XB_GetFileId(xml), XB_GetParentId(xml), XB_GetTitle(xml), " "XB_GetAbstract(xml), ST_Srid(XB_GetGeometry(xml)) " "FROM test WHERE XB_IsIsoMetadata(xml) = 1"; ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -23; } if ((rows != 1) || (columns != 5)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -24; } if (strcmp(results[5], "029097fd-2ef2-487c-a5ca-6ec7a3dbac53") != 0) { fprintf (stderr, "Unexpected error: XB_GetFileId() bad result: %s.\n", results[5]); return -25; } if (strcmp(results[6], "024027fd-3ef2-487c-a8ca-6ec8a3dfac57") != 0) { fprintf (stderr, "Unexpected error: XB_GetParentId() bad result: %s.\n", results[6]); return -26; } if (strcmp(results[7], "Image2000 Product 1 (nl2) Multispectral") != 0) { fprintf (stderr, "Unexpected error: XB_GetTitle() bad result: %s.\n", results[7]); return -27; } if (strcmp(results[8], "IMAGE2000 product 1 individual orthorectified scenes.") != 0) { fprintf (stderr, "Unexpected error: XB_GetAbstract() bad result: %s.\n", results[8]); return -28; } if (strcmp(results[9], "4326") != 0) { fprintf (stderr, "Unexpected error: ST_Srid(XB_Geometry()) bad result: %s.\n", results[9]); return -29; } sqlite3_free_table (results); /* creating the VirtualXPath table */ sql_statement = "CREATE VIRTUAL TABLE test_xp USING VirtualXPath ('test', 'xml')"; ret = sqlite3_exec (db_handle, sql_statement, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CreateTable error: %s\n", err_msg); sqlite3_free (err_msg); return -30; } /* test XPAth expression #1 */ sql_statement = "SELECT Count(*) FROM test_xp WHERE xpath_expr = '/*'"; ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -31; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -32; } if (strcmp(results[1], "5") != 0) { fprintf (stderr, "Unexpected error: XPath #1 bad result: %s.\n", results[1]); return -33; } sqlite3_free_table (results); /* test XPAth expression #2 */ sql_statement = "SELECT DISTINCT a.value, b.name FROM test_xp AS a " "JOIN test AS b ON (b.id = a.pkid) " "WHERE a.xpath_expr = '//author[@lastName=\"Conrad\"]/title/text()'"; ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -34; } if ((rows != 3) || (columns != 2)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -35; } if (strcmp(results[0], "value") != 0) { fprintf (stderr, "Unexpected error: XPath #2 bad result: %s.\n", results[0]); return -36; } if (strcmp(results[1], "name") != 0) { fprintf (stderr, "Unexpected error: XPath #2 bad result: %s.\n", results[1]); return -37; } if (strcmp(results[2], "Lord Jim") != 0) { fprintf (stderr, "Unexpected error: XPath #2 bad result: %s.\n", results[2]); return -38; } if (strcmp(results[3], "books.xml") != 0) { fprintf (stderr, "Unexpected error: XPath #2 bad result: %s.\n", results[3]); return -39; } if (strcmp(results[4], "The Secret Agent") != 0) { fprintf (stderr, "Unexpected error: XPath #2 bad result: %s.\n", results[4]); return -40; } if (strcmp(results[6], "Heart of Darkness") != 0) { fprintf (stderr, "Unexpected error: XPath #2 bad result: %s.\n", results[6]); return -41; } sqlite3_free_table (results); /* test XPAth expression #3 */ sql_statement = "SELECT value FROM test_xp WHERE xpath_expr = " "'//dflt:title[text()=\"Pulp Fiction\"]/../@lastName'"; ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -42; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -43; } if (strcmp(results[1], "Tarantino") != 0) { fprintf (stderr, "Unexpected error: XPath #3 bad result: %s.\n", results[1]); return -44; } sqlite3_free_table (results); /* test XPAth expression #4 */ sql_statement = "SELECT node FROM test_xp WHERE pkid = 2 AND xpath_expr = '/*'"; ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -45; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -46; } if (strcmp(results[1], "op:Opera") != 0) { fprintf (stderr, "Unexpected error: XPath #4 bad result: %s.\n", results[1]); return -47; } sqlite3_free_table (results); /* test XPAth expression #5 */ sql_statement = "SELECT ROWID, pkid, sub, parent, attribute FROM test_xp " "WHERE pkid > 1 AND pkid < 3 AND xpath_expr = '/*'"; ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -48; } if ((rows != 1) || (columns != 5)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -49; } if (strcmp(results[5], "2") != 0) { fprintf (stderr, "Unexpected error: XPath #5 bad result: %s.\n", results[5]); return -50; } if (strcmp(results[6], "2") != 0) { fprintf (stderr, "Unexpected error: XPath #5 bad result: %s.\n", results[6]); return -51; } if (strcmp(results[7], "0") != 0) { fprintf (stderr, "Unexpected error: XPath #5 bad result: %s.\n", results[7]); return -52; } if (results[8] != NULL) { fprintf (stderr, "Unexpected error: XPath #5 bad result: %s.\n", results[8]); return -53; } if (results[9] != NULL) { fprintf (stderr, "Unexpected error: XPath #5 bad result: %s.\n", results[9]); return -54; } sqlite3_free_table (results); /* test XPAth expression #6 */ sql_statement = "SELECT parent, attribute FROM test_xp " "WHERE pkid >= 1 AND pkid <= 3 AND " "xpath_expr = '//op:author[@lastName=\"Rossini\"]/@firstName'"; ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -55; } if ((rows != 1) || (columns != 2)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -56; } if (strcmp(results[2], "op:Opera") != 0) { fprintf (stderr, "Unexpected error: XPath #6 bad result: %s.\n", results[2]); return -57; } if (strcmp(results[3], "firstName") != 0) { fprintf (stderr, "Unexpected error: XPath #6 bad result: %s.\n", results[3]); return -58; } sqlite3_free_table (results); /* dropping the VirtualXPathL table */ sql_statement = "DROP TABLE test_xp"; ret = sqlite3_exec (db_handle, sql_statement, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Drop VirtualXPath Table error: %s\n", err_msg); sqlite3_free (err_msg); return -59; } sqlite3_close (db_handle); spatialite_cleanup_ex(cache); xmlCleanupParser(); #endif /* end LIBXML2 conditional */ return 0; } libspatialite-4.1.1/test/check_geoscvt_fncts.c0000664000175000017500000000612712163502133016417 00000000000000/* check_geoscvt_fncts.c -- SpatiaLite Test Case This does "boundary conditions" and error checks for gg_geoscvt functions that are hard to test with SQL. Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" #include "spatialite/gaiageo.h" int main (int argc, char *argv[]) { #ifndef OMIT_GEOS /* only if GEOS is supported */ gaiaGeomCollPtr result; void *resultVoid; int returnValue = 0; /* Common setup */ gaiaGeomCollPtr emptyGeometry = gaiaAllocGeomColl(); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ /* Tests start here */ /* null input test */ result = gaiaFromGeos_XY ( (const void*) NULL ); if (result != NULL) { fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -1; goto exit; } resultVoid = gaiaToGeos ((gaiaGeomCollPtr)NULL); if (resultVoid != NULL) { fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -2; goto exit; } /* unknown type geometry collection */ resultVoid = gaiaToGeos ( emptyGeometry ); if (resultVoid != NULL) { fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -3; goto exit; } /* Cleanup and exit */ exit: gaiaFreeGeomColl (emptyGeometry); return returnValue; #endif /* end GEOS conditional */ return 0; } libspatialite-4.1.1/test/check_gpkgGetImageFormat_png.c0000664000175000017500000001065312163502133020117 00000000000000/* check_gpkgGetImageFormat_png.c - Test case for GeoPackage Extensions Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Brad Hards Portions created by the Initial Developer are Copyright (C) 2012 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #include "test_helpers.h" int main (int argc UNUSED, char *argv[] UNUSED) { sqlite3 *db_handle = NULL; char *sql_statement; sqlite3_stmt *stmt; int ret; void *cache = spatialite_alloc_connection(); char *old_SPATIALITE_SECURITY_ENV = NULL; #ifdef _WIN32 char *env; #endif /* not WIN32 */ old_SPATIALITE_SECURITY_ENV = getenv("SPATIALITE_SECURITY"); #ifdef _WIN32 putenv("SPATIALITE_SECURITY=relaxed"); #else /* not WIN32 */ setenv("SPATIALITE_SECURITY", "relaxed", 1); #endif ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); // For debugging / testing if required // ret = sqlite3_open_v2 ("check_gpkgGetImageFormat_png.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); spatialite_init_ex(db_handle, cache, 0); if (old_SPATIALITE_SECURITY_ENV) { #ifdef _WIN32 env = sqlite3_mprintf("SPATIALITE_SECURITY=%s", old_SPATIALITE_SECURITY_ENV); putenv(env); sqlite3_free(env); #else /* not WIN32 */ setenv("SPATIALITE_SECURITY", old_SPATIALITE_SECURITY_ENV, 1); #endif } else { #ifdef _WIN32 putenv("SPATIALITE_SECURITY="); #else /* not WIN32 */ unsetenv("SPATIALITE_SECURITY"); #endif } if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } sql_statement = "SELECT gpkgGetImageType(BlobFromFile(\"empty.png\"))"; ret = sqlite3_prepare_v2 (db_handle, sql_statement, strlen(sql_statement), &stmt, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "failed to prepare SQL statement: %i (%s)\n", ret, sqlite3_errmsg(db_handle)); return -30; } ret = sqlite3_step (stmt); if (ret != SQLITE_ROW) { fprintf(stderr, "unexpected return value for first step: %i\n", ret); return -31; } if (sqlite3_column_type (stmt, 0) != SQLITE_TEXT) { fprintf(stderr, "bad type for column 0: %i\n", sqlite3_column_type (stmt, 0)); return -32; } if (strcmp((const char*)sqlite3_column_text(stmt, 0), "png") != 0) { fprintf(stderr, "wrong image type: %s\n", sqlite3_column_text(stmt, 0)); return -33; } ret = sqlite3_step(stmt); if (ret != SQLITE_DONE) { fprintf(stderr, "unexpected return value for second step: %i\n", ret); return -34; } ret = sqlite3_finalize (stmt); ret = sqlite3_close (db_handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle)); return -200; } spatialite_cleanup_ex(cache); return 0; } libspatialite-4.1.1/test/check_gaia_utf8.c0000664000175000017500000000732612163502133015421 00000000000000/* check_gaia_utf8.c -- SpatiaLite Test Case Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #define _GNU_SOURCE #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" #include "spatialite/gaiaaux.h" #ifdef _WIN32 #include "asprintf4win.h" #endif int main (int argc, char *argv[]) { #ifndef OMIT_ICONV /* only if ICONV is supported */ void * converter; char *test_str1; int err; if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ asprintf(&test_str1, "Hello World"); gaiaConvertCharset(&test_str1, "ASCII", "UTF-8"); if (strcmp(test_str1, "Hello World") != 0) { fprintf(stderr, "bad ASCII to UTF-8 conversion: %s\n", test_str1); free(test_str1); return -1; } free(test_str1); #if 0 /* TODO: this will cause a buffer overflow */ asprintf(&test_str1, "Hello World"); gaiaConvertCharset(&test_str1, "ASCII", "UTF-16LE"); if (memcmp(test_str1, "H\0e\0l\0l\0o\0 \0W\0o\0r\0l\0d\0\0\0", 24) != 0) { fprintf(stderr, "bad ASCII to UTF-16LE conversion\n"); free(test_str1); return -2; } free(test_str1); #endif converter = gaiaCreateUTF8Converter ("CP1252"); if (! converter) { fprintf(stderr, "null UTF8 converter\n"); return -3; } test_str1 = gaiaConvertToUTF8(converter, "Hello world", strlen("Hello world"), &err); if (memcmp("Hello world", test_str1, strlen("Hello world") + 1) != 0) { fprintf(stderr, "bad conversion to UTF8: %s\n", test_str1); free(test_str1); return -4; } free(test_str1); gaiaFreeUTF8Converter (converter); converter = NULL; /* test null converter */ gaiaFreeUTF8Converter (converter); test_str1 = gaiaConvertToUTF8(converter, "Hello world", strlen("Hello world"), &err); if ((test_str1 != NULL) || (err != 1)) { fprintf(stderr, "unexpected null converter result: %s, %i\n", test_str1, err); return -5; } /* there is no sane way to test this automatically */ printf("Local codeset: %s\n", gaiaGetLocaleCharset() ); #endif /* end ICONV conditional */ return 0; } libspatialite-4.1.1/test/tile110.jpeg0000664000175000017500000002316712163502134014301 00000000000000JFIFC  !"$"$C" )i2gFcHƐ3@i:#139 @ f41&8 `n2,]L` & 0 jJ1#` B2@U%IL0  :nΆ1bb gcOsAN7(% cZ%5X6W40Ue3ݬT]pf.{!G$p{V)92*w*0~|ݳǙ>R&w(LJ֮2SO:{nY[\kfe̬( ƋCfV12nxPt (=wa[(YlVdfx%sRXUn^w*FO 4;ϥTiڿ6C^QW@p.fMR;U5X2F25-dec)Sp$XfBU\Vs\G;ކ:&Ѧmq%חF nӠGM-޸+-F<%yO/NjIσ>l juwfN e3š^{gߴPLgQ>GMi8%rYmo5U}^c+eXMF~\)Dhi“WoN+;9jͷX'*js*WJg=c ?Ǐxq `P0@uS\YnO53[8zR~cbȃ ShSkJAn\3pePQk돩@z Eaj~cSҧeLpxI2zu)̚|{̟_q#fD|wfoUa}N c䞐tZ 4LPb R &ehR8 )ӖCl"6vĒN!vU`Tc \D,g(?|ٳ(mJ э,Aܫ'/;Ò.A?}SC P7+UVvLlV@SjUfl> #]k'! 1A"0aBPQR?Gjqޙ;:{_D6z|UXHs7I[P:hYhl 21M5Dc7{XXٙ|JDHMQ#$;#FM? "1%~ZdV>6^Fg!1ʼsS#~!l:'.{_騦LDXY o=Fα2S)wd)ёjkO)X_2*&*! "1A0Q#2BPR?/ >^An#+ vYVBWnSdndsd 4\6\Z\}+$ږBjաˆQJs>kl.b/PA!YܘD)%t߷p‰On .uJ0  miy,RcqWjXP/Z0m9d`o(M,BsBr?kyt@|'5nKbZ{Z-LJ`咚vVJ/˒6) f6[;NC=Y3Fglj8? 9ilBLդ',\RI 4\ء!93݅t.!1 3"02Aa@Q`qP?z-׭׭׭׭׭׭׭׭׭׭׭׭׭"zzz-׭׭׭׭׭׭"-׭׭׭t$:qL TOղ3Jj|6Y]e|ׅO?rXBouMAR| cTB@o-GR lտFTQ|=,衢BPg1_BOmB [_D] *.h]c' THRhFt844?FZ4K V*#:)1#ƺ.PW9R0Uq:;LʔsY@VWYE 1WML!˗M:0VUU !e'T5xjPڣ 0 bL!拹L+c 2: єG&*9t^7XiG *2MpR0 櫬kMGe+{ ;b.Z.[#(8He&rMOh%rpgNs\tL[_xB"fιќxY* ,U~P*+GF ;-YCj*rK*!1AQaq 0@P?!~S~ ?=OiK~i~IOܞ'~{O={O=Oi'f}i~{@>Oo!~ jmVs2u9"Bؒp[me}.l}:lqc9C5Jjadg_\oO+6Mw D=U, **T QT`,* n=>b^c6]3|ZUPJ(,O- /.Z#8놺g wKw +1Cr‰mS:PtTTNf*zlwKZ32Yp&S vzAEtqlJЃ0rCaOyڛ?׫(;˗X,,p0oʒ3IzDEgO^rl8yu㥵3Q0øyxK yg9+Ky1ϬacX 4ᗮUz0!x*GJ]sv) ZfYh2gL{t4yie3%&^ ˕ -yWJi*-=$ۛ99j[G]%ǙXKvL=9MYEl{&2ab Zq4&sr'<*9nT52Lʇb̧, 0Qȗ(\wdxZlDqYl];oXfQDRpoނj黯X/ LRlUyc\tA37pd]KHAIrB3>A8lzOmWfPƨ)(n aIBsq*XFY3,U*Đq ICcx!=ƨM Vۧ10o㣓^.Qm0X`u!nsxC\EF%nc;,a>좕Kw[^fMVC֣ذV$Lu\EXwAjYN)1Q8%F_/hQl*[ڢҨ|XaeYJ3Pj%0cgXßFf̂nUa8'-;D 0jtaw}̷w&*]j :9b][eExߥr\F*qc'jY*EYdco.v+.Rܴ܇vGR0,s)V`7U)n2̦bR RzKԣ jmUSSuRTfSuRT .CH.g:a5rAfƮj+58}AMx0#*E Cs0梼CQBaX2mC\iѵj6m33|PZ2 ÎiEnBq2FbePkqW#p1fjY["rn-ae/8?& j(PF-ʵUclHQoG2 w7)NNE􈎜ʌ'!PܧyfeI!LFr*1+y.㢗tqaJLVЏgƣb()rVLOK~HqZ%m暺4 /3TW(40S0VP+w, ΍}s#X#Q!y\=1ChLn%!RBfd7g1p;b.?" U1X*Ӗqu,XE bUwUG)t=5f0xwQ1^ຏ3y.%Ʋ1lBS֡}fEZ)% +Q)ɹq)"Oq|ʐKoGlE逃/p0-V@ZXy{pFoQ_a-42u{0 cjW5uh1*l, eDI`/8N)wË2D4,yECAϸ (tFWIGs&LE@D9@;F* ː_R4srs2gurZS$s my[d(ng/sQ2b,ڶq$lkQ[:|MaPfצݍ|\yѨ׸i3p%Friȶ߬D- 4f)sVV5TM5Za)6.X45tL1(moaHrf%a CRpvQ5iDeOaeHp@!WEj2"::6MpuP"* ] pb).F cR q-uAWC -Tva#ؠP%W.j,­Dz &-lnqAa)6]a#-]D6qJ)z=V[2 SeGpiʶ|Vj+ZԻ{U nQ\bJ> r؎,r-@  מQʶOfŢ]]Ys~i)ֿr 5XciR%ˈв/ `p LvGVk<-`$1CNJ'0a6GCcjn%pW w鍵uގ E4="|X$jL^"BX@m}*뺖[Vħֱ3y+lƁաGͶ^N&U8 d!at.Q-=G Y4{ؚ ,6AmkBiul. f/0)tX% 1[e6vkY};0 eJ7l%Rg%&&tL( ZDGE[fegVJjWE-{M][t37l67q gr"nyQq %z;⡲RS_iqy b0_!dni\+\0Ow )k˒a1PEۅIz1͖Xpwq \_S~jɌکX긧;ުF A!a{5ʅ%ʼni*db|`&Լ]ON=3:g`_IZ }K/ˈKπ K ռjoȠ ^"gܰ5JTUR5LZB%bXEu;7pI[l%Կ1D;m\Ժɪڽ*4gyYY}C}G|_RWzK^Wb"W\N3PvFKP<FҝCK k6_Q;[ĠYn"V+x6Rolibspatialite-4.1.1/test/check_extension.c0000664000175000017500000001336612163502133015567 00000000000000/* check_extension.c -- SpatiaLite Test Case Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #define _GNU_SOURCE #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" #ifdef _WIN32 #include "asprintf4win.h" #endif int main (int argc, char *argv[]) { sqlite3 *db_handle = NULL; char *sql_statement; int ret; char *err_msg = NULL; char **results; int rows; int columns; if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } sqlite3_enable_load_extension (db_handle, 1); #if defined(_WIN32) || defined(__APPLE__) #ifdef __APPLE__ /* Mac Os X */ asprintf(&sql_statement, "SELECT load_extension('libspatialite.dylib')"); #else /* Windows */ asprintf(&sql_statement, "SELECT load_extension('libspatialite.dll')"); #endif #else /* neither Mac nor Windows: may be Linux or Unix */ asprintf(&sql_statement, "SELECT load_extension('libspatialite.so')"); #endif ret = sqlite3_exec (db_handle, sql_statement, NULL, NULL, &err_msg); free(sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "load_extension() error: %s\n", err_msg); sqlite3_free (err_msg); return -2; } asprintf(&sql_statement, "SELECT spatialite_version()"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free(sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -10; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: spatialite_version() bad result: %i/%i.\n", rows, columns); return -11; } if (strcmp(results[1], VERSION) != 0) { fprintf (stderr, "Unexpected error: spatialite_version() bad result: %s.\n", results[1]); return -12; } sqlite3_free_table (results); asprintf(&sql_statement, "SELECT geos_version()"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free(sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error2: %s\n", err_msg); sqlite3_free (err_msg); return -13; } #ifndef OMIT_GEOS /* only if GEOS is supported */ if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: geos_version() bad result: %i/%i.\n", rows, columns); return -14; } /* we tolerate any string here, because versions always change */ if (strlen(results[1]) == 0) { fprintf (stderr, "Unexpected error: geos_version() bad result.\n"); return -15; } sqlite3_free_table (results); #else /* GEOS is not supported */ /* in this case we expect a NULL */ if (results[1] != NULL) { fprintf (stderr, "Unexpected error: geos_version() bad result.\n"); return -15; } #endif /* end GEOS conditional */ asprintf(&sql_statement, "SELECT proj4_version()"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free(sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error3: %s\n", err_msg); sqlite3_free (err_msg); return -14; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: proj4_version() bad result: %i/%i.\n", rows, columns); return -14; } #ifndef OMIT_PROJ /* only if PROJ is supported */ /* we tolerate any string here, because versions always change */ if (strlen(results[1]) == 0) { fprintf (stderr, "Unexpected error: proj4_version() bad result.\n"); return -15; } #else /* PROJ is not supported */ /* in this case we expect a NULL */ if (results[1] != NULL) { fprintf (stderr, "Unexpected error: proj4_version() bad result.\n"); return -15; } #endif /* end PROJ conditional */ sqlite3_free_table (results); sqlite3_close (db_handle); spatialite_cleanup(); return 0; } libspatialite-4.1.1/test/shape_utf8_2.c0000664000175000017500000001413512163502133014700 00000000000000/* shape_utf8_2.c -- SpatiaLite Test Case Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Ahmadou Dicko Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" int main (int argc, char *argv[]) { #ifndef OMIT_ICONV /* only if ICONV is supported */ int ret; sqlite3 *handle; char *kmlname = __FILE__"test.kml"; char *geojsonname = __FILE__"test.geojson"; char *err_msg = NULL; int row_count; void *cache = spatialite_alloc_connection(); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); sqlite3_close(handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -2; } ret = load_shapefile (handle, "./shp/taiwan/hystoric", "hystoric", "UTF-8", 4326, "col1", 1, 0, 1, 0, &row_count, err_msg); if (!ret) { fprintf (stderr, "load_shapefile() error for shp/taiwan/hystoric: %s\n", err_msg); sqlite3_close(handle); return -3; } if (row_count != 15) { fprintf (stderr, "unexpected row count for shp/taiwan/hystoric: %i\n", row_count); sqlite3_close(handle); return -4; } ret = load_shapefile (handle, "./shp/taiwan/leisure", "leisure", "UTF-8", 4326, "col1", 1, 0, 1, 0, &row_count, err_msg); if (!ret) { fprintf (stderr, "load_shapefile() error for shp/taiwan/leisure: %s\n", err_msg); sqlite3_close(handle); return -5; } if (row_count != 5) { fprintf (stderr, "unexpected row count for shp/taiwan/leisure: %i\n", row_count); sqlite3_close(handle); return -6; } ret = load_shapefile (handle, "./shp/taiwan/route", "route", "UTF-8", 4326, "col1", 1, 0, 1, 0, &row_count, err_msg); if (!ret) { fprintf (stderr, "load_shapefile() error for shp/taiwan/route: %s\n", err_msg); sqlite3_close(handle); return -7; } if (row_count != 4) { fprintf (stderr, "unexpected row count for shp/taiwan/route: %i\n", row_count); sqlite3_close(handle); return -8; } #ifndef OMIT_PROJ /* only if PROJ is supported */ if (is_kml_constant (handle, "route", "name")) { fprintf(stderr, "unexpected result for is_kml_constant (1)\n"); return -9; } if (! is_kml_constant (handle, "route", "foo")) { fprintf(stderr, "unexpected result for is_kml_constant (2)\n"); return -10; } ret = dump_kml (handle, "route", "col1", kmlname, NULL, NULL, 10); if (!ret) { fprintf (stderr, "dump_kml (1) error for shp/taiwan/route: %s\n", err_msg); sqlite3_close(handle); return -11; } unlink(kmlname); ret = dump_kml (handle, "route", "col1", kmlname, "name", NULL, 10); if (!ret) { fprintf (stderr, "dump_kml (2) error for shp/taiwan/route: %s\n", err_msg); sqlite3_close(handle); return -12; } unlink(kmlname); ret = dump_kml (handle, "route", "col1", kmlname, "theta", NULL, 10); if (!ret) { fprintf (stderr, "dump_kml (3) error for shp/taiwan/route: %s\n", err_msg); sqlite3_close(handle); return -13; } unlink(kmlname); ret = dump_kml (handle, "route", "col1", kmlname, "name", "sub_type", 10); if (!ret) { fprintf (stderr, "dump_kml (4) error for shp/taiwan/route: %s\n", err_msg); sqlite3_close(handle); return -14; } unlink(kmlname); ret = dump_kml (handle, "route", "col1", kmlname, "theta", "beta", 10); if (!ret) { fprintf (stderr, "dump_kml (5) error for shp/taiwan/route: %s\n", err_msg); sqlite3_close(handle); return -15; } unlink(kmlname); #endif /* end PROJ conditional */ ret = dump_geojson(handle, "route", "col1", geojsonname, 10, 5); if (!ret) { fprintf (stderr, "dump_geojson() error for shp/taiwan/route: %s\n", err_msg); sqlite3_close(handle); return -16; } unlink(geojsonname); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -17; } spatialite_cleanup_ex (cache); #endif /* end ICONV conditional */ return 0; } libspatialite-4.1.1/test/check_recover_geom.c0000664000175000017500000014015212163502133016221 00000000000000/* check_recover_geom.c -- SpatiaLite Test Case Author: Sandro Furieri ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include "sqlite3.h" #include "spatialite.h" int main (int argc, char *argv[]) { int ret; sqlite3 *handle; char *err_msg = NULL; const char *sql; char **results; int rows; int columns; void *cache = spatialite_alloc_connection(); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); sqlite3_close(handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -2; } /* creating a Point XY table */ sql = "CREATE TABLE pt_xy (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -3; } /* creating a Point XYZ table */ sql = "CREATE TABLE pt_xyz (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -4; } /* creating a Point XYM table */ sql = "CREATE TABLE pt_xym (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -5; } /* creating a Point XYZM table */ sql = "CREATE TABLE pt_xyzm (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -6; } /* creating a Linestring XY table */ sql = "CREATE TABLE ln_xy (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -7; } /* creating a Linestring XYZ table */ sql = "CREATE TABLE ln_xyz (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -8; } /* creating a Linestring XYM table */ sql = "CREATE TABLE ln_xym (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -9; } /* creating a Linestring XYZM table */ sql = "CREATE TABLE ln_xyzm (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -10; } /* creating a Polygon XY table */ sql = "CREATE TABLE pg_xy (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -11; } /* creating a Polygon XYZ table */ sql = "CREATE TABLE pg_xyz (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -12; } /* creating a Polygon XYM table */ sql = "CREATE TABLE pg_xym (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -13; } /* creating a Polygon XYZM table */ sql = "CREATE TABLE pg_xyzm (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -14; } /* creating a MultiPoint XY table */ sql = "CREATE TABLE mpt_xy (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -15; } /* creating a MultiPoint XYZ table */ sql = "CREATE TABLE mpt_XYZ (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -16; } /* creating a MultiPoint XYM table */ sql = "CREATE TABLE mpt_xym (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -17; } /* creating a MultiPoint XYZM table */ sql = "CREATE TABLE mpt_xyzm (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -18; } /* creating a MultiLinestring XY table */ sql = "CREATE TABLE mln_xy (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -19; } /* creating a MultiLinestring XYZ table */ sql = "CREATE TABLE mln_xyz (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -20; } /* creating a MultiLinestring XYM table */ sql = "CREATE TABLE mln_xym (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -21; } /* creating a MultiLinestring XYZM table */ sql = "CREATE TABLE mln_xyzm (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -22; } /* creating a MultiPolygon XY table */ sql = "CREATE TABLE mpg_xy (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -23; } /* creating a MultiPolygon XYZ table */ sql = "CREATE TABLE mpg_xyz (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -24; } /* creating a MultiPolygon XYM table */ sql = "CREATE TABLE mpg_xym (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -25; } /* creating a MultiPolygon XYZM table */ sql = "CREATE TABLE mpg_xyzm (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -26; } /* creating a GeometryCollection XY table */ sql = "CREATE TABLE gcoll_xy (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -27; } /* creating a GeometryCollection XYZ table */ sql = "CREATE TABLE gcoll_xyz (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -28; } /* creating a GeometryCollection XYM table */ sql = "CREATE TABLE gcoll_xym (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -29; } /* creating a GeometryCollection XYZM table */ sql = "CREATE TABLE gcoll_xyzm (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -30; } /* creating a Geometry XY table */ sql = "CREATE TABLE geom_xy (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -31; } /* creating a Geometry XYZ table */ sql = "CREATE TABLE geom_xyz (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -32; } /* creating a Geometry XYM table */ sql = "CREATE TABLE geom_xym (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -33; } /* creating a Geometry XYZM table */ sql = "CREATE TABLE geom_xyzm (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -34; } /* Inserting into pt_xy */ sql = "INSERT INTO pt_xy (id, g) VALUES (1, GeomFromText('POINT(1 2)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -35; } /* Inserting into pt_xyz */ sql = "INSERT INTO pt_xyz (id, g) VALUES (1, GeomFromText('POINTZ(1 2 3)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -36; } /* Inserting into pt_xym */ sql = "INSERT INTO pt_xym (id, g) VALUES (1, GeomFromText('POINTM(1 2 10)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -37; } /* Inserting into pt_xyzm */ sql = "INSERT INTO pt_xyzm (id, g) VALUES (1, GeomFromText('POINTZM(1 2 3 10)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -38; } /* Inserting into ln_xy */ sql = "INSERT INTO ln_xy (id, g) VALUES (1, GeomFromText('LINESTRING(1 2, 4 5)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -39; } /* Inserting into ln_xyz */ sql = "INSERT INTO ln_xyz (id, g) VALUES (1, GeomFromText('LINESTRINGZ(1 2 3, 4 5 6)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -40; } /* Inserting into ln_xym */ sql = "INSERT INTO ln_xym (id, g) VALUES (1, GeomFromText('LINESTRINGM(1 2 10, 4 5 11)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -41; } /* Inserting into ln_xyzm */ sql = "INSERT INTO ln_xyzm (id, g) VALUES (2, GeomFromText('LINESTRINGZM(1 2 3 10, 4 5 6 11)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -42; } /* Inserting into pg_xy */ sql = "INSERT INTO pg_xy (id, g) VALUES (1, GeomFromText('POLYGON((10 10, 15 10, 15 15, 10 15, 10 10), (11 11, 12 11, 1 12, 11 12, 11 11))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -43; } /* Inserting into pg_xyz */ sql = "INSERT INTO pg_xyz (id, g) VALUES (1, GeomFromText('POLYGONZ((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 1 12 102, 11 12 103, 11 11 100))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -44; } /* Inserting into pg_xym */ sql = "INSERT INTO pg_xym (id, g) VALUES (1, GeomFromText('POLYGONM((10 10 10, 15 10 11, 15 15 12, 10 15 13, 10 10 10), (11 11 10, 12 11 11, 1 12 12, 11 12 13, 11 11 10))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -45; } /* Inserting into pg_xyzm */ sql = "INSERT INTO pg_xyzm (id, g) VALUES (1, GeomFromText('POLYGONZM((10 10 100 10, 15 10 101 11, 15 15 102 12, 10 15 103 13, 10 10 100 10), (11 11 100 10, 12 11 101 11, 1 12 102 12, 11 12 103 13, 11 11 100 10))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -46; } /* Inserting into mpt_xy */ sql = "INSERT INTO mpt_xy (id, g) VALUES (1, GeomFromText('MULTIPOINT(1 2, 4 5)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -47; } /* Inserting into mpt_xyz */ sql = "INSERT INTO mpt_xyz (id, g) VALUES (1, GeomFromText('MULTIPOINTZ(1 2 3, 4 5 6)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -48; } /* Inserting into mpt_xym */ sql = "INSERT INTO mpt_xym (id, g) VALUES (1, GeomFromText('MULTIPOINTM(1 2 10, 4 5 11)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -49; } /* Inserting into mpt_xyzm */ sql = "INSERT INTO mpt_xyzm (id, g) VALUES (1, GeomFromText('MULTIPOINTZM(1 2 3 10, 4 5 6 10)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -50; } /* Inserting into mln_xy */ sql = "INSERT INTO mln_xy (id, g) VALUES (1, GeomFromText('MULTILINESTRING((1 2, 4 5), (7 8, 10 11))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -51; } /* Inserting into mln_xyz */ sql = "INSERT INTO mln_xyz (id, g) VALUES (1, GeomFromText('MULTILINESTRINGZ((1 2 3, 4 5 6), (7 8 9, 10 11 12))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -52; } /* Inserting into mln_xym */ sql = "INSERT INTO mln_xym (id, g) VALUES (1, GeomFromText('MULTILINESTRINGM((1 2 10, 4 5 11), (7 8 12, 10 11 13))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -53; } /* Inserting into mln_xyzm */ sql = "INSERT INTO mln_xyzm (id, g) VALUES (1, GeomFromText('MULTILINESTRINGZM((1 2 3 10, 4 5 6 11), (7 8 9 12, 10 11 12 13))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -54; } /* Inserting into mpg_xy */ sql = "INSERT INTO mpg_xy (id, g) VALUES (1, GeomFromText('MULTIPOLYGON(((10 10, 15 10, 15 15, 10 15, 10 10), (11 11, 12 11, 1 12, 11 12, 11 11)), ((0 0, 1 0, 1 1, 0 1, 0 0)))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -55; } /* Inserting into mpg_xyz */ sql = "INSERT INTO mpg_xyz (id, g) VALUES (1, GeomFromText('MULTIPOLYGONZ(((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 1 12 102, 11 12 103, 11 11 100)), ((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -56; } /* Inserting into mpg_xym */ sql = "INSERT INTO mpg_xym (id, g) VALUES (1, GeomFromText('MULTIPOLYGONM(((10 10 11, 15 10 12, 15 15 13, 10 15 14, 10 10 11), (11 11 5, 12 11 6, 12 12 7, 11 12 8, 11 11 5)), ((0 0 11, 1 0 12, 1 1 13, 0 1 14, 0 0 11)))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -57; } /* Inserting into mpg_xyzm */ sql = "INSERT INTO mpg_xyzm (id, g) VALUES (1, GeomFromText('MULTIPOLYGONZM(((10 10 100 11, 15 10 101 12, 15 15 102 13, 10 15 103 14, 10 10 100 11), (11 11 100 5, 12 11 101 6, 1 12 102 7, 11 12 103 8, 11 11 100 5)), ((0 0 1 11, 1 0 2 12, 1 1 3 13, 0 1 4 14, 0 0 1 11)))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -58; } /* Inserting into gcoll_xy */ sql = "INSERT INTO gcoll_xy (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTION(POINT(10 10), LINESTRING(5 5, 6 6), POLYGON((0 0, 1 0, 1 1, 0 1, 0 0)))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -59; } /* Inserting into gcoll_xyz */ sql = "INSERT INTO gcoll_xyz (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTIONZ(POINTZ(10 10 100), LINESTRINGZ(5 5 10, 6 6 11), POLYGONZ((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -60; } /* Inserting into gcoll_xym */ sql = "INSERT INTO gcoll_xym (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTIONM(POINTM(10 10 100), LINESTRINGM(5 5 10, 6 6 11), POLYGONM((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -61; } /* Inserting into gcoll_xyzm */ sql = "INSERT INTO gcoll_xyzm (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTIONZM(POINTZM(10 10 100 11), LINESTRINGZM(5 5 10 11, 6 6 11 12), POLYGONZM((0 0 1 10, 1 0 2 11, 1 1 3 12, 0 1 4 13, 0 0 1 10)))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -62; } /* Inserting into geom_xy */ sql = "INSERT INTO geom_xy (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTION(POINT(10 10), LINESTRING(5 5, 6 6), POLYGON((0 0, 1 0, 1 1, 0 1, 0 0)))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -63; } sql = "INSERT INTO geom_xy (id, g) VALUES (2, GeomFromText('POINT(10 10)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -64; } /* Inserting into geom_xyz */ sql = "INSERT INTO geom_xyz (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTIONZ(POINTZ(10 10 100), LINESTRINGZ(5 5 10, 6 6 11), POLYGONZ((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -65; } sql = "INSERT INTO geom_xyz (id, g) VALUES (2, GeomFromText('POINTZ(10 10 100)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -66; } /* Inserting into geom_xym */ sql = "INSERT INTO geom_xym (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTIONM(POINTM(10 10 100), LINESTRINGM(5 5 10, 6 6 11), POLYGONM((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -67; } sql = "INSERT INTO geom_xym (id, g) VALUES (2, GeomFromText('POINTM(10 10 100)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -68; } /* Inserting into geom_xyzm */ sql = "INSERT INTO geom_xyzm (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTIONZM(POINTZM(10 10 100 11), LINESTRINGZM(5 5 10 11, 6 6 11 12), POLYGONZM((0 0 1 10, 1 0 2 11, 1 1 3 12, 0 1 4 13, 0 0 1 10)))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -69; } sql = "INSERT INTO geom_xyzm (id, g) VALUES (2, GeomFromText('POINTZM(10 10 100 11)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -70; } /* recovering pt_xy */ sql = "SELECT RecoverGeometryColumn('pt_xy', 'g', 4326, 'POINT', 2);"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -71; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -72; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -73; } if (strcmp(results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -74; } sqlite3_free_table (results); /* recovering pt_xyz */ sql = "SELECT RecoverGeometryColumn('pt_xyz', 'g', 4326, 'POINT', 3);"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -75; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -76; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -77; } if (strcmp(results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -78; } sqlite3_free_table (results); /* recovering pt_xym */ sql = "SELECT RecoverGeometryColumn('pt_xym', 'g', 4326, 'POINT', 'XYM');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -79; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -80; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -81; } if (strcmp(results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -82; } sqlite3_free_table (results); /* recovering pt_xyzm */ sql = "SELECT RecoverGeometryColumn('pt_xyzm', 'g', 4326, 'POINT', 'XYZM');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -83; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -84; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -85; } if (strcmp(results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -86; } sqlite3_free_table (results); /* recovering ln_xy */ sql = "SELECT RecoverGeometryColumn('ln_xy', 'g', 4326, 'LINESTRING', 'XY');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -87; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -88; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -89; } if (strcmp(results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -90; } sqlite3_free_table (results); /* recovering ln_xyz */ sql = "SELECT RecoverGeometryColumn('ln_xyz', 'g', 4326, 'LINESTRING', 'XYZ');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -91; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -92; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -93; } if (strcmp(results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -94; } sqlite3_free_table (results); /* recovering ln_xym */ sql = "SELECT RecoverGeometryColumn('ln_xym', 'g', 4326, 'LINESTRING', 'XYM');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -95; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -96; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -97; } if (strcmp(results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -98; } sqlite3_free_table (results); /* recovering ln_xyzm */ sql = "SELECT RecoverGeometryColumn('ln_xyzm', 'g', 4326, 'LINESTRING', 'XYZM');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -99; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -100; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -101; } if (strcmp(results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -102; } sqlite3_free_table (results); /* recovering pg_xy */ sql = "SELECT RecoverGeometryColumn('pg_xy', 'g', 4326, 'POLYGON', 'XY');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -103; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -104; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -105; } if (strcmp(results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -106; } sqlite3_free_table (results); /* recovering pg_xyz */ sql = "SELECT RecoverGeometryColumn('pg_xyz', 'g', 4326, 'POLYGON', 'XYZ');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -107; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -108; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -109; } if (strcmp(results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -110; } sqlite3_free_table (results); /* recovering pg_xym */ sql = "SELECT RecoverGeometryColumn('pg_xym', 'g', 4326, 'POLYGON', 'XYM');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -111; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -112; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -113; } if (strcmp(results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -114; } sqlite3_free_table (results); /* recovering pg_xyzm */ sql = "SELECT RecoverGeometryColumn('pg_xyzm', 'g', 4326, 'POLYGON', 'XYZM');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -115; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -116; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -117; } if (strcmp(results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -118; } sqlite3_free_table (results); /* recovering mpt_xy */ sql = "SELECT RecoverGeometryColumn('mpt_xy', 'g', 4326, 'MULTIPOINT', 'XY');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -119; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -120; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -121; } if (strcmp(results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -122; } sqlite3_free_table (results); /* recovering mpt_xyz */ sql = "SELECT RecoverGeometryColumn('mpt_xyz', 'g', 4326, 'MULTIPOINT', 'XYZ');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -123; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -124; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -125; } if (strcmp(results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -126; } sqlite3_free_table (results); /* recovering mpt_xym */ sql = "SELECT RecoverGeometryColumn('mpt_xym', 'g', 4326, 'MULTIPOINT', 'XYM');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -127; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -128; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -129; } if (strcmp(results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -130; } sqlite3_free_table (results); /* recovering mpt_xyzm */ sql = "SELECT RecoverGeometryColumn('mpt_xyzm', 'g', 4326, 'MULTIPOINT', 'XYZM');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -131; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -132; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -133; } if (strcmp(results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -134; } sqlite3_free_table (results); /* recovering mln_xy */ sql = "SELECT RecoverGeometryColumn('mln_xy', 'g', 4326, 'MULTILINESTRING', 'XY');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -135; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -136; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -137; } if (strcmp(results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -138; } sqlite3_free_table (results); /* recovering mln_xyz */ sql = "SELECT RecoverGeometryColumn('mln_xyz', 'g', 4326, 'MULTILINESTRING', 'XYZ');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -139; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -140; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -141; } if (strcmp(results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -142; } sqlite3_free_table (results); /* recovering mln_xym */ sql = "SELECT RecoverGeometryColumn('mln_xym', 'g', 4326, 'MULTILINESTRING', 'XYM');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -143; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -144; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -145; } if (strcmp(results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -146; } sqlite3_free_table (results); /* recovering mln_xyzm */ sql = "SELECT RecoverGeometryColumn('mln_xyzm', 'g', 4326, 'MULTILINESTRING', 'XYZM');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -147; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -148; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -149; } if (strcmp(results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -150; } sqlite3_free_table (results); /* recovering mpg_xy */ sql = "SELECT RecoverGeometryColumn('mpg_xy', 'g', 4326, 'MULTIPOLYGON', 'XY');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -151; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -152; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -153; } if (strcmp(results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -154; } sqlite3_free_table (results); /* recovering mpg_xyz */ sql = "SELECT RecoverGeometryColumn('mpg_xyz', 'g', 4326, 'MULTIPOLYGON', 'XYZ');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -155; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -156; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -157; } if (strcmp(results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -158; } sqlite3_free_table (results); /* recovering mpg_xym */ sql = "SELECT RecoverGeometryColumn('mpg_xym', 'g', 4326, 'MULTIPOLYGON', 'XYM');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -159; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -160; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -161; } if (strcmp(results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -162; } sqlite3_free_table (results); /* recovering mpg_xyzm */ sql = "SELECT RecoverGeometryColumn('mpg_xyzm', 'g', 4326, 'MULTIPOLYGON', 'XYZM');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -163; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -164; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -165; } if (strcmp(results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -166; } sqlite3_free_table (results); /* recovering gcoll_xy */ sql = "SELECT RecoverGeometryColumn('gcoll_xy', 'g', 4326, 'GEOMETRYCOLLECTION', 'XY');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -167; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -168; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -169; } if (strcmp(results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -170; } sqlite3_free_table (results); /* recovering gcoll_xyz */ sql = "SELECT RecoverGeometryColumn('gcoll_xyz', 'g', 4326, 'GEOMETRYCOLLECTION', 'XYZ');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -171; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -172; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -173; } if (strcmp(results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -174; } sqlite3_free_table (results); /* recovering gcoll_xym */ sql = "SELECT RecoverGeometryColumn('gcoll_xym', 'g', 4326, 'GEOMETRYCOLLECTION', 'XYM');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -175; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -176; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -177; } if (strcmp(results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -178; } sqlite3_free_table (results); /* recovering gcoll_xyzm */ sql = "SELECT RecoverGeometryColumn('gcoll_xyzm', 'g', 4326, 'GEOMETRYCOLLECTION', 'XYZM');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -179; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -180; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -181; } if (strcmp(results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -182; } sqlite3_free_table (results); /* recovering geom_xy */ sql = "SELECT RecoverGeometryColumn('geom_xy', 'g', 4326, 'GEOMETRY', 'XY');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -183; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -184; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -185; } if (strcmp(results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -186; } sqlite3_free_table (results); /* recovering geom_xyz */ sql = "SELECT RecoverGeometryColumn('geom_xyz', 'g', 4326, 'GEOMETRY', 'XYZ');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -187; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -188; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -189; } if (strcmp(results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -190; } sqlite3_free_table (results); /* recovering geom_xym */ sql = "SELECT RecoverGeometryColumn('geom_xym', 'g', 4326, 'GEOMETRY', 'XYM');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -191; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -192; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -193; } if (strcmp(results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -194; } sqlite3_free_table (results); /* recovering geom_xyzm */ sql = "SELECT RecoverGeometryColumn('geom_xyzm', 'g', 4326, 'GEOMETRY', 'XYZM');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -195; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -196; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -197; } if (strcmp(results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -198; } sqlite3_free_table (results); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -199; } spatialite_cleanup_ex (cache); return 0; } libspatialite-4.1.1/test/check_math_funcs.c0000664000175000017500000000570412163502133015677 00000000000000/* check_math_funcs.c -- SpatiaLite Test Case Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include "sqlite3.h" #include "spatialite.h" static const double double_eps = 0.00000001; int main (int argc, char *argv[]) { double result; sqlite3_int64 result64; if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ result = math_round(3.4); if (abs(result - 3) > double_eps) { fprintf(stderr, "bad math_round() result for 3.4: %f\n", result); return -1; } result = math_round(3.6); if (abs(result - 4) > double_eps) { fprintf(stderr, "bad math_round() result for 3.6: %f\n", result); return -2; } result = math_round(-3.4); if (abs(result + 3) > double_eps) { fprintf(stderr, "bad math_round() result for -3.4: %f\n", result); return -3; } result = math_round(-3.6); if (abs(result + 4) > double_eps) { fprintf(stderr, "bad math_round() result for -3.6: %f\n", result); return -4; } result64 = math_llabs((sqlite3_int64) 26); if (result64 != 26) { fprintf(stderr, "bad math_llabs() result for 26"); return -5; } result64 = math_llabs((sqlite3_int64) -26); if (result64 != 26) { fprintf(stderr, "bad math_llabs() result for -26"); return -6; } return 0; } libspatialite-4.1.1/test/test_under_valgrind.sh0000775000175000017500000000041012163502134016636 00000000000000#! /bin/bash for i in *; do if test -x $i -a -f $i -a $i != "test_under_valgrind.sh"; then libtool --mode=execute valgrind --track-origins=yes --tool=memcheck --num-callers=20 --leak-check=full --show-reachable=yes --suppressions=geos-init.supp $i fi; done; libspatialite-4.1.1/test/check_virtualtable4.c0000664000175000017500000003204712163502133016332 00000000000000/* check_virtualtable4.c -- SpatiaLite Test Case Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #define _GNU_SOURCE #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" #ifdef _WIN32 #include "asprintf4win.h" #endif struct test_step { const char *sql; const int num_rows; }; #define NUMSTEPS 36 struct test_step steps[NUMSTEPS] = { { "select col_2, col_4, col_5, col_7 from xltest WHERE col_2 > \"Canary Creek\";", 9 }, { "select col_2, col_4, col_5, col_7 from xltest WHERE col_2 < \"Canary Creek\";", 7 }, { "select col_2, col_4, col_5, col_7 from xltest WHERE col_2 >= \"Canary Creek\";", 10 }, { "select col_2, col_4, col_5, col_7 from xltest WHERE col_2 <= \"Canary Creek\";", 8 }, { "select col_2, col_4, col_5, col_7 from xltest WHERE col_2 = 3;", 0 }, { "SELECT col_2, col_14 FROM xltest WHERE col_14 > 100000;", 1 }, { "SELECT col_2, col_14 FROM xltest WHERE col_14 < 100000;", 16 }, { "SELECT col_2, col_14 FROM xltest WHERE col_14 < 100000 AND col_14 > 0;", 1 }, { "SELECT col_2, col_14 FROM xltest WHERE col_14 = 895;", 1 }, { "SELECT col_2, col_14 FROM xltest WHERE col_14 = 895.0;", 1 }, { "SELECT col_2, col_14 FROM xltest WHERE col_14 <= 895;", 16 }, { "SELECT col_2, col_14 FROM xltest WHERE col_14 >= 895;", 2 }, { "SELECT col_2, col_14 FROM xltest WHERE col_14 > 100000.0;", 1 }, { "SELECT col_2, col_14 FROM xltest WHERE col_14 < 100000.0;", 16 }, { "SELECT col_2, col_14 FROM xltest WHERE col_14 = 895.0;", 1 }, { "SELECT col_2, col_14 FROM xltest WHERE col_14 <= 895.0;", 16 }, { "SELECT col_2, col_14 FROM xltest WHERE col_14 >= 895.0;", 2 }, { "SELECT col_2, col_14 FROM xltest WHERE row_no = 4", 1 }, { "SELECT col_2, col_14 FROM xltest WHERE row_no < 4", 3 }, { "SELECT col_2, col_14 FROM xltest WHERE row_no <= 4", 4 }, { "SELECT col_2, col_14 FROM xltest WHERE row_no >= 4", 14 }, { "SELECT col_2, col_14 FROM xltest WHERE row_no > 4", 13 }, { "SELECT col_2, col_14 FROM xltest WHERE row_no = 4.00", 0 }, { "select col_2, col_4, col_5 from xltest where col_4 < -30.0;", 8 }, { "select col_2, col_4, col_5 from xltest where col_4 > -30.0;", 9 }, { "select col_2, col_4, col_5 from xltest where col_4 <= -30.0;", 8 }, { "select col_2, col_4, col_5 from xltest where col_4 >= -30.0;", 9 }, { "select col_2, col_4, col_5 from xltest where col_5 = 149.1;", 1 }, { "select col_2, col_4, col_5 from xltest where col_4 < -30;", 8 }, { "select col_2, col_4, col_5 from xltest where col_4 > -30;", 9 }, { "select col_2, col_4, col_5 from xltest where col_4 <= -30;", 8 }, { "select col_2, col_4, col_5 from xltest where col_4 >= -30;", 9 }, { "select col_2, col_4, col_5 from xltest where col_4 = -30;", 0 }, { "SELECT row_no, col_4, col_5 from xltest", 17 }, { "select rowid, col_4, col_5 from xltest where col_4 = -26.0;", 1 }, { "select rowid, col_4, col_5 from xltest where col_4 = -26;", 1 }, }; int main (int argc, char *argv[]) { #ifndef OMIT_FREEXL /* only if FreeXL is supported */ sqlite3 *db_handle = NULL; char *sql_statement; int ret; char *err_msg = NULL; int i; char **results; int rows; int columns; void *cache = spatialite_alloc_connection(); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } spatialite_init_ex (db_handle, cache, 0); ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE xltest USING VirtualXL(\"testcase1.xls\");", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VirtualXL error: %s\n", err_msg); sqlite3_free (err_msg); return -2; } asprintf(&sql_statement, "select col_2, col_4, col_5, col_7, rowid from xltest WHERE col_2 = \"Canal Creek\";"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free(sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -10; } if ((rows != 2) || (columns != 5)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -11; } if (strcmp(results[0], "col_2") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -12; } if (strcmp(results[5], "Canal Creek") != 0) { fprintf (stderr, "Unexpected error: name5() bad result: %s.\n", results[5]); return -13; } if (strncmp(results[6], "-27.86667", 9) != 0) { fprintf (stderr, "Unexpected error: lat1() bad result: %s.\n", results[6]); return -14; } if (strncmp(results[7], "151.51667", 9) != 0) { fprintf (stderr, "Unexpected error: lon2() bad result: %s.\n", results[7]); return -15; } if (strcmp(results[10], "Canal Creek") != 0) { fprintf (stderr, "Unexpected error: name10() bad result: %s.\n", results[10]); return -16; } sqlite3_free_table (results); ret = sqlite3_exec (db_handle, "BEGIN;", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "BEGIN error: %s\n", err_msg); sqlite3_free (err_msg); return -21; } ret = sqlite3_exec (db_handle, "DELETE FROM xltest WHERE col_14 > 100000;", NULL, NULL, &err_msg); if (ret != SQLITE_READONLY) { fprintf (stderr, "UPDATE error: %s\n", err_msg); sqlite3_free (err_msg); return -21; } sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "ROLLBACK;", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "ROLLBACK error: %s\n", err_msg); sqlite3_free (err_msg); return -22; } for (i = 0; i < NUMSTEPS; ++i) { ret = sqlite3_get_table (db_handle, steps[i].sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -23; } if (rows != steps[i].num_rows) { fprintf (stderr, "Unexpected num of rows for test %i: %i.\n", i, rows); return -24; } sqlite3_free_table (results); } ret = sqlite3_exec (db_handle, "DROP TABLE xltest;", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE error: %s\n", err_msg); sqlite3_free (err_msg); return -25; } ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE nosuchworksheet USING VirtualXL(\"testcase1.xls\", 3);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VirtualXL error: %s\n", err_msg); sqlite3_free (err_msg); return -26; } ret = sqlite3_exec (db_handle, "DROP TABLE nosuchworksheet;", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE error: %s\n", err_msg); sqlite3_free (err_msg); return -27; } ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE nosuchfile USING VirtualXL(\"not_a_file.xls\", 3);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VirtualXL error: %s\n", err_msg); sqlite3_free (err_msg); return -28; } ret = sqlite3_exec (db_handle, "DROP TABLE nosuchfile;", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE error: %s\n", err_msg); sqlite3_free (err_msg); return -29; } ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE sheet2 USING VirtualXL(\"testcase1.xls\", 1, 1);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VirtualXL error: %s\n", err_msg); sqlite3_free (err_msg); return -30; } asprintf(&sql_statement, "select row_no, place, lat, lon, rowid from sheet2 WHERE place = \"Canal Creek\";"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free(sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -31; } if ((rows != 4) || (columns != 5)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -32; } if (strcmp(results[0], "row_no") != 0) { fprintf (stderr, "Unexpected error: sheet2() bad result: %s.\n", results[0]); return -33; } if (strcmp(results[6], "Canal Creek") != 0) { fprintf (stderr, "Unexpected error: sheet2() bad result place: %s.\n", results[6]); return -34; } if (strncmp(results[7], "-27.86667", 9) != 0) { fprintf (stderr, "Unexpected error: sheet2() bad result lat: %s.\n", results[7]); return -35; } if (strncmp(results[8], "151.51667", 9) != 0) { fprintf (stderr, "Unexpected error: sheet2() bad result lon: %s.\n", results[8]); return -36; } if (strcmp(results[11], "Canal Creek") != 0) { fprintf (stderr, "Unexpected error: sheet2() bad result place2: %s.\n", results[11]); return -37; } sqlite3_free_table (results); asprintf(&sql_statement, "select row_no, place, lat, lon, rowid from sheet2 WHERE row_no = 16"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free(sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -38; } if ((rows != 1) || (columns != 5)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -39; } if (strcmp(results[0], "row_no") != 0) { fprintf (stderr, "Unexpected error: sheet2() bad result: %s.\n", results[0]); return -40; } if (strcmp(results[6], "Canal Creek") != 0) { fprintf (stderr, "Unexpected error: sheet2() bad result place: %s.\n", results[6]); return -41; } if (strncmp(results[7], "-27.86667", 9) != 0) { fprintf (stderr, "Unexpected error: sheet2() bad result lat: %s.\n", results[7]); return -42; } if (strncmp(results[8], "151.51667", 9) != 0) { fprintf (stderr, "Unexpected error: sheet2() bad result lon: %s.\n", results[8]); return -43; } sqlite3_free_table (results); ret = sqlite3_exec (db_handle, "DROP TABLE sheet2;", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE error: %s\n", err_msg); sqlite3_free (err_msg); return -44; } ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE noquote USING VirtualXL(testcase1.xls);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VirtualXL error: %s\n", err_msg); sqlite3_free (err_msg); return -45; } ret = sqlite3_exec (db_handle, "DROP TABLE noquote;", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE error: %s\n", err_msg); sqlite3_free (err_msg); return -46; } ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE noheader USING VirtualXL(\"testcase1.xls\", 0, 0);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VirtualXL error: %s\n", err_msg); sqlite3_free (err_msg); return -47; } ret = sqlite3_exec (db_handle, "DROP TABLE noheader;", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE error: %s\n", err_msg); sqlite3_free (err_msg); return -48; } ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE nofile USING VirtualXL();", NULL, NULL, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "VirtualXL unexpected result: %i\n", ret); return -49; } sqlite3_free (err_msg); sqlite3_close (db_handle); spatialite_cleanup_ex (cache); #endif /* end FreeXL conditional */ return 0; } libspatialite-4.1.1/test/testcase1.xls0000664000175000017500000004100012163502134014661 00000000000000ࡱ;  Root Entry  \pCalc Ba==@ 8@"1Arial1Arial1Arial1Arial1& Lohit Hindi16WenQuanYi Micro Hei GENERAL@ DD/MM/YY HH:MM:SSDD/MM/YY\ HH:MM                + ) , *         ``Sheet1Sheet2p1Sheet3==Tjb( 3  @@   -CandeloCandelo,Kandelo,0=45;>PPPLAUAustralia/Sydney 2011-08-08CanbraeSFRMAustralia/Brisbane 2011-06-04Canberra Camberra,Canberra,Gorad Kanbera,Kamberra,Kambra,Kampera,Kanapera,Kanbera,Kanbero,Kanberra,Kanberrae,Kanbrra,Knapera,kaenbeola,kainabara,kan pei la,kanbra,kanpara,kenabera,kyanabera,kyanbera,kynbra,qnbrh,,>@04 0=15@0,0=15@0,0=15@@,0=15@@0,0=1T@0,?avbe|a,,,C'F(1','F(1',F(1', E ( , G 0 > , H ( , 0 > , , ,A@-#L#2,AS Tz b ,,`+,00000,NWWb,*XWb,΄|0189?@IJQR\]enrsxy|}PPLC 2009-08-04 Canbelego Canaway RangeTMTS 1993-12-30 Mount CanawayMTCanary Island SouthAustralia/Melbourne Canary Island Canary CreekHSTM Canara CreekCanally Canal LagoonLGNCanal Creek BoreWLL Canal CreekIDplacenormal alternatelatlonrefWreally long header xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxx Population - cc   dMbP?_%*+# &C&"Times New Roman,Normal"&12&A(%&C&"Times New Roman,Normal"&12Page &P&333333?'333333?(-؂-?)-؂-?" d,,333333?333333?U }  } O}  H     ~    i>"bBLݵb@     ڤ ~  ~ b  ~   :dw7<~     *  ~ ~ R   ~     jHA)A&b@   ~  ~ R~   ~    P:Lݍb@      ~ ~     ~   ӟH?)"Jb@      ~ ~ n   ~   l:M»a@   ~  ~ ~   ~   ~ .R\Ua@   ~  ~ ~   ~   fffffBM»a@    v ~ ~    ~   }A~     v ~ ~    ~    PH8 M»b@   ~ ~ ~ v  ~    l]: ypwb@   ~ ~ ~ 6  ~    YA La@      ~ ~    ~    P6 N@ lF=D b@     Ҷ ~ ~ v   ~ ™   ׻A b@   ~  ~ ~ c  ~ ƙ ! !`5!4~ +  " ~  ~ ~   ~ ʙ # #l;ab@   ~  ~ ~ .  ~ Ι # #m99ypwb@   ~  ~ ~ ~  PH0(  >@gg   dMbP?_%*+# &C&"Times New Roman,Normal"&12&A(%&C&"Times New Roman,Normal"&12Page &P&333333?'333333?(-؂-?)-؂-?" d,,333333?333333?U } } 7}  f      $ % & ' ( )~ V- @^x * qq? >A@ + ,~    i>"bBLݵb@     ڤ ~  ~ b  ~   :dw7<~     *  ~ ~ R   ~     jHA)A&b@   ~  ~ R~   ~    P:Lݍb@      ~ ~     ~   ӟH?)"Jb@      ~ ~ n   ~   l:M»a@   ~  ~ ~   ~   ~ .R\Ua@   ~  ~ ~   ~   fffffBM»a@    v ~ ~    ~    }A~     v ~ ~    ~    PH8 M»b@   ~ ~ ~ v  ~    l]: ypwb@   ~ ~ ~ 6  ~    YA La@      ~ ~    ~    P6 N@ lF=D b@     Ҷ ~ ~ v   ~ ™  ׻Ab@   ~   ~ ~ c  ~ ƙ ! !`5!4~ +  " ~  ~ ~   ~ ʙ # #l;ab@   ~  ~ ~ .  ~ Ι # #m99ypwb@   ~  ~ ~ ~  ~ ʙ # #l;ab@   ~  ~ ~ .  ~ Ι # #m99ypwb@   ~  ~ ~ ~  PH 0(  >@gg   dMbP?_%*+# &C&"Times New Roman,Normal"&12&A(%&C&"Times New Roman,Normal"&12Page &P&333333?'333333?(-؂-?)-؂-?" d,,333333?333333?U }  PH0 0(   >@gg  FMicrosoft Excel 97-TabelleBiff8Oh+'0|8 @ L X d p4@@@X p@a q՜.+,0Root EntryFWorkbookM3CompObjIOle SummaryInformation(DocumentSummaryInformation8Hlibspatialite-4.1.1/test/check_createBaseTables.c0000664000175000017500000001477012163502133016744 00000000000000/* check_createBaseTables.c - Test case for GeoPackage Extensions Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Brad Hards Portions created by the Initial Developer are Copyright (C) 2012 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include "sqlite3.h" #include "spatialite.h" #include "test_helpers.h" int main (int argc UNUSED, char *argv[] UNUSED) { sqlite3 *db_handle = NULL; int ret; char *err_msg = NULL; char **results; int rows; int columns; void *cache = spatialite_alloc_connection(); ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); // For debugging / testing if required // ret = sqlite3_open_v2 ("check_createBaseTables.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); spatialite_init_ex(db_handle, cache, 0); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } ret = sqlite3_exec (db_handle, "SELECT InitSpatialMetadata(1, 'WGS84')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf(stderr, "Unexpected InitSpatialMetadata result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -2; } ret = sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf(stderr, "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -100; } /* check raster_columns table is OK */ ret = sqlite3_exec (db_handle, "INSERT INTO raster_columns VALUES (\"sample_matrix_tiles\", \"tile_data\", 100, 0, 4326)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf(stderr, "Unexpected INSERT INTO raster_columns result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -101; } /* check tile_table_metadata table is OK */ ret = sqlite3_exec (db_handle, "INSERT INTO tile_table_metadata VALUES (\"sample_matrix_tiles\", 1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf(stderr, "Unexpected INSERT INTO tile_table_metadata result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -102; } /* check tile_matrix_metadata table is OK */ ret = sqlite3_exec (db_handle, "INSERT INTO tile_matrix_metadata VALUES (\"sample_matrix_tiles\", 0, 1, 1, 512, 512, 2.0, 2.0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf(stderr, "Unexpected INSERT INTO tile_matrix_metadata result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -103; } /* check xml_metadata table is OK */ ret = sqlite3_get_table (db_handle, "SELECT id, md_scope, metadata_standard_URI, metadata FROM xml_metadata", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error1: %s\n", err_msg); sqlite3_free (err_msg); return -104; } if ((rows != 1) || (columns != 4)) { sqlite3_free_table(results); fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns); return -105; } if (strcmp(results[1 * columns + 0], "0") != 0) { fprintf (stderr, "Unexpected id result (got %s, expected 0)", results[1 * columns + 0]); sqlite3_free_table(results); return -106; } if (strcmp(results[1 * columns + 1], "undefined") != 0) { fprintf (stderr, "Unexpected md_scope result (got %s, expected undefined)", results[1 * columns + 1]); sqlite3_free_table(results); return -107; } if (strcmp(results[1 * columns + 2], "http://schemas.opengis.net/iso/19139/") != 0) { fprintf (stderr, "Unexpected metadata_standard_URI result (got %s, expected http://schemas.opengis.net/iso/19139/)", results[1 * columns + 2]); sqlite3_free_table(results); return -108; } sqlite3_free_table(results); /* check metadata_reference table is OK */ ret = sqlite3_exec (db_handle, "INSERT INTO metadata_reference VALUES ('table','sample_matrix_tiles','undefined', 0, '2012-08-17T14:49:32.932Z', 98, 99)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf(stderr, "Unexpected INSERT INTO metadata_reference result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -109; } /* TODO: check each trigger works as expected */ /* check creation when the tables already exist */ ret = sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL, &err_msg); if (ret != SQLITE_ERROR) { fprintf(stderr, "Unexpected duplicate gpkgCreateBaseTables() result: %i, (%s)\n", ret, err_msg); return -110; } if (strcmp("table geopackage_contents already exists", err_msg) != 0) { fprintf(stderr, "Unexpected duplicate gpkgCreateBaseTables() error message: %s\n", err_msg); return -111; } sqlite3_free (err_msg); ret = sqlite3_close (db_handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle)); return -200; } spatialite_cleanup_ex(cache); return 0; } libspatialite-4.1.1/test/check_virtualtable2.c0000664000175000017500000007412512163502133016333 00000000000000/* check_virtualtable2.c -- SpatiaLite Test Case Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Ahmadou Dicko Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #define _GNU_SOURCE #include #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" #ifdef _WIN32 #include "asprintf4win.h" #endif int do_test(sqlite3 *db_handle) { #ifndef OMIT_ICONV /* only if ICONV is supported */ char *sql_statement; int ret; char *err_msg = NULL; char **results; int rows; int columns; ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE shapetest USING VirtualShape(\"shapetest1\", UTF-8, 4326);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VirtualShape error: %s\n", err_msg); sqlite3_free (err_msg); return -2; } ret = sqlite3_get_table (db_handle, "SELECT RegisterVirtualGeometry('shapetest')", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "RegisterVirtualGeometry error: %s\n", err_msg); sqlite3_free (err_msg); return -3; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "RegisterVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -4; } if (strcmp(results[1], "1") != 0) { fprintf (stderr, "RegisterVirtualGeometry Unexpected error: header() bad result: %s.\n", results[0]); return -5; } sqlite3_free_table (results); asprintf(&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase2 < 20;"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free(sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -6; } if ((rows != 1) || (columns != 3)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -7; } if (strcmp(results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -8; } if (strcmp(results[3], "windward") != 0) { fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[3]); return -9; } if (strcmp(results[4], "2") != 0) { fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[4]); return -10; } if (strcmp(results[5], "POINT(3480766.311245 4495355.740524)") != 0) { fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]); return -11; } sqlite3_free_table (results); asprintf(&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase2 <= 19;"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free(sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -12; } if ((rows != 1) || (columns != 3)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -13; } if (strcmp(results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -14; } if (strcmp(results[3], "windward") != 0) { fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[3]); return -15; } if (strcmp(results[4], "2") != 0) { fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[4]); return -16; } if (strcmp(results[5], "POINT(3480766.311245 4495355.740524)") != 0) { fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]); return -17; } sqlite3_free_table (results); asprintf(&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase2 = 20;"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free(sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -18; } if ((rows != 1) || (columns != 3)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -19; } if (strcmp(results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -20; } if (strcmp(results[3], "orde lees") != 0) { fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n", results[3]); return -21; } if (strcmp(results[4], "20") != 0) { fprintf (stderr, "Unexpected error: integer2() bad result: %s.\n", results[4]); return -22; } if (strcmp(results[5], "POINT(3482470.825574 4495691.054818)") != 0) { fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]); return -23; } sqlite3_free_table (results); asprintf(&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase2 > 2;"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free(sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -24; } if ((rows != 1) || (columns != 3)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -25; } if (strcmp(results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -26; } if (strcmp(results[3], "orde lees") != 0) { fprintf (stderr, "Unexpected error: orde lees2 bad result: %s.\n", results[3]); return -27; } if (strcmp(results[4], "20") != 0) { fprintf (stderr, "Unexpected error: integer4() bad result: %s.\n", results[4]); return -28; } if (strcmp(results[5], "POINT(3482470.825574 4495691.054818)") != 0) { fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]); return -29; } sqlite3_free_table (results); asprintf(&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase2 >= 20;"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free(sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -30; } if ((rows != 1) || (columns != 3)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -31; } if (strcmp(results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -32; } if (strcmp(results[3], "orde lees") != 0) { fprintf (stderr, "Unexpected error: orde lees3 bad result: %s.\n", results[3]); return -33; } if (strcmp(results[4], "20") != 0) { fprintf (stderr, "Unexpected error: integer5() bad result: %s.\n", results[4]); return -33; } if (strcmp(results[5], "POINT(3482470.825574 4495691.054818)") != 0) { fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]); return -34; } sqlite3_free_table (results); asprintf(&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase1 < \"p\";"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free(sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -35; } if ((rows != 1) || (columns != 3)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -36; } if (strcmp(results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -37; } if (strcmp(results[3], "orde lees") != 0) { fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n", results[3]); return -38; } if (strcmp(results[4], "20") != 0) { fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[4]); return -39; } if (strcmp(results[5], "POINT(3482470.825574 4495691.054818)") != 0) { fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]); return -40; } sqlite3_free_table (results); asprintf(&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase1 <= \"p\";"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free(sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -41; } if ((rows != 1) || (columns != 3)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -42; } if (strcmp(results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -43; } if (strcmp(results[3], "orde lees") != 0) { fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n", results[3]); return -44; } if (strcmp(results[4], "20") != 0) { fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[4]); return -45; } if (strcmp(results[5], "POINT(3482470.825574 4495691.054818)") != 0) { fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]); return -46; } sqlite3_free_table (results); ret = sqlite3_exec (db_handle, "BEGIN;", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "BEGIN error: %s\n", err_msg); sqlite3_free (err_msg); return -47; } asprintf(&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase1 > \"p\";"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free(sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -48; } if ((rows != 1) || (columns != 3)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -49; } if (strcmp(results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -50; } if (strcmp(results[3], "windward") != 0) { fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[3]); return -51; } if (strcmp(results[4], "2") != 0) { fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[4]); return -52; } if (strcmp(results[5], "POINT(3480766.311245 4495355.740524)") != 0) { fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]); return -53; } sqlite3_free_table (results); ret = sqlite3_exec (db_handle, "DELETE FROM shapetest WHERE testcase2 = 2;", NULL, NULL, &err_msg); if (ret != SQLITE_READONLY) { fprintf (stderr, "UPDATE error: %s\n", err_msg); sqlite3_free (err_msg); return -54; } sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "ROLLBACK;", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "ROLLBACK error: %s\n", err_msg); sqlite3_free (err_msg); return -55; } asprintf(&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase1 >= \"p\";"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free(sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -56; } if ((rows != 1) || (columns != 3)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -57; } if (strcmp(results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -58; } if (strcmp(results[3], "windward") != 0) { fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[3]); return -59; } if (strcmp(results[4], "2") != 0) { fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[4]); return -60; } if (strcmp(results[5], "POINT(3480766.311245 4495355.740524)") != 0) { fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]); return -61; } sqlite3_free_table (results); asprintf(&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase1 = \"windward\";"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free(sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -62; } if ((rows != 1) || (columns != 3)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -63; } if (strcmp(results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -64; } if (strcmp(results[3], "windward") != 0) { fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[3]); return -65; } if (strcmp(results[4], "2") != 0) { fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[4]); return -66; } if (strcmp(results[5], "POINT(3480766.311245 4495355.740524)") != 0) { fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]); return -67; } sqlite3_free_table (results); asprintf(&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where PKUID = 1;"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free(sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -68; } if ((rows != 1) || (columns != 3)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -69; } if (strcmp(results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -70; } if (strcmp(results[3], "windward") != 0) { fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[3]); return -71; } if (strcmp(results[4], "2") != 0) { fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[4]); return -72; } if (strcmp(results[5], "POINT(3480766.311245 4495355.740524)") != 0) { fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]); return -73; } sqlite3_free_table (results); asprintf(&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where PKUID < 2;"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free(sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -74; } if ((rows != 1) || (columns != 3)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -75; } if (strcmp(results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -76; } if (strcmp(results[3], "windward") != 0) { fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[3]); return -77; } if (strcmp(results[4], "2") != 0) { fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[4]); return -78; } if (strcmp(results[5], "POINT(3480766.311245 4495355.740524)") != 0) { fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]); return -79; } sqlite3_free_table (results); asprintf(&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where PKUID <= 1;"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free(sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -80; } if ((rows != 1) || (columns != 3)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -81; } if (strcmp(results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -82; } if (strcmp(results[3], "windward") != 0) { fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[3]); return -83; } if (strcmp(results[4], "2") != 0) { fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[4]); return -84; } if (strcmp(results[5], "POINT(3480766.311245 4495355.740524)") != 0) { fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]); return -85; } sqlite3_free_table (results); asprintf(&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where PKUID > 1;"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free(sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -86; } if ((rows != 1) || (columns != 3)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -87; } if (strcmp(results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -88; } if (strcmp(results[3], "orde lees") != 0) { fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n", results[3]); return -89; } if (strcmp(results[4], "20") != 0) { fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[4]); return -90; } if (strcmp(results[5], "POINT(3482470.825574 4495691.054818)") != 0) { fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]); return -91; } sqlite3_free_table (results); asprintf(&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where PKUID >= 2;"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free(sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -92; } if ((rows != 1) || (columns != 3)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -93; } if (strcmp(results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -94; } if (strcmp(results[3], "orde lees") != 0) { fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n", results[3]); return -95; } if (strcmp(results[4], "20") != 0) { fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[4]); return -96; } if (strcmp(results[5], "POINT(3482470.825574 4495691.054818)") != 0) { fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]); return -97; } sqlite3_free_table (results); asprintf(&sql_statement, "select PKUID, testcase1, testcase2, AsText(Geometry) from shapetest where testcase1 LIKE \"wind%%\";"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free(sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -98; } if ((rows != 1) || (columns != 4)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -99; } if (strcmp(results[0], "PKUID") != 0) { fprintf (stderr, "Unexpected error: header uid bad result: %s.\n", results[0]); return -100; } if (strcmp(results[1], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header bad result: %s.\n", results[1]); return -101; } if (strcmp(results[4], "1") != 0) { fprintf (stderr, "Unexpected error: windward PK bad result: %s.\n", results[4]); return -102; } if (strcmp(results[5], "windward") != 0) { fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[5]); return -103; } sqlite3_free_table (results); ret = sqlite3_get_table (db_handle, "SELECT DropVirtualGeometry('shapetest')", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DropVirtualGeometry error: %s\n", err_msg); sqlite3_free (err_msg); return -104; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "DropVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -105; } if (strcmp(results[1], "1") != 0) { fprintf (stderr, "DropVirtualGeometry Unexpected error: header() bad result: %s.\n", results[0]); return -106; } sqlite3_free_table (results); ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE shapetest2 USING VirtualShape(\"shp/merano-3d/roads\", CP1252, 25832);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VirtualShape error: %s\n", err_msg); sqlite3_free (err_msg); return -107; } ret = sqlite3_get_table (db_handle, "SELECT RegisterVirtualGeometry('shapetest2')", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "RegisterVirtualGeometry error: %s\n", err_msg); sqlite3_free (err_msg); return -108; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "RegisterVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -109; } if (strcmp(results[1], "1") != 0) { fprintf (stderr, "RegisterVirtualGeometry Unexpected error: header() bad result: %s.\n", results[0]); return -110; } sqlite3_free_table (results); ret = sqlite3_get_table (db_handle, "SELECT UpdateLayerStatistics('shapetest2')", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "UpdateLayerStatistics error: %s\n", err_msg); sqlite3_free (err_msg); return -111; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "UpdateLayerStatistics Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -112; } if (strcmp(results[1], "1") != 0) { fprintf (stderr, "UpdateLayerStatistics Unexpected error: header() bad result: %s.\n", results[0]); return -113; } sqlite3_free_table (results); ret = sqlite3_get_table (db_handle, "SELECT DropVirtualGeometry('shapetest2')", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DropVirtualGeometry error: %s\n", err_msg); sqlite3_free (err_msg); return -114; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "DropVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -115; } if (strcmp(results[1], "1") != 0) { fprintf (stderr, "DropVirtualGeometry Unexpected error: header() bad result: %s.\n", results[0]); return -116; } sqlite3_free_table (results); ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE shapetest3 USING VirtualShape(\"shp/merano-3d/points\", CP1252, 25832);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VirtualShape error: %s\n", err_msg); sqlite3_free (err_msg); return -117; } ret = sqlite3_get_table (db_handle, "SELECT RegisterVirtualGeometry('shapetest3')", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "RegisterVirtualGeometry error: %s\n", err_msg); sqlite3_free (err_msg); return -118; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "RegisterVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -119; } if (strcmp(results[1], "1") != 0) { fprintf (stderr, "RegisterVirtualGeometry Unexpected error: header() bad result: %s.\n", results[0]); return -120; } sqlite3_free_table (results); ret = sqlite3_get_table (db_handle, "SELECT DropVirtualGeometry('shapetest3')", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DropVirtualGeometry error: %s\n", err_msg); sqlite3_free (err_msg); return -121; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "DropVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -122; } if (strcmp(results[1], "1") != 0) { fprintf (stderr, "DropVirtualGeometry Unexpected error: header() bad result: %s.\n", results[0]); return -123; } sqlite3_free_table (results); ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE shapetest4 USING VirtualShape(\"shp/merano-3d/polygons\", CP1252, 25832);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VirtualShape error: %s\n", err_msg); sqlite3_free (err_msg); return -124; } ret = sqlite3_get_table (db_handle, "SELECT RegisterVirtualGeometry('shapetest4')", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "RegisterVirtualGeometry error: %s\n", err_msg); sqlite3_free (err_msg); return -125; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "RegisterVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -126; } if (strcmp(results[1], "1") != 0) { fprintf (stderr, "RegisterVirtualGeometry Unexpected error: header() bad result: %s.\n", results[0]); return -127; } sqlite3_free_table (results); ret = sqlite3_get_table (db_handle, "SELECT DropVirtualGeometry('shapetest4')", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DropVirtualGeometry error: %s\n", err_msg); sqlite3_free (err_msg); return -128; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "DropVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -129; } if (strcmp(results[1], "1") != 0) { fprintf (stderr, "DropVirtualGeometry Unexpected error: header() bad result: %s.\n", results[0]); return -130; } sqlite3_free_table (results); /* final DB cleanup */ ret = sqlite3_exec (db_handle, "DELETE FROM spatialite_history WHERE geometry_column IS NOT NULL", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DELETE FROM spatialite_history error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(db_handle); return -131; } ret = sqlite3_exec (db_handle, "VACUUM", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VACUUM error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(db_handle); return -132; } #endif /* end ICONV conditional */ return 0; } int main (int argc, char *argv[]) { #ifndef OMIT_ICONV /* only if ICONV is supported */ sqlite3 *db_handle = NULL; int ret; char *err_msg = NULL; void *cache = spatialite_alloc_connection(); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ /* testing current style metadata layout >= v.4.0.0 */ ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } spatialite_init_ex (db_handle, cache, 0); ret = sqlite3_exec (db_handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(db_handle); return -2; } ret = do_test(db_handle); if (ret != 0) { fprintf(stderr, "error while testing legacy style metadata layout\n"); return ret; } sqlite3_close (db_handle); spatialite_cleanup_ex (cache); /* testing legacy style metadata layout <= v.3.1.0 */ ret = system("cp test-legacy-3.0.1.sqlite copy-legacy-3.0.1.sqlite"); if (ret != 0) { fprintf(stderr, "cannot copy legacy v.3.0.1 database\n"); return -1; } cache = spatialite_alloc_connection(); ret = sqlite3_open_v2 ("copy-legacy-3.0.1.sqlite", &db_handle, SQLITE_OPEN_READWRITE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open legacy v.3.0.1 database: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } spatialite_init_ex (db_handle, cache, 0); ret = do_test(db_handle); if (ret != 0) { fprintf(stderr, "error while testing legacy style metadata layout\n"); return ret; } sqlite3_close (db_handle); spatialite_cleanup_ex (cache); ret = unlink("copy-legacy-3.0.1.sqlite"); if (ret != 0) { fprintf(stderr, "cannot remove legacy v.3.0.1 database\n"); return -20; } #endif /* end ICONV conditional */ return 0; } libspatialite-4.1.1/test/testcase1.csv0000664000175000017500000000517412163502134014662 000000000000002172515 "Candelo" "Candelo" "Candelo,Kandelo,Кандело" -36.76667 149.68333 "P" "PPL" "AU" 2 10550 895 152 "Australia/Sydney" "2011-08-08" 2172516 "Canbrae" "Canbrae" -28.21667 149.1 "S" "FRM" "AU" 4 33610 0 212 "Australia/Brisbane" "2011-06-04" 2172517 "Canberra" "Canberra" "Camberra,Canberra,Gorad Kanbera,Kamberra,Kambra,Kampera,Kanapera,Kanbera,Kanbero,Kanberra,Kanberrae,Kanbérra,Kānapera,kaenbeola,kainabara,kan pei la,kanbra,kanpara,kenabera,kyanabera,kyanbera,kynbra,qnbrh,Καμπέρα,Горад Канбера,Канбера,Канберрæ,Канберра,Канбє́ра,Կանբեռա,קאנבערא,קנברה,كانبرا,کانبرا,کینبرا,कॅनबेरा,कैनबरा,ক্যানবেরা,கான்பரா,แคนเบอร์รา,ཁན་པེ་ར།,კანბერა,ካንበራ,キャンベラ,坎培拉,堪培拉,캔버라" -35.28346 149.12807 "P" "PPLC" "AU" 1 327700 609 "Australia/Sydney" "2009-08-04" 2172518 "Canberra" "Canberra" -26.78333 148.43333 "S" "FRM" "AU" 4 34860 0 386 "Australia/Brisbane" "2011-06-04" 2172519 "Canbelego" "Canbelego" -31.56667 146.31667 "P" "PPL" "AU" 2 11750 0 347 "Australia/Sydney" "2011-06-04" 2172520 "Canaway Range" "Canaway Range" -26.11667 142.86667 "T" "MTS" "AU" 4 0 175 "Australia/Brisbane" "1993-12-30" 2172521 "Mount Canaway" "Mount Canaway" -26 143.91667 "T" "MT" "AU" 4 0 305 "Australia/Brisbane" "1993-12-30" 2172522 "Canary Island South" "Canary Island South" -36.05 143.86667 "P" "PPL" "AU" 7 23940 0 124 "Australia/Melbourne" "2011-06-04" 2172523 "Canary Island" "Canary Island" -35.98333 143.85 "P" "PPL" "AU" 7 23940 0 105 "Australia/Melbourne" "2011-06-04" 2172524 "Canary Creek" "Canary Creek" -24.28333 148.61667 "H" "STM" "AU" 4 0 221 "Australia/Brisbane" "1993-12-30" 2172525 "Canara Creek" "Canara Creek" -26.36667 144.23333 "H" "STM" "AU" 4 0 269 "Australia/Brisbane" "1993-12-30" 2172526 "Canally" "Canally" -34.7 143.43333 "S" "FRM" "AU" 2 10300 0 62 "Australia/Sydney" "2011-06-04" 2172527 "Canally" "Canally" -32.61667 144.38333 "S" "FRM" "AU" 2 11700 0 93 "Australia/Sydney" "2011-06-04" 2172528 "Canal Lagoon" "Canal Lagoon" -35.21667 150.55 "H" "LGN" "AU" 2 0 -9999 "Australia/Sydney" "1993-12-30" 2172529 "Canal Creek Bore" "Canal Creek Bore" -20.63333 140.9 "H" "WLL" "AU" 4 0 252 "Australia/Brisbane" "1993-12-30" 2172530 "Canal Creek" "Canal Creek" -27.86667 151.51667 "H" "STM" "AU" 4 0 459 "Australia/Brisbane" "1993-12-30" 2172531 "Canal Creek" "Canal Creek" -25.91667 149.48333 "H" "STM" "AU" 4 0 287 "Australia/Brisbane" "1993-12-30" libspatialite-4.1.1/test/check_virtual_ovflw.c0000664000175000017500000002703512163502133016454 00000000000000/* check_virtual_ovflw.c -- SpatiaLite Test Case Author: Sandro Furieri ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #define _GNU_SOURCE #include #include #include #include #include "sqlite3.h" #include "spatialite.h" int main (int argc, char *argv[]) { sqlite3 *db_handle = NULL; int ret; char *err_msg = NULL; char **results; int rows; int columns; int suffix_len = 16 * 1024; /* 16 KB suffix */ char *suffix; char *table; char *sql; void *cache = spatialite_alloc_connection(); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } spatialite_init_ex (db_handle, cache, 0); ret = sqlite3_exec (db_handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(db_handle); return -2; } /* setting up very long table and column names */ suffix = malloc(suffix_len); memset(suffix, 'z', suffix_len); suffix[suffix_len-1] = '\0'; #ifndef OMIT_FREEXL /* only if FreeXL is supported */ table = sqlite3_mprintf("xltest_%s", suffix); sql = sqlite3_mprintf("create VIRTUAL TABLE %s USING VirtualXL(\"testcase1.xls\");", table); ret = sqlite3_exec (db_handle, sql, NULL, NULL, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "VirtualXL error: %s\n", err_msg); sqlite3_free (err_msg); return -3; } sql = sqlite3_mprintf("select col_2, col_4, col_5, col_7, rowid " "from %s WHERE col_2 = \"Canal Creek\";", table); ret = sqlite3_get_table (db_handle, sql, &results, &rows, &columns, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -4; } if ((rows != 2) || (columns != 5)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -5; } if (strcmp(results[0], "col_2") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -6; } if (strcmp(results[5], "Canal Creek") != 0) { fprintf (stderr, "Unexpected error: name5() bad result: %s.\n", results[5]); return -7; } if (strncmp(results[6], "-27.86667", 9) != 0) { fprintf (stderr, "Unexpected error: lat1() bad result: %s.\n", results[6]); return -8; } if (strncmp(results[7], "151.51667", 9) != 0) { fprintf (stderr, "Unexpected error: lon2() bad result: %s.\n", results[7]); return -9; } if (strcmp(results[10], "Canal Creek") != 0) { fprintf (stderr, "Unexpected error: name10() bad result: %s.\n", results[10]); return -10; } sqlite3_free_table (results); sqlite3_free(table); #endif /* end FreeXL conditional */ #ifndef OMIT_ICONV /* only if ICONV is supported */ table = sqlite3_mprintf("shapetest_%s", suffix); sql = sqlite3_mprintf("create VIRTUAL TABLE %s USING VirtualShape(\"shapetest1\", UTF-8, 4326);", table); ret = sqlite3_exec (db_handle, sql, NULL, NULL, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "VirtualShape error: %s\n", err_msg); sqlite3_free (err_msg); return -11; } sql = sqlite3_mprintf("SELECT RegisterVirtualGeometry(%Q)", table); ret = sqlite3_get_table (db_handle, sql, &results, &rows, &columns, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "RegisterVirtualGeometry error: %s\n", err_msg); sqlite3_free (err_msg); return -12; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "RegisterVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -13; } if (strcmp(results[1], "1") != 0) { fprintf (stderr, "RegisterVirtualGeometry Unexpected error: header() bad result: %s.\n", results[1]); return -14; } sqlite3_free_table (results); sql = sqlite3_mprintf( "select testcase1, testcase2, AsText(Geometry) from %s where testcase2 < 20;", table); ret = sqlite3_get_table (db_handle, sql, &results, &rows, &columns, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -15; } if ((rows != 1) || (columns != 3)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -16; } if (strcmp(results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -17; } if (strcmp(results[3], "windward") != 0) { fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[3]); return -18; } if (strcmp(results[4], "2") != 0) { fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[4]); return -19; } if (strcmp(results[5], "POINT(3480766.311245 4495355.740524)") != 0) { fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]); return -20; } sqlite3_free_table (results); sql = sqlite3_mprintf("SELECT DropVirtualGeometry(%Q)", table); ret = sqlite3_get_table (db_handle, sql, &results, &rows, &columns, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "DropVirtualGeometry error: %s\n", err_msg); sqlite3_free (err_msg); return -21; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "DropVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -22; } if (strcmp(results[1], "1") != 0) { fprintf (stderr, "DropVirtualGeometry Unexpected error: header() bad result: %s.\n", results[0]); return -23; } sqlite3_free_table (results); sql = sqlite3_mprintf("create VIRTUAL TABLE %s USING VirtualDBF(shapetest1.dbf, UTF-8);", table); ret = sqlite3_exec (db_handle, sql, NULL, NULL, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "VirtualDBF error: %s\n", err_msg); sqlite3_free (err_msg); return -24; } sql = sqlite3_mprintf("select testcase1, testcase2 from %s where testcase2 < 20;", table); ret = sqlite3_get_table (db_handle, sql, &results, &rows, &columns, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -25; } if ((rows != 1) || (columns != 2)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -26; } if (strcmp(results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -27; } if (strcmp(results[2], "windward") != 0) { fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[2]); return -28; } if (strcmp(results[3], "2") != 0) { fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[3]); return -29; } sqlite3_free_table (results); sql = sqlite3_mprintf("DROP TABLE %s;", table); ret = sqlite3_exec (db_handle, sql, NULL, NULL, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE error: %s\n", err_msg); sqlite3_free (err_msg); return -30; } sqlite3_free(table); #endif /* end ICONV conditional */ sqlite3_close (db_handle); spatialite_cleanup_ex (cache); ret = system("cp sql_stmt_tests/testdb1.sqlite testdb1.sqlite"); if (ret != 0) { fprintf(stderr, "cannot copy testdb1.sqlite database\n"); return -131; } cache = spatialite_alloc_connection(); ret = sqlite3_open_v2 ("testdb1.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open testdb1.sqlite db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -31; } spatialite_init_ex (db_handle, cache, 0); table = sqlite3_mprintf("roads_net_%s", suffix); sql = sqlite3_mprintf("create VIRTUAL TABLE %s USING VirtualNetwork(\"roads_net_data\");", table); ret = sqlite3_exec (db_handle, sql, NULL, NULL, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "VirtualNetwork error: %s\n", err_msg); sqlite3_free (err_msg); return -32; } sql = sqlite3_mprintf("SELECT NodeFrom, NodeTo FROM %s WHERE NodeTo = 29 AND NodeFrom = 32;", table); ret = sqlite3_get_table (db_handle, sql, &results, &rows, &columns, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -33; } if ((rows != 4) || (columns != 2)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -34; } if (strcmp(results[0], "NodeFrom") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -35; } if (strcmp(results[2], "32") != 0) { fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[2]); return -36; } if (strcmp(results[3], "29") != 0) { fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[3]); return -37; } sqlite3_free_table (results); sql = sqlite3_mprintf("DROP TABLE %s;", table); ret = sqlite3_exec (db_handle, sql, NULL, NULL, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE error: %s\n", err_msg); sqlite3_free (err_msg); return -38; } sqlite3_free(table); sqlite3_close (db_handle); spatialite_cleanup_ex (cache); ret = unlink("testdb1.sqlite"); if (ret != 0) { fprintf(stderr, "cannot remove testdb1 database\n"); return -39; } free(suffix); return 0; } libspatialite-4.1.1/test/22.dxf0000664000175000017500000006055612163502133013203 00000000000000 0 SECTION 2 HEADER 9 $ACADVER 1 AC1015 9 $ACADMAINTVER 70 20 9 $DWGCODEPAGE 3 ANSI_1252 9 $INSBASE 10 0.0 20 0.0 30 0.0 9 $EXTMIN 10 602115.796875 20 961637.7187500001 30 0.0 9 $EXTMAX 10 605457.53125 20 964469.4531250001 30 0.0 9 $LIMMIN 10 0.0 20 0.0 9 $LIMMAX 10 12.0 20 9.0 9 $ORTHOMODE 70 1 9 $REGENMODE 70 1 9 $FILLMODE 70 1 9 $QTEXTMODE 70 0 9 $MIRRTEXT 70 0 9 $LTSCALE 40 1.0 9 $ATTMODE 70 1 9 $TEXTSIZE 40 0.2 9 $TRACEWID 40 0.05 9 $TEXTSTYLE 7 Standard 9 $CLAYER 8 0 9 $CELTYPE 6 Continuous 9 $CECOLOR 62 256 9 $CELTSCALE 40 1.0 9 $DISPSILH 70 0 9 $DIMSCALE 40 1.0 9 $DIMASZ 40 0.18 9 $DIMEXO 40 0.0625 9 $DIMDLI 40 0.38 9 $DIMRND 40 0.0 9 $DIMDLE 40 0.0 9 $DIMEXE 40 0.18 9 $DIMTP 40 0.0 9 $DIMTM 40 0.0 9 $DIMTXT 40 0.18 9 $DIMCEN 40 0.09 9 $DIMTSZ 40 0.0 9 $DIMTOL 70 0 9 $DIMLIM 70 0 9 $DIMTIH 70 1 9 $DIMTOH 70 1 9 $DIMSE1 70 0 9 $DIMSE2 70 0 9 $DIMTAD 70 0 9 $DIMZIN 70 0 9 $DIMBLK 1 9 $DIMASO 70 1 9 $DIMSHO 70 1 9 $DIMPOST 1 9 $DIMAPOST 1 9 $DIMALT 70 0 9 $DIMALTD 70 2 9 $DIMALTF 40 25.4 9 $DIMLFAC 40 1.0 9 $DIMTOFL 70 0 9 $DIMTVP 40 0.0 9 $DIMTIX 70 0 9 $DIMSOXD 70 0 9 $DIMSAH 70 0 9 $DIMBLK1 1 9 $DIMBLK2 1 9 $DIMSTYLE 2 Standard 9 $DIMCLRD 70 0 9 $DIMCLRE 70 0 9 $DIMCLRT 70 0 9 $DIMTFAC 40 1.0 9 $DIMGAP 40 0.09 9 $DIMJUST 70 0 9 $DIMSD1 70 0 9 $DIMSD2 70 0 9 $DIMTOLJ 70 1 9 $DIMTZIN 70 0 9 $DIMALTZ 70 0 9 $DIMALTTZ 70 0 9 $DIMUPT 70 0 9 $DIMDEC 70 4 9 $DIMTDEC 70 4 9 $DIMALTU 70 2 9 $DIMALTTD 70 2 9 $DIMTXSTY 7 Standard 9 $DIMAUNIT 70 0 9 $DIMADEC 70 0 9 $DIMALTRND 40 0.0 9 $DIMAZIN 70 0 9 $DIMDSEP 70 46 9 $DIMATFIT 70 3 9 $DIMFRAC 70 0 9 $DIMLDRBLK 1 9 $DIMLUNIT 70 2 9 $DIMLWD 70 -2 9 $DIMLWE 70 -2 9 $DIMTMOVE 70 0 9 $LUNITS 70 2 9 $LUPREC 70 4 9 $SKETCHINC 40 0.1 9 $FILLETRAD 40 0.0 9 $AUNITS 70 0 9 $AUPREC 70 0 9 $MENU 1 . 9 $ELEVATION 40 0.0 9 $PELEVATION 40 0.0 9 $THICKNESS 40 0.0 9 $LIMCHECK 70 0 9 $CHAMFERA 40 0.0 9 $CHAMFERB 40 0.0 9 $CHAMFERC 40 0.0 9 $CHAMFERD 40 0.0 9 $SKPOLY 70 0 9 $TDCREATE 40 2454957.424852315 9 $TDUCREATE 40 2454957.383185649 9 $TDUPDATE 40 2456297.477353959 9 $TDUUPDATE 40 2456297.435687292 9 $TDINDWG 40 0.4710542014 9 $TDUSRTIMER 40 0.4710542014 9 $USRTIMER 70 1 9 $ANGBASE 50 0.0 9 $ANGDIR 70 0 9 $PDMODE 70 0 9 $PDSIZE 40 0.0 9 $PLINEWID 40 0.0 9 $SPLFRAME 70 0 9 $SPLINETYPE 70 6 9 $SPLINESEGS 70 8 9 $HANDSEED 5 B1CE 9 $SURFTAB1 70 6 9 $SURFTAB2 70 6 9 $SURFTYPE 70 6 9 $SURFU 70 6 9 $SURFV 70 6 9 $UCSBASE 2 9 $UCSNAME 2 9 $UCSORG 10 0.0 20 0.0 30 0.0 9 $UCSXDIR 10 1.0 20 0.0 30 0.0 9 $UCSYDIR 10 0.0 20 1.0 30 0.0 9 $UCSORTHOREF 2 9 $UCSORTHOVIEW 70 0 9 $UCSORGTOP 10 0.0 20 0.0 30 0.0 9 $UCSORGBOTTOM 10 0.0 20 0.0 30 0.0 9 $UCSORGLEFT 10 0.0 20 0.0 30 0.0 9 $UCSORGRIGHT 10 0.0 20 0.0 30 0.0 9 $UCSORGFRONT 10 0.0 20 0.0 30 0.0 9 $UCSORGBACK 10 0.0 20 0.0 30 0.0 9 $PUCSBASE 2 9 $PUCSNAME 2 9 $PUCSORG 10 0.0 20 0.0 30 0.0 9 $PUCSXDIR 10 1.0 20 0.0 30 0.0 9 $PUCSYDIR 10 0.0 20 1.0 30 0.0 9 $PUCSORTHOREF 2 9 $PUCSORTHOVIEW 70 0 9 $PUCSORGTOP 10 0.0 20 0.0 30 0.0 9 $PUCSORGBOTTOM 10 0.0 20 0.0 30 0.0 9 $PUCSORGLEFT 10 0.0 20 0.0 30 0.0 9 $PUCSORGRIGHT 10 0.0 20 0.0 30 0.0 9 $PUCSORGFRONT 10 0.0 20 0.0 30 0.0 9 $PUCSORGBACK 10 0.0 20 0.0 30 0.0 9 $USERI1 70 0 9 $USERI2 70 0 9 $USERI3 70 0 9 $USERI4 70 0 9 $USERI5 70 0 9 $USERR1 40 0.0 9 $USERR2 40 0.0 9 $USERR3 40 0.0 9 $USERR4 40 0.0 9 $USERR5 40 0.0 9 $WORLDVIEW 70 1 9 $SHADEDGE 70 3 9 $SHADEDIF 70 70 9 $TILEMODE 70 1 9 $MAXACTVP 70 64 9 $PINSBASE 10 0.0 20 0.0 30 0.0 9 $PLIMCHECK 70 0 9 $PEXTMIN 10 1.000000000000000E+20 20 1.000000000000000E+20 30 1.000000000000000E+20 9 $PEXTMAX 10 -1.000000000000000E+20 20 -1.000000000000000E+20 30 -1.000000000000000E+20 9 $PLIMMIN 10 0.0 20 0.0 9 $PLIMMAX 10 12.0 20 9.0 9 $UNITMODE 70 0 9 $VISRETAIN 70 1 9 $PLINEGEN 70 0 9 $PSLTSCALE 70 1 9 $TREEDEPTH 70 3020 9 $CMLSTYLE 2 Standard 9 $CMLJUST 70 0 9 $CMLSCALE 40 1.0 9 $PROXYGRAPHICS 70 1 9 $MEASUREMENT 70 0 9 $CELWEIGHT 370 -1 9 $ENDCAPS 280 0 9 $JOINSTYLE 280 0 9 $LWDISPLAY 290 0 9 $INSUNITS 70 6 9 $HYPERLINKBASE 1 9 $STYLESHEET 1 9 $XEDIT 290 1 9 $CEPSNTYPE 380 0 9 $PSTYLEMODE 290 1 9 $FINGERPRINTGUID 2 {E4D93A1D-E743-440C-AF20-08095301FC97} 9 $VERSIONGUID 2 {4ABEB1F0-D49C-4879-85A9-6A4C0FB530C9} 9 $EXTNAMES 290 1 9 $PSVPSCALE 40 0.0 9 $OLESTARTUP 290 0 0 ENDSEC 0 SECTION 2 CLASSES 0 CLASS 1 ACDBDICTIONARYWDFLT 2 AcDbDictionaryWithDefault 3 ObjectDBX Classes 90 0 280 0 281 0 0 CLASS 1 TABLESTYLE 2 AcDbTableStyle 3 ObjectDBX Classes 90 2047 280 0 281 0 0 CLASS 1 DICTIONARYVAR 2 AcDbDictionaryVar 3 ObjectDBX Classes 90 0 280 0 281 0 0 CLASS 1 ACDBPLACEHOLDER 2 AcDbPlaceHolder 3 ObjectDBX Classes 90 0 280 0 281 0 0 CLASS 1 LAYOUT 2 AcDbLayout 3 ObjectDBX Classes 90 0 280 0 281 0 0 CLASS 1 SORTENTSTABLE 2 AcDbSortentsTable 3 ObjectDBX Classes 90 0 280 0 281 0 0 ENDSEC 0 SECTION 2 TABLES 0 TABLE 2 VPORT 5 1F 330 0 100 AcDbSymbolTable 70 6 0 VPORT 5 B1C7 330 1F 100 AcDbSymbolTableRecord 100 AcDbViewportTableRecord 2 *Active 70 0 10 0.0 20 0.0 11 1.0 21 1.0 12 603786.6640625001 22 963053.5859375001 13 0.0 23 0.0 14 1.0 24 1.0 15 0.0 25 0.0 16 0.0 26 0.0 36 1.0 17 0.0 27 0.0 37 0.0 40 2854.418495493941 41 1.635026737967914 42 50.0 43 0.0 44 0.0 50 0.0 51 0.0 71 0 72 100 73 1 74 1 75 0 76 0 77 0 78 0 281 0 65 1 110 0.0 120 0.0 130 0.0 111 1.0 121 0.0 131 0.0 112 0.0 122 1.0 132 0.0 79 0 146 0.0 0 ENDTAB 0 TABLE 2 LTYPE 5 1A 330 0 100 AcDbSymbolTable 70 2 0 LTYPE 5 1B 330 1A 100 AcDbSymbolTableRecord 100 AcDbLinetypeTableRecord 2 ByBlock 70 0 3 72 65 73 0 40 0.0 0 LTYPE 5 1C 330 1A 100 AcDbSymbolTableRecord 100 AcDbLinetypeTableRecord 2 ByLayer 70 0 3 72 65 73 0 40 0.0 0 LTYPE 5 A 330 1A 100 AcDbSymbolTableRecord 100 AcDbLinetypeTableRecord 2 Continuous 70 0 3 Solid line 72 65 73 0 40 0.0 0 ENDTAB 0 TABLE 2 LAYER 5 12 102 {ACAD_XDICTIONARY 360 13 102 } 330 0 100 AcDbSymbolTable 70 21 0 LAYER 5 6 330 12 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 0 70 0 62 7 6 Continuous 370 -3 390 7 0 LAYER 5 247 330 12 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 FERR_LIN 70 0 62 7 6 Continuous 370 -3 390 7 0 LAYER 5 B161 330 12 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 GRIGLIA 70 0 62 150 6 Continuous 370 -3 390 7 0 LAYER 5 B16B 330 12 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 GRIGLIA_TESTI 70 0 62 150 6 Continuous 370 -3 390 7 0 LAYER 5 2CD 330 12 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 QUARTIERI 70 0 62 30 6 Continuous 370 -3 390 7 0 LAYER 5 2D6 330 12 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 QUARTIERI_TESTI 70 0 62 30 6 Continuous 370 -3 390 7 0 LAYER 5 2DA 330 12 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 SCARPATE 70 0 62 253 6 Continuous 370 -3 390 7 0 LAYER 5 33D 330 12 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 TOPONIMI 70 0 62 253 6 Continuous 370 -3 390 7 0 LAYER 5 376 330 12 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 TORRENTIRID 70 0 62 140 6 Continuous 370 -3 390 7 0 LAYER 5 B15E 330 12 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 TUSCS 70 0 62 50 6 Continuous 370 -3 390 7 0 LAYER 5 388 330 12 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 VESPOL 70 0 62 253 6 Continuous 370 -3 390 7 0 LAYER 5 3C0 330 12 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 VESPUN 70 0 62 253 6 Continuous 370 -3 390 7 0 LAYER 5 437 330 12 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 VIAB02NOMI 70 0 62 254 6 Continuous 370 -3 390 7 0 LAYER 5 1245 330 12 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 VIAB04 70 0 62 3 6 Continuous 370 -3 390 7 0 LAYER 5 3C0C 330 12 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 VIAB04_TESTI 70 0 62 3 6 Continuous 370 -3 390 7 0 LAYER 5 2E 330 12 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 VUOVIA 70 0 62 253 6 Continuous 370 -3 390 7 0 LAYER 5 B50 330 12 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 VIAB02NOMI_TESTI 70 0 62 1 6 Continuous 370 -3 390 7 0 LAYER 5 65DB 330 12 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 FABBRI 70 0 62 31 6 Continuous 370 -3 390 7 0 LAYER 5 A609 330 12 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 VIAB01 70 0 62 7 6 Continuous 370 -3 390 7 0 LAYER 5 7F4B 330 12 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 VESLIN 70 0 62 253 6 Continuous 370 -3 390 7 0 ENDTAB 0 TABLE 2 STYLE 5 17 330 0 100 AcDbSymbolTable 70 2 0 STYLE 5 18 330 17 100 AcDbSymbolTableRecord 100 AcDbTextStyleTableRecord 2 Standard 70 0 40 0.0 41 1.0 50 0.0 71 0 42 0.2 3 txt 4 0 STYLE 5 B51 330 17 100 AcDbSymbolTableRecord 100 AcDbTextStyleTableRecord 2 Arial 70 0 40 0.0 41 1.0 50 0.0 71 0 42 0.2 3 ARIAL.TTF 4 1001 ACAD 1000 Arial 1071 0 0 ENDTAB 0 TABLE 2 VIEW 5 1D 330 0 100 AcDbSymbolTable 70 0 0 ENDTAB 0 TABLE 2 UCS 5 1E 330 0 100 AcDbSymbolTable 70 0 0 ENDTAB 0 TABLE 2 APPID 5 21 330 0 100 AcDbSymbolTable 70 1 0 APPID 5 16 330 21 100 AcDbSymbolTableRecord 100 AcDbRegAppTableRecord 2 ACAD 70 0 0 ENDTAB 0 TABLE 2 DIMSTYLE 5 22 330 0 100 AcDbSymbolTable 70 2 100 AcDbDimStyleTable 71 0 0 DIMSTYLE 105 2C 330 22 100 AcDbSymbolTableRecord 100 AcDbDimStyleTableRecord 2 Standard 70 0 340 18 0 ENDTAB 0 TABLE 2 BLOCK_RECORD 5 1 330 0 100 AcDbSymbolTable 70 1 0 BLOCK_RECORD 5 2 102 {ACAD_XDICTIONARY 360 3 102 } 330 1 100 AcDbSymbolTableRecord 100 AcDbBlockTableRecord 2 *Model_Space 340 C 0 BLOCK_RECORD 5 E 330 1 100 AcDbSymbolTableRecord 100 AcDbBlockTableRecord 2 *Paper_Space 340 11 0 ENDTAB 0 ENDSEC 0 SECTION 2 BLOCKS 0 BLOCK 5 5 330 2 100 AcDbEntity 8 0 100 AcDbBlockBegin 2 *Model_Space 70 0 10 0.0 20 0.0 30 0.0 3 *Model_Space 1 0 ENDBLK 5 B 330 2 100 AcDbEntity 8 0 100 AcDbBlockEnd 0 BLOCK 5 F 330 E 100 AcDbEntity 67 1 8 0 100 AcDbBlockBegin 2 *Paper_Space 70 0 10 0.0 20 0.0 30 0.0 3 *Paper_Space 1 0 ENDBLK 5 10 330 E 100 AcDbEntity 67 1 8 0 100 AcDbBlockEnd 0 ENDSEC 0 SECTION 2 ENTITIES 0 LWPOLYLINE 5 2D 330 2 100 AcDbEntity 8 VUOVIA 100 AcDbPolyline 90 33 70 0 43 0.0 10 605067.461566588 20 964463.8900049555 10 605066.1518000001 20 964456.5304000005 10 605063.7647000002 20 964450.0256000032 10 605062.2284000013 20 964446.8836000022 10 605060.9081000006 20 964444.3896999993 10 605059.7345000003 20 964441.822400002 10 605058.2675000019 20 964439.0351000019 10 605056.7272000005 20 964436.614600001 10 605054.8201000011 20 964434.5607999992 10 605053.8715000023 20 964433.7307999991 10 605053.0597000011 20 964433.0204000027 10 605051.8126999996 20 964432.2869000006 10 605050.1256999997 20 964431.4801000003 10 605048.9832999995 20 964431.1649000012 10 605047.9984999998 20 964430.8933000006 10 605046.7014000006 20 964430.8231000024 10 605045.2846000009 20 964430.7466000022 10 605042.0571999997 20 964430.4531999994 10 605035.9438000005 20 964430.1807000005 10 605034.2199999998 20 964429.9991999995 10 605029.2704999996 20 964429.9230000022 10 605023.8299000003 20 964430.5518999994 10 605019.5698000006 20 964431.2432000004 10 605014.9455999993 20 964432.5893000011 10 605010.626600001 20 964434.2849000024 10 605005.5176000008 20 964436.2206999995 10 605001.8887000018 20 964438.1926000008 10 604998.1287000012 20 964441.2343000025 10 604994.8519000011 20 964445.0837999993 10 604992.1574000009 20 964449.1583000013 10 604990.3370000003 20 964452.9418000002 10 604988.7713000011 20 964458.1443000008 10 604986.9848936607 20 964462.5783273287 0 LWPOLYLINE 5 36 330 2 100 AcDbEntity 8 VUOVIA 100 AcDbPolyline 90 8 70 1 43 0.0 10 605038.3097 20 964417.4635000043 10 605036.2088000001 20 964411.8126999979 10 605032.9289000007 20 964414.1215000004 10 605030.8686000016 20 964415.2428000012 10 605030.6259000013 20 964415.3749000039 10 605028.6983000003 20 964417.4445000011 10 605031.4258000013 20 964417.258899998 10 605034.9945999998 20 964417.0161000026 0 LWPOLYLINE 5 C4 330 2 100 AcDbEntity 8 VUOVIA 100 AcDbPolyline 90 26 70 1 43 0.0 10 603445.1815999998 20 963097.616200002 10 603444.025200001 20 963097.5636000037 10 603442.7571000001 20 963097.7266000007 10 603441.3175999997 20 963098.3131000029 10 603440.2007000009 20 963099.2204999998 10 603439.3112000013 20 963100.4066000024 10 603438.7155999998 20 963101.7378000002 10 603438.5389 20 963103.4700000007 10 603438.9316999996 20 963105.3219000008 10 603439.4432000016 20 963106.3120000046 10 603439.6689999997 20 963106.5830000025 10 603440.104700001 20 963107.105800003 10 603441.4987999992 20 963108.1560999994 10 603442.9342999999 20 963108.7232000009 10 603444.4706000016 20 963108.8629000002 10 603446.0024000006 20 963108.5491000023 10 603447.1664000005 20 963108.0453000013 10 603448.1980999997 20 963107.2027000023 10 603449.1846000012 20 963105.8812000027 10 603449.6464 20 963104.7010000031 10 603449.8492 20 963103.2444999982 10 603449.7118999995 20 963101.8539000024 10 603449.3681000014 20 963101.0634000004 10 603448.9886000017 20 963100.1905000024 10 603447.8212000011 20 963098.8406000007 10 603446.6119 20 963098.0631000028 0 TEXT 5 53E1 330 2 100 AcDbEntity 8 VIAB04_TESTI 100 AcDbText 10 605403.3043343842 20 962381.2785594415 30 0.0 40 1.016002032004063 1 24 A 7 Arial 72 1 11 605404.7652704576 21 962380.9777784853 31 0.0 100 AcDbText 73 1 0 TEXT 5 53E2 330 2 100 AcDbEntity 8 VIAB04_TESTI 100 AcDbText 10 605167.4293343854 20 962423.9035594415 30 0.0 40 1.016002032004063 1 49 A 7 Arial 72 1 11 605168.8902704587 21 962423.6027784853 31 0.0 100 AcDbText 73 1 0 LWPOLYLINE 5 AE8E 330 2 100 AcDbEntity 8 VIAB01 100 AcDbPolyline 90 117 70 1 43 0.0 10 605234.4713000003 20 964005.9986000006 10 605228.7942000003 20 964007.4591000006 10 605253.3174999999 20 964096.7792000008 10 605253.3578000003 20 964096.9129000009 10 605253.7092000005 20 964097.9879000001 10 605253.7198999999 20 964098.0200999994 10 605253.7890999997 20 964098.2039 10 605253.8044999996 20 964098.2404999995 10 605254.2511 20 964099.2795000002 10 605254.3167000003 20 964099.4217000008 10 605254.3685999997 20 964099.5220999997 10 605254.9067000001 20 964100.5168999994 10 605254.9473000001 20 964100.5896000006 10 605255.0456999997 20 964100.7484000009 10 605255.6710000001 20 964101.6907000002 10 605255.6763000004 20 964101.6985999998 10 605255.7906 20 964101.8582000008 10 605255.8300000001 20 964101.9083999992 10 605256.5373999998 20 964102.7907999998 10 605256.6226000004 20 964102.8923000005 10 605256.7156999996 20 964102.9936999997 10 605257.4995999997 20 964103.8089000005 10 605257.5406999999 20 964103.8508000001 10 605257.6840000003 20 964103.9849999994 10 605257.6948999996 20 964103.9945000002 10 605258.5488 20 964104.7360999994 10 605258.6896000001 20 964104.8511999995 10 605258.7604000001 20 964104.9037999996 10 605259.6775000003 20 964105.5656000004 10 605259.7663000003 20 964105.6272999998 10 605259.9033000004 20 964105.7136000004 10 605260.8761999998 20 964106.2903000005 10 605260.9058999997 20 964106.3077000007 10 605261.0789999999 20 964106.4002 10 605261.1140000001 20 964106.4171999992 10 605262.1347000003 20 964106.9042000008 10 605262.2785 20 964106.9682000001 10 605262.3833999997 20 964107.0094000008 10 605263.4437999995 20 964107.4026999996 10 605263.5226999997 20 964107.4307000003 10 605263.7007 20 964107.4849999995 10 605264.7921000001 20 964107.7814000007 10 605264.8019000003 20 964107.7840999999 10 605264.9930999996 20 964107.8287000006 10 605265.0553000002 20 964107.8402999994 10 605266.1688999999 20 964108.0374999997 10 605266.3004000001 20 964108.0578000007 10 605266.4365999997 20 964108.0725999998 10 605267.5635000002 20 964108.1688999999 10 605267.6227000002 20 964108.1733999998 10 605267.8189000003 20 964108.1798000001 10 605267.8329999997 20 964108.1798000001 10 605268.9638999999 20 964108.1744999999 10 605269.1459999998 20 964108.1680999995 10 605269.2334000003 20 964108.1611000002 10 605270.3592999996 20 964108.0541999992 10 605270.4672999997 20 964108.0418999997 10 605270.6264000004 20 964108.0165999998 10 605271.7381999996 20 964107.8090000004 10 605271.7728000004 20 964107.8024000005 10 605271.9639999997 20 964107.7577999999 10 605272.0011 20 964107.7476000004 10 605273.0895999996 20 964107.4408999998 10 605273.2402999997 20 964107.3940999993 10 605273.3454999998 20 964107.3562000002 10 605274.4022000004 20 964106.9529999999 10 605274.4808 20 964106.9217000008 10 605274.6497999998 20 964106.8454999999 10 605275.6659000004 20 964106.3489999995 10 605275.6756999996 20 964106.3442000003 10 605275.7857999997 20 964106.2871000004 10 605296.5012999997 20 964094.9835 10 605298.1973000001 20 964094.1017000006 10 605299.8998999996 20 964093.3014000003 10 605301.6333999997 20 964092.5700000003 10 605303.3947999999 20 964091.9087000007 10 605305.1812000004 20 964091.3186000009 10 605307.0477 20 964090.7839000002 10 605306.2215999998 20 964087.8999000006 10 605305.4451000001 20 964085.0021000002 10 605305.3954999996 20 964085.0159000009 10 605303.4711999996 20 964085.5670999997 10 605303.3563000001 20 964085.602499999 10 605301.4556 20 964086.2303999998 10 605301.4323000005 20 964086.2381999996 10 605301.3421000001 20 964086.2704000008 10 605299.4681000002 20 964086.9739999995 10 605299.3744999999 20 964087.0110000001 10 605299.3564999997 20 964087.0185000004 10 605297.5121999998 20 964087.796599999 10 605297.4022000004 20 964087.8456999995 10 605295.5905999998 20 964088.6972000004 10 605295.5398000004 20 964088.7215999999 10 605295.4828000004 20 964088.7504999993 10 605293.7067999998 20 964089.6739000009 10 605293.6536999997 20 964089.7020999995 10 605272.9710999997 20 964100.9878000003 10 605272.1370000001 20 964101.3954000008 10 605271.3324999995 20 964101.702299999 10 605270.5039999997 20 964101.9357999994 10 605269.6577000004 20 964102.0938000009 10 605268.8006999996 20 964102.1752000005 10 605267.9397999998 20 964102.1791999992 10 605267.0821000003 20 964102.1059000008 10 605266.2344000005 20 964101.9558000007 10 605265.4035999998 20 964101.7302000001 10 605264.5964999999 20 964101.4308000002 10 605263.8196000001 20 964101.0601000004 10 605263.0789999999 20 964100.6210999993 10 605262.381 20 964100.1174999999 10 605261.7309999997 20 964099.5528999996 10 605261.1342000002 20 964098.9322999995 10 605260.5958000003 20 964098.2607000005 10 605260.1198000004 20 964097.5434000008 10 605259.7101999996 20 964096.7862000001 10 605259.3701999998 20 964095.9952000008 10 605259.0824999995 20 964095.1151000002 0 LWPOLYLINE 5 B1B9 330 2 100 AcDbEntity 8 FABBRI 100 AcDbPolyline 90 12 70 0 43 0.0 10 605432.0055819957 20 963146.2840280269 10 605430.7353971335 20 963140.603414833 10 605425.809581031 20 963141.9281802715 10 605423.9687499774 20 963136.4999999805 10 605341.1515153713 20 963156.8659114115 10 605348.750000009 20 963185.6249999753 10 605363.8437500146 20 963181.7656249964 10 605370.2031249767 20 963205.9375000064 10 605402.7812500186 20 963197.562499975 10 605406.3682850699 20 963210.9199146306 10 605430.7495699418 20 963203.524590796 10 605431.0016530944 20 963203.4812683187 0 POINT 5 3C0A 330 2 100 AcDbEntity 8 VIAB04 100 AcDbPoint 10 602685.9717 20 964122.329500001 30 0.0 0 POINT 5 3CA 330 2 100 AcDbEntity 8 VESPUN 100 AcDbPoint 10 602499.40625 20 962249.5781250002 30 0.0 0 POINT 5 3CB 330 2 100 AcDbEntity 8 VESPUN 100 AcDbPoint 10 602378.4531250001 20 962051.515625 30 0.0 0 POINT 5 3CA 330 2 100 AcDbEntity 8 VESPUN 100 AcDbPoint 10 602499.40625 20 962249.5781250002 30 0.0 0 ENDSEC 0 EOF libspatialite-4.1.1/test/shapetest1.shx0000664000175000017500000000016412163502133015047 00000000000000' : '_JA1d%QA0giJAR#R&QA2 @ libspatialite-4.1.1/test/getcapabilities-1.1.0.wfs0000664000175000017500000010367512163502133016562 00000000000000GeoServer Web Feature ServiceThis is the reference implementation of WFS 1.0.0 and WFS 1.1.0, supports all WFS operations including Transaction.WFSWMSGEOSERVERWFS1.1.0NONENONEThe ancient geographes INCClaudius PtolomaeusChief geographerAlexandriaEgypt1.0.01.1.0text/xmltext/xml; subtype=gml/3.1.1resultshitstext/xml; subtype=gml/3.1.1GML2GML2-GZIPSHAPE-ZIPcsvgml3jsontext/xml; subtype=gml/2.1.22ALLSOMEresultshitstext/xml; subtype=gml/3.1.1GML2GML2-GZIPSHAPE-ZIPcsvgml3jsontext/xml; subtype=gml/2.1.2text/xml; subtype=gml/3.1.1GenerateNewUseExistingReplaceDuplicateALLSOMEQueryInsertUpdateDeleteLocktiger:poly_landmarksManhattan (NY) landmarksManhattan landmarks, identifies water, lakes, parks, interesting buildilngslandmarksDS_poly_landmarksmanhattanpoly_landmarksurn:x-ogc:def:crs:EPSG:4326-74.047185 40.679648-73.90782 40.882078tiger:poiManhattan (NY) points of interestPoints of interest in New York, New York (on Manhattan). One of the attributes contains the name of a file with a picture of the point of interest.poiManhattanDS_poipoints_of_interesturn:x-ogc:def:crs:EPSG:4326-74.0118315772888 40.70754683896324-74.00857344353275 40.711945649065406tiger:tiger_roadsManhattan (NY) roadsHighly simplified road layout of Manhattan in New York..DS_tiger_roadstiger_roadsroadsurn:x-ogc:def:crs:EPSG:4326-74.02722 40.684221-73.907005 40.878178sf:archsitesSpearfish archeological sitesSample data from GRASS, archeological sites location, Spearfish, South Dakota, USAarchsitesspearfishsfArchsitesarcheologyurn:x-ogc:def:crs:EPSG:26713-103.8725637911543 44.37740330855979-103.63794182141925 44.48804280772808sf:bugsitesSpearfish bug locationsSample data from GRASS, bug sites location, Spearfish, South Dakota, USAspearfishsfBugsitesinsectsbugsitestiger_beetlesurn:x-ogc:def:crs:EPSG:26713-103.86796131703647 44.373938816704396-103.63773523234195 44.43418821380063sf:restrictedSpearfish restricted areasSample data from GRASS, restricted areas, Spearfish, South Dakota, USAspearfishrestrictedareassfRestrictedurn:x-ogc:def:crs:EPSG:26713-103.85057172920756 44.39436387625042-103.74741494853805 44.48215752041131sf:roadsSpearfish roadsSample data from GRASS, road layout, Spearfish, South Dakota, USAsfRoadsspearfishroadsurn:x-ogc:def:crs:EPSG:26713-103.87741691493184 44.37087275281798-103.62231404880659 44.50015918338962sf:streamsSpearfish streamsSample data from GRASS, streams, Spearfish, South Dakota, USAspearfishsfStreamsstreamsurn:x-ogc:def:crs:EPSG:26713-103.87789019829768 44.372335260095554-103.62287788915457 44.502218486214815topp:tasmania_citiesTasmania citiesCities in Tasmania (actually, just the capital)citiesTasmaniaurn:x-ogc:def:crs:EPSG:4326145.19754 -43.423512148.27298000000002 -40.852802topp:tasmania_roadsTasmania roadsMain Tasmania roadsRoadsTasmaniaurn:x-ogc:def:crs:EPSG:4326145.19754 -43.423512148.27298000000002 -40.852802topp:tasmania_state_boundariesTasmania state boundariesTasmania state boundariesboundariestasmania_state_boundariesTasmaniaurn:x-ogc:def:crs:EPSG:4326143.83482400000003 -43.648056148.47914100000003 -39.573891topp:tasmania_water_bodiesTasmania water bodiesTasmania water bodiesLakesBodiesAustraliaWaterTasmaniaurn:x-ogc:def:crs:EPSG:4326145.97161899999998 -43.031944147.219696 -41.775558topp:statesUSA PopulationThis is some census data on the states.censusunitedboundariesstatestatesurn:x-ogc:def:crs:EPSG:4326-124.731422 24.955967-66.969849 49.371735tiger:giant_polygonWorld rectangleA simple rectangular polygon covering most of the world, it's only used for the purpose of providing a background (WMS bgcolor could be used instead)DS_giant_polygongiant_polygonurn:x-ogc:def:crs:EPSG:4326-180.0 -90.0180.0 90.0topp:centri_abitati_sismacentri_abitatiurn:x-ogc:def:crs:EPSG:2583210.721 44.61311.656 44.92topp:comuni_sismacomuniurn:x-ogc:def:crs:EPSG:2583210.645 44.55311.884 44.975topp:comunicomuniurn:x-ogc:def:crs:EPSG:230326.539 35.21719.614 47.136topp:edifici_sismaedificiurn:x-ogc:def:crs:EPSG:2583210.65 44.55511.881 44.97topp:f02f02urn:x-ogc:def:crs:EPSG:2583211.134 46.61911.214 46.691topp:f03f03urn:x-ogc:def:crs:EPSG:2583211.134 46.61911.214 46.695topp:f04f04urn:x-ogc:def:crs:EPSG:2583211.134 46.61911.214 46.695topp:f05f05urn:x-ogc:def:crs:EPSG:2583211.134 46.61911.214 46.695topp:f06f06urn:x-ogc:def:crs:EPSG:2583211.134 46.61911.214 46.694topp:f08f08urn:x-ogc:def:crs:EPSG:2583211.134 46.61911.214 46.694topp:ferrovieferrovieurn:x-ogc:def:crs:EPSG:230326.578 36.52619.547 47.048topp:l02l02urn:x-ogc:def:crs:EPSG:2583211.134 46.61911.214 46.695topp:l03l03urn:x-ogc:def:crs:EPSG:2583211.134 46.61911.204 46.691topp:l05l05urn:x-ogc:def:crs:EPSG:2583211.134 46.61911.213 46.694topp:l06l06urn:x-ogc:def:crs:EPSG:2583211.134 46.61911.214 46.694topp:l07l07urn:x-ogc:def:crs:EPSG:2583211.134 46.61911.214 46.695topp:l09l09urn:x-ogc:def:crs:EPSG:2583211.134 46.61911.213 46.692topp:l10l10urn:x-ogc:def:crs:EPSG:2583211.134 46.6211.213 46.695topp:localita_sismalocalitaurn:x-ogc:def:crs:EPSG:2583210.666 44.56611.877 44.967topp:p02p02urn:x-ogc:def:crs:EPSG:2583211.148 46.65811.157 46.681topp:p03p03urn:x-ogc:def:crs:EPSG:2583211.134 46.6211.212 46.691topp:p05p05urn:x-ogc:def:crs:EPSG:2583211.134 46.6211.203 46.69topp:p06p06urn:x-ogc:def:crs:EPSG:2583211.135 46.6211.211 46.69topp:p07p07urn:x-ogc:def:crs:EPSG:2583211.134 46.61911.214 46.695topp:p08p08urn:x-ogc:def:crs:EPSG:2583211.134 46.6211.211 46.69topp:p09p09urn:x-ogc:def:crs:EPSG:2583211.134 46.61911.213 46.691topp:p10p10urn:x-ogc:def:crs:EPSG:2583211.138 46.6211.204 46.69topp:poi_testpoi_testurn:x-ogc:def:crs:EPSG:2583211.152 46.64111.192 46.682topp:province_sismaprovinceurn:x-ogc:def:crs:EPSG:2583210.645 44.55311.884 44.975topp:provinceprovinceurn:x-ogc:def:crs:EPSG:230326.539 35.21719.614 47.136topp:regioniregioniurn:x-ogc:def:crs:EPSG:230326.539 35.21719.614 47.136topp:stazionistazioniurn:x-ogc:def:crs:EPSG:230326.632 36.53919.459 46.964topp:strade_sismastradeurn:x-ogc:def:crs:EPSG:2583210.563 44.52211.885 44.98topp:toponimi_sismatoponimiurn:x-ogc:def:crs:EPSG:2583210.675 44.56811.874 44.962topp:zona_sismicazona_sismicaurn:x-ogc:def:crs:EPSG:2583210.645 44.55311.884 44.975gml:Envelopegml:Pointgml:LineStringgml:PolygonLessThanGreaterThanLessThanEqualToGreaterThanEqualToEqualToNotEqualToLikeBetweenNullCheckabsabs_2abs_3abs_4acosAreaasinatanatan2betweenboundaryboundaryDimensionbufferbufferWithSegmentsCategorizeceilcentroidclassifyCollection_AverageCollection_BoundsCollection_CountCollection_MaxCollection_MedianCollection_MinCollection_SumCollection_UniqueConcatenatecontainsconvertconvexHullcoscrossesdateFormatdateParsedifferencedimensiondisjointdistancedouble2boolendPointenvelopeEqualIntervalequalsExactequalsExactToleranceequalToexpexteriorRingfloorgeometryTypegeomFromWKTgeomLengthgetGeometryNgetXgetYgetZgreaterEqualThangreaterThanidIEEEremainderif_then_elsein10in2in3in4in5in6in7in8in9int2bboolint2ddoubleinteriorPointinteriorRingNInterpolateintersectionintersectsisClosedisEmptyisLikeisNullisRingisSimpleisValidisWithinDistancelengthlessEqualThanlessThanlogmaxmax_2max_3max_4minmin_2min_3min_4notnotEqualTonumberFormatnumGeometriesnumInteriorRingnumPointsoverlapsparseBooleanparseDoubleparseIntparseLongpipointNpowPropertyExistsQuantilerandomRecoderelaterelatePatternrintroundround_2roundDoublesinsqrtStandardDeviationstartPointstrConcatstrEndsWithstrEqualsIgnoreCasestrIndexOfstrLastIndexOfstrLengthstrMatchesstrReplacestrStartsWithstrSubstringstrSubstringStartstrToLowerCasestrToUpperCasestrTrimsymDifferencetantoDegreestoRadianstouchestoWKTunionUniqueIntervalwithinlibspatialite-4.1.1/test/check_shp_load.c0000664000175000017500000001030412163502133015331 00000000000000/* check_shp_load.c -- SpatiaLite Test Case Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Ahmadou Dicko Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" int main (int argc, char *argv[]) { #ifndef OMIT_ICONV /* only if ICONV is supported */ int ret; sqlite3 *handle; char *err_msg = NULL; int row_count; void *cache = spatialite_alloc_connection(); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); sqlite3_close(handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -2; } ret = load_shapefile (handle, "./shapetest1", "test1", "UTF-8", 4326, "col1", 1, 0, 1, 0, &row_count, err_msg); if (!ret) { fprintf (stderr, "load_shapefile() error: %s\n", err_msg); sqlite3_close(handle); return -3; } #ifdef ENABLE_LWGEOM /* only if LWGEOM is supported */ ret = check_geometry_column (handle, "test1", "geometry", "./report.html", NULL, NULL, NULL); if (ret) { fprintf (stderr, "check_geometry_column() error\n"); sqlite3_close(handle); return -4; } ret = sanitize_geometry_column (handle, "test1", "geometry", "tmp_test1", "./report.html", NULL, NULL, NULL, NULL, NULL); if (ret) { fprintf (stderr, "sanitize_geometry_column() error\n"); sqlite3_close(handle); return -5; } ret = check_geometry_column (handle, "test1", "col1", "./report.html", NULL, NULL, NULL); if (!ret) { fprintf (stderr, "check_geometry_column() error\n"); sqlite3_close(handle); return -6; } ret = sanitize_geometry_column (handle, "test1", "col1", "tmp_test1", "./report.html", NULL, NULL, NULL, NULL, NULL); if (!ret) { fprintf (stderr, "sanitize_geometry_column() error\n"); sqlite3_close(handle); return -7; } #endif /* end LWGEOM conditionals */ ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -8; } spatialite_cleanup_ex (cache); #endif /* end ICONV conditional */ return 0; } libspatialite-4.1.1/test/check_exif2.c0000664000175000017500000002316412163502133014565 00000000000000/* check_exif.c -- SpatiaLite Test Case Author: Sandro Furieri ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include "sqlite3.h" #include "spatialite.h" #include static sqlite3_int64 get_pixel_x(gaiaExifTagListPtr tag_list, int *ok) { /* trying to retrieve the ExifImageWidth */ gaiaExifTagPtr tag = tag_list->First; *ok = 0; while (tag) { if (tag->TagId == 0xA002) { /* ok, this one is the ExifImageWidth tag */ if (tag->Type == 3 && tag->Count == 1) { *ok = 1; return *(tag->ShortValues + 0); } else if (tag->Type == 4 && tag->Count == 1) { *ok = 1; return *(tag->LongValues + 0); } } tag = tag->Next; } return 0; } static sqlite3_int64 get_pixel_y(gaiaExifTagListPtr tag_list, int *ok) { /* trying to retrieve the ExifImageLength */ gaiaExifTagPtr tag = tag_list->First; *ok = 0; while (tag) { if (tag->TagId == 0xA003) { /* ok, this one is the ExifImageLength tag */ if (tag->Type == 3 && tag->Count == 1) { *ok = 1; return *(tag->ShortValues + 0); } else if (tag->Type == 4 && tag->Count == 1) { *ok = 1; return *(tag->LongValues + 0); } } tag = tag->Next; } return 0; } static void get_make(gaiaExifTagListPtr tag_list, const char **str, int *ok) { /* trying to retrieve the Make */ gaiaExifTagPtr tag = tag_list->First; *ok = 0; while (tag) { if (tag->TagId == 0x010F) { /* ok, this one is the Make tag */ if (tag->Type == 2) { *ok = 1; *str = tag->StringValue; return; } } tag = tag->Next; } return; } static void get_model(gaiaExifTagListPtr tag_list, const char **str, int *ok) { /* trying to retrieve the Model */ gaiaExifTagPtr tag = tag_list->First; *ok = 0; while (tag) { if (tag->TagId == 0x0110) { /* ok, this one is the Model tag */ if (tag->Type == 2) { *ok = 1; *str = tag->StringValue; return; } } tag = tag->Next; } return; } static void get_date(gaiaExifTagListPtr tag_list, const char **str, int *ok) { /* trying to retrieve the Date */ gaiaExifTagPtr tag = tag_list->First; *ok = 0; while (tag) { if (tag->TagId == 0x9003) { /* ok, this one is the Make tag */ if (tag->Type == 2) { *ok = 1; *str = tag->StringValue; return; } } tag = tag->Next; } return; } int main (int argc, char *argv[]) { int ret; sqlite3 *handle; FILE *fl; int sz = 0; int rd; int ok; int i; char tag_name[128]; char human[8192]; gaiaExifTagPtr pT; sqlite3_int64 val64; const char *result; unsigned char *blob = NULL; gaiaExifTagListPtr tag_list = NULL; double longitude; double latitude; void *cache = spatialite_alloc_connection(); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle)); sqlite3_close(handle); return -100; } spatialite_init_ex (handle, cache, 0); fl = fopen("Apple-iPhone-4.jpg", "rb"); if (!fl) { fprintf(stderr, "cannot open EXIF-JPEG image: Apple-iPhone-4.jpg\n"); return -100; } if (fseek(fl, 0, SEEK_END) == 0) sz = ftell(fl); if (sz <= 14) { fprintf(stderr, "invalid size EXIF-JPEG image: Apple-iPhone-4.jpg\n"); return -17; } blob = (unsigned char *) malloc(sz); rewind(fl); rd = fread(blob, 1, sz, fl); if (rd != sz) { fprintf(stderr, "read error EXIF-JPEG image: Apple-iPhone-4.jpg\n"); return -18; } tag_list = gaiaGetExifTags(blob, sz); if (tag_list == NULL) { fprintf(stderr, "cannot extract EXIF tags from JPEG image: Apple-iPhone-4.jpg\n"); return -19; } val64 = get_pixel_x(tag_list, &ok); if (!ok) { fprintf(stderr, "Apple-iPhone-4.jpg: PixelX tag not found\n"); return -20; } if (val64 != 1296) { fprintf(stderr, "Apple-iPhone-4.jpg: PixelX unexpected value: %d\n", (int)val64); return -21; } val64 = get_pixel_y(tag_list, &ok); if (!ok) { fprintf(stderr, "Apple-iPhone-4.jpg: PixelY tag not found\n"); return -22; } if (val64 != 968) { fprintf(stderr, "Apple-iPhone-4.jpg: PixelY unexpected value: %d\n", (int)val64); return -23; } get_make(tag_list, &result, &ok); if (!ok) { fprintf(stderr, "Apple-iPhone-4.jpg: Make tag not found\n"); return -24; } if (strcmp(result, "Apple") != 0) { fprintf(stderr, "Apple-iPhone-4.jpg: Make unexpected value: %s|\n", result); return -25; }; get_model(tag_list, &result, &ok); if (!ok) { fprintf(stderr, "Apple-iPhone-4.jpg: Model tag not found\n"); return -26; } if (strcmp(result, "iPhone 4") != 0) { fprintf(stderr, "Apple-iPhone-4.jpg: Model unexpected value: %s|\n", result); return -27; }; get_date(tag_list, &result, &ok); if (!ok) { fprintf(stderr, "Apple-iPhone-4.jpg: Date tag not found\n"); return -28; } if (strcmp(result, "2011:01:13 14:33:39") != 0) { fprintf(stderr, "Apple-iPhone-4.jpg: Date unexpected value: %s|\n", result); return -29; }; for (i = 0; i < gaiaGetExifTagsCount(tag_list); i++) { pT = gaiaGetExifTagByPos(tag_list, i); if (pT) { gaiaExifTagGetName(pT, tag_name, 128); gaiaExifTagGetValueType(pT); gaiaIsExifGpsTag(pT); gaiaExifTagGetValueType(pT); gaiaExifTagGetNumValues(pT); gaiaExifTagGetHumanReadable (pT, human, 8190, &ok); } } pT = gaiaGetExifTagById (tag_list, 0x0112); if (pT == NULL) { fprintf(stderr, "Apple-iPhone-4.jpg: tag Orientation not found: %s|\n", result); return -30; }; for (i = 0x0000; i < 0xffff; i++) { gaiaExifTag tag; tag.Gps = 0; tag.TagId = i; gaiaExifTagGetName(&tag, tag_name, 128); } for (i = 0x0000; i < 0xffff; i++) { gaiaExifTag tag; tag.Gps = 1; tag.TagId = i; gaiaExifTagGetName(&tag, tag_name, 128); } if (!gaiaGetGpsLatLong(blob, sz, human, 8192)) { fprintf(stderr, "cannot extract GPS coords from JPEG image: Apple-iPhone-4.jpg\n"); return -32; } if (strcmp(human, "N 41.00 51.18 0.00 / E 12.00 29.33 0.00") != 0) { fprintf(stderr, "Apple-iPhone-4.jpg: GPS coords unexpected value: %s|\n", human); return -33; }; if (!gaiaGetGpsLatLong(blob, sz, human, 18)) { fprintf(stderr, "cannot extract GPS coords(18) from JPEG image: Apple-iPhone-4.jpg\n"); return -34; } if (strcmp(human, "N 41.00 51.18 0.00") != 0) { fprintf(stderr, "Apple-iPhone-4.jpg: GPS coords(18) unexpected value: %s|\n", human); return -35; }; if (!gaiaGetGpsCoords(blob, sz, &longitude, &latitude)) { fprintf(stderr, "cannot extract GPS long/lat from JPEG image: Apple-iPhone-4.jpg\n"); return -36; } if (longitude != 12.488833000 || latitude != 41.853000000) { fprintf(stderr, "Apple-iPhone-4.jpg: GPS long/lat unexpected values: %1.9f %1.9f|\n", longitude, latitude); return -37; }; if (blob) free(blob); if (tag_list) gaiaExifTagsFree(tag_list); fclose(fl); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -133; } spatialite_cleanup_ex(cache); return 0; } libspatialite-4.1.1/test/movies.xsd0000664000175000017500000000134512163502133014266 00000000000000 libspatialite-4.1.1/test/check_extra_relations_fncts.c0000664000175000017500000002024412163502133020144 00000000000000/* check_extra_relations_fncts.c -- SpatiaLite Test Case This tests a couple of functions in gg_relations.c that aren't used in spatialite, but are provided for backwards compatibility. Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include "sqlite3.h" #include "spatialite.h" #include "spatialite/gaiageo.h" static const double double_eps = 0.00000001; int main (int argc, char *argv[]) { int result; int returnValue = 0; gaiaRingPtr interior; /* Common setup */ gaiaLinestringPtr linestr1 = gaiaAllocLinestring(0); gaiaLinestringPtr linestr2 = gaiaAllocLinestring(0); gaiaPolygonPtr poly1 = gaiaAllocPolygon(0, 0); gaiaPolygonPtr poly2 = gaiaAllocPolygon(0, 0); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ /* Tests start here */ /* zero length linestring */ result = gaiaLinestringEquals(linestr1, linestr2); if (result != 1) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -1; goto exit; } /* non-matching linestring lengths */ gaiaFreeLinestring (linestr1); gaiaFreeLinestring (linestr2); linestr1 = gaiaAllocLinestring(2); linestr2 = gaiaAllocLinestring(3); gaiaSetPoint(linestr1->Coords, 0, 1, 3); /* line1, first point */ gaiaSetPoint(linestr1->Coords, 1, 2, 4); /* line1, second point */ gaiaSetPoint(linestr2->Coords, 0, 4, -2); /* line2, first point */ gaiaSetPoint(linestr2->Coords, 1, 1, 5); /* line2, second point */ gaiaSetPoint(linestr2->Coords, 2, 3, 4); /* line2, third point */ result = gaiaLinestringEquals(linestr1, linestr2); if (result != 0) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -2; goto exit; } /* identical lines */ gaiaFreeLinestring (linestr2); linestr2 = gaiaCloneLinestring(linestr1); result = gaiaLinestringEquals(linestr1, linestr2); if (result != 1) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -3; goto exit; } /* not quite identical lines */ gaiaSetPoint(linestr2->Coords, 1, 2, -4); result = gaiaLinestringEquals(linestr1, linestr2); if (result != 0) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -4; goto exit; } /* zero length polygon */ result = gaiaPolygonEquals(poly1, poly2); if (result != 1) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -5; goto exit; } /* matching polygons */ gaiaFreePolygon (poly1); gaiaFreePolygon (poly2); poly1 = gaiaAllocPolygon(5, 0); gaiaSetPoint(poly1->Exterior->Coords, 0, 0, 0); gaiaSetPoint(poly1->Exterior->Coords, 1, 10, 0); gaiaSetPoint(poly1->Exterior->Coords, 2, 10, 10); gaiaSetPoint(poly1->Exterior->Coords, 3, 0, 10); gaiaSetPoint(poly1->Exterior->Coords, 4, 0, 0); poly2 = gaiaClonePolygon(poly1); result = gaiaPolygonEquals(poly1, poly2); if (result != 1) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -6; goto exit; } /* not quite matching polygons */ gaiaSetPoint(poly2->Exterior->Coords, 2, 10, -10); result = gaiaPolygonEquals(poly1, poly2); if (result != 0) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -7; goto exit; } /* polygons with different numbers of interiors */ gaiaFreePolygon (poly2); poly2 = gaiaAllocPolygon(5, 1); gaiaSetPoint(poly2->Exterior->Coords, 0, 0, 0); gaiaSetPoint(poly2->Exterior->Coords, 1, 10, 0); gaiaSetPoint(poly2->Exterior->Coords, 2, 10, 10); gaiaSetPoint(poly2->Exterior->Coords, 3, 0, 10); gaiaSetPoint(poly2->Exterior->Coords, 4, 0, 0); interior = gaiaAddInteriorRing(poly2, 0, 4); gaiaSetPoint(interior->Coords, 0, 1, 1); gaiaSetPoint(interior->Coords, 1, 3, 2); gaiaSetPoint(interior->Coords, 2, 3, 1); gaiaSetPoint(interior->Coords, 3, 1, 1); result = gaiaPolygonEquals(poly1, poly2); if (result != 0) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -8; goto exit; } /* same exteriors and interiors */ gaiaFreePolygon (poly1); poly1 = gaiaClonePolygon(poly2); result = gaiaPolygonEquals(poly1, poly2); if (result != 1) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -9; goto exit; } /* slightly different interiors */ gaiaSetPoint(interior->Coords, 2, 3, 3); result = gaiaPolygonEquals(poly1, poly2); if (result != 0) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -10; goto exit; } /* different number of exterior points */ gaiaFreePolygon(poly2); poly2 = gaiaAllocPolygon(4, 1); gaiaSetPoint(poly2->Exterior->Coords, 0, 0, 0); gaiaSetPoint(poly2->Exterior->Coords, 1, 10, 0); gaiaSetPoint(poly2->Exterior->Coords, 2, 10, 10); gaiaSetPoint(poly2->Exterior->Coords, 3, 0, 0); interior = gaiaAddInteriorRing(poly2, 0, 4); gaiaSetPoint(interior->Coords, 0, 1, 1); gaiaSetPoint(interior->Coords, 1, 3, 2); gaiaSetPoint(interior->Coords, 2, 3, 1); gaiaSetPoint(interior->Coords, 3, 1, 1); result = gaiaPolygonEquals(poly1, poly2); if (result != 0) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -11; goto exit; } /* same exterior points, but different number of points on first interior */ gaiaFreePolygon (poly2); poly2 = gaiaAllocPolygon(5, 1); gaiaSetPoint(poly2->Exterior->Coords, 0, 0, 0); gaiaSetPoint(poly2->Exterior->Coords, 1, 10, 0); gaiaSetPoint(poly2->Exterior->Coords, 2, 10, 10); gaiaSetPoint(poly2->Exterior->Coords, 3, 0, 10); gaiaSetPoint(poly2->Exterior->Coords, 4, 0, 0); interior = gaiaAddInteriorRing(poly2, 0, 5); gaiaSetPoint(interior->Coords, 0, 1, 1); gaiaSetPoint(interior->Coords, 1, 3, 2); gaiaSetPoint(interior->Coords, 2, 3, 3); gaiaSetPoint(interior->Coords, 3, 1, 3); gaiaSetPoint(interior->Coords, 4, 1, 1); result = gaiaPolygonEquals(poly1, poly2); if (result != 0) { fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -12; goto exit; } /* Cleanup and exit */ exit: gaiaFreeLinestring (linestr1); gaiaFreeLinestring (linestr2); gaiaFreePolygon (poly1); gaiaFreePolygon (poly2); return returnValue; } libspatialite-4.1.1/test/test-legacy-3.0.1.sqlite0000664000175000017500000010000012163502134016332 00000000000000SQLite format 3@ P\ AP\-#  f  _ P+E3spatial_ref_systable successfully populated2012-08-08 17:42:033.7.93.0.1O-A3geometry_columnstable successfully created2012-08-08 17:42:023.7.93.0.1N+A3spatial_ref_systable successfully created2012-08-08 17:42:013.7.93.0.1 1spatialite_historyx   $$p[++mtablespatial_ref_sysspatial_ref_sysCREATE TABLE spatial_ref_sys ( srid INTEGER NOT NULL PRIMARY KEY, auth_name TEXT NOT NULL, auth_srid INTEGER NOT NULL, ref_sys_name TEXT, proj4text TEXT NOT NULL, srs_wkt TEXT)11]tablespatialite_historyspatialite_historyCREATE TABLE spatialite_history ( event_id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, table_name TEXT NOT NULL, geometry_column TEXT, event TEXT NOT NULL, timestamp TEXT NOT NULL, ver_sqlite TEXT NOT NULL, ver_splite TEXT NOT NULL)P++Ytablesqlite_sequencesqlite_sequenceCREATE TABLE sqlite_sequence(name,seq) --Mtablegeometry_columnsgeometry_columnsCREATE TABLE geometry_columns ( f_table_name TEXT NOT NULL, f_geometry_column TEXT NOT NULL, type TEXT NOT NULL, coord_dimension TEXT NOT NULL, srid INTEGER NOT NULL, spatial_index_enabled INTEGER NOT NULL, CONSTRAINT pk_geom_cols PRIMARY KEY (f_table_name, f_geometry_column), CONSTRAINT fk_gc_srs FOREIGN KEY (srid) REFERENCES spatial_ref_sys (srid)) 55vW?S-indexsqlite_autoindex_geometry_columns_1geometry_columns^99Wtableviews_geometry_columnsviews_geometry_columns CREATE TABLE views_geometry_columns ( view_name TEXT NOT NULL, view_geometry TEXT NOT NULL, view_rowid TEXT NOT NULL, f_table_name VARCHAR(256) NOT NULL, f_geometry_column VARCHAR(256) NOT NULL, CONSTRAINT pk_geom_cols_views PRIMARY KEY (view_name, view_geometry), CONSTRAINT fk_views_geom_cols FOREIGN KEY (f_table_name, f_geometry_column) REFERENCES geometry_columns (f_table_name, f_geometry_column) ON DELETE CASCADE)K_9indexsqlite_autoindex_views_geometry_columns_1views_geometry_columns Y99Mtablevirts_geometry_columnsvirts_geometry_columns CREATE TABLE virts_geometry_columns ( virt_name TEXT NOT NULL, virt_geometry TEXT NOT NULL, type VARCHAR(30) NOT NULL, srid INTEGER NOT NULL, CONSTRAINT pk_geom_cols_virts PRIMARY KEY (virt_name, virt_geometry), CONSTRAINT fk_vgc_srid FOREIGN KEY (srid) REFERENCES spatial_ref_sys (srid))     aahK _9indexsqlite_autoindex_virts_geometry_columns_1virts_geometry_columns 7 77 tablegeometry_columns_authgeometry_columns_authCREATE TABLE geometry_columns_auth ( f_table_name VARCHAR(256) NOT NULL, f_geometry_column VARCHAR(256) NOT NULL, read_only INTEGER NOT NULL, hidden INTEGER NOT NULL, CONSTRAINT pk_gc_auth PRIMARY KEY (f_table_name, f_geometry_column), CONSTRAINT fk_gc_auth FOREIGN KEY (f_table_name, f_geometry_column) REFERENCES geometry_columns (f_table_name, f_geometry_column) ON DELETE CASCADE)I ]7indexsqlite_autoindex_geometry_columns_auth_1geometry_columns_authK %%[tablesqlite_stat1sqlite_stat1CREATE TABLE sqlite_stat1(tbl,idx,stat)   1spatialite_history3++3spatial_ref_sysidx_spatial_ref_sys2 1 1 ;/!shapetest2geometryA$SKFASa\]EA$[#M,AS{=;w!shapetest2GeometryA$SKFASa\]EA$[#M,AS{= !shapetest2geometry/!shapetest2Geometry d 99ctablevirts_layer_statisticsvirts_layer_statisticsCREATE TABLE virts_layer_statistics ( virt_name TEXT NOT NULL, virt_geometry TEXT NOT NULL, row_count INTEGER, extent_min_x DOUBLE, extent_min_y DOUBLE, extent_max_x DOUBLE, extent_max_y DOUBLE, CONSTRAINT pk_virts_layer_statistics PRIMARY KEY (virt_name, virt_geometry), CONSTRAINT fk_virts_layer_statistics FOREIGN KEY (virt_name, virt_geometry) REFERENCES virts_geometry_columns (virt_name, virt_geometry) ON DELETE CASCADE)K_9indexsqlite_autoindex_virts_layer_statistics_1virts_layer_statistics   }---tablelayer_statisticslayer_statisticsCREATE TABLE layer_statistics ( raster_layer INTEGER NOT NULL, table_name TEXT NOT NULL, geometry_column TEXT NOT NULL, row_count INTEGER, extent_min_x DOUBLE, extent_min_y DOUBLE, extent_max_x DOUBLE, extent_max_y DOUBLE, CONSTRAINT pk_layer_statistics PRIMARY KEY (raster_layer, table_name, geometry_column), CONSTRAINT fk_layer_statistics FOREIGN KEY (table_name, geometry_column) REFERENCES geometry_columns (f_table_name, f_geometry_column) ON DELETE CASCADE)?S-indexsqlite_autoindex_layer_statistics_1layer_statistics 6routeGeometry@A65@?X @A?O9@?o%_5  routeGeometry d99ctableviews_layer_statisticsviews_layer_statisticsCREATE TABLE views_layer_statistics ( view_name TEXT NOT NULL, view_geometry TEXT NOT NULL, row_count INTEGER, extent_min_x DOUBLE, extent_min_y DOUBLE, extent_max_x DOUBLE, extent_max_y DOUBLE, CONSTRAINT pk_views_layer_statistics PRIMARY KEY (view_name, view_geometry), CONSTRAINT fk_views_layer_statistics FOREIGN KEY (view_name, view_geometry) REFERENCES views_geometry_columns (view_name, view_geometry) ON DELETE CASCADE)K_9indexsqlite_autoindex_views_layer_statistics_1views_layer_statistics     YepsgY epsg  |a%%tableSpatialIndexSpatialIndexCREATE VIRTUAL TABLE SpatialIndex USING VirtualSpatialIndex()2//viewgeom_cols_ref_sysgeom_cols_ref_sysCREATE VIEW geom_cols_ref_sys AS SELECT f_table_name, f_geometry_column, type, coord_dimension, spatial_ref_sys.srid AS srid, auth_name, auth_srid, ref_sys_name, proj4text FROM geometry_columns, spatial_ref_sys WHERE geometry_columns.srid = spatial_ref_sys.sridd--}indexidx_srid_geocolsgeometry_columnsCREATE INDEX idx_srid_geocols ON geometry_columns (srid)'99indexidx_viewsjoinviews_geometry_columnsCREATE INDEX idx_viewsjoin ON views_geometry_columns (f_table_name, f_geometry_column)k'9indexidx_virtssridvirts_geometry_columnsCREATE INDEX idx_virtssrid ON virts_geometry_columns (srid)3+1indexidx_spatial_ref_sysspatial_ref_sysCREATE UNIQUE INDEX idx_spatial_ref_sys ON spatial_ref_sys (auth_srid, auth_name) EfmepsgWGS 84+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defsGEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]] LL/x3mIepsgYED50 / UTM zone 32N+proj=utm +zone=32 +ellps=intl +units=m +no_defsPROJCS["ED50 / UTM zone 32N",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","23032"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]libspatialite-4.1.1/test/asprintf4win.h0000664000175000017500000000426512163502133015051 00000000000000/* * Copyright (C) 2001 Federico Di Gregorio * Copyright (C) 1991, 1994-1999, 2000, 2001 Free Software Foundation, Inc. * * This code has been derived from an example in the glibc2 documentation. * This file is part of the psycopg module. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2, * or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* * asprintf.c -- asprintf() implementation for braindamaged operating systems * $Id: asprintf.c 554 2004-10-30 00:19:27Z fog $ */ #ifndef _WIN32 #include #endif #include #include #ifndef _WIN32 #include #endif #include #ifdef _WIN32 #define vsnprintf _vsnprintf #endif int asprintf(char **buffer, char *fmt, ...) { /* Guess we need no more than 200 chars of space. */ int size = 200; int nchars; va_list ap; *buffer = (char*)malloc(size); if (*buffer == NULL) return -1; /* Try to print in the allocated space. */ va_start(ap, fmt); nchars = vsnprintf(*buffer, size, fmt, ap); va_end(ap); if (nchars >= size) { char *tmpbuff; /* Reallocate buffer now that we know how much space is needed. */ size = nchars+1; tmpbuff = (char*)realloc(*buffer, size); if (tmpbuff == NULL) { /* we need to free it*/ free(*buffer); return -1; } *buffer=tmpbuff; /* Try again. */ va_start(ap, fmt); nchars = vsnprintf(*buffer, size, fmt, ap); va_end(ap); } if (nchars < 0) return nchars; return size; } libspatialite-4.1.1/test/movies.xml0000664000175000017500000000335212163502133014270 00000000000000<?xml version="1.0" encoding="utf-16"?> <Movies xmlns="http://www.gaia-gis.it/movies" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://gaia-gis.it/movies movies.xsd"> <director firstName="Stanley" lastName="Kubrick"> <title>2001: A Space Odyssey</title> <title>Dr. Strangelove</title> <title>A Clockwork Orange</title> <title>Full Metal Jacket</title> <title>The Shining</title> </director> <director firstName="Quentin" lastName="Tarantino"> <title>Pulp Fiction</title> </director> <director firstName="Martin" lastName="Scorsese"> <title>Taxi Driver</title> <title>Goodfellas</title> </director> <director firstName="Peter" lastName=" Weir"> <title>Picnic at Hanging Rock</title> <title>Gallipoli</title> <title>Master and Commander: The Far Side of the World</title> </director> </Movies>libspatialite-4.1.1/test/check_shp_load_3d.c0000664000175000017500000005456212163502133015735 00000000000000/* check_shp_load_3d.c -- SpatiaLite Test Case Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" int main (int argc, char *argv[]) { #ifndef OMIT_ICONV /* only if ICONV is supported */ int ret; sqlite3 *handle; char *err_msg = NULL; int row_count; const char *sql; char **results; int rows; int columns; double tic; gaiaVectorLayersListPtr list; void *cache = spatialite_alloc_connection(); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); sqlite3_close(handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -2; } ret = load_shapefile (handle, "shp/merano-3d/polygons", "polygons", "CP1252", 25832, "geom", 0, 1, 1, 0, &row_count, err_msg); if (!ret) { fprintf (stderr, "load_shapefile() error: %s\n", err_msg); sqlite3_close(handle); return -3; } ret = update_layer_statistics (handle, "polygons", "geom"); if (!ret) { fprintf (stderr, "update_layer_statistics() error %s\n", err_msg); sqlite3_close(handle); return -8; } ret = load_shapefile (handle, "shp/merano-3d/roads", "roads", "CP1252", 25832, "geom", 0, 0, 1, 0, &row_count, err_msg); if (!ret) { fprintf (stderr, "load_shapefile() error: %s\n", err_msg); sqlite3_close(handle); return -4; } ret = load_shapefile (handle, "shp/merano-3d/points", "points", "CP1252", 25832, "geom", 0, 0, 1, 0, &row_count, err_msg); if (!ret) { fprintf (stderr, "load_shapefile() error: %s\n", err_msg); sqlite3_close(handle); return -5; } ret = sqlite3_exec (handle, "INSERT INTO polygons (FEATURE_ID, DATUM, HAUSNR) VALUES (1250000, 0.1, 'alpha')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT polygons (1) error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -14; } ret = sqlite3_exec (handle, "INSERT INTO polygons (FEATURE_ID, DATUM, HAUSNR) VALUES (1250000, 0.1, 'alpha')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT polygons (1) error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -15; } ret = sqlite3_exec (handle, "INSERT INTO polygons (FEATURE_ID, DATUM, TEXT_I) VALUES (1250000, 0.1, 'alpha')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT polygons (1) error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -16; } ret = sqlite3_exec (handle, "CREATE TABLE polyg_xy (pk_elem INTEGER PRIMARY KEY AUTOINCREMENT, FEATURE_ID INTEGER, DATUM DOUBLE, TEXT_I TEXT, BLOB_I BLOB)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE polyg_xy error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -17; } ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('polyg_xy', 'geom', 25832, 'POLYGON', 'XY')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeomety polyg_xy error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -17; } ret = sqlite3_exec (handle, "INSERT INTO polyg_xy (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXY(geom) FROM polygons WHERE geom IS NOT NULL", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "feeding polyg_xy (1) error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -18; } ret = sqlite3_exec (handle, "INSERT INTO polyg_xy (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXY(geom) FROM polygons WHERE geom IS NOT NULL", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "feeding polyg_xy (2) error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -19; } ret = sqlite3_exec (handle, "CREATE TABLE polyg_xym (pk_elem INTEGER PRIMARY KEY AUTOINCREMENT, FEATURE_ID INTEGER, DATUM DOUBLE, TEXT_I TEXT, BLOB_I BLOB)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE polyg_xym error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -20; } ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('polyg_xym', 'geom', 25832, 'POLYGON', 'XYM')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometry polyg_xym error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -21; } ret = sqlite3_exec (handle, "INSERT INTO polyg_xym (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYM(geom) FROM polygons WHERE geom IS NOT NULL", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "feeding polyg_xym (1) error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -22; } ret = sqlite3_exec (handle, "INSERT INTO polyg_xym (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYM(geom) FROM polygons WHERE geom IS NOT NULL", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "feeding polyg_xym (2) error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -23; } ret = sqlite3_exec (handle, "CREATE TABLE polyg_xyz (pk_elem INTEGER PRIMARY KEY AUTOINCREMENT, FEATURE_ID INTEGER, DATUM DOUBLE, TEXT_I TEXT, BLOB_I BLOB)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE polyg_xyz error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -24; } ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('polyg_xyz', 'geom', 25832, 'POLYGON', 'XYZ')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometry polyg_xyz error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -25; } ret = sqlite3_exec (handle, "INSERT INTO polyg_xyz (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZ(geom) FROM polygons WHERE geom IS NOT NULL", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "feeding polyg_xyz (1) error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -26; } ret = sqlite3_exec (handle, "INSERT INTO polyg_xyz (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZ(geom) FROM polygons WHERE geom IS NOT NULL", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "feeding polyg_xyz (2) error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -27; } ret = sqlite3_exec (handle, "CREATE TABLE roads_xyz (pk_elem INTEGER PRIMARY KEY AUTOINCREMENT, FEATURE_ID INTEGER, DATUM DOUBLE, TEXT_I TEXT, BLOB_I BLOB)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE roads_xyz error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -28; } ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('roads_xyz', 'geom', 25832, 'LINESTRING', 'XYZ')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeomety roads_xyz error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -29; } ret = sqlite3_exec (handle, "INSERT INTO roads_xyz (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZ(geom) FROM roads WHERE geom IS NOT NULL", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "feeding roads_xyz (1) error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -30; } ret = sqlite3_exec (handle, "INSERT INTO roads_xyz (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZ(geom) FROM roads WHERE geom IS NOT NULL", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "feeding roads_xyz (2) error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -31; } ret = sqlite3_exec (handle, "CREATE TABLE roads_xym (pk_elem INTEGER PRIMARY KEY AUTOINCREMENT, FEATURE_ID INTEGER, DATUM DOUBLE, TEXT_I TEXT, BLOB_I BLOB)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE roads_xym error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -32; } ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('roads_xym', 'geom', 25832, 'LINESTRING', 'XYM')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometry roads_xym error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -33; } ret = sqlite3_exec (handle, "INSERT INTO roads_xym (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYM(geom) FROM roads WHERE geom IS NOT NULL", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "feeding roads_xym (1) error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -34; } ret = sqlite3_exec (handle, "INSERT INTO roads_xym (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYM(geom) FROM roads WHERE geom IS NOT NULL", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "feeding roads_xym (2) error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -35; } ret = sqlite3_exec (handle, "CREATE TABLE roads_xyzm (pk_elem INTEGER PRIMARY KEY AUTOINCREMENT, FEATURE_ID INTEGER, DATUM DOUBLE, TEXT_I TEXT, BLOB_I BLOB)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE roads_xyzm error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -36; } ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('roads_xyzm', 'geom', 25832, 'LINESTRING', 'XYZM')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometry roads_xyzm error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -37; } ret = sqlite3_exec (handle, "INSERT INTO roads_xyzm (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZM(geom) FROM roads WHERE geom IS NOT NULL", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "feeding roads_xyzm (1) error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -38; } ret = sqlite3_exec (handle, "INSERT INTO roads_xyzm (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZM(geom) FROM roads WHERE geom IS NOT NULL", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "feeding roads_xyzm (2) error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -39; } ret = sqlite3_exec (handle, "CREATE TABLE points_xyz (pk_elem INTEGER PRIMARY KEY AUTOINCREMENT, FEATURE_ID INTEGER, DATUM DOUBLE, TEXT_I TEXT, BLOB_I BLOB)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE points_xyz error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -40; } ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('points_xyz', 'geom', 25832, 'POINT', 'XYZ')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeomety points_xyz error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -41; } ret = sqlite3_exec (handle, "INSERT INTO points_xyz (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZ(geom) FROM points WHERE geom IS NOT NULL", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "feeding points_xyz (1) error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -42; } ret = sqlite3_exec (handle, "INSERT INTO points_xyz (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZ(geom) FROM points WHERE geom IS NOT NULL", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "feeding points_xyz (2) error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -43; } ret = sqlite3_exec (handle, "CREATE TABLE points_xym (pk_elem INTEGER PRIMARY KEY AUTOINCREMENT, FEATURE_ID INTEGER, DATUM DOUBLE, TEXT_I TEXT, BLOB_I BLOB)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE points_xym error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -44; } ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('points_xym', 'geom', 25832, 'POINT', 'XYM')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometry points_xym error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -45; } ret = sqlite3_exec (handle, "INSERT INTO points_xym (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYM(geom) FROM points WHERE geom IS NOT NULL", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "feeding points_xym (1) error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -46; } ret = sqlite3_exec (handle, "INSERT INTO points_xym (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYM(geom) FROM points WHERE geom IS NOT NULL", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "feeding points_xym (2) error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -47; } ret = sqlite3_exec (handle, "CREATE TABLE points_xyzm (pk_elem INTEGER PRIMARY KEY AUTOINCREMENT, FEATURE_ID INTEGER, DATUM DOUBLE, TEXT_I TEXT, BLOB_I BLOB)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE points_xyzm error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -48; } ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('points_xyzm', 'geom', 25832, 'POINT', 'XYZM')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometry points_xyzm error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -49; } ret = sqlite3_exec (handle, "INSERT INTO points_xyzm (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZM(geom) FROM points WHERE geom IS NOT NULL", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "feeding points_xyzm (1) error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -50; } ret = sqlite3_exec (handle, "INSERT INTO points_xyzm (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZM(geom) FROM points WHERE geom IS NOT NULL", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "feeding points_xyzm (2) error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -51; } elementary_geometries (handle, "points", "geom", "elem_point", "pk_elem", "mul_id"); elementary_geometries (handle, "roads", "geom", "elem_linestring", "pk_elem", "mul_id"); elementary_geometries (handle, "polygons", "geom", "elem_poly", "pk_elem", "mul_id"); elementary_geometries (handle, "polyg_xy", "geom", "elem_poly_xy", "pk_elem1", "mul_id"); elementary_geometries (handle, "polyg_xym", "geom", "elem_poly_xym", "pk_elem1", "mul_id"); elementary_geometries (handle, "polyg_xyz", "geom", "elem_poly_xyz", "pk_elem1", "mul_id"); elementary_geometries (handle, "roads_xyz", "geom", "elem_roads_xy", "pk_elem1", "mul_id"); elementary_geometries (handle, "roads_xym", "geom", "elem_roads_xym", "pk_elem1", "mul_id"); elementary_geometries (handle, "roads_xyzm", "geom", "elem_roads_xyz", "pk_elem1", "mul_id"); elementary_geometries (handle, "points_xyz", "geom", "elem_points_xy", "pk_elem1", "mul_id"); elementary_geometries (handle, "points_xym", "geom", "elem_points_xym", "pk_elem1", "mul_id"); elementary_geometries (handle, "points_xyzm", "geom", "elem_points_xyz", "pk_elem1", "mul_id"); remove_duplicated_rows(handle, "polyg_xy"); remove_duplicated_rows(handle, "polyg_xyz"); remove_duplicated_rows(handle, "polyg_xym"); remove_duplicated_rows(handle, "roads_xyz"); remove_duplicated_rows(handle, "roads_xym"); remove_duplicated_rows(handle, "roads_xyzm"); remove_duplicated_rows(handle, "points_xyz"); remove_duplicated_rows(handle, "points_xym"); remove_duplicated_rows(handle, "points_xyzm"); sql = "CREATE VIEW test_view AS " "SELECT ROWID AS ROWID, pk_elem AS id, geom AS geometry FROM roads_xyz"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE test_view error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -52; } sql = "INSERT INTO views_geometry_columns (view_name, view_geometry, view_rowid, " "f_table_name, f_geometry_column, read_only) VALUES " "('test_view', 'geometry', 'rowid', 'roads_xyz', 'geom', 1)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Register SpatialView error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -53; } ret = update_layer_statistics (handle, NULL, NULL); if (!ret) { fprintf (stderr, "update_layer_statistics() error %s\n", err_msg); sqlite3_close(handle); return -54; } sql = "SELECT row_count, extent_min_x, extent_max_y " "FROM geometry_columns_statistics " "WHERE f_table_name LIKE 'roads' " "AND f_geometry_column LIKE 'geom'"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -55; } if (rows != 1) { fprintf (stderr, "Unexpected num of rows for GEOMETRY_COLUMNS_STATISTICS.\n"); return -56; } if (atoi(results[columns+0]) != 18) { fprintf (stderr, "Unexpected error: GEOMETRY_COLUMNS_STATISTICS bad result row_count: %s\n", results[columns+0]); return -57; } tic = fabs(atof(results[columns+1]) - 666057.648017325); if (tic >= 0.00000002) { fprintf (stderr, "Unexpected error: GEOMETRY_COLUMNS_STATISTICS bad result extent_min_x: %s\n", results[columns+1]); return -58; } tic = fabs(atof(results[columns+2]) - 5170671.31627796); if (tic >= 0.0000002) { fprintf (stderr, "Unexpected error: GEOMETRY_COLUMNS_STATISTICS bad result extent_max_y: %s\n", results[columns+2]); return -59; } sqlite3_free_table (results); ret = gaiaDropTable (handle, "polygons"); if (!ret) { fprintf (stderr, "DROP polygons error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -60; } /* checking gaiaGetVectorLayersList() - ALL */ list = gaiaGetVectorLayersList(handle, NULL, NULL, GAIA_VECTORS_LIST_FAST); gaiaFreeVectorLayersList(list); #ifdef ENABLE_LWGEOM /* only if LWGEOM is supported */ ret = check_all_geometry_columns (handle, "./report", NULL, NULL); if (!ret) { fprintf (stderr, "check_all_geometry_columns() error\n"); sqlite3_close(handle); return -61; } ret = sanitize_all_geometry_columns (handle, "tmp_", "./report", NULL, NULL); if (!ret) { fprintf (stderr, "sanitize_all_geometry_columns() error\n"); sqlite3_close(handle); return -62; } #endif /* end LWGEOM conditionals */ /* checking gaiaGetVectorLayersList() - Table */ list = gaiaGetVectorLayersList(handle, "elem_points_xyz", NULL, GAIA_VECTORS_LIST_FAST); gaiaFreeVectorLayersList(list); /* checking gaiaGetVectorLayersList() - Table and Geometry */ list = gaiaGetVectorLayersList(handle, "elem_roads_xy", "geom", GAIA_VECTORS_LIST_FAST); gaiaFreeVectorLayersList(list); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -61; } spatialite_cleanup_ex (cache); #endif /* end ICONV conditional */ return 0; } libspatialite-4.1.1/test/sql_stmt_libxml2_tests/0000775000175000017500000000000012163503227017047 500000000000000libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlblobgetparentid3.testcase0000664000175000017500000000026112163502133024467 00000000000000XB_GetParentId - DOUBLE XmlDocument :memory: #use in-memory database SELECT XB_GetParentId(1.1); 1 # rows (not including the header row) 1 # columns XB_GetParentId(1.1) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerGroup17.testcase0000664000175000017500000000036212163502133023531 00000000000000RegisterStyledGroup - BLOB paint_order :memory: #use in-memory database SELECT RegisterStyledGroup('alpha', 'beta', 1, zeroblob(4)); 1 # rows (not including the header row) 1 # columns RegisterStyledGroup('alpha', 'beta', 1, zeroblob(4)) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/isschemavalidatedxmlblob1.testcase0000664000175000017500000000027312163502133025634 00000000000000XB_IsSchemaValidated - NULL XmlBLOB :memory: #use in-memory database SELECT XB_IsSchemaValidated(NULL); 1 # rows (not including the header row) 1 # columns XB_IsSchemaValidated(NULL) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/issldsestyle2.testcase0000664000175000017500000000027312163502133023332 00000000000000XB_IsSldSeVectorStyle - INTEGER XmlBLOB :memory: #use in-memory database SELECT XB_IsSldSeVectorStyle(1); 1 # rows (not including the header row) 1 # columns XB_IsSldSeVectorStyle(1) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerRaster10.testcase0000664000175000017500000000037012163502133023665 00000000000000RegisterRasterStyledLayer - DOUBLE style_id :memory: #use in-memory database SELECT RegisterRasterStyledLayer('alpha', 1.1, zeroblob(4)); 1 # rows (not including the header row) 1 # columns RegisterRasterStyledLayer('alpha', 1.1, zeroblob(4)); -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerGroup3.testcase0000664000175000017500000000032312163502133023441 00000000000000RegisterStyledGroup - DOUBLE group_name :memory: #use in-memory database SELECT RegisterStyledGroup(1.1, NULL, NULL); 1 # rows (not including the header row) 1 # columns RegisterStyledGroup(1.1, NULL, NULL) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmluncompress2.testcase0000664000175000017500000000025712163502133023524 00000000000000XB_Uncompress - TEXT XmlBLOB :memory: #use in-memory database SELECT XB_Uncompress('alpha'); 1 # rows (not including the header row) 1 # columns XB_Uncompress('alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlblobgetfileid2.testcase0000664000175000017500000000025012163502133024112 00000000000000XB_GetFileId - INTEGER XmlDocument :memory: #use in-memory database SELECT XB_GetFileId(1); 1 # rows (not including the header row) 1 # columns XB_GetFileId(1) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerVector5.testcase0000664000175000017500000000036212163502133023614 00000000000000RegisterVectorStyledLayer - NULL f_geometry_column :memory: #use in-memory database SELECT RegisterVectorStyledLayer('alpha', NULL, NULL); 1 # rows (not including the header row) 1 # columns RegisterVectorStyledLayer('alpha', NULL, NULL) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/isvalidxmlblob5.testcase0000664000175000017500000000026112163502133023616 00000000000000XB_IsValid - invalid XmlBLOB :memory: #use in-memory database SELECT XB_IsValid(zeroblob(100)); 1 # rows (not including the header row) 1 # columns XB_IsValid(zeroblob(100)) 0 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/setfileid3.testcase0000664000175000017500000000067612163502133022563 00000000000000XB_SetFileId - ISO Metadata - no fileIdentfier :memory: #use in-memory database SELECT XB_SetFileId(XB_Create(CastToBlob('a')), 'alpha'); 1 # rows (not including the header row) 1 # columns XB_SetFileId(XB_Create(CastToBlob('a')), 'alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerIsoMeta5.testcase0000664000175000017500000000031512163502133023711 00000000000000RegisterIsoMetadata - NULL metadata :memory: #use in-memory database SELECT RegisterIsoMetadata('series', NULL); 1 # rows (not including the header row) 1 # columns RegisterIsoMetadata('series', NULL) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerGroup22.testcase0000664000175000017500000000040212163502133023520 00000000000000RegisterStyledGroup - vector BLOB style_id :memory: #use in-memory database SELECT RegisterStyledGroup('alpha', 'beta', 'gamma', zeroblob(4)); 1 # rows (not including the header row) 1 # columns RegisterStyledGroup('alpha', 'beta', 'gamma', zeroblob(4)) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmltextfromblob9.testcase0000664000175000017500000000067412163502133024047 00000000000000XB_GetDocument - valid XmlBLOB, NULL format :memory: #use in-memory database SELECT XB_GetDocument(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD', NULL); 1 # rows (not including the header row) 1 # columns XB_GetDocument(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD', NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerGraphic13.testcase0000664000175000017500000000044312163502133024006 00000000000000RegisterExternalGraphic - BLOB title :memory: #use in-memory database SELECT RegisterExternalGraphic('resource.png', zeroblob(4), zeroblob(4), NULL, NULL); 1 # rows (not including the header row) 1 # columns RegisterExternalGraphic('resource.png', zeroblob(4), zeroblob(4), NULL, NULL); -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmltoblob16.testcase0000664000175000017500000000043312163502133022670 00000000000000XB_Create - valid XMLDocument, compressed, InternalSchemaURI (fail) :memory: #use in-memory database SELECT XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 1, 1); 1 # rows (not including the header row) 1 # columns XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 1, 1) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/Makefile.am0000664000175000017500000002136712163502133021027 00000000000000 EXTRA_DIST = addfileid1.testcase \ addfileid2.testcase \ addfileid3.testcase \ addfileid4.testcase \ addfileid5.testcase \ addfileid6.testcase \ addfileid7.testcase \ addparentid1.testcase \ addparentid2.testcase \ addparentid3.testcase \ addparentid4.testcase \ addparentid5.testcase \ addparentid6.testcase \ addparentid7.testcase \ createisometa1.testcase \ createisometa2.testcase \ createisometa3.testcase \ createisometa4.testcase \ createisometa5.testcase \ createisometa6.testcase \ createstyling1.testcase \ createstyling2.testcase \ createstyling3.testcase \ createstyling4.testcase \ createstyling5.testcase \ createstyling6.testcase \ getIsoMetaId1.testcase \ getIsoMetaId2.testcase \ getIsoMetaId3.testcase \ getIsoMetaId4.testcase \ getIsoMetaId5.testcase \ iscompressedxmlblob1.testcase \ iscompressedxmlblob2.testcase \ iscompressedxmlblob3.testcase \ iscompressedxmlblob4.testcase \ iscompressedxmlblob5.testcase \ iscompressedxmlblob6.testcase \ iscompressedxmlblob7.testcase \ isisometadata1.testcase \ isisometadata2.testcase \ isisometadata3.testcase \ isisometadata4.testcase \ isisometadata5.testcase \ isisometadata6.testcase \ isisometadata7.testcase \ isschemavalidatedxmlblob1.testcase \ isschemavalidatedxmlblob2.testcase \ isschemavalidatedxmlblob3.testcase \ isschemavalidatedxmlblob4.testcase \ isschemavalidatedxmlblob5.testcase \ isschemavalidatedxmlblob6.testcase \ issldserststyle1.testcase \ issldserststyle2.testcase \ issldserststyle3.testcase \ issldserststyle4.testcase \ issldserststyle5.testcase \ issldserststyle6.testcase \ issldserststyle7.testcase \ issldsestyle1.testcase \ issldsestyle2.testcase \ issldsestyle3.testcase \ issldsestyle4.testcase \ issldsestyle5.testcase \ issldsestyle6.testcase \ issldsestyle7.testcase \ issvg1.testcase \ issvg2.testcase \ issvg3.testcase \ issvg4.testcase \ issvg5.testcase \ issvg6.testcase \ issvg7.testcase \ isvalidxmlblob1.testcase \ isvalidxmlblob2.testcase \ isvalidxmlblob3.testcase \ isvalidxmlblob4.testcase \ isvalidxmlblob5.testcase \ isvalidxmlblob6.testcase \ registerGraphic10.testcase \ registerGraphic11.testcase \ registerGraphic12.testcase \ registerGraphic13.testcase \ registerGraphic14.testcase \ registerGraphic15.testcase \ registerGraphic16.testcase \ registerGraphic17.testcase \ registerGraphic18.testcase \ registerGraphic19.testcase \ registerGraphic1.testcase \ registerGraphic20.testcase \ registerGraphic21.testcase \ registerGraphic22.testcase \ registerGraphic2.testcase \ registerGraphic3.testcase \ registerGraphic4.testcase \ registerGraphic5.testcase \ registerGraphic6.testcase \ registerGraphic7.testcase \ registerGraphic8.testcase \ registerGraphic9.testcase \ registerGroup10.testcase \ registerGroup11.testcase \ registerGroup12.testcase \ registerGroup13.testcase \ registerGroup14.testcase \ registerGroup15.testcase \ registerGroup16.testcase \ registerGroup17.testcase \ registerGroup18.testcase \ registerGroup19.testcase \ registerGroup1.testcase \ registerGroup20.testcase \ registerGroup21.testcase \ registerGroup22.testcase \ registerGroup23.testcase \ registerGroup25.testcase \ registerGroup26.testcase \ registerGroup27.testcase \ registerGroup28.testcase \ registerGroup29.testcase \ registerGroup2.testcase \ registerGroup3.testcase \ registerGroup4.testcase \ registerGroup5.testcase \ registerGroup6.testcase \ registerGroup7.testcase \ registerGroup8.testcase \ registerGroup9.testcase \ registerIsoMeta10.testcase \ registerIsoMeta11.testcase \ registerIsoMeta12.testcase \ registerIsoMeta13.testcase \ registerIsoMeta14.testcase \ registerIsoMeta1.testcase \ registerIsoMeta2.testcase \ registerIsoMeta3.testcase \ registerIsoMeta4.testcase \ registerIsoMeta5.testcase \ registerIsoMeta6.testcase \ registerIsoMeta7.testcase \ registerIsoMeta8.testcase \ registerIsoMeta9.testcase \ registerRaster10.testcase \ registerRaster11.testcase \ registerRaster12.testcase \ registerRaster13.testcase \ registerRaster14.testcase \ registerRaster15.testcase \ registerRaster16.testcase \ registerRaster17.testcase \ registerRaster1.testcase \ registerRaster2.testcase \ registerRaster3.testcase \ registerRaster4.testcase \ registerRaster5.testcase \ registerRaster6.testcase \ registerRaster7.testcase \ registerRaster8.testcase \ registerRaster9.testcase \ registerVector10.testcase \ registerVector11.testcase \ registerVector12.testcase \ registerVector13.testcase \ registerVector14.testcase \ registerVector15.testcase \ registerVector16.testcase \ registerVector17.testcase \ registerVector18.testcase \ registerVector19.testcase \ registerVector1.testcase \ registerVector20.testcase \ registerVector21.testcase \ registerVector22.testcase \ registerVector2.testcase \ registerVector3.testcase \ registerVector4.testcase \ registerVector5.testcase \ registerVector6.testcase \ registerVector7.testcase \ registerVector8.testcase \ registerVector9.testcase \ setfileid1.testcase \ setfileid2.testcase \ setfileid3.testcase \ setfileid4.testcase \ setfileid5.testcase \ setGroupInfos10.testcase \ setGroupInfos11.testcase \ setGroupInfos12.testcase \ setGroupInfos13.testcase \ setGroupInfos1.testcase \ setGroupInfos2.testcase \ setGroupInfos3.testcase \ setGroupInfos4.testcase \ setGroupInfos5.testcase \ setGroupInfos6.testcase \ setGroupInfos7.testcase \ setGroupInfos8.testcase \ setGroupInfos9.testcase \ setparentid1.testcase \ setparentid2.testcase \ setparentid3.testcase \ setparentid4.testcase \ setparentid5.testcase \ xmlblobgetabstract1.testcase \ xmlblobgetabstract2.testcase \ xmlblobgetabstract3.testcase \ xmlblobgetabstract4.testcase \ xmlblobgetabstract5.testcase \ xmlblobgetabstract6.testcase \ xmlblobgetdocumentsize1.testcase \ xmlblobgetdocumentsize2.testcase \ xmlblobgetdocumentsize3.testcase \ xmlblobgetdocumentsize4.testcase \ xmlblobgetdocumentsize5.testcase \ xmlblobgetdocumentsize6.testcase \ xmlblobgetencoding1.testcase \ xmlblobgetencoding2.testcase \ xmlblobgetencoding3.testcase \ xmlblobgetencoding4.testcase \ xmlblobgetencoding5.testcase \ xmlblobgetencoding6.testcase \ xmlblobgetencoding7.testcase \ xmlblobgetfileid1.testcase \ xmlblobgetfileid2.testcase \ xmlblobgetfileid3.testcase \ xmlblobgetfileid4.testcase \ xmlblobgetfileid5.testcase \ xmlblobgetfileid6.testcase \ xmlblobgetgeometry1.testcase \ xmlblobgetgeometry2.testcase \ xmlblobgetgeometry3.testcase \ xmlblobgetgeometry4.testcase \ xmlblobgetgeometry5.testcase \ xmlblobgetgeometry6.testcase \ xmlblobgetinternalschemauri1.testcase \ xmlblobgetinternalschemauri2.testcase \ xmlblobgetinternalschemauri3.testcase \ xmlblobgetinternalschemauri4.testcase \ xmlblobgetinternalschemauri5.testcase \ xmlblobgetparentid1.testcase \ xmlblobgetparentid2.testcase \ xmlblobgetparentid3.testcase \ xmlblobgetparentid4.testcase \ xmlblobgetparentid5.testcase \ xmlblobgetparentid6.testcase \ xmlblobgetschemauri1.testcase \ xmlblobgetschemauri2.testcase \ xmlblobgetschemauri3.testcase \ xmlblobgetschemauri4.testcase \ xmlblobgetschemauri5.testcase \ xmlblobgetschemauri6.testcase \ xmlblobgettitle1.testcase \ xmlblobgettitle2.testcase \ xmlblobgettitle3.testcase \ xmlblobgettitle4.testcase \ xmlblobgettitle5.testcase \ xmlblobgettitle6.testcase \ xmlcompress1.testcase \ xmlcompress2.testcase \ xmlcompress3.testcase \ xmlcompress4.testcase \ xmlcompress5.testcase \ xmlcompress6.testcase \ xmlcompress7.testcase \ xmlfromblob10.testcase \ xmlfromblob11.testcase \ xmlfromblob12.testcase \ xmlfromblob13.testcase \ xmlfromblob1.testcase \ xmlfromblob2.testcase \ xmlfromblob3.testcase \ xmlfromblob4.testcase \ xmlfromblob5.testcase \ xmlfromblob6.testcase \ xmlfromblob7.testcase \ xmlfromblob8.testcase \ xmlfromblob9.testcase \ xmltextfromblob10.testcase \ xmltextfromblob11.testcase \ xmltextfromblob12.testcase \ xmltextfromblob13.testcase \ xmltextfromblob1.testcase \ xmltextfromblob2.testcase \ xmltextfromblob3.testcase \ xmltextfromblob4.testcase \ xmltextfromblob5.testcase \ xmltextfromblob6.testcase \ xmltextfromblob7.testcase \ xmltextfromblob8.testcase \ xmltextfromblob9.testcase \ xmltoblob10.testcase \ xmltoblob11.testcase \ xmltoblob12.testcase \ xmltoblob13.testcase \ xmltoblob14.testcase \ xmltoblob15.testcase \ xmltoblob16.testcase \ xmltoblob17.testcase \ xmltoblob18.testcase \ xmltoblob1.testcase \ xmltoblob2.testcase \ xmltoblob3.testcase \ xmltoblob4.testcase \ xmltoblob5.testcase \ xmltoblob6.testcase \ xmltoblob7.testcase \ xmltoblob8.testcase \ xmltoblob9.testcase \ xmluncompress1.testcase \ xmluncompress2.testcase \ xmluncompress3.testcase \ xmluncompress4.testcase \ xmluncompress5.testcase \ xmluncompress6.testcase \ xmluncompress7.testcase libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlblobgetfileid3.testcase0000664000175000017500000000025312163502133024116 00000000000000XB_GetFileId - DOUBLE XmlDocument :memory: #use in-memory database SELECT XB_GetFileId(1.1); 1 # rows (not including the header row) 1 # columns XB_GetFileId(1.1) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlblobgetdocumentsize1.testcase0000664000175000017500000000027112163502133025371 00000000000000XB_GetDocumentSize - NULL XmlBLOB :memory: #use in-memory database SELECT XB_GetDocumentSize(NULL); 1 # rows (not including the header row) 1 # columns XB_GetDocumentSize(NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlblobgetabstract3.testcase0000664000175000017500000000026112163502133024464 00000000000000XB_GetAbstract - DOUBLE XmlDocument :memory: #use in-memory database SELECT XB_GetAbstract(1.1); 1 # rows (not including the header row) 1 # columns XB_GetAbstract(1.1) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmltextfromblob12.testcase0000664000175000017500000000071212163502133024112 00000000000000XB_GetDocument - valid XmlBLOB, BLOB format :memory: #use in-memory database SELECT XB_GetDocument(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD', zeroblob(4)); 1 # rows (not including the header row) 1 # columns XB_GetDocument(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD', zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/setGroupInfos8.testcase0000664000175000017500000000035612163502133023422 00000000000000SetStyledGroupInfos - BLOB title :memory: #use in-memory database SELECT SetStyledGroupInfos('group', zeroblob(4), 'abstract'); 1 # rows (not including the header row) 1 # columns SetStyledGroupInfos('group', zeroblob(4), 'abstract') -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/addfileid6.testcase0000664000175000017500000000104512163502133022512 00000000000000XB_AddFileId - valid - gmd namespace :memory: #use in-memory database SELECT XB_GetFileId(XB_AddFileId(XB_Create(CastToBlob('')), 'newfileid', 'gmd', NULL, 'gco', 'http://www.isotc211.org/2005/gco')); 1 # rows (not including the header row) 1 # columns XB_GetFileId(XB_AddFileId(XB_Create(CastToBlob('')), 'newfileid', 'gmd', NULL, 'gco', 'http://www.isotc211.org/2005/gco')):0 newfileid libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerRaster11.testcase0000664000175000017500000000037412163502133023672 00000000000000RegisterRasterStyledLayer - TEXT style_id :memory: #use in-memory database SELECT RegisterRasterStyledLayer('alpha', 'beta', zeroblob(4)); 1 # rows (not including the header row) 1 # columns RegisterRasterStyledLayer('alpha', 'beta', zeroblob(4)); -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerGraphic5.testcase0000664000175000017500000000034612163502133023731 00000000000000RegisterExternalGraphic - NULL resource :memory: #use in-memory database SELECT RegisterExternalGraphic('resource.png', NULL); 1 # rows (not including the header row) 1 # columns RegisterExternalGraphic('resource.png', NULL); -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerRaster8.testcase0000664000175000017500000000033612163502133023616 00000000000000RegisterRasterStyledLayer - TEXT style :memory: #use in-memory database SELECT RegisterRasterStyledLayer('alpha', 'beta'); 1 # rows (not including the header row) 1 # columns RegisterRasterStyledLayer('alpha', 'beta') -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerGroup11.testcase0000664000175000017500000000035112163502133023521 00000000000000RegisterStyledGroup - BLOB style_id :memory: #use in-memory database SELECT RegisterStyledGroup('alpha', 'beta', zeroblob(4)); 1 # rows (not including the header row) 1 # columns RegisterStyledGroup('alpha', 'beta', zeroblob(4)) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/iscompressedxmlblob3.testcase0000664000175000017500000000025412163502133024663 00000000000000XB_IsCompressed - DOUBLE XmlBLOB :memory: #use in-memory database SELECT XB_IsCompressed(1.1); 1 # rows (not including the header row) 1 # columns XB_IsCompressed(1.1) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerVector7.testcase0000664000175000017500000000036212163502133023616 00000000000000RegisterVectorStyledLayer - DOUBLE f_geometry_column :memory: #use in-memory database SELECT RegisterVectorStyledLayer('alpha', 1.1, NULL); 1 # rows (not including the header row) 1 # columns RegisterVectorStyledLayer('alpha', 1.1, NULL) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmltextfromblob4.testcase0000664000175000017500000000026312163502133024034 00000000000000XB_GetDocument - TEXT XmlBLOB :memory: #use in-memory database SELECT XB_GetDocument('alpha'); 1 # rows (not including the header row) 1 # columns XB_GetDocument('alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlcompress2.testcase0000664000175000017500000000025112163502133023153 00000000000000XB_Compress - TEXT XmlBLOB :memory: #use in-memory database SELECT XB_Compress('alpha'); 1 # rows (not including the header row) 1 # columns XB_Compress('alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerVector2.testcase0000664000175000017500000000034412163502133023611 00000000000000RegisterVectorStyledLayer - INTEGER f_table_name :memory: #use in-memory database SELECT RegisterVectorStyledLayer(1, NULL, NULL); 1 # rows (not including the header row) 1 # columns RegisterVectorStyledLayer(1, NULL, NULL) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlblobgetdocumentsize2.testcase0000664000175000017500000000026612163502133025376 00000000000000XB_GetDocumentSize - INTEGER XmlBLOB :memory: #use in-memory database SELECT XB_GetDocumentSize(1); 1 # rows (not including the header row) 1 # columns XB_GetDocumentSize(1) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerGroup16.testcase0000664000175000017500000000035212163502133023527 00000000000000RegisterStyledGroup - TEXT paint_order :memory: #use in-memory database SELECT RegisterStyledGroup('alpha', 'beta', 1, 'gamma'); 1 # rows (not including the header row) 1 # columns RegisterStyledGroup('alpha', 'beta', 1, 'gamma') -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/addparentid2.testcase0000664000175000017500000000071512163502133023063 00000000000000XB_AddParentId - not ISO Metadata XmlBLOB :memory: #use in-memory database SELECT XB_AddParentId(XB_Create(CastToBlob('a')), 'alpha', NULL, NULL, NULL, NULL); 1 # rows (not including the header row) 1 # columns XB_AddParentId(XB_Create(CastToBlob('a')), 'alpha', NULL, NULL, NULL, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/iscompressedxmlblob4.testcase0000664000175000017500000000026212163502133024663 00000000000000XB_IsCompressed - TEXT XmlBLOB :memory: #use in-memory database SELECT XB_IsCompressed('alpha'); 1 # rows (not including the header row) 1 # columns XB_IsCompressed('alpha') -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/setGroupInfos12.testcase0000664000175000017500000000035312163502133023472 00000000000000SetStyledGroupInfos - BLOB abstract :memory: #use in-memory database SELECT SetStyledGroupInfos('group', 'title', zeroblob(4)); 1 # rows (not including the header row) 1 # columns SetStyledGroupInfos('group', 'title', zeroblob(4)) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/setGroupInfos4.testcase0000664000175000017500000000036312163502133023414 00000000000000SetStyledGroupInfos - BLOB group_name :memory: #use in-memory database SELECT SetStyledGroupInfos(zeroblob(4), 'title', 'abstract'); 1 # rows (not including the header row) 1 # columns SetStyledGroupInfos(zeroblob(4), 'title', 'abstract') -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerGraphic3.testcase0000664000175000017500000000031412163502133023722 00000000000000RegisterExternalGraphic - DOUBLE URL :memory: #use in-memory database SELECT RegisterExternalGraphic(1.1, NULL); 1 # rows (not including the header row) 1 # columns RegisterExternalGraphic(1.1, NULL) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlfromblob7.testcase0000664000175000017500000000063412163502133023134 00000000000000XB_GetPayload - valid XmlBLOB (uncompressed) :memory: #use in-memory database SELECT XB_GetPayload(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD'); 1 # rows (not including the header row) 1 # columns XB_GetPayload(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD') text libspatialite-4.1.1/test/sql_stmt_libxml2_tests/issldserststyle1.testcase0000664000175000017500000000027612163502133024065 00000000000000XB_IsSldSeRasterStyle - NULL XmlBLOB :memory: #use in-memory database SELECT XB_IsSldSeRasterStyle(NULL); 1 # rows (not including the header row) 1 # columns XB_IsSldSeRasterStyle(NULL) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/issvg2.testcase0000664000175000017500000000022412163502133021732 00000000000000XB_IsSvg - INTEGER XmlBLOB :memory: #use in-memory database SELECT XB_IsSvg(1); 1 # rows (not including the header row) 1 # columns XB_IsSvg(1) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlblobgetfileid4.testcase0000664000175000017500000000027512163502133024123 00000000000000XB_GetFileId - BLOB XmlDocument :memory: #use in-memory database SELECT XB_GetFileId(zeroblob(100)); 1 # rows (not including the header row) 1 # columns XB_GetFileId(zeroblob(100)) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerGraphic16.testcase0000664000175000017500000000043612163502133024013 00000000000000RegisterExternalGraphic - DOUBLE abstract :memory: #use in-memory database SELECT RegisterExternalGraphic('resource.png', zeroblob(4), 'alpha', 1.1, NULL); 1 # rows (not including the header row) 1 # columns RegisterExternalGraphic('resource.png', zeroblob(4), 'alpha', 1.1, NULL); -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/setGroupInfos9.testcase0000664000175000017500000000033512163502133023420 00000000000000SetStyledGroupInfos - NULL abstract :memory: #use in-memory database SELECT SetStyledGroupInfos('group', 'title', NULL); 1 # rows (not including the header row) 1 # columns SetStyledGroupInfos('group', 'title', NULL) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/setfileid5.testcase0000664000175000017500000000070312163502133022554 00000000000000XB_SetFileId - valid :memory: #use in-memory database SELECT XB_GetFileId(XB_SetFileId(XB_Create(CastToBlob('a')), 'newfileid')); 1 # rows (not including the header row) 1 # columns XB_GetFileId(XB_SetFileId(XB_Create(CastToBlob('a')), 'newfileid')) newfileid libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerVector15.testcase0000664000175000017500000000040712163502133023675 00000000000000RegisterVectorStyledLayer - DOUBLE style_id :memory: #use in-memory database SELECT RegisterVectorStyledLayer('alpha', 'beta', 1.1, zeroblob(4)); 1 # rows (not including the header row) 1 # columns RegisterVectorStyledLayer('alpha', 'beta', 1.1, zeroblob(4)) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerGraphic19.testcase0000664000175000017500000000043712163502133024017 00000000000000RegisterExternalGraphic - INTEGER filename :memory: #use in-memory database SELECT RegisterExternalGraphic('resource.png', zeroblob(4), 'alpha', 'beta', 1); 1 # rows (not including the header row) 1 # columns RegisterExternalGraphic('resource.png', zeroblob(4), 'alpha', 'beta', 1); -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerGroup2.testcase0000664000175000017500000000032012163502133023435 00000000000000RegisterStyledGroup - INTEGER group_name :memory: #use in-memory database SELECT RegisterStyledGroup(1, NULL, NULL); 1 # rows (not including the header row) 1 # columns RegisterStyledGroup(1, NULL, NULL) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/createstyling2.testcase0000664000175000017500000000026612163502133023462 00000000000000CreateStylingTables - TEXT :memory: #use in-memory database SELECT CreateStylingTables('alpha'); 1 # rows (not including the header row) 1 # columns CreateStylingTables('alpha') -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerVector18.testcase0000664000175000017500000000040312163502133023674 00000000000000RegisterVectorStyledLayer - INTEGER style_id :memory: #use in-memory database SELECT RegisterVectorStyledLayer('alpha', 'beta', 1, zeroblob(4)); 1 # rows (not including the header row) 1 # columns RegisterVectorStyledLayer('alpha', 'beta', 1, zeroblob(4)) 0 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/iscompressedxmlblob5.testcase0000664000175000017500000000030112163502133024656 00000000000000XB_IsCompressed - invalid XmlBLOB :memory: #use in-memory database SELECT XB_IsCompressed(zeroblob(100)); 1 # rows (not including the header row) 1 # columns XB_IsCompressed(zeroblob(100)) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerIsoMeta3.testcase0000664000175000017500000000030212163502133023703 00000000000000RegisterIsoMetadata - DOUBLE scope :memory: #use in-memory database SELECT RegisterIsoMetadata(1.1, NULL); 1 # rows (not including the header row) 1 # columns RegisterIsoMetadata(1.1, NULL) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmltoblob7.testcase0000664000175000017500000000040712163502133022611 00000000000000XB_Create - valid XMLDocument, NULL compression :memory: #use in-memory database SELECT XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', NULL); 1 # rows (not including the header row) 1 # columns XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlblobgetdocumentsize6.testcase0000664000175000017500000000065312163502133025402 00000000000000XB_GetDocumentSize - valid XmlBLOB :memory: #use in-memory database SELECT XB_GetDocumentSize(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD'); 1 # rows (not including the header row) 1 # columns XB_GetDocumentSize(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD') 18 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerGroup26.testcase0000664000175000017500000000037512163502133023535 00000000000000RegisterStyledGroup - vector DOUBLE paint_order :memory: #use in-memory database SELECT RegisterStyledGroup('alpha', 'beta', 'gamma', 1, 1.1); 1 # rows (not including the header row) 1 # columns RegisterStyledGroup('alpha', 'beta', 'gamma', 1, 1.1) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/createstyling3.testcase0000664000175000017500000000026012163502133023455 00000000000000CreateStylingTables - DOUBLE :memory: #use in-memory database SELECT CreateStylingTables(1.1); 1 # rows (not including the header row) 1 # columns CreateStylingTables(1.1) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerGraphic14.testcase0000664000175000017500000000043612163502133024011 00000000000000RegisterExternalGraphic - NULL abstract :memory: #use in-memory database SELECT RegisterExternalGraphic('resource.png', zeroblob(4), 'alpha', NULL, NULL); 1 # rows (not including the header row) 1 # columns RegisterExternalGraphic('resource.png', zeroblob(4), 'alpha', NULL, NULL); -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/createisometa4.testcase0000664000175000017500000000031212163502133023424 00000000000000CreateIsoMetadataTables - BLOB :memory: #use in-memory database SELECT CreateIsoMetadataTables(zeroblob(4)); 1 # rows (not including the header row) 1 # columns CreateIsoMetadataTables(zeroblob(4)) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerGroup21.testcase0000664000175000017500000000037212163502133023525 00000000000000RegisterStyledGroup - vector TEXT style_id :memory: #use in-memory database SELECT RegisterStyledGroup('alpha', 'beta', 'gamma', 'delta'); 1 # rows (not including the header row) 1 # columns RegisterStyledGroup('alpha', 'beta', 'gamma', 'delta') -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/setGroupInfos3.testcase0000664000175000017500000000034512163502133023413 00000000000000SetStyledGroupInfos - DOUBLE group_name :memory: #use in-memory database SELECT SetStyledGroupInfos(1.5, 'title', 'abstract'); 1 # rows (not including the header row) 1 # columns SetStyledGroupInfos(1.5, 'title', 'abstract') -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/setfileid2.testcase0000664000175000017500000000062712163502133022556 00000000000000XB_SetFileId - not ISO Metadata XmlBLOB :memory: #use in-memory database SELECT XB_SetFileId(XB_Create(CastToBlob('a')), 'alpha'); 1 # rows (not including the header row) 1 # columns XB_SetFileId(XB_Create(CastToBlob('a')), 'alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerRaster13.testcase0000664000175000017500000000036412163502133023673 00000000000000RegisterRasterStyledLayer - INTEGER style_id :memory: #use in-memory database SELECT RegisterRasterStyledLayer('alpha', 1, zeroblob(4)); 1 # rows (not including the header row) 1 # columns RegisterRasterStyledLayer('alpha', 1, zeroblob(4)); 0 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/createisometa1.testcase0000664000175000017500000000027412163502133023430 00000000000000CreateIsoMetadataTables - NULL :memory: #use in-memory database SELECT CreateIsoMetadataTables(NULL); 1 # rows (not including the header row) 1 # columns CreateIsoMetadataTables(NULL) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlblobgetschemauri4.testcase0000664000175000017500000000030612163502133024642 00000000000000XB_GetSchemaURI - BLOB XmlDocument :memory: #use in-memory database SELECT XB_GetSchemaURI(zeroblob(100)); 1 # rows (not including the header row) 1 # columns XB_GetSchemaURI(zeroblob(100)) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerGroup7.testcase0000664000175000017500000000033412163502133023447 00000000000000RegisterStyledGroup - DOUBLE coverage_name :memory: #use in-memory database SELECT RegisterStyledGroup('alpha', 1.1, NULL); 1 # rows (not including the header row) 1 # columns RegisterStyledGroup('alpha', 1.1, NULL) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerVector6.testcase0000664000175000017500000000035712163502133023621 00000000000000RegisterVectorStyledLayer - INTEGER f_geometry_column :memory: #use in-memory database SELECT RegisterVectorStyledLayer('alpha', 1, NULL); 1 # rows (not including the header row) 1 # columns RegisterVectorStyledLayer('alpha', 1, NULL) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlblobgetparentid4.testcase0000664000175000017500000000030312163502133024465 00000000000000XB_GetParentId - BLOB XmlDocument :memory: #use in-memory database SELECT XB_GetParentId(zeroblob(100)); 1 # rows (not including the header row) 1 # columns XB_GetParentId(zeroblob(100)) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlblobgetgeometry6.testcase0000664000175000017500000000056512163502133024526 00000000000000XB_GetGeometry - valid XmlBLOB, no Abstract :memory: #use in-memory database SELECT XB_GetGeometry(x'0003AB120000001A0000000000BACB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC0AA70332DD'); 1 # rows (not including the header row) 1 # columns XB_GetGeometry(x'0003AB120000001A0000000000BACB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC0AA70332DD') (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/isvalidxmlblob1.testcase0000664000175000017500000000023512163502133023613 00000000000000XB_IsValid - NULL XmlBLOB :memory: #use in-memory database SELECT XB_IsValid(NULL); 1 # rows (not including the header row) 1 # columns XB_IsValid(NULL) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/setGroupInfos13.testcase0000664000175000017500000000034012163502133023467 00000000000000SetStyledGroupInfos - valid :memory: #use in-memory database SELECT SetStyledGroupInfos('group', 'title', 'abstract'); 1 # rows (not including the header row) 1 # columns SetStyledGroupInfos('group', 'title', 'abstract') 0 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlblobgetparentid6.testcase0000664000175000017500000000057512163502133024502 00000000000000XB_GetParentId - valid XmlBLOB, no ParentIdentifier :memory: #use in-memory database SELECT XB_GetParentId(x'0003AB120000001A0000000000BACB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC0AA70332DD'); 1 # rows (not including the header row) 1 # columns XB_GetParentId(x'0003AB120000001A0000000000BACB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC0AA70332DD') (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmltoblob14.testcase0000664000175000017500000000042712163502133022671 00000000000000XB_Create - valid XMLDocument, compressed, DOUBLE SchemaURI :memory: #use in-memory database SELECT XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 1, 1.1); 1 # rows (not including the header row) 1 # columns XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 1, 1.1) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerVector3.testcase0000664000175000017500000000034712163502133023615 00000000000000RegisterVectorStyledLayer - DOUBLE f_table_name :memory: #use in-memory database SELECT RegisterVectorStyledLayer(1.1, NULL, NULL); 1 # rows (not including the header row) 1 # columns RegisterVectorStyledLayer(1.1, NULL, NULL) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlblobgetschemauri5.testcase0000664000175000017500000000030512163502133024642 00000000000000XB_GetSchemaURI - invalid XmlBLOB :memory: #use in-memory database SELECT XB_GetSchemaURI(zeroblob(100)); 1 # rows (not including the header row) 1 # columns XB_GetSchemaURI(zeroblob(100)) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlfromblob9.testcase0000664000175000017500000000053512163502133023136 00000000000000XB_GetPayload - valid XmlBLOB, NULL format :memory: #use in-memory database SELECT XB_GetPayload(x'0001AB12000000120000000000BACB3C613E3C623E746578743C2F623E3C2F613EBCF63D032ADD', NULL); 1 # rows (not including the header row) 1 # columns XB_GetPayload(x'0001AB12000000120000000000BACB3C613E3C623E746578743C2F623E3C2F613EBCF63D032ADD', NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerRaster17.testcase0000664000175000017500000000034512163502133023676 00000000000000RegisterRasterStyledLayer - TEXT style :memory: #use in-memory database SELECT RegisterRasterStyledLayer('alpha', 1, 'beta'); 1 # rows (not including the header row) 1 # columns RegisterRasterStyledLayer('alpha', 1, 'beta'); -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerVector13.testcase0000664000175000017500000000036712163502133023700 00000000000000RegisterVectorStyledLayer - BLOB style :memory: #use in-memory database SELECT RegisterVectorStyledLayer('alpha', 'beta', zeroblob(4)); 1 # rows (not including the header row) 1 # columns RegisterVectorStyledLayer('alpha', 'beta', zeroblob(4)) 0 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerGroup1.testcase0000664000175000017500000000032312163502133023437 00000000000000RegisterStyledGroup - NULL group_name :memory: #use in-memory database SELECT RegisterStyledGroup(NULL, NULL, NULL); 1 # rows (not including the header row) 1 # columns RegisterStyledGroup(NULL, NULL, NULL) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlcompress1.testcase0000664000175000017500000000024312163502133023153 00000000000000XB_Compress - NULL XmlBLOB :memory: #use in-memory database SELECT XB_Compress(NULL); 1 # rows (not including the header row) 1 # columns XB_Compress(NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlblobgetencoding4.testcase0000664000175000017500000000026312163502133024452 00000000000000XB_GetEncoding - TEXT XmlBLOB :memory: #use in-memory database SELECT XB_GetEncoding('alpha'); 1 # rows (not including the header row) 1 # columns XB_GetEncoding('alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerGraphic20.testcase0000664000175000017500000000044212163502133024003 00000000000000RegisterExternalGraphic - DOUBLE filename :memory: #use in-memory database SELECT RegisterExternalGraphic('resource.png', zeroblob(4), 'alpha', 'beta', 1.1); 1 # rows (not including the header row) 1 # columns RegisterExternalGraphic('resource.png', zeroblob(4), 'alpha', 'beta', 1.1); -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerGroup15.testcase0000664000175000017500000000034412163502133023527 00000000000000RegisterStyledGroup - DOUBLE paint_order :memory: #use in-memory database SELECT RegisterStyledGroup('alpha', 'beta', 1, 1.1); 1 # rows (not including the header row) 1 # columns RegisterStyledGroup('alpha', 'beta', 1, 1.1) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/createstyling5.testcase0000664000175000017500000000025212163502133023460 00000000000000CreateStylingTables - no args :memory: #use in-memory database SELECT CreateStylingTables(); 1 # rows (not including the header row) 1 # columns CreateStylingTables() 1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/issldserststyle5.testcase0000664000175000017500000000032312163502133024062 00000000000000XB_IsSldSeRasterStyle - invalid XmlBLOB :memory: #use in-memory database SELECT XB_IsSldSeRasterStyle(zeroblob(100)); 1 # rows (not including the header row) 1 # columns XB_IsSldSeRasterStyle(zeroblob(100)) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/addparentid1.testcase0000664000175000017500000000035712163502133023064 00000000000000XB_AddParentId - NULL XmlBLOB :memory: #use in-memory database SELECT XB_AddParentId(NULL, 'alpha', NULL, NULL, NULL, NULL); 1 # rows (not including the header row) 1 # columns XB_AddParentId(NULL, 'alpha', NULL, NULL, NULL, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmltoblob9.testcase0000664000175000017500000000042512163502133022613 00000000000000XB_Create - valid XMLDocument, BLOB compression :memory: #use in-memory database SELECT XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', zeroblob(4)); 1 # rows (not including the header row) 1 # columns XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerGroup29.testcase0000664000175000017500000000037112163502133023534 00000000000000RegisterStyledGroup - vector INTEGER paint_order :memory: #use in-memory database SELECT RegisterStyledGroup('alpha', 'beta', 'gamma', 1, 1); 1 # rows (not including the header row) 1 # columns RegisterStyledGroup('alpha', 'beta', 'gamma', 1, 1) 0 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/isschemavalidatedxmlblob2.testcase0000664000175000017500000000027012163502133025632 00000000000000XB_IsSchemaValidated - INTEGER XmlBLOB :memory: #use in-memory database SELECT XB_IsSchemaValidated(1); 1 # rows (not including the header row) 1 # columns XB_IsSchemaValidated(1) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/createisometa3.testcase0000664000175000017500000000027412163502133023432 00000000000000CreateIsoMetadataTables - DOUBLE :memory: #use in-memory database SELECT CreateIsoMetadataTables(1.1); 1 # rows (not including the header row) 1 # columns CreateIsoMetadataTables(1.1) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/issldsestyle7.testcase0000664000175000017500000000063412163502133023340 00000000000000XB_IsSldSeVectorStyle - valid XmlBLOB (FALSE) :memory: #use in-memory database SELECT XB_IsSldSeVectorStyle(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD'); 1 # rows (not including the header row) 1 # columns XB_IsSldSeVectorStyle(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD') 0 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerRaster16.testcase0000664000175000017500000000034112163502133023671 00000000000000RegisterRasterStyledLayer - DOUBLE style :memory: #use in-memory database SELECT RegisterRasterStyledLayer('alpha', 1, 1.1); 1 # rows (not including the header row) 1 # columns RegisterRasterStyledLayer('alpha', 1, 1.1); -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/issvg5.testcase0000664000175000017500000000025412163502133021740 00000000000000XB_IsSvg - invalid XmlBLOB :memory: #use in-memory database SELECT XB_IsSvg(zeroblob(100)); 1 # rows (not including the header row) 1 # columns XB_IsSvg(zeroblob(100)) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlblobgettitle6.testcase0000664000175000017500000000055112163502133024007 00000000000000XB_GetTitle - valid XmlBLOB, no Title :memory: #use in-memory database SELECT XB_GetTitle(x'0003AB120000001A0000000000BACB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC0AA70332DD'); 1 # rows (not including the header row) 1 # columns XB_GetTitle(x'0003AB120000001A0000000000BACB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC0AA70332DD') (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/addparentid7.testcase0000664000175000017500000000113312163502133023063 00000000000000XB_AddParentId - valid - default namespace :memory: #use in-memory database SELECT XB_GetParentId(XB_AddParentId(XB_Create(CastToBlob('')), 'newparentid', NULL, 'http://www.isotc211.org/2005/gmd', 'gco', 'http://www.isotc211.org/2005/gco')); 1 # rows (not including the header row) 1 # columns XB_GetParentId(XB_AddParentId(XB_Create(CastToBlob('')), 'newparentid', NULL, 'http://www.isotc211.org/2005/gmd', 'gco', 'http://www.isotc211.org/2005/gco')):0 newparentid libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerGraphic21.testcase0000664000175000017500000000046012163502133024004 00000000000000RegisterExternalGraphic - BLOB filename :memory: #use in-memory database SELECT RegisterExternalGraphic('resource.png', zeroblob(4), 'alpha', 'beta', zeroblob(4)); 1 # rows (not including the header row) 1 # columns RegisterExternalGraphic('resource.png', zeroblob(4), 'alpha', 'beta', zeroblob(4)); -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerIsoMeta6.testcase0000664000175000017500000000031212163502133023707 00000000000000RegisterIsoMetadata - INTEGER metadata :memory: #use in-memory database SELECT RegisterIsoMetadata('series', 1); 1 # rows (not including the header row) 1 # columns RegisterIsoMetadata('series', 1) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerRaster9.testcase0000664000175000017500000000037012163502133023615 00000000000000RegisterRasterStyledLayer - NULL style_id :memory: #use in-memory database SELECT RegisterRasterStyledLayer('alpha', NULL, zeroblob(4)); 1 # rows (not including the header row) 1 # columns RegisterRasterStyledLayer('alpha', NULL, zeroblob(4)); -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerRaster15.testcase0000664000175000017500000000033612163502133023674 00000000000000RegisterRasterStyledLayer - INTEGER style :memory: #use in-memory database SELECT RegisterRasterStyledLayer('alpha', 1, 1); 1 # rows (not including the header row) 1 # columns RegisterRasterStyledLayer('alpha', 1, 1); -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/setparentid1.testcase0000664000175000017500000000027712163502133023130 00000000000000XB_SetParentId - NULL XmlBLOB :memory: #use in-memory database SELECT XB_SetParentId(NULL, 'alpha'); 1 # rows (not including the header row) 1 # columns XB_SetParentId(NULL, 'alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/getIsoMetaId1.testcase0000664000175000017500000000026612163502133023122 00000000000000GetIsoMetadataId - NULL fileIdentifier :memory: #use in-memory database SELECT GetIsoMetadataId(NULL); 1 # rows (not including the header row) 1 # columns GetIsoMetadataId(NULL) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerGroup27.testcase0000664000175000017500000000040312163502133023526 00000000000000RegisterStyledGroup - vector TEXT paint_order :memory: #use in-memory database SELECT RegisterStyledGroup('alpha', 'beta', 'gamma', 1, 'gamma'); 1 # rows (not including the header row) 1 # columns RegisterStyledGroup('alpha', 'beta', 'gamma', 1, 'gamma') -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/isvalidxmlblob3.testcase0000664000175000017500000000023512163502133023615 00000000000000XB_IsValid - DOUBLE XmlBLOB :memory: #use in-memory database SELECT XB_IsValid(1.1); 1 # rows (not including the header row) 1 # columns XB_IsValid(1.1) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlblobgetschemauri1.testcase0000664000175000017500000000026412163502133024642 00000000000000XB_GetSchemaURI - NULL XmlDocument :memory: #use in-memory database SELECT XB_GetSchemaURI(NULL); 1 # rows (not including the header row) 1 # columns XB_GetSchemaURI(NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlcompress3.testcase0000664000175000017500000000024012163502133023152 00000000000000XB_Compress - INTEGER XmlBLOB :memory: #use in-memory database SELECT XB_Compress(1); 1 # rows (not including the header row) 1 # columns XB_Compress(1) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerRaster5.testcase0000664000175000017500000000033212163502133023607 00000000000000RegisterRasterStyledLayer - NULL style :memory: #use in-memory database SELECT RegisterRasterStyledLayer('alpha', NULL); 1 # rows (not including the header row) 1 # columns RegisterRasterStyledLayer('alpha', NULL) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlblobgetabstract6.testcase0000664000175000017500000000056512163502133024476 00000000000000XB_GetAbstract - valid XmlBLOB, no Abstract :memory: #use in-memory database SELECT XB_GetAbstract(x'0003AB120000001A0000000000BACB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC0AA70332DD'); 1 # rows (not including the header row) 1 # columns XB_GetAbstract(x'0003AB120000001A0000000000BACB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC0AA70332DD') (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmltoblob1.testcase0000664000175000017500000000024212163502133022600 00000000000000XB_Create - NULL XMLDocument :memory: #use in-memory database SELECT XB_Create(NULL); 1 # rows (not including the header row) 1 # columns XB_Create(NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/addparentid6.testcase0000664000175000017500000000106512163502133023066 00000000000000XB_AddParentId - valid - gmd namespace :memory: #use in-memory database SELECT XB_GetParentId(XB_AddParentId(XB_Create(CastToBlob('')), 'newparentid', 'gmd', NULL, 'gco', 'http://www.isotc211.org/2005/gco')); 1 # rows (not including the header row) 1 # columns XB_GetParentId(XB_AddParentId(XB_Create(CastToBlob('')), 'newparentid', 'gmd', NULL, 'gco', 'http://www.isotc211.org/2005/gco')):0 newparentid libspatialite-4.1.1/test/sql_stmt_libxml2_tests/getIsoMetaId3.testcase0000664000175000017500000000026612163502133023124 00000000000000GetIsoMetadataId - DOUBLE fileIdentifier :memory: #use in-memory database SELECT GetIsoMetadataId(1.1); 1 # rows (not including the header row) 1 # columns GetIsoMetadataId(1.1) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerGroup4.testcase0000664000175000017500000000034112163502133023442 00000000000000RegisterStyledGroup - BLOB group_name :memory: #use in-memory database SELECT RegisterStyledGroup(zeroblob(4), NULL, NULL); 1 # rows (not including the header row) 1 # columns RegisterStyledGroup(zeroblob(4), NULL, NULL) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlblobgetabstract4.testcase0000664000175000017500000000030312163502133024462 00000000000000XB_GetAbstract - BLOB XmlDocument :memory: #use in-memory database SELECT XB_GetAbstract(zeroblob(100)); 1 # rows (not including the header row) 1 # columns XB_GetAbstract(zeroblob(100)) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/addfileid5.testcase0000664000175000017500000000101312163502133022504 00000000000000XB_AddFileId - valid - no namespaces :memory: #use in-memory database SELECT XB_GetFileId(XB_AddFileId(XB_Create(CastToBlob('a')), 'newfileid', NULL, NULL, NULL, NULL)); 1 # rows (not including the header row) 1 # columns XB_GetFileId(XB_AddFileId(XB_Create(CastToBlob('a')), 'newfileid', NULL, NULL, NULL, NULL)) newfileid libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerRaster1.testcase0000664000175000017500000000032712163502133023607 00000000000000RegisterRasterStyledLayer - NULL coverage :memory: #use in-memory database SELECT RegisterRasterStyledLayer(NULL, NULL); 1 # rows (not including the header row) 1 # columns RegisterRasterStyledLayer(NULL, NULL) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerGraphic6.testcase0000664000175000017500000000034312163502133023727 00000000000000RegisterExternalGraphic - INTEGER resource :memory: #use in-memory database SELECT RegisterExternalGraphic('resource.png', 1); 1 # rows (not including the header row) 1 # columns RegisterExternalGraphic('resource.png', 1); -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerIsoMeta12.testcase0000664000175000017500000000035712163502133023775 00000000000000RegisterIsoMetadata - BLOB id :memory: #use in-memory database SELECT RegisterIsoMetadata('series', zeroblob(4), zeroblob(4)); 1 # rows (not including the header row) 1 # columns RegisterIsoMetadata('series', zeroblob(4), zeroblob(4)) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerVector21.testcase0000664000175000017500000000036012163502133023670 00000000000000RegisterVectorStyledLayer - DOUBLE style :memory: #use in-memory database SELECT RegisterVectorStyledLayer('alpha', 'beta', 1, 1.1); 1 # rows (not including the header row) 1 # columns RegisterVectorStyledLayer('alpha', 'beta', 1, 1.1) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerIsoMeta8.testcase0000664000175000017500000000032312163502133023713 00000000000000RegisterIsoMetadata - TEXT metadata :memory: #use in-memory database SELECT RegisterIsoMetadata('series', 'alpha'); 1 # rows (not including the header row) 1 # columns RegisterIsoMetadata('series', 'alpha') -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerVector11.testcase0000664000175000017500000000035212163502133023670 00000000000000RegisterVectorStyledLayer - DOUBLE style :memory: #use in-memory database SELECT RegisterVectorStyledLayer('alpha', 'beta', 1.1); 1 # rows (not including the header row) 1 # columns RegisterVectorStyledLayer('alpha', 'beta', 1.1) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerIsoMeta11.testcase0000664000175000017500000000034112163502133023765 00000000000000RegisterIsoMetadata - DOUBLE id :memory: #use in-memory database SELECT RegisterIsoMetadata('series', zeroblob(4), 1.1); 1 # rows (not including the header row) 1 # columns RegisterIsoMetadata('series', zeroblob(4), 1.1) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/issvg1.testcase0000664000175000017500000000022712163502133021734 00000000000000XB_IsSvg - NULL XmlBLOB :memory: #use in-memory database SELECT XB_IsSvg(NULL); 1 # rows (not including the header row) 1 # columns XB_IsSvg(NULL) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/setGroupInfos1.testcase0000664000175000017500000000034512163502133023411 00000000000000SetStyledGroupInfos - NULL group_name :memory: #use in-memory database SELECT SetStyledGroupInfos(NULL, 'title', 'abstract'); 1 # rows (not including the header row) 1 # columns SetStyledGroupInfos(NULL, 'title', 'abstract') -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerGroup23.testcase0000664000175000017500000000036012163502133023524 00000000000000RegisterStyledGroup - vector INTEGER style_id :memory: #use in-memory database SELECT RegisterStyledGroup('alpha', 'beta', 'gamma', 1); 1 # rows (not including the header row) 1 # columns RegisterStyledGroup('alpha', 'beta', 'gamma', 1) 0 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerGraphic4.testcase0000664000175000017500000000033212163502133023723 00000000000000RegisterExternalGraphic - BLOB URL :memory: #use in-memory database SELECT RegisterExternalGraphic(zeroblob(4), NULL); 1 # rows (not including the header row) 1 # columns RegisterExternalGraphic(zeroblob(4), NULL) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlblobgetfileid1.testcase0000664000175000017500000000025312163502133024114 00000000000000XB_GetFileId - NULL XmlDocument :memory: #use in-memory database SELECT XB_GetFileId(NULL); 1 # rows (not including the header row) 1 # columns XB_GetFileId(NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/addparentid4.testcase0000664000175000017500000000074412163502133023067 00000000000000XB_AddParentId - ISO Metadata - INTEGER fileId :memory: #use in-memory database SELECT XB_AddParentId(XB_Create(CastToBlob('a')), 1234, NULL, NULL, NULL, NULL); 1 # rows (not including the header row) 1 # columns XB_AddParentId(XB_Create(CastToBlob('a')), 1234, NULL, NULL, NULL, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlblobgetinternalschemauri4.testcase0000664000175000017500000000031612163502133026400 00000000000000XB_GetInternalSchemaURI - TEXT XmlBLOB :memory: #use in-memory database SELECT XB_GetInternalSchemaURI('alpha'); 1 # rows (not including the header row) 1 # columns XB_GetInternalSchemaURI('alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/setGroupInfos10.testcase0000664000175000017500000000033212163502133023465 00000000000000SetStyledGroupInfos - INTEGER abstract :memory: #use in-memory database SELECT SetStyledGroupInfos('group', 'title', 1); 1 # rows (not including the header row) 1 # columns SetStyledGroupInfos('group', 'title', 1) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlcompress7.testcase0000664000175000017500000000101212163502133023154 00000000000000XB_Compress - valid XmlBLOB (uncompressed) :memory: #use in-memory database SELECT Hex(XB_Compress(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD')); 1 # rows (not including the header row) 1 # columns Hex(XB_Compress(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD')) 0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DDD libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmltextfromblob13.testcase0000664000175000017500000000070712163502133024117 00000000000000XB_GetDocument - valid XmlBLOB, INTEGER format :memory: #use in-memory database SELECT XB_GetDocument(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD', -1); 1 # rows (not including the header row) 1 # columns XB_GetDocument(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD', -1) text libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerGroup8.testcase0000664000175000017500000000035212163502133023450 00000000000000RegisterStyledGroup - BLOB coverage_name :memory: #use in-memory database SELECT RegisterStyledGroup('alpha', zeroblob(4), NULL); 1 # rows (not including the header row) 1 # columns RegisterStyledGroup('alpha', zeroblob(4), NULL) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerGroup13.testcase0000664000175000017500000000032712163502133023526 00000000000000RegisterStyledGroup - INTEGER style_id :memory: #use in-memory database SELECT RegisterStyledGroup('alpha', 'beta', 1); 1 # rows (not including the header row) 1 # columns RegisterStyledGroup('alpha', 'beta', 1) 0 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/isvalidxmlblob4.testcase0000664000175000017500000000024312163502133023615 00000000000000XB_IsValid - TEXT XmlBLOB :memory: #use in-memory database SELECT XB_IsValid('alpha'); 1 # rows (not including the header row) 1 # columns XB_IsValid('alpha') -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/createstyling4.testcase0000664000175000017500000000027612163502133023465 00000000000000CreateStylingTables - BLOB :memory: #use in-memory database SELECT CreateStylingTables(zeroblob(4)); 1 # rows (not including the header row) 1 # columns CreateStylingTables(zeroblob(4)) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/createisometa5.testcase0000664000175000017500000000026612163502133023435 00000000000000CreateIsoMetadataTables - no args :memory: #use in-memory database SELECT CreateIsoMetadataTables(); 1 # rows (not including the header row) 1 # columns CreateIsoMetadataTables() 1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/isisometadata5.testcase0000664000175000017500000000030412163502133023430 00000000000000XB_IsIsoMetadata - invalid XmlBLOB :memory: #use in-memory database SELECT XB_IsIsoMetadata(zeroblob(100)); 1 # rows (not including the header row) 1 # columns XB_IsIsoMetadata(zeroblob(100)) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmluncompress6.testcase0000664000175000017500000000103512163502133023523 00000000000000XB_Uncompress - valid XmlBLOB (compressed) :memory: #use in-memory database SELECT Hex(XB_Uncompress(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD')); 1 # rows (not including the header row) 1 # columns Hex(XB_Uncompress(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD')) 0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD libspatialite-4.1.1/test/sql_stmt_libxml2_tests/isisometadata7.testcase0000664000175000017500000000061512163502133023437 00000000000000XB_IsIsoMetadata - valid XmlBLOB (FALSE) :memory: #use in-memory database SELECT XB_IsIsoMetadata(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD'); 1 # rows (not including the header row) 1 # columns XB_IsIsoMetadata(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD') 0 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerGraphic17.testcase0000664000175000017500000000045412163502133024014 00000000000000RegisterExternalGraphic - BLOB abstract :memory: #use in-memory database SELECT RegisterExternalGraphic('resource.png', zeroblob(4), 'alpha', zeroblob(4), NULL); 1 # rows (not including the header row) 1 # columns RegisterExternalGraphic('resource.png', zeroblob(4), 'alpha', zeroblob(4), NULL); -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerIsoMeta13.testcase0000664000175000017500000000033512163502133023772 00000000000000RegisterIsoMetadata - INTEGER id :memory: #use in-memory database SELECT RegisterIsoMetadata('series', zeroblob(4), 1); 1 # rows (not including the header row) 1 # columns RegisterIsoMetadata('series', zeroblob(4), 1) 0 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlblobgetencoding3.testcase0000664000175000017500000000025512163502133024452 00000000000000XB_GetEncoding - DOUBLE XmlBLOB :memory: #use in-memory database SELECT XB_GetEncoding(1.1); 1 # rows (not including the header row) 1 # columns XB_GetEncoding(1.1) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerGroup28.testcase0000664000175000017500000000041312163502133023530 00000000000000RegisterStyledGroup - vector BLOB paint_order :memory: #use in-memory database SELECT RegisterStyledGroup('alpha', 'beta', 'gamma', 1, zeroblob(4)); 1 # rows (not including the header row) 1 # columns RegisterStyledGroup('alpha', 'beta', 'gamma', 1, zeroblob(4)) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmltoblob10.testcase0000664000175000017500000000040712163502133022663 00000000000000XB_Create - valid XMLDocument, DOUBLE compression :memory: #use in-memory database SELECT XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 1.1); 1 # rows (not including the header row) 1 # columns XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 1.1) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmluncompress4.testcase0000664000175000017500000000025112163502133023520 00000000000000XB_Uncompress - DOUBLE XmlBLOB :memory: #use in-memory database SELECT XB_Uncompress(1.1); 1 # rows (not including the header row) 1 # columns XB_Uncompress(1.1) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/addparentid3.testcase0000664000175000017500000000100312163502133023053 00000000000000XB_AddParentId - ISO Metadata - already defined parentIdentfier :memory: #use in-memory database SELECT XB_AddParentId(XB_Create(CastToBlob('a')), 'alpha', NULL, NULL, NULL, NULL); 1 # rows (not including the header row) 1 # columns XB_AddParentId(XB_Create(CastToBlob('a')), 'alpha', NULL, NULL, NULL, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/iscompressedxmlblob6.testcase0000664000175000017500000000065712163502133024675 00000000000000XB_IsCompressed - valid XmlBLOB (compressed) :memory: #use in-memory database SELECT XB_IsCompressed(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD'); 1 # rows (not including the header row) 1 # columns XB_IsCompressed(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD') 1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/issldsestyle1.testcase0000664000175000017500000000027612163502133023334 00000000000000XB_IsSldSeVectorStyle - NULL XmlBLOB :memory: #use in-memory database SELECT XB_IsSldSeVectorStyle(NULL); 1 # rows (not including the header row) 1 # columns XB_IsSldSeVectorStyle(NULL) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerIsoMeta7.testcase0000664000175000017500000000031512163502133023713 00000000000000RegisterIsoMetadata - DOUBLE metadata :memory: #use in-memory database SELECT RegisterIsoMetadata('series', 1.1); 1 # rows (not including the header row) 1 # columns RegisterIsoMetadata('series', 1.1) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmltoblob15.testcase0000664000175000017500000000044512163502133022672 00000000000000XB_Create - valid XMLDocument, compressed, BLOB SchemaURI :memory: #use in-memory database SELECT XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 1, zeroblob(4)); 1 # rows (not including the header row) 1 # columns XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 1, zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmltextfromblob7.testcase0000664000175000017500000000063712163502133024044 00000000000000XB_GetDocument - valid XmlBLOB (uncompressed) :memory: #use in-memory database SELECT XB_GetDocument(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD'); 1 # rows (not including the header row) 1 # columns XB_GetDocument(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD') text libspatialite-4.1.1/test/sql_stmt_libxml2_tests/setparentid4.testcase0000664000175000017500000000067612163502133023136 00000000000000XB_SetParentId - ISO Metadata - INTEGER parentId :memory: #use in-memory database SELECT XB_SetParentId(XB_Create(CastToBlob('a')), 1234); 1 # rows (not including the header row) 1 # columns XB_SetParentId(XB_Create(CastToBlob('a')), 1234) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/setGroupInfos6.testcase0000664000175000017500000000033512163502133023415 00000000000000SetStyledGroupInfos - INTEGER title :memory: #use in-memory database SELECT SetStyledGroupInfos('group', 1, 'abstract'); 1 # rows (not including the header row) 1 # columns SetStyledGroupInfos('group', 1, 'abstract') -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/isisometadata2.testcase0000664000175000017500000000025412163502133023431 00000000000000XB_IsIsoMetadata - INTEGER XmlBLOB :memory: #use in-memory database SELECT XB_IsIsoMetadata(1); 1 # rows (not including the header row) 1 # columns XB_IsIsoMetadata(1) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/iscompressedxmlblob2.testcase0000664000175000017500000000025112163502133024657 00000000000000XB_IsCompressed - INTEGER XmlBLOB :memory: #use in-memory database SELECT XB_IsCompressed(1); 1 # rows (not including the header row) 1 # columns XB_IsCompressed(1) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlblobgetdocumentsize3.testcase0000664000175000017500000000027112163502133025373 00000000000000XB_GetDocumentSize - DOUBLE XmlBLOB :memory: #use in-memory database SELECT XB_GetDocumentSize(1.1); 1 # rows (not including the header row) 1 # columns XB_GetDocumentSize(1.1) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmltoblob13.testcase0000664000175000017500000000042712163502133022670 00000000000000XB_Create - valid XMLDocument, compressed, NULL SchemaURI :memory: #use in-memory database SELECT XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 1, NULL); 1 # rows (not including the header row) 1 # columns XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 1, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlblobgetparentid1.testcase0000664000175000017500000000026112163502133024465 00000000000000XB_GetParentId - NULL XmlDocument :memory: #use in-memory database SELECT XB_GetParentId(NULL); 1 # rows (not including the header row) 1 # columns XB_GetParentId(NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmltextfromblob10.testcase0000664000175000017500000000067412163502133024117 00000000000000XB_GetDocument - valid XmlBLOB, TEXT format :memory: #use in-memory database SELECT XB_GetDocument(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD', 'ok'); 1 # rows (not including the header row) 1 # columns XB_GetDocument(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD', 'ok') (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlblobgettitle2.testcase0000664000175000017500000000024512163502133024003 00000000000000XB_GetTitle - INTEGER XmlDocument :memory: #use in-memory database SELECT XB_GetTitle(1); 1 # rows (not including the header row) 1 # columns XB_GetTitle(1) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerVector9.testcase0000664000175000017500000000035212163502133023617 00000000000000RegisterVectorStyledLayer - NULL style :memory: #use in-memory database SELECT RegisterVectorStyledLayer('alpha', 'beta', NULL); 1 # rows (not including the header row) 1 # columns RegisterVectorStyledLayer('alpha', 'beta', NULL) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/issldserststyle3.testcase0000664000175000017500000000027612163502133024067 00000000000000XB_IsSldSeRasterStyle - DOUBLE XmlBLOB :memory: #use in-memory database SELECT XB_IsSldSeRasterStyle(1.1); 1 # rows (not including the header row) 1 # columns XB_IsSldSeRasterStyle(1.1) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/addfileid2.testcase0000664000175000017500000000071712163502133022513 00000000000000XB_AddFileId - not ISO Metadata XmlBLOB :memory: #use in-memory database SELECT XB_AddFileId(XB_Create(CastToBlob('a')), 'alpha', NULL, NULL, NULL, NULL); 1 # rows (not including the header row) 1 # columns XB_AddFileId(XB_Create(CastToBlob('a')), 'alpha', NULL, NULL, NULL, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmluncompress1.testcase0000664000175000017500000000025112163502133023515 00000000000000XB_Uncompress - NULL XmlBLOB :memory: #use in-memory database SELECT XB_Uncompress(NULL); 1 # rows (not including the header row) 1 # columns XB_Uncompress(NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmltextfromblob6.testcase0000664000175000017500000000030712163502133024035 00000000000000XB_GetDocument - invalid BLOB XmlBLOB :memory: #use in-memory database SELECT XB_GetDocument(zeroblob(100)); 1 # rows (not including the header row) 1 # columns XB_GetDocument(zeroblob(100)) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/issvg7.testcase0000664000175000017500000000056512163502133021747 00000000000000XB_IsSvg - valid XmlBLOB (FALSE) :memory: #use in-memory database SELECT XB_IsSvg(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD'); 1 # rows (not including the header row) 1 # columns XB_IsSvg(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD') 0 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerVector8.testcase0000664000175000017500000000040012163502133023610 00000000000000RegisterVectorStyledLayer - BLOB f_geometry_column :memory: #use in-memory database SELECT RegisterVectorStyledLayer('alpha', zeroblob(4), NULL); 1 # rows (not including the header row) 1 # columns RegisterVectorStyledLayer('alpha', zeroblob(4), NULL) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlfromblob4.testcase0000664000175000017500000000026012163502133023124 00000000000000XB_GetPayload - TEXT XmlBLOB :memory: #use in-memory database SELECT XB_GetPayload('alpha'); 1 # rows (not including the header row) 1 # columns XB_GetPayload('alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/addfileid7.testcase0000664000175000017500000000111312163502133022507 00000000000000XB_AddFileId - valid - default namespace :memory: #use in-memory database SELECT XB_GetFileId(XB_AddFileId(XB_Create(CastToBlob('')), 'newfileid', NULL, 'http://www.isotc211.org/2005/gmd', 'gco', 'http://www.isotc211.org/2005/gco')); 1 # rows (not including the header row) 1 # columns XB_GetFileId(XB_AddFileId(XB_Create(CastToBlob('')), 'newfileid', NULL, 'http://www.isotc211.org/2005/gmd', 'gco', 'http://www.isotc211.org/2005/gco')):0 newfileid libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlblobgetgeometry2.testcase0000664000175000017500000000025612163502133024517 00000000000000XB_GetGeometry - INTEGER XmlDocument :memory: #use in-memory database SELECT XB_GetGeometry(1); 1 # rows (not including the header row) 1 # columns XB_GetGeometry(1) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/setfileid4.testcase0000664000175000017500000000065612163502133022562 00000000000000XB_SetFileId - ISO Metadata - INTEGER fileId :memory: #use in-memory database SELECT XB_SetFileId(XB_Create(CastToBlob('a')), 1234); 1 # rows (not including the header row) 1 # columns XB_SetFileId(XB_Create(CastToBlob('a')), 1234) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlcompress5.testcase0000664000175000017500000000027012163502133023157 00000000000000XB_Compress - invalid XmlBLOB :memory: #use in-memory database SELECT XB_Compress(zeroblob(100)); 1 # rows (not including the header row) 1 # columns XB_Compress(zeroblob(100)) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerGroup18.testcase0000664000175000017500000000034012163502133023526 00000000000000RegisterStyledGroup - INTEGER paint_order :memory: #use in-memory database SELECT RegisterStyledGroup('alpha', 'beta', 1, 1); 1 # rows (not including the header row) 1 # columns RegisterStyledGroup('alpha', 'beta', 1, 1) 0 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/getIsoMetaId5.testcase0000664000175000017500000000027312163502133023124 00000000000000GetIsoMetadataId - TEXT fileIdentifier :memory: #use in-memory database SELECT GetIsoMetadataId('alpha'); 1 # rows (not including the header row) 1 # columns GetIsoMetadataId('alpha') 0 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlcompress4.testcase0000664000175000017500000000024312163502133023156 00000000000000XB_Compress - DOUBLE XmlBLOB :memory: #use in-memory database SELECT XB_Compress(1.1); 1 # rows (not including the header row) 1 # columns XB_Compress(1.1) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/setGroupInfos2.testcase0000664000175000017500000000034212163502133023407 00000000000000SetStyledGroupInfos - INTEGER group_name :memory: #use in-memory database SELECT SetStyledGroupInfos(1, 'title', 'abstract'); 1 # rows (not including the header row) 1 # columns SetStyledGroupInfos(1, 'title', 'abstract') -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerGroup20.testcase0000664000175000017500000000036412163502133023525 00000000000000RegisterStyledGroup - vector DOUBLE style_id :memory: #use in-memory database SELECT RegisterStyledGroup('alpha', 'beta', 'gamma', 1.1); 1 # rows (not including the header row) 1 # columns RegisterStyledGroup('alpha', 'beta', 'gamma', 1.1) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmluncompress5.testcase0000664000175000017500000000027612163502133023530 00000000000000XB_Uncompress - invalid XmlBLOB :memory: #use in-memory database SELECT XB_Uncompress(zeroblob(100)); 1 # rows (not including the header row) 1 # columns XB_Uncompress(zeroblob(100)) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerRaster7.testcase0000664000175000017500000000033212163502133023611 00000000000000RegisterRasterStyledLayer - DOUBLE style :memory: #use in-memory database SELECT RegisterRasterStyledLayer('alpha', 1.1); 1 # rows (not including the header row) 1 # columns RegisterRasterStyledLayer('alpha', 1.1) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmltextfromblob2.testcase0000664000175000017500000000025212163502133024030 00000000000000XB_GetDocument - INTEGER XmlBLOB :memory: #use in-memory database SELECT XB_GetDocument(1); 1 # rows (not including the header row) 1 # columns XB_GetDocument(1) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/setGroupInfos11.testcase0000664000175000017500000000033512163502133023471 00000000000000SetStyledGroupInfos - DOUBLE abstract :memory: #use in-memory database SELECT SetStyledGroupInfos('group', 'title', 0.1); 1 # rows (not including the header row) 1 # columns SetStyledGroupInfos('group', 'title', 0.1) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/getIsoMetaId2.testcase0000664000175000017500000000026312163502133023120 00000000000000GetIsoMetadataId - INTEGER fileIdentifier :memory: #use in-memory database SELECT GetIsoMetadataId(1); 1 # rows (not including the header row) 1 # columns GetIsoMetadataId(1) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlfromblob3.testcase0000664000175000017500000000025212163502133023124 00000000000000XB_GetPayload - DOUBLE XmlBLOB :memory: #use in-memory database SELECT XB_GetPayload(1.1); 1 # rows (not including the header row) 1 # columns XB_GetPayload(1.1) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmluncompress7.testcase0000664000175000017500000000100712163502133023523 00000000000000XB_Uncompress - valid XmlBLOB (already uncompressed) :memory: #use in-memory database SELECT Hex(XB_Uncompress(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD')); 1 # rows (not including the header row) 1 # columns Hex(XB_Uncompress(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD')) 0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlblobgetparentid5.testcase0000664000175000017500000000030212163502133024465 00000000000000XB_GetParentId - invalid XmlBLOB :memory: #use in-memory database SELECT XB_GetParentId(zeroblob(100)); 1 # rows (not including the header row) 1 # columns XB_GetParentId(zeroblob(100)) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerVector10.testcase0000664000175000017500000000034712163502133023673 00000000000000RegisterVectorStyledLayer - INTEGER style :memory: #use in-memory database SELECT RegisterVectorStyledLayer('alpha', 'beta', 1); 1 # rows (not including the header row) 1 # columns RegisterVectorStyledLayer('alpha', 'beta', 1) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerGraphic9.testcase0000664000175000017500000000036312163502133023734 00000000000000RegisterExternalGraphic - BLOB resource :memory: #use in-memory database SELECT RegisterExternalGraphic('resource.png', zeroblob(4)); 1 # rows (not including the header row) 1 # columns RegisterExternalGraphic('resource.png', zeroblob(4)); 0 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlblobgetencoding7.testcase0000664000175000017500000000111312163502133024450 00000000000000XB_GetEncoding - valid XmlBLOB, UTF-8 encoding :memory: #use in-memory database SELECT XB_GetEncoding(x'0003AB38000000400000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB3B1AFC8CD51284B2D2ACECCCFB35532D433505248CD4BCE4FC9CC4BB7550A0D71D3B550B2B7B349B4B349B22B49AD28B1D14FB2B3D14FB40300FCAE114DBCD7E8866DDD'); 1 # rows (not including the header row) 1 # columns XB_GetEncoding(x'0003AB38000000400000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB3B1AFC8CD51284B2D2ACECCCFB35532D433505248CD4BCE4FC9CC4BB7550A0D71D3B550B2B7B349B4B349B22B49AD28B1D14FB2B3D14FB40300FCAE114DBCD7E8866DDD') UTF-8 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/setparentid3.testcase0000664000175000017500000000067612163502133023135 00000000000000XB_SetParentId - ISO Metadata - no parentIdentfier :memory: #use in-memory database SELECT XB_SetParentId(XB_Create(CastToBlob('a')), 'alpha'); 1 # rows (not including the header row) 1 # columns XB_SetParentId(XB_Create(CastToBlob('a')), 'alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerVector17.testcase0000664000175000017500000000042512163502133023677 00000000000000RegisterVectorStyledLayer - BLOB style_id :memory: #use in-memory database SELECT RegisterVectorStyledLayer('alpha', 'beta', zeroblob(4), zeroblob(4)); 1 # rows (not including the header row) 1 # columns RegisterVectorStyledLayer('alpha', 'beta', zeroblob(4), zeroblob(4)) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlblobgettitle1.testcase0000664000175000017500000000025012163502133023776 00000000000000XB_GetTitle - NULL XmlDocument :memory: #use in-memory database SELECT XB_GetTitle(NULL); 1 # rows (not including the header row) 1 # columns XB_GetTitle(NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlblobgetgeometry1.testcase0000664000175000017500000000026112163502133024512 00000000000000XB_GetGeometry - NULL XmlDocument :memory: #use in-memory database SELECT XB_GetGeometry(NULL); 1 # rows (not including the header row) 1 # columns XB_GetGeometry(NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlblobgetschemauri6.testcase0000664000175000017500000000057212163502133024651 00000000000000XB_GetSchemaURI - valid XmlBLOB, not validated :memory: #use in-memory database SELECT XB_GetSchemaURI(x'0003AB120000001A0000000000BACB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC0AA70332DD'); 1 # rows (not including the header row) 1 # columns XB_GetSchemaURI(x'0003AB120000001A0000000000BACB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC0AA70332DD') (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlblobgetdocumentsize4.testcase0000664000175000017500000000027712163502133025402 00000000000000XB_GetDocumentSize - TEXT XmlBLOB :memory: #use in-memory database SELECT XB_GetDocumentSize('alpha'); 1 # rows (not including the header row) 1 # columns XB_GetDocumentSize('alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlfromblob2.testcase0000664000175000017500000000024712163502133023127 00000000000000XB_GetPayload - INTEGER XmlBLOB :memory: #use in-memory database SELECT XB_GetPayload(1); 1 # rows (not including the header row) 1 # columns XB_GetPayload(1) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlblobgetinternalschemauri3.testcase0000664000175000017500000000031012163502133026371 00000000000000XB_GetInternalSchemaURI - DOUBLE XmlBLOB :memory: #use in-memory database SELECT XB_GetInternalSchemaURI(1.1); 1 # rows (not including the header row) 1 # columns XB_GetInternalSchemaURI(1.1) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/issldserststyle2.testcase0000664000175000017500000000027312163502133024063 00000000000000XB_IsSldSeRasterStyle - INTEGER XmlBLOB :memory: #use in-memory database SELECT XB_IsSldSeRasterStyle(1); 1 # rows (not including the header row) 1 # columns XB_IsSldSeRasterStyle(1) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/Makefile.in0000664000175000017500000004627012163502133021040 00000000000000# Makefile.in generated by automake 1.12.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = test/sql_stmt_libxml2_tests DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = addfileid1.testcase \ addfileid2.testcase \ addfileid3.testcase \ addfileid4.testcase \ addfileid5.testcase \ addfileid6.testcase \ addfileid7.testcase \ addparentid1.testcase \ addparentid2.testcase \ addparentid3.testcase \ addparentid4.testcase \ addparentid5.testcase \ addparentid6.testcase \ addparentid7.testcase \ createisometa1.testcase \ createisometa2.testcase \ createisometa3.testcase \ createisometa4.testcase \ createisometa5.testcase \ createisometa6.testcase \ createstyling1.testcase \ createstyling2.testcase \ createstyling3.testcase \ createstyling4.testcase \ createstyling5.testcase \ createstyling6.testcase \ getIsoMetaId1.testcase \ getIsoMetaId2.testcase \ getIsoMetaId3.testcase \ getIsoMetaId4.testcase \ getIsoMetaId5.testcase \ iscompressedxmlblob1.testcase \ iscompressedxmlblob2.testcase \ iscompressedxmlblob3.testcase \ iscompressedxmlblob4.testcase \ iscompressedxmlblob5.testcase \ iscompressedxmlblob6.testcase \ iscompressedxmlblob7.testcase \ isisometadata1.testcase \ isisometadata2.testcase \ isisometadata3.testcase \ isisometadata4.testcase \ isisometadata5.testcase \ isisometadata6.testcase \ isisometadata7.testcase \ isschemavalidatedxmlblob1.testcase \ isschemavalidatedxmlblob2.testcase \ isschemavalidatedxmlblob3.testcase \ isschemavalidatedxmlblob4.testcase \ isschemavalidatedxmlblob5.testcase \ isschemavalidatedxmlblob6.testcase \ issldserststyle1.testcase \ issldserststyle2.testcase \ issldserststyle3.testcase \ issldserststyle4.testcase \ issldserststyle5.testcase \ issldserststyle6.testcase \ issldserststyle7.testcase \ issldsestyle1.testcase \ issldsestyle2.testcase \ issldsestyle3.testcase \ issldsestyle4.testcase \ issldsestyle5.testcase \ issldsestyle6.testcase \ issldsestyle7.testcase \ issvg1.testcase \ issvg2.testcase \ issvg3.testcase \ issvg4.testcase \ issvg5.testcase \ issvg6.testcase \ issvg7.testcase \ isvalidxmlblob1.testcase \ isvalidxmlblob2.testcase \ isvalidxmlblob3.testcase \ isvalidxmlblob4.testcase \ isvalidxmlblob5.testcase \ isvalidxmlblob6.testcase \ registerGraphic10.testcase \ registerGraphic11.testcase \ registerGraphic12.testcase \ registerGraphic13.testcase \ registerGraphic14.testcase \ registerGraphic15.testcase \ registerGraphic16.testcase \ registerGraphic17.testcase \ registerGraphic18.testcase \ registerGraphic19.testcase \ registerGraphic1.testcase \ registerGraphic20.testcase \ registerGraphic21.testcase \ registerGraphic22.testcase \ registerGraphic2.testcase \ registerGraphic3.testcase \ registerGraphic4.testcase \ registerGraphic5.testcase \ registerGraphic6.testcase \ registerGraphic7.testcase \ registerGraphic8.testcase \ registerGraphic9.testcase \ registerGroup10.testcase \ registerGroup11.testcase \ registerGroup12.testcase \ registerGroup13.testcase \ registerGroup14.testcase \ registerGroup15.testcase \ registerGroup16.testcase \ registerGroup17.testcase \ registerGroup18.testcase \ registerGroup19.testcase \ registerGroup1.testcase \ registerGroup20.testcase \ registerGroup21.testcase \ registerGroup22.testcase \ registerGroup23.testcase \ registerGroup25.testcase \ registerGroup26.testcase \ registerGroup27.testcase \ registerGroup28.testcase \ registerGroup29.testcase \ registerGroup2.testcase \ registerGroup3.testcase \ registerGroup4.testcase \ registerGroup5.testcase \ registerGroup6.testcase \ registerGroup7.testcase \ registerGroup8.testcase \ registerGroup9.testcase \ registerIsoMeta10.testcase \ registerIsoMeta11.testcase \ registerIsoMeta12.testcase \ registerIsoMeta13.testcase \ registerIsoMeta14.testcase \ registerIsoMeta1.testcase \ registerIsoMeta2.testcase \ registerIsoMeta3.testcase \ registerIsoMeta4.testcase \ registerIsoMeta5.testcase \ registerIsoMeta6.testcase \ registerIsoMeta7.testcase \ registerIsoMeta8.testcase \ registerIsoMeta9.testcase \ registerRaster10.testcase \ registerRaster11.testcase \ registerRaster12.testcase \ registerRaster13.testcase \ registerRaster14.testcase \ registerRaster15.testcase \ registerRaster16.testcase \ registerRaster17.testcase \ registerRaster1.testcase \ registerRaster2.testcase \ registerRaster3.testcase \ registerRaster4.testcase \ registerRaster5.testcase \ registerRaster6.testcase \ registerRaster7.testcase \ registerRaster8.testcase \ registerRaster9.testcase \ registerVector10.testcase \ registerVector11.testcase \ registerVector12.testcase \ registerVector13.testcase \ registerVector14.testcase \ registerVector15.testcase \ registerVector16.testcase \ registerVector17.testcase \ registerVector18.testcase \ registerVector19.testcase \ registerVector1.testcase \ registerVector20.testcase \ registerVector21.testcase \ registerVector22.testcase \ registerVector2.testcase \ registerVector3.testcase \ registerVector4.testcase \ registerVector5.testcase \ registerVector6.testcase \ registerVector7.testcase \ registerVector8.testcase \ registerVector9.testcase \ setfileid1.testcase \ setfileid2.testcase \ setfileid3.testcase \ setfileid4.testcase \ setfileid5.testcase \ setGroupInfos10.testcase \ setGroupInfos11.testcase \ setGroupInfos12.testcase \ setGroupInfos13.testcase \ setGroupInfos1.testcase \ setGroupInfos2.testcase \ setGroupInfos3.testcase \ setGroupInfos4.testcase \ setGroupInfos5.testcase \ setGroupInfos6.testcase \ setGroupInfos7.testcase \ setGroupInfos8.testcase \ setGroupInfos9.testcase \ setparentid1.testcase \ setparentid2.testcase \ setparentid3.testcase \ setparentid4.testcase \ setparentid5.testcase \ xmlblobgetabstract1.testcase \ xmlblobgetabstract2.testcase \ xmlblobgetabstract3.testcase \ xmlblobgetabstract4.testcase \ xmlblobgetabstract5.testcase \ xmlblobgetabstract6.testcase \ xmlblobgetdocumentsize1.testcase \ xmlblobgetdocumentsize2.testcase \ xmlblobgetdocumentsize3.testcase \ xmlblobgetdocumentsize4.testcase \ xmlblobgetdocumentsize5.testcase \ xmlblobgetdocumentsize6.testcase \ xmlblobgetencoding1.testcase \ xmlblobgetencoding2.testcase \ xmlblobgetencoding3.testcase \ xmlblobgetencoding4.testcase \ xmlblobgetencoding5.testcase \ xmlblobgetencoding6.testcase \ xmlblobgetencoding7.testcase \ xmlblobgetfileid1.testcase \ xmlblobgetfileid2.testcase \ xmlblobgetfileid3.testcase \ xmlblobgetfileid4.testcase \ xmlblobgetfileid5.testcase \ xmlblobgetfileid6.testcase \ xmlblobgetgeometry1.testcase \ xmlblobgetgeometry2.testcase \ xmlblobgetgeometry3.testcase \ xmlblobgetgeometry4.testcase \ xmlblobgetgeometry5.testcase \ xmlblobgetgeometry6.testcase \ xmlblobgetinternalschemauri1.testcase \ xmlblobgetinternalschemauri2.testcase \ xmlblobgetinternalschemauri3.testcase \ xmlblobgetinternalschemauri4.testcase \ xmlblobgetinternalschemauri5.testcase \ xmlblobgetparentid1.testcase \ xmlblobgetparentid2.testcase \ xmlblobgetparentid3.testcase \ xmlblobgetparentid4.testcase \ xmlblobgetparentid5.testcase \ xmlblobgetparentid6.testcase \ xmlblobgetschemauri1.testcase \ xmlblobgetschemauri2.testcase \ xmlblobgetschemauri3.testcase \ xmlblobgetschemauri4.testcase \ xmlblobgetschemauri5.testcase \ xmlblobgetschemauri6.testcase \ xmlblobgettitle1.testcase \ xmlblobgettitle2.testcase \ xmlblobgettitle3.testcase \ xmlblobgettitle4.testcase \ xmlblobgettitle5.testcase \ xmlblobgettitle6.testcase \ xmlcompress1.testcase \ xmlcompress2.testcase \ xmlcompress3.testcase \ xmlcompress4.testcase \ xmlcompress5.testcase \ xmlcompress6.testcase \ xmlcompress7.testcase \ xmlfromblob10.testcase \ xmlfromblob11.testcase \ xmlfromblob12.testcase \ xmlfromblob13.testcase \ xmlfromblob1.testcase \ xmlfromblob2.testcase \ xmlfromblob3.testcase \ xmlfromblob4.testcase \ xmlfromblob5.testcase \ xmlfromblob6.testcase \ xmlfromblob7.testcase \ xmlfromblob8.testcase \ xmlfromblob9.testcase \ xmltextfromblob10.testcase \ xmltextfromblob11.testcase \ xmltextfromblob12.testcase \ xmltextfromblob13.testcase \ xmltextfromblob1.testcase \ xmltextfromblob2.testcase \ xmltextfromblob3.testcase \ xmltextfromblob4.testcase \ xmltextfromblob5.testcase \ xmltextfromblob6.testcase \ xmltextfromblob7.testcase \ xmltextfromblob8.testcase \ xmltextfromblob9.testcase \ xmltoblob10.testcase \ xmltoblob11.testcase \ xmltoblob12.testcase \ xmltoblob13.testcase \ xmltoblob14.testcase \ xmltoblob15.testcase \ xmltoblob16.testcase \ xmltoblob17.testcase \ xmltoblob18.testcase \ xmltoblob1.testcase \ xmltoblob2.testcase \ xmltoblob3.testcase \ xmltoblob4.testcase \ xmltoblob5.testcase \ xmltoblob6.testcase \ xmltoblob7.testcase \ xmltoblob8.testcase \ xmltoblob9.testcase \ xmluncompress1.testcase \ xmluncompress2.testcase \ xmluncompress3.testcase \ xmluncompress4.testcase \ xmluncompress5.testcase \ xmluncompress6.testcase \ xmluncompress7.testcase all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/sql_stmt_libxml2_tests/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign test/sql_stmt_libxml2_tests/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags: TAGS TAGS: ctags: CTAGS CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libspatialite-4.1.1/test/sql_stmt_libxml2_tests/addparentid5.testcase0000664000175000017500000000102312163502133023057 00000000000000XB_AddParentId - valid - no namespaces :memory: #use in-memory database SELECT XB_GetParentId(XB_AddParentId(XB_Create(CastToBlob('a')), 'newparentid', NULL, NULL, NULL, NULL)); 1 # rows (not including the header row) 1 # columns XB_GetParentId(XB_AddParentId(XB_Create(CastToBlob('a')), 'newparentid', NULL, NULL, NULL, NULL)) newparentid libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerRaster14.testcase0000664000175000017500000000034112163502133023667 00000000000000RegisterRasterStyledLayer - NULL style :memory: #use in-memory database SELECT RegisterRasterStyledLayer('alpha', 1, NULL); 1 # rows (not including the header row) 1 # columns RegisterRasterStyledLayer('alpha', 1, NULL); -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/createstyling6.testcase0000664000175000017500000000025412163502133023463 00000000000000CreateStylingTables - relaxed :memory: #use in-memory database SELECT CreateStylingTables(1); 1 # rows (not including the header row) 1 # columns CreateStylingTables(1) 1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerGroup6.testcase0000664000175000017500000000033112163502133023443 00000000000000RegisterStyledGroup - INTEGER coverage_name :memory: #use in-memory database SELECT RegisterStyledGroup('alpha', 1, NULL); 1 # rows (not including the header row) 1 # columns RegisterStyledGroup('alpha', 1, NULL) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/iscompressedxmlblob1.testcase0000664000175000017500000000025412163502133024661 00000000000000XB_IsCompressed - NULL XmlBLOB :memory: #use in-memory database SELECT XB_IsCompressed(NULL); 1 # rows (not including the header row) 1 # columns XB_IsCompressed(NULL) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerIsoMeta4.testcase0000664000175000017500000000032012163502133023704 00000000000000RegisterIsoMetadata - BLOB scope :memory: #use in-memory database SELECT RegisterIsoMetadata(zeroblob(4), NULL); 1 # rows (not including the header row) 1 # columns RegisterIsoMetadata(zeroblob(4), NULL) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerRaster3.testcase0000664000175000017500000000032712163502133023611 00000000000000RegisterRasterStyledLayer - DOUBLE coverage :memory: #use in-memory database SELECT RegisterRasterStyledLayer(1.1, NULL); 1 # rows (not including the header row) 1 # columns RegisterRasterStyledLayer(1.1, NULL) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlfromblob8.testcase0000664000175000017500000000067212163502133023137 00000000000000XB_GetPayload - valid XmlBLOB (compressed) :memory: #use in-memory database SELECT XB_GetPayload(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD'); 1 # rows (not including the header row) 1 # columns XB_GetPayload(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD') text libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerIsoMeta1.testcase0000664000175000017500000000030212163502133023701 00000000000000RegisterIsoMetadata - NULL scope :memory: #use in-memory database SELECT RegisterIsoMetadata(NULL, NULL); 1 # rows (not including the header row) 1 # columns RegisterIsoMetadata(NULL, NULL) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerIsoMeta14.testcase0000664000175000017500000000036212163502133023773 00000000000000RegisterIsoMetadata - TEXT fileIdentifier :memory: #use in-memory database SELECT RegisterIsoMetadata('series', zeroblob(4), 'alpha'); 1 # rows (not including the header row) 1 # columns RegisterIsoMetadata('series', zeroblob(4), 'alpha') 0 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmltextfromblob3.testcase0000664000175000017500000000025512163502133024034 00000000000000XB_GetDocument - DOUBLE XmlBLOB :memory: #use in-memory database SELECT XB_GetDocument(1.1); 1 # rows (not including the header row) 1 # columns XB_GetDocument(1.1) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/issldsestyle3.testcase0000664000175000017500000000027612163502133023336 00000000000000XB_IsSldSeVectorStyle - DOUBLE XmlBLOB :memory: #use in-memory database SELECT XB_IsSldSeVectorStyle(1.1); 1 # rows (not including the header row) 1 # columns XB_IsSldSeVectorStyle(1.1) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/issldsestyle5.testcase0000664000175000017500000000032312163502133023331 00000000000000XB_IsSldSeVectorStyle - invalid XmlBLOB :memory: #use in-memory database SELECT XB_IsSldSeVectorStyle(zeroblob(100)); 1 # rows (not including the header row) 1 # columns XB_IsSldSeVectorStyle(zeroblob(100)) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlfromblob12.testcase0000664000175000017500000000070712163502133023211 00000000000000XB_GetPayload - valid XmlBLOB, BLOB format :memory: #use in-memory database SELECT XB_GetPayload(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD', zeroblob(4)); 1 # rows (not including the header row) 1 # columns XB_GetPayload(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD', zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmltoblob11.testcase0000664000175000017500000000057312163502133022670 00000000000000XB_Create - valid XMLDocument, compressed :memory: #use in-memory database SELECT Hex(XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 1)); 1 # rows (not including the header row) 1 # columns Hex(XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 1)) 0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerGroup12.testcase0000664000175000017500000000034112163502133023521 00000000000000RegisterStyledGroup - TEXT style_id :memory: #use in-memory database SELECT RegisterStyledGroup('alpha', 'beta', 'gamma'); 1 # rows (not including the header row) 1 # columns RegisterStyledGroup('alpha', 'beta', 'gamma') -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerVector19.testcase0000664000175000017500000000036012163502133023677 00000000000000RegisterVectorStyledLayer - NULL style :memory: #use in-memory database SELECT RegisterVectorStyledLayer('alpha', 'beta', 1, NULL); 1 # rows (not including the header row) 1 # columns RegisterVectorStyledLayer('alpha', 'beta', 1, NULL) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlfromblob6.testcase0000664000175000017500000000030412163502133023125 00000000000000XB_GetPayload - invalid BLOB XmlBLOB :memory: #use in-memory database SELECT XB_GetPayload(zeroblob(100)); 1 # rows (not including the header row) 1 # columns XB_GetPayload(zeroblob(100)) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/isisometadata1.testcase0000664000175000017500000000025712163502133023433 00000000000000XB_IsIsoMetadata - NULL XmlBLOB :memory: #use in-memory database SELECT XB_IsIsoMetadata(NULL); 1 # rows (not including the header row) 1 # columns XB_IsIsoMetadata(NULL) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlfromblob5.testcase0000664000175000017500000000030412163502133023124 00000000000000XB_GetPayload - invalid BLOB XmlBLOB :memory: #use in-memory database SELECT XB_GetPayload(zeroblob(100)); 1 # rows (not including the header row) 1 # columns XB_GetPayload(zeroblob(100)) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmluncompress3.testcase0000664000175000017500000000024612163502133023523 00000000000000XB_Uncompress - INTEGER XmlBLOB :memory: #use in-memory database SELECT XB_Uncompress(1); 1 # rows (not including the header row) 1 # columns XB_Uncompress(1) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlblobgetgeometry3.testcase0000664000175000017500000000026112163502133024514 00000000000000XB_GetGeometry - DOUBLE XmlDocument :memory: #use in-memory database SELECT XB_GetGeometry(1.1); 1 # rows (not including the header row) 1 # columns XB_GetGeometry(1.1) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/issldserststyle6.testcase0000664000175000017500000000066312163502133024072 00000000000000XB_IsSldSeRasterStyle - valid XmlBLOB (TRUE) :memory: #use in-memory database SELECT XB_IsSldSeRasterStyle(x'0013AB10000000180000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB371CE2F4B2D4A4C4F0D2EA9CC49D5B7030032D505E7BCDB7BDDBCDD'); 1 # rows (not including the header row) 1 # columns XB_IsSldSeRasterStyle(x'0013AB10000000180000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB371CE2F4B2D4A4C4F0D2EA9CC49D5B7030032D505E7BCDB7BDDBCDD') 1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlblobgetschemauri2.testcase0000664000175000017500000000026112163502133024640 00000000000000XB_GetSchemaURI - INTEGER XmlDocument :memory: #use in-memory database SELECT XB_GetSchemaURI(1); 1 # rows (not including the header row) 1 # columns XB_GetSchemaURI(1) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlblobgetencoding6.testcase0000664000175000017500000000066112163502133024456 00000000000000XB_GetEncoding - valid XmlBLOB, no encoding :memory: #use in-memory database SELECT XB_GetEncoding(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD'); 1 # rows (not including the header row) 1 # columns XB_GetEncoding(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD') (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerRaster12.testcase0000664000175000017500000000040612163502133023667 00000000000000RegisterRasterStyledLayer - BLOB style_id :memory: #use in-memory database SELECT RegisterRasterStyledLayer('alpha', zeroblob(4), zeroblob(4)); 1 # rows (not including the header row) 1 # columns RegisterRasterStyledLayer('alpha', zeroblob(4), zeroblob(4)); -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmltoblob17.testcase0000664000175000017500000000044712163502133022676 00000000000000XB_Create - valid XMLDocument, compressed, SchemaURI (fail) :memory: #use in-memory database SELECT XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 1, 'alpha.xsd'); 1 # rows (not including the header row) 1 # columns XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 1, 'alpha.xsd') (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/isisometadata3.testcase0000664000175000017500000000025712163502133023435 00000000000000XB_IsIsoMetadata - DOUBLE XmlBLOB :memory: #use in-memory database SELECT XB_IsIsoMetadata(1.1); 1 # rows (not including the header row) 1 # columns XB_IsIsoMetadata(1.1) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerIsoMeta9.testcase0000664000175000017500000000033212163502133023714 00000000000000RegisterIsoMetadata - BLOB metadata :memory: #use in-memory database SELECT RegisterIsoMetadata('series', zeroblob(4)); 1 # rows (not including the header row) 1 # columns RegisterIsoMetadata('series', zeroblob(4)) 0 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerRaster6.testcase0000664000175000017500000000032712163502133023614 00000000000000RegisterRasterStyledLayer - INTEGER style :memory: #use in-memory database SELECT RegisterRasterStyledLayer('alpha', 1); 1 # rows (not including the header row) 1 # columns RegisterRasterStyledLayer('alpha', 1) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerRaster2.testcase0000664000175000017500000000032412163502133023605 00000000000000RegisterRasterStyledLayer - INTEGER coverage :memory: #use in-memory database SELECT RegisterRasterStyledLayer(1, NULL); 1 # rows (not including the header row) 1 # columns RegisterRasterStyledLayer(1, NULL) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlblobgetabstract5.testcase0000664000175000017500000000030212163502133024462 00000000000000XB_GetAbstract - invalid XmlBLOB :memory: #use in-memory database SELECT XB_GetAbstract(zeroblob(100)); 1 # rows (not including the header row) 1 # columns XB_GetAbstract(zeroblob(100)) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmltoblob4.testcase0000664000175000017500000000026012163502133022603 00000000000000XB_Create - BLOB XMLDocument :memory: #use in-memory database SELECT XB_Create(zeroblob(4)); 1 # rows (not including the header row) 1 # columns XB_Create(zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmltoblob18.testcase0000664000175000017500000000105712163502133022675 00000000000000XB_Create - valid XMLDocument, UTF-8 :memory: #use in-memory database SELECT Hex(XB_Create(x'3C3F786D6C2076657273696F6E3D22312E302220656E636F64696E673D227574662D3822203F3E3C613E746578743C2F613E')); 1 # rows (not including the header row) 1 # columns Hex(XB_Create(x'3C3F786D6C2076657273696F6E3D22312E302220656E636F64696E673D227574662D3822203F3E3C613E746578743C2F613E')) 0003AB320000003A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB3B1AFC8CD51284B2D2ACECCCFB35532D433505248CD4BCE4FC9CC4BB7552A2D49D3B55052B0B7B349B42B49AD28B1D14FB403009EE70FE6BC8886571CDD libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmltextfromblob11.testcase0000664000175000017500000000067412163502133024120 00000000000000XB_GetDocument - valid XmlBLOB, DOUBLE format :memory: #use in-memory database SELECT XB_GetDocument(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD', 1.1); 1 # rows (not including the header row) 1 # columns XB_GetDocument(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD', 1.1) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlblobgettitle3.testcase0000664000175000017500000000025012163502133024000 00000000000000XB_GetTitle - DOUBLE XmlDocument :memory: #use in-memory database SELECT XB_GetTitle(1.1); 1 # rows (not including the header row) 1 # columns XB_GetTitle(1.1) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlcompress6.testcase0000664000175000017500000000106012163502133023156 00000000000000XB_Compress - valid XmlBLOB (already compressed) :memory: #use in-memory database SELECT Hex(XB_Compress(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD')); 1 # rows (not including the header row) 1 # columns Hex(XB_Compress(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD')) 0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlblobgetencoding1.testcase0000664000175000017500000000025512163502133024450 00000000000000XB_GetEncoding - NULL XmlBLOB :memory: #use in-memory database SELECT XB_GetEncoding(NULL); 1 # rows (not including the header row) 1 # columns XB_GetEncoding(NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerGraphic18.testcase0000664000175000017500000000044212163502133024012 00000000000000RegisterExternalGraphic - NULL filename :memory: #use in-memory database SELECT RegisterExternalGraphic('resource.png', zeroblob(4), 'alpha', 'beta', NULL); 1 # rows (not including the header row) 1 # columns RegisterExternalGraphic('resource.png', zeroblob(4), 'alpha', 'beta', NULL); -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlblobgetabstract1.testcase0000664000175000017500000000026112163502133024462 00000000000000XB_GetAbstract - NULL XmlDocument :memory: #use in-memory database SELECT XB_GetAbstract(NULL); 1 # rows (not including the header row) 1 # columns XB_GetAbstract(NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerIsoMeta10.testcase0000664000175000017500000000034112163502133023764 00000000000000RegisterIsoMetadata - NULL id :memory: #use in-memory database SELECT RegisterIsoMetadata('series', zeroblob(4), NULL); 1 # rows (not including the header row) 1 # columns RegisterIsoMetadata('series', zeroblob(4), NULL) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerGraphic8.testcase0000664000175000017500000000035412163502133023733 00000000000000RegisterExternalGraphic - TEXT resource :memory: #use in-memory database SELECT RegisterExternalGraphic('resource.png', 'alpha'); 1 # rows (not including the header row) 1 # columns RegisterExternalGraphic('resource.png', 'alpha'); -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/isschemavalidatedxmlblob5.testcase0000664000175000017500000000032012163502133025631 00000000000000XB_IsSchemaValidated - invalid XmlBLOB :memory: #use in-memory database SELECT XB_IsSchemaValidated(zeroblob(100)); 1 # rows (not including the header row) 1 # columns XB_IsSchemaValidated(zeroblob(100)) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerGroup25.testcase0000664000175000017500000000037512163502133023534 00000000000000RegisterStyledGroup - vector NULL paint_order :memory: #use in-memory database SELECT RegisterStyledGroup('alpha', 'beta', 'gamma', 1, NULL); 1 # rows (not including the header row) 1 # columns RegisterStyledGroup('alpha', 'beta', 'gamma', 1, NULL) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlblobgetfileid6.testcase0000664000175000017500000000056512163502133024127 00000000000000XB_GetFileId - valid XmlBLOB, no FileIdentifier :memory: #use in-memory database SELECT XB_GetFileId(x'0003AB120000001A0000000000BACB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC0AA70332DD'); 1 # rows (not including the header row) 1 # columns XB_GetFileId(x'0003AB120000001A0000000000BACB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC0AA70332DD') (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerGraphic15.testcase0000664000175000017500000000043312163502133024007 00000000000000RegisterExternalGraphic - INTEGER abstract :memory: #use in-memory database SELECT RegisterExternalGraphic('resource.png', zeroblob(4), 'alpha', 1, NULL); 1 # rows (not including the header row) 1 # columns RegisterExternalGraphic('resource.png', zeroblob(4), 'alpha', 1, NULL); -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/setparentid5.testcase0000664000175000017500000000073312163502133023131 00000000000000XB_SetParentId - valid :memory: #use in-memory database SELECT XB_GetParentId(XB_SetParentId(XB_Create(CastToBlob('a')), 'newparentid')); 1 # rows (not including the header row) 1 # columns XB_GetParentId(XB_SetParentId(XB_Create(CastToBlob('a')), 'newparentid')) newparentid libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlblobgetparentid2.testcase0000664000175000017500000000025612163502133024472 00000000000000XB_GetParentId - INTEGER XmlDocument :memory: #use in-memory database SELECT XB_GetParentId(1); 1 # rows (not including the header row) 1 # columns XB_GetParentId(1) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/createisometa6.testcase0000664000175000017500000000027012163502133023431 00000000000000CreateIsoMetadataTables - relaxed :memory: #use in-memory database SELECT CreateIsoMetadataTables(1); 1 # rows (not including the header row) 1 # columns CreateIsoMetadataTables(1) 1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/setparentid2.testcase0000664000175000017500000000064512163502133023130 00000000000000XB_SetParentId - not ISO Metadata XmlBLOB :memory: #use in-memory database SELECT XB_SetParentId(XB_Create(CastToBlob('a')), 'alpha'); 1 # rows (not including the header row) 1 # columns XB_SetParentId(XB_Create(CastToBlob('a')), 'alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/issvg3.testcase0000664000175000017500000000022712163502133021736 00000000000000XB_IsSvg - DOUBLE XmlBLOB :memory: #use in-memory database SELECT XB_IsSvg(1.1); 1 # rows (not including the header row) 1 # columns XB_IsSvg(1.1) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/isschemavalidatedxmlblob6.testcase0000664000175000017500000000067712163502133025651 00000000000000XB_IsSchemaValidated - not SchemaValidated XmlBLOB :memory: #use in-memory database SELECT XB_IsSchemaValidated(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD'); 1 # rows (not including the header row) 1 # columns XB_IsSchemaValidated(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD') 0 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmltoblob6.testcase0000664000175000017500000000036312163502133022611 00000000000000XB_Create - not well-formed XMLDocument :memory: #use in-memory database SELECT XB_Create(x'3C613E3C623E746578743C2F613E3C2F623E'); 1 # rows (not including the header row) 1 # columns XB_Create(x'3C613E3C623E746578743C2F613E3C2F623E') (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmltoblob12.testcase0000664000175000017500000000055512163502133022671 00000000000000XB_Create - valid XMLDocument, uncompressed :memory: #use in-memory database SELECT Hex(XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 0)); 1 # rows (not including the header row) 1 # columns Hex(XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 0)) 0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerGraphic1.testcase0000664000175000017500000000031412163502133023720 00000000000000RegisterExternalGraphic - NULL URL :memory: #use in-memory database SELECT RegisterExternalGraphic(NULL, NULL); 1 # rows (not including the header row) 1 # columns RegisterExternalGraphic(NULL, NULL) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerGraphic7.testcase0000664000175000017500000000034612163502133023733 00000000000000RegisterExternalGraphic - DOUBLE resource :memory: #use in-memory database SELECT RegisterExternalGraphic('resource.png', 1.1); 1 # rows (not including the header row) 1 # columns RegisterExternalGraphic('resource.png', 1.1); -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/addfileid3.testcase0000664000175000017500000000076312163502133022515 00000000000000XB_AddFileId - ISO Metadata - already defined fileIdentfier :memory: #use in-memory database SELECT XB_AddFileId(XB_Create(CastToBlob('a')), 'alpha', NULL, NULL, NULL, NULL); 1 # rows (not including the header row) 1 # columns XB_AddFileId(XB_Create(CastToBlob('a')), 'alpha', NULL, NULL, NULL, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerGraphic10.testcase0000664000175000017500000000042512163502133024003 00000000000000RegisterExternalGraphic - NULL title :memory: #use in-memory database SELECT RegisterExternalGraphic('resource.png', zeroblob(4), NULL, NULL, NULL); 1 # rows (not including the header row) 1 # columns RegisterExternalGraphic('resource.png', zeroblob(4), NULL, NULL, NULL); -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmltextfromblob5.testcase0000664000175000017500000000030712163502133024034 00000000000000XB_GetDocument - invalid BLOB XmlBLOB :memory: #use in-memory database SELECT XB_GetDocument(zeroblob(100)); 1 # rows (not including the header row) 1 # columns XB_GetDocument(zeroblob(100)) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlblobgetfileid5.testcase0000664000175000017500000000027412163502133024123 00000000000000XB_GetFileId - invalid XmlBLOB :memory: #use in-memory database SELECT XB_GetFileId(zeroblob(100)); 1 # rows (not including the header row) 1 # columns XB_GetFileId(zeroblob(100)) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerGroup5.testcase0000664000175000017500000000033412163502133023445 00000000000000RegisterStyledGroup - NULL coverage_name :memory: #use in-memory database SELECT RegisterStyledGroup('alpha', NULL, NULL); 1 # rows (not including the header row) 1 # columns RegisterStyledGroup('alpha', NULL, NULL) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/issldserststyle7.testcase0000664000175000017500000000063412163502133024071 00000000000000XB_IsSldSeRasterStyle - valid XmlBLOB (FALSE) :memory: #use in-memory database SELECT XB_IsSldSeRasterStyle(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD'); 1 # rows (not including the header row) 1 # columns XB_IsSldSeRasterStyle(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD') 0 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/issvg6.testcase0000664000175000017500000000051012163502133021734 00000000000000XB_IsSvg - valid XmlBLOB (TRUE) :memory: #use in-memory database SELECT XB_IsSvg(x'0021AB07000000070000000000BA0000CA0000DA0000DB0000DC0000DDCB3C737667202F3EBC120A914BDD'); 1 # rows (not including the header row) 1 # columns XB_IsSvg(x'0021AB07000000070000000000BA0000CA0000DA0000DB0000DC0000DDCB3C737667202F3EBC120A914BDD') 1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmltextfromblob8.testcase0000664000175000017500000000067512163502133024047 00000000000000XB_GetDocument - valid XmlBLOB (compressed) :memory: #use in-memory database SELECT XB_GetDocument(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD'); 1 # rows (not including the header row) 1 # columns XB_GetDocument(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD') text libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlblobgetencoding5.testcase0000664000175000017500000000030212163502133024445 00000000000000XB_GetEncoding - invalid XmlBLOB :memory: #use in-memory database SELECT XB_GetEncoding(zeroblob(100)); 1 # rows (not including the header row) 1 # columns XB_GetEncoding(zeroblob(100)) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/setGroupInfos7.testcase0000664000175000017500000000034012163502133023412 00000000000000SetStyledGroupInfos - DOUBLE title :memory: #use in-memory database SELECT SetStyledGroupInfos('group', 1.4, 'abstract'); 1 # rows (not including the header row) 1 # columns SetStyledGroupInfos('group', 1.4, 'abstract') -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlblobgetencoding2.testcase0000664000175000017500000000025212163502133024446 00000000000000XB_GetEncoding - INTEGER XmlBLOB :memory: #use in-memory database SELECT XB_GetEncoding(1); 1 # rows (not including the header row) 1 # columns XB_GetEncoding(1) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/setfileid1.testcase0000664000175000017500000000027112163502133022550 00000000000000XB_SetFileId - NULL XmlBLOB :memory: #use in-memory database SELECT XB_SetFileId(NULL, 'alpha'); 1 # rows (not including the header row) 1 # columns XB_SetFileId(NULL, 'alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerVector14.testcase0000664000175000017500000000040712163502133023674 00000000000000RegisterVectorStyledLayer - NULL style_id :memory: #use in-memory database SELECT RegisterVectorStyledLayer('alpha', 'beta', NULL, zeroblob(4)); 1 # rows (not including the header row) 1 # columns RegisterVectorStyledLayer('alpha', 'beta', NULL, zeroblob(4)) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlfromblob11.testcase0000664000175000017500000000067112163502133023210 00000000000000XB_GetPayload - valid XmlBLOB, DOUBLE format :memory: #use in-memory database SELECT XB_GetPayload(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD', 1.1); 1 # rows (not including the header row) 1 # columns XB_GetPayload(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD', 1.1) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/issldsestyle4.testcase0000664000175000017500000000030412163502133023327 00000000000000XB_IsSldSeVectorStyle - TEXT XmlBLOB :memory: #use in-memory database SELECT XB_IsSldSeVectorStyle('alpha'); 1 # rows (not including the header row) 1 # columns XB_IsSldSeVectorStyle('alpha') -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerGraphic2.testcase0000664000175000017500000000031112163502133023716 00000000000000RegisterExternalGraphic - INTEGER URL :memory: #use in-memory database SELECT RegisterExternalGraphic(1, NULL); 1 # rows (not including the header row) 1 # columns RegisterExternalGraphic(1, NULL) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/issldserststyle4.testcase0000664000175000017500000000030412163502133024060 00000000000000XB_IsSldSeRasterStyle - TEXT XmlBLOB :memory: #use in-memory database SELECT XB_IsSldSeRasterStyle('alpha'); 1 # rows (not including the header row) 1 # columns XB_IsSldSeRasterStyle('alpha') -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerRaster4.testcase0000664000175000017500000000034512163502133023612 00000000000000RegisterRasterStyledLayer - BLOB coverage :memory: #use in-memory database SELECT RegisterRasterStyledLayer(zeroblob(4), NULL); 1 # rows (not including the header row) 1 # columns RegisterRasterStyledLayer(zeroblob(4), NULL) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlblobgetinternalschemauri2.testcase0000664000175000017500000000030512163502133026374 00000000000000XB_GetInternalSchemaURI - INTEGER XmlBLOB :memory: #use in-memory database SELECT XB_GetInternalSchemaURI(1); 1 # rows (not including the header row) 1 # columns XB_GetInternalSchemaURI(1) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerVector1.testcase0000664000175000017500000000034712163502133023613 00000000000000RegisterVectorStyledLayer - NULL f_table_name :memory: #use in-memory database SELECT RegisterVectorStyledLayer(NULL, NULL, NULL); 1 # rows (not including the header row) 1 # columns RegisterVectorStyledLayer(NULL, NULL, NULL) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmltoblob2.testcase0000664000175000017500000000023712163502133022605 00000000000000XB_Create - INTEGER XMLDocument :memory: #use in-memory database SELECT XB_Create(1); 1 # rows (not including the header row) 1 # columns XB_Create(1) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlfromblob13.testcase0000664000175000017500000000070412163502133023207 00000000000000XB_GetPayload - valid XmlBLOB, INTEGER format :memory: #use in-memory database SELECT XB_GetPayload(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD', -1); 1 # rows (not including the header row) 1 # columns XB_GetPayload(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD', -1) text libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmltoblob8.testcase0000664000175000017500000000041112163502133022605 00000000000000XB_Create - valid XMLDocument, TEXT compression :memory: #use in-memory database SELECT XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 'yes'); 1 # rows (not including the header row) 1 # columns XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 'yes') (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/getIsoMetaId4.testcase0000664000175000017500000000030412163502133023116 00000000000000GetIsoMetadataId - BLOB fileIdentifier :memory: #use in-memory database SELECT GetIsoMetadataId(zeroblob(4)); 1 # rows (not including the header row) 1 # columns GetIsoMetadataId(zeroblob(4)) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/addfileid1.testcase0000664000175000017500000000035112163502133022504 00000000000000XB_AddFileId - NULL XmlBLOB :memory: #use in-memory database SELECT XB_AddFileId(NULL, 'alpha', NULL, NULL, NULL, NULL); 1 # rows (not including the header row) 1 # columns XB_AddFileId(NULL, 'alpha', NULL, NULL, NULL, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/issldsestyle6.testcase0000664000175000017500000000066712163502133023345 00000000000000XB_IsSldSeVectorStyle - valid XmlBLOB (TRUE) :memory: #use in-memory database SELECT XB_IsSldSeVectorStyle(x'0041AB19000000190000000000BA0000CA0000DA0000DB0000DC0000DDCB3C5374796C65644C6179657244657363726970746F72202F3EBCB987BFABDD'); 1 # rows (not including the header row) 1 # columns XB_IsSldSeVectorStyle(x'0041AB19000000190000000000BA0000CA0000DA0000DB0000DC0000DDCB3C5374796C65644C6179657244657363726970746F72202F3EBCB987BFABDD') 1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerVector20.testcase0000664000175000017500000000035512163502133023673 00000000000000RegisterVectorStyledLayer - INTEGER style :memory: #use in-memory database SELECT RegisterVectorStyledLayer('alpha', 'beta', 1, 1); 1 # rows (not including the header row) 1 # columns RegisterVectorStyledLayer('alpha', 'beta', 1, 1) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlblobgetdocumentsize5.testcase0000664000175000017500000000031612163502133025375 00000000000000XB_GetDocumentSize - invalid XmlBLOB :memory: #use in-memory database SELECT XB_GetDocumentSize(zeroblob(100)); 1 # rows (not including the header row) 1 # columns XB_GetDocumentSize(zeroblob(100)) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerGraphic22.testcase0000664000175000017500000000044712163502133024012 00000000000000RegisterExternalGraphic - TEXT filename :memory: #use in-memory database SELECT RegisterExternalGraphic('resource.png', zeroblob(4), 'alpha', 'beta', 'gamma'); 1 # rows (not including the header row) 1 # columns RegisterExternalGraphic('resource.png', zeroblob(4), 'alpha', 'beta', 'gamma'); 0 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerGraphic12.testcase0000664000175000017500000000042512163502133024005 00000000000000RegisterExternalGraphic - DOUBLE title :memory: #use in-memory database SELECT RegisterExternalGraphic('resource.png', zeroblob(4), 1.1, NULL, NULL); 1 # rows (not including the header row) 1 # columns RegisterExternalGraphic('resource.png', zeroblob(4), 1.1, NULL, NULL); -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/addfileid4.testcase0000664000175000017500000000074612163502133022517 00000000000000XB_AddFileId - ISO Metadata - INTEGER fileId :memory: #use in-memory database SELECT XB_AddFileId(XB_Create(CastToBlob('a')), 1234, NULL, NULL, NULL, NULL); 1 # rows (not including the header row) 1 # columns XB_AddFileId(XB_Create(CastToBlob('a')), 1234, NULL, NULL, NULL, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlblobgetgeometry4.testcase0000664000175000017500000000030312163502133024512 00000000000000XB_GetGeometry - BLOB XmlDocument :memory: #use in-memory database SELECT XB_GetGeometry(zeroblob(100)); 1 # rows (not including the header row) 1 # columns XB_GetGeometry(zeroblob(100)) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlblobgetgeometry5.testcase0000664000175000017500000000030212163502133024512 00000000000000XB_GetGeometry - invalid XmlBLOB :memory: #use in-memory database SELECT XB_GetGeometry(zeroblob(100)); 1 # rows (not including the header row) 1 # columns XB_GetGeometry(zeroblob(100)) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerGroup10.testcase0000664000175000017500000000033312163502133023520 00000000000000RegisterStyledGroup - DOUBLE style_id :memory: #use in-memory database SELECT RegisterStyledGroup('alpha', 'beta', 1.1); 1 # rows (not including the header row) 1 # columns RegisterStyledGroup('alpha', 'beta', 1.1) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerGroup19.testcase0000664000175000017500000000036412163502133023535 00000000000000RegisterStyledGroup - vector NULL style_id :memory: #use in-memory database SELECT RegisterStyledGroup('alpha', 'beta', 'gamma', NULL); 1 # rows (not including the header row) 1 # columns RegisterStyledGroup('alpha', 'beta', 'gamma', NULL) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmltextfromblob1.testcase0000664000175000017500000000025512163502133024032 00000000000000XB_GetDocument - NULL XmlBLOB :memory: #use in-memory database SELECT XB_GetDocument(NULL); 1 # rows (not including the header row) 1 # columns XB_GetDocument(NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlfromblob10.testcase0000664000175000017500000000067112163502133023207 00000000000000XB_GetPayload - valid XmlBLOB, TEXT format :memory: #use in-memory database SELECT XB_GetPayload(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD', 'ok'); 1 # rows (not including the header row) 1 # columns XB_GetPayload(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD', 'ok') (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerGraphic11.testcase0000664000175000017500000000042212163502133024001 00000000000000RegisterExternalGraphic - INTEGER title :memory: #use in-memory database SELECT RegisterExternalGraphic('resource.png', zeroblob(4), 1, NULL, NULL); 1 # rows (not including the header row) 1 # columns RegisterExternalGraphic('resource.png', zeroblob(4), 1, NULL, NULL); -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlblobgetinternalschemauri5.testcase0000664000175000017500000000031612163502133026401 00000000000000XB_GetInternalSchemaURI - TEXT XmlBLOB :memory: #use in-memory database SELECT XB_GetInternalSchemaURI('alpha'); 1 # rows (not including the header row) 1 # columns XB_GetInternalSchemaURI('alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/setGroupInfos5.testcase0000664000175000017500000000034012163502133023410 00000000000000SetStyledGroupInfos - NULL title :memory: #use in-memory database SELECT SetStyledGroupInfos('group', NULL, 'abstract'); 1 # rows (not including the header row) 1 # columns SetStyledGroupInfos('group', NULL, 'abstract') -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/createisometa2.testcase0000664000175000017500000000030212163502133023421 00000000000000CreateIsoMetadataTables - TEXT :memory: #use in-memory database SELECT CreateIsoMetadataTables('alpha'); 1 # rows (not including the header row) 1 # columns CreateIsoMetadataTables('alpha') -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/isschemavalidatedxmlblob4.testcase0000664000175000017500000000030112163502133025627 00000000000000XB_IsSchemaValidated - TEXT XmlBLOB :memory: #use in-memory database SELECT XB_IsSchemaValidated('alpha'); 1 # rows (not including the header row) 1 # columns XB_IsSchemaValidated('alpha') -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlfromblob1.testcase0000664000175000017500000000025212163502133023122 00000000000000XB_GetPayload - NULL XmlBLOB :memory: #use in-memory database SELECT XB_GetPayload(NULL); 1 # rows (not including the header row) 1 # columns XB_GetPayload(NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/isschemavalidatedxmlblob3.testcase0000664000175000017500000000027312163502133025636 00000000000000XB_IsSchemaValidated - DOUBLE XmlBLOB :memory: #use in-memory database SELECT XB_IsSchemaValidated(1.1); 1 # rows (not including the header row) 1 # columns XB_IsSchemaValidated(1.1) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlblobgetinternalschemauri1.testcase0000664000175000017500000000031012163502133026367 00000000000000XB_GetInternalSchemaURI - NULL XmlBLOB :memory: #use in-memory database SELECT XB_GetInternalSchemaURI(NULL); 1 # rows (not including the header row) 1 # columns XB_GetInternalSchemaURI(NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/issvg4.testcase0000664000175000017500000000023512163502133021736 00000000000000XB_IsSvg - TEXT XmlBLOB :memory: #use in-memory database SELECT XB_IsSvg('alpha'); 1 # rows (not including the header row) 1 # columns XB_IsSvg('alpha') -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/isisometadata4.testcase0000664000175000017500000000026512163502133023435 00000000000000XB_IsIsoMetadata - TEXT XmlBLOB :memory: #use in-memory database SELECT XB_IsIsoMetadata('alpha'); 1 # rows (not including the header row) 1 # columns XB_IsIsoMetadata('alpha') -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlblobgettitle4.testcase0000664000175000017500000000027212163502133024005 00000000000000XB_GetTitle - BLOB XmlDocument :memory: #use in-memory database SELECT XB_GetTitle(zeroblob(100)); 1 # rows (not including the header row) 1 # columns XB_GetTitle(zeroblob(100)) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/isisometadata6.testcase0000664000175000017500000000060012163502133023430 00000000000000XB_IsIsoMetadata - valid XmlBLOB (TRUE) :memory: #use in-memory database SELECT XB_IsIsoMetadata(x'0081AB0F0000000F0000000000BA0000CA0000DA0000DB0000DC0000DDCB3C4D445F4D65746164617461202F3EBC8402E3A9DD'); 1 # rows (not including the header row) 1 # columns XB_IsIsoMetadata(x'0081AB0F0000000F0000000000BA0000CA0000DA0000DB0000DC0000DDCB3C4D445F4D65746164617461202F3EBC8402E3A9DD') 1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/isvalidxmlblob6.testcase0000664000175000017500000000062312163502133023621 00000000000000XB_IsValid - valid XmlBLOB :memory: #use in-memory database SELECT XB_IsValid(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD'); 1 # rows (not including the header row) 1 # columns XB_IsValid(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD') 1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlblobgettitle5.testcase0000664000175000017500000000027112163502133024005 00000000000000XB_GetTitle - invalid XmlBLOB :memory: #use in-memory database SELECT XB_GetTitle(zeroblob(100)); 1 # rows (not including the header row) 1 # columns XB_GetTitle(zeroblob(100)) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerVector12.testcase0000664000175000017500000000036012163502133023670 00000000000000RegisterVectorStyledLayer - TEXT style :memory: #use in-memory database SELECT RegisterVectorStyledLayer('alpha', 'beta', 'gamma'); 1 # rows (not including the header row) 1 # columns RegisterVectorStyledLayer('alpha', 'beta', 'gamma') -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerVector4.testcase0000664000175000017500000000036512163502133023616 00000000000000RegisterVectorStyledLayer - BLOB f_table_name :memory: #use in-memory database SELECT RegisterVectorStyledLayer(zeroblob(4), NULL, NULL); 1 # rows (not including the header row) 1 # columns RegisterVectorStyledLayer(zeroblob(4), NULL, NULL) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerVector16.testcase0000664000175000017500000000041512163502133023675 00000000000000RegisterVectorStyledLayer - TEXT style_id :memory: #use in-memory database SELECT RegisterVectorStyledLayer('alpha', 'beta', 'gamma', zeroblob(4)); 1 # rows (not including the header row) 1 # columns RegisterVectorStyledLayer('alpha', 'beta', 'gamma', zeroblob(4)) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerGroup14.testcase0000664000175000017500000000034412163502133023526 00000000000000RegisterStyledGroup - NULL paint_order :memory: #use in-memory database SELECT RegisterStyledGroup('alpha', 'beta', 1, NULL); 1 # rows (not including the header row) 1 # columns RegisterStyledGroup('alpha', 'beta', 1, NULL) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlblobgetschemauri3.testcase0000664000175000017500000000026412163502133024644 00000000000000XB_GetSchemaURI - DOUBLE XmlDocument :memory: #use in-memory database SELECT XB_GetSchemaURI(1.1); 1 # rows (not including the header row) 1 # columns XB_GetSchemaURI(1.1) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmlblobgetabstract2.testcase0000664000175000017500000000025612163502133024467 00000000000000XB_GetAbstract - INTEGER XmlDocument :memory: #use in-memory database SELECT XB_GetAbstract(1); 1 # rows (not including the header row) 1 # columns XB_GetAbstract(1) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerGroup9.testcase0000664000175000017500000000033312163502133023450 00000000000000RegisterStyledGroup - NULL style_id :memory: #use in-memory database SELECT RegisterStyledGroup('alpha', 'beta', NULL); 1 # rows (not including the header row) 1 # columns RegisterStyledGroup('alpha', 'beta', NULL) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmltoblob5.testcase0000664000175000017500000000055112163502133022607 00000000000000XB_Create - valid XMLDocument :memory: #use in-memory database SELECT Hex(XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E')); 1 # rows (not including the header row) 1 # columns Hex(XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E')) 0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD libspatialite-4.1.1/test/sql_stmt_libxml2_tests/isvalidxmlblob2.testcase0000664000175000017500000000023212163502133023611 00000000000000XB_IsValid - INTEGER XmlBLOB :memory: #use in-memory database SELECT XB_IsValid(1); 1 # rows (not including the header row) 1 # columns XB_IsValid(1) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/xmltoblob3.testcase0000664000175000017500000000024212163502133022602 00000000000000XB_Create - DOUBLE XMLDocument :memory: #use in-memory database SELECT XB_Create(1.1); 1 # rows (not including the header row) 1 # columns XB_Create(1.1) (NULL) libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerIsoMeta2.testcase0000664000175000017500000000027712163502133023715 00000000000000RegisterIsoMetadata - INTEGER scope :memory: #use in-memory database SELECT RegisterIsoMetadata(1, NULL); 1 # rows (not including the header row) 1 # columns RegisterIsoMetadata(1, NULL) -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/iscompressedxmlblob7.testcase0000664000175000017500000000062112163502133024665 00000000000000XB_IsCompressed - valid XmlBLOB (uncompressed) :memory: #use in-memory database SELECT XB_IsCompressed(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD'); 1 # rows (not including the header row) 1 # columns XB_IsCompressed(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD') 0 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/registerVector22.testcase0000664000175000017500000000036612163502133023677 00000000000000RegisterVectorStyledLayer - TEXT style :memory: #use in-memory database SELECT RegisterVectorStyledLayer('alpha', 'beta', 1, 'gamma'); 1 # rows (not including the header row) 1 # columns RegisterVectorStyledLayer('alpha', 'beta', 1, 'gamma') -1 libspatialite-4.1.1/test/sql_stmt_libxml2_tests/createstyling1.testcase0000664000175000017500000000026012163502133023453 00000000000000CreateStylingTables - NULL :memory: #use in-memory database SELECT CreateStylingTables(NULL); 1 # rows (not including the header row) 1 # columns CreateStylingTables(NULL) -1 libspatialite-4.1.1/test/Apple-iPhone-4.jpg0000664000175000017500000122415112163502133015373 00000000000000JFIFHH XICC_PROFILE HLinomntrRGB XYZ  1acspMSFTIEC sRGB-HP cprtP3desclwtptbkptrXYZgXYZ,bXYZ@dmndTpdmddvuedLview$lumimeas $tech0 rTRC< gTRC< bTRC< textCopyright (c) 1998 Hewlett-Packard CompanydescsRGB IEC61966-2.1sRGB IEC61966-2.1XYZ QXYZ XYZ o8XYZ bXYZ $descIEC http://www.iec.chIEC http://www.iec.chdesc.IEC 61966-2.1 Default RGB colour space - sRGB.IEC 61966-2.1 Default RGB colour space - sRGBdesc,Reference Viewing Condition in IEC61966-2.1,Reference Viewing Condition in IEC61966-2.1view_. \XYZ L VPWmeassig CRT curv #(-27;@EJOTY^chmrw| %+28>ELRY`gnu| &/8AKT]gqz !-8COZfr~ -;HUcq~ +:IXgw'7HYj{+=Oat 2FZn  % : O d y  ' = T j " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c*R{Gp@j>i  A l !!H!u!!!"'"U"""# #8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8)k))**5*h**++6+i++,,9,n,,- -A-v--..L.../$/Z///050l0011J1112*2c223 3F3334+4e4455M555676r667$7`7788P8899B999:6:t::;-;k;;<' >`>>?!?a??@#@d@@A)AjAAB0BrBBC:C}CDDGDDEEUEEF"FgFFG5G{GHHKHHIIcIIJ7J}JK KSKKL*LrLMMJMMN%NnNOOIOOP'PqPQQPQQR1R|RSS_SSTBTTU(UuUVV\VVWDWWX/X}XYYiYZZVZZ[E[[\5\\]']x]^^l^__a_``W``aOaabIbbcCccd@dde=eef=ffg=ggh?hhiCiijHjjkOkklWlmm`mnnknooxop+ppq:qqrKrss]sttptu(uuv>vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)KmExifMM*  (14.12i% AppleiPhone 4HH2011:01:13 14:33:39ȂЈ"'0221ؐ   0100Ȣ 2011:01:13 14:33:392011:01:13 14:33:39MNzET)d  ud! dC     C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?aINU3K|Âq)܅Wfۅcr賀ςhփ Mp<#cӽxNA&?}J)j&nAF}$#G|&"PD~MޘI^h2^WnT$DP *Tq^6#>2}z=;$GryxCr.q89! @霊X ZD 3 8=ۧ9; lB!fbMc(r`ʈY`nsnyDa? <jk| >O3!"´Dr{|+F$wAOloOP79 St Bp^1~jrR|H pA:SSL6cejdEYh*FI4CNT;00$BzTkARTJ(;@<뚗'_,w\=͖6 AqK >;NHa+R/#=$QJy\Qҥџ&# 嚏CsyA ey?XO]Hj6 "zK"o`H\o,}S|d"5=288tHf(#d:uRQU$t9qg璊noG"4p61hxKsh>iWɍm#T 2s 2E"X8Er [.1"&~l8$?USdZZ\slp )DjUG>0O|Ž*+*B)o$*0Ց6_5~a=Cdo&_(9SӑA,l|85.\V09BF$pܰc/9q# EjIn`v<4I#eRFq@7IJaaϺD$H{RII ʇ*H(G 9XyǷ5"gF0K0(vRf֣3D',=9=KcSK &ӹFG#$V# 9\?J@6į':V\,@V>dQ>Tŕ$#/gA?Lv:XHGNAy=~ڱFXqww5dݙpf67d{R>cLNpF8ېA'hV9.Y_q2b@0uʦ)M1VD/w|$c9O|U9 *YN>!A9⫴;J1>*M8FKxMS+$#U젒ى3Xϡ+5wb|ݫ[k ;shA#6䚠^WfP3'jWy.Œ36I<~muIŐ+pq>Udێϧ=i#81ep (ecHfuV 88*ژ|(c}jHc19A ziX^X"3^?sr=hHL-;F3ΞfSeT;O'c a$ՎF4d>X[$('rU 3_4I/Sr`$Z䖧(bѐ^ JX@߸QT ߔCpp@hENrs ?K" nCm< 1e'oQJBs?JFsǭTBնtDpr1QVϗ\#*, /l5fa6ҹeVJavǷB+GUəIgΥ,buNGAY,yDe?)^nmIȻYJ1WCaskȌL9B=0O9eTTV#C0F1מ: (]L#iͲ֥]($7Ɇg$>ϰ$:̀m;:si*UNBO=8:.vvC22rR4.L>Gޡ1y!ڸ;H9j  Q$ TFk'ݔ OSsI3, yɍy X}sT#:K %rOO|, c*[ rGnjC1T *yל/.N* N1d7b7_qlM(|:6|_3FVP AĊVL>7}*hIܲU0xҬTަ?5x)QUAB)+vۡ /2Vl*R=0,qfٱ ,H8EX@ʅ$y~>4$( #L6qQҮ1wy 7,e ȟ $SKv 6zқ$XLpŬGKƇ#{ 9Auq*REEX y Gom.7HK6Pd|(t>GIȭL|;zSQh3kqp4ilO,dМ3sҾmHfʂsc^wEWMd<ϖ87;R2 1N3ӵyQ\ɴ*7vǧoƭWZN9'?bI%Vfc`?w($2zI g4kdv9pG1 TP0b*JPY╬r6$eEK J'?R)IRN튐dFQ*.c$ 8{Aym||sQ!U d޾Zc'o3Ohʏ/<Z!rAqƍ(JfLcԊ =sڳ#,,$3:Uľ@ft\pWT #RdC2\f]ΒE$!Gs\3l*FA$n9}鋕TpSY$b!sFаb?8=}Iǘ9G4o`ݍ2LBd[lQYNs$BE]]ݜJl'# *%DnQ3L@slX}9O0!6E/C䃏cGv8NϘO]M<]mJHNe 0%,6-=#T#D$eq9UHNYdV `J$c O\z&"G2=>iK_%ODyv!X;c܁'Nq壐T;rO+gBP ֌m)]jl"M>{wReث+D\ ?N*ݖfWibYJ{?:fw ^6=zTQHܫzzRJ$e ;*#/ֱ.te8a>AaŸ)¸üQg9 =&c\.T8HA] .60~nX gwSkSѥ;xFV0FF?3rzd2#!s?Uf1Md T_|} .IR6dZܰg 7<<TWgOO^٩Tѕ*zK ƶ ؽFវg5.Q\3C31 qUEXƬ_7=D!D,^^o8lg{{L*b]'SYWiK3Yf9=8NBX<>SNLwyCcD$=z>ۧO,}$(7ȦCT P01\sڔ \˜HW_RDcx*MH^b] d N`1zU98tSi@"v?>GP;9V [pFPH8ǿHUC&Wp ϥ&e`%̱lH1?Nj{ԊHX冁_`gozFɵIB~^Um}ҜPH#nz,3;`s|v36&ǝXB>?Ҭn^Vs 6OaB`A炪1H8x_ZkQ0PY$ <~}yVf fV9v#ُdz,vR7y ÐlOc I`XUPy})^4.$*S^FG=*vv#4,;g7 dYTfJƪ>Oc?RYF`ЎVhlX85"PĶ_P`9SI!2 ma%&.诜f#-޿#^쪪$_iyL>\&/ުlTZ7T0%ǭLafOS*gvfO8sx>vrC#6.$a>C A2H4sc#,6>ؗycPAp>e 8?7L0zujŻEhK8d8R>V,݌+ɐ@rGJC*䒯,+ 'z) Xdo%_$c q|H .1Y%b,g*gxCT N@ݞ’L #x"88C*_c$/T 0aĝ? *<+*X$z9-ėWª|{qTQ4^ ~B!Я) џQVج[`y$u 0V< &񃸂ŎG#԰. \2T*br 4c$rNjl^s (>g=H7(H#'܃vnv|@$8({rqw'cP`ZvxF9 }r?*%`d<ՈRo+Cm$[+AAcD"B¯FS֤iהAݎ6E+XhX&mQ|+J7[1b6:v;Ȓǡޡ ʺ 'f$X_Vm>jG-`Qٰ{=y % fT8#>(H%C19̶9T,2Y H!!Q.Aߓz@d$bĸz+GroqܮO<xo(`r͐֝Wc@B@e/sӦ{5I%>k4$2ʡ2FNO=7T*Wk9ڥc ʫ=+6ChE ֻ*"D,coݺ˾jb(gVL˵A D#>9;{U<=? 8VՃT`p1ߨrj pB0Tg*-J?즓FR b7Ȩ~UϿoll؍Ĝƭm2Ds>X3T#'q=+;i!#RDT$dʝBJ#bO`&̌r\ =ʘٲ }jT}РwaM]ۘF+ ?G*3ra^@X!TrG `~l^'`ۈ$8)֭ȫ 2#7P߳Fl7 3d{種4쀄$ۖ}䎝/m"(.T_FX#'+xw"J3YUYP2px=z)rYf2\rA.OMҺkwCv=kWnd \~QW8&cUFw1T'6c$}jI:O*F1Tvc8A!w`/ʃ#񩕁(͹So\>I$ W%sG0l9(iN7FZQP|9WĒ=Õ*#dr8=YqyYޯs#0d`zWZ:8vS`=w>I/NYfD,cq®pJ#Uˠ- n[םi\뎤 T|9P[ hNOSe8#gn˜# m[`jLW2bC=lآXS}jnr.src&@RHR5r[cde'cSp8sI1sRWeTQ?7C@1(QN?Jc]ר1GAqVQ9?JlWx<>CR,vϭ!Cȓs|G>HZB<ǡ{ ̍ i+t,FrqVLML)Rݟ$i @!c=&DmHbs(剨㙢 qr}A d=*"K`9'ʬ`q%2\(S^b(1ƭ:!dܳ*0wt1yr3}n#eNYqҮ,]ʎ>yicmL#=bHb1 f6#5UTav#r;klJ$A$L}UY.@e 87n,bw==}!pwHŎ^dqƈ1 K ?J,Rq)=ym]Bt9TS թXGAn`sU}dT-s2k< Ƞ OZ7P"r3F}QX$`\*B ?kJXP2$` V%`K* n٭ 8%%Rpr9>W\}+ѯ^FysVW [%UX?J8Vi|``^F.GeUR>fjY(O aS۶+'=0F("Eʌ|֓6@$U Z>#4d(Fo1dVs}=)(ݫ!:NƷĿ6jY"1$8>?k2Kݖi 3Osc=ŵt{p컻vxXO3WĽG\k%mq̨V,|@ǵd(A5NR`w. jk[̈Dyި;WEEm;&rY>Vrb9G$uOqsr?Sif1AFITPRU  Kw'TTTyI3Y|ǐF\whFr y Z^ \_zIbu0sV?~]ʸs{2762nu1׎sY"5Ѻ*yMw/ j)ՙ]Ǧ=q1ژNr1^р؀(ҦF1dvpSMD {&c2Ӑ$d6QcB;5fp͐q9J-:V#_RUo3r,J9R7!ٹ#2yL$$RFp8?b',Yw9<ӁջOnIh݃yb>ަ*jAFbj#'A5R.EfCԜwʥ ft$Z6r2=[<=ӚjVݢs$B31QcȒU >Nf*}Hc ^0yEC2A'+ZhxqCFװ _OG'}w8ٺHB28-2EXՌc,vFh)#nDnH'?Qևl ",a@Ve{gR?:*s7X2InM \Jb?)[ gך`!6c%T5godn;RZL!] {TbBV>)Rxd!1 N?}ȪJQ ecr7~)W=51 `u _Zsw 0<1`1'KnX@$҈wWfw`*,aWb@Sܑ\촉Sw Oq\SKF+ H϶qT` NieG <{И9 v 2g=jEDi6K<@V;G^QDYT=*Ql1mө1$ D%" z=J3~c%HF:1)7+f8[CNF@#֔eviky%N3x6)w>b@O (PYB?۹% Cno8qa${0N{Ƕ3V2e` c*ĬAmj?\%bt?h,9UMne #u"?, n=s:ye_3>_TpwҦt3nF%Ydx<xbhghcByjbh&r7،UM) U? Gwd`;iT . L Sr{Pf4Um6jM>Zǘ99W'`G LY&4# }pš-*2U8,Rs*U?,hʌ#N$n㜓\nƪ Tb#I2̢FbBƠ3y);$jgH֦GsNX⡐ȅ"EO!h<gp$)76Q*ڇ8 ֐' \ Lji%' x5Cv>d0~Mjg4D c-gxڪх6EvsOϞ(@4(ڻrF}]]n`W¯bѱh*lq5iOfh4$%Gr?juV)+ս6$ ZH_g=84R ݷrO z` &H8] 7bەVRrx\ ]J4_;@R33 }r*88YwYD~WFHGS##nUU<ł L tsq9ju(829(Zjdl`c^$aA=)#VbBcwR@'L|4$cAp(;ARˬ{`0Cvj2Ψ}}i)]F"|dnۀF1ǷߙTsaר6N FBd}jmePHP ɭ̝3j4LΞVֲH%mT~zaؖ7v玼qol~9$㿶jlNǺR fPQ~^>$lTX`j5wW;'n= ӗde@ `tZљ=L_I`czTVcrs{Y^\cR E ZH@ҒR{10ʌmdwO*}3lkDo`B Gҫ3(b9T^XH夋ʸ犅č.R>I"ek͸v 7TlD%irZ@U\#ɾ7dtsXqJ&2|(RHǨA9s}" s s=ϵ L@A$8kBٙ󀣓z"*ŰTϠ $)v?i,&|gӟαz3~PbKõ9gea<|!{ҸؠbyHj 1 ==zw`&eCpwgzcn~^df5 yPED t'!RL$cw׵uӂ4E`IPpwsZp[x-qQH_y#?Wș?(~l#v:䃀JPbą@wBĈbF^!$*A3# sոnd;wK °;|ʌHUʱ/p?: '/'׎d2ѼYC }ΈO*3uT$hYڹPJ@UQ+l6`A [9^4m"ۖxb^9N:dwqRi% i?{ 7 ;>`q>=j"Gm݇ӽ)byZvKW"]Vfc7p6BTۿcOZfUK|yQ?)$VU)Q ^y4V!_! QCl+\珠Yܨv1D r;wQ6G} 79ӊ|byv2, ,zgS$LHX$c략$WJ;c뚈!/kn G85dH'+rHJ4FJ|P}1Vȱ!H9ǡ=N}k1.cgVñƒ qVnNJI=v~3yD۟v5z%M1Jb#\ua 'WS&C) c1$==\RnLp8;ɏVlɄ*A^\ԭ$4h 'Ze6X.NnjcY5m\}kv˹B3ld6s<)`ܓyҺ '|caQ(dݘ>blԁI߻m\}N>'95o`fF ܩ yo޳J5 (\g@AXԐ`Z{">2<*購,S`6rOTi#PӁwv2",*6szTFƱZI'rphiv@cV~6s)n*  =zPqR0wZZ Hvq=*3!~H##,3'N APq8 d5i4e&|T p*x$<H6DJ?W#LaƧ8QҜL#EY[$Ta,|䝘OF3ocn,H丗h<$~γQԴǟ>(A f+Ub8}E3kQ i O~*G ҲI"t䉗 ZA(\Pᔸ$0a۩P"Dc'gw@ |mjxPbD[Gͻdz\K\[F! 9TǨ>,7+X>TrY*D?*B$@z׎Qi8,"cWcLzS JHZnBe\֊ʰ6byq,O>I`N !q?Z! yyf Zb<Xۀ?N7w5Z5D?xyntWH;F zgژ#Q]I*y#LD܁ooҪRf "7;TO9RM.Ɇ':RD=*hY8s֝c1G,~R9^*=-W22a_ r2 eLe18ç=jlGȅ]T K¸]soL~?ҕSIc2Ϗ.ER:zn$R?"$cUĮU_9>ӟ5^"Iz:WLW1 ǼXآRYq ߧJB#d"<#aHNeVC#99T-IY3$FY{cƱpumQ||?tz:#5LKIca˵xwչ&%|Ò 4S:85'vFXIgP2:ed'2(!*w`=Q -Jcb08Q66&J`¸ E'7c,%+^6OU}0wX֔ˉH%VLHpj  n`ϷXsjJϙpcܓ>Ws42U #!gLlZ?J%Xi!z~I{\V-Gny"߻@Av6z}MNdfی~ 9Њ~`̄# F\jqi +#DDySyLfXqon3TXFSqcg1$|Lm+:iZ%ESXݗke6<=Oҝ.Ja2sP6ƠFÒW[bL'd &VrHzޕII!ޣt 6#b.:UL,˰8/'j$rGϓ翷8;PĀpHy9:cʄrHNPrI8 {O $\A-ϥo?ir+4 ۵YRrjmӮ?ZX F}L (ѰQi kCNݝcTu@[bl600z5 $ 0;qߟoN.Q#@1$"NmB^,, ;c׏NJ GQ) 0qׯ\cn4gb;N.z """L rO>0H՜o}{T*!#teGpOyL9@'Zl- pUsHǙAUʷ y ^X>IbXN8sYmXcwػ,Hj$նtt?=2BHS=_ҞA XS` hˈ#`O,:V ҁzsUdITqR 6^zP+E,z^)  9 s1bH-y\{VcU_0FQ~ei2׈+(鴒=BW/CzR,TGLIH75hWN=>.FMIB&hTpr@b+ s`}"e,m 8? )rE?lslJ(hԃ*ǽ>ad$Ҝ6o='kU&c!JX9aU2)9pv8jMP[l{W%sM]̿|o۹>jIɕeÆ#Jb|f AS$[.XDqʄ9v%qZŘNhp+Aف`Oo]Amrw`z⫠ 0QRV;T2ۆX}=>MM@UL,~xVwA'=:$vπx.T0~T4 "R<^:Xe[Ry`U MssIa8zc7h$O6O(33 qk*3`y 0*FO 1څ$tlFB捹߃c m8=Wj]-xp:)#e d|z4QH፼2yjm8\:u #T$>~K =yF`gGg-m# k͋^61sݶP\ǷXQ ͂MM1䜀YOjx.A_zВkC6E5ǘT P }),Gry=*iQX6G9Ҵ1DnO唬0mR9>Ԅ(f.h'֘A.G\hf4[2z?g ##=7ʟl8ϭ83` Qj[( 9XۮuVXK$ڠ(*@'z_JyywDsoshl /\( w8Ac-'4*d9':S#4O9>)D'xR#LD0̃|rqQ, FJcsD)8' $P9PK_!A8c1AiH>\ QZ(XypP@֝$NHVcɐ 9fs@zT98eH6C۞I+n(2|lv5ڷ;yr:H>d?v#n;cjA=9X)6#w 8 \nߊl "QU|0Fev,VADZ5*e*d`lcGnx]++6ӟsd͕ECCsHYkrd#};T.|:>*@rSwy_A9slG'}Ji͇-IVwLs N c vI>Ic0 (e;On.$hެr=IzT 1) >M6# '۵O72/в$,dv%J ggJҡCFÒ A5)7Ed&gm pGTDHK<[Nx?eރäo!<$zpU"b nUx7!XH*[G㞕W-Gp?)q㧽isL~ zO3̑2=:gqNp)/DG3pI`0V7>Bg?0݌.sۧ6F1Z!bP;z^9H 8,Nw5k UQ~PA8'Ȱ<|ȑ{j(\]O$`׷HWnde#~P72A-W9zcɧ+!lwxM`}? d`x8S!Vv% Ҕl"# )u(,!\3*>&`>S]PT}+ORfT&tdObp>db9=@#*VN<0cN.ЯevqiM3 e O  sN"FGـ@{gF>Af#o53y $"NK@@wH#-9ӟGv GԊHGhׯZ,ghD [YɆ0O]H3yKAF{rU,hBCՈy)<ʠuEHO4HnrA5T25P`˴u뚘:aMBy1jV|rB*<~#jJ:S|Ԟ9Smq1?*ì˒H&h(I'22U\wϦ*m^<,ߟlw3+x^8zԄ+^4C+|ͻ8 :}=5qK &֛!w4rE=^Ib6"JvoB}D#úmws93^ }E n(>MU4ar%p}0GO=",d*JaR#pW뚴֒:1t}:Fiym( vp{y*#"(тHpw&e`3AŽPS"d F[wD`s*9c׮iFљ2<+*8$S9*HqLAVpxRg0 @86ރ8~evu\f#wxW˚1UAwFp:'UUYBc' H==b%2LP3@EUiwY~F;յۖ9`R:SoT}{t2N񲯚 p9#ΒFwn=rNO3|lOp* 5]B9JmdaF,wQ.g8SK8y-@nG?gH e ;\rIZwv \hգǖU$8efw&nFB "XrG#'1qQWF5%ad ȩ2m;x{fHd)`@l~z5]adsӹRmi+BX媲q 붆1\I2Ѣ ;*L)d ݓ 4RQ&`Y[%eocML|w!Ƿڠ{dG|?)$R2)fg?N;Gy-s!E zu M*َՍr{y eCL?\CN6+Kܳ qr{uW'SqOt/6@|ǷU#ubr0g*Ռ度du(ʜU/ #NOZq yT; =EV+n1OxUv`G_?P/O2'c)9p*ghMCppAL,eE1.{jއ3.c\x}jHnN2@PjREu;suRѰR\~?dib) 6y=3S!dG.0|޹G;U9+ E!a9 ULgŸ^9]\!۷l5 {X> :.:*J%rmv8|\#2.r=sRbbؠ+c`4."U+#TB1#P"rѲtCzQtIY zt'R Pl;$*$zaz+ݝU G b9p:Ue8$*}]p7i稈%21r@QۥgoFGpNjSl !n@f^>Ng< ܄$aPȱ2naANHLR")qLu&rN6Pז<mn9>q/.Xp?QIv 2K`| (!%\#JJ켤/p<(N~Sخڪȸ`sҪlHrӞO* *XDpʶ'ڹn݇vU 3,a@Z AP)?20l+[`o8IqS23mwVEl1H!G}F]wWQ?a9D\=?Z~eXuےLsҳmE-B켯?{9cX  .^jy(?vEH<*Q z\TdlKcf*20CxIs=X#29eFs {t,=*7.X էr[RK,$"ur=?ZnZa۶~gLA۸/#(1I9ǧtSskO(}X.2IZ.vܧF? m:8 <j2ddC Nc 8ϵ qt~蠕So@ÊT21q+ʦ2)aHI ISv'#'$vެ ۀW(`3`CԱޫ@l5oEY WR:)EEO!ְg\$H*zSbL-ך!+c/#pDP(7ֲQ]*1Jvdr]8dV?֝Q = deIPSi,\vV,g=!Vą(AʏV"4;?uC{Tof`I>pZĐM$.D,FaF}y=],R:ɒA; `vL.F1Ve$K$|yɨ@(02rz~CaXM @ ()G@}i1{L32AjvHw/0p:gҘbo1VW|0Ozb/;G'>+\L~#4yb2 sQᄪN=9GŸ id'.W8}|xNwI KԾ?S A<3bd O3g8~I+QG$LŌg8S~Zu(ZH1 20O^j5p#spj2fiq0zڅy,;ڄpCc8#ԅy|PGp'@mc2DFWsÏNMےvn v<6}Qo6/8;>H#wTN*\$8:x߃ǾjDm`$  I`m1S7dwRe.aP?k)d* /8{RWHE \ڬ#3Li?799<v¥͊s^jSW.F?ýV>_Lg.}3NPdY\܌ =RNw&@`eS ܜu:9510t#iLltZ FD$, {ҋ&i"ɖ9HbOjx銙 ;2ǽSh'?D& 9EON})0/4ff#> X!U<R@silh O=x j"1a]zgLWrƱd^TE5QpKT.qzI %F\PTca?&vZ:r P`<]] Q-2WcY*9aXJ}~aקNHܕ`n?ƥhXh,$'GNgV50,Ҳ#B&u10~>~8Bp#=3: GF1.hKTRI98$fs)4cq*MDTH1(mp$2rZFSV7va#L?F۷c'֥Vk1WJYēI%6b;&풀pr=VbDI6=:~gE0!Wsڦ˳k4`#$gֳh P!N§W1rıN~kL6XM"GB8;JC8뚆!cg`֝,"\#ӯR9H7H1ޙ}+*2pz}KpOjtiYJǩNUY,yq1MDv$&!Vo!9qQ5)+0 p9~ܣDY%;a˃ `30NOzjVM{^]NH$_ %i)sڒ ҲFt^:gN:m9X=#(ݜs?[T&bJC>?¡Q bK?SƵ`OU 2:OB,n=ph#rBqq=KntA8=[#ą_1QgORdʂq1DQ7y#Ձcy/(:$i@|eQֲIv((dv?_Wv$U\RJSɸ\qgϿֲ弑AH_ULgMSeT#*d'i|uן§"i7VWo#v^q]-F430۳pO*W3ۜxMi2Ʒ7qud`uwCWMcI4oFP$pU3y?z˴q=? . M bV)*q.cszDImZ1"C0^v:q0{RĶUS!2F9T^I}SWd6%9i \V,F*bP~FOlӐ7Wa(ZF3lxR}qޭ+IQybIe@ӨȲ;dܧ f@(y$/,x?zɔp6+/ ==00oPf-:. >4e2b}z7ҪUŐpG\6%ȷ,e*$EF v<\9UP_zde\ޥ\5ď3> VBҎvO.] gVVT]dcƹ,m<~`تpzOդe*zc5rgc?ҬB%)lucBFè+v9#·,2I'׌Q,[syi*3ޥѦFS`= EE{|)''Ni(wܲJ1Nwwޡ%Þ8#UHdqڤ* ?? -[&03$߽ vuhF#,u*l;-HT.Q]ːFpqꩧWrF GCYJ 1[FQ"MP@BAPs=s+&Y0s欼@UZF'H6 )sEX@Xi#zf*@@froHy?ASykd#c=+k mPԱ8߳ 뒪SʢB2F9?άD6X"RI5:*4LwnJV&NXUg,Tm)pqʃYsXЉ (uaFBg#nc' ryذ9g?Vij"|9dT݀Fу' g0d de'Ҕ!@ckE I23*c>Sؙ G^})? 1d{sLY9Z4yq.K #]j exzZ;e:8T]HdTn+* %q8da9Ok00 N2ˌnʩ C>*hvwc:dz{B@Rp8?J #̪+u–f,>C]ewg=SRY#XI/cu:=\wXmtU/k:CR9H90p2@?Js[|۲uǵmF<3DI~<@o+^4GkaBF:gׯ>U,uB l9wn9z"Kmp;2UXCںK#G_(;ؠG ݦbH;֕[J9yP;UJ绘X*64)7 ǧ9d7Y ƨ8_ީJ]Ǯ=Ҁ:Nw7)n:uF c,;b42bCcq8>Fͺ7$aBg$RU/zamw*ˌ(}Nk)(;IM{ >VtFY(-# 1'Ji2^mm=˴t w`>d{ awjd:dHs:{fQ#g['bT[ 350qT"h_G^ V:|h6 da$O, 9_?*Z82z~_֪jUЊWv0 Il*rdOF =0sO,s9j})OZ 1l;qӶsU>R0N{ҩ,0O%~âCprHuGS6Ť QT_LP̡f=}1H) x~K5( !e;8ĉ.6Hc5ǜ|JA|sH]Y g JWDcuyǿ^F|3 *Ob=L0'IycVYUFsr1޳p*[|a+u>3gc׏MX$j4@yer1q9XJÆDKz?8o`ꈻ0I)TH]#RHݒzT.56Gj;N@\+pJ$apc&9 zqLM7,g'+=c8Y/93D\#xe?wWyj)Ȼ2!<+J7FA2QQ1ʫtS`OLGRdƜ# ͏h+K2>x;X\%#*1@֡ydN:y-$ `L32e~ǵO>n %i )P~1VeF);$'r].ZDa SMܮcጬA\r8''2$&e@t6i.E2`։hEƳ`A2751ެ3*?Y7} `$MFĎy+eqi)>Qyb!Xǂr?*Х"iTB5$-,B׏z~||I2Ƿz}+9t1ZIe&gf K/sHI!pGL5*A::#yįO?/$ ~jU!Ixi[3k8 GbKapn9I F 8@1 zw$w>7Fs56Q 1¥DCBrQ"ޜ'Ҥ%ɓˊ2WU ֦IFpy gN+fw$dF ? KppŎ7JjII‚q3"YT;r >բ $PtfĿ8oHV7r2?֟qF"we,t? /x=A2wV4I-Ib̆$w'v2㑓VX#2f qOL8Cm+懕6 أ<L~ޮ[,s]q,(-rq9>ߚPni*d#0=~Z'pvUm >%$b+Ȟa Tdw3#FYwP28>c޴RW+;UxaU݂ܩNGZKXe5\ȑr?!'O}px"_-e!cΈ$n=N ʇ*8u6_ [bdras֛q$|%yߎU Ht1FH2qYN0۩Q[$Cn'UyCyu 8PIfH8TDn8?&29{:ҎsE(.@r**è1jl[ґ2o ۏU %yhw82^~!EF697pYFqϥ%s9"yZC 0 @97V>?r{V $.s~!BI!Oκѓq1Š$81$|$sXFІ@"g*;?.T>cd!rv& ~|Qa4#J]|TU~qQ\9#<;r1P2F$24}=TrrǀUrsqSETEZO" V󟕲sޛ`*B0?zɧs5+23pT3a+$8Ddc*;~jh2 29#gbiMierH&H":䷭$_)VM ~}Vme r>`5EVI"v#ґĠeL.0U<)y~St:D~cA"uiwQM79t'A$A‘/S j6n@$k2#Di: s]4G=FUluIAUwSz*M8\qҢc! ҵqºoi:loJeN=Tnu+l+Xؘ0ip+&FЇ Ƴ/Sw@;Zѫmޑ EtT|O6Ib\Gec;aR#yqWc۔Fv c\܊*tFZmoVloֶ{>zg5,qzU)";/wyݞS/AX}ȅ%U3?Z[",qe7cW,\,/kqJ;U .DX$,y1EW6@e!PۜVґqq Nӕ:IYdV>X7ayI-ず)n3Oք 7ة-TO+;yBd*ۃӜ~uȓG}B.x=}{қv;֬ L|TAm˅< @?ҼljoSّ|ȔKq:?*̶ 9:WWkɞ =u#$犫'qtɱ6$^߁#WJ&O7KaI<:/Jz׎ʽ2H&x*\_XQ# 0$K00zwF!VN i֠0X c"2r3}%&thK+]J-:gf!^TGӀO?x>ձ9yA|RܷM !O)C*ӎOl޺FWF4Fʑ 6vO)D..qAS\GLW סG;۷2?!GE*)ci,cIPUcbFv|:Lium!~RLVgQݟ֣pY* _z"lB G~?ƃlI6IJ:ڞέF wc+E&V""ut!-ܰ94Krʑ!<! ?9lAA[(X d> )biG+,8V?oqK$`9M\"x Bϱݽ#e&326: C1T#(-8ZQ0$x?򪬪*$T)\+ 3dF9+܊)8o,0I70ǿFO:ȌK) 1Cmܬ#iVA ! OZ$pcG9na8)rHL13Fʼn`APjd9o-0 >\e@ 2۲;z訓3W :xҁ </Έńa7xqޘ@ {$JPXV7GU?.H89(01БsW] v`2~rXqDZpu` 櫫o-rPd緯.|z*\c@!A4%rۑUP ߚ""71nH=OҹJ~"@IX0 D8(r@](?j@3ح$ԢV&ن jiZbYU` qyP"&2ۺX9cF {S.c[8Vc2$ q߷*\n9J,9l9B%N.7 *p9֠NWr8aY݄et3qFo;a|$ׁ}GҜnu|$uw^ #HdPG鎿Ҳe)\EEWa+>~{嶮ңfI+ ?#zUʃdxՉ [IO>z V%IFq`}A:c;C:MA>.Ld6_9c2(#Wcgt*Ì+BMW,q⭥BO-zg7hDЙ8ir2wOCIV5IزgiM8iAڄi鎸[}*$gr1TRP$V#>V5)Nܑ:+ip +r`I<`<63AUF@*ՐrO>ݫ~Ki!R,%nW54ݣXe/cPpFG'IV£+`9 UX e8 R!OǽI턻 3vcּhT^ŧN4W2Kw$O r#f*K@i<ztl]{{ hP8nF8=֎eF-pg0T8b 㧨dJCpb,C$>-lr\d}*'-00HGtV¡X.f*[q=R{UYKF G`15, KmCclQ$ y,9dwnvqw$B[{ʱʳ~9a ҥJE5]_朲$2"oֳ: : jIrې; ڡ˛@#89  ;ԁYH  h+ $tQjЕ!U],3M\AM>g~GjOzR)VNFԿ7bT2<9) (9F-)A$`@隧+QmZ0O2'jJ%|L*H =:5*S20*Aٜ*bbҔʲpP<xpz$em#o8&I]3rrBJ7J=Fz\bdz})ΙS.ppy#֚Um pNW 4;;3œt,l$>s²) ( "#ڇH#z2v9㟭Yp@(6"mG{FW.}3՘|r \A#׭<0;@R.֕eQ# oZÝ4cҁ1,HpNH5N;fY|Y:ZnRbC0 =x籜%ĸ] ܨI$jITBp[r 4{URBx$u{[Kya3A/\k+iaeK2W0?1<_qZnZc"#FvpTunikh]4k+&Fqw=1[[$B]8*Czq9,4яR8<{Vkvf \z㞕so3DP# ϯojI9SȍCH@ #ONݺW35g÷ЭkUY#eʂ$'팑5 rA*s8$>?AUWng9 \wzło cuӊE7{԰OB4Y%EW׭vG ܌ |g +CX&2r=?y:MU*Ҳf#/gv$\s#`X]nYU~qĊo^ <8=GA"<&\Iq^*ܫS ;fHСl;OZ8[{<_us]&@ Y>`+Ȏ7(@NNys]Ԫ\Sf$|(#vݧUVWiDi6=3Z.˾AAAF{KeEtMF[nZ3(a\ fB9qO~*HY@[2 s&q5 +Isޏ/bcׁV$i:9_ҫM "I `]uJDdȫ wsjw319;psR H0y8y AqG b#F?!J/捎v\w 0O=j&nIvӦrT).O 7V0sǹ$.\B3Fʆ1 7p~JF[JK)4e$&QU0{ӈO/rtj$!"T諟Ċdhq0!tlI"0U(H7^֩k`XKLdKaa 2|ޡXW|`mSvF |}}{X(H0=}X; ⬸-{sJZ4 '( r ðjhr02pNQ$eo-1):GXw/<ҒfLiۣĴcsF2x_*r={+Flp+R- !:֛2 [cf{F\r^H$/Qsǭ5Μoz!wF9\r TIQRD| n댟H-2@GάX諁J )`껲A)zM! n#RICe\uJN7a[ w`_qqIfAyyƒA8%PɜN}Z`ʖ~sgmW[=FX`2ߎ޾2 )8z` -*KrHޞ1]֢#yL}Ӟ1~'nq_ޢܞ\⣿AZܨō;@{d!]H=xM aI;;.F><_2TG=;tY%Md9 ;Qfu<`{9PɝP#hا*?G$Dcp=:VԒF]"@0R[ `ԟ_oj~3*Y{štB˂ ;W+(RJ#vDzR6t9>UҪ3%Fу.ߛ')_&B>s98Q3Hg ЮyRm2b~h0,<+#;AexBCA׷^j-dBp>qOi%I#خehp t8$$F]e`Tݐ=ciCYf@ATj=ʥpoI}!@By釺s25dq#E.FN[Ol6+Yq mm%~a0RJ D`O;HZ&>f >=F,T NxroGGzɥcA*Pdgwl/ H|J͐:~4~Urjn $XG6={B$-x<Tg3Re] P=XĊD)܀XcPg 2HQ批sN_ªR6Dp€SY7jS?l[zJvge#ya9W;zŕ$e<1 W?NJ@"19܀u'#uuڪ9$[;q 4l)\qNCzԉ$d{.ͨ`\+G<նTE+XnCo]I&<:`AdJU#;1lzuJF ӾCLeH,NQ1]f3c'5r7$$gym,K1ןL3 '@4`G~sm#FI܌p#JadF̧$AƘI2-- eY%Lg 3ե5QXpT{ztW +X$HPL(lcM -jWpv:{$1JCASM\­:~'?I\Ӝ(݌ȑo^՛8b ޤ9gN 6HvN %z{cjn,ySH=Oӎ} uq^Z"@ٴeW#1ZH@% :pG#Y\I\F@H$.]y<|r@C$uY2F*c*yhN-]H䓜3^OM0H_ysXf./i%$erzݾTgbdR_ԥ+H+WQcU \q10C(:N}xK8";\G8[*ZQ=2`c+T%w `^"ҹ+$q<\``׷y1q*2 @Wޮ "Sr.dGVx  20zz6q2Ea8Fciz̨^5sA&yn~F?7'Җ+ys Q2g*p~YϕFm%n=? Mq3K>X~C8 ^k̫ʣl81ntѰO,ms5+;c/ʃnTeX0 wc8) H9:ӽQT 9:;lVlXaF˜%l{A#5Y [6,S8i+ + 72 yUeU+*ۉCڠJgi6z4:4X>d4XvN c* ʜ8tNBK 0pH=84P,fu\ldF3fc3#5_3#?TcH_x3֠i81Isbo\c**wcv{ץCw(#r@D#v2 I=+eS0GBxM8ٿ.P`&G MޜxrU#1zҥU!`?*vTbrqOJ@'?Z¢4/ƹ_vNU6U'9Aj"NH NkJ\dV2H0;rI#zT.#HBA#:~f"]avjhmqQ/9}p*L$nw2퀣8Iv';tlMUg Ŏ8k.TٛV -|S H.H>޵]F+)%VH6 /=*#,L arpYqVI)˒;r;7i=FU[s; ]1iob'bÂrrj2er` n\ GVPf ! u.M*%s#4Ϝ}~# E'ae'֎QŏD}A˓aҭVCE[cGzt;o#{ `ڦQ"X]bLr*XۂyYb w2823sI$yŢihQX88N=RPT` Mm@_Қ܋69J@BT#aYpTd !M)b}Jyr7~w Р*2_g-3X S\zw4`x#2ڣCRIb=TАFõ, Oi4Y*ŔޤL,AՑѳ!UCPz`w_=uq<y#G<3}nČ 1r1JO"NUzNWGDcӀwJ86?Bj9 F7O,mJ$npsaSPL, l=1ۏַѦ>c´pCtPgܖ1׏^3ּ撥HXH]Ɵp^1RTpr֚Ew.gv< q" ɌcVڹFB]@;T}{q^Ӫos*'-\<:ln"#2.m+pNǃnp[;Ϩzs 2_0KOL륻@F.@8Q+bz+`9 >\DžZ ؈3x\33LE5%Yx1ߎO{GקM*q ,Q qۥtcRT-=mB c&ԉw2s5<:$nI9٤,FG`A)}FW$w.I$uVwY{!:B+7:z *2{oI}VW#EFFv^M48<5wsK3HN=U卌F29\8T.@`,ޣ,O9^S)XW4K# j!o20X az}ECoV0xINHXsCrXW;@Ri %GR]W<r1c+ 1'S("H pT~ <tJl~y^VESN p5!s*>! O`s$l}=)F# e<ZE_#͌{W;w[@:tVH ],[`R8\<A܊-]C FN:Bz\BJeUPHwN=,f2,I6'\nD œehv~4 !>j_Jk0Co'+'NDсu 6|ʢ/ 2GiBs2![UnU=GY]"%|1=zv^F~~xSdY#HX'Glƙp ֪; TT2; a·͂۸#~,R@љJTz;zlTS7.I8=fYH򫌜i$|_@UllO1P~dEN\0Ar=*)Ö_Ŵ|Je D,ZYRpg~D#6X¼nOW8>"5NC$Y _I:z:^53ݹ8U@H9튨Aˆ@ ?y GQ~; ' j"7$ 8dخ& F8\Ͻ8 @a\q42w {zy,ϜW8e%&du~|wAvUU1 ZZ<ؖT :}j# )$67p\^@&#"gteK0?]5jnFZl$ԑ!ٰ$,F6=2=O 4m3dE@vqG$raV٤ ucg3cyN "On)bSnaB|tRE|U'=3ǵC!M1cm`u_S]WG%1Ʈ"0$d ;s2Z#UHj>q#=,a|p!Aǭy)O1;$g$OJ2 eG?7ӏZ "QIQf n\M7Ft ?Cc\wpz;qG~ϸ7/y>:'ʑI=G*Z3I@n#l v0rp2zҪwyX=1m 6#9PcTd6(lq)cVha;>c֜dP W*H*Q[N!<$/hceMጎ=J)o x3ujOƥ. ۿoZ9jπy#>>F*FX9}JE#& 2rFjPXۮdٸ<}ESW,$g!['6Fp81QlO,UT`{:=`М $쇦UFay }M"4jCy+ ̔ 1F ,:8oف#9ۅ})++:x‚T#>ldWQl#\?ZShLU.HP{braU nCwF/Z&Vݼ@qjIČ$i׃X;=IM<7uW0yQnm08E%t?CX6X#bif '=;欼Q6kYOYɕVrDpg8=?v{HDDj?>82Vy!GY1g;q֥)i7zUe1[Klʾd=1Qæy!$P;d~u %&O=ɤX#j(bP;w]*ԁlq9?֕dH%m%s1u 2;n;= [3$EBy>2y$Ny (N[c=Oi=H^-6z^hR1xla 돠' qߓ%Ss) Fŏz *F҂# OnҜZGGw1㿭FZG`wDX {p?sS,`z5iJ-kc=U+O_8y#չR;$-#9k-"vd{1BdZ\*l' 1@qjdH̪AX}*LpۡOJD °9''=~XnQ$ѶqB(ffHܰSB빏vϭK٢tVHٹHXn*{leя=*%ؐ۴o^z)r ed# S9#"u+rv1e UMV!߽lde\Bv0:қ,$). YX6@\7J"l!-Ab "ɕ DۖC@x03= r6Phh,1 J7ROp'\I.1WZ d :D]VycͩVHCJ{eEPZAg:D zt;0}9@cN{ucusHʤ fqOUc!`.{ުN҅jC)fU/QO=qDe2ą67V< 2G3$d0`+ O4[۝,$I/)9⫴|2}V.9j4Nꉅḕ}¢_,d:1W92Ͼsֳ??z1%T:T;[Nr1[\ c)^HzAPѳ%[q'yS }RǵF,2$ 6ڎ -JcJ,1vn]ǧޯƪ WT%mH)9S" |7-ycPp?y, =@~yO$Ṭv~xw˓It|6/#֥R̭(1#inG1,M2p<*JuWyA<iD2qE8aGuw4 #pK(q=#y>KrҤ!Pneڟ0#XAcp99 -Bc 72)TD8b2HLRcy' lV^I\{?8rZD y>© NrOM0( Y'}3ڥ7[ w^Ҝ9 .8QsD8,ygN])PG9S!XLsOʝט@(ޭle)j[K'>g*ڽ?þI[ǰn ]Nӎ{W9=KX5_dz1_RC|4$WeoI*KL{hMi np0c׭u6Z `Q3Ӟ?5iW[Ow-QnNĜ8WiV݂dSrN+I5sK'41%JQ q,=A}O wm/qctzSwlf+G:Vљl`UV '#F.Pʰ ǧC<{?Ae۴g^O Ʒwsk,S&]7NO9#5VE[T}MCv>sPKҗKTS?Z5fIY,vĦe@8lW_skeH ^iK4bB  ;k Qw>քUK/t1̃Wőo\v0,#9nFےn Mn+9ne1.,ޟ1yV$VP>P`}:ױOGO9`jw [q0IeZUp'InA-c[3r QyF4j.]] pnk2ʖKٵ &Վ_h@sp?z`LN搅 1ʻrFk'Y;q$L9lduUmNVwN䕇\6Jj8rrpӒUV ~zOǽWW-)"~ lv,2r?<ϥN?|>+5^˫ e`rpz ^E.T6zH9Y@?tޫ ,y>eR6"ey9:T rn"!+ d{\ӒG\ 9qYb:9O4 AX9P = <ӊFngRpKEH*ɷl~X\Db(6WJAᾞʘo 0=WVqI1*W7ClbjϓRy'+ _z+SILv+#ʲ3Mݲ<%eH)+l8N-3w+3i@ +3zd`ɹ_ b=8V4JerӀ%HPy+ewd1櫳(cb3ы8TWP%_5a^zd.dm8ZȄF;k ';GӿHTBr.5 (|䓏ƣ?*W 6{~ԨI+ZUe <g=G.~pA Z!|>2B:Ӕ)I% }7܎˃+g=MHpN?xÅ9w# \U[l3,G rzIg2`})&C 5QФBtR۷$ }X lu  |pCI~5fP[HZNvc$Ge91fFɍ;HJBBUy jL(bJ*Db9=Xks5A$ݪA3Ld*:{rc zMXl$*.6vC]7F 9:Ы,2u]fYA΀qaޢFmp9翵\-# {n#cqJѓ7ǰKK8Q  ?4V6H9%m#8>m%b@7Ősg##r $B9_p9JdF 'ӛnޖ9Һp^$\pYcRrHnN?:ňR21ҐliJ!Ps==)n1^d\ 䫽?&PŇ9'A0ZMmNcV ɩ dĉPS& +̓ǹN,c>k/%wwgl'O!2l gseKse\JlFcۮ}ZcBH SrTWՃvW# >*ϕd2Q)+#RG;quf~$%O5r5O@-wH9ami˸wiY"Kc_#x{Ud@y=gM"0$m;+hk $(y#iCqVV@ֲ!11 (s}ֳLEx'F gqR?n4;Qa?| 8I@ڎʒ/ʼqPBwyGK;ըabPA-K$`sӞu1 dl&Q #1`tREYR Qֱ]S-eX優 &bGL:Բ'O>[Yw9 dgqNM8DߠVa4CJ#ulD'^9-ۭ^[LAs}k9N یy=mOQM\WмF<baDۡҤK¶NO?xzsAmhv(!գl#}x5mͽH`JcNwDYns);W`rFHF iɩZkʦ܅>'ZĈE,~csޮȐZC,"»#:V3lt2e*HbGxAH$ gjyA1X?و"2O $~ҵGv\ [ ;zzӤ\+n]H9>J͆;X< Ty;SLs&hЏjڢlsD0yYP SXi׷DT[U2Fz^4uPP#:V<-an ,q}N> 7w6n5=,5p_^#N3>Hףaw"C@0`zUדU 0񟨪ŭ7+x^z֎-n6JSeۮݸl㍓^x`ș+qѡ6u<;Qwirq"c-Ib{*9>[M%x=޴"8g]8Ǧiɹ92@? $`A\ztvd7Xl+C 8ȧ̮ќl9J&Kd*$l {VI"r9bX7e{~5̌I}\#PDҲY_<>TY$iꋅi)rR,pO͞zu9ʹx(Plzޛ +$v$|ߍ' % %sp7q3t6H<C+)0PIZ²"PВFvBAab19vnrpH \ԗ"5e78=jݡ؄y$?msHdcS{F1ڡpJ3}*@%'Րk*`><*e|}F?Pޥ^HB8$q3v{s}j2 x=9n agsn 54SynXb7ݞqy*X#ޥ}dW3JخLj msZEuc,c9'-1!>#]))ddZ5dfyѦByPצdlwBv֝/aa ;a:~g?QxͿJ3zTN49ۧe tA,+h['w [mü#' qbY%Fvҳ2Qm*XLt 8Qg? v~2of2lgkZ@{$ԗ2x@sؤe uy){FyUrm J;\Nv$JyT 1Qṿ?98 n JCzpE<Lm <Q|ޢq¥vF+j=h 9\O_z$O+c4/!ݸOLL#,UGB㗴1E9sHT4vJn#Kl-wg7${0/O5Ā`zz͈| vOpS _Lg*2C7E'ǥ)h RP@8+|Tgު8p!m\m<~ dBzV\&h@#ҡ 2s_)4;NH_z,fmYR2!"eqY`ݓjI$rA_Ա)6,{#/7ԶG5\;3ѵQey( #9:u`c]nΩJ(Ulx^i֗7 LuN:W!s jOd<;{W>9.{`\f0O[ y&"R`k꿂!D NO|x#b=#T? <10\jmUet 2ڍ⟇FayA38<#k<{^5` ;@85Oxn1X]} v87\? }Oy"yz Q?5 zXjwcjka' pq+׀?+ivذG+6iS4}⾣ 3 -t}{2jPldZ x@խvb3RF9^-D|>ބϼVyk5\=AԤnɂ:5|wXٴ4M*yP3d< %"I:j@8qFkO萫$ZX(${+mU6 q=+0Ve}ۭ. "1v|6V|M>dl!xnqx&RA㍣Ƿ־}̖ v5 JqNGzmgV5- A1^IZp8TZj߉f1.|yl6y) ?ڸe, +qqǮ*{U466;X+ys <ا6M˹1M Wgg!=!'y9<n#pX+0OsRZ<]*H;z$ @\T"$ 偞\orqv@ZID|u{7s$̻$Lj'c!c rA+2Bѕ/py?QOmBрC,NzlQ]: .!F188;/AE 9ؠ3~=jbgC¿2p^MCTju'8/x±xwҕjm-Wc,ssQ9Cԑe&6Pnjdӟ_I㸕rP?Psz 8q!\6N qR$+0PܒH?cUa,.XzuAH<DyGg&0) mȜXS2~3s522nqֲOz㾅Ye1,N!9ڡcY,s`ciR%k@J(=韭G(FFv'6g) ~v,8aȰæ:qޠ6ySB~BtoH+ic 6F5k6>)dHd ;rOOLR%/7'`yH+0aH*>Vq;sWVx|"AuFzsWZKA wyDRx=AVcnHؾF:=jxUX:)}'f9<ѲH.qۯ`ޭ ĵsKsКC+$XaVN0?E4r4#LecO8Dr,qf  pԛl͉f0?{~YSDH)WWb>PG|TȊۜ/L^vު,YIr?ZZhK{usvVIWiV =+=Ur%pژbJB"'=ңF>R#޴3 LlpXRvn=}ϵ #4)c="Qw)+8!d(czQN<fetʖ_l}:TU8ž` }*6E FjSlVٶYT: Wԇg5x?3!FY[(l zAR9puǥ;pL.s6R6bxoaidxª1Pr:g>1|FIyq2$XxV =p*R̝+SD~Xsߠǥ])lN݈:ş!sCPp[[zqҦ- fB~aW"I#N\jJ7i72bFTQ[ gRK(#8?]yں ڱ4d 2;LBANzq߽J1©+>PjA;^:z2OUվnH9{~,8[:H8qPF%﷯ҫDWܡQS;$Y+aVlO$4Gne7I JgVTVEFnV2,Pr\s}+&b`e#2Pp\`ʷ ]c2܂;c={TVhIkWm#!RP+ [V̀Mwl'W;wi%: mu^Yȷy%lc^3M ́I__ƕ2gWZZ4dFʸbO-W32d 853ڦ2:Xz[/]V\sJ'2F|T`)+3FN0AΘD'c~ubV /uⴔ3lH; ~_?hRJ@Q8Kzը"O(w>n;<*0nHsSE,lLu4r]rA$1S!a1ęUeGY@ N8Wc'oGO") @7}j&\6H yTU611J 9!wp3~xfPv(88Lrbo.eQ/ҼKYbFGz^r0O1N>\3>~~QX:J/R)<1sZ--{ٵp^,><񇇮R͑2\뻨b7dHX;s۞WfrEX>mWm$,n{澲4V)Hxў|f]5.Ǖ~Ǡw?aFec9ǽ|GXSsTF˩ݥEXf!74sZӭ ^=7AxW ^;gAl8ߟڽI򟔑^1v,kXyL {g>JkzRQ>',"O4IFS/|qOAھiԴ{X-FHgjG$qӚMrXH|[-#-'Hσ㸼?i `yc cZ\,|pY@ #w^{˙ q NrzbF0N.;}d#m+H՞{ H _I9$i,pztLR0$o=F{q\&][s쑓OO~gs,X䁙FS,2Q4@.y9RckWs1TG#l /QױUVd;0#ȫ C6!Jѻ*0sՋLXFrQk6)- d|icRqa_NzbȼぁcJJ0OƮ1lLQZH:/t=sV<([uuvWwcN9ˢNv9ţHDz,T|vE" yҜ!1bI+pq7Z)) gUx)&_(c o:c߭L[ ;\*; cϦkHMY 0`TwQ:,yTrĦ<ǻ8޺iR21mQӞ"eRW+6tqpW/Jj d>-jYPCQ(I=Ɛ,F[# "SFbۃd=P}+7vCde*̽x$=ȨYrNՑ ϥ4:89%KEIyd/,qt}~RBǹFs G 9?ϥT"؟f9rJl8'*g}$5*= XiTCn/qW\$a-bq"d+ǥ@|6sPPddn?퉘|˸?)ų92C,q(RwKtvځiO< E*n8\mcb)Sc*Z` (˸F~Tl+r1>;CT|/kH1arCTJ cѽU4j;rʣtEG3}k)XV0' $#} mૂyb`xUS&N8$c"$ Tq)~@Mݷ$B. =?%Dw<QzDq N}4%R#"Wc;b7A46;ʍR )vOɩq/ 0f$1@c(6:H]+6lFxij.AIs6ɘޚ(PȥNQZBƌ Z/Bj\ 99RXF/rG`ؠ,T{w9g!O5LаU_ޒxLhmA(}?Jw-@0AP#=ef>o@@OޱM,1qҞcBg(Ozb$K6=I;W,tgK."1pG_ZPۃ6mqEڸOZd9dgBȩO䙚0z2MfIFwޢ cx]9~B2:skٛ-JLJ;pH!ž?fc269$6Ġg<R}i "Rpð9Z&'-D|,;{=iq#EیYD]~Dp`J-VdlEr*猏OJ31TL.`6R DCte<vАHnʕG5r4i%(``t5PFbĄ܁#;;Ӓ݊JYC bB=LqHJxHAvdZBMmBzC#8_^ ,L#ViRpr~c{UF\JUa*fQC4ێxgtJd-g.#a`ƛ+e#mn@<SĎ2%GMt 2ź;zT܈X4`9G)]LoCbGnH^E F8E秱QFn+>{oC6R4pH~zw, q J`I?@fts$1;nqzJaMQ\1*}y#iGn0|dH"YuUv8eʌI4ѹb>N?}kD̓Ԝa09+23S2Dc#A/8ʌGQ;X)Sݿ>baH$ˀFא,E5c3Zsv R t+K; \k8qJ%c=꺀͌gI皑ɘb=|I$tQ; *4IǸ4ͽeg-1#sb6r n6FOzSFёrۙxk{ȂF"xEY x8\!Cu=q׽7l$@ `S~G=\brN1F۸\"< a9XOQPʯ 8+O\ EYx?iیm .~rdEU2]|1`R(m]q~c$0Wl`>a.llaߞq}*=88 gbW+ZEDLJ@;GՃ&,E >kF=Xxn# 97`;p05i @ڤkF*DIYr|d#i%X :e#wQֳtiK+d .c+n#sڟq &H*+/oώj~VhgL\+X|{U) ZWc`wԑRU*N=U#ۜvΪs>,[Hʒj;vfd  ajPxϵ"ȮYNb0;1ٗ0AnrH: ,wn3Ul֔(¨$A"h)ثCM#2{/=zTP$<` iG%~`H nOF"el<ĄYV*k*FL|OCw{2+??C)X7<pv"NI`[8#!#Fř[ 'i夥i]Fx}*de]'+cÒ=C])InHI"!8l 'J\0VMx*9>&Yzoi0TAndJ,v#87kw]CƮHXt:s_ GxP3Zܖ=08=2VP |SVa M-|N.'DQYIǧJ}br$PYr/=@^)Ly mVo'8dpyv5F%=s~`eg8ƛ<3%w7n9z7W?xnc !Tʲ J|J+$!0A;kܻ:_i7+A$Ȭ3Sv!?snZ. ɅHn8sGBPJi`\4'j+m#'ܠ'?RI!3f(KCǪ4cȯ.9 sV6q)"G}m=KX«nǀ?^Rd!_1y*voU 5,uM)URzn4!,v>[](+ecf]>.&'֪,v{)w#کH7I?_zt1U`:52qI}>P%c 20A4%uVDl9}`ya ya3ؑUPF3ז$w3`N:adc=Ms d.OJE!db7JdyS-Ȓ ~'bDI0 })͍qVϭDUD!XNOץ5&og-{3+Ar}g47)ȿ.?^^H-8aq+*me[.P™ݞ%ɓJv'әwz+x͡1 0vKU>`{☨QPű{N*Fȥ9F+)ʊb챀|Sdw\77>Y$BB!UJbB=!a98np;ƢRbO8RW#GHi$]BǀϒquH&>f`>P=l3G+!2AWT{sg,qRSd`}ME<`LI3ּy$; tq֦;3>00NO $z{'U\e BO?:Әs6@, A= ]1?ON>#wNs'ҞyOE#=hb9nѯFLg+B0=ꑢJ>)1 UX pQ9dBfiewG?^:T2WOܱ͝'\J6 6!xz4f.%O{~5Z&2F8UيS|׮=@gȏp #Ʃ(}W;}:sZE\˞(Az?jVm%( h*"<{@+^dݲD&Tm3:eYE SG,{s֢)Tʸc 1F:44:8Xgr8's.wqimBwp2.y=:U+eH?؀>*mdcrjՊܝ@'>i'F7u;Oɜ}*` x0HR PW-ԚG0Y T?@;tQtՉx z0K|D|ܞZr?3ך~b]h=2}R+Mam'a3H ddҝp(¦pO~+H 'N wƹwҺoGpj&bѪ*S0 ~_rMNPp܏G0*7a p=1lMŻ,=O@J[$S\ti;pp{B丐"SQdJE߶I4br g1AHbv=jƛDI\1TAn$۽^S4Z oAA 񦳬p#o'1Pv.9RH@Vsֲh$NY~ G֥?-s@[&lOwdqVI4IHzwיXIZ{d6_ʞo2 OLzʒ>=(1Ęāg\ן&܍+*C0#\<}!nSK YsxsRΙ&Be'#ǭnkέ ʓ)ll~XnϿN26@lѯČ'g'sF@vx^񧑸2IpF=t*FHpI#BTOEooHR7E b@ F +7^y° zt<; Հz2Zk4@Y`q*9_1C| ֤hEv|7= Z3p(9늑34$\hx$M̓ژ2;篵(A *6'␁3㐽 J3~`$qGCNhv""@ /C=DI!=F¥ ,2aU 6*vFA =RXrD$ acbW܀=*D ]߭ c?5f2>Cꄞ܏ƴX1ivNN3*lW`ry"265-wwEHB<J0ҭ[u ̃`*!`8!B0e\JM1]+-mT5KKhOL0Jج!Y #oL8\ZpX 8Iܹ?QU0+;Ե$ߵ̇6 `P ddelU(<2@C*% :ڝ40AA<CLO1b*vO$3(O2ǃZӔ!Sw1mNsS\$F x 98=E; bc.ln@1J'2q?.,v)u?qԎdIzf0w(vnڜDJr#wN7Il!UGSW-nDYrZ|HުvOW |&Nzs@nqSe; ב!]ܩOH T&㞧^˗`C$՚vC!4(9{ A Fs$eAϯXG;dudݝy#Ws)$-5g8·myDYFcQYFʫ b2vz]%Bs+(U%S´HeP\9\g@һԕV BQp89 ᝭q#>%_jm'K̍l `5Z]Jx%SI.BҮQcN<x%,(ñV98=:?|m,[-HXd󞽳_KxKUYhV#\ hߦx+sٞ~5X.]6˒vZոDc |M9m HӼkNB8c+ܬ"Hf`y~auԭ#lcp5rI=/ݺɾ;ҼL=v>k{F5腗rc>K9 tkhזfNZr}ǧ\1jX=&]b$>r >,ܞQ&=*4/|J$NN:uћqvaVʣ5#Ԫq4մtefSh\J6#zlr2Ey} .dhNNA'$Bև.͹,3ۑʾO(kϥʸ.Uj'94Kidn_pmI4ɹg#<>%gy b)8S2Isz"d|;Uۗe$|z߱ϽeRd鼓!j2oXčKbAOsF<#4jHbOvZ֌rݏ-˅c=*op1 n8=k".~~Uݒp5H1]+! W$#C6 ƇLp7cqҥexޡ k%f0<u `PFXA.I`p sh8;4=8̓ӐU IWj>>oA֫ۉ" 1+)-FoU0D29oLT[%@2 Ϧ8Vm4%$ו F[`C,`݃oZ*M?ά y?QiX|8)F"r4YCGpDnU?%Ҁ P˓cb@mLHݼΧNcmOzdu*k9ٱ%Pz8KF6m9ZQ|ÃV=3@yC(#4Ep v̀ DI;NviVXqAMG 2k- b7G8 To4htAV\'m4F<$̈w _lI2WsjPL>IPw q$lO ~PvIj$!rGZE-nNrG-٩r$p#JܻhHTD9#iH0:2, JW(;]GqҔܻA1=+W&v!Y"GG~(3>8pO4p_xRtvڃX"o̤<Bw:LKˆRV׾?¤3L ;mL9hbwlm#'c=j FLrx+7$O[v SƗRȧtUsx,W1&s9NY8d->gUo& THQ꤅w# r`2p T?ȧ͖,v`69)R_6"H˄ =EFrqԟjn:$R"\UI$t+5A`gr{@̂@ꉜsH8MFͷq)[AԐ eNsy]op~t{B|H zzuZBYvs] 7دnn\c-#07|~\x}Uwcr0S&/$aJp{)],4DVDᶖVh6R){Sx/B<3)Xb:blRqMYy8[oJ H&9uqH!{o7eαO,Ht1zq߭F"\ P##O2(f8!Yy~0$q'~ԐȭPp%rq |r$ pyҪjO3+*udd1r{ J\mWf6 )Vs <1~9Yi[|1Ni܈K mr|U4Cw.۴X+c`%=Қ.<ˇ q98\]'pe!s I"B^H N>liܦre%ݤۦ*rĹ 3ҕ?U]>1~E c)54HnyGH7q׷Pҹ_hb W#;})7ñ_8)Rmg,͖s2I6C;Ȳ1$ ."[-ЌJ2Hy "\3h3݌y+ء[r3&Ny>iƠ"1$DTxCDNdct gV&i%I 3sSF1246z;~4۫]`@ЛS1%vj>fWY'WhFgO֧]j-2DnvdV7-St\Aحy沜 6m->)N2eF>o5s<`@a:znfmcܞҧ{[m1 p0z tցr2Ms$챜{q.Hb&pta]4Y$؀(5؁WaO`z7,̼8ϱ^=!1mPY{u?vpŽAқ)~d}==,g=d,: $[=g?<`%ԆH{B0=9|elu cbݣAc!WTy2?0iď+yGGsm Htl7.Fy;AqRR}3TPm`F5iQ%ّ&Ƽnde;ۯj#<;3snZӔҢ+bFqPm&Nz{qR4j R ;b,ٞO"( +FzHp-tIRz9Kцm<62݁&[x)Or-O/ٸfWٟCjkF[ alϵtCQqXrr£S,sJ̀IQ:qeb\?@qJ=kg $O"$6AN)fF):R&"Mo`}`HƪJ)J#rKEۍ*Rd)c'ߥ"ؠg ?֯9jNHY660@*{sR'$7%2:b,"AwWXЯ<1YRdcc l$pJp3Ԁ&P,P ;aufIUbBڟ)@+: D^o_aY\Vvd `A2?NG^[mDu$gǨ9,%U\Dە+ֽZzť] e`tOQ\ޔuIHM琨hBө_zl#(r>ҼBfmDT!-j,>,K(/4$mEx{N~o-)4{*)}ᅵC Qr@9X)dX$2Ebǎ?=tPtfv;8S4 NU&f{5 ^Bv2לsج`qD Q׿z$yNbzT.dK"]zsްTrjrӄe-JY*TpQO''$QKw[G|{*RO8h;xs׊5+5̒L5VRߧ^sUX^׹pJN+꠶}v[uLT|˜A_~f9Cn p0AioWZ#!ݽsۭyoWӚZw0W=ZZ[>(¸+>+xMl"2Iv?օiw$w2'xá^{P4AO^8=z85Z -.Xnw})9)RvC3KkC&tr<+t>Mk;"ߟ׏nkfMQwf x~I*ӧ=΅lDEI\g< ~BPԷ?1 ʮ#ltr C,l7s<˯B8șG!=ϧlWK4o\¹u<};=+/n OƾK>5t9!g 94oW`:|}~qjIDEldw b 3sۜ5t d]sqHUR @-[#zثl9IGC˨UWiyx-9u t?HWd w K}S$ }=*Q"ɍov)\Gԫ]nUV24,M\Rc"o˥$A7fRۗl< i?2|?OT,J21Rc|; HNDȫҤF7g \9$`+) umJO)ЫgJb 7l:`O֥>*ŸddQ- "$ (Ld $S*FXs+3l 2}{4 4,@5_aggA'M(pA j( 'q&" y9ۻL&ʠ`F3ߧnjYB*G~aWr" ɑמk[Č̿3 DA;*Y˜Mf0A,02+g&Wx^7ԇ\zg)F<;@ sXlFc  %}IlXd ;AJ"?'֩&&k~xP0k)p3 {g4ag9M`DN6)~Nsw3a0Z_|LX۲*y#n8==I&[ 涁G=?Mò;Ao-2#/RCG뜌 D戄,\+(9^ ~<8 +Tpv[ dfb biHb t7qӿӝ9<ۑsFA 2'rn>@p GzV# $ 3ӽTi2Tn]y$2n=73Pͽ!Q9z擴EI Qg;F|02XGnN衩A${RE@HO9# 0HNO;.Vt?6m=TE!AuϿ֫h9֡奒4-d.gpbNN}ʊ}6?TeMDUVMQă=F1B"!#o=~`$HY|=x;yp+.dfFIQU$Dgw*^czRf#fL\1a; c:vVfTn%c-OlsT&81f#jA֕ѱv`>Z3.p XO+gg;xtxܣnV6,{`C(OrVy2?֫IQ+? M(ڸbFoZFcrи&2gǧ!|d}=zR4tp31iI\BK20iʞi]- 0Yo) c $oιHvߕ瞞jsI6 rB0SϿUTf$;q(+?i[P3\uNPF6⻈'c;l/`8'Գr1QÝﴅ?61I6;zM!?Ѱ*1.#a q+B Us,YIY A@aGH v G/JVB1%ަw3bcNWvwa'jaV6 S\{S IO\޷RHm Ր]Ǹ3sTVx,̣s,Pcޣ򲥑}+xILʬN~&@CF%~^ښ[syg\8(bҠnT;zr*spqQb*9#U1_42rN0jTҽJEZ, fǡj!͏7SڣBfV<~5d1X2ZH(ݙܲ ێsOGU:,0ǭD`8dLW::"2DF 1gFd)2I=y]ɷ(6˱H*YT18[F,b8 ц;VѶ33뚦9 ~Zw1VH gwR֢esq>UIfIf %(=?9&v|гg/fQ"$dNz9&PFۦsG1d y>:ՉLFrpEF uddzM%be};wOZnWެG(O^HDW]D YBjP+9"#\ݏZGwc#BU2Ɏp8?4C9=sFY嗦zԒmc!6PE261#&ݸ#"\` qX±1ֹpKQ|Xwrw`b81Dtf2+'HX~bug3UII؂ w'G;f,.\bo"A> vң>BPlpIT`z6,n$EBA%`_H e`o¤F n#*ۃ'֡T -9 ZǘcJA4FF]W9 A=?Ƭ: !|vG#jE#OLXE d>mEw,"8zX2b~9g{~7I#W5zlMiD/2&wsG^nHʤONǐ~;^-al^h'Qs_a}(-ؖm؞qnu(\5AuYlgHFH⾺ia{Kgwp7 E7 > +?^-&͆4HY>fzi ,nzE Y6@ RñZ_k8Ӕi}.Ym}MGb@G9b5$V+t=}{漒Rh<]i89;z.$RhnS,=? ¿ Uonvc4rG6|n܀}Tfc:lOnO67Ѓ@ڊlj0'w2I0bW >LqW wql%aU d9kix#:`w$q=b[Kq$7}Zg(%Yءqv^rUg\g+d(|`* v(Rp6sϾkya=E}.mܻ <3X;̤Fֺwg!bAqֳdO*Dܣ$(FWt*YٞmJwW2Mo~ک P:gZӦCeyOКfMۤA'{WIEe@$JF*Db&?-SlQ )$,j>t~!\jL%S]#i{8>,[n:uG Ob$FcjbvJGrpNj"qw=H# @ul<{bjc2(g?֥ ֡9?0pXf(Cvh^,0p?Ə'9b\.rD)g]T+ބ |S%h2X.Fs+=xu eVyH65` ;/Σ*+oºXͲ2G"MrfE`~)G/#'FslLRH.'y%FO &'9FȦ5C,H$RI`h,:`UFz^DQI~yxI1߀&"F$C =qƪY%D$)JMNXʜS@rXԓ¥RLA3Ȭf#VEv!N$fTÅ=ttќ`{1$3 w-ʂrn,# <tb@sۏ֕drǧb(9-Lcde+p;PS B ~ڛ#F\p?ϥ&2`q NeS|LNֈ c 1zҰeA?皸'2=`;vUH"5͌iF @,eK QC*|ĸp9#(E%IT?J\1۔ ӽ8*@F8VR\ã X9?dH\ &%dU`Yp@Ȧ9U bRjƑcU0ˑҤ+܂F23B*2()/JTg:VV+@e@vt5;4{4a29e<92Fܣ޽:ͤ9&(7 F62^zMѪ:qQ8Pw8jdHOpqޟ]6YNMe5N:LxՆbbݹsE rzۉft2ife .,veAcO`*`#2a8o{隕*| ڙ0 !ӕr28V[ 9cHU2pQB5&a[y?:e`w֚ fS!r0riܮbA2o\8#ޚ4mܫ jwq@D ϞUF)亢d+rFzRB4+cln=RxX|B3ԓj5xe$8cյ($K$e*#V\pif6=03{V3!#4NI,?O !R7U$;w*d)35$؀N[=)'쁂A 6˩+~SU^Yw88;8Ҽrni%/. I'Hq~M˰gjf+Ʋ3T;eA"qHV6E`p]RU@Gr}<0<ӏzo@,p/,A$ҟCΠJD6JQT `TfVw SMXE@]T$\o֤ !F =1z,Au{v3@#+yY=v_pC&ꡘN(sAz7Ɔ%Hic<|ChKQ#ld6OW"ze<]*e7#`ic! \÷cҢNؼqItQb"[{ԑܻDCrϏ\r:x$DxkBKrmɷha?,SЛdlXɀ'$>6w,+$T$#9\ vEDd2¬Yض9=FJy;*̓A:ێFG#RK|,x8L22T>cFAE/a#ִ[  }o#c8 qޮĆ"r 3ϯz~P+TgN 7 fI@c =Zh́=G9#eK2k&A+ćIñ]{)ڠs5md2^ C>c~#|[t9nJk*Cnj`0:\ ݴz=Qؿ;{G8*y$GX:FRBx00S)\)*9x)A`Ϩ?ZIDR ǟEE)2_r` 6q"P*T" YVOZF d`sVFcsӊqմtB^(*!y p᜖9Z)ak88 {ɲĒ!B譒˜zt C-OLS;j*`STGHOPFe$aE #s{ !;Hln#/\Amı,@vіҖ02#װQᏇ",k\HcGr2]V3/mCz]zc|4?gkVs i p8SWڿĭ2-*.F q/:ÚʭI&f/rͧM+Nr @!3Zm Tc:5Wu=?*[>27[AừKdIBc\fYV^2amRk]ž^/-edL/ >;כN.O7F>髳uQ44ȬZ 9?Ҥk9%e  ,z)$dSk#wn<z|:랸 jȇ4kAxs~Ү4qpEdC=m‘ŋP]=}"\֦JcRYT?\A}F0-mB:`WXNcy`p}^^Gu!rqs3WfTڍC W[j"OF77l*bHgۯ"AWk2YvbYA'N}3+w {]@FKʻmcξwΉłU03O6k;Sx~qt^h] H6?7Oxf]"a@8tztT(&A,OC_fxw&wנWS$s8U'%2e`7:> #G{*,Z[XPWi֍k-h'auf/XH"`;A y#גzH]7F'GX5)Yjw+0b0q=z~zJk1Y|is##^~^qh$c]]<\yх9ίLj`ΒFQ?#q:I "kk z?N;WRy#3kL0IUZ-R@%PA8fwYQ 9?=k*l|;Zg5tq<>m}zWy& t>gs^(SY4s;dg#NP¶ zeA»K&JyAF=FG^\OBKfza)h N#U O4/( 0X|/r7S霁ӟjܟ%oe.9_#pT%9vwS%.LU) _ >7|M6/IcϥF\'^HbPNwgʕYNzЬX"2xkŒH@I ]}?*,[D\АĜcW9s!mdw@~V-#lW'YO#m&3pa'ߥ/Sb,yY8_)ڏi 4M Km{@=0{Q{9 &|cr(Z@ #.=kO웗L*|HOI,RR69VwPcv >9V<瞝k$=;LD}zl#A"@Ӯ}+$Tp LI2n̂2qJx[.4ȫtQ1WOy$`$c;{;1@r3MGvca{ZM"2[IFsiLy$i]K:\m֣# /Z`;w1ܿă>˹s JwG9`C09 {i&o ͐7pG1p%nGH1r;us5Ar$00sLLesbʮ wJq @xFG3ҡȾB0R+>Rzԩ#P7yjK |ѫ9\TR:z[1+M~eV9PBa8b6@K `$g8.La"N->S03ׯZյbJV@ϔBF;m務!~I"Al^e%!2WBO>FVB6O.:M!9K1uH)BzzWzN3sSS6Z"pӥ5I. pxxVe~_'5btdͱU̬ 3:Hȍ LSr9V%T$ޔ%1,t㞽'2)l{օz )8O̠>yga v}1B{ '=i@$n_=)AqF#yey/0@QN6N}i˹ktq̲nF%FMC)\M4 d1ys2M3pOѰqWZ 䲕1ǧאI ϧ4/hzKc(7* ;+FMWЯ(N~r:OxOPǴJ ~Ĺ6xքL:eH8ݟ\tQW'2;*wy2e8#,r .Hn~ЇP06ߚ$ }:UꌻOG=9?֮ArSM2V2r;vfZ~x@fUaí'Eu4< AE=7u&j/_,vt~P7gߊҰ1lvaOvLT:f~!¬Ec ;$?ƛ؞VKm =|o" q2ݟCO q9F̀vp_ץYN66C{-a O>bSh'l:a:\^4+u#w%{?Zk#yIlG# /玴I*>bn蕯D= € NNp1'סm|RWLl h>Q#0sc8T(-%BFv\l:zrxԥhxg] _+zǿZҷgɐ0I/g:?'؜ =0vinJ˴gdjgG^=J԰ayE+ˋj2c߃]pꟌ,h@b$;,.e,c-{WMQ%uɷO=T=Wgyr^ڼ̿4*/q9g)( Hv[YMA#*??-65+w>w0rA[75mEG08 c}GjyEa?+yLc3zx2E8ݞ [>F%J%f<1V2)V4/ rŇ9}@Q%b`iyLs?:_f@oy`uAZa"x#D*qDZӷ+~FIR;Ix[Y8ӮslqޮGODA\g9<_ԝowM%4 *E`=_¶ ikk7 e8)T?O~0D`uiٺ`Vo_ kM.H`1q=⿩|[el_/TEF|ʴmam'Xh;>hB&|7#+adXd@gG~_^5F{ph W?1N89X|`G̼^GZG|D s518*[u=It*| ȮdI)wQ6F*DS$v=À]d9?j^ËgW-_^,˕;fDĝ;+ _skSm;[VdU*A\y=k9;Ũ^.0VPXpSrX|xa+"Hs2s8# s4ׅw4&O_E4ڕb1) 0~+`^SyhCAv+m6L~<Zpz$pv޹hTVf븻MmEؠ*&rz1^7VVm.6oLӎ’zȠ.1ӏz_-a'#^9~!Z;lL#[OZ#f Cw ",~jGPymAK2~qx@yt A2w`UHq{ W;d:m?UcpoLj +jpGOoj~^obc3I=cU9ٞ1]<o\!Kxϛ=sO~";8#v'(ʆ8#3:⾥ ^<62)h}o`qb pHm`*:Ob{e襰:S1m*>c]OXя܊f/ˏGX 30 ?8UdøgrSpm1!qƾdrjw3ǵ7GbGuKB |S;Vi?>EGgY!Gg. 6;wg9_CWKosjȍe c*yx׊p#Xڏw>tgGUաP0n8~J?u8Zn1QϿК,eTz!=UWgVw N=ƒ0u()VO hbԌ?MY? >F71 Xm|68?ƐwfC.l)~xpD֚x@R;K_#so8Pqw3>M!Y;sj:y|0I#`Q@cޠwܶ鄳ng3ozc2} 펕2)=O"Gfx_J%X20zuH| 4gO0Ymv8zl䳑T d:ld#=8prGK4.AROaG q]>x $4*[PX׵{[,vbXi=.d<3]V%x/5_p P:tq>Q c؞qyt{CnLΘ-%3Zps˷cRA- 7lӹOjALJBO+nxs^$ 2evҤ_a1Oϟˏ´"Iv] N|b#vGoP:U@|>cL{Fc$3^vF[q瓚8;lMz~*{`61M6 [=}i-Bت0 }N@ֻͮD3,Ug-Ly#rs=Ĥq¶l(3z%lQx:~U*: rxNC0N~]Ϧ[NA>kȼg+2u @@ds++6{9^py[el62xM;W?>0<"Z`!O1|!Wk&8208WjbVѢޝ&k4+=cJVYOq="(l3d|Ο0SE1D8`[8Cypbx99"|u>ݿ'\ cǧNq.d[_t:᱆q1)E'H"'_jD̅X2(#5-;y}nge3O'O*J'/=}1zAS0aBnrHR_; /S#W& 9c5i)1F]U8Ϩ ,3 HR^yj31q8}>r9sp?_5j-;`>I&CAc"#Emw" ʩv8>Ji݊WaГB1d#i 1%^7Th ˮҚ0VML#wM#~~5MIwcw<K*pX#4,}U6>aU#"ܒ1+Drܥ6ӕ8`91`#*!w8]GHD!Zb ,OvYd{SpK(sH花 e^=Xȷ,r6;>Ae`vu!zuoufdD4 ?΢Ʊ6Fbw*_T-,r6G,AҞbIZB";zTfgy]JAH<~56SA Za=ha)2o G8`( N71R+O5e _g, 5rO8wƐ +g1`)ʑϓ r$򍜦s,$o6TƧmb"Q=HGhd֧L™6snŢ :1Ӟ,B[sޛ(˹0Hj۲%6cD2@BZIAFu(Z"$lʞުʤPR:Z">cUq`N}y?J]>mW$P.UX`w,`Ъ1.8*Kg4d,p6z,m6h sU+1 UK8F'`<؎|FxlTMs5bʛd2ч#79O}OjM4l-R1Ka9!Ooھ5,|Ui&sm\;c9W:z~_ՏM2-?M0o+MtK{tʒÂg3r3Vd1? qsrBtW1r*7G>,m"FiF[=0:sֿI3|aI8'f'~HUžyIE Thw|@s_k9ں['4 Ԧڠ|0??L܍#ѲrXiw)5ceĻ`Kqb4fB sUȀC蠟J<,tU{JAhQvV @8Ծ[@:~+{lmÃ9>ҏ < *L֊VWFȱ6Oҡ1F@N>nGNUe +n bTaF;b\ f2Ïݨ;H>M(v8ShIwÌғRSʖ#=j$XWqZ)68x*Gj7.oۀC'F9G7/zRbЄ4`drHf~]RrG/ΧtyϧRy͹I'S5@G!s'Mb p!/#x >?){p01.Q1IP8>OՁerP 3o֟##Qu+fF k?.X`?Z4'&T|!??ƜdR9+r>+G(b $m9'FUJ[* K>ws=PHe8놫1Ƒl^7܂"G-JȮb^tqp{TpBV" UǕn"3 2Y}=}Ry뇓q$nC4+Z,8dR['N-Œ'*V|K|ʀ$<݂sRFё$XpO$$cF=LBl o33n<E$eX }{hX~Zqf.L͵SpPʍF*\sHmq8$QdO1N>S#isX 2mheQz~ cThq}*Iy |p?cv.%h3n} H͗R>uBcx y8Mh\U*,+Uڧk7N#-'֞oFbNvhHyD8'qvx( 6Jʪ w8;-f({UXF7@Al ? 8 A,@F;R6ƴQ-;+Uq3AyĶ"!A@#9>Ֆv6V Sv #>l>gcͩ7!!FU@?^T,$hiqĠd/Jb1gf1[9ZD,qvqT21d@Rd  <}j(BUIUs*"Mq;w GD6:2b0$J`ó*N~"m'zCO{o sr8'>Pbe;H/d%d,sꯁ?hCj߆lWXQ<8#q=~m m!Oqc5d@8>qK&|+|a>o$DbnPpH^E0#h13yiom-ƪ],q_߀^%_ۛ=J8Gp#fVH`?JG<Տ0S}?U )F۳>]FXnU$PK TS=}FJnٕr?ސ(dЊx$N7e,pw1 ZoYIfrzlCd>ԌXIs8aPi :WJ@]T 㜇 jdf|Am:zmPA!r qR>`j\rw>es릑NIgn $ !Fm$$W$nRgUCz=(`圮M '<ۅ;HzT B]0^>lFTPbd})#lFI Ac{zR78S$5SHQd;7 i*sG*0yRp=>y G #(~.֘9׏OJ{&˞Ɯ+)?Ĺ9=).Fv' TF7WLk'ښ2(zWaj2ꑅgS6m p%ę;`-rOqQǵd"3 u*w(=B,LAal̀y#c5J6Bb,nFI`ۭ9GGc ˮC{# P~%LlT0br iQrINV5V&sQsZD(bϯzGAE$@?iBِ!$|w\қ UXaȩU-'-yjڱ2Bɶ8Ws8e-U2BH;{UI$Dm Hpsɡ#Hf'c9rG@Icw ,>lZ%S,OBƜfiV3wgf*Zp7,'ڕV2`NrtH!wg-ӑ[5`s\$oj9dRHF;r)셙YB#WK?0RHR1ۺXc=OH74=Ɓ|*Nܜ#;_5|&0\Vc@P6q\l [XVާv3UKIF:se(hlqNO+85mcC SrA zVJ)#0 :VIvE#ڔhܖ8 #*fs'ކq[{ ϥ^'ab#hw.3gJH+.͡J<+^*F>lp35P0~ɫsR؎0$2T򠑜 О)2Ky!)"F==WV#[p7| f& "RUXw|Ͽr| W1K)cĕ$@ Wp𫃳-+=ʧcpy?Zpj8> 1bI~mֵrV<%! R`~4L3% u519==P 3T8Q梅UsJyC0dV$|'V@WRGp(*yut>M,YfD`H篯35$sH?_z~|3c<|޹åtF-uч(%TeF0}ϧ!Q{`Rc9ӵYA8^?2Y_1c$9,?"ʜӑMUDh#,3߿S  QGBH~Աeo،C6Ćs:zT)IϦX})701>X)$㈪*(W7)Z=V<1{KHF>eP픲E {5H#*m-@v(y,HgQz=jI  cnÁOf{'N-ڵ$„N>bxr=5mWrT.N9U%Fh;|wiVV{l'>NZ\X/r&ȩUĉ @_(NJlyu.xC zSر\H` + ]r?|TrYLa'p$zwc?,3'|fhlr>` 3}3C$ $є8b@(ZYDOL6ӻIY]dV z+ݴSh2WA 3dFoҚeǨ+ӷ0(% ~P"F,:!@v5YH8A*ALU>|N)`[v@8+=JFHz ౌ"bP,敁0eY6%xQH|,[N*0 <`OjJCql9?L-d`\pC)lHw=\ɂM)>5@Z$=k44y[|#sq}j$e&䍮PƘͫ e7>!ܡsH>gn2DC$fE c35#2lqz3Ҕv >uMa+څ #8Œ<ը]ŕ%늭$qX8!vkHADl$'>uV!`K ۱O!!g p0λA,Ms<Gr=&hp1N3suV5ˡE)>;@d#c8*X9:=UVFx=kuTq?W>|AImeO v$28RR@Vb7=ǯ^~?<uv˺2pJ?*ziw\GhZM\S !@,xdgy*\i|6d;)SOL4$;:uU p$FBK7_]6Ge, (3}o$Lc9H^zOM*,&ӓYWbIerIy9gE9#nOҍ y̻aG*6HG+Z=_TmcE8:{)r2ݜM&wM9X0 l }x9fP{$稤[r;ssXR=sj f)3u- pI[jxRw$Jko!ڪ,mtWgjX*hlΐ(T8]=0f&d#,jp>38ܬPu R#p}OS!"6b0U%k=ݥ *l,K}<{Ht sjU,^}Y*'Q9rcv0dn|1?¦WxV VRx_L`8ҰrTJ2dۯJՇ)3`E:$ gO3O*]"@Fŝd{E!^#\8=eW q9X c&x2q"^EXILBp'֤, FbqP#=T"*QDp:g&8m#<!HPf7.cD>UB֊W1lV۷*S7QH~Xdp'$*]@?{ = *Ja#ہęNNSϭ"*c?%d[wӽH%s:)*y*FWo,/j8Qu\dVZv 3tidWVJ3̊~Lk˳a+ =2 nszPQԖ5qeY@_V($rs |epXmo?+_l 6Fp^Y7^l|)' H ;5CIUEi}ETW 䑟ZMt"ˌ-o4@V*) 9pæwc9]"Pԑ>0wO_jr XN1ݐrH)$r]$c+]Bmsן]+~KTK77#6?I"E2Md?-+FOiM,p۰yk#6_p W'RGq0O4cqx=\  a."%㞞x(<,]dYwʮrO*y  ꌑXbҼn`rQl"w(ƒSNTqt=8yHYI1(#pzrʙdF $jI(<0A95(ey?zDgiSn@Af[؛&\"U3eQ9{k"VmʈB*HjhΣC &%Oa.##Sz3) `3t;yX\dcyӗU 9 12O+Mhp$b2p|i$*oIvOj'*X$ŏ*$ey'#(bJ"EcT`HK9銘MF[nj"^XwrV|\Y)fLf2$e%!24n޾c;mP@*l~+V9N֧ @1pI늊`0 9H ʕlӃ#mUQ jgqgu!YFArxsM#zI A#b08@+\ @N{T\ $3J:>T)%pݞ 3:0cp$Ϊ͐GXs1w2# җQf=*4 Bo">aޭ9o$ Jp.d IE$֙-ujtn`BD .0#abP۴8$AޢJw>l2OYUcC5bFT<Lj3#gW?js2OMY ՠ͕ѰI Қ~Ycf!pw7@ǯ&Hd]KبLQ(ݑϮj$$>U862A9na"y=+8 Qwm qBɲ+I qKXWA#PR;\= NsqC?:o,G /ӊHɪNJXsO8♹ѯRY<4gjIq3ilEɟlbdOP6v a͏JʩpfS ?Jʲ! TJm;۶J21@9*Mܑh+2DeDV@I9 XȻf)RśaHz4s2v,F@rA?YYyb wvibȁYÁֺ)ŲYrc|/JdJ#3fNNzq*Įee!լc{6?QӸZJ #3hA#S QFm޹[Yu5`7C 떾NQۣcՏwMk`DĸqZ`ϔ"'$gW~Ѻn+Җrzu\`|c.C~s܀9ZH^7ub `S})6./ o0=n|Dǿ#޹I e׮qb!<z}O5M$#4 VvBx+1Fs c} _;ץ9 R^y+nuýLrv9kQR8Q \S,bz\ ?t(>Ig؅Z =૭G N'hI#HEqyi"3 Tt57? WF$+OI=zc#Hu/s^S b`Y++89J6~bB 0݃J.(6)LFIo O Z10%.s(ǡy(  ;؎=B/طKHs2%{q[Q%/21Oi8lXi}?Ɵ6w z((;u[/S<-?Txy#p  99cڻ+O[>Ӭ듲ee`zʱe{w~.8種J7nv ;QJϴZ]1 BYHvǯ>º+/୴WAP\6u8澄Gi:;I7z5?]FDqx@\>:~~4i5 F]9$ м>\99?sv#oU Fq>f]e~|->z'ubWː' pTI-fQhA z pY/7v \:*)J" qG)>yJ<3G_-nzd֖-) ǑqӚ 5ZEqPG+V@eu*˟F2Jo2z4K'N~_ڔҧb82gǟLcG4mNe|k= f kQ}ŴXo(#sװo-V;r"N+VыV>oA,CG  >&3m Q v'-+2£TuAz nY6W@MvAmZK|aYI`pq $mp8;鞿AVnL+'={Vww!؁uINx? 8GZCd8Qr tub2;F}Z)n wQ~u8vhHО 9 e'gOS늆2\IRrDRW Hx\s׿4g31!s904in,G@`LŚt{֕>bZ9p(rFm\Pmm –hYB8HDIT>Ю@~R=)9%iut'#~u``0)-L-"DgILVF7{ۭd!bwgmڠQO\Ʋ4n 0| bXar;RZa')ٛ2dqHݛ})#"䝧g$eAd F3֝"LV#?*$3L9}4Z5vzI5j/8U棑B6B.0~nxRL[\Z]wǷl*@DmHsHm.n?J2h#FH ,OUzc2dP/? q!?3 zt"0rH!Hu-rd+gZ~3:@9@UFfA ;]2nFӒե6[t# ֥ˏ#Udln#OXUN^9cV$W4byA,JSI5F#h(PG%9>0!9\r sҢ2X9$x@'&c;v,9WWŴrA1)7 99UN _?G9y-F?-Ƽ;{V㮎2v(_d&H<*$k)hg *Xp]pO# RyN .w&xFN}x ;;~QI,Yw˸M󕍂"=\ia Wk,y'ksL R# 8ux2TDhD~kod`v.bW\H9R1(wdr;qQf -z)򥲩yv4Ӹ\2r|(z@2d+9Ql{vcqcvQ5XL [9Xd҂&o''9~n=OEE,~?.(z\Q>c bFVӁ"yV%"R=*uCSӯJ/Q1>Ʊl"63(`s9iq$ZGIqGqPO~z\O,G `d'<rs @; j?JH0cv=qJ7'~s<53$EO'q#>Ҷ4IE@cDG1l݌(x͖9/nG!Ǖ-YxOjm,cLX?D, nVPv<ԛǖkHG8?*P$vB )Y&LU WQי;>jʰ Xѵ)V\a( Fe,Ą#KBȨ7 @FA6̇2` >?SN>eB0:w9䊮ġDorۇo|4 c ĥ`1&pid+#ߌ+mP%eFj"ɟW/p^ &HiT@?O>'SbUʇ1}GOʸ+߉_/𽏖73ɩF99<C~U]Пۇ?Dr#ME ]'qs\gct<P]0pˎ3_29$iJ1"ߥq'kTޕp AJdun3nY dʎ#2~\[SgV܎?3w.-+iu#"G 뚸x ,6 mxEc =;*z~t铵; ϩP0 |șOo9_ERmw}Gjs6rQ|Ns1ܥgPqZͳd(:=E yN}+|_ _-YZ%LV++EaY*>͓͡'' qOj;O$,*d^z Ti" qȾAlMHx쭼Tf'SҠ'V!rJ'9qt l2@1rj֯IaRK6ǽ~2A65߉7k[G1+ Z:'MqrpJZ)mFLjt`XKc<~5yᅜfkxf)Υ9'_0=q$WsֲqEa}}F!ar˞2I#S5N%3m #8Zlv,kgE?6nA8zoLY5\cAJm?O; }RuBoo?6ǩת7c˰|2Xs\u7D!x.ڮ< 9+f,*\2ru3+bO6wWdvϮ1֞q1YmV)}$:k>́)$ z޾]YM1rHOsΨO~ زLfqtqtֿ>Y]|7f"Q㑓kCH89h?sN~]JB>rvԲ&`IۜtjчJ}j*=PxYd9$  NjT)"qƠnʼ P*D2F>S3 ݞA!{v_nC_1Kt*HQ$>`9 {Qj-N;z}qLPLLgiLUxs ֓*%B݁c8'Jɹܮ$ d =Dc*i'>?ήO΁ݒs{UBNʈ%Ual 6OȮ*| ^H=94y@hINfbc c(suuuL|=Cކc&wqӚadCJʿ/>nY$(Xp|A#$ -:@$$9C"$F'QиR62$$gɐтm\G<ޏ:N|Np}+LY~?Qqd%(#' jV!ų~75Y7L#Ãz¿Oe?"Ot]^x,bhKkNSTl W=ρߴ:hZ^2r T Vۧ_j(Ug"0σ zul3 J qW|QGz|5c所{H/.IbJ2,LFDZ&2LֿOxjÞ-/0\ᕇ ϥvFWBQ2c,+:v`B+Ɯ S 7=iܫXc¢U0_/`Td/qׯK"Flz.b}jDHrIT~ZȠUǦ.mʨڿ5]$wc5uUDNQLHO4!W>ENI[ (T|C7s֍Iwr3BuofZӛB9Gnl 3JZEg*$Ń%fԎ6 61Rc&.7UPR!h k,c3Δ|2G\ǵYbE!?y dTi"Uy?Ҧ|nIҫ 싙 '$Nѓ#I7TiK Oi8=ǽM8TĊ_mƅ$bXH%x'cڕw d8#9*AV}:]ǦM,3.eXdc53\Fm21|㞃>С#fxJ;]B#pϯlB 0Cn&mY>i@gzOZ3[up-P1QB+SzVD'snqFO@.YSnҬ] ?#5 ˍXŻX5$` j0YG898;H#)圫GRE|(ݝ+U;;pČ`խbS)' 8}>[ 1:B~drFF:Z%qV>zܽ4ƾV2׎I yDJJƼׇnA$s2y_OY Ь"ׅ#SCy 1 Y@S{>\_gBG.hWx$>\bK9U'!y1 r O9z~TN/ dsSU<ȣ$۝sR" T}ߏNfid^H 2e(\ 8p:t 3œ6rA;Al"dPCQ/0q=N$DRfېvnrL <~q|kb͹؞TW)8Qϩ=WQz\hF3ӝǟϟ֋1+ l<V|nCHoAx^wFP;t |7wI9UGwO& 76G`5YM($f2#v3%W`lO\0?फ़y6X|4]X J6sWH#Le +yڴ$G{ȭ&U {riYU͜p6Nsࡿd7^c J$hOʹ]C k-,sݲt8ȋ[FBN$})_0©8<ߵ?QZư2sCc?홮b5wM%`pF"N4g+M@P*@8V7bN.$r@~^Z|Emm 7]H`p?~k#.R93d ~K= 7nƇ\zwڹbKxj;R%?i{k"$uU/ G_ݜw]=$~ Ҙ43{ӂ~jM,]|MlH]U NNqrzs=϶O i󢷕 ~0k]/ j>9'8K{Ygݲr WagݽcQyX4r>զ髏w~Un[ҹmC J;Q˓1 ָ / aXu/:©'ZDA n y=uO?+ [ź+xgwU-f>] {cᘠF &YG?.ҳ?lmV2+}ϰx_Y T^R IA[q0FEBQL,x|Ep|O 1Y*@9*{T){V"["/j915<:hm.9qҴa#YF]RLVcsֿl"jBU۟b3~`1sY~:<~(uOfѽ!}}׮kq!f"p}rܟV%F Cg#מ1GڊbujݯGbIH?$[(=y'Q -&Su? *|gxӵ},ila'Vp̄J#r`('ֿoؐr2]u HyQ|hb2=}~P -=ԓQ0DlZ0hٛu7ԩ2@Xu$yO/L P%N;H<ڽ#y3+U%ȈppIN%|ToEU_e2+^I kxl,RqwĶCFx# ,P-UV}gfǹ \ !7(*N$W#E"TfT1;葂Z?bz?jvUj.рD%ch }j96b;H=t,rbB/LGBr܃ӄGD70=A})BL߁qPmE 9yx7 e4ڬ @ :51xՔ=9(t }۫[6Əvozy5Fp=G:SnXϡrF:sNwzX<זdi<`G?z9tBkm3k{wϔJ\$; #kIj"Go+[c_zW}kOSihP#3ȏgڑ_ݖ d=:qntxD_G _M7Q@U!>ߎ 89Suh|֤IVY.QQKrN}k<[߉7~/.u 1͒Î xh(c; W)/ I3uFeq,:8>|enk os?j2G%7!*9r<#Zn!\sR H&" 9;z~I&UAz‡cAp~ڇgN)KUi'8 2dV 7?~=sڦ9em hӐ1}zY+`rxҥ`/$Ӷ}k)\c9_ %bG=3bBk*?RjMȎ~pp:WBd>P2=I}^=~wDTaY Y!w7l#an;SDe0 Uthg=ȪdO:0;HjXx^6j(^ L6vA [4P6A #ӹ/ KsPW;tQ"H>6~:{vD 9NGzv[mZH60t`@r@@(HA @ 9Rw0F-SUY"KcM7qʱYf}hQ8FjVb©v*GM۵|(q$?ˣ B*m'8 Plڬ˒?Mȹ}:7dl鉲%]HRQ?ެeR9R@Y!$?zͅDw\ȑ; 4? =ysH4!bq!=9KH=?lNnes،)w7 99I1x#ʸ;29TCb eĊ=O;BvqӜ R;1|nF(V"$60G=)C$_wqh̕lQpOƗt)&\#a3^ Z 00W\"`gىZfpua >GNXcD2Hr0?NڔenG< 6~^jhf0V%D)43K'#nK*1lnT!fVO2MA޴-N \+';e})L>\`w?ނd@.c5bqn'x=}Cr99NE@_ƟU ?_OjINMenzcdCU'Ԅʙ D G >bZ$2A HHp9@LF2? a۞޵7&jfJi͜nA;hFx06If[P`SKpPUgbB8ALH.TJw{9tE+WbT`8i /9#?I+о:j47WyRccSRE,7"?߭FYXbOo^(SV0'qŽ1iBNcUF qRHwe*ǹ ]4UGGz Rc@Nr=Aϭ9j e fwaQRȑJJo;F`>!EN#l3ewASPnvEԡYl \\~7FV0pyztS?#ڙ,y8,7ڙ^sV&* IwJw9(e=a$`}sQ(fx^NOֺPTzsڥ`Lv|RȑB(Lg ,SR88*!p1ӮMcʊ: $V圢 *9h|!3? "}28=G\cF?Iw<{c5Xcqr <=n^d\+CӞz6<'˷{ːFrLH&GyYLx= ]O q7ʃsҰi~Vvg 5Ē@2y$lz bMkeAFic(8c;33P)~';񅦹GnZSU?Dq5O)'HS Bd5'o#9~QG; T׵CyCsö~⁁q_zbi|aկ^UBtm:Bgb̤tqIٟ{0Fv~Ir;&ՕPx<)o^k Q㗸 ;#wF$99PBv1}c V]9_5nYYYjdHY-ᖉ 2o-p7<2uPg>׬-<3 C,{rָ{y<'c|:ZrsWB_ݛ=Y=Hߊ~O_B+g=ƤM?d?j}NY#%>+ݝۙcc%"Rg :c-GmMH[x)lA8[0*N@?*jJV?~&g6?n@{$K2Sjp~񤏗Wc0߭e2> SYq'+=a ~ ך.l۶׺j # =뎵iN_:P3!if<#y gJg<ড়~S[I/sJH!2IڣZ@͈rv{KFhᆙîSJ#ux?V΁ne:4: ^Y5®x ys.fy]R3)IRH{& 2c, L]Ox~)u } yB*!Fn9J-I.6  SmU+6 f7gQ؂"=AE5;fTYA2zޜ aqryO)6J=FLR1 (8ǰoNipCy rB{ffD̅J9'ߦjerbPȪBn9%YvK1'ĠI=)i]Ԧܫv<5[' % M!?(>%v ܗ $jU$c F*f* d2sޣhd(i@] 3Mk^sn c=*|bYKdoXT$cJdeV]Ӟ3#+6M_L[afǗ|:=x+Eh8Oq޴Tؔ&,璢AJG`,H-qCҫX;8nxF5=o^ {*:a{ J-@v=2|1>sPZ }^_/1* N+E/ O[A:ZݙCMis*LN^tI-voy?Jlg̜>A0IJr|q\v)1 x\xuPX 1Qk1?xA骨9h3th(4avH;JG5$2秷_“f,|18TK, GCY\)V5*$e{!]ɒoAD%.Iw}$jȇ;rOa?JY C'$~UI8Y\pqSNi>ڸm&-DF7!S޷ FUm;eDS%33dAGYhgq%c*1ۓQ_wIOGf^ޡkg b@ǒ+_ׁSoѾ166-{G:Uq8V .Wj}\҈3m ˌ"u<׊gJcy~uijO^*A[Xys}M|N7:zİ),Dm$wiO2?_Y\XOU/5;]:kR#&4\xk_6K[t']\rG OyM~)[F8`m~ܬzmއ\{Z"KiU@ʓ#k̭h/7Dž-|yq ZAr Sӿ5=t;RXf)XpT;g`y ۉ/_T^MԳywN}I=*B9S0]ٴTu'׏J ~/X|E,{æ萛 f2:F ڽ_0o,|Ow!-àu0TFO^?g?Oi[=p 6X1lc׵-G~~bZlڶ4-枳!s e/âwKm|Y,80񙡐^&`wY~_,g⾓# 'KK[/:t[,+9=>T@/ot oK& zu.jz FMՔ(nM=c@3_x|LӼo/=N6.!s(W|%@=W*/g$ <Z碓dk?O x^ԓaQi#j?|) mChi ppGa_p:Ρi_t-I53N{KO œ +Չ_4xg^&uSG֬d!. rpT2窞h]hT[G'l`1Vmj :`]1qH=+ً4|/fi.i"n\pA8 vX$o|\m8M?O[/q0WS2{pzJᖅx׆o hw)>PlV*?~?zi߄Sct+[{v3y`X> \WyiwxXx慰9oWU9]Mo[<'=q=?doN_c FF@&EXܐXi%`I69OagƟg&pkb2I5_;r?l߃g9Sh=m`*>r 8=+XeGVIbWGC99`,Aҿvco|EMN  y|7H\?,M$0FZl,hnv 'Uܔ[6FCw)?9b0#?8LFcTGQ\\M"v \F9;F$䍸PF܀3zo1@x݀'=+$[ؔfhY|]pqP "G#`'hl{TL.w wSLUN{09OGarF:q nzJ XA `=*FD#x"ǭ:6q3H; 54X V=xۯv.cR* 3w9qҕ#U㐀 u_BeFRJӞ晿teHFZb07ϯ14ۤ0ϖ͌q\sO>spa|a_H+|I{ ' *e_Bv'NWd!B4s`}=+'? jY)@/#{q\WN|NO~>5a-aq%.h+o0|~9ӱʐs_jn 6ڒ3cLǜ Q_ s:Og%+#SU(ӕi<Ĺ-nfǯ^)ilH03C'X`~Ij I=5-vQCNPt^t)cӞS yMR"7H~SͨKGRa?oK[21#WA[π~'je46$dzqO_֓b{5/7^?枲kvq6#9$.q]+&Y=TI'2"& ?\2KMFkVC!Xq1Y2i9p>|u 1z蕑pIh $~U9de@:B4 00ʐJ)m[*:h͒S8bpA4+s'l<&\}eFc|zvQDm I*aYp9; A 5q!J̿:sۃ#"R0ol1+)^G)"v d*FʪKNU_cc8PHǯT$Yw0n<eUP?.z_39LSkFr?ʇt1,OP>S֓*{ ~uWlL@_5) #Oզbѣʫa?DGxyMH5egOf=l2+h{ x) BwI6ǭ@Ѐ0-qVJ9H|73}k\j,/8gn@#?sGPvRz♵՜c܏Wj 2۝tQ֩ls+YH pO=)K+ 9ON# yL1"G!\WpʯL0{w1隉#a_NQEU @8϶)J(LAu*%f(ޗc; =?Lvڒl޳@ b݇#A jlc|!:/'w{rKj9 z' z֬®Ld~yk+#{fɪZpd8_z$y%Avz5g t} U ŚN{ǹdc _G2'!LvP ě(*ۯ+]Yw¿ ZKk-Gu4wvۏ>gںݥ{D[˖ {=?(͍6nF"Nrqӭr?Vw?R\*8(29?x#u`cH5JබķHqbV8ϭ{~ *'*V[o)pӃ=. ϯ+94{ >\䎄󪥕\GPp83ޝ,Gɻ8όd,1;aF;,//۽Qi9Br'kIzW녑2檊2#V<;wROMmB2[)(8B$~K)R\1^s9lSռUa&2@$Oq??Jj~VI'8298BY_id3&mTJ1]*s!X&X~z{TqoTOZ[h?™c6Vc]Em%%V g~x/J\$iYl=3X8j+ܐ08<3׽.3 fw/8|UKn=r84JM9b@jBƉ vEI74d=ן$E^%썌=j2BƪdJAQ ̢6R͎:sfЋl@FyR=9pErl$h9ۚL^D ۓY)ܖ@3p'0c>)ih\P1ZzɵS@hT/9U(Xn޹cs WcqJӬMp@N}Z_,Xo$/cQRuXgߜ0=5ĭK¾0=kOp0tTOSFkj3rҵMF=zk}BSG*8*U=AQֿk<'a]SI\kH4Rp$=6߿F_dPZ 4m&GK*xڹz-kZH#-vFdƥ@ #iңo2yIgJzyWd 9S Gy:OsWÞ~ x3hڤZDŽtƸc*@bHJGJt{F+:uIgA 8s'FQ&_*wl#0n%%FR@1zHHY9#bz1!003ϯJ4Hx 9s *G^)_A~ΐpDg*%t:tyZtQJfYw( OO8 =c2a^Cz?4(Oa+YZIzv PD7z;q&Zsb70x!ɯWm{_ r*%˹H?Z3J8eQczv@۰4rk9-JH)2~ftǶiCrn,08韥D90azl Pd?$A f[Цٜs\֍̖&Rd*Xr'5-(9oLZH@u>сx@4/z6jvwSY >H}|H HFR&<}F9Cgn^#K$ uQG~ushzƭxOִˋ-J%'0G]V?*c鞕4xsg GxO5\.%ģ;ٓ?u֢Si)%T p S/VBqA?\%ϘejZ^}:~nn/m(4P܁ٯ/WonZB֚UvKr-X>%xKjZZi2 b($ _PO 娶h2Cr~g#=󍢮M3~5|v׺ӧ{ U`Ag\_zզX#]Bp&T0}S/w1CƣyšEye$~'1#q_xG<7{Tk]N+HQ޿S`#Y⏄:%kH^]-lȣ<$qbXɘn.'W0 FAk> Ek<+`S?S'l!u~(~>~>'ʵKsb[R4`x=ǻje|E6y8 w%G mK\z1Q|.eQkzTvΚUMRpbˏ&j[ n@qϑbr9;xZu3LB?gIVÞ9[Kt=r iu#t9 ;@8ICXRgNoѬzF0* }86!5X6xVXB_xFDWZޏ||kLw(d-NJoSw_/ϲiT%2P˜0<>A:xzE; Bm#K,ϛ8<&o%aݭ-O j4R)G$uj6-smyk2*A݌uʾYxKUWޟPʦ+e#.1TsZ0nNJ~>:4.q(ԣU8ӆs_m]Rd/9濕̗ĶnJa\ 7iC)BRsX),/Azvş's|!s^kJT!iooav)R0~~+5O=Kxy @BDr 85_~x㕯| z:dC1;H!O O|WI~"I˽_MM_W3Za,Q008|y4l+Fb~=kJ69esZÿ_\I򽼈`8:{W=t׳^)a!#R0sۦz~?e_ ) ,m;[w},2h.9N'IS~"iKp󪃾.9,A).k+F<5m?ړZ[ZCH \|I*~^9/0oӼJaJ8.cb 29x/xzn$.xu6pG=qGݼ`^g4g3;4W?Z_c񗇥uSf|}9eI"!q \PG_̷|mkXHѵg(f9xOŞ=xQMSUq)$2ּv7,BHe$?vOޫmШ]dgw= yo7)ܟz~*`\7\αƬ *3?GPQPo$~iϘobF;g=!.<݁,<,t9jqA dzzf;L#q''?F<җ<+0={ qu0ǹT=߷XEe h ~te rCښ1C1h 8$5q|Ҵ֒ؒ=_q VF9'S,95￵g'|.m1hTԃ~'x?:/6ZՌGw3éNx931/&g3j$Ybͫ:c@+|S=R -pׯn+ԣ>sp"!8Lge20qrCjUH:ǽjCN7IX b+*deKrv:Y6@7r6VׯqDcr 2Jp>qw ܖYTāx\pNi~vPwRj M` < =8 ȑI,6cxc,[-ǵF~mR2ri Tubp}*=.c-ITi⫐Ѻx$g>>frpHSTܭ$j8@ ܸZȌ'h8Wj/_9B7qʬĒl ?9=骿pXcJjgo RN_P*C D&]7t3f);FQĝppy>G29MIq뚌(p "}޺"W)=Dwyd Þ JǷa<dd߂ItҕBK0'?_c ^0U#؊d$1irnlF9(0۷Cr4Lt#% 6oOH&\0 Ȁc+{Tȱpq'>D! .U*Պĥ@ROD3܀ .Ʌ a5.b8e oәUy 0hbLda^r?JHE{@R ^(av;[$jUl vOΫ% zq%Cw:Un6l b ~mJ@aeO2K#$69=xʩ* Kn{~ahi6378bF**Rr297dB9+fHljM*ϵ@~3YA{c)L( Eܬ HJ_ئl7ayCU *6n'5hf_r?TdPd-xCuR>K<ӯ4JI#U |@9i7=F0w/ xVS/.GXZs|Oy$-Ϧ0;@P<&1ib#P8ML#,Ndi##.=У7JW$Jf;.;Vх1wPFR*Wp)HwID/kp2p?*5%\3n`?i2\q)^ymk?ʫEFy3~(g% H=8zl4-g]'gEl8>1~2<>eTHvgvWE 2bu$?buF o1>I&aO5J㬓>g~ے{TJ" $2:i`~LcTF<hFAWMkh~~\Q mv{Nӱg\c^Q;^5K<p 3|ip.Ӷp+ cmq|~K?m]zS.Pbu~sZ*穹>l@ۓҡI! nWalܽ+܏|䰼hR'3ۊ@fka2Ğ׼)i^ϩ^ڦ5XPٯxDŸ71ie:UZFv$F$G'fbweCmrd9>qXÖNzMQ!Vg<'OV~riV⿸c,)1 %تtT5x;=_P 72Asd2Jl).!Ie:WeBl[j5oxTtۖ[M"g@d 1uG' %mk#w% ͌/$;WGw;:$yL,Ǿ}s^F^'#0/93\U#IOǟ/F@Q$4sLA \y/)4y02:ʣQsZgIRCjŪxo3<cDT(8vIɯY-g[\2ݼW([%eF( QEҏ_:'^/ vVʫN9.goW 6nvҶFP<Ŀbo,k*_ G5Z8-XčvG*]|Koݷ;u.Z<&nH,Om͡/W^}jCtM D~Hŏ'__ |/~vRFB|pI '=s~GmK'PpʡXH8$wqTՉ?O35<%m&ZN8 '  ;W+qhڬK5G#2B29ΏㆷㅅѮVUvi-ݞ0ZD?z ~? >'궞3S^ ]3NX:](M*epFqK/^ݕmoG{k5{JHOݯh)* %岞ӡ} s(l#x'Y&K[p"ߒGێXm!jVi"%zPG 3Fƿm?k hX-SHӭ:8Hm5#2;|2ç#fFv.Nr}W //kb J IWbasd1qV?3|>2ysz>xtf[ ^ͥ$1 ~ "YI5F0;!RH<zOE<F6[4 mr#ctlٰOMB\D3y'$<{XC4(zs4U Kry65q.NP=]<qxQ3AZY2#Oo7c }$RcġI "AAW q FGxڿ$}-dF+eeÏPWYmPޠg_?w:ހ-߈vm۵/ϾQvQ_񝖳\麌Z[i n uOG?`uMWB|C>veCߡ"0c?#:|Ma{V He`q## y"9=`LsWJQn߈~7_jCz=hZ&&YK ˸[ž h?#n]f'Eijpf~c`b'$w䗄|3xh:lt#\_'5~qxK:ժZk.5(NdӁXbj j?oMмKެk{mta7!_¾jg;qm{-<;b ziEY;'i!E-zὰk |s+/K|'kzlhI:ҵUI ֥۟%\.63uYUE~7a_gB{L"$r ؟za#[xcS>4rJ^Rc,`n,8?0zx:K>p\|2r #<i)1wcAmUtEDO ls>T !k珂?ebnfv[h6R,0G=ʌg)j|M7Q4Tm,3vь # s_~? KR\@2HL$Ԧ{}: 9jQîGצ&ot˛+9k{[FS؊m1'uͬ,gcF:y&m Ki-)mQr[q$ǧo+Cdk~԰VQn]6[9nw~pП A7voNbrn ed=+sx>/ԵؼEy^]{4hsZ%cg&smud'\o";!Dh#8ӧ=G_׃5M;#7k5[nlH~{_4F!GEu| kዹ`K_Jȿ6݁׏}Agkgk٬R#nU)%aƙkKs˫M?vR\m*_I3` ?J^*džux5![fg`ksڍ3!i#$c]Ƌ\^v˱DR< H/Xn.ߏ>&xp\iүq<@/H#'=QءQ#nXQo F8-`(TG=SApvc' s8"g19vPJ61RO1qOc?VG3=O։#`veNT`~ 6: ޓX:uF;K,x#sۃW~=>x 4ɇ. :u\GOiJM؉CS izZ0yon*k]ces<֦ b8oAT 9Σ?ҹ'rTN'ľmlG4oy&0FN Eizv_ h)b\gN0y=-63NBbOrOV E:3Cci y"P@9[pbߥRVaG W#;TP>WuGVmgS6yNқ6lC_žB' >&lGtgcnқ$I⋳1?Bp@o3&[h(d $c?L@=pqODlLA !(:nϯLTNʒr9?һH4xL:,m,HAm a/jK x##= Uf: &T=z'K(l9 uym&U˨9Q<8'ĖZvjlg#k}B֜۝MJ'Osz$2e0 9py9$"\jQ0v]ɷO?1?&X P8jum`ݴ!#nP}~@ϲ|C`OJϹ xvc-gׯ~1TK(Xǽ`9==M͔KzZAU>W7L>l q]7#ʇyצxonQc>çq^7|J7h*IZ"/@B|,ĮOJĦ81*ZHVD IR:3S@^R o)NTqұ Gam 9:fV,;), ǵI 1>=N5w씅 ʧz`sY%79'(HWxGP:Uj.Jm}OO5׻H rI 78%S:iI(m)(9r3 ̤ o;1e!{ȸ7.Ae/OgF160APOjnPUwF\5$vBێ z85&I-BqJ(W>/Fy`q֜-2=`vjl11ivVC0A?ZY߂TF[LFHxeP8Ԍeh1Nђ'Ң&ErK9aZTVA8'k%&&1u" M] 획JqO^=9JQqߏsY]&HȅpC<(AHFY8}hݵĐdeˀ3jE;y ԍ'敇H'sT+,6qH?f>v1)bc{g aO6]@#9)(Ӛ'hTg T[,18 aS&sz/[$WfQR LbpxAȾ]8,b z{jdHgךF`KG'ji;R37X"_+$3K8#? &d[8`2 jz@$/FNXJ}}860 pz "ˆ-w95b0GL$_u^,ҰVI}sgUKK-{;5s>ZM9\rW'snMMBhNT+,B "l/ė7H|)U 2>s\,6(fGV=lWub\~:bO1I1*vk$Xwݗn}]5d؜}'L3y|%xcZa6OixkB>eY 0 q_y#N;x+/XN֣}a iLdnx6?!?`k>*N=}f!XG"]8'lqH/|Cw=2 kخ&5Sv@cN mxspKihsul=Q6''񏊇Q)) 0UWBˆh-rbdc޿O-C vwG9b lc[y"ΡH(ڬpsoֿx`mCM3V̼D =Jri|av~ZGu'v/jv0 >A&H>~r9', bFq?*>.|>&~ wxn C=m$rHقGjm<[SujvݵOK)-%<_]ZtA- [T>v9tYk}hvLdqkW9-k nbG_CX?s0?JXZn|U\Ϫj~36Q|6,ͷ,y܃Siʻ67X ̱KN>T~YtR=Y )6 X|vi~jPXivssr3ֽ:2d Y.ʌߧWvX_#dV>[3G3L@8 _X_qg}+ /!|:FncYA $r,IzUl-q{@A $'7Tg"_KXõv bqFI#:W˟ `/s|X.([G?kT/wp6F[O@k_L h@xY1mZEN$:u[qNqӟzU,f {gDS{V(~~cl[ʤ3cj7>cܭ[Hc&5 2ǐ|pN=OҔQWGl*2Gjߐճ^JQ䃂:s϶DL(~s=`1w,ue8${ن2+}}LcqGhvf9Q2ƿ9GsqOڙ#w!~c C HU ~Vhmo>Gx–Zݬ m+'wҾ"':=/֍K/4حoGخH%F3;Q $*3!YHqhJ_fiGsPueP@'EPrM}hB!H9sNRdXeOduV G3:=I9=Jب|)=Ƴo-VhXҴPE][,sVn7 "0!x?#"bX<}3ZS|wk] ;[@TmH1\b΢5 cVv2FQ# zcv4ܴ ]y̮KwϏ'?K$dB0ߟۊX3HJ 1K"mcc?JRb9VX;~|l#f\htuU7 L`6C)r2݀KQTdF-ĥn~^ꦖhHp%A,zu튎tWFQ .v i"FVvp]9RVK>r\{;P.9a۽)GD%VێjeK˻8 j ;#{.\g<)'mFd)\yUiI*2mjn^r ,q7J3qǭ,`FrV ub519^?ΧGd!ry>HU *O*'L4`c}8֒<˹qz*d!Yp?ƥy@Y$ʕ7 s*y9H1KZyn,_=#@YInJ *9Q~3ަBƍ<ǥDE^R@}%FX}N+:RI8bF ىClsiIsGH'=B=-S墱21c=DA`n?:ܰS:G00',/8ڥ$7CF#A//-z^VU|Nσhi<+3H^`sc=Xq@^>5,y׶}IC0@:8~ [ji}i$@@GVʎEJ5iX,eLd@ɐH򸔞YJ ƾǟHFn-6@}xpmنBR x0=s*!AdN]n!؎H$}*T4c'K,pǏsi' <,,r`px֡/3hgo=ӱE;mQ>X=}sZLۛXowB-3Q_ I#'P]~~ #.m oh泍C`Z~5 skMo_,eay׭FM|i&b$`fQ효$rx^Пvm.未r pAZ$ H7'*|̣^3䝛pUgvyҷuQ.:xNIc&BX 8aozDķƆr(8{R`e*T @;R.y>3ĩg(B^zUٍ`Яa 8a—j+^OQ(ϔbNsLY rUOˎJ]JB(îsnJ[ @ Fʂm|oJjR;nXgG511'=8=ާ0s/,$0x *#c Ϯ?<>D6e?ݪuf00S@8IZ,HCc[KGHpI{wY4#m6 }9֧fn"to/,>e9LCn;'?iD (229<<*#&2ĸ! znZqUoe@ ON:qޑT(dVMO ,Eܑ.:zJ#3UHI#9SfłF(݀wVYJxWlXVOП^p,ārFzUE&81fOcZ!\Iŏ+u<ߏl֎6BܖZ! 77rO`+VŮ럙>PA_ƲUbXXBn*q[O "f1,>{W,۸r7aa%]DZi:ۮ/<`-$=lY#3=p>WW y"P6fӟҪ׉KM=HVZa ; g~~Z1!sK.R1{dd> -kS*-`p#?W[ydZ2i 6T9<t[>"G{oņ2?tL"6ܲ?)P{Ӆ9TWc2yr$Ha':ztF~ULt2V>{cVwk #<2?\u9ӧQ_R3/¿FUͻGO~JEo79N1ϧӚ* ]Mf_]4i}پCĽt=kyܩDTOlg+?gE`߅7!^Eo [ަ<Hu5 y\t?e)5#HDgɹNӯ[ʬ0W; y$yf)' GdP2}Ӛ%#T51ʩSb#84F'./oö2HWj8#[Q<5uj$Vv=#נ濝+^x>5j0g*xј.#+l=cRW<}4@eF9;zg5m~zU]?W_8@E~8k&*4feU}~~__aWz/PXKPm][sJČX޴t".?q'T zP?Զz^fT`F dPO_隄'mv psQ_Fȟ 5?m3[i5ڭr).6k*XE[Xq s$~r~d@[_>Ҵk pc#cټ=@'PW/;+W4_Q޽ckiWxa{t渣/x\2 țb0d+gh$ۦk x3EHO_hZA*(sƱG)`H)"u k''~ڷ ,ڔwwB{s-X+W$Gjk|K^{-$g\qҺ*+#.&]8qҿ:?nߎ'D𝥬ږk0խmmo-# 1Wb$8`Ն 3לuMs<Xє?Ǝ?8h%@9t.]%mAZr_;|W#ox&;FWLi;`cA HW7=ޫk4v0(Q bLנ$> G|Giz;WWq| U^Sa0f#@I>Mk>Ңx41 ]llOq_~3ூ4}'KMH5MuOx>Q|\=${{{+ ո;xu_7Z2ͪG^'B\Hwßǎ+eRfݼǐC?e߃)x>\5[+mULފpxr9Ttyyy\̄178 f #5?OJoهU:]XJC"g=>opAx;=:ִth?;7 pE| xi>4I20X u<lWU;@aq'sZ=|Qǂ^5;XOTtR)^xg/cP.-’ơ]E9$v5b>檃1ev񌑟~Tࡷ0M뜻OkIb)Qo {<72H-0I8s G  b-5 &LT+H!t,O$Gk-\4vB7ȼ: d[p7*/UIܒ@ XvWU]qD apxX>,NJ~ 9MKMpĈW8s["`˅$؊=@B,v8jR?/}YOkkaޤ}a޹Ć/ ǎCqd fox if-.$gaԃ\Awg^iՉVXxdڱ[xcF5) ;F:n<Hk/E)mu5}9{Bx6LD34vr 9bk{½2vD{2.#XH&8iF͹HVU$\mag~yx j[=*>:ms*??Lz$#MC>~}x9=@ S9>*# 0=xƢV/p!rcid s?i *2I=1oN[@0KG}(eؘ9?/'je,eyS~E#G3|&:p>Ywmˑ=+Da+!mg U <jo7|C,J†8TDQ)E G~>D(#ֲqoa7q5s*8\t֤VUF@=03Pѓ y%B%ah<_+*#HUR-.?zXD _Z)"88y~lkrq$ZI9!"&C$=G4S\9$Cdӟ_oARghy/7-wxC$i(1!YF9kwiQd)d2˜IY, `,b$ݑRHttDFw|dEXv 3X8+!h%сLa3߭Vw/9셗TX9ss֦ɐZ2AuߏP$J|ұ0_>g9H5r{s__? nIk g`tDr~nľ sExcLC h%A]I 9-Wb VZ®6#{y0! !J NYʽoaXr6 !@ ##>B6GB{OqБ,:87c~`x+yy;cKzL.{{)QEbm 1I(*Zcc\򕞁iݤ'#kgtÖbQshBkRMi E Gs/]v'?>M> 9 ̹P`? ԩjW)KELČe-:m;U5[Y# ?^=13?ziKO1ۑ0_Fr?>U2G~8+/qMk9W.{~4E1H4#^MQrAUQnqp2Fqvkx9ޟ⪩*<#RϢZ',1W'KF8?kt4am:–<)KRYY#q8>8<r7|1֪?vq(#ʡl7u*<ԏPOs1dA \0CgyRyĪC>d'sj#s'=sUhG@+$3}3_G?5[(cղ@lq?_2KC(bgJ<-3[Jk=͂22 9 sڻr霕ryeޱK#7Z)|=0@vV@̈nN}=;MY31y'㞽iaH ujte"#(Y6JP ު88ύڟ+G䘀 u=Ui au'?wuh̟5-&eHU9 i:"~>!bCy >8@rہ@_PƖ~7.|.s9=]it9. ghv C#֚7 $mVoFM+q},S!c dz"d,6r \KaQT3>fV1 dѱH\* 99~>GX$wP~_$ c+,N*K1#Oiɍ˜u&-aj/$lA=0}A@X9z a.ź:0ŰINjUi]c}1a'&iq GTw%^[o2 'vG3"չzA~f8ؿq47JG9d  @qƵ\qfO*L1:J7yKc%v>5ܦr* v,'=5Dv1Ӿ DWU?)A808ϵMpf)8$:8}DѬCaP6F{/#5z&?JBl\GgX'57JYX#}zS;I\v U9ԅogaA$`*WO(&0K. 4Ե3ćʒ@kyO)vR(>o=6].K `cmɁczҳ+ҰTLv3iSc°sACy돽4ďdJ~f,V!9=`g?Zf#,w )톎I9@N*UmHcDH);tdǡK38=F#PfcCg;vH߲/Kg cܪpp+r&6hUwO_P~w9 Mt++ zV! s9FI'kХc9so 5CjN֎gS޾x'$ q+/[R ˻Y#=o1$V˶Q凿QQBgLDkJ\-W1L|M4\ٷ,r3ѕX`IݮxW^м{{VѮl+ )cѸ9 qs_ԛnWm \oN:Vo]dgoďAִ&i%ݚ4 f)xYBەyy[eh7Ěޝx+F2[ɋ$`#ah{HXX vBO\zgӁoYy'+*sVԘ[tvLH".@;SdrcR89)!7{nF 8_:ۢ u-M;xƓnQ[X  C`s>|B-߇w%,M&&WIfsU c=@DN*ŻF(Tr8DG/GN+RZ$%.<8U]29LRa|TaC{}9*E`Ns?+6Lcxe d{w^Q;Tp<Da.6JOڅDw0BX܏__5<d4CxOL_VY71wF#c9|;zԽKL&q䐞`߆qMkoeHqs*C {V pi7 s(~ WVڗ$hJUBX4@cԍ*ٜ}|K>9n2h13_R-oX'f=0ͶFԢHh1<E}=cVuK?[MusnC,Q2;Ԕ' p}A=>}1uD?&%a6ztՙJ~7@=Nj)qndXъykT?q=CQw.֩́|0s Qw~lj?R O*|6=Xm f{Rw*k((O *ҥ(SHF0;/?7|+k]\NtaFmē[?ekI`m@ rqڶk_xSZtO ٷPk \BGoKR61u>ʟ RbͶYW2+(+á8Fk}"\֬,/J[X.bg,Fvddzөn/7n[rF?Xy |Y|q 99!i0_uD9VB9*VU'x"e'_?<xkYմ..f ypUn9߉_?o֥o}=cW-nf[)JX`8h&O~ktdm#Pb>r7FPyz(UF_N>+>uŬz,$!`L{_%Fc$ PGA\usH2Q&,\2gHYğ,έ6M7rͲ&uF{tT1K0t$Y$ѫ|9 ~-[giqHܚa^*#&Q DLEG۞R:_J|_}/> 6M")vt`N=[:~ϿGyy_k:!b+ds]?{cRVu=+n/5iIN p_{~͟|USލ/~r6$,lē誴}B!$LS <j13Rp~UU@ {/̅3?XIAYл e=rqTBI8QxB@ p}ϯBhbDe`Vf 4LcT 8QqaN iCwT0`^Oa>B`峃<ϷZ9Ɋ)B:t-!7M}3rEn~RW~2Ȓ+Q`9(%bW!;ɃBO^S (RO*ٵ))' y?L4Ű why$YdExI\*|yNPmîzrlRҔQ99ӰnEZ[c F9^iQ!@᳃1Ϧj;eu@8=Yk{d q++?t9bw ǤnVLc]l")H108qL-$,I䜆('Q^'Ky/-ŭIzpb Wy/xQ;Ej]np\Hq<k[t#Ti#r=?`Oe5{wI(V呀`WZnpSR&uC>֍>*R ʙۭB f]+lǙF};DEtD@NR6NzD6e21<HFse o.͐s:Ĥ[d 1uѤPB0C1 ;59G ϲ5_=ǿW\6|m&vEPX00z*G6uer<删J='hUAP9G$S2+2 s>LJP@Ͽ}+Nxow\PKrdS܌`tWN=F\^| f7Vߌv;vPXpAǡmlL`NO\VZI .+IU@ ޢ;ia"cF17B Ԇ<~Lw mO#ϵN3jW# F$7:Sm+)'lWcHH\F?:cǰ*HvBGq1^pUQ\:O:Vye>_? \$['@"fQ|o^cTaU &4b DZU"1GzwdFD6dq^:UvB$fSy^wqNTkW0Rrz R3EhFb'ӹs񩊻6)Yp͌n(GWcYUu!׾=Vh-ţp+w.̑0R}WSDsXsB ۋaUyih@NzD$DguF&{z(c8jWr'eN>^ mooҲ# gz)qBB0:͒.7gVsfd!c9`͑{>l.Hˑ=MRЬ8#q=bD'ke(cǵU셺ipO*+@&1T!NfnBϧ!!`6==jM s21Bwd yYB̛Nvʑ?GJФ֋SD8.\3UQp=yNLLX<۞in+’m1q򪎹' `Ҷz"U@y3&1Uй!*o-a9<1L#k1BAOfqg$Biǭ=ni9ڡa\{c r|NG.íh7d2pKG8 {X )0UWd;ܻ {ߐ*:1 (a@W7ϵKapV)ٍcB ~X6WާR+c/0+--8ȑ9@_3y3Z](EXY2p3׃MR|nG GWrFlB2H:c帍M1+ZtHBr2\}:~4 f;:Sg'/*;Y3߁W̟jυ_ີF ,:.gl#'c63UU 9ϯZ Ȇ=2:#Jo_ XGl2jҝ J $+G~ˈ<}JGu\2rzsrGsuWv*z`r)En=3|Iо*||w=} hZ71@;{}kU5 YgUfLz{qڳT4U WoW!o3 Bc,9dsG5,:ݝ <mwWIdM76'z*m"Wcbf,eX Bpx8&Cs.m[ !2':oW¿-Y[QSYM{MgA9?4(%FWЊ?ࣞ*t½' "TFrN0R8֯POq nmTv<ö0OzRw~G! trݣ*;8=;x/|csMZOsЯA{P;Ftq"&4߄~6_j:ό5E]X62n`TʓV-[@:)Ϯ}d\xdXFs%"rrFGS{O~ߵwNBɛL2xiT#xwO#?[_]è%ݭmGUS%{I4sEiŘmgYP?2\;Z9\H!OP}2=k &- Qү4MtMuhHQNá'۞s_ ylE ?J$|@~|)uEmKw_2La\O kլF[K#$~b䌞 k L3ˢjyQDnSH!5|$dz^_T77#8VNއݾ>|OiY;ed6jH@se8 S/o°E~BkY4KUdΉԯ.2q}oqIUK4wjb,xS¾|QA7ͭnH {Ƨ{6}Ϭ~Οt[1(yBDlm8tFF{Av٧/#?5JKr5T3$=H Ik?f}&=?º^e:fksK+eF Q #?-?ai>({MƄXgQ`!`Xw<_)~gc7ڂ8Ql0St5 I3e0~0߂bce5Qna.sRvzW_oo8i |A_Ǯ]O8\ #OJ_? +7K+M4G6$It<ŕ} :֬R.hb!Vbq F@&$ւR$>V#Q׏񥌶ŕrG$#(TbK gG6ɐPd{3GM.ȮdV$3=3QfU>|#fh %4pQ;dY0$ չk*ƶI\KRiJcd#kTǙ z5VZӬm jZ!.o#<FWO*|QOxgiݵ&DY-UPzמEZ[II&$AdsDV,߾7swX4KSχw7&unEɒy oo5oRKC'dI!b&@O0.Wv ΄2xW|c9E dI _scB<#]+ÞEK[H$Ty'r~薈ljVuφY1X 985)ܫ"$оGsx^Q,q8 uy"oo:q}n@mXOk4{w%qk=ǀ<>!:<1?kąp0;sz+#H\hu4ccP)t{kih-$.NDs-umLR/L݇1WAe$?OzRHWßt7<-"vLfr4s@~;xh"G$(aڿ<(Ø#fмc`K{dT6Q/ urHd2y˜GN5lIx˺b{m |ґQUmݴWxw"š冸4jnTAF_?b8`((=V` c~D@[qD`:P0"&Y6`s^Cz? O|EΓ{ h{)] [+c?0\FO_C5&+e!UAIz|AxZ~\&_ۥŴ# sNfV<=9լ%yGcޥwsz>(xwP]C;[h2F0y5o4z~Z%i@;q77CO^*u;ţ/=x:<| 7`\%քHqRB|#sr'_ /t4.Hq;Wyt_>/ki_l( 1T _m~7M1f1dzww4GLmo IK< ﲰ;nIC8ORnoSA4̒C aS.Cps\cFdK_E$N#l89GJ' ̗N.o ӽV]>|4 UϦN(6קv P*bDJedr R@23ǔwEHkG,gNHQK.׍+?7P3oPX~8<h/VYGM`274[QBseP# +ҢK %˯M<re1." 8ب䙚p`79It WFn rJZV9* n'ӥa&)"`1e*FWݻf$ @Gzha\3w$ۓ$XAϧZFErOl<֝#"f\y'Tm*^ZƮ7&F>{RF'< m!FRјݪ`n|UwpN:tI[B0ʾ2; G J[3HܞD6ěUGWd%t|)o&MWxC_2ϖxNKڋwu+J8(Iw2=⇆g?o"3ٟ)%\Ol_ƹ2hB<3 FJV=2'*gi=uwF~Q8/>jŠdq, >Ass_=>;_5^Us!܆\׿*[4N99 ?y ]*lˉf-{JI,Chh>Yn;q ҭH۪YH @ocS5a6u1J0PxB['1UigW%Eʀ=I#y\H\:fgw?iG;ye2 :_NnF\0 =H_|;I$"[[Zym+֬76ӫr: jOfEe=?B@*ˀƜdr*T8t\X0`?lX)d+;SP9^4oϷ4]36A#g#viLE!'iy4 Pc#cKI0I@sr* \XJ- m|YX0U-6qqPB }[tS6mkqDfj1,u #'sI6w0RC&h'vG_e9mJ,!? H ; 2xf*8YU$F k.xk4:BK&dϷҝUW2ʑ˷t$j;_bZv^c ps :Ut(Y1C26:! L( >u,sFp:p "/(@icExS GQҺ"fs/3ʒy",ǯƔn(]@GLcy*ͤB+,.D@3ӿ|,wF,##kU;tyYv vX$~?ΑI~VFNW'lRwd5ps$#FT y Cɜ{SUwû y<'[oRYA,h rnqSP8$˻ Dda*E}7J~vRW#, 99ۊU4.2cZWemʪv񞾇HR/EIV*^`+r;RkKADB߁@U7XMj#6/c%B?ʞ~679iANߙ@UT@a\FQZj.Z1'''ҘU2Y.7i>T# r1ժw. ew/P=y53 Lu )-g;^cBH GCS]i$Kg $ne')ܯZɍl`RI]=U9IrCassfwcГKRD2;qS >fF ` :vYx›p9=+bIUc#b^ p7?!po, 8$z/߇\3n_Oƌ% ,A#}/f jWRDCs!`T2''OX৘PvHWag$CBF=~[[zj4϶Ip:֭Zwis$vNI"i=Jb}ѷ\A'Gƺ8|l'I,BTvp1ӡgoi ({I"B \8HƙqmKi[eyҹ+R5k+y z=ϭhJeͫXl pgݾ"ygi>ccukco\L$Մ;0I+9#Lx#-!wW8v`{jR6e \zc=4'X lj1x}) 5Gqƒ'~[i%=@R"l #Ts<ƭ|a {3?0\DN8Hd}kB ZwRv1Q;ԳX;"lrrRօ6?S7 g⽄Doe8 bA ǁ ~FH’C__NYΟ3^r$~׊bR7' y#SWw.lo5r۸/>_򥕞pF @z|6Nvx#y< s'{}+7aӴCl8+#~R'Hqd}syG%9cA֧fe!|>Z- n2*2M^'jkXðNX^9$g}iH\0Q&6񎇿ҍ[}sV?$ 0O劀A4]y8OL~|Э14P2 ぜwP4sui1TO˸zԱ<+i2.>IzT>\mmi-یݴ`*y қV)\].$޼~j34hy>m# )quAt~ç:SV|^<#OzRQLno7u >-NCЧRU$hRW8~/EyxXOIs3"1*n'Xv.K?un7и^(x-k:UGlY>`7O_~|?4#3I4 \׿eO~9𮥨K;m#?bs»+Hs1^Cz%|Gx{U/+d9HAxSী.OUa1xsE"IV6uUڪ- oiY|Pm[G)AԶ0fph0y\?|IUOU<_akvyH{dOC9o: oɭj1qm0Yq)W|+?//!to2 c oSqZI!;>)OX^kaW\}>cpQI5zg\ x^Ր*-k,r(R16s=0~޿.(.m1ݣ OFL#sOWO<1(to,<[4hfyi ]HfBpT3gmFg/ߤ,QFO\y!ND2qdtu>,'$Mri퍯Vx(.ФqIg5xԾmq-ȕcv.95.|Q_\\Oew"E-;X_uQLvrHp/O,ODFcxʺ`S*ŝqWӾ h_cn{7PXiC[K{6s Eq$;m8'7W_ڶw]-4.{/a΂Hë }μ+ 0?Gth}>[m5( 0 ÝpyW'"A9jW~%J+q$3^GфrS`n38j^б[wpXぎؒx¿cs3۷mr0sM!b퇦qקzścHDXbzlvW'=~Щ.g$.<0..4B#X\O*\E~1.q;T onoZņSK{iS\,V׊oI#t__aK_|U~ײGq%B($+POlWRk02zsdp]7'3PkjOo-aA"Ow55[ū|]h! :t#9ݖYf'n86I~/6_iPpFwWj84Ql'SB}? hyx[N[tB$8={D$2Fg&XONUH )krTmR 85٪-5sZB}ei"%c N|Fm9M/ߋ.oYT~X c߯Ę;p+?~߿|Au^0u_ͲgM 4Ryg\fhT(b@>FEGUUh yAYGoztL0rNNTUS"QSri# ď9:$T܏Qz{ڇAyYҡdQloT9V?:0 7q;iK v2<ߚ~.~z-.f˶)ČOj$^t2BdǮ9f&?c="{ P ֒o0'Y7khJ-XE{[x&$T+rKQE;̥/H+x| u?]v%l,ip\g'"-g/#.vO+г'Mk{{J-Ĉ#AYLhq2FS־.eOY q׾A?i?4joidVWK{f]fX6`qr4{%|%C<i Tlz℺<t>b@d4U&5 ־?O;<;w*MUx~!f бbߏxώb?x3VoxW[ڌ#\6RrCg׵uS;G~񅷏|IXot_XoZ7 '>c< s_(^w'wlz濝_<{Qx3[_4Hu n3C+; qyA\ڛ]7?ǚ5x>!4 U|v6GR*:y\̠aAƯs<ךyVTpH[PIPzǥz, !pǎx3_ |m~+~ZW|.<9o|-_AFFW iBG^{qJpFw>Zg˯zՎisc/g>6zxkc%]$ܬ EČ.=^y_l~Þ QhՕ[ Aڬ9 r~lWFݶ:.ruSג:WU^3g؛4nE裏md$^=1/U|%;P6e$؝OdGQ^Gua4jV[[C*0{8=gS'ŇK\]@RAPI<}Aq!AgO60ErLlN;) =x̏ۏ~h{k=iZe-n0;s)p펕oYxKöM~\,YOrʼnb[soAivMmsibܪM' O\xGƞ6b5LKT$m-T_ by[@)PH<%* m!o<Y)dwsA;qCj[rF6|i'̓ڬF*+.311ɖUEtV;xn?=$m+Ҵx,8$~ZL =r=88)1@+ <?Zܘڹ݀A~yǾ3MY6m&#q?zQI 3ƬH3VɽHPϐ:algqR!X*IIfӵRƛigU)R{ qHctn!RJ$2:@U rn34mCk >[LPp<# b@zӤy\LU{V˘2o(:5̕=3PϷL񃊤}]igo]T6 1>\50hcc, ݎ }}+:H7Qo) hUO<}sX%@F0{P \H\1p8lphʌߦ>eSE(i 29XgS5<dDg8o29֗dR*@c$y$3T6J.4e.{Lpuvْ5Dm g''wP:R+|&$+4:H"#t'$׭~|ƎB6p119am;|tq@\dЌ眜s_z$Ȭ @yJ7j2/3$F{B@T)$N=l׭9[=y?%Fhip|zҹygBy1@͍ɜ#FUv<䎹UVU +# L\Կ=,hr@9 L5y16hn> &ESQ{ *Tpy֤3vr?Z QWr!dQz&X] niF@=zҌnl><# T 0+~\Ty ! >Td+![ n4QN6De( {T(_ypdF0:Tyq0 ܀yYK_D"AvmK`8=ꝱ^@BH۞=l;G5 !b3 vkK;hV;o&?0:} 3Yw&X@Wa==N p@ p4n~fn5ޕ]Ry#FBTSװ?ؑd%`pݿ, (3IUy 2 `2׮rR%QCs2>xv}N4  @=9-#{R5|rWמZྡT"M#ju9v9j- +|#bf$ߧҟ? 1gǽ@Le=8[ʈd\"ҷb]y#9h\PԒ=j2G&%|G$w,hؐT(o+l ~zИ8EP08qGC!x /(ZONqt5Z[ l+kpqOT,0ۜ{@،9QAUVRܤ=cfXG#;4EFnxJoP\G!p'X{UHN#rB2dVwUlv 9䞜dА;QSmJW`2Aތ* TXyP]ۃ$ F}材]!bRHG|ޜ+MʁF}:R1*);8؜8l`ӿJU<.p[ cv2W~&RZ/wqQG W;o܀:nkG!es6*x8܌1~,MHTV1?P#'BEHz}lp(9R%+ZtzUHuU{ը݉г ##h?io-dEO|}yT!&K `Zz i!A{*7Q=Y ; <2m8[o\%6ȟ: n=k12V3n[p/ |I;HQ)8]Og&-.IN1 {s}+:RM4g:?t @i>r#bLlI'83ۥc؎#1Ł Hs2G5-1h6z{ G6qFF8w sub R𱷹n&6[` vmjgUQDo ,4* )#j%UPrzuVPd`~uNNSĬnjǿOCce=kt[ PŹmm'@aUpB8=s_Ԏ|tue=1:PYxZxȹufQ ܩ\t-V>~_$|k 3̱<<O_mcG=(?9]~W`Le&}zq_[(n%#gZF)*Ȑ qۯM ̻Nc@Yd7._aQ! rYhh.ڂ90=~G̬18?.?(c8Ar:zUx(E 2<ִN蔈a&n |Ԟ(Q! \ԻPYOޢ!8X̅#sk;j]9P9x$q70?zHnX #D}r}M~E';G9z"R-pD{7OA8=j7+l%~A y@/#Tu C~t'ofMs_\z?;xOnŝsjjԹp jNp ai4(H75q;RA%29a"d2PCc CrI/soYiGqdWE8<1GZBNz䎤bڲR ]Z3sN1?iRRyz֖6Dui(~ѿ ;]v^nw(5Gᷝ^ Ƣ*|*r;z_~߳AQu}jV35MFk6;"ci.f!|lQ~[A;pY< PJM)O(7McV..&qHTƒW~?FO-V`${hqGğOvo=׃i%,TKg1d Fcl]qֿ-K_K }`Z\i^ŕd RRiE7Mv_oOM_Z|.ԴdEM\5@ḳۙzWZL# #xCxU猃ЂXcW'?t-~:.a@{(`)P197` Uӊh-5=m?MgZޜ֑Mo Duq Wl!<?x__ wkxĞԜ:]ĭ v7cgx}Ž E1ڼi 'PBHf v9r5>u)}g>cdd9#8 P&jW"_tUdz7h C a29mwQxSC<1&4^$']R#85_ ;ixe{vo"K=K2HIxv;~lqǟJaqr ʄKlDğh޸+I߳ǟk)|EqcKϳf@*X[пf__ %Ym?3pM|!Z߉^ `©eDABMz[`NIGʼw53%G?|%_~[x{Zl:|wlӔ`v :q_>x/uO uj,p#mFH)Mg1x<{xV|?m{۹vQ3~8_ϊ-HK"=NSd(8mP0iŶ]?Zӝd7S+0Z]1~5>ZLu+M-whc,:c py6cW-HmRPۊ =J#" R rTbTp¸{u84RG1zͥ`E8a/\g֞c#Aʶ;WPPx?N ") GQOz^Tjo3g=3jgF38%+#ϘPoMUd>5Qc'/a9QӠe+emL jB\Oa&+IȠ>Zq>Z0$֮E6rGM5?uo~9f#MnF %*=c Vf%x`>ωōwoZןC+rI]x8Qm4~DZ]]G^ԬSFRdnGN+ X-i!~-51pT2m`ApzVQcp\vn CX`szd/>H#ox %ƫ;\Čnv8+z?>50[jVkK -;^7#=?h~?>3k /Ct6.UdڤK`# lO>jAkl9淥uʓ lI}n[$~*C5'me4"vZ68|W+|>+k:}߉9\Olm qG!bأ$3_qsmرrq2zᚰŹ@A 2קW=_ßM=_+Kp=7IF,B䗌s<~m-2@hUҴ%d(J隍^7H$c<1xyMU; 3+1~1=\<%xfI6a$ Tu ]FdscjH9́LtxbϚ*}7Ě>}?4۶ce8'WһR2oly;OʡT!x`} O2E2s5Ew{R}}iNhd,vU#7%8[Aܭ[ g:i -&o±M@PG_, nOm:#UDh핂`t{ROf7P8:H-o#oRp88g"e @~>Js5o7coaL<#DVs7`ztsܯٶO6 }yTaEDX/?6*O57$psXK0ܻ0X9 /ƨYÌG8ְ\rQvIJeԦ{uQ+ڥnzcsz{ȇF.Ñ0ުNάºyZPlJ-y c/90;w=9M"0B˞+ְ5m20}߾cX ϫöaB/぀'E(lgyO F3ߞ$XX{= |_̏Ee 'R0cjW!Is]_X !Y8u,@*0G8*=dkgJdIъӞT$>̢C2t+Z SXG|d}+?ࡲqEoXn*sS>I+RϷs;Uah`͵dfH9oeً3~QI1NNzp8jl-kZ=/ZgA$;N!rz iO6IBC5F5$BF#Σs?iq/DȪ:ʜcs9#P^Q%ߌ$x -UeU7$Wujw7k)iI'>J{d*~L3Kz:+; lxAB7Il`:5ڧୌ K-#)$d/'ڿ 01H@܃<, .]'sAYTFƻ?^=B;DE;@ 19{ߞN/jUۮ}L>WzZjw 5#8;}V埁|sNR"p*cӤ!§J2I3K ri^ .N?0$gJӴHE'' ;O&4dd2d!:sF34n ,W̞U1!9IiAX㑃'=;+]/lfumNO3ltF>>|OmK^4ńkK Ӷ+ЬGiĕ}@?`\{IrR|<ɯ~>*AmxVTg xeֿG'(Εiu-Jpn'ɼ 9<["N# (P#SFF=q\1)4pO<;giV֖QmPNJr'8\ V!7 &|#*H槎yVm'aO\a}+[%hMD%*[TRH8<HFlX6lzQ LW#98==ZTS'Tna< *]BO^: R;H3;*ȣjb[zHrNow, XmqÌ;zQ쏮C _(N2<G>ΌNܐG[ּu_"Ioy *c׹pӒ0 \ԑS* Xq{"Dng w!<Ae\SPlx+u|LnzzvFp9[v8S<[p_Ak.{@dB>,SfvzGpTP*\q(\:e >d[!pge Vb`̰*T~{WpNI\ڬ/X! I1׊£ffDhp8'$OZ$!X%A~_WZk7w/,2Gn4WrHt5Rr&He iÂS۞佊0ٗW?MZc(Q́:T/``t#ִY\dI@mg#+lP#b\cr3;{yH;t@O5,4W!RW2N[=k5=Ζ嵆mȳ#p8=G]^xC5m"6 m#$0#C^uEZ<|&GIl||w`Awa߯Җ90B8A 0]4$xlʀ/1.UC"d#ָ$Մ VV0}ȡ[l|%nA~RC6>Us(y4dLyJL Xg"s@)/do_ڣ•d$O?ӸvOL}}*IG@Wpsw#ڢmH??l/\hQW@SED{'"Hlr?:xlF@<7-1>9$``{g\7(Sw=")9c. *;~#&̕Szm_hrn; #؎8F$!Pen=S\w $ߕsƟl4B>ϑs<9+@Y˱,0[ެbLX֣,$ ƃ=本Rt^a 6**Z ʥc=vCImgQy~e ᷎Uzi8s8E_2*$Y#/ƚZiM1<zp۲"=~^ZGg fT$u ӔC"lRҕF¯H#1ԑ=Ŧ(p =*sTǽ!O}kH7t. M,$/؅|3$:T\,PwcZ|0UVD@2G\W><%@EĎT25\,LR =3u7*2bڭƗ, D21ҧW%M5̓3+`޾ gso6A8c1%Ǔ,%x دeb>]iE@qgvwFNjQ2=L<V@>h嶱'*HV FwtAOqPP(AN {p1[rc(+zh(i?č&4Wƚƌs}ԒsPqxzteL7ACڿ?ktc9mU3*vNHe}z5,aRU(\O(›I[6)?+폥AHy#V}vzu8olZ28|Igw=d,$9S2B-\dK wp㎃q>*mLRs* B30C.}:Iڌ#y\'Ifr#H  95HeV#i)>~b8<צG+\a+l# v`N!#pqʑWNpsT*cV8B8`K=ҝ[A+/e,[VFA 8d۹Hv*8cic vҲD2' .pG֭Fq%[p+g+0Gȟ)N8GA:|C `q:3$lNSqimfw|:zMg ' ȨR6EoqM=L쐂#:bzJBHluI}=jGo1 A#<DZ|Õ (BTr qҠ06rvfP#Jm3=q.u  =Z^8LRaӷRSn6~F;}(cn#sf{id-Y]H w>$FH #GoJL<ս8ؖ mOjO$ SI`C0z~Ab$H’ǟ':IegJ1| sx77<,ae\XN%pFϴ'#`XFRzxywbXa٢v1פDGI乿m1M5MCZ~8cZ<;u:Zui%2 8U 廎O&LuGt&/?t.]D>>}B^{Zj(OVq?Ny~;gj66md#kGtUpdI'95 ~-.DȀ~ Fw6䁎'D%  =0p0h22 CF5 M77דCFI(r|aw}BWUݤ$sbRɷw^;+x{MF\Z3"Z>5#(M1ls8&wy-wP:\a#z{ M7 9L;4xTZzo@: bH~Ckzj^ 5ugSiPJ222F88Z4MNV=*3XH`Izf2wG+_υVfuxncj/@Ui߉$RYwg ;W?egOOE +{[p`+s=:Ro'DUM˧Hgc5iNpx2Hݒ:8xS~3cxHǷz¤j~7Fڮc,h#foͻ+~Sӊ4o7)fkKutY2:rIs_KiHZ]ۑ<K3"xR#/N7ƚo}7m Z(m&v @PW 08> ~>+I  U$!Vp8FGp>g 1li%?It(Y*3LCZ`A~!g0`s;H^?֫E1(A\AGq9RV'faGd%1nzljff*.N1"8p\erGALUV2a!O=qm$T7K',P؊|+ʛOJ褅,O oҪ3FʱnUϕ:pO4+Y 7rGn}9Y#T`932X.xKxC9eUA?Cq҅Gky ͂ߥVtsvdB[#z{I6 n;c҅vZ,,d!l6qޞnY\׿5L9 2=zpiw ,)L nJ;nf19BC8qҬ1ey[a |A>ožӷ,%cRG|=WjO O-o4c=+92u}岂z>7Jޓ|F0ݻp0}ryp --kU@km.]]͏zmW cojrI,P('6qs`r%vN13MiB$ӜkW>n mvգϿOz-W64fBy @ =@j~JaEї<1P0pjBvZ4>`00dޣEdM/YYLXKxF6WO.Jd7fBCJ23 ~AipMXi$`0Q6FqԒhO .H@lp3XKo>֙1qnMh 'h[=9-޽-ur'NK5CE'|~Uy=u;Y qLw +* n%{Ͻ5pzɟw 㙮n[(bI$H]*c m dpsߐF9E`9+g߶j{Z}|W?xZ9ȯY鿰gQ__ԧLn(r>Q@ߊچKFII W֐'^̠m:~ Bd!X3>X!ƁGF4_\&xq3ۑs|[ ?ÖF*XÒ^wiCrjtA4#EK:zՄ2zn X4'V_c&b,@t$~Zo` |ܐ1:})\b. c³vTS(Q(0pHN*tIǾ;g3eLo\pC 9-)uF]{rnɋآ7xu20O'MCV%Jac y<\Gbۜ={ԩR4$d{C+Fv8a p0;~f%Ł%T zէUhЙ#9ʞ֪@b}޲cX1IhYOƮFgdcY6:T]㍕Fr0OoZXѤI d(Bsߌ*K6 !TPs=beI7p8w2Pyjj`&1+wb}ϵUIJQv-2J WKyt@-{sߚ)T6u9qQXw6H|zq:`T/NO&bU)US'%=ҦHTp;cW1+ CRHdgl 1~sFCK6l簫BfX'(%q[/݌?. F Z1f\1yF{UDnd&P@ҫ[1"8|~8M>֊IrqoaD.(0^I Q˶FA'_J~lW,0Qv5MUmgʓ{F%rK2 O}ɬ$o{mh*w|#鞽F( ֓{X%ܳ9$q=}Z8z7g W0`lZq 8'׿oN2K  D1.[#[͢4 d˕5*=~ޛ f\8?M\ٲTZ-ʋ'ǕrҕIXv5V 8qH]ʩ\P]?+F^硠?3),U,2[G#~~H ?b.F(sZpV\",?AQ+>ϟaTbF?@3$#8.݇79*UN>@MI& 9?ơ $GN1֥Vt9Y>>|>А3v GsR*2,.T[0;U|f ' qS/J7pԚmm;/ߧC"0fACRIpq9Q#[s،3oZ(ذѬ%Y*O,+nh\4.Pm -'ȧpX00|c.Lacq%$JS!2xO?ƨYNߺ?/JV޲Usq=ӹl oU+`Fs {Sdc凎=Iyǿ#\ wMD۝Ӟ .YGAި=+M<^d ,qSLcVID~epZ\2Q.9V2I=5q4]snݒXNINON{T+.Rp?Hyte퓜ªQ8ι<=C0:C#+dc<O # p$g{~ͳ/ !iKP$ϻ Žq$^SN@rߒ~ʢ`t n3U-P~YHYBO@=~ޕa1 };c:f l8D8>',e\q J0,&0F7c'G¢  UISυK6PzקᚓpfEH [J,j[0U3 R}+3}R0(+l">cp;{՛Q<(0kV5#?A+5f&_"\3m-3ZF\~(oJYG;#,Řz:»Fc,JFeDEx2YHRfhnҊ )U1>voI /3;Q[ J'sIS]͆dCl"bT&pG9sN(6|IU9*Tg1!\l1bv*gF]X}zT9ݙ$t2"Y8L4E!|aTa! nZTf2ҥic6`Kz, $Ђ1G_I>RKŷ&8G!fJ= *,;?/21<=f/,8e8u ^8e3HL 6:`8]y;74#?6Wp7H 4ԑZ?;|-2.% 8\pN[Q8G9.cp۟NfIcU9ڸgG/xBhqU@$>Ɯ.\ѱ0NyWRׄ4%mK^>d2G\x̓x^&e;I-gtr7S\^o6n'r9(#'#jO:<,<;sqJ|\r| I%T[}&B_$mzrM%#pTr sM,b6P;?^(_ëKhp(XOS^D HmńY#T/w U\#<Pmoo;G ל)PFxy"MY3ZDndd "up ez=R U|ZsaxCL 1)#Kp;לj x=6nN.Ny_O~=k mEr 'xG\o^l;wFn5gvqs)ZU[-SW0TXX.g5|E~]Rgx#Ok# kѵxn KIfbPOn>vῄ,P yzt;A^A?:#c :GEn;}=l;=?1+ 3%Q#,=m]E24>jeXQ@l| cw~l^CO埭_Is7 wv>.*Vgផ|}ԧ7>#ͤocM*NOKpm˃~}kW)";-y8)O! =9v_'9彄臨-lcI giS,=FH%.=N+Ĭcsz\3F9 s5; BzGWEV̛ y^Ͽ|7M'DžH 5_q{;HbH1ÂFp~SMr2ӝ21{yu+m-}?V$O8rllO. x7(T*JA$k$B-'<}jT)l+sC[;<@=rϷz_$4qy2N}qPO; ]TqslsP5ԥZi  ^=o9\C3n L`{Uo?˅D FTu8Թi2e` r:giQGΜaTibǜJw꡼3|B7g'V:jұh[ؐ pqVbJQWʎ@Yv?$gLa΍c=3ު,d&V8 `ckDE$M>R)SbVDF#p,:gMW[جLÝ'L6rD+%d~a;OZ{4\9UX?B0d=zŐIq*WIas*Yd_dֹ&Vbʩ$n$\:B:! ŀXZ=%6ziG/7@A՗lj0 =0r3DJAupYdaPIdr#:RM18 r\w4ibщ`Ԩܫƪ .NNIJsC('"\z;Ff jۮFx׵TeS$[w<ې2xV췼1YvV0eP8yQ,x#B\ɒ\OHj:q`qQ@|.$;/ݎqRՙI7#FK[Ӣe[`\ N~iż9=1Jyӻ2L}AV.n\srӯzl{ʬ_|d0}8΢DK̒:H۞8R(1勣GA=~jݱrA(KS{Zbv(ʲz>};5 Ks\8ֳِDTƒ!cv_zJnF\\>5,q"G,[y.NFr8xJ66Ƥ2CFzUF v H1l}sOC5n-+NTT`y a-xC*S| dzA_c5aʡʝ˂9>afGY ,1~Q4F@K n8=zWGzv<(nxX4J?ҕb+ WQ9Ԝ3Pޕ.ƍFzwFV p3 P@E )c2@#I$RBAp q=i Czn>j7E!fFl8=kK"ȈM8BFRe}iBИC`T4UaT!X+A& #rۈTyW+rGֆ+h`P@8?Jq8P,vL4X(*{)d@Sy#|g>ښq|J fSw#WJ,\ARgOvG zLDylcS[9qsZ y~yKc^zP oFp_xP _.5_7n}+bʤ2¿ˆp?k/|?g.X`Ac7%v$?`İA0ei .qw`T S i#޸z eXmԁzt{V5.=Bv> 934.6#ךqRY۸JքM#r uFD|d2W8'wKf?ZYB+ >JIʒd&';*71SUM 9`HH+sSޣR1F`C'18ؒ89>bTU ךqu~`'LUUJq~NyvH $ԮZz,RK8$=c[܁W$)yB8': -Xٔϴ,|:U,0`|t)YH Ôݎ֛n\px{s\, ߱v#"68NPOE\zҜlȩnvlTܠRqߜi|w!s>O ],r\in kHs8(#һ8F^ lq=W Nk?ۺR w q? ~4ĹmsNb(j/w$qKhϘ簭i8󷹒M:Tb7ں@Nóc3濦χ7cR]B?ot9V?10& 濙+miDWx#>Fvoa7>wfû%mhK1FQT6O|cګBG<}ԳB]Mnq9J!(Uur:zkv^ ܨ7mP`;g9݂1$VOm&YN q g->ݹc=tH$?pi9䜟zqwc B)ݚ,"0%8 jN93ڈ %paGA*#Ϸ$s V0$sI?ȣl6eA">?J#i:L~^7mHeV<N=*Qlngƻ<u*A=,Ky@Сܥ=1s~߶OǭAn'_Dk`ppkg-ؼxeqޞ٫<[6m{kۺ@q~jhm_ǞӦBs Y:*My޳;%̷ҳqsHeUbc3c9(Kqڇ^.~"}1o k1A' iCekZsmbY"ln<;1 EdBA?x~u[P^^\;쪧 "㟯5dy$ l_QRHa xt?m _oTsc~g8zzWi_ǽj*ᯈWU1‡'1J? y,k}x{L^\j=Cpz֒I"ԿhO(' {9 q3\.~t5 ,mJg g'ˢϩx6K,ۡ{_1e8,t`gT1^]сenl=_Оo>?hpvq835趞ΓkXhu*=>Q3U%w,H좛JՉX="U2pu=tw㾸/W:朓.Z}Bh!L gP>*cF8,r9oDbpk*RIӿa*$ºy$ ea}@G?>6u>[H~R&@A~gqG Ԁ$*PA VLΝ7 ᅊ6dw^2sԞ9guIjȇ 8#BH#o},n'h+#9ړm>eӿcK[>ۏdU\0̀ 9K~ |(I|=E6n8zt'E2&B"OJW9I+КlNoOc1"GA5|$30XtϵO,mFcҫ%EPv'JU ꑄ6vd?:eFFrʡfڤG9?*JPFr2ރTe`F]s>\2mXFۥP:ŒJ$J.ϔ0}}FdYrۧR*3Ƀ{ZJ#BHtPW2:cߎT s.yNG| * D_h/lNr= Wi ,l8cX SSRF@Hʢح &33s}jHdQۆgxX&2ps߿=9v'G$cOfEK#)HǷ@$r򲓕2*rs<241cHPмfc X>`N1^?Rs~^>^ny#=0xzNd72cr`T0:D!o2OኑcRۼ8=93P8v<:'j ۍ_zK(ʐO͜=ךs2 \M$RzFZbaTǀ3ץe7yl Bťn1OLN-dZd$޽SIޱFР#Sji Yn6Y3 ?*)`Ύ( >qcpX 8c?ND 0p/`s1Knmdp5yey*%$LcTC*,d@]#dVC :MAujJ~e| T6]#cÎi#;Fے=N:=AruB!%AU=:RR!מ(C9q}A>)q$yEC#8b3=+ W,[ou Hِ:Bvsaʦ:1瞧4dQ<2HӳÀ<//dtOj-sJnQK,3N2>fTQ+DSw\3*C+d+#Ӟԅ晸3;dq?xD}2cGqiK ðϨŭp"1Jt=N:l/6X5å9c+(j'rlSEWGP6JgaC/3}igG* UD-Fax朎̡a@N1HGs1=DZe]rW9Ä["6 :!YZ|$Hd{SZ 9aH#9=i >|$|~9Qw"cccmH_sa@'j Esz*fP>PH'72HfXR|@w#=?ITL=x53$zvp60 YTv)!ЫDZ7;}QuHiJ\VTeԩ99`P~~0xZЏzK% pP?r'>tj?,}5lJJWk cw#<xk(C *Cʒ27Kg{k~=]4B9|Ҡn q<[jǨ\)@` 8$q_?V6_%e)Ϲd.N dYMbAg~U&s6`^-ѸK2ܒ=3ڀ椥Ѐ8&%i ^X$[/&LF:}?Z|n;>l' d)ʱw Fq'qKa8؎k1ɻ9>! C>odx 2zZi%;KaeĠ+FTr'o>DijӍl),7nqߞ!=14'ck>qیG8Qު2b?3*gw=G?_j!`}ǵHSHbQݜC1r?/Z!uq#$dcJ]Fp>fM:LB$j:;&9Um'lt527jpϿ~>߳=O/?hFw9䰌psp+މl'k>,YíY NEo6V_61Մ`Ϯz- A)6\l Z$9O^{W|6~<'ܡ5ŔPN2RzŐuF*@nzu*|5 :-l3QcU LNjǢ(F^6Ӣ9"=nae<_ L7^e4v9\ON店WO->Zcl%>۶xn#?N}-*pNǿE4L4O1 A#B'hc9=x& ![6~ ]嘠铞IҴz*XEgz?KfgJێ~ ߿.,tVrymedq9yWvԭW<-V ?Ջmry#T8p<~boa :cuOJ^A-Ju,yGk4Mu;I5)Xa8l}뎎gw-=q]TsտhD2G3Ǟsם@^9Q>XsuBmH0G'[if;_wkv y EW\Im47CG=%?e5(Txwŗ?v-,wWs| V5bgQy_Ưovebۭ_Ӵ sXKm3B5%Ym,e c ~pJ(.ϵAqjiwq B'+N/Ls=k9jZik}p#xry98zm'W-rhNDTN&%b:Aw#z~~W7^< Nϰ>qއbhzĂOXe`CsN+5xS}C3vkKC܌j#K}_~ ~]%Y z& |Iž[sfrStw?6eTk].aWrNNXVy ;iisnد# U'k#(+pcm?#az|=h$;E,F zjNQa$_;VF L䁟Sҋx-#xDW @|'[J> Ï G{A#۵F'Oz 9eP `sg*qr-|}^x&_싍f=d7[Ὲ-Upx=OA ?B!Geʍx*x}0?ⴍT~蟱/yi"+J6Nq9F3^<'_<[ &.8 ,9m> da=iw`2 SRs9جxt248Vr'Ӵ' ke]C]񖯰<Ճگ9}x @lQ vn =?ƹ%UB|{y[IJU_Qef,C?NuxZnV}66 *xm%Tp;A>{ԘSvC ◶hŇ|'a ;ú=mR r3m*j`=G<բU-~$`NLLؔF#ֵSv*!XK,'OM{x/,9gK`(p$쑷rzQ0r$(/O!NGN"%Rb67?):u⍈,LeWpGPC;V(#}K"+IY`\L $?\wFSfVIثEGdn9B*>Ym BF4 dJiҖ ]]'R֏t$RpH {d"Dx +1X!pȇ`t Gr1:7wdClg=)YFqtYǿq⡄g*Kp[w@\֨MCĐF9;~5+2Eݷ'?IY gh>¤ضdj1R/b}"*bv qhvF yʫ$'+H73;%OOzLhZ5yLؼFYvzU_.5Ēn~vSbZkd3cteߠʟt9SVl|olZmR9-=b~=rift+&8ݍO@{5!0F!O9$מ1ި×FvgOC5=͒Жfvv Q8$2"1A<ǯ_֘F`6QiE.A[SԉY|ie )RyϧH9\` te&5~UXڒw0bOx#ڗhb̠r翮{VE0;9vqq,|9#>iљU: OR:w $B&0|g^B^gm ˫T{{ʐΌɻ΍U19S|' Œߑ4(ݰcO)q+pT`(¬?|(,CA$ T$ĀRÜP÷jBlGY2me6Oʢ`2m>J3asJ29@LP`z>cJAqA$LE0 UK 2T8AV`Gry⥸l}p3Ӯ{~vQcWp9*2/p'ry98jI6靾raMMe.0 +:E̢ܶB`'rGay]B[8ֳZ> gʭgc$nC)JV&/# }Đ F?}H"B(g}?g_Id,>ӓ$b" 1`q =N9IɓĖbXS,H۩92΢(ƪZLf~99뚮4h}+fF~2,K,_5heg`!r~^9dl&ޝ.>׉5BǾ}yn wb$IEQz=IlIaWi烜}yNLepd^$2vq }ё=9-Yg9NIYjiI\EhOסyl[JǾ8ӸYVLܻzJGxXwQ$҄`i$h+^2>1ϡ|ȅˌs15HFs%pz<_HM]3?E*jM2G30HLr9L*# gi7uxJ rUbA xSD9Cpl?vFV'++Gq+ª.=ҥF] v!xǥBev** J"YD*T\CwNFx=AJZLA.#tinA08듟JZ#x_^[&x/;c8#56'i%8!vA#v.SVOheI*; ZF55G [oJrw>d.B<}k>:xdg^UhUE|ls õxme FTrZ<Ї؇J53 w\ :VI=;#I~gWiu>biȃSaֈɹ oB{J$%ݜ:VTE&P%*9 t2n汐;DT /PI;yN?*FBJqF6D<G%ټ+~!KJ$Ȓ4) 7Q=}r;SUQ,2 =:C(<*y1R *:\ڂv$KлQ\g}jᐙEnW 8'銨c/'U7g=ZV`]G^x5o0t\g7Ү"5@!?^;26H0{Kq |g*F8܃6XYsL`*ܞEW` y5;(ʐ1ć  "U U!ӂ $s"Hel% ͌Frԑaܼ=*h/V9< =UFT}9<)pr?\{Tٙ\(;ʻT1qmBdPϘ18c{SَAx4ٺHfc88Vl Tݕ$VHL6Lܼ hu#@Ud{t鎞+wTi臒ᜁ?j4FB2&\qiX"e4]ӂ.ݬRuPtQWqՆ`JVRr80OjYU6YNANMufS:.qi#/9PTp(#6AZ3r'f$dx$lTq6㎟L>lylU6yՀ@[QmAM;˜y$^,4Ѭ,@ hNX2\*9ʹ=}sO|Y6x'Oҟ}59nA yVh&+* nx(2@(H gjᶨ @YHҬ`Oep# X}RB#ё s%O&h8KgXo,1ZSwGL3fImY1Ǘ#Prz=F:^2clwueFS2O-GR_$RM#>5<$c2.JrN{czwG4g:#@#Vi$Uq&C$:TH+~۟;au[kImRNp#1+'[)=džKb&@ B7/Ss^äjFnmor7!*1rG=3]\ 9Itk{oxb;ѱ{hd28'Kvm.<7fCA @m%-F6M/C֦*F!Ӧ-#gdu^3W_~0jl^,f0i69{#l?02 VIhzg<ε_-W5Ib獤!/^:'*H t݆F .>P_/a#P<,۴\z S;]oRoV3؁<9*,Yȅ Ow ǩ~!Yg-0\v_1ێν3NX錚nji#xjUbmCPU#>'>kٓz|3mdjT㌜qiI- K[9g'v 6]ҧsq^x8[g i#nVq^ۚ0Hѭ+\qުMX$<_Uᇉ#iwn{!/;t'ڽGE?h ][fxNp~H#u$6G!c#T]f}+)GU_BO  Yּy=qYuzww$J m30'8Z9o-ws>|.UBψDu6^>>fTqӎ00:=SIY6K{rz5eAi錓zQ$yCU38y͗/Z]7!-x?wJm0k 0? y_,b12=;#mn@2Sc?\.re,xu-ppG$z R84|{wSY"w=>Nd.FL쬱K pO{t2䓕WǥP 0$1]NՌ$, @9y wl9 I`ơz6O| ښ`2nR8Lv 1d~09w7H$(p S[)r06ⱌgr|RďI O'94#3F6pGLuY.I>׎I"YĒʲVB10f=ŲwӽFY7TrysQl\d`{ϡEO6E8Oi]1}珨5 qlq϶)Yeo8CbdHZs+ ca#JzS%'nG^zzĖHHl.9^:sMA#=/R ?Ϡ%w ywVlw&y6D ,Sq5U $>kvR\qؤ eVݛRvG<5kE- ݿut*6O?T˸1#1UVV&?~0{O'2ew0haQӯJgZ۸#.O=ǥE$߹+vAڟ!Y5DfS~?Aҥ['rjRp﹘1O8'dd2GE xsQҭ;b`c 6)[R[d(ܹ'Bp1ҷ|vخǠ?8xIWpszR4?/?[.L,ҕ,G8DG(Q6Fɝ͜NO'73 L 疠E#*5\I'SG  Pyr4x"6Xǽ"|>QcDߔBL)[O.6 SA o9 ss֙$N"BđN٨uXƄ%q9#UVݣY 9ff%q2,` Y6HqN"dVM 9\Su3PEi,A<{gjD4ȻTNGjXBrr8=so,a#xyBQòN:{SVX6&OG)ͻM+`26FcMSwiPc',۝G:F>$0z`} eVň;G|:PI;ȡ'ӹ5-)<iDw3j;b+O=8@ -ev3ZYAbyg9;O9M$a1bTsI܆FD$g=k: Hd $`~iʑc!uZܰY!yz=1P匱YW*z};N<|o#? u.XcZƐc"ۂT-D,I8N$έ net䁜:|}=I6]1Fc Cz=y.M~镹Ql fo~lzjY%Yws>"%b +uNW,nġ!$0= {Psp>?ZA<`frP.Wz? $Sw4ef|w?G}8t vJ\yf= gv#HNbf}+ 5f\%⿼6i)ozHC=[r`z=y5BKB~Bl g~5bG `q<~"UY7*OMr8>&I9 'IzY<7RH;19V`IB!4KhSНI$c#2r9XP2eX6w#nF##d`Қ3!$Ԝ" /TPx~@r?=Ӱ2H3ңIB1V =Q4NȾLx㞝+5//q֏廫H]Ą11O"@9e4Qߎ{qQ4% l7v 9=}N(V v0RYp9MLI.hƁ f!nsVxѕV =<}+.#VJ/W܎PeܜNk ɮE Dcv劐?=Ʌ 6A^=Mrn:WBբ#?0{ .7y-bO*8:S/n"T4$TFCR|890c7> `#iȸ'%A:T WDS4hEVɐgH%krYya}K,g;m=OK4>J`bz1d":N=Ƌ¤a^>)y0V;[n y!wJc}rh=9$jp11/مQʑb0J.`?JNŝ5`vƣ,lnO)W{];6G<|AZٓi`}=+h9/0 xd_N1J贺Xgy^xxM&Ta3rFn;q߭VEGN9xyxn3lr{_zz ;bT[TcǑSH>\=ڮ1Vh@#=,a#e9 |RT6 a<H#8 z5I ʁ9'wvgg׷V[㕡œP=[-Xt2խ,s' ?j dR#ޟ_J|Ǖ9Sh9L1DL ߌ7|4PjҵJ-IF$0nMѕU>?ڔH (pĞ f#oTqے@=U5R07ݐ@gC8)PF8aNq])7wpI`:`Sb);: x{3Z]$܄gu<`Ьq0i~l.OOZC2<1IMS4pR+ N/j95 KܐiHnS>ls^*SHInqv:=z[AA`;0GZ?&WVKB +T+4&de4ҝ泸!L#J9 4"nc?*$tČrΟ(+9BL,[984yK1XP}f:ʇ$n^g9֫*v+hBT<`sǿZyve}@ 򪝾=J#X%p=3Q'2 qJz P U26J΃ʑPWbpqZ Y/ԑOz ڿ.hOerbW qПT'QK`v0r89wnUmA;c|`wzK\Ů&vdU#zV{w)cil+TEp+>K2Q3DeI6'TcEde.1:s]i6оiַ34wbD?A >TX$ݤ cU|?iPeff@va:,_x<dkO.<1u9Qp8g:cUI~Arbz3MvAjUOc=Zq;FTՋ{;k~x_%skst,m0ɱp{1KX'{OiFjM_#Ub?6 8dokÒ_~{ݣZjL.QL9$p>W kwfGgĬ;eaRJ= XS #yL[?Υ'1xJaNXVvp@(ס㎝hXضĎ2AПOsԕ;4+.b_/83޿5ok|8t}WZtF1BUs_2/ r@n u؟PծBmoYcd!RO&̟5hgT.M[FYBfsseڿWB8O_߉>5CZL7(mx$x ",u=AiU#Rw' FG-t+ !piH61 ?_΢Ys5i2?"o GԺoA:}׶,'!j/'7ğ, -m+{g` Ujv5~>P$gi,9H#*@dX+OػRmml=; Ž), ;T"9YNvI-ܜ:ryQ(PP0I;s<~Ȅ̓>qס.G+ MaRGE9h,ҪVw'^81[~_T8>`%!QGC Z@lnfv8-MLY+c}:])di={}Ns2m;p>fǧ:S<1Xގz cO+#ܖN#ds׃j[1 h;{Se&pfy֡GVc*,Fkde@bA҉vR "M}zgfr=*kڱ$v_=IYˡ d<`ƹ+l+Q9c91tϭF^6E1mx<|Y%G Ѐ{)SL$7ew2 \t=:Onm<͒ V8T7"E"!{g'!n4RA!X9Vbz"͛p`By9OZ瑣Qm9jT?0#>􁌸!deQOn}GRihgE$e#[Hv!Xg9 b"cAY MvH:s w +%,xv ztdS'-}<6m0SF ųɓێ^7twĤdpOKXR˝7Ҹua9U&1oG#6ewONNQa~|H;Q44ݔL]{Ж%ȵ [,$p1=ZdA.fsuϧ@ 2E:dmU$c?__DbTtOkt ܙ%\K'.C&KTsӎ:i"F2" #֞AH,Bq;# `Oz{JD;j4%$zr s LvHA.6נ\FkyÌǨ\ O}i9"e3W<'t8\;`?^Zpeʖv=r=* M毙$ԛY =UVY*7 eVHNVDCn=H+ؗGcuE_Cv2?SK#8&R|ݗ#9TN`?AJ1DvP91q4! Hʳp02S<1(z25!%aM>`ޘ1։|FUHVfWPpJ|,a\piUH@A?ʄ֤Op]6qDDqj2`E)x QJ1nzR4ﳮ/ax$1"~pl1Pp*Tn7ɢࢋrF2T``>D!=7Z;.aWϽDw]/<}MK*v$h,`8!Tӗp!#$㍠N.һel7 09#ޑcߵHt>I$ȫ]6*r >)CpxBz"i)PyH\ gԑ.c8(\V$^U?€1֥Kp pFw7;0o)3r%C K7/MyI=zERlqӟ0Pņr㓓ߜwȟ%<-'͐[al'Fvo˖FpKE\zt'}efIXWYtlS>%̬wFzsQJdE*GZF, $NN\=+2ɲG˒܎Fbr>lڦP*H8%Z3,[sՀvB%,30 pޢϕo` uy ZFG!f`a@QX CĖα,~b^0bB` j;2B22%mqHcwTa2oi!cn2>I2^UA@sMpНUFH^iYYX&nx-a/  vkd܊4*g,~6ҞOo uJY#X^LQvW yA\I["hYW&)9|ll珧L g`r0Fܟ׵Ss  8z- #۰Һ\Uۻph\q:iBRQ@zUK/yq@׎XXn "C5EBWLy Dcs${Üzp{™e3UY 1pcӊɽMiDH9"'dZU.p1>Z;Ĝn{z gN@fNkRi]&e,˽$£b.$;?\c-awsqۑJu]dJEFm=AyhB2@O[QPi ' ` 8/^_N}/?ׁ>PMt55gn;M|N2y<k3~<+y}ܩ6nh&2FyX8VJg퇚LlM Tn*y9i$0΅OB3zn?j-Sk|S}(edTdO?<62x8Z^2Xf]shZ5<RIg3ri6qqs1xo7k7\FxgZ}=n&ҭ|4<].qmhA,@96|_w w qx2 AxGJ~wZj)\7%?G8ōH>>]gЛwn(Izd,p-H63_zvu}{sW}#W4t)W@篽jOc$eqm܉j4=Kf PA`:~6?g vpkGyX-4!K1#wbq޾'9sۦ,{b&2D1v銩TFj?O:M]]ꚶw߸2bȠ ս|_]O߉oND^P/u@$  q^#t&KspC<9pxgu'+u.Wͷ)l5)Y/?xk⫛ *`B~%pv%8_;=M!(bD0A|Uqf,V6ѮXDΏ'A!߆Ne`F{q_V~WP\8`FA)],y'O$WSּ==R,wqD#H8p ⿟6MM O*IxIeGh)R+N-p!no$n÷ Cw6Džo4?85b=zs߯LRN|V:~䈶[G7NA50rfџԟs`sc1 x6I*K#I{2.Vj.Z@qOOz® ?zncf]_Dٓ%)m"@d]< =M\s6g3& h-cXA, 篰P: w4$PɓBt\Ҟ|YOJ#Kfѧ;Es "c'9~^4~2'Y.,I*7Uvҿbt++C[ *e9#:0;a(o>ëFMxX*Զ$9fg(b&ՉLJUߡnFiQ`8O+ 6fK`d{ R1 o]ֹsJjŲBvTvlbN3?@ҔϜ$M^&@7``}I=IXϐfI '?^*i'Y境8}l5ߕ*xVN[)) 8qʐ6э; 2˖@AP*=A++8 v=S|FВ):cn^Ts35O ;g$}*XY w2~^:JϔSIqqp)a3c9:v QN`pOnV h}Mݑ{Tp$Rɷhr*/LzVr|4DC3AqmS<~ P0'joޥi"vyzп\nK@鞹=:։ iqSfL>ӒJ&m sӃ=GNVw`^>"| 934jī,Fy<c$1=jڐcRpe;I; Ώɔa8\$;wQLAnh\{T\ǘcr?H.vQ~SvU&cz밁dSFGJ*#,1O~:)8fՇ"6ȑ1<~L2HYYzH7g<Ϧ)P $FWl`?9=9ƪFyÕҹlI vh_i:c>ޝC2f|Đ;PUɼml9=xVmc3 2@#YKe"8vh;pBppsf&5?2+m8=J)§uϠd$"u'M qp1I&fh7)xӵsNbl VP~eabI 2 `tU(iL~Y s*F8l7d{~RmF&Y-WL.2).$;|'>m>Zc卤MR :t;<u&ak|}O",|.1C!On=^RV.F>#o4F5E{2~U m9f1$<=k%[`6yrBa뎴x$U/qƅvߵdLʱ'D(n9VmH!D`}pxՃá2 ds8 ˂qEC"|Z'\g<~.hlp0;}x*Eع2ycMIlgc/c:}7hA833][÷6Czn!r@ok~o)@m@8~[[xe^|yqFl3`Z> v^)/ YB+IH{O=+]c|=+[wx-/R+VnG ^ťiˆ?~X8trw[x$ev\n`2N=:~od.IWe=@S_;^M? 1V;pFXώs5U3 HT0qϵ9C+5J'̙!v dcЏinC> l$fWxojVtx =>RTeI^R!PU6 Қ]Dd 1O.`9FQ!(ńj#3x*:u'zj̹(-vZF9 ޞc9 GhZ"y3r6ՍHl{zd ߽H۴\ ߻nC+ab*'|lLc)K3 :ԧ煾pG$+5Qi5PSHH$}ѕΛ(i>OZsф3޶*FΪIcF3ңgQ duҢʫ]FA4AY+qyBa5dN)# BRHaDH Fp_ӓ5CmeÓ<{R8POH#>\(V#jm3J:ǖ1u(\'?֢|j `>5mH|JsU 1WR@ )匄z3H#4aԑ;9Ƴlp͝Ď:e<#"jcI0 dv $C"#m{ SKRT);0=y@FޟjM\I 0L\Ɗ4ߚf;mPK1p(3:ܧfXO1ǯ?ҕuFI]XP3Ͽ?wU% bAO2H%rH!IQ̘0- ̤KŤ*Ͽ<  O*C58ܫ +zT[ȍTC(QrpO\Vej)\mu!e;nwgs'(p`z8ܤ!wG^OaSvmnL}>< **L:}j$R)c}:HvØ\ yw Hę?8\'y\QQnマ/(M/^.Ѵ³[O&dU 2(_IEu@9Pۦ T)$sj# 둓x8䙪C5LrdڥO#=\nrAmLy[ :zR3G%pZA4Db(ʆi$P,vץNw쟼b=~OAUaA :NB[ҬQE֩anQu'5rUBl sqӃz8$FLg9n?k5_ +`唀58n !<|*wdS/Gx_wHԐ)o$Yⶌ!S/$u+ZI!!38 }>lΑ <Z&@9=AҾo_7a4)E YڻPpzjd5>#Gy˿k+)O2H&7gz(>X~ɟ_/&na+;ki 3 @P9'}˾5lxH;ąW~DHq+&V5 wVuWVڌLw; ,@q~|hB=k^V͖)`q `~|_6s`W2wU-/Koᶯ򛉼?n&ʑla뜎etMVdy݁GqGOuh~lQiyAjYޱ>NҸP1_vI1>AVOExb&ޅ={Lnu 1 (xZSnşjw㯃Օ-iegN =byR~EMcK&V1qqU/nı (8$k>.Z7ŽNtQ_i6zjǓZD2? 9uE>'<#j=H^DD?!$5~Yk>a K-ʏ0:<pyzৄu'R]ӽBrNkkk_vOs_-࿎<rI2[pfdDC(ۃ¹?JΝ \58,W<̺!g͖|C6Abst_%xiox+O@zW !ݕ8ץS?/i$o!ҡ g nkX8=N 7)@ `㞤׈˟nOi{X..V|+7 eAZ{ltwߒ--K Zصzßxo?¾XiѪ,LNXZxs$|u$sDd C:aR1z ??w,%H70oL~$rw@GdL.HzO실|QxSEP!simee(XpnȯtUu&ܪID&D.!H;4MD4)+/Cে <Դ- /z Qpwdj{3 `hq}yMaR;22̒.Uߓ)c r#X*ZxpN19Y]}_j6i <񞕍YƎ:綊'Vehg0y=x*l0 n:xϭA3:"5sT_Q pr6STƣdr__0luXV "ݘrk8Ic)B<;J]Fvץ_.4&Ivb ;#/"q@}r$"Bg'ҫ/oc ʿ˱d/ 2NNrzqOVc6V~y~\>]U[q 8c;R?wH ̍#J!9$rsϠUF@ vH0\$9)_=z{V p}s\1$s;JA%PӨi$IGLՓsGPzUxfs噆HB:T"\4X2"8~&]/m1?_š%\ #ISldgUe qǠFuBզHۃ{J J!IBn]XI#3 8|wTq6&F[`NzUYʬIPGۈi#2HٔD>n5+q͸31lӟYZUpQߑ4mɄc`s{PMD30V﷞1лjHNЮ0\`t=zΰhaLx{5͒6 ^*COb[.75l'oo^?I +FFen ʼnTnŸ8~AvVFZ#2F'kA8liLsv=sT-o嬨~j,R:_pGӯ=FY#`| 2OzAIV&cZYd=0e1'z g.V1@ I냞Y$bv?tj,CH(>ECce Acxi7Ya:UepR" _= 1.U$xөH߈,"d|ߧQ3GDQAo sOk)]2$\3o@ Vڣ24Y˹I>*0=D(9^@NX[  AVN`k !%+I{=+,!*r{{1O5ȒD|xngzUh:=ϫj~%L)f8hZզ"@ܽGzTcg6ٹ3:k {fR iǘ m>4Կl/}GP2~K;3zjBc\4!?6ݻ@u4d7m$rHT.1v| X]'ú`F}y xvx1ЬFezÙ,BKSqn8  ocdp+/%ڬJюz=1^'~_nw$TmdDwiO]0c ),:9'Wb1!;s~=)c1 w|NGY%)'i֤$/q Gk@bX'D;> NIQyq{P?f!X4.?$HQ98ni|(RzMh{YA&ǥsC$CxϰMY 1Ha@c>[w(w1duVM-Dpŕ\@<`68?W]x~hQLaX tO8߷&" |._cȯUŒ[y6%vH9Rck֬mnf&@,2gֽR욍ch$ڻ) sm90A=x5Sz xX.)Xg#n=w^8s.p1,/nm9|US؞$gwr`=c+ԧrMnxXn 9s"V8 2xu=-56#8' g򭥃Y\-Ic!3zu=km{XjqH5RSY'Q@VuR.RKvRZ9ԗ^8\i%gv``q^xڭLd#A~ *+U pё92hܡ@^`OFh@ SJI/q_Iv|0y9NHL34l^= V~o+)$\Y4&&YU1Plq#. ^*s 1OGd$Ԥ!dc<~0ޤLŁbݞH9qՈ#1*9bl<:T)0)8W@Np1]ôTlWL rD|-k> !1vfxN:_H3nS J_[Mc4G/66I!խ.oCH0BK,3Mzx*öp6ܨ6'ҭµşkY={gi+W߄ǏW,A3{ #ҮzE"c)p} @V՞R䳐B!b8rg3ǧD1Hf8*FX:w=8OAvĜIOR:Ƞ'/=_f0hHW[0? "Y |`9q֜`Dm ='?oYWU lx9Yf|nBx֞v q5o q2~X:0c #ҠP-a#[=֕U^QԖ#wj sªG+%'rgs&%r[_8>>_dlۿJS+IF eYdӏnޕ^D%0<'==}L H *7mfu \/x~,xI$t,eOϭQkXb\d֮Qͧ񕗏o3֓G#)CTLτ=_j?/-Q0[%TcNOCӂG "Dȹ?RNsom]Wɨ29|=Z>R[ihL'gkG5E[ ĺX3;OJ@#>-^ܴڵ߇vInLM)H =K 閑\xtmO.00GNּb? ^%wѾ%j=Inlp[i?L.4;{]aI/XߨkX0~.V]^[j5xo6.^}Iѕ];oJx_/_i Y,٨/#H#+%)'}o&ZA[uH9-e;F:8\³=eO?Ӡ>xog+ys "72Q;[׼_ }ZjUgi=>ƿ"ؿ-cMoK'0:C-'T7I`o#:մ7*‘N~x7kO>7dž4Fʼn_%ͣ%B ch穯bwtz%o1칏DZ3ӵ}%> 2ƿgmaybHR0+A9|laR> ӵouaᤎ% prEy>:N[MB><[/UO|w+Ylż2c8Qt˛x_DT_vUx*wޥ6[z4 @?G9㌓Ҿe׵.f4y!' FHx5C&$0zhĒH囓@nztU{}"ɕJ+nUzSS[ DG?Wxy,|So}]e-- !Cqx`~ן~$T6GϙajiPR̾CxcZox8!t)-K&O  gڽZU bPOҧPdP'ssTUL-`3zQS.[3I2e3\|ψFcJ6lwɮ<8ؼ[ O\*N$f+Gjɜׁ o𞋥i,ccU.ٱZ% K ǩ#a=l(<}T[.?\t#qlVI݈!/n#90qqߊH&+( rxU$ EQD@;$u%X0Ҧ_"e8`2&9֢QіQ[z{b-#` pO~+?cfiI`Od8sS:-as##1]+1s'AzFS4 cu~ &ZTŜdw>Z+QJy*X?\]cݙ ?zsZf;?Ϸ=}j)#Y aN01N9NE]B}J`B^ZOXkV_l6B1pѮcq䐙BXy7KȤoߓ-oQ>^8>(D9$ρ6~ AhWNA"U59{i"E`3bk(O*GNy /oxjApJIq&638EQ FKC渎"n2\)9Ԓ I6=Fur@)*GdsUG,y4 O#I?ZQHvFa⣁=ڔe),D}}:EXbD@u''>w p|&7-YHN=1QRHO_~]T09ߎzZ$3[ɼ dTWMx1(]R d&`r<TT%>O?5]Ehd<+dS1=@vE89ɻ̘ O<翷׭6XLr ?08/d8NjR52S[|&yzgަM Y@DG cF~}i[l*? Vk"BW=Joph,#-߶AuvЫNFP s;̤¶[bKu=@j 프ԍ<]ywnAϯZD(>qt=;[( Yd̋p)?eYF A?#Qiaei@מ(}8*g9g(rEQ[rU]#])sMJhi`9 4 Gޥ52*gx+#skֿj߃:s+X#s@_Sכj߷/í=Ku] 3ưc>Lq[ ~| 7nr1)]Jʪy鞽~hj_ҋS)M}3Fqex>14nO7K-4o#)pwr{rZ|`ag}X+8g=:50(ku9f.pOP:5?VMc1G #SMk:ƬK4,N֫ cy?7=ywd0L\J2s9PE}sWc\Hc x_=Sm FE[ϳ˂pI׌QHkzvs3(+q d;qWQjH^'va\ 3xbWѼ@-TH# L}pFO~"7?$! 9s;${iBITEy =>2"%VgPmARdlp=FC^`WpO֔T FJRIT& 'Qӭ+ bٲY.fv, dS$H&@~>83suV4EKq7̤2IC\TXKvVQGna  9ϥ* )2W=0;I93!9p2o?wR)@bVFGsO0+!O̠jHc\;ʞ8Hk9 10)"8iG N~$jaʡwaba&1TYG#UeҜ!W={!+%hy5,r)wQBO5l y{gڬn`6*L~5Y13|u>yȉiT+?3ɑ( YnqЮ e1֩fsE.`nTl#J-Cے8;s?,+/$\dmǰ$PNx϶kzn(6}/ji }Ad=C+uXy".['+ /૸>l %,N~9ꉷ!Uq*0q5г* G@?\d~4őJs埙@SiXq p}{ h@s}?U䛱DN|(DJ,>|n$*˕MXT>7Z/+*2I"ܮ̭KlVْ01ҞT4U(8@yϭV/5 nn~U!Kx\8f5+ɶ?-aDRIOab1=sPympxjRmݖo$H!F3ߞ%W`yZm#;U\lq<Jr %oSd3Ѭճl??1 G%OФE M"gq"fV+ˌq4KSʹ/tLVĥw5wI<1x[D,[.M@ ~3[ez0.w$.xb8rDؖ5BC"BQ'>G$r0&87'M=0]ɻw4!k,dPQmlmg@`B+T JUi\#:}jB!Oq*i(8IHo+ B->^H;T,JlH'OƩ,@+ SbE$9ۓӜ~8.€+4E@2Fgzqӥ-ħ|b`3ӯ2O:HVӌz(QÏ]pNd OӓiѼqYLѿ͑=֣_"06H$b6=+5sb{,4P99ퟩ2% ;8lg#bGFKV1מ4ؤrDCdݒs&h[ JɽxWhy@Aҫēyg' aHZ5Y!Pǯ#agr(6;1Ġx8>ƕ&Qk(WhןaD2aMdvfڟ('ar.H$cR 0~=!R*.1<VWf;yS$ eǸ+8GՇA g1IX AF\psSĥA2;>Uxmw!*Ajrc"2~>?ƺck1Dc-q;%dl,=5]1"@K~2O=+* I A{~I#2а^DE. nn:UVeP1_Zcm*X|dt5+Hdi${}n1cZƓRm6/LF[aO^Wlw #rێs?3Sʖ\9<\ʤ* xT}:TZ4Ibtkc$FW C=9*4HH߼S5%sH "ѐFOq}}UUP6,z gx_eg)LfXO(1ǯ87'*H<9W=ꄳ$Y0$b\zq Za4T~a'q] 8*\.~A6a`\dHYY s`[̨0HZ?MV8S[0q@9+ #걽-d:y=}t/ ҁܪr#۶k-W-&}jE]"t'G| ]oep!nw v{sZ^%EgYR `'\pzI'<{@|mP{g/C⮠e'N%2[Gb?+5?&,iַ<$Hs!2=L^G}m ,L:m1r=^}8Rƭy\NkkQ狵[RNzλ]$9=zginVYv N$ԃZ{5}D7S~ 102Y#gQ4.8 o%_]دǧϼđۏ]4e;sO$>[;껟?OQUlg;q^Y{ƚM hmJ"{:^8ıd(FϪ5oڽGBb@ ~W?>+j0k)p58JS#o0rűKdar鮼S NVΫr{T=㲁>n:ki_sۏndHB. 9û,NH>fi;;5(˂qԜ4K1 YpxVn$2Б* 4v*A"'$`v&#_œ Ǡ0o472ۃm0hBcq?TS)$YpIZ`,%;K#7)#2>&K@'uއchrM#m%N:z2U`MH~U_j= 02oݮyrv|Ap}1r2mnZ(TJ[ =*"10AnPO$d95(Hi0b8gLPrT$B!ܾccY(x9R0r$(N㵑2M;Fs*i H>ms `w☐yj9#ڵIEʃ'cҕ,Ue=qx#X׌M 3ae@қ#om# D8攳&<CjHل n1{kw  7[>WW{rpJ?z⭮4OVin-"9!J}G)դB[A,6wnh]|Þ8䯷]?Aq9N*r1W^WNLc#نG0.hyL 8lzT9>`2$alBIb)#wS5c0I+aӾ)̓+-j<^a߹1B1o"N´: tR"+Kc =YP9q=F2ⲽ2។'01U{0. Jp \}q49$XEpX.3A2$ҳ \g Nz{U $H COCg|i9 hFJl,sjxszvUe*ޙ;j",n7n;B*5OB7vȣr9uUyY=xP\2s)#TH: =ib$@Ǩ.NelNAFnس)]FV61B,d1Y[v@F:~yV5H*qg1˸TU\`/~$J̱ ݫ&{krVRO͌oʑNPeqWv\4D^6#"|Bg&-ߍIgssҨvB2;{S[v^8힔 ƮFy- y'zԷZ4>IvmjL`N <|*y !ޓ йF8%9anhY3\|ƥFʈ6Deڄa^G~\Xd2~z-sSu?\bi#m ޕGb9>5J"u.bav-\u邠kb>kJ)4pTʿc,HoHc;*v۞k.{ -ʤ$ֽ\5FcM궻6Tmbʋl Iy;O=~aE7)+|>;jd(i6(RN2F9ϭl9FPb<ԲJns?U;|j ߓjf/)Q?͝;5~уVDM2Y2NiPػ@@sD>P>x")Y0Cz{sYTK0FttT-3hF27]1Pby}*PI\@FYBy`OƦW"E$@%9ך'sYxlt ̲c <}1SsWث,r[HOۦpH?Jh7c38W1koC__Ut]JFp,O'~Q.JeI⇑T"H0})rjx˙XQ銋0C syʙp9 GI&gb%p>R~6G@# ç!FU'8I;I7;پUTVm9c:3?ʑ ̏(,8߷cՈgiD̦Y{ c=B Ӳ*yn;9PE,B A^Fӡԙg` l%|'s!!-޼ j)p O9ץB^9uTo,*)K3)]`/l-l$; eT20S pVOj۬r@L ,vDvFN}1T=ǩ!"+$8>^6cMS..b׷cӯjo1a$d`wZRDe[~z6 xۆ1Yq0WWKWL9׿J|΋,qFD$9ȍ#d{HiXܵ#J-Fp3v"~֭,Us+tcRYXm\?Z~|ߺd_کE[2'rj{NmUdJE ,)&zVF.:mV V,y_iLK8@D8$d`Js0eWG;Sq ™RBO +r@CMI<^wl#vF Ѓ?Z+1Tij8GLl4lW%nheg<+Ji4MZpVs]Ϯ:~uk2bۆ y#_*l"). Gwy*%uTLI 4#;ː !B2=Wj_ *+FT<5lO00Rt?+Do fI\NXu?Rxw/!q.kmg u`3[|d#yFHdjɁ('GUVDy` j #u<=_Fe̓#u!p#~7?{?ٚOtl:󴚇Qr& ` c^]x\Y֫ȼk%oyJDK? _'- j5嫪H[sB5zk3M[al`L@8>iE4f0AgjpyL/94Dr?ngشрXƖcך꿷#A"$|J ep|#{T{8Q{IgBCx{K^y69n\㞾皷_Sa ͕ճ=A־o Z=❵vO杢7ڟ߉{o\m cs0~5ڽ?mnw?%iY`u1yl~Yӂ8J3E(ɉh*b0WiJv2f0zsGݗfX(ANz؀6Њ $}{SQJ?/\M9=KsȬBybOLʒ `qǰ0I@RX pOR+٢B'9OT; c8ǽK o$`)==ϥ Ir6l`|?(=Z'^|?JF'aps)BoctJ}s}i&,fr>cF0}N}*GT(GS#x!zM ~'0=ɲE $5*1HW8뵎0j  Cg>1?h=j9m[ XIU86;StrG#~PɑOo&!sP$H]Bɺ6,n< w H{G'p=O t9䚤Հ~{Ծ6s֜d̸$@FROW=Қ#'0Y`1Oq6#-JgPY1jBU{֓WO-C╣eoҡBs;daީ{?B.2Й]Y<˱?. :SO'.$g4)H#?eAXPSPC0ı*䀌aPp=](XC[ >_T)/4h{z&U1p`tlԷs2 4F~`9\LV$a QDc*NAL52E\+[*ղ$ʪQ[{s׷Nży(Fx"e%; 6D3+:5CA" FF#Cv28'p:UFLYS4kMmM!X$#x$u9ǕSv#{ҫL/Y{ӊ9pG#9*jhcىpެk&`8R ="-A㷷S%f2Hlm5t7yw搫G :incs\< ~PW9fWBV  ;׮YUH-)? .Ǵ29#zve𭹲kO3J|#=;vW5(Վ"ImU`V'_C_] wTWr8tym#2f]BUT|}?Zߴy&fYK$ef9`޿֒0*܌('1B>x#PBXggQ ë\z ~#iBH.8JsBP~W8yϽ־g+"j֞Wh}xP [D^`hu'v#HS*[%q=e8',LqOAP"Qƣ#e<>,9 .ާb1)#ᄅWEL%-yo sjZW]b2"?"@19փKQҮ9$<|$\ǿ֥XԐ.7>gΒgKB"#7$~\OuB~3lK t#ң`,&6Rh閐0OSR#( ֡*Πϊe8eb:Vm0i~q֧ϙ@\\LR_J9\d(I럭mM=;dڀmdTW=O5pu+'idvN>fNG?JcO;/?k4I. >p>ϧlq"߮y#ףA\᭦wg2wr6 < ZvY!\l >2GSU(j$i2 dzNfWaJ1-O~YmT,pg, 䎙>#{ vU U-awGe@eڤ1$t2CU8WujIڣ}uiY~\^ b!d&P)>*<2ol9$מԌ]qR ǵ1_5E>s.LW !Y0PrHAԤ1!iIuv#,,F΍ dƸ+;GPa`F d-Ts7 `{sLuY~ 1De99#i٤Thbz9~T6tXx$zgJBcx4,ЈB<}(Huǧnh$2ʤ?f)0[#gd˕IP89@^ZZt*=ߵP;PF:= Uݰߞy=)1z2ĀB69=?@n. '(wUU%rnXv'қn]ڄ7=3>Y\,V6~wKN.˅=lV}Tt}۱> j8YՐ2ᜯ~B)"_)@ QOƓr[0W+\98cUMҼ}Vh'~Ƒ.6,:uP.evȥB_rzgҤ#Y叇N;vZ)#l#?IƑ)60pH}h/4+HN@=:O~Z1(HI'Xχb,#9>4PӬ1ٞGR=tq:.s$CϿJ <%mh]x߹㯭xipBJ Ҽ{X~R1_uFf#)c$SU#혚 6䃒;g;ۣ$A/]Zc@lMsw!}{s~"|EiNo+ӓzk~8|U t~犊{b\Un׿moZK 4~@ fkZK W)AmeKR~X,4}9BO:;dKWx9y{áTgazc :y.uJBnn_̙~ ƪdjx~ꟶ{-KQZNIHdRW"w{ҒzC!\ۻK-AS++-3T`T2ۓJ1e))*H_-8#*hX`d۟_cYɽLSz?Zp%6B1٧NCqFU’ 0V` ǯzՀaʬD}@29 rXfQ(۴?NYhUp?+\`pFGQ_ʳdfLEa2.ూ~W 2x9qT^Xfdm\Y!qAS&& a(9 A=)aIJ)8c#4>%UA}1Mgq#e =:`W;i'aFQF;,{x?UydfmFN3+8e`Tcj@0f N cVl;~Wy$#,N #gpzݪ;FUeϨ?RἨ̎N8jve1m=?dkdcu{iJ73 =k㨠HՐAcIdo{syՅM̖E( =[lE&YXE99 r? Kxa-Y4Gp9a?uouS,Sʀ AB_SpTY$v 0WcyuT]Ky[#p#ZuJ~e c#>7DNMZ[˺if u_azVrE&"$ܡ2A0@2~414RC3F8=)<1n@+߱\Y_ɍ7;Ŏҿw}0%*<܌ !O\ c (u: ECnPDj?NI ~ߑ$>NA9J2 51VBcLL,Tu*RMw>*#6rtTy_ZaVx5O*UnwnʓHsX2`)M6W,`wRieTR@sw#Xԥ_uv#8h ? :'`4b́ Ǹn&V v6#\$JaHcŕ#FNzQ@A |GUb+yq8VW$g5;&8ڼaNOOzl@qW8?"JngCkb\PFb9SҀKI!~w3˿?/;1^jzoYp&asG'9lR8g)IeSqzIr%,2#gPt^ t翽1Ku 2F*Aힹz;#R*IKr/>9x| pvA}jBR%|nf}*L~? ?('[tE@$OҪ- ɕ5{slлY[b92c ?K#%@ X88sWeb9ud&4*xb1;.3# F3WU'9(\o/p$_?Nų~n{2z_1b9aLg%~~ ßz,XEH>rT.nPxʏӊ_2YlBY|;t@\Ɓܖ3{SlBѳ4R<1޵w YTpOApzĠS@ `ğʩ$hۗ3(RCs1PLBK#;H 8=?ZbH~X[xo?W yEMMǸzb1Sd3ȭcgUxܭ,ᗏ-8Q~]G"`Lh%xC#] xz+͍Hc2 pp;,L ^Ytk~޿hk70ԁ3c=s -k\=cxS= QBM $㜜qx7/9 xJb??5ɥ{Em^:Wk/hE!bQNwo8^Q$I-Žq62ߦd⿝}c7uټOzgqYԢJYn'tM $ַ3k>lnGw`9 ##۷S^ABXh'60l5+J-iJc%zlAډڅܥZG|=:}kb5Q&{nL|iw/ 6#@u+ʵ?[v}W\֯ A'#ֲ"pUE.ޘBCֺw6ͣ 0>Y$EBq&%{\/B8QATg:dybЀz<9BzOJc,X#Ht< tcPbG99'Jc* Vu G<~,lJ SG+#wNac\ԅ_%@#EFvvC4Hr`r) #aHnOwԹwU\}h O R ߃HF3sH GN+*:/EA,OjcdqZ i1DHy#Ʋ3s}Llx4#jpH%w>RhJvRv i۟*GNގfl)\xB¯zXVvn1Pn!粓)e)ٻ''ӟJF'byzr>@sRf伌01sOGe+!CT OR)wIB^XY(piB[pN[q<n۴6])*ztץ(|)lg$~X \ c GUj\BQx52͖Po  wLhG@zw ô{sS&$Q|:YRZ7Q vP8D.[0s)O˭8^໕I瑌dut)T+۰a<;];#ʏG,aFRe$3fcBB[+$g?z];YX1=@Ia _aQ YWo|  )nO։"0bPVs܂-ph9Ȧ)/'ƞA-OִDI`f |h$O`}h;3cm|,JBHsu⛂ (%}QD8ԫ~WqNlfi֐~h*f? $v|ԛv&$fa9'zR5]]֢lf[VtDnSU/:[KYoSA3=ML Gq^}{:_ kpӵhUѳ={VRF]N'ҥf&w(R8?v~ʹ)۸*n RƱc8c#}i2۽P`woi!UviT=is;`z V@mȪ m)9<ԇG d``~G3gD5cV܀ws3SCs:đ),Cg<`g ':K^>8hPY}v`O= @ Zj~ mVўh3mR|sbi\Ri8 ifoR"G=1]'EKN}=OP^''=K=Ʈ%]hoAma)v@9<`ꋴ[sS1e\FUv3" 8ci4Fd.W O^$I1|ds)C@9YĖBϧ~k7XgcU1p|3 8cWcFT둁֧JP.ӞN)!6ʃS±/Uh) # &hԪE !LTɢ]u;qMRH!PPx]ϝϻTd.QŀM\I$a88QF' nH<1J+ӯO,\8#ˁ¤b쏮tIdHJQ!(eP G9#ךsF$ےG995eJjN1k$G8dѓsLArm(209ڽ?_g0\+,Y#5HS#}EH38;:bNC&0wm<R&҄${!i7 p`qȨ8e EbS?Jńlz٣ v9{T{AG#S! ^Iy2CHN?8[b!g' NjMIa\z}ri&B\p=+X،3;v~zlHP"럭:RW99S K¾r8P& "/sZl'?Vžn*H~5#s|ߕ~5Yact.~Vd$Kn%tcZ:2mS2A9=h@d@G7N}jp.`(?#? \rI7pT^GmI^E%-p]8"eR3ڙ qIy<9Q9Z#W wvzYFw #e wmP-8Ryrc"Y$88$q۷BPpEڢ3Hwg'q`*QpXIQ@ pzI.#kyxlx;䅊̋vYK($cV-ޣ[+^AhKTcԞG_ʸc=[TXFP>%OzuB=A,AbtF0{u? qM I_'?GQjWdR1OWPvl 4 ?϶p5QVt9V3 Cq9~U3(ond1zUFr^^8f?^?kJB._mabx=uP܉P!WlL27c=k#Rv͑5_-~<}'d3<1 bĞ ƣ"_^1|%5bI5 -C!x cKLdy?m:{k\kĘ BY03c8ҿ \iAM:0X&'J~+C&*3׎Iࡾ?WMž,&x>oϟQ_y2sJBʡUNJHɦNfvdS#v`9`=zw־2|OׂW~#B0\J9`ӊtj`n,x&Z52`szQ.VOuꚊ07H33Ó@Tnx&!RC1q¤r@qQH "$GQc`84)?Iu۞mHC8; sQ8A"G==R@Y1imp8 )/Ji~::L7ld1Z)n s]"sA =y Tj{~{ ;"d;U(?O?x!C6sE) >}W'l␒&ڂF8"@Y`m<ƁEnG8֑*l+M_8@X| bGSo;*2 V#4g˿?;k v#8Lq#ÒzrQ"#~&P'`8 jO$ (}܂o5$9RQ%m>Uld럠4w(`f™r Y(2y'ha  qqnWg2cӐ)?&IڮXC8ԋ`L L9ȏ6:HlF*aN1P$d R09#iǗ 3Uɢ,NNABx>lVCj]bS d†_$T9YN9%@xN_,e'q?jjde :vHrc@ۋ`2a~J&7LBRH#,Ur[cr$bm6iy=):Dd$}xD~ET2S__^{f+(? Tpy{R,{>} _#`I)Y݄%vssKB;Jm+ s8*@JgZ$.A2I#=v' .p1vB#E #K{RegUb ^ @HU#4WoqA"Uo ?Mj4-"Fp@8Q3.£3B1e>c{cA]ɂ I]g8$ ՐA8ڊ1s5@̫Ќl2## CkI=rhrNs2/JpUeFE#UOG gތ@t:9 Og=k%r,d$e'|0"+)@o@{yӊ$G+Uj\ VC" ˷vM/F %z9-߿Lr)e.Du]a=OJ9eXm>w[Wڏ>kFuKBaaߏ?:U^ L>P˜}*7MmDc!Ux>K 1=nkUXYG;D[`h{xWa(sF9a K#FuYZ@cw1e ׯ9RoN,AY*&邍(댎G_Ƙdxc U@Kn oj, ,l&0elT7bwF@1_SגHnfA΃m>Ktpg*#~_ k>ķ^vpэ ;K>jm'懃|Znt}KsrWLSCƧ#bnBrICTa_3^i$m[iHmr:dA9GM|OsЁ'>C#X>O_p:@hE<0py]ST%ݓzC#F]K" Cy8#<:*R@PWf~@ߧ]#"ïswAY#vINYdOI9uIzrE ($WaJŒ]Ƈwy XrO#8bQ w8jApRեgIW#'Afxf6"XI瞤]#sED#)Bd##^ټ`2p1~$f'.{ztu|T:4dF7rLΞb˩YD(J8N uviAru[`?ֲrCi葦]lLi fR5]@r3!~igoprmqs8מZc~1;@sp:(g"PocD+)+E)Ny#J1(v!?WiF˭è# }LE~eQKT{6 ܁Q'sZJ>?nhHđ=8?*wW^9`1dV59'|K"ïZ{}-Z a@ ?cZeL|yquo뺓088vy%RұCnTFSv5M dd9844`àZn89*F0QN 53HVݎ7tl!s g4c'<+&$?αFS$!Uq#n$p00֚OMh]yDZ1Wa^= K Q}{򡨢<نE(la 9VɴrN78_nQXlȤܘǯ8Oہ+ɻ /p"6|d 1rt'ڜNpz]3cjG-#)4PbJnT\_m|#L13HU@r gI81,22Iv#8i +O֢RPZib'8;Ysɭ/$3a|~EOwn]6xOB Y HIT`3œrkr08u!X&WQW M:20X/FG^NjBe*ێH<ZȐ4͐@<=!C}へ+ 0#ps0w#~J LhޤRg\+#?7n8 "1d(B˹B `+3ӲQ-Sڡ7gv \@ٍ#F-bJ8ǿ|Qmw('B~:bQ09yD}sTܡ?i7r,AcrrMTWfU} ]d'}~mXr@4#;N99"Llcp{Ufa>Rc0F3zSw8We?*BR.WUu[P,9ZrC lAHo%R"sM<H4"n=Ďʿ1}ync 8*w1U< 7"%]I^ǯN` g47c aj>BDlAU0sD/i@'*GR*"2i'9LbGs̥88.KщMfi G\C!?(H$ PE3rv|v3>cl*;z B`*)wa9Q4RWYcR08A5ReEo`dz{LjEa})gT %O)k 3wP Uw'v)exAU$O!'Jy$SYX=&PG ( (e$?8W Ȑ=U(G@\JP@,<Ὡ)0Xh#,fBcޑ|ь緿rQǭ;p>rI9=I8i†)XvϖA5;eSH}X 'j9c0`n? RdaAȤe*rsaC6p;gvAosf\b P76*-<㝍8" Y p@W |:sC1H[u;ym1[U}xR!ĝ e9#zSd)609gU$sR;L-'+b(يFC~gQ 91Py"A" 9^z}jf 1>fCF8 FO֧8lV@EiI]YTdMdfQ)7(8;i oҬtn`sT´Q*{ҲH0{ t˹UM4@ooiKdlHÃ1 i^H> } s,c sLZt5"Գ 0$D?ETp]zlIV:pυ{|nK.8en>T4:,n)EFIbs6Mқ\Ӵ[X[d%*0BLdW⮞tCs;[('‘8>goP𗋬obX-V/C* t3Zs9>}|EIo1+|;ZzOk'K6޹=:Ϸ|W^7W1) ѿ#(q] 䴔smעik;PU.'LbPRtTDYҤ ͌ +4,K1,:m\ש$w؁3s=蹏1ȅ=_ӎ5p]#9_oj$Zc#2mps7:oSLWKK [tڭ pFAǧ,1YԆ8ڢ3A vdAxr*Zqo%*OzmJ2HpN>~k1X#ןzD$Y$2A$:* _Li&[,O(1NRo =雎.1bcPq<\vAk1T}Da-c 47!G`ܦ[?ҟpN{ƛoV(hm}Y 7 8=zfFC)`*zafyw1ڃ`֠Y3 Ib00¾Y4ᱏdj%tf}pH'+Hgiesgκ kUc uk)V{; x'5,sԅC8-if  ߌ.v`#\s#⿝Mk=b"A66H95ޯʘS%Zu;ޯNpj^—QQS &3ly-%q(zWkQ]qC7M~v9j* LzDyCҏUCkZ/v1kؑǷZ}_լΗ4XHN``s|[c+~2ܟ55 G쁷;KLw `z%oef{"~bIf\@/YIbCqimf,}MbƆdeG,zAxczƪ0MRT uQD1 QHaS 9`@[STHK) G@KR;{s+6 4PRxE `UTHltXP p3|N*ZK Gz @,|P1Ws8`Ne`FVHYcb44  _¢fB#&@ "LxϧYNp˾UA9Qw,w1@T𬡙N9pGSpr$f!?7*\zk0Kg ':9 Qhݰ璟֦cFhe[$bLL#0"Fp+9JEsԐwԀw qڞr܎?Ͻ!,#f)RM(jlv@2͇ ޤQGi.UryD(H:~ǚ3HbۓsQI YnyČl.zf}F 8fF@&`Ji$E8lNv)MUʡ!n5n@3&c)!dSKP4mFx!kk—./L 4PlpBǽ3Hl cEjB-<8k`,`7s3!X pOaq;ŒT#$$1׭">7jcN{$6Sy\vlb6\3.F Bd12Iښ6+۟Ɲ:#אO161ci GR`܌vCrE)f1㌆~\Eئń>dvJZkpBNj"Xǻڻyԃq?w+ӁMl%7.?dfv 6"Oa[#¬,Į26;RFpQS!9PP u\y2g?Ȭ.hˁA^XJۂ=35%.ۑp+t4ECqQKRVrw"<4E¢)r Vno2]aW#*y=1U4@=dp8OD&'ljҢnןҥSԉKrZA8OLy jK-NF#;JU}?>l #~Q>ڧ93@5Ľ7 5|,3P1/'x> ?Cec;@#'d߾+_o<+KlR}pq+V񗍯l(cFca8H#A᪴}{4>VD)1T m$tG=?a' P?{6)Z.`&2Fr?5we4pq=;ּʱ式^-4*$ys<Ƙ+!tl;w03I#ŏ8I. t,2qzbbfC B8S|#Lvf#) LYX鞂]+,T& U7~ҙ9,2}>Xm pq׵"6(eg};I-RʎL)$gҪW'p}ՕeZ\H줶jQHDJ#bSJ[*r,))#k8 FZԇhR*gGL0S_ʶAG`E\ɈqUO0ۂΦc ;F7 Nݪ 6b3Oj)VFP[`I8Qij?:%ܩmۂэ(><~t֨I#9 U0fnr9o8S#Ҙ ɸvq!(ʀ3!~$LH2Us`cj@d%%/=B[qR 95;%MˀN8=igr ?u?˒`W r~5+U1 *5C+6G<ݚoѳ#<h((,Yl/Ah*dBii3e,UVr r}VªL⛓fn*NpvzhU639Tp)0 \5QCDdP>G'#nU*!'|e;7!]y=M\>J£i#,EK:0>nNh˜퓸I(B7+vVV*;M\~ltHH8 {֭&UːpQnglv>FH ґVE`d3%"L,B n*$iu\7̽@>**¡l䜚a8)])dHi^wp3MZD-݇Q#dFr6Tm}+9&Keey?`u_'Qj l$xž#_8VFz:{!b0qm GZR7Wm OC [F˜rz0)rǜ=(NS!j @KNyC.F R &^c@$Zj&PG $Jx}峌v?jqvTW|1`['ҵKAPЌpCp:Ӄ2"5snq62Yd*E'pᕋ|1ڵM"QYi\3B~4qhf0ݾ-jOp8gfnT MЎFhjHc(.)UNZ+ےT거;Ԍ r&;)cW֚Tyg'aJAAͷ9?idd Ib9<X,?Zvpv vMfڭ? ܥ@b9Lg'gMXA@q_ojnL lUelu%: 1PRIXF0z d€LE._ϯ+J'*2H JE5L?,H 9$]Jmِ?Glb0?2/?eH!MasU ̌P` U0X74#8r))iWnLb\9Cf$ a̪O"lHehӀUJOoUEYF TqZDl&7oAzI\l0( +k*pH=jOFt*rtzghs/Q]I$w=@R tWQvu>b\_W5_|coڃ>#=ePȮFHt mu$c71Da$Sj F~%tRL"dG'h@zpAr+} (~nqsQHTd17RzI$*)E,?Ԓ)v4LƝR78^()n\ar==(LkR@os`}) TF+Vْ-S1lzt[. 'Cz+"*DmGS%!~Q cjϔ%bB.1PeZ&fz2%Ȑ;FnA*})`@aOSJEU.W+HՈE(9)\#1bGҗ+qcybB##j8Xz\m'ֲrHSULȘmaC12{g\oSH%O7)탚 --;UR%SqZ{\)*df"3}:2h܀o;z@rV?RHycϽhcm`[wsӓOwч9J4opĜ9+V!vUc9B!* ؍ Krqzh$E9`hQ` 4hA(FSbaQ NPIeszFHwGq1fe;@f('{K&Pda?Z6G럞BG}}gyANgsҫ 4 6 LuZ2VLVIzd3h89JwNq1 @%@xE:ԘM`!zz'ddSCh$8X)H8 =}F6eNxm8 rxYhCPy'hUTKrϏaVQ R8=7 i[sd,$'BP/zsJ,ͫe(C] X=x 4y9ݞ?ޕ P,)[HPVe@Ǚ=i푘ł:eYT8J yO͢A+C83>;+> H@bRX4ݐwDA

QP0Kdc󝹧FP@@#S@:{ I$mCH j\3(.AGێuXLKFpZCp9)޻ry;Ps֪z!ї֜Yw{}iBebP6m УO(7q]F tNic#pS@q$PKCUK93Ləb(vQh? n,BxR9x`B?Z qL bdG_)o[U>qͳr6MTJXZq h zlW IN݌‘N*\x%}sN`Nsgr[dofqPʜrėߞE&> hhj,{[\˳)gߕ]}G?z>tR7wH"5$|ex\# eI'v"@y@WL`㹤$8 O4dd06pA*br~EANW`AV*ƭH3y[|@)|y@t> ,á#;Rr2Z|7FzY (JHnX?J62 +# 4IJ|r@̎Č;;zD R|À?x qJN0TG -\b Iå BԍA9$qXGTi$ 09\Rcn@898{m9ld)A%e cPP_d^hl+ F@S`z NUPȪ^f"`mͥL0n)hq6Xj`_v2r:ZE玦ì$aPqEIB(Fr aXa|m*; V(.\GzqϟXz\P7 IV|TAq cNBM+Fp^53v%=G"E`qAX3NlF*DTTZIdҕe@!qÃ"$pK{U-IWbO=iK+|ğw%O߈PҮHMA*YJt:TA(xW/@_QmP6oڳhJE&ʤmP^֛T £6qK sgf;r׃RcDm팂I?AQ&epŁR݆n$d'KR#3:(+ 2zG &@E9^3?֣~U]q?ZTʇhv(z}inp W9ϯЌDG(wH"FX8ԐEB7ezQ"!zP.vm=~*`n `&5Z""ÆҬ)i,Wiy#%Ta?Jo,B")ANj$7r' qmY 8)$Ooڬ)Im |^ NM՜XWbG czR>KXkVrk"ccO7i]I /etn,;v98o=ֿ@=ۿGmec%98^W;Un+įTbfOny:ʼOgʒ K9r\e@ac5ؽrS/zǷů5 >u(e7zm*A$r[^V.g|lcEa*lN2n@FOFbBܟSbnF3;֡i62@}ZGۍ\oC91*vN1ӿ=KBvH Ss TgcVR"%YXBĀF =)"Q y֗q{p[30Q; 8߽BBn "Œa%F3’ @vmCՍIKnx?Q˲Ϲ&і9,zSL"LNSrO-ORd,lH U1vG+B휓ޕ6>X3$XU7 z~>J#2Lh0r"g%a@cY9Bp},vjX[SL?hEe,CoP!:T`Ay8"0Rs9c^r\(PB窅Tf10O9jL/Js$RKޫðUEnv rpyi'. sӂ}}FߕUݐ_jY39| zTD4iÀF0= >c% /JG $6tQ#1۳+ʬUq}>rHaHPzu+g3и>R?GLiU@:]c.# 1$d40Y&lcDgbSzxҟ;0R`gjsjޫ3Od&MdL`qzI<(N,8a* H +=wJ0fgMEUn*6b1@nIhW9s@-p,Ŷ5WnF>I2pG{ӎpp8zpj Yu2z+H!t{)1*H=ia #)R"H\d= /ǍNyc"B@]*_zzlDBHTRvqz~4q iǖ{֡P(L#(;yL տ +3N`_bI`1||ÑT!$933FbNݧ cϿjWe.Ko8Mhu'JXRd7U&*m\~qE+0(G'8" XI?7YJ$|^9!"F@֏0b篵D,0H)3+ؙݘ,zC I$=E w[å80 c&TCʐ3y8jn1no/_ $ʆqPy2w8E#-g܅W댓2$+m l9bAPxoSAvT9\}j I <~'N7sZz_WDc;nFI 7&l'4 = L(`zqL\zT@`4FCqȤM!X *L{ب̮!aRAJe&P { VZVJa%[}nw @9yljDޤx\H N3M]@u'p&anќǭK.6/|r҇pI `6Z<GjA*OsHZr&an3FXv`c+$uWhz;#!2A kdHWɦ $Ƨ +tL, uw&M4Ax;\ yO£.lprR*1)cj\1¥`GU` ةlR8`:ךwIld)W9cIȡs6-N'{en>i8(-$HԀU7cӏZQA?.$>)R|g}dT:xct1_)K~y2;klc1\B>67c̗MT߁'hَ Tg>1I t 46_iH`XLYwSYLckeC1 @9T~O_jyHSXn'$]x"ms7su F3i"m/q5b7+ݔ{7qJ#'_ҦXDaeNc?ơI39U,vqN?JF̾qCtzv$-vޑ2SD,#z8?xHr20@Y{dw4Nc~KC ; PTđш9'߽k=!Nz0Z${ vRc$=ETȠ~YX?*0HOoLcRԘjUʳ3JI ©6q#F?D3$:c?aV |6nҔe脍sJ0`8'#=2fe(>򏙽Iw @bC@n=2eBZ3t9 j{ ^[qla n2#2!eΥe,兑~Q8ҴI# 8&TA13.욂4t`d_GQJ8v,ve;Nj o)bٔcHd7q'b4LrSpcqlzҙF[9^>>bP278}) HYQˆqM).Y^Ú'>,Jt玢_(` != v9'r;`I tӷc| U'< I#X >Ҥ`Pأ$`R9SmP1­X,N$uǰ'Ni cZtmPʑNGL}ek Kd:tS.>n:sQU[h%w5X3$oZm\gPTRU6XH+?Q"6UBy { Qq֎vgplBu=E/c/8/\}EY%Ljm$ڡ+m[۞>Q <zc1.9@{]9h2|f@l;OBݹy@#<|q*? I s҃В9!Hd9yy(%1?Sؘb.;6N0zk6 Vb2~IRV gFk0I){VW4g,#gG]@mo8gzUņNb",2P]<9YjѮ,!m)Vh\vTdֱxzU'/ .ʚ9(˅`IֿAΩj ټKYLܖ 3*q=\WuVMsQ? 7fE d.ras:F]:c VEzVF.@;C96\+D>Xn_ά9Y :8zT0Bv?sZhu\ͷwhc27$皬 Su1b̜:Mb7+aԌu@ ЌWyGb p{fpD(fys(2#yl`(#h8ޚtUXR,r:7S7%yo-229'!r:3$͹!#֥I {X,H8 V/|/% ùeI l#*nE]9?urJA'։IBd,\CfnCicP?=#E$EEFMP [ƣ#p9'Q!n yMv*~_/kdp=ȕx1ʞGQJG#Bf6Aƣ]I&;dU\=*$ʌn8$yvެ=Z98wcR8J@;qILD1I`8}i "Nj&M3p=@`隻%r_Ã~jt,_`>A֕ʼM$m8" Ev ~^:U-ɖ8QT*;ޕeURޢbdu y8bu_ӑ<с؍$ހ#XԨqޕ$GTfzX}-7: Pczx*,F NITxVg=9 FAl8>ƒ^=7?Ңv*| '8d26I8ά'=p?OS&DHv[gʇ2SK H \ThnVh=qҾY!r]?*gH$݀Ux+20N%‘}hH"hPyǿ4I &Ah.N֔])o1d*\숨8Bcc#$g53)x@Rʡp|iL26ZbjoYN:3$WB@ hS(9<}i9L!$)6EaCm ֞I,rjnvn3Wi\cfJfqʷBAh##8b2nI9(nv`ڙ1GҤb)ZvHqȥT : s.# s@Gz/ # 98&0>e&Qr` 1jL)I2cڗ;!"Ǽ!S\`B& M$۴9҄'KE@B"'9YT G#(R(&{R \xJ@) Ė05NBCqŇ КDes#>pFFn=Ucj F R(Ge<`Xc;Ӹiwcәk8`I(4|۶1:wU,0'5Q,Tqǵ#I@4-ҙF3b-,s҂w0_si8cžIF);Ah7rL U#&Xw7c+Q3}`+0NsZ&:74x;Cn H4 pA1Ɠ ތrG;eTj*>YHn MF* r cv)Pf AȬĴN@o8|=Z`UidV=pWv>a 9֚w-+ 1oͷ#8# pTsO9b 'z:_({Lj,\2%㰧GHA!P6n<ԄVIF^>۸Zc% FT=Op{qd“!I8c?Zb(}1aƉ`:9?I+ۀHfcsUc H\gJ@DҀi{POw_(dba{zbV۔,1J~Er2*nkNɏH> 0یg泣O6@dĭݱ^ZR2CB#N:s5w-]/pcyOLȪ`{Fp~fUdyKy>p,z:3F|̕FL3t1Ӟim8Rp;ŶxU*|p1<}M:INt崧;_fၷI7)*I!ax\珩/#0P3xqh\g8LBw܀N6~8+n۝p=+C %Tmt(>ƪj79/VĔFF*{?:0 *dpYFxb#ެE" >3WA7<ݽ~ԠR>a.i*wǧޥ cڹ'&EV 9`1~^ ˜`}ܓ d~u*@gNW%X/\M\ #\$aI֤&fe9,I_ʢy!+9p+OzږJt 屜~tFˎ"Ka?w0C-nXAfc1L rchOj3H< ;w+u>R3lX yxoNZ;d1N2rFDP[>2uZm܇wʲym3d`W.֑e:d p 02OU~V֕0k}<h<>Քg4ṡ,dn8I!IZxeFfec'ҚQp >" &IcNjJ1څx' Hُ<z# "dePA?\H6#! ͱ5cHJ'n) d\g !02@aGW,x?tt#vy={zD~j<1l qV"C 9}OHSAӑYWs jMmܻrű8)P#껺g<~JK)+Vmݛhͽ GTҝ"ۉb%_ﹸf ޥīm#sPĠ(4*3REu=s43! ` F\)B gM<+uTl60fC6.g),iiGÎ +iH\x㊻w[8(2IlI@Fю:S [vw3p01LQı? '<N6ep֝1 =(dh&9)DM539 X;8V2[NaPXbsUC717sk> ۵9Ss# :f ;PA UCYۡ)Y Re zwGLҢFC`קmL4X@#>NF{H>Xt4w$~Tu)ߔ9qNܞZg#Zղ~Dgc85Wo-Px7b4ʤ Xs$ ?k<@Ejǹ'{'~s(o-OiEwrC&(y8ElC;$Ҳ6^BHARF_pF)>o7rɸ`dԖȤ9=JST:$` *v;;WSĎqZ%&%dm o(N;S&e$wcMHȹ>\j~q*F~lJw̘(ec3P x5!빮a)~`̭RnUA 2tr(|GVmX$+lW;nwz!lł/@zNp߀(w~IF]V;ORD%9kh2 ;? D,r+(Ҹ @\OzFVDGlM;E#r؆dWr9r$98֕q>Jx&'2DP!RgiB * Cw3FQV9瞹ɸe 1pBlUHž}ZϹ<_zipt'֔>#dbm gN+*|l-zj 3gR<}S?88߂?^­ l; ҤS@v^IbjrN0? NHnVXxAߚ. cv0H8UfQsqRC |҉#ir$nc~{Q4DX/FI< 3F+!Q3't>&Vev8تNIڥHQD  QQ wn$S3-*# 1NxqZmz+{(..(,D->$CZW*2) e~aY 3mp_ZŨr[u'}dsGM5NMOّ/;[lӓ\l*mU-LLS8[!6XQvv0x V3$Ł~I軸=}1Rnc0A)^%r5U%HF}H<֦`MbrsJnY|(7ƧvI  S".Ғ2cvB``ӊ&F 峮91zT=HNdqiR JjH42?,3>ԓ2RĎ8?mE#W{=v`6ќ{T2ÎGzҫ A4AcݗSCY886q:`)X3o'~֘`O z -I rfTd8=OK+nDț0ۅQԹjCтQr~3?j-S%=fYpT*Y@`FBAy2P vUR}8qQA;5qlHI-d Afy5q~9_ClƻQ#Mw>QQ'0En`~}He]P; dt^)nQ ʹ֔"I?.-MN#q8hyP =%jyɡ;r6cp'B(۔㟡[r*\dbG8Hۺ0I#UU[}}*" e=U; =jb Nߠ4ATsTiUvTd)0΃z}89#0yTV3h{7aҚC,*sLC)*6 o\0[\V9H t)쪀c)9$OTjv!GJzcڤ  í@N#.9N4 4ȕp0I@c*4e۸1$ RZ (0%8L4'֚K`d0IU :'D|u&ʲӮ}^ON9Fr!2F0E9ܴ`Ms/as8n@lzb`I#鶢䎽M=>뀹/q>қxRp0 :{<À<OV,lԡi{U69fHI&8/`@+aӥ;sv+F{v7όY9V8'= lv889UlLvQU_^?6Ϙ_sPd Υ >l91|.[#H.G8h ,ƥNs@w3d@A9+^00 uRpQ2=Cd1QRN)U!zȤ,vϭ9'AsR/3@l{8#h vZh}֔*1\V\JL*OR32pqԨ\o<O,H`7u#5]Uǯ9g3 FN:q܊5.@Dn̄\u}"!?( cY罃S[xe>Hg {ֲu[;3X0$.F3eX=9Zd3UWÕenԒ(#T3oC)+3p=x`2;q9^B!, )f]Y} uBq7#-4!{zpfjHQ1_O+`SgTS=}>c6&%瓌9hx3`vۈi?ǃ!҄ٛ܉ce5e*FJ#'ڥ9E%sw֛H1XR@cW)쳷9PEHd|?M%Q F?Jr( (l֡XFO Lu c}>(ux#-gN&%8`TpE.c7X2)?1xޔQNezFB\m ԲaG\S,LSiğ:.WyЏZiJ U)7vRzS\ưdyRDŽ銑 `.Ax#QnE_qA\Xp ?И n[%[5$o|0bzUe"4?{8 U.Ps"}!v钠qqO,6EE,?rޒM0;? !SqXR!FEa~~) 08:߻05W<8P=j"̛oJ2R'p})oFsȧ'gc-Wd)qw6޵2Bdd$ボJHr{)\k9꣏zW5l218rI Wn6)T7mrqƙҖ% Hi؁w9tFn%z6M)Ϙ1Jyk[f ۹74Ѱ>a&X +sKpq  xkr?jT`8bioE8o3z?iV,o<qʀHG5 (%zzj9ϡۜFd$OqA7nmt4N N%*B1PwJ ׍F8*s'9=p9m^U@8I qJ,#\Mp;)}އ4]Uzf6H`ZCD"7 ǃRJ sAbS^M7u$%*+܀9 䞣5'p ]՘Rm 'a1Ѫ1 nV8IDxbc68jE+ $G(_RhE(v2 9Y%bHH?Wgۑp:Ik>rV9fwϯ4r 99Tn6`Qs. K>qk' kuQSv1x98RxSl\"@zLK(T`r><U8S:l[N웏 !_UcҨI vz3 v> %v0}hX,(9S6=qT9x=*KgeP֠23(YݱzS\303 `բZ-—\<]dR `xԻ3S}JB gvG!*N :q+<3/Oơ2V1cr 뚙Y*gK`0;fYvrHBZRG;FM]":CDe1ר%tǦjFwQC})VD%F6s&@rn du%b%i,<8\qz~4+V;FNq;jmrɈjI r1^HT b8UF0 ۸=} ТRH8BHA !`p)61my#srTJ r,˶)^6#HI/nQ, hN})]7q=GC) yvfZȭ0݁AbJ`1}OSgzB#wl,\OR}TF!W&LLp7=&2Yk_kcs sZd[[.&e6z$`}{{W_Uƌe#bml1Ad$=j4M)]ڦꊦw_X*K{uyR.`!lP[+ Kӵ y-o/B 9鞟.tXPpzdW* 1v:MX<;*[1yLU@Pp3[?nu[lqt/>{땹[p†Pu<~UCZ/U͵Qۅ< 2{@>tѳ&m0 JXF,VJ48 $п" I>OZyJ2mϿEziROHO.NҴK(e#;⛵|DH##'l"Dȫdbx#+]gy $%)Ęf"O4H3Rkiuj.@3T$q% s?Sz-F*ǰ` :ך|v!QT秵#,v*.xcFE]_0pԔS>UQ!@T&p8>4(~JEEeO>Zs*`TecHP8GzЌ r-Io0n8@PDU$n.JItR~f sźmbc۸(ḦEv#Lwctw9*,wDD'mzCJ@Fe-W'ř,V$Pr~Utllv39u5䖱KYT8?_LU{k'<ҹ J?t[ TB=cq婏 ItHd@D#>\ʌ 8:zӚ)mɀ@BJ7?H27|g=)6I3ߏzR\mievkC hl{nn "Găaxyy?zSe}:q(rLJH̸rU}^29C=qHcuqY7C늬LЅG 1:̣ l`u2.DHcp:f $RǴ*x\>*g{Jv*UP`nnš\:G\Ҩ-?66ӥ[|̑$|UlfU(Z>r09)!W^ X|*p?)"gn7BŢ=FA @ VPw͎F148&1;,lU@S< @K g/QF`8J^X+q~]Y0zpt=@q݉nUVhH+a%HҜ2sR&BdP@ LAP@)1C&1;A?u ,du-l=bS#LN :A[MgɍC1o|U'q1CI䁆ۏsOʺ.OR3Y.2X>2%45l]X=;!la*y">X]1j2Acipc0W29=)cn~Fh]JxԙÇ h[1xl&76ɌT ҙʾi_yITZ$PgWn+ޝFp@8bg݆v_NF# soTF17Am9[&//gϏpTdFjf1G'+S$L]%T3STOE IY˂ 踧*Ňq5$f'3O"2`(>4ʑ:&!8;4!C=*Z4.drq-7<qL%T*OQM!pN)[R`RTncϧ[c3dҜr$: Ux،S dSHkɇ- ݙJRdX`\3`pI<Ԅ"a9=qO>rE8% -\P<f~\U9D T>v'!)2P#yMݜI` ɔr۷0ShUnyqL۲įsh$ˑCA@l$?Zn$ XOcjO17L63UH\6Ffkq֐yG'ҚDD98xi|ϝ#άXq<G;ShWd[~W9=OAP(snnL,W,N={ƊEHop1|[N9;?rE:e!1ڒ \`si̛yO4c9Ϊ,;_cFF ުx!ܮFGZNr^zPq_Rf53zTU8c9ѱqOFp G-EKdXrI?Ɠ8Ӧ H vxiA] 64 7>8aosMɐ8}=Y1ֳ4[v%gɥL G_Zv]tr1Nx Y>SԜW0(1{Rnl_4Ce}U&1U%rIs=Tm9 qQ$c8=?xe[>6oltH\2d=Ol4׃M^ zҐ .URCeCi\ N3; %ĩSq%}:}hlNDHN Tr(ct*7E2ЉCT1J lY {sP''R"N8)Ġ:#vp(9M9A$Y w/@08>@`Þ$q%zLjGwn<'r\T`!zn>'̙9\ v#kZTѭm=2OKe&lLp2NO_sܤd8>!U}@1sSO'S$޽X>(C!( Җ@v ީ! 50R n Tw@s1I,QabeQBelN 4!Y 63ez?Yd T]* )]XAf,p"dBP-*Yv$dQ1!T? i}iP2pÃ?u.7;BC |ץH]ߘ 1R˟7 wU8 RS0`H#U =O \B0#j4 \оj(V}ێ$BҳHTeW}2H|ҵc1mݪ jWByئ@D+c(۲R3ʳ FP^NH>NhG$rYʀ6) ѧPTc`+wʝyS5'2AJyc;R3V};CU<:FJ#6@= (%z 9Qn;wp #$L Ȭ'^@Ϧ:~UMD@I^J9* =L,k Ue ~A5 4lȿ1Rp\cBI`I%z5cC_U,.[!rT;[O| "HNFz34^d* \q/m`>?.}\%M>iOUSRLC+Z,gpf>šޱZ&9KkhL`;* Q𯈼1}umYJXmvRG^N.bf+ʑGtC;Đ{OzFFSjv66V^JcVÄcxw?o.;Mu%IbA#䓂8W^=AYiH9bh9 pNo!ϱ1iwźXA" [n1{AiF|)@~|g׀>5ƙZ^,4unh@RJc99Ez>"iUkIz$m_O漼C;xJm!L6Lp|p5]I5ǰ8Y'wÎ``;57~Ҷwv(̎4[y t` O𥾵[IjKpFĪFIQ죩\iĒ%(CFG"- Y%T뚱\}qK,7|1:J8W8p=kҙaFO!& z`UNlLVmS4X[ ㊉YȈ9_ znlpvʭ)/FslyYU{hd.V=t+??jq,R7|od<8MA ۂN*ydQ0$sR-yHzgfbu'ۭ81FD Du[ >YVU'`^fo]D .[&%}\(9_-WɹOg֜k䕐Ϙ?\Ĕh_|n jN7z+^KW.рUnvb Oⵄ9 FRHu;x*F9oҜE'fr1Қp6T"bM̪ryPz3w DefY9;Y_d^߂)JE&0#b2<,8'ҩr̸9N@:: - (3qUXʫ ~f *]۷Zه͜8'!y_Ti=~3f+ 7J?}I=_ΞVGbʹV=X\'cLO2*@ZbN’g!^'#Y}F7r0>@EE3ߊ.Uyv R'` 7Ýԉ]z psӁ"B 8 ixW;)Za;3KcP2A+Q3apOJsLw)ԌW#a9f#*0$>Q1XaW *Cӕ?0R˒Tl| dg>c)q`xy%FG`G,Q=i"yHbU(O˓iMčQ tp"$hϔ |dc R Yp:Z\tr3O(SBpZU 䏘upTF0Np)a@)\mE` 1=A;HɅ)"Řtl*&OB$v{/@(L:U^J$J6F͖@Z1H7ms:2 Q 84$iJ2 ^mP3Fą2e0vԪ6K3}1S̀1v;t1ӎA<MەAcn@Kv$3IF=v=*{.:8)[߇T)$e$ʣZ vlC0֘2A،{Hk ȧA$krF1g.6r2B=e9wl7T9Upp`&;]pi@NTFE&'F%y*$8Rb1ڐ &e{i܍r#MIH()\cv(曑I T"W䞂1xT"₥Gp=M+!<#'qRDŽbGLVPXZor= UrV828:]uNG֢`/~})Gޛx 0o9 vE }BU`)wy9ϥ !<9~ݯ}ڈtyM`9nI1ipOu)A z{4fܮSbU]s.#۸g&:8H۷D3 c#oB"Fm3M*!1#ł "}60:N bmq}³l,NRCW;=Lݞs`t3TLml3`2?u/sT7|8SÓnH qQ o*AQ9QY2YGuIq#: 7SDfAt$%`3|OaSo82Ƃ~DNBs),܃cV|BrIGJB*#*3vMrWgބUFߊH[eГ8L34+3.6SrUT)}B`Y{ێ֞ M!\.8?Cjf+w K#wBHӮɮA=+x1NA=:lI-j%Ogڹx!s-ĒIH#'?Jld=~˫o3Y\n& (+'9 c<RIYuwE2ڪǦ{a{I(_So?XMoW7 t^k{C%_O8ib u?w9Ko y+ly<3 8EY쮆-)$&ȼTN~I:cF֏~k{R eTprc}]Z}ݷ־m"J>TtlL6|r}r"y$灞ݱ]ZL:]NnkohiU.4_|N".̹O|voZl]~mߐ_OƭF_rl瓃֩)$H愛iu9ٌ=&&i5ۍ+1%c)n䔉Jg%ŽH#=k6S,ӌzjXf;vvȡ5G"sޜҡ,|IJ;GlZd[K,J^L+Ni 4m!'׊q,8.@p18Uɀ'5*.*G|sVQ5~ISPmR8ԘczBFaq {S2,> ͲQ :uN,ƢD* ӷP,~V7*1@':$_0߳O~4TG 6XT*jsb35b]Xđj|#h9)8T2e2E$Uf,RWʽҥi@X)9$ӊfϘ;+ݗRئ4s2 Z b@9U|y1mAZ2çZ6ŀ#vH$=0ƈ]h sGJ0[p6j˽m-(&KQts.l`?Jc'P r(@>b$U H%*,AUHHżi"dL[a vlI1r@Q,NrA'ʞO/BO1 DlPǻ#MvB Tv f^&8 pxsAbf#T HHmm̄>cUBV >GGOB$"%ݚ#-JÐX#m}sOT89,=ip$m!RFG4)$FQF8s7sM `h&xi=K.y2)#@lS@H韥8yzzjY`bnbONn(Q9<“()S@M,Bm>i,|8P`yQg #$LmϹ6`:g#%J~6`H>A&M pe HFA#T>sRb3یQܞ~2rU8]H Q W;ǣg>Իzr 'cFV&TɸvpipBiy;1B4n”,Q8\př"e$i 1i@bdy?/9HDYdrX1$IyoJv3xfF^wpdyS"1>+p)vV 9vbNgFÎąA%OPOZ A^9 ,=8`lp>n:ҋ0,OEcr) r0-n;rdd ˹BN[ Qܬ9i)AU/rv޹)~fRQi9 \i~g nxsJۂ>aܚE?944{TKgU,[G9=;Cg럥 h8zu?J,RИl#: z}U[9ݑ4֐*z<Ҡ˜JwCAP2sӃ럻ܐ9=x%3ij|7lĀ@ژXw& ө#R ]<Jڠs_o*AXQp(&yp >تLM!zboR `W,g;c$ҺG>JyFQԪr>\'#pGl'Ғe ! +ԠE!W 6= Q|˂*^Yu zSr\/#V{6q_aX2Ң` .,q߽Mw |PhsҕQV TS& NM1@OjB$ZL. ۖ*@~cF);OU>^5"=+:cx9.푕R/*[w*z†;8!6 ECz&$b\1=Cv4U^1ғI ^CG@F}Et@ڐ :;de$UҸh2"ݜR4%X͆>֐a$~3T{D2Y-c읧9-9K?J%"u}߽+LBs㓟jM$1d;DN=#,u63|0#c% |s)\+,le<)$l$tfKɉrCg"t ^p9($\T85FRnaH9׵= RTi{F8;֐#JUdm&*ۙ`AzH5f_"C{T- NѪ䒬w}qRƋ=&BHILmKO w;x?>0G)7F%mz|l-V'y8Wūh7H ۹˷@Nbd]cS#=s}_|0/̍ L6|cnx;U=b#_.xa!2TЀ>i6 {W6V0o)6K2GI/.\yC}y޺Iᮥmly.q8U+CѳmXo76iu-NؗAŽ={Wx=!H$Ho=G^NzAה|K&q\dTV$]I8,~Bw=Ojty y@y8=3i;I Glnn1ӿ*ϵdG x5&LjY 2#e([p cSᾧҋ؆/2JfcMEE<# /=Ztf{pnᑒyơiQ~*z9{T؍%@|ȟs}Oy'? ]EzAJKq U1b"kkh6H3wb;s|{WZ{ &H#b%TzsVI#yLgvEěLU p8THVdHinD܀(zK1?*I$! Č1֠Ve_A dw $`Y Ɗdf9Wi86OCQDغN99>UP9W1ܫGӽ8-BY8`^qV 91V?1u[3:jB%F U'jlhPU :BHۮ) G8&[QBF98#2KMgSiWއҚ6_Y2ItǦ*dE<✭C$W?tc["4챫gjMpRpO؟wq9RAtCqzhU=11*v8:em0*~b># Na8 R csLX1̀0h y1ebGȞXéW3j (3dfW)һ7~G`JyVpsFʌ9 ،*!y^GRdV"z]}B썀s; @㯽D3wS!g x#i>[}ཱྀr[(dW%t.0$ WcpP9hoC$0 3S ~< y6*~ZBSϱ?J؜)<֤.j~RK ܇79PTsצ7^>_ *BBWN!\{&C-R>p==M8S3XT w 1FFp8`!Ic C|'Udp8q*@^Қ \Q2Vb]8:px =}֢%"Ѱٛr W%vT&"9,M'%l`w?5 Td'% e*dzEf$9Qq`{$hЗ!Ĩe~BT2x1\T'q?t1N1$c617pÞ)7cM֔mqȩ)1_s9X) , cGSLLzy}J>az i8G9ib20He'!b܌_~iJ|:4 [? F!# Ve)HR@!B3;d=Y:0' wqN8,:37CB|Hpyɦav$ynxuխ\=y?5%rvv;);Cפ8*G򡲹A1GN0ƀ qSאG#i$Cd9i^Ⱂ)ba1q+q$OPpS. ~ /;8 H>†8wJ$X|FLo~)p.GZrM*V,\tʌ07uuI;1Ӂ@ol)zB\6H$MywRYv@ 8rsSNgMW)@o(qn\c=I`}qN(Qq'8Ҍ0;ӾPpA43JW"BY`03{#oRsf KUӞiK&>rN2(p{ snؠ?(i!!vmj]#2nOHW޾LyR{(9aʛOSr|&0Oj.ZcFգ$e(RH8ѐ$A3RFU%.v*ZbS }_-ofT}*"N Žڒ>#yԍE3P L\M20? 0RC;GwBV;ZOQ-FN|JA ?#'&RE\S# %\FܨOirEqUpr@M!D 1)N@OHr1>)RsH\|Qmc!m_O\gZ0cN2V]5v7YmcpaPWuLdU$ h1Tp8jRZ;nY] C|gUyzB!]%rŽM\4{eBMCGI 7wvdM>r}8h# 9[]r3H02 UQۀ2~eY6JXQ0+ (2c}۲+*4c$-岙n5fqcܜv1Dj'+\瓻?D탘$h<;ˀrSZ:Ή*jټ7glAï=@zv;(0j1+nEey=rHێ{s=af[(k;Isz~b*FSqJOFu^ݞ.[42\>͒^1L#$PzHwMa{=kge4v4X`1lڛ{yu%o7 $#=VYdr͑21߽7o6yd2!:(L[:AݟT[FN =}QEc7iԊ!I'h FK>UI?2n QE8h0a8l6sڅaP noq֊+res$r9IQK2MUӷ=R&>袡\]7jB .pŗ8 @sE-EuIۀ[{+ߌFrO#QS9X$/*0N:x1Sڊ)li\*.@RW=xzo(B+HD;7ԑ? 0n J4QTs_RH4 S4:"] 8'84QA+ sT8?uNdd.A"b˲1Pcv޼<+C@Ť5y1bPtLQц{Š)CRwmXà+OQf]̸j(J3HPl$|'nz( S[Gzٳ P:(B>@9v =4 0r3QOd1nb qA,9{r Ut wFc.FۓEW 7"?0q? (2s@*2A߻ӿJ((IYVOQf݋.8z(ZDH`b$ ?wh L3 c#rMK(# 2x&)"6 r!L(@/G#FFv0OY,wn^Ҋ+&W*uU(xۅ**bG,p:dqE=PRsԐ86[ #-(K0 *s^)OG֊) ,/1ҟrbTJ(Ğ`_vTmv rh6h\gzn;R ; S,J۹'@T ܜEBwLy^<彁TQLIRFsIE\xN>Qj`V ă (4I.@[4]¾>Qh̤5BE7rNh*y<ᄻが}hv3Ó' }v82{ǭS'%*PH ü t (؛~W*2HIQIR6:=9SNݗ~QTTD#t$eWsHTy|ԓ4QS"7B6b@CcsE[PFPy=VLr(!.IFS2ߎHE-KdMS+يH)X+PB$y``̠}E☄rAz6% .x#U #ox3; 3VfI"V(D,di N:EW RT zNarz("J 9㓷jce$`NsEKrUDK (rUM J|dʊ+)n a B^Tpʼ+> ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Brad Hards Portions created by the Initial Developer are Copyright (C) 2012 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #include "test_helpers.h" int main (int argc UNUSED, char *argv[] UNUSED) { sqlite3 *db_handle = NULL; char *sql_statement; sqlite3_stmt *stmt; int ret; void *cache = spatialite_alloc_connection(); char *old_SPATIALITE_SECURITY_ENV = NULL; #ifdef _WIN32 char *env; #endif /* not WIN32 */ old_SPATIALITE_SECURITY_ENV = getenv("SPATIALITE_SECURITY"); #ifdef _WIN32 putenv("SPATIALITE_SECURITY=relaxed"); #else /* not WIN32 */ setenv("SPATIALITE_SECURITY", "relaxed", 1); #endif ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); // For debugging / testing if required // ret = sqlite3_open_v2 ("check_gpkgGetImageFormat_tiff.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); spatialite_init_ex(db_handle, cache, 0); if (old_SPATIALITE_SECURITY_ENV) { #ifdef _WIN32 env = sqlite3_mprintf("SPATIALITE_SECURITY=%s", old_SPATIALITE_SECURITY_ENV); putenv(env); sqlite3_free(env); #else /* not WIN32 */ setenv("SPATIALITE_SECURITY", old_SPATIALITE_SECURITY_ENV, 1); #endif } else { #ifdef _WIN32 putenv("SPATIALITE_SECURITY="); #else /* not WIN32 */ unsetenv("SPATIALITE_SECURITY"); #endif } if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } sql_statement = "SELECT gpkgGetImageType(BlobFromFile(\"empty.tif\"))"; ret = sqlite3_prepare_v2 (db_handle, sql_statement, strlen(sql_statement), &stmt, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "failed to prepare SQL statement: %i (%s)\n", ret, sqlite3_errmsg(db_handle)); return -30; } ret = sqlite3_step (stmt); if (ret != SQLITE_ROW) { fprintf(stderr, "unexpected return value for first step: %i\n", ret); return -31; } if (sqlite3_column_type (stmt, 0) != SQLITE_TEXT) { fprintf(stderr, "bad type for column 0: %i\n", sqlite3_column_type (stmt, 0)); return -32; } if (strcmp((const char*)sqlite3_column_text(stmt, 0), "tiff") != 0) { fprintf(stderr, "wrong image type: %s\n", sqlite3_column_text(stmt, 0)); return -33; } ret = sqlite3_step(stmt); if (ret != SQLITE_DONE) { fprintf(stderr, "unexpected return value for second step: %i\n", ret); return -34; } ret = sqlite3_finalize (stmt); ret = sqlite3_close (db_handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle)); return -200; } spatialite_cleanup_ex(cache); return 0; } libspatialite-4.1.1/test/check_virtualtable5.c0000664000175000017500000001464012163502133016332 00000000000000/* check_virtualtable5.c -- SpatiaLite Test Case Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #define _GNU_SOURCE #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" struct test_step { const char *sql; const int num_rows; }; struct test_step steps[] = { { "select DATUM from dbftest WHERE DATUM = 2450514.5;", 18 }, { "select DATUM from dbftest WHERE DATUM < 2450514.5;", 0 }, { "select DATUM from dbftest WHERE DATUM > 2450514.5;", 0 }, { "select DATUM from dbftest WHERE DATUM >= 2450514.5;", 18 }, { "select DATUM from dbftest WHERE DATUM <= 2450514.5;", 18 }, { "select DATUM from dbftest WHERE DATUM = 2450514.5;", 18 }, { "select Length, HOEHE from dbftest WHERE HOEHE = 0.0;", 18 }, { "select Length, HOEHE from dbftest WHERE HOEHE = 1.0;", 0 }, { "select Length, HOEHE from dbftest WHERE HOEHE != 0.0;", 0 }, { "select Length, HOEHE from dbftest WHERE Length > 0.0;", 18 }, { "select Length, HOEHE from dbftest WHERE Length >= 0.0;", 18 }, { "select Length, HOEHE from dbftest WHERE Length <= 0.0;", 0 }, { "select Length, HOEHE from dbftest WHERE Length > 1.0;", 0 }, { "select Length, HOEHE from dbftest WHERE Length > 0.1;", 10 }, { "select Length, HOEHE from dbftest WHERE Length < 0.1;", 8 }, { "select Length, HOEHE from dbftest WHERE Length >= 0.1;", 10 }, { "select Length, HOEHE from dbftest WHERE HOEHE = 0;", 18 }, { "select Length, HOEHE from dbftest WHERE HOEHE >= 0;", 18 }, { "select Length, HOEHE from dbftest WHERE HOEHE <= 0;", 18 }, { "select Length, HOEHE from dbftest WHERE HOEHE > 0;", 0 }, { "select Length, HOEHE from dbftest WHERE HOEHE < 0;", 0 }, { "select Length, HOEHE from dbftest WHERE HOEHE = 1;", 0 }, { "select Length, HOEHE from dbftest WHERE HOEHE <= 1;", 18 }, { "select Length, HOEHE from dbftest WHERE HOEHE >= 1;", 0 }, { "select Length, HOEHE from dbftest WHERE HOEHE < 1;", 18 }, { "select Length, HOEHE from dbftest WHERE HOEHE > -1;", 18 }, { "select Length, HOEHE from dbftest WHERE HOEHE < -1;", 0 }, { "select Length, HOEHE from dbftest WHERE HOEHE <= -1;", 0 }, { NULL, 0 } }; int main (int argc, char *argv[]) { #ifndef OMIT_ICONV /* only if ICONV is supported */ sqlite3 *db_handle = NULL; int ret; char *err_msg = NULL; int i; char **results; int rows; int columns; void *cache = spatialite_alloc_connection(); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } spatialite_init_ex (db_handle, cache, 0); ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE dbftest USING VirtualDBF(\"shp/merano-3d/roads.dbf\", 'CP1252');", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VirtualDBF error: %s\n", err_msg); sqlite3_free (err_msg); return -2; } ret = sqlite3_exec (db_handle, "DROP TABLE dbftest;", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE error: %s\n", err_msg); sqlite3_free (err_msg); return -3; } ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE dbftest USING VirtualDBF('shp/merano-3d/roads.dbf', \"CP1252\");", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VirtualDBF error: %s\n", err_msg); sqlite3_free (err_msg); return -4; } ret = sqlite3_exec (db_handle, "DROP TABLE dbftest;", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE error: %s\n", err_msg); sqlite3_free (err_msg); return -5; } ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE dbftest USING VirtualDBF('shp/merano-3d/roads.dbf', CP1252);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VirtualDBF error: %s\n", err_msg); sqlite3_free (err_msg); return -6; } for (i = 0; steps[i].sql; ++i) { ret = sqlite3_get_table (db_handle, steps[i].sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -7; } if (rows != steps[i].num_rows) { fprintf (stderr, "Unexpected num of rows for test %i: %i.\n", i, rows); return -8; } sqlite3_free_table (results); } ret = sqlite3_exec (db_handle, "DROP TABLE dbftest;", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE error: %s\n", err_msg); sqlite3_free (err_msg); return -9; } sqlite3_close (db_handle); spatialite_cleanup_ex (cache); #endif /* end ICONV conditional */ return 0; } libspatialite-4.1.1/test/books-bad.xsd0000664000175000017500000000126612163502133014627 00000000000000 libspatialite-4.1.1/test/Makefile.in0000664000175000017500000022171112163502133014312 00000000000000# Makefile.in generated by automake 1.12.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ check_PROGRAMS = check_endian$(EXEEXT) check_version$(EXEEXT) \ check_init$(EXEEXT) check_init2$(EXEEXT) \ check_geom_aux$(EXEEXT) check_geometry_cols$(EXEEXT) \ check_create$(EXEEXT) check_bufovflw$(EXEEXT) \ check_fdo1$(EXEEXT) check_fdo2$(EXEEXT) check_fdo3$(EXEEXT) \ check_fdo_bufovflw$(EXEEXT) check_md5$(EXEEXT) \ check_dbf_load$(EXEEXT) check_shp_load$(EXEEXT) \ check_shp_load_3d$(EXEEXT) shape_cp1252$(EXEEXT) \ shape_primitives$(EXEEXT) shape_utf8_1$(EXEEXT) \ shape_utf8_1ex$(EXEEXT) shape_utf8_2$(EXEEXT) \ shape_3d$(EXEEXT) check_xls_load$(EXEEXT) \ check_math_funcs$(EXEEXT) check_gaia_util$(EXEEXT) \ check_gaia_utf8$(EXEEXT) check_extension$(EXEEXT) \ check_recover_geom$(EXEEXT) check_sql_stmt$(EXEEXT) \ check_virtualtable1$(EXEEXT) check_virtualtable2$(EXEEXT) \ check_virtualtable3$(EXEEXT) check_virtualtable4$(EXEEXT) \ check_virtualtable5$(EXEEXT) check_virtualtable6$(EXEEXT) \ check_virtual_ovflw$(EXEEXT) check_mbrcache$(EXEEXT) \ check_spatialindex$(EXEEXT) check_exif$(EXEEXT) \ check_exif2$(EXEEXT) check_relations_fncts$(EXEEXT) \ check_extra_relations_fncts$(EXEEXT) \ check_geoscvt_fncts$(EXEEXT) check_libxml2$(EXEEXT) \ check_styling$(EXEEXT) check_virtualxpath$(EXEEXT) \ check_wfsin$(EXEEXT) check_dxf$(EXEEXT) $(am__EXEEXT_1) @ENABLE_GEOPACKAGE_TRUE@am__append_1 = \ @ENABLE_GEOPACKAGE_TRUE@ check_createBaseTables \ @ENABLE_GEOPACKAGE_TRUE@ check_add_tile_triggers \ @ENABLE_GEOPACKAGE_TRUE@ check_add_tile_triggers_bad_table_name \ @ENABLE_GEOPACKAGE_TRUE@ check_add_rt_metadata_triggers_bad_table_name \ @ENABLE_GEOPACKAGE_TRUE@ check_add_rt_metadata_triggers_wrong_arg_type \ @ENABLE_GEOPACKAGE_TRUE@ check_add_rt_metadata_triggers \ @ENABLE_GEOPACKAGE_TRUE@ check_get_normal_row \ @ENABLE_GEOPACKAGE_TRUE@ check_get_normal_row_bad_geopackage \ @ENABLE_GEOPACKAGE_TRUE@ check_get_normal_row_bad_geopackage2 \ @ENABLE_GEOPACKAGE_TRUE@ check_get_normal_zoom \ @ENABLE_GEOPACKAGE_TRUE@ check_get_normal_zoom_extension_load \ @ENABLE_GEOPACKAGE_TRUE@ check_get_normal_zoom_bad_geopackage \ @ENABLE_GEOPACKAGE_TRUE@ check_get_normal_zoom_bad_geopackage2 \ @ENABLE_GEOPACKAGE_TRUE@ check_point_to_tile_wrong_arg_type \ @ENABLE_GEOPACKAGE_TRUE@ check_point_to_tile \ @ENABLE_GEOPACKAGE_TRUE@ check_point_to_tile_integer_coordinates \ @ENABLE_GEOPACKAGE_TRUE@ check_point_to_tile_bad_tablename \ @ENABLE_GEOPACKAGE_TRUE@ check_point_to_tile_broken_geopackage \ @ENABLE_GEOPACKAGE_TRUE@ check_point_to_tile_broken_geopackage2 \ @ENABLE_GEOPACKAGE_TRUE@ check_point_to_tile_no_tile \ @ENABLE_GEOPACKAGE_TRUE@ check_point_to_tile_multiresult \ @ENABLE_GEOPACKAGE_TRUE@ check_point_to_tile_different_srid \ @ENABLE_GEOPACKAGE_TRUE@ check_point_to_tile_broken_srid \ @ENABLE_GEOPACKAGE_TRUE@ check_gpkgGetImageFormat \ @ENABLE_GEOPACKAGE_TRUE@ check_gpkgGetImageFormat_nonimage \ @ENABLE_GEOPACKAGE_TRUE@ check_gpkgGetImageFormat_nonblob \ @ENABLE_GEOPACKAGE_TRUE@ check_gpkgGetImageFormat_png \ @ENABLE_GEOPACKAGE_TRUE@ check_gpkgGetImageFormat_tiff \ @ENABLE_GEOPACKAGE_TRUE@ check_gpkgGetImageFormat_webp subdir = test DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = @ENABLE_GEOPACKAGE_TRUE@am__EXEEXT_1 = \ @ENABLE_GEOPACKAGE_TRUE@ check_createBaseTables$(EXEEXT) \ @ENABLE_GEOPACKAGE_TRUE@ check_add_tile_triggers$(EXEEXT) \ @ENABLE_GEOPACKAGE_TRUE@ check_add_tile_triggers_bad_table_name$(EXEEXT) \ @ENABLE_GEOPACKAGE_TRUE@ check_add_rt_metadata_triggers_bad_table_name$(EXEEXT) \ @ENABLE_GEOPACKAGE_TRUE@ check_add_rt_metadata_triggers_wrong_arg_type$(EXEEXT) \ @ENABLE_GEOPACKAGE_TRUE@ check_add_rt_metadata_triggers$(EXEEXT) \ @ENABLE_GEOPACKAGE_TRUE@ check_get_normal_row$(EXEEXT) \ @ENABLE_GEOPACKAGE_TRUE@ check_get_normal_row_bad_geopackage$(EXEEXT) \ @ENABLE_GEOPACKAGE_TRUE@ check_get_normal_row_bad_geopackage2$(EXEEXT) \ @ENABLE_GEOPACKAGE_TRUE@ check_get_normal_zoom$(EXEEXT) \ @ENABLE_GEOPACKAGE_TRUE@ check_get_normal_zoom_extension_load$(EXEEXT) \ @ENABLE_GEOPACKAGE_TRUE@ check_get_normal_zoom_bad_geopackage$(EXEEXT) \ @ENABLE_GEOPACKAGE_TRUE@ check_get_normal_zoom_bad_geopackage2$(EXEEXT) \ @ENABLE_GEOPACKAGE_TRUE@ check_point_to_tile_wrong_arg_type$(EXEEXT) \ @ENABLE_GEOPACKAGE_TRUE@ check_point_to_tile$(EXEEXT) \ @ENABLE_GEOPACKAGE_TRUE@ check_point_to_tile_integer_coordinates$(EXEEXT) \ @ENABLE_GEOPACKAGE_TRUE@ check_point_to_tile_bad_tablename$(EXEEXT) \ @ENABLE_GEOPACKAGE_TRUE@ check_point_to_tile_broken_geopackage$(EXEEXT) \ @ENABLE_GEOPACKAGE_TRUE@ check_point_to_tile_broken_geopackage2$(EXEEXT) \ @ENABLE_GEOPACKAGE_TRUE@ check_point_to_tile_no_tile$(EXEEXT) \ @ENABLE_GEOPACKAGE_TRUE@ check_point_to_tile_multiresult$(EXEEXT) \ @ENABLE_GEOPACKAGE_TRUE@ check_point_to_tile_different_srid$(EXEEXT) \ @ENABLE_GEOPACKAGE_TRUE@ check_point_to_tile_broken_srid$(EXEEXT) \ @ENABLE_GEOPACKAGE_TRUE@ check_gpkgGetImageFormat$(EXEEXT) \ @ENABLE_GEOPACKAGE_TRUE@ check_gpkgGetImageFormat_nonimage$(EXEEXT) \ @ENABLE_GEOPACKAGE_TRUE@ check_gpkgGetImageFormat_nonblob$(EXEEXT) \ @ENABLE_GEOPACKAGE_TRUE@ check_gpkgGetImageFormat_png$(EXEEXT) \ @ENABLE_GEOPACKAGE_TRUE@ check_gpkgGetImageFormat_tiff$(EXEEXT) \ @ENABLE_GEOPACKAGE_TRUE@ check_gpkgGetImageFormat_webp$(EXEEXT) check_add_rt_metadata_triggers_SOURCES = \ check_add_rt_metadata_triggers.c check_add_rt_metadata_triggers_OBJECTS = \ check_add_rt_metadata_triggers.$(OBJEXT) check_add_rt_metadata_triggers_LDADD = $(LDADD) check_add_rt_metadata_triggers_bad_table_name_SOURCES = \ check_add_rt_metadata_triggers_bad_table_name.c check_add_rt_metadata_triggers_bad_table_name_OBJECTS = \ check_add_rt_metadata_triggers_bad_table_name.$(OBJEXT) check_add_rt_metadata_triggers_bad_table_name_LDADD = $(LDADD) check_add_rt_metadata_triggers_wrong_arg_type_SOURCES = \ check_add_rt_metadata_triggers_wrong_arg_type.c check_add_rt_metadata_triggers_wrong_arg_type_OBJECTS = \ check_add_rt_metadata_triggers_wrong_arg_type.$(OBJEXT) check_add_rt_metadata_triggers_wrong_arg_type_LDADD = $(LDADD) check_add_tile_triggers_SOURCES = check_add_tile_triggers.c check_add_tile_triggers_OBJECTS = check_add_tile_triggers.$(OBJEXT) check_add_tile_triggers_LDADD = $(LDADD) check_add_tile_triggers_bad_table_name_SOURCES = \ check_add_tile_triggers_bad_table_name.c check_add_tile_triggers_bad_table_name_OBJECTS = \ check_add_tile_triggers_bad_table_name.$(OBJEXT) check_add_tile_triggers_bad_table_name_LDADD = $(LDADD) check_bufovflw_SOURCES = check_bufovflw.c check_bufovflw_OBJECTS = check_bufovflw.$(OBJEXT) check_bufovflw_LDADD = $(LDADD) check_create_SOURCES = check_create.c check_create_OBJECTS = check_create.$(OBJEXT) check_create_LDADD = $(LDADD) check_createBaseTables_SOURCES = check_createBaseTables.c check_createBaseTables_OBJECTS = check_createBaseTables.$(OBJEXT) check_createBaseTables_LDADD = $(LDADD) check_dbf_load_SOURCES = check_dbf_load.c check_dbf_load_OBJECTS = check_dbf_load.$(OBJEXT) check_dbf_load_LDADD = $(LDADD) check_dxf_SOURCES = check_dxf.c check_dxf_OBJECTS = check_dxf.$(OBJEXT) check_dxf_LDADD = $(LDADD) check_endian_SOURCES = check_endian.c check_endian_OBJECTS = check_endian.$(OBJEXT) check_endian_LDADD = $(LDADD) check_exif_SOURCES = check_exif.c check_exif_OBJECTS = check_exif.$(OBJEXT) check_exif_LDADD = $(LDADD) check_exif2_SOURCES = check_exif2.c check_exif2_OBJECTS = check_exif2.$(OBJEXT) check_exif2_LDADD = $(LDADD) check_extension_SOURCES = check_extension.c check_extension_OBJECTS = check_extension.$(OBJEXT) check_extension_LDADD = $(LDADD) check_extra_relations_fncts_SOURCES = check_extra_relations_fncts.c check_extra_relations_fncts_OBJECTS = \ check_extra_relations_fncts.$(OBJEXT) check_extra_relations_fncts_LDADD = $(LDADD) check_fdo1_SOURCES = check_fdo1.c check_fdo1_OBJECTS = check_fdo1.$(OBJEXT) check_fdo1_LDADD = $(LDADD) check_fdo2_SOURCES = check_fdo2.c check_fdo2_OBJECTS = check_fdo2.$(OBJEXT) check_fdo2_LDADD = $(LDADD) check_fdo3_SOURCES = check_fdo3.c check_fdo3_OBJECTS = check_fdo3.$(OBJEXT) check_fdo3_LDADD = $(LDADD) check_fdo_bufovflw_SOURCES = check_fdo_bufovflw.c check_fdo_bufovflw_OBJECTS = check_fdo_bufovflw.$(OBJEXT) check_fdo_bufovflw_LDADD = $(LDADD) check_gaia_utf8_SOURCES = check_gaia_utf8.c check_gaia_utf8_OBJECTS = check_gaia_utf8.$(OBJEXT) check_gaia_utf8_LDADD = $(LDADD) check_gaia_util_SOURCES = check_gaia_util.c check_gaia_util_OBJECTS = check_gaia_util.$(OBJEXT) check_gaia_util_LDADD = $(LDADD) check_geom_aux_SOURCES = check_geom_aux.c check_geom_aux_OBJECTS = check_geom_aux.$(OBJEXT) check_geom_aux_LDADD = $(LDADD) check_geometry_cols_SOURCES = check_geometry_cols.c check_geometry_cols_OBJECTS = check_geometry_cols.$(OBJEXT) check_geometry_cols_LDADD = $(LDADD) check_geoscvt_fncts_SOURCES = check_geoscvt_fncts.c check_geoscvt_fncts_OBJECTS = check_geoscvt_fncts.$(OBJEXT) check_geoscvt_fncts_LDADD = $(LDADD) check_get_normal_row_SOURCES = check_get_normal_row.c check_get_normal_row_OBJECTS = check_get_normal_row.$(OBJEXT) check_get_normal_row_LDADD = $(LDADD) check_get_normal_row_bad_geopackage_SOURCES = \ check_get_normal_row_bad_geopackage.c check_get_normal_row_bad_geopackage_OBJECTS = \ check_get_normal_row_bad_geopackage.$(OBJEXT) check_get_normal_row_bad_geopackage_LDADD = $(LDADD) check_get_normal_row_bad_geopackage2_SOURCES = \ check_get_normal_row_bad_geopackage2.c check_get_normal_row_bad_geopackage2_OBJECTS = \ check_get_normal_row_bad_geopackage2.$(OBJEXT) check_get_normal_row_bad_geopackage2_LDADD = $(LDADD) check_get_normal_zoom_SOURCES = check_get_normal_zoom.c check_get_normal_zoom_OBJECTS = check_get_normal_zoom.$(OBJEXT) check_get_normal_zoom_LDADD = $(LDADD) check_get_normal_zoom_bad_geopackage_SOURCES = \ check_get_normal_zoom_bad_geopackage.c check_get_normal_zoom_bad_geopackage_OBJECTS = \ check_get_normal_zoom_bad_geopackage.$(OBJEXT) check_get_normal_zoom_bad_geopackage_LDADD = $(LDADD) check_get_normal_zoom_bad_geopackage2_SOURCES = \ check_get_normal_zoom_bad_geopackage2.c check_get_normal_zoom_bad_geopackage2_OBJECTS = \ check_get_normal_zoom_bad_geopackage2.$(OBJEXT) check_get_normal_zoom_bad_geopackage2_LDADD = $(LDADD) check_get_normal_zoom_extension_load_SOURCES = \ check_get_normal_zoom_extension_load.c check_get_normal_zoom_extension_load_OBJECTS = \ check_get_normal_zoom_extension_load.$(OBJEXT) check_get_normal_zoom_extension_load_LDADD = $(LDADD) check_gpkgGetImageFormat_SOURCES = check_gpkgGetImageFormat.c check_gpkgGetImageFormat_OBJECTS = check_gpkgGetImageFormat.$(OBJEXT) check_gpkgGetImageFormat_LDADD = $(LDADD) check_gpkgGetImageFormat_nonblob_SOURCES = \ check_gpkgGetImageFormat_nonblob.c check_gpkgGetImageFormat_nonblob_OBJECTS = \ check_gpkgGetImageFormat_nonblob.$(OBJEXT) check_gpkgGetImageFormat_nonblob_LDADD = $(LDADD) check_gpkgGetImageFormat_nonimage_SOURCES = \ check_gpkgGetImageFormat_nonimage.c check_gpkgGetImageFormat_nonimage_OBJECTS = \ check_gpkgGetImageFormat_nonimage.$(OBJEXT) check_gpkgGetImageFormat_nonimage_LDADD = $(LDADD) check_gpkgGetImageFormat_png_SOURCES = check_gpkgGetImageFormat_png.c check_gpkgGetImageFormat_png_OBJECTS = \ check_gpkgGetImageFormat_png.$(OBJEXT) check_gpkgGetImageFormat_png_LDADD = $(LDADD) check_gpkgGetImageFormat_tiff_SOURCES = \ check_gpkgGetImageFormat_tiff.c check_gpkgGetImageFormat_tiff_OBJECTS = \ check_gpkgGetImageFormat_tiff.$(OBJEXT) check_gpkgGetImageFormat_tiff_LDADD = $(LDADD) check_gpkgGetImageFormat_webp_SOURCES = \ check_gpkgGetImageFormat_webp.c check_gpkgGetImageFormat_webp_OBJECTS = \ check_gpkgGetImageFormat_webp.$(OBJEXT) check_gpkgGetImageFormat_webp_LDADD = $(LDADD) check_init_SOURCES = check_init.c check_init_OBJECTS = check_init.$(OBJEXT) check_init_LDADD = $(LDADD) check_init2_SOURCES = check_init2.c check_init2_OBJECTS = check_init2.$(OBJEXT) check_init2_LDADD = $(LDADD) check_libxml2_SOURCES = check_libxml2.c check_libxml2_OBJECTS = check_libxml2.$(OBJEXT) check_libxml2_LDADD = $(LDADD) check_math_funcs_SOURCES = check_math_funcs.c check_math_funcs_OBJECTS = check_math_funcs.$(OBJEXT) check_math_funcs_LDADD = $(LDADD) check_mbrcache_SOURCES = check_mbrcache.c check_mbrcache_OBJECTS = check_mbrcache.$(OBJEXT) check_mbrcache_LDADD = $(LDADD) check_md5_SOURCES = check_md5.c check_md5_OBJECTS = check_md5.$(OBJEXT) check_md5_LDADD = $(LDADD) check_point_to_tile_SOURCES = check_point_to_tile.c check_point_to_tile_OBJECTS = check_point_to_tile.$(OBJEXT) check_point_to_tile_LDADD = $(LDADD) check_point_to_tile_bad_tablename_SOURCES = \ check_point_to_tile_bad_tablename.c check_point_to_tile_bad_tablename_OBJECTS = \ check_point_to_tile_bad_tablename.$(OBJEXT) check_point_to_tile_bad_tablename_LDADD = $(LDADD) check_point_to_tile_broken_geopackage_SOURCES = \ check_point_to_tile_broken_geopackage.c check_point_to_tile_broken_geopackage_OBJECTS = \ check_point_to_tile_broken_geopackage.$(OBJEXT) check_point_to_tile_broken_geopackage_LDADD = $(LDADD) check_point_to_tile_broken_geopackage2_SOURCES = \ check_point_to_tile_broken_geopackage2.c check_point_to_tile_broken_geopackage2_OBJECTS = \ check_point_to_tile_broken_geopackage2.$(OBJEXT) check_point_to_tile_broken_geopackage2_LDADD = $(LDADD) check_point_to_tile_broken_srid_SOURCES = \ check_point_to_tile_broken_srid.c check_point_to_tile_broken_srid_OBJECTS = \ check_point_to_tile_broken_srid.$(OBJEXT) check_point_to_tile_broken_srid_LDADD = $(LDADD) check_point_to_tile_different_srid_SOURCES = \ check_point_to_tile_different_srid.c check_point_to_tile_different_srid_OBJECTS = \ check_point_to_tile_different_srid.$(OBJEXT) check_point_to_tile_different_srid_LDADD = $(LDADD) check_point_to_tile_integer_coordinates_SOURCES = \ check_point_to_tile_integer_coordinates.c check_point_to_tile_integer_coordinates_OBJECTS = \ check_point_to_tile_integer_coordinates.$(OBJEXT) check_point_to_tile_integer_coordinates_LDADD = $(LDADD) check_point_to_tile_multiresult_SOURCES = \ check_point_to_tile_multiresult.c check_point_to_tile_multiresult_OBJECTS = \ check_point_to_tile_multiresult.$(OBJEXT) check_point_to_tile_multiresult_LDADD = $(LDADD) check_point_to_tile_no_tile_SOURCES = check_point_to_tile_no_tile.c check_point_to_tile_no_tile_OBJECTS = \ check_point_to_tile_no_tile.$(OBJEXT) check_point_to_tile_no_tile_LDADD = $(LDADD) check_point_to_tile_wrong_arg_type_SOURCES = \ check_point_to_tile_wrong_arg_type.c check_point_to_tile_wrong_arg_type_OBJECTS = \ check_point_to_tile_wrong_arg_type.$(OBJEXT) check_point_to_tile_wrong_arg_type_LDADD = $(LDADD) check_recover_geom_SOURCES = check_recover_geom.c check_recover_geom_OBJECTS = check_recover_geom.$(OBJEXT) check_recover_geom_LDADD = $(LDADD) check_relations_fncts_SOURCES = check_relations_fncts.c check_relations_fncts_OBJECTS = check_relations_fncts.$(OBJEXT) check_relations_fncts_LDADD = $(LDADD) check_shp_load_SOURCES = check_shp_load.c check_shp_load_OBJECTS = check_shp_load.$(OBJEXT) check_shp_load_LDADD = $(LDADD) check_shp_load_3d_SOURCES = check_shp_load_3d.c check_shp_load_3d_OBJECTS = check_shp_load_3d.$(OBJEXT) check_shp_load_3d_LDADD = $(LDADD) check_spatialindex_SOURCES = check_spatialindex.c check_spatialindex_OBJECTS = check_spatialindex.$(OBJEXT) check_spatialindex_LDADD = $(LDADD) check_sql_stmt_SOURCES = check_sql_stmt.c check_sql_stmt_OBJECTS = check_sql_stmt.$(OBJEXT) check_sql_stmt_LDADD = $(LDADD) check_styling_SOURCES = check_styling.c check_styling_OBJECTS = check_styling.$(OBJEXT) check_styling_LDADD = $(LDADD) check_version_SOURCES = check_version.c check_version_OBJECTS = check_version.$(OBJEXT) check_version_LDADD = $(LDADD) check_virtual_ovflw_SOURCES = check_virtual_ovflw.c check_virtual_ovflw_OBJECTS = check_virtual_ovflw.$(OBJEXT) check_virtual_ovflw_LDADD = $(LDADD) check_virtualtable1_SOURCES = check_virtualtable1.c check_virtualtable1_OBJECTS = check_virtualtable1.$(OBJEXT) check_virtualtable1_LDADD = $(LDADD) check_virtualtable2_SOURCES = check_virtualtable2.c check_virtualtable2_OBJECTS = check_virtualtable2.$(OBJEXT) check_virtualtable2_LDADD = $(LDADD) check_virtualtable3_SOURCES = check_virtualtable3.c check_virtualtable3_OBJECTS = check_virtualtable3.$(OBJEXT) check_virtualtable3_LDADD = $(LDADD) check_virtualtable4_SOURCES = check_virtualtable4.c check_virtualtable4_OBJECTS = check_virtualtable4.$(OBJEXT) check_virtualtable4_LDADD = $(LDADD) check_virtualtable5_SOURCES = check_virtualtable5.c check_virtualtable5_OBJECTS = check_virtualtable5.$(OBJEXT) check_virtualtable5_LDADD = $(LDADD) check_virtualtable6_SOURCES = check_virtualtable6.c check_virtualtable6_OBJECTS = check_virtualtable6.$(OBJEXT) check_virtualtable6_LDADD = $(LDADD) check_virtualxpath_SOURCES = check_virtualxpath.c check_virtualxpath_OBJECTS = check_virtualxpath.$(OBJEXT) check_virtualxpath_LDADD = $(LDADD) check_wfsin_SOURCES = check_wfsin.c check_wfsin_OBJECTS = check_wfsin.$(OBJEXT) check_wfsin_LDADD = $(LDADD) check_xls_load_SOURCES = check_xls_load.c check_xls_load_OBJECTS = check_xls_load.$(OBJEXT) check_xls_load_LDADD = $(LDADD) shape_3d_SOURCES = shape_3d.c shape_3d_OBJECTS = shape_3d.$(OBJEXT) shape_3d_LDADD = $(LDADD) shape_cp1252_SOURCES = shape_cp1252.c shape_cp1252_OBJECTS = shape_cp1252.$(OBJEXT) shape_cp1252_LDADD = $(LDADD) shape_primitives_SOURCES = shape_primitives.c shape_primitives_OBJECTS = shape_primitives.$(OBJEXT) shape_primitives_LDADD = $(LDADD) shape_utf8_1_SOURCES = shape_utf8_1.c shape_utf8_1_OBJECTS = shape_utf8_1.$(OBJEXT) shape_utf8_1_LDADD = $(LDADD) shape_utf8_1ex_SOURCES = shape_utf8_1ex.c shape_utf8_1ex_OBJECTS = shape_utf8_1ex.$(OBJEXT) shape_utf8_1ex_LDADD = $(LDADD) shape_utf8_2_SOURCES = shape_utf8_2.c shape_utf8_2_OBJECTS = shape_utf8_2.$(OBJEXT) shape_utf8_2_LDADD = $(LDADD) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = check_add_rt_metadata_triggers.c \ check_add_rt_metadata_triggers_bad_table_name.c \ check_add_rt_metadata_triggers_wrong_arg_type.c \ check_add_tile_triggers.c \ check_add_tile_triggers_bad_table_name.c check_bufovflw.c \ check_create.c check_createBaseTables.c check_dbf_load.c \ check_dxf.c check_endian.c check_exif.c check_exif2.c \ check_extension.c check_extra_relations_fncts.c check_fdo1.c \ check_fdo2.c check_fdo3.c check_fdo_bufovflw.c \ check_gaia_utf8.c check_gaia_util.c check_geom_aux.c \ check_geometry_cols.c check_geoscvt_fncts.c \ check_get_normal_row.c check_get_normal_row_bad_geopackage.c \ check_get_normal_row_bad_geopackage2.c check_get_normal_zoom.c \ check_get_normal_zoom_bad_geopackage.c \ check_get_normal_zoom_bad_geopackage2.c \ check_get_normal_zoom_extension_load.c \ check_gpkgGetImageFormat.c check_gpkgGetImageFormat_nonblob.c \ check_gpkgGetImageFormat_nonimage.c \ check_gpkgGetImageFormat_png.c check_gpkgGetImageFormat_tiff.c \ check_gpkgGetImageFormat_webp.c check_init.c check_init2.c \ check_libxml2.c check_math_funcs.c check_mbrcache.c \ check_md5.c check_point_to_tile.c \ check_point_to_tile_bad_tablename.c \ check_point_to_tile_broken_geopackage.c \ check_point_to_tile_broken_geopackage2.c \ check_point_to_tile_broken_srid.c \ check_point_to_tile_different_srid.c \ check_point_to_tile_integer_coordinates.c \ check_point_to_tile_multiresult.c \ check_point_to_tile_no_tile.c \ check_point_to_tile_wrong_arg_type.c check_recover_geom.c \ check_relations_fncts.c check_shp_load.c check_shp_load_3d.c \ check_spatialindex.c check_sql_stmt.c check_styling.c \ check_version.c check_virtual_ovflw.c check_virtualtable1.c \ check_virtualtable2.c check_virtualtable3.c \ check_virtualtable4.c check_virtualtable5.c \ check_virtualtable6.c check_virtualxpath.c check_wfsin.c \ check_xls_load.c shape_3d.c shape_cp1252.c shape_primitives.c \ shape_utf8_1.c shape_utf8_1ex.c shape_utf8_2.c DIST_SOURCES = check_add_rt_metadata_triggers.c \ check_add_rt_metadata_triggers_bad_table_name.c \ check_add_rt_metadata_triggers_wrong_arg_type.c \ check_add_tile_triggers.c \ check_add_tile_triggers_bad_table_name.c check_bufovflw.c \ check_create.c check_createBaseTables.c check_dbf_load.c \ check_dxf.c check_endian.c check_exif.c check_exif2.c \ check_extension.c check_extra_relations_fncts.c check_fdo1.c \ check_fdo2.c check_fdo3.c check_fdo_bufovflw.c \ check_gaia_utf8.c check_gaia_util.c check_geom_aux.c \ check_geometry_cols.c check_geoscvt_fncts.c \ check_get_normal_row.c check_get_normal_row_bad_geopackage.c \ check_get_normal_row_bad_geopackage2.c check_get_normal_zoom.c \ check_get_normal_zoom_bad_geopackage.c \ check_get_normal_zoom_bad_geopackage2.c \ check_get_normal_zoom_extension_load.c \ check_gpkgGetImageFormat.c check_gpkgGetImageFormat_nonblob.c \ check_gpkgGetImageFormat_nonimage.c \ check_gpkgGetImageFormat_png.c check_gpkgGetImageFormat_tiff.c \ check_gpkgGetImageFormat_webp.c check_init.c check_init2.c \ check_libxml2.c check_math_funcs.c check_mbrcache.c \ check_md5.c check_point_to_tile.c \ check_point_to_tile_bad_tablename.c \ check_point_to_tile_broken_geopackage.c \ check_point_to_tile_broken_geopackage2.c \ check_point_to_tile_broken_srid.c \ check_point_to_tile_different_srid.c \ check_point_to_tile_integer_coordinates.c \ check_point_to_tile_multiresult.c \ check_point_to_tile_no_tile.c \ check_point_to_tile_wrong_arg_type.c check_recover_geom.c \ check_relations_fncts.c check_shp_load.c check_shp_load_3d.c \ check_spatialindex.c check_sql_stmt.c check_styling.c \ check_version.c check_virtual_ovflw.c check_virtualtable1.c \ check_virtualtable2.c check_virtualtable3.c \ check_virtualtable4.c check_virtualtable5.c \ check_virtualtable6.c check_virtualxpath.c check_wfsin.c \ check_xls_load.c shape_3d.c shape_cp1252.c shape_primitives.c \ shape_utf8_1.c shape_utf8_1ex.c shape_utf8_2.c RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags am__tty_colors_dummy = \ mgn= red= grn= lgn= blu= brg= std=; \ am__color_tests=no am__tty_colors = $(am__tty_colors_dummy) DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ INCLUDES = @CFLAGS@ @GEOS_CFLAGS@ @LIBXML2_CFLAGS@ AM_CFLAGS = -I@srcdir@/../src/headers -I@srcdir@ AM_LDFLAGS = -L../src -lspatialite -lm $(GCOV_FLAGS) TESTS = $(check_PROGRAMS) MOSTLYCLEANFILES = *.gcna *.gcno *.gcda EXTRA_DIST = asprintf4win.h \ fnmatch_impl4win.h \ fnmatch4win.h \ scandir4win.h \ test_helpers.h \ shapetest1.dbf \ shapetest1.prj \ shapetest1.qpj \ shapetest1.shp \ shapetest1.shx \ test_under_valgrind.sh \ WritingSQLTestCase.txt \ test-legacy-2.3.1.sqlite \ test-legacy-3.0.1.sqlite \ test-invalid.sqlite \ shp/new-caledonia/buildings.dbf \ shp/new-caledonia/buildings.prj \ shp/new-caledonia/buildings.shp \ shp/new-caledonia/buildings.shx \ shp/new-caledonia/points.dbf \ shp/new-caledonia/points.prj \ shp/new-caledonia/points.shp \ shp/new-caledonia/points.shx \ shp/new-caledonia/railways.dbf \ shp/new-caledonia/railways.shp \ shp/new-caledonia/railways.shx \ shp/gaza/aeroway.dbf \ shp/gaza/aeroway.prj \ shp/gaza/aeroway.shp \ shp/gaza/aeroway.shx \ shp/gaza/barrier.dbf \ shp/gaza/barrier.prj \ shp/gaza/barrier.shp \ shp/gaza/barrier.shx \ shp/gaza/route.dbf \ shp/gaza/route.prj \ shp/gaza/route.shp \ shp/gaza/route.shx \ shp/taiwan/hystoric.dbf \ shp/taiwan/hystoric.prj \ shp/taiwan/hystoric.shp \ shp/taiwan/hystoric.shx \ shp/taiwan/leisure.dbf \ shp/taiwan/leisure.prj \ shp/taiwan/leisure.shp \ shp/taiwan/leisure.shx \ shp/taiwan/route.dbf \ shp/taiwan/route.prj \ shp/taiwan/route.shp \ shp/taiwan/route.shx \ shp/merano-3d/points.dbf \ shp/merano-3d/points.prj \ shp/merano-3d/points.shp \ shp/merano-3d/points.shx \ shp/merano-3d/polygons.dbf \ shp/merano-3d/polygons.prj \ shp/merano-3d/polygons.shp \ shp/merano-3d/polygons.shx \ shp/merano-3d/roads.dbf \ shp/merano-3d/roads.prj \ shp/merano-3d/roads.shp \ shp/merano-3d/roads.shx \ shp/foggia/local_councils.dbf \ shp/foggia/local_councils.prj \ shp/foggia/local_councils.shp \ shp/foggia/local_councils.shx \ testcase1.xls \ testcase1.csv \ books.xml books.xsd opera.xml opera.xsd \ movies.xml movies.xsd books-bad.xml books-bad.xsd \ inspire-data-example.xml stazioni_se.xml \ raster_se.xml thunderstorm_mild.svg \ tile000.jpeg tile101.jpeg tile111.jpeg \ test.webp tile100.jpeg tile110.jpeg \ Apple-iPhone-4.jpg empty.png empty.tif \ test.wfs testDescribeFeatureType.wfs \ getcapabilities-1.0.0.wfs \ getcapabilities-1.1.0.wfs \ describefeaturetype.wfs \ 22.dxf f06.dxf l02.dxf p05.dxf \ archaic.dxf linked.dxf hatch.dxf \ symbol.dxf SUBDIRS = sql_stmt_geosadvanced_tests sql_stmt_geos_tests \ sql_stmt_geostrunk_tests sql_stmt_libxml2_tests \ sql_stmt_lwgeom_tests sql_stmt_mathsql_tests \ sql_stmt_proj_tests sql_stmt_security_tests \ sql_stmt_tests sql_stmt_xmlsec_tests all: all-recursive .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign test/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-checkPROGRAMS: @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list check_add_rt_metadata_triggers$(EXEEXT): $(check_add_rt_metadata_triggers_OBJECTS) $(check_add_rt_metadata_triggers_DEPENDENCIES) $(EXTRA_check_add_rt_metadata_triggers_DEPENDENCIES) @rm -f check_add_rt_metadata_triggers$(EXEEXT) $(LINK) $(check_add_rt_metadata_triggers_OBJECTS) $(check_add_rt_metadata_triggers_LDADD) $(LIBS) check_add_rt_metadata_triggers_bad_table_name$(EXEEXT): $(check_add_rt_metadata_triggers_bad_table_name_OBJECTS) $(check_add_rt_metadata_triggers_bad_table_name_DEPENDENCIES) $(EXTRA_check_add_rt_metadata_triggers_bad_table_name_DEPENDENCIES) @rm -f check_add_rt_metadata_triggers_bad_table_name$(EXEEXT) $(LINK) $(check_add_rt_metadata_triggers_bad_table_name_OBJECTS) $(check_add_rt_metadata_triggers_bad_table_name_LDADD) $(LIBS) check_add_rt_metadata_triggers_wrong_arg_type$(EXEEXT): $(check_add_rt_metadata_triggers_wrong_arg_type_OBJECTS) $(check_add_rt_metadata_triggers_wrong_arg_type_DEPENDENCIES) $(EXTRA_check_add_rt_metadata_triggers_wrong_arg_type_DEPENDENCIES) @rm -f check_add_rt_metadata_triggers_wrong_arg_type$(EXEEXT) $(LINK) $(check_add_rt_metadata_triggers_wrong_arg_type_OBJECTS) $(check_add_rt_metadata_triggers_wrong_arg_type_LDADD) $(LIBS) check_add_tile_triggers$(EXEEXT): $(check_add_tile_triggers_OBJECTS) $(check_add_tile_triggers_DEPENDENCIES) $(EXTRA_check_add_tile_triggers_DEPENDENCIES) @rm -f check_add_tile_triggers$(EXEEXT) $(LINK) $(check_add_tile_triggers_OBJECTS) $(check_add_tile_triggers_LDADD) $(LIBS) check_add_tile_triggers_bad_table_name$(EXEEXT): $(check_add_tile_triggers_bad_table_name_OBJECTS) $(check_add_tile_triggers_bad_table_name_DEPENDENCIES) $(EXTRA_check_add_tile_triggers_bad_table_name_DEPENDENCIES) @rm -f check_add_tile_triggers_bad_table_name$(EXEEXT) $(LINK) $(check_add_tile_triggers_bad_table_name_OBJECTS) $(check_add_tile_triggers_bad_table_name_LDADD) $(LIBS) check_bufovflw$(EXEEXT): $(check_bufovflw_OBJECTS) $(check_bufovflw_DEPENDENCIES) $(EXTRA_check_bufovflw_DEPENDENCIES) @rm -f check_bufovflw$(EXEEXT) $(LINK) $(check_bufovflw_OBJECTS) $(check_bufovflw_LDADD) $(LIBS) check_create$(EXEEXT): $(check_create_OBJECTS) $(check_create_DEPENDENCIES) $(EXTRA_check_create_DEPENDENCIES) @rm -f check_create$(EXEEXT) $(LINK) $(check_create_OBJECTS) $(check_create_LDADD) $(LIBS) check_createBaseTables$(EXEEXT): $(check_createBaseTables_OBJECTS) $(check_createBaseTables_DEPENDENCIES) $(EXTRA_check_createBaseTables_DEPENDENCIES) @rm -f check_createBaseTables$(EXEEXT) $(LINK) $(check_createBaseTables_OBJECTS) $(check_createBaseTables_LDADD) $(LIBS) check_dbf_load$(EXEEXT): $(check_dbf_load_OBJECTS) $(check_dbf_load_DEPENDENCIES) $(EXTRA_check_dbf_load_DEPENDENCIES) @rm -f check_dbf_load$(EXEEXT) $(LINK) $(check_dbf_load_OBJECTS) $(check_dbf_load_LDADD) $(LIBS) check_dxf$(EXEEXT): $(check_dxf_OBJECTS) $(check_dxf_DEPENDENCIES) $(EXTRA_check_dxf_DEPENDENCIES) @rm -f check_dxf$(EXEEXT) $(LINK) $(check_dxf_OBJECTS) $(check_dxf_LDADD) $(LIBS) check_endian$(EXEEXT): $(check_endian_OBJECTS) $(check_endian_DEPENDENCIES) $(EXTRA_check_endian_DEPENDENCIES) @rm -f check_endian$(EXEEXT) $(LINK) $(check_endian_OBJECTS) $(check_endian_LDADD) $(LIBS) check_exif$(EXEEXT): $(check_exif_OBJECTS) $(check_exif_DEPENDENCIES) $(EXTRA_check_exif_DEPENDENCIES) @rm -f check_exif$(EXEEXT) $(LINK) $(check_exif_OBJECTS) $(check_exif_LDADD) $(LIBS) check_exif2$(EXEEXT): $(check_exif2_OBJECTS) $(check_exif2_DEPENDENCIES) $(EXTRA_check_exif2_DEPENDENCIES) @rm -f check_exif2$(EXEEXT) $(LINK) $(check_exif2_OBJECTS) $(check_exif2_LDADD) $(LIBS) check_extension$(EXEEXT): $(check_extension_OBJECTS) $(check_extension_DEPENDENCIES) $(EXTRA_check_extension_DEPENDENCIES) @rm -f check_extension$(EXEEXT) $(LINK) $(check_extension_OBJECTS) $(check_extension_LDADD) $(LIBS) check_extra_relations_fncts$(EXEEXT): $(check_extra_relations_fncts_OBJECTS) $(check_extra_relations_fncts_DEPENDENCIES) $(EXTRA_check_extra_relations_fncts_DEPENDENCIES) @rm -f check_extra_relations_fncts$(EXEEXT) $(LINK) $(check_extra_relations_fncts_OBJECTS) $(check_extra_relations_fncts_LDADD) $(LIBS) check_fdo1$(EXEEXT): $(check_fdo1_OBJECTS) $(check_fdo1_DEPENDENCIES) $(EXTRA_check_fdo1_DEPENDENCIES) @rm -f check_fdo1$(EXEEXT) $(LINK) $(check_fdo1_OBJECTS) $(check_fdo1_LDADD) $(LIBS) check_fdo2$(EXEEXT): $(check_fdo2_OBJECTS) $(check_fdo2_DEPENDENCIES) $(EXTRA_check_fdo2_DEPENDENCIES) @rm -f check_fdo2$(EXEEXT) $(LINK) $(check_fdo2_OBJECTS) $(check_fdo2_LDADD) $(LIBS) check_fdo3$(EXEEXT): $(check_fdo3_OBJECTS) $(check_fdo3_DEPENDENCIES) $(EXTRA_check_fdo3_DEPENDENCIES) @rm -f check_fdo3$(EXEEXT) $(LINK) $(check_fdo3_OBJECTS) $(check_fdo3_LDADD) $(LIBS) check_fdo_bufovflw$(EXEEXT): $(check_fdo_bufovflw_OBJECTS) $(check_fdo_bufovflw_DEPENDENCIES) $(EXTRA_check_fdo_bufovflw_DEPENDENCIES) @rm -f check_fdo_bufovflw$(EXEEXT) $(LINK) $(check_fdo_bufovflw_OBJECTS) $(check_fdo_bufovflw_LDADD) $(LIBS) check_gaia_utf8$(EXEEXT): $(check_gaia_utf8_OBJECTS) $(check_gaia_utf8_DEPENDENCIES) $(EXTRA_check_gaia_utf8_DEPENDENCIES) @rm -f check_gaia_utf8$(EXEEXT) $(LINK) $(check_gaia_utf8_OBJECTS) $(check_gaia_utf8_LDADD) $(LIBS) check_gaia_util$(EXEEXT): $(check_gaia_util_OBJECTS) $(check_gaia_util_DEPENDENCIES) $(EXTRA_check_gaia_util_DEPENDENCIES) @rm -f check_gaia_util$(EXEEXT) $(LINK) $(check_gaia_util_OBJECTS) $(check_gaia_util_LDADD) $(LIBS) check_geom_aux$(EXEEXT): $(check_geom_aux_OBJECTS) $(check_geom_aux_DEPENDENCIES) $(EXTRA_check_geom_aux_DEPENDENCIES) @rm -f check_geom_aux$(EXEEXT) $(LINK) $(check_geom_aux_OBJECTS) $(check_geom_aux_LDADD) $(LIBS) check_geometry_cols$(EXEEXT): $(check_geometry_cols_OBJECTS) $(check_geometry_cols_DEPENDENCIES) $(EXTRA_check_geometry_cols_DEPENDENCIES) @rm -f check_geometry_cols$(EXEEXT) $(LINK) $(check_geometry_cols_OBJECTS) $(check_geometry_cols_LDADD) $(LIBS) check_geoscvt_fncts$(EXEEXT): $(check_geoscvt_fncts_OBJECTS) $(check_geoscvt_fncts_DEPENDENCIES) $(EXTRA_check_geoscvt_fncts_DEPENDENCIES) @rm -f check_geoscvt_fncts$(EXEEXT) $(LINK) $(check_geoscvt_fncts_OBJECTS) $(check_geoscvt_fncts_LDADD) $(LIBS) check_get_normal_row$(EXEEXT): $(check_get_normal_row_OBJECTS) $(check_get_normal_row_DEPENDENCIES) $(EXTRA_check_get_normal_row_DEPENDENCIES) @rm -f check_get_normal_row$(EXEEXT) $(LINK) $(check_get_normal_row_OBJECTS) $(check_get_normal_row_LDADD) $(LIBS) check_get_normal_row_bad_geopackage$(EXEEXT): $(check_get_normal_row_bad_geopackage_OBJECTS) $(check_get_normal_row_bad_geopackage_DEPENDENCIES) $(EXTRA_check_get_normal_row_bad_geopackage_DEPENDENCIES) @rm -f check_get_normal_row_bad_geopackage$(EXEEXT) $(LINK) $(check_get_normal_row_bad_geopackage_OBJECTS) $(check_get_normal_row_bad_geopackage_LDADD) $(LIBS) check_get_normal_row_bad_geopackage2$(EXEEXT): $(check_get_normal_row_bad_geopackage2_OBJECTS) $(check_get_normal_row_bad_geopackage2_DEPENDENCIES) $(EXTRA_check_get_normal_row_bad_geopackage2_DEPENDENCIES) @rm -f check_get_normal_row_bad_geopackage2$(EXEEXT) $(LINK) $(check_get_normal_row_bad_geopackage2_OBJECTS) $(check_get_normal_row_bad_geopackage2_LDADD) $(LIBS) check_get_normal_zoom$(EXEEXT): $(check_get_normal_zoom_OBJECTS) $(check_get_normal_zoom_DEPENDENCIES) $(EXTRA_check_get_normal_zoom_DEPENDENCIES) @rm -f check_get_normal_zoom$(EXEEXT) $(LINK) $(check_get_normal_zoom_OBJECTS) $(check_get_normal_zoom_LDADD) $(LIBS) check_get_normal_zoom_bad_geopackage$(EXEEXT): $(check_get_normal_zoom_bad_geopackage_OBJECTS) $(check_get_normal_zoom_bad_geopackage_DEPENDENCIES) $(EXTRA_check_get_normal_zoom_bad_geopackage_DEPENDENCIES) @rm -f check_get_normal_zoom_bad_geopackage$(EXEEXT) $(LINK) $(check_get_normal_zoom_bad_geopackage_OBJECTS) $(check_get_normal_zoom_bad_geopackage_LDADD) $(LIBS) check_get_normal_zoom_bad_geopackage2$(EXEEXT): $(check_get_normal_zoom_bad_geopackage2_OBJECTS) $(check_get_normal_zoom_bad_geopackage2_DEPENDENCIES) $(EXTRA_check_get_normal_zoom_bad_geopackage2_DEPENDENCIES) @rm -f check_get_normal_zoom_bad_geopackage2$(EXEEXT) $(LINK) $(check_get_normal_zoom_bad_geopackage2_OBJECTS) $(check_get_normal_zoom_bad_geopackage2_LDADD) $(LIBS) check_get_normal_zoom_extension_load$(EXEEXT): $(check_get_normal_zoom_extension_load_OBJECTS) $(check_get_normal_zoom_extension_load_DEPENDENCIES) $(EXTRA_check_get_normal_zoom_extension_load_DEPENDENCIES) @rm -f check_get_normal_zoom_extension_load$(EXEEXT) $(LINK) $(check_get_normal_zoom_extension_load_OBJECTS) $(check_get_normal_zoom_extension_load_LDADD) $(LIBS) check_gpkgGetImageFormat$(EXEEXT): $(check_gpkgGetImageFormat_OBJECTS) $(check_gpkgGetImageFormat_DEPENDENCIES) $(EXTRA_check_gpkgGetImageFormat_DEPENDENCIES) @rm -f check_gpkgGetImageFormat$(EXEEXT) $(LINK) $(check_gpkgGetImageFormat_OBJECTS) $(check_gpkgGetImageFormat_LDADD) $(LIBS) check_gpkgGetImageFormat_nonblob$(EXEEXT): $(check_gpkgGetImageFormat_nonblob_OBJECTS) $(check_gpkgGetImageFormat_nonblob_DEPENDENCIES) $(EXTRA_check_gpkgGetImageFormat_nonblob_DEPENDENCIES) @rm -f check_gpkgGetImageFormat_nonblob$(EXEEXT) $(LINK) $(check_gpkgGetImageFormat_nonblob_OBJECTS) $(check_gpkgGetImageFormat_nonblob_LDADD) $(LIBS) check_gpkgGetImageFormat_nonimage$(EXEEXT): $(check_gpkgGetImageFormat_nonimage_OBJECTS) $(check_gpkgGetImageFormat_nonimage_DEPENDENCIES) $(EXTRA_check_gpkgGetImageFormat_nonimage_DEPENDENCIES) @rm -f check_gpkgGetImageFormat_nonimage$(EXEEXT) $(LINK) $(check_gpkgGetImageFormat_nonimage_OBJECTS) $(check_gpkgGetImageFormat_nonimage_LDADD) $(LIBS) check_gpkgGetImageFormat_png$(EXEEXT): $(check_gpkgGetImageFormat_png_OBJECTS) $(check_gpkgGetImageFormat_png_DEPENDENCIES) $(EXTRA_check_gpkgGetImageFormat_png_DEPENDENCIES) @rm -f check_gpkgGetImageFormat_png$(EXEEXT) $(LINK) $(check_gpkgGetImageFormat_png_OBJECTS) $(check_gpkgGetImageFormat_png_LDADD) $(LIBS) check_gpkgGetImageFormat_tiff$(EXEEXT): $(check_gpkgGetImageFormat_tiff_OBJECTS) $(check_gpkgGetImageFormat_tiff_DEPENDENCIES) $(EXTRA_check_gpkgGetImageFormat_tiff_DEPENDENCIES) @rm -f check_gpkgGetImageFormat_tiff$(EXEEXT) $(LINK) $(check_gpkgGetImageFormat_tiff_OBJECTS) $(check_gpkgGetImageFormat_tiff_LDADD) $(LIBS) check_gpkgGetImageFormat_webp$(EXEEXT): $(check_gpkgGetImageFormat_webp_OBJECTS) $(check_gpkgGetImageFormat_webp_DEPENDENCIES) $(EXTRA_check_gpkgGetImageFormat_webp_DEPENDENCIES) @rm -f check_gpkgGetImageFormat_webp$(EXEEXT) $(LINK) $(check_gpkgGetImageFormat_webp_OBJECTS) $(check_gpkgGetImageFormat_webp_LDADD) $(LIBS) check_init$(EXEEXT): $(check_init_OBJECTS) $(check_init_DEPENDENCIES) $(EXTRA_check_init_DEPENDENCIES) @rm -f check_init$(EXEEXT) $(LINK) $(check_init_OBJECTS) $(check_init_LDADD) $(LIBS) check_init2$(EXEEXT): $(check_init2_OBJECTS) $(check_init2_DEPENDENCIES) $(EXTRA_check_init2_DEPENDENCIES) @rm -f check_init2$(EXEEXT) $(LINK) $(check_init2_OBJECTS) $(check_init2_LDADD) $(LIBS) check_libxml2$(EXEEXT): $(check_libxml2_OBJECTS) $(check_libxml2_DEPENDENCIES) $(EXTRA_check_libxml2_DEPENDENCIES) @rm -f check_libxml2$(EXEEXT) $(LINK) $(check_libxml2_OBJECTS) $(check_libxml2_LDADD) $(LIBS) check_math_funcs$(EXEEXT): $(check_math_funcs_OBJECTS) $(check_math_funcs_DEPENDENCIES) $(EXTRA_check_math_funcs_DEPENDENCIES) @rm -f check_math_funcs$(EXEEXT) $(LINK) $(check_math_funcs_OBJECTS) $(check_math_funcs_LDADD) $(LIBS) check_mbrcache$(EXEEXT): $(check_mbrcache_OBJECTS) $(check_mbrcache_DEPENDENCIES) $(EXTRA_check_mbrcache_DEPENDENCIES) @rm -f check_mbrcache$(EXEEXT) $(LINK) $(check_mbrcache_OBJECTS) $(check_mbrcache_LDADD) $(LIBS) check_md5$(EXEEXT): $(check_md5_OBJECTS) $(check_md5_DEPENDENCIES) $(EXTRA_check_md5_DEPENDENCIES) @rm -f check_md5$(EXEEXT) $(LINK) $(check_md5_OBJECTS) $(check_md5_LDADD) $(LIBS) check_point_to_tile$(EXEEXT): $(check_point_to_tile_OBJECTS) $(check_point_to_tile_DEPENDENCIES) $(EXTRA_check_point_to_tile_DEPENDENCIES) @rm -f check_point_to_tile$(EXEEXT) $(LINK) $(check_point_to_tile_OBJECTS) $(check_point_to_tile_LDADD) $(LIBS) check_point_to_tile_bad_tablename$(EXEEXT): $(check_point_to_tile_bad_tablename_OBJECTS) $(check_point_to_tile_bad_tablename_DEPENDENCIES) $(EXTRA_check_point_to_tile_bad_tablename_DEPENDENCIES) @rm -f check_point_to_tile_bad_tablename$(EXEEXT) $(LINK) $(check_point_to_tile_bad_tablename_OBJECTS) $(check_point_to_tile_bad_tablename_LDADD) $(LIBS) check_point_to_tile_broken_geopackage$(EXEEXT): $(check_point_to_tile_broken_geopackage_OBJECTS) $(check_point_to_tile_broken_geopackage_DEPENDENCIES) $(EXTRA_check_point_to_tile_broken_geopackage_DEPENDENCIES) @rm -f check_point_to_tile_broken_geopackage$(EXEEXT) $(LINK) $(check_point_to_tile_broken_geopackage_OBJECTS) $(check_point_to_tile_broken_geopackage_LDADD) $(LIBS) check_point_to_tile_broken_geopackage2$(EXEEXT): $(check_point_to_tile_broken_geopackage2_OBJECTS) $(check_point_to_tile_broken_geopackage2_DEPENDENCIES) $(EXTRA_check_point_to_tile_broken_geopackage2_DEPENDENCIES) @rm -f check_point_to_tile_broken_geopackage2$(EXEEXT) $(LINK) $(check_point_to_tile_broken_geopackage2_OBJECTS) $(check_point_to_tile_broken_geopackage2_LDADD) $(LIBS) check_point_to_tile_broken_srid$(EXEEXT): $(check_point_to_tile_broken_srid_OBJECTS) $(check_point_to_tile_broken_srid_DEPENDENCIES) $(EXTRA_check_point_to_tile_broken_srid_DEPENDENCIES) @rm -f check_point_to_tile_broken_srid$(EXEEXT) $(LINK) $(check_point_to_tile_broken_srid_OBJECTS) $(check_point_to_tile_broken_srid_LDADD) $(LIBS) check_point_to_tile_different_srid$(EXEEXT): $(check_point_to_tile_different_srid_OBJECTS) $(check_point_to_tile_different_srid_DEPENDENCIES) $(EXTRA_check_point_to_tile_different_srid_DEPENDENCIES) @rm -f check_point_to_tile_different_srid$(EXEEXT) $(LINK) $(check_point_to_tile_different_srid_OBJECTS) $(check_point_to_tile_different_srid_LDADD) $(LIBS) check_point_to_tile_integer_coordinates$(EXEEXT): $(check_point_to_tile_integer_coordinates_OBJECTS) $(check_point_to_tile_integer_coordinates_DEPENDENCIES) $(EXTRA_check_point_to_tile_integer_coordinates_DEPENDENCIES) @rm -f check_point_to_tile_integer_coordinates$(EXEEXT) $(LINK) $(check_point_to_tile_integer_coordinates_OBJECTS) $(check_point_to_tile_integer_coordinates_LDADD) $(LIBS) check_point_to_tile_multiresult$(EXEEXT): $(check_point_to_tile_multiresult_OBJECTS) $(check_point_to_tile_multiresult_DEPENDENCIES) $(EXTRA_check_point_to_tile_multiresult_DEPENDENCIES) @rm -f check_point_to_tile_multiresult$(EXEEXT) $(LINK) $(check_point_to_tile_multiresult_OBJECTS) $(check_point_to_tile_multiresult_LDADD) $(LIBS) check_point_to_tile_no_tile$(EXEEXT): $(check_point_to_tile_no_tile_OBJECTS) $(check_point_to_tile_no_tile_DEPENDENCIES) $(EXTRA_check_point_to_tile_no_tile_DEPENDENCIES) @rm -f check_point_to_tile_no_tile$(EXEEXT) $(LINK) $(check_point_to_tile_no_tile_OBJECTS) $(check_point_to_tile_no_tile_LDADD) $(LIBS) check_point_to_tile_wrong_arg_type$(EXEEXT): $(check_point_to_tile_wrong_arg_type_OBJECTS) $(check_point_to_tile_wrong_arg_type_DEPENDENCIES) $(EXTRA_check_point_to_tile_wrong_arg_type_DEPENDENCIES) @rm -f check_point_to_tile_wrong_arg_type$(EXEEXT) $(LINK) $(check_point_to_tile_wrong_arg_type_OBJECTS) $(check_point_to_tile_wrong_arg_type_LDADD) $(LIBS) check_recover_geom$(EXEEXT): $(check_recover_geom_OBJECTS) $(check_recover_geom_DEPENDENCIES) $(EXTRA_check_recover_geom_DEPENDENCIES) @rm -f check_recover_geom$(EXEEXT) $(LINK) $(check_recover_geom_OBJECTS) $(check_recover_geom_LDADD) $(LIBS) check_relations_fncts$(EXEEXT): $(check_relations_fncts_OBJECTS) $(check_relations_fncts_DEPENDENCIES) $(EXTRA_check_relations_fncts_DEPENDENCIES) @rm -f check_relations_fncts$(EXEEXT) $(LINK) $(check_relations_fncts_OBJECTS) $(check_relations_fncts_LDADD) $(LIBS) check_shp_load$(EXEEXT): $(check_shp_load_OBJECTS) $(check_shp_load_DEPENDENCIES) $(EXTRA_check_shp_load_DEPENDENCIES) @rm -f check_shp_load$(EXEEXT) $(LINK) $(check_shp_load_OBJECTS) $(check_shp_load_LDADD) $(LIBS) check_shp_load_3d$(EXEEXT): $(check_shp_load_3d_OBJECTS) $(check_shp_load_3d_DEPENDENCIES) $(EXTRA_check_shp_load_3d_DEPENDENCIES) @rm -f check_shp_load_3d$(EXEEXT) $(LINK) $(check_shp_load_3d_OBJECTS) $(check_shp_load_3d_LDADD) $(LIBS) check_spatialindex$(EXEEXT): $(check_spatialindex_OBJECTS) $(check_spatialindex_DEPENDENCIES) $(EXTRA_check_spatialindex_DEPENDENCIES) @rm -f check_spatialindex$(EXEEXT) $(LINK) $(check_spatialindex_OBJECTS) $(check_spatialindex_LDADD) $(LIBS) check_sql_stmt$(EXEEXT): $(check_sql_stmt_OBJECTS) $(check_sql_stmt_DEPENDENCIES) $(EXTRA_check_sql_stmt_DEPENDENCIES) @rm -f check_sql_stmt$(EXEEXT) $(LINK) $(check_sql_stmt_OBJECTS) $(check_sql_stmt_LDADD) $(LIBS) check_styling$(EXEEXT): $(check_styling_OBJECTS) $(check_styling_DEPENDENCIES) $(EXTRA_check_styling_DEPENDENCIES) @rm -f check_styling$(EXEEXT) $(LINK) $(check_styling_OBJECTS) $(check_styling_LDADD) $(LIBS) check_version$(EXEEXT): $(check_version_OBJECTS) $(check_version_DEPENDENCIES) $(EXTRA_check_version_DEPENDENCIES) @rm -f check_version$(EXEEXT) $(LINK) $(check_version_OBJECTS) $(check_version_LDADD) $(LIBS) check_virtual_ovflw$(EXEEXT): $(check_virtual_ovflw_OBJECTS) $(check_virtual_ovflw_DEPENDENCIES) $(EXTRA_check_virtual_ovflw_DEPENDENCIES) @rm -f check_virtual_ovflw$(EXEEXT) $(LINK) $(check_virtual_ovflw_OBJECTS) $(check_virtual_ovflw_LDADD) $(LIBS) check_virtualtable1$(EXEEXT): $(check_virtualtable1_OBJECTS) $(check_virtualtable1_DEPENDENCIES) $(EXTRA_check_virtualtable1_DEPENDENCIES) @rm -f check_virtualtable1$(EXEEXT) $(LINK) $(check_virtualtable1_OBJECTS) $(check_virtualtable1_LDADD) $(LIBS) check_virtualtable2$(EXEEXT): $(check_virtualtable2_OBJECTS) $(check_virtualtable2_DEPENDENCIES) $(EXTRA_check_virtualtable2_DEPENDENCIES) @rm -f check_virtualtable2$(EXEEXT) $(LINK) $(check_virtualtable2_OBJECTS) $(check_virtualtable2_LDADD) $(LIBS) check_virtualtable3$(EXEEXT): $(check_virtualtable3_OBJECTS) $(check_virtualtable3_DEPENDENCIES) $(EXTRA_check_virtualtable3_DEPENDENCIES) @rm -f check_virtualtable3$(EXEEXT) $(LINK) $(check_virtualtable3_OBJECTS) $(check_virtualtable3_LDADD) $(LIBS) check_virtualtable4$(EXEEXT): $(check_virtualtable4_OBJECTS) $(check_virtualtable4_DEPENDENCIES) $(EXTRA_check_virtualtable4_DEPENDENCIES) @rm -f check_virtualtable4$(EXEEXT) $(LINK) $(check_virtualtable4_OBJECTS) $(check_virtualtable4_LDADD) $(LIBS) check_virtualtable5$(EXEEXT): $(check_virtualtable5_OBJECTS) $(check_virtualtable5_DEPENDENCIES) $(EXTRA_check_virtualtable5_DEPENDENCIES) @rm -f check_virtualtable5$(EXEEXT) $(LINK) $(check_virtualtable5_OBJECTS) $(check_virtualtable5_LDADD) $(LIBS) check_virtualtable6$(EXEEXT): $(check_virtualtable6_OBJECTS) $(check_virtualtable6_DEPENDENCIES) $(EXTRA_check_virtualtable6_DEPENDENCIES) @rm -f check_virtualtable6$(EXEEXT) $(LINK) $(check_virtualtable6_OBJECTS) $(check_virtualtable6_LDADD) $(LIBS) check_virtualxpath$(EXEEXT): $(check_virtualxpath_OBJECTS) $(check_virtualxpath_DEPENDENCIES) $(EXTRA_check_virtualxpath_DEPENDENCIES) @rm -f check_virtualxpath$(EXEEXT) $(LINK) $(check_virtualxpath_OBJECTS) $(check_virtualxpath_LDADD) $(LIBS) check_wfsin$(EXEEXT): $(check_wfsin_OBJECTS) $(check_wfsin_DEPENDENCIES) $(EXTRA_check_wfsin_DEPENDENCIES) @rm -f check_wfsin$(EXEEXT) $(LINK) $(check_wfsin_OBJECTS) $(check_wfsin_LDADD) $(LIBS) check_xls_load$(EXEEXT): $(check_xls_load_OBJECTS) $(check_xls_load_DEPENDENCIES) $(EXTRA_check_xls_load_DEPENDENCIES) @rm -f check_xls_load$(EXEEXT) $(LINK) $(check_xls_load_OBJECTS) $(check_xls_load_LDADD) $(LIBS) shape_3d$(EXEEXT): $(shape_3d_OBJECTS) $(shape_3d_DEPENDENCIES) $(EXTRA_shape_3d_DEPENDENCIES) @rm -f shape_3d$(EXEEXT) $(LINK) $(shape_3d_OBJECTS) $(shape_3d_LDADD) $(LIBS) shape_cp1252$(EXEEXT): $(shape_cp1252_OBJECTS) $(shape_cp1252_DEPENDENCIES) $(EXTRA_shape_cp1252_DEPENDENCIES) @rm -f shape_cp1252$(EXEEXT) $(LINK) $(shape_cp1252_OBJECTS) $(shape_cp1252_LDADD) $(LIBS) shape_primitives$(EXEEXT): $(shape_primitives_OBJECTS) $(shape_primitives_DEPENDENCIES) $(EXTRA_shape_primitives_DEPENDENCIES) @rm -f shape_primitives$(EXEEXT) $(LINK) $(shape_primitives_OBJECTS) $(shape_primitives_LDADD) $(LIBS) shape_utf8_1$(EXEEXT): $(shape_utf8_1_OBJECTS) $(shape_utf8_1_DEPENDENCIES) $(EXTRA_shape_utf8_1_DEPENDENCIES) @rm -f shape_utf8_1$(EXEEXT) $(LINK) $(shape_utf8_1_OBJECTS) $(shape_utf8_1_LDADD) $(LIBS) shape_utf8_1ex$(EXEEXT): $(shape_utf8_1ex_OBJECTS) $(shape_utf8_1ex_DEPENDENCIES) $(EXTRA_shape_utf8_1ex_DEPENDENCIES) @rm -f shape_utf8_1ex$(EXEEXT) $(LINK) $(shape_utf8_1ex_OBJECTS) $(shape_utf8_1ex_LDADD) $(LIBS) shape_utf8_2$(EXEEXT): $(shape_utf8_2_OBJECTS) $(shape_utf8_2_DEPENDENCIES) $(EXTRA_shape_utf8_2_DEPENDENCIES) @rm -f shape_utf8_2$(EXEEXT) $(LINK) $(shape_utf8_2_OBJECTS) $(shape_utf8_2_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_add_rt_metadata_triggers.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_add_rt_metadata_triggers_bad_table_name.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_add_rt_metadata_triggers_wrong_arg_type.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_add_tile_triggers.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_add_tile_triggers_bad_table_name.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_bufovflw.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_create.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_createBaseTables.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_dbf_load.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_dxf.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_endian.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_exif.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_exif2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_extension.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_extra_relations_fncts.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_fdo1.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_fdo2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_fdo3.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_fdo_bufovflw.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_gaia_utf8.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_gaia_util.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_geom_aux.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_geometry_cols.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_geoscvt_fncts.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_get_normal_row.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_get_normal_row_bad_geopackage.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_get_normal_row_bad_geopackage2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_get_normal_zoom.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_get_normal_zoom_bad_geopackage.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_get_normal_zoom_bad_geopackage2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_get_normal_zoom_extension_load.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_gpkgGetImageFormat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_gpkgGetImageFormat_nonblob.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_gpkgGetImageFormat_nonimage.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_gpkgGetImageFormat_png.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_gpkgGetImageFormat_tiff.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_gpkgGetImageFormat_webp.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_init.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_init2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_libxml2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_math_funcs.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_mbrcache.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_md5.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_point_to_tile.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_point_to_tile_bad_tablename.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_point_to_tile_broken_geopackage.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_point_to_tile_broken_geopackage2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_point_to_tile_broken_srid.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_point_to_tile_different_srid.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_point_to_tile_integer_coordinates.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_point_to_tile_multiresult.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_point_to_tile_no_tile.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_point_to_tile_wrong_arg_type.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_recover_geom.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_relations_fncts.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_shp_load.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_shp_load_3d.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_spatialindex.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_sql_stmt.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_styling.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_version.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_virtual_ovflw.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_virtualtable1.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_virtualtable2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_virtualtable3.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_virtualtable4.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_virtualtable5.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_virtualtable6.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_virtualxpath.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_wfsin.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_xls_load.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/shape_3d.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/shape_cp1252.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/shape_primitives.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/shape_utf8_1.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/shape_utf8_1ex.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/shape_utf8_2.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(RECURSIVE_TARGETS) $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done cscopelist-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) cscopelist); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive $(HEADERS) $(SOURCES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags check-TESTS: $(TESTS) @failed=0; all=0; xfail=0; xpass=0; skip=0; \ srcdir=$(srcdir); export srcdir; \ list=' $(TESTS) '; \ $(am__tty_colors); \ if test -n "$$list"; then \ for tst in $$list; do \ if test -f ./$$tst; then dir=./; \ elif test -f $$tst; then dir=; \ else dir="$(srcdir)/"; fi; \ if $(TESTS_ENVIRONMENT) $${dir}$$tst $(AM_TESTS_FD_REDIRECT); then \ all=`expr $$all + 1`; \ case " $(XFAIL_TESTS) " in \ *[\ \ ]$$tst[\ \ ]*) \ xpass=`expr $$xpass + 1`; \ failed=`expr $$failed + 1`; \ col=$$red; res=XPASS; \ ;; \ *) \ col=$$grn; res=PASS; \ ;; \ esac; \ elif test $$? -ne 77; then \ all=`expr $$all + 1`; \ case " $(XFAIL_TESTS) " in \ *[\ \ ]$$tst[\ \ ]*) \ xfail=`expr $$xfail + 1`; \ col=$$lgn; res=XFAIL; \ ;; \ *) \ failed=`expr $$failed + 1`; \ col=$$red; res=FAIL; \ ;; \ esac; \ else \ skip=`expr $$skip + 1`; \ col=$$blu; res=SKIP; \ fi; \ echo "$${col}$$res$${std}: $$tst"; \ done; \ if test "$$all" -eq 1; then \ tests="test"; \ All=""; \ else \ tests="tests"; \ All="All "; \ fi; \ if test "$$failed" -eq 0; then \ if test "$$xfail" -eq 0; then \ banner="$$All$$all $$tests passed"; \ else \ if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ fi; \ else \ if test "$$xpass" -eq 0; then \ banner="$$failed of $$all $$tests failed"; \ else \ if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ fi; \ fi; \ dashes="$$banner"; \ skipped=""; \ if test "$$skip" -ne 0; then \ if test "$$skip" -eq 1; then \ skipped="($$skip test was not run)"; \ else \ skipped="($$skip tests were not run)"; \ fi; \ test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ dashes="$$skipped"; \ fi; \ report=""; \ if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ report="Please report to $(PACKAGE_BUGREPORT)"; \ test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ dashes="$$report"; \ fi; \ dashes=`echo "$$dashes" | sed s/./=/g`; \ if test "$$failed" -eq 0; then \ col="$$grn"; \ else \ col="$$red"; \ fi; \ echo "$${col}$$dashes$${std}"; \ echo "$${col}$$banner$${std}"; \ test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \ test -z "$$report" || echo "$${col}$$report$${std}"; \ echo "$${col}$$dashes$${std}"; \ test "$$failed" -eq 0; \ else :; fi distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) $(MAKE) $(AM_MAKEFLAGS) check-TESTS check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-checkPROGRAMS clean-generic clean-libtool \ mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) check-am \ cscopelist-recursive ctags-recursive install-am install-strip \ tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-TESTS check-am clean \ clean-checkPROGRAMS clean-generic clean-libtool cscopelist \ cscopelist-recursive ctags ctags-recursive distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libspatialite-4.1.1/test/check_dxf.c0000664000175000017500000007262312163502133014335 00000000000000/* check_dxf.c -- SpatiaLite Test Case Author: Sandro Furieri ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" #include "spatialite/gg_dxf.h" static int check_22_auto() { /* testing 22.dxf - pass #1 autoDims */ int ret; sqlite3 *handle; char *err_msg = NULL; gaiaDxfParserPtr dxf; void *cache = spatialite_alloc_connection(); ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); sqlite3_close(handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -2; } dxf = gaiaCreateDxfParser (-2, GAIA_DXF_AUTO_2D_3D, NULL, NULL, GAIA_DXF_RING_NONE); if (dxf == NULL) { fprintf(stderr, "CREATE DXF PARSER: unexpected NULL \"22.dx\" auto)\n"); return -3; } ret = gaiaParseDxfFile (dxf, "./22.dxf"); if (ret == 0) { fprintf(stderr, "Unable to parse \"22.dxf\" byLayers auto\n"); return -4; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 0); if (ret == 0) { fprintf(stderr, "Unable to load \"22.dxf\" auto byLayer\n"); return -5; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); if (ret == 0) { fprintf(stderr, "Unable to load \"22.dxf\" auto append byLayer\n"); return -6; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 0); if (ret == 0) { fprintf(stderr, "Unable to load \"22.dxf\" auto mixed\n"); return -7; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1); if (ret == 0) { fprintf(stderr, "Unable to load \"22.dxf\" auto append mixed\n"); return -8; } gaiaDestroyDxfParser(dxf); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -9; } spatialite_cleanup_ex (cache); return 0; } static int check_22_2d() { /* testing 22.dxf - pass #2 force 2D */ int ret; sqlite3 *handle; char *err_msg = NULL; gaiaDxfParserPtr dxf; void *cache = spatialite_alloc_connection(); ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); sqlite3_close(handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -2; } dxf = gaiaCreateDxfParser (3003, GAIA_DXF_FORCE_2D, "abdc_", NULL, GAIA_DXF_RING_NONE); if (dxf == NULL) { fprintf(stderr, "CREATE DXF PARSER: unexpected NULL \"22.dx\" 2D)\n"); return -3; } ret = gaiaParseDxfFile (dxf, "./22.dxf"); if (ret == 0) { fprintf(stderr, "Unable to parse \"22.dxf\" byLayers 2D\n"); return -4; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 0); if (ret == 0) { fprintf(stderr, "Unable to load \"22.dxf\" 2D byLayer\n"); return -5; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); if (ret == 0) { fprintf(stderr, "Unable to load \"22.dxf\" 2D append byLayer\n"); return -6; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 0); if (ret == 0) { fprintf(stderr, "Unable to load \"22.dxf\" 2D mixed\n"); return -7; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1); if (ret == 0) { fprintf(stderr, "Unable to load \"22.dxf\" 2D append mixed\n"); return -8; } gaiaDestroyDxfParser(dxf); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -9; } spatialite_cleanup_ex (cache); return 0; } static int check_22_3d() { /* testing 22.dxf - pass #3 force 3D */ int ret; sqlite3 *handle; char *err_msg = NULL; gaiaDxfParserPtr dxf; void *cache = spatialite_alloc_connection(); ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); sqlite3_close(handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -2; } dxf = gaiaCreateDxfParser (3003, GAIA_DXF_FORCE_3D, "abdc_", NULL, GAIA_DXF_RING_NONE); if (dxf == NULL) { fprintf(stderr, "CREATE DXF PARSER: unexpected NULL \"22.dx\" 3D)\n"); return -3; } ret = gaiaParseDxfFile (dxf, "./22.dxf"); if (ret == 0) { fprintf(stderr, "Unable to parse \"22.dxf\" byLayers 3D\n"); return -4; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 0); if (ret == 0) { fprintf(stderr, "Unable to load \"22.dxf\" 3D byLayer\n"); return -5; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); if (ret == 0) { fprintf(stderr, "Unable to load \"22.dxf\" 3D append byLayer\n"); return -6; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 0); if (ret == 0) { fprintf(stderr, "Unable to load \"22.dxf\" 3D mixed\n"); return -7; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1); if (ret == 0) { fprintf(stderr, "Unable to load \"22.dxf\" 3D append mixed\n"); return -8; } gaiaDestroyDxfParser(dxf); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -9; } spatialite_cleanup_ex (cache); return 0; } static int check_22_single() { /* testing 22.dxf - pass #4 single layer */ int ret; sqlite3 *handle; char *err_msg = NULL; gaiaDxfParserPtr dxf; void *cache = spatialite_alloc_connection(); ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); sqlite3_close(handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -2; } dxf = gaiaCreateDxfParser (-2, GAIA_DXF_AUTO_2D_3D, NULL, "VUOVIA", GAIA_DXF_RING_NONE); if (dxf == NULL) { fprintf(stderr, "CREATE DXF PARSER: unexpected NULL \"22.dx\" single)\n"); return -3; } ret = gaiaParseDxfFile (dxf, "./22.dxf"); if (ret == 0) { fprintf(stderr, "Unable to parse \"22.dxf\" byLayers single\n"); return -4; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 0); if (ret == 0) { fprintf(stderr, "Unable to load \"22.dxf\" single byLayer\n"); return -5; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); if (ret == 0) { fprintf(stderr, "Unable to load \"22.dxf\" single append byLayer\n"); return -6; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 0); if (ret == 0) { fprintf(stderr, "Unable to load \"22.dxf\" single mixed\n"); return -7; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1); if (ret == 0) { fprintf(stderr, "Unable to load \"22.dxf\" single append mixed\n"); return -8; } gaiaDestroyDxfParser(dxf); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -9; } spatialite_cleanup_ex (cache); return 0; } static int check_merano() { /* testing f06.dxf / l02.dxf / p02.dxf [merano samples] */ int ret; sqlite3 *handle; char *err_msg = NULL; gaiaDxfParserPtr dxf; void *cache = spatialite_alloc_connection(); ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); sqlite3_close(handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -2; } dxf = gaiaCreateDxfParser (25832, GAIA_DXF_AUTO_2D_3D, NULL, NULL, GAIA_DXF_RING_UNLINKED); if (dxf == NULL) { fprintf(stderr, "CREATE DXF PARSER: unexpected NULL \"f06.dx\")\n"); return -3; } ret = gaiaParseDxfFile (dxf, "./f06.dxf"); if (ret == 0) { fprintf(stderr, "Unable to parse \"f06.dxf\" byLayer\n"); return -4; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); if (ret == 0) { fprintf(stderr, "Unable to load \"f06.dxf\" byLayer\n"); return -5; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); if (ret == 0) { fprintf(stderr, "Unable to load \"f06.dxf\" append byLayer\n"); return -6; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1); if (ret == 0) { fprintf(stderr, "Unable to load \"f06.dxf\" mixed\n"); return -7; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1); if (ret == 0) { fprintf(stderr, "Unable to load \"f06.dxf\" append mixed\n"); return -8; } gaiaDestroyDxfParser(dxf); dxf = gaiaCreateDxfParser (25832, GAIA_DXF_AUTO_2D_3D, NULL, NULL, GAIA_DXF_RING_NONE); if (dxf == NULL) { fprintf(stderr, "CREATE DXF PARSER: unexpected NULL \"l02.dx\")\n"); return -9; } ret = gaiaParseDxfFile (dxf, "./l02.dxf"); if (ret == 0) { fprintf(stderr, "Unable to parse \"l02.dxf\" byLayer\n"); return -10; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); if (ret == 0) { fprintf(stderr, "Unable to load \"l02.dxf\" byLayer\n"); return -11; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); if (ret == 0) { fprintf(stderr, "Unable to load \"l02.dxf\" append byLayer\n"); return -12; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1); if (ret == 0) { fprintf(stderr, "Unable to load \"l02.dxf\" append mixed\n"); return -13; } gaiaDestroyDxfParser(dxf); dxf = gaiaCreateDxfParser (25832, GAIA_DXF_AUTO_2D_3D, NULL, NULL, GAIA_DXF_RING_UNLINKED); if (dxf == NULL) { fprintf(stderr, "CREATE DXF PARSER: unexpected NULL \"f06.dx\")\n"); return -14; } ret = gaiaParseDxfFile (dxf, "./p05.dxf"); if (ret == 0) { fprintf(stderr, "Unable to parse \"p05.dxf\" byLayer\n"); return -15; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); if (ret == 0) { fprintf(stderr, "Unable to load \"p05.dxf\" byLayer\n"); return -16; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); if (ret == 0) { fprintf(stderr, "Unable to load \"p05.dxf\" append byLayer\n"); return -17; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1); if (ret == 0) { fprintf(stderr, "Unable to load \"p05.dxf\" mixed\n"); return -18; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1); if (ret == 0) { fprintf(stderr, "Unable to load \"p05.dxf\" append mixed\n"); return -19; } gaiaDestroyDxfParser(dxf); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -20; } spatialite_cleanup_ex (cache); return 0; } static int check_archaic() { /* testing archaic.dxf */ int ret; sqlite3 *handle; char *err_msg = NULL; gaiaDxfParserPtr dxf; void *cache = spatialite_alloc_connection(); ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); sqlite3_close(handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -2; } dxf = gaiaCreateDxfParser (3003, GAIA_DXF_AUTO_2D_3D, NULL, NULL, GAIA_DXF_RING_NONE); if (dxf == NULL) { fprintf(stderr, "CREATE DXF PARSER: unexpected NULL \"archaic.dx\" auto)\n"); return -3; } ret = gaiaParseDxfFile (dxf, "./archaic.dxf"); if (ret == 0) { fprintf(stderr, "Unable to parse \"archaic.dxf\" byLayers auto\n"); return -4; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 0); if (ret == 0) { fprintf(stderr, "Unable to load \"archaic.dxf\" auto byLayer\n"); return -5; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); if (ret == 0) { fprintf(stderr, "Unable to load \"archaic.dxf\" auto append byLayer\n"); return -6; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 0); if (ret == 0) { fprintf(stderr, "Unable to load \"archaic.dxf\" auto mixed\n"); return -7; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1); if (ret == 0) { fprintf(stderr, "Unable to load \"archaic.dxf\" auto append mixed\n"); return -8; } gaiaDestroyDxfParser(dxf); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -9; } spatialite_cleanup_ex (cache); return 0; } static int check_linked() { /* testing linked.dxf */ int ret; sqlite3 *handle; char *err_msg = NULL; gaiaDxfParserPtr dxf; void *cache = spatialite_alloc_connection(); ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); sqlite3_close(handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -2; } dxf = gaiaCreateDxfParser (3003, GAIA_DXF_AUTO_2D_3D, "lnk_", NULL, GAIA_DXF_RING_LINKED); if (dxf == NULL) { fprintf(stderr, "CREATE DXF PARSER: unexpected NULL \"linked.dx\" auto)\n"); return -3; } ret = gaiaParseDxfFile (dxf, "./linked.dxf"); if (ret == 0) { fprintf(stderr, "Unable to parse \"linked.dxf\" byLayers auto\n"); return -4; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 0); if (ret == 0) { fprintf(stderr, "Unable to load \"linked.dxf\" auto byLayer\n"); return -5; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); if (ret == 0) { fprintf(stderr, "Unable to load \"linked.dxf\" auto append byLayer\n"); return -6; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 0); if (ret == 0) { fprintf(stderr, "Unable to load \"linked.dxf\" auto mixed\n"); return -7; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1); if (ret == 0) { fprintf(stderr, "Unable to load \"linked.dxf\" auto append mixed\n"); return -8; } gaiaDestroyDxfParser(dxf); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -9; } spatialite_cleanup_ex (cache); return 0; } static int check_linked_legacy() { /* testing linked.dxf - legacy DB */ int ret; sqlite3 *handle; gaiaDxfParserPtr dxf; void *cache = spatialite_alloc_connection(); ret = system("cp test-legacy-3.0.1.sqlite copy-legacy-3.0.1.sqlite"); if (ret != 0) { fprintf(stderr, "cannot copy legacy v.3.0.1 database\n"); return -1; } ret = sqlite3_open_v2 ("copy-legacy-3.0.1.sqlite", &handle, SQLITE_OPEN_READWRITE, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "cannot open legacy v.3.0.1 database: %s\n", sqlite3_errmsg (handle)); sqlite3_close(handle); return -2; } spatialite_init_ex (handle, cache, 0); dxf = gaiaCreateDxfParser (3003, GAIA_DXF_AUTO_2D_3D, "lnk_", NULL, GAIA_DXF_RING_LINKED); if (dxf == NULL) { fprintf(stderr, "CREATE DXF PARSER: unexpected NULL \"linked.dx\" auto)\n"); return -3; } ret = gaiaParseDxfFile (dxf, "./linked.dxf"); if (ret == 0) { fprintf(stderr, "Unable to parse \"linked.dxf\" byLayers auto legacy\n"); return -4; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 0); if (ret == 0) { fprintf(stderr, "Unable to load \"linked.dxf\" auto byLayer legacy\n"); return -5; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); if (ret == 0) { fprintf(stderr, "Unable to load \"linked.dxf\" auto append byLayer legacy\n"); return -6; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 0); if (ret == 0) { fprintf(stderr, "Unable to load \"linked.dxf\" auto mixed legacy\n"); return -7; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1); if (ret == 0) { fprintf(stderr, "Unable to load \"linked.dxf\" auto append mixed legacy\n"); return -8; } gaiaDestroyDxfParser(dxf); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -9; } spatialite_cleanup_ex (cache); ret = unlink("copy-legacy-3.0.1.sqlite"); if (ret != 0) { fprintf(stderr, "cannot remove legacy v.3.0.1 database\n"); return -10; } return 0; } static int check_hatch() { /* testing hatch.dxf */ int ret; sqlite3 *handle; char *err_msg = NULL; gaiaDxfParserPtr dxf; void *cache = spatialite_alloc_connection(); ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); sqlite3_close(handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -2; } dxf = gaiaCreateDxfParser (3003, GAIA_DXF_AUTO_2D_3D, "lnk_", NULL, GAIA_DXF_RING_LINKED); if (dxf == NULL) { fprintf(stderr, "CREATE DXF PARSER: unexpected NULL \"hatch.dx\" auto)\n"); return -3; } ret = gaiaParseDxfFile (dxf, "./hatch.dxf"); if (ret == 0) { fprintf(stderr, "Unable to parse \"hatch.dxf\" byLayers auto\n"); return -4; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 0); if (ret == 0) { fprintf(stderr, "Unable to load \"hatch.dxf\" auto byLayer\n"); return -5; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); if (ret == 0) { fprintf(stderr, "Unable to load \"hatch.dxf\" auto append byLayer\n"); return -6; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 0); if (ret == 0) { fprintf(stderr, "Unable to load \"hatch.dxf\" auto mixed\n"); return -7; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1); if (ret == 0) { fprintf(stderr, "Unable to load \"hatch.dxf\" auto append mixed\n"); return -8; } gaiaDestroyDxfParser(dxf); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -9; } spatialite_cleanup_ex (cache); return 0; } static int check_hatch_legacy() { /* testing hatch.dxf - legacy DB */ int ret; sqlite3 *handle; gaiaDxfParserPtr dxf; void *cache = spatialite_alloc_connection(); ret = system("cp test-legacy-3.0.1.sqlite copy-legacy-3.0.1.sqlite"); if (ret != 0) { fprintf(stderr, "cannot copy legacy v.3.0.1 database\n"); return -1; } ret = sqlite3_open_v2 ("copy-legacy-3.0.1.sqlite", &handle, SQLITE_OPEN_READWRITE, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "cannot open legacy v.3.0.1 database: %s\n", sqlite3_errmsg (handle)); sqlite3_close(handle); return -2; } spatialite_init_ex (handle, cache, 0); dxf = gaiaCreateDxfParser (3003, GAIA_DXF_AUTO_2D_3D, "lnk_", NULL, GAIA_DXF_RING_LINKED); if (dxf == NULL) { fprintf(stderr, "CREATE DXF PARSER: unexpected NULL \"hatch.dx\" auto)\n"); return -3; } ret = gaiaParseDxfFile (dxf, "./hatch.dxf"); if (ret == 0) { fprintf(stderr, "Unable to parse \"hatch.dxf\" byLayers auto\n"); return -4; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 0); if (ret == 0) { fprintf(stderr, "Unable to load \"hatch.dxf\" auto byLayer\n"); return -5; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); if (ret == 0) { fprintf(stderr, "Unable to load \"hatch.dxf\" auto append byLayer\n"); return -6; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 0); if (ret == 0) { fprintf(stderr, "Unable to load \"hatch.dxf\" auto mixed\n"); return -7; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1); if (ret == 0) { fprintf(stderr, "Unable to load \"hatch.dxf\" auto append mixed\n"); return -8; } gaiaDestroyDxfParser(dxf); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -9; } spatialite_cleanup_ex (cache); ret = unlink("copy-legacy-3.0.1.sqlite"); if (ret != 0) { fprintf(stderr, "cannot remove legacy v.3.0.1 database\n"); return -10; } return 0; } static int check_symbol() { /* testing symbol.dxf */ int ret; sqlite3 *handle; char *err_msg = NULL; gaiaDxfParserPtr dxf; void *cache = spatialite_alloc_connection(); ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); sqlite3_close(handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -2; } dxf = gaiaCreateDxfParser (3003, GAIA_DXF_AUTO_2D_3D, "lnk_", NULL, GAIA_DXF_RING_LINKED); if (dxf == NULL) { fprintf(stderr, "CREATE DXF PARSER: unexpected NULL \"symbol.dx\" auto)\n"); return -3; } ret = gaiaParseDxfFile (dxf, "./symbol.dxf"); if (ret == 0) { fprintf(stderr, "Unable to parse \"symbol.dxf\" byLayers auto\n"); return -4; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); if (ret == 0) { fprintf(stderr, "Unable to load \"symbol.dxf\" auto byLayer\n"); return -5; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); if (ret == 0) { fprintf(stderr, "Unable to load \"symbol.dxf\" auto append byLayer\n"); return -6; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1); if (ret == 0) { fprintf(stderr, "Unable to load \"symbol.dxf\" auto mixed\n"); return -7; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1); if (ret == 0) { fprintf(stderr, "Unable to load \"symbol.dxf\" auto append mixed\n"); return -8; } gaiaDestroyDxfParser(dxf); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -9; } spatialite_cleanup_ex (cache); return 0; } static int check_symbol_legacy() { /* testing symbol.dxf - legacy DB */ int ret; sqlite3 *handle; gaiaDxfParserPtr dxf; void *cache = spatialite_alloc_connection(); ret = system("cp test-legacy-3.0.1.sqlite copy-legacy-3.0.1.sqlite"); if (ret != 0) { fprintf(stderr, "cannot copy legacy v.3.0.1 database\n"); return -1; } ret = sqlite3_open_v2 ("copy-legacy-3.0.1.sqlite", &handle, SQLITE_OPEN_READWRITE, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "cannot open legacy v.3.0.1 database: %s\n", sqlite3_errmsg (handle)); sqlite3_close(handle); return -2; } spatialite_init_ex (handle, cache, 0); dxf = gaiaCreateDxfParser (3003, GAIA_DXF_AUTO_2D_3D, "lnk_", NULL, GAIA_DXF_RING_LINKED); if (dxf == NULL) { fprintf(stderr, "CREATE DXF PARSER: unexpected NULL \"symbol.dx\" auto)\n"); return -3; } ret = gaiaParseDxfFile (dxf, "./symbol.dxf"); if (ret == 0) { fprintf(stderr, "Unable to parse \"symbol.dxf\" byLayers auto\n"); return -4; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); if (ret == 0) { fprintf(stderr, "Unable to load \"symbol.dxf\" auto byLayer\n"); return -5; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); if (ret == 0) { fprintf(stderr, "Unable to load \"symbol.dxf\" auto append byLayer\n"); return -6; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1); if (ret == 0) { fprintf(stderr, "Unable to load \"symbol.dxf\" auto mixed\n"); return -7; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1); if (ret == 0) { fprintf(stderr, "Unable to load \"symbol.dxf\" auto append mixed\n"); return -8; } gaiaDestroyDxfParser(dxf); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -9; } spatialite_cleanup_ex (cache); ret = unlink("copy-legacy-3.0.1.sqlite"); if (ret != 0) { fprintf(stderr, "cannot remove legacy v.3.0.1 database\n"); return -10; } return 0; } int main (int argc, char *argv[]) { if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ if (check_22_auto() != 0) return -1; if (check_22_2d() != 0) return -2; if (check_22_3d() != 0) return -3; if (check_22_single() != 0) return 4; if (check_merano() != 0) return -5; if (check_archaic() != 0) return -6; if (check_linked() != 0) return -7; if (check_linked_legacy() != 0) return -8; if (check_hatch() != 0) return -9; if (check_hatch_legacy() != 0) return -10; if (check_symbol() != 0) return -11; if (check_symbol_legacy() != 0) return -12; return 0; } libspatialite-4.1.1/test/symbol.dxf0000664000175000017500000000254412163502134014257 00000000000000 0 SECTION 2 BLOCKS 0 BLOCK 5 4D 330 4A 100 AcDbEntity 8 P212 100 AcDbBlockBegin 2 S04 70 0 10 0.0 20 0.0 30 0.0 3 S17 1 0 CIRCLE 5 4E 330 4A 100 AcDbEntity 8 P212 100 AcDbCircle 10 0.0 20 0.0 30 0.0 40 0.4993929516959806 0 ARC 5 4F 330 4A 100 AcDbEntity 8 P212 100 AcDbCircle 10 0.0 20 0.0 30 0.0 40 0.4702375591390111 100 AcDbArc 50 1.352297952139852 51 213.1028912230649 0 ARC 5 50 330 4A 100 AcDbEntity 8 P212 100 AcDbCircle 10 0.1224526574460816 20 1.153653889613405 30 0.0 40 0.1224526574460816 100 AcDbArc 50 0.0 51 180.0 0 LINE 5 51 330 4A 100 AcDbEntity 8 P212 100 AcDbLine 10 0.0 20 0.4993929516959806 30 0.0 11 0.0 21 1.153653889613405 31 0.0 0 ENDBLK 5 52 330 4A 100 AcDbEntity 8 P212 100 AcDbBlockEnd 0 ENDSEC 0 SECTION 2 ENTITIES 0 INSERT 5 3F 330 2 100 AcDbEntity 8 P212 100 AcDbBlockReference 2 S04 10 1606600.703410613 20 4832060.545362558 30 9.65 41 7.0 42 7.0 43 7.0 50 53.0 0 INSERT 5 3F 330 2 100 AcDbEntity 8 P212 100 AcDbBlockReference 2 S04 10 1606500.703410613 20 4832560.545362558 30 9.65 41 7.0 42 7.0 43 7.0 50 53.0 0 ENDSEC 0 EOF libspatialite-4.1.1/test/check_libxml2.c0000664000175000017500000004430212163502133015116 00000000000000 /* check_libxml2.c -- SpatiaLite Test Case Author: Sandro Furieri ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2013 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" #ifdef ENABLE_LIBXML2 /* only if LIBXML2 is supported */ #include #define ISO_METADATA 1 #define SLD_SE_STYLE 2 #define SVG 3 static int check_bad_xml (void *cache) { /* parsing a not-well-formed XML Sample */ FILE *fl; int sz = 0; int rd; unsigned char *xml = NULL; unsigned char *p_result = NULL; int len; char *err1; char *err2; char *version = gaia_libxml2_version (); if (version == NULL) { fprintf (stderr, "unable to get the library version\n"); return 0; } free (version); /* loading the XMLDocument */ fl = fopen("books-bad.xml", "rb"); if (!fl) { fprintf (stderr, "cannot open \"books-bad.xml\"\n"); return 0; } if (fseek(fl, 0, SEEK_END) == 0) sz = ftell(fl); xml = malloc(sz); rewind(fl); rd = fread(xml, 1, sz, fl); if (rd != sz) { fprintf (stderr, "read error \"books-bad.xml\"\n"); return 0; } fclose(fl); /* parsing the XMLDocument */ gaiaXmlToBlob (cache, xml, rd, 1, NULL, &p_result, &len, &err1, &err2); if (p_result != NULL) { fprintf (stderr, "this is not a well-formed XML !!!\n"); return 0; } free(xml); return 1; } static int check_bad_schema (void *cache) { /* validating by invalid Schema */ FILE *fl; int sz = 0; int rd; unsigned char *xml = NULL; unsigned char *p_result = NULL; int len; char *err1; char *err2; /* loading the XMLDocument */ fl = fopen("books.xml", "rb"); if (!fl) { fprintf (stderr, "cannot open \"books.xml\"\n"); return 0; } if (fseek(fl, 0, SEEK_END) == 0) sz = ftell(fl); xml = malloc(sz); rewind(fl); rd = fread(xml, 1, sz, fl); if (rd != sz) { fprintf (stderr, "read error \"books.xml\"\n"); return 0; } fclose(fl); /* validating the XMLDocument */ gaiaXmlToBlob (cache, xml, rd, 1, "books-bad.xsd", &p_result, &len, &err1, &err2); if (p_result != NULL) { fprintf (stderr, "this is not a valid XML !!!\n"); return 0; } free(xml); return 1; } static int check_validate (void *cache, const char *path) { /* validating an XML Sample */ FILE *fl; int sz = 0; int rd; unsigned char *xml = NULL; char *schema_uri = NULL; char *schema_uri2 = NULL; unsigned char *p_result = NULL; int len; /* loading the XMLDocument */ fl = fopen(path, "rb"); if (!fl) { fprintf (stderr, "cannot open \"%s\"\n", path); return 0; } if (fseek(fl, 0, SEEK_END) == 0) sz = ftell(fl); xml = malloc(sz); rewind(fl); rd = fread(xml, 1, sz, fl); if (rd != sz) { fprintf (stderr, "read error \"%s\"\n", path); return 0; } fclose(fl); /* extracting the Internal SchemaURI */ schema_uri = gaiaXmlGetInternalSchemaURI (cache, xml, rd); if (schema_uri == NULL) { fprintf (stderr, "unable to identify the Schema for \"%s\"\n", path); return 0; } /* validating the XMLDocument */ gaiaXmlToBlob (cache, xml, rd, 1, schema_uri, &p_result, &len, NULL, NULL); if (p_result == NULL) { fprintf (stderr, "unable to validate \"%s\"\n", path); return 0; } if (!gaiaIsSchemaValidatedXmlBlob (p_result, len)) { fprintf (stderr, "validation failed: \"%s\"\n", path); return 0; } schema_uri2 = gaiaXmlBlobGetSchemaURI (p_result, len); if (schema_uri2 == NULL) { fprintf (stderr, "unable to retrieve the ValidationSchemaURI for \"%s\"\n", path); return 0; } if (strcmp (schema_uri, schema_uri2) != 0) { fprintf (stderr, "%s: mismatching SchemaURI \"%s\" (expected \"%s\")\n", path, schema_uri2, schema_uri); return 0; } free (schema_uri); free (schema_uri2); free(p_result); free(xml); return 1; } static int check_extended (void *cache, const char *path, int mode) { /* validating an XML Sample */ FILE *fl; int sz = 0; int rd; unsigned char *xml = NULL; int iso; int style; int svg; unsigned char *p_result = NULL; int len; char *file_id = NULL; char *parent_id = NULL; char *title = NULL; char *abstract = NULL; unsigned char *geom_blob; int geom_size; gaiaGeomCollPtr geom; /* loading the XMLDocument */ fl = fopen(path, "rb"); if (!fl) { fprintf (stderr, "cannot open \"%s\"\n", path); return 0; } if (fseek(fl, 0, SEEK_END) == 0) sz = ftell(fl); xml = malloc(sz); rewind(fl); rd = fread(xml, 1, sz, fl); if (rd != sz) { fprintf (stderr, "read error \"%s\"\n", path); return 0; } fclose(fl); /* simple parsing without validation */ gaiaXmlToBlob (cache, xml, rd, 1, NULL, &p_result, &len, NULL, NULL); if (p_result == NULL) { fprintf (stderr, "unable to parse \"%s\"\n", path); return 0; } /* checking the payload type */ iso = gaiaIsIsoMetadataXmlBlob (p_result, len); style = gaiaIsSldSeRasterStyleXmlBlob (p_result, len); style = gaiaIsSldSeVectorStyleXmlBlob (p_result, len); svg = gaiaIsSvgXmlBlob (p_result, len); if (mode == ISO_METADATA && iso && !style && !svg) ; else if (mode == SLD_SE_STYLE && !iso && style && !svg) ; else if (mode == SVG && !iso && !style && svg) ; else { fprintf (stderr, "mismatching type: \"%s\" iso=%d style=%d svg=%d\n", path, iso, style, svg); return 0; } /* testing ISO Metadata attributes */ file_id = gaiaXmlBlobGetFileId (p_result, len); parent_id = gaiaXmlBlobGetParentId (p_result, len); title = gaiaXmlBlobGetTitle (p_result, len); abstract = gaiaXmlBlobGetAbstract (p_result, len); gaiaXmlBlobGetGeometry (p_result, len, &geom_blob, &geom_size); if (mode == ISO_METADATA) { /* verifying ISO Metadata attributes */ if (file_id == NULL) { fprintf (stderr, "unexpected NULL FileIdentifier in \"%s\"\n", path); return 0; } if (strcmp(file_id, "029097fd-2ef2-487c-a5ca-6ec7a3dbac53") != 0) { fprintf (stderr, "unexpected FileIdentifier in \"%s\" [%s]\n", path, file_id); return 0; } if (parent_id == NULL) { fprintf (stderr, "unexpected NULL ParentIdentifier in \"%s\"\n", path); return 0; } if (strcmp(parent_id, "024027fd-3ef2-487c-a8ca-6ec8a3dfac57") != 0) { fprintf (stderr, "unexpected ParentIdentifier in \"%s\" [%s]\n", path, parent_id); return 0; } if (title == NULL) { fprintf (stderr, "unexpected NULL Title in \"%s\"\n", path); return 0; } if (strcmp(title, "Image2000 Product 1 (nl2) Multispectral") != 0) { fprintf (stderr, "unexpected Title in \"%s\" [%s]\n", path, title); return 0; } if (abstract == NULL) { fprintf (stderr, "unexpected NULL Abstract in \"%s\"\n", path); return 0; } if (strcmp(abstract, "IMAGE2000 product 1 individual orthorectified scenes.") != 0) { fprintf (stderr, "unexpected Abstract in \"%s\" [%s]\n", path, abstract); return 0; } if (geom_blob == NULL) { fprintf (stderr, "unexpected NULL Geometry in \"%s\"\n", path); return 0; } geom = gaiaFromSpatiaLiteBlobWkb (geom_blob, geom_size); if (geom == NULL) { fprintf (stderr, "unexpected invalid Geometry in \"%s\"\n", path); return 0; } if (geom->Srid != 4326) { fprintf (stderr, "unexpected Geometry SRID in \"%s\" [%d]\n", path, geom->Srid); return 0; } if (geom->DeclaredType != GAIA_MULTIPOLYGON) { fprintf (stderr, "unexpected Geometry Type in \"%s\" [%d]\n", path, geom->DeclaredType); return 0; } if (geom->MinX != 3.93000000) { fprintf (stderr, "unexpected Geometry MinX in \"%s\" [%1.8f]\n", path, geom->MinX); return 0; } if (geom->MinY != 52.10000000) { fprintf (stderr, "unexpected Geometry MinY in \"%s\" [%1.8f]\n", path, geom->MinY); return 0; } if (geom->MaxX != 7.57000000) { fprintf (stderr, "unexpected Geometry MaxX in \"%s\" [%1.8f]\n", path, geom->MaxX); return 0; } if (geom->MaxY != 54.10000000) { fprintf (stderr, "unexpected Geometry MaxY in \"%s\" [%1.8f]\n", path, geom->MaxY); return 0; } gaiaFreeGeomColl(geom); } else { /* not ISO Metadata */ if (strcmp(path, "stazioni_se.xml") == 0) { if (strcmp(title, "SE test - Point [Railway Stations]") != 0) { fprintf (stderr, "unexpected Title in \"%s\"\n", path); return 0; } if (strcmp(abstract, "a complex variable style [depending on actual scale]") != 0) { fprintf (stderr, "unexpected Abstract in \"%s\"\n", path); return 0; } } else { if (title != NULL) { fprintf (stderr, "unexpected Title in \"%s\"\n", path); return 0; } if (abstract != NULL) { fprintf (stderr, "unexpected Abstract in \"%s\"\n", path); return 0; } } } free(p_result); free(xml); if (file_id) free(file_id); if (parent_id) free(parent_id); if (title) free(title); if (abstract) free(abstract); if (geom_blob) free(geom_blob); return 1; } static int check_parse (void *cache, const char *path) { /* parsing an XML Sample */ FILE *fl; int sz = 0; int rd; unsigned char *xml = NULL; int compressed_sz; int uncompressed_sz; int doc_sz; int formatted_sz; int formatted_txt_sz; unsigned char *p_result = NULL; unsigned char *out; char *txt; /* loading the XMLDocument */ fl = fopen(path, "rb"); if (!fl) { fprintf (stderr, "cannot open \"%s\"\n", path); return 0; } if (fseek(fl, 0, SEEK_END) == 0) sz = ftell(fl); xml = malloc(sz); rewind(fl); rd = fread(xml, 1, sz, fl); if (rd != sz) { fprintf (stderr, "read error \"%s\"\n", path); return 0; } fclose(fl); /* parsing the XMLDocument (no validation / compressed) */ gaiaXmlToBlob (cache, xml, rd, 1, NULL, &p_result, &compressed_sz, NULL, NULL); if (p_result == NULL) { fprintf (stderr, "unable to parse(1) \"%s\"\n", path); return 0; } doc_sz = gaiaXmlBlobGetDocumentSize (p_result, compressed_sz); gaiaXmlFromBlob (p_result, compressed_sz, 4, &out, &formatted_sz); if (out == NULL) { fprintf (stderr, "unable to format(1) \"%s\"\n", path); return 0; } free(out); txt = gaiaXmlTextFromBlob (p_result, compressed_sz, 2); if (txt == NULL) { fprintf (stderr, "unable to format-text(1) \"%s\"\n", path); return 0; } formatted_txt_sz = strlen(txt); free(txt); free(p_result); /* parsing the XMLDocument (no validation / not compressed) */ gaiaXmlToBlob (cache, xml, rd, 0, NULL, &p_result, &uncompressed_sz, NULL, NULL); if (p_result == NULL) { fprintf (stderr, "unable to parse(2) \"%s\"\n", path); return 0; } free(p_result); if (strcmp(path, "books.xml") == 0) { if (compressed_sz != 429) { fprintf (stderr, "books.xml: unexpected compressed size %d (expected 328)\n", compressed_sz); return 0; } if (uncompressed_sz != 777) { fprintf (stderr, "books.xml: unexpected compressed size %d (expected 777)\n", uncompressed_sz); return 0; } if (doc_sz != 741) { fprintf (stderr, "books.xml: unexpected document size %d (expected 741)\n", doc_sz); return 0; } if (formatted_sz != 864) { fprintf (stderr, "books.xml: unexpected formatted size %d (expected 864)\n", formatted_sz); return 0; } if (formatted_txt_sz != 803) { fprintf (stderr, "books.xml: unexpected formatted-text size %d (expected 803)\n", formatted_txt_sz); return 0; } } if (strcmp(path, "opera.xml") == 0) { if (compressed_sz != 422) { fprintf (stderr, "opera.xml: unexpected compressed size %d (expected 422)\n", compressed_sz); return 0; } if (uncompressed_sz != 948) { fprintf (stderr, "opera.xml: unexpected compressed size %d (expected 948)\n", uncompressed_sz); return 0; } if (doc_sz != 912) { fprintf (stderr, "opera.xml: unexpected document size %d (expected 912)\n", doc_sz); return 0; } if (formatted_sz != 970) { fprintf (stderr, "opera.xml: unexpected formatted size %d (expected 970)\n", formatted_sz); return 0; } if (formatted_txt_sz != 909) { fprintf (stderr, "opera.xml: unexpected formatted-text size %d (expected 909)\n", formatted_txt_sz); return 0; } } if (strcmp(path, "movies.xml") == 0) { if (compressed_sz != 574) { fprintf (stderr, "movies.xml: unexpected compressed size %d (expected 574)\n", compressed_sz); return 0; } if (uncompressed_sz != 1806) { fprintf (stderr, "movies.xml: unexpected compressed size %d (expected 1806)\n", uncompressed_sz); return 0; } if (doc_sz != 1770) { fprintf (stderr, "movies.xml: unexpected document size %d (expected 1770)\n", doc_sz); return 0; } if (formatted_sz != 945) { fprintf (stderr, "movies.xml: unexpected formatted size %d (expected 945)\n", formatted_sz); return 0; } if (formatted_txt_sz != 884) { fprintf (stderr, "movies.xml: unexpected formatted-text size %d (expected 884)\n", formatted_txt_sz); return 0; } } free(xml); return 1; } #endif int main (int argc, char *argv[]) { int ret; sqlite3 *handle; void *cache = spatialite_alloc_connection(); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle)); sqlite3_close(handle); return -1; } spatialite_init_ex (handle, cache, 0); #ifdef ENABLE_LIBXML2 /* only if LIBXML2 is supported */ if (!check_parse(cache, "books.xml")) { fprintf (stderr, "unable to parse \"books.xml\"\n"); return -2; } if (!check_parse(cache, "opera.xml")) { fprintf (stderr, "unable to parse \"opera.xml\"\n"); return -3; } if (!check_parse(cache, "movies.xml")) { fprintf (stderr, "unable to parse \"movies.xml\"\n"); return -4; } if (!check_validate(cache, "books.xml")) { fprintf (stderr, "unable to validate \"books.xml\"\n"); return -5; } if (!check_validate(cache, "opera.xml")) { fprintf (stderr, "unable to validate \"opera.xml\"\n"); return -6; } if (!check_validate(cache, "movies.xml")) { fprintf (stderr, "unable to validate \"movies.xml\"\n"); return -7; } if (!check_extended(cache, "inspire-data-example.xml", ISO_METADATA)) { fprintf (stderr, "unable to parse \"inspire-data-example.xml\"\n"); return -7; } if (!check_extended(cache, "stazioni_se.xml", SLD_SE_STYLE)) { fprintf (stderr, "unable to parse \"stazioni_se.xml\"\n"); return -7; } if (!check_extended(cache, "thunderstorm_mild.svg", SVG)) { fprintf (stderr, "unable to parse \"thunderstorm_mild.svg\"\n"); return -7; } if (!check_bad_xml(cache)) { fprintf (stderr, "unable to test not well-formed XML\n"); return -8; } if (!check_bad_schema(cache)) { fprintf (stderr, "unable to test invalid Schema\n"); return -9; } #endif ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -10; } spatialite_cleanup_ex (cache); #ifdef ENABLE_LIBXML2 /* only if LIBXML2 is supported */ xmlCleanupParser(); #endif return 0; } libspatialite-4.1.1/test/sql_stmt_proj_tests/0000775000175000017500000000000012163503230016442 500000000000000libspatialite-4.1.1/test/sql_stmt_proj_tests/output15.testcase0000664000175000017500000000201412163502133021623 00000000000000Output format tests - LINESTRINGM via EWKB, WGS-84 :memory: #use in-memory database SELECT AsText(GeomFromWkb(AsBinary(geom))), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom), Hex(AsEWKB(geom)) FROM (SELECT GeomFromEWkt("SRID=4326;LINESTRINGM(-1 1 2.3, 1 -2 4.6)") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(GeomFromWkb(AsBinary(geom))) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) Hex(AsEWKB(geom)) LINESTRING M(-1 1 2.3, 1 -2 4.6) -1,1 1,-2 -1,1 1,-2:0 {"type":"LineString","coordinates":[[-1,1],[1,-2]]}:0 LINESTRING(-1 1,1 -2) SRID=4326;LINESTRINGM(-1 1 2.3,1 -2 4.6) 535249443D343332363B303130323030303034303032303030303030303030303030303030303030463042463030303030303030303030304630334636363636363636363636363630323430303030303030303030303030463033463030303030303030303030303030433036363636363636363636363631323430 libspatialite-4.1.1/test/sql_stmt_proj_tests/output34.testcase0000664000175000017500000000666112163502133021640 00000000000000Output format tests - GEOMETRY COLLECTION OF POINT and POLYGON via EWKB, WGS-84 :memory: #use in-memory database SELECT AsText(geom), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom), Hex(AsEWKB(geom)) FROM (SELECT GeomFromEWkt("SRID=4326;GEOMETRYCOLLECTION(POINT(1 2),POLYGON((-10 -10, -10 10, 10 10 , 10 -10, -10 -10),(-8 -8, -2 -8, -2 -2, -8 -2, -8 -8),(8 8, 2 8, 2 2, 8 2, 8 8)))") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(geom) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) Hex(AsEWKB(geom)) GEOMETRYCOLLECTION(POINT(1 2), POLYGON((-10 -10, -10 10, 10 10, 10 -10, -10 -10), (-8 -8, -2 -8, -2 -2, -8 -2, -8 -8), (8 8, 2 8, 2 2, 8 2, 8 8))) 1,2-10,-10 -10,10 10,10 10,-10 -10,-10-8,-8 -2,-8 -2,-2 -8,-2 -8,-88,8 2,8 2,2 8,2 8,8 1,2-10,-10 -10,10 10,10 10,-10 -10,-10-8,-8 -2,-8 -2,-2 -8,-2 -8,-88,8 2,8 2,2 8,2 8,8:0 {"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[1,2]},{"type":"Polygon","coordinates":[[[-10,-10],[-10,10],[10,10],[10,-10],[-10,-10]],[[-8,-8],[-2,-8],[-2,-2],[-8,-2],[-8,-8]],[[8,8],[2,8],[2,2],[8,2],[8,8]]]}]}:0 GEOMETRYCOLLECTION(POINT(1 2),POLYGON((-10 -10,-10 10,10 10,10 -10,-10 -10),(-8 -8,-2 -8,-2 -2,-8 -2,-8 -8),(8 8,2 8,2 2,8 2,8 8))) SRID=4326;GEOMETRYCOLLECTION(POINT(1 2),POLYGON((-10 -10,-10 10,10 10,10 -10,-10 -10),(-8 -8,-2 -8,-2 -2,-8 -2,-8 -8),(8 8,2 8,2 2,8 2,8 8))) 535249443D343332363B303130373030303030303032303030303030303130313030303030303030303030303030303030304630334630303030303030303030303030303430303130333030303030303033303030303030303530303030303030303030303030303030303032344330303030303030303030303030323443303030303030303030303030303234433030303030303030303030303032343430303030303030303030303030323434303030303030303030303030303234343030303030303030303030303032343430303030303030303030303030323443303030303030303030303030303234433030303030303030303030303032344330303530303030303030303030303030303030303032304330303030303030303030303030323043303030303030303030303030303030433030303030303030303030303032304330303030303030303030303030303043303030303030303030303030303030433030303030303030303030303032304330303030303030303030303030303043303030303030303030303030303230433030303030303030303030303032304330303530303030303030303030303030303030303032303430303030303030303030303030323034303030303030303030303030303030343030303030303030303030303032303430303030303030303030303030303034303030303030303030303030303030343030303030303030303030303032303430303030303030303030303030303034303030303030303030303030303230343030303030303030303030303032303430 libspatialite-4.1.1/test/sql_stmt_proj_tests/askml10.testcase0000664000175000017500000000054212163502133021371 00000000000000askml - 4 arg int descriptions excessive precision :memory: #use in-memory database SELECT askml(2, 3, GeomFromText("Point(1 2)", 4326), 44) 1 # rows (not including the header row) 1 # columns askml(2, 3, GeomFromText("Point(1 2)", 4326), 44) 231,2 libspatialite-4.1.1/test/sql_stmt_proj_tests/output16.testcase0000664000175000017500000000216712163502133021635 00000000000000Output format tests - LINESTRINGZM via EWKB, WGS-84 :memory: #use in-memory database SELECT AsText(GeomFromWkb(AsBinary(geom))), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom), Hex(AsEWKB(geom)) FROM (SELECT GeomFromEWkt("SRID=4326;LINESTRING(-1 1 2.3 -1, 1 -2 4.6 -6)") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(GeomFromWkb(AsBinary(geom))) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) Hex(AsEWKB(geom)) LINESTRING ZM(-1 1 2.3 -1, 1 -2 4.6 -6) -1,1,2.3 1,-2,4.6 -1,1,2.3 1,-2,4.6:0 {"type":"LineString","coordinates":[[-1,1,2.3],[1,-2,4.6]]}:0 LINESTRING(-1 1,1 -2) SRID=4326;LINESTRING(-1 1 2.3 -1,1 -2 4.6 -6):0 535249443D343332363B3031303230303030433030323030303030303030303030303030303030304630424630303030303030303030303046303346363636363636363636363636303234303030303030303030303030304630424630303030303030303030303046303346303030303030303030303030303043303636363636363636363636363132343030303030303030303030303031384330 libspatialite-4.1.1/test/sql_stmt_proj_tests/Makefile.am0000664000175000017500000000277112163502133020426 00000000000000 EXTRA_DIST = askml10.testcase \ askml11.testcase \ askml1.testcase \ askml2.testcase \ askml3.testcase \ askml4.testcase \ askml5.testcase \ askml6.testcase \ askml7.testcase \ askml8.testcase \ askml9.testcase \ fromgml42.testcase \ output10.testcase \ output11.testcase \ output12.testcase \ output13.testcase \ output14.testcase \ output15.testcase \ output16.testcase \ output17.testcase \ output18.testcase \ output19.testcase \ output1.testcase \ output20.testcase \ output21.testcase \ output22.testcase \ output23.testcase \ output24.testcase \ output25.testcase \ output26.testcase \ output27.testcase \ output28.testcase \ output29.testcase \ output2.testcase \ output30.testcase \ output31.testcase \ output32.testcase \ output33.testcase \ output34.testcase \ output35.testcase \ output36.testcase \ output37.testcase \ output38.testcase \ output3.testcase \ output4.testcase \ output5.testcase \ output6.testcase \ output7.testcase \ output8.testcase \ output9.testcase \ transform10.testcase \ transform11.testcase \ transform12.testcase \ transform13.testcase \ transform14.testcase \ transform15.testcase \ transform16.testcase \ transform17.testcase \ transform18.testcase \ transform19.testcase \ transform1.testcase \ transform20.testcase \ transform21.testcase \ transform2.testcase \ transform3.testcase \ transform4.testcase \ transform5.testcase \ transform6.testcase \ transform7.testcase \ transform8.testcase \ transform9.testcase libspatialite-4.1.1/test/sql_stmt_proj_tests/output17.testcase0000664000175000017500000000475312163502133021641 00000000000000Output format tests - POLYGONZ via EWKB, WGS-84 :memory: #use in-memory database SELECT AsText(GeomFromWkb(AsBinary(geom))), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom), Hex(AsEWKB(geom)) FROM (SELECT GeomFromEWkt("SRID=4326;POLYGON((-10 -10 1, -10 10 2, 10 10 3, 10 -10 4, -10 -10 1),(-1 1 2.3, 1 -2 4.6, 0 -2 1.6, -1 1 2.3))") as geom) dummy 1 # rows (not including the header row) 7 # columns AsText(GeomFromWkb(AsBinary(geom))) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) Hex(AsEWKB(geom)) POLYGON Z((-10 -10 1, -10 10 2, 10 10 3, 10 -10 4, -10 -10 1), (-1 1 2.3, 1 -2 4.6, 0 -2 1.6, -1 1 2.3)) -10,-10,1 -10,10,2 10,10,3 10,-10,4 -10,-10,1-1,1,2.3 1,-2,4.6 0,-2,1.6 -1,1,2.3 -10,-10,1 -10,10,2 10,10,3 10,-10,4 -10,-10,1-1,1,2.3 1,-2,4.6 0,-2,1.6 -1,1,2.3:0 {"type":"Polygon","coordinates":[[[-10,-10,1],[-10,10,2],[10,10,3],[10,-10,4],[-10,-10,1]],[[-1,1,2.3],[1,-2,4.6],[0,-2,1.6],[-1,1,2.3]]]}:0 POLYGON((-10 -10,-10 10,10 10,10 -10,-10 -10),(-1 1,1 -2,0 -2,-1 1)) SRID=4326;POLYGON((-10 -10 1,-10 10 2,10 10 3,10 -10 4,-10 -10 1),(-1 1 2.3,1 -2 4.6,0 -2 1.6,-1 1 2.3)) 535249443D343332363B30313033303030303830303230303030303030353030303030303030303030303030303030303234433030303030303030303030303032344330303030303030303030303030463033463030303030303030303030303234433030303030303030303030303032343430303030303030303030303030303034303030303030303030303030303234343030303030303030303030303032343430303030303030303030303030303834303030303030303030303030303234343030303030303030303030303032344330303030303030303030303030313034303030303030303030303030303234433030303030303030303030303032344330303030303030303030303030463033463034303030303030303030303030303030303030463042463030303030303030303030304630334636363636363636363636363630323430303030303030303030303030463033463030303030303030303030303030433036363636363636363636363631323430303030303030303030303030303030303030303030303030303030303030433039413939393939393939393946393346303030303030303030303030463042463030303030303030303030304630334636363636363636363636363630323430 libspatialite-4.1.1/test/sql_stmt_proj_tests/output5.testcase0000664000175000017500000000116512163502133021550 00000000000000Output format tests - POINT input, no SRID :memory: #use in-memory database SELECT AsText(geom), AsKML(geom), AsKML("myname", "mydesc", geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom) FROM (SELECT MakePoint(1,2) as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(geom) AsKML(geom) AsKML("myname", "mydesc", geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) POINT(1 2) (NULL) (NULL) 1,2:0" required to avoid truncation !! {"type":"Point","coordinates":[1,2]}:0" required to avoid truncation !! POINT(1 2) SRID=0;POINT(1 2) libspatialite-4.1.1/test/sql_stmt_proj_tests/output10.testcase0000664000175000017500000000132512163502133021622 00000000000000Output format tests - POINT via EWKB, WGS-84 :memory: #use in-memory database SELECT AsText(geom), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom), Hex(AsEWKB(geom)) FROM (SELECT GeomFromEWkt("SRID=4326;POINT(-1 1)") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(geom) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) Hex(AsEWKB(geom)) POINT(-1 1) -1,1 -1,1:0 {"type":"Point","coordinates":[-1,1]}:0 POINT(-1 1) SRID=4326;POINT(-1 1) 535249443D343332363B303130313030303030303030303030303030303030304630424630303030303030303030303046303346 libspatialite-4.1.1/test/sql_stmt_proj_tests/output25.testcase0000664000175000017500000000400712163502133021630 00000000000000Output format tests - MULTILINESTRINGM via EWKB, WGS-84 :memory: #use in-memory database SELECT AsText(geom), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom), Hex(AsEWKB(geom)) FROM (SELECT GeomFromEWkt("SRID=4326;MULTILINESTRINGM((-1 1 9, 2 3 8.4, 4 1 9.4),(0 2 1, 2 0 1, 0 0 2, 1 1 3))") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(geom) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) Hex(AsEWKB(geom)) MULTILINESTRING M((-1 1 9, 2 3 8.4, 4 1 9.4), (0 2 1, 2 0 1, 0 0 2, 1 1 3)) -1,1 2,3 4,10,2 2,0 0,0 1,1 -1,1 2,3 4,10,2 2,0 0,0 1,1:0 {"type":"MultiLineString","coordinates":[[[-1,1],[2,3],[4,1]],[[0,2],[2,0],[0,0],[1,1]]]}:0 MULTILINESTRING((-1 1,2 3,4 1),(0 2,2 0,0 0,1 1)) SRID=4326;MULTILINESTRINGM((-1 1 9,2 3 8.4,4 1 9.4),(0 2 1,2 0 1,0 0 2,1 1 3)) 535249443D343332363B303130353030303034303032303030303030303130323030303034303033303030303030303030303030303030303030463042463030303030303030303030304630334630303030303030303030303032323430303030303030303030303030303034303030303030303030303030303038343043444343434343434343434332303430303030303030303030303030313034303030303030303030303030304630334643444343434343434343434332323430303130323030303034303034303030303030303030303030303030303030303030303030303030303030303030303030343030303030303030303030303046303346303030303030303030303030303034303030303030303030303030303030303030303030303030303030303046303346303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303430303030303030303030303030463033463030303030303030303030304630334630303030303030303030303030383430 libspatialite-4.1.1/test/sql_stmt_proj_tests/output22.testcase0000664000175000017500000000232112163502133021622 00000000000000Output format tests - MULTIPOINTM via EWKB, WGS-84 :memory: #use in-memory database SELECT AsText(geom), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom), Hex(AsEWKB(geom)) FROM (SELECT GeomFromEWkt("SRID=4326;MULTIPOINTM(-1 1 2.3,1 2 4.1)") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(geom) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) Hex(AsEWKB(geom)) MULTIPOINT M(-1 1 2.3, 1 2 4.1) -1,11,2 -1,11,2:0 {"type":"MultiPoint","coordinates":[[-1,1],[1,2]]}:0 MULTIPOINT(-1 1,1 2) SRID=4326;MULTIPOINTM(-1 1 2.3,1 2 4.1) 535249443D343332363B3031303430303030343030323030303030303031303130303030343030303030303030303030303046304246303030303030303030303030463033463636363636363636363636363032343030313031303030303430303030303030303030303030463033463030303030303030303030303030343036363636363636363636363631303430 libspatialite-4.1.1/test/sql_stmt_proj_tests/output26.testcase0000664000175000017500000000452612163502133021637 00000000000000Output format tests - MULTILINESTRINGZM via EWKB, WGS-84 :memory: #use in-memory database SELECT AsText(geom), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom), Hex(AsEWKB(geom)) FROM (SELECT GeomFromEWkt("SRID=4326;MULTILINESTRING((-1 1 9 1, 2 3 8.4 3, 4 1 9.4 1),(0 2 1 84, 2 0 1 26, 0 0 2 -2.1, 1 1 3 0))") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(geom) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) Hex(AsEWKB(geom)) MULTILINESTRING ZM((-1 1 9 1, 2 3 8.4 3, 4 1 9.4 1), (0 2 1 84, 2 0 1 26, 0 0 2 -2.1, 1 1 3 0)) -1,1,9 2,3,8.4 4,1,9.40,2,1 2,0,1 0,0,2 1,1,3 -1,1,9 2,3,8.4 4,1,9.40,2,1 2,0,1 0,0,2 1,1,3:0 {"type":"MultiLineString","coordinates":[[[-1,1,9],[2,3,8.4],[4,1,9.4]],[[0,2,1],[2,0,1],[0,0,2],[1,1,3]]]}:0 MULTILINESTRING((-1 1,2 3,4 1),(0 2,2 0,0 0,1 1)) SRID=4326;MULTILINESTRING((-1 1 9 1,2 3 8.4 3,4 1 9.4 1),(0 2 1 84,2 0 1 26,0 0 2 -2.1,1 1 3 0)) 535249443D343332363B30313035303030304330303230303030303030313032303030304330303330303030303030303030303030303030303046304246303030303030303030303030463033463030303030303030303030303232343030303030303030303030303046303346303030303030303030303030303034303030303030303030303030303038343043444343434343434343434332303430303030303030303030303030303834303030303030303030303030303130343030303030303030303030303046303346434443434343434343434343323234303030303030303030303030304630334630313032303030304330303430303030303030303030303030303030303030303030303030303030303030303030303034303030303030303030303030304630334630303030303030303030303035353430303030303030303030303030303034303030303030303030303030303030303030303030303030303030303046303346303030303030303030303030334134303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303034304344434343434343434343433030433030303030303030303030303046303346303030303030303030303030463033463030303030303030303030303038343030303030303030303030303030303030 libspatialite-4.1.1/test/sql_stmt_proj_tests/transform16.testcase0000664000175000017500000000132212163502133022300 00000000000000transform - Polygon :memory: #use in-memory database SELECT AsText(Transform(GeomFromText('POLYGON((11 43, 12 43, 12 44, 11 44, 11 43), (11.4 43.4, 11.6 43.4, 11.6 43.6, 11.4 43.6, 11.4 43.4))', 4326), 32632)) 1 # rows (not including the header row) 1 # columns AsText(Transform(GeomFromText('POLYGON((11 43, 12 43, 12 44, 11 44, 11 43), (11.4 43.4, 11.6 43.4, 11.6 43.6, 11.4 43.6, 11.4 43.4))', 4326), 32632)) POLYGON((663019.070082 4762755.64169, 744533.019451 4765182.932802, 740526.321055 4876249.126963, 660349.410579 4873817.333441, 663019.070082 4762755.64169), (694349.575562 4808033.274618, 710545.984354 4808519.151148, 709851.653212 4830731.987849, 693708.725206 4830245.931093, 694349.575562 4808033.274618)) libspatialite-4.1.1/test/sql_stmt_proj_tests/output36.testcase0000664000175000017500000000333312163502133021633 00000000000000Output format tests - GEOMETRYCOLLECTION XYZ (POINT LINESTRING) :memory: #use in-memory database SELECT AsText(geom), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom), Hex(AsEWKB(geom)) FROM (SELECT GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(1 2 100), LINESTRINGZ(3 4 100, 4 5 101))", 4326) AS geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(geom) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) Hex(AsEWKB(geom)) GEOMETRYCOLLECTION Z(POINT Z(1 2 100), LINESTRING Z(3 4 100, 4 5 101)) 1,2,1003,4,100 4,5,101 1,2,1003,4,100 4,5,101:0 # trailing ":0" required to avoid truncation !!! {"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[1,2,100]},{"type":"LineString","coordinates":[[3,4,100],[4,5,101]]}]}:0 # trailing ":0" required to avoid truncation !!! GEOMETRYCOLLECTION(POINT(1 2),LINESTRING(3 4,4 5)) SRID=4326;GEOMETRYCOLLECTION(POINT(1 2 100),LINESTRING(3 4 100,4 5 101)) 535249443D343332363B30313037303030303830303230303030303030313031303030303830303030303030303030303030463033463030303030303030303030303030343030303030303030303030303035393430303130323030303038303032303030303030303030303030303030303030303834303030303030303030303030303130343030303030303030303030303035393430303030303030303030303030313034303030303030303030303030303134343030303030303030303030343035393430 libspatialite-4.1.1/test/sql_stmt_proj_tests/askml5.testcase0000664000175000017500000000060012163502133021310 00000000000000askml - 4 arg blob descriptions :memory: #use in-memory database SELECT askml(zeroblob(10), zeroblob(12), GeomFromText("Point(1 2)", 4326), 4) 1 # rows (not including the header row) 1 # columns askml(zeroblob(10), zeroblob(12), GeomFromText("Point(1 2)", 4326), 4) BLOBBLOB1,2 libspatialite-4.1.1/test/sql_stmt_proj_tests/askml4.testcase0000664000175000017500000000054512163502133021317 00000000000000askml - 4 arg float descriptions :memory: #use in-memory database SELECT askml(2.5, 3.2, GeomFromText("Point(1 2)", 4326), 4) 1 # rows (not including the header row) 1 # columns askml(2.5, 3.2, GeomFromText("Point(1 2)", 4326), 4) 2.5000003.2000001,2 libspatialite-4.1.1/test/sql_stmt_proj_tests/output19.testcase0000664000175000017500000000552512163502133021641 00000000000000Output format tests - POLYGONZM via EWKB, WGS-84 :memory: #use in-memory database SELECT AsText(GeomFromWkb(AsBinary(geom))), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom), Hex(AsEWKB(geom)) FROM (SELECT GeomFromEWkt("SRID=4326;POLYGON((-10 -10 1 4, -10 10 2 5, 10 10 3 6.8, 10 -10 4 5, -10 -10 1 4),(-1 1 2.3 1, 1 -2 4.6 2, 0 -2 1.6 3.333, -1 1 2.3 1))") as geom) dummy 1 # rows (not including the header row) 7 # columns AsText(GeomFromWkb(AsBinary(geom))) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) Hex(AsEWKB(geom)) POLYGON ZM((-10 -10 1 4, -10 10 2 5, 10 10 3 6.8, 10 -10 4 5, -10 -10 1 4), (-1 1 2.3 1, 1 -2 4.6 2, 0 -2 1.6 3.333, -1 1 2.3 1)) -10,-10,1 -10,10,2 10,10,3 10,-10,4 -10,-10,1-1,1,2.3 1,-2,4.6 0,-2,1.6 -1,1,2.3 -10,-10,1 -10,10,2 10,10,3 10,-10,4 -10,-10,1-1,1,2.3 1,-2,4.6 0,-2,1.6 -1,1,2.3:0 {"type":"Polygon","coordinates":[[[-10,-10,1],[-10,10,2],[10,10,3],[10,-10,4],[-10,-10,1]],[[-1,1,2.3],[1,-2,4.6],[0,-2,1.6],[-1,1,2.3]]]}:0 POLYGON((-10 -10,-10 10,10 10,10 -10,-10 -10),(-1 1,1 -2,0 -2,-1 1)) SRID=4326;POLYGON((-10 -10 1 4,-10 10 2 5,10 10 3 6.8,10 -10 4 5,-10 -10 1 4),(-1 1 2.3 1,1 -2 4.6 2,0 -2 1.6 3.333,-1 1 2.3 1)) 535249443D343332363B30313033303030304330303230303030303030353030303030303030303030303030303030303234433030303030303030303030303032344330303030303030303030303030463033463030303030303030303030303130343030303030303030303030303032344330303030303030303030303030323434303030303030303030303030303030343030303030303030303030303031343430303030303030303030303030323434303030303030303030303030303234343030303030303030303030303030383430333333333333333333333333314234303030303030303030303030303234343030303030303030303030303032344330303030303030303030303030313034303030303030303030303030303134343030303030303030303030303032344330303030303030303030303030323443303030303030303030303030304630334630303030303030303030303031303430303430303030303030303030303030303030303046304246303030303030303030303030463033463636363636363636363636363032343030303030303030303030303046303346303030303030303030303030463033463030303030303030303030303030433036363636363636363636363631323430303030303030303030303030303034303030303030303030303030303030303030303030303030303030303030304330394139393939393939393939463933463434384236434537464241393041343030303030303030303030303046304246303030303030303030303030463033463636363636363636363636363032343030303030303030303030303046303346 libspatialite-4.1.1/test/sql_stmt_proj_tests/output31.testcase0000664000175000017500000001055212163502133021627 00000000000000Output format tests - GEOMETRY COLLECTION OF POLYGONZM via EWKB, WGS-84 :memory: #use in-memory database SELECT AsText(geom), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom), Hex(AsEWKB(geom)) FROM (SELECT GeomFromEWkt("SRID=4326;GEOMETRYCOLLECTION(POLYGON((-10 -10 4 0, -10 10 5 0, 10 10 6 1, 10 -10 5 0, -10 -10 4 0),(-8 -8 1 1, -2 -8 3 4, -2 -2 5 6, -8 -2 7 9, -8 -8 1 1),(8 8 11 0, 2 8 13 -2, 2 2 17 -4, 8 2 13 -8, 8 8 11 0)))") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(geom) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) Hex(AsEWKB(geom)) GEOMETRYCOLLECTION ZM(POLYGON ZM((-10 -10 4 0, -10 10 5 0, 10 10 6 1, 10 -10 5 0, -10 -10 4 0), (-8 -8 1 1, -2 -8 3 4, -2 -2 5 6, -8 -2 7 9, -8 -8 1 1), (8 8 11 0, 2 8 13 -2, 2 2 17 -4, 8 2 13 -8, 8 8 11 0))) -10,-10,4 -10,10,5 10,10,6 10,-10,5 -10,-10,4-8,-8,1 -2,-8,3 -2,-2,5 -8,-2,7 -8,-8,18,8,11 2,8,13 2,2,17 8,2,13 8,8,11 -10,-10,4 -10,10,5 10,10,6 10,-10,5 -10,-10,4-8,-8,1 -2,-8,3 -2,-2,5 -8,-2,7 -8,-8,18,8,11 2,8,13 2,2,17 8,2,13 8,8,11:0 {"type":"GeometryCollection","geometries":[{"type":"Polygon","coordinates":[[[-10,-10,4],[-10,10,5],[10,10,6],[10,-10,5],[-10,-10,4]],[[-8,-8,1],[-2,-8,3],[-2,-2,5],[-8,-2,7],[-8,-8,1]],[[8,8,11],[2,8,13],[2,2,17],[8,2,13],[8,8,11]]]}]}:0 GEOMETRYCOLLECTION(POLYGON((-10 -10,-10 10,10 10,10 -10,-10 -10),(-8 -8,-2 -8,-2 -2,-8 -2,-8 -8),(8 8,2 8,2 2,8 2,8 8))) SRID=4326;GEOMETRYCOLLECTION(POLYGON((-10 -10 4 0,-10 10 5 0,10 10 6 1,10 -10 5 0,-10 -10 4 0),(-8 -8 1 1,-2 -8 3 4,-2 -2 5 6,-8 -2 7 9,-8 -8 1 1),(8 8 11 0,2 8 13 -2,2 2 17 -4,8 2 13 -8,8 8 11 0))) 535249443D343332363B303130373030303043303031303030303030303130333030303043303033303030303030303530303030303030303030303030303030303032344330303030303030303030303030323443303030303030303030303030303130343030303030303030303030303030303030303030303030303030303030323443303030303030303030303030303234343030303030303030303030303031343430303030303030303030303030303030303030303030303030303030303234343030303030303030303030303032343430303030303030303030303030313834303030303030303030303030304630334630303030303030303030303032343430303030303030303030303030323443303030303030303030303030303134343030303030303030303030303030303030303030303030303030303030323443303030303030303030303030303234433030303030303030303030303031303430303030303030303030303030303030303035303030303030303030303030303030303030323043303030303030303030303030303230433030303030303030303030303046303346303030303030303030303030463033463030303030303030303030303030433030303030303030303030303032304330303030303030303030303030303834303030303030303030303030303130343030303030303030303030303030304330303030303030303030303030303043303030303030303030303030303134343030303030303030303030303031383430303030303030303030303030323043303030303030303030303030303030433030303030303030303030303031433430303030303030303030303030323234303030303030303030303030303230433030303030303030303030303032304330303030303030303030303030463033463030303030303030303030304630334630353030303030303030303030303030303030303230343030303030303030303030303032303430303030303030303030303030323634303030303030303030303030303030303030303030303030303030303030303430303030303030303030303030323034303030303030303030303030303241343030303030303030303030303030304330303030303030303030303030303034303030303030303030303030303030343030303030303030303030303033313430303030303030303030303030313043303030303030303030303030303230343030303030303030303030303030303430303030303030303030303030324134303030303030303030303030303230433030303030303030303030303032303430303030303030303030303030323034303030303030303030303030303236343030303030303030303030303030303030 libspatialite-4.1.1/test/sql_stmt_proj_tests/askml11.testcase0000664000175000017500000000042512163502133021372 00000000000000askml - 2 arg int descriptions excessive precision :memory: #use in-memory database SELECT askml(GeomFromText("Point(1 2)", 4326), 44) 1 # rows (not including the header row) 1 # columns askml(GeomFromText("Point(1 2)", 4326), 44) 1,2 libspatialite-4.1.1/test/sql_stmt_proj_tests/output3.testcase0000664000175000017500000000067712163502133021555 00000000000000Output format tests - bad blob input :memory: #use in-memory database SELECT AsText(geom), AsKML(geom), AsKML("myname", "mydesc", geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom) FROM (SELECT zeroblob(40) as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(geom) AsKML(geom) AsKML("myname", "mydesc", geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) (NULL) (NULL) (NULL) (NULL) (NULL) (NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_proj_tests/transform4.testcase0000664000175000017500000000036212163502133022220 00000000000000transform - Point (unknown srid) :memory: #use in-memory database SELECT AsText(Transform(GeomFromText('POINT(11 43)'), 32632)) 1 # rows (not including the header row) 1 # columns AsText(Transform(GeomFromText('POINT(11 43)'), 32632)) (NULL) libspatialite-4.1.1/test/sql_stmt_proj_tests/transform6.testcase0000664000175000017500000000037112163502133022222 00000000000000transform - Point (NULL srid) :memory: #use in-memory database SELECT AsText(Transform(GeomFromText('POINT(11 43)', 4326), NULL)) 1 # rows (not including the header row) 1 # columns AsText(Transform(GeomFromText('POINT(11 43)', 4326), NULL)) (NULL) libspatialite-4.1.1/test/sql_stmt_proj_tests/output30.testcase0000664000175000017500000001310012163502133021616 00000000000000Output format tests - MULTIPOLYGONZM via EWKB, WGS-84 :memory: #use in-memory database SELECT AsText(geom), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom), Hex(AsEWKB(geom)) FROM (SELECT GeomFromEWkt("SRID=4326;MULTIPOLYGON(((10 10 1.2 1, 0 10 1.3 -2, 0 0 1.1 5.8, 0 10 1.3 3, 10 10 1.2 1)),((-10 -10 4 0, -10 10 5 0, 10 10 6 1, 10 -10 5 0, -10 -10 4 0),(-8 -8 1 1, -2 -8 3 4, -2 -2 5 6, -8 -2 7 9, -8 -8 1 1),(8 8 11 0, 2 8 13 -2, 2 2 17 -4, 8 2 13 -8, 8 8 11 0)))") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(geom) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) Hex(AsEWKB(geom)) MULTIPOLYGON ZM(((10 10 1.2 1, 0 10 1.3 -2, 0 0 1.1 5.8, 0 10 1.3 3, 10 10 1.2 1)), ((-10 -10 4 0, -10 10 5 0, 10 10 6 1, 10 -10 5 0, -10 -10 4 0), (-8 -8 1 1, -2 -8 3 4, -2 -2 5 6, -8 -2 7 9, -8 -8 1 1), (8 8 11 0, 2 8 13 -2, 2 2 17 -4, 8 2 13 -8, 8 8 11 0))) 10,10,1.2 0,10,1.3 0,0,1.1 0,10,1.3 10,10,1.2-10,-10,4 -10,10,5 10,10,6 10,-10,5 -10,-10,4-8,-8,1 -2,-8,3 -2,-2,5 -8,-2,7 -8,-8,18,8,11 2,8,13 2,2,17 8,2,13 8,8,11 10,10,1.2 0,10,1.3 0,0,1.1 0,10,1.3 10,10,1.2-10,-10,4 -10,10,5 10,10,6 10,-10,5 -10,-10,4-8,-8,1 -2,-8,3 -2,-2,5 -8,-2,7 -8,-8,18,8,11 2,8,13 2,2,17 8,2,13 8,8,11:0 {"type":"MultiPolygon","coordinates":[[[[10,10,1.2],[0,10,1.3],[0,0,1.1],[0,10,1.3],[10,10,1.2]]],[[[-10,-10,4],[-10,10,5],[10,10,6],[10,-10,5],[-10,-10,4]],[[-8,-8,1],[-2,-8,3],[-2,-2,5],[-8,-2,7],[-8,-8,1]],[[8,8,11],[2,8,13],[2,2,17],[8,2,13],[8,8,11]]]]}:0 MULTIPOLYGON(((10 10,0 10,0 0,0 10,10 10)),((-10 -10,-10 10,10 10,10 -10,-10 -10),(-8 -8,-2 -8,-2 -2,-8 -2,-8 -8),(8 8,2 8,2 2,8 2,8 8))) SRID=4326;MULTIPOLYGON(((10 10 1.2 1,0 10 1.3 -2,0 0 1.1 5.8,0 10 1.3 3,10 10 1.2 1)),((-10 -10 4 0,-10 10 5 0,10 10 6 1,10 -10 5 0,-10 -10 4 0),(-8 -8 1 1,-2 -8 3 4,-2 -2 5 6,-8 -2 7 9,-8 -8 1 1),(8 8 11 0,2 8 13 -2,2 2 17 -4,8 2 13 -8,8 8 11 0))) 535249443D343332363B30313036303030304330303230303030303030313033303030304330303130303030303030353030303030303030303030303030303030303234343030303030303030303030303032343430333333333333333333333333463333463030303030303030303030304630334630303030303030303030303030303030303030303030303030303030323434304344434343434343434343434634334630303030303030303030303030304330303030303030303030303030303030303030303030303030303030303030303039413939393939393939393946313346333333333333333333333333313734303030303030303030303030303030303030303030303030303030303032343430434443434343434343434343463433463030303030303030303030303038343030303030303030303030303032343430303030303030303030303030323434303333333333333333333333334633334630303030303030303030303046303346303130333030303043303033303030303030303530303030303030303030303030303030303032344330303030303030303030303030323443303030303030303030303030303130343030303030303030303030303030303030303030303030303030303030323443303030303030303030303030303234343030303030303030303030303031343430303030303030303030303030303030303030303030303030303030303234343030303030303030303030303032343430303030303030303030303030313834303030303030303030303030304630334630303030303030303030303032343430303030303030303030303030323443303030303030303030303030303134343030303030303030303030303030303030303030303030303030303030323443303030303030303030303030303234433030303030303030303030303031303430303030303030303030303030303030303035303030303030303030303030303030303030323043303030303030303030303030303230433030303030303030303030303046303346303030303030303030303030463033463030303030303030303030303030433030303030303030303030303032304330303030303030303030303030303834303030303030303030303030303130343030303030303030303030303030304330303030303030303030303030303043303030303030303030303030303134343030303030303030303030303031383430303030303030303030303030323043303030303030303030303030303030433030303030303030303030303031433430303030303030303030303030323234303030303030303030303030303230433030303030303030303030303032304330303030303030303030303030463033463030303030303030303030304630334630353030303030303030303030303030303030303230343030303030303030303030303032303430303030303030303030303030323634303030303030303030303030303030303030303030303030303030303030303430303030303030303030303030323034303030303030303030303030303241343030303030303030303030303030304330303030303030303030303030303034303030303030303030303030303030343030303030303030303030303033313430303030303030303030303030313043303030303030303030303030303230343030303030303030303030303030303430303030303030303030303030324134303030303030303030303030303230433030303030303030303030303032303430303030303030303030303030323034303030303030303030303030303236343030303030303030303030303030303030 libspatialite-4.1.1/test/sql_stmt_proj_tests/output23.testcase0000664000175000017500000000335312163502133021631 00000000000000Output format tests - MULTILINESTRING via EWKB, WGS-84 :memory: #use in-memory database SELECT AsText(geom), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom), Hex(AsEWKB(geom)) FROM (SELECT GeomFromEWkt("SRID=4326;MULTILINESTRING((-1 1, 2 3, 4 1),(0 2, 2 0, 0 0, 1 1))") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(geom) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) Hex(AsEWKB(geom)) MULTILINESTRING((-1 1, 2 3, 4 1), (0 2, 2 0, 0 0, 1 1)) -1,1 2,3 4,10,2 2,0 0,0 1,1 -1,1 2,3 4,10,2 2,0 0,0 1,1:0 {"type":"MultiLineString","coordinates":[[[-1,1],[2,3],[4,1]],[[0,2],[2,0],[0,0],[1,1]]]}:0 MULTILINESTRING((-1 1,2 3,4 1),(0 2,2 0,0 0,1 1)) SRID=4326;MULTILINESTRING((-1 1,2 3,4 1),(0 2,2 0,0 0,1 1)) 535249443D343332363B3031303530303030303030323030303030303031303230303030303030333030303030303030303030303030303030304630424630303030303030303030303046303346303030303030303030303030303034303030303030303030303030303038343030303030303030303030303031303430303030303030303030303030463033463031303230303030303030343030303030303030303030303030303030303030303030303030303030303030303030303430303030303030303030303030303034303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030304630334630303030303030303030303046303346libspatialite-4.1.1/test/sql_stmt_proj_tests/output18.testcase0000664000175000017500000000464112163502133021636 00000000000000Output format tests - POLYGONM via EWKB, WGS-84 :memory: #use in-memory database SELECT AsText(GeomFromWkb(AsBinary(geom))), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom), Hex(AsEWKB(geom)) FROM (SELECT GeomFromEWkt("SRID=4326;POLYGONM((-10 -10 1, -10 10 2, 10 10 3, 10 -10 4, -10 -10 1),(-1 1 2.3, 1 -2 4.6, 0 -2 1.6, -1 1 2.3))") as geom) dummy 1 # rows (not including the header row) 7 # columns AsText(GeomFromWkb(AsBinary(geom))) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) Hex(AsEWKB(geom)) POLYGON M((-10 -10 1, -10 10 2, 10 10 3, 10 -10 4, -10 -10 1), (-1 1 2.3, 1 -2 4.6, 0 -2 1.6, -1 1 2.3)) -10,-10 -10,10 10,10 10,-10 -10,-10-1,1 1,-2 0,-2 -1,1 -10,-10 -10,10 10,10 10,-10 -10,-10-1,1 1,-2 0,-2 -1,1:0 {"type":"Polygon","coordinates":[[[-10,-10],[-10,10],[10,10],[10,-10],[-10,-10]],[[-1,1],[1,-2],[0,-2],[-1,1]]]}:0 POLYGON((-10 -10,-10 10,10 10,10 -10,-10 -10),(-1 1,1 -2,0 -2,-1 1)):0 SRID=4326;POLYGONM((-10 -10 1,-10 10 2,10 10 3,10 -10 4,-10 -10 1),(-1 1 2.3,1 -2 4.6,0 -2 1.6,-1 1 2.3)) 535249443D343332363B30313033303030303430303230303030303030353030303030303030303030303030303030303234433030303030303030303030303032344330303030303030303030303030463033463030303030303030303030303234433030303030303030303030303032343430303030303030303030303030303034303030303030303030303030303234343030303030303030303030303032343430303030303030303030303030303834303030303030303030303030303234343030303030303030303030303032344330303030303030303030303030313034303030303030303030303030303234433030303030303030303030303032344330303030303030303030303030463033463034303030303030303030303030303030303030463042463030303030303030303030304630334636363636363636363636363630323430303030303030303030303030463033463030303030303030303030303030433036363636363636363636363631323430303030303030303030303030303030303030303030303030303030303030433039413939393939393939393946393346303030303030303030303030463042463030303030303030303030304630334636363636363636363636363630323430 libspatialite-4.1.1/test/sql_stmt_proj_tests/output14.testcase0000664000175000017500000000204112163502133021622 00000000000000Output format tests - LINESTRINGZ via EWKB, WGS-84 :memory: #use in-memory database SELECT AsText(GeomFromWkb(AsBinary(geom))), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom), Hex(AsEWKB(geom)) FROM (SELECT GeomFromEWkt("SRID=4326;LINESTRING(-1 1 2.3, 1 -2 4.6)") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(GeomFromWkb(AsBinary(geom))) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) Hex(AsEWKB(geom)) LINESTRING Z(-1 1 2.3, 1 -2 4.6) -1,1,2.3 1,-2,4.6 -1,1,2.3 1,-2,4.6:0 {"type":"LineString","coordinates":[[-1,1,2.3],[1,-2,4.6]]}:0 LINESTRING(-1 1,1 -2) SRID=4326;LINESTRING(-1 1 2.3,1 -2 4.6) 535249443D343332363B303130323030303038303032303030303030303030303030303030303030463042463030303030303030303030304630334636363636363636363636363630323430303030303030303030303030463033463030303030303030303030303030433036363636363636363636363631323430 libspatialite-4.1.1/test/sql_stmt_proj_tests/transform18.testcase0000664000175000017500000000142412163502133022305 00000000000000transform - Polygon M :memory: #use in-memory database SELECT AsText(Transform(GeomFromText('POLYGONM((11 43 1, 12 43 2, 12 44 3, 11 44 4, 11 43 1), (11.4 43.4 1, 11.6 43.4 2, 11.6 43.6 3, 11.4 43.6 4, 11.4 43.4 1))', 4326), 32632)) 1 # rows (not including the header row) 1 # columns AsText(Transform(GeomFromText('POLYGONM((11 43 1, 12 43 2, 12 44 3, 11 44 4, 11 43 1), (11.4 43.4 1, 11.6 43.4 2, 11.6 43.6 3, 11.4 43.6 4, 11.4 43.4 1))', 4326), 32632)) POLYGON M((663019.070082 4762755.64169 1, 744533.019451 4765182.932802 2, 740526.321055 4876249.126963 3, 660349.410579 4873817.333441 4, 663019.070082 4762755.64169 1), (694349.575562 4808033.274618 1, 710545.984354 4808519.151148 2, 709851.653212 4830731.987849 3, 693708.725206 4830245.931093 4, 694349.575562 4808033.274618 1)) libspatialite-4.1.1/test/sql_stmt_proj_tests/askml2.testcase0000664000175000017500000000034012163502133021306 00000000000000askml - 2 arg weird SRID (error) :memory: #use in-memory database SELECT askml(GeomFromText("Point(1 2)", 9999989), 4) 1 # rows (not including the header row) 1 # columns askml(GeomFromText("Point(1 2)", 9999989), 4) (NULL) libspatialite-4.1.1/test/sql_stmt_proj_tests/fromgml42.testcase0000664000175000017500000000124712163502133021735 00000000000000FromGML - multipointZ, multiple SRID, no namespace :memory: #use in-memory database SELECT AsText(GeomFromGml('1,2,3.22,4,3.2')) 1 # rows (not including the header row) 1 # columns AsText(GeomFromGml('1,2,3.22,4,3.2')):0 MULTIPOINT Z(1 2 3.2, -4.356405 0.000738 79.631063) libspatialite-4.1.1/test/sql_stmt_proj_tests/transform9.testcase0000664000175000017500000000064112163502133022225 00000000000000transform - Linestring Z :memory: #use in-memory database SELECT AsText(Transform(GeomFromText('LINESTRINGZ(11 43 100, 12 43 101, 12 42 102)', 4326), 32632)) 1 # rows (not including the header row) 1 # columns AsText(Transform(GeomFromText('LINESTRINGZ(11 43 100, 12 43 101, 12 42 102)', 4326), 32632)) LINESTRING Z(663019.070082 4762755.64169 100, 744533.019451 4765182.932802 101, 748464.920716 4654130.891324 102) libspatialite-4.1.1/test/sql_stmt_proj_tests/output1.testcase0000664000175000017500000000154712163502133021550 00000000000000Output format tests - POLYGON, WGS-84 :memory: #use in-memory database SELECT AsText(geom), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom) FROM (SELECT GeomFromEWkt("SRID=4326;POLYGON((0 0, 1 1, 0 2, -1 1, 0 0))") as geom) dummy; 1 # rows (not including the header row) 6 # columns AsText(geom) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) POLYGON((0 0, 1 1, 0 2, -1 1, 0 0)) 0,0 1,1 0,2 -1,1 0,0 0,0 1,1 0,2 -1,1 0,0:0 {"type":"Polygon","coordinates":[[[0,0],[1,1],[0,2],[-1,1],[0,0]]]}:0 POLYGON((0 0,1 1,0 2,-1 1,0 0)) SRID=4326;POLYGON((0 0,1 1,0 2,-1 1,0 0)) libspatialite-4.1.1/test/sql_stmt_proj_tests/output6.testcase0000664000175000017500000000135112163502133021546 00000000000000Output format tests - POINT input, WGS-84 :memory: #use in-memory database SELECT AsText(geom), AsKML(geom), AsKML("myname", "mydesc", geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom) FROM (SELECT MakePoint(1, 2, 4326) as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(geom) AsKML(geom) AsKML("myname", "mydesc", geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) POINT(1 2) 1,2 mynamemydesc1,2 1,2:0 {"type":"Point","coordinates":[1,2]}:0 POINT(1 2) SRID=4326;POINT(1 2) libspatialite-4.1.1/test/sql_stmt_proj_tests/transform17.testcase0000664000175000017500000000152012163502133022301 00000000000000transform - Polygon Z :memory: #use in-memory database SELECT AsText(Transform(GeomFromText('POLYGONZ((11 43 100, 12 43 101, 12 44 102, 11 44 103, 11 43 100), (11.4 43.4 100, 11.6 43.4 101, 11.6 43.6 102, 11.4 43.6 103, 11.4 43.4 100))', 4326), 32632)) 1 # rows (not including the header row) 1 # columns AsText(Transform(GeomFromText('POLYGONZ((11 43 100, 12 43 101, 12 44 102, 11 44 103, 11 43 100), (11.4 43.4 100, 11.6 43.4 101, 11.6 43.6 102, 11.4 43.6 103, 11.4 43.4 100))', 4326), 32632)) POLYGON Z((663019.070082 4762755.64169 100, 744533.019451 4765182.932802 101, 740526.321055 4876249.126963 102, 660349.410579 4873817.333441 103, 663019.070082 4762755.64169 100), (694349.575562 4808033.274618 100, 710545.984354 4808519.151148 101, 709851.653212 4830731.987849 102, 693708.725206 4830245.931093 103, 694349.575562 4808033.274618 100)) libspatialite-4.1.1/test/sql_stmt_proj_tests/transform19.testcase0000664000175000017500000000162012163502133022304 00000000000000transform - Polygon ZM :memory: #use in-memory database SELECT AsText(Transform(GeomFromText('POLYGONZM((11 43 100 1, 12 43 101 2, 12 44 102 3, 11 44 103 4, 11 43 100 1), (11.4 43.4 100 1, 11.6 43.4 101 2, 11.6 43.6 102 3, 11.4 43.6 103 4, 11.4 43.4 100 1))', 4326), 32632)) 1 # rows (not including the header row) 1 # columns AsText(Transform(GeomFromText('POLYGONZM((11 43 100 1, 12 43 101 2, 12 44 102 3, 11 44 103 4, 11 43 100 1), (11.4 43.4 100 1, 11.6 43.4 101 2, 11.6 43.6 102 3, 11.4 43.6 103 4, 11.4 43.4 100 1))', 4326), 32632)) POLYGON ZM((663019.070082 4762755.64169 100 1, 744533.019451 4765182.932802 101 2, 740526.321055 4876249.126963 102 3, 660349.410579 4873817.333441 103 4, 663019.070082 4762755.64169 100 1), (694349.575562 4808033.274618 100 1, 710545.984354 4808519.151148 101 2, 709851.653212 4830731.987849 102 3, 693708.725206 4830245.931093 103 4, 694349.575562 4808033.274618 100 1)) libspatialite-4.1.1/test/sql_stmt_proj_tests/output7.testcase0000664000175000017500000000244512163502133021554 00000000000000Output format tests - Linestring, NAD83 :memory: #use in-memory database SELECT AsText(geom), AsKML(geom, 6), AsGML(2, geom, 7), AsGML(3, geom, 8), AsGeoJSON(geom, 6), AsGeoJSON(geom, 5, 4), AsWkt(geom, 5) FROM (SELECT GeomFromEwkt("SRID=3636;LINESTRING(1065407.0674 116445.5897, 2968193.5686 805860.5650)") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(geom) AsKML(geom, 6) AsGML(2, geom, 7) AsGML(3, geom, 8) AsGeoJSON(geom, 6) AsGeoJSON(geom, 5, 4) AsWkt(geom, 5) LINESTRING(1065407.0674 116445.5897, 2968193.5686 805860.565) -104.05,45.93 -96.430658,47.805216 1065407.0674,116445.5897 2968193.5686,805860.565:0 1065407.0674 116445.5897 2968193.5686 805860.565:0 {"type":"LineString","coordinates":[[1065407.0674,116445.5897],[2968193.5686,805860.565]]}:0 {"type":"LineString","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:EPSG:3636"}},"coordinates":[[1065407.0674,116445.5897],[2968193.5686,805860.565]]}:0 LINESTRING(1065407.0674 116445.5897,2968193.5686 805860.565) libspatialite-4.1.1/test/sql_stmt_proj_tests/transform1.testcase0000664000175000017500000000024512163502133022215 00000000000000transform - null args :memory: #use in-memory database SELECT Transform(NULL, NULL) 1 # rows (not including the header row) 1 # columns Transform(NULL, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_proj_tests/output21.testcase0000664000175000017500000000234712163502133021631 00000000000000Output format tests - MULTIPOINTZ via EWKB, WGS-84 :memory: #use in-memory database SELECT AsText(geom), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom), Hex(AsEWKB(geom)) FROM (SELECT GeomFromEWkt("SRID=4326;MULTIPOINT(-1 1 2.3,1 2 4.1)") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(geom) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) Hex(AsEWKB(geom)) MULTIPOINT Z(-1 1 2.3, 1 2 4.1) -1,1,2.31,2,4.1 -1,1,2.31,2,4.1:0 {"type":"MultiPoint","coordinates":[[-1,1,2.3],[1,2,4.1]]}:0 MULTIPOINT(-1 1,1 2) SRID=4326;MULTIPOINT(-1 1 2.3,1 2 4.1) 535249443D343332363B3031303430303030383030323030303030303031303130303030383030303030303030303030303046304246303030303030303030303030463033463636363636363636363636363032343030313031303030303830303030303030303030303030463033463030303030303030303030303030343036363636363636363636363631303430 libspatialite-4.1.1/test/sql_stmt_proj_tests/askml8.testcase0000664000175000017500000000060712163502133021322 00000000000000askml - 4 arg blob descriptions, GDA94 :memory: #use in-memory database SELECT askml(zeroblob(10), zeroblob(12), GeomFromText("Point(1 2)", 4283), 4) 1 # rows (not including the header row) 1 # columns askml(zeroblob(10), zeroblob(12), GeomFromText("Point(1 2)", 4283), 4) BLOBBLOB1,2 libspatialite-4.1.1/test/sql_stmt_proj_tests/output28.testcase0000664000175000017500000001146312163502133021637 00000000000000Output format tests - MULTIPOLYGONZ via EWKB, WGS-84 :memory: #use in-memory database SELECT AsText(geom), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom), Hex(AsEWKB(geom)) FROM (SELECT GeomFromEWkt("SRID=4326;MULTIPOLYGON(((10 10 1.2, 0 10 1.3, 0 0 1.1, 0 10 1.3, 10 10 1.2)),((-10 -10 4, -10 10 5, 10 10 6, 10 -10 5, -10 -10 4),(-8 -8 1, -2 -8 3, -2 -2 5, -8 -2 7, -8 -8 1),(8 8 11, 2 8 13, 2 2 17, 8 2 13, 8 8 11)))") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(geom) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) Hex(AsEWKB(geom)) MULTIPOLYGON Z(((10 10 1.2, 0 10 1.3, 0 0 1.1, 0 10 1.3, 10 10 1.2)), ((-10 -10 4, -10 10 5, 10 10 6, 10 -10 5, -10 -10 4), (-8 -8 1, -2 -8 3, -2 -2 5, -8 -2 7, -8 -8 1), (8 8 11, 2 8 13, 2 2 17, 8 2 13, 8 8 11))) 10,10,1.2 0,10,1.3 0,0,1.1 0,10,1.3 10,10,1.2-10,-10,4 -10,10,5 10,10,6 10,-10,5 -10,-10,4-8,-8,1 -2,-8,3 -2,-2,5 -8,-2,7 -8,-8,18,8,11 2,8,13 2,2,17 8,2,13 8,8,11 10,10,1.2 0,10,1.3 0,0,1.1 0,10,1.3 10,10,1.2-10,-10,4 -10,10,5 10,10,6 10,-10,5 -10,-10,4-8,-8,1 -2,-8,3 -2,-2,5 -8,-2,7 -8,-8,18,8,11 2,8,13 2,2,17 8,2,13 8,8,11:0 {"type":"MultiPolygon","coordinates":[[[[10,10,1.2],[0,10,1.3],[0,0,1.1],[0,10,1.3],[10,10,1.2]]],[[[-10,-10,4],[-10,10,5],[10,10,6],[10,-10,5],[-10,-10,4]],[[-8,-8,1],[-2,-8,3],[-2,-2,5],[-8,-2,7],[-8,-8,1]],[[8,8,11],[2,8,13],[2,2,17],[8,2,13],[8,8,11]]]]}:0 MULTIPOLYGON(((10 10,0 10,0 0,0 10,10 10)),((-10 -10,-10 10,10 10,10 -10,-10 -10),(-8 -8,-2 -8,-2 -2,-8 -2,-8 -8),(8 8,2 8,2 2,8 2,8 8))) SRID=4326;MULTIPOLYGON(((10 10 1.2,0 10 1.3,0 0 1.1,0 10 1.3,10 10 1.2)),((-10 -10 4,-10 10 5,10 10 6,10 -10 5,-10 -10 4),(-8 -8 1,-2 -8 3,-2 -2 5,-8 -2 7,-8 -8 1),(8 8 11,2 8 13,2 2 17,8 2 13,8 8 11))) 535249443D343332363B3031303630303030383030323030303030303031303330303030383030313030303030303035303030303030303030303030303030303030323434303030303030303030303030303234343033333333333333333333333346333346303030303030303030303030303030303030303030303030303030303234343043444343434343434343434346343346303030303030303030303030303030303030303030303030303030303030303039413939393939393939393946313346303030303030303030303030303030303030303030303030303030303234343043444343434343434343434346343346303030303030303030303030323434303030303030303030303030303234343033333333333333333333333346333346303130333030303038303033303030303030303530303030303030303030303030303030303032344330303030303030303030303030323443303030303030303030303030303130343030303030303030303030303032344330303030303030303030303030323434303030303030303030303030303134343030303030303030303030303032343430303030303030303030303030323434303030303030303030303030303138343030303030303030303030303032343430303030303030303030303030323443303030303030303030303030303134343030303030303030303030303032344330303030303030303030303030323443303030303030303030303030303130343030353030303030303030303030303030303030303230433030303030303030303030303032304330303030303030303030303030463033463030303030303030303030303030433030303030303030303030303032304330303030303030303030303030303834303030303030303030303030303030433030303030303030303030303030304330303030303030303030303030313434303030303030303030303030303230433030303030303030303030303030304330303030303030303030303030314334303030303030303030303030303230433030303030303030303030303032304330303030303030303030303030463033463035303030303030303030303030303030303030323034303030303030303030303030303230343030303030303030303030303032363430303030303030303030303030303034303030303030303030303030303230343030303030303030303030303032413430303030303030303030303030303034303030303030303030303030303030343030303030303030303030303033313430303030303030303030303030323034303030303030303030303030303030343030303030303030303030303032413430303030303030303030303030323034303030303030303030303030303230343030303030303030303030303032363430libspatialite-4.1.1/test/sql_stmt_proj_tests/transform3.testcase0000664000175000017500000000041312163502133022214 00000000000000transform - Point :memory: #use in-memory database SELECT AsText(Transform(GeomFromText('POINT(11 43)', 4326), 32632)) 1 # rows (not including the header row) 1 # columns AsText(Transform(GeomFromText('POINT(11 43)', 4326), 32632)) POINT(663019.070082 4762755.64169) libspatialite-4.1.1/test/sql_stmt_proj_tests/output13.testcase0000664000175000017500000000154612163502133021632 00000000000000Output format tests - POINTZM via EWKB, WGS-84 :memory: #use in-memory database SELECT AsText(GeomFromWkb(AsBinary(geom))), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom), Hex(AsEWKB(geom)) FROM (SELECT GeomFromEWkt("SRID=4326;POINT(-1 1 2.3 4)") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(GeomFromWkb(AsBinary(geom))) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) Hex(AsEWKB(geom)) POINT ZM(-1 1 2.3 4) -1,1,2.3 -1,1,2.3:0 {"type":"Point","coordinates":[-1,1,2.3]}:0 POINT(-1 1) SRID=4326;POINT(-1 1 2.3 4) 535249443D343332363B3031303130303030433030303030303030303030303046304246303030303030303030303030463033463636363636363636363636363032343030303030303030303030303031303430 libspatialite-4.1.1/test/sql_stmt_proj_tests/output8.testcase0000664000175000017500000000226112163502133021551 00000000000000Output format tests - MULTIPOINT, WGS-84 :memory: #use in-memory database SELECT AsText(geom), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom) FROM (SELECT GeomFromEWkt("SRID=4326;MULTIPOINT(0 0, 1 1, 0 2, -1 1)") as geom) dummy; 1 # rows (not including the header row) 6 # columns AsText(geom) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) MULTIPOINT(0 0, 1 1, 0 2, -1 1) 0,01,10,2-1,1 0,01,10,2-1,1:0 {"type":"MultiPoint","coordinates":[[0,0],[1,1],[0,2],[-1,1]]}:0 MULTIPOINT(0 0,1 1,0 2,-1 1) SRID=4326;MULTIPOINT(0 0,1 1,0 2,-1 1) libspatialite-4.1.1/test/sql_stmt_proj_tests/output32.testcase0000664000175000017500000001022712163502133021627 00000000000000Output format tests - GEOMETRY COLLECTION OF POINTZ and POLYGONZ via EWKB, WGS-84 :memory: #use in-memory database SELECT AsText(geom), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom), Hex(AsEWKB(geom)) FROM (SELECT GeomFromEWkt("SRID=4326;GEOMETRYCOLLECTION(POINT(1 2 3),POLYGON((-10 -10 4, -10 10 5, 10 10 6 , 10 -10 5, -10 -10 4),(-8 -8 1, -2 -8 3, -2 -2 5, -8 -2 7, -8 -8 1),(8 8 11, 2 8 13, 2 2 17, 8 2 13, 8 8 11)))") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(geom) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) Hex(AsEWKB(geom)) GEOMETRYCOLLECTION Z(POINT Z(1 2 3), POLYGON Z((-10 -10 4, -10 10 5, 10 10 6, 10 -10 5, -10 -10 4), (-8 -8 1, -2 -8 3, -2 -2 5, -8 -2 7, -8 -8 1), (8 8 11, 2 8 13, 2 2 17, 8 2 13, 8 8 11))) 1,2,3-10,-10,4 -10,10,5 10,10,6 10,-10,5 -10,-10,4-8,-8,1 -2,-8,3 -2,-2,5 -8,-2,7 -8,-8,18,8,11 2,8,13 2,2,17 8,2,13 8,8,11 1,2,3-10,-10,4 -10,10,5 10,10,6 10,-10,5 -10,-10,4-8,-8,1 -2,-8,3 -2,-2,5 -8,-2,7 -8,-8,18,8,11 2,8,13 2,2,17 8,2,13 8,8,11:0 {"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[1,2,3]},{"type":"Polygon","coordinates":[[[-10,-10,4],[-10,10,5],[10,10,6],[10,-10,5],[-10,-10,4]],[[-8,-8,1],[-2,-8,3],[-2,-2,5],[-8,-2,7],[-8,-8,1]],[[8,8,11],[2,8,13],[2,2,17],[8,2,13],[8,8,11]]]}]}:0 GEOMETRYCOLLECTION(POINT(1 2),POLYGON((-10 -10,-10 10,10 10,10 -10,-10 -10),(-8 -8,-2 -8,-2 -2,-8 -2,-8 -8),(8 8,2 8,2 2,8 2,8 8))) SRID=4326;GEOMETRYCOLLECTION(POINT(1 2 3),POLYGON((-10 -10 4,-10 10 5,10 10 6,10 -10 5,-10 -10 4),(-8 -8 1,-2 -8 3,-2 -2 5,-8 -2 7,-8 -8 1),(8 8 11,2 8 13,2 2 17,8 2 13,8 8 11))) 535249443D343332363B30313037303030303830303230303030303030313031303030303830303030303030303030303030463033463030303030303030303030303030343030303030303030303030303030383430303130333030303038303033303030303030303530303030303030303030303030303030303032344330303030303030303030303030323443303030303030303030303030303130343030303030303030303030303032344330303030303030303030303030323434303030303030303030303030303134343030303030303030303030303032343430303030303030303030303030323434303030303030303030303030303138343030303030303030303030303032343430303030303030303030303030323443303030303030303030303030303134343030303030303030303030303032344330303030303030303030303030323443303030303030303030303030303130343030353030303030303030303030303030303030303230433030303030303030303030303032304330303030303030303030303030463033463030303030303030303030303030433030303030303030303030303032304330303030303030303030303030303834303030303030303030303030303030433030303030303030303030303030304330303030303030303030303030313434303030303030303030303030303230433030303030303030303030303030304330303030303030303030303030314334303030303030303030303030303230433030303030303030303030303032304330303030303030303030303030463033463035303030303030303030303030303030303030323034303030303030303030303030303230343030303030303030303030303032363430303030303030303030303030303034303030303030303030303030303230343030303030303030303030303032413430303030303030303030303030303034303030303030303030303030303030343030303030303030303030303033313430303030303030303030303030323034303030303030303030303030303030343030303030303030303030303032413430303030303030303030303030323034303030303030303030303030303230343030303030303030303030303032363430 libspatialite-4.1.1/test/sql_stmt_proj_tests/transform20.testcase0000664000175000017500000000140612163502133022276 00000000000000transform - Polygon :memory: #use in-memory database SELECT AsText(Transform(GeomFromText('POLYGON((663000 4762000, 663100 4762000, 663100 4762100, 663000 4762100, 663000 4762000), (663010 4762010, 663020 4762010, 663020 4762020, 663010 4762020, 663010 4762010))', 32632), 4326)) 1 # rows (not including the header row) 1 # columns AsText(Transform(GeomFromText('POLYGON((663000 4762000, 663100 4762000, 663100 4762100, 663000 4762100, 663000 4762000), (663010 4762010, 663020 4762010, 663020 4762020, 663010 4762020, 663010 4762010))', 32632), 4326)) POLYGON((10.999546 42.993204, 11.000772 42.993182, 11.000801 42.994082, 10.999575 42.994104, 10.999546 42.993204), (10.999671 42.993291, 10.999794 42.993289, 10.999797 42.993379, 10.999674 42.993381, 10.999671 42.993291)) libspatialite-4.1.1/test/sql_stmt_proj_tests/askml1.testcase0000664000175000017500000000035112163502133021307 00000000000000askml - 2 arg bad precision (error) :memory: #use in-memory database SELECT askml(GeomFromText("Point(1 2)", 4326), "hello") 1 # rows (not including the header row) 1 # columns askml(GeomFromText("Point(1 2)", 4326), "hello") (NULL) libspatialite-4.1.1/test/sql_stmt_proj_tests/output38.testcase0000664000175000017500000000102712163502133021633 00000000000000Output format tests - XML masked chars :memory: #use in-memory database SELECT AsKML('myname', 'mydesc &"<>', GeomFromText("POLYGON((0 0, 1 1, 0 2, -1 1, 0 0))", 4326)); 1 # rows (not including the header row) 1 # columns AsKML('myname', 'mydesc &"<>', GeomFromText("POLYGON((0 0, 1 1, 0 2, -1 1, 0 0))", 4326)) mynamemydesc &"<>0,0 1,1 0,2 -1,1 0,0 libspatialite-4.1.1/test/sql_stmt_proj_tests/output9.testcase0000664000175000017500000000107712163502133021556 00000000000000Output format tests - POINT, WGS-84 :memory: #use in-memory database SELECT AsText(geom), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom) FROM (SELECT GeomFromEWkt("SRID=4326;POINT(-1 1)") as geom) dummy; 1 # rows (not including the header row) 6 # columns AsText(geom) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) POINT(-1 1) -1,1 -1,1:0 {"type":"Point","coordinates":[-1,1]}:0 POINT(-1 1) SRID=4326;POINT(-1 1) libspatialite-4.1.1/test/sql_stmt_proj_tests/output2.testcase0000664000175000017500000000157212163502133021547 00000000000000Output format tests - POLYGON, no SRID :memory: #use in-memory database SELECT AsText(geom), AsKML(geom), AsKML("myname", "mydesc", geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom) FROM (SELECT GeomFromText("POLYGON((0 0, 1 1, 0 2, -1 1, 0 0))") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(geom) AsKML(geom) AsKML("myname", "mydesc", geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) POLYGON((0 0, 1 1, 0 2, -1 1, 0 0)) (NULL) (NULL) 0,0 1,1 0,2 -1,1 0,0:0 # trailing ":0" required to avoid truncation !!! {"type":"Polygon","coordinates":[[[0,0],[1,1],[0,2],[-1,1],[0,0]]]}:0 # trailing ":0" required to avoid truncation !!! POLYGON((0 0,1 1,0 2,-1 1,0 0)) SRID=0;POLYGON((0 0,1 1,0 2,-1 1,0 0)) libspatialite-4.1.1/test/sql_stmt_proj_tests/askml3.testcase0000664000175000017500000000051412163502133021312 00000000000000askml - 4 arg int descriptions :memory: #use in-memory database SELECT askml(2, 3, GeomFromText("Point(1 2)", 4326), 4) 1 # rows (not including the header row) 1 # columns askml(2, 3, GeomFromText("Point(1 2)", 4326), 4) 231,2 libspatialite-4.1.1/test/sql_stmt_proj_tests/transform5.testcase0000664000175000017500000000041412163502133022217 00000000000000transform - Point (unknown destination SRID) :memory: #use in-memory database SELECT AsText(Transform(GeomFromText('POINT(11 43)', 4326), 326320)) 1 # rows (not including the header row) 1 # columns AsText(Transform(GeomFromText('POINT(11 43)', 4326), 326320)) (NULL) libspatialite-4.1.1/test/sql_stmt_proj_tests/transform8.testcase0000664000175000017500000000044012163502133022221 00000000000000transform - illegal Linestring :memory: #use in-memory database SELECT AsText(Transform(GeomFromText('LINESTRING(11 43, 12 43, 12 42', 4326), 32632)) 1 # rows (not including the header row) 1 # columns AsText(Transform(GeomFromText('LINESTRING(11 43, 12 43, 12 42', 4326), 32632)) (NULL) libspatialite-4.1.1/test/sql_stmt_proj_tests/Makefile.in0000664000175000017500000002766112163502133020444 00000000000000# Makefile.in generated by automake 1.12.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = test/sql_stmt_proj_tests DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = askml10.testcase \ askml11.testcase \ askml1.testcase \ askml2.testcase \ askml3.testcase \ askml4.testcase \ askml5.testcase \ askml6.testcase \ askml7.testcase \ askml8.testcase \ askml9.testcase \ fromgml42.testcase \ output10.testcase \ output11.testcase \ output12.testcase \ output13.testcase \ output14.testcase \ output15.testcase \ output16.testcase \ output17.testcase \ output18.testcase \ output19.testcase \ output1.testcase \ output20.testcase \ output21.testcase \ output22.testcase \ output23.testcase \ output24.testcase \ output25.testcase \ output26.testcase \ output27.testcase \ output28.testcase \ output29.testcase \ output2.testcase \ output30.testcase \ output31.testcase \ output32.testcase \ output33.testcase \ output34.testcase \ output35.testcase \ output36.testcase \ output37.testcase \ output38.testcase \ output3.testcase \ output4.testcase \ output5.testcase \ output6.testcase \ output7.testcase \ output8.testcase \ output9.testcase \ transform10.testcase \ transform11.testcase \ transform12.testcase \ transform13.testcase \ transform14.testcase \ transform15.testcase \ transform16.testcase \ transform17.testcase \ transform18.testcase \ transform19.testcase \ transform1.testcase \ transform20.testcase \ transform21.testcase \ transform2.testcase \ transform3.testcase \ transform4.testcase \ transform5.testcase \ transform6.testcase \ transform7.testcase \ transform8.testcase \ transform9.testcase all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/sql_stmt_proj_tests/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign test/sql_stmt_proj_tests/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags: TAGS TAGS: ctags: CTAGS CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libspatialite-4.1.1/test/sql_stmt_proj_tests/output11.testcase0000664000175000017500000000147612163502133021632 00000000000000Output format tests - POINTZ via EWKB, WGS-84 :memory: #use in-memory database SELECT AsText(GeomFromWkb(AsBinary(geom))), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom), Hex(AsEWKB(geom)) FROM (SELECT GeomFromEWkt("SRID=4326;POINT(-1 1 2.3)") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(GeomFromWkb(AsBinary(geom))) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) Hex(AsEWKB(geom)) POINT Z(-1 1 2.3) -1,1,2.3 -1,1,2.3:0 {"type":"Point","coordinates":[-1,1,2.3]}:0 POINT(-1 1) SRID=4326;POINT(-1 1 2.3) 535249443D343332363B30313031303030303830303030303030303030303030463042463030303030303030303030304630334636363636363636363636363630323430 libspatialite-4.1.1/test/sql_stmt_proj_tests/askml9.testcase0000664000175000017500000000054012163502133021317 00000000000000askml - 4 arg null descriptions :memory: #use in-memory database SELECT askml(null, null, GeomFromText("Point(1 2)", 4326), 4) 1 # rows (not including the header row) 1 # columns askml(null, null, GeomFromText("Point(1 2)", 4326), 4) NULLNULL1,2 libspatialite-4.1.1/test/sql_stmt_proj_tests/transform11.testcase0000664000175000017500000000066712163502133022306 00000000000000transform - Linestring ZM :memory: #use in-memory database SELECT AsText(Transform(GeomFromText('LINESTRINGZM(11 43 100 1, 12 43 101 2, 12 42 102 3)', 4326), 32632)) 1 # rows (not including the header row) 1 # columns AsText(Transform(GeomFromText('LINESTRINGZM(11 43 100 1, 12 43 101 2, 12 42 102 3)', 4326), 32632)) LINESTRING ZM(663019.070082 4762755.64169 100 1, 744533.019451 4765182.932802 101 2, 748464.920716 4654130.891324 102 3) libspatialite-4.1.1/test/sql_stmt_proj_tests/transform10.testcase0000664000175000017500000000061712163502133022300 00000000000000transform - Linestring M :memory: #use in-memory database SELECT AsText(Transform(GeomFromText('LINESTRINGM(11 43 1, 12 43 2, 12 42 3)', 4326), 32632)) 1 # rows (not including the header row) 1 # columns AsText(Transform(GeomFromText('LINESTRINGM(11 43 1, 12 43 2, 12 42 3)', 4326), 32632)) LINESTRING M(663019.070082 4762755.64169 1, 744533.019451 4765182.932802 2, 748464.920716 4654130.891324 3) libspatialite-4.1.1/test/sql_stmt_proj_tests/output27.testcase0000664000175000017500000000754712163502133021646 00000000000000Output format tests - MULTIPOLYGON via EWKB, WGS-84 :memory: #use in-memory database SELECT AsText(geom), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom), Hex(AsEWKB(geom)) FROM (SELECT GeomFromEWkt("SRID=4326;MULTIPOLYGON(((10 10, 0 10, 0 0, 0 10, 10 10)),((-10 -10, -10 10, 10 10, 10 -10, -10 -10),(-8 -8, -2 -8, -2 -2, -8 -2, -8 -8),(8 8, 2 8, 2 2, 8 2, 8 8)))") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(geom) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) Hex(AsEWKB(geom)) MULTIPOLYGON(((10 10, 0 10, 0 0, 0 10, 10 10)), ((-10 -10, -10 10, 10 10, 10 -10, -10 -10), (-8 -8, -2 -8, -2 -2, -8 -2, -8 -8), (8 8, 2 8, 2 2, 8 2, 8 8))) 10,10 0,10 0,0 0,10 10,10-10,-10 -10,10 10,10 10,-10 -10,-10-8,-8 -2,-8 -2,-2 -8,-2 -8,-88,8 2,8 2,2 8,2 8,8 10,10 0,10 0,0 0,10 10,10-10,-10 -10,10 10,10 10,-10 -10,-10-8,-8 -2,-8 -2,-2 -8,-2 -8,-88,8 2,8 2,2 8,2 8,8:0 {"type":"MultiPolygon","coordinates":[[[[10,10],[0,10],[0,0],[0,10],[10,10]]],[[[-10,-10],[-10,10],[10,10],[10,-10],[-10,-10]],[[-8,-8],[-2,-8],[-2,-2],[-8,-2],[-8,-8]],[[8,8],[2,8],[2,2],[8,2],[8,8]]]]}:0 MULTIPOLYGON(((10 10,0 10,0 0,0 10,10 10)),((-10 -10,-10 10,10 10,10 -10,-10 -10),(-8 -8,-2 -8,-2 -2,-8 -2,-8 -8),(8 8,2 8,2 2,8 2,8 8))) SRID=4326;MULTIPOLYGON(((10 10,0 10,0 0,0 10,10 10)),((-10 -10,-10 10,10 10,10 -10,-10 -10),(-8 -8,-2 -8,-2 -2,-8 -2,-8 -8),(8 8,2 8,2 2,8 2,8 8))) 535249443D343332363B303130363030303030303032303030303030303130333030303030303031303030303030303530303030303030303030303030303030303032343430303030303030303030303030323434303030303030303030303030303030303030303030303030303030303032343430303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030323434303030303030303030303030303234343030303030303030303030303032343430303130333030303030303033303030303030303530303030303030303030303030303030303032344330303030303030303030303030323443303030303030303030303030303234433030303030303030303030303032343430303030303030303030303030323434303030303030303030303030303234343030303030303030303030303032343430303030303030303030303030323443303030303030303030303030303234433030303030303030303030303032344330303530303030303030303030303030303030303032304330303030303030303030303030323043303030303030303030303030303030433030303030303030303030303032304330303030303030303030303030303043303030303030303030303030303030433030303030303030303030303032304330303030303030303030303030303043303030303030303030303030303230433030303030303030303030303032304330303530303030303030303030303030303030303032303430303030303030303030303030323034303030303030303030303030303030343030303030303030303030303032303430303030303030303030303030303034303030303030303030303030303030343030303030303030303030303032303430303030303030303030303030303034303030303030303030303030303230343030303030303030303030303032303430 libspatialite-4.1.1/test/sql_stmt_proj_tests/askml7.testcase0000664000175000017500000000045412163502133021321 00000000000000askml - 4 arg blob descriptions, weird SRID (error) :memory: #use in-memory database SELECT askml(zeroblob(10), zeroblob(12), GeomFromText("Point(1 2)", 9999989), 4) 1 # rows (not including the header row) 1 # columns askml(zeroblob(10), zeroblob(12), GeomFromText("Point(1 2)", 9999989), 4) (NULL) libspatialite-4.1.1/test/sql_stmt_proj_tests/transform2.testcase0000664000175000017500000000027112163502133022215 00000000000000transform - zeroblob arg :memory: #use in-memory database SELECT Transform(zeroblob(48), NULL) 1 # rows (not including the header row) 1 # columns Transform(zeroblob(48), NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_proj_tests/output4.testcase0000664000175000017500000000066612163502133021554 00000000000000Output format tests - text input :memory: #use in-memory database SELECT AsText(geom), AsKML(geom), AsKML("myname", "mydesc", geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom) FROM (SELECT "hello" as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(geom) AsKML(geom) AsKML("myname", "mydesc", geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) (NULL) (NULL) (NULL) (NULL) (NULL) (NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_proj_tests/transform21.testcase0000664000175000017500000000035712163502133022303 00000000000000transform - Point :memory: #use in-memory database SELECT AsText(Transform(GeomFromText('POINT(11 43)', 4326), 32656)) 1 # rows (not including the header row) 1 # columns AsText(Transform(GeomFromText('POINT(11 43)', 4326), 32656)) (NULL) libspatialite-4.1.1/test/sql_stmt_proj_tests/transform12.testcase0000664000175000017500000000043512163502133022300 00000000000000transform - Point Z :memory: #use in-memory database SELECT AsText(Transform(GeomFromText('POINTZ(11 43 100)', 4326), 32632)) 1 # rows (not including the header row) 1 # columns AsText(Transform(GeomFromText('POINTZ(11 43 100)', 4326), 32632)) POINT Z(663019.070082 4762755.64169 100) libspatialite-4.1.1/test/sql_stmt_proj_tests/transform15.testcase0000664000175000017500000000046112163502133022302 00000000000000transform - Point ZM :memory: #use in-memory database SELECT AsText(Transform(GeomFromText('POINTZM(663019 4762755 100 1)', 32632), 4326)) 1 # rows (not including the header row) 1 # columns AsText(Transform(GeomFromText('POINTZM(663019 4762755 100 1)', 32632), 4326)) POINT ZM(10.999999 42.999994 100 1) libspatialite-4.1.1/test/sql_stmt_proj_tests/transform7.testcase0000664000175000017500000000056712163502133022232 00000000000000transform - Linestring :memory: #use in-memory database SELECT AsText(Transform(GeomFromText('LINESTRING(11 43, 12 43, 12 42)', 4326), 32632)) 1 # rows (not including the header row) 1 # columns AsText(Transform(GeomFromText('LINESTRING(11 43, 12 43, 12 42)', 4326), 32632)) LINESTRING(663019.070082 4762755.64169, 744533.019451 4765182.932802, 748464.920716 4654130.891324) libspatialite-4.1.1/test/sql_stmt_proj_tests/output29.testcase0000664000175000017500000001122112163502133021630 00000000000000Output format tests - MULTIPOLYGONM via EWKB, WGS-84 :memory: #use in-memory database SELECT AsText(geom), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom), Hex(AsEWKB(geom)) FROM (SELECT GeomFromEWkt("SRID=4326;MULTIPOLYGONM(((10 10 1.2, 0 10 1.3, 0 0 1.1, 0 10 1.3, 10 10 1.2)),((-10 -10 4, -10 10 5, 10 10 6, 10 -10 5, -10 -10 4),(-8 -8 1, -2 -8 3, -2 -2 5, -8 -2 7, -8 -8 1),(8 8 11, 2 8 13, 2 2 17, 8 2 13, 8 8 11)))") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(geom) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) Hex(AsEWKB(geom)) MULTIPOLYGON M(((10 10 1.2, 0 10 1.3, 0 0 1.1, 0 10 1.3, 10 10 1.2)), ((-10 -10 4, -10 10 5, 10 10 6, 10 -10 5, -10 -10 4), (-8 -8 1, -2 -8 3, -2 -2 5, -8 -2 7, -8 -8 1), (8 8 11, 2 8 13, 2 2 17, 8 2 13, 8 8 11))) 10,10 0,10 0,0 0,10 10,10-10,-10 -10,10 10,10 10,-10 -10,-10-8,-8 -2,-8 -2,-2 -8,-2 -8,-88,8 2,8 2,2 8,2 8,8 10,10 0,10 0,0 0,10 10,10-10,-10 -10,10 10,10 10,-10 -10,-10-8,-8 -2,-8 -2,-2 -8,-2 -8,-88,8 2,8 2,2 8,2 8,8:0 {"type":"MultiPolygon","coordinates":[[[[10,10],[0,10],[0,0],[0,10],[10,10]]],[[[-10,-10],[-10,10],[10,10],[10,-10],[-10,-10]],[[-8,-8],[-2,-8],[-2,-2],[-8,-2],[-8,-8]],[[8,8],[2,8],[2,2],[8,2],[8,8]]]]}:0 MULTIPOLYGON(((10 10,0 10,0 0,0 10,10 10)),((-10 -10,-10 10,10 10,10 -10,-10 -10),(-8 -8,-2 -8,-2 -2,-8 -2,-8 -8),(8 8,2 8,2 2,8 2,8 8))) SRID=4326;MULTIPOLYGONM(((10 10 1.2,0 10 1.3,0 0 1.1,0 10 1.3,10 10 1.2)),((-10 -10 4,-10 10 5,10 10 6,10 -10 5,-10 -10 4),(-8 -8 1,-2 -8 3,-2 -2 5,-8 -2 7,-8 -8 1),(8 8 11,2 8 13,2 2 17,8 2 13,8 8 11))) 535249443D343332363B3031303630303030343030323030303030303031303330303030343030313030303030303035303030303030303030303030303030303030323434303030303030303030303030303234343033333333333333333333333346333346303030303030303030303030303030303030303030303030303030303234343043444343434343434343434346343346303030303030303030303030303030303030303030303030303030303030303039413939393939393939393946313346303030303030303030303030303030303030303030303030303030303234343043444343434343434343434346343346303030303030303030303030323434303030303030303030303030303234343033333333333333333333333346333346303130333030303034303033303030303030303530303030303030303030303030303030303032344330303030303030303030303030323443303030303030303030303030303130343030303030303030303030303032344330303030303030303030303030323434303030303030303030303030303134343030303030303030303030303032343430303030303030303030303030323434303030303030303030303030303138343030303030303030303030303032343430303030303030303030303030323443303030303030303030303030303134343030303030303030303030303032344330303030303030303030303030323443303030303030303030303030303130343030353030303030303030303030303030303030303230433030303030303030303030303032304330303030303030303030303030463033463030303030303030303030303030433030303030303030303030303032304330303030303030303030303030303834303030303030303030303030303030433030303030303030303030303030304330303030303030303030303030313434303030303030303030303030303230433030303030303030303030303030304330303030303030303030303030314334303030303030303030303030303230433030303030303030303030303032304330303030303030303030303030463033463035303030303030303030303030303030303030323034303030303030303030303030303230343030303030303030303030303032363430303030303030303030303030303034303030303030303030303030303230343030303030303030303030303032413430303030303030303030303030303034303030303030303030303030303030343030303030303030303030303033313430303030303030303030303030323034303030303030303030303030303030343030303030303030303030303032413430303030303030303030303030323034303030303030303030303030303230343030303030303030303030303032363430 libspatialite-4.1.1/test/sql_stmt_proj_tests/askml6.testcase0000664000175000017500000000045512163502133021321 00000000000000askml - 4 arg blob descriptions, bad precision (error) :memory: #use in-memory database SELECT askml(zeroblob(10), zeroblob(12), GeomFromText("Point(1 2)", 4326), 4.2) 1 # rows (not including the header row) 1 # columns askml(zeroblob(10), zeroblob(12), GeomFromText("Point(1 2)", 4326), 4.2) (NULL) libspatialite-4.1.1/test/sql_stmt_proj_tests/transform13.testcase0000664000175000017500000000042712163502133022302 00000000000000transform - Point M :memory: #use in-memory database SELECT AsText(Transform(GeomFromText('POINTM(11 43 1)', 4326), 32632)) 1 # rows (not including the header row) 1 # columns AsText(Transform(GeomFromText('POINTM(11 43 1)', 4326), 32632)) POINT M(663019.070082 4762755.64169 1) libspatialite-4.1.1/test/sql_stmt_proj_tests/output20.testcase0000664000175000017500000000247312163502133021630 00000000000000Output format tests - MULTIPOINTZM via EWKB, WGS-84 :memory: #use in-memory database SELECT AsText(geom), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom), Hex(AsEWKB(geom)) FROM (SELECT GeomFromEWkt("SRID=4326;MULTIPOINT(-1 1 2.3 4,1 2 4.1 1.9)") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(geom) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) Hex(AsEWKB(geom)) MULTIPOINT ZM(-1 1 2.3 4, 1 2 4.1 1.9) -1,1,2.31,2,4.1 -1,1,2.31,2,4.1:0 {"type":"MultiPoint","coordinates":[[-1,1,2.3],[1,2,4.1]]}:0 MULTIPOINT(-1 1,1 2) SRID=4326;MULTIPOINT(-1 1 2.3 4,1 2 4.1 1.9) 535249443D343332363B30313034303030304330303230303030303030313031303030304330303030303030303030303030463042463030303030303030303030304630334636363636363636363636363630323430303030303030303030303030313034303031303130303030433030303030303030303030303046303346303030303030303030303030303034303636363636363636363636363130343036363636363636363636363646453346 libspatialite-4.1.1/test/sql_stmt_proj_tests/output35.testcase0000664000175000017500000000440412163502133021632 00000000000000Output format tests - GEOMETRYCOLLECTION XYZM (POINT, POINT LINESTRING) :memory: #use in-memory database SELECT AsText(geom), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom), Hex(AsEWKB(geom)) FROM (SELECT GeomFromText("GEOMETRYCOLLECTIONZM(POINTZM(1 2 100 10), POINTZM(2 3 101 11), LINESTRINGZM(3 4 100 10, 4 5 101 11))", 4326) AS geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(geom) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) Hex(AsEWKB(geom)) GEOMETRYCOLLECTION ZM(POINT ZM(1 2 100 10), POINT ZM(2 3 101 11), LINESTRING ZM(3 4 100 10, 4 5 101 11)) 1,2,1002,3,1013,4,100 4,5,101 1,2,1002,3,1013,4,100 4,5,101:0 # trailing ":0" required to avoid truncation !!! {"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[1,2,100]},{"type":"Point","coordinates":[2,3,101]},{"type":"LineString","coordinates":[[3,4,100],[4,5,101]]}]}:0 # trailing ":0" required to avoid truncation !!! GEOMETRYCOLLECTION(POINT(1 2),POINT(2 3),LINESTRING(3 4,4 5)) SRID=4326;GEOMETRYCOLLECTION(POINT(1 2 100 10),POINT(2 3 101 11),LINESTRING(3 4 100 10,4 5 101 11)) 535249443D343332363B303130373030303043303033303030303030303130313030303043303030303030303030303030304630334630303030303030303030303030303430303030303030303030303030353934303030303030303030303030303234343030313031303030304330303030303030303030303030303034303030303030303030303030303038343030303030303030303030343035393430303030303030303030303030323634303031303230303030433030323030303030303030303030303030303030303038343030303030303030303030303031303430303030303030303030303030353934303030303030303030303030303234343030303030303030303030303031303430303030303030303030303030313434303030303030303030303034303539343030303030303030303030303032363430 libspatialite-4.1.1/test/sql_stmt_proj_tests/transform14.testcase0000664000175000017500000000044712163502133022305 00000000000000transform - Point ZM :memory: #use in-memory database SELECT AsText(Transform(GeomFromText('POINTZM(11 43 100 1)', 4326), 32632)) 1 # rows (not including the header row) 1 # columns AsText(Transform(GeomFromText('POINTZM(11 43 100 1)', 4326), 32632)) POINT ZM(663019.070082 4762755.64169 100 1) libspatialite-4.1.1/test/sql_stmt_proj_tests/output12.testcase0000664000175000017500000000146412163502133021630 00000000000000Output format tests - POINTM via EWKB, WGS-84 :memory: #use in-memory database SELECT AsText(GeomFromWkb(AsBinary(geom))), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom), Hex(AsEWKB(geom)) FROM (SELECT GeomFromEWkt("SRID=4326;POINTM(-1 1 2.3)") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(GeomFromWkb(AsBinary(geom))) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) Hex(AsEWKB(geom)) POINT M(-1 1 2.3) -1,1 -1,1:0 {"type":"Point","coordinates":[-1,1]}:0 POINT(-1 1) SRID=4326;POINTM(-1 1 2.3) 535249443D343332363B30313031303030303430303030303030303030303030463042463030303030303030303030304630334636363636363636363636363630323430 libspatialite-4.1.1/test/sql_stmt_proj_tests/output37.testcase0000664000175000017500000000326112163502133021634 00000000000000Output format tests - GEOMETRYCOLLECTION XYM (POINT LINESTRING) :memory: #use in-memory database SELECT AsText(geom), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom), Hex(AsEWKB(geom)) FROM (SELECT GeomFromText("GEOMETRYCOLLECTIONM(POINTM(1 2 10), LINESTRINGM(3 4 10, 4 5 11))", 4326) AS geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(geom) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) Hex(AsEWKB(geom)) GEOMETRYCOLLECTION M(POINT M(1 2 10), LINESTRING M(3 4 10, 4 5 11)) 1,23,4 4,5 1,23,4 4,5:0 # trailing ":0" required to avoid truncation !!! {"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[1,2]},{"type":"LineString","coordinates":[[3,4],[4,5]]}]}:0 # trailing ":0" required to avoid truncation !!! GEOMETRYCOLLECTION(POINT(1 2),LINESTRING(3 4,4 5)) SRID=4326;GEOMETRYCOLLECTIONM(POINTM(1 2 10),LINESTRINGM(3 4 10,4 5 11)) 535249443D343332363B30313037303030303430303230303030303030313031303030303430303030303030303030303030463033463030303030303030303030303030343030303030303030303030303032343430303130323030303034303032303030303030303030303030303030303030303834303030303030303030303030303130343030303030303030303030303032343430303030303030303030303030313034303030303030303030303030303134343030303030303030303030303032363430 libspatialite-4.1.1/test/sql_stmt_proj_tests/output24.testcase0000664000175000017500000000407312163502133021632 00000000000000Output format tests - MULTILINESTRINGZ via EWKB, WGS-84 :memory: #use in-memory database SELECT AsText(geom), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom), Hex(AsEWKB(geom)) FROM (SELECT GeomFromEWkt("SRID=4326;MULTILINESTRING((-1 1 9, 2 3 8.4, 4 1 9.4),(0 2 1, 2 0 1, 0 0 2, 1 1 3))") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(geom) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) Hex(AsEWKB(geom)) MULTILINESTRING Z((-1 1 9, 2 3 8.4, 4 1 9.4), (0 2 1, 2 0 1, 0 0 2, 1 1 3)) -1,1,9 2,3,8.4 4,1,9.40,2,1 2,0,1 0,0,2 1,1,3 -1,1,9 2,3,8.4 4,1,9.40,2,1 2,0,1 0,0,2 1,1,3:0 {"type":"MultiLineString","coordinates":[[[-1,1,9],[2,3,8.4],[4,1,9.4]],[[0,2,1],[2,0,1],[0,0,2],[1,1,3]]]}:0 MULTILINESTRING((-1 1,2 3,4 1),(0 2,2 0,0 0,1 1)) SRID=4326;MULTILINESTRING((-1 1 9,2 3 8.4,4 1 9.4),(0 2 1,2 0 1,0 0 2,1 1 3)) 535249443D343332363B303130353030303038303032303030303030303130323030303038303033303030303030303030303030303030303030463042463030303030303030303030304630334630303030303030303030303032323430303030303030303030303030303034303030303030303030303030303038343043444343434343434343434332303430303030303030303030303030313034303030303030303030303030304630334643444343434343434343434332323430303130323030303038303034303030303030303030303030303030303030303030303030303030303030303030303030343030303030303030303030303046303346303030303030303030303030303034303030303030303030303030303030303030303030303030303030303046303346303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303430303030303030303030303030463033463030303030303030303030304630334630303030303030303030303030383430 libspatialite-4.1.1/test/sql_stmt_proj_tests/output33.testcase0000664000175000017500000001006012163502133021623 00000000000000Output format tests - GEOMETRY COLLECTION OF POINTM and POLYGONM via EWKB, WGS-84 :memory: #use in-memory database SELECT AsText(geom), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom), Hex(AsEWKB(geom)) FROM (SELECT GeomFromEWkt("SRID=4326;GEOMETRYCOLLECTIONM(POINTM(1 2 3),POLYGONM((-10 -10 4, -10 10 5, 10 10 6 , 10 -10 5, -10 -10 4),(-8 -8 1, -2 -8 3, -2 -2 5, -8 -2 7, -8 -8 1),(8 8 11, 2 8 13, 2 2 17, 8 2 13, 8 8 11)))") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(geom) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) Hex(AsEWKB(geom)) GEOMETRYCOLLECTION M(POINT M(1 2 3), POLYGON M((-10 -10 4, -10 10 5, 10 10 6, 10 -10 5, -10 -10 4), (-8 -8 1, -2 -8 3, -2 -2 5, -8 -2 7, -8 -8 1), (8 8 11, 2 8 13, 2 2 17, 8 2 13, 8 8 11))) 1,2-10,-10 -10,10 10,10 10,-10 -10,-10-8,-8 -2,-8 -2,-2 -8,-2 -8,-88,8 2,8 2,2 8,2 8,8:0 1,2-10,-10 -10,10 10,10 10,-10 -10,-10-8,-8 -2,-8 -2,-2 -8,-2 -8,-88,8 2,8 2,2 8,2 8,8:0 {"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[1,2]},{"type":"Polygon","coordinates":[[[-10,-10],[-10,10],[10,10],[10,-10],[-10,-10]],[[-8,-8],[-2,-8],[-2,-2],[-8,-2],[-8,-8]],[[8,8],[2,8],[2,2],[8,2],[8,8]]]}]}:0 GEOMETRYCOLLECTION(POINT(1 2),POLYGON((-10 -10,-10 10,10 10,10 -10,-10 -10),(-8 -8,-2 -8,-2 -2,-8 -2,-8 -8),(8 8,2 8,2 2,8 2,8 8))) SRID=4326;GEOMETRYCOLLECTIONM(POINTM(1 2 3),POLYGONM((-10 -10 4,-10 10 5,10 10 6,10 -10 5,-10 -10 4),(-8 -8 1,-2 -8 3,-2 -2 5,-8 -2 7,-8 -8 1),(8 8 11,2 8 13,2 2 17,8 2 13,8 8 11))) 535249443D343332363B30313037303030303430303230303030303030313031303030303430303030303030303030303030463033463030303030303030303030303030343030303030303030303030303030383430303130333030303034303033303030303030303530303030303030303030303030303030303032344330303030303030303030303030323443303030303030303030303030303130343030303030303030303030303032344330303030303030303030303030323434303030303030303030303030303134343030303030303030303030303032343430303030303030303030303030323434303030303030303030303030303138343030303030303030303030303032343430303030303030303030303030323443303030303030303030303030303134343030303030303030303030303032344330303030303030303030303030323443303030303030303030303030303130343030353030303030303030303030303030303030303230433030303030303030303030303032304330303030303030303030303030463033463030303030303030303030303030433030303030303030303030303032304330303030303030303030303030303834303030303030303030303030303030433030303030303030303030303030304330303030303030303030303030313434303030303030303030303030303230433030303030303030303030303030304330303030303030303030303030314334303030303030303030303030303230433030303030303030303030303032304330303030303030303030303030463033463035303030303030303030303030303030303030323034303030303030303030303030303230343030303030303030303030303032363430303030303030303030303030303034303030303030303030303030303230343030303030303030303030303032413430303030303030303030303030303034303030303030303030303030303030343030303030303030303030303033313430303030303030303030303030323034303030303030303030303030303030343030303030303030303030303032413430303030303030303030303030323034303030303030303030303030303230343030303030303030303030303032363430 libspatialite-4.1.1/test/check_mbrcache.c0000664000175000017500000004312612163502133015314 00000000000000/* check_mbrcache.c -- SpatiaLite Test Case Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" int main (int argc, char *argv[]) { #ifndef OMIT_ICONV /* only if ICONV is supported */ int ret; sqlite3 *handle; char *err_msg = NULL; int row_count; char **results; int rows; int columns; int pt; void *cache = spatialite_alloc_connection(); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); sqlite3_close(handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -2; } ret = load_shapefile (handle, "shp/foggia/local_councils", "Councils", "CP1252", 23032, "geom", 1, 0, 1, 0, &row_count, err_msg); if (!ret) { fprintf (stderr, "load_shapefile() error: %s\n", err_msg); sqlite3_close(handle); return -3; } if (row_count != 61) { fprintf (stderr, "unexpected number of rows loaded: %i\n", row_count); sqlite3_close(handle); return -4; } ret = sqlite3_get_table (handle, "SELECT lc_name FROM Councils WHERE MbrWithin(geom, BuildMbr(1040523, 4010000, 1140523, 4850000)) ORDER BY lc_name;", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -5; } if ((rows != 22) || (columns != 1)) { fprintf (stderr, "Unexpected error: select lc_name bad result: %i/%i.\n", rows, columns); sqlite3_free_table (results); sqlite3_close(handle); return -6; } if (strcmp(results[1], "Ascoli Satriano") != 0) { fprintf (stderr, "unexpected result at 1: %s\n", results[1]); sqlite3_free_table (results); sqlite3_close(handle); return -7; } if (strcmp(results[22], "Zapponeta") != 0) { fprintf (stderr, "unexpected result at 22: %s\n", results[22]); sqlite3_free_table (results); sqlite3_close(handle); return -8; } sqlite3_free_table (results); ret = sqlite3_exec (handle, "SELECT CreateMbrCache('Councils', 'geom');", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CreateMbrCache error: %s\n", err_msg); sqlite3_free (err_msg); return -9; } rows = 0; columns = 0; ret = sqlite3_get_table (handle, "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT rowid FROM cache_Councils_geom WHERE mbr = FilterMbrWithin(1040523, 4010000, 1140523, 4850000)) ORDER BY lc_name;", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error in Mbr SELECT: %s\n", err_msg); sqlite3_free (err_msg); return -14; } if ((rows != 22) || (columns != 1)) { fprintf (stderr, "Unexpected error: select lc_name bad cache result: %i/%i.\n", rows, columns); sqlite3_free_table (results); sqlite3_close(handle); return -15; } if (strcmp(results[1], "Ascoli Satriano") != 0) { fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]); sqlite3_free_table (results); sqlite3_close(handle); return -16; } if (strcmp(results[22], "Zapponeta") != 0) { fprintf (stderr, "unexpected mbr result at 22: %s\n", results[22]); sqlite3_free_table (results); sqlite3_close(handle); return -17; } sqlite3_free_table (results); rows = 0; columns = 0; ret = sqlite3_get_table (handle, "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT rowid FROM cache_Councils_geom WHERE mbr = FilterMbrContains(997226.750031, 4627372.000018, 997226.750031, 4627372.000018)) ORDER BY lc_name;", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error in Mbr SELECT Contains: %s\n", err_msg); sqlite3_free (err_msg); return -18; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: select lc_name bad cache result: %i/%i.\n", rows, columns); sqlite3_free_table (results); sqlite3_close(handle); return -19; } if (strcmp(results[1], "Carlantino") != 0) { fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]); sqlite3_free_table (results); sqlite3_close(handle); return -20; } sqlite3_free_table (results); rows = 0; columns = 0; ret = sqlite3_get_table (handle, "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT rowid FROM cache_Councils_geom WHERE mbr = FilterMbrIntersects(1040523, 4010000, 1140523, 4850000)) ORDER BY lc_name;", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error in Mbr SELECT: %s\n", err_msg); sqlite3_free (err_msg); return -21; } if ((rows != 35) || (columns != 1)) { fprintf (stderr, "Unexpected error: select lc_name bad cache result: %i/%i.\n", rows, columns); sqlite3_free_table (results); sqlite3_close(handle); return -22; } if (strcmp(results[1], "Apricena") != 0) { fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]); sqlite3_free_table (results); sqlite3_close(handle); return -23; } sqlite3_free_table (results); ret = sqlite3_exec (handle, "DELETE FROM Councils WHERE lc_name = 'Zapponeta';", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DELETE error: %s\n", err_msg); sqlite3_free (err_msg); return -24; } rows = 0; columns = 0; ret = sqlite3_get_table (handle, "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT rowid FROM cache_Councils_geom WHERE mbr = FilterMbrWithin(1040523, 4010000, 1140523, 4850000)) ORDER BY lc_name;", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error in Mbr SELECT: %s\n", err_msg); sqlite3_free (err_msg); return -25; } if ((rows != 21) || (columns != 1)) { fprintf (stderr, "Unexpected error: select lc_name bad cache result: %i/%i.\n", rows, columns); sqlite3_free_table (results); sqlite3_close(handle); return -26; } if (strcmp(results[1], "Ascoli Satriano") != 0) { fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]); sqlite3_free_table (results); sqlite3_close(handle); return -27; } if (strcmp(results[21], "Vieste") != 0) { fprintf (stderr, "unexpected mbr result at 21: %s\n", results[21]); sqlite3_free_table (results); sqlite3_close(handle); return -28; } sqlite3_free_table (results); ret = sqlite3_exec (handle, "INSERT INTO Councils (lc_name, geom) VALUES ('Quairading', GeomFromText('MULTIPOLYGON(((997226.750031 4627372.000018, 997301.750031 4627332.000018, 997402.500031 4627344.000018, 997541.500031 4627326.500018,997226.750031 4627372.000018)))', 23032));", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT error: %s\n", err_msg); sqlite3_free (err_msg); return -29; } rows = 0; columns = 0; ret = sqlite3_get_table (handle, "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT rowid FROM cache_Councils_geom WHERE mbr = FilterMbrWithin(1040523, 4010000, 1140523, 4850000)) ORDER BY lc_name;", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error in Mbr SELECT2: %s\n", err_msg); sqlite3_free (err_msg); return -30; } if ((rows != 21) || (columns != 1)) { fprintf (stderr, "Unexpected error: select lc_name bad cache result: %i/%i.\n", rows, columns); sqlite3_free_table (results); sqlite3_close(handle); return -31; } if (strcmp(results[1], "Ascoli Satriano") != 0) { fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]); sqlite3_free_table (results); sqlite3_close(handle); return -32; } if (strcmp(results[21], "Vieste") != 0) { fprintf (stderr, "unexpected mbr result at 21: %s\n", results[21]); sqlite3_free_table (results); sqlite3_close(handle); return -33; } sqlite3_free_table (results); ret = sqlite3_exec (handle, "UPDATE Councils SET geom = GeomFromText('MULTIPOLYGON(((987226.750031 4627372.000018, 997301.750031 4627331.000018, 997402.500032 4627344.000018, 997541.500031 4627326.500018, 987226.750031 4627372.000018)))', 23032) WHERE lc_name = \"Quairading\";", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "UPDATE error: %s\n", err_msg); sqlite3_free (err_msg); return -34; } rows = 0; columns = 0; ret = sqlite3_get_table (handle, "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT rowid FROM cache_Councils_geom WHERE mbr = FilterMbrWithin(1040523, 4010000, 1140523, 4850000)) ORDER BY lc_name;", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error in Mbr SELECT3: %s\n", err_msg); sqlite3_free (err_msg); return -35; } if ((rows != 21) || (columns != 1)) { fprintf (stderr, "Unexpected error: select lc_name bad cache result: %i/%i.\n", rows, columns); sqlite3_free_table (results); sqlite3_close(handle); return -36; } if (strcmp(results[1], "Ascoli Satriano") != 0) { fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]); sqlite3_free_table (results); sqlite3_close(handle); return -37; } if (strcmp(results[21], "Vieste") != 0) { fprintf (stderr, "unexpected mbr result at 21: %s\n", results[21]); sqlite3_free_table (results); sqlite3_close(handle); return -38; } sqlite3_free_table (results); rows = 0; columns = 0; ret = sqlite3_get_table (handle, "SELECT rowid, mbr FROM cache_Councils_geom;", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error in Mbr SELECT: %s\n", err_msg); sqlite3_free (err_msg); return -39; } if ((rows != 61) || (columns != 2)) { fprintf (stderr, "Unexpected error: select lc_name bad cache2 result: %i/%i.\n", rows, columns); sqlite3_free_table (results); sqlite3_close(handle); return -40; } if (strcmp(results[2], "1") != 0) { fprintf (stderr, "unexpected mbr result at 1: %s\n", results[2]); sqlite3_free_table (results); sqlite3_close(handle); return -41; } if (strcmp(results[12], "6") != 0) { fprintf (stderr, "unexpected mbr result at 6: %s\n", results[12]); sqlite3_free_table (results); sqlite3_close(handle); return -42; } sqlite3_free_table (results); ret = sqlite3_exec (handle, "DROP TABLE Councils;", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE Councils error: %s\n", err_msg); sqlite3_free (err_msg); return -44; } /* creating and feeding a Point table */ ret = sqlite3_exec (handle, "CREATE TABLE pt (id INTEGER);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE TABLE pt error: %s\n", err_msg); sqlite3_free (err_msg); return -45; } ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('pt', 'g', 4326, 1, 'XY');", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn pt error: %s\n", err_msg); sqlite3_free (err_msg); return -46; } ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('pt', 'g', 4326, 'POINT', 2.5);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn pt error: %s\n", err_msg); sqlite3_free (err_msg); return -47; } ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('pt', 'g', 4326, 'POINT', 'XY', 0.5);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn pt error: %s\n", err_msg); sqlite3_free (err_msg); return -48; } ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('pt', 'g', 4326, 'DUMMY', 'XY');", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn pt error: %s\n", err_msg); sqlite3_free (err_msg); return -49; } ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('pt', 'g', 4326, 'POINT', 'DUMMY');", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn pt error: %s\n", err_msg); sqlite3_free (err_msg); return -50; } ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('pt', 'g', 4326, 'POINT', 2);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn pt error: %s\n", err_msg); sqlite3_free (err_msg); return -51; } ret = sqlite3_exec (handle, "SELECT CreateMbrCache('pt', 'g');", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CreateMbrCache pt.g error: %s\n", err_msg); sqlite3_free (err_msg); return -52; } for (pt = 0; pt < 10000; pt++) { /* inserting Points */ char sql[1024]; sprintf(sql, "INSERT INTO pt (id, g) VALUES (%d, GeomFromText('POINT(%1.2f %1.2f)', 4326));", pt, 11.0 + (pt / 10000.0), 43.0 + (pt / 10000.0)); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO pt error: %s\n", err_msg); sqlite3_free (err_msg); return -53; } } for (pt = 5000; pt < 6000; pt++) { /* updating Points */ char sql[1024]; sprintf(sql, "UPDATE pt SET g = GeomFromText('POINT(%1.2f %1.2f)', 4326) WHERE id = %d;", 12.0 + (pt / 10000.0), 42.0 + (pt / 10000.0), pt); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "UPDATE pt error: %s\n", err_msg); sqlite3_free (err_msg); return -54; } } for (pt = 7000; pt < 8000; pt++) { /* deleting Points */ char sql[1024]; sprintf(sql, "DELETE FROM pt WHERE id = %d;", pt); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "UPDATE pt error: %s\n", err_msg); sqlite3_free (err_msg); return -55; } } ret = sqlite3_exec (handle, "SELECT CreateMbrCache(1, 'geom');", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "invalid CreateMbrCache error: %s\n", err_msg); sqlite3_free (err_msg); return -56; } ret = sqlite3_exec (handle, "SELECT CreateMbrCache('Councils', 2);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "invalid CreateMbrCache error: %s\n", err_msg); sqlite3_free (err_msg); return -57; } ret = sqlite3_exec (handle, "SELECT FilterMbrWithin('a', 2, 3, 4);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "invalid FilterMbrWithin error: %s\n", err_msg); sqlite3_free (err_msg); return -58; } ret = sqlite3_exec (handle, "SELECT FilterMbrWithin(1, 'a', 3, 4);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "invalid FilterMbrWithin error: %s\n", err_msg); sqlite3_free (err_msg); return -59; } ret = sqlite3_exec (handle, "SELECT FilterMbrWithin(1, 2, 'a', 4);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "invalid FilterMbrWithin error: %s\n", err_msg); sqlite3_free (err_msg); return -60; } ret = sqlite3_exec (handle, "SELECT FilterMbrWithin(1, 2, 3, 'a');", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "invalid FilterMbrWithin error: %s\n", err_msg); sqlite3_free (err_msg); return -61; } ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -62; } spatialite_cleanup_ex (cache); #endif /* end ICONV conditional */ return 0; } libspatialite-4.1.1/test/check_gaia_util.c0000664000175000017500000002753712163502133015516 00000000000000/* check_gaia_util.c -- SpatiaLite Test Case Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #define _GNU_SOURCE #include #include #include #include "sqlite3.h" #include "spatialite.h" #include "spatialite/gaiaaux.h" #ifdef _WIN32 #include "asprintf4win.h" #endif int main (int argc, char *argv[]) { int result; char *test_str1; char *quoted_str; if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ result = gaiaIsReservedSqliteName ("AUTOINCREMENT"); if (!result) { fprintf(stderr, "gaiaIsReservedSqliteName() fail for AUTOINCREMENT: %i\n", result); return -1; } result = gaiaIsReservedSqliteName ("AUTOINCREMEN"); if (result) { fprintf(stderr, "gaiaIsReservedSqliteName() fail for AUTOINCREMEN: %i\n", result); return -2; } result = gaiaIsReservedSqliteName ("AUTOINCREMENTED"); if (result) { fprintf(stderr, "gaiaIsReservedSqliteName() fail for AUTOINCREMENT: %i\n", result); return -3; } result = gaiaIsReservedSqliteName ("foo"); if (result) { fprintf(stderr, "gaiaIsReservedSqliteName() fail for foo: %i\n", result); return -4; } result = gaiaIsReservedSqliteName ("ALL"); /* first item */ if (!result) { fprintf(stderr, "gaiaIsReservedSqliteName() fail for ALL: %i\n", result); return -5; } result = gaiaIsReservedSqliteName ("WHERE"); /* last item */ if (!result) { fprintf(stderr, "gaiaIsReservedSqliteName() fail for WHERE: %i\n", result); return -6; } result = gaiaIsReservedSqliteName ("autoincrement"); if (!result) { fprintf(stderr, "gaiaIsReservedSqliteName() fail for autoincrement: %i\n", result); return -7; } result = gaiaIsReservedSqlName ("SELECT"); if (!result) { fprintf(stderr, "gaiaIsReservedSqlName() fail for SELECT: %i\n", result); return -8; } result = gaiaIsReservedSqlName ("select"); if (!result) { fprintf(stderr, "gaiaIsReservedSqlName() fail for select: %i\n", result); return -9; } result = gaiaIsReservedSqlName ("foo"); if (result) { fprintf(stderr, "gaiaIsReservedSqlName() fail for foo: %i\n", result); return -10; } result = gaiaIsReservedSqlName ("ABSOLUTE"); if (!result) { fprintf(stderr, "gaiaIsReservedSqlName() fail for ABSOLUTE: %i\n", result); return -11; } result = gaiaIsReservedSqlName ("ZONE"); if (!result) { fprintf(stderr, "gaiaIsReservedSqlName() fail for ZONE: %i\n", result); return -12; } result = gaiaIsReservedSqlName ("SELECTED"); if (result) { fprintf(stderr, "gaiaIsReservedSqlName() fail for SELECTED: %i\n", result); return -13; } result = gaiaIsReservedSqlName ("SELEC"); if (result) { fprintf(stderr, "gaiaIsReservedSqlName() fail for SELEC: %i\n", result); return -14; } result = gaiaIllegalSqlName(NULL); if (!result) { fprintf(stderr, "gaiaIllegalSqlName() fail for (NULL): %i\n", result); return -15; } result = gaiaIllegalSqlName("a"); if (result) { fprintf(stderr, "gaiaIllegalSqlName() fail for a: %i\n", result); return -16; } result = gaiaIllegalSqlName("-"); if (!result) { fprintf(stderr, "gaiaIllegalSqlName() fail for -: %i\n", result); return -17; } result = gaiaIllegalSqlName("AbbcdE0187r"); if (result) { fprintf(stderr, "gaiaIllegalSqlName() fail for AbbcdE0187r: %i\n", result); return -18; } result = gaiaIllegalSqlName("AbbcdE0187+"); if (!result) { fprintf(stderr, "gaiaIllegalSqlName() fail for AbbcdE0187r+: %i\n", result); return -19; } result = gaiaIllegalSqlName(""); if (!result) { fprintf(stderr, "gaiaIllegalSqlName() fail for (empty): %i\n", result); return -20; } result = gaiaIllegalSqlName("_ABCedFg"); if (!result) { fprintf(stderr, "gaiaIllegalSqlName() fail for (empty): %i\n", result); return -21; } asprintf(&test_str1, "SELECT %s from %s;", "Foo", "Bar"); gaiaCleanSqlString(test_str1); if (strcmp(test_str1, "SELECT Foo from Bar;") != 0) { fprintf(stderr, "gaiaCleanSqlString failure: %s\n", test_str1); free(test_str1); return -22; } free(test_str1); asprintf(&test_str1, "SELECT %s from %s; ", "Foo", "Bar"); gaiaCleanSqlString(test_str1); if (strcmp(test_str1, "SELECT Foo from Bar;") != 0) { fprintf(stderr, "gaiaCleanSqlString failure: %s\n", test_str1); free(test_str1); return -23; } free(test_str1); asprintf(&test_str1, "SELECT %s from %s; ", "Foo", "'"); gaiaCleanSqlString(test_str1); if (strcmp(test_str1, "SELECT Foo from '';") != 0) { fprintf(stderr, "gaiaCleanSqlString failure: %s\n", test_str1); free(test_str1); return -24; } free(test_str1); #if 0 /* TODO: This will cause a buffer overflow */ asprintf(&test_str1, "SELECT %s from %s;", "Foo", "'"); gaiaCleanSqlString(test_str1); if (strcmp(test_str1, "SELECT Foo from '';") != 0) { fprintf(stderr, "gaiaCleanSqlString failure: %s\n", test_str1); free(test_str1); return -25; } free(test_str1); #endif asprintf(&test_str1, " "); gaiaCleanSqlString(test_str1); if (strcmp(test_str1, "") != 0) { fprintf(stderr, "gaiaCleanSqlString failure: %s\n", test_str1); free(test_str1); return -26; } free(test_str1); asprintf(&test_str1, "SELECT %s from %s;", "Foo", "Bar"); quoted_str = gaiaSingleQuotedSql(test_str1); if (strcmp(quoted_str, "SELECT Foo from Bar;") != 0) { fprintf(stderr, "gaiaSingleQuotedSql failure: %s\n", quoted_str); free(test_str1); free(quoted_str); return -27; } free(test_str1); free(quoted_str); asprintf(&test_str1, "SELECT %s from %s; ", "Foo", "Bar"); quoted_str = gaiaSingleQuotedSql(test_str1); if (strcmp(quoted_str, "SELECT Foo from Bar;") != 0) { fprintf(stderr, "gaiaSingleQuotedSql failure: %s\n", quoted_str); free(test_str1); free(quoted_str); return -28; } free(test_str1); free(quoted_str); asprintf(&test_str1, "SELECT %s from %s;", "Foo", "'"); quoted_str = gaiaSingleQuotedSql(test_str1); if (strcmp(quoted_str, "SELECT Foo from '';") != 0) { fprintf(stderr, "gaiaSingleQuotedSql failure: %s\n", quoted_str); free(test_str1); free(quoted_str); return -29; } free(test_str1); free(quoted_str); asprintf(&test_str1, "SELECT %s from %s ; ", "Foo", "Bar"); quoted_str = gaiaSingleQuotedSql(test_str1); if (strcmp(quoted_str, "SELECT Foo from Bar ;") != 0) { fprintf(stderr, "gaiaSingleQuotedSql failure: %s\n", quoted_str); free(test_str1); free(quoted_str); return -30; } free(test_str1); free(quoted_str); asprintf(&test_str1, "SELECT %s from %s;", "'", "Bar"); quoted_str = gaiaSingleQuotedSql(test_str1); if (strcmp(quoted_str, "SELECT '' from Bar;") != 0) { fprintf(stderr, "gaiaSingleQuotedSql failure: %s\n", quoted_str); free(test_str1); free(quoted_str); return -31; } free(test_str1); free(quoted_str); asprintf(&test_str1, "My Name"); quoted_str = gaiaDoubleQuotedSql(test_str1); if (strcmp(quoted_str, "My Name") != 0) { fprintf(stderr, "gaiaDoubleQuotedSql failure: %s\n", quoted_str); free(test_str1); free(quoted_str); return -32; } free(test_str1); free(quoted_str); quoted_str = gaiaDoubleQuotedSql(NULL); if (quoted_str != NULL) { fprintf(stderr, "gaiaDoubleQuotedSql NULL failure: %s\n", quoted_str); free(quoted_str); return -33; } quoted_str = gaiaSingleQuotedSql(NULL); if (quoted_str != NULL) { fprintf(stderr, "gaiaSingleQuotedSql NULL failure: %s\n", quoted_str); free(quoted_str); return -34; } quoted_str = gaiaQuotedSql("foo", GAIA_SQL_SINGLE_QUOTE); if (strcmp(quoted_str, "foo") != 0) { fprintf(stderr, "gaiaQuotedSql failure SINGLE_QUOTE: %s\n", quoted_str); free(quoted_str); return -35; } free(quoted_str); quoted_str = gaiaQuotedSql("foo", GAIA_SQL_DOUBLE_QUOTE); if (strcmp(quoted_str, "foo") != 0) { fprintf(stderr, "gaiaQuotedSql failure DOUBLE_QUOTE: %s\n", quoted_str); free(quoted_str); return -36; } free(quoted_str); quoted_str = gaiaQuotedSql("foo", 1000); if (quoted_str != NULL) { fprintf(stderr, "gaiaQuotedSql failure 1000: %s\n", quoted_str); free(quoted_str); return -37; } asprintf(&test_str1, "My \"Name"); quoted_str = gaiaDoubleQuotedSql(test_str1); if (strcmp(quoted_str, "My \"\"Name") != 0) { fprintf(stderr, "gaiaDoubleQuotedSql failure: %s\n", quoted_str); free(test_str1); free(quoted_str); return -38; } free(test_str1); free(quoted_str); asprintf(&test_str1, "My \"Name "); quoted_str = gaiaDoubleQuotedSql(test_str1); if (strcmp(quoted_str, "My \"\"Name") != 0) { fprintf(stderr, "gaiaDoubleQuotedSql failure: %s\n", quoted_str); free(test_str1); free(quoted_str); return -39; } free(test_str1); free(quoted_str); asprintf(&test_str1, "%s", ""); quoted_str = gaiaDoubleQuotedSql(test_str1); if (strcmp(quoted_str, "") != 0) { fprintf(stderr, "gaiaDoubleQuotedSql failure: %s\n", quoted_str); free(test_str1); free(quoted_str); return -40; } free(test_str1); free(quoted_str); asprintf(&test_str1, " "); quoted_str = gaiaDoubleQuotedSql(test_str1); if (strcmp(quoted_str, "") != 0) { fprintf(stderr, "gaiaDoubleQuotedSql failure: |%s|\n", quoted_str); free(test_str1); free(quoted_str); return -41; } free(test_str1); free(quoted_str); asprintf(&test_str1, "' "); quoted_str = gaiaDoubleQuotedSql(test_str1); if (strcmp(quoted_str, "'") != 0) { fprintf(stderr, "gaiaDoubleQuotedSql failure: %s\n", quoted_str); free(test_str1); free(quoted_str); return -42; } free(test_str1); free(quoted_str); asprintf(&test_str1, "'"); quoted_str = gaiaDoubleQuotedSql(test_str1); if (strcmp(quoted_str, "'") != 0) { fprintf(stderr, "gaiaDoubleQuotedSql failure: %s\n", quoted_str); free(test_str1); free(quoted_str); return -43; } free(test_str1); free(quoted_str); asprintf(&test_str1, "\""); quoted_str = gaiaSingleQuotedSql(test_str1); if (strcmp(quoted_str, "\"") != 0) { fprintf(stderr, "gaiaSingleQuotedSql failure: %s\n", quoted_str); free(test_str1); free(quoted_str); return -44; } free(test_str1); free(quoted_str); return 0; } libspatialite-4.1.1/test/check_styling.c0000664000175000017500000004332212163502133015237 00000000000000 /* check_styling.c -- SpatiaLite Test Case Author: Sandro Furieri ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2013 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" #ifdef ENABLE_LIBXML2 /* only if LIBXML2 is supported */ #include #endif static unsigned char * load_blob(const char *path, int *blob_len) { /* loading an external image */ unsigned char *blob; int sz = 0; int rd; FILE *fl = fopen(path, "rb"); if (!fl) { fprintf (stderr, "cannot open \"%s\"\n", path); return NULL; } if (fseek(fl, 0, SEEK_END) == 0) sz = ftell(fl); blob = (unsigned char *) malloc(sz); *blob_len = sz; rewind(fl); rd = fread(blob, 1, sz, fl); if (rd != sz) { fprintf (stderr, "read error \"%s\"\n", path); return NULL; } fclose(fl); return blob; } static unsigned char * load_xml(const char *path, int *len) { /* loading an external XML */ unsigned char *xml; int sz = 0; int rd; FILE *fl = fopen(path, "rb"); if (!fl) { fprintf (stderr, "cannot open \"%s\"\n", path); return NULL; } if (fseek(fl, 0, SEEK_END) == 0) sz = ftell(fl); xml = malloc(sz + 1); *len = sz; rewind(fl); rd = fread(xml, 1, sz, fl); if (rd != sz) { fprintf (stderr, "read error \"%s\"\n", path); return NULL; } fclose(fl); xml[rd] = '\0'; return xml; } static char * build_hex_blob(const unsigned char *blob, int blob_len) { /* building an HEX blob */ int i; const unsigned char *p_in = blob; char *hex = malloc((blob_len * 2) + 1); char *p_out = hex; for (i = 0; i < blob_len; i++) { sprintf(p_out, "%02x", *p_in); p_in++; p_out += 2; } return hex; } int main (int argc, char *argv[]) { int ret; sqlite3 *handle; char *err_msg = NULL; char **results; int rows; int columns; unsigned char *blob; int blob_len; char *hexBlob; unsigned char *xml; int len; char *sql; void *cache = spatialite_alloc_connection(); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle)); sqlite3_close(handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1, 'WGS84')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf(stderr, "Unexpected InitSpatialMetadata result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -2; } #ifdef ENABLE_LIBXML2 /* only if LIBXML2 is supported */ ret = sqlite3_get_table (handle, "SELECT CreateStylingTables(1)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error CreateStylingTables: %s\n", err_msg); sqlite3_free (err_msg); return -3; } if ((rows != 1) || (columns != 1)) { sqlite3_free_table(results); fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns); return -4; } if (strcmp(results[1 * columns + 0], "1") != 0) { fprintf (stderr, "Unexpected #0 result (got %s, expected 1)", results[1 * columns + 0]); sqlite3_free_table(results); return -5; } sqlite3_free_table(results); blob = load_blob("empty.png", &blob_len); if (blob == NULL) return -6; hexBlob = build_hex_blob(blob, blob_len); free(blob); if (hexBlob == NULL) return -7; sql = sqlite3_mprintf("SELECT RegisterExternalGraphic('url-A', x%Q)", hexBlob); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error RegisterExternalGraphic #1: %s\n", err_msg); sqlite3_free (err_msg); return -8; } if ((rows != 1) || (columns != 1)) { sqlite3_free_table(results); fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns); return -9; } if (strcmp(results[1 * columns + 0], "1") != 0) { fprintf (stderr, "Unexpected #1 result (got %s, expected 1)", results[1 * columns + 0]); sqlite3_free_table(results); return -10; } sqlite3_free_table(results); sql = sqlite3_mprintf("SELECT RegisterExternalGraphic('url-A', x%Q, 'title', 'abstract', 'file_name')", hexBlob); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); free(hexBlob); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error RegisterExternalGraphic #2: %s\n", err_msg); sqlite3_free (err_msg); return -11; } if ((rows != 1) || (columns != 1)) { sqlite3_free_table(results); fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns); return -12; } if (strcmp(results[1 * columns + 0], "1") != 0) { fprintf (stderr, "Unexpected #2 result (got %s, expected 1)", results[1 * columns + 0]); sqlite3_free_table(results); return -13; } sqlite3_free_table(results); xml = load_xml("thunderstorm_mild.svg", &len); if (xml == NULL) return -14; gaiaXmlToBlob (cache, xml, len, 1, NULL, &blob, &blob_len, NULL, NULL); free(xml); if (blob == NULL) { fprintf (stderr, "this is not a well-formed XML !!!\n"); return -15; } hexBlob = build_hex_blob(blob, blob_len); free(blob); if (hexBlob == NULL) return -16; sql = sqlite3_mprintf("SELECT RegisterExternalGraphic('url-B', x%Q, 'title', 'abstract', 'file_name')", hexBlob); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error RegisterExternalGraphic #3: %s\n", err_msg); sqlite3_free (err_msg); return -17; } if ((rows != 1) || (columns != 1)) { sqlite3_free_table(results); fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns); return -18; } if (strcmp(results[1 * columns + 0], "1") != 0) { fprintf (stderr, "Unexpected #3 result (got %s, expected 1)", results[1 * columns + 0]); sqlite3_free_table(results); return -19; } sqlite3_free_table(results); sql = sqlite3_mprintf("SELECT RegisterExternalGraphic('url-B', x%Q)", hexBlob); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); free(hexBlob); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error RegisterExternalGraphic #4: %s\n", err_msg); sqlite3_free (err_msg); return -20; } if ((rows != 1) || (columns != 1)) { sqlite3_free_table(results); fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns); return -21; } if (strcmp(results[1 * columns + 0], "1") != 0) { fprintf (stderr, "Unexpected #4 result (got %s, expected 1)", results[1 * columns + 0]); sqlite3_free_table(results); return -22; } sqlite3_free_table(results); ret = sqlite3_exec (handle, "CREATE TABLE table1 (id INTEGER PRIMARY KEY AUTOINCREMENT)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error Create Table table1: %s\n", err_msg); sqlite3_free (err_msg); return -23; } ret = sqlite3_get_table (handle, "SELECT AddGeometryColumn('table1', 'geom', 4326, 'POINT', 'XY')", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error AddGeometryColumn: %s\n", err_msg); sqlite3_free (err_msg); return -24; } if ((rows != 1) || (columns != 1)) { sqlite3_free_table(results); fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns); return -25; } if (strcmp(results[1 * columns + 0], "1") != 0) { fprintf (stderr, "Unexpected #5 result (got %s, expected 1)", results[1 * columns + 0]); sqlite3_free_table(results); return -26; } sqlite3_free_table(results); xml = load_xml("stazioni_se.xml", &len); if (xml == NULL) return -27; gaiaXmlToBlob (cache, xml, len, 1, NULL, &blob, &blob_len, NULL, NULL); free(xml); if (blob == NULL) { fprintf (stderr, "this is not a well-formed XML !!!\n"); return -28; } hexBlob = build_hex_blob(blob, blob_len); free(blob); if (hexBlob == NULL) return -29; sql = sqlite3_mprintf("SELECT RegisterVectorStyledLayer('table1', 'geom', x%Q)", hexBlob); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error RegisterVectorStyledLayer #6: %s\n", err_msg); sqlite3_free (err_msg); return -30; } if ((rows != 1) || (columns != 1)) { sqlite3_free_table(results); fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns); return -31; } if (strcmp(results[1 * columns + 0], "1") != 0) { fprintf (stderr, "Unexpected #6 result (got %s, expected 1)", results[1 * columns + 0]); sqlite3_free_table(results); return -32; } sqlite3_free_table(results); sql = sqlite3_mprintf("SELECT RegisterVectorStyledLayer('table1', 'geom', 0, x%Q)", hexBlob); free(hexBlob); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error RegisterVectorStyledLayer #7: %s\n", err_msg); sqlite3_free (err_msg); return -33; } if ((rows != 1) || (columns != 1)) { sqlite3_free_table(results); fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns); return -34; } if (strcmp(results[1 * columns + 0], "1") != 0) { fprintf (stderr, "Unexpected #7 result (got %s, expected 1)", results[1 * columns + 0]); sqlite3_free_table(results); return -35; } sqlite3_free_table(results); xml = load_xml("raster_se.xml", &len); if (xml == NULL) return -36; gaiaXmlToBlob (cache, xml, len, 1, NULL, &blob, &blob_len, NULL, NULL); free(xml); if (blob == NULL) { fprintf (stderr, "this is not a well-formed XML !!!\n"); return -37; } hexBlob = build_hex_blob(blob, blob_len); free(blob); if (hexBlob == NULL) return -38; sql = sqlite3_mprintf("SELECT RegisterRasterStyledLayer('srtm', x%Q)", hexBlob); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error RegisterRasterStyledLayer #8: %s\n", err_msg); sqlite3_free (err_msg); return -39; } if ((rows != 1) || (columns != 1)) { sqlite3_free_table(results); fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns); return -40; } if (strcmp(results[1 * columns + 0], "1") != 0) { fprintf (stderr, "Unexpected #8 result (got %s, expected 1)", results[1 * columns + 0]); sqlite3_free_table(results); return -41; } sqlite3_free_table(results); sql = sqlite3_mprintf("SELECT RegisterRasterStyledLayer('srtm', 0, x%Q)", hexBlob); free(hexBlob); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error RegisterRasterStyledLayer #9: %s\n", err_msg); sqlite3_free (err_msg); return -42; } if ((rows != 1) || (columns != 1)) { sqlite3_free_table(results); fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns); return -43; } if (strcmp(results[1 * columns + 0], "1") != 0) { fprintf (stderr, "Unexpected #9 result (got %s, expected 1)", results[1 * columns + 0]); sqlite3_free_table(results); return -44; } sqlite3_free_table(results); ret = sqlite3_get_table (handle, "SELECT RegisterStyledGroup('group', 'srtm', 0)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error RegisterStyledGroup #10: %s\n", err_msg); sqlite3_free (err_msg); return -45; } if ((rows != 1) || (columns != 1)) { sqlite3_free_table(results); fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns); return -46; } if (strcmp(results[1 * columns + 0], "1") != 0) { fprintf (stderr, "Unexpected #10 result (got %s, expected 1)", results[1 * columns + 0]); sqlite3_free_table(results); return -47; } sqlite3_free_table(results); ret = sqlite3_get_table (handle, "SELECT RegisterStyledGroup('group', 'table1', 'geom', 0)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error RegisterStyledGroup #11: %s\n", err_msg); sqlite3_free (err_msg); return -48; } if ((rows != 1) || (columns != 1)) { sqlite3_free_table(results); fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns); return -49; } if (strcmp(results[1 * columns + 0], "1") != 0) { fprintf (stderr, "Unexpected #12 result (got %s, expected 1)", results[1 * columns + 0]); sqlite3_free_table(results); return -50; } sqlite3_free_table(results); ret = sqlite3_get_table (handle, "SELECT RegisterStyledGroup('group', 'srtm', 0, 4)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error RegisterStyledGroup #13: %s\n", err_msg); sqlite3_free (err_msg); return -51; } if ((rows != 1) || (columns != 1)) { sqlite3_free_table(results); fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns); return -52; } if (strcmp(results[1 * columns + 0], "0") != 0) { fprintf (stderr, "Unexpected #13 result (got %s, expected 1)", results[1 * columns + 0]); sqlite3_free_table(results); return -53; } sqlite3_free_table(results); ret = sqlite3_get_table (handle, "SELECT RegisterStyledGroup('group', 'table1', 'geom', 0, 1)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error RegisterStyledGroup #14: %s\n", err_msg); sqlite3_free (err_msg); return -54; } if ((rows != 1) || (columns != 1)) { sqlite3_free_table(results); fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns); return -55; } if (strcmp(results[1 * columns + 0], "1") != 0) { fprintf (stderr, "Unexpected #14 result (got %s, expected 1)", results[1 * columns + 0]); sqlite3_free_table(results); return -56; } sqlite3_free_table(results); ret = sqlite3_get_table (handle, "SELECT SetStyledGroupInfos('group', 'title', 'abstract')", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error RegisterStyledGroup #15: %s\n", err_msg); sqlite3_free (err_msg); return -57; } if ((rows != 1) || (columns != 1)) { sqlite3_free_table(results); fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns); return -58; } if (strcmp(results[1 * columns + 0], "1") != 0) { fprintf (stderr, "Unexpected #15 result (got %s, expected 1)", results[1 * columns + 0]); sqlite3_free_table(results); return -59; } sqlite3_free_table(results); ret = sqlite3_get_table (handle, "SELECT SetStyledGroupInfos('group-bis', 'title', 'abstract')", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error RegisterStyledGroup #16: %s\n", err_msg); sqlite3_free (err_msg); return 60; } if ((rows != 1) || (columns != 1)) { sqlite3_free_table(results); fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns); return -61; } if (strcmp(results[1 * columns + 0], "1") != 0) { fprintf (stderr, "Unexpected #16 result (got %s, expected 1)", results[1 * columns + 0]); sqlite3_free_table(results); return -62; } sqlite3_free_table(results); #endif ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -57; } spatialite_cleanup_ex (cache); #ifdef ENABLE_LIBXML2 /* only if LIBXML2 is supported */ xmlCleanupParser(); #endif return 0; } libspatialite-4.1.1/test/stazioni_se.xml0000664000175000017500000000740112163502134015315 00000000000000 OSM Railway Stations - SE test SE test - Point [Railway Stations] a complex variable style [depending on actual scale] Upper scale [simple circle, no label] 500001 2500000 circle #8F00FF 6 Medium scale [bigger star, no label] 500000 star #DC143C #FFFFFF 1 18 Medium scale [bigger star + label] 250000 star #DC143C #FFFFFF 1 18 Arial 12 normal bold 0.5 0.0 0 7 -45 1 #FFFFFF #DC143C libspatialite-4.1.1/test/check_gpkgGetImageFormat.c0000664000175000017500000001064712163502133017256 00000000000000/* check_gpkgGetImageFormat.c - Test case for GeoPackage Extensions Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Brad Hards Portions created by the Initial Developer are Copyright (C) 2012 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include "sqlite3.h" #include "spatialite.h" #include "test_helpers.h" int main (int argc UNUSED, char *argv[] UNUSED) { sqlite3 *db_handle = NULL; char *sql_statement; sqlite3_stmt *stmt; int ret; char *old_SPATIALITE_SECURITY_ENV = NULL; #ifdef _WIN32 char *env; #endif /* not WIN32 */ void *cache = spatialite_alloc_connection(); old_SPATIALITE_SECURITY_ENV = getenv("SPATIALITE_SECURITY"); #ifdef _WIN32 putenv("SPATIALITE_SECURITY=relaxed"); #else /* not WIN32 */ setenv("SPATIALITE_SECURITY", "relaxed", 1); #endif ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); // For debugging / testing if required // ret = sqlite3_open_v2 ("check_gpkgGetImageFormat.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); spatialite_init_ex(db_handle, cache, 0); if (old_SPATIALITE_SECURITY_ENV) { #ifdef _WIN32 env = sqlite3_mprintf("SPATIALITE_SECURITY=%s", old_SPATIALITE_SECURITY_ENV); putenv(env); sqlite3_free(env); #else /* not WIN32 */ setenv("SPATIALITE_SECURITY", old_SPATIALITE_SECURITY_ENV, 1); #endif } else { #ifdef _WIN32 putenv("SPATIALITE_SECURITY="); #else /* not WIN32 */ unsetenv("SPATIALITE_SECURITY"); #endif } if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } sql_statement = "SELECT gpkgGetImageType(BlobFromFile(\"tile111.jpeg\"))"; ret = sqlite3_prepare_v2 (db_handle, sql_statement, strlen(sql_statement), &stmt, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "failed to prepare SQL statement: %i (%s)\n", ret, sqlite3_errmsg(db_handle)); return -30; } ret = sqlite3_step (stmt); if (ret != SQLITE_ROW) { fprintf(stderr, "unexpected return value for first step: %i\n", ret); return -31; } if (sqlite3_column_type (stmt, 0) != SQLITE_TEXT) { fprintf(stderr, "bad type for column 0: %i\n", sqlite3_column_type (stmt, 0)); return -32; } if (strcmp((const char*)sqlite3_column_text(stmt, 0), "jpeg") != 0) { fprintf(stderr, "wrong image type: %s\n", sqlite3_column_text(stmt, 0)); return -33; } ret = sqlite3_step(stmt); if (ret != SQLITE_DONE) { fprintf(stderr, "unexpected return value for second step: %i\n", ret); return -34; } ret = sqlite3_finalize (stmt); ret = sqlite3_close (db_handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle)); return -200; } spatialite_cleanup_ex(cache); return 0; } libspatialite-4.1.1/test/check_gpkgGetImageFormat_nonblob.c0000664000175000017500000000642112163502133020762 00000000000000/* check_gpkgGetImageFormat_nonblob.c - Test case for GeoPackage Extensions Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Brad Hards Portions created by the Initial Developer are Copyright (C) 2012 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #include "test_helpers.h" int main (int argc UNUSED, char *argv[] UNUSED) { sqlite3 *db_handle = NULL; char *sql_statement; sqlite3_stmt *stmt; int ret; void *cache = spatialite_alloc_connection(); ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); // For debugging / testing if required // ret = sqlite3_open_v2 ("check_gpkgGetImageFormat_nonblobsqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); spatialite_init_ex(db_handle, cache, 0); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } sql_statement = "SELECT gpkgGetImageType(1000)"; ret = sqlite3_prepare_v2 (db_handle, sql_statement, strlen(sql_statement), &stmt, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "failed to prepare SQL statement: %i (%s)\n", ret, sqlite3_errmsg(db_handle)); return -30; } ret = sqlite3_step (stmt); if (ret != SQLITE_ERROR) { fprintf(stderr, "unexpected return value for first step: %i\n", ret); return -31; } // TODO: check the error string ret = sqlite3_finalize (stmt); ret = sqlite3_close (db_handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle)); return -200; } spatialite_cleanup_ex(cache); return 0; } libspatialite-4.1.1/test/check_get_normal_zoom.c0000664000175000017500000002216612163502133016744 00000000000000/* check_get_normal_zoom.c - Test case for GeoPackage Extensions Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Brad Hards Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #include "test_helpers.h" int main (int argc UNUSED, char *argv[] UNUSED) { sqlite3 *db_handle = NULL; int ret; char *err_msg = NULL; char **results; int rows; int columns; void *cache = spatialite_alloc_connection(); ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); // For debugging / testing if required // ret = sqlite3_open_v2 ("check_get_normal_zoom.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); spatialite_init_ex(db_handle, cache, 0); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } /* create a minimal tile_matrix_metadata table (not spec compliant) */ ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS tile_matrix_metadata", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP tile_matrix_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -4; } ret = sqlite3_exec (db_handle, "CREATE TABLE tile_matrix_metadata (t_table_name TEXT NOT NULL, zoom_level INTEGER NOT NULL, matrix_width INTEGER NOT NULL, matrix_height INTEGER NOT NULL)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE tile_matrix_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -5; } /* add in some test entries */ ret = sqlite3_exec (db_handle, "INSERT INTO tile_matrix_metadata VALUES (\"test1_matrix_tiles\", 0, 1, 1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT tile_matrix_metadata zoom 0 error: %s\n", err_msg); sqlite3_free (err_msg); return -6; } ret = sqlite3_exec (db_handle, "INSERT INTO tile_matrix_metadata VALUES (\"test1_matrix_tiles\", 1, 2, 2)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT tile_matrix_metadata zoom 1 error: %s\n", err_msg); sqlite3_free (err_msg); return -7; } ret = sqlite3_exec (db_handle, "INSERT INTO tile_matrix_metadata VALUES (\"test1_matrix_tiles\", 2, 4, 4)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT tile_matrix_metadata zoom 2 error: %s\n", err_msg); sqlite3_free (err_msg); return -8; } ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 0)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error1: %s\n", err_msg); sqlite3_free (err_msg); return -9; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns); sqlite3_free_table (results); return -10; } if (strcmp(results[1 * columns + 0], "2") != 0) { fprintf (stderr, "Unexpected result (got %s, expected 2)", results[rows * columns + 0]); sqlite3_free_table (results); return -11; } sqlite3_free_table (results); ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 1)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error 2: %s\n", err_msg); sqlite3_free (err_msg); return -12; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns); return -13; } if (strcmp(results[1 * columns + 0], "1") != 0) { fprintf (stderr, "Unexpected result (got %s, expected 1)", results[rows * columns + 0]); return -14; } sqlite3_free_table(results); ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 2)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error 3: %s\n", err_msg); sqlite3_free (err_msg); return -15; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns); sqlite3_free_table(results); return -16; } if (strcmp(results[1 * columns + 0], "0") != 0) { fprintf (stderr, "Unexpected result (got %s, expected 0)", results[rows * columns + 0]); sqlite3_free_table(results); return -17; } sqlite3_free_table(results); /* test an out-of-range zoom number - expect exception */ ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 3)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_ERROR) { fprintf(stderr, "Expected error for overrange zoom level, got %i\n", ret); sqlite3_free (err_msg); return -18; } if (strcmp(err_msg, "gpkgGetNormalZoom: input zoom level number outside of valid zoom levels") != 0) { fprintf (stderr, "Unexpected error message for overrange zoom level: %s\n", err_msg); sqlite3_free(err_msg); return -19; } sqlite3_free(err_msg); ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", -1)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_ERROR) { fprintf(stderr, "Expected error for underrange zoom level, got %i\n", ret); sqlite3_free (err_msg); return -20; } if (strcmp(err_msg, "gpkgGetNormalZoom: input zoom level number outside of valid zoom levels") != 0) { fprintf (stderr, "Unexpected error message for underrange zoom level: %s\n", err_msg); sqlite3_free(err_msg); return -21; } sqlite3_free(err_msg); /* test bad table name */ ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(\"no_such_table\", 0)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_ERROR) { fprintf(stderr, "Expected error for bad table name level, got %i\n", ret); sqlite3_free (err_msg); return -22; } if (strcmp(err_msg, "gpkgGetNormalZoom: tile table not found in tile_matrix_metadata") != 0) { fprintf (stderr, "Unexpected error message for bad table name: %s\n", err_msg); sqlite3_free(err_msg); return -23; } sqlite3_free(err_msg); /* test bad argument types */ ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(3, 0)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_ERROR) { fprintf(stderr, "Expected error for bad arg1 type, got %i\n", ret); sqlite3_free (err_msg); return -26; } if (strcmp(err_msg, "gpkgGetNormalZoom() error: argument 1 [tile_table_name] is not of the String type") != 0) { fprintf (stderr, "Unexpected error message for bad arg1 type: %s\n", err_msg); sqlite3_free(err_msg); return -27; } sqlite3_free(err_msg); /* test bad argument types */ ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 0.2)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_ERROR) { fprintf(stderr, "Expected error for bad arg2 type, got %i\n", ret); sqlite3_free (err_msg); return -28; } if (strcmp(err_msg, "gpkgGetNormalZoom() error: argument 2 [inverted zoom level] is not of the integer type") != 0) { fprintf (stderr, "Unexpected error message for bad arg2 type: %s\n", err_msg); sqlite3_free(err_msg); return -29; } sqlite3_free(err_msg); ret = sqlite3_close (db_handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle)); return -100; } spatialite_cleanup_ex(cache); return 0; } libspatialite-4.1.1/test/check_get_normal_row_bad_geopackage2.c0000664000175000017500000000720212163502133021617 00000000000000/* check_get_normal_row_bad_geopackage2 - Test case for GeoPackage Extensions Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Brad Hards Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #include "test_helpers.h" int main (int argc UNUSED, char *argv[] UNUSED) { sqlite3 *db_handle = NULL; int ret; char *err_msg = NULL; char **results; int rows; int columns; void *cache = spatialite_alloc_connection(); ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); // For debugging / testing if required // ret = sqlite3_open_v2 ("check_get_normal_row_bad_geopackage2.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); spatialite_init_ex(db_handle, cache, 0); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } /* delete the tile_matrix_metadata table (deliberately broken) */ ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS tile_matrix_metadata", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP tile_matrix_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -4; } /* now do the query */ ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalRow(\"test1_matrix_tiles\", 0, 0)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_ERROR) { fprintf(stderr, "Expected error for broken geopackage, got %i\n", ret); sqlite3_free (err_msg); return -5; } if (strcmp(err_msg, "no such table: tile_matrix_metadata") != 0) { fprintf (stderr, "Unexpected error message for broken geopackage: %s\n", err_msg); sqlite3_free(err_msg); return -6; } sqlite3_free(err_msg); ret = sqlite3_close (db_handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle)); return -100; } spatialite_cleanup_ex(cache); return 0; } libspatialite-4.1.1/test/shape_utf8_1ex.c0000664000175000017500000002765712163502133015251 00000000000000/* shape_utf8_1.c -- SpatiaLite Test Case Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Ahmadou Dicko Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" void cleanup_shapefile(const char *filename) { char nam[1000]; if (!filename) { return; } snprintf(nam, 1000, "%s.dbf", filename); unlink(nam); snprintf(nam, 1000, "%s.prj", filename); unlink(nam); snprintf(nam, 1000, "%s.shp", filename); unlink(nam); snprintf(nam, 1000, "%s.shx", filename); unlink(nam); } int do_test(sqlite3 *handle, int legacy) { #ifndef OMIT_ICONV /* only if ICONV is supported */ int ret; char *dumpname = __FILE__"dump"; char *err_msg = NULL; int row_count; ret = load_shapefile_ex (handle, "./shp/gaza/barrier", "barrier", "UTF-8", 4326, NULL, NULL, "POINT", 1, 0, 1, 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "load_shapefile_ex() error for shp/gaza/barrier: %s\n", err_msg); sqlite3_close(handle); return -3; } if (row_count != 5) { fprintf (stderr, "unexpected row count for shp/gaza/barrier: %i\n", row_count); sqlite3_close(handle); return -4; } ret = load_shapefile_ex (handle, "./shp/gaza/aeroway", "aeroway", "UTF-8", 4326, "col1", NULL, "LINESTRING", 1, 0, 0, 0, &row_count, err_msg); if (!ret) { fprintf (stderr, "load_shapefile_ex() error for shp/gaza/aeroway: %s\n", err_msg); sqlite3_close(handle); return -5; } if (row_count != 1) { fprintf (stderr, "unexpected row count for shp/gaza/aeroway: %i\n", row_count); sqlite3_close(handle); return -6; } ret = load_shapefile_ex (handle, "./shp/gaza/route", "route", "UTF-8", 4326, NULL, NULL, "MULTILINESTRING", 1, 0, 1, 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "load_shapefile_ex() error for shp/gaza/route: %s\n", err_msg); sqlite3_close(handle); return -7; } if (row_count != 2) { fprintf (stderr, "unexpected row count for shp/gaza/route: %i\n", row_count); sqlite3_close(handle); return -8; } if (legacy) { sqlite3_exec (handle, "DELETE FROM layer_statistics", NULL, NULL, NULL); sqlite3_exec (handle, "DELETE FROM views_layer_statistics", NULL, NULL, NULL); } else { sqlite3_exec (handle, "DELETE FROM geometry_columns_statistics", NULL, NULL, NULL); sqlite3_exec (handle, "DELETE FROM views_geometry_columns_statistics", NULL, NULL, NULL); } ret = dump_shapefile (handle, "route", "Geometry", dumpname, "UTF-8", "", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error for UTF-8_1 route: %s\n", err_msg); sqlite3_close(handle); return -9; } cleanup_shapefile(dumpname); if (row_count != 2) { fprintf (stderr, "unexpected dump row count for UTF-8_1 route: %i\n", row_count); sqlite3_close(handle); return -10; } ret = dump_shapefile (handle, "route", "Geometry", dumpname, "UTF-8", "LINESTRING", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error for UTF-8_1 route: %s\n", err_msg); sqlite3_close(handle); return -13; } cleanup_shapefile(dumpname); if (row_count != 2) { fprintf (stderr, "unexpected dump row count for UTF-8_1 route LINESTRING: %i\n", row_count); sqlite3_close(handle); return -14; } ret = sqlite3_exec (handle, "SELECT DiscardGeometryColumn('route', 'Geometry')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DiscardGeometry route error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -15; } if (legacy) ret = sqlite3_exec (handle, "INSERT INTO geometry_columns (f_table_name, f_geometry_column, type, coord_dimension, srid, spatial_index_enabled) VALUES ('beta', 'gamma', 'LINESTRING', 'XY', 4326, 0)", NULL, NULL, &err_msg); else ret = sqlite3_exec (handle, "INSERT INTO geometry_columns (f_table_name, f_geometry_column, geometry_type, coord_dimension, srid, spatial_index_enabled) VALUES (Lower('Beta'), Lower('Gamma'), 2, 2, 4326, 0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "GeometryColumns route error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -16; } if (legacy) { sqlite3_exec (handle, "DELETE FROM layer_statistics", NULL, NULL, NULL); ret = sqlite3_exec (handle, "INSERT INTO views_geometry_columns (view_name, view_geometry, view_rowid, f_table_name, f_geometry_column) VALUES ('route', 'Geometry', 'ROWID', 'beta', 'gamma')", NULL, NULL, &err_msg); } else { sqlite3_exec (handle, "DELETE FROM geometry_columns_statistics", NULL, NULL, NULL); ret = sqlite3_exec (handle, "INSERT INTO views_geometry_columns (view_name, view_geometry, view_rowid, f_table_name, f_geometry_column, read_only) VALUES (Lower('Route'), Lower('Geometry'), Lower('ROWID'), Lower('Beta'), Lower('Gamma'), 1)", NULL, NULL, &err_msg); } if (ret != SQLITE_OK) { fprintf (stderr, "ViewsGeometryColumns route error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -17; } ret = dump_shapefile (handle, "route", "Geometry", dumpname, "UTF-8", NULL, 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error for UTF-8_1 route (2): %s\n", err_msg); sqlite3_close(handle); return -17; } cleanup_shapefile(dumpname); if (row_count != 2) { fprintf (stderr, "unexpected dump row count for UTF-8_1 route LINESTRING (2): %i\n", row_count); sqlite3_close(handle); return -18; } if (legacy) { /* final DB cleanup */ ret = sqlite3_exec (handle, "DROP TABLE aeroway", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE aeroway error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -19; } ret = sqlite3_exec (handle, "DROP TABLE barrier", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE barrier error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -20; } ret = sqlite3_exec (handle, "DROP TABLE route", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE route error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -21; } ret = sqlite3_exec (handle, "DROP TABLE idx_route_Geometry", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE idx_route_Geometry error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -22; } ret = sqlite3_exec (handle, "DROP TABLE idx_barrier_Geometry", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE idx_barrier_Geometry error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -23; } ret = sqlite3_exec (handle, "DELETE FROM geometry_columns", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DELETE FROM geometry_columns error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -24; } ret = sqlite3_exec (handle, "DELETE FROM views_geometry_columns", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DELETE FROM views_geometry_columns error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -25; } ret = sqlite3_exec (handle, "DELETE FROM spatialite_history WHERE geometry_column IS NOT NULL", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DELETE FROM spatialite_history error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -26; } ret = sqlite3_exec (handle, "VACUUM", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VACUUM error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -27; } } #endif /* end ICONV conditional */ /* ok, succesfull termination */ return 0; } int main (int argc, char *argv[]) { #ifndef OMIT_ICONV /* only if ICONV is supported */ int ret; sqlite3 *handle; char *err_msg = NULL; void *cache = spatialite_alloc_connection(); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ /* testing current style metadata layout >= v.4.0.0 */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); sqlite3_close(handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -2; } ret = do_test(handle, 0); if (ret != 0) { fprintf(stderr, "error while testing current style metadata layout\n"); return ret; } ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -19; } spatialite_cleanup_ex (cache); /* testing legacy style metadata layout <= v.3.1.0 */ cache = spatialite_alloc_connection(); ret = system("cp test-legacy-3.0.1.sqlite copy-legacy-3.0.1.sqlite"); if (ret != 0) { fprintf(stderr, "cannot copy legacy v.3.0.1 database\n"); return -1; } ret = sqlite3_open_v2 ("copy-legacy-3.0.1.sqlite", &handle, SQLITE_OPEN_READWRITE, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "cannot open legacy v.3.0.1 database: %s\n", sqlite3_errmsg (handle)); sqlite3_close(handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = do_test(handle, 1); if (ret != 0) { fprintf(stderr, "error while testing legacy style metadata layout\n"); return ret; } ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -19; } spatialite_cleanup_ex (cache); ret = unlink("copy-legacy-3.0.1.sqlite"); if (ret != 0) { fprintf(stderr, "cannot remove legacy v.3.0.1 database\n"); return -20; } #endif /* end ICONV conditional */ return 0; } libspatialite-4.1.1/test/check_exif.c0000664000175000017500000003670612163502133014511 00000000000000 /* check_exif.c -- SpatiaLite Test Case Author: Sandro Furieri ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include "sqlite3.h" #include "spatialite.h" #include static sqlite3_int64 get_pixel_x(gaiaExifTagListPtr tag_list, int *ok) { /* trying to retrieve the ExifImageWidth */ gaiaExifTagPtr tag = tag_list->First; *ok = 0; while (tag) { if (tag->TagId == 0xA002) { /* ok, this one is the ExifImageWidth tag */ if (tag->Type == 3 && tag->Count == 1) { *ok = 1; return *(tag->ShortValues + 0); } else if (tag->Type == 4 && tag->Count == 1) { *ok = 1; return *(tag->LongValues + 0); } } tag = tag->Next; } return 0; } static sqlite3_int64 get_pixel_y(gaiaExifTagListPtr tag_list, int *ok) { /* trying to retrieve the ExifImageLength */ gaiaExifTagPtr tag = tag_list->First; *ok = 0; while (tag) { if (tag->TagId == 0xA003) { /* ok, this one is the ExifImageLength tag */ if (tag->Type == 3 && tag->Count == 1) { *ok = 1; return *(tag->ShortValues + 0); } else if (tag->Type == 4 && tag->Count == 1) { *ok = 1; return *(tag->LongValues + 0); } } tag = tag->Next; } return 0; } static void get_make(gaiaExifTagListPtr tag_list, const char **str, int *ok) { /* trying to retrieve the Make */ gaiaExifTagPtr tag = tag_list->First; *ok = 0; while (tag) { if (tag->TagId == 0x010F) { /* ok, this one is the Make tag */ if (tag->Type == 2) { *ok = 1; *str = tag->StringValue; return; } } tag = tag->Next; } return; } static void get_model(gaiaExifTagListPtr tag_list, const char **str, int *ok) { /* trying to retrieve the Model */ gaiaExifTagPtr tag = tag_list->First; *ok = 0; while (tag) { if (tag->TagId == 0x0110) { /* ok, this one is the Model tag */ if (tag->Type == 2) { *ok = 1; *str = tag->StringValue; return; } } tag = tag->Next; } return; } static void get_date(gaiaExifTagListPtr tag_list, const char **str, int *ok) { /* trying to retrieve the Date */ gaiaExifTagPtr tag = tag_list->First; *ok = 0; while (tag) { if (tag->TagId == 0x9003) { /* ok, this one is the Make tag */ if (tag->Type == 2) { *ok = 1; *str = tag->StringValue; return; } } tag = tag->Next; } return; } int main (int argc, char *argv[]) { int ret; sqlite3 *handle; FILE *fl; int sz = 0; int rd; int ok; int i; char tag_name[128]; char human[8192]; gaiaExifTagPtr pT; sqlite3_int64 val64; const char *result; unsigned char *blob = NULL; gaiaExifTagListPtr tag_list = NULL; double longitude; double latitude; void *cache = spatialite_alloc_connection(); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle)); sqlite3_close(handle); return -100; } spatialite_init_ex (handle, cache, 0); fl = fopen("sql_stmt_tests/DSC_1467.JPG", "rb"); if (!fl) { fprintf(stderr, "cannot open EXIF-JPEG image: DSC_1467.JPG\n"); return -1; } if (fseek(fl, 0, SEEK_END) == 0) sz = ftell(fl); if (sz <= 14) { fprintf(stderr, "invalid size EXIF-JPEG image: DSC_1467.JPG\n"); return -2; } blob = (unsigned char *) malloc(sz); rewind(fl); rd = fread(blob, 1, sz, fl); if (rd != sz) { fprintf(stderr, "read error EXIF-JPEG image: DSC_1467.JPG\n"); return -3; } tag_list = gaiaGetExifTags(blob, sz); if (tag_list == NULL) { fprintf(stderr, "cannot extract EXIF tags from JPEG image: DSC_1467.JPG\n"); return -4; } val64 = get_pixel_x(tag_list, &ok); if (!ok) { fprintf(stderr, "DSC_1467.JPG: PixelX tag not found\n"); return -5; } if (val64 != 2128) { fprintf(stderr, "DSC_1467.JPG: PixelX unexpected value: %d\n", (int)val64); return -6; } val64 = get_pixel_y(tag_list, &ok); if (!ok) { fprintf(stderr, "DSC_1467.JPG: PixelY tag not found\n"); return -7; } if (val64 != 1416) { fprintf(stderr, "DSC_1467.JPG: PixelY unexpected value: %d\n", (int)val64); return -8; } get_make(tag_list, &result, &ok); if (!ok) { fprintf(stderr, "DSC_1467.JPG: Make tag not found\n"); return -9; } if (strcmp(result, "NIKON CORPORATION") != 0) { fprintf(stderr, "DSC_1467.JPG: Make unexpected value: %s|\n", result); return -10; }; get_model(tag_list, &result, &ok); if (!ok) { fprintf(stderr, "DSC_1467.JPG: Model tag not found\n"); return -11; } if (strcmp(result, "NIKON D700") != 0) { fprintf(stderr, "DSC_1467.JPG: Model unexpected value: %s|\n", result); return -12; }; get_date(tag_list, &result, &ok); if (!ok) { fprintf(stderr, "DSC_1467.JPG: Date tag not found\n"); return -13; } if (strcmp(result, "2011:03:26 11:01:13") != 0) { fprintf(stderr, "DSC_1467.JPG: Date unexpected value: %s|\n", result); return -14; }; for (i = 0; i < gaiaGetExifTagsCount(tag_list); i++) { pT = gaiaGetExifTagByPos(tag_list, i); if (pT) { gaiaExifTagGetName(pT, tag_name, 128); gaiaExifTagGetValueType(pT); gaiaIsExifGpsTag(pT); gaiaExifTagGetValueType(pT); gaiaExifTagGetNumValues(pT); gaiaExifTagGetHumanReadable (pT, human, 8190, &ok); } } pT = gaiaGetExifTagById (tag_list, 0x0112); if (pT == NULL) { fprintf(stderr, "DSC_1467.JPG: tag Orientation not found: %s|\n", result); return -15; }; pT = gaiaGetExifTagByName (tag_list, "YCbCrPositioning"); if (pT == NULL) { fprintf(stderr, "DSC_1467.JPG: tag YCbCrPositioning not found: %s|\n", result); return -16; }; for (i = 0x0000; i < 0xffff; i++) { gaiaExifTag tag; tag.Gps = 0; tag.TagId = i; gaiaExifTagGetName(&tag, tag_name, 128); } for (i = 0x0000; i < 0xffff; i++) { gaiaExifTag tag; tag.Gps = 1; tag.TagId = i; gaiaExifTagGetName(&tag, tag_name, 128); } if (blob) free(blob); if (tag_list) gaiaExifTagsFree(tag_list); fclose(fl); fl = fopen("sql_stmt_tests/DSCN0042.JPG", "rb"); if (!fl) { fprintf(stderr, "cannot open EXIF-JPEG image: DSCN0042.JPG\n"); return -100; } if (fseek(fl, 0, SEEK_END) == 0) sz = ftell(fl); if (sz <= 14) { fprintf(stderr, "invalid size EXIF-JPEG image: DSCN0042.JPG\n"); return -17; } blob = (unsigned char *) malloc(sz); rewind(fl); rd = fread(blob, 1, sz, fl); if (rd != sz) { fprintf(stderr, "read error EXIF-JPEG image: DSCN0042.JPG\n"); return -18; } tag_list = gaiaGetExifTags(blob, sz); if (tag_list == NULL) { fprintf(stderr, "cannot extract EXIF tags from JPEG image: DSCN0042.JPG\n"); return -19; } val64 = get_pixel_x(tag_list, &ok); if (!ok) { fprintf(stderr, "DSCN0042.JPG: PixelX tag not found\n"); return -20; } if (val64 != 640) { fprintf(stderr, "DSCN0042.JPG: PixelX unexpected value: %d\n", (int)val64); return -21; } val64 = get_pixel_y(tag_list, &ok); if (!ok) { fprintf(stderr, "DSCN0042.JPG: PixelY tag not found\n"); return -22; } if (val64 != 480) { fprintf(stderr, "DSCN0042.JPG: PixelY unexpected value: %d\n", (int)val64); return -23; } get_make(tag_list, &result, &ok); if (!ok) { fprintf(stderr, "DSCN0042.JPG: Make tag not found\n"); return -24; } if (strcmp(result, "NIKON") != 0) { fprintf(stderr, "DSCN0042.JPG: Make unexpected value: %s|\n", result); return -25; }; get_model(tag_list, &result, &ok); if (!ok) { fprintf(stderr, "DSCN0042.JPG: Model tag not found\n"); return -26; } if (strcmp(result, "COOLPIX P6000") != 0) { fprintf(stderr, "DSCN0042.JPG: Model unexpected value: %s|\n", result); return -27; }; get_date(tag_list, &result, &ok); if (!ok) { fprintf(stderr, "DSCN0042.JPG: Date tag not found\n"); return -28; } if (strcmp(result, "2008:10:22 17:00:07") != 0) { fprintf(stderr, "DSCN0042.JPG: Date unexpected value: %s|\n", result); return -29; }; for (i = 0; i < gaiaGetExifTagsCount(tag_list); i++) { pT = gaiaGetExifTagByPos(tag_list, i); if (pT) { gaiaExifTagGetName(pT, tag_name, 128); gaiaExifTagGetValueType(pT); gaiaIsExifGpsTag(pT); gaiaExifTagGetValueType(pT); gaiaExifTagGetNumValues(pT); gaiaExifTagGetHumanReadable (pT, human, 8190, &ok); } } pT = gaiaGetExifTagById (tag_list, 0x0112); if (pT == NULL) { fprintf(stderr, "DSCN0042.JPG: tag Orientation not found: %s|\n", result); return -30; }; pT = gaiaGetExifTagByName (tag_list, "YCbCrPositioning"); if (pT == NULL) { fprintf(stderr, "DSCN0042.JPG: tag YCbCrPositioning not found: %s|\n", result); return -31; }; for (i = 0x0000; i < 0xffff; i++) { gaiaExifTag tag; tag.Gps = 0; tag.TagId = i; gaiaExifTagGetName(&tag, tag_name, 128); } for (i = 0x0000; i < 0xffff; i++) { gaiaExifTag tag; tag.Gps = 1; tag.TagId = i; gaiaExifTagGetName(&tag, tag_name, 128); } if (!gaiaGetGpsLatLong(blob, sz, human, 8192)) { fprintf(stderr, "cannot extract GPS coords from JPEG image: DSCN0042.JPG\n"); return -32; } if (strcmp(human, "N 43.00 27.00 52.04 / E 11.00 52.00 53.32") != 0) { fprintf(stderr, "DSCN0042.JPG: GPS coords unexpected value: %s|\n", human); return -33; }; if (!gaiaGetGpsLatLong(blob, sz, human, 20)) { fprintf(stderr, "cannot extract GPS coords(20) from JPEG image: DSCN0042.JPG\n"); return -34; } if (strcmp(human, "N 43.00 27.00 52.04 ") != 0) { fprintf(stderr, "DSCN0042.JPG: GPS coords(20) unexpected value: %s|\n", human); return -35; }; if (!gaiaGetGpsCoords(blob, sz, &longitude, &latitude)) { fprintf(stderr, "cannot extract GPS long/lat from JPEG image: DSCN0042.JPG\n"); return -36; } if (longitude != 11.881478 || latitude != 43.464455) { fprintf(stderr, "DSCN0042.JPG: GPS long/lat unexpected values: %1.9f %1.9f|\n", longitude, latitude); return -37; }; if (blob) free(blob); if (tag_list) gaiaExifTagsFree(tag_list); fclose(fl); fl = fopen("sql_stmt_tests/La_folla_durante_il_Palio.jpg", "rb"); if (!fl) { fprintf(stderr, "cannot open EXIF-JPEG image: La_folla_durante_il_Palio.jpg\n"); return -50; } if (fseek(fl, 0, SEEK_END) == 0) sz = ftell(fl); if (sz <= 14) { fprintf(stderr, "invalid size EXIF-JPEG image: La_folla_durante_il_Palio.jpg\n"); return -51; } blob = (unsigned char *) malloc(sz); rewind(fl); rd = fread(blob, 1, sz, fl); if (rd != sz) { fprintf(stderr, "read error EXIF-JPEG image: La_folla_durante_il_Palio.jpg\n"); return -52; } tag_list = gaiaGetExifTags(blob, sz); if (tag_list == NULL) { fprintf(stderr, "cannot extract EXIF tags from JPEG image: La_folla_durante_il_Palio.jpg\n"); return -53; } val64 = get_pixel_x(tag_list, &ok); if (!ok) { fprintf(stderr, "La_folla_durante_il_Palio.jpg: PixelX tag not found\n"); return -54; } if (val64 != 1280) { fprintf(stderr, "La_folla_durante_il_Palio.jpg: PixelX unexpected value: %d\n", (int)val64); return -55; } val64 = get_pixel_y(tag_list, &ok); if (!ok) { fprintf(stderr, "La_folla_durante_il_Palio.jpg: PixelY tag not found\n"); return -56; } if (val64 != 960) { fprintf(stderr, "La_folla_durante_il_Palio.jpg: PixelY unexpected value: %d\n", (int)val64); return -57; } get_make(tag_list, &result, &ok); if (!ok) { fprintf(stderr, "La_folla_durante_il_Palio.jpg: Make tag not found\n"); return -58; } if (strcmp(result, "Nokia") != 0) { fprintf(stderr, "La_folla_durante_il_Palio.jpg: Make unexpected value: %s|\n", result); return -59; }; get_model(tag_list, &result, &ok); if (!ok) { fprintf(stderr, "La_folla_durante_il_Palio.jpg: Model tag not found\n"); return -60; } if (strcmp(result, "6630") != 0) { fprintf(stderr, "La_folla_durante_il_Palio.jpg: Model unexpected value: %s|\n", result); return -61; }; for (i = 0; i < gaiaGetExifTagsCount(tag_list); i++) { pT = gaiaGetExifTagByPos(tag_list, i); if (pT) { gaiaExifTagGetName(pT, tag_name, 128); gaiaExifTagGetValueType(pT); gaiaIsExifGpsTag(pT); gaiaExifTagGetValueType(pT); gaiaExifTagGetNumValues(pT); gaiaExifTagGetHumanReadable (pT, human, 8190, &ok); } } for (i = 0x0000; i < 0xffff; i++) { gaiaExifTag tag; tag.Gps = 0; tag.TagId = i; gaiaExifTagGetName(&tag, tag_name, 128); } if (blob) free(blob); if (tag_list) gaiaExifTagsFree(tag_list); fclose(fl); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -133; } spatialite_cleanup_ex(cache); return 0; } libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/0000775000175000017500000000000012163503226020120 500000000000000libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/singlesidedbuffer5.testcase0000664000175000017500000000037112163502133025343 00000000000000singlesidedbuffer - text arg, float radius, right side (error) :memory: #use in-memory database SELECT AsText(SingleSidedBuffer("hello", 3.5, 0)); 1 # rows (not including the header row) 1 # columns AsText(SingleSidedBuffer("hello", 3.5, 0)) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/sharedpaths10.testcase0000664000175000017500000000055512163502133024245 00000000000000shared paths - two lineZ :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("LINESTRINGZ(0 0 1, 10 0 1)"),GeomFromText("LINESTRINGZ(5 0 1, 15 0 1)"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("LINESTRINGZ(0 0 1, 10 0 1)"),GeomFromText("LINESTRINGZ(5 0 1, 15 0 1)"))) MULTILINESTRING Z((5 0 1, 10 0 1))libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint2.testcase0000664000175000017500000000055412163502133027532 00000000000000interpolate equidistant points - basic line :memory: #use in-memory database SELECT AsText(Line_Interpolate_Equidistant_Points(GeomFromText("LINESTRING(0 0, 10 6)"), 5)) 1 # rows (not including the header row) 1 # columns AsText(Line_Interpolate_Equidistant_Points(GeomFromText("LINESTRING(0 0, 10 6)"), 5)) MULTIPOINT M(4.287465 2.572479 5, 8.574929 5.144958 10) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/distance_geogr6.testcase0000664000175000017500000000046412163502133024640 00000000000000Distance Long/Lat metric (ellipsoid) - two 3D points :memory: #use in-memory database SELECT ST_Distance(MakePointZ(11.1, 42.1, 0.1), MakePointZ(11.2, 42.2, 0.2), 1); 1 # rows (not including the header row) 1 # columns ST_Distance(MakePointZ(11.1, 42.1, 0.1), MakePointZ(11.2, 42.2, 0.2), 1) 13845.545374:6 libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/linesnodes17.testcase0000664000175000017500000000074012163502133024105 00000000000000LinesCutAtNodes - closed linestringZ, nodes :memory: #use in-memory database SELECT AsText(LinesCutAtNodes(GeomFromText("LINESTRINGZ(0 0 1, 0 10 1, 10 10 1, 10 0 1, 0 0 1)"),GeomFromText("MULTIPOINTZ(0 10 1, 10 10 1)"))) 1 # rows (not including the header row) 1 # columns AsText(LinesCutAtNodes(GeomFromText("LINESTRINGZ(0 0 1, 0 10 1, 10 10 1, 10 0 1, 0 0 1)"),GeomFromText("MULTIPOINTZ(0 10 1, 10 10 1)"))) MULTILINESTRING Z((10 10 1, 10 0 1, 0 0 1, 0 10 1), (0 10 1, 10 10 1))libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/squaregrid14.testcase0000664000175000017500000000050612163502133024105 00000000000000SquareGrid - Polygon geom - zeroblob origin :memory: #use in-memory database SELECT SquareGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, zeroblob(4)); 1 # rows (not including the header row) 1 # columns SquareGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/offsetcurve9.testcase0000664000175000017500000000044412163502133024217 00000000000000OffsetCurve - closed linestring :memory: #use in-memory database SELECT AsText(OffsetCurve(GeomFromText('LINESTRING(0 0, 0 1, 4 1, 4 0, 0 0)'), 1, 0)); 1 # rows (not including the header row) 1 # columns AsText(OffsetCurve(GeomFromText('LINESTRING(0 0, 0 1, 4 1, 4 0, 0 0)'), 1, 0)) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/locatepoint6.testcase0000664000175000017500000000053012163502133024176 00000000000000locate point - POLYGON second arg :memory: #use in-memory database SELECT Line_Locate_Point(GeomFromText("LINESTRING(0 1, 1 2)"), GeomFromText("POLYGON((10 0, 0 10, 0 0, 10 0))")) 1 # rows (not including the header row) 1 # columns Line_Locate_Point(GeomFromText("LINESTRING(0 1, 1 2)"), GeomFromText("POLYGON((10 0, 0 10, 0 0, 10 0))")) (NULL)libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/linesnodes16.testcase0000664000175000017500000000062212163502133024103 00000000000000LinesCutAtNodes - closed linestring, polygon second arg :memory: #use in-memory database SELECT LinesCutAtNodes(GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0, 0 0)"),GeomFromText("POLYGON((1 1, 1 2, 2 2, 2 1, 1 1))")) 1 # rows (not including the header row) 1 # columns LinesCutAtNodes(GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0, 0 0)"),GeomFromText("POLYGON((1 1, 1 2, 2 2, 2 1, 1 1))")) (NULL)libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint9.testcase0000664000175000017500000000044412163502133027537 00000000000000interpolate equidistant points - wrong geometry type :memory: #use in-memory database SELECT Line_Interpolate_Equidistant_Points(GeomFromText("POINT(10 6)"), 0.6) 1 # rows (not including the header row) 1 # columns Line_Interpolate_Equidistant_Points(GeomFromText("POINT(10 6)"), 0.6) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/linesnodes10.testcase0000664000175000017500000000040312163502133024072 00000000000000LinesCutAtNodes - non-blob first arg :memory: #use in-memory database SELECT LinesCutAtNodes(6.3 ,GeomFromText("MULTIPOINT(0 10, 10 10)")) 1 # rows (not including the header row) 1 # columns LinesCutAtNodes(6.3 ,GeomFromText("MULTIPOINT(0 10, 10 10)")) (NULL)libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/sharedpaths28.testcase0000664000175000017500000000107312163502133024252 00000000000000shared paths - multilineZ - prepend :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("MULTILINESTRINGZ((5 0 10, 15 0 30),(5 0 10, 5 5 10))"),GeomFromText("MULTILINESTRINGZ((0 0 0, 4 0 8, 6 0 12, 10 0 20),(11 0 22, 5 0 10),(5 0 10, 5 5 10))"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("MULTILINESTRINGZ((5 0 10, 15 0 30),(5 0 10, 5 5 10))"),GeomFromText("MULTILINESTRINGZ((0 0 0, 4 0 8, 6 0 12, 10 0 20),(11 0 22, 5 0 10),(5 0 10, 5 5 10))"))) MULTILINESTRING Z((5 5 10, 5 0 10, 6 0 12, 10 0 20, 11 0 22))libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/shortestline7.testcase0000664000175000017500000000047212163502133024406 00000000000000ShortestLine - coincident lines :memory: #use in-memory database SELECT ShortestLine(GeomFromText("LINESTRING(0 0, 10 0)"), GeomFromText("LINESTRING(10 0, 0 0)")) 1 # rows (not including the header row) 1 # columns ShortestLine(GeomFromText("LINESTRING(0 0, 10 0)"), GeomFromText("LINESTRING(10 0, 0 0)")) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/squaregrid5.testcase0000664000175000017500000000055112163502133024025 00000000000000SquareGrid - Collection (Point - Polygon) geom :memory: #use in-memory database SELECT SquareGrid(GeomFromText('GEOMETRYCOLLECTION(POINT(0 0), POLYGON((3 3, 3 4, 4 4, 4 3, 3 3)))', 4326), 1.0); 1 # rows (not including the header row) 1 # columns SquareGrid(GeomFromText('GEOMETRYCOLLECTION(POINT(0 0), POLYGON((3 3, 3 4, 4 4, 4 3, 3 3)))', 4326), 1.0) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/linesubstring14.testcase0000664000175000017500000000063712163502133024634 00000000000000linesubstring - geometry collection - polygon and linestring :memory: #use in-memory database SELECT AsText(Line_Substring(GeomFromText("GeometryCollection(LINESTRING(0 0, 10 0),POLYGON((0 0, 1 0, 1 2, 0 2, 0 0)))"), 0.2, 0.6)) 1 # rows (not including the header row) 1 # columns AsText(Line_Substring(GeomFromText("GeometryCollection(LINESTRING(0 0, 10 0),POLYGON((0 0, 1 0, 1 2, 0 2, 0 0)))"), 0.2, 0.6)) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/linesubstring26.testcase0000664000175000017500000000052312163502133024631 00000000000000linesubstring - using both segments Z :memory: #use in-memory database SELECT AsText(Line_Substring(GeomFromText("LINESTRINGZ(0 0 0, 10 0 0, 10 10 0)"), 0.2, 0.8)) 1 # rows (not including the header row) 1 # columns AsText(Line_Substring(GeomFromText("LINESTRINGZ(0 0 0, 10 0 0, 10 10 0)"), 0.2, 0.8)) LINESTRING Z(4 0 0, 10 0 0, 10 6 0) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/createtopo15.testcase0000664000175000017500000000027712163502133024112 00000000000000CreateTopology - 2 arguments, 3D int :memory: #use in-memory database SELECT CreateTopologyTables(4326, 3); 1 # rows (not including the header row) 1 # columns CreateTopologyTables(4326, 3) 1libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/locatepoint10.testcase0000664000175000017500000000052512163502133024255 00000000000000locate point - NULL first arg :memory: #use in-memory database SELECT Line_Locate_Point(NULL, GeomFromText("GeometryCollection(POINT(0 1),LINESTRING(0 0, 10 0, 10 10, 0 0))")) 1 # rows (not including the header row) 1 # columns Line_Locate_Point(NULL, GeomFromText("GeometryCollection(POINT(0 1),LINESTRING(0 0, 10 0, 10 10, 0 0))")) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/singlesidedbuffer8.testcase0000664000175000017500000000047312163502133025351 00000000000000singlesidedbuffer - LINESTRING X, bad radius, right side (error) :memory: #use in-memory database SELECT AsText(SingleSidedBuffer(GeomFromText("LINESTRING(0 0, 0 20)"), "foo", 0)); 1 # rows (not including the header row) 1 # columns AsText(SingleSidedBuffer(GeomFromText("LINESTRING(0 0, 0 20)"), "foo", 0)) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/createtopo11.testcase0000664000175000017500000000035412163502133024102 00000000000000CreateTopology - 3 arguments, float dim (error) :memory: #use in-memory database SELECT CreateTopologyTables("hello_world", 4326, 3.3); 1 # rows (not including the header row) 1 # columns CreateTopologyTables("hello_world", 4326, 3.3) 0libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/squaregrid11.testcase0000664000175000017500000000046212163502133024103 00000000000000SquareGrid - Polygon geom - double edges_only :memory: #use in-memory database SELECT SquareGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 1.6); 1 # rows (not including the header row) 1 # columns SquareGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 1.6) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint7.testcase0000664000175000017500000000036112163502133027533 00000000000000interpolate equidistant points - non-blob :memory: #use in-memory database SELECT Line_Interpolate_Equidistant_Points("hello", 0.5) 1 # rows (not including the header row) 1 # columns Line_Interpolate_Equidistant_Points("hello", 0.5) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/linesubstring3.testcase0000664000175000017500000000042612163502133024546 00000000000000linesubstring - int limits :memory: #use in-memory database SELECT AsText(Line_Substring(GeomFromText("LINESTRING(0 0, 10 0)"), 0, 1)) 1 # rows (not including the header row) 1 # columns AsText(Line_Substring(GeomFromText("LINESTRING(0 0, 10 0)"), 0, 1)) LINESTRING(0 0, 10 0) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/squaregrid22.testcase0000664000175000017500000000054612163502133024110 00000000000000SquareGrid - valid - no Origin, only_edges :memory: #use in-memory database SELECT ST_Length(SquareGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 1)); 1 # rows (not including the header row) 1 # columns ST_Length(SquareGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 1)) 17.0 libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/interpolatepoint4.testcase0000664000175000017500000000044712163502133025262 00000000000000interpolate point - basic line, out of range :memory: #use in-memory database SELECT AsText(Line_Interpolate_Point(GeomFromText("LINESTRING(0 0, 10 6)"), -1)) 1 # rows (not including the header row) 1 # columns AsText(Line_Interpolate_Point(GeomFromText("LINESTRING(0 0, 10 6)"), -1)) POINT(0 0)libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/singlesidedbuffer6.testcase0000664000175000017500000000040312163502133025340 00000000000000singlesidedbuffer - bad blob, float radius, right side (error) :memory: #use in-memory database SELECT AsText(SingleSidedBuffer(zeroblob(20), 3.5, 0)); 1 # rows (not including the header row) 1 # columns AsText(SingleSidedBuffer(zeroblob(20), 3.5, 0)) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/ringsnodes2.testcase0000664000175000017500000000063612163502133024033 00000000000000RingsCutAtNodes - with internal ring :memory: #use in-memory database SELECT AsText(RingsCutAtNodes(GeomFromText("POLYGON((0 0, 0 10, 10 10, 10 0, 0 0),(1 1, 3 1, 3 3, 1 3, 1 1))"))) 1 # rows (not including the header row) 1 # columns AsText(RingsCutAtNodes(GeomFromText("POLYGON((0 0, 0 10, 10 10, 10 0, 0 0),(1 1, 3 1, 3 3, 1 3, 1 1))"))) MULTILINESTRING((0 0, 0 10, 10 10, 10 0, 0 0), (1 1, 3 1, 3 3, 1 3, 1 1))libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/distance_geogr9.testcase0000664000175000017500000000074512163502133024645 00000000000000Distance Long/Lat metric (great circle) - Linestring/Polygon :memory: #use in-memory database SELECT ST_Distance(GeomFromText('LINESTRING(11.1 42.1, 11.2 42.2, 11.2 43.3)'), GeomFromText('POLYGON((11.3 42.3, 11.4 42.3, 11.4 42.4, 11.3 42.4, 11.3 42.3))'), 0); 1 # rows (not including the header row) 1 # columns ST_Distance(GeomFromText('LINESTRING(11.1 42.1, 11.2 42.2, 11.2 43.3)'), GeomFromText('POLYGON((11.3 42.3, 11.4 42.3, 11.4 42.4, 11.3 42.4, 11.3 42.3))'), 0) 8211.259574:6 libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/sharedpaths13.testcase0000664000175000017500000000073712163502133024252 00000000000000shared paths - two polygonZ :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("POLYGONZ((0 0 4, 10 0 4, 10 10 4, 0 10 4, 0 0 4))"),GeomFromText("POLYGONZ((5 0 4, 15 0 4, 15 10 4, 5 10 4, 5 0 4))"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("POLYGONZ((0 0 4, 10 0 4, 10 10 4, 0 10 4, 0 0 4))"),GeomFromText("POLYGONZ((5 0 4, 15 0 4, 15 10 4, 5 10 4, 5 0 4))"))) MULTILINESTRING Z((5 0 4, 10 0 4), (10 10 4, 5 10 4))libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/hexgrid14.testcase0000664000175000017500000000051712163502133023373 00000000000000HexagonalGrid - Polygon geom - zeroblob origin :memory: #use in-memory database SELECT HexagonalGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, zeroblob(4)); 1 # rows (not including the header row) 1 # columns HexagonalGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/offsetcurve2.testcase0000664000175000017500000000043112163502133024204 00000000000000OffsetCurve - polygon :memory: #use in-memory database SELECT AsText(OffsetCurve(GeomFromText('POLYGON((0 0, 0 1, 4 1, 4 0, 0 0))'), 1, 0)); 1 # rows (not including the header row) 1 # columns AsText(OffsetCurve(GeomFromText('POLYGON((0 0, 0 1, 4 1, 4 0, 0 0))'), 1, 0)) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/sharedpaths8.testcase0000664000175000017500000000045412163502133024172 00000000000000shared paths - point and line :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("POINT(15 0)"),GeomFromText("LINESTRING(0 0, 1 0)"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("POINT(15 0)"),GeomFromText("LINESTRING(0 0, 1 0)"))) (NULL)libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/offsetcurve14.testcase0000664000175000017500000000052112163502133024267 00000000000000OffsetCurve - linestringzm :memory: #use in-memory database SELECT AsText(OffsetCurve(GeomFromText('LINESTRINGZM(0 0 1 4, 0 1 2 4, 4 1 2 4, 4 0 1 4)'), 1, 0)) 1 # rows (not including the header row) 1 # columns AsText(OffsetCurve(GeomFromText('LINESTRINGZM(0 0 1 4, 0 1 2 4, 4 1 2 4, 4 0 1 4)'), 1, 0)) LINESTRING ZM(3 0 0 0, 1 0 0 0) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/Makefile.am0000664000175000017500000002064012163502133022072 00000000000000 EXTRA_DIST = closestpoint10.testcase \ closestpoint11.testcase \ closestpoint12.testcase \ closestpoint13.testcase \ closestpoint14.testcase \ closestpoint15.testcase \ closestpoint16.testcase \ closestpoint17.testcase \ closestpoint18.testcase \ closestpoint19.testcase \ closestpoint1.testcase \ closestpoint20.testcase \ closestpoint21.testcase \ closestpoint22.testcase \ closestpoint2.testcase \ closestpoint3.testcase \ closestpoint4.testcase \ closestpoint5.testcase \ closestpoint6.testcase \ closestpoint7.testcase \ closestpoint8.testcase \ closestpoint9.testcase \ coveredby1.testcase \ coveredby2.testcase \ covers1.testcase \ covers2.testcase \ covers_covered1.testcase \ covers_covered2.testcase \ covers_covered3.testcase \ covers_covered4.testcase \ covers_covered5.testcase \ covers_covered6.testcase \ covers_covered7.testcase \ createtopo10.testcase \ createtopo11.testcase \ createtopo12.testcase \ createtopo13.testcase \ createtopo14.testcase \ createtopo15.testcase \ createtopo16.testcase \ createtopo17.testcase \ createtopo18.testcase \ createtopo1.testcase \ createtopo2.testcase \ createtopo3.testcase \ createtopo4.testcase \ createtopo5.testcase \ createtopo6.testcase \ createtopo7.testcase \ createtopo8.testcase \ createtopo9.testcase \ distance_geogr10.testcase \ distance_geogr11.testcase \ distance_geogr12.testcase \ distance_geogr1.testcase \ distance_geogr2.testcase \ distance_geogr3.testcase \ distance_geogr4.testcase \ distance_geogr5.testcase \ distance_geogr6.testcase \ distance_geogr7.testcase \ distance_geogr8.testcase \ distance_geogr9.testcase \ hausdorffdistance1.testcase \ hausdorffdistance2.testcase \ hausdorffdistance3.testcase \ hausdorffdistance4.testcase \ hausdorffdistance5.testcase \ hausdorffdistance6.testcase \ hausdorffdistance7.testcase \ hexgrid10.testcase \ hexgrid11.testcase \ hexgrid12.testcase \ hexgrid13.testcase \ hexgrid14.testcase \ hexgrid15.testcase \ hexgrid16.testcase \ hexgrid17.testcase \ hexgrid18.testcase \ hexgrid19.testcase \ hexgrid1.testcase \ hexgrid20.testcase \ hexgrid21.testcase \ hexgrid22.testcase \ hexgrid23.testcase \ hexgrid2.testcase \ hexgrid3.testcase \ hexgrid4.testcase \ hexgrid5.testcase \ hexgrid6.testcase \ hexgrid7.testcase \ hexgrid8.testcase \ hexgrid9.testcase \ interpolateequidistantpoint10.testcase \ interpolateequidistantpoint11.testcase \ interpolateequidistantpoint12.testcase \ interpolateequidistantpoint13.testcase \ interpolateequidistantpoint14.testcase \ interpolateequidistantpoint1.testcase \ interpolateequidistantpoint2.testcase \ interpolateequidistantpoint3.testcase \ interpolateequidistantpoint4.testcase \ interpolateequidistantpoint5.testcase \ interpolateequidistantpoint6.testcase \ interpolateequidistantpoint7.testcase \ interpolateequidistantpoint8.testcase \ interpolateequidistantpoint9.testcase \ interpolatepoint10.testcase \ interpolatepoint11.testcase \ interpolatepoint12.testcase \ interpolatepoint13.testcase \ interpolatepoint14.testcase \ interpolatepoint1.testcase \ interpolatepoint2.testcase \ interpolatepoint3.testcase \ interpolatepoint4.testcase \ interpolatepoint5.testcase \ interpolatepoint6.testcase \ interpolatepoint7.testcase \ interpolatepoint8.testcase \ interpolatepoint9.testcase \ linemerge10.testcase \ linemerge1.testcase \ linemerge2.testcase \ linemerge3.testcase \ linemerge4.testcase \ linemerge5.testcase \ linemerge6.testcase \ linemerge7.testcase \ linemerge8.testcase \ linemerge9.testcase \ linesnodes10.testcase \ linesnodes11.testcase \ linesnodes12.testcase \ linesnodes13.testcase \ linesnodes14.testcase \ linesnodes15.testcase \ linesnodes16.testcase \ linesnodes17.testcase \ linesnodes18.testcase \ linesnodes19.testcase \ linesnodes1.testcase \ linesnodes2.testcase \ linesnodes3.testcase \ linesnodes4.testcase \ linesnodes5.testcase \ linesnodes6.testcase \ linesnodes7.testcase \ linesnodes8.testcase \ linesnodes9.testcase \ linesubstring10.testcase \ linesubstring11.testcase \ linesubstring12.testcase \ linesubstring13.testcase \ linesubstring14.testcase \ linesubstring15.testcase \ linesubstring16.testcase \ linesubstring17.testcase \ linesubstring18.testcase \ linesubstring19.testcase \ linesubstring1.testcase \ linesubstring20.testcase \ linesubstring21.testcase \ linesubstring22.testcase \ linesubstring23.testcase \ linesubstring24.testcase \ linesubstring25.testcase \ linesubstring26.testcase \ linesubstring2.testcase \ linesubstring3.testcase \ linesubstring4.testcase \ linesubstring5.testcase \ linesubstring6.testcase \ linesubstring7.testcase \ linesubstring8.testcase \ linesubstring9.testcase \ locatepoint10.testcase \ locatepoint11.testcase \ locatepoint12.testcase \ locatepoint1.testcase \ locatepoint2.testcase \ locatepoint3.testcase \ locatepoint4.testcase \ locatepoint5.testcase \ locatepoint6.testcase \ locatepoint7.testcase \ locatepoint8.testcase \ locatepoint9.testcase \ offsetcurve10.testcase \ offsetcurve11.testcase \ offsetcurve12.testcase \ offsetcurve13.testcase \ offsetcurve14.testcase \ offsetcurve1.testcase \ offsetcurve2.testcase \ offsetcurve3.testcase \ offsetcurve4.testcase \ offsetcurve5.testcase \ offsetcurve6.testcase \ offsetcurve7.testcase \ offsetcurve8.testcase \ offsetcurve9.testcase \ ringsnodes1.testcase \ ringsnodes2.testcase \ ringsnodes3.testcase \ ringsnodes4.testcase \ ringsnodes5.testcase \ ringsnodes6.testcase \ sharedpaths10.testcase \ sharedpaths11.testcase \ sharedpaths12.testcase \ sharedpaths13.testcase \ sharedpaths14.testcase \ sharedpaths15.testcase \ sharedpaths16.testcase \ sharedpaths17.testcase \ sharedpaths18.testcase \ sharedpaths19.testcase \ sharedpaths1.testcase \ sharedpaths20.testcase \ sharedpaths21.testcase \ sharedpaths22.testcase \ sharedpaths23.testcase \ sharedpaths24.testcase \ sharedpaths25.testcase \ sharedpaths26.testcase \ sharedpaths27.testcase \ sharedpaths28.testcase \ sharedpaths29.testcase \ sharedpaths2.testcase \ sharedpaths30.testcase \ sharedpaths31.testcase \ sharedpaths32.testcase \ sharedpaths3.testcase \ sharedpaths4.testcase \ sharedpaths5.testcase \ sharedpaths6.testcase \ sharedpaths7.testcase \ sharedpaths8.testcase \ sharedpaths9.testcase \ shortestline1.testcase \ shortestline2.testcase \ shortestline3.testcase \ shortestline4.testcase \ shortestline5.testcase \ shortestline6.testcase \ shortestline7.testcase \ singlesidedbuffer11.testcase \ singlesidedbuffer12.testcase \ singlesidedbuffer13.testcase \ singlesidedbuffer14.testcase \ singlesidedbuffer15.testcase \ singlesidedbuffer16.testcase \ singlesidedbuffer17.testcase \ singlesidedbuffer1.testcase \ singlesidedbuffer2.testcase \ singlesidedbuffer3.testcase \ singlesidedbuffer4.testcase \ singlesidedbuffer5.testcase \ singlesidedbuffer6.testcase \ singlesidedbuffer7.testcase \ singlesidedbuffer8.testcase \ singlesidedbuffer9.testcase \ snap10.testcase \ snap1.testcase \ snap2.testcase \ snap3.testcase \ snap4.testcase \ snap5.testcase \ snap6.testcase \ snap7.testcase \ snap8.testcase \ snap9.testcase \ squaregrid10.testcase \ squaregrid11.testcase \ squaregrid12.testcase \ squaregrid13.testcase \ squaregrid14.testcase \ squaregrid15.testcase \ squaregrid16.testcase \ squaregrid17.testcase \ squaregrid18.testcase \ squaregrid19.testcase \ squaregrid1.testcase \ squaregrid20.testcase \ squaregrid21.testcase \ squaregrid22.testcase \ squaregrid23.testcase \ squaregrid2.testcase \ squaregrid3.testcase \ squaregrid4.testcase \ squaregrid5.testcase \ squaregrid6.testcase \ squaregrid7.testcase \ squaregrid8.testcase \ squaregrid9.testcase \ trianggrid10.testcase \ trianggrid11.testcase \ trianggrid12.testcase \ trianggrid13.testcase \ trianggrid14.testcase \ trianggrid15.testcase \ trianggrid16.testcase \ trianggrid17.testcase \ trianggrid18.testcase \ trianggrid19.testcase \ trianggrid1.testcase \ trianggrid20.testcase \ trianggrid21.testcase \ trianggrid22.testcase \ trianggrid23.testcase \ trianggrid2.testcase \ trianggrid3.testcase \ trianggrid4.testcase \ trianggrid5.testcase \ trianggrid6.testcase \ trianggrid7.testcase \ trianggrid8.testcase \ trianggrid9.testcase \ unaryunion1.testcase \ unaryunion2.testcase \ unaryunion3.testcase \ unaryunion4.testcase \ unaryunion5.testcase \ unaryunion6.testcase \ unaryunion7.testcase \ unaryunion8.testcase libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/trianggrid18.testcase0000664000175000017500000000045412163502133024077 00000000000000TriangularGrid - Polygon geom - zero size :memory: #use in-memory database SELECT TriangularGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 0.0); 1 # rows (not including the header row) 1 # columns TriangularGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 0.0) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/snap4.testcase0000664000175000017500000000032712163502133022620 00000000000000Snap - non-blob second arg :memory: #use in-memory database SELECT Snap(GeomFromText("POINT(0.1 0.2)"), 5, 0.4) 1 # rows (not including the header row) 1 # columns Snap(GeomFromText("POINT(0.1 0.2)"), 5, 0.4) (NULL)libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/snap3.testcase0000664000175000017500000000055412163502133022621 00000000000000Snap, LINESTRING, point, non-number 3rd arg :memory: #use in-memory database SELECT AsText(Snap(GeomFromText("POINT(0.1 0.2)"), GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0, 0 0)"), "hello")) 1 # rows (not including the header row) 1 # columns AsText(Snap(GeomFromText("POINT(0.1 0.2)"), GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0, 0 0)"), "hello")) (NULL)libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/linesnodes8.testcase0000664000175000017500000000056312163502133024030 00000000000000LinesCutAtNodes - polygon, nodes :memory: #use in-memory database SELECT AsText(LinesCutAtNodes(GeomFromText("POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))"),GeomFromText("MULTIPOINT(0 10, 10 10)"))) 1 # rows (not including the header row) 1 # columns AsText(LinesCutAtNodes(GeomFromText("POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))"),GeomFromText("MULTIPOINT(0 10, 10 10)"))) (NULL)libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/closestpoint7.testcase0000664000175000017500000000045712163502133024414 00000000000000Closest Point - two pointZs :memory: #use in-memory database SELECT AsText(ClosestPoint(GeomFromText("POINTZ(1 2 3)"), GeomFromText("POINTZ(4 6 0)"))); 1 # rows (not including the header row) 1 # columns AsText(ClosestPoint(GeomFromText("POINTZ(1 2 3)"), GeomFromText("POINTZ(4 6 0)"))) POINT Z(1 2 3) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/sharedpaths1.testcase0000664000175000017500000000052312163502133024160 00000000000000shared paths - two lines :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("LINESTRING(0 0, 10 0)"),GeomFromText("LINESTRING(5 0, 15 0)"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("LINESTRING(0 0, 10 0)"),GeomFromText("LINESTRING(5 0, 15 0)"))) MULTILINESTRING((5 0, 10 0))libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/interpolatepoint8.testcase0000664000175000017500000000041712163502133025263 00000000000000interpolate point - non-number :memory: #use in-memory database SELECT Line_Interpolate_Point(GeomFromText("LINESTRING(0 0, 10 6)"), "hello") 1 # rows (not including the header row) 1 # columns Line_Interpolate_Point(GeomFromText("LINESTRING(0 0, 10 6)"), "hello") (NULL)libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/locatepoint9.testcase0000664000175000017500000000037612163502133024211 00000000000000locate point - NULL second arg :memory: #use in-memory database SELECT Line_Locate_Point(GeomFromText("LINESTRING(0 1, 1 2)"), NULL) 1 # rows (not including the header row) 1 # columns Line_Locate_Point(GeomFromText("LINESTRING(0 1, 1 2)"), NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/linesnodes5.testcase0000664000175000017500000000060312163502133024020 00000000000000LinesCutAtNodes - line, endnodes :memory: #use in-memory database SELECT AsText(LinesCutAtNodes(GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0)"),GeomFromText("MULTIPOINT(0 0, 10 0)"))) 1 # rows (not including the header row) 1 # columns AsText(LinesCutAtNodes(GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0)"),GeomFromText("MULTIPOINT(0 0, 10 0)"))) LINESTRING(0 0, 0 10, 10 10, 10 0)libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint10.testcase0000664000175000017500000000051412163502133027605 00000000000000interpolate equidistant points - wrong geometry type :memory: #use in-memory database SELECT Line_Interpolate_Equidistant_Points(GeomFromText("POLYGON((0 0, 10 6, 10 0, 0 0))"), 0.6) 1 # rows (not including the header row) 1 # columns Line_Interpolate_Equidistant_Points(GeomFromText("POLYGON((0 0, 10 6, 10 0, 0 0))"), 0.6) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/linemerge3.testcase0000664000175000017500000000037212163502133023625 00000000000000linemerge - single line :memory: #use in-memory database SELECT AsText(LineMerge(GeomFromText("LINESTRING(0 0, 2 3)"))) 1 # rows (not including the header row) 1 # columns AsText(LineMerge(GeomFromText("LINESTRING(0 0, 2 3)"))) LINESTRING(0 0, 2 3) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/squaregrid18.testcase0000664000175000017500000000044012163502133024106 00000000000000SquareGrid - Polygon geom - zero size :memory: #use in-memory database SELECT SquareGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 0.0); 1 # rows (not including the header row) 1 # columns SquareGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 0.0) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/covers_covered1.testcase0000664000175000017500000000066212163502133024666 00000000000000Covers / Covered :memory: #use in-memory database SELECT Covers(geom1,geom2),CoveredBy(geom1,geom2),Covers(geom2,geom1),CoveredBy(geom2,geom1) from (SELECT GeomFromText("POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))") as geom1,GeomFromText("POLYGON((0 0, 2 0, 2 2, 0 2, 0 0))") as geom2) dummy; 1 # rows (not including the header row) 4 # columns Covers(geom1,geom2) CoveredBy(geom1,geom2) Covers(geom2,geom1) CoveredBy(geom2,geom1) 0 1 1 0 libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/sharedpaths7.testcase0000664000175000017500000000045412163502133024171 00000000000000shared paths - line and point :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("LINESTRING(0 0, 1 0)"),GeomFromText("POINT(15 0)"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("LINESTRING(0 0, 1 0)"),GeomFromText("POINT(15 0)"))) (NULL)libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/snap6.testcase0000664000175000017500000000043212163502133022617 00000000000000Snap - bad blob first arg :memory: #use in-memory database SELECT Snap(zeroblob(50), GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0, 0 0)"), 2) 1 # rows (not including the header row) 1 # columns Snap(zeroblob(50), GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0, 0 0)"), 2) (NULL)libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/covers_covered4.testcase0000664000175000017500000000042712163502133024670 00000000000000CoveredBy- zero blob first arg :memory: #use in-memory database SELECT CoveredBy(geom1,geom2) from (SELECT zeroblob(48) as geom1,GeomFromText("POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))") as geom2) dummy; 1 # rows (not including the header row) 1 # columns CoveredBy(geom1,geom2) -1 libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/interpolatepoint6.testcase0000664000175000017500000000032512163502133025257 00000000000000interpolate point - bad blob :memory: #use in-memory database SELECT Line_Interpolate_Point(zeroblob(100), 0.5) 1 # rows (not including the header row) 1 # columns Line_Interpolate_Point(zeroblob(100), 0.5) (NULL)libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/linesnodes2.testcase0000664000175000017500000000057212163502133024022 00000000000000LinesCutAtNodes - line, node :memory: #use in-memory database SELECT AsText(LinesCutAtNodes(GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0)"),GeomFromText("POINT(0 10)"))) 1 # rows (not including the header row) 1 # columns AsText(LinesCutAtNodes(GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0)"),GeomFromText("POINT(0 10)"))) MULTILINESTRING((0 0, 0 10), (0 10, 10 10, 10 0))libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/createtopo17.testcase0000664000175000017500000000031612163502133024106 00000000000000CreateTopology - 2 arguments, text SRID (error) :memory: #use in-memory database SELECT CreateTopologyTables("4326", 2); 1 # rows (not including the header row) 1 # columns CreateTopologyTables("4326", 2) 0libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/squaregrid8.testcase0000664000175000017500000000045112163502133024027 00000000000000SquareGrid - Polygon geom - alpha size :memory: #use in-memory database SELECT SquareGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 'alpha'); 1 # rows (not including the header row) 1 # columns SquareGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 'alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/interpolatepoint11.testcase0000664000175000017500000000057012163502133025335 00000000000000interpolate point - wrong geometry type :memory: #use in-memory database SELECT Line_Interpolate_Point(GeomFromText("GeometryCollection(LINESTRING(0 1, 1 2),POLYGON((0 0, 10 0, 10 10, 0 0)))"), 0.6) 1 # rows (not including the header row) 1 # columns Line_Interpolate_Point(GeomFromText("GeometryCollection(LINESTRING(0 1, 1 2),POLYGON((0 0, 10 0, 10 10, 0 0)))"), 0.6) (NULL)libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/distance_geogr7.testcase0000664000175000017500000000046612163502133024643 00000000000000Distance Long/Lat metric (ellipsoid) - two 2D-M points :memory: #use in-memory database SELECT ST_Distance(MakePointM(11.1, 42.1, 0.1), MakePointM(11.2, 42.2, 0.2), 1); 1 # rows (not including the header row) 1 # columns ST_Distance(MakePointM(11.1, 42.1, 0.1), MakePointM(11.2, 42.2, 0.2), 1) 13845.545374:6 libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/singlesidedbuffer17.testcase0000664000175000017500000000060712163502133025430 00000000000000singlesidedbuffer - LINESTRINGZM -X, float radius, right side :memory: #use in-memory database SELECT AsText(SingleSidedBuffer(GeomFromText("LINESTRINGZM(0 20 1 4, 0 0 2 6)"), 3.5, 0)) 1 # rows (not including the header row) 1 # columns AsText(SingleSidedBuffer(GeomFromText("LINESTRINGZM(0 20 1 4, 0 0 2 6)"), 3.5, 0)) POLYGON ZM((0 20 1 0, 0 0 2 0, -3.5 0 nan 0, -3.5 20 nan 0, 0 20 1 0)) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/sharedpaths29.testcase0000664000175000017500000000106612163502133024255 00000000000000shared paths - multilineM - prepend :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("MULTILINESTRINGM((5 0 10, 15 0 30),(5 0 10, 5 5 10))"),GeomFromText("MULTILINESTRINGM((0 0 0, 4 0 8, 6 0 12, 10 0 20),(11 0 22, 5 0 10),(5 0 10, 5 5 10))"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("MULTILINESTRINGM((5 0 10, 15 0 30),(5 0 10, 5 5 10))"),GeomFromText("MULTILINESTRINGM((0 0 0, 4 0 8, 6 0 12, 10 0 20),(11 0 22, 5 0 10),(5 0 10, 5 5 10))"))) MULTILINESTRING M((5 5 0, 5 0 0, 6 0 0, 10 0 0, 11 0 0))libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/trianggrid1.testcase0000664000175000017500000000026512163502133024007 00000000000000TriangularGrid - NULL geom :memory: #use in-memory database SELECT TriangularGrid(NULL, 1.0); 1 # rows (not including the header row) 1 # columns TriangularGrid(NULL, 1.0) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/squaregrid13.testcase0000664000175000017500000000046412163502133024107 00000000000000SquareGrid - Polygon geom - NULL origin :memory: #use in-memory database SELECT SquareGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, NULL); 1 # rows (not including the header row) 1 # columns SquareGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/shortestline5.testcase0000664000175000017500000000041512163502133024401 00000000000000ShortestLine - zeroblob second arg :memory: #use in-memory database SELECT ShortestLine(GeomFromText("LINESTRING(0 0, 10 0)"), zeroblob(487)) 1 # rows (not including the header row) 1 # columns ShortestLine(GeomFromText("LINESTRING(0 0, 10 0)"), zeroblob(487)) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/unaryunion5.testcase0000664000175000017500000000051612163502133024067 00000000000000unaryunion - points ZM :memory: #use in-memory database SELECT AsText(UnaryUnion(GeomFromText("GEOMETRYCOLLECTIONZM(POINTZM(1 2 3 1), POINTZM(2 3 4 1))"))) 1 # rows (not including the header row) 1 # columns AsText(UnaryUnion(GeomFromText("GEOMETRYCOLLECTIONZM(POINTZM(1 2 3 1), POINTZM(2 3 4 1))"))); MULTIPOINT ZM(1 2 3 0, 2 3 4 0) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/linemerge1.testcase0000664000175000017500000000025112163502133023617 00000000000000linemerge - bad blob :memory: #use in-memory database SELECT LineMerge(zeroblob(44)) 1 # rows (not including the header row) 1 # columns LineMerge(zeroblob(44)) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/squaregrid2.testcase0000664000175000017500000000027312163502133024023 00000000000000SquareGrid - zeroblob geom :memory: #use in-memory database SELECT SquareGrid(zeroblob(4), 1.0); 1 # rows (not including the header row) 1 # columns SquareGrid(zeroblob(4), 1.0) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/linesubstring2.testcase0000664000175000017500000000043012163502133024540 00000000000000linesubstring - basic :memory: #use in-memory database SELECT AsText(Line_Substring(GeomFromText("LINESTRING(0 0, 10 0)"), 0.2, 0.6)) 1 # rows (not including the header row) 1 # columns AsText(Line_Substring(GeomFromText("LINESTRING(0 0, 10 0)"), 0.2, 0.6)) LINESTRING(2 0, 6 0) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/trianggrid19.testcase0000664000175000017500000000060612163502133024077 00000000000000TriangularGrid - Polygon geom - MultiPoint Origin :memory: #use in-memory database SELECT TriangularGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, GeomFromText('MULTIPOINT(0 0, 1 1)')); 1 # rows (not including the header row) 1 # columns TriangularGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, GeomFromText('MULTIPOINT(0 0, 1 1)')) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/trianggrid12.testcase0000664000175000017500000000051412163502133024066 00000000000000TriangularGrid - Polygon geom - BLOB edges_only :memory: #use in-memory database SELECT TriangularGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, zeroblob(4)); 1 # rows (not including the header row) 1 # columns TriangularGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/hexgrid10.testcase0000664000175000017500000000050112163502133023360 00000000000000HexagonalGrid - Polygon geom - text edges_only :memory: #use in-memory database SELECT HexagonalGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 'alpha'); 1 # rows (not including the header row) 1 # columns HexagonalGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 'alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/createtopo14.testcase0000664000175000017500000000027712163502133024111 00000000000000CreateTopology - 2 arguments, 2D int :memory: #use in-memory database SELECT CreateTopologyTables(4326, 2); 1 # rows (not including the header row) 1 # columns CreateTopologyTables(4326, 2) 1libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/linesubstring11.testcase0000664000175000017500000000033312163502133024622 00000000000000linesubstring - bad blob :memory: #use in-memory database SELECT AsText(Line_Substring(zeroblob(10), 0.2, 0.6)) 1 # rows (not including the header row) 1 # columns AsText(Line_Substring(zeroblob(10), 0.2, 0.6)) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/hexgrid8.testcase0000664000175000017500000000046212163502133023315 00000000000000HexagonalGrid - Polygon geom - alpha size :memory: #use in-memory database SELECT HexagonalGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 'alpha'); 1 # rows (not including the header row) 1 # columns HexagonalGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 'alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/distance_geogr5.testcase0000664000175000017500000000043412163502133024634 00000000000000Distance Long/Lat metric (ellipsoid) - two 2D points :memory: #use in-memory database SELECT ST_Distance(MakePoint(11.1, 42.1), MakePoint(11.2, 42.2), 1); 1 # rows (not including the header row) 1 # columns ST_Distance(MakePoint(11.1, 42.1), MakePoint(11.2, 42.2), 1) 13845.545374:6 libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/squaregrid1.testcase0000664000175000017500000000025112163502133024016 00000000000000SquareGrid - NULL geom :memory: #use in-memory database SELECT SquareGrid(NULL, 1.0); 1 # rows (not including the header row) 1 # columns SquareGrid(NULL, 1.0) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/ringsnodes5.testcase0000664000175000017500000000034012163502133024026 00000000000000RingsCutAtNodes - non-polygon (point) :memory: #use in-memory database SELECT RingsCutAtNodes(GeomFromText("POINT(1 2)")) 1 # rows (not including the header row) 1 # columns RingsCutAtNodes(GeomFromText("POINT(1 2)")) (NULL)libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/sharedpaths14.testcase0000664000175000017500000000073712163502133024253 00000000000000shared paths - two polygonM :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("POLYGONM((0 0 4, 10 0 4, 10 10 4, 0 10 4, 0 0 4))"),GeomFromText("POLYGONM((5 0 4, 15 0 4, 15 10 4, 5 10 4, 5 0 4))"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("POLYGONM((0 0 4, 10 0 4, 10 10 4, 0 10 4, 0 0 4))"),GeomFromText("POLYGONM((5 0 4, 15 0 4, 15 10 4, 5 10 4, 5 0 4))"))) MULTILINESTRING M((5 0 0, 10 0 0), (10 10 0, 5 10 0))libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/hexgrid9.testcase0000664000175000017500000000047312163502133023320 00000000000000HexagonalGrid - Polygon geom - NULL edges_only :memory: #use in-memory database SELECT HexagonalGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, NULL); 1 # rows (not including the header row) 1 # columns HexagonalGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/singlesidedbuffer9.testcase0000664000175000017500000000046512163502133025353 00000000000000singlesidedbuffer - LINESTRING X, int radius, bad side (error) :memory: #use in-memory database SELECT AsText(SingleSidedBuffer(GeomFromText("LINESTRING(0 0, 0 20)"), 3, 3.5)); 1 # rows (not including the header row) 1 # columns AsText(SingleSidedBuffer(GeomFromText("LINESTRING(0 0, 0 20)"), 3, 3.5)) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/squaregrid10.testcase0000664000175000017500000000047012163502133024101 00000000000000SquareGrid - Polygon geom - text edges_only :memory: #use in-memory database SELECT SquareGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 'alpha'); 1 # rows (not including the header row) 1 # columns SquareGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 'alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/offsetcurve12.testcase0000664000175000017500000000047112163502133024271 00000000000000OffsetCurve - linestringz :memory: #use in-memory database SELECT AsText(OffsetCurve(GeomFromText('LINESTRINGZ(0 0 1, 0 1 2, 4 1 2, 4 0 1)'), 1, 0)) 1 # rows (not including the header row) 1 # columns AsText(OffsetCurve(GeomFromText('LINESTRINGZ(0 0 1, 0 1 2, 4 1 2, 4 0 1)'), 1, 0)) LINESTRING Z(3 0 0, 1 0 0) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/trianggrid4.testcase0000664000175000017500000000040712163502133024010 00000000000000TriangularGrid - Linestring geom :memory: #use in-memory database SELECT TriangularGrid(GeomFromText('LINESTRING(1 1, 2 2)', 4326), 1.0); 1 # rows (not including the header row) 1 # columns TriangularGrid(GeomFromText('LINESTRING(1 1, 2 2)', 4326), 1.0) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/hexgrid19.testcase0000664000175000017500000000060312163502133023374 00000000000000HexagonalGrid - Polygon geom - MultiPoint Origin :memory: #use in-memory database SELECT HexagonalGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, GeomFromText('MULTIPOINT(0 0, 1 1)')); 1 # rows (not including the header row) 1 # columns HexagonalGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, GeomFromText('MULTIPOINT(0 0, 1 1)')) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/createtopo16.testcase0000664000175000017500000000030712163502133024105 00000000000000CreateTopology - 2 arguments, 4D int (error) :memory: #use in-memory database SELECT CreateTopologyTables(4326, 4); 1 # rows (not including the header row) 1 # columns CreateTopologyTables(4326, 4) 0libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/trianggrid16.testcase0000664000175000017500000000063712163502133024100 00000000000000TriangularGrid - Polygon geom - Polygon Origin :memory: #use in-memory database SELECT TriangularGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, GeomFromText('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))')); 1 # rows (not including the header row) 1 # columns TriangularGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, GeomFromText('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))')) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint1.testcase0000664000175000017500000000150012163502133027521 00000000000000interpolate equidistant points - basic line :memory: #use in-memory database SELECT AsText(Line_Interpolate_Equidistant_Points(GeomFromText("LINESTRING(0 0, 10 6)"), 0.5)) 1 # rows (not including the header row) 1 # columns AsText(Line_Interpolate_Equidistant_Points(GeomFromText("LINESTRING(0 0, 10 6)"), 0.5)) MULTIPOINT M(0.428746 0.257248 0.5, 0.857493 0.514496 1, 1.286239 0.771744 1.5, 1.714986 1.028992 2, 2.143732 1.286239 2.5, 2.572479 1.543487 3, 3.001225 1.800735 3.5, 3.429972 2.057983 4, 3.858718 2.315231 4.5, 4.287465 2.572479 5, 4.716211 2.829727 5.5, 5.144958 3.086975 6, 5.573704 3.344222 6.5, 6.00245 3.60147 7, 6.431197 3.858718 7.5, 6.859943 4.115966 8, 7.28869 4.373214 8.5, 7.717436 4.630462 9, 8.146183 4.88771 9.5, 8.574929 5.144958 10, 9.003676 5.402205 10.5, 9.432422 5.659453 11, 9.861169 5.916701 11.5) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/squaregrid15.testcase0000664000175000017500000000057212163502133024111 00000000000000SquareGrid - Polygon geom - Linestring origin :memory: #use in-memory database SELECT SquareGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, GeomFromText('LINESTRING(0 0, 1 1)')); 1 # rows (not including the header row) 1 # columns SquareGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, GeomFromText('LINESTRING(0 0, 1 1)')) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/interpolatepoint10.testcase0000664000175000017500000000044412163502133025334 00000000000000interpolate point - wrong geometry type :memory: #use in-memory database SELECT Line_Interpolate_Point(GeomFromText("POLYGON((0 0, 10 6, 10 0, 0 0))"), 0.6) 1 # rows (not including the header row) 1 # columns Line_Interpolate_Point(GeomFromText("POLYGON((0 0, 10 6, 10 0, 0 0))"), 0.6) (NULL)libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/trianggrid10.testcase0000664000175000017500000000050412163502133024063 00000000000000TriangularGrid - Polygon geom - text edges_only :memory: #use in-memory database SELECT TriangularGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 'alpha'); 1 # rows (not including the header row) 1 # columns TriangularGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 'alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/sharedpaths18.testcase0000664000175000017500000000071712163502133024255 00000000000000shared paths - two polygon - different overlap :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))"),GeomFromText("POLYGON((5 0, 15 0, 15 10, -5 10, -5 0, 5 0))"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))"),GeomFromText("POLYGON((5 0, 15 0, 15 10, -5 10, -5 0, 5 0))"))) MULTILINESTRING((0 0, 5 0, 10 0), (10 10, 0 10))libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/singlesidedbuffer1.testcase0000664000175000017500000000043012163502133025333 00000000000000singlesidedbuffer - bad args (point, left side) :memory: #use in-memory database SELECT AsText(SingleSidedBuffer(GeomFromText("Point(1 2)", 4326), 3, 1)); 1 # rows (not including the header row) 1 # columns AsText(SingleSidedBuffer(GeomFromText("Point(1 2)", 4326), 3, 1)) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/linesnodes3.testcase0000664000175000017500000000064012163502133024017 00000000000000LinesCutAtNodes - line, multinodes :memory: #use in-memory database SELECT AsText(LinesCutAtNodes(GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0)"),GeomFromText("MULTIPOINT(0 10, 0 4, 3 10)"))) 1 # rows (not including the header row) 1 # columns AsText(LinesCutAtNodes(GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0)"),GeomFromText("MULTIPOINT(0 10, 0 4, 3 10)"))) MULTILINESTRING((0 0, 0 10), (0 10, 10 10, 10 0))libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/linesubstring18.testcase0000664000175000017500000000046412163502133024636 00000000000000linesubstring - ignoring second segment :memory: #use in-memory database SELECT AsText(Line_Substring(GeomFromText("LINESTRING(0 0, 10 0, 10 10)"), 0, 0.2)) 1 # rows (not including the header row) 1 # columns AsText(Line_Substring(GeomFromText("LINESTRING(0 0, 10 0, 10 10)"), 0, 0.2)) LINESTRING(0 0, 4 0) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/singlesidedbuffer7.testcase0000664000175000017500000000052712163502133025350 00000000000000singlesidedbuffer - LINESTRING -X, float radius, right side :memory: #use in-memory database SELECT AsText(SingleSidedBuffer(GeomFromText("LINESTRING(0 20, 0 0)"), 3.5, 0)); 1 # rows (not including the header row) 1 # columns AsText(SingleSidedBuffer(GeomFromText("LINESTRING(0 20, 0 0)"), 3.5, 0)) POLYGON((0 20, 0 0, -3.5 0, -3.5 20, 0 20)) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/squaregrid9.testcase0000664000175000017500000000046212163502133024032 00000000000000SquareGrid - Polygon geom - NULL edges_only :memory: #use in-memory database SELECT SquareGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, NULL); 1 # rows (not including the header row) 1 # columns SquareGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/createtopo8.testcase0000664000175000017500000000035412163502133024030 00000000000000CreateTopology - 3 arguments, text SRID (error) :memory: #use in-memory database SELECT CreateTopologyTables("my_prefix", "WGS-84", 3); 1 # rows (not including the header row) 1 # columns CreateTopologyTables("my_prefix", "WGS-84", 3) 0libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/linesubstring7.testcase0000664000175000017500000000043112163502133024546 00000000000000linesubstring - out-of-range limits 2 :memory: #use in-memory database SELECT AsText(Line_Substring(GeomFromText("LINESTRING(0 0, 10 0)"), 2, -0.5)) 1 # rows (not including the header row) 1 # columns AsText(Line_Substring(GeomFromText("LINESTRING(0 0, 10 0)"), 2, -0.5)) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint3.testcase0000664000175000017500000000051412163502133027527 00000000000000interpolate equidistant points - basic line, exceding distance :memory: #use in-memory database SELECT AsText(Line_Interpolate_Equidistant_Points(GeomFromText("LINESTRING(0 0, 1 1)"), 3)) 1 # rows (not including the header row) 1 # columns AsText(Line_Interpolate_Equidistant_Points(GeomFromText("LINESTRING(0 0, 1 1)"), 3)) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/hausdorffdistance7.testcase0000664000175000017500000000051512163502133025355 00000000000000HausdorffDistance - co-incident multipoints :memory: #use in-memory database SELECT HausdorffDistance(GeomFromText("MULTIPOINT(0 0, 10 0)"), GeomFromText("MULTIPOINT(0 0, 10 0)")) 1 # rows (not including the header row) 1 # columns HausdorffDistance(GeomFromText("MULTIPOINT(0 0, 10 0)"), GeomFromText("MULTIPOINT(0 0, 10 0)")) 0.0 libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/hexgrid20.testcase0000664000175000017500000000144112163502133023365 00000000000000HexagonalGrid - valid - with Origin :memory: #use in-memory database SELECT AsText(HexagonalGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 0, GeomFromText('POINT(0.1 0.1)'))); 1 # rows (not including the header row) 1 # columns AsText(HexagonalGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 0, GeomFromText('POINT(0.1 0.1)'))) MULTIPOLYGON(((0.1 0.1, 0.6 -0.766025, 1.6 -0.766025, 2.1 0.1, 1.6 0.966025, 0.6 0.966025, 0.1 0.1)), ((-1.4 0.966025, -0.9 0.1, 0.1 0.1, 0.6 0.966025, 0.1 1.832051, -0.9 1.832051, -1.4 0.966025)), ((1.6 0.966025, 2.1 0.1, 3.1 0.1, 3.6 0.966025, 3.1 1.832051, 2.1 1.832051, 1.6 0.966025)), ((0.1 1.832051, 0.6 0.966025, 1.6 0.966025, 2.1 1.832051, 1.6 2.698076, 0.6 2.698076, 0.1 1.832051))) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/covers_covered2.testcase0000664000175000017500000000073012163502133024663 00000000000000Covers / Covered - partial overlap :memory: #use in-memory database SELECT Covers(geom1,geom2),CoveredBy(geom1,geom2),Covers(geom2,geom1),CoveredBy(geom2,geom1) from (SELECT GeomFromText("POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))") as geom1,GeomFromText("POLYGON((0.5 0.5, 2.5 0.5, 2.5 2.5, 0.5 2.5, 0.5 0.5))") as geom2) dummy; 1 # rows (not including the header row) 4 # columns Covers(geom1,geom2) CoveredBy(geom1,geom2) Covers(geom2,geom1) CoveredBy(geom2,geom1) 0 0 0 0 libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/hexgrid18.testcase0000664000175000017500000000045112163502133023374 00000000000000HexagonalGrid - Polygon geom - zero size :memory: #use in-memory database SELECT HexagonalGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 0.0); 1 # rows (not including the header row) 1 # columns HexagonalGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 0.0) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/interpolatepoint7.testcase0000664000175000017500000000031112163502133025253 00000000000000interpolate point - non-blob :memory: #use in-memory database SELECT Line_Interpolate_Point("hello", 0.5) 1 # rows (not including the header row) 1 # columns Line_Interpolate_Point("hello", 0.5) (NULL)libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/createtopo1.testcase0000664000175000017500000000030112163502133024011 00000000000000CreateTopology - 2 arguments, 2D :memory: #use in-memory database SELECT CreateTopologyTables(4326, "XY"); 1 # rows (not including the header row) 1 # columns CreateTopologyTables(4326, "XY") 1libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/hexgrid21.testcase0000664000175000017500000000126212163502133023367 00000000000000HexagonalGrid - valid - no Origin :memory: #use in-memory database SELECT AsText(HexagonalGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0)); 1 # rows (not including the header row) 1 # columns AsText(HexagonalGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0)) MULTIPOLYGON(((0 0, 0.5 -0.866025, 1.5 -0.866025, 2 0, 1.5 0.866025, 0.5 0.866025, 0 0)), ((-1.5 0.866025, -1 0, 0 0, 0.5 0.866025, 0 1.732051, -1 1.732051, -1.5 0.866025)), ((1.5 0.866025, 2 0, 3 0, 3.5 0.866025, 3 1.732051, 2 1.732051, 1.5 0.866025)), ((0 1.732051, 0.5 0.866025, 1.5 0.866025, 2 1.732051, 1.5 2.598076, 0.5 2.598076, 0 1.732051))) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/closestpoint4.testcase0000664000175000017500000000033512163502133024404 00000000000000Closest Point - bad second blob :memory: #use in-memory database SELECT ClosestPoint(MakePoint(1, 2), zeroblob(25)); 1 # rows (not including the header row) 1 # columns ClosestPoint(MakePoint(1, 2), zeroblob(25)) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/linesubstring8.testcase0000664000175000017500000000044612163502133024555 00000000000000linesubstring - wrong type of limits 1 :memory: #use in-memory database SELECT AsText(Line_Substring(GeomFromText("LINESTRING(0 0, 10 0)"), "hello", null)) 1 # rows (not including the header row) 1 # columns AsText(Line_Substring(GeomFromText("LINESTRING(0 0, 10 0)"), "hello", null)) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/linesnodes11.testcase0000664000175000017500000000041012163502133024071 00000000000000LinesCutAtNodes - non-blob second arg :memory: #use in-memory database SELECT LinesCutAtNodes(GeomFromText("MULTIPOINT(0 10, 10 10)"), "get") 1 # rows (not including the header row) 1 # columns LinesCutAtNodes(GeomFromText("MULTIPOINT(0 10, 10 10)"), "get") (NULL)libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/createtopo10.testcase0000664000175000017500000000032512163502133024077 00000000000000CreateTopology - 3 arguments, integer prefix (error) :memory: #use in-memory database SELECT CreateTopologyTables(3, 4326, 3); 1 # rows (not including the header row) 1 # columns CreateTopologyTables(3, 4326, 3) 0libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/linemerge4.testcase0000664000175000017500000000041412163502133023623 00000000000000linemerge - single line Z :memory: #use in-memory database SELECT AsText(LineMerge(GeomFromText("LINESTRINGZ(0 0 1, 2 3 3)"))) 1 # rows (not including the header row) 1 # columns AsText(LineMerge(GeomFromText("LINESTRINGZ(0 0 1, 2 3 3)"))) LINESTRING Z(0 0 1, 2 3 3) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/hexgrid15.testcase0000664000175000017500000000060312163502133023370 00000000000000HexagonalGrid - Polygon geom - Linestring origin :memory: #use in-memory database SELECT HexagonalGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, GeomFromText('LINESTRING(0 0, 1 1)')); 1 # rows (not including the header row) 1 # columns HexagonalGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, GeomFromText('LINESTRING(0 0, 1 1)')) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/linemerge10.testcase0000664000175000017500000000060712163502133023704 00000000000000linemerge - weird linestring :memory: #use in-memory database SELECT AsText(LineMerge(GeomFromText("LINESTRING(136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5)"))) 1 # rows (not including the header row) 1 # columns AsText(LineMerge(GeomFromText("LINESTRING(136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5)"))) LINESTRING(136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/hexgrid5.testcase0000664000175000017500000000056212163502133023313 00000000000000HexagonalGrid - Collection (Point - Polygon) geom :memory: #use in-memory database SELECT HexagonalGrid(GeomFromText('GEOMETRYCOLLECTION(POINT(0 0), POLYGON((3 3, 3 4, 4 4, 4 3, 3 3)))', 4326), 1.0); 1 # rows (not including the header row) 1 # columns HexagonalGrid(GeomFromText('GEOMETRYCOLLECTION(POINT(0 0), POLYGON((3 3, 3 4, 4 4, 4 3, 3 3)))', 4326), 1.0) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/squaregrid4.testcase0000664000175000017500000000037312163502133024026 00000000000000SquareGrid - Linestring geom :memory: #use in-memory database SELECT SquareGrid(GeomFromText('LINESTRING(1 1, 2 2)', 4326), 1.0); 1 # rows (not including the header row) 1 # columns SquareGrid(GeomFromText('LINESTRING(1 1, 2 2)', 4326), 1.0) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/linesnodes15.testcase0000664000175000017500000000057212163502133024106 00000000000000LinesCutAtNodes - closed linestring, lines second arg :memory: #use in-memory database SELECT LinesCutAtNodes(GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0, 0 0)"),GeomFromText("LINESTRING(0 10, 10 10)")) 1 # rows (not including the header row) 1 # columns LinesCutAtNodes(GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0, 0 0)"),GeomFromText("LINESTRING(0 10, 10 10)")) (NULL)libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/hexgrid2.testcase0000664000175000017500000000030412163502133023302 00000000000000HexagonalGrid - zeroblob geom :memory: #use in-memory database SELECT HexagonalGrid(zeroblob(4), 1.0); 1 # rows (not including the header row) 1 # columns HexagonalGrid(zeroblob(4), 1.0) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/closestpoint18.testcase0000664000175000017500000000072512163502133024474 00000000000000Closest Point - polygonZ with interior and Point :memory: #use in-memory database SELECT AsText(ClosestPoint(GeomFromText("POINTZ(4 6 1)"), GeomFromText("POLYGONZ((0 0 1, 10 0 2, 10 10 3, 0 10 2, 0 0 1),( 1 1 4, 3 1 5, 3 3 6, 1 3 5, 1 1 4))"))) 1 # rows (not including the header row) 1 # columns AsText(ClosestPoint(GeomFromText("POINTZ(4 6 1)"), GeomFromText("POLYGONZ((0 0 1, 10 0 2, 10 10 3, 0 10 2, 0 0 1),( 1 1 4, 3 1 5, 3 3 6, 1 3 5, 1 1 4))"))) POINT Z(4 6 1) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/linesnodes19.testcase0000664000175000017500000000101612163502133024104 00000000000000LinesCutAtNodes - closed linestringZM, nodes :memory: #use in-memory database SELECT AsText(LinesCutAtNodes(GeomFromText("LINESTRINGZM(0 0 1 4, 0 10 1 2, 10 10 1 6, 10 0 1 3, 0 0 1 4)"),GeomFromText("MULTIPOINTZM(0 10 1 2, 10 10 1 6)"))) 1 # rows (not including the header row) 1 # columns AsText(LinesCutAtNodes(GeomFromText("LINESTRINGZM(0 0 1 4, 0 10 1 2, 10 10 1 6, 10 0 1 3, 0 0 1 4)"),GeomFromText("MULTIPOINTZM(0 10 1 2, 10 10 1 6)"))) MULTILINESTRING ZM((10 10 1 6, 10 0 1 3, 0 0 1 4, 0 10 1 2), (0 10 1 2, 10 10 1 6))libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/closestpoint17.testcase0000664000175000017500000000061212163502133024466 00000000000000Closest Point - polygon with interior and Point :memory: #use in-memory database SELECT AsText(ClosestPoint(MakePoint(4, 6), GeomFromText("POLYGON((0 0, 10 0, 10 10, 0 10, 0 0),( 1 1, 3 1, 3 3, 1 3, 1 1))"))) 1 # rows (not including the header row) 1 # columns AsText(ClosestPoint(MakePoint(4, 6), GeomFromText("POLYGON((0 0, 10 0, 10 10, 0 10, 0 0),( 1 1, 3 1, 3 3, 1 3, 1 1))"))) POINT(4 6) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/sharedpaths27.testcase0000664000175000017500000000072712163502133024256 00000000000000shared paths - multiline :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("MULTILINESTRING((5 0, 15 0),(5 0, 5 5))"),GeomFromText("MULTILINESTRING((0 0, 4 0, 6 0, 10 0),(11 0, 5 0),(5 5, 5 0))"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("MULTILINESTRING((5 0, 15 0),(5 0, 5 5))"),GeomFromText("MULTILINESTRING((0 0, 4 0, 6 0, 10 0),(11 0, 5 0),(5 5, 5 0))"))) MULTILINESTRING((5 5, 5 0, 6 0, 10 0, 11 0))libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/createtopo18.testcase0000664000175000017500000000031712163502133024110 00000000000000CreateTopology - 2 arguments, float dims (error) :memory: #use in-memory database SELECT CreateTopologyTables(4326, 2.0); 1 # rows (not including the header row) 1 # columns CreateTopologyTables(4326, 2.0) 0libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/hexgrid22.testcase0000664000175000017500000000066012163502133023371 00000000000000HexagonalGrid - valid - with Origin, edges_only :memory: #use in-memory database SELECT ST_Length(HexagonalGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 1, GeomFromText('POINT(0.1 0.1)'))); 1 # rows (not including the header row) 1 # columns ST_Length(HexagonalGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 1, GeomFromText('POINT(0.1 0.1)'))) 24.0 libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/createtopo2.testcase0000664000175000017500000000030312163502133024014 00000000000000CreateTopology - 2 arguments, 3D :memory: #use in-memory database SELECT CreateTopologyTables(4326, "XYZ"); 1 # rows (not including the header row) 1 # columns CreateTopologyTables(4326, "XYZ") 1libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/squaregrid20.testcase0000664000175000017500000000100712163502133024077 00000000000000SquareGrid - valid - no Origin :memory: #use in-memory database SELECT AsText(SquareGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0)); 1 # rows (not including the header row) 1 # columns AsText(SquareGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0)) MULTIPOLYGON(((0 0, 1 0, 1 1, 0 1, 0 0)), ((1 0, 2 0, 2 1, 1 1, 1 0)), ((2 0, 3 0, 3 1, 2 1, 2 0)), ((0 1, 1 1, 1 2, 0 2, 0 1)), ((1 1, 2 1, 2 2, 1 2, 1 1)), ((2 1, 3 1, 3 2, 2 2, 2 1))) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/linesubstring4.testcase0000664000175000017500000000044212163502133024545 00000000000000linesubstring - out-of-range limits :memory: #use in-memory database SELECT AsText(Line_Substring(GeomFromText("LINESTRING(0 0, 10 0)"), -1, 2)) 1 # rows (not including the header row) 1 # columns AsText(Line_Substring(GeomFromText("LINESTRING(0 0, 10 0)"), -1, 2)) LINESTRING(0 0, 10 0) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/sharedpaths12.testcase0000664000175000017500000000102512163502133024240 00000000000000shared paths - two polygonZM :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("POLYGONZM((0 0 4 1, 10 0 4 1, 10 10 4 1, 0 10 4 1, 0 0 4 1))"),GeomFromText("POLYGONZM((5 0 4 1, 15 0 4 1, 15 10 4 1, 5 10 4 1, 5 0 4 1))"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("POLYGONZM((0 0 4 1, 10 0 4 1, 10 10 4 1, 0 10 4 1, 0 0 4 1))"),GeomFromText("POLYGONZM((5 0 4 1, 15 0 4 1, 15 10 4 1, 5 10 4 1, 5 0 4 1))"))) MULTILINESTRING ZM((5 0 4 0, 10 0 4 0), (10 10 4 0, 5 10 4 0))libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/singlesidedbuffer3.testcase0000664000175000017500000000051112163502133025335 00000000000000singlesidedbuffer - LINESTRING X, int radius, right side :memory: #use in-memory database SELECT AsText(SingleSidedBuffer(GeomFromText("LINESTRING(0 0, 0 20)"), 3, 0)); 1 # rows (not including the header row) 1 # columns AsText(SingleSidedBuffer(GeomFromText("LINESTRING(0 0, 0 20)"), 3, 0)) POLYGON((0 0, 0 20, 3 20, 3 0, 0 0)) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/unaryunion3.testcase0000664000175000017500000000047212163502133024066 00000000000000unaryunion - points Z :memory: #use in-memory database SELECT AsText(UnaryUnion(GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(1 2 3), POINTZ(2 3 4))"))) 1 # rows (not including the header row) 1 # columns AsText(UnaryUnion(GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(1 2 3), POINTZ(2 3 4))"))); MULTIPOINT Z(1 2 3, 2 3 4) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/squaregrid19.testcase0000664000175000017500000000057212163502133024115 00000000000000SquareGrid - Polygon geom - MultiPoint Origin :memory: #use in-memory database SELECT SquareGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, GeomFromText('MULTIPOINT(0 0, 1 1)')); 1 # rows (not including the header row) 1 # columns SquareGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, GeomFromText('MULTIPOINT(0 0, 1 1)')) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/locatepoint4.testcase0000664000175000017500000000063412163502133024201 00000000000000locate point - GeomCollection first arg :memory: #use in-memory database SELECT Line_Locate_Point(GeomFromText("GeometryCollection(LINESTRING(0 1, 1 2),POLYGON((0 0, 10 0, 10 10, 0 0)))"), GeomFromText("POINT(5 3)")) 1 # rows (not including the header row) 1 # columns Line_Locate_Point(GeomFromText("GeometryCollection(LINESTRING(0 1, 1 2),POLYGON((0 0, 10 0, 10 10, 0 0)))"), GeomFromText("POINT(5 3)")) (NULL)libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/trianggrid9.testcase0000664000175000017500000000047612163502133024023 00000000000000TriangularGrid - Polygon geom - NULL edges_only :memory: #use in-memory database SELECT TriangularGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, NULL); 1 # rows (not including the header row) 1 # columns TriangularGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/linemerge7.testcase0000664000175000017500000000057112163502133023632 00000000000000linemerge - GEOMETRY COLLECTION M :memory: #use in-memory database SELECT AsText(LineMerge(GeomFromText("GeometryCollectionM(LINESTRINGM(0 1 0, 1 2 0),LINESTRINGM(1 2 0, 3 4 0))"))) 1 # rows (not including the header row) 1 # columns AsText(LineMerge(GeomFromText("GeometryCollectionM(LINESTRINGM(0 1 0, 1 2 0),LINESTRINGM(1 2 0, 3 4 0))"))) LINESTRING M(0 1 0, 1 2 0, 3 4 0) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/linesubstring20.testcase0000664000175000017500000000047312163502133024627 00000000000000linesubstring - using both segments :memory: #use in-memory database SELECT AsText(Line_Substring(GeomFromText("LINESTRING(0 0, 10 0, 10 10)"), 0.2, 0.8)) 1 # rows (not including the header row) 1 # columns AsText(Line_Substring(GeomFromText("LINESTRING(0 0, 10 0, 10 10)"), 0.2, 0.8)) LINESTRING(4 0, 10 0, 10 6) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/sharedpaths19.testcase0000664000175000017500000000110012163502133024241 00000000000000shared paths - two polygonZ, internal ring :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("POLYGONZ((0 0 2, 10 0 12, 10 10 12, 0 10 2, 0 0 2),(1 1 3, 3 1 5, 3 3 5, 1 3 3, 1 1 3))"),GeomFromText("POLYGONZ((5 0 7, 15 0 17, 15 10 17, 5 10 7, 5 0 7))"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("POLYGONZ((0 0 2, 10 0 12, 10 10 12, 0 10 2, 0 0 2),(1 1 3, 3 1 5, 3 3 5, 1 3 3, 1 1 3))"),GeomFromText("POLYGONZ((5 0 7, 15 0 17, 15 10 17, 5 10 7, 5 0 7))"))) MULTILINESTRING Z((5 0 7, 10 0 12), (10 10 12, 5 10 7))libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/hexgrid6.testcase0000664000175000017500000000061312163502133023311 00000000000000HexagonalGrid - Collection (Linestring - Polygon) geom :memory: #use in-memory database SELECT HexagonalGrid(GeomFromText('GEOMETRYCOLLECTION(LINESTRING(1 1, 2 2), POLYGON((3 3, 3 4, 4 4, 4 3, 3 3)))', 4326), 1.0); 1 # rows (not including the header row) 1 # columns HexagonalGrid(GeomFromText('GEOMETRYCOLLECTION(LINESTRING(1 1, 2 2), POLYGON((3 3, 3 4, 4 4, 4 3, 3 3)))', 4326), 1.0) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/trianggrid7.testcase0000664000175000017500000000045612163502133024017 00000000000000TriangularGrid - Polygon geom - NULL size :memory: #use in-memory database SELECT TriangularGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), NULL); 1 # rows (not including the header row) 1 # columns TriangularGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/createtopo6.testcase0000664000175000017500000000033112163502133024021 00000000000000CreateTopology - 3 arguments, 2D int :memory: #use in-memory database SELECT CreateTopologyTables("my_prefix", 4326, 2); 1 # rows (not including the header row) 1 # columns CreateTopologyTables("my_prefix", 4326, 2) 1libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/interpolatepoint14.testcase0000664000175000017500000000045412163502133025341 00000000000000interpolate point - basic lineM :memory: #use in-memory database SELECT AsText(Line_Interpolate_Point(GeomFromText("LINESTRINGM(0 0 4, 10 6 14)"), 0.5)) 1 # rows (not including the header row) 1 # columns AsText(Line_Interpolate_Point(GeomFromText("LINESTRINGM(0 0 4, 10 6 14)"), 0.5)) POINT M(5 3 0)libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/closestpoint13.testcase0000664000175000017500000000045512163502133024467 00000000000000Closest Point - lineZ and Point :memory: #use in-memory database SELECT AsText(ClosestPoint(MakePoint(4, 6), GeomFromText("LINESTRINGZ(0 0 0, 0 10 5)"))); 1 # rows (not including the header row) 1 # columns AsText(ClosestPoint(MakePoint(4, 6), GeomFromText("LINESTRINGZ(0 0 0, 0 10 5)"))) POINT(4 6) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/linesubstring6.testcase0000664000175000017500000000031212163502133024543 00000000000000linesubstring - bad arg :memory: #use in-memory database SELECT AsText(Line_Substring(null, 0.2, 0.6)) 1 # rows (not including the header row) 1 # columns AsText(Line_Substring(null, 0.2, 0.6)) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/linesubstring23.testcase0000664000175000017500000000047312163502133024632 00000000000000linesubstring - using no segments ZM :memory: #use in-memory database SELECT AsText(Line_Substring(GeomFromText("LINESTRINGZM(0 0 1 0, 10 0 1 0, 10 10 1 0)"), 0, 0)) 1 # rows (not including the header row) 1 # columns AsText(Line_Substring(GeomFromText("LINESTRINGZM(0 0 1 0, 10 0 1 0, 10 10 1 0)"), 0, 0)) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/closestpoint10.testcase0000664000175000017500000000044212163502133024460 00000000000000Closest Point - Point and line :memory: #use in-memory database SELECT AsText(ClosestPoint(GeomFromText("LINESTRING(0 0, 0 10)"), MakePoint(4, 6))); 1 # rows (not including the header row) 1 # columns AsText(ClosestPoint(GeomFromText("LINESTRING(0 0, 0 10)"), MakePoint(4, 6))) POINT(0 6) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/squaregrid21.testcase0000664000175000017500000000130512163502133024101 00000000000000SquareGrid - valid - with Origin :memory: #use in-memory database SELECT AsText(SquareGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 0, GeomFromText('POINT(0.1 0.1)'))); 1 # rows (not including the header row) 1 # columns AsText(SquareGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 0, GeomFromText('POINT(0.1 0.1)'))) MULTIPOLYGON(((0.1 0.1, 1.1 0.1, 1.1 1.1, 0.1 1.1, 0.1 0.1)), ((1.1 0.1, 2.1 0.1, 2.1 1.1, 1.1 1.1, 1.1 0.1)), ((2.1 0.1, 3.1 0.1, 3.1 1.1, 2.1 1.1, 2.1 0.1)), ((0.1 1.1, 1.1 1.1, 1.1 2.1, 0.1 2.1, 0.1 1.1)), ((1.1 1.1, 2.1 1.1, 2.1 2.1, 1.1 2.1, 1.1 1.1)), ((2.1 1.1, 3.1 1.1, 3.1 2.1, 2.1 2.1, 2.1 1.1))) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/linesnodes12.testcase0000664000175000017500000000043012163502133024074 00000000000000LinesCutAtNodes - zeroblob second arg :memory: #use in-memory database SELECT LinesCutAtNodes(GeomFromText("MULTIPOINT(0 10, 10 10)"), zeroblob(100)) 1 # rows (not including the header row) 1 # columns LinesCutAtNodes(GeomFromText("MULTIPOINT(0 10, 10 10)"), zeroblob(100)) (NULL)libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/trianggrid15.testcase0000664000175000017500000000060612163502133024073 00000000000000TriangularGrid - Polygon geom - Linestring origin :memory: #use in-memory database SELECT TriangularGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, GeomFromText('LINESTRING(0 0, 1 1)')); 1 # rows (not including the header row) 1 # columns TriangularGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, GeomFromText('LINESTRING(0 0, 1 1)')) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/sharedpaths23.testcase0000664000175000017500000000063512163502133024250 00000000000000shared paths - two multilines, reverse order :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("MULTILINESTRING((0 0, 10 0),(16 0, 12 0))"),GeomFromText("LINESTRING(5 0, 15 0)"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("MULTILINESTRING((0 0, 10 0),(16 0, 12 0))"),GeomFromText("LINESTRING(5 0, 15 0)"))) MULTILINESTRING((5 0, 10 0), (15 0, 12 0))libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/snap2.testcase0000664000175000017500000000052412163502133022615 00000000000000Snap, LINESTRING, point :memory: #use in-memory database SELECT AsText(Snap(GeomFromText("POINT(0.1 0.2)"), GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0, 0 0)"), 0.4)) 1 # rows (not including the header row) 1 # columns AsText(Snap(GeomFromText("POINT(0.1 0.2)"), GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0, 0 0)"), 0.4)) POINT(0 0)libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/offsetcurve8.testcase0000664000175000017500000000041712163502133024216 00000000000000OffsetCurve - points :memory: #use in-memory database SELECT AsText(OffsetCurve(GeomFromText('MULTIPOINT(0 0, 0 1, 4 1, 4 0)'), 1, 0)); 1 # rows (not including the header row) 1 # columns AsText(OffsetCurve(GeomFromText('MULTIPOINT(0 0, 0 1, 4 1, 4 0)'), 1, 0)) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/shortestline1.testcase0000664000175000017500000000050012163502133024370 00000000000000ShortestLine - line and point :memory: #use in-memory database SELECT AsText(ShortestLine(GeomFromText("LINESTRING(0 0, 10 0)"), GeomFromText("POINT(0 2)"))) 1 # rows (not including the header row) 1 # columns AsText(ShortestLine(GeomFromText("LINESTRING(0 0, 10 0)"), GeomFromText("POINT(0 2)"))) LINESTRING(0 0, 0 2) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/linemerge8.testcase0000664000175000017500000000062712163502133023635 00000000000000linemerge - GEOMETRY COLLECTION ZM :memory: #use in-memory database SELECT AsText(LineMerge(GeomFromText("GeometryCollectionZM(LINESTRINGZM(0 1 1 0, 1 2 1 0),LINESTRINGZM(1 2 1 0, 3 4 1 0))"))) 1 # rows (not including the header row) 1 # columns AsText(LineMerge(GeomFromText("GeometryCollectionZM(LINESTRINGZM(0 1 1 0, 1 2 1 0),LINESTRINGZM(1 2 1 0, 3 4 1 0))"))) LINESTRING ZM(0 1 1 0, 1 2 1 0, 3 4 1 0) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/sharedpaths9.testcase0000664000175000017500000000055512163502133024175 00000000000000shared paths - two lineM :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("LINESTRINGM(1 2 1, 10 2 1)"),GeomFromText("LINESTRINGM(5 2 1, 15 2 1)"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("LINESTRINGM(1 2 1, 10 2 1)"),GeomFromText("LINESTRINGM(5 2 1, 15 2 1)"))) MULTILINESTRING M((5 2 0, 10 2 0))libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/sharedpaths26.testcase0000664000175000017500000000076212163502133024254 00000000000000shared paths - multiline, not quite matching :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("MULTILINESTRING((5 0, 15 0),(5 0, 5 5))"),GeomFromText("MULTILINESTRING((0 0, 4 0, 6 0, 10 0),(11 0, 5 0),(5 5, 5 1))"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("MULTILINESTRING((5 0, 15 0),(5 0, 5 5))"),GeomFromText("MULTILINESTRING((0 0, 4 0, 6 0, 10 0),(11 0, 5 0),(5 5, 5 1))"))) MULTILINESTRING((5 0, 6 0, 10 0, 11 0), (5 1, 5 5))libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/closestpoint21.testcase0000664000175000017500000000046112163502133024463 00000000000000Closest Point - Point and lineM :memory: #use in-memory database SELECT AsText(ClosestPoint(GeomFromText("LINESTRINGM(0 0 0, 0 10 5)"), MakePoint(4, 6))); 1 # rows (not including the header row) 1 # columns AsText(ClosestPoint(GeomFromText("LINESTRINGM(0 0 0, 0 10 5)"), MakePoint(4, 6))) POINT M(0 6 0) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/createtopo5.testcase0000664000175000017500000000033112163502133024020 00000000000000CreateTopology - 3 arguments, 3D int :memory: #use in-memory database SELECT CreateTopologyTables("my_prefix", 4326, 3); 1 # rows (not including the header row) 1 # columns CreateTopologyTables("my_prefix", 4326, 3) 1libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/distance_geogr10.testcase0000664000175000017500000000074312163502133024713 00000000000000Distance Long/Lat metric (ellipsoid) - Linestring/Polygon :memory: #use in-memory database SELECT ST_Distance(GeomFromText('LINESTRING(11.1 42.1, 11.2 42.2, 11.2 43.3)'), GeomFromText('POLYGON((11.3 42.3, 11.4 42.3, 11.4 42.4, 11.3 42.4, 11.3 42.3))'), 1); 1 # rows (not including the header row) 1 # columns ST_Distance(GeomFromText('LINESTRING(11.1 42.1, 11.2 42.2, 11.2 43.3)'), GeomFromText('POLYGON((11.3 42.3, 11.4 42.3, 11.4 42.4, 11.3 42.4, 11.3 42.3))'), 1) 8232.9862107:6 libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/covers_covered7.testcase0000664000175000017500000000043112163502133024666 00000000000000CoveredBy - zero blob second arg :memory: #use in-memory database SELECT CoveredBy(geom2,geom1) from (SELECT zeroblob(48) as geom1,GeomFromText("POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))") as geom2) dummy; 1 # rows (not including the header row) 1 # columns CoveredBy(geom2,geom1) -1 libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/unaryunion4.testcase0000664000175000017500000000047212163502133024067 00000000000000unaryunion - points M :memory: #use in-memory database SELECT AsText(UnaryUnion(GeomFromText("GEOMETRYCOLLECTIONM(POINTM(1 2 3), POINTM(2 3 4))"))) 1 # rows (not including the header row) 1 # columns AsText(UnaryUnion(GeomFromText("GEOMETRYCOLLECTIONM(POINTM(1 2 3), POINTM(2 3 4))"))); MULTIPOINT M(1 2 0, 2 3 0) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/covers_covered3.testcase0000664000175000017500000000067612163502133024675 00000000000000Covers / Covered - identical :memory: #use in-memory database SELECT Covers(geom1,geom2),CoveredBy(geom1,geom2),Covers(geom2,geom1),CoveredBy(geom2,geom1) from (SELECT GeomFromText("POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))") as geom1,GeomFromText("POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))") as geom2) dummy; 1 # rows (not including the header row) 4 # columns Covers(geom1,geom2) CoveredBy(geom1,geom2) Covers(geom2,geom1) CoveredBy(geom2,geom1) 1 1 1 1 libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/trianggrid2.testcase0000664000175000017500000000030712163502133024005 00000000000000TriangularGrid - zeroblob geom :memory: #use in-memory database SELECT TriangularGrid(zeroblob(4), 1.0); 1 # rows (not including the header row) 1 # columns TriangularGrid(zeroblob(4), 1.0) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/covers1.testcase0000664000175000017500000000037312163502133023156 00000000000000Covers - non-geom1 :memory: #use in-memory database SELECT Covers(geom1,geom2) from (SELECT "hello" as geom1,GeomFromText("POLYGON((0 0, 2 0, 2 2, 0 2, 0 0))") as geom2) dummy; 1 # rows (not including the header row) 1 # columns Covers(geom1,geom2) -1libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/coveredby1.testcase0000664000175000017500000000040412163502133023632 00000000000000CoveredBy - non-geom1 :memory: #use in-memory database SELECT CoveredBy(geom1,geom2) from (SELECT "hello" as geom1,GeomFromText("POLYGON((0 0, 2 0, 2 2, 0 2, 0 0))") as geom2) dummy; 1 # rows (not including the header row) 1 # columns CoveredBy(geom1,geom2) -1libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/linesnodes13.testcase0000664000175000017500000000042712163502133024103 00000000000000LinesCutAtNodes - zeroblob first arg :memory: #use in-memory database SELECT LinesCutAtNodes(zeroblob(100), GeomFromText("MULTIPOINT(0 10, 10 10)")) 1 # rows (not including the header row) 1 # columns LinesCutAtNodes(zeroblob(100), GeomFromText("MULTIPOINT(0 10, 10 10)")) (NULL)libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/interpolatepoint2.testcase0000664000175000017500000000043312163502133025253 00000000000000interpolate point - basic line :memory: #use in-memory database SELECT AsText(Line_Interpolate_Point(GeomFromText("LINESTRING(0 0, 10 6)"), 0.5)) 1 # rows (not including the header row) 1 # columns AsText(Line_Interpolate_Point(GeomFromText("LINESTRING(0 0, 10 6)"), 0.5)) POINT(5 3)libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/sharedpaths20.testcase0000664000175000017500000000121212163502133024235 00000000000000shared paths - two polygonZM, internal ring :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("POLYGONZM((0 0 2 4, 10 0 12 4, 10 10 12 4, 0 10 2 4, 0 0 2 4),(1 1 3 5, 3 1 5 5, 3 3 5 5, 1 3 3 5, 1 1 3 5))"),GeomFromText("POLYGONZM((5 0 7 4, 15 0 17 4, 15 10 17 4, 5 10 7 4, 5 0 7 4))"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("POLYGONZM((0 0 2 4, 10 0 12 4, 10 10 12 4, 0 10 2 4, 0 0 2 4),(1 1 3 5, 3 1 5 5, 3 3 5 5, 1 3 3 5, 1 1 3 5))"),GeomFromText("POLYGONZM((5 0 7 4, 15 0 17 4, 15 10 17 4, 5 10 7 4, 5 0 7 4))"))) MULTILINESTRING ZM((5 0 7 0, 10 0 12 0), (10 10 12 0, 5 10 7 0))libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/singlesidedbuffer2.testcase0000664000175000017500000000051312163502133025336 00000000000000singlesidedbuffer - LINESTRING X, int radius, left side :memory: #use in-memory database SELECT AsText(SingleSidedBuffer(GeomFromText("LINESTRING(0 0, 0 20)"), 3, 1)); 1 # rows (not including the header row) 1 # columns AsText(SingleSidedBuffer(GeomFromText("LINESTRING(0 0, 0 20)"), 3, 1)) POLYGON((0 20, 0 0, -3 0, -3 20, 0 20)) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/createtopo7.testcase0000664000175000017500000000033512163502133024026 00000000000000CreateTopology - 3 arguments, 4D (error) :memory: #use in-memory database SELECT CreateTopologyTables("my_prefix", 4326, 4); 1 # rows (not including the header row) 1 # columns CreateTopologyTables("my_prefix", 4326, 4) 0libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/linemerge6.testcase0000664000175000017500000000053112163502133023625 00000000000000linemerge - GEOMETRY COLLECTION :memory: #use in-memory database SELECT AsText(LineMerge(GeomFromText("GeometryCollection(LINESTRING(0 1, 1 2),LINESTRING(1 2, 3 4))"))) 1 # rows (not including the header row) 1 # columns AsText(LineMerge(GeomFromText("GeometryCollection(LINESTRING(0 1, 1 2),LINESTRING(1 2, 3 4))"))) LINESTRING(0 1, 1 2, 3 4) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/ringsnodes6.testcase0000664000175000017500000000037112163502133024033 00000000000000RingsCutAtNodes - non-polygon (linestring) :memory: #use in-memory database SELECT RingsCutAtNodes(GeomFromText("LINESTRING(1 3, 2 6)")) 1 # rows (not including the header row) 1 # columns RingsCutAtNodes(GeomFromText("LINESTRING(1 3, 2 6)")) (NULL)libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/hexgrid17.testcase0000664000175000017500000000045712163502133023401 00000000000000HexagonalGrid - Polygon geom - negative size :memory: #use in-memory database SELECT HexagonalGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), -1.0); 1 # rows (not including the header row) 1 # columns HexagonalGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), -1.0) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/shortestline6.testcase0000664000175000017500000000037112163502133024403 00000000000000ShortestLine - non-blob second arg :memory: #use in-memory database SELECT ShortestLine(GeomFromText("LINESTRING(0 0, 10 0)"), 3.4) 1 # rows (not including the header row) 1 # columns ShortestLine(GeomFromText("LINESTRING(0 0, 10 0)"), 3.4) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/createtopo3.testcase0000664000175000017500000000033312163502133024020 00000000000000CreateTopology - 3 arguments, 2D :memory: #use in-memory database SELECT CreateTopologyTables("my_prefix", 4326, "XY"); 1 # rows (not including the header row) 1 # columns CreateTopologyTables("my_prefix", 4326, "XY") 1libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/squaregrid23.testcase0000664000175000017500000000064712163502133024113 00000000000000SquareGrid - valid - with Origin, only_edges :memory: #use in-memory database SELECT ST_Length(SquareGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 1, GeomFromText('POINT(0.1 0.1)'))); 1 # rows (not including the header row) 1 # columns ST_Length(SquareGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 1, GeomFromText('POINT(0.1 0.1)'))) 17.0 libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/interpolatepoint3.testcase0000664000175000017500000000044212163502133025254 00000000000000interpolate point - basic line, endpoint :memory: #use in-memory database SELECT AsText(Line_Interpolate_Point(GeomFromText("LINESTRING(0 0, 10 6)"), 1)) 1 # rows (not including the header row) 1 # columns AsText(Line_Interpolate_Point(GeomFromText("LINESTRING(0 0, 10 6)"), 1)) POINT(10 6)libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/closestpoint3.testcase0000664000175000017500000000033412163502133024402 00000000000000Closest Point - bad first geom :memory: #use in-memory database SELECT ClosestPoint(zeroblob(67), MakePoint(1, 2)); 1 # rows (not including the header row) 1 # columns ClosestPoint(zeroblob(67), MakePoint(1, 2)) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/offsetcurve13.testcase0000664000175000017500000000047112163502133024272 00000000000000OffsetCurve - linestringm :memory: #use in-memory database SELECT AsText(OffsetCurve(GeomFromText('LINESTRINGM(0 0 1, 0 1 2, 4 1 2, 4 0 1)'), 1, 0)) 1 # rows (not including the header row) 1 # columns AsText(OffsetCurve(GeomFromText('LINESTRINGM(0 0 1, 0 1 2, 4 1 2, 4 0 1)'), 1, 0)) LINESTRING M(3 0 0, 1 0 0) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/hausdorffdistance6.testcase0000664000175000017500000000050512163502133025353 00000000000000HausdorffDistance - two multipoints :memory: #use in-memory database SELECT HausdorffDistance(GeomFromText("MULTIPOINT(0 0, 10 0)"), GeomFromText("MULTIPOINT(0 2, 10 2)")) 1 # rows (not including the header row) 1 # columns HausdorffDistance(GeomFromText("MULTIPOINT(0 0, 10 0)"), GeomFromText("MULTIPOINT(0 2, 10 2)")) 2.0 libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/singlesidedbuffer4.testcase0000664000175000017500000000052312163502133025341 00000000000000singlesidedbuffer - LINESTRING X, float radius, right side :memory: #use in-memory database SELECT AsText(SingleSidedBuffer(GeomFromText("LINESTRING(0 0, 0 20)"), 3.5, 0)); 1 # rows (not including the header row) 1 # columns AsText(SingleSidedBuffer(GeomFromText("LINESTRING(0 0, 0 20)"), 3.5, 0)) POLYGON((0 0, 0 20, 3.5 20, 3.5 0, 0 0)) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint12.testcase0000664000175000017500000000072212163502133027610 00000000000000interpolate equidistant points - basic lineZ :memory: #use in-memory database SELECT AsText(Line_Interpolate_Equidistant_Points(GeomFromText("LINESTRINGZ(0 0 4, 10 6 14)"), 2.5)) 1 # rows (not including the header row) 1 # columns AsText(Line_Interpolate_Equidistant_Points(GeomFromText("LINESTRINGZ(0 0 4, 10 6 14)"), 2.5)) MULTIPOINT ZM(2.143732 1.286239 6.143732 2.5, 4.287465 2.572479 8.287465 5, 6.431197 3.858718 10.431197 7.5, 8.574929 5.144958 12.574929 10) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/unaryunion6.testcase0000664000175000017500000000025312163502133024066 00000000000000unaryunion - non-blob :memory: #use in-memory database SELECT AsText(UnaryUnion(3.14)) 1 # rows (not including the header row) 1 # columns AsText(UnaryUnion(3.14)) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/createtopo9.testcase0000664000175000017500000000033312163502133024026 00000000000000CreateTopology - 3 arguments, 0 SRID (error) :memory: #use in-memory database SELECT CreateTopologyTables("my_prefix", 0, 3); 1 # rows (not including the header row) 1 # columns CreateTopologyTables("my_prefix", 0, 3) 0libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/linesubstring19.testcase0000664000175000017500000000046712163502133024642 00000000000000linesubstring - using second segment :memory: #use in-memory database SELECT AsText(Line_Substring(GeomFromText("LINESTRING(0 0, 10 0, 10 10)"), 0.6, 0.8)) 1 # rows (not including the header row) 1 # columns AsText(Line_Substring(GeomFromText("LINESTRING(0 0, 10 0, 10 10)"), 0.6, 0.8)) LINESTRING(10 2, 10 6) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/interpolatepoint9.testcase0000664000175000017500000000037412163502133025266 00000000000000interpolate point - wrong geometry type :memory: #use in-memory database SELECT Line_Interpolate_Point(GeomFromText("POINT(10 6)"), 0.6) 1 # rows (not including the header row) 1 # columns Line_Interpolate_Point(GeomFromText("POINT(10 6)"), 0.6) (NULL)libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/sharedpaths6.testcase0000664000175000017500000000051212163502133024163 00000000000000shared paths - two lines, no intersect. :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("LINESTRING(0 0, 1 0)"),GeomFromText("LINESTRING(5 0, 15 0)"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("LINESTRING(0 0, 1 0)"),GeomFromText("LINESTRING(5 0, 15 0)"))) (NULL)libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/squaregrid16.testcase0000664000175000017500000000062312163502133024107 00000000000000SquareGrid - Polygon geom - Polygon Origin :memory: #use in-memory database SELECT SquareGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, GeomFromText('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))')); 1 # rows (not including the header row) 1 # columns SquareGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, GeomFromText('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))')) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/shortestline4.testcase0000664000175000017500000000034012163502133024375 00000000000000ShortestLine - non-blob first arg :memory: #use in-memory database SELECT ShortestLine(3, GeomFromText("POINT(10 2)")) 1 # rows (not including the header row) 1 # columns ShortestLine(3, GeomFromText("POINT(10 2)")) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/squaregrid3.testcase0000664000175000017500000000031412163502133024020 00000000000000SquareGrid - Point geom :memory: #use in-memory database SELECT SquareGrid(MakePoint(1, 1, 4326), 1.0); 1 # rows (not including the header row) 1 # columns SquareGrid(MakePoint(1, 1, 4326), 1.0) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/linesubstring12.testcase0000664000175000017500000000046212163502133024626 00000000000000linesubstring - geometry collection - point :memory: #use in-memory database SELECT AsText(Line_Substring(GeomFromText("GeometryCollection(POINT(1 2))"), 0.2, 0.6)) 1 # rows (not including the header row) 1 # columns AsText(Line_Substring(GeomFromText("GeometryCollection(POINT(1 2))"), 0.2, 0.6)) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/ringsnodes3.testcase0000664000175000017500000000025712163502133024033 00000000000000RingsCutAtNodes - non-blob :memory: #use in-memory database SELECT RingsCutAtNodes("hello") 1 # rows (not including the header row) 1 # columns RingsCutAtNodes("hello") (NULL)libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/linesubstring24.testcase0000664000175000017500000000050512163502133024627 00000000000000linesubstring - zero length :memory: #use in-memory database SELECT AsText(Line_Substring(GeomFromText("LINESTRINGZM(0 0 1 0, 0 0 2 2, 0 0 3 4)"), 0, 1)) 1 # rows (not including the header row) 1 # columns AsText(Line_Substring(GeomFromText("LINESTRINGZM(0 0 1 0, 0 0 2 2, 0 0 3 4)"), 0, 1)) LINESTRING ZM(0 0 1 0, 0 0 1 0) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/linesnodes1.testcase0000664000175000017500000000055512163502133024022 00000000000000LinesCutAtNodes - line, non-node :memory: #use in-memory database SELECT AsText(LinesCutAtNodes(GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0)"),GeomFromText("POINT(0 5)"))) 1 # rows (not including the header row) 1 # columns AsText(LinesCutAtNodes(GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0)"),GeomFromText("POINT(0 5)"))) LINESTRING(0 0, 0 10, 10 10, 10 0)libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/unaryunion8.testcase0000664000175000017500000000061012163502133024065 00000000000000unaryunion - toxic blob :memory: #use in-memory database SELECT AsText(UnaryUnion(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"))) 1 # rows (not including the header row) 1 # columns AsText(UnaryUnion(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"))) POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5, 136 -35)) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/sharedpaths21.testcase0000664000175000017500000000106612163502133024245 00000000000000shared paths - two polygonM, internal ring :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("POLYGONM((0 0 4, 10 0 4, 10 10 4, 0 10 4, 0 0 4),(1 1 5, 3 1 5, 3 3 5, 1 3 5, 1 1 5))"),GeomFromText("POLYGONM((5 0 4, 15 0 4, 15 10 4, 5 10 4, 5 0 4))"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("POLYGONM((0 0 4, 10 0 4, 10 10 4, 0 10 4, 0 0 4),(1 1 5, 3 1 5, 3 3 5, 1 3 5, 1 1 5))"),GeomFromText("POLYGONM((5 0 4, 15 0 4, 15 10 4, 5 10 4, 5 0 4))"))) MULTILINESTRING M((5 0 0, 10 0 0), (10 10 0, 5 10 0))libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/hexgrid11.testcase0000664000175000017500000000047312163502133023371 00000000000000HexagonalGrid - Polygon geom - double edges_only :memory: #use in-memory database SELECT HexagonalGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 4.5); 1 # rows (not including the header row) 1 # columns HexagonalGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 4.5) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/linesnodes4.testcase0000664000175000017500000000066712163502133024031 00000000000000LinesCutAtNodes - line, multinodes :memory: #use in-memory database SELECT AsText(LinesCutAtNodes(GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0)"),GeomFromText("MULTIPOINT(0 10, 0 4, 3 10, 10 10)"))) 1 # rows (not including the header row) 1 # columns AsText(LinesCutAtNodes(GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0)"),GeomFromText("MULTIPOINT(0 10, 0 4, 3 10, 10 10)"))) MULTILINESTRING((0 0, 0 10), (0 10, 10 10), (10 10, 10 0))libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/hexgrid7.testcase0000664000175000017500000000045312163502133023314 00000000000000HexagonalGrid - Polygon geom - NULL size :memory: #use in-memory database SELECT HexagonalGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), NULL); 1 # rows (not including the header row) 1 # columns HexagonalGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/linesubstring13.testcase0000664000175000017500000000054412163502133024630 00000000000000linesubstring - geometry collection - polygon :memory: #use in-memory database SELECT AsText(Line_Substring(GeomFromText("GeometryCollection(POLYGON((0 0, 1 0, 1 2, 0 2, 0 0)))"), 0.2, 0.6)) 1 # rows (not including the header row) 1 # columns AsText(Line_Substring(GeomFromText("GeometryCollection(POLYGON((0 0, 1 0, 1 2, 0 2, 0 0)))"), 0.2, 0.6)) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/sharedpaths17.testcase0000664000175000017500000000070212163502133024246 00000000000000shared paths - two polygon - different overlap :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))"),GeomFromText("POLYGON((-5 0, 15 0, 15 10, -5 10, -5 0))"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))"),GeomFromText("POLYGON((-5 0, 15 0, 15 10, -5 10, -5 0))"))) MULTILINESTRING((0 0, 10 0), (10 10, 0 10))libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/offsetcurve6.testcase0000664000175000017500000000044712163502133024217 00000000000000OffsetCurve - float radius :memory: #use in-memory database SELECT AsText(OffsetCurve(GeomFromText('LINESTRING(0 0, 0 1, 4 1, 4 0)'), 1.0, 0)); 1 # rows (not including the header row) 1 # columns AsText(OffsetCurve(GeomFromText('LINESTRING(0 0, 0 1, 4 1, 4 0)'), 1.0, 0)) LINESTRING(3 0, 1 0) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint14.testcase0000664000175000017500000000065312163502133027615 00000000000000interpolate equidistant points - basic lineM :memory: #use in-memory database SELECT AsText(Line_Interpolate_Equidistant_Points(GeomFromText("LINESTRINGM(0 0 4, 10 6 14)"), 2.5)) 1 # rows (not including the header row) 1 # columns AsText(Line_Interpolate_Equidistant_Points(GeomFromText("LINESTRINGM(0 0 4, 10 6 14)"), 2.5)) MULTIPOINT M(2.143732 1.286239 2.5, 4.287465 2.572479 5, 6.431197 3.858718 7.5, 8.574929 5.144958 10) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/distance_geogr1.testcase0000664000175000017500000000043712163502133024633 00000000000000Distance Long/Lat metric (great circle) - two 2D points :memory: #use in-memory database SELECT ST_Distance(MakePoint(11.1, 42.1), MakePoint(11.2, 42.2), 0); 1 # rows (not including the header row) 1 # columns ST_Distance(MakePoint(11.1, 42.1), MakePoint(11.2, 42.2), 0) 13842.154368:6 libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/sharedpaths32.testcase0000664000175000017500000000074612163502133024253 00000000000000shared paths - multiline, reverse first :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("MULTILINESTRING((5 0, 5 5),(5 0, 15 0))"),GeomFromText("MULTILINESTRING((0 0, 4 0, 6 0, 10 0),(5 0, 11 0),(5 0, 5 5))"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("MULTILINESTRING((5 0, 5 5),(5 0, 15 0))"),GeomFromText("MULTILINESTRING((0 0, 4 0, 6 0, 10 0),(5 0, 11 0),(5 0, 5 5))"))) MULTILINESTRING((11 0, 10 0, 6 0, 5 0, 5 5))libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/hausdorffdistance5.testcase0000664000175000017500000000042012163502133025346 00000000000000HausdorffDistance - non blob second arg :memory: #use in-memory database SELECT HausdorffDistance(GeomFromText("LINESTRING(0 0, 10 0)"), "hello") 1 # rows (not including the header row) 1 # columns HausdorffDistance(GeomFromText("LINESTRING(0 0, 10 0)"), "hello") (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/hausdorffdistance3.testcase0000664000175000017500000000040312163502133025345 00000000000000HausdorffDistance - non blob first arg :memory: #use in-memory database SELECT HausdorffDistance(3, GeomFromText("LINESTRING(0 2, 10 2)")) 1 # rows (not including the header row) 1 # columns HausdorffDistance(3, GeomFromText("LINESTRING(0 2, 10 2)")) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/linesnodes9.testcase0000664000175000017500000000066112163502133024030 00000000000000LinesCutAtNodes - closed linestring, nodes :memory: #use in-memory database SELECT AsText(LinesCutAtNodes(GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0, 0 0)"),GeomFromText("MULTIPOINT(0 10, 10 10)"))) 1 # rows (not including the header row) 1 # columns AsText(LinesCutAtNodes(GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0, 0 0)"),GeomFromText("MULTIPOINT(0 10, 10 10)"))) MULTILINESTRING((10 10, 10 0, 0 0, 0 10), (0 10, 10 10))libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/ringsnodes4.testcase0000664000175000017500000000027312163502133024032 00000000000000RingsCutAtNodes - bad blob :memory: #use in-memory database SELECT RingsCutAtNodes(zeroblob(100)) 1 # rows (not including the header row) 1 # columns RingsCutAtNodes(zeroblob(100)) (NULL)libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/closestpoint6.testcase0000664000175000017500000000032412163502133024404 00000000000000Closest Point - text second blob :memory: #use in-memory database SELECT ClosestPoint(MakePoint(1, 2), "hello"); 1 # rows (not including the header row) 1 # columns ClosestPoint(MakePoint(1, 2), "hello") (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/snap10.testcase0000664000175000017500000000055112163502133022674 00000000000000Snap, LINESTRING, pointZM :memory: #use in-memory database SELECT AsText(Snap(GeomFromText("POINTZM(0.1 0.2 1 4)"), GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0, 0 0)"), 0.4)) 1 # rows (not including the header row) 1 # columns AsText(Snap(GeomFromText("POINTZM(0.1 0.2 1 4)"), GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0, 0 0)"), 0.4)) POINT ZM(0 0 0 0)libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/linesubstring1.testcase0000664000175000017500000000045212163502133024543 00000000000000linesubstring - basic :memory: #use in-memory database SELECT AsText(Line_Substring(GeomFromText("LINESTRINGZ(0 0 10, 10 0 10)"), 0, 0.4)) 1 # rows (not including the header row) 1 # columns AsText(Line_Substring(GeomFromText("LINESTRINGZ(0 0 10, 10 0 10)"), 0, 0.4)) LINESTRING Z(0 0 10, 4 0 10) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/offsetcurve5.testcase0000664000175000017500000000046412163502133024215 00000000000000OffsetCurve - non-number radius :memory: #use in-memory database SELECT AsText(OffsetCurve(GeomFromText('LINESTRING(0 0, 0 1, 4 1, 4 0)'), "not a number", 0)); 1 # rows (not including the header row) 1 # columns AsText(OffsetCurve(GeomFromText('LINESTRING(0 0, 0 1, 4 1, 4 0)'), "not a number", 0)) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/locatepoint11.testcase0000664000175000017500000000037712163502133024263 00000000000000locate point - bad blob first arg :memory: #use in-memory database SELECT Line_Locate_Point(zeroblob(100), GeomFromText("POINT(0 1)")) 1 # rows (not including the header row) 1 # columns Line_Locate_Point(zeroblob(100), GeomFromText("POINT(0 1)")) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/distance_geogr2.testcase0000664000175000017500000000046712163502133024637 00000000000000Distance Long/Lat metric (great circle) - two 3D points :memory: #use in-memory database SELECT ST_Distance(MakePointZ(11.1, 42.1, 0.1), MakePointZ(11.2, 42.2, 0.2), 0); 1 # rows (not including the header row) 1 # columns ST_Distance(MakePointZ(11.1, 42.1, 0.1), MakePointZ(11.2, 42.2, 0.2), 0) 13842.154368:6 libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/trianggrid8.testcase0000664000175000017500000000046512163502133024020 00000000000000TriangularGrid - Polygon geom - alpha size :memory: #use in-memory database SELECT TriangularGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 'alpha'); 1 # rows (not including the header row) 1 # columns TriangularGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 'alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/sharedpaths4.testcase0000664000175000017500000000036512163502133024167 00000000000000shared paths - non-blob second arg :memory: #use in-memory database SELECT SharedPaths(GeomFromText("LINESTRING(5 0, 15 0)"), 3.4) 1 # rows (not including the header row) 1 # columns SharedPaths(GeomFromText("LINESTRING(5 0, 15 0)"), 3.4) (NULL)libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/offsetcurve3.testcase0000664000175000017500000000027212163502133024210 00000000000000OffsetCurve - null :memory: #use in-memory database SELECT AsText(OffsetCurve(null, 1, 0)); 1 # rows (not including the header row) 1 # columns AsText(OffsetCurve(null, 1, 0)) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/hexgrid3.testcase0000664000175000017500000000032512163502133023306 00000000000000HexagonalGrid - Point geom :memory: #use in-memory database SELECT HexagonalGrid(MakePoint(1, 1, 4326), 1.0); 1 # rows (not including the header row) 1 # columns HexagonalGrid(MakePoint(1, 1, 4326), 1.0) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/Makefile.in0000664000175000017500000004556012163502133022113 00000000000000# Makefile.in generated by automake 1.12.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = test/sql_stmt_geosadvanced_tests DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = closestpoint10.testcase \ closestpoint11.testcase \ closestpoint12.testcase \ closestpoint13.testcase \ closestpoint14.testcase \ closestpoint15.testcase \ closestpoint16.testcase \ closestpoint17.testcase \ closestpoint18.testcase \ closestpoint19.testcase \ closestpoint1.testcase \ closestpoint20.testcase \ closestpoint21.testcase \ closestpoint22.testcase \ closestpoint2.testcase \ closestpoint3.testcase \ closestpoint4.testcase \ closestpoint5.testcase \ closestpoint6.testcase \ closestpoint7.testcase \ closestpoint8.testcase \ closestpoint9.testcase \ coveredby1.testcase \ coveredby2.testcase \ covers1.testcase \ covers2.testcase \ covers_covered1.testcase \ covers_covered2.testcase \ covers_covered3.testcase \ covers_covered4.testcase \ covers_covered5.testcase \ covers_covered6.testcase \ covers_covered7.testcase \ createtopo10.testcase \ createtopo11.testcase \ createtopo12.testcase \ createtopo13.testcase \ createtopo14.testcase \ createtopo15.testcase \ createtopo16.testcase \ createtopo17.testcase \ createtopo18.testcase \ createtopo1.testcase \ createtopo2.testcase \ createtopo3.testcase \ createtopo4.testcase \ createtopo5.testcase \ createtopo6.testcase \ createtopo7.testcase \ createtopo8.testcase \ createtopo9.testcase \ distance_geogr10.testcase \ distance_geogr11.testcase \ distance_geogr12.testcase \ distance_geogr1.testcase \ distance_geogr2.testcase \ distance_geogr3.testcase \ distance_geogr4.testcase \ distance_geogr5.testcase \ distance_geogr6.testcase \ distance_geogr7.testcase \ distance_geogr8.testcase \ distance_geogr9.testcase \ hausdorffdistance1.testcase \ hausdorffdistance2.testcase \ hausdorffdistance3.testcase \ hausdorffdistance4.testcase \ hausdorffdistance5.testcase \ hausdorffdistance6.testcase \ hausdorffdistance7.testcase \ hexgrid10.testcase \ hexgrid11.testcase \ hexgrid12.testcase \ hexgrid13.testcase \ hexgrid14.testcase \ hexgrid15.testcase \ hexgrid16.testcase \ hexgrid17.testcase \ hexgrid18.testcase \ hexgrid19.testcase \ hexgrid1.testcase \ hexgrid20.testcase \ hexgrid21.testcase \ hexgrid22.testcase \ hexgrid23.testcase \ hexgrid2.testcase \ hexgrid3.testcase \ hexgrid4.testcase \ hexgrid5.testcase \ hexgrid6.testcase \ hexgrid7.testcase \ hexgrid8.testcase \ hexgrid9.testcase \ interpolateequidistantpoint10.testcase \ interpolateequidistantpoint11.testcase \ interpolateequidistantpoint12.testcase \ interpolateequidistantpoint13.testcase \ interpolateequidistantpoint14.testcase \ interpolateequidistantpoint1.testcase \ interpolateequidistantpoint2.testcase \ interpolateequidistantpoint3.testcase \ interpolateequidistantpoint4.testcase \ interpolateequidistantpoint5.testcase \ interpolateequidistantpoint6.testcase \ interpolateequidistantpoint7.testcase \ interpolateequidistantpoint8.testcase \ interpolateequidistantpoint9.testcase \ interpolatepoint10.testcase \ interpolatepoint11.testcase \ interpolatepoint12.testcase \ interpolatepoint13.testcase \ interpolatepoint14.testcase \ interpolatepoint1.testcase \ interpolatepoint2.testcase \ interpolatepoint3.testcase \ interpolatepoint4.testcase \ interpolatepoint5.testcase \ interpolatepoint6.testcase \ interpolatepoint7.testcase \ interpolatepoint8.testcase \ interpolatepoint9.testcase \ linemerge10.testcase \ linemerge1.testcase \ linemerge2.testcase \ linemerge3.testcase \ linemerge4.testcase \ linemerge5.testcase \ linemerge6.testcase \ linemerge7.testcase \ linemerge8.testcase \ linemerge9.testcase \ linesnodes10.testcase \ linesnodes11.testcase \ linesnodes12.testcase \ linesnodes13.testcase \ linesnodes14.testcase \ linesnodes15.testcase \ linesnodes16.testcase \ linesnodes17.testcase \ linesnodes18.testcase \ linesnodes19.testcase \ linesnodes1.testcase \ linesnodes2.testcase \ linesnodes3.testcase \ linesnodes4.testcase \ linesnodes5.testcase \ linesnodes6.testcase \ linesnodes7.testcase \ linesnodes8.testcase \ linesnodes9.testcase \ linesubstring10.testcase \ linesubstring11.testcase \ linesubstring12.testcase \ linesubstring13.testcase \ linesubstring14.testcase \ linesubstring15.testcase \ linesubstring16.testcase \ linesubstring17.testcase \ linesubstring18.testcase \ linesubstring19.testcase \ linesubstring1.testcase \ linesubstring20.testcase \ linesubstring21.testcase \ linesubstring22.testcase \ linesubstring23.testcase \ linesubstring24.testcase \ linesubstring25.testcase \ linesubstring26.testcase \ linesubstring2.testcase \ linesubstring3.testcase \ linesubstring4.testcase \ linesubstring5.testcase \ linesubstring6.testcase \ linesubstring7.testcase \ linesubstring8.testcase \ linesubstring9.testcase \ locatepoint10.testcase \ locatepoint11.testcase \ locatepoint12.testcase \ locatepoint1.testcase \ locatepoint2.testcase \ locatepoint3.testcase \ locatepoint4.testcase \ locatepoint5.testcase \ locatepoint6.testcase \ locatepoint7.testcase \ locatepoint8.testcase \ locatepoint9.testcase \ offsetcurve10.testcase \ offsetcurve11.testcase \ offsetcurve12.testcase \ offsetcurve13.testcase \ offsetcurve14.testcase \ offsetcurve1.testcase \ offsetcurve2.testcase \ offsetcurve3.testcase \ offsetcurve4.testcase \ offsetcurve5.testcase \ offsetcurve6.testcase \ offsetcurve7.testcase \ offsetcurve8.testcase \ offsetcurve9.testcase \ ringsnodes1.testcase \ ringsnodes2.testcase \ ringsnodes3.testcase \ ringsnodes4.testcase \ ringsnodes5.testcase \ ringsnodes6.testcase \ sharedpaths10.testcase \ sharedpaths11.testcase \ sharedpaths12.testcase \ sharedpaths13.testcase \ sharedpaths14.testcase \ sharedpaths15.testcase \ sharedpaths16.testcase \ sharedpaths17.testcase \ sharedpaths18.testcase \ sharedpaths19.testcase \ sharedpaths1.testcase \ sharedpaths20.testcase \ sharedpaths21.testcase \ sharedpaths22.testcase \ sharedpaths23.testcase \ sharedpaths24.testcase \ sharedpaths25.testcase \ sharedpaths26.testcase \ sharedpaths27.testcase \ sharedpaths28.testcase \ sharedpaths29.testcase \ sharedpaths2.testcase \ sharedpaths30.testcase \ sharedpaths31.testcase \ sharedpaths32.testcase \ sharedpaths3.testcase \ sharedpaths4.testcase \ sharedpaths5.testcase \ sharedpaths6.testcase \ sharedpaths7.testcase \ sharedpaths8.testcase \ sharedpaths9.testcase \ shortestline1.testcase \ shortestline2.testcase \ shortestline3.testcase \ shortestline4.testcase \ shortestline5.testcase \ shortestline6.testcase \ shortestline7.testcase \ singlesidedbuffer11.testcase \ singlesidedbuffer12.testcase \ singlesidedbuffer13.testcase \ singlesidedbuffer14.testcase \ singlesidedbuffer15.testcase \ singlesidedbuffer16.testcase \ singlesidedbuffer17.testcase \ singlesidedbuffer1.testcase \ singlesidedbuffer2.testcase \ singlesidedbuffer3.testcase \ singlesidedbuffer4.testcase \ singlesidedbuffer5.testcase \ singlesidedbuffer6.testcase \ singlesidedbuffer7.testcase \ singlesidedbuffer8.testcase \ singlesidedbuffer9.testcase \ snap10.testcase \ snap1.testcase \ snap2.testcase \ snap3.testcase \ snap4.testcase \ snap5.testcase \ snap6.testcase \ snap7.testcase \ snap8.testcase \ snap9.testcase \ squaregrid10.testcase \ squaregrid11.testcase \ squaregrid12.testcase \ squaregrid13.testcase \ squaregrid14.testcase \ squaregrid15.testcase \ squaregrid16.testcase \ squaregrid17.testcase \ squaregrid18.testcase \ squaregrid19.testcase \ squaregrid1.testcase \ squaregrid20.testcase \ squaregrid21.testcase \ squaregrid22.testcase \ squaregrid23.testcase \ squaregrid2.testcase \ squaregrid3.testcase \ squaregrid4.testcase \ squaregrid5.testcase \ squaregrid6.testcase \ squaregrid7.testcase \ squaregrid8.testcase \ squaregrid9.testcase \ trianggrid10.testcase \ trianggrid11.testcase \ trianggrid12.testcase \ trianggrid13.testcase \ trianggrid14.testcase \ trianggrid15.testcase \ trianggrid16.testcase \ trianggrid17.testcase \ trianggrid18.testcase \ trianggrid19.testcase \ trianggrid1.testcase \ trianggrid20.testcase \ trianggrid21.testcase \ trianggrid22.testcase \ trianggrid23.testcase \ trianggrid2.testcase \ trianggrid3.testcase \ trianggrid4.testcase \ trianggrid5.testcase \ trianggrid6.testcase \ trianggrid7.testcase \ trianggrid8.testcase \ trianggrid9.testcase \ unaryunion1.testcase \ unaryunion2.testcase \ unaryunion3.testcase \ unaryunion4.testcase \ unaryunion5.testcase \ unaryunion6.testcase \ unaryunion7.testcase \ unaryunion8.testcase all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/sql_stmt_geosadvanced_tests/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign test/sql_stmt_geosadvanced_tests/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags: TAGS TAGS: ctags: CTAGS CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/sharedpaths3.testcase0000664000175000017500000000042712163502133024165 00000000000000shared paths - zeroblob second arg :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("LINESTRING(5 0, 15 0)"),zeroblob(100))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("LINESTRING(5 0, 15 0)"),zeroblob(100))) (NULL)libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/covers_covered6.testcase0000664000175000017500000000041712163502133024671 00000000000000Covers - zero blob first arg :memory: #use in-memory database SELECT Covers(geom1,geom2) from (SELECT zeroblob(48) as geom1,GeomFromText("POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))") as geom2) dummy; 1 # rows (not including the header row) 1 # columns Covers(geom1,geom2) -1 libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/linemerge2.testcase0000664000175000017500000000022512163502133023621 00000000000000linemerge - non-blob :memory: #use in-memory database SELECT LineMerge(44) 1 # rows (not including the header row) 1 # columns LineMerge(44) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/distance_geogr8.testcase0000664000175000017500000000050612163502133024637 00000000000000Distance Long/Lat metric (ellipsoid) - two 3D-M points :memory: #use in-memory database SELECT ST_Distance(MakePointZM(11.1, 42.1, 0.1, 1), MakePointZM(11.2, 42.2, 0.2, 2), 1); 1 # rows (not including the header row) 1 # columns ST_Distance(MakePointZM(11.1, 42.1, 0.1, 1), MakePointZM(11.2, 42.2, 0.2, 2), 1) 13845.545374:6 libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/linesnodes18.testcase0000664000175000017500000000074012163502133024106 00000000000000LinesCutAtNodes - closed linestringM, nodes :memory: #use in-memory database SELECT AsText(LinesCutAtNodes(GeomFromText("LINESTRINGM(0 0 1, 0 10 1, 10 10 1, 10 0 1, 0 0 1)"),GeomFromText("MULTIPOINTM(0 10 1, 10 10 1)"))) 1 # rows (not including the header row) 1 # columns AsText(LinesCutAtNodes(GeomFromText("LINESTRINGM(0 0 1, 0 10 1, 10 10 1, 10 0 1, 0 0 1)"),GeomFromText("MULTIPOINTM(0 10 1, 10 10 1)"))) MULTILINESTRING M((10 10 1, 10 0 1, 0 0 1, 0 10 1), (0 10 1, 10 10 1))libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/squaregrid7.testcase0000664000175000017500000000044212163502133024026 00000000000000SquareGrid - Polygon geom - NULL size :memory: #use in-memory database SELECT SquareGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), NULL); 1 # rows (not including the header row) 1 # columns SquareGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/squaregrid12.testcase0000664000175000017500000000050012163502133024075 00000000000000SquareGrid - Polygon geom - BLOB edges_only :memory: #use in-memory database SELECT SquareGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, zeroblob(4)); 1 # rows (not including the header row) 1 # columns SquareGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint4.testcase0000664000175000017500000000051212163502133027526 00000000000000interpolate equidistant points - basic line, zero distance :memory: #use in-memory database SELECT AsText(Line_Interpolate_Equidistant_Points(GeomFromText("LINESTRING(0 0, 10 6)"), 0)) 1 # rows (not including the header row) 1 # columns AsText(Line_Interpolate_Equidistant_Points(GeomFromText("LINESTRING(0 0, 10 6)"), 0)) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/hexgrid1.testcase0000664000175000017500000000026212163502133023304 00000000000000HexagonalGrid - NULL geom :memory: #use in-memory database SELECT HexagonalGrid(NULL, 1.0); 1 # rows (not including the header row) 1 # columns HexagonalGrid(NULL, 1.0) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/trianggrid5.testcase0000664000175000017500000000056512163502133024016 00000000000000TriangularGrid - Collection (Point - Polygon) geom :memory: #use in-memory database SELECT TriangularGrid(GeomFromText('GEOMETRYCOLLECTION(POINT(0 0), POLYGON((3 3, 3 4, 4 4, 4 3, 3 3)))', 4326), 1.0); 1 # rows (not including the header row) 1 # columns TriangularGrid(GeomFromText('GEOMETRYCOLLECTION(POINT(0 0), POLYGON((3 3, 3 4, 4 4, 4 3, 3 3)))', 4326), 1.0) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint5.testcase0000664000175000017500000000052012163502133027526 00000000000000interpolate equidistant points - basic line, negative distance :memory: #use in-memory database SELECT AsText(Line_Interpolate_Equidistant_Points(GeomFromText("LINESTRING(0 0, 10 6)"), -1)) 1 # rows (not including the header row) 1 # columns AsText(Line_Interpolate_Equidistant_Points(GeomFromText("LINESTRING(0 0, 10 6)"), -1)) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/offsetcurve11.testcase0000664000175000017500000000051112163502133024263 00000000000000OffsetCurve - multilinestring, 2 linestring :memory: #use in-memory database SELECT AsText(OffsetCurve(GeomFromText('MULTILINESTRING((0 0, 0 1, 4 1, 4 0),(4 1, 3 2))'), 1, 0)) 1 # rows (not including the header row) 1 # columns AsText(OffsetCurve(GeomFromText('MULTILINESTRING((0 0, 0 1, 4 1, 4 0),(4 1, 3 2))'), 1, 0)) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/sharedpaths30.testcase0000664000175000017500000000117312163502133024244 00000000000000shared paths - multilineZM - prepend :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("MULTILINESTRINGZM((5 0 10 0, 15 0 30 0),(5 0 10 0, 5 5 10 0))"),GeomFromText("MULTILINESTRINGZM((0 0 0 0, 4 0 8 0, 6 0 12 0, 10 0 20 0),(11 0 22 0, 5 0 10 0),(5 0 10 0, 5 5 10 0))"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("MULTILINESTRINGZM((5 0 10 0, 15 0 30 0),(5 0 10 0, 5 5 10 0))"),GeomFromText("MULTILINESTRINGZM((0 0 0 0, 4 0 8 0, 6 0 12 0, 10 0 20 0),(11 0 22 0, 5 0 10 0),(5 0 10 0, 5 5 10 0))"))) MULTILINESTRING ZM((5 5 10 0, 5 0 10 0, 6 0 12 0, 10 0 20 0, 11 0 22 0))libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/ringsnodes1.testcase0000664000175000017500000000047212163502133024030 00000000000000RingsCutAtNodes :memory: #use in-memory database SELECT AsText(RingsCutAtNodes(GeomFromText("POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))"))) 1 # rows (not including the header row) 1 # columns AsText(RingsCutAtNodes(GeomFromText("POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))"))) MULTILINESTRING((0 0, 0 10, 10 10, 10 0, 0 0))libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/linesubstring16.testcase0000664000175000017500000000045712163502133024636 00000000000000linesubstring - basic vary M :memory: #use in-memory database SELECT AsText(Line_Substring(GeomFromText("LINESTRINGM(0 0 0, 10 0 5)"), 0.2, 0.7)) 1 # rows (not including the header row) 1 # columns AsText(Line_Substring(GeomFromText("LINESTRINGM(0 0 0, 10 0 5)"), 0.2, 0.7)) LINESTRING M(2 0 0, 7 0 0) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/locatepoint8.testcase0000664000175000017500000000064312163502133024205 00000000000000locate point - GeometryCollection second arg :memory: #use in-memory database SELECT Line_Locate_Point(GeomFromText("LINESTRING(0 1, 1 2)"), GeomFromText("GeometryCollection(POINT(0 1),LINESTRING(0 0, 10 0, 10 10, 0 0))")) 1 # rows (not including the header row) 1 # columns Line_Locate_Point(GeomFromText("LINESTRING(0 1, 1 2)"), GeomFromText("GeometryCollection(POINT(0 1),LINESTRING(0 0, 10 0, 10 10, 0 0))")) (NULL)libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/covers2.testcase0000664000175000017500000000037312163502133023157 00000000000000Covers - non-geom2 :memory: #use in-memory database SELECT Covers(geom1,geom2) from (SELECT "hello" as geom2,GeomFromText("POLYGON((0 0, 2 0, 2 2, 0 2, 0 0))") as geom1) dummy; 1 # rows (not including the header row) 1 # columns Covers(geom1,geom2) -1libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/locatepoint1.testcase0000664000175000017500000000044312163502133024174 00000000000000locate point - basic line :memory: #use in-memory database SELECT Line_Locate_Point(GeomFromText("LINESTRING(0 0, 10 6)"), GeomFromText("POINT(5 3)")) 1 # rows (not including the header row) 1 # columns Line_Locate_Point(GeomFromText("LINESTRING(0 0, 10 6)"), GeomFromText("POINT(5 3)")) 0.5libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/linesubstring25.testcase0000664000175000017500000000042712163502133024633 00000000000000linesubstring - zero length 2d :memory: #use in-memory database SELECT AsText(Line_Substring(GeomFromText("LINESTRING(1 1, 1 1)"), 0, 1)) 1 # rows (not including the header row) 1 # columns AsText(Line_Substring(GeomFromText("LINESTRING(1 1, 1 1)"), 0, 1)) LINESTRING(1 1, 1 1) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/sharedpaths25.testcase0000664000175000017500000000072712163502133024254 00000000000000shared paths - multiline :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("MULTILINESTRING((5 0, 15 0),(5 0, 5 5))"),GeomFromText("MULTILINESTRING((0 0, 4 0, 6 0, 10 0),(11 0, 5 0),(5 0, 5 5))"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("MULTILINESTRING((5 0, 15 0),(5 0, 5 5))"),GeomFromText("MULTILINESTRING((0 0, 4 0, 6 0, 10 0),(11 0, 5 0),(5 0, 5 5))"))) MULTILINESTRING((5 5, 5 0, 6 0, 10 0, 11 0))libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/closestpoint5.testcase0000664000175000017500000000032312163502133024402 00000000000000Closest Point - text first geom :memory: #use in-memory database SELECT ClosestPoint("world", MakePoint(1, 2)); 1 # rows (not including the header row) 1 # columns ClosestPoint("world", MakePoint(1, 2)) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint13.testcase0000664000175000017500000000073712163502133027617 00000000000000interpolate equidistant points - basic lineZM :memory: #use in-memory database SELECT AsText(Line_Interpolate_Equidistant_Points(GeomFromText("LINESTRINGZM(0 0 4 2, 10 6 14 12)"), 2.5)) 1 # rows (not including the header row) 1 # columns AsText(Line_Interpolate_Equidistant_Points(GeomFromText("LINESTRINGZM(0 0 4 2, 10 6 14 12)"), 2.5)) MULTIPOINT ZM(2.143732 1.286239 6.143732 2.5, 4.287465 2.572479 8.287465 5, 6.431197 3.858718 10.431197 7.5, 8.574929 5.144958 12.574929 10) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/shortestline3.testcase0000664000175000017500000000037012163502133024377 00000000000000ShortestLine - zeroblob first arg :memory: #use in-memory database SELECT ShortestLine(zeroblob(100), GeomFromText("POINT(10 2)")) 1 # rows (not including the header row) 1 # columns ShortestLine(zeroblob(100), GeomFromText("POINT(10 2)")) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/linesubstring21.testcase0000664000175000017500000000057612163502133024634 00000000000000linesubstring - using both segments M :memory: #use in-memory database SELECT AsText(Line_Substring(GeomFromText("LINESTRINGM(0 0 0, 10 0 0, 10 10 0)"), 0.2, 0.8)) 1 # rows (not including the header row) 1 # columns AsText(Line_Substring(GeomFromText("LINESTRINGM(0 0 0, 10 0 0, 10 10 0)"), 0.2, 0.8)) LINESTRING M(4 0 0, 10 0 0, 10 6 0) # yeah, it would have been m = 0.0 anyway. libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/trianggrid23.testcase0000664000175000017500000000066312163502133024075 00000000000000TriangularGrid - valid - with Origin, edges_only :memory: #use in-memory database SELECT ST_Length(TriangularGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 1, GeomFromText('POINT(0.1 0.1)'))); 1 # rows (not including the header row) 1 # columns ST_Length(TriangularGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 1, GeomFromText('POINT(0.1 0.1)'))) 18.0 libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/hexgrid16.testcase0000664000175000017500000000063412163502133023375 00000000000000HexagonalGrid - Polygon geom - Polygon Origin :memory: #use in-memory database SELECT HexagonalGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, GeomFromText('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))')); 1 # rows (not including the header row) 1 # columns HexagonalGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, GeomFromText('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))')) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/linemerge5.testcase0000664000175000017500000000032212163502133023622 00000000000000linemerge - POINT :memory: #use in-memory database SELECT AsText(LineMerge(GeomFromText("POINT(3 3)"))) 1 # rows (not including the header row) 1 # columns AsText(LineMerge(GeomFromText("POINT(3 3)"))) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/sharedpaths22.testcase0000664000175000017500000000061612163502133024246 00000000000000shared paths - two multilines :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("MULTILINESTRING((0 0, 10 0),(12 0, 16 0))"),GeomFromText("LINESTRING(5 0, 15 0)"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("MULTILINESTRING((0 0, 10 0),(12 0, 16 0))"),GeomFromText("LINESTRING(5 0, 15 0)"))) MULTILINESTRING((5 0, 10 0), (12 0, 15 0))libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/locatepoint5.testcase0000664000175000017500000000050712163502133024201 00000000000000locate point - LINESTRING second arg :memory: #use in-memory database SELECT Line_Locate_Point(GeomFromText("LINESTRING(0 1, 1 2)"), GeomFromText("LINESTRING(10 0, 0 10)")) 1 # rows (not including the header row) 1 # columns Line_Locate_Point(GeomFromText("LINESTRING(0 1, 1 2)"), GeomFromText("LINESTRING(10 0, 0 10)")) (NULL)libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/closestpoint12.testcase0000664000175000017500000000047712163502133024472 00000000000000Closest Point - PointZ and line :memory: #use in-memory database SELECT AsText(ClosestPoint(GeomFromText("LINESTRING(0 0, 0 10)"), GeomFromText("POINTZ(4 6 4)"))); 1 # rows (not including the header row) 1 # columns AsText(ClosestPoint(GeomFromText("LINESTRING(0 0, 0 10)"), GeomFromText("POINTZ(4 6 4)"))) POINT(0 6) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/hausdorffdistance1.testcase0000664000175000017500000000050412163502133025345 00000000000000HausdorffDistance - parallel lines :memory: #use in-memory database SELECT HausdorffDistance(GeomFromText("LINESTRING(0 0, 10 0)"), GeomFromText("LINESTRING(0 2, 10 2)")) 1 # rows (not including the header row) 1 # columns HausdorffDistance(GeomFromText("LINESTRING(0 0, 10 0)"), GeomFromText("LINESTRING(0 2, 10 2)")) 2.0 libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/sharedpaths16.testcase0000664000175000017500000000065012163502133024247 00000000000000shared paths - two polygon :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))"),GeomFromText("POLYGON((5 0, 15 0, 15 10, 5 10, 5 0))"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))"),GeomFromText("POLYGON((5 0, 15 0, 15 10, 5 10, 5 0))"))) MULTILINESTRING((5 0, 10 0), (10 10, 5 10))libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/closestpoint14.testcase0000664000175000017500000000050312163502133024462 00000000000000Closest Point - LINE AND PointZ :memory: #use in-memory database SELECT AsText(ClosestPoint(GeomFromText("POINTZ(4 6 4)"), GeomFromText("LINESTRING(0 0, 0 10)"))); 1 # rows (not including the header row) 1 # columns AsText(ClosestPoint(GeomFromText("POINTZ(4 6 4)"), GeomFromText("LINESTRING(0 0, 0 10)"))) POINT Z(4 6 4) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/trianggrid17.testcase0000664000175000017500000000046212163502133024075 00000000000000TriangularGrid - Polygon geom - negative size :memory: #use in-memory database SELECT TriangularGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), -1.0); 1 # rows (not including the header row) 1 # columns TriangularGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), -1.0) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/distance_geogr11.testcase0000664000175000017500000000073312163502133024713 00000000000000Distance Long/Lat metric (text use_ellipsoid) :memory: #use in-memory database SELECT ST_Distance(GeomFromText('LINESTRING(11.1 42.1, 11.2 42.2, 11.2 43.3)'), GeomFromText('POLYGON((11.3 42.3, 11.4 42.3, 11.4 42.4, 11.3 42.4, 11.3 42.3))'), 'alpha'); 1 # rows (not including the header row) 1 # columns ST_Distance(GeomFromText('LINESTRING(11.1 42.1, 11.2 42.2, 11.2 43.3)'), GeomFromText('POLYGON((11.3 42.3, 11.4 42.3, 11.4 42.4, 11.3 42.4, 11.3 42.3))'), 'alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/hexgrid23.testcase0000664000175000017500000000055612163502133023376 00000000000000HexagonalGrid - valid - no Origin, edges_only :memory: #use in-memory database SELECT ST_Length(HexagonalGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 1)); 1 # rows (not including the header row) 1 # columns ST_Length(HexagonalGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 1)) 19.0 libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/shortestline2.testcase0000664000175000017500000000050412163502133024375 00000000000000ShortestLine - line and point :memory: #use in-memory database SELECT AsText(ShortestLine(GeomFromText("LINESTRING(0 0, 10 0)"), GeomFromText("POINT(10 2)"))) 1 # rows (not including the header row) 1 # columns AsText(ShortestLine(GeomFromText("LINESTRING(0 0, 10 0)"), GeomFromText("POINT(10 2)"))) LINESTRING(10 0, 10 2) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/linesubstring9.testcase0000664000175000017500000000043212163502133024551 00000000000000linesubstring - wrong type of limits 2 :memory: #use in-memory database SELECT AsText(Line_Substring(GeomFromText("LINESTRING(0 0, 10 0)"), 0, null)) 1 # rows (not including the header row) 1 # columns AsText(Line_Substring(GeomFromText("LINESTRING(0 0, 10 0)"), 0, null)) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/trianggrid6.testcase0000664000175000017500000000061612163502133024014 00000000000000TriangularGrid - Collection (Linestring - Polygon) geom :memory: #use in-memory database SELECT TriangularGrid(GeomFromText('GEOMETRYCOLLECTION(LINESTRING(1 1, 2 2), POLYGON((3 3, 3 4, 4 4, 4 3, 3 3)))', 4326), 1.0); 1 # rows (not including the header row) 1 # columns TriangularGrid(GeomFromText('GEOMETRYCOLLECTION(LINESTRING(1 1, 2 2), POLYGON((3 3, 3 4, 4 4, 4 3, 3 3)))', 4326), 1.0) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/trianggrid21.testcase0000664000175000017500000000171412163502133024071 00000000000000TriangularGrid - valid - with Origin :memory: #use in-memory database SELECT AsText(TriangularGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 0, GeomFromText('POINT(0.1 0.1)'))); 1 # rows (not including the header row) 1 # columns AsText(TriangularGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 0, GeomFromText('POINT(0.1 0.1)'))) MULTIPOLYGON(((0.1 0.1, 1.1 0.1, 0.6 0.966025, 0.1 0.1)), ((0.6 0.966025, 1.1 0.1, 1.6 0.966025, 0.6 0.966025)), ((1.1 0.1, 2.1 0.1, 1.6 0.966025, 1.1 0.1)), ((1.6 0.966025, 2.1 0.1, 2.6 0.966025, 1.6 0.966025)), ((2.1 0.1, 3.1 0.1, 2.6 0.966025, 2.1 0.1)), ((-0.4 0.966025, 0.6 0.966025, 0.1 1.832051, -0.4 0.966025)), ((0.1 1.832051, 0.6 0.966025, 1.1 1.832051, 0.1 1.832051)), ((0.6 0.966025, 1.6 0.966025, 1.1 1.832051, 0.6 0.966025)), ((1.1 1.832051, 1.6 0.966025, 2.1 1.832051, 1.1 1.832051)), ((1.6 0.966025, 2.6 0.966025, 2.1 1.832051, 1.6 0.966025))) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/closestpoint8.testcase0000664000175000017500000000045712163502133024415 00000000000000Closest Point - two pointMs :memory: #use in-memory database SELECT AsText(ClosestPoint(GeomFromText("POINTM(1 2 4)"), GeomFromText("POINTM(4 6 5)"))); 1 # rows (not including the header row) 1 # columns AsText(ClosestPoint(GeomFromText("POINTM(1 2 4)"), GeomFromText("POINTM(4 6 5)"))) POINT M(1 2 0) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/linesubstring22.testcase0000664000175000017500000000062412163502133024627 00000000000000linesubstring - using both segments ZM :memory: #use in-memory database SELECT AsText(Line_Substring(GeomFromText("LINESTRINGZM(0 0 1 0, 10 0 1 0, 10 10 1 0)"), 0.2, 0.8)) 1 # rows (not including the header row) 1 # columns AsText(Line_Substring(GeomFromText("LINESTRINGZM(0 0 1 0, 10 0 1 0, 10 10 1 0)"), 0.2, 0.8)) LINESTRING ZM(4 0 1 0, 10 0 1 0, 10 6 1 0) # yeah, it would have been m = 0.0 anyway. libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/trianggrid11.testcase0000664000175000017500000000047612163502133024074 00000000000000TriangularGrid - Polygon geom - double edges_only :memory: #use in-memory database SELECT TriangularGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 4.5); 1 # rows (not including the header row) 1 # columns TriangularGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 4.5) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/closestpoint1.testcase0000664000175000017500000000036212163502133024401 00000000000000Closest Point - two points :memory: #use in-memory database SELECT AsText(ClosestPoint(MakePoint(1, 2), MakePoint(4, 6))); 1 # rows (not including the header row) 1 # columns AsText(ClosestPoint(MakePoint(1, 2), MakePoint(4, 6))) POINT(1 2) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/distance_geogr4.testcase0000664000175000017500000000051112163502133024627 00000000000000Distance Long/Lat metric (great circle) - two 3D-M points :memory: #use in-memory database SELECT ST_Distance(MakePointZM(11.1, 42.1, 0.1, 1), MakePointZM(11.2, 42.2, 0.2, 2), 0); 1 # rows (not including the header row) 1 # columns ST_Distance(MakePointZM(11.1, 42.1, 0.1, 1), MakePointZM(11.2, 42.2, 0.2, 2), 0) 13842.154368:6 libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/singlesidedbuffer15.testcase0000664000175000017500000000056112163502133025425 00000000000000singlesidedbuffer - LINESTRINGZ -X, float radius, right side :memory: #use in-memory database SELECT AsText(SingleSidedBuffer(GeomFromText("LINESTRINGZ(0 20 1, 0 0 2)"), 3.5, 0)) 1 # rows (not including the header row) 1 # columns AsText(SingleSidedBuffer(GeomFromText("LINESTRINGZ(0 20 1, 0 0 2)"), 3.5, 0)) POLYGON Z((0 20 1, 0 0 2, -3.5 0 nan, -3.5 20 nan, 0 20 1)) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/sharedpaths24.testcase0000664000175000017500000000063012163502133024244 00000000000000shared paths - multiline :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("LINESTRING(5 0, 15 0)"),GeomFromText("MULTILINESTRING((0 0, 4 0, 6 0, 10 0),(11 0, 5 0))"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("LINESTRING(5 0, 15 0)"),GeomFromText("MULTILINESTRING((0 0, 4 0, 6 0, 10 0),(11 0, 5 0))"))) MULTILINESTRING((5 0, 6 0, 10 0, 11 0))libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/snap5.testcase0000664000175000017500000000042012163502133022613 00000000000000Snap - non blob first arg :memory: #use in-memory database SELECT Snap("hello", GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0, 0 0)"), 2) 1 # rows (not including the header row) 1 # columns Snap("hello", GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0, 0 0)"), 2) (NULL)libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/offsetcurve1.testcase0000664000175000017500000000044112163502133024204 00000000000000OffsetCurve - non-int side :memory: #use in-memory database SELECT AsText(OffsetCurve(GeomFromText('LINESTRING(0 0, 0 1, 4 1, 4 0)'), 1, "hello")); 1 # rows (not including the header row) 1 # columns AsText(OffsetCurve(GeomFromText('LINESTRING(0 0, 0 1, 4 1, 4 0)'), 1, "hello")) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/hexgrid4.testcase0000664000175000017500000000040412163502133023305 00000000000000HexagonalGrid - Linestring geom :memory: #use in-memory database SELECT HexagonalGrid(GeomFromText('LINESTRING(1 1, 2 2)', 4326), 1.0); 1 # rows (not including the header row) 1 # columns HexagonalGrid(GeomFromText('LINESTRING(1 1, 2 2)', 4326), 1.0) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/interpolatepoint12.testcase0000664000175000017500000000045412163502133025337 00000000000000interpolate point - basic lineZ :memory: #use in-memory database SELECT AsText(Line_Interpolate_Point(GeomFromText("LINESTRINGZ(0 0 4, 10 6 14)"), 0.5)) 1 # rows (not including the header row) 1 # columns AsText(Line_Interpolate_Point(GeomFromText("LINESTRINGZ(0 0 4, 10 6 14)"), 0.5)) POINT Z(5 3 9)libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/linesubstring5.testcase0000664000175000017500000000036512163502133024552 00000000000000linesubstring - bad geom :memory: #use in-memory database SELECT AsText(Line_Substring(GeomFromText("POINT(0 0"), 0.2, 0.6)) 1 # rows (not including the header row) 1 # columns AsText(Line_Substring(GeomFromText("POINT(0 0"), 0.2, 0.6)) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/sharedpaths31.testcase0000664000175000017500000000074012163502133024244 00000000000000shared paths - multiline, reverse :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("MULTILINESTRING((5 0, 15 0),(5 0, 5 5))"),GeomFromText("MULTILINESTRING((0 0, 4 0, 6 0, 10 0),(5 0, 11 0),(5 0, 5 5))"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("MULTILINESTRING((5 0, 15 0),(5 0, 5 5))"),GeomFromText("MULTILINESTRING((0 0, 4 0, 6 0, 10 0),(5 0, 11 0),(5 0, 5 5))"))) MULTILINESTRING((5 5, 5 0, 6 0, 10 0, 11 0))libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/interpolatepoint1.testcase0000664000175000017500000000043312163502133025252 00000000000000interpolate point - basic line :memory: #use in-memory database SELECT AsText(Line_Interpolate_Point(GeomFromText("LINESTRING(0 0, 10 6)"), 0.5)) 1 # rows (not including the header row) 1 # columns AsText(Line_Interpolate_Point(GeomFromText("LINESTRING(0 0, 10 6)"), 0.5)) POINT(5 3)libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/coveredby2.testcase0000664000175000017500000000040412163502133023633 00000000000000CoveredBy - non-geom2 :memory: #use in-memory database SELECT CoveredBy(geom1,geom2) from (SELECT "hello" as geom2,GeomFromText("POLYGON((0 0, 2 0, 2 2, 0 2, 0 0))") as geom1) dummy; 1 # rows (not including the header row) 1 # columns CoveredBy(geom1,geom2) -1libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/closestpoint15.testcase0000664000175000017500000000060312163502133024464 00000000000000Closest Point - toxic geom :memory: #use in-memory database SELECT AsText(ClosestPoint(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"), MakePoint(130, -35))) 1 # rows (not including the header row) 1 # columns AsText(ClosestPoint(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"), MakePoint(130, -35))) POINT(135.2 -34.5) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/trianggrid14.testcase0000664000175000017500000000052212163502133024067 00000000000000TriangularGrid - Polygon geom - zeroblob origin :memory: #use in-memory database SELECT TriangularGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, zeroblob(4)); 1 # rows (not including the header row) 1 # columns TriangularGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/sharedpaths11.testcase0000664000175000017500000000060712163502133024244 00000000000000shared paths - two lineZM :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("LINESTRINGZM(0 0 4 1, 10 0 4 1)"),GeomFromText("LINESTRINGZM(5 0 4 1, 15 0 4 1)"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("LINESTRINGZM(0 0 4 1, 10 0 4 1)"),GeomFromText("LINESTRINGZM(5 0 4 1, 15 0 4 1)"))) MULTILINESTRING ZM((5 0 4 0, 10 0 4 0))libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/sharedpaths5.testcase0000664000175000017500000000036012163502133024163 00000000000000shared paths - non-blob first arg :memory: #use in-memory database SELECT SharedPaths(1, GeomFromText("LINESTRING(5 0, 15 0)")) 1 # rows (not including the header row) 1 # columns SharedPaths(1, GeomFromText("LINESTRING(5 0, 15 0)")) (NULL)libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/offsetcurve7.testcase0000664000175000017500000000031612163502133024213 00000000000000OffsetCurve - zeroblob :memory: #use in-memory database SELECT AsText(OffsetCurve(zeroblob(40), 1, 0)); 1 # rows (not including the header row) 1 # columns AsText(OffsetCurve(zeroblob(40), 1, 0)) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/closestpoint20.testcase0000664000175000017500000000101112163502133024452 00000000000000Closest Point - polygonZM with interior and Point :memory: #use in-memory database SELECT AsText(ClosestPoint(GeomFromText("POINTZM(4 6 1 3)"), GeomFromText("POLYGONZM((0 0 1 3, 10 0 2 3, 10 10 3 3, 0 10 2 3, 0 0 1 3),( 1 1 4 1, 3 1 5 1, 3 3 6 1, 1 3 5 2, 1 1 4 1))"))) 1 # rows (not including the header row) 1 # columns AsText(ClosestPoint(GeomFromText("POINTZM(4 6 1 3)"), GeomFromText("POLYGONZM((0 0 1 3, 10 0 2 3, 10 10 3 3, 0 10 2 3, 0 0 1 3),( 1 1 4 1, 3 1 5 1, 3 3 6 1, 1 3 5 2, 1 1 4 1))"))) POINT ZM(4 6 1 0) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/sharedpaths2.testcase0000664000175000017500000000042612163502133024163 00000000000000shared paths - zeroblob first arg :memory: #use in-memory database SELECT AsText(SharedPaths(zeroblob(100),GeomFromText("LINESTRING(5 0, 15 0)"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(zeroblob(100),GeomFromText("LINESTRING(5 0, 15 0)"))) (NULL)libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint6.testcase0000664000175000017500000000037512163502133027537 00000000000000interpolate equidistant points - bad blob :memory: #use in-memory database SELECT Line_Interpolate_Equidistant_Points(zeroblob(100), 0.5) 1 # rows (not including the header row) 1 # columns Line_Interpolate_Equidistant_Points(zeroblob(100), 0.5) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/offsetcurve4.testcase0000664000175000017500000000042412163502133024210 00000000000000OffsetCurve :memory: #use in-memory database SELECT AsText(OffsetCurve(GeomFromText('LINESTRING(0 0, 0 1, 4 1, 4 0)'), 1, 0)); 1 # rows (not including the header row) 1 # columns AsText(OffsetCurve(GeomFromText('LINESTRING(0 0, 0 1, 4 1, 4 0)'), 1, 0)) LINESTRING(3 0, 1 0) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/linesnodes6.testcase0000664000175000017500000000063512163502133024026 00000000000000LinesCutAtNodes - line, co-incident nodes :memory: #use in-memory database SELECT AsText(LinesCutAtNodes(GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0)"),GeomFromText("MULTIPOINT(0 10, 0 10)"))) 1 # rows (not including the header row) 1 # columns AsText(LinesCutAtNodes(GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0)"),GeomFromText("MULTIPOINT(0 10, 0 10)"))) MULTILINESTRING((0 0, 0 10), (0 10, 10 10, 10 0))libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/closestpoint22.testcase0000664000175000017500000000047612163502133024472 00000000000000Closest Point - Point and lineZM :memory: #use in-memory database SELECT AsText(ClosestPoint(GeomFromText("LINESTRINGZM(0 0 0 0, 0 10 5 2)"), MakePoint(4, 6))) 1 # rows (not including the header row) 1 # columns AsText(ClosestPoint(GeomFromText("LINESTRINGZM(0 0 0 0, 0 10 5 2)"), MakePoint(4, 6))) POINT ZM(0 6 3 0) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/snap1.testcase0000664000175000017500000000051012163502133022607 00000000000000Snap, LINESTRING, point :memory: #use in-memory database SELECT AsText(Snap(GeomFromText("POINT(1 1)"), GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0, 0 0)"), 2)) 1 # rows (not including the header row) 1 # columns AsText(Snap(GeomFromText("POINT(1 1)"), GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0, 0 0)"), 2)) POINT(0 0)libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/sharedpaths15.testcase0000664000175000017500000000075312163502133024252 00000000000000shared paths - two polygon, internal ring :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("POLYGON((0 0, 10 0, 10 10, 0 10, 0 0),(1 1, 3 1, 3 3, 1 3, 1 1))"),GeomFromText("POLYGON((5 0, 15 0, 15 10, 5 10, 5 0))"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("POLYGON((0 0, 10 0, 10 10, 0 10, 0 0),(1 1, 3 1, 3 3, 1 3, 1 1))"),GeomFromText("POLYGON((5 0, 15 0, 15 10, 5 10, 5 0))"))) MULTILINESTRING((5 0, 10 0), (10 10, 5 10))libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/linesubstring17.testcase0000664000175000017500000000050312163502133024627 00000000000000linesubstring - basic vary ZM :memory: #use in-memory database SELECT AsText(Line_Substring(GeomFromText("LINESTRINGZM(0 0 10 5, 10 0 5 0)"), 0.2, 0.7)) 1 # rows (not including the header row) 1 # columns AsText(Line_Substring(GeomFromText("LINESTRINGZM(0 0 10 5, 10 0 5 0)"), 0.2, 0.7)) LINESTRING ZM(2 0 9 0, 7 0 6.5 0) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/createtopo4.testcase0000664000175000017500000000033512163502133024023 00000000000000CreateTopology - 3 arguments, 3D :memory: #use in-memory database SELECT CreateTopologyTables("my_prefix", 4326, "XYZ"); 1 # rows (not including the header row) 1 # columns CreateTopologyTables("my_prefix", 4326, "XYZ") 1libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/locatepoint7.testcase0000664000175000017500000000064112163502133024202 00000000000000locate point - GeometryCollection second arg :memory: #use in-memory database SELECT Line_Locate_Point(GeomFromText("LINESTRING(0 1, 1 2)"), GeomFromText("GeometryCollection(POINT(0 1),POLYGON((0 0, 10 0, 10 10, 0 0)))")) 1 # rows (not including the header row) 1 # columns Line_Locate_Point(GeomFromText("LINESTRING(0 1, 1 2)"), GeomFromText("GeometryCollection(POINT(0 1),POLYGON((0 0, 10 0, 10 10, 0 0)))")) (NULL)libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/locatepoint12.testcase0000664000175000017500000000042212163502133024253 00000000000000locate point - bad blob second arg :memory: #use in-memory database SELECT Line_Locate_Point(GeomFromText("LINESTRING(0 1, 1 1)"), zeroblob(47)) 1 # rows (not including the header row) 1 # columns Line_Locate_Point(GeomFromText("LINESTRING(0 1, 1 1)"), zeroblob(47)) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/offsetcurve10.testcase0000664000175000017500000000050212163502133024262 00000000000000OffsetCurve - multilinestring, 1 linestring :memory: #use in-memory database SELECT AsText(OffsetCurve(GeomFromText('MULTILINESTRING((0 0, 0 1, 4 1, 4 0))'), 1, 0)); 1 # rows (not including the header row) 1 # columns AsText(OffsetCurve(GeomFromText('MULTILINESTRING((0 0, 0 1, 4 1, 4 0))'), 1, 0)) LINESTRING(3 0, 1 0) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/singlesidedbuffer12.testcase0000664000175000017500000000050312163502133025416 00000000000000singlesidedbuffer - POLYGON, int radius, right side :memory: #use in-memory database SELECT AsText(SingleSidedBuffer(GeomFromText("POLYGON((0 0, 0 20, 1 20, 1 0, 0 0))"), 3, 0)) 1 # rows (not including the header row) 1 # columns AsText(SingleSidedBuffer(GeomFromText("POLYGON((0 0, 0 20, 1 20, 1 0, 0 0))"), 3, 0)) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/squaregrid6.testcase0000664000175000017500000000060212163502133024023 00000000000000SquareGrid - Collection (Linestring - Polygon) geom :memory: #use in-memory database SELECT SquareGrid(GeomFromText('GEOMETRYCOLLECTION(LINESTRING(1 1, 2 2), POLYGON((3 3, 3 4, 4 4, 4 3, 3 3)))', 4326), 1.0); 1 # rows (not including the header row) 1 # columns SquareGrid(GeomFromText('GEOMETRYCOLLECTION(LINESTRING(1 1, 2 2), POLYGON((3 3, 3 4, 4 4, 4 3, 3 3)))', 4326), 1.0) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/trianggrid3.testcase0000664000175000017500000000033012163502133024002 00000000000000TriangularGrid - Point geom :memory: #use in-memory database SELECT TriangularGrid(MakePoint(1, 1, 4326), 1.0); 1 # rows (not including the header row) 1 # columns TriangularGrid(MakePoint(1, 1, 4326), 1.0) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/singlesidedbuffer13.testcase0000664000175000017500000000050312163502133025417 00000000000000singlesidedbuffer - POLYGON, int radius, right side :memory: #use in-memory database SELECT AsText(SingleSidedBuffer(GeomFromText("POLYGON((0 0, 0 20, 1 20, 1 0, 0 0))"), 3, 0)) 1 # rows (not including the header row) 1 # columns AsText(SingleSidedBuffer(GeomFromText("POLYGON((0 0, 0 20, 1 20, 1 0, 0 0))"), 3, 0)) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/trianggrid13.testcase0000664000175000017500000000050012163502133024062 00000000000000TriangularGrid - Polygon geom - NULL origin :memory: #use in-memory database SELECT TriangularGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, NULL); 1 # rows (not including the header row) 1 # columns TriangularGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/unaryunion7.testcase0000664000175000017500000000025312163502133024067 00000000000000unaryunion - bad blob :memory: #use in-memory database SELECT UnaryUnion(zeroblob(40)) 1 # rows (not including the header row) 1 # columns UnaryUnion(zeroblob(40)) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/singlesidedbuffer11.testcase0000664000175000017500000000051612163502133025421 00000000000000singlesidedbuffer - closed LINESTRING, int radius, left side :memory: #use in-memory database SELECT AsText(SingleSidedBuffer(GeomFromText("LINESTRING(0 0, 0 20, 1 20, 1 0, 0 0)"), 3, 1)) 1 # rows (not including the header row) 1 # columns AsText(SingleSidedBuffer(GeomFromText("LINESTRING(0 0, 0 20, 1 20, 1 0, 0 0)"), 3, 1)) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint11.testcase0000664000175000017500000000064012163502133027606 00000000000000interpolate equidistant points - wrong geometry type :memory: #use in-memory database SELECT Line_Interpolate_Equidistant_Points(GeomFromText("GeometryCollection(LINESTRING(0 1, 1 2),POLYGON((0 0, 10 0, 10 10, 0 0)))"), 0.6) 1 # rows (not including the header row) 1 # columns Line_Interpolate_Equidistant_Points(GeomFromText("GeometryCollection(LINESTRING(0 1, 1 2),POLYGON((0 0, 10 0, 10 10, 0 0)))"), 0.6) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/hausdorffdistance2.testcase0000664000175000017500000000043312163502133025347 00000000000000HausdorffDistance - bad blob first arg :memory: #use in-memory database SELECT HausdorffDistance(zeroblob(100), GeomFromText("LINESTRING(0 2, 10 2)")) 1 # rows (not including the header row) 1 # columns HausdorffDistance(zeroblob(100), GeomFromText("LINESTRING(0 2, 10 2)")) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/singlesidedbuffer14.testcase0000664000175000017500000000054612163502133025427 00000000000000singlesidedbuffer - toxic blob :memory: #use in-memory database SELECT AsText(SingleSidedBuffer(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"), 3, 0)) 1 # rows (not including the header row) 1 # columns AsText(SingleSidedBuffer(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"), 3, 0)) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/closestpoint11.testcase0000664000175000017500000000046112163502133024462 00000000000000Closest Point - Point and lineZ :memory: #use in-memory database SELECT AsText(ClosestPoint(GeomFromText("LINESTRINGZ(0 0 0, 0 10 5)"), MakePoint(4, 6))); 1 # rows (not including the header row) 1 # columns AsText(ClosestPoint(GeomFromText("LINESTRINGZ(0 0 0, 0 10 5)"), MakePoint(4, 6))) POINT Z(0 6 3) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/distance_geogr12.testcase0000664000175000017500000000072512163502133024715 00000000000000Distance Long/Lat metric (NULL use_ellipsoid) :memory: #use in-memory database SELECT ST_Distance(GeomFromText('LINESTRING(11.1 42.1, 11.2 42.2, 11.2 43.3)'), GeomFromText('POLYGON((11.3 42.3, 11.4 42.3, 11.4 42.4, 11.3 42.4, 11.3 42.3))'), NULL); 1 # rows (not including the header row) 1 # columns ST_Distance(GeomFromText('LINESTRING(11.1 42.1, 11.2 42.2, 11.2 43.3)'), GeomFromText('POLYGON((11.3 42.3, 11.4 42.3, 11.4 42.4, 11.3 42.4, 11.3 42.3))'), NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/closestpoint19.testcase0000664000175000017500000000072512163502133024475 00000000000000Closest Point - polygonM with interior and Point :memory: #use in-memory database SELECT AsText(ClosestPoint(GeomFromText("POINTM(4 6 1)"), GeomFromText("POLYGONM((0 0 1, 10 0 2, 10 10 3, 0 10 2, 0 0 1),( 1 1 4, 3 1 5, 3 3 6, 1 3 5, 1 1 4))"))) 1 # rows (not including the header row) 1 # columns AsText(ClosestPoint(GeomFromText("POINTM(4 6 1)"), GeomFromText("POLYGONM((0 0 1, 10 0 2, 10 10 3, 0 10 2, 0 0 1),( 1 1 4, 3 1 5, 3 3 6, 1 3 5, 1 1 4))"))) POINT M(4 6 0) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/linesubstring15.testcase0000664000175000017500000000046112163502133024630 00000000000000linesubstring - basic vary Z :memory: #use in-memory database SELECT AsText(Line_Substring(GeomFromText("LINESTRINGZ(0 0 0, 10 0 5)"), 0.2, 0.7)) 1 # rows (not including the header row) 1 # columns AsText(Line_Substring(GeomFromText("LINESTRINGZ(0 0 0, 10 0 5)"), 0.2, 0.7)) LINESTRING Z(2 0 1, 7 0 3.5) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/distance_geogr3.testcase0000664000175000017500000000047112163502133024633 00000000000000Distance Long/Lat metric (great circle) - two 2D-M points :memory: #use in-memory database SELECT ST_Distance(MakePointM(11.1, 42.1, 0.1), MakePointM(11.2, 42.2, 0.2), 0); 1 # rows (not including the header row) 1 # columns ST_Distance(MakePointM(11.1, 42.1, 0.1), MakePointM(11.2, 42.2, 0.2), 0) 13842.154368:6 libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/closestpoint16.testcase0000664000175000017500000000066412163502133024474 00000000000000Closest Point - toxic geom + line :memory: #use in-memory database SELECT AsText(ClosestPoint(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"), GeomFromText("LINESTRING(130 -35, 0 0)"))) 1 # rows (not including the header row) 1 # columns AsText(ClosestPoint(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"), GeomFromText("LINESTRING(130 -35, 0 0)"))) POINT(135.2 -34.5) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/hexgrid12.testcase0000664000175000017500000000051112163502133023363 00000000000000HexagonalGrid - Polygon geom - BLOB edges_only :memory: #use in-memory database SELECT HexagonalGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, zeroblob(4)); 1 # rows (not including the header row) 1 # columns HexagonalGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/squaregrid17.testcase0000664000175000017500000000044612163502133024113 00000000000000SquareGrid - Polygon geom - negative size :memory: #use in-memory database SELECT SquareGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), -1.0); 1 # rows (not including the header row) 1 # columns SquareGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), -1.0) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/snap9.testcase0000664000175000017500000000053712163502133022630 00000000000000Snap, LINESTRING, pointM :memory: #use in-memory database SELECT AsText(Snap(GeomFromText("POINTM(0.1 0.2 4)"), GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0, 0 0)"), 0.4)) 1 # rows (not including the header row) 1 # columns AsText(Snap(GeomFromText("POINTM(0.1 0.2 4)"), GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0, 0 0)"), 0.4)) POINT M(0 0 0)libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/linesubstring10.testcase0000664000175000017500000000053312163502133024623 00000000000000linesubstring - geometry collection - line :memory: #use in-memory database SELECT AsText(Line_Substring(GeomFromText("GeometryCollection(LINESTRING(0 0, 1 2))"), 0.2, 0.6)) 1 # rows (not including the header row) 1 # columns AsText(Line_Substring(GeomFromText("GeometryCollection(LINESTRING(0 0, 1 2))"), 0.2, 0.6)) LINESTRING(0.2 0.4, 0.6 1.2) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/createtopo13.testcase0000664000175000017500000000035012163502133024100 00000000000000CreateTopology - 3 arguments, quote in prefix :memory: #use in-memory database SELECT CreateTopologyTables("hello'_world", 4326, 3); 1 # rows (not including the header row) 1 # columns CreateTopologyTables("hello'_world", 4326, 3) 1libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/trianggrid22.testcase0000664000175000017500000000056412163502133024074 00000000000000TriangularGrid - valid - no Origin, edges_only :memory: #use in-memory database SELECT ST_Length(TriangularGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 1)); 1 # rows (not including the header row) 1 # columns ST_Length(TriangularGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 1)) 18.0 libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/unaryunion2.testcase0000664000175000017500000000044412163502133024064 00000000000000unaryunion - points :memory: #use in-memory database SELECT AsText(UnaryUnion(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2), POINT(2 3))"))) 1 # rows (not including the header row) 1 # columns AsText(UnaryUnion(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2), POINT(2 3))"))); MULTIPOINT(1 2, 2 3) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/interpolatepoint5.testcase0000664000175000017500000000045212163502133025257 00000000000000interpolate point - basic line, out of range :memory: #use in-memory database SELECT AsText(Line_Interpolate_Point(GeomFromText("LINESTRING(0 0, 10 6)"), 1.6)) 1 # rows (not including the header row) 1 # columns AsText(Line_Interpolate_Point(GeomFromText("LINESTRING(0 0, 10 6)"), 1.6)) POINT(10 6)libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/locatepoint3.testcase0000664000175000017500000000042512163502133024176 00000000000000locate point - POINT first arg :memory: #use in-memory database SELECT Line_Locate_Point(GeomFromText("POINT(0 0)"), GeomFromText("POINT(5 3)")) 1 # rows (not including the header row) 1 # columns Line_Locate_Point(GeomFromText("POINT(0 0)"), GeomFromText("POINT(5 3)")) (NULL)libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/interpolatepoint13.testcase0000664000175000017500000000047412163502133025342 00000000000000interpolate point - basic lineZM :memory: #use in-memory database SELECT AsText(Line_Interpolate_Point(GeomFromText("LINESTRINGZM(0 0 4 2, 10 6 14 12)"), 0.5)) 1 # rows (not including the header row) 1 # columns AsText(Line_Interpolate_Point(GeomFromText("LINESTRINGZM(0 0 4 2, 10 6 14 12)"), 0.5)) POINT ZM(5 3 9 0)libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/unaryunion1.testcase0000664000175000017500000000033112163502133024056 00000000000000unaryunion - point :memory: #use in-memory database SELECT AsText(UnaryUnion(GeomFromText("POINT(1 2)"))); 1 # rows (not including the header row) 1 # columns AsText(UnaryUnion(GeomFromText("POINT(1 2)"))) POINT(1 2) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/hexgrid13.testcase0000664000175000017500000000047512163502133023375 00000000000000HexagonalGrid - Polygon geom - NULL origin :memory: #use in-memory database SELECT HexagonalGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, NULL); 1 # rows (not including the header row) 1 # columns HexagonalGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/linesnodes14.testcase0000664000175000017500000000054612163502133024106 00000000000000LinesCutAtNodes - point first arg :memory: #use in-memory database SELECT LinesCutAtNodes(GeomFromText("MULTIPOINT(0 0, 0 10, 10 10, 10 0, 0 0)"),GeomFromText("MULTIPOINT(0 10, 10 10)")) 1 # rows (not including the header row) 1 # columns LinesCutAtNodes(GeomFromText("MULTIPOINT(0 0, 0 10, 10 10, 10 0, 0 0)"),GeomFromText("MULTIPOINT(0 10, 10 10)")) (NULL)libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/hausdorffdistance4.testcase0000664000175000017500000000043212163502133025350 00000000000000HausdorffDistance - bad blob second arg :memory: #use in-memory database SELECT HausdorffDistance(GeomFromText("LINESTRING(0 0, 10 0)"), zeroblob(40)) 1 # rows (not including the header row) 1 # columns HausdorffDistance(GeomFromText("LINESTRING(0 0, 10 0)"), zeroblob(40)) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/closestpoint9.testcase0000664000175000017500000000047712163502133024420 00000000000000Closest Point - two pointZMs :memory: #use in-memory database SELECT AsText(ClosestPoint(GeomFromText("POINTZM(1 2 0 4)"), GeomFromText("POINTZM(4 6 1 5)"))); 1 # rows (not including the header row) 1 # columns AsText(ClosestPoint(GeomFromText("POINTZM(1 2 0 4)"), GeomFromText("POINTZM(4 6 1 5)"))) POINT ZM(1 2 0 0) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/snap8.testcase0000664000175000017500000000052512163502133022624 00000000000000Snap, mismatched geom dims :memory: #use in-memory database SELECT AsText(Snap(GeomFromText("POINTZ(1 1 4)"), GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0, 0 0)"), 2)) 1 # rows (not including the header row) 1 # columns AsText(Snap(GeomFromText("POINTZ(1 1 4)"), GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0, 0 0)"), 2)) POINT Z(0 0 0)libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/trianggrid20.testcase0000664000175000017500000000151112163502133024063 00000000000000TriangularGrid - valid - no Origin :memory: #use in-memory database SELECT AsText(TriangularGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0)); 1 # rows (not including the header row) 1 # columns AsText(TriangularGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0)) MULTIPOLYGON(((0 0, 1 0, 0.5 0.866025, 0 0)), ((0.5 0.866025, 1 0, 1.5 0.866025, 0.5 0.866025)), ((1 0, 2 0, 1.5 0.866025, 1 0)), ((1.5 0.866025, 2 0, 2.5 0.866025, 1.5 0.866025)), ((2 0, 3 0, 2.5 0.866025, 2 0)), ((-0.5 0.866025, 0.5 0.866025, 0 1.732051, -0.5 0.866025)), ((0 1.732051, 0.5 0.866025, 1 1.732051, 0 1.732051)), ((0.5 0.866025, 1.5 0.866025, 1 1.732051, 0.5 0.866025)), ((1 1.732051, 1.5 0.866025, 2 1.732051, 1 1.732051)), ((1.5 0.866025, 2.5 0.866025, 2 1.732051, 1.5 0.866025))) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/covers_covered5.testcase0000664000175000017500000000042012163502133024662 00000000000000Covers - zero blob second arg :memory: #use in-memory database SELECT Covers(geom2,geom1) from (SELECT zeroblob(48) as geom1,GeomFromText("POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))") as geom2) dummy; 1 # rows (not including the header row) 1 # columns Covers(geom2,geom1) -1 libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/snap7.testcase0000664000175000017500000000035512163502133022624 00000000000000Snap - bad blob second arg :memory: #use in-memory database SELECT Snap(GeomFromText("POINT(0.1 0.2)"), zeroblob(87), 0.4) 1 # rows (not including the header row) 1 # columns Snap(GeomFromText("POINT(0.1 0.2)"), zeroblob(87), 0.4) (NULL)libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/linesnodes7.testcase0000664000175000017500000000055112163502133024024 00000000000000LinesCutAtNodes - line, wrong geometry :memory: #use in-memory database SELECT AsText(LinesCutAtNodes(GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0)"),GeomFromText("MULTIPOINTZ(0 10 0)"))) 1 # rows (not including the header row) 1 # columns AsText(LinesCutAtNodes(GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0)"),GeomFromText("MULTIPOINTZ(0 10 0)"))) (NULL)libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint8.testcase0000664000175000017500000000046712163502133027543 00000000000000interpolate equidistant points - non-number :memory: #use in-memory database SELECT Line_Interpolate_Equidistant_Points(GeomFromText("LINESTRING(0 0, 10 6)"), "hello") 1 # rows (not including the header row) 1 # columns Line_Interpolate_Equidistant_Points(GeomFromText("LINESTRING(0 0, 10 6)"), "hello") (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/locatepoint2.testcase0000664000175000017500000000050312163502133024172 00000000000000locate point - POLYGON first arg :memory: #use in-memory database SELECT Line_Locate_Point(GeomFromText("POLYGON((0 0, 10 10, 0 10, 0 0))"), GeomFromText("POINT(5 3)")) 1 # rows (not including the header row) 1 # columns Line_Locate_Point(GeomFromText("POLYGON((0 0, 10 10, 0 10, 0 0))"), GeomFromText("POINT(5 3)")) (NULL)libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/closestpoint2.testcase0000664000175000017500000000034512163502133024403 00000000000000Closest Point - coincident points :memory: #use in-memory database SELECT ClosestPoint(MakePoint(1, 2), MakePoint(1, 2)); 1 # rows (not including the header row) 1 # columns ClosestPoint(MakePoint(1, 2), MakePoint(1, 2)) (NULL) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/createtopo12.testcase0000664000175000017500000000034712163502133024105 00000000000000CreateTopology - 3 arguments, spaces in prefix :memory: #use in-memory database SELECT CreateTopologyTables("hello world", 4326, 3); 1 # rows (not including the header row) 1 # columns CreateTopologyTables("hello world", 4326, 3) 1libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/singlesidedbuffer16.testcase0000664000175000017500000000055612163502133025432 00000000000000singlesidedbuffer - LINESTRINGM -X, float radius, right side :memory: #use in-memory database SELECT AsText(SingleSidedBuffer(GeomFromText("LINESTRINGM(0 20 1, 0 0 2)"), 3.5, 0)); 1 # rows (not including the header row) 1 # columns AsText(SingleSidedBuffer(GeomFromText("LINESTRINGM(0 20 1, 0 0 2)"), 3.5, 0)) POLYGON M((0 20 0, 0 0 0, -3.5 0 0, -3.5 20 0, 0 20 0)) libspatialite-4.1.1/test/sql_stmt_geosadvanced_tests/linemerge9.testcase0000664000175000017500000000050412163502133023630 00000000000000linemerge - toxic blob :memory: #use in-memory database SELECT AsText(LineMerge(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"))) 1 # rows (not including the header row) 1 # columns AsText(LineMerge(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"))) (NULL) libspatialite-4.1.1/test/check_add_rt_metadata_triggers.c0000664000175000017500000004123312163502133020550 00000000000000/* check_add_rt_metadata_triggers.c - Test case for GeoPackage Extensions Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Brad Hards Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #include "test_helpers.h" int main (int argc UNUSED, char *argv[] UNUSED) { sqlite3 *db_handle = NULL; int ret; char *err_msg = NULL; void *cache = spatialite_alloc_connection(); char *old_SPATIALITE_SECURITY_ENV = NULL; #ifdef _WIN32 char *env; #endif /* not WIN32 */ old_SPATIALITE_SECURITY_ENV = getenv("SPATIALITE_SECURITY"); #ifdef _WIN32 putenv("SPATIALITE_SECURITY=relaxed"); #else /* not WIN32 */ setenv("SPATIALITE_SECURITY", "relaxed", 1); #endif ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); // For debugging / testing if required // ret = sqlite3_open_v2 ("check_add_rt_metadata_triggers.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); spatialite_init_ex(db_handle, cache, 0); if (old_SPATIALITE_SECURITY_ENV) { #ifdef _WIN32 env = sqlite3_mprintf("SPATIALITE_SECURITY=%s", old_SPATIALITE_SECURITY_ENV); putenv(env); sqlite3_free(env); #else /* not WIN32 */ setenv("SPATIALITE_SECURITY", old_SPATIALITE_SECURITY_ENV, 1); #endif } else { #ifdef _WIN32 putenv("SPATIALITE_SECURITY="); #else /* not WIN32 */ unsetenv("SPATIALITE_SECURITY"); #endif } if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } /* create a minimal raster_columns table */ ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS raster_columns", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP raster_columns error: %s\n", err_msg); sqlite3_free (err_msg); return -4; } ret = sqlite3_exec (db_handle, "CREATE TABLE raster_columns (r_table_name TEXT NOT NULL, r_raster_column TEXT NOT NULL, srid INTEGER NOT NULL DEFAULT 0, CONSTRAINT pk_rc PRIMARY KEY (r_table_name, r_raster_column) ON CONFLICT ROLLBACK, CONSTRAINT fk_rc_r_srid FOREIGN KEY (srid) REFERENCES spatial_ref_sys(srid))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE raster_columns error: %s\n", err_msg); sqlite3_free (err_msg); return -5; } /* add in a test entry */ ret = sqlite3_exec (db_handle, "INSERT INTO raster_columns VALUES (\"test1_matrix_tiles\", \"tile_data\", 4326)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT raster_columns error: %s\n", err_msg); sqlite3_free (err_msg); return -6; } /* create a target data table */ ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS test1_matrix_tiles", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP test1_matrix_tiles error: %s\n", err_msg); sqlite3_free (err_msg); return -7; } ret = sqlite3_exec (db_handle, "CREATE TABLE test1_matrix_tiles (id INTEGER PRIMARY KEY AUTOINCREMENT, zoom_level INTEGER NOT NULL DEFAULT 0, tile_column INTEGER NOT NULL DEFAULT 0, tile_row INTEGER NOT NULL DEFAULT 0, tile_data BLOB NOT NULL DEFAULT (zeroblob(4)))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE test1_matrix_tiles error: %s\n", err_msg); sqlite3_free (err_msg); return -8; } ret = sqlite3_exec (db_handle, "INSERT INTO test1_matrix_tiles VALUES (1, 0, 0 ,0, BlobFromFile('empty.png'))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT error 88: %s\n", err_msg); sqlite3_free (err_msg); return -88; } /* create a target metadata table */ ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS test1_matrix_tiles_rt_metadata", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP test1_matrix_tiles error: %s\n", err_msg); sqlite3_free (err_msg); return -9; } ret = sqlite3_exec (db_handle, "CREATE TABLE test1_matrix_tiles_rt_metadata (row_id_value INTEGER NOT NULL, r_raster_column TEXT NOT NULL DEFAULT 'tile_data', georectification INTEGER NOT NULL DEFAULT 0, min_x DOUBLE NOT NULL DEFAULT -180.0, min_y DOUBLE NOT NULL DEFAULT -90.0, max_x DOUBLE NOT NULL DEFAULT 180.0, max_y DOUBLE NOT NULL DEFAULT 90.0, compr_qual_factor INTEGER NOT NULL DEFAULT 100, CONSTRAINT pk_smt_rm PRIMARY KEY (row_id_value, r_raster_column) ON CONFLICT ROLLBACK)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE test1_matrix_tiles_rt_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -10; } /* test trigger setup */ ret = sqlite3_exec (db_handle, "SELECT gpkgAddRtMetadataTriggers(\"test1_matrix_tiles\")", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "SELECT gpkgAddRtMetadataTriggers(test1_matrix_tiles)error: %s\n", err_msg); sqlite3_free (err_msg); return -11; } /* create a second target data table */ ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS test2_matrix_tiles", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP test2_matrix_tiles error: %s\n", err_msg); sqlite3_free (err_msg); return -12; } ret = sqlite3_exec (db_handle, "CREATE TABLE test2_matrix_tiles (id INTEGER PRIMARY KEY AUTOINCREMENT, zoom_level INTEGER NOT NULL DEFAULT 0, tile_column INTEGER NOT NULL DEFAULT 0, tile_row INTEGER NOT NULL DEFAULT 0, tile_data BLOB NOT NULL DEFAULT (zeroblob(4)))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE test2_matrix_tiles error: %s\n", err_msg); sqlite3_free (err_msg); return -13; } /* create a target metadata table */ ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS test2_matrix_tiles_rt_metadata", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP test2_matrix_tiles error: %s\n", err_msg); sqlite3_free (err_msg); return -14; } ret = sqlite3_exec (db_handle, "CREATE TABLE test2_matrix_tiles_rt_metadata (row_id_value INTEGER NOT NULL, r_raster_column TEXT NOT NULL DEFAULT 'tile_data', georectification INTEGER NOT NULL DEFAULT 0, min_x DOUBLE NOT NULL DEFAULT -180.0, min_y DOUBLE NOT NULL DEFAULT -90.0, max_x DOUBLE NOT NULL DEFAULT 180.0, max_y DOUBLE NOT NULL DEFAULT 90.0, compr_qual_factor INTEGER NOT NULL DEFAULT 100, CONSTRAINT pk_smt_rm PRIMARY KEY (row_id_value, r_raster_column) ON CONFLICT ROLLBACK)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE test2_matrix_tiles_rt_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -15; } ret = sqlite3_exec (db_handle, "SELECT gpkgAddRtMetadataTriggers(\"test2_matrix_tiles\")", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "SELECT gpkgAddRtMetadataTriggers(test2_matrix_tiles)error: %s\n", err_msg); sqlite3_free (err_msg); return -16; } /* Testing trigger: * "CREATE TRIGGER '%s_rt_metadata_r_raster_column_insert'\n" "BEFORE INSERT ON '%s_rt_metadata'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'insert on table ''%s_rt_metadata'' violates constraint: r_raster_column must be specified for table %s in table raster_columns')\n" "WHERE (NOT (NEW.r_raster_column IN (SELECT DISTINCT r_raster_column FROM raster_columns WHERE r_table_name = '%s')));\n" "END\n", */ ret = sqlite3_exec (db_handle, "INSERT INTO test2_matrix_tiles_rt_metadata (row_id_value) VALUES ( 1 )", NULL, NULL, &err_msg); if (ret != SQLITE_CONSTRAINT) { fprintf (stderr, "unexpected INSERT INTO test2_matrix_tiles_rt_metadata (row_id_value) VALUES ( 1 ) result: %i (%s)\n", ret, err_msg); return -17; } if (strcmp(err_msg, "insert on table test2_matrix_tiles_rt_metadata violates constraint: row_id_value must exist in test2_matrix_tiles table") != 0) { fprintf(stderr, "unexpected INSERT INTO error message 1: %s\n", err_msg); sqlite3_free(err_msg); return -18; } sqlite3_free (err_msg); /* Testing: "CREATE TRIGGER '%q_rt_metadata_georectification_insert'\n" "BEFORE INSERT ON '%q_rt_metadata'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'insert on table ''%q_rt_metadata'' violates constraint: georectification must be 0, 1 or 2')\n" "WHERE (NOT (NEW.georectification IN (0, 1, 2)));\n" "END", */ ret = sqlite3_exec (db_handle, "INSERT INTO test1_matrix_tiles_rt_metadata (row_id_value, georectification) VALUES ( 1, 3 )", NULL, NULL, &err_msg); if (ret != SQLITE_CONSTRAINT) { fprintf (stderr, "unexpected INSERT INTO (georectification insert) result: %i (%s)\n", ret, err_msg); return -19; } if (strcmp(err_msg, "insert on table 'test1_matrix_tiles_rt_metadata' violates constraint: georectification must be 0, 1 or 2") != 0) { fprintf(stderr, "unexpected INSERT INTO error message 2: %s\n", err_msg); sqlite3_free(err_msg); return -20; } sqlite3_free (err_msg); /* Testing: "CREATE TRIGGER '%s_rt_metadata_compr_qual_factor_insert'\n" "BEFORE INSERT ON '%s_rt_metadata'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, 'insert on table ''%s_rt_metadata'' violates constraint: compr_qual_factor < 1, must be between 1 and 100')\n" "WHERE NEW.compr_qual_factor < 1;\n" "SELECT RAISE(ROLLBACK, 'insert on table ''%s_rt_metadata'' violates constraint: compr_qual_factor > 100, must be between 1 and 100')\n" "WHERE NEW.compr_qual_factor > 100;\n" "END\n", */ ret = sqlite3_exec (db_handle, "INSERT INTO test1_matrix_tiles_rt_metadata (row_id_value, compr_qual_factor) VALUES ( 1, 0 )", NULL, NULL, &err_msg); if (ret != SQLITE_CONSTRAINT) { fprintf (stderr, "unexpected INSERT INTO result: %i\n", ret); return -25; } if (strcmp(err_msg, "insert on table 'test1_matrix_tiles_rt_metadata' violates constraint: compr_qual_factor < 1, must be between 1 and 100") != 0) { fprintf(stderr, "unexpected INSERT INTO error message 5: %s\n", err_msg); sqlite3_free(err_msg); return -26; } sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "INSERT INTO test1_matrix_tiles_rt_metadata (row_id_value, compr_qual_factor) VALUES ( 1, 101 )", NULL, NULL, &err_msg); if (ret != SQLITE_CONSTRAINT) { fprintf (stderr, "unexpected INSERT INTO result: %i\n", ret); return -27; } if (strcmp(err_msg, "insert on table 'test1_matrix_tiles_rt_metadata' violates constraint: compr_qual_factor > 100, must be between 1 and 100") != 0) { fprintf(stderr, "unexpected INSERT INTO error message 6: %s\n", err_msg); sqlite3_free(err_msg); return -28; } sqlite3_free (err_msg); /* Add a legitimate entry */ ret = sqlite3_exec (db_handle, "INSERT INTO test1_matrix_tiles VALUES (2, 0, 0 ,0, BlobFromFile('test.webp'))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT error 32: %s\n", err_msg); sqlite3_free (err_msg); return -32; } ret = sqlite3_exec (db_handle, "INSERT INTO test1_matrix_tiles_rt_metadata (row_id_value) VALUES (2)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "unexpected INSERT INTO 33 error: %s\n", err_msg); sqlite3_free (err_msg); return -33; } /* Testing: "CREATE TRIGGER '%q_rt_metadata_r_raster_column_update'\n" "BEFORE UPDATE OF r_raster_column ON '%q_rt_metadata'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on table ''%q_rt_metadata'' violates constraint: r_raster_column must be specified for table %s in table raster_columns')\n" "WHERE (NOT (NEW.r_raster_column IN (SELECT DISTINCT r_raster_column FROM raster_columns WHERE r_table_name = '%s')));\n" "END", */ ret = sqlite3_exec (db_handle, "UPDATE test1_matrix_tiles_rt_metadata SET r_raster_column=\"none\" WHERE row_id_value = 2", NULL, NULL, &err_msg); if (ret != SQLITE_CONSTRAINT) { fprintf (stderr, "unexpected UPDATE r_raster_column result: %i (%s)\n", ret, err_msg); return -34; } if (strcmp(err_msg, "update on table 'test1_matrix_tiles_rt_metadata' violates constraint: r_raster_column must be specified for table test1_matrix_tiles in table raster_columns") != 0) { fprintf(stderr, "unexpected UPDATE error message 1: %s\n", err_msg); sqlite3_free(err_msg); return -35; } sqlite3_free (err_msg); /* Testing: "CREATE TRIGGER '%q_rt_metadata_georectification_update'\n" "BEFORE UPDATE OF georectification ON '%q_rt_metadata'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'insert on table ''%q_rt_metadata'' violates constraint: georectification must be 0, 1 or 2')\n" "WHERE (NOT (NEW.georectification IN (0, 1, 2)));\n" "END", */ ret = sqlite3_exec (db_handle, "UPDATE test1_matrix_tiles_rt_metadata SET georectification=3 WHERE row_id_value = 2", NULL, NULL, &err_msg); if (ret != SQLITE_CONSTRAINT) { fprintf (stderr, "unexpected UPDATE georectification result: %i\n", ret); return -36; } if (strcmp(err_msg, "update on table 'test1_matrix_tiles_rt_metadata' violates constraint: georectification must be 0, 1 or 2") != 0) { fprintf(stderr, "unexpected UPDATE error message 1: %s\n", err_msg); sqlite3_free(err_msg); return -37; } sqlite3_free (err_msg); /* Testing: "CREATE TRIGGER '%s_rt_metadata_compr_qual_factor_update'\n" "BEFORE UPDATE OF compr_qual_factor ON '%s_rt_metadata'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, 'update on table ''%s_rt_metadata'' violates constraint: compr_qual_factor < 1, must be between 1 and 100')\n" "WHERE NEW.compr_qual_factor < 1;\n" "SELECT RAISE(ROLLBACK, 'update on table ''%s_rt_metadata'' violates constraint: compr_qual_factor > 100, must be between 1 and 100')\n" "WHERE NEW.compr_qual_factor > 100;\n" "END\n", */ ret = sqlite3_exec (db_handle, "UPDATE test1_matrix_tiles_rt_metadata SET compr_qual_factor=0 WHERE row_id_value = 2", NULL, NULL, &err_msg); if (ret != SQLITE_CONSTRAINT) { fprintf (stderr, "unexpected UPDATE compr_qual_factor0 result: %i\n", ret); return -48; } if (strcmp(err_msg, "update on table 'test1_matrix_tiles_rt_metadata' violates constraint: compr_qual_factor < 1, must be between 1 and 100") != 0) { fprintf(stderr, "unexpected UPDATE error message 5: %s\n", err_msg); sqlite3_free(err_msg); return -49; } sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "UPDATE test1_matrix_tiles_rt_metadata SET compr_qual_factor=101 WHERE row_id_value = 2", NULL, NULL, &err_msg); if (ret != SQLITE_CONSTRAINT) { fprintf (stderr, "unexpected UPDATE compr_qual_factor101 result: %i\n", ret); return -50; } if (strcmp(err_msg, "update on table 'test1_matrix_tiles_rt_metadata' violates constraint: compr_qual_factor > 100, must be between 1 and 100") != 0) { fprintf(stderr, "unexpected UPDATE error message 6: %s\n", err_msg); sqlite3_free(err_msg); return -51; } sqlite3_free (err_msg); ret = sqlite3_close (db_handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle)); return -200; } spatialite_cleanup_ex(cache); return 0; } libspatialite-4.1.1/test/test.wfs0000664000175000017500000000634012163502134013745 00000000000000unknown207021072003-06-091010004000412105100.00.00.00002005-09-0120702100664642.36368551,5169415.33921845207021072003-06-091010004015912105100.00.00.00002005-09-0120702100664350.17953981,5171957.91565536207021072003-06-091010004016722105100.00.00.00002005-09-0120702100664964.44722454,5170571.24573168libspatialite-4.1.1/test/check_get_normal_zoom_bad_geopackage.c0000664000175000017500000001046312163502133021715 00000000000000/* check_get_normal_zoom_bad_geopackage.c - Test case for GeoPackage Extensions Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Brad Hards Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #include "test_helpers.h" int main (int argc UNUSED, char *argv[] UNUSED) { sqlite3 *db_handle = NULL; int ret; char *err_msg = NULL; char **results; int rows; int columns; void *cache = spatialite_alloc_connection(); ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); // For debugging / testing if required // ret = sqlite3_open_v2 ("check_get_normal_zoom_bad_geopackage.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); spatialite_init_ex(db_handle, cache, 0); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } /* create a corrupt tile_matrix_metadata table (not spec compliant) */ ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS tile_matrix_metadata", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP tile_matrix_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -4; } ret = sqlite3_exec (db_handle, "CREATE TABLE tile_matrix_metadata (t_table_name TEXT NOT NULL, zoom_level TEXT NOT NULL, matrix_width INTEGER NOT NULL, matrix_height INTEGER NOT NULL)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE tile_matrix_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -5; } ret = sqlite3_exec (db_handle, "INSERT INTO tile_matrix_metadata VALUES (\"test1_matrix_tiles\", \"foo\", 1, 1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT tile_matrix_metadata zoom 0 error: %s\n", err_msg); sqlite3_free (err_msg); return -6; } ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 0)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_ERROR) { fprintf(stderr, "Expected error for broken geopackage, got %i\n", ret); sqlite3_free (err_msg); return -7; } if (strcmp(err_msg, "gpkgGetNormalZoom: could not parse result (corrupt GeoPackage?)") != 0) { fprintf (stderr, "Unexpected error message for broken geopackage: %s\n", err_msg); sqlite3_free(err_msg); return -8; } sqlite3_free(err_msg); ret = sqlite3_close (db_handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle)); return -100; } spatialite_cleanup_ex(cache); return 0; } libspatialite-4.1.1/test/check_xls_load.c0000664000175000017500000001015412163502133015350 00000000000000/* check_xls_load.c -- SpatiaLite Test Case Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" int main (int argc, char *argv[]) { #ifndef OMIT_FREEXL /* only if FreeXL is supported */ int ret; sqlite3 *handle; char *err_msg = NULL; unsigned int row_count; int rcnt; void *cache = spatialite_alloc_connection(); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle)); sqlite3_close(handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -2; } ret = load_XL (handle, "./testcase1.xls", "test1", 0, 0, &row_count, err_msg); if (!ret) { fprintf (stderr, "load_XL() error: %s\n", err_msg); sqlite3_close(handle); return -3; } if (row_count != 17) { fprintf (stderr, "load_XL() unexpected row count: %u\n", row_count); sqlite3_close(handle); return -4; } ret = load_XL (handle, "./testcase1.xls", "test2", 1, 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "load_XL() error sheet 2: %s\n", err_msg); sqlite3_close(handle); return -5; } if (row_count != 19) { fprintf (stderr, "load_XL() unexpected row count sheet 2: %u\n", row_count); sqlite3_close(handle); return -6; } check_duplicated_rows (handle, "test1", &rcnt); if (rcnt != 0) { fprintf (stderr, "check_duplicated_rows() unexpected duplicate count: %d\n", rcnt); sqlite3_close(handle); return -8; } check_duplicated_rows (handle, "test2", &rcnt); if (rcnt != 2) { fprintf (stderr, "check_duplicated_rows() unexpected duplicate count sheet 2: %d\n", rcnt); sqlite3_close(handle); return -10; } remove_duplicated_rows (handle, "test1"); remove_duplicated_rows (handle, "test2"); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -11; } spatialite_cleanup_ex (cache); #endif /* end FreeXL conditional */ return 0; } libspatialite-4.1.1/test/check_add_rt_metadata_triggers_bad_table_name.c0000664000175000017500000001212012163502133023516 00000000000000/* check_add_rt_metadata_triggers_bad_table_name.c - Test case for GeoPackage Extensions Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Brad Hards Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #include "test_helpers.h" int main (int argc UNUSED, char *argv[] UNUSED) { sqlite3 *db_handle = NULL; int ret; char *err_msg = NULL; void *cache = spatialite_alloc_connection(); ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); // For debugging / testing if required // ret = sqlite3_open_v2 ("check_add_rt_metadata_triggers_bad_table_name.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); spatialite_init_ex(db_handle, cache, 0); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } /* create a minimal raster_columns table */ ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS raster_columns", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP raster_columns error: %s\n", err_msg); sqlite3_free (err_msg); return -4; } ret = sqlite3_exec (db_handle, "CREATE TABLE raster_columns (r_table_name TEXT NOT NULL, r_raster_column TEXT NOT NULL, srid INTEGER NOT NULL DEFAULT 0, CONSTRAINT pk_rc PRIMARY KEY (r_table_name, r_raster_column) ON CONFLICT ROLLBACK, CONSTRAINT fk_rc_r_srid FOREIGN KEY (srid) REFERENCES spatial_ref_sys(srid))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE raster_columns error: %s\n", err_msg); sqlite3_free (err_msg); return -5; } /* add in a test entry */ ret = sqlite3_exec (db_handle, "INSERT INTO raster_columns VALUES (\"test1_matrix_tiles\", \"tile_data\", 4326)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT raster_columns error: %s\n", err_msg); sqlite3_free (err_msg); return -6; } /* create a target table */ ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS test1_matrix_tiles", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP test1_matrix_tiles error: %s\n", err_msg); sqlite3_free (err_msg); return -7; } ret = sqlite3_exec (db_handle, "CREATE TABLE test1_matrix_tiles (id INTEGER PRIMARY KEY AUTOINCREMENT, zoom_level INTEGER NOT NULL DEFAULT 0, tile_column INTEGER NOT NULL DEFAULT 0, tile_row INTEGER NOT NULL DEFAULT 0, tile_data BLOB NOT NULL DEFAULT (zeroblob(4)))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE test1_matrix_tiles error: %s\n", err_msg); sqlite3_free (err_msg); return -8; } /* test trigger setup */ ret = sqlite3_exec (db_handle, "SELECT gpkgAddRtMetadataTriggers(\"no_such_table\")", NULL, NULL, &err_msg); if (ret != SQLITE_ERROR) { fprintf(stderr, "Unexpected gpkgAddRtMetadataTriggers result: %i\n", ret); return -9; } if (strcmp(err_msg, "no such table: main.no_such_table_rt_metadata") != 0) { fprintf (stderr, "SELECT gpkgAddRtMetadataTriggers unexpected error message: %s\n", err_msg); sqlite3_free (err_msg); return -10; } sqlite3_free(err_msg); ret = sqlite3_close (db_handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle)); return -200; } spatialite_cleanup_ex(cache); return 0; } libspatialite-4.1.1/test/books.xsd0000664000175000017500000000125712163502133014103 00000000000000 libspatialite-4.1.1/test/shape_cp1252.c0000664000175000017500000001102712163502133014502 00000000000000/* shape_cp1252.c -- SpatiaLite Test Case Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" int main (int argc, char *argv[]) { #ifndef OMIT_ICONV /* only if ICONV is supported */ int ret; sqlite3 *handle; char *dbfname = __FILE__"test.dbf"; char *err_msg = NULL; int row_count; void *cache = spatialite_alloc_connection(); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); sqlite3_close(handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -2; } ret = load_shapefile (handle, "./shp/new-caledonia/points", "points", "CP1252", 4326, "col1", 1, 0, 1, 0, &row_count, err_msg); if (!ret) { fprintf (stderr, "load_shapefile() error for shp/new-caledonia/points: %s\n", err_msg); sqlite3_close(handle); return -3; } if (row_count != 10) { fprintf (stderr, "unexpected row count for shp/new-caledonia/points: %i\n", row_count); sqlite3_close(handle); return -4; } ret = load_shapefile (handle, "./shp/new-caledonia/railways", "railways", "CP1252", 4326, "col1", 1, 0, 1, 0, &row_count, err_msg); if (!ret) { fprintf (stderr, "load_shapefile() error for shp/new-caledonia/railways: %s\n", err_msg); sqlite3_close(handle); return -5; } if (row_count != 13) { fprintf (stderr, "unexpected row count for shp/new-caledonia/points: %i\n", row_count); sqlite3_close(handle); return -6; } ret = load_shapefile (handle, "./shp/new-caledonia/buildings", "buildings", "CP1252", 4326, "col1", 1, 0, 1, 0, &row_count, err_msg); if (!ret) { fprintf (stderr, "load_shapefile() error for shp/new-caledonia/buildings: %s\n", err_msg); sqlite3_close(handle); return -7; } if (row_count != 10) { fprintf (stderr, "unexpected row count for shp/new-caledonia/buildings: %i\n", row_count); sqlite3_close(handle); return -8; } ret = dump_dbf (handle, "points", dbfname, "CP1252", err_msg); if (!ret) { fprintf (stderr, "dump_dbf() error for points: %s\n", err_msg); sqlite3_close(handle); return -9; } unlink(dbfname); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -9; } spatialite_cleanup_ex (cache); #endif /* end ICONV conditional */ return 0; } libspatialite-4.1.1/test/check_get_normal_zoom_extension_load.c0000664000175000017500000002316612163502133022040 00000000000000/* check_get_normal_zoom_extension_load.c - Test case for GeoPackage Extensions Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Brad Hards Portions created by the Initial Developer are Copyright (C) 2012 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #include "test_helpers.h" int main (int argc UNUSED, char *argv[] UNUSED) { sqlite3 *db_handle = NULL; char *sql_statement; int ret; char *err_msg = NULL; char **results; int rows; int columns; ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); // For debugging / testing if required // ret = sqlite3_open_v2 ("check_get_normal_zoom_extension_load.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } sqlite3_enable_load_extension (db_handle, 1); #if defined(__APPLE__) /* Mac Os X */ sql_statement = "SELECT load_extension('libspatialite.dylib')"; #elif defined(_WIN32) /* Windows */ sql_statement = "SELECT load_extension('libspatialite.dll')"; #else /* neither Mac nor Windows: may be Linux or Unix */ sql_statement = "SELECT load_extension('libspatialite.so')"; #endif ret = sqlite3_exec (db_handle, sql_statement, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "load_extension(spatialite) error: %s\n", err_msg); sqlite3_free (err_msg); return -2; } /* create a minimal tile_matrix_metadata table (not spec compliant) */ ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS tile_matrix_metadata", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP tile_matrix_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -4; } ret = sqlite3_exec (db_handle, "CREATE TABLE tile_matrix_metadata (t_table_name TEXT NOT NULL, zoom_level INTEGER NOT NULL, matrix_width INTEGER NOT NULL, matrix_height INTEGER NOT NULL)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE tile_matrix_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -5; } /* add in some test entries */ ret = sqlite3_exec (db_handle, "INSERT INTO tile_matrix_metadata VALUES (\"test1_matrix_tiles\", 0, 1, 1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT tile_matrix_metadata zoom 0 error: %s\n", err_msg); sqlite3_free (err_msg); return -6; } ret = sqlite3_exec (db_handle, "INSERT INTO tile_matrix_metadata VALUES (\"test1_matrix_tiles\", 1, 2, 2)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT tile_matrix_metadata zoom 1 error: %s\n", err_msg); sqlite3_free (err_msg); return -7; } ret = sqlite3_exec (db_handle, "INSERT INTO tile_matrix_metadata VALUES (\"test1_matrix_tiles\", 2, 4, 4)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT tile_matrix_metadata zoom 2 error: %s\n", err_msg); sqlite3_free (err_msg); return -8; } ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 0)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error1: %s\n", err_msg); sqlite3_free (err_msg); return -9; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns); return -10; } if (strcmp(results[1 * columns + 0], "2") != 0) { fprintf (stderr, "Unexpected result (got %s, expected 2)", results[rows * columns + 0]); return -11; } sqlite3_free_table(results); ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 1)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error 2: %s\n", err_msg); sqlite3_free (err_msg); return -12; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns); return -13; } if (strcmp(results[1 * columns + 0], "1") != 0) { fprintf (stderr, "Unexpected result (got %s, expected 1)", results[rows * columns + 0]); return -14; } sqlite3_free_table(results); ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 2)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error 3: %s\n", err_msg); sqlite3_free (err_msg); return -15; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns); return -16; } if (strcmp(results[1 * columns + 0], "0") != 0) { fprintf (stderr, "Unexpected result (got %s, expected 0)", results[rows * columns + 0]); return -17; } sqlite3_free_table(results); /* test an out-of-range zoom number - expect exception */ ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 3)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_ERROR) { fprintf(stderr, "Expected error for overrange zoom level, got %i\n", ret); sqlite3_free (err_msg); return -18; } if (strcmp(err_msg, "gpkgGetNormalZoom: input zoom level number outside of valid zoom levels") != 0) { fprintf (stderr, "Unexpected error message for overrange zoom level: %s\n", err_msg); sqlite3_free(err_msg); return -19; } sqlite3_free(err_msg); ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", -1)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_ERROR) { fprintf(stderr, "Expected error for underrange zoom level, got %i\n", ret); sqlite3_free (err_msg); return -20; } if (strcmp(err_msg, "gpkgGetNormalZoom: input zoom level number outside of valid zoom levels") != 0) { fprintf (stderr, "Unexpected error message for underrange zoom level: %s\n", err_msg); sqlite3_free(err_msg); return -21; } sqlite3_free(err_msg); /* test bad table name */ ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(\"no_such_table\", 0)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_ERROR) { fprintf(stderr, "Expected error for bad table name level, got %i\n", ret); sqlite3_free (err_msg); return -22; } if (strcmp(err_msg, "gpkgGetNormalZoom: tile table not found in tile_matrix_metadata") != 0) { fprintf (stderr, "Unexpected error message for bad table name: %s\n", err_msg); sqlite3_free(err_msg); return -23; } sqlite3_free(err_msg); /* test bad argument types */ ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(3, 0)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_ERROR) { fprintf(stderr, "Expected error for bad arg1 type, got %i\n", ret); sqlite3_free (err_msg); return -26; } if (strcmp(err_msg, "gpkgGetNormalZoom() error: argument 1 [tile_table_name] is not of the String type") != 0) { fprintf (stderr, "Unexpected error message for bad arg1 type: %s\n", err_msg); sqlite3_free(err_msg); return -27; } sqlite3_free(err_msg); /* test bad argument types */ ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 0.2)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_ERROR) { fprintf(stderr, "Expected error for bad arg2 type, got %i\n", ret); sqlite3_free (err_msg); return -28; } if (strcmp(err_msg, "gpkgGetNormalZoom() error: argument 2 [inverted zoom level] is not of the integer type") != 0) { fprintf (stderr, "Unexpected error message for bad arg2 type: %s\n", err_msg); sqlite3_free(err_msg); return -29; } sqlite3_free(err_msg); ret = sqlite3_close (db_handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle)); return -100; } /* this is a hack to avoid excess valgrind noise */ spatialite_cleanup(); return 0; } libspatialite-4.1.1/test/check_geom_aux.c0000664000175000017500000010357112163502133015355 00000000000000/* check_geoms.c -- SpatiaLite Test Case Author: Sandro Furieri ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include "sqlite3.h" #include "spatialite.h" #include int main (int argc, char *argv[]) { int ret; sqlite3 *handle; gaiaDynamicLinePtr dyn; gaiaDynamicLinePtr dyn2; gaiaDynamicLinePtr dyn3; gaiaPointPtr pt; gaiaPointPtr pt1; gaiaPointPtr pt2; gaiaGeomCollPtr geom_pt; gaiaGeomCollPtr geom1; gaiaGeomCollPtr geom2; gaiaGeomCollPtr geom3; gaiaLinestringPtr ln; gaiaLinestringPtr line1; gaiaLinestringPtr line2; gaiaPolygonPtr pg; gaiaRingPtr rng; gaiaRingPtr ring1; gaiaRingPtr ring2; gaiaPolygonPtr polyg1; gaiaPolygonPtr polyg2; double xy[6]; unsigned char *blob; int size; double min; double max; int cnt; gaiaOutBuffer wkt; void *cache = spatialite_alloc_connection(); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle)); sqlite3_close(handle); return -1000; } spatialite_init_ex (handle, cache, 0); gaiaOutBufferInitialize (&wkt); /* testing Dynamic Line */ dyn = gaiaAllocDynamicLine(); pt1 = gaiaAppendPointToDynamicLine(dyn, 1.0, 2.0); pt2 = gaiaAppendPointToDynamicLine(dyn, 10.0, 11.0); gaiaDynamicLineInsertAfter(dyn, pt1, 2.0, 3.0); gaiaDynamicLineInsertBefore(dyn, pt2, 9.0, 10.0); gaiaAppendPointToDynamicLine(dyn, 11.0, 12.0); gaiaDynamicLineDeletePoint(dyn, pt2); dyn2 = gaiaCloneDynamicLine(dyn); dyn3 = gaiaReverseDynamicLine(dyn2); pt = dyn3->First; cnt = 0; while (pt) { /* testing result */ switch (cnt) { case 0: if (pt->X != 11.0 || pt->Y != 12.0) { fprintf(stderr, "ReverseDynamicLine: unexpected result (0)\n"); return -1; } break; case 1: if (pt->X != 9.0 || pt->Y != 10.0) { fprintf(stderr, "ReverseDynamicLine: unexpected result (1)\n"); return -3; } break; case 2: if (pt->X != 2.0 || pt->Y != 3.0) { fprintf(stderr, "ReverseDynamicLine: unexpected result (2)\n"); return -4; } break; case 3: if (pt->X != 1.0 || pt->Y != 2.0) { fprintf(stderr, "ReverseDynamicLine: unexpected result (3)\n"); return -5; } break; default: fprintf(stderr, "ReverseDynamicLine: Point count > 4\n"); return -6; }; cnt++; pt = pt->Next; } gaiaFreeDynamicLine(dyn3); gaiaFreeDynamicLine(dyn2); xy[0] = 10.0; xy[1] = 20.0; xy[2] = 11.0; xy[3] = 21.0; xy[4] = 12.0; xy[5] = 22.0; dyn3 = gaiaCreateDynamicLine(xy, 3); dyn2 = gaiaDynamicLineJoinAfter(dyn, pt1, dyn3); pt = dyn2->First; cnt = 0; while (pt) { /* testing result */ switch (cnt) { case 0: if (pt->X != 1.0 || pt->Y != 2.0) { fprintf(stderr, "DynamicLineJoinAfter: unexpected result (0)\n"); return -7; } break; case 1: if (pt->X != 10.0 || pt->Y != 20.0) { fprintf(stderr, "DynamicLineJoinAfter: unexpected result (1)\n"); return -8; } break; case 2: if (pt->X != 11.0 || pt->Y != 21.0) { fprintf(stderr, "DynamicLineJoinAfter: unexpected result (2)\n"); return -9; } break; case 3: if (pt->X != 12.0 || pt->Y != 22.0) { fprintf(stderr, "DynamicLineJoinAfter: unexpected result (3)\n"); return -10; } break; case 4: if (pt->X != 2.0 || pt->Y != 3.0) { fprintf(stderr, "DynamicLineJoinAfter: unexpected result (4)\n"); return -11; } break; case 5: if (pt->X != 9.0 || pt->Y != 10.0) { fprintf(stderr, "DynamicLineJoinAfter: unexpected result (5)\n"); return -12; } break; case 6: if (pt->X != 11.0 || pt->Y != 12.0) { fprintf(stderr, "DynamicLineJoinAfter: unexpected result (6)\n"); return -13; } break; default: fprintf(stderr, "DynamicLineJoinAfter: Point count > 7\n"); return -14; }; cnt++; pt = pt->Next; } gaiaFreeDynamicLine(dyn2); dyn2 = gaiaDynamicLineJoinBefore(dyn, pt1, dyn3); pt = dyn2->First; cnt = 0; while (pt) { /* testing result */ switch (cnt) { case 0: if (pt->X != 10.0 || pt->Y != 20.0) { fprintf(stderr, "DynamicLineJoinBefore: unexpected result (0)\n"); return -15; } break; case 1: if (pt->X != 11.0 || pt->Y != 21.0) { fprintf(stderr, "DynamicLineJoinBefore: unexpected result (1)\n"); return -16; } break; case 2: if (pt->X != 12.0 || pt->Y != 22.0) { fprintf(stderr, "DynamicLineJoinBefore: unexpected result (2)\n"); return -17; } break; case 3: if (pt->X != 1.0 || pt->Y != 2.0) { fprintf(stderr, "DynamicLineJoinBefore: unexpected result (3)\n"); return -18; } break; case 4: if (pt->X != 2.0 || pt->Y != 3.0) { fprintf(stderr, "DynamicLineJoinBefore: unexpected result (4)\n"); return -19; } break; case 5: if (pt->X != 9.0 || pt->Y != 10.0) { fprintf(stderr, "DynamicLineJoinBefore: unexpected result (5)\n"); return -20; } break; case 6: if (pt->X != 11.0 || pt->Y != 12.0) { fprintf(stderr, "DynamicLineJoinBefore: unexpected result (6)\n"); return -21; } break; default: fprintf(stderr, "DynamicLineJoinBefore: Point count > 7\n"); return -22; }; cnt++; pt = pt->Next; } gaiaFreeDynamicLine(dyn3); gaiaFreeDynamicLine(dyn2); dyn3 = gaiaCloneDynamicLine(dyn); pt1 = gaiaDynamicLineFindByCoords(dyn, 9.0, 10.0); dyn2 = gaiaDynamicLineSplitBefore(dyn, pt1); pt = dyn2->First; cnt = 0; while (pt) { /* testing result */ switch (cnt) { case 0: if (pt->X != 1.0 || pt->Y != 2.0) { fprintf(stderr, "DynamicLineSplitBefore: unexpected result (0)\n"); return -23; } break; case 1: if (pt->X != 2.0 || pt->Y != 3.0) { fprintf(stderr, "DynamicLineSplitBefore: unexpected result (1)\n"); return -24; } break; default: fprintf(stderr, "DynamicLineSplitBefore: Point count > 2\n"); return -25; }; cnt++; pt = pt->Next; } gaiaFreeDynamicLine(dyn2); gaiaFreeDynamicLine(dyn); pt1 = gaiaDynamicLineFindByPos(dyn3, 1); dyn2 = gaiaDynamicLineSplitAfter(dyn3, pt1); pt = dyn2->First; cnt = 0; while (pt) { /* testing result */ switch (cnt) { case 0: if (pt->X != 9.0 || pt->Y != 10.0) { fprintf(stderr, "DynamicLineSplitAfter: unexpected result (0)\n"); return -26; } break; case 1: if (pt->X != 11.0 || pt->Y != 12.0) { fprintf(stderr, "DynamicLineSplitAfter: unexpected result (1)\n"); return -27; } break; default: fprintf(stderr, "DynamicLineSplitAfter: Point count > 2\n"); return -28; }; cnt++; pt = pt->Next; } gaiaFreeDynamicLine(dyn2); gaiaFreeDynamicLine(dyn3); /* testing Geometry */ geom_pt = gaiaAllocGeomColl(); gaiaAddPointToGeomColl(geom_pt, 5.0, 5.0); geom1 = gaiaAllocGeomColl(); gaiaAddPointToGeomColl(geom1, 15.0, 15.0); ln = gaiaAddLinestringToGeomColl(geom1, 2); gaiaLineSetPoint(ln, 0, 1.0, 1.0, 0.0, 0.0); gaiaLineSetPoint(ln, 1, 2.0, 2.0, 0.0, 0.0); pg = gaiaAddPolygonToGeomColl(geom1, 5, 0); rng = pg->Exterior; gaiaRingSetPoint(rng, 0, 1.0, 1.0, 0.0, 0.0); gaiaRingSetPoint(rng, 1, 5.0, 1.0, 0.0, 0.0); gaiaRingSetPoint(rng, 2, 5.0, 5.0, 0.0, 0.0); gaiaRingSetPoint(rng, 3, 1.0, 5.0, 0.0, 0.0); gaiaRingSetPoint(rng, 4, 1.0, 1.0, 0.0, 0.0); rng = gaiaAllocRing (5); gaiaRingSetPoint(rng, 0, 2.0, 2.0, 0.0, 0.0); gaiaRingSetPoint(rng, 1, 3.0, 2.0, 0.0, 0.0); gaiaRingSetPoint(rng, 2, 3.0, 3.0, 0.0, 0.0); gaiaRingSetPoint(rng, 3, 2.0, 3.0, 0.0, 0.0); gaiaRingSetPoint(rng, 4, 2.0, 2.0, 0.0, 0.0); gaiaInsertInteriorRing(pg, rng); gaiaFreeRing(rng); rng = gaiaAllocRing (5); gaiaRingSetPoint(rng, 0, 3.5, 3.5, 0.0, 0.0); gaiaRingSetPoint(rng, 1, 4.0, 3.5, 0.0, 0.0); gaiaRingSetPoint(rng, 2, 4.0, 4.0, 0.0, 0.0); gaiaRingSetPoint(rng, 3, 3.5, 4.0, 0.0, 0.0); gaiaRingSetPoint(rng, 4, 3.5, 3.5, 0.0, 0.0); gaiaInsertInteriorRing(pg, rng); gaiaFreeRing(rng); geom2 = gaiaCloneGeomColl(geom1); gaiaOutWkt(&wkt, geom2); if (wkt.Error || wkt.Buffer == NULL) { fprintf(stderr, "Geom2D: unable to get WKT\n"); return -29; } else { /* testing WKT result */ if (strcmp(wkt.Buffer, "GEOMETRYCOLLECTION(POINT(15 15), LINESTRING(1 1, 2 2), POLYGON((1 1, 5 1, 5 5, 1 5, 1 1), (2 2, 3 2, 3 3, 2 3, 2 2), (3.5 3.5, 4 3.5, 4 4, 3.5 4, 3.5 3.5)))") != 0) { /* unexpected result */ fprintf(stderr, "Geom2D: unexpected result %s|\n", wkt.Buffer); return -30; } gaiaOutBufferReset (&wkt); } gaiaMakeLine(NULL, geom2, &blob, &size); if (blob) free(blob); gaiaMakeLine(geom_pt, NULL, &blob, &size); if (blob) free(blob); gaiaMakeLine(geom_pt, geom2, &blob, &size); if (blob) free(blob); gaiaMakeLine(geom1, geom2, &blob, &size); if (blob) free(blob); gaiaFreeGeomColl(geom2); geom2 = gaiaCloneGeomCollPoints(geom1); gaiaOutWkt(&wkt, geom2); if (wkt.Error || wkt.Buffer == NULL) { fprintf(stderr, "Geom2D Points: unable to get WKT\n"); return -30; } else { /* testing WKT result */ if (strcmp(wkt.Buffer, "MULTIPOINT(15 15)") != 0) { /* unexpected result */ fprintf(stderr, "Geom2D Points: unexpected result %s|\n", wkt.Buffer); return -31; } gaiaOutBufferReset (&wkt); } gaiaFreeGeomColl(geom2); geom2 = gaiaCloneGeomCollLinestrings(geom1); gaiaOutWkt(&wkt, geom2); if (wkt.Error || wkt.Buffer == NULL) { fprintf(stderr, "Geom2D Lines: unable to get WKT\n"); return -32; } else { /* testing WKT result */ if (strcmp(wkt.Buffer, "MULTILINESTRING((1 1, 2 2))") != 0) { /* unexpected result */ fprintf(stderr, "Geom2D Lines: unexpected result %s|\n", wkt.Buffer); return -33; } gaiaOutBufferReset (&wkt); } gaiaFreeGeomColl(geom2); geom2 = gaiaCloneGeomCollPolygons(geom1); gaiaOutWkt(&wkt, geom2); if (wkt.Error || wkt.Buffer == NULL) { fprintf(stderr, "Geom2D Polygons: unable to get WKT\n"); return -34; } else { /* testing WKT result */ if (strcmp(wkt.Buffer, "MULTIPOLYGON(((1 1, 5 1, 5 5, 1 5, 1 1), (2 2, 3 2, 3 3, 2 3, 2 2), (3.5 3.5, 4 3.5, 4 4, 3.5 4, 3.5 3.5)))") != 0) { /* unexpected result */ fprintf(stderr, "Geom2D Polygons: unexpected result %s|\n", wkt.Buffer); return -35; } gaiaOutBufferReset (&wkt); } gaiaFreeGeomColl(geom2); min = gaiaMeasureLength(geom1->FirstLinestring->DimensionModel, geom1->FirstLinestring->Coords, geom1->FirstLinestring->Points); rng = geom1->FirstPolygon->Exterior; min = gaiaMeasureArea(rng); gaiaRingCentroid(rng, &min, &max); gaiaIsPointOnPolygonSurface(geom1->FirstPolygon, 17.0, 22.0); min = gaiaMinDistance(1.0, 2.0, geom1->FirstLinestring->DimensionModel, geom1->FirstLinestring->Coords, geom1->FirstLinestring->Points); /* cast XYZ */ geom2 = gaiaCastGeomCollToXY(geom1); gaiaFreeGeomColl(geom2); geom2 = gaiaCastGeomCollToXYZ(geom1); geom3 = gaiaCloneGeomColl(geom2); gaiaFreeGeomColl(geom3); geom3 = gaiaCloneGeomCollPoints(geom2); gaiaFreeGeomColl(geom3); geom3 = gaiaCloneGeomCollLinestrings(geom2); gaiaFreeGeomColl(geom3); geom3 = gaiaCloneGeomCollPolygons(geom2); gaiaFreeGeomColl(geom3); rng = geom2->FirstPolygon->Exterior; min = gaiaMeasureLength(geom2->FirstLinestring->DimensionModel, geom2->FirstLinestring->Coords, geom2->FirstLinestring->Points); if (min < 1.41421 || min > 1.41422) { /* unexpected result */ fprintf(stderr, "Geom3D Length: unexpected result %1.6f|\n", min); return -36; } min = gaiaMeasureArea(rng); if (min != 16.0) { /* unexpected result */ fprintf(stderr, "Geom3D Area: unexpected result %1.6f|\n", min); return -37; } gaiaRingCentroid(rng, &min, &max); if (min != 3.0 || max != 3.0) { /* unexpected result */ fprintf(stderr, "Geom3D Centroid: unexpected result %1.6f %1.6f|\n", min, max); return -38; } cnt = gaiaIsPointOnPolygonSurface(geom2->FirstPolygon, 17.0, 22.0); if (cnt) { /* unexpected result */ fprintf(stderr, "Geom3D IsPointOnPolygonSurface: unexpected result %d|\n", cnt); return -39; } min = gaiaMinDistance(1.0, 2.0, geom2->FirstLinestring->DimensionModel, geom2->FirstLinestring->Coords, geom2->FirstLinestring->Points); if (min < 0.70710 || min > 0.70711) { /* unexpected result */ fprintf(stderr, "Geom3D MinDistance: unexpected result %1.6f|\n", min); return -40; } gaiaFreeGeomColl(geom2); /* cast to XYM */ geom2 = gaiaCastGeomCollToXYM(geom1); geom3 = gaiaCloneGeomColl(geom2); gaiaFreeGeomColl(geom3); geom3 = gaiaCloneGeomCollPoints(geom2); gaiaFreeGeomColl(geom3); geom3 = gaiaCloneGeomCollLinestrings(geom2); gaiaFreeGeomColl(geom3); geom3 = gaiaCloneGeomCollPolygons(geom2); gaiaFreeGeomColl(geom3); min = gaiaMeasureLength(geom2->FirstLinestring->DimensionModel, geom2->FirstLinestring->Coords, geom2->FirstLinestring->Points); if (min < 1.41421 || min > 1.41422) { /* unexpected result */ fprintf(stderr, "GeomM Length: unexpected result %1.6f|\n", min); return -41; } rng = geom2->FirstPolygon->Exterior; min = gaiaMeasureArea(rng); if (min != 16.0) { /* unexpected result */ fprintf(stderr, "GeomM Area: unexpected result %1.6f|\n", min); return -42; } gaiaRingCentroid(rng, &min, &max); if (min != 3.0 || max != 3.0) { /* unexpected result */ fprintf(stderr, "GeomM Centroid: unexpected result %1.6f %1.6f|\n", min, max); return -43; } gaiaIsPointOnPolygonSurface(geom2->FirstPolygon, 17.0, 22.0); if (cnt) { /* unexpected result */ fprintf(stderr, "GeomM IsPointOnPolygonSurface: unexpected result %d|\n", cnt); return -44; } min = gaiaMinDistance(1.0, 2.0, geom2->FirstLinestring->DimensionModel, geom2->FirstLinestring->Coords, geom2->FirstLinestring->Points); if (min < 0.70710 || min > 0.70711) { /* unexpected result */ fprintf(stderr, "GeomM MinDistance: unexpected result %1.6f|\n", min); return -45; } gaiaFreeGeomColl(geom2); /* cast to XYZM */ geom2 = gaiaCastGeomCollToXYZM(geom1); geom3 = gaiaCloneGeomColl(geom2); gaiaFreeGeomColl(geom3); gaiaMRangeGeometry(geom2, &min, &max); gaiaZRangeGeometry(geom2, &min, &max); geom3 = gaiaCloneGeomCollPoints(geom2); gaiaFreeGeomColl(geom3); geom3 = gaiaCloneGeomCollLinestrings(geom2); gaiaFreeGeomColl(geom3); geom3 = gaiaCloneGeomCollPolygons(geom2); gaiaFreeGeomColl(geom3); min = gaiaMeasureLength(geom2->FirstLinestring->DimensionModel, geom2->FirstLinestring->Coords, geom2->FirstLinestring->Points); if (min < 1.41421 || min > 1.41422) { /* unexpected result */ fprintf(stderr, "GeomZM Length: unexpected result %1.6f|\n", min); return -46; } rng = geom2->FirstPolygon->Exterior; min = gaiaMeasureArea(rng); if (min != 16.0) { /* unexpected result */ fprintf(stderr, "GeomZM Area: unexpected result %1.6f|\n", min); return -47; } gaiaRingCentroid(rng, &min, &max); if (min != 3.0 || max != 3.0) { /* unexpected result */ fprintf(stderr, "GeomZM Centroid: unexpected result %1.6f %1.6f|\n", min, max); return -48; } gaiaIsPointOnPolygonSurface(geom2->FirstPolygon, 17.0, 22.0); if (cnt) { /* unexpected result */ fprintf(stderr, "GeomZM IsPointOnPolygonSurface: unexpected result %d|\n", cnt); return -49; } min = gaiaMinDistance(1.0, 2.0, geom2->FirstLinestring->DimensionModel, geom2->FirstLinestring->Coords, geom2->FirstLinestring->Points); if (min < 0.70710 || min > 0.70711) { /* unexpected result */ fprintf(stderr, "GeomZM MinDistance: unexpected result %1.6f|\n", min); return -50; } gaiaFreeGeomColl(geom2); gaiaFreeGeomColl(geom_pt); gaiaFreeGeomColl(geom1); gaiaIntersect(&min, &max, 0.0, 10.0, 20.0, 10.0, 5.0, 0.0, 5.0, 20.0); if (min != 5.0 || max != 10.0) { /* unexpected result */ fprintf(stderr, "gaiaIntersect: unexpected result %1.6f %1.6f|\n", min, max); return -51; } /* same, reversed line direction */ gaiaIntersect(&min, &max, 20.0, 10.0, 0.0, 10.0, 5.0, 20.0, 5.0, 0.0); if (min != 5.0 || max != 10.0) { /* unexpected result */ fprintf(stderr, "gaiaIntersect: unexpected result %1.6f %1.6f|\n", min, max); return -52; } /* non-intersecting MBRs*/ min = -20; max = -20; gaiaIntersect(&min, &max, 20.0, 12.0, 0.0, 10.0, 25.0, 40.0, 45.0, 40.0); if (min != -20 || max != -20) { /* unexpected result */ fprintf(stderr, "gaiaIntersect: unexpected result %1.6f %1.6f|\n", min, max); return -53; } /* Just intersecting */ min = 0; max = 0; gaiaIntersect(&min, &max, 0.0, 10.0, 20.0, 10.0, 5.0, 0.0, 5.0, 10.0); if (min != 5.0 || max != 10.0) { /* unexpected result */ fprintf(stderr, "gaiaIntersect: unexpected result %1.6f %1.6f|\n", min, max); return -54; } /* cloning a Linestring XY */ line1 = gaiaAllocLinestring(4); gaiaLineSetPoint(line1, 0, 1.1, 1.2, 100.1, 10.1); gaiaLineSetPoint(line1, 1, 1.3, 1.4, 100.2, 10.2); gaiaLineSetPoint(line1, 2, 1.5, 1.6, 100.3, 10.3); gaiaLineSetPoint(line1, 3, 1.7, 1.8, 100.4, 10.4); line2 = gaiaCloneLinestringSpecial(line1, GAIA_SAME_ORDER); gaiaFreeLinestring(line2); line2 = gaiaCloneLinestringSpecial(line1, GAIA_REVERSE_ORDER); gaiaFreeLinestring(line2); gaiaFreeLinestring(line1); /* cloning a Linestring XYZ */ line1 = gaiaAllocLinestringXYZ(4); gaiaLineSetPoint(line1, 0, 1.1, 1.2, 100.1, 10.1); gaiaLineSetPoint(line1, 1, 1.3, 1.4, 100.2, 10.2); gaiaLineSetPoint(line1, 2, 1.5, 1.6, 100.3, 10.3); gaiaLineSetPoint(line1, 3, 1.7, 1.8, 100.4, 10.4); line2 = gaiaCloneLinestringSpecial(line1, GAIA_SAME_ORDER); gaiaFreeLinestring(line2); line2 = gaiaCloneLinestringSpecial(line1, GAIA_REVERSE_ORDER); gaiaFreeLinestring(line2); gaiaFreeLinestring(line1); /* cloning a Linestring XYM */ line1 = gaiaAllocLinestringXYM(4); gaiaLineSetPoint(line1, 0, 1.1, 1.2, 100.1, 10.1); gaiaLineSetPoint(line1, 1, 1.3, 1.4, 100.2, 10.2); gaiaLineSetPoint(line1, 2, 1.5, 1.6, 100.3, 10.3); gaiaLineSetPoint(line1, 3, 1.7, 1.8, 100.4, 10.4); line2 = gaiaCloneLinestringSpecial(line1, GAIA_SAME_ORDER); gaiaFreeLinestring(line2); line2 = gaiaCloneLinestringSpecial(line1, GAIA_REVERSE_ORDER); gaiaFreeLinestring(line2); gaiaFreeLinestring(line1); /* cloning a Linestring XYZM */ line1 = gaiaAllocLinestringXYZM(4); gaiaLineSetPoint(line1, 0, 1.1, 1.2, 100.1, 10.1); gaiaLineSetPoint(line1, 1, 1.3, 1.4, 100.2, 10.2); gaiaLineSetPoint(line1, 2, 1.5, 1.6, 100.3, 10.3); gaiaLineSetPoint(line1, 3, 1.7, 1.8, 100.4, 10.4); line2 = gaiaCloneLinestringSpecial(line1, GAIA_SAME_ORDER); gaiaFreeLinestring(line2); line2 = gaiaCloneLinestringSpecial(line1, GAIA_REVERSE_ORDER); gaiaFreeLinestring(line2); gaiaFreeLinestring(line1); /* cloning a Ring XY */ ring1 = gaiaAllocRing(5); gaiaRingSetPoint(ring1, 0, 1.1, 1.1, 100.1, 10.1); gaiaRingSetPoint(ring1, 1, 1.2, 1.1, 100.2, 10.2); gaiaRingSetPoint(ring1, 2, 1.2, 1.2, 100.3, 10.3); gaiaRingSetPoint(ring1, 3, 1.1, 1.2, 100.4, 10.4); gaiaRingSetPoint(ring1, 4, 1.1, 1.1, 100.1, 10.1); ring2 = gaiaCloneRingSpecial(ring1, GAIA_SAME_ORDER); gaiaFreeRing(ring2); ring2 = gaiaCloneRingSpecial(ring1, GAIA_REVERSE_ORDER); gaiaFreeRing(ring2); gaiaFreeRing(ring1); /* cloning a Ring XYZ */ ring1 = gaiaAllocRingXYZ(5); gaiaRingSetPoint(ring1, 0, 1.1, 1.1, 100.1, 10.1); gaiaRingSetPoint(ring1, 1, 1.2, 1.1, 100.2, 10.2); gaiaRingSetPoint(ring1, 2, 1.2, 1.2, 100.3, 10.3); gaiaRingSetPoint(ring1, 3, 1.1, 1.2, 100.4, 10.4); gaiaRingSetPoint(ring1, 4, 1.1, 1.1, 100.1, 10.1); ring2 = gaiaCloneRingSpecial(ring1, GAIA_SAME_ORDER); gaiaFreeRing(ring2); ring2 = gaiaCloneRingSpecial(ring1, GAIA_REVERSE_ORDER); gaiaFreeRing(ring2); gaiaFreeRing(ring1); /* cloning a Ring XYM */ ring1 = gaiaAllocRingXYM(5); gaiaRingSetPoint(ring1, 0, 1.1, 1.1, 100.1, 10.1); gaiaRingSetPoint(ring1, 1, 1.2, 1.1, 100.2, 10.2); gaiaRingSetPoint(ring1, 2, 1.2, 1.2, 100.3, 10.3); gaiaRingSetPoint(ring1, 3, 1.1, 1.2, 100.4, 10.4); gaiaRingSetPoint(ring1, 4, 1.1, 1.1, 100.1, 10.1); ring2 = gaiaCloneRingSpecial(ring1, GAIA_SAME_ORDER); gaiaFreeRing(ring2); ring2 = gaiaCloneRingSpecial(ring1, GAIA_REVERSE_ORDER); gaiaFreeRing(ring2); gaiaFreeRing(ring1); /* cloning a Ring XYZM */ ring1 = gaiaAllocRingXYZM(4); gaiaRingSetPoint(ring1, 0, 1.1, 1.1, 100.1, 10.1); gaiaRingSetPoint(ring1, 1, 1.2, 1.1, 100.2, 10.2); gaiaRingSetPoint(ring1, 2, 1.2, 1.2, 100.3, 10.3); gaiaRingSetPoint(ring1, 3, 1.1, 1.2, 100.4, 10.4); gaiaRingSetPoint(ring1, 4, 1.1, 1.1, 100.1, 10.1); ring2 = gaiaCloneRingSpecial(ring1, GAIA_SAME_ORDER); gaiaFreeRing(ring2); ring2 = gaiaCloneRingSpecial(ring1, GAIA_REVERSE_ORDER); gaiaFreeRing(ring2); gaiaFreeRing(ring1); /* cloning a Polygon XY (1) */ polyg1 = gaiaAllocPolygon(5, 1); ring1 = polyg1->Exterior; gaiaRingSetPoint(ring1, 0, 1.0, 1.0, 100.1, 10.1); gaiaRingSetPoint(ring1, 1, 2.0, 1.0, 100.2, 10.2); gaiaRingSetPoint(ring1, 2, 2.0, 2.0, 100.3, 10.3); gaiaRingSetPoint(ring1, 3, 1.0, 2.0, 100.4, 10.4); gaiaRingSetPoint(ring1, 4, 1.0, 1.0, 100.1, 10.1); ring1 = gaiaAddInteriorRing (polyg1, 0, 5); gaiaRingSetPoint(ring1, 0, 1.1, 1.1, 100.1, 10.1); gaiaRingSetPoint(ring1, 1, 1.2, 1.1, 100.2, 10.2); gaiaRingSetPoint(ring1, 2, 1.2, 1.2, 100.3, 10.3); gaiaRingSetPoint(ring1, 3, 1.1, 1.2, 100.4, 10.4); gaiaRingSetPoint(ring1, 4, 1.1, 1.1, 100.1, 10.1); polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_SAME_ORDER); gaiaFreePolygon(polyg2); polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_REVERSE_ORDER); gaiaFreePolygon(polyg2); polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_LHR_ORDER); gaiaFreePolygon(polyg2); gaiaFreePolygon(polyg1); /* cloning a Polygon XY (2) */ polyg1 = gaiaAllocPolygon(5, 1); ring1 = polyg1->Exterior; gaiaRingSetPoint(ring1, 0, 1.0, 1.0, 100.1, 10.1); gaiaRingSetPoint(ring1, 1, 1.0, 2.0, 100.2, 10.2); gaiaRingSetPoint(ring1, 2, 2.0, 2.0, 100.3, 10.3); gaiaRingSetPoint(ring1, 3, 2.0, 1.0, 100.4, 10.4); gaiaRingSetPoint(ring1, 4, 1.0, 1.0, 100.1, 10.1); ring1 = gaiaAddInteriorRing (polyg1, 0, 5); gaiaRingSetPoint(ring1, 0, 1.1, 1.1, 100.1, 10.1); gaiaRingSetPoint(ring1, 1, 1.1, 1.2, 100.2, 10.2); gaiaRingSetPoint(ring1, 2, 1.2, 1.2, 100.3, 10.3); gaiaRingSetPoint(ring1, 3, 1.2, 1.1, 100.4, 10.4); gaiaRingSetPoint(ring1, 4, 1.1, 1.1, 100.1, 10.1); polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_SAME_ORDER); gaiaFreePolygon(polyg2); polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_REVERSE_ORDER); gaiaFreePolygon(polyg2); polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_LHR_ORDER); gaiaFreePolygon(polyg2); gaiaFreePolygon(polyg1); /* cloning a Polygon XYZ (1) */ polyg1 = gaiaAllocPolygonXYZ(5, 1); ring1 = polyg1->Exterior; gaiaRingSetPoint(ring1, 0, 1.0, 1.0, 100.1, 10.1); gaiaRingSetPoint(ring1, 1, 2.0, 1.0, 100.2, 10.2); gaiaRingSetPoint(ring1, 2, 2.0, 2.0, 100.3, 10.3); gaiaRingSetPoint(ring1, 3, 1.0, 2.0, 100.4, 10.4); gaiaRingSetPoint(ring1, 4, 1.0, 1.0, 100.1, 10.1); ring1 = gaiaAddInteriorRing (polyg1, 0, 5); gaiaRingSetPoint(ring1, 0, 1.1, 1.1, 100.1, 10.1); gaiaRingSetPoint(ring1, 1, 1.2, 1.1, 100.2, 10.2); gaiaRingSetPoint(ring1, 2, 1.2, 1.2, 100.3, 10.3); gaiaRingSetPoint(ring1, 3, 1.1, 1.2, 100.4, 10.4); gaiaRingSetPoint(ring1, 4, 1.1, 1.1, 100.1, 10.1); polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_SAME_ORDER); gaiaFreePolygon(polyg2); polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_REVERSE_ORDER); gaiaFreePolygon(polyg2); polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_LHR_ORDER); gaiaFreePolygon(polyg2); gaiaFreePolygon(polyg1); /* cloning a Polygon XYZ (2) */ polyg1 = gaiaAllocPolygonXYZ(5, 1); ring1 = polyg1->Exterior; gaiaRingSetPoint(ring1, 0, 1.0, 1.0, 100.1, 10.1); gaiaRingSetPoint(ring1, 1, 1.0, 2.0, 100.2, 10.2); gaiaRingSetPoint(ring1, 2, 2.0, 2.0, 100.3, 10.3); gaiaRingSetPoint(ring1, 3, 2.0, 1.0, 100.4, 10.4); gaiaRingSetPoint(ring1, 4, 1.0, 1.0, 100.1, 10.1); ring1 = gaiaAddInteriorRing (polyg1, 0, 5); gaiaRingSetPoint(ring1, 0, 1.1, 1.1, 100.1, 10.1); gaiaRingSetPoint(ring1, 1, 1.1, 1.2, 100.2, 10.2); gaiaRingSetPoint(ring1, 2, 1.2, 1.2, 100.3, 10.3); gaiaRingSetPoint(ring1, 3, 1.2, 1.1, 100.4, 10.4); gaiaRingSetPoint(ring1, 4, 1.1, 1.1, 100.1, 10.1); polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_SAME_ORDER); gaiaFreePolygon(polyg2); polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_REVERSE_ORDER); gaiaFreePolygon(polyg2); polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_LHR_ORDER); gaiaFreePolygon(polyg2); gaiaFreePolygon(polyg1); /* cloning a Polygon XYM (1) */ polyg1 = gaiaAllocPolygonXYM(5, 1); ring1 = polyg1->Exterior; gaiaRingSetPoint(ring1, 0, 1.0, 1.0, 100.1, 10.1); gaiaRingSetPoint(ring1, 1, 2.0, 1.0, 100.2, 10.2); gaiaRingSetPoint(ring1, 2, 2.0, 2.0, 100.3, 10.3); gaiaRingSetPoint(ring1, 3, 1.0, 2.0, 100.4, 10.4); gaiaRingSetPoint(ring1, 4, 1.0, 1.0, 100.1, 10.1); ring1 = gaiaAddInteriorRing (polyg1, 0, 5); gaiaRingSetPoint(ring1, 0, 1.1, 1.1, 100.1, 10.1); gaiaRingSetPoint(ring1, 1, 1.2, 1.1, 100.2, 10.2); gaiaRingSetPoint(ring1, 2, 1.2, 1.2, 100.3, 10.3); gaiaRingSetPoint(ring1, 3, 1.1, 1.2, 100.4, 10.4); gaiaRingSetPoint(ring1, 4, 1.1, 1.1, 100.1, 10.1); polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_SAME_ORDER); gaiaFreePolygon(polyg2); polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_REVERSE_ORDER); gaiaFreePolygon(polyg2); polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_LHR_ORDER); gaiaFreePolygon(polyg2); gaiaFreePolygon(polyg1); /* cloning a Polygon XYM (2) */ polyg1 = gaiaAllocPolygonXYM(5, 1); ring1 = polyg1->Exterior; gaiaRingSetPoint(ring1, 0, 1.0, 1.0, 100.1, 10.1); gaiaRingSetPoint(ring1, 1, 1.0, 2.0, 100.2, 10.2); gaiaRingSetPoint(ring1, 2, 2.0, 2.0, 100.3, 10.3); gaiaRingSetPoint(ring1, 3, 2.0, 1.0, 100.4, 10.4); gaiaRingSetPoint(ring1, 4, 1.0, 1.0, 100.1, 10.1); ring1 = gaiaAddInteriorRing (polyg1, 0, 5); gaiaRingSetPoint(ring1, 0, 1.1, 1.1, 100.1, 10.1); gaiaRingSetPoint(ring1, 1, 1.1, 1.2, 100.2, 10.2); gaiaRingSetPoint(ring1, 2, 1.2, 1.2, 100.3, 10.3); gaiaRingSetPoint(ring1, 3, 1.2, 1.1, 100.4, 10.4); gaiaRingSetPoint(ring1, 4, 1.1, 1.1, 100.1, 10.1); polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_SAME_ORDER); gaiaFreePolygon(polyg2); polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_REVERSE_ORDER); gaiaFreePolygon(polyg2); polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_LHR_ORDER); gaiaFreePolygon(polyg2); gaiaFreePolygon(polyg1); /* cloning a Polygon XYZM (1) */ polyg1 = gaiaAllocPolygonXYZM(5, 1); ring1 = polyg1->Exterior; gaiaRingSetPoint(ring1, 0, 1.0, 1.0, 100.1, 10.1); gaiaRingSetPoint(ring1, 1, 2.0, 1.0, 100.2, 10.2); gaiaRingSetPoint(ring1, 2, 2.0, 2.0, 100.3, 10.3); gaiaRingSetPoint(ring1, 3, 1.0, 2.0, 100.4, 10.4); gaiaRingSetPoint(ring1, 4, 1.0, 1.0, 100.1, 10.1); ring1 = gaiaAddInteriorRing (polyg1, 0, 5); gaiaRingSetPoint(ring1, 0, 1.1, 1.1, 100.1, 10.1); gaiaRingSetPoint(ring1, 1, 1.2, 1.1, 100.2, 10.2); gaiaRingSetPoint(ring1, 2, 1.2, 1.2, 100.3, 10.3); gaiaRingSetPoint(ring1, 3, 1.1, 1.2, 100.4, 10.4); gaiaRingSetPoint(ring1, 4, 1.1, 1.1, 100.1, 10.1); polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_SAME_ORDER); gaiaFreePolygon(polyg2); polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_REVERSE_ORDER); gaiaFreePolygon(polyg2); polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_LHR_ORDER); gaiaFreePolygon(polyg2); gaiaFreePolygon(polyg1); /* cloning a Polygon XYZM (2) */ polyg1 = gaiaAllocPolygonXYZM(5, 1); ring1 = polyg1->Exterior; gaiaRingSetPoint(ring1, 0, 1.0, 1.0, 100.1, 10.1); gaiaRingSetPoint(ring1, 1, 1.0, 2.0, 100.2, 10.2); gaiaRingSetPoint(ring1, 2, 2.0, 2.0, 100.3, 10.3); gaiaRingSetPoint(ring1, 3, 2.0, 1.0, 100.4, 10.4); gaiaRingSetPoint(ring1, 4, 1.0, 1.0, 100.1, 10.1); ring1 = gaiaAddInteriorRing (polyg1, 0, 5); gaiaRingSetPoint(ring1, 0, 1.1, 1.1, 100.1, 10.1); gaiaRingSetPoint(ring1, 1, 1.1, 1.2, 100.2, 10.2); gaiaRingSetPoint(ring1, 2, 1.2, 1.2, 100.3, 10.3); gaiaRingSetPoint(ring1, 3, 1.2, 1.1, 100.4, 10.4); gaiaRingSetPoint(ring1, 4, 1.1, 1.1, 100.1, 10.1); polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_SAME_ORDER); gaiaFreePolygon(polyg2); polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_REVERSE_ORDER); gaiaFreePolygon(polyg2); polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_LHR_ORDER); gaiaFreePolygon(polyg2); gaiaFreePolygon(polyg1); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -1001; } spatialite_cleanup_ex (cache); return 0; } libspatialite-4.1.1/test/check_point_to_tile_different_srid.c0000664000175000017500000002320412163502133021462 00000000000000/* check_point_to_tile.c - Test case for GeoPackage Extensions Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Brad Hards Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #include #include "test_helpers.h" int main (int argc UNUSED, char *argv[] UNUSED) { sqlite3 *db_handle = NULL; char *sql_statement; sqlite3_stmt *stmt; int ret; char *err_msg = NULL; int i; const uint8_t *blob0; const uint8_t *blob1; void *cache = spatialite_alloc_connection(); char *old_SPATIALITE_SECURITY_ENV = NULL; #ifdef _WIN32 char *env; #endif /* not WIN32 */ old_SPATIALITE_SECURITY_ENV = getenv("SPATIALITE_SECURITY"); #ifdef _WIN32 putenv("SPATIALITE_SECURITY=relaxed"); #else /* not WIN32 */ setenv("SPATIALITE_SECURITY", "relaxed", 1); #endif ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); // For debugging / testing if required // ret = sqlite3_open_v2 ("check_point_to_tile.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); spatialite_init_ex(db_handle, cache, 0); if (old_SPATIALITE_SECURITY_ENV) { #ifdef _WIN32 env = sqlite3_mprintf("SPATIALITE_SECURITY=%s", old_SPATIALITE_SECURITY_ENV); putenv(env); sqlite3_free(env); #else /* not WIN32 */ setenv("SPATIALITE_SECURITY", old_SPATIALITE_SECURITY_ENV, 1); #endif } else { #ifdef _WIN32 putenv("SPATIALITE_SECURITY="); #else /* not WIN32 */ unsetenv("SPATIALITE_SECURITY"); #endif } if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } /* Create the base tables */ ret = sqlite3_exec (db_handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf(stderr, "Unexpected InitSpatialMetadata result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -2; } ret = sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf(stderr, "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -3; } /* create a target table */ ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS test1_tiles", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP test1_tiles error: %s\n", err_msg); sqlite3_free (err_msg); return -10; } ret = sqlite3_exec (db_handle, "CREATE TABLE test1_tiles (id INTEGER PRIMARY KEY AUTOINCREMENT, zoom_level INTEGER NOT NULL DEFAULT 0, tile_column INTEGER NOT NULL DEFAULT 0, tile_row INTEGER NOT NULL DEFAULT 0, tile_data BLOB NOT NULL DEFAULT (zeroblob(4)))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE mytable_tiles error: %s\n", err_msg); sqlite3_free (err_msg); return -11; } /* add in some test entries */ ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (1, 0, 0, 0, BlobFromFile('tile000.jpeg'))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT level0 error: %s\n", err_msg); sqlite3_free (err_msg); return -12; } ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (2, 1, 0, 0, BlobFromFile('tile100.jpeg'))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT level1 error: %s\n", err_msg); sqlite3_free (err_msg); return -13; } ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (3, 1, 0, 1, BlobFromFile('tile101.jpeg'))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT level1 error: %s\n", err_msg); sqlite3_free (err_msg); return -14; } ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (4, 1, 1, 1, BlobFromFile('tile111.jpeg'))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT level1 error: %s\n", err_msg); sqlite3_free (err_msg); return -15; } ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS test1_tiles_rt_metadata", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP test1_tiles_rt_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -16; } ret = sqlite3_exec (db_handle, "CREATE TABLE test1_tiles_rt_metadata (id INTEGER PRIMARY KEY AUTOINCREMENT, min_x DOUBLE NOT NULL DEFAULT -180.0, min_y DOUBLE NOT NULL DEFAULT -90.0, max_x DOUBLE NOT NULL DEFAULT 180.0, max_y DOUBLE NOT NULL DEFAULT 90.0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE test1_tiles_rt_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -17; } ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles_rt_metadata (id, min_x, min_y, max_x, max_y) VALUES (1, -180.0, -90.0, 180.0, 90.0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT level0 _rt_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -18; } ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles_rt_metadata (id, min_x, min_y, max_x, max_y) VALUES (2, -180.0, 0.0, 0.0, 90.0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT level1 (0,0) _rt_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -19; } /* Deliberately skip 3 */ ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles_rt_metadata (id, min_x, min_y, max_x, max_y) VALUES (4, 0.0, -90.0, 180.0, 0.0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT level1 (1,1) _rt_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -20; } ret = sqlite3_exec (db_handle, "INSERT INTO raster_columns VALUES (\"test1_tiles\", \"tile_data\", 100, 0, 4326)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT raster_columns row error: %s\n", err_msg); sqlite3_free (err_msg); return -21; } /* try gpkgPointToTile normal operation, using AGD94 */ sql_statement = "SELECT gpkgPointToTile(\"test1_tiles\", 3577, 20.0, -30.0, 1), BlobFromFile(\"tile111.jpeg\")"; ret = sqlite3_prepare_v2 (db_handle, sql_statement, strlen(sql_statement), &stmt, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "failed to prepare SQL statement: %i (%s)\n", ret, sqlite3_errmsg(db_handle)); return -30; } ret = sqlite3_step (stmt); if (ret != SQLITE_ROW) { fprintf(stderr, "unexpected return value for first step: %i (%s)\n", ret, sqlite3_errmsg(db_handle)); return -31; } if (sqlite3_column_type (stmt, 0) != SQLITE_BLOB) { fprintf(stderr, "bad type for column 0: %i\n", sqlite3_column_type (stmt, 0)); return -32; } if (sqlite3_column_type (stmt, 1) != SQLITE_BLOB) { fprintf(stderr, "bad type for column 1: %i\n", sqlite3_column_type (stmt, 1)); return -33; } blob0 = sqlite3_column_blob(stmt, 0); blob1 = sqlite3_column_blob(stmt, 1); if (sqlite3_column_bytes(stmt, 0) != sqlite3_column_bytes(stmt, 1)) { fprintf(stderr, "mismatch in blob sizes: %i vs %i\n", sqlite3_column_bytes(stmt, 0), sqlite3_column_bytes(stmt, 1)); return -34; } for (i = 0; i < sqlite3_column_bytes(stmt, 0); ++i) { if (blob0[i] != blob1[i]) { fprintf(stderr, "mismatch in blob content at offset: %i\n", i); return -35; } } ret = sqlite3_step(stmt); if (ret != SQLITE_DONE) { fprintf(stderr, "unexpected return value for second step: %i\n", ret); return -36; } ret = sqlite3_finalize (stmt); ret = sqlite3_close (db_handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle)); return -100; } spatialite_cleanup_ex(cache); return 0; } libspatialite-4.1.1/test/check_create.c0000664000175000017500000001156412163502133015014 00000000000000/* check_create.c -- SpatiaLite Test Case Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include "sqlite3.h" #include "spatialite.h" #include "spatialite/gaiaaux.h" int main (int argc, char *argv[]) { int ret; sqlite3 *handle; char *err_msg = NULL; sqlite3_int64 log_pk; void *cache = spatialite_alloc_connection(); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle)); sqlite3_close(handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -2; } ret = sqlite3_exec (handle, "SELECT HasProj()", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "HasProj() error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -3; } ret = sqlite3_exec (handle, "SELECT HasGeos()", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "HasGeos() error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -4; } ret = sqlite3_exec (handle, "SELECT HasGeosAdvanced()", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "HasGeosAdvanced() error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -5; } ret = sqlite3_exec (handle, "SELECT HasIconv()", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "HasIconv() error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -6; } ret = sqlite3_exec (handle, "SELECT HasMathSql()", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "HasMathSql() error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -7; } ret = sqlite3_exec (handle, "SELECT HasGeoCallbacks()", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "HasGeoCallbacks() error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -8; } ret = sqlite3_exec (handle, "SELECT HasFreeXL()", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "HasFreeXL() error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -9; } ret = sqlite3_exec (handle, "SELECT HasEpsg()", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "HasEpsg() error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -10; } gaiaInsertIntoSqlLog (handle, "test", "sql_statement_ok", &log_pk); gaiaUpdateSqlLog (handle, log_pk, 1, NULL); gaiaInsertIntoSqlLog (handle, "test", "sql_statement_no", &log_pk); gaiaUpdateSqlLog (handle, log_pk, 0, "some error message"); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -11; } spatialite_cleanup_ex(cache); return 0; } libspatialite-4.1.1/test/testDescribeFeatureType.wfs0000664000175000017500000000627212163502134017570 00000000000000 libspatialite-4.1.1/test/archaic.dxf0000664000175000017500000000752112163502133014343 00000000000000 0 SECTION 2 ENTITIES 0 POLYLINE 8 0708 66 1 70 136 0 VERTEX 8 0708 70 32 10 1640917.36 20 4862170.21 30 72.73 0 VERTEX 8 0708 70 32 10 1640911.27 20 4862198.25 30 72.70 0 SEQEND 8 0708 0 POLYLINE 8 0906 66 1 70 136 0 VERTEX 8 0906 70 32 10 1647065.00 20 4867860.00 30 556.52 0 VERTEX 8 0906 70 32 10 1647188.00 20 4862307.00 30 591.63 0 VERTEX 8 0906 70 32 10 1640495.00 20 4862161.00 30 633.96 0 VERTEX 8 0906 70 32 10 1640377.00 20 4867715.00 30 669.08 0 VERTEX 8 0906 70 32 10 1647065.00 20 4867860.00 30 556.52 0 SEQEND 8 0906 0 POLYLINE 8 0906 66 1 70 136 0 VERTEX 8 0201 70 32 10 1646450.28 20 4862772.46 30 54.29 0 VERTEX 8 0201 70 32 10 1646457.94 20 4862771.33 30 54.11 0 VERTEX 8 0201 70 32 10 1646455.68 20 4862761.50 30 54.49 0 SEQEND 8 0201 0 POLYLINE 8 0714 66 1 70 136 0 VERTEX 8 0714 70 32 10 1641969.01 20 4865226.08 30 518.87 0 VERTEX 8 0714 70 32 10 1641972.82 20 4865242.18 30 519.69 0 VERTEX 8 0714 70 32 10 1641975.04 20 4865250.21 30 520.89 0 VERTEX 8 0714 70 32 10 1641976.45 20 4865256.96 30 520.73 0 VERTEX 8 0714 70 32 10 1641981.46 20 4865273.74 30 518.06 0 VERTEX 8 0714 70 32 10 1641983.69 20 4865275.16 30 517.08 0 VERTEX 8 0714 70 32 10 1641987.97 20 4865277.87 30 515.20 0 VERTEX 8 0714 70 32 10 1641996.91 20 4865277.48 30 512.35 0 VERTEX 8 0714 70 32 10 1642004.36 20 4865276.13 30 509.62 0 VERTEX 8 0714 70 32 10 1642006.15 20 4865269.78 30 505.74 0 VERTEX 8 0714 70 32 10 1642004.58 20 4865257.76 30 502.83 0 VERTEX 8 0714 70 32 10 1642000.05 20 4865250.78 30 503.03 0 VERTEX 8 0714 70 32 10 1641996.31 20 4865243.13 30 503.32 0 VERTEX 8 0714 70 32 10 1641994.92 20 4865233.87 30 503.97 0 VERTEX 8 0714 70 32 10 1641994.58 20 4865229.88 30 504.11 0 VERTEX 8 0714 70 32 10 1641995.36 20 4865221.81 30 504.33 0 VERTEX 8 0714 70 32 10 1641997.57 20 4865207.30 30 505.28 0 VERTEX 8 0714 70 32 10 1642001.17 20 4865185.76 30 506.86 0 VERTEX 8 0714 70 32 10 1642005.45 20 4865159.45 30 506.90 0 VERTEX 8 0714 70 32 10 1642005.70 20 4865157.77 30 506.77 0 VERTEX 8 0714 70 32 10 1642000.11 20 4865158.99 30 510.70 0 VERTEX 8 0714 70 32 10 1641996.97 20 4865160.79 30 512.04 0 VERTEX 8 0714 70 32 10 1641993.70 20 4865165.58 30 513.18 0 VERTEX 8 0714 70 32 10 1641992.25 20 4865169.70 30 513.39 0 VERTEX 8 0714 70 32 10 1641988.16 20 4865187.15 30 513.18 0 VERTEX 8 0714 70 32 10 1641984.13 20 4865194.87 30 514.36 0 VERTEX 8 0714 70 32 10 1641975.01 20 4865209.96 30 517.48 0 VERTEX 8 0714 70 32 10 1641969.01 20 4865226.08 30 518.87 0 SEQEND 8 0714 0 POINT 8 0907 10 1645244.54 20 4866102.58 30 567.93 0 POINT 8 0231 10 1647000.63 20 4867829.22 30 272.16 0 POINT 8 0231 10 1646343.31 20 4867805.90 30 397.27 0 POINT 8 0231 10 1642506.09 20 4866841.75 30 381.54 0 POINT 8 0231 10 1642112.33 20 4864688.20 30 433.96 0 POINT 8 0231 10 1641734.62 20 4865794.25 30 603.60 0 POINT 8 0231 10 1640659.45 20 4862849.61 30 97.58 0 POINT 8 0231 10 1646492.89 20 4862739.77 30 52.88 0 TEXT 8 1014 10 1642628.16 20 4864868.39 30 299.30 40 15.00 50 .00 51 .00 1 299.3 0 TEXT 8 1016 10 1647132.59 20 4862749.38 30 34.00 40 15.00 50 26.00 51 .00 1 34 0 ENDSEC 0 EOF libspatialite-4.1.1/test/check_sql_stmt.c0000664000175000017500000003744112163502133015421 00000000000000/* check_sql_stmt.c -- SpatiaLite Test Case Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #define _GNU_SOURCE #include #include #include #ifndef _WIN32 #include #include #endif #include "config.h" #include "sqlite3.h" #include "spatialite.h" #ifdef ENABLE_LIBXML2 /* only if LIBXML2 is supported */ #include #endif #ifndef OMIT_GEOS /* including GEOS */ #include #endif #ifdef _WIN32 #include "fnmatch4win.h" #include "scandir4win.h" #include "asprintf4win.h" #include "fnmatch_impl4win.h" #endif struct test_data { char * test_case_name; char * database_name; char * sql_statement; int expected_rows; int expected_columns; char ** expected_results; int *expected_precision; }; int do_one_case (const struct test_data *data) { sqlite3 *db_handle = NULL; int ret; char *err_msg = NULL; int i; char **results; int rows; int columns; void *cache = spatialite_alloc_connection(); fprintf(stderr, "Test case: %s\n", data->test_case_name); /* This hack checks if the name ends with _RO */ if (strncmp("_RO", data->database_name + strlen(data->database_name) - 3, strlen("_RO")) == 0) { fprintf(stderr, "opening read_only\n"); ret = sqlite3_open_v2 (data->database_name, &db_handle, SQLITE_OPEN_READONLY, NULL); } else { ret = sqlite3_open_v2 (data->database_name, &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); } if (ret != SQLITE_OK) { fprintf (stderr, "cannot open %s db: %s\n", data->database_name, sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } spatialite_init_ex (db_handle, cache, 0); ret = sqlite3_exec (db_handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(db_handle); return -2; } ret = sqlite3_get_table (db_handle, data->sql_statement, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -10; } if ((rows != data->expected_rows) || (columns != data->expected_columns)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -11; } for (i = 0; i < (data->expected_rows + 1) * data->expected_columns; ++i) { if (results[i] != NULL && data->expected_precision[i] == 0) { data->expected_precision[i] = strlen(results[i]); } if (results[i] == NULL) { if (strcmp("(NULL)", data->expected_results[i]) == 0) { /* we expected this */ continue; } else { fprintf (stderr, "Null value at %i.\n", i); fprintf (stderr, "Expected value was: %s\n", data->expected_results[i]); return -12; } } else if (strlen(results[i]) == 0) { fprintf (stderr, "zero length result at %i\n", i); fprintf (stderr, "Expected value was : %s|\n", data->expected_results[i]); return -13; } else if (strncmp(results[i], data->expected_results[i], data->expected_precision[i]) != 0) { fprintf (stderr, "Unexpected value at %i: %s|\n", i, results[i]); fprintf (stderr, "Expected value was : %s|\n", data->expected_results[i]); return -14; } } sqlite3_free_table (results); sqlite3_close (db_handle); spatialite_cleanup_ex(cache); return 0; } int get_clean_line(FILE *f, char ** line) { size_t len = 0; ssize_t num_read = 0; ssize_t end = 0; char *tmp_line = NULL; #if !defined(_WIN32) &&!defined(__APPLE__) /* expecpting to be on a sane minded platform [linux-like] */ num_read = getline(&(tmp_line), &len, f); #else /* neither Windows nor MacOsX support getline() */ len = 1024 * 1024; tmp_line = malloc(len); if (fgets(tmp_line, len, f) == NULL) { free(tmp_line); num_read = -1; } else num_read = strlen(tmp_line); #endif if (num_read < 1) { fprintf(stderr, "failed to read at %li: %zi\n", ftell(f), num_read); return -1; } /* trim the trailing new line and any comments */ for (end = 0; end < num_read; ++end) { if (*(tmp_line + end) == '\n') break; if (*(tmp_line + end) == '#') break; } /* trim any trailing spaces */ while (end > 0) { if (*(tmp_line + end -1) != ' ') { break; } *(tmp_line + end -1) = '\0'; end--; } *line = malloc(end + 1); memcpy(*line, tmp_line, end); (*line)[end] = '\0'; free(tmp_line); return 0; } void handle_precision(char *expected_result, int *precision) { int i; int result_len = strlen(expected_result); *precision = 0; for (i = result_len - 1; i >= 0; --i) { if (expected_result[i] == ':') { expected_result[i] = '\0'; *precision = atoi(&(expected_result[i + 1])); break; } } } struct test_data *read_one_case(const char *filepath) { int num_results; int i; char *tmp; FILE *f; struct test_data* data; f = fopen(filepath, "r"); data = malloc(sizeof(struct test_data)); get_clean_line(f, &(data->test_case_name)); get_clean_line(f, &(data->database_name)); get_clean_line(f, &(data->sql_statement)); get_clean_line(f, &(tmp)); data->expected_rows = atoi(tmp); free(tmp); get_clean_line(f, &(tmp)); data->expected_columns = atoi(tmp); free(tmp); num_results = (data->expected_rows + 1) * data->expected_columns; data->expected_results = malloc(num_results * sizeof(char*)); data->expected_precision = malloc(num_results * sizeof(int)); for (i = 0; i < num_results; ++i) { get_clean_line(f, &(data->expected_results[i])); handle_precision(data->expected_results[i], &(data->expected_precision[i])); } fclose(f); return data; } void cleanup_test_data(struct test_data *data) { int i; int num_results = (data->expected_rows + 1) * (data->expected_columns); for (i = 0; i < num_results; ++i) { free(data->expected_results[i]); } free(data->expected_results); free(data->expected_precision); free(data->test_case_name); free(data->database_name); free(data->sql_statement); free(data); } int test_case_filter(const struct dirent *entry) { return (fnmatch("*.testcase", entry->d_name, FNM_PERIOD) == 0); } int run_all_testcases() { struct dirent **namelist; int n; int i; int result = 0; const char *security_level; n = scandir("sql_stmt_tests", &namelist, test_case_filter, alphasort); if (n < 0) { perror("scandir"); return -1; } for (i = 0; i < n; ++i) { struct test_data *data; char *path; if (asprintf(&path, "sql_stmt_tests/%s", namelist[i]->d_name) < 0) { return -1; } data = read_one_case(path); free(path); result = do_one_case(data); cleanup_test_data(data); if (result != 0) { return result; } free(namelist[i]); } free(namelist); security_level = getenv ("SPATIALITE_SECURITY"); if (security_level == NULL) ; else if (strcasecmp (security_level, "relaxed") == 0) { n = scandir("sql_stmt_security_tests", &namelist, test_case_filter, alphasort); if (n < 0) { perror("scandir"); return -1; } for (i = 0; i < n; ++i) { struct test_data *data; char *path; if (asprintf(&path, "sql_stmt_security_tests/%s", namelist[i]->d_name) < 0) { return -1; } data = read_one_case(path); free(path); result = do_one_case(data); cleanup_test_data(data); if (result != 0) { return result; } free(namelist[i]); } free(namelist); } #ifndef OMIT_MATHSQL /* only if MATHSQL is supported */ n = scandir("sql_stmt_mathsql_tests", &namelist, test_case_filter, alphasort); if (n < 0) { perror("scandir"); return -1; } for (i = 0; i < n; ++i) { struct test_data *data; char *path; if (asprintf(&path, "sql_stmt_mathsql_tests/%s", namelist[i]->d_name) < 0) { return -1; } data = read_one_case(path); free(path); result = do_one_case(data); cleanup_test_data(data); if (result != 0) { return result; } free(namelist[i]); } free(namelist); #endif /* end MATHSQL conditional */ #ifndef OMIT_PROJ /* only if PROJ is supported */ n = scandir("sql_stmt_proj_tests", &namelist, test_case_filter, alphasort); if (n < 0) { perror("scandir"); return -1; } for (i = 0; i < n; ++i) { struct test_data *data; char *path; if (asprintf(&path, "sql_stmt_proj_tests/%s", namelist[i]->d_name) < 0) { return -1; } data = read_one_case(path); free(path); result = do_one_case(data); cleanup_test_data(data); if (result != 0) { return result; } free(namelist[i]); } free(namelist); #endif /* end PROJ conditional */ #ifndef OMIT_GEOS /* only if GEOS is supported */ if (strcmp(GEOSversion (), "3.3") < 0) { /* skipping GEOS tests if some obsolete version is found rationale: obsolete versions may return substantially different results, thus causing many testcases to fail */ fprintf(stderr, "WARNING: skipping GEOS testcases; obsolete version found !!!\n"); goto skip_geos; } n = scandir("sql_stmt_geos_tests", &namelist, test_case_filter, alphasort); if (n < 0) { perror("scandir"); return -1; } for (i = 0; i < n; ++i) { struct test_data *data; char *path; if (asprintf(&path, "sql_stmt_geos_tests/%s", namelist[i]->d_name) < 0) { return -1; } data = read_one_case(path); free(path); result = do_one_case(data); cleanup_test_data(data); if (result != 0) { return result; } free(namelist[i]); } free(namelist); skip_geos: #endif /* end GEOS conditional */ #ifdef GEOS_ADVANCED /* only if GEOS_ADVANCED is supported */ if (strcmp(GEOSversion (), "3.3") < 0) { /* skipping GEOS tests if some obsolete version is found rationale: obsolete versions may return substantially different results, thus causing many testcases to fail */ fprintf(stderr, "WARNING: skipping GEOS_ADVANCED testcases; obsolete version found !!!\n"); goto skip_geos_advanced; } n = scandir("sql_stmt_geosadvanced_tests", &namelist, test_case_filter, alphasort); if (n < 0) { perror("scandir"); return -1; } for (i = 0; i < n; ++i) { struct test_data *data; char *path; if (asprintf(&path, "sql_stmt_geosadvanced_tests/%s", namelist[i]->d_name) < 0) { return -1; } data = read_one_case(path); free(path); result = do_one_case(data); cleanup_test_data(data); if (result != 0) { return result; } free(namelist[i]); } free(namelist); skip_geos_advanced: #endif /* end GEOS_ADVANCED conditional */ #ifdef GEOS_TRUNK /* only if GEOS_TRUNK is supported */ if (strcmp(GEOSversion (), "3.3") < 0) { /* skipping GEOS tests if some obsolete version is found rationale: obsolete versions may return substantially different results, thus causing many testcases to fail */ fprintf(stderr, "WARNING: skipping GEOS_TRUNK testcases; obsolete version found !!!\n"); goto skip_geos_trunk; } n = scandir("sql_stmt_geostrunk_tests", &namelist, test_case_filter, alphasort); if (n < 0) { perror("scandir"); return -1; } for (i = 0; i < n; ++i) { struct test_data *data; char *path; if (asprintf(&path, "sql_stmt_geostrunk_tests/%s", namelist[i]->d_name) < 0) { return -1; } data = read_one_case(path); free(path); result = do_one_case(data); cleanup_test_data(data); if (result != 0) { return result; } free(namelist[i]); } free(namelist); skip_geos_trunk: #endif /* end GEOS_TRUNK conditional */ #ifdef ENABLE_LWGEOM /* only if LWGEOM is supported */ n = scandir("sql_stmt_lwgeom_tests", &namelist, test_case_filter, alphasort); if (n < 0) { perror("scandir"); return -1; } for (i = 0; i < n; ++i) { struct test_data *data; char *path; if (asprintf(&path, "sql_stmt_lwgeom_tests/%s", namelist[i]->d_name) < 0) { return -1; } data = read_one_case(path); free(path); result = do_one_case(data); cleanup_test_data(data); if (result != 0) { return result; } free(namelist[i]); } free(namelist); #endif /* end LWGEOM conditional */ #ifdef ENABLE_LIBXML2 /* only if LIBXML2 is supported */ n = scandir("sql_stmt_libxml2_tests", &namelist, test_case_filter, alphasort); if (n < 0) { perror("scandir"); return -1; } for (i = 0; i < n; ++i) { struct test_data *data; char *path; if (asprintf(&path, "sql_stmt_libxml2_tests/%s", namelist[i]->d_name) < 0) { return -1; } data = read_one_case(path); free(path); result = do_one_case(data); cleanup_test_data(data); if (result != 0) { return result; } free(namelist[i]); } free(namelist); security_level = getenv ("SPATIALITE_SECURITY"); if (security_level == NULL) ; else if (strcasecmp (security_level, "relaxed") == 0) { n = scandir("sql_stmt_xmlsec_tests", &namelist, test_case_filter, alphasort); if (n < 0) { perror("scandir"); return -1; } for (i = 0; i < n; ++i) { struct test_data *data; char *path; if (asprintf(&path, "sql_stmt_xmlsec_tests/%s", namelist[i]->d_name) < 0) { return -1; } data = read_one_case(path); free(path); result = do_one_case(data); cleanup_test_data(data); if (result != 0) { return result; } free(namelist[i]); } free(namelist); } xmlCleanupParser(); #endif /* end LIBXML2 conditional */ return result; } int run_specified_testcases(int argc, char *argv[]) { int result = 0; int i = 0; for (i = 1; i < argc; ++i) { struct test_data *data; data = read_one_case(argv[i]); result = do_one_case(data); cleanup_test_data(data); if (result != 0) { break; } } return result; } int main (int argc, char *argv[]) { int result = 0; if (argc == 1) { result = run_all_testcases(); } else { result = run_specified_testcases(argc, argv); } if (result != 0) { /* it looks like if MinGW applies some wrong assumption */ /* some negative values are incorrectly reported to be OK */ /* forcing -1 seems to resolve this issue */ result = -1; } return result; } libspatialite-4.1.1/test/shapetest1.qpj0000664000175000017500000000043012163502133015033 00000000000000GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4326"]] libspatialite-4.1.1/test/shapetest1.dbf0000664000175000017500000000030712163502133014777 00000000000000_a3Wtestcase1C(testcase2N windward 2 orde lees 20libspatialite-4.1.1/test/shape_utf8_1.c0000664000175000017500000002753112163502133014703 00000000000000/* shape_utf8_1.c -- SpatiaLite Test Case Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Ahmadou Dicko Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" void cleanup_shapefile(const char *filename) { char nam[1000]; if (!filename) { return; } snprintf(nam, 1000, "%s.dbf", filename); unlink(nam); snprintf(nam, 1000, "%s.prj", filename); unlink(nam); snprintf(nam, 1000, "%s.shp", filename); unlink(nam); snprintf(nam, 1000, "%s.shx", filename); unlink(nam); } int do_test(sqlite3 *handle, int legacy) { #ifndef OMIT_ICONV /* only if ICONV is supported */ int ret; char *dumpname = __FILE__"dump"; char *err_msg = NULL; int row_count; ret = load_shapefile (handle, "./shp/gaza/barrier", "barrier", "UTF-8", 4326, NULL, 1, 0, 1, 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "load_shapefile() error for shp/gaza/barrier: %s\n", err_msg); sqlite3_close(handle); return -3; } if (row_count != 5) { fprintf (stderr, "unexpected row count for shp/gaza/barrier: %i\n", row_count); sqlite3_close(handle); return -4; } ret = load_shapefile (handle, "./shp/gaza/aeroway", "aeroway", "UTF-8", 4326, "col1", 1, 0, 0, 0, &row_count, err_msg); if (!ret) { fprintf (stderr, "load_shapefile() error for shp/gaza/aeroway: %s\n", err_msg); sqlite3_close(handle); return -5; } if (row_count != 1) { fprintf (stderr, "unexpected row count for shp/gaza/aeroway: %i\n", row_count); sqlite3_close(handle); return -6; } ret = load_shapefile (handle, "./shp/gaza/route", "route", "UTF-8", 4326, NULL, 1, 0, 1, 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "load_shapefile() error for shp/gaza/route: %s\n", err_msg); sqlite3_close(handle); return -7; } if (row_count != 2) { fprintf (stderr, "unexpected row count for shp/gaza/route: %i\n", row_count); sqlite3_close(handle); return -8; } if (legacy) { sqlite3_exec (handle, "DELETE FROM layer_statistics", NULL, NULL, NULL); sqlite3_exec (handle, "DELETE FROM views_layer_statistics", NULL, NULL, NULL); } else { sqlite3_exec (handle, "DELETE FROM geometry_columns_statistics", NULL, NULL, NULL); sqlite3_exec (handle, "DELETE FROM views_geometry_columns_statistics", NULL, NULL, NULL); } ret = dump_shapefile (handle, "route", "Geometry", dumpname, "UTF-8", "", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error for UTF-8_1 route: %s\n", err_msg); sqlite3_close(handle); return -9; } cleanup_shapefile(dumpname); if (row_count != 2) { fprintf (stderr, "unexpected dump row count for UTF-8_1 route: %i\n", row_count); sqlite3_close(handle); return -10; } ret = dump_shapefile (handle, "route", "Geometry", dumpname, "UTF-8", "LINESTRING", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error for UTF-8_1 route: %s\n", err_msg); sqlite3_close(handle); return -13; } cleanup_shapefile(dumpname); if (row_count != 2) { fprintf (stderr, "unexpected dump row count for UTF-8_1 route LINESTRING: %i\n", row_count); sqlite3_close(handle); return -14; } ret = sqlite3_exec (handle, "SELECT DiscardGeometryColumn('route', 'Geometry')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DiscardGeometry route error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -15; } if (legacy) ret = sqlite3_exec (handle, "INSERT INTO geometry_columns (f_table_name, f_geometry_column, type, coord_dimension, srid, spatial_index_enabled) VALUES ('beta', 'gamma', 'LINESTRING', 'XY', 4326, 0)", NULL, NULL, &err_msg); else ret = sqlite3_exec (handle, "INSERT INTO geometry_columns (f_table_name, f_geometry_column, geometry_type, coord_dimension, srid, spatial_index_enabled) VALUES (Lower('Beta'), Lower('Gamma'), 2, 2, 4326, 0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "GeometryColumns route error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -16; } if (legacy) { sqlite3_exec (handle, "DELETE FROM layer_statistics", NULL, NULL, NULL); ret = sqlite3_exec (handle, "INSERT INTO views_geometry_columns (view_name, view_geometry, view_rowid, f_table_name, f_geometry_column) VALUES ('route', 'Geometry', 'ROWID', 'beta', 'gamma')", NULL, NULL, &err_msg); } else { sqlite3_exec (handle, "DELETE FROM geometry_columns_statistics", NULL, NULL, NULL); ret = sqlite3_exec (handle, "INSERT INTO views_geometry_columns (view_name, view_geometry, view_rowid, f_table_name, f_geometry_column, read_only) VALUES (Lower('Route'), Lower('Geometry'), Lower('ROWID'), Lower('Beta'), Lower('gamma'), 1)", NULL, NULL, &err_msg); } if (ret != SQLITE_OK) { fprintf (stderr, "ViewsGeometryColumns route error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -17; } ret = dump_shapefile (handle, "route", "Geometry", dumpname, "UTF-8", NULL, 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error for UTF-8_1 route (2): %s\n", err_msg); sqlite3_close(handle); return -17; } cleanup_shapefile(dumpname); if (row_count != 2) { fprintf (stderr, "unexpected dump row count for UTF-8_1 route LINESTRING (2): %i\n", row_count); sqlite3_close(handle); return -18; } if (legacy) { /* final DB cleanup */ ret = sqlite3_exec (handle, "DROP TABLE aeroway", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE aeroway error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -19; } ret = sqlite3_exec (handle, "DROP TABLE barrier", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE barrier error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -20; } ret = sqlite3_exec (handle, "DROP TABLE route", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE route error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -21; } ret = sqlite3_exec (handle, "DROP TABLE idx_route_Geometry", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE idx_route_Geometry error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -22; } ret = sqlite3_exec (handle, "DROP TABLE idx_barrier_Geometry", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE idx_barrier_Geometry error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -23; } ret = sqlite3_exec (handle, "DELETE FROM geometry_columns", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DELETE FROM geometry_columns error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -24; } ret = sqlite3_exec (handle, "DELETE FROM views_geometry_columns", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DELETE FROM views_geometry_columns error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -25; } ret = sqlite3_exec (handle, "DELETE FROM spatialite_history WHERE geometry_column IS NOT NULL", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DELETE FROM spatialite_history error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -26; } ret = sqlite3_exec (handle, "VACUUM", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VACUUM error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -27; } } #endif /* end ICONV conditional */ /* ok, succesfull termination */ return 0; } int main (int argc, char *argv[]) { #ifndef OMIT_ICONV /* only if ICONV is supported */ int ret; sqlite3 *handle; char *err_msg = NULL; void *cache = spatialite_alloc_connection(); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ /* testing current style metadata layout >= v.4.0.0 */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); sqlite3_close(handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -2; } ret = do_test(handle, 0); if (ret != 0) { fprintf(stderr, "error while testing current style metadata layout\n"); return ret; } ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -19; } spatialite_cleanup_ex (cache); /* testing legacy style metadata layout <= v.3.1.0 */ cache = spatialite_alloc_connection(); ret = system("cp test-legacy-3.0.1.sqlite copy-legacy-3.0.1.sqlite"); if (ret != 0) { fprintf(stderr, "cannot copy legacy v.3.0.1 database\n"); return -1; } ret = sqlite3_open_v2 ("copy-legacy-3.0.1.sqlite", &handle, SQLITE_OPEN_READWRITE, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "cannot open legacy v.3.0.1 database: %s\n", sqlite3_errmsg (handle)); sqlite3_close(handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = do_test(handle, 1); if (ret != 0) { fprintf(stderr, "error while testing legacy style metadata layout\n"); return ret; } ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -19; } spatialite_cleanup_ex (cache); ret = unlink("copy-legacy-3.0.1.sqlite"); if (ret != 0) { fprintf(stderr, "cannot remove legacy v.3.0.1 database\n"); return -20; } #endif /* end ICONV conditional */ return 0; } libspatialite-4.1.1/test/check_init2.c0000664000175000017500000002420512163502133014572 00000000000000/* check_init2.c -- SpatiaLite Test Case Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include "sqlite3.h" #include "spatialite.h" int main (int argc, char *argv[]) { int ret; sqlite3 *handle; char *err_msg = NULL; char **results; int rows; int columns; void *cache = spatialite_alloc_connection(); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle)); sqlite3_close(handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(\"NONE\")", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata(\"NONE\") error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -2; } ret = sqlite3_exec (handle, "SELECT InsertEpsgSrid(4326)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Insert SRID 4326 error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -3; } ret = sqlite3_exec (handle, "SELECT InsertEpsgSrid(2998)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Insert SRID 2998 error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -4; } ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -5; } spatialite_cleanup_ex (cache); cache = spatialite_alloc_connection(); ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle)); sqlite3_close(handle); return -6; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_get_table (handle, "SELECT InitSpatialMetadata(3.4)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -7; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected result InitSpatialMetadata() bad result: %i/%i.\n", rows, columns); return -8; } if (strcmp(results[1], "0") != 0) { fprintf (stderr, "Unexpected result: InitSpatialMetadata() with non-text passed: %s.\n", results[1]); return -9; } sqlite3_free_table (results); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -10; } spatialite_cleanup_ex (cache); cache = spatialite_alloc_connection(); ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle)); sqlite3_close(handle); return -11; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_get_table (handle, "SELECT InitSpatialMetadata(\"EMPTY\")", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -12; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected result InitSpatialMetadata(\"EMPTY\") bad result: %i/%i.\n", rows, columns); return -13; } if (strcmp(results[1], "1") != 0) { fprintf (stderr, "Unexpected error: InitSpatialMetadata(\"EMPTY\"): %s.\n", results[1]); return -14; } sqlite3_free_table (results); ret = sqlite3_get_table (handle, "SELECT InsertEpsgSrid(4326)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -15; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected result InsertEpsgSrid(4326) bad result: %i/%i.\n", rows, columns); return -16; } if (strcmp(results[1], "1") != 0) { fprintf (stderr, "Unexpected error: InsertEpsgSrid(4326): %s.\n", results[1]); return -17; } sqlite3_free_table (results); ret = sqlite3_get_table (handle, "SELECT InsertEpsgSrid(\"Non-integer\")", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -18; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected result InsertEpsgSrid(\"Non-integer\") bad result: %i/%i.\n", rows, columns); return -19; } if (strcmp(results[1], "0") != 0) { fprintf (stderr, "Unexpected result: InsertEpsgSrid() with non-integer passed: %s.\n", results[1]); return -20; } sqlite3_free_table (results); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -21; } spatialite_cleanup_ex (cache); cache = spatialite_alloc_connection(); ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle)); sqlite3_close(handle); return -22; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_get_table (handle, "SELECT InitSpatialMetadata(\"WGS84\")", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -23; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected result InitSpatialMetadata(\"WGS84\") bad result: %i/%i.\n", rows, columns); return -24; } if (strcmp(results[1], "1") != 0) { fprintf (stderr, "Unexpected error: InitSpatialMetadata(\"WGS84\"): %s.\n", results[1]); return -25; } sqlite3_free_table (results); ret = sqlite3_get_table (handle, "SELECT InsertEpsgSrid(3003)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -26; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected result InsertEpsgSrid(3003) bad result: %i/%i.\n", rows, columns); return -27; } if (strcmp(results[1], "1") != 0) { fprintf (stderr, "Unexpected error: InsertEpsgSrid(3003): %s.\n", results[1]); return -28; } sqlite3_free_table (results); ret = sqlite3_get_table (handle, "SELECT InsertEpsgSrid(4326)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -29; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected result InsertEpsgSrid(4326) (dupe) bad result: %i/%i.\n", rows, columns); return -30; } if (strcmp(results[1], "0") != 0) { fprintf (stderr, "Unexpected result: InsertEpsgSrid(4326) duplicate passed: %s.\n", results[1]); return -31; } sqlite3_free_table (results); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -32; } spatialite_cleanup_ex (cache); cache = spatialite_alloc_connection(); ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle)); sqlite3_close(handle); return -33; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_get_table (handle, "SELECT InitSpatialMetadata(\"WGS84_only\")", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -34; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected result InitSpatialMetadata(\"WGS84_ONLY\") bad result: %i/%i.\n", rows, columns); return -35; } if (strcmp(results[1], "1") != 0) { fprintf (stderr, "Unexpected error: InitSpatialMetadata(\"WGS84_ONLY\"): %s.\n", results[1]); return -36; } sqlite3_free_table (results); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -32; } spatialite_cleanup_ex (cache); return 0; } libspatialite-4.1.1/test/shapetest1.shp0000664000175000017500000000023412163502133015035 00000000000000' N '_JA1d%QA0giJAR#R&QA  '_JA1d%QA 0giJAR#R&QAlibspatialite-4.1.1/test/scandir4win.h0000664000175000017500000000740112163502133014641 00000000000000/* * scandir() for win32 * this tool should make life easier for people writing for both unix and wintel * written by Tom Torfs, 2002/10/31 * donated to the public domain; use this code for anything you like as long as * it is understood there are absolutely *NO* warranties of any kind, even implied */ #ifdef _WIN32 #include #include #include #define MAXNAMLEN FILENAME_MAX /* directory entry structure */ struct dirent { char d_name[MAXNAMLEN + 1]; /* name of directory entry (0 terminated) */ ino_t d_ino; /* file serial number -- will be 0 for win32 */ short d_namlen; /* length of string in d_name */ short d_reclen; /* length of this record */ }; /* the scandir() function */ int scandir (const char *dirname, struct dirent ***namelist, int (*select) (const struct dirent *), int (*compar) (const void *, const void *)); /* compare function for scandir() for alphabetic sort (case-insensitive on Win32) */ int alphasort (const void *d1, const void *d2); /* case-insensitive strcmp() */ int istrcmp (const char *s1, const char *s2); #endif /* * scandir() for win32 * this tool should make life easier for people writing for both unix and wintel * written by Tom Torfs, 2002/10/31 * donated to the public domain; use this code for anything you like as long as * it is understood there are absolutely *NO* warranties of any kind, even implied */ int scandir (const char *dirname, struct dirent ***namelist, int (*select) (const struct dirent *), int (*compar) (const void *, const void *)) { WIN32_FIND_DATA wfd; HANDLE hf; struct dirent **plist, **newlist; struct dirent d; int numentries = 0; int allocentries = 255; int i; char path[FILENAME_MAX]; i = strlen (dirname); if (i > sizeof path - 5) return -1; strcpy (path, dirname); if (i > 0 && dirname[i - 1] != '\\' && dirname[i - 1] != '/') strcat (path, "\\"); strcat (path, "*.*"); hf = FindFirstFile (path, &wfd); if (hf == INVALID_HANDLE_VALUE) return -1; plist = malloc (sizeof *plist * allocentries); if (plist == NULL) { FindClose (hf); return -1; } do { if (numentries == allocentries) { allocentries *= 2; newlist = realloc (plist, sizeof *plist * allocentries); if (newlist == NULL) { for (i = 0; i < numentries; i++) free (plist[i]); free (plist); FindClose (hf); return -1; } plist = newlist; } strncpy (d.d_name, wfd.cFileName, sizeof d.d_name); d.d_ino = 0; d.d_namlen = strlen (wfd.cFileName); d.d_reclen = sizeof d; if (select == NULL || select (&d)) { plist[numentries] = malloc (sizeof d); if (plist[numentries] == NULL) { for (i = 0; i < numentries; i++) free (plist[i]); free (plist); FindClose (hf); return -1; }; memcpy (plist[numentries], &d, sizeof d); numentries++; } } while (FindNextFile (hf, &wfd)); FindClose (hf); if (numentries == 0) { free (plist); *namelist = NULL; } else { newlist = realloc (plist, sizeof *plist * numentries); if (newlist != NULL) plist = newlist; if (compar != NULL) qsort (plist, numentries, sizeof *plist, compar); *namelist = plist; } return numentries; } int alphasort (const void *x1, const void *x2) { const struct dirent **d1 = (const struct dirent **) x1; const struct dirent **d2 = (const struct dirent **) x2; return istrcmp ((*d1)->d_name, (*d2)->d_name); } int istrcmp (const char *s1, const char *s2) { int d; for (;;) { d = tolower (*s1) - tolower (*s2); if (d != 0 || *s1 == '\0' || *s2 == '\0') return d; s1++; s2++; } } libspatialite-4.1.1/test/fnmatch_impl4win.h0000664000175000017500000002032112163502133015653 00000000000000/* * Copyright (c) 1989, 1993, 1994 * The Regents of the University of California. All rights reserved. * * This code is derived from software contributed to Berkeley by * Guido van Rossum. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the University of * California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * From FreeBSD fnmatch.c 1.11 * $Id: fnmatch.c 273994 2009-01-20 01:37:48Z pajoye $ */ #if defined(LIBC_SCCS) && !defined(lint) static char sccsid[] = "@(#)fnmatch.c 8.2 (Berkeley) 4/16/94"; #endif /* LIBC_SCCS and not lint */ /* * Function fnmatch() as specified in POSIX 1003.2-1992, section B.6. * Compares a filename or pathname to a pattern. */ #define EOS '\0' static const char *rangematch(const char *, char, int); int fnmatch(const char *pattern, const char *string, int flags) { const char *stringstart; char c, test; for (stringstart = string;;) switch (c = *pattern++) { case EOS: if ((flags & FNM_LEADING_DIR) && *string == '/') return (0); return (*string == EOS ? 0 : FNM_NOMATCH); case '?': if (*string == EOS) return (FNM_NOMATCH); if (*string == '/' && (flags & FNM_PATHNAME)) return (FNM_NOMATCH); if (*string == '.' && (flags & FNM_PERIOD) && (string == stringstart || ((flags & FNM_PATHNAME) && *(string - 1) == '/'))) return (FNM_NOMATCH); ++string; break; case '*': c = *pattern; /* Collapse multiple stars. */ while (c == '*') c = *++pattern; if (*string == '.' && (flags & FNM_PERIOD) && (string == stringstart || ((flags & FNM_PATHNAME) && *(string - 1) == '/'))) return (FNM_NOMATCH); /* Optimize for pattern with * at end or before /. */ if (c == EOS) if (flags & FNM_PATHNAME) return ((flags & FNM_LEADING_DIR) || strchr(string, '/') == NULL ? 0 : FNM_NOMATCH); else return (0); else if (c == '/' && flags & FNM_PATHNAME) { if ((string = strchr(string, '/')) == NULL) return (FNM_NOMATCH); break; } /* General case, use recursion. */ while ((test = *string) != EOS) { if (!fnmatch(pattern, string, flags & ~FNM_PERIOD)) return (0); if (test == '/' && flags & FNM_PATHNAME) break; ++string; } return (FNM_NOMATCH); case '[': if (*string == EOS) return (FNM_NOMATCH); if (*string == '/' && flags & FNM_PATHNAME) return (FNM_NOMATCH); if ((pattern = rangematch(pattern, *string, flags)) == NULL) return (FNM_NOMATCH); ++string; break; case '\\': if (!(flags & FNM_NOESCAPE)) { if ((c = *pattern++) == EOS) { c = '\\'; --pattern; } } /* FALLTHROUGH */ default: if (c == *string) ; else if ((flags & FNM_CASEFOLD) && (tolower((unsigned char)c) == tolower((unsigned char)*string))) ; else if ((flags & FNM_PREFIX_DIRS) && *string == EOS && (c == '/' && string != stringstart || string == stringstart+1 && *stringstart == '/') ) return (0); else return (FNM_NOMATCH); string++; break; } /* NOTREACHED */ } static const char * rangematch(const char *pattern, char test, int flags) { int negate, ok; char c, c2; /* * A bracket expression starting with an unquoted circumflex * character produces unspecified results (IEEE 1003.2-1992, * 3.13.2). This implementation treats it like '!', for * consistency with the regular expression syntax. * J.T. Conklin (conklin@ngai.kaleida.com) */ if ( (negate = (*pattern == '!' || *pattern == '^')) ) ++pattern; if (flags & FNM_CASEFOLD) test = tolower((unsigned char)test); for (ok = 0; (c = *pattern++) != ']';) { if (c == '\\' && !(flags & FNM_NOESCAPE)) c = *pattern++; if (c == EOS) return (NULL); if (flags & FNM_CASEFOLD) c = tolower((unsigned char)c); if (*pattern == '-' && (c2 = *(pattern+1)) != EOS && c2 != ']') { pattern += 2; if (c2 == '\\' && !(flags & FNM_NOESCAPE)) c2 = *pattern++; if (c2 == EOS) return (NULL); if (flags & FNM_CASEFOLD) c2 = tolower((unsigned char)c2); if ((unsigned char)c <= (unsigned char)test && (unsigned char)test <= (unsigned char)c2) ok = 1; } else if (c == test) ok = 1; } return (ok == negate ? NULL : pattern); } libspatialite-4.1.1/test/sql_stmt_geos_tests/0000775000175000017500000000000012163503227016433 500000000000000libspatialite-4.1.1/test/sql_stmt_geos_tests/union27.testcase0000664000175000017500000000026512163502133021407 00000000000000union - POINT :memory: #use in-memory database SELECT AsText(GUnion(makepoint(1,2))) 1 # rows (not including the header row) 1 # columns AsText(GUnion(makepoint(1,2))) POINT(1 2) libspatialite-4.1.1/test/sql_stmt_geos_tests/isvalid13.testcase0000664000175000017500000000071712163502133021707 00000000000000isvalid (POLYGONZM with hole) :memory: #use in-memory database SELECT IsValid(GeomFromText("POLYGONZM((10 10 100 1, 15 10 101 2, 15 15 102 3, 10 15 103 4, 10 10 100 1), (11 11 100 1, 12 11 101 2, 12 12 102 3, 11 12 103 4, 11 11 100 1))")); 1 # rows (not including the header row) 1 # columns IsValid(GeomFromText("POLYGONZM((10 10 100 1, 15 10 101 2, 15 15 102 3, 10 15 103 4, 10 10 100 1), (11 11 100 1, 12 11 101 2, 12 12 102 3, 11 12 103 4, 11 11 100 1))")) 1 libspatialite-4.1.1/test/sql_stmt_geos_tests/intersection4.testcase0000664000175000017500000000033412163502133022675 00000000000000intersection - null second point :memory: #use in-memory database SELECT AsText(Intersection(MakePoint(2,3), null)); 1 # rows (not including the header row) 1 # columns AsText(Intersection(MakePoint(2,3), null)) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/isclosed1.testcase0000664000175000017500000000040712163502133021772 00000000000000isclosed1 :memory: #use in-memory database SELECT IsClosed(GeomFromText("LINESTRING(136 -35, 135.2 -34.5, 136 -35.2, 136 -35)")); 1 # rows (not including the header row) 1 # columns IsClosed(GeomFromText("LINESTRING(136 -35, 135.2 -34.5, 136 -35.2, 136 -35)")) 1 libspatialite-4.1.1/test/sql_stmt_geos_tests/symdifference6.testcase0000664000175000017500000000034712163502133023020 00000000000000symdifference - non-blob second point :memory: #use in-memory database SELECT AsText(SymDifference(MakePoint(1,2),"hello")) 1 # rows (not including the header row) 1 # columns AsText(SymDifference(MakePoint(1,2),"hello")) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/st_area6.testcase0000664000175000017500000000025112163502133021605 00000000000000ST_Area - bad blob (error) :memory: #use in-memory database SELECT ST_Area(zeroblob(4)); 1 # rows (not including the header row) 1 # columns ST_Area(zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/polygonize11.testcase0000664000175000017500000000040412163502133022442 00000000000000POLYGONIZE - points :memory: #use in-memory database SELECT AsText(Polygonize(GeomFromText("MULTIPOINT(0 0, 1 1, 0 2, -1 1)"))); 1 # rows (not including the header row) 1 # columns AsText(Polygonize(GeomFromText("MULTIPOINT(0 0, 1 1, 0 2, -1 1)"))); (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/boundary7.testcase0000664000175000017500000000046712163502133022024 00000000000000Boundary - open linestringZM :memory: #use in-memory database SELECT AsText(Boundary(GeomFromText("LINESTRINGZM(1 2 3 5, 4 -3 6 -3, 2 -1 -4 8)"))) 1 # rows (not including the header row) 1 # columns AsText(Boundary(GeomFromText("LINESTRINGZM(1 2 3 5, 4 -3 6 -3, 2 -1 -4 8)"))) MULTIPOINT ZM(1 2 3 0, 2 -1 -4 0) libspatialite-4.1.1/test/sql_stmt_geos_tests/union28.testcase0000664000175000017500000000024212163502133021403 00000000000000union - zeroblob :memory: #use in-memory database SELECT GUnion(zeroblob(100)) 1 # rows (not including the header row) 1 # columns GUnion(zeroblob(100)) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/distance1.testcase0000664000175000017500000000032312163502133021754 00000000000000Distance - two points :memory: #use in-memory database SELECT ST_Distance(MakePoint(1, 2), MakePoint(4, 6)) 1 # rows (not including the header row) 1 # columns ST_Distance(MakePoint(1, 2), MakePoint(4, 6)) 5.0 libspatialite-4.1.1/test/sql_stmt_geos_tests/bdmpolyfromtext13.testcase0000664000175000017500000000043212163502133023505 00000000000000BdMPolyFromText - text SRID :memory: #use in-memory database SELECT BdMPolyFromText('MULTILINESTRING((0 0, 1 0, 1 1, 0 1, 0 0))', "not an int"); 1 # rows (not including the header row) 1 # columns BdMPolyFromText('MULTILINESTRING((0 0, 1 0, 1 1, 0 1, 0 0))', "not an int") (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/st_perimeter11.testcase0000664000175000017500000000121212163502133022743 00000000000000ST_Perimeter - GeometryCollection :memory: #use in-memory database SELECT ST_Perimeter(GeomFromText("GEOMETRYCOLLECTION(POINT(100 100), POLYGON((0 0, 0 4, 4 4, 4 0, 0 0),(1 1, 1 3, 3 3, 3 1, 1 1)), POLYGON((10 10, 11 10, 11 11, 10 11, 10 10)), LINESTRING(0 0, 0 4, 4 4, 4 0, 0 0), LINESTRING(10 10, 11 10, 11 11), POINT(200 200))")); 1 # rows (not including the header row) 1 # columns ST_Perimeter(GeomFromText("GEOMETRYCOLLECTION(POINT(100 100), POLYGON((0 0, 0 4, 4 4, 4 0, 0 0),(1 1, 1 3, 3 3, 3 1, 1 1)), POLYGON((10 10, 11 10, 11 11, 10 11, 10 10)), LINESTRING(0 0, 0 4, 4 4, 4 0, 0 0), LINESTRING(10 10, 11 10, 11 11), POINT(200 200))")) 28.0 libspatialite-4.1.1/test/sql_stmt_geos_tests/boundary2.testcase0000664000175000017500000000023212163502133022005 00000000000000Boundary - non-blob :memory: #use in-memory database SELECT Boundary("hello") 1 # rows (not including the header row) 1 # columns Boundary("hello") (NULL)libspatialite-4.1.1/test/sql_stmt_geos_tests/bdmpolyfromtext10.testcase0000664000175000017500000000030312163502133023477 00000000000000BdMPolyFromText - point, no SRID :memory: #use in-memory database SELECT BdMPolyFromText("Point(1 2)"); 1 # rows (not including the header row) 1 # columns BdMPolyFromText("Point(1 2)") (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/difference12.testcase0000664000175000017500000000055412163502133022344 00000000000000difference - toxic second point :memory: #use in-memory database SELECT ST_Difference(MakePoint(136,-35), GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))")) 1 # rows (not including the header row) 1 # columns ST_Difference(MakePoint(136,-35), GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))")) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/ptdistwithin4.testcase0000664000175000017500000000043112163502133022717 00000000000000PtDistWithin invalid arg: NULL use-sferoid :memory: SELECT PtDistWithin(GeomFromText("POINT(5.1 5.1)", 4326), GeomFromText("POINT(5 5)", 4326), 10.0, NULL); 1 # rows 1 # column PtDistWithin(GeomFromText("POINT(5.1 5.1)", 4326), GeomFromText("POINT(5 5)", 4326), 10.0, NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/difference3.testcase0000664000175000017500000000032512163502133022260 00000000000000difference - null first point :memory: #use in-memory database SELECT AsText(Difference(null, MakePoint(2,3))); 1 # rows (not including the header row) 1 # columns AsText(Difference(null, MakePoint(2,3))) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/bdpolyfromwkb6.testcase0000664000175000017500000000025412163502133023053 00000000000000BdPolyFromWKB - null, no SRID :memory: #use in-memory database SELECT BdPolyFromWKB(null); 1 # rows (not including the header row) 1 # columns BdPolyFromWKB(null) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/st_perimeter6.testcase0000664000175000017500000000027012163502133022672 00000000000000ST_Perimeter - bad blob (error) :memory: #use in-memory database SELECT ST_Perimeter(zeroblob(4)); 1 # rows (not including the header row) 1 # columns ST_Perimeter(zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/isclosed6.testcase0000664000175000017500000000046512163502133022003 00000000000000isclosed - multilinestring, one linestring :memory: #use in-memory database SELECT IsClosed(GeomFromText("MULTILINESTRING((136 -35, 135.2 -34.5, 136 -35.2, 136 -36))")) 1 # rows (not including the header row) 1 # columns IsClosed(GeomFromText("MULTILINESTRING((136 -35, 135.2 -34.5, 136 -35.2, 136 -36))")) 0 libspatialite-4.1.1/test/sql_stmt_geos_tests/union10.testcase0000664000175000017500000000043712163502133021400 00000000000000union - POINTM :memory: #use in-memory database SELECT AsText(GUnion(GeomFromText("POINTM(1 3 4)"),GeomFromText("POINTM(2 5 9)"))) 1 # rows (not including the header row) 1 # columns AsText(GUnion(GeomFromText("POINTM(1 3 4)"),GeomFromText("POINTM(2 5 9)"))) MULTIPOINT M(1 3 0, 2 5 0) libspatialite-4.1.1/test/sql_stmt_geos_tests/ptdistancewithin13.testcase0000664000175000017500000000036512163502133023634 00000000000000PtDistWithin - WGS-84 both args :memory: #use in-memory database SELECT PtDistWithin(MakePoint(4, 2, 4326), MakePoint(4,4,4326), 2) 1 # rows (not including the header row) 1 # columns PtDistWithin(MakePoint(4, 2, 4326), MakePoint(4,4,4326), 2) 0libspatialite-4.1.1/test/sql_stmt_geos_tests/bdmpolyfromwkb16.testcase0000664000175000017500000000067112163502133023314 00000000000000BdMPolyFromWKB :memory: #use in-memory database SELECT AsEwkt(BdMPolyFromWKB(AsBinary(GeomFromText('MULTILINESTRING((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 2 8, 8 8, 8 2, 2 2))')), 4326)); 1 # rows (not including the header row) 1 # columns AsEwkt(BdMPolyFromWKB(AsBinary(GeomFromText('MULTILINESTRING((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 2 8, 8 8, 8 2, 2 2))')), 4326)) SRID=4326;MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0),(2 2,8 2,8 8,2 8,2 2))) libspatialite-4.1.1/test/sql_stmt_geos_tests/simplify15.testcase0000664000175000017500000000040312163502133022102 00000000000000Simplify - toxic first arg :memory: #use in-memory database SELECT AsText(Simplify(GeomFromText('LINESTRING(1 1, 1 1)'),0.1)) 1 # rows (not including the header row) 1 # columns AsText(Simplify(GeomFromText('LINESTRING(1 1, 1 1)'),0.1)) LINESTRING(1 1, 1 1) libspatialite-4.1.1/test/sql_stmt_geos_tests/st_perimeter8.testcase0000664000175000017500000000034712163502133022701 00000000000000ST_Perimeter - toxic linestring :memory: #use in-memory database SELECT ST_Perimeter(GeomFromText('LINESTRING(1 1, 1 1)')); 1 # rows (not including the header row) 1 # columns ST_Perimeter(GeomFromText('LINESTRING(1 1, 1 1)')) 0.0 libspatialite-4.1.1/test/sql_stmt_geos_tests/isvalid8.testcase0000664000175000017500000000105612163502133021630 00000000000000isvalid (MULTYPOLYGON Z with hole) :memory: #use in-memory database SELECT IsValid(GeomFromText("MULTIPOLYGONZ(((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 12 12 102, 11 12 103, 11 11 100)), ((20 20 110, 21 20 111, 21 21 112, 20 21 113, 20 20 110)))")); 1 # rows (not including the header row) 1 # columns IsValid(GeomFromText("MULTIPOLYGONZ(((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 12 12 102, 11 12 103, 11 11 100)), ((20 20 110, 21 20 111, 21 21 112, 20 21 113, 20 20 110)))")) 1 libspatialite-4.1.1/test/sql_stmt_geos_tests/difference10.testcase0000664000175000017500000000044412163502133022340 00000000000000difference - XYM points :memory: #use in-memory database SELECT AsText(Difference(GeomFromText("POINTM(1 3 4)"), GeomFromText("POINTM(2 4 9)"))) 1 # rows (not including the header row) 1 # columns AsText(Difference(GeomFromText("POINTM(1 3 4)"), GeomFromText("POINTM(2 4 9)"))) POINT M(1 3 0)libspatialite-4.1.1/test/sql_stmt_geos_tests/relate9.testcase0000664000175000017500000000045612163502133021455 00000000000000Relate - toxic second arg :memory: #use in-memory database SELECT Relate(geom1, geom2, "T*T***T**") FROM (SELECT GeomFromText("LINESTRING(1 1, 2 2)") as geom1, GeomFromText('LINESTRING(1 1, 1 1)') as geom2) dummy; 1 # rows (not including the header row) 1 # columns Relate(geom1, geom2, "T*T***T**") 0 libspatialite-4.1.1/test/sql_stmt_geos_tests/union29.testcase0000664000175000017500000000022012163502133021400 00000000000000union - non-blob :memory: #use in-memory database SELECT GUnion(4.78) 1 # rows (not including the header row) 1 # columns GUnion(4.78) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/Makefile.am0000664000175000017500000002112512163502133020403 00000000000000EXTRA_DIST = bdmpolyfromtext10.testcase \ bdmpolyfromtext13.testcase \ bdmpolyfromtext14.testcase \ bdmpolyfromtext15.testcase \ bdmpolyfromtext16.testcase \ bdmpolyfromtext17.testcase \ bdmpolyfromtext1.testcase \ bdmpolyfromtext2.testcase \ bdmpolyfromtext3.testcase \ bdmpolyfromtext4.testcase \ bdmpolyfromtext9.testcase \ bdmpolyfromwkb10.testcase \ bdmpolyfromwkb11.testcase \ bdmpolyfromwkb12.testcase \ bdmpolyfromwkb13.testcase \ bdmpolyfromwkb14.testcase \ bdmpolyfromwkb15.testcase \ bdmpolyfromwkb16.testcase \ bdmpolyfromwkb17.testcase \ bdmpolyfromwkb18.testcase \ bdmpolyfromwkb19.testcase \ bdmpolyfromwkb1.testcase \ bdmpolyfromwkb2.testcase \ bdmpolyfromwkb3.testcase \ bdmpolyfromwkb4.testcase \ bdmpolyfromwkb5.testcase \ bdmpolyfromwkb6.testcase \ bdmpolyfromwkb7.testcase \ bdmpolyfromwkb8.testcase \ bdmpolyfromwkb9.testcase \ bdpolyfromtext10.testcase \ bdpolyfromtext11.testcase \ bdpolyfromtext12.testcase \ bdpolyfromtext13.testcase \ bdpolyfromtext14.testcase \ bdpolyfromtext15.testcase \ bdpolyfromtext16.testcase \ bdpolyfromtext1.testcase \ bdpolyfromtext2.testcase \ bdpolyfromtext3.testcase \ bdpolyfromtext4.testcase \ bdpolyfromtext5.testcase \ bdpolyfromtext6.testcase \ bdpolyfromtext7.testcase \ bdpolyfromtext8.testcase \ bdpolyfromtext9.testcase \ bdpolyfromwkb10.testcase \ bdpolyfromwkb11.testcase \ bdpolyfromwkb12.testcase \ bdpolyfromwkb13.testcase \ bdpolyfromwkb14.testcase \ bdpolyfromwkb15.testcase \ bdpolyfromwkb16.testcase \ bdpolyfromwkb17.testcase \ bdpolyfromwkb18.testcase \ bdpolyfromwkb19.testcase \ bdpolyfromwkb1.testcase \ bdpolyfromwkb2.testcase \ bdpolyfromwkb3.testcase \ bdpolyfromwkb4.testcase \ bdpolyfromwkb5.testcase \ bdpolyfromwkb6.testcase \ bdpolyfromwkb7.testcase \ bdpolyfromwkb8.testcase \ bdpolyfromwkb9.testcase \ boundary1.testcase \ boundary2.testcase \ boundary3.testcase \ boundary4.testcase \ boundary5.testcase \ boundary6.testcase \ boundary7.testcase \ boundary8.testcase \ boundary9.testcase \ buffer10.testcase \ buffer1.testcase \ buffer2.testcase \ buffer3.testcase \ buffer4.testcase \ buffer5.testcase \ buffer6.testcase \ buffer7.testcase \ buffer8.testcase \ buffer9.testcase \ buildarea1.testcase \ buildarea2.testcase \ buildarea3.testcase \ buildarea4.testcase \ buildarea5.testcase \ buildarea6.testcase \ centroid1.testcase \ centroid2.testcase \ centroid3.testcase \ centroid4.testcase \ centroid5.testcase \ centroid6.testcase \ centroid7.testcase \ centroid8.testcase \ convexhull10.testcase \ convexhull1.testcase \ convexhull2.testcase \ convexhull3.testcase \ convexhull4.testcase \ convexhull5.testcase \ convexhull6.testcase \ convexhull7.testcase \ convexhull8.testcase \ convexhull9.testcase \ difference10.testcase \ difference11.testcase \ difference12.testcase \ difference1.testcase \ difference2.testcase \ difference3.testcase \ difference4.testcase \ difference6.testcase \ difference7.testcase \ difference8.testcase \ difference9.testcase \ distance10.testcase \ distance1.testcase \ distance2.testcase \ distance3.testcase \ distance4.testcase \ distance5.testcase \ distance6.testcase \ distance7.testcase \ distance8.testcase \ distance9.testcase \ intersection10.testcase \ intersection11.testcase \ intersection12.testcase \ intersection1.testcase \ intersection2.testcase \ intersection3.testcase \ intersection4.testcase \ intersection5.testcase \ intersection6.testcase \ intersection7.testcase \ intersection8.testcase \ intersection9.testcase \ isclosed10.testcase \ isclosed1.testcase \ isclosed2.testcase \ isclosed3.testcase \ isclosed4.testcase \ isclosed5.testcase \ isclosed6.testcase \ isclosed7.testcase \ isclosed8.testcase \ isclosed9.testcase \ isring1.testcase \ isring2.testcase \ isring3.testcase \ isring4.testcase \ isring5.testcase \ isring6.testcase \ isring7.testcase \ isring8.testcase \ isring9.testcase \ issimple1.testcase \ issimple2.testcase \ issimple3.testcase \ issimple4.testcase \ issimple5.testcase \ issimple6.testcase \ isvalid10.testcase \ isvalid11.testcase \ isvalid12.testcase \ isvalid13.testcase \ isvalid14.testcase \ isvalid15.testcase \ isvalid16.testcase \ isvalid17.testcase \ isvalid18.testcase \ isvalid19.testcase \ isvalid1.testcase \ isvalid20.testcase \ isvalid2.testcase \ isvalid3.testcase \ isvalid4.testcase \ isvalid5.testcase \ isvalid6.testcase \ isvalid7.testcase \ isvalid8.testcase \ isvalid9.testcase \ pointonsurface1.testcase \ pointonsurface2.testcase \ pointonsurface3.testcase \ pointonsurface4.testcase \ pointonsurface5.testcase \ pointonsurface6.testcase \ pointonsurface7.testcase \ polygonize10.testcase \ polygonize11.testcase \ polygonize12.testcase \ polygonize13.testcase \ polygonize14.testcase \ polygonize1.testcase \ polygonize2.testcase \ polygonize3.testcase \ polygonize4.testcase \ polygonize5.testcase \ polygonize6.testcase \ polygonize7.testcase \ polygonize8.testcase \ polygonize9.testcase \ ptdistancewithin10.testcase \ ptdistancewithin11.testcase \ ptdistancewithin12.testcase \ ptdistancewithin13.testcase \ ptdistancewithin14.testcase \ ptdistancewithin15.testcase \ ptdistancewithin16.testcase \ ptdistancewithin17.testcase \ ptdistancewithin18.testcase \ ptdistancewithin1.testcase \ ptdistancewithin2.testcase \ ptdistancewithin3.testcase \ ptdistancewithin4.testcase \ ptdistancewithin5.testcase \ ptdistancewithin6.testcase \ ptdistancewithin7.testcase \ ptdistancewithin8.testcase \ ptdistancewithin9.testcase \ ptdistwithin10.testcase \ ptdistwithin11.testcase \ ptdistwithin12.testcase \ ptdistwithin13.testcase \ ptdistwithin14.testcase \ ptdistwithin15.testcase \ ptdistwithin16.testcase \ ptdistwithin1.testcase \ ptdistwithin2.testcase \ ptdistwithin3.testcase \ ptdistwithin4.testcase \ ptdistwithin5.testcase \ ptdistwithin6.testcase \ ptdistwithin7.testcase \ ptdistwithin8.testcase \ ptdistwithin9.testcase \ relate1.testcase \ relate2.testcase \ relate3.testcase \ relate4.testcase \ relate5.testcase \ relate6.testcase \ relate7.testcase \ relate8.testcase \ relate9.testcase \ relations1.testcase \ relations2.testcase \ relations3.testcase \ relations4.testcase \ relations5.testcase \ relations6.testcase \ relations7.testcase \ relations8.testcase \ routing6.testcase \ simplify10.testcase \ simplify11.testcase \ simplify12.testcase \ simplify13.testcase \ simplify14.testcase \ simplify15.testcase \ simplify16.testcase \ simplify1.testcase \ simplify2.testcase \ simplify3.testcase \ simplify4.testcase \ simplify5.testcase \ simplify6.testcase \ simplify7.testcase \ simplify8.testcase \ simplify9.testcase \ st_area1.testcase \ st_area2.testcase \ st_area3.testcase \ st_area4.testcase \ st_area5.testcase \ st_area6.testcase \ st_area7.testcase \ st_area8.testcase \ st_area9.testcase \ st_length10.testcase \ st_length11.testcase \ st_length12.testcase \ st_length13.testcase \ st_length14.testcase \ st_length15.testcase \ st_length16.testcase \ st_length17.testcase \ st_length18.testcase \ st_length1.testcase \ st_length2.testcase \ st_length3.testcase \ st_length4.testcase \ st_length5.testcase \ st_length6.testcase \ st_length7.testcase \ st_length8.testcase \ st_length9.testcase \ st_perimeter10.testcase \ st_perimeter11.testcase \ st_perimeter12.testcase \ st_perimeter13.testcase \ st_perimeter14.testcase \ st_perimeter15.testcase \ st_perimeter16.testcase \ st_perimeter17.testcase \ st_perimeter18.testcase \ st_perimeter1.testcase \ st_perimeter2.testcase \ st_perimeter3.testcase \ st_perimeter4.testcase \ st_perimeter5.testcase \ st_perimeter6.testcase \ st_perimeter7.testcase \ st_perimeter8.testcase \ st_perimeter9.testcase \ symdifference10.testcase \ symdifference11.testcase \ symdifference1.testcase \ symdifference2.testcase \ symdifference3.testcase \ symdifference4.testcase \ symdifference5.testcase \ symdifference6.testcase \ symdifference7.testcase \ symdifference8.testcase \ symdifference9.testcase \ union10.testcase \ union11.testcase \ union12.testcase \ union13.testcase \ union14.testcase \ union15.testcase \ union16.testcase \ union17.testcase \ union18.testcase \ union19.testcase \ union1.testcase \ union20.testcase \ union21.testcase \ union22.testcase \ union23.testcase \ union24.testcase \ union25.testcase \ union26.testcase \ union27.testcase \ union28.testcase \ union29.testcase \ union2.testcase \ union3.testcase \ union4.testcase \ union5.testcase \ union6.testcase \ union7.testcase \ union8.testcase \ union9.testcase libspatialite-4.1.1/test/sql_stmt_geos_tests/difference7.testcase0000664000175000017500000000056612163502133022273 00000000000000difference - toxic first point :memory: #use in-memory database SELECT AsText(Difference(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"), MakePoint(136,-35))); 1 # rows (not including the header row) 1 # columns AsText(Difference(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"), MakePoint(136,-35))) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/bdmpolyfromwkb19.testcase0000664000175000017500000000031312163502133023310 00000000000000BdMPolyFromWKB - zeroblob, SRID :memory: #use in-memory database SELECT BdMPolyFromWKB(zeroblob(25), 4326); 1 # rows (not including the header row) 1 # columns BdMPolyFromWKB(zeroblob(25), 4326) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/ptdistancewithin11.testcase0000664000175000017500000000035312163502133023627 00000000000000PtDistWithin - WGS-84 first arg :memory: #use in-memory database SELECT PtDistWithin(MakePoint(4, 2, 4326), MakePoint(4,4), 2) 1 # rows (not including the header row) 1 # columns PtDistWithin(MakePoint(4, 2, 4326), MakePoint(4,4), 2) 1libspatialite-4.1.1/test/sql_stmt_geos_tests/ptdistancewithin8.testcase0000664000175000017500000000034012163502133023551 00000000000000PtDistWithin - bad blob first arg :memory: #use in-memory database SELECT PtDistWithin(zeroblob(98), MakePoint(4,4), 2) 1 # rows (not including the header row) 1 # columns PtDistWithin(zeroblob(98), MakePoint(4,4), 2) (NULL)libspatialite-4.1.1/test/sql_stmt_geos_tests/bdmpolyfromwkb15.testcase0000664000175000017500000000065512163502133023315 00000000000000BdMPolyFromWKB :memory: #use in-memory database SELECT AsText(BdMPolyFromWKB(AsBinary(GeomFromText('MULTILINESTRING((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 2 8, 8 8, 8 2, 2 2))')))); 1 # rows (not including the header row) 1 # columns AsText(BdMPolyFromWKB(AsBinary(GeomFromText('MULTILINESTRING((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 2 8, 8 8, 8 2, 2 2))')))) MULTIPOLYGON(((0 0, 0 10, 10 10, 10 0, 0 0), (2 2, 8 2, 8 8, 2 8, 2 2))) libspatialite-4.1.1/test/sql_stmt_geos_tests/simplify8.testcase0000664000175000017500000000032112163502133022023 00000000000000SimplifyPreserveTopology - bad arg :memory: #use in-memory database SELECT SimplifyPreserveTopology("hello", 0) 1 # rows (not including the header row) 1 # columns SimplifyPreserveTopology("hello", 0) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/symdifference2.testcase0000664000175000017500000000036212163502133023011 00000000000000symdifference - two points, same :memory: #use in-memory database SELECT AsText(SymDifference(Makepoint(1,2), MakePoint(1,2))) 1 # rows (not including the header row) 1 # columns AsText(SymDifference(Makepoint(1,2), MakePoint(1,2))) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/st_perimeter15.testcase0000664000175000017500000000051412163502133022753 00000000000000ST_Perimeter - Linestring (Long/Lat metric - Ellipsoid) :memory: #use in-memory database SELECT ST_Perimeter(GeomFromText("LINESTRING(0.7 0.7, 0.7 0.8, 0.8 0.8, 0.8 0.7, 0.7 0.8)"), 1); 1 # rows (not including the header row) 1 # columns ST_Perimeter(GeomFromText("LINESTRING(0.7 0.7, 0.7 0.8, 0.8 0.8, 0.8 0.7, 0.7 0.8)"), 1) 0.0 libspatialite-4.1.1/test/sql_stmt_geos_tests/st_length5.testcase0000664000175000017500000000027712163502133022165 00000000000000ST_Length - Point :memory: #use in-memory database SELECT ST_Length(GeomFromText("POINT(0 0)")); 1 # rows (not including the header row) 1 # columns ST_Length(GeomFromText("POINT(0 0)")) 0.0 libspatialite-4.1.1/test/sql_stmt_geos_tests/buffer1.testcase0000664000175000017500000000477012163502133021445 00000000000000buffer1 :memory: #use in-memory database SELECT AsText(Buffer(GeomFromText("LINESTRING(0 0, 1 0)"), 0.2)); 1 # rows (not including the header row) 1 # columns AsText(Buffer(GeomFromText("LINESTRING(0 0, 1 0)"), 0.2)) POLYGON((1 0.2, 1.010467 0.199726, 1.020906 0.198904, 1.031287 0.197538, 1.041582 0.19563, 1.051764 0.193185, 1.061803 0.190211, 1.071674 0.186716, 1.081347 0.182709, 1.090798 0.178201, 1.1 0.173205, 1.108928 0.167734, 1.117557 0.161803, 1.125864 0.155429, 1.133826 0.148629, 1.141421 0.141421, 1.148629 0.133826, 1.155429 0.125864, 1.161803 0.117557, 1.167734 0.108928, 1.173205 0.1, 1.178201 0.090798, 1.182709 0.081347, 1.186716 0.071674, 1.190211 0.061803, 1.193185 0.051764, 1.19563 0.041582, 1.197538 0.031287, 1.198904 0.020906, 1.199726 0.010467, 1.2 0, 1.199726 -0.010467, 1.198904 -0.020906, 1.197538 -0.031287, 1.19563 -0.041582, 1.193185 -0.051764, 1.190211 -0.061803, 1.186716 -0.071674, 1.182709 -0.081347, 1.178201 -0.090798, 1.173205 -0.1, 1.167734 -0.108928, 1.161803 -0.117557, 1.155429 -0.125864, 1.148629 -0.133826, 1.141421 -0.141421, 1.133826 -0.148629, 1.125864 -0.155429, 1.117557 -0.161803, 1.108928 -0.167734, 1.1 -0.173205, 1.090798 -0.178201, 1.081347 -0.182709, 1.071674 -0.186716, 1.061803 -0.190211, 1.051764 -0.193185, 1.041582 -0.19563, 1.031287 -0.197538, 1.020906 -0.198904, 1.010467 -0.199726, 1 -0.2, 0 -0.2, -0.010467 -0.199726, -0.020906 -0.198904, -0.031287 -0.197538, -0.041582 -0.19563, -0.051764 -0.193185, -0.061803 -0.190211, -0.071674 -0.186716, -0.081347 -0.182709, -0.090798 -0.178201, -0.1 -0.173205, -0.108928 -0.167734, -0.117557 -0.161803, -0.125864 -0.155429, -0.133826 -0.148629, -0.141421 -0.141421, -0.148629 -0.133826, -0.155429 -0.125864, -0.161803 -0.117557, -0.167734 -0.108928, -0.173205 -0.1, -0.178201 -0.090798, -0.182709 -0.081347, -0.186716 -0.071674, -0.190211 -0.061803, -0.193185 -0.051764, -0.19563 -0.041582, -0.197538 -0.031287, -0.198904 -0.020906, -0.199726 -0.010467, -0.2 0, -0.199726 0.010467, -0.198904 0.020906, -0.197538 0.031287, -0.19563 0.041582, -0.193185 0.051764, -0.190211 0.061803, -0.186716 0.071674, -0.182709 0.081347, -0.178201 0.090798, -0.173205 0.1, -0.167734 0.108928, -0.161803 0.117557, -0.155429 0.125864, -0.148629 0.133826, -0.141421 0.141421, -0.133826 0.148629, -0.125864 0.155429, -0.117557 0.161803, -0.108928 0.167734, -0.1 0.173205, -0.090798 0.178201, -0.081347 0.182709, -0.071674 0.186716, -0.061803 0.190211, -0.051764 0.193185, -0.041582 0.19563, -0.031287 0.197538, -0.020906 0.198904, -0.010467 0.199726, 0 0.2, 1 0.2)) libspatialite-4.1.1/test/sql_stmt_geos_tests/isvalid14.testcase0000664000175000017500000000046112163502133021704 00000000000000isvalid Geometry Collection of one polygon :memory: #use in-memory database SELECT IsValid(GeomFromText("GEOMETRYCOLLECTION(POLYGON((0 0, 10 0, 10 10, 0 10, 0 0)))")) 1 # rows (not including the header row) 1 # columns IsValid(GeomFromText("GEOMETRYCOLLECTION(POLYGON((0 0, 10 0, 10 10, 0 10, 0 0)))")) 1 libspatialite-4.1.1/test/sql_stmt_geos_tests/centroid7.testcase0000664000175000017500000000055512163502133022006 00000000000000Centroid - polygonZM (problem case - GEOS throws away the Z and M coordinates) :memory: #use in-memory database SELECT astext(centroid(geomFromText("POLYGONZM((0 0 1 4, 0 2 1 4, 2 2 1 4, 2 0 1 4, 0 0 1 4))"))) 1 # rows (not including the header row) 1 # columns astext(centroid(geomFromText("POLYGONZM((0 0 1 4, 0 2 1 4, 2 2 1 4, 2 0 1 4, 0 0 1 4))"))) POINT(1 1) libspatialite-4.1.1/test/sql_stmt_geos_tests/isring4.testcase0000664000175000017500000000022212163502133021456 00000000000000isring4 :memory: #use in-memory database SELECT IsRing(zeroblob(10)); 1 # rows (not including the header row) 1 # columns IsRing(zeroblob(10)) -1 libspatialite-4.1.1/test/sql_stmt_geos_tests/st_perimeter2.testcase0000664000175000017500000000040212163502133022663 00000000000000ST_Perimeter - Simple Polygon :memory: #use in-memory database SELECT ST_Perimeter(GeomFromText("POLYGON((0 0, 0 4, 4 4, 4 0, 0 0))")); 1 # rows (not including the header row) 1 # columns ST_Perimeter(GeomFromText("POLYGON((0 0, 0 4, 4 4, 4 0, 0 0))")) 16.0 libspatialite-4.1.1/test/sql_stmt_geos_tests/ptdistwithin13.testcase0000664000175000017500000000040012163502133022773 00000000000000PtDistWithin: WGS84 (INT dist) :memory: SELECT PtDistWithin(GeomFromText("POINT(5 5)", 4326), GeomFromText("POINT(5.1 5.1)", 4326), 100000); 1 # rows 1 # column PtDistWithin(GeomFromText("POINT(5 5)", 4326), GeomFromText("POINT(5.1 5.1)", 4326), 100000) 1 libspatialite-4.1.1/test/sql_stmt_geos_tests/ptdistancewithin1.testcase0000664000175000017500000000032612163502133023546 00000000000000PtDistWithin- two points :memory: #use in-memory database SELECT PtDistWithin(Makepoint(1,2), MakePoint(4,4), 2) 1 # rows (not including the header row) 1 # columns PtDistWithin(Makepoint(1,2), MakePoint(4,4), 2) 0libspatialite-4.1.1/test/sql_stmt_geos_tests/relate1.testcase0000664000175000017500000000070512163502133021442 00000000000000Relate - POINTs identical :memory: #use in-memory database SELECT Relate(geom1, geom2, "T*T***T**"), Relate(geom1, geom2, "T*F**FFF*"), Relate(geom1, geom2, "FF*FF****") FROM (SELECT GeomFromText("POINT(1 2)") as geom1, GeomFromText("POINT(1 2)") as geom2) dummy; 1 # rows (not including the header row) 3 # columns Relate(geom1, geom2, "T*T***T**") # overlaps Relate(geom1, geom2, "T*F**FFF*") # equal Relate(geom1, geom2, "FF*FF****") # disjoint 0 1 0libspatialite-4.1.1/test/sql_stmt_geos_tests/difference8.testcase0000664000175000017500000000044412163502133022267 00000000000000difference - XYZ points :memory: #use in-memory database SELECT AsText(Difference(GeomFromText("POINTZ(1 3 5)"), GeomFromText("POINTZ(2 4 6)"))) 1 # rows (not including the header row) 1 # columns AsText(Difference(GeomFromText("POINTZ(1 3 5)"), GeomFromText("POINTZ(2 4 6)"))) POINT Z(1 3 5)libspatialite-4.1.1/test/sql_stmt_geos_tests/isclosed3.testcase0000664000175000017500000000040712163502133021774 00000000000000isclosed3 :memory: #use in-memory database SELECT IsClosed(GeomFromText("LINESTRING(136 -35, 135.2 -34.5, 136 -35.2, 136 -36)")); 1 # rows (not including the header row) 1 # columns IsClosed(GeomFromText("LINESTRING(136 -35, 135.2 -34.5, 136 -35.2, 136 -36)")) 0 libspatialite-4.1.1/test/sql_stmt_geos_tests/st_perimeter16.testcase0000664000175000017500000000121412163502133022752 00000000000000ST_Perimeter - GeometryCollection (Long/Lat metric - GreatCircle) :memory: #use in-memory database SELECT ST_Perimeter(GeomFromText("GEOMETRYCOLLECTION(POINT(0.1 0.1), LINESTRING(0.7 0.7, 0.7 0.8, 0.8 0.8, 0.8 0.7, 0.7 0.8), POLYGON((0.5 0.5, 0.5 0.6, 0.6 0.6, 0.6 0.5, 0.5 0.5),(0.55 0.55, 0.56 0.55, 0.56 0.56, 0.56 0.56, 0.055 0.55)))"), 0); 1 # rows (not including the header row) 1 # columns ST_Perimeter(GeomFromText("GEOMETRYCOLLECTION(POINT(0.1 0.1), LINESTRING(0.7 0.7, 0.7 0.8, 0.8 0.8, 0.8 0.7, 0.7 0.8), POLYGON((0.5 0.5, 0.5 0.6, 0.6 0.6, 0.6 0.5, 0.5 0.5),(0.55 0.55, 0.56 0.55, 0.56 0.56, 0.56 0.56, 0.055 0.55)))"), 0) 102862.738784:6 libspatialite-4.1.1/test/sql_stmt_geos_tests/bdpolyfromtext15.testcase0000664000175000017500000000056612163502133023342 00000000000000BdPolyFromText :memory: #use in-memory database SELECT AsText(BdPolyFromText('MULTILINESTRING((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 2 8, 8 8, 8 2, 2 2))')); 1 # rows (not including the header row) 1 # columns AsText(BdPolyFromText('MULTILINESTRING((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 2 8, 8 8, 8 2, 2 2))')) POLYGON((0 0, 0 10, 10 10, 10 0, 0 0), (2 2, 8 2, 8 8, 2 8, 2 2)) libspatialite-4.1.1/test/sql_stmt_geos_tests/bdpolyfromwkb13.testcase0000664000175000017500000000050412163502133023127 00000000000000BdPolyFromWKB - text SRID :memory: #use in-memory database SELECT BdPolyFromWKB(AsBinary(GeomFromText('MULTILINESTRING((0 0, 1 0, 1 1, 0 1, 0 0))', "not an int"))); 1 # rows (not including the header row) 1 # columns BdPolyFromWKB(AsBinary(GeomFromText('MULTILINESTRING((0 0, 1 0, 1 1, 0 1, 0 0))', "not an int"))) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/union4.testcase0000664000175000017500000000031112163502133021312 00000000000000union - null second point :memory: #use in-memory database SELECT AsText(GUnion(MakePoint(2,3), null)); 1 # rows (not including the header row) 1 # columns AsText(GUnion(MakePoint(2,3), null)) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/bdpolyfromwkb17.testcase0000664000175000017500000000026612163502133023140 00000000000000BdPolyFromWKB - zeroblob :memory: #use in-memory database SELECT BdPolyFromWKB(zeroblob(25)); 1 # rows (not including the header row) 1 # columns BdPolyFromWKB(zeroblob(25)) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/st_area2.testcase0000664000175000017500000000036312163502133021605 00000000000000ST_Area - Simple Polygon :memory: #use in-memory database SELECT ST_Area(GeomFromText("POLYGON((0 0, 0 4, 4 4, 4 0, 0 0))")); 1 # rows (not including the header row) 1 # columns ST_Area(GeomFromText("POLYGON((0 0, 0 4, 4 4, 4 0, 0 0))")) 16.0 libspatialite-4.1.1/test/sql_stmt_geos_tests/centroid2.testcase0000664000175000017500000000033412163502133021774 00000000000000Centroid - point :memory: #use in-memory database SELECT astext(centroid(geomFromText("POINT(1,1)", 4326))); 1 # rows (not including the header row) 1 # columns astext(centroid(geomFromText("POINT(1,1)", 4326))) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/bdpolyfromtext9.testcase0000664000175000017500000000030312163502133023252 00000000000000BdPolyFromText - point, SRID :memory: #use in-memory database SELECT BdPolyFromText("Point(1 2)", 4); 1 # rows (not including the header row) 1 # columns BdPolyFromText("Point(1 2)", 4) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/buffer10.testcase0000664000175000017500000000563212163502133021523 00000000000000buffer - linestringzm :memory: #use in-memory database SELECT AsText(Buffer(GeomFromText("LINESTRINGZM(1 2 1 4, 4 6 3 4)"), 1)) 1 # rows (not including the header row) 1 # columns AsText(Buffer(GeomFromText("LINESTRINGZM(1 2 1 4, 4 6 3 4)"), 1)) POLYGON ZM((3.2 6.6 0 0, 3.232498 6.641046 0 0, 3.2671 6.680336 0 0, 3.30371 6.717761 0 0, 3.342229 6.753218 0 0, 3.382551 6.786611 0 0, 3.424565 6.817848 0 0, 3.468156 6.846843 0 0, 3.513206 6.873517 0 0, 3.559589 6.897796 0 0, 3.60718 6.919615 0 0, 3.655847 6.938914 0 0, 3.705458 6.955638 0 0, 3.755875 6.969744 0 0, 3.806963 6.981191 0 0, 3.858579 6.989949 0 0, 3.910582 6.995994 0 0, 3.962831 6.999309 0 0, 4.015182 6.999885 0 0, 4.067491 6.99772 0 0, 4.119615 6.99282 0 0, 4.171412 6.9852 0 0, 4.222738 6.974878 0 0, 4.273454 6.961885 0 0, 4.32342 6.946255 0 0, 4.3725 6.928032 0 0, 4.420559 6.907265 0 0, 4.467465 6.884011 0 0, 4.51309 6.858335 0 0, 4.557309 6.830305 0 0, 4.6 6.8 0 0, 4.641046 6.767502 0 0, 4.680336 6.7329 0 0, 4.717761 6.69629 0 0, 4.753218 6.657771 0 0, 4.786611 6.617449 0 0, 4.817848 6.575435 0 0, 4.846843 6.531844 0 0, 4.873517 6.486794 0 0, 4.897796 6.440411 0 0, 4.919615 6.39282 0 0, 4.938914 6.344153 0 0, 4.955638 6.294542 0 0, 4.969744 6.244125 0 0, 4.981191 6.193037 0 0, 4.989949 6.141421 0 0, 4.995994 6.089418 0 0, 4.999309 6.037169 0 0, 4.999885 5.984818 0 0, 4.99772 5.932509 0 0, 4.99282 5.880385 0 0, 4.9852 5.828588 0 0, 4.974878 5.777262 0 0, 4.961885 5.726546 0 0, 4.946255 5.67658 0 0, 4.928032 5.6275 0 0, 4.907265 5.579441 0 0, 4.884011 5.532535 0 0, 4.858335 5.48691 0 0, 4.830305 5.442691 0 0, 4.8 5.4 0 0, 1.8 1.4 0 0, 1.767502 1.358954 0 0, 1.7329 1.319664 0 0, 1.69629 1.282239 0 0, 1.657771 1.246782 0 0, 1.617449 1.213389 0 0, 1.575435 1.182152 0 0, 1.531844 1.153157 0 0, 1.486794 1.126483 0 0, 1.440411 1.102204 0 0, 1.39282 1.080385 0 0, 1.344153 1.061086 0 0, 1.294542 1.044362 0 0, 1.244125 1.030256 0 0, 1.193037 1.018809 0 0, 1.141421 1.010051 0 0, 1.089418 1.004006 0 0, 1.037169 1.000691 0 0, 0.984818 1.000115 0 0, 0.932509 1.00228 0 0, 0.880385 1.00718 0 0, 0.828588 1.0148 0 0, 0.777262 1.025122 0 0, 0.726546 1.038115 0 0, 0.67658 1.053745 0 0, 0.6275 1.071968 0 0, 0.579441 1.092735 0 0, 0.532535 1.115989 0 0, 0.48691 1.141665 0 0, 0.442691 1.169695 0 0, 0.4 1.2 0 0, 0.358954 1.232498 0 0, 0.319664 1.2671 0 0, 0.282239 1.30371 0 0, 0.246782 1.342229 0 0, 0.213389 1.382551 0 0, 0.182152 1.424565 0 0, 0.153157 1.468156 0 0, 0.126483 1.513206 0 0, 0.102204 1.559589 0 0, 0.080385 1.60718 0 0, 0.061086 1.655847 0 0, 0.044362 1.705458 0 0, 0.030256 1.755875 0 0, 0.018809 1.806963 0 0, 0.010051 1.858579 0 0, 0.004006 1.910582 0 0, 0.000691 1.962831 0 0, 0.000115 2.015182 0 0, 0.00228 2.067491 0 0, 0.00718 2.119615 0 0, 0.0148 2.171412 0 0, 0.025122 2.222738 0 0, 0.038115 2.273454 0 0, 0.053745 2.32342 0 0, 0.071968 2.3725 0 0, 0.092735 2.420559 0 0, 0.115989 2.467465 0 0, 0.141665 2.51309 0 0, 0.169695 2.557309 0 0, 0.2 2.6 0 0, 3.2 6.6 0 0)) libspatialite-4.1.1/test/sql_stmt_geos_tests/isring1.testcase0000664000175000017500000000040112163502133021452 00000000000000isring1 :memory: #use in-memory database SELECT IsRing(GeomFromText("LINESTRING(136 -35, 135.2 -34.5, 136 -35.2, 136 -35)")); 1 # rows (not including the header row) 1 # columns IsRing(GeomFromText("LINESTRING(136 -35, 135.2 -34.5, 136 -35.2, 136 -35)")) 1 libspatialite-4.1.1/test/sql_stmt_geos_tests/buildarea3.testcase0000664000175000017500000000056512163502133022124 00000000000000buildarea - simple polygon :memory: #use in-memory database SELECT AsText(BuildArea(GeomFromText('MULTILINESTRING((0 0, 10 0), (10 0, 10 10), (10 10, 0 10), (0 10, 0 0))'))) 1 # rows (not including the header row) 1 # columns AsText(BuildArea(GeomFromText('MULTILINESTRING((0 0, 10 0), (10 0, 10 10), (10 10, 0 10), (0 10, 0 0))'))) POLYGON((10 0, 0 0, 0 10, 10 10, 10 0)) libspatialite-4.1.1/test/sql_stmt_geos_tests/isvalid20.testcase0000664000175000017500000000061112163502133021676 00000000000000isvalid Geometry Collection of two lines and a polygon :memory: #use in-memory database SELECT IsValid(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(0 0, 4 1),LINESTRING(3 4, 4 6),POLYGON((1 1, 4 1, 4 4, 1 4, 1 1)))")) 1 # rows (not including the header row) 1 # columns IsValid(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(0 0, 4 1),LINESTRING(3 4, 4 6),POLYGON((1 1, 4 1, 4 4, 1 4, 1 1)))")) 1 libspatialite-4.1.1/test/sql_stmt_geos_tests/bdmpolyfromwkb11.testcase0000664000175000017500000000053412163502133023305 00000000000000BdMPolyFromWKB - toxic, no SRID :memory: #use in-memory database SELECT BdMPolyFromWKB(AsBinary(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"))); 1 # rows (not including the header row) 1 # columns BdMPolyFromWKB(AsBinary(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"))) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/st_length12.testcase0000664000175000017500000000070112163502133022233 00000000000000ST_Length - Polygon with 1 interior (Long/Lat metric - GreatCircle) :memory: #use in-memory database SELECT ST_Length(GeomFromText("POLYGON((0.5 0.5, 0.5 0.6, 0.6 0.6, 0.6 0.5, 0.5 0.5),(0.55 0.55, 0.56 0.55, 0.56 0.56, 0.56 0.56, 0.055 0.55))"), 0); 1 # rows (not including the header row) 1 # columns ST_Length(GeomFromText("POLYGON((0.5 0.5, 0.5 0.6, 0.6 0.6, 0.6 0.5, 0.5 0.5),(0.55 0.55, 0.56 0.55, 0.56 0.56, 0.56 0.56, 0.055 0.55))"), 0) 0.0 libspatialite-4.1.1/test/sql_stmt_geos_tests/bdpolyfromwkb10.testcase0000664000175000017500000000035512163502133023130 00000000000000BdPolyFromWKB - point, no SRID :memory: #use in-memory database SELECT BdPolyFromWKB(AsBinary(GeomFromText("Point(1 2)"))); 1 # rows (not including the header row) 1 # columns BdPolyFromWKB(AsBinary(GeomFromText("Point(1 2)"))) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/st_area8.testcase0000664000175000017500000000023512163502133021611 00000000000000ST_Area - text (error) :memory: #use in-memory database SELECT ST_Area("hello"); 1 # rows (not including the header row) 1 # columns ST_Area("hello") (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/isvalid12.testcase0000664000175000017500000000057412163502133021707 00000000000000isvalid (POLYGONM with hole) :memory: #use in-memory database SELECT IsValid(GeomFromText("POLYGONM((10 10 1, 15 10 2, 15 15 3, 10 15 4, 10 10 1), (11 11 1, 12 11 2, 12 12 3, 11 12 4, 11 11 1))")); 1 # rows (not including the header row) 1 # columns IsValid(GeomFromText("POLYGONM((10 10 1, 15 10 2, 15 15 3, 10 15 4, 10 10 1), (11 11 1, 12 11 2, 12 12 3, 11 12 4, 11 11 1))")) 1 libspatialite-4.1.1/test/sql_stmt_geos_tests/centroid4.testcase0000664000175000017500000000051612163502133022000 00000000000000Centroid - toxic :memory: #use in-memory database SELECT astext(centroid(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"))); 1 # rows (not including the header row) 1 # columns astext(centroid(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"))) POINT(135.733333 -34.9) libspatialite-4.1.1/test/sql_stmt_geos_tests/ptdistwithin8.testcase0000664000175000017500000000042712163502133022730 00000000000000PtDistWithin invalid arg: TEXT use-sferoid :memory: SELECT PtDistWithin(GeomFromText("POINT(5.1 5.1)", 4326), GeomFromText("POINT(5 5)", 4326), 10.0, 'a'); 1 # rows 1 # column PtDistWithin(GeomFromText("POINT(5.1 5.1)", 4326), GeomFromText("POINT(5 5)", 4326), 10.0, 'a') (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/boundary1.testcase0000664000175000017500000000031512163502133022006 00000000000000Boundary - Point :memory: #use in-memory database SELECT AsText(Boundary(GeomFromText("POINT(1 2)"))) 1 # rows (not including the header row) 1 # columns AsText(Boundary(GeomFromText("POINT(1 2)"))) (NULL)libspatialite-4.1.1/test/sql_stmt_geos_tests/symdifference11.testcase0000664000175000017500000000057712163502133023101 00000000000000symdifference - toxic second point :memory: #use in-memory database SELECT AsText(SymDifference(MakePoint(136,-35), GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"))) 1 # rows (not including the header row) 1 # columns AsText(SymDifference(MakePoint(136,-35), GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"))) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/difference4.testcase0000664000175000017500000000032612163502133022262 00000000000000difference - null second point :memory: #use in-memory database SELECT AsText(Difference(MakePoint(2,3), null)); 1 # rows (not including the header row) 1 # columns AsText(Difference(MakePoint(2,3), null)) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/bdpolyfromwkb18.testcase0000664000175000017500000000031612163502133023135 00000000000000BdPolyFromWKB - zeroblob, invalid SRID :memory: #use in-memory database SELECT BdPolyFromWKB(zeroblob(25), 'a'); 1 # rows (not including the header row) 1 # columns BdPolyFromWKB(zeroblob(25), 'a') (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/simplify16.testcase0000664000175000017500000000046312163502133022111 00000000000000SimplifyPreserveTopology - toxic first arg :memory: #use in-memory database SELECT AsText(SimplifyPreserveTopology(GeomFromText('LINESTRING(1 1, 1 1)'),0.1)) 1 # rows (not including the header row) 1 # columns AsText(SimplifyPreserveTopology(GeomFromText('LINESTRING(1 1, 1 1)'),0.1)) LINESTRING(1 1, 1 1) libspatialite-4.1.1/test/sql_stmt_geos_tests/buffer7.testcase0000664000175000017500000001201112163502133021436 00000000000000buffer7 :memory: #use in-memory database SELECT AsText(ST_ForceLHR(Buffer(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"), 1))); 1 # rows (not including the header row) 1 # columns AsText(ST_ForceLHR(Buffer(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"), 1))) POLYGON((136.529999 -34.152002, 136.529999 -34.152002, 136.574402 -34.181426, 136.617174 -34.213174, 136.658196 -34.247153, 136.69735 -34.283269, 136.734525 -34.321419, 136.769617 -34.361494, 136.802524 -34.40338, 136.833155 -34.44696, 136.861421 -34.492109, 136.887243 -34.538698, 136.910548 -34.586597, 136.931269 -34.635669, 136.949348 -34.685774, 136.964733 -34.736771, 136.977381 -34.788515, 136.987256 -34.840859, 136.994329 -34.893654, 136.998581 -34.946752, 137 -35, 137 -35.2, 136.998646 -35.252013, 136.994589 -35.303886, 136.987839 -35.355478, 136.978415 -35.406648, 136.966342 -35.457259, 136.951653 -35.507174, 136.934388 -35.556257, 136.914593 -35.604375, 136.892322 -35.651399, 136.867635 -35.697201, 136.8406 -35.741657, 136.811289 -35.784646, 136.779781 -35.826052, 136.746162 -35.865764, 136.710524 -35.903673, 136.672961 -35.939678, 136.633577 -35.97368, 136.592478 -36.005587, 136.549774 -36.035313, 136.505583 -36.062778, 136.460022 -36.087907, 136.413216 -36.110633, 136.365292 -36.130893, 136.316378 -36.148633, 136.266608 -36.163805, 136.216117 -36.176368, 136.16504 -36.186287, 136.113516 -36.193536, 136.061685 -36.198096, 136.009687 -36.199953, 135.957663 -36.199103, 135.905754 -36.195549, 135.854099 -36.189299, 135.80284 -36.180371, 135.752114 -36.168789, 135.70206 -36.154584, 135.652812 -36.137795, 135.604504 -36.118468, 135.557266 -36.096653, 135.511228 -36.072411, 135.466512 -36.045808, 135.423241 -36.016914, 135.381531 -35.985809, 135.341495 -35.952577, 134.541495 -35.252577, 134.503051 -35.21712, 134.466512 -35.179703, 134.43198 -35.140426, 134.399548 -35.099397, 134.369306 -35.056729, 134.341336 -35.012539, 134.315714 -34.966946, 134.292511 -34.920076, 134.27179 -34.872058, 134.253608 -34.823021, 134.238015 -34.773102, 134.225052 -34.722435, 134.214757 -34.67116, 134.207156 -34.619416, 134.20227 -34.567346, 134.200114 -34.515092, 134.200692 -34.462797, 134.204004 -34.410603, 134.21004 -34.358654, 134.218783 -34.307091, 134.230211 -34.256056, 134.24429 -34.205689, 134.260984 -34.156126, 134.280246 -34.107504, 134.302024 -34.059955, 134.326258 -34.01361, 134.352882 -33.968595, 134.381823 -33.925034, 134.413001 -33.883046, 134.446332 -33.842744, 134.481725 -33.804241, 134.519082 -33.76764, 134.558301 -33.733043, 134.599276 -33.700543, 134.641894 -33.670231, 134.686038 -33.642187, 134.731588 -33.61649, 134.778419 -33.593209, 134.826403 -33.572409, 134.875409 -33.554145, 134.925303 -33.538469, 134.975949 -33.525423, 135.027207 -33.515042, 135.078937 -33.507355, 135.130999 -33.502383, 135.18325 -33.50014, 135.235546 -33.500632, 135.287745 -33.503857, 135.339704 -33.509807, 135.391281 -33.518465, 135.442335 -33.529807, 135.492726 -33.543804, 135.542316 -33.560415, 135.59097 -33.579597, 135.638555 -33.601296, 135.68494 -33.625453, 135.729999 -33.652002, 136.529999 -34.152002, 136.529999 -34.152002), (135.132863 -35.497419, 135.165007 -35.499388, 135.217358 -35.499849, 135.269663 -35.497571, 135.321776 -35.492558, 135.373556 -35.484824, 135.42486 -35.474391, 135.475547 -35.461288, 135.525479 -35.445549, 135.574519 -35.427219, 135.622533 -35.406347, 135.669389 -35.382992, 135.714958 -35.357216, 135.759115 -35.32909, 135.80174 -35.298692, 135.842716 -35.266105, 135.88193 -35.231418, 135.919275 -35.194726, 135.954648 -35.15613, 135.987953 -35.115736, 136.019098 -35.073653, 136.047998 -35.029999, 136.074574 -34.984892, 136.098753 -34.938456, 136.120468 -34.890818, 136.13966 -34.842108, 136.156277 -34.792462, 136.170273 -34.742013, 136.181609 -34.690901, 136.190255 -34.639266, 136.196187 -34.587249, 136.199388 -34.534993, 136.199849 -34.482642, 136.197571 -34.430337, 136.192558 -34.378224, 136.184824 -34.326444, 136.174391 -34.27514, 136.161288 -34.224453, 136.145549 -34.174521, 136.127219 -34.125481, 136.106347 -34.077467, 136.082992 -34.030611, 136.067137 -34.002581, 136.034993 -34.000612, 135.982642 -34.000151, 135.930337 -34.002429, 135.878224 -34.007442, 135.826444 -34.015176, 135.77514 -34.025609, 135.724453 -34.038712, 135.674521 -34.054451, 135.625481 -34.072781, 135.577467 -34.093653, 135.530611 -34.117008, 135.485042 -34.142784, 135.440885 -34.17091, 135.39826 -34.201308, 135.357284 -34.233895, 135.31807 -34.268582, 135.280725 -34.305274, 135.245352 -34.34387, 135.212047 -34.384264, 135.180902 -34.426347, 135.152002 -34.470001, 135.125426 -34.515108, 135.101247 -34.561544, 135.079532 -34.609182, 135.06034 -34.657892, 135.043723 -34.707538, 135.029727 -34.757987, 135.018391 -34.809099, 135.009745 -34.860734, 135.003813 -34.912751, 135.000612 -34.965007, 135.000151 -35.017358, 135.002429 -35.069663, 135.007442 -35.121776, 135.015176 -35.173556, 135.025609 -35.22486, 135.038712 -35.275547, 135.054451 -35.325479, 135.072781 -35.374519, 135.093653 -35.422533, 135.117008 -35.469389, 135.132863 -35.497419)) libspatialite-4.1.1/test/sql_stmt_geos_tests/ptdistancewithin2.testcase0000664000175000017500000000032612163502133023547 00000000000000PtDistWithin- two points :memory: #use in-memory database SELECT PtDistWithin(Makepoint(4,2), MakePoint(4,4), 2) 1 # rows (not including the header row) 1 # columns PtDistWithin(Makepoint(4,2), MakePoint(4,4), 2) 1libspatialite-4.1.1/test/sql_stmt_geos_tests/isring3.testcase0000664000175000017500000000021012163502133021452 00000000000000isring3 :memory: #use in-memory database SELECT IsRing("hello"); 1 # rows (not including the header row) 1 # columns IsRing("hello") -1 libspatialite-4.1.1/test/sql_stmt_geos_tests/isring8.testcase0000664000175000017500000000042112163502133021463 00000000000000isring1 - LINESTRINGZM, non-ring :memory: #use in-memory database SELECT IsRing(GeomFromText("LINESTRINGZM(1 1 3 4, 2 1 4 9, 2 2 5 4, 1 2 4 3)")) 1 # rows (not including the header row) 1 # columns IsRing(GeomFromText("LINESTRINGZM(1 1 3 4, 2 1 4 9, 2 2 5 4, 1 2 4 3)")) 0 libspatialite-4.1.1/test/sql_stmt_geos_tests/isvalid10.testcase0000664000175000017500000000116612163502133021703 00000000000000isvalid (MULTYPOLYGONZM with hole) :memory: #use in-memory database SELECT IsValid(GeomFromText("MULTIPOLYGONZM(((10 10 100 1, 15 10 101 2, 15 15 102 3, 10 15 103 4, 10 10 100 1), (11 11 100 1, 12 11 101 2, 12 12 102 3, 11 12 103 4, 11 11 100 1)), ((20 20 110 11, 21 20 111 12, 21 21 112 13, 20 21 113 14, 20 20 110 11)))")); 1 # rows (not including the header row) 1 # columns IsValid(GeomFromText("MULTIPOLYGONZM(((10 10 100 1, 15 10 101 2, 15 15 102 3, 10 15 103 4, 10 10 100 1), (11 11 100 1, 12 11 101 2, 12 12 102 3, 11 12 103 4, 11 11 100 1)), ((20 20 110 11, 21 20 111 12, 21 21 112 13, 20 21 113 14, 20 20 110 11)))")) 1 libspatialite-4.1.1/test/sql_stmt_geos_tests/ptdistancewithin14.testcase0000664000175000017500000000040112163502133023624 00000000000000PtDistWithin - WGS-84 both args :memory: #use in-memory database SELECT PtDistWithin(MakePoint(4, 2, 4326), MakePoint(4,4,4326), 2000000) 1 # rows (not including the header row) 1 # columns PtDistWithin(MakePoint(4, 2, 4326), MakePoint(4,4,4326), 2000000) 1libspatialite-4.1.1/test/sql_stmt_geos_tests/relations6.testcase0000664000175000017500000000112012163502133022163 00000000000000Relationship tests - bad first arg :memory: #use in-memory database SELECT Equals(geom1, geom2), Intersects(geom1, geom2), Disjoint(geom1, geom2), Overlaps(geom1, geom2), Crosses(geom1, geom2), Touches(geom1, geom2), Within(geom1, geom2), Contains(geom1, geom2) FROM (SELECT "hello" as geom1, GeomFromText("POINT(3 4)") as geom2) dummy; 1 # rows (not including the header row) 8 # columns Equals(geom1, geom2) Intersects(geom1, geom2) Disjoint(geom1, geom2) Overlaps(geom1, geom2) Crosses(geom1, geom2) Touches(geom1, geom2) Within(geom1, geom2) Contains(geom1, geom2) -1 -1 -1 -1 -1 -1 -1 -1libspatialite-4.1.1/test/sql_stmt_geos_tests/st_length6.testcase0000664000175000017500000000025712163502133022164 00000000000000ST_Length - bad blob (error) :memory: #use in-memory database SELECT ST_Length(zeroblob(4)); 1 # rows (not including the header row) 1 # columns ST_Length(zeroblob(4)) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/union23.testcase0000664000175000017500000000173012163502133021401 00000000000000union - GEOMETRYCOLLECTION M (Polygon with hole / Linestring) :memory: #use in-memory database SELECT AsText(GUnion(GeomFromText("GEOMETRYCOLLECTIONM(LINESTRINGM(30 30 1, 31 31 2), POLYGONM((10 10 1, 15 10 2, 15 15 3, 10 15 4, 10 10 1), (11 11 1, 12 11 2, 12 12 3, 11 12 4, 11 11 1)))"), GeomFromText("GEOMETRYCOLLECTIONM(LINESTRINGM(31 31 2, 35 0 1), POLYGONM((15 10 2, 16 10 1, 16 15 3, 10 15 4, 15 10 2)))"))); 1 # rows (not including the header row) 1 # columns AsText(GUnion(GeomFromText("GEOMETRYCOLLECTIONM(LINESTRINGM(30 30 1, 31 31 2), POLYGONM((10 10 1, 15 10 2, 15 15 3, 10 15 4, 10 10 1), (11 11 1, 12 11 2, 12 12 3, 11 12 4, 11 11 1)))"), GeomFromText("GEOMETRYCOLLECTIONM(LINESTRINGM(31 31 2, 35 0 1), POLYGONM((15 10 2, 16 10 1, 16 15 3, 10 15 4, 15 10 2)))"))) GEOMETRYCOLLECTION M(LINESTRING M(30 30 0, 31 31 0), LINESTRING M(31 31 0, 35 0 0), POLYGON M((15 10 0, 10 10 0, 10 15 0, 15 15 0, 16 15 0, 16 10 0, 15 10 0), (11 11 0, 12 11 0, 12 12 0, 11 12 0, 11 11 0))) libspatialite-4.1.1/test/sql_stmt_geos_tests/bdmpolyfromwkb9.testcase0000664000175000017500000000030312163502133023226 00000000000000BdMPolyFromWKB - point, SRID :memory: #use in-memory database SELECT BdMPolyFromWKB("Point(1 2)", 4); 1 # rows (not including the header row) 1 # columns BdMPolyFromWKB("Point(1 2)", 4) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/intersection8.testcase0000664000175000017500000000057512163502133022710 00000000000000intersection - toxic second point :memory: #use in-memory database SELECT AsText(Intersection(MakePoint(136,-35), GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"))); 1 # rows (not including the header row) 1 # columns AsText(Intersection(MakePoint(136,-35), GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"))) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/polygonize5.testcase0000664000175000017500000000052412163502133022370 00000000000000POLYGONIZE - simple polygonz :memory: #use in-memory database SELECT AsText(Polygonize(GeomFromText("LINESTRINGZ(0 0 5, 1 1 6, 0 2 7, -1 1 6, 0 0 5)"))) 1 # rows (not including the header row) 1 # columns AsText(Polygonize(GeomFromText("LINESTRINGZ(0 0 5, 1 1 6, 0 2 7, -1 1 6, 0 0 5)"))) POLYGON Z((0 0 5, -1 1 6, 0 2 7, 1 1 6, 0 0 5)) libspatialite-4.1.1/test/sql_stmt_geos_tests/bdpolyfromtext10.testcase0000664000175000017500000000030012163502133023317 00000000000000BdPolyFromText - point, no SRID :memory: #use in-memory database SELECT BdPolyFromText("Point(1 2)"); 1 # rows (not including the header row) 1 # columns BdPolyFromText("Point(1 2)") (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/bdmpolyfromtext1.testcase0000664000175000017500000000044512163502133023426 00000000000000BdMPolyFromText :memory: #use in-memory database SELECT AsText(BdMPolyFromText('MULTILINESTRING((0 0, 1 0, 1 1, 0 1, 0 0))')); 1 # rows (not including the header row) 1 # columns AsText(BdMPolyFromText('MULTILINESTRING((0 0, 1 0, 1 1, 0 1, 0 0))')) MULTIPOLYGON(((0 0, 0 1, 1 1, 1 0, 0 0))) libspatialite-4.1.1/test/sql_stmt_geos_tests/st_length9.testcase0000664000175000017500000000060612163502133022165 00000000000000ST_Length - MultiPolygon :memory: #use in-memory database SELECT ST_Length(GeomFromText("MULTIPOLYGON(((0 0, 0 4, 4 4, 4 0, 0 0),(1 1, 1 3, 3 3, 3 1, 1 1)), ((10 10, 11 10, 11 11, 10 11, 10 10)))")); 1 # rows (not including the header row) 1 # columns ST_Length(GeomFromText("MULTIPOLYGON(((0 0, 0 4, 4 4, 4 0, 0 0),(1 1, 1 3, 3 3, 3 1, 1 1)), ((10 10, 11 10, 11 11, 10 11, 10 10)))")) 0.0 libspatialite-4.1.1/test/sql_stmt_geos_tests/simplify10.testcase0000664000175000017500000000044112163502133022077 00000000000000SimplifyPreserveTopology - negative second arg :memory: #use in-memory database SELECT SimplifyPreserveTopology(GeomFromText("LINESTRING(1 2, 3 4)"), -287.3) 1 # rows (not including the header row) 1 # columns SimplifyPreserveTopology(GeomFromText("LINESTRING(1 2, 3 4)"), -287.3) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/bdpolyfromwkb19.testcase0000664000175000017500000000031012163502133023130 00000000000000BdPolyFromWKB - zeroblob, SRID :memory: #use in-memory database SELECT BdPolyFromWKB(zeroblob(25), 4326); 1 # rows (not including the header row) 1 # columns BdPolyFromWKB(zeroblob(25), 4326) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/bdpolyfromwkb5.testcase0000664000175000017500000000026512163502133023054 00000000000000BdPolyFromWKB - null, SRID :memory: #use in-memory database SELECT BdPolyFromWKB(null, 4326); 1 # rows (not including the header row) 1 # columns BdPolyFromWKB(null, 4326) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/bdmpolyfromwkb8.testcase0000664000175000017500000000031212163502133023225 00000000000000BdMPolyFromWKB - zeroblob(58), SRID :memory: #use in-memory database SELECT BdMPolyFromWKB(zeroblob(58), 4); 1 # rows (not including the header row) 1 # columns BdMPolyFromWKB(zeroblob(58), 4) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/intersection9.testcase0000664000175000017500000000056312163502133022706 00000000000000intersection - POLYGONZ, POINT :memory: #use in-memory database SELECT AsText(Intersection(GeomFromText("POLYGONZ((0 0 1, 4 0 1, 4 4 1, 0 4 1, 0 0 1))"), GeomFromText("POINT Z(0 3 1)"))) 1 # rows (not including the header row) 1 # columns AsText(Intersection(GeomFromText("POLYGONZ((0 0 1, 4 0 1, 4 4 1, 0 4 1, 0 0 1))"), GeomFromText("POINT Z(0 3 1)"))) POINT Z(0 3 1) libspatialite-4.1.1/test/sql_stmt_geos_tests/polygonize12.testcase0000664000175000017500000000040712163502133022446 00000000000000POLYGONIZE - already Polygon :memory: #use in-memory database SELECT AsText(Polygonize(GeomFromText("POLYGON((0 0, 1 1, 0 2, 0 0))"))) 1 # rows (not including the header row) 1 # columns AsText(Polygonize(GeomFromText("POLYGON((0 0, 1 1, 0 2, 0 0))"))) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/union25.testcase0000664000175000017500000000056712163502133021412 00000000000000union - MULTILINESTRING (two Lines) :memory: #use in-memory database SELECT AsText(GUnion(GeomFromText("LINESTRING(30 30, 31 31)"), GeomFromText("LINESTRING(20 20, 10 10)"))); 1 # rows (not including the header row) 1 # columns AsText(GUnion(GeomFromText("LINESTRING(30 30, 31 31)"), GeomFromText("LINESTRING(20 20, 10 10)"))) MULTILINESTRING((30 30, 31 31), (20 20, 10 10)) libspatialite-4.1.1/test/sql_stmt_geos_tests/ptdistancewithin12.testcase0000664000175000017500000000035312163502133023630 00000000000000PtDistWithin - WGS-84 first arg :memory: #use in-memory database SELECT PtDistWithin(MakePoint(4, 2, 4326), MakePoint(4,4), 1) 1 # rows (not including the header row) 1 # columns PtDistWithin(MakePoint(4, 2, 4326), MakePoint(4,4), 1) 0libspatialite-4.1.1/test/sql_stmt_geos_tests/isclosed2.testcase0000664000175000017500000000044012163502133021770 00000000000000isclosed2 :memory: #use in-memory database SELECT IsClosed(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))")); 1 # rows (not including the header row) 1 # columns IsClosed(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))")) 0 libspatialite-4.1.1/test/sql_stmt_geos_tests/bdpolyfromtext16.testcase0000664000175000017500000000060212163502133023332 00000000000000BdPolyFromText :memory: #use in-memory database SELECT AsEwkt(BdPolyFromText('MULTILINESTRING((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 2 8, 8 8, 8 2, 2 2))', 4326)); 1 # rows (not including the header row) 1 # columns AsEwkt(BdPolyFromText('MULTILINESTRING((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 2 8, 8 8, 8 2, 2 2))', 4326)) SRID=4326;POLYGON((0 0,0 10,10 10,10 0,0 0),(2 2,8 2,8 8,2 8,2 2)) libspatialite-4.1.1/test/sql_stmt_geos_tests/ptdistancewithin3.testcase0000664000175000017500000000030512163502133023545 00000000000000PtDistWithin - bad first arg :memory: #use in-memory database SELECT PtDistWithin(4, MakePoint(4,4), 2) 1 # rows (not including the header row) 1 # columns PtDistWithin(4, MakePoint(4,4), 2) (NULL)libspatialite-4.1.1/test/sql_stmt_geos_tests/simplify6.testcase0000664000175000017500000000036112163502133022025 00000000000000Simplify - negative second arg :memory: #use in-memory database SELECT Simplify(GeomFromText("LINESTRING(1 2, 3 4)"), -287.3) 1 # rows (not including the header row) 1 # columns Simplify(GeomFromText("LINESTRING(1 2, 3 4)"), -287.3) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/convexhull7.testcase0000664000175000017500000000057012163502133022363 00000000000000convex hull - toxic polygon :memory: #use in-memory database SELECT AsText(ConvexHull(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"))) 1 # rows (not including the header row) 1 # columns AsText(ConvexHull(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"))) POLYGON((136 -35.2, 135.2 -34.5, 136 -35, 136 -35.2)) libspatialite-4.1.1/test/sql_stmt_geos_tests/polygonize3.testcase0000664000175000017500000000025512163502133022367 00000000000000POLYGONIZE - bad blob :memory: #use in-memory database SELECT Polygonize(zeroblob(9)); 1 # rows (not including the header row) 1 # columns Polygonize(zeroblob(9)) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/issimple2.testcase0000664000175000017500000000044012163502133022010 00000000000000issimple2 :memory: #use in-memory database SELECT IsSimple(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))")); 1 # rows (not including the header row) 1 # columns IsSimple(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))")) 1 libspatialite-4.1.1/test/sql_stmt_geos_tests/distance10.testcase0000664000175000017500000000045112163502133022036 00000000000000Distance - toxic first line :memory: #use in-memory database SELECT Distance(GeomFromText("LINESTRING(0 0, 10 0)"), GeomFromText("LINESTRING(0 0, 0 0)")) 1 # rows (not including the header row) 1 # columns Distance(GeomFromText("LINESTRING(0 0, 10 0)"), GeomFromText("LINESTRING(0 0, 0 0)")) 0.0 libspatialite-4.1.1/test/sql_stmt_geos_tests/bdpolyfromwkb8.testcase0000664000175000017500000000030712163502133023054 00000000000000BdPolyFromWKB - zeroblob(58), SRID :memory: #use in-memory database SELECT BdPolyFromWKB(zeroblob(58), 4); 1 # rows (not including the header row) 1 # columns BdPolyFromWKB(zeroblob(58), 4) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/union22.testcase0000664000175000017500000000210412163502133021374 00000000000000union - GEOMETRYCOLLECTION Z (Polygon with hole / Linestring) :memory: #use in-memory database SELECT AsText(GUnion(GeomFromText("GEOMETRYCOLLECTIONZ(LINESTRINGZ(30 30 100, 31 31 101), POLYGONZ((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 12 12 102, 11 12 103, 11 11 100)))"), GeomFromText("GEOMETRYCOLLECTIONZ(LINESTRINGZ(31 31 101, 35 0 100), POLYGONZ((15 10 101, 16 10 102, 16 15 102, 10 15 103, 15 10 101)))"))); 1 # rows (not including the header row) 1 # columns AsText(GUnion(GeomFromText("GEOMETRYCOLLECTIONZ(LINESTRINGZ(30 30 100, 31 31 101), POLYGONZ((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 12 12 102, 11 12 103, 11 11 100)))"), GeomFromText("GEOMETRYCOLLECTIONZ(LINESTRINGZ(31 31 101, 35 0 100), POLYGONZ((15 10 101, 16 10 102, 16 15 102, 10 15 103, 15 10 101)))"))) GEOMETRYCOLLECTION Z(LINESTRING Z(30 30 100, 31 31 101), LINESTRING Z(31 31 101, 35 0 100), POLYGON Z((15 10 101, 10 10 100, 10 15 103, 15 15 102, 16 15 102, 16 10 102, 15 10 101), (11 11 100, 12 11 101, 12 12 102, 11 12 103, 11 11 100))) libspatialite-4.1.1/test/sql_stmt_geos_tests/st_length15.testcase0000664000175000017500000000051612163502133022242 00000000000000ST_Length - Linestring (Long/Lat metric - Ellipsoid) :memory: #use in-memory database SELECT ST_Length(GeomFromText("LINESTRING(0.7 0.7, 0.7 0.8, 0.8 0.8, 0.8 0.7, 0.7 0.8)"), 1); 1 # rows (not including the header row) 1 # columns ST_Length(GeomFromText("LINESTRING(0.7 0.7, 0.7 0.8, 0.8 0.8, 0.8 0.7, 0.7 0.8)"), 1) 48935.452049:6 libspatialite-4.1.1/test/sql_stmt_geos_tests/union16.testcase0000664000175000017500000000044712163502133021407 00000000000000union - MULTIPOINTM :memory: #use in-memory database SELECT AsText(GUnion(GeomFromText("MULTIPOINTM(1 3 4)"),GeomFromText("POINTM(1 3 4)"))) 1 # rows (not including the header row) 1 # columns AsText(GUnion(GeomFromText("MULTIPOINTM(1 3 4)"),GeomFromText("POINTM(1 3 4)"))) MULTIPOINT M(1 3 0) libspatialite-4.1.1/test/sql_stmt_geos_tests/st_area9.testcase0000664000175000017500000000036112163502133021612 00000000000000ST_Area - Toxic Polygon :memory: #use in-memory database SELECT ST_Area(GeomFromText('POLYGON((0 0, 0 0, 0 4, 4 0, 0 0))')); 1 # rows (not including the header row) 1 # columns ST_Area(GeomFromText('POLYGON((0 0, 0 0, 0 4, 4 0, 0 0))')) 8.0 libspatialite-4.1.1/test/sql_stmt_geos_tests/bdmpolyfromwkb17.testcase0000664000175000017500000000027112163502133023311 00000000000000BdMPolyFromWKB - zeroblob :memory: #use in-memory database SELECT BdMPolyFromWKB(zeroblob(25)); 1 # rows (not including the header row) 1 # columns BdMPolyFromWKB(zeroblob(25)) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/st_length18.testcase0000664000175000017500000000121512163502133022242 00000000000000ST_Length - GeometryCollection (Long/Lat metric - text use_ellipsoid) :memory: #use in-memory database SELECT ST_Length(GeomFromText("GEOMETRYCOLLECTION(POINT(0.1 0.1), LINESTRING(0.7 0.7, 0.7 0.8, 0.8 0.8, 0.8 0.7, 0.7 0.8), POLYGON((0.5 0.5, 0.5 0.6, 0.6 0.6, 0.6 0.5, 0.5 0.5),(0.55 0.55, 0.56 0.55, 0.56 0.56, 0.56 0.56, 0.055 0.55)))"), 'alpha'); 1 # rows (not including the header row) 1 # columns ST_Length(GeomFromText("GEOMETRYCOLLECTION(POINT(0.1 0.1), LINESTRING(0.7 0.7, 0.7 0.8, 0.8 0.8, 0.8 0.7, 0.7 0.8), POLYGON((0.5 0.5, 0.5 0.6, 0.6 0.6, 0.6 0.5, 0.5 0.5),(0.55 0.55, 0.56 0.55, 0.56 0.56, 0.56 0.56, 0.055 0.55)))"), 'alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/bdpolyfromwkb2.testcase0000664000175000017500000000054112163502133023046 00000000000000BdPolyFromWKB - SRID :memory: #use in-memory database SELECT AsEWkt(BdPolyFromWKB(AsBinary(GeomFromText('MULTILINESTRING((0 0, 1 0, 1 1, 0 1, 0 0))')), 4326)); 1 # rows (not including the header row) 1 # columns AsEWkt(BdPolyFromWKB(AsBinary(GeomFromText('MULTILINESTRING((0 0, 1 0, 1 1, 0 1, 0 0))')), 4326)) SRID=4326;POLYGON((0 0,0 1,1 1,1 0,0 0)) libspatialite-4.1.1/test/sql_stmt_geos_tests/isvalid19.testcase0000664000175000017500000000054212163502133021711 00000000000000isvalid Geometry Collection of two points and a polygon :memory: #use in-memory database SELECT IsValid(GeomFromText("GEOMETRYCOLLECTION(POINT(0 0),POINT(3 4),POLYGON((1 1, 4 1, 4 4, 1 4, 1 1)))")) 1 # rows (not including the header row) 1 # columns IsValid(GeomFromText("GEOMETRYCOLLECTION(POINT(0 0),POINT(3 4),POLYGON((1 1, 4 1, 4 4, 1 4, 1 1)))")) 1 libspatialite-4.1.1/test/sql_stmt_geos_tests/bdpolyfromwkb4.testcase0000664000175000017500000000026512163502133023053 00000000000000BdPolyFromWKB - non-text, SRID :memory: #use in-memory database SELECT BdPolyFromWKB(26, 4326); 1 # rows (not including the header row) 1 # columns BdPolyFromWKB(26, 4326) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/union8.testcase0000664000175000017500000000055212163502133021325 00000000000000union - toxic second point :memory: #use in-memory database SELECT AsText(GUnion(MakePoint(136,-35), GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"))); 1 # rows (not including the header row) 1 # columns AsText(GUnion(MakePoint(136,-35), GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"))) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/buffer2.testcase0000664000175000017500000000511612163502133021441 00000000000000buffer2 :memory: #use in-memory database SELECT AsText(Buffer(GeomFromText("LINESTRING(0 0, 100 0)"), 1)); 1 # rows (not including the header row) 1 # columns AsText(Buffer(GeomFromText("LINESTRING(0 0, 100 0)"), 1)) POLYGON((100 1, 100.052336 0.99863, 100.104528 0.994522, 100.156434 0.987688, 100.207912 0.978148, 100.258819 0.965926, 100.309017 0.951057, 100.358368 0.93358, 100.406737 0.913545, 100.45399 0.891007, 100.5 0.866025, 100.544639 0.838671, 100.587785 0.809017, 100.62932 0.777146, 100.669131 0.743145, 100.707107 0.707107, 100.743145 0.669131, 100.777146 0.62932, 100.809017 0.587785, 100.838671 0.544639, 100.866025 0.5, 100.891007 0.45399, 100.913545 0.406737, 100.93358 0.358368, 100.951057 0.309017, 100.965926 0.258819, 100.978148 0.207912, 100.987688 0.156434, 100.994522 0.104528, 100.99863 0.052336, 101 0, 100.99863 -0.052336, 100.994522 -0.104528, 100.987688 -0.156434, 100.978148 -0.207912, 100.965926 -0.258819, 100.951057 -0.309017, 100.93358 -0.358368, 100.913545 -0.406737, 100.891007 -0.45399, 100.866025 -0.5, 100.838671 -0.544639, 100.809017 -0.587785, 100.777146 -0.62932, 100.743145 -0.669131, 100.707107 -0.707107, 100.669131 -0.743145, 100.62932 -0.777146, 100.587785 -0.809017, 100.544639 -0.838671, 100.5 -0.866025, 100.45399 -0.891007, 100.406737 -0.913545, 100.358368 -0.93358, 100.309017 -0.951057, 100.258819 -0.965926, 100.207912 -0.978148, 100.156434 -0.987688, 100.104528 -0.994522, 100.052336 -0.99863, 100 -1, 0 -1, -0.052336 -0.99863, -0.104528 -0.994522, -0.156434 -0.987688, -0.207912 -0.978148, -0.258819 -0.965926, -0.309017 -0.951057, -0.358368 -0.93358, -0.406737 -0.913545, -0.45399 -0.891007, -0.5 -0.866025, -0.544639 -0.838671, -0.587785 -0.809017, -0.62932 -0.777146, -0.669131 -0.743145, -0.707107 -0.707107, -0.743145 -0.669131, -0.777146 -0.62932, -0.809017 -0.587785, -0.838671 -0.544639, -0.866025 -0.5, -0.891007 -0.45399, -0.913545 -0.406737, -0.93358 -0.358368, -0.951057 -0.309017, -0.965926 -0.258819, -0.978148 -0.207912, -0.987688 -0.156434, -0.994522 -0.104528, -0.99863 -0.052336, -1 0, -0.99863 0.052336, -0.994522 0.104528, -0.987688 0.156434, -0.978148 0.207912, -0.965926 0.258819, -0.951057 0.309017, -0.93358 0.358368, -0.913545 0.406737, -0.891007 0.45399, -0.866025 0.5, -0.838671 0.544639, -0.809017 0.587785, -0.777146 0.62932, -0.743145 0.669131, -0.707107 0.707107, -0.669131 0.743145, -0.62932 0.777146, -0.587785 0.809017, -0.544639 0.838671, -0.5 0.866025, -0.45399 0.891007, -0.406737 0.913545, -0.358368 0.93358, -0.309017 0.951057, -0.258819 0.965926, -0.207912 0.978148, -0.156434 0.987688, -0.104528 0.994522, -0.052336 0.99863, 0 1, 100 1)) libspatialite-4.1.1/test/sql_stmt_geos_tests/ptdistwithin11.testcase0000664000175000017500000000040512163502133022776 00000000000000PtDistWithin: WGS84 no spheroid :memory: SELECT PtDistWithin(GeomFromText("POINT(5 5)", 4326), GeomFromText("POINT(5.1 5.1)", 4326), 100000.0); 1 # rows 1 # column PtDistWithin(GeomFromText("POINT(5 5)", 4326), GeomFromText("POINT(5.1 5.1)", 4326), 100000.0) 1 libspatialite-4.1.1/test/sql_stmt_geos_tests/intersection2.testcase0000664000175000017500000000036412163502133022676 00000000000000intersection - two common points :memory: #use in-memory database SELECT AsText(Intersection(Makepoint(1,2), MakePoint(1,2))); 1 # rows (not including the header row) 1 # columns AsText(Intersection(Makepoint(1,2), MakePoint(1,2))) POINT(1 2) libspatialite-4.1.1/test/sql_stmt_geos_tests/ptdistancewithin17.testcase0000664000175000017500000000045312163502133023636 00000000000000PtDistWithin - LINESTRING and POINT, first arg WGS-84 :memory: #use in-memory database SELECT PtDistWithin(GeomFromText("LINESTRING(4 2, 3 2)", 4326), MakePoint(4,4), 5) 1 # rows (not including the header row) 1 # columns PtDistWithin(GeomFromText("LINESTRING(4 2, 3 2)", 4326), MakePoint(4,4), 5) 1libspatialite-4.1.1/test/sql_stmt_geos_tests/simplify1.testcase0000664000175000017500000000055712163502133022027 00000000000000Simplify - linestring :memory: #use in-memory database SELECT AsText(Simplify(geom, 0.1)), AsText(SimplifyPreserveTopology(geom, 0.1)) FROM (SELECT GeomFromText("LINESTRING(1 2, 4 5)") as geom) dummy 1 # rows (not including the header row) 2 # columns AsText(Simplify(geom, 0.1)) AsText(SimplifyPreserveTopology(geom, 0.1)) LINESTRING(1 2, 4 5) LINESTRING(1 2, 4 5) libspatialite-4.1.1/test/sql_stmt_geos_tests/bdpolyfromtext6.testcase0000664000175000017500000000025712163502133023257 00000000000000BdPolyFromText - null, no SRID :memory: #use in-memory database SELECT BdPolyFromText(null); 1 # rows (not including the header row) 1 # columns BdPolyFromText(null) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/bdmpolyfromwkb4.testcase0000664000175000017500000000027012163502133023224 00000000000000BdMPolyFromWKB - non-text, SRID :memory: #use in-memory database SELECT BdMPolyFromWKB(26, 4326); 1 # rows (not including the header row) 1 # columns BdMPolyFromWKB(26, 4326) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/polygonize2.testcase0000664000175000017500000000040512163502133022363 00000000000000POLYGONIZE - not ring :memory: #use in-memory database SELECT AsText(Polygonize(GeomFromText("LINESTRING(0 0, 1 1, 0 2, -1 1)"))); 1 # rows (not including the header row) 1 # columns AsText(Polygonize(GeomFromText("LINESTRING(0 0, 1 1, 0 2, -1 1)"))) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/centroid1.testcase0000664000175000017500000000042312163502133021772 00000000000000Centroid - polygon :memory: #use in-memory database SELECT astext(centroid(geomFromText("POLYGON((0 0, 0 2, 2 2, 2 0, 0 0))", 4326))); 1 # rows (not including the header row) 1 # columns astext(centroid(geomFromText("POLYGON((0 0, 0 2, 2 2, 2 0, 0 0))", 4326))); POINT(1 1) libspatialite-4.1.1/test/sql_stmt_geos_tests/distance8.testcase0000664000175000017500000000045312163502133021767 00000000000000Distance - intersecting lines :memory: #use in-memory database SELECT Distance(GeomFromText("LINESTRING(0 0, 10 0)"), GeomFromText("LINESTRING(0 0, 0 5)")) 1 # rows (not including the header row) 1 # columns Distance(GeomFromText("LINESTRING(0 0, 10 0)"), GeomFromText("LINESTRING(0 0, 0 5)")) 0.0 libspatialite-4.1.1/test/sql_stmt_geos_tests/distance9.testcase0000664000175000017500000000044712163502133021773 00000000000000Distance - toxic first line :memory: #use in-memory database SELECT Distance(GeomFromText("LINESTRING(0 0, 0 0)"), GeomFromText("LINESTRING(0 0, 0 5)")) 1 # rows (not including the header row) 1 # columns Distance(GeomFromText("LINESTRING(0 0, 0 0)"), GeomFromText("LINESTRING(0 0, 0 5)")) 0.0 libspatialite-4.1.1/test/sql_stmt_geos_tests/bdmpolyfromwkb10.testcase0000664000175000017500000000036012163502133023301 00000000000000BdMPolyFromWKB - point, no SRID :memory: #use in-memory database SELECT BdMPolyFromWKB(AsBinary(GeomFromText("Point(1 2)"))); 1 # rows (not including the header row) 1 # columns BdMPolyFromWKB(AsBinary(GeomFromText("Point(1 2)"))) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/st_area3.testcase0000664000175000017500000000036012163502133021603 00000000000000ST_Area - Linestring :memory: #use in-memory database SELECT ST_Area(GeomFromText("LINESTRING(0 0, 0 4, 4 4, 4 0, 0 0)")); 1 # rows (not including the header row) 1 # columns ST_Area(GeomFromText("LINESTRING(0 0, 0 4, 4 4, 4 0, 0 0)")) 0.0 libspatialite-4.1.1/test/sql_stmt_geos_tests/union3.testcase0000664000175000017500000000031012163502133021310 00000000000000union - null first point :memory: #use in-memory database SELECT AsText(GUnion(null, MakePoint(2,3))); 1 # rows (not including the header row) 1 # columns AsText(GUnion(null, MakePoint(2,3))) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/bdpolyfromwkb7.testcase0000664000175000017500000000030412163502133023050 00000000000000BdPolyFromWKB - zeroblob(58), no SRID :memory: #use in-memory database SELECT BdPolyFromWKB(zeroblob(58)); 1 # rows (not including the header row) 1 # columns BdPolyFromWKB(zeroblob(58)) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/symdifference8.testcase0000664000175000017500000000047212163502133023021 00000000000000symdifference - two pointM :memory: #use in-memory database SELECT AsText(SymDifference(GeomFromText("POINTM(1 3 4)"),GeomFromText("POINTM(4 2 6)"))) 1 # rows (not including the header row) 1 # columns AsText(SymDifference(GeomFromText("POINTM(1 3 4)"),GeomFromText("POINTM(4 2 6)"))) MULTIPOINT M(1 3 0, 4 2 0) libspatialite-4.1.1/test/sql_stmt_geos_tests/bdpolyfromtext7.testcase0000664000175000017500000000030712163502133023254 00000000000000BdPolyFromText - zeroblob(58), no SRID :memory: #use in-memory database SELECT BdPolyFromText(zeroblob(58)); 1 # rows (not including the header row) 1 # columns BdPolyFromText(zeroblob(58)) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/intersection12.testcase0000664000175000017500000000063412163502133022757 00000000000000intersection - POLYGONZM, POINTZM, non-intersecting :memory: #use in-memory database SELECT AsText(Intersection(GeomFromText("POLYGONZM((0 0 1 4, 4 0 1 2, 4 4 1 4, 0 4 1 2, 0 0 1 4))"), GeomFromText("POINTZM(-1 3 1 4)"))) 1 # rows (not including the header row) 1 # columns AsText(Intersection(GeomFromText("POLYGONZM((0 0 1 4, 4 0 1 2, 4 4 1 4, 0 4 1 2, 0 0 1 4))"), GeomFromText("POINTZM(-1 3 1 4)"))) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/ptdistwithin1.testcase0000664000175000017500000000031312163502133022713 00000000000000PtDistWithin invalid arg: NULL pt1 :memory: SELECT PtDistWithin(NULL, GeomFromText("POINT(5 5)", 4326), 10.0, 1); 1 # rows 1 # column PtDistWithin(NULL, GeomFromText("POINT(5 5)", 4326), 10.0, 1) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/bdmpolyfromtext14.testcase0000664000175000017500000000031612163502133023507 00000000000000BdMPolyFromText - bad wkt, SRID :memory: #use in-memory database SELECT BdMPolyFromText("Point(1,2)", 4326); 1 # rows (not including the header row) 1 # columns BdMPolyFromText("Point(1,2)", 4326) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/bdmpolyfromtext3.testcase0000664000175000017500000000026212163502133023425 00000000000000BdMPolyFromText - non-text, no SRID :memory: #use in-memory database SELECT BdMPolyFromText(26); 1 # rows (not including the header row) 1 # columns BdMPolyFromText(26) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/bdpolyfromtext13.testcase0000664000175000017500000000042712163502133023334 00000000000000BdPolyFromText - text SRID :memory: #use in-memory database SELECT BdPolyFromText('MULTILINESTRING((0 0, 1 0, 1 1, 0 1, 0 0))', "not an int"); 1 # rows (not including the header row) 1 # columns BdPolyFromText('MULTILINESTRING((0 0, 1 0, 1 1, 0 1, 0 0))', "not an int") (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/union17.testcase0000664000175000017500000000106712163502133021407 00000000000000union - POLYGON with hole :memory: #use in-memory database SELECT AsText(GUnion(GeomFromText("POLYGON((10 10, 15 10, 15 15, 10 15, 10 10), (11 11, 12 11, 12 12, 11 12, 11 11))"), GeomFromText("POLYGON((15 10, 16 10, 16 15, 10 15, 15 10))"))); 1 # rows (not including the header row) 1 # columns AsText(GUnion(GeomFromText("POLYGON((10 10, 15 10, 15 15, 10 15, 10 10), (11 11, 12 11, 12 12, 11 12, 11 11))"), GeomFromText("POLYGON((15 10, 16 10, 16 15, 10 15, 15 10))"))) POLYGON((15 10, 10 10, 10 15, 15 15, 16 15, 16 10, 15 10), (11 11, 12 11, 12 12, 11 12, 11 11)) libspatialite-4.1.1/test/sql_stmt_geos_tests/issimple5.testcase0000664000175000017500000000021612163502133022014 00000000000000issimple5 :memory: #use in-memory database SELECT IsSimple("hello"); 1 # rows (not including the header row) 1 # columns IsSimple("hello") -1 libspatialite-4.1.1/test/sql_stmt_geos_tests/union26.testcase0000664000175000017500000000075612163502133021413 00000000000000union - MULTIPOLYGON (two Polygons) :memory: #use in-memory database SELECT AsText(ST_ForceLHR(GUnion(GeomFromText("POLYGON((10 10, 15 10, 15 15, 10 15, 10 10))"), GeomFromText("POLYGON((1 1, 2 1, 2 2, 1 2, 1 1))")))); 1 # rows (not including the header row) 1 # columns AsText(ST_ForceLHR(GUnion(GeomFromText("POLYGON((10 10, 15 10, 15 15, 10 15, 10 10))"), GeomFromText("POLYGON((1 1, 2 1, 2 2, 1 2, 1 1))")))) MULTIPOLYGON(((10 10, 10 15, 15 15, 15 10, 10 10)), ((1 1, 1 2, 2 2, 2 1, 1 1))) libspatialite-4.1.1/test/sql_stmt_geos_tests/union19.testcase0000664000175000017500000000122312163502133021403 00000000000000union - POLYGON M with hole :memory: #use in-memory database SELECT AsText(GUnion(GeomFromText("POLYGONM((10 10 1, 15 10 2, 15 15 3, 10 15 4, 10 10 1), (11 11 1, 12 11 2, 12 12 3, 11 12 4, 11 11 1))"), GeomFromText("POLYGONM((15 10 2, 16 10 1, 16 15 3, 10 15 4, 15 10 2))"))); 1 # rows (not including the header row) 1 # columns AsText(GUnion(GeomFromText("POLYGONM((10 10 1, 15 10 2, 15 15 3, 10 15 4, 10 10 1), (11 11 1, 12 11 2, 12 12 3, 11 12 4, 11 11 1))"), GeomFromText("POLYGONM((15 10 2, 16 10 1, 16 15 3, 10 15 4, 15 10 2))"))) POLYGON M((15 10 0, 10 10 0, 10 15 0, 15 15 0, 16 15 0, 16 10 0, 15 10 0), (11 11 0, 12 11 0, 12 12 0, 11 12 0, 11 11 0)) libspatialite-4.1.1/test/sql_stmt_geos_tests/union6.testcase0000664000175000017500000000033412163502133021321 00000000000000union - zeroblob first point :memory: #use in-memory database SELECT AsText(GUnion(zeroblob(48), MakePoint(2,3))); 1 # rows (not including the header row) 1 # columns AsText(GUnion(zeroblob(48), MakePoint(2,3))) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/distance3.testcase0000664000175000017500000000032412163502133021757 00000000000000Distance - bad blob first arg :memory: #use in-memory database SELECT Distance(zeroblob(100), MakePoint(1, 2)) 1 # rows (not including the header row) 1 # columns Distance(zeroblob(100), MakePoint(1, 2)) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/bdpolyfromtext8.testcase0000664000175000017500000000031212163502133023251 00000000000000BdPolyFromText - zeroblob(58), SRID :memory: #use in-memory database SELECT BdPolyFromText(zeroblob(58), 4); 1 # rows (not including the header row) 1 # columns BdPolyFromText(zeroblob(58), 4) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/pointonsurface6.testcase0000664000175000017500000000067312163502133023236 00000000000000PointOnSurface - square, M (problem case - throws away M component) :memory: #use in-memory database SELECT Contains(geomFromText("POLYGON((0 0, 0 1, 1 1, 0 0))", 4326), PointOnSurface(geomFromText("POLYGONM((0 0 1, 0 1 2, 1 1 2, 0 0 1))", 4326))) 1 # rows (not including the header row) 1 # columns Contains(geomFromText("POLYGON((0 0, 0 1, 1 1, 0 0))", 4326), PointOnSurface(geomFromText("POLYGONM((0 0 1, 0 1 2, 1 1 2, 0 0 1))", 4326))) 1 libspatialite-4.1.1/test/sql_stmt_geos_tests/st_length13.testcase0000664000175000017500000000067712163502133022250 00000000000000ST_Length - Polygon with 1 interior (Long/Lat metric - Ellipsoid) :memory: #use in-memory database SELECT ST_Length(GeomFromText("POLYGON((0.5 0.5, 0.5 0.6, 0.6 0.6, 0.6 0.5, 0.5 0.5),(0.55 0.55, 0.56 0.55, 0.56 0.56, 0.56 0.56, 0.055 0.55))"), 1); 1 # rows (not including the header row) 1 # columns ST_Length(GeomFromText("POLYGON((0.5 0.5, 0.5 0.6, 0.6 0.6, 0.6 0.5, 0.5 0.5),(0.55 0.55, 0.56 0.55, 0.56 0.56, 0.56 0.56, 0.055 0.55))"), 1) 0.0 libspatialite-4.1.1/test/sql_stmt_geos_tests/ptdistancewithin6.testcase0000664000175000017500000000035212163502133023552 00000000000000PtDistWithin- two points, float distance :memory: #use in-memory database SELECT PtDistWithin(Makepoint(4,2), MakePoint(4,4), 2.1) 1 # rows (not including the header row) 1 # columns PtDistWithin(Makepoint(4,2), MakePoint(4,4), 2.1) 1libspatialite-4.1.1/test/sql_stmt_geos_tests/difference6.testcase0000664000175000017500000000035112163502133022262 00000000000000difference - zeroblob first point :memory: #use in-memory database SELECT AsText(Difference(zeroblob(48), MakePoint(2,3))); 1 # rows (not including the header row) 1 # columns AsText(Difference(zeroblob(48), MakePoint(2,3))) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/st_length10.testcase0000664000175000017500000000047012163502133022234 00000000000000ST_Length - MultiLinestring :memory: #use in-memory database SELECT ST_Length(GeomFromText("MULTILINESTRING((0 0, 0 4, 4 4, 4 0, 0 0), (10 10, 11 10, 11 11))")); 1 # rows (not including the header row) 1 # columns ST_Length(GeomFromText("MULTILINESTRING((0 0, 0 4, 4 4, 4 0, 0 0), (10 10, 11 10, 11 11))")) 18.0 libspatialite-4.1.1/test/sql_stmt_geos_tests/bdpolyfromwkb12.testcase0000664000175000017500000000056212163502133023132 00000000000000BdPolyFromWKB - toxic, SRID :memory: #use in-memory database SELECT BdPolyFromWKB(AsBinary(GeomFromText("MULTILINESTRING((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))", 4326))); 1 # rows (not including the header row) 1 # columns BdPolyFromWKB(AsBinary(GeomFromText("MULTILINESTRING((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))", 4326))) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/bdmpolyfromwkb12.testcase0000664000175000017500000000056512163502133023312 00000000000000BdMpolyFromWKB - toxic, SRID :memory: #use in-memory database SELECT BdMpolyFromWKB(AsBinary(GeomFromText("MULTILINESTRING((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))", 4326))); 1 # rows (not including the header row) 1 # columns BdMpolyFromWKB(AsBinary(GeomFromText("MULTILINESTRING((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))", 4326))) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/isvalid11.testcase0000664000175000017500000000064512163502133021705 00000000000000isvalid (POLYGON Z with hole) :memory: #use in-memory database SELECT IsValid(GeomFromText("POLYGONZ((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 12 12 102, 11 12 103, 11 11 100))")); 1 # rows (not including the header row) 1 # columns IsValid(GeomFromText("POLYGONZ((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 12 12 102, 11 12 103, 11 11 100))")) 1 libspatialite-4.1.1/test/sql_stmt_geos_tests/st_length11.testcase0000664000175000017500000000120112163502133022226 00000000000000ST_Length - GeometryCollection :memory: #use in-memory database SELECT ST_Length(GeomFromText("GEOMETRYCOLLECTION(POINT(100 100), POLYGON((0 0, 0 4, 4 4, 4 0, 0 0),(1 1, 1 3, 3 3, 3 1, 1 1)), POLYGON((10 10, 11 10, 11 11, 10 11, 10 10)), LINESTRING(0 0, 0 4, 4 4, 4 0, 0 0), LINESTRING(10 10, 11 10, 11 11), POINT(200 200))")); 1 # rows (not including the header row) 1 # columns ST_Length(GeomFromText("GEOMETRYCOLLECTION(POINT(100 100), POLYGON((0 0, 0 4, 4 4, 4 0, 0 0),(1 1, 1 3, 3 3, 3 1, 1 1)), POLYGON((10 10, 11 10, 11 11, 10 11, 10 10)), LINESTRING(0 0, 0 4, 4 4, 4 0, 0 0), LINESTRING(10 10, 11 10, 11 11), POINT(200 200))")) 18.0 libspatialite-4.1.1/test/sql_stmt_geos_tests/ptdistwithin16.testcase0000664000175000017500000000052212163502133023003 00000000000000PtDistWithin: Polygon / Linestring :memory: SELECT PtDistWithin(GeomFromText("POLYGON((5 5, 5.1 5, 5.1 5.1, 5 5.1, 5 5))", 4326), GeomFromText("LINESTRING(4 4, 4.1 4.1)", 4326), 200); 1 # rows 1 # column PtDistWithin(GeomFromText("POLYGON((5 5, 5.1 5, 5.1 5.1, 5 5.1, 5 5))", 4326), GeomFromText("LINESTRING(4 4, 4.1 4.1)", 4326), 200) 1 libspatialite-4.1.1/test/sql_stmt_geos_tests/bdmpolyfromwkb18.testcase0000664000175000017500000000032112163502133023306 00000000000000BdMPolyFromWKB - zeroblob, invalid SRID :memory: #use in-memory database SELECT BdMPolyFromWKB(zeroblob(25), 'a'); 1 # rows (not including the header row) 1 # columns BdMPolyFromWKB(zeroblob(25), 'a') (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/isvalid18.testcase0000664000175000017500000000054512163502133021713 00000000000000isvalid Geometry Collection of two points and linestring :memory: #use in-memory database SELECT IsValid(GeomFromText("GEOMETRYCOLLECTION(POINT(0 0),POINT(3 4),LINESTRING(1 1, 4 1, 4 4, 1 4, 1 1))")) 1 # rows (not including the header row) 1 # columns IsValid(GeomFromText("GEOMETRYCOLLECTION(POINT(0 0),POINT(3 4),LINESTRING(1 1, 4 1, 4 4, 1 4, 1 1))")) 1 libspatialite-4.1.1/test/sql_stmt_geos_tests/bdmpolyfromtext16.testcase0000664000175000017500000000061412163502133023512 00000000000000BdMPolyFromText :memory: #use in-memory database SELECT AsEwkt(BdMPolyFromText('MULTILINESTRING((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 2 8, 8 8, 8 2, 2 2))', 4326)); 1 # rows (not including the header row) 1 # columns AsEwkt(BdMPolyFromText('MULTILINESTRING((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 2 8, 8 8, 8 2, 2 2))', 4326)) SRID=4326;MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0),(2 2,8 2,8 8,2 8,2 2))) libspatialite-4.1.1/test/sql_stmt_geos_tests/bdpolyfromwkb14.testcase0000664000175000017500000000036612163502133023136 00000000000000BdPolyFromWKB - point, SRID :memory: #use in-memory database SELECT BdPolyFromWKB(AsBinary(GeomFromText("Point(1,2)")), 4326); 1 # rows (not including the header row) 1 # columns BdPolyFromWKB(AsBinary(GeomFromText("Point(1,2)")), 4326) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/st_length7.testcase0000664000175000017500000000032112163502133022155 00000000000000ST_Length - Empty linestring :memory: #use in-memory database SELECT ST_Length(GeomFromText("LINESTRING()")); 1 # rows (not including the header row) 1 # columns ST_Length(GeomFromText("LINESTRING()")) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/st_perimeter14.testcase0000664000175000017500000000051612163502133022754 00000000000000ST_Perimeter - Linestring (Long/Lat metric - GreatCircle) :memory: #use in-memory database SELECT ST_Perimeter(GeomFromText("LINESTRING(0.7 0.7, 0.7 0.8, 0.8 0.8, 0.8 0.7, 0.7 0.8)"), 0); 1 # rows (not including the header row) 1 # columns ST_Perimeter(GeomFromText("LINESTRING(0.7 0.7, 0.7 0.8, 0.8 0.8, 0.8 0.7, 0.7 0.8)"), 0) 0.0 libspatialite-4.1.1/test/sql_stmt_geos_tests/polygonize8.testcase0000664000175000017500000000104112163502133022366 00000000000000POLYGONIZE - polygonzm with inner ring :memory: #use in-memory database SELECT AsText(Polygonize(GeomFromText("MULTILINESTRINGZM((0 0 5 4, 10 0 6 2, 10 12 7 3, 0 12 6 1, 0 0 5 4),(1 1 0 0, 3 1 0 2, 3 3 4 1, 1 3 1 2, 1 1 0 0))"))) 1 # rows (not including the header row) 1 # columns AsText(Polygonize(GeomFromText("MULTILINESTRINGZM((0 0 5 4, 10 0 6 2, 10 12 7 3, 0 12 6 1, 0 0 5 4),(1 1 0 0, 3 1 0 2, 3 3 4 1, 1 3 1 2, 1 1 0 0))"))) POLYGON ZM((0 0 5 0, 0 12 6 0, 10 12 7 0, 10 0 6 0, 0 0 5 0), (1 1 0 0, 3 1 0 0, 3 3 4 0, 1 3 1 0, 1 1 0 0)) libspatialite-4.1.1/test/sql_stmt_geos_tests/boundary8.testcase0000664000175000017500000000044012163502133022014 00000000000000Boundary - open linestringM :memory: #use in-memory database SELECT AsText(Boundary(GeomFromText("LINESTRINGM(1 2 3, 4 -3 6, 2 -1 -4)"))) 1 # rows (not including the header row) 1 # columns AsText(Boundary(GeomFromText("LINESTRINGM(1 2 3, 4 -3 6, 2 -1 -4)"))) MULTIPOINT M(1 2 0, 2 -1 0) libspatialite-4.1.1/test/sql_stmt_geos_tests/st_length16.testcase0000664000175000017500000000120212163502133022234 00000000000000ST_Length - GeometryCollection (Long/Lat metric - GreatCircle) :memory: #use in-memory database SELECT ST_Length(GeomFromText("GEOMETRYCOLLECTION(POINT(0.1 0.1), LINESTRING(0.7 0.7, 0.7 0.8, 0.8 0.8, 0.8 0.7, 0.7 0.8), POLYGON((0.5 0.5, 0.5 0.6, 0.6 0.6, 0.6 0.5, 0.5 0.5),(0.55 0.55, 0.56 0.55, 0.56 0.56, 0.56 0.56, 0.055 0.55)))"), 0); 1 # rows (not including the header row) 1 # columns ST_Length(GeomFromText("GEOMETRYCOLLECTION(POINT(0.1 0.1), LINESTRING(0.7 0.7, 0.7 0.8, 0.8 0.8, 0.8 0.7, 0.7 0.8), POLYGON((0.5 0.5, 0.5 0.6, 0.6 0.6, 0.6 0.5, 0.5 0.5),(0.55 0.55, 0.56 0.55, 0.56 0.56, 0.56 0.56, 0.055 0.55)))"), 0) 49082.124419:6 libspatialite-4.1.1/test/sql_stmt_geos_tests/boundary5.testcase0000664000175000017500000000040612163502133022013 00000000000000Boundary - closed linestring :memory: #use in-memory database SELECT AsText(Boundary(GeomFromText("LINESTRING(1 2, 4 -3, 0 -1, 1 2)"))) 1 # rows (not including the header row) 1 # columns AsText(Boundary(GeomFromText("LINESTRING(1 2, 4 -3, 0 -1, 1 2)"))) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/bdpolyfromtext5.testcase0000664000175000017500000000027012163502133023251 00000000000000BdPolyFromText - null, SRID :memory: #use in-memory database SELECT BdPolyFromText(null, 4326); 1 # rows (not including the header row) 1 # columns BdPolyFromText(null, 4326) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/st_length1.testcase0000664000175000017500000000046512163502133022160 00000000000000ST_Length - Polygon with 1 interior :memory: #use in-memory database SELECT ST_Length(GeomFromText("POLYGON((0 0, 0 4, 4 4, 4 0, 0 0),(1 1, 1 3, 3 3, 3 1, 1 1))")); 1 # rows (not including the header row) 1 # columns ST_Length(GeomFromText("POLYGON((0 0, 0 4, 4 4, 4 0, 0 0),(1 1, 1 3, 3 3, 3 1, 1 1))")) 0.0 libspatialite-4.1.1/test/sql_stmt_geos_tests/simplify11.testcase0000664000175000017500000000034412163502133022102 00000000000000SimplifyPreserveTopology - zeroblob arg :memory: #use in-memory database SELECT SimplifyPreserveTopology(zeroblob(1000), 0) 1 # rows (not including the header row) 1 # columns SimplifyPreserveTopology(zeroblob(1000), 0) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/isclosed10.testcase0000664000175000017500000000055712163502133022060 00000000000000isclosed - multilinestring, first not closed :memory: #use in-memory database SELECT IsClosed(GeomFromText("MULTILINESTRING((136 -35, 135.2 -34.5, 136 -35.2, 136 -35.4),(10 10, 0 10, 0 0, 10 10))")) 1 # rows (not including the header row) 1 # columns IsClosed(GeomFromText("MULTILINESTRING((136 -35, 135.2 -34.5, 136 -35.2, 136 -35.4),(10 10, 0 10, 0 0, 10 10))")) 0 libspatialite-4.1.1/test/sql_stmt_geos_tests/intersection3.testcase0000664000175000017500000000033312163502133022673 00000000000000intersection - null first point :memory: #use in-memory database SELECT AsText(Intersection(null, MakePoint(2,3))); 1 # rows (not including the header row) 1 # columns AsText(Intersection(null, MakePoint(2,3))) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/symdifference3.testcase0000664000175000017500000000036012163502133023010 00000000000000symdifference - zeroblob first arg :memory: #use in-memory database SELECT AsText(SymDifference(zeroblob(50), MakePoint(1,2))) 1 # rows (not including the header row) 1 # columns AsText(SymDifference(zeroblob(50), MakePoint(1,2))) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/buffer4.testcase0000664000175000017500000000033012163502133021434 00000000000000buffer4 :memory: #use in-memory database SELECT Buffer(GeomFromText("LINESTRING(0 0, 100 0)"), "foo"); 1 # rows (not including the header row) 1 # columns Buffer(GeomFromText("LINESTRING(0 0, 100 0)"), "foo") (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/union11.testcase0000664000175000017500000000046112163502133021376 00000000000000union - POINTZM :memory: #use in-memory database SELECT AsText(GUnion(GeomFromText("POINTZM(1 3 4 5)"),GeomFromText("POINTZM(2 5 9 5)"))) 1 # rows (not including the header row) 1 # columns AsText(GUnion(GeomFromText("POINTZM(1 3 4 5)"),GeomFromText("POINTZM(2 5 9 5)"))) MULTIPOINT ZM(1 3 4 0, 2 5 9 0) libspatialite-4.1.1/test/sql_stmt_geos_tests/convexhull3.testcase0000664000175000017500000000052612163502133022360 00000000000000convex hull - polygon :memory: #use in-memory database SELECT AsText(ConvexHull(GeomFromText("POLYGON((0 0, 1 0, 1 1, 2 1, 2 0, 10 0, 10 10, 0 10, 0 0))"))) 1 # rows (not including the header row) 1 # columns AsText(ConvexHull(GeomFromText("POLYGON((0 0, 1 0, 1 1, 2 1, 2 0, 10 0, 10 10, 0 10, 0 0))"))) POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))libspatialite-4.1.1/test/sql_stmt_geos_tests/st_perimeter13.testcase0000664000175000017500000000072412163502133022754 00000000000000ST_Perimeter - Polygon with 1 interior (Long/Lat metric - Ellipsoid) :memory: #use in-memory database SELECT ST_Perimeter(GeomFromText("POLYGON((0.5 0.5, 0.5 0.6, 0.6 0.6, 0.6 0.5, 0.5 0.5),(0.55 0.55, 0.56 0.55, 0.56 0.56, 0.56 0.56, 0.055 0.55))"), 1); 1 # rows (not including the header row) 1 # columns ST_Perimeter(GeomFromText("POLYGON((0.5 0.5, 0.5 0.6, 0.6 0.6, 0.6 0.5, 0.5 0.5),(0.55 0.55, 0.56 0.55, 0.56 0.56, 0.56 0.56, 0.055 0.55))"), 1) 102821.231470:6 libspatialite-4.1.1/test/sql_stmt_geos_tests/boundary4.testcase0000664000175000017500000000041112163502133022006 00000000000000Boundary - open linestring :memory: #use in-memory database SELECT AsText(Boundary(GeomFromText("LINESTRING(1 2, 4 -3, 0 -1)"))) 1 # rows (not including the header row) 1 # columns AsText(Boundary(GeomFromText("LINESTRING(1 2, 4 -3, 0 -1)"))) MULTIPOINT(1 2, 0 -1) libspatialite-4.1.1/test/sql_stmt_geos_tests/boundary3.testcase0000664000175000017500000000024612163502133022013 00000000000000Boundary - bad blob :memory: #use in-memory database SELECT Boundary(zeroblob(100)) 1 # rows (not including the header row) 1 # columns Boundary(zeroblob(100)) (NULL)libspatialite-4.1.1/test/sql_stmt_geos_tests/ptdistwithin10.testcase0000664000175000017500000000033712163502133023001 00000000000000PtDistWithin invalid arg: zeroblob pt2 :memory: SELECT PtDistWithin(GeomFromText("POINT(5 5)", 4326), zeroblob(25), 10.0, 1); 1 # rows 1 # column PtDistWithin(GeomFromText("POINT(5 5)", 4326), zeroblob(25), 10.0, 1) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/isvalid6.testcase0000664000175000017500000000025712163502133021630 00000000000000isvalid6 :memory: #use in-memory database SELECT IsValid(GeomFromText("POLYGON()")); 1 # rows (not including the header row) 1 # columns IsValid(GeomFromText("POLYGON()")) -1 libspatialite-4.1.1/test/sql_stmt_geos_tests/issimple6.testcase0000664000175000017500000000037512163502133022023 00000000000000IsSimple - GeometryCollection, single point :memory: #use in-memory database SELECT IsSimple(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2))")) 1 # rows (not including the header row) 1 # columns IsSimple(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2))")) -1 libspatialite-4.1.1/test/sql_stmt_geos_tests/ptdistancewithin18.testcase0000664000175000017500000000050512163502133023635 00000000000000PtDistWithin - LINESTRING and POINT, WGS-84 both args, geodesic :memory: #use in-memory database SELECT PtDistWithin(GeomFromText("LINESTRING(4 2, 3 2)", 4326), MakePoint(4,4,4326), 5, 1) 1 # rows (not including the header row) 1 # columns PtDistWithin(GeomFromText("LINESTRING(4 2, 3 2)", 4326), MakePoint(4,4,4326), 5, 1) 1libspatialite-4.1.1/test/sql_stmt_geos_tests/ptdistancewithin5.testcase0000664000175000017500000000035312163502133023552 00000000000000PtDistWithin - bad third arg :memory: #use in-memory database SELECT PtDistWithin(Makepoint(4,2), MakePoint(4,4), "hello") 1 # rows (not including the header row) 1 # columns PtDistWithin(Makepoint(4,2), MakePoint(4,4), "hello") (NULL)libspatialite-4.1.1/test/sql_stmt_geos_tests/st_perimeter10.testcase0000664000175000017500000000050012163502133022741 00000000000000ST_Perimeter - MultiLinestring :memory: #use in-memory database SELECT ST_Perimeter(GeomFromText("MULTILINESTRING((0 0, 0 4, 4 4, 4 0, 0 0), (10 10, 11 10, 11 11))")); 1 # rows (not including the header row) 1 # columns ST_Perimeter(GeomFromText("MULTILINESTRING((0 0, 0 4, 4 4, 4 0, 0 0), (10 10, 11 10, 11 11))")) 0.0 libspatialite-4.1.1/test/sql_stmt_geos_tests/relations5.testcase0000664000175000017500000000112112163502133022163 00000000000000Relationship tests - bad second arg :memory: #use in-memory database SELECT Equals(geom1, geom2), Intersects(geom1, geom2), Disjoint(geom1, geom2), Overlaps(geom1, geom2), Crosses(geom1, geom2), Touches(geom1, geom2), Within(geom1, geom2), Contains(geom1, geom2) FROM (SELECT GeomFromText("POINT(3 4)") as geom1, "hello" as geom2) dummy; 1 # rows (not including the header row) 8 # columns Equals(geom1, geom2) Intersects(geom1, geom2) Disjoint(geom1, geom2) Overlaps(geom1, geom2) Crosses(geom1, geom2) Touches(geom1, geom2) Within(geom1, geom2) Contains(geom1, geom2) -1 -1 -1 -1 -1 -1 -1 -1libspatialite-4.1.1/test/sql_stmt_geos_tests/simplify14.testcase0000664000175000017500000000064412163502133022110 00000000000000Simplify - linestringZM :memory: #use in-memory database SELECT AsText(Simplify(geom, 0.1)), AsText(SimplifyPreserveTopology(geom, 0.1)) FROM (SELECT GeomFromText("LINESTRINGZM(1 2 1 4, 4.0001 4.9999 5 6, 4 5 5 6)") as geom) dummy 1 # rows (not including the header row) 2 # columns AsText(Simplify(geom, 0.1)) AsText(SimplifyPreserveTopology(geom, 0.1)) LINESTRING ZM(1 2 1 0, 4 5 5 0) LINESTRING ZM(1 2 1 0, 4 5 5 0) libspatialite-4.1.1/test/sql_stmt_geos_tests/st_length2.testcase0000664000175000017500000000037012163502133022154 00000000000000ST_Length - Simple Polygon :memory: #use in-memory database SELECT ST_Length(GeomFromText("POLYGON((0 0, 0 4, 4 4, 4 0, 0 0))")); 1 # rows (not including the header row) 1 # columns ST_Length(GeomFromText("POLYGON((0 0, 0 4, 4 4, 4 0, 0 0))")) 0.0 libspatialite-4.1.1/test/sql_stmt_geos_tests/buffer3.testcase0000664000175000017500000000021612163502133021436 00000000000000buffer3 :memory: #use in-memory database SELECT Buffer("foo", 1); 1 # rows (not including the header row) 1 # columns Buffer("foo", 1) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/bdpolyfromtext4.testcase0000664000175000017500000000027012163502133023250 00000000000000BdPolyFromText - non-text, SRID :memory: #use in-memory database SELECT BdPolyFromText(26, 4326); 1 # rows (not including the header row) 1 # columns BdPolyFromText(26, 4326) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/symdifference9.testcase0000664000175000017500000000051412163502133023017 00000000000000symdifference - two pointZM :memory: #use in-memory database SELECT AsText(SymDifference(GeomFromText("POINTZM(1 3 6 4)"),GeomFromText("POINTZM(4 2 3 6)"))) 1 # rows (not including the header row) 1 # columns AsText(SymDifference(GeomFromText("POINTZM(1 3 6 4)"),GeomFromText("POINTZM(4 2 3 6)"))) MULTIPOINT ZM(1 3 6 0, 4 2 3 0) libspatialite-4.1.1/test/sql_stmt_geos_tests/isvalid3.testcase0000664000175000017500000000040212163502133021615 00000000000000isvalid3 :memory: #use in-memory database SELECT IsValid(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35))")); 1 # rows (not including the header row) 1 # columns IsValid(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35))")) 1 libspatialite-4.1.1/test/sql_stmt_geos_tests/union24.testcase0000664000175000017500000000230112163502133021375 00000000000000union - GEOMETRYCOLLECTION ZM (Polygon with hole / Linestring) :memory: #use in-memory database SELECT AsText(GUnion(GeomFromText("GEOMETRYCOLLECTIONZM(LINESTRINGZM(30 30 100 1, 31 31 101 2), POLYGONZM((10 10 100 1, 15 10 101 2, 15 15 102 3, 10 15 103 4, 10 10 100 1), (11 11 100 1, 12 11 101 2, 12 12 102 3, 11 12 103 4, 11 11 100 1)))"), GeomFromText("GEOMETRYCOLLECTIONZM(LINESTRINGZM(31 31 101 2, 35 0 100 1), POLYGONZM((15 10 101 2, 16 10 102 1, 16 15 102 3, 10 15 103 4, 15 10 101 2)))"))); 1 # rows (not including the header row) 1 # columns AsText(GUnion(GeomFromText("GEOMETRYCOLLECTIONZM(LINESTRINGZM(30 30 100 1, 31 31 101 2), POLYGONZM((10 10 100 1, 15 10 101 2, 15 15 102 3, 10 15 103 4, 10 10 100 1), (11 11 100 1, 12 11 101 2, 12 12 102 3, 11 12 103 4, 11 11 100 1)))"), GeomFromText("GEOMETRYCOLLECTIONZM(LINESTRINGZM(31 31 101 2, 35 0 100 1), POLYGONZM((15 10 101 2, 16 10 102 1, 16 15 102 3, 10 15 103 4, 15 10 101 2)))"))) GEOMETRYCOLLECTION ZM(LINESTRING ZM(30 30 100 0, 31 31 101 0), LINESTRING ZM(31 31 101 0, 35 0 100 0), POLYGON ZM((15 10 101 0, 10 10 100 0, 10 15 103 0, 15 15 102 0, 16 15 102 0, 16 10 102 0, 15 10 101 0), (11 11 100 0, 12 11 101 0, 12 12 102 0, 11 12 103 0, 11 11 100 0))) libspatialite-4.1.1/test/sql_stmt_geos_tests/polygonize14.testcase0000664000175000017500000000055112163502133022450 00000000000000POLYGONIZE - toxic geometry :memory: #use in-memory database SELECT AsText(Polygonize(GeomFromText("MULTILINESTRING((0 0, 1 1, 0 2, -1 1), (4 0, 4 0), (-1 1, 0 0))"))); 1 # rows (not including the header row) 1 # columns AsText(Polygonize(GeomFromText("MULTILINESTRING((0 0, 1 1, 0 2, -1 1), (4 0, 4 0), (-1 1, 0 0))"))) POLYGON((-1 1, 0 2, 1 1, 0 0, -1 1)) libspatialite-4.1.1/test/sql_stmt_geos_tests/simplify9.testcase0000664000175000017500000000043612163502133022033 00000000000000SimplifyPreserveTopology - bad second arg :memory: #use in-memory database SELECT SimplifyPreserveTopology(GeomFromText("LINESTRING(1 2, 3 4)"), "hello") 1 # rows (not including the header row) 1 # columns SimplifyPreserveTopology(GeomFromText("LINESTRING(1 2, 3 4)"), "hello") (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/ptdistwithin12.testcase0000664000175000017500000000041012163502133022773 00000000000000PtDistWithin: WGS84 spheroid :memory: SELECT PtDistWithin(GeomFromText("POINT(5 5)", 4326), GeomFromText("POINT(5.1 5.1)", 4326), 100000.0, 1); 1 # rows 1 # column PtDistWithin(GeomFromText("POINT(5 5)", 4326), GeomFromText("POINT(5.1 5.1)", 4326), 100000.0, 1) 1 libspatialite-4.1.1/test/sql_stmt_geos_tests/bdpolyfromtext1.testcase0000664000175000017500000000043312163502133023246 00000000000000BdPolyFromText :memory: #use in-memory database SELECT AsText(BdPolyFromText('MULTILINESTRING((0 0, 1 0, 1 1, 0 1, 0 0))')); 1 # rows (not including the header row) 1 # columns AsText(BdPolyFromText('MULTILINESTRING((0 0, 1 0, 1 1, 0 1, 0 0))')) POLYGON((0 0, 0 1, 1 1, 1 0, 0 0)) libspatialite-4.1.1/test/sql_stmt_geos_tests/pointonsurface5.testcase0000664000175000017500000000067312163502133023235 00000000000000PointOnSurface - square, Z (problem case - throws away Z component) :memory: #use in-memory database SELECT Contains(geomFromText("POLYGON((0 0, 0 1, 1 1, 0 0))", 4326), PointOnSurface(geomFromText("POLYGONZ((0 0 1, 0 1 2, 1 1 2, 0 0 1))", 4326))) 1 # rows (not including the header row) 1 # columns Contains(geomFromText("POLYGON((0 0, 0 1, 1 1, 0 0))", 4326), PointOnSurface(geomFromText("POLYGONZ((0 0 1, 0 1 2, 1 1 2, 0 0 1))", 4326))) 1 libspatialite-4.1.1/test/sql_stmt_geos_tests/union1.testcase0000664000175000017500000000034512163502133021316 00000000000000union - two points :memory: #use in-memory database SELECT AsText(GUnion(Makepoint(1,2), MakePoint(2,3))); 1 # rows (not including the header row) 1 # columns AsText(GUnion(Makepoint(1,2), MakePoint(2,3))) MULTIPOINT(1 2, 2 3) libspatialite-4.1.1/test/sql_stmt_geos_tests/st_perimeter7.testcase0000664000175000017500000000033212163502133022672 00000000000000ST_Perimeter - Empty linestring :memory: #use in-memory database SELECT ST_Perimeter(GeomFromText("LINESTRING()")); 1 # rows (not including the header row) 1 # columns ST_Perimeter(GeomFromText("LINESTRING()")) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/bdpolyfromtext3.testcase0000664000175000017500000000025712163502133023254 00000000000000BdPolyFromText - non-text, no SRID :memory: #use in-memory database SELECT BdPolyFromText(26); 1 # rows (not including the header row) 1 # columns BdPolyFromText(26) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/union5.testcase0000664000175000017500000000033512163502133021321 00000000000000union - zeroblob second point :memory: #use in-memory database SELECT AsText(GUnion(MakePoint(2,3), zeroblob(48))); 1 # rows (not including the header row) 1 # columns AsText(GUnion(MakePoint(2,3), zeroblob(48))) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/union21.testcase0000664000175000017500000000152712163502133021403 00000000000000union - GEOMETRYCOLLECTION (Polygon with hole / Linestring) :memory: #use in-memory database SELECT AsText(GUnion(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(30 30, 31 31), POLYGON((10 10, 15 10, 15 15, 10 15, 10 10), (11 11, 12 11, 12 12, 11 12, 11 11)))"), GeomFromText("GEOMETRYCOLLECTION(LINESTRING(31 31, 35 0), POLYGON((15 10, 16 10, 16 15, 10 15, 15 10)))"))); 1 # rows (not including the header row) 1 # columns AsText(GUnion(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(30 30, 31 31), POLYGON((10 10, 15 10, 15 15, 10 15, 10 10), (11 11, 12 11, 12 12, 11 12, 11 11)))"), GeomFromText("GEOMETRYCOLLECTION(LINESTRING(31 31, 35 0), POLYGON((15 10, 16 10, 16 15, 10 15, 15 10)))"))) GEOMETRYCOLLECTION(LINESTRING(30 30, 31 31), LINESTRING(31 31, 35 0), POLYGON((15 10, 10 10, 10 15, 15 15, 16 15, 16 10, 15 10), (11 11, 12 11, 12 12, 11 12, 11 11))) libspatialite-4.1.1/test/sql_stmt_geos_tests/ptdistwithin14.testcase0000664000175000017500000000052212163502133023001 00000000000000PtDistWithin: Linestring / Polygon :memory: SELECT PtDistWithin(GeomFromText("LINESTRING(4 4, 4.1 4.1)", 4326), GeomFromText("POLYGON((5 5, 5.1 5, 5.1 5.1, 5 5.1, 5 5))", 4326), 200); 1 # rows 1 # column PtDistWithin(GeomFromText("LINESTRING(4 4, 4.1 4.1)", 4326), GeomFromText("POLYGON((5 5, 5.1 5, 5.1 5.1, 5 5.1, 5 5))", 4326), 200) 1 libspatialite-4.1.1/test/sql_stmt_geos_tests/bdpolyfromwkb11.testcase0000664000175000017500000000053112163502133023125 00000000000000BdPolyFromWKB - toxic, no SRID :memory: #use in-memory database SELECT BdPolyFromWKB(AsBinary(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"))); 1 # rows (not including the header row) 1 # columns BdPolyFromWKB(AsBinary(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"))) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/intersection6.testcase0000664000175000017500000000035712163502133022704 00000000000000intersection - zeroblob first point :memory: #use in-memory database SELECT AsText(Intersection(zeroblob(48), MakePoint(2,3))); 1 # rows (not including the header row) 1 # columns AsText(Intersection(zeroblob(48), MakePoint(2,3))) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/relate2.testcase0000664000175000017500000000045512163502133021445 00000000000000Relate - bad blob first arg :memory: #use in-memory database SELECT Relate(zeroblob(100), geom2, "T*T***T**") FROM (SELECT GeomFromText("POINT(1 2)") as geom1, GeomFromText("POINT(1 2)") as geom2) dummy; 1 # rows (not including the header row) 1 # columns Relate(zeroblob(100), geom2, "T*T***T**") -1 libspatialite-4.1.1/test/sql_stmt_geos_tests/buildarea2.testcase0000664000175000017500000000025512163502133022117 00000000000000buildarea - zeroblob arg :memory: #use in-memory database SELECT BuildArea(zeroblob(48)) 1 # rows (not including the header row) 1 # columns BuildArea(zeroblob(48)) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/intersection7.testcase0000664000175000017500000000057412163502133022706 00000000000000intersection - toxic first point :memory: #use in-memory database SELECT AsText(Intersection(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"), MakePoint(136,-35))); 1 # rows (not including the header row) 1 # columns AsText(Intersection(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"), MakePoint(136,-35))) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/bdmpolyfromwkb13.testcase0000664000175000017500000000050712163502133023307 00000000000000BdMPolyFromWKB - text SRID :memory: #use in-memory database SELECT BdMPolyFromWKB(AsBinary(GeomFromText('MULTILINESTRING((0 0, 1 0, 1 1, 0 1, 0 0))', "not an int"))); 1 # rows (not including the header row) 1 # columns BdMPolyFromWKB(AsBinary(GeomFromText('MULTILINESTRING((0 0, 1 0, 1 1, 0 1, 0 0))', "not an int"))) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/bdmpolyfromtext2.testcase0000664000175000017500000000047612163502133023433 00000000000000BdMPolyFromText - SRID :memory: #use in-memory database SELECT AsEWkt(BdMPolyFromText('MULTILINESTRING((0 0, 1 0, 1 1, 0 1, 0 0))', 4326)); 1 # rows (not including the header row) 1 # columns AsEWkt(BdMPolyFromText('MULTILINESTRING((0 0, 1 0, 1 1, 0 1, 0 0))', 4326)) SRID=4326;MULTIPOLYGON(((0 0,0 1,1 1,1 0,0 0))) libspatialite-4.1.1/test/sql_stmt_geos_tests/intersection5.testcase0000664000175000017500000000036012163502133022675 00000000000000intersection - zeroblob second point :memory: #use in-memory database SELECT AsText(Intersection(MakePoint(2,3), zeroblob(48))); 1 # rows (not including the header row) 1 # columns AsText(Intersection(MakePoint(2,3), zeroblob(48))) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/bdmpolyfromwkb2.testcase0000664000175000017500000000055312163502133023226 00000000000000BdMPolyFromWKB - SRID :memory: #use in-memory database SELECT AsEWkt(BdMPolyFromWKB(AsBinary(GeomFromText('MULTILINESTRING((0 0, 1 0, 1 1, 0 1, 0 0))')), 4326)); 1 # rows (not including the header row) 1 # columns AsEWkt(BdMPolyFromWKB(AsBinary(GeomFromText('MULTILINESTRING((0 0, 1 0, 1 1, 0 1, 0 0))')), 4326)) SRID=4326;MULTIPOLYGON(((0 0,0 1,1 1,1 0,0 0))) libspatialite-4.1.1/test/sql_stmt_geos_tests/isring7.testcase0000664000175000017500000000043112163502133021463 00000000000000isring1 - LINESTRINGZM :memory: #use in-memory database SELECT IsRing(GeomFromText("LINESTRINGZM(1 1 3 4, 2 1 4 9, 2 2 5 4, 1 2 4 3, 1 1 3 1)")) 1 # rows (not including the header row) 1 # columns IsRing(GeomFromText("LINESTRINGZM(1 1 3 4, 2 1 4 9, 2 2 5 4, 1 2 4 3, 1 1 3 1)")) 1 libspatialite-4.1.1/test/sql_stmt_geos_tests/ptdistancewithin9.testcase0000664000175000017500000000042112163502133023552 00000000000000PtDistWithin- two points, float distance, bad fourth arg :memory: #use in-memory database SELECT PtDistWithin(Makepoint(4,2), MakePoint(4,4), 2.1, "hello") 1 # rows (not including the header row) 1 # columns PtDistWithin(Makepoint(4,2), MakePoint(4,4), 2.1, "hello") (NULL)libspatialite-4.1.1/test/sql_stmt_geos_tests/buffer9.testcase0000664000175000017500000000523012163502133021445 00000000000000buffer - linestringm :memory: #use in-memory database SELECT AsText(Buffer(GeomFromText("LINESTRINGM(1 2 1, 4 6 3)"), 1)) 1 # rows (not including the header row) 1 # columns AsText(Buffer(GeomFromText("LINESTRINGM(1 2 1, 4 6 3)"), 1)) POLYGON M((3.2 6.6 0, 3.232498 6.641046 0, 3.2671 6.680336 0, 3.30371 6.717761 0, 3.342229 6.753218 0, 3.382551 6.786611 0, 3.424565 6.817848 0, 3.468156 6.846843 0, 3.513206 6.873517 0, 3.559589 6.897796 0, 3.60718 6.919615 0, 3.655847 6.938914 0, 3.705458 6.955638 0, 3.755875 6.969744 0, 3.806963 6.981191 0, 3.858579 6.989949 0, 3.910582 6.995994 0, 3.962831 6.999309 0, 4.015182 6.999885 0, 4.067491 6.99772 0, 4.119615 6.99282 0, 4.171412 6.9852 0, 4.222738 6.974878 0, 4.273454 6.961885 0, 4.32342 6.946255 0, 4.3725 6.928032 0, 4.420559 6.907265 0, 4.467465 6.884011 0, 4.51309 6.858335 0, 4.557309 6.830305 0, 4.6 6.8 0, 4.641046 6.767502 0, 4.680336 6.7329 0, 4.717761 6.69629 0, 4.753218 6.657771 0, 4.786611 6.617449 0, 4.817848 6.575435 0, 4.846843 6.531844 0, 4.873517 6.486794 0, 4.897796 6.440411 0, 4.919615 6.39282 0, 4.938914 6.344153 0, 4.955638 6.294542 0, 4.969744 6.244125 0, 4.981191 6.193037 0, 4.989949 6.141421 0, 4.995994 6.089418 0, 4.999309 6.037169 0, 4.999885 5.984818 0, 4.99772 5.932509 0, 4.99282 5.880385 0, 4.9852 5.828588 0, 4.974878 5.777262 0, 4.961885 5.726546 0, 4.946255 5.67658 0, 4.928032 5.6275 0, 4.907265 5.579441 0, 4.884011 5.532535 0, 4.858335 5.48691 0, 4.830305 5.442691 0, 4.8 5.4 0, 1.8 1.4 0, 1.767502 1.358954 0, 1.7329 1.319664 0, 1.69629 1.282239 0, 1.657771 1.246782 0, 1.617449 1.213389 0, 1.575435 1.182152 0, 1.531844 1.153157 0, 1.486794 1.126483 0, 1.440411 1.102204 0, 1.39282 1.080385 0, 1.344153 1.061086 0, 1.294542 1.044362 0, 1.244125 1.030256 0, 1.193037 1.018809 0, 1.141421 1.010051 0, 1.089418 1.004006 0, 1.037169 1.000691 0, 0.984818 1.000115 0, 0.932509 1.00228 0, 0.880385 1.00718 0, 0.828588 1.0148 0, 0.777262 1.025122 0, 0.726546 1.038115 0, 0.67658 1.053745 0, 0.6275 1.071968 0, 0.579441 1.092735 0, 0.532535 1.115989 0, 0.48691 1.141665 0, 0.442691 1.169695 0, 0.4 1.2 0, 0.358954 1.232498 0, 0.319664 1.2671 0, 0.282239 1.30371 0, 0.246782 1.342229 0, 0.213389 1.382551 0, 0.182152 1.424565 0, 0.153157 1.468156 0, 0.126483 1.513206 0, 0.102204 1.559589 0, 0.080385 1.60718 0, 0.061086 1.655847 0, 0.044362 1.705458 0, 0.030256 1.755875 0, 0.018809 1.806963 0, 0.010051 1.858579 0, 0.004006 1.910582 0, 0.000691 1.962831 0, 0.000115 2.015182 0, 0.00228 2.067491 0, 0.00718 2.119615 0, 0.0148 2.171412 0, 0.025122 2.222738 0, 0.038115 2.273454 0, 0.053745 2.32342 0, 0.071968 2.3725 0, 0.092735 2.420559 0, 0.115989 2.467465 0, 0.141665 2.51309 0, 0.169695 2.557309 0, 0.2 2.6 0, 3.2 6.6 0)) libspatialite-4.1.1/test/sql_stmt_geos_tests/ptdistwithin9.testcase0000664000175000017500000000033712163502133022731 00000000000000PtDistWithin invalid arg: zeroblob pt1 :memory: SELECT PtDistWithin(zeroblob(25), GeomFromText("POINT(5 5)", 4326), 10.0, 1); 1 # rows 1 # column PtDistWithin(zeroblob(25), GeomFromText("POINT(5 5)", 4326), 10.0, 1) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/isring9.testcase0000664000175000017500000000035312163502133021470 00000000000000isring9 - toxic ring :memory: #use in-memory database SELECT IsRing(GeomFromText("LINESTRING(1 1, 1 1, 1 1, 1 1, 1 1)")) 1 # rows (not including the header row) 1 # columns IsRing(GeomFromText("LINESTRING(1 1, 1 1, 1 1, 1 1, 1 1)")) 1 libspatialite-4.1.1/test/sql_stmt_geos_tests/relate5.testcase0000664000175000017500000000043612163502133021447 00000000000000Relate - non blob second arg :memory: #use in-memory database SELECT Relate(geom1, "foo", "T*T***T**") FROM (SELECT GeomFromText("POINT(1 2)") as geom1, GeomFromText("POINT(1 2)") as geom2) dummy; 1 # rows (not including the header row) 1 # columns Relate(geom1, "foo", "T*T***T**") -1 libspatialite-4.1.1/test/sql_stmt_geos_tests/isclosed7.testcase0000664000175000017500000000044512163502133022002 00000000000000isclosed - multilinestring :memory: #use in-memory database SELECT IsClosed(GeomFromText("MULTILINESTRING((136 -35, 135.2 -34.5, 136 -35.2, 136 -35))")) 1 # rows (not including the header row) 1 # columns IsClosed(GeomFromText("MULTILINESTRING((136 -35, 135.2 -34.5, 136 -35.2, 136 -35))")) 1 libspatialite-4.1.1/test/sql_stmt_geos_tests/symdifference4.testcase0000664000175000017500000000035712163502133023017 00000000000000symdifference - zeroblob second arg :memory: #use in-memory database SELECT AsText(SymDifference(MakePoint(1,2),zeroblob(50))) 1 # rows (not including the header row) 1 # columns AsText(SymDifference(MakePoint(1,2),zeroblob(50))) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/buildarea1.testcase0000664000175000017500000000023012163502133022107 00000000000000buildarea - null arg :memory: #use in-memory database SELECT BuildArea(NULL) 1 # rows (not including the header row) 1 # columns BuildArea(NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/st_area7.testcase0000664000175000017500000000031312163502133021605 00000000000000ST_Area - Empty linestring :memory: #use in-memory database SELECT ST_Area(GeomFromText("LINESTRING()")); 1 # rows (not including the header row) 1 # columns ST_Area(GeomFromText("LINESTRING()")) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/union9.testcase0000664000175000017500000000043712163502133021330 00000000000000union - POINTZ :memory: #use in-memory database SELECT AsText(GUnion(GeomFromText("POINTZ(1 3 4)"),GeomFromText("POINTZ(2 5 9)"))) 1 # rows (not including the header row) 1 # columns AsText(GUnion(GeomFromText("POINTZ(1 3 4)"),GeomFromText("POINTZ(2 5 9)"))) MULTIPOINT Z(1 3 4, 2 5 9) libspatialite-4.1.1/test/sql_stmt_geos_tests/isvalid17.testcase0000664000175000017500000000051212163502133021704 00000000000000isvalid Geometry Collection of point and linestring :memory: #use in-memory database SELECT IsValid(GeomFromText("GEOMETRYCOLLECTION(POINT(0 0),LINESTRING(1 1, 4 1, 4 4, 1 4, 1 1))")) 1 # rows (not including the header row) 1 # columns IsValid(GeomFromText("GEOMETRYCOLLECTION(POINT(0 0),LINESTRING(1 1, 4 1, 4 4, 1 4, 1 1))")) 1 libspatialite-4.1.1/test/sql_stmt_geos_tests/st_perimeter9.testcase0000664000175000017500000000062012163502133022674 00000000000000ST_Perimeter - MultiPolygon :memory: #use in-memory database SELECT ST_Perimeter(GeomFromText("MULTIPOLYGON(((0 0, 0 4, 4 4, 4 0, 0 0),(1 1, 1 3, 3 3, 3 1, 1 1)), ((10 10, 11 10, 11 11, 10 11, 10 10)))")); 1 # rows (not including the header row) 1 # columns ST_Perimeter(GeomFromText("MULTIPOLYGON(((0 0, 0 4, 4 4, 4 0, 0 0),(1 1, 1 3, 3 3, 3 1, 1 1)), ((10 10, 11 10, 11 11, 10 11, 10 10)))")) 28.0 libspatialite-4.1.1/test/sql_stmt_geos_tests/bdpolyfromtext11.testcase0000664000175000017500000000045412163502133023332 00000000000000BdPolyFromText - toxic, no SRID :memory: #use in-memory database SELECT BdPolyFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"); 1 # rows (not including the header row) 1 # columns BdPolyFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))") (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/Makefile.in0000664000175000017500000004601612163502133020422 00000000000000# Makefile.in generated by automake 1.12.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = test/sql_stmt_geos_tests DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = bdmpolyfromtext10.testcase \ bdmpolyfromtext13.testcase \ bdmpolyfromtext14.testcase \ bdmpolyfromtext15.testcase \ bdmpolyfromtext16.testcase \ bdmpolyfromtext17.testcase \ bdmpolyfromtext1.testcase \ bdmpolyfromtext2.testcase \ bdmpolyfromtext3.testcase \ bdmpolyfromtext4.testcase \ bdmpolyfromtext9.testcase \ bdmpolyfromwkb10.testcase \ bdmpolyfromwkb11.testcase \ bdmpolyfromwkb12.testcase \ bdmpolyfromwkb13.testcase \ bdmpolyfromwkb14.testcase \ bdmpolyfromwkb15.testcase \ bdmpolyfromwkb16.testcase \ bdmpolyfromwkb17.testcase \ bdmpolyfromwkb18.testcase \ bdmpolyfromwkb19.testcase \ bdmpolyfromwkb1.testcase \ bdmpolyfromwkb2.testcase \ bdmpolyfromwkb3.testcase \ bdmpolyfromwkb4.testcase \ bdmpolyfromwkb5.testcase \ bdmpolyfromwkb6.testcase \ bdmpolyfromwkb7.testcase \ bdmpolyfromwkb8.testcase \ bdmpolyfromwkb9.testcase \ bdpolyfromtext10.testcase \ bdpolyfromtext11.testcase \ bdpolyfromtext12.testcase \ bdpolyfromtext13.testcase \ bdpolyfromtext14.testcase \ bdpolyfromtext15.testcase \ bdpolyfromtext16.testcase \ bdpolyfromtext1.testcase \ bdpolyfromtext2.testcase \ bdpolyfromtext3.testcase \ bdpolyfromtext4.testcase \ bdpolyfromtext5.testcase \ bdpolyfromtext6.testcase \ bdpolyfromtext7.testcase \ bdpolyfromtext8.testcase \ bdpolyfromtext9.testcase \ bdpolyfromwkb10.testcase \ bdpolyfromwkb11.testcase \ bdpolyfromwkb12.testcase \ bdpolyfromwkb13.testcase \ bdpolyfromwkb14.testcase \ bdpolyfromwkb15.testcase \ bdpolyfromwkb16.testcase \ bdpolyfromwkb17.testcase \ bdpolyfromwkb18.testcase \ bdpolyfromwkb19.testcase \ bdpolyfromwkb1.testcase \ bdpolyfromwkb2.testcase \ bdpolyfromwkb3.testcase \ bdpolyfromwkb4.testcase \ bdpolyfromwkb5.testcase \ bdpolyfromwkb6.testcase \ bdpolyfromwkb7.testcase \ bdpolyfromwkb8.testcase \ bdpolyfromwkb9.testcase \ boundary1.testcase \ boundary2.testcase \ boundary3.testcase \ boundary4.testcase \ boundary5.testcase \ boundary6.testcase \ boundary7.testcase \ boundary8.testcase \ boundary9.testcase \ buffer10.testcase \ buffer1.testcase \ buffer2.testcase \ buffer3.testcase \ buffer4.testcase \ buffer5.testcase \ buffer6.testcase \ buffer7.testcase \ buffer8.testcase \ buffer9.testcase \ buildarea1.testcase \ buildarea2.testcase \ buildarea3.testcase \ buildarea4.testcase \ buildarea5.testcase \ buildarea6.testcase \ centroid1.testcase \ centroid2.testcase \ centroid3.testcase \ centroid4.testcase \ centroid5.testcase \ centroid6.testcase \ centroid7.testcase \ centroid8.testcase \ convexhull10.testcase \ convexhull1.testcase \ convexhull2.testcase \ convexhull3.testcase \ convexhull4.testcase \ convexhull5.testcase \ convexhull6.testcase \ convexhull7.testcase \ convexhull8.testcase \ convexhull9.testcase \ difference10.testcase \ difference11.testcase \ difference12.testcase \ difference1.testcase \ difference2.testcase \ difference3.testcase \ difference4.testcase \ difference6.testcase \ difference7.testcase \ difference8.testcase \ difference9.testcase \ distance10.testcase \ distance1.testcase \ distance2.testcase \ distance3.testcase \ distance4.testcase \ distance5.testcase \ distance6.testcase \ distance7.testcase \ distance8.testcase \ distance9.testcase \ intersection10.testcase \ intersection11.testcase \ intersection12.testcase \ intersection1.testcase \ intersection2.testcase \ intersection3.testcase \ intersection4.testcase \ intersection5.testcase \ intersection6.testcase \ intersection7.testcase \ intersection8.testcase \ intersection9.testcase \ isclosed10.testcase \ isclosed1.testcase \ isclosed2.testcase \ isclosed3.testcase \ isclosed4.testcase \ isclosed5.testcase \ isclosed6.testcase \ isclosed7.testcase \ isclosed8.testcase \ isclosed9.testcase \ isring1.testcase \ isring2.testcase \ isring3.testcase \ isring4.testcase \ isring5.testcase \ isring6.testcase \ isring7.testcase \ isring8.testcase \ isring9.testcase \ issimple1.testcase \ issimple2.testcase \ issimple3.testcase \ issimple4.testcase \ issimple5.testcase \ issimple6.testcase \ isvalid10.testcase \ isvalid11.testcase \ isvalid12.testcase \ isvalid13.testcase \ isvalid14.testcase \ isvalid15.testcase \ isvalid16.testcase \ isvalid17.testcase \ isvalid18.testcase \ isvalid19.testcase \ isvalid1.testcase \ isvalid20.testcase \ isvalid2.testcase \ isvalid3.testcase \ isvalid4.testcase \ isvalid5.testcase \ isvalid6.testcase \ isvalid7.testcase \ isvalid8.testcase \ isvalid9.testcase \ pointonsurface1.testcase \ pointonsurface2.testcase \ pointonsurface3.testcase \ pointonsurface4.testcase \ pointonsurface5.testcase \ pointonsurface6.testcase \ pointonsurface7.testcase \ polygonize10.testcase \ polygonize11.testcase \ polygonize12.testcase \ polygonize13.testcase \ polygonize14.testcase \ polygonize1.testcase \ polygonize2.testcase \ polygonize3.testcase \ polygonize4.testcase \ polygonize5.testcase \ polygonize6.testcase \ polygonize7.testcase \ polygonize8.testcase \ polygonize9.testcase \ ptdistancewithin10.testcase \ ptdistancewithin11.testcase \ ptdistancewithin12.testcase \ ptdistancewithin13.testcase \ ptdistancewithin14.testcase \ ptdistancewithin15.testcase \ ptdistancewithin16.testcase \ ptdistancewithin17.testcase \ ptdistancewithin18.testcase \ ptdistancewithin1.testcase \ ptdistancewithin2.testcase \ ptdistancewithin3.testcase \ ptdistancewithin4.testcase \ ptdistancewithin5.testcase \ ptdistancewithin6.testcase \ ptdistancewithin7.testcase \ ptdistancewithin8.testcase \ ptdistancewithin9.testcase \ ptdistwithin10.testcase \ ptdistwithin11.testcase \ ptdistwithin12.testcase \ ptdistwithin13.testcase \ ptdistwithin14.testcase \ ptdistwithin15.testcase \ ptdistwithin16.testcase \ ptdistwithin1.testcase \ ptdistwithin2.testcase \ ptdistwithin3.testcase \ ptdistwithin4.testcase \ ptdistwithin5.testcase \ ptdistwithin6.testcase \ ptdistwithin7.testcase \ ptdistwithin8.testcase \ ptdistwithin9.testcase \ relate1.testcase \ relate2.testcase \ relate3.testcase \ relate4.testcase \ relate5.testcase \ relate6.testcase \ relate7.testcase \ relate8.testcase \ relate9.testcase \ relations1.testcase \ relations2.testcase \ relations3.testcase \ relations4.testcase \ relations5.testcase \ relations6.testcase \ relations7.testcase \ relations8.testcase \ routing6.testcase \ simplify10.testcase \ simplify11.testcase \ simplify12.testcase \ simplify13.testcase \ simplify14.testcase \ simplify15.testcase \ simplify16.testcase \ simplify1.testcase \ simplify2.testcase \ simplify3.testcase \ simplify4.testcase \ simplify5.testcase \ simplify6.testcase \ simplify7.testcase \ simplify8.testcase \ simplify9.testcase \ st_area1.testcase \ st_area2.testcase \ st_area3.testcase \ st_area4.testcase \ st_area5.testcase \ st_area6.testcase \ st_area7.testcase \ st_area8.testcase \ st_area9.testcase \ st_length10.testcase \ st_length11.testcase \ st_length12.testcase \ st_length13.testcase \ st_length14.testcase \ st_length15.testcase \ st_length16.testcase \ st_length17.testcase \ st_length18.testcase \ st_length1.testcase \ st_length2.testcase \ st_length3.testcase \ st_length4.testcase \ st_length5.testcase \ st_length6.testcase \ st_length7.testcase \ st_length8.testcase \ st_length9.testcase \ st_perimeter10.testcase \ st_perimeter11.testcase \ st_perimeter12.testcase \ st_perimeter13.testcase \ st_perimeter14.testcase \ st_perimeter15.testcase \ st_perimeter16.testcase \ st_perimeter17.testcase \ st_perimeter18.testcase \ st_perimeter1.testcase \ st_perimeter2.testcase \ st_perimeter3.testcase \ st_perimeter4.testcase \ st_perimeter5.testcase \ st_perimeter6.testcase \ st_perimeter7.testcase \ st_perimeter8.testcase \ st_perimeter9.testcase \ symdifference10.testcase \ symdifference11.testcase \ symdifference1.testcase \ symdifference2.testcase \ symdifference3.testcase \ symdifference4.testcase \ symdifference5.testcase \ symdifference6.testcase \ symdifference7.testcase \ symdifference8.testcase \ symdifference9.testcase \ union10.testcase \ union11.testcase \ union12.testcase \ union13.testcase \ union14.testcase \ union15.testcase \ union16.testcase \ union17.testcase \ union18.testcase \ union19.testcase \ union1.testcase \ union20.testcase \ union21.testcase \ union22.testcase \ union23.testcase \ union24.testcase \ union25.testcase \ union26.testcase \ union27.testcase \ union28.testcase \ union29.testcase \ union2.testcase \ union3.testcase \ union4.testcase \ union5.testcase \ union6.testcase \ union7.testcase \ union8.testcase \ union9.testcase all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/sql_stmt_geos_tests/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign test/sql_stmt_geos_tests/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags: TAGS TAGS: ctags: CTAGS CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libspatialite-4.1.1/test/sql_stmt_geos_tests/polygonize6.testcase0000664000175000017500000000052412163502133022371 00000000000000POLYGONIZE - simple polygonm :memory: #use in-memory database SELECT AsText(Polygonize(GeomFromText("LINESTRINGM(0 0 5, 1 1 6, 0 2 7, -1 1 6, 0 0 5)"))) 1 # rows (not including the header row) 1 # columns AsText(Polygonize(GeomFromText("LINESTRINGM(0 0 5, 1 1 6, 0 2 7, -1 1 6, 0 0 5)"))) POLYGON M((0 0 0, -1 1 0, 0 2 0, 1 1 0, 0 0 0)) libspatialite-4.1.1/test/sql_stmt_geos_tests/relations4.testcase0000664000175000017500000000113012163502133022162 00000000000000Relationship tests - bad second blob :memory: #use in-memory database SELECT Equals(geom1, geom2), Intersects(geom1, geom2), Disjoint(geom1, geom2), Overlaps(geom1, geom2), Crosses(geom1, geom2), Touches(geom1, geom2), Within(geom1, geom2), Contains(geom1, geom2) FROM (SELECT GeomFromText("POINT(3 4)") as geom1, zeroblob(10) as geom2) dummy; 1 # rows (not including the header row) 8 # columns Equals(geom1, geom2) Intersects(geom1, geom2) Disjoint(geom1, geom2) Overlaps(geom1, geom2) Crosses(geom1, geom2) Touches(geom1, geom2) Within(geom1, geom2) Contains(geom1, geom2) -1 -1 -1 -1 -1 -1 -1 -1 libspatialite-4.1.1/test/sql_stmt_geos_tests/simplify4.testcase0000664000175000017500000000024112163502133022020 00000000000000Simplify - bad arg :memory: #use in-memory database SELECT Simplify("hello", 0) 1 # rows (not including the header row) 1 # columns Simplify("hello", 0) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/bdmpolyfromwkb7.testcase0000664000175000017500000000030712163502133023230 00000000000000BdMPolyFromWKB - zeroblob(58), no SRID :memory: #use in-memory database SELECT BdMPolyFromWKB(zeroblob(58)); 1 # rows (not including the header row) 1 # columns BdMPolyFromWKB(zeroblob(58)) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/polygonize9.testcase0000664000175000017500000000074112163502133022375 00000000000000POLYGONIZE - polygonz with inner ring :memory: #use in-memory database SELECT AsText(Polygonize(GeomFromText("MULTILINESTRINGZ((0 0 5, 10 0 6, 10 12 7, 0 12 6, 0 0 5),(1 1 0, 3 1 0, 3 3 4, 1 3 1, 1 1 0))"))) 1 # rows (not including the header row) 1 # columns AsText(Polygonize(GeomFromText("MULTILINESTRINGZ((0 0 5, 10 0 6, 10 12 7, 0 12 6, 0 0 5),(1 1 0, 3 1 0, 3 3 4, 1 3 1, 1 1 0))"))) POLYGON Z((0 0 5, 0 12 6, 10 12 7, 10 0 6, 0 0 5), (1 1 0, 3 1 0, 3 3 4, 1 3 1, 1 1 0)) libspatialite-4.1.1/test/sql_stmt_geos_tests/polygonize7.testcase0000664000175000017500000000056612163502133022400 00000000000000POLYGONIZE - simple polygonzm :memory: #use in-memory database SELECT AsText(Polygonize(GeomFromText("LINESTRINGZM(0 0 5 4, 1 1 6 2, 0 2 7 3, -1 1 6 1, 0 0 5 4)"))) 1 # rows (not including the header row) 1 # columns AsText(Polygonize(GeomFromText("LINESTRINGZM(0 0 5 4, 1 1 6 2, 0 2 7 3, -1 1 6 1, 0 0 5 4)"))) POLYGON ZM((0 0 5 0, -1 1 6 0, 0 2 7 0, 1 1 6 0, 0 0 5 0)) libspatialite-4.1.1/test/sql_stmt_geos_tests/bdmpolyfromwkb14.testcase0000664000175000017500000000037112163502133023307 00000000000000BdMPolyFromWKB - point, SRID :memory: #use in-memory database SELECT BdMPolyFromWKB(AsBinary(GeomFromText("Point(1,2)")), 4326); 1 # rows (not including the header row) 1 # columns BdMPolyFromWKB(AsBinary(GeomFromText("Point(1,2)")), 4326) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/ptdistancewithin10.testcase0000664000175000017500000000034112163502133023623 00000000000000PtDistWithin - bad blob second arg :memory: #use in-memory database SELECT PtDistWithin(MakePoint(4,4), zeroblob(98), 2) 1 # rows (not including the header row) 1 # columns PtDistWithin(MakePoint(4,4), zeroblob(98), 2) (NULL)libspatialite-4.1.1/test/sql_stmt_geos_tests/st_length4.testcase0000664000175000017500000000037012163502133022156 00000000000000ST_Length - Linestring not closed :memory: #use in-memory database SELECT ST_Length(GeomFromText("LINESTRING(0 0, 0 4, 4 4, 4 0)")); 1 # rows (not including the header row) 1 # columns ST_Length(GeomFromText("LINESTRING(0 0, 0 4, 4 4, 4 0)")) 12.0 libspatialite-4.1.1/test/sql_stmt_geos_tests/isvalid7.testcase0000664000175000017500000000066212163502133021631 00000000000000isvalid (MULTYPOLYGON with hole) :memory: #use in-memory database SELECT IsValid(GeomFromText("MULTIPOLYGON(((10 10, 15 10, 15 15, 10 15, 10 10), (11 11, 12 11, 12 12, 11 12, 11 11)), ((20 20, 21 20, 21 21, 20 21, 20 20)))")); 1 # rows (not including the header row) 1 # columns IsValid(GeomFromText("MULTIPOLYGON(((10 10, 15 10, 15 15, 10 15, 10 10), (11 11, 12 11, 12 12, 11 12, 11 11)), ((20 20, 21 20, 21 21, 20 21, 20 20)))")) 1 libspatialite-4.1.1/test/sql_stmt_geos_tests/bdmpolyfromwkb1.testcase0000664000175000017500000000052212163502133023221 00000000000000BdMPolyFromWKB :memory: #use in-memory database SELECT AsText(BdMPolyFromWKB(AsBinary(GeomFromText('MULTILINESTRING((0 0, 1 0, 1 1, 0 1, 0 0))')))); 1 # rows (not including the header row) 1 # columns AsText(BdMPolyFromWKB(AsBinary(GeomFromText('MULTILINESTRING((0 0, 1 0, 1 1, 0 1, 0 0))')))) MULTIPOLYGON(((0 0, 0 1, 1 1, 1 0, 0 0))) libspatialite-4.1.1/test/sql_stmt_geos_tests/st_perimeter5.testcase0000664000175000017500000000031012163502133022664 00000000000000ST_Perimeter - Point :memory: #use in-memory database SELECT ST_Perimeter(GeomFromText("POINT(0 0)")); 1 # rows (not including the header row) 1 # columns ST_Perimeter(GeomFromText("POINT(0 0)")) 0.0 libspatialite-4.1.1/test/sql_stmt_geos_tests/polygonize1.testcase0000664000175000017500000000046212163502133022365 00000000000000POLYGONIZE - simple polygon :memory: #use in-memory database SELECT AsText(Polygonize(GeomFromText("LINESTRING(0 0, 1 1, 0 2, -1 1, 0 0)"))); 1 # rows (not including the header row) 1 # columns AsText(Polygonize(GeomFromText("LINESTRING(0 0, 1 1, 0 2, -1 1, 0 0)"))) POLYGON((0 0, -1 1, 0 2, 1 1, 0 0)) libspatialite-4.1.1/test/sql_stmt_geos_tests/centroid8.testcase0000664000175000017500000000052012163502133021777 00000000000000Centroid - polygonM (problem case - GEOS throws away the M coordinates) :memory: #use in-memory database SELECT astext(centroid(geomFromText("POLYGONM((0 0 1, 0 2 1, 2 2 1, 2 0 1, 0 0 1))"))) 1 # rows (not including the header row) 1 # columns astext(centroid(geomFromText("POLYGONM((0 0 1, 0 2 1, 2 2 1, 2 0 1, 0 0 1))"))) POINT(1 1) libspatialite-4.1.1/test/sql_stmt_geos_tests/convexhull6.testcase0000664000175000017500000000023112163502133022354 00000000000000convex hull - non-blob :memory: #use in-memory database SELECT ConvexHull(3.2) 1 # rows (not including the header row) 1 # columns ConvexHull(3.2) (NULL)libspatialite-4.1.1/test/sql_stmt_geos_tests/centroid6.testcase0000664000175000017500000000052012163502133021775 00000000000000Centroid - polygonZ (problem case - GEOS throws away the Z coordinates) :memory: #use in-memory database SELECT astext(centroid(geomFromText("POLYGONZ((0 0 1, 0 2 1, 2 2 1, 2 0 1, 0 0 1))"))) 1 # rows (not including the header row) 1 # columns astext(centroid(geomFromText("POLYGONZ((0 0 1, 0 2 1, 2 2 1, 2 0 1, 0 0 1))"))) POINT(1 1) libspatialite-4.1.1/test/sql_stmt_geos_tests/union18.testcase0000664000175000017500000000134712163502133021411 00000000000000union - POLYGON Z with hole :memory: #use in-memory database SELECT AsText(GUnion(GeomFromText("POLYGONZ((10 10 100, 15 10 100, 15 15 100, 10 15 100, 10 10 100), (11 11 102, 12 11 102, 12 12 102, 11 12 102, 11 11 102))"), GeomFromText("POLYGONZ((15 10 100, 16 10 100, 16 15 100, 10 15 100, 15 10 100))"))); 1 # rows (not including the header row) 1 # columns AsText(GUnion(GeomFromText("POLYGONZ((10 10 100, 15 10 100, 15 15 100, 10 15 100, 10 10 100), (11 11 102, 12 11 102, 12 12 102, 11 12 102, 11 11 102))"), GeomFromText("POLYGONZ((15 10 100, 16 10 100, 16 15 100, 10 15 100, 15 10 100))"))) POLYGON Z((15 10 100, 10 10 100, 10 15 100, 15 15 100, 16 15 100, 16 10 100, 15 10 100), (11 11 102, 12 11 102, 12 12 102, 11 12 102, 11 11 102)) libspatialite-4.1.1/test/sql_stmt_geos_tests/boundary9.testcase0000664000175000017500000000060612163502133022021 00000000000000boundary - toxic polygon :memory: #use in-memory database SELECT AsText(Boundary(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"))) 1 # rows (not including the header row) 1 # columns AsText(Boundary(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"))) LINESTRING(136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5, 136 -35) libspatialite-4.1.1/test/sql_stmt_geos_tests/relations8.testcase0000664000175000017500000000116312163502133022174 00000000000000Relationship tests - toxic second arg :memory: #use in-memory database SELECT Equals(geom1, geom2), Intersects(geom1, geom2), Disjoint(geom1, geom2), Overlaps(geom1, geom2), Crosses(geom1, geom2), Touches(geom1, geom2), Within(geom1, geom2), Contains(geom1, geom2) FROM (SELECT GeomFromText("LINESTRING(1 1, 2 2)") as geom1, GeomFromText('LINESTRING(1 1, 1 1)') as geom2) dummy; 1 # rows (not including the header row) 8 # columns Equals(geom1, geom2) Intersects(geom1, geom2) Disjoint(geom1, geom2) Overlaps(geom1, geom2) Crosses(geom1, geom2) Touches(geom1, geom2) Within(geom1, geom2) Contains(geom1, geom2) 0 1 0 0 0 0 0 1 libspatialite-4.1.1/test/sql_stmt_geos_tests/ptdistwithin2.testcase0000664000175000017500000000031312163502133022714 00000000000000PtDistWithin invalid arg: NULL pt2 :memory: SELECT PtDistWithin(GeomFromText("POINT(5 5)", 4326), NULL, 10.0, 1); 1 # rows 1 # column PtDistWithin(GeomFromText("POINT(5 5)", 4326), NULL, 10.0, 1) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/boundary6.testcase0000664000175000017500000000044112163502133022013 00000000000000Boundary - open linestringZ :memory: #use in-memory database SELECT AsText(Boundary(GeomFromText("LINESTRINGZ(1 2 3, 4 -3 6, 2 -1 -4)"))) 1 # rows (not including the header row) 1 # columns AsText(Boundary(GeomFromText("LINESTRINGZ(1 2 3, 4 -3 6, 2 -1 -4)"))) MULTIPOINT Z(1 2 3, 2 -1 -4) libspatialite-4.1.1/test/sql_stmt_geos_tests/isvalid16.testcase0000664000175000017500000000050512163502133021705 00000000000000isvalid Geometry Collection of point and polygon :memory: #use in-memory database SELECT IsValid(GeomFromText("GEOMETRYCOLLECTION(POINT(0 0),POLYGON((1 1, 4 1, 4 4, 1 4, 1 1)))")) 1 # rows (not including the header row) 1 # columns IsValid(GeomFromText("GEOMETRYCOLLECTION(POINT(0 0),POLYGON((1 1, 4 1, 4 4, 1 4, 1 1)))")) 1 libspatialite-4.1.1/test/sql_stmt_geos_tests/ptdistancewithin4.testcase0000664000175000017500000000032012163502133023543 00000000000000PtDistWithin - bad second arg :memory: #use in-memory database SELECT PtDistWithin(Makepoint(4,2), "helo", 2) 1 # rows (not including the header row) 1 # columns PtDistWithin(Makepoint(4,2), "helo", 2) (NULL)libspatialite-4.1.1/test/sql_stmt_geos_tests/st_length17.testcase0000664000175000017500000000120012163502133022233 00000000000000ST_Length - GeometryCollection (Long/Lat metric - Ellipsoid) :memory: #use in-memory database SELECT ST_Length(GeomFromText("GEOMETRYCOLLECTION(POINT(0.1 0.1), LINESTRING(0.7 0.7, 0.7 0.8, 0.8 0.8, 0.8 0.7, 0.7 0.8), POLYGON((0.5 0.5, 0.5 0.6, 0.6 0.6, 0.6 0.5, 0.5 0.5),(0.55 0.55, 0.56 0.55, 0.56 0.56, 0.56 0.56, 0.055 0.55)))"), 1); 1 # rows (not including the header row) 1 # columns ST_Length(GeomFromText("GEOMETRYCOLLECTION(POINT(0.1 0.1), LINESTRING(0.7 0.7, 0.7 0.8, 0.8 0.8, 0.8 0.7, 0.7 0.8), POLYGON((0.5 0.5, 0.5 0.6, 0.6 0.6, 0.6 0.5, 0.5 0.5),(0.55 0.55, 0.56 0.55, 0.56 0.56, 0.56 0.56, 0.055 0.55)))"), 1) 48935.452049:6 libspatialite-4.1.1/test/sql_stmt_geos_tests/convexhull8.testcase0000664000175000017500000000061112163502133022360 00000000000000convex hull - polygonZ :memory: #use in-memory database SELECT AsText(ConvexHull(GeomFromText("POLYGONZ((0 0 1, 1 0 3, 1 1 5, 2 1 5, 2 0 3, 10 0 1, 10 10 2, 0 10 2, 0 0 1))"))) 1 # rows (not including the header row) 1 # columns AsText(ConvexHull(GeomFromText("POLYGONZ((0 0 1, 1 0 3, 1 1 5, 2 1 5, 2 0 3, 10 0 1, 10 10 2, 0 10 2, 0 0 1))"))) POLYGON Z((0 0 1, 0 10 2, 10 10 2, 10 0 1, 0 0 1))libspatialite-4.1.1/test/sql_stmt_geos_tests/bdmpolyfromwkb6.testcase0000664000175000017500000000025712163502133023233 00000000000000BdMPolyFromWKB - null, no SRID :memory: #use in-memory database SELECT BdMPolyFromWKB(null); 1 # rows (not including the header row) 1 # columns BdMPolyFromWKB(null) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/routing6.testcase0000664000175000017500000000043112163502133021656 00000000000000routing: integer ids (A*, from-to) sql_stmt_tests/testdb1.sqlite UPDATE roads_net SET Algorithm = 'a*'; SELECT GLength(Geometry) FROM roads_net WHERE NodeTo = 29 AND NodeFrom = 32; 4 # rows (not including the header row) 1 # columns GLength(Geometry) 0.0018:4 (NULL) (NULL) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/buffer5.testcase0000664000175000017500000000023412163502133021440 00000000000000buffer5 :memory: #use in-memory database SELECT Buffer(zeroblob(40), 1); 1 # rows (not including the header row) 1 # columns Buffer(zeroblob(40), 1) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/difference1.testcase0000664000175000017500000000035012163502133022254 00000000000000difference - two points :memory: #use in-memory database SELECT AsText(Difference(Makepoint(1,2), MakePoint(2,3))); 1 # rows (not including the header row) 1 # columns AsText(Difference(Makepoint(1,2), MakePoint(2,3))) POINT(1 2) libspatialite-4.1.1/test/sql_stmt_geos_tests/bdpolyfromtext2.testcase0000664000175000017500000000046412163502133023253 00000000000000BdPolyFromText - SRID :memory: #use in-memory database SELECT AsEWkt(BdPolyFromText('MULTILINESTRING((0 0, 1 0, 1 1, 0 1, 0 0))', 4326)); 1 # rows (not including the header row) 1 # columns AsEWkt(BdPolyFromText('MULTILINESTRING((0 0, 1 0, 1 1, 0 1, 0 0))', 4326)) SRID=4326;POLYGON((0 0,0 1,1 1,1 0,0 0)) libspatialite-4.1.1/test/sql_stmt_geos_tests/isring2.testcase0000664000175000017500000000043312163502133021460 00000000000000isring2 :memory: #use in-memory database SELECT IsRing(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))")); 1 # rows (not including the header row) 1 # columns IsRing(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))")) -1 libspatialite-4.1.1/test/sql_stmt_geos_tests/union12.testcase0000664000175000017500000000052612163502133021401 00000000000000union - POLYGON and POINT :memory: #use in-memory database SELECT AsText(GUnion(GeomFromText("POLYGON((0 0, 2 0, 2 2, 0 2, 0 0))"),GeomFromText("POINT(0 0)"))) 1 # rows (not including the header row) 1 # columns AsText(GUnion(GeomFromText("POLYGON((0 0, 2 0, 2 2, 0 2, 0 0))"),GeomFromText("POINT(0 0)"))) POLYGON((0 0, 0 2, 2 2, 2 0, 0 0)) libspatialite-4.1.1/test/sql_stmt_geos_tests/relate7.testcase0000664000175000017500000000041312163502133021444 00000000000000Relate - bad text third arg :memory: #use in-memory database SELECT Relate(geom1, geom2, "") FROM (SELECT GeomFromText("POINT(1 2)") as geom1, GeomFromText("POINT(1 2)") as geom2) dummy; 1 # rows (not including the header row) 1 # columns Relate(geom1, geom2, "") -1 libspatialite-4.1.1/test/sql_stmt_geos_tests/polygonize13.testcase0000664000175000017500000000126012163502133022445 00000000000000POLYGONIZE - polygonzm with two inner ring :memory: #use in-memory database SELECT AsText(Polygonize(GeomFromText("MULTILINESTRINGZM((0 0 5 4, 10 0 6 2, 10 12 7 3, 0 12 6 1, 0 0 5 4),(1 1 0 0, 3 1 0 2, 3 3 4 1, 1 3 1 2, 1 1 0 0),(4 4 0 0, 5 4 0 0, 5 5 0 0, 4 5 1 0, 4 4 0 0))"))) 1 # rows (not including the header row) 1 # columns AsText(Polygonize(GeomFromText("MULTILINESTRINGZM((0 0 5 4, 10 0 6 2, 10 12 7 3, 0 12 6 1, 0 0 5 4),(1 1 0 0, 3 1 0 2, 3 3 4 1, 1 3 1 2, 1 1 0 0),(4 4 0 0, 5 4 0 0, 5 5 0 0, 4 5 1 0, 4 4 0 0))"))) POLYGON ZM((0 0 5 0, 0 12 6 0, 10 12 7 0, 10 0 6 0, 0 0 5 0), (1 1 0 0, 3 1 0 0, 3 3 4 0, 1 3 1 0, 1 1 0 0), (4 4 0 0, 5 4 0 0, 5 5 0 0, 4 5 1 0, 4 4 0 0)) libspatialite-4.1.1/test/sql_stmt_geos_tests/bdmpolyfromtext4.testcase0000664000175000017500000000027312163502133023430 00000000000000BdMPolyFromText - non-text, SRID :memory: #use in-memory database SELECT BdMPolyFromText(26, 4326); 1 # rows (not including the header row) 1 # columns BdMPolyFromText(26, 4326) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/relate6.testcase0000664000175000017500000000042012163502133021441 00000000000000Relate - non text third arg :memory: #use in-memory database SELECT Relate(geom1, geom2, 26.7) FROM (SELECT GeomFromText("POINT(1 2)") as geom1, GeomFromText("POINT(1 2)") as geom2) dummy; 1 # rows (not including the header row) 1 # columns Relate(geom1, geom2, 26.7) -1 libspatialite-4.1.1/test/sql_stmt_geos_tests/isvalid2.testcase0000664000175000017500000000036612163502133021625 00000000000000isvalid2 :memory: #use in-memory database SELECT IsValid(GeomFromText("LINESTRINGZ(136 -35 635.2, 135.2 -34.5 675.1)")); 1 # rows (not including the header row) 1 # columns IsValid(GeomFromText("LINESTRINGZ(136 -35 635.2, 135.2 -34.5 675.1)")) 1 libspatialite-4.1.1/test/sql_stmt_geos_tests/st_area4.testcase0000664000175000017500000000036112163502133021605 00000000000000ST_Area - Linestring not closed :memory: #use in-memory database SELECT ST_Area(GeomFromText("LINESTRING(0 0, 0 4, 4 4, 4 0)")); 1 # rows (not including the header row) 1 # columns ST_Area(GeomFromText("LINESTRING(0 0, 0 4, 4 4, 4 0)")) 0.0 libspatialite-4.1.1/test/sql_stmt_geos_tests/pointonsurface7.testcase0000664000175000017500000000073112163502133023232 00000000000000PointOnSurface - square, Z and M (problem case - throws away Z and M component) :memory: #use in-memory database SELECT Contains(geomFromText("POLYGON((0 0, 0 1, 1 1, 0 0))", 4326), PointOnSurface(geomFromText("POLYGONZM((0 0 1 4, 0 1 2 4, 1 1 2 2, 0 0 1 4))", 4326))) 1 # rows (not including the header row) 1 # columns Contains(geomFromText("POLYGON((0 0, 0 1, 1 1, 0 0))", 4326), PointOnSurface(geomFromText("POLYGONZM((0 0 1 4, 0 1 2 4, 1 1 2 2, 0 0 1 4))", 4326))) 1 libspatialite-4.1.1/test/sql_stmt_geos_tests/st_perimeter3.testcase0000664000175000017500000000037712163502133022677 00000000000000ST_Perimeter - Linestring :memory: #use in-memory database SELECT ST_Perimeter(GeomFromText("LINESTRING(0 0, 0 4, 4 4, 4 0, 0 0)")); 1 # rows (not including the header row) 1 # columns ST_Perimeter(GeomFromText("LINESTRING(0 0, 0 4, 4 4, 4 0, 0 0)")) 0.0 libspatialite-4.1.1/test/sql_stmt_geos_tests/simplify5.testcase0000664000175000017500000000035612163502133022030 00000000000000Simplify - bad second arg :memory: #use in-memory database SELECT Simplify(GeomFromText("LINESTRING(1 2, 3 4)"), "hello") 1 # rows (not including the header row) 1 # columns Simplify(GeomFromText("LINESTRING(1 2, 3 4)"), "hello") (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/bdpolyfromwkb16.testcase0000664000175000017500000000065712163502133023143 00000000000000BdPolyFromWKB :memory: #use in-memory database SELECT AsEwkt(BdPolyFromWKB(AsBinary(GeomFromText('MULTILINESTRING((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 2 8, 8 8, 8 2, 2 2))')), 4326)); 1 # rows (not including the header row) 1 # columns AsEwkt(BdPolyFromWKB(AsBinary(GeomFromText('MULTILINESTRING((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 2 8, 8 8, 8 2, 2 2))')), 4326)) SRID=4326;POLYGON((0 0,0 10,10 10,10 0,0 0),(2 2,8 2,8 8,2 8,2 2)) libspatialite-4.1.1/test/sql_stmt_geos_tests/symdifference5.testcase0000664000175000017500000000035012163502133023011 00000000000000symdifference - non-blob first point :memory: #use in-memory database SELECT AsText(SymDifference("hello", MakePoint(1,2))) 1 # rows (not including the header row) 1 # columns AsText(SymDifference("hello", MakePoint(1,2))) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/difference9.testcase0000664000175000017500000000046412163502133022272 00000000000000difference - XYZM points :memory: #use in-memory database SELECT AsText(Difference(GeomFromText("POINTZM(1 3 5 4)"), GeomFromText("POINTZM(2 4 6 9)"))) 1 # rows (not including the header row) 1 # columns AsText(Difference(GeomFromText("POINTZM(1 3 5 4)"), GeomFromText("POINTZM(2 4 6 9)"))) POINT ZM(1 3 5 0)libspatialite-4.1.1/test/sql_stmt_geos_tests/ptdistancewithin16.testcase0000664000175000017500000000041712163502133023635 00000000000000PtDistWithin - WGS-84 both args, geodesic :memory: #use in-memory database SELECT PtDistWithin(MakePoint(4, 2, 4326), MakePoint(4,4,4326), 100000, 1) 1 # rows (not including the header row) 1 # columns PtDistWithin(MakePoint(4, 2, 4326), MakePoint(4,4,4326), 100000, 1) 0libspatialite-4.1.1/test/sql_stmt_geos_tests/bdpolyfromwkb9.testcase0000664000175000017500000000030012163502133023046 00000000000000BdPolyFromWKB - point, SRID :memory: #use in-memory database SELECT BdPolyFromWKB("Point(1 2)", 4); 1 # rows (not including the header row) 1 # columns BdPolyFromWKB("Point(1 2)", 4) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/polygonize10.testcase0000664000175000017500000000074112163502133022445 00000000000000POLYGONIZE - polygonM with inner ring :memory: #use in-memory database SELECT AsText(Polygonize(GeomFromText("MULTILINESTRINGM((0 0 5, 10 0 6, 10 12 7, 0 12 6, 0 0 5),(1 1 0, 3 1 0, 3 3 4, 1 3 1, 1 1 0))"))) 1 # rows (not including the header row) 1 # columns AsText(Polygonize(GeomFromText("MULTILINESTRINGM((0 0 5, 10 0 6, 10 12 7, 0 12 6, 0 0 5),(1 1 0, 3 1 0, 3 3 4, 1 3 1, 1 1 0))"))) POLYGON M((0 0 0, 0 12 0, 10 12 0, 10 0 0, 0 0 0), (1 1 0, 3 1 0, 3 3 0, 1 3 0, 1 1 0)) libspatialite-4.1.1/test/sql_stmt_geos_tests/convexhull4.testcase0000664000175000017500000000047312163502133022362 00000000000000convex hull - polygon without chip :memory: #use in-memory database SELECT AsText(ConvexHull(GeomFromText("POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))"))) 1 # rows (not including the header row) 1 # columns AsText(ConvexHull(GeomFromText("POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))"))) POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))libspatialite-4.1.1/test/sql_stmt_geos_tests/polygonize4.testcase0000664000175000017500000000025512163502133022370 00000000000000POLYGONIZE - text :memory: #use in-memory database SELECT Polygonize("hello world"); 1 # rows (not including the header row) 1 # columns Polygonize("hello world") (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/issimple1.testcase0000664000175000017500000000040512163502133022010 00000000000000issimple1 :memory: #use in-memory database SELECT IsSimple(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35))")); 1 # rows (not including the header row) 1 # columns IsSimple(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35))")) 1 libspatialite-4.1.1/test/sql_stmt_geos_tests/intersection10.testcase0000664000175000017500000000056412163502133022757 00000000000000intersection - POLYGONM, POINTM :memory: #use in-memory database SELECT AsText(Intersection(GeomFromText("POLYGONM((0 0 1, 4 0 1, 4 4 1, 0 4 1, 0 0 1))"), GeomFromText("POINT M(0 3 1)"))) 1 # rows (not including the header row) 1 # columns AsText(Intersection(GeomFromText("POLYGONM((0 0 1, 4 0 1, 4 4 1, 0 4 1, 0 0 1))"), GeomFromText("POINT M(0 3 1)"))) POINT M(0 3 0) libspatialite-4.1.1/test/sql_stmt_geos_tests/relations7.testcase0000664000175000017500000000116212163502133022172 00000000000000Relationship tests - toxic first arg :memory: #use in-memory database SELECT Equals(geom1, geom2), Intersects(geom1, geom2), Disjoint(geom1, geom2), Overlaps(geom1, geom2), Crosses(geom1, geom2), Touches(geom1, geom2), Within(geom1, geom2), Contains(geom1, geom2) FROM (SELECT GeomFromText('LINESTRING(1 1, 1 1)') as geom1, GeomFromText("LINESTRING(1 1, 2 2)") as geom2) dummy; 1 # rows (not including the header row) 8 # columns Equals(geom1, geom2) Intersects(geom1, geom2) Disjoint(geom1, geom2) Overlaps(geom1, geom2) Crosses(geom1, geom2) Touches(geom1, geom2) Within(geom1, geom2) Contains(geom1, geom2) 0 1 0 0 0 0 1 0 libspatialite-4.1.1/test/sql_stmt_geos_tests/intersection11.testcase0000664000175000017500000000062312163502133022754 00000000000000intersection - POLYGONZM, POINTZM :memory: #use in-memory database SELECT AsText(Intersection(GeomFromText("POLYGONZM((0 0 1 4, 4 0 1 2, 4 4 1 4, 0 4 1 2, 0 0 1 4))"), GeomFromText("POINTZM(0 3 1 4)"))) 1 # rows (not including the header row) 1 # columns AsText(Intersection(GeomFromText("POLYGONZM((0 0 1 4, 4 0 1 2, 4 4 1 4, 0 4 1 2, 0 0 1 4))"), GeomFromText("POINTZM(0 3 1 4)"))) POINT ZM(0 3 1 0) libspatialite-4.1.1/test/sql_stmt_geos_tests/relate4.testcase0000664000175000017500000000045612163502133021450 00000000000000Relate - bad blob second arg :memory: #use in-memory database SELECT Relate(geom1, zeroblob(100), "T*T***T**") FROM (SELECT GeomFromText("POINT(1 2)") as geom1, GeomFromText("POINT(1 2)") as geom2) dummy; 1 # rows (not including the header row) 1 # columns Relate(geom1, zeroblob(100), "T*T***T**") -1 libspatialite-4.1.1/test/sql_stmt_geos_tests/relations2.testcase0000664000175000017500000000113612163502133022166 00000000000000Relationship tests - POINTs different :memory: #use in-memory database SELECT Equals(geom1, geom2), Intersects(geom1, geom2), Disjoint(geom1, geom2), Overlaps(geom1, geom2), Crosses(geom1, geom2), Touches(geom1, geom2), Within(geom1, geom2), Contains(geom1, geom2) FROM (SELECT GeomFromText("POINT(1 2)") as geom1, GeomFromText("POINT(3 4)") as geom2) dummy; 1 # rows (not including the header row) 8 # columns Equals(geom1, geom2) Intersects(geom1, geom2) Disjoint(geom1, geom2) Overlaps(geom1, geom2) Crosses(geom1, geom2) Touches(geom1, geom2) Within(geom1, geom2) Contains(geom1, geom2) 0 0 1 0 0 0 0 0libspatialite-4.1.1/test/sql_stmt_geos_tests/bdpolyfromwkb1.testcase0000664000175000017500000000051012163502133023041 00000000000000BdPolyFromWKB :memory: #use in-memory database SELECT AsText(BdPolyFromWKB(AsBinary(GeomFromText('MULTILINESTRING((0 0, 1 0, 1 1, 0 1, 0 0))')))); 1 # rows (not including the header row) 1 # columns AsText(BdPolyFromWKB(AsBinary(GeomFromText('MULTILINESTRING((0 0, 1 0, 1 1, 0 1, 0 0))')))) POLYGON((0 0, 0 1, 1 1, 1 0, 0 0)) libspatialite-4.1.1/test/sql_stmt_geos_tests/intersection1.testcase0000664000175000017500000000035112163502133022671 00000000000000intersection - two points :memory: #use in-memory database SELECT AsText(Intersection(Makepoint(1,2), MakePoint(2,3))); 1 # rows (not including the header row) 1 # columns AsText(Intersection(Makepoint(1,2), MakePoint(2,3))) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/buffer6.testcase0000664000175000017500000000027412163502133021445 00000000000000buffer6 :memory: #use in-memory database SELECT Buffer(GeomFromText("LINESTRING()"), 1); 1 # rows (not including the header row) 1 # columns Buffer(GeomFromText("LINESTRING()"), 1) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/ptdistancewithin7.testcase0000664000175000017500000000040512163502133023552 00000000000000PtDistWithin- two points, float distance, optional fourth arg :memory: #use in-memory database SELECT PtDistWithin(Makepoint(4,2), MakePoint(4,4), 2.1, 0) 1 # rows (not including the header row) 1 # columns PtDistWithin(Makepoint(4,2), MakePoint(4,4), 2.1, 0) 1libspatialite-4.1.1/test/sql_stmt_geos_tests/ptdistwithin3.testcase0000664000175000017500000000042012163502133022714 00000000000000PtDistWithin invalid arg: NULL distance :memory: SELECT PtDistWithin(GeomFromText("POINT(5.1 5.1)", 4326), GeomFromText("POINT(5 5)", 4326), NULL, 1); 1 # rows 1 # column PtDistWithin(GeomFromText("POINT(5.1 5.1)", 4326), GeomFromText("POINT(5 5)", 4326), NULL, 1) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/isclosed5.testcase0000664000175000017500000000020212163502133021767 00000000000000isclosed5 :memory: #use in-memory database SELECT IsClosed(3); 1 # rows (not including the header row) 1 # columns IsClosed(3) -1 libspatialite-4.1.1/test/sql_stmt_geos_tests/ptdistwithin6.testcase0000664000175000017500000000031112163502133022716 00000000000000PtDistWithin invalid arg: TEXT pt2 :memory: SELECT PtDistWithin(GeomFromText("POINT(5 5)", 4326), 'a', 10.0, 1); 1 # rows 1 # column PtDistWithin(GeomFromText("POINT(5 5)", 4326), 'a', 10.0, 1) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/symdifference1.testcase0000664000175000017500000000037212163502133023011 00000000000000symdifference - two points :memory: #use in-memory database SELECT AsText(SymDifference(Makepoint(1,2), MakePoint(2,3))) 1 # rows (not including the header row) 1 # columns AsText(SymDifference(Makepoint(1,2), MakePoint(2,3))) MULTIPOINT(1 2, 2 3) libspatialite-4.1.1/test/sql_stmt_geos_tests/bdpolyfromwkb15.testcase0000664000175000017500000000064312163502133023135 00000000000000BdPolyFromWKB :memory: #use in-memory database SELECT AsText(BdPolyFromWKB(AsBinary(GeomFromText('MULTILINESTRING((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 2 8, 8 8, 8 2, 2 2))')))); 1 # rows (not including the header row) 1 # columns AsText(BdPolyFromWKB(AsBinary(GeomFromText('MULTILINESTRING((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 2 8, 8 8, 8 2, 2 2))')))) POLYGON((0 0, 0 10, 10 10, 10 0, 0 0), (2 2, 8 2, 8 8, 2 8, 2 2)) libspatialite-4.1.1/test/sql_stmt_geos_tests/st_area5.testcase0000664000175000017500000000027112163502133021606 00000000000000ST_Area - Point :memory: #use in-memory database SELECT ST_Area(GeomFromText("POINT(0 0)")); 1 # rows (not including the header row) 1 # columns ST_Area(GeomFromText("POINT(0 0)")) 0.0 libspatialite-4.1.1/test/sql_stmt_geos_tests/issimple3.testcase0000664000175000017500000000026212163502133022013 00000000000000issimple3 :memory: #use in-memory database SELECT IsSimple(GeomFromText("POLYGON()")); 1 # rows (not including the header row) 1 # columns IsSimple(GeomFromText("POLYGON()")) -1 libspatialite-4.1.1/test/sql_stmt_geos_tests/symdifference10.testcase0000664000175000017500000000057712163502133023100 00000000000000symdifference - toxic first point :memory: #use in-memory database SELECT AsText(SymDifference(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"), MakePoint(136,-35))); 1 # rows (not including the header row) 1 # columns AsText(SymDifference(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"), MakePoint(136,-35))) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/convexhull1.testcase0000664000175000017500000000051512163502133022354 00000000000000convex hull - points :memory: #use in-memory database SELECT AsText(ConvexHull(GeomFromText("MULTIPOINT(0 0, 1 0, 1 1, 2 1, 2 0, 10 0, 10 10, 0 10)"))) 1 # rows (not including the header row) 1 # columns AsText(ConvexHull(GeomFromText("MULTIPOINT(0 0, 1 0, 1 1, 2 1, 2 0, 10 0, 10 10, 0 10)"))) POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))libspatialite-4.1.1/test/sql_stmt_geos_tests/isvalid1.testcase0000664000175000017500000000022512163502133021616 00000000000000isvalid1 :memory: #use in-memory database SELECT IsValid(zeroblob(10)); 1 # rows (not including the header row) 1 # columns IsValid(zeroblob(10)) -1 libspatialite-4.1.1/test/sql_stmt_geos_tests/isring6.testcase0000664000175000017500000000040212163502133021460 00000000000000isring1 - LINESTRINGM :memory: #use in-memory database SELECT IsRing(GeomFromText("LINESTRINGM(1 1 3, 2 1 4, 2 2 5, 1 2 4, 1 1 3)")) 1 # rows (not including the header row) 1 # columns IsRing(GeomFromText("LINESTRINGM(1 1 3, 2 1 4, 2 2 5, 1 2 4, 1 1 3)")) 1 libspatialite-4.1.1/test/sql_stmt_geos_tests/union2.testcase0000664000175000017500000000033712163502133021320 00000000000000union - two common points :memory: #use in-memory database SELECT AsText(GUnion(Makepoint(1,2), MakePoint(1,2))); 1 # rows (not including the header row) 1 # columns AsText(GUnion(Makepoint(1,2), MakePoint(1,2))) POINT(1 2)libspatialite-4.1.1/test/sql_stmt_geos_tests/isvalid15.testcase0000664000175000017500000000057012163502133021706 00000000000000isvalid Geometry Collection of two polygons :memory: #use in-memory database SELECT IsValid(GeomFromText("GEOMETRYCOLLECTION(POLYGON((0 0, 10 0, 10 10, 0 10, 0 0)),POLYGON((1 1, 4 1, 4 4, 1 4, 1 1)))")) 1 # rows (not including the header row) 1 # columns IsValid(GeomFromText("GEOMETRYCOLLECTION(POLYGON((0 0, 10 0, 10 10, 0 10, 0 0)),POLYGON((1 1, 4 1, 4 4, 1 4, 1 1)))")) 1 libspatialite-4.1.1/test/sql_stmt_geos_tests/distance2.testcase0000664000175000017500000000033512163502133021760 00000000000000Distance - two identical points :memory: #use in-memory database SELECT ST_Distance(MakePoint(1, 2), MakePoint(1, 2)) 1 # rows (not including the header row) 1 # columns ST_Distance(MakePoint(1, 2), MakePoint(1, 2)) 0.0 libspatialite-4.1.1/test/sql_stmt_geos_tests/simplify13.testcase0000664000175000017500000000062212163502133022103 00000000000000Simplify - linestringM :memory: #use in-memory database SELECT AsText(Simplify(geom, 0.1)), AsText(SimplifyPreserveTopology(geom, 0.1)) FROM (SELECT GeomFromText("LINESTRINGM(1 2 1, 4.0001 4.9999 5, 4 5 5)") as geom) dummy 1 # rows (not including the header row) 2 # columns AsText(Simplify(geom, 0.1)) AsText(SimplifyPreserveTopology(geom, 0.1)) LINESTRING M(1 2 0, 4 5 0) LINESTRING M(1 2 0, 4 5 0) libspatialite-4.1.1/test/sql_stmt_geos_tests/st_perimeter18.testcase0000664000175000017500000000122612163502133022757 00000000000000ST_Perimeter - GeometryCollection (Long/Lat metric - text use_ellipsoid) :memory: #use in-memory database SELECT ST_Perimeter(GeomFromText("GEOMETRYCOLLECTION(POINT(0.1 0.1), LINESTRING(0.7 0.7, 0.7 0.8, 0.8 0.8, 0.8 0.7, 0.7 0.8), POLYGON((0.5 0.5, 0.5 0.6, 0.6 0.6, 0.6 0.5, 0.5 0.5),(0.55 0.55, 0.56 0.55, 0.56 0.56, 0.56 0.56, 0.055 0.55)))"), 'alpha'); 1 # rows (not including the header row) 1 # columns ST_Perimeter(GeomFromText("GEOMETRYCOLLECTION(POINT(0.1 0.1), LINESTRING(0.7 0.7, 0.7 0.8, 0.8 0.8, 0.8 0.7, 0.7 0.8), POLYGON((0.5 0.5, 0.5 0.6, 0.6 0.6, 0.6 0.5, 0.5 0.5),(0.55 0.55, 0.56 0.55, 0.56 0.56, 0.56 0.56, 0.055 0.55)))"), 'alpha') (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/ptdistwithin5.testcase0000664000175000017500000000031112163502133022715 00000000000000PtDistWithin invalid arg: TEXT pt1 :memory: SELECT PtDistWithin('a', GeomFromText("POINT(5 5)", 4326), 10.0, 1); 1 # rows 1 # column PtDistWithin('a', GeomFromText("POINT(5 5)", 4326), 10.0, 1) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/st_length3.testcase0000664000175000017500000000036712163502133022163 00000000000000ST_Length - Linestring :memory: #use in-memory database SELECT ST_Length(GeomFromText("LINESTRING(0 0, 0 4, 4 4, 4 0, 0 0)")); 1 # rows (not including the header row) 1 # columns ST_Length(GeomFromText("LINESTRING(0 0, 0 4, 4 4, 4 0, 0 0)")) 16.0 libspatialite-4.1.1/test/sql_stmt_geos_tests/issimple4.testcase0000664000175000017500000000023012163502133022007 00000000000000issimple4 :memory: #use in-memory database SELECT IsSimple(zeroblob(10)); 1 # rows (not including the header row) 1 # columns IsSimple(zeroblob(10)) -1 libspatialite-4.1.1/test/sql_stmt_geos_tests/ptdistwithin15.testcase0000664000175000017500000000035212163502133023003 00000000000000PtDistWithin: unknown Srid :memory: SELECT PtDistWithin(GeomFromText("POINT(5 5)", -1), GeomFromText("POINT(5.1 5.1)", -1), 1); 1 # rows 1 # column PtDistWithin(GeomFromText("POINT(5 5)", -1), GeomFromText("POINT(5.1 5.1)", -1), 1) 1 libspatialite-4.1.1/test/sql_stmt_geos_tests/pointonsurface4.testcase0000664000175000017500000000057712163502133023237 00000000000000PointOnSurface - square :memory: #use in-memory database SELECT Contains(geomFromText("POLYGON((0 0, 0 1, 1 1, 0 0))", 4326), PointOnSurface(geomFromText("POLYGON((0 0, 0 1, 1 1, 0 0))", 4326))); 1 # rows (not including the header row) 1 # columns Contains(geomFromText("POLYGON((0 0, 0 1, 1 1, 0 0))", 4326), PointOnSurface(geomFromText("POLYGON((0 0, 0 1, 1 1, 0 0))", 4326))) 1 libspatialite-4.1.1/test/sql_stmt_geos_tests/pointonsurface3.testcase0000664000175000017500000000027312163502133023227 00000000000000PointOnSurface - null blob :memory: #use in-memory database SELECT PointOnSurface(zeroblob(40)); 1 # rows (not including the header row) 1 # columns PointOnSurface(zeroblob(40)) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/buildarea5.testcase0000664000175000017500000000073612163502133022126 00000000000000buildarea - multipolygon :memory: #use in-memory database SELECT AsText(BuildArea(GeomFromText('MULTILINESTRING((0 0, 10 0, 10 10), (10 10, 0 10, 0 0), (15 15, 16 15, 16 16), (16 16, 15 16, 15 15))'))) 1 # rows (not including the header row) 1 # columns AsText(BuildArea(GeomFromText('MULTILINESTRING((0 0, 10 0, 10 10), (10 10, 0 10, 0 0), (15 15, 16 15, 16 16), (16 16, 15 16, 15 15))'))) MULTIPOLYGON(((10 10, 10 0, 0 0, 0 10, 10 10)), ((16 16, 16 15, 15 15, 15 16, 16 16))) libspatialite-4.1.1/test/sql_stmt_geos_tests/distance6.testcase0000664000175000017500000000031112163502133021756 00000000000000Distance - bad blob second arg :memory: #use in-memory database SELECT Distance(MakePoint(1, 2), "hello") 1 # rows (not including the header row) 1 # columns Distance(MakePoint(1, 2), "hello") (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/isvalid5.testcase0000664000175000017500000000021312163502133021617 00000000000000isvalid5 :memory: #use in-memory database SELECT IsValid("hello"); 1 # rows (not including the header row) 1 # columns IsValid("hello") -1 libspatialite-4.1.1/test/sql_stmt_geos_tests/centroid5.testcase0000664000175000017500000000024712163502133022002 00000000000000Centroid - zeroblob :memory: #use in-memory database SELECT centroid(zeroblob(40)); 1 # rows (not including the header row) 1 # columns centroid(zeroblob(40)) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/bdmpolyfromtext15.testcase0000664000175000017500000000057512163502133023517 00000000000000BdMPolyFromText :memory: #use in-memory database SELECT AsEwkt(BdMPolyFromText('MULTILINESTRING((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 2 8, 8 8, 8 2, 2 2))')); 1 # rows (not including the header row) 1 # columns AsEwkt(BdMPolyFromText('MULTILINESTRING((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 2 8, 8 8, 8 2, 2 2))')) SRID=0;MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0),(2 2,8 2,8 8,2 8,2 2))) libspatialite-4.1.1/test/sql_stmt_geos_tests/st_perimeter17.testcase0000664000175000017500000000121212163502133022751 00000000000000ST_Perimeter - GeometryCollection (Long/Lat metric - Ellipsoid) :memory: #use in-memory database SELECT ST_Perimeter(GeomFromText("GEOMETRYCOLLECTION(POINT(0.1 0.1), LINESTRING(0.7 0.7, 0.7 0.8, 0.8 0.8, 0.8 0.7, 0.7 0.8), POLYGON((0.5 0.5, 0.5 0.6, 0.6 0.6, 0.6 0.5, 0.5 0.5),(0.55 0.55, 0.56 0.55, 0.56 0.56, 0.56 0.56, 0.055 0.55)))"), 1); 1 # rows (not including the header row) 1 # columns ST_Perimeter(GeomFromText("GEOMETRYCOLLECTION(POINT(0.1 0.1), LINESTRING(0.7 0.7, 0.7 0.8, 0.8 0.8, 0.8 0.7, 0.7 0.8), POLYGON((0.5 0.5, 0.5 0.6, 0.6 0.6, 0.6 0.5, 0.5 0.5),(0.55 0.55, 0.56 0.55, 0.56 0.56, 0.56 0.56, 0.055 0.55)))"), 1) 102821.231470:6 libspatialite-4.1.1/test/sql_stmt_geos_tests/convexhull9.testcase0000664000175000017500000000067312163502133022371 00000000000000convex hull - polygonZM :memory: #use in-memory database SELECT AsText(ConvexHull(GeomFromText("POLYGONZM((0 0 1 1, 1 0 3 2, 1 1 5 3, 2 1 5 4, 2 0 3 5, 10 0 1 6, 10 10 2 7, 0 10 2 2, 0 0 1 1))"))) 1 # rows (not including the header row) 1 # columns AsText(ConvexHull(GeomFromText("POLYGONZM((0 0 1 1, 1 0 3 2, 1 1 5 3, 2 1 5 4, 2 0 3 5, 10 0 1 6, 10 10 2 7, 0 10 2 2, 0 0 1 1))"))) POLYGON ZM((0 0 1 0, 0 10 2 0, 10 10 2 0, 10 0 1 0, 0 0 1 0))libspatialite-4.1.1/test/sql_stmt_geos_tests/union20.testcase0000664000175000017500000000150112163502133021372 00000000000000union - POLYGON ZM with hole :memory: #use in-memory database SELECT AsText(GUnion(GeomFromText("POLYGONZM((10 10 100 1, 15 10 100 2, 15 15 100 3, 10 15 100 4, 10 10 100 1), (11 11 102 1, 12 11 102 2, 12 12 102 3, 11 12 102 4, 11 11 102 1))"), GeomFromText("POLYGONZM((15 10 100 2, 16 10 100 1, 16 15 100 3, 10 15 100 4, 15 10 100 2))"))); 1 # rows (not including the header row) 1 # columns AsText(GUnion(GeomFromText("POLYGONZM((10 10 100 1, 15 10 100 2, 15 15 100 3, 10 15 100 4, 10 10 100 1), (11 11 102 1, 12 11 102 2, 12 12 102 3, 11 12 102 4, 11 11 102 1))"), GeomFromText("POLYGONZM((15 10 100 2, 16 10 100 1, 16 15 100 3, 10 15 100 4, 15 10 100 2))"))) POLYGON ZM((15 10 100 0, 10 10 100 0, 10 15 100 0, 15 15 100 0, 16 15 100 0, 16 10 100 0, 15 10 100 0), (11 11 102 0, 12 11 102 0, 12 12 102 0, 11 12 102 0, 11 11 102 0)) libspatialite-4.1.1/test/sql_stmt_geos_tests/bdmpolyfromwkb3.testcase0000664000175000017500000000025712163502133023230 00000000000000BdMPolyFromWKB - non-text, no SRID :memory: #use in-memory database SELECT BdMPolyFromWKB(26); 1 # rows (not including the header row) 1 # columns BdMPolyFromWKB(26) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/union13.testcase0000664000175000017500000000056012163502133021400 00000000000000union - MULTIPOLYGON and POINT :memory: #use in-memory database SELECT AsText(GUnion(GeomFromText("MULTIPOLYGON(((0 0, 2 0, 2 2, 0 2, 0 0)))"),GeomFromText("POINT(0 0)"))) 1 # rows (not including the header row) 1 # columns AsText(GUnion(GeomFromText("MULTIPOLYGON(((0 0, 2 0, 2 2, 0 2, 0 0)))"),GeomFromText("POINT(0 0)"))) MULTIPOLYGON(((0 0, 0 2, 2 2, 2 0, 0 0))) libspatialite-4.1.1/test/sql_stmt_geos_tests/distance7.testcase0000664000175000017500000000045112163502133021764 00000000000000Distance - parallel lines :memory: #use in-memory database SELECT Distance(GeomFromText("LINESTRING(0 0, 10 0)"), GeomFromText("LINESTRING(0 2, 10 2)")) 1 # rows (not including the header row) 1 # columns Distance(GeomFromText("LINESTRING(0 0, 10 0)"), GeomFromText("LINESTRING(0 2, 10 2)")) 2.0 libspatialite-4.1.1/test/sql_stmt_geos_tests/symdifference7.testcase0000664000175000017500000000047212163502133023020 00000000000000symdifference - two pointZ :memory: #use in-memory database SELECT AsText(SymDifference(GeomFromText("POINTZ(1 3 4)"),GeomFromText("POINTZ(4 2 6)"))) 1 # rows (not including the header row) 1 # columns AsText(SymDifference(GeomFromText("POINTZ(1 3 4)"),GeomFromText("POINTZ(4 2 6)"))) MULTIPOINT Z(1 3 4, 4 2 6) libspatialite-4.1.1/test/sql_stmt_geos_tests/convexhull10.testcase0000664000175000017500000000061112163502133022431 00000000000000convex hull - polygonM :memory: #use in-memory database SELECT AsText(ConvexHull(GeomFromText("POLYGONM((0 0 1, 1 0 2, 1 1 3, 2 1 4, 2 0 5, 10 0 6, 10 10 7, 0 10 2, 0 0 1))"))) 1 # rows (not including the header row) 1 # columns AsText(ConvexHull(GeomFromText("POLYGONM((0 0 1, 1 0 2, 1 1 3, 2 1 4, 2 0 5, 10 0 6, 10 10 7, 0 10 2, 0 0 1))"))) POLYGON M((0 0 0, 0 10 0, 10 10 0, 10 0 0, 0 0 0))libspatialite-4.1.1/test/sql_stmt_geos_tests/isclosed9.testcase0000664000175000017500000000055212163502133022003 00000000000000isclosed - multilinestring, second not closed :memory: #use in-memory database SELECT IsClosed(GeomFromText("MULTILINESTRING((136 -35, 135.2 -34.5, 136 -35.2, 136 -35),(1 10, 0 10, 0 0, 10 10))")) 1 # rows (not including the header row) 1 # columns IsClosed(GeomFromText("MULTILINESTRING((136 -35, 135.2 -34.5, 136 -35.2, 136 -35),(1 10, 0 10, 0 0, 10 10))")) 0 libspatialite-4.1.1/test/sql_stmt_geos_tests/convexhull2.testcase0000664000175000017500000000052112163502133022352 00000000000000convex hull - linestring :memory: #use in-memory database SELECT AsText(ConvexHull(GeomFromText("LINESTRING(0 0, 1 0, 1 1, 2 1, 2 0, 10 0, 10 10, 0 10)"))) 1 # rows (not including the header row) 1 # columns AsText(ConvexHull(GeomFromText("LINESTRING(0 0, 1 0, 1 1, 2 1, 2 0, 10 0, 10 10, 0 10)"))) POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))libspatialite-4.1.1/test/sql_stmt_geos_tests/st_length8.testcase0000664000175000017500000000033612163502133022164 00000000000000ST_Length - toxic linestring :memory: #use in-memory database SELECT ST_Length(GeomFromText('LINESTRING(1 1, 1 1)')); 1 # rows (not including the header row) 1 # columns ST_Length(GeomFromText('LINESTRING(1 1, 1 1)')) 0.0 libspatialite-4.1.1/test/sql_stmt_geos_tests/simplify7.testcase0000664000175000017500000000026412163502133022030 00000000000000Simplify - zeroblob arg :memory: #use in-memory database SELECT Simplify(zeroblob(1000), 0) 1 # rows (not including the header row) 1 # columns Simplify(zeroblob(1000), 0) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/convexhull5.testcase0000664000175000017500000000025512163502133022361 00000000000000convex hull - zeroblob :memory: #use in-memory database SELECT ConvexHull(zeroblob(100)) 1 # rows (not including the header row) 1 # columns ConvexHull(zeroblob(100)) (NULL)libspatialite-4.1.1/test/sql_stmt_geos_tests/difference2.testcase0000664000175000017500000000035012163502133022255 00000000000000difference - two common points :memory: #use in-memory database SELECT AsText(Difference(Makepoint(1,2), MakePoint(1,2))); 1 # rows (not including the header row) 1 # columns AsText(Difference(Makepoint(1,2), MakePoint(1,2))) (NULL)libspatialite-4.1.1/test/sql_stmt_geos_tests/st_length14.testcase0000664000175000017500000000052012163502133022234 00000000000000ST_Length - Linestring (Long/Lat metric - GreatCircle) :memory: #use in-memory database SELECT ST_Length(GeomFromText("LINESTRING(0.7 0.7, 0.7 0.8, 0.8 0.8, 0.8 0.7, 0.7 0.8)"), 0); 1 # rows (not including the header row) 1 # columns ST_Length(GeomFromText("LINESTRING(0.7 0.7, 0.7 0.8, 0.8 0.8, 0.8 0.7, 0.7 0.8)"), 0) 49082.124419:6 libspatialite-4.1.1/test/sql_stmt_geos_tests/buildarea6.testcase0000664000175000017500000000047112163502133022123 00000000000000buildarea - not a polygon :memory: #use in-memory database SELECT AsText(BuildArea(GeomFromText('MULTILINESTRING((0 0, 10 0), (10 0, 10 10), (10 10, 0 10))'))) 1 # rows (not including the header row) 1 # columns AsText(BuildArea(GeomFromText('MULTILINESTRING((0 0, 10 0), (10 0, 10 10), (10 10, 0 10))'))) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/pointonsurface2.testcase0000664000175000017500000000047712163502133023234 00000000000000PointOnSurface - toxic :memory: #use in-memory database SELECT PointOnSurface(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))")); 1 # rows (not including the header row) 1 # columns PointOnSurface(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))")) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/isclosed8.testcase0000664000175000017500000000054612163502133022005 00000000000000isclosed - multilinestring, both closed :memory: #use in-memory database SELECT IsClosed(GeomFromText("MULTILINESTRING((136 -35, 135.2 -34.5, 136 -35.2, 136 -35),(10 10, 0 10, 0 0, 10 10))")) 1 # rows (not including the header row) 1 # columns IsClosed(GeomFromText("MULTILINESTRING((136 -35, 135.2 -34.5, 136 -35.2, 136 -35),(10 10, 0 10, 0 0, 10 10))")) 1 libspatialite-4.1.1/test/sql_stmt_geos_tests/relations3.testcase0000664000175000017500000000112712163502133022167 00000000000000Relationship tests - bad first blob :memory: #use in-memory database SELECT Equals(geom1, geom2), Intersects(geom1, geom2), Disjoint(geom1, geom2), Overlaps(geom1, geom2), Crosses(geom1, geom2), Touches(geom1, geom2), Within(geom1, geom2), Contains(geom1, geom2) FROM (SELECT zeroblob(10) as geom1, GeomFromText("POINT(3 4)") as geom2) dummy; 1 # rows (not including the header row) 8 # columns Equals(geom1, geom2) Intersects(geom1, geom2) Disjoint(geom1, geom2) Overlaps(geom1, geom2) Crosses(geom1, geom2) Touches(geom1, geom2) Within(geom1, geom2) Contains(geom1, geom2) -1 -1 -1 -1 -1 -1 -1 -1 libspatialite-4.1.1/test/sql_stmt_geos_tests/st_perimeter1.testcase0000664000175000017500000000047712163502133022676 00000000000000ST_Perimeter - Polygon with 1 interior :memory: #use in-memory database SELECT ST_Perimeter(GeomFromText("POLYGON((0 0, 0 4, 4 4, 4 0, 0 0),(1 1, 1 3, 3 3, 3 1, 1 1))")); 1 # rows (not including the header row) 1 # columns ST_Perimeter(GeomFromText("POLYGON((0 0, 0 4, 4 4, 4 0, 0 0),(1 1, 1 3, 3 3, 3 1, 1 1))")) 24.0 libspatialite-4.1.1/test/sql_stmt_geos_tests/st_perimeter4.testcase0000664000175000017500000000040012163502133022663 00000000000000ST_Perimeter - Linestring not closed :memory: #use in-memory database SELECT ST_Perimeter(GeomFromText("LINESTRING(0 0, 0 4, 4 4, 4 0)")); 1 # rows (not including the header row) 1 # columns ST_Perimeter(GeomFromText("LINESTRING(0 0, 0 4, 4 4, 4 0)")) 0.0 libspatialite-4.1.1/test/sql_stmt_geos_tests/simplify2.testcase0000664000175000017500000000057612163502133022031 00000000000000Simplify - linestring :memory: #use in-memory database SELECT AsText(Simplify(geom, 0.1)), AsText(SimplifyPreserveTopology(geom, 0.1)) FROM (SELECT GeomFromText("LINESTRING(1 2, 4.0001 4.9999, 4 5)") as geom) dummy 1 # rows (not including the header row) 2 # columns AsText(Simplify(geom, 0.1)) AsText(SimplifyPreserveTopology(geom, 0.1)) LINESTRING(1 2, 4 5) LINESTRING(1 2, 4 5) libspatialite-4.1.1/test/sql_stmt_geos_tests/pointonsurface1.testcase0000664000175000017500000000035612163502133023227 00000000000000pointonsurface - point :memory: #use in-memory database SELECT astext(PointOnSurface(geomFromText("POINT(1,1)", 4326))); 1 # rows (not including the header row) 1 # columns astext(PointOnSurface(geomFromText("POINT(1,1)", 4326))) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/bdmpolyfromtext17.testcase0000664000175000017500000000030512163502133023510 00000000000000BdMPolyFromText - bad wkt, no SRID :memory: #use in-memory database SELECT BdMPolyFromText("Point(1,2)"); 1 # rows (not including the header row) 1 # columns BdMPolyFromText("Point(1,2)") (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/difference11.testcase0000664000175000017500000000034712163502133022343 00000000000000difference - zeroblob second point :memory: #use in-memory database SELECT AsText(Difference(MakePoint(2,3),zeroblob(48))) 1 # rows (not including the header row) 1 # columns AsText(Difference(MakePoint(2,3),zeroblob(48))) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/simplify12.testcase0000664000175000017500000000062212163502133022102 00000000000000Simplify - linestringZ :memory: #use in-memory database SELECT AsText(Simplify(geom, 0.1)), AsText(SimplifyPreserveTopology(geom, 0.1)) FROM (SELECT GeomFromText("LINESTRINGZ(1 2 1, 4.0001 4.9999 5, 4 5 5)") as geom) dummy 1 # rows (not including the header row) 2 # columns AsText(Simplify(geom, 0.1)) AsText(SimplifyPreserveTopology(geom, 0.1)) LINESTRING Z(1 2 1, 4 5 5) LINESTRING Z(1 2 1, 4 5 5) libspatialite-4.1.1/test/sql_stmt_geos_tests/bdpolyfromtext14.testcase0000664000175000017500000000031112163502133023325 00000000000000BdPolyFromText - point, SRID :memory: #use in-memory database SELECT BdPolyFromText("Point(1,2)", 4326); 1 # rows (not including the header row) 1 # columns BdPolyFromText("Point(1,2)", 4326) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/st_area1.testcase0000664000175000017500000000053612163502133021606 00000000000000ST_Area - Polygon with 1 interior :memory: #use in-memory database SELECT ST_Area(GeomFromText("POLYGON((0 0, 0 4, 4 4, 4 0, 0 0),(1 1, 1 3, 3 3, 3 1, 1 1))")); 1 # rows (not including the header row) 1 # columns ST_Area(GeomFromText("POLYGON((0 0, 0 4, 4 4, 4 0, 0 0),(1 1, 1 3, 3 3, 3 1, 1 1))")) 12.0 # 16.0 for the exterior, 4.0 for the interior libspatialite-4.1.1/test/sql_stmt_geos_tests/ptdistancewithin15.testcase0000664000175000017500000000042112163502133023627 00000000000000PtDistWithin - WGS-84 both args, geodesic :memory: #use in-memory database SELECT PtDistWithin(MakePoint(4, 2, 4326), MakePoint(4,4,4326), 2000000, 1) 1 # rows (not including the header row) 1 # columns PtDistWithin(MakePoint(4, 2, 4326), MakePoint(4,4,4326), 2000000, 1) 1libspatialite-4.1.1/test/sql_stmt_geos_tests/st_perimeter12.testcase0000664000175000017500000000072612163502133022755 00000000000000ST_Perimeter - Polygon with 1 interior (Long/Lat metric - GreatCircle) :memory: #use in-memory database SELECT ST_Perimeter(GeomFromText("POLYGON((0.5 0.5, 0.5 0.6, 0.6 0.6, 0.6 0.5, 0.5 0.5),(0.55 0.55, 0.56 0.55, 0.56 0.56, 0.56 0.56, 0.055 0.55))"), 0); 1 # rows (not including the header row) 1 # columns ST_Perimeter(GeomFromText("POLYGON((0.5 0.5, 0.5 0.6, 0.6 0.6, 0.6 0.5, 0.5 0.5),(0.55 0.55, 0.56 0.55, 0.56 0.56, 0.56 0.56, 0.055 0.55))"), 0) 102862.738784:6 libspatialite-4.1.1/test/sql_stmt_geos_tests/union15.testcase0000664000175000017500000000054712163502133021407 00000000000000union - MULTILINESTRING and POINT :memory: #use in-memory database SELECT AsText(GUnion(GeomFromText("MULTILINESTRING((0 0, 2 0, 2 2, 0 2))"),GeomFromText("POINT(0 0)"))) 1 # rows (not including the header row) 1 # columns AsText(GUnion(GeomFromText("MULTILINESTRING((0 0, 2 0, 2 2, 0 2))"),GeomFromText("POINT(0 0)"))) MULTILINESTRING((0 0, 2 0, 2 2, 0 2)) libspatialite-4.1.1/test/sql_stmt_geos_tests/bdmpolyfromtext9.testcase0000664000175000017500000000030612163502133023432 00000000000000BdMPolyFromText - point, SRID :memory: #use in-memory database SELECT BdMPolyFromText("Point(1 2)", 4); 1 # rows (not including the header row) 1 # columns BdMPolyFromText("Point(1 2)", 4) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/union7.testcase0000664000175000017500000000055112163502133021323 00000000000000union - toxic first point :memory: #use in-memory database SELECT AsText(GUnion(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"), MakePoint(136,-35))); 1 # rows (not including the header row) 1 # columns AsText(GUnion(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"), MakePoint(136,-35))) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/bdmpolyfromwkb5.testcase0000664000175000017500000000027012163502133023225 00000000000000BdMPolyFromWKB - null, SRID :memory: #use in-memory database SELECT BdMPolyFromWKB(null, 4326); 1 # rows (not including the header row) 1 # columns BdMPolyFromWKB(null, 4326) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/ptdistwithin7.testcase0000664000175000017500000000041612163502133022725 00000000000000PtDistWithin invalid arg: TEXT distance :memory: SELECT PtDistWithin(GeomFromText("POINT(5.1 5.1)", 4326), GeomFromText("POINT(5 5)", 4326), 'a', 1); 1 # rows 1 # column PtDistWithin(GeomFromText("POINT(5.1 5.1)", 4326), GeomFromText("POINT(5 5)", 4326), 'a', 1) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/bdpolyfromtext12.testcase0000664000175000017500000000050512163502133023330 00000000000000BdPolyFromText - toxic, SRID :memory: #use in-memory database SELECT BdPolyFromText("MULTILINESTRING((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))", 4326); 1 # rows (not including the header row) 1 # columns BdPolyFromText("MULTILINESTRING((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))", 4326) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/bdpolyfromwkb3.testcase0000664000175000017500000000025412163502133023050 00000000000000BdPolyFromWKB - non-text, no SRID :memory: #use in-memory database SELECT BdPolyFromWKB(26); 1 # rows (not including the header row) 1 # columns BdPolyFromWKB(26) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/relations1.testcase0000664000175000017500000000113612163502133022165 00000000000000Relationship tests - POINTs identical :memory: #use in-memory database SELECT Equals(geom1, geom2), Intersects(geom1, geom2), Disjoint(geom1, geom2), Overlaps(geom1, geom2), Crosses(geom1, geom2), Touches(geom1, geom2), Within(geom1, geom2), Contains(geom1, geom2) FROM (SELECT GeomFromText("POINT(1 2)") as geom1, GeomFromText("POINT(1 2)") as geom2) dummy; 1 # rows (not including the header row) 8 # columns Equals(geom1, geom2) Intersects(geom1, geom2) Disjoint(geom1, geom2) Overlaps(geom1, geom2) Crosses(geom1, geom2) Touches(geom1, geom2) Within(geom1, geom2) Contains(geom1, geom2) 1 1 0 0 0 0 1 1libspatialite-4.1.1/test/sql_stmt_geos_tests/isvalid4.testcase0000664000175000017500000000043412163502133021623 00000000000000isvalid4 :memory: #use in-memory database SELECT IsValid(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))")); 1 # rows (not including the header row) 1 # columns IsValid(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))")) 0 libspatialite-4.1.1/test/sql_stmt_geos_tests/distance4.testcase0000664000175000017500000000032512163502133021761 00000000000000Distance - bad blob second arg :memory: #use in-memory database SELECT Distance(MakePoint(1, 2), zeroblob(100)) 1 # rows (not including the header row) 1 # columns Distance(MakePoint(1, 2), zeroblob(100)) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/isring5.testcase0000664000175000017500000000040212163502133021457 00000000000000isring1 - LINESTRINGZ :memory: #use in-memory database SELECT IsRing(GeomFromText("LINESTRINGZ(1 1 3, 2 1 4, 2 2 5, 1 2 4, 1 1 3)")) 1 # rows (not including the header row) 1 # columns IsRing(GeomFromText("LINESTRINGZ(1 1 3, 2 1 4, 2 2 5, 1 2 4, 1 1 3)")) 1 libspatialite-4.1.1/test/sql_stmt_geos_tests/union14.testcase0000664000175000017500000000051512163502133021401 00000000000000union - LINESTRING and POINT :memory: #use in-memory database SELECT AsText(GUnion(GeomFromText("LINESTRING(0 0, 2 0, 2 2, 0 2)"),GeomFromText("POINT(0 0)"))) 1 # rows (not including the header row) 1 # columns AsText(GUnion(GeomFromText("LINESTRING(0 0, 2 0, 2 2, 0 2)"),GeomFromText("POINT(0 0)"))) LINESTRING(0 0, 2 0, 2 2, 0 2) libspatialite-4.1.1/test/sql_stmt_geos_tests/simplify3.testcase0000664000175000017500000000054712163502133022030 00000000000000Simplify - linestring :memory: #use in-memory database SELECT AsText(Simplify(geom, 0)), AsText(SimplifyPreserveTopology(geom, 0)) FROM (SELECT GeomFromText("LINESTRING(1 2, 4 5)") as geom) dummy 1 # rows (not including the header row) 2 # columns AsText(Simplify(geom, 0)) AsText(SimplifyPreserveTopology(geom, 0)) LINESTRING(1 2, 4 5) LINESTRING(1 2, 4 5) libspatialite-4.1.1/test/sql_stmt_geos_tests/centroid3.testcase0000664000175000017500000000025612163502133022000 00000000000000Centroid - non-geometry :memory: #use in-memory database SELECT astext(centroid("foo")); 1 # rows (not including the header row) 1 # columns astext(centroid("foo")) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/relate8.testcase0000664000175000017500000000045512163502133021453 00000000000000Relate - toxic first arg :memory: #use in-memory database SELECT Relate(geom1, geom2, "T*T***T**") FROM (SELECT GeomFromText('LINESTRING(1 1, 1 1)') as geom1, GeomFromText("LINESTRING(1 1, 2 2)") as geom2) dummy; 1 # rows (not including the header row) 1 # columns Relate(geom1, geom2, "T*T***T**") 0 libspatialite-4.1.1/test/sql_stmt_geos_tests/distance5.testcase0000664000175000017500000000027412163502133021765 00000000000000Distance - non-blob first arg :memory: #use in-memory database SELECT Distance(3, MakePoint(1, 2)) 1 # rows (not including the header row) 1 # columns Distance(3, MakePoint(1, 2)) (NULL) libspatialite-4.1.1/test/sql_stmt_geos_tests/buffer8.testcase0000664000175000017500000000523012163502133021444 00000000000000buffer - linestringz :memory: #use in-memory database SELECT AsText(Buffer(GeomFromText("LINESTRINGZ(1 2 1, 4 6 3)"), 1)) 1 # rows (not including the header row) 1 # columns AsText(Buffer(GeomFromText("LINESTRINGZ(1 2 1, 4 6 3)"), 1)) POLYGON Z((3.2 6.6 0, 3.232498 6.641046 0, 3.2671 6.680336 0, 3.30371 6.717761 0, 3.342229 6.753218 0, 3.382551 6.786611 0, 3.424565 6.817848 0, 3.468156 6.846843 0, 3.513206 6.873517 0, 3.559589 6.897796 0, 3.60718 6.919615 0, 3.655847 6.938914 0, 3.705458 6.955638 0, 3.755875 6.969744 0, 3.806963 6.981191 0, 3.858579 6.989949 0, 3.910582 6.995994 0, 3.962831 6.999309 0, 4.015182 6.999885 0, 4.067491 6.99772 0, 4.119615 6.99282 0, 4.171412 6.9852 0, 4.222738 6.974878 0, 4.273454 6.961885 0, 4.32342 6.946255 0, 4.3725 6.928032 0, 4.420559 6.907265 0, 4.467465 6.884011 0, 4.51309 6.858335 0, 4.557309 6.830305 0, 4.6 6.8 0, 4.641046 6.767502 0, 4.680336 6.7329 0, 4.717761 6.69629 0, 4.753218 6.657771 0, 4.786611 6.617449 0, 4.817848 6.575435 0, 4.846843 6.531844 0, 4.873517 6.486794 0, 4.897796 6.440411 0, 4.919615 6.39282 0, 4.938914 6.344153 0, 4.955638 6.294542 0, 4.969744 6.244125 0, 4.981191 6.193037 0, 4.989949 6.141421 0, 4.995994 6.089418 0, 4.999309 6.037169 0, 4.999885 5.984818 0, 4.99772 5.932509 0, 4.99282 5.880385 0, 4.9852 5.828588 0, 4.974878 5.777262 0, 4.961885 5.726546 0, 4.946255 5.67658 0, 4.928032 5.6275 0, 4.907265 5.579441 0, 4.884011 5.532535 0, 4.858335 5.48691 0, 4.830305 5.442691 0, 4.8 5.4 0, 1.8 1.4 0, 1.767502 1.358954 0, 1.7329 1.319664 0, 1.69629 1.282239 0, 1.657771 1.246782 0, 1.617449 1.213389 0, 1.575435 1.182152 0, 1.531844 1.153157 0, 1.486794 1.126483 0, 1.440411 1.102204 0, 1.39282 1.080385 0, 1.344153 1.061086 0, 1.294542 1.044362 0, 1.244125 1.030256 0, 1.193037 1.018809 0, 1.141421 1.010051 0, 1.089418 1.004006 0, 1.037169 1.000691 0, 0.984818 1.000115 0, 0.932509 1.00228 0, 0.880385 1.00718 0, 0.828588 1.0148 0, 0.777262 1.025122 0, 0.726546 1.038115 0, 0.67658 1.053745 0, 0.6275 1.071968 0, 0.579441 1.092735 0, 0.532535 1.115989 0, 0.48691 1.141665 0, 0.442691 1.169695 0, 0.4 1.2 0, 0.358954 1.232498 0, 0.319664 1.2671 0, 0.282239 1.30371 0, 0.246782 1.342229 0, 0.213389 1.382551 0, 0.182152 1.424565 0, 0.153157 1.468156 0, 0.126483 1.513206 0, 0.102204 1.559589 0, 0.080385 1.60718 0, 0.061086 1.655847 0, 0.044362 1.705458 0, 0.030256 1.755875 0, 0.018809 1.806963 0, 0.010051 1.858579 0, 0.004006 1.910582 0, 0.000691 1.962831 0, 0.000115 2.015182 0, 0.00228 2.067491 0, 0.00718 2.119615 0, 0.0148 2.171412 0, 0.025122 2.222738 0, 0.038115 2.273454 0, 0.053745 2.32342 0, 0.071968 2.3725 0, 0.092735 2.420559 0, 0.115989 2.467465 0, 0.141665 2.51309 0, 0.169695 2.557309 0, 0.2 2.6 0, 3.2 6.6 0)) libspatialite-4.1.1/test/sql_stmt_geos_tests/isclosed4.testcase0000664000175000017500000000023012163502133021767 00000000000000isclosed4 :memory: #use in-memory database SELECT IsClosed(zeroblob(10)); 1 # rows (not including the header row) 1 # columns IsClosed(zeroblob(10)) -1 libspatialite-4.1.1/test/sql_stmt_geos_tests/relate3.testcase0000664000175000017500000000044112163502133021441 00000000000000Relate - non blob first arg :memory: #use in-memory database SELECT Relate("hello", geom2, "T*T***T**") FROM (SELECT GeomFromText("POINT(1 2)") as geom1, GeomFromText("POINT(1 2)") as geom2) dummy; 1 # rows (not including the header row) 1 # columns Relate("hello", geom2, "T*T***T**") -1 libspatialite-4.1.1/test/sql_stmt_geos_tests/buildarea4.testcase0000664000175000017500000000066312163502133022124 00000000000000buildarea - polygon-hole :memory: #use in-memory database SELECT AsText(BuildArea(GeomFromText('MULTILINESTRING((0 0, 10 0, 10 10), (10 10, 0 10, 0 0), (5 5, 6 5, 6 6), (6 6, 5 6, 5 5))'))) 1 # rows (not including the header row) 1 # columns AsText(BuildArea(GeomFromText('MULTILINESTRING((0 0, 10 0, 10 10), (10 10, 0 10, 0 0), (5 5, 6 5, 6 6), (6 6, 5 6, 5 5))'))) POLYGON((10 10, 10 0, 0 0, 0 10, 10 10), (5 5, 6 5, 6 6, 5 6, 5 5)) libspatialite-4.1.1/test/sql_stmt_geos_tests/isvalid9.testcase0000664000175000017500000000076112163502133021633 00000000000000isvalid (MULTYPOLYGONM with hole) :memory: #use in-memory database SELECT IsValid(GeomFromText("MULTIPOLYGONM(((10 10 1, 15 10 2, 15 15 3, 10 15 4, 10 10 1), (11 11 1, 12 11 2, 12 12 3, 11 12 4, 11 11 1)), ((20 20 2, 21 20 3, 21 21 4, 20 21 5, 20 20 2)))")); 1 # rows (not including the header row) 1 # columns IsValid(GeomFromText("MULTIPOLYGONM(((10 10 1, 15 10 2, 15 15 3, 10 15 4, 10 10 1), (11 11 1, 12 11 2, 12 12 3, 11 12 4, 11 11 1)), ((20 20 2, 21 20 3, 21 21 4, 20 21 5, 20 20 2)))")) 1 libspatialite-4.1.1/test/check_get_normal_row.c0000664000175000017500000002767212163502133016576 00000000000000/* check_get_normal_row.c - Test case for GeoPackage Extensions Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Brad Hards Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #include "test_helpers.h" int main (int argc UNUSED, char *argv[] UNUSED) { sqlite3 *db_handle = NULL; int ret; char *err_msg = NULL; char **results; int rows; int columns; void *cache = spatialite_alloc_connection(); char *old_SPATIALITE_SECURITY_ENV = NULL; #ifdef _WIN32 char *env; #endif /* not WIN32 */ old_SPATIALITE_SECURITY_ENV = getenv("SPATIALITE_SECURITY"); #ifdef _WIN32 putenv("SPATIALITE_SECURITY=relaxed"); #else /* not WIN32 */ setenv("SPATIALITE_SECURITY", "relaxed", 1); #endif ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); // For debugging / testing if required // ret = sqlite3_open_v2 ("check_get_normal_row.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); spatialite_init_ex(db_handle, cache, 0); if (old_SPATIALITE_SECURITY_ENV) { #ifdef _WIN32 env = sqlite3_mprintf("SPATIALITE_SECURITY=%s", old_SPATIALITE_SECURITY_ENV); putenv(env); sqlite3_free(env); #else /* not WIN32 */ setenv("SPATIALITE_SECURITY", old_SPATIALITE_SECURITY_ENV, 1); #endif } else { #ifdef _WIN32 putenv("SPATIALITE_SECURITY="); #else /* not WIN32 */ unsetenv("SPATIALITE_SECURITY"); #endif } if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } /* create a minimal tile_matrix_metadata table (not spec compliant) */ ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS tile_matrix_metadata", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP tile_matrix_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -4; } ret = sqlite3_exec (db_handle, "CREATE TABLE tile_matrix_metadata (t_table_name TEXT NOT NULL, zoom_level INTEGER NOT NULL, matrix_width INTEGER NOT NULL, matrix_height INTEGER NOT NULL)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE tile_matrix_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -5; } /* add in some test entries */ ret = sqlite3_exec (db_handle, "INSERT INTO tile_matrix_metadata VALUES (\"test1_matrix_tiles\", 0, 1, 1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT tile_matrix_metadata zoom 0 error: %s\n", err_msg); sqlite3_free (err_msg); return -6; } ret = sqlite3_exec (db_handle, "INSERT INTO tile_matrix_metadata VALUES (\"test1_matrix_tiles\", 1, 2, 2)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT tile_matrix_metadata zoom 1 error: %s\n", err_msg); sqlite3_free (err_msg); return -7; } ret = sqlite3_exec (db_handle, "INSERT INTO tile_matrix_metadata VALUES (\"test1_matrix_tiles\", 2, 4, 4)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT tile_matrix_metadata zoom 2 error: %s\n", err_msg); sqlite3_free (err_msg); return -8; } /* create a target table */ ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS test1_matrix_tiles", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP test1_matrix_tiles error: %s\n", err_msg); sqlite3_free (err_msg); return -9; } ret = sqlite3_exec (db_handle, "CREATE TABLE test1_matrix_tiles (id INTEGER PRIMARY KEY AUTOINCREMENT, zoom_level INTEGER NOT NULL DEFAULT 0, tile_column INTEGER NOT NULL DEFAULT 0, tile_row INTEGER NOT NULL DEFAULT 0, tile_data BLOB NOT NULL DEFAULT (zeroblob(4)))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE test1_matrix_tiles error: %s\n", err_msg); sqlite3_free (err_msg); return -10; } /* Check a proper INSERT */ ret = sqlite3_exec (db_handle, "INSERT INTO test1_matrix_tiles VALUES (6, 0, 0 ,0, BlobFromFile('empty.png'))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT error 6: %s\n", err_msg); sqlite3_free (err_msg); return -11; } ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalRow(\"test1_matrix_tiles\", 0, 0)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error1: %s\n", err_msg); sqlite3_free (err_msg); return -12; } if ((rows != 1) || (columns != 1)) { sqlite3_free_table(results); fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns); return -13; } if (strcmp(results[1 * columns + 0], "0") != 0) { fprintf (stderr, "Unexpected result (got %s, expected 0)", results[rows * columns + 0]); sqlite3_free_table(results); return -14; } sqlite3_free_table(results); ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalRow(\"test1_matrix_tiles\", 2, 0)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error 2: %s\n", err_msg); sqlite3_free (err_msg); return -15; } if ((rows != 1) || (columns != 1)) { sqlite3_free_table(results); fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns); return -16; } if (strcmp(results[1 * columns + 0], "3") != 0) { fprintf (stderr, "Unexpected result (got %s, expected 3)", results[rows * columns + 0]); sqlite3_free_table(results); return -17; } sqlite3_free_table(results); /* test an out-of-range zoom number - expect exception */ ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalRow(\"test1_matrix_tiles\", 3, 0)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_ERROR) { fprintf(stderr, "Expected error for overrange zoom level, got %i\n", ret); sqlite3_free (err_msg); return -18; } if (strcmp(err_msg, "gpkgGetNormalRow: tile table or zoom level not found") != 0) { fprintf (stderr, "Unexpected error message for overrange zoom level: %s\n", err_msg); sqlite3_free(err_msg); return -19; } sqlite3_free(err_msg); ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalRow(\"test1_matrix_tiles\", -1, 0)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_ERROR) { fprintf(stderr, "Expected error for underrange zoom level, got %i\n", ret); sqlite3_free (err_msg); return -20; } if (strcmp(err_msg, "gpkgGetNormalRow: tile table or zoom level not found") != 0) { fprintf (stderr, "Unexpected error message for underrange zoom level: %s\n", err_msg); sqlite3_free(err_msg); return -21; } sqlite3_free(err_msg); /* test bad table name */ ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalRow(\"no_such_table\", 0, 0)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_ERROR) { fprintf(stderr, "Expected error for bad table name level, got %i\n", ret); sqlite3_free (err_msg); return -22; } if (strcmp(err_msg, "gpkgGetNormalRow: tile table or zoom level not found") != 0) { fprintf (stderr, "Unexpected error message for bad table name: %s\n", err_msg); sqlite3_free(err_msg); return -23; } sqlite3_free(err_msg); /* test bad argument types */ ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalRow(3, 0, 0)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_ERROR) { fprintf(stderr, "Expected error for bad arg1 type, got %i\n", ret); sqlite3_free (err_msg); return -26; } if (strcmp(err_msg, "gpkgGetNormalRow() error: argument 1 [tile_table_name] is not of the String type") != 0) { fprintf (stderr, "Unexpected error message for bad arg1 type: %s\n", err_msg); sqlite3_free(err_msg); return -27; } sqlite3_free(err_msg); /* test bad argument types */ ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalRow(\"test1_matrix_tiles\", 3.2, 0)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_ERROR) { fprintf(stderr, "Expected error for bad arg2 type, got %i\n", ret); sqlite3_free (err_msg); return -28; } if (strcmp(err_msg, "gpkgGetNormalRow() error: argument 2 [normal zoom level] is not of the integer type") != 0) { fprintf (stderr, "Unexpected error message for bad arg2 type: %s\n", err_msg); sqlite3_free(err_msg); return -29; } sqlite3_free(err_msg); /* test bad argument types */ ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalRow(\"test1_matrix_tiles\", 2, 1.6)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_ERROR) { fprintf(stderr, "Expected error for bad arg3 type, got %i\n", ret); sqlite3_free (err_msg); return -30; } if (strcmp(err_msg, "gpkgGetNormalRow() error: argument 3 [inverted_row_number] is not of the integer type") != 0) { fprintf (stderr, "Unexpected error message for bad arg3 type: %s\n", err_msg); sqlite3_free(err_msg); return -31; } sqlite3_free(err_msg); /* test overrange row number */ ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalRow(\"test1_matrix_tiles\", 2, 4)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_ERROR) { fprintf(stderr, "Expected error for overrange row number level, got %i\n", ret); sqlite3_free (err_msg); return -32; } if (strcmp(err_msg, "gpkgGetNormalRow: row number outside of matrix height range") != 0) { fprintf (stderr, "Unexpected error message for overrange zoom level: %s\n", err_msg); sqlite3_free(err_msg); return -33; } sqlite3_free(err_msg); /* test underrange row number */ ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalRow(\"test1_matrix_tiles\", 2, -1)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_ERROR) { fprintf(stderr, "Expected error for underrange row number level, got %i\n", ret); sqlite3_free (err_msg); return -34; } if (strcmp(err_msg, "gpkgGetNormalRow: row number outside of matrix height range") != 0) { fprintf (stderr, "Unexpected error message for underrange zoom level: %s\n", err_msg); sqlite3_free(err_msg); return -35; } sqlite3_free(err_msg); ret = sqlite3_close (db_handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle)); return -100; } spatialite_cleanup_ex(cache); return 0; } libspatialite-4.1.1/test/check_fdo1.c0000664000175000017500000003504112163502133014376 00000000000000/* check_fdo1.c -- SpatiaLite Test Case Author: Sandro Furieri ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" #include "spatialite/gaiageo.h" #ifndef OMIT_GEOS /* including GEOS */ #include #endif int main (int argc, char *argv[]) { #ifndef OMIT_GEOS /* only if GEOS is supported */ int ret; sqlite3 *handle; char *err_msg = NULL; const char *sql; int i; char **results; int rows; int columns; void *cache = spatialite_alloc_connection(); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = system("cp sql_stmt_tests/testFDO.sqlite testFDO.sqlite"); if (ret != 0) { fprintf(stderr, "cannot copy testFDO.sqlite database\n"); return -1001; } ret = sqlite3_open_v2 ("testFDO.sqlite", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "cannot open testFDO.sqlite db: %s\n", sqlite3_errmsg (handle)); sqlite3_close(handle); return -1000; } spatialite_init_ex (handle, cache, 0); /* FDO start-up */ sql = "SELECT AutoFDOStart()"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -1; } /* testing aggregate Union() PointZ WKT "p02" */ sql = "SELECT AsText(ST_Union(WKT_GEOMETRY)) FROM fdo_p02"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -2; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -3; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -4; } if (strcmp(results[1], "MULTIPOINT Z(664350.17954 5171957.915655 314.52, 664642.363686 5169415.339218 294.37, 664964.447225 5170571.245732 318.25)") != 0) { fprintf (stderr, "Unexpected error: invalid result |%s|\n", results[1]); return -5; } sqlite3_free_table (results); /* testing aggregate Union() PointZ WKB "p03" */ sql = "SELECT AsText(ST_Union(GEOMETRY)) FROM fdo_p03 WHERE text_dil IS NULL AND OGC_FID < 3"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -6; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -7; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -8; } if (strcmp(results[1], "MULTIPOINT Z(665216.306643 5169825.707161 296.06, 665224.506512 5169827.907054 296.16)") != 0) { fprintf (stderr, "Unexpected error: invalid result |%s|\n", results[1]); return -9; } sqlite3_free_table (results); /* testing aggregate Union() PointZ SpatiaLite "p05" */ sql = "SELECT AsText(ST_Union(GEOMETRY)) FROM fdo_p05 WHERE text_dil IS NULL AND OGC_FID < 3"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -10; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -11; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result |%s|\n", results[1]); return -12; } if (strcmp(results[1], "MULTIPOINT Z(667687.978175 5169352.045712 583.140015, 667710.008189 5169402.894615 589.849976)") != 0) { fprintf (stderr, "Unexpected error: invalid result b|%s|\n", results[1]); return -13; } sqlite3_free_table (results); /* testing Sum(GLength()) LinestringZ WKT "l05" */ sql = "SELECT Sum(GLength(WKT_GEOMETRY)) FROM fdo_l05"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -14; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -15; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -16; } if (strncmp(results[1], "59.417763", 9) != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -17; } sqlite3_free_table (results); /* testing Sum(GLength()) LinestringZ WKB "l06" */ sql = "SELECT Sum(GLength(GEOMETRY)) FROM fdo_l06"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -18; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -19; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -20; } if (strncmp(results[1], "273.076064", 10) != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -21; } sqlite3_free_table (results); /* testing Sum(GLength()) LinestringZ SpatiaLite "l07" */ sql = "SELECT Sum(GLength(GEOMETRY)) FROM fdo_l07"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -22; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -23; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -24; } if (strncmp(results[1], "219.459808", 10) != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -25; } sqlite3_free_table (results); /* testing Sum(Area()) PolygonZ WKT "f04" */ sql = "SELECT Sum(Area(WKT_GEOMETRY)) FROM fdo_f04"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -26; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -27; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -28; } if (strncmp(results[1], "9960.931239", 11) != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -29; } sqlite3_free_table (results); /* testing Sum(Area()) PolygonZ WKB "f05" */ sql = "SELECT Sum(Area(GEOMETRY)) FROM fdo_f05"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -30; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -31; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -32; } if (strncmp(results[1], "69972.113393", 12) != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -33; } sqlite3_free_table (results); /* testing Sum(Area()) PolygonZ SpatiaLite "f06" */ sql = "SELECT Sum(Area(GEOMETRY)) FROM fdo_f06"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -34; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -35; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -36; } if (strncmp(results[1], "1125.064396", 11) != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -37; } sqlite3_free_table (results); /* testing IsValid() LinestringZ WKB "l06" */ sql = "SELECT IsValid(GEOMETRY) FROM fdo_l06"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -38; } if ((rows != 12) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -39; } for (i = 1; i <= rows; i++) { if (results[i] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -40; } if (strcmp(results[i], "0") == 0) { const char *geos_msg = gaiaGetGeosErrorMsg(); if (geos_msg == NULL) geos_msg = gaiaGetGeosWarningMsg(); if (geos_msg == NULL) { fprintf (stderr, "Unexpected error: invalid result\n"); return -41; } } } sqlite3_free_table (results); /* testing IsValid() PolygonZ WKT "f04" */ sql = "SELECT IsValid(WKT_GEOMETRY) FROM fdo_f04"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -42; } if ((rows != 16) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -43; } for (i = 1; i <= rows; i++) { if (results[i] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -44; } if (strcmp(results[i], "0") == 0) { const char *geos_msg = gaiaGetGeosErrorMsg(); if (geos_msg == NULL) geos_msg = gaiaGetGeosWarningMsg(); if (geos_msg == NULL) { fprintf (stderr, "Unexpected error: invalid result\n"); return -45; } } } sqlite3_free_table (results); /* testing IsValid() PolygonZ WKB "f05" */ sql = "SELECT IsValid(GEOMETRY) FROM fdo_f05"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -46; } if ((rows != 13) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -47; } for (i = 1; i <= rows; i++) { if (results[i] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -48; } if (strcmp(results[i], "0") == 0) { const char *geos_msg = gaiaGetGeosErrorMsg(); if (geos_msg == NULL) geos_msg = gaiaGetGeosWarningMsg(); if (geos_msg == NULL) { fprintf (stderr, "Unexpected error: invalid result\n"); return -49; } } } sqlite3_free_table (results); /* testing DOUBLE and TEXT columns */ sql = "SELECT datum, hoehe FROM fdo_p05 WHERE OGC_FID = 5"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -50; } if ((rows != 1) || (columns != 2)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -51; } if (results[2] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -52; } if (strcmp(results[2], "1997/03/07") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -53; } if (results[3] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -54; } if (strcmp(results[3], "277.55") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -54; } sqlite3_free_table (results); /* FDO shut-down */ sql = "SELECT AutoFDOStop()"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -55; } ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -56; } spatialite_cleanup_ex (cache); ret = unlink("testFDO.sqlite"); if (ret != 0) { fprintf(stderr, "cannot remove testFDO database\n"); return -57; } #endif /* end GEOS conditional */ return 0; } libspatialite-4.1.1/test/check_endian.c0000664000175000017500000004135712163502133015012 00000000000000/* check_endian.c -- SpatiaLite Test Case Author: Sandro Furieri ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include "sqlite3.h" #include #define LITTLE_ENDIAN_ENCODED 1 #define BIG_ENDIAN_ENCODED 0 #define LITTLE_ENDIAN_ARCH 1 #define BIG_ENDIAN_ARCH 0 int main (int argc, char *argv[]) { unsigned char buf_in[8]; unsigned char buf_out[8]; short shrt_val; int int_val; sqlite3_int64 i64_val; float flt_val; double dbl_val; if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ /* testing short values [16 bit] */ buf_in[0] = 0xdf; buf_in[1] = 0xfd; shrt_val = gaiaImport16(buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); gaiaExport16(buf_out, shrt_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); if (buf_out[0] != 0xdf || buf_out[1] != 0xfd) { fprintf(stderr, "endian INT16 (1): got 0x%02x%02x, expected 0xdffd\n", buf_out[0], buf_out[1]); return -1; } shrt_val = gaiaImport16(buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); gaiaExport16(buf_out, shrt_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); if (buf_out[0] != 0xdf || buf_out[1] != 0xfd) { fprintf(stderr, "endian INT16 (2): got 0x%02x%02x, expected 0xdffd\n", buf_out[0], buf_out[1]); return -2; } shrt_val = gaiaImport16(buf_in, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); gaiaExport16(buf_out, shrt_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); if (buf_out[0] != 0xfd || buf_out[1] != 0xdf) { fprintf(stderr, "endian INT16 (3): got 0x%02x%02x, expected 0xfddf\n", buf_out[0], buf_out[1]); return -3; } shrt_val = gaiaImport16(buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); gaiaExport16(buf_out, shrt_val, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); if (buf_out[0] != 0xfd || buf_out[1] != 0xdf) { fprintf(stderr, "endian INT16 (4): got 0x%02x%02x, expected 0xfddf\n", buf_out[0], buf_out[1]); return -4; } shrt_val = gaiaImport16(buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); gaiaExport16(buf_out, shrt_val, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); if (buf_out[0] != 0xdf || buf_out[1] != 0xfd) { fprintf(stderr, "endian 16 bit (5): got 0x%02x%02x, expected 0xdffd\n", buf_out[0], buf_out[1]); return -5; } shrt_val = gaiaImport16(buf_in, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); gaiaExport16(buf_out, shrt_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); if (buf_out[0] != 0xfd || buf_out[1] != 0xdf) { fprintf(stderr, "endian INT16 (6): got 0x%02x%02x, expected 0xfddf\n", buf_out[0], buf_out[1]); return -6; } /* testing int values [32 bit] */ buf_in[0] = 0xdf; buf_in[1] = 0xec; buf_in[2] = 0xce; buf_in[3] = 0xfd; int_val = gaiaImport32(buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); gaiaExport32(buf_out, int_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); if (buf_out[0] != 0xdf || buf_out[1] != 0xec || buf_out[2] != 0xce || buf_out[3] != 0xfd) { fprintf(stderr, "endian INT32 (1): got 0x%02x%02x%02x%02x, expected 0xdfeccefd\n", buf_out[0], buf_out[1], buf_out[2], buf_out[3]); return -7; } int_val = gaiaImport32(buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); gaiaExport32(buf_out, int_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); if (buf_out[0] != 0xdf || buf_out[1] != 0xec || buf_out[2] != 0xce || buf_out[3] != 0xfd) { fprintf(stderr, "endian INT32 (2): got 0x%02x%02x%02x%02x, expected 0xdfeccefd\n", buf_out[0], buf_out[1], buf_out[2], buf_out[3]); return -8; } int_val = gaiaImport32(buf_in, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); gaiaExport32(buf_out, int_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0xec || buf_out[3] != 0xdf) { fprintf(stderr, "endian INT32 (3): got 0x%02x%02x%02x%02x, expected 0xfdceecdf\n", buf_out[0], buf_out[1], buf_out[2], buf_out[3]); return -9; } int_val = gaiaImport32(buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); gaiaExport32(buf_out, int_val, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0xec || buf_out[3] != 0xdf) { fprintf(stderr, "endian INT32 (4): got 0x%02x%02x%02x%02x, expected 0xfdceecdf\n", buf_out[0], buf_out[1], buf_out[2], buf_out[3]); return -10; } int_val = gaiaImport32(buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); gaiaExport32(buf_out, int_val, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0xec || buf_out[3] != 0xdf) { fprintf(stderr, "endian INT32 (5): got 0x%02x%02x%02x%02x, expected 0xfdceecdf\n", buf_out[0], buf_out[1], buf_out[2], buf_out[3]); return -11; } int_val = gaiaImport32(buf_in, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); gaiaExport32(buf_out, int_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0xec || buf_out[3] != 0xdf) { fprintf(stderr, "endian INT32 (6): got 0x%02x%02x%02x%02x, expected 0xfdceecdf\n", buf_out[0], buf_out[1], buf_out[2], buf_out[3]); return -12; } /* testing long values [64 bit] */ buf_in[0] = 0xdf; buf_in[1] = 0xec; buf_in[2] = 0xa8; buf_in[3] = 0x63; buf_in[4] = 0x36; buf_in[5] = 0x8a; buf_in[6] = 0xce; buf_in[7] = 0xfd; i64_val = gaiaImportI64(buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); gaiaExportI64(buf_out, i64_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); if (buf_out[0] != 0xdf || buf_out[1] != 0xec || buf_out[2] != 0xa8 || buf_out[3] != 0x63 || buf_out[4] != 0x36 || buf_out[5] != 0x8a || buf_out[6] != 0xce || buf_out[7] != 0xfd) { fprintf(stderr, "endian INT64 (1): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xdfeca863368acefd\n", buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], buf_out[5], buf_out[6], buf_out[7]); return -13; } i64_val = gaiaImportI64(buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); gaiaExportI64(buf_out, i64_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); if (buf_out[0] != 0xdf || buf_out[1] != 0xec || buf_out[2] != 0xa8 || buf_out[3] != 0x63 || buf_out[4] != 0x36 || buf_out[5] != 0x8a || buf_out[6] != 0xce || buf_out[7] != 0xfd) { fprintf(stderr, "endian INT64 (2): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xdfeca863368acefd\n", buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], buf_out[5], buf_out[6], buf_out[7]); return -14; } i64_val = gaiaImportI64(buf_in, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); gaiaExportI64(buf_out, i64_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0x8a || buf_out[3] != 0x36 || buf_out[4] != 0x63 || buf_out[5] != 0xa8 || buf_out[6] != 0xec || buf_out[7] != 0xdf) { fprintf(stderr, "endian INT64 (3): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xfdce8a3663a8ecdf\n", buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], buf_out[5], buf_out[6], buf_out[7]); return -15; } i64_val = gaiaImportI64(buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); gaiaExportI64(buf_out, i64_val, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0x8a || buf_out[3] != 0x36 || buf_out[4] != 0x63 || buf_out[5] != 0xa8 || buf_out[6] != 0xec || buf_out[7] != 0xdf) { fprintf(stderr, "endian INT64 (4): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xfdce8a3663a8ecdf\n", buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], buf_out[5], buf_out[6], buf_out[7]); return -16; } i64_val = gaiaImportI64(buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); gaiaExportI64(buf_out, i64_val, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0x8a || buf_out[3] != 0x36 || buf_out[4] != 0x63 || buf_out[5] != 0xa8 || buf_out[6] != 0xec || buf_out[7] != 0xdf) { fprintf(stderr, "endian INT64 (5): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xfdce8a3663a8ecdf\n", buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], buf_out[5], buf_out[6], buf_out[7]); return -17; } i64_val = gaiaImportI64(buf_in, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); gaiaExportI64(buf_out, i64_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0x8a || buf_out[3] != 0x36 || buf_out[4] != 0x63 || buf_out[5] != 0xa8 || buf_out[6] != 0xec || buf_out[7] != 0xdf) { fprintf(stderr, "endian INT64 (6): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xfdce8a3663a8ecdf\n", buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], buf_out[5], buf_out[6], buf_out[7]); return -18; } /* testing float values */ buf_in[0] = 0xdf; buf_in[1] = 0xec; buf_in[2] = 0xce; buf_in[3] = 0xfd; flt_val = gaiaImportF32(buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); gaiaExportF32(buf_out, flt_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); if (buf_out[0] != 0xdf || buf_out[1] != 0xec || buf_out[2] != 0xce || buf_out[3] != 0xfd) { fprintf(stderr, "endian FLOAT (1): got 0x%02x%02x%02x%02x, expected 0xdfeccefd\n", buf_out[0], buf_out[1], buf_out[2], buf_out[3]); return -19; } flt_val = gaiaImportF32(buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); gaiaExportF32(buf_out, flt_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); if (buf_out[0] != 0xdf || buf_out[1] != 0xec || buf_out[2] != 0xce || buf_out[3] != 0xfd) { fprintf(stderr, "endian FLOAT (2): got 0x%02x%02x%02x%02x, expected 0xdfeccefd\n", buf_out[0], buf_out[1], buf_out[2], buf_out[3]); return -20; } flt_val = gaiaImportF32(buf_in, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); gaiaExportF32(buf_out, flt_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0xec || buf_out[3] != 0xdf) { fprintf(stderr, "endian FLOAT (3): got 0x%02x%02x%02x%02x, expected 0xfdceecdf\n", buf_out[0], buf_out[1], buf_out[2], buf_out[3]); return -21; } flt_val = gaiaImportF32(buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); gaiaExportF32(buf_out, flt_val, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0xec || buf_out[3] != 0xdf) { fprintf(stderr, "endian FLOAT (4): got 0x%02x%02x%02x%02x, expected 0xfdceecdf\n", buf_out[0], buf_out[1], buf_out[2], buf_out[3]); return -22; } flt_val = gaiaImportF32(buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); gaiaExportF32(buf_out, flt_val, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0xec || buf_out[3] != 0xdf) { fprintf(stderr, "endian FLOAT (5): got 0x%02x%02x%02x%02x, expected 0xfdceecdf\n", buf_out[0], buf_out[1], buf_out[2], buf_out[3]); return -23; } flt_val = gaiaImportF32(buf_in, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); gaiaExportF32(buf_out, flt_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0xec || buf_out[3] != 0xdf) { fprintf(stderr, "endian FLOAT (6): got 0x%02x%02x%02x%02x, expected 0xfdceecdf\n", buf_out[0], buf_out[1], buf_out[2], buf_out[3]); return -24; } /* testing double values */ buf_in[0] = 0xdf; buf_in[1] = 0xec; buf_in[2] = 0xa8; buf_in[3] = 0x63; buf_in[4] = 0x36; buf_in[5] = 0x8a; buf_in[6] = 0xce; buf_in[7] = 0xfd; dbl_val = gaiaImport64(buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); gaiaExport64(buf_out, dbl_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); if (buf_out[0] != 0xdf || buf_out[1] != 0xec || buf_out[2] != 0xa8 || buf_out[3] != 0x63 || buf_out[4] != 0x36 || buf_out[5] != 0x8a || buf_out[6] != 0xce || buf_out[7] != 0xfd) { fprintf(stderr, "endian DOUBLE (1): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xdfeca863368acefd\n", buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], buf_out[5], buf_out[6], buf_out[7]); return -25; } dbl_val = gaiaImport64(buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); gaiaExport64(buf_out, dbl_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); if (buf_out[0] != 0xdf || buf_out[1] != 0xec || buf_out[2] != 0xa8 || buf_out[3] != 0x63 || buf_out[4] != 0x36 || buf_out[5] != 0x8a || buf_out[6] != 0xce || buf_out[7] != 0xfd) { fprintf(stderr, "endian DOUBLE (2): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xdfeca863368acefd\n", buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], buf_out[5], buf_out[6], buf_out[7]); return -26; } dbl_val = gaiaImport64(buf_in, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); gaiaExport64(buf_out, dbl_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0x8a || buf_out[3] != 0x36 || buf_out[4] != 0x63 || buf_out[5] != 0xa8 || buf_out[6] != 0xec || buf_out[7] != 0xdf) { fprintf(stderr, "endian DOUBLE (3): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xfdce8a3663a8ecdf\n", buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], buf_out[5], buf_out[6], buf_out[7]); return -27; } dbl_val = gaiaImport64(buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); gaiaExport64(buf_out, dbl_val, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0x8a || buf_out[3] != 0x36 || buf_out[4] != 0x63 || buf_out[5] != 0xa8 || buf_out[6] != 0xec || buf_out[7] != 0xdf) { fprintf(stderr, "endian DOUBLE (4): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xfdce8a3663a8ecdf\n", buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], buf_out[5], buf_out[6], buf_out[7]); return -28; } dbl_val = gaiaImport64(buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); gaiaExport64(buf_out, dbl_val, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0x8a || buf_out[3] != 0x36 || buf_out[4] != 0x63 || buf_out[5] != 0xa8 || buf_out[6] != 0xec || buf_out[7] != 0xdf) { fprintf(stderr, "endian DOUBLE (5): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xfdce8a3663a8ecdf\n", buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], buf_out[5], buf_out[6], buf_out[7]); return -29; } dbl_val = gaiaImport64(buf_in, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); gaiaExport64(buf_out, dbl_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0x8a || buf_out[3] != 0x36 || buf_out[4] != 0x63 || buf_out[5] != 0xa8 || buf_out[6] != 0xec || buf_out[7] != 0xdf) { fprintf(stderr, "endian DOUBLE (6): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xfdce8a3663a8ecdf\n", buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], buf_out[5], buf_out[6], buf_out[7]); return -30; } return 0; } libspatialite-4.1.1/test/test-invalid.sqlite0000664000175000017500000152200012163502134016070 00000000000000SQLite format 3@ #g#-#Qk~ytoje`[VQLGB=83.)$ zupkomjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFE~D}C|B{Az?y=x<w;v:u9t8s7r6q5p4o3n2m1l0k/j.i,h*g)f(e'd&1%+(%"   kx 3)epsgYED50 / UTM zone 32N+proj=utm +zone=32 +ellps=intl +towgs84=-87,-98,-121,0,0,0,0 +units=m +no_defsPROJCS["ED50 / UTM zone 32N",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Easting",EAST],AXIS["Northing",NORTH],AUTHORITY["EPSG","23032"]]3K NONEUndefined - Geographic Long/LatUndefined*7 NONEUndefined - CartesianUndefined65  com20111sql_statements_log 1spatialite_history com2011geometryY  com2011geometry }}++[tablespatial_ref_sysspatial_ref_sysCREATE TABLE spatial_ref_sys ( srid INTEGER NOT NULL PRIMARY KEY, auth_name TEXT NOT NULL, auth_srid INTEGER NOT NULL, ref_sys_name TEXT NOT NULL DEFAULT 'Unknown', proj4text TEXT NOT NULL, srtext TEXT NOT NULL DEFAULT 'Undefined')11]tablespatialite_historyspatialite_historyCREATE TABLE spatialite_history ( event_id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, table_name TEXT NOT NULL, geometry_column TEXT, event TEXT NOT NULL, timestamp TEXT NOT NULL, ver_sqlite TEXT NOT NULL, ver_splite TEXT NOT NULL)P++Ytablesqlite_sequencesqlite_sequenceCREATE TABLE sqlite_sequence(name,seq) ]--mtablegeometry_columnsgeometry_columnsCREATE TABLE geometry_columns ( f_table_name TEXT NOT NULL, f_geometry_column TEXT NOT NULL, geometry_type INTEGER NOT NULL, coord_dimension INTEGER NOT NULL, srid INTEGER NOT NULL, spatial_index_enabled INTEGER NOT NULL, CONSTRAINT pk_geom_cols PRIMARY KEY (f_table_name, f_geometry_column), CONSTRAINT fk_gc_srs FOREIGN KEY (srid) REFERENCES spatial_ref_sys (srid), CONSTRAINT ck_gc_rtree CHECK (spatial_index_enabled IN (0,1,2)))?S-indexsqlite_autoindex_geometry_columns_1geometry_columns   0}99Wtableviews_geometry_columnsviews_geometry_columns CREATE TABLE views_geometry_columns ( view_name TEXT NOT NULL, view_geometry TEXT NOT NULL, view_rowid TEXT NOT NULL, f_table_name TEXT NOT NULL, f_geometry_column TEXT NOT NULL, read_only INTEGER NOT NULL, CONSTRAINT pk_geom_cols_views PRIMARY KEY (view_name, view_geometry), CONSTRAINT fk_views_geom_cols FOREIGN KEY (f_table_name, f_geometry_column) REFERENCES geometry_columns (f_table_name, f_geometry_column) ON DELETE CASCADE, CONSTRAINT ck_vw_rdonly CHECK (read_only IN (0,1)))K_9indexsqlite_autoindex_views_geometry_columns_1views_geometry_columns 99tablevirts_geometry_columnsvirts_geometry_columns CREATE TABLE virts_geometry_columns ( virt_name TEXT NOT NULL, virt_geometry TEXT NOT NULL, geometry_type INTEGER NOT NULL, coord_dimension INTEGER NOT NULL, srid INTEGER NOT NULL, CONSTRAINT pk_geom_cols_virts PRIMARY KEY (virt_name, virt_geometry), CONSTRAINT fk_vgc_srid FOREIGN KEY (srid) REFERENCES spatial_ref_sys (srid))   IIK _9indexsqlite_autoindex_virts_geometry_columns_1virts_geometry_columns  CC'tablegeometry_columns_statisticsgeometry_columns_statisticsCREATE TABLE geometry_columns_statistics ( f_table_name TEXT NOT NULL, f_geometry_column TEXT NOT NULL, last_verified TIMESTAMP, row_count INTEGER, extent_min_x DOUBLE, extent_min_y DOUBLE, extent_max_x DOUBLE, extent_max_y DOUBLE, CONSTRAINT pk_gc_statistics PRIMARY KEY (f_table_name, f_geometry_column), CONSTRAINT fk_gc_statistics FOREIGN KEY (f_table_name, f_geometry_column) REFERENCES geometry_columns (f_table_name, f_geometry_column) ON DELETE CASCADE)U iCindexsqlite_autoindex_geometry_columns_statistics_1geometry_columns_statistics  com2011geometry  com2011geometry    OOtableviews_geometry_columns_statisticsviews_geometry_columns_statisticsCREATE TABLE views_geometry_columns_statistics ( view_name TEXT NOT NULL, view_geometry TEXT NOT NULL, last_verified TIMESTAMP, row_count INTEGER, extent_min_x DOUBLE, extent_min_y DOUBLE, extent_max_x DOUBLE, extent_max_y DOUBLE, CONSTRAINT pk_vwgc_statistics PRIMARY KEY (view_name, view_geometry), CONSTRAINT fk_vwgc_statistics FOREIGN KEY (view_name, view_geometry) REFERENCES views_geometry_columns (view_name, view_geometry) ON DELETE CASCADE)a uOindexsqlite_autoindex_views_geometry_columns_statistics_1views_geometry_columns_statistics   OOtablevirts_geometry_columns_statisticsvirts_geometry_columns_statisticsCREATE TABLE virts_geometry_columns_statistics ( virt_name TEXT NOT NULL, virt_geometry TEXT NOT NULL, last_verified TIMESTAMP, row_count INTEGER, extent_min_x DOUBLE, extent_min_y DOUBLE, extent_max_x DOUBLE, extent_max_y DOUBLE, CONSTRAINT pk_vrtgc_statistics PRIMARY KEY (virt_name, virt_geometry), CONSTRAINT fk_vrtgc_statistics FOREIGN KEY (virt_name, virt_geometry) REFERENCES virts_geometry_columns (virt_name, virt_geometry) ON DELETE CASCADE)auOindexsqlite_autoindex_virts_geometry_columns_statistics_1virts_geometry_columns_statistics   WEE1tablegeometry_columns_field_infosgeometry_columns_field_infosCREATE TABLE geometry_columns_field_infos ( f_table_name TEXT NOT NULL, f_geometry_column TEXT NOT NULL, ordinal INTEGER NOT NULL, column_name TEXT NOT NULL, null_values INTEGER NOT NULL, integer_values INTEGER NOT NULL, double_values INTEGER NOT NULL, text_values INTEGER NOT NULL, blob_values INTEGER NOT NULL, max_size INTEGER, integer_min INTEGER, integer_max INTEGER, double_min DOUBLE, double_max DOUBLE, CONSTRAINT pk_gcfld_infos PRIMARY KEY (f_table_name, f_geometry_column, ordinal, column_name), CONSTRAINT fk_gcfld_infos FOREIGN KEY (f_table_name, f_geometry_column) REFERENCES geometry_columns (f_table_name, f_geometry_column) ON DELETE CASCADE)WkEindexsqlite_autoindex_geometry_columns_field_infos_1geometry_columns_field_infos   WQQtableviews_geometry_columns_field_infosviews_geometry_columns_field_infosCREATE TABLE views_geometry_columns_field_infos ( view_name TEXT NOT NULL, view_geometry TEXT NOT NULL, ordinal INTEGER NOT NULL, column_name TEXT NOT NULL, null_values INTEGER NOT NULL, integer_values INTEGER NOT NULL, double_values INTEGER NOT NULL, text_values INTEGER NOT NULL, blob_values INTEGER NOT NULL, max_size INTEGER, integer_min INTEGER, integer_max INTEGER, double_min DOUBLE, double_max DOUBLE, CONSTRAINT pk_vwgcfld_infos PRIMARY KEY (view_name, view_geometry, ordinal, column_name), CONSTRAINT fk_vwgcfld_infos FOREIGN KEY (view_name, view_geometry) REFERENCES views_geometry_columns (view_name, view_geometry) ON DELETE CASCADE)cwQindexsqlite_autoindex_views_geometry_columns_field_infos_1views_geometry_columns_field_infos   YQQtablevirts_geometry_columns_field_infosvirts_geometry_columns_field_infosCREATE TABLE virts_geometry_columns_field_infos ( virt_name TEXT NOT NULL, virt_geometry TEXT NOT NULL, ordinal INTEGER NOT NULL, column_name TEXT NOT NULL, null_values INTEGER NOT NULL, integer_values INTEGER NOT NULL, double_values INTEGER NOT NULL, text_values INTEGER NOT NULL, blob_values INTEGER NOT NULL, max_size INTEGER, integer_min INTEGER, integer_max INTEGER, double_min DOUBLE, double_max DOUBLE, CONSTRAINT pk_vrtgcfld_infos PRIMARY KEY (virt_name, virt_geometry, ordinal, column_name), CONSTRAINT fk_vrtgcfld_infos FOREIGN KEY (virt_name, virt_geometry) REFERENCES virts_geometry_columns (virt_name, virt_geometry) ON DELETE CASCADE)cwQindexsqlite_autoindex_virts_geometry_columns_field_infos_1virts_geometry_columns_field_infos ]===com2011geometry2013-03-24T13:25:51.768Z0000-01-01T00:00:00.000Z2013-03-24T13:36:59.733Z  com2011geometry ww;77tablegeometry_columns_timegeometry_columns_time CREATE TABLE geometry_columns_time ( f_table_name TEXT NOT NULL, f_geometry_column TEXT NOT NULL, last_insert TIMESTAMP NOT NULL DEFAULT '0000-01-01T00:00:00.000Z', last_update TIMESTAMP NOT NULL DEFAULT '0000-01-01T00:00:00.000Z', last_delete TIMESTAMP NOT NULL DEFAULT '0000-01-01T00:00:00.000Z', CONSTRAINT pk_gc_time PRIMARY KEY (f_table_name, f_geometry_column), CONSTRAINT fk_gc_time FOREIGN KEY (f_table_name, f_geometry_column) REFERENCES geometry_columns (f_table_name, f_geometry_column) ON DELETE CASCADE)I]7indexsqlite_autoindex_geometry_columns_time_1geometry_columns_time! com2011geometry  com2011geometry  775tablegeometry_columns_authgeometry_columns_auth#CREATE TABLE geometry_columns_auth ( f_table_name TEXT NOT NULL, f_geometry_column TEXT NOT NULL, read_only INTEGER NOT NULL, hidden INTEGER NOT NULL, CONSTRAINT pk_gc_auth PRIMARY KEY (f_table_name, f_geometry_column), CONSTRAINT fk_gc_auth FOREIGN KEY (f_table_name, f_geometry_column) REFERENCES geometry_columns (f_table_name, f_geometry_column) ON DELETE CASCADE, CONSTRAINT ck_gc_ronly CHECK (read_only IN (0,1)), CONSTRAINT ck_gc_hidden CHECK (hidden IN (0,1)))I]7indexsqlite_autoindex_geometry_columns_auth_1geometry_columns_auth$   $$<>CCtableviews_geometry_columns_authviews_geometry_columns_auth&CREATE TABLE views_geometry_columns_auth ( view_name TEXT NOT NULL, view_geometry TEXT NOT NULL, hidden INTEGER NOT NULL, CONSTRAINT pk_vwgc_auth PRIMARY KEY (view_name, view_geometry), CONSTRAINT fk_vwgc_auth FOREIGN KEY (view_name, view_geometry) REFERENCES views_geometry_columns (view_name, view_geometry) ON DELETE CASCADE, CONSTRAINT ck_vwgc_hidden CHECK (hidden IN (0,1)))UiCindexsqlite_autoindex_views_geometry_columns_auth_1views_geometry_columns_auth'ACC tablevirts_geometry_columns_authvirts_geometry_columns_auth)CREATE TABLE virts_geometry_columns_auth ( virt_name TEXT NOT NULL, virt_geometry TEXT NOT NULL, hidden INTEGER NOT NULL, CONSTRAINT pk_vrtgc_auth PRIMARY KEY (virt_name, virt_geometry), CONSTRAINT fk_vrtgc_auth FOREIGN KEY (virt_name, virt_geometry) REFERENCES virts_geometry_columns (virt_name, virt_geometry) ON DELETE CASCADE, CONSTRAINT ck_vrtgc_hidden CHECK (hidden IN (0,1)))   GUiCindexsqlite_autoindex_virts_geometry_columns_auth_1virts_geometry_columns_auth*611tablesql_statements_logsql_statements_log,CREATE TABLE sql_statements_log ( id INTEGER PRIMARY KEY AUTOINCREMENT, time_start TIMESTAMP NOT NULL DEFAULT '0000-01-01T00:00:00.000Z', time_end TIMESTAMP NOT NULL DEFAULT '0000-01-01T00:00:00.000Z', user_agent TEXT NOT NULL, sql_statement TEXT NOT NULL, success INTEGER NOT NULL DEFAULT 0, error_cause TEXT NOT NULL DEFAULT 'ABORTED', CONSTRAINT sqllog_success CHECK (success IN (0,1)))}Qtablecom2011com2011-CREATE TABLE "com2011" ( "PK_UID" INTEGER PRIMARY KEY AUTOINCREMENT, "COD_REG" INTEGER, "COD_PRO" INTEGER, "PRO_COM" INTEGER, "NOME_COM" TEXT, "NOME_TED" TEXT, "SHAPE_Leng" DOUBLE, "SHAPE_Area" DOUBLE, "Geometry" MULTIPOLYGON)87 c=4 ԚxcYLSKI|Ho EV)n_E 1spatialite_history13 com201112RCigeometry_columns_statisticssqlite_autoindex_geometry_columns_statistics_11 1 1<-Sgeometry_columnssqlite_autoindex_geometry_columns_11 1 1'--geometry_columnsidx_srid_geocols1 1++3spatial_ref_sysidx_spatial_ref_sys3 1 1F7]geometry_columns_timesqlite_autoindex_geometry_columns_time_11 1 1F7]geometry_columns_authsqlite_autoindex_geometry_columns_auth_11 1 11sql_statements_log11 f:rWCi geometry_columns_statisticssqlite_autoindex_geometry_columns_statistics_1com2011A-S geometry_columnssqlite_autoindex_geometry_columns_1com2011)-- geometry_columnsidx_srid_geocolsY-+3 spatial_ref_sysidx_spatial_ref_sysY)+3 spatial_ref_sysidx_spatial_ref_sys*+3 spatial_ref_sysidx_spatial_ref_sysK7] geometry_columns_timesqlite_autoindex_geometry_columns_time_1com2011K7] geometry_columns_authsqlite_autoindex_geometry_columns_auth_1com2011  Y ww |K %%[tablesqlite_stat1sqlite_stat1.CREATE TABLE sqlite_stat1(tbl,idx,stat)Z!%%ytablesqlite_stat3sqlite_stat3/CREATE TABLE sqlite_stat3(tbl,idx,neq,nlt,ndlt,sample)d"--}indexidx_srid_geocolsgeometry_columns0CREATE INDEX idx_srid_geocols ON geometry_columns (srid)#'99indexidx_viewsjoinviews_geometry_columns2CREATE INDEX idx_viewsjoin ON views_geometry_columns (f_table_name, f_geometry_column)k$'9indexidx_virtssridvirts_geometry_columns3CREATE INDEX idx_virtssrid ON virts_geometry_columns (srid)%3+1indexidx_spatial_ref_sysspatial_ref_sys4CREATE UNIQUE INDEX idx_spatial_ref_sys ON spatial_ref_sys (auth_srid, auth_name)    YepsgYNONE NONE I;# -=!geometry_columnstrigger 'geometry_columns_geometry_type_insert' successfully created2013-03-24T13:24:13.466Z3.7.164.1.0-beta  -=!geometry_columnstrigger 'geometry_columns_f_geometry_column_update' successfully created2013-03-24T13:24:13.466Z3.7.164.1.0-beta  -=!geometry_columnstrigger 'geometry_columns_f_geometry_column_insert' successfully created2013-03-24T13:24:13.466Z3.7.164.1.0-beta -=!geometry_columnstrigger 'geometry_columns_f_table_name_update' successfully created2013-03-24T13:24:13.463Z3.7.164.1.0-beta -=!geometry_columnstrigger 'geometry_columns_f_table_name_insert' successfully created2013-03-24T13:24:13.463Z3.7.164.1.0-betaZ-A=!geometry_columnstable successfully created2013-03-24T13:24:13.463Z3.7.164.1.0-betaY+A=!spatial_ref_systable successfully created2013-03-24T13:24:13.461Z3.7.164.1.0-beta xdz =!com2011GeometryGeometry [MULTIPOLYGON,XY,SRID=23032] successfully created2013-03-24T13:25:48.733Z3.7.164.1.0-beta[ +E=!spatial_ref_systable successfully populated2013-03-24T13:24:19.278Z3.7.164.1.0-betan /g=!geom_cols_ref_sysview 'geom_cols_ref_sys' successfully created2013-03-24T13:24:13.468Z3.7.164.1.0-beta -=!geometry_columnstrigger 'geometry_columns_coord_dimension_update' successfully created2013-03-24T13:24:13.468Z3.7.164.1.0-beta -=!geometry_columnstrigger 'geometry_columns_coord_dimension_insert' successfully created2013-03-24T13:24:13.468Z3.7.164.1.0-beta -=!geometry_columnstrigger 'geometry_columns_geometry_type_update' successfully created2013-03-24T13:24:13.468Z3.7.164.1.0-beta yOy~==)o 2013-03-24T13:28:08.407Z2013-03-24T13:28:08.572Zspatialite_guiselect * from com2011 where isvalid(geometry) = 1success" ==)5 2013-03-24T13:27:34.407Z2013-03-24T13:27:46.903Zspatialite_guidelete from com2011 where isvalid(geometry) = 1 and (pk_uid < 1000 or pk_uid > 1200)success==)q 2013-03-24T13:26:38.566Z2013-03-24T13:26:40.966Zspatialite_guiselect * from com2011 where isvalid(geometry) != 1success==)sW2013-03-24T13:26:32.358Z2013-03-24T13:26:32.458Zspatialite_guiselect * from com2011 where is_valid(geometry) != 1SQL error: no such function: is_valid  ==) 2013-03-24T13:25:11.423Z2013-03-24T13:25:11.887Zspatialite_guidelete FROM "spatial_ref_sys" where srid not in (-1, 0, 23032)success. ==)U2013-03-24T13:25:04.409Z2013-03-24T13:25:04.549Zspatialite_guidelete from FROM "spatial_ref_sys" where srid not in (-1, 0, 23032)SQL error: near "FROM": syntax error V[RVt ==)[ 2013-03-24T13:36:59.715Z2013-03-24T13:36:59.776Zspatialite_guidelete from com2011 where pk_uid > 4000success ==)y 2013-03-24T13:35:32.858Z2013-03-24T13:35:33.059Zspatialite_guidelete from com2011 where pk_uid between 1021 and 1098success ==)} 2013-03-24T13:34:47.760Z2013-03-24T13:34:47.803Zspatialite_guiSELECT ROWID, "PK_UID", isvalid(geometry) FROM "com2011"success==)q 2013-03-24T13:28:55.681Z2013-03-24T13:28:55.899Zspatialite_guiselect * from com2011 where isvalid(geometry) != 1success" ==)5 2013-03-24T13:28:34.704Z2013-03-24T13:28:35.221Zspatialite_guidelete from com2011 where isvalid(geometry) = 1 and (pk_uid < 1020 or pk_uid > 1100)success:fQA1AlL )fQA1AlL`fQA1AlL` fQAr1AlLeQAT1AlL eQA-1AlL@eQA@1AlLeQA,1AlLeQAN1AlLeQAe1AlLeQA_1AlL@eQA@K1AlL@eQA:1AlL`eQA@(1AlLeQA1AlLeQA@1AlL eQA;1AlL@eQA1AlLeQA1AlLeQA@L1AlL`}eQA1AlLyeQA1AlLseQA@P1AlL heQA(1AlL ceQA1AlL YeQA@֚1AlLNeQA@1AlLBeQA1AlL@9eQA1AlL/eQA1AlLeQA1AlLeQA1AlLeQA@x1AlL`eQA21AlLdQA@ߘ1AlLdQA1AlLdQA@A1AlL@dQA1AlLdQA@1AlLdQA@1AlLdQAk1AlLdQA1AlLdQAŖ1AlL dQAW1AlLeQA1AlLeQA 1AlL eQA1AlL eQAn1AlLeQA 1AlL@eQA@ۓ1AlL`eQA1AlL`eQA1AlLeQAF1AlL@eQA1AlLeQA1AlLdQA1AlL@dQA@t1AlL`dQAA1AlLdQA@1AlLdQA1AlL`dQA@1AlL@dQA1AlLdQAe1AlLdQA@1Al;LdQA1AlLdQA@>1AlLdQA@1AlL`dQA1AlLdQA1AlLdQA;1AlLdQA1AlLdQA1AlLdQA1AlL`dQA@z1AlL@dQAp1AlLdQAi1AlL dQAc1AlLtdQA^1AlL`]dQA^1AlLHdQAV1AlL5dQAH1AlL 'dQA@51AlLdQA51AlL dQA@1AlLdQA؍1AlL!dQA1AlL@+dQA{1AlL1dQA@G1AlL 9dQA1AlL=dQA1AlLCdQA1AlLJdQA_1AlLMdQA11AlLMdQA@1AlLHdQA1AlL`HdQAi1AlL`PdQA,1AlLZdQA1AlL ^dQA@1AlLZdQAa1AlLadQA@W1AlLmdQA41AlLdQA@81AlL`dQAN1AlL`dQA@l1AlL dQA1AlL eQA1AlL'eQA@1AlL>eQAJ1AlLueQA{1AlLeQA1AlLeQA1AlL`eQA1AlLeQA1AlL`eQAG1AlLeQA1AlL@eQA 1AlL@fQAA1AlLfQAm1AlL8fQA@1AlLPfQAō1AlLlfQA1AlLfQA?1AlLfQAM1AlLfQA@V1AlLfQA1AlLfQA@F1AlL`fQA<1AlLfQA@1AlLfQA[1AlLfQA1AlLgQA1AlL gQA1AlL1gQAd1AlLAgQA@1AlL>gQA@1AlL@0gQA@[1AlL0gQA1AlL@nQA1AlL:nQAǙ1AlLBnQA1AlL InQAw1AlLOnQAJ1AlL@YnQAU1AlL_nQAm1AlLlnQAw1AlLunQA1AlLnQA1AlL nQA1AlLПnQA@1AlLnQA1AlL@nQA@1AlLnQA1AlLnQA1AlL@nQA-1AlLnQA@F1AlLnQA@c1AlLnQA1AlL@nQA1AlLnQAĚ1AlLnQA՚1AlLoQA 1AlL`oQA=1AlLoQAh1AlL!oQAr1AlL`.oQAs1AlLp0oQA@u1AlL`2oQAo1AlL`BoQA1AlLToQAʛ1AlL`_oQA 1AlLnoQA81AlLxoQAL1AlLoQA@G1AlLoQAh1AlLoQA@}1AlLoQA1AlL oQA1AlLoQA@1AlLoQA1AlLoQA̜1AlLoQA՜1AlLpQA1AlL@pQA@1AlL#pQA 1AlL@"pQAU1AlLpQA1AlL pQA1AlL` pQA1AlL #pQA:1AlL!pQAz1AlL pQA@͞1AlL@pQA1AlLoQA@c1AlLDpQA1AlLiQAЯ1AlL@BiQA1AlLEiQAi1AlL@FiQAM1AlLGiQA31AlL`IiQA1AlL@JiQA1AlL@HiQA1AlLBiQA@1AlL;iQA@V1AlL@9iQA81AlL9iQA1AlL:iQA1AlL :iQAҭ1AlLiQA@Y1AlL;iQA21AlL 8iQA@,1AlL@iQA01AlL iQA\1AlLhQA1AlL@hQAr1AlLhQA@e1AlLhQAC1AlLhQA@ 1AlLhQA@1AlLhQA@1AlL hQA1AlLhQAj1AlLhQAG1AlLhQA,1AlLhQA@1AlL hQAۨ1AlCL hQA@1AlLhQA1AlL hQAr1AlLhQA1AlL`hQA1AlLhQA1AlL~hQA 1AlL`thQA1AlLnhQA@ݧ1AlL@ihQA1AlLchQA1AlL`ahQAw1AlL^hQAP1AlL[hQA1AlL@gQA31AlLgQA1AlLgQA1AlLgQA@v1AlLgQAK1AlL gQA@E1AlLgQAA1AlLgQA@D1AlLgQAǣ1AlLgQA@1AlLgQA@1AlLgQA@1AlLgQA1AlL@gQA1AlL gQAw1AlL pgQAi1AlLlgQAL1AlLfgQA1AlL@>gQA!1AlL@gQA1AlL gQAߠ1AlL@gQA̠1AlL`fQAƠ1AlL0fQA1AlLfQA1AlLfQA1AlL fQA1AlL fQA1AlLfQA1AlLfQAO1AlLfQA21AlLfQA1AlLfQA@1AlL@fQA,1AlL3gQA@91AlL=gQAG1AlL IgQA`1AlLsgQAx1AlLgQA1AlL@gQA1AlLgQA@1AlLgQA1AlLgQA1AlLgQA 1AlLgQAK1AlLgQA@1AlLgQA1AlLgQA1AlLgQA1AlL@gQA@"1AlL`gQA(1AlL`gQA,1AlLgQA11AlLhQA=1AlLhQA>1AlLhQA=1AlLhQA@31AlL`(hQA@1AlL@+hQA1AlL/hQAơ1AlL7hQA1AlL@hQAw1AlL QhQAU1AlL `hQA@E1AlL hhQA&1AlL phQA1AlLuhQA1AlL|hQAڠ1AlLhQA@1AlLhQA1AlLhQA@K1AlLhQA1AlL@hQA1AlL@~hQA1AlLhQA@1AlL hQAT1AlLhQA1AlLhQA@1AlL hQAv1AlL hQA@F1AlLhQA61AlL@hQA@$1AlL`hQA1AlL`whQA1AlLhhQA̝1AlL@\hQA1AlLOhQA1AlLDhQA~1AlL=hQAf1AlL5hQAB1AlL@*hQA1AlL hQA1AlL@hQA1AlL`hQA@ϝ1AlL gQA1AlL gQA1AlLgQA@ϝ1AlLgQA1AlLgQA1AlLgQAx1AlLEgQA@u1AlLBgQA1AlL >gQAם1AlL4gQA 1AlL +gQAC1AlL"gQA@1AlLgQA1AlLgQA1AlLgQAO1AlLfQAp1AlLfQA1AlL fQA1AlL`fQAҟ1AlLfQAE`;AL tISApI <AmgISAQ2<Av`ISAp;An @_ISAl);AlLLISApu<A(R1ISAl)=An `ISAA=Ar<ISAj=A` ISA/>A(RHSA,?A}HSAp?A}HSAp?AL @HSAq@A}HSA,@AHSApD@A*HSACh@A HSA/`@ANHSAP@AlLHSAPc`o@Ag HSAƟz@A(RHSA_@AHSA~hAAr<@tHSAmBAmWHSAm` CAlLMHSAPCAr<`KHSAQBA& DHSApI >BA>HSAl)EBA! ;HSAZCA`(HSAc BA$`HSA5@A`HSA v"m@A! `GSA06~ AAHGSAdAAlLGSA<@BA$@GSAPxAAg GSAAAGSA5_?AAH@GSAP@ANGSASAA6GSA/`AA*GSA+@A! `GSAP>?AGSA`?A }GSAZM@AhGSAm @A``GSAC@A6[GSA ޲@A WGSAc??An IGSA/~>A! `6GSA@H=A6+GSAp@=A6$GSAC}?A(R GSAP??A6GSAj>AH FSA _;>AH FSAmX=A(RFSA 6<A&@FSAP@E<A} FSAp<Ag FSAc:AlLFSAP9AFSA^N9An FFSAV8A! FSA 6:8AHFSAl7A$@FSA+8;L7AJ- wFSA*6AmFSA 5AL `FSA5A*FSA_4A6FSAjN4Ar<@FSA06~3AFSAPc =3A6FSAm`2AH@FSApIߣx2AzFSAQ1A$@FSAp1A$@FSA0?@0AmFSA_0AmFSAc)/ANFSA0?--ANFSAC -Ar<FSAc,A6FSAp,AFSA/+A$FSA5+A$`FSA`+A&@FSAP+AlLFSAPc+Ag FSAPc !+AL @FSA#*AFSA v"t*AlLFSAj?$*Ar<FSAp~(A*}FSAm4'ANxFSA(&AH FSA%A! `FSA%Am`FSA%Ar<FSApI %AFSApo%Ag FSA 6#ANFSApI#AFSAC#Ar<FSAj9#AmFSA/`"AFSA"A*FSAPـZ"Ag FSAP?3"A@FSAP!ANFSAp]Y!A FSA!A}FSAP A FSAP$ AL `FSA#@A& FSACA(RGSAAGSA,A(R GSAp'AGSA#_U Ar<@GSAq@!AGSA "Ar<GSA,#A*GSAc?$AmGSAP?%A6#GSAd&AG 'GSAp>R&A(GSAPx_%A! `6GSA,%A! `>GSAPx<%A$`GGSA`$APGSAp$A ]GSAA$Ar<jGSA,8$A(RsGSA@H$A&@{GSA#AHGSA/`"A GSAQ"AGSAl)_>"ANGSA0?_!A& GSA  AHSA#_9 A.HSA v"AmPHSA<BA} qHSApuAHsHSA0? APxHSAP' Am`yHSA` AHSAl) A(RHSA0? ANHSA/` A! HSApӿ=!A}HSAPc "AHSA_!A*HSA0? An ISA5_?"A ISAp!A8ISA`!A@TISAPg A! lISAQ Ar<zISA _A&`ISA fAZĢISAc?AISAƟ3AH@ISApAmISA AL `ISA ^AISA~A*ISA,ANISAAg ISAP.Ag ISA0?'A@ISAp]_A`ISA5A`JSAC_LA}JSAQA@JSApAJSAp] A*JSAjr A$`JSA Am`!JSA?!A*%JSA0?#AN9JSA`$A>JSA06~`'A$NJSA`^(A} QJSA )Ag KJSA)A}JJSAm&+An `NJSAp,Am`QJSAPc`(,AlLTJSAj?2,A$@XJSA5_M,A^JSAl)ߓ,Ar<bJSA#_-A$fJSAp]ߒ-A&@kJSAQ-Ag bJSAPc-Ag YJSAƟ.AN_JSAm_/A6cJSA`/AgJSA#80Ag iJSAP?0A(RjJSA0A}jJSAP]1AgJSA v"1A$@hJSAC_L2AL `mJSAZ 2ApJSAq@2A(RqJSAZ 3Ag rJSA/E3A& tJSA@H|3AlLuJSAP3AmxJSAp3A&@{JSA#߸3A*~JSA#߸3AH@JSAC3A*JSAc3AmJSA 63AJSAp3AmJSAm 3Ar<`JSApI3A@JSA`3AH JSAp]_3Ag JSA~h3A6JSA v"m3A(RJSAp]_3AlLJSA`3An @JSA0?3AL JSA06~3AJSA3Ar<JSAl)T4A(RJSA<4AJSA@H_4A$JSA4A JSA_4An `JSAC4AJSA`4AL @JSAPc4Ar<`{JSAc4AwJSA<{5AxJSA,6A6{JSA _t6A} JSA<6AJSA06~`6A JSAZ6AJSA0?6A(RJSA6A$JSApD7AH@JSA 6s7Ag JSA_7A(RJSApIZ8A&@JSA`8Ag JSAp]_=9Am`JSA 2o 3HhSannicandro di Bari @= A[` Y41AlL dQA@ɴ1AlLDpQA|iҟ1AlLfQA@1AlL@fQA1AlLfQA@ӟ1AlL@fQA@ǟ1AlLfQA1AlLfQA1AlLfQA@1AlLfQAS1AlLfQA@+1AlL fQA 1AlLzfQA@1AlLlfQA1AlL@ifQA@ٞ1AlLLfQA1AlL :9 b|  Cressa @v4gA[YC_LANxFSAm` CA&@JSA|i(p]_=9Am`JSA5_M9A JSAp]o9A`JSAP>:A}zJSA߹:A`|JSAl):A& |JSAZ:An xJSA:A6kJSA5:A6cJSAl)_:A$`_JSAC߯:AVJSA#ߪ:A$NJSAPx:AH JJSAPx:AL @FJSA:Am@JSA:A&`*JSA:AN!JSA,?;A$@ JSAVz;AJSAj;A JSAp]_;AJSA v"<A(RISAp]_=An ISAP?=AlLISACv>AISA5>A6ISA^y>Am`ISAq@=AlLISAC6=A`ISAc<A(RISAH<AL @ISA ,<A&`ISAp] <AISA$<A!@ISA<AISAƟ;A6ISA@Q;An @ISA?;A@ISAl);AISA@H_;AL `}ISAZ`;A&@{ISADK&A*@bRAc&A bRAp羘&AN@CRAC&AL 8RAc~&A*0RAqN&A(R &RA Ar<RAq2A$RAPA6@RA/6A$RA v" ARAqA(RRAAn RAA6RAPcnARA ^ARA v"An RAj?A$RA AmRA v"@tARA ARAPc<A`RA0?ApRAC_hA6 RA0?A6 RA`?{AHRAAN@RA~A(R ~RA`?A}uRAކAlLgRAjqAL aRAP AWRA Ag `MRA@H AXRA0?Q An TRA@Hs AlL`HRA^ A$JRA^AHMRAP1JwAr<TRA HA}URA"Ar< URA^xAn RRA`PA$RRAP5AQRA$A6@PRAA! IRAL`A*@:RApmA! )RA#AHRAp]AlL`RA^A&RAARA#_AlL`RAp]_AlLRAVAg @RA#A}RA<3A`RA<3AL RA0?4A*`RAC<ARAdAr<RA5bAlL@RA@Q?^AmRAj?AL RAP?A}RA0?@A*@RA/`Ar<RA06~ARAZ A*@RA@Q^Am|RA@Q,ArRAPAmlRAAr<gRAVyAlL@aRACA! YRA,An SRA0?@fAr<NRAP@6A6@HRApIAmDRA@HAL @RAA*RACA "RAp?AHRAA&RA<^Ag @RA+Ag RA5_Ag RAA(R RA@H_tAr<RA~.A`RAp AmܿRAjA$ҿRAV@AN ̿RA5A6 ɿRAl)_Am ÿRApӿgA*`RA@QeAHRAP5A}RA^ARAA6 RAPGARA#_An RA/`AzRAPGAjRAPAr< eRAZ`AXRAAAr<ORAP?A}`FRA~A(R@ERA,An BMRApI`A! ARA`A>RA@QA*8RAZ`pAm4RAڞcA3RApI /A! (RAQAm #RAPAr<RAA! RA v"@An RAl)hARA AA(R@ RApIAN@RAZ`ANRA0?A$RAq#Ar<RAp>nA*`RA@QAg `RApA! RA 6AlL`RAZ`A$ҾRAAA! ɾRA,FA(R@RAjARA,AHRAA}RAp]A6 RAPcgA}`RA v"A(R ~RA@HA6@xRA/`A}uRA AsRAV@AN@sRAA@tRAp]_YAvRA@)Ar<vRAPc`Ag @vRA@HA}uRA ^A&uRA v" AvRAPcAL xRA v"{An zRA@A!}RA A(RRAAg RA`?A! RAPc`nA$RAl) An RAqA}`RAp>CAr<RA 6?Ar<RA,?Ag @RAp]uA(R@RA`?A$RA/ ARAPxmA$RA`Ar< RApA}RApIA(R@RACDAn RA,?Ar< RApA&RAP?uAlLoRA[ANg @fRA̠VAL aRApA! aRAm^A! @_RA`?{A[RA}AL XRA`?{AN 4RAyA}`RA}A! RA@Am RAp]Ar<RAm%Ar<RAƟA RA06~`5Ag @RA,?A! RA,pA}@RAZ A@RApI ZA&RA`?AHRA#?A(RRAA}`RAA&RAm tARAPc A$RAcA RAڞA RAp?A! RA/A&RAQA$RAZA RAV@A}RApӿARA @A! RA A@RAl)A}@RAl)AlL@RAP?kA RA06~ .A@RAA$ RA?/A*`RA>ARA/SAg `RAcAL RApI hA}RAP*A(R RAPxA!RAwARA/6A$RACARAPc`A(R@RA v"A`#RAA`$RA]A`#RA@A RAPA RAQ@qARA AHRAj1A`RA v"@ARAPAL RApA`RAl)_A}RAcA(RRAA6@ RAPOAL  RAjA@$RA>AlL@)RAVAg /RAP?An 3RAm^A6`7RA`A8RA@H_AlL@9RAuA9RAP@oAmRAQAH=RAFA$;RA<@AL 8RAA}`6RACAN@RA/`A&RAqA6 RAOARA@Q?^Ag RAp]_AHRA@A`RA v"sA! RASAHRA5_An ˾RAmA! @ϾRA dA$ӾRAݮAL پRApӿA@RAm`&A(RRAP@A}RAAN RApIīARAP4AmRA 6A! @RA`3An RApAlL@RAcA RA v":A*RAqA! @RAPA&RAP>AlL@)RAVA}`6RAp]<A?RAcA! @ORA@AZRAPc AcRAp?Ag wRAްA! RAm XAN RA,??A`RAm`&An RA`ARAm A`RApI AʿRApI`AʿRAp]ߟA˿RA06~ A! @ϿRA IAr<ֿRAZARA v"{AHRAP?kAL RA ΜA! RA ^$AH RA0?BAHRA@HߞA$#RAmWA(R 6RA v"НAFRAPcAr<NRA5_0An jRA@QWAH|RAcARAPc`'AlL@RAjUA$RA _Ar<RAl)7AN@RAp~ʠAL RA 6?lAg RA06~` A RAPxA*`RA+Ar<RA0?An RAV@VA&RA_dAL RAARA ޕAL RA@H_A}`RAʧA* RAp]A`"RA v"A$"RA`lA`#RA06~ߩA6`'RAp>|A&-RA# Am4RA^A! @?RA`?A*@JRAAORAQbAr< URA0?AH\RAQ?A*@bRA@H_tA6`gRACAn lRA5pAr<~RA ^A`RA;5An QRAqkA`RA5~A! RAA}RA v"ްA(RRA@QeA! RAp]ARA@Q?^An RA/ ARA06~ .ARAPXARAj?#A*RAl)ӴAn RACKAn RA<A}RApIҵAmRAVAA&RA,Ag `RAV9A$RAQA RAPc` ARA v"A@RAA! @RAڞA6@RA3A! @RA@QȺAmRAp]CAmRAP?A$RAPѼA$RA#ԽA@RA#_AmRA, A`RAVARAu~KA RACA`RAPc` An RA`AL RAm%A6`RA/SA&RAP?Ag `RA/ wAg `RAPAg RAjAlL@RAA*@RA]A RA 6AL RApI`A6@RAp?A! RAuAL RAZAL RAcSARAPAHRA`ARA5ARA AN@RAPXARA AN@RADAm RAQjAN@RAQ@ARAzAg RAƟ$An RAZARAƟA6@RA_AlRL`RAm Ar<RA,?Ar< RAPyA! RAl)_>A RAAr< RAp'AL RA@Am RAVA6`RAA(RRA[ARA,An RA@H_A}RA`A*` RAjA&RA 6A!RA,?A*@RA v"An #RAQ?A*RApA/RAu~AN5RAC_A`A}|RA ^kA6@RACA`RAcAn RAmtARA06~`A$RA06~ A(R@RA _A}`RASA$RAPA RApIAHRAARAl)_>An RAPA`RAjAn RAAr<RAPc`ARAV2AN@RAAmRA  A! @RA^ AL RA 6 A$RAZ AmRA,wA(RRAV@AL RAQ@*A$RA;CAr< RA#A`RAaARAA(R@RA^\A`RA@H_A RAPAlL@ RAД+CAz 1iRAqoArRAۼA,#RA̟Al,RA~xA*3RA=A==RA@-A{nDRA'skA0fURAÄ`AlRAl)hAn qRA 6A! yRA A`|RAqARA0?AHRAT AmRA5 A`RA r!Am RAPx!A}`RA]"ARAp~"AL RAPc#A$RA<@#A(R RA>#Am RA$An RA#_8$A6`RA,E$Ag @RAU$AN@RAC_v$A! RAc?$Ar<RAq$ARA0?$A! RA%Ag `RA ;%A$RA#?%AN RA,7%A!RAm%%ARA ^$%A}RA6%A! RAQT%ARAjq%An RA%An RAP%AHRAC_&A&RAPcC&ANRA v"&ARAp&ARAl)&A*RA`'An RAj?N'AN RA06~`'Ag RA`'A$RAC'ANRA v"(A6 RA#N(A@RAp>|(ARA UK fBernezzo @3}AxWwkY ^$A$RAPx-ANRA|iop>|(ARA#_(A&RAP(A(R@RAp;)An RACg)A RA v")AL RAQ)Ag `RAl))ARA#)ARA`)A*@RA<*An RA?L*An RAk*A&RAQ@*A*`RA0_*An RAl)_*A&RAq*A RAZ`*A RA v"B+A(R@RA+An RA~+AlL@RAz+ARA,*A}}RA0?@*Am {RA`/k*AL lRA 6)AlL_RAPG+Ar< MRAp+A`LRAP,Ag ORA/`,A! HRA@,Am ;RA`-AlL@1RAPxC-Ag `%RAs-A*`RAPx-A6`RA/-ARAPx-ANRAj?-An RA`,A(R RA+AlL@RAP*ARA,T*AL RAPx-*An RAPc'*Ar< RAl)!*A@|RAV@)A*@rRAp)A6 aRA,(A&eRAV@'AmdRAQ@JUA}AL hRA`_AcRA?AaRACA@YRAm AmTRA 6?A&ORA5TAr<FRA0?AL @RA#jAn :RA~A:RAbAmAg `RA@HAN`RAA`RA0?A! yRA#8AN`rRAl)A`tRAp]AN@sRAm`&A! qRApI ZA6`oRAA*@jRA06~CAn bRAC(AL XRAAKRAA! @RACAN 4RAVAN`2RAmAn 2RA@QeAn 3RAA}4RACvAg 4RApIDA(R@5RAm`A&7RAj?Ar<6RA5A(R7RA v"@IA 2RA5_A! @'RA 6?3An RAPAr< RAPA! RA06~A@RA 6A(R RA ޽A@RACAL  RAp]_ٻAg @RA0?'ARAZ`AlLRApoA!RApRA&RAjܹAN@RAl)_LAL RAAg @RA/ [An RA`Ag @RApAN RAAHRAQ\Ag RA`?AlLRAjA(R@RA`A$RAvAg @RA;AlLRACA6@RAC_AHRAjUA! RA_Ag RAARA;'ARAV@A@RA+An RAAHRA@HWA6 RAp]_A*@RAA`RAޣAn RApRA6 RAPـA$RA#A@RA 6A(R@RAp?A$RA<ީA&RAp]ĩARAcARAjARAVA*RA 6VAlL`RA,?A6@RA ЧA#RAPA+RA0?'A}5WRA`?A&=RA 6AAlLFRA5A(RORAm`AHVRAP9Ar<^RA/ڤAr< eRA߹Ag lRAPAsRA_AHuRAVϤA&uRAPcgAHvRA#_A(R@uRAPx_AsRA@H_;A}tRAiA}tRApnA&}RAp@~AHRA^Ag RA@QAN@RAVϧARA@An RA,?jAL RAZ 1An RAp]A&RAc?AL RA@HWAn RA _ץA!RA06~ARA_:ARA0?@JA&RA0?CAg @RA 6AHRA#8A&RA}A!RAC߄AHRAVlA}RA0?fAHRAoA`RA@QIAL RApIA&RAPcgAHRAq*Ar< RAcARA<A`#RApIA)RA 6VA&/RAA7RAc?MA&=RAPA&?RAPcABRA@QA`KRAPA@QRAAmTRAPQA&URA@QɣA6@XRAPDAr< ]RA`AaRAcAlL`hRAjqA6@pRApLAzRA5_?ARAC A(RRA̠ȡARAڞAX! @RAPc5A`RA0?mA6@RAA(RRAPߡA@RAV@A*@RAZAL  RAQܡAN@RA`{AHRAp@EAlLRAARA v"&A@RA#8ARA^2Ar<RA_+Ar< RA@QA$RAp羵A6 RA<A}`RAp>nA`RA/SAlLRAPcA! @RA2ARAPA! RA~A(R RA/ ۡA&RAPcAHRAP?uA*`RApӿARA2ARA#A}`RAm ʤARApJAN`RAp?A@RAp]ARAYA$RAp]ʦAg RAhARAc?A}RAAA@RA,ƨA}`RAm fAn RA06~AN@RAA&RAZARA/aA! RACīAg RAPc =A! RAp~A*RAl)A}RAP'ARAP?Ag @RA@A(RRA@HARAjܮAmRAयA}RAp]<AHRA^Ag RAPUAlL`RAARAZiA&RAARA,?1AmRA v"A(RRAZA$RAcAlL`RA ޲A$RAQA}RA 6A6 RA/AN RAV3A RAҼA! @RAOAN@RAp@A6 !RAPAm$RA#A*@*RAp~AlL/RA _eA6 1RAmtAL  7RAP?A;RA^A`CRA0?Am KRAZbA!MRACA! @ORAPxA!URAZ`An YRAC_!A}]RA`?A$bRAAr< eRAƟAAL hRAޱA&nRAp~JA6 qRA#_AL qRAPAg `uRA06~`'A&uRA,?jAHvRA@QAn zRAPkAg |RAp~Ag @~RA@HPAL xRA_AwRAq@A! yRAZ7An {RAl)_AyRAPA@yRA v"A*`yRA,?1A{RAPxtA&RAZ AlL~RA %L Bonvicino @ɶF>A[E]XYPcA*@RAZA&RA|ilZ AlL~RAV9AzRA@HA&}RAPxߑA`|RA#_AxRA,"A6`wRAPxAr<vRA0?AL xRA0?'AlLwRAQA rRAp]nA(RoRAj?AN@kRAm`AN dRAl)aA`\RApA$RRA`PA*`IRAPcAL HRAmAg @FRApJAN@CRApI A(R >RAAr< =RA v"A*@*RAcAHRA^A*@RApI A@RAQ@qA$ RA7A&RAVOA}RA ^AN@RAl)AlLRAQA`RA/`~ARAZ Ar< RA@QA! RA _WAN@RA̠A@RAm`Am RAP?KAN`RAA&RAPA(RAq/A(R RAm4AxRAl)EA$sRA_VA}eRAV+An ARA_T[*A;9I[SA8 f*Anl[SAHiHf*A.d& [SA(sx#f*Av%[SA.f*Arº[SAκ5f*AX[SA8uDf*Adk[SAA7Bf*A[SA a6f*A ~[SA+f*Aǧ[SAxzf*ALo9[SATf*AC[SAx< f*A0R[SA@8f*A\?[SAe*AV[SAؘ\(e*Ad[SA8"e*Av%[SAe*AZ[SAo"e*A:DTK[SA#Ze*Al![SAxse*AJ[SA@>e*Aع[SARe*A$I$[SAШEe*A]6[SAawe*A4v:[SA&fe*A߻[SAxXe*A4T=+[SAuVe*A5ʾ[SAMNe*A6[SAS^a*AY\SA؏a*ASΙ!\SAş$a*AR%#\SAHa*A~?%\SAh^a*AJO &\SA0ɆQa*A3(\SA+a*AT+)\SAp{a*AܠH+\SAe2ya*AV-\SA$ia*AH.\SAO[a*AIf[0\SAX |Ma*A1\SA =a*AC3\SAHq*a*AN6B3\SAxs0a*A5\SAu!a*A6E7\SA_9a*A=9\SA@!Ea*A,:\SA0|$`*A*Z<\SAh`*AO<\SAş`*A1J?\SANj`*AFDA\SAD`*A_aC\SA `*AXD\SA`bi`*AEF\SA`*AH\]SA`7*`*A0.&K\SA`*A~>BK\SAhZ,`*A̠RL\SA`*AN\SAH<^d`*AeP\SA@M`*A\+S\SA $ow`*AWT\SAHcvp`*A(RU\SAތg`*A3V\SA(ad%_`*AnX\SAV`*AHY\SAU@K`*AnU/Z\SA)>`*AF5Z\SA >9`*Aa \\SA1`*A9}]\SAC,>'`*A&,`\SA`*A&a\SA0`*AdeRc\SAh2 `*Aj!yd\SA@Ow`*Aٗe\SA`@_*A`J]*A|*\SAxow]*A&@\SA(]*Aq_\SA]*AЬ\SA+ ]*A~\SA{<]*Au%\SAΪ]*A 3\SAތ]*AHq9\SA,䭎]*AsM\SA@׀]*AH\SA%]*A\SAtVz]*A,9\SA8~- q]*A`J\SA`e]*A \SAxՈS]*A8\SA$D]*AJ\SA(l8]*At\SAMb,]*A}w \SA_"]*Apؽ\SA]*AJ\SAm]*A\SA qM\*At~H\SA@6F\*ANo\SA6D\*A\SApKi9\*A7\SAX\*A֙b\SA})\*AU\SA J\*Aʊ\SA`8\*A& \SA[ϊ\*A\SA Y\*At\SA_Ar\*Ar\SA`;`\*Aٗv\SAR\*Aɮ\SAhD$D\*A$I\SA a3\*AV/7"\SAh٧!\*Aڀ\SAx\*A~Up\SAѡ\*A 7t!\SA FƦ\*A\SAxx[*AĜ\SAx[*A9\SA[*AH0\SA[*ATo\SAn<[*A2K\SAତ[*Ap \SA8[*A`%\SA[*A:%\SAP x[*Aw\SȀ[[*AL\SAX%}[*AU]\SAu p[*Ahp\SA e[*AJ7\SAH#f[*A}w5\SA]X[*A*\SAL[*AG;\SAN=[*A"\SA~,2[*ARj\SA08([*AN\SAҗ[*Agy\SAX&[_*AY\SAԪ[*A$\SA`ڼZ*A.ӧ\SA^Z*Ah\SA8~-kZ*A`Y\SAMZ*A\SAIZ*A3H\SA_9޹Z*AkF\SApB9Z*Ai \SAZ*A24,\SAZ*AkcF\SAKؚZ*A~>B/\SAP`~Z*AԻ\SAZ*Ahes{\SA+k}Z*A\SAHtZ*A+P\SA2iZ*A@\SAe)_Z*AB\SA@SZ*AcI\SAhRȱDZ*A\SAXؑ>Z*A\SA(h+Z*A:ϕ\SAP`Z*Ah]SAhIZ*Av#\SA}Z*AN]SAY*Au,]SA|:Y*A?#]SAX4Y*AZBf]SA0zY*A8;]SAJCY*ADvo]SA(&6Y*Ap8]SAo"Y*A`]SA0Y*A \( ]SA@OY*Auˤ ]SAC,~qY*AJD&]SA(_Y*Adef]SA@A?Y*Aڀ]SAA4Y*AFh|M]SAh%Y*AY ]SA3Y*A逶]SAȯ Y*A>]SAo"vX*AR]SAX*A]SA8*X*A{]SA X%X*Ab"]SAP>X*AҲf]SAHR@X*Ad]SAX*A]SAXG X*Apz]SAX*AP]SAmX*A궼]SA8~-+{X*A8]SAx|qX*ADv]SAxcX*A"]SAʫWX*A~w]SA^MX*Av]SAJ#CX*A0 ,]SA@X*A~C]SA{LX*A k]SAHWX*A]SApWX*Ag]SA0cX*AZ?}]SApcX*AO]SAkX*ALz]SAq`X*AN]SAF5(X*A]SA0|dX*A]SAF5pX*AI ]SApKiYgX*Ax]SAYX*A`J0 ]SA@OWLX*A> ]SA@>CX*AaJ"]SA_C\SAxe*AR(\SA8' e*A ,\SA 4Xe*AUc\SATe*Ag\SA4e*AE\SAMe*A :\SA]e*Aw\SA$2f*A(R\aSA_bf*A\SA(f*A\SA2f*AFy4\SAHXg*Anl4\SA#ZJg*AS\SAPg*A#%\SApog*AA8\SAHh*AL.\SA{7h*A(R\SApoKEh*AJ\SA,uh*A& %\SAغY7i*Ad1bE\SADyci*Ar<\SA4Qi*Aq\SAdKZi*AL  \SAi*Ar<\SADbi*A(R|\SAi*A&t\SADbj*A`r\SA{7j*A(Rj\SADbBj*Ai\SAtj*A(Ra\SAj*A4T\SAq~j*A`/R\SA8*j*AP\SA Q$j*A֎(N\SArk*A&@:\SAk*AԻ5\SAvNk*A4\SAk*ABp0\SA##k*AA/\SABN{k*Ap-\SA l*A}(\SAXG+,l*Au8%\SAHl;l*AJ#\SAYl*Ar\SȀ>m*Aet \SAhXm*AYqt[SA眛m*Aet[SA8~-Xn*Aet[SA ^3~n*ABn[SA2en*AiZ[SA ^ o*Ag[SAyh|o*ABnT[SAo*Anl[SA眛o*Ae[SA ^3$p*AbS_T[SA@LGp*A]4[SA0:p*Aet[SA0:q*A]4[SA0llq*A7RT[SA&r*AiZ[SAr*A<"Wt[SA(sxQs*A=dT[SA`t*Agr[SA't*Aen[SAt*A^Si[SA䜅u*A=dTX[SA+u*AcaQ[SAX6v*A`D[SA`/dv*AN4?[SADŽov*Aɮ6>[SAv*A^S:[SA4v*Ab`49[SAzv*Aie8[SAv*AlA=6[SAak6w*ADM0[SA@!lw*A ~u*[SAw*AN[SA4w*A [SA$r$x*A[SAh9U[x*Aed[SA[fx*Atg[SAx/x*AL[SA@x*AS[SAP`x*Ar<`[SAPx*A[zR[SAQey*AL @[SA@LG|y*AX[SA(⠟y*AG[SA xy*AL 8[SA(&y*AЇZSAH<^y*Az3ZSAnz*A#5ZSA(2z*AVףZSA,MWz*ALZSAyhz*A`VZSA8bz*Ag `ZSA T{*AAZSAb{*A7.ZSAt{*AZSAgT<|*A8KxZSAhtH}*A>MjZSA0CB}*A.YSZSA=k}*A~񽕏ZSA Fƙ}*AjZSAq+}*ApZSA a\~*AJ܉ZSAP&~*A\̥ZSAKa~*APքZSAxų~*AYU~ZSADyb~*Ar<`{ZSAPU~*AtuZSA*AoZSA1K*A֎DfZSAfD*AЩ>cZSAm@*AFy`ZSAe=*A^ZSA=*A[ZSA Y*A_a7RZSA b*A, PZSAH<^i*A NZSA9*Afj4MZSAx*A5MZSA0/~*ANZSA8u*ARZSAG*AvMRZSA8J*AQZSAHϰF*AJZSApKi*AaJZSAκ*AJZSAQ*AIZSAp'*A ~HZSAP}=*Az3vFZSApKiQ*A$gDZSA$2k*A?ZSA8**A|:ZSAc*AS2ZSAП@.*A"%,ZSAVF*A뫵)ZSA ^L*A|5ZSAȦ9Q*A5ZSA z[*Ap3ZSASh*ARjZSA`*A%`6 ZSA蚇O*AZZSA *Ar’YSA{B*ASYSAPz~*Aqu6YSA+ *A{nYSAr%*Ag YSAJCr*AYSAh*ASYSA_9*A5YSA a*ALz|YSA@*J *A*YSAaB*AԅYSAP8*AR%YSAo"y*ALYSA *AYSAQ*AYSAP`)*AL YSAu*AYSAκ*A YSA*AmtYSADy8*AL YSAP*AlYSA $/t*AWFYYSA5n*A$YSA8*A YSA0 *A4þCYSAXIǺ*AXYSAh~*AJDYSA F*Au˴YSA퉈*AsYSA *ASYSADy[*A(RYSA#C*A_aYSAX*AhCvpYSAκ☋*AYSA*AiZԒYSA]V*A ~YSAp)lb*A(RYSA(sx䤌*A2YSAӌ*AYSAP,u,9*Ax:+YSAe6*A&YSAH1*AYSA`@rc*A&YSA8b*A YSAbI*Ag YSAp&r*AYSA8b*A@YSAh0*AVs1YSAX 7*AYSA[*AZYSACϢ*Az0YSAp ₁*Ag @YSAD*A@YSAb*AYSA)6*AAYSAǂ*A(RYSAr*A`YSApc*A(0 YSAP`>*A@YSAֵ*A;YSA~,Ī*A27YSA̪*A:fQZYSA?n*AEYSA&M*A8YSA*&X*A{nYSAШE]*AZSAP`*ANZSA*ANZSA0/*A ZSAκf*AL ZSApBߙ*A|6sYSA8:3*AlYSAެ*A01OYSAM*AnYSA60*AbYSA8a@*Ar<dYeSA 3D*AtYSA<*AYSAyh[5*AL YSA0cl(*AJ- YSAQ*AYSADy*ATYSAެ*AtŵYSA[ *A(RYSA(.*ANYSA4*AMM4YSA *A(RYSA9xͮ*A|YSA*AYSA<*A YSAl*Ag |YSAے*AwYSA8*AL rYSA)L*A[ [YSAr߲*A&@RYSAے(*A`LYSAj`*Ar^+HYSAp *AL @@YSAI*A;YSAκʴ*A&4YSAp V*A`,YSAR7b*ArZ+YSA}*A]6(YSA$*A@'YSAb^*An YSA`;*AL5YSA*AYSA[0*A`YSAκX*AL  YSAhtŨշ*A\XYSAՂ*AYSAՂ3*A YSAn߸*At~XSA{*Ag XSAHR*A(0XSA0l /*AsXSApmfT*ABXSA*AcXSA(f*AXSA@Nȹ*AЩZXSA8ٹ*A42@XSAqV*AXSA8"Q*A[5XSAPW*AN XSA0'*A̠RSXSAκ&*AL XSA(~*AYqXSA*A, XSAyh*A{XSA`ƻ*AJxXSAP`"*AXSA*A*XSAԪV*A~XSA\*AXSA(j*A44XSAͼ*A>b@uXSA`@*A@sXSA3i*AV/7eXSAr*AhyMXSAhL*A§fDXSA`b*Av#BXSAxS*AcM7XSApmf*Az/XSA&=*AxN+*XSA`G*Ag XSA0|k*Af1XSA ۿ*AL `WSAQ*A WSAhЌ/*An @WSA}*ApaWSA/*AWSAs*AWSA0Zm*Ag `WSA8**AL WSAhЌ*AWSAh*A nWSA> *Ag `YWSA> *Ag EWSA7*An `*WSA0Z.*AWSA_*AVSA@w*Ag @VSA8**AL VSAQ*AVSAp]=*AyCVSAw*An VSA*AVSAP}J*Aԅ±VSA(H-d*A6ENVSAH`*A9}wVSA> *An @tVSAp)lI*A@`VSA>*AL `XVSA*A4v:UVSA8a*AQVSA 6N*AQ OVSAxo&*A(R@CVSAXؑF{*Ax,.(VSAu*Ag %VSADy*AL @VSAQ*A VSAH#*AVSAw*Ag VSAH*AZVSAo"v'*AVSA:.*AZĚVSAu G*A`USAH#P*AUSADB*An `USATw*AL USA> ^*AUSA*AJƳUSA`*A USA_*A(RUSAh$*Afj(}USApo+|*A8VtUSAw*A! gUSA0Z y*AL `@USA, *A(RUSAj*Ag TSAP`*A! TSAw*An TSA_L*A:fTSAxowg*A`TSA4J*A@9iTSAxow*AdTSAށ]*A,UTSA3*An ETSAP`*An @$TSAޣz*A/TSA,m*ATSAu 8*A! SSA*A@SSA(w*ASSA*ASSAU@H*A,SSADy*ASSAG*APaSSA9*A SSA8'*A<"WSSA@*Ag SSA5*AaSSAQ*ASSAV*A"ْSSA(*ANSSA0*AJ- ~SSAr(*AN`qSSAx*AwlSSA#S*AL  QSSAr c*AL `GSSAPW*A`BQSAp %*Ag QSAǂP*AL  QSA(.*A@QSA`@*A8QSA?*A-9QSAΘe*AnuQSAxs*AQSA*A2QSA@w*A&QSA*AgTQSAH*ArtRSA*A&RSAxe*Ar<RSAhd8*A8͔RSA_a*AIf/RSA&*A6!RSAPz~*A 'RSAm^*A6]Ǯ-RSAA*A(3RSAgT>*AvERSA*Ak|!RSAP *AdgwRSA&*AbS_RSAκ*ARSA@A*Ahj RSAzF*A QSAp=*AgQSATb*ADQSAV*AWQSAxS*AdgwQSA講*A3QSA/*AK"uQSAy*A3QSAq*A3QSAPWbG*AQSA;2*AQSA@#!*ARjQSA$r"*AtQSAhd*At4QSA(*A.QSAxN*AQSA(h*AhQSA} *A$kӆQSA*AZ8}QSAh[R~*A}wzQSAe*A@muQSA(u{;*AehQSAhdܰ*A *AlPSAxf*APXPSA 7*Aܠ@PSAfvY*A 4PSA`*APSA*A<\6OSA V*AT&OSA qM=l*AOSA`@U*Ar< OSA@eѽ*A$OSA(ǽ*Ar^OSAr*A OSA Gk*AOSA`@rλ*ANOSA(adT*Aj{FOSA`ڼM*A5OSAٻ*Ap}}OSAKؚQ*A[z"jOSA`@r*AaOSA*AL bOSA⵺*A\XYOSAPpoz*AmLOSAHfh*AܠKOSA*A&LOSA Vչ*Anw6LOSA+*ABntNOSA,H*A POSAhC1*Av%QOSA"|+*ABpROSAĸ*A(R`UOSA]v*A"TOSA( *Ar<VOSA[*A*WOSA*AWOSA*Ajg *AkOSA qM*A24OSAPW*A@OSA=&*A4OSAk6*AFFVOSA 6ND*A>MrOSAXR*A"OSAxE^*A*}*OSAVf*A~+OSA蚇/p*AVEOSA2`~*AtOSA*AOSAp䋚*A,OSA`-|*AЩܲOSA*A{nOSA+(*AOSA*ALOSA`7*Ӽ*AdyOSAsƴ*Ar<OSAp{մk*AG]ѮOSA*Az9OSA4*A OSAt*AOSA0Z *AzyOSA8ۚ *A'OSAП`/*AgOSAxM@<*A?sOSAşDG*A§OSA@>A8*AOSA0 n*AOSAXrA{*A>+OSA*A~>BOSAf*AT.OSA#Z.*AFxOSAp=*Az3¿OSA0|*AOSATWŵ*AOSAqյ*AҨOSA*Aw1OSAȄ*AOSAo9*APTOSA@Ȁ*A4ڌOSA?E*A.d&OSAVU*A5IOSA@M.g*AWFuOSA"{*AWOSAPu*AUOSAh*AzOSA'*A(OSAX*ABpOSA8u˫*A,9OSA@;x*A4v:OSAX*AƎ>|OSA8"'*A>+OSA+ *A|OSA(oQ*A]OSA -SM*AXOSAX.s@*AҔOSAic*ATVOSA0cV*AB!OSAD_S*AP? OSA`8L*AOSAZE*AZ-VOSA>*ApOSA)ۣ5*AƥTOSA`-)*ABOSAh2!*A=dOSAL}!*A*OSAMb+*AJOSA8*ApOSAp]B*A޴UOSAM*A7R0OSAP5[*A(RA*Al*OSA`$*AtOSAt*Al*OSA(״*APSA%n*AR(PSA ԓʶ*A3HPSA–Զ*AtPSAl޶*A@PSA FƦ*A5'}PSA(`*Aw@PSAȦY*AʌPSA(Q{ *A̠R PSA<6 *A4T= PSApޛ*Ax PSAC,*A0+PSA<6 *A4T= PSA8**A(RPSA*A PSA*AL  PSApvO*A)PSA(jD*A-yPSA@!e*Ax,.hPSA@wΒ*ALPSAq~|*A:[PSA/q*A%7PSAxsg*A@PSAx\*AL PSAN*AiZPSAF5B*A> PSA 6ݎ8*AX[PSA8J5.*A OSA@C#*A{LOSA*A8;+OSAx*AoJOSA ԓ*A3OSAXؑF*A \OSAp*A~`?OSA a\ڵ*A!OSA+ǵ*AOSAh*AuOSA`5׬*A:)OSA1*AR#OSAfv*A&OSA [ʢ*A`( OSAx*A|5'OSA`-|*AX :OSȂ*Ah%OSAH*AcOSA@e*A`GOSAV>~*Axp(OSAhp*AoOSA]*AvOSAhÝ *AxOSAHa*A>kOSA(Q{*A*[/OSAHcv*ATHOSA`*AHOSA([ *AR(OSAP`ղ*A[ OSA X*AdOSAh*AEOSA\*A;9OSAlx*AҲf>OSA m*AnyOSAH3dc*AUOSAW*APOSApޛD*A& OSA4*A!>OSAM'*ALX}OSA`E*A/OSAX *AFyOmSAF*A6ĝOSA*AWOSApt*Atg֬OSA@w*A5OSA@Ƞ\*A.B)lOSA`ꥅI*A̠ROSA<*AiiOSA~D*AԻMOSAPW*A!OSAةb*ArOSAh}O(*A^bOSA0ӯ*A䤨MOSASǯ*A%>юOSAHgZ¯*A}w9OSA&c8*A^POSA(*AX :KOSAz*A\OSAX*AEOSAoY*Ap҅OSAz*A ~{OSAر*A)%ByOSAhdˮ*A!C*AnwOSA^0*AFOSAp*A(`OSA Ź*A*rOSA(Hm*Ar͕OSA`ޭ*ArROSAF5hҭ*A䤨OSA=ǭ*A^OSA;·*AjrOSAVᣭ*A3'OSAx*AMOSAm^*AqOSAP ,w*A_OSA(jh*A~>BKOSAI[*A~YOSAKN*ASOSA^ʼC*A{nOSA4y9*AHOSA_9~/*AbOSAP5+#*AӔOSA–z*AUnOSAc*AۗOSApf*AOSA*A͙OSA@`*AOSAerܬ*AhOSApBY׬*A`˞OSA.ͬ*A7OSA8Ju*AᢡOSA0 *AHOSAL*AlL8*AbOSAf)*AjOSAx*AäOSA*A )[OSA0 *AܫOSAP*AL9OSAF5*AOSA !*AvۤOSA0C٫*AG;xOSAЖ1ǫ*A0OSA49*A=dOSAH`*AOSAo*AuOSA`%~*AƎ>OSA6s*A`YVOSA&g*A,OSA[*A& *OSA(H*A`ЌOSA@89*Adg;OSA@Ž**A OSAq*A씿1OSA*ADϥOSAXؑ*AH{OSA8ۚ*Aԅ:OSAVa*AlA5OSA@ Ҫ*A8OSAª*AxNOSA6D*A OSAuj*AvOSAн*Aư;OSANy*A SΩOSAp`q*AtOSA%d*AMOSA)cW*AOSAiCG*A*[SOSA5*Aư;OSAAy**A OSA5n *A*[gOSA*A@wOSAx*A[ OSAg*Aa:OSA8w7*AD=FOSAhJ֩*Aܠ|OSAʩ*A:ٱOSAC,>*AJOSAo9*A,OSA8S4*An OSA0 *A4OSA 6*Aư;OSAaBx*A^OSA,h*A0 ,9OSA]W[*A 6OSA4N*ARj@OSAB*AIOSA\7*AR(AOSAH^[,*An{OSA $#o*ATvOSA8:3*A]ؾOSA Xڅ *A'OSA輄f*A^ɽOSAH-*Ak~OSA`/*AOSA_Ө*AnwOSAhӵȨ*AFOSA1_*AҐiOSA*Aǃ÷OSAP,ul*A֎dOSAXT*A:fQnOSAVk*AʗOSA8ST4*A[zOSAeR'*A^NBOSAşD *A$õOSA`/%*A!OSAO*AvQOSA*ADOSAV*AnNOSA*AhOSA|q%n*A ְmOSA28*AYqOSA('*A,#OSA*Aڀ'OSAA*A0OSAa&*ADsOSA((*AOSA t*A,OSA`k; Z*A"bOSA@ U*AnӼOSA|<*AOSAM%5*A*rƿOSA=H*A/WOSAp)lB*AOSA{*AٗOSAXo*AuOSAS*ALOSAPG*AXbOSAt*A'OSA۲R*AOSApC*AHOSA~4*A^OSA8*A%ϯOSAȦ*A"bGOSA8*AʗgOSAP*AG])OSAp b/*AOSAk*ATOSA4)*A:fQ֥OSAߢ*AI͡OSA*AʗȷOSAO. h*ApOSA(j*Azy1OSA~*ATHOSAȯ*AfmOSA rȡ*Af\gOSA*AoOSA\k*AOSA`d[*A!҉OSAȯ8P*AGOSA(u^*A"bOSA>>*A6]҄OSA_#*A\OSARpY0*AjnOSA8˱X*AJOSA`k;) *A6HOSAPz$*A§OSA@nD3@*AЇsOSAm^H*AJ5OSAh*A"1OSA眛`*ApOSA`/*AOSAR*A`OSA +*AOSAF5*AJWOSAPpo*A{nOSA08ԟ*AV׿OSAQs*AIf3OSA,c*AxðOSA"*A+PѬOSAH*AƎ>OSA(*AfOSAXO*ABnȫOSA8˱x*ALoyOSAg}*ADCOSAI*AЩOSA(jW*A4OSAnTΟ*A@OSA&*AڻOSAП@*A:fQʽOSA@nD*Ah~OSA8ϊ*Aj{OSAH׍Ҡ*AąOSAq+*Av"TOSAp#*A& ҧOSAj5*AOSApc(*A[ OSA=*A&OSA C*A:fQOSA(uI*AbS_OSAgS*AT'OSA`ȨN_*A.ꁫOSAse*AL \OSAXj*AHOSA"%r*A%>QOSA0*AB4kOOSA(r*A"OSAg=*A`OSA>,*AxƸOSA?/Ҥ*A$k?OSAШE*AЩOSAw=*A/OOSAV*A*rOSAeD*A%>OSAV*APaOSA]Τ*A27OSAE̤*Av%MOSA~*A\ƗOSAt*AOSAT˨*A7OSA`/e*ASOSA荤*A͇OSA@nDy*AfmOSA(?gj*ADsjOSAh>Z*A\AK1OSA6E*A>+OSA|1*AۨOqSA`'A*AsOSA@8/*AtAOSA8*A(0OSA*A!&OSA`-\أ*ANOSAsPã*AJwOSA`Ȩ.*AwOSA>l*A GOSA`2*AX*AޖPSA;*A֙ PSAV*A$PSAH*A2)8PSA`Y'ʪ*AٗPSA9渵*AgPSAYŸ*AdgˠPSAXџ*Aa֡PSAd*AD=zPSA0Z*A,bPSAj *ARCPSA ^*A^RPSA=%*AЩܞPSA.5*Ade֦PSA,m*APSAʹ*A0PSAH3*AjPSATbݟ*A(QPSAPӟ*A씿mPSA Qʟ*A ^PSA0lǟ*Axp(nPSAp2Aǟ*AR%`PSA4J˟*AePSAxU*ApPSA"*AjnPSAOY*APSAXi*Az3PSA֝*APJPSAOgʝ*AkPSA0\Yȝ*A0 ,}PSA*AMPSAxO*AX :PSA`5*Afm%PSA0Ɇ*A>+PSAn*A~`? PSAи.xx*A~PSAg*A>cPSAv_X*AЩPSA(?gI*A tPSA0:@*ACPSAJ4*An PSA '*AVQ4EPSAP}*AWFPSA[*A6EPSAO*A0PSAXGk*A.ȘPSAx*AhnPSAAs*AVPSA@;8*AFQSAHPל*A§QSA=Jڜ*A"b+QSA`-<*A[QSAHc*Ad~ QSAF5*Ad1b QSA ̘*AX|c QSAxj*A*QSA J4*A}QSAx *At~QSA0 *AhCvQSA8"*AEQSAHٶ*A~UTQSAH3Ԅ*Ar^?QSA`-<$*A`bQSAj5,*A QSAx]}7*AjQSAv.E*An QSAX%tV*AZkQSA}m*Al~QSA~*A^SQSAV*AlQSA8J5*Av[QSA *AP? QSAh[R1Ɲ*A`QSA6ѝ*A0QSAr*A QSA(*A^QQSA*A>1QSA;"*ARQSA *A- QSAc/*A JQSA(?g>*AQSA}J*AQSAhLV*AbݟQSALa*An QSA-Pm*A-QSA(x*A\XeQSA6*AhesQSA*A>+QSA@Ξ*ArSQSA4y*A|9QSAxzO*A <QSA?͞*Av"TQSAٞ*A^QSA#*AH$QSA8b*A>_QSAx*A5NQSA0*ABQSA *AAQSAhD*AH$QSAj*A!QSA3*A^G"QSAf!*AVQ4"QSAi'*A~"QSAP`b:*AhA#QSAG*A$QSA@eP*At&QSAh=*AOx'QSA@;*AT&.QSAX!*A^P0QSA8+*Ac+QSABN3*A4v:z-QSA`t?*A|6/QSAF*Az2QSA0E*AIA4QSA_J*A}6QSAM*A3O8QSAìI*ApN:QSACA*AP? *_+fQSA3*AJShQSA|Z*A@iQSAX*AXFkQSAKؚ*A:DTlQSA8w*A\AKnQSA&Y*A{nnQSAhCѝ*Ar< oQSA0:ȝ*ApQSA x˝*A`#rQSA?֏՝*ABsQSA]*AsQSAHcV*AttQSA*AMMuQSApB9 *AZEvQSA *A4T=wQSA(jD(*A|6OxQSA3*A7yQSAh}O1*AF{QSA^)*Ag|QSA#*A}QSA [*AE}QSAju*A VQSA *AXÄQSAH# *A8HQSA"*Aw,QSAP *AQSAѡޟ*AqQSAxs*AoJ QSAH3Ԥ*A6]QuSA?E1*A(QSAxc*AQSAx;|*A?QSA_@E*A6EJQSApKi-*AnQSAq*A-{QSAО*A{RSAsÞ*A0mRSAa*AL RSA!*A6QSAP*AK*Ar<RSA`ď*A悫RSA8u}*Ap !RSA4*.*ATRSA&M*AN6RSA GkU*ApRSA@8/C*AZRSAO.7*A1RSA&*A#5o6RSAh *AO6RSA Q*A,#1RSA*AٍRSA*A/RSA8*AlRSApBߙ*A-{(RSAh9UŚ*A g/RSAxWƚ*A&QSA;BȚ*AQSADŽ*A,#QSA|*AQSAP>*A ְAQSAxx*ARSAΦ*A^lRSAPy*A0.RSAX*Aʌ RSAx͙*AXRSA4'ș*AeRSAÙ*A"mRSAX%*AtgRSA^<*A'V"RSA`*A<&RSAgT*A䤨%)RSAX *ASν-RSA`5*A.0/RSA 4{*Ap0RSAvh*AJD0RSA학*A .RSA4J*AK"M-RSA@eS*AnRSAQ*A:]RSA&y*ARSAhtŨ*A vSRSAHc*A?RSAG셙*ARSA*ARSA(sxh*A6]RSAf*A^lCRSAhdZ*A5RSAFR*AM#>RSApc'E*AtgBRSA?.*AbjMBRSA X"*A~>RSA8a(*At~RSAxS *A(?RSAF*A`۪RSA*Ahp>RSA*AעRSAc*AF RSA`-\*Ah.QSA=<*AeQSA;`*A0 ,%QSA*A QSA [ *AG]MQSAhF *A4þ_QSA0/~%*AnoQSA؉*ADcIQSAh}*A;QSAHf_+*A;^QSAW*A?QSA?ݔ*A"@QSA8˱*A4T=QSA>G*AQSA]7*AFh|QSA/w*ABpQSA{"*AxߩQSA –*A@aQSA0*A5QSAPg*AxQSAPNr*A䤨mRSAhX*A: RSAH<^8*A)RSAS*A4v:+RSA(Œ*A%RSAo*A;"RSAVώ*ARSAL*Atg0RSAHa *A05RSA(u+*A4v::6RSA|8*AԻ6RSAWkE*AX :7RSA NZ*ALz7RSAm*A J8RSAʹ~*A|98RSA8!*A^S@9RSA0l,*A%>9RSA𜲖*At/:RSA,7*Ad=RSAH*A"bo>RSA8*]*A>b?RSAYm*A^w?RSA|*A>?RSAa.*A DRSAh2F*ACDRSA2eQ*AlARRSA}*AO:^RSA(_w*AhqwRSAfvV*AP? xRSAXG3*A#%yRSAn*Aqu*wRSA0Ս*AYvRSAxu*AHsRSA> E*AoLrRSA\*AjnpRSAND*A͂oRSApo뵌*As-nRSA`*A2)lRSA( Q*AX~kRSAS-*AYqiRSA,*A%`jhRSA+*A/fRSAe2*A8NeRSAh z*Af\eRSA–m*A`J0eRSAШE@%*AcRSA8"*AeRSA2@*AlRSAh>*A}wRSA眻*AwRSA似*A-{RSA Q*AHqQRSA;*A8ͼRSAи.ō*A5RSAP xuȍ*A7RRSAر_ˍ*ARSA]΍*A=dRSATэ*A̠RRSAHԍ*ALoqRSAI3׍*A(RRSApc'ڍ*AWRSAX!܍*ARSAІH *A8HRSAC,*A RSA{*Ad;RSA(*ARSA(o*AaRSA®*A(RSA;Ӎ*AVSSA*AąSSA8*A5 SSAh5*A]SSA4yX*AbjySSAP5z*Al\SSAPyY*A )_SSAc*AXSSA@esߎ*A+#SSAІHi*A&SSA0"*A%>-+SSA*A/SSAp *AҲf0SSA0 *A 7t%5SSA0Ɇ)*AX SSAh z*AXSSA(jd*AuSSAH_*A8N~SSAP*AR#zSSA(*A$pSSAO.*AU,iSSA>*APdhSSAHc0*A\gSSA0\9-*ALcSSAx]}'*A:]SSAP*A,fUSSAШE*A֙LSSA*AP? :HSSA*AGSSAmߒ*AoJ8SSAH8]*A|5K/SSAmt*A.SSAt4J*Al+SSA<*A6,SSA,l*A0 ,A3SSAn{*At~5SSA8"j*A*8SSAzP*A?;SSA=;*A=SSA X$*Axp(6ASSA(` *A:9DSSAv_1ؓ*A^&KSSA#*ADsJMSSAs*A#9NSSAD*A:OSSA *A01JSSA8-*AJO JISSAxfx*A|9H:SSAHi*A80=SSAEڔ*AZASSAV*AQzISSA2ec0*AhVSSA4*AL*ZSSA0 ($*A]SSAhDd*A 7tdSSAyO*A^YSSAv*ATSSSA=}*A0mTSSAqo*A,WSSAV*A6([SSA*AL USSA\5*A.d&ZSSA*AͿXSSA"E*AQaSSAIsX*A6dSSA *A:[6~SSA DSSAP ٙ*ATSATb *A {TSAШE*AʌiTSA`*A|9$TSAř*AЇ_TSAHiH*A^lTSA|z*Aʌ)TSAp)l*A7TSA5*A.d&TSAgu*Ag TSA_9*Aآ}TSA(jd*A fTSAp*A.TSAر_И*A궼DTSAg}*Ar^TSAJ֠*A"|0TSA؏(E*A@TSAI>*AqTSAP8*Ag TSAzF2*Af$TSAޣ:,*AC(TSAɞ%*A,TSAk+*A>+w3TSAsE9*A&'wTSAHܟ*A`TSARY0y*AhesrTSA*A뫵TSAq+*A<\2TSAH^[;}{*ABaTSApz*ASMTSAXO9*AYqpUSAHU*Ar^USAP*ASΙUSA`-<*Ad$#USA0z*A $USA؏\*A֙")USA&*A\AK0USA_@#*A6EdUSAS#*AL+VUSA`2.*A 2USAeR*A§0USA0)*ApIUSAP`*AQvSUSAtV'*Az3VUSA1ڒ*A'L]USAv(*AeUSA[*ARgUSA4*ޒ*A9iUSAp2Aْ*AЇ+lUSAh2֒*A6]rnUSA"Ғ*AlqUSA-1͒*ALXsUSA8oʒ*AX|tUSAxĒ*AwUSA"|뾒*AXyUSAh *A%zUSA_ඒ*AR}USAS*AUSAX *ANWUSANd*A8NUSA_*AFUSA)ۃ*Ay!7USA~庒*AGUSAP󇸒*A@USA%5*A',USAر*AquUSAp*Ae^USAQ*AR(uUSA=j*A"iUSAU@*AUSA@LG|*AxUSAjg*AE%USAh^*ANUSA!/*A*USAЗ*A.d&?USA8O*A@Vh¤USAc*AdצUSA(l*AUSA/vy*AlUSAPpo:q*A g/ѬUSAn*A`ٮUSAXk*Abu\ǰUSApe*AfmUSAdKZ*ABnUSA0P*A0NUSAxI*A3USAX \A*AjnֹUSA@wR;*Az3.USAv4*A̠RUSA-°-*A3USAT$*Af\kUSA81*AXZUSA#|Z*AUSAh*A.ӧ;USAD*AUSAAW*A4T=_USA**A|,USA0Q*A$USA``*A mUSAQ*A\cHDUSAP`ڑ*A9};USAKAґ*AC USAΑ*A^USA`5ʑ*AUSAv_Ǒ*Ahes[USA$2*A ˁUSAh0*Ai8USAhF*ANUSAmq*AUSA+K*ALUSAV*A*}USAH8*A~USA0ޖ*AUSA$*A|6USA8(*AG;USAhDD*A{LUSA`5*A@xeUSA낑*A&^USA@>b*A*rVUSAn*A24USA]*A\cHUSA_AQ*A: USA81D*A27VSA0=*AH$VSAxE*A9VSAQ2*AVs1tVSA`I>R'*AVSAA!*A>MrVSAؘ\*AVSAx*AzW$VSAF*A",VSA1*Ar<D.VSA@*Jސ*AP/VSA7ِ*AZ8=1VSApː*A&1VSA଄*A`Y3VSA }*A̷4VSAP*A& q6VSA@*AYqT7VSA*A*x8VSA+*Ax,.9VSA@!%*A9VSA]Y{*A E2N8VSAHUz*A S^6VSAXؑf*AS=5VSAxD *AĜ3VSA*A>2VSA8˱x*A\X0VSAHR`*A`.VSA@eӓ*AF/VSA0ڈ*Ar1VSA|*Aj1VSA@u*Al~3VSAjUl*A805VSA(jY*A!t6VSA]D*Aͮ6V}SAhDd4*A|9<7VSA&*At8VSAx" J*A)8VSAȄ*A8VSAHl1*Abٶ7VSAڏ*A ^7VSAZƏ*Aԅ6VSA(?gN*A@6VSA#㤏*A$d7VSABN{*Ai8'9VSAdm*A_a:VSA=*AX :;VSA1w*A(4=VSAШE`p*A2)>VSANg*A'i<@VSAȄB]*ABVSAO*A@^DVSApD*A*FVSA~<*AvEgGVSAڔ4*AHVSA`Y' ,*AXJVSA0l,$*A*LVSAM"*A MVSA(;*AOVSAxJ *A01{QVSAh0*ARVSA&*Av#pTVSAh}O*AJUVSA[o*AVSAH*AVSA+*AkVSA a*A=ddVSAX/ʎ*A ˱VSA Q*AbVSA G+*Aj{VSAX Y*AEVSAn*AlAVSAKw *Abu\'VSA)#*AIVSAHgZ*A VSA0Z*A%>VSA r*ArVSAw=4*Ar䧩VSA: *AHVSAX{$*A{ݴVSAP*A%ϿVSA0:|؎*A씿ѰVSAFՎ*AXZVSA(&v*ALVSAP,u*A5nVSA*A9JVSA*AjVSA=c*A#VSA8*A[zVSAv*Ay!ӧVSA2*A'VSApqT*A\̝VSAQ=*AVSAh־+*AۨVSA8',*A֙VSAM%5*Ag лVSAfvB*A^VSA0#;*AJDVSA`Y'*,*AʗVSA`{*A6VSA#*A悫VSAa *AbS_\VSAXi*A=VSA 4[*AܠVSA`@rЎ*AgWSA0Ɇ_*A:fQWSAV*AļWSAVK*AxWSAxՈ\?*ADsWSA +4*AvWSA8%*ArhWSA"|*AmhWSA*ADWSAH#l*AX WSAPpo*A WSA0Ɇ*A~ WSA}*A|9,WSAVӌ*AfmEWSA(Ȍ*An.WSA@*AWSA0㯌*AWSAP>료*AWSAИ*A#5/WSA *Al?WSAP*A&'WSARY'*A"FWSA68*A<\jWSA V8O*Az 1} WSA(*AD#VSA.*AtgVSAS׍*A"ƽWSAV*A WSAxՈ<*AbSWSA@M.*A"WSA@C܌*AUHWSAH#*An~#WSA1*A씿}%WSA ^*A'WSA澸*A6CE)WSAC,֌*A*WSAʌ*AeZ,WSADŒ*AD-WSAy*A*}.WSApcg*AP0WSA`-*AN|1WSAh*A ~2WSAП*AZ4WSA*A.ӧ6WSAx*A\AK7WSAnr*AR:WSAmNf*An ;WSA_9\*Ae=WSAp]UQ*AҲf"?WSAPgC*A^9AWSAv5*AzPCWSAh0(*AH0EWSA89*AG GWSA *A}w}HWSAB *A \JWSAЖ1*A,9LWSAԪ*A[zMWSA5nM*A(R$OWSAX{$ۋ*A뫵PWSA@ҋ*A>_RWSAX}Nj*ASWSAz*A UWSA>쵋*AdUVWSA [*APО XWSAt*A YWSA*A(R[WSA@LG~*Aعk]WSAgq*A _WSAo"c*Ar’`WSACY*AnlaWSA0:M*AƥbWSANdA*A^JdWSARY8*AP^eWSA@J/*AZ?mfWSAU$*A{ݤgWSA Ρ*Az 1hWSAu *Ar^'jWSAH*AbS_kWSA*ANlWSA眻*AD_mWSAh2ފ*A#5KoWSAaBӊ*A9pWSAx;aƊ*AlqWSA}f*Ax~sWSA ^*AlLtWSAX *AfvWSAb *A)%BwWSA_*A0xWSA0l,*A yWSAt*AG"{WSA@h*A^f|WSAP^*A+P}WSAo"M*A>`WSA3C&?*At~WSAx5*A8KWSA-*AWSAn&*A+PuWSA>!*AWSA@Ow *A\cHWSAT!*A WSA"#*A44WSA(Hm&*A^PWSAm~*A%ϟWSA: *A$PWSA9{*A$WSApt*A(RWSAs*A2KWSApT8*AzW WSA@;*AWSA(*Av% WSA8wى*AJWSAx" jΉ*Az]WSAHc‰*AHˡWSA(⠵*Ar WSAĦ*A>bWSAH*ATzWSAp2A*Ar<WSAb鏉*At(WSAXo*A%`^WSA=(x*A@VhWSA Xڅj*A§oWSAnY*A8WSAغYH*AW$tWSAHܟ=*AWSA}?*A ,WSA$2:*AAԯWSAmq.*AqWSA3C!*AHWSA F*Akc:WSA6LP*Ad~ִWSAPpo*A۵WSA; *AʗWSAu*AW$WSA(Rڈ*AdWSA(ψ*AWSAH`*AwWSA*AzW¿WSAl*A}wWSAm*AR#7WSAX%*ApWSAiCy*AXWSAXn*AWSAKZb*A|@WSA@Q*Ai8WSAxMB*AܠWSA$r6*AdWSAaB(+*Av WSA"|*AWSABpX*A6UWSAP*A,#WSA]Y*AWSA**A4v:6WSAaB܇*AZ8WSA t҇*AWSAȇ*A>bWSAWk*AҲf.WSApT󘰇*A8NmWSA8**AWSA3*A#WSAe*AquWSAR7|*AbjWSAy*AWFmWSA1n*A.ӧWSAGlc*Ay!wWSAP`BZ*A^WSA/L*AjLWSApw@*AjWSA8*ACWSA50*A1юWSA8&*A WSA*AWSA9 *A@WSAh*Ax,.WSAx5*AxߩBWSA*AXSA– *AOxjXSA)*A]60lXSA(R*A4mXSA*AQoXSAC,*A3gpXSA؏҈؂*A^qXSA OPɂ*A ~UsXSA*A>tXSA輸*A uXSAQb*AFwXSAHВ*Aj{xXSAN*A|6zXSȀ*A {XSAP>ku*A{XSAxl*An|XSAX^*A9}C~XSAvN*A XSA`CA*A$'XSA`/7*Axp("XSA$r**A@sXSAt4 *AbS_,XSA( *AzXSA#Z*A~`?XSA ^3*A$kXSAXO*A0XSA`Ȩف*AxXSA0ˁ*AJXSA=*ABp}XSAp ₩*AT׎XSA|ڒ*A42@XSA'*A=dXSAt*AHwXSAb*A ZXSA3R*AXSA[rB*AHXSAh}OH2*AXSAH1&*AXSApj*A.B)XSAd *A[XSAHϐ*Ad1bXSA@nD*A1BXSA=ـ*AVXSAQ̀*AFXSA6*A!4XSA`C*ApGXSA*AeXSA0^*AxXSA`z*A:aXSA=En*AOXSA&,d*A5'XSAHlX*AXSAHa K*A]6XSA9;*A"XSAh٧.*A~>BXSA`bI#*A3ѢXSAІH*AXSA [J *A(GXSA ]*AsXSA `*AbPXSAu*A QXSA&L*A@XSAp`*Ar,XSAA*AnXSAн*AG XSA*Ar^߫XSA@Aʘ*A֎XSA8'9*A^wXSAtVǂ*Ar5XSAv*A<\XSA&e*AF5XSAκY*AЩ XSAh*L*AG;XSAHaM?*Aư;XSA^4*AXSA7#*A:2XSAl*AFh|XSA *A:fQXSAAW*A27XSAxM`~*A0 ,XSA2e~*AjXSA8"g~*A>_XSAhdp~*ASXSA]w~*A^loXSA~*A-{8XSAJ~*A42@4XSAR7~*A<,XSA+/w~*A@3XSAhRi~*Ade޿XSAr ^~*AFxXSAO~*A;9iXSAh:~*ALoXSAQ)~*A XSAP xu~*AquFXSA~*A=XSAޣ}*ALo-XSA6L}*AXSA}*AҲfXSA`}*A!XSApT}*Ap3XSA8w7}*AUXSA`2}*AnXSAHfߛ}*AG=XSAڋ}*AXSAP5 ~}*AfmXSAШEo}*AoXSAS~c}*AMM4XSA(qU}*APXSA`8C}*AXSAw=T5}*A4þXSAJV'}*AVףXSAj}*A aXSAh]}*A.LXSA|*AK"XSA|*AQXSA z|*A^P#XSA}I|*ArXSA.|*A֎XSADB|*A3XSA|*ApNXSA, |*AJDRXSA 6ݮ|*A$XSA#|*A4ZXSA~lz|*A24XSAhck|*Ac3XSA$rY|*AUXSA*I|*A9XSAPu;|*AߺXSAX ,|*A27XSAt|*ApXSA s|*AUfXSAHm |*AtoXSA@>!{*A"|XSA{*ARjXSAs0{*Aj1XSAQ{*AԍXSAs{*AXSAQꮲ{*AR%XSAp2{*AXSA OPc{*A@XSA`'AO{*ANXSA8~-K'{*AܠXSAN{*AYXSA Ρ{*AtYXSAPWB{*A5XSA {*ARXSAC,>{*A(XSAІH)z*Aآ}XSA؏Hz*ArXSAѡoz*AXXSAz*A bXSA(z*A:fQXSApTXz*AhCvXSAɊz*A^XSAh{z*AMMXSAX!kz*AYqYSA _z*AZYSA&Zz*A+PXSAP>Hz*ADvXSAH8z*ArXSA8S+z*Ag xYSAo"z*AuYSAz*A3YSA [*y*ALYSA yy*AUXSA8y*AeXSAy*AθYSAFiy*ABnYSA $/y*AwYSA&cy*AohYSAPޣy*A(XSA?y*A.XSA2y*A8KpXSAgTy*A>_/XSAκy*A YSA8y*ANYSAS|y*A(YSAުqy*At.YSAx3ey*A~YSA6]y*Aܫ YSAxMYy*A^>XSAp]y*ACXSASNy*AGXSA@LG|Ay*A4v:XSAh 2y*AR%XSAtV%y*A>bXSA/vy*AN XSAx y*AJ- /XSA8*y*AFHXSAx*A`XSA8(x*AlXSAhDx*AXSA ъx*A5'eYSAx*AbS_YSApx*A궼0YSA81}x*A0 ,5YSAnܧx*A5IYSAxx*A}YSA8\04x*Anw* YSA8˱X~x*A/T YSA8mx*A;9 YSA8w`x*A'F YSAȦRx*ArSA YSAxD Ix*Abj YSAz:x*A=YSA, &x*A YSA`5x*AVYSA=<' x*AFyYSA(H x*AYSA(w*AYSAJw*A悫YSAPw*A%`ZYSACw*A^qYSA`@w*A$xYSApwfw*A>+YSAhtw*A{YSAEw*A wYSA8'Yrw*AnUYSA0/~ew*A.YOYSAІH)Yw*A"YSAxfGw*AvYSAEWE6w*AdgOYSAІH 'w*AxYSA8*Bw*AdYSA0w*A֭YSAޣv*A5YSA@>v*A/YSAmv*A@VhYSA`Dv*A@oYSAv*Ap YSAPv*A#9 YSA Rv*AeP YSAHv*A YSADߢv*A`V YSAWkv*A.Y YSA5nmv*Al YSAdv*A* YSA\U3v*AC; YSAl'v*A~ YSA%v*At]YSAVv*AYYSA@;u*Ap6YSAu*A4þ'YSAhFu*A䤨YSA(adu*A E2YSAƬu*AԅYSA0c̩u*AYSA/u*AFYSATu*A7YSA-12u*A> YSAu*AbjYSA xu*AzWYSA~ru*A^SlYSAZeu*AYSA"Yu*A,YSA8(>Nu*A wYSA8"GCu*AYSA9x7u*A*[SYSA(j$+u*A"@YSA;u*A\XqYSAx\u*AEYSA8˱u*AvYSA8~-t*AJO YSAи.t*Al)YSA V8t*A7YSAQt*AwYSA@et*AZYSA t*A8YSAt*APYSA0t*AiZPYSA OPƈt*AYSAMt*AJYSA@yt*A!YSAtt*AI#YSA:~pt*Ajn.%YSA0lt*A@ 'YSAe)ht*AҲf(YSA(jdt*A7*YSAw=`t*AA-YSAށ}]t*Aj{"/YSA a\Yt*AҲf61YSAXXt*A"@x3YSA~ft*Ay!+3YSAX4t*AT&YSAhݔt*A=d (YSAKZt*A2*YSAt*AW.YSAɨt*Ap%2YSA8Yt*AV/764YSA(jt*AQ5YSAXXt*AK7YSA t*A\c9YSAkjt*A|9:YSAt*AČYSA't*A y@YSANđt*ACBYSABNt*A6]bDYSAtt*AEYSA^et*A8xFYSA<%St*A@VhFYSA<>t*AԻGYSAX \Qt*ArGYSAo"6]t*A:GYSA+(hRt*A|6IYSAx;Dt*AqurKYSA05t*A,9|LYSA"+t*AFh|}MYSAXf#t*Ah?OYSAXt*ABpQYSAt*ARYSAXt*AlSYSAm>s*AyCSYSA7s*AqTYSAs*AtgfVYSAޣs*A`XYSAs*ARZYSAs*AbS_\YSAo"s*A^l]YSAи.8s*A0_YSA0A5s*AaYSA$Rs*AbYSAH^[{s*AJZdYSAaӦs*A* fYSA+is*A{gYSAXs*Au*AG]ջYSApKiY*u*A@JYSA_u*Axp(YSAAu*Az-YSA8Jt*AoJYSAşt*AYSAhZ t*A0YSAxM@t*A24YSAX t*AL"YSA\t*AYSA `t*AHYSAOt*AɆYSA"et*A,#YSA0/~Yt*Az 1YSA/Mt*A[SAXfi*A`"[SAC,Qi*AMMl%[SA a[SAch*A@[SA{bh*A+B[SApXh*A g/C[SA Nh*A"@E[SA@®Eh*APşG[SA;h*Av%]I[SA 2h*AN6J[SA(u(h*AN|L[SAxh*A.B)`K[SAP x!h*AwN[SAĊh*AZEO[SA,h*A̠RP[SAR73h*A(GR[SA{g*ANT[SA(g*AvV[SA(&g*A W[SAhg*AN6Y[SAhdg*A0[[SA@Mg*A ^[SAxog*AN`[SAxg*Aعb[SA"eg*AT d[SAPg*Ace[SA Vg*Arg[SA@Mg*A&i[SA=(g*Acek[SAh߰g*Aam[SAXؑg*Anln[SA*fg*A)%p[SA(lg*Avir[SARYPg*A#Nt[SApmfg*A̠Rsv[SA=i[SA+(&g*Av#[SApmfPg*A3[SAԪ g*A[SAR7f*A>+ᣄ[SAiП*AU)USA74*AP*USAOY*A8H+USAsP*AUSApT*Az|USAȍa+*A(USAumĒ*AT. USAcP*AQ`TSAT V*Apn_TSA4]*Arx]TSAZt.e*Av%[TSAxNj*AFZTSA(io*A0.XTSAxt*ABWTSA9Xy*A^ZVTSAШE*AdgTTSA(oi*AHHSTSAX.*A̷pQTSA@8*AnlNTSAX{$*A MTSAhd0*AʪKTSA8*Ÿ*Aư;OJTSA/*AwHTSA J*AxFTSA ڨ*A^^ETSAhÝ*A<ZMCTSAD*A`5ATSAXؑƯ*AK?TSAQⰕ*AN쒕*A*}6TSA*A87TSA/*AE9TSAR7ӊ*Am;TSA䉕*A`|TSARY0*A@TSA숇*AjBTSAp2*AETSA !}*A%>iGTSAP> z*A`HTSAhu*AfJTSApo*A275MTSA :h*A0uOTSAu-a*AQTSAA[*AҲf>STSAsT*ATTSA:M*AhCv VTSAPD*AʗWTSA8S=*AYTSA4*A([TSA0A)*Au\TSA0/~v-*A^S\^TSA Jt&*AE`TSAXI'*ANcbTSA?*A ~idTSA}*AIfTSAHU *Aj*hTSA5n*A.iTSApJ*A|6kTSAX.*AGmTSAhdP*A8;oTSAh**A0.qTSAO.ܔ*A, msTSAhZ֔*AHtTSAgД*ApvTSA@ ʔ*AaxTSA?”*Aآ}zTSA@#*AquV|TSA´*AZE}TSA-*A@xeeTSAe*A@mnTSA >*A^TSA8*AxTSAg*A@Vh TSACu*A:UTSA&}*ATSA[/v*Aǃ+TSAEp*AJ:TSAZi*An |TSAa*AeTSACZ*AkC*ASSAmߒ*AoJ8SSAipޛ@t*A E2FYSAum2t*AYSA`I>26t*AYSA`5w8t*A̕YSAP>7t*AǃcYSAN6t*AlךYSAXf5t*A$cYSAe4t*AFyYSA׳4t*AU8YSA XeAt*AN8YSA<6At*A2K7YSA [jAt*AeYSA@M.Bt*A$YSAh Ct*A80YSACt*AعYSAtDt*ALݖYSA%Et*Ap*AiZQZSA"pp*A68TZSA8wip*A>+VZSAxop*AhWZSAx8xp*ALcVZSAi o"V0e*AT&&[SA`I>t*AԻGYSA'\/t*AIYSA0Ɇ(t*A4v:JYSA'4t*ATbJYSA~;t*AdgIYSAiኧf*AJD΃[SAR7f*A>+ᣄ[SAmf*A`(a[SA0cf*Akc[SAኧf*AJD΃[SAihI7{*AXZXSAHgL{*A`Y*XSA(S{*AdgXSAA{*AUtXSAhI7{*AXZXSAi`2N"{*A yXSA*0{*Aj!yUXSAhI7{*AXZXSAcm*{*A XSA`2N"{*A yXSAigTs*AxOSAlu*A@OSAtV瀞*AaOSAgTs*AxOSAi@ Z*A*rOSA@esg*AoOSA`'A{e*A$OSA@ Z*A*rOSAiP>*AhesOSA&y*AOSA`8@*AWOSAP>*AhesOSAi@ U*AnӼOSA0Z b*A~ҼOSAaB\*AlAOSA@ U*AnӼOSA zc 0 }Trieste @GAIDYȦX*A-OSAV*AL ]SA|i R7f*A>+ᣄ[SA$8f*A>_[SAf*A[SA af*AE[SA+f*A.B)d[SABN{f*Aʃ[SAHU)f*AUф[SAzF~f*Aǃ[SA__f*A<=[SA|qf*AYO[SAኇf*A3[SA?f*Aet[SAP`vf*Aڀ[SAHUIjf*AX[SA0 Yf*A[SAH3ԄKf*Al~[SA8*Bf*A.ӧ[SA@9f*A$[SApT(f*A\ɔ[SAf*A E[SA8 f*ALAwf*A [SAM%e*AV/7[SAm>e*A(0[SA FFe*A}[SAx;Ae*A|[SAY e*Ar[SApve*A8N[SAHXe*A[SA&y f*A[SA{|#f*Ag[SA2/f*Ai[SA?Cf*A [SA@U{Mf*A<[SAFof*Af:[SAغYf*A8;[SA8wf*At[SAz?f*A42@[SAH#f*A[SAw=4fZ.A`DPAK.Ag ?PAи..AJ 6PA Vx.A]-PAxf..AX%PAȯ1.AMM`PAx]}x.AePAHx.AJ` PA/w.A \ PA V.A=d PA.AXPA8w.AePAseF.AG;PAx]}8.A \PA x.A>bPA V.A`PA&c.A \PA x.AMM`PAxx.A<"WPAx8.A8KPAX!c.A<"W@PA x.Ag`PAKw.A^SPA.AbS_@PAx.A \ PAx'.AbS_ PA8˱F.AbS_`PABpV.AN@tPAH^.APhPAor.A]\PAи..AN@TPAxx.A~UHPA&cL.AN 5PA VxP.A]-PAȯx\.AJ &PAȦu.A<"WPA x.A \PAXx.A'i PAX.A>bPApT.AePAx).A<"WPAx]}r.Ag@PA8'y.A \ PA.A]PAA4.AXPApKiye.APPA4yQ.A^SPAȯ5.AiZ`PA8'Q.AiZ`PA9x~.APPA4y.AJ@}PA.A7R`rPA4yJ.A'ipPA.AN@lPA8'X.AMMaPAaBh.Ae[PA(k.A42@\PA&c.At \PAx]}y.A]VPAи..AbS_RPA .A^SMPAx.A~U`IPAKw.AN@<PAK.A~U8PA`P.Anl7PA!/ .A]6<PAx.AJ`<PAK.A>b`6PAw.A~U`)PAK.Ag`PAȯx.A7R`PA Vx.AN PA Vx.A'iPA@;.A`PA.A'iPAX!x.A7R PA.AbS_PA`w.A>b@PAK.AiZ`PAи..A`PA/ .Ag`PAH.A]~PA V.ANnPAx.Ag@^PAxow.A \SPAxfx.A \ JPA@;.Ag`=PABp8.Ae2PAи..A=d (PAHx.AXPAи..A'iPAx]}x.AN@PAx]}.AbS_`PAw.A`PA A.A^SPAxf.A]PAx.A=d PA@ŗ.A'iPA z.AfjPAxow.A \ PA`״.APPAH8.AXPApD.A PAx.AJ PA0Z.AR%PAΘv.AXPAx.A=d PA&c8.A\cHPA@;b.A~UPA8˱.AJ@PAx]}2.A7RPA9x~.A=d PAx.AiZPAXؑH.AX<@PA輄.AFPA/].Ab@PA z .AMMPATbzt.A=dPAz.A'iPA@8.AkcPA],.AbS_PATbڷ.A~U`PApg.A]PA-.A=dPAj.A \ PA0v.A`PA .AN PA|O.AbS_@PA .A7R@PApv,.AN@PA.AMM`PA=j.AEPA0.A^SPA /A \PAh0z*/A=dPAL/APPA{]/AfjPA`'A{|/A`PABN/A \PA/A^SPA&{/A`sPA{/AbS_bPA(u;/AXMPA/AN =PA0/A<"W@2PAHg /AbS_ !PA/AXPA眛6/AN@PA9{U/AiZPA&r/A^SPA9|/A \ PA0z/AMMPA 4{`/AbS_`PAh0&/A7R`PAKؚ&/A7R@PA {!/A=dPA 4{/AbS_@xPA /APnPAz/Ag gPA`'Ac/APXPA`'AJ/Anl FPA:@/AN@4PAޣ@/Ag PA{W/AMM` PAS\/AOR PA0z/A8K PA /A=d PABN{/AX PA&{K/A<"W PAz/AX PAK/A \ PAKz/AMM PAd/AX PA/Afj PA/Afj PAbE PAm/A^S= PAC,//AiZ/ PAPz/AP! PAPz/AN  PA݃/A] PAS/A7R@ PAq/AN PA0/Anl PAzF>/A^S PA0/AP PAh>]/Ag` PAPz~/Anl PA:/A \ PAhG/A]` PA ޥ/AX PA%n/At PAK/A` PAC,~Z/A7R` PA0~/AX~ PA0ް/Anl_ PAp`~/AiZ`@ PA /Afj`4 PAS5/A~U PAS~R/Afj` PAPz>J/Afj@ PA0e/A7R` PA0/AX PAM%/A>b@ PAV~,/ABn PA??/ABn PAq/A>b@ PAT/A'i PAh/Ag PAغY/A>b} PAh/A'ip PAHfu/A<"W [ PA_/A~UP PA(;/A]= PAރ/AP. PAhL?/AP! PA(?9/AX PA_/A] PAHi/A* PAh0Z/A> PAD/A<"W@ PA`8p/Ae PA`8@/Anl PAШE/A]` PA(X/Afj` PAV/A7R PA/ABn PAHR /AN PAz?W /Ag@ PA_ /ABn PAر /Ao@ PA; /A~U PA(l/!/Anl v PA(lv!/A~U`i PA`8!/A`[ PA(l"/Anl N PAПL"/Ao`; PAر"/A \3 PAX."/A, 92 PAxM"/A~U/ PAՀ#/AX. PA'#/A~U( PAY#/A~U`! PAV@#/Ag` PA@$/A \ PA@h$/AX PAШE$/A7R@ PAQ7%/Ax,. PA(O%/A` PA28%/A \ PA(l%/A'i PAq+$/A~U PA`$/A=d PA2@5%/Anl PA @%/Ae PA@%/A` PAxMX&/A]` PA2q&/AbS_ PAX{$A&/A`{ PA@Ȁ,'/A^Sn PAՠ'/AbS_@` PA@'/A7R`R PA@>)(/APH PAx;v(/AP8 PA(/A<"W@* PA8b)/A>b` PAہ)/A<"W PAv_*/AiZ PAA*/AiZ PAC*/AB4k PAȄB+/AXPAx;`+/A'iPA@>+/ABnPAMr,/AiZ@PA_,/A>bPADyZ-/AiZ@PA_-/Ag@PA8<./AiZPA8./AYqPA8//AYqPAMB//ABnPA7 0/A7R@PAǂ0/A'iPAQB"1/Ag`uPAǂ1/AelPAp)la2/A'ibPA;2/A'iXPAPW}3/AYqNPAκ4/A^SEPAhX4/Ar9PA5/Anl/PAJ5/A>b@'PAJ6/A<"W PA0u6/A`PA`6/A^SPAA7/A]`PA`7/ArPAHE^8/A'iPA QD8/A \ PA9/A>bPAWk^9/AnlPA09/AnlPAWk9/ArPADZ:/A]`PAhDD:/Ag@PA;/AYqPAH<^D;/Ag`PA;/AnlPAD2/At@PAEW>/A~UxPA>/AiZoPADJ?/AYqgPA(ad?/Ao`[PA` @/AeRPAz@/At@KPAN@/Afj@EPAA/AiZ`@PAHA/AX=PADA/A>b@7PA`ꥅB/A^S-PAN>B/At $PA(adB/AbS_@PAsE_C/A<"W PA<ͥC/A \ PA`aD/AePAxD/A`PA/E/AePAE/A]PA輄TF/Ao`PAsEF/A=dPAfG/AXPAG/Afj`PA8FH/AXPAj]H/AnlPA FjI/AnlPA輄I/AnlPA FJ/AbS_PAF{J/Ar`PA8J/A`zPA8"HK/AerPA8FK/Ag@nPA8L/At lPABL/A~U`iPAXIL/A \ bPA=b`PAvV/A<"W@PA V/ArPA=W/A=dPAO.IW/A'iqPAHW/ABniPAbGX/Anl_PAX/Ao UPA@ˉ=Y/A]`GPAY/AX=PA+ Y/A>b`6PA|qZ/At@+PAZ/Ao %PAZ/AhCvPAx" Z/ABnPA= [/AnlPA`k;6[/ArPA(N[/A=dPA`k; [/ABnPAO.[/AYqPAx" \/AYqnPA=-\/AbS_ YPAF M\/AhCvFPA q\/AYq/PAHUI\/AXPA`b\/Aw`PA`Y'\/A \PAHU9]/AbS_@PAq]/AtPA(]/A=dqPAu^/A \LPA8^/Ae,PAhu^/At@ PA=^/ArPA4^/AhCvPA=J-_/ArPA`Y'W_/A]PAy_/AbS_rPAt4_/Afj[PAh _/AbS_@8PAt4`/A \PANo`/Ao@PAh `/AePAx`/Afj@PAx" a/AXPAފ=a/A=diPAuJa/A \KPAdm/8b/Ag@ PA:a/AuPAua/A2)(4PAje`/ApPPAx" _/A2)(dPA=w_/A̷wPA^/A8͈PAh@^/A.PAjj]/A궼PA؉\/A궼PA[\/AhPA[/A̷ PA@AjL[/A#PA}iZ/AD:PAZ/A8QPAxY/ADjPA`k;X/APA(NX/A\ɈPA4!)W/A궼PA(o)V/ADPA0"V/A̷PAhtU/A\ɨ PAh}OU/A PAiT/A\ɨ3PA+(hT/AĈEPAX(S/A궼VPA0PS/A̷gPAh}OR/AsPA"(R/ApHPA("R/AȔPA4gQ/AzȨPA4'sQ/A>HPAgP/Au(PAHi(P/A\hPAPbP/AzPAg#P/APA4O/AuHPAF5(ZO/A궼PAF5h!O/AVPAhN/A PAXI'N/APA0g^N/AuH&PAgN/AD2PAPǴM/Au(?PAP}g{M/AD(IPA4KM/A|(SPA8"gM/A>h[PA4L/A6hgPApL/A.qPA}TL/AD(yPA F*L/ApPAXIK/A.ȚPA8&K/A>HPApc'J/ADPA輄fJ/ADPA8I/AzPAfbI/Au(PA}I/A|PAaH/A. PA(YH/A|PAXfG/A|,PA@6fG/AD:PAxf>G/AHGPA@6F/ATPA XŦF/A(`PA<ͅJF/A oPAhPA/A;PAH3t>/A>hCPA$%>/A.IPAN$=/AąPPA@*J%u=/A6hWPA@*J%.=/AĨ\PAH,PA0c4/AĨ4PAbi4/AXZh8PAp 3/AXZh@PA0f3/AzIPAJ2/A.QPA;V2/A.ZPAr #1/AcPADyb1/A2)HkPAp)l61/A (oPA8*b0/A̷uPAȄbC0/A2)H{PAXr'0/A0m|PA8"0/A̷~PADy//APAT//A.PAP`./AVPADbt./A\ɨPAMb ./A2)(PAP`b-/AĨPA{b9-/A.PA ,/A.ȺPA_¡,/AhPA7b,/A.PA,/A6PA!~,/AąPA8*bQ,/A2)PA a+/A.PAfd+/APAp2++/ARjPA ΁*/A (PA!w*/AzPA*/A H PAKa)/A.PAKZ)/A hPAXra(/A6PAЖ1(/AV(%PAxD (/A (&PAhtHo(/Aą'PA.-(/AyC+PAЖ1'/Az(PAП`i'/AV&PAП`&/A#PA\&/Aąh"PA@Ȁ3&/A>"PA8(%/Ar(#PAV%/A̷PAz$/AXZhPA`8$/AVPAxD 1$/A2)PA_}#/ARjPAX"/A҈PA2`"/A>hPA(l "/A HPAq+`!/AzPAHo!/A (PAz,!/A (&PA( /A궼/PAV /AT2PAz\ /A (7PA( /A.@PAq+` /AKPAHR/A̷WPAرϿ/AXZHaPAHf/AĨlPAVT/ADzPAШE/AD(PAhL_/ATPA`|/AXZhPA;1/AƥPAhL_/AzPA0 J/A2)PA__/A hPA0ll\/AV(PA@/ANPA GS/A2)(PA[/A>PAM%l/ARjPAh/AĈPA:e/AąhPAM%_/A6HPAs/Abj}PAS^/A6PA0W/APA^/AD( PAPz/AV PA4/AĈ PAPz/Aą' PAPz\/Aƥ(0 PA81/Aą8 PAp/ARjC PAhýk/AphQ PAS/AĈU PAC,ޏ/AąhZ PAzF^/AD(i PAC,O/ARjj PA qM]+/A (o PAp/Aąy PA&/A궼~ PAL/A H PAށ/A̷ PAp]/A2) PA8(޺/AD( PA8:3/Aȴ PA /Aąh PAPނ/Aą PA817/ARj PA]/A h PA ݞ/AXZH PAL]h/A̷ PAp]</Az PAg/Aƥ PA ]/A|( PA|/AT PA B/AD PA^ʼ/AXZ( PAx/A PAx/A> PA|x/A6 PAX O/A궼 PAd42/A"- PA'/ARj; PAX /A2)HC PA@C| /A궼N PA^R /ApHZ PA&] /Ap` PAX } /Ak PAgT /Av#hv PA^ʼ /A  PA0 /A6h PAgT| /A PA@nDR /A3 PAn /A H PA z׼# /AD( PA/A6 PAt/Az PA`7*/A\cHH PAІHɤ/A( PA講n/A^f PA{|4/Av#h PA@LG/A̷ PA0:/A2)h PA{H/Av# PA/AH PAղ/A-{( PA`'Aq/Az PAp&/AȌ PA(u[/AT PA(u/A2)H PA`'AC/A h} PA`I>r/Ax PAHMp/At} PAX/A>h{ PAHg庢/A|(s PABN[\/A>hk PA`'A/A (g PA[/A.a PA(uT/AzY PAH^[/AƥHO PA [/Az? PAPpo/A|(3 PA.A H- PAh0Z|.AXZH! PA0ZW.A>h PAD.A PAh9UZ.Aܠ( PAHz.Az PA [z.ATh PA'.AXZ( PAޣ.A| PA0.A PAޣ`.A PAK;.A PA06.Aƥ PA '.A̷ PA0.A>h PA.Aȋ PAZ.Aąh PA–Z.AXZhx PAHz.Azo PAPpoZp.A궼e PA|ZL.AV^ PAԪY .Av#U PA8.A궼M PA0Z.AV(E PAh9Uک.A궼= PA Y.ARj2 PAPy.A$ PAPpo.A궼 PA].ARj PA–.ApHPA .AzyPA0 .AzPAh9U.A̷PA0>.A.PA;.A HPA–Z.A̷PA Y.ApPAZ.A2)HPA0R.ARjyPA;.ARjkPApB߹.A2)HcPAPpo.AphYPA-.ALPA G.A궼?PA;.A2)(4PA0.A H%PAZ.A>hPA|7.A| PA-r.A.PAKZ.AXZ(PAޣ.A.PAHgZ-/APAc/Aܠ(PATbZ/A̷ȦPA2/AxPAh0/A6PA|Z>/A̷PAPpoe/A h}PA/ArPA/AmPAZ/A2)HcPAPpo/A|TPAyh8/A.HPABN[/A (?PA&/A6h7PAz/A2)(,PAyhۢ/AT#PA /A>PA(u[/AܠHPA{/A (PAz/A|PAH^[/A6hPȀ/APAXHS/APA/ATPA+(H,/A>PA[/A>hPA`'A{/A2)(PAPF/AlPAHiȿ/ATPA([/A.PA(u/A hPA`-/AƥHPA a\j/A|PAp޻/A6HPA /AȴPA(B /A̷PAxՈ܌ /A>PA@U /A>hPA( /AVPA@Un /A|(PA a܍ /A2)(PA{ /AV(PAn /A|PAgT /A6uPAp& /AThlPAp /A gPA0:\ /A궼_PA@C /A WPA\A /AƥHOPAgTx /AphIPAxՈ /AV>PA@C /A6h7PA /A6-PAj /A_'PA z /A2)H#PAn\8 /A HPA'| /AXZ(PA0: /AąPA&}/AVPA8:3]A/A6hPAx܉/A|(PA{ܰ/APA{/AąPAU@]V/AV(PA|/A> HPA@A /AHPA^|/A̷PA ] /A궼ȽPAX \/A궼ȵPA@Cy/AąhPA/A궼ȭPAU@H/APAZ}/ApHPAށb/AphPA}/A (PAށ]/AVPAށ/A̷wPAp*/Av#mPA&]l/AV^PAr c/A$PPAC/ANYLPA /A궼FPA/AFtEPAPb/A (6PA]/AƥH/PAށ]/ARj$PA81]/ATPA81H/AzPA_9^z/A (PAݦ/A6PAX/A2)PA/A>HPAS@/AƥPA_9^z/A PAX]/ADPAp`/APAV3/ARjȺPA0/APA@;/APA}G/A>PA:K/APA"|k/AVPA/AnlȸPA Ѫ/A (PA:"/AXZHPA/A궼PA?%/AXZ(PAh^/AȤPAh/A뫉PAh2/AVPAD_/AVȗPAɾ/ApPA^/AƥPAHf_/ADPAM%w/ARj{PA/A2)(tPAV /A>HlPA.!/AVfPAHR!/ADbPA0 _*"/A6^PAH_"/A|\PA(lR#/AD(YPAV#/ARjTPA(l`$/AKPA($/ARjCPA(l`d%/A;PA `%/A2)(4PAh x&/A|,PA@`>'/Aƥ!PA '/A̷PAfr(/A PAf)/ApHPA X)/APAxD */A (PA X+/A|PAXr+/A HPAȍ!1,/APA8,/APAP-/ARjPAȄ-/APA aw./A HPAa//ARjPAQ//A2)HPAp2Y0/ATPA8*b0/A>HPADy1/AphPAbT2/AąxPA_2/AzqPAPW"3/AąhPA=4/ARjdPAPW4/A (^PA05/AXZhXPA0#5/A|(SPA.6/AVGPAJâ6/A.@PA`(7/AD:PA2ec7/AD2PA 8/AV(-PA##8/A궼&PA׳c#9/A̷PA׳c9/AVPAPNr#l:/A̷ PAc;/A궼PA`d;/APA)d/APAk?/A.PA@*J%?/A.PAA/A.PA(jdA/A6hPAxOB/A (PAB/ADPA``C/AVȷPAeC/A6PA`/C/A\hPAEWTD/AVȯPA@MD/A^IPA X%1E/AThPA%E/AThPA@!eGF/AHPA`%F/AVȏPA輄sG/A (PAfH/A H}PAp톭H/A.rPAXVI/ADjPAp-J/A궼_PAXؑJ/A>h[PAa&K/A.QPAfK/A.IPAXIL/A.APAL/Az8PAL/AXZ(2PApc'nM/AĨ,PA0!N/A#PAOǠN/A PA=<.O/AzPA4O/A> PAFP/A|PAh}OhP/AuHPA7Q/A8PAj̇Q/A.PA0 R/AuHPA(pR/ApPAaBhR/AXZHPA"h^S/ADPAXS/A>PAaB2T/A\ɈPAؘ\ȪT/APAHhT/ADPAv(|U/A8ȹPA4!V/A6PA(W/A궼PA|)W/AuHPA(X/ApHPAbX/A궼PA`k;iY/A2)(|PA{Z/A8ͨrPA&[/AXZ(jPA+ɰ[/A6H`PA(oi.\/A궼VPA`b)\/AĨLPA+]/A>BPA [Y^/A89PA4j _/A궼/PA [ʲ_/Au(PAuj`/AąPAa/A(PA8~-˗a/AzPAa/AVPAdm/8b/Ag@ PA Ga/A̷PA*a/A>(PA+ˑ`/A>HPAh0˚ `/AĈPAx*n_/A궼PAt4ʬ^/A|PA`bie]/APA@A\/A|(PAb\\/A궼ȽPAx" [/AȳPA(剙Z/AVȧPA`k;iY/AThPAi"Y/ATPAHUyX/A>PAhthW/AuPAh}OV/A̷wPAV/AzoPAHih5U/AXZcPA懑T/AąXPA"S/A(PPA+((7S/AuHFPAP_R/AT;PAtVqQ/Az0PApcdžP/ATh$PAtVO/AzPA&FN/A(PAPM/A\bU1OAp[L/A&v1OA輄ƓK/AQOA(&J/AeOA FƆnI/A}bіOAfH/A|QOA@6G/A\bUpOAAG/A^OA@!%rF/ANIOA(ad%E/A6_1/A[QOA$U>/A|OA0|$=/AmyqOA Qd-=/AmyqOAWkČa./A|1 OA@>a./AȍKQOA@>i-/A8XOA !,/AȍKOA8b,/A@oOA `,/A@oqOA``[+/A$ЉOAX{$!*/A\bUOA` ?*/ArOA`8z)/A[OAП(/A}bOAV(/Ae1OAz '/AmyOA`&/AȍKOAHR l&/A i1OA`8%/ARњOA*%/A}bqOAШE$/AdRlOAhL_$/A[QOAV#/AmyOAD_#/A}bцOAM%_"/AlB1OA!/ANq~OA0 F!/A6_qzOA /A|vOAs5 /A isOAD_ /AqOAHf/A&v1oOA:/AlBpOAV/ArqOAzF^/AȍKsOAh`/ARquOAC,/A[vOA/AFH1rOA/ArrOAm@/A\bUpOAm^\/A6_qjOA81]/A|fOA8:3/AmyqdOAX]/AraOAL]/A4A`OAX/A4A^OA\/ANq^OAX^/A\bUq\OAZ/A[ZOAU@@/A}bVOA ݞ/Ae1SOA\/A6_QOA3/A&vPOAxՈ\/A8XOOA>/AmyGOAw/A\bU17OA $ɯ/AT)OA0:/AE'OA9Ļ/AR#OAX \/A@oqOAxՈ\p /AmyOA@LG| /A8XOAk /AȍK1OA`'A /AXr>qOA(u[[ /AFHOAر? /AXPAOAp޻F /AFHOA /ARqOA@U[u /Arq]OA/A6_AOAH^[m/AdRlq/OAyh/A iOA0/A}bqOA0Z/A&vOA`'A1/A@oOAڮ/AEOAh0/AXr>OA0/A|+;OAHZ#/A|+;1OAh9U/A@oћOAK/A}bOATbZ/ARqOA&X/A8XXOAPpo/A@oqFOAHf/A4AQ2OAPy/A7OAԪ/AXr>OA&ҹT.A&vOAAY.AȍKQOAy$.A[QOAP}.AFHOAPY.A6_qOAȦyR.ArOAٸ7.AXr>qrOAX.ARcOA&c.A@o]OA W.A4AWOA8˱.A71VOAȯؑ.AdRlROAoy(.A71FOAȯ.A i;OA9渓.A}b/OABpV.AFH1"OAXx.A&vQOA&c.A@o OA.A}bQ OAKR.A iOA+.AL,OA V.AFHOA@ŷ.A}bOAT.AN1OA2.AOA.AdRlOA/.A|+;OAxfXk.A7OA#.AFHOAи..A|+;QOA|.AR1OA/6.AȍKOA$.A7ѠOA`5.A6_1OAxfXr.A iOAxf.A@oOAK.AEOATwr.AV1QOAx.A iqOAB.AFH1OAT.A}b}OA.AȍK1yOAHl.A4QmOAA.A}bhOAAg.AFH[OA(j.A8X1NOAJv.A[1EOAAל.AFH1BOAVQ.A@oqFOA0/~.AV1;OAqV.Ae/OAHc֋.A@o1(OAJ#.A@oq&OA.u.A"(OAHc!.A6_Q#OAo"֛.A8X1OAD.AFH1OA0/~.A iQOAfV.AEOAS?.AȍKQOA.A iOA\.AeOAhI7.AFHOAo".AN1OA/.A.1OA\U-.A4AOACկ.A iOA%*.A71OAo".A\bUpOA.A}bXOAPUk.A.BOAP x.A8X(OAP x.A4AQOA..A4QOAP xc.ANOAxU.A.1OAT.A[OAP x#.A4AOAe).A}bQOA.\.A4AOA.U.AFHOAT.A4QOA8S.AȍKqOAT.AeOAdK.AXr>qOAd.AV11OAX.A6_qOA8\0.A8X1^OA.A[1UOA7T.A7OOA8(>.Al,%MOApq#.A}b?OAxs.A6_q:OA8ۚ0.A7OA\Q.AX{KOA6).AhrOAj.A|4ȔOA@e3L.ALOA@#L.A(OAxm.A4OApq.ATOA4.A OAX.AX{OAX..AT@OA .A*OAd.AĦ ;OA7.AZOAr.AwOAWt2.AƐOAX.s.A_OAX%԰.A) OA@#p.AX{ OA@e$.A OA.Ao OA|.A0ҴOAI.A OAIz.AOA.Ao$OAIz.A4@7OA`7*3%.A9AOAx3.A NOA@nD3O.A UOAç.A̟_fOA5n.AodOAI.AofOA 3.AƐgOA`@2.A|4{OA@nD.A|4ŀOA(r4.ApT@OA.A(`OA.AX{ȀOAe2.A OA`7*sl.A OAdK29.A(`!OA(r.A|4Š5OAr.AROA`@r.ApOA X.A, xOA`I>Y.A`OA@w.AOAHXr.AOA`I>.AĦOA$V.A0Ҵ@OAe.ApT`OAr.AƐOA`Y'j.Ad0oOA`I>.AT?OA(.A0ҴYOA(qt.Ao`OA$=.A)OA.A OA^.AƐ@OA .AoOAdKr.AĦOA.A$@OA-1v.AOA 2i.A|4#OA[.AĦ`9OA-12.A)SOA r.AxDxOA (.A)OAB.A;OA p.A`OA ҳ.AoOA$2.AƐOA$!.A OA E.AxD`-OAȍf.A) JOATkh.AT ^OAh.AĦ@bOA[`.A_~OA@wrR.A OAM.AOAZ.AƐ@OAa.A OA h.AƐ`,OAef.ATKOA-1r.AĦ@bOAdK.AĦ|OA(r28.Ao OA`I>2.AOA$.AOA(2n.A OA.A@OA`7*!.A `OA`7*a.A_OA$ҏ.AT`OAs.A4`OA@nD.AxD8OA$.A`POA`@.AxD@fOAQ.AxDxOA$.ALOA(r.A4@OA[2}.AxD@OAR7r.A OAxI.A( OA.AEPAX.s.AiZ@ PAxӾ.APPA.A>b@PAT.AMM@PAxs.AP!PA[r.AN %PAR7K.A8K'PA@w.A~U`)PA>,V.A+PAp2.AF 'PAhŸ.A"PA X.A \PA(r.AE` PAe.AFPA@nDs.AFPA`7*!.Ao OA .AOA .AĦOA$2.A OA`I>.AOAs.A0Ҵ`{OA2^.AxD@fOA.AWOAdK2.AX{JOA2^.AX{BOAHX .A  =OA2.AxD8OA@w2R.A_OAr.A( OA@.A)@OA1h.Ao OAЖ1.A$OA`.A)OA-1r.AT OAf.A$OA.A$@OAh[Rq*.ALOA .ATOA`I>2.A OA0Ɇ1i.A)`OA +1.AOA1.A(`OA(.ApToOAPpB.AaOAPз.A(`QOAhdܐ.A0ҴBOAh[RX.A|4.ArdPA.A>b$PA`ڼ͔.A"|PA0Z-].A-{DPAތ.AwDPA9-.A=dPAhz.A>b$PA9;.A=dPA.A-{dPAl.Ag$PA9{.AwPA-.At~PAlmҥ.A`PAlz.AtPAؘ\Q.A'ipPAF.AgPAHa3.A`PA, .A'iPA.ArdPAHa.AhCvPAh,Ф.AgPAP,u,.AoDPAHaͺ.A>bDPA5n͖.AFyPA>9.AnlPA,.AYq$PA>ң.Aw$/PAP,u̹.Ao$9PA>G.A`/PA@ .At1PA쬢.A'i7PA&,1.Ard>PA0lء.A>bdBPAM,.A]DDPAH#v.AgLPAGl`.A=dUPA>lV.Anl\PAM,).ArdfPAP5+.AYqkPA̰.A'iuPAP5ky.Anl{PAlP.At~PAP,u9.Afj$PAP,u+.A>bdPA,J.AfjdPApo.AwDPAH#l.AePAh,.ArdPAhZ,.At~PA~l|.ABndPAP5k.AfjDPAhZl.At~PA3~.AhCvdPAP5`.A`PAhZ=.AbS_PA0c.AbS_.PA,.A`7PAp+.A]DDPA&l8.A>b$LPAP,u,h.A-{dTPA+.A-{D]PA@Р.AehPA>.AfjdpPAhS.Aw$wPA0c.ABn}PA3С.AbS_PAh$.AdePA0Z..AnlPAH#lO.At~PA0Zg.AFyPAH#읢.AgPA>ˢ.ArPAH#,.A=dľPAu*.ABndPA,m.Ag$PA9£.AgPAhڣ.A`PAP,u.AhCvPAu5.AfjdPA>,.AoDPAu-.AFyPA,.AbS_PA5n-.ABn PAmѥ.AnlPAm.AePA,l.AYqPA.AfjD!PAhF~.AD,PAHa.Ao2PAS.AFy9PA@W4.A<PA5n-S.A'i=PAlm.Ag<PA.Anl;PAHá.AYq;PAc.A>bd:PAcv.AFy8PA-.Aw$?PAl-D.AdCPA#ZL.AFyIPAZt/.ArDWPAZt/.AbS_^PA`ڼ-X.AbS_fPA,-.A-{kPAc-.AoDpPAx.}.AhCvsPA`Ȩ.ABn}PA@Mw.A>b$PA#Z.AtĊPA`2ͭ.ADPA.A'iPA講n.At~PAx.A'iPA .AlPAn&.A'iPA 6w.A-{dPA#Z.A`PAvn/.Ag$PA.AYqPA -S.AYqPAmZ.AYqPA@nر.AFyPAXoy.A-{DPA+/.AgPA+o.A-{PAO.A0PAdm.AhCvPA/ֳ.Aed PA8dz.Afj$PAxoϳ.AwD&PAx.A=d5PA蚇.At~APAH`.Ag$SPAѡ.AFy`PAH`޳.A'imPA蚇ij.AFyxPA -So.A>bDPA蚇/Z.A$PA.&.ADPA.A>b$PAx/.AwDPAxτ.AlPAѡ/}.AdPA.AFyPA -So.At~PAm.l.AFyPAm..AYqPAH`o.AhCvPAvnv.AtPAvn/.AeDPA@8/.AtPA`Y'.AEPAx.ABnPA+ʰ.AedPAxﲰ.AlPA`Ȩnn.Ao$!PA).Aed)PAQ.AoD0PA@Mׯ.A>b$<PAx/.ArdFPAX/.AoRPAx.A^PA@8ϟ.A>bdjPA`Ȩ.Ar$xPAn|.ADPAn<.A"|PA...A"|PA@M>.AhCvdPA@8Q.AnlPA@8oU.AlPA+<.A-{dPAQ.ABnPA講.AnlPA+.AgPA講.AFy PA`Ȩ.AfjdPA.߮.AtPA?..ABn&PA#Z..AfjD9PA(?gn.ABnFPAvΤ.AnlSPA@MnԮ.Ae`PAZtn.A'ifPAQ.AruPA -S".Ag$PA -So.A$PA -S.AePAD.A"|$PAdmow.AFyPA講Ε.A>b$PA.ABnPAnð.AYqPA .A\PA $c.AЇ߷PApvoɱ.AF7PA蚇%.A@wPAo.AhPA8\.APA?/߳.AhPA[oB.AwPA[/.AWPA8$ٴ.AhPA8..Aw3PApvo.A@ܗDPApmfpM.ABHPAH.A0WIPA6L0.ABHPA1K.Af\wRPA.AfPAq.AmPApmf.AoPApmfpT.A>+wlPAsp0.AfPAֻ.AgPAh[Rq.AoPAHl".A0{PA1.APA?EU.APA +.AB׆PAHl1.A07zPAH.AlPAr.AraPAmձJ.AVPAH.ATPAhR.AUPAHc.A[PAHІ.AU@[PA-1r.A07ZPAr .AMPA 2.A=PA$.AbW.PAr.AЇ!PA4.APA.A"bWPAhRq.ABPA&.AwPA rP.AЇPA[r}.APAQb.AA:PA`@ҝ.AB엨PA[.A0WPA(r.AwWPA@w.AB׆PAi.AhuPA r.AnPA$v.A悫lPA r.A0kPAR7L.A0WiPA`@.ABgPA@nD.A>+cPAx.AWPA$r.ALPA3W.Af\wBPAs'.AwW@PAs.A?PAX%t4.Aw=PAs.A4PAX.L.AwW0PAX..AFw)PAW4].A%PAI.APA JtO.APAw=4.A07 PAs.A>+WPAx\.A"bWPA.APAW6.APAw=t.ADPAu.A0PA.A"bPA.APAe)54.Af\PA4.A0PA7.AwPApqY.APAP5.A"b7PA4.AhלPAC.APA4.AЇ߷PA8Jp.APA8St.A7~PA6.A}PA.[.A"bPA4.AhPAC.APAC.APAP.Af\wPA׫.APAƵ.AhPAp](.APA%..ABPAx5 .AlL PA0AF.Aw5PA%n.AwFPAPu.AWVPA4!I.AѥXPA.AFwiPA\.AwwwPAp].A07PAP.APA\.APAp].A"bPAP.AwPAC~.ABPAP.ABPAP.APAu}.APAju2.A7PA.A)PA65.A>+;PAjG.AMPAP .A>+w\PA4.ADjPA0A.AwuPAxu.A>+WPA.Aw7PA.T.Ar䗢PA..AlL8PA.A>+ᗻPA8J1.AhPA+.ABPAC5.APA4.AhPA%uc.A>+wPAPO.A0PAPu.A76PA8SԬ.Af\QPAP x.A>+wdPA4U.A0sPAn4).APA8St.APAe)վ.AЇPA.APApqj.A>+PA7t".A"bWPApq4.AwPApu.ArPAѡ].AQRPA.*.ADPAPX.ArPA8\0.ArPAn4.Ar PAu.Aw7 PAnt>.Af\ PA7t.Aw7 PAdt.A' PAd.A>+3 PAʹv.A7> PA8S4.ArP PAX%t.A^ PAdt.Awp PA74?.A"b PA8\0ԡ.A PAnԳ.A>+w PA4.A PAfvYy.AƔ PAQ.AX PAx.AiZ@ PA>.A \ PAx.AP PAs/.AN@$ PAIs.A^S= PA8S4.A\cHS PA .A\cHi PAsv.A \{ PA.A` PA.AF PAW`.A^S PApq.AP PAX".AiZ PAe)w.A<"W@ PA8S.A^S PA9.A7R@ PACu,.A~U PAP xu.A]. PA8Ju;.AbS_@@ PAPն.ANN PAPu<.AN@\ PAȍ.A%>b PA^ʜ.A Nk PAKA.A )n PA).AV=r PA J4.APVw PAޣ .AII PAwF.Aʗ PA@j~.AH PA sa.A PAM.AT PA .AR# PAN.A4þ PA8\0;.AN6 PAӘ.A>C PAV.AE PAak.AE PA8JUK.APОA PA.A  PAe2.A< PAq.AX PA5.A\cH PAf6\.A` PA.A \ PA~8.Aw PAq֠.AiZ@ PA0.A=d PAHcv.Ae PAfv.A] PAhIA.AJ@ PA(&..AiZ@ PAV.Av PAV`.AL PAj.Aآ}r PAWk.Aܫ PA8$ .A PA@^.A \ PAxo7.AP PAw.AP PA(w.A8K PAZ.A8K( PAw.A\cH2 PAxow.AbS_ 9 PA]a.A^S= PAΘe.AP? PA[b.A24@B PA G.A"|@A PAи.8.AeD PA`[.A<"W@J PAxf؇.AeR PAX!ظ.AX\ PAH.AN@d PAX!8.Ael PA@; .ANn PA&cxl.A^Sn PA@;.A~Up PA(&v.A~U`q PA9-.AVv PAj]fQ.AFp PApT.Afjj PAw.A~U`i PAXؑ.A\cHi PA@;.AJ f PABp=.AN^ PA8˱x.AbS_@X PApT.ANV PApwi.AJ V PA+.A8W PAa&G.AXT PA49.A<"W@R PAfv9.AXM PAx]}8.AMM`K PA輄L.A42@K PAxՈ.APG PA.A֎ J PA.A|O PAΘe.A HW PA@e.A(Gwc PAx" j|.A@m PA8(t.Ab`> PA8˱_.AiZ@Q PA x".A`b PA V.A8Kp PA&cx.AP~ PAxxk.A^S PA VS.A] PAX @.Afj PA V.AP PA8.AMM PA.A8K PAȯ.AP PAoy.AJ` PApTx.A=d PAxf8.A>b@ PA%.Afj PAȯx.A<"W PA/$.APPAK׹.A~U`)PA Vw.A8K8PAx..A'iIPAX!8.AeZPA .A<"W@jPAx.A>buPA@ŗP.A>bPAи.4.A8KPA@;".AN@PA w .AiZ`PA.AiZPA Vx.A=dPATw.AJ PAw.A=d PA@;.AN PAX!x.A~UPAx]}.A~UPAKw.A^SPAи.8.A8KPA .A>bPA8.A7R!PA]V.AX.PA78.A\cHCPA(j+.A<"W SPA].A\cHbPAи..AbS_`gPA(j}.AN mPA.AN@tPAs.AbS_@xPA@.AbS_@xPA(sxs.AsPA(jd.A=d pPAA.AP_PAЖ1.A{ZPA(ad.A42@UPAxw.ANNPA(w.A8KGPAw.A7RAPA K.A=d 8PAw.AJ`4PA .AMM1PA.A^S-PAfv#.A=d (PA~.A \#PAJ.A`PA(&v.A\cHPAJ.A7R@ PA .A\cHPA v/.A\cHPA/.A>b@PAm.AMM`PAV.Ag PAPu.AbS_PAhI6P.A<"WPAx.A>b@PAj3.AFy PAu .AXPAP..A<"W@PA0A&.Ag PA_.A֥PAp]D.AMMPAe)uI.Ag`PAj.A`PAn.AePA6.ANPAt.A>b@PAt}.Ag@PAju.A8K(PA6ue.AJ@=PA8Ju-.AN@TPAp.A<"WlPA8St.A>b}PAXt.A<"W@PAP xq.A^SPAO.AJ@PAju2.A \PAj.A=dPA8Ju.A<"W PAXt.AJ`$PA.A \;PAPj.A~U`QPA=.A^PApt.AN ]PAX.A<"W\PApqC.AiZ`XPAn.AXUPA.AN@TPApq.A7R TPA8x.A \ RPAs.AbS_@PPA7>.A]NPA Jr.AXLPA8\0.AiZ@IPAks.ANFPAQb^.AXDPA ԓ.A^SEPAXؑa.A \CPAȄ.A7R@CPA.f.A42@CPAf.Av_BPAQ.AyCAPA^.AhCv?PAP,u.A/@PA蚇/L.Ap3 >PA7 .A\cHBPAr.A<"W@BPA@l".Aܠ>PA=+ᗣPA(q.ADPA(1.A>+wPAh[R1ո.AFPA$.Af\PA0.A>+PA0Ɇ>.APAh.Ah PA0Ɇl.AhPA$2s.A@ܷ+PAyp.Ah;PAmq<.A>+KPA(.Af\wZPAH1 .A0kPA.AB}PA.A׋PA6g.APAHl18.ADPA0Ɇ1i.AD7PA0ɆѬ.AhPAHXܸ.ArPAhRȱ.A7PA1.AF7PA:.APA䓱Z.ArPAHX.AwW PA .Aw0PAڹ.AFwAPA6ֹ.AF7KPA2 .A>+wTPAdK.A\PA1.AwfPA.ABoPAH1<.A>+{PA$.A07PA`I>2V.Af\wPAHX .AB~PA3о.A>+zPAe2\.APA`@2!.APA.A׍PA3_.ADPAx.A0PA ^.APAdzD.ArנPA 3}.AЇPA@e.Ah״PAx3.A7PA3 .AwWPAdzK.AF7PAw.AwPA@nD3.A7PA@e3.A7PA 4.Af\PA3.APAdz.Abw%PA8\04.A.PAx_.AW4PAdz.A9PA3.AЇ@PAx.AЇIPA@nD3.Ah[PA@nDy.ABfPA8\0.AtPA -.APA@#.AwPA5n.ArPA=&.AWPAp)l.AwPAPW"a.A^l7PAκ.AפPA0.APA#$.A@ܗPA#.AV׷PA".A^l7PA#c.A^lPAr #v.APAi.AV׳PA0|.ABPA.APA0|$!.ABPA#.AFwPAh#?.Ar׸PAhD.AV׷PA#G.ABPA)# .A7PA Q$.AԗPAx.A^NPAWk.AB췷PA0.A,WPAHE.Af\wPAhDm.A7PA`$.AԷPAH3$.A^lsPAhD$.AFWbPA%.AVPA.ADPAhD.Abw5PAH3$8.AW'PANᤢ.AЇPA).ABPAhD.AF7PA$.AVPAN$.APA.A>+wPA(j~.A7PA=%.A>+wPA`/%.AF7PA%.ABPA(sx$e.A:7PA~%.AקPA`/n.APA(j.Af\鷠PA(j$[.AWPA~%.A@ܗPAeZ.A>+ᗓPAN$.AWPA@*J_.APAx.AЇPA X%#.AwPAs%x.A:PAx.AtPA(ad%_.A>+kPAEW.AQPA|q%.A>+CPAx&.Aw8PA~:.A@ܗ4PAx&.A.PA|q%.AV׷,PA|q.Af\w*PA3C&R.A>+#PAj].AwPA%d.APApw.A>+W PAX&!.A PAj]&|.APAO..AJPA e WSBronte AGAY,.A7OAdm/8b/ABPA|iP O..AJPA`5w4.AiZ`PAxoj.A'iPAAw.APPA`5w.A \ PAB.A^SPA`M.AiZ@PAK.A~UPAXi.A΄PAK .A>bPA/wo.A~U`PA8w.A \ PA.AXPA V3.A7R@PA@W.A=dPA@;xf.APPABpxz.A8KPA@.A=d xPAX!.AiZ@qPABp8:.A7R@kPAKd.Ag gPAw.A \ bPA.A \[PA/H.A \ RPAX!x|.A7R@KPA VSA@(o\A(R`SA`ߑpPA(RSA)pDA6`SA`o$ANSAp7dǣAFPSAAVs1SAP?Ag `SAA}SApI`A$@SAcAHSAcAL @SAPc /A(R@SAV3AHSAl)Am@SApASAp]_ˤAm SA,A! SA v"CA(R`SAcbA! SAjA& SA/AlLSA0?A@SAm`|AN@SAVA&SAPVAr< SA@HA!SApI ̞An SABAr<SA v"Am`SApI Ar< SA06~AHSAcA}SAQjA$ SAZ A&SAq9A*SAp]A}SA; AlLSAAL @SA0?A SA@HAlLSA<@ASAu=ASAC_ڕAHSA@QA$ SAP?YAHSA v"ߔA!SA 6Ar<@SAQA! `SAZAn SA@QfAߔSAp?ASApI A! `SA06~ Am SApIڍA`SA)|AASAm uAr<@SAAg SAAL @SAl) A$@SApI An SA06~ ِA!SAPc !Ar<@SAp]aA$@SAZ Ag SAm An SAq@AN@SAQ@UA6&SA0?@uA!4SAp@AASA ƒA"@JSAj?AL @VSAp?Ar<@dSA v"@AHkSAQ@A}sSAj?yASA _-A6SA~Ar<@SA~!ASA v"mA}SAQASA< ASAƟAAg SA պߌA SAڞASAƟA(R@SApI!ASA5AL @SAmASA5A6SA v"-AL SA06~ൈAm@SAZAm@SA#qAm@SAPxߑA!SAޱA! SA߹AHSAZ ASAPxuAL (SA#A!4SA@HIAn :SAPcAn BSA߹AGSA#UAN@KSAPxAL @NSAC=AOSAjAOSA  A! MSAZ1A$@HSApIAlLESAPcAm@BSApI!A*>SAPA*6SApaA6.SAPA! @'SApA(RSA`%A(RSApTAX|SAV@A} SAj?ݗAg SAQ@UAL @SAc?͘A*SA>aAg SA 6?%ASAc?͚Am@SAQ@UAlLSA0?@A! SAp]aASApI ASA5qAL SA`ASApiA}SA0?AHSAPe[ExA7RSA0?<A(RSACuASA v"@AL @SA 6?A(R@SA`yAsSA 6?%ASA v"@-Ag SAV@eAn SA@Q?mA&SA@ASA v"@AL SAFAƥ\SA 6?%A! @SAp?A6&SAj?A(R@-SA`?QA(R@5SAp]A@ASAPc=An JSAAn RSA̠A@YSAPX(A:\SAݖA$@`SA A! eSACANqSA̠An bSAZ1AgSAp]AWSA`?A!\SA06~uA(RcSAڞAlLoSAp]AwSA]A*~SAPx5AH|SAl)Am@zSAP?=AlLwSA v"@AvSAQ@9A! uSAP?AlLuSAj?yAr<@tSA`?QAoSA 6?A(R@kSAp?AlLgSA 6? A}cSA<@ɡAlL]SAV@AN@SSA@Ag DSAp@)A(RKSA v"@A! USAP?YAL @VSAQ@9A&USA<@ɧA!TSAP?AAN@SSAVȨARSAppAm@RSApAm@RSAcA@QSA 6A$@PSAjܫAL XSAQ8Ag \SA0?XA&mSApAlL}SA v"AL @SAV@Am@SA@ A6SAj?yAr<@SA 6? A*SA@A! SA v"@Ar<@SA,?AL SA`?5A$@SA<@ɧANSAj?yA}SApIrAIfSA@qA*SA,?Am@SAP?A*SA 6? A! @/SAP?YAlL=SA`?AISAQ@9AL XSAp@AaSA`?5A!lSAc?ͪAlLuSAc?MAlLSAq@A(RSAp>AHlSAV@A&]SAV@AHLSA@ Am@BSAp>}A!4SAV@A&%SA0?@uASA`EAڋSA v"@ANSA@A(RSA0?XASAcAg SApӿA6SAVȱANSAPȊ4A0ZSAj@A! SApӿhAN@SATASA\@$AnSA 6Ag SAQASA@QPAg SAjASA,xAL SAQA*SA@QеAL SA v"AlLSA0?<AlLSA`A6.SAPAn :SA v"A$BSAQAWSAppAXSAP A$ZSAVȸAm@ZSATA$@XSA 6A$RSA06~``Ag DSA@H_ؼA6SApmyA8t*SA ^A! SA@H_XAL @SA`AlLSA\@gAr<SA0?Ag SAcASAVlAN@SAKAm@"SA~<A0&SAP0An *SAcAN1SAA!<SAjA!DSA_AN@KSA@H_XA!\SA`4Ag dSA _Ar<@lSAC_An zSA _Ag SAeFAhSAp]_AL SA^An SA@H_A&SA^$AlLSApI`pAn SA`ANSA^$ASA#_AHSAPx_<AHSAl)_A*SAZ`8ASAPA*SAPCAn SA 6A(RSAcANSAjGAHSAPASAP'ASAPAn SAqA!SAp]AL SA#cA&SA5ANSAkAr<@SAQASAPcA$@SACSASA/AlLSAPcAN@SAƟ3Ag SAƟAn SA AL @SAV3Ar<@SAjA$SApoASAPc/A@SAp@A$@SA@Q?{ANSA>A! @SA?A*SAp>AHSAq@+Ag SA@Ag SAA*SAOA! SAAlLSAPcAbS_DSA A$@SApTASAASApAL @SAQAm@SAjASAA$@SA#AlLSA`p#AedSA0?'A$SA#A! @wSA0?'AHlSAA}cSAAYSA;Am@RSA<A*hSAPAHtSAPA!SA 6zAlLSA0?JA(RSAc"A! @SA 36A.d& SApӿASA;A(RSA<AlLSAp]߮AlLSA0?AHSA``'UAhSAjASA@QASAV@AL SA<A$@SAPASA;Am@SA,jA(RSA;6A*SAqA(R SApAlLSAAn SAASAA!SAZjA} SAASAcA}#SA`&A! -SAm`A! @7SA ^zAlL/SA^NA@9SA`&A$BSAPx_AL @NSAztA#SSA@H_fA&USA`An ySA^2An SAp]_vASA/`FAg SA5_Am@SAV@A&SAp>RA6SAp@AHSA 6?^A&SAzO&ASAj? AASApA! @SA<A6SAaAg SAqASA0?A! @SA,qAm@SA`'A\XSAhArSA=FAJSA AhesSA`A!SAASAmAn SA A$@SA߹AlLSAC!A$SA=AlLwSAPxAn iSAPAWSA<AlLESApuAn :SAVA$@(SA@A48Ar^ SAPxߑASA0?An SA50A8;SSA/iAlLSAA$SAPxAg SAl)AL SA]A(RSAc AL @SAPA$SA 6eAg SAءAɮSAjA}SA`BAsaSA#_ASAV@ASA v"@A&SA06~ YA$@SAASAp]aAN@SA 6, Ar<@SA AHSAq Am@SA Ag |SApI( AHkSA0, A[ 5fSAQ8 AWSApӿh A$BSA@* At~:SAP A6.SA AeSA VPМ AN@SA0? A& SAAlLSA?iASA1ANSAPdA!SA v"AHSAP|A@SA8iAl*aSAPA(RSAPANSA@QAn jSA/AZSA#Ag TSAPc`Ag KSAڞA!<SACA! `>SA`?|Ag `=SA ,Ag <SAZ A(R;SA>oA :SApA8SA`_A6`7SAq@A66SAC_>A7SA@A&5SA0?AL @.SAQA! @'SA@QAL  SA0? A SAƟASA5_Am@SA 6ASA v"ASAq$An SA>ASAmQAg `SAPc`aA}SA {ASAVA! @SAm`AHSAPcAlLSApASAA&SAPAm SA^Ag `SAC!ASAp]_=A&SAMAn SAp?hA}SAA(RSApAn SAC_Ag `SA06~<Ar<@SAQNASAVVAlLSApA*SAVAg `SA^A! }SAQ@A@ySA`Ag `uSAl)Ag sSAC_A}sSA`Ar<@tSA<A@qSA>AhSACA``SAA}\SA_A6`WSAqA}SSAZ AlLMSAAHSApIA6ESA,A$BSA A(R@=SA̠A9SA_A!4SA0?AN1SAZ A! -SA A(SA`AH$SAC A!SAC ASAqA(RSA A&SAAL SA<A SAAn SA`A(R`SAP?ASAqzA!SAPc hA$ SA0?RA6SApӿ=A!SA v"&Am`SAmA6SA A& SAA SA`A*SA0?A&SAc~AHSA/ [A SA?0A`SAl)AL  SApӿA}SAl)_wAr<`SAP@EA$SA v"ASA v"A$@SA@AL  SAPYAr<SA^2Ag `SA v"Ag SA A}SAV@AN@SAPcvA SA,?Am`SAc?ASAPA! SA@QASApA SAc?ASAPc`}Am`SA06~`RAm`SAj?A$ SA0?ASAP?ASAUASA v"&A6`SAQAg `SA,Am SAc?Ar< SAq@ASA A*SAASAmfAg SAA6`SAPASAPA}SA06~uA(R@SA>SASAl)0ASA@QA6SA5ASAp?A$@SA 6zAL @SA`XAN@SAZFAn SA 6?BAHSAC7Am` SAƟ%A6`SAl)A(R@SAVA}SA,?#A SA1A!$SA 6?BA'SAPc ZA(R@-SA`tAH3SA,A8SA v"A!<SAp羧A(R`DSAP?AN`JSAA! PSAC߽AL @VSAPcAm`YSA_Ag dSA`AN@kSA,?AHsSAAlLvSA`ASA,?AlLSAP?ASA/`ASA 6%Ar< SAPc/ASA,FASAp~ A"SAƟA! @'SAA,SA;}A2SAjGA 6SAPc`A}<SAA$BSA^@AISA A(R`LSAq9A}LSA~A(R`LSAVA(R@MSAP?A! MSAl)7A! MSAm JANSA,AHSSAQqAn iSAqAA!dSAAg <SAV@sAr<`3SA@Q4An p)SAQ8Am@"SAA SA v"A SAwA& SAp]}A! `SA@HASAQ8ASA@HA SAV@AHSA0?`ASA v"@AߜSAV3Ar< SAq@AlLSAƟzA(RSAp@A rSAZ`A`hSA<mAiSA#@A jSAAn jSAp]}Ar<`kSA06~ A!lSA@HAg lSAj?A(R`lSA 63A(R`lSA>Ag lSAP?vAHkSA AN@kSAQAm@jSAQAhSAdAlLgSAcFA*fSAu> AlLeSAmAdSApAHcSA#An bSAp>`A$bSA#_A``SA v"A6`_SAA! `^SAq@dAr< ]SAZ 1A!\SA Am [SA A ^SA`A(R@]SAPcA\SAPxXA!\SA̠,A}ZSAAm`YSArAWSA AL @VSApAg TSAAr<`SSA -A6`OSAcAg `MSA@QA(RKSAƟAJSAP?vA$ ISA06~ KAHSA< A`HSAp~A`HSA`{A$@HSA0? AHSApӿAm`ISA`?|AISAp~.AISAA$ ISAc?A*HSA 6?AGSA@Ar< ESApAn BSA/AASAl)_A*>SAj?A<SA`lA :SAQNA*7SA3A4SA_A 2SA A.SAcAN`*SAPx_A6&SA0?Ag #SAm A$@ SAPA& SAmAlLSAA}SA@QA! `SAm uAN SA,jAN@SA,jA6`SA06~`nAg SA@Q{A$@SAVA(R@SAVASA@QA! @SA~AHSApI`AL SApI`Ar< SApIA6`SA; ASA A(R@SAA&SAcANSA AlLSAq$ASA 6?%A߼SAPxASAQASAp.Ag `SA`PAN@SAASAl)_AlLSA`A(RSAVAn SAP A*SA_sAr<@SA 6A*SA v"@AHSA 6Am SA#A*SA5"A! SA v" AHSAPx_AN@SAPASA 6ASA5 Ag SAp~ Am SA ^3ASAPcKA6`SA@HmAߌSA`ASAp?A`SA Am SA%Ar< SA>SAL @SA>ASAPAm@SA@A}SA<:Am SAZ`qAg SApA& SA@QAHSAqAlLSAqAL @SA)A! @SAc?MA$@SA_dAm`SApI An SA@HAg SApAL @SA#ASAjAn SAC(A SA,?@A$@SAp[An SAm uA6SA,AL SAp]ߠAN`SAA߬SAAL SAAHSAqAr< SA̠,A6`SA v"CASAl)_[AHSAPrA&SAP?AlLSA`?A$SAl)Ar<@SAڞA SAj?A! @SAp@ASA 6WAg SA 6?A6SA5_A*SAQASAp>A$SAA(R}SAV@eAn ySA^yA! uSAP?Am@rSA^AlLnSA߁A`hSA/ xA!dSAƟlA*_SAAr<`[SAA ZSA v"CAXSA0_گAHpWSA/`FAn :SA@jA ,0SA A.Y-SA 6An )SAZA! `SApAL @SAZASAA SAPcA*SAqyA*SA,AlLSA`A SAl)_Ag `SA@Q?mA(R@SAƟzAm@SA<ASAV3AN`SA<@WAL SAl)Am@SAVA6`SAl)A! SA< AHSAq@dAg `SAC A SAQA`SA@H_An SAp]`AlLSAPx<AN@{SAAn qSAC=Am@jSAA fSAڞAL `SA#AH[SAA6USAAlLOSA ޖALSA06~AN`JSA#cANISApA6`GSAA! ESAP@EAHCSAA?SAPA >SAP?AN`:SA`XAr<6SAPx_ A1SAAL  /SAA(R`,SA AH#SAA SA@A(R@SAƟASApASAPAr<@ SAp~A$ SApA! `SA5AN@SA@H_A*SA/`A6SAA$ SAPAr<SAP?AN`SA tA`SAqOA6SAC(A! SACAg SA<A$SAqrA@SApDAn SApASA@QA$@SAl)AL SA0?ASA[An SA̠,Am`SAA$SAZ`AN`SArAn SAqA(RSA#_rA&SAA! @SA_AL SA@QA*SA0?@ASAZTAg SAAm`SA ߞAHSAڞdAm`SAp(A&SA@HA SApIASAmA SA`_ASAOA SAP:A SA,*ASAZ A6SAAr<`SA5A@!SAl)A'SA@H_A$*SAPxA&-SA An 2SAA8SA5A6>SAPc`A!DSA<A JSA~A}RSAPx_A$@XSApAn ZSA 6A6`_SA`%AlLeSA,?\Ag lSA;oAlLnSAA& tSAP?A$zSAmA6`SA/`AHSAZ 1A! SA v"@JASAp~gA!SAASA0?AN@SA 6A! SAc?ASAcAN`SA v"A(R`SAPx A*SA##ANSAp>AߤSA@QeAn SA;A&SAPc`A&SA`? Ag `SAP0A$ SAKA߬SAPYA! @SAPAg SAqA߼SAPc`A SA#Ar<SA v";A$SA^@ASAQyAr<`SA@Q?{A6SAzA! SA`Ar<`SA@H߻ASACASA#*Am SA/`bASA/ An SAASAVA!SAPc`(A6`SAPxRA}SAp]gAlLSAPc vASA`A& SAp]_A(RSA0?Ar<SAp>A(R`SA_AN!SAVAAL  'SA06~QAlL.SAp6AlL/SApAL 0SAA/SAAlL/SAPA! @/SAƟzA*.SAPcRA6.SAq@A.SA`A/SAZA/SA_A*/SAl)>A/SApA! 0SApA`0SAA@1SAAN`2SApӿhAN`2SAp]DA$ 1SApI "A0SApIA@1SA^A1SAAn 1SAQA1SAZ`cAm`1SA v";AN1SA<A1SA_A 2SA#Am@2SA^An 2SAl)pA}2SA9AH3SAAr<`3SAp@Ag 3SA 6?Ar<@4SAPـA(R`4SAcbA}4SAcFAH4SAZ A&5SAqA4SAA&5SAmAg 4SA,FA}4SAC(A(R`4SA@QAH3SAPcAm 3SA`AH3SA 6zAN@3SAp@TAg 3SAƟ%AH3SAm A}2SA`A(R3SA<A& 4SACpAr<@4SAVAA(R`4SAmAg 3SAP?Am 3SA/`A!4SA@H߻AlL5SApIA66SAA6`7SAZ \A*8SAc7A8SAcAn 9SA 6A@9SApA@9SAlA@9SA5_MAn 9SAl)0A8SA v"A8SAPcA*8SAQ@A9SA`A:SAP?zAg ;SAjUAr<@<SAP9A(R`<SA`Ar<@<SA`AH;SA06~ Ag ;SA`AH;SAc[An 9SAQAm`9SAcA8SAp]A`8SAQA7SAAA7SAA6`7SAAL  7SAPـA7SAp@bAlL7SAp~An 9SA#A9SA_A:SApIAr<`;SA?iA<SA 6?BAg `=SAp(A >SA0?A?SA v"A?SAANASAPc Ar<@DSA5߆Ar<FSAZ`A`HSAjrAJSA^\Ag LSA IA6NSA2AL PSA@HA@QSAPxAm@RSApA!TSAZ`ATSA#_A VSA _A! @WSAHA$@XSAANYSA0?An ZSA0?Ar<@\SA0?A&]SA`lA ^SA,8AlL_SAjA*`SA@Q?AaSAl)An bSAPxA}dSAcA6eSA,cAfSApEAgSA#*A*hSA#ANiSApAjSAA(RkSA`Ar< mSACaAnSA v"@JAL pSAZ 1A$ qSAAN`rSAmAg sSAAlLuSAp@A$@xSA AySA~hAr<@|SA^OA6}SA 6?An SApӿAHSA<A߄SA A6SA A$@SA߀ANSAZ jASAPx5A(R@SAZA! `SACAL SAPx_A$ SA@Q?Am@SA@HAHSAPxA&SA0?nA6`SA@H_XASA?ASAC(A& SAC Ag `SAAlLSAAn SA ߬Am@SA0?A& SA@HfA&SAp~KAL  SApAm`SAVAn SAp]Ag SA@H_A! SA`cAnfSAq@A*SA0?Am`SAjAN`SAPAN@SA,?AHSAj?kAg SA@QIA(R@SAڞ+A&SA0? AL @SA@Q?A6SA@Q?ASAPc`A! @SA<A*SAP?vASA 6?PA$@SAC(ASAPAm`SAm A SAAn SA`mAg SACEA(R`SA 6Ag `SApA SAp]A! @SA^kA! SAp'ASA`ANSAޣAn SA<mAN`SAjNAHSA+Am SA Am SA5AHSAcbAN@SA<AHSA A}SAPـASAPxAn SA?iAn SA/0ANSAPcA@SAPASAZASA0?JAL @SAp'A6SApӿA}SAAn SAASA06~|A! SAP?KA&SAP$Ag SAQAN@SAA$ SAc?A6`SApA(R@SA v"_A}SA5_?ASA@HASAPx_AHSA 6A}SA06~ A! `SA 6lA& SAPRASA v"@-A! SAPـA*SA A&SA06~ Am`SAl)_AL  SA sAHSAV^Ar<`SAIA SA,1ASA@QA! @SAAr<SAVA}SA@H߭AHSA An SAPiA ~SA@HQAm {SA@Q;A*wSAc)A! uSA>A}sSA0?AL pSA06~AlLmSA@QA}kSAq@A6`gSAA}dSA@Q?AN`bSA5ߔA$@`SAߏAg `]SAPcAH[SA@QA*XSA~A&USA`tAHSSAciA`PSA@H_fA&MSA eAHKSAaA6`GSA`_AHCSAV@eA >SA?iA:SArAL @6SAPc}Am`1SAQA(R@-SAA! (SAqA}"SA@QA SAm ASAPA! SAC_Ag SAp] AHSA v"@JAm SA;oA SA@H_AL SAc?AlLSAq@A!SA06~AN`SAASA _A6`SA@Q?4Ar<@ SAQ@GA SAl)TA*SAP`A&SAPuA`SA0?|A6SA@An SAAHSAC_ANSAC_A6SApASAp]A(R`SA0o3A> SAPA(R`SAAlLSAPASA#Ag `SAjAg SAq@A6`SAjASAjAm`SA0?A6SA0?An SAAL SAp@AHSAP?ASAPAn SAp]_vAm`SA 6eA! SA#]A(RSAMAlLSAPCAg `SA@Q?4ASAP'A SAmA}SA06~ A*~SAQ@AH{SAPcA`xSA5Ar<vSA@QAr<`sSAVA$@pSAVAL @nSAp羵AN`jSApI A*gSA^AlLeSAp>AHcSApI`pA*`SAYAL @^SAp]DA}\SAP2AN@[SA#AXSAPAlLVSAl)_A(R@USAƟA RSAƟzAOSAc?MA6MSAc)Ag KSA<@An JSAl)A6`GSApA&ESAAg CSAC~An BSA 6?^AASAq@+A$@@SA@H߿A6>SA@H߭A! =SAP@~AH<SACEA!<SAP AH;SAA(R`<SA,?\A& <SA0?A(R`<SAP?AH<SAq@VA&=SA#Ar<>SAVA>SA^мA! @SA An ASAZAm@BSAp]oAg CSA06~ AL @FSA5A*GSA AHSA/~AISASAp~A!<SAl)߰A*7SA,FA1SA< AlL-SAPcAN)SA̠A &SAc[A!$SA _;A "SAl)A SA/`AH#SAmঙA! @'SAڞdAr<`+SA`%A/SA A(R`,SAp]Am`)SA?ۘA& $SA 6ȘAn !SA5_A&SA 6A@SAVdA6SAPxCA& SA06~A`SAp]_AH SA,qAm` SAPxJA`SA@HA SAA(R`SAp@7AHSAqAHSAPc ڕASA?AL  SApnAr<` SAOA! SAm&AL SA 6A! SA@HєASA`AN`SAQcAg SAC=AL @SA06~` A*SA 6ASAߺA}SAp~A*SApIoA SAp]RAH#SA :A&%SAVA*&SA ^A*(SApIA *SA v"Ag `-SA,A*0SApIZA& 4SAm-AL  7SA0?A9SAZ`A};SAm഑A6>SA v"|An ASA@QIA(R@ESAPc AHSApI`AlLMSA mAQSA v"BA(RSSAl)A(R@USAQA$ YSA^AZSAyA}[SA _A!\SAc͎A(R[SA v"mAN`ZSA 6AXSA#A! XSA`?QA*VSAC!A&USAp]_Ar<@TSAp?hA*PSApI Ar< MSAIA@ISAPc`A! `FSA;Ar< ESAc?AL HSA/wA(R@MSAl)7A RSA`AVSA Am`YSA ɉAlL^SA/A}dSA_AjSAZA$@pSAp]_A&uSAp]_A& |SAp}Ar< SA06~A}SA/ Am SAVASApIඉA}SAVAN`SA`An SAc?A(RSA/A& SAP?ASA3A߬SA@H_fASAPA SApI`ӉA}SAMAg SA`ފAn SA v"tA! SA@8A*SA06~ A}SAj?ݎAn SA v" AN`SAAm` SA߁A}4SAjrAOSA0?5A`XSAp]˖AN@[SApCAoSApIA! SAVA!SA,Am@SAp]AL еSA <x 7HHAAcquaviva delle Fonti @q;L]Az>5?YB1AlL RQA1AlLjQA|iՁO? 1FIsola Sant'Antonio @uG IAvu'$tY#qAL SA A! @SA|ip]AL еSAp7dǣAFPSA@:XAƎ>TSA0_oASA`oȢASA0_o8An SAwp4AL  SAqoAr< SAqoAN`SAq]pASA`o$ASA#\A(R`xSA(/1Ap:qSAA6eSA=o<Ag [SA@(o\A}TSA"oAn HSAp̜A@SAopA6`?SA`oA>SA`odA >SA`ߑpA! `>SA"oA<SAwp4An =SA`o$AN`BSA0_o8ALSA:CpAn QSAp]hA(R`TSA/ ANXSA An ]SA/ 8AiSA#dAqSA@H|A}zSA#_An SA0_oxA SAopA}SA`ߑplAN`1AlL@waQAƭ1AlL`waQA1AlL aQA\1AlL aQA@p1AlLaQAi1AlLaQA1AlL@aQA@1AlLaQAԭ1AlLaQA1AlL@waQAw1AlL@naQAi1AlL caQA1AlLbaQA@1AlL`aaQA׬1AlLqaQA@ڬ1AlL ~aQA@1AlL`aQA1AlL@aQA1AlL aQA@1AlLaQA1AlLaQA 1AlL aQA1AlL@aQA1AlLaQA` 1AlLaQA1AlLaQA1AlLaQA1AlL@aQA1AlL aQA@1AlLaQA1AlL`aQA̬1AlLaQA̬1AlLbQA%1AlLbQA#1AlL%bQA1AlL`$bQA1AlL@0bQAM1AlL5bQA41AlL@KbQAd1AlL9bQA@X1AlLJbQA1AlLLbQAr1AlLbbQAL1AlLbbQA@G1AlL@obQAĪ1AlLpbQA1AlL@bQA]1AlLbQA{1AlL bQAƫ1AlL`bQA@1AlLХbQA1AlLbQA@(1AlLbQA11AlL`bQA1AlLbQA@U1AlL bQA1AlLcQA-1AlLcQA@%1AlLpcQA1AlLcQA1AlLBcQAͪ1AlLFcQA1AlL`bcQA1AlLqcQA 1AlLPxcQA01AlLcQAR1AlLwcQAz1AlL@pcQA@1AlL@kcQA1AlL0icQA1AlL cQA1AlL`cQA@81AlLcQAe1AlLcQA~1AlL`cQA@1AlLcQA1AlLcQA@۬1AlLcQA@ݬ1AlLcQA1AlL cQA1AlL@cQA1AlLcQA٬1AlLcQA@1AlLcQA@1AlL`cQA1AlLcQAN1AlL@cQA:1AlLcQA۫1AlLcQA@ѫ1AlL cQA@1AlLcQAǫ1AlLcQA@1AlL dQAc1AlLdQA01AlLdQA@1AlL dQA@y1AlLdQA>1AlL-dQA1AlL,dQA1AlL)dQA1AlL$dQA1AlL/dQA@1AlL:dQA˩1AlLHdQA1AlLOdQA1AlL@ZdQA1AlLbdQA:1AlLsdQA@ 1AlLwdQA@٩1AlLdQA@h1AlL@dQAר1AlLdQA1AlLvdQA>1AlL@udQA1AlL`qdQA1AlLxdQA1AlLwdQA1AlL dQA1AlLdQA1AlLdQAk1AlLdQAF1AlL dQA@+1AlLdQA.1AlL`dQAA1AlL@dQA=1AlLdQA#1AlLdQA1AlL`dQA1AlLdQA1AlL@dQA@1AlLdQA@y1AlLdQA1AlLdQA1AlL eQAƦ1AlL eQAΦ1AlLeQA1AlL"eQA1AlL@eQA1AlL@JeQA"1AlLUeQA1AlLSeQA1AlLdeQAh1AlLbeQA@.1AlL `eQA1AlL^eQA1AlLaeQA@n1AlLfeQA@1AlLjeQA1AlLpeQAM1AlLteQA1AlL {eQA@1AlL`}eQA31AlLeQA1AlLweQA@1AlL`oeQA@1AlLgeQA'1AlL`^eQA/1AlLUeQA1AlLOeQA1AlL =eQA1AlL1eQA֢1AlL'eQAȢ1AlL`eQA1AlLeQA1AlLeQA@1AlL`dQA@1AlLdQA@i1AlLdQA@X1AlLdQAS1AlL@dQAK1AlLdQAU1AlLdQA[1AlL dQAa1AlL dQAl1AlLdQA~1AlLeQA1AlL:eQA@1AlLGeQA1AlLUeQA1AlL^eQA1AlL`leQA1AlLzeQA@1AlLeQA`1AlLeQA@1AlLeQAr1AlL eQAY1AlLeQA@=1AlLeQA1AlL@eQA1AlLeQA1AlL`eQA@Ӡ1AlLeQA1AlLeQA1AlLeQAf1AlLeQA>1AlLeQAD1AlL@eQA-1AlLeQA1AlLeQA1AlL@eQA@1AlLfQA@1AlL` fQA1AlLfQA41AlL"fQAN1AlL)fQAL1AlL0fQA@C1AlL6fQAJ1AlL@?fQA@[1AlL`FfQA@1AlLMfQA1AlLVfQA@1AlL_fQA1AlL {fQAѠ1AlL fQA1AlLfQA1AlL fQA1AlLfQA1AlL fQA1AlL fQA1AlLfQA1AlLfQAƠ1AlL0fQA̠1AlL`fQAߠ1AlL@gQA1AlL gQA!1AlL@gQA1AlL@>gQAL1AlLfgQAi1AlLlgQAw1AlL pgQA1AlL gQA1AlL@gQA@1AlLgQA@1AlLgQA@1AlLgQAǣ1AlLgQA@D1AlLgQAA1AlLgQA@E1AlLgQAK1AlL gQA@v1AlLgQA1AlLgQA1AlLgQA31AlLgQA1AlL@gQAP1AlL[hQAw1AlL^hQA1AlL`ahQA1AlLchQA@ݧ1AlL@ihQA1AlLnhQA 1AlL`thQA1AlL~hQA1AlLhQA1AlL`hQAr1AlLhQA1AlL hQA@1AlLhQAۨ1AlL hQA@1AlL hQA,1AlLhQAG1AlLhQAj1AlLhQA1AlLhQA@1AlL hQA@1AlLhQA@ 1AlLhQAC1AlLhQA@e1AlLhQAr1AlLhQA1AlL@hQA\1AlLhQA01AlL iQA@,1AlL@iQA21AlL 8iQA@Y1AlL;iQA{1AlL >iQA1AlL`@iQA1AlL BiQAά1AlLBiQA1AlLBiQA)1AlLBiQAJ1AlLBiQAn1AlL AiQA1AlL@iQA1AlL?iQAҭ1AlLiQA1AlL@;iQA71AlL9iQAU1AlL6iQA1AlL.iQAǰ1AlL,iQA1AlL*iQA@$1AlL%iQA\1AlL iQA@1AlLiQAű1AlL iQA1AlL`iQA 1AlL+iQA!1AlL8iQA71AlL`EiQAN1AlLQiQA1AlL`iQA1AlLiiQA߲1AlL uiQA@1AlLiQA1AlLiQA1AlL@iQA1AlL`iQA<1AlL@iQAY1AlLiQAa1AlLjQA@1AlL,jQA1AlL :jQA@1AlL@mjQA1AlL|jQA1AlLjQA@1AlLjQAʳ1AlLjQA1AlLjQA 1AlL@jQAN1AlLjQA1AlL jQA1AlLjQA1AlLjQA@Q1AlLjQA~1AlLjQA1AlL@sjQA@1AlLgjQA1AlL@XjQA@1AlLGjQA-1AlL4jQA21AlL)jQA@1AlL"jQA@ö1AlL$jQA1AlL@&jQA1AlL4jQA1AlL@jQA31AlL CjQAa1AlL`8jQA1AlL,jQA@1AlL!jQA1AlLjQA?1AlLjQA@w1AlL@ jQA~1AlLiQAr1AlL iQAu1AlLiQA1AlL`iQA@1AlL@iQA@1AlLiQA~1AlL iQA~1AlLtiQA1AlLaiQA1AlLMiQA1AlL?iQA1AlL@,iQA1AlLiQA1AlLiQA1AlLhQA1AlL`hQA@1AlL`hQA@1AlLhQA@ո1AlLhQA@1AlL hQA1AlLhQA@1AlL hQA@1AlL hQA1AlLhQA@81AlL@hQA1AlLhQA@1AlLhQAU1AlLhQA@1AlLhQAϺ1AlL hQA@1AlLhQAN1AlLhQA1AlL hQA1AlLhQAD1AlLhQAw1AlLhQA1AlLЧhQA@ڼ1AlLhQA:1AlLhQAZ1AlL@hQA1AlLhQAý1AlLhQA1AlL hQA1AlLiQA@ܽ1AlL iQA1AlL)iQA@1AlL2iQA1AlL iQA1AlL,iQA1AlLiQA1AlLiQA1AlLhQA1AlLhQA1AlLhQA@1AlLPhQA1AlLhQA1AlLhQA1AlLhQA1AlLhQA@1AlL@hQA1AlLrhQA1AlL VhQA1AlLAhQA1AlL@+hQA@1AlLhQA@1AlLgQA51AlL`gQAf1AlL`gQA~1AlL`gQA@z1AlLgQA1AlLgQA1AlLgQA1AlL@wgQA1AlLdgQA@1AlL@NgQA1AlL 8gQA1AlL@ gQA1AlLgQA1AlLgQA1AlLfQA1AlLfQA-1AlLfQAp1AlLfQA1AlL fQAu1AlLfQAq1AlLpfQA1AlL@RfQA1AlL@?fQA@1AlL7fQA@1AlL.fQA1AlLfQA1AlLfQA@1AlLeQA 1AlL eQA/1AlLeQAK1AlLeQAk1AlLeQA1AlLeQA1AlL ~eQA1AlLpeQA1AlLp]eQA1AlLZeQA1AlL`FeQA1AlL *eQA1AlLeQA1AlL eQA1AlLdQA@1AlLdQA"1AlL dQA'1AlLdQA@51AlLdQA21AlL dQA(1AlLdQA+1AlLdQA@91AlL zdQAA1AlL@bdQA@N1AlL`RdQAp1AlL@dQA1AlL!dQA1AlLdQA1AlL dQA:1AlL`dQAD1AlLcQA@=1AlLcQA*1AlLcQA@)1AlLcQAI1AlLcQAS1AlL cQA@l1AlL`cQA1AlL`cQA$1AlL`cQAV1AlLcQA@1AlL`cQA@1AlL`cQA\1AlLcQA@1AlL`cQA1AlL`cQAM1AlLcQA1AlLcQA1AlL`cQAc1AlLcQA@{1AlL`cQA1AlLcQA1AlL`cQA@1AlL@cQA1AlLcQA@z1AlLcQA@m1AlL~cQA]1AlLgcQAN1AlLScQAA1AlL8cQA61AlL`cQA@.1AlLcQA"1AlL@bQA@1AlL@bQAh1AlLbQA51AlLbQA1AlLbQA1AlLbQA@i1AlLbQAn1AlLbQA1AlLbQA1AlLbQA51AlLbQA@@1AlL0bQAP1AlLbQA]1AlL`bQA@n1AlL@qbQA1AlLYbQA1AlLCbQA@1AlL0bQA1AlL"bQA1AlL@ bQA1AlLaQA1AlLaQA1AlLaQA1AlLaQA1AlLaQA1AlL aQA1AlLyaQA1AlL\aQA@)1AlLJaQAH1AlL9aQAV1AlL2aQA@<1AlLaQA@21AlL`aQA41AlL`QA=1AlL `QA?1AlL`QAJ1AlL`QAj1AlL`QA1AlL`QA1AlL`QA1AlL`QA1AlL x`QA@1AlL>`QA1AlL (`QA1AlL`+`QA1AlL`QA1AlL`QA1AlL_QA1AlL_QA1AlL_QA1AlL@_QA1AlLy_QA1AlLc_QA1AlL`P_QA1AlLA_QA@!1AlL0_QA@E1AlL_QAQ1AlL _QAi1AlL _QAs1AlL0_QA1AlL _QA1AlL_QA@1AlL^QA@1AlL^QA1AlL^QA 1AlL ^QA1AlLn^QA@1AlL`[^QA1AlLJ^QA1AlL:^QA@ 1AlL )^QA@,1AlL^QAG1AlL`^QA@f1AlLp]QA`1AlL^QA1AlL@^QA1AlL$^QA1AlL .^QA_1AlL7^QA1AlL?^QA1AlLG^QA@1AlL)^QA1AlL^QA@1AlL^QA1AlL]QA1AlL]QA1AlL@]QA@1AlL]QA1AlL ]QA1AlL]QA1AlL]QA@1AlL]QA@1AlL]QA~1AlL]QA@R1AlL]QA91AlL]QA!1AlL ]QA1AlL`]QA1AlL]QA@1AlL z]QA1AlLf]QA@q1AlL@Z]QA@Q1AlL`Z]QA@$1AlL`]QA@$1AlL@k]QA1AlLv]QA1AlL]QA1AlL]QA1AlL]QA@31AlL]QA1AlL]QA1AlL`]QA1AlL]QA@_1AlL ]QA-1AlL`]QA@1AlL ]QA1AlL@]QA@1AlL]QA1AlL~]QA1AlL|]QAg1AlLz]QAK1AlL y]QA 1AlL w]QA1AlL ]QA@1AlL {]QAe1AlL`r]QA01AlLh]QA@)1AlL h]QA1AlLf]QA@1AlL`j]QA1AlLf]QA1AlL`]QA@c1AlLX]QA@71AlLP]QA.1AlLO]QA1AlLN]QA1AlLL]QA1AlLE]QA1AlL]QA1AlL]QAV1AlL \QA@21AlL \QA@1AlL\QA1AlL\QA1AlL \QA1AlL`\QAn1AlL\QA@1AlL \QAh1AlL\QA@d1AlL\QA@81AlLq\QA 1AlLg\QA1AlL`V\QA1AlLH\QA@o1AlL9\QA@R1AlL`&\QA@11AlL \QA"1AlL\QA!1AlL@[QA@K1AlL`[QA]1AlL`[QAo1AlL`[QA01AlL[QA1AlL[QA1AlL[QA1AlL[QA@1AlL [QA1AlL`[QA@1AlL[QA1AlL[QA1AlL[QA1AlL [QA<1AlL@ [QAe1AlL[QA71AlL@ [QA1AlLZQA@1AlLZQA@1AlLZQA@1AlLcZQA@1AlL;ZQA}1AlL4ZQA@l1AlL+ZQAR1AlLZQA@U1AlLZQA@[1AlL ZQA@M1AlL ZQA61AlLYQA1AlL YQA 1AlLYQA@1AlLYQA1AlLYQA@1AlLYQA1AlLYQA1AlLYQA1AlL@YQAt1AlLYQAR1AlL@YQA@%1AlL@YQA1AlLYQA1AlLYQA@1AlLYQA@s1AlLYQA>1AlLYQA 1AlL@YQAʿ1AlLYQA1AlLYQA1AlL@YQA@Q1AlL@YQA@;1AlL`YQA1AlLYQA@ؾ1AlL@YQA1AlLYQA@j1AlL@YQA@G1AlLYQA1AlL@YQA1AlLYQA@1AlLYQA_1AlLYQA91AlLYQA11AlL`YQA+1AlL0YQA1AlLYQA31AlL`YQA71AlL0YQAX1AlL YQA`Z1AlLYQAp1AlLYQA@1AlLYQA@1AlLYQA@1AlLzYQA1AlL jYQA1AlL_YQA1AlL`QYQA1AlL@CYQA1AlL@3YQA1AlL,YQA1AlL@%YQA1AlLYQA@z1AlL YQAl1AlLXQAY1AlL`XQAH1AlLXQA31AlLXQA!1AlLXQA 1AlLXQA1AlL@XQA1AlLXQA̼1AlLXQA1AlLuXQA1AlL`dXQA1AlLYXQAj1AlLOXQAC1AlLEXQA61AlLAXQA"1AlL@1AlLlYQA1AlL@fYQAû1AlLaYQA@1AlLbYQA1AlL@YQA1AlLYQA@1AlLYQA1AlL@YQA1AlLYQAA1AlLYQA@1AlL YQA1AlL YQA1AlL YQA}1AlL YQA@N1AlLYQA@11AlLYQA,1AlL YQA1AlLYQA@Ϲ1AlL YQA1AlL@YQA1AlLYQA@c1AlLYQA1AlL nZQA1AlL yZQA1AlLZQAH1AlLZQAo1AlLZQA1AlL@ZQAƹ1AlLZQA1AlLZQA1AlLZQA_1AlLZQA1AlLZQAٺ1AlLZQA1AlL`ZQA@ 1AlLZQA@*1AlLZQAX1AlLZQA1AlL@ZQA@P1AlLZQA1AlL ZQA@1AlL ZQAĺ1AlLZQA@1AlL`ZQAs1AlLZQA\1AlLZQA61AlL@ZQA1AlLZQAֹ1AlLZQA1AlL`ZQA1AlLZQAl1AlLZQA@R1AlL`ZQAH1AlLZQAE1AlL ZQA@F1AlLZQAI1AlLZQA1AlLZQA׸1AlL`ZQAN1AlL`ZQA1AlLZQA@۷1AlL ZQA1AlLZQA@1AlL`ZQA1AlLkZQA@1AlLUZQA 1AlL`DZQA1AlL4ZQA@շ1AlL*ZQA1AlLZQA@1AlLZQA1AlL@ ZQA1AlL`ZQAq1AlLYQA;1AlLZQAȵ1AlLZQA1AlL@ZQAQ1AlLpZQAK1AlLZQA1AlLZQA1AlLZQA1AlLZQA1AlLZQA1AlL YQA~1AlL@YQA1AlLYQAٲ1AlLYQAw1AlL@YQA01AlLYQA1AlLYQA̱1AlLYQA1AlLYQA1AlLZQA@W1AlLZQA=1AlL`$ZQA@-1AlL3ZQAb1AlL;ZQA31AlL[QA1AlL`J[QA.1AlLN[QA$1AlL`[QA1AlL j[QA1AlL`p[QAި1AlL@y[QA@1AlL|[QA@1AlL [QA1AlL[QAq1AlL[QA[1AlL@[QA@B1AlL [QA)1AlL[QA@ 1AlL[QA@1AlL`[QA@1AlL[QA1AlL [QA@1AlL[QAb1AlL`[QAS1AlL`[QA91AlL[QA51AlL@[QA@-1AlL [QA@$1AlL[QA1AlL[QA1AlL@[QA1AlL@[QA@1AlL [QA@#1AlL [QA.1AlL[QA`21AlL\QA71AlL\QA61AlL \QA01AlL\QA21AlL$\QA@01AlL/\QA11AlL`8\QA31AlLA\QA:1AlLJ\QA@U1AlL@Y\QA@d1AlL`\QAz1AlLk\QA1AlLs\QAu1AlL\QAl1AlL\QAd1AlL\QA\1AlL \QAU1AlL\QA@U1AlL`\QA@^1AlL \QAg1AlL\QAs1AlL`\QA1AlL\QA1AlL@]QAɧ1AlL ]QAۧ1AlL ]QA1AlL]QA1AlL(]QA(1AlL 0]QA61AlL@]QA91AlL`K]QA@C1AlL T]QA@M1AlL[]QAT1AlLc]QA`1AlL`m]QA@x1AlLz]QA@1AlL]QA1AlL]QA1AlL]QA@1AlL]QA1AlL`]QA@1AlL@]QA@1AlL@]QA@1AlL]QA1AlL]QA1AlL]QA1AlL]QA¨1AlL^QAԨ1AlL@^QA1AlL#^QA@1AlL 1^QA!1AlL <^QA61AlLB^QAI1AlLI^QA@V1AlL M^QA^1AlLO^QAv1AlLW^QA@1AlLb^QA1AlL@e^QA1AlL@r^QAȩ1AlL~^QA@֩1AlL^QA@1AlL^QA1AlL0^QA@1AlL^QA@1AlL^QA1AlL^QA 1AlL^QA1AlL^QA71AlL^QAS1AlL@^QAl1AlL^QA1AlL^QA|Wꢪ1A^QA@ê1AlL ^QA1AlL^QA W1APV^QA@ 1AlL^QA31AlL^QA@O1AlL ^QA@h1AlL ^QA1AlL^QA1AlL^QA1AlL ^QA1AlL^QA1AlL^QA@ԫ1AlL^QA1AlL^QA1AlL`^QA@J1AlL`^QAp1AlL^QA1AlL@^QA1AlL^QAȬ1AlL^QA@լ1AlL@^QA1AlL ^QA1AlL`^QA@"1AlL@^QAG1AlL ^QAh1AlL^QA1AlL^QA1AlL@^QA@1AlL^QA@1AlL^QAѭ1AlL ^QA@í1AlL^QA1AlL ^QA@1AlL`^QA|1AlL_QAI1AlL _QA1AlL_QA1AlL_QA1AlL '_QA1AlL`-_QA1AlL7_QA1AlL`?_QA@1AlL`H_QA@ج1AlLR_QAլ1AlL[_QAݬ1AlLf_QA@1AlLg_QA1AlLg_QA@1AlL@j_QAK1AlL`n_QA@h1AlL`p_QA1AlLr_QAȭ1AlL`v_QA1AlL y_QA!1AlLz_QAZ1AlLx_QA@1AlLt_QA1AlLm_QAծ1AlL i_QA@ 1AlL@f_QA61AlL@d_QAS1AlLb_QA1AlLa_QA1AlL@^_QA1AlL[_QA1AlLZ_QA51AlL[_QA]1AlL\_QA@~1AlLZ_QA@1AlLZ_QAŰ1AlL]_QAٰ1AlLd_QA1AlL@l_QA@1AlLv_QA1AlL@}_QA 1AlL_QA@1AlL_QA)1AlL _QA@41AlL`_QA+1AlL_QA&1AlL`_QA-1AlL_QA>1AlL _QAK1AlL_QA1AlL_QA@ 1AlL_QA1AlL_QA1AlL_QA@1AlL`QA@1AlL `QA@ 1AlL`QA 1AlL`QAB1AlL0`QAC1AlL9`QA@G1AlL J`QAZ1AlLV`QAk1AlLf`QA1AlLw`QA.1AlL`QA1AlL`QA@1AlL@`QAį1AlL`QA1AlL`QA@M1AlL `QA&1AlL`QA1AlL`QAۮ1AlL`QA®1AlL@`QA1AlL`QA1AlL`QAa1AlLp`QA@>1AlL`QA!1AlL``QAҭ1AlL`QA1AlL`QA51AlL `QAL1AlLz`QAp1AlLu`QA1AlL@p`QA1AlL k`QA1AlLe`QA1AlL``QA1AlL]`QA31AlLY`QA/1AlL`Q`QA@ 1AlL`H`QA1AlL=`QA@ծ1AlL4`QA1AlL-`QA@1AlL`$`QA@u1AlL`QAV1AlL `QA:1AlL0 `QA$1AlL `QA1AlL`QA@1AlL `QA1AlL&`QA1AlL1`QA@1AlL7`QA@1AlL :`QA1AlL@E`QA@1AlL K`QAʭ1AlL@M`QA@1AlL@E`QA1AlL=`QA1AlL`2`QA@1AlL'`QA_1AlL )`QA@u1AlL=`QA.1AlLD`QA 1AlL`G`QAb1AlL0`QA@1AlL`QA1AlL`QA@1AlL`QA_1AlL`QA@1AlL@`QA1AlL`QA@1AlL`QA1AlLp`QA1AlL`QA@1AlL`QA1AlL`QA@1AlL`QA;1AlL`QA@@1AlL`QAI1AlL`QA@R1AlL`QA@X1AlL@`QA@1AlL `QA1AlL@`QAЭ1AlL `QA1AlLP`QA+1AlL`QA1AlL`QA1AlL`QAƮ1AlL`QAo1AlL`QA@]1AlL`QAG1AlL `QA1AlL`QA@ 1AlL`QA-1AlL``QA@J1AlLaQAf1AlLaQA1AlLaQA1AlLaQA֮1AlLaQA1AlL*aQA91AlL(aQA81AlLaQA1AlL`aQA1AlL/aQA@1AlL0aQA˭1AlL`SaQA1AlL`UaQA1AlLmaQA1AlL@waQAi81AlLBWQA1AlL@*WQA 1AlL WQA@1AlLWQA@1AlL VQAܹ1AlLVQA۹1AlLVQAƹ1AlLVQA1AlL@VQA`1AlL`VQA91AlLVQA 1AlLvVQA޸1AlL dVQA@1AlL NVQA1AlL*VQA1AlLVQAr1AlL VQAK1AlLUQA.1AlLUQA 1AlLUQA1AlL@UQA@1AlLUQA1AlLUQA۷1AlLUQA@ɷ1AlLUQA1AlL`tUQAx1AlL`cUQAm1AlLDUQA^1AlL 1UQAX1AlL`!UQAQ1AlL UQAH1AlL`UQA@F1AlLTQAP1AlLTQAg1AlLTQAj1AlL@TQA@|1AlLTQAy1AlLwTQAy1AlLUTQA1AlL@CTQA1AlL`8TQA@1AlL(TQAܷ1AlLSQA1AlL`SQA@1AlLSQA 1AlLSQA%1AlL`SQA<1AlL`SQAP1AlLSQAO1AlLuSQA@H1AlL`SQA?1AlLKSQA@;1AlL,SQA91AlL`SQA:1AlLSQA91AlL SQA81AlLSQA)1AlLRQA%1AlL RQA%1AlLPRQA1AlLRQA1AlL RQA׷1AlL`RQA@1AlLRQA1AlLRQAY1AlL`RQA1AlLRQA1AlL`RQAG1AlLRQA޵1AlL RQA@1AlLRQA)1AlL@RQA@1AlLRQA<1AlLRQA@1AlL RQAr1AlL@RQA1AlLRQA1AlL RQA,1AlL@RQA1AlL`RQAG1AlL RQA@1AlLRQAo1AlLRQA1AlL@RQA1AlLRQAO1AlL`RQA1AlLRQA1AlL RQA1AlLRQA1AlLRQA@ȭ1AlLRQAҭ1AlLRQA@խ1AlL RQA֭1AlL@RQA@1AlL@SQA1AlLSQA@1AlL*SQA1AlL@7SQA@1AlL SSQA@1AlL`eSQA1AlL@vSQA@1AlL`SQA1AlL`SQA@1AlLSQA1AlLSQA1AlLSQA@1AlL0SQA 1AlLTQA1AlL`TQA 1AlL@.TQA01AlLCTQA@F1AlLUTQAd1AlLHnTQAh1AlL qTQA1AlLTQA@1AlL`TQA@Ϯ1AlLTQA1AlLTQA1AlLTQA1AlL TQA%1AlLTQA@H1AlLUQAX1AlL-UQA@v1AlL`=UQA1AlLUUQA1AlL@eUQA@1AlLxUQA1AlLUQA֯1AlLUQAد1AlL`UQAد1AlLUQAݯ1AlLUQA@ݯ1AlLUQA1AlLUQA1AlLUQA1AlLUQA@1AlL VQA1AlL@"VQA1AlL@;VQA1AlLMVQA1AlL`VQA=1AlLhVQAj1AlL`vVQA{1AlLVQA1AlLVQA1AlLVQA1AlLVQAȰ1AlL VQA@ɰ1AlL@VQA1AlLWQA1AlLWQA<1AlLWQA@1AlLWQA1AlL@$WQA71AlL.WQAt1AlL@3WQAϵ1AlL`4WQA 1AlL3WQAH1AlL JWQA@1AlLUWQA1AlL bWQA@1AlL@jWQA1AlLlWQA#1AlL sWQA?1AlL xWQA1AlLWQA׷1AlLWQA@ݷ1AlLWQA#1AlL`WQAr1AlL`WQA1AlLWQA1AlL0WQA1AlL`WQAE1AlLWQA1AlL`WQA1AlLWQA@ٺ1AlLWQA1AlL`zWQAt1AlLiWQAI1AlLRWQA81AlLBWQAiRv1AlL hQA@1AlL hQA1AlLhQAT1AlLhQA@1AlL hQA1AlLhQA1AlL@~hQA1AlL@hQA@K1AlLhQA1AlLhQA@1AlLhQAڠ1AlLhQA1AlL|hQA1AlLuhQA&1AlL phQA@E1AlL hhQAU1AlL `hQAw1AlL QhQA1AlL@hQAơ1AlL7hQA1AlL/hQA@1AlL@+hQA@31AlL`(hQA=1AlLhQA>1AlLhQA=1AlLhQA11AlLhQA,1AlLgQA(1AlL`gQA@"1AlL`gQA1AlL@gQA1AlLgQA1AlLgQA@1AlLgQAK1AlLgQA 1AlLgQA1AlLgQA1AlLgQA@1AlLgQA1AlLgQA1AlL@gQAx1AlLgQA`1AlLsgQAG1AlL IgQA@91AlL=gQA,1AlL3gQA@1AlL@fQAҟ1AlLfQA1AlL`fQA1AlL fQAp1AlLfQAO1AlLfQA1AlLgQA1AlLgQA@1AlLgQAC1AlL"gQA 1AlL +gQAם1AlL4gQA1AlL >gQA@u1AlLBgQAx1AlLEgQA1AlLgQA1AlLgQA@ϝ1AlLgQA1AlLgQA1AlL gQA@ϝ1AlL gQA1AlL`hQA1AlL@hQA1AlL hQAB1AlL@*hQAf1AlL5hQA~1AlL=hQA1AlLDhQA1AlLOhQA̝1AlL@\hQA1AlLhhQA1AlL`whQA@$1AlL`hQA61AlL@hQA@F1AlLhQAv1AlL hQAi$@"1AlL !YQA$1AlL`YQA@*1AlLYQA-1AlLXQA@ҹ1AlLXQA@1AlLXQA@1AlL@YQAg1AlLYQA*1AlL YQA1AlL@YQA1AlL@YQA@1AlL YQAc1AlLYQA@81AlL&YQA!1AlL,YQAӷ1AlL`1YQA1AlL@4YQAη1AlLEYQA@1AlL TYQA1AlL@^YQA@91AlLhYQA1AlLkYQA@1AlLqYQA1AlL@xYQA1AlL{YQAӹ1AlLpYQA1AlLfYQA1AlL`YQA1AlL ZYQA@غ1AlLUYQA1AlLPYQA1AlLBYQA1AlL7YQAͺ1AlL2YQA~1AlL*YQA@"1AlL !YQAi @1AlL _QA@٪1AlL^QA1AlLp^QA01AlL^QA71AlL_QA@W1AlL`_QA@1AlL@"_QA@©1AlL1_QA1AlL{_QA1AlLQ_QA1AlL@6_QA@1AlL _QAi 01AlL@YQA1AlLYQA1AlLYQA1AlLYQA@Һ1AlLYQAֺ1AlL YQA@1AlL YQAL1AlLYQAv1AlL YQA_1AlLYQA01AlL@YQA|i1AlL`(QAi1AlL)QAi1AlL +QA i1AlLp,QA i1AlL,QAi1AlL,QA`i1AlL@+QA@i1AlL@+QAi1AlL,QAi1AlL*QAi1AlL(QAi1AlL'QAi1AlL`%QAi1AlL`%QA i1AlL`%QAi1AlL$QAi1AlL"QA i1AlL`!QAi1AlLP!QAi1AlL!QAi1AlL"QAi1AlL$QApj1AlL%QA j1AlL`'QA` j1AlLp(QAj1AlL(QAj1AlL)QAj1AlL)QA`#j1AlL@*QA*j1AlLh*QA/j1AlL@+QA5j1AlLP+QA9j1AlL`*QA@?j1AlL)QAKj1AlL@*QA@Sj1AlL`*QAZj1AlL)QAaj1AlL@)QA`gj1AlL0(QAkj1AlL&QA oj1AlL$QArj1AlL&QA|j1AlLp#QAj1AlL@!QAj1AlLQAj1AlLQAj1AlLpQAj1AlLQAj1AlLQA@j1AlLQAj1AlLQAj1AlL@QAj1AlLQAj1AlL@QA@j1AlLQAj1AlL0QAj1AlL@QA@j1AlLQAj1AlLQA@k1AlL QA%k1AlL QA@%k1AlLQA4k1AlL@QA@?k1AlL QAGk1AlL@QALk1AlL`QAVk1AlLPQA^k1AlL@QA@nk1AlLQA@wk1AlLQAk1AlLQAk1AlL QAk1AlLQA@k1AlL`QAk1AlLQAk1AlL QAk1AlLQAk1AlLQAk1AlLQAk1AlLQAk1AlLPQA`k1AlLQAk1AlL QAk1AlL`QAl1AlLQA@ l1AlLQAl1AlL@QAl1AlLQA(l1AlLQA/l1AlLQA@;l1AlL`QAHl1AlLQANl1AlL8QAEl1AlLQAGl1AlL0QAQl1AlLQAYl1AlL@QAbl1AlLQAll1AlLQAyl1AlLQAl1AlLQAl1AlLQAl1AlLQAsl1AlL`QAtl1AlLQA@ol1AlL`QAil1AlLQA`al1AlL@QAbl1AlLQA`ll1AlL`QAsl1AlLxQAl1AlLQAl1AlLQAl1AlLQAl1AlLQA@l1AlLQAl1AlLQAl1AlLQAl1AlLQAl1AlL8QA`l1AlLQAl1AlL0QAl1AlL`QA`l1AlL0QAl1AlLQAl1AlLpQAl1AlLQAl1AlLQAl1AlLQAl1AlLQAm1AlLQA m1AlLHQAm1AlLQAm1AlLQA m1AlLQAm1AlLPQAm1AlL`QA@(m1AlL@QA.m1AlLQA4m1AlLQA@Cm1AlL0QA@am1AlLQAm1AlLQAm1AlLpQA@m1AlLQAm1AlL`QAm1AlLPQAm1AlLQAm1AlLQAm1AlLQA@m1AlL@QAm1AlLQA@m1AlLQAm1AlLPQAn1AlLQAn1AlLQA n1AlLQA@n1AlLHQA n1AlLQA#n1AlL QA@*n1AlL QA1n1AlL QA8n1AlL QA7n1AlLQA@En1AlLQAWn1AlL@QAZn1AlLQAZn1AlLQA@]n1AlLQA@dn1AlLQAln1AlLQA@sn1AlLQA|n1AlLQAn1AlLxQA@n1AlL QA@n1AlLp"QAn1AlL0$QAn1AlL0%QAn1AlL0&QAn1AlL'QAn1AlL)QAn1AlL`+QAn1AlL,QA@n1AlL.QA@n1AlL.QA0n1AlL`0QAn1AlLP0QA@n1AlL2QAn1AlL2QAn1AlL/QAn1AlL`-QAn1AlL`+QAn1AlL)QA@n1AlL&QAn1AlL0$QA@n1AlL"QA n1AlL!QAn1AlL QAn1AlLQAn1AlLQAn1AlLQAn1AlLQAn1AlLQA n1AlLQA`n1AlLQAo1AlLQA o1AlLQAo1AlLPQA8y!o1A'iQAo1AlLxQAo1AlLPQA`$o1AlLQA0.o1AlL4QA4o1AlLQA2o1AlLQA*4o1AUQA0>o1AlLQA0=o1AlLQADo1AlL@QA@Qo1AlLQA@Yo1AlL0QAfo1AlL`QAjo1AlL@QAlo1AlLQAto1AlLQA@}o1AlL`QAo1AlL QAo1AlL QAo1AlLQAo1AlL@QAo1AlLQAo1AlL@QA@o1AlL\QAo1AlLQAo1AlLQAo1AlL0QAo1AlL QAo1AlL "QA@o1AlL#QAo1AlLP&QAo1AlL)QAo1AlLX)QA@o1AlLp)QAo1AlL *QA@o1AlL +QAo1AlL+QA o1AlL,QA@o1AlL-QAPo1AlL4.QAo1AlL.QAp1AlL.QAp1AlL.QA@p1AlL-QA-p1AlL-QA3p1AlL.QA@:p1AlL`/QACp1AlL.QAKp1AlL@-QARp1AlLH+QAYp1AlL@)QA_p1AlL (QAjp1AlL'QAop1AlLX&QAwp1AlL%QAp1AlL#QAp1AlL!QAp1AlLQAp1AlLQAzp1AlLQA}p1AlLQAp1AlLQAp1AlLQAV8p1A"RQAp1AlL8QAp1AlLQA@p1AlLQAp1AlLQAp1AlLXQAp1AlLQAp1AlL@QAp1AlL` QA@p1AlL QAp1AlLQAp1AlLQAp1AlLQAp1AlLQAp1AlLQAp1AlLQA@p1AlLQAp1AlLQAp1AlLQAp1AlLQAp1AlL@QA@p1AlLQA@p1AlLQAq1AlLQAq1AlLQAq1AlLQA0q1AlLQAq1AlLQA(q1AlLQA.q1AlL@QA2q1AlL`QAt1AlL0QAAt1AlLQADt1AlLPQA?t1AlLQA4t1AlLPQA@-t1AlLQA2t1AlL QA*t1AlL0 QAt1AlLpQA@t1AlLQAt1AlLQAt1AlL QA@s1AlL`QAs1AlLpQA@s1AlL@QAs1AlLQAs1AlLQAs1AlLPQA@s1AlLQA@s1AlLQAs1AlLQA`s1AlL QA@s1AlL@QAs1AlLQAs1AlL QAs1AlLP"QAs1AlL $QA@s1AlL%QA@s1AlL$QA@s1AlL@$QAs1AlL#QAs1AlL0#QA@s1AlL@"QAs1AlL`!QAs1AlL QAs1AlLQAs1AlLQAt1AlLQA t1AlLQAt1AlLQAt1AlLQAt1AlLQA$t1AlLQA)t1AlLQA/t1AlLQA ;t1AlL@QAJt1AlLQAVt1AlLx QAZt1AlL@ QAct1AlL QAit1AlLQA@ut1AlLQA|t1AlLQA@t1AlLQA@t1AlLpQAt1AlLQAt1AlLQA@t1AlLQAt1AlL`QAt1AlLPQAt1AlLPQAt1AlL`QAt1AlL QAt1AlL`QA@t1AlLQAt1AlL@QAt1AlL8QA@t1AlLQA@t1AlLQAt1AlLQAt1AlL@QAt1AlL QAt1AlL0QAt1AlLQAt1AlL QAt1AlL QAt1AlLQAt1AlLQAt1AlLQAt1AlLQA`t1AlL߀QAt1AlL݀QA@t1AlL܀QAt1AlLڀQAt1AlLPـQAt1AlL׀QAt1AlLՀQA@t1AlLԀQAt1AlLҀQAjt1A悫ЀQAt1AlL ̀QApt1AlLpȀQAt1AlLƀQAt1AlLŀQA@t1AlLÀQAt1AlL €QAt1AlLQAt1AlLQAt1AlLQAu1AlLQAu1AlLPQAu1AlLഀQAu1AlLQA@u1AlLQA!u1AlLQA@+u1AlLQA3u1AlL0QA9u1AlLQA=u1AlLQAFu1AlL0QARu1AlLЧQA@Yu1AlL QA`u1AlLQA@eu1AlL`QAeu1AlL QAmu1AlLQAuu1AlL`QA{u1AlLQA@u1AlL@QAu1AlLQAu1AlLQAu1AlLQAu1AlLQAu1AlLQAu1AlLHQAu1AlLQAu1AlLQAu1AlLQA@u1AlLPQA@u1AlLQAu1AlL@QAu1AlLQA@u1AlLQA@u1AlLQAv1AlL QA@v1AlLQAv1AlL@QA@#v1AlLQA*v1AlLQA8v1AlL0QAFv1AlLQAQv1AlL`QAlv1AlLPQA5UUtv1A悫QA|v1AlLQAv1AlLQAv1AlLQAv1AlLpQA@v1AlLQA@v1AlL~QAv1AlL|QA@v1AlLp{QA@v1AlLyQA@v1AlLxQA@v1AlLxQAv1AlLvQAv1AlLwQAv1AlLPuQAv1AlL`rQAv1AlLrQA@v1AlLsQAv1AlLsQA@v1AlLpQAv1AlL oQA@v1AlLnQAv1AlLnQAv1AlLlQA@v1AlL kQAv1AlL@iQAv1AlLgQA`v1AlLfQAv1AlL0eQAv1AlLbQAv1AlLbQAv1AlL`QAv1AlL@_QA@v1AlL]QAv1AlL`\QA@v1AlL\QAv1AlL`[QA`v1AlLYQAv1AlLPXQAv1AlLVQAv1AlLpTQAv1AlLRQAv1AlLPQAw1AlL PQAw1AlL`LQAv1AlL`KQAv1AlL@JQAv1AlLIQAv1AlLGQAv1AlLpFQAv1AlLDQAv1AlLAQApv1AlL?QAv1AlL >QAv1AlL:QAv1AlL(9QA@v1AlL 8QA@v1AlL`6QA@v1AlL4QAv1AlL2QA v1AlL/QAv1AlL-QAv1AlL,QAv1AlL*QAv1AlL)QA v1AlLp(QA@v1AlL'QAw1AlL&QAw1AlL%QA@ w1AlL@$QAw1AlL"QA`w1AlL"QA$w1AlL QA+w1AlLP QA-w1AlL$QA4w1AlL'QA9w1AlL *QA@Aw1AlL,QAFw1AlL-QA@Lw1AlL1QARw1AlLP3QAYw1AlL5QA@bw1AlL6QAdw1AlL8QArw1AlL;QA}w1AlLQAw1AlL?QA@w1AlL@QAw1AlLAQAw1AlLAQA@w1AlLPCQA@w1AlLCQAw1AlLBQA@w1AlL@QAx1AlL@QA,x1AlL=QA;x1AlL`;QA@Lx1AlLp8QA[x1AlL6QAsx1AlL@3QAx1AlL`0QAx1AlL@.QAx1AlL`-QA@x1AlL,QAx1AlL0*QAx1AlL(QA@x1AlL &QAx1AlL@"QAx1AlL QA y1AlLQA.y1AlLQA@9y1AlLQAMy1AlLQA@sy1AlLQA~y1AlLQAy1AlLpQAy1AlLQAy1AlL QA@y1AlLQAz1AlLQAz1AlLPQA'z1AlLQA8z1AlL0QAQz1AlL@QAfz1AlLQA~z1AlLpQAz1AlLpQA@z1AlLQAz1AlLQA@z1AlLQA{1AlLQA<{1AlLQAK{1AlLQAj{1AlLpQA@{1AlLQA{1AlLQA{1AlLQA@{1AlLQA{1AlLQA{1AlLQA{1AlLQA{1AlLpQA{1AlL QA{1AlL QA@|1AlLQA|1AlLQA%|1AlLQA7|1AlLQAF|1AlLQAT|1AlLQA`|1AlLpQAm|1AlL0QA}|1AlL`QA|1AlLPQA@|1AlLQA|1AlLQA|1AlLQA|1AlLQA@|1AlLQA}1AlL`QA@}1AlL QA"}1AlLQA2}1AlLpQAA}1AlLQA@Z}1AlLQA@f}1AlLPQAp}1AlLQA@}1AlL`QA}1AlLQA}1AlLQA@}1AlL QA}1AlL`QA@}1AlLQA}1AlLQA}1AlLpQA@~1AlLQA)~1AlLQAA~1AlLQAY~1AlLQAi~1AlLQAv~1AlLQA~1AlL0QA~1AlLpQA~1AlL@QA~1AlLQA@~1AlLQA@~1AlLУQA~1AlLТQA~1AlL`QA@~1AlLQA~1AlL QA1AlLQA@1AlLQA31AlL QAG1AlLQAV1AlL@QA_1AlLQAe1AlLQA@r1AlLQAx1AlL`QA@}1AlLQA1AlLQA1AlLQA1AlLPQA1AlL QA1AlLQA 1AlLQA1AlLPQA@1AlLQA@1AlLQA1AlLQA1AlLQA1AlL0QA1AlL QA1AlL`QA@1AlL`QA1AlLQA@1AlLPQA-1AlL@QA<1AlLQAT1AlLpQA@f1AlLQAz1AlLQA1AlLpQA1AlLQA1AlLQA1AlL@QAʀ1AlLQA@ۀ1AlL@QA1AlLQA1AlLPQA1AlLQA@1AlLQA+1AlLQA@1AlL}QA@O1AlL0|QAS1AlLzQAn1AlLyQA@n1AlL{QAt1AlL{QA@1AlL{QA@1AlL0}QA1AlLP}QA1AlL|QA1AlL{QAǁ1AlL@zQA؁1AlLwQA1AlL@xQA1AlLtQA1AlLqQA@1AlLfQA*1AlLgQAA1AlLpdQA@O1AlLeQAV1AlLPdQA_1AlLdQAj1AlL0eQAt1AlLeQA|1AlLdQA1AlL@fQA1AlLfQA1AlLdQA1AlLeQA@ʂ1AlLfQA܂1AlLeQA1AlLpcQA@1AlL `QA 1AlL_QA1AlL`_QA1AlL@_QA(1AlL@\QA91AlLZQA@J1AlL`YQAT1AlLZQA^1AlLP[QAj1A'ZQA~1AlL[QA1AlL[QA1AlL0[QA1AlLZQA@ԃ1AlL YQA@1AlLXQA@1AlLWQA1AlLVQA&1AlLSQA21AlLPQAC1AlL0MQA@^1AlLJQA@}1AlLpMQA1AlLIQA@1AlLFQA@1AlLGQA@҄1AlL>QA@1AlL;QA1AlL@:QA1AlL:QA1AlL;QA41AlL@QAK1AlL BQAY1AlLCQAa1AlLEQAo1AlLHQA1AlLpIQA@1AlLKQA1AlLLQA@1AlLpIQA˅1AlLFQAՅ1AlLPEQA1AlL0DQA1AlL`CQA1AlL@QA1AlLP<QA 1AlL9QA1AlL8QA@!1AlL7QA(1AlL;QA.1AlLBQA91AlLCQA@F1AlL`EQA@U1AlL EQA@e1AlLHQA@|1AlLFQA1AlLEQA1AlLFQA1AlL EQA1AlLCQA@1AlL@CQAІ1AlLAQA݆1AlL@QA@1AlL?QA@1AlL@QA1AlL?QA 1AlLP?QA1AlL:QA$1AlL9QA:1AlL8QAJ1AlLp9QA@[1AlL;QAr1AlL=QA@1AlLPAQA1AlL<QA@1AlL ?QA@1AlL0?QAˇ1AlL ;QAӇ1AlL:QA@1AlL@9QA1AlL7QA@1AlL5QA1AlL5QA` 1AlL5QA1AlL5QA 1AlLh3QA@1AlL`QA݇1AlL~QAЇ1AlL~QA1AlL~QA@ 1AlL~QA01AlL`~QA.1AlL@~QA 1AlL~QA1AlL`~QA1AlLo~QA݇1AlLk~QAۇ1AlLZ~QA܇1AlLU~QA߇1AlLJ~QA@ȇ1AlL@}QAن1AlL`}QA=1AlL}QA*1AlL }QAY1AlL@}QA1AlL@}QA@1AlL@}QA@؃1AlL@{}QA@҃1AlL@s}QA@ƃ1AlLa}QA΃1AlL@S}QA@1AlLQ}QA21AlL@R}QA"1AlL]}QA@1AlLa}QAK1AlLb}QA(1AlLT}QA1AlLD}QA@1AlL}QA}1AlL`(}QA1AlL}QAI1AlL}QA1AlL@}QA1AlL}QA@1AlL@ }QA1AlL`|QA1AlL|QA1AlL`|QAg1AlL|QA<1AlL|QA81AlL`|QA;1AlL|QA@1AlL`|QA@~1AlL|QAv~1AlL|QAa~1AlL|QAW~1AlL|QA~1AlL@|QA@}1AlL`|QA}1AlL`|QA}1AlL`|QA9}1AlL|QA}1AlL|QA|1AlL@|QA|1AlL|QA|1AlL|QAa|1AlL@|QAR|1AlL|QA;|1AlL@|QA|1AlL`|QA{1AlL|QA{1AlL|QAv{1AlL|QA@2{1AlL@|QAz1AlL |QAuz1AlL|QA$z1AlL`|QAy1AlL|QA@y1AlL|QA@My1AlL|QAy1AlL|QA@x1AlL |QAx1AlL|QAsx1AlL|QAx1AlL|QAw1AlL|QA@w1AlL|QAvw1AlL{|QA@!w1AlLz|QAv1AlLl|QAv1AlL@]|QAv1AlL`Q|QAv1AlLM|QA@1v1AlL`K|QAu1AlLD|QAu1AlLA|QAu1AlL@>|QA+u1AlL@@|QAt1AlL4|QAt1AlL%|QAIt1AlL |QA@2t1AlL`|QA@7t1AlL|QA7t1AlL{QA t1AlL{QA@s1AlL {QAs1AlL{QAes1AlL{QA@=s1AlL{QAr1AlL{QAr1AlL {QAr1AlL{QA@r1AlL {QAwr1AlL{QAr1AlL{QAr1AlL {QA@q1AlL{QAq1AlL@{QAq1AlLz{QAq1AlL\{QA@q1AlLO{QA@q1AlL9{QAq1AlL;{QA?q1AlL>{QAp1AlLF{QAp1AlL`R{QAjp1AlLZ{QA@&p1AlL^{QAo1AlLi{QA@o1AlL@r{QA@o1AlLx{QAo1AlLx{QA*o1AlL z{QAo1AlLk{QA@o1AlLV{QAn1AlL <{QA@n1AlL@,{QAn1AlL-{QA>n1AlL9{QA@m1AlLI{QAm1AlL@V{QAm1AlLb{QA@m1AlLh{QA@m1AlLj{QA1m1AlLr{QA@l1AlL{{QAl1AlLb{QAl1AlL`L{QA^l1AlL0<{QApl1AlL-{QAwl1AlL`"{QALl1AlL {QA l1AlL"{QAk1AlLzQAk1AlLzQAk1AlLzQAk1AlLzQAk1AlL@zQA]k1AlL`zQAj1AlLzQA@j1AlLzQA)j1AlL@zQAi1AlLzQAi1AlLzQAi1AlLzQAji1AlL@zQAi1AlLzQAh1AlL@zQAh1AlL {QA@h1AlL{QA/h1AlLzQA@g1AlL zQAg1AlL@zQA@*g1AlL`zQAf1AlLzQA@f1AlLzQA@f1AlLzQA@f1AlL}zQAJf1AlL^zQA-f1AlL=zQAf1AlL zQAf1AlL`zQAe1AlLzQAe1AlL zQAFe1AlLzQAJe1AlLyQA3e1AlLyQA"e1AlLyQA6e1AlLbyQA@Ce1AlL 9yQA@e1AlL4yQAd1AlL0yQA@d1AlLyQAd1AlL`yQAd1AlLxQAd1AlLxQA@c1AlLxQA@c1AlL xQA@ac1AlLxQA9c1AlLxQAsa1AlL`xQAa1AlLxQA@ a1AlLxQA@`1AlL`xQA@c`1AlL xQA@!`1AlLxQA_1AlL yQA@l_1AlLyQAD_1AlL"yQAA_1AlL@>yQA5_1AlLUyQA_1AlLlyQA@^1AlLyQA^1AlLyQA@^1AlLyQA`^1AlL@yQA@W^1AlL zQA^1AlL zQA]1AlL zQA]1AlLzQA]1AlL\zQAJ]1AlLdzQA@Y]1AlL szQA\1AlLzQAc\1AlLzQA\1AlLzQA"^1AlLzQA@_^1AlLzQA@{^1AlLzQA@^1AlL`zQA^1AlLzQA _1AlL {QAU_1AlL({QA@_1AlL@{QA@_1AlL`T{QA@Z`1AlLe{QA`1AlL w{QA@`1AlL{QAa1AlL@{QA@Pa1AlL`{QA@a1AlL {QAb1AlL{QA@Cb1AlL{QAdb1AlL{QAb1AlL@{QA@b1AlL{QA'c1AlL|QA/c1AlL|QAhc1AlL|QAc1AlL|QA@c1AlL|QAc1AlL`!|QAc1AlL.|QAc1AlL@|QAc1AlLN|QA@c1AlLZ|QAc1AlLa|QArc1AlL o|QA`$c1AlLw|QA@b1AlL|QA`b1AlL|QA.b1AlL|QA@b1AlL |QAb1AlL|QAa1AlL|QA@a1AlL` }QAa1AlL!}QA@na1AlL 6}QAUa1AlL`E}QA>a1AlL@R}QA'a1AlL`[}QAa1AlL`f}QAa1AlLg}QA.a1AlLh}QAaa1AlL@k}QAa1AlL@p}QA@a1AlLl}QAFb1AlLo}QAb1AlLm}QA@b1AlL`r}QA@c1AlLt}QAFc1AlLv}QA,c1AlL`}QA@;c1AlL@}QAYc1AlL}QAPc1AlL}QA8c1AlL }QA&c1AlL}QA@c1AlL}QAc1AlL }QA@c1AlLP}QAc1AlL}QA@ c1AlL ~QA c1AlL`~QAc1AlL !~QA@c1AlL0~QA@b1AlL`3~QAb1AlL1~QAb1AlL _~QA@b1AlL~QAb1AlL ~QAb1AlL@~QA@ub1AlL@~QA@Rb1AlL~QAMb1AlL~QA@\b1AlL~QAMb1AlLQARb1AlLQAb1AlLQAb1AlL@DQAc1AlL`;QAKc1AlLJQAc1AlLOQA(d1AlLVQAod1AlLXQA@d1AlLWQAd1AlL\QAd1AlL gQA*e1AlLgQAe1AlL}QATe1AlL`QA@/e1AlLQA'e1AlL`QA\e1AlL QA@ae1AlLQAe1AlL`QAe1AlLQAe1AlL QA,f1AlLQA@7f1AlLQAtf1AlLQAf1AlLQAf1AlL!QA@f1AlL 1QA@f1AlL:QAf1AlL@FQAMg1AlL OQA@sg1AlL UQA@g1AlLgQAg1AlLhQA1h1AlLlQAih1AlL pQAh1AlLnQAxh1AlLQAh1AlLQAh1AlLQAh1AlLQAvh1AlLQAgh1AlLÀQAjh1AlL@рQAh1AlLQA@h1AlL@QAh1AlLQAh1AlLQAh1AlL`!QA i1AlL`,QA@i1AlL7QA i1AlL6QA`i1AlLP6QA i1AlL4QA ~~) !HVGiovinazzo @xɆ[A=Yc\1AlL`xQA01AlL7QA|i  i1AlL4QAi1AlL3QA(i1AlL2QA@+i1AlL0QA1i1AlL/QA :i1AlL0/QA@?i1AlL-QAAi1AlL+QAEi1AlL*QA@Ji1AlL (QA Mi1AlL &QARi1AlL$QA [i1AlL#QAci1AlL#QAii1AlL$QApi1AlL$QAui1AlL&QA I2AlLlQAI2AlLlQA@I2AlLlQAI2AlL`lQAI2AlLlQAI2AlLlQAI2AlLlQA@I2AlLlQAI2AlLlQA'I2AlLlQA3I2AlLlQAFI2AlL lQAEI2AlLlQA7I2AlLЙlQA6I2AlL`lQA>I2AlLlQADI2AlLplQA@XI2AlL`lQAbI2AlL0lQAjI2AlLАlQA@tI2AlLlQA}I2AlLlQA@I2AlLlQA@I2AlLlQAI2AlLlQAI2AlLlQA I2AlLlQAI2AlL`lQAI2AlLlQAI2AlL`lQAI2AlLlQA`I2AlLЖlQA@I2AlLlQAI2AlLPlQAI2AlLlQAI2AlLЏlQAI2AlLlQAI2AlL0lQAI2AlLАlQAI2AlL@lQA`I2AlL(lQAI2AlLlQAI2AlLlQA@I2AlLlQAI2AlLlQAI2AlLPlQA@I2AlLlQA@J2AlLЗlQA`J2AlL`lQAJ2AlLlQAJ2AlLlQA$J2AlLlQA@.J2AlLlQABJ2AlL`lQAKJ2AlLplQAVJ2AlLlQAZJ2AlLlQA_J2AlLplQAhJ2AlLlQApJ2AlLПlQA|J2AlLplQAJ2AlLlQAJ2AlLlQAJ2AlLlQAJ2AlLlQAJ2AlLlQA J2AlLPlQAJ2AlLlQA@J2AlLlQAJ2AlLlQAJ2AlLPlQAJ2AlL0lQA@J2AlLlQAJ2AlL lQA@J2AlLlQAJ2AlL lQAJ2AlLlQAJ2AlLlQAJ2AlL lQA@J2AlL`lQAJ2AlLlQAJ2AlLlQA K2AlLlQAK2AlL lQAK2AlLlQAK2AlL@lQA@)K2AlLlQA3K2AlLlQA:K2AlL lQAAK2AlLlQA@KK2AlL lQASK2AlL0lQA(L2AlL@lQAbL2AlLplQAL2AlLlQAM2AlL`lQA}M2AlL`~lQARL2AlLlQA"L2AlLlQAK2AlLplQAK2AlL`lQAuK2AlLlQAaK2AlLlQA+K2AlLlQA@0K2AlL{lQA"K2AlLxlQAK2AlLslQAJ2AlLqlQA@K2AlLmlQA.K2AlL`olQAHK2AlLslQAsK2AlL`ylQAK2AlLnlQA@K2AlLolQAK2AlLqlQAK2AlL`^lQA@K2AlL\lQA@K2AlLZlQAL2AlL@VlQAL2AlLRlQA@L2AlLPNlQAL2AlLIlQAąK2AHlQA@K2AlLHlQAK2AlLJlQA@K2AlLElQAK2AlL DlQAK2AlLBlQAK2AlL`DlQAK2AlLPFlQAK2AlLFlQAK2AlLGlQAK2AlL FlQAK2AlLPDlQAK2AlL=lQAK2AlLN2AlLvkQAFN2AlLvkQANN2AlL xkQATN2AlLvkQATN2AlLrkQAPN2AlL@okQANN2AlLlkQAFN2AlLkkQAHN2AlLikQAJN2AlLgkQA@XN2AlL fkQA@aN2AlLekQAeN2AlLgkQAfN2AlL`jkQAqN2AlL`jkQAwN2AlLlkQA@N2AlLlkQAN2AlLokQAN2AlLqkQA@N2AlLskQAN2AlL`rkQAN2AlLpkQA@N2AlL`rkQAN2AlLokQA@N2AlLpmkQAN2AlLmkQAN2AlLlkQAN2AlL mkQA@N2AlLmkQAN2AlLmkQAN2AlLlkQAN2AlLPikQAN2AlLpfkQAN2AlL fkQAN2AlLckQAN2AlL`akQAN2AlL_kQAN2AlLp_kQAO2AlL_kQA@O2AlL_kQAO2AlL]kQAO2AlLPZkQAO2AlLWkQA@O2AlLPUkQA@O2AlLTkQA O2AlLTkQA@(O2AlLPUkQA,O2AlL TkQA6O2AlLTkQA;O2AlLPWkQABO2AlLXkQAKO2AlL0YkQARO2AlLWkQAUO2AlLUkQA@\O2AlLTkQAeO2AlLTkQA@jO2AlLVk QA@mO2AlLXkQAuO2AlL0YkQAwO2AlL@WkQAzO2AlLpTkQAO2AlLTkQAO2AlL VkQAO2AlLUkQAO2AlLVkQAO2AlLVkQAO2AlLVkQAO2AlLpWkQA@O2AlLXkQA@O2AlL\kQA@O2AlLp`kQAO2AlLPbkQAO2AlLpbkQAP2AlL`dkQAP2AlLgkQAP2AlLphkQA#P2AlLgkQA@"P2AlL`ekQAP2AlLckQA P2AlLakQAP2AlLh_kQAP2AlL``kQA P2AlL@`kQA@P2AlL^kQAP2AlL\kQA@ P2AlL0\kQA P2AlLZkQAP2AlL0ZkQA@P2AlLWkQA P2AlL@UkQA P2AlLSkQA@P2AlLSkQA@P2AlL`QkQA@ P2AlL0OkQAP2AlLMkQAP2AlLKkQA@P2AlLIkQAP2AlL HkQA P2AlLpEkQA@P2AlLDkQAO2AlLCkQAO2AlLpAkQAO2AlL?kQA@O2AlLP2AlL03kQA@HP2AlL 2kQA@RP2AlL2kQAZP2AlL2kQAcP2AlL4kQAkP2AlLP6kQAoP2AlL8kQA@sP2AlL:kQAP2AlL 9kQAP2AlL7kQA~P2AlL`3kQA{P2AlL01kQAoP2AlLp.kQAiP2AlLP+kQAbP2AlL'kQA@_P2AlL%kQA`P2AlL"kQAeP2AlL` kQAmP2AlLkQAwP2AlLkQA@~P2AlL`kQAP2AlLkQAP2AlL`kQA@P2AlL!kQAP2AlL#kQAP2AlL%kQAP2AlL%kQA@P2AlL`'kQAP2AlL@'kQAP2AlL'kQAP2AlL0'kQAP2AlLP)kQA@P2AlL*kQAP2AlL *kQAP2AlL,kQAP2AlL`.kQA@P2AlL1kQA@P2AlL2kQAP2AlL4kQAP2AlL:kQAP2AlL;kQAP2AlL?kQAP2AlLAkQAP2AlL@kQAP2AlL0@kQAP2AlLBkQAP2AlLDkQA P2AlLFkQAP2AlL0DkQAP2AlLPDkQAP2AlLEkQAP2AlLDkQAP2AlLPDkQA@Q2AlLFkQA Q2AlL GkQAQ2AlLIkQA!Q2AlLJkQA%Q2AlL0HkQA#Q2AlLEkQAQ2AlLDkQAQ2AlLpBkQA Q2AlLAkQA Q2AlL>kQAQ2AlLPS2AlL0jQA@>S2AlL|jQAAS2AlLzjQAAS2AlL`wjQA=S2AlLtjQA@ES2AlLrjQASS2AlL@qjQAbS2AlL@sjQA@nS2AlL wjQAS2AlL@jQAS2AlLjQAS2AlLjQAS2AlLЁjQAS2AlLjQAS2AlL@jQAS2AlL`jQAS2AlLjQAS2AlLjQAS2AlLjQAS2AlLjQAS2AlLjQAS2AlLjQAS2AlLjQA@S2AlL`jQA@S2AlLjQAT2AlLjQAT2AlL}jQAT2AlL}jQA%T2AlL{jQA@'T2AlLxjQA/T2AlL0vjQA@'T2AlLsjQA@"T2AlL`ojQAT2AlL mjQAS2AlL ijQAS2AlLgjQA T2AlLpfjQAT2AlLgjQA%T2AlL0jjQA@7T2AlLpljQA@FT2AlL`mjQA@KT2AlLPqjQA@VT2AlL@tjQA@fT2AlLvjQAqT2AlLvjQAyT2AlL@rjQAT2AlLqjQAT2AlL0sjQAT2AlLsjQAT2AlL`tjQAT2AlL0rjQAT2AlLojQA@T2AlL ljQAT2AlLkjQA@T2AlL`jjQAT2AlLhjQAU2AlLejQA@!U2AlLPbjQA*U2AlL_jQA@.U2AlLp[jQA@0U2AlLVjQA%U2AlLTjQA@$U2AlL0RjQA"U2AlL@PjQAU2AlL@OjQA@U2AlLMjQA U2AlL@MjQA@U2AlLpMjQAT2AlLJjQAT2AlLpJjQAT2AlL HjQAT2AlL0FjQAT2AlLFjQAT2AlLDjQAT2AlLAjQAT2AlL=jQAT2AlL;jQAT2AlL8jQAT2AlLp9jQAT2AlL;jQAT2AlL0=jQAU2AlLp?jQAU2AlL0BjQAU2AlLDjQA"U2AlL`FjQA'U2AlLHjQA8U2AlLKjQAKU2AlLNjQA@^U2AlLNjQAeU2AlLMjQAoU2AlL`KjQA@}U2AlLJjQAU2AlLIjQAU2AlLFjQA@U2AlL DjQAU2AlL0@jQAU2AlL>jQAU2AlLhQA[2AlL7hQA[2AlL`7hQA[2AlL@8hQA[2AlL4hQA[2AlL2hQA[2AlL00hQA[2AlL0hQA[2AlL/hQA@[2AlL*hQA[2AlL`(hQA[2AlL&hQA[2AlL@$hQA[2AlL"hQA[2AlLPhQA@[2AlLhQA[2AlLhQA[2AlLhQA[2AlLhQA@[2AlLhQA[2AlL hQA[2AlLPhQA@[2AlLhQA[2AlLhQA[2AlL hQA[2AlL`hQA\2AlLPhQA\2AlLhQA\2AlL`hQA,\2AlLhQA=\2AlLhQA@@\2AlLhQA<\2AlLhQA<\2AlLhQA6\2AlL@gQA/\2AlLhQA@&\2AlLgQA@!\2AlL0gQA)\2AlL`gQA7\2AlLgQA7\2AlLgQA0\2AlLgQA'\2AlL@gQA\2AlLgQA\2AlLgQA\2AlL gQA@\2AlL0gQA\2AlLgQA@*\2AlLgQA;\2AlL0gQA@\2AlL`gQAJ\2AlLgQAQ\2AlLgQAW\2AlLgQA@\\2AlLgQA^\2AlLgQAa\2AlL@gQAh\2AlLgQAf\2AlL gQA^\2AlLgQA@T\2AlLgQAG\2AlLpgQA@B\2AlL gQAD\2AlL`gQA9\2AlL0gQA0\2AlL gQA#\2AlLgQA\2AlLgQA@\2AlL gQA\2AlL@gQA \2AlLgQA@\2AlLgQA@[2AlLPgQA\2AlLPgQA@\2AlL gQA\2AlLgQA[2AlL`gQA@\2AlLнgQA \2AlL@gQA\2AlLpgQA@*\2AlLgQA7\2AlL@gQA8\2AlLPgQA7\2AlLgQA)\2AlLPgQA2\2AlL`gQA@\2AlLgQAM\2AlLgQA@W\2AlLgQAY\2AlLgQA@e\2AlLgQAb\2AlLgQAd\2AlL@gQAr\2AlLgQA~\2AlLgQA@\2AlL gQA@\2AlLPgQA@\2AlLpgQA\2AlLPgQA\2AlLgQA\2AlLpgQA\2AlLgQA@\2AlL gQA\2AlLpgQA@\2AlLgQA\2AlLgQA@\2AlLgQA\2AlLgQA\2AlLgQA\2AlLgQA\2AlLgQA\2AlLgQA\2AlLgQA@\2AlLgQA@\2AlL0gQA\2AlLgQA\2AlL0gQA\2AlL0gQA]2AlLЗgQA]2AlLgQA]2AlLgQA]2AlLgQA]2AlLPgQA\2AlL`gQA@\2AlLpgQA\2AlLPgQA\2AlLЃgQA\2AlLgQA@\2AlL~gQA\2AlL`}gQA]2AlL}gQA@ ]2AlL|gQA@]2AlLygQA]2AlLxgQA$]2AlLpxgQA1]2AlLwgQA6]2AlLvgQA5]2AlL`qgQA;]2AlLogQAJ]2AlLmgQAQ]2AlLPjgQAZ]2AlLhgQAd]2AlLPhgQAq]2AlL0kgQA{]2AlL`kgQA]2AlLhgQA]2AlLPegQA]2AlL agQA]2AlL_gQA]2AlL^gQA]2AlL\gQA]2AlL _gQA@]2AlL_gQA]2AlLp]gQA]2AlL [gQA]2AlLWgQA]2AlLPVgQA]2AlLSgQA]2AlL@TgQA@]2AlL`VgQA]2AlLXgQA]2AlLVgQA]2AlLSgQA@]2AlLOgQA]2AlLMgQA]2AlL KgQA@]2AlLHgQA]2AlL@FgQA@]2AlLCgQA^2AlLpBgQA^2AlLpBgQA^2AlLpCgQA%^2AlLBgQA.^2AlLp?gQA:^2AlL>gQAD^2AlL;gQAJ^2AlL8gQA\^2AlL5gQAs^2AlL`3gQA^2AlL0gQA^2AlL/gQA^2AlL0gQA@^2AlLp1gQA^2AlL0gQA@^2AlL-gQA^2AlL*gQA@^2AlL)gQA^2AlL$gQA_2AlL#gQA!_2AlL!gQA*_2AlLgQA._2AlLgQA?_2AlL`gQA@Q_2AlLpgQA@c_2AlLgQAi_2AlL gQA_2AlLgQA@_2AlL gQA_2AlLgQA_2AlLgQA_2AlLgQA@`2AlL gQA"`2AlLPfQA/`2AlLgQA5`2AlLgQA@7`2AlL gQA>`2AlLp gQA@K`2AlL gQAY`2AlL gQAY`2AlL` gQAU`2AlL@gQA@L`2AlLPgQA@I`2AlL@fQA@M`2AlL0fQA_`2AlLfQA@t`2AlLfQA`2AlL`fQA@`2AlLpfQA`2AlLfQA@`2AlL`fQA`2AlL fQA`2AlLfQA@`2AlLPfQA a2AlLfQA(a2AlLfQA;a2AlLfQAea2AlL`fQAya2AlLfQAa2AlLfQAa2AlLPfQAa2AlLfQAa2AlLfQAa2AlLfQAa2AlLfQAa2AlLfQA@a2AlL0fQA@b2AlLfQAb2AlL0fQA*b2AlLfQAd2AlLfQA@d2AlLfQAd2AlLfQAe2AlLЗfQAe2AlLВfQAe2AlLfQAf2AlLfQA#f2AlL fQAGf2AlLfQA@zf2AlLfQAf2AlLfQA@f2AlLpfQAf2AlL|fQAf2AlLzfQA g2AlL0zfQAg2AlL|fQA@ g2AlLp~fQA0g2AlL0fQAGg2AlLfQAOg2AlL~fQA_g2AlLpyfQAhg2AlLvfQAvg2AlLPvfQA@g2AlLrfQAg2AlLnfQAg2AlLifQAg2AlLdfQA@g2AlLPbfQAg2AlL[fQAg2AlL@XfQA@h2AlL@VfQA@h2AlLWfQA,h2AlLZfQA3h2AlL`]fQA>h2AlL0_fQA@Th2AlL `fQAvh2AlL0`fQA@h2AlL]fQAh2AlLYfQAh2AlL UfQAh2AlL0RfQAh2AlL@RfQA@h2AlL`TfQA@h2AlLWfQA@h2AlLP[fQAi2AlL_fQA'i2AlLafQA@Hi2AlL afQAai2AlL_fQA@si2AlL \fQA@i2AlLWfQA@i2AlL SfQAi2AlLRfQAi2AlLpTfQAi2AlLTfQAi2AlLRfQA j2AlLOfQA"j2AlLKfQAJj2AlL@HfQAvj2AlLPBfQAj2AlL07fQA@j2AlLP0fQA/k2AlL%fQAfk2AlL0fQAMk2AlL`fQA:k2AlLeQA!k2AlLeQA@ k2AlL`eQAj2AlLeQAj2AlL`eQAj2AlLeQAzj2AlLeQAZj2AlLeQAj2AlL`eQAi2AlLfQAvi2AlL@ fQAi2AlL@ fQAh2AlL fQAi2AlLeQAi2AlL@eQA@^i2AlLeQAi2AlLeQAyi2AlLeQA@Ji2AlLeQAh2AlL eQA@h2AlLeQA@sh2AlLeQA#h2AlLeQAg2AlLeQAZg2AlL eQAf2AlL{eQAf2AlL@meQA/f2AlLbeQAe2AlLTeQAe2AlLGeQAfe2AlL3eQAEe2AlL`eQAe2AlLeQAd2AlL@dQAd2AlLdQAd2AlL`dQApd2AlL@dQARd2AlLdQA#d2AlLdQAd2AlLdQAd2AlLdQAd2AlLdQAc2AlLdQA@c2AlLdQAgc2AlLdQA@9c2AlLdQA@b2AlL dQAb2AlLdQAb2AlL dQA^b2AlL}dQAb2AlLmdQAa2AlLYdQA@a2AlLGdQA=a2AlLAdQA`2AlL9dQA`2AlL )dQA`2AlLdQA`2AlL`dQA`2AlL cQA`2AlLcQA`2AlLcQA`2AlLcQA`2AlL cQA`2AlLcQA`2AlLcQA`2AlLcQA`2AlLcQA`2AlL{cQAw`2AlL@qcQA@4`2AlL@ecQA_2AlL@YcQA@_2AlLTcQA@M_2AlL ScQA^2AlLXcQA^2AlLYcQA@^2AlL@XcQA^2AlLOcQAf^2AlLDcQA@X^2AlL@cQA@8^2AlL8cQA^2AlL@-cQA@]2AlL@(cQA]2AlL !cQA]2AlLcQA]2AlLcQA]2AlLcQA@]2AlLcQA]2AlL@cQA@h]2AlL cQA@C]2AlL cQA@3]2AlL cQA]2AlL cQA@\2AlL`cQA\2AlLbQA\2AlLbQA_\2AlLbQA\2AlLbQA@(\2AlL bQAY\2AlL@bQA\2AlLbQA\2AlL@bQA@\2AlL bQA@\2AlLbQA@\2AlL`tbQA]2AlLhbQA\2AlL YbQA\2AlLFbQA@\2AlL@4bQAj\2AlL bQAW\2AlL bQA3\2AlL aQA[2AlL`aQA@[2AlLaQAe[2AlLaQA[2AlLaQAZ2AlL@aQAZ2AlL`zaQA@Z2AlLYaQAZ2AlLAaQA[Z2AlL 5aQA@ Z2AlL@&aQAY2AlL`aQAvY2AlL`aQA7Y2AlL`QA)Y2AlL`QAX2AlL`QAX2AlL``QA@X2AlL@`QAX2AlL `QAUX2AlL`QA@X2AlL `QAW2AlL`QA@W2AlL`QA@W2AlLw`QAW2AlLh`QALW2AlLQ`QA,W2AlL?`QA@%W2AlL;`QAV2AlL@'`QAV2AlL"`QASV2AlL`(`QA@9V2AlL4`QAV2AlL=`QAU2AlL2`QAU2AlL`QA|U2AlL `QA@gU2AlL_QA@TU2AlL _QA3U2AlL_QAT2AlL`_QAxT2AlL`_QApT2AlL@_QA5T2AlL`_QAT2AlL_QAS2AlL_QA@S2AlL@_QAS2AlL_QAVS2AlL_QAP2AlL0]QAP2AlL ]QAO2AlL]QAO2AlL]QAO2AlL]QAJO2AlL]QAO2AlL]QAN2AlL]QAN2AlL]QAwN2AlL@]QAHN2AlL]QAM2AlL]QAM2AlL ]QAM2AlL]QAM2AlL`]QAqM2AlL]QA\M2AlL]QA4M2AlL ]QAL2AlL`]QA@L2AlL`]QA@L2AlL]QAL2AlL ]QAtL2AlL]QAaL2AlLP]QA@ML2AlL]QA@>L2AlL ]QA#L2AlL]QAL2AlL]QAK2AlL@]QA@K2AlL ]QAGK2AlL`]QAK2AlL@]QAJ2AlL]QAJ2AlL]QA>J2AlL@]QA@I2AlL@]QAI2AlL`]QA|I2AlL]QA.I2AlL@]QA$I2AlL]QA@H2AlLЇ]QAH2AlL]QAH2AlL]QA:H2AlL`]QAH2AlL]QAG2AlL]QA@G2AlL]QA@FG2AlL]QA G2AlL]QAF2AlL]QAF2AlL0]QA@XF2AlL]QA@E2AlL@]QAE2AlL]QAVE2AlL]QA,E2AlL]QA@D2AlL]QAD2AlL@]QA[D2AlL`]QA.D2AlL]QAC2AlL]QA@C2AlL]QA^C2AlL ]QAC2AlL`]QA C2AlL]QAB2AlL]QAB2AlL]QAqB2AlL ]QA5B2AlL ]QAB2AlL]QAA2AlL@]QAA2AlL]QA`A2AlL]QA@EA2AlL]QA&A2AlL]QA@2AlL]QA@2AlL]QAk@2AlL]QA@K@2AlL]QA3@2AlL@]QA@2AlL ]QA@2AlL]QA?2AlLp]QA?2AlL@]QA?2AlL]QA?2AlL ]QAw?2AlL ]QA@1?2AlL]QA@>2AlL]QA>2AlL@]QA@>2AlL ]QAc>2AlL]QAW>2AlL]QA@5>2AlL`]QA&>2AlL ]QA >2AlL`]QA=2AlL]QA=2AlL]QA=2AlL]QA=2AlL]QA=2AlL ]QA@a=2AlL]QA@K=2AlL ]QA<2AlL ]QA~<2AlL]QAhv<2Aټ]QA}<2AlL]QA<2AlL]QA}<2AlL@]QA<2AlL^QA{<2AlL^QA@Y<2AlL%^QA;2AlL`e^QAf;2AlLj^QA@;2AlL`^QA@<2AlL`^QA =2AlL ^QA@=2AlLm^QAJ=2AlLl^QA @u=2AlLl^QA=2AlLe^QA@=2AlLj^QA=2AlLt^QA >2AlL|^QAC>2AlL`^QAJ>2AlL^QAm>2AlL`^QA@>2AlL`x^QA@>2AlLq^QA>2AlL m^QA4?2AlLj^QA\?2AlL[^QAy?2AlL_^QA?2AlLc^QA?2AlLN^QA@?2AlL`B^QA?2AlL L^QA?2AlLS^QA@@2AlLl^QA@2AlL0`^QAA2AlLЍ^QA@A2AlL ^QAA2AlL ^QAB2AlL`^QAQB2AlL@^QA@B2AlL^QAA2AlL^QA?2AlL_QA@?2AlL'_QA@?2AlL3_QA?2AlL<_QA?2AlL@C_QA>@2AlLO_QA@M@2AlLR_QAc@2AlL X_QAf@2AlLf_QAY@2AlL`i_QA@R@2AlLj_QA@n?2AlL_QA?2AlL_QAe=2AlL `QA=2AlL:`QAt<2AlL_QA<2AlL _QA<2AlL_QA@=2AlL_QAd<2AlLi_QA;2AlL=_QA;2AlL'_QA@;2AlL(_QA;2AlLA_QA:2AlL@O_QA:2AlL U_QA:2AlL\_QAy:2AlLg_QAV:2AlLv_QA8:2AlL_QA:2AlL _QA@92AlL_QAB:2AlL@_QA@:2AlL_QA:2AlL_QA:2AlL_!QAV:2AlL@_QA*:2AlL`QA92AlL`QA@92AlL`QA82AlL `QA82AlLp$`QA92AlL`k`QA92AlLq`QA@82AlLw`QA@82AlL}`QA92AlL@`QA*92AlL`QAM92AlL`QA92AlL`QA92AlL@`QA :2AlL@`QA":2AlL`QA92AlL `QA@92AlL``QA@92AlL`QA92AlL@`QA]92AlL`QAQ92AlL`QAk92AlL`QA@92AlL aQA92AlL(aQA92AlL:aQA@92AlL>aQA :2AlLHaQA@d:2AlL;aQA ;2AlL3aQA;2AlL`/aQA;2AlL,aQA;2AlL*aQAC<2AlL+aQAt<2AlL-aQA<2AlL`HaQAx<2AlLmaQAe<2AlLoaQA@D<2AlL`taQA;2AlLaQA@c;2AlLaQAk;2AlLaQA;2AlLaQA;2AlLaQA(<2AlL`aQA)<2AlL`aQA)<2AlLaQA@g;2AlL@bQA;2AlLcQA@62AlLMcQAz62AlL bcQAf62AlLscQAb62AlLcQA~62AlLcQA62AlLcQA@i62AlLcQAE62AlLcQA+62AlLcQA@ 62AlLcQA52AlL cQA52AlL@cQA52AlLcQA52AlL cQAx52AlLcQA\52AlLІcQA*52AlLcQA 52AlL`cQA'42AlL`cQA32AlL cQA32AlL@cQAJ32AlL@cQA32AlLcQA22AlLcQA22AlLcQA@2#2AlL cQA{22AlLcQAt22AlLвcQAl22AlLcQA@U22AlLcQA@22AlLcQA12AlL`cQA12AlL`cQA12AlL cQA12AlLcQA12AlLcQA12AlLcQA12AlLcQA12AlLdQA12AlLdQA12AlLdQA22AlL dQA@'22AlL@dQA@A22AlLdQAB22AlL@dQA722AlL`dQA-22AlLdQA/22AlL#dQA@22AlL`+dQA@22AlL dQA@22AlLdQAG32AlLcQA|32AlLcQA@32AlLcQA@32AlL`cQA32AlLdQA{32AlL dQAn32AlLdQAk32AlL@$dQAg32AlL0dQAN32AlL:dQA@O32AlL@@dQA_32AlLFdQA@232AlL UdQA32AlL_dQA22AlL^dQA22AlL`dQAW22AlLcdQA22AlLgdQA12AlL@jdQA12AlLcdQA@h12AlLidQAh12AlLadQA02AlL xdQA02AlLjdQA02AlLcdQAa02AlL[dQA@N02AlLVdQA%02AlLUdQA@02AlL_dQA/2AlLkdQA@/2AlL{dQA/2AlLdQA/2AlL@dQA/2AlL`dQA@02AlL`dQA<02AlL dQAP02AlLdQA)02AlLdQA$02AlLdQA/2AlL`eQA@/2AlLeQA/2AlLeQA@/2AlLeQA@/2AlLeQA/2AlL@-eQA/2AlL5eQA/2AlLAeQA/2AlLReQA/2AlLoeQAj/2AlL{eQAd/2AlL`eQAb/2AlL`eQA@b/2AlLeQAb/2AlLeQA.2AlLБeQA.2AlLeQA.2AlL@eQA@~.2AlLeQAf.2AlL`eQA\.2AlLeQAD.2AlLeQA@#.2AlL`eQA-2AlLeQA-2AlLeQA-2AlLeQA-2AlL@fQA-2AlLfQA.2AlL fQA1.2AlL-fQA@Z.2AlL`8fQA.2AlLCfQA.2AlL`JfQA.2AlLUfQA.2AlL[fQA.2AlL@dfQAp.2AlL@jfQAb.2AlL@ofQAJ.2AlL`zfQA8.2AlLfQA.2AlL@fQA-2AlL fQA-2AlL`fQA-2AlLfQA-2AlLfQA-2AlL fQA-2AlLfQA.2AlL@fQA#.2AlLfQA@-2AlLfQA-2AlL`fQA-2AlL`fQA-2AlLfQA-2AlLfQAV-2AlLfQA@,2AlL@fQA,2AlLPfQA_,2AlL`fQA6,2AlLfQA),2AlLfQA`,2AlL fQAX,2AlLfQA},2AlL@f%QA@,2AlL`fQA,2AlLfQA,2AlLfQA,2AlLfQA,2AlLgQA,2AlLgQA,2AlLgQA@,2AlLgQA,2AlLgQA,2AlL$gQAc,2AlL+gQA4,2AlL -gQA+2AlL@+gQA+2AlL@#gQA@+2AlLP gQA@+2AlL&gQA+2AlL`/gQA@h+2AlL7gQA@4+2AlL@gQA@8+2AlLHgQA!+2AlLNgQA+2AlLRgQA@*2AlLRgQA*2AlL@RgQA*2AlL@ZgQA@*2AlL@_gQA@*2AlLbgQA*2AlLggQA*2AlLkgQAo*2AlL`kgQA@M*2AlLigQA0)2AlLgQA@ )2AlLgQA(2AlLgQA@)2AlLgQA(2AlL@gQA(2AlLgQAj(2AlLgQA@?(2AlLgQA(2AlLgQA'2AlLgQA'2AlLgQA'2AlLgQA'2AlL`hQA'2AlL`hQA@'2AlL=hQA'2AlLNhQA@'2AlL`ahQA@'2AlL rhQA'2AlLhQA'2AlL@hQA@'2AlLhQA@'2AlL@hQA@'2AlL@hQA'2AlLhQA'2AlL`hQA (2AlLhQA@>(2AlL@hQAh(2AlLhQAx(2AlLhQA@(2AlL hQA@(2AlLiQA(2AlLiQA(2AlL&iQA(2AlLiQA(2AlL`#iQA@w(2AlL'iQA_(2AlL,iQA@e(2AlL@8iQA@(2AlL`6iQA@(2AlLIiQA(2AlL@diQA@(2AlL|iQA@(2AlL@iQA(2AlL`iQA(2AlLiQA(2AlLiQA )2AlLiQA@)2AlL`iQA)2AlLiQA(2AlLiQA@(2AlL iQAF)2AlLiQA@Z)2AlLjQA])2AlL jQAw)2AlLjQA)2AlL$jQA)2AlL.jQA@)2AlL8jQA)2AlLBjQA*2AlLLjQA#*2AlLPjQA@D*2AlLLjQAg*2AlL ZjQA*2AlLcjQA*2AlLdjQA*2AlLajQA+2AlL^jQAK+2AlLujQAg+2AlLjQAw+2AlLjQA@e+2AlLjQA@c+2AlL@jQAw+2AlLjQA|+2AlLjQA{+2AlLjQA+2AlLjQA@+2AlL`jQA@+2AlLjQA+2AlLjQA+2AlL@jQA+2AlLjQA),2AlLjQA@O,2AlLjQAU,2AlLjQA9,2AlLjQA",2AlL jQA@!,2AlLjQA@#,2AlL`jQA1,2AlLjQA],2AlLjQAq,2AlLjQAu,2AlL@jQA,2AlLjQA,2AlL@jQA,2AlLjQA,2AlLjQA@n,'2AlL`jQAx,2AlLjQA@,2AlLjQA,2AlLjQA@J-2AlL jQA@a-2AlLjQA-2AlL`jQA-2AlLjQA-2AlL`jQA .2AlLjQAI.2AlL@jQA.2AlL jQA@.2AlL`jQA@.2AlL jQA-/2AlLjQAM/2AlL@jQAc/2AlLjQA/2AlL@jQA/2AlL`jQA/2AlLjQA/2AlLjQA/2AlLjQA@^/2AlLkQA#/2AlLkQA/2AlL`kQA@ /2AlLkQA@)/2AlLkQA8/2AlLkQAg/2AlLkQA/2AlLkQA/2AlLkQA/2AlLkQA02AlLkQA02AlL(kQA"02AlL`0kQA02AlL ;kQA/2AlL GkQA@/2AlLSkQA/2AlLSkQA@/2AlLMkQA/2AlL BkQA/2AlL 2AlLpznQA@ >2AlLxnQA>2AlLxnQA%>2AlLwnQA,>2AlL`unQA,>2AlLrnQA(>2AlLqnQA>2AlLpnQA>2AlLnnQA >2AlLmnQA@>2AlLknQA>2AlLgnQA>2AlLcnQA >2AlL`nQA>2AlL`nQA@>2AlL_nQA@>2AlL`]nQA>2AlL[nQA>2AlLXnQA>2AlLVnQA>2AlLUnQA>2AlLSnQA >2AlLSnQA>2AlLLnQA >2AlL@JnQA >2AlLFnQA@>2AlLPCnQA >2AlL?nQA>2AlL@>nQA>2AlL2AlL;nQA >2AlL9nQA>2AlL 9nQA>2AlL9nQA!>2AlL;nQA(>2AlL`:nQA0>2AlL7nQA5>2AlL6nQA@F>2AlL`7nQAR>2AlL7nQA@]>2AlLp6nQAc>2AlL5nQA]>2AlLp3nQA@X>2AlL1nQAQ>2AlL0nQAP>2AlL-nQAL>2AlL+nQA`L>2AlLX)nQAT>2AlL`*nQA]>2AlL,nQAa>2AlL/nQA@i>2AlL2nQAq>+2AlL5nQA@v>2AlL6nQA>2AlL5nQA>2AlL 3nQA>2AlL0nQA>2AlL-nQA>2AlL-nQA>2AlL+nQA@>2AlL0*nQA@>2AlL@'nQA@>2AlL$nQA>2AlL#nQA>2AlLnQA>2AlLnQA>2AlL`nQA>2AlL nQA>2AlLnQA>2AlLnQA>2AlLnQA>2AlLnQA>2AlL@nQA>2AlLnQA>2AlL nQA@>2AlL@ nQA>2AlLnQA>2AlLnQA>2AlLpnQA>2AlLPnQA>2AlLPmQA>2AlLnQA>2AlLnQA@>2AlLnQA?2AlLnQA@ ?2AlL`nQA@?2AlL@nQA?2AlL0nQA?2AlL0nQA ?2AlLpmQA?2AlL mQA>2AlL mQA>2AlLmQA>2AlLmQA>2AlL@mQA>2AlL mQA@ ?2AlLmQA@?2AlLmQA?2AlLmQA2?2AlL`mQAC?2AlL@mQAK?2AlLmQAV?2AlLmQAu?2AlLmQA?2AlL0mQA?2AlLmQA?2AlLmQA?2AlLmQA?2AlLmQA?2AlLmQA?2AlLPmQA?2AlLmQA?2AlL mQA?2AlLmQA@2AlL0mQA@2AlLmQA,@2AlL@nQA@2AlLPnQA*@2AlL nQA3@2AlLnQA@3@2AlLnQA5@2AlLnQA@>@2AlLnQA@?@2AlL!nQAI@2AlL%nQA T@2AlL(nQA^@2AlL(nQAb@2AlL+nQAf@2AlL-nQAl@2AlL1nQAs@2AlL`1nQA@@2AlL/nQA@@2AlL0,nQA@2AlL)nQA@2AlL)nQA@2AlL'nQA@2AlL&nQA@2AlL0&nQA@2AlL$nQA@@2AlL$nQA@2AlL #nQA@2AlL #nQA@2AlL`#nQA@2AlL`$nQA A2AlL#nQA@A2AlL"nQAA2AlL`&nQA@A2AlL*nQA@A2AlL,nQA#A2AlLp-nQA@'A2AlL.nQA1A2AlL0nQA>A2AlL-nQAMA2AlL)nQAjA2AlLP%nQA@wA2AlL0"nQAA2AlL nQAA2AlLnQAA2AlL@nQA@A2AlLPnQAA2AlL@nQAA2AlL0nQAA2AlL nQAA2AlLnQAA2AlL0nQAA2AlLnQA@A2AlL nQA@A2AlLnQAA2AlL nQAA2AlLPnQAA2AlL nQA@A2AlL nQAA2AlL0nQAA2AlL nQAA2AlLnQAA2AlLnQAA2AlLnQAB2AlLnQAB2AlLnQAB2AlL0n-QA-B2AlLnQA@9B2AlLnQAAB2AlLnQAGB2AlL` nQA\B2AlLPnQA_B2AlLnQAeB2AlL nQAWB2AlLmQA@MB2AlLmQAEB2AlLmQARB2AlL`mQAaB2AlLmQAkB2AlLmQA~B2AlLmQAB2AlLmQAB2AlLmQAB2AlLmQAB2AlLpmQAB2AlLmQAB2AlLmQA@B2AlLmQA@B2AlLmQAB2AlLmQAB2AlLPmQAB2AlLmQAB2AlL0mQAB2AlLPmQAB2AlLmQAB2AlLmQA@B2AlLmQAB2AlLmQA@B2AlLmQAB2AlL`mQAB2AlLmQA@B2AlLpmQA@B2AlLmQAB2AlL@mQA@B2AlLmQAB2AlLmQA@B2AlLmQA@B2AlL@mQAC2AlLmQAC2AlLmQAC2AlLmQA&C2AlLmQA3C2AlLpmQA=C2AlLmQAGC2AlLmQAPC2AlL`mQA@JC2AlLmQA@LC2AlLmQA@MC2AlL@mQAKC2AlLmQA@SC2AlLmQAYC2AlL`mQAbC2AlLmQA@oC2AlLmQA@pC2AlLmQAqC2AlL@mQA~C2AlLmQAC2AlL`mQA@C2AlLmQAC2AlL@mQAC2AlL. mQAC2AlLmQA@C2AlL0mQAC2AlLmQA@C2AlLmQA@C2AlLmQA@C2AlLmQAC2AlLmQAC2AlL`mQAC2AlLmQAC2AlLmQAC2AlLmQAC2AlLmQAC2AlLpmQAC2AlLpmQAC2AlL@mQAC2AlLmQAC2AlLmQAC2AlLmQA@C2AlL mQAC2AlLmQAC2AlLmQAC2AlLmQAC2AlLmQAC2AlL0mQAC2AlL`mQAC2AlLmQAC2AlLmQAD2AlLmQA D2AlL`mQAD2AlLpmQA+D2AlLmQAE2AlLnmQA(E2AlLPomQAE2AlLpomQA@E2AlL pmQAE2AlLrmQAD2AlLrmQAD2AlLpqmQAD2AlL@omQAD2AlLkmQAE2AlLjmQA@E2AlL0imQAE2AlL@hmQA E2AlLfmQAE2AlL`emQAD2AlL cmQA D2AlL8amQAD2AlLamQAD2AlL_mQAD2AlLP^mQA@D2AlL\mQA`D2AlLp[mQAD2AlL\mQAD2AlL ^mQAE2AlL]mQAE2AlLP_mQAE2AlL_mQA@E2AlL\mQAE2AlLZmQAE2AlL8XmQAE2AlL YmQAE2AlLPXmQA@E2AlL@VmQAE2AlLSmQA@E2AlLQmQA@ E2AlL@OmQA@(E2AlLMmQA@3E2AlL@MmQA@9E2AlLNmQA@E2AlL@QmQANE2AlLQmQA0`E2AlLOmQAkE2AlL`MmQAwE2AlLMmQAE2AlLOmQAE2AlLRmQAE2AlL TmQAE2AlLPUmQA@E2AlLUmQAE2AlL@TmQAE2AlLPRmQAE2AlLQmQAE2AlLPmQAE2AlLOmQAE2AlLNmQA@E2AlLpKmQAE2AlLImQAE2AlLGmQA@E2AlL0DmQAE2AlLPAmQAE2AlL0>mQAE2AlLI2AlL@lQAHI2AlLlQASI2AlLlQA@TI2AlLlQAVI2AlLlQA_I2AlLlQA@dI2AlL@lQA bI2AlLlQA`I2AlL`lQAZI2AlLPlQAWI2AlLlQA`QI2AlL@lQA@NI2AlLlQAGI2AlLlQANI2AlLlQAVI2AlLplQATI2AlLlQAII2AlLlQA@9I2AlL lQA5I2AlL0lQA)I2AlL0lQA61AlL&oQA@1AlLpoQA1AlL@nQA1AlLnQA1AlL nQA@1AlLnQA1AlLnQAy1AlLnQA@v1AlLnQA@S1AlLnQA(1AlL vnQA1AlL`fnQA1AlL@YnQA1AlLRnQA@1AlL`NnQA1AlL:nQA1AlL"nQA1AlLnQA1AlLnQA@J1AlLnQAk1AlLmQAx1AlL@mQA@l1AlL@mQA[1AlLmQA@Q1AlLmQAL1AlL`}mQA61AlL0rmQA@1AlLumQA@1AlLwmQAm1AlL{mQA*1AlL`|mQA1AlL mQA1AlLmQAi1AlLmQA@1AlLmQA1AlLmQA1AlL mQA@e1AlL zmQA@D1AlL gmQAT1AlLRmQA\1AlLpQA@1AlLRpQAI1AlL`ZpQAe1AlL_pQA1AlLkpQA1AlLopQA1AlL`wpQA 1AlLpQA@%1AlLpQA01AlLpQAm1AlLpQA1AlLpQA@1AlL pQA@1AlLpQA@1AlLpQA,1AlLpQA@H1AlLpQA@a1AlL`pQA1AlLpQA1AlLpQA1AlLpQA@1AlLpQA1AlLpQA@1AlLpQA1AlL@pQA1AlLpQA1AlLpQA)1AlLpQA@N1AlLpQAn1AlLpQA@1AlLpQA1AlLpQA1AlLpQA1AlLpQA1AlLpQA;@1AlLpQA1AlL`pQA@1AlLpQA1AlLpQA1AlLpQA1AlLpQAn1AlL pQAr1AlL` qQAP1AlLqQA\1AlLqQAm1AlL"qQA1AlL*qQA1AlL1qQA1AlL+qQA1AlL $qQA1AlL qQA*1AlLqQA@M1AlLqQAl1AlL@ qQA1AlLPqQA1AlL qQA1AlL qQA1AlL@qQA1AlLqQA1AlL6qQA1AlL`7qQA@1AlL8qQA1AlL@;qQA1AlL;qQA/1AlL@@qQA@T1AlL9qQAy1AlL`4qQA1AlL@,qQA1AlL@)qQA1AlL(qQA@1AlL/qQA@1AlL@4qQA11AlL1AlLoQA*1AlLsoQAv1AlLsoQA1AlLzoQA1AlLSoQAi1AlL@DoQA1AlL;oQA1AlL3oQA5?_0QA@3AlLZ0QA3AlLX0QA3AlLV0QA@3AlLpW0QA3AlLS0QA3AlL`Q0QA3AlL0N0QA3AlLK0QA3AlLI0QA3AlLD0QA3AlL0A0QA3AlL=0QA3AlL`<0QA3AlLp<0QA23AlL80QAC3AlLp50QAO3AlL030QA@a3AlL30QA@n3AlL50QA}3AlLp50QA3AlLP40QA3AlL50QA3AlL30QA3AlL40QA3AlL800QA3AlL-0QA@3AlL-0QA3AlL/0QA3AlL.0QA~3AlL*0QA@3AlL0'0QA@3AlL$0QA@x3AlL 0QA3AlL0QA3AlL0QA3AlL0QA@3AlL`0QA@3AlL0QA3AlL`0QA3AlL`0QA3AlL 0QA@+3AlL@0QA@13AlL0QA03AlL0QA83AlL@0QA?3AlL0QAC3AlL 0QAD3AlL0QAH3AlL0QA@T3AlL0QAZ3AlL@0QAb3AlL0QA`3AlL0QA@h3AlL0QA@h3AlL 0QA@g3AlL0QAn3AlLP0QAk3AlL0QA`3AlL0QAb3AlL0QAh3AlL/QA@p3AlL/QAl3AlL0/QAm3A@lL/QAq3AlL/QA{3AlL/QA|3AlLp/QAz3AlL/QAy3AlL0/QA@3AlL/QA3AlL/QA3AlLP/QA@3AlL@/QA3AlL/QA3AlL/QA3AlL/QA3AlL/QA3AlL0/QA3AlL/QA3AlL/QA3AlL`/QA*3AlL/QAB3AlLн/QAE3AlL/QAO3AlL/QAR3AlL@/QA`3AlL/QA@f3AlL/QAl3AlL/QAu3AlL/QA|3AlL/QA{3AlL/QAv3AlLػ/QA`v3AlL /QAl3AlLp/QAg3AlL0/QAh3AlL/QAs3AlL/QA3AlLЭ/QA@3AlL/QA 3AlL/QA3AlL/QA@3AlLЮ/QA@3AlL/QA@3AlLP/QA@3AlL/QA3AlL /QA3AlLP/QA3AlL/QA@3AlL/QA@3AlLP/QA3AlL@/QA3AlLР/QA3AlL/QA3AlLp/QA3AlL /QA3AlLЗ/QA3AlL/QA3AlLP/QA3AlL/QA3AlLА/QA3AlL/QA`%3AlL؏/QA23AlLp/QA@63AlL0/QAD3AlLp/QAR3AlL/QAAb3AlL/QA|3AlLP/QA3AlL}/QA@3AlL@|/QA3AlL{/QA3AlL|/QA@3AlL{/QA3AlL{/QA3AlL{/QA3AlL@z/QA3AlLw/QA-3AlLu/QA?3AlLt/QAL3AlLp/QA[3AlL@k/QAc3AlL@j/QAl3AlLpj/QAg3AlLh/QA@b3AlLf/QAf3AlLc/QA@p3AlL`/QA3AlL[/QA3AlLZ/QA@3AlL0Z/QA3AlLX/QA3AlLV/QA3AlLV/QA3AlLX/QA3AlLU/QA@3AlLU/QA3AlLS/QA@3AlLS/QA@3AlLQ/QA3AlL O/QA3AlLN/QA3AlLpK/QA3AlL`H/QA3AlL@D/QA3AlL@B/QA23AlLA/QAI3AlL@/QA@Y3AlL B/QA]3AlLE/QAe3AlLH/QAv3AlLJ/QA@3AlLL/QA3AlLJ/QA3AlLpI/QA@3AlLPF/QA@3AlLI/QA3AlL`K/QA@3AlLPK/QA3AlLpO/QA3AlLpP/QA3AlL M/QA3AlLH/QA3AlLD/QA3AlLpA/QA@3AlL0A/QA3AlL0C/QA3AlLB/QA3AlLp@/QA3AlL>/QA3AlL:/QAB3AlL@:/QA3AlL9/QA3AlL7/QA3AlL6/QA@3AlL`5/QA3AlLP5/QA3AlL 6/QA@3AlL8/QA3AlL3/QA3AlLp3/QA3AlLH1/QA3AlL0/QA@3AlL@//QA3AlL)/QA3AlL0)/QA3AlL'/QA3AlL$/QA@3AlL"/QA3AlL@"/QA@3AlL/QA3AlL@/QA@3AlL /QA3AlL /QA3AlL/QA@3AlL/QA3AlL/QA3AlL /QA 3AlL0/QA3AlL /QA3AlL /QA3AlL/QA#3AlL0/QA@33AlLP/QA@@3AlL/QAV3AlL.QA]3AlL.QAi3AlL .QAt3AlL.QA@3AlL0.QA@3AlL .QA 3AlL.QA3AlL.QA3AlL.QA3AlL.QA@3AlL.QA@3AlL.QA3AlLp.QA@3AlL@.QA3AlLp.QA3AlL.QA 3AlL.QA3AlL.QA3AlL.QA(3AlL.QA:3AlL.QAR3AlL.QA@3AlL.QA3AlL.QA@3AlL.QA3AlL.QA3AlL.QA@3AlL.QA3AlL .QA3AlLC.QA3AlL.QA@3AlL.QA@3AlL.QA@ 3AlL.QA3AlL.QA&3AlL.QA73AlL@.QAG3AlL.QAX3AlL.QAd3AlL0.QAv3AlL0.QA3AlL.QA@3AlL .QA3AlLp.QA3AlL0.QA@3AlL@.QA3AlL.QA3AlL .QA@3AlLP.QA3AlL.QA3AlL.QA3AlL`.QA3AlL.QA*3AlL.QA73AlL.QA>3AlLp.QA?3AlL0.QA'3AlL.QA3AlL.QA3AlL0.QA3AlL.QA3AlL.QA3AlL0.QA3AlL .QA3AlL@.QA3AlL .QA@3AlL.QA3AlL .QA3AlL.QA3AlL.QA@3AlL@.QA@3AlL.QA@3AlLp.QA@3AlL0.QA3AlLP.QA3AlL`.QA3AlL .QA3AlL.QA3AlL.QA@3AlL .QA3AlL.QA3AlL.QA3AlL.QA3AlL.QA 3AlLЂ.QA@$3AlL .QA.3AlLp.QA.3AlL.QA@:3AlL.QAX3AlL.QAm3AlL.QA@n3AlL.QA@^3AlL.QA@\3ADlL.QAf3AlL`.QAe3AlL.QA@l3AlL.QAg3AlL.QA^3AlL.QA@S3AlL@.QA@3AlL.QA83AlL@.QA43AlL.QA@3AlL.QA@3AlLp.QA3AlLP.QA@#3AlL.QA 3AlL .QA3AlL\.QA(3AlL.QA@+3AlL.QA`63AlLد.QA73AlL.QA03AlL.QA/3AlLp.QA@)3AlL.QA/3AlLP.QA%3AlL.QA3AlL.QA3AlLP.QA3AlL.QA3AlLp.QA3AlL.QA@3AlLP.QA@3AlL.QA3AlL.QA3AlL.QA3AlL.QA3AlLp.QA3AlL.QA3AlL0.QA3AlL.QA3AlL@.QA@3AlL.QA@3AlL.QA@3AlL`.QA3AlL.QA3AlL.QA@ 3AlLP.QA3AlL.QA3AlLp.QA@"3AlL.QA)3AlL.QA23AlL.QAE3AlL.QA@d3AlL.QAu3AlL`.QA@3AlL.QA3AlL.QA3AlL.QA@3AlLP.QA3AlLP.QA3AlL.QA3AlL.QA@3AlL.QA@3AlL`.QA{3AlL.QAEi3AlL.QAb3AlLp.QAh3AlL@.QA]3AlL.QAU3AlLp.QAU3AlL.QAX3AlL.QAY3AlL.QA@`3AlLP}.QAi3AlLp{.QAp3AlLp{.QAx3AlL|.QA@3AlL ~.QA3AlL.QA3AlL.QA@3AlL.QA@3AlL .QA@3AlL`.QA3AlL~.QA3AlL{.QA3AlLpx.QA@3AlL@x.QA3AlL{.QA3AlL`z.QA3AlL`x.QA3AlLv.QA3AlLt.QA3AlLq.QA@3AlL`n.QA@3AlLk.QA3AlLi.QA@3AlLi.QA3AlL`h.QA3AlLg.QA3AlL d.QA3AlL`.QA@3AlL\.QA3AlL\.QA@3AlL ].QA3AlL`].QA3AlL`^.QA 3AlLh_.QA3AlL^.QA@3AlLP\.QA@3AlL0[.QA`3AlLZ.QA3AlLX.QA3AlLW.QA3AlLW.QA3AlL(U.QA 3AlL U.QA 3AlLS.QA 3AlL(R.QA@3AlLQ.QA3AlL`S.QA@3AlLHU.QA 3AlLW.QA!3AlLY.QA'3AlLY.QA@'3AlLW.QA!3AlLXU.QA&3AlLT.QA!3AlLR.QA"3AlLP.QAF+3AlLS.QA13AlLR.QA/3AlLP.QA.3AlL`N.QA)3AlL`L.QA03AlLH.QA53AlLD.QAC3AlLA.QA@R3AlL0@.QAd3AlL`@.QA@m3AlL?.QAp3AlL=.QAr3AlL:.QAu3AlL 8.QA~3AlL7.QA@3AlL6.QA3AlL4.QA3AlL2.QA3AlL2.QA3AlL@1.QA3AlL0.QA3AlL/.QA3AlL/.QA3AlL..QA@3AlL-.QA3AlL,.QA@&3AlL0,.QA13AlL,.QA:3AlL..QAC3AlLh0.QA@G3AlLd2.QA0O3AlL42.QAR3AlL0.QAZ3AlL..QA@[3AlL,.QAc3AlL-.QAe3AlLP+.QAg3AlL).QA@s3AlL).QAy3AlL*.QA@|3AlL,.QA@}3AlLP/.QA3AlL0.QA3AlL1.QA 3AlL3.QA3AlL4.QA@3AlL5.QA@3AlL@6.QA3AlL7.QA3AlL5.QA3AlLP3.QA3AlLP3.QA3AlL1.QA3AlL1.QA 3AlL/.QA3AlLH0.QA3AlL,.QA@3AlL+.QA3AlL).QA3AlL'.QA3AlL'.QA3AlL`'.QA 3AlL(.QA3AlL@G+.QA3AlLP+.QA@3AlL*.QA 3AlL+.QA3AlL*.QA3AlL).QA`3AlL(.QA3AlL%.QA3AlLX$.QA3AlLP".QA@3AlL .QA 3AlL .QA3AlL .QA3AlL!.QA#3AlL#.QA3AlLP%.QA3AlL&.QA@3AlL'.QA3AlL*.QA3AlL,.QA3AlL-.QA+3AlL-.QA13AlL -.QA@,3AlL`+.QA33AlLp(.QA73AlL$.QA83AlL`!.QA73AlL.QA<3AlL@.QAD3AlL.QAS3AlL.QAR3AlL.QA`3AlLp.QAe3AlL`.QA n3AlL.QA@~3AlL.QA3AlL`.QA@3AlL.QA3AlL.QA3AlL`.QA3AlL .QA3AlL!.QA3AlL.QA3AlL.QA3AlL.QA3AlLp.QA3AlL.QA3AlL.QA@3AlL .QA3AlL#.QA3AlL0#.QA3AlL .QA3AlLx.QA3AlL.QA@3AlL.QA3AlL.QA`3AlL.QA3AlL0.QA3AlL0.QA@3AlLP.QA3AlL.QA3AlL.QA@3AlL.QA3AlL .QA3AHlL.QA3AlL.QA@3AlL.QA 3AlL.QA3AlL.QA3AlL.QA@3AlL@ .QA3AlL .QA3AlL .QA3AlL.QA[5&3A悫.QA-3AlL`.QA23AlL0.QA63AlL .QA@73AlLh .QA13A悫 .QA.3AlL<.QA /3AlL.QA13AlL.QA\.3A8Ne.QA;3AlL.QA83AlLp.QA?3AlL.QA@3AlL-QA I3AlLH-QAR3AlL-QAU3AlL-QA@U3AlL-QA _3AlLh-QAl3AlL`-QA@u3AlL-QA}3AlL-QA@3AlLP-QA3AlL -QA3AlL-QA3AlL.QA3A}w.QA@3AlLP.QA3AlL-QA 3AlL-QA`3AlL.QA3AlL.QA3AlLh.QA3AlL.QA3AlL`.QA3AlL@.QA8^3AP-QA`3AlL(.QA3AlL.QA3AlL.QA@3AlL.QA@3AlL@.QA@+@3AVⲰ.QA@3AlL.QA3AlL.QA3AlL-QA3AlLP-QA3AlL-QA3AlL-QA@3AlL-QA3AlL -QA3AlL@-QA3AlL-QA@3AlL-QAI3AlL-QA3AlL-QA`3AlL-QA!3AlL -QA*3AlL-QA@23AlL0-QA=3AlL-QA@63AlL-QA<3AlL@-QA:3AlL-QA43AlL-QA 33AlLx.QA33AlL@.QA43AlL`.QA23AlL.QA/3AlL .QA93AlL .QA73AlL0 .QA/3AlL .QA,3AlL .QA23AlL.QA93AlL .QA`=3AlL .QA@D3AlL .QA@C3AlL .QA@K3AlL .QAPD3AlLX.QA@D3AlL.QAJ3AlL.QAJ3AlL.QAR3AlL`.QA@Y3AlL.QA`3AlL.QAe3AlL.QAj3AlL .QAl3AlL0.QA`k3AlL.QA@d3AlL.QA@e3AlL .QA`l3AlL .QAm3AlL .QAr3AlL.QAv3AlL(.QA@r3AlL`.QA@l3AlL.QA@g3AlL0.QA `3AlL.QAW3AlL.QAR3AlL.QA@Q3AlL.QAT3AlL.QA$iW3A80C.QAS3AlL0-QA@X3AlL-QA_3AlL-QA@`3AlL-QA$iW3A80C.QA\3AlL.QAc3AlL.QAm3AlL.QAt3AlL.QA0y3AlL-QAy3AlL-QA t3AlLh-QAJk3AlLD-QAh3AlL-QA@j3AlL0-QA@o3AlLh-QApl3AlL-QAf3AlL0-QAo3AlL-QAw3AlL-QA@y3AlL-QAs3AlL-QAl3AlL-QAg3AlL0-QA`3AlL-QA@Z3AlL-QAU3AlL-QA]3AlL-QAc3AlL-QA@d3AlL-QA]3AlL-QA_3AlL-QA@e3AlL(-QAk3AlL0-QAm3AlL-QAg3AlL-QAc3AlL-QAh3AlL-QAm3AlL-QA@v3AlLP-QA3AlLh-QA3AlL-QA@3AlL-QA@3AlL-QA3AlL-QA 3AlL-QA3AlL-QA3AlLp-QA3AlL@-QA3AlL-QA@3AlLT-QA`3AlLH-QA3AlLP-QA@3AlL-QA@3AlL-QA3AlL(-QA5UU3A悫Z-QA3AlL-QA3AlL-QA3AlL-QA3AlLP-QA3AlL-QA 3AlL-QA3AlL-QA3AlL-QA3AlL-QA3AlL@-QA@3AlL-QA 3AlL-QA`3AlL`-QA3AU%-QA!3AlL-QA#3AlL-QA"3AlL-QA!3AlL-QA3AlLK-QA3AlL-QA3AlL-QA3AlL-QA3AlL -QA3AlL@-QA$3AlL(-QAp(3AlL-QAp33AlL -QA<3AlL-QAB3AlL`-QA[D3A`VE-QAG3AlL8-QAD3AlL-QAE3AlL-QAK3AlLT-QAS3AlL-QAY3AlL-QA`3AlL`-QA i3AlL-QA@r3AlL -QAt3AlL-QAz3AlL-QA3AlL-QA 3AlL-QA3AlL-QA3AlL-QA@3AlL-QA@3AlL-QA@3AlL-QA3AlL-QA3AlLз-QA3AlLж-QA3AlL-QA3AlLh-QA3AlL-QA3AlL-QA3AlL-QA3AlL-QA3AlL-QA3AlL-QA3AlL-QA3AlL-QA@3AlL-QA3AlL-QA3AlL-QA3AlL-QA3AlLd-QA3AlLp-QA3AlL0-QA3AlL-QA3AlL-QA 3AlLp-QA`3AlL8-QAP3AlL-QA 3AlLL-QA@3AlLh-QA3AlL`-QA2Y3A'-QA3AlL-QA@ 3AlL-QA 3AlL(-QA@3AlLp}-QA` 3AlL|-QA3ALlLz-QA3AlLPw-QA3AlLu-QA3AlLs-QA@3AlL j-QA@3AlLe-QA3AlLa-QA3AlL_-QA 3AlL0^-QA3AlLp\-QA@3AlLZ-QA@3AlLX-QA@3AlLW-QA 3AlL0X-QA@3AlLX-QA3AlLX-QA 3AlL`Z-QA 3AlL^-QA3AlL`_-QA3AlLpa-QA3AlLc-QA3AlLe-QA3AlL`g-QA@3AlLd-QA3AlLa-QA3AlL]-QA3AlL[-QA3AlLZ-QA@$3AlLPZ-QA$3AlLX-QA)3AlLW-QA03AlLX-QA`33AlLhV-QA 73AlLT-QA<3AlLV-QA`>3AlLT-QA>3AlLR-QAA3AlLP-QAC3AlLM-QA@I3AlL H-QA@3AlLG-QA@3AlLC-QAjA3AlL@-QAC3AlL>-QA`=3AlL<-QA<3AlLP;-QAD3AlL9-QAJ3AlL(:-QAS3AlL:-QAT3AlLP7-QA\3AlL6-QA@`3AlL7-QAb3AlL0;-QA\3AlL@<-QA]3AlL B-QAf3AlLPC-QAt3AlL0G-QAz3AlLI-QA@3AlL(G-QA3AlL0E-QA3AlL0C-QA 3AlLxA-QA3AlLC-QA3AlL@D-QA@M3AlLF-QA3AlLI-QA@3AlLK-QA3AlLPM-QA3AlLP-QA3AlLR-QA3AlLS-QA3AlLV-QA@3AlLX-QA3AlLX-QA@3AlL@U-QA3AlLPV-QA3AlLX-QA@3AlLY-QA3AlLV-QA3AlLpQ-QA3AlLO-QA@3AlL0N-QA@3AlLL-QA3AlLK-QA3AlLJ-QA3AlLG-QA@3AlL H-QA 3AlLXH-QA3AlLG-QA 3AlL`F-QA3AlLG-QA3AlLHI-QA3AlLJ-QA3AlLpK-QA3AlLPM-QA3AlLO-QA3AlLQ-QA3AlLPS-QA3AlL8R-QA3AlLR-QA@3AlLR-QA 3AlLXT-QA3AlLS-QAlݬ?3AbS_S-QA@3AlLHU-QA` 3AlLS-QA!3AlLU-QA@3AlLW-QA3AlLY-QA@3AlLY-QA$3AlLpZ-QA,3AlLX-QA*3AlLV-QA03AlLU-QA.3AlLpS-QA/3AlLQ-QA"3AlLpQ-QA%3AlLN-QA/3AlL0M-QA033AlL-QA3AlLP:-QA 3AlL ;-QA@3AlL9-QA@3AlL`7-QA 3AlLp6-QA3AlL5-QA3AlL6-QA3AlL5-QA@3AlL /-QA3AlLP*-QA3AlLx(-QA3AlL#-QA 3AlL!-QA3AlL"-QA@3AlL!-QA3AlL-QA3AlL@-QA3AlL-QA@3AlLp-QA3AlL@-QA3AlL-QA3AlL-QA3AlL-QA3AlLP-QA3AlLP-QA3AlL-QA@3AlL -QA鮪3A悫-QA3AlLP-QA3AlL-QA3AlLp-QA`3AlL-QA3AlL-QA3AlL`-QA@3AlLP -QA3AlL -QA@3AlL0 -QA@3AlL-QA@3AlL-QA 3AlL-QA3AlL-QA@3AlL-QA3AlL(-QA3AlL-QA@3AlL-QA3AlL8-QA 3AlL-QA3AlL-QAp"3AlL,-QA'3AlL-QA,3AlL -QA53AlL -QA :3AlL0 -QA@3AlLP-QAG3AlL-QA@L3AlL-QA@W3AlL-QA@_3AlL-QAg3AlL -QAl3AlL -QA@i3AlL-QAk3AlL0O-QAk3AlL8-QAl3AlL-QAVx3AlL4-QA@~3AlL-QA3AlL-QA3AlL-QA@3AlL-QA3AlLp-QA3AlLX-QA3AlLp-QA3AlL-QA@3AlL0-QA@3AlL-QA3AlL-QA@3AlL@-QA 3AlL-QA3AlL-QA3AlL-QA3AlL-QA3AlL8-QA3AlL-QA@3A悫 -QA@3AlL-QA3AlL-QA@3AlL -QA@3AlL-QA@3AlL-QA3AlL-QA3AlL-QA03AlL-QA3AlL-QA3AlL-QA3AlL -QA3AlL -QA@3AlL-QA3AlLx,QA3AlLH,QA3AlL,QA3AlL,QA#3AlL ,QA$3AlL,QA&3AlL,QA@03AlL`,QA@33AlL ,QA:3AlL,QAA3AlLP,QA@H3AlL,QA@M3AlL@,QAY3AlL ,QAt3AlL,QAv3AlLh,QAz3AlL,QA|3AlL,QA@3AlL,QA3AlL,QAX|;3Aƥ,QA3AlL,QA3AlL,QA3AlL,QA3AlL,QA3AlL,QA 3AlL,QA@3AlL,QA@3APlL@,QA3AlL,QA 3AlL,QA3AlLP,QA3AlL,QA@3AlLع,QA3AlLp,QA3AlLP,QAP3AlL,QA3AlL ,QA@3AlLp,QA3AlL\,QA`3AlL,QA3AlLХ,QA@3AlL,QA@3AlL,QA 3AlL,QA3AlL0,QA3AlL,QA3AlL`,QA3AlL`,QA3AlLP,QA@3AlL,QA`3AlL ,QA3AlL ,QA@3AlL@,QA3AlL,QA`3AlL,QA@3AlL,QA`3AlL,QA3AlL@,QA3AlL,QA3AlL,QA3AlL ,QA3AlL,QA3AlL ,QA3AlLx},QA3AlL},QA3AlL{,QA3AlLz,QA`3AlL`w,QA3AlLXu,QA3AlL@s,QA3AlLPq,QA3AlLo,QA3AlLm,QA 3AlLpk,QA3AlLj,QA3AlLi,QA3AlLh,QA3AlL`g,QA3AlLe,QA 3AlLb,QAV(3AlLta,QA3AlL_,QA3AlL^,QA3AlL\,QA3AlLPZ,QA3AlL8\,QA3AlLpZ,QA3AlLPZ,QA3AlLX,QAp3AlLW,QA 3AlL U,QAQ3AlLT,QA[3A`VS,QA3AlLQ,QA5U3AlLHN,QA@3AlL`J,QA3AlLH,QA@3AlLF,QA3AlLD,QA3AlLB,QA3AlL@,QA3AlL@?,QA 3AlLp>,QA@3AlL<,QA3AlL<,QA3AlL(;,QA3AlL9,QA3AlLP7,QA@3AlL5,QA3AlL3,QA~3AlL@1,QAx3AlL0,QAv3AlL.,QA@q3AlL@-,QA j3AlL(,,QAd3AlL),QAb3AlL0',QAb3AlL#,QA@h3AlLx ,QA@_3AlL,QA_3AlLp,QAZ3AlL,QAH3AlL,QA@;3AlL`,QA23AlLp,QA@23AlL`,QA[u%3A悫,QA(3AlL ,QA@3AlL ,QA#3AlL ,QA"3AlL,QA%3AlL,QA-3AlL,QA/3AlL ,QAP:3AlL,QA A3AlLX,QAI3AlLD,QA@S3AlL,QAZ3AlLh+QAb3AlL`,QAd3AlL+QAk3AlL +QAr3AlL+QAy3AlL+QA@}3AlL+QA ~3AlL+QA@3AlL+QA3AlL`+QA3AlL+QA3AU+QA@3AlL +QAʑ3A`VU+QA3AlL+QA@3AlL,+QA3AlL+QAR 3AlL+QA@3AlL+QA@3AlLt+QA`3AlL(+QA3AlL|+QA@3AlLt+QA@3AlL+QA@3AlL+QA3AlL+QAЋ3AlL@+QA@3AlLh+QA3AlL+QA3AlL8+QA@3AlL8+QA3AlLp+QA3AlL8+QA3AlL+QA3AlLp+QA3AlL`+QA3AlLP+QAp?3A*r+QA@3AlL+QA3AlL+QA@3AlLP+QAz3AlL@+QAt3AlL+QA@m3AlL+QAd3AlL0+QAZ3AlL+QAY3AlL+QAY3AlL+QA^3AlL+QA@t3AlL+QA|3AlL0+QA@3AlL+QA3AlLЙ+QA3AlL+QA 3AlLz+QA3AlLa+QA@3AlLV+QA3AlLM+QA@3AlLO+QA 3AlLPK+QA43AlLF+QA@[3AlLA+QAg3AlLB+QA@u3AlLB+QA@3AlL0B+QA3AlL@C+QA3AlLE+QA3AlLF+QA3AlLI+QA3AlL@J+QA3AlLK+QA3AlLI+QA3AlLG+QA3AlL@D+QA3AlLB+QA3AlL`B+QA3AlL`C+QA3AlLE+QA@ 3AlL`F+QA3AlLI+QA@3AlL0SK+QA 3AlLM+QA*3AlLN+QA23AlLQ+QA53AlLT+QA@>3AlL@U+QA@I3AlLU+QAQ3AlLW+QAd3AlLPX+QAs3AlL[+QA 3AlL`[+QA3AlL[+QA3AlLY+QA3AlLW+QA 3AlLPV+QA@3AlLU+QA3AlL@V+QA3AlL T+QA3AlLV+QA3AlL0W+QA3AlLZ+QA@3AlL[+QA@3AlLX+QA3AlLW+QA3AlL0V+QA3AlLpU+QA3AlLU+QA3AlLPW+QA3AlL Y+QA@#3AlL`X+QA(3AlL@Y+QA,3AlLZ+QA53AlL0[+QA73AlL\+QA<3AlL]+QAB3AlL\+QAE3AlLZ+QAK3AlLPY+QA@S3AlLW+QAW3AlL V+QA@^3AlLT+QA\3AlLR+QAd3AlLP+QAm3AlLJ+QAp3AlL F+QAl3AlLD+QAn3AlLP?+QAo3AlL<+QA@y3AlL:+QA@y3AlL6+QAn3AlL6+QAs3AlL4+QAz3AlL0+QA3AlL)+QA3AlL)+QA@3AlL )+QA@3AlL&+QA3AlL$+QA3AlLp"+QA3AlLP+QA@3AlL +QA@3AlL+QA3AlL +QA3AlL+QA3ATlL@*QA3AlL*QA@3AlL*QA@3AlL*QA3AlLP*QA3AlL*QA#3AlL@*QA*3AlL*QA,3AlL*QA03AlL*QA/3AlL*QA@03AlL*QA73AlL*QAB3AlL*QAN3AlL*QAH3AlL*QAM3AlL*QAW3AlL0*QA`3AlL`*QAb3AlLp*QA@o3AlL*QA@v3AlLP*QA3AlL*QA3AlL*QA3AlLp*QA@3AlL*QA3AlLІ*QA@3AlL*QA3AlL@*QA@3AlL*QA3AlL}*QA3AlL{*QA3AlLz*QA3AlLw*QA3AlLt*QA3AlLPp*QA3AlLl*QA3AlLPl*QA3AlLPj*QA@3AlLph*QA@3AlLd*QA3AlL`*QA3AlL`*QA3AlL^*QA3AlL^*QA3AlL`]*QA3AlL]*QA3AlL@[*QA3AlL`[*QA3AlLP\*QAv3AlL@Z*QA`z3AlLV*QA|3AlLT*QAs3AlLT*QAl3AlLPT*QAi3AlLPV*QA@h3AlLX*QAX3AlLX*QAS3AlLZ*QAJ3AlLPZ*QA<3AlL Y*QA@43AlLV*QA33AlLR*QA43AlL`N*QAU,3AlLK*QA13AlLF*QA83AlLP@*QA03AlL>*QA)3AlL`?*QA@%3AlL=*QA*3AlL;*QA%3AlL09*QA3AlL8*QA3AlLP4*QA@3AlL@0*QA@#3AlL.*QA@03AlL`-*QA.3AlL)*QA>3AlL&*QAP3AlL@&*QA@j3AlL&*QA@l3AlLP(*QAu3AlLP'*QA}3AlL#*QA3AlL0 *QA3AlL0*QA@3AlL*QA3AlL*QA3AlL*QA3AlL *QA3AlL` *QA3AlL` *QA3AlLp*QA3AlL*QA3AlLx *QA@3AlL *QA3AlL0 *QA@3AlL *QA3AlL*QA3AlL*QA3AlL*QA3AlLx*QA3AlL*QA3AlL*QA3AlLp*QA3AlLp*QA3AlL`*QA@3AlL *QA3AlL *QA3AlL *QA@3AlLP*QA 3AlL*QA 3AlLH*QA3AlL*QA3AlL*QA 3AlL`*QA 3AlL)QA3AlL)QA3AlLp)QA@!3AlL)QA@3AlLP)QA3AlL )QA3AlL)QA@3AlL)QA 3AlL )QA3AlL )QA@3AlL@)QA3AlL)QAV$3AlL)QA@*3AlL)QA@*3AlL)QA03AlL)QA53AlL)QA83AlL)QA@@3AlL)QA@J3AlL@)QAU3AlL)QA@a3AlL)QAe3AlL )QA@c3AlL)QAf3AlL)QAm3AlL)QAm3AlL0)QA@3AlL)QA3AlL )QA3AlL`)QA3AlLP)QA@3AlL)QA3AlL@)QA3AlL@)QA@3AlL )QA3AlL@)QAz3AlL)QAn3AlLp)QAh3AlL)QAg3AlLP)QAu3AlL)QAu3AlL)QA@t3AlLp)QAU3AlL)QAD3AlL)QA$3AlL)QA3AlLp)QA3AlLС)QA 3AlLh)QA3AlLP)QA3AlL)QA@r3AlL)QA@R3AlL0)QA@33AlL`)QA 3AlL|)QA3AlL@v)QA3AlL`s)QA@3AlL`q)QAK3AlLk)QA3AlLe)QA@3AlL[)QA@*3AlLN)QA@i3AlLP)QA@3AlL(QA3AlLP(QA@3AlL(QA3AlL(QA3AlL0(QA3AlL(QA3AlL@(QA@3AlL(QA3AlL`(QA3AlL(QA+3AlLГ(QA73AlL(QAD3AlLW{(QAU3AlLm(QAe3AlLc(QA@q3AlLPZ(QA3AlLc(QA3AlLpW(QA$3AlLJ(QA-3AlL>(QA63AlL3(QA43AlL,(QA3AlL`((QA3AlL#(QA3AlL`#(QA3AlL "(QAs3AlL(QAK3AlL(QA@&3AlL(QA3AlL`(QA3AlL(QA3AlL(QA3AlL@(QAT3AlL(QA73AlLp(QA3AlL` (QA@3AlL(QA 3AlL'QA3AlL'QA#3AlLp'QA@43AlL'QAB3AlL'QA@L3AlL'QAV3AlL@'QAi3AlLp'QA3AlL'QA3AlLv'QA3AlL@^'QA3AlL@R'QA3AlLD'QA3AlL8'QA3AlL,'QA3AlL0&'QA 3AlL'QA@3AlL'QA3AlL@'QA!3AlL'QA03AlL&QAB3AlL@&QAI3AlL&QAF3AlL&QA@D3AlL0&QA83AlL0&QA,3AlL &QA3AlL&QA3AlL&QA3AlLp&QA3AlLp&QA3AlL&QA3AlL0~&QA@3AlL`}&QA3AlLy&QA3AlLu&QA3AlLp&QA3AlLm&QA@3AlLpi&QA@3AXlL`e&QAU3AlLa&QA;3AlL`&QA-3AlL0d&QA$3AlL`f&QA3AlLc&QA3AlL0b&QA3AlLb&QA@3AlLd&QAp3AlLe&QA?3AlL@g&QA:3AlL_&QA%3AlLV&QA3AlLL&QA3AlL@F&QA3AlL?&QA@3AlL5&QA3AlL,&QA}3AlL%&QAO3AlLP&QA#3AlL&QA@3AlL &QA3AlL&QA3AlL&QA@3AlL`%QA3AlL &QA3AlL&QA3AlLp&QA@{3AlL"&QA@`3AlL)&QAI3AlLP4&QA@'3AlL D&QA@ 3AlLPN&QA@3AlL`[&QA3AlL`X&QA3AlLS&QA^3AlL@S&QA@3AlLO&QA3AlLM&QA3AlLL&QA@?3AlLI&QA3AlLPI&QA3AlLE&QAU3AlLC&QA@3AlLB&QA3AlLB&QA3AlL9&QA3AlL7&QA3AlLp6&QA3AlL`9&QAc3AlL 9&QA@3AlL6&QA3AlL3&QA&3AlL&QA/3AlL0&QAa3AlL&QAf3AlL%QAr3AlL0%QAw3AlL%QA3AlL`%QA3AlLp%QA3AlL%QA3AlL0%QA3AlL@%QAY3AlL~%QA3AlLo%QAF3AlLX%QA3AlL?%QA@.3AlL %QAR3AlL %QA|3AlLP$QA@3AlL$QA3AlL$QA.3AlLи$QAB3AlL$QAG3AlL$QAB3AlL$QA@43AlL$QA3AlLp$QA@3AlL$QA3AlLP$QA3AlL$QAg3AlL $QA@J3AlL$QA23AlL$QA3AlLp$QA3AlL$QA3AlLЁ$QAN3AlLp}$QA@3AlLy$QA3AlLr$QA3AlL m$QA@r3AlLi$QAC3AlL h$QA@#3AlLpl$QA3AlLpr$QA3AlL0t$QA@3AlL a$QA`3AlL\$QAQ3AlL0V$QAK3AlLM$QAQ3AlLPF$QAI3AlL>$QA-3AlL6$QA@3AlL01$QA3AlL`($QA3AlL#$QA@3AlL`"$QA3AlL#$QAd3AlL@$$QAH3AlLP'$QA@$3AlL($QA@3AlL*$QAn3AlLp+$QA(3AlL($QA3AlL%$QA@3AlL0%$QA`3AlL $QA3AlL$QA3AlLp$QA@3AlLP$QAN3AlLp $QA3AlL@$QA3AlL@$QA3AlL#QA@3AlL#QA@r3AlL0#QA@)3AlL#QAZ@3AlL#QA@x3AlL#QA#3AlL #QA@3AlLP#QA@3AlL#QA3AlL#QAm3AlL#QA&3AlL#QA3AlL0#QA3AlL#QA3AlL#QA3AlL#QAJ3AlL$QA93AlL $QA@"3AlLp$QA@3AlL"$QA3AlLp/$QA3AlLB$QA3AlLL$QA3AlL]$QA3AlLf$QA3AlLn$QA3AlL@|$QAn3AlLp$QAJ3AlL`$QA3AlLP$QA@b3AlL$QA@A3AlL$QA3AlL`$QA3AlL@$QAe3AlL%QA@Y3AlLP%QA@3AlL%QA3AlL%QA3AlL/%QA3AlL8%QA3AlLE%QA3AlLN%QA@3AlL@[%QA3AlL[%QA"3AlLP]%QAU3AlL@b%QAp3AlLd%QAG3AlL%QA3AlL%QA3AlL%QA3AlL%QA3AlL%QA3AlLp%QA@$3AlLp%QA3AlL%QA3AlL@%QAy3AlL%QA@[3AlL&QAV3AlLp&QA@Q3AlL` &QA23AlL@&QA 3AlL&&QA@3AlL5&QA3AlLA&QA3AlLM&QA@{3AlL V&QA[3AlL@`&QA:3AlL[l&QA!3AlLz&QA 3AlL&QA 3AlL@&QA3AlL &QA@3AlL&QA@3AlL&QA3AlL&QAx3AlL&QA_3AlL&QA@43AlL&QA3AlL`&QA@3AlL@&QA3AlL&QA@3AlL&QA3AlL&QA@3AlLp&QA@3AlL&QAp3AlL&QAe3AlLP&QAX3AlL 'QA3AlL`'QA3AlL09'QA}3AlL:'QA@s3AlL@'QA@3AlLL'QA3AlLPS'QA@3AlL|'QA3AlL0'QA@3AlL'QA@3AlL'QA/3AlLЩ'QA3AlL'QA3AlL'QAy3AlLp'QAL3AlL(QA3AlL(QA3AlL/(QA@3AlLG(QA@L3AlL0W(QAE3AlLY(QA&3AlLc(QA3AlL{(QA@3AlL(QA3AlL (QA3AlL(QA3AlL(QA3AlLp(QA3AlL(QA3AlL(QAz3AlLP(QA@e3AlL(QA3AlL0(QA3AlL`(QA3AlLp(QA3AlL )QA"3AlL)QA63AlL')QAS3AlL3)QA~3AlL0C)QA@3AlL`N)QA3AlL^)QA03AlLpw)QAH3AlLЇ)QA3A\lL)QA3AlLЛ)QA3AlL)QAW3AlL@)QA$3AlL)QA3AlL)QA3AlL)QA~3AlL)QA?3AlL)QA@3AlL)QA3AlLp)QA3AlL)QAY3AlL@)QAQ3AlL)QA83AlL`)QA@ 3AlL)QA3AlLp)QA3AlL0)QA3AlL)QA@3AlL)QA3AlL )QA3AlL`)QA@3AlL)QA3AlL@)QA@\3AlLy)QA@3AlL`n)QAX3AlLpj)QA@ 3AlL`j)QA3AlLa)QA@3AlLN)QA3AlLG)QA|3AlLE)QA>3AlLpF)QA3AlL`J)QA3AlLPG)QA3AlLP4)QAK3AlL*)QA B3AlL(*)QA3AlL0$)QA3AlL)QA3AlL)QA3AlL)QA|3AlL (QA93AlL0(QA3AlL(QA3AlL (QA|3AlLp(QAG3AlL(QA%3AlL(QA@3AlL`(QA3AlL(QA@3AlL(QA@3AlL(QAq3AlL@(QA3AlL(QA13AlL (QA,3AlL(QA 3AlL`(QA@μ3AlLP(QA3AlL(QA3AlL0(QAc3AlL(QAl3AlL(QA{3AlLp}(QA]3AlLv(QA@3AlLj(QA3AlLb(QA@3AlL0\(QA03AlL`B(QA@3AlL:(QA3AlL4(QA 3AlL*(QA3AlLp$(QA@3AlL(QA!3AlL(QA"3AlL(QA3AlL(QAڻ3AlL(QA3AlL'QA3AlL'QA@`3AlL'QAD3AlL'QA3AlL 'QA 3AlL'QA@3AlLP'QA3AlL 'QA̺3AlL'QA3AlLp'QA3AlL@'QA@&3AlL'QA3AlL'QA3AlL 'QAF3AlLp'QA@ٸ3AlL'QA@3AlL0'QA3AlLp'QA÷3AlL'QAy3AlL'QAT3AlL'QA@=3AlL'QA@3AlL@'QA3AlL'QA@3AlL'QAԶ3AlL'QAܶ3AlLp'QA׶3AlL'QA@Զ3AlL'QA@ж3AlL'QAѶ3AlL(QAж3AlL(QAٶ3AlL/(QA3AlL5(QA3AlLE(QAĶ3AlLQ(QAt3AlL Q(QA@E3AlLS(QA@3AlLZ(QA3AlL `(QA3AlLm(QA3AlLt(QA3AlL@(QAK3AlL(QAb3AlL`(QAW3AlL0(QAY3AlLP(QAX3AlL(QAB3AlL(QA3AlL(QA^@3AlL(QA@3AlL (QA3AlL(QA3AlL(QA3AlL(QAֵ3AlL(QA@3AlL(QA3AlL )QA3AlLA)QA3AlLC)QA3AlLG)QA3AlLH)QA73AlL0d)QA$3AlL`r)QA@3AlL)QA3AlL`)QA3AlL)QA@ݳ3AlL0)QA@a3AlL)QA3AlL)QAٳ3AlL)QA 3AlL)QAs3AlLP)QA״3AlL)QAD3AlL`*QA3AlL*QA޵3AlL*QA 3AlL*QAK3AlL0*QA3AlL@"*QA3AlLP)*QA@޶3AlL /*QA3AlL`3*QA'3AlL`7*QAU3AlL<*QA@{3AlL@*QA3AlLpC*QAȷ3AlLPG*QA3AlLJ*QA@3AlL0L*QA93AlLM*QA@c3AlLO*QA}3AlL`R*QA3AlL@V*QA@3AlL\*QAڸ3AlL_*QA@3AlL@_*QA@43AlL`*QA;3AlLg*QA@B3AlLp*QAN3AlL w*QAg3AlL*QAH3AlL*QA+3AlLЋ*QA@ 3AlLp*QA3AlL0*QA@ɸ3AlL*QA3AlLP*QA@{3AlL*QA@Z3AlL*QA>3AlL@*QA73AlL*QA<3AlL*QAE3AlL_*QAB3AlL*QA63AlL*QA/3AlL*QA3AlL*QA 3AlL+QA3AlL+QA3AlL+QA*3AlLp+QAE3AlL !+QA]3AlL &+QAm3AlLP++QA3AlL3+QA@3AlLp=+QA@3AlLD+QAj3AlLM+QA3AlL@^+QA3AlLpj+QA@ʷ3AlLu+QA3AlL0{+QA'3AlL+QA?3AlL+QA"3AlL+QA3AlL+QA@-3AlL+QA@Y3AlL+QA~3AlLм+QA@3AlL@+QA3AlL+QA3AlLP+QA@3AlL+QAظ3AlLp+QA3AlL0+QA3AlL+QA.3AlLP+QA@L3AlL+QA^3AlL,QAm3AlL ,QA3AlL,QA3AlL@,QA@ƹ3AlLp,QA3AlL,QA 3AlLP,QAa3AlLP,QA3AlL,QA@ĺ3AlL,QA@3AlL ,QA3AlL`-,QA!3AlL 1,QAC3AlL6,QAZ3AlL:,QAy3AlL@,QA}3AlL@B,QA@3AlLI,QAa3AlLN,QA23AlLS,QA3AlLZ,QA3AlLm,QA@3AlLq,QA@3AlLw,QA@U3AlLz,QA@!3AlL,QA3AlL,QAڹ3AlL ,QAǹ3A`lL,QA@¹3AlL,QA3AlL`,QA@3AlL ,QA3AlLP,QA]3AlLP,QA@D3AlL,QA@-3AlL,QA3AlLP,QA3AlL,QA3AlL0,QA@ 3AlL ,QA.3AlL,QAM3AlL,QAe3AlL,QA3AlL,QA3AlL,QA@3AlL,QA@ع3AlL ,QA3AlL`,QA3AlL,QA@73AlL,QAh3AlL,QA3AlL,QA@3AlL,QA@3AlL,QAɺ3AlL,QAں3AlL,QA3AlL,QA3AlL,QA<3AlL,QA^3AlL,QA3AlL,QA3AlL-QA@߻3AlLp -QA3AlL -QA&3AlL -QA^3AlL-QA3AlLP-QA3AlL-QA@3AlL@"-QA׼3AlL1-QA@3AlLA-QA@3AlLP-QAڼ3AlLpY-QA@ۼ3AlLb-QA3AlLg-QA@3AlLn-QA&3AlLp-QA<3AlL@{-QA@)3AlL-QA3AlL-QA#3AlL`-QA`3AlLP-QA@3AlL-QA3AlL-QA3AlLP-QA3AlL-QA3AlL-QA3AlL@-QA3AlL-QA3AlL-QA3AlL-QA@ܽ3AlL-QAa3AlL-QA@?3AlL.QAD3AlLp.QA@=3AlL`.QA 3AlL@5.QA3AlLP=.QA3AlL@.QA@ƽ3AlLpK.QA3AlLV.QA@3AlL0_.QA`3AlLpd.QAC3AlLi.QA'3AlLp.QA@3AlLpy.QA3AlL .QA3AlL.QA3AlL .QA3AlL.QA3AlLЮ.QA3AlL .QA63AlL.QA@I3AlL.QAI3AlL.QA O3AlL.QA3AlL`.QA3AlL .QA3AlL.QA$3AlL@/QA)3AlLP/QA@^3AlL/QA3AlL/QAپ3AlL@%/QA#3AlL3/QAG3AlL0;/QA{3AlLE/QA߿3AlL@[/QA3AlLd/QA`3AlLm/QA3AlLs/QA3AlL@w/QA3AlL@x/QA@3AlL{/QAm3AlL/QA@3AlLp/QA3AlL/QA3AlLВ/QA@A3AlL0/QA@Z3AlL/QA@|3AlL/QA3AlL/QA3AlL /QA@3AlL/QA3AlL/QA3AlL/QA23AlL/QAA3AlLP/QA63AlL/QA3AlL/QA@&3AlL/QA@d3AlL/QA3AlLP0QA3AlL0QA3AlL0QA3AlL`0QAb@3AlL00QA*3AlL0QA@3AlLp*0QA=3AlLD0QAv3AlLL0QA3AlL U0QA@3AlL`^0QA@3AlLb0QA13AlLp0QAE3AlLt0QAr3AlLw0QA@3AlL{0QA3AlL 0QAb3AlL 0QAy3AlLP0QA@3AlLp0QA3AlL0QA@3AlLP0QA3AlL`0QAC3AlL0QAy3AlL0QA@3AlLP0QA@3AlL0QA,3AlLP1QAI3AlLp1QAm3AlL1QA3AlL1QA3AlL1QA3AlL1QA@3AlLp1QA3AlL1QA@3AlL1QA3AlL1QA@3AlL1QA3AlL 1QA3AlLp 1QA@3AlL1QA@3AlL1QA3AlL1QA3AlLp0QA3AlL0QA 3AlL`0QA3AlL0QA3AlL0QA3AlL0QA3AlL00QA)3AlL@0QA(3AlL0QA(3AlLP0QA!3AlL0QA"3AlL0QA(3AlL0QA,3AlLT0QA@)3AlL0QA+3AlL@0QA03AlL0QA73AU%0QA33AlL0QA@13AlL0QA23AlL(0QA`63AlL@0QA@?3AlL0QAG3AlL@0QAO3AlL$0QAX3AlL@0QA^3AlL0QAe3AlL0QAm3AlL0QAh3AlL0QA@a3AlL0QA c3AlL0QAk3AlL0QAi3AlL0QA@g3AlL 0QA`3AlL0QAd3AlL 0QAd3AlL0QAh3AlL`0QA{3AlL0QA3AlL0QA3AlL0QA@3AlL0QA3AlLx0QA3AlL0QA3AlLP0QA3AlL0QA3AlLP0QA@3AlL0QA@3AlLp0QA@3AlL0QA@3AlLp0QA@3AlL00QA`3AlLؤ0QA3AlL0QA3AlL0QA@:3AlL0QAL3AlL0QA`3AlL0QAr3AlL0QA3AlL`0QA3AlL`0QA3AlL@0QA 3AlLp0QA3AlL00QA3AlL@0QA3AlL0QA3AlL`0QAi 3AlL`0QA`3AlL0QA3AlL0QA 3AlLp0QA 3AlL0QA3AlL0QA3AlLh0QA@3AlL`0QA3AlL@0QA3AlL`0QAi3AlL@.QA@+@3AVⲰ.QA@3AlLP.QA3AlL@.QAi@3AlLI-QA3AlLHI-QA3AlL0H-QA@3AlLI-QA H !TK%#Melendugno @ ADG>mY@a3AlL#QA3AlLp1QA|i. 3AlL`0QA3AlL0QA@3AlL`0QA@{3AlL0QAr3AlL`0QA@p3AlLЄ0QA@p3AlL0QAq3AlL`|0QA@x3AlL0w0QA3AlLo0QA3AlLd0QA@3AlL0> pp &U-#triggergeometry_columns_f_table_name_insertgeometry_columnsCREATE TRIGGER geometry_columns_f_table_name_insert BEFORE INSERT ON 'geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on geometry_columns violates constraint: f_table_name value must not contain a single quote') WHERE NEW.f_table_name LIKE ('%''%'); SELECT RAISE(ABORT,'insert on geometry_columns violates constraint: f_table_name value must not contain a double quote') WHERE NEW.f_table_name LIKE ('%"%'); SELECT RAISE(ABORT,'insert on geometry_columns violates constraint: f_table_name value must be lower case') WHERE NEW.f_table_name <> lower(NEW.f_table_name); END __'U-Etriggergeometry_columns_f_table_name_updategeometry_columnsCREATE TRIGGER geometry_columns_f_table_name_update BEFORE UPDATE OF 'f_table_name' ON 'geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on geometry_columns violates constraint: f_table_name value must not contain a single quote') WHERE NEW.f_table_name LIKE ('%''%'); SELECT RAISE(ABORT,'update on geometry_columns violates constraint: f_table_name value must not contain a double quote') WHERE NEW.f_table_name LIKE ('%"%'); SELECT RAISE(ABORT,'update on geometry_columns violates constraint: f_table_name value must be lower case') WHERE NEW.f_table_name <> lower(NEW.f_table_name); END CC:(_-striggergeometry_columns_f_geometry_column_insertgeometry_columnsCREATE TRIGGER geometry_columns_f_geometry_column_insert BEFORE INSERT ON 'geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on geometry_columns violates constraint: f_geometry_column value must not contain a single quote') WHERE NEW.f_geometry_column LIKE ('%''%'); SELECT RAISE(ABORT,'insert on geometry_columns violates constraint: f_geometry_column value must not contain a double quote') WHERE NEW.f_geometry_column LIKE ('%"%'); SELECT RAISE(ABORT,'insert on geometry_columns violates constraint: f_geometry_column value must be lower case') WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column); END --P)_-triggergeometry_columns_f_geometry_column_updategeometry_columnsCREATE TRIGGER geometry_columns_f_geometry_column_update BEFORE UPDATE OF 'f_geometry_column' ON 'geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on geometry_columns violates constraint: f_geometry_column value must not contain a single quote') WHERE NEW.f_geometry_column LIKE ('%''%'); SELECT RAISE(ABORT,'update on geometry_columns violates constraint: f_geometry_column value must not contain a double quote') WHERE NEW.f_geometry_column LIKE ('%"%'); SELECT RAISE(ABORT,'update on geometry_columns violates constraint: f_geometry_column value must be lower case') WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column); END *W-7triggergeometry_columns_geometry_type_insertgeometry_columnsCREATE TRIGGER geometry_columns_geometry_type_insert BEFORE INSERT ON 'geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'geometry_type must be one of 0,1,2,3,4,5,6,7,1000,1001,1002,1003,1004,1005,1006,1007,2000,2001,2002,2003,2004,2005,2006,2007,3000,3001,3002,3003,3004,3005,3006,3007') WHERE NOT(NEW.geometry_type IN (0,1,2,3,4,5,6,7,1000,1001,1002,1003,1004,1005,1006,1007,2000,2001,2002,2003,2004,2005,2006,2007,3000,3001,3002,3003,3004,3005,3006,3007)); END ++W-]triggergeometry_columns_geometry_type_updategeometry_columnsCREATE TRIGGER geometry_columns_geometry_type_update BEFORE UPDATE OF 'geometry_type' ON 'geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'geometry_type must be one of 0,1,2,3,4,5,6,7,1000,1001,1002,1003,1004,1005,1006,1007,2000,2001,2002,2003,2004,2005,2006,2007,3000,3001,3002,3003,3004,3005,3006,3007') WHERE NOT(NEW.geometry_type IN (0,1,2,3,4,5,6,7,1000,1001,1002,1003,1004,1005,1006,1007,2000,2001,2002,2003,2004,2005,2006,2007,3000,3001,3002,3003,3004,3005,3006,3007)); END,[-;triggergeometry_columns_coord_dimension_insertgeometry_columnsCREATE TRIGGER geometry_columns_coord_dimension_insert BEFORE INSERT ON 'geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'coord_dimension must be one of 2,3,4') WHERE NOT(NEW.coord_dimension IN (2,3,4)); END 1-[-etriggergeometry_columns_coord_dimension_updategeometry_columnsCREATE TRIGGER geometry_columns_coord_dimension_update BEFORE UPDATE OF 'coord_dimension' ON 'geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'coord_dimension must be one of 2,3,4') WHERE NOT(NEW.coord_dimension IN (2,3,4)); ENDC.//9viewgeom_cols_ref_sysgeom_cols_ref_sysCREATE VIEW geom_cols_ref_sys AS SELECT f_table_name, f_geometry_column, geometry_type, coord_dimension, spatial_ref_sys.srid AS srid, auth_name, auth_srid, ref_sys_name, proj4text, srtext FROM geometry_columns, spatial_ref_sys WHERE geometry_columns.srid = spatial_ref_sys.srid x/79 triggervwgc_view_name_insertviews_geometry_columnsCREATE TRIGGER vwgc_view_name_insert BEFORE INSERT ON 'views_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: view_name value must not contain a single quote') WHERE NEW.view_name LIKE ('%''%'); SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: view_name value must not contain a double quote') WHERE NEW.view_name LIKE ('%"%'); SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: view_name value must be lower case') WHERE NEW.view_name <> lower(NEW.view_name); END ww079'triggervwgc_view_name_updateviews_geometry_columnsCREATE TRIGGER vwgc_view_name_update BEFORE UPDATE OF 'view_name' ON 'views_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: view_name value must not contain a single quote') WHERE NEW.view_name LIKE ('%''%'); SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: view_name value must not contain a double quote') WHERE NEW.view_name LIKE ('%"%'); SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: view_name value must be lower case') WHERE NEW.view_name <> lower(NEW.view_name); END aa1?9Ktriggervwgc_view_geometry_insertviews_geometry_columnsCREATE TRIGGER vwgc_view_geometry_insert BEFORE INSERT ON 'views_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: view_geometry value must not contain a single quote') WHERE NEW.view_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: view_geometry value must not contain a double quote') WHERE NEW.view_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: view_geometry value must be lower case') WHERE NEW.view_geometry <> lower(NEW.view_geometry); END NN/2?9qtriggervwgc_view_geometry_updateviews_geometry_columnsCREATE TRIGGER vwgc_view_geometry_update BEFORE UPDATE OF 'view_geometry' ON 'views_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: view_geometry value must not contain a single quote') WHERE NEW.view_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: view_geometry value must not contain a double quote') WHERE NEW.view_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: view_geometry value must be lower case') WHERE NEW.view_geometry <> lower(NEW.view_geometry); END ff399Gtriggervwgc_view_rowid_updateviews_geometry_columnsCREATE TRIGGER vwgc_view_rowid_update BEFORE UPDATE OF 'view_rowid' ON 'views_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: view_rowid value must not contain a single quote') WHERE NEW.f_geometry_column LIKE ('%''%'); SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: view_rowid value must not contain a double quote') WHERE NEW.view_rowid LIKE ('%"%'); SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: view_rowid value must be lower case') WHERE NEW.view_rowid <> lower(NEW.view_rowid); END ||499triggervwgc_view_rowid_insertviews_geometry_columnsCREATE TRIGGER vwgc_view_rowid_insert BEFORE INSERT ON 'views_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: view_rowid value must not contain a single quote') WHERE NEW.view_rowid LIKE ('%''%'); SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: view_rowid value must not contain a double quote') WHERE NEW.view_rowid LIKE ('%"%'); SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: view_rowid value must be lower case') WHERE NEW.view_rowid <> lower(NEW.view_rowid); END jj5=9;triggervwgc_f_table_name_insertviews_geometry_columnsCREATE TRIGGER vwgc_f_table_name_insert BEFORE INSERT ON 'views_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: f_table_name value must not contain a single quote') WHERE NEW.f_table_name LIKE ('%''%'); SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: f_table_name value must not contain a double quote') WHERE NEW.f_table_name LIKE ('%"%'); SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: f_table_name value must be lower case') WHERE NEW.f_table_name <> lower(NEW.f_table_name); END YY$6=9]triggervwgc_f_table_name_updateviews_geometry_columnsCREATE TRIGGER vwgc_f_table_name_update BEFORE UPDATE OF 'f_table_name' ON 'views_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: f_table_name value must not contain a single quote') WHERE NEW.f_table_name LIKE ('%''%'); SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: f_table_name value must not contain a double quote') WHERE NEW.f_table_name LIKE ('%"%'); SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: f_table_name value must be lower case') WHERE NEW.f_table_name <> lower(NEW.f_table_name); END ==@7G9 triggervwgc_f_geometry_column_insertviews_geometry_columnsCREATE TRIGGER vwgc_f_geometry_column_insert BEFORE INSERT ON 'views_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: f_geometry_column value must not contain a single quote') WHERE NEW.f_geometry_column LIKE ('%''%'); SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: f_geometry_column value must not contain a double quote') WHERE NEW.f_geometry_column LIKE ('%"%'); SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: f_geometry_column value must be lower case') WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column); END ''V8G97triggervwgc_f_geometry_column_updateviews_geometry_columnsCREATE TRIGGER vwgc_f_geometry_column_update BEFORE UPDATE OF 'f_geometry_column' ON 'views_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: f_geometry_column value must not contain a single quote') WHERE NEW.f_geometry_column LIKE ('%''%'); SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: f_geometry_column value must not contain a double quote') WHERE NEW.f_geometry_column LIKE ('%"%'); SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: f_geometry_column value must be lower case') WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column); END x979 triggervtgc_virt_name_insertvirts_geometry_columnsCREATE TRIGGER vtgc_virt_name_insert BEFORE INSERT ON 'virts_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on virts_geometry_columns violates constraint: virt_name value must not contain a single quote') WHERE NEW.virt_name LIKE ('%''%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns violates constraint: virt_name value must not contain a double quote') WHERE NEW.virt_name LIKE ('%"%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns violates constraint: virt_name value must be lower case') WHERE NEW.virt_name <> lower(NEW.virt_name); END ww:79'triggervtgc_virt_name_updatevirts_geometry_columnsCREATE TRIGGER vtgc_virt_name_update BEFORE UPDATE OF 'virt_name' ON 'virts_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on virts_geometry_columns violates constraint: virt_name value must not contain a single quote') WHERE NEW.virt_name LIKE ('%''%'); SELECT RAISE(ABORT,'update on virts_geometry_columns violates constraint: virt_name value must not contain a double quote') WHERE NEW.virt_name LIKE ('%"%'); SELECT RAISE(ABORT,'update on virts_geometry_columns violates constraint: virt_name value must be lower case') WHERE NEW.virt_name <> lower(NEW.virt_name); END aa;?9Ktriggervtgc_virt_geometry_insertvirts_geometry_columnsCREATE TRIGGER vtgc_virt_geometry_insert BEFORE INSERT ON 'virts_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on virts_geometry_columns violates constraint: virt_geometry value must not contain a single quote') WHERE NEW.virt_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns violates constraint: virt_geometry value must not contain a double quote') WHERE NEW.virt_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns violates constraint: virt_geometry value must be lower case') WHERE NEW.virt_geometry <> lower(NEW.virt_geometry); END NN/<?9qtriggervtgc_virt_geometry_updatevirts_geometry_columnsCREATE TRIGGER vtgc_virt_geometry_update BEFORE UPDATE OF 'virt_geometry' ON 'virts_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on virts_geometry_columns violates constraint: virt_geometry value must not contain a single quote') WHERE NEW.virt_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'update on virts_geometry_columns violates constraint: virt_geometry value must not contain a double quote') WHERE NEW.virt_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'update on virts_geometry_columns violates constraint: virt_geometry value must be lower case') WHERE NEW.virt_geometry <> lower(NEW.virt_geometry); END  =?9+triggervtgc_geometry_type_insertvirts_geometry_columnsCREATE TRIGGER vtgc_geometry_type_insert BEFORE INSERT ON 'virts_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'geometry_type must be one of 0,1,2,3,4,5,6,7,1000,1001,1002,1003,1004,1005,1006,1007,2000,2001,2002,2003,2004,2005,2006,2007,3000,3001,3002,3003,3004,3005,3006,3007') WHERE NOT(NEW.geometry_type IN (0,1,2,3,4,5,6,7,1000,1001,1002,1003,1004,1005,1006,1007,2000,2001,2002,2003,2004,2005,2006,2007,3000,3001,3002,3003,3004,3005,3006,3007)); END >?9Qtriggervtgc_geometry_type_updatevirts_geometry_columnsCREATE TRIGGER vtgc_geometry_type_update BEFORE UPDATE OF 'geometry_type' ON 'virts_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'geometry_type must be one of 0,1,2,3,4,5,6,7,1000,1001,1002,1003,1004,1005,1006,1007,2000,2001,2002,2003,2004,2005,2006,2007,3000,3001,3002,3003,3004,3005,3006,3007') WHERE NOT(NEW.geometry_type IN (0,1,2,3,4,5,6,7,1000,1001,1002,1003,1004,1005,1006,1007,2000,2001,2002,2003,2004,2005,2006,2007,3000,3001,3002,3003,3004,3005,3006,3007)); END?C9/triggervtgc_coord_dimension_insertvirts_geometry_columnsCREATE TRIGGER vtgc_coord_dimension_insert BEFORE INSERT ON 'virts_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'coord_dimension must be one of 2,3,4') WHERE NOT(NEW.coord_dimension IN (2,3,4)); END ++S%@C9Ytriggervtgc_coord_dimension_updatevirts_geometry_columnsCREATE TRIGGER vtgc_coord_dimension_update BEFORE UPDATE OF 'coord_dimension' ON 'virts_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'coord_dimension must be one of 2,3,4') WHERE NOT(NEW.coord_dimension IN (2,3,4)); END*A;Catriggergcs_f_table_name_insertgeometry_columns_statisticsCREATE TRIGGER gcs_f_table_name_insert BEFORE INSERT ON 'geometry_columns_statistics' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on geometry_columns_statistics violates constraint: f_table_name value must not contain a single quote') WHERE NEW.f_table_name LIKE ('%''%'); SELECT RAISE(ABORT,'insert on geometry_columns_statistics violates constraint: f_table_name value must not contain a double quote') WHERE NEW.f_table_name LIKE ('%"%'); SELECT RAISE(ABORT,'insert on geometry_columns_statistics violates constraint: f_table_name value must be lower case') WHERE NEW.f_table_name <> lower(NEW.f_table_name); END BB;B;Ctriggergcs_f_table_name_updategeometry_columns_statisticsCREATE TRIGGER gcs_f_table_name_update BEFORE UPDATE OF 'f_table_name' ON 'geometry_columns_statistics' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on geometry_columns_statistics violates constraint: f_table_name value must not contain a single quote') WHERE NEW.f_table_name LIKE ('%''%'); SELECT RAISE(ABORT,'update on geometry_columns_statistics violates constraint: f_table_name value must not contain a double quote') WHERE NEW.f_table_name LIKE ('%"%'); SELECT RAISE(ABORT,'update on geometry_columns_statistics violates constraint: f_table_name value must be lower case') WHERE NEW.f_table_name <> lower(NEW.f_table_name); END &&WCEC1triggergcs_f_geometry_column_insertgeometry_columns_statisticsCREATE TRIGGER gcs_f_geometry_column_insert BEFORE INSERT ON 'geometry_columns_statistics' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on geometry_columns_statistics violates constraint: f_geometry_column value must not contain a single quote') WHERE NEW.f_geometry_column LIKE ('%''%'); SELECT RAISE(ABORT,'insert on geometry_columns_statistics violates constraint: f_geometry_column value must not contain a double quote') WHERE NEW.f_geometry_column LIKE ('%"%'); SELECT RAISE(ABORT,'insert on geometry_columns_statistics violates constraint: f_geometry_column value must be lower case') WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column); END mDEC]triggergcs_f_geometry_column_updategeometry_columns_statisticsCREATE TRIGGER gcs_f_geometry_column_update BEFORE UPDATE OF 'f_geometry_column' ON 'geometry_columns_statistics' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on geometry_columns_statistics violates constraint: f_geometry_column value must not contain a single quote') WHERE NEW.f_geometry_column LIKE ('%''%'); SELECT RAISE(ABORT,'update on geometry_columns_statistics violates constraint: f_geometry_column value must not contain a double quote') WHERE NEW.f_geometry_column LIKE ('%"%'); SELECT RAISE(ABORT,'update on geometry_columns_statistics violates constraint: f_geometry_column value must be lower case') WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column); END LL1E9Oetriggervwgcs_view_name_insertviews_geometry_columns_statisticsCREATE TRIGGER vwgcs_view_name_insert BEFORE INSERT ON 'views_geometry_columns_statistics' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on views_geometry_columns_statistics violates constraint: view_name value must not contain a single quote') WHERE NEW.view_name LIKE ('%''%'); SELECT RAISE(ABORT,'insert on views_geometry_columns_statistics violates constraint: view_name value must not contain a double quote') WHERE NEW.view_name LIKE ('%"%'); SELECT RAISE(ABORT,'insert on views_geometry_columns_statistics violates constraint: view_name value must be lower case') WHERE NEW.view_name <> lower(NEW.view_name); END >>?F9Otriggervwgcs_view_name_updateviews_geometry_columns_statisticsCREATE TRIGGER vwgcs_view_name_update BEFORE UPDATE OF 'view_name' ON 'views_geometry_columns_statistics' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on views_geometry_columns_statistics violates constraint: view_name value must not contain a single quote') WHERE NEW.view_name LIKE ('%''%'); SELECT RAISE(ABORT,'update on views_geometry_columns_statistics violates constraint: view_name value must not contain a double quote') WHERE NEW.view_name LIKE ('%"%'); SELECT RAISE(ABORT,'update on views_geometry_columns_statistics violates constraint: view_name value must be lower case') WHERE NEW.view_name <> lower(NEW.view_name); END ((UGAO%triggervwgcs_view_geometry_insertviews_geometry_columns_statisticsCREATE TRIGGER vwgcs_view_geometry_insert BEFORE INSERT ON 'views_geometry_columns_statistics' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on views_geometry_columns_statistics violates constraint: view_geometry value must not contain a single quote') WHERE NEW.view_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'insert on views_geometry_columns_statistics violates constraint: view_geometry value must not contain a double quote') WHERE NEW.view_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'insert on views_geometry_columns_statistics violates constraint: view_geometry value must be lower case') WHERE NEW.view_geometry <> lower(NEW.view_geometry); END hHAOKtriggervwgcs_view_geometry_updateviews_geometry_columns_statisticsCREATE TRIGGER vwgcs_view_geometry_update BEFORE UPDATE OF 'view_geometry' ON 'views_geometry_columns_statistics' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on views_geometry_columns_statistics violates constraint: view_geometry value must not contain a single quote') WHERE NEW.view_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'update on views_geometry_columns_statistics violates constraint: view_geometry value must not contain a double quote') WHERE NEW.view_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'update on views_geometry_columns_statistics violates constraint: view_geometry value must be lower case') WHERE NEW.view_geometry <> lower(NEW.view_geometry); END LL1I9Oetriggervtgcs_virt_name_insertvirts_geometry_columns_statisticsCREATE TRIGGER vtgcs_virt_name_insert BEFORE INSERT ON 'virts_geometry_columns_statistics' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on virts_geometry_columns_statistics violates constraint: virt_name value must not contain a single quote') WHERE NEW.virt_name LIKE ('%''%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns_statistics violates constraint: virt_name value must not contain a double quote') WHERE NEW.virt_name LIKE ('%"%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns_statistics violates constraint: virt_name value must be lower case') WHERE NEW.virt_name <> lower(NEW.virt_name); END >>?J9Otriggervtgcs_virt_name_updatevirts_geometry_columns_statisticsCREATE TRIGGER vtgcs_virt_name_update BEFORE UPDATE OF 'virt_name' ON 'virts_geometry_columns_statistics' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on virts_geometry_columns_statistics violates constraint: virt_name value must not contain a single quote') WHERE NEW.virt_name LIKE ('%''%'); SELECT RAISE(ABORT,'update on virts_geometry_columns_statistics violates constraint: virt_name value must not contain a double quote') WHERE NEW.virt_name LIKE ('%"%'); SELECT RAISE(ABORT,'update on virts_geometry_columns_statistics violates constraint: virt_name value must be lower case') WHERE NEW.virt_name <> lower(NEW.virt_name); END ((UKAO%triggervtgcs_virt_geometry_insertvirts_geometry_columns_statisticsCREATE TRIGGER vtgcs_virt_geometry_insert BEFORE INSERT ON 'virts_geometry_columns_statistics' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on virts_geometry_columns_statistics violates constraint: virt_geometry value must not contain a single quote') WHERE NEW.virt_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns_statistics violates constraint: virt_geometry value must not contain a double quote') WHERE NEW.virt_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns_statistics violates constraint: virt_geometry value must be lower case') WHERE NEW.virt_geometry <> lower(NEW.virt_geometry); END hLAOKtriggervtgcs_virt_geometry_updatevirts_geometry_columns_statisticsCREATE TRIGGER vtgcs_virt_geometry_update BEFORE UPDATE OF 'virt_geometry' ON 'virts_geometry_columns_statistics' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on virts_geometry_columns_statistics violates constraint: virt_geometry value must not contain a single quote') WHERE NEW.virt_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'update on virts_geometry_columns_statistics violates constraint: virt_geometry value must not contain a double quote') WHERE NEW.virt_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'update on virts_geometry_columns_statistics violates constraint: virt_geometry value must be lower case') WHERE NEW.virt_geometry <> lower(NEW.virt_geometry); END LL1M=Ektriggergcfi_f_table_name_insertgeometry_columns_field_infosCREATE TRIGGER gcfi_f_table_name_insert BEFORE INSERT ON 'geometry_columns_field_infos' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on geometry_columns_field_infos violates constraint: f_table_name value must not contain a single quote') WHERE NEW.f_table_name LIKE ('%''%'); SELECT RAISE(ABORT,'insert on geometry_columns_field_infos violates constraint: f_table_name value must not contain a double quote') WHERE NEW.f_table_name LIKE ('%"%'); SELECT RAISE(ABORT,'insert on geometry_columns_field_infos violates constraint: f_table_name value must be lower case') WHERE NEW.f_table_name <> lower(NEW.f_table_name); END ;;BN=E triggergcfi_f_table_name_updategeometry_columns_field_infosCREATE TRIGGER gcfi_f_table_name_update BEFORE UPDATE OF 'f_table_name' ON 'geometry_columns_field_infos' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on geometry_columns_field_infos violates constraint: f_table_name value must not contain a single quote') WHERE NEW.f_table_name LIKE ('%''%'); SELECT RAISE(ABORT,'update on geometry_columns_field_infos violates constraint: f_table_name value must not contain a double quote') WHERE NEW.f_table_name LIKE ('%"%'); SELECT RAISE(ABORT,'update on geometry_columns_field_infos violates constraint: f_table_name value must be lower case') WHERE NEW.f_table_name <> lower(NEW.f_table_name); END ^OGE;triggergcfi_f_geometry_column_insertgeometry_columns_field_infosCREATE TRIGGER gcfi_f_geometry_column_insert BEFORE INSERT ON 'geometry_columns_field_infos' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on geometry_columns_field_infos violates constraint: f_geometry_column value must not contain a single quote') WHERE NEW.f_geometry_column LIKE ('%''%'); SELECT RAISE(ABORT,'insert on geometry_columns_field_infos violates constraint: f_geometry_column value must not contain a double quote') WHERE NEW.f_geometry_column LIKE ('%"%'); SELECT RAISE(ABORT,'insert on geometry_columns_field_infos violates constraint: f_geometry_column value must be lower case') WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column); END   tPGEgtriggergcfi_f_geometry_column_updategeometry_columns_field_infosCREATE TRIGGER gcfi_f_geometry_column_update BEFORE UPDATE OF 'f_geometry_column' ON 'geometry_columns_field_infos' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on geometry_columns_field_infos violates constraint: f_geometry_column value must not contain a single quote') WHERE NEW.f_geometry_column LIKE ('%''%'); SELECT RAISE(ABORT,'update on geometry_columns_field_infos violates constraint: f_geometry_column value must not contain a double quote') WHERE NEW.f_geometry_column LIKE ('%"%'); SELECT RAISE(ABORT,'update on geometry_columns_field_infos violates constraint: f_geometry_column value must be lower case') WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column); END EE8Q;Qotriggervwgcfi_view_name_insertviews_geometry_columns_field_infosCREATE TRIGGER vwgcfi_view_name_insert BEFORE INSERT ON 'views_geometry_columns_field_infos' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on views_geometry_columns_field_infos violates constraint: view_name value must not contain a single quote') WHERE NEW.view_name LIKE ('%''%'); SELECT RAISE(ABORT,'insert on views_geometry_columns_field_infos violates constraint: view_name value must not contain a double quote') WHERE NEW.view_name LIKE ('%"%'); SELECT RAISE(ABORT,'insert on views_geometry_columns_field_infos violates constraint: view_name value must be lower case') WHERE NEW.view_name <> lower(NEW.view_name); END 77FR;Q triggervwgcfi_view_name_updateviews_geometry_columns_field_infosCREATE TRIGGER vwgcfi_view_name_update BEFORE UPDATE OF 'view_name' ON 'views_geometry_columns_field_infos' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on views_geometry_columns_field_infos violates constraint: view_name value must not contain a single quote') WHERE NEW.view_name LIKE ('%''%'); SELECT RAISE(ABORT,'update on views_geometry_columns_field_infos violates constraint: view_name value must not contain a double quote') WHERE NEW.view_name LIKE ('%"%'); SELECT RAISE(ABORT,'update on views_geometry_columns_field_infos violates constraint: view_name value must be lower case') WHERE NEW.view_name <> lower(NEW.view_name); END !!\SCQ/triggervwgcfi_view_geometry_insertviews_geometry_columns_field_infosCREATE TRIGGER vwgcfi_view_geometry_insert BEFORE INSERT ON 'views_geometry_columns_field_infos' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on views_geometry_columns_field_infos violates constraint: view_geometry value must not contain a single quote') WHERE NEW.view_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'insert on views_geometry_columns_field_infos violates constraint: view_geometry value must not contain a double quote') WHERE NEW.view_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'insert on views_geometry_columns_field_infos violates constraint: view_geometry value must be lower case') WHERE NEW.view_geometry <> lower(NEW.view_geometry); END oTCQUtriggervwgcfi_view_geometry_updateviews_geometry_columns_field_infosCREATE TRIGGER vwgcfi_view_geometry_update BEFORE UPDATE OF 'view_geometry' ON 'views_geometry_columns_field_infos' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on views_geometry_columns_field_infos violates constraint: view_geometry value must not contain a single quote') WHERE NEW.view_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'update on views_geometry_columns_field_infos violates constraint: view_geometry value must not contain a double quote') WHERE NEW.view_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'update on views_geometry_columns_field_infos violates constraint: view_geometry value must be lower case') WHERE NEW.view_geometry <> lower(NEW.view_geometry); END EE8U;Qotriggervtgcfi_virt_name_insertvirts_geometry_columns_field_infosCREATE TRIGGER vtgcfi_virt_name_insert BEFORE INSERT ON 'virts_geometry_columns_field_infos' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on virts_geometry_columns_field_infos violates constraint: virt_name value must not contain a single quote') WHERE NEW.virt_name LIKE ('%''%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns_field_infos violates constraint: virt_name value must not contain a double quote') WHERE NEW.virt_name LIKE ('%"%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns_field_infos violates constraint: virt_name value must be lower case') WHERE NEW.virt_name <> lower(NEW.virt_name); END 77FV;Q triggervtgcfi_virt_name_updatevirts_geometry_columns_field_infosCREATE TRIGGER vtgcfi_virt_name_update BEFORE UPDATE OF 'virt_name' ON 'virts_geometry_columns_field_infos' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on virts_geometry_columns_field_infos violates constraint: virt_name value must not contain a single quote') WHERE NEW.virt_name LIKE ('%''%'); SELECT RAISE(ABORT,'update on virts_geometry_columns_field_infos violates constraint: virt_name value must not contain a double quote') WHERE NEW.virt_name LIKE ('%"%'); SELECT RAISE(ABORT,'update on virts_geometry_columns_field_infos violates constraint: virt_name value must be lower case') WHERE NEW.virt_name <> lower(NEW.virt_name); END !!\WCQ/triggervtgcfi_virt_geometry_insertvirts_geometry_columns_field_infosCREATE TRIGGER vtgcfi_virt_geometry_insert BEFORE INSERT ON 'virts_geometry_columns_field_infos' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on virts_geometry_columns_field_infos violates constraint: virt_geometry value must not contain a single quote') WHERE NEW.virt_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns_field_infos violates constraint: virt_geometry value must not contain a double quote') WHERE NEW.virt_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns_field_infos violates constraint: virt_geometry value must be lower case') WHERE NEW.virt_geometry <> lower(NEW.virt_geometry); END oXCQUtriggervtgcfi_virt_geometry_updatevirts_geometry_columns_field_infosCREATE TRIGGER vtgcfi_virt_geometry_update BEFORE UPDATE OF 'virt_geometry' ON 'virts_geometry_columns_field_infos' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on virts_geometry_columns_field_infos violates constraint: virt_geometry value must not contain a single quote') WHERE NEW.virt_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'update on virts_geometry_columns_field_infos violates constraint: virt_geometry value must not contain a double quote') WHERE NEW.virt_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'update on virts_geometry_columns_field_infos violates constraint: virt_geometry value must be lower case') WHERE NEW.virt_geometry <> lower(NEW.virt_geometry); END ooY=73triggergctm_f_table_name_insertgeometry_columns_timeCREATE TRIGGER gctm_f_table_name_insert BEFORE INSERT ON 'geometry_columns_time' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on geometry_columns_time violates constraint: f_table_name value must not contain a single quote') WHERE NEW.f_table_name LIKE ('%''%'); SELECT RAISE(ABORT,'insert on geometry_columns_time violates constraint: f_table_name value must not contain a double quote') WHERE NEW.f_table_name LIKE ('%"%'); SELECT RAISE(ABORT,'insert on geometry_columns_time violates constraint: f_table_name value must be lower case') WHERE NEW.f_table_name <> lower(NEW.f_table_name); END ^^Z=7Utriggergctm_f_table_name_updategeometry_columns_timeCREATE TRIGGER gctm_f_table_name_update BEFORE UPDATE OF 'f_table_name' ON 'geometry_columns_time' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on geometry_columns_time violates constraint: f_table_name value must not contain a single quote') WHERE NEW.f_table_name LIKE ('%''%'); SELECT RAISE(ABORT,'update on geometry_columns_time violates constraint: f_table_name value must not contain a double quote') WHERE NEW.f_table_name LIKE ('%"%'); SELECT RAISE(ABORT,'update on geometry_columns_time violates constraint: f_table_name value must be lower case') WHERE NEW.f_table_name <> lower(NEW.f_table_name); END BB;[G7triggergctm_f_geometry_column_insertgeometry_columns_timeCREATE TRIGGER gctm_f_geometry_column_insert BEFORE INSERT ON 'geometry_columns_time' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on geometry_columns_time violates constraint: f_geometry_column value must not contain a single quote') WHERE NEW.f_geometry_column LIKE ('%''%'); SELECT RAISE(ABORT,'insert on geometry_columns_time violates constraint: f_geometry_column value must not contain a double quote') WHERE NEW.f_geometry_column LIKE ('%"%'); SELECT RAISE(ABORT,'insert on geometry_columns_time violates constraint: f_geometry_column value must be lower case') WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column); END ,,Q\G7/triggergctm_f_geometry_column_updategeometry_columns_timeCREATE TRIGGER gctm_f_geometry_column_update BEFORE UPDATE OF 'f_geometry_column' ON 'geometry_columns_time' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on geometry_columns_time violates constraint: f_geometry_column value must not contain a single quote') WHERE NEW.f_geometry_column LIKE ('%''%'); SELECT RAISE(ABORT,'update on geometry_columns_time violates constraint: f_geometry_column value must not contain a double quote') WHERE NEW.f_geometry_column LIKE ('%"%'); SELECT RAISE(ABORT,'update on geometry_columns_time violates constraint: f_geometry_column value must be lower case') WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column); END oo]=73triggergcau_f_table_name_insertgeometry_columns_authCREATE TRIGGER gcau_f_table_name_insert BEFORE INSERT ON 'geometry_columns_auth' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on geometry_columns_auth violates constraint: f_table_name value must not contain a single quote') WHERE NEW.f_table_name LIKE ('%''%'); SELECT RAISE(ABORT,'insert on geometry_columns_auth violates constraint: f_table_name value must not contain a double quote') WHERE NEW.f_table_name LIKE ('%"%'); SELECT RAISE(ABORT,'insert on geometry_columns_auth violates constraint: f_table_name value must be lower case') WHERE NEW.f_table_name <> lower(NEW.f_table_name); END ^^^=7Utriggergcau_f_table_name_updategeometry_columns_authCREATE TRIGGER gcau_f_table_name_update BEFORE UPDATE OF 'f_table_name' ON 'geometry_columns_auth' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on geometry_columns_auth violates constraint: f_table_name value must not contain a single quote') WHERE NEW.f_table_name LIKE ('%''%'); SELECT RAISE(ABORT,'update on geometry_columns_auth violates constraint: f_table_name value must not contain a double quote') WHERE NEW.f_table_name LIKE ('%"%'); SELECT RAISE(ABORT,'update on geometry_columns_auth violates constraint: f_table_name value must be lower case') WHERE NEW.f_table_name <> lower(NEW.f_table_name); END BB;_G7triggergcau_f_geometry_column_insertgeometry_columns_authCREATE TRIGGER gcau_f_geometry_column_insert BEFORE INSERT ON 'geometry_columns_auth' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on geometry_columns_auth violates constraint: f_geometry_column value must not contain a single quote') WHERE NEW.f_geometry_column LIKE ('%''%'); SELECT RAISE(ABORT,'insert on geometry_columns_auth violates constraint: f_geometry_column value must not contain a double quote') WHERE NEW.f_geometry_column LIKE ('%"%'); SELECT RAISE(ABORT,'insert on geometry_columns_auth violates constraint: f_geometry_column value must be lower case') WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column); END ,,Q`G7/triggergcau_f_geometry_column_updategeometry_columns_authCREATE TRIGGER gcau_f_geometry_column_update BEFORE UPDATE OF 'f_geometry_column' ON 'geometry_columns_auth' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on geometry_columns_auth violates constraint: f_geometry_column value must not contain a single quote') WHERE NEW.f_geometry_column LIKE ('%''%'); SELECT RAISE(ABORT,'update on geometry_columns_auth violates constraint: f_geometry_column value must not contain a double quote') WHERE NEW.f_geometry_column LIKE ('%"%'); SELECT RAISE(ABORT,'update on geometry_columns_auth violates constraint: f_geometry_column value must be lower case') WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column); END hha;C7triggervwgcau_view_name_insertviews_geometry_columns_authCREATE TRIGGER vwgcau_view_name_insert BEFORE INSERT ON 'views_geometry_columns_auth' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on views_geometry_columns_auth violates constraint: view_name value must not contain a single quote') WHERE NEW.view_name LIKE ('%''%'); SELECT RAISE(ABORT,'insert on views_geometry_columns_auth violates constraint: view_name value must not contain a double quote') WHERE NEW.view_name LIKE ('%"%'); SELECT RAISE(ABORT,'insert on views_geometry_columns_auth violates constraint: view_name value must be lower case') WHERE NEW.view_name <> lower(NEW.view_name); END ZZ#b;CStriggervwgcau_view_name_updateviews_geometry_columns_authCREATE TRIGGER vwgcau_view_name_update BEFORE UPDATE OF 'view_name' ON 'views_geometry_columns_auth' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on views_geometry_columns_auth violates constraint: view_name value must not contain a single quote') WHERE NEW.view_name LIKE ('%''%'); SELECT RAISE(ABORT,'update on views_geometry_columns_auth violates constraint: view_name value must not contain a double quote') WHERE NEW.view_name LIKE ('%"%'); SELECT RAISE(ABORT,'update on views_geometry_columns_auth violates constraint: view_name value must be lower case') WHERE NEW.view_name <> lower(NEW.view_name); END DD9cCCwtriggervwgcau_view_geometry_insertviews_geometry_columns_authCREATE TRIGGER vwgcau_view_geometry_insert BEFORE INSERT ON 'views_geometry_columns_auth' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on views_geometry_columns_auth violates constraint: view_geometry value must not contain a single quote') WHERE NEW.view_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'insert on views_geometry_columns_auth violates constraint: view_geometry value must not contain a double quote') WHERE NEW.view_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'insert on views_geometry_columns_auth violates constraint: view_geometry value must be lower case') WHERE NEW.view_geometry <> lower(NEW.view_geometry); END 00MdCCtriggervwgcau_view_geometry_updateviews_geometry_columns_authCREATE TRIGGER vwgcau_view_geometry_update BEFORE UPDATE OF 'view_geometry' ON 'views_geometry_columns_auth' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on views_geometry_columns_auth violates constraint: view_geometry value must not contain a single quote') WHERE NEW.view_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'update on views_geometry_columns_auth violates constraint: view_geometry value must not contain a double quote') WHERE NEW.view_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'update on views_geometry_columns_auth violates constraint: view_geometry value must be lower case') WHERE NEW.view_geometry <> lower(NEW.view_geometry); END hhe;C7triggervtgcau_virt_name_insertvirts_geometry_columns_authCREATE TRIGGER vtgcau_virt_name_insert BEFORE INSERT ON 'virts_geometry_columns_auth' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on virts_geometry_columns_auth violates constraint: virt_name value must not contain a single quote') WHERE NEW.virt_name LIKE ('%''%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns_auth violates constraint: virt_name value must not contain a double quote') WHERE NEW.virt_name LIKE ('%"%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns_auth violates constraint: virt_name value must be lower case') WHERE NEW.virt_name <> lower(NEW.virt_name); END ZZ#f;CStriggervtgcau_virt_name_updatevirts_geometry_columns_authCREATE TRIGGER vtgcau_virt_name_update BEFORE UPDATE OF 'virt_name' ON 'virts_geometry_columns_auth' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on virts_geometry_columns_auth violates constraint: virt_name value must not contain a single quote') WHERE NEW.virt_name LIKE ('%''%'); SELECT RAISE(ABORT,'update on virts_geometry_columns_auth violates constraint: virt_name value must not contain a double quote') WHERE NEW.virt_name LIKE ('%"%'); SELECT RAISE(ABORT,'update on virts_geometry_columns_auth violates constraint: virt_name value must be lower case') WHERE NEW.virt_name <> lower(NEW.virt_name); END DD9gCCwtriggervtgcau_virt_geometry_insertvirts_geometry_columns_authCREATE TRIGGER vtgcau_virt_geometry_insert BEFORE INSERT ON 'virts_geometry_columns_auth' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on virts_geometry_columns_auth violates constraint: virt_geometry value must not contain a single quote') WHERE NEW.virt_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns_auth violates constraint: virt_geometry value must not contain a double quote') WHERE NEW.virt_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns_auth violates constraint: virt_geometry value must be lower case') WHERE NEW.virt_geometry <> lower(NEW.virt_geometry); END 11LhCCtriggervtgcau_virt_geometry_updatevirts_geometry_columns_authCREATE TRIGGER vtgcau_virt_geometry_update BEFORE UPDATE OF 'virt_geometry' ON 'virts_geometry_columns_auth' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on virts_geometry_columns_auth violates constraint: virt_geometry value must not contain a single quote') WHERE NEW.virt_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'update on virts_geometry_columns_auth violates constraint: virt_geometry value must not contain a double quote') WHERE NEW.virt_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'update on virts_geometry_columns_auth violates constraint: virt_geometry value must be lower case') WHERE NEW.virt_geometry <> lower(NEW.virt_geometry); END --Pi''cviewvector_layersvector_layersCREATE VIEW vector_layers AS SELECT 'SpatialTable' AS layer_type, f_table_name AS table_name, f_geometry_column AS geometry_column, geometry_type AS geometry_type, coord_dimension AS coord_dimension, srid AS srid, spatial_index_enabled AS spatial_index_enabled FROM geometry_columns UNION SELECT 'SpatialView' AS layer_type, a.view_name AS table_name, a.view_geometry AS geometry_column, b.geometry_type AS geometry_type, b.coord_dimension AS coord_dimension, b.srid AS srid, b.spatial_index_enabled AS spatial_index_enabled FROM views_geometry_columns AS a LEFT JOIN geometry_columns AS b ON (Upper(a.f_table_name) = Upper(b.f_table_name) AND Upper(a.f_geometry_column) = Upper(b.f_geometry_column)) UNION SELECT 'VirtualShape' AS layer_type, virt_name AS table_name, virt_geometry AS geometry_column, geometry_type AS geometry_type, coord_dimension AS coord_dimension, srid AS srid, 0 AS spatial_index_enabled FROM virts_geometry_columns aj11qviewvector_layers_authvector_layers_authCREATE VIEW vector_layers_auth AS SELECT 'SpatialTable' AS layer_type, f_table_name AS table_name, f_geometry_column AS geometry_column, read_only AS read_only, hidden AS hidden FROM geometry_columns_auth UNION SELECT 'SpatialView' AS layer_type, a.view_name AS table_name, a.view_geometry AS geometry_column, b.read_only AS read_only, a.hidden AS hidden FROM views_geometry_columns_auth AS a JOIN views_geometry_columns AS b ON (Upper(a.view_name) = Upper(b.view_name) AND Upper(a.view_geometry) = Upper(b.view_geometry)) UNION SELECT 'VirtualShape' AS layer_type, virt_name AS table_name, virt_geometry AS geometry_column, 1 AS read_only, hidden AS hidden FROM virts_geometry_columns_authCT 'SpatialTable' AS layer_type, f_table_name AS table_name, f_geometry_column AS geometry_column, last_verified AS last_verified, row_count AS row_count, extent_min_x AS extent_min_x, extent_min_y AS extent_min_y, extent_max_x AS extent_max_x, extent_max_y AS extent_max_y FROM geometry_columns_statistics UNION SELECT 'SpatialView' AS layer_type, view_name AS table_name, view_geometry AS geometry_column, last_verified AS last_verified, row_count AS row_count, extent_min_x AS extent_min_x, extent_min_y AS extent_min_y, extent_max_x AS extent_max_x, extent_max_y AS extent_max_y FROM views_geometry_columns_statistics UNION SELECT 'VirtualShape' AS layer_type, virt_name AS table_name, virt_geometry AS geometry_column, last_verified AS last_verified, row_count AS row_count, extent_min_x AS extent_min_x, extent_min_y AS extent_min_y, extent_max_x AS extent_max_x, extent_max_y AS extent_max_y FROM virts_geometry_columns_statisticser_max, double_min AS double_min, double_max double_max FROM geometry_columns_field_infos UNION SELECT 'SpatialView' AS layer_type, view_name AS table_name, view_geometry AS geometry_column, ordinal AS ordinal, column_name AS column_name, null_values AS null_values, integer_values AS integer_values, double_values AS double_values, text_values AS text_values, blob_values AS blob_values, max_size AS max_size, integer_min AS integer_min, integer_max AS integer_max, double_min AS double_min, double_max double_max FROM views_geometry_columns_field_infos UNION SELECT 'VirtualShape' AS layer_type, virt_name AS table_name, virt_geometry AS geometry_column, ordinal AS ordinal, column_name AS column_name, null_values AS null_values, integer_values AS integer_values, double_values AS double_values, text_values AS text_values, blob_values AS blob_values, max_size AS max_size, integer_min AS integer_min, integer_max AS integer_max, double_min AS double_min, double_max double_max FROM virts_geometry_columns_field_infos OOk==7viewvector_layers_statisticsvector_layers_statisticsCREATE VIEW vector_layers_statistics AS SELEUl??=viewvector_layers_field_infosvector_layers_field_infosCREATE VIEW vector_layers_field_infos AS SELECT 'SpatialTable' AS layer_type, f_table_name AS table_name, f_geometry_column AS geometry_column, ordinal AS ordinal, column_name AS column_name, null_values AS null_values, integer_values AS integer_values, double_values AS double_values, text_values AS text_values, blob_values AS blob_values, max_size AS max_size, integer_min AS integer_min, integer_max AS integam%%tableSpatialIndexSpatialIndexCREATE VIRTUAL TABLE SpatialIndex USING VirtualSpatialIndex() tt:Cn5Atriggerggi_com2011_Geometrycom2011CREATE TRIGGER "ggi_com2011_Geometry" BEFORE INSERT ON "com2011" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'com2011.Geometry violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('com2011') AND Lower(f_geometry_column) = Lower('Geometry') AND GeometryConstraints(NEW."Geometry", geometry_type, srid) = 1) IS NULL; ENDCo5Atriggerggu_com2011_Geometrycom2011CREATE TRIGGER "ggu_com2011_Geometry" BEFORE UPDATE ON "com2011" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'com2011.Geometry violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('com2011') AND Lower(f_geometry_column) = Lower('Geometry') AND GeometryConstraints(NEW."Geometry", geometry_type, srid) = 1) IS NULL; END ^^3r5!triggertmd_com2011_Geometrycom2011CREATE TRIGGER "tmd_com2011_Geometry" AFTER DELETE ON "com2011" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_delete = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('com2011') AND Lower(f_geometry_column) = Lower('Geometry'); END3q5!triggertmi_com2011_Geometrycom2011CREATE TRIGGER "tmi_com2011_Geometry" AFTER INSERT ON "com2011" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_insert = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('com2011') AND Lower(f_geometry_column) = Lower('Geometry'); END3p5!triggertmu_com2011_Geometrycom2011CREATE TRIGGER "tmu_com2011_Geometry" AFTER UPDATE ON "com2011" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_update = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('com2011') AND Lower(f_geometry_column) = Lower('Geometry'); ENDlibspatialite-4.1.1/test/shape_3d.c0000664000175000017500000001357012163502133014101 00000000000000/* shape_3d.c -- SpatiaLite Test Case Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" void cleanup_shapefile(const char *filename) { char nam[1000]; if (!filename) { return; } snprintf(nam, 1000, "%s.dbf", filename); unlink(nam); snprintf(nam, 1000, "%s.prj", filename); unlink(nam); snprintf(nam, 1000, "%s.shp", filename); unlink(nam); snprintf(nam, 1000, "%s.shx", filename); unlink(nam); } int main (int argc, char *argv[]) { #ifndef OMIT_ICONV /* only if ICONV is supported */ int ret; sqlite3 *handle; char *dumpname = __FILE__"dump"; char *err_msg = NULL; int row_count; void *cache = spatialite_alloc_connection(); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); sqlite3_close(handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -2; } ret = load_shapefile (handle, "./shp/merano-3d/points", "points", "CP1252", 25832, "col1", 0, 0, 1, 0, &row_count, err_msg); if (!ret) { fprintf (stderr, "load_shapefile() error for shp/merano-3d/points: %s\n", err_msg); sqlite3_close(handle); return -3; } if (row_count != 20) { fprintf (stderr, "unexpected row count for shp/merano-3d/points: %i\n", row_count); sqlite3_close(handle); return -4; } ret = load_shapefile (handle, "./shp/merano-3d/polygons", "polygons", "CP1252", 25832, "col1", 0, 0, 1, 0, &row_count, err_msg); if (!ret) { fprintf (stderr, "load_shapefile() error for shp/merano-3d/polygons: %s\n", err_msg); sqlite3_close(handle); return -5; } if (row_count != 10) { fprintf (stderr, "unexpected row count for shp/merano-3d/polygons: %i\n", row_count); sqlite3_close(handle); return -6; } ret = load_shapefile (handle, "./shp/merano-3d/roads", "roads", "CP1252", 25832, "col1", 0, 0, 1, 0, &row_count, err_msg); if (!ret) { fprintf (stderr, "load_shapefile() error for shp/merano-3d/roads: %s\n", err_msg); sqlite3_close(handle); return -7; } if (row_count != 18) { fprintf (stderr, "unexpected row count for shp/merano-3d/roads: %i\n", row_count); sqlite3_close(handle); return -8; } ret = dump_shapefile (handle, "roads", "col1", dumpname, "CP1252", "LINESTRING", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error for 3d roads: %s\n", err_msg); sqlite3_close(handle); return -9; } cleanup_shapefile(dumpname); if (row_count != 18) { fprintf (stderr, "unexpected row count for 3d roads: %i\n", row_count); sqlite3_close(handle); return -10; } ret = dump_shapefile (handle, "polygons", "col1", dumpname, "CP1252", "POLYGON", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error for 3d polygons: %s\n", err_msg); sqlite3_close(handle); return -11; } cleanup_shapefile(dumpname); if (row_count != 10) { fprintf (stderr, "unexpected row count for 3d polygons: %i\n", row_count); sqlite3_close(handle); return -12; } ret = dump_shapefile (handle, "points", "col1", dumpname, "CP1252", "POINT", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error for 3d points: %s\n", err_msg); sqlite3_close(handle); return -13; } cleanup_shapefile(dumpname); if (row_count != 20) { fprintf (stderr, "unexpected row count for 3d points: %i\n", row_count); sqlite3_close(handle); return -14; } ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -15; } spatialite_cleanup_ex (cache); #endif /* end ICONV conditional */ return 0; } libspatialite-4.1.1/test/check_dbf_load.c0000664000175000017500000000641612163502133015303 00000000000000/* check_dbf_load.c -- SpatiaLite Test Case Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" int main (int argc, char *argv[]) { #ifndef OMIT_ICONV /* only if ICONV is supported */ int ret; sqlite3 *handle; char *err_msg = NULL; int row_count; void *cache = spatialite_alloc_connection(); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "cannot open in-memory databse: %s\n", sqlite3_errmsg (handle)); sqlite3_close(handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -2; } ret = load_dbf (handle, "./shapetest1.dbf", "test1", "UTF-8", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "load_dbf() error: %s\n", err_msg); sqlite3_close(handle); return -3; } if (row_count != 2) { fprintf (stderr, "unexpected row count for load_dbf: %i\n", row_count); sqlite3_close(handle); return -4; } ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -5; } spatialite_cleanup_ex(cache); #endif /* end ICONV conditional */ return 0; } libspatialite-4.1.1/test/getcapabilities-1.0.0.wfs0000664000175000017500000005555512163502133016564 00000000000000WFSGeoServer Web Feature ServiceThis is the reference implementation of WFS 1.0.0 and WFS 1.1.0, supports all WFS operations including Transaction.WFS, WMS, GEOSERVERhttp://www.gaia-gis.it:8080/geoserver/wfsNONENONEtiger:poly_landmarksManhattan (NY) landmarksManhattan landmarks, identifies water, lakes, parks, interesting buildilngslandmarks, DS_poly_landmarks, manhattan, poly_landmarksEPSG:4326tiger:poiManhattan (NY) points of interestPoints of interest in New York, New York (on Manhattan). One of the attributes contains the name of a file with a picture of the point of interest.poi, Manhattan, DS_poi, points_of_interestEPSG:4326tiger:tiger_roadsManhattan (NY) roadsHighly simplified road layout of Manhattan in New York..DS_tiger_roads, tiger_roads, roadsEPSG:4326sf:archsitesSpearfish archeological sitesSample data from GRASS, archeological sites location, Spearfish, South Dakota, USAarchsites, spearfish, sfArchsites, archeologyEPSG:26713sf:bugsitesSpearfish bug locationsSample data from GRASS, bug sites location, Spearfish, South Dakota, USAspearfish, sfBugsites, insects, bugsites, tiger_beetlesEPSG:26713sf:restrictedSpearfish restricted areasSample data from GRASS, restricted areas, Spearfish, South Dakota, USAspearfish, restricted, areas, sfRestrictedEPSG:26713sf:roadsSpearfish roadsSample data from GRASS, road layout, Spearfish, South Dakota, USAsfRoads, spearfish, roadsEPSG:26713sf:streamsSpearfish streamsSample data from GRASS, streams, Spearfish, South Dakota, USAspearfish, sfStreams, streamsEPSG:26713topp:tasmania_citiesTasmania citiesCities in Tasmania (actually, just the capital)cities, TasmaniaEPSG:4326topp:tasmania_roadsTasmania roadsMain Tasmania roadsRoads, TasmaniaEPSG:4326topp:tasmania_state_boundariesTasmania state boundariesTasmania state boundariesboundaries, tasmania_state_boundaries, TasmaniaEPSG:4326topp:tasmania_water_bodiesTasmania water bodiesTasmania water bodiesLakes, Bodies, Australia, Water, TasmaniaEPSG:4326topp:statesUSA PopulationThis is some census data on the states.census, united, boundaries, state, statesEPSG:4326tiger:giant_polygonWorld rectangleA simple rectangular polygon covering most of the world, it's only used for the purpose of providing a background (WMS bgcolor could be used instead)DS_giant_polygon, giant_polygonEPSG:4326topp:centri_abitati_sismacentri_abitatiEPSG:25832topp:comuni_sismacomuniEPSG:25832topp:comunicomuniEPSG:23032topp:edifici_sismaedificiEPSG:25832topp:f02f02EPSG:25832topp:f03f03EPSG:25832topp:f04f04EPSG:25832topp:f05f05EPSG:25832topp:f06f06EPSG:25832topp:f08f08EPSG:25832topp:ferrovieferrovieEPSG:23032topp:l02l02EPSG:25832topp:l03l03EPSG:25832topp:l05l05EPSG:25832topp:l06l06EPSG:25832topp:l07l07EPSG:25832topp:l09l09EPSG:25832topp:l10l10EPSG:25832topp:localita_sismalocalitaEPSG:25832topp:p02p02EPSG:25832topp:p03p03EPSG:25832topp:p05p05EPSG:25832topp:p06p06EPSG:25832topp:p07p07EPSG:25832topp:p08p08EPSG:25832topp:p09p09EPSG:25832topp:p10p10EPSG:25832topp:poi_testpoi_testEPSG:25832topp:province_sismaprovinceEPSG:25832topp:provinceprovinceEPSG:23032topp:regioniregioniEPSG:23032topp:stazionistazioniEPSG:23032topp:strade_sismastradeEPSG:25832topp:toponimi_sismatoponimiEPSG:25832topp:zona_sismicazona_sismicaEPSG:25832absabs_2abs_3abs_4acosAreaasinatanatan2betweenboundaryboundaryDimensionbufferbufferWithSegmentsceilcentroidclassifyCollection_AverageCollection_BoundsCollection_CountCollection_MaxCollection_MedianCollection_MinCollection_SumCollection_UniquecontainsconvertconvexHullcoscrossesdateFormatdateParsedifferencedimensiondisjointdistancedouble2boolendPointenvelopeEqualIntervalequalsExactequalsExactToleranceequalToexpexteriorRingfloorgeometryTypegeomFromWKTgeomLengthgetGeometryNgetXgetYgetZgreaterEqualThangreaterThanidIEEEremainderif_then_elsein10in2in3in4in5in6in7in8in9int2bboolint2ddoubleinteriorPointinteriorRingNintersectionintersectsisClosedisEmptyisLikeisNullisRingisSimpleisValidisWithinDistancelengthlessEqualThanlessThanlogmaxmax_2max_3max_4minmin_2min_3min_4notnotEqualTonumberFormatnumGeometriesnumInteriorRingnumPointsoverlapsparseBooleanparseDoubleparseIntparseLongpipointNpowPropertyExistsQuantilerandomrelaterelatePatternrintroundround_2roundDoublesinsqrtStandardDeviationstartPointstrConcatstrEndsWithstrEqualsIgnoreCasestrIndexOfstrLastIndexOfstrLengthstrMatchesstrReplacestrStartsWithstrSubstringstrSubstringStartstrToLowerCasestrToUpperCasestrTrimsymDifferencetantoDegreestoRadianstouchestoWKTunionUniqueIntervalwithin libspatialite-4.1.1/test/check_point_to_tile_bad_tablename.c0000664000175000017500000000645212163502133021237 00000000000000/* check_point_to_tile_bad_tablename.c - Test case for GeoPackage Extensions Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Brad Hards Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #include "test_helpers.h" int main (int argc UNUSED, char *argv[] UNUSED) { sqlite3 *db_handle = NULL; int ret; void *cache = spatialite_alloc_connection(); char *err_msg = NULL; ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); // For debugging / testing if required // ret = sqlite3_open_v2 ("check_point_to_tile_bad_tablename.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); spatialite_init_ex(db_handle, cache, 0); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } /* try gpkgPointToTile with the wrong argument types */ ret = sqlite3_exec (db_handle, "SELECT gpkgPointToTile('no_such_tiles', 4326, 3.2, 5.2, 1)", NULL, NULL, &err_msg); if (ret != SQLITE_ERROR) { fprintf(stderr, "Expected error for no_such_tiles: got %i\n", ret); sqlite3_free (err_msg); return -4; } if (strcmp(err_msg, "gpkgPointToTile() error: failed to prepare SQL SRID select statement") != 0) { fprintf (stderr, "Unexpected error message for no_such_tiles: %s\n", err_msg); sqlite3_free(err_msg); return -5; } sqlite3_free(err_msg); ret = sqlite3_close (db_handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle)); return -100; } spatialite_cleanup_ex(cache); return 0; } libspatialite-4.1.1/test/check_get_normal_row_bad_geopackage.c0000664000175000017500000001220512163502133021534 00000000000000/* check_get_normal_row_bad_geopackage.c - Test case for GeoPackage Extensions Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Brad Hards Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #include "test_helpers.h" int main (int argc UNUSED, char *argv[] UNUSED) { sqlite3 *db_handle = NULL; int ret; char *err_msg = NULL; char **results; int rows; int columns; void *cache = spatialite_alloc_connection(); ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); // For debugging / testing if required // ret = sqlite3_open_v2 ("check_get_normal_row.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); spatialite_init_ex(db_handle, cache, 0); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } /* create a corrupt tile_matrix_metadata table (not spec compliant) */ ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS tile_matrix_metadata", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP tile_matrix_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -4; } ret = sqlite3_exec (db_handle, "CREATE TABLE tile_matrix_metadata (t_table_name TEXT NOT NULL, zoom_level INTEGER NOT NULL, matrix_width INTEGER NOT NULL, matrix_height TEXT NOT NULL)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE tile_matrix_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -5; } ret = sqlite3_exec (db_handle, "INSERT INTO tile_matrix_metadata VALUES (\"test1_matrix_tiles\", 0, 0, \"foo\")", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT tile_matrix_metadata zoom 0 error: %s\n", err_msg); sqlite3_free (err_msg); return -6; } ret = sqlite3_exec (db_handle, "INSERT INTO tile_matrix_metadata VALUES (\"test1_matrix_tiles\", 1, 0, \"4000000000\")", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT tile_matrix_metadata zoom 1 error: %s\n", err_msg); sqlite3_free (err_msg); return -7; } ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalRow(\"test1_matrix_tiles\", 0, 0)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_ERROR) { fprintf(stderr, "Expected error for broken geopackage, got %i\n", ret); sqlite3_free (err_msg); return -9; } if (strcmp(err_msg, "gpkgGetNormalRow: could not parse result (corrupt GeoPackage?)") != 0) { fprintf (stderr, "Unexpected error message for broken geopackage: %s\n", err_msg); sqlite3_free(err_msg); return -10; } sqlite3_free(err_msg); ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalRow(\"test1_matrix_tiles\", 1, 0)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_ERROR) { fprintf(stderr, "Expected error for broken geopackage zoom1, got %i\n", ret); sqlite3_free (err_msg); return -11; } if (strcmp(err_msg, "gpkgGetNormalRow: could not parse result (corrupt GeoPackage?)") != 0) { fprintf (stderr, "Unexpected error message for broken geopackage zoom1: %s\n", err_msg); sqlite3_free(err_msg); return -12; } sqlite3_free(err_msg); ret = sqlite3_close (db_handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle)); return -100; } spatialite_cleanup_ex(cache); return 0; } libspatialite-4.1.1/test/inspire-data-example.xml0000664000175000017500000004265612163502133017011 00000000000000 029097fd-2ef2-487c-a5ca-6ec7a3dbac53 eng 024027fd-3ef2-487c-a8ca-6ec8a3dfac57 dataset SDI Unit, Institute for Environment & Sustainability, Joint Research Centre image2000@jrc.it pointOfContact 2005-04-18 ISO19115 2003/Cor.1:2006 Image2000 Product 1 (nl2) Multispectral 2007-09-15 creation 2007-11-15T11:15:00 revision 2007-09-15 publication image2000_1_nl2_multi http://image2000.jrc.it IMAGE2000 product 1 individual orthorectified scenes. SDI Unit, Institute for Environment and Sustainability, Joint Research Centre image2000@jrc.it custodian Land cover GemetInspireTheme 2008-06-01 publication no conditions apply otherRestrictions no limitations 25.0 50000 eng imageryBaseMapsEarthCover 3.93 7.57 52.10 54.10 1977-03-10T11:45:30 2005-01-15T09:10:00 http://image2000.jrc.it/ dataset INSPIRE_D2.8.I.1 2011-05-15 publication See the referenced specification true Product 1 scenes correspond to the path/row of the Landsat orbit. All Image2000 product 1 scenes are ortho-corrected. The ortho-correction method consisted of using a physical model of the satellite's flight during the scene acquisition, which was then complemented with Ground Control Points (GCP's) and a Digital Elevation Model (DEM). Map projection information is attached to the model. The resulting product has excellent accuracy between the spectral bands, sub-pixel location accuracy throughout the image and excellent preservation of radiometric characteristics. The geometric correction was done on a Country basis - according to the relevant national map projection system(s). A rigorous orbital model was used. Control point measurements were used in a weighted least squares adjustment to estimate optimal values for the orbital and attitude parameters. The adjusted parameters were used to resample the raw scene by cubic convolution in a single step, instead of the usual two step procedure of first producing a system-corrected scene and then resampling a second time, thus causing unnecessary smoothing of the data. The final pixel size after resampling is 12.5m for the panchromatic band, 25m for the multispectral bands and 60m for the thermal band. All the orthorectified scenes are well within the requirement of Root Mean Square Error (RMSE) > 25m. libspatialite-4.1.1/test/check_virtualtable1.c0000664000175000017500000003011412163502133016320 00000000000000/* check_virtualtable1.c -- SpatiaLite Test Case Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Ahmadou Dicko Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #define _GNU_SOURCE #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" #ifdef _WIN32 #include "asprintf4win.h" #endif int main (int argc, char *argv[]) { #ifndef OMIT_ICONV /* only if ICONV is supported */ sqlite3 *db_handle = NULL; char *sql_statement; int ret; char *err_msg = NULL; char **results; int rows; int columns; void *cache = spatialite_alloc_connection(); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } spatialite_init_ex (db_handle, cache, 0); ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE places USING VirtualText(\"testcase1.csv\", UTF-8, 0, POINT, DOUBLEQUOTE);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VirtualText error: %s\n", err_msg); sqlite3_free (err_msg); return -2; } asprintf(&sql_statement, "select col003, col005, col006, col008 from places WHERE col003 = \"Canal Creek\";"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free(sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -10; } if ((rows != 2) || (columns != 4)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -11; } if (strcmp(results[0], "COL003") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -12; } if (strcmp(results[4], "Canal Creek") != 0) { fprintf (stderr, "Unexpected error: name4() bad result: %s.\n", results[4]); return -13; } if (strncmp(results[5], "-27.86667", 9) != 0) { fprintf (stderr, "Unexpected error: lat1() bad result: %s.\n", results[5]); return -14; } if (strncmp(results[6], "151.51667", 9) != 0) { fprintf (stderr, "Unexpected error: lon2() bad result: %s.\n", results[6]); return -15; } if (strcmp(results[8], "Canal Creek") != 0) { fprintf (stderr, "Unexpected error: name8() bad result: %s.\n", results[8]); return -16; } sqlite3_free_table (results); ret = sqlite3_exec (db_handle, "BEGIN;", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "BEGIN error: %s\n", err_msg); sqlite3_free (err_msg); return -21; } ret = sqlite3_exec (db_handle, "DELETE FROM places WHERE col015 > 100000;", NULL, NULL, &err_msg); if (ret != SQLITE_READONLY) { fprintf (stderr, "UPDATE error: %s\n", err_msg); sqlite3_free (err_msg); return -21; } sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "ROLLBACK;", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "ROLLBACK error: %s\n", err_msg); sqlite3_free (err_msg); return -22; } ret = sqlite3_get_table (db_handle, "SELECT ROWNO, col003, col015 FROM places WHERE col015 > 100000", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -23; } if ((rows != 1) || (columns != 3)) { fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns); return -24; } sqlite3_free_table (results); ret = sqlite3_get_table (db_handle, "SELECT col002 FROM places WHERE col001 > 2172517 AND col001 <= 2172519", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -25; } if ((rows != 2) || (columns != 1)) { fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns); return -26; } sqlite3_free_table (results); ret = sqlite3_get_table (db_handle, "SELECT col002 FROM places WHERE col001 >= 2172517 AND col001 < 2172519", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -27; } if ((rows != 2) || (columns != 1)) { fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns); return -28; } sqlite3_free_table (results); ret = sqlite3_get_table (db_handle, "SELECT col002 FROM places WHERE col001 = 2172517", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -29; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns); return -30; } sqlite3_free_table (results); ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE col002 > 'Canberra' AND col002 <= 'Canbrae'", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -31; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns); return -32; } sqlite3_free_table (results); ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE col002 >= 'Canberra' AND col002 < 'Canbrae'", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -33; } if ((rows != 2) || (columns != 1)) { fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns); return -34; } sqlite3_free_table (results); ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE col002 = 'Canbrae'", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -29; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns); return -30; } sqlite3_free_table (results); ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE ROWNO = 5", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -31; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns); return -32; } sqlite3_free_table (results); ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE col006 > 149.0 AND col006 <= 149.1", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -33; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns); return -34; } sqlite3_free_table (results); ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE col006 >= 149.1 AND col006 < 149.2", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -35; } if ((rows != 2) || (columns != 1)) { fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns); return -36; } sqlite3_free_table (results); ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE col006 = 149.1", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -37; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns); return -38; } sqlite3_free_table (results); ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE col006 >= 149 AND col006 < 150", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -39; } if ((rows != 4) || (columns != 1)) { fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns); return -40; } sqlite3_free_table (results); ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE col006 > 149 AND col006 <= 150", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -41; } if ((rows != 4) || (columns != 1)) { fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns); return -42; } sqlite3_free_table (results); ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE col012 = 23940.0", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -43; } if ((rows != 2) || (columns != 1)) { fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns); return -44; } sqlite3_free_table (results); ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE col012 >= 20000.0 AND col012 < 24000.0", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -45; } if ((rows != 2) || (columns != 1)) { fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns); return -46; } sqlite3_free_table (results); ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE col012 > 20000.0 AND col012 <= 24000.0", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -45; } if ((rows != 2) || (columns != 1)) { fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns); return -46; } sqlite3_free_table (results); ret = sqlite3_exec (db_handle, "DROP TABLE places;", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE error: %s\n", err_msg); sqlite3_free (err_msg); return -47; } sqlite3_close (db_handle); spatialite_cleanup_ex (cache); #endif /* end ICONV conditional */ return 0; } libspatialite-4.1.1/test/check_virtualtable6.c0000664000175000017500000002005612163502133016331 00000000000000/* check_virtualtable6.c -- SpatiaLite Test Case Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #define _GNU_SOURCE #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" struct test_step { const char *sql; const int num_rows; }; struct test_step steps[] = { { "select DATUM, Geometry from shapetest WHERE DATUM = 2450514.5;", 18 }, { "select DATUM from shapetest WHERE DATUM < 2450514.5;", 0 }, { "select DATUM from shapetest WHERE DATUM > 2450514.5;", 0 }, { "select DATUM from shapetest WHERE DATUM >= 2450514.5;", 18 }, { "select DATUM from shapetest WHERE DATUM <= 2450514.5;", 18 }, { "select DATUM from shapetest WHERE DATUM = 2450514.5;", 18 }, { "select Length, HOEHE from shapetest WHERE HOEHE = 0.0;", 18 }, { "select Length, HOEHE from shapetest WHERE HOEHE = 1.0;", 0 }, { "select Length, HOEHE, Geometry from shapetest WHERE HOEHE != 0.0;", 0 }, { "select Length, HOEHE from shapetest WHERE Length > 0.0;", 18 }, { "select Length, HOEHE from shapetest WHERE Length >= 0.0;", 18 }, { "select Length, HOEHE from shapetest WHERE Length <= 0.0;", 0 }, { "select Length, HOEHE from shapetest WHERE Length > 1.0;", 0 }, { "select Length, HOEHE from shapetest WHERE Length > 0.1;", 10 }, { "select Length, HOEHE from shapetest WHERE Length < 0.1;", 8 }, { "select Length, HOEHE from shapetest WHERE Length >= 0.1;", 10 }, { "select Length, HOEHE from shapetest WHERE HOEHE = 0;", 18 }, { "select Length, HOEHE from shapetest WHERE HOEHE >= 0;", 18 }, { "select Length, HOEHE from shapetest WHERE HOEHE <= 0;", 18 }, { "select Length, HOEHE from shapetest WHERE HOEHE > 0;", 0 }, { "select Length, HOEHE from shapetest WHERE HOEHE < 0;", 0 }, { "select Length, HOEHE from shapetest WHERE HOEHE = 1;", 0 }, { "select Length, HOEHE from shapetest WHERE HOEHE <= 1;", 18 }, { "select Length, HOEHE from shapetest WHERE HOEHE >= 1;", 0 }, { "select Length, HOEHE from shapetest WHERE HOEHE < 1;", 18 }, { "select Length, HOEHE from shapetest WHERE HOEHE > -1;", 18 }, { "select Length, HOEHE from shapetest WHERE HOEHE < -1;", 0 }, { "select Length, HOEHE from shapetest WHERE HOEHE <= -1;", 0 }, { "select * from shapetest LIMIT 5 OFFSET 2;", 5 }, { NULL, 0 } }; int main (int argc, char *argv[]) { #ifndef OMIT_ICONV /* only if ICONV is supported */ sqlite3 *db_handle = NULL; int ret; char *err_msg = NULL; int i; char **results; int rows; int columns; void *cache = spatialite_alloc_connection(); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } spatialite_init_ex (db_handle, cache, 0); ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE shapetest USING VirtualShape('shp/merano-3d/roads', CP1252, 25832);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VirtualShape error: %s\n", err_msg); sqlite3_free (err_msg); return -2; } ret = sqlite3_exec (db_handle, "DROP TABLE shapetest;", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE error: %s\n", err_msg); sqlite3_free (err_msg); return -3; } ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE shapetest USING VirtualShape(\"shp/merano-3d/roads\", 'CP1252', -1);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VirtualShape error: %s\n", err_msg); sqlite3_free (err_msg); return -4; } ret = sqlite3_exec (db_handle, "DROP TABLE shapetest;", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE error: %s\n", err_msg); sqlite3_free (err_msg); return -5; } ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE unquoted USING VirtualShape(shapetest1, UTF8, -1);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VirtualShape error: %s\n", err_msg); sqlite3_free (err_msg); return -6; } ret = sqlite3_exec (db_handle, "DROP TABLE unquoted;", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE error: %s\n", err_msg); sqlite3_free (err_msg); return -7; } ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE shapetest USING VirtualShape('shp/merano-3d/roads', \"CP1252\", 25832);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VirtualShape error: %s\n", err_msg); sqlite3_free (err_msg); return -8; } for (i = 0; steps[i].sql; ++i) { ret = sqlite3_get_table (db_handle, steps[i].sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -9; } if (rows != steps[i].num_rows) { fprintf (stderr, "Unexpected num of rows for test %i: %i.\n", i, rows); return -10; } sqlite3_free_table (results); } ret = sqlite3_exec (db_handle, "DROP TABLE shapetest;", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE error: %s\n", err_msg); sqlite3_free (err_msg); return -11; } ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE nosuchfile USING VirtualShape(nosuchfile, UTF8, -1);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VirtualShape error: %s\n", err_msg); sqlite3_free (err_msg); return -12; } ret = sqlite3_exec (db_handle, "DROP TABLE nosuchfile;", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE error: %s\n", err_msg); sqlite3_free (err_msg); return -13; } ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE toofewargs USING VirtualShape(\"shapetest1\", UTF8);", NULL, NULL, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "VirtualShape unexpected result: %i\n", ret); return -14; } sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE toomanyargs USING VirtualShape(\"shapetest1\", UTF8, 4386, 1);", NULL, NULL, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "VirtualShape unexpected result: %i\n", ret); return -15; } sqlite3_free (err_msg); sqlite3_close (db_handle); spatialite_cleanup_ex (cache); #endif /* end ICONV conditional */ return 0; } libspatialite-4.1.1/test/check_fdo2.c0000664000175000017500000007635612163502133014415 00000000000000/* check_fdo2.c -- SpatiaLite Test Case Author: Sandro Furieri ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include "sqlite3.h" #include "spatialite.h" int main (int argc, char *argv[]) { int ret; sqlite3 *handle; char *err_msg = NULL; const char *sql; char **results; int rows; int columns; void *cache = spatialite_alloc_connection(); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); sqlite3_close(handle); return -1; } spatialite_init_ex (handle, cache, 0); /* FDO initialization */ sql = "SELECT InitFDOSpatialMetadata()"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -2; } /* creating a Point 2D WKT table */ sql = "CREATE TABLE pt_2d_wkt (id INTEGER, name TEXT, value DOUBLE)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -3; } sql = "SELECT AddFDOGeometryColumn('pt_2d_wkt', 'g', -1, 1, 2, 'WKT')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -4; } /* creating a Point 3D WKT table */ sql = "CREATE TABLE pt_3d_wkt (id INTEGER, pic1 BLOB, pic2 BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -5; } sql = "SELECT AddFDOGeometryColumn('pt_3d_wkt', 'g', -1, 1, 3, 'WKT')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -6; } /* creating a Point 2D WKB table */ sql = "CREATE TABLE pt_2d_wkb (id INTEGER)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -6; } sql = "SELECT AddFDOGeometryColumn('pt_2d_wkb', 'g', -1, 1, 2, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -7; } /* creating a Point 3D WKB table */ sql = "CREATE TABLE pt_3d_wkb (id INTEGER)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -8; } sql = "SELECT AddFDOGeometryColumn('pt_3d_wkb', 'g', -1, 1, 3, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -9; } /* creating a Point 3D WKB table */ sql = "CREATE TABLE pt_3d_spl (id INTEGER)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -10; } sql = "SELECT AddFDOGeometryColumn('pt_3d_spl', 'g', -1, 1, 3, 'SPATIALITE')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -11; } /* creating a Linestring 3D WKT table */ sql = "CREATE TABLE ln_3d_wkt (id INTEGER)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -12; } sql = "SELECT AddFDOGeometryColumn('ln_3d_wkt', 'g', -1, 2, 3, 'WKT')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -13; } /* creating a Linestring 3D WKB table */ sql = "CREATE TABLE ln_3d_wkb (id INTEGER)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -14; } sql = "SELECT AddFDOGeometryColumn('ln_3d_wkb', 'g', -1, 2, 3, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -15; } /* creating a Polygon 3D WKT table */ sql = "CREATE TABLE pg_3d_wkt (id INTEGER)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -16; } sql = "SELECT AddFDOGeometryColumn('pg_3d_wkt', 'g', -1, 3, 3, 'WKT')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -17; } /* creating a Polygon 3D WKB table */ sql = "CREATE TABLE pg_3d_wkb (id INTEGER)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -18; } sql = "SELECT AddFDOGeometryColumn('pg_3d_wkb', 'g', -1, 3, 3, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -19; } /* creating a MultiPoint 3D WKT table */ sql = "CREATE TABLE mpt_3d_wkt (id INTEGER)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -20; } sql = "SELECT AddFDOGeometryColumn('mpt_3d_wkt', 'g', -1, 4, 3, 'WKT')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -21; } /* creating a MultiPoint 3D WKB table */ sql = "CREATE TABLE mpt_3d_wkb (id INTEGER)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -22; } sql = "SELECT AddFDOGeometryColumn('mpt_3d_wkb', 'g', -1, 4, 3, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -23; } /* creating a MultiLinestring 3D WKT table */ sql = "CREATE TABLE mln_3d_wkt (id INTEGER)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -24; } sql = "SELECT AddFDOGeometryColumn('mln_3d_wkt', 'g', -1, 5, 3, 'WKT')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -25; } /* creating a MultiLinestring 3D WKB table */ sql = "CREATE TABLE mln_3d_wkb (id INTEGER)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -26; } sql = "SELECT AddFDOGeometryColumn('mln_3d_wkb', 'g', -1, 5, 3, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -27; } /* creating a MultiPolygon 3D WKT table */ sql = "CREATE TABLE mpg_3d_wkt (id INTEGER)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -28; } sql = "SELECT AddFDOGeometryColumn('mpg_3d_wkt', 'g', -1, 6, 3, 'WKT')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -29; } /* creating a MultiPolygon 3D WKB table */ sql = "CREATE TABLE mpg_3d_wkb (id INTEGER)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -30; } sql = "SELECT AddFDOGeometryColumn('mpg_3d_wkb', 'g', -1, 6, 3, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -31; } /* creating a GeometryCollection 3D WKT table */ sql = "CREATE TABLE gcoll_3d_wkt (id INTEGER)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -32; } sql = "SELECT AddFDOGeometryColumn('gcoll_3d_wkt', 'g', -1, 7, 3, 'WKT')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -33; } /* creating a GeometryCollection 3D WKB table */ sql = "CREATE TABLE gcoll_3d_wkb (id INTEGER)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -34; } sql = "SELECT AddFDOGeometryColumn('gcoll_3d_wkb', 'g', -1, 7, 3, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -35; } /* FDO start-up */ sql = "SELECT AutoFDOStart()"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -36; } /* Inserting into pt_2d_wkt */ sql = "INSERT INTO fdo_pt_2d_wkt (id, name, value, g) VALUES (1, 'alpha', 0.1, GeomFromText('POINT(1 2)', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -37; } /* Updating pt_2d_wkt */ sql = "UPDATE fdo_pt_2d_wkt SET name = 'beta', value = 0.2, g = GeomFromText('POINT(10 20)', -1) WHERE id = 1"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -38; } /* Deleting form pt_2d_wkt */ sql = "DELETE FROM fdo_pt_2d_wkt"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -39; } /* Inserting into pt_3d_wkt */ sql = "INSERT INTO fdo_pt_3d_wkt (id, pic1, pic2, g) VALUES (1, zeroblob(16), NULL, GeomFromText('POINTZ(1 2 3)', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -40; } /* Updating pt_3d_wkt */ sql = "UPDATE fdo_pt_3d_wkt SET pic1 = NULL, pic2 = zeroblob(8), g = GeomFromText('POINTZ(10 20 30)', -1) WHERE id = 1"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -41; } /* Inserting into pt_2d_wkb */ sql = "INSERT INTO fdo_pt_2d_wkb (id, g) VALUES (1, GeomFromText('POINT(1 2)', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -42; } /* Updating pt_2d_wkb */ sql = "UPDATE fdo_pt_2d_wkb SET g = GeomFromText('POINT(10 20)', -1) WHERE id = 1"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -43; } /* Inserting into pt_3d_wkb */ sql = "INSERT INTO fdo_pt_3d_wkb (id, g) VALUES (1, GeomFromText('POINTZ(1 2 3)', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -44; } /* Updating pt_3d_wkb */ sql = "UPDATE fdo_pt_3d_wkb SET g = GeomFromText('POINTZ(10 20 30)', -1) WHERE id = 1"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -45; } /* Inserting into pt_3d_spl */ sql = "INSERT INTO fdo_pt_3d_spl (id, g) VALUES (1, GeomFromText('POINTZ(1 2 3)', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -46; } /* Updating pt_3d_spl */ sql = "UPDATE fdo_pt_3d_spl SET g = GeomFromText('POINTZ(10 20 30)', -1) WHERE id = 1"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -47; } /* Inserting into ln_3d_wkt */ sql = "INSERT INTO fdo_ln_3d_wkt (id, g) VALUES (1, GeomFromText('LINESTRINGZ(1 2 3, 4 5 6)', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -48; } /* Inserting into ln_3d_wkb */ sql = "INSERT INTO fdo_ln_3d_wkb (id, g) VALUES (1, GeomFromText('LINESTRINGZ(1 2 3, 4 5 6)', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -49; } /* Inserting into ln_3d_wkb */ sql = "INSERT INTO fdo_ln_3d_wkb (id, g) VALUES (2, GeomFromText('LINESTRINGM(1 2 10, 4 5 11)', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -50; } /* Inserting into ln_3d_wkb */ sql = "INSERT INTO fdo_ln_3d_wkb (id, g) VALUES (3, GeomFromText('LINESTRINGZM(1 2 3 10, 4 5 6 11)', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -51; } /* Inserting into ln_3d_wkb */ sql = "INSERT INTO fdo_ln_3d_wkb (id, g) VALUES (4, GeomFromText('LINESTRING(1 2, 4 5)', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -52; } /* Inserting into pg_3d_wkt */ sql = "INSERT INTO fdo_pg_3d_wkt (id, g) VALUES (1, GeomFromText('POLYGONZ((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 1 12 102, 11 12 103, 11 11 100))', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -53; } /* Inserting into pg_3d_wkb */ sql = "INSERT INTO fdo_pg_3d_wkb (id, g) VALUES (1, GeomFromText('POLYGONZ((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 1 12 102, 11 12 103, 11 11 100))', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -54; } /* Inserting into pg_3d_wkb */ sql = "INSERT INTO fdo_pg_3d_wkb (id, g) VALUES (2, GeomFromText('POLYGONZM((10 10 100 10, 15 10 101 11, 15 15 102 12, 10 15 103 13, 10 10 100 10), (11 11 100 10, 12 11 101 11, 1 12 102 12, 11 12 103 13, 11 11 100 10))', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -55; } /* Inserting into pg_3d_wkb */ sql = "INSERT INTO fdo_pg_3d_wkb (id, g) VALUES (3, GeomFromText('POLYGONM((10 10 10, 15 10 11, 15 15 12, 10 15 13, 10 10 10), (11 11 10, 12 11 11, 1 12 12, 11 12 13, 11 11 10))', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -56; } /* Inserting into pg_3d_wkb */ sql = "INSERT INTO fdo_pg_3d_wkb (id, g) VALUES (4, GeomFromText('POLYGON((10 10, 15 10, 15 15, 10 15, 10 10), (11 11, 12 11, 1 12, 11 12, 11 11))', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -57; } /* Inserting into mpt_3d_wkt */ sql = "INSERT INTO fdo_mpt_3d_wkt (id, g) VALUES (1, GeomFromText('MULTIPOINTZ(1 2 3, 4 5 6)', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -58; } /* Inserting into mpt_3d_wkb */ sql = "INSERT INTO fdo_mpt_3d_wkb (id, g) VALUES (1, GeomFromText('MULTIPOINTZ(1 2 3, 4 5 6)', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -59; } /* Inserting into mln_3d_wkt */ sql = "INSERT INTO fdo_mln_3d_wkt (id, g) VALUES (1, GeomFromText('MULTILINESTRINGZ((1 2 3, 4 5 6), (7 8 9, 10 11 12))', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -60; } /* Inserting into mln_3d_wkb */ sql = "INSERT INTO fdo_mln_3d_wkb (id, g) VALUES (1, GeomFromText('MULTILINESTRINGZ((1 2 3, 4 5 6), (7 8 9, 10 11 12))', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -61; } /* Inserting into mpg_3d_wkt */ sql = "INSERT INTO fdo_mpg_3d_wkt (id, g) VALUES (1, GeomFromText('MULTIPOLYGONZ(((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 1 12 102, 11 12 103, 11 11 100)), ((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -62; } /* Inserting into mpg_3d_wkb */ sql = "INSERT INTO fdo_mpg_3d_wkb (id, g) VALUES (1, GeomFromText('MULTIPOLYGONZ(((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 1 12 102, 11 12 103, 11 11 100)), ((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -63; } /* Inserting into gcoll_3d_wkt */ sql = "INSERT INTO fdo_gcoll_3d_wkt (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTIONZ(POINTZ(10 10 100), LINESTRINGZ(5 5 10, 6 6 11), POLYGONZ((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -64; } /* Inserting into gcoll_3d_wkb */ sql = "INSERT INTO fdo_gcoll_3d_wkb (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTIONZ(POINZ(10 10 100), LINESTRINGZ(5 5 10, 6 6 11), POLYGONZ((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -65; } /* checking MultiPoint 3D WKT */ sql = "SELECT AsText(g) FROM fdo_mpt_3d_wkt"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -66; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -67; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -68; } if (strcmp(results[1], "MULTIPOINT Z(1 2 3, 4 5 6)") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -69; } sqlite3_free_table (results); /* checking MultiLinestring 3D WKT */ sql = "SELECT AsText(g) FROM fdo_mln_3d_wkt"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -70; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -71; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -72; } if (strcmp(results[1], "MULTILINESTRING Z((1 2 3, 4 5 6), (7 8 9, 10 11 12))") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -73; } sqlite3_free_table (results); /* checking MultiPolygon 3D WKT */ sql = "SELECT AsText(g) FROM fdo_mpg_3d_wkt"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -74; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -75; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -76; } if (strcmp(results[1], "MULTIPOLYGON Z(((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 1 12 102, 11 12 103, 11 11 100)), ((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -77; } sqlite3_free_table (results); /* checking GeometryCollection 3D WKT */ sql = "SELECT AsText(g) FROM fdo_gcoll_3d_wkt"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -78; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -79; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -80; } if (strcmp(results[1], "GEOMETRYCOLLECTION Z(POINT Z(10 10 100), LINESTRING Z(5 5 10, 6 6 11), POLYGON Z((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -81; } sqlite3_free_table (results); /* dropping an FDO virtual table */ sql = "DROP TABLE fdo_mpt_3d_wkt"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -82; } /* discarding an FDO Geometry column */ sql = "SELECT DiscardFDOGeometryColumn('fdo_mpt_3d_wkt', 'g')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -83; } sql = "SELECT DiscardFDOGeometryColumn(1, 'g')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -84; } sql = "SELECT DiscardFDOGeometryColumn('mpt_3d_wkt', 2)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -85; } /* recovering an FDO Geometry column */ sql = "SELECT RecoverFDOGeometryColumn('mpt_3d_wkt', 'g', -1, 4, 3, 'WKT')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -86; } /* FDO shut-down */ sql = "SELECT AutoFDOStop()"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -66; } sql = "SELECT AddFDOGeometryColumn(1, 'g', -1, 7, 3, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -67; } sql = "SELECT AddFDOGeometryColumn('a', 2, -1, 7, 3, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -68; } sql = "SELECT AddFDOGeometryColumn('a', 'g', -1.5, 7, 3, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -69; } sql = "SELECT AddFDOGeometryColumn('a', 'g', -1, 'a', 3, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -70; } sql = "SELECT AddFDOGeometryColumn('a', 'g', -1, 7, 'a', 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -71; } sql = "SELECT AddFDOGeometryColumn('a', 'g', -1, 17, 3, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -72; } sql = "SELECT AddFDOGeometryColumn('a', 'g', -1, 7, 13, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -73; } sql = "SELECT AddFDOGeometryColumn('a', 'g', -1, 7, 3, 'DUMMY')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -74; } sql = "SELECT RecoverFDOGeometryColumn(1, 'g', -1, 7, 3, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -75; } sql = "SELECT RecoverFDOGeometryColumn('a', 2, -1, 7, 3, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -76; } sql = "SELECT RecoverFDOGeometryColumn('a', 'g', -1.5, 7, 3, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -77; } sql = "SELECT RecoverFDOGeometryColumn('a', 'g', -1, 'a', 3, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -78; } sql = "SELECT RecoverFDOGeometryColumn('a', 'g', -1, 7, 'a', 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -79; } sql = "SELECT RecoverFDOGeometryColumn('a', 'g', -1, 17, 3, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -80; } sql = "SELECT RecoverFDOGeometryColumn('a', 'g', -1, 7, 13, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -81; } sql = "SELECT RecoverFDOGeometryColumn('a', 'g', -1, 7, 3, 'DUMMY')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -82; } ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -83; } spatialite_cleanup_ex (cache); return 0; } libspatialite-4.1.1/test/f06.dxf0000664000175000017500000002442712163502133013350 00000000000000 0 SECTION 2 HEADER 9 $EXTMIN 10 663365.734 20 5165233.713 30 -6.270 9 $EXTMAX 10 669267.494 20 5173336.006 30 828.070 9 $LUPREC 70 7 0 ENDSEC 0 SECTION 2 TABLES 0 TABLE 2 LAYER 70 1 0 LAYER 2 SHP_POLY 70 64 62 7 6 CONTINUOUS 0 ENDTAB 0 ENDSEC 0 SECTION 2 BLOCKS 0 BLOCK 8 SHP_POLY 2 BLK000001 70 64 10 666648.328 20 5168231.314 30 284.570 0 POLYLINE 8 SHP_POLY 66 1 70 9 0 VERTEX 8 SHP_POLY 10 666648.328 20 5168231.314 30 284.570 70 32 0 VERTEX 8 SHP_POLY 10 666652.308 20 5168235.614 30 282.610 70 32 0 VERTEX 8 SHP_POLY 10 666651.978 20 5168241.614 30 282.570 70 32 0 VERTEX 8 SHP_POLY 10 666651.408 20 5168251.684 30 279.890 70 32 0 VERTEX 8 SHP_POLY 10 666651.268 20 5168254.114 30 282.570 70 32 0 VERTEX 8 SHP_POLY 10 666650.858 20 5168261.574 30 284.330 70 32 0 VERTEX 8 SHP_POLY 10 666651.588 20 5168262.864 30 284.310 70 32 0 VERTEX 8 SHP_POLY 10 666657.392 20 5168270.448 30 284.001 70 32 0 VERTEX 8 SHP_POLY 10 666660.794 20 5168269.261 30 283.990 70 32 0 VERTEX 8 SHP_POLY 10 666655.568 20 5168262.864 30 284.350 70 32 0 VERTEX 8 SHP_POLY 10 666654.568 20 5168260.824 30 284.430 70 32 0 VERTEX 8 SHP_POLY 10 666654.318 20 5168259.644 30 284.430 70 32 0 VERTEX 8 SHP_POLY 10 666654.308 20 5168257.774 30 284.450 70 32 0 VERTEX 8 SHP_POLY 10 666654.578 20 5168250.864 30 284.450 70 32 0 VERTEX 8 SHP_POLY 10 666655.858 20 5168233.744 30 284.810 70 32 0 VERTEX 8 SHP_POLY 10 666653.298 20 5168229.974 30 284.790 70 32 0 VERTEX 8 SHP_POLY 10 666653.198 20 5168226.764 30 284.710 70 32 0 VERTEX 8 SHP_POLY 10 666653.708 20 5168220.585 30 284.590 70 32 0 VERTEX 8 SHP_POLY 10 666661.418 20 5168215.005 30 285.050 70 32 0 VERTEX 8 SHP_POLY 10 666668.867 20 5168215.474 30 285.210 70 32 0 VERTEX 8 SHP_POLY 10 666671.327 20 5168218.824 30 285.170 70 32 0 VERTEX 8 SHP_POLY 10 666672.257 20 5168218.894 30 284.970 70 32 0 VERTEX 8 SHP_POLY 10 666674.767 20 5168219.074 30 284.970 70 32 0 VERTEX 8 SHP_POLY 10 666673.937 20 5168218.024 30 284.970 70 32 0 VERTEX 8 SHP_POLY 10 666674.917 20 5168217.094 30 284.970 70 32 0 VERTEX 8 SHP_POLY 10 666675.207 20 5168213.044 30 284.980 70 32 0 VERTEX 8 SHP_POLY 10 666674.367 20 5168211.995 30 284.980 70 32 0 VERTEX 8 SHP_POLY 10 666675.347 20 5168211.075 30 284.980 70 32 0 VERTEX 8 SHP_POLY 10 666675.627 20 5168207.045 30 284.980 70 32 0 VERTEX 8 SHP_POLY 10 666674.787 20 5168205.995 30 284.980 70 32 0 VERTEX 8 SHP_POLY 10 666675.767 20 5168205.065 30 284.990 70 32 0 VERTEX 8 SHP_POLY 10 666676.067 20 5168200.865 30 284.990 70 32 0 VERTEX 8 SHP_POLY 10 666679.857 20 5168196.155 30 284.990 70 32 0 VERTEX 8 SHP_POLY 10 666679.407 20 5168201.105 30 284.950 70 32 0 VERTEX 8 SHP_POLY 10 666683.607 20 5168201.405 30 284.810 70 32 0 VERTEX 8 SHP_POLY 10 666684.237 20 5168196.145 30 284.830 70 32 0 VERTEX 8 SHP_POLY 10 666669.687 20 5168178.795 30 285.030 70 32 0 VERTEX 8 SHP_POLY 10 666670.337 20 5168169.915 30 285.110 70 32 0 VERTEX 8 SHP_POLY 10 666692.737 20 5168171.275 30 284.210 70 32 0 VERTEX 8 SHP_POLY 10 666692.937 20 5168168.645 30 290.710 70 32 0 VERTEX 8 SHP_POLY 10 666686.967 20 5168168.005 30 284.090 70 32 0 VERTEX 8 SHP_POLY 10 666670.617 20 5168166.875 30 285.170 70 32 0 VERTEX 8 SHP_POLY 10 666667.677 20 5168166.675 30 285.170 70 32 0 VERTEX 8 SHP_POLY 10 666664.867 20 5168164.475 30 285.170 70 32 0 VERTEX 8 SHP_POLY 10 666664.207 20 5168173.905 30 283.640 70 32 0 VERTEX 8 SHP_POLY 10 666664.047 20 5168176.155 30 283.640 70 32 0 VERTEX 8 SHP_POLY 10 666662.977 20 5168177.415 30 284.980 70 32 0 VERTEX 8 SHP_POLY 10 666651.477 20 5168187.515 30 284.870 70 32 0 VERTEX 8 SHP_POLY 10 666650.438 20 5168205.285 30 284.950 70 32 0 VERTEX 8 SHP_POLY 10 666650.798 20 5168206.205 30 284.930 70 32 0 VERTEX 8 SHP_POLY 10 666650.218 20 5168220.295 30 284.550 70 32 0 VERTEX 8 SHP_POLY 10 666649.868 20 5168229.904 30 284.510 70 32 0 VERTEX 8 SHP_POLY 10 666648.328 20 5168231.314 30 284.570 70 32 0 SEQEND 8 SHP_POLY 0 POLYLINE 8 SHP_POLY 66 1 70 9 0 VERTEX 8 SHP_POLY 10 666654.238 20 5168211.325 30 284.930 70 32 0 VERTEX 8 SHP_POLY 10 666653.328 20 5168209.745 30 284.930 70 32 0 VERTEX 8 SHP_POLY 10 666654.717 20 5168188.655 30 284.890 70 32 0 VERTEX 8 SHP_POLY 10 666664.027 20 5168180.565 30 285.030 70 32 0 VERTEX 8 SHP_POLY 10 666666.977 20 5168180.685 30 285.030 70 32 0 VERTEX 8 SHP_POLY 10 666670.247 20 5168185.185 30 284.890 70 32 0 VERTEX 8 SHP_POLY 10 666663.647 20 5168191.765 30 284.910 70 32 0 VERTEX 8 SHP_POLY 10 666667.377 20 5168196.975 30 284.910 70 32 0 VERTEX 8 SHP_POLY 10 666670.647 20 5168200.655 30 284.950 70 32 0 VERTEX 8 SHP_POLY 10 666671.097 20 5168202.175 30 284.970 70 32 0 VERTEX 8 SHP_POLY 10 666670.417 20 5168208.475 30 284.970 70 32 0 VERTEX 8 SHP_POLY 10 666665.057 20 5168212.055 30 284.930 70 32 0 VERTEX 8 SHP_POLY 10 666654.238 20 5168211.325 30 284.930 70 32 0 SEQEND 8 SHP_POLY 0 POLYLINE 8 SHP_POLY 66 1 70 9 0 VERTEX 8 SHP_POLY 10 666673.417 20 5168199.475 30 285.010 70 32 0 VERTEX 8 SHP_POLY 10 666671.517 20 5168196.865 30 285.030 70 32 0 VERTEX 8 SHP_POLY 10 666672.017 20 5168189.235 30 285.050 70 32 0 VERTEX 8 SHP_POLY 10 666674.107 20 5168189.265 30 285.070 70 32 0 VERTEX 8 SHP_POLY 10 666677.817 20 5168193.665 30 285.030 70 32 0 VERTEX 8 SHP_POLY 10 666673.417 20 5168199.475 30 285.010 70 32 0 SEQEND 8 SHP_POLY 0 ENDBLK 0 BLOCK 8 SHP_POLY 2 BLK000002 70 64 10 666583.381 20 5168444.861 30 286.970 0 POLYLINE 8 SHP_POLY 66 1 70 9 0 VERTEX 8 SHP_POLY 10 666583.381 20 5168444.861 30 286.970 70 32 0 VERTEX 8 SHP_POLY 10 666589.780 20 5168417.361 30 288.090 70 32 0 VERTEX 8 SHP_POLY 10 666586.980 20 5168410.462 30 287.870 70 32 0 VERTEX 8 SHP_POLY 10 666586.580 20 5168406.662 30 287.770 70 32 0 VERTEX 8 SHP_POLY 10 666586.880 20 5168402.662 30 287.750 70 32 0 VERTEX 8 SHP_POLY 10 666587.580 20 5168398.662 30 287.810 70 32 0 VERTEX 8 SHP_POLY 10 666589.680 20 5168394.462 30 287.810 70 32 0 VERTEX 8 SHP_POLY 10 666593.180 20 5168390.462 30 288.010 70 32 0 VERTEX 8 SHP_POLY 10 666593.580 20 5168386.962 30 286.770 70 32 0 VERTEX 8 SHP_POLY 10 666592.980 20 5168389.462 30 287.090 70 32 0 VERTEX 8 SHP_POLY 10 666590.280 20 5168392.562 30 286.890 70 32 0 VERTEX 8 SHP_POLY 10 666588.680 20 5168395.162 30 286.830 70 32 0 VERTEX 8 SHP_POLY 10 666587.080 20 5168398.362 30 286.850 70 32 0 VERTEX 8 SHP_POLY 10 666586.180 20 5168402.462 30 286.590 70 32 0 VERTEX 8 SHP_POLY 10 666585.980 20 5168407.062 30 286.570 70 32 0 VERTEX 8 SHP_POLY 10 666586.370 20 5168410.662 30 286.590 70 32 0 VERTEX 8 SHP_POLY 10 666587.880 20 5168413.962 30 286.650 70 32 0 VERTEX 8 SHP_POLY 10 666589.180 20 5168417.361 30 286.650 70 32 0 VERTEX 8 SHP_POLY 10 666582.781 20 5168444.561 30 286.790 70 32 0 VERTEX 8 SHP_POLY 10 666583.381 20 5168444.861 30 286.970 70 32 0 SEQEND 8 SHP_POLY 0 ENDBLK 0 BLOCK 8 SHP_POLY 2 BLK000003 70 64 10 666616.449 20 5168334.043 30 286.070 0 POLYLINE 8 SHP_POLY 66 1 70 9 0 VERTEX 8 SHP_POLY 10 666616.449 20 5168334.043 30 286.070 70 32 0 VERTEX 8 SHP_POLY 10 666621.049 20 5168327.043 30 285.890 70 32 0 VERTEX 8 SHP_POLY 10 666640.949 20 5168310.843 30 285.570 70 32 0 VERTEX 8 SHP_POLY 10 666642.349 20 5168309.343 30 285.130 70 32 0 VERTEX 8 SHP_POLY 10 666620.849 20 5168326.643 30 282.830 70 32 0 VERTEX 8 SHP_POLY 10 666615.879 20 5168333.653 30 282.250 70 32 0 VERTEX 8 SHP_POLY 10 666616.449 20 5168334.043 30 286.070 70 32 0 SEQEND 8 SHP_POLY 0 ENDBLK 0 ENDSEC 0 SECTION 2 ENTITIES 0 INSERT 8 SHP_POLY 2 BLK000001 10 666648.328 20 5168231.314 30 284.570 0 INSERT 8 SHP_POLY 2 BLK000002 10 666583.381 20 5168444.861 30 286.970 0 INSERT 8 SHP_POLY 2 BLK000003 10 666616.449 20 5168334.043 30 286.070 0 EOF libspatialite-4.1.1/test/check_init.c0000664000175000017500000000603612163502133014512 00000000000000/* check_init.c -- SpatiaLite Test Case Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include "sqlite3.h" #include "spatialite.h" int main (int argc, char *argv[]) { int ret; sqlite3 *handle; void *cache = spatialite_alloc_connection(); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle)); sqlite3_close(handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -2; } spatialite_cleanup_ex (cache); cache = spatialite_alloc_connection(); ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle)); sqlite3_close(handle); return -3; } spatialite_init_ex (handle, cache, 1); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -4; } spatialite_cleanup_ex (cache); return 0; } libspatialite-4.1.1/test/check_version.c0000664000175000017500000000420612163502133015231 00000000000000/* check_version.c -- SpatiaLite Test Case Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" int main (int argc, char *argv[]) { if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ if (strcmp(spatialite_version(), VERSION) != 0) { fprintf(stderr, "SpatiaLite version mismatch: %s and %s\n", VERSION, spatialite_version()); return -1; } return 0; } libspatialite-4.1.1/test/shape_primitives.c0000664000175000017500000006572512163502133015777 00000000000000/* shape_primitives.c -- SpatiaLite Test Case Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Ahmadou Dicko Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" void cleanup_shapefile(const char *filename) { char nam[1000]; if (!filename) { return; } snprintf(nam, 1000, "%s.dbf", filename); unlink(nam); snprintf(nam, 1000, "%s.prj", filename); unlink(nam); snprintf(nam, 1000, "%s.shp", filename); unlink(nam); snprintf(nam, 1000, "%s.shx", filename); unlink(nam); } int do_test(sqlite3 *handle) { /* testing some DB */ #ifndef OMIT_ICONV /* only if ICONV is supported */ char *dumpname = __FILE__"dump"; char *err_msg = NULL; int row_count; int ret; gaiaVectorLayersListPtr list; ret = sqlite3_exec (handle, "CREATE TABLE Point_Test (Name TEXT, Description TEXT)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE TABLE error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -3; } ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('Point_Test', 'geomZ', 4326, 'POINT', 'XYZ', 0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn POINT XYZ error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -4; } ret = sqlite3_exec (handle, "INSERT INTO Point_Test (Name, Description, geomZ) VALUES ('Point 1', 'Some point', GeomFromText('POINTZ(136 -33 365)', 4326))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT POINT XYZ error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -5; } ret = dump_shapefile (handle, "Point_Test", "geomZ", dumpname, "UTF-8", "POINT", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error for POINT XYZ: %s\n", err_msg); sqlite3_close(handle); return -6; } cleanup_shapefile(dumpname); ret = dump_shapefile (handle, "Point_Test", "geomZ", dumpname, "UTF-8", "MULTIPOINT", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error for POINT XYZ: %s\n", err_msg); sqlite3_close(handle); return -7; } cleanup_shapefile(dumpname); ret = dump_shapefile (handle, "Point_Test", "geomZ", dumpname, "UTF-8", "", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error for POINT XYZ: %s\n", err_msg); sqlite3_close(handle); return -7; /* dupe */ } cleanup_shapefile(dumpname); ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('Point_Test', 'geomM', 4326, 'POINT', 'XYM', 0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn POINT XYM error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -8; } ret = sqlite3_exec (handle, "INSERT INTO Point_Test (Name, Description, geomM) VALUES ('Point 2', 'Some pointM', GeomFromText('POINTM(136 -33 26.7)', 4326))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT POINT XYM error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -9; } ret = dump_shapefile (handle, "Point_Test", "geomM", dumpname, "UTF-8", "", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error for POINT XYM: %s\n", err_msg); sqlite3_close(handle); return -10; } cleanup_shapefile(dumpname); ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('Point_Test', 'geomXY', 4326, 'POINT', 'XY', 0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn POINT XY error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -11; } ret = sqlite3_exec (handle, "INSERT INTO Point_Test (Name, Description, geomXY) VALUES ('Point 3', 'Some point', GeomFromText('POINT(136 -33)', 4326))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT POINT XY error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -12; } ret = dump_shapefile (handle, "Point_Test", "geomXY", dumpname, "UTF-8", "", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error for POINT XY: %s\n", err_msg); sqlite3_close(handle); return -13; } cleanup_shapefile(dumpname); ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('Point_Test', 'geomXYZM', 4326, 'POINT', 'XYZM', 0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn POINT XYZM error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -14; } ret = sqlite3_exec (handle, "INSERT INTO Point_Test (Name, Description, geomXYZM) VALUES ('Point 4', 'Some pointXYZM', GeomFromText('POINT(136 -33 424 233.2)', 4326))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT POINT XYZM error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -15; } ret = dump_shapefile (handle, "Point_Test", "geomXYZM", dumpname, "UTF-8", "", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error for POINT XYZM: %s\n", err_msg); sqlite3_close(handle); return -16; } cleanup_shapefile(dumpname); ret = sqlite3_exec (handle, "DROP TABLE Point_Test", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE Point_Test error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -20; } ret = sqlite3_exec (handle, "CREATE TABLE MPoint_Test (Name TEXT, Description TEXT)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE TABLE MPoint_Test error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -21; } ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('MPoint_Test', 'geom', 4326, 'MULTIPOINT', 'XY', 0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn MPOINT XY error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -22; } ret = sqlite3_exec (handle, "INSERT INTO MPoint_Test (Name, Description, geom) VALUES ('Point 1', 'Some point', GeomFromText('MULTIPOINT(136 -33, 47 2, -20, 12)', 4326))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT MPOINT XY error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -23; } ret = dump_shapefile (handle, "MPoint_Test", "geom", dumpname, "UTF-8", "MULTIPOINT", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error for MPOINT XY: %s\n", err_msg); sqlite3_close(handle); return -24; } cleanup_shapefile(dumpname); ret = dump_shapefile (handle, "MPoint_Test", "geom", dumpname, "UTF-8", "", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error for MPOINT XY: %s\n", err_msg); sqlite3_close(handle); return -25; } cleanup_shapefile(dumpname); ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('MPoint_Test', 'geomZ', 4326, 'MULTIPOINT', 'XYZ', 0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn MPOINT XYZ error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -26; } ret = sqlite3_exec (handle, "INSERT INTO MPoint_Test (Name, Description, geomZ) VALUES ('Point 2', 'Some pointZ', GeomFromText('MULTIPOINTZ(136 -33 1, 47 2 2, -20, 12 3)', 4326))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT MPOINT XYZ error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -27; } ret = dump_shapefile (handle, "MPoint_Test", "geomZ", dumpname, "UTF-8", "", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error for MPOINT XYZ: %s\n", err_msg); sqlite3_close(handle); return -28; } cleanup_shapefile(dumpname); ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('MPoint_Test', 'geomM', 4326, 'MULTIPOINT', 'XYM', 0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn MPOINT XYM error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -29; } ret = sqlite3_exec (handle, "INSERT INTO MPoint_Test (Name, Description, geomM) VALUES ('Point 3', 'Some pointM', GeomFromText('MULTIPOINTM(136 -33 1, 47 2 2, -20, 12 3)', 4326))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT MPOINT XYM error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -30; } ret = dump_shapefile (handle, "MPoint_Test", "geomM", dumpname, "UTF-8", "", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error for MPOINT XYM: %s\n", err_msg); sqlite3_close(handle); return -31; } cleanup_shapefile(dumpname); ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('MPoint_Test', 'geomMZ', 4326, 'MULTIPOINT', 'XYZM', 0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn MPOINT XYZM error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -32; } ret = sqlite3_exec (handle, "INSERT INTO MPoint_Test (Name, Description, geomMZ) VALUES ('Point 4', 'Some pointMZ', GeomFromText('MULTIPOINTMZ(136 -33 1 4.2, 47 2 2.3 1, -20, 12 3 -2)', 4326))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT MPOINT XYZM error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -33; } ret = dump_shapefile (handle, "MPoint_Test", "geomMZ", dumpname, "UTF-8", "", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error for MPOINT XYZM %s\n", err_msg); sqlite3_close(handle); return -34; } cleanup_shapefile(dumpname); ret = sqlite3_exec (handle, "DROP TABLE MPoint_Test", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE MPoint_Test error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -35; } ret = sqlite3_exec (handle, "CREATE TABLE Linestring_Test (Name TEXT, Description TEXT)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE TABLE Linestring_Test error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -36; } ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('Linestring_Test', 'geom', 4326, 'LINESTRING', 'XY', 0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn LINESTRING XY error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -37; } ret = sqlite3_exec (handle, "INSERT INTO Linestring_Test (Name, Description, geom) VALUES ('Point 1', 'Some linestring', GeomFromText('LINESTRING(136 -33, 47 2, -20, 12)', 4326))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT LINESTRING XY error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -38; } ret = dump_shapefile (handle, "Linestring_Test", "geom", dumpname, "UTF-8", "", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error for LINESTRING XY: %s\n", err_msg); sqlite3_close(handle); return -39; } cleanup_shapefile(dumpname); ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('Linestring_Test', 'geomZ', 4326, 'LINESTRING', 'XYZ', 0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn LINESTRING XYZ error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -40; } ret = sqlite3_exec (handle, "INSERT INTO Linestring_Test (Name, Description, geomZ) VALUES ('Point 2', 'Some linestringZ', GeomFromText('LINESTRINGZ(136 -33 3, 47 2 3.8, -20 12 10.1)', 4326))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT LINESTRING XYZ error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -41; } ret = dump_shapefile (handle, "Linestring_Test", "geomZ", dumpname, "UTF-8", "", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error for LINESTRING XYZ: %s\n", err_msg); sqlite3_close(handle); return -42; } cleanup_shapefile(dumpname); ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('Linestring_Test', 'geomM', 4326, 'LINESTRING', 'XYM', 0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn LINESTRING XYM error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -43; } ret = sqlite3_exec (handle, "INSERT INTO Linestring_Test (Name, Description, geomM) VALUES ('Point 3', 'Some linestringM', GeomFromText('LINESTRINGM(136 -33 3, 47 2 3.8, -20 12 10.1)', 4326))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT LINESTRING XYM error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -44; } ret = dump_shapefile (handle, "Linestring_Test", "geomM", dumpname, "UTF-8", "", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error for LINESTRING XYM: %s\n", err_msg); sqlite3_close(handle); return -45; } cleanup_shapefile(dumpname); ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('Linestring_Test', 'geomMZ', 4326, 'LINESTRING', 'XYZM', 0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn LINESTRING XYZM error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -46; } ret = sqlite3_exec (handle, "INSERT INTO Linestring_Test (Name, Description, geomMZ) VALUES ('Point 3', 'Some linestringZM', GeomFromText('LINESTRINGZM(136 -33 3 4.2, 47 2 3.8 1, -20 12 10.1 321)', 4326))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT LINESTRING XYZM error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -47; } ret = dump_shapefile (handle, "Linestring_Test", "geomMZ", dumpname, "UTF-8", "", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error for LINESTRING XYZM: %s\n", err_msg); sqlite3_close(handle); return -48; } cleanup_shapefile(dumpname); ret = sqlite3_exec (handle, "DROP TABLE Linestring_Test", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE Linestring_Test error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -49; } ret = sqlite3_exec (handle, "CREATE TABLE Polygon_Test (Name TEXT, Description TEXT, thing1 INTEGER, thing2 REAL, thing3 DOUBLE, thing4 BLOB)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE TABLE Polygon_Test error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -50; } ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('Polygon_Test', 'geom', 4326, 'POLYGON', 'XY', 0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn POLYGON XY error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -51; } /* TODO: try dumping an empty table */ ret = sqlite3_exec (handle, "INSERT INTO Polygon_Test (Name, Description, thing1, thing2, thing3, thing4, geom) VALUES ('Polygon 1', 'Some polygon', 2, 4.25, 343.343, zeroblob(40), GeomFromText('POLYGON((136 -33, 47 2, -20 -1, 136 -33),(10 -2, -20 -0.4, 40 0.1, 10 -2))', 4326))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT POLYGON XY error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -54; } ret = dump_shapefile (handle, "Polygon_Test", "geom", dumpname, "UTF-8", "", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error for POLYGON XY: %s\n", err_msg); sqlite3_close(handle); return -55; } cleanup_shapefile(dumpname); ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('Polygon_Test', 'geomZ', 4326, 'POLYGON', 'XYZ', 0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn POLYGON XYZ error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -56; } ret = sqlite3_exec (handle, "INSERT INTO Polygon_Test (Name, Description, thing1, thing2, thing3, thing4, geomZ) VALUES ('Polygon 2', 'Some polygonZ', 12, 14.25, 1343.343, zeroblob(140), GeomFromText('POLYGONZ((136 -33 4, 47 2 4.2, -20 -1 1, 136 -33 4),(10 -2 4, 40 0.1 1.6, -20 -0.4 1, 10 -2 4)', 4326))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT POLYGON XYZ error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -57; } ret = sqlite3_exec (handle, "INSERT INTO Polygon_Test (Name, Description, geomZ) VALUES ('Polygon 2', 'wrong direction', GeomFromText('POLYGONZ((136 -33 4, 47 2 4.2, -20 -1 1, 136 -33 4),(10 -2 4, -20 -0.4 1, 40 0.1 1.6, 10 -2 4))', 4326))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT POLYGON XYZ 2 error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -57; /* dupe */ } ret = dump_shapefile (handle, "Polygon_Test", "geomZ", dumpname, "UTF-8", "", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error for POLYGON XYZ: %s\n", err_msg); sqlite3_close(handle); return -58; } cleanup_shapefile(dumpname); ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('Polygon_Test', 'geomM', 4326, 'POLYGON', 'XYM', 0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn POLYGON XYM error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -59; } ret = sqlite3_exec (handle, "INSERT INTO Polygon_Test (Name, Description, geomM) VALUES ('Polygon 3', 'Some polygonM', GeomFromText('POLYGONM((136 -33 4, 47 2 4.2, -20 -1 1, 136 -33 4),(10 -2 4, -20 -0.4 1, 40 0.1 1.6, 10 -2 4))', 4326))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT POLYGON XYM error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -60; } ret = dump_shapefile (handle, "Polygon_Test", "geomM", dumpname, "UTF-8", "", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error for POLYGON XYM: %s\n", err_msg); sqlite3_close(handle); return -61; } cleanup_shapefile(dumpname); ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('Polygon_Test', 'geomZM', 4326, 'POLYGON', 'XYZM', 0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn POLYGON XYZM error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -62; } ret = sqlite3_exec (handle, "INSERT INTO Polygon_Test (Name, Description, geomZM) VALUES ('Polygon 4', 'Some polygonZM', GeomFromText('POLYGONZM((136 -33 4 4, 47 2 4.2 4.4, -20 -1 1 1, 136 -33 4 4),(10 -2 4 1, -20 -0.4 1 1, 40 0.1 1.6 1, 10 -2 4 1))', 4326))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT POLYGON XYZM error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -63; } ret = dump_shapefile (handle, "Polygon_Test", "geomZM", dumpname, "UTF-8", "", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error for POLYGON XYZM: %s\n", err_msg); sqlite3_close(handle); return -64; } cleanup_shapefile(dumpname); /* testing VectorLayersList (several flavors) */ list = gaiaGetVectorLayersList (handle, NULL, NULL, GAIA_VECTORS_LIST_FAST); gaiaFreeVectorLayersList (list); list = gaiaGetVectorLayersList (handle, NULL, NULL, GAIA_VECTORS_LIST_PESSIMISTIC); gaiaFreeVectorLayersList (list); list = gaiaGetVectorLayersList (handle, "Polygon_Test", "geomZM", GAIA_VECTORS_LIST_FAST); gaiaFreeVectorLayersList (list); list = gaiaGetVectorLayersList (handle, "Polygon_Test", "geomZM", GAIA_VECTORS_LIST_OPTIMISTIC); gaiaFreeVectorLayersList (list); ret = sqlite3_exec (handle, "DROP TABLE Polygon_Test", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE Polygon_Test error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -65; } /* final DB cleanup */ ret = sqlite3_exec (handle, "DELETE FROM geometry_columns", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DELETE FROM geometry_columns error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -66; } ret = sqlite3_exec (handle, "DELETE FROM spatialite_history WHERE geometry_column IS NOT NULL", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DELETE FROM spatialite_history error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -66; } ret = sqlite3_exec (handle, "VACUUM", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VACUUM error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -66; } #endif /* end ICONV conditional */ /* ok, succesfull termination */ return 0; } int main (int argc, char *argv[]) { #ifndef OMIT_ICONV /* only if ICONV is supported */ #ifdef ENABLE_LWGEOM /* only if LWGEOM is supported */ int ret; sqlite3 *handle; char *err_msg = NULL; void *cache = spatialite_alloc_connection(); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ /* testing current style metadata layout >= v.4.0.0 */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); sqlite3_close(handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(handle); return -2; } ret = do_test(handle); if (ret != 0) { fprintf(stderr, "error while testing current style metadata layout\n"); return ret; } spatialite_cleanup_ex (cache); sqlite3_close(handle); /* testing legacy style metadata layout <= v.3.1.0 */ cache = spatialite_alloc_connection(); ret = system("cp test-legacy-3.0.1.sqlite copy-legacy-3.0.1.sqlite"); if (ret != 0) { fprintf(stderr, "cannot copy legacy v.3.0.1 database\n"); return -1; } ret = sqlite3_open_v2 ("copy-legacy-3.0.1.sqlite", &handle, SQLITE_OPEN_READWRITE, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "cannot open legacy v.3.0.1 database: %s\n", sqlite3_errmsg (handle)); sqlite3_close(handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = do_test(handle); if (ret != 0) { fprintf(stderr, "error while testing legacy style metadata layout\n"); return ret; } spatialite_cleanup_ex (cache); sqlite3_close(handle); ret = unlink("copy-legacy-3.0.1.sqlite"); if (ret != 0) { fprintf(stderr, "cannot remove legacy v.3.0.1 database\n"); return -1; } /* testing invalid geometries [check/repair] */ cache = spatialite_alloc_connection(); ret = system("cp test-invalid.sqlite copy-invalid.sqlite"); if (ret != 0) { fprintf(stderr, "cannot copy invalid-geoms database\n"); return -1; } ret = sqlite3_open_v2 ("copy-invalid.sqlite", &handle, SQLITE_OPEN_READWRITE, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "cannot open invalid-geoms database: %s\n", sqlite3_errmsg (handle)); sqlite3_close(handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = check_all_geometry_columns (handle, "./report", NULL, NULL); if (!ret) { fprintf (stderr, "check_all_geometry_columns() error\n"); sqlite3_close(handle); return -61; } ret = sanitize_all_geometry_columns (handle, "tmp_", "./report", NULL, NULL); if (!ret) { fprintf (stderr, "sanitize_all_geometry_columns() error\n"); sqlite3_close(handle); return -62; } spatialite_cleanup_ex (cache); sqlite3_close(handle); ret = unlink("copy-invalid.sqlite"); if (ret != 0) { fprintf(stderr, "cannot remove invalid-geoms database\n"); return -1; } /* testing legacy style metadata layout (v.2.3.1) */ cache = spatialite_alloc_connection(); ret = system("cp test-legacy-2.3.1.sqlite copy-legacy-2.3.1.sqlite"); if (ret != 0) { fprintf(stderr, "cannot copy legacy v.2.3.1 database\n"); return -1; } ret = sqlite3_open_v2 ("copy-legacy-2.3.1.sqlite", &handle, SQLITE_OPEN_READWRITE, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "cannot open legacy v.2.3.1 database: %s\n", sqlite3_errmsg (handle)); sqlite3_close(handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = do_test(handle); if (ret != 0) { fprintf(stderr, "error while testing legacy (2.3.1) style metadata layout\n"); return ret; } spatialite_cleanup_ex (cache); sqlite3_close(handle); ret = unlink("copy-legacy-2.3.1.sqlite"); if (ret != 0) { fprintf(stderr, "cannot remove legacy v.2.3.1 database\n"); return -1; } #endif /* end LWGEOM conditionals */ #endif /* end ICONV conditional */ return 0; } libspatialite-4.1.1/test/check_point_to_tile.c0000664000175000017500000002320012163502133016407 00000000000000/* check_point_to_tile.c - Test case for GeoPackage Extensions Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Brad Hards Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #include #include "test_helpers.h" int main (int argc UNUSED, char *argv[] UNUSED) { sqlite3 *db_handle = NULL; char *sql_statement; sqlite3_stmt *stmt; int ret; char *err_msg = NULL; int i; const uint8_t *blob0; const uint8_t *blob1; void *cache = spatialite_alloc_connection(); char *old_SPATIALITE_SECURITY_ENV = NULL; #ifdef _WIN32 char *env; #endif /* not WIN32 */ old_SPATIALITE_SECURITY_ENV = getenv("SPATIALITE_SECURITY"); #ifdef _WIN32 putenv("SPATIALITE_SECURITY=relaxed"); #else /* not WIN32 */ setenv("SPATIALITE_SECURITY", "relaxed", 1); #endif ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); // For debugging / testing if required // ret = sqlite3_open_v2 ("check_point_to_tile.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); spatialite_init_ex(db_handle, cache, 0); if (old_SPATIALITE_SECURITY_ENV) { #ifdef _WIN32 env = sqlite3_mprintf("SPATIALITE_SECURITY=%s", old_SPATIALITE_SECURITY_ENV); putenv(env); sqlite3_free(env); #else /* not WIN32 */ setenv("SPATIALITE_SECURITY", old_SPATIALITE_SECURITY_ENV, 1); #endif } else { #ifdef _WIN32 putenv("SPATIALITE_SECURITY="); #else /* not WIN32 */ unsetenv("SPATIALITE_SECURITY"); #endif } if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } /* Create the base tables */ ret = sqlite3_exec (db_handle, "SELECT InitSpatialMetadata(1, 'WGS84')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf(stderr, "Unexpected InitSpatialMetadata result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -2; } ret = sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf(stderr, "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -3; } /* create a target table */ ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS test1_tiles", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP test1_tiles error: %s\n", err_msg); sqlite3_free (err_msg); return -10; } ret = sqlite3_exec (db_handle, "CREATE TABLE test1_tiles (id INTEGER PRIMARY KEY AUTOINCREMENT, zoom_level INTEGER NOT NULL DEFAULT 0, tile_column INTEGER NOT NULL DEFAULT 0, tile_row INTEGER NOT NULL DEFAULT 0, tile_data BLOB NOT NULL DEFAULT (zeroblob(4)))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE mytable_tiles error: %s\n", err_msg); sqlite3_free (err_msg); return -11; } /* add in some test entries */ ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (1, 0, 0, 0, BlobFromFile('tile000.jpeg'))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT level0 error: %s\n", err_msg); sqlite3_free (err_msg); return -12; } ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (2, 1, 0, 0, BlobFromFile('tile100.jpeg'))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT level1 error: %s\n", err_msg); sqlite3_free (err_msg); return -13; } ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (3, 1, 0, 1, BlobFromFile('tile101.jpeg'))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT level1 error: %s\n", err_msg); sqlite3_free (err_msg); return -14; } ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (4, 1, 1, 1, BlobFromFile('tile111.jpeg'))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT level1 error: %s\n", err_msg); sqlite3_free (err_msg); return -15; } ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS test1_tiles_rt_metadata", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP test1_tiles_rt_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -16; } ret = sqlite3_exec (db_handle, "CREATE TABLE test1_tiles_rt_metadata (id INTEGER PRIMARY KEY AUTOINCREMENT, min_x DOUBLE NOT NULL DEFAULT -180.0, min_y DOUBLE NOT NULL DEFAULT -90.0, max_x DOUBLE NOT NULL DEFAULT 180.0, max_y DOUBLE NOT NULL DEFAULT 90.0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE test1_tiles_rt_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -17; } ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles_rt_metadata (id, min_x, min_y, max_x, max_y) VALUES (1, -180.0, -90.0, 180.0, 90.0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT level0 _rt_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -18; } ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles_rt_metadata (id, min_x, min_y, max_x, max_y) VALUES (2, -180.0, 0.0, 0.0, 90.0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT level1 (0,0) _rt_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -19; } /* Deliberately skip 3 */ ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles_rt_metadata (id, min_x, min_y, max_x, max_y) VALUES (4, 0.0, -90.0, 180.0, 0.0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT level1 (1,1) _rt_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -20; } ret = sqlite3_exec (db_handle, "INSERT INTO raster_columns VALUES (\"test1_tiles\", \"tile_data\", 100, 0, 4326)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT raster_columns row error: %s\n", err_msg); sqlite3_free (err_msg); return -21; } /* try gpkgPointToTile normal operation */ sql_statement = "SELECT gpkgPointToTile(\"test1_tiles\", 4326, 20.0, -30.0, 1), BlobFromFile(\"tile111.jpeg\")"; ret = sqlite3_prepare_v2 (db_handle, sql_statement, strlen(sql_statement), &stmt, NULL); if (ret != SQLITE_OK) { fprintf(stderr, "failed to prepare SQL statement: %i (%s)\n", ret, sqlite3_errmsg(db_handle)); return -30; } ret = sqlite3_step (stmt); if (ret != SQLITE_ROW) { fprintf(stderr, "unexpected return value for first step: %i (%s)\n", ret, sqlite3_errmsg(db_handle)); return -31; } if (sqlite3_column_type (stmt, 0) != SQLITE_BLOB) { fprintf(stderr, "bad type for column 0: %i\n", sqlite3_column_type (stmt, 0)); return -32; } if (sqlite3_column_type (stmt, 1) != SQLITE_BLOB) { fprintf(stderr, "bad type for column 1: %i\n", sqlite3_column_type (stmt, 1)); return -33; } blob0 = sqlite3_column_blob(stmt, 0); blob1 = sqlite3_column_blob(stmt, 1); if (sqlite3_column_bytes(stmt, 0) != sqlite3_column_bytes(stmt, 1)) { fprintf(stderr, "mismatch in blob sizes: %i vs %i\n", sqlite3_column_bytes(stmt, 0), sqlite3_column_bytes(stmt, 1)); return -34; } for (i = 0; i < sqlite3_column_bytes(stmt, 0); ++i) { if (blob0[i] != blob1[i]) { fprintf(stderr, "mismatch in blob content at offset: %i\n", i); return -35; } } ret = sqlite3_step(stmt); if (ret != SQLITE_DONE) { fprintf(stderr, "unexpected return value for second step: %i\n", ret); return -36; } ret = sqlite3_finalize (stmt); ret = sqlite3_close (db_handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle)); return -100; } spatialite_cleanup_ex(cache); return 0; } libspatialite-4.1.1/test/WritingSQLTestCase.txt0000664000175000017500000001757712163502133016462 00000000000000Building a SQL statement test case This probably requires that you're using the "autoconf" build system at the moment. This is the case if you're running on Linux or some other Unix variant, including Mac OS X. It is the case for some kinds of Windows builds too (using MinGW / MSYS). I assume that you're mostly OK with building from subversion. If not, start at http://www.gaia-gis.it/spatialite/sources.html. Make sure you read Sandro's "short note" - it is at http://www.gaia-gis.it/spatialite/how_to_build_libspatialite.html if you missed it. Make sure you have all the dependencies. It is a bit of work but it will pay off in the long run. Once you've got that far, its time to start with the testing. Step 1. Just get the tests building. If you're in the build directory (i.e. where you ran the "./configure" and "make" steps), you should be able to run "make check" and have the tests build and run. Towards the end, it should report something like: =================== All 15 tests passed =================== If any of them fail, please let us know ASAP. Step 2. After that works, its time to set up the coverage testing. Obviously we want to understand which code isn't being tested, then write a test to check that code, and finally make sure that the code is being tested. Fortunately, there are nice tools to check which code is being run. On Unix / Linux, you should have no problem obtaining "gcov" and "lcov" - they're probably available using your package / build system. Clean up the build: make distclean and then run configure with the --enable-gcov=yes option: ./configure --enable-gcov=yes You can add in any other options for configure at the same time (just as you did for the initial build). Then build as normal: make check You don't need to install (and probably don't want to install this version). Then zero out the coverage numbers: make coverage-init and build the tests: make check and finally do the coverage summary: make coverage At the end, you should see something like: Writing directory view page. Overall coverage rate: lines......: 64.9% (64946 of 100079 lines) functions..: 16.4% (218 of 1329 functions) branches...: 8.2% (1929 of 23468 branches) Step 3. Find some untested code. The results of the testing are converted into nice HTML, which is in the covresults/ directory. Point your web browser at covresults/index.html. Untested functions are the most important, then untested branches. Don't worry too much about untested lines. The colour coding should help. Step 4. Decide to do something about it. This is really the only hard part. Step 5. Think about how to test the code using SQL. Lets say you notice that the fnct_math_floor() function isn't being tested. [It is in src/spatialite/spatialite.c if you're looking for it]. Now further inspection shows its being mapped to the SQL floor function using: sqlite3_create_function (db, "floor", 1, SQLITE_ANY, 0, fnct_math_floor, 0, 0); So something like "SELECT floor(3.2);" would give us a test case. However libspatialite doesn't include the command line tools, so we have a simple test harness in the test directory called "check_sql_stmt". It basically loads test cases from a directory (test/sql_stmt_tests/). Any file ending with .testcase will be checked. A quick overview of the format: * anything after a # character is a comment. Line 1: the name of the test Line 2: the database file to use. ":memory:" is usually the best option, but you can load a pre-existing database if you need source data. Line 3: the SQL to run. Line 4: the number of rows of results you're expecting (not including the header row) Line 5: the number of columns of results you're expecting. remaining lines: the results, one line per cell. So lets write such a file: floor(3.2) # you can use the SQL if you're not feeling imaginative. :memory: SELECT floor(3.2); 1 # rows 1 # columns floor(3.2) # this is the header row 3.0 # this is really the result and save it (in test/sql_stmt_tests/ - I called mine floor32.testcase, but you can use anything that doesn't already exist and ends with .testcase). Now when you run "make check" you should see your new test being run, marked by an entry just above the PASS: check_sql_stmt that looks like: Test case: floor(3.2) [It won't change the total number of test cases reported by "make check" because that is just the number of unique programs that were run, and this is an extra test file within an existing program] Step 6. Re-run the coverage programs: make coverage-init && make check && make coverage and check the results with the browser. You should now see some green lines in fnct_math_floor. However you might notice that there are still some red lines (and red - and # marks on the left side, which indicate branches not taken). We can see that we're testing the case where we have SQLITE_FLOAT input, but not integer or some other inputs. Step 7. Write another test file: floor(integer) # integer input - this is just the name remember :memory: SELECT floor(3); # the SQL to run 1 # rows 1 # columns floor(3) # this is the header row 3.0 # this is really the result Save it, again in test/sql_stmt_tests/ - I called mine floorint.testcase, but anything will do. Then run the tests again: make check and you should see your new test case as well: Test case: floor(3.2) Test case: floor(integer) Step 8. Repeat the coverage program runs: make coverage-init && make check && make coverage and check the results with the browser. You should now see even more green lines in fnct_math_floor. However there is still the case for what happens if the input is neither integer nor float. For example, what happens if we put in a test entry. Step 9. Write another test file. floor(null) # text input, expecting null output :memory: SELECT floor("some text"); # the SQL to run 1 # rows 1 # columns floor("some text") # this is the header row (NULL) # this is really the result - special case for null value and do the save / check / check coverage things again. You should see pretty much all of that function is now being tested. Step 10. Send the results to be added to libspatialite! You can make a svn diff output if you're familiar with SVN, but you can just send the new files that you're written (e.g. as a tar.gz or zip file) to me (bradh@frogmouth.net) or to the spatialite-users mailing list. Hints: 1. If your test results in a null value, use "(NULL)" as the expected cell value. 2. If your test result is a floating point value, and it might vary at the least significant values, then you can make the test more reliable by limiting how close things need to be. You do this by adding a : character, then the number of characters to compare. So if you're looking for 2.7182818, but the result could vary a bit, then write the result as 2.7182818:8. If you need to put a colon (:) character in the value, you can use :0 at the end, to indicate that the precision should be "absolute match". 3. If you want to run the tests under valgrind, change into the test/ directory and use: libtool --mode=execute valgrind --track-origins=yes --tool=memcheck --num-callers=20 --leak-check=full --show-reachable=yes ./check_sql_stmt 4. Don't worry about the not-taken branch for GAIA_UNUSED(). This is just to avoid a warning, and isn't a problem. 5. Don't worry about not being able to write a test for every possible scenario. Even a little extra coverage helps. 6. If your test shows a problem, think twice before fixing the test to match the code. It could be that you've just found a bug, and that is really important news - we have a reliable way to reproduce the problem, and a way to make sure it doesn't sneak back in later. Please raise these issues separately. 7. You can "hold" failing test cases by renaming the file (I usually add ".on-hold", so pow00.testcase becomes pow00.testcase.on-hold). This allows you to keep testing without loosing the problem test cases. You can use that to "remove" the test cases for fnct_math_floor() if you want to reproduce this. libspatialite-4.1.1/test/test-legacy-2.3.1.sqlite0000664000175000017500000003600012163502134016344 00000000000000SQLite format 3@ },-#  hhOx3mepsgYED50 / UTM zone 32N+proj=utm +zone=32 +ellps=intl +units=m +no_defsBfmepsgWGS 84+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs   1spatialite_history# {`C&vU2!e %Polygon_TestgeomZM d %Polygon_TestgeomM c %Polygon_TestgeomZb % Polygon_Testgeom$a +Linestring_TestgeomMZ #` +Linestring_TestgeomM #_ +Linestring_TestgeomZ ^ + Linestring_Testgeom] #MPoint_TestgeomMZ\ #MPoint_TestgeomM[ #MPoint_TestgeomZZ # MPoint_TestgeomX !Point_TestgeomXYZM W !Point_TestgeomXYV !Point_TestgeomMU ! Point_TestgeomZ lyaH0l%Polygon_TestgeomZMe%Polygon_TestgeomZc%Polygon_TestgeomMd%Polygon_Testgeomb!Point_TestgeomZU!Point_TestgeomXYZMX!Point_TestgeomXYW!Point_TestgeomMV#MPoint_TestgeomZ[#MPoint_TestgeomMZ]#MPoint_TestgeomM\#MPoint_TestgeomZ+Linestring_TestgeomZ_+Linestring_TestgeomMZa+Linestring_TestgeomM`+Linestring_Testgeom^ f++tablespatial_ref_sysspatial_ref_sysCREATE TABLE spatial_ref_sys ( srid INTEGER NOT NULL PRIMARY KEY, auth_name VARCHAR(256) NOT NULL, auth_srid INTEGER NOT NULL, ref_sys_name VARCHAR(256), proj4text VARCHAR(2048) NOT NULL) --Ktablegeometry_columnsgeometry_columnsCREATE TABLE geometry_columns ( f_table_name VARCHAR(256) NOT NULL, f_geometry_column VARCHAR(256) NOT NULL, type VARCHAR(30) NOT NULL, coord_dimension INTEGER NOT NULL, srid INTEGER, spatial_index_enabled INTEGER NOT NULL)11]tablespatialite_historyspatialite_historyCREATE TABLE spatialite_history ( event_id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, table_name TEXT NOT NULL, geometry_column TEXT, event TEXT NOT NULL, timestamp TEXT NOT NULL, ver_sqlite TEXT NOT NULL, ver_splite TEXT NOT NULL) mmP++Ytablesqlite_sequencesqlite_sequenceCREATE TABLE sqlite_sequence(name,seq)}---tablelayer_statisticslayer_statisticsCREATE TABLE layer_statistics ( raster_layer INTEGER NOT NULL, table_name TEXT NOT NULL, geometry_column TEXT NOT NULL, row_count INTEGER, extent_min_x DOUBLE, extent_min_y DOUBLE, extent_max_x DOUBLE, extent_max_y DOUBLE, CONSTRAINT pk_layer_statistics PRIMARY KEY (raster_layer, table_name, geometry_column), CONSTRAINT fk_layer_statistics FOREIGN KEY (table_name, geometry_column) REFERENCES geometry_columns (f_table_name, f_geometry_column) ON DELETE CASCADE)?S-indexsqlite_autoindex_layer_statistics_1layer_statistics   MM4d99ctableviews_layer_statisticsviews_layer_statistics CREATE TABLE views_layer_statistics ( view_name TEXT NOT NULL, view_geometry TEXT NOT NULL, row_count INTEGER, extent_min_x DOUBLE, extent_min_y DOUBLE, extent_max_x DOUBLE, extent_max_y DOUBLE, CONSTRAINT pk_views_layer_statistics PRIMARY KEY (view_name, view_geometry), CONSTRAINT fk_views_layer_statistics FOREIGN KEY (view_name, view_geometry) REFERENCES views_geometry_columns (view_name, view_geometry) ON DELETE CASCADE)K_9indexsqlite_autoindex_views_layer_statistics_1views_layer_statistics } #-7indexidx_geocolsgeometry_columns CREATE UNIQUE INDEX idx_geocols ON geometry_columns (f_table_name, f_geometry_column)  ]]B 1+3triggerfkd_refsys_geocolsspatial_ref_sysCREATE TRIGGER fkd_refsys_geocols BEFORE DELETE ON spatial_ref_sys FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'delete on table ''spatial_ref_sys'' violates constraint: ''geometry_columns.srid''') WHERE (SELECT srid FROM geometry_columns WHERE srid = OLD.srid) IS NOT NULL; END[ 1-ctriggerfki_geocols_refsysgeometry_columnsCREATE TRIGGER fki_geocols_refsys BEFORE INSERT ON geometry_columns FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'insert on table ''geometry_columns'' violates constraint: ''spatial_ref_sys.srid''') WHERE NEW."srid" IS NOT NULL AND (SELECT srid FROM spatial_ref_sys WHERE srid = NEW.srid) IS NULL; END nn3 //viewgeom_cols_ref_sysgeom_cols_ref_sysCREATE VIEW geom_cols_ref_sys AS SELECT f_table_name, f_geometry_column, type, coord_dimension, spatial_ref_sys.srid AS srid, auth_name, auth_srid, ref_sys_name, proj4text FROM geometry_columns, spatial_ref_sys WHERE geometry_columns.srid = spatial_ref_sys.sridY 1-_triggerfku_geocols_refsysgeometry_columnsCREATE TRIGGER fku_geocols_refsys BEFORE UPDATE ON geometry_columns FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'update on table ''geometry_columns'' violates constraint: ''spatial_ref_sys.srid''') WHERE NEW.srid IS NOT NULL AND (SELECT srid FROM spatial_ref_sys WHERE srid = NEW.srid) IS NULL; ENDlibspatialite-4.1.1/config-msvc.h0000664000175000017500000001472112163502133013653 00000000000000/* config.h. Generated from config.h.in by configure. */ /* config.h.in. Generated from configure.ac by autoheader. */ /* / Sandro: manually adjusted so to support the MSVC compiler / using the OsGeo4W libraries */ /* Should be defined in order to enable GeoPackage support. */ /* #undef ENABLE_GEOPACKAGE */ /* Should be defined in order to enable LIBXML2 support. */ #define ENABLE_LIBXML2 1 /* Should be defined in order to enable LWGEOM support. */ #undef ENABLE_LWGEOM /* Should be defined in order to enable GEOS_ADVANCED support. */ #define GEOS_ADVANCED 1 /* Should be defined in order to enable GEOS_TRUNK experimental support. */ #undef GEOS_TRUNK /* Define to 1 if you have the header file. */ /* #undef HAVE_DLFCN_H */ /* Define to 1 if you have the header file. */ #define HAVE_FCNTL_H 1 /* Define to 1 if you have the `fdatasync' function. */ /* #undef HAVE_FDATASYNC */ /* Define to 1 if you have the header file. */ #define HAVE_FLOAT_H 1 /* Define to 1 if you have the header file. */ #define HAVE_FREEXL_H 1 /* Define to 1 if you have the `ftruncate' function. */ #define HAVE_FTRUNCATE 1 /* Define to 1 if you have the header file. */ #define HAVE_GEOS_C_H 1 /* Define to 1 if you have the `getcwd' function. */ #define HAVE_GETCWD 1 /* Define to 1 if you have the `gettimeofday' function. */ #define HAVE_GETTIMEOFDAY 1 /* Define to 1 if you have the header file. */ #define HAVE_ICONV_H 1 /* Define to 1 if you have the header file. */ #define HAVE_INTTYPES_H 1 /* Define to 1 if you have the header file. */ #define HAVE_LIBLWGEOM_H 1 /* Define to 1 if you have the `sqlite3' library (-lsqlite3). */ #define HAVE_LIBSQLITE3 1 /* Define to 1 if you have the `localtime_r' function. */ /* #undef HAVE_LOCALTIME_R */ /* Define to 1 if `lstat' has the bug that it succeeds when given the zero-length file name argument. */ #define HAVE_LSTAT_EMPTY_STRING_BUG 1 /* Define to 1 if you have the header file. */ #define HAVE_MATH_H 1 /* Define to 1 if you have the `memmove' function. */ #define HAVE_MEMMOVE 1 /* Define to 1 if you have the header file. */ #define HAVE_MEMORY_H 1 /* Define to 1 if you have the `memset' function. */ #define HAVE_MEMSET 1 /* Define to 1 if you have the header file. */ #define HAVE_PROJ_API_H 1 /* Define to 1 if you have the header file. */ #define HAVE_SQLITE3EXT_H 1 /* Define to 1 if you have the header file. */ #define HAVE_SQLITE3_H 1 /* Define to 1 if you have the `sqrt' function. */ #define HAVE_SQRT 1 /* Define to 1 if `stat' has the bug that it succeeds when given the zero-length file name argument. */ /* #undef HAVE_STAT_EMPTY_STRING_BUG */ /* Define to 1 if you have the header file. */ #define HAVE_STDDEF_H 1 /* Define to 1 if you have the header file. */ #define HAVE_STDINT_H 1 /* Define to 1 if you have the header file. */ #define HAVE_STDIO_H 1 /* Define to 1 if you have the header file. */ #define HAVE_STDLIB_H 1 /* Define to 1 if you have the `strcasecmp' function. */ #define HAVE_STRCASECMP 1 /* Define to 1 if you have the `strerror' function. */ #define HAVE_STRERROR 1 /* Define to 1 if you have the `strftime' function. */ #define HAVE_STRFTIME 1 /* Define to 1 if you have the header file. */ #define HAVE_STRINGS_H 1 /* Define to 1 if you have the header file. */ #define HAVE_STRING_H 1 /* Define to 1 if you have the `strncasecmp' function. */ #define HAVE_STRNCASECMP 1 /* Define to 1 if you have the `strstr' function. */ #define HAVE_STRSTR 1 /* Define to 1 if you have the header file. */ #define HAVE_SYS_STAT_H 1 /* Define to 1 if you have the header file. */ #define HAVE_SYS_TIME_H 1 /* Define to 1 if you have the header file. */ #define HAVE_SYS_TYPES_H 1 /* Define to 1 if you have the header file. */ #define HAVE_UNISTD_H 1 /* Define to 1 if `lstat' dereferences a symlink specified with a trailing slash. */ /* #undef LSTAT_FOLLOWS_SLASHED_SYMLINK */ /* Define to the sub-directory in which libtool stores uninstalled libraries. */ #define LT_OBJDIR ".libs/" /* Must be defined in order to disable debug mode. */ #define NDEBUG 1 /* Should be defined in order to disable EPSG full support. */ /* #undef OMIT_EPSG */ /* Should be defined in order to disable FREEXL support. */ /* #undef OMIT_FREEXL */ /* Should be defined in order to disable GEOCALLBACKS support. */ #define OMIT_GEOCALLBACKS 1 /* Should be defined in order to disable GEOS support. */ /* #undef OMIT_GEOS */ /* Should be defined in order to disable ICONV support. */ /* #undef OMIT_ICONV */ /* Should be defined in order to disable MATHSQL support. */ /* #undef OMIT_MATHSQL */ /* Should be defined in order to disable PROJ.4 support. */ /* #undef OMIT_PROJ */ /* Name of package */ #define PACKAGE "libspatialite" /* Define to the address where bug reports for this package should be sent. */ #define PACKAGE_BUGREPORT "a.furieri@lqt.it" /* Define to the full name of this package. */ #define PACKAGE_NAME "libspatialite" /* Define to the full name and version of this package. */ #define PACKAGE_STRING "libspatialite 4.1.1" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "libspatialite" /* Define to the home page for this package. */ #define PACKAGE_URL "" /* Define to the version of this package. */ #define PACKAGE_VERSION "4.1.1" /* Define to 1 if you have the ANSI C header files. */ #define STDC_HEADERS 1 /* Define to 1 if you can safely include both and . */ #define TIME_WITH_SYS_TIME 1 /* Define to 1 if your declares `struct tm'. */ /* #undef TM_IN_SYS_TIME */ /* Version number of package */ #define VERSION "4.1.1" /* Must be =64 in order to enable huge-file support. */ #define _FILE_OFFSET_BITS 64 /* Must be defined in order to enable huge-file support. */ #define _LARGEFILE_SOURCE 1 /* Must be defined in order to enable huge-file support. */ #define _LARGE_FILE 1 /* Define to empty if `const' does not conform to ANSI C. */ /* #undef const */ /* Define to `long int' if does not define. */ /* #undef off_t */ /* Define to `unsigned int' if does not define. */ /* #undef size_t */ /* Define to empty if the keyword `volatile' does not work. Warning: valid code using `volatile' can become incorrect without. Disable with care. */ /* #undef volatile */ libspatialite-4.1.1/spatialite.pc.in0000664000175000017500000000044012163502133014350 00000000000000# Package Information for pkg-config prefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ includedir=@includedir@ Name: spatialite Description: Spatial SQL database engine based on SQLite Version: @VERSION@ Libs: -L${libdir} -lspatialite -lsqlite3 -lm -lz Cflags: -I${includedir} libspatialite-4.1.1/configure0000775000175000017500000234435112163502133013205 00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.69 for libspatialite 4.1.1. # # Report bugs to . # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 as_fn_exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test \$(( 1 + 1 )) = 2 || exit 1 test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO PATH=/empty FPATH=/empty; export PATH FPATH test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org and a.furieri@lqt.it $0: about your system, including any error possibly output $0: before this message. Then install a modern shell, or $0: manually run the script under such a shell if you do $0: have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" SHELL=${CONFIG_SHELL-/bin/sh} test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='libspatialite' PACKAGE_TARNAME='libspatialite' PACKAGE_VERSION='4.1.1' PACKAGE_STRING='libspatialite 4.1.1' PACKAGE_BUGREPORT='a.furieri@lqt.it' PACKAGE_URL='' # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS ANDROID_FALSE ANDROID_TRUE MACOSX_FALSE MACOSX_TRUE MINGW_FALSE MINGW_TRUE ENABLE_EXAMPLES_FALSE ENABLE_EXAMPLES_TRUE ENABLE_GEOPACKAGE_FALSE ENABLE_GEOPACKAGE_TRUE LIBXML2_LIBS LIBXML2_CFLAGS PKG_CONFIG_LIBDIR PKG_CONFIG_PATH PKG_CONFIG GEOS_CFLAGS GEOS_LDFLAGS GEOSCONFIG LIBOBJS CXXCPP OTOOL64 OTOOL LIPO NMEDIT DSYMUTIL MANIFEST_TOOL RANLIB ac_ct_AR AR NM ac_ct_DUMPBIN DUMPBIN LD FGREP SED LIBTOOL OBJDUMP DLLTOOL AS host_os host_vendor host_cpu host build_os build_vendor build_cpu build LN_S am__fastdepCXX_FALSE am__fastdepCXX_TRUE CXXDEPMODE ac_ct_CXX CXXFLAGS CXX EGREP GREP CPP am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE am__nodep AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__quote am__include DEPDIR OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC MAINT MAINTAINER_MODE_FALSE MAINTAINER_MODE_TRUE am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_maintainer_mode enable_dependency_tracking enable_shared enable_static with_pic enable_fast_install with_gnu_ld with_sysroot enable_libtool_lock enable_mathsql enable_geocallbacks enable_proj enable_iconv enable_freexl enable_epsg enable_geos with_geosconfig enable_geosadvanced enable_geostrunk enable_lwgeom enable_libxml2 enable_geopackage enable_gcov enable_examples ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP CXX CXXFLAGS CCC CXXCPP PKG_CONFIG PKG_CONFIG_PATH PKG_CONFIG_LIBDIR LIBXML2_CFLAGS LIBXML2_LIBS' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures libspatialite 4.1.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/libspatialite] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of libspatialite 4.1.1:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer --enable-dependency-tracking do not reject slow dependency extractors --disable-dependency-tracking speeds up one-time build --enable-shared[=PKGS] build shared libraries [default=yes] --enable-static[=PKGS] build static libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) --enable-mathsql enables SQL math functions [default=yes] --enable-geocallbacks enables geometry callbacks [default=no] --enable-proj enables PROJ.4 inclusion [default=yes] --enable-iconv enables ICONV inclusion [default=yes] --enable-freexl enables FreeXL inclusion [default=yes] --enable-epsg enables full EPSG dataset support [default=yes] --enable-geos enables GEOS inclusion [default=yes] --enable-geosadvanced enables GEOS advanced features [default=yes] --enable-geostrunk enables GEOS-trunk experimental features [default=no] --enable-lwgeom enables LWGEOM support [default=no] --enable-libxml2 enables libxml2 inclusion [default=no] --enable-geopackage enables experimental GeoPackage raster function support [default=no] --enable-gcov turn on code coverage analysis tools --enable-examples enables building examples [default=yes] Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-pic try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-sysroot=DIR Search for dependent libraries within DIR (or the compiler's sysroot if not specified). --with-geosconfig=FILE specify an alternative geos-config file Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor CXX C++ compiler command CXXFLAGS C++ compiler flags CXXCPP C++ preprocessor PKG_CONFIG path to pkg-config utility PKG_CONFIG_PATH directories to add to pkg-config's search path PKG_CONFIG_LIBDIR path overriding pkg-config's built-in search path LIBXML2_CFLAGS C compiler flags for LIBXML2, overriding pkg-config LIBXML2_LIBS linker flags for LIBXML2, overriding pkg-config Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF libspatialite configure 4.1.1 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_cpp # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using # the include files in INCLUDES and setting the cache variable VAR # accordingly. ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if eval \${$3+:} false; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 $as_echo_n "checking $2 usability... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_header_compiler=yes else ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 $as_echo_n "checking $2 presence... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <$2> _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : ac_header_preproc=yes else ac_header_preproc=no fi rm -f conftest.err conftest.i conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( yes:no: ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; no:yes:* ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ( $as_echo "## ------------------------------- ## ## Report this to a.furieri@lqt.it ## ## ------------------------------- ##" ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_mongrel # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : ac_retval=0 else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_run # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile # ac_fn_cxx_try_compile LINENO # ---------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_compile # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || test -x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$2 || defined __stub___$2 choke me #endif int main () { return $2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func # ac_fn_cxx_try_cpp LINENO # ------------------------ # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_cpp # ac_fn_cxx_try_link LINENO # ------------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || test -x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_link # ac_fn_c_check_type LINENO TYPE VAR INCLUDES # ------------------------------------------- # Tests whether TYPE exists after having included INCLUDES, setting cache # variable VAR accordingly. ac_fn_c_check_type () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=no" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof ($2)) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof (($2))) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else eval "$3=yes" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_type cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by libspatialite $as_me 4.1.1, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu am__api_version='1.12' ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; esac # Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". as_fn_error $? "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi if test "$2" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done test "$2" = conftest.file ) then # Ok. : else as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi rm -f conftest.file test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} fi if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi # Installed binaries are usually stripped using 'strip' when the user # run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the 'STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if ${ac_cv_path_mkdir+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='libspatialite' VERSION='4.1.1' cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # # mkdir_p='$(MKDIR_P)' # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AMTAR='$${TAR-tar}' am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 $as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } # Check whether --enable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then : enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval else USE_MAINTAINER_MODE=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 $as_echo "$USE_MAINTAINER_MODE" >&6; } if test $USE_MAINTAINER_MODE = yes; then MAINTAINER_MODE_TRUE= MAINTAINER_MODE_FALSE='#' else MAINTAINER_MODE_TRUE='#' MAINTAINER_MODE_FALSE= fi MAINT=$MAINTAINER_MODE_TRUE ac_config_headers="$ac_config_headers config.h" # enabling huge-file support (64 bit file pointers) $as_echo "#define _LARGE_FILE 1" >>confdefs.h $as_echo "#define _FILE_OFFSET_BITS 64" >>confdefs.h $as_echo "#define _LARGEFILE_SOURCE 1" >>confdefs.h # disablibg debug support $as_echo "#define NDEBUG 1" >>confdefs.h # config depending options # Checks for header files. DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 $as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from 'make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 $as_echo "$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then : enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi if test -z "$ac_file"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables See \`config.log' for more details" "$LINENO" 5; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named 'D' -- because '-MD' means "put the output # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with # Solaris 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle '-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # After this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if ${ac_cv_prog_CPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_GREP" || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if ${ac_cv_path_EGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_EGREP" || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in stdlib.h do : ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default" if test "x$ac_cv_header_stdlib_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STDLIB_H 1 _ACEOF else as_fn_error $? "cannot find stdlib.h, bailing out" "$LINENO" 5 fi done for ac_header in stdio.h do : ac_fn_c_check_header_mongrel "$LINENO" "stdio.h" "ac_cv_header_stdio_h" "$ac_includes_default" if test "x$ac_cv_header_stdio_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STDIO_H 1 _ACEOF else as_fn_error $? "cannot find stdio.h, bailing out" "$LINENO" 5 fi done for ac_header in string.h do : ac_fn_c_check_header_mongrel "$LINENO" "string.h" "ac_cv_header_string_h" "$ac_includes_default" if test "x$ac_cv_header_string_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRING_H 1 _ACEOF else as_fn_error $? "cannot find string.h, bailing out" "$LINENO" 5 fi done for ac_header in memory.h do : ac_fn_c_check_header_mongrel "$LINENO" "memory.h" "ac_cv_header_memory_h" "$ac_includes_default" if test "x$ac_cv_header_memory_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_MEMORY_H 1 _ACEOF else as_fn_error $? "cannot find memory.h, bailing out" "$LINENO" 5 fi done for ac_header in math.h do : ac_fn_c_check_header_mongrel "$LINENO" "math.h" "ac_cv_header_math_h" "$ac_includes_default" if test "x$ac_cv_header_math_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_MATH_H 1 _ACEOF else as_fn_error $? "cannot find math.h, bailing out" "$LINENO" 5 fi done for ac_header in float.h do : ac_fn_c_check_header_mongrel "$LINENO" "float.h" "ac_cv_header_float_h" "$ac_includes_default" if test "x$ac_cv_header_float_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_FLOAT_H 1 _ACEOF else as_fn_error $? "cannot find float.h, bailing out" "$LINENO" 5 fi done for ac_header in fcntl.h do : ac_fn_c_check_header_mongrel "$LINENO" "fcntl.h" "ac_cv_header_fcntl_h" "$ac_includes_default" if test "x$ac_cv_header_fcntl_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_FCNTL_H 1 _ACEOF else as_fn_error $? "cannot find fcntl.h, bailing out" "$LINENO" 5 fi done for ac_header in inttypes.h do : ac_fn_c_check_header_mongrel "$LINENO" "inttypes.h" "ac_cv_header_inttypes_h" "$ac_includes_default" if test "x$ac_cv_header_inttypes_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_INTTYPES_H 1 _ACEOF else as_fn_error $? "cannot find inttypes.h, bailing out" "$LINENO" 5 fi done for ac_header in stddef.h do : ac_fn_c_check_header_mongrel "$LINENO" "stddef.h" "ac_cv_header_stddef_h" "$ac_includes_default" if test "x$ac_cv_header_stddef_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STDDEF_H 1 _ACEOF else as_fn_error $? "cannot find stddef.h, bailing out" "$LINENO" 5 fi done for ac_header in stdint.h do : ac_fn_c_check_header_mongrel "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default" if test "x$ac_cv_header_stdint_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STDINT_H 1 _ACEOF else as_fn_error $? "cannot find stdint.h, bailing out" "$LINENO" 5 fi done for ac_header in sys/time.h do : ac_fn_c_check_header_mongrel "$LINENO" "sys/time.h" "ac_cv_header_sys_time_h" "$ac_includes_default" if test "x$ac_cv_header_sys_time_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SYS_TIME_H 1 _ACEOF else as_fn_error $? "cannot find sys/time.h, bailing out" "$LINENO" 5 fi done for ac_header in unistd.h do : ac_fn_c_check_header_mongrel "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$ac_includes_default" if test "x$ac_cv_header_unistd_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_UNISTD_H 1 _ACEOF else as_fn_error $? "cannot find unistd.h, bailing out" "$LINENO" 5 fi done for ac_header in sqlite3.h do : ac_fn_c_check_header_mongrel "$LINENO" "sqlite3.h" "ac_cv_header_sqlite3_h" "$ac_includes_default" if test "x$ac_cv_header_sqlite3_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SQLITE3_H 1 _ACEOF else as_fn_error $? "cannot find sqlite3.h, bailing out" "$LINENO" 5 fi done for ac_header in sqlite3ext.h do : ac_fn_c_check_header_mongrel "$LINENO" "sqlite3ext.h" "ac_cv_header_sqlite3ext_h" "$ac_includes_default" if test "x$ac_cv_header_sqlite3ext_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SQLITE3EXT_H 1 _ACEOF else as_fn_error $? "cannot find sqlite3ext.h, bailing out" "$LINENO" 5 fi done for ac_header in zlib.h do : ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default" if test "x$ac_cv_header_zlib_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_ZLIB_H 1 _ACEOF else as_fn_error $? "cannot find zlib.h, bailing out" "$LINENO" 5 fi done # Checks for programs. ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -z "$CXX"; then if test -n "$CCC"; then CXX=$CCC else if test -n "$ac_tool_prefix"; then for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CXX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 $as_echo "$CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CXX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CXX="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 $as_echo "$ac_ct_CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CXX" && break done if test "x$ac_ct_CXX" = x; then CXX="g++" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CXX=$ac_ct_CXX fi fi fi fi # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 $as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } if ${ac_cv_cxx_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 $as_echo "$ac_cv_cxx_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GXX=yes else GXX= fi ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 $as_echo_n "checking whether $CXX accepts -g... " >&6; } if ${ac_cv_prog_cxx_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_cxx_werror_flag=$ac_cxx_werror_flag ac_cxx_werror_flag=yes ac_cv_prog_cxx_g=no CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes else CXXFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : else ac_cxx_werror_flag=$ac_save_cxx_werror_flag CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cxx_werror_flag=$ac_save_cxx_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 $as_echo "$ac_cv_prog_cxx_g" >&6; } if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CXX" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if ${am_cv_CXX_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named 'D' -- because '-MD' means "put the output # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CXX_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with # Solaris 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle '-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # After this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CXX_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CXX_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5 $as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; } CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then am__fastdepCXX_TRUE= am__fastdepCXX_FALSE='#' else am__fastdepCXX_TRUE='#' am__fastdepCXX_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named 'D' -- because '-MD' means "put the output # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with # Solaris 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle '-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # After this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if ${ac_cv_prog_CPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 $as_echo_n "checking whether ln -s works... " >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 $as_echo "no, using $LN_S" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } if ${ac_cv_build+:} false; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } if ${ac_cv_host+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac enable_win32_dll=yes case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. set dummy ${ac_tool_prefix}as; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AS+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AS"; then ac_cv_prog_AS="$AS" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AS="${ac_tool_prefix}as" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AS=$ac_cv_prog_AS if test -n "$AS"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5 $as_echo "$AS" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_AS"; then ac_ct_AS=$AS # Extract the first word of "as", so it can be a program name with args. set dummy as; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_AS+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AS"; then ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AS="as" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AS=$ac_cv_prog_ac_ct_AS if test -n "$ac_ct_AS"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5 $as_echo "$ac_ct_AS" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_AS" = x; then AS="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AS=$ac_ct_AS fi else AS="$ac_cv_prog_AS" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. set dummy ${ac_tool_prefix}dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DLLTOOL"; then ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DLLTOOL=$ac_cv_prog_DLLTOOL if test -n "$DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 $as_echo "$DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DLLTOOL"; then ac_ct_DLLTOOL=$DLLTOOL # Extract the first word of "dlltool", so it can be a program name with args. set dummy dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DLLTOOL"; then ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DLLTOOL="dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL if test -n "$ac_ct_DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 $as_echo "$ac_ct_DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DLLTOOL" = x; then DLLTOOL="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DLLTOOL=$ac_ct_DLLTOOL fi else DLLTOOL="$ac_cv_prog_DLLTOOL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. set dummy ${ac_tool_prefix}objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OBJDUMP=$ac_cv_prog_OBJDUMP if test -n "$OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 $as_echo "$OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OBJDUMP"; then ac_ct_OBJDUMP=$OBJDUMP # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJDUMP"; then ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OBJDUMP="objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP if test -n "$ac_ct_OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 $as_echo "$ac_ct_OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OBJDUMP" = x; then OBJDUMP="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OBJDUMP=$ac_ct_OBJDUMP fi else OBJDUMP="$ac_cv_prog_OBJDUMP" fi ;; esac test -z "$AS" && AS=as test -z "$DLLTOOL" && DLLTOOL=dlltool test -z "$OBJDUMP" && OBJDUMP=objdump case `pwd` in *\ * | *\ *) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 $as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; esac macro_version='2.4.2' macro_revision='1.3337' ltmain="$ac_aux_dir/ltmain.sh" # Backslashify metacharacters that are still active within # double-quoted strings. sed_quote_subst='s/\(["`$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 $as_echo_n "checking how to print strings... " >&6; } # Test print first, because it will be a builtin if present. if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='printf %s\n' else # Use this function as a fallback that always works. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } ECHO='func_fallback_echo' fi # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "" } case "$ECHO" in printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 $as_echo "printf" >&6; } ;; print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 $as_echo "print -r" >&6; } ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 $as_echo "cat" >&6; } ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 $as_echo_n "checking for a sed that does not truncate output... " >&6; } if ${ac_cv_path_SED+:} false; then : $as_echo_n "(cached) " >&6 else ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for ac_i in 1 2 3 4 5 6 7; do ac_script="$ac_script$as_nl$ac_script" done echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed { ac_script=; unset ac_script;} if test -z "$SED"; then ac_path_SED_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_SED" || continue # Check for GNU ac_path_SED and select it if it is found. # Check for GNU $ac_path_SED case `"$ac_path_SED" --version 2>&1` in *GNU*) ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo '' >> "conftest.nl" "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_SED_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_SED="$ac_path_SED" ac_path_SED_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_SED_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_SED"; then as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 fi else ac_cv_path_SED=$SED fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 $as_echo "$ac_cv_path_SED" >&6; } SED="$ac_cv_path_SED" rm -f conftest.sed test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 $as_echo_n "checking for fgrep... " >&6; } if ${ac_cv_path_FGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 then ac_cv_path_FGREP="$GREP -F" else if test -z "$FGREP"; then ac_path_FGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in fgrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_FGREP" || continue # Check for GNU ac_path_FGREP and select it if it is found. # Check for GNU $ac_path_FGREP case `"$ac_path_FGREP" --version 2>&1` in *GNU*) ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'FGREP' >> "conftest.nl" "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_FGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_FGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_FGREP"; then as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_FGREP=$FGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 $as_echo "$ac_cv_path_FGREP" >&6; } FGREP="$ac_cv_path_FGREP" test -z "$GREP" && GREP=grep # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if ${lt_cv_path_LD+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if ${lt_cv_prog_gnu_ld+:} false; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 $as_echo "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 $as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } if ${lt_cv_path_NM+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done : ${lt_cv_path_NM=no} fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 $as_echo "$lt_cv_path_NM" >&6; } if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : # Let the user override the test. else if test -n "$ac_tool_prefix"; then for ac_prog in dumpbin "link -dump" do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DUMPBIN+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DUMPBIN"; then ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DUMPBIN=$ac_cv_prog_DUMPBIN if test -n "$DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 $as_echo "$DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$DUMPBIN" && break done fi if test -z "$DUMPBIN"; then ac_ct_DUMPBIN=$DUMPBIN for ac_prog in dumpbin "link -dump" do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DUMPBIN"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN if test -n "$ac_ct_DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 $as_echo "$ac_ct_DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_DUMPBIN" && break done if test "x$ac_ct_DUMPBIN" = x; then DUMPBIN=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DUMPBIN=$ac_ct_DUMPBIN fi fi case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols" ;; *) DUMPBIN=: ;; esac fi if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi fi test -z "$NM" && NM=nm { $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 $as_echo_n "checking the name lister ($NM) interface... " >&6; } if ${lt_cv_nm_interface+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 (eval echo "\"\$as_me:$LINENO: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 $as_echo "$lt_cv_nm_interface" >&6; } # find the maximum length of command line arguments { $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 $as_echo_n "checking the maximum length of command line arguments... " >&6; } if ${lt_cv_sys_max_cmd_len+:} false; then : $as_echo_n "(cached) " >&6 else i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; mint*) # On MiNT this can take a long time and run out of memory. lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8 ; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac fi if test -n $lt_cv_sys_max_cmd_len ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 $as_echo "$lt_cv_sys_max_cmd_len" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 $as_echo "none" >&6; } fi max_cmd_len=$lt_cv_sys_max_cmd_len : ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ = c,a/b,b/c, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 $as_echo "$xsi_shell" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 $as_echo_n "checking whether the shell understands \"+=\"... " >&6; } lt_shell_append=no ( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 $as_echo "$lt_shell_append" >&6; } if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 $as_echo_n "checking how to convert $build file names to $host format... " >&6; } if ${lt_cv_to_host_file_cmd+:} false; then : $as_echo_n "(cached) " >&6 else case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ;; esac ;; *-*-cygwin* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_noop ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ;; esac ;; * ) # unhandled hosts (and "normal" native builds) lt_cv_to_host_file_cmd=func_convert_file_noop ;; esac fi to_host_file_cmd=$lt_cv_to_host_file_cmd { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 $as_echo "$lt_cv_to_host_file_cmd" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 $as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } if ${lt_cv_to_tool_file_cmd+:} false; then : $as_echo_n "(cached) " >&6 else #assume ordinary cross tools, or native build. lt_cv_to_tool_file_cmd=func_convert_file_noop case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ;; esac ;; esac fi to_tool_file_cmd=$lt_cv_to_tool_file_cmd { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 $as_echo "$lt_cv_to_tool_file_cmd" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 $as_echo_n "checking for $LD option to reload object files... " >&6; } if ${lt_cv_ld_reload_flag+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_reload_flag='-r' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 $as_echo "$lt_cv_ld_reload_flag" >&6; } reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; *) reload_flag=" $reload_flag" ;; esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in cygwin* | mingw* | pw32* | cegcc*) if test "$GCC" != yes; then reload_cmds=false fi ;; darwin*) if test "$GCC" = yes; then reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' else reload_cmds='$LD$reload_flag -o $output$reload_objs' fi ;; esac if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. set dummy ${ac_tool_prefix}objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OBJDUMP=$ac_cv_prog_OBJDUMP if test -n "$OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 $as_echo "$OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OBJDUMP"; then ac_ct_OBJDUMP=$OBJDUMP # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJDUMP"; then ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OBJDUMP="objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP if test -n "$ac_ct_OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 $as_echo "$ac_ct_OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OBJDUMP" = x; then OBJDUMP="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OBJDUMP=$ac_ct_OBJDUMP fi else OBJDUMP="$ac_cv_prog_OBJDUMP" fi test -z "$OBJDUMP" && OBJDUMP=objdump { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 $as_echo_n "checking how to recognize dependent libraries... " >&6; } if ${lt_cv_deplibs_check_method+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # `unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # which responds to the $file_magic_cmd with a given extended regex. # If you have `file' or equivalent on your system and you're not sure # whether `pass_all' will *always* work, you probably want this one. case $host_os in aix[4-9]*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi[45]*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; cygwin*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' ;; mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else # Keep this pattern in sync with the one in func_win32_libid. lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc*) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; haiku*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[3-9]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) lt_cv_deplibs_check_method=pass_all ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 $as_echo "$lt_cv_deplibs_check_method" >&6; } file_magic_glob= want_nocaseglob=no if test "$build" = "$host"; then case $host_os in mingw* | pw32*) if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then want_nocaseglob=yes else file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` fi ;; esac fi file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. set dummy ${ac_tool_prefix}dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DLLTOOL"; then ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DLLTOOL=$ac_cv_prog_DLLTOOL if test -n "$DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 $as_echo "$DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DLLTOOL"; then ac_ct_DLLTOOL=$DLLTOOL # Extract the first word of "dlltool", so it can be a program name with args. set dummy dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DLLTOOL"; then ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DLLTOOL="dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL if test -n "$ac_ct_DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 $as_echo "$ac_ct_DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DLLTOOL" = x; then DLLTOOL="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DLLTOOL=$ac_ct_DLLTOOL fi else DLLTOOL="$ac_cv_prog_DLLTOOL" fi test -z "$DLLTOOL" && DLLTOOL=dlltool { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 $as_echo_n "checking how to associate runtime and link libraries... " >&6; } if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in cygwin* | mingw* | pw32* | cegcc*) # two different shell functions defined in ltmain.sh # decide which to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in *--identify-strict*) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ;; *) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ;; esac ;; *) # fallback: assume linklib IS sharedlib lt_cv_sharedlib_from_linklib_cmd="$ECHO" ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 $as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO if test -n "$ac_tool_prefix"; then for ac_prog in ar do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 $as_echo "$AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AR" && break done fi if test -z "$AR"; then ac_ct_AR=$AR for ac_prog in ar do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 $as_echo "$ac_ct_AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_AR" && break done if test "x$ac_ct_AR" = x; then AR="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi fi : ${AR=ar} : ${AR_FLAGS=cru} { $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 $as_echo_n "checking for archiver @FILE support... " >&6; } if ${lt_cv_ar_at_file+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ar_at_file=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : echo conftest.$ac_objext > conftest.lst lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 (eval $lt_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test "$ac_status" -eq 0; then # Ensure the archiver fails upon bogus file names. rm -f conftest.$ac_objext libconftest.a { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 (eval $lt_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test "$ac_status" -ne 0; then lt_cv_ar_at_file=@ fi fi rm -f conftest.* libconftest.a fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 $as_echo "$lt_cv_ar_at_file" >&6; } if test "x$lt_cv_ar_at_file" = xno; then archiver_list_spec= else archiver_list_spec=$lt_cv_ar_at_file fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi test -z "$STRIP" && STRIP=: if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 $as_echo "$RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 $as_echo "$ac_ct_RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi test -z "$RANLIB" && RANLIB=: # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi case $host_os in darwin*) lock_old_archive_extraction=yes ;; *) lock_old_archive_extraction=no ;; esac # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Check for command to grab the raw symbol name followed by C symbol from nm. { $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 $as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } if ${lt_cv_sys_global_symbol_pipe+:} false; then : $as_echo_n "(cached) " >&6 else # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[BCDEGRST]' # Regexp to match symbols that can be accessed directly from C. sympat='\([_A-Za-z][_A-Za-z0-9]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[BCDT]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[ABCDGISTW]' ;; hpux*) if test "$host_cpu" = ia64; then symcode='[ABCDEGRST]' fi ;; irix* | nonstopux*) symcode='[BCDEGRST]' ;; osf*) symcode='[BCDEGQRST]' ;; solaris*) symcode='[BDRT]' ;; sco3.2v5*) symcode='[DT]' ;; sysv4.2uw2*) symcode='[DT]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[ABDT]' ;; sysv4) symcode='[DFNSTU]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[ABCDGIRSTW]' ;; esac # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function # and D for any global variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK '"\ " {last_section=section; section=\$ 3};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ " s[1]~/^[@?]/{print s[1], s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # Now try to grab the symbols. nlist=conftest.nm if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5 (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST #elif defined(__osf__) /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else # define LT_DLSYM_CONST const #endif #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ LT_DLSYM_CONST struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_globsym_save_LIBS=$LIBS lt_globsym_save_CFLAGS=$CFLAGS LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS=$lt_globsym_save_LIBS CFLAGS=$lt_globsym_save_CFLAGS else echo "cannot find nm_test_func in $nlist" >&5 fi else echo "cannot find nm_test_var in $nlist" >&5 fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 fi else echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done fi if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 $as_echo "failed" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 $as_echo "ok" >&6; } fi # Response file support. if test "$lt_cv_nm_interface" = "MS dumpbin"; then nm_file_list_spec='@' elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then nm_file_list_spec='@' fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 $as_echo_n "checking for sysroot... " >&6; } # Check whether --with-sysroot was given. if test "${with_sysroot+set}" = set; then : withval=$with_sysroot; else with_sysroot=no fi lt_sysroot= case ${with_sysroot} in #( yes) if test "$GCC" = yes; then lt_sysroot=`$CC --print-sysroot 2>/dev/null` fi ;; #( /*) lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` ;; #( no|'') ;; #( *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5 $as_echo "${with_sysroot}" >&6; } as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 $as_echo "${lt_sysroot:-no}" >&6; } # Check whether --enable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then : enableval=$enable_libtool_lock; fi test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '#line '$LINENO' "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 $as_echo_n "checking whether the C compiler needs -belf... " >&6; } if ${lt_cv_cc_needs_belf+:} false; then : $as_echo_n "(cached) " >&6 else ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_cc_needs_belf=yes else lt_cv_cc_needs_belf=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 $as_echo "$lt_cv_cc_needs_belf" >&6; } if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; sparc*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) LD="${LD-ld} -m elf64_sparc" ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. set dummy ${ac_tool_prefix}mt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$MANIFEST_TOOL"; then ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL if test -n "$MANIFEST_TOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 $as_echo "$MANIFEST_TOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_MANIFEST_TOOL"; then ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL # Extract the first word of "mt", so it can be a program name with args. set dummy mt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_MANIFEST_TOOL"; then ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL if test -n "$ac_ct_MANIFEST_TOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 $as_echo "$ac_ct_MANIFEST_TOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_MANIFEST_TOOL" = x; then MANIFEST_TOOL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL fi else MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" fi test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 $as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } if ${lt_cv_path_mainfest_tool+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_path_mainfest_tool=no echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out cat conftest.err >&5 if $GREP 'Manifest Tool' conftest.out > /dev/null; then lt_cv_path_mainfest_tool=yes fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 $as_echo "$lt_cv_path_mainfest_tool" >&6; } if test "x$lt_cv_path_mainfest_tool" != xyes; then MANIFEST_TOOL=: fi case $host_os in rhapsody* | darwin*) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DSYMUTIL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DSYMUTIL"; then ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DSYMUTIL=$ac_cv_prog_DSYMUTIL if test -n "$DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 $as_echo "$DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DSYMUTIL"; then ac_ct_DSYMUTIL=$DSYMUTIL # Extract the first word of "dsymutil", so it can be a program name with args. set dummy dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DSYMUTIL"; then ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL if test -n "$ac_ct_DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 $as_echo "$ac_ct_DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DSYMUTIL" = x; then DSYMUTIL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DSYMUTIL=$ac_ct_DSYMUTIL fi else DSYMUTIL="$ac_cv_prog_DSYMUTIL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. set dummy ${ac_tool_prefix}nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_NMEDIT+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$NMEDIT"; then ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi NMEDIT=$ac_cv_prog_NMEDIT if test -n "$NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 $as_echo "$NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_NMEDIT"; then ac_ct_NMEDIT=$NMEDIT # Extract the first word of "nmedit", so it can be a program name with args. set dummy nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_NMEDIT"; then ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_NMEDIT="nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT if test -n "$ac_ct_NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 $as_echo "$ac_ct_NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_NMEDIT" = x; then NMEDIT=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac NMEDIT=$ac_ct_NMEDIT fi else NMEDIT="$ac_cv_prog_NMEDIT" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. set dummy ${ac_tool_prefix}lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_LIPO+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$LIPO"; then ac_cv_prog_LIPO="$LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_LIPO="${ac_tool_prefix}lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi LIPO=$ac_cv_prog_LIPO if test -n "$LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 $as_echo "$LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_LIPO"; then ac_ct_LIPO=$LIPO # Extract the first word of "lipo", so it can be a program name with args. set dummy lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_LIPO+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_LIPO"; then ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_LIPO="lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO if test -n "$ac_ct_LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 $as_echo "$ac_ct_LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_LIPO" = x; then LIPO=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac LIPO=$ac_ct_LIPO fi else LIPO="$ac_cv_prog_LIPO" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. set dummy ${ac_tool_prefix}otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL"; then ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OTOOL="${ac_tool_prefix}otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL=$ac_cv_prog_OTOOL if test -n "$OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 $as_echo "$OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL"; then ac_ct_OTOOL=$OTOOL # Extract the first word of "otool", so it can be a program name with args. set dummy otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL"; then ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OTOOL="otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL if test -n "$ac_ct_OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 $as_echo "$ac_ct_OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL" = x; then OTOOL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL=$ac_ct_OTOOL fi else OTOOL="$ac_cv_prog_OTOOL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. set dummy ${ac_tool_prefix}otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OTOOL64+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL64"; then ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL64=$ac_cv_prog_OTOOL64 if test -n "$OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 $as_echo "$OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL64"; then ac_ct_OTOOL64=$OTOOL64 # Extract the first word of "otool64", so it can be a program name with args. set dummy otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL64"; then ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OTOOL64="otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 if test -n "$ac_ct_OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 $as_echo "$ac_ct_OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL64" = x; then OTOOL64=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL64=$ac_ct_OTOOL64 fi else OTOOL64="$ac_cv_prog_OTOOL64" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 $as_echo_n "checking for -single_module linker flag... " >&6; } if ${lt_cv_apple_cc_single_mod+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&5 $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&5 fi rm -rf libconftest.dylib* rm -f conftest.* fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 $as_echo "$lt_cv_apple_cc_single_mod" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } if ${lt_cv_ld_exported_symbols_list+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_ld_exported_symbols_list=yes else lt_cv_ld_exported_symbols_list=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 $as_echo_n "checking for -force_load linker flag... " >&6; } if ${lt_cv_ld_force_load+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 echo "$AR cru libconftest.a conftest.o" >&5 $AR cru libconftest.a conftest.o 2>&5 echo "$RANLIB libconftest.a" >&5 $RANLIB libconftest.a 2>&5 cat > conftest.c << _LT_EOF int main() { return 0;} _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then lt_cv_ld_force_load=yes else cat conftest.err >&5 fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 $as_echo "$lt_cv_ld_force_load" >&6; } case $host_os in rhapsody* | darwin1.[012]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[91]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 10.[012]*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test "$lt_cv_apple_cc_single_mod" = "yes"; then _lt_dar_single_mod='$single_module' fi if test "$lt_cv_ld_exported_symbols_list" = "yes"; then _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac for ac_header in dlfcn.h do : ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default " if test "x$ac_cv_header_dlfcn_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DLFCN_H 1 _ACEOF fi done func_stripname_cnf () { case ${2} in .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; esac } # func_stripname_cnf # Set options enable_dlopen=no # Check whether --enable-shared was given. if test "${enable_shared+set}" = set; then : enableval=$enable_shared; p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac else enable_shared=yes fi # Check whether --enable-static was given. if test "${enable_static+set}" = set; then : enableval=$enable_static; p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac else enable_static=yes fi # Check whether --with-pic was given. if test "${with_pic+set}" = set; then : withval=$with_pic; pic_mode="$withval" else pic_mode=default fi test -z "$pic_mode" && pic_mode=default # Check whether --enable-fast-install was given. if test "${enable_fast_install+set}" = set; then : enableval=$enable_fast_install; p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac else enable_fast_install=yes fi # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' test -z "$LN_S" && LN_S="ln -s" if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 $as_echo_n "checking for objdir... " >&6; } if ${lt_cv_objdir+:} false; then : $as_echo_n "(cached) " >&6 else rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 $as_echo "$lt_cv_objdir" >&6; } objdir=$lt_cv_objdir cat >>confdefs.h <<_ACEOF #define LT_OBJDIR "$lt_cv_objdir/" _ACEOF case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld="$lt_cv_prog_gnu_ld" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 $as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } if ${lt_cv_path_MAGIC_CMD+:} false; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/${ac_tool_prefix}file; then lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 $as_echo_n "checking for file... " >&6; } if ${lt_cv_path_MAGIC_CMD+:} false; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/file; then lt_cv_path_MAGIC_CMD="$ac_dir/file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi else MAGIC_CMD=: fi fi fi ;; esac # Use C for the default configuration in the libtool script lt_save_CC="$CC" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o objext=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then lt_prog_compiler_no_builtin_flag= if test "$GCC" = yes; then case $cc_basename in nvcc*) lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; *) lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 $as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 $as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl= lt_prog_compiler_pic= lt_prog_compiler_static= if test "$GCC" = yes; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. lt_prog_compiler_static= ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) lt_prog_compiler_pic='-fPIC' ;; esac ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic=-Kconform_pic fi ;; *) lt_prog_compiler_pic='-fPIC' ;; esac case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 lt_prog_compiler_wl='-Xlinker ' lt_prog_compiler_pic='-Xcompiler -fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; # Lahey Fortran 8.1. lf95*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='--shared' lt_prog_compiler_static='--static' ;; nagfor*) # NAG Fortran compiler lt_prog_compiler_wl='-Wl,-Wl,,' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; ccc*) lt_prog_compiler_wl='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static='-non_shared' ;; xl* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-qpic' lt_prog_compiler_static='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ F* | *Sun*Fortran*) # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='' ;; *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Wl,' ;; esac ;; esac ;; newsos6) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static='-non_shared' ;; rdos*) lt_prog_compiler_static='-non_shared' ;; solaris*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) lt_prog_compiler_wl='-Qoption ld ';; *) lt_prog_compiler_wl='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl='-Qoption ld ' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic='-Kconform_pic' lt_prog_compiler_static='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; unicos*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_can_build_shared=no ;; uts4*) lt_prog_compiler_pic='-pic' lt_prog_compiler_static='-Bstatic' ;; *) lt_prog_compiler_can_build_shared=no ;; esac fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; *) lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } if ${lt_cv_prog_compiler_pic+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic=$lt_prog_compiler_pic fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 $as_echo "$lt_cv_prog_compiler_pic" >&6; } lt_prog_compiler_pic=$lt_cv_prog_compiler_pic # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } if ${lt_cv_prog_compiler_pic_works+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 $as_echo "$lt_cv_prog_compiler_pic_works" >&6; } if test x"$lt_cv_prog_compiler_pic_works" = xyes; then case $lt_prog_compiler_pic in "" | " "*) ;; *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; esac else lt_prog_compiler_pic= lt_prog_compiler_can_build_shared=no fi fi # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if ${lt_cv_prog_compiler_static_works+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works=yes fi else lt_cv_prog_compiler_static_works=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 $as_echo "$lt_cv_prog_compiler_static_works" >&6; } if test x"$lt_cv_prog_compiler_static_works" = xyes; then : else lt_prog_compiler_static= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } if test "$hard_links" = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 $as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } runpath_var= allow_undefined_flag= always_export_symbols=no archive_cmds= archive_expsym_cmds= compiler_needs_object=no enable_shared_with_static_runtimes=no export_dynamic_flag_spec= export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' hardcode_automatic=no hardcode_direct=no hardcode_direct_absolute=no hardcode_libdir_flag_spec= hardcode_libdir_flag_spec_ld= hardcode_libdir_separator= hardcode_minus_L=no hardcode_shlibpath_var=unsupported inherit_rpath=no link_all_deplibs=unknown module_cmds= module_expsym_cmds= old_archive_from_new_cmds= old_archive_from_expsyms_cmds= thread_safe_flag_spec= whole_archive_flag_spec= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs=yes # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test "$with_gnu_ld" = yes; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; *\ \(GNU\ Binutils\)\ [3-9]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test "$lt_use_gnu_ld_interface" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec= fi supports_anon_versioning=no case `$LD -v 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[3-9]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.19, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then allow_undefined_flag=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' export_dynamic_flag_spec='${wl}--export-all-symbols' allow_undefined_flag=unsupported always_export_symbols=no enable_shared_with_static_runtimes=yes export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs=no fi ;; haiku*) archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' link_all_deplibs=yes ;; interix[3-9]*) hardcode_direct=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group f77 and f90 compilers whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 whole_archive_flag_spec= tmp_sharedflag='--shared' ;; xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object=yes ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' hardcode_libdir_flag_spec= hardcode_libdir_flag_spec_ld='-rpath $libdir' archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else ld_shlibs=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac ;; sunos4*) archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct=yes hardcode_shlibpath_var=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then runpath_var= hardcode_libdir_flag_spec= export_dynamic_flag_spec= whole_archive_flag_spec= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag=unsupported always_export_symbols=yes archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix[4-9]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm # Also, AIX nm treats weak defined symbols like other global # defined symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds='' hardcode_direct=yes hardcode_direct_absolute=yes hardcode_libdir_separator=':' link_all_deplibs=yes file_list_spec='${wl}-f,' if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi export_dynamic_flag_spec='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an # empty executable. if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath_+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_="/usr/lib:/lib" fi fi aix_libpath=$lt_cv_aix_libpath_ fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag="-z nodefs" archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath_+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_="/usr/lib:/lib" fi fi aix_libpath=$lt_cv_aix_libpath_ fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag=' ${wl}-bernotok' allow_undefined_flag=' ${wl}-berok' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' fi archive_cmds_need_lc=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; bsdi[45]*) export_dynamic_flag_spec=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. case $cc_basename in cl*) # Native MSVC hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported always_export_symbols=yes file_list_spec='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; else sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, )='true' enable_shared_with_static_runtimes=yes export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' # Don't use ranlib old_postinstall_cmds='chmod 644 $oldlib' postlink_cmds='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile="$lt_outputfile.exe" lt_tool_outputfile="$lt_tool_outputfile.exe" ;; esac~ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # Assume MSVC wrapper hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_from_new_cmds='true' # FIXME: Should let the user specify the lib program. old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' enable_shared_with_static_runtimes=yes ;; esac ;; darwin* | rhapsody*) archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported if test "$lt_cv_ld_force_load" = "yes"; then whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' else whole_archive_flag_spec='' fi link_all_deplibs=yes allow_undefined_flag="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=func_echo_all archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" else ld_shlibs=no fi ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; freebsd1*) ld_shlibs=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes export_dynamic_flag_spec='${wl}-E' ;; hpux10*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_flag_spec_ld='+b $libdir' hardcode_libdir_separator=: hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) # Older versions of the 11.00 compiler do not understand -b yet # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 $as_echo_n "checking if $CC understands -b... " >&6; } if ${lt_cv_prog_compiler__b+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler__b=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -b" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler__b=yes fi else lt_cv_prog_compiler__b=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 $as_echo "$lt_cv_prog_compiler__b" >&6; } if test x"$lt_cv_prog_compiler__b" = xyes; then archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_direct=no hardcode_shlibpath_var=no ;; *) hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. # This should be the same for all languages, so no per-tag cache variable. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 $as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } if ${lt_cv_irix_exported_symbol+:} false; then : $as_echo_n "(cached) " >&6 else save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int foo (void) { return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_irix_exported_symbol=yes else lt_cv_irix_exported_symbol=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 $as_echo "$lt_cv_irix_exported_symbol" >&6; } if test "$lt_cv_irix_exported_symbol" = yes; then archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' fi else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: inherit_rpath=yes link_all_deplibs=yes ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; newsos6) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct=yes hardcode_shlibpath_var=no hardcode_direct_absolute=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-R$libdir' ;; *) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi else ld_shlibs=no fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi archive_cmds_need_lc='no' hardcode_libdir_separator=: ;; solaris*) no_undefined_flag=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='${wl}' archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else whole_archive_flag_spec='-z allextract$convenience -z defaultextract' fi ;; esac link_all_deplibs=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; sysv4) case $host_vendor in sni) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds='$CC -r -o $output$reload_objs' hardcode_direct=no ;; motorola) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; sysv4.3*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no export_dynamic_flag_spec='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag='${wl}-z,text' archive_cmds_need_lc=no hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag='${wl}-z,text' allow_undefined_flag='${wl}-z,nodefs' archive_cmds_need_lc=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-R,$libdir' hardcode_libdir_separator=':' link_all_deplibs=yes export_dynamic_flag_spec='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; *) ld_shlibs=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) export_dynamic_flag_spec='${wl}-Blargedynsym' ;; esac fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 $as_echo "$ld_shlibs" >&6; } test "$ld_shlibs" = no && can_build_shared=no with_gnu_ld=$with_gnu_ld # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc" in x|xyes) # Assume -lc should be added archive_cmds_need_lc=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } if ${lt_cv_archive_cmds_need_lc+:} false; then : $as_echo_n "(cached) " >&6 else $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl pic_flag=$lt_prog_compiler_pic compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag allow_undefined_flag= if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then lt_cv_archive_cmds_need_lc=no else lt_cv_archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 $as_echo "$lt_cv_archive_cmds_need_lc" >&6; } archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc ;; esac fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac case $host_os in mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;; *) lt_sed_strip_eq="s,=/,/,g" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in *\;*) # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` ;; *) lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ;; esac # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path/$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" else test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo="/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[lt_foo]++; } if (lt_freq[lt_foo] == 1) { print lt_foo; } }'` # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's,/\([A-Za-z]:\),\1,g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[4-9]*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$cc_basename in yes,*) # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac dynamic_linker='Win32 ld.exe' ;; *,cl*) # Native MSVC libname_spec='$name' soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' library_names_spec='${libname}.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec="$LIB" if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC wrapper library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; haiku*) version_type=linux need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LIBRARY_PATH shlibpath_overrides_runpath=yes sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' # or fails outright, so override atomically: install_override_mode=555 ;; interix[3-9]*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH if ${lt_cv_shlibpath_overrides_runpath+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : lt_cv_shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir fi shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Add ABI-specific directories to the system library path. sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action= if test -n "$hardcode_libdir_flag_spec" || test -n "$runpath_var" || test "X$hardcode_automatic" = "Xyes" ; then # We can hardcode non-existent directories. if test "$hardcode_direct" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && test "$hardcode_minus_L" != no; then # Linking always hardcodes the temporary library directory. hardcode_action=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action=unsupported fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 $as_echo "$hardcode_action" >&6; } if test "$hardcode_action" = relink || test "$inherit_rpath" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if ${ac_cv_lib_dl_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = xyes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes fi ;; *) ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" if test "x$ac_cv_func_shl_load" = xyes; then : lt_cv_dlopen="shl_load" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 $as_echo_n "checking for shl_load in -ldld... " >&6; } if ${ac_cv_lib_dld_shl_load+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char shl_load (); int main () { return shl_load (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_shl_load=yes else ac_cv_lib_dld_shl_load=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 $as_echo "$ac_cv_lib_dld_shl_load" >&6; } if test "x$ac_cv_lib_dld_shl_load" = xyes; then : lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" else ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" if test "x$ac_cv_func_dlopen" = xyes; then : lt_cv_dlopen="dlopen" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if ${ac_cv_lib_dl_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = xyes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 $as_echo_n "checking for dlopen in -lsvld... " >&6; } if ${ac_cv_lib_svld_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_svld_dlopen=yes else ac_cv_lib_svld_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 $as_echo "$ac_cv_lib_svld_dlopen" >&6; } if test "x$ac_cv_lib_svld_dlopen" = xyes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 $as_echo_n "checking for dld_link in -ldld... " >&6; } if ${ac_cv_lib_dld_dld_link+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dld_link (); int main () { return dld_link (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_dld_link=yes else ac_cv_lib_dld_dld_link=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 $as_echo "$ac_cv_lib_dld_dld_link" >&6; } if test "x$ac_cv_lib_dld_dld_link" = xyes; then : lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" fi fi fi fi fi fi ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 $as_echo_n "checking whether a program can dlopen itself... " >&6; } if ${lt_cv_dlopen_self+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisbility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed lt_cv_dlopen_self=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 $as_echo "$lt_cv_dlopen_self" >&6; } if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } if ${lt_cv_dlopen_self_static+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisbility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; esac else : # compilation failed lt_cv_dlopen_self_static=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 $as_echo "$lt_cv_dlopen_self_static" >&6; } fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi striplib= old_striplib= { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 $as_echo_n "checking whether stripping libraries is possible... " >&6; } if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } ;; esac fi # Report which library types will actually be built { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 $as_echo_n "checking if libtool supports shared libraries... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 $as_echo "$can_build_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 $as_echo_n "checking whether to build shared libraries... " >&6; } test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[4-9]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 $as_echo "$enable_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 $as_echo_n "checking whether to build static libraries... " >&6; } # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 $as_echo "$enable_static" >&6; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5 $as_echo_n "checking how to run the C++ preprocessor... " >&6; } if test -z "$CXXCPP"; then if ${ac_cv_prog_CXXCPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CXXCPP needs to be expanded for CXXCPP in "$CXX -E" "/lib/cpp" do ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CXXCPP=$CXXCPP fi CXXCPP=$ac_cv_prog_CXXCPP else ac_cv_prog_CXXCPP=$CXXCPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5 $as_echo "$CXXCPP" >&6; } ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu else _lt_caught_CXX_error=yes fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu archive_cmds_need_lc_CXX=no allow_undefined_flag_CXX= always_export_symbols_CXX=no archive_expsym_cmds_CXX= compiler_needs_object_CXX=no export_dynamic_flag_spec_CXX= hardcode_direct_CXX=no hardcode_direct_absolute_CXX=no hardcode_libdir_flag_spec_CXX= hardcode_libdir_flag_spec_ld_CXX= hardcode_libdir_separator_CXX= hardcode_minus_L_CXX=no hardcode_shlibpath_var_CXX=unsupported hardcode_automatic_CXX=no inherit_rpath_CXX=no module_cmds_CXX= module_expsym_cmds_CXX= link_all_deplibs_CXX=unknown old_archive_cmds_CXX=$old_archive_cmds reload_flag_CXX=$reload_flag reload_cmds_CXX=$reload_cmds no_undefined_flag_CXX= whole_archive_flag_spec_CXX= enable_shared_with_static_runtimes_CXX=no # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o objext_CXX=$objext # No sense in running all these tests if we already determined that # the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_caught_CXX_error" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} CFLAGS=$CXXFLAGS compiler=$CC compiler_CXX=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` if test -n "$compiler"; then # We don't want -fno-exception when compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' else lt_prog_compiler_no_builtin_flag_CXX= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if ${lt_cv_path_LD+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if ${lt_cv_prog_gnu_ld+:} false; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 $as_echo "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | $GREP 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_CXX= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } ld_shlibs_CXX=yes case $host_os in aix3*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aix[4-9]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_CXX='' hardcode_direct_CXX=yes hardcode_direct_absolute_CXX=yes hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes file_list_spec_CXX='${wl}-f,' if test "$GXX" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct_CXX=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_CXX=yes hardcode_libdir_flag_spec_CXX='-L$libdir' hardcode_libdir_separator_CXX= fi esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi export_dynamic_flag_spec_CXX='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. always_export_symbols_CXX=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_CXX='-berok' # Determine the default libpath from the value encoded in an empty # executable. if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath__CXX+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath__CXX"; then lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath__CXX"; then lt_cv_aix_libpath__CXX="/usr/lib:/lib" fi fi aix_libpath=$lt_cv_aix_libpath__CXX fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_CXX="-z nodefs" archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath__CXX+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath__CXX"; then lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath__CXX"; then lt_cv_aix_libpath__CXX="/usr/lib:/lib" fi fi aix_libpath=$lt_cv_aix_libpath__CXX fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_CXX=' ${wl}-bernotok' allow_undefined_flag_CXX=' ${wl}-berok' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_CXX='$convenience' fi archive_cmds_need_lc_CXX=yes # This is similar to how AIX traditionally builds its shared # libraries. archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_CXX=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_CXX=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; cygwin* | mingw* | pw32* | cegcc*) case $GXX,$cc_basename in ,cl* | no,cl*) # Native MSVC # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec_CXX=' ' allow_undefined_flag_CXX=unsupported always_export_symbols_CXX=yes file_list_spec_CXX='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; else $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, CXX)='true' enable_shared_with_static_runtimes_CXX=yes # Don't use ranlib old_postinstall_cmds_CXX='chmod 644 $oldlib' postlink_cmds_CXX='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile="$lt_outputfile.exe" lt_tool_outputfile="$lt_tool_outputfile.exe" ;; esac~ func_to_tool_file "$lt_outputfile"~ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # g++ # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_CXX='-L$libdir' export_dynamic_flag_spec_CXX='${wl}--export-all-symbols' allow_undefined_flag_CXX=unsupported always_export_symbols_CXX=no enable_shared_with_static_runtimes_CXX=yes if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_CXX=no fi ;; esac ;; darwin* | rhapsody*) archive_cmds_need_lc_CXX=no hardcode_direct_CXX=no hardcode_automatic_CXX=yes hardcode_shlibpath_var_CXX=unsupported if test "$lt_cv_ld_force_load" = "yes"; then whole_archive_flag_spec_CXX='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' else whole_archive_flag_spec_CXX='' fi link_all_deplibs_CXX=yes allow_undefined_flag_CXX="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=func_echo_all archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" if test "$lt_cv_apple_cc_single_mod" != "yes"; then archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" fi else ld_shlibs_CXX=no fi ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; freebsd[12]*) # C++ shared libraries reported to be fairly broken before # switch to ELF ld_shlibs_CXX=no ;; freebsd-elf*) archive_cmds_need_lc_CXX=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions ld_shlibs_CXX=yes ;; gnu*) ;; haiku*) archive_cmds_CXX='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' link_all_deplibs_CXX=yes ;; hpux9*) hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: export_dynamic_flag_spec_CXX='${wl}-E' hardcode_direct_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC*) archive_cmds_CXX='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: case $host_cpu in hppa*64*|ia64*) ;; *) export_dynamic_flag_spec_CXX='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no ;; *) hardcode_direct_CXX=yes hardcode_direct_absolute_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC*) case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; interix[3-9]*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' fi fi link_all_deplibs_CXX=yes ;; esac hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: inherit_rpath_CXX=yes ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc* | ecpc* ) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac archive_cmds_need_lc_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in *pgCC\ [1-5].* | *pgcpp\ [1-5].*) prelink_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' old_archive_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ $RANLIB $oldlib' archive_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' archive_expsym_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; *) # Version 6 and above use weak symbols archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; esac hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_CXX='-rpath $libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' ;; xl* | mpixl* | bgxl*) # IBM XL 8.0 on PPC, with GNU ld hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' archive_cmds_CXX='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds_CXX='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 no_undefined_flag_CXX=' -zdefs' archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' hardcode_libdir_flag_spec_CXX='-R$libdir' whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object_CXX=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; m88k*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; *nto* | *qnx*) ld_shlibs_CXX=yes ;; openbsd2*) # C++ shared libraries are fairly broken ld_shlibs_CXX=no ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no hardcode_direct_absolute_CXX=yes archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' export_dynamic_flag_spec_CXX='${wl}-E' whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd=func_echo_all else ld_shlibs_CXX=no fi ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' hardcode_libdir_separator_CXX=: # Archives containing C++ object files must be created using # the KAI C++ compiler. case $host in osf3*) old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; *) old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;; esac ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; cxx*) case $host in osf3*) allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' ;; *) allow_undefined_flag_CXX=' -expect_unresolved \*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~ $RM $lib.exp' hardcode_libdir_flag_spec_CXX='-rpath $libdir' ;; esac hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' case $host in osf3*) archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) archive_cmds_CXX='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; esac hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ archive_cmds_need_lc_CXX=yes no_undefined_flag_CXX=' -zdefs' archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_shlibpath_var_CXX=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract' ;; esac link_all_deplibs_CXX=yes output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then no_undefined_flag_CXX=' ${wl}-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' fi hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir' case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag_CXX='${wl}-z,text' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag_CXX='${wl}-z,text' allow_undefined_flag_CXX='${wl}-z,nodefs' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-R,$libdir' hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes export_dynamic_flag_spec_CXX='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' old_archive_cmds_CXX='$CC -Tprelink_objects $oldobjs~ '"$old_archive_cmds_CXX" reload_cmds_CXX='$CC -Tprelink_objects $reload_objs~ '"$reload_cmds_CXX" ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 $as_echo "$ld_shlibs_CXX" >&6; } test "$ld_shlibs_CXX" = no && can_build_shared=no GCC_CXX="$GXX" LD_CXX="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... # Dependencies to place before and after the object being linked: predep_objects_CXX= postdep_objects_CXX= predeps_CXX= postdeps_CXX= compiler_lib_search_path_CXX= cat > conftest.$ac_ext <<_LT_EOF class Foo { public: Foo (void) { a = 0; } private: int a; }; _LT_EOF _lt_libdeps_save_CFLAGS=$CFLAGS case "$CC $CFLAGS " in #( *\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; *\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; esac if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do case ${prev}${p} in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" || test $p = "-R"; then prev=$p continue fi # Expand the sysroot to ease extracting the directories later. if test -z "$prev"; then case $p in -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; esac fi case $p in =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; esac if test "$pre_test_object_deps_done" = no; then case ${prev} in -L | -R) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$compiler_lib_search_path_CXX"; then compiler_lib_search_path_CXX="${prev}${p}" else compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$postdeps_CXX"; then postdeps_CXX="${prev}${p}" else postdeps_CXX="${postdeps_CXX} ${prev}${p}" fi fi prev= ;; *.lto.$objext) ;; # Ignore GCC LTO objects *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$predep_objects_CXX"; then predep_objects_CXX="$p" else predep_objects_CXX="$predep_objects_CXX $p" fi else if test -z "$postdep_objects_CXX"; then postdep_objects_CXX="$p" else postdep_objects_CXX="$postdep_objects_CXX $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling CXX test program" fi $RM -f confest.$objext CFLAGS=$_lt_libdeps_save_CFLAGS # PORTME: override above test on systems where it is broken case $host_os in interix[3-9]*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. predep_objects_CXX= postdep_objects_CXX= postdeps_CXX= ;; linux*) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac if test "$solaris_use_stlport4" != yes; then postdeps_CXX='-library=Cstd -library=Crun' fi ;; esac ;; solaris*) case $cc_basename in CC* | sunCC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. if test "$solaris_use_stlport4" != yes; then postdeps_CXX='-library=Cstd -library=Crun' fi ;; esac ;; esac case " $postdeps_CXX " in *" -lc "*) archive_cmds_need_lc_CXX=no ;; esac compiler_lib_search_dirs_CXX= if test -n "${compiler_lib_search_path_CXX}"; then compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` fi lt_prog_compiler_wl_CXX= lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX= # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic_CXX='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic_CXX='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_CXX='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all lt_prog_compiler_pic_CXX= ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. lt_prog_compiler_static_CXX= ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_CXX=-Kconform_pic fi ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic_CXX='-fPIC -shared' ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac else case $host_os in aix[4-9]*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' else lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_CXX='-DDLL_EXPORT' ;; dgux*) case $cc_basename in ec++*) lt_prog_compiler_pic_CXX='-KPIC' ;; ghcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then lt_prog_compiler_pic_CXX='+Z' fi ;; aCC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_CXX='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # KAI C++ Compiler lt_prog_compiler_wl_CXX='--backend -Wl,' lt_prog_compiler_pic_CXX='-fPIC' ;; ecpc* ) # old Intel C++ for x86_64 which still supported -KPIC. lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-static' ;; icpc* ) # Intel C++, used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-fPIC' lt_prog_compiler_static_CXX='-static' ;; pgCC* | pgcpp*) # Portland Group C++ compiler lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-fpic' lt_prog_compiler_static_CXX='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; xlc* | xlC* | bgxl[cC]* | mpixl[cC]*) # IBM XL 8.0, 9.0 on PPC and BlueGene lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-qpic' lt_prog_compiler_static_CXX='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' lt_prog_compiler_wl_CXX='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) lt_prog_compiler_pic_CXX='-W c,exportall' ;; *) ;; esac ;; netbsd*) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic_CXX='-fPIC -shared' ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) lt_prog_compiler_wl_CXX='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 lt_prog_compiler_pic_CXX='-pic' ;; cxx*) # Digital/Compaq C++ lt_prog_compiler_wl_CXX='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' lt_prog_compiler_wl_CXX='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x lt_prog_compiler_pic_CXX='-pic' lt_prog_compiler_static_CXX='-Bstatic' ;; lcc*) # Lucid lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 lt_prog_compiler_pic_CXX='-KPIC' ;; *) ;; esac ;; vxworks*) ;; *) lt_prog_compiler_can_build_shared_CXX=no ;; esac fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_CXX= ;; *) lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } if ${lt_cv_prog_compiler_pic_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_CXX=$lt_prog_compiler_pic_CXX fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_CXX" >&5 $as_echo "$lt_cv_prog_compiler_pic_CXX" >&6; } lt_prog_compiler_pic_CXX=$lt_cv_prog_compiler_pic_CXX # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; } if ${lt_cv_prog_compiler_pic_works_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works_CXX=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works_CXX=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works_CXX" >&5 $as_echo "$lt_cv_prog_compiler_pic_works_CXX" >&6; } if test x"$lt_cv_prog_compiler_pic_works_CXX" = xyes; then case $lt_prog_compiler_pic_CXX in "" | " "*) ;; *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; esac else lt_prog_compiler_pic_CXX= lt_prog_compiler_can_build_shared_CXX=no fi fi # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if ${lt_cv_prog_compiler_static_works_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works_CXX=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works_CXX=yes fi else lt_cv_prog_compiler_static_works_CXX=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works_CXX" >&5 $as_echo "$lt_cv_prog_compiler_static_works_CXX" >&6; } if test x"$lt_cv_prog_compiler_static_works_CXX" = xyes; then : else lt_prog_compiler_static_CXX= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_CXX=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_CXX=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5 $as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_CXX=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_CXX=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5 $as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } if test "$hard_links" = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 $as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' case $host_os in aix[4-9]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm # Also, AIX nm treats weak defined symbols like other global defined # symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) export_symbols_cmds_CXX="$ltdll_cmds" ;; cygwin* | mingw* | cegcc*) case $cc_basename in cl*) ;; *) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' exclude_expsyms_CXX='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' ;; esac ;; *) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 $as_echo "$ld_shlibs_CXX" >&6; } test "$ld_shlibs_CXX" = no && can_build_shared=no with_gnu_ld_CXX=$with_gnu_ld # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_CXX" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_CXX=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_CXX in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } if ${lt_cv_archive_cmds_need_lc_CXX+:} false; then : $as_echo_n "(cached) " >&6 else $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_CXX pic_flag=$lt_prog_compiler_pic_CXX compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_CXX allow_undefined_flag_CXX= if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then lt_cv_archive_cmds_need_lc_CXX=no else lt_cv_archive_cmds_need_lc_CXX=yes fi allow_undefined_flag_CXX=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc_CXX" >&5 $as_echo "$lt_cv_archive_cmds_need_lc_CXX" >&6; } archive_cmds_need_lc_CXX=$lt_cv_archive_cmds_need_lc_CXX ;; esac fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[4-9]*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$cc_basename in yes,*) # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac dynamic_linker='Win32 ld.exe' ;; *,cl*) # Native MSVC libname_spec='$name' soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' library_names_spec='${libname}.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec="$LIB" if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC wrapper library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; haiku*) version_type=linux need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LIBRARY_PATH shlibpath_overrides_runpath=yes sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' # or fails outright, so override atomically: install_override_mode=555 ;; interix[3-9]*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH if ${lt_cv_shlibpath_overrides_runpath+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\"" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : lt_cv_shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir fi shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Add ABI-specific directories to the system library path. sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action_CXX= if test -n "$hardcode_libdir_flag_spec_CXX" || test -n "$runpath_var_CXX" || test "X$hardcode_automatic_CXX" = "Xyes" ; then # We can hardcode non-existent directories. if test "$hardcode_direct_CXX" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, CXX)" != no && test "$hardcode_minus_L_CXX" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_CXX=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_CXX=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_CXX=unsupported fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_CXX" >&5 $as_echo "$hardcode_action_CXX" >&6; } if test "$hardcode_action_CXX" = relink || test "$inherit_rpath_CXX" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi fi # test -n "$compiler" CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld fi # test "$_lt_caught_CXX_error" != yes ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_config_commands="$ac_config_commands libtool" # Only expand once: # Checks for typedefs, structures, and compiler characteristics. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 $as_echo_n "checking for an ANSI C-conforming const... " >&6; } if ${ac_cv_c_const+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __cplusplus /* Ultrix mips cc rejects this sort of thing. */ typedef int charset[2]; const charset cs = { 0, 0 }; /* SunOS 4.1.1 cc rejects this. */ char const *const *pcpcc; char **ppc; /* NEC SVR4.0.2 mips cc rejects this. */ struct point {int x, y;}; static struct point const zero = {0,0}; /* AIX XL C 1.02.0.0 rejects this. It does not let you subtract one const X* pointer from another in an arm of an if-expression whose if-part is not a constant expression */ const char *g = "string"; pcpcc = &g + (g ? g-g : 0); /* HPUX 7.0 cc rejects these. */ ++pcpcc; ppc = (char**) pcpcc; pcpcc = (char const *const *) ppc; { /* SCO 3.2v4 cc rejects this sort of thing. */ char tx; char *t = &tx; char const *s = 0 ? (char *) 0 : (char const *) 0; *t++ = 0; if (s) return 0; } { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ int x[] = {25, 17}; const int *foo = &x[0]; ++foo; } { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ typedef const int *iptr; iptr p = 0; ++p; } { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ struct s { int j; const int *ap[3]; } bx; struct s *b = &bx; b->j = 5; } { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ const int foo = 10; if (!foo) return 0; } return !cs[0] && !zero.x; #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_const=yes else ac_cv_c_const=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 $as_echo "$ac_cv_c_const" >&6; } if test $ac_cv_c_const = no; then $as_echo "#define const /**/" >>confdefs.h fi ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default" if test "x$ac_cv_type_off_t" = xyes; then : else cat >>confdefs.h <<_ACEOF #define off_t long int _ACEOF fi ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" if test "x$ac_cv_type_size_t" = xyes; then : else cat >>confdefs.h <<_ACEOF #define size_t unsigned int _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5 $as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; } if ${ac_cv_header_time+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include int main () { if ((struct tm *) 0) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_time=yes else ac_cv_header_time=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5 $as_echo "$ac_cv_header_time" >&6; } if test $ac_cv_header_time = yes; then $as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; } if ${ac_cv_struct_tm+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { struct tm tm; int *p = &tm.tm_sec; return !p; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_struct_tm=time.h else ac_cv_struct_tm=sys/time.h fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_tm" >&5 $as_echo "$ac_cv_struct_tm" >&6; } if test $ac_cv_struct_tm = sys/time.h; then $as_echo "#define TM_IN_SYS_TIME 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working volatile" >&5 $as_echo_n "checking for working volatile... " >&6; } if ${ac_cv_c_volatile+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { volatile int x; int * volatile y = (int *) 0; return !x && !y; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_volatile=yes else ac_cv_c_volatile=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_volatile" >&5 $as_echo "$ac_cv_c_volatile" >&6; } if test $ac_cv_c_volatile = no; then $as_echo "#define volatile /**/" >>confdefs.h fi # Checks for library functions. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether lstat correctly handles trailing slash" >&5 $as_echo_n "checking whether lstat correctly handles trailing slash... " >&6; } if ${ac_cv_func_lstat_dereferences_slashed_symlink+:} false; then : $as_echo_n "(cached) " >&6 else rm -f conftest.sym conftest.file echo >conftest.file if test "$as_ln_s" = "ln -s" && ln -s conftest.file conftest.sym; then if test "$cross_compiling" = yes; then : ac_cv_func_lstat_dereferences_slashed_symlink=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { struct stat sbuf; /* Linux will dereference the symlink and fail, as required by POSIX. That is better in the sense that it means we will not have to compile and use the lstat wrapper. */ return lstat ("conftest.sym/", &sbuf) == 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_lstat_dereferences_slashed_symlink=yes else ac_cv_func_lstat_dereferences_slashed_symlink=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi else # If the `ln -s' command failed, then we probably don't even # have an lstat function. ac_cv_func_lstat_dereferences_slashed_symlink=no fi rm -f conftest.sym conftest.file fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_lstat_dereferences_slashed_symlink" >&5 $as_echo "$ac_cv_func_lstat_dereferences_slashed_symlink" >&6; } test $ac_cv_func_lstat_dereferences_slashed_symlink = yes && cat >>confdefs.h <<_ACEOF #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 _ACEOF if test "x$ac_cv_func_lstat_dereferences_slashed_symlink" = xno; then case " $LIBOBJS " in *" lstat.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS lstat.$ac_objext" ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether lstat accepts an empty string" >&5 $as_echo_n "checking whether lstat accepts an empty string... " >&6; } if ${ac_cv_func_lstat_empty_string_bug+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_func_lstat_empty_string_bug=yes else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { struct stat sbuf; return lstat ("", &sbuf) == 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_lstat_empty_string_bug=no else ac_cv_func_lstat_empty_string_bug=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_lstat_empty_string_bug" >&5 $as_echo "$ac_cv_func_lstat_empty_string_bug" >&6; } if test $ac_cv_func_lstat_empty_string_bug = yes; then case " $LIBOBJS " in *" lstat.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS lstat.$ac_objext" ;; esac cat >>confdefs.h <<_ACEOF #define HAVE_LSTAT_EMPTY_STRING_BUG 1 _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether lstat correctly handles trailing slash" >&5 $as_echo_n "checking whether lstat correctly handles trailing slash... " >&6; } if ${ac_cv_func_lstat_dereferences_slashed_symlink+:} false; then : $as_echo_n "(cached) " >&6 else rm -f conftest.sym conftest.file echo >conftest.file if test "$as_ln_s" = "ln -s" && ln -s conftest.file conftest.sym; then if test "$cross_compiling" = yes; then : ac_cv_func_lstat_dereferences_slashed_symlink=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { struct stat sbuf; /* Linux will dereference the symlink and fail, as required by POSIX. That is better in the sense that it means we will not have to compile and use the lstat wrapper. */ return lstat ("conftest.sym/", &sbuf) == 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_lstat_dereferences_slashed_symlink=yes else ac_cv_func_lstat_dereferences_slashed_symlink=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi else # If the `ln -s' command failed, then we probably don't even # have an lstat function. ac_cv_func_lstat_dereferences_slashed_symlink=no fi rm -f conftest.sym conftest.file fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_lstat_dereferences_slashed_symlink" >&5 $as_echo "$ac_cv_func_lstat_dereferences_slashed_symlink" >&6; } test $ac_cv_func_lstat_dereferences_slashed_symlink = yes && cat >>confdefs.h <<_ACEOF #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 _ACEOF if test "x$ac_cv_func_lstat_dereferences_slashed_symlink" = xno; then case " $LIBOBJS " in *" lstat.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS lstat.$ac_objext" ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working memcmp" >&5 $as_echo_n "checking for working memcmp... " >&6; } if ${ac_cv_func_memcmp_working+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_func_memcmp_working=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { /* Some versions of memcmp are not 8-bit clean. */ char c0 = '\100', c1 = '\200', c2 = '\201'; if (memcmp(&c0, &c2, 1) >= 0 || memcmp(&c1, &c2, 1) >= 0) return 1; /* The Next x86 OpenStep bug shows up only when comparing 16 bytes or more and with at least one buffer not starting on a 4-byte boundary. William Lewis provided this test program. */ { char foo[21]; char bar[21]; int i; for (i = 0; i < 4; i++) { char *a = foo + i; char *b = bar + i; strcpy (a, "--------01111111"); strcpy (b, "--------10000000"); if (memcmp (a, b, 16) >= 0) return 1; } return 0; } ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_memcmp_working=yes else ac_cv_func_memcmp_working=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_memcmp_working" >&5 $as_echo "$ac_cv_func_memcmp_working" >&6; } test $ac_cv_func_memcmp_working = no && case " $LIBOBJS " in *" memcmp.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS memcmp.$ac_objext" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat accepts an empty string" >&5 $as_echo_n "checking whether stat accepts an empty string... " >&6; } if ${ac_cv_func_stat_empty_string_bug+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_func_stat_empty_string_bug=yes else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { struct stat sbuf; return stat ("", &sbuf) == 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_stat_empty_string_bug=no else ac_cv_func_stat_empty_string_bug=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_stat_empty_string_bug" >&5 $as_echo "$ac_cv_func_stat_empty_string_bug" >&6; } if test $ac_cv_func_stat_empty_string_bug = yes; then case " $LIBOBJS " in *" stat.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS stat.$ac_objext" ;; esac cat >>confdefs.h <<_ACEOF #define HAVE_STAT_EMPTY_STRING_BUG 1 _ACEOF fi for ac_func in strftime do : ac_fn_c_check_func "$LINENO" "strftime" "ac_cv_func_strftime" if test "x$ac_cv_func_strftime" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRFTIME 1 _ACEOF else # strftime is in -lintl on SCO UNIX. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for strftime in -lintl" >&5 $as_echo_n "checking for strftime in -lintl... " >&6; } if ${ac_cv_lib_intl_strftime+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char strftime (); int main () { return strftime (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_strftime=yes else ac_cv_lib_intl_strftime=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_strftime" >&5 $as_echo "$ac_cv_lib_intl_strftime" >&6; } if test "x$ac_cv_lib_intl_strftime" = xyes; then : $as_echo "#define HAVE_STRFTIME 1" >>confdefs.h LIBS="-lintl $LIBS" fi fi done for ac_func in memset sqrt strcasecmp strerror strncasecmp strstr fdatasync ftruncate getcwd gettimeofday localtime_r memmove strerror do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done # Checks for installed libraries { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_prepare_v2 in -lsqlite3" >&5 $as_echo_n "checking for sqlite3_prepare_v2 in -lsqlite3... " >&6; } if ${ac_cv_lib_sqlite3_sqlite3_prepare_v2+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsqlite3 -lm $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char sqlite3_prepare_v2 (); int main () { return sqlite3_prepare_v2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_sqlite3_sqlite3_prepare_v2=yes else ac_cv_lib_sqlite3_sqlite3_prepare_v2=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_prepare_v2" >&5 $as_echo "$ac_cv_lib_sqlite3_sqlite3_prepare_v2" >&6; } if test "x$ac_cv_lib_sqlite3_sqlite3_prepare_v2" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBSQLITE3 1 _ACEOF LIBS="-lsqlite3 $LIBS" else as_fn_error $? "'libsqlite3' is required but it doesn't seem to be installed on this system." "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inflateInit_ in -lz" >&5 $as_echo_n "checking for inflateInit_ in -lz... " >&6; } if ${ac_cv_lib_z_inflateInit_+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lz -lm $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char inflateInit_ (); int main () { return inflateInit_ (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_z_inflateInit_=yes else ac_cv_lib_z_inflateInit_=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_inflateInit_" >&5 $as_echo "$ac_cv_lib_z_inflateInit_" >&6; } if test "x$ac_cv_lib_z_inflateInit_" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBZ 1 _ACEOF LIBS="-lz $LIBS" else as_fn_error $? "'libz' is required but it doesn't seem to be installed on this system." "$LINENO" 5 fi ac_config_files="$ac_config_files Makefile src/Makefile src/headers/Makefile src/gaiaaux/Makefile src/gaiaexif/Makefile src/gaiageo/Makefile src/gaiageo/flex/Makefile src/gaiageo/lemon/Makefile src/gaiageo/lemon/lemon_src/Makefile src/geopackage/Makefile src/spatialite/Makefile src/shapefiles/Makefile src/dxf/Makefile src/md5/Makefile src/srsinit/Makefile src/srsinit/epsg_update/Makefile src/virtualtext/Makefile src/wfs/Makefile test/Makefile test/sql_stmt_tests/Makefile test/sql_stmt_geos_tests/Makefile test/sql_stmt_geosadvanced_tests/Makefile test/sql_stmt_geostrunk_tests/Makefile test/sql_stmt_proj_tests/Makefile test/sql_stmt_mathsql_tests/Makefile test/sql_stmt_lwgeom_tests/Makefile test/sql_stmt_libxml2_tests/Makefile test/sql_stmt_security_tests/Makefile test/sql_stmt_xmlsec_tests/Makefile examples/Makefile Doxyfile spatialite.pc" #----------------------------------------------------------------------- # --enable-mathsql # # Check whether --enable-mathsql was given. if test "${enable_mathsql+set}" = set; then : enableval=$enable_mathsql; else enable_mathsql=yes fi if test x"$enable_mathsql" != "xyes"; then $as_echo "#define OMIT_MATHSQL 1" >>confdefs.h fi #----------------------------------------------------------------------- #----------------------------------------------------------------------- # --enable-geocallbacks # # Check whether --enable-geocallbacks was given. if test "${enable_geocallbacks+set}" = set; then : enableval=$enable_geocallbacks; else enable_geocallbacks=no fi if test x"$enable_geocallbacks" == "xyes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_rtree_geometry_callback in -lsqlite3" >&5 $as_echo_n "checking for sqlite3_rtree_geometry_callback in -lsqlite3... " >&6; } if ${ac_cv_lib_sqlite3_sqlite3_rtree_geometry_callback+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsqlite3 -lm $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char sqlite3_rtree_geometry_callback (); int main () { return sqlite3_rtree_geometry_callback (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_sqlite3_sqlite3_rtree_geometry_callback=yes else ac_cv_lib_sqlite3_sqlite3_rtree_geometry_callback=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_rtree_geometry_callback" >&5 $as_echo "$ac_cv_lib_sqlite3_sqlite3_rtree_geometry_callback" >&6; } if test "x$ac_cv_lib_sqlite3_sqlite3_rtree_geometry_callback" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBSQLITE3 1 _ACEOF LIBS="-lsqlite3 $LIBS" else as_fn_error $? "obsolete 'libsqlite3' (< v.3.7.3). please retry specifying: --disable-geocallbacks" "$LINENO" 5 fi else $as_echo "#define OMIT_GEOCALLBACKS 1" >>confdefs.h fi #----------------------------------------------------------------------- #----------------------------------------------------------------------- # --enable-proj # # Check whether --enable-proj was given. if test "${enable_proj+set}" = set; then : enableval=$enable_proj; else enable_proj=yes fi if test x"$enable_proj" != "xno"; then for ac_header in proj_api.h do : ac_fn_c_check_header_mongrel "$LINENO" "proj_api.h" "ac_cv_header_proj_api_h" "$ac_includes_default" if test "x$ac_cv_header_proj_api_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_PROJ_API_H 1 _ACEOF else as_fn_error $? "cannot find proj_api.h, bailing out" "$LINENO" 5 fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing pj_init_plus" >&5 $as_echo_n "checking for library containing pj_init_plus... " >&6; } if ${ac_cv_search_pj_init_plus+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char pj_init_plus (); int main () { return pj_init_plus (); ; return 0; } _ACEOF for ac_lib in '' proj; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib -lm $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_pj_init_plus=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_pj_init_plus+:} false; then : break fi done if ${ac_cv_search_pj_init_plus+:} false; then : else ac_cv_search_pj_init_plus=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_pj_init_plus" >&5 $as_echo "$ac_cv_search_pj_init_plus" >&6; } ac_res=$ac_cv_search_pj_init_plus if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" else as_fn_error $? "'libproj' is required but it doesn't seem to be installed on this system." "$LINENO" 5 fi else $as_echo "#define OMIT_PROJ 1" >>confdefs.h fi #----------------------------------------------------------------------- #----------------------------------------------------------------------- # --enable-iconv # # Check whether --enable-iconv was given. if test "${enable_iconv+set}" = set; then : enableval=$enable_iconv; else enable_iconv=yes fi if test x"$enable_iconv" != "xno"; then for ac_header in iconv.h do : ac_fn_c_check_header_mongrel "$LINENO" "iconv.h" "ac_cv_header_iconv_h" "$ac_includes_default" if test "x$ac_cv_header_iconv_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_ICONV_H 1 _ACEOF else as_fn_error $? "cannot find iconv.h, bailing out" "$LINENO" 5 fi done # on some systems "iconv()" lives in libc. On others it lives in libiconv # on older systems "libiconv()" lives in libiconv { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing iconv" >&5 $as_echo_n "checking for library containing iconv... " >&6; } if ${ac_cv_search_iconv+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char iconv (); int main () { return iconv (); ; return 0; } _ACEOF for ac_lib in '' iconv; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_iconv=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_iconv+:} false; then : break fi done if ${ac_cv_search_iconv+:} false; then : else ac_cv_search_iconv=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_iconv" >&5 $as_echo "$ac_cv_search_iconv" >&6; } ac_res=$ac_cv_search_iconv if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing libiconv" >&5 $as_echo_n "checking for library containing libiconv... " >&6; } if ${ac_cv_search_libiconv+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char libiconv (); int main () { return libiconv (); ; return 0; } _ACEOF for ac_lib in '' iconv; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_libiconv=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_libiconv+:} false; then : break fi done if ${ac_cv_search_libiconv+:} false; then : else ac_cv_search_libiconv=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_libiconv" >&5 $as_echo "$ac_cv_search_libiconv" >&6; } ac_res=$ac_cv_search_libiconv if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" else as_fn_error $? "'libiconv' is required but it doesn't seem to be installed on this system." "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing locale_charset" >&5 $as_echo_n "checking for library containing locale_charset... " >&6; } if ${ac_cv_search_locale_charset+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char locale_charset (); int main () { return locale_charset (); ; return 0; } _ACEOF for ac_lib in '' charset; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_locale_charset=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_locale_charset+:} false; then : break fi done if ${ac_cv_search_locale_charset+:} false; then : else ac_cv_search_locale_charset=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_locale_charset" >&5 $as_echo "$ac_cv_search_locale_charset" >&6; } ac_res=$ac_cv_search_locale_charset if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing nl_langinfo" >&5 $as_echo_n "checking for library containing nl_langinfo... " >&6; } if ${ac_cv_search_nl_langinfo+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char nl_langinfo (); int main () { return nl_langinfo (); ; return 0; } _ACEOF for ac_lib in '' c; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_nl_langinfo=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_nl_langinfo+:} false; then : break fi done if ${ac_cv_search_nl_langinfo+:} false; then : else ac_cv_search_nl_langinfo=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_nl_langinfo" >&5 $as_echo "$ac_cv_search_nl_langinfo" >&6; } ac_res=$ac_cv_search_nl_langinfo if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" else as_fn_error $? "'libcharset' is required but it doesn't seem to be installed on this system." "$LINENO" 5 fi fi else $as_echo "#define OMIT_ICONV 1" >>confdefs.h fi #----------------------------------------------------------------------- # --enable-freexl # # Check whether --enable-freexl was given. if test "${enable_freexl+set}" = set; then : enableval=$enable_freexl; else enable_freexl=yes fi if test x"$enable_freexl" != "xno"; then for ac_header in freexl.h do : ac_fn_c_check_header_mongrel "$LINENO" "freexl.h" "ac_cv_header_freexl_h" "$ac_includes_default" if test "x$ac_cv_header_freexl_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_FREEXL_H 1 _ACEOF else as_fn_error $? "cannot find freexl.h, bailing out" "$LINENO" 5 fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing freexl_open" >&5 $as_echo_n "checking for library containing freexl_open... " >&6; } if ${ac_cv_search_freexl_open+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char freexl_open (); int main () { return freexl_open (); ; return 0; } _ACEOF for ac_lib in '' freexl; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib -lm $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_freexl_open=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_freexl_open+:} false; then : break fi done if ${ac_cv_search_freexl_open+:} false; then : else ac_cv_search_freexl_open=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_freexl_open" >&5 $as_echo "$ac_cv_search_freexl_open" >&6; } ac_res=$ac_cv_search_freexl_open if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" else as_fn_error $? "'libfreexl' is required but it doesn't seem to be installed on this system." "$LINENO" 5 fi else $as_echo "#define OMIT_FREEXL 1" >>confdefs.h fi #----------------------------------------------------------------------- #----------------------------------------------------------------------- # --enable-epsg # # Check whether --enable-epsg was given. if test "${enable_epsg+set}" = set; then : enableval=$enable_epsg; else enable_epsg=yes fi if test x"$enable_epsg" != "xyes"; then $as_echo "#define OMIT_EPSG 1" >>confdefs.h fi #----------------------------------------------------------------------- #----------------------------------------------------------------------- # --enable-geos # # Check whether --enable-geos was given. if test "${enable_geos+set}" = set; then : enableval=$enable_geos; else enable_geos=yes fi if test x"$enable_geos" != "xno"; then #----------------------------------------------------------------------- # --with-geosconfig # # Check whether --with-geosconfig was given. if test "${with_geosconfig+set}" = set; then : withval=$with_geosconfig; GEOSCONFIG="$withval" else GEOSCONFIG="" fi if test "x$GEOSCONFIG" = "x"; then # GEOSCONFIG was not specified, so search within the current path # Extract the first word of "geos-config", so it can be a program name with args. set dummy geos-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_GEOSCONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $GEOSCONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_GEOSCONFIG="$GEOSCONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_GEOSCONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi GEOSCONFIG=$ac_cv_path_GEOSCONFIG if test -n "$GEOSCONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GEOSCONFIG" >&5 $as_echo "$GEOSCONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # If we couldn't find geos-config, display an error if test "x$GEOSCONFIG" = "x"; then as_fn_error $? "could not find geos-config within the current path. You may need to try re-running configure with a --with-geosconfig parameter." "$LINENO" 5 fi else # GEOSCONFIG was specified; display a message to the user if test "x$GEOSCONFIG" = "xyes"; then as_fn_error $? "you must specify a parameter to --with-geosconfig, e.g. --with-geosconfig=/path/to/geos-config" "$LINENO" 5 else if test -f $GEOSCONFIG; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: Using user-specified geos-config file: $GEOSCONFIG" >&5 $as_echo "Using user-specified geos-config file: $GEOSCONFIG" >&6; } else as_fn_error $? "the user-specified geos-config file $GEOSCONFIG does not exist" "$LINENO" 5 fi fi fi # Extract the linker and include flags GEOS_LDFLAGS=`$GEOSCONFIG --ldflags` GEOS_CFLAGS=-I`$GEOSCONFIG --includes` # Ensure that we can parse geos_c.h CPPFLAGS_SAVE="$CPPFLAGS" CPPFLAGS="$GEOS_CFLAGS" for ac_header in geos_c.h do : ac_fn_c_check_header_mongrel "$LINENO" "geos_c.h" "ac_cv_header_geos_c_h" "$ac_includes_default" if test "x$ac_cv_header_geos_c_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GEOS_C_H 1 _ACEOF else as_fn_error $? "could not find geos_c.h - you may need to specify the directory of a geos-config file using --with-geosconfig" "$LINENO" 5 fi done CPPFLAGS="$CPPFLAGS_SAVE" # Ensure we can link against libgeos_c LIBS_SAVE="$LIBS" LIBS="$GEOS_LDFLAGS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing GEOSTopologyPreserveSimplify" >&5 $as_echo_n "checking for library containing GEOSTopologyPreserveSimplify... " >&6; } if ${ac_cv_search_GEOSTopologyPreserveSimplify+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char GEOSTopologyPreserveSimplify (); int main () { return GEOSTopologyPreserveSimplify (); ; return 0; } _ACEOF for ac_lib in '' geos_c; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_GEOSTopologyPreserveSimplify=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_GEOSTopologyPreserveSimplify+:} false; then : break fi done if ${ac_cv_search_GEOSTopologyPreserveSimplify+:} false; then : else ac_cv_search_GEOSTopologyPreserveSimplify=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_GEOSTopologyPreserveSimplify" >&5 $as_echo "$ac_cv_search_GEOSTopologyPreserveSimplify" >&6; } ac_res=$ac_cv_search_GEOSTopologyPreserveSimplify if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" else as_fn_error $? "could not find libgeos_c - you may need to specify the directory of a geos-config file using --with-geosconfig" "$LINENO" 5 fi LIBS="$LIBS_SAVE" LIBS=$LIBS$GEOS_LDFLAGS' -lgeos_c' #----------------------------------------------------------------------- # --enable-geosadvanced # # Check whether --enable-geosadvanced was given. if test "${enable_geosadvanced+set}" = set; then : enableval=$enable_geosadvanced; else enable_geosadvanced=yes fi if test x"$enable_geosadvanced" != "xno"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing GEOSCoveredBy" >&5 $as_echo_n "checking for library containing GEOSCoveredBy... " >&6; } if ${ac_cv_search_GEOSCoveredBy+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char GEOSCoveredBy (); int main () { return GEOSCoveredBy (); ; return 0; } _ACEOF for ac_lib in '' geos_c; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_GEOSCoveredBy=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_GEOSCoveredBy+:} false; then : break fi done if ${ac_cv_search_GEOSCoveredBy+:} false; then : else ac_cv_search_GEOSCoveredBy=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_GEOSCoveredBy" >&5 $as_echo "$ac_cv_search_GEOSCoveredBy" >&6; } ac_res=$ac_cv_search_GEOSCoveredBy if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" else as_fn_error $? "obsolete 'libgeos_c' (< v.3.3.0). please retry specifying: --disable-geosadvanced." "$LINENO" 5 fi $as_echo "#define GEOS_ADVANCED 1" >>confdefs.h fi #----------------------------------------------------------------------- # --enable-geostrunk # # Check whether --enable-geostrunk was given. if test "${enable_geostrunk+set}" = set; then : enableval=$enable_geostrunk; else enable_geostrunk=no fi if test x"$enable_geostrunk" != "xno"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing GEOSDelaunayTriangulation" >&5 $as_echo_n "checking for library containing GEOSDelaunayTriangulation... " >&6; } if ${ac_cv_search_GEOSDelaunayTriangulation+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char GEOSDelaunayTriangulation (); int main () { return GEOSDelaunayTriangulation (); ; return 0; } _ACEOF for ac_lib in '' geos_c; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_GEOSDelaunayTriangulation=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_GEOSDelaunayTriangulation+:} false; then : break fi done if ${ac_cv_search_GEOSDelaunayTriangulation+:} false; then : else ac_cv_search_GEOSDelaunayTriangulation=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_GEOSDelaunayTriangulation" >&5 $as_echo "$ac_cv_search_GEOSDelaunayTriangulation" >&6; } ac_res=$ac_cv_search_GEOSDelaunayTriangulation if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" else as_fn_error $? "'libgeos_c' (>= v.3.4.0) is required but it doesn't seem to be installed on this system." "$LINENO" 5 fi $as_echo "#define GEOS_TRUNK 1" >>confdefs.h fi #----------------------------------------------------------------------- # --enable-lwgeom # # Check whether --enable-lwgeom was given. if test "${enable_lwgeom+set}" = set; then : enableval=$enable_lwgeom; else enable_lwgeom=no fi if test x"$enable_lwgeom" != "xno"; then for ac_header in liblwgeom.h do : ac_fn_c_check_header_mongrel "$LINENO" "liblwgeom.h" "ac_cv_header_liblwgeom_h" "$ac_includes_default" if test "x$ac_cv_header_liblwgeom_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBLWGEOM_H 1 _ACEOF else as_fn_error $? "cannot find liblwgeom.h, bailing out" "$LINENO" 5 fi done _save_libs="$LIBS" LIBS=$LIBS' -llwgeom -lgeos_c' cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main() { return lwgeom_make_valid(); return 0; } void lwgeom_init_allocators(void) { return; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : $as_echo "#define ENABLE_LWGEOM 1" >>confdefs.h else as_fn_error $? "'liblwgeom' doesn't seem to be installed on this system; unsupported lwgeom_make_valid()." "$LINENO" 5 fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$_save_libs" LIBS=$LIBS' -llwgeom -lgeos_c' # # testing for PostGIS 2.1 - lwgeom_set_handlers # { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lwgeom_set_handlers" >&5 $as_echo_n "checking for library containing lwgeom_set_handlers... " >&6; } if ${ac_cv_search_lwgeom_set_handlers+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char lwgeom_set_handlers (); int main () { return lwgeom_set_handlers (); ; return 0; } _ACEOF for ac_lib in '' geos_c; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_lwgeom_set_handlers=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_lwgeom_set_handlers+:} false; then : break fi done if ${ac_cv_search_lwgeom_set_handlers+:} false; then : else ac_cv_search_lwgeom_set_handlers=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lwgeom_set_handlers" >&5 $as_echo "$ac_cv_search_lwgeom_set_handlers" >&6; } ac_res=$ac_cv_search_lwgeom_set_handlers if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" $as_echo "#define POSTGIS_2_1 1" >>confdefs.h fi fi else $as_echo "#define OMIT_GEOS 1" >>confdefs.h fi #----------------------------------------------------------------------- # --enable-libxml2 # # Check whether --enable-libxml2 was given. if test "${enable_libxml2+set}" = set; then : enableval=$enable_libxml2; else enable_libxml2=no fi if test x"$enable_libxml2" != "xno"; then if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 $as_echo "$PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_path_PKG_CONFIG"; then ac_pt_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $ac_pt_PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG if test -n "$ac_pt_PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 $as_echo "$ac_pt_PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_pt_PKG_CONFIG" = x; then PKG_CONFIG="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac PKG_CONFIG=$ac_pt_PKG_CONFIG fi else PKG_CONFIG="$ac_cv_path_PKG_CONFIG" fi fi if test -n "$PKG_CONFIG"; then _pkg_min_version=0.9.0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 $as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } PKG_CONFIG="" fi fi pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBXML2" >&5 $as_echo_n "checking for LIBXML2... " >&6; } if test -n "$LIBXML2_CFLAGS"; then pkg_cv_LIBXML2_CFLAGS="$LIBXML2_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "libxml-2.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_LIBXML2_CFLAGS=`$PKG_CONFIG --cflags "libxml-2.0" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$LIBXML2_LIBS"; then pkg_cv_LIBXML2_LIBS="$LIBXML2_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "libxml-2.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_LIBXML2_LIBS=`$PKG_CONFIG --libs "libxml-2.0" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then LIBXML2_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libxml-2.0" 2>&1` else LIBXML2_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libxml-2.0" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$LIBXML2_PKG_ERRORS" >&5 as_fn_error $? "'libxml2' is required but it doesn't seem to be installed on this system." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? "'libxml2' is required but it doesn't seem to be installed on this system." "$LINENO" 5 else LIBXML2_CFLAGS=$pkg_cv_LIBXML2_CFLAGS LIBXML2_LIBS=$pkg_cv_LIBXML2_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi $as_echo "#define ENABLE_LIBXML2 1" >>confdefs.h fi #----------------------------------------------------------------------- # --enable-geopackage # # Check whether --enable-geopackage was given. if test "${enable_geopackage+set}" = set; then : enableval=$enable_geopackage; else enable_geopackage=no fi if test x"$enable_geopackage" != "xno"; then $as_echo "#define ENABLE_GEOPACKAGE 1" >>confdefs.h fi if test x"$enable_geopackage" == "xyes"; then ENABLE_GEOPACKAGE_TRUE= ENABLE_GEOPACKAGE_FALSE='#' else ENABLE_GEOPACKAGE_TRUE='#' ENABLE_GEOPACKAGE_FALSE= fi #----------------------------------------------------------------------- #----------------------------------------------------------------------- # --enable-gcov # # Check whether --enable-gcov was given. if test "${enable_gcov+set}" = set; then : enableval=$enable_gcov; fi if test "x$enable_gcov" = "xyes"; then CFLAGS=$CFLAGS" -fprofile-arcs -ftest-coverage -g" GCOV_FLAGS="-lgcov" fi #----------------------------------------------------------------------- #----------------------------------------------------------------------- # --enable-examples # # Check whether --enable-examples was given. if test "${enable_examples+set}" = set; then : enableval=$enable_examples; else enable_examples=yes fi if test x"$enable_examples" != "xno"; then ENABLE_EXAMPLES_TRUE= ENABLE_EXAMPLES_FALSE='#' else ENABLE_EXAMPLES_TRUE='#' ENABLE_EXAMPLES_FALSE= fi #----------------------------------------------------------------------- # Checking for MinGW if test "$target_alias" = "mingw32"; then MINGW_TRUE= MINGW_FALSE='#' else MINGW_TRUE='#' MINGW_FALSE= fi # Checking for Mac OsX if test "$target_alias" = "macosx"; then MACOSX_TRUE= MACOSX_FALSE='#' else MACOSX_TRUE='#' MACOSX_FALSE= fi # Checking for Android if test "$target_alias" = "android"; then ANDROID_TRUE= ANDROID_FALSE='#' else ANDROID_TRUE='#' ANDROID_FALSE= fi cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs { $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 $as_echo_n "checking that generated files are newer than configure... " >&6; } if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 $as_echo "done" >&6; } if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error $? "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${ENABLE_GEOPACKAGE_TRUE}" && test -z "${ENABLE_GEOPACKAGE_FALSE}"; then as_fn_error $? "conditional \"ENABLE_GEOPACKAGE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${ENABLE_EXAMPLES_TRUE}" && test -z "${ENABLE_EXAMPLES_FALSE}"; then as_fn_error $? "conditional \"ENABLE_EXAMPLES\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${MINGW_TRUE}" && test -z "${MINGW_FALSE}"; then as_fn_error $? "conditional \"MINGW\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${MACOSX_TRUE}" && test -z "${MACOSX_FALSE}"; then as_fn_error $? "conditional \"MACOSX\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${ANDROID_TRUE}" && test -z "${ANDROID_FALSE}"; then as_fn_error $? "conditional \"ANDROID\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by libspatialite $as_me 4.1.1, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration commands: $config_commands Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ libspatialite config.status 4.1.1 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header as_fn_error $? "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' AS='`$ECHO "$AS" | $SED "$delay_single_quote_subst"`' DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_ld='`$ECHO "$hardcode_libdir_flag_spec_ld" | $SED "$delay_single_quote_subst"`' hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`' hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' compiler_lib_search_dirs='`$ECHO "$compiler_lib_search_dirs" | $SED "$delay_single_quote_subst"`' predep_objects='`$ECHO "$predep_objects" | $SED "$delay_single_quote_subst"`' postdep_objects='`$ECHO "$postdep_objects" | $SED "$delay_single_quote_subst"`' predeps='`$ECHO "$predeps" | $SED "$delay_single_quote_subst"`' postdeps='`$ECHO "$postdeps" | $SED "$delay_single_quote_subst"`' compiler_lib_search_path='`$ECHO "$compiler_lib_search_path" | $SED "$delay_single_quote_subst"`' LD_CXX='`$ECHO "$LD_CXX" | $SED "$delay_single_quote_subst"`' reload_flag_CXX='`$ECHO "$reload_flag_CXX" | $SED "$delay_single_quote_subst"`' reload_cmds_CXX='`$ECHO "$reload_cmds_CXX" | $SED "$delay_single_quote_subst"`' old_archive_cmds_CXX='`$ECHO "$old_archive_cmds_CXX" | $SED "$delay_single_quote_subst"`' compiler_CXX='`$ECHO "$compiler_CXX" | $SED "$delay_single_quote_subst"`' GCC_CXX='`$ECHO "$GCC_CXX" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "$lt_prog_compiler_no_builtin_flag_CXX" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_pic_CXX='`$ECHO "$lt_prog_compiler_pic_CXX" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_wl_CXX='`$ECHO "$lt_prog_compiler_wl_CXX" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_static_CXX='`$ECHO "$lt_prog_compiler_static_CXX" | $SED "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o_CXX='`$ECHO "$lt_cv_prog_compiler_c_o_CXX" | $SED "$delay_single_quote_subst"`' archive_cmds_need_lc_CXX='`$ECHO "$archive_cmds_need_lc_CXX" | $SED "$delay_single_quote_subst"`' enable_shared_with_static_runtimes_CXX='`$ECHO "$enable_shared_with_static_runtimes_CXX" | $SED "$delay_single_quote_subst"`' export_dynamic_flag_spec_CXX='`$ECHO "$export_dynamic_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' whole_archive_flag_spec_CXX='`$ECHO "$whole_archive_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' compiler_needs_object_CXX='`$ECHO "$compiler_needs_object_CXX" | $SED "$delay_single_quote_subst"`' old_archive_from_new_cmds_CXX='`$ECHO "$old_archive_from_new_cmds_CXX" | $SED "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds_CXX='`$ECHO "$old_archive_from_expsyms_cmds_CXX" | $SED "$delay_single_quote_subst"`' archive_cmds_CXX='`$ECHO "$archive_cmds_CXX" | $SED "$delay_single_quote_subst"`' archive_expsym_cmds_CXX='`$ECHO "$archive_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`' module_cmds_CXX='`$ECHO "$module_cmds_CXX" | $SED "$delay_single_quote_subst"`' module_expsym_cmds_CXX='`$ECHO "$module_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`' with_gnu_ld_CXX='`$ECHO "$with_gnu_ld_CXX" | $SED "$delay_single_quote_subst"`' allow_undefined_flag_CXX='`$ECHO "$allow_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`' no_undefined_flag_CXX='`$ECHO "$no_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_CXX='`$ECHO "$hardcode_libdir_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_ld_CXX='`$ECHO "$hardcode_libdir_flag_spec_ld_CXX" | $SED "$delay_single_quote_subst"`' hardcode_libdir_separator_CXX='`$ECHO "$hardcode_libdir_separator_CXX" | $SED "$delay_single_quote_subst"`' hardcode_direct_CXX='`$ECHO "$hardcode_direct_CXX" | $SED "$delay_single_quote_subst"`' hardcode_direct_absolute_CXX='`$ECHO "$hardcode_direct_absolute_CXX" | $SED "$delay_single_quote_subst"`' hardcode_minus_L_CXX='`$ECHO "$hardcode_minus_L_CXX" | $SED "$delay_single_quote_subst"`' hardcode_shlibpath_var_CXX='`$ECHO "$hardcode_shlibpath_var_CXX" | $SED "$delay_single_quote_subst"`' hardcode_automatic_CXX='`$ECHO "$hardcode_automatic_CXX" | $SED "$delay_single_quote_subst"`' inherit_rpath_CXX='`$ECHO "$inherit_rpath_CXX" | $SED "$delay_single_quote_subst"`' link_all_deplibs_CXX='`$ECHO "$link_all_deplibs_CXX" | $SED "$delay_single_quote_subst"`' always_export_symbols_CXX='`$ECHO "$always_export_symbols_CXX" | $SED "$delay_single_quote_subst"`' export_symbols_cmds_CXX='`$ECHO "$export_symbols_cmds_CXX" | $SED "$delay_single_quote_subst"`' exclude_expsyms_CXX='`$ECHO "$exclude_expsyms_CXX" | $SED "$delay_single_quote_subst"`' include_expsyms_CXX='`$ECHO "$include_expsyms_CXX" | $SED "$delay_single_quote_subst"`' prelink_cmds_CXX='`$ECHO "$prelink_cmds_CXX" | $SED "$delay_single_quote_subst"`' postlink_cmds_CXX='`$ECHO "$postlink_cmds_CXX" | $SED "$delay_single_quote_subst"`' file_list_spec_CXX='`$ECHO "$file_list_spec_CXX" | $SED "$delay_single_quote_subst"`' hardcode_action_CXX='`$ECHO "$hardcode_action_CXX" | $SED "$delay_single_quote_subst"`' compiler_lib_search_dirs_CXX='`$ECHO "$compiler_lib_search_dirs_CXX" | $SED "$delay_single_quote_subst"`' predep_objects_CXX='`$ECHO "$predep_objects_CXX" | $SED "$delay_single_quote_subst"`' postdep_objects_CXX='`$ECHO "$postdep_objects_CXX" | $SED "$delay_single_quote_subst"`' predeps_CXX='`$ECHO "$predeps_CXX" | $SED "$delay_single_quote_subst"`' postdeps_CXX='`$ECHO "$postdeps_CXX" | $SED "$delay_single_quote_subst"`' compiler_lib_search_path_CXX='`$ECHO "$compiler_lib_search_path_CXX" | $SED "$delay_single_quote_subst"`' LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } # Quote evaled strings. for var in AS \ DLLTOOL \ OBJDUMP \ SHELL \ ECHO \ SED \ GREP \ EGREP \ FGREP \ LD \ NM \ LN_S \ lt_SP2NL \ lt_NL2SP \ reload_flag \ deplibs_check_method \ file_magic_cmd \ file_magic_glob \ want_nocaseglob \ sharedlib_from_linklib_cmd \ AR \ AR_FLAGS \ archiver_list_spec \ STRIP \ RANLIB \ CC \ CFLAGS \ compiler \ lt_cv_sys_global_symbol_pipe \ lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ nm_file_list_spec \ lt_prog_compiler_no_builtin_flag \ lt_prog_compiler_pic \ lt_prog_compiler_wl \ lt_prog_compiler_static \ lt_cv_prog_compiler_c_o \ need_locks \ MANIFEST_TOOL \ DSYMUTIL \ NMEDIT \ LIPO \ OTOOL \ OTOOL64 \ shrext_cmds \ export_dynamic_flag_spec \ whole_archive_flag_spec \ compiler_needs_object \ with_gnu_ld \ allow_undefined_flag \ no_undefined_flag \ hardcode_libdir_flag_spec \ hardcode_libdir_flag_spec_ld \ hardcode_libdir_separator \ exclude_expsyms \ include_expsyms \ file_list_spec \ variables_saved_for_relink \ libname_spec \ library_names_spec \ soname_spec \ install_override_mode \ finish_eval \ old_striplib \ striplib \ compiler_lib_search_dirs \ predep_objects \ postdep_objects \ predeps \ postdeps \ compiler_lib_search_path \ LD_CXX \ reload_flag_CXX \ compiler_CXX \ lt_prog_compiler_no_builtin_flag_CXX \ lt_prog_compiler_pic_CXX \ lt_prog_compiler_wl_CXX \ lt_prog_compiler_static_CXX \ lt_cv_prog_compiler_c_o_CXX \ export_dynamic_flag_spec_CXX \ whole_archive_flag_spec_CXX \ compiler_needs_object_CXX \ with_gnu_ld_CXX \ allow_undefined_flag_CXX \ no_undefined_flag_CXX \ hardcode_libdir_flag_spec_CXX \ hardcode_libdir_flag_spec_ld_CXX \ hardcode_libdir_separator_CXX \ exclude_expsyms_CXX \ include_expsyms_CXX \ file_list_spec_CXX \ compiler_lib_search_dirs_CXX \ predep_objects_CXX \ postdep_objects_CXX \ predeps_CXX \ postdeps_CXX \ compiler_lib_search_path_CXX; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in reload_cmds \ old_postinstall_cmds \ old_postuninstall_cmds \ old_archive_cmds \ extract_expsyms_cmds \ old_archive_from_new_cmds \ old_archive_from_expsyms_cmds \ archive_cmds \ archive_expsym_cmds \ module_cmds \ module_expsym_cmds \ export_symbols_cmds \ prelink_cmds \ postlink_cmds \ postinstall_cmds \ postuninstall_cmds \ finish_cmds \ sys_lib_search_path_spec \ sys_lib_dlsearch_path_spec \ reload_cmds_CXX \ old_archive_cmds_CXX \ old_archive_from_new_cmds_CXX \ old_archive_from_expsyms_cmds_CXX \ archive_cmds_CXX \ archive_expsym_cmds_CXX \ module_cmds_CXX \ module_expsym_cmds_CXX \ export_symbols_cmds_CXX \ prelink_cmds_CXX \ postlink_cmds_CXX; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done ac_aux_dir='$ac_aux_dir' xsi_shell='$xsi_shell' lt_shell_append='$lt_shell_append' # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile' _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; "src/headers/Makefile") CONFIG_FILES="$CONFIG_FILES src/headers/Makefile" ;; "src/gaiaaux/Makefile") CONFIG_FILES="$CONFIG_FILES src/gaiaaux/Makefile" ;; "src/gaiaexif/Makefile") CONFIG_FILES="$CONFIG_FILES src/gaiaexif/Makefile" ;; "src/gaiageo/Makefile") CONFIG_FILES="$CONFIG_FILES src/gaiageo/Makefile" ;; "src/gaiageo/flex/Makefile") CONFIG_FILES="$CONFIG_FILES src/gaiageo/flex/Makefile" ;; "src/gaiageo/lemon/Makefile") CONFIG_FILES="$CONFIG_FILES src/gaiageo/lemon/Makefile" ;; "src/gaiageo/lemon/lemon_src/Makefile") CONFIG_FILES="$CONFIG_FILES src/gaiageo/lemon/lemon_src/Makefile" ;; "src/geopackage/Makefile") CONFIG_FILES="$CONFIG_FILES src/geopackage/Makefile" ;; "src/spatialite/Makefile") CONFIG_FILES="$CONFIG_FILES src/spatialite/Makefile" ;; "src/shapefiles/Makefile") CONFIG_FILES="$CONFIG_FILES src/shapefiles/Makefile" ;; "src/dxf/Makefile") CONFIG_FILES="$CONFIG_FILES src/dxf/Makefile" ;; "src/md5/Makefile") CONFIG_FILES="$CONFIG_FILES src/md5/Makefile" ;; "src/srsinit/Makefile") CONFIG_FILES="$CONFIG_FILES src/srsinit/Makefile" ;; "src/srsinit/epsg_update/Makefile") CONFIG_FILES="$CONFIG_FILES src/srsinit/epsg_update/Makefile" ;; "src/virtualtext/Makefile") CONFIG_FILES="$CONFIG_FILES src/virtualtext/Makefile" ;; "src/wfs/Makefile") CONFIG_FILES="$CONFIG_FILES src/wfs/Makefile" ;; "test/Makefile") CONFIG_FILES="$CONFIG_FILES test/Makefile" ;; "test/sql_stmt_tests/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_tests/Makefile" ;; "test/sql_stmt_geos_tests/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_geos_tests/Makefile" ;; "test/sql_stmt_geosadvanced_tests/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_geosadvanced_tests/Makefile" ;; "test/sql_stmt_geostrunk_tests/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_geostrunk_tests/Makefile" ;; "test/sql_stmt_proj_tests/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_proj_tests/Makefile" ;; "test/sql_stmt_mathsql_tests/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_mathsql_tests/Makefile" ;; "test/sql_stmt_lwgeom_tests/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_lwgeom_tests/Makefile" ;; "test/sql_stmt_libxml2_tests/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_libxml2_tests/Makefile" ;; "test/sql_stmt_security_tests/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_security_tests/Makefile" ;; "test/sql_stmt_xmlsec_tests/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_xmlsec_tests/Makefile" ;; "examples/Makefile") CONFIG_FILES="$CONFIG_FILES examples/Makefile" ;; "Doxyfile") CONFIG_FILES="$CONFIG_FILES Doxyfile" ;; "spatialite.pc") CONFIG_FILES="$CONFIG_FILES spatialite.pc" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_tt=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_tt"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' >$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi # Compute "$ac_file"'s index in $config_headers. _am_arg="$ac_file" _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || $as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$_am_arg" : 'X\(//\)[^/]' \| \ X"$_am_arg" : 'X\(//\)$' \| \ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$_am_arg" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'`/stamp-h$_am_stamp_count ;; :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 $as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || { # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named 'Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running 'make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir=$dirpart/$fdir; as_fn_mkdir_p # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ;; "libtool":C) # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi cfgfile="${ofile}T" trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008, 2009, 2010 Free Software Foundation, # Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. # # GNU Libtool is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of # the License, or (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, or # obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # The names of the tagged configurations supported by this script. available_tags="CXX " # ### BEGIN LIBTOOL CONFIG # Assembler program. AS=$lt_AS # DLL creation program. DLLTOOL=$lt_DLLTOOL # Object dumper program. OBJDUMP=$lt_OBJDUMP # Which release of libtool.m4 was used? macro_version=$macro_version macro_revision=$macro_revision # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # What type of objects to build. pic_mode=$pic_mode # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # An echo program that protects backslashes. ECHO=$lt_ECHO # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # A sed program that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="\$SED -e 1s/^X//" # A grep program that handles long lines. GREP=$lt_GREP # An ERE matcher. EGREP=$lt_EGREP # A literal string matcher. FGREP=$lt_FGREP # A BSD- or MS-compatible name lister. NM=$lt_NM # Whether we need soft or hard links. LN_S=$lt_LN_S # What is the maximum length of a command? max_cmd_len=$max_cmd_len # Object file suffix (normally "o"). objext=$ac_objext # Executable file suffix (normally ""). exeext=$exeext # whether the shell understands "unset". lt_unset=$lt_unset # turn spaces into newlines. SP2NL=$lt_lt_SP2NL # turn newlines into spaces. NL2SP=$lt_lt_NL2SP # convert \$build file names to \$host format. to_host_file_cmd=$lt_cv_to_host_file_cmd # convert \$build files to toolchain format. to_tool_file_cmd=$lt_cv_to_tool_file_cmd # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method = "file_magic". file_magic_cmd=$lt_file_magic_cmd # How to find potential files when deplibs_check_method = "file_magic". file_magic_glob=$lt_file_magic_glob # Find potential files using nocaseglob when deplibs_check_method = "file_magic". want_nocaseglob=$lt_want_nocaseglob # Command to associate shared and link libraries. sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd # The archiver. AR=$lt_AR # Flags to create an archive. AR_FLAGS=$lt_AR_FLAGS # How to feed a file listing to the archiver. archiver_list_spec=$lt_archiver_list_spec # A symbol stripping program. STRIP=$lt_STRIP # Commands used to install an old-style archive. RANLIB=$lt_RANLIB old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Whether to use a lock for old archive extraction. lock_old_archive_extraction=$lock_old_archive_extraction # A C compiler. LTCC=$lt_CC # LTCC compiler flags. LTCFLAGS=$lt_CFLAGS # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration. global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair. global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # Transform the output of nm in a C name address pair when lib prefix is needed. global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix # Specify filename containing input files for \$NM. nm_file_list_spec=$lt_nm_file_list_spec # The root where to search for dependent libraries,and in which our libraries should be installed. lt_sysroot=$lt_sysroot # The name of the directory that contains temporary libtool files. objdir=$objdir # Used to examine libraries when file_magic_cmd begins with "file". MAGIC_CMD=$MAGIC_CMD # Must we lock files when doing compilation? need_locks=$lt_need_locks # Manifest tool. MANIFEST_TOOL=$lt_MANIFEST_TOOL # Tool to manipulate archived DWARF debug symbol files on Mac OS X. DSYMUTIL=$lt_DSYMUTIL # Tool to change global to local symbols on Mac OS X. NMEDIT=$lt_NMEDIT # Tool to manipulate fat objects and archives on Mac OS X. LIPO=$lt_LIPO # ldd/readelf like tool for Mach-O binaries on Mac OS X. OTOOL=$lt_OTOOL # ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. OTOOL64=$lt_OTOOL64 # Old archive suffix (normally "a"). libext=$libext # Shared library suffix (normally ".so"). shrext_cmds=$lt_shrext_cmds # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Variables whose values should be saved in libtool wrapper scripts and # restored at link time. variables_saved_for_relink=$lt_variables_saved_for_relink # Do we need the "lib" prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Library versioning type. version_type=$version_type # Shared library runtime path variable. runpath_var=$runpath_var # Shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Permission mode override for installation of shared libraries. install_override_mode=$lt_install_override_mode # Command to use after installation of a shared archive. postinstall_cmds=$lt_postinstall_cmds # Command to use after uninstallation of a shared archive. postuninstall_cmds=$lt_postuninstall_cmds # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # As "finish_cmds", except a single script fragment to be evaled but # not shown. finish_eval=$lt_finish_eval # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Compile-time system search path for libraries. sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries. sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # The linker used to build libraries. LD=$lt_LD # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds # A language specific compiler. CC=$lt_compiler # Is the compiler the GNU compiler? with_gcc=$GCC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds # Commands used to build a shared archive. archive_cmds=$lt_archive_cmds archive_expsym_cmds=$lt_archive_expsym_cmds # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds module_expsym_cmds=$lt_module_expsym_cmds # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec # If ld is used when linking, flag to hardcode \$libdir into a binary # during linking. This must work even if \$libdir does not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting \${shlibpath_var} if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=$hardcode_minus_L # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var # Set to "yes" if building a shared library automatically hardcodes DIR # into the library and all subsequent libraries and executables linked # against it. hardcode_automatic=$hardcode_automatic # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms # Symbols that must always be exported. include_expsyms=$lt_include_expsyms # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds # Commands necessary for finishing linking programs. postlink_cmds=$lt_postlink_cmds # Specify filename containing input files. file_list_spec=$lt_file_list_spec # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # The directories searched by this compiler when creating a shared library. compiler_lib_search_dirs=$lt_compiler_lib_search_dirs # Dependencies to place before and after the objects being linked to # create a shared library. predep_objects=$lt_predep_objects postdep_objects=$lt_postdep_objects predeps=$lt_predeps postdeps=$lt_postdeps # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path # ### END LIBTOOL CONFIG _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac ltmain="$ac_aux_dir/ltmain.sh" # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) if test x"$xsi_shell" = xyes; then sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ func_dirname ()\ {\ \ case ${1} in\ \ */*) func_dirname_result="${1%/*}${2}" ;;\ \ * ) func_dirname_result="${3}" ;;\ \ esac\ } # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_basename ()$/,/^} # func_basename /c\ func_basename ()\ {\ \ func_basename_result="${1##*/}"\ } # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ func_dirname_and_basename ()\ {\ \ case ${1} in\ \ */*) func_dirname_result="${1%/*}${2}" ;;\ \ * ) func_dirname_result="${3}" ;;\ \ esac\ \ func_basename_result="${1##*/}"\ } # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ func_stripname ()\ {\ \ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ \ # positional parameters, so assign one to ordinary parameter first.\ \ func_stripname_result=${3}\ \ func_stripname_result=${func_stripname_result#"${1}"}\ \ func_stripname_result=${func_stripname_result%"${2}"}\ } # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ func_split_long_opt ()\ {\ \ func_split_long_opt_name=${1%%=*}\ \ func_split_long_opt_arg=${1#*=}\ } # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ func_split_short_opt ()\ {\ \ func_split_short_opt_arg=${1#??}\ \ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ } # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ func_lo2o ()\ {\ \ case ${1} in\ \ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ \ *) func_lo2o_result=${1} ;;\ \ esac\ } # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_xform ()$/,/^} # func_xform /c\ func_xform ()\ {\ func_xform_result=${1%.*}.lo\ } # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_arith ()$/,/^} # func_arith /c\ func_arith ()\ {\ func_arith_result=$(( $* ))\ } # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_len ()$/,/^} # func_len /c\ func_len ()\ {\ func_len_result=${#1}\ } # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: fi if test x"$lt_shell_append" = xyes; then sed -e '/^func_append ()$/,/^} # func_append /c\ func_append ()\ {\ eval "${1}+=\\${2}"\ } # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ func_append_quoted ()\ {\ \ func_quote_for_eval "${2}"\ \ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ } # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: # Save a `func_append' function call where possible by direct use of '+=' sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: else # Save a `func_append' function call even when '+=' is not available sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: fi if test x"$_lt_function_replace_fail" = x":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 $as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} fi mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" cat <<_LT_EOF >> "$ofile" # ### BEGIN LIBTOOL TAG CONFIG: CXX # The linker used to build libraries. LD=$lt_LD_CXX # How to create reloadable object files. reload_flag=$lt_reload_flag_CXX reload_cmds=$lt_reload_cmds_CXX # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds_CXX # A language specific compiler. CC=$lt_compiler_CXX # Is the compiler the GNU compiler? with_gcc=$GCC_CXX # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_CXX # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_CXX # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_CXX # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_CXX # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object_CXX # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX # Commands used to build a shared archive. archive_cmds=$lt_archive_cmds_CXX archive_expsym_cmds=$lt_archive_expsym_cmds_CXX # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds_CXX module_expsym_cmds=$lt_module_expsym_cmds_CXX # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld_CXX # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_CXX # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_CXX # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX # If ld is used when linking, flag to hardcode \$libdir into a binary # during linking. This must work even if \$libdir does not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct_CXX # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting \${shlibpath_var} if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute_CXX # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=$hardcode_minus_L_CXX # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX # Set to "yes" if building a shared library automatically hardcodes DIR # into the library and all subsequent libraries and executables linked # against it. hardcode_automatic=$hardcode_automatic_CXX # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath_CXX # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_CXX # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols_CXX # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_CXX # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_CXX # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_CXX # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds_CXX # Commands necessary for finishing linking programs. postlink_cmds=$lt_postlink_cmds_CXX # Specify filename containing input files. file_list_spec=$lt_file_list_spec_CXX # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_CXX # The directories searched by this compiler when creating a shared library. compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX # Dependencies to place before and after the objects being linked to # create a shared library. predep_objects=$lt_predep_objects_CXX postdep_objects=$lt_postdep_objects_CXX predeps=$lt_predeps_CXX postdeps=$lt_postdeps_CXX # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_CXX # ### END LIBTOOL TAG CONFIG: CXX _LT_EOF ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi libspatialite-4.1.1/makefile.vc0000664000175000017500000001040212163502133013366 00000000000000# $Id: $ # # NMAKE Makefile to build libspatialite on Windows # !INCLUDE nmake.opt LIBOBJ = src\gaiaaux\gg_sqlaux.obj src\gaiaaux\gg_utf8.obj \ src\gaiaexif\gaia_exif.obj src\gaiageo\gg_advanced.obj \ src\gaiageo\gg_endian.obj src\gaiageo\gg_ewkt.obj \ src\gaiageo\gg_geodesic.obj src\gaiageo\gg_geoJSON.obj \ src\gaiageo\gg_geometries.obj src\gaiageo\gg_geoscvt.obj \ src\gaiageo\gg_gml.obj src\gaiageo\gg_kml.obj \ src\gaiageo\gg_relations.obj src\gaiageo\gg_shape.obj \ src\gaiageo\gg_transform.obj src\gaiageo\gg_vanuatu.obj \ src\gaiageo\gg_wkb.obj src\gaiageo\gg_wkt.obj \ src\gaiageo\gg_extras.obj src\gaiageo\gg_xml.obj \ src\spatialite\mbrcache.obj src\shapefiles\shapefiles.obj \ src\spatialite\spatialite.obj src\spatialite\virtualdbf.obj \ src\spatialite\virtualfdo.obj src\spatialite\virtualnetwork.obj \ src\spatialite\virtualshape.obj src\spatialite\virtualspatialindex.obj \ src\spatialite\statistics.obj src\spatialite\metatables.obj \ src\spatialite\virtualXL.obj src\spatialite\extra_tables.obj \ src\spatialite\virtualxpath.obj src\spatialite\spatialite_init.obj \ src\wfs\wfs_in.obj src\srsinit\srs_init.obj \ src\dxf\dxf_parser.obj src\dxf\dxf_loader.obj src\dxf\dxf_writer.obj \ src\dxf\dxf_load_distinct.obj src\dxf\dxf_load_mixed.obj \ src\shapefiles\validator.obj src\md5\md5.obj src\md5\gaia_md5.obj \ src\srsinit\epsg_inlined_00.obj src\srsinit\epsg_inlined_01.obj \ src\srsinit\epsg_inlined_02.obj src\srsinit\epsg_inlined_03.obj \ src\srsinit\epsg_inlined_04.obj src\srsinit\epsg_inlined_05.obj \ src\srsinit\epsg_inlined_06.obj src\srsinit\epsg_inlined_07.obj \ src\srsinit\epsg_inlined_08.obj src\srsinit\epsg_inlined_09.obj \ src\srsinit\epsg_inlined_10.obj src\srsinit\epsg_inlined_11.obj \ src\srsinit\epsg_inlined_12.obj src\srsinit\epsg_inlined_13.obj \ src\srsinit\epsg_inlined_14.obj src\srsinit\epsg_inlined_15.obj \ src\srsinit\epsg_inlined_16.obj src\srsinit\epsg_inlined_17.obj \ src\srsinit\epsg_inlined_18.obj src\srsinit\epsg_inlined_19.obj \ src\srsinit\epsg_inlined_20.obj src\srsinit\epsg_inlined_21.obj \ src\srsinit\epsg_inlined_22.obj src\srsinit\epsg_inlined_23.obj \ src\srsinit\epsg_inlined_24.obj src\srsinit\epsg_inlined_25.obj \ src\srsinit\epsg_inlined_26.obj src\srsinit\epsg_inlined_27.obj \ src\srsinit\epsg_inlined_28.obj src\srsinit\epsg_inlined_29.obj \ src\srsinit\epsg_inlined_30.obj src\srsinit\epsg_inlined_31.obj \ src\srsinit\epsg_inlined_32.obj src\srsinit\epsg_inlined_33.obj \ src\srsinit\epsg_inlined_34.obj src\srsinit\epsg_inlined_35.obj \ src\srsinit\epsg_inlined_36.obj src\srsinit\epsg_inlined_37.obj \ src\srsinit\epsg_inlined_38.obj src\srsinit\epsg_inlined_39.obj \ src\srsinit\epsg_inlined_40.obj src\srsinit\epsg_inlined_extra.obj \ src\srsinit\epsg_inlined_prussian.obj \ src\srsinit\epsg_inlined_wgs84_00.obj src\srsinit\epsg_inlined_wgs84_01.obj \ src\versioninfo\version.obj src\virtualtext\virtualtext.obj SPATIALITE_DLL = spatialite$(VERSION).dll CFLAGS = /nologo -I.\src\headers -I. -IC:\OSGeo4W\include $(OPTFLAGS) default: all all: spatialite.lib spatialite_i.lib #$(EXIF_LOADER_EXE) spatialite.lib: $(LIBOBJ) if exist spatialite.lib del spatialite.lib lib /out:spatialite.lib $(LIBOBJ) $(SPATIALITE_DLL): spatialite_i.lib spatialite_i.lib: $(LIBOBJ) link /debug /dll /out:$(SPATIALITE_DLL) \ /implib:spatialite_i.lib $(LIBOBJ) \ C:\OSGeo4W\lib\proj_i.lib C:\OSGeo4W\lib\geos_c.lib \ C:\OSGeo4w\lib\freexl_i.lib C:\OSGeo4w\lib\iconv.lib \ C:\OSGeo4W\lib\sqlite3_i.lib C:\OSGeo4W\lib\zlib.lib \ C:\OSGeo4W\lib\libxml2.lib if exist $(SPATIALITE_DLL).manifest mt -manifest \ $(SPATIALITE_DLL).manifest -outputresource:$(SPATIALITE_DLL);2 .c.obj: $(CC) $(CFLAGS) /c $*.c /Fo$@ clean: del *.dll del *.exp del *.manifest del *.lib del src\gaiaaux\*.obj del src\gaiaexif\*.obj del src\gaiageo\*.obj del src\spatialite\*.obj del src\srsinit\*.obj del src\versioninfo\*.obj del src\virtualtext\*.obj del src\wfs\*.obj del src\dxf\*.obj del src\md5\*.obj del *.pdb install: all -mkdir $(INSTDIR) -mkdir $(INSTDIR)\bin -mkdir $(INSTDIR)\lib -mkdir $(INSTDIR)\include -mkdir $(INSTDIR)\include\spatialite copy *.dll $(INSTDIR)\bin copy *.lib $(INSTDIR)\lib copy src\headers\spatialite.h $(INSTDIR)\include copy src\headers\spatialite\*.h $(INSTDIR)\include\spatialite libspatialite-4.1.1/depcomp0000775000175000017500000004426712163502133012654 00000000000000#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2009-04-28.21; # UTC # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free # Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by `PROGRAMS ARGS'. object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputing dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi cygpath_u="cygpath -u -f -" if test "$depmode" = msvcmsys; then # This is just like msvisualcpp but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u="sed s,\\\\\\\\,/,g" depmode=msvisualcpp fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. ## Unfortunately, FreeBSD c89 acceptance of flags depends upon ## the command line argument order; so add the flags where they ## appear in depend2.am. Note that the slowdown incurred here ## affects only configure: in makefiles, %FASTDEP% shortcuts this. for arg do case $arg in -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; *) set fnord "$@" "$arg" ;; esac shift # fnord shift # $arg done "$@" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> "$depfile" echo >> "$depfile" # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.u tmpdepfile2=$base.u tmpdepfile3=$dir.libs/$base.u "$@" -Wc,-M else tmpdepfile1=$dir$base.u tmpdepfile2=$dir$base.u tmpdepfile3=$dir$base.u "$@" -M fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp2) # The "hp" stanza above does not work with aCC (C++) and HP's ia64 # compilers, which have integrated preprocessors. The correct option # to use with these is +Maked; it writes dependencies to a file named # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.d tmpdepfile2=$dir.libs/$base.d "$@" -Wc,+Maked else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d "$@" +Maked fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" # Add `dependent.h:' lines. sed -ne '2,${ s/^ *// s/ \\*$// s/$/:/ p }' "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # With Tru64 cc, shared objects can also be used to make a # static library. This mechanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # generates 2 separate objects for the 2 libraries. These two # compilations output dependencies in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 tmpdepfile2=$dir$base.o.d # libtool 1.5 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.o.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d tmpdepfile4=$dir$base.d "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # X makedepend shift cleared=no eat=no for arg do case $cleared in no) set ""; shift cleared=yes ;; esac if test $eat = yes; then eat=no continue fi case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -arch) eat=yes ;; -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix=`echo "$object" | sed 's/^.*\././'` touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi IFS=" " for arg do case "$arg" in -o) shift ;; $object) shift ;; "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E 2>/dev/null | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; msvcmsys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: libspatialite-4.1.1/config.h.in0000664000175000017500000001426612163502133013316 00000000000000/* config.h.in. Generated from configure.ac by autoheader. */ /* Should be defined in order to enable GeoPackage support. */ #undef ENABLE_GEOPACKAGE /* Should be defined in order to enable LIBXML2 support. */ #undef ENABLE_LIBXML2 /* Should be defined in order to enable LWGEOM support. */ #undef ENABLE_LWGEOM /* Should be defined in order to enable GEOS_ADVANCED support. */ #undef GEOS_ADVANCED /* Should be defined in order to enable GEOS_TRUNK experimental support. */ #undef GEOS_TRUNK /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H /* Define to 1 if you have the header file. */ #undef HAVE_FCNTL_H /* Define to 1 if you have the `fdatasync' function. */ #undef HAVE_FDATASYNC /* Define to 1 if you have the header file. */ #undef HAVE_FLOAT_H /* Define to 1 if you have the header file. */ #undef HAVE_FREEXL_H /* Define to 1 if you have the `ftruncate' function. */ #undef HAVE_FTRUNCATE /* Define to 1 if you have the header file. */ #undef HAVE_GEOS_C_H /* Define to 1 if you have the `getcwd' function. */ #undef HAVE_GETCWD /* Define to 1 if you have the `gettimeofday' function. */ #undef HAVE_GETTIMEOFDAY /* Define to 1 if you have the header file. */ #undef HAVE_ICONV_H /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_LIBLWGEOM_H /* Define to 1 if you have the `sqlite3' library (-lsqlite3). */ #undef HAVE_LIBSQLITE3 /* Define to 1 if you have the `z' library (-lz). */ #undef HAVE_LIBZ /* Define to 1 if you have the `localtime_r' function. */ #undef HAVE_LOCALTIME_R /* Define to 1 if `lstat' has the bug that it succeeds when given the zero-length file name argument. */ #undef HAVE_LSTAT_EMPTY_STRING_BUG /* Define to 1 if you have the header file. */ #undef HAVE_MATH_H /* Define to 1 if you have the `memmove' function. */ #undef HAVE_MEMMOVE /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the `memset' function. */ #undef HAVE_MEMSET /* Define to 1 if you have the header file. */ #undef HAVE_PROJ_API_H /* Define to 1 if you have the header file. */ #undef HAVE_SQLITE3EXT_H /* Define to 1 if you have the header file. */ #undef HAVE_SQLITE3_H /* Define to 1 if you have the `sqrt' function. */ #undef HAVE_SQRT /* Define to 1 if `stat' has the bug that it succeeds when given the zero-length file name argument. */ #undef HAVE_STAT_EMPTY_STRING_BUG /* Define to 1 if you have the header file. */ #undef HAVE_STDDEF_H /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDIO_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the `strcasecmp' function. */ #undef HAVE_STRCASECMP /* Define to 1 if you have the `strerror' function. */ #undef HAVE_STRERROR /* Define to 1 if you have the `strftime' function. */ #undef HAVE_STRFTIME /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the `strncasecmp' function. */ #undef HAVE_STRNCASECMP /* Define to 1 if you have the `strstr' function. */ #undef HAVE_STRSTR /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TIME_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define to 1 if you have the header file. */ #undef HAVE_ZLIB_H /* Define to 1 if `lstat' dereferences a symlink specified with a trailing slash. */ #undef LSTAT_FOLLOWS_SLASHED_SYMLINK /* Define to the sub-directory in which libtool stores uninstalled libraries. */ #undef LT_OBJDIR /* Must be defined in order to disable debug mode. */ #undef NDEBUG /* Should be defined in order to disable EPSG full support. */ #undef OMIT_EPSG /* Should be defined in order to disable FREEXL support. */ #undef OMIT_FREEXL /* Should be defined in order to disable GEOCALLBACKS support. */ #undef OMIT_GEOCALLBACKS /* Should be defined in order to disable GEOS support. */ #undef OMIT_GEOS /* Should be defined in order to disable ICONV support. */ #undef OMIT_ICONV /* Should be defined in order to disable MATHSQL support. */ #undef OMIT_MATHSQL /* Should be defined in order to disable PROJ.4 support. */ #undef OMIT_PROJ /* Name of package */ #undef PACKAGE /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the home page for this package. */ #undef PACKAGE_URL /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Should be defined when linking liblwgeom from PostGIS 2.1 (or later). */ #undef POSTGIS_2_1 /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Define to 1 if you can safely include both and . */ #undef TIME_WITH_SYS_TIME /* Define to 1 if your declares `struct tm'. */ #undef TM_IN_SYS_TIME /* Version number of package */ #undef VERSION /* Must be =64 in order to enable huge-file support. */ #undef _FILE_OFFSET_BITS /* Must be defined in order to enable huge-file support. */ #undef _LARGEFILE_SOURCE /* Must be defined in order to enable huge-file support. */ #undef _LARGE_FILE /* Define to empty if `const' does not conform to ANSI C. */ #undef const /* Define to `long int' if does not define. */ #undef off_t /* Define to `unsigned int' if does not define. */ #undef size_t /* Define to empty if the keyword `volatile' does not work. Warning: valid code using `volatile' can become incorrect without. Disable with care. */ #undef volatile libspatialite-4.1.1/nmake.opt0000664000175000017500000000074612163502133013110 00000000000000# Directory tree where SpatiaLite will be installed. INSTDIR=C:\OSGeo4W # Uncomment the first for an optimized build, or the second for debug. OPTFLAGS= /nologo /Ox /fp:precise /W3 /MD /D_CRT_SECURE_NO_WARNINGS \ /DDLL_EXPORT /DYY_NO_UNISTD_H #OPTFLAGS= /nologo /Zi /MD /Fdspatialite.pdb /DDLL_EXPORT # Set the version number for the DLL. Normally we leave this blank since # we want software that is dynamically loading the DLL to have no problem # with version numbers. VERSION= libspatialite-4.1.1/AUTHORS0000664000175000017500000000065312163502133012336 00000000000000Original Author: Alessandro Furieri Contributors: Klaus Foerster Luigi Costalli Ahmadou Dicko Brad Hards Pepijn Van Eeckhoudt The Vanuatu Team - University of Toronto - Supervisor: Greg Wilson [you can find the complete team composition in gg_wkt.c] libspatialite-4.1.1/mainpage.doxy0000664000175000017500000001302012163502133013744 00000000000000/** \mainpage Introduction \section Generalities SpatiaLite is an open source library intended to extend basic SQLite core in order to support full fledged Spatial SQL capabilities. \n\n SQLite is intrinsically simple and lighweight: - a single ligthweight library implementing the full SQL engine. - standard SQL implementation: almost complete SQL-92. - no complex client/server architecture. - a whole database simply corresponds to a single monolithic file [no size limits]. - any DB-file can be safely exchanged across different platforms, because the internal architecture is universally portable. - no installation, no configuration. SpatiaLite is smoothly integrated into SQLite so to deploy a complete and powerfull Spatial DBMS [mostly OGC-SFS compliant]. \n All this fully preserving the lightness and simplicity typical of SQLite itself. \n That's not all: SpatiaLite supports direct SQL access to several commonly used \e external \e datasources, this including: - ESRI \b Shapefiles. - \b DBF Archive Files. - \b TXT/CSV structured text files. - \b Spreadsheets [.xls format]. And SpatiaLite actively supports many alternative standard Geometry notations: - \b WKT [Well Known Text] and \b WKB [Well Known Binary]. - PostGIS own \b EWKT and \b EWKB [Extended WKT / WKB]. - \b GML [Geography Markup Language, both v2 and v3]. - \b KML [Keyhole Markup Language, used by Google Maps and Google Earth]. - \b GeoJSON [Geometry Java Script Object Notation]. - \b SVG [Scalable Vector Graphics]. Conclusion: using SQLite + SpatiaLite you can deploy an alternative Spatial DBMS roughly equivalent to PostgreSQL + PostGIS. \n The main difference between them isn't in powerness, but mainly relies on architecture: - PostgrSQL + PostGIS fully supports a client/server architecture. \n This is well fit for complex and sophisticated Spatial Data infrastructures, but surely implies a certain degree of complexity. - SQLite + SpatiaLite supports a much more simplest personal architecture. \n This is most appropriate for desktop, stand-alone, personal activities. Choosing the one or the other simply depends on your very specific requirements: - no one is better than the other one: they are simply optimized for different envoronments. - both them can roughly support the same Spatial Data processing capabilities. - feel free to choose the best fit one accordingly to your effective goals. \section Building Building and installing the SpatiaLite library is straightforward: \verbatim ./configure make make install \endverbatim Please note: SpatiaLite depends on the following open source libraries: - GNU \b ICONV \n locale charset encodings support - \b GEOS \n Geometry engine - \b PROJ.4 \n Spatial Reference System handling [coordinate re-projection] - \b FreeXL \n Spreadsheet input support [.xls format] The library comes in two different flavors: - \b libspatialite \n standard, canonical library: the best and safest way to deploy SpatiaLite. \n this obviously depends on \e external \b libsqlite: thus ensuring full coherence between libraries. \n warmly reccomended, mostly on Unix-like systems.\n - \b libspatialite-amalgamation \n The whole library is \e amalgamated into a single monolithic file and includes an \e internal \e private \e copy of \b libsqlite. \n Using the \e amalgamated library may strongly simplify any following installation process, and nicely supports \b static \b linkage. \n Anyway, you can safely apply the \e amalgamated approch only to self-standing apps. \n Attempting to use the \e amalgated library on complex frameworks or on data connectors / language bindings \n may easily cause serious conflicts. \section Deployment You can deploy SpatiaLite in two alternative ways: - you can load the SpatiaLite library as a \b dynamic \b extension to SQLite. \n This allows SQLite to support SQL Spatial Data [Geometry] and SQL Spatial Functions. \n Theorically, any generic tool or language connector supporting SQLite can support this \e extension mechanism; \n sadly enough, sometimes this feature is intentionally disabled: I'm sorry for you if this is your specific case. \n\n How to load SpatiaLite as a dynamic extension to SQLite: \verbatim SELECT load_extension('spatialite_dynamic_library_name'); \endverbatim \n - you can directly link the SpatiaLite library to any application of your own. \n This allows you to ship a complete, powerfull, self-contained Spatial SQL engine directly supporting your app. \n And such Spatial SQL engine doesn't requires any installation or configuration at all. \n That's not all: linking the SpatiaLite to your own C/C++ code you aren't simply constrained to use SQL: \n adopting this approach you can directly access the complete C API. \n\n Linking SpatiaLite to your own code is usually simple: \verbatim gcc my_program.c -o my_program -lspatialite \endverbatim \n On some systems you may have to provide a slightly more complex arrangement: \verbatim gcc -I/usr/local/include my_program.c -o my_program \ -L/usr/local/lib -lpsatialite -lsqlite -lgeos_c -lgeos \ -lproj -lfreexl -liconv -lm -lstdc++ \endverbatim \n SpatiaLite also provides pkg-config support, so you can also do \verbatim gcc -I/usr/local/include my_program.c -o my_program \ `pkg-config --libs spatialite` \endverbatim \section License SpatiaLite is licensed under the MPL tri-license terms: you are free to choose the best-fit license between: - the MPL 1.1 - the GPL v2.0 or any subsequent version - the LGPL v2.1 or any subsequent version Enjoy, and happy coding */ libspatialite-4.1.1/ltmain.sh0000664000175000017500000105204012163502133013104 00000000000000 # libtool (GNU libtool) 2.4.2 # Written by Gordon Matzigkeit , 1996 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, # 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # GNU Libtool is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, # or obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # Usage: $progname [OPTION]... [MODE-ARG]... # # Provide generalized library-building support services. # # --config show all configuration variables # --debug enable verbose shell tracing # -n, --dry-run display commands without modifying any files # --features display basic configuration information and exit # --mode=MODE use operation mode MODE # --preserve-dup-deps don't remove duplicate dependency libraries # --quiet, --silent don't print informational messages # --no-quiet, --no-silent # print informational messages (default) # --no-warn don't display warning messages # --tag=TAG use configuration variables from tag TAG # -v, --verbose print more informational messages than default # --no-verbose don't print the extra informational messages # --version print version information # -h, --help, --help-all print short, long, or detailed help message # # MODE must be one of the following: # # clean remove files from the build directory # compile compile a source file into a libtool object # execute automatically set library path, then run a program # finish complete the installation of libtool libraries # install install libraries or executables # link create a library or an executable # uninstall remove libraries from an installed directory # # MODE-ARGS vary depending on the MODE. When passed as first option, # `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that. # Try `$progname --help --mode=MODE' for a more detailed description of MODE. # # When reporting a bug, please describe a test case to reproduce it and # include the following information: # # host-triplet: $host # shell: $SHELL # compiler: $LTCC # compiler flags: $LTCFLAGS # linker: $LD (gnu? $with_gnu_ld) # $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1ubuntu1 # automake: $automake_version # autoconf: $autoconf_version # # Report bugs to . # GNU libtool home page: . # General help using GNU software: . PROGRAM=libtool PACKAGE=libtool VERSION="2.4.2 Debian-2.4.2-1ubuntu1" TIMESTAMP="" package_revision=1.3337 # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } # NLS nuisances: We save the old values to restore during execute mode. lt_user_locale= lt_safe_locale= for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${$lt_var+set}\" = set; then save_$lt_var=\$$lt_var $lt_var=C export $lt_var lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" fi" done LC_ALL=C LANGUAGE=C export LANGUAGE LC_ALL $lt_unset CDPATH # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special # positional parameter $0, within a function call, is the name of the # function. progpath="$0" : ${CP="cp -f"} test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} : ${SHELL="${CONFIG_SHELL-/bin/sh}"} : ${Xsed="$SED -e 1s/^X//"} # Global variables: EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. exit_status=$EXIT_SUCCESS # Make sure IFS has a sensible default lt_nl=' ' IFS=" $lt_nl" dirname="s,/[^/]*$,," basename="s,^.*/,," # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi } # func_dirname may be replaced by extended shell implementation # func_basename file func_basename () { func_basename_result=`$ECHO "${1}" | $SED "$basename"` } # func_basename may be replaced by extended shell implementation # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi func_basename_result=`$ECHO "${1}" | $SED -e "$basename"` } # func_dirname_and_basename may be replaced by extended shell implementation # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # func_strip_suffix prefix name func_stripname () { case ${2} in .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; esac } # func_stripname may be replaced by extended shell implementation # These SED scripts presuppose an absolute path with a trailing slash. pathcar='s,^/\([^/]*\).*$,\1,' pathcdr='s,^/[^/]*,,' removedotparts=':dotsl s@/\./@/@g t dotsl s,/\.$,/,' collapseslashes='s@/\{1,\}@/@g' finalslash='s,/*$,/,' # func_normal_abspath PATH # Remove doubled-up and trailing slashes, "." path components, # and cancel out any ".." path components in PATH after making # it an absolute path. # value returned in "$func_normal_abspath_result" func_normal_abspath () { # Start from root dir and reassemble the path. func_normal_abspath_result= func_normal_abspath_tpath=$1 func_normal_abspath_altnamespace= case $func_normal_abspath_tpath in "") # Empty path, that just means $cwd. func_stripname '' '/' "`pwd`" func_normal_abspath_result=$func_stripname_result return ;; # The next three entries are used to spot a run of precisely # two leading slashes without using negated character classes; # we take advantage of case's first-match behaviour. ///*) # Unusual form of absolute path, do nothing. ;; //*) # Not necessarily an ordinary path; POSIX reserves leading '//' # and for example Cygwin uses it to access remote file shares # over CIFS/SMB, so we conserve a leading double slash if found. func_normal_abspath_altnamespace=/ ;; /*) # Absolute path, do nothing. ;; *) # Relative path, prepend $cwd. func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath ;; esac # Cancel out all the simple stuff to save iterations. We also want # the path to end with a slash for ease of parsing, so make sure # there is one (and only one) here. func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"` while :; do # Processed it all yet? if test "$func_normal_abspath_tpath" = / ; then # If we ascended to the root using ".." the result may be empty now. if test -z "$func_normal_abspath_result" ; then func_normal_abspath_result=/ fi break fi func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$pathcar"` func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$pathcdr"` # Figure out what to do with it case $func_normal_abspath_tcomponent in "") # Trailing empty path component, ignore it. ;; ..) # Parent dir; strip last assembled component from result. func_dirname "$func_normal_abspath_result" func_normal_abspath_result=$func_dirname_result ;; *) # Actual path component, append it. func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent ;; esac done # Restore leading double-slash if one was found on entry. func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result } # func_relative_path SRCDIR DSTDIR # generates a relative path from SRCDIR to DSTDIR, with a trailing # slash if non-empty, suitable for immediately appending a filename # without needing to append a separator. # value returned in "$func_relative_path_result" func_relative_path () { func_relative_path_result= func_normal_abspath "$1" func_relative_path_tlibdir=$func_normal_abspath_result func_normal_abspath "$2" func_relative_path_tbindir=$func_normal_abspath_result # Ascend the tree starting from libdir while :; do # check if we have found a prefix of bindir case $func_relative_path_tbindir in $func_relative_path_tlibdir) # found an exact match func_relative_path_tcancelled= break ;; $func_relative_path_tlibdir*) # found a matching prefix func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" func_relative_path_tcancelled=$func_stripname_result if test -z "$func_relative_path_result"; then func_relative_path_result=. fi break ;; *) func_dirname $func_relative_path_tlibdir func_relative_path_tlibdir=${func_dirname_result} if test "x$func_relative_path_tlibdir" = x ; then # Have to descend all the way to the root! func_relative_path_result=../$func_relative_path_result func_relative_path_tcancelled=$func_relative_path_tbindir break fi func_relative_path_result=../$func_relative_path_result ;; esac done # Now calculate path; take care to avoid doubling-up slashes. func_stripname '' '/' "$func_relative_path_result" func_relative_path_result=$func_stripname_result func_stripname '/' '/' "$func_relative_path_tcancelled" if test "x$func_stripname_result" != x ; then func_relative_path_result=${func_relative_path_result}/${func_stripname_result} fi # Normalisation. If bindir is libdir, return empty string, # else relative path ending with a slash; either way, target # file name can be directly appended. if test ! -z "$func_relative_path_result"; then func_stripname './' '' "$func_relative_path_result/" func_relative_path_result=$func_stripname_result fi } # The name of this program: func_dirname_and_basename "$progpath" progname=$func_basename_result # Make sure we have an absolute path for reexecution: case $progpath in [\\/]*|[A-Za-z]:\\*) ;; *[\\/]*) progdir=$func_dirname_result progdir=`cd "$progdir" && pwd` progpath="$progdir/$progname" ;; *) save_IFS="$IFS" IFS=${PATH_SEPARATOR-:} for progdir in $PATH; do IFS="$save_IFS" test -x "$progdir/$progname" && break done IFS="$save_IFS" test -n "$progdir" || progdir=`pwd` progpath="$progdir/$progname" ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed="${SED}"' -e 1s/^X//' sed_quote_subst='s/\([`"$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution that turns a string into a regex matching for the # string literally. sed_make_literal_regex='s,[].[^$\\*\/],\\&,g' # Sed substitution that converts a w32 file name or path # which contains forward slashes, into one that contains # (escaped) backslashes. A very naive implementation. lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' # Re-`\' parameter expansions in output of double_quote_subst that were # `\'-ed in input to the same. If an odd number of `\' preceded a '$' # in input to double_quote_subst, that '$' was protected from expansion. # Since each input `\' is now two `\'s, look for any number of runs of # four `\'s followed by two `\'s and then a '$'. `\' that '$'. bs='\\' bs2='\\\\' bs4='\\\\\\\\' dollar='\$' sed_double_backslash="\ s/$bs4/&\\ /g s/^$bs2$dollar/$bs&/ s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g s/\n//g" # Standard options: opt_dry_run=false opt_help=false opt_quiet=false opt_verbose=false opt_warning=: # func_echo arg... # Echo program name prefixed message, along with the current mode # name if it has been set yet. func_echo () { $ECHO "$progname: ${opt_mode+$opt_mode: }$*" } # func_verbose arg... # Echo program name prefixed message in verbose mode only. func_verbose () { $opt_verbose && func_echo ${1+"$@"} # A bug in bash halts the script if the last line of a function # fails when set -e is in force, so we need another command to # work around that: : } # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } # func_error arg... # Echo program name prefixed message to standard error. func_error () { $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2 } # func_warning arg... # Echo program name prefixed warning message to standard error. func_warning () { $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2 # bash bug again: : } # func_fatal_error arg... # Echo program name prefixed message to standard error, and exit. func_fatal_error () { func_error ${1+"$@"} exit $EXIT_FAILURE } # func_fatal_help arg... # Echo program name prefixed message to standard error, followed by # a help hint, and exit. func_fatal_help () { func_error ${1+"$@"} func_fatal_error "$help" } help="Try \`$progname --help' for more information." ## default # func_grep expression filename # Check whether EXPRESSION matches any line of FILENAME, without output. func_grep () { $GREP "$1" "$2" >/dev/null 2>&1 } # func_mkdir_p directory-path # Make sure the entire path to DIRECTORY-PATH is available. func_mkdir_p () { my_directory_path="$1" my_dir_list= if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then # Protect directory names starting with `-' case $my_directory_path in -*) my_directory_path="./$my_directory_path" ;; esac # While some portion of DIR does not yet exist... while test ! -d "$my_directory_path"; do # ...make a list in topmost first order. Use a colon delimited # list incase some portion of path contains whitespace. my_dir_list="$my_directory_path:$my_dir_list" # If the last portion added has no slash in it, the list is done case $my_directory_path in */*) ;; *) break ;; esac # ...otherwise throw away the child directory and loop my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"` done my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'` save_mkdir_p_IFS="$IFS"; IFS=':' for my_dir in $my_dir_list; do IFS="$save_mkdir_p_IFS" # mkdir can fail with a `File exist' error if two processes # try to create one of the directories concurrently. Don't # stop in that case! $MKDIR "$my_dir" 2>/dev/null || : done IFS="$save_mkdir_p_IFS" # Bail out if we (or some other process) failed to create a directory. test -d "$my_directory_path" || \ func_fatal_error "Failed to create \`$1'" fi } # func_mktempdir [string] # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, STRING is the basename for that directory. func_mktempdir () { my_template="${TMPDIR-/tmp}/${1-$progname}" if test "$opt_dry_run" = ":"; then # Return a directory name, but don't create it in dry-run mode my_tmpdir="${my_template}-$$" else # If mktemp works, use that first and foremost my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` if test ! -d "$my_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race my_tmpdir="${my_template}-${RANDOM-0}$$" save_mktempdir_umask=`umask` umask 0077 $MKDIR "$my_tmpdir" umask $save_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$my_tmpdir" || \ func_fatal_error "cannot create temporary directory \`$my_tmpdir'" fi $ECHO "$my_tmpdir" } # func_quote_for_eval arg # Aesthetically quote ARG to be evaled later. # This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT # is double-quoted, suitable for a subsequent eval, whereas # FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters # which are still active within double quotes backslashified. func_quote_for_eval () { case $1 in *[\\\`\"\$]*) func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;; *) func_quote_for_eval_unquoted_result="$1" ;; esac case $func_quote_for_eval_unquoted_result in # Double-quote args containing shell metacharacters to delay # word splitting, command substitution and and variable # expansion for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" ;; *) func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" esac } # func_quote_for_expand arg # Aesthetically quote ARG to be evaled later; same as above, # but do not quote variable references. func_quote_for_expand () { case $1 in *[\\\`\"]*) my_arg=`$ECHO "$1" | $SED \ -e "$double_quote_subst" -e "$sed_double_backslash"` ;; *) my_arg="$1" ;; esac case $my_arg in # Double-quote args containing shell metacharacters to delay # word splitting and command substitution for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") my_arg="\"$my_arg\"" ;; esac func_quote_for_expand_result="$my_arg" } # func_show_eval cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. func_show_eval () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$my_cmd" my_status=$? if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_show_eval_locale cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. Use the saved locale for evaluation. func_show_eval_locale () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$lt_user_locale $my_cmd" my_status=$? eval "$lt_safe_locale" if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_tr_sh # Turn $1 into a string suitable for a shell variable name. # Result is stored in $func_tr_sh_result. All characters # not in the set a-zA-Z0-9_ are replaced with '_'. Further, # if $1 begins with a digit, a '_' is prepended as well. func_tr_sh () { case $1 in [0-9]* | *[!a-zA-Z0-9_]*) func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'` ;; * ) func_tr_sh_result=$1 ;; esac } # func_version # Echo version message to standard output and exit. func_version () { $opt_debug $SED -n '/(C)/!b go :more /\./!{ N s/\n# / / b more } :go /^# '$PROGRAM' (GNU /,/# warranty; / { s/^# // s/^# *$// s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ p }' < "$progpath" exit $? } # func_usage # Echo short help message to standard output and exit. func_usage () { $opt_debug $SED -n '/^# Usage:/,/^# *.*--help/ { s/^# // s/^# *$// s/\$progname/'$progname'/ p }' < "$progpath" echo $ECHO "run \`$progname --help | more' for full usage" exit $? } # func_help [NOEXIT] # Echo long help message to standard output and exit, # unless 'noexit' is passed as argument. func_help () { $opt_debug $SED -n '/^# Usage:/,/# Report bugs to/ { :print s/^# // s/^# *$// s*\$progname*'$progname'* s*\$host*'"$host"'* s*\$SHELL*'"$SHELL"'* s*\$LTCC*'"$LTCC"'* s*\$LTCFLAGS*'"$LTCFLAGS"'* s*\$LD*'"$LD"'* s/\$with_gnu_ld/'"$with_gnu_ld"'/ s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/ s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/ p d } /^# .* home page:/b print /^# General help using/b print ' < "$progpath" ret=$? if test -z "$1"; then exit $ret fi } # func_missing_arg argname # Echo program name prefixed message to standard error and set global # exit_cmd. func_missing_arg () { $opt_debug func_error "missing argument for $1." exit_cmd=exit } # func_split_short_opt shortopt # Set func_split_short_opt_name and func_split_short_opt_arg shell # variables after splitting SHORTOPT after the 2nd character. func_split_short_opt () { my_sed_short_opt='1s/^\(..\).*$/\1/;q' my_sed_short_rest='1s/^..\(.*\)$/\1/;q' func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"` func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"` } # func_split_short_opt may be replaced by extended shell implementation # func_split_long_opt longopt # Set func_split_long_opt_name and func_split_long_opt_arg shell # variables after splitting LONGOPT at the `=' sign. func_split_long_opt () { my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q' my_sed_long_arg='1s/^--[^=]*=//' func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"` func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"` } # func_split_long_opt may be replaced by extended shell implementation exit_cmd=: magic="%%%MAGIC variable%%%" magic_exe="%%%MAGIC EXE variable%%%" # Global variables. nonopt= preserve_args= lo2o="s/\\.lo\$/.${objext}/" o2lo="s/\\.${objext}\$/.lo/" extracted_archives= extracted_serial=0 # If this variable is set in any of the actions, the command in it # will be execed at the end. This prevents here-documents from being # left over by shells. exec_cmd= # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "${1}=\$${1}\${2}" } # func_append may be replaced by extended shell implementation # func_append_quoted var value # Quote VALUE and append to the end of shell variable VAR, separated # by a space. func_append_quoted () { func_quote_for_eval "${2}" eval "${1}=\$${1}\\ \$func_quote_for_eval_result" } # func_append_quoted may be replaced by extended shell implementation # func_arith arithmetic-term... func_arith () { func_arith_result=`expr "${@}"` } # func_arith may be replaced by extended shell implementation # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len` } # func_len may be replaced by extended shell implementation # func_lo2o object func_lo2o () { func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` } # func_lo2o may be replaced by extended shell implementation # func_xform libobj-or-source func_xform () { func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` } # func_xform may be replaced by extended shell implementation # func_fatal_configuration arg... # Echo program name prefixed message to standard error, followed by # a configuration failure hint, and exit. func_fatal_configuration () { func_error ${1+"$@"} func_error "See the $PACKAGE documentation for more information." func_fatal_error "Fatal configuration error." } # func_config # Display the configuration for all the tags in this script. func_config () { re_begincf='^# ### BEGIN LIBTOOL' re_endcf='^# ### END LIBTOOL' # Default configuration. $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" # Now print the configurations for the tags. for tagname in $taglist; do $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" done exit $? } # func_features # Display the features supported by this script. func_features () { echo "host: $host" if test "$build_libtool_libs" = yes; then echo "enable shared libraries" else echo "disable shared libraries" fi if test "$build_old_libs" = yes; then echo "enable static libraries" else echo "disable static libraries" fi exit $? } # func_enable_tag tagname # Verify that TAGNAME is valid, and either flag an error and exit, or # enable the TAGNAME tag. We also add TAGNAME to the global $taglist # variable here. func_enable_tag () { # Global variable: tagname="$1" re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" sed_extractcf="/$re_begincf/,/$re_endcf/p" # Validate tagname. case $tagname in *[!-_A-Za-z0-9,/]*) func_fatal_error "invalid tag name: $tagname" ;; esac # Don't test for the "default" C tag, as we know it's # there but not specially marked. case $tagname in CC) ;; *) if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then taglist="$taglist $tagname" # Evaluate the configuration. Be careful to quote the path # and the sed script, to avoid splitting on whitespace, but # also don't use non-portable quotes within backquotes within # quotes we have to do it in 2 steps: extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` eval "$extractedcf" else func_error "ignoring unknown tag $tagname" fi ;; esac } # func_check_version_match # Ensure that we are using m4 macros, and libtool script from the same # release of libtool. func_check_version_match () { if test "$package_revision" != "$macro_revision"; then if test "$VERSION" != "$macro_version"; then if test -z "$macro_version"; then cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from an older release. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from $PACKAGE $macro_version. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF fi else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, $progname: but the definition of this LT_INIT comes from revision $macro_revision. $progname: You should recreate aclocal.m4 with macros from revision $package_revision $progname: of $PACKAGE $VERSION and run autoconf again. _LT_EOF fi exit $EXIT_MISMATCH fi } # Shorthand for --mode=foo, only valid as the first argument case $1 in clean|clea|cle|cl) shift; set dummy --mode clean ${1+"$@"}; shift ;; compile|compil|compi|comp|com|co|c) shift; set dummy --mode compile ${1+"$@"}; shift ;; execute|execut|execu|exec|exe|ex|e) shift; set dummy --mode execute ${1+"$@"}; shift ;; finish|finis|fini|fin|fi|f) shift; set dummy --mode finish ${1+"$@"}; shift ;; install|instal|insta|inst|ins|in|i) shift; set dummy --mode install ${1+"$@"}; shift ;; link|lin|li|l) shift; set dummy --mode link ${1+"$@"}; shift ;; uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) shift; set dummy --mode uninstall ${1+"$@"}; shift ;; esac # Option defaults: opt_debug=: opt_dry_run=false opt_config=false opt_preserve_dup_deps=false opt_features=false opt_finish=false opt_help=false opt_help_all=false opt_silent=: opt_warning=: opt_verbose=: opt_silent=false opt_verbose=false # Parse options once, thoroughly. This comes as soon as possible in the # script to make things like `--version' happen as quickly as we can. { # this just eases exit handling while test $# -gt 0; do opt="$1" shift case $opt in --debug|-x) opt_debug='set -x' func_echo "enabling shell trace mode" $opt_debug ;; --dry-run|--dryrun|-n) opt_dry_run=: ;; --config) opt_config=: func_config ;; --dlopen|-dlopen) optarg="$1" opt_dlopen="${opt_dlopen+$opt_dlopen }$optarg" shift ;; --preserve-dup-deps) opt_preserve_dup_deps=: ;; --features) opt_features=: func_features ;; --finish) opt_finish=: set dummy --mode finish ${1+"$@"}; shift ;; --help) opt_help=: ;; --help-all) opt_help_all=: opt_help=': help-all' ;; --mode) test $# = 0 && func_missing_arg $opt && break optarg="$1" opt_mode="$optarg" case $optarg in # Valid mode arguments: clean|compile|execute|finish|install|link|relink|uninstall) ;; # Catch anything else as an error *) func_error "invalid argument for $opt" exit_cmd=exit break ;; esac shift ;; --no-silent|--no-quiet) opt_silent=false func_append preserve_args " $opt" ;; --no-warning|--no-warn) opt_warning=false func_append preserve_args " $opt" ;; --no-verbose) opt_verbose=false func_append preserve_args " $opt" ;; --silent|--quiet) opt_silent=: func_append preserve_args " $opt" opt_verbose=false ;; --verbose|-v) opt_verbose=: func_append preserve_args " $opt" opt_silent=false ;; --tag) test $# = 0 && func_missing_arg $opt && break optarg="$1" opt_tag="$optarg" func_append preserve_args " $opt $optarg" func_enable_tag "$optarg" shift ;; -\?|-h) func_usage ;; --help) func_help ;; --version) func_version ;; # Separate optargs to long options: --*=*) func_split_long_opt "$opt" set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"} shift ;; # Separate non-argument short options: -\?*|-h*|-n*|-v*) func_split_short_opt "$opt" set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"} shift ;; --) break ;; -*) func_fatal_help "unrecognized option \`$opt'" ;; *) set dummy "$opt" ${1+"$@"}; shift; break ;; esac done # Validate options: # save first non-option argument if test "$#" -gt 0; then nonopt="$opt" shift fi # preserve --debug test "$opt_debug" = : || func_append preserve_args " --debug" case $host in *cygwin* | *mingw* | *pw32* | *cegcc*) # don't eliminate duplications in $postdeps and $predeps opt_duplicate_compiler_generated_deps=: ;; *) opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps ;; esac $opt_help || { # Sanity checks first: func_check_version_match if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then func_fatal_configuration "not configured to build any kind of library" fi # Darwin sucks eval std_shrext=\"$shrext_cmds\" # Only execute mode is allowed to have -dlopen flags. if test -n "$opt_dlopen" && test "$opt_mode" != execute; then func_error "unrecognized option \`-dlopen'" $ECHO "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help="$help" help="Try \`$progname --help --mode=$opt_mode' for more information." } # Bail if the options were screwed $exit_cmd $EXIT_FAILURE } ## ----------- ## ## Main. ## ## ----------- ## # func_lalib_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_lalib_p () { test -f "$1" && $SED -e 4q "$1" 2>/dev/null \ | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 } # func_lalib_unsafe_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function implements the same check as func_lalib_p without # resorting to external programs. To this end, it redirects stdin and # closes it afterwards, without saving the original file descriptor. # As a safety measure, use it only where a negative result would be # fatal anyway. Works if `file' does not exist. func_lalib_unsafe_p () { lalib_p=no if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then for lalib_p_l in 1 2 3 4 do read lalib_p_line case "$lalib_p_line" in \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; esac done exec 0<&5 5<&- fi test "$lalib_p" = yes } # func_ltwrapper_script_p file # True iff FILE is a libtool wrapper script # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_script_p () { func_lalib_p "$1" } # func_ltwrapper_executable_p file # True iff FILE is a libtool wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_executable_p () { func_ltwrapper_exec_suffix= case $1 in *.exe) ;; *) func_ltwrapper_exec_suffix=.exe ;; esac $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 } # func_ltwrapper_scriptname file # Assumes file is an ltwrapper_executable # uses $file to determine the appropriate filename for a # temporary ltwrapper_script. func_ltwrapper_scriptname () { func_dirname_and_basename "$1" "" "." func_stripname '' '.exe' "$func_basename_result" func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" } # func_ltwrapper_p file # True iff FILE is a libtool wrapper script or wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_p () { func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" } # func_execute_cmds commands fail_cmd # Execute tilde-delimited COMMANDS. # If FAIL_CMD is given, eval that upon failure. # FAIL_CMD may read-access the current command in variable CMD! func_execute_cmds () { $opt_debug save_ifs=$IFS; IFS='~' for cmd in $1; do IFS=$save_ifs eval cmd=\"$cmd\" func_show_eval "$cmd" "${2-:}" done IFS=$save_ifs } # func_source file # Source FILE, adding directory component if necessary. # Note that it is not necessary on cygwin/mingw to append a dot to # FILE even if both FILE and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. func_source () { $opt_debug case $1 in */* | *\\*) . "$1" ;; *) . "./$1" ;; esac } # func_resolve_sysroot PATH # Replace a leading = in PATH with a sysroot. Store the result into # func_resolve_sysroot_result func_resolve_sysroot () { func_resolve_sysroot_result=$1 case $func_resolve_sysroot_result in =*) func_stripname '=' '' "$func_resolve_sysroot_result" func_resolve_sysroot_result=$lt_sysroot$func_stripname_result ;; esac } # func_replace_sysroot PATH # If PATH begins with the sysroot, replace it with = and # store the result into func_replace_sysroot_result. func_replace_sysroot () { case "$lt_sysroot:$1" in ?*:"$lt_sysroot"*) func_stripname "$lt_sysroot" '' "$1" func_replace_sysroot_result="=$func_stripname_result" ;; *) # Including no sysroot. func_replace_sysroot_result=$1 ;; esac } # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base compile # command doesn't match the default compiler. # arg is usually of the form 'gcc ...' func_infer_tag () { $opt_debug if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do func_append_quoted CC_quoted "$arg" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. func_append_quoted CC_quoted "$arg" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` case "$@ " in " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then func_echo "unable to infer tagged configuration" func_fatal_error "specify a tag with \`--tag'" # else # func_verbose "using $tagname tagged configuration" fi ;; esac fi } # func_write_libtool_object output_name pic_name nonpic_name # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. func_write_libtool_object () { write_libobj=${1} if test "$build_libtool_libs" = yes; then write_lobj=\'${2}\' else write_lobj=none fi if test "$build_old_libs" = yes; then write_oldobj=\'${3}\' else write_oldobj=none fi $opt_dry_run || { cat >${write_libobj}T </dev/null` if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | $SED -e "$lt_sed_naive_backslashify"` else func_convert_core_file_wine_to_w32_result= fi fi } # end: func_convert_core_file_wine_to_w32 # func_convert_core_path_wine_to_w32 ARG # Helper function used by path conversion functions when $build is *nix, and # $host is mingw, cygwin, or some other w32 environment. Relies on a correctly # configured wine environment available, with the winepath program in $build's # $PATH. Assumes ARG has no leading or trailing path separator characters. # # ARG is path to be converted from $build format to win32. # Result is available in $func_convert_core_path_wine_to_w32_result. # Unconvertible file (directory) names in ARG are skipped; if no directory names # are convertible, then the result may be empty. func_convert_core_path_wine_to_w32 () { $opt_debug # unfortunately, winepath doesn't convert paths, only file names func_convert_core_path_wine_to_w32_result="" if test -n "$1"; then oldIFS=$IFS IFS=: for func_convert_core_path_wine_to_w32_f in $1; do IFS=$oldIFS func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" if test -n "$func_convert_core_file_wine_to_w32_result" ; then if test -z "$func_convert_core_path_wine_to_w32_result"; then func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result" else func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" fi fi done IFS=$oldIFS fi } # end: func_convert_core_path_wine_to_w32 # func_cygpath ARGS... # Wrapper around calling the cygpath program via LT_CYGPATH. This is used when # when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) # $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or # (2), returns the Cygwin file name or path in func_cygpath_result (input # file name or path is assumed to be in w32 format, as previously converted # from $build's *nix or MSYS format). In case (3), returns the w32 file name # or path in func_cygpath_result (input file name or path is assumed to be in # Cygwin format). Returns an empty string on error. # # ARGS are passed to cygpath, with the last one being the file name or path to # be converted. # # Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH # environment variable; do not put it in $PATH. func_cygpath () { $opt_debug if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` if test "$?" -ne 0; then # on failure, ensure result is empty func_cygpath_result= fi else func_cygpath_result= func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'" fi } #end: func_cygpath # func_convert_core_msys_to_w32 ARG # Convert file name or path ARG from MSYS format to w32 format. Return # result in func_convert_core_msys_to_w32_result. func_convert_core_msys_to_w32 () { $opt_debug # awkward: cmd appends spaces to result func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` } #end: func_convert_core_msys_to_w32 # func_convert_file_check ARG1 ARG2 # Verify that ARG1 (a file name in $build format) was converted to $host # format in ARG2. Otherwise, emit an error message, but continue (resetting # func_to_host_file_result to ARG1). func_convert_file_check () { $opt_debug if test -z "$2" && test -n "$1" ; then func_error "Could not determine host file name corresponding to" func_error " \`$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback: func_to_host_file_result="$1" fi } # end func_convert_file_check # func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH # Verify that FROM_PATH (a path in $build format) was converted to $host # format in TO_PATH. Otherwise, emit an error message, but continue, resetting # func_to_host_file_result to a simplistic fallback value (see below). func_convert_path_check () { $opt_debug if test -z "$4" && test -n "$3"; then func_error "Could not determine the host path corresponding to" func_error " \`$3'" func_error "Continuing, but uninstalled executables may not work." # Fallback. This is a deliberately simplistic "conversion" and # should not be "improved". See libtool.info. if test "x$1" != "x$2"; then lt_replace_pathsep_chars="s|$1|$2|g" func_to_host_path_result=`echo "$3" | $SED -e "$lt_replace_pathsep_chars"` else func_to_host_path_result="$3" fi fi } # end func_convert_path_check # func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG # Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT # and appending REPL if ORIG matches BACKPAT. func_convert_path_front_back_pathsep () { $opt_debug case $4 in $1 ) func_to_host_path_result="$3$func_to_host_path_result" ;; esac case $4 in $2 ) func_append func_to_host_path_result "$3" ;; esac } # end func_convert_path_front_back_pathsep ################################################## # $build to $host FILE NAME CONVERSION FUNCTIONS # ################################################## # invoked via `$to_host_file_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # Result will be available in $func_to_host_file_result. # func_to_host_file ARG # Converts the file name ARG from $build format to $host format. Return result # in func_to_host_file_result. func_to_host_file () { $opt_debug $to_host_file_cmd "$1" } # end func_to_host_file # func_to_tool_file ARG LAZY # converts the file name ARG from $build format to toolchain format. Return # result in func_to_tool_file_result. If the conversion in use is listed # in (the comma separated) LAZY, no conversion takes place. func_to_tool_file () { $opt_debug case ,$2, in *,"$to_tool_file_cmd",*) func_to_tool_file_result=$1 ;; *) $to_tool_file_cmd "$1" func_to_tool_file_result=$func_to_host_file_result ;; esac } # end func_to_tool_file # func_convert_file_noop ARG # Copy ARG to func_to_host_file_result. func_convert_file_noop () { func_to_host_file_result="$1" } # end func_convert_file_noop # func_convert_file_msys_to_w32 ARG # Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic # conversion to w32 is not available inside the cwrapper. Returns result in # func_to_host_file_result. func_convert_file_msys_to_w32 () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_to_host_file_result="$func_convert_core_msys_to_w32_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_msys_to_w32 # func_convert_file_cygwin_to_w32 ARG # Convert file name ARG from Cygwin to w32 format. Returns result in # func_to_host_file_result. func_convert_file_cygwin_to_w32 () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then # because $build is cygwin, we call "the" cygpath in $PATH; no need to use # LT_CYGPATH in this case. func_to_host_file_result=`cygpath -m "$1"` fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_cygwin_to_w32 # func_convert_file_nix_to_w32 ARG # Convert file name ARG from *nix to w32 format. Requires a wine environment # and a working winepath. Returns result in func_to_host_file_result. func_convert_file_nix_to_w32 () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then func_convert_core_file_wine_to_w32 "$1" func_to_host_file_result="$func_convert_core_file_wine_to_w32_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_nix_to_w32 # func_convert_file_msys_to_cygwin ARG # Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. # Returns result in func_to_host_file_result. func_convert_file_msys_to_cygwin () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_cygpath -u "$func_convert_core_msys_to_w32_result" func_to_host_file_result="$func_cygpath_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_msys_to_cygwin # func_convert_file_nix_to_cygwin ARG # Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed # in a wine environment, working winepath, and LT_CYGPATH set. Returns result # in func_to_host_file_result. func_convert_file_nix_to_cygwin () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. func_convert_core_file_wine_to_w32 "$1" func_cygpath -u "$func_convert_core_file_wine_to_w32_result" func_to_host_file_result="$func_cygpath_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_nix_to_cygwin ############################################# # $build to $host PATH CONVERSION FUNCTIONS # ############################################# # invoked via `$to_host_path_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # The result will be available in $func_to_host_path_result. # # Path separators are also converted from $build format to $host format. If # ARG begins or ends with a path separator character, it is preserved (but # converted to $host format) on output. # # All path conversion functions are named using the following convention: # file name conversion function : func_convert_file_X_to_Y () # path conversion function : func_convert_path_X_to_Y () # where, for any given $build/$host combination the 'X_to_Y' value is the # same. If conversion functions are added for new $build/$host combinations, # the two new functions must follow this pattern, or func_init_to_host_path_cmd # will break. # func_init_to_host_path_cmd # Ensures that function "pointer" variable $to_host_path_cmd is set to the # appropriate value, based on the value of $to_host_file_cmd. to_host_path_cmd= func_init_to_host_path_cmd () { $opt_debug if test -z "$to_host_path_cmd"; then func_stripname 'func_convert_file_' '' "$to_host_file_cmd" to_host_path_cmd="func_convert_path_${func_stripname_result}" fi } # func_to_host_path ARG # Converts the path ARG from $build format to $host format. Return result # in func_to_host_path_result. func_to_host_path () { $opt_debug func_init_to_host_path_cmd $to_host_path_cmd "$1" } # end func_to_host_path # func_convert_path_noop ARG # Copy ARG to func_to_host_path_result. func_convert_path_noop () { func_to_host_path_result="$1" } # end func_convert_path_noop # func_convert_path_msys_to_w32 ARG # Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic # conversion to w32 is not available inside the cwrapper. Returns result in # func_to_host_path_result. func_convert_path_msys_to_w32 () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # Remove leading and trailing path separator characters from ARG. MSYS # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; # and winepath ignores them completely. func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_to_host_path_result="$func_convert_core_msys_to_w32_result" func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_msys_to_w32 # func_convert_path_cygwin_to_w32 ARG # Convert path ARG from Cygwin to w32 format. Returns result in # func_to_host_file_result. func_convert_path_cygwin_to_w32 () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_cygwin_to_w32 # func_convert_path_nix_to_w32 ARG # Convert path ARG from *nix to w32 format. Requires a wine environment and # a working winepath. Returns result in func_to_host_file_result. func_convert_path_nix_to_w32 () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_to_host_path_result="$func_convert_core_path_wine_to_w32_result" func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_nix_to_w32 # func_convert_path_msys_to_cygwin ARG # Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. # Returns result in func_to_host_file_result. func_convert_path_msys_to_cygwin () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_msys_to_w32_result" func_to_host_path_result="$func_cygpath_result" func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" fi } # end func_convert_path_msys_to_cygwin # func_convert_path_nix_to_cygwin ARG # Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a # a wine environment, working winepath, and LT_CYGPATH set. Returns result in # func_to_host_file_result. func_convert_path_nix_to_cygwin () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # Remove leading and trailing path separator characters from # ARG. msys behavior is inconsistent here, cygpath turns them # into '.;' and ';.', and winepath ignores them completely. func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" func_to_host_path_result="$func_cygpath_result" func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" fi } # end func_convert_path_nix_to_cygwin # func_mode_compile arg... func_mode_compile () { $opt_debug # Get the compilation command and the source file. base_compile= srcfile="$nonopt" # always keep a non-empty value in "srcfile" suppress_opt=yes suppress_output= arg_mode=normal libobj= later= pie_flag= for arg do case $arg_mode in arg ) # do not "continue". Instead, add this to base_compile lastarg="$arg" arg_mode=normal ;; target ) libobj="$arg" arg_mode=normal continue ;; normal ) # Accept any command-line options. case $arg in -o) test -n "$libobj" && \ func_fatal_error "you cannot specify \`-o' more than once" arg_mode=target continue ;; -pie | -fpie | -fPIE) func_append pie_flag " $arg" continue ;; -shared | -static | -prefer-pic | -prefer-non-pic) func_append later " $arg" continue ;; -no-suppress) suppress_opt=no continue ;; -Xcompiler) arg_mode=arg # the next one goes into the "base_compile" arg list continue # The current "srcfile" will either be retained or ;; # replaced later. I would guess that would be a bug. -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result lastarg= save_ifs="$IFS"; IFS=',' for arg in $args; do IFS="$save_ifs" func_append_quoted lastarg "$arg" done IFS="$save_ifs" func_stripname ' ' '' "$lastarg" lastarg=$func_stripname_result # Add the arguments to base_compile. func_append base_compile " $lastarg" continue ;; *) # Accept the current argument as the source file. # The previous "srcfile" becomes the current argument. # lastarg="$srcfile" srcfile="$arg" ;; esac # case $arg ;; esac # case $arg_mode # Aesthetically quote the previous argument. func_append_quoted base_compile "$lastarg" done # for arg case $arg_mode in arg) func_fatal_error "you must specify an argument for -Xcompile" ;; target) func_fatal_error "you must specify a target with \`-o'" ;; *) # Get the name of the library object. test -z "$libobj" && { func_basename "$srcfile" libobj="$func_basename_result" } ;; esac # Recognize several different file suffixes. # If the user specifies -o file.o, it is replaced with file.lo case $libobj in *.[cCFSifmso] | \ *.ada | *.adb | *.ads | *.asm | \ *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) func_xform "$libobj" libobj=$func_xform_result ;; esac case $libobj in *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; *) func_fatal_error "cannot determine name of library object from \`$libobj'" ;; esac func_infer_tag $base_compile for arg in $later; do case $arg in -shared) test "$build_libtool_libs" != yes && \ func_fatal_configuration "can not build a shared library" build_old_libs=no continue ;; -static) build_libtool_libs=no build_old_libs=yes continue ;; -prefer-pic) pic_mode=yes continue ;; -prefer-non-pic) pic_mode=no continue ;; esac done func_quote_for_eval "$libobj" test "X$libobj" != "X$func_quote_for_eval_result" \ && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ && func_warning "libobj name \`$libobj' may not contain shell special characters." func_dirname_and_basename "$obj" "/" "" objname="$func_basename_result" xdir="$func_dirname_result" lobj=${xdir}$objdir/$objname test -z "$base_compile" && \ func_fatal_help "you must specify a compilation command" # Delete any leftover library objects. if test "$build_old_libs" = yes; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2* | cegcc*) pic_mode=default ;; esac if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test "$compiler_c_o" = no; then output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" else output_obj= need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test "$need_locks" = yes; then until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done elif test "$need_locks" = warn; then if test -f "$lockfile"; then $ECHO "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi func_append removelist " $output_obj" $ECHO "$srcfile" > "$lockfile" fi $opt_dry_run || $RM $removelist func_append removelist " $lockfile" trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 srcfile=$func_to_tool_file_result func_quote_for_eval "$srcfile" qsrcfile=$func_quote_for_eval_result # Only build a PIC object if we are building libtool libraries. if test "$build_libtool_libs" = yes; then # Without this assignment, base_compile gets emptied. fbsd_hideous_sh_bug=$base_compile if test "$pic_mode" != no; then command="$base_compile $qsrcfile $pic_flag" else # Don't build PIC code command="$base_compile $qsrcfile" fi func_mkdir_p "$xdir$objdir" if test -z "$output_obj"; then # Place PIC objects in $objdir func_append command " -o $lobj" fi func_show_eval_locale "$command" \ 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then func_show_eval '$MV "$output_obj" "$lobj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi # Allow error messages only from the first compilation. if test "$suppress_opt" = yes; then suppress_output=' >/dev/null 2>&1' fi fi # Only build a position-dependent object if we build old libraries. if test "$build_old_libs" = yes; then if test "$pic_mode" != yes; then # Don't build PIC code command="$base_compile $qsrcfile$pie_flag" else command="$base_compile $qsrcfile $pic_flag" fi if test "$compiler_c_o" = yes; then func_append command " -o $obj" fi # Suppress compiler output if we already did a PIC compilation. func_append command "$suppress_output" func_show_eval_locale "$command" \ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then func_show_eval '$MV "$output_obj" "$obj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi fi $opt_dry_run || { func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" # Unlock the critical section if it was locked if test "$need_locks" != no; then removelist=$lockfile $RM "$lockfile" fi } exit $EXIT_SUCCESS } $opt_help || { test "$opt_mode" = compile && func_mode_compile ${1+"$@"} } func_mode_help () { # We need to display help for each of the modes. case $opt_mode in "") # Generic help is extracted from the usage comments # at the start of this file. func_help ;; clean) $ECHO \ "Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $ECHO \ "Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -no-suppress do not suppress compiler output for multiple passes -prefer-pic try to build PIC objects only -prefer-non-pic try to build non-PIC objects only -shared do not build a \`.o' file suitable for static linking -static only build a \`.o' file suitable for static linking -Wc,FLAG pass FLAG directly to the compiler COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix \`.c' with the library object suffix, \`.lo'." ;; execute) $ECHO \ "Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to \`-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $ECHO \ "Usage: $progname [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the \`--dry-run' option if you just want to see what would be executed." ;; install) $ECHO \ "Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the \`install' or \`cp' program. The following components of INSTALL-COMMAND are treated specially: -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $ECHO \ "Usage: $progname [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -bindir BINDIR specify path to binaries directory (for systems where libraries must be found in the PATH setting at runtime) -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE Use a list of object files found in FILE to specify objects -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -shared only do dynamic linking of libtool libraries -shrext SUFFIX override the standard shared library file extension -static do not do any dynamic linking of uninstalled libtool libraries -static-libtool-libs do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] -weak LIBNAME declare that the target provides the LIBNAME interface -Wc,FLAG -Xcompiler FLAG pass linker-specific FLAG directly to the compiler -Wl,FLAG -Xlinker FLAG pass linker-specific FLAG directly to the linker -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) All other options (arguments beginning with \`-') are ignored. Every other argument is treated as a filename. Files ending in \`.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only library objects (\`.lo' files) may be specified, and \`-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created using \`ar' and \`ranlib', or on Windows using \`lib'. If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $ECHO \ "Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) func_fatal_help "invalid operation mode \`$opt_mode'" ;; esac echo $ECHO "Try \`$progname --help' for more information about other modes." } # Now that we've collected a possible --mode arg, show help if necessary if $opt_help; then if test "$opt_help" = :; then func_mode_help else { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do func_mode_help done } | sed -n '1p; 2,$s/^Usage:/ or: /p' { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do echo func_mode_help done } | sed '1d /^When reporting/,/^Report/{ H d } $x /information about other modes/d /more detailed .*MODE/d s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' fi exit $? fi # func_mode_execute arg... func_mode_execute () { $opt_debug # The first argument is the command name. cmd="$nonopt" test -z "$cmd" && \ func_fatal_help "you must specify a COMMAND" # Handle -dlopen flags immediately. for file in $opt_dlopen; do test -f "$file" \ || func_fatal_help "\`$file' is not a file" dir= case $file in *.la) func_resolve_sysroot "$file" file=$func_resolve_sysroot_result # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$lib' is not a valid libtool archive" # Read the libtool library. dlname= library_names= func_source "$file" # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && \ func_warning "\`$file' was not linked with \`-export-dynamic'" continue fi func_dirname "$file" "" "." dir="$func_dirname_result" if test -f "$dir/$objdir/$dlname"; then func_append dir "/$objdir" else if test ! -f "$dir/$dlname"; then func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" fi fi ;; *.lo) # Just add the directory containing the .lo file. func_dirname "$file" "" "." dir="$func_dirname_result" ;; *) func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir="$absdir" # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic="$magic" # Check if any of the arguments is a wrapper script. args= for file do case $file in -* | *.la | *.lo ) ;; *) # Do a test to see if this is really a libtool program. if func_ltwrapper_script_p "$file"; then func_source "$file" # Transform arg to wrapped name. file="$progdir/$program" elif func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" func_source "$func_ltwrapper_scriptname_result" # Transform arg to wrapped name. file="$progdir/$program" fi ;; esac # Quote arguments (to preserve shell metacharacters). func_append_quoted args "$file" done if test "X$opt_dry_run" = Xfalse; then if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${save_$lt_var+set}\" = set; then $lt_var=\$save_$lt_var; export $lt_var else $lt_unset $lt_var fi" done # Now prepare to actually exec the command. exec_cmd="\$cmd$args" else # Display what would be done. if test -n "$shlibpath_var"; then eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" echo "export $shlibpath_var" fi $ECHO "$cmd$args" exit $EXIT_SUCCESS fi } test "$opt_mode" = execute && func_mode_execute ${1+"$@"} # func_mode_finish arg... func_mode_finish () { $opt_debug libs= libdirs= admincmds= for opt in "$nonopt" ${1+"$@"} do if test -d "$opt"; then func_append libdirs " $opt" elif test -f "$opt"; then if func_lalib_unsafe_p "$opt"; then func_append libs " $opt" else func_warning "\`$opt' is not a valid libtool archive" fi else func_fatal_error "invalid argument \`$opt'" fi done if test -n "$libs"; then if test -n "$lt_sysroot"; then sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" else sysroot_cmd= fi # Remove sysroot references if $opt_dry_run; then for lib in $libs; do echo "removing references to $lt_sysroot and \`=' prefixes from $lib" done else tmpdir=`func_mktempdir` for lib in $libs; do sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ > $tmpdir/tmp-la mv -f $tmpdir/tmp-la $lib done ${RM}r "$tmpdir" fi fi if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. func_execute_cmds "$finish_cmds" 'admincmds="$admincmds '"$cmd"'"' fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $opt_dry_run || eval "$cmds" || func_append admincmds " $cmds" fi done fi # Exit here if they wanted silent mode. $opt_silent && exit $EXIT_SUCCESS if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then echo "----------------------------------------------------------------------" echo "Libraries have been installed in:" for libdir in $libdirs; do $ECHO " $libdir" done echo echo "If you ever happen to want to link against installed libraries" echo "in a given directory, LIBDIR, you must either use libtool, and" echo "specify the full pathname of the library, or use the \`-LLIBDIR'" echo "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then echo " - add LIBDIR to the \`$shlibpath_var' environment variable" echo " during execution" fi if test -n "$runpath_var"; then echo " - add LIBDIR to the \`$runpath_var' environment variable" echo " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" $ECHO " - use the \`$flag' linker flag" fi if test -n "$admincmds"; then $ECHO " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" fi echo echo "See any operating system documentation about shared libraries for" case $host in solaris2.[6789]|solaris2.1[0-9]) echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" echo "pages." ;; *) echo "more information, such as the ld(1) and ld.so(8) manual pages." ;; esac echo "----------------------------------------------------------------------" fi exit $EXIT_SUCCESS } test "$opt_mode" = finish && func_mode_finish ${1+"$@"} # func_mode_install arg... func_mode_install () { $opt_debug # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. case $nonopt in *shtool*) :;; *) false;; esac; then # Aesthetically quote it. func_quote_for_eval "$nonopt" install_prog="$func_quote_for_eval_result " arg=$1 shift else install_prog= arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. func_quote_for_eval "$arg" func_append install_prog "$func_quote_for_eval_result" install_shared_prog=$install_prog case " $install_prog " in *[\\\ /]cp\ *) install_cp=: ;; *) install_cp=false ;; esac # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= no_mode=: for arg do arg2= if test -n "$dest"; then func_append files " $dest" dest=$arg continue fi case $arg in -d) isdir=yes ;; -f) if $install_cp; then :; else prev=$arg fi ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then if test "x$prev" = x-m && test -n "$install_override_mode"; then arg2=$install_override_mode no_mode=false fi prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. func_quote_for_eval "$arg" func_append install_prog " $func_quote_for_eval_result" if test -n "$arg2"; then func_quote_for_eval "$arg2" fi func_append install_shared_prog " $func_quote_for_eval_result" done test -z "$install_prog" && \ func_fatal_help "you must specify an install program" test -n "$prev" && \ func_fatal_help "the \`$prev' option requires an argument" if test -n "$install_override_mode" && $no_mode; then if $install_cp; then :; else func_quote_for_eval "$install_override_mode" func_append install_shared_prog " -m $func_quote_for_eval_result" fi fi if test -z "$files"; then if test -z "$dest"; then func_fatal_help "no file or destination specified" else func_fatal_help "you must specify a destination" fi fi # Strip any trailing slash from the destination. func_stripname '' '/' "$dest" dest=$func_stripname_result # Check to see that the destination is a directory. test -d "$dest" && isdir=yes if test "$isdir" = yes; then destdir="$dest" destname= else func_dirname_and_basename "$dest" "" "." destdir="$func_dirname_result" destname="$func_basename_result" # Not a directory, so check to see that there is only one file specified. set dummy $files; shift test "$#" -gt 1 && \ func_fatal_help "\`$dest' is not a directory" fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) func_fatal_help "\`$destdir' must be an absolute directory name" ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. func_append staticlibs " $file" ;; *.la) func_resolve_sysroot "$file" file=$func_resolve_sysroot_result # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$file' is not a valid libtool archive" library_names= old_library= relink_command= func_source "$file" # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) func_append current_libdirs " $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) func_append future_libdirs " $libdir" ;; esac fi func_dirname "$file" "/" "" dir="$func_dirname_result" func_append dir "$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. test "$inst_prefix_dir" = "$destdir" && \ func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` fi func_warning "relinking \`$file'" func_show_eval "$relink_command" \ 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' fi # See the names of the shared library. set dummy $library_names; shift if test -n "$1"; then realname="$1" shift srcname="$realname" test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ 'exit $?' tstripme="$stripme" case $host_os in cygwin* | mingw* | pw32* | cegcc*) case $realname in *.dll.a) tstripme="" ;; esac ;; esac if test -n "$tstripme" && test -n "$striplib"; then func_show_eval "$striplib $destdir/$realname" 'exit $?' fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. # Try `ln -sf' first, because the `ln' binary might depend on # the symlink we replace! Solaris /bin/ln does not understand -f, # so we also need to try rm && ln -s. for linkname do test "$linkname" != "$realname" \ && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" done fi # Do each command in the postinstall commands. lib="$destdir/$realname" func_execute_cmds "$postinstall_cmds" 'exit $?' fi # Install the pseudo-library for information purposes. func_basename "$file" name="$func_basename_result" instname="$dir/$name"i func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' # Maybe install the static library, too. test -n "$old_library" && func_append staticlibs " $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) func_lo2o "$destfile" staticdest=$func_lo2o_result ;; *.$objext) staticdest="$destfile" destfile= ;; *) func_fatal_help "cannot copy a libtool object to \`$destfile'" ;; esac # Install the libtool object if requested. test -n "$destfile" && \ func_show_eval "$install_prog $file $destfile" 'exit $?' # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. func_lo2o "$file" staticobj=$func_lo2o_result func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install stripped_ext="" case $file in *.exe) if test ! -f "$file"; then func_stripname '' '.exe' "$file" file=$func_stripname_result stripped_ext=".exe" fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin* | *mingw*) if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" wrapper=$func_ltwrapper_scriptname_result else func_stripname '' '.exe' "$file" wrapper=$func_stripname_result fi ;; *) wrapper=$file ;; esac if func_ltwrapper_script_p "$wrapper"; then notinst_deplibs= relink_command= func_source "$wrapper" # Check the variables that should have been set. test -z "$generated_by_libtool_version" && \ func_fatal_error "invalid libtool wrapper script \`$wrapper'" finalize=yes for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then func_source "$lib" fi libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then func_warning "\`$lib' has not been installed in \`$libdir'" finalize=no fi done relink_command= func_source "$wrapper" outputname= if test "$fast_install" = no && test -n "$relink_command"; then $opt_dry_run || { if test "$finalize" = yes; then tmpdir=`func_mktempdir` func_basename "$file$stripped_ext" file="$func_basename_result" outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` $opt_silent || { func_quote_for_expand "$relink_command" eval "func_echo $func_quote_for_expand_result" } if eval "$relink_command"; then : else func_error "error: relink \`$file' with the above command before installing it" $opt_dry_run || ${RM}r "$tmpdir" continue fi file="$outputname" else func_warning "cannot relink \`$file'" fi } else # Install the binary that we compiled earlier. file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyway case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) func_stripname '' '.exe' "$destfile" destfile=$func_stripname_result ;; esac ;; esac func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' $opt_dry_run || if test -n "$outputname"; then ${RM}r "$tmpdir" fi ;; esac done for file in $staticlibs; do func_basename "$file" name="$func_basename_result" # Set up the ranlib parameters. oldlib="$destdir/$name" func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 tool_oldlib=$func_to_tool_file_result func_show_eval "$install_prog \$file \$oldlib" 'exit $?' if test -n "$stripme" && test -n "$old_striplib"; then func_show_eval "$old_striplib $tool_oldlib" 'exit $?' fi # Do each command in the postinstall commands. func_execute_cmds "$old_postinstall_cmds" 'exit $?' done test -n "$future_libdirs" && \ func_warning "remember to run \`$progname --finish$future_libdirs'" if test -n "$current_libdirs"; then # Maybe just do a dry run. $opt_dry_run && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi } test "$opt_mode" = install && func_mode_install ${1+"$@"} # func_generate_dlsyms outputname originator pic_p # Extract symbols from dlprefiles and create ${outputname}S.o with # a dlpreopen symbol table. func_generate_dlsyms () { $opt_debug my_outputname="$1" my_originator="$2" my_pic_p="${3-no}" my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` my_dlsyms= if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then my_dlsyms="${my_outputname}S.c" else func_error "not configured to extract global symbols from dlpreopened files" fi fi if test -n "$my_dlsyms"; then case $my_dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist="$output_objdir/${my_outputname}.nm" func_show_eval "$RM $nlist ${nlist}S ${nlist}T" # Parse the name list into a source file. func_verbose "creating $output_objdir/$my_dlsyms" $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ /* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ /* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ #ifdef __cplusplus extern \"C\" { #endif #if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) #pragma GCC diagnostic ignored \"-Wstrict-prototypes\" #endif /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST #elif defined(__osf__) /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else # define LT_DLSYM_CONST const #endif /* External symbol declarations for the compiler. */\ " if test "$dlself" = yes; then func_verbose "generating symbol list for \`$output'" $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` for progfile in $progfiles; do func_to_tool_file "$progfile" func_convert_file_msys_to_w32 func_verbose "extracting global C symbols from \`$func_to_tool_file_result'" $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $opt_dry_run || { eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi if test -n "$export_symbols_regex"; then $opt_dry_run || { eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols="$output_objdir/$outputname.exp" $opt_dry_run || { $RM $export_symbols eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; esac } else $opt_dry_run || { eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; esac } fi fi for dlprefile in $dlprefiles; do func_verbose "extracting global C symbols from \`$dlprefile'" func_basename "$dlprefile" name="$func_basename_result" case $host in *cygwin* | *mingw* | *cegcc* ) # if an import library, we need to obtain dlname if func_win32_import_lib_p "$dlprefile"; then func_tr_sh "$dlprefile" eval "curr_lafile=\$libfile_$func_tr_sh_result" dlprefile_dlbasename="" if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then # Use subshell, to avoid clobbering current variable values dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` if test -n "$dlprefile_dlname" ; then func_basename "$dlprefile_dlname" dlprefile_dlbasename="$func_basename_result" else # no lafile. user explicitly requested -dlpreopen . $sharedlib_from_linklib_cmd "$dlprefile" dlprefile_dlbasename=$sharedlib_from_linklib_result fi fi $opt_dry_run || { if test -n "$dlprefile_dlbasename" ; then eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' else func_warning "Could not compute DLL name from $name" eval '$ECHO ": $name " >> "$nlist"' fi func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" } else # not an import lib $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" } fi ;; *) $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" } ;; esac done $opt_dry_run || { # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $MV "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if $GREP -v "^: " < "$nlist" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else $GREP -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' else echo '/* NONE */' >> "$output_objdir/$my_dlsyms" fi echo >> "$output_objdir/$my_dlsyms" "\ /* The mapping between symbol names and symbols. */ typedef struct { const char *name; void *address; } lt_dlsymlist; extern LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[]; LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[] = {\ { \"$my_originator\", (void *) 0 }," case $need_lib_prefix in no) eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; *) eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; esac echo >> "$output_objdir/$my_dlsyms" "\ {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_${my_prefix}_LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " } # !$opt_dry_run pic_flag_for_symtable= case "$compile_command " in *" -static "*) ;; *) case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; *-*-hpux*) pic_flag_for_symtable=" $pic_flag" ;; *) if test "X$my_pic_p" != Xno; then pic_flag_for_symtable=" $pic_flag" fi ;; esac ;; esac symtab_cflags= for arg in $LTCFLAGS; do case $arg in -pie | -fpie | -fPIE) ;; *) func_append symtab_cflags " $arg" ;; esac done # Now compile the dynamic symbol file. func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' # Clean up the generated files. func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' # Transform the symbol file into the correct name. symfileobj="$output_objdir/${my_outputname}S.$objext" case $host in *cygwin* | *mingw* | *cegcc* ) if test -f "$output_objdir/$my_outputname.def"; then compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` else compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` fi ;; *) compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` ;; esac ;; *) func_fatal_error "unknown suffix for \`$my_dlsyms'" ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` fi } # func_win32_libid arg # return the library type of file 'arg' # # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. # Despite the name, also deal with 64 bit binaries. func_win32_libid () { $opt_debug win32_libid_type="unknown" win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then func_to_tool_file "$1" func_convert_file_msys_to_w32 win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | $SED -n -e ' 1,100{ / I /{ s,.*,import, p q } }'` case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; esac fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $ECHO "$win32_libid_type" } # func_cygming_dll_for_implib ARG # # Platform-specific function to extract the # name of the DLL associated with the specified # import library ARG. # Invoked by eval'ing the libtool variable # $sharedlib_from_linklib_cmd # Result is available in the variable # $sharedlib_from_linklib_result func_cygming_dll_for_implib () { $opt_debug sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` } # func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs # # The is the core of a fallback implementation of a # platform-specific function to extract the name of the # DLL associated with the specified import library LIBNAME. # # SECTION_NAME is either .idata$6 or .idata$7, depending # on the platform and compiler that created the implib. # # Echos the name of the DLL associated with the # specified import library. func_cygming_dll_for_implib_fallback_core () { $opt_debug match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` $OBJDUMP -s --section "$1" "$2" 2>/dev/null | $SED '/^Contents of section '"$match_literal"':/{ # Place marker at beginning of archive member dllname section s/.*/====MARK====/ p d } # These lines can sometimes be longer than 43 characters, but # are always uninteresting /:[ ]*file format pe[i]\{,1\}-/d /^In archive [^:]*:/d # Ensure marker is printed /^====MARK====/p # Remove all lines with less than 43 characters /^.\{43\}/!d # From remaining lines, remove first 43 characters s/^.\{43\}//' | $SED -n ' # Join marker and all lines until next marker into a single line /^====MARK====/ b para H $ b para b :para x s/\n//g # Remove the marker s/^====MARK====// # Remove trailing dots and whitespace s/[\. \t]*$// # Print /./p' | # we now have a list, one entry per line, of the stringified # contents of the appropriate section of all members of the # archive which possess that section. Heuristic: eliminate # all those which have a first or second character that is # a '.' (that is, objdump's representation of an unprintable # character.) This should work for all archives with less than # 0x302f exports -- but will fail for DLLs whose name actually # begins with a literal '.' or a single character followed by # a '.'. # # Of those that remain, print the first one. $SED -e '/^\./d;/^.\./d;q' } # func_cygming_gnu_implib_p ARG # This predicate returns with zero status (TRUE) if # ARG is a GNU/binutils-style import library. Returns # with nonzero status (FALSE) otherwise. func_cygming_gnu_implib_p () { $opt_debug func_to_tool_file "$1" func_convert_file_msys_to_w32 func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` test -n "$func_cygming_gnu_implib_tmp" } # func_cygming_ms_implib_p ARG # This predicate returns with zero status (TRUE) if # ARG is an MS-style import library. Returns # with nonzero status (FALSE) otherwise. func_cygming_ms_implib_p () { $opt_debug func_to_tool_file "$1" func_convert_file_msys_to_w32 func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` test -n "$func_cygming_ms_implib_tmp" } # func_cygming_dll_for_implib_fallback ARG # Platform-specific function to extract the # name of the DLL associated with the specified # import library ARG. # # This fallback implementation is for use when $DLLTOOL # does not support the --identify-strict option. # Invoked by eval'ing the libtool variable # $sharedlib_from_linklib_cmd # Result is available in the variable # $sharedlib_from_linklib_result func_cygming_dll_for_implib_fallback () { $opt_debug if func_cygming_gnu_implib_p "$1" ; then # binutils import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` elif func_cygming_ms_implib_p "$1" ; then # ms-generated import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` else # unknown sharedlib_from_linklib_result="" fi } # func_extract_an_archive dir oldlib func_extract_an_archive () { $opt_debug f_ex_an_ar_dir="$1"; shift f_ex_an_ar_oldlib="$1" if test "$lock_old_archive_extraction" = yes; then lockfile=$f_ex_an_ar_oldlib.lock until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done fi func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ 'stat=$?; rm -f "$lockfile"; exit $stat' if test "$lock_old_archive_extraction" = yes; then $opt_dry_run || rm -f "$lockfile" fi if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" fi } # func_extract_archives gentop oldlib ... func_extract_archives () { $opt_debug my_gentop="$1"; shift my_oldlibs=${1+"$@"} my_oldobjs="" my_xlib="" my_xabs="" my_xdir="" for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac func_basename "$my_xlib" my_xlib="$func_basename_result" my_xlib_u=$my_xlib while :; do case " $extracted_archives " in *" $my_xlib_u "*) func_arith $extracted_serial + 1 extracted_serial=$func_arith_result my_xlib_u=lt$extracted_serial-$my_xlib ;; *) break ;; esac done extracted_archives="$extracted_archives $my_xlib_u" my_xdir="$my_gentop/$my_xlib_u" func_mkdir_p "$my_xdir" case $host in *-darwin*) func_verbose "Extracting $my_xabs" # Do not bother doing anything if just a dry run $opt_dry_run || { darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` darwin_base_archive=`basename "$darwin_archive"` darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` if test -n "$darwin_arches"; then darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches ; do func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" func_extract_an_archive "`pwd`" "${darwin_base_archive}" cd "$darwin_curdir" $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" done # $darwin_arches ## Okay now we've a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` $LIPO -create -output "$darwin_file" $darwin_files done # $darwin_filelist $RM -rf unfat-$$ cd "$darwin_orig_dir" else cd $darwin_orig_dir func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches } # !$opt_dry_run ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` done func_extract_archives_result="$my_oldobjs" } # func_emit_wrapper [arg=no] # # Emit a libtool wrapper script on stdout. # Don't directly open a file because we may want to # incorporate the script contents within a cygwin/mingw # wrapper executable. Must ONLY be called from within # func_mode_link because it depends on a number of variables # set therein. # # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR # variable will take. If 'yes', then the emitted script # will assume that the directory in which it is stored is # the $objdir directory. This is a cygwin/mingw-specific # behavior. func_emit_wrapper () { func_emit_wrapper_arg1=${1-no} $ECHO "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. sed_quote_subst='$sed_quote_subst' # Be Bourne compatible if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variables: generated_by_libtool_version='$macro_version' notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$ECHO are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then file=\"\$0\"" qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` $ECHO "\ # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } ECHO=\"$qECHO\" fi # Very basic option parsing. These options are (a) specific to # the libtool wrapper, (b) are identical between the wrapper # /script/ and the wrapper /executable/ which is used only on # windows platforms, and (c) all begin with the string "--lt-" # (application programs are unlikely to have options which match # this pattern). # # There are only two supported options: --lt-debug and # --lt-dump-script. There is, deliberately, no --lt-help. # # The first argument to this parsing function should be the # script's $0 value, followed by "$@". lt_option_debug= func_parse_lt_options () { lt_script_arg0=\$0 shift for lt_opt do case \"\$lt_opt\" in --lt-debug) lt_option_debug=1 ;; --lt-dump-script) lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` cat \"\$lt_dump_D/\$lt_dump_F\" exit 0 ;; --lt-*) \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 exit 1 ;; esac done # Print the debug banner immediately: if test -n \"\$lt_option_debug\"; then echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2 fi } # Used when --lt-debug. Prints its arguments to stdout # (redirection is the responsibility of the caller) func_lt_dump_args () { lt_dump_args_N=1; for lt_arg do \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\" lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` done } # Core function for launching the target application func_exec_program_core () { " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2* | *-cegcc*) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $ECHO "\ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 exit 1 } # A function to encapsulate launching the target application # Strips options in the --lt-* namespace from \$@ and # launches target application with the remaining arguments. func_exec_program () { case \" \$* \" in *\\ --lt-*) for lt_wr_arg do case \$lt_wr_arg in --lt-*) ;; *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; esac shift done ;; esac func_exec_program_core \${1+\"\$@\"} } # Parse options func_parse_lt_options \"\$0\" \${1+\"\$@\"} # Find the directory that this script lives in. thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` done # Usually 'no', except on cygwin/mingw when embedded into # the cwrapper. WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then # special case for '.' if test \"\$thisdir\" = \".\"; then thisdir=\`pwd\` fi # remove .libs from thisdir case \"\$thisdir\" in *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; $objdir ) thisdir=. ;; esac fi # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test "$fast_install" = yes; then $ECHO "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $MKDIR \"\$progdir\" else $RM \"\$progdir/\$file\" fi" $ECHO "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else $ECHO \"\$relink_command_output\" >&2 $RM \"\$progdir/\$file\" exit 1 fi fi $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $RM \"\$progdir/\$program\"; $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } $RM \"\$progdir/\$file\" fi" else $ECHO "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $ECHO "\ if test -f \"\$progdir/\$program\"; then" # fixup the dll searchpath if we need to. # # Fix the DLL searchpath if we need to. Do this before prepending # to shlibpath, because on Windows, both are PATH and uninstalled # libraries must come first. if test -n "$dllsearchpath"; then $ECHO "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $ECHO "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` export $shlibpath_var " fi $ECHO "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. func_exec_program \${1+\"\$@\"} fi else # The program doesn't exist. \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 exit 1 fi fi\ " } # func_emit_cwrapperexe_src # emit the source code for a wrapper executable on stdout # Must ONLY be called from within func_mode_link because # it depends on a number of variable set therein. func_emit_cwrapperexe_src () { cat < #include #ifdef _MSC_VER # include # include # include #else # include # include # ifdef __CYGWIN__ # include # endif #endif #include #include #include #include #include #include #include #include /* declarations of non-ANSI functions */ #if defined(__MINGW32__) # ifdef __STRICT_ANSI__ int _putenv (const char *); # endif #elif defined(__CYGWIN__) # ifdef __STRICT_ANSI__ char *realpath (const char *, char *); int putenv (char *); int setenv (const char *, const char *, int); # endif /* #elif defined (other platforms) ... */ #endif /* portability defines, excluding path handling macros */ #if defined(_MSC_VER) # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv # define S_IXUSR _S_IEXEC # ifndef _INTPTR_T_DEFINED # define _INTPTR_T_DEFINED # define intptr_t int # endif #elif defined(__MINGW32__) # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv #elif defined(__CYGWIN__) # define HAVE_SETENV # define FOPEN_WB "wb" /* #elif defined (other platforms) ... */ #endif #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef S_IXOTH # define S_IXOTH 0 #endif #ifndef S_IXGRP # define S_IXGRP 0 #endif /* path handling portability macros */ #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' #endif #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ defined (__OS2__) # define HAVE_DOS_BASED_FILE_SYSTEM # define FOPEN_WB "wb" # ifndef DIR_SEPARATOR_2 # define DIR_SEPARATOR_2 '\\' # endif # ifndef PATH_SEPARATOR_2 # define PATH_SEPARATOR_2 ';' # endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #ifndef PATH_SEPARATOR_2 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) #else /* PATH_SEPARATOR_2 */ # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ #ifndef FOPEN_WB # define FOPEN_WB "w" #endif #ifndef _O_BINARY # define _O_BINARY 0 #endif #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free ((void *) stale); stale = 0; } \ } while (0) #if defined(LT_DEBUGWRAPPER) static int lt_debug = 1; #else static int lt_debug = 0; #endif const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ void *xmalloc (size_t num); char *xstrdup (const char *string); const char *base_name (const char *name); char *find_executable (const char *wrapper); char *chase_symlinks (const char *pathspec); int make_executable (const char *path); int check_executable (const char *path); char *strendzap (char *str, const char *pat); void lt_debugprintf (const char *file, int line, const char *fmt, ...); void lt_fatal (const char *file, int line, const char *message, ...); static const char *nonnull (const char *s); static const char *nonempty (const char *s); void lt_setenv (const char *name, const char *value); char *lt_extend_str (const char *orig_value, const char *add, int to_end); void lt_update_exe_path (const char *name, const char *value); void lt_update_lib_path (const char *name, const char *value); char **prepare_spawn (char **argv); void lt_dump_script (FILE *f); EOF cat <= 0) && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) return 1; else return 0; } int make_executable (const char *path) { int rval = 0; struct stat st; lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", nonempty (path)); if ((!path) || (!*path)) return 0; if (stat (path, &st) >= 0) { rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); } return rval; } /* Searches for the full path of the wrapper. Returns newly allocated full path name if found, NULL otherwise Does not chase symlinks, even on platforms that support them. */ char * find_executable (const char *wrapper) { int has_slash = 0; const char *p; const char *p_next; /* static buffer for getcwd */ char tmp[LT_PATHMAX + 1]; int tmp_len; char *concat_name; lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", nonempty (wrapper)); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; /* Absolute path? */ #if defined (HAVE_DOS_BASED_FILE_SYSTEM) if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } else { #endif if (IS_DIR_SEPARATOR (wrapper[0])) { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } #if defined (HAVE_DOS_BASED_FILE_SYSTEM) } #endif for (p = wrapper; *p; p++) if (*p == '/') { has_slash = 1; break; } if (!has_slash) { /* no slashes; search PATH */ const char *path = getenv ("PATH"); if (path != NULL) { for (p = path; *p; p = p_next) { const char *q; size_t p_len; for (q = p; *q; q++) if (IS_PATH_SEPARATOR (*q)) break; p_len = q - p; p_next = (*q == '\0' ? q : q + 1); if (p_len == 0) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); } else { concat_name = XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, p, p_len); concat_name[p_len] = '/'; strcpy (concat_name + p_len + 1, wrapper); } if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } } /* not found in PATH; assume curdir */ } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); return NULL; } char * chase_symlinks (const char *pathspec) { #ifndef S_ISLNK return xstrdup (pathspec); #else char buf[LT_PATHMAX]; struct stat s; char *tmp_pathspec = xstrdup (pathspec); char *p; int has_symlinks = 0; while (strlen (tmp_pathspec) && !has_symlinks) { lt_debugprintf (__FILE__, __LINE__, "checking path component for symlinks: %s\n", tmp_pathspec); if (lstat (tmp_pathspec, &s) == 0) { if (S_ISLNK (s.st_mode) != 0) { has_symlinks = 1; break; } /* search backwards for last DIR_SEPARATOR */ p = tmp_pathspec + strlen (tmp_pathspec) - 1; while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) p--; if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) { /* no more DIR_SEPARATORS left */ break; } *p = '\0'; } else { lt_fatal (__FILE__, __LINE__, "error accessing file \"%s\": %s", tmp_pathspec, nonnull (strerror (errno))); } } XFREE (tmp_pathspec); if (!has_symlinks) { return xstrdup (pathspec); } tmp_pathspec = realpath (pathspec, buf); if (tmp_pathspec == 0) { lt_fatal (__FILE__, __LINE__, "could not follow symlinks for %s", pathspec); } return xstrdup (tmp_pathspec); #endif } char * strendzap (char *str, const char *pat) { size_t len, patlen; assert (str != NULL); assert (pat != NULL); len = strlen (str); patlen = strlen (pat); if (patlen <= len) { str += len - patlen; if (strcmp (str, pat) == 0) *str = '\0'; } return str; } void lt_debugprintf (const char *file, int line, const char *fmt, ...) { va_list args; if (lt_debug) { (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); va_start (args, fmt); (void) vfprintf (stderr, fmt, args); va_end (args); } } static void lt_error_core (int exit_status, const char *file, int line, const char *mode, const char *message, va_list ap) { fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *file, int line, const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); va_end (ap); } static const char * nonnull (const char *s) { return s ? s : "(null)"; } static const char * nonempty (const char *s) { return (s && !*s) ? "(empty)" : nonnull (s); } void lt_setenv (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_setenv) setting '%s' to '%s'\n", nonnull (name), nonnull (value)); { #ifdef HAVE_SETENV /* always make a copy, for consistency with !HAVE_SETENV */ char *str = xstrdup (value); setenv (name, str, 1); #else int len = strlen (name) + 1 + strlen (value) + 1; char *str = XMALLOC (char, len); sprintf (str, "%s=%s", name, value); if (putenv (str) != EXIT_SUCCESS) { XFREE (str); } #endif } } char * lt_extend_str (const char *orig_value, const char *add, int to_end) { char *new_value; if (orig_value && *orig_value) { int orig_value_len = strlen (orig_value); int add_len = strlen (add); new_value = XMALLOC (char, add_len + orig_value_len + 1); if (to_end) { strcpy (new_value, orig_value); strcpy (new_value + orig_value_len, add); } else { strcpy (new_value, add); strcpy (new_value + add_len, orig_value); } } else { new_value = xstrdup (add); } return new_value; } void lt_update_exe_path (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (value)); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); /* some systems can't cope with a ':'-terminated path #' */ int len = strlen (new_value); while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) { new_value[len-1] = '\0'; } lt_setenv (name, new_value); XFREE (new_value); } } void lt_update_lib_path (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (value)); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); } } EOF case $host_os in mingw*) cat <<"EOF" /* Prepares an argument vector before calling spawn(). Note that spawn() does not by itself call the command interpreter (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); GetVersionEx(&v); v.dwPlatformId == VER_PLATFORM_WIN32_NT; }) ? "cmd.exe" : "command.com"). Instead it simply concatenates the arguments, separated by ' ', and calls CreateProcess(). We must quote the arguments since Win32 CreateProcess() interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a special way: - Space and tab are interpreted as delimiters. They are not treated as delimiters if they are surrounded by double quotes: "...". - Unescaped double quotes are removed from the input. Their only effect is that within double quotes, space and tab are treated like normal characters. - Backslashes not followed by double quotes are not special. - But 2*n+1 backslashes followed by a double quote become n backslashes followed by a double quote (n >= 0): \" -> " \\\" -> \" \\\\\" -> \\" */ #define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" #define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" char ** prepare_spawn (char **argv) { size_t argc; char **new_argv; size_t i; /* Count number of arguments. */ for (argc = 0; argv[argc] != NULL; argc++) ; /* Allocate new argument vector. */ new_argv = XMALLOC (char *, argc + 1); /* Put quoted arguments into the new argument vector. */ for (i = 0; i < argc; i++) { const char *string = argv[i]; if (string[0] == '\0') new_argv[i] = xstrdup ("\"\""); else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) { int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); size_t length; unsigned int backslashes; const char *s; char *quoted_string; char *p; length = 0; backslashes = 0; if (quote_around) length++; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') length += backslashes + 1; length++; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) length += backslashes + 1; quoted_string = XMALLOC (char, length + 1); p = quoted_string; backslashes = 0; if (quote_around) *p++ = '"'; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') { unsigned int j; for (j = backslashes + 1; j > 0; j--) *p++ = '\\'; } *p++ = c; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) { unsigned int j; for (j = backslashes; j > 0; j--) *p++ = '\\'; *p++ = '"'; } *p = '\0'; new_argv[i] = quoted_string; } else new_argv[i] = (char *) string; } new_argv[argc] = NULL; return new_argv; } EOF ;; esac cat <<"EOF" void lt_dump_script (FILE* f) { EOF func_emit_wrapper yes | $SED -n -e ' s/^\(.\{79\}\)\(..*\)/\1\ \2/ h s/\([\\"]\)/\\\1/g s/$/\\n/ s/\([^\n]*\).*/ fputs ("\1", f);/p g D' cat <<"EOF" } EOF } # end: func_emit_cwrapperexe_src # func_win32_import_lib_p ARG # True if ARG is an import lib, as indicated by $file_magic_cmd func_win32_import_lib_p () { $opt_debug case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in *import*) : ;; *) false ;; esac } # func_mode_link arg... func_mode_link () { $opt_debug case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) # It is impossible to link a dll without this setting, and # we shouldn't force the makefile maintainer to figure out # which system we are compiling for in order to pass an extra # flag for every libtool invocation. # allow_undefined=no # FIXME: Unfortunately, there are problems with the above when trying # to make a dll which has undefined symbols, in which case not # even a static library is built. For now, we need to specify # -no-undefined on the libtool link line when we can be certain # that all symbols are satisfied, otherwise we get a static library. allow_undefined=yes ;; *) allow_undefined=yes ;; esac libtool_args=$nonopt base_compile="$nonopt $@" compile_command=$nonopt finalize_command=$nonopt compile_rpath= finalize_rpath= compile_shlibpath= finalize_shlibpath= convenience= old_convenience= deplibs= old_deplibs= compiler_flags= linker_flags= dllsearchpath= lib_search_path=`pwd` inst_prefix_dir= new_inherited_linker_flags= avoid_version=no bindir= dlfiles= dlprefiles= dlself=no export_dynamic=no export_symbols= export_symbols_regex= generated= libobjs= ltlibs= module=no no_install=no objs= non_pic_objects= precious_files_regex= prefer_static_libs=no preload=no prev= prevarg= release= rpath= xrpath= perm_rpath= temp_rpath= thread_safe=no vinfo= vinfo_number=no weak_libs= single_module="${wl}-single_module" func_infer_tag $base_compile # We need to know -static, to get the right output filenames. for arg do case $arg in -shared) test "$build_libtool_libs" != yes && \ func_fatal_configuration "can not build a shared library" build_old_libs=no break ;; -all-static | -static | -static-libtool-libs) case $arg in -all-static) if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then func_warning "complete static linking is impossible in this configuration" fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; -static) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=built ;; -static-libtool-libs) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; esac build_libtool_libs=no build_old_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg="$1" shift func_quote_for_eval "$arg" qarg=$func_quote_for_eval_unquoted_result func_append libtool_args " $func_quote_for_eval_result" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) func_append compile_command " @OUTPUT@" func_append finalize_command " @OUTPUT@" ;; esac case $prev in bindir) bindir="$arg" prev= continue ;; dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. func_append compile_command " @SYMFILE@" func_append finalize_command " @SYMFILE@" preload=yes fi case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test "$dlself" = no; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test "$prev" = dlprefiles; then dlself=yes elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test "$prev" = dlfiles; then func_append dlfiles " $arg" else func_append dlprefiles " $arg" fi prev= continue ;; esac ;; expsyms) export_symbols="$arg" test -f "$arg" \ || func_fatal_error "symbol file \`$arg' does not exist" prev= continue ;; expsyms_regex) export_symbols_regex="$arg" prev= continue ;; framework) case $host in *-*-darwin*) case "$deplibs " in *" $qarg.ltframework "*) ;; *) func_append deplibs " $qarg.ltframework" # this is fixed later ;; esac ;; esac prev= continue ;; inst_prefix) inst_prefix_dir="$arg" prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat "$save_arg"` do # func_append moreargs " $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then func_append dlfiles " $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. func_append dlprefiles " $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi done else func_fatal_error "link input file \`$arg' does not exist" fi arg=$save_arg prev= continue ;; precious_regex) precious_files_regex="$arg" prev= continue ;; release) release="-$arg" prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; *) func_append rpath " $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) func_append xrpath " $arg" ;; esac fi prev= continue ;; shrext) shrext_cmds="$arg" prev= continue ;; weak) func_append weak_libs " $arg" prev= continue ;; xcclinker) func_append linker_flags " $qarg" func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xcompiler) func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xlinker) func_append linker_flags " $qarg" func_append compiler_flags " $wl$qarg" prev= func_append compile_command " $wl$qarg" func_append finalize_command " $wl$qarg" continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg="$arg" case $arg in -all-static) if test -n "$link_static_flag"; then # See comment for -static flag below, for more details. func_append compile_command " $link_static_flag" func_append finalize_command " $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. func_fatal_error "\`-allow-undefined' must not be used because it is the default" ;; -avoid-version) avoid_version=yes continue ;; -bindir) prev=bindir continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then func_fatal_error "more than one -exported-symbols argument is not allowed" fi if test "X$arg" = "X-export-symbols"; then prev=expsyms else prev=expsyms_regex fi continue ;; -framework) prev=framework continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | /*-*-irix*) func_append compile_command " $arg" func_append finalize_command " $arg" ;; esac continue ;; -L*) func_stripname "-L" '' "$arg" if test -z "$func_stripname_result"; then if test "$#" -gt 0; then func_fatal_error "require no space between \`-L' and \`$1'" else func_fatal_error "need path for \`-L' option" fi fi func_resolve_sysroot "$func_stripname_result" dir=$func_resolve_sysroot_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` test -z "$absdir" && \ func_fatal_error "cannot determine absolute directory name of \`$dir'" dir="$absdir" ;; esac case "$deplibs " in *" -L$dir "* | *" $arg "*) # Will only happen for absolute or sysroot arguments ;; *) # Preserve sysroot, but never include relative directories case $dir in [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; *) func_append deplibs " -L$dir" ;; esac func_append lib_search_path " $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; ::) dllsearchpath=$dir;; *) func_append dllsearchpath ":$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) func_append dllsearchpath ":$testbindir";; esac ;; esac continue ;; -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) # These systems don't actually have a C or math library (as such) continue ;; *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework func_append deplibs " System.ltframework" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test "X$arg" = "X-lc" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test "X$arg" = "X-lc" && continue ;; esac elif test "X$arg" = "X-lc_r"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi func_append deplibs " $arg" continue ;; -module) module=yes continue ;; # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. # Darwin uses the -arch flag to determine output architecture. -model|-arch|-isysroot|--sysroot) func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" prev=xcompiler continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case "$new_inherited_linker_flags " in *" $arg "*) ;; * ) func_append new_inherited_linker_flags " $arg" ;; esac continue ;; -multi_module) single_module="${wl}-multi_module" continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) # The PATH hackery in wrapper scripts is required on Windows # and Darwin in order for the loader to find any dlls it needs. func_warning "\`-no-install' is ignored for $host" func_warning "assuming \`-no-fast-install' instead" fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) func_stripname '-R' '' "$arg" dir=$func_stripname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; =*) func_stripname '=' '' "$dir" dir=$lt_sysroot$func_stripname_result ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac case "$xrpath " in *" $dir "*) ;; *) func_append xrpath " $dir" ;; esac continue ;; -shared) # The effects of -shared are defined in a previous loop. continue ;; -shrext) prev=shrext continue ;; -static | -static-libtool-libs) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -weak) prev=weak continue ;; -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" func_append arg " $func_quote_for_eval_result" func_append compiler_flags " $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Wl,*) func_stripname '-Wl,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" func_append arg " $wl$func_quote_for_eval_result" func_append compiler_flags " $wl$func_quote_for_eval_result" func_append linker_flags " $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # -msg_* for osf cc -msg_*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; # Flags to be passed through unchanged, with rationale: # -64, -mips[0-9] enable 64-bit mode for the SGI compiler # -r[0-9][0-9]* specify processor for the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler # +DA*, +DD* enable 64-bit mode for the HP compiler # -q* compiler args for the IBM compiler # -m*, -t[45]*, -txscale* architecture-specific flags for GCC # -F/path path to uninstalled frameworks, gcc on darwin # -p, -pg, --coverage, -fprofile-* profiling flags for GCC # @file GCC response files # -tp=* Portland pgcc target processor selection # --sysroot=* for sysroot support # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ -O*|-flto*|-fwhopr*|-fuse-linker-plugin) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" func_append compile_command " $arg" func_append finalize_command " $arg" func_append compiler_flags " $arg" continue ;; # Some other compiler flag. -* | +*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; *.$objext) # A standard object. func_append objs " $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then func_append dlfiles " $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. func_append dlprefiles " $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi ;; *.$libext) # An archive. func_append deplibs " $arg" func_append old_deplibs " $arg" continue ;; *.la) # A libtool-controlled library. func_resolve_sysroot "$arg" if test "$prev" = dlfiles; then # This library was specified with -dlopen. func_append dlfiles " $func_resolve_sysroot_result" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. func_append dlprefiles " $func_resolve_sysroot_result" prev= else func_append deplibs " $func_resolve_sysroot_result" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then func_append compile_command " $arg" func_append finalize_command " $arg" fi done # argument parsing loop test -n "$prev" && \ func_fatal_help "the \`$prevarg' option requires an argument" if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" func_append compile_command " $arg" func_append finalize_command " $arg" fi oldlibs= # calculate the name of the file, without its directory func_basename "$output" outputname="$func_basename_result" libobjs_save="$libobjs" if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" func_dirname "$output" "/" "" output_objdir="$func_dirname_result$objdir" func_to_tool_file "$output_objdir/" tool_output_objdir=$func_to_tool_file_result # Create the object directory. func_mkdir_p "$output_objdir" # Determine the type of output case $output in "") func_fatal_help "you must specify an output file" ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if $opt_preserve_dup_deps ; then case "$libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append libs " $deplib" done if test "$linkmode" = lib; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= if $opt_duplicate_compiler_generated_deps; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; esac func_append pre_post_deps " $pre_post_dep" done fi pre_post_deps= fi deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries notinst_path= # paths that contain not-installed libtool libraries case $linkmode in lib) passes="conv dlpreopen link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=no newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do # The preopen pass in lib mode reverses $deplibs; put it back here # so that -L comes before libs that need it for instance... if test "$linkmode,$pass" = "lib,link"; then ## FIXME: Find the place where the list is rebuilt in the wrong ## order, and fix it there properly tmp_deplibs= for deplib in $deplibs; do tmp_deplibs="$deplib $tmp_deplibs" done deplibs="$tmp_deplibs" fi if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan"; then libs="$deplibs" deplibs= fi if test "$linkmode" = prog; then case $pass in dlopen) libs="$dlfiles" ;; dlpreopen) libs="$dlprefiles" ;; link) libs="$deplibs %DEPLIBS%" test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" ;; esac fi if test "$linkmode,$pass" = "lib,dlpreopen"; then # Collect and forward deplibs of preopened libtool libs for lib in $dlprefiles; do # Ignore non-libtool-libs dependency_libs= func_resolve_sysroot "$lib" case $lib in *.la) func_source "$func_resolve_sysroot_result" ;; esac # Collect preopened libtool deplibs, except any this library # has declared as weak libs for deplib in $dependency_libs; do func_basename "$deplib" deplib_base=$func_basename_result case " $weak_libs " in *" $deplib_base "*) ;; *) func_append deplibs " $deplib" ;; esac done done libs="$dlprefiles" fi if test "$pass" = dlopen; then # Collect dlpreopened libraries save_deplibs="$deplibs" deplibs= fi for deplib in $libs; do lib= found=no case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else func_append compiler_flags " $deplib" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) func_append new_inherited_linker_flags " $deplib" ;; esac fi fi continue ;; -l*) if test "$linkmode" != lib && test "$linkmode" != prog; then func_warning "\`-l' is ignored for archives/objects" continue fi func_stripname '-l' '' "$deplib" name=$func_stripname_result if test "$linkmode" = lib; then searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" else searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" fi for searchdir in $searchdirs; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib="$searchdir/lib${name}${search_ext}" if test -f "$lib"; then if test "$search_ext" = ".la"; then found=yes else found=no fi break 2 fi done done if test "$found" != yes; then # deplib doesn't seem to be a libtool library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue else # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $deplib "*) if func_lalib_p "$lib"; then library_names= old_library= func_source "$lib" for l in $old_library $library_names; do ll="$l" done if test "X$ll" = "X$old_library" ; then # only static version available found=no func_dirname "$lib" "" "." ladir="$func_dirname_result" lib=$ladir/$old_library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi fi ;; # -l *.ltframework) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) func_append new_inherited_linker_flags " $deplib" ;; esac fi fi continue ;; -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; prog) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi if test "$pass" = scan; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; *) func_warning "\`-L' is ignored for archives/objects" ;; esac # linkmode continue ;; # -L -R*) if test "$pass" = link; then func_stripname '-R' '' "$deplib" func_resolve_sysroot "$func_stripname_result" dir=$func_resolve_sysroot_result # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) func_append xrpath " $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) func_resolve_sysroot "$deplib" lib=$func_resolve_sysroot_result ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) # Linking convenience modules into shared libraries is allowed, # but linking other static libraries is non-portable. case " $dlpreconveniencelibs " in *" $deplib "*) ;; *) valid_a_lib=no case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi ;; pass_all) valid_a_lib=yes ;; esac if test "$valid_a_lib" != yes; then echo $ECHO "*** Warning: Trying to link with static lib archive $deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because the file extensions .$libext of this argument makes me believe" echo "*** that it is just a static archive that I should not use here." else echo $ECHO "*** Warning: Linking the shared library $output against the" $ECHO "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" fi ;; esac continue ;; prog) if test "$pass" != link; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test "$pass" = conv; then deplibs="$deplib $deplibs" elif test "$linkmode" = prog; then if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. func_append newdlprefiles " $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else func_append newdlfiles " $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=yes continue ;; esac # case $deplib if test "$found" = yes || test -f "$lib"; then : else func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" fi # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$lib" \ || func_fatal_error "\`$lib' is not a valid libtool archive" func_dirname "$lib" "" "." ladir="$func_dirname_result" dlname= dlopen= dlpreopen= libdir= library_names= old_library= inherited_linker_flags= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no avoidtemprpath= # Read the .la file func_source "$lib" # Convert "-framework foo" to "foo.ltframework" if test -n "$inherited_linker_flags"; then tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do case " $new_inherited_linker_flags " in *" $tmp_inherited_linker_flag "*) ;; *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; esac done fi dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then test -n "$dlopen" && func_append dlfiles " $dlopen" test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" fi if test "$pass" = conv; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # It is a libtool convenience library, so add in its objects. func_append convenience " $ladir/$objdir/$old_library" func_append old_convenience " $ladir/$objdir/$old_library" tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if $opt_preserve_dup_deps ; then case "$tmp_libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append tmp_libs " $deplib" done elif test "$linkmode" != prog && test "$linkmode" != lib; then func_fatal_error "\`$lib' is not a convenience library" fi continue fi # $pass = conv # Get the name of the library we link against. linklib= if test -n "$old_library" && { test "$prefer_static_libs" = yes || test "$prefer_static_libs,$installed" = "built,no"; }; then linklib=$old_library else for l in $old_library $library_names; do linklib="$l" done fi if test -z "$linklib"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # This library was specified with -dlopen. if test "$pass" = dlopen; then if test -z "$libdir"; then func_fatal_error "cannot -dlopen a convenience library: \`$lib'" fi if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. func_append dlprefiles " $lib $dependency_libs" else func_append newdlfiles " $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then func_warning "cannot determine absolute directory name of \`$ladir'" func_warning "passing it literally to the linker, although it might fail" abs_ladir="$ladir" fi ;; esac func_basename "$lib" laname="$func_basename_result" # Find the relevant object directory and library name. if test "X$installed" = Xyes; then if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then func_warning "library \`$lib' was moved." dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$lt_sysroot$libdir" absdir="$lt_sysroot$libdir" fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then dir="$ladir" absdir="$abs_ladir" # Remove this search path later func_append notinst_path " $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later func_append notinst_path " $abs_ladir" fi fi # $installed = yes func_stripname 'lib' '.la' "$laname" name=$func_stripname_result # This library was specified with -dlpreopen. if test "$pass" = dlpreopen; then if test -z "$libdir" && test "$linkmode" = prog; then func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" fi case "$host" in # special handling for platforms with PE-DLLs. *cygwin* | *mingw* | *cegcc* ) # Linker will automatically link against shared library if both # static and shared are present. Therefore, ensure we extract # symbols from the import library if a shared library is present # (otherwise, the dlopen module name will be incorrect). We do # this by putting the import library name into $newdlprefiles. # We recover the dlopen module name by 'saving' the la file # name in a special purpose variable, and (later) extracting the # dlname from the la file. if test -n "$dlname"; then func_tr_sh "$dir/$linklib" eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" func_append newdlprefiles " $dir/$linklib" else func_append newdlprefiles " $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ func_append dlpreconveniencelibs " $dir/$old_library" fi ;; * ) # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then func_append newdlprefiles " $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ func_append dlpreconveniencelibs " $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then func_append newdlprefiles " $dir/$dlname" else func_append newdlprefiles " $dir/$linklib" fi ;; esac fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test "$linkmode" = lib; then deplibs="$dir/$old_library $deplibs" elif test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi if test "$linkmode" = prog && test "$pass" != link; then func_append newlib_search_path " $ladir" deplibs="$lib $deplibs" linkalldeplibs=no if test "$link_all_deplibs" != no || test -z "$library_names" || test "$build_libtool_libs" = no; then linkalldeplibs=yes fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; esac # Need to link against all dependency_libs? if test "$linkalldeplibs" = yes; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if $opt_preserve_dup_deps ; then case "$tmp_libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append tmp_libs " $deplib" done # for deplib continue fi # $linkmode = prog... if test "$linkmode,$pass" = "prog,link"; then if test -n "$library_names" && { { test "$prefer_static_libs" = no || test "$prefer_static_libs,$installed" = "built,yes"; } || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then # Make sure the rpath contains only unique directories. case "$temp_rpath:" in *"$absdir:"*) ;; *) func_append temp_rpath "$absdir:" ;; esac fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) func_append compile_rpath " $absdir" ;; esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac ;; esac fi # $linkmode,$pass = prog,link... if test "$alldeplibs" = yes && { test "$deplibs_check_method" = pass_all || { test "$build_libtool_libs" = yes && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi fi link_static=no # Whether the deplib will be linked statically use_static_libs=$prefer_static_libs if test "$use_static_libs" = built && test "$installed" = yes; then use_static_libs=no fi if test -n "$library_names" && { test "$use_static_libs" = no || test -z "$old_library"; }; then case $host in *cygwin* | *mingw* | *cegcc*) # No point in relinking DLLs because paths are not encoded func_append notinst_deplibs " $lib" need_relink=no ;; *) if test "$installed" = no; then func_append notinst_deplibs " $lib" need_relink=yes fi ;; esac # This is a shared library # Warn about portability, can't link against -module's on some # systems (darwin). Don't bleat about dlopened modules though! dlopenmodule="" for dlpremoduletest in $dlprefiles; do if test "X$dlpremoduletest" = "X$lib"; then dlopenmodule="$dlpremoduletest" break fi done if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then echo if test "$linkmode" = prog; then $ECHO "*** Warning: Linking the executable $output against the loadable module" else $ECHO "*** Warning: Linking the shared library $output against the loadable module" fi $ECHO "*** $linklib is not portable!" fi if test "$linkmode" = lib && test "$hardcode_into_libs" = yes; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) func_append compile_rpath " $absdir" ;; esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names shift realname="$1" shift libname=`eval "\\$ECHO \"$libname_spec\""` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname="$dlname" elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw* | *cegcc*) func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; esac eval soname=\"$soname_spec\" else soname="$realname" fi # Make a new name for the extract_expsyms_cmds to use soroot="$soname" func_basename "$soroot" soname="$func_basename_result" func_stripname 'lib' '.dll' "$soname" newlib=libimp-$func_stripname_result.a # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else func_verbose "extracting exported symbol list from \`$soname'" func_execute_cmds "$extract_expsyms_cmds" 'exit $?' fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else func_verbose "generating import library for \`$soname'" func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" if test "$linkmode" = prog || test "$opt_mode" != relink; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test "$hardcode_direct" = no; then add="$dir/$linklib" case $host in *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; *-*-sysv4*uw2*) add_dir="-L$dir" ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ *-*-unixware7*) add_dir="-L$dir" ;; *-*-darwin* ) # if the lib is a (non-dlopened) module then we can not # link against it, someone is ignoring the earlier warnings if /usr/bin/file -L $add 2> /dev/null | $GREP ": [^:]* bundle" >/dev/null ; then if test "X$dlopenmodule" != "X$lib"; then $ECHO "*** Warning: lib $linklib is a module, not a shared library" if test -z "$old_library" ; then echo echo "*** And there doesn't seem to be a static archive available" echo "*** The link will probably fail, sorry" else add="$dir/$old_library" fi elif test -n "$old_library"; then add="$dir/$old_library" fi fi esac elif test "$hardcode_minus_L" = no; then case $host in *-*-sunos*) add_shlibpath="$dir" ;; esac add_dir="-L$dir" add="-l$name" elif test "$hardcode_shlibpath_var" = no; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; relink) if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$absdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) func_append add_dir " -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; *) lib_linked=no ;; esac if test "$lib_linked" != yes; then func_fatal_configuration "unsupported hardcode properties" fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) func_append compile_shlibpath "$add_shlibpath:" ;; esac fi if test "$linkmode" = prog; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" if test "$hardcode_direct" != yes && test "$hardcode_minus_L" != yes && test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) func_append finalize_shlibpath "$libdir:" ;; esac fi fi fi if test "$linkmode" = prog || test "$opt_mode" = relink; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$libdir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$libdir" add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) func_append finalize_shlibpath "$libdir:" ;; esac add="-l$name" elif test "$hardcode_automatic" = yes; then if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then add="$inst_prefix_dir$libdir/$linklib" else add="$libdir/$linklib" fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir="-L$libdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) func_append add_dir " -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" fi if test "$linkmode" = prog; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test "$linkmode" = prog; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test "$hardcode_direct" != unsupported; then test -n "$old_library" && linklib="$old_library" compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test "$build_libtool_libs" = yes; then # Not a shared library if test "$deplibs_check_method" != pass_all; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. echo $ECHO "*** Warning: This system can not link to static lib archive $lib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then echo "*** But as you try to build a module library, libtool will still create " echo "*** a static module, that should work as long as the dlopening application" echo "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" echo "*** lists from a program, using \`nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test "$linkmode" = lib; then if test -n "$dependency_libs" && { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || test "$link_static" = yes; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) func_stripname '-R' '' "$libdir" temp_xrpath=$func_stripname_result case " $xrpath " in *" $temp_xrpath "*) ;; *) func_append xrpath " $temp_xrpath";; esac;; *) func_append temp_deplibs " $libdir";; esac done dependency_libs="$temp_deplibs" fi func_append newlib_search_path " $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" case $deplib in -L*) func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result";; *) func_resolve_sysroot "$deplib" ;; esac if $opt_preserve_dup_deps ; then case "$tmp_libs " in *" $func_resolve_sysroot_result "*) func_append specialdeplibs " $func_resolve_sysroot_result" ;; esac fi func_append tmp_libs " $func_resolve_sysroot_result" done if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do path= case $deplib in -L*) path="$deplib" ;; *.la) func_resolve_sysroot "$deplib" deplib=$func_resolve_sysroot_result func_dirname "$deplib" "" "." dir=$func_dirname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then func_warning "cannot determine absolute directory name of \`$dir'" absdir="$dir" fi ;; esac if $GREP "^installed=no" $deplib > /dev/null; then case $host in *-*-darwin*) depdepl= eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names" ; then for tmp in $deplibrary_names ; do depdepl=$tmp done if test -f "$absdir/$objdir/$depdepl" ; then depdepl="$absdir/$objdir/$depdepl" darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` if test -z "$darwin_install_name"; then darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` fi func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}" path= fi fi ;; *) path="-L$absdir/$objdir" ;; esac else eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" test "$absdir" != "$libdir" && \ func_warning "\`$deplib' seems to be moved" path="-L$absdir" fi ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$path $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs if test "$pass" = link; then if test "$linkmode" = "prog"; then compile_deplibs="$new_inherited_linker_flags $compile_deplibs" finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" else compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` fi fi dependency_libs="$newdependency_libs" if test "$pass" = dlpreopen; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test "$pass" != dlopen; then if test "$pass" != conv; then # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) func_append lib_search_path " $dir" ;; esac done newlib_search_path= fi if test "$linkmode,$pass" != "prog,link"; then vars="deplibs" else vars="compile_deplibs finalize_deplibs" fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so # that some nasty dependency loop isn't accidentally # broken: #new_libs="$deplib $new_libs" # Pragmatically, this seems to cause very few problems in # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; -R*) ;; *) # And here is the reason: when a library appears more # than once as an explicit dependence of a library, or # is implicitly linked in more than once by the # compiler, it is considered special, and multiple # occurrences thereof are not removed. Compare this # with having the same library being listed as a # dependency of multiple other libraries: in this case, # we know (pedantically, we assume) the library does not # need to be listed more than once, so we keep only the # last copy. This is not always right, but it is rare # enough that we require users that really mean to play # such unportable linking tricks to link the library # using -Wl,-lname, so that libtool does not consider it # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) func_append tmp_libs " $deplib" ;; esac ;; *) func_append tmp_libs " $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= for i in $dependency_libs ; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) i="" ;; esac if test -n "$i" ; then func_append tmp_libs " $i" fi done dependency_libs=$tmp_libs done # for pass if test "$linkmode" = prog; then dlfiles="$newdlfiles" fi if test "$linkmode" = prog || test "$linkmode" = lib; then dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for archives" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for archives" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for archives" test -n "$xrpath" && \ func_warning "\`-R' is ignored for archives" test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for archives" test -n "$release" && \ func_warning "\`-release' is ignored for archives" test -n "$export_symbols$export_symbols_regex" && \ func_warning "\`-export-symbols' is ignored for archives" # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" func_append objs "$old_deplibs" ;; lib) # Make sure we only generate libraries of the form `libNAME.la'. case $outputname in lib*) func_stripname 'lib' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) test "$module" = no && \ func_fatal_help "libtool library \`$output' must begin with \`lib'" if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required func_stripname '' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else func_stripname '' '.la' "$outputname" libname=$func_stripname_result fi ;; esac if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" else echo $ECHO "*** Warning: Linking the shared library $output against the non-libtool" $ECHO "*** objects $objs is not portable!" func_append libobjs " $objs" fi fi test "$dlself" != no && \ func_warning "\`-dlopen self' is ignored for libtool libraries" set dummy $rpath shift test "$#" -gt 1 && \ func_warning "ignoring multiple \`-rpath's for a libtool library" install_libdir="$1" oldlibs= if test -z "$rpath"; then if test "$build_libtool_libs" = yes; then # Building a libtool convenience library. # Some compilers have problems with a `.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for convenience libraries" test -n "$release" && \ func_warning "\`-release' is ignored for convenience libraries" else # Parse the version information argument. save_ifs="$IFS"; IFS=':' set dummy $vinfo 0 0 0 shift IFS="$save_ifs" test -n "$7" && \ func_fatal_help "too many parameters to \`-version-info'" # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) number_major="$1" number_minor="$2" number_revision="$3" # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # which has an extra 1 added just for fun # case $version_type in # correct linux to gnu/linux during the next big refactor darwin|linux|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_revision" ;; freebsd-aout|freebsd-elf|qnx|sunos) current="$number_major" revision="$number_minor" age="0" ;; irix|nonstopux) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_minor" lt_irix_increment=no ;; *) func_fatal_configuration "$modename: unknown library version type \`$version_type'" ;; esac ;; no) current="$1" revision="$2" age="$3" ;; esac # Check that each of the things are valid numbers. case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "CURRENT \`$current' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $revision in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "REVISION \`$revision' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $age in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "AGE \`$age' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac if test "$age" -gt "$current"; then func_error "AGE \`$age' is greater than the current interface number \`$current'" func_fatal_error "\`$vinfo' is not valid version information" fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... func_arith $current + 1 minor_current=$func_arith_result xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" ;; freebsd-aout) major=".$current" versuffix=".$current.$revision"; ;; freebsd-elf) major=".$current" versuffix=".$current" ;; irix | nonstopux) if test "X$lt_irix_increment" = "Xno"; then func_arith $current - $age else func_arith $current - $age + 1 fi major=$func_arith_result case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring="$verstring_prefix$major.$revision" # Add in all the interfaces that we are compatible with. loop=$revision while test "$loop" -ne 0; do func_arith $revision - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring_prefix$major.$iface:$verstring" done # Before this point, $major must not contain `.'. major=.$major versuffix="$major.$revision" ;; linux) # correct to gnu/linux during the next big refactor func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" ;; osf) func_arith $current - $age major=.$func_arith_result versuffix=".$current.$age.$revision" verstring="$current.$age.$revision" # Add in all the interfaces that we are compatible with. loop=$age while test "$loop" -ne 0; do func_arith $current - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring:${iface}.0" done # Make executables depend on our current version. func_append verstring ":${current}.0" ;; qnx) major=".$current" versuffix=".$current" ;; sunos) major=".$current" versuffix=".$current.$revision" ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 filesystems. func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; *) func_fatal_configuration "unknown library version type \`$version_type'" ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring= ;; *) verstring="0.0" ;; esac if test "$need_version" = no; then versuffix= else versuffix=".0.0" fi fi # Remove version info from name if versioning should be avoided if test "$avoid_version" = yes && test "$need_version" = no; then major= versuffix= verstring="" fi # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then func_warning "undefined symbols not allowed in $host shared libraries" build_libtool_libs=no build_old_libs=yes fi else # Don't allow undefined symbols. allow_undefined_flag="$no_undefined_flag" fi fi func_generate_dlsyms "$libname" "$libname" "yes" func_append libobjs " $symfileobj" test "X$libobjs" = "X " && libobjs= if test "$opt_mode" != relink; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= tempremovelist=`$ECHO "$output_objdir/*"` for p in $tempremovelist; do case $p in *.$objext | *.gcno) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) if test "X$precious_files_regex" != "X"; then if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi func_append removelist " $p" ;; *) ;; esac done test -n "$removelist" && \ func_show_eval "${RM}r \$removelist" fi # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then func_append oldlibs " $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP` fi # Eliminate all temporary directories. #for path in $notinst_path; do # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` #done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do func_replace_sysroot "$libdir" func_append temp_xrpath " -R$func_replace_sysroot_result" case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac done if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles="$dlfiles" dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) func_append dlfiles " $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles="$dlprefiles" dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) func_append dlprefiles " $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework func_append deplibs " System.ltframework" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work ;; *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then func_append deplibs " -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release="" versuffix="" major="" newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $opt_dry_run || $RM conftest.c cat > conftest.c </dev/null` $nocaseglob else potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` fi for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null | $GREP " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib="$potent_lib" while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | $SED -e 10q | $EGREP "$file_magic_regex" > /dev/null; then func_append newdeplibs " $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for file magic test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a file magic. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. func_append newdeplibs " $a_deplib" ;; esac done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` for a_deplib in $deplibs; do case $a_deplib in -l*) func_stripname -l '' "$a_deplib" name=$func_stripname_result if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) func_append newdeplibs " $a_deplib" a_deplib="" ;; esac fi if test -n "$a_deplib" ; then libname=`eval "\\$ECHO \"$libname_spec\""` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib="$potent_lib" # see symlink-check above in file_magic test if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ $EGREP "$match_pattern_regex" > /dev/null; then func_append newdeplibs " $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a regex pattern. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. func_append newdeplibs " $a_deplib" ;; esac done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"` done fi case $tmp_deplibs in *[!\ \ ]*) echo if test "X$deplibs_check_method" = "Xnone"; then echo "*** Warning: inter-library dependencies are not supported in this platform." else echo "*** Warning: inter-library dependencies are not known to be supported." fi echo "*** All declared inter-library dependencies are being dropped." droppeddeps=yes ;; esac ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library with the System framework newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then echo echo "*** Warning: libtool could not satisfy all declared inter-library" $ECHO "*** dependencies of module $libname. Therefore, libtool will create" echo "*** a static module, that should work as long as the dlopening" echo "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" echo "*** lists from a program, using \`nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else echo "*** The inter-library dependencies that have been dropped here will be" echo "*** automatically added whenever a program is linked with this library" echo "*** or is declared to -dlopen it." if test "$allow_undefined" = no; then echo echo "*** Since this library must not contain undefined symbols," echo "*** because either the platform does not support them or" echo "*** it was explicitly requested with -no-undefined," echo "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" case $host in *-*-darwin*) newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $deplibs " in *" -L$path/$objdir "*) func_append new_libs " -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) func_append new_libs " $deplib" ;; esac ;; *) func_append new_libs " $deplib" ;; esac done deplibs="$new_libs" # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then # Remove ${wl} instances when linking with ld. # FIXME: should test the right _cmds variable. case $archive_cmds in *\$LD\ *) wl= ;; esac if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" test "$opt_mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then func_replace_sysroot "$libdir" libdir=$func_replace_sysroot_result if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append dep_rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) func_append perm_rpath " $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do func_append rpath "$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath="$finalize_shlibpath" test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names shift realname="$1" shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname="$realname" fi if test -z "$dlname"; then dlname=$soname fi lib="$output_objdir/$realname" linknames= for link do func_append linknames " $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` test "X$libobjs" = "X " && libobjs= delfiles= if test -n "$export_symbols" && test -n "$include_expsyms"; then $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" export_symbols="$output_objdir/$libname.uexp" func_append delfiles " $export_symbols" fi orig_export_symbols= case $host_os in cygwin* | mingw* | cegcc*) if test -n "$export_symbols" && test -z "$export_symbols_regex"; then # exporting using user supplied symfile if test "x`$SED 1q $export_symbols`" != xEXPORTS; then # and it's NOT already a .def file. Must figure out # which of the given symbols are data symbols and tag # them as such. So, trigger use of export_symbols_cmds. # export_symbols gets reassigned inside the "prepare # the list of exported symbols" if statement, so the # include_expsyms logic still works. orig_export_symbols="$export_symbols" export_symbols= always_export_symbols=yes fi fi ;; esac # Prepare the list of exported symbols if test -z "$export_symbols"; then if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' for cmd1 in $cmds; do IFS="$save_ifs" # Take the normal branch if the nm_file_list_spec branch # doesn't work or if tool conversion is not needed. case $nm_file_list_spec~$to_tool_file_cmd in *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) try_normal_branch=yes eval cmd=\"$cmd1\" func_len " $cmd" len=$func_len_result ;; *) try_normal_branch=no ;; esac if test "$try_normal_branch" = yes \ && { test "$len" -lt "$max_cmd_len" \ || test "$max_cmd_len" -le -1; } then func_show_eval "$cmd" 'exit $?' skipped_export=false elif test -n "$nm_file_list_spec"; then func_basename "$output" output_la=$func_basename_result save_libobjs=$libobjs save_output=$output output=${output_objdir}/${output_la}.nm func_to_tool_file "$output" libobjs=$nm_file_list_spec$func_to_tool_file_result func_append delfiles " $output" func_verbose "creating $NM input file list: $output" for obj in $save_libobjs; do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" done > "$output" eval cmd=\"$cmd1\" func_show_eval "$cmd" 'exit $?' output=$save_output libobjs=$save_libobjs skipped_export=false else # The command line is too long to execute in one step. func_verbose "using reloadable object file for export list..." skipped_export=: # Break out early, otherwise skipped_export may be # set to false by a later but shorter cmd. break fi done IFS="$save_ifs" if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter func_append delfiles " $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) func_append tmp_deplibs " $test_deplib" ;; esac done deplibs="$tmp_deplibs" if test -n "$convenience"; then if test -n "$whole_archive_flag_spec" && test "$compiler_needs_object" = yes && test -z "$libobjs"; then # extract the archives, so we have objects to list. # TODO: could optimize this to just extract one archive. whole_archive_flag_spec= fi if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= else gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $convenience func_append libobjs " $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" func_append linker_flags " $flag" fi # Make a backup of the uninstalled library when relinking if test "$opt_mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds else eval test_cmds=\"$module_cmds\" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval test_cmds=\"$archive_expsym_cmds\" cmds=$archive_expsym_cmds else eval test_cmds=\"$archive_cmds\" cmds=$archive_cmds fi fi if test "X$skipped_export" != "X:" && func_len " $test_cmds" && len=$func_len_result && test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise # or, if using GNU ld and skipped_export is not :, use a linker # script. # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we # want to use save_libobjs as it was before # whole_archive_flag_spec was expanded, because we can't # assume the linker understands whole_archive_flag_spec. # This may have to be revisited, in case too many # convenience libraries get linked in and end up exceeding # the spec. if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi save_output=$output func_basename "$output" output_la=$func_basename_result # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= last_robj= k=1 if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then output=${output_objdir}/${output_la}.lnkscript func_verbose "creating GNU ld script: $output" echo 'INPUT (' > $output for obj in $save_libobjs do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" >> $output done echo ')' >> $output func_append delfiles " $output" func_to_tool_file "$output" output=$func_to_tool_file_result elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then output=${output_objdir}/${output_la}.lnk func_verbose "creating linker input file list: $output" : > $output set x $save_libobjs shift firstobj= if test "$compiler_needs_object" = yes; then firstobj="$1 " shift fi for obj do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" >> $output done func_append delfiles " $output" func_to_tool_file "$output" output=$firstobj\"$file_list_spec$func_to_tool_file_result\" else if test -n "$save_libobjs"; then func_verbose "creating reloadable object files..." output=$output_objdir/$output_la-${k}.$objext eval test_cmds=\"$reload_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 # Loop over the list of objects to be linked. for obj in $save_libobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result if test "X$objlist" = X || test "$len" -lt "$max_cmd_len"; then func_append objlist " $obj" else # The command $test_cmds is almost too long, add a # command to the queue. if test "$k" -eq 1 ; then # The first file doesn't have a previous command to add. reload_objs=$objlist eval concat_cmds=\"$reload_cmds\" else # All subsequent reloadable object files will link in # the last one created. reload_objs="$objlist $last_robj" eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" fi last_robj=$output_objdir/$output_la-${k}.$objext func_arith $k + 1 k=$func_arith_result output=$output_objdir/$output_la-${k}.$objext objlist=" $obj" func_len " $last_robj" func_arith $len0 + $func_len_result len=$func_arith_result fi done # Handle the remaining objects by creating one last # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ reload_objs="$objlist $last_robj" eval concat_cmds=\"\${concat_cmds}$reload_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" fi func_append delfiles " $output" else output= fi if ${skipped_export-false}; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols libobjs=$output # Append the command to create the export file. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" fi fi test -n "$save_libobjs" && func_verbose "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. save_ifs="$IFS"; IFS='~' for cmd in $concat_cmds; do IFS="$save_ifs" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$opt_mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" if test -n "$export_symbols_regex" && ${skipped_export-false}; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi if ${skipped_export-false}; then if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter func_append delfiles " $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi fi libobjs=$output # Restore the value of output. output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then cmds=$archive_expsym_cmds else cmds=$archive_cmds fi fi fi if test -n "$delfiles"; then # Append the command to remove temporary files to $cmds. eval cmds=\"\$cmds~\$RM $delfiles\" fi # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $dlprefiles func_append libobjs " $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$opt_mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$opt_mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? if test -n "$convenience"; then if test -z "$whole_archive_flag_spec"; then func_show_eval '${RM}r "$gentop"' fi fi exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' fi done # If -module or -export-dynamic was specified, set the dlname. if test "$module" = yes || test "$export_dynamic" = yes; then # On all known operating systems, these are identical. dlname="$soname" fi fi ;; obj) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for objects" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for objects" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for objects" test -n "$xrpath" && \ func_warning "\`-R' is ignored for objects" test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for objects" test -n "$release" && \ func_warning "\`-release' is ignored for objects" case $output in *.lo) test -n "$objs$old_deplibs" && \ func_fatal_error "cannot build library object \`$output' from non-libtool objects" libobj=$output func_lo2o "$libobj" obj=$func_lo2o_result ;; *) libobj= obj="$output" ;; esac # Delete the old objects. $opt_dry_run || $RM $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # reload_cmds runs $LD directly, so let us get rid of # -Wl from whole_archive_flag_spec and hope we can get by with # turning comma into space.. wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` else gentop="$output_objdir/${obj}x" func_append generated " $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # If we're not building shared, we need to use non_pic_objs test "$build_libtool_libs" != yes && libobjs="$non_pic_objects" # Create the old-style object. reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" func_execute_cmds "$reload_cmds" 'exit $?' # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS fi if test "$build_libtool_libs" != yes; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj" # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" func_execute_cmds "$reload_cmds" 'exit $?' fi if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) func_stripname '' '.exe' "$output" output=$func_stripname_result.exe;; esac test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for programs" test -n "$release" && \ func_warning "\`-release' is ignored for programs" test "$preload" = yes \ && test "$dlopen_support" = unknown \ && test "$dlopen_self" = unknown \ && test "$dlopen_self_static" = unknown && \ func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac case $host in *-*-darwin*) # Don't allow lazy linking, it breaks C++ global constructors # But is supposedly fixed on 10.4 or later (yay!). if test "$tagname" = CXX ; then case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 10.[0123]) func_append compile_command " ${wl}-bind_at_load" func_append finalize_command " ${wl}-bind_at_load" ;; esac fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $compile_deplibs " in *" -L$path/$objdir "*) func_append new_libs " -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) func_append new_libs " $deplib" ;; esac ;; *) func_append new_libs " $deplib" ;; esac done compile_deplibs="$new_libs" func_append compile_command " $compile_deplibs" func_append finalize_command " $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) func_append perm_rpath " $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; ::) dllsearchpath=$libdir;; *) func_append dllsearchpath ":$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) func_append dllsearchpath ":$testbindir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath="$rpath" rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) func_append finalize_perm_rpath " $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath="$rpath" if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` fi func_generate_dlsyms "$outputname" "@PROGRAM@" "no" # template prelinking step if test -n "$prelink_cmds"; then func_execute_cmds "$prelink_cmds" 'exit $?' fi wrappers_required=yes case $host in *cegcc* | *mingw32ce*) # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. wrappers_required=no ;; *cygwin* | *mingw* ) if test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; *) if test "$need_relink" = no || test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; esac if test "$wrappers_required" = no; then # Replace the output file specification. compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. exit_status=0 func_show_eval "$link_command" 'exit_status=$?' if test -n "$postlink_cmds"; then func_to_tool_file "$output" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi # Delete the generated files. if test -f "$output_objdir/${outputname}S.${objext}"; then func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' fi exit $exit_status fi if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do func_append rpath "$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do func_append rpath "$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test "$no_install" = yes; then # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $opt_dry_run || $RM $output # Link the executable and exit func_show_eval "$link_command" 'exit $?' if test -n "$postlink_cmds"; then func_to_tool_file "$output" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi exit $EXIT_SUCCESS fi if test "$hardcode_action" = relink; then # Fast installation is not supported link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" func_warning "this platform does not like uninstalled shared libraries" func_warning "\`$output' will be relinked during installation" else if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` else # fast_install is set to needless relink_command= fi else link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" fi fi # Replace the output file specification. link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname func_show_eval "$link_command" 'exit $?' if test -n "$postlink_cmds"; then func_to_tool_file "$output_objdir/$outputname" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi # Now create the wrapper script. func_verbose "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` fi # Only actually do things if not in dry run mode. $opt_dry_run || { # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) func_stripname '' '.exe' "$output" output=$func_stripname_result ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe func_stripname '' '.exe' "$outputname" outputname=$func_stripname_result ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) func_dirname_and_basename "$output" "" "." output_name=$func_basename_result output_path=$func_dirname_result cwrappersource="$output_path/$objdir/lt-$output_name.c" cwrapper="$output_path/$output_name.exe" $RM $cwrappersource $cwrapper trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 func_emit_cwrapperexe_src > $cwrappersource # The wrapper executable is built using the $host compiler, # because it contains $host paths and files. If cross- # compiling, it, like the target executable, must be # executed on the $host or under an emulation environment. $opt_dry_run || { $LTCC $LTCFLAGS -o $cwrapper $cwrappersource $STRIP $cwrapper } # Now, create the wrapper script for func_source use: func_ltwrapper_scriptname $cwrapper $RM $func_ltwrapper_scriptname_result trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 $opt_dry_run || { # note: this script will not be executed, so do not chmod. if test "x$build" = "x$host" ; then $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result else func_emit_wrapper no > $func_ltwrapper_scriptname_result fi } ;; * ) $RM $output trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 func_emit_wrapper no > $output chmod +x $output ;; esac } exit $EXIT_SUCCESS ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do if test "$build_libtool_libs" = convenience; then oldobjs="$libobjs_save $symfileobj" addlibs="$convenience" build_libtool_libs=no else if test "$build_libtool_libs" = module; then oldobjs="$libobjs_save" build_libtool_libs=no else oldobjs="$old_deplibs $non_pic_objects" if test "$preload" = yes && test -f "$symfileobj"; then func_append oldobjs " $symfileobj" fi fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $addlibs func_append oldobjs " $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then cmds=$old_archive_from_new_cmds else # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $dlprefiles func_append oldobjs " $func_extract_archives_result" fi # POSIX demands no paths to be encoded in archives. We have # to avoid creating archives with duplicate basenames if we # might have to extract them afterwards, e.g., when creating a # static archive out of a convenience library, or when linking # the entirety of a libtool archive into another (currently # not supported by libtool). if (for obj in $oldobjs do func_basename "$obj" $ECHO "$func_basename_result" done | sort | sort -uc >/dev/null 2>&1); then : else echo "copying selected object files to avoid basename conflicts..." gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_mkdir_p "$gentop" save_oldobjs=$oldobjs oldobjs= counter=1 for obj in $save_oldobjs do func_basename "$obj" objbase="$func_basename_result" case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) while :; do # Make sure we don't pick an alternate name that also # overlaps. newobj=lt$counter-$objbase func_arith $counter + 1 counter=$func_arith_result case " $oldobjs " in *[\ /]"$newobj "*) ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;; esac done func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" func_append oldobjs " $gentop/$newobj" ;; *) func_append oldobjs " $obj" ;; esac done fi func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 tool_oldlib=$func_to_tool_file_result eval cmds=\"$old_archive_cmds\" func_len " $cmds" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds elif test -n "$archiver_list_spec"; then func_verbose "using command file archive linking..." for obj in $oldobjs do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" done > $output_objdir/$libname.libcmd func_to_tool_file "$output_objdir/$libname.libcmd" oldobjs=" $archiver_list_spec$func_to_tool_file_result" cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts func_verbose "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs oldobjs= # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done eval test_cmds=\"$old_archive_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 for obj in $save_oldobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result func_append objlist " $obj" if test "$len" -lt "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist if test "$obj" = "$last_oldobj" ; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" objlist= len=$len0 fi done RANLIB=$save_RANLIB oldobjs=$objlist if test "X$oldobjs" = "X" ; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi func_execute_cmds "$cmds" 'exit $?' done test -n "$generated" && \ func_show_eval "${RM}r$generated" # Now create the libtool archive. case $output in *.la) old_library= test "$build_old_libs" = yes && old_library="$libname.$libext" func_verbose "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then relink_command= fi # Only create the output if not a dry run. $opt_dry_run || { for installed in no yes; do if test "$installed" = yes; then if test -z "$install_libdir"; then break fi output="$output_objdir/$outputname"i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) func_basename "$deplib" name="$func_basename_result" func_resolve_sysroot "$deplib" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" ;; -L*) func_stripname -L '' "$deplib" func_replace_sysroot "$func_stripname_result" func_append newdependency_libs " -L$func_replace_sysroot_result" ;; -R*) func_stripname -R '' "$deplib" func_replace_sysroot "$func_stripname_result" func_append newdependency_libs " -R$func_replace_sysroot_result" ;; *) func_append newdependency_libs " $deplib" ;; esac done dependency_libs="$newdependency_libs" newdlfiles= for lib in $dlfiles; do case $lib in *.la) func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" ;; *) func_append newdlfiles " $lib" ;; esac done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in *.la) # Only pass preopened files to the pseudo-archive (for # eventual linking with the app. that links it) if we # didn't already link the preopened objects directly into # the library: func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" ;; esac done dlprefiles="$newdlprefiles" else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac func_append newdlfiles " $abs" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac func_append newdlprefiles " $abs" done dlprefiles="$newdlprefiles" fi $RM $output # place dlname in correct position for cygwin # In fact, it would be nice if we could use this code for all target # systems that can't hard-code library paths into their executables # and that have no shared library path variable independent of PATH, # but it turns out we can't easily determine that from inspecting # libtool variables, so we have to hard-code the OSs to which it # applies here; at the moment, that means platforms that use the PE # object format with DLL files. See the long comment at the top of # tests/bindir.at for full details. tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) # If a -bindir argument was supplied, place the dll there. if test "x$bindir" != x ; then func_relative_path "$install_libdir" "$bindir" tdlname=$func_relative_path_result$dlname else # Otherwise fall back on heuristic. tdlname=../bin/$dlname fi ;; esac $ECHO > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Linker flags that can not go in dependency_libs. inherited_linker_flags='$new_inherited_linker_flags' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Names of additional weak libraries provided by this library weak_library_names='$weak_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test "$installed" = no && test "$need_relink" = yes; then $ECHO >> $output "\ relink_command=\"$relink_command\"" fi done } # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' ;; esac exit $EXIT_SUCCESS } { test "$opt_mode" = link || test "$opt_mode" = relink; } && func_mode_link ${1+"$@"} # func_mode_uninstall arg... func_mode_uninstall () { $opt_debug RM="$nonopt" files= rmforce= exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" for arg do case $arg in -f) func_append RM " $arg"; rmforce=yes ;; -*) func_append RM " $arg" ;; *) func_append files " $arg" ;; esac done test -z "$RM" && \ func_fatal_help "you must specify an RM program" rmdirs= for file in $files; do func_dirname "$file" "" "." dir="$func_dirname_result" if test "X$dir" = X.; then odir="$objdir" else odir="$dir/$objdir" fi func_basename "$file" name="$func_basename_result" test "$opt_mode" = uninstall && odir="$dir" # Remember odir for removal later, being careful to avoid duplicates if test "$opt_mode" = clean; then case " $rmdirs " in *" $odir "*) ;; *) func_append rmdirs " $odir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if { test -L "$file"; } >/dev/null 2>&1 || { test -h "$file"; } >/dev/null 2>&1 || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif test "$rmforce" = yes; then continue fi rmfiles="$file" case $name in *.la) # Possibly a libtool archive, so verify it. if func_lalib_p "$file"; then func_source $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do func_append rmfiles " $odir/$n" done test -n "$old_library" && func_append rmfiles " $odir/$old_library" case "$opt_mode" in clean) case " $library_names " in *" $dlname "*) ;; *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; esac test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" ;; uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi # FIXME: should reinstall the best remaining shared library. ;; esac fi ;; *.lo) # Possibly a libtool object, so verify it. if func_lalib_p "$file"; then # Read the .lo file func_source $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" && test "$pic_object" != none; then func_append rmfiles " $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" && test "$non_pic_object" != none; then func_append rmfiles " $dir/$non_pic_object" fi fi ;; *) if test "$opt_mode" = clean ; then noexename=$name case $file in *.exe) func_stripname '' '.exe' "$file" file=$func_stripname_result func_stripname '' '.exe' "$name" noexename=$func_stripname_result # $file with .exe has already been added to rmfiles, # add $file without .exe func_append rmfiles " $file" ;; esac # Do a test to see if this is a libtool program. if func_ltwrapper_p "$file"; then if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" relink_command= func_source $func_ltwrapper_scriptname_result func_append rmfiles " $func_ltwrapper_scriptname_result" else relink_command= func_source $dir/$noexename fi # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles func_append rmfiles " $odir/$name $odir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then func_append rmfiles " $odir/lt-$name" fi if test "X$noexename" != "X$name" ; then func_append rmfiles " $odir/lt-${noexename}.c" fi fi fi ;; esac func_show_eval "$RM $rmfiles" 'exit_status=1' done # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then func_show_eval "rmdir $dir >/dev/null 2>&1" fi done exit $exit_status } { test "$opt_mode" = uninstall || test "$opt_mode" = clean; } && func_mode_uninstall ${1+"$@"} test -z "$opt_mode" && { help="$generic_help" func_fatal_help "you must specify a MODE" } test -z "$exec_cmd" && \ func_fatal_help "invalid operation mode \`$opt_mode'" if test -n "$exec_cmd"; then eval exec "$exec_cmd" exit $EXIT_FAILURE fi exit $exit_status # The TAGs below are defined such that we never get into a situation # in which we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared build_libtool_libs=no build_old_libs=yes # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: # vi:sw=2 libspatialite-4.1.1/COPYING0000664000175000017500000006305012163502133012321 00000000000000 MOZILLA PUBLIC LICENSE Version 1.1 --------------- 1. Definitions. 1.0.1. "Commercial Use" means distribution or otherwise making the Covered Code available to a third party. 1.1. "Contributor" means each entity that creates or contributes to the creation of Modifications. 1.2. "Contributor Version" means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. 1.3. "Covered Code" means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. 1.4. "Electronic Distribution Mechanism" means a mechanism generally accepted in the software development community for the electronic transfer of data. 1.5. "Executable" means Covered Code in any form other than Source Code. 1.6. "Initial Developer" means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. 1.7. "Larger Work" means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. 1.8. "License" means this document. 1.8.1. "Licensable" means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. 1.9. "Modifications" means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. B. Any new file that contains any part of the Original Code or previous Modifications. 1.10. "Original Code" means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. 1.10.1. "Patent Claims" means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. 1.11. "Source Code" means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor's choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. 1.12. "You" (or "Your") means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, "You" includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, "control" means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. 2. Source Code License. 2.1. The Initial Developer Grant. The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. 2.2. Contributor Grant. Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. 3. Distribution Obligations. 3.1. Application of License. The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients' rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. 3.2. Availability of Source Code. Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. 3.3. Description of Modifications. You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. 3.4. Intellectual Property Matters (a) Third Party Claims. If Contributor has knowledge that a license under a third party's intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled "LEGAL" which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. (b) Contributor APIs. If Contributor's Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. (c) Representations. Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor's Modifications are Contributor's original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. 3.5. Required Notices. You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients' rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. 3.6. Distribution of Executable Versions. You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients' rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient's rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer or any Contributor. You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of any such terms You offer. 3.7. Larger Works. You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. 4. Inability to Comply Due to Statute or Regulation. If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. 5. Application of this License. This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. 6. Versions of the License. 6.1. New Versions. Netscape Communications Corporation ("Netscape") may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. 6.2. Effect of New Versions. Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Netscape. No one other than Netscape has the right to modify the terms applicable to Covered Code created under this License. 6.3. Derivative Works. If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape", "MPL", "NPL" or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the Mozilla Public License and Netscape Public License. (Filling in the name of the Initial Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) 7. DISCLAIMER OF WARRANTY. COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. 8. TERMINATION. 8.1. This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. 8.2. If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer or a Contributor (the Initial Developer or Contributor against whom You file such action is referred to as "Participant") alleging that: (a) such Participant's Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. (b) any software, hardware, or device, other than such Participant's Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. 8.3. If You assert a patent infringement claim against Participant alleging that such Participant's Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. 8.4. In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. 9. LIMITATION OF LIABILITY. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. 10. U.S. GOVERNMENT END USERS. The Covered Code is a "commercial item," as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer software" and "commercial computer software documentation," as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. 11. MISCELLANEOUS. This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys' fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. 12. RESPONSIBILITY FOR CLAIMS. As between Initial Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. 13. MULTIPLE-LICENSED CODE. Initial Developer may designate portions of the Covered Code as "Multiple-Licensed". "Multiple-Licensed" means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the NPL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. EXHIBIT A -Mozilla Public License. ``The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library. The Initial Developer of the Original Code is Alessandro Furieri. Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Klaus Foerster [AsSvg()] Luigi Costalli [Dijkstra's shortest path algorithm] The Vanuatu Team - University of Toronto [WKT parser] Supervisor: Greg Wilson [you can find the complete team composition in gg_wkt.c] Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] libspatialite-4.1.1/examples/0000775000175000017500000000000012163503233013162 500000000000000libspatialite-4.1.1/examples/Makefile.am0000664000175000017500000000035212163502133015134 00000000000000noinst_PROGRAMS = demo1 demo2 demo3 demo4 demo5 AM_CFLAGS = -I@srcdir@/../src/headers AM_LDFLAGS = -L../src -lspatialite -lm $(GCOV_FLAGS) LDADD = @LIBXML2_LIBS@ MOSTLYCLEANFILES = *.gcna *.gcno *.gcda EXTRA_DIST = examples.doxy libspatialite-4.1.1/examples/demo5.c0000664000175000017500000002032112163502133014253 00000000000000/* demo5.c Author: Sandro Furieri a-furieri@lqt.it This software is provided 'as-is', without any express or implied warranty. In no event will the author be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely */ #include #include #include #include /* these headers are required in order to support SQLite/SpatiaLite */ #include #include #include #define ARG_NONE 0 #define ARG_DB_PATH 1 #define ARG_TABLE 2 #define ARG_GEOMETRY 3 static void do_print_list (gaiaVectorLayersListPtr list, int n_mode) { /* prints the layers list */ gaiaVectorLayerPtr lyr; gaiaLayerAttributeFieldPtr fld; const char *mode = "FAST"; if (n_mode == GAIA_VECTORS_LIST_OPTIMISTIC) mode = "OPTIMISTIC"; if (n_mode == GAIA_VECTORS_LIST_PESSIMISTIC) mode = "PESSIMISTIC"; printf ("\n****** VectorLayersList (mode=%s) *********\n", mode); if (list == NULL) { printf ("The VectorLayersList is empty !!!\n\n"); return; } lyr = list->First; while (lyr) { /* printing the Layer Header */ const char *lyr_type = "UnknownType"; const char *geom_type = "UnknownType"; const char *dims = "UnknownDims"; switch (lyr->LayerType) { case GAIA_VECTOR_TABLE: lyr_type = "BasedOnSqlTable"; break; case GAIA_VECTOR_VIEW: lyr_type = "BasedOnSqlView"; break; case GAIA_VECTOR_VIRTUAL: lyr_type = "BasedOnVirtualShape"; break; }; switch (lyr->GeometryType) { case GAIA_VECTOR_GEOMETRY: geom_type = "GEOMETRY"; break; case GAIA_VECTOR_POINT: geom_type = "POINT"; break; case GAIA_VECTOR_LINESTRING: geom_type = "LINESTRING"; break; case GAIA_VECTOR_POLYGON: geom_type = "POLYGON"; break; case GAIA_VECTOR_MULTIPOINT: geom_type = "MULTIPOINT"; break; case GAIA_VECTOR_MULTILINESTRING: geom_type = "MULTILINESTRING"; break; case GAIA_VECTOR_MULTIPOLYGON: geom_type = "MULTIPOLYGON"; break; case GAIA_VECTOR_GEOMETRYCOLLECTION: geom_type = "GEOMETRYCOLLECTION"; break; }; switch (lyr->Dimensions) { case GAIA_XY: dims = "XY"; break; case GAIA_XY_Z: dims = "XYZ"; break; case GAIA_XY_M: dims = "XYM"; break; case GAIA_XY_Z_M: dims = "XYXM"; break; }; printf ("VectorLayer: Type=%s TableName=%s\n", lyr_type, lyr->TableName); printf ("\tGeometryName=%s SRID=%d GeometryType=%s Dims=%s\n", lyr->GeometryName, lyr->Srid, geom_type, dims); if (lyr->ExtentInfos) { printf ("\tRowCount=%d\n", lyr->ExtentInfos->Count); printf ("\tExtentMin %f / %f\n\tExtentMax %f / %f\n", lyr->ExtentInfos->MinX, lyr->ExtentInfos->MinY, lyr->ExtentInfos->MaxX, lyr->ExtentInfos->MaxY); } if (lyr->AuthInfos) printf ("\tReadOnly=%s Hidden=%s\n", (lyr->AuthInfos->IsReadOnly == 0) ? "FALSE" : "TRUE", (lyr->AuthInfos->IsHidden == 0) ? "FALSE" : "TRUE"); fld = lyr->First; while (fld) { /* printing AttributeFields infos */ printf ("\t\tField #%d) FieldName=%s\n", fld->Ordinal, fld->AttributeFieldName); printf ("\t\t\t"); if (fld->NullValuesCount) printf ("NullValues=%d ", fld->NullValuesCount); if (fld->IntegerValuesCount) printf ("IntegerValues=%d ", fld->IntegerValuesCount); if (fld->DoubleValuesCount) printf ("DoubleValues=%d ", fld->DoubleValuesCount); if (fld->TextValuesCount) printf ("TextValues=%d ", fld->TextValuesCount); if (fld->BlobValuesCount) printf ("BlobValues=%d ", fld->BlobValuesCount); printf ("\n"); if (fld->MaxSize) printf ("\t\t\tMaxSize/Length=%d\n", fld->MaxSize->MaxSize); if (fld->IntRange) #if defined(_WIN32) || defined(__MINGW32__) /* CAVEAT: M$ runtime doesn't supports %lld for 64 bits */ printf ("\t\t\tIntRange %I64d / %I64d\n", #else printf ("\t\t\tIntRange %lld / %lld\n", #endif fld->IntRange->MinValue, fld->IntRange->MaxValue); if (fld->DoubleRange) printf ("\t\t\tDoubleRange %f / %f\n", fld->DoubleRange->MinValue, fld->DoubleRange->MaxValue); fld = fld->Next; } lyr = lyr->Next; } printf ("\n"); } static void do_help () { /* printing the argument list */ fprintf (stderr, "\n\nusage: demo5 ARGLIST\n"); fprintf (stderr, "==============================================================\n"); fprintf (stderr, "-d or --db-path pathname the SpatiaLite DB path\n"); fprintf (stderr, "-t or --table table-name the table to be checked\n"); fprintf (stderr, "-g or --geometry column_name geometry column [optional]\n\n"); fprintf (stderr, "you can specify one of the following modes:\n"); fprintf (stderr, "-f or --fast FAST mode [default]\n"); fprintf (stderr, "-o or --optimistic OPTIMISTIC mode\n"); fprintf (stderr, "-p or --pessimistic PESSIMISTIC mode\n"); } int main (int argc, char *argv[]) { int ret; sqlite3 *handle; int i; int next_arg = ARG_NONE; int mode = GAIA_VECTORS_LIST_FAST; int error = 0; const char *db_path = NULL; const char *table = NULL; const char *geometry = NULL; gaiaVectorLayersListPtr list; void *cache; for (i = 1; i < argc; i++) { /* parsing the invocation arguments */ if (next_arg != ARG_NONE) { switch (next_arg) { case ARG_DB_PATH: db_path = argv[i]; break; case ARG_TABLE: table = argv[i]; break; case ARG_GEOMETRY: geometry = argv[i]; break; }; next_arg = ARG_NONE; continue; } if (strcasecmp (argv[i], "--help") == 0 || strcmp (argv[i], "-h") == 0) { do_help (); return -1; } if (strcasecmp (argv[i], "-d") == 0 || strcasecmp (argv[i], "--db-path") == 0) { next_arg = ARG_DB_PATH; continue; } if (strcasecmp (argv[i], "-t") == 0 || strcmp (argv[i], "--table") == 0) { next_arg = ARG_TABLE; continue; } if (strcasecmp (argv[i], "-g") == 0 || strcmp (argv[i], "--geometry") == 0) { next_arg = ARG_GEOMETRY; continue; } if (strcasecmp (argv[i], "-p") == 0 || strcmp (argv[i], "--pessimistic") == 0) { mode = GAIA_VECTORS_LIST_PESSIMISTIC; next_arg = ARG_NONE; continue; } if (strcasecmp (argv[i], "-f") == 0 || strcmp (argv[i], "--fast") == 0) { mode = GAIA_VECTORS_LIST_FAST; next_arg = ARG_NONE; continue; } if (strcasecmp (argv[i], "-o") == 0 || strcmp (argv[i], "--optimistic") == 0) { mode = GAIA_VECTORS_LIST_OPTIMISTIC; next_arg = ARG_NONE; continue; } fprintf (stderr, "unknown argument: %s\n", argv[i]); error = 1; } if (error) { do_help (); return -1; } /* checking the arguments */ if (!db_path) { fprintf (stderr, "did you forget setting the --db-path argument ?\n"); error = 1; } if (error) { do_help (); return -1; } /* trying to connect the test DB: - this demo is intended to create an existing, already populated database */ ret = sqlite3_open_v2 (db_path, &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { printf ("cannot open '%s': %s\n", argv[1], sqlite3_errmsg (handle)); sqlite3_close (handle); return -1; } cache = spatialite_alloc_connection (); spatialite_init_ex (handle, cache, 0); /* showing the SQLite version */ printf ("SQLite version: %s\n", sqlite3_libversion ()); /* showing the SpatiaLite version */ printf ("SpatiaLite version: %s\n", spatialite_version ()); printf ("\n\n"); /* listing the requested layer(s) */ list = gaiaGetVectorLayersList (handle, table, geometry, mode); do_print_list (list, mode); gaiaFreeVectorLayersList (list); /* disconnecting the test DB */ ret = sqlite3_close (handle); if (ret != SQLITE_OK) { printf ("close() error: %s\n", sqlite3_errmsg (handle)); return -1; } spatialite_cleanup_ex (cache); printf ("\n\nsample successfully terminated\n"); return 0; } libspatialite-4.1.1/examples/demo3.c0000664000175000017500000002166212163502133014262 00000000000000/* demo3.c Author: Sandro Furieri a-furieri@lqt.it This software is provided 'as-is', without any express or implied warranty. In no event will the author be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely */ #include #include #include #include /* these headers are required in order to support SQLite/SpatiaLite */ #include #include #include int main (int argc, char *argv[]) { int ret; sqlite3 *handle; sqlite3_stmt *stmt; char sql[256]; char *err_msg = NULL; double x; double y; int pk; int ix; int iy; gaiaGeomCollPtr geo = NULL; unsigned char *blob; int blob_size; int i; char **results; int n_rows; int n_columns; char *count; clock_t t0; clock_t t1; void *cache; if (argc != 2) { fprintf (stderr, "usage: %s test_db_path\n", argv[0]); return -1; } /* trying to connect the test DB: - this demo is intended to create a new, empty database */ ret = sqlite3_open_v2 (argv[1], &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { printf ("cannot open '%s': %s\n", argv[1], sqlite3_errmsg (handle)); sqlite3_close (handle); return -1; } cache = spatialite_alloc_connection (); spatialite_init_ex (handle, cache, 0); /* showing the SQLite version */ printf ("SQLite version: %s\n", sqlite3_libversion ()); /* showing the SpatiaLite version */ printf ("SpatiaLite version: %s\n", spatialite_version ()); printf ("\n\n"); /* we are supposing this one is an empty database, so we have to create the Spatial Metadata */ strcpy (sql, "SELECT InitSpatialMetadata(1)"); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { /* an error occurred */ printf ("InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free (err_msg); goto abort; } /* now we can create the test table for simplicity we'll define only one column, the primary key */ strcpy (sql, "CREATE TABLE test ("); strcat (sql, "PK INTEGER NOT NULL PRIMARY KEY)"); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { /* an error occurred */ printf ("CREATE TABLE 'test' error: %s\n", err_msg); sqlite3_free (err_msg); goto abort; } /* ... we'll add a Geometry column of POINT type to the test table */ strcpy (sql, "SELECT AddGeometryColumn('test', 'geom', 3003, 'POINT', 2)"); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { /* an error occurred */ printf ("AddGeometryColumn() error: %s\n", err_msg); sqlite3_free (err_msg); goto abort; } /* and finally we'll enable this geo-column to have a Spatial Index based on R*Tree */ strcpy (sql, "SELECT CreateSpatialIndex('test', 'geom')"); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { /* an error occurred */ printf ("CreateSpatialIndex() error: %s\n", err_msg); sqlite3_free (err_msg); goto abort; } printf ("\nnow we are going to insert 1 million POINTs; wait, please ...\n\n"); t0 = clock (); /* beginning a transaction *** this step is absolutely critical *** the SQLite engine is a TRANSACTIONAL one the whole batch of INSERTs has to be performed as an unique transaction, otherwise performance will be surely very poor */ strcpy (sql, "BEGIN"); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { /* an error occurred */ printf ("BEGIN error: %s\n", err_msg); sqlite3_free (err_msg); goto abort; } /* preparing to populate the test table we'll use a Prepared Statement we can reuse in order to insert each row */ strcpy (sql, "INSERT INTO test (pk, geom) VALUES (?, ?)"); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { /* an error occurred */ printf ("INSERT SQL error: %s\n", sqlite3_errmsg (handle)); goto abort; } pk = 0; for (ix = 0; ix < 1000; ix++) { x = 1000000.0 + (ix * 10.0); for (iy = 0; iy < 1000; iy++) { /* this double loop will insert 1 million rows into the the test table */ y = 4000000.0 + (iy * 10.0); pk++; if ((pk % 25000) == 0) { t1 = clock (); printf ("insert row: %d\t\t[elapsed time: %1.3f]\n", pk, (double) (t1 - t0) / CLOCKS_PER_SEC); } /* preparing the geometry to insert */ geo = gaiaAllocGeomColl (); geo->Srid = 3003; gaiaAddPointToGeomColl (geo, x, y); /* transforming this geometry into the SpatiaLite BLOB format */ gaiaToSpatiaLiteBlobWkb (geo, &blob, &blob_size); /* we can now destroy the geometry object */ gaiaFreeGeomColl (geo); /* resetting Prepared Statement and bindings */ sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); /* binding parameters to Prepared Statement */ sqlite3_bind_int64 (stmt, 1, pk); sqlite3_bind_blob (stmt, 2, blob, blob_size, free); /* performing actual row insert */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { /* an unexpected error occurred */ printf ("sqlite3_step() error: %s\n", sqlite3_errmsg (handle)); sqlite3_finalize (stmt); goto abort; } } } /* we have now to finalize the query [memory cleanup] */ sqlite3_finalize (stmt); /* committing the transaction *** this step is absolutely critical *** if we don't confirm the still pending transaction, any update will be lost */ strcpy (sql, "COMMIT"); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { /* an error occurred */ printf ("COMMIT error: %s\n", err_msg); sqlite3_free (err_msg); goto abort; } /* now we'll optimize the table */ strcpy (sql, "ANALYZE test"); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { /* an error occurred */ printf ("ANALYZE error: %s\n", err_msg); sqlite3_free (err_msg); goto abort; } for (ix = 0; ix < 3; ix++) { printf ("\nperforming test#%d - not using Spatial Index\n", ix); /* now we'll perform the spatial query WITHOUT using the Spatial Index we'll loop 3 times in order to avoid buffering-caching side effects */ strcpy (sql, "SELECT Count(*) FROM test "); strcat (sql, "WHERE MbrWithin(geom, BuildMbr("); strcat (sql, "1000400.5, 4000400.5, "); strcat (sql, "1000450.5, 4000450.5))"); t0 = clock (); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, &err_msg); if (ret != SQLITE_OK) { /* an error occurred */ printf ("NoSpatialIndex SQL error: %s\n", err_msg); sqlite3_free (err_msg); goto abort; } count = ""; for (i = 1; i <= n_rows; i++) { count = results[(i * n_columns) + 0]; } t1 = clock (); printf ("Count(*) = %d\t\t[elapsed time: %1.4f]\n", atoi (count), (double) (t1 - t0) / CLOCKS_PER_SEC); /* we can now free the table results */ sqlite3_free_table (results); } for (ix = 0; ix < 3; ix++) { printf ("\nperforming test#%d - using the R*Tree Spatial Index\n", ix); /* now we'll perform the spatial query USING the R*Tree Spatial Index we'll loop 3 times in order to avoid buffering-caching side effects */ strcpy (sql, "SELECT Count(*) FROM test "); strcat (sql, "WHERE MbrWithin(geom, BuildMbr("); strcat (sql, "1000400.5, 4000400.5, "); strcat (sql, "1000450.5, 4000450.5)) AND ROWID IN ("); strcat (sql, "SELECT pkid FROM idx_test_geom WHERE "); strcat (sql, "xmin > 1000400.5 AND "); strcat (sql, "xmax < 1000450.5 AND "); strcat (sql, "ymin > 4000400.5 AND "); strcat (sql, "ymax < 4000450.5)"); /* YES, this query is a very unhappy one the idea is simply to simulate exactly the same conditions as above */ t0 = clock (); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, &err_msg); if (ret != SQLITE_OK) { /* an error occurred */ printf ("SpatialIndex SQL error: %s\n", err_msg); sqlite3_free (err_msg); goto abort; } count = ""; for (i = 1; i <= n_rows; i++) { count = results[(i * n_columns) + 0]; } t1 = clock (); printf ("Count(*) = %d\t\t[elapsed time: %1.4f]\n", atoi (count), (double) (t1 - t0) / CLOCKS_PER_SEC); /* we can now free the table results */ sqlite3_free_table (results); } /* disconnecting the test DB */ ret = sqlite3_close (handle); if (ret != SQLITE_OK) { printf ("close() error: %s\n", sqlite3_errmsg (handle)); return -1; } spatialite_cleanup_ex (cache); printf ("\n\nsample successfully terminated\n"); return 0; abort: sqlite3_close (handle); spatialite_cleanup_ex (cache); return -1; } libspatialite-4.1.1/examples/Makefile.in0000664000175000017500000004142712163502133015155 00000000000000# Makefile.in generated by automake 1.12.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ noinst_PROGRAMS = demo1$(EXEEXT) demo2$(EXEEXT) demo3$(EXEEXT) \ demo4$(EXEEXT) demo5$(EXEEXT) subdir = examples DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = PROGRAMS = $(noinst_PROGRAMS) demo1_SOURCES = demo1.c demo1_OBJECTS = demo1.$(OBJEXT) demo1_LDADD = $(LDADD) demo1_DEPENDENCIES = demo2_SOURCES = demo2.c demo2_OBJECTS = demo2.$(OBJEXT) demo2_LDADD = $(LDADD) demo2_DEPENDENCIES = demo3_SOURCES = demo3.c demo3_OBJECTS = demo3.$(OBJEXT) demo3_LDADD = $(LDADD) demo3_DEPENDENCIES = demo4_SOURCES = demo4.c demo4_OBJECTS = demo4.$(OBJEXT) demo4_LDADD = $(LDADD) demo4_DEPENDENCIES = demo5_SOURCES = demo5.c demo5_OBJECTS = demo5.$(OBJEXT) demo5_LDADD = $(LDADD) demo5_DEPENDENCIES = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = demo1.c demo2.c demo3.c demo4.c demo5.c DIST_SOURCES = demo1.c demo2.c demo3.c demo4.c demo5.c am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AM_CFLAGS = -I@srcdir@/../src/headers AM_LDFLAGS = -L../src -lspatialite -lm $(GCOV_FLAGS) LDADD = @LIBXML2_LIBS@ MOSTLYCLEANFILES = *.gcna *.gcno *.gcda EXTRA_DIST = examples.doxy all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign examples/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign examples/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list demo1$(EXEEXT): $(demo1_OBJECTS) $(demo1_DEPENDENCIES) $(EXTRA_demo1_DEPENDENCIES) @rm -f demo1$(EXEEXT) $(LINK) $(demo1_OBJECTS) $(demo1_LDADD) $(LIBS) demo2$(EXEEXT): $(demo2_OBJECTS) $(demo2_DEPENDENCIES) $(EXTRA_demo2_DEPENDENCIES) @rm -f demo2$(EXEEXT) $(LINK) $(demo2_OBJECTS) $(demo2_LDADD) $(LIBS) demo3$(EXEEXT): $(demo3_OBJECTS) $(demo3_DEPENDENCIES) $(EXTRA_demo3_DEPENDENCIES) @rm -f demo3$(EXEEXT) $(LINK) $(demo3_OBJECTS) $(demo3_LDADD) $(LIBS) demo4$(EXEEXT): $(demo4_OBJECTS) $(demo4_DEPENDENCIES) $(EXTRA_demo4_DEPENDENCIES) @rm -f demo4$(EXEEXT) $(LINK) $(demo4_OBJECTS) $(demo4_LDADD) $(LIBS) demo5$(EXEEXT): $(demo5_OBJECTS) $(demo5_DEPENDENCIES) $(EXTRA_demo5_DEPENDENCIES) @rm -f demo5$(EXEEXT) $(LINK) $(demo5_OBJECTS) $(demo5_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/demo1.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/demo2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/demo3.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/demo4.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/demo5.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: $(HEADERS) $(SOURCES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstPROGRAMS cscopelist ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libspatialite-4.1.1/examples/demo2.c0000664000175000017500000003366412163502133014266 00000000000000/* demo2.c Author: Sandro Furieri a-furieri@lqt.it This software is provided 'as-is', without any express or implied warranty. In no event will the author be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely */ #include #include #include #include "config.h" /* these headers are required in order to support SQLite/SpatiaLite */ #include #include #include #include static char * geom_type (int type) { /* utility function returning corresponding GeometryType as a string */ static char *name = "EMPTY / NULL GEOMETRY"; if (type == GAIA_POINT) name = "POINT"; if (type == GAIA_LINESTRING) name = "LINESTRING"; if (type == GAIA_POLYGON) name = "POLYGON"; if (type == GAIA_MULTIPOINT) name = "MULTIPOINT"; if (type == GAIA_MULTILINESTRING) name = "MULTILINESTRING"; if (type == GAIA_MULTIPOLYGON) name = "MULTIPOLYGON"; if (type == GAIA_GEOMETRYCOLLECTION) name = "GEOMETRYCOLLECTION"; return name; } static void geometry_printout (gaiaGeomCollPtr geom) { /* utility function printing a generic Geometry object */ gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; gaiaRingPtr rng; int n_pts = 0; int n_lns = 0; int n_pgs = 0; int cnt; int iv; int ir; double x; double y; /* we'll now count how many POINTs are there */ pt = geom->FirstPoint; while (pt) { n_pts++; pt = pt->Next; } /* we'll now count how many LINESTRINGs are there */ ln = geom->FirstLinestring; while (ln) { n_lns++; ln = ln->Next; } /* we'll now count how many POLYGONs are there */ pg = geom->FirstPolygon; while (pg) { n_pgs++; pg = pg->Next; } if (n_pts) { /* printing POINTs coordinates */ cnt = 0; pt = geom->FirstPoint; while (pt) { /* we'll now scan the linked list of POINTs */ printf ("\t\t\tPOINT %d/%d x=%1.4f y=%1.4f\n", cnt, n_pts, pt->X, pt->Y); cnt++; pt = pt->Next; } } if (n_lns) { /* printing LINESTRINGs coordinates */ cnt = 0; ln = geom->FirstLinestring; while (ln) { /* we'll now scan the linked list of LINESTRINGs */ printf ("\t\t\tLINESTRING %d/%d has %d vertices\n", cnt, n_lns, ln->Points); for (iv = 0; iv < ln->Points; iv++) { /* we'll now retrieve coordinates for each vertex */ gaiaGetPoint (ln->Coords, iv, &x, &y); printf ("\t\t\t\tvertex %d/%d x=%1.4f y=%1.4f\n", iv, ln->Points, x, y); } cnt++; ln = ln->Next; } } if (n_pgs) { /* printing POLYGONs coordinates */ cnt = 0; pg = geom->FirstPolygon; while (pg) { /* we'll now scan the linked list of POLYGONs */ printf ("\t\t\tPOLYGON %d/%d has %d hole%c\n", cnt, n_pgs, pg->NumInteriors, (pg->NumInteriors == 1) ? ' ' : 's'); /* now we'll print out the Exterior ring [surely a POLYGON has an Exterior ring */ rng = pg->Exterior; printf ("\t\t\t\tExteriorRing has %d vertices\n", rng->Points); for (iv = 0; iv < rng->Points; iv++) { /* we'll now retrieve coordinates for each vertex */ gaiaGetPoint (rng->Coords, iv, &x, &y); printf ("\t\t\t\t\tvertex %d/%d x=%1.4f y=%1.4f\n", iv, rng->Points, x, y); } for (ir = 0; ir < pg->NumInteriors; ir++) { /* a POLYGON can contain an arbitrary number of Interior rings (including zero) */ rng = pg->Interiors + ir; printf ("\t\t\t\tInteriorRing %d/%d has %d vertices\n", ir, pg->NumInteriors, rng->Points); for (iv = 0; iv < rng->Points; iv++) { /* we'll now retrieve coordinates for each vertex */ gaiaGetPoint (rng->Coords, iv, &x, &y); printf ("\t\t\t\t\tvertex %d/%d x=%1.4f y=%1.4f\n", iv, rng->Points, x, y); } } cnt++; pg = pg->Next; } } } int main (int argc, char *argv[]) { gaiaGeomCollPtr geo_pt = NULL; gaiaGeomCollPtr geo_ln = NULL; gaiaGeomCollPtr geo_pg = NULL; gaiaGeomCollPtr geo_mpt = NULL; gaiaGeomCollPtr geo_mln = NULL; gaiaGeomCollPtr geo_mpg = NULL; gaiaGeomCollPtr geo_coll = NULL; gaiaLinestringPtr line; gaiaPolygonPtr polyg; gaiaRingPtr ring; gaiaOutBuffer wkt; int ret; sqlite3 *handle; void *cache; /* this demo does not strictly require any DB connection to be established However you must initialize the SpatiaLite extension [and related] and you *must* establish a "fake" DB connection in order to properly initialize SpatiaLite and GEOS libraries */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READONLY, NULL); if (ret != SQLITE_OK) { printf ("cannot open '%s': %s\n", ":memory:", sqlite3_errmsg (handle)); sqlite3_close (handle); return -1; } cache = spatialite_alloc_connection (); spatialite_init_ex (handle, cache, 0); #ifndef OMIT_GEOS /* GEOS must be enabled */ /* Step #1 creating and checking a POINT Geometry */ /* we'll allocate a Geometry object */ geo_pt = gaiaAllocGeomColl (); /* then we insert a POINT, directly passing its coordinates */ gaiaAddPointToGeomColl (geo_pt, 1.5, 2.75); /* now we'll print the main attributes for this geometry */ printf ("step#1: %s\t\tDimension=%d IsValid=%d\n", geom_type (gaiaGeometryType (geo_pt)), gaiaDimension (geo_pt), gaiaIsValid (geo_pt)); geometry_printout (geo_pt); /* Step #2 creating and checking a LINESTRING Geometry */ geo_ln = gaiaAllocGeomColl (); /* then we insert a LINESTRING, specifying how many vertices it contains */ line = gaiaAddLinestringToGeomColl (geo_ln, 5); /* we've got a pointer referencing the linestring we've just inserted now we'll set coordinates for each vertex */ gaiaSetPoint (line->Coords, 0, 1.0, 1.0); gaiaSetPoint (line->Coords, 1, 2.0, 1.0); gaiaSetPoint (line->Coords, 2, 2.0, 2.0); gaiaSetPoint (line->Coords, 3, 100.0, 2.0); gaiaSetPoint (line->Coords, 4, 100.0, 100.0); printf ("\nstep#2: %s\tDimension=%d IsValid=%d\n", geom_type (gaiaGeometryType (geo_ln)), gaiaDimension (geo_ln), gaiaIsValid (geo_ln)); geometry_printout (geo_ln); /* Step #3 creating and checking a POLYGON Geometry */ geo_pg = gaiaAllocGeomColl (); /* then we insert a POLYGON, specifying: - how many vertices have to be allocated for the Exterior Ring - how many Interior Rings it has */ polyg = gaiaAddPolygonToGeomColl (geo_pg, 5, 2); /* we've got a pointer referencing the polygon we've just inserted now we'll get a pointer referencing its Exterior ring */ ring = polyg->Exterior; /* now we'll set coordinates for each Exterior ring vertex */ gaiaSetPoint (ring->Coords, 0, 0.0, 0.0); gaiaSetPoint (ring->Coords, 1, 50.0, 0.0); gaiaSetPoint (ring->Coords, 2, 50.0, 50.0); gaiaSetPoint (ring->Coords, 3, 0.0, 50.0); /* please note: a Ring is a CLOSED figure, so last and first vertex have to be coincident */ gaiaSetPoint (ring->Coords, 4, 0.0, 0.0); /* we'll now get a pointer referencing the FIRST interior ring, specifying how vertices have to be allocated */ ring = gaiaAddInteriorRing (polyg, 0, 5); /* then setting coordinates for each Interior ring vertex */ gaiaSetPoint (ring->Coords, 0, 40.0, 40.0); gaiaSetPoint (ring->Coords, 1, 41.0, 40.0); gaiaSetPoint (ring->Coords, 2, 41.0, 41.0); gaiaSetPoint (ring->Coords, 3, 40.0, 41.0); gaiaSetPoint (ring->Coords, 4, 40.0, 40.0); /* we'll now get a pointer referencing the SECOND interior ring, specifying how vertices have to be allocated */ ring = gaiaAddInteriorRing (polyg, 1, 5); /* then setting coordinates for each Interior ring vertex */ gaiaSetPoint (ring->Coords, 0, 30.0, 30.0); gaiaSetPoint (ring->Coords, 1, 31.0, 30.0); gaiaSetPoint (ring->Coords, 2, 31.0, 31.0); gaiaSetPoint (ring->Coords, 3, 30.0, 31.0); gaiaSetPoint (ring->Coords, 4, 30.0, 30.0); printf ("\nstep#3: %s\tDimension=%d IsValid=%d\n", geom_type (gaiaGeometryType (geo_pg)), gaiaDimension (geo_pg), gaiaIsValid (geo_pg)); geometry_printout (geo_pg); /* Step #4 creating and checking a MULTIPOINT Geometry */ geo_mpt = gaiaAllocGeomColl (); /* then we'll insert some POINTs */ gaiaAddPointToGeomColl (geo_mpt, 5.0, 5.0); gaiaAddPointToGeomColl (geo_mpt, 15.0, 5.0); gaiaAddPointToGeomColl (geo_mpt, 5.0, 15.0); gaiaAddPointToGeomColl (geo_mpt, 25.0, 5.0); gaiaAddPointToGeomColl (geo_mpt, 5.0, 25.0); printf ("\nstep#4: %s\tDimension=%d IsValid=%d\n", geom_type (gaiaGeometryType (geo_mpt)), gaiaDimension (geo_mpt), gaiaIsValid (geo_mpt)); geometry_printout (geo_mpt); /* Step #5 creating and checking a MULTILINESTRING Geometry */ geo_mln = gaiaAllocGeomColl (); /* then we'll insert two LINESTRINGs */ line = gaiaAddLinestringToGeomColl (geo_mln, 2); gaiaSetPoint (line->Coords, 0, 30.0, 10.0); gaiaSetPoint (line->Coords, 1, 10.0, 30.0); line = gaiaAddLinestringToGeomColl (geo_mln, 2); gaiaSetPoint (line->Coords, 0, 40.0, 50.0); gaiaSetPoint (line->Coords, 1, 50.0, 40.0); printf ("\nstep#5: %s\tDimension=%d IsValid=%d\n", geom_type (gaiaGeometryType (geo_mln)), gaiaDimension (geo_mln), gaiaIsValid (geo_mln)); geometry_printout (geo_mln); /* Step #6 creating and checking a MULTIPOLYGON Geometry */ geo_mpg = gaiaAllocGeomColl (); /* then we'll insert two POLYGONs */ polyg = gaiaAddPolygonToGeomColl (geo_mpg, 5, 0); ring = polyg->Exterior; gaiaSetPoint (ring->Coords, 0, 60.0, 60.0); gaiaSetPoint (ring->Coords, 1, 70.0, 60.0); gaiaSetPoint (ring->Coords, 2, 70.0, 70.0); gaiaSetPoint (ring->Coords, 3, 60.0, 70.0); gaiaSetPoint (ring->Coords, 4, 60.0, 60.0); polyg = gaiaAddPolygonToGeomColl (geo_mpg, 5, 0); ring = polyg->Exterior; gaiaSetPoint (ring->Coords, 0, 80.0, 80.0); gaiaSetPoint (ring->Coords, 1, 90.0, 80.0); gaiaSetPoint (ring->Coords, 2, 90.0, 90.0); gaiaSetPoint (ring->Coords, 3, 80.0, 90.0); gaiaSetPoint (ring->Coords, 4, 80.0, 80.0); printf ("\nstep#6: %s\tDimension=%d IsValid=%d\n", geom_type (gaiaGeometryType (geo_mpg)), gaiaDimension (geo_mpg), gaiaIsValid (geo_mpg)); geometry_printout (geo_mpg); /* Step #7 creating and checking a GEOMETRYCOLLECTION Geometry */ geo_coll = gaiaAllocGeomColl (); /* then we'll insert two POINTs */ gaiaAddPointToGeomColl (geo_coll, 100.0, 100.0); gaiaAddPointToGeomColl (geo_coll, 100.0, 0.0); /* then we'll insert two LINESTRINGs */ line = gaiaAddLinestringToGeomColl (geo_coll, 2); gaiaSetPoint (line->Coords, 0, 130.0, 110.0); gaiaSetPoint (line->Coords, 1, 110.0, 130.0); line = gaiaAddLinestringToGeomColl (geo_coll, 2); gaiaSetPoint (line->Coords, 0, 140.0, 150.0); gaiaSetPoint (line->Coords, 1, 150.0, 140.0); /* then we'll insert two POLYGONs */ polyg = gaiaAddPolygonToGeomColl (geo_coll, 5, 0); ring = polyg->Exterior; gaiaSetPoint (ring->Coords, 0, 160.0, 160.0); gaiaSetPoint (ring->Coords, 1, 170.0, 160.0); gaiaSetPoint (ring->Coords, 2, 170.0, 170.0); gaiaSetPoint (ring->Coords, 3, 160.0, 170.0); gaiaSetPoint (ring->Coords, 4, 160.0, 160.0); polyg = gaiaAddPolygonToGeomColl (geo_coll, 5, 0); ring = polyg->Exterior; gaiaSetPoint (ring->Coords, 0, 180.0, 180.0); gaiaSetPoint (ring->Coords, 1, 190.0, 180.0); gaiaSetPoint (ring->Coords, 2, 190.0, 190.0); gaiaSetPoint (ring->Coords, 3, 180.0, 190.0); gaiaSetPoint (ring->Coords, 4, 180.0, 180.0); printf ("\nstep#7: %s\tDimension=%d IsValid=%d\n", geom_type (gaiaGeometryType (geo_coll)), gaiaDimension (geo_coll), gaiaIsValid (geo_coll)); geometry_printout (geo_coll); /* Step #8 printing each geometry as Well Known Text (WKT) */ printf ("\nstep#8: checking WKT representations\n"); /* first we'll get the WKT corresponding to geometry */ gaiaOutBufferInitialize (&wkt); gaiaOutWkt (&wkt, geo_pt); /* we have to check wkt is not NULL */ if (wkt.Error == 0 && wkt.Buffer != NULL) { /* printing the WKT */ printf ("\n%s\n", wkt.Buffer); /* finally freeing the wkt temporary storage allocation */ gaiaOutBufferReset (&wkt); } gaiaOutBufferInitialize (&wkt); gaiaOutWkt (&wkt, geo_ln); if (wkt.Error == 0 && wkt.Buffer != NULL) { printf ("\n%s\n", wkt.Buffer); gaiaOutBufferReset (&wkt); } gaiaOutBufferInitialize (&wkt); gaiaOutWkt (&wkt, geo_pg); if (wkt.Error == 0 && wkt.Buffer != NULL) { printf ("\n%s\n", wkt.Buffer); gaiaOutBufferReset (&wkt); } gaiaOutBufferInitialize (&wkt); gaiaOutWkt (&wkt, geo_mpt); if (wkt.Error == 0 && wkt.Buffer != NULL) { printf ("\n%s\n", wkt.Buffer); gaiaOutBufferReset (&wkt); } gaiaOutBufferInitialize (&wkt); gaiaOutWkt (&wkt, geo_mln); if (wkt.Error == 0 && wkt.Buffer != NULL) { printf ("\n%s\n", wkt.Buffer); gaiaOutBufferReset (&wkt); } gaiaOutBufferInitialize (&wkt); gaiaOutWkt (&wkt, geo_mpg); if (wkt.Error == 0 && wkt.Buffer != NULL) { printf ("\n%s\n", wkt.Buffer); gaiaOutBufferReset (&wkt); } gaiaOutBufferInitialize (&wkt); gaiaOutWkt (&wkt, geo_coll); if (wkt.Error == 0 && wkt.Buffer != NULL) { printf ("\n%s\n", wkt.Buffer); gaiaOutBufferReset (&wkt); } #else printf ("no GEOS support available: skipping any test\n"); #endif /* GEOS enabled/disabled */ /* memory cleanup we have to destroy each object using temporary storage before exit */ if (geo_pt) gaiaFreeGeomColl (geo_pt); if (geo_ln) gaiaFreeGeomColl (geo_ln); if (geo_pg) gaiaFreeGeomColl (geo_pg); if (geo_mpt) gaiaFreeGeomColl (geo_mpt); if (geo_mln) gaiaFreeGeomColl (geo_mln); if (geo_mpg) gaiaFreeGeomColl (geo_mpg); if (geo_coll) gaiaFreeGeomColl (geo_coll); sqlite3_close (handle); spatialite_cleanup_ex (cache); return 0; } libspatialite-4.1.1/examples/demo1.c0000664000175000017500000002354512163502133014262 00000000000000/* demo1.c Author: Sandro Furieri a-furieri@lqt.it This software is provided 'as-is', without any express or implied warranty. In no event will the author be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely */ #include #include #include #include "config.h" /* these headers are required in order to support SQLite/SpatiaLite */ #include #include #include int main (int argc, char *argv[]) { int ret; sqlite3 *handle; sqlite3_stmt *stmt; gaiaGeomCollPtr geom; char sql[256]; int i; int ic; char **results; int n_rows; int n_columns; char *err_msg = NULL; int len; char *table_name; char **p_geotables = NULL; int n_geotables = 0; int row_no; const void *blob; int blob_size; int geom_type; double measure; void *cache; if (argc != 2) { fprintf (stderr, "usage: %s test_db_path\n", argv[0]); return -1; } /* trying to connect the test DB: - this demo was designed in order to connect the standard TEST-2.3.SQLITE sample DB - but you can try to use any SQLite/SpatiaLite DB at your will Please notice: we'll establish a READ ONLY connection */ ret = sqlite3_open_v2 (argv[1], &handle, SQLITE_OPEN_READONLY, NULL); if (ret != SQLITE_OK) { printf ("cannot open '%s': %s\n", argv[1], sqlite3_errmsg (handle)); sqlite3_close (handle); return -1; } /* VERY IMPORTANT: you must initialize the SpatiaLite extension [and related] BEFORE attempting to perform any other SQLite call ========================================================== Please note: starting since 4.1.0 this is completely canged: - a separate memory block (internal cache) is required by each single connection - allocating/freeing this block falls under the responsibility of the program handling the connection - in multithreaded programs a connection can never be share by different threads; the internal-cache block must be allocated by the same thread holding the connection */ cache = spatialite_alloc_connection (); spatialite_init_ex (handle, cache, 0); /* showing the SQLite version */ printf ("SQLite version: %s\n", sqlite3_libversion ()); /* showing the SpatiaLite version */ printf ("SpatiaLite version: %s\n", spatialite_version ()); printf ("\n\n"); /* SQL query #1 we'll retrieve GEOMETRY tables from Spatial Metadata we are assuming this query will return only few rows, so this time we'll use the sqlite3_get_table() interface this interface is very simple to use the result set is returned as a rectangular array [rows/columns] allocated in a temporary memory storage so, this interface is well suited for small sized result sets, but performs badly when accessing a large sized resul set as a side effect, each column value is returned as text, and isn't possible at all to retrieve true column types (INTEGER, FLOAT ...) */ strcpy (sql, "SELECT DISTINCT f_table_name FROM geometry_columns ORDER BY 1"); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, &err_msg); if (ret != SQLITE_OK) { /* some error occurred */ printf ("query#1 SQL error: %s\n", err_msg); sqlite3_free (err_msg); goto abort; } if (n_rows > 1) { /* first row always contains column names and is meaningless in this context */ n_geotables = n_rows; /* allocating a dynamic pointer array to store geotable names */ p_geotables = malloc (sizeof (char *) * n_geotables); for (i = 1; i <= n_rows; i++) { /* now we'll fetch one row at each time [and we have only one column to fetch] this one is is a simplified demo; but when writing a real application you always must check for NULL values !!!! */ table_name = results[(i * n_columns) + 0]; /* and we'll store each geotable name into the dynamic pointer array */ len = strlen (table_name); p_geotables[i - 1] = malloc (len + 1); strcpy (p_geotables[i - 1], table_name); } /* we can now free the table results */ sqlite3_free_table (results); } for (i = 0; i < n_geotables; i++) { /* now we'll scan each geotable we've found in Spatial Metadata */ printf ("========= table '%s' ========================\n", p_geotables[i]); /* SQL query #2 we'll retrieve any column from the current geotable we are assuming this query will return lots of rows, so we have to use sqlite3_prepare_v2() interface this interface is a more complex one, but is well suited in order to access huge sized result sets and true value type control is supported */ sprintf (sql, "SELECT * FROM %s", p_geotables[i]); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { /* some error occurred */ printf ("query#2 SQL error: %s\n", sqlite3_errmsg (handle)); goto abort; } /* the sqlite3_prepare_v2() call simply parses the SQL statement, checking for syntax validity, allocating internal structs etc but no result set row is really yet available */ /* we'll now save the #columns within the result set */ n_columns = sqlite3_column_count (stmt); row_no = 0; while (1) { /* this is an infinite loop, intended to fetch any row */ /* we are now trying to fetch the next available row */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) { /* there are no more rows to fetch - we can stop looping */ break; } if (ret == SQLITE_ROW) { /* ok, we've just fetched a valid row to process */ row_no++; printf ("row #%d\n", row_no); for (ic = 0; ic < n_columns; ic++) { /* and now we'll fetch column values for each column we'll then get: - the column name - a column value, that can be of type: SQLITE_NULL, SQLITE_INTEGER, SQLITE_FLOAT, SQLITE_TEXT or SQLITE_BLOB, according to internal DB storage type */ printf ("\t%-10s = ", sqlite3_column_name (stmt, ic)); switch (sqlite3_column_type (stmt, ic)) { case SQLITE_NULL: printf ("NULL"); break; case SQLITE_INTEGER: printf ("%d", sqlite3_column_int (stmt, ic)); break; case SQLITE_FLOAT: printf ("%1.4f", sqlite3_column_double (stmt, ic)); break; case SQLITE_TEXT: printf ("'%s'", sqlite3_column_text (stmt, ic)); break; case SQLITE_BLOB: blob = sqlite3_column_blob (stmt, ic); blob_size = sqlite3_column_bytes (stmt, ic); /* checking if this BLOB actually is a GEOMETRY */ geom = gaiaFromSpatiaLiteBlobWkb (blob, blob_size); if (!geom) { /* for sure this one is not a GEOMETRY */ printf ("BLOB [%d bytes]", blob_size); } else { geom_type = gaiaGeometryType (geom); if (geom_type == GAIA_UNKNOWN) printf ("EMPTY or NULL GEOMETRY"); else { char *geom_name; if (geom_type == GAIA_POINT) geom_name = "POINT"; if (geom_type == GAIA_LINESTRING) geom_name = "LINESTRING"; if (geom_type == GAIA_POLYGON) geom_name = "POLYGON"; if (geom_type == GAIA_MULTIPOINT) geom_name = "MULTIPOINT"; if (geom_type == GAIA_MULTILINESTRING) geom_name = "MULTILINESTRING"; if (geom_type == GAIA_MULTIPOLYGON) geom_name = "MULTIPOLYGON"; if (geom_type == GAIA_GEOMETRYCOLLECTION) geom_name = "GEOMETRYCOLLECTION"; printf ("%s SRID=%d", geom_name, geom->Srid); if (geom_type == GAIA_LINESTRING || geom_type == GAIA_MULTILINESTRING) { #ifndef OMIT_GEOS /* GEOS is required */ gaiaGeomCollLength (geom, &measure); printf (" length=%1.2f", measure); #else printf (" length=?? [no GEOS support available]"); #endif /* GEOS enabled/disabled */ } if (geom_type == GAIA_POLYGON || geom_type == GAIA_MULTIPOLYGON) { #ifndef OMIT_GEOS /* GEOS is required */ gaiaGeomCollArea (geom, &measure); printf (" area=%1.2f", measure); #else printf ("area=?? [no GEOS support available]"); #endif /* GEOS enabled/disabled */ } } /* we have now to free the GEOMETRY */ gaiaFreeGeomColl (geom); } break; }; printf ("\n"); } if (row_no >= 5) { /* we'll exit the loop after the first 5 rows - this is only a demo :-) */ break; } } else { /* some unexpected error occurred */ printf ("sqlite3_step() error: %s\n", sqlite3_errmsg (handle)); sqlite3_finalize (stmt); goto abort; } } /* we have now to finalize the query [memory cleanup] */ sqlite3_finalize (stmt); printf ("\n\n"); } /* disconnecting the test DB */ ret = sqlite3_close (handle); if (ret != SQLITE_OK) { printf ("close() error: %s\n", sqlite3_errmsg (handle)); return -1; } /* freeing the internal-cache memory block */ spatialite_cleanup_ex (cache); printf ("\n\nsample successfully terminated\n"); /* we have to free the dynamic pointer array used to store geotable names */ for (i = 0; i < n_geotables; i++) { /* freeing each tablename */ free (p_geotables[i]); } free (p_geotables); return 0; abort: sqlite3_close (handle); /* freeing the internal-cache memory block */ spatialite_cleanup_ex (cache); if (p_geotables) { /* we have to free the dynamic pointer array used to store geotable names */ for (i = 0; i < n_geotables; i++) { /* freeing each tablename */ free (p_geotables[i]); } free (p_geotables); } return -1; } libspatialite-4.1.1/examples/examples.doxy0000664000175000017500000005453712163502133015641 00000000000000/** \example demo1.c This is a sample C source showing how to use SQLite / SpatiaLite from C. This program shows the basic functionality that will be required for most SpatiaLite programs: - how to connect an SQLite+SpatiaLite database - executing an SQL query - fetching values from a result set - transforming BLOB-values into GEOMETRY - elementary processing GEOMETRY The typical output of this demo is shown below, when run against the sample database. \verbatim $ ./demo1 test-2.3.sqlite SQLite version: 3.7.4 SpatiaLite version: 3.0.0-beta1 ========= table 'HighWays' ======================== row #1 PK_UID = 1 Name = 'Unknown' Geometry = LINESTRING SRID=32632 length=8697.57 row #2 PK_UID = 2 Name = 'Unknown' Geometry = LINESTRING SRID=32632 length=39.79 row #3 PK_UID = 3 Name = 'Unknown' Geometry = LINESTRING SRID=32632 length=14610.39 row #4 PK_UID = 4 Name = 'Unknown' Geometry = LINESTRING SRID=32632 length=878.01 row #5 PK_UID = 5 Name = 'Unknown' Geometry = LINESTRING SRID=32632 length=10.05 ========= table 'Regions' ======================== row #1 PK_UID = 1 Name = 'VENETO' Geometry = MULTIPOLYGON SRID=32632 area=646397.81 row #2 PK_UID = 2 Name = 'VENETO' Geometry = MULTIPOLYGON SRID=32632 area=1290337.69 row #3 PK_UID = 3 Name = 'VENETO' Geometry = MULTIPOLYGON SRID=32632 area=8784619.92 row #4 PK_UID = 4 Name = 'VENETO' Geometry = MULTIPOLYGON SRID=32632 area=530524.68 row #5 PK_UID = 5 Name = 'LIGURIA' Geometry = MULTIPOLYGON SRID=32632 area=5450277374.12 ========= table 'Towns' ======================== row #1 PK_UID = 1 Name = 'Brozolo' Peoples = 435 LocalCounc = 1 County = 0 Region = 0 Geometry = POINT SRID=32632 row #2 PK_UID = 2 Name = 'Campiglione-Fenile' Peoples = 1284 LocalCounc = 1 County = 0 Region = 0 Geometry = POINT SRID=32632 row #3 PK_UID = 3 Name = 'Canischio' Peoples = 274 LocalCounc = 1 County = 0 Region = 0 Geometry = POINT SRID=32632 row #4 PK_UID = 4 Name = 'Cavagnolo' Peoples = 2281 LocalCounc = 1 County = 0 Region = 0 Geometry = POINT SRID=32632 row #5 PK_UID = 5 Name = 'Magliano Alfieri' Peoples = 1674 LocalCounc = 1 County = 0 Region = 0 Geometry = POINT SRID=32632 sample successfully terminated \endverbatim */ /** \example demo2.c This is a sample C source showing how to manipulate GEOMETRY within Spatialite. It essentially follows on from the functionality shown in the demo1.c example, and covers: - creating geometries - exploring geometries - querying the basic properties of a geometry Note that this does not require a database command line argument. Here is a typical run: \verbatim $ ./demo2 step#1: POINT Dimension=0 IsValid=1 POINT 0/1 x=1.5000 y=2.7500 step#2: LINESTRING Dimension=1 IsValid=1 LINESTRING 0/1 has 5 vertices vertex 0/5 x=1.0000 y=1.0000 vertex 1/5 x=2.0000 y=1.0000 vertex 2/5 x=2.0000 y=2.0000 vertex 3/5 x=100.0000 y=2.0000 vertex 4/5 x=100.0000 y=100.0000 step#3: POLYGON Dimension=2 IsValid=1 POLYGON 0/1 has 2 holes ExteriorRing has 5 vertices vertex 0/5 x=0.0000 y=0.0000 vertex 1/5 x=50.0000 y=0.0000 vertex 2/5 x=50.0000 y=50.0000 vertex 3/5 x=0.0000 y=50.0000 vertex 4/5 x=0.0000 y=0.0000 InteriorRing 0/2 has 5 vertices vertex 0/5 x=40.0000 y=40.0000 vertex 1/5 x=41.0000 y=40.0000 vertex 2/5 x=41.0000 y=41.0000 vertex 3/5 x=40.0000 y=41.0000 vertex 4/5 x=40.0000 y=40.0000 InteriorRing 1/2 has 5 vertices vertex 0/5 x=30.0000 y=30.0000 vertex 1/5 x=31.0000 y=30.0000 vertex 2/5 x=31.0000 y=31.0000 vertex 3/5 x=30.0000 y=31.0000 vertex 4/5 x=30.0000 y=30.0000 step#4: MULTIPOINT Dimension=0 IsValid=1 POINT 0/5 x=5.0000 y=5.0000 POINT 1/5 x=15.0000 y=5.0000 POINT 2/5 x=5.0000 y=15.0000 POINT 3/5 x=25.0000 y=5.0000 POINT 4/5 x=5.0000 y=25.0000 step#5: MULTILINESTRING Dimension=1 IsValid=1 LINESTRING 0/2 has 2 vertices vertex 0/2 x=30.0000 y=10.0000 vertex 1/2 x=10.0000 y=30.0000 LINESTRING 1/2 has 2 vertices vertex 0/2 x=40.0000 y=50.0000 vertex 1/2 x=50.0000 y=40.0000 step#6: MULTIPOLYGON Dimension=2 IsValid=1 POLYGON 0/2 has 0 holes ExteriorRing has 5 vertices vertex 0/5 x=60.0000 y=60.0000 vertex 1/5 x=70.0000 y=60.0000 vertex 2/5 x=70.0000 y=70.0000 vertex 3/5 x=60.0000 y=70.0000 vertex 4/5 x=60.0000 y=60.0000 POLYGON 1/2 has 0 holes ExteriorRing has 5 vertices vertex 0/5 x=80.0000 y=80.0000 vertex 1/5 x=90.0000 y=80.0000 vertex 2/5 x=90.0000 y=90.0000 vertex 3/5 x=80.0000 y=90.0000 vertex 4/5 x=80.0000 y=80.0000 step#7: GEOMETRYCOLLECTION Dimension=2 IsValid=1 POINT 0/2 x=100.0000 y=100.0000 POINT 1/2 x=100.0000 y=0.0000 LINESTRING 0/2 has 2 vertices vertex 0/2 x=130.0000 y=110.0000 vertex 1/2 x=110.0000 y=130.0000 LINESTRING 1/2 has 2 vertices vertex 0/2 x=140.0000 y=150.0000 vertex 1/2 x=150.0000 y=140.0000 POLYGON 0/2 has 0 holes ExteriorRing has 5 vertices vertex 0/5 x=160.0000 y=160.0000 vertex 1/5 x=170.0000 y=160.0000 vertex 2/5 x=170.0000 y=170.0000 vertex 3/5 x=160.0000 y=170.0000 vertex 4/5 x=160.0000 y=160.0000 POLYGON 1/2 has 0 holes ExteriorRing has 5 vertices vertex 0/5 x=180.0000 y=180.0000 vertex 1/5 x=190.0000 y=180.0000 vertex 2/5 x=190.0000 y=190.0000 vertex 3/5 x=180.0000 y=190.0000 vertex 4/5 x=180.0000 y=180.0000 step#8: checking WKT representations GEOMETRYCOLLECTION(POINT(1.5 2.75)) GEOMETRYCOLLECTION(LINESTRING(1 1, 2 1, 2 2, 100 2, 100 100)) GEOMETRYCOLLECTION(POLYGON((0 0, 50 0, 50 50, 0 50, 0 0), (40 40, 41 40, 41 41, 40 41, 40 40), (30 30, 31 30, 31 31, 30 31, 30 30))) GEOMETRYCOLLECTION(POINT(5 5), POINT(15 5), POINT(5 15), POINT(25 5), POINT(5 25)) GEOMETRYCOLLECTION(LINESTRING(30 10, 10 30), LINESTRING(40 50, 50 40)) GEOMETRYCOLLECTION(POLYGON((60 60, 70 60, 70 70, 60 70, 60 60)), POLYGON((80 80, 90 80, 90 90, 80 90, 80 80))) GEOMETRYCOLLECTION(POINT(100 100), POINT(100 0), LINESTRING(130 110, 110 130), LINESTRING(140 150, 150 140), POLYGON((160 160, 170 160, 170 170, 160 170, 160 160)), POLYGON((180 180, 190 180, 190 190, 180 190, 180 180))) \endverbatim */ /** \example demo3.c This is a sample C source showing how to use the SQLite / SpatiaLite Spatial Index [RTree]. It follows on from demo1.c. The main steps in this example are: - creating a new database - creating a sample geo-table - inserting 1 million rows into this table - performing some spatial queries without Spatial Indexing - performing the same queries using the Spatial Index The typical output of this demo is shown below (where test.sqlite does not exist before the run). \verbatim $ ./demo3 test.sqlite SQLite version: 3.7.4 SpatiaLite version: 3.0.0-beta1 now we are going to insert 1 million POINTs; wait, please ... insert row: 25000 [elapsed time: 1.910] insert row: 50000 [elapsed time: 4.050] insert row: 75000 [elapsed time: 6.270] insert row: 100000 [elapsed time: 8.460] insert row: 125000 [elapsed time: 10.740] insert row: 150000 [elapsed time: 12.910] insert row: 175000 [elapsed time: 15.080] insert row: 200000 [elapsed time: 17.350] insert row: 225000 [elapsed time: 19.610] insert row: 250000 [elapsed time: 21.890] insert row: 275000 [elapsed time: 24.170] insert row: 300000 [elapsed time: 26.380] insert row: 325000 [elapsed time: 28.650] insert row: 350000 [elapsed time: 30.900] insert row: 375000 [elapsed time: 33.130] insert row: 400000 [elapsed time: 35.340] insert row: 425000 [elapsed time: 37.540] insert row: 450000 [elapsed time: 39.760] insert row: 475000 [elapsed time: 41.980] insert row: 500000 [elapsed time: 44.220] insert row: 525000 [elapsed time: 46.500] insert row: 550000 [elapsed time: 48.740] insert row: 575000 [elapsed time: 50.960] insert row: 600000 [elapsed time: 53.190] insert row: 625000 [elapsed time: 55.430] insert row: 650000 [elapsed time: 57.670] insert row: 675000 [elapsed time: 59.900] insert row: 700000 [elapsed time: 62.130] insert row: 725000 [elapsed time: 64.400] insert row: 750000 [elapsed time: 66.660] insert row: 775000 [elapsed time: 68.900] insert row: 800000 [elapsed time: 71.140] insert row: 825000 [elapsed time: 73.410] insert row: 850000 [elapsed time: 75.670] insert row: 875000 [elapsed time: 77.940] insert row: 900000 [elapsed time: 80.230] insert row: 925000 [elapsed time: 82.540] insert row: 950000 [elapsed time: 84.840] insert row: 975000 [elapsed time: 87.150] insert row: 1000000 [elapsed time: 89.450] performing test#0 - not using Spatial Index Count(*) = 25 [elapsed time: 1.2700] performing test#1 - not using Spatial Index Count(*) = 25 [elapsed time: 1.2700] performing test#2 - not using Spatial Index Count(*) = 25 [elapsed time: 1.2900] performing test#0 - using the R*Tree Spatial Index Count(*) = 25 [elapsed time: 0.0000] performing test#1 - using the R*Tree Spatial Index Count(*) = 25 [elapsed time: 0.0000] performing test#2 - using the R*Tree Spatial Index Count(*) = 25 [elapsed time: 0.0000] sample successfully terminated \endverbatim Note the significant difference in elapsed time associated with use of an appropriate index. */ /** \example demo4.c This is a sample C source showing how to use the SQLite / SpatiaLite Spatial Index [MbrCache]. It is very similar to demo3.c, but uses a different indexing approach The main steps in this example are: - creating a new database - creating a sample geo-table - inserting 1 million rows into this table - performing some spatial queries without Spatial Indexing - performing the same queries using the Spatial Index The typical output of this demo is shown below (where test.sqlite does not exist before the run). \verbatim $ ./demo4 test.sqlite SQLite version: 3.7.4 SpatiaLite version: 3.0.0-beta1 now we are going to insert 1 million POINTs; wait, please ... insert row: 25000 [elapsed time: 0.370] insert row: 50000 [elapsed time: 0.820] insert row: 75000 [elapsed time: 1.280] insert row: 100000 [elapsed time: 1.750] insert row: 125000 [elapsed time: 2.210] insert row: 150000 [elapsed time: 2.690] insert row: 175000 [elapsed time: 3.180] insert row: 200000 [elapsed time: 3.670] insert row: 225000 [elapsed time: 4.210] insert row: 250000 [elapsed time: 4.720] insert row: 275000 [elapsed time: 5.240] insert row: 300000 [elapsed time: 5.780] insert row: 325000 [elapsed time: 6.330] insert row: 350000 [elapsed time: 6.910] insert row: 375000 [elapsed time: 7.510] insert row: 400000 [elapsed time: 8.120] insert row: 425000 [elapsed time: 8.750] insert row: 450000 [elapsed time: 9.420] insert row: 475000 [elapsed time: 10.120] insert row: 500000 [elapsed time: 10.850] insert row: 525000 [elapsed time: 11.610] insert row: 550000 [elapsed time: 12.390] insert row: 575000 [elapsed time: 13.200] insert row: 600000 [elapsed time: 14.040] insert row: 625000 [elapsed time: 14.900] insert row: 650000 [elapsed time: 15.790] insert row: 675000 [elapsed time: 16.700] insert row: 700000 [elapsed time: 17.650] insert row: 725000 [elapsed time: 18.620] insert row: 750000 [elapsed time: 19.610] insert row: 775000 [elapsed time: 20.650] insert row: 800000 [elapsed time: 21.700] insert row: 825000 [elapsed time: 22.760] insert row: 850000 [elapsed time: 23.860] insert row: 875000 [elapsed time: 25.060] insert row: 900000 [elapsed time: 26.290] insert row: 925000 [elapsed time: 27.480] insert row: 950000 [elapsed time: 28.760] insert row: 975000 [elapsed time: 30.020] insert row: 1000000 [elapsed time: 31.280] performing test#0 - not using Spatial Index Count(*) = 25 [elapsed time: 1.2500] performing test#1 - not using Spatial Index Count(*) = 25 [elapsed time: 1.2400] performing test#2 - not using Spatial Index Count(*) = 25 [elapsed time: 1.2400] performing test#0 - using the MBR cache Spatial Index Count(*) = 25 [elapsed time: 0.0000] performing test#1 - using the MBR cache Spatial Index Count(*) = 25 [elapsed time: 0.0000] performing test#2 - using the MBR cache Spatial Index Count(*) = 25 [elapsed time: 0.0000] sample successfully terminated \endverbatim As for demo3.c, note the significant speed difference between the indexed and non-indexed queries. */ /** \example demo5.c This is a sample C source showing how to use the SpatiaLite's API gaiaGetVectorLayersList(), i.e. the one gathering statistic infos for Vector Layers. The typical output of this demo is shown below. By simply specifying a DB-path demo5 will print the complete list of all Vector Layers found in that DB: \verbatim $ ./demo5 /home/sandro/db-4.0.sqlite SQLite version: 3.7.11 SpatiaLite version: 4.0.0-RC2 ****** VectorLayersList (mode=FAST) ********* VectorLayer: Type=BasedOnSqlTable TableName=com2011 GeometryName=geometry SRID=23032 GeometryType=MULTIPOLYGON Dims=XY RowCount=8094 ExtentMin 313360.999831 / 3933878.175118 ExtentMax 1312106.500031 / 5220492.095518 ReadOnly=FALSE Hidden=FALSE VectorLayer: Type=BasedOnSqlTable TableName=prov2011 GeometryName=geometry SRID=23032 GeometryType=MULTIPOLYGON Dims=XY RowCount=110 ExtentMin 313360.999831 / 3933878.175118 ExtentMax 1312106.500031 / 5220491.200018 ReadOnly=FALSE Hidden=FALSE VectorLayer: Type=BasedOnSqlTable TableName=reg2011 GeometryName=geometry SRID=23032 GeometryType=MULTIPOLYGON Dims=XY RowCount=20 ExtentMin 313360.999831 / 3933878.175118 ExtentMax 1312106.500031 / 5220491.200018 ReadOnly=FALSE Hidden=FALSE VectorLayer: Type=BasedOnSqlView TableName=com_prov GeometryName=geometry SRID=23032 GeometryType=MULTIPOLYGON Dims=XY RowCount=8094 ExtentMin 313360.999831 / 3933878.175118 ExtentMax 1312106.500031 / 5220492.095518 ReadOnly=FALSE Hidden=FALSE VectorLayer: Type=BasedOnSqlView TableName=prov_reg GeometryName=geometry SRID=23032 GeometryType=MULTIPOLYGON Dims=XY RowCount=110 ExtentMin 313360.999831 / 3933878.175118 ExtentMax 1312106.500031 / 5220491.200018 ReadOnly=TRUE Hidden=FALSE VectorLayer: Type=BasedOnVirtualShape TableName=com2011a GeometryName=geometry SRID=23032 GeometryType=MULTIPOLYGON Dims=XY RowCount=8094 ExtentMin 313360.999831 / 3933878.175118 ExtentMax 1312106.500031 / 5220492.095518 VectorLayer: Type=BasedOnVirtualShape TableName=prov2011a GeometryName=geometry SRID=23032 GeometryType=MULTIPOLYGON Dims=XY RowCount=110 ExtentMin 313360.999831 / 3933878.175118 ExtentMax 1312106.500031 / 5220491.200018 VectorLayer: Type=BasedOnVirtualShape TableName=reg2011a GeometryName=geometry SRID=23032 GeometryType=MULTIPOLYGON Dims=XY RowCount=20 ExtentMin 313360.999831 / 3933878.175118 ExtentMax 1312106.500031 / 5220491.200018 ****** VectorLayersList (mode=PRECISE) ********* VectorLayer: Type=BasedOnSqlTable TableName=com2011 GeometryName=geometry SRID=23032 GeometryType=MULTIPOLYGON Dims=XY RowCount=8094 ExtentMin 313360.999831 / 3933878.175118 ExtentMax 1312106.500031 / 5220492.095518 ReadOnly=FALSE Hidden=FALSE VectorLayer: Type=BasedOnSqlTable TableName=prov2011 GeometryName=geometry SRID=23032 GeometryType=MULTIPOLYGON Dims=XY RowCount=110 ExtentMin 313360.999831 / 3933878.175118 ExtentMax 1312106.500031 / 5220491.200018 ReadOnly=FALSE Hidden=FALSE VectorLayer: Type=BasedOnSqlTable TableName=reg2011 GeometryName=geometry SRID=23032 GeometryType=MULTIPOLYGON Dims=XY RowCount=20 ExtentMin 313360.999831 / 3933878.175118 ExtentMax 1312106.500031 / 5220491.200018 ReadOnly=FALSE Hidden=FALSE VectorLayer: Type=BasedOnSqlView TableName=com_prov GeometryName=geometry SRID=23032 GeometryType=MULTIPOLYGON Dims=XY RowCount=8094 ExtentMin 313360.999831 / 3933878.175118 ExtentMax 1312106.500031 / 5220492.095518 ReadOnly=FALSE Hidden=FALSE VectorLayer: Type=BasedOnSqlView TableName=prov_reg GeometryName=geometry SRID=23032 GeometryType=MULTIPOLYGON Dims=XY RowCount=110 ExtentMin 313360.999831 / 3933878.175118 ExtentMax 1312106.500031 / 5220491.200018 ReadOnly=TRUE Hidden=FALSE VectorLayer: Type=BasedOnVirtualShape TableName=com2011a GeometryName=geometry SRID=23032 GeometryType=MULTIPOLYGON Dims=XY RowCount=8094 ExtentMin 313360.999831 / 3933878.175118 ExtentMax 1312106.500031 / 5220492.095518 VectorLayer: Type=BasedOnVirtualShape TableName=prov2011a GeometryName=geometry SRID=23032 GeometryType=MULTIPOLYGON Dims=XY RowCount=110 ExtentMin 313360.999831 / 3933878.175118 ExtentMax 1312106.500031 / 5220491.200018 VectorLayer: Type=BasedOnVirtualShape TableName=reg2011a GeometryName=geometry SRID=23032 GeometryType=MULTIPOLYGON Dims=XY RowCount=20 ExtentMin 313360.999831 / 3933878.175118 ExtentMax 1312106.500031 / 5220491.200018 sample successfully terminated \endverbatim By optionally specifying a Layer name demo5 will print a more detailed list for that single Layer: \verbatim $ ./demo5 /home/sandro/db-4.0.sqlite com2011 SQLite version: 3.7.11 SpatiaLite version: 4.0.0-RC2 ****** VectorLayersList (mode=FAST) ********* VectorLayer: Type=BasedOnSqlTable TableName=com2011 GeometryName=geometry SRID=23032 GeometryType=MULTIPOLYGON Dims=XY RowCount=8094 ExtentMin 313360.999831 / 3933878.175118 ExtentMax 1312106.500031 / 5220492.095518 ReadOnly=FALSE Hidden=FALSE Field #0) FieldName=PRO_COM IntegerValues=8094 IntRange 1001 / 110010 Field #1) FieldName=COD_REG IntegerValues=8094 IntRange 1 / 20 Field #2) FieldName=COD_PRO IntegerValues=8094 IntRange 1 / 110 Field #3) FieldName=NOME_COM TextValues=8094 MaxSize/Length=35 Field #4) FieldName=NOME_TED TextValues=8094 MaxSize/Length=36 Field #5) FieldName=SHAPE_Leng DoubleValues=8094 DoubleRange 1566.303618 / 327044.574999 Field #6) FieldName=SHAPE_Area DoubleValues=8094 DoubleRange 120613.967719 / 1287358944.600000 Field #7) FieldName=Geometry BlobValues=8094 MaxSize/Length=222151 ****** VectorLayersList (mode=PRECISE) ********* VectorLayer: Type=BasedOnSqlTable TableName=com2011 GeometryName=geometry SRID=23032 GeometryType=MULTIPOLYGON Dims=XY RowCount=8094 ExtentMin 313360.999831 / 3933878.175118 ExtentMax 1312106.500031 / 5220492.095518 ReadOnly=FALSE Hidden=FALSE Field #0) FieldName=PRO_COM IntegerValues=8094 IntRange 1001 / 110010 Field #1) FieldName=COD_REG IntegerValues=8094 IntRange 1 / 20 Field #2) FieldName=COD_PRO IntegerValues=8094 IntRange 1 / 110 Field #3) FieldName=NOME_COM TextValues=8094 MaxSize/Length=35 Field #4) FieldName=NOME_TED TextValues=8094 MaxSize/Length=36 Field #5) FieldName=SHAPE_Leng DoubleValues=8094 DoubleRange 1566.303618 / 327044.574999 Field #6) FieldName=SHAPE_Area DoubleValues=8094 DoubleRange 120613.967719 / 1287358944.600000 Field #7) FieldName=Geometry BlobValues=8094 MaxSize/Length=222151 sample successfully terminated \endverbatim */ libspatialite-4.1.1/examples/demo4.c0000664000175000017500000002137512163502133014264 00000000000000/* demo4.c Author: Sandro Furieri a-furieri@lqt.it This software is provided 'as-is', without any express or implied warranty. In no event will the author be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely */ #include #include #include #include /* these headers are required in order to support SQLite/SpatiaLite */ #include #include #include int main (int argc, char *argv[]) { int ret; sqlite3 *handle; sqlite3_stmt *stmt; char sql[256]; char *err_msg = NULL; double x; double y; int pk; int ix; int iy; gaiaGeomCollPtr geo = NULL; unsigned char *blob; int blob_size; int i; char **results; int n_rows; int n_columns; char *count; clock_t t0; clock_t t1; void *cache; if (argc != 2) { fprintf (stderr, "usage: %s test_db_path\n", argv[0]); return -1; } /* trying to connect the test DB: - this demo is intended to create a new, empty database */ ret = sqlite3_open_v2 (argv[1], &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { printf ("cannot open '%s': %s\n", argv[1], sqlite3_errmsg (handle)); sqlite3_close (handle); return -1; } cache = spatialite_alloc_connection (); spatialite_init_ex (handle, cache, 0); /* showing the SQLite version */ printf ("SQLite version: %s\n", sqlite3_libversion ()); /* showing the SpatiaLite version */ printf ("SpatiaLite version: %s\n", spatialite_version ()); printf ("\n\n"); /* we are supposing this one is an empty database, so we have to create the Spatial Metadata */ strcpy (sql, "SELECT InitSpatialMetadata(1)"); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { /* some error occurred */ printf ("InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free (err_msg); goto abort; } /* now we can create the test table for simplicity we'll define only one column, the primary key */ strcpy (sql, "CREATE TABLE test ("); strcat (sql, "PK INTEGER NOT NULL PRIMARY KEY)"); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { /* an error occurred */ printf ("CREATE TABLE 'test' error: %s\n", err_msg); sqlite3_free (err_msg); goto abort; } /* ... we'll add a Geometry column of POINT type to the test table */ strcpy (sql, "SELECT AddGeometryColumn('test', 'geom', 3003, 'POINT', 2)"); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { /* an error occurred */ printf ("AddGeometryColumn() error: %s\n", err_msg); sqlite3_free (err_msg); goto abort; } /* and finally we'll enable this geo-column to have a Spatial Index based on MBR caching */ strcpy (sql, "SELECT CreateMbrCache('test', 'geom')"); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { /* an error occurred */ printf ("CreateMbrCache() error: %s\n", err_msg); sqlite3_free (err_msg); goto abort; } printf ("\nnow we are going to insert 1 million POINTs; wait, please ...\n\n"); t0 = clock (); /* beginning a transaction *** this step is absolutely critical *** the SQLite engine is a TRANSACTIONAL one the whole batch of INSERTs has to be performed as an unique transaction, otherwise performance will be surely very poor */ strcpy (sql, "BEGIN"); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { /* an error occurred */ printf ("BEGIN error: %s\n", err_msg); sqlite3_free (err_msg); goto abort; } /* preparing to populate the test table we'll use a Prepared Statement we can reuse in order to insert each row */ strcpy (sql, "INSERT INTO test (pk, geom) VALUES (?, ?)"); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { /* an error occurred */ printf ("INSERT SQL error: %s\n", sqlite3_errmsg (handle)); goto abort; } pk = 0; for (ix = 0; ix < 1000; ix++) { x = 1000000.0 + (ix * 10.0); for (iy = 0; iy < 1000; iy++) { /* this double loop will insert 1 million rows into the the test table */ y = 4000000.0 + (iy * 10.0); pk++; if ((pk % 25000) == 0) { t1 = clock (); printf ("insert row: %d\t\t[elapsed time: %1.3f]\n", pk, (double) (t1 - t0) / CLOCKS_PER_SEC); } /* preparing the geometry to insert */ geo = gaiaAllocGeomColl (); geo->Srid = 3003; gaiaAddPointToGeomColl (geo, x, y); /* transforming this geometry into the SpatiaLite BLOB format */ gaiaToSpatiaLiteBlobWkb (geo, &blob, &blob_size); /* we can now destroy the geometry object */ gaiaFreeGeomColl (geo); /* resetting Prepared Statement and bindings */ sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); /* binding parameters to Prepared Statement */ sqlite3_bind_int64 (stmt, 1, pk); sqlite3_bind_blob (stmt, 2, blob, blob_size, free); /* performing actual row insert */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { /* an unexpected error occurred */ printf ("sqlite3_step() error: %s\n", sqlite3_errmsg (handle)); sqlite3_finalize (stmt); goto abort; } } } /* we have now to finalize the query [memory cleanup] */ sqlite3_finalize (stmt); /* committing the transaction *** this step is absolutely critical *** if we don't confirm the still pending transaction, any update will be lost */ strcpy (sql, "COMMIT"); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { /* an error occurred */ printf ("COMMIT error: %s\n", err_msg); sqlite3_free (err_msg); goto abort; } /* now we'll optimize the table */ strcpy (sql, "ANALYZE test"); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { /* an error occurred */ printf ("ANALYZE error: %s\n", err_msg); sqlite3_free (err_msg); goto abort; } for (ix = 0; ix < 3; ix++) { printf ("\nperforming test#%d - not using Spatial Index\n", ix); /* now we'll perform the spatial query WITHOUT using the Spatial Index we'll loop 3 times in order to avoid buffering-caching side effects */ strcpy (sql, "SELECT Count(*) FROM test "); strcat (sql, "WHERE MbrWithin(geom, BuildMbr("); strcat (sql, "1000400.5, 4000400.5, "); strcat (sql, "1000450.5, 4000450.5))"); t0 = clock (); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, &err_msg); if (ret != SQLITE_OK) { /* an error occurred */ printf ("NoSpatialIndex SQL error: %s\n", err_msg); sqlite3_free (err_msg); goto abort; } count = ""; for (i = 1; i <= n_rows; i++) { count = results[(i * n_columns) + 0]; } t1 = clock (); printf ("Count(*) = %d\t\t[elapsed time: %1.4f]\n", atoi (count), (double) (t1 - t0) / CLOCKS_PER_SEC); /* we can now free the table results */ sqlite3_free_table (results); } for (ix = 0; ix < 3; ix++) { printf ("\nperforming test#%d - using the MBR cache Spatial Index\n", ix); /* now we'll perform the spatial query USING the MBR cache Spatial Index we'll loop 3 times in order to avoid buffering-caching side effects */ strcpy (sql, "SELECT Count(*) FROM test "); strcat (sql, "WHERE ROWID IN ("); strcat (sql, "SELECT rowid FROM cache_test_geom WHERE "); strcat (sql, "mbr = FilterMbrWithin(1000400.5, 4000400.5, 1000450.5, 4000450.5))"); /* YES, this query is a very unhappy one the idea is simply to simulate exactly the same conditions as above */ t0 = clock (); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, &err_msg); if (ret != SQLITE_OK) { /* an error occurred */ printf ("SpatialIndex SQL error: %s\n", err_msg); sqlite3_free (err_msg); goto abort; } count = ""; for (i = 1; i <= n_rows; i++) { count = results[(i * n_columns) + 0]; } t1 = clock (); printf ("Count(*) = %d\t\t[elapsed time: %1.4f]\n", atoi (count), (double) (t1 - t0) / CLOCKS_PER_SEC); /* we can now free the table results */ sqlite3_free_table (results); } /* disconnecting the test DB */ ret = sqlite3_close (handle); if (ret != SQLITE_OK) { printf ("close() error: %s\n", sqlite3_errmsg (handle)); return -1; } printf ("\n\nsample successfully terminated\n"); spatialite_cleanup_ex (cache); return 0; abort: sqlite3_close (handle); spatialite_cleanup_ex (cache); return -1; } libspatialite-4.1.1/Doxyfile.in0000664000175000017500000021072212163502133013401 00000000000000# Doxyfile 1.7.3 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project. # # All text after a hash (#) is considered a comment and will be ignored. # The format is: # TAG = value [value, ...] # For lists items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (" "). #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- # This tag specifies the encoding used for all characters in the config file # that follow. The default is UTF-8 which is also the encoding used for all # text before the first occurrence of this tag. Doxygen uses libiconv (or the # iconv built into libc) for the transcoding. See # http://www.gnu.org/software/libiconv for the list of possible encodings. DOXYFILE_ENCODING = UTF-8 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded # by quotes) that should identify the project. PROJECT_NAME = SpatiaLite # The PROJECT_NUMBER tag can be used to enter a project or revision number. # This could be handy for archiving the generated documentation or # if some version control system is used. PROJECT_NUMBER = @VERSION@ # Using the PROJECT_BRIEF tag one can provide an optional one line description for a project that appears at the top of each page and should give viewer a quick idea about the purpose of the project. Keep the description short. PROJECT_BRIEF = # With the PROJECT_LOGO tag one can specify an logo or icon that is # included in the documentation. The maximum height of the logo should not # exceed 55 pixels and the maximum width should not exceed 200 pixels. # Doxygen will copy the logo to the output directory. PROJECT_LOGO = # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. # If a relative path is entered, it will be relative to the location # where doxygen was started. If left blank the current directory will be used. OUTPUT_DIRECTORY = # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create # 4096 sub-directories (in 2 levels) under the output directory of each output # format and will distribute the generated files over these directories. # Enabling this option can be useful when feeding doxygen a huge amount of # source files, where putting all generated files in the same directory would # otherwise cause performance problems for the file system. CREATE_SUBDIRS = NO # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # The default language is English, other supported languages are: # Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, # Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, # Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English # messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, # Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak, # Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. OUTPUT_LANGUAGE = English # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will # include brief member descriptions after the members that are listed in # the file and class documentation (similar to JavaDoc). # Set to NO to disable this. BRIEF_MEMBER_DESC = YES # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend # the brief description of a member or function before the detailed description. # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. REPEAT_BRIEF = YES # This tag implements a quasi-intelligent brief description abbreviator # that is used to form the text in various listings. Each string # in this list, if found as the leading text of the brief description, will be # stripped from the text and the result after processing the whole list, is # used as the annotated text. Otherwise, the brief description is used as-is. # If left blank, the following values are used ("$name" is automatically # replaced with the name of the entity): "The $name class" "The $name widget" # "The $name file" "is" "provides" "specifies" "contains" # "represents" "a" "an" "the" ABBREVIATE_BRIEF = # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # Doxygen will generate a detailed section even if there is only a brief # description. ALWAYS_DETAILED_SEC = NO # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all # inherited members of a class in the documentation of that class as if those # members were ordinary class members. Constructors, destructors and assignment # operators of the base classes will not be shown. INLINE_INHERITED_MEMB = NO # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full # path before files name in the file list and in the header files. If set # to NO the shortest path that makes the file name unique will be used. FULL_PATH_NAMES = YES # If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag # can be used to strip a user-defined part of the path. Stripping is # only done if one of the specified strings matches the left-hand part of # the path. The tag can be used to show relative paths in the file list. # If left blank the directory from which doxygen is run is used as the # path to strip. STRIP_FROM_PATH = # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of # the path mentioned in the documentation of a class, which tells # the reader which header file to include in order to use a class. # If left blank only the name of the header file containing the class # definition is used. Otherwise one should specify the include paths that # are normally passed to the compiler using the -I flag. STRIP_FROM_INC_PATH = # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter # (but less readable) file names. This can be useful if your file system # doesn't support long names like on DOS, Mac, or CD-ROM. SHORT_NAMES = NO # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen # will interpret the first line (until the first dot) of a JavaDoc-style # comment as the brief description. If set to NO, the JavaDoc # comments will behave just like regular Qt-style comments # (thus requiring an explicit @brief command for a brief description.) JAVADOC_AUTOBRIEF = YES # If the QT_AUTOBRIEF tag is set to YES then Doxygen will # interpret the first line (until the first dot) of a Qt-style # comment as the brief description. If set to NO, the comments # will behave just like regular Qt-style comments (thus requiring # an explicit \brief command for a brief description.) QT_AUTOBRIEF = NO # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen # treat a multi-line C++ special comment block (i.e. a block of //! or /// # comments) as a brief description. This used to be the default behaviour. # The new default is to treat a multi-line C++ comment block as a detailed # description. Set this tag to YES if you prefer the old behaviour instead. MULTILINE_CPP_IS_BRIEF = NO # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented # member inherits the documentation from any documented member that it # re-implements. INHERIT_DOCS = YES # If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce # a new page for each member. If set to NO, the documentation of a member will # be part of the file/class/namespace that contains it. SEPARATE_MEMBER_PAGES = NO # The TAB_SIZE tag can be used to set the number of spaces in a tab. # Doxygen uses this value to replace tabs by spaces in code fragments. TAB_SIZE = 8 # This tag can be used to specify a number of aliases that acts # as commands in the documentation. An alias has the form "name=value". # For example adding "sideeffect=\par Side Effects:\n" will allow you to # put the command \sideeffect (or @sideeffect) in the documentation, which # will result in a user-defined paragraph with heading "Side Effects:". # You can put \n's in the value part of an alias to insert newlines. ALIASES = # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C # sources only. Doxygen will then generate output that is more tailored for C. # For instance, some of the names that are used will be different. The list # of all members will be omitted, etc. OPTIMIZE_OUTPUT_FOR_C = YES # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java # sources only. Doxygen will then generate output that is more tailored for # Java. For instance, namespaces will be presented as packages, qualified # scopes will look different, etc. OPTIMIZE_OUTPUT_JAVA = NO # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran # sources only. Doxygen will then generate output that is more tailored for # Fortran. OPTIMIZE_FOR_FORTRAN = NO # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL # sources. Doxygen will then generate output that is tailored for # VHDL. OPTIMIZE_OUTPUT_VHDL = NO # Doxygen selects the parser to use depending on the extension of the files it # parses. With this tag you can assign which parser to use for a given extension. # Doxygen has a built-in mapping, but you can override or extend it using this # tag. The format is ext=language, where ext is a file extension, and language # is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C, # C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make # doxygen treat .inc files as Fortran files (default is PHP), and .f files as C # (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions # you also need to set FILE_PATTERNS otherwise the files are not read by doxygen. EXTENSION_MAPPING = # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want # to include (a tag file for) the STL sources as input, then you should # set this tag to YES in order to let doxygen match functions declarations and # definitions whose arguments contain STL classes (e.g. func(std::string); v.s. # func(std::string) {}). This also makes the inheritance and collaboration # diagrams that involve STL classes more complete and accurate. BUILTIN_STL_SUPPORT = NO # If you use Microsoft's C++/CLI language, you should set this option to YES to # enable parsing support. CPP_CLI_SUPPORT = NO # Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. # Doxygen will parse them like normal C++ but will assume all classes use public # instead of private inheritance when no explicit protection keyword is present. SIP_SUPPORT = NO # For Microsoft's IDL there are propget and propput attributes to indicate getter # and setter methods for a property. Setting this option to YES (the default) # will make doxygen replace the get and set methods by a property in the # documentation. This will only work if the methods are indeed getting or # setting a simple type. If this is not the case, or you want to show the # methods anyway, you should set this option to NO. IDL_PROPERTY_SUPPORT = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES, then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. DISTRIBUTE_GROUP_DOC = NO # Set the SUBGROUPING tag to YES (the default) to allow class member groups of # the same type (for instance a group of public functions) to be put as a # subgroup of that type (e.g. under the Public Functions section). Set it to # NO to prevent subgrouping. Alternatively, this can be done per class using # the \nosubgrouping command. SUBGROUPING = YES # When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum # is documented as struct, union, or enum with the name of the typedef. So # typedef struct TypeS {} TypeT, will appear in the documentation as a struct # with name TypeT. When disabled the typedef will appear as a member of a file, # namespace, or class. And the struct will be named TypeS. This can typically # be useful for C code in case the coding convention dictates that all compound # types are typedef'ed and only the typedef is referenced, never the tag name. TYPEDEF_HIDES_STRUCT = NO # The SYMBOL_CACHE_SIZE determines the size of the internal cache use to # determine which symbols to keep in memory and which to flush to disk. # When the cache is full, less often used symbols will be written to disk. # For small to medium size projects (<1000 input files) the default value is # probably good enough. For larger projects a too small cache size can cause # doxygen to be busy swapping symbols to and from disk most of the time # causing a significant performance penalty. # If the system has enough physical memory increasing the cache will improve the # performance by keeping more symbols in memory. Note that the value works on # a logarithmic scale so increasing the size by one will roughly double the # memory usage. The cache size is given by this formula: # 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, # corresponding to a cache size of 2^16 = 65536 symbols SYMBOL_CACHE_SIZE = 0 #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in # documentation are documented, even if no documentation was available. # Private class members and static file members will be hidden unless # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES EXTRACT_ALL = NO # If the EXTRACT_PRIVATE tag is set to YES all private members of a class # will be included in the documentation. EXTRACT_PRIVATE = NO # If the EXTRACT_STATIC tag is set to YES all static members of a file # will be included in the documentation. EXTRACT_STATIC = NO # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) # defined locally in source files will be included in the documentation. # If set to NO only classes defined in header files are included. EXTRACT_LOCAL_CLASSES = YES # This flag is only useful for Objective-C code. When set to YES local # methods, which are defined in the implementation section but not in # the interface are included in the documentation. # If set to NO (the default) only methods in the interface are included. EXTRACT_LOCAL_METHODS = NO # If this flag is set to YES, the members of anonymous namespaces will be # extracted and appear in the documentation as a namespace called # 'anonymous_namespace{file}', where file will be replaced with the base # name of the file that contains the anonymous namespace. By default # anonymous namespaces are hidden. EXTRACT_ANON_NSPACES = NO # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all # undocumented members of documented classes, files or namespaces. # If set to NO (the default) these members will be included in the # various overviews, but no documentation section is generated. # This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. # If set to NO (the default) these classes will be included in the various # overviews. This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_CLASSES = NO # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all # friend (class|struct|union) declarations. # If set to NO (the default) these declarations will be included in the # documentation. HIDE_FRIEND_COMPOUNDS = NO # If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any # documentation blocks found inside the body of a function. # If set to NO (the default) these blocks will be appended to the # function's detailed documentation block. HIDE_IN_BODY_DOCS = NO # The INTERNAL_DOCS tag determines if documentation # that is typed after a \internal command is included. If the tag is set # to NO (the default) then the documentation will be excluded. # Set it to YES to include the internal documentation. INTERNAL_DOCS = NO # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate # file names in lower-case letters. If set to YES upper-case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # and Mac users are advised to set this option to NO. CASE_SENSE_NAMES = YES # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen # will show members with their full class and namespace scopes in the # documentation. If set to YES the scope will be hidden. HIDE_SCOPE_NAMES = NO # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen # will put a list of the files that are included by a file in the documentation # of that file. SHOW_INCLUDE_FILES = YES # If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen # will list include files with double quotes in the documentation # rather than with sharp brackets. FORCE_LOCAL_INCLUDES = NO # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] # is inserted in the documentation for inline members. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen # will sort the (detailed) documentation of file and class members # alphabetically by member name. If set to NO the members will appear in # declaration order. SORT_MEMBER_DOCS = YES # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the # brief documentation of file, namespace and class members alphabetically # by member name. If set to NO (the default) the members will appear in # declaration order. SORT_BRIEF_DOCS = NO # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen # will sort the (brief and detailed) documentation of class members so that # constructors and destructors are listed first. If set to NO (the default) # the constructors will appear in the respective orders defined by # SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. # This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO # and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO. SORT_MEMBERS_CTORS_1ST = NO # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the # hierarchy of group names into alphabetical order. If set to NO (the default) # the group names will appear in their defined order. SORT_GROUP_NAMES = NO # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be # sorted by fully-qualified names, including namespaces. If set to # NO (the default), the class list will be sorted only by class name, # not including the namespace part. # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. # Note: This option applies only to the class list, not to the # alphabetical list. SORT_BY_SCOPE_NAME = NO # If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper type resolution of all parameters of a function it will reject a # match between the prototype and the implementation of a member function even if there is only one candidate or it is obvious which candidate to choose by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen # will still accept a match between prototype and implementation in such cases. STRICT_PROTO_MATCHING = NO # The GENERATE_TODOLIST tag can be used to enable (YES) or # disable (NO) the todo list. This list is created by putting \todo # commands in the documentation. GENERATE_TODOLIST = YES # The GENERATE_TESTLIST tag can be used to enable (YES) or # disable (NO) the test list. This list is created by putting \test # commands in the documentation. GENERATE_TESTLIST = YES # The GENERATE_BUGLIST tag can be used to enable (YES) or # disable (NO) the bug list. This list is created by putting \bug # commands in the documentation. GENERATE_BUGLIST = YES # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or # disable (NO) the deprecated list. This list is created by putting # \deprecated commands in the documentation. GENERATE_DEPRECATEDLIST= YES # The ENABLED_SECTIONS tag can be used to enable conditional # documentation sections, marked by \if sectionname ... \endif. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines # the initial value of a variable or macro consists of for it to appear in # the documentation. If the initializer consists of more lines than specified # here it will be hidden. Use a value of 0 to hide initializers completely. # The appearance of the initializer of individual variables and macros in the # documentation can be controlled using \showinitializer or \hideinitializer # command in the documentation regardless of this setting. MAX_INITIALIZER_LINES = 30 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated # at the bottom of the documentation of classes and structs. If set to YES the # list will mention the files that were used to generate the documentation. SHOW_USED_FILES = YES # Set the SHOW_FILES tag to NO to disable the generation of the Files page. # This will remove the Files entry from the Quick Index and from the # Folder Tree View (if specified). The default is YES. SHOW_FILES = YES # Set the SHOW_NAMESPACES tag to NO to disable the generation of the # Namespaces page. # This will remove the Namespaces entry from the Quick Index # and from the Folder Tree View (if specified). The default is YES. SHOW_NAMESPACES = YES # The FILE_VERSION_FILTER tag can be used to specify a program or script that # doxygen should invoke to get the current version for each file (typically from # the version control system). Doxygen will invoke the program by executing (via # popen()) the command , where is the value of # the FILE_VERSION_FILTER tag, and is the name of an input file # provided by doxygen. Whatever the program writes to standard output # is used as the file version. See the manual for examples. FILE_VERSION_FILTER = # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed # by doxygen. The layout file controls the global structure of the generated # output files in an output format independent way. The create the layout file # that represents doxygen's defaults, run doxygen with the -l option. # You can optionally specify a file name after the option, if omitted # DoxygenLayout.xml will be used as the name of the layout file. LAYOUT_FILE = #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated # by doxygen. Possible values are YES and NO. If left blank NO is used. QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are # generated by doxygen. Possible values are YES and NO. If left blank # NO is used. WARNINGS = YES # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings # for undocumented members. If EXTRACT_ALL is set to YES then this flag will # automatically be disabled. WARN_IF_UNDOCUMENTED = YES # If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for # potential errors in the documentation, such as not documenting some # parameters in a documented function, or documenting parameters that # don't exist or using markup commands wrongly. WARN_IF_DOC_ERROR = YES # The WARN_NO_PARAMDOC option can be enabled to get warnings for # functions that are documented, but have no documentation for their parameters # or return value. If set to NO (the default) doxygen will only warn about # wrong or incomplete parameter documentation, but not about the absence of # documentation. WARN_NO_PARAMDOC = NO # The WARN_FORMAT tag determines the format of the warning messages that # doxygen can produce. The string should contain the $file, $line, and $text # tags, which will be replaced by the file and line number from which the # warning originated and the warning text. Optionally the format may contain # $version, which will be replaced by the version of the file (if it could # be obtained via FILE_VERSION_FILTER) WARN_FORMAT = "$file:$line: $text" # The WARN_LOGFILE tag can be used to specify a file to which warning # and error messages should be written. If left blank the output is written # to stderr. WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag can be used to specify the files and/or directories that contain # documented source files. You may enter file names like "myfile.cpp" or # directories like "/usr/src/myproject". Separate the files or directories # with spaces. INPUT = src/headers/spatialite.h \ src/headers/spatialite/gaiaaux.h \ src/headers/spatialite/gaiaexif.h \ src/headers/spatialite/gaiageo.h \ src/headers/spatialite/gg_const.h \ src/headers/spatialite/gg_structs.h \ src/headers/spatialite/gg_core.h \ src/headers/spatialite/gg_mbr.h \ src/headers/spatialite/gg_formats.h \ src/headers/spatialite/gg_dynamic.h \ src/headers/spatialite/gg_advanced.h \ src/headers/spatialite/gg_xml.h \ src/headers/spatialite/gg_wfs.h \ src/headers/spatialite/gg_dxf.h \ examples/examples.doxy \ mainpage.doxy # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is # also the default input encoding. Doxygen uses libiconv (or the iconv built # into libc) for the transcoding. See http://www.gnu.org/software/libiconv for # the list of possible encodings. INPUT_ENCODING = UTF-8 # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank the following patterns are tested: # *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh # *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py # *.f90 *.f *.for *.vhd *.vhdl FILE_PATTERNS = # The RECURSIVE tag can be used to turn specify whether or not subdirectories # should be searched for input files as well. Possible values are YES and NO. # If left blank NO is used. RECURSIVE = NO # The EXCLUDE tag can be used to specify files and/or directories that should # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. EXCLUDE = # The EXCLUDE_SYMLINKS tag can be used select whether or not files or # directories that are symbolic links (a Unix file system feature) are excluded # from the input. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. Note that the wildcards are matched # against the file with absolute path, so to exclude all test directories # for example use the pattern */test/* EXCLUDE_PATTERNS = # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names # (namespaces, classes, functions, etc.) that should be excluded from the # output. The symbol name can be a fully qualified name, a word, or if the # wildcard * is used, a substring. Examples: ANamespace, AClass, # AClass::ANamespace, ANamespace::*Test EXCLUDE_SYMBOLS = # The EXAMPLE_PATH tag can be used to specify one or more files or # directories that contain example code fragments that are included (see # the \include command). EXAMPLE_PATH = examples # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank all files are included. EXAMPLE_PATTERNS = # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude # commands irrespective of the value of the RECURSIVE tag. # Possible values are YES and NO. If left blank NO is used. EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or # directories that contain image that are included in the documentation (see # the \image command). IMAGE_PATH = # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command , where # is the value of the INPUT_FILTER tag, and is the name of an # input file. Doxygen will then use the output that the filter program writes # to standard output. # If FILTER_PATTERNS is specified, this tag will be # ignored. INPUT_FILTER = # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern # basis. # Doxygen will compare the file name with each pattern and apply the # filter if there is a match. # The filters are a list of the form: # pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further # info on how filters are used. If FILTER_PATTERNS is empty or if # non of the patterns match the file name, INPUT_FILTER is applied. FILTER_PATTERNS = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will be used to filter the input files when producing source # files to browse (i.e. when SOURCE_BROWSER is set to YES). FILTER_SOURCE_FILES = NO # The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file # pattern. A pattern will override the setting for FILTER_PATTERN (if any) # and it is also possible to disable source filtering for a specific pattern # using *.ext= (so without naming a filter). This option only has effect when # FILTER_SOURCE_FILES is enabled. FILTER_SOURCE_PATTERNS = #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will # be generated. Documented entities will be cross-referenced with these sources. # Note: To get rid of all source code in the generated output, make sure also # VERBATIM_HEADERS is set to NO. SOURCE_BROWSER = NO # Setting the INLINE_SOURCES tag to YES will include the body # of functions and classes directly in the documentation. INLINE_SOURCES = NO # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct # doxygen to hide any special comment blocks from generated source code # fragments. Normal C and C++ comments will always remain visible. STRIP_CODE_COMMENTS = YES # If the REFERENCED_BY_RELATION tag is set to YES # then for each documented function all documented # functions referencing it will be listed. REFERENCED_BY_RELATION = NO # If the REFERENCES_RELATION tag is set to YES # then for each documented function all documented entities # called/used by that function will be listed. REFERENCES_RELATION = NO # If the REFERENCES_LINK_SOURCE tag is set to YES (the default) # and SOURCE_BROWSER tag is set to YES, then the hyperlinks from # functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will # link to the source code. # Otherwise they will link to the documentation. REFERENCES_LINK_SOURCE = YES # If the USE_HTAGS tag is set to YES then the references to source code # will point to the HTML generated by the htags(1) tool instead of doxygen # built-in source browser. The htags tool is part of GNU's global source # tagging system (see http://www.gnu.org/software/global/global.html). You # will need version 4.8.6 or higher. USE_HTAGS = NO # If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen # will generate a verbatim copy of the header file for each class for # which an include is specified. Set to NO to disable this. VERBATIM_HEADERS = YES #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index # of all compounds will be generated. Enable this if the project # contains a lot of classes, structs, unions or interfaces. ALPHABETICAL_INDEX = YES # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns # in which this list will be split (can be a number in the range [1..20]) COLS_IN_ALPHA_INDEX = 5 # In case all classes in a project start with a common prefix, all # classes will be put under the same header in the alphabetical index. # The IGNORE_PREFIX tag can be used to specify one or more prefixes that # should be ignored while generating the index headers. IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES (the default) Doxygen will # generate HTML output. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `html' will be used as the default path. HTML_OUTPUT = html # The HTML_FILE_EXTENSION tag can be used to specify the file extension for # each generated HTML page (for example: .htm,.php,.asp). If it is left blank # doxygen will generate files with .html extension. HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a personal HTML header for # each generated HTML page. If it is left blank doxygen will generate a # standard header. HTML_HEADER = # The HTML_FOOTER tag can be used to specify a personal HTML footer for # each generated HTML page. If it is left blank doxygen will generate a # standard footer. HTML_FOOTER = # The HTML_STYLESHEET tag can be used to specify a user-defined cascading # style sheet that is used by each HTML page. It can be used to # fine-tune the look of the HTML output. If the tag is left blank doxygen # will generate a default style sheet. Note that doxygen will try to copy # the style sheet file to the HTML output directory, so don't put your own # stylesheet in the HTML output directory as well, or it will be erased! HTML_STYLESHEET = # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. # Doxygen will adjust the colors in the stylesheet and background images # according to this color. Hue is specified as an angle on a colorwheel, # see http://en.wikipedia.org/wiki/Hue for more information. # For instance the value 0 represents red, 60 is yellow, 120 is green, # 180 is cyan, 240 is blue, 300 purple, and 360 is red again. # The allowed range is 0 to 359. HTML_COLORSTYLE_HUE = 220 # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of # the colors in the HTML output. For a value of 0 the output will use # grayscales only. A value of 255 will produce the most vivid colors. HTML_COLORSTYLE_SAT = 100 # The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to # the luminance component of the colors in the HTML output. Values below # 100 gradually make the output lighter, whereas values above 100 make # the output darker. The value divided by 100 is the actual gamma applied, # so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2, # and 100 does not change the gamma. HTML_COLORSTYLE_GAMMA = 80 # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML # page will contain the date and time when the page was generated. Setting # this to NO can help when comparing the output of multiple runs. HTML_TIMESTAMP = YES # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML # documentation will contain sections that can be hidden and shown after the # page has loaded. For this to work a browser that supports # JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox # Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). HTML_DYNAMIC_SECTIONS = NO # If the GENERATE_DOCSET tag is set to YES, additional index files # will be generated that can be used as input for Apple's Xcode 3 # integrated development environment, introduced with OSX 10.5 (Leopard). # To create a documentation set, doxygen will generate a Makefile in the # HTML output directory. Running make will produce the docset in that # directory and running "make install" will install the docset in # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find # it at startup. # See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html # for more information. GENERATE_DOCSET = NO # When GENERATE_DOCSET tag is set to YES, this tag determines the name of the # feed. A documentation feed provides an umbrella under which multiple # documentation sets from a single provider (such as a company or product suite) # can be grouped. DOCSET_FEEDNAME = "Doxygen generated docs" # When GENERATE_DOCSET tag is set to YES, this tag specifies a string that # should uniquely identify the documentation set bundle. This should be a # reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen # will append .docset to the name. DOCSET_BUNDLE_ID = org.doxygen.Project # When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify # the documentation publisher. This should be a reverse domain-name style # string, e.g. com.mycompany.MyDocSet.documentation. DOCSET_PUBLISHER_ID = org.doxygen.Publisher # The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher. DOCSET_PUBLISHER_NAME = Publisher # If the GENERATE_HTMLHELP tag is set to YES, additional index files # will be generated that can be used as input for tools like the # Microsoft HTML help workshop to generate a compiled HTML help file (.chm) # of the generated HTML documentation. GENERATE_HTMLHELP = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can # be used to specify the file name of the resulting .chm file. You # can add a path in front of the file if the result should not be # written to the html output directory. CHM_FILE = # If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can # be used to specify the location (absolute path including file name) of # the HTML help compiler (hhc.exe). If non-empty doxygen will try to run # the HTML help compiler on the generated index.hhp. HHC_LOCATION = # If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag # controls if a separate .chi index file is generated (YES) or that # it should be included in the master .chm file (NO). GENERATE_CHI = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING # is used to encode HtmlHelp index (hhk), content (hhc) and project file # content. CHM_INDEX_ENCODING = # If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag # controls whether a binary table of contents is generated (YES) or a # normal table of contents (NO) in the .chm file. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members # to the contents of the HTML help documentation and to the tree view. TOC_EXPAND = NO # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and # QHP_VIRTUAL_FOLDER are set, an additional index file will be generated # that can be used as input for Qt's qhelpgenerator to generate a # Qt Compressed Help (.qch) of the generated HTML documentation. GENERATE_QHP = NO # If the QHG_LOCATION tag is specified, the QCH_FILE tag can # be used to specify the file name of the resulting .qch file. # The path specified is relative to the HTML output folder. QCH_FILE = # The QHP_NAMESPACE tag specifies the namespace to use when generating # Qt Help Project output. For more information please see # http://doc.trolltech.com/qthelpproject.html#namespace QHP_NAMESPACE = org.doxygen.Project # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating # Qt Help Project output. For more information please see # http://doc.trolltech.com/qthelpproject.html#virtual-folders QHP_VIRTUAL_FOLDER = doc # If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to # add. For more information please see # http://doc.trolltech.com/qthelpproject.html#custom-filters QHP_CUST_FILTER_NAME = # The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the # custom filter to add. For more information please see # # Qt Help Project / Custom Filters. QHP_CUST_FILTER_ATTRS = # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this # project's # filter section matches. # # Qt Help Project / Filter Attributes. QHP_SECT_FILTER_ATTRS = # If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can # be used to specify the location of Qt's qhelpgenerator. # If non-empty doxygen will try to run qhelpgenerator on the generated # .qhp file. QHG_LOCATION = # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files # will be generated, which together with the HTML files, form an Eclipse help # plugin. To install this plugin and make it available under the help contents # menu in Eclipse, the contents of the directory containing the HTML and XML # files needs to be copied into the plugins directory of eclipse. The name of # the directory within the plugins directory should be the same as # the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before # the help appears. GENERATE_ECLIPSEHELP = NO # A unique identifier for the eclipse help plugin. When installing the plugin # the directory name containing the HTML and XML files should also have # this name. ECLIPSE_DOC_ID = org.doxygen.Project # The DISABLE_INDEX tag can be used to turn on/off the condensed index at # top of each HTML page. The value NO (the default) enables the index and # the value YES disables it. DISABLE_INDEX = NO # This tag can be used to set the number of enum values (range [0,1..20]) # that doxygen will group on one line in the generated HTML documentation. # Note that a value of 0 will completely suppress the enum values from appearing in the overview section. ENUM_VALUES_PER_LINE = 4 # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be # used to set the initial width (in pixels) of the frame in which the tree # is shown. TREEVIEW_WIDTH = 250 # When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open # links to external symbols imported via tag files in a separate window. EXT_LINKS_IN_WINDOW = NO # Use this tag to change the font size of Latex formulas included # as images in the HTML documentation. The default is 10. Note that # when you change the font size after a successful doxygen run you need # to manually remove any form_*.png images from the HTML output directory # to force them to be regenerated. FORMULA_FONTSIZE = 10 # Use the FORMULA_TRANPARENT tag to determine whether or not the images # generated for formulas are transparent PNGs. Transparent PNGs are # not supported properly for IE 6.0, but are supported on all modern browsers. # Note that when changing this option you need to delete any form_*.png files # in the HTML output before the changes have effect. FORMULA_TRANSPARENT = YES # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax # (see http://www.mathjax.org) which uses client side Javascript for the # rendering instead of using prerendered bitmaps. Use this if you do not # have LaTeX installed or if you want to formulas look prettier in the HTML # output. When enabled you also need to install MathJax separately and # configure the path to it using the MATHJAX_RELPATH option. USE_MATHJAX = NO # When MathJax is enabled you need to specify the location relative to the # HTML output directory using the MATHJAX_RELPATH option. The destination # directory should contain the MathJax.js script. For instance, if the mathjax # directory is located at the same level as the HTML output directory, then # MATHJAX_RELPATH should be ../mathjax. The default value points to the mathjax.org site, so you can quickly see the result without installing # MathJax, but it is strongly recommended to install a local copy of MathJax # before deployment. MATHJAX_RELPATH = http://www.mathjax.org/mathjax # When the SEARCHENGINE tag is enabled doxygen will generate a search box # for the HTML output. The underlying search engine uses javascript # and DHTML and should work on any modern browser. Note that when using # HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets # (GENERATE_DOCSET) there is already a search function so this one should # typically be disabled. For large projects the javascript based search engine # can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution. SEARCHENGINE = YES # When the SERVER_BASED_SEARCH tag is enabled the search engine will be # implemented using a PHP enabled web server instead of at the web client # using Javascript. Doxygen will generate the search PHP script and index # file to put on the web server. The advantage of the server # based approach is that it scales better to large projects and allows # full text search. The disadvantages are that it is more difficult to setup # and does not have live searching capabilities. SERVER_BASED_SEARCH = NO #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will # generate Latex output. GENERATE_LATEX = YES # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `latex' will be used as the default path. LATEX_OUTPUT = latex # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be # invoked. If left blank `latex' will be used as the default command name. # Note that when enabling USE_PDFLATEX this option is only used for # generating bitmaps for formulas in the HTML output, but not in the # Makefile that is written to the output directory. LATEX_CMD_NAME = latex # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to # generate index for LaTeX. If left blank `makeindex' will be used as the # default command name. MAKEINDEX_CMD_NAME = makeindex # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact # LaTeX documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_LATEX = NO # The PAPER_TYPE tag can be used to set the paper type that is used # by the printer. Possible values are: a4, letter, legal and # executive. If left blank a4wide will be used. PAPER_TYPE = a4 # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX # packages that should be included in the LaTeX output. EXTRA_PACKAGES = # The LATEX_HEADER tag can be used to specify a personal LaTeX header for # the generated latex document. The header should contain everything until # the first chapter. If it is left blank doxygen will generate a # standard header. Notice: only use this tag if you know what you are doing! LATEX_HEADER = # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated # is prepared for conversion to pdf (using ps2pdf). The pdf file will # contain links (just like the HTML output) instead of page references # This makes the output suitable for online browsing using a pdf viewer. PDF_HYPERLINKS = YES # If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of # plain latex in the generated Makefile. Set this option to YES to get a # higher quality PDF documentation. USE_PDFLATEX = YES # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. # command to the generated LaTeX files. This will instruct LaTeX to keep # running if errors occur, instead of asking the user for help. # This option is also used when generating formulas in HTML. LATEX_BATCHMODE = NO # If LATEX_HIDE_INDICES is set to YES then doxygen will not # include the index chapters (such as File Index, Compound Index, etc.) # in the output. LATEX_HIDE_INDICES = NO # If LATEX_SOURCE_CODE is set to YES then doxygen will include # source code with syntax highlighting in the LaTeX output. # Note that which sources are shown also depends on other settings # such as SOURCE_BROWSER. LATEX_SOURCE_CODE = NO #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- # If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output # The RTF output is optimized for Word 97 and may not look very pretty with # other RTF readers or editors. GENERATE_RTF = NO # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `rtf' will be used as the default path. RTF_OUTPUT = rtf # If the COMPACT_RTF tag is set to YES Doxygen generates more compact # RTF documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_RTF = NO # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated # will contain hyperlink fields. The RTF file will # contain links (just like the HTML output) instead of page references. # This makes the output suitable for online browsing using WORD or other # programs which support those fields. # Note: wordpad (write) and others do not support links. RTF_HYPERLINKS = NO # Load stylesheet definitions from file. Syntax is similar to doxygen's # config file, i.e. a series of assignments. You only have to provide # replacements, missing definitions are set to their default value. RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an rtf document. # Syntax is similar to doxygen's config file. RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- # If the GENERATE_MAN tag is set to YES (the default) Doxygen will # generate man pages GENERATE_MAN = NO # The MAN_OUTPUT tag is used to specify where the man pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `man' will be used as the default path. MAN_OUTPUT = man # The MAN_EXTENSION tag determines the extension that is added to # the generated man pages (default is the subroutine's section .3) MAN_EXTENSION = .3 # If the MAN_LINKS tag is set to YES and Doxygen generates man output, # then it will generate one additional man file for each entity # documented in the real man page(s). These additional files # only source the real man page, but without them the man command # would be unable to find the correct page. The default is NO. MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- # If the GENERATE_XML tag is set to YES Doxygen will # generate an XML file that captures the structure of # the code including all documentation. GENERATE_XML = NO # The XML_OUTPUT tag is used to specify where the XML pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `xml' will be used as the default path. XML_OUTPUT = xml # The XML_SCHEMA tag can be used to specify an XML schema, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_SCHEMA = # The XML_DTD tag can be used to specify an XML DTD, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_DTD = # If the XML_PROGRAMLISTING tag is set to YES Doxygen will # dump the program listings (including syntax highlighting # and cross-referencing information) to the XML output. Note that # enabling this will significantly increase the size of the XML output. XML_PROGRAMLISTING = YES #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- # If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will # generate an AutoGen Definitions (see autogen.sf.net) file # that captures the structure of the code including all # documentation. Note that this feature is still experimental # and incomplete at the moment. GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- # configuration options related to the Perl module output #--------------------------------------------------------------------------- # If the GENERATE_PERLMOD tag is set to YES Doxygen will # generate a Perl module file that captures the structure of # the code including all documentation. Note that this # feature is still experimental and incomplete at the # moment. GENERATE_PERLMOD = NO # If the PERLMOD_LATEX tag is set to YES Doxygen will generate # the necessary Makefile rules, Perl scripts and LaTeX code to be able # to generate PDF and DVI output from the Perl module output. PERLMOD_LATEX = NO # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be # nicely formatted so it can be parsed by a human reader. # This is useful # if you want to understand what is going on. # On the other hand, if this # tag is set to NO the size of the Perl module output will be much smaller # and Perl will parse it just the same. PERLMOD_PRETTY = YES # The names of the make variables in the generated doxyrules.make file # are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. # This is useful so different doxyrules.make files included by the same # Makefile don't overwrite each other's variables. PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- # If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will # evaluate all C-preprocessor directives found in the sources and include # files. ENABLE_PREPROCESSING = YES # If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro # names in the source code. If set to NO (the default) only conditional # compilation will be performed. Macro expansion can be done in a controlled # way by setting EXPAND_ONLY_PREDEF to YES. MACRO_EXPANSION = NO # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES # then the macro expansion is limited to the macros specified with the # PREDEFINED and EXPAND_AS_DEFINED tags. EXPAND_ONLY_PREDEF = NO # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # in the INCLUDE_PATH (see below) will be search if a #include is found. SEARCH_INCLUDES = YES # The INCLUDE_PATH tag can be used to specify one or more directories that # contain include files that are not input files but should be processed by # the preprocessor. INCLUDE_PATH = # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard # patterns (like *.h and *.hpp) to filter out the header-files in the # directories. If left blank, the patterns specified with FILE_PATTERNS will # be used. INCLUDE_FILE_PATTERNS = # The PREDEFINED tag can be used to specify one or more macro names that # are defined before the preprocessor is started (similar to the -D option of # gcc). The argument of the tag is a list of macros of the form: name # or name=definition (no spaces). If the definition and the = are # omitted =1 is assumed. To prevent a macro definition from being # undefined via #undef or recursively expanded use the := operator # instead of the = operator. PREDEFINED = DOXYGEN_SHOULD_SKIP_THIS # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then # this tag can be used to specify a list of macro names that should be expanded. # The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition that overrules the definition found in the source code. EXPAND_AS_DEFINED = # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then # doxygen's preprocessor will remove all references to function-like macros # that are alone on a line, have an all uppercase name, and do not end with a # semicolon, because these will confuse the parser if not removed. SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- # Configuration::additions related to external references #--------------------------------------------------------------------------- # The TAGFILES option can be used to specify one or more tagfiles. # Optionally an initial location of the external documentation # can be added for each tagfile. The format of a tag file without # this location is as follows: # # TAGFILES = file1 file2 ... # Adding location for the tag files is done as follows: # # TAGFILES = file1=loc1 "file2 = loc2" ... # where "loc1" and "loc2" can be relative or absolute paths or # URLs. If a location is present for each tag, the installdox tool # does not have to be run to correct the links. # Note that each tag file must have a unique name # (where the name does NOT include the path) # If a tag file is not located in the directory in which doxygen # is run, you must also specify the path to the tagfile here. TAGFILES = # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. GENERATE_TAGFILE = # If the ALLEXTERNALS tag is set to YES all external classes will be listed # in the class index. If set to NO only the inherited external classes # will be listed. ALLEXTERNALS = NO # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed # in the modules index. If set to NO, only the current project's groups will # be listed. EXTERNAL_GROUPS = YES # The PERL_PATH should be the absolute path and name of the perl script # interpreter (i.e. the result of `which perl'). PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will # generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base # or super classes. Setting the tag to NO turns the diagrams off. Note that # this option also works with HAVE_DOT disabled, but it is recommended to # install and use dot, since it yields more powerful graphs. CLASS_DIAGRAMS = YES # You can define message sequence charts within doxygen comments using the \msc # command. Doxygen will then run the mscgen tool (see # http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the # documentation. The MSCGEN_PATH tag allows you to specify the directory where # the mscgen tool resides. If left empty the tool is assumed to be found in the # default search path. MSCGEN_PATH = # If set to YES, the inheritance and collaboration graphs will hide # inheritance and usage relations if the target is undocumented # or is not a class. HIDE_UNDOC_RELATIONS = YES # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is # available from the path. This tool is part of Graphviz, a graph visualization # toolkit from AT&T and Lucent Bell Labs. The other options in this section # have no effect if this option is set to NO (the default) HAVE_DOT = YES # The DOT_NUM_THREADS specifies the number of dot invocations doxygen is # allowed to run in parallel. When set to 0 (the default) doxygen will # base this on the number of processors available in the system. You can set it # explicitly to a value larger than 0 to get control over the balance # between CPU load and processing speed. DOT_NUM_THREADS = 0 # By default doxygen will write a font called Helvetica to the output # directory and reference it in all dot files that doxygen generates. # When you want a differently looking font you can specify the font name # using DOT_FONTNAME. You need to make sure dot is able to find the font, # which can be done by putting it in a standard location or by setting the # DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory # containing the font. DOT_FONTNAME = Helvetica # The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. # The default size is 10pt. DOT_FONTSIZE = 10 # By default doxygen will tell dot to use the output directory to look for the # FreeSans.ttf font (which doxygen will put there itself). If you specify a # different font using DOT_FONTNAME you can set the path where dot # can find it using this tag. DOT_FONTPATH = # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect inheritance relations. Setting this tag to YES will force the # the CLASS_DIAGRAMS tag to NO. CLASS_GRAPH = YES # If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect implementation dependencies (inheritance, containment, and # class references variables) of the class with other documented classes. COLLABORATION_GRAPH = YES # If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen # will generate a graph for groups, showing the direct groups dependencies GROUP_GRAPHS = YES # If the UML_LOOK tag is set to YES doxygen will generate inheritance and # collaboration diagrams in a style similar to the OMG's Unified Modeling # Language. UML_LOOK = NO # If set to YES, the inheritance and collaboration graphs will show the # relations between templates and their instances. TEMPLATE_RELATIONS = NO # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT # tags are set to YES then doxygen will generate a graph for each documented # file showing the direct and indirect include dependencies of the file with # other documented files. INCLUDE_GRAPH = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and # HAVE_DOT tags are set to YES then doxygen will generate a graph for each # documented header file showing the documented files that directly or # indirectly include this file. INCLUDED_BY_GRAPH = YES # If the CALL_GRAPH and HAVE_DOT options are set to YES then # doxygen will generate a call dependency graph for every global function # or class method. Note that enabling this option will significantly increase # the time of a run. So in most cases it will be better to enable call graphs # for selected functions only using the \callgraph command. CALL_GRAPH = NO # If the CALLER_GRAPH and HAVE_DOT tags are set to YES then # doxygen will generate a caller dependency graph for every global function # or class method. Note that enabling this option will significantly increase # the time of a run. So in most cases it will be better to enable caller # graphs for selected functions only using the \callergraph command. CALLER_GRAPH = NO # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen # will generate a graphical hierarchy of all classes instead of a textual one. GRAPHICAL_HIERARCHY = YES # If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES # then doxygen will show the dependencies a directory has on other directories # in a graphical way. The dependency relations are determined by the #include # relations between the files in the directories. DIRECTORY_GRAPH = YES # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images # generated by dot. Possible values are png, svg, gif or svg. # If left blank png will be used. DOT_IMAGE_FORMAT = png # The tag DOT_PATH can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found in the path. DOT_PATH = # The DOTFILE_DIRS tag can be used to specify one or more directories that # contain dot files that are included in the documentation (see the # \dotfile command). DOTFILE_DIRS = # The MSCFILE_DIRS tag can be used to specify one or more directories that # contain msc files that are included in the documentation (see the # \mscfile command). MSCFILE_DIRS = # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of # nodes that will be shown in the graph. If the number of nodes in a graph # becomes larger than this value, doxygen will truncate the graph, which is # visualized by representing a node as a red box. Note that doxygen if the # number of direct children of the root node in a graph is already larger than # DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note # that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. DOT_GRAPH_MAX_NODES = 50 # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the # graphs generated by dot. A depth value of 3 means that only nodes reachable # from the root by following a path via at most 3 edges will be shown. Nodes # that lay further from the root node will be omitted. Note that setting this # option to 1 or 2 may greatly reduce the computation time needed for large # code bases. Also note that the size of a graph can be further restricted by # DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. MAX_DOT_GRAPH_DEPTH = 0 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent # background. This is disabled by default, because dot on Windows does not # seem to support this out of the box. Warning: Depending on the platform used, # enabling this option may lead to badly anti-aliased labels on the edges of # a graph (i.e. they become hard to read). DOT_TRANSPARENT = NO # Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output # files in one run (i.e. multiple -o and -T options on the command line). This # makes dot run faster, but since only newer versions of dot (>1.8.10) # support this, this feature is disabled by default. DOT_MULTI_TARGETS = YES # If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will # generate a legend page explaining the meaning of the various boxes and # arrows in the dot generated graphs. GENERATE_LEGEND = YES # If the DOT_CLEANUP tag is set to YES (the default) Doxygen will # remove the intermediate dot files that are used to generate # the various graphs. DOT_CLEANUP = YES libspatialite-4.1.1/Android.mk0000664000175000017500000000213612163502133013175 00000000000000LOCAL_PATH:= $(call my-dir)/.. include ${CLEAR_VARS} LOCAL_SRC_FILES := \ src/gaiaaux/gg_sqlaux.c \ src/gaiaexif/gaia_exif.c \ src/gaiageo/gg_advanced.c \ src/gaiageo/gg_endian.c \ src/gaiageo/gg_ewkt.c \ src/gaiageo/gg_geodesic.c \ src/gaiageo/gg_geoJSON.c \ src/gaiageo/gg_geometries.c \ src/gaiageo/gg_geoscvt.c \ src/gaiageo/gg_gml.c \ src/gaiageo/gg_kml.c \ src/gaiageo/gg_relations.c \ src/gaiageo/gg_transform.c \ src/gaiageo/gg_vanuatu.c \ src/gaiageo/gg_wkb.c \ src/gaiageo/gg_wkt.c \ src/spatialite/mbrcache.c \ src/spatialite/spatialite.c \ src/spatialite/virtualfdo.c \ src/spatialite/virtualnetwork.c \ src/spatialite/virtualspatialindex.c \ src/srsinit/srs_init.c \ src/versioninfo/version.c LOCAL_C_INCLUDES := \ $(LOCAL_PATH)/jni/src/headers \ $(LOCAL_PATH)/src/headers \ $(LOCAL_PATH)/../SQLite LOCAL_MODULE := spatialite LOCAL_LDLIBS := -ldl -llog LOCAL_CFLAGS := \ -fvisibility=hidden \ -DOMIT_GEOCALLBACKS \ -DOMIT_GEOS \ -DOMIT_PROJ \ -DOMIT_EPSG \ -DOMIT_ICONV \ -DVERSION="\"3.0.2\"" include $(BUILD_SHARED_LIBRARY) libspatialite-4.1.1/config.sub0000775000175000017500000010316712163502133013255 00000000000000#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 # Free Software Foundation, Inc. timestamp='2009-11-20' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to . Submit a context # diff and a properly formatted GNU ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray | -microblaze) os= basic_machine=$1 ;; -bluegene*) os=-cnk ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64octeon | mips64octeonel \ | mips64orion | mips64orionel \ | mips64r5900 | mips64r5900el \ | mips64vr | mips64vrel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | moxie \ | mt \ | msp430 \ | nios | nios2 \ | ns16k | ns32k \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | rx \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | ubicom32 \ | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12 | picochip) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64octeon-* | mips64octeonel-* \ | mips64orion-* | mips64orionel-* \ | mips64r5900-* | mips64r5900el-* \ | mips64vr-* | mips64vrel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ | tron-* \ | ubicom32-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-* | z80-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aros) basic_machine=i386-pc os=-aros ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; blackfin) basic_machine=bfin-unknown os=-linux ;; blackfin-*) basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; bluegene*) basic_machine=powerpc-ibm os=-cnk ;; c90) basic_machine=c90-cray os=-unicos ;; cegcc) basic_machine=arm-unknown os=-cegcc ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16) basic_machine=cr16-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; dicos) basic_machine=i686-pc os=-dicos ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; microblaze) basic_machine=microblaze-xilinx ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; parisc) basic_machine=hppa-unknown os=-linux ;; parisc-*) basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; tile*) basic_machine=tile-unknown os=-linux-gnu ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; z80-*-coff) basic_machine=z80-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -auroraux) os=-auroraux ;; -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ | -sym* | -kopensolaris* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -dicos*) os=-dicos ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -cnk*|-aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: libspatialite-4.1.1/README.coverage0000664000175000017500000000055712163502133013743 00000000000000Coverage testing ---------------- You need to have gcov and lcov installed. Process: 1. Use --enable-gcov=yes with configure script 2. Clean and rebuild. 3. make coverage-init 4. make check (or whatever other tests you want to check coverage for) 5. make coverage 6. check summary on command line output. 7. review detailed coverage results in covresults/index.html libspatialite-4.1.1/Makefile.in0000664000175000017500000006575712163502133013353 00000000000000# Makefile.in generated by automake 1.12.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = . DIST_COMMON = README $(am__configure_deps) $(srcdir)/Doxyfile.in \ $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(srcdir)/config.h.in $(srcdir)/spatialite.pc.in \ $(top_srcdir)/configure AUTHORS COPYING INSTALL config.guess \ config.sub depcomp install-sh ltmain.sh missing ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = Doxyfile spatialite.pc CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(pkgconfigdir)" DATA = $(pkgconfig_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ cscope distdir dist dist-all distcheck ETAGS = etags CTAGS = ctags CSCOPE = cscope DIST_SUBDIRS = src test examples DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ if test -d "$(distdir)"; then \ find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -rf "$(distdir)" \ || { sleep 5 && rm -rf "$(distdir)"; }; \ else :; fi am__post_remove_distdir = $(am__remove_distdir) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz $(distdir).zip GZIP_ENV = --best DIST_TARGETS = dist-gzip dist-zip distuninstallcheck_listfiles = find . -type f -print am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ ACLOCAL_AMFLAGS = -I m4 AUTOMAKE_OPTIONS = dist-zip EXTRA_DIST = makefile.vc nmake.opt Android.mk mainpage.doxy README.coverage \ spatialite-sql-latest.html config-msvc.h @ENABLE_EXAMPLES_TRUE@EXAMPLES = examples SUBDIRS = src test $(EXAMPLES) pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = spatialite.pc MOSTLYCLEANFILES = libspatialite_cov.info all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: am--refresh: Makefile @: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): config.h: stamp-h1 @if test ! -f $@; then rm -f stamp-h1; else :; fi @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status config.h $(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) rm -f stamp-h1 touch $@ distclean-hdr: -rm -f config.h stamp-h1 Doxyfile: $(top_builddir)/config.status $(srcdir)/Doxyfile.in cd $(top_builddir) && $(SHELL) ./config.status $@ spatialite.pc: $(top_builddir)/config.status $(srcdir)/spatialite.pc.in cd $(top_builddir) && $(SHELL) ./config.status $@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool config.lt install-pkgconfigDATA: $(pkgconfig_DATA) @$(NORMAL_INSTALL) @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ done uninstall-pkgconfigDATA: @$(NORMAL_UNINSTALL) @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(RECURSIVE_TARGETS) $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done cscopelist-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) cscopelist); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscope: cscope.files test ! -s cscope.files \ || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) clean-cscope: -rm -f cscope.files cscope.files: clean-cscope cscopelist-recursive cscopelist cscopelist: cscopelist-recursive $(HEADERS) $(SOURCES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f cscope.out cscope.in.out cscope.po.out cscope.files distdir: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__post_remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 $(am__post_remove_distdir) dist-lzip: distdir tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz $(am__post_remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz $(am__post_remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__post_remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__post_remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__post_remove_distdir) dist dist-all: $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' $(am__post_remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lz*) \ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod u+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 $(am__post_remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @test -n '$(distuninstallcheck_dir)' || { \ echo 'ERROR: trying to run $@ with an empty' \ '$$(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ $(am__cd) '$(distuninstallcheck_dir)' || { \ echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile $(DATA) config.h installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(pkgconfigdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-hdr \ distclean-libtool distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-pkgconfigDATA install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-pkgconfigDATA .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \ cscopelist-recursive ctags-recursive install-am install-strip \ tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am am--refresh check check-am clean clean-cscope \ clean-generic clean-libtool cscope cscopelist \ cscopelist-recursive ctags ctags-recursive dist dist-all \ dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ dist-xz \ dist-zip distcheck distclean distclean-generic distclean-hdr \ distclean-libtool distclean-tags distcleancheck distdir \ distuninstallcheck dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-pkgconfigDATA install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am uninstall-pkgconfigDATA coverage-init: lcov --directory src --capture --initial --output-file libspatialite_cov.info coverage:: lcov --directory src --output-file libspatialite_cov.info --capture genhtml -o covresults libspatialite_cov.info # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libspatialite-4.1.1/README0000664000175000017500000001355412163502133012152 00000000000000 --------------------- libspatialite ------------------------ PLEASE read the following information. 1 - Installation 2 - Required dependencies 3 - Build notes 3.1: Building on Linux 3.2: Building on Mac OS X 3.3: Building on Windows 3.3.1: using MinGW / MSYS 3.3.2: using Visual Studio .NET ===================================================================== 1. Installation: ================= The default destination path prefix for installed files is /usr/local. Results from the installation script will be placed into subdirectories include and lib. If this default path prefix is appropriate, then execute: ./configure If another path prefix is required, then execute: ./configure --prefix=/my/path In either case, the directory of the prefix path must exist and be writable by the installer. After executing configure, execute: make make install Or even better, you can *strip* any executable binary, in order to eliminate any debugging symbol, and thus widely reducing their size: make install-strip 2. Required dependencies: ========================= The main external dependencies needed in order to build 'libspatialite' are: - SQLite 3 (http://www.sqlite.org) This is a hard dependency - you can't build libspatialite without it. SQLite version 3.7.3 or later is strongly preferred - if you have an earlier version then you will need to pass --enable-geocallbacks=no to the ./configure script. - PROJ.4 (http://trac.osgeo.org/proj/) This is strongly recommended, unless you have a particular purpose in mind for your libspatialite build, and know that you won't need it. It is usually available as a package, and libspatialite is pretty flexible about versions. - GEOS (http://trac.osgeo.org/geos/) This is strongly recommended, unless you have a particular purpose in mind for your libspatialite build, and know that you won't need it. It is usually available as a package, but libspatialite will have more capability if you use version 3.3.0 or later so make sure that the package is recent enough. Use --enable-geosadvanced=no argument to the ./configure script if you want to use an earlier version of GEOS. - FreeXL (http://www.gaia-gis.it/FreeXL/) This is recommended if you want to be able to import data from Microsoft Excel format (.xls suffix) files. If you do not wish to use it, you will need to pass --enable-freexl=no to the ./configure script. Version 0.0.4 or later is required. Note that you need development code (e.g. -dev packages on Debian Linux and derivatives such as Ubuntu, or -devel packages on most other Linux distributions). ICONV [Windows] --------------- When building on Windows, then you also need to provide iconv to ensure that appropriate character set conversions are available. This dependency is not usually an issue when building on Linux or Mac OS X, because these systems provide iconv as a standard component. For Windows the preferred solution is to download and install the pre-built iconv binaries and related files from: http://gnuwin32.sourceforge.net/packages/libiconv.htm 3 - Build notes =============== 3.1: Building on Linux and similar systems ------------------------------------------ Building libspatialite on Linux and similar systems such as BSD or other Unix variants does not require any special settings. If you have unpacked the sources as ./libspatialite-3.1.0, then the required steps are: # cd libspatialite-3.1.0 # ./configure # make # sudo make install # or (in order to save some disk space) # sudo make install-strip 3.2: Building on Mac OS X ------------------------- Building 'libspatialite' on Mac OS X very similar to Linux. You simply have to set explicitly some environment variables. If you have unpacked the sources as ./libspatialite-3.1.0, then the required steps are: # cd libspatialite-3.1.0 # export "CFLAGS=-I/opt/local/include" # export "LDFLAGS=-I/opt/local/lib" # ./configure # make # sudo make install # or (in order to save some disk space) # sudo make install-strip IMPORTANT NOTICE: this will build an executable for your specific platform. That is, when building on a PPC Mac, the resulting binary will be be for PPC. Similarly, when building on Intel Mac, resulting binary will be for Intel. 3.3: Building on Windows ------------------------ On Windows systems you can choose using two different compilers: - MinGW / MSYS This represents a smart porting of a minimalistic Linux-like development toolkit - Microsoft Visual Studio .NET This is the standard platform development toolkit from Microsoft. 3.3.1: using MinGW / MSYS ------------------------- We assume that you have already installed the MinGW compiler and the MSYS shell. Building 'libspatialite' under Windows is then more or less like building on any other UNIX-like system. If you have unpacked the sources as C:\libspatialite-3.1.0, then the required steps are: $ cd c:/libspatialite-3.1.0 $ export "CFLAGS=-I/usr/local/include" $ export "LDFLAGS=-L/usr/local/lib" $ ./configure --target=mingw32 $ make $ make install-strip $ or (in order to save some disk space) $ make install-strip 3.3.2: using Microsoft Visual Studio .NET ----------------------------------------- We assume that you have already installed Visual Studio enabling the command line tools. Note that you are expected to the Visual Studio command prompt shell rather than the GUI build environment. If you have unpacked the sources as C:\libspatialite-3.1.0, then the required steps are: > cd c:\libspatialite-3.1.0 > nmake /f makefile.vc > nmake /f makefile.vc install Please note: standard definitions in 'makefile.vc' assumes: - enabling PROJ - disabling GEOS If you want to alter the default behaviour then make modifications in 'makefile.vc'. Also note that 'libspatialite-geos.def' contains those external symbols to be exported from the DLL when you build GEOS. libspatialite-4.1.1/configure.ac0000664000175000017500000003505612163502133013561 00000000000000# -*- Autoconf -*- # Process this file with autoconf to produce a configure script. AC_PREREQ(2.61) AC_INIT(libspatialite, 4.1.1, a.furieri@lqt.it) AC_LANG(C) AC_CONFIG_MACRO_DIR([m4]) AM_INIT_AUTOMAKE([foreign]) AM_MAINTAINER_MODE AM_CONFIG_HEADER(config.h) # enabling huge-file support (64 bit file pointers) AH_TEMPLATE([_LARGE_FILE], [Must be defined in order to enable huge-file support.]) AC_DEFINE(_LARGE_FILE) AH_TEMPLATE([_FILE_OFFSET_BITS], [Must be =64 in order to enable huge-file support.]) AC_DEFINE(_FILE_OFFSET_BITS, 64) AH_TEMPLATE([_LARGEFILE_SOURCE], [Must be defined in order to enable huge-file support.]) AC_DEFINE(_LARGEFILE_SOURCE) # disablibg debug support AH_TEMPLATE([NDEBUG], [Must be defined in order to disable debug mode.]) AC_DEFINE(NDEBUG) # config depending options AH_TEMPLATE([OMIT_GEOS], [Should be defined in order to disable GEOS support.]) AH_TEMPLATE([GEOS_ADVANCED], [Should be defined in order to enable GEOS_ADVANCED support.]) AH_TEMPLATE([GEOS_TRUNK], [Should be defined in order to enable GEOS_TRUNK experimental support.]) AH_TEMPLATE([ENABLE_LWGEOM], [Should be defined in order to enable LWGEOM support.]) AH_TEMPLATE([OMIT_PROJ], [Should be defined in order to disable PROJ.4 support.]) AH_TEMPLATE([OMIT_ICONV], [Should be defined in order to disable ICONV support.]) AH_TEMPLATE([OMIT_MATHSQL], [Should be defined in order to disable MATHSQL support.]) AH_TEMPLATE([OMIT_EPSG], [Should be defined in order to disable EPSG full support.]) AH_TEMPLATE([OMIT_GEOCALLBACKS], [Should be defined in order to disable GEOCALLBACKS support.]) AH_TEMPLATE([OMIT_FREEXL], [Should be defined in order to disable FREEXL support.]) AH_TEMPLATE([ENABLE_LIBXML2], [Should be defined in order to enable LIBXML2 support.]) AH_TEMPLATE([ENABLE_GEOPACKAGE], [Should be defined in order to enable GeoPackage support.]) AH_TEMPLATE([POSTGIS_2_1], [Should be defined when linking liblwgeom from PostGIS 2.1 (or later).]) # Checks for header files. AC_CHECK_HEADERS(stdlib.h,, [AC_MSG_ERROR([cannot find stdlib.h, bailing out])]) AC_CHECK_HEADERS(stdio.h,, [AC_MSG_ERROR([cannot find stdio.h, bailing out])]) AC_CHECK_HEADERS(string.h,, [AC_MSG_ERROR([cannot find string.h, bailing out])]) AC_CHECK_HEADERS(memory.h,, [AC_MSG_ERROR([cannot find memory.h, bailing out])]) AC_CHECK_HEADERS(math.h,, [AC_MSG_ERROR([cannot find math.h, bailing out])]) AC_CHECK_HEADERS(float.h,, [AC_MSG_ERROR([cannot find float.h, bailing out])]) AC_CHECK_HEADERS(fcntl.h,, [AC_MSG_ERROR([cannot find fcntl.h, bailing out])]) AC_CHECK_HEADERS(inttypes.h,, [AC_MSG_ERROR([cannot find inttypes.h, bailing out])]) AC_CHECK_HEADERS(stddef.h,, [AC_MSG_ERROR([cannot find stddef.h, bailing out])]) AC_CHECK_HEADERS(stdint.h,, [AC_MSG_ERROR([cannot find stdint.h, bailing out])]) AC_CHECK_HEADERS(sys/time.h,, [AC_MSG_ERROR([cannot find sys/time.h, bailing out])]) AC_CHECK_HEADERS(unistd.h,, [AC_MSG_ERROR([cannot find unistd.h, bailing out])]) AC_CHECK_HEADERS(sqlite3.h,, [AC_MSG_ERROR([cannot find sqlite3.h, bailing out])]) AC_CHECK_HEADERS(sqlite3ext.h,, [AC_MSG_ERROR([cannot find sqlite3ext.h, bailing out])]) AC_CHECK_HEADERS(zlib.h,, [AC_MSG_ERROR([cannot find zlib.h, bailing out])]) # Checks for programs. AC_PROG_CXX AC_PROG_CC AC_PROG_CPP AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_MAKE_SET AC_LIBTOOL_WIN32_DLL AC_PROG_LIBTOOL # Checks for typedefs, structures, and compiler characteristics. AC_C_CONST AC_TYPE_OFF_T AC_TYPE_SIZE_T AC_HEADER_TIME AC_STRUCT_TM AC_C_VOLATILE # Checks for library functions. AC_FUNC_LSTAT AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK AC_FUNC_MEMCMP AC_FUNC_STAT AC_FUNC_STRFTIME AC_CHECK_FUNCS([memset sqrt strcasecmp strerror strncasecmp strstr fdatasync ftruncate getcwd gettimeofday localtime_r memmove strerror]) # Checks for installed libraries AC_CHECK_LIB(sqlite3,sqlite3_prepare_v2,,AC_MSG_ERROR(['libsqlite3' is required but it doesn't seem to be installed on this system.]),-lm) AC_CHECK_LIB(z,inflateInit_,,AC_MSG_ERROR(['libz' is required but it doesn't seem to be installed on this system.]),-lm) AC_CONFIG_FILES([Makefile \ src/Makefile \ src/headers/Makefile \ src/gaiaaux/Makefile \ src/gaiaexif/Makefile \ src/gaiageo/Makefile \ src/gaiageo/flex/Makefile \ src/gaiageo/lemon/Makefile \ src/gaiageo/lemon/lemon_src/Makefile \ src/geopackage/Makefile \ src/spatialite/Makefile \ src/shapefiles/Makefile \ src/dxf/Makefile \ src/md5/Makefile \ src/srsinit/Makefile \ src/srsinit/epsg_update/Makefile \ src/virtualtext/Makefile \ src/wfs/Makefile \ test/Makefile \ test/sql_stmt_tests/Makefile \ test/sql_stmt_geos_tests/Makefile \ test/sql_stmt_geosadvanced_tests/Makefile \ test/sql_stmt_geostrunk_tests/Makefile \ test/sql_stmt_proj_tests/Makefile \ test/sql_stmt_mathsql_tests/Makefile \ test/sql_stmt_lwgeom_tests/Makefile \ test/sql_stmt_libxml2_tests/Makefile \ test/sql_stmt_security_tests/Makefile \ test/sql_stmt_xmlsec_tests/Makefile \ examples/Makefile \ Doxyfile \ spatialite.pc]) #----------------------------------------------------------------------- # --enable-mathsql # AC_ARG_ENABLE(mathsql, [AS_HELP_STRING( [--enable-mathsql], [enables SQL math functions [default=yes]])], [], [enable_mathsql=yes]) if test x"$enable_mathsql" != "xyes"; then AC_DEFINE(OMIT_MATHSQL) fi #----------------------------------------------------------------------- #----------------------------------------------------------------------- # --enable-geocallbacks # AC_ARG_ENABLE(geocallbacks, [AS_HELP_STRING( [--enable-geocallbacks], [enables geometry callbacks [default=no]])], [], [enable_geocallbacks=no]) if test x"$enable_geocallbacks" == "xyes"; then AC_CHECK_LIB(sqlite3,sqlite3_rtree_geometry_callback,,AC_MSG_ERROR([obsolete 'libsqlite3' (< v.3.7.3). please retry specifying: --disable-geocallbacks]),-lm) else AC_DEFINE(OMIT_GEOCALLBACKS) fi #----------------------------------------------------------------------- #----------------------------------------------------------------------- # --enable-proj # AC_ARG_ENABLE(proj, [AS_HELP_STRING( [--enable-proj], [enables PROJ.4 inclusion [default=yes]])], [], [enable_proj=yes]) if test x"$enable_proj" != "xno"; then AC_CHECK_HEADERS(proj_api.h,, [AC_MSG_ERROR([cannot find proj_api.h, bailing out])]) AC_SEARCH_LIBS(pj_init_plus,proj,,AC_MSG_ERROR(['libproj' is required but it doesn't seem to be installed on this system.]),-lm) else AC_DEFINE(OMIT_PROJ) fi #----------------------------------------------------------------------- #----------------------------------------------------------------------- # --enable-iconv # AC_ARG_ENABLE(iconv, [AS_HELP_STRING( [--enable-iconv], [enables ICONV inclusion [default=yes]])], [], [enable_iconv=yes]) if test x"$enable_iconv" != "xno"; then AC_CHECK_HEADERS(iconv.h,, [AC_MSG_ERROR([cannot find iconv.h, bailing out])]) # on some systems "iconv()" lives in libc. On others it lives in libiconv # on older systems "libiconv()" lives in libiconv AC_SEARCH_LIBS(iconv,iconv,, AC_SEARCH_LIBS(libiconv,iconv,,AC_MSG_ERROR(['libiconv' is required but it doesn't seem to be installed on this system.]),)) AC_SEARCH_LIBS(locale_charset,charset,, AC_SEARCH_LIBS(nl_langinfo,c,,AC_MSG_ERROR(['libcharset' is required but it doesn't seem to be installed on this system.]),)) else AC_DEFINE(OMIT_ICONV) fi #----------------------------------------------------------------------- # --enable-freexl # AC_ARG_ENABLE(freexl, [AS_HELP_STRING( [--enable-freexl], [enables FreeXL inclusion [default=yes]])], [], [enable_freexl=yes]) if test x"$enable_freexl" != "xno"; then AC_CHECK_HEADERS(freexl.h,, [AC_MSG_ERROR([cannot find freexl.h, bailing out])]) AC_SEARCH_LIBS(freexl_open,freexl,,AC_MSG_ERROR(['libfreexl' is required but it doesn't seem to be installed on this system.]),-lm) else AC_DEFINE(OMIT_FREEXL) fi #----------------------------------------------------------------------- #----------------------------------------------------------------------- # --enable-epsg # AC_ARG_ENABLE(epsg, [AS_HELP_STRING( [--enable-epsg], [enables full EPSG dataset support [default=yes]])], [], [enable_epsg=yes]) if test x"$enable_epsg" != "xyes"; then AC_DEFINE(OMIT_EPSG) fi #----------------------------------------------------------------------- #----------------------------------------------------------------------- # --enable-geos # AC_ARG_ENABLE(geos, [AS_HELP_STRING( [--enable-geos], [enables GEOS inclusion [default=yes]])], [], [enable_geos=yes]) if test x"$enable_geos" != "xno"; then #----------------------------------------------------------------------- # --with-geosconfig # AC_ARG_WITH([geosconfig], [AS_HELP_STRING([--with-geosconfig=FILE], [specify an alternative geos-config file])], [GEOSCONFIG="$withval"], [GEOSCONFIG=""]) if test "x$GEOSCONFIG" = "x"; then # GEOSCONFIG was not specified, so search within the current path AC_PATH_PROG([GEOSCONFIG], [geos-config]) # If we couldn't find geos-config, display an error if test "x$GEOSCONFIG" = "x"; then AC_MSG_ERROR([could not find geos-config within the current path. You may need to try re-running configure with a --with-geosconfig parameter.]) fi else # GEOSCONFIG was specified; display a message to the user if test "x$GEOSCONFIG" = "xyes"; then AC_MSG_ERROR([you must specify a parameter to --with-geosconfig, e.g. --with-geosconfig=/path/to/geos-config]) else if test -f $GEOSCONFIG; then AC_MSG_RESULT([Using user-specified geos-config file: $GEOSCONFIG]) else AC_MSG_ERROR([the user-specified geos-config file $GEOSCONFIG does not exist]) fi fi fi # Extract the linker and include flags GEOS_LDFLAGS=`$GEOSCONFIG --ldflags` GEOS_CFLAGS=-I`$GEOSCONFIG --includes` AC_SUBST([GEOS_LDFLAGS]) AC_SUBST([GEOS_CFLAGS]) # Ensure that we can parse geos_c.h CPPFLAGS_SAVE="$CPPFLAGS" CPPFLAGS="$GEOS_CFLAGS" AC_CHECK_HEADERS([geos_c.h],, [AC_MSG_ERROR([could not find geos_c.h - you may need to specify the directory of a geos-config file using --with-geosconfig])]) CPPFLAGS="$CPPFLAGS_SAVE" # Ensure we can link against libgeos_c LIBS_SAVE="$LIBS" LIBS="$GEOS_LDFLAGS" AC_SEARCH_LIBS(GEOSTopologyPreserveSimplify,geos_c,,AC_MSG_ERROR([could not find libgeos_c - you may need to specify the directory of a geos-config file using --with-geosconfig])) LIBS="$LIBS_SAVE" LIBS=$LIBS$GEOS_LDFLAGS' -lgeos_c' #----------------------------------------------------------------------- # --enable-geosadvanced # AC_ARG_ENABLE(geosadvanced, [AS_HELP_STRING( [--enable-geosadvanced], [enables GEOS advanced features [default=yes]])], [], [enable_geosadvanced=yes]) if test x"$enable_geosadvanced" != "xno"; then AC_SEARCH_LIBS(GEOSCoveredBy,geos_c,,AC_MSG_ERROR([obsolete 'libgeos_c' (< v.3.3.0). please retry specifying: --disable-geosadvanced.])) AC_DEFINE(GEOS_ADVANCED) fi #----------------------------------------------------------------------- # --enable-geostrunk # AC_ARG_ENABLE(geostrunk, [AS_HELP_STRING( [--enable-geostrunk], [enables GEOS-trunk experimental features [default=no]])], [], [enable_geostrunk=no]) if test x"$enable_geostrunk" != "xno"; then AC_SEARCH_LIBS(GEOSDelaunayTriangulation,geos_c,,AC_MSG_ERROR(['libgeos_c' (>= v.3.4.0) is required but it doesn't seem to be installed on this system.])) AC_DEFINE(GEOS_TRUNK) fi #----------------------------------------------------------------------- # --enable-lwgeom # AC_ARG_ENABLE(lwgeom, [AS_HELP_STRING( [--enable-lwgeom], [enables LWGEOM support [default=no]])], [], [enable_lwgeom=no]) if test x"$enable_lwgeom" != "xno"; then AC_CHECK_HEADERS(liblwgeom.h,, [AC_MSG_ERROR([cannot find liblwgeom.h, bailing out])]) _save_libs="$LIBS" LIBS=$LIBS' -llwgeom -lgeos_c' AC_LINK_IFELSE([AC_LANG_SOURCE([int main() { return lwgeom_make_valid(); return 0; } void lwgeom_init_allocators(void) { return; } ])], [AC_DEFINE(ENABLE_LWGEOM)], [AC_MSG_ERROR(['liblwgeom' doesn't seem to be installed on this system; unsupported lwgeom_make_valid().])]) LIBS="$_save_libs" LIBS=$LIBS' -llwgeom -lgeos_c' # # testing for PostGIS 2.1 - lwgeom_set_handlers # AC_SEARCH_LIBS(lwgeom_set_handlers,geos_c,AC_DEFINE(POSTGIS_2_1)) fi else AC_DEFINE(OMIT_GEOS) fi #----------------------------------------------------------------------- # --enable-libxml2 # AC_ARG_ENABLE(libxml2, [AS_HELP_STRING( [--enable-libxml2], [enables libxml2 inclusion [default=no]])], [], [enable_libxml2=no]) if test x"$enable_libxml2" != "xno"; then PKG_CHECK_MODULES([LIBXML2], [libxml-2.0], , AC_MSG_ERROR(['libxml2' is required but it doesn't seem to be installed on this system.])) AC_SUBST(LIBXML2_CFLAGS) AC_SUBST(LIBXML2_LIBS) AC_DEFINE(ENABLE_LIBXML2) fi #----------------------------------------------------------------------- # --enable-geopackage # AC_ARG_ENABLE(geopackage, [AS_HELP_STRING( [--enable-geopackage], [enables experimental GeoPackage raster function support [default=no]])], [], [enable_geopackage=no]) if test x"$enable_geopackage" != "xno"; then AC_DEFINE(ENABLE_GEOPACKAGE) fi AM_CONDITIONAL([ENABLE_GEOPACKAGE], [test x"$enable_geopackage" == "xyes"]) #----------------------------------------------------------------------- #----------------------------------------------------------------------- # --enable-gcov # AC_ARG_ENABLE(gcov, AC_HELP_STRING([--enable-gcov],[turn on code coverage analysis tools])) if test "x$enable_gcov" = "xyes"; then dnl Check for -fprofile-arcs and -ftest-coverage option CFLAGS=$CFLAGS" -fprofile-arcs -ftest-coverage -g" GCOV_FLAGS="-lgcov" fi #----------------------------------------------------------------------- #----------------------------------------------------------------------- # --enable-examples # AC_ARG_ENABLE(examples, [AS_HELP_STRING( [--enable-examples], [enables building examples [default=yes]])], [], [enable_examples=yes]) AM_CONDITIONAL(ENABLE_EXAMPLES, [test x"$enable_examples" != "xno"]) #----------------------------------------------------------------------- # Checking for MinGW AM_CONDITIONAL([MINGW], [test "$target_alias" = "mingw32"]) # Checking for Mac OsX AM_CONDITIONAL([MACOSX], [test "$target_alias" = "macosx"]) # Checking for Android AM_CONDITIONAL([ANDROID], [test "$target_alias" = "android"]) AC_OUTPUT libspatialite-4.1.1/m4/0000775000175000017500000000000012163503225011665 500000000000000libspatialite-4.1.1/m4/lt~obsolete.m40000664000175000017500000001375612163502133014432 00000000000000# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004. # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 5 lt~obsolete.m4 # These exist entirely to fool aclocal when bootstrapping libtool. # # In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) # which have later been changed to m4_define as they aren't part of the # exported API, or moved to Autoconf or Automake where they belong. # # The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN # in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us # using a macro with the same name in our local m4/libtool.m4 it'll # pull the old libtool.m4 in (it doesn't see our shiny new m4_define # and doesn't know about Autoconf macros at all.) # # So we provide this file, which has a silly filename so it's always # included after everything else. This provides aclocal with the # AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything # because those macros already exist, or will be overwritten later. # We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. # # Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. # Yes, that means every name once taken will need to remain here until # we give up compatibility with versions before 1.7, at which point # we need to keep only those names which we still refer to. # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) libspatialite-4.1.1/m4/ltoptions.m40000664000175000017500000002725612163502133014113 00000000000000# Helper functions for option handling. -*- Autoconf -*- # # Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation, # Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 7 ltoptions.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) # _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) # ------------------------------------------ m4_define([_LT_MANGLE_OPTION], [[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) # _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) # --------------------------------------- # Set option OPTION-NAME for macro MACRO-NAME, and if there is a # matching handler defined, dispatch to it. Other OPTION-NAMEs are # saved as a flag. m4_define([_LT_SET_OPTION], [m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), _LT_MANGLE_DEFUN([$1], [$2]), [m4_warning([Unknown $1 option `$2'])])[]dnl ]) # _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) # ------------------------------------------------------------ # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. m4_define([_LT_IF_OPTION], [m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) # _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) # ------------------------------------------------------- # Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME # are set. m4_define([_LT_UNLESS_OPTIONS], [m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), [m4_define([$0_found])])])[]dnl m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 ])[]dnl ]) # _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) # ---------------------------------------- # OPTION-LIST is a space-separated list of Libtool options associated # with MACRO-NAME. If any OPTION has a matching handler declared with # LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about # the unknown option and exit. m4_defun([_LT_SET_OPTIONS], [# Set options m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [_LT_SET_OPTION([$1], _LT_Option)]) m4_if([$1],[LT_INIT],[ dnl dnl Simply set some default values (i.e off) if boolean options were not dnl specified: _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no ]) _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no ]) dnl dnl If no reference was made to various pairs of opposing options, then dnl we run the default mode handler for the pair. For example, if neither dnl `shared' nor `disable-shared' was passed, we enable building of shared dnl archives by default: _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], [_LT_ENABLE_FAST_INSTALL]) ]) ])# _LT_SET_OPTIONS ## --------------------------------- ## ## Macros to handle LT_INIT options. ## ## --------------------------------- ## # _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) # ----------------------------------------- m4_define([_LT_MANGLE_DEFUN], [[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) # LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) # ----------------------------------------------- m4_define([LT_OPTION_DEFINE], [m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl ])# LT_OPTION_DEFINE # dlopen # ------ LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes ]) AU_DEFUN([AC_LIBTOOL_DLOPEN], [_LT_SET_OPTION([LT_INIT], [dlopen]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `dlopen' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) # win32-dll # --------- # Declare package support for building win32 dll's. LT_OPTION_DEFINE([LT_INIT], [win32-dll], [enable_win32_dll=yes case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) ;; esac test -z "$AS" && AS=as _LT_DECL([], [AS], [1], [Assembler program])dnl test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl ])# win32-dll AU_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_REQUIRE([AC_CANONICAL_HOST])dnl _LT_SET_OPTION([LT_INIT], [win32-dll]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `win32-dll' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) # _LT_ENABLE_SHARED([DEFAULT]) # ---------------------------- # implement the --enable-shared flag, and supports the `shared' and # `disable-shared' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_SHARED], [m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([shared], [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) _LT_DECL([build_libtool_libs], [enable_shared], [0], [Whether or not to build shared libraries]) ])# _LT_ENABLE_SHARED LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) # Old names: AC_DEFUN([AC_ENABLE_SHARED], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) ]) AC_DEFUN([AC_DISABLE_SHARED], [_LT_SET_OPTION([LT_INIT], [disable-shared]) ]) AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_SHARED], []) dnl AC_DEFUN([AM_DISABLE_SHARED], []) # _LT_ENABLE_STATIC([DEFAULT]) # ---------------------------- # implement the --enable-static flag, and support the `static' and # `disable-static' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_STATIC], [m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([static], [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_static=]_LT_ENABLE_STATIC_DEFAULT) _LT_DECL([build_old_libs], [enable_static], [0], [Whether or not to build static libraries]) ])# _LT_ENABLE_STATIC LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) # Old names: AC_DEFUN([AC_ENABLE_STATIC], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) ]) AC_DEFUN([AC_DISABLE_STATIC], [_LT_SET_OPTION([LT_INIT], [disable-static]) ]) AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_STATIC], []) dnl AC_DEFUN([AM_DISABLE_STATIC], []) # _LT_ENABLE_FAST_INSTALL([DEFAULT]) # ---------------------------------- # implement the --enable-fast-install flag, and support the `fast-install' # and `disable-fast-install' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_FAST_INSTALL], [m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([fast-install], [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) _LT_DECL([fast_install], [enable_fast_install], [0], [Whether or not to optimize for fast installation])dnl ])# _LT_ENABLE_FAST_INSTALL LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) # Old names: AU_DEFUN([AC_ENABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `fast-install' option into LT_INIT's first parameter.]) ]) AU_DEFUN([AC_DISABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], [disable-fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `disable-fast-install' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) # _LT_WITH_PIC([MODE]) # -------------------- # implement the --with-pic flag, and support the `pic-only' and `no-pic' # LT_INIT options. # MODE is either `yes' or `no'. If omitted, it defaults to `both'. m4_define([_LT_WITH_PIC], [AC_ARG_WITH([pic], [AS_HELP_STRING([--with-pic], [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], [pic_mode="$withval"], [pic_mode=default]) test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl ])# _LT_WITH_PIC LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) # Old name: AU_DEFUN([AC_LIBTOOL_PICMODE], [_LT_SET_OPTION([LT_INIT], [pic-only]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `pic-only' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) ## ----------------- ## ## LTDL_INIT Options ## ## ----------------- ## m4_define([_LTDL_MODE], []) LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], [m4_define([_LTDL_MODE], [nonrecursive])]) LT_OPTION_DEFINE([LTDL_INIT], [recursive], [m4_define([_LTDL_MODE], [recursive])]) LT_OPTION_DEFINE([LTDL_INIT], [subproject], [m4_define([_LTDL_MODE], [subproject])]) m4_define([_LTDL_TYPE], []) LT_OPTION_DEFINE([LTDL_INIT], [installable], [m4_define([_LTDL_TYPE], [installable])]) LT_OPTION_DEFINE([LTDL_INIT], [convenience], [m4_define([_LTDL_TYPE], [convenience])]) libspatialite-4.1.1/m4/ltsugar.m40000664000175000017500000001042412163502133013526 00000000000000# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 6 ltsugar.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) # lt_join(SEP, ARG1, [ARG2...]) # ----------------------------- # Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their # associated separator. # Needed until we can rely on m4_join from Autoconf 2.62, since all earlier # versions in m4sugar had bugs. m4_define([lt_join], [m4_if([$#], [1], [], [$#], [2], [[$2]], [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) m4_define([_lt_join], [m4_if([$#$2], [2], [], [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) # lt_car(LIST) # lt_cdr(LIST) # ------------ # Manipulate m4 lists. # These macros are necessary as long as will still need to support # Autoconf-2.59 which quotes differently. m4_define([lt_car], [[$1]]) m4_define([lt_cdr], [m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], [$#], 1, [], [m4_dquote(m4_shift($@))])]) m4_define([lt_unquote], $1) # lt_append(MACRO-NAME, STRING, [SEPARATOR]) # ------------------------------------------ # Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. # Note that neither SEPARATOR nor STRING are expanded; they are appended # to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). # No SEPARATOR is output if MACRO-NAME was previously undefined (different # than defined and empty). # # This macro is needed until we can rely on Autoconf 2.62, since earlier # versions of m4sugar mistakenly expanded SEPARATOR but not STRING. m4_define([lt_append], [m4_define([$1], m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) # lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) # ---------------------------------------------------------- # Produce a SEP delimited list of all paired combinations of elements of # PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list # has the form PREFIXmINFIXSUFFIXn. # Needed until we can rely on m4_combine added in Autoconf 2.62. m4_define([lt_combine], [m4_if(m4_eval([$# > 3]), [1], [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl [[m4_foreach([_Lt_prefix], [$2], [m4_foreach([_Lt_suffix], ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) # lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) # ----------------------------------------------------------------------- # Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited # by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. m4_define([lt_if_append_uniq], [m4_ifdef([$1], [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], [lt_append([$1], [$2], [$3])$4], [$5])], [lt_append([$1], [$2], [$3])$4])]) # lt_dict_add(DICT, KEY, VALUE) # ----------------------------- m4_define([lt_dict_add], [m4_define([$1($2)], [$3])]) # lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) # -------------------------------------------- m4_define([lt_dict_add_subkey], [m4_define([$1($2:$3)], [$4])]) # lt_dict_fetch(DICT, KEY, [SUBKEY]) # ---------------------------------- m4_define([lt_dict_fetch], [m4_ifval([$3], m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) # lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) # ----------------------------------------------------------------- m4_define([lt_if_dict_fetch], [m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], [$5], [$6])]) # lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) # -------------------------------------------------------------- m4_define([lt_dict_filter], [m4_if([$5], [], [], [lt_join(m4_quote(m4_default([$4], [[, ]])), lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl ]) libspatialite-4.1.1/m4/libtool.m40000664000175000017500000104515512163502133013523 00000000000000# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008, 2009, 2010 Free Software Foundation, # Inc. # Written by Gordon Matzigkeit, 1996 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. m4_define([_LT_COPYING], [dnl # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008, 2009, 2010 Free Software Foundation, # Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. # # GNU Libtool is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of # the License, or (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, or # obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ]) # serial 57 LT_INIT # LT_PREREQ(VERSION) # ------------------ # Complain and exit if this libtool version is less that VERSION. m4_defun([LT_PREREQ], [m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, [m4_default([$3], [m4_fatal([Libtool version $1 or higher is required], 63)])], [$2])]) # _LT_CHECK_BUILDDIR # ------------------ # Complain if the absolute build directory name contains unusual characters m4_defun([_LT_CHECK_BUILDDIR], [case `pwd` in *\ * | *\ *) AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; esac ]) # LT_INIT([OPTIONS]) # ------------------ AC_DEFUN([LT_INIT], [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl AC_BEFORE([$0], [LT_LANG])dnl AC_BEFORE([$0], [LT_OUTPUT])dnl AC_BEFORE([$0], [LTDL_INIT])dnl m4_require([_LT_CHECK_BUILDDIR])dnl dnl Autoconf doesn't catch unexpanded LT_ macros by default: m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 dnl unless we require an AC_DEFUNed macro: AC_REQUIRE([LTOPTIONS_VERSION])dnl AC_REQUIRE([LTSUGAR_VERSION])dnl AC_REQUIRE([LTVERSION_VERSION])dnl AC_REQUIRE([LTOBSOLETE_VERSION])dnl m4_require([_LT_PROG_LTMAIN])dnl _LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) dnl Parse OPTIONS _LT_SET_OPTIONS([$0], [$1]) # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' AC_SUBST(LIBTOOL)dnl _LT_SETUP # Only expand once: m4_define([LT_INIT]) ])# LT_INIT # Old names: AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PROG_LIBTOOL], []) dnl AC_DEFUN([AM_PROG_LIBTOOL], []) # _LT_CC_BASENAME(CC) # ------------------- # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. m4_defun([_LT_CC_BASENAME], [for cc_temp in $1""; do case $cc_temp in compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` ]) # _LT_FILEUTILS_DEFAULTS # ---------------------- # It is okay to use these file commands and assume they have been set # sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. m4_defun([_LT_FILEUTILS_DEFAULTS], [: ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} ])# _LT_FILEUTILS_DEFAULTS # _LT_SETUP # --------- m4_defun([_LT_SETUP], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl _LT_DECL([], [host_alias], [0], [The host system])dnl _LT_DECL([], [host], [0])dnl _LT_DECL([], [host_os], [0])dnl dnl _LT_DECL([], [build_alias], [0], [The build system])dnl _LT_DECL([], [build], [0])dnl _LT_DECL([], [build_os], [0])dnl dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl dnl AC_REQUIRE([AC_PROG_LN_S])dnl test -z "$LN_S" && LN_S="ln -s" _LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl dnl AC_REQUIRE([LT_CMD_MAX_LEN])dnl _LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl _LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl m4_require([_LT_CMD_RELOAD])dnl m4_require([_LT_CHECK_MAGIC_METHOD])dnl m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl m4_require([_LT_CMD_OLD_ARCHIVE])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_WITH_SYSROOT])dnl _LT_CONFIG_LIBTOOL_INIT([ # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi ]) if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi _LT_CHECK_OBJDIR m4_require([_LT_TAG_COMPILER])dnl case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld="$lt_cv_prog_gnu_ld" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o _LT_CC_BASENAME([$compiler]) # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then _LT_PATH_MAGIC fi ;; esac # Use C for the default configuration in the libtool script LT_SUPPORTED_TAG([CC]) _LT_LANG_C_CONFIG _LT_LANG_DEFAULT_CONFIG _LT_CONFIG_COMMANDS ])# _LT_SETUP # _LT_PREPARE_SED_QUOTE_VARS # -------------------------- # Define a few sed substitution that help us do robust quoting. m4_defun([_LT_PREPARE_SED_QUOTE_VARS], [# Backslashify metacharacters that are still active within # double-quoted strings. sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\([["`\\]]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' ]) # _LT_PROG_LTMAIN # --------------- # Note that this code is called both from `configure', and `config.status' # now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, # `config.status' has no value for ac_aux_dir unless we are using Automake, # so we pass a copy along to make sure it has a sensible value anyway. m4_defun([_LT_PROG_LTMAIN], [m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl _LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) ltmain="$ac_aux_dir/ltmain.sh" ])# _LT_PROG_LTMAIN ## ------------------------------------- ## ## Accumulate code for creating libtool. ## ## ------------------------------------- ## # So that we can recreate a full libtool script including additional # tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS # in macros and then make a single call at the end using the `libtool' # label. # _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) # ---------------------------------------- # Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL_INIT], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_INIT], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_INIT]) # _LT_CONFIG_LIBTOOL([COMMANDS]) # ------------------------------ # Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) # _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) # ----------------------------------------------------- m4_defun([_LT_CONFIG_SAVE_COMMANDS], [_LT_CONFIG_LIBTOOL([$1]) _LT_CONFIG_LIBTOOL_INIT([$2]) ]) # _LT_FORMAT_COMMENT([COMMENT]) # ----------------------------- # Add leading comment marks to the start of each line, and a trailing # full-stop to the whole comment if one is not present already. m4_define([_LT_FORMAT_COMMENT], [m4_ifval([$1], [ m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) )]) ## ------------------------ ## ## FIXME: Eliminate VARNAME ## ## ------------------------ ## # _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) # ------------------------------------------------------------------- # CONFIGNAME is the name given to the value in the libtool script. # VARNAME is the (base) name used in the configure script. # VALUE may be 0, 1 or 2 for a computed quote escaped value based on # VARNAME. Any other value will be used directly. m4_define([_LT_DECL], [lt_if_append_uniq([lt_decl_varnames], [$2], [, ], [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], [m4_ifval([$1], [$1], [$2])]) lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) m4_ifval([$4], [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) lt_dict_add_subkey([lt_decl_dict], [$2], [tagged?], [m4_ifval([$5], [yes], [no])])]) ]) # _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) # -------------------------------------------------------- m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) # lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_tag_varnames], [_lt_decl_filter([tagged?], [yes], $@)]) # _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) # --------------------------------------------------------- m4_define([_lt_decl_filter], [m4_case([$#], [0], [m4_fatal([$0: too few arguments: $#])], [1], [m4_fatal([$0: too few arguments: $#: $1])], [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], [lt_dict_filter([lt_decl_dict], $@)])[]dnl ]) # lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) # -------------------------------------------------- m4_define([lt_decl_quote_varnames], [_lt_decl_filter([value], [1], $@)]) # lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_dquote_varnames], [_lt_decl_filter([value], [2], $@)]) # lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_varnames_tagged], [m4_assert([$# <= 2])dnl _$0(m4_quote(m4_default([$1], [[, ]])), m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) m4_define([_lt_decl_varnames_tagged], [m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) # lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_all_varnames], [_$0(m4_quote(m4_default([$1], [[, ]])), m4_if([$2], [], m4_quote(lt_decl_varnames), m4_quote(m4_shift($@))))[]dnl ]) m4_define([_lt_decl_all_varnames], [lt_join($@, lt_decl_varnames_tagged([$1], lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl ]) # _LT_CONFIG_STATUS_DECLARE([VARNAME]) # ------------------------------------ # Quote a variable value, and forward it to `config.status' so that its # declaration there will have the same value as in `configure'. VARNAME # must have a single quote delimited value for this to work. m4_define([_LT_CONFIG_STATUS_DECLARE], [$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) # _LT_CONFIG_STATUS_DECLARATIONS # ------------------------------ # We delimit libtool config variables with single quotes, so when # we write them to config.status, we have to be sure to quote all # embedded single quotes properly. In configure, this macro expands # each variable declared with _LT_DECL (and _LT_TAGDECL) into: # # ='`$ECHO "$" | $SED "$delay_single_quote_subst"`' m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], [m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAGS # ---------------- # Output comment and list of tags supported by the script m4_defun([_LT_LIBTOOL_TAGS], [_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl available_tags="_LT_TAGS"dnl ]) # _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) # ----------------------------------- # Extract the dictionary values for VARNAME (optionally with TAG) and # expand to a commented shell variable setting: # # # Some comment about what VAR is for. # visible_name=$lt_internal_name m4_define([_LT_LIBTOOL_DECLARE], [_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [description])))[]dnl m4_pushdef([_libtool_name], m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), [0], [_libtool_name=[$]$1], [1], [_libtool_name=$lt_[]$1], [2], [_libtool_name=$lt_[]$1], [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl ]) # _LT_LIBTOOL_CONFIG_VARS # ----------------------- # Produce commented declarations of non-tagged libtool config variables # suitable for insertion in the LIBTOOL CONFIG section of the `libtool' # script. Tagged libtool config variables (even for the LIBTOOL CONFIG # section) are produced by _LT_LIBTOOL_TAG_VARS. m4_defun([_LT_LIBTOOL_CONFIG_VARS], [m4_foreach([_lt_var], m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAG_VARS(TAG) # ------------------------- m4_define([_LT_LIBTOOL_TAG_VARS], [m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) # _LT_TAGVAR(VARNAME, [TAGNAME]) # ------------------------------ m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) # _LT_CONFIG_COMMANDS # ------------------- # Send accumulated output to $CONFIG_STATUS. Thanks to the lists of # variables for single and double quote escaping we saved from calls # to _LT_DECL, we can put quote escaped variables declarations # into `config.status', and then the shell code to quote escape them in # for loops in `config.status'. Finally, any additional code accumulated # from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. m4_defun([_LT_CONFIG_COMMANDS], [AC_PROVIDE_IFELSE([LT_OUTPUT], dnl If the libtool generation code has been placed in $CONFIG_LT, dnl instead of duplicating it all over again into config.status, dnl then we will have config.status run $CONFIG_LT later, so it dnl needs to know what name is stored there: [AC_CONFIG_COMMANDS([libtool], [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], dnl If the libtool generation code is destined for config.status, dnl expand the accumulated commands and init code now: [AC_CONFIG_COMMANDS([libtool], [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) ])#_LT_CONFIG_COMMANDS # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], [ # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' _LT_CONFIG_STATUS_DECLARATIONS LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$[]1 _LTECHO_EOF' } # Quote evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_quote_varnames); do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_dquote_varnames); do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done _LT_OUTPUT_LIBTOOL_INIT ]) # _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) # ------------------------------------ # Generate a child script FILE with all initialization necessary to # reuse the environment learned by the parent script, and make the # file executable. If COMMENT is supplied, it is inserted after the # `#!' sequence but before initialization text begins. After this # macro, additional text can be appended to FILE to form the body of # the child script. The macro ends with non-zero status if the # file could not be fully written (such as if the disk is full). m4_ifdef([AS_INIT_GENERATED], [m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], [m4_defun([_LT_GENERATED_FILE_INIT], [m4_require([AS_PREPARE])]dnl [m4_pushdef([AS_MESSAGE_LOG_FD])]dnl [lt_write_fail=0 cat >$1 <<_ASEOF || lt_write_fail=1 #! $SHELL # Generated by $as_me. $2 SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$1 <<\_ASEOF || lt_write_fail=1 AS_SHELL_SANITIZE _AS_PREPARE exec AS_MESSAGE_FD>&1 _ASEOF test $lt_write_fail = 0 && chmod +x $1[]dnl m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT # LT_OUTPUT # --------- # This macro allows early generation of the libtool script (before # AC_OUTPUT is called), incase it is used in configure for compilation # tests. AC_DEFUN([LT_OUTPUT], [: ${CONFIG_LT=./config.lt} AC_MSG_NOTICE([creating $CONFIG_LT]) _LT_GENERATED_FILE_INIT(["$CONFIG_LT"], [# Run this file to recreate a libtool stub with the current configuration.]) cat >>"$CONFIG_LT" <<\_LTEOF lt_cl_silent=false exec AS_MESSAGE_LOG_FD>>config.log { echo AS_BOX([Running $as_me.]) } >&AS_MESSAGE_LOG_FD lt_cl_help="\ \`$as_me' creates a local libtool stub from the current configuration, for use in further configure time tests before the real libtool is generated. Usage: $[0] [[OPTIONS]] -h, --help print this help, then exit -V, --version print version number, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files Report bugs to ." lt_cl_version="\ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) configured by $[0], generated by m4_PACKAGE_STRING. Copyright (C) 2010 Free Software Foundation, Inc. This config.lt script is free software; the Free Software Foundation gives unlimited permision to copy, distribute and modify it." while test $[#] != 0 do case $[1] in --version | --v* | -V ) echo "$lt_cl_version"; exit 0 ;; --help | --h* | -h ) echo "$lt_cl_help"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --quiet | --q* | --silent | --s* | -q ) lt_cl_silent=: ;; -*) AC_MSG_ERROR([unrecognized option: $[1] Try \`$[0] --help' for more information.]) ;; *) AC_MSG_ERROR([unrecognized argument: $[1] Try \`$[0] --help' for more information.]) ;; esac shift done if $lt_cl_silent; then exec AS_MESSAGE_FD>/dev/null fi _LTEOF cat >>"$CONFIG_LT" <<_LTEOF _LT_OUTPUT_LIBTOOL_COMMANDS_INIT _LTEOF cat >>"$CONFIG_LT" <<\_LTEOF AC_MSG_NOTICE([creating $ofile]) _LT_OUTPUT_LIBTOOL_COMMANDS AS_EXIT(0) _LTEOF chmod +x "$CONFIG_LT" # configure is writing to config.log, but config.lt does its own redirection, # appending to config.log, which fails on DOS, as config.log is still kept # open by configure. Here we exec the FD to /dev/null, effectively closing # config.log, so it can be properly (re)opened and appended to by config.lt. lt_cl_success=: test "$silent" = yes && lt_config_lt_args="$lt_config_lt_args --quiet" exec AS_MESSAGE_LOG_FD>/dev/null $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false exec AS_MESSAGE_LOG_FD>>config.log $lt_cl_success || AS_EXIT(1) ])# LT_OUTPUT # _LT_CONFIG(TAG) # --------------- # If TAG is the built-in tag, create an initial libtool script with a # default configuration from the untagged config vars. Otherwise add code # to config.status for appending the configuration named by TAG from the # matching tagged config vars. m4_defun([_LT_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_CONFIG_SAVE_COMMANDS([ m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl m4_if(_LT_TAG, [C], [ # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi cfgfile="${ofile}T" trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # _LT_COPYING _LT_LIBTOOL_TAGS # ### BEGIN LIBTOOL CONFIG _LT_LIBTOOL_CONFIG_VARS _LT_LIBTOOL_TAG_VARS # ### END LIBTOOL CONFIG _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac _LT_PROG_LTMAIN # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) _LT_PROG_REPLACE_SHELLFNS mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ], [cat <<_LT_EOF >> "$ofile" dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded dnl in a comment (ie after a #). # ### BEGIN LIBTOOL TAG CONFIG: $1 _LT_LIBTOOL_TAG_VARS(_LT_TAG) # ### END LIBTOOL TAG CONFIG: $1 _LT_EOF ])dnl /m4_if ], [m4_if([$1], [], [ PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile'], []) ])dnl /_LT_CONFIG_SAVE_COMMANDS ])# _LT_CONFIG # LT_SUPPORTED_TAG(TAG) # --------------------- # Trace this macro to discover what tags are supported by the libtool # --tag option, using: # autoconf --trace 'LT_SUPPORTED_TAG:$1' AC_DEFUN([LT_SUPPORTED_TAG], []) # C support is built-in for now m4_define([_LT_LANG_C_enabled], []) m4_define([_LT_TAGS], []) # LT_LANG(LANG) # ------------- # Enable libtool support for the given language if not already enabled. AC_DEFUN([LT_LANG], [AC_BEFORE([$0], [LT_OUTPUT])dnl m4_case([$1], [C], [_LT_LANG(C)], [C++], [_LT_LANG(CXX)], [Java], [_LT_LANG(GCJ)], [Fortran 77], [_LT_LANG(F77)], [Fortran], [_LT_LANG(FC)], [Windows Resource], [_LT_LANG(RC)], [m4_ifdef([_LT_LANG_]$1[_CONFIG], [_LT_LANG($1)], [m4_fatal([$0: unsupported language: "$1"])])])dnl ])# LT_LANG # _LT_LANG(LANGNAME) # ------------------ m4_defun([_LT_LANG], [m4_ifdef([_LT_LANG_]$1[_enabled], [], [LT_SUPPORTED_TAG([$1])dnl m4_append([_LT_TAGS], [$1 ])dnl m4_define([_LT_LANG_]$1[_enabled], [])dnl _LT_LANG_$1_CONFIG($1)])dnl ])# _LT_LANG # _LT_LANG_DEFAULT_CONFIG # ----------------------- m4_defun([_LT_LANG_DEFAULT_CONFIG], [AC_PROVIDE_IFELSE([AC_PROG_CXX], [LT_LANG(CXX)], [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) AC_PROVIDE_IFELSE([AC_PROG_F77], [LT_LANG(F77)], [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) AC_PROVIDE_IFELSE([AC_PROG_FC], [LT_LANG(FC)], [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal dnl pulling things in needlessly. AC_PROVIDE_IFELSE([AC_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([LT_PROG_GCJ], [LT_LANG(GCJ)], [m4_ifdef([AC_PROG_GCJ], [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([A][M_PROG_GCJ], [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([LT_PROG_GCJ], [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) AC_PROVIDE_IFELSE([LT_PROG_RC], [LT_LANG(RC)], [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) ])# _LT_LANG_DEFAULT_CONFIG # Obsolete macros: AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_CXX], []) dnl AC_DEFUN([AC_LIBTOOL_F77], []) dnl AC_DEFUN([AC_LIBTOOL_FC], []) dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) dnl AC_DEFUN([AC_LIBTOOL_RC], []) # _LT_TAG_COMPILER # ---------------- m4_defun([_LT_TAG_COMPILER], [AC_REQUIRE([AC_PROG_CC])dnl _LT_DECL([LTCC], [CC], [1], [A C compiler])dnl _LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl _LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl _LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC ])# _LT_TAG_COMPILER # _LT_COMPILER_BOILERPLATE # ------------------------ # Check for compiler boilerplate output or warnings with # the simple compiler test code. m4_defun([_LT_COMPILER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ])# _LT_COMPILER_BOILERPLATE # _LT_LINKER_BOILERPLATE # ---------------------- # Check for linker boilerplate output or warnings with # the simple link test code. m4_defun([_LT_LINKER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ])# _LT_LINKER_BOILERPLATE # _LT_REQUIRED_DARWIN_CHECKS # ------------------------- m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ case $host_os in rhapsody* | darwin*) AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) AC_CHECK_TOOL([LIPO], [lipo], [:]) AC_CHECK_TOOL([OTOOL], [otool], [:]) AC_CHECK_TOOL([OTOOL64], [otool64], [:]) _LT_DECL([], [DSYMUTIL], [1], [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) _LT_DECL([], [NMEDIT], [1], [Tool to change global to local symbols on Mac OS X]) _LT_DECL([], [LIPO], [1], [Tool to manipulate fat objects and archives on Mac OS X]) _LT_DECL([], [OTOOL], [1], [ldd/readelf like tool for Mach-O binaries on Mac OS X]) _LT_DECL([], [OTOOL64], [1], [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], [lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -rf libconftest.dylib* rm -f conftest.* fi]) AC_CACHE_CHECK([for -exported_symbols_list linker flag], [lt_cv_ld_exported_symbols_list], [lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [lt_cv_ld_exported_symbols_list=yes], [lt_cv_ld_exported_symbols_list=no]) LDFLAGS="$save_LDFLAGS" ]) AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], [lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD cat > conftest.c << _LT_EOF int main() { return 0;} _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then lt_cv_ld_force_load=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM ]) case $host_os in rhapsody* | darwin1.[[012]]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 10.[[012]]*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test "$lt_cv_apple_cc_single_mod" = "yes"; then _lt_dar_single_mod='$single_module' fi if test "$lt_cv_ld_exported_symbols_list" = "yes"; then _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac ]) # _LT_DARWIN_LINKER_FEATURES # -------------------------- # Checks for linker and compiler features on darwin m4_defun([_LT_DARWIN_LINKER_FEATURES], [ m4_require([_LT_REQUIRED_DARWIN_CHECKS]) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported if test "$lt_cv_ld_force_load" = "yes"; then _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' else _LT_TAGVAR(whole_archive_flag_spec, $1)='' fi _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=func_echo_all _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" m4_if([$1], [CXX], [ if test "$lt_cv_apple_cc_single_mod" != "yes"; then _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" fi ],[]) else _LT_TAGVAR(ld_shlibs, $1)=no fi ]) # _LT_SYS_MODULE_PATH_AIX([TAGNAME]) # ---------------------------------- # Links a minimal program and checks the executable # for the system default hardcoded library path. In most cases, # this is /usr/lib:/lib, but when the MPI compilers are used # the location of the communication and MPI libs are included too. # If we don't find anything, use the default library path according # to the aix ld manual. # Store the results from the different compilers for each TAGNAME. # Allow to override them for all tags through lt_cv_aix_libpath. m4_defun([_LT_SYS_MODULE_PATH_AIX], [m4_require([_LT_DECL_SED])dnl if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ lt_aix_libpath_sed='[ /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }]' _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi],[]) if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib" fi ]) aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) fi ])# _LT_SYS_MODULE_PATH_AIX # _LT_SHELL_INIT(ARG) # ------------------- m4_define([_LT_SHELL_INIT], [m4_divert_text([M4SH-INIT], [$1 ])])# _LT_SHELL_INIT # _LT_PROG_ECHO_BACKSLASH # ----------------------- # Find how we can fake an echo command that does not interpret backslash. # In particular, with Autoconf 2.60 or later we add some code to the start # of the generated configure script which will find a shell with a builtin # printf (which we can use as an echo command). m4_defun([_LT_PROG_ECHO_BACKSLASH], [ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO AC_MSG_CHECKING([how to print strings]) # Test print first, because it will be a builtin if present. if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='printf %s\n' else # Use this function as a fallback that always works. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $[]1 _LTECHO_EOF' } ECHO='func_fallback_echo' fi # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } case "$ECHO" in printf*) AC_MSG_RESULT([printf]) ;; print*) AC_MSG_RESULT([print -r]) ;; *) AC_MSG_RESULT([cat]) ;; esac m4_ifdef([_AS_DETECT_SUGGESTED], [_AS_DETECT_SUGGESTED([ test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO PATH=/empty FPATH=/empty; export PATH FPATH test "X`printf %s $ECHO`" = "X$ECHO" \ || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) _LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) ])# _LT_PROG_ECHO_BACKSLASH # _LT_WITH_SYSROOT # ---------------- AC_DEFUN([_LT_WITH_SYSROOT], [AC_MSG_CHECKING([for sysroot]) AC_ARG_WITH([sysroot], [ --with-sysroot[=DIR] Search for dependent libraries within DIR (or the compiler's sysroot if not specified).], [], [with_sysroot=no]) dnl lt_sysroot will always be passed unquoted. We quote it here dnl in case the user passed a directory name. lt_sysroot= case ${with_sysroot} in #( yes) if test "$GCC" = yes; then lt_sysroot=`$CC --print-sysroot 2>/dev/null` fi ;; #( /*) lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` ;; #( no|'') ;; #( *) AC_MSG_RESULT([${with_sysroot}]) AC_MSG_ERROR([The sysroot must be an absolute path.]) ;; esac AC_MSG_RESULT([${lt_sysroot:-no}]) _LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl [dependent libraries, and in which our libraries should be installed.])]) # _LT_ENABLE_LOCK # --------------- m4_defun([_LT_ENABLE_LOCK], [AC_ARG_ENABLE([libtool-lock], [AS_HELP_STRING([--disable-libtool-lock], [avoid locking (might break parallel builds)])]) test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, [AC_LANG_PUSH(C) AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) AC_LANG_POP]) if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; sparc*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) LD="${LD-ld} -m elf64_sparc" ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" ])# _LT_ENABLE_LOCK # _LT_PROG_AR # ----------- m4_defun([_LT_PROG_AR], [AC_CHECK_TOOLS(AR, [ar], false) : ${AR=ar} : ${AR_FLAGS=cru} _LT_DECL([], [AR], [1], [The archiver]) _LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], [lt_cv_ar_at_file=no AC_COMPILE_IFELSE([AC_LANG_PROGRAM], [echo conftest.$ac_objext > conftest.lst lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' AC_TRY_EVAL([lt_ar_try]) if test "$ac_status" -eq 0; then # Ensure the archiver fails upon bogus file names. rm -f conftest.$ac_objext libconftest.a AC_TRY_EVAL([lt_ar_try]) if test "$ac_status" -ne 0; then lt_cv_ar_at_file=@ fi fi rm -f conftest.* libconftest.a ]) ]) if test "x$lt_cv_ar_at_file" = xno; then archiver_list_spec= else archiver_list_spec=$lt_cv_ar_at_file fi _LT_DECL([], [archiver_list_spec], [1], [How to feed a file listing to the archiver]) ])# _LT_PROG_AR # _LT_CMD_OLD_ARCHIVE # ------------------- m4_defun([_LT_CMD_OLD_ARCHIVE], [_LT_PROG_AR AC_CHECK_TOOL(STRIP, strip, :) test -z "$STRIP" && STRIP=: _LT_DECL([], [STRIP], [1], [A symbol stripping program]) AC_CHECK_TOOL(RANLIB, ranlib, :) test -z "$RANLIB" && RANLIB=: _LT_DECL([], [RANLIB], [1], [Commands used to install an old-style archive]) # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi case $host_os in darwin*) lock_old_archive_extraction=yes ;; *) lock_old_archive_extraction=no ;; esac _LT_DECL([], [old_postinstall_cmds], [2]) _LT_DECL([], [old_postuninstall_cmds], [2]) _LT_TAGDECL([], [old_archive_cmds], [2], [Commands used to build an old-style archive]) _LT_DECL([], [lock_old_archive_extraction], [0], [Whether to use a lock for old archive extraction]) ])# _LT_CMD_OLD_ARCHIVE # _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------------------- # Check whether the given compiler option works AC_DEFUN([_LT_COMPILER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$3" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi fi $RM conftest* ]) if test x"[$]$2" = xyes; then m4_if([$5], , :, [$5]) else m4_if([$6], , :, [$6]) fi ])# _LT_COMPILER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) # _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------- # Check whether the given linker option works AC_DEFUN([_LT_LINKER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $3" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&AS_MESSAGE_LOG_FD $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi else $2=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" ]) if test x"[$]$2" = xyes; then m4_if([$4], , :, [$4]) else m4_if([$5], , :, [$5]) fi ])# _LT_LINKER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) # LT_CMD_MAX_LEN #--------------- AC_DEFUN([LT_CMD_MAX_LEN], [AC_REQUIRE([AC_CANONICAL_HOST])dnl # find the maximum length of command line arguments AC_MSG_CHECKING([the maximum length of command line arguments]) AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; mint*) # On MiNT this can take a long time and run out of memory. lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8 ; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac ]) if test -n $lt_cv_sys_max_cmd_len ; then AC_MSG_RESULT($lt_cv_sys_max_cmd_len) else AC_MSG_RESULT(none) fi max_cmd_len=$lt_cv_sys_max_cmd_len _LT_DECL([], [max_cmd_len], [0], [What is the maximum length of a command?]) ])# LT_CMD_MAX_LEN # Old name: AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) # _LT_HEADER_DLFCN # ---------------- m4_defun([_LT_HEADER_DLFCN], [AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl ])# _LT_HEADER_DLFCN # _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, # ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) # ---------------------------------------------------------------- m4_defun([_LT_TRY_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test "$cross_compiling" = yes; then : [$4] else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF [#line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisbility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; }] _LT_EOF if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) $1 ;; x$lt_dlneed_uscore) $2 ;; x$lt_dlunknown|x*) $3 ;; esac else : # compilation failed $3 fi fi rm -fr conftest* ])# _LT_TRY_DLOPEN_SELF # LT_SYS_DLOPEN_SELF # ------------------ AC_DEFUN([LT_SYS_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ]) ;; *) AC_CHECK_FUNC([shl_load], [lt_cv_dlopen="shl_load"], [AC_CHECK_LIB([dld], [shl_load], [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], [AC_CHECK_FUNC([dlopen], [lt_cv_dlopen="dlopen"], [AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], [AC_CHECK_LIB([svld], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], [AC_CHECK_LIB([dld], [dld_link], [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) ]) ]) ]) ]) ]) ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" AC_CACHE_CHECK([whether a program can dlopen itself], lt_cv_dlopen_self, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) ]) if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" AC_CACHE_CHECK([whether a statically linked program can dlopen itself], lt_cv_dlopen_self_static, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) ]) fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi _LT_DECL([dlopen_support], [enable_dlopen], [0], [Whether dlopen is supported]) _LT_DECL([dlopen_self], [enable_dlopen_self], [0], [Whether dlopen of programs is supported]) _LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], [Whether dlopen of statically linked programs is supported]) ])# LT_SYS_DLOPEN_SELF # Old name: AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) # _LT_COMPILER_C_O([TAGNAME]) # --------------------------- # Check to see if options -c and -o are simultaneously supported by compiler. # This macro does not hard code the compiler like AC_PROG_CC_C_O. m4_defun([_LT_COMPILER_C_O], [m4_require([_LT_DECL_SED])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes fi fi chmod u+w . 2>&AS_MESSAGE_LOG_FD $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* ]) _LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], [Does compiler simultaneously support -c and -o options?]) ])# _LT_COMPILER_C_O # _LT_COMPILER_FILE_LOCKS([TAGNAME]) # ---------------------------------- # Check to see if we can do hard links to lock some files if needed m4_defun([_LT_COMPILER_FILE_LOCKS], [m4_require([_LT_ENABLE_LOCK])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_COMPILER_C_O([$1]) hard_links="nottested" if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user AC_MSG_CHECKING([if we can lock with hard links]) hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no AC_MSG_RESULT([$hard_links]) if test "$hard_links" = no; then AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) need_locks=warn fi else need_locks=no fi _LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) ])# _LT_COMPILER_FILE_LOCKS # _LT_CHECK_OBJDIR # ---------------- m4_defun([_LT_CHECK_OBJDIR], [AC_CACHE_CHECK([for objdir], [lt_cv_objdir], [rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null]) objdir=$lt_cv_objdir _LT_DECL([], [objdir], [0], [The name of the directory that contains temporary libtool files])dnl m4_pattern_allow([LT_OBJDIR])dnl AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/", [Define to the sub-directory in which libtool stores uninstalled libraries.]) ])# _LT_CHECK_OBJDIR # _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) # -------------------------------------- # Check hardcoding attributes. m4_defun([_LT_LINKER_HARDCODE_LIBPATH], [AC_MSG_CHECKING([how to hardcode library paths into programs]) _LT_TAGVAR(hardcode_action, $1)= if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || test -n "$_LT_TAGVAR(runpath_var, $1)" || test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then # We can hardcode non-existent directories. if test "$_LT_TAGVAR(hardcode_direct, $1)" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no && test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then # Linking always hardcodes the temporary library directory. _LT_TAGVAR(hardcode_action, $1)=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. _LT_TAGVAR(hardcode_action, $1)=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. _LT_TAGVAR(hardcode_action, $1)=unsupported fi AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) if test "$_LT_TAGVAR(hardcode_action, $1)" = relink || test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi _LT_TAGDECL([], [hardcode_action], [0], [How to hardcode a shared library path into an executable]) ])# _LT_LINKER_HARDCODE_LIBPATH # _LT_CMD_STRIPLIB # ---------------- m4_defun([_LT_CMD_STRIPLIB], [m4_require([_LT_DECL_EGREP]) striplib= old_striplib= AC_MSG_CHECKING([whether stripping libraries is possible]) if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" AC_MSG_RESULT([yes]) else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi ;; *) AC_MSG_RESULT([no]) ;; esac fi _LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) _LT_DECL([], [striplib], [1]) ])# _LT_CMD_STRIPLIB # _LT_SYS_DYNAMIC_LINKER([TAG]) # ----------------------------- # PORTME Fill in your ld.so characteristics m4_defun([_LT_SYS_DYNAMIC_LINKER], [AC_REQUIRE([AC_CANONICAL_HOST])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_OBJDUMP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl AC_MSG_CHECKING([dynamic linker characteristics]) m4_if([$1], [], [ if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac case $host_os in mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;; *) lt_sed_strip_eq="s,=/,/,g" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in *\;*) # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` ;; *) lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ;; esac # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path/$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" else test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo="/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[[lt_foo]]++; } if (lt_freq[[lt_foo]] == 1) { print lt_foo; } }'` # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's,/\([[A-Za-z]]:\),\1,g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi]) library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[[4-9]]*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[[01]] | aix4.[[01]].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[[45]]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$cc_basename in yes,*) # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ;; esac dynamic_linker='Win32 ld.exe' ;; *,cl*) # Native MSVC libname_spec='$name' soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' library_names_spec='${libname}.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec="$LIB" if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then # It is most probably a Windows format PATH. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC wrapper library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[[123]]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[[01]]* | freebsdelf3.[[01]]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; haiku*) version_type=linux need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LIBRARY_PATH shlibpath_overrides_runpath=yes sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' # or fails outright, so override atomically: install_override_mode=555 ;; interix[[3-9]]*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], [lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], [lt_cv_shlibpath_overrides_runpath=yes])]) LDFLAGS=$save_LDFLAGS libdir=$save_libdir ]) shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Add ABI-specific directories to the system library path. sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[[89]] | openbsd2.[[89]].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac AC_MSG_RESULT([$dynamic_linker]) test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi _LT_DECL([], [variables_saved_for_relink], [1], [Variables whose values should be saved in libtool wrapper scripts and restored at link time]) _LT_DECL([], [need_lib_prefix], [0], [Do we need the "lib" prefix for modules?]) _LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) _LT_DECL([], [version_type], [0], [Library versioning type]) _LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) _LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) _LT_DECL([], [shlibpath_overrides_runpath], [0], [Is shlibpath searched before the hard-coded library search path?]) _LT_DECL([], [libname_spec], [1], [Format of library name prefix]) _LT_DECL([], [library_names_spec], [1], [[List of archive names. First name is the real one, the rest are links. The last name is the one that the linker finds with -lNAME]]) _LT_DECL([], [soname_spec], [1], [[The coded name of the library, if different from the real name]]) _LT_DECL([], [install_override_mode], [1], [Permission mode override for installation of shared libraries]) _LT_DECL([], [postinstall_cmds], [2], [Command to use after installation of a shared archive]) _LT_DECL([], [postuninstall_cmds], [2], [Command to use after uninstallation of a shared archive]) _LT_DECL([], [finish_cmds], [2], [Commands used to finish a libtool library installation in a directory]) _LT_DECL([], [finish_eval], [1], [[As "finish_cmds", except a single script fragment to be evaled but not shown]]) _LT_DECL([], [hardcode_into_libs], [0], [Whether we should hardcode library paths into libraries]) _LT_DECL([], [sys_lib_search_path_spec], [2], [Compile-time system search path for libraries]) _LT_DECL([], [sys_lib_dlsearch_path_spec], [2], [Run-time system search path for libraries]) ])# _LT_SYS_DYNAMIC_LINKER # _LT_PATH_TOOL_PREFIX(TOOL) # -------------------------- # find a file program which can recognize shared library AC_DEFUN([_LT_PATH_TOOL_PREFIX], [m4_require([_LT_DECL_EGREP])dnl AC_MSG_CHECKING([for $1]) AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, [case $MAGIC_CMD in [[\\/*] | ?:[\\/]*]) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR dnl $ac_dummy forces splitting on constant user-supplied paths. dnl POSIX.2 word splitting is done only on the output of word expansions, dnl not every word. This closes a longstanding sh security hole. ac_dummy="m4_if([$2], , $PATH, [$2])" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$1; then lt_cv_path_MAGIC_CMD="$ac_dir/$1" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac]) MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then AC_MSG_RESULT($MAGIC_CMD) else AC_MSG_RESULT(no) fi _LT_DECL([], [MAGIC_CMD], [0], [Used to examine libraries when file_magic_cmd begins with "file"])dnl ])# _LT_PATH_TOOL_PREFIX # Old name: AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) # _LT_PATH_MAGIC # -------------- # find a file program which can recognize a shared library m4_defun([_LT_PATH_MAGIC], [_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) else MAGIC_CMD=: fi fi ])# _LT_PATH_MAGIC # LT_PATH_LD # ---------- # find the pathname to the GNU or non-GNU linker AC_DEFUN([LT_PATH_LD], [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_PROG_ECHO_BACKSLASH])dnl AC_ARG_WITH([gnu-ld], [AS_HELP_STRING([--with-gnu-ld], [assume the C compiler uses GNU ld @<:@default=no@:>@])], [test "$withval" = no || with_gnu_ld=yes], [with_gnu_ld=no])dnl ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by $CC]) case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [[\\/]]* | ?:[[\\/]]*) re_direlt='/[[^/]][[^/]]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL(lt_cv_path_LD, [if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else # Keep this pattern in sync with the one in func_win32_libid. lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc*) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; haiku*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[[3-9]]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) lt_cv_deplibs_check_method=pass_all ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; esac ]) file_magic_glob= want_nocaseglob=no if test "$build" = "$host"; then case $host_os in mingw* | pw32*) if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then want_nocaseglob=yes else file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` fi ;; esac fi file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown _LT_DECL([], [deplibs_check_method], [1], [Method to check whether dependent libraries are shared objects]) _LT_DECL([], [file_magic_cmd], [1], [Command to use when deplibs_check_method = "file_magic"]) _LT_DECL([], [file_magic_glob], [1], [How to find potential files when deplibs_check_method = "file_magic"]) _LT_DECL([], [want_nocaseglob], [1], [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) ])# _LT_CHECK_MAGIC_METHOD # LT_PATH_NM # ---------- # find the pathname to a BSD- or MS-compatible name lister AC_DEFUN([LT_PATH_NM], [AC_REQUIRE([AC_PROG_CC])dnl AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, [if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done : ${lt_cv_path_NM=no} fi]) if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : # Let the user override the test. else AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols" ;; *) DUMPBIN=: ;; esac fi AC_SUBST([DUMPBIN]) if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi fi test -z "$NM" && NM=nm AC_SUBST([NM]) _LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], [lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) cat conftest.out >&AS_MESSAGE_LOG_FD if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest*]) ])# LT_PATH_NM # Old names: AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_PROG_NM], []) dnl AC_DEFUN([AC_PROG_NM], []) # _LT_CHECK_SHAREDLIB_FROM_LINKLIB # -------------------------------- # how to determine the name of the shared library # associated with a specific link library. # -- PORTME fill in with the dynamic library characteristics m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], [m4_require([_LT_DECL_EGREP]) m4_require([_LT_DECL_OBJDUMP]) m4_require([_LT_DECL_DLLTOOL]) AC_CACHE_CHECK([how to associate runtime and link libraries], lt_cv_sharedlib_from_linklib_cmd, [lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in cygwin* | mingw* | pw32* | cegcc*) # two different shell functions defined in ltmain.sh # decide which to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in *--identify-strict*) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ;; *) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ;; esac ;; *) # fallback: assume linklib IS sharedlib lt_cv_sharedlib_from_linklib_cmd="$ECHO" ;; esac ]) sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO _LT_DECL([], [sharedlib_from_linklib_cmd], [1], [Command to associate shared and link libraries]) ])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB # _LT_PATH_MANIFEST_TOOL # ---------------------- # locate the manifest tool m4_defun([_LT_PATH_MANIFEST_TOOL], [AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], [lt_cv_path_mainfest_tool=no echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out cat conftest.err >&AS_MESSAGE_LOG_FD if $GREP 'Manifest Tool' conftest.out > /dev/null; then lt_cv_path_mainfest_tool=yes fi rm -f conftest*]) if test "x$lt_cv_path_mainfest_tool" != xyes; then MANIFEST_TOOL=: fi _LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl ])# _LT_PATH_MANIFEST_TOOL # LT_LIB_M # -------- # check for math library AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in *-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*) AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") ;; *) AC_CHECK_LIB(m, cos, LIBM="-lm") ;; esac AC_SUBST([LIBM]) ])# LT_LIB_M # Old name: AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_CHECK_LIBM], []) # _LT_COMPILER_NO_RTTI([TAGNAME]) # ------------------------------- m4_defun([_LT_COMPILER_NO_RTTI], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= if test "$GCC" = yes; then case $cc_basename in nvcc*) _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; *) _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; esac _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], lt_cv_prog_compiler_rtti_exceptions, [-fno-rtti -fno-exceptions], [], [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) fi _LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], [Compiler flag to turn off builtin functions]) ])# _LT_COMPILER_NO_RTTI # _LT_CMD_GLOBAL_SYMBOLS # ---------------------- m4_defun([_LT_CMD_GLOBAL_SYMBOLS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([LT_PATH_NM])dnl AC_REQUIRE([LT_PATH_LD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_TAG_COMPILER])dnl # Check for command to grab the raw symbol name followed by C symbol from nm. AC_MSG_CHECKING([command to parse $NM output from $compiler object]) AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], [ # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[[BCDEGRST]]' # Regexp to match symbols that can be accessed directly from C. sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[[BCDT]]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[[ABCDGISTW]]' ;; hpux*) if test "$host_cpu" = ia64; then symcode='[[ABCDEGRST]]' fi ;; irix* | nonstopux*) symcode='[[BCDEGRST]]' ;; osf*) symcode='[[BCDEGQRST]]' ;; solaris*) symcode='[[BDRT]]' ;; sco3.2v5*) symcode='[[DT]]' ;; sysv4.2uw2*) symcode='[[DT]]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[[ABDT]]' ;; sysv4) symcode='[[DFNSTU]]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[[ABCDGIRSTW]]' ;; esac # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function # and D for any global variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK ['"\ " {last_section=section; section=\$ 3};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ " s[1]~/^[@?]/{print s[1], s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx]" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if AC_TRY_EVAL(ac_compile); then # Now try to grab the symbols. nlist=conftest.nm if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT@&t@_DLSYM_CONST #elif defined(__osf__) /* This system does not cope well with relocations in const data. */ # define LT@&t@_DLSYM_CONST #else # define LT@&t@_DLSYM_CONST const #endif #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ LT@&t@_DLSYM_CONST struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[[]] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_globsym_save_LIBS=$LIBS lt_globsym_save_CFLAGS=$CFLAGS LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS=$lt_globsym_save_LIBS CFLAGS=$lt_globsym_save_CFLAGS else echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD fi else echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done ]) if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then AC_MSG_RESULT(failed) else AC_MSG_RESULT(ok) fi # Response file support. if test "$lt_cv_nm_interface" = "MS dumpbin"; then nm_file_list_spec='@' elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then nm_file_list_spec='@' fi _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], [Take the output of nm and produce a listing of raw symbols and C names]) _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], [Transform the output of nm in a proper C declaration]) _LT_DECL([global_symbol_to_c_name_address], [lt_cv_sys_global_symbol_to_c_name_address], [1], [Transform the output of nm in a C name address pair]) _LT_DECL([global_symbol_to_c_name_address_lib_prefix], [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], [Transform the output of nm in a C name address pair when lib prefix is needed]) _LT_DECL([], [nm_file_list_spec], [1], [Specify filename containing input files for $NM]) ]) # _LT_CMD_GLOBAL_SYMBOLS # _LT_COMPILER_PIC([TAGNAME]) # --------------------------- m4_defun([_LT_COMPILER_PIC], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_wl, $1)= _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)= m4_if([$1], [CXX], [ # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. _LT_TAGVAR(lt_prog_compiler_static, $1)= ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else case $host_os in aix[[4-9]]*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; dgux*) case $cc_basename in ec++*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; ghcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' fi ;; aCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # KAI C++ Compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; ecpc* ) # old Intel C++ for x86_64 which still supported -KPIC. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; icpc* ) # Intel C++, used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; pgCC* | pgcpp*) # Portland Group C++ compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL 8.0, 9.0 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' ;; *) ;; esac ;; netbsd*) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; cxx*) # Digital/Compaq C++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; lcc*) # Lucid _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; *) ;; esac ;; vxworks*) ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ], [ if test "$GCC" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. _LT_TAGVAR(lt_prog_compiler_static, $1)= ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Xcompiler -fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; hpux9* | hpux10* | hpux11*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC (with -KPIC) is the default. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # Lahey Fortran 8.1. lf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' ;; nagfor*) # NAG Fortran compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; ccc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All Alpha code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xl* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ F* | *Sun*Fortran*) # Sun Fortran 8.3 passes all unrecognized flags to the linker _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='' ;; *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ;; esac ;; esac ;; newsos6) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All OSF/1 code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; rdos*) _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; solaris*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; *) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; esac ;; sunos4*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; unicos*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; uts4*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ]) case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" ;; esac AC_CACHE_CHECK([for $compiler option to produce PIC], [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) _LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) # # Check to make sure the PIC flag actually works. # if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in "" | " "*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; esac], [_LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) fi _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], [Additional compiler flags for building library objects]) _LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], [How to pass a linker flag through the compiler]) # # Check to make sure the static flag actually works. # wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), $lt_tmp_static_flag, [], [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) _LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], [Compiler flag to prevent dynamic linking]) ])# _LT_COMPILER_PIC # _LT_LINKER_SHLIBS([TAGNAME]) # ---------------------------- # See if the linker supports building shared libraries. m4_defun([_LT_LINKER_SHLIBS], [AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl m4_require([_LT_PATH_MANIFEST_TOOL])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) m4_if([$1], [CXX], [ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] case $host_os in aix[[4-9]]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm # Also, AIX nm treats weak defined symbols like other global defined # symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" ;; cygwin* | mingw* | cegcc*) case $cc_basename in cl*) ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] ;; esac ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac ], [ runpath_var= _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_cmds, $1)= _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(old_archive_from_new_cmds, $1)= _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= _LT_TAGVAR(thread_safe_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list _LT_TAGVAR(include_expsyms, $1)= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. dnl Note also adjust exclude_expsyms for C++ above. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac _LT_TAGVAR(ld_shlibs, $1)=yes # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test "$with_gnu_ld" = yes; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test "$lt_use_gnu_ld_interface" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi supports_anon_versioning=no case `$LD -v 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[[3-9]]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.19, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=yes ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group f77 and f90 compilers _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 _LT_TAGVAR(whole_archive_flag_spec, $1)= tmp_sharedflag='--shared' ;; xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; sunos4*) _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then runpath_var= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. _LT_TAGVAR(hardcode_minus_L, $1)=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. _LT_TAGVAR(hardcode_direct, $1)=unsupported fi ;; aix[[4-9]]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm # Also, AIX nm treats weak defined symbols like other global # defined symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' if test "$GCC" = yes; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. _LT_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; bsdi[[45]]*) _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. case $cc_basename in cl*) # Native MSVC _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; else sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' # Don't use ranlib _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile="$lt_outputfile.exe" lt_tool_outputfile="$lt_tool_outputfile.exe" ;; esac~ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # Assume MSVC wrapper _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' # FIXME: Should let the user specify the lib program. _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; esac ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; freebsd1*) _LT_TAGVAR(ld_shlibs, $1)=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; hpux9*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; hpux10*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes fi ;; hpux11*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) m4_if($1, [], [ # Older versions of the 11.00 compiler do not understand -b yet # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) _LT_LINKER_OPTION([if $CC understands -b], _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) ;; esac fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. # This should be the same for all languages, so no per-tag cache variable. AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], [lt_cv_irix_exported_symbol], [save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" AC_LINK_IFELSE( [AC_LANG_SOURCE( [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], [C++], [[int foo (void) { return 0; }]], [Fortran 77], [[ subroutine foo end]], [Fortran], [[ subroutine foo end]])])], [lt_cv_irix_exported_symbol=yes], [lt_cv_irix_exported_symbol=no]) LDFLAGS="$save_LDFLAGS"]) if test "$lt_cv_irix_exported_symbol" = yes; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' fi else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes _LT_TAGVAR(link_all_deplibs, $1)=yes ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; newsos6) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' else case $host_os in openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' ;; esac fi else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; os2*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; solaris*) _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' fi ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4) case $host_vendor in sni) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' _LT_TAGVAR(hardcode_direct, $1)=no ;; motorola) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4.3*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes _LT_TAGVAR(ld_shlibs, $1)=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(ld_shlibs, $1)=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym' ;; esac fi fi ]) AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld _LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl _LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl _LT_DECL([], [extract_expsyms_cmds], [2], [The commands to extract the exported symbol list from a shared archive]) # # Do we need to explicitly link libc? # case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in x|xyes) # Assume -lc should be added _LT_TAGVAR(archive_cmds_need_lc, $1)=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $_LT_TAGVAR(archive_cmds, $1) in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. AC_CACHE_CHECK([whether -lc should be explicitly linked in], [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), [$RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if AC_TRY_EVAL(ac_compile) 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) _LT_TAGVAR(allow_undefined_flag, $1)= if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) then lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no else lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes fi _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* ]) _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) ;; esac fi ;; esac _LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], [Whether or not to add -lc for building shared libraries]) _LT_TAGDECL([allow_libtool_libs_with_static_runtimes], [enable_shared_with_static_runtimes], [0], [Whether or not to disallow shared libs when runtime libs are static]) _LT_TAGDECL([], [export_dynamic_flag_spec], [1], [Compiler flag to allow reflexive dlopens]) _LT_TAGDECL([], [whole_archive_flag_spec], [1], [Compiler flag to generate shared objects directly from archives]) _LT_TAGDECL([], [compiler_needs_object], [1], [Whether the compiler copes with passing no objects directly]) _LT_TAGDECL([], [old_archive_from_new_cmds], [2], [Create an old-style archive from a shared archive]) _LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], [Create a temporary old-style archive to link instead of a shared archive]) _LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) _LT_TAGDECL([], [archive_expsym_cmds], [2]) _LT_TAGDECL([], [module_cmds], [2], [Commands used to build a loadable module if different from building a shared archive.]) _LT_TAGDECL([], [module_expsym_cmds], [2]) _LT_TAGDECL([], [with_gnu_ld], [1], [Whether we are building with GNU ld or not]) _LT_TAGDECL([], [allow_undefined_flag], [1], [Flag that allows shared libraries with undefined symbols to be built]) _LT_TAGDECL([], [no_undefined_flag], [1], [Flag that enforces no undefined symbols]) _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], [Flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]) _LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1], [[If ld is used when linking, flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]]) _LT_TAGDECL([], [hardcode_libdir_separator], [1], [Whether we need a single "-rpath" flag with a separated argument]) _LT_TAGDECL([], [hardcode_direct], [0], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_direct_absolute], [0], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary and the resulting library dependency is "absolute", i.e impossible to change by setting ${shlibpath_var} if the library is relocated]) _LT_TAGDECL([], [hardcode_minus_L], [0], [Set to "yes" if using the -LDIR flag during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_shlibpath_var], [0], [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_automatic], [0], [Set to "yes" if building a shared library automatically hardcodes DIR into the library and all subsequent libraries and executables linked against it]) _LT_TAGDECL([], [inherit_rpath], [0], [Set to yes if linker adds runtime paths of dependent libraries to runtime path list]) _LT_TAGDECL([], [link_all_deplibs], [0], [Whether libtool must link a program against all its dependency libraries]) _LT_TAGDECL([], [always_export_symbols], [0], [Set to "yes" if exported symbols are required]) _LT_TAGDECL([], [export_symbols_cmds], [2], [The commands to list exported symbols]) _LT_TAGDECL([], [exclude_expsyms], [1], [Symbols that should not be listed in the preloaded symbols]) _LT_TAGDECL([], [include_expsyms], [1], [Symbols that must always be exported]) _LT_TAGDECL([], [prelink_cmds], [2], [Commands necessary for linking programs (against libraries) with templates]) _LT_TAGDECL([], [postlink_cmds], [2], [Commands necessary for finishing linking programs]) _LT_TAGDECL([], [file_list_spec], [1], [Specify filename containing input files]) dnl FIXME: Not yet implemented dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], dnl [Compiler flag to generate thread safe objects]) ])# _LT_LINKER_SHLIBS # _LT_LANG_C_CONFIG([TAG]) # ------------------------ # Ensure that the configuration variables for a C compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_C_CONFIG], [m4_require([_LT_DECL_EGREP])dnl lt_save_CC="$CC" AC_LANG_PUSH(C) # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' _LT_TAG_COMPILER # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) LT_SYS_DLOPEN_SELF _LT_CMD_STRIPLIB # Report which library types will actually be built AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_CONFIG($1) fi AC_LANG_POP CC="$lt_save_CC" ])# _LT_LANG_C_CONFIG # _LT_LANG_CXX_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a C++ compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_CXX_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_PATH_MANIFEST_TOOL])dnl if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then AC_PROG_CXXCPP else _lt_caught_CXX_error=yes fi AC_LANG_PUSH(C++) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_caught_CXX_error" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} CFLAGS=$CXXFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then # We don't want -fno-exception when compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' else _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration LT_PATH_LD # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) _LT_TAGVAR(ld_shlibs, $1)=yes case $host_os in aix3*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aix[[4-9]]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' if test "$GXX" = yes; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. _LT_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an empty # executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared # libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; cygwin* | mingw* | pw32* | cegcc*) case $GXX,$cc_basename in ,cl* | no,cl*) # Native MSVC # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; else $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes # Don't use ranlib _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile="$lt_outputfile.exe" lt_tool_outputfile="$lt_tool_outputfile.exe" ;; esac~ func_to_tool_file "$lt_outputfile"~ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # g++ # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; freebsd[[12]]*) # C++ shared libraries reported to be fairly broken before # switch to ELF _LT_TAGVAR(ld_shlibs, $1)=no ;; freebsd-elf*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions _LT_TAGVAR(ld_shlibs, $1)=yes ;; gnu*) ;; haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=yes ;; hpux9*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) ;; *) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' fi fi _LT_TAGVAR(link_all_deplibs, $1)=yes ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc* | ecpc* ) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ $RANLIB $oldlib' _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; *) # Version 6 and above use weak symbols _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' ;; xl* | mpixl* | bgxl*) # IBM XL 8.0 on PPC, with GNU ld _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; m88k*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; *nto* | *qnx*) _LT_TAGVAR(ld_shlibs, $1)=yes ;; openbsd2*) # C++ shared libraries are fairly broken _LT_TAGVAR(ld_shlibs, $1)=no ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd=func_echo_all else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Archives containing C++ object files must be created using # the KAI C++ compiler. case $host in osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; esac ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; cxx*) case $host in osf3*) _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' ;; *) _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~ $RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ;; esac _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' case $host in osf3*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(archive_cmds_need_lc,$1)=yes _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ '"$_LT_TAGVAR(old_archive_cmds, $1)" _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ '"$_LT_TAGVAR(reload_cmds, $1)" ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(GCC, $1)="$GXX" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld fi # test "$_lt_caught_CXX_error" != yes AC_LANG_POP ])# _LT_LANG_CXX_CONFIG # _LT_FUNC_STRIPNAME_CNF # ---------------------- # func_stripname_cnf prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # # This function is identical to the (non-XSI) version of func_stripname, # except this one can be used by m4 code that may be executed by configure, # rather than the libtool script. m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl AC_REQUIRE([_LT_DECL_SED]) AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) func_stripname_cnf () { case ${2} in .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; esac } # func_stripname_cnf ])# _LT_FUNC_STRIPNAME_CNF # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) # --------------------------------- # Figure out "hidden" library dependencies from verbose # compiler output when linking a shared library. # Parse the compiler output and extract the necessary # objects, libraries and library flags. m4_defun([_LT_SYS_HIDDEN_LIBDEPS], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl # Dependencies to place before and after the object being linked: _LT_TAGVAR(predep_objects, $1)= _LT_TAGVAR(postdep_objects, $1)= _LT_TAGVAR(predeps, $1)= _LT_TAGVAR(postdeps, $1)= _LT_TAGVAR(compiler_lib_search_path, $1)= dnl we can't use the lt_simple_compile_test_code here, dnl because it contains code intended for an executable, dnl not a library. It's possible we should let each dnl tag define a new lt_????_link_test_code variable, dnl but it's only used here... m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF int a; void foo (void) { a = 0; } _LT_EOF ], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF class Foo { public: Foo (void) { a = 0; } private: int a; }; _LT_EOF ], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer*4 a a=0 return end _LT_EOF ], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer a a=0 return end _LT_EOF ], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF public class foo { private int a; public void bar (void) { a = 0; } }; _LT_EOF ]) _lt_libdeps_save_CFLAGS=$CFLAGS case "$CC $CFLAGS " in #( *\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; *\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; esac dnl Parse the compiler output and extract the necessary dnl objects, libraries and library flags. if AC_TRY_EVAL(ac_compile); then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do case ${prev}${p} in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" || test $p = "-R"; then prev=$p continue fi # Expand the sysroot to ease extracting the directories later. if test -z "$prev"; then case $p in -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; esac fi case $p in =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; esac if test "$pre_test_object_deps_done" = no; then case ${prev} in -L | -R) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" else _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$_LT_TAGVAR(postdeps, $1)"; then _LT_TAGVAR(postdeps, $1)="${prev}${p}" else _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" fi fi prev= ;; *.lto.$objext) ;; # Ignore GCC LTO objects *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$_LT_TAGVAR(predep_objects, $1)"; then _LT_TAGVAR(predep_objects, $1)="$p" else _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" fi else if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then _LT_TAGVAR(postdep_objects, $1)="$p" else _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling $1 test program" fi $RM -f confest.$objext CFLAGS=$_lt_libdeps_save_CFLAGS # PORTME: override above test on systems where it is broken m4_if([$1], [CXX], [case $host_os in interix[[3-9]]*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. _LT_TAGVAR(predep_objects,$1)= _LT_TAGVAR(postdep_objects,$1)= _LT_TAGVAR(postdeps,$1)= ;; linux*) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac if test "$solaris_use_stlport4" != yes; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; solaris*) case $cc_basename in CC* | sunCC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. if test "$solaris_use_stlport4" != yes; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; esac ]) case " $_LT_TAGVAR(postdeps, $1) " in *" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; esac _LT_TAGVAR(compiler_lib_search_dirs, $1)= if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` fi _LT_TAGDECL([], [compiler_lib_search_dirs], [1], [The directories searched by this compiler when creating a shared library]) _LT_TAGDECL([], [predep_objects], [1], [Dependencies to place before and after the objects being linked to create a shared library]) _LT_TAGDECL([], [postdep_objects], [1]) _LT_TAGDECL([], [predeps], [1]) _LT_TAGDECL([], [postdeps], [1]) _LT_TAGDECL([], [compiler_lib_search_path], [1], [The library search path used internally by the compiler when linking a shared library]) ])# _LT_SYS_HIDDEN_LIBDEPS # _LT_LANG_F77_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a Fortran 77 compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_F77_CONFIG], [AC_LANG_PUSH(Fortran 77) if test -z "$F77" || test "X$F77" = "Xno"; then _lt_disable_F77=yes fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for f77 test sources. ac_ext=f # Object file extension for compiled f77 test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the F77 compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_F77" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC lt_save_CFLAGS=$CFLAGS CC=${F77-"f77"} CFLAGS=$FFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) GCC=$G77 if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)="$G77" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC="$lt_save_CC" CFLAGS="$lt_save_CFLAGS" fi # test "$_lt_disable_F77" != yes AC_LANG_POP ])# _LT_LANG_F77_CONFIG # _LT_LANG_FC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for a Fortran compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_FC_CONFIG], [AC_LANG_PUSH(Fortran) if test -z "$FC" || test "X$FC" = "Xno"; then _lt_disable_FC=yes fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for fc test sources. ac_ext=${ac_fc_srcext-f} # Object file extension for compiled fc test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the FC compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_FC" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC lt_save_CFLAGS=$CFLAGS CC=${FC-"f95"} CFLAGS=$FCFLAGS compiler=$CC GCC=$ac_cv_fc_compiler_gnu _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS fi # test "$_lt_disable_FC" != yes AC_LANG_POP ])# _LT_LANG_FC_CONFIG # _LT_LANG_GCJ_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Java Compiler compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_GCJ_CONFIG], [AC_REQUIRE([LT_PROG_GCJ])dnl AC_LANG_SAVE # Source file extension for Java test sources. ac_ext=java # Object file extension for compiled Java test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="class foo {}" # Code to be used in simple link tests lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC=yes CC=${GCJ-"gcj"} CFLAGS=$GCJFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)="$LD" _LT_CC_BASENAME([$compiler]) # GCJ did not exist at the time GCC didn't implicitly link libc in. _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi AC_LANG_RESTORE GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_GCJ_CONFIG # _LT_LANG_RC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for the Windows resource compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_RC_CONFIG], [AC_REQUIRE([LT_PROG_RC])dnl AC_LANG_SAVE # Source file extension for RC test sources. ac_ext=rc # Object file extension for compiled RC test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' # Code to be used in simple link tests lt_simple_link_test_code="$lt_simple_compile_test_code" # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC= CC=${RC-"windres"} CFLAGS= compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes if test -n "$compiler"; then : _LT_CONFIG($1) fi GCC=$lt_save_GCC AC_LANG_RESTORE CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_RC_CONFIG # LT_PROG_GCJ # ----------- AC_DEFUN([LT_PROG_GCJ], [m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], [AC_CHECK_TOOL(GCJ, gcj,) test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" AC_SUBST(GCJFLAGS)])])[]dnl ]) # Old name: AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_GCJ], []) # LT_PROG_RC # ---------- AC_DEFUN([LT_PROG_RC], [AC_CHECK_TOOL(RC, windres,) ]) # Old name: AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_RC], []) # _LT_DECL_EGREP # -------------- # If we don't have a new enough Autoconf to choose the best grep # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_EGREP], [AC_REQUIRE([AC_PROG_EGREP])dnl AC_REQUIRE([AC_PROG_FGREP])dnl test -z "$GREP" && GREP=grep _LT_DECL([], [GREP], [1], [A grep program that handles long lines]) _LT_DECL([], [EGREP], [1], [An ERE matcher]) _LT_DECL([], [FGREP], [1], [A literal string matcher]) dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too AC_SUBST([GREP]) ]) # _LT_DECL_OBJDUMP # -------------- # If we don't have a new enough Autoconf to choose the best objdump # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_OBJDUMP], [AC_CHECK_TOOL(OBJDUMP, objdump, false) test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) AC_SUBST([OBJDUMP]) ]) # _LT_DECL_DLLTOOL # ---------------- # Ensure DLLTOOL variable is set. m4_defun([_LT_DECL_DLLTOOL], [AC_CHECK_TOOL(DLLTOOL, dlltool, false) test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [1], [DLL creation program]) AC_SUBST([DLLTOOL]) ]) # _LT_DECL_SED # ------------ # Check for a fully-functional sed program, that truncates # as few characters as possible. Prefer GNU sed if found. m4_defun([_LT_DECL_SED], [AC_PROG_SED test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" _LT_DECL([], [SED], [1], [A sed program that does not truncate output]) _LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], [Sed that helps us avoid accidentally triggering echo(1) options like -n]) ])# _LT_DECL_SED m4_ifndef([AC_PROG_SED], [ ############################################################ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_SED. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # ############################################################ m4_defun([AC_PROG_SED], [AC_MSG_CHECKING([for a sed that does not truncate output]) AC_CACHE_VAL(lt_cv_path_SED, [# Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for lt_ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" fi done done done IFS=$as_save_IFS lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do test ! -f $lt_ac_sed && continue cat /dev/null > conftest.in lt_ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >conftest.in # Check for GNU sed and select it if it is found. if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then lt_cv_path_SED=$lt_ac_sed break fi while true; do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >>conftest.nl $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break cmp -s conftest.out conftest.nl || break # 10000 chars as input seems more than enough test $lt_ac_count -gt 10 && break lt_ac_count=`expr $lt_ac_count + 1` if test $lt_ac_count -gt $lt_ac_max; then lt_ac_max=$lt_ac_count lt_cv_path_SED=$lt_ac_sed fi done done ]) SED=$lt_cv_path_SED AC_SUBST([SED]) AC_MSG_RESULT([$SED]) ])#AC_PROG_SED ])#m4_ifndef # Old name: AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_SED], []) # _LT_CHECK_SHELL_FEATURES # ------------------------ # Find out whether the shell is Bourne or XSI compatible, # or has some other useful features. m4_defun([_LT_CHECK_SHELL_FEATURES], [AC_MSG_CHECKING([whether the shell understands some XSI constructs]) # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ = c,a/b,b/c, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes AC_MSG_RESULT([$xsi_shell]) _LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) AC_MSG_CHECKING([whether the shell understands "+="]) lt_shell_append=no ( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes AC_MSG_RESULT([$lt_shell_append]) _LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi _LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac _LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl ])# _LT_CHECK_SHELL_FEATURES # _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY) # ------------------------------------------------------ # In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and # '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY. m4_defun([_LT_PROG_FUNCTION_REPLACE], [dnl { sed -e '/^$1 ()$/,/^} # $1 /c\ $1 ()\ {\ m4_bpatsubsts([$2], [$], [\\], [^\([ ]\)], [\\\1]) } # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: ]) # _LT_PROG_REPLACE_SHELLFNS # ------------------------- # Replace existing portable implementations of several shell functions with # equivalent extended shell implementations where those features are available.. m4_defun([_LT_PROG_REPLACE_SHELLFNS], [if test x"$xsi_shell" = xyes; then _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac]) _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl func_basename_result="${1##*/}"]) _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac func_basename_result="${1##*/}"]) _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are # positional parameters, so assign one to ordinary parameter first. func_stripname_result=${3} func_stripname_result=${func_stripname_result#"${1}"} func_stripname_result=${func_stripname_result%"${2}"}]) _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl func_split_long_opt_name=${1%%=*} func_split_long_opt_arg=${1#*=}]) _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl func_split_short_opt_arg=${1#??} func_split_short_opt_name=${1%"$func_split_short_opt_arg"}]) _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl case ${1} in *.lo) func_lo2o_result=${1%.lo}.${objext} ;; *) func_lo2o_result=${1} ;; esac]) _LT_PROG_FUNCTION_REPLACE([func_xform], [ func_xform_result=${1%.*}.lo]) _LT_PROG_FUNCTION_REPLACE([func_arith], [ func_arith_result=$(( $[*] ))]) _LT_PROG_FUNCTION_REPLACE([func_len], [ func_len_result=${#1}]) fi if test x"$lt_shell_append" = xyes; then _LT_PROG_FUNCTION_REPLACE([func_append], [ eval "${1}+=\\${2}"]) _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl func_quote_for_eval "${2}" dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \ eval "${1}+=\\\\ \\$func_quote_for_eval_result"]) # Save a `func_append' function call where possible by direct use of '+=' sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: else # Save a `func_append' function call even when '+=' is not available sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: fi if test x"$_lt_function_replace_fail" = x":"; then AC_MSG_WARN([Unable to substitute extended shell functions in $ofile]) fi ]) # _LT_PATH_CONVERSION_FUNCTIONS # ----------------------------- # Determine which file name conversion functions should be used by # func_to_host_file (and, implicitly, by func_to_host_path). These are needed # for certain cross-compile configurations and native mingw. m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_MSG_CHECKING([how to convert $build file names to $host format]) AC_CACHE_VAL(lt_cv_to_host_file_cmd, [case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ;; esac ;; *-*-cygwin* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_noop ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ;; esac ;; * ) # unhandled hosts (and "normal" native builds) lt_cv_to_host_file_cmd=func_convert_file_noop ;; esac ]) to_host_file_cmd=$lt_cv_to_host_file_cmd AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) _LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], [0], [convert $build file names to $host format])dnl AC_MSG_CHECKING([how to convert $build file names to toolchain format]) AC_CACHE_VAL(lt_cv_to_tool_file_cmd, [#assume ordinary cross tools, or native build. lt_cv_to_tool_file_cmd=func_convert_file_noop case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ;; esac ;; esac ]) to_tool_file_cmd=$lt_cv_to_tool_file_cmd AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) _LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], [0], [convert $build files to toolchain format])dnl ])# _LT_PATH_CONVERSION_FUNCTIONS libspatialite-4.1.1/m4/ltversion.m40000664000175000017500000000126212163502133014072 00000000000000# ltversion.m4 -- version numbers -*- Autoconf -*- # # Copyright (C) 2004 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # @configure_input@ # serial 3337 ltversion.m4 # This file is part of GNU Libtool m4_define([LT_PACKAGE_VERSION], [2.4.2]) m4_define([LT_PACKAGE_REVISION], [1.3337]) AC_DEFUN([LTVERSION_VERSION], [macro_version='2.4.2' macro_revision='1.3337' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) libspatialite-4.1.1/src/0000775000175000017500000000000012163503226012135 500000000000000libspatialite-4.1.1/src/wfs/0000775000175000017500000000000012163503226012734 500000000000000libspatialite-4.1.1/src/wfs/Makefile.am0000664000175000017500000000026512163502133014707 00000000000000 INCLUDES = @CFLAGS@ @LIBXML2_CFLAGS@ INCLUDES += -I$(top_srcdir)/src/headers noinst_LTLIBRARIES = libwfs.la libwfs_la_SOURCES = wfs_in.c MOSTLYCLEANFILES = *.gcna *.gcno *.gcda libspatialite-4.1.1/src/wfs/Makefile.in0000664000175000017500000003664512163502133014733 00000000000000# Makefile.in generated by automake 1.12.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/wfs DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libwfs_la_LIBADD = am_libwfs_la_OBJECTS = wfs_in.lo libwfs_la_OBJECTS = $(am_libwfs_la_OBJECTS) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libwfs_la_SOURCES) DIST_SOURCES = $(libwfs_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ INCLUDES = @CFLAGS@ @LIBXML2_CFLAGS@ -I$(top_srcdir)/src/headers noinst_LTLIBRARIES = libwfs.la libwfs_la_SOURCES = wfs_in.c MOSTLYCLEANFILES = *.gcna *.gcno *.gcda all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/wfs/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/wfs/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } libwfs.la: $(libwfs_la_OBJECTS) $(libwfs_la_DEPENDENCIES) $(EXTRA_libwfs_la_DEPENDENCIES) $(LINK) $(libwfs_la_OBJECTS) $(libwfs_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wfs_in.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: $(HEADERS) $(SOURCES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES cscopelist ctags \ distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libspatialite-4.1.1/src/wfs/wfs_in.c0000664000175000017500000033320312163502133014305 00000000000000/* wfs_in.c -- implements WFS support [import] version 4.1, 2013 April 22 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /* CREDITS: this module has been completely funded by: Regione Toscana - Settore Sistema Informativo Territoriale ed Ambientale (WFS data import) */ #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include #include #include #include #include #include #ifdef ENABLE_LIBXML2 /* LIBXML2 enabled: supporting XML documents */ #include #define MAX_GTYPES 28 #ifdef _WIN32 #define atoll _atoi64 #endif /* not WIN32 */ #ifdef _WIN32 #define strcasecmp _stricmp #endif /* not WIN32 */ struct wfs_srid_def { /* a WFS supported SRID */ int srid; char *srs_name; struct wfs_srid_def *next; }; struct wfs_keyword { /* a WFS keyword */ char *keyword; struct wfs_keyword *next; }; struct wfs_layer_def { /* a WFS layer */ char *name; char *title; char *abstract; struct wfs_srid_def *first_srid; struct wfs_srid_def *last_srid; struct wfs_keyword *first_key; struct wfs_keyword *last_key; struct wfs_layer_def *next; }; struct wfs_catalog { /* a list of WFS layers */ char *request_url; char *describe_url; struct wfs_layer_def *first; struct wfs_layer_def *last; }; struct wfs_column_def { /* a WFS attribute / column */ char *name; int type; int is_nullable; const char *pValue; struct wfs_column_def *next; }; struct wfs_geom_type { /* Geometry Type statistics */ int type; int count; }; struct wfs_layer_schema { /* a WFS table / layer schema */ int error; int swap_axes; char *layer_name; struct wfs_column_def *first; struct wfs_column_def *last; char *geometry_name; int geometry_type; int srid; int dims; int is_nullable; struct wfs_geom_type *types; char *geometry_value; sqlite3_stmt *stmt; sqlite3 *sqlite; }; struct wfs_attribute { /* a WFS attribute value */ struct wfs_column_def *column; char *value; struct wfs_attribute *next; }; struct wfs_feature { /* a WFS feature */ struct wfs_attribute *first; struct wfs_attribute *last; char *geometry_value; }; static struct wfs_column_def * alloc_wfs_column (const char *name, int type, int is_nullable) { /* allocating a WFS attribute / column definition */ int len; struct wfs_column_def *col = malloc (sizeof (struct wfs_column_def)); len = strlen (name); col->name = malloc (len + 1); strcpy (col->name, name); col->type = type; col->is_nullable = is_nullable; col->pValue = NULL; col->next = NULL; return col; } static void free_wfs_column (struct wfs_column_def *col) { /* memory cleanup: destroying a WFS column definition */ if (col == NULL) return; if (col->name != NULL) free (col->name); free (col); } static struct wfs_layer_schema * alloc_wfs_layer_schema (const char *layer_name, int swap_axes) { /* allocating an empty WFS schema descriptor */ int len; struct wfs_layer_schema *ptr = malloc (sizeof (struct wfs_layer_schema)); ptr->error = 0; ptr->swap_axes = swap_axes; len = strlen (layer_name); ptr->layer_name = malloc (len + 1); strcpy (ptr->layer_name, layer_name); ptr->first = NULL; ptr->last = NULL; ptr->geometry_name = NULL; ptr->geometry_type = GAIA_UNKNOWN; ptr->srid = -1; ptr->dims = 2; ptr->types = malloc (sizeof (struct wfs_geom_type) * MAX_GTYPES); ptr->types[0].type = GAIA_POINT; ptr->types[0].count = 0; ptr->types[1].type = GAIA_LINESTRING; ptr->types[1].count = 0; ptr->types[2].type = GAIA_POLYGON; ptr->types[2].count = 0; ptr->types[3].type = GAIA_MULTIPOINT; ptr->types[3].count = 0; ptr->types[4].type = GAIA_MULTILINESTRING; ptr->types[4].count = 0; ptr->types[5].type = GAIA_MULTIPOLYGON; ptr->types[5].count = 0; ptr->types[6].type = GAIA_GEOMETRYCOLLECTION; ptr->types[6].count = 0; ptr->types[7].type = GAIA_POINTZ; ptr->types[7].count = 0; ptr->types[8].type = GAIA_LINESTRINGZ; ptr->types[8].count = 0; ptr->types[9].type = GAIA_POLYGONZ; ptr->types[9].count = 0; ptr->types[10].type = GAIA_MULTIPOINTZ; ptr->types[10].count = 0; ptr->types[11].type = GAIA_MULTILINESTRINGZ; ptr->types[11].count = 0; ptr->types[12].type = GAIA_MULTIPOLYGONZ; ptr->types[12].count = 0; ptr->types[13].type = GAIA_GEOMETRYCOLLECTIONZ; ptr->types[13].count = 0; ptr->types[14].type = GAIA_POINTM; ptr->types[14].count = 0; ptr->types[15].type = GAIA_LINESTRINGM; ptr->types[15].count = 0; ptr->types[16].type = GAIA_POLYGONM; ptr->types[16].count = 0; ptr->types[17].type = GAIA_MULTIPOINTM; ptr->types[17].count = 0; ptr->types[18].type = GAIA_MULTILINESTRINGM; ptr->types[18].count = 0; ptr->types[19].type = GAIA_MULTIPOLYGONM; ptr->types[19].count = 0; ptr->types[20].type = GAIA_GEOMETRYCOLLECTIONM; ptr->types[20].count = 0; ptr->types[21].type = GAIA_POINTZM; ptr->types[21].count = 0; ptr->types[22].type = GAIA_LINESTRINGZM; ptr->types[22].count = 0; ptr->types[23].type = GAIA_POLYGONZM; ptr->types[23].count = 0; ptr->types[24].type = GAIA_MULTIPOINTZM; ptr->types[24].count = 0; ptr->types[25].type = GAIA_MULTILINESTRINGZM; ptr->types[25].count = 0; ptr->types[26].type = GAIA_MULTIPOLYGONZM; ptr->types[26].count = 0; ptr->types[27].type = GAIA_GEOMETRYCOLLECTIONZM; ptr->types[27].count = 0; ptr->geometry_value = NULL; ptr->stmt = NULL; return ptr; } static void free_wfs_layer_schema (struct wfs_layer_schema *ptr) { /* memory cleanup: destroying a WFS schema */ struct wfs_column_def *col; struct wfs_column_def *n_col; if (ptr == NULL) return; if (ptr->layer_name != NULL) free (ptr->layer_name); col = ptr->first; while (col != NULL) { n_col = col->next; free_wfs_column (col); col = n_col; } if (ptr->geometry_name != NULL) free (ptr->geometry_name); if (ptr->types != NULL) free (ptr->types); if (ptr->geometry_value != NULL) free (ptr->geometry_value); if (ptr->stmt != NULL) sqlite3_finalize (ptr->stmt); free (ptr); } static void reset_wfs_values (struct wfs_layer_schema *ptr) { /* memory cleanup: resetting attribute values */ struct wfs_column_def *col; if (ptr == NULL) return; col = ptr->first; while (col != NULL) { col->pValue = NULL; col = col->next; } if (ptr->geometry_value != NULL) { free (ptr->geometry_value); ptr->geometry_value = NULL; } } static int count_wfs_values (struct wfs_layer_schema *ptr) { /* counting how many valid values */ int count = 0; struct wfs_column_def *col; if (ptr == NULL) return 0; col = ptr->first; while (col != NULL) { if (col->pValue != NULL) count++; col = col->next; } if (ptr->geometry_value != NULL) count++; return count; } static void add_wfs_column_to_schema (struct wfs_layer_schema *ptr, const char *name, int type, int is_nullable) { /* adding an attribute / column into a WFS table / schema */ struct wfs_column_def *col; if (ptr == NULL) return; col = alloc_wfs_column (name, type, is_nullable); if (ptr->first == NULL) ptr->first = col; if (ptr->last != NULL) ptr->last->next = col; ptr->last = col; } static void set_wfs_geometry (struct wfs_layer_schema *ptr, const char *name, int type, int is_nullable) { /* setting the Geometry for a WFS schema */ int len; if (ptr == NULL) return; if (ptr->geometry_name != NULL) free (ptr->geometry_name); len = strlen (name); ptr->geometry_name = malloc (len + 1); strcpy (ptr->geometry_name, name); ptr->geometry_type = type; ptr->is_nullable = is_nullable; } static struct wfs_srid_def * alloc_wfs_srid (int srid, const char *srs_name) { /* allocating a WFS SRID definition */ int len; struct wfs_srid_def *ptr = malloc (sizeof (struct wfs_srid_def)); ptr->srid = srid; len = strlen (srs_name); ptr->srs_name = malloc (len + 1); strcpy (ptr->srs_name, srs_name); ptr->next = NULL; return ptr; } static struct wfs_keyword * alloc_wfs_keyword (const char *keyword) { /* allocating a WFS Keyword */ int len; struct wfs_keyword *ptr = malloc (sizeof (struct wfs_keyword)); len = strlen (keyword); ptr->keyword = malloc (len + 1); strcpy (ptr->keyword, keyword); ptr->next = NULL; return ptr; } static struct wfs_layer_def * alloc_wfs_layer (const char *name, const char *title, const char *abstract) { /* allocating a WFS catalog item / layer definition */ int len; struct wfs_layer_def *lyr = malloc (sizeof (struct wfs_layer_def)); len = strlen (name); lyr->name = malloc (len + 1); strcpy (lyr->name, name); if (title == NULL) lyr->title = NULL; else { len = strlen (title); lyr->title = malloc (len + 1); strcpy (lyr->title, title); } if (abstract == NULL) lyr->abstract = NULL; else { len = strlen (abstract); lyr->abstract = malloc (len + 1); strcpy (lyr->abstract, abstract); } lyr->first_srid = NULL; lyr->last_srid = NULL; lyr->first_key = NULL; lyr->last_key = NULL; lyr->next = NULL; return lyr; } static void free_wfs_layer (struct wfs_layer_def *lyr) { /* memory cleanup: destroying a WFS catalog item definition */ struct wfs_srid_def *srid; struct wfs_srid_def *n_srid; struct wfs_keyword *key; struct wfs_keyword *n_key; if (lyr == NULL) return; if (lyr->name != NULL) free (lyr->name); if (lyr->title != NULL) free (lyr->title); if (lyr->abstract != NULL) free (lyr->abstract); srid = lyr->first_srid; while (srid != NULL) { n_srid = srid->next; if (srid->srs_name != NULL) free (srid->srs_name); free (srid); srid = n_srid; } key = lyr->first_key; while (key != NULL) { n_key = key->next; free (key->keyword); free (key); key = n_key; } free (lyr); } static struct wfs_catalog * alloc_wfs_catalog () { /* allocating an empty WFS catalog object */ struct wfs_catalog *ptr = malloc (sizeof (struct wfs_catalog)); ptr->first = NULL; ptr->last = NULL; ptr->request_url = NULL; ptr->describe_url = NULL; return ptr; } static void free_wfs_catalog (struct wfs_catalog *ptr) { /* memory cleanup: destroying a WFS catalog object */ struct wfs_layer_def *lyr; struct wfs_layer_def *n_lyr; if (ptr == NULL) return; lyr = ptr->first; while (lyr != NULL) { n_lyr = lyr->next; free_wfs_layer (lyr); lyr = n_lyr; } if (ptr->request_url != NULL) free (ptr->request_url); if (ptr->describe_url != NULL) free (ptr->describe_url); free (ptr); } static void add_wfs_layer_to_catalog (struct wfs_catalog *ptr, const char *name, const char *title, const char *abstract) { /* adding an item (aka Layer) into a WFS Catalog */ struct wfs_layer_def *lyr; if (ptr == NULL) return; lyr = alloc_wfs_layer (name, title, abstract); if (ptr->first == NULL) ptr->first = lyr; if (ptr->last != NULL) ptr->last->next = lyr; ptr->last = lyr; } static struct wfs_feature * create_feature (struct wfs_layer_schema *schema) { /* creating an empty WFS feature object */ struct wfs_column_def *col; struct wfs_feature *feature = malloc (sizeof (struct wfs_feature)); feature->first = NULL; feature->last = NULL; feature->geometry_value = NULL; col = schema->first; while (col != NULL) { struct wfs_attribute *attr = malloc (sizeof (struct wfs_attribute)); attr->column = col; attr->value = NULL; attr->next = NULL; if (feature->first == NULL) feature->first = attr; if (feature->last != NULL) feature->last->next = attr; feature->last = attr; col = col->next; } return feature; } static void reset_feature (struct wfs_feature *feature) { /* resetting a WFS feature object to its initial empty state */ struct wfs_attribute *attr = feature->first; while (attr != NULL) { if (attr->value != NULL) free (attr->value); attr->value = NULL; attr = attr->next; } if (feature->geometry_value != NULL) free (feature->geometry_value); feature->geometry_value = NULL; } static void free_feature (struct wfs_feature *feature) { /* memory cleanup - freeing a WFS feature object */ struct wfs_attribute *attr; struct wfs_attribute *n_attr; reset_feature (feature); attr = feature->first; while (attr != NULL) { n_attr = attr->next; free (attr); attr = n_attr; } free (feature); } static int compare_features (struct wfs_feature *f1, struct wfs_feature *f2) { /* testing if two WFS features are identical */ struct wfs_attribute *attr1; struct wfs_attribute *attr2; int cnt1 = 0; int cnt2 = 0; /* counting how many attributes for each feature */ attr1 = f1->first; while (attr1 != NULL) { cnt1++; attr1 = attr1->next; } attr2 = f2->first; while (attr2 != NULL) { cnt2++; attr2 = attr2->next; } if (cnt1 != cnt2) { /* surely different - mismatching attributes count */ return 0; } if (f1->geometry_value == NULL && f2->geometry_value == NULL) ; else if (f1->geometry_value != NULL && f2->geometry_value != NULL) { if (strcmp (f1->geometry_value, f2->geometry_value) != 0) { /* surely different - mismatching geometry values */ return 0; } } else { /* surely different - mismatching geometries */ return 0; } attr1 = f1->first; attr2 = f2->first; while (attr1 != NULL && attr2 != NULL) { if (strcmp (attr1->column->name, attr1->column->name) != 0) { /* mismatching attribute name */ return 0; } if (attr1->value == NULL && attr2->value == NULL) ; else if (attr1->value != NULL && attr2->value != NULL) { if (strcmp (attr1->value, attr2->value) != 0) { /* mismatching values */ return 0; } } else { /* mismatching values */ } attr1 = attr1->next; attr2 = attr2->next; } return 1; } static void clean_copy (char *dest, const char *orig) { /* copying an URI fragment attempting to clean invalid sequences */ char last = '\0'; const char *pi = orig; char *po = dest; while (*pi != '\0') { if (last == '&' && *pi == '?') { last = *pi; po--; *po++ = *pi++; continue; } last = *pi; *po++ = *pi++; } *po = '\0'; } static void set_wfs_catalog_base_request_url (struct wfs_catalog *ptr, const char *url) { /* setting the request-URL for a WFS catalog */ int len; int i; int force_marker = 1; if (ptr == NULL) return; if (ptr->request_url != NULL) free (ptr->request_url); len = strlen (url); ptr->request_url = malloc (len + 2); clean_copy (ptr->request_url, url); for (i = 0; i < (int) strlen (ptr->request_url); i++) { if (*(ptr->request_url + i) == '?') force_marker = 0; } if (force_marker) strcat (ptr->request_url, "?"); } static void set_wfs_catalog_base_describe_url (struct wfs_catalog *ptr, const char *url) { /* setting the describe-URL for a WFS catalog */ int len; int i; int force_marker = 1; if (ptr == NULL) return; if (ptr->describe_url != NULL) free (ptr->describe_url); len = strlen (url); ptr->describe_url = malloc (len + 2); clean_copy (ptr->describe_url, url); for (i = 0; i < (int) strlen (ptr->describe_url); i++) { if (*(ptr->describe_url + i) == '?') force_marker = 0; } if (force_marker) strcat (ptr->describe_url, "?"); } static void add_wfs_srid_to_layer (struct wfs_layer_def *ptr, int srid, const char *srs_name) { /* adding a SRID supported by a WFS Layer */ struct wfs_srid_def *p_srid; if (ptr == NULL) return; p_srid = alloc_wfs_srid (srid, srs_name); if (ptr->first_srid == NULL) ptr->first_srid = p_srid; if (ptr->last_srid != NULL) ptr->last_srid->next = p_srid; ptr->last_srid = p_srid; } static void add_wfs_keyword_to_layer (struct wfs_layer_def *ptr, const char *keyword) { /* adding a Keyword to a WFS Layer */ struct wfs_keyword *key; if (ptr == NULL) return; if (keyword == NULL) return; key = alloc_wfs_keyword (keyword); if (ptr->first_key == NULL) ptr->first_key = key; if (ptr->last_key != NULL) ptr->last_key->next = key; ptr->last_key = key; } static void wfsParsingError (void *ctx, const char *msg, ...) { /* appending to the current Parsing Error buffer */ gaiaOutBufferPtr buf = ctx; char out[65536]; va_list args; if (ctx != NULL) ctx = NULL; /* suppressing stupid compiler warnings (unused args) */ va_start (args, msg); vsnprintf (out, 65536, msg, args); gaiaAppendToOutBuffer (buf, out); va_end (args); } static int find_describe_uri (xmlNodePtr node, char **describe_uri) { /* parsing the "schemaLocation" string */ if (node != NULL) { if (node->type == XML_TEXT_NODE) { char *p_base; int len = strlen ((const char *) (node->content)); char *string = malloc (len + 1); strcpy (string, (char *) (node->content)); p_base = string; while (1) { char *p = p_base; while (1) { if (*p == ' ' || *p == '\0') { int next = 1; if (*p == '\0') next = 0; *p = '\0'; if (strstr (p_base, "DescribeFeatureType") != NULL) { len = strlen (p_base); *describe_uri = malloc (len + 1); strcpy (*describe_uri, p_base); free (string); return 1; } if (next) p_base = p + 1; else p_base = p; break; } p++; } if (*p_base == '\0') break; } free (string); } } return 0; } static int get_DescribeFeatureType_uri (xmlDocPtr xml_doc, char **describe_uri) { /* / attempting to retrieve the URI identifying the DescribeFeatureType service */ const char *name; xmlNodePtr root = xmlDocGetRootElement (xml_doc); struct _xmlAttr *attr; if (root == NULL) return 0; name = (const char *) (root->name); if (name != NULL) { if (strcmp (name, "FeatureCollection") != 0) return 0; /* for sure, it's not a WFS answer */ } attr = root->properties; while (attr != NULL) { if (attr->name != NULL) { if (strcmp ((const char *) (attr->name), "schemaLocation") == 0) return find_describe_uri (attr->children, describe_uri); } attr = attr->next; } return 0; } static const char * parse_attribute_name (xmlNodePtr node) { /* parsing the element/name string */ if (node != NULL) { if (node->type == XML_TEXT_NODE) return (const char *) (node->content); } return NULL; } static int parse_attribute_nillable (xmlNodePtr node) { /* parsing the element/nillable string */ if (node != NULL) { if (node->type == XML_TEXT_NODE) if (strcmp ((const char *) (node->content), "false") == 0) return 0; } return 1; } static const char * clean_xml_prefix (const char *value) { /* skipping an eventual XML prefix */ const char *ptr = value; while (1) { if (*ptr == '\0') break; if (*ptr == ':') return ptr + 1; ptr++; } return value; } static int parse_attribute_type (xmlNodePtr node, int *is_geom) { /* parsing the element/nillable string */ *is_geom = 0; if (node != NULL) { if (node->type == XML_TEXT_NODE) { const char *clean = clean_xml_prefix ((const char *) (node->content)); if (strstr (clean, "Geometry") != NULL) { *is_geom = 1; return GAIA_GEOMETRYCOLLECTION; } if (strstr (clean, "MultiPoint") != NULL) { *is_geom = 1; return GAIA_MULTIPOINT; } if (strstr (clean, "MultiLineString") != NULL) { *is_geom = 1; return GAIA_MULTILINESTRING; } if (strstr (clean, "MultiCurve") != NULL) { *is_geom = 1; return GAIA_MULTILINESTRING; } if (strstr (clean, "MultiPolygon") != NULL) { *is_geom = 1; return GAIA_MULTIPOLYGON; } if (strstr (clean, "MultiSurface") != NULL) { *is_geom = 1; return GAIA_MULTIPOLYGON; } if (strstr (clean, "Point") != NULL) { *is_geom = 1; return GAIA_POINT; } if (strstr (clean, "LineString") != NULL) { *is_geom = 1; return GAIA_LINESTRING; } if (strstr (clean, "Curve") != NULL) { *is_geom = 1; return GAIA_LINESTRING; } if (strstr (clean, "Polygon") != NULL) { *is_geom = 1; return GAIA_POLYGON; } if (strstr (clean, "Surface") != NULL) { *is_geom = 1; return GAIA_POLYGON; } if (strcmp (clean, "unsignedInt") == 0) return SQLITE_INTEGER; if (strcmp (clean, "nonNegativeInteger") == 0) return SQLITE_INTEGER; if (strcmp (clean, "negativeInteger") == 0) return SQLITE_INTEGER; if (strcmp (clean, "nonPositiveInteger") == 0) return SQLITE_INTEGER; if (strcmp (clean, "positiveInteger") == 0) return SQLITE_INTEGER; if (strcmp (clean, "integer") == 0) return SQLITE_INTEGER; if (strcmp (clean, "int") == 0) return SQLITE_INTEGER; if (strcmp (clean, "unsignedShort") == 0) return SQLITE_INTEGER; if (strcmp (clean, "short") == 0) return SQLITE_INTEGER; if (strcmp (clean, "unsignedLong") == 0) return SQLITE_INTEGER; if (strcmp (clean, "long") == 0) return SQLITE_INTEGER; if (strcmp (clean, "boolean") == 0) return SQLITE_INTEGER; if (strcmp (clean, "unsignedByte") == 0) return SQLITE_INTEGER; if (strcmp (clean, "byte") == 0) return SQLITE_INTEGER; if (strcmp (clean, "decimal") == 0) return SQLITE_FLOAT; if (strcmp (clean, "float") == 0) return SQLITE_FLOAT; if (strcmp (clean, "double") == 0) return SQLITE_FLOAT; } } return SQLITE_TEXT; } static int parse_attribute_inner_node (struct _xmlAttr *attr, int *type, int *is_geom) { /* attempting to retrieve the data-type from a complex attribute */ while (attr != NULL) { if (attr->name != NULL) { if (strcmp ((const char *) (attr->name), "base") == 0) { *type = parse_attribute_type (attr->children, is_geom); return 1; } } attr = attr->next; } return 0; } static void parse_attribute_inner_type (xmlNodePtr node, int *type, int *is_geom) { /* recursively parsing a complex attribute declaration */ xmlNodePtr cur_node = NULL; for (cur_node = node; cur_node; cur_node = cur_node->next) { if (cur_node->type == XML_ELEMENT_NODE) { const char *name = (const char *) (cur_node->name); if (name != NULL) { if (strcmp (name, "restriction") == 0) { if (parse_attribute_inner_node (cur_node->properties, type, is_geom)) return; } } parse_attribute_inner_type (cur_node->children, type, is_geom); } } } static void parse_wfs_schema_element (xmlNodePtr node, struct wfs_layer_schema *schema) { /* parsing a WFS attribute / column definition */ struct _xmlAttr *attr = node->properties; const char *name = NULL; int type = SQLITE_NULL; int is_nullable = 1; int is_geom = 0; int type_declared = 0; while (attr != NULL) { if (attr->name != NULL) { if (strcmp ((const char *) (attr->name), "name") == 0) name = parse_attribute_name (attr->children); if (strcmp ((const char *) (attr->name), "nillable") == 0) is_nullable = parse_attribute_nillable (attr->children); if (strcmp ((const char *) (attr->name), "type") == 0) { type_declared = 1; type = parse_attribute_type (attr->children, &is_geom); } } attr = attr->next; } if (!type_declared) parse_attribute_inner_type (node->children, &type, &is_geom); if (name == NULL || (is_geom == 0 && type == SQLITE_NULL) || (is_geom != 0 && type == GAIA_UNKNOWN)) return; if (is_geom) set_wfs_geometry (schema, name, type, is_nullable); else add_wfs_column_to_schema (schema, name, type, is_nullable); } static void parse_wfs_schema (xmlNodePtr node, struct wfs_layer_schema *schema, int *sequence) { /* recursively parsing the WFS layer schema */ xmlNodePtr cur_node = NULL; for (cur_node = node; cur_node; cur_node = cur_node->next) { if (cur_node->type == XML_ELEMENT_NODE) { const char *name = (const char *) (cur_node->name); if (name != NULL) { if (strcmp (name, "element") == 0 && *sequence) parse_wfs_schema_element (cur_node, schema); else { if (strcmp (name, "sequence") == 0) *sequence = 1; parse_wfs_schema (cur_node->children, schema, sequence); if (strcmp (name, "sequence") == 0) *sequence = 0; } } } } } static struct wfs_layer_schema * load_wfs_schema (const char *path_or_url, const char *layer_name, int swap_axes, char **err_msg) { /* attempting to retrieve the WFS layer schema */ xmlDocPtr xml_doc = NULL; xmlNodePtr root; int len; int sequence = 0; struct wfs_layer_schema *schema = NULL; gaiaOutBuffer errBuf; xmlGenericErrorFunc parsingError = (xmlGenericErrorFunc) wfsParsingError; gaiaOutBufferInitialize (&errBuf); xmlSetGenericErrorFunc (&errBuf, parsingError); if (path_or_url == NULL) goto end; if (layer_name == NULL) goto end; xml_doc = xmlReadFile (path_or_url, NULL, 0); if (xml_doc == NULL) { /* parsing error; not a well-formed XML */ if (errBuf.Buffer != NULL && err_msg != NULL) { len = strlen (errBuf.Buffer); *err_msg = malloc (len + 1); strcpy (*err_msg, errBuf.Buffer); } goto end; } schema = alloc_wfs_layer_schema (layer_name, swap_axes); root = xmlDocGetRootElement (xml_doc); parse_wfs_schema (root, schema, &sequence); if (schema->first == NULL && schema->geometry_name == NULL) { if (err_msg != NULL) { const char *msg = "Unable to identify a valid WFS layer schema"; len = strlen (msg); *err_msg = malloc (len + 1); strcpy (*err_msg, msg); } free_wfs_layer_schema (schema); schema = NULL; } end: gaiaOutBufferReset (&errBuf); xmlSetGenericErrorFunc ((void *) stderr, NULL); if (xml_doc != NULL) xmlFreeDoc (xml_doc); if (schema != NULL) { if (schema->first == NULL && schema->geometry_name == NULL) { /* empty schema */ free_wfs_layer_schema (schema); schema = NULL; } } return schema; } static void gml_out (gaiaOutBufferPtr buf, const xmlChar * str) { /* clean GML output */ const xmlChar *p = str; while (*p != '\0') { if (*p == '>') gaiaAppendToOutBuffer (buf, ">"); else if (*p == '<') gaiaAppendToOutBuffer (buf, "<"); else if (*p == '&') gaiaAppendToOutBuffer (buf, "&"); else if (*p == '"') gaiaAppendToOutBuffer (buf, """); else if (*p == '\'') gaiaAppendToOutBuffer (buf, "'"); else { char xx[2]; xx[0] = *p; xx[1] = '\0'; gaiaAppendToOutBuffer (buf, xx); } p++; } } static void reassemble_gml (xmlNodePtr node, gaiaOutBufferPtr buf) { /* recursively printing the XML-DOM nodes */ struct _xmlAttr *attr; xmlNodePtr child; xmlNs *ns; const xmlChar *namespace; int has_children; int has_text; while (node) { if (node->type == XML_ELEMENT_NODE) { gaiaAppendToOutBuffer (buf, "<"); ns = node->ns; namespace = NULL; if (ns != NULL) namespace = ns->prefix; if (namespace) { gml_out (buf, namespace); gaiaAppendToOutBuffer (buf, ":"); } gml_out (buf, node->name); attr = node->properties; while (attr != NULL) { /* attributes */ if (attr->type == XML_ATTRIBUTE_NODE) { xmlNodePtr text = attr->children; gaiaAppendToOutBuffer (buf, " "); ns = attr->ns; namespace = NULL; if (ns != NULL) namespace = ns->prefix; if (namespace) { gml_out (buf, namespace); gaiaAppendToOutBuffer (buf, ":"); } gml_out (buf, attr->name); gaiaAppendToOutBuffer (buf, "=\""); if (text != NULL) { if (text->type == XML_TEXT_NODE) gml_out (buf, text->content); } gaiaAppendToOutBuffer (buf, "\""); } attr = attr->next; } has_children = 0; has_text = 0; child = node->children; while (child) { if (child->type == XML_ELEMENT_NODE) has_children = 1; if (child->type == XML_TEXT_NODE) has_text++; child = child->next; } if (has_children) has_text = 0; if (!has_text && !has_children) gaiaAppendToOutBuffer (buf, " />"); if (has_text) { child = node->children; if (child->type == XML_TEXT_NODE) { /* text node */ gaiaAppendToOutBuffer (buf, ">"); gml_out (buf, child->content); gaiaAppendToOutBuffer (buf, "ns; namespace = NULL; if (ns != NULL) namespace = ns->prefix; if (namespace) { gml_out (buf, namespace); gaiaAppendToOutBuffer (buf, ":"); } gml_out (buf, node->name); gaiaAppendToOutBuffer (buf, ">"); } } if (has_children) { /* recursively expanding all children */ gaiaAppendToOutBuffer (buf, ">"); reassemble_gml (node->children, buf); gaiaAppendToOutBuffer (buf, "ns; namespace = NULL; if (ns != NULL) namespace = ns->prefix; if (namespace) { gml_out (buf, namespace); gaiaAppendToOutBuffer (buf, ":"); } gml_out (buf, node->name); gaiaAppendToOutBuffer (buf, ">"); } } node = node->next; } } static void set_feature_geom (xmlNodePtr node, struct wfs_layer_schema *schema) { /* saving the feature's geometry value */ gaiaOutBuffer gml; gaiaOutBufferInitialize (&gml); /* reassembling the GML expression */ reassemble_gml (node, &gml); if (gml.Buffer != NULL) { if (schema->geometry_value != NULL) free (schema->geometry_value); schema->geometry_value = gml.Buffer; } } static void set_feature_value (xmlNodePtr node, struct wfs_column_def *col) { /* saving an attribute value */ if (node == NULL) return; if (node->type == XML_TEXT_NODE) col->pValue = (const char *) (node->content); } static void check_feature_value (xmlNodePtr node, struct wfs_layer_schema *schema) { /* attempting to extract an attribute value */ struct wfs_column_def *col; if (strcmp ((const char *) (node->name), schema->geometry_name) == 0) { set_feature_geom (node->children, schema); return; } col = schema->first; while (col != NULL) { if (strcmp ((const char *) (node->name), col->name) == 0) { set_feature_value (node->children, col); return; } col = col->next; } } static int test_effective_geom (struct wfs_layer_schema *schema, int *type, int *cast_type, int *cast_dims) { /* testing the effective GeometryType and dims */ int pts = 0; int lns = 0; int pgs = 0; int mpts = 0; int mlns = 0; int mpgs = 0; int colls = 0; int dims_xy = 0; int dims_xyz = 0; int dims_xym = 0; int dims_xyzm = 0; int dims = GAIA_XY; int i; for (i = 0; i < MAX_GTYPES; i++) { struct wfs_geom_type *p = schema->types + i; switch (p->type) { case GAIA_POINT: case GAIA_POINTZ: case GAIA_POINTM: case GAIA_POINTZM: pts += p->count; break; case GAIA_LINESTRING: case GAIA_LINESTRINGZ: case GAIA_LINESTRINGM: case GAIA_LINESTRINGZM: lns += p->count; break; case GAIA_POLYGON: case GAIA_POLYGONZ: case GAIA_POLYGONM: case GAIA_POLYGONZM: pgs += p->count; break; case GAIA_MULTIPOINT: case GAIA_MULTIPOINTZ: case GAIA_MULTIPOINTM: case GAIA_MULTIPOINTZM: mpts += p->count; break; case GAIA_MULTILINESTRING: case GAIA_MULTILINESTRINGZ: case GAIA_MULTILINESTRINGM: case GAIA_MULTILINESTRINGZM: mlns += p->count; break; case GAIA_MULTIPOLYGON: case GAIA_MULTIPOLYGONZ: case GAIA_MULTIPOLYGONM: case GAIA_MULTIPOLYGONZM: mpgs += p->count; break; case GAIA_GEOMETRYCOLLECTION: case GAIA_GEOMETRYCOLLECTIONZ: case GAIA_GEOMETRYCOLLECTIONM: case GAIA_GEOMETRYCOLLECTIONZM: colls += p->count; break; }; if (p->count > 0) { switch (p->type) { case GAIA_POINT: case GAIA_LINESTRING: case GAIA_POLYGON: case GAIA_MULTIPOINT: case GAIA_MULTILINESTRING: case GAIA_MULTIPOLYGON: case GAIA_GEOMETRYCOLLECTION: dims_xy++; break; case GAIA_POINTZ: case GAIA_LINESTRINGZ: case GAIA_POLYGONZ: case GAIA_MULTIPOINTZ: case GAIA_MULTILINESTRINGZ: case GAIA_MULTIPOLYGONZ: case GAIA_GEOMETRYCOLLECTIONZ: dims_xyz++; break; case GAIA_POINTM: case GAIA_LINESTRINGM: case GAIA_POLYGONM: case GAIA_MULTIPOINTM: case GAIA_MULTILINESTRINGM: case GAIA_MULTIPOLYGONM: case GAIA_GEOMETRYCOLLECTIONM: dims_xym++; break; case GAIA_POINTZM: case GAIA_LINESTRINGZM: case GAIA_POLYGONZM: case GAIA_MULTIPOINTZM: case GAIA_MULTILINESTRINGZM: case GAIA_MULTIPOLYGONZM: case GAIA_GEOMETRYCOLLECTIONZM: dims_xyzm++; break; }; } } if (dims_xy > 0 && dims_xyz == 0 && dims_xym == 0 && dims_xyzm == 0) dims = GAIA_XY; if (dims_xyz > 0 && dims_xym == 0 && dims_xyzm == 0) dims = GAIA_XY_Z; if (dims_xyz == 0 && dims_xym > 0 && dims_xyzm == 0) dims = GAIA_XY_M; if (dims_xyzm > 0) dims = GAIA_XY_Z_M; *cast_dims = 0; if (dims_xy > 0 && dims == GAIA_XY_Z) *cast_dims = 1; if (dims_xy > 0 && dims == GAIA_XY_M) *cast_dims = 1; if ((dims_xy > 0 || dims_xyz > 0 || dims_xym > 0) && dims == GAIA_XY_Z_M) *cast_dims = 1; if (pts > 0 && lns == 0 && pgs == 0 && mpts == 0 && mlns == 0 && mpgs == 0 && colls == 0) { if (dims == GAIA_XY_Z_M) *type = GAIA_POINTZM; else if (dims == GAIA_XY_Z) *type = GAIA_POINTZ; else if (dims == GAIA_XY_M) *type = GAIA_POINTM; else *type = GAIA_POINT; *cast_type = 0; return 1; } if (pts == 0 && lns > 0 && pgs == 0 && mpts == 0 && mlns == 0 && mpgs == 0 && colls == 0) { if (dims == GAIA_XY_Z_M) *type = GAIA_LINESTRINGZM; else if (dims == GAIA_XY_Z) *type = GAIA_LINESTRINGZ; else if (dims == GAIA_XY_M) *type = GAIA_LINESTRINGM; else *type = GAIA_LINESTRING; *cast_type = 0; return 1; } if (pts == 0 && lns == 0 && pgs > 0 && mpts == 0 && mlns == 0 && mpgs == 0 && colls == 0) { if (dims == GAIA_XY_Z_M) *type = GAIA_POLYGONZM; else if (dims == GAIA_XY_Z) *type = GAIA_POLYGONZ; else if (dims == GAIA_XY_M) *type = GAIA_POLYGONM; else *type = GAIA_POLYGON; *cast_type = 0; return 1; } if ((pts > 0 || mpts > 0) && lns == 0 && pgs == 0 && mlns == 0 && mpgs == 0 && colls == 0) { if (dims == GAIA_XY_Z_M) *type = GAIA_MULTIPOINTZM; else if (dims == GAIA_XY_Z) *type = GAIA_MULTIPOINTZ; else if (dims == GAIA_XY_M) *type = GAIA_MULTIPOINTM; else *type = GAIA_MULTIPOINT; if (pts > 0) *cast_type = 1; else *cast_type = 0; return 1; } if (pts == 0 && (lns > 0 || mlns > 0) && pgs == 0 && mpts == 0 && mpgs == 0 && colls == 0) { if (dims == GAIA_XY_Z_M) *type = GAIA_MULTILINESTRINGZM; else if (dims == GAIA_XY_Z) *type = GAIA_MULTILINESTRINGZ; else if (dims == GAIA_XY_M) *type = GAIA_MULTILINESTRINGM; else *type = GAIA_MULTILINESTRING; if (lns > 0) *cast_type = 1; else *cast_type = 0; return 1; } if (pts == 0 && lns == 0 && (pgs > 0 || mpgs > 0) && mpts == 0 && mlns == 0 && colls == 0) { if (dims == GAIA_XY_Z_M) *type = GAIA_MULTIPOLYGONZM; else if (dims == GAIA_XY_Z) *type = GAIA_MULTIPOLYGONZ; else if (dims == GAIA_XY_M) *type = GAIA_MULTIPOLYGONM; else *type = GAIA_MULTIPOLYGON; if (pgs > 0) *cast_type = 1; else *cast_type = 0; return 1; } if (dims == GAIA_XY_Z_M) *type = GAIA_GEOMETRYCOLLECTIONZM; else if (dims == GAIA_XY_Z) *type = GAIA_GEOMETRYCOLLECTIONZ; else if (dims == GAIA_XY_M) *type = GAIA_GEOMETRYCOLLECTIONM; else *type = GAIA_GEOMETRYCOLLECTION; if (pts > 0 || lns > 0 || pgs > 0 || mpts > 0 || mlns > 0 || mpgs > 0) *cast_type = 1; else *cast_type = 0; return 1; } static int parse_wfs_single_feature (xmlNodePtr node, struct wfs_layer_schema *schema) { /* attempting to extract data corresponding to a single feature */ xmlNodePtr cur_node = NULL; int cnt = 0; reset_wfs_values (schema); for (cur_node = node; cur_node; cur_node = cur_node->next) { if (cur_node->type == XML_ELEMENT_NODE) check_feature_value (cur_node, schema); } cnt = count_wfs_values (schema); return cnt; } static int check_real_type (struct wfs_layer_schema *schema, int *type, int *cast_type, int *cast_dims) { /* attempting to assign a more precise GeometryType */ int xtype; if (test_effective_geom (schema, &xtype, cast_type, cast_dims)) { *type = xtype; return 1; } return 0; } static void update_geom_stats (struct wfs_layer_schema *schema, int type) { /* updating the type statistics */ int i; if (schema->geometry_type != GAIA_GEOMETRYCOLLECTION) return; for (i = 0; i < MAX_GTYPES; i++) { struct wfs_geom_type *p = schema->types + i; if (p->type == type) { p->count += 1; return; } } } static int do_insert (struct wfs_layer_schema *schema, char **err_msg) { /* inserting a row into the target table */ int ret; int ind = 1; sqlite3_stmt *stmt = schema->stmt; struct wfs_column_def *col; if (stmt == NULL || schema->error) { schema->error = 1; return 0; } /* binding */ sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); col = schema->first; while (col != NULL) { if (col->pValue == NULL) sqlite3_bind_null (stmt, ind); else { if (col->type == SQLITE_INTEGER) { sqlite3_int64 val = atoll (col->pValue); sqlite3_bind_int64 (stmt, ind, val); } else if (col->type == SQLITE_FLOAT) { double val = atof (col->pValue); sqlite3_bind_double (stmt, ind, val); } else sqlite3_bind_text (stmt, ind, col->pValue, strlen (col->pValue), SQLITE_STATIC); } ind++; col = col->next; } if (schema->geometry_name != NULL) { /* we have a Geometry column */ if (schema->geometry_value != NULL) { /* preparing the Geometry value */ gaiaGeomCollPtr geom = gaiaParseGml ((unsigned char *) (schema->geometry_value), schema->sqlite); if (geom == NULL) sqlite3_bind_null (stmt, ind); else { unsigned char *blob; int blob_size; int type = gaiaGeometryType (geom); if (type == GAIA_POINT && schema->geometry_type == GAIA_MULTIPOINT) { /* promoting to MultiPoint */ geom->DeclaredType = GAIA_MULTIPOINT; } if (type == GAIA_LINESTRING && schema->geometry_type == GAIA_MULTILINESTRING) { /* promoting to MultiLinestring */ geom->DeclaredType = GAIA_MULTILINESTRING; } if (type == GAIA_POLYGON && schema->geometry_type == GAIA_MULTIPOLYGON) { /* promoting to MultiPolygon */ geom->DeclaredType = GAIA_MULTIPOLYGON; } geom->Srid = schema->srid; if (schema->swap_axes != 0) gaiaSwapCoords (geom); gaiaToSpatiaLiteBlobWkb (geom, &blob, &blob_size); sqlite3_bind_blob (stmt, ind, blob, blob_size, free); gaiaFreeGeomColl (geom); update_geom_stats (schema, type); } } else sqlite3_bind_null (stmt, ind); } /* inserting */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) return 1; spatialite_e ("loadwfs INSERT error: <%s>\n", sqlite3_errmsg (schema->sqlite)); schema->error = 1; if (err_msg == NULL) ; else { int len; const char *err = sqlite3_errmsg (schema->sqlite); if (*err_msg != NULL) free (*err_msg); len = strlen (err); *err_msg = malloc (len + 1); strcpy (*err_msg, err); } return 0; } static void save_attribute (struct wfs_feature *feature, struct wfs_column_def *col) { /* saving an attribute value */ struct wfs_attribute *attr = feature->first; while (attr != NULL) { if (attr->column == col) { if (attr->value != NULL) free (attr->value); attr->value = NULL; if (col->pValue != NULL) { int len = strlen (col->pValue); attr->value = malloc (len + 1); strcpy (attr->value, col->pValue); } return; } attr = attr->next; } } static int do_save_feature (struct wfs_layer_schema *schema, struct wfs_feature *feature) { /* saving the current feature data */ struct wfs_column_def *col; if (schema->error) { schema->error = 1; return 0; } reset_feature (feature); col = schema->first; while (col != NULL) { save_attribute (feature, col); col = col->next; } if (schema->geometry_name != NULL) { /* we have a Geometry column */ if (schema->geometry_value != NULL) { int len = strlen (schema->geometry_value); feature->geometry_value = malloc (len + 1); strcpy (feature->geometry_value, schema->geometry_value); } } return 1; } static void parse_wfs_features (xmlNodePtr node, struct wfs_layer_schema *schema, int *rows, char **err_msg) { /* recursively parsing the GML payload */ xmlNodePtr cur_node = NULL; for (cur_node = node; cur_node; cur_node = cur_node->next) { if (cur_node->type == XML_ELEMENT_NODE) { char *entity_name; if (cur_node->ns != NULL) entity_name = sqlite3_mprintf ("%s:%s", cur_node->ns->prefix, cur_node->name); else entity_name = sqlite3_mprintf ("%s", cur_node->name); if (strcmp (schema->layer_name, entity_name) == 0 || strcmp (schema->layer_name, (const char *) (cur_node->name)) == 0) { if (parse_wfs_single_feature (cur_node->children, schema)) { if (schema->error == 0) { if (do_insert (schema, err_msg)) *rows += 1; } } } else parse_wfs_features (cur_node->children, schema, rows, err_msg); sqlite3_free (entity_name); } } } static void parse_wfs_last_feature (xmlNodePtr node, struct wfs_layer_schema *schema, struct wfs_feature *feature, int *rows) { /* recursively parsing the GML payload */ xmlNodePtr cur_node = NULL; for (cur_node = node; cur_node; cur_node = cur_node->next) { if (cur_node->type == XML_ELEMENT_NODE) { if (parse_wfs_single_feature (cur_node, schema)) { if (schema->error == 0) { if (do_save_feature (schema, feature)) *rows += 1; } return; } else parse_wfs_last_feature (cur_node->children, schema, feature, rows); } } } static int sniff_feature_value (xmlNodePtr node, struct wfs_layer_schema *schema, xmlNodePtr * geom) { /* sniffing attribute values */ struct wfs_column_def *col; if (strcmp ((const char *) (node->name), schema->geometry_name) == 0) { *geom = node->children; return 1; } col = schema->first; while (col != NULL) { if (strcmp ((const char *) (node->name), col->name) == 0) return 1; col = col->next; } return 0; } static int parse_srsname (xmlNodePtr node) { /* parsing the srsName string */ if (node != NULL) { if (node->type == XML_TEXT_NODE) { int len = strlen ((const char *) (node->content)); const char *end = (const char *) (node->content) + len; const char *p = end; if (len > 0) { p--; while (p >= (char *) (node->content)) { if (*p >= '0' && *p <= '9') { p--; continue; } if (p + 1 < end) return atoi (p + 1); } } } } return -1; } static int parse_dimension (xmlNodePtr node) { /* parsing the dimension string */ if (node != NULL) { if (node->type == XML_TEXT_NODE) return atoi ((const char *) (node->content)); } return 2; } static void sniff_gml_geometry (xmlNodePtr node, struct wfs_layer_schema *schema) { /* attempting to identify the Srid and dimension from a GML geometry */ xmlNodePtr cur_node = NULL; if (node == NULL) return; for (cur_node = node; cur_node; cur_node = cur_node->next) { if (cur_node->type == XML_ELEMENT_NODE) { struct _xmlAttr *attr; attr = cur_node->properties; while (attr != NULL) { if (attr->name != NULL) { if (strcmp ((const char *) (attr->name), "srsName") == 0) schema->srid = parse_srsname (attr->children); if (strcmp ((const char *) (attr->name), "dimension") == 0) schema->dims = parse_dimension (attr->children); } attr = attr->next; } sniff_gml_geometry (cur_node->children, schema); } } } static int sniff_wfs_single_feature (xmlNodePtr node, struct wfs_layer_schema *schema) { /* attempting to sniff data corresponding to a single feature */ xmlNodePtr cur_node = NULL; int cnt = 0; xmlNodePtr geom = NULL; reset_wfs_values (schema); for (cur_node = node; cur_node; cur_node = cur_node->next) { if (cur_node->type == XML_ELEMENT_NODE) cnt += sniff_feature_value (cur_node, schema, &geom); } if (cnt > 0 && geom != NULL) { sniff_gml_geometry (geom, schema); return 1; } return 0; } static void sniff_geometries (xmlNodePtr node, struct wfs_layer_schema *schema, int *sniffed) { /* recursively parsing the GML payload so to sniff the first geometry */ xmlNodePtr cur_node = NULL; for (cur_node = node; cur_node; cur_node = cur_node->next) { if (cur_node->type == XML_ELEMENT_NODE) { if (*sniffed) return; if (sniff_wfs_single_feature (cur_node, schema)) { *sniffed = 1; return; } else sniff_geometries (cur_node->children, schema, sniffed); } } } static int check_pk_name (struct wfs_layer_schema *schema, const char *pk_column_name, char *auto_pk_name) { /* handling the PK name */ int num = 0; char pk_candidate[1024]; struct wfs_column_def *col; if (pk_column_name == NULL) goto check_auto; col = schema->first; while (col != NULL) { /* checking if the required PK does really exists */ if (strcasecmp (col->name, pk_column_name) == 0) return 1; col = col->next; } check_auto: strcpy (pk_candidate, auto_pk_name); while (1) { /* ensuring to return a not ambiguous PK name */ int ok = 1; col = schema->first; while (col != NULL) { /* checking if the PK candidate isn't already defined */ if (strcasecmp (col->name, pk_candidate) == 0) { ok = 0; break; } col = col->next; } if (ok) { strcpy (auto_pk_name, pk_candidate); break; } sprintf (pk_candidate, "%s_%d", auto_pk_name, num); num++; } return 0; } static int prepare_sql (sqlite3 * sqlite, struct wfs_layer_schema *schema, const char *table, const char *pk_column_name, int spatial_index, char **err_msg) { /* creating the output table and preparing the insert statement */ int len; int ret; char *errMsg = NULL; gaiaOutBuffer sql; char *sql2; char *quoted; struct wfs_column_def *col; char auto_pk_name[1024]; int is_auto_pk = 0; int comma = 0; sqlite3_stmt *stmt = NULL; /* attempting to create the SQL Table */ gaiaOutBufferInitialize (&sql); quoted = gaiaDoubleQuotedSql (table); sql2 = sqlite3_mprintf ("CREATE TABLE \"%s\" (\n", quoted); free (quoted); gaiaAppendToOutBuffer (&sql, sql2); sqlite3_free (sql2); if (pk_column_name == NULL) strcpy (auto_pk_name, "pk_uid"); else { /* Even Rouault 2013-06-02 - avoiding a potential buffer overflow */ if (strlen (pk_column_name) >= sizeof (auto_pk_name) - 1) return 0; /* END - Even Rouault 2013-06-02 */ strcpy (auto_pk_name, pk_column_name); } if (!check_pk_name (schema, pk_column_name, auto_pk_name)) { /* defining a default Primary Key */ is_auto_pk = 1; quoted = gaiaDoubleQuotedSql (auto_pk_name); sql2 = sqlite3_mprintf ("\t\"%s\" INTEGER PRIMARY KEY AUTOINCREMENT", quoted); comma = 1; free (quoted); gaiaAppendToOutBuffer (&sql, sql2); sqlite3_free (sql2); } col = schema->first; while (col != NULL) { const char *type = "TEXT"; if (comma) { gaiaAppendToOutBuffer (&sql, ",\n"); comma = 0; } if (col->type == SQLITE_INTEGER) type = "INTEGER"; if (col->type == SQLITE_FLOAT) type = "DOUBLE"; quoted = gaiaDoubleQuotedSql (col->name); if (!is_auto_pk) { /* there is an explicitly defined PK */ if (strcasecmp (col->name, pk_column_name) == 0) { /* ok, we've found the PK column */ if (col == schema->last) sql2 = sqlite3_mprintf ("\t\"%s\" %s PRIMARY KEY", quoted, type); else sql2 = sqlite3_mprintf ("\t\"%s\" %s PRIMARY KEY,\n", quoted, type); free (quoted); gaiaAppendToOutBuffer (&sql, sql2); sqlite3_free (sql2); col = col->next; continue; } } if (col == schema->last) { if (col->is_nullable) sql2 = sqlite3_mprintf ("\t\"%s\" %s", quoted, type); else sql2 = sqlite3_mprintf ("\t\"%s\" %s NOT NULL", quoted, type); } else { if (col->is_nullable) sql2 = sqlite3_mprintf ("\t\"%s\" %s,\n", quoted, type); else sql2 = sqlite3_mprintf ("\t\"%s\" %s NOT NULL,\n", quoted, type); } free (quoted); gaiaAppendToOutBuffer (&sql, sql2); sqlite3_free (sql2); col = col->next; } gaiaAppendToOutBuffer (&sql, ")"); ret = sqlite3_exec (sqlite, sql.Buffer, NULL, NULL, &errMsg); gaiaOutBufferReset (&sql); if (ret != SQLITE_OK) { spatialite_e ("loadwfs: CREATE TABLE '%s' error: %s\n", table, errMsg); schema->error = 1; if (err_msg == NULL) { sqlite3_free (errMsg); return 0; } len = strlen (errMsg); *err_msg = malloc (len + 1); strcpy (*err_msg, errMsg); sqlite3_free (errMsg); return 0; } if (schema->geometry_name != NULL) { /* creating the Geometry column */ const char *gType = "GEOMETRY"; const char *gDims = "XY"; switch (schema->geometry_type) { case GAIA_POINT: gType = "POINT"; break; case GAIA_LINESTRING: gType = "LINESTRING"; break; case GAIA_POLYGON: gType = "POLYGON"; break; case GAIA_MULTIPOINT: gType = "MULTIPOINT"; break; case GAIA_MULTILINESTRING: gType = "MULTILINESTRING"; break; case GAIA_MULTIPOLYGON: gType = "MULTIPOLYGON"; break; }; if (schema->dims == 3) gDims = "XYZ"; sql2 = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, %Q, %d, %Q, %Q)", table, schema->geometry_name, schema->srid, gType, gDims); gaiaAppendToOutBuffer (&sql, sql2); sqlite3_free (sql2); ret = sqlite3_exec (sqlite, sql.Buffer, NULL, NULL, &errMsg); gaiaOutBufferReset (&sql); if (ret != SQLITE_OK) { spatialite_e ("loadwfs: AddGeometryColumn error: %s\n", errMsg); schema->error = 1; if (err_msg == NULL) { sqlite3_free (errMsg); return 0; } len = strlen (errMsg); *err_msg = malloc (len + 1); strcpy (*err_msg, errMsg); return 0; } if (spatial_index) { /* creating the Spatial Index */ sql2 = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, %Q)", table, schema->geometry_name); gaiaAppendToOutBuffer (&sql, sql2); sqlite3_free (sql2); ret = sqlite3_exec (sqlite, sql.Buffer, NULL, NULL, &errMsg); gaiaOutBufferReset (&sql); if (ret != SQLITE_OK) { spatialite_e ("loadwfs: CreateSpatialIndex error: %s\n", errMsg); schema->error = 1; if (err_msg == NULL) { sqlite3_free (errMsg); return 0; } len = strlen (errMsg); *err_msg = malloc (len + 1); strcpy (*err_msg, errMsg); return 0; } } } /* creating the INSERT statement */ quoted = gaiaDoubleQuotedSql (table); sql2 = sqlite3_mprintf ("INSERT INTO \"%s\" (\n", quoted); free (quoted); gaiaAppendToOutBuffer (&sql, sql2); sqlite3_free (sql2); if (is_auto_pk) { /* the auto-generated PK column */ quoted = gaiaDoubleQuotedSql (auto_pk_name); sql2 = sqlite3_mprintf ("\"%s\", ", quoted); free (quoted); gaiaAppendToOutBuffer (&sql, sql2); sqlite3_free (sql2); } col = schema->first; while (col != NULL) { /* column names */ quoted = gaiaDoubleQuotedSql (col->name); if (col == schema->last && schema->geometry_name == NULL) sql2 = sqlite3_mprintf ("\"%s\") VALUES (", quoted); else sql2 = sqlite3_mprintf ("\"%s\", ", quoted); free (quoted); gaiaAppendToOutBuffer (&sql, sql2); sqlite3_free (sql2); col = col->next; } if (schema->geometry_name != NULL) { /* the geometry column name */ quoted = gaiaDoubleQuotedSql (schema->geometry_name); sql2 = sqlite3_mprintf ("\"%s\") VALUES (", quoted); free (quoted); gaiaAppendToOutBuffer (&sql, sql2); sqlite3_free (sql2); } if (is_auto_pk) { /* there is an AUTOINCREMENT PK */ gaiaAppendToOutBuffer (&sql, "NULL, "); } col = schema->first; while (col != NULL) { if (col == schema->last && schema->geometry_name == NULL) gaiaAppendToOutBuffer (&sql, "?)"); else gaiaAppendToOutBuffer (&sql, "?, "); col = col->next; } if (schema->geometry_name != NULL) gaiaAppendToOutBuffer (&sql, "?)"); ret = sqlite3_prepare_v2 (sqlite, sql.Buffer, strlen (sql.Buffer), &stmt, NULL); gaiaOutBufferReset (&sql); if (ret != SQLITE_OK) { errMsg = (char *) sqlite3_errmsg (sqlite); spatialite_e ("loadwfs: \"%s\"\n", errMsg); schema->error = 1; if (err_msg == NULL) return 0; len = strlen (errMsg); *err_msg = malloc (len + 1); strcpy (*err_msg, errMsg); return 0; } schema->stmt = stmt; schema->sqlite = sqlite; /* starting an SQL Transaction */ if (sqlite3_exec (sqlite, "BEGIN", NULL, NULL, &errMsg) != SQLITE_OK) { spatialite_e ("loadwfs: BEGIN error:\"%s\"\n", errMsg); schema->error = 1; if (err_msg == NULL) { sqlite3_free (errMsg); return 0; } len = strlen (errMsg); *err_msg = malloc (len + 1); strcpy (*err_msg, errMsg); sqlite3_free (errMsg); } if (schema->error) return 0; return 1; } static void restart_transaction (sqlite3 * sqlite) { /* confirming the still pendenting SQL transaction */ char *errMsg = NULL; if (sqlite3_exec (sqlite, "COMMIT", NULL, NULL, &errMsg) != SQLITE_OK) { spatialite_e ("loadwfs: COMMIT error:\"%s\"\n", errMsg); sqlite3_free (errMsg); } /* restarting a further transaction */ if (sqlite3_exec (sqlite, "BEGIN", NULL, NULL, &errMsg) != SQLITE_OK) { spatialite_e ("loadwfs: BEGIN error:\"%s\"\n", errMsg); sqlite3_free (errMsg); } } static void do_commit (sqlite3 * sqlite, struct wfs_layer_schema *schema) { /* confirming the still pendenting SQL transaction */ char *errMsg = NULL; sqlite3_finalize (schema->stmt); schema->stmt = NULL; if (sqlite3_exec (sqlite, "COMMIT", NULL, NULL, &errMsg) != SQLITE_OK) { spatialite_e ("loadwfs: COMMIT error:\"%s\"\n", errMsg); sqlite3_free (errMsg); schema->error = 1; } } static void do_rollback (sqlite3 * sqlite, struct wfs_layer_schema *schema) { /* invalidating the still pending SQL transaction */ char *errMsg = NULL; sqlite3_finalize (schema->stmt); schema->stmt = NULL; if (sqlite3_exec (sqlite, "ROLLBACK", NULL, NULL, &errMsg) != SQLITE_OK) { spatialite_e ("loadwfs: ROLLBACK error:\"%s\"\n", errMsg); sqlite3_free (errMsg); schema->error = 1; } } SPATIALITE_DECLARE int load_from_wfs (sqlite3 * sqlite, const char *path_or_url, const char *alt_describe_uri, const char *layer_name, int swap_axes, const char *table, const char *pk_column_name, int spatial_index, int *rows, char **err_msg, void (*progress_callback) (int, void *), void *callback_ptr) { /* attempting to load data from some WFS source [not-paged] */ return load_from_wfs_paged (sqlite, path_or_url, alt_describe_uri, layer_name, swap_axes, table, pk_column_name, spatial_index, -1, rows, err_msg, progress_callback, callback_ptr); } static int test_wfs_paging (const char *path_or_url, int page_size, xmlNodePtr node, struct wfs_layer_schema *schema, int *shift_index) { /* testing if the server does actually supports STARTINDEX */ xmlDocPtr xml_doc = NULL; xmlNodePtr root; char *page_url; int nRows = 0; struct wfs_feature *feature_1 = create_feature (schema); struct wfs_feature *feature_2 = create_feature (schema); *shift_index = 0; parse_wfs_last_feature (node, schema, feature_1, &nRows); if (nRows < page_size) { /* a single page is required: this means no-paging at all */ free_feature (feature_1); return 1; } /* loading the feature to be tested */ page_url = sqlite3_mprintf ("%s&maxFeatures=1&startIndex=%d", path_or_url, page_size - 1); xml_doc = xmlReadFile (page_url, NULL, 0); sqlite3_free (page_url); if (xml_doc == NULL) goto error; /* parsing the WFS payload */ root = xmlDocGetRootElement (xml_doc); nRows = 0; parse_wfs_last_feature (root, schema, feature_2, &nRows); if (!compare_features (feature_1, feature_2)) { reset_feature (feature_2); if (xml_doc != NULL) xmlFreeDoc (xml_doc); goto second_chance; } free_feature (feature_1); free_feature (feature_2); if (xml_doc != NULL) xmlFreeDoc (xml_doc); return 1; /* for some MapServer version the first Index is 1, not 0 */ second_chance: page_url = sqlite3_mprintf ("%s&maxFeatures=1&startIndex=%d", path_or_url, page_size); xml_doc = xmlReadFile (page_url, NULL, 0); sqlite3_free (page_url); if (xml_doc == NULL) goto error; /* parsing the WFS payload */ root = xmlDocGetRootElement (xml_doc); nRows = 0; parse_wfs_last_feature (root, schema, feature_2, &nRows); if (!compare_features (feature_1, feature_2)) goto error; free_feature (feature_1); free_feature (feature_2); if (xml_doc != NULL) xmlFreeDoc (xml_doc); *shift_index = 1; return 1; error: free_feature (feature_1); free_feature (feature_2); if (xml_doc != NULL) xmlFreeDoc (xml_doc); return 0; } static void do_adjust_geoms (sqlite3 * sqlite, const char *table, const char *geometry, int type, int cast_type, int cast_dims) { /* final adjustement for GeometryType and dims */ char *errMsg = NULL; char *xtable; char *xgeom; char *xopen; char *xclose; char *sql; int ret; int dims; int metadata_version = checkSpatialMetaData (sqlite); /* starting a transaction */ if (sqlite3_exec (sqlite, "BEGIN", NULL, NULL, &errMsg) != SQLITE_OK) { spatialite_e ("loadwfs: BEGIN error:\"%s\"\n", errMsg); sqlite3_free (errMsg); } if (cast_type || cast_dims) { xtable = gaiaDoubleQuotedSql (table); xgeom = gaiaDoubleQuotedSql (geometry); /* settting the dimension model */ switch (type) { case GAIA_POINT: case GAIA_LINESTRING: case GAIA_POLYGON: case GAIA_MULTIPOINT: case GAIA_MULTILINESTRING: case GAIA_MULTIPOLYGON: case GAIA_GEOMETRYCOLLECTION: dims = GAIA_XY; break; case GAIA_POINTZ: case GAIA_LINESTRINGZ: case GAIA_POLYGONZ: case GAIA_MULTIPOINTZ: case GAIA_MULTILINESTRINGZ: case GAIA_MULTIPOLYGONZ: case GAIA_GEOMETRYCOLLECTIONZ: dims = GAIA_XY_Z; break; case GAIA_POINTM: case GAIA_LINESTRINGM: case GAIA_POLYGONM: case GAIA_MULTIPOINTM: case GAIA_MULTILINESTRINGM: case GAIA_MULTIPOLYGONM: case GAIA_GEOMETRYCOLLECTIONM: dims = GAIA_XY_M; break; case GAIA_POINTZM: case GAIA_LINESTRINGZM: case GAIA_POLYGONZM: case GAIA_MULTIPOINTZM: case GAIA_MULTILINESTRINGZM: case GAIA_MULTIPOLYGONZM: case GAIA_GEOMETRYCOLLECTIONZM: dims = GAIA_XY_Z_M; break; }; /*preparing the SQL UPDATE statement */ switch (type) { case GAIA_POINT: case GAIA_POINTZ: case GAIA_POINTM: case GAIA_POINTZM: if (cast_type && !cast_dims) { xopen = "CastToPoint("; xclose = ")"; } else if (!cast_type && cast_dims) { switch (dims) { case GAIA_XY: xopen = "CastToXY("; xclose = ")"; break; case GAIA_XY_Z: xopen = "CastToXYZ("; xclose = ")"; break; case GAIA_XY_M: xopen = "CastToXYM("; xclose = ")"; break; case GAIA_XY_Z_M: xopen = "CastToXYZM("; xclose = ")"; break; }; } else { switch (dims) { case GAIA_XY: xopen = "CastToPoint(CastToXY("; xclose = "))"; break; case GAIA_XY_Z: xopen = "CastToPoint(CastToXYZ("; xclose = "))"; break; case GAIA_XY_M: xopen = "CastToPoint(CastToXYM("; xclose = "))"; break; case GAIA_XY_Z_M: xopen = "CastToPoint(CastToXYZM("; xclose = "))"; break; }; } break; case GAIA_LINESTRING: case GAIA_LINESTRINGZ: case GAIA_LINESTRINGM: case GAIA_LINESTRINGZM: if (cast_type && !cast_dims) { xopen = "CastToLinestring("; xclose = ")"; } else if (!cast_type && cast_dims) { switch (dims) { case GAIA_XY: xopen = "CastToXY("; xclose = ")"; break; case GAIA_XY_Z: xopen = "CastToXYZ("; xclose = ")"; break; case GAIA_XY_M: xopen = "CastToXYM("; xclose = ")"; break; case GAIA_XY_Z_M: xopen = "CastToXYZM("; xclose = ")"; break; }; } else { switch (dims) { case GAIA_XY: xopen = "CastToLinestring(CastToXY("; xclose = "))"; break; case GAIA_XY_Z: xopen = "CastToLinestring(CastToXYZ("; xclose = "))"; break; case GAIA_XY_M: xopen = "CastToLinestring(CastToXYM("; xclose = "))"; break; case GAIA_XY_Z_M: xopen = "CastToLinestring(CastToXYZM("; xclose = "))"; break; }; } break; case GAIA_POLYGON: case GAIA_POLYGONZ: case GAIA_POLYGONM: case GAIA_POLYGONZM: if (cast_type && !cast_dims) { xopen = "CastToPolygon("; xclose = ")"; } else if (!cast_type && cast_dims) { switch (dims) { case GAIA_XY: xopen = "CastToXY("; xclose = ")"; break; case GAIA_XY_Z: xopen = "CastToXYZ("; xclose = ")"; break; case GAIA_XY_M: xopen = "CastToXYM("; xclose = ")"; break; case GAIA_XY_Z_M: xopen = "CastToXYZM("; xclose = ")"; break; }; } else { switch (dims) { case GAIA_XY: xopen = "CastToPolygon(CastToXY("; xclose = "))"; break; case GAIA_XY_Z: xopen = "CastToPolygon(CastToXYZ("; xclose = "))"; break; case GAIA_XY_M: xopen = "CastToPolygon(CastToXYM("; xclose = "))"; break; case GAIA_XY_Z_M: xopen = "CastToPolygon(CastToXYZM("; xclose = "))"; break; }; } break; case GAIA_MULTIPOINT: case GAIA_MULTIPOINTZ: case GAIA_MULTIPOINTM: case GAIA_MULTIPOINTZM: if (cast_type && !cast_dims) { xopen = "CastToMultiPoint("; xclose = ")"; } else if (!cast_type && cast_dims) { switch (dims) { case GAIA_XY: xopen = "CastToXY("; xclose = ")"; break; case GAIA_XY_Z: xopen = "CastToXYZ("; xclose = ")"; break; case GAIA_XY_M: xopen = "CastToXYM("; xclose = ")"; break; case GAIA_XY_Z_M: xopen = "CastToXYZM("; xclose = ")"; break; }; } else { switch (dims) { case GAIA_XY: xopen = "CastToMultiPoint(CastToXY("; xclose = "))"; break; case GAIA_XY_Z: xopen = "CastToMultiPoint(CastToXYZ("; xclose = "))"; break; case GAIA_XY_M: xopen = "CastToMultiPoint(CastToXYM("; xclose = "))"; break; case GAIA_XY_Z_M: xopen = "CastToMultiPoint(CastToXYZM("; xclose = "))"; break; }; } break; case GAIA_MULTILINESTRING: case GAIA_MULTILINESTRINGZ: case GAIA_MULTILINESTRINGM: case GAIA_MULTILINESTRINGZM: if (cast_type && !cast_dims) { xopen = "CastToMultiLinestring("; xclose = ")"; } else if (!cast_type && cast_dims) { switch (dims) { case GAIA_XY: xopen = "CastToXY("; xclose = ")"; break; case GAIA_XY_Z: xopen = "CastToXYZ("; xclose = ")"; break; case GAIA_XY_M: xopen = "CastToXYM("; xclose = ")"; break; case GAIA_XY_Z_M: xopen = "CastToXYZM("; xclose = ")"; break; }; } else { switch (dims) { case GAIA_XY: xopen = "CastToMultiLinestring(CastToXY("; xclose = "))"; break; case GAIA_XY_Z: xopen = "CastToMultiLinestring(CastToXYZ("; xclose = "))"; break; case GAIA_XY_M: xopen = "CastToMultiLinestring(CastToXYM("; xclose = "))"; break; case GAIA_XY_Z_M: xopen = "CastToMultiLinestring(CastToXYZM("; xclose = "))"; break; }; } break; case GAIA_MULTIPOLYGON: case GAIA_MULTIPOLYGONZ: case GAIA_MULTIPOLYGONM: case GAIA_MULTIPOLYGONZM: if (cast_type && !cast_dims) { xopen = "CastToMultiPolygon("; xclose = ")"; } else if (!cast_type && cast_dims) { switch (dims) { case GAIA_XY: xopen = "CastToXY("; xclose = ")"; break; case GAIA_XY_Z: xopen = "CastToXYZ("; xclose = ")"; break; case GAIA_XY_M: xopen = "CastToXYM("; xclose = ")"; break; case GAIA_XY_Z_M: xopen = "CastToXYZM("; xclose = ")"; break; }; } else { switch (dims) { case GAIA_XY: xopen = "CastToMultiPolygon(CastToXY("; xclose = "))"; break; case GAIA_XY_Z: xopen = "CastToMultiPolygon(CastToXYZ("; xclose = "))"; break; case GAIA_XY_M: xopen = "CastToMultiPolygon(CastToXYM("; xclose = "))"; break; case GAIA_XY_Z_M: xopen = "CastToMultiPolygon(CastToXYZM("; xclose = "))"; break; }; } break; case GAIA_GEOMETRYCOLLECTION: case GAIA_GEOMETRYCOLLECTIONZ: case GAIA_GEOMETRYCOLLECTIONM: case GAIA_GEOMETRYCOLLECTIONZM: if (cast_type && !cast_dims) { xopen = "CastToGeometryCollection("; xclose = ")"; } else if (!cast_type && cast_dims) { switch (dims) { case GAIA_XY: xopen = "CastToXY("; xclose = ")"; break; case GAIA_XY_Z: xopen = "CastToXYZ("; xclose = ")"; break; case GAIA_XY_M: xopen = "CastToXYM("; xclose = ")"; break; case GAIA_XY_Z_M: xopen = "CastToXYZM("; xclose = ")"; break; }; } else { switch (dims) { case GAIA_XY: xopen = "CastToGeometryCollection(CastToXY("; xclose = "))"; break; case GAIA_XY_Z: xopen = "CastToGeometryCollection(CastToXYZ("; xclose = "))"; break; case GAIA_XY_M: xopen = "CastToGeometryCollection(CastToXYM("; xclose = "))"; break; case GAIA_XY_Z_M: xopen = "CastToGeometryCollection(CastToXYZM("; xclose = "))"; break; }; } break; }; sql = sqlite3_mprintf ("UPDATE \"%s\" SET \"%s\" = %s\"%s\"%s", xtable, xgeom, xopen, xgeom, xclose); free (xtable); free (xgeom); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("loadwfs: UPDATE-GEOMS error:\"%s\"\n", errMsg); sqlite3_free (errMsg); } } /* adjusting GeometryColumns */ if (metadata_version == 1) { /* legacy metadata style <= v.3.1.0 */ const char *pType; const char *pDims; switch (type) { case GAIA_POINT: case GAIA_POINTZ: case GAIA_POINTM: case GAIA_POINTZM: pType = "POINT"; break; case GAIA_LINESTRING: case GAIA_LINESTRINGZ: case GAIA_LINESTRINGM: case GAIA_LINESTRINGZM: pType = "LINESTRING"; break; case GAIA_POLYGON: case GAIA_POLYGONZ: case GAIA_POLYGONM: case GAIA_POLYGONZM: pType = "POLYGON"; break; case GAIA_MULTIPOINT: case GAIA_MULTIPOINTZ: case GAIA_MULTIPOINTM: case GAIA_MULTIPOINTZM: pType = "MULTIPOINT"; break; case GAIA_MULTILINESTRING: case GAIA_MULTILINESTRINGZ: case GAIA_MULTILINESTRINGM: case GAIA_MULTILINESTRINGZM: pType = "MULTILINESTRING"; break; case GAIA_MULTIPOLYGON: case GAIA_MULTIPOLYGONZ: case GAIA_MULTIPOLYGONM: case GAIA_MULTIPOLYGONZM: pType = "MULTIPOLYGON"; break; case GAIA_GEOMETRYCOLLECTION: case GAIA_GEOMETRYCOLLECTIONZ: case GAIA_GEOMETRYCOLLECTIONM: case GAIA_GEOMETRYCOLLECTIONZM: pType = "GEOMETRYCOLLECTION"; break; }; switch (dims) { case GAIA_XY: pDims = "XY"; break; case GAIA_XY_Z: pDims = "XYZ"; break; case GAIA_XY_M: pDims = "XYM"; break; case GAIA_XY_Z_M: pDims = "XYZM"; break; }; sql = sqlite3_mprintf ("UPDATE geometry_columns SET type = %Q, " "coord_dimension = %Q WHERE Lower(f_table_name) = Lower(%Q) " "AND Lower(f_geometry_column) = Lower(%Q)", pType, pDims, table, geometry); } else { /* current metadata style >= v.4.0.0 */ int nType = 0; int nDims = 2; switch (type) { case GAIA_POINT: nType = 1; break; case GAIA_POINTZ: nType = 1001; break; case GAIA_POINTM: nType = 2001; break; case GAIA_POINTZM: nType = 3001; break; case GAIA_LINESTRING: nType = 2; break; case GAIA_LINESTRINGZ: nType = 1002; break; case GAIA_LINESTRINGM: nType = 2002; break; case GAIA_LINESTRINGZM: nType = 3002; break; case GAIA_POLYGON: nType = 3; break; case GAIA_POLYGONZ: nType = 1003; break; case GAIA_POLYGONM: nType = 2003; break; case GAIA_POLYGONZM: nType = 3003; break; case GAIA_MULTIPOINT: nType = 4; break; case GAIA_MULTIPOINTZ: nType = 1004; break; case GAIA_MULTIPOINTM: nType = 2004; case GAIA_MULTIPOINTZM: nType = 3004; break; case GAIA_MULTILINESTRING: nType = 5; break; case GAIA_MULTILINESTRINGZ: nType = 1005; break; case GAIA_MULTILINESTRINGM: nType = 2005; case GAIA_MULTILINESTRINGZM: nType = 3005; break; case GAIA_MULTIPOLYGON: nType = 6; break; case GAIA_MULTIPOLYGONZ: nType = 1006; break; case GAIA_MULTIPOLYGONM: nType = 2006; break; case GAIA_MULTIPOLYGONZM: nType = 3006; break; case GAIA_GEOMETRYCOLLECTION: nType = 7; break; case GAIA_GEOMETRYCOLLECTIONZ: nType = 1007; break; case GAIA_GEOMETRYCOLLECTIONM: nType = 2007; break; case GAIA_GEOMETRYCOLLECTIONZM: nType = 3007; break; }; switch (dims) { case GAIA_XY: nDims = 2; break; case GAIA_XY_Z: case GAIA_XY_M: nDims = 3; break; case GAIA_XY_Z_M: nDims = 4; break; }; sql = sqlite3_mprintf ("UPDATE geometry_columns SET geometry_type = %d, " "coord_dimension = %d WHERE Lower(f_table_name) = Lower(%Q) " "AND Lower(f_geometry_column) = Lower(%Q)", nType, nDims, table, geometry); } ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("loadwfs: UPDATE-GEOMS error:\"%s\"\n", errMsg); sqlite3_free (errMsg); } /* confirming the still pendenting SQL transaction */ if (sqlite3_exec (sqlite, "COMMIT", NULL, NULL, &errMsg) != SQLITE_OK) { spatialite_e ("loadwfs: COMMIT error:\"%s\"\n", errMsg); sqlite3_free (errMsg); } } SPATIALITE_DECLARE int load_from_wfs_paged (sqlite3 * sqlite, const char *path_or_url, const char *alt_describe_uri, const char *layer_name, int swap_axes, const char *table, const char *pk_column_name, int spatial_index, int page_size, int *rows, char **err_msg, void (*progress_callback) (int, void *), void *callback_ptr) { /* attempting to load data from some WFS source [paged]*/ xmlDocPtr xml_doc = NULL; xmlNodePtr root; struct wfs_layer_schema *schema = NULL; int len; int ret; char *describe_uri = NULL; gaiaOutBuffer errBuf; int ok = 0; int sniffed = 0; int pageNo = 0; int startIdx = 0; int nRows; char *page_url = NULL; const char *p_page_url; int shift_index; xmlGenericErrorFunc parsingError = (xmlGenericErrorFunc) wfsParsingError; *rows = 0; if (err_msg != NULL) *err_msg = NULL; if (path_or_url == NULL) return 0; while (1) { if (page_size <= 0) p_page_url = path_or_url; else { page_url = sqlite3_mprintf ("%s&maxFeatures=%d&startIndex=%d", path_or_url, page_size, startIdx); p_page_url = page_url; } /* loading the WFS payload from URL (or file) */ gaiaOutBufferInitialize (&errBuf); xmlSetGenericErrorFunc (&errBuf, parsingError); xml_doc = xmlReadFile (p_page_url, NULL, 0); if (page_url != NULL) sqlite3_free (page_url); if (xml_doc == NULL) { /* parsing error; not a well-formed XML */ if (errBuf.Buffer != NULL && err_msg != NULL) { len = strlen (errBuf.Buffer); *err_msg = malloc (len + 1); strcpy (*err_msg, errBuf.Buffer); } goto end; } if (pageNo == 0) { if (alt_describe_uri != NULL) { /* using the DescribetFeatureType URI from GetCapabilities */ len = strlen (alt_describe_uri); describe_uri = malloc (len + 1); strcpy (describe_uri, alt_describe_uri); ret = 1; } else { /* attempting to extract the DescribeFeatureType from the GetFeature document */ ret = get_DescribeFeatureType_uri (xml_doc, &describe_uri); } if (ret == 0) { const char *msg = "Unable to retrieve the DescribeFeatureType URI"; if (err_msg != NULL) { len = strlen (msg); *err_msg = malloc (len + 1); strcpy (*err_msg, msg); } goto end; } /* loading and parsing the WFS schema */ schema = load_wfs_schema (describe_uri, layer_name, swap_axes, err_msg); if (schema == NULL) goto end; /* creating the output table */ root = xmlDocGetRootElement (xml_doc); sniffed = 0; sniff_geometries (root, schema, &sniffed); if (page_size > 0) { /* testing if the server does actually support STARTINDEX */ root = xmlDocGetRootElement (xml_doc); if (!test_wfs_paging (path_or_url, page_size, root, schema, &shift_index)) { const char *err = "loawfs: the WFS server doesn't seem to support STARTINDEX\n" "and consequently WFS paging is not available"; if (err_msg != NULL) { len = strlen (err); *err_msg = malloc (len + 1); strcpy (*err_msg, err); } goto end; } startIdx += shift_index; } if (!prepare_sql (sqlite, schema, table, pk_column_name, spatial_index, err_msg)) goto end; } /* parsing the WFS payload */ root = xmlDocGetRootElement (xml_doc); nRows = 0; parse_wfs_features (root, schema, &nRows, err_msg); *rows += nRows; if (progress_callback != NULL) { /* invoking the progress callback */ int ext_rows = *rows; progress_callback (ext_rows, callback_ptr); } if (schema->error) { *rows = 0; do_rollback (sqlite, schema); } else { if (page_size > 0 && nRows >= page_size) restart_transaction (sqlite); else do_commit (sqlite, schema); } if (schema->error) { *rows = 0; goto end; } if (page_size <= 0) break; if (nRows < page_size) break; if (xml_doc != NULL) xmlFreeDoc (xml_doc); xml_doc = NULL; pageNo++; startIdx += nRows; } if (schema->geometry_type == GAIA_GEOMETRYCOLLECTION) { /* attempting to set a more precise GeometryType */ int type; int cast_type; int cast_dims; if (check_real_type (schema, &type, &cast_type, &cast_dims)) { do_adjust_geoms (sqlite, table, schema->geometry_name, type, cast_type, cast_dims); } } ok = 1; end: if (schema != NULL) free_wfs_layer_schema (schema); if (describe_uri != NULL) free (describe_uri); gaiaOutBufferReset (&errBuf); xmlSetGenericErrorFunc ((void *) stderr, NULL); if (xml_doc != NULL) xmlFreeDoc (xml_doc); return ok; } static void parse_keyword (xmlNodePtr node, struct wfs_catalog *catalog) { /* parsing WFS values */ xmlNodePtr cur_node = NULL; for (cur_node = node; cur_node; cur_node = cur_node->next) { if (cur_node->type == XML_ELEMENT_NODE) { if (strcmp ((const char *) cur_node->name, "Keyword") == 0) { xmlNodePtr child_node = cur_node->children; if (child_node != NULL) { if (child_node->type == XML_TEXT_NODE) { struct wfs_layer_def *lyr = catalog->last; add_wfs_keyword_to_layer (lyr, (const char *) (child_node-> content)); } } } } } } static void parse_keyword_string (char *in, struct wfs_catalog *catalog) { /* parsing WFS from within a comma delimited string */ struct wfs_layer_def *lyr = catalog->last; int len = strlen (in); char *end = in + len; char *base = in; while (base < end) { char *p = base; while (p <= end) { if (*p == ',' || *p == '\0') { const char *start; *p = '\0'; start = base; while (*start == ' ' || *start == '\t' || *start == '\n' || *start == '\r') start++; add_wfs_keyword_to_layer (lyr, start); p++; base = p; break; } p++; } } } static void parse_keywords (xmlNodePtr node, struct wfs_catalog *catalog) { /* parsing the WFS Keywords */ if (node != NULL) { parse_keyword (node, catalog); if (node->type == XML_TEXT_NODE) { int len = strlen ((const char *) (node->content)); char *string = malloc (len + 1); strcpy (string, (const char *) (node->content)); parse_keyword_string (string, catalog); free (string); } } } static void parse_wfs_layer (xmlNodePtr node, struct wfs_catalog *catalog) { /* parsing a WFS layer definition (GetCapabilities/FeatureType) */ xmlNodePtr cur_node = NULL; xmlNodePtr child_node = NULL; const char *name = NULL; const char *title = NULL; const char *abstract = NULL; for (cur_node = node; cur_node; cur_node = cur_node->next) { if (cur_node->type == XML_ELEMENT_NODE) { if (strcmp ((const char *) (cur_node->name), "Name") == 0) { child_node = cur_node->children; if (child_node != NULL) { if (child_node->type == XML_TEXT_NODE) name = (const char *) (child_node->content); } } if (strcmp ((const char *) (cur_node->name), "Title") == 0) { child_node = cur_node->children; if (child_node != NULL) { if (child_node->type == XML_TEXT_NODE) title = (const char *) (child_node->content); } } if (strcmp ((const char *) (cur_node->name), "Abstract") == 0) { child_node = cur_node->children; if (child_node != NULL) { if (child_node->type == XML_TEXT_NODE) abstract = (const char *) (child_node->content); } } } } if (name != NULL) { add_wfs_layer_to_catalog (catalog, name, title, abstract); for (cur_node = node; cur_node; cur_node = cur_node->next) { if (cur_node->type == XML_ELEMENT_NODE) { if (strcmp ((const char *) (cur_node->name), "SRS") == 0 || strcmp ((const char *) (cur_node->name), "DefaultSRS") == 0 || strcmp ((const char *) (cur_node->name), "OtherSRS") == 0) { int srid = parse_srsname (cur_node->children); if (srid > 0) { struct wfs_layer_def *lyr = catalog->last; add_wfs_srid_to_layer (lyr, srid, (const char *) (cur_node->children-> content)); } } if (strcmp ((const char *) (cur_node->name), "Keywords") == 0) parse_keywords (cur_node->children, catalog); } } } } static void parse_wfs_get_100 (xmlNodePtr node, struct wfs_catalog *catalog, int mode) { /* attempting to find the GetFeature base-URL (WFS 1.0.0) */ struct _xmlAttr *attr = node->properties; while (attr != NULL) { if (attr->name != NULL) { if (strcmp ((const char *) (attr->name), "onlineResource") == 0) { xmlNodePtr text = attr->children; if (text != NULL) { if (text->type == XML_TEXT_NODE) { if (mode) set_wfs_catalog_base_request_url (catalog, (const char *) (text-> content)); else set_wfs_catalog_base_describe_url (catalog, (const char *) (text->content)); } } } } attr = attr->next; } } static void parse_wfs_http_100 (xmlNodePtr node, struct wfs_catalog *catalog, int mode) { /* attempting to find the GetFeature base-URL (WFS 1.0.0) */ xmlNodePtr cur_node = NULL; for (cur_node = node; cur_node; cur_node = cur_node->next) { if (cur_node->type == XML_ELEMENT_NODE) { if (strcmp ((const char *) (cur_node->name), "Get") == 0) parse_wfs_get_100 (cur_node, catalog, mode); } } } static void parse_wfs_dcptype_100 (xmlNodePtr node, struct wfs_catalog *catalog, int mode) { /* attempting to find the GetFeature base-URL (WFS 1.0.0) */ xmlNodePtr cur_node = NULL; for (cur_node = node; cur_node; cur_node = cur_node->next) { if (cur_node->type == XML_ELEMENT_NODE) { if (strcmp ((const char *) (cur_node->name), "HTTP") == 0) parse_wfs_http_100 (cur_node->children, catalog, mode); } } } static void parse_wfs_getfeature_100 (xmlNodePtr node, struct wfs_catalog *catalog, int mode) { /* attempting to find the GetFeature base-URL (WFS 1.0.0) */ xmlNodePtr cur_node = NULL; for (cur_node = node; cur_node; cur_node = cur_node->next) { if (cur_node->type == XML_ELEMENT_NODE) { if (strcmp ((const char *) (cur_node->name), "DCPType") == 0) parse_wfs_dcptype_100 (cur_node->children, catalog, mode); } } } static void parse_wfs_request_100 (xmlNodePtr node, struct wfs_catalog *catalog) { /* attempting to find the GetFeature base-URL (WFS 1.0.0) */ xmlNodePtr cur_node = NULL; for (cur_node = node; cur_node; cur_node = cur_node->next) { if (cur_node->type == XML_ELEMENT_NODE) { if (strcmp ((const char *) (cur_node->name), "GetFeature") == 0) parse_wfs_getfeature_100 (cur_node->children, catalog, 1); if (strcmp ((const char *) (cur_node->name), "DescribeFeatureType") == 0) parse_wfs_getfeature_100 (cur_node->children, catalog, 0); } } } static void parse_wfs_base_url_100 (xmlNodePtr node, struct wfs_catalog *catalog) { /* attempting to find the GetFeature base-URL (WFS 1.0.0) */ xmlNodePtr cur_node = NULL; for (cur_node = node; cur_node; cur_node = cur_node->next) { if (cur_node->type == XML_ELEMENT_NODE) { if (strcmp ((const char *) (cur_node->name), "Request") == 0) parse_wfs_request_100 (cur_node->children, catalog); } } } static void parse_wfs_get_110 (xmlNodePtr node, struct wfs_catalog *catalog, int mode) { /* attempting to find the GetFeature base-URL (WFS 1.1.0) */ struct _xmlAttr *attr = node->properties; while (attr != NULL) { if (attr->name != NULL) { if (strcmp ((const char *) (attr->name), "href") == 0) { xmlNodePtr text = attr->children; if (text != NULL) { if (text->type == XML_TEXT_NODE) { if (mode) set_wfs_catalog_base_request_url (catalog, (const char *) (text-> content)); else set_wfs_catalog_base_describe_url (catalog, (const char *) (text->content)); } } } } attr = attr->next; } } static void parse_wfs_http_110 (xmlNodePtr node, struct wfs_catalog *catalog, int mode) { /* attempting to find the GetFeature base-URL (WFS 1.1.0) */ xmlNodePtr cur_node = NULL; for (cur_node = node; cur_node; cur_node = cur_node->next) { if (cur_node->type == XML_ELEMENT_NODE) { if (strcmp ((const char *) (cur_node->name), "Get") == 0) parse_wfs_get_110 (cur_node, catalog, mode); } } } static void parse_wfs_dcp_110 (xmlNodePtr node, struct wfs_catalog *catalog, int mode) { /* attempting to find the GetFeature base-URL (WFS 1.1.0) */ xmlNodePtr cur_node = NULL; for (cur_node = node; cur_node; cur_node = cur_node->next) { if (cur_node->type == XML_ELEMENT_NODE) { if (strcmp ((const char *) (cur_node->name), "HTTP") == 0) parse_wfs_http_110 (cur_node->children, catalog, mode); } } } static void parse_wfs_getfeature_110 (xmlNodePtr node, struct wfs_catalog *catalog, int mode) { /* attempting to find the GetFeature base-URL (WFS 1.1.0) */ xmlNodePtr cur_node = NULL; for (cur_node = node; cur_node; cur_node = cur_node->next) { if (cur_node->type == XML_ELEMENT_NODE) { if (strcmp ((const char *) (cur_node->name), "DCP") == 0) parse_wfs_dcp_110 (cur_node->children, catalog, mode); } } } static void parse_wfs_operation_110 (xmlNodePtr node, struct wfs_catalog *catalog) { /* attempting to find the GetFeature base-URL (WFS 1.1.0) */ struct _xmlAttr *attr = node->properties; while (attr != NULL) { if (attr->name != NULL) { if (strcmp ((const char *) (attr->name), "name") == 0) { xmlNodePtr text = attr->children; if (text != NULL) { if (text->type == XML_TEXT_NODE) { if (strcmp ((const char *) (text->content), "GetFeature") == 0) parse_wfs_getfeature_110 (node->children, catalog, 1); if (strcmp ((const char *) (text->content), "DescribeFeatureType") == 0) parse_wfs_getfeature_110 (node->children, catalog, 0); } } } } attr = attr->next; } } static void parse_wfs_base_url_110 (xmlNodePtr node, struct wfs_catalog *catalog) { /* attempting to find the GetFeature base-URL (WFS 1.1.0) */ xmlNodePtr cur_node = NULL; for (cur_node = node; cur_node; cur_node = cur_node->next) { if (cur_node->type == XML_ELEMENT_NODE) { if (strcmp ((const char *) (cur_node->name), "Operation") == 0) parse_wfs_operation_110 (cur_node, catalog); } } } static void parse_wfs_catalog (xmlNodePtr node, struct wfs_catalog *catalog, int *capabilities, int *list) { /* recursively parsing the GetCapabilities payload */ xmlNodePtr cur_node = NULL; for (cur_node = node; cur_node; cur_node = cur_node->next) { if (cur_node->type == XML_ELEMENT_NODE) { if (strcmp ((const char *) (cur_node->name), "WFS_Capabilities") == 0) *capabilities = 1; if (*capabilities != 0 && strcmp ((const char *) (cur_node->name), "FeatureTypeList") == 0) *list = 1; if (*capabilities != 0 && *list == 0 && strcmp ((const char *) (cur_node->name), "Capability") == 0) parse_wfs_base_url_100 (cur_node->children, catalog); if (*capabilities != 0 && *list == 0 && strcmp ((const char *) (cur_node->name), "OperationsMetadata") == 0) parse_wfs_base_url_110 (cur_node->children, catalog); if (*list != 0 && strcmp ((const char *) (cur_node->name), "FeatureType") == 0) parse_wfs_layer (cur_node->children, catalog); else parse_wfs_catalog (cur_node->children, catalog, capabilities, list); if (*capabilities != 0 && strcmp ((const char *) (cur_node->name), "FeatureTypeList") == 0) *list = 0; if (strcmp ((const char *) (cur_node->name), "WFS_Capabilities") == 0) *capabilities = 0; } } } SPATIALITE_DECLARE gaiaWFScatalogPtr create_wfs_catalog (const char *path_or_url, char **err_msg) { /* attempting to get and parse a WFS GetCapabilities request */ xmlDocPtr xml_doc = NULL; xmlNodePtr root; struct wfs_catalog *catalog = NULL; int len; int capabilities = 0; int list = 0; gaiaOutBuffer errBuf; xmlGenericErrorFunc parsingError = (xmlGenericErrorFunc) wfsParsingError; if (err_msg != NULL) *err_msg = NULL; if (path_or_url == NULL) return 0; /* loading the WFS GetCapabilities from URL (or file) */ gaiaOutBufferInitialize (&errBuf); xmlSetGenericErrorFunc (&errBuf, parsingError); xml_doc = xmlReadFile (path_or_url, NULL, 0); if (xml_doc == NULL) { /* parsing error; not a well-formed XML */ if (errBuf.Buffer != NULL && err_msg != NULL) { len = strlen (errBuf.Buffer); *err_msg = malloc (len + 1); strcpy (*err_msg, errBuf.Buffer); } goto end; } /* parsing the WFS payload */ catalog = alloc_wfs_catalog (); root = xmlDocGetRootElement (xml_doc); parse_wfs_catalog (root, catalog, &capabilities, &list); if (get_wfs_catalog_count ((gaiaWFScatalogPtr) catalog) <= 0) { free_wfs_catalog (catalog); catalog = NULL; goto end; } end: gaiaOutBufferReset (&errBuf); xmlSetGenericErrorFunc ((void *) stderr, NULL); if (xml_doc != NULL) xmlFreeDoc (xml_doc); return (gaiaWFScatalogPtr) catalog; } SPATIALITE_DECLARE void destroy_wfs_catalog (gaiaWFScatalogPtr handle) { /* memory cleanup: freeing a WFS-Catalog object */ struct wfs_catalog *ptr = (struct wfs_catalog *) handle; if (ptr == NULL) return; free_wfs_catalog (ptr); } SPATIALITE_DECLARE const char * get_wfs_base_request_url (gaiaWFScatalogPtr handle) { /* return the base URL for any WFS-GetFeature call */ struct wfs_catalog *ptr = (struct wfs_catalog *) handle; if (ptr == NULL) return NULL; return ptr->request_url; } SPATIALITE_DECLARE const char * get_wfs_base_describe_url (gaiaWFScatalogPtr handle) { /* return the base URL for any WFS-DescribeFeatureType call */ struct wfs_catalog *ptr = (struct wfs_catalog *) handle; if (ptr == NULL) return NULL; return ptr->describe_url; } SPATIALITE_DECLARE int get_wfs_catalog_count (gaiaWFScatalogPtr handle) { /* counting how many layers are defined within a WFS-Catalog */ int count = 0; struct wfs_layer_def *lyr; struct wfs_catalog *ptr = (struct wfs_catalog *) handle; if (ptr == NULL) return -1; lyr = ptr->first; while (lyr != NULL) { count++; lyr = lyr->next; } return count; } SPATIALITE_DECLARE gaiaWFSitemPtr get_wfs_catalog_item (gaiaWFScatalogPtr handle, int index) { /* attempting to get a reference to some WFS-Layer object */ int count = 0; struct wfs_layer_def *lyr; struct wfs_catalog *ptr = (struct wfs_catalog *) handle; if (ptr == NULL) return NULL; lyr = ptr->first; while (lyr != NULL) { if (count == index) return (gaiaWFSitemPtr) lyr; count++; lyr = lyr->next; } return NULL; } SPATIALITE_DECLARE const char * get_wfs_item_name (gaiaWFSitemPtr handle) { /* return the name corresponding to a WFS-Layer object */ struct wfs_layer_def *ptr = (struct wfs_layer_def *) handle; if (ptr == NULL) return NULL; return ptr->name; } SPATIALITE_DECLARE const char * get_wfs_item_title (gaiaWFSitemPtr handle) { /* return the title corresponding to a WFS-Layer object */ struct wfs_layer_def *ptr = (struct wfs_layer_def *) handle; if (ptr == NULL) return NULL; return ptr->title; } SPATIALITE_DECLARE const char * get_wfs_item_abstract (gaiaWFSitemPtr handle) { /* return the abstract corresponding to a WFS-Layer object */ struct wfs_layer_def *ptr = (struct wfs_layer_def *) handle; if (ptr == NULL) return NULL; return ptr->abstract; } SPATIALITE_DECLARE int get_wfs_layer_srid_count (gaiaWFSitemPtr handle) { /* counting how many SRIDs are supported by a WFS-Layer */ int count = 0; struct wfs_srid_def *srid; struct wfs_layer_def *ptr = (struct wfs_layer_def *) handle; if (ptr == NULL) return -1; srid = ptr->first_srid; while (srid != NULL) { count++; srid = srid->next; } return count; } SPATIALITE_DECLARE int get_wfs_layer_srid (gaiaWFSitemPtr handle, int index) { /* attempting to get the Nth SRID supported by some WFS-Layer object */ int count = 0; struct wfs_srid_def *srid; struct wfs_layer_def *ptr = (struct wfs_layer_def *) handle; if (ptr == NULL) return -1; srid = ptr->first_srid; while (srid != NULL) { if (count == index) return srid->srid; count++; srid = srid->next; } return -1; } SPATIALITE_DECLARE int get_wfs_keyword_count (gaiaWFSitemPtr handle) { /* counting how many Keywords are supported by a WFS-Layer */ int count = 0; struct wfs_keyword *key; struct wfs_layer_def *ptr = (struct wfs_layer_def *) handle; if (ptr == NULL) return -1; key = ptr->first_key; while (key != NULL) { count++; key = key->next; } return count; } SPATIALITE_DECLARE const char * get_wfs_keyword (gaiaWFSitemPtr handle, int index) { /* attempting to get the Nth Keyword supported by some WFS-Layer object */ int count = 0; struct wfs_keyword *key; struct wfs_layer_def *ptr = (struct wfs_layer_def *) handle; if (ptr == NULL) return NULL; key = ptr->first_key; while (key != NULL) { if (count == index) return key->keyword; count++; key = key->next; } return NULL; } static char * build_request_url (struct wfs_catalog *ptr, struct wfs_layer_def *lyr, const char *version, int srid, int max_features) { /* creating the request URL */ char *url; char *url2; const char *srs_name = NULL; int len; const char *ver = "1.1.0"; if (ptr->request_url == NULL) return NULL; if (version != NULL) { if (strcmp (version, "1.0.0") == 0) ver = "1.0.0"; } if (srid > 0) { struct wfs_srid_def *srs = lyr->first_srid; while (srs != NULL) { if (srs->srid == srid) { /* found the required SRS definition */ srs_name = srs->srs_name; break; } srs = srs->next; } } if (max_features <= 0) { if (srs_name == NULL) url = sqlite3_mprintf ("%sservice=WFS&version=%s&request=GetFeature&typeName=%s", ptr->request_url, ver, lyr->name); else url = sqlite3_mprintf ("%sservice=WFS&version=%s&request=GetFeature&typeName=%s&srsName=%s", ptr->request_url, ver, lyr->name, srs_name); } else { if (srs_name == NULL) url = sqlite3_mprintf ("%sservice=WFS&version=%s&request=GetFeature&typeName=%s&maxFeatures=%d", ptr->request_url, ver, lyr->name, max_features); else url = sqlite3_mprintf ("%sservice=WFS&version=%s&request=GetFeature&typeName=%s&srsName=%s&maxFeatures=%d", ptr->request_url, ver, lyr->name, srs_name, max_features); } len = strlen (url); url2 = malloc (len + 1); strcpy (url2, url); sqlite3_free (url); return url2; } SPATIALITE_DECLARE char * get_wfs_request_url (gaiaWFScatalogPtr handle, const char *name, const char *version, int srid, int max_features) { /* attempting to format a GetFeature (GET) URL */ struct wfs_layer_def *lyr; struct wfs_catalog *ptr = (struct wfs_catalog *) handle; if (ptr == NULL) return NULL; if (name == NULL) return NULL; lyr = ptr->first; while (lyr != NULL) { if (strcmp (lyr->name, name) == 0) return build_request_url (ptr, lyr, version, srid, max_features); lyr = lyr->next; } return NULL; } static char * build_describe_url (struct wfs_catalog *ptr, struct wfs_layer_def *lyr, const char *version) { /* creating the DescribeFeatureType URL */ char *url; char *url2; int len; const char *ver = "1.1.0"; if (ptr->describe_url == NULL) return NULL; if (version != NULL) { if (strcmp (version, "1.0.0") == 0) ver = "1.0.0"; } url = sqlite3_mprintf ("%sservice=WFS&version=%s&request=DescribeFeatureType&typeName=%s", ptr->describe_url, ver, lyr->name); len = strlen (url); url2 = malloc (len + 1); strcpy (url2, url); sqlite3_free (url); return url2; } SPATIALITE_DECLARE char * get_wfs_describe_url (gaiaWFScatalogPtr handle, const char *name, const char *version) { /* attempting to format a DescribeFeatureType (GET) URL */ struct wfs_layer_def *lyr; struct wfs_catalog *ptr = (struct wfs_catalog *) handle; if (ptr == NULL) return NULL; if (name == NULL) return NULL; lyr = ptr->first; while (lyr != NULL) { if (strcmp (lyr->name, name) == 0) return build_describe_url (ptr, lyr, version); lyr = lyr->next; } return NULL; } SPATIALITE_DECLARE gaiaWFSschemaPtr create_wfs_schema (const char *path_or_url, const char *layer_name, char **err_msg) { /* public method: creating a WFS-Schema object */ return (gaiaWFSschemaPtr) load_wfs_schema (path_or_url, layer_name, 0, err_msg); } SPATIALITE_DECLARE void destroy_wfs_schema (gaiaWFSschemaPtr handle) { /* public metod: destroying a WFS-Schema object */ struct wfs_layer_schema *ptr = (struct wfs_layer_schema *) handle; if (ptr == NULL) return; free_wfs_layer_schema (ptr); } SPATIALITE_DECLARE int get_wfs_schema_column_count (gaiaWFSschemaPtr handle) { /* counting how many layers are defined within a WFS-Schema */ int count = 0; struct wfs_column_def *col; struct wfs_layer_schema *ptr = (struct wfs_layer_schema *) handle; if (ptr == NULL) return -1; col = ptr->first; while (col != NULL) { count++; col = col->next; } return count; } SPATIALITE_DECLARE gaiaWFScolumnPtr get_wfs_schema_column (gaiaWFSschemaPtr handle, int index) { /* attempting to get a reference to some WFS-Column object */ int count = 0; struct wfs_column_def *col; struct wfs_layer_schema *ptr = (struct wfs_layer_schema *) handle; if (ptr == NULL) return NULL; col = ptr->first; while (col != NULL) { if (count == index) return (gaiaWFScolumnPtr) col; count++; col = col->next; } return NULL; } SPATIALITE_DECLARE int get_wfs_schema_geometry_info (gaiaWFSschemaPtr handle, const char **name, int *type, int *srid, int *dims, int *nullable) { /* Return the infos describing a WFS-GeometryColumn object */ struct wfs_layer_schema *ptr = (struct wfs_layer_schema *) handle; if (ptr == NULL) return 0; if (ptr->geometry_name == NULL) return 0; *name = ptr->geometry_name; *type = ptr->geometry_type; *srid = ptr->srid; *dims = ptr->dims; *nullable = ptr->is_nullable; return 1; } SPATIALITE_DECLARE int get_wfs_schema_column_info (gaiaWFScolumnPtr handle, const char **name, int *type, int *nullable) { /* Return the infos describing a WFS-Column object */ struct wfs_column_def *ptr = (struct wfs_column_def *) handle; if (ptr == NULL) return 0; *name = ptr->name; *type = ptr->type; *nullable = ptr->is_nullable; return 1; } #else /* LIBXML2 isn't enabled */ SPATIALITE_DECLARE int load_from_wfs (sqlite3 * sqlite, const char *path_or_url, const char *alt_describe_uri, const char *layer_name, int swap_axes, const char *table, const char *pk_column_name, int spatial_index, int *rows, char **err_msg, void (*progress_callback) (int, void *), void *callback_ptr) { /* LIBXML2 isn't enabled: always returning an error */ return load_from_wfs_paged (sqlite, path_or_url, alt_describe_uri, layer_name, swap_axes, table, pk_column_name, spatial_index, -1, rows, err_msg, progress_callback, callback_ptr); } SPATIALITE_DECLARE int load_from_wfs_paged (sqlite3 * sqlite, const char *path_or_url, const char *alt_describe_uri, const char *layer_name, int swap_axes, const char *table, const char *pk_column_name, int spatial_index, int page_size, int *rows, char **err_msg, void (*progress_callback) (int, void *), void *callback_ptr) { /* LIBXML2 isn't enabled: always returning an error */ int len; const char *msg = "Sorry ... libspatialite was built disabling LIBXML2\n" "and is thus unable to support LOADWFS"; /* silencing stupid compiler warnings */ if (sqlite == NULL || path_or_url == NULL || layer_name == NULL || alt_describe_uri == NULL || swap_axes == 0 || table == NULL || pk_column_name == NULL || spatial_index == 0 || page_size == 0 || rows == NULL || progress_callback == NULL || progress_callback == NULL || callback_ptr == NULL) path_or_url = NULL; if (err_msg == NULL) return 0; len = strlen (msg); *err_msg = malloc (len + 1); strcpy (*err_msg, msg); return 0; } SPATIALITE_DECLARE gaiaWFScatalogPtr create_wfs_catalog (const char *path_or_url, char **err_msg) { /* LIBXML2 isn't enabled: always returning an error */ int len; const char *msg = "Sorry ... libspatialite was built disabling LIBXML2\n" "and is thus unable to support WFS-CATALOG"; /* silencing stupid compiler warnings */ if (path_or_url != NULL) path_or_url = NULL; if (err_msg == NULL) return 0; len = strlen (msg); *err_msg = malloc (len + 1); strcpy (*err_msg, msg); return NULL; } SPATIALITE_DECLARE void destroy_wfs_catalog (gaiaWFScatalogPtr handle) { /* LIBXML2 isn't enabled: does absolutely nothing */ /* silencing stupid compiler warnings */ if (handle != NULL) handle = NULL; return; } SPATIALITE_DECLARE const char * get_wfs_base_request_url (gaiaWFScatalogPtr handle) { /* LIBXML2 isn't enabled: does absolutely nothing */ /* silencing stupid compiler warnings */ if (handle != NULL) handle = NULL; return NULL; } SPATIALITE_DECLARE const char * get_wfs_base_describe_url (gaiaWFScatalogPtr handle) { /* LIBXML2 isn't enabled: does absolutely nothing */ /* silencing stupid compiler warnings */ if (handle != NULL) handle = NULL; return NULL; } SPATIALITE_DECLARE int get_wfs_catalog_count (gaiaWFScatalogPtr handle) { /* LIBXML2 isn't enabled: does absolutely nothing */ /* silencing stupid compiler warnings */ if (handle != NULL) handle = NULL; return -1; } SPATIALITE_DECLARE gaiaWFSitemPtr get_wfs_catalog_item (gaiaWFScatalogPtr handle, int index) { /* LIBXML2 isn't enabled: does absolutely nothing */ /* silencing stupid compiler warnings */ if (handle != NULL || index < 0) handle = NULL; return NULL; } SPATIALITE_DECLARE const char * get_wfs_item_name (gaiaWFSitemPtr handle) { /* LIBXML2 isn't enabled: does absolutely nothing */ /* silencing stupid compiler warnings */ if (handle != NULL) handle = NULL; return NULL; } SPATIALITE_DECLARE const char * get_wfs_item_title (gaiaWFSitemPtr handle) { /* LIBXML2 isn't enabled: does absolutely nothing */ /* silencing stupid compiler warnings */ if (handle != NULL) handle = NULL; return NULL; } SPATIALITE_DECLARE const char * get_wfs_item_abstract (gaiaWFSitemPtr handle) { /* LIBXML2 isn't enabled: does absolutely nothing */ /* silencing stupid compiler warnings */ if (handle != NULL) handle = NULL; return NULL; } SPATIALITE_DECLARE int get_wfs_layer_srid_count (gaiaWFSitemPtr handle) { /* LIBXML2 isn't enabled: does absolutely nothing */ /* silencing stupid compiler warnings */ if (handle != NULL) handle = NULL; return -1; } SPATIALITE_DECLARE int get_wfs_layer_srid (gaiaWFSitemPtr handle, int index) { /* LIBXML2 isn't enabled: does absolutely nothing */ /* silencing stupid compiler warnings */ if (handle != NULL || index < 0) handle = NULL; return -1; } SPATIALITE_DECLARE int get_wfs_keyword_count (gaiaWFSitemPtr handle) { /* LIBXML2 isn't enabled: does absolutely nothing */ /* silencing stupid compiler warnings */ if (handle != NULL) handle = NULL; return -1; } SPATIALITE_DECLARE const char * get_wfs_keyword (gaiaWFSitemPtr handle, int index) { /* LIBXML2 isn't enabled: does absolutely nothing */ /* silencing stupid compiler warnings */ if (handle != NULL || index < 0) handle = NULL; return NULL; } SPATIALITE_DECLARE char * get_wfs_request_url (gaiaWFScatalogPtr handle, const char *name, const char *version, int srid, int max_features) { /* LIBXML2 isn't enabled: does absolutely nothing */ /* silencing stupid compiler warnings */ if (handle != NULL || name == NULL || version == NULL || srid == 0 || max_features == 0) handle = NULL; return NULL; } SPATIALITE_DECLARE char * get_wfs_describe_url (gaiaWFScatalogPtr handle, const char *name, const char *version) { /* LIBXML2 isn't enabled: does absolutely nothing */ /* silencing stupid compiler warnings */ if (handle != NULL || name == NULL || version == NULL) handle = NULL; return NULL; } SPATIALITE_DECLARE gaiaWFSschemaPtr create_wfs_schema (const char *path_or_url, const char *layer_name, char **err_msg) { /* LIBXML2 isn't enabled: does absolutely nothing */ int len; const char *msg = "Sorry ... libspatialite was built disabling LIBXML2\n" "and is thus unable to support WFS-SCHEMA"; /* silencing stupid compiler warnings */ if (path_or_url != NULL || layer_name == NULL) path_or_url = NULL; if (err_msg == NULL) return 0; len = strlen (msg); *err_msg = malloc (len + 1); strcpy (*err_msg, msg); return NULL; } SPATIALITE_DECLARE void destroy_wfs_schema (gaiaWFSschemaPtr handle) { /* LIBXML2 isn't enabled: does absolutely nothing */ /* silencing stupid compiler warnings */ if (handle != NULL) handle = NULL; } SPATIALITE_DECLARE int get_wfs_schema_column_count (gaiaWFSschemaPtr handle) { /* LIBXML2 isn't enabled: does absolutely nothing */ /* silencing stupid compiler warnings */ if (handle != NULL) handle = NULL; return -1; } SPATIALITE_DECLARE gaiaWFScolumnPtr get_wfs_schema_column (gaiaWFSschemaPtr handle, int index) { /* LIBXML2 isn't enabled: does absolutely nothing */ /* silencing stupid compiler warnings */ if (handle != NULL || index == 0) handle = NULL; return NULL; } SPATIALITE_DECLARE int get_wfs_schema_geometry_info (gaiaWFSschemaPtr handle, const char **name, int *type, int *srid, int *dims, int *nullable) { /* LIBXML2 isn't enabled: does absolutely nothing */ /* silencing stupid compiler warnings */ if (handle != NULL || name == NULL || type == NULL || srid == NULL || dims == NULL || nullable == NULL) handle = NULL; return 0; } SPATIALITE_DECLARE int get_wfs_schema_column_info (gaiaWFScolumnPtr handle, const char **name, int *type, int *nullable) { /* LIBXML2 isn't enabled: does absolutely nothing */ /* silencing stupid compiler warnings */ if (handle != NULL || name == NULL || type == NULL || nullable == NULL) handle = NULL; return 0; } #endif /* end LIBXML2 conditionals */ libspatialite-4.1.1/src/dxf/0000775000175000017500000000000012163503226012716 500000000000000libspatialite-4.1.1/src/dxf/Makefile.am0000664000175000017500000000042012163502133014662 00000000000000 INCLUDES = @CFLAGS@ INCLUDES += -I$(top_srcdir)/src/headers -I. noinst_HEADERS = dxf_private.h noinst_LTLIBRARIES = libdxf.la libdxf_la_SOURCES = dxf_parser.c dxf_loader.c \ dxf_load_distinct.c dxf_load_mixed.c \ dxf_writer.c MOSTLYCLEANFILES = *.gcna *.gcno *.gcda libspatialite-4.1.1/src/dxf/dxf_load_distinct.c0000664000175000017500000021005512163502133016462 00000000000000/* dxf_load_distinct.c -- implements DXF support [loding features into the DB - by distinct layers] version 4.1, 2013 May 14 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include #include #include #include #include #include #include "dxf_private.h" #if defined(_WIN32) && !defined(__MINGW32__) #define strcasecmp _stricmp #endif /* not WIN32 */ static int create_layer_text_table (sqlite3 * handle, const char *name, int srid, int text3D, sqlite3_stmt ** xstmt) { /* attempting to create the "Text-layer" table */ char *sql; int ret; sqlite3_stmt *stmt; char *xname; *xstmt = NULL; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " filename TEXT NOTT NULL,\n" " layer TEXT NOT NULL,\n" " label TEXT NOT NULL,\n" " rotation DOUBLE NOT NULL)", xname); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'geometry', " "%d, 'POINT', %Q)", name, srid, text3D ? "XYZ" : "XY"); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("ADD GEOMETRY %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'geometry')", name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE SPATIAL INDEX %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } if (!create_text_stmt (handle, name, &stmt)) return 0; *xstmt = stmt; return 1; } static int create_layer_point_table (sqlite3 * handle, const char *name, int srid, int point3D, sqlite3_stmt ** xstmt) { /* attempting to create the "Point-layer" table */ char *sql; int ret; sqlite3_stmt *stmt; char *xname; *xstmt = NULL; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " filename TEXT NOTT NULL,\n" " layer TEXT NOT NULL)", xname); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'geometry', " "%d, 'POINT', %Q)", name, srid, point3D ? "XYZ" : "XY"); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("ADD GEOMETRY %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'geometry')", name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE SPATIAL INDEX %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } if (!create_point_stmt (handle, name, &stmt)) return 0; *xstmt = stmt; return 1; } static int create_layer_line_table (sqlite3 * handle, const char *name, int srid, int line3D, sqlite3_stmt ** xstmt) { /* attempting to create the "Line-layer" table */ char *sql; int ret; sqlite3_stmt *stmt; char *xname; *xstmt = NULL; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " filename TEXT NOTT NULL,\n" " layer TEXT NOT NULL)", xname); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'geometry', " "%d, 'LINESTRING', %Q)", name, srid, line3D ? "XYZ" : "XY"); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("ADD GEOMETRY %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'geometry')", name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE SPATIAL INDEX %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } if (!create_line_stmt (handle, name, &stmt)) return 0; *xstmt = stmt; return 1; } static int create_layer_polyg_table (sqlite3 * handle, const char *name, int srid, int polyg3D, sqlite3_stmt ** xstmt) { /* attempting to create the "Polyg-layer" table */ char *sql; int ret; sqlite3_stmt *stmt; char *xname; *xstmt = NULL; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " filename TEXT NOTT NULL,\n" " layer TEXT NOT NULL)", xname); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'geometry', " "%d, 'POLYGON', %Q)", name, srid, polyg3D ? "XYZ" : "XY"); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("ADD GEOMETRY %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'geometry')", name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE SPATIAL INDEX %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } if (!create_polyg_stmt (handle, name, &stmt)) return 0; *xstmt = stmt; return 1; } static int create_layer_hatch_tables (sqlite3 * handle, const char *name, int srid, sqlite3_stmt ** xstmt, sqlite3_stmt ** xstmt2) { /* attempting to create the "Hatch-layer" tables */ char *sql; int ret; sqlite3_stmt *stmt; sqlite3_stmt *stmt2; char *xname; char *fk_name; char *xfk_name; char *pattern; char *xpattern; *xstmt = NULL; *xstmt2 = NULL; /* creating the Hatch-Boundary table */ xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " filename TEXT NOTT NULL,\n" " layer TEXT NOT NULL)", xname); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'geometry', " "%d, 'MULTIPOLYGON', 'XY')", name, srid); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("ADD GEOMETRY %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'geometry')", name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE SPATIAL INDEX %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } /* creating the Hatch-Pattern table */ xname = gaiaDoubleQuotedSql (name); pattern = sqlite3_mprintf ("%s_pattern", name); xpattern = gaiaDoubleQuotedSql (pattern); fk_name = sqlite3_mprintf ("fk_%s_pattern", name); xfk_name = gaiaDoubleQuotedSql (fk_name); sqlite3_free (fk_name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " feature_id INTEGER PRIMARY KEY NOT NULL,\n" " filename TEXT NOTT NULL,\n" " layer TEXT NOT NULL,\n" " CONSTRAINT \"%s\" FOREIGN KEY (feature_id) " " REFERENCES \"%s\" (feature_id))", xpattern, xfk_name, xname); free (xname); free (xfk_name); free (xpattern); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", pattern, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'geometry', " "%d, 'MULTILINESTRING', 'XY')", pattern, srid); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("ADD GEOMETRY %s error: %s\n", pattern, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'geometry')", pattern); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE SPATIAL INDEX %s error: %s\n", pattern, sqlite3_errmsg (handle)); return 0; } sqlite3_free (pattern); if (!create_hatch_boundary_stmt (handle, name, &stmt)) return 0; if (!create_hatch_pattern_stmt (handle, name, &stmt2)) return 0; *xstmt = stmt; *xstmt2 = stmt2; return 1; } static int create_layer_text_extra_attr_table (sqlite3 * handle, const char *name, char *attr_name, sqlite3_stmt ** xstmt_ext) { /* attempting to create the "Text-layer-extra-attr" table */ char *sql; int ret; sqlite3_stmt *stmt_ext; char *xname; char *xattr_name; char *fk_name; char *xfk_name; char *idx_name; char *xidx_name; char *view_name; char *xview_name; *xstmt_ext = NULL; fk_name = sqlite3_mprintf ("fk_%s_attr", name); xfk_name = gaiaDoubleQuotedSql (fk_name); xattr_name = gaiaDoubleQuotedSql (attr_name); xname = gaiaDoubleQuotedSql (name); sqlite3_free (fk_name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " attr_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " feature_id INTEGER NOT NULL,\n" " attr_key TEXT NOT NULL,\n" " attr_value TEXT NOT NULL,\n" " CONSTRAINT \"%s\" FOREIGN KEY (feature_id) " "REFERENCES \"%s\" (feature_id))", xattr_name, xfk_name, xname); free (xfk_name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", attr_name, sqlite3_errmsg (handle)); return 0; } idx_name = sqlite3_mprintf ("idx_%s_attr", name); xidx_name = gaiaDoubleQuotedSql (idx_name); sql = sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (feature_id)", xidx_name, xname); free (xidx_name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (idx_name); view_name = sqlite3_mprintf ("%s_view", name); xview_name = gaiaDoubleQuotedSql (view_name); sql = sqlite3_mprintf ("CREATE VIEW \"%s\" AS " "SELECT f.feature_id AS feature_id, f.layer AS layer, f.label AS label, " "f.rotation AS rotation, f.geometry AS geometry, " "a.attr_id AS attr_id, a.attr_key AS attr_key, a.attr_value AS attr_value " "FROM \"%s\" AS f " "LEFT JOIN \"%s\" AS a ON (f.feature_id = a.feature_id)", xview_name, xname, xattr_name); free (xview_name); free (xattr_name); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW %s error: %s\n", view_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (view_name); if (!create_extra_stmt (handle, attr_name, &stmt_ext)) return 0; *xstmt_ext = stmt_ext; return 1; } static int create_layer_point_extra_attr_table (sqlite3 * handle, const char *name, char *attr_name, sqlite3_stmt ** xstmt_ext) { /* attempting to create the "Point-layer-extra-attr" table */ char *sql; int ret; sqlite3_stmt *stmt_ext; char *xname; char *xattr_name; char *fk_name; char *xfk_name; char *idx_name; char *xidx_name; char *view_name; char *xview_name; *xstmt_ext = NULL; fk_name = sqlite3_mprintf ("fk_%s_attr", name); xfk_name = gaiaDoubleQuotedSql (fk_name); xattr_name = gaiaDoubleQuotedSql (attr_name); xname = gaiaDoubleQuotedSql (name); sqlite3_free (fk_name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " attr_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " feature_id INTEGER NOT NULL,\n" " attr_key TEXT NOT NULL,\n" " attr_value TEXT NOT NULL,\n" " CONSTRAINT \"%s\" FOREIGN KEY (feature_id) " "REFERENCES \"%s\" (feature_id))", xattr_name, xfk_name, xname); free (xfk_name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", attr_name, sqlite3_errmsg (handle)); return 0; } idx_name = sqlite3_mprintf ("idx_%s_attr", name); xidx_name = gaiaDoubleQuotedSql (idx_name); sql = sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (feature_id)", xidx_name, xname); free (xidx_name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (idx_name); view_name = sqlite3_mprintf ("%s_view", name); xview_name = gaiaDoubleQuotedSql (view_name); sql = sqlite3_mprintf ("CREATE VIEW \"%s\" AS " "SELECT f.feature_id AS feature_id, f.layer AS layer, f.geometry AS geometry, " "a.attr_id AS attr_id, a.attr_key AS attr_key, a.attr_value AS attr_value " "FROM \"%s\" AS f " "LEFT JOIN \"%s\" AS a ON (f.feature_id = a.feature_id)", xview_name, xname, xattr_name); free (xview_name); free (xattr_name); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW %s error: %s\n", view_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (view_name); if (!create_extra_stmt (handle, attr_name, &stmt_ext)) return 0; *xstmt_ext = stmt_ext; return 1; } static int create_layer_line_extra_attr_table (sqlite3 * handle, const char *name, char *attr_name, sqlite3_stmt ** xstmt_ext) { /* attempting to create the "Line-layer-extra-attr" table */ char *sql; int ret; sqlite3_stmt *stmt_ext; char *xname; char *xattr_name; char *fk_name; char *xfk_name; char *idx_name; char *xidx_name; char *view_name; char *xview_name; *xstmt_ext = NULL; fk_name = sqlite3_mprintf ("fk_%s_attr", name); xfk_name = gaiaDoubleQuotedSql (fk_name); xattr_name = gaiaDoubleQuotedSql (attr_name); xname = gaiaDoubleQuotedSql (name); sqlite3_free (fk_name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " attr_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " feature_id INTEGER NOT NULL,\n" " attr_key TEXT NOT NULL,\n" " attr_value TEXT NOT NULL,\n" " CONSTRAINT \"%s\" FOREIGN KEY (feature_id) " "REFERENCES \"%s\" (feature_id))", xattr_name, xfk_name, xname); free (xfk_name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", attr_name, sqlite3_errmsg (handle)); return 0; } idx_name = sqlite3_mprintf ("idx_%s_attr", name); xidx_name = gaiaDoubleQuotedSql (idx_name); sql = sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (feature_id)", xidx_name, xname); free (xidx_name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (idx_name); view_name = sqlite3_mprintf ("%s_view", name); xview_name = gaiaDoubleQuotedSql (view_name); sql = sqlite3_mprintf ("CREATE VIEW \"%s\" AS " "SELECT f.feature_id AS feature_id, f.layer AS layer, f.geometry AS geometry, " "a.attr_id AS attr_id, a.attr_key AS attr_key, a.attr_value AS attr_value " "FROM \"%s\" AS f " "LEFT JOIN \"%s\" AS a ON (f.feature_id = a.feature_id)", xview_name, xname, xattr_name); free (xview_name); free (xattr_name); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW %s error: %s\n", view_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (view_name); if (!create_extra_stmt (handle, attr_name, &stmt_ext)) return 0; *xstmt_ext = stmt_ext; return 1; } static int create_layer_polyg_extra_attr_table (sqlite3 * handle, const char *name, char *attr_name, sqlite3_stmt ** xstmt_ext) { /* attempting to create the "Polyg-layer-extra-attr" table */ char *sql; int ret; sqlite3_stmt *stmt_ext; char *xname; char *xattr_name; char *fk_name; char *xfk_name; char *idx_name; char *xidx_name; char *view_name; char *xview_name; *xstmt_ext = NULL; fk_name = sqlite3_mprintf ("fk_%s_attr", name); xfk_name = gaiaDoubleQuotedSql (fk_name); xattr_name = gaiaDoubleQuotedSql (attr_name); xname = gaiaDoubleQuotedSql (name); sqlite3_free (fk_name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " attr_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " feature_id INTEGER NOT NULL,\n" " attr_key TEXT NOT NULL,\n" " attr_value TEXT NOT NULL,\n" " CONSTRAINT \"%s\" FOREIGN KEY (feature_id) " "REFERENCES \"%s\" (feature_id))", xattr_name, xfk_name, xname); free (xfk_name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", attr_name, sqlite3_errmsg (handle)); return 0; } idx_name = sqlite3_mprintf ("idx_%s_attr", name); xidx_name = gaiaDoubleQuotedSql (idx_name); sql = sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (feature_id)", xidx_name, xname); free (xidx_name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (idx_name); view_name = sqlite3_mprintf ("%s_view", name); xview_name = gaiaDoubleQuotedSql (view_name); sql = sqlite3_mprintf ("CREATE VIEW \"%s\" AS " "SELECT f.feature_id AS feature_id, f.layer AS layer, f.geometry AS geometry, " "a.attr_id AS attr_id, a.attr_key AS attr_key, a.attr_value AS attr_value " "FROM \"%s\" AS f " "LEFT JOIN \"%s\" AS a ON (f.feature_id = a.feature_id)", xview_name, xname, xattr_name); free (xview_name); free (xattr_name); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW %s error: %s\n", view_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (view_name); if (!create_extra_stmt (handle, attr_name, &stmt_ext)) return 0; *xstmt_ext = stmt_ext; return 1; } DXF_PRIVATE int import_by_layer (sqlite3 * handle, gaiaDxfParserPtr dxf, int append) { /* populating the target DB - by distinct layers */ int ret; sqlite3_stmt *stmt; sqlite3_stmt *stmt_ext; sqlite3_stmt *stmt_pattern; unsigned char *blob; int blob_size; gaiaGeomCollPtr geom; gaiaLinestringPtr p_ln; gaiaPolygonPtr p_pg; gaiaRingPtr p_rng; int iv; char *name; char *attr_name; char *block; gaiaDxfTextPtr txt; gaiaDxfPointPtr pt; gaiaDxfPolylinePtr ln; gaiaDxfPolylinePtr pg; gaiaDxfHatchPtr p_hatch; gaiaDxfInsertPtr ins; gaiaDxfLayerPtr lyr = dxf->first_layer; while (lyr != NULL) { /* looping on layers */ int text = 0; int point = 0; int line = 0; int polyg = 0; int hatch = 0; int ins_text = 0; int ins_point = 0; int ins_line = 0; int ins_polyg = 0; int ins_hatch = 0; if (lyr->first_text != NULL) text = 1; if (lyr->first_point != NULL) point = 1; if (lyr->first_line != NULL) line = 1; if (lyr->first_polyg != NULL) polyg = 1; if (lyr->first_hatch != NULL) hatch = 1; if (lyr->first_ins_text != NULL) ins_text = 1; if (lyr->first_ins_point != NULL) ins_point = 1; if (lyr->first_ins_line != NULL) ins_line = 1; if (lyr->first_ins_polyg != NULL) ins_polyg = 1; if (lyr->first_ins_hatch != NULL) ins_hatch = 1; if (text) { /* creating and populating the TEXT-layer */ stmt_ext = NULL; attr_name = NULL; if (dxf->prefix == NULL) name = sqlite3_mprintf ("%s_text_%s", lyr->layer_name, lyr->is3Dtext ? "3d" : "2d"); else name = sqlite3_mprintf ("%s%s_text_%s", dxf->prefix, lyr->layer_name, lyr->is3Dtext ? "3d" : "2d"); if (append && check_text_table (handle, name, dxf->srid, lyr->is3Dtext)) { /* appending into the already existing table */ if (!create_text_stmt (handle, name, &stmt)) return 0; } else { /* creating a new table */ if (!create_layer_text_table (handle, name, dxf->srid, lyr->is3Dtext, &stmt)) { sqlite3_free (name); return 0; } } if (lyr->hasExtraText) { attr_name = create_extra_attr_table_name (name); if (append && check_extra_attr_table (handle, attr_name)) { /* appending into the already existing table */ if (!create_extra_stmt (handle, attr_name, &stmt_ext)) return 0; } else { /* creating the Extra Attribute table */ if (!create_layer_text_extra_attr_table (handle, name, attr_name, &stmt_ext)) { sqlite3_finalize (stmt); return 0; } } } ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("BEGIN %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } txt = lyr->first_text; while (txt != NULL) { sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, dxf->filename, strlen (dxf->filename), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, lyr->layer_name, strlen (lyr->layer_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 3, txt->label, strlen (txt->label), SQLITE_STATIC); sqlite3_bind_double (stmt, 4, txt->angle); if (lyr->is3Dtext) geom = gaiaAllocGeomCollXYZ (); else geom = gaiaAllocGeomColl (); geom->Srid = dxf->srid; if (lyr->is3Dtext) gaiaAddPointToGeomCollXYZ (geom, txt->x, txt->y, txt->z); else gaiaAddPointToGeomColl (geom, txt->x, txt->y); gaiaToSpatiaLiteBlobWkb (geom, &blob, &blob_size); gaiaFreeGeomColl (geom); sqlite3_bind_blob (stmt, 5, blob, blob_size, free); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } if (stmt_ext != NULL) { /* inserting all Extra Attributes */ sqlite3_int64 feature_id = sqlite3_last_insert_rowid (handle); gaiaDxfExtraAttrPtr ext = txt->first; while (ext != NULL) { sqlite3_reset (stmt_ext); sqlite3_clear_bindings (stmt_ext); sqlite3_bind_int64 (stmt_ext, 1, feature_id); sqlite3_bind_text (stmt_ext, 2, ext->key, strlen (ext->key), SQLITE_STATIC); sqlite3_bind_text (stmt_ext, 3, ext->value, strlen (ext->value), SQLITE_STATIC); ret = sqlite3_step (stmt_ext); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", attr_name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); sqlite3_finalize (stmt_ext); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); return 0; } ext = ext->next; } } txt = txt->next; } sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("COMMIT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); } if (point) { /* creating and populating the POINT-layer */ stmt_ext = NULL; attr_name = NULL; if (dxf->prefix == NULL) name = sqlite3_mprintf ("%s_point_%s", lyr->layer_name, lyr->is3Dpoint ? "3d" : "2d"); else name = sqlite3_mprintf ("%s%s_point_%s", dxf->prefix, lyr->layer_name, lyr->is3Dpoint ? "3d" : "2d"); if (append && check_point_table (handle, name, dxf->srid, lyr->is3Dpoint)) { /* appending into the already existing table */ if (!create_point_stmt (handle, name, &stmt)) return 0; } else { /* creating a new table */ if (!create_layer_point_table (handle, name, dxf->srid, lyr->is3Dpoint, &stmt)) { sqlite3_free (name); return 0; } } if (lyr->hasExtraPoint) { attr_name = create_extra_attr_table_name (name); if (append && check_extra_attr_table (handle, attr_name)) { /* appending into the already existing table */ if (!create_extra_stmt (handle, attr_name, &stmt_ext)) return 0; } else { /* creating the Extra Attribute table */ if (!create_layer_point_extra_attr_table (handle, name, attr_name, &stmt_ext)) { sqlite3_finalize (stmt); return 0; } } } ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("BEGIN %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } pt = lyr->first_point; while (pt != NULL) { sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, dxf->filename, strlen (dxf->filename), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, lyr->layer_name, strlen (lyr->layer_name), SQLITE_STATIC); if (lyr->is3Dpoint) geom = gaiaAllocGeomCollXYZ (); else geom = gaiaAllocGeomColl (); geom->Srid = dxf->srid; if (lyr->is3Dpoint) gaiaAddPointToGeomCollXYZ (geom, pt->x, pt->y, pt->z); else gaiaAddPointToGeomColl (geom, pt->x, pt->y); gaiaToSpatiaLiteBlobWkb (geom, &blob, &blob_size); gaiaFreeGeomColl (geom); sqlite3_bind_blob (stmt, 3, blob, blob_size, free); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } if (stmt_ext != NULL) { /* inserting all Extra Attributes */ sqlite3_int64 feature_id = sqlite3_last_insert_rowid (handle); gaiaDxfExtraAttrPtr ext = pt->first; while (ext != NULL) { sqlite3_reset (stmt_ext); sqlite3_clear_bindings (stmt_ext); sqlite3_bind_int64 (stmt_ext, 1, feature_id); sqlite3_bind_text (stmt_ext, 2, ext->key, strlen (ext->key), SQLITE_STATIC); sqlite3_bind_text (stmt_ext, 3, ext->value, strlen (ext->value), SQLITE_STATIC); ret = sqlite3_step (stmt_ext); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", attr_name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); sqlite3_finalize (stmt_ext); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); return 0; } ext = ext->next; } } pt = pt->next; } sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("COMMIT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); } if (line) { /* creating and populating the LINE-layer */ stmt_ext = NULL; attr_name = NULL; if (dxf->prefix == NULL) name = sqlite3_mprintf ("%s_line_%s", lyr->layer_name, lyr->is3Dline ? "3d" : "2d"); else name = sqlite3_mprintf ("%s%s_line_%s", dxf->prefix, lyr->layer_name, lyr->is3Dline ? "3d" : "2d"); if (append && check_line_table (handle, name, dxf->srid, lyr->is3Dline)) { /* appending into the already existing table */ if (!create_line_stmt (handle, name, &stmt)) return 0; } else { /* creating a new table */ if (!create_layer_line_table (handle, name, dxf->srid, lyr->is3Dline, &stmt)) { sqlite3_free (name); return 0; } } if (lyr->hasExtraLine) { attr_name = create_extra_attr_table_name (name); if (append && check_extra_attr_table (handle, attr_name)) { /* appending into the already existing table */ if (!create_extra_stmt (handle, attr_name, &stmt_ext)) return 0; } else { /* creating the Extra Attribute table */ if (!create_layer_line_extra_attr_table (handle, name, attr_name, &stmt_ext)) { sqlite3_finalize (stmt); return 0; } } } ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("BEGIN %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } ln = lyr->first_line; while (ln != NULL) { sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, dxf->filename, strlen (dxf->filename), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, lyr->layer_name, strlen (lyr->layer_name), SQLITE_STATIC); if (lyr->is3Dline) geom = gaiaAllocGeomCollXYZ (); else geom = gaiaAllocGeomColl (); geom->Srid = dxf->srid; gaiaAddLinestringToGeomColl (geom, ln->points); p_ln = geom->FirstLinestring; for (iv = 0; iv < ln->points; iv++) { if (lyr->is3Dline) { gaiaSetPointXYZ (p_ln->Coords, iv, *(ln->x + iv), *(ln->y + iv), *(ln->z + iv)); } else { gaiaSetPoint (p_ln->Coords, iv, *(ln->x + iv), *(ln->y + iv)); } } gaiaToSpatiaLiteBlobWkb (geom, &blob, &blob_size); gaiaFreeGeomColl (geom); sqlite3_bind_blob (stmt, 3, blob, blob_size, free); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } if (stmt_ext != NULL) { /* inserting all Extra Attributes */ sqlite3_int64 feature_id = sqlite3_last_insert_rowid (handle); gaiaDxfExtraAttrPtr ext = ln->first; while (ext != NULL) { sqlite3_reset (stmt_ext); sqlite3_clear_bindings (stmt_ext); sqlite3_bind_int64 (stmt_ext, 1, feature_id); sqlite3_bind_text (stmt_ext, 2, ext->key, strlen (ext->key), SQLITE_STATIC); sqlite3_bind_text (stmt_ext, 3, ext->value, strlen (ext->value), SQLITE_STATIC); ret = sqlite3_step (stmt_ext); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", attr_name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); sqlite3_finalize (stmt_ext); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); return 0; } ext = ext->next; } } ln = ln->next; } sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("COMMIT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); } if (polyg) { /* creating and populating the POLYG-layer */ stmt_ext = NULL; attr_name = NULL; if (dxf->prefix == NULL) name = sqlite3_mprintf ("%s_polyg_%s", lyr->layer_name, lyr->is3Dpolyg ? "3d" : "2d"); else name = sqlite3_mprintf ("%s%s_polyg_%s", dxf->prefix, lyr->layer_name, lyr->is3Dpolyg ? "3d" : "2d"); if (append && check_polyg_table (handle, name, dxf->srid, lyr->is3Dpolyg)) { /* appending into the already existing table */ if (!create_polyg_stmt (handle, name, &stmt)) return 0; } else { /* creating a new table */ if (!create_layer_polyg_table (handle, name, dxf->srid, lyr->is3Dpolyg, &stmt)) { sqlite3_free (name); return 0; } } if (lyr->hasExtraPolyg) { attr_name = create_extra_attr_table_name (name); if (append && check_extra_attr_table (handle, attr_name)) { /* appending into the already existing table */ if (!create_extra_stmt (handle, attr_name, &stmt_ext)) return 0; } else { /* creating the Extra Attribute table */ if (!create_layer_polyg_extra_attr_table (handle, name, attr_name, &stmt_ext)) { sqlite3_finalize (stmt); return 0; } } } ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("BEGIN %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } pg = lyr->first_polyg; while (pg != NULL) { int num_holes; gaiaDxfHolePtr hole; sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, dxf->filename, strlen (dxf->filename), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, lyr->layer_name, strlen (lyr->layer_name), SQLITE_STATIC); if (lyr->is3Dpolyg) geom = gaiaAllocGeomCollXYZ (); else geom = gaiaAllocGeomColl (); geom->Srid = dxf->srid; num_holes = 0; hole = pg->first_hole; while (hole != NULL) { num_holes++; hole = hole->next; } gaiaAddPolygonToGeomColl (geom, pg->points, num_holes); p_pg = geom->FirstPolygon; p_rng = p_pg->Exterior; for (iv = 0; iv < pg->points; iv++) { if (lyr->is3Dpolyg) { gaiaSetPointXYZ (p_rng->Coords, iv, *(pg->x + iv), *(pg->y + iv), *(pg->z + iv)); } else { gaiaSetPoint (p_rng->Coords, iv, *(pg->x + iv), *(pg->y + iv)); } } num_holes = 0; hole = pg->first_hole; while (hole != NULL) { p_rng = gaiaAddInteriorRing (p_pg, num_holes, hole->points); for (iv = 0; iv < hole->points; iv++) { if (lyr->is3Dpolyg) { gaiaSetPointXYZ (p_rng->Coords, iv, *(hole->x + iv), *(hole->y + iv), *(hole->z + iv)); } else { gaiaSetPoint (p_rng->Coords, iv, *(hole->x + iv), *(hole->y + iv)); } } num_holes++; hole = hole->next; } gaiaToSpatiaLiteBlobWkb (geom, &blob, &blob_size); gaiaFreeGeomColl (geom); sqlite3_bind_blob (stmt, 3, blob, blob_size, free); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } if (stmt_ext != NULL) { /* inserting all Extra Attributes */ sqlite3_int64 feature_id = sqlite3_last_insert_rowid (handle); gaiaDxfExtraAttrPtr ext = pg->first; while (ext != NULL) { sqlite3_reset (stmt_ext); sqlite3_clear_bindings (stmt_ext); sqlite3_bind_int64 (stmt_ext, 1, feature_id); sqlite3_bind_text (stmt_ext, 2, ext->key, strlen (ext->key), SQLITE_STATIC); sqlite3_bind_text (stmt_ext, 3, ext->value, strlen (ext->value), SQLITE_STATIC); ret = sqlite3_step (stmt_ext); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", attr_name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); sqlite3_finalize (stmt_ext); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); return 0; } ext = ext->next; } } pg = pg->next; } sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("COMMIT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); } if (hatch) { /* creating and populating the HATCH-layer */ if (dxf->prefix == NULL) name = sqlite3_mprintf ("%s_hatch_2d", lyr->layer_name); else name = sqlite3_mprintf ("%s%s_hatch_2d", dxf->prefix, lyr->layer_name); if (append && check_hatch_tables (handle, name, dxf->srid)) { /* appending into the already existing table */ if (!create_hatch_boundary_stmt (handle, name, &stmt)) return 0; if (!create_hatch_pattern_stmt (handle, name, &stmt_pattern)) return 0; } else { /* creating a new table */ if (!create_layer_hatch_tables (handle, name, dxf->srid, &stmt, &stmt_pattern)) { sqlite3_free (name); return 0; } } ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("BEGIN %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } p_hatch = lyr->first_hatch; while (p_hatch != NULL) { sqlite3_int64 feature_id; gaiaDxfHatchSegmPtr segm; /* inserting the Boundary Geometry */ sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, dxf->filename, strlen (dxf->filename), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, lyr->layer_name, strlen (lyr->layer_name), SQLITE_STATIC); if (p_hatch->boundary == NULL) sqlite3_bind_null (stmt, 2); else { gaiaToSpatiaLiteBlobWkb (p_hatch->boundary, &blob, &blob_size); sqlite3_bind_blob (stmt, 3, blob, blob_size, free); } ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); sqlite3_finalize (stmt_pattern); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } feature_id = sqlite3_last_insert_rowid (handle); /* inserting the Pattern Geometry */ sqlite3_reset (stmt_pattern); sqlite3_clear_bindings (stmt_pattern); sqlite3_bind_int64 (stmt_pattern, 1, feature_id); sqlite3_bind_text (stmt_pattern, 2, dxf->filename, strlen (dxf->filename), SQLITE_STATIC); sqlite3_bind_text (stmt_pattern, 3, lyr->layer_name, strlen (lyr->layer_name), SQLITE_STATIC); if (p_hatch->first_out == NULL) sqlite3_bind_null (stmt_pattern, 4); else { geom = gaiaAllocGeomColl (); geom->Srid = dxf->srid; geom->DeclaredType = GAIA_MULTILINESTRING; segm = p_hatch->first_out; while (segm != NULL) { gaiaLinestringPtr p_ln = gaiaAddLinestringToGeomColl (geom, 2); gaiaSetPoint (p_ln->Coords, 0, segm->x0, segm->y0); gaiaSetPoint (p_ln->Coords, 1, segm->x1, segm->y1); segm = segm->next; } gaiaToSpatiaLiteBlobWkb (geom, &blob, &blob_size); gaiaFreeGeomColl (geom); sqlite3_bind_blob (stmt_pattern, 4, blob, blob_size, free); } ret = sqlite3_step (stmt_pattern); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); sqlite3_finalize (stmt_pattern); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } p_hatch = p_hatch->next; } sqlite3_finalize (stmt); sqlite3_finalize (stmt_pattern); ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("COMMIT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); } if (ins_text) { /* creating and populating the INSERT (Text reference) layer */ stmt_ext = NULL; attr_name = NULL; if (dxf->prefix == NULL) name = sqlite3_mprintf ("%s_instext_%s", lyr->layer_name, lyr->is3DinsText ? "3d" : "2d"); else name = sqlite3_mprintf ("%s%s_instext_%s", dxf->prefix, lyr->layer_name, lyr->is3DinsText ? "3d" : "2d"); if (append && check_insert_table (handle, name)) { /* appending into the already existing table */ if (!create_insert_stmt (handle, name, &stmt)) return 0; } else { /* creating a new table */ if (dxf->prefix == NULL) block = sqlite3_mprintf ("block_text_%s", lyr->is3DinsText ? "3d" : "2d"); else block = sqlite3_mprintf ("%sblock_text_%s", dxf->prefix, lyr->is3DinsText ? "3d" : "2d"); if (!create_instext_table (handle, name, block, lyr->is3Dtext, &stmt)) { sqlite3_free (name); return 0; } sqlite3_free (block); } if (lyr->hasExtraInsText) { attr_name = create_extra_attr_table_name (name); if (append && check_extra_attr_table (handle, attr_name)) { /* appending into the already existing table */ if (!create_extra_stmt (handle, attr_name, &stmt_ext)) return 0; } else { /* creating the Extra Attribute table */ if (!create_insert_extra_attr_table (handle, name, attr_name, &stmt_ext)) { sqlite3_finalize (stmt); return 0; } } } ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("BEGIN %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } ins = lyr->first_ins_text; while (ins != NULL) { sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, dxf->filename, strlen (dxf->filename), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, lyr->layer_name, strlen (lyr->layer_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 3, ins->block_id, strlen (ins->block_id), SQLITE_STATIC); sqlite3_bind_double (stmt, 4, ins->x); sqlite3_bind_double (stmt, 5, ins->y); sqlite3_bind_double (stmt, 6, ins->z); sqlite3_bind_double (stmt, 7, ins->scale_x); sqlite3_bind_double (stmt, 8, ins->scale_y); sqlite3_bind_double (stmt, 9, ins->scale_z); sqlite3_bind_double (stmt, 10, ins->angle); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } if (stmt_ext != NULL) { /* inserting all Extra Attributes */ sqlite3_int64 feature_id = sqlite3_last_insert_rowid (handle); gaiaDxfExtraAttrPtr ext = txt->first; while (ext != NULL) { sqlite3_reset (stmt_ext); sqlite3_clear_bindings (stmt_ext); sqlite3_bind_int64 (stmt_ext, 1, feature_id); sqlite3_bind_text (stmt_ext, 2, ext->key, strlen (ext->key), SQLITE_STATIC); sqlite3_bind_text (stmt_ext, 3, ext->value, strlen (ext->value), SQLITE_STATIC); ret = sqlite3_step (stmt_ext); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", attr_name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); sqlite3_finalize (stmt_ext); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); return 0; } ext = ext->next; } } ins = ins->next; } sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("COMMIT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); } if (ins_point) { /* creating and populating the INSERT (Point reference) layer */ stmt_ext = NULL; attr_name = NULL; if (dxf->prefix == NULL) name = sqlite3_mprintf ("%s_inspoint_%s", lyr->layer_name, lyr->is3DinsPoint ? "3d" : "2d"); else name = sqlite3_mprintf ("%s%s_inspoint_%s", dxf->prefix, lyr->layer_name, lyr->is3DinsPoint ? "3d" : "2d"); if (append && check_insert_table (handle, name)) { /* appending into the already existing table */ if (!create_insert_stmt (handle, name, &stmt)) return 0; } else { /* creating a new table */ if (dxf->prefix == NULL) block = sqlite3_mprintf ("block_point_%s", lyr->is3DinsPoint ? "3d" : "2d"); else block = sqlite3_mprintf ("%sblock_point_%s", dxf->prefix, lyr->is3DinsPoint ? "3d" : "2d"); if (!create_inspoint_table (handle, name, block, lyr->is3Dpoint, &stmt)) { sqlite3_free (name); return 0; } sqlite3_free (block); } if (lyr->hasExtraInsPoint) { attr_name = create_extra_attr_table_name (name); if (append && check_extra_attr_table (handle, attr_name)) { /* appending into the already existing table */ if (!create_extra_stmt (handle, attr_name, &stmt_ext)) return 0; } else { /* creating the Extra Attribute table */ if (!create_insert_extra_attr_table (handle, name, attr_name, &stmt_ext)) { sqlite3_finalize (stmt); return 0; } } } ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("BEGIN %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } ins = lyr->first_ins_point; while (ins != NULL) { sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, dxf->filename, strlen (dxf->filename), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, lyr->layer_name, strlen (lyr->layer_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 3, ins->block_id, strlen (ins->block_id), SQLITE_STATIC); sqlite3_bind_double (stmt, 4, ins->x); sqlite3_bind_double (stmt, 5, ins->y); sqlite3_bind_double (stmt, 6, ins->z); sqlite3_bind_double (stmt, 7, ins->scale_x); sqlite3_bind_double (stmt, 8, ins->scale_y); sqlite3_bind_double (stmt, 9, ins->scale_z); sqlite3_bind_double (stmt, 10, ins->angle); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } if (stmt_ext != NULL) { /* inserting all Extra Attributes */ sqlite3_int64 feature_id = sqlite3_last_insert_rowid (handle); gaiaDxfExtraAttrPtr ext = txt->first; while (ext != NULL) { sqlite3_reset (stmt_ext); sqlite3_clear_bindings (stmt_ext); sqlite3_bind_int64 (stmt_ext, 1, feature_id); sqlite3_bind_text (stmt_ext, 2, ext->key, strlen (ext->key), SQLITE_STATIC); sqlite3_bind_text (stmt_ext, 3, ext->value, strlen (ext->value), SQLITE_STATIC); ret = sqlite3_step (stmt_ext); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", attr_name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); sqlite3_finalize (stmt_ext); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); return 0; } ext = ext->next; } } ins = ins->next; } sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("COMMIT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); } if (ins_line) { /* creating and populating the INSERT (Line reference) layer */ stmt_ext = NULL; attr_name = NULL; if (dxf->prefix == NULL) name = sqlite3_mprintf ("%s_insline_%s", lyr->layer_name, lyr->is3DinsLine ? "3d" : "2d"); else name = sqlite3_mprintf ("%s%s_insline_%s", dxf->prefix, lyr->layer_name, lyr->is3DinsLine ? "3d" : "2d"); if (append && check_insert_table (handle, name)) { /* appending into the already existing table */ if (!create_insert_stmt (handle, name, &stmt)) return 0; } else { /* creating a new table */ if (dxf->prefix == NULL) block = sqlite3_mprintf ("block_line_%s", lyr->is3DinsLine ? "3d" : "2d"); else block = sqlite3_mprintf ("%sblock_line_%s", dxf->prefix, lyr->is3DinsLine ? "3d" : "2d"); if (!create_insline_table (handle, name, block, lyr->is3Dline, &stmt)) { sqlite3_free (name); return 0; } sqlite3_free (block); } if (lyr->hasExtraInsLine) { attr_name = create_extra_attr_table_name (name); if (append && check_extra_attr_table (handle, attr_name)) { /* appending into the already existing table */ if (!create_extra_stmt (handle, attr_name, &stmt_ext)) return 0; } else { /* creating the Extra Attribute table */ if (!create_insert_extra_attr_table (handle, name, attr_name, &stmt_ext)) { sqlite3_finalize (stmt); return 0; } } } ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("BEGIN %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } ins = lyr->first_ins_line; while (ins != NULL) { sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, dxf->filename, strlen (dxf->filename), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, lyr->layer_name, strlen (lyr->layer_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 3, ins->block_id, strlen (ins->block_id), SQLITE_STATIC); sqlite3_bind_double (stmt, 4, ins->x); sqlite3_bind_double (stmt, 5, ins->y); sqlite3_bind_double (stmt, 6, ins->z); sqlite3_bind_double (stmt, 7, ins->scale_x); sqlite3_bind_double (stmt, 8, ins->scale_y); sqlite3_bind_double (stmt, 9, ins->scale_z); sqlite3_bind_double (stmt, 10, ins->angle); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } if (stmt_ext != NULL) { /* inserting all Extra Attributes */ sqlite3_int64 feature_id = sqlite3_last_insert_rowid (handle); gaiaDxfExtraAttrPtr ext = txt->first; while (ext != NULL) { sqlite3_reset (stmt_ext); sqlite3_clear_bindings (stmt_ext); sqlite3_bind_int64 (stmt_ext, 1, feature_id); sqlite3_bind_text (stmt_ext, 2, ext->key, strlen (ext->key), SQLITE_STATIC); sqlite3_bind_text (stmt_ext, 3, ext->value, strlen (ext->value), SQLITE_STATIC); ret = sqlite3_step (stmt_ext); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", attr_name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); sqlite3_finalize (stmt_ext); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); return 0; } ext = ext->next; } } ins = ins->next; } sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("COMMIT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); } if (ins_polyg) { /* creating and populating the INSERT (Polygon reference) layer */ stmt_ext = NULL; attr_name = NULL; if (dxf->prefix == NULL) name = sqlite3_mprintf ("%s_inspolyg_%s", lyr->layer_name, lyr->is3DinsPolyg ? "3d" : "2d"); else name = sqlite3_mprintf ("%s%s_inspolyg_%s", dxf->prefix, lyr->layer_name, lyr->is3DinsPolyg ? "3d" : "2d"); if (append && check_insert_table (handle, name)) { /* appending into the already existing table */ if (!create_insert_stmt (handle, name, &stmt)) return 0; } else { /* creating a new table */ if (dxf->prefix == NULL) block = sqlite3_mprintf ("block_polyg_%s", lyr->is3DinsPolyg ? "3d" : "2d"); else block = sqlite3_mprintf ("%sblock_polyg_%s", dxf->prefix, lyr->is3DinsPolyg ? "3d" : "2d"); if (!create_inspolyg_table (handle, name, block, lyr->is3Dpolyg, &stmt)) { sqlite3_free (name); return 0; } sqlite3_free (block); } if (lyr->hasExtraInsPolyg) { attr_name = create_extra_attr_table_name (name); if (append && check_extra_attr_table (handle, attr_name)) { /* appending into the already existing table */ if (!create_extra_stmt (handle, attr_name, &stmt_ext)) return 0; } else { /* creating the Extra Attribute table */ if (!create_insert_extra_attr_table (handle, name, attr_name, &stmt_ext)) { sqlite3_finalize (stmt); return 0; } } } ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("BEGIN %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } ins = lyr->first_ins_polyg; while (ins != NULL) { sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, dxf->filename, strlen (dxf->filename), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, lyr->layer_name, strlen (lyr->layer_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 3, ins->block_id, strlen (ins->block_id), SQLITE_STATIC); sqlite3_bind_double (stmt, 4, ins->x); sqlite3_bind_double (stmt, 5, ins->y); sqlite3_bind_double (stmt, 6, ins->z); sqlite3_bind_double (stmt, 7, ins->scale_x); sqlite3_bind_double (stmt, 8, ins->scale_y); sqlite3_bind_double (stmt, 9, ins->scale_z); sqlite3_bind_double (stmt, 10, ins->angle); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } if (stmt_ext != NULL) { /* inserting all Extra Attributes */ sqlite3_int64 feature_id = sqlite3_last_insert_rowid (handle); gaiaDxfExtraAttrPtr ext = txt->first; while (ext != NULL) { sqlite3_reset (stmt_ext); sqlite3_clear_bindings (stmt_ext); sqlite3_bind_int64 (stmt_ext, 1, feature_id); sqlite3_bind_text (stmt_ext, 2, ext->key, strlen (ext->key), SQLITE_STATIC); sqlite3_bind_text (stmt_ext, 3, ext->value, strlen (ext->value), SQLITE_STATIC); ret = sqlite3_step (stmt_ext); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", attr_name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); sqlite3_finalize (stmt_ext); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); return 0; } ext = ext->next; } } ins = ins->next; } sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("COMMIT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); } if (ins_hatch) { /* creating and populating the INSERT (Hatch reference) layer */ stmt_ext = NULL; attr_name = NULL; if (dxf->prefix == NULL) name = sqlite3_mprintf ("%s_inshatch_2d", lyr->layer_name); else name = sqlite3_mprintf ("%s%s_inspolyg_2d", dxf->prefix, lyr->layer_name); if (append && check_insert_table (handle, name)) { /* appending into the already existing table */ if (!create_insert_stmt (handle, name, &stmt)) return 0; } else { /* creating a new table */ if (dxf->prefix == NULL) block = sqlite3_mprintf ("block_hatch_2d"); else block = sqlite3_mprintf ("%sblock_polyg_2d", dxf->prefix); if (!create_inshatch_table (handle, name, block, &stmt)) { sqlite3_free (name); return 0; } sqlite3_free (block); } ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("BEGIN %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } ins = lyr->first_ins_polyg; while (ins != NULL) { sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, dxf->filename, strlen (dxf->filename), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, lyr->layer_name, strlen (lyr->layer_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 3, ins->block_id, strlen (ins->block_id), SQLITE_STATIC); sqlite3_bind_double (stmt, 4, ins->x); sqlite3_bind_double (stmt, 5, ins->y); sqlite3_bind_double (stmt, 6, ins->z); sqlite3_bind_double (stmt, 7, ins->scale_x); sqlite3_bind_double (stmt, 8, ins->scale_y); sqlite3_bind_double (stmt, 9, ins->scale_z); sqlite3_bind_double (stmt, 10, ins->angle); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); sqlite3_free (name); return 0; } ins = ins->next; } sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("COMMIT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); } lyr = lyr->next; } return 1; } libspatialite-4.1.1/src/dxf/dxf_private.h0000664000175000017500000001245712163502133015327 00000000000000/* dxf_private.h -- DXF Import Private API version 4.1, 2013 May 14 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /** \file spatialite_private.h SpatiaLite private header file */ #ifndef DOXYGEN_SHOULD_SKIP_THIS #ifdef _WIN32 #ifdef DLL_EXPORT #define DXF_PRIVATE #else #define DXF_PRIVATE #endif #else #define DXF_PRIVATE __attribute__ ((visibility("hidden"))) #endif #endif #ifndef _DXF_PRIVATE_H #ifndef DOXYGEN_SHOULD_SKIP_THIS #define _DXF_PRIVATE_H #endif #ifdef __cplusplus extern "C" { #endif typedef struct dxf_out_layer { double minx; double miny; double maxx; double maxy; char *layer_name; struct dxf_out_layer *next; } gaiaDxfExportLayer; typedef gaiaDxfExportLayer *gaiaDxfExportLayerPtr; typedef struct dxf_out { double minx; double miny; double maxx; double maxy; gaiaDxfExportLayer *first; gaiaDxfExportLayer *last; } gaiaDxfExport; typedef gaiaDxfExport *gaiaDxfExportPtr; DXF_PRIVATE int create_text_stmt (sqlite3 * handle, const char *name, sqlite3_stmt ** xstmt); DXF_PRIVATE int create_point_stmt (sqlite3 * handle, const char *name, sqlite3_stmt ** xstmt); DXF_PRIVATE int create_line_stmt (sqlite3 * handle, const char *name, sqlite3_stmt ** xstmt); DXF_PRIVATE int create_polyg_stmt (sqlite3 * handle, const char *name, sqlite3_stmt ** xstmt); DXF_PRIVATE int create_hatch_boundary_stmt (sqlite3 * handle, const char *name, sqlite3_stmt ** xstmt); DXF_PRIVATE int create_hatch_pattern_stmt (sqlite3 * handle, const char *name, sqlite3_stmt ** xstmt); DXF_PRIVATE int create_insert_stmt (sqlite3 * handle, const char *name, sqlite3_stmt ** xstmt); DXF_PRIVATE int create_extra_stmt (sqlite3 * handle, const char *extra_name, sqlite3_stmt ** xstmt); DXF_PRIVATE char *create_extra_attr_table_name (const char *name); DXF_PRIVATE int check_text_table (sqlite3 * handle, const char *name, int srid, int is3D); DXF_PRIVATE int check_point_table (sqlite3 * handle, const char *name, int srid, int is3D); DXF_PRIVATE int check_line_table (sqlite3 * handle, const char *name, int srid, int is3D); DXF_PRIVATE int check_polyg_table (sqlite3 * handle, const char *name, int srid, int is3D); DXF_PRIVATE int check_hatch_tables (sqlite3 * handle, const char *name, int srid); DXF_PRIVATE int check_insert_table (sqlite3 * handle, const char *name); DXF_PRIVATE int check_extra_attr_table (sqlite3 * handle, const char *name); DXF_PRIVATE int create_block_text_stmt (sqlite3 * handle, const char *name, sqlite3_stmt ** xstmt); DXF_PRIVATE int import_mixed (sqlite3 * handle, gaiaDxfParserPtr dxf, int append); DXF_PRIVATE int import_by_layer (sqlite3 * handle, gaiaDxfParserPtr dxf, int append); DXF_PRIVATE int create_instext_table (sqlite3 * handle, const char *name, const char *block, int is3d, sqlite3_stmt ** xstmt); DXF_PRIVATE int create_inspoint_table (sqlite3 * handle, const char *name, const char *block, int is3d, sqlite3_stmt ** xstmt); DXF_PRIVATE int create_insline_table (sqlite3 * handle, const char *name, const char *block, int is3d, sqlite3_stmt ** xstmt); DXF_PRIVATE int create_inspolyg_table (sqlite3 * handle, const char *name, const char *block, int is3d, sqlite3_stmt ** xstmt); DXF_PRIVATE int create_inshatch_table (sqlite3 * handle, const char *name, const char *block, sqlite3_stmt ** xstmt); DXF_PRIVATE int create_insert_extra_attr_table (sqlite3 * handle, const char *name, char *extra_name, sqlite3_stmt ** xstmt_ext); #ifdef __cplusplus } #endif #endif /* _DXF_PRIVATE_H */ libspatialite-4.1.1/src/dxf/Makefile.in0000664000175000017500000003770012163502133014706 00000000000000# Makefile.in generated by automake 1.12.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/dxf DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libdxf_la_LIBADD = am_libdxf_la_OBJECTS = dxf_parser.lo dxf_loader.lo \ dxf_load_distinct.lo dxf_load_mixed.lo dxf_writer.lo libdxf_la_OBJECTS = $(am_libdxf_la_OBJECTS) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libdxf_la_SOURCES) DIST_SOURCES = $(libdxf_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ INCLUDES = @CFLAGS@ -I$(top_srcdir)/src/headers -I. noinst_HEADERS = dxf_private.h noinst_LTLIBRARIES = libdxf.la libdxf_la_SOURCES = dxf_parser.c dxf_loader.c \ dxf_load_distinct.c dxf_load_mixed.c \ dxf_writer.c MOSTLYCLEANFILES = *.gcna *.gcno *.gcda all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/dxf/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/dxf/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } libdxf.la: $(libdxf_la_OBJECTS) $(libdxf_la_DEPENDENCIES) $(EXTRA_libdxf_la_DEPENDENCIES) $(LINK) $(libdxf_la_OBJECTS) $(libdxf_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dxf_load_distinct.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dxf_load_mixed.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dxf_loader.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dxf_parser.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dxf_writer.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: $(HEADERS) $(SOURCES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES cscopelist ctags \ distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libspatialite-4.1.1/src/dxf/dxf_loader.c0000664000175000017500000032323112163502133015111 00000000000000/* dxf_loader.c -- implements DXF support [loding features into the DB - common methods] version 4.1, 2013 May 14 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include #include #include #include #include #include #include "dxf_private.h" #if defined(_WIN32) && !defined(__MINGW32__) #define strcasecmp _stricmp #endif /* not WIN32 */ DXF_PRIVATE int create_text_stmt (sqlite3 * handle, const char *name, sqlite3_stmt ** xstmt) { /* creating the "Text" insert statement */ char *sql; int ret; sqlite3_stmt *stmt; char *xname; *xstmt = NULL; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("INSERT INTO \"%s\" (feature_id, filename, layer, label, rotation, geometry) " "VALUES (NULL, ?, ?, ?, ?, ?)", xname); free (xname); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE STATEMENT %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } *xstmt = stmt; return 1; } DXF_PRIVATE int create_point_stmt (sqlite3 * handle, const char *name, sqlite3_stmt ** xstmt) { /* creating the "Point" insert statement */ char *sql; int ret; sqlite3_stmt *stmt; char *xname; *xstmt = NULL; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("INSERT INTO \"%s\" (feature_id, filename, layer, geometry) " "VALUES (NULL, ?, ?, ?)", xname); free (xname); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE STATEMENT %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } *xstmt = stmt; return 1; } DXF_PRIVATE int create_line_stmt (sqlite3 * handle, const char *name, sqlite3_stmt ** xstmt) { /* creating the "Line" insert statement */ char *sql; int ret; sqlite3_stmt *stmt; char *xname; *xstmt = NULL; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("INSERT INTO \"%s\" (feature_id, filename, layer, geometry) " "VALUES (NULL, ?, ?, ?)", xname); free (xname); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE STATEMENT %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } *xstmt = stmt; return 1; } DXF_PRIVATE int create_polyg_stmt (sqlite3 * handle, const char *name, sqlite3_stmt ** xstmt) { /* creating the "Polyg" insert statement */ char *sql; int ret; sqlite3_stmt *stmt; char *xname; *xstmt = NULL; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("INSERT INTO \"%s\" (feature_id, filename, layer, geometry) " "VALUES (NULL, ?, ?, ?)", xname); free (xname); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE STATEMENT %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } *xstmt = stmt; return 1; } DXF_PRIVATE int create_hatch_boundary_stmt (sqlite3 * handle, const char *name, sqlite3_stmt ** xstmt) { /* creating the "Hatch-Boundary" insert statement */ char *sql; int ret; sqlite3_stmt *stmt; char *xname; *xstmt = NULL; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("INSERT INTO \"%s\" (feature_id, filename, layer, geometry) " "VALUES (NULL, ?, ?, ?)", xname); free (xname); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE STATEMENT %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } *xstmt = stmt; return 1; } DXF_PRIVATE int create_hatch_pattern_stmt (sqlite3 * handle, const char *name, sqlite3_stmt ** xstmt) { /* creating the "Hatch-Pattern" insert statement */ char *sql; int ret; sqlite3_stmt *stmt; char *xpattern; char *pattern; *xstmt = NULL; pattern = sqlite3_mprintf ("%s_pattern", name); xpattern = gaiaDoubleQuotedSql (pattern); sql = sqlite3_mprintf ("INSERT INTO \"%s\" (feature_id, filename, layer, geometry) " "VALUES (?, ?, ?, ?)", xpattern); free (xpattern); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE STATEMENT %s error: %s\n", pattern, sqlite3_errmsg (handle)); return 0; } sqlite3_free (pattern); *xstmt = stmt; return 1; } DXF_PRIVATE int create_insert_stmt (sqlite3 * handle, const char *name, sqlite3_stmt ** xstmt) { /* creating the "Insert" insert statement */ char *sql; int ret; sqlite3_stmt *stmt; char *xname; *xstmt = NULL; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("INSERT INTO \"%s\" (feature_id, filename, layer, block_id, x, y, z, scale_x, scale_y, scale_z, angle) " "VALUES (NULL, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", xname); free (xname); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE STATEMENT %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } *xstmt = stmt; return 1; } DXF_PRIVATE int create_extra_stmt (sqlite3 * handle, const char *extra_name, sqlite3_stmt ** xstmt) { /* creating the Extra Attributes insert statement */ char *sql; int ret; sqlite3_stmt *stmt; char *xextra_name; *xstmt = NULL; xextra_name = gaiaDoubleQuotedSql (extra_name); sql = sqlite3_mprintf ("INSERT INTO \"%s\" (attr_id, feature_id, attr_key, attr_value) " "VALUES (NULL, ?, ?, ?)", xextra_name); free (xextra_name); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE STATEMENT %s error: %s\n", extra_name, sqlite3_errmsg (handle)); return 0; } *xstmt = stmt; return 1; } DXF_PRIVATE char * create_extra_attr_table_name (const char *name) { /* creating the Extra Attributes table name [Mixed Layers] */ return sqlite3_mprintf ("%s_attr", name); } DXF_PRIVATE int check_text_table (sqlite3 * handle, const char *name, int srid, int is3D) { /* checking if a Text table already exists */ char *sql; int ok_geom = 0; int ok_data = 0; int ret; int i; char *xname; char **results; int n_rows; int n_columns; int metadata_version = checkSpatialMetaData (handle); if (metadata_version == 1) { /* legacy metadata style <= v.3.1.0 */ int ok_srid = 0; int ok_type = 0; int dims2d = 0; int dims3d = 0; sql = sqlite3_mprintf ("SELECT srid, type, coord_dimension " "FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", name, "geometry"); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (n_rows > 0) { for (i = 1; i <= n_rows; i++) { if (atoi (results[(i * n_columns) + 0]) == srid) ok_srid = 1; if (strcmp ("POINT", results[(i * n_columns) + 1]) == 0) ok_type = 1; if (strcmp ("XY", results[(i * n_columns) + 2]) == 0) dims2d = 1; if (strcmp ("XYZ", results[(i * n_columns) + 2]) == 0) dims3d = 1; } } sqlite3_free_table (results); if (ok_srid && ok_type) { if (is3D && dims3d) ok_geom = 1; if (!is3D && dims2d) ok_geom = 1; } } else { /* current metadata style >= v.4.0.0 */ int ok_srid = 0; int ok_type = 0; sql = sqlite3_mprintf ("SELECT srid, geometry_type " "FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", name, "geometry"); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (n_rows > 0) { for (i = 1; i <= n_rows; i++) { if (atoi (results[(i * n_columns) + 0]) == srid) ok_srid = 1; if (atoi (results[(i * n_columns) + 1]) == 1 && !is3D) ok_type = 1; if (atoi (results[(i * n_columns) + 1]) == 1001 && is3D) ok_type = 1; } } sqlite3_free_table (results); if (ok_srid && ok_type) { ok_geom = 1; } } xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); free (xname); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (n_rows > 0) { int ok_feature_id = 0; int ok_filename = 0; int ok_layer = 0; int ok_label = 0; int ok_rotation = 0; for (i = 1; i <= n_rows; i++) { if (strcasecmp ("feature_id", results[(i * n_columns) + 1]) == 0) ok_feature_id = 1; if (strcasecmp ("filename", results[(i * n_columns) + 1]) == 0) ok_filename = 1; if (strcasecmp ("layer", results[(i * n_columns) + 1]) == 0) ok_layer = 1; if (strcasecmp ("label", results[(i * n_columns) + 1]) == 0) ok_label = 1; if (strcasecmp ("rotation", results[(i * n_columns) + 1]) == 0) ok_rotation = 1; } if (ok_feature_id && ok_filename && ok_layer && ok_label && ok_rotation) ok_data = 1; } sqlite3_free_table (results); if (ok_geom && ok_data) return 1; return 0; } DXF_PRIVATE int check_point_table (sqlite3 * handle, const char *name, int srid, int is3D) { /* checking if a Point table already exists */ char *sql; int ok_geom = 0; int ok_data = 0; int ret; int i; char *xname; char **results; int n_rows; int n_columns; int metadata_version = checkSpatialMetaData (handle); if (metadata_version == 1) { /* legacy metadata style <= v.3.1.0 */ int ok_srid = 0; int ok_type = 0; int dims2d = 0; int dims3d = 0; sql = sqlite3_mprintf ("SELECT srid, type, coord_dimension " "FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", name, "geometry"); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (n_rows > 0) { for (i = 1; i <= n_rows; i++) { if (atoi (results[(i * n_columns) + 0]) == srid) ok_srid = 1; if (strcmp ("POINT", results[(i * n_columns) + 1]) == 0) ok_type = 1; if (strcmp ("XY", results[(i * n_columns) + 2]) == 0) dims2d = 1; if (strcmp ("XYZ", results[(i * n_columns) + 2]) == 0) dims3d = 1; } } sqlite3_free_table (results); if (ok_srid && ok_type) { if (is3D && dims3d) ok_geom = 1; if (!is3D && dims2d) ok_geom = 1; } } else { /* current metadata style >= v.4.0.0 */ int ok_srid = 0; int ok_type = 0; sql = sqlite3_mprintf ("SELECT srid, geometry_type " "FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", name, "geometry"); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (n_rows > 0) { for (i = 1; i <= n_rows; i++) { if (atoi (results[(i * n_columns) + 0]) == srid) ok_srid = 1; if (atoi (results[(i * n_columns) + 1]) == 1 && !is3D) ok_type = 1; if (atoi (results[(i * n_columns) + 1]) == 1001 && is3D) ok_type = 1; } } sqlite3_free_table (results); if (ok_srid && ok_type) { ok_geom = 1; } } xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); free (xname); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (n_rows > 0) { int ok_feature_id = 0; int ok_filename = 0; int ok_layer = 0; for (i = 1; i <= n_rows; i++) { if (strcasecmp ("feature_id", results[(i * n_columns) + 1]) == 0) ok_feature_id = 1; if (strcasecmp ("filename", results[(i * n_columns) + 1]) == 0) ok_filename = 1; if (strcasecmp ("layer", results[(i * n_columns) + 1]) == 0) ok_layer = 1; } if (ok_feature_id && ok_filename && ok_layer) ok_data = 1; } sqlite3_free_table (results); if (ok_geom && ok_data) return 1; return 0; } DXF_PRIVATE int check_line_table (sqlite3 * handle, const char *name, int srid, int is3D) { /* checking if a Line table already exists */ char *sql; int ok_geom = 0; int ok_data = 0; int ret; int i; char *xname; char **results; int n_rows; int n_columns; int metadata_version = checkSpatialMetaData (handle); if (metadata_version == 1) { /* legacy metadata style <= v.3.1.0 */ int ok_srid = 0; int ok_type = 0; int dims2d = 0; int dims3d = 0; sql = sqlite3_mprintf ("SELECT srid, type, coord_dimension " "FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", name, "geometry"); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (n_rows > 0) { for (i = 1; i <= n_rows; i++) { if (atoi (results[(i * n_columns) + 0]) == srid) ok_srid = 1; if (strcmp ("LINESTRING", results[(i * n_columns) + 1]) == 0) ok_type = 1; if (strcmp ("XY", results[(i * n_columns) + 2]) == 0) dims2d = 1; if (strcmp ("XYZ", results[(i * n_columns) + 2]) == 0) dims3d = 1; } } sqlite3_free_table (results); if (ok_srid && ok_type) { if (is3D && dims3d) ok_geom = 1; if (!is3D && dims2d) ok_geom = 1; } } else { /* current metadata style >= v.4.0.0 */ int ok_srid = 0; int ok_type = 0; sql = sqlite3_mprintf ("SELECT srid, geometry_type " "FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", name, "geometry"); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (n_rows > 0) { for (i = 1; i <= n_rows; i++) { if (atoi (results[(i * n_columns) + 0]) == srid) ok_srid = 1; if (atoi (results[(i * n_columns) + 1]) == 2 && !is3D) ok_type = 1; if (atoi (results[(i * n_columns) + 1]) == 1002 && is3D) ok_type = 1; } } sqlite3_free_table (results); if (ok_srid && ok_type) { ok_geom = 1; } } xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); free (xname); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (n_rows > 0) { int ok_feature_id = 0; int ok_filename = 0; int ok_layer = 0; for (i = 1; i <= n_rows; i++) { if (strcasecmp ("feature_id", results[(i * n_columns) + 1]) == 0) ok_feature_id = 1; if (strcasecmp ("filename", results[(i * n_columns) + 1]) == 0) ok_filename = 1; if (strcasecmp ("layer", results[(i * n_columns) + 1]) == 0) ok_layer = 1; } if (ok_feature_id && ok_filename && ok_layer) ok_data = 1; } sqlite3_free_table (results); if (ok_geom && ok_data) return 1; return 0; } DXF_PRIVATE int check_polyg_table (sqlite3 * handle, const char *name, int srid, int is3D) { /* checking if a Polygon table already exists */ char *sql; int ok_geom = 0; int ok_data = 0; int ret; int i; char *xname; char **results; int n_rows; int n_columns; int metadata_version = checkSpatialMetaData (handle); if (metadata_version == 1) { /* legacy metadata style <= v.3.1.0 */ int ok_srid = 0; int ok_type = 0; int dims2d = 0; int dims3d = 0; sql = sqlite3_mprintf ("SELECT srid, type, coord_dimension " "FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", name, "geometry"); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (n_rows > 0) { for (i = 1; i <= n_rows; i++) { if (atoi (results[(i * n_columns) + 0]) == srid) ok_srid = 1; if (strcmp ("POLYGON", results[(i * n_columns) + 1]) == 0) ok_type = 1; if (strcmp ("XY", results[(i * n_columns) + 2]) == 0) dims2d = 1; if (strcmp ("XYZ", results[(i * n_columns) + 2]) == 0) dims3d = 1; } } sqlite3_free_table (results); if (ok_srid && ok_type) { if (is3D && dims3d) ok_geom = 1; if (!is3D && dims2d) ok_geom = 1; } } else { /* current metadata style >= v.4.0.0 */ int ok_srid = 0; int ok_type = 0; sql = sqlite3_mprintf ("SELECT srid, geometry_type " "FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", name, "geometry"); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (n_rows > 0) { for (i = 1; i <= n_rows; i++) { if (atoi (results[(i * n_columns) + 0]) == srid) ok_srid = 1; if (atoi (results[(i * n_columns) + 1]) == 3 && !is3D) ok_type = 1; if (atoi (results[(i * n_columns) + 1]) == 1003 && is3D) ok_type = 1; } } sqlite3_free_table (results); if (ok_srid && ok_type) { ok_geom = 1; } } xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); free (xname); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (n_rows > 0) { int ok_feature_id = 0; int ok_filename = 0; int ok_layer = 0; for (i = 1; i <= n_rows; i++) { if (strcasecmp ("feature_id", results[(i * n_columns) + 1]) == 0) ok_feature_id = 1; if (strcasecmp ("filename", results[(i * n_columns) + 1]) == 0) ok_filename = 1; if (strcasecmp ("layer", results[(i * n_columns) + 1]) == 0) ok_layer = 1; } if (ok_feature_id && ok_filename && ok_layer) ok_data = 1; } sqlite3_free_table (results); if (ok_geom && ok_data) return 1; return 0; } DXF_PRIVATE int check_hatch_tables (sqlite3 * handle, const char *name, int srid) { /* checking if Hatch tables already exist */ char *sql; int ok_geom = 0; int ok_pdata = 0; int ok_bdata = 0; int ret; int i; char *xname; char *pattern = sqlite3_mprintf ("%s_pattern", name); char *xpattern; char **results; int n_rows; int n_columns; int metadata_version = checkSpatialMetaData (handle); if (metadata_version == 1) { /* legacy metadata style <= v.3.1.0 */ int ok_bsrid = 0; int ok_btype = 0; int bdims2d = 0; int ok_psrid = 0; int ok_ptype = 0; int pdims2d = 0; sql = sqlite3_mprintf ("SELECT srid, type, coord_dimension " "FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", name, "geometry"); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto stop; if (n_rows > 0) { for (i = 1; i <= n_rows; i++) { if (atoi (results[(i * n_columns) + 0]) == srid) ok_bsrid = 1; if (strcmp ("MULTIPOLYGON", results[(i * n_columns) + 1]) == 0) ok_btype = 1; if (strcmp ("XY", results[(i * n_columns) + 2]) == 0) bdims2d = 1; } } sqlite3_free_table (results); sql = sqlite3_mprintf ("SELECT srid, type, coord_dimension " "FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", pattern, "geometry"); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto stop; if (n_rows > 0) { for (i = 1; i <= n_rows; i++) { if (atoi (results[(i * n_columns) + 0]) == srid) ok_psrid = 1; if (strcmp ("MULTILINESTRING", results[(i * n_columns) + 1]) == 0) ok_ptype = 1; if (strcmp ("XY", results[(i * n_columns) + 2]) == 0) pdims2d = 1; } } sqlite3_free_table (results); if (ok_bsrid && ok_btype && bdims2d && ok_psrid && ok_ptype && pdims2d) ok_geom = 1; } else { /* current metadata style >= v.4.0.0 */ int ok_psrid = 0; int ok_ptype = 0; int ok_bsrid = 0; int ok_btype = 0; sql = sqlite3_mprintf ("SELECT srid, geometry_type " "FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", name, "geometry"); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto stop; if (n_rows > 0) { for (i = 1; i <= n_rows; i++) { if (atoi (results[(i * n_columns) + 0]) == srid) ok_bsrid = 1; if (atoi (results[(i * n_columns) + 1]) == 6) ok_btype = 1; } } sqlite3_free_table (results); sql = sqlite3_mprintf ("SELECT srid, geometry_type " "FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", pattern, "geometry"); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto stop; if (n_rows > 0) { for (i = 1; i <= n_rows; i++) { if (atoi (results[(i * n_columns) + 0]) == srid) ok_psrid = 1; if (atoi (results[(i * n_columns) + 1]) == 5) ok_ptype = 1; } } sqlite3_free_table (results); if (ok_bsrid && ok_btype && ok_psrid && ok_ptype) ok_geom = 1; } xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); free (xname); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto stop; if (n_rows > 0) { int ok_feature_id = 0; int ok_filename = 0; int ok_layer = 0; for (i = 1; i <= n_rows; i++) { if (strcasecmp ("feature_id", results[(i * n_columns) + 1]) == 0) ok_feature_id = 1; if (strcasecmp ("filename", results[(i * n_columns) + 1]) == 0) ok_filename = 1; if (strcasecmp ("layer", results[(i * n_columns) + 1]) == 0) ok_layer = 1; } if (ok_feature_id && ok_filename && ok_layer) ok_bdata = 1; } sqlite3_free_table (results); xpattern = gaiaDoubleQuotedSql (pattern); sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xpattern); free (xpattern); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto stop; if (n_rows > 0) { int ok_feature_id = 0; int ok_filename = 0; int ok_layer = 0; for (i = 1; i <= n_rows; i++) { if (strcasecmp ("feature_id", results[(i * n_columns) + 1]) == 0) ok_feature_id = 1; if (strcasecmp ("filename", results[(i * n_columns) + 1]) == 0) ok_filename = 1; if (strcasecmp ("layer", results[(i * n_columns) + 1]) == 0) ok_layer = 1; } if (ok_feature_id && ok_filename && ok_layer) ok_pdata = 1; } sqlite3_free_table (results); if (ok_geom && ok_bdata && ok_pdata) { sqlite3_free (pattern); return 1; } stop: sqlite3_free (pattern); return 0; } DXF_PRIVATE int check_insert_table (sqlite3 * handle, const char *name) { /* checking if an Insert (indirect refs) table already exists */ char *sql; int ok_data = 0; int ret; int i; char *xname; char **results; int n_rows; int n_columns; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); free (xname); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (n_rows > 0) { int ok_feature_id = 0; int ok_filename = 0; int ok_layer = 0; int ok_block_id = 0; int ok_x = 0; int ok_y = 0; int ok_z = 0; int ok_scale_x = 0; int ok_scale_y = 0; int ok_scale_z = 0; int ok_angle = 0; for (i = 1; i <= n_rows; i++) { if (strcasecmp ("feature_id", results[(i * n_columns) + 1]) == 0) ok_feature_id = 1; if (strcasecmp ("filename", results[(i * n_columns) + 1]) == 0) ok_filename = 1; if (strcasecmp ("layer", results[(i * n_columns) + 1]) == 0) ok_layer = 1; if (strcasecmp ("block_id", results[(i * n_columns) + 1]) == 0) ok_block_id = 1; if (strcasecmp ("x", results[(i * n_columns) + 1]) == 0) ok_x = 1; if (strcasecmp ("y", results[(i * n_columns) + 1]) == 0) ok_y = 1; if (strcasecmp ("z", results[(i * n_columns) + 1]) == 0) ok_z = 1; if (strcasecmp ("scale_x", results[(i * n_columns) + 1]) == 0) ok_scale_x = 1; if (strcasecmp ("scale_y", results[(i * n_columns) + 1]) == 0) ok_scale_y = 1; if (strcasecmp ("scale_z", results[(i * n_columns) + 1]) == 0) ok_scale_z = 1; if (strcasecmp ("angle", results[(i * n_columns) + 1]) == 0) ok_angle = 1; } if (ok_feature_id && ok_filename && ok_layer && ok_block_id && ok_x && ok_y && ok_z && ok_scale_x && ok_scale_y && ok_scale_z && ok_angle) ok_data = 1; } sqlite3_free_table (results); if (ok_data) return 1; return 0; } DXF_PRIVATE int check_extra_attr_table (sqlite3 * handle, const char *name) { /* checking if an Extra Attributes table already exists */ char *sql; int ok_data = 0; int ret; int i; char *xname; char **results; int n_rows; int n_columns; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); free (xname); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (n_rows > 0) { int ok_attr_id = 0; int ok_feature_id = 0; int ok_attr_key = 0; int ok_attr_value = 0; for (i = 1; i <= n_rows; i++) { if (strcasecmp ("attr_id", results[(i * n_columns) + 1]) == 0) ok_attr_id = 1; if (strcasecmp ("feature_id", results[(i * n_columns) + 1]) == 0) ok_feature_id = 1; if (strcasecmp ("attr_key", results[(i * n_columns) + 1]) == 0) ok_attr_key = 1; if (strcasecmp ("attr_value", results[(i * n_columns) + 1]) == 0) ok_attr_value = 1; } if (ok_attr_id && ok_feature_id && ok_attr_key && ok_attr_value) ok_data = 1; } sqlite3_free_table (results); if (ok_data) return 1; return 0; } DXF_PRIVATE int create_block_text_stmt (sqlite3 * handle, const char *name, sqlite3_stmt ** xstmt) { /* creating the "Block-Text" insert statement */ char *sql; int ret; sqlite3_stmt *stmt; char *xname; *xstmt = NULL; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("INSERT INTO \"%s\" (feature_id, filename, layer, block_id, label, rotation, geometry) " "VALUES (NULL, ?, ?, ?, ?, ?, ?)", xname); free (xname); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE STATEMENT %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } *xstmt = stmt; return 1; } static int create_block_point_stmt (sqlite3 * handle, const char *name, sqlite3_stmt ** xstmt) { /* creating the "Block-Point" insert statement */ char *sql; int ret; sqlite3_stmt *stmt; char *xname; *xstmt = NULL; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("INSERT INTO \"%s\" (feature_id, filename, layer, block_id, geometry) " "VALUES (NULL, ?, ?, ?, ?)", xname); free (xname); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE STATEMENT %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } *xstmt = stmt; return 1; } static int create_block_line_stmt (sqlite3 * handle, const char *name, sqlite3_stmt ** xstmt) { /* creating the "Block-Line" insert statement */ char *sql; int ret; sqlite3_stmt *stmt; char *xname; *xstmt = NULL; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("INSERT INTO \"%s\" (feature_id, filename, layer, block_id, geometry) " "VALUES (NULL, ?, ?, ?, ?)", xname); free (xname); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE STATEMENT %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } *xstmt = stmt; return 1; } static int create_block_polyg_stmt (sqlite3 * handle, const char *name, sqlite3_stmt ** xstmt) { /* creating the "Block-Polyg" insert statement */ char *sql; int ret; sqlite3_stmt *stmt; char *xname; *xstmt = NULL; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("INSERT INTO \"%s\" (feature_id, filename, layer, block_id, geometry) " "VALUES (NULL, ?, ?, ?, ?)", xname); free (xname); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE STATEMENT %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } *xstmt = stmt; return 1; } static int create_block_hatch_boundary_stmt (sqlite3 * handle, const char *name, sqlite3_stmt ** xstmt) { /* creating the "Block-Hatch-Boundary" insert statement */ char *sql; int ret; sqlite3_stmt *stmt; char *xname; *xstmt = NULL; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("INSERT INTO \"%s\" (feature_id, filename, layer, block_id, geometry) " "VALUES (NULL, ?, ?, ?, ?)", xname); free (xname); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE STATEMENT %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } *xstmt = stmt; return 1; } static int create_block_hatch_pattern_stmt (sqlite3 * handle, const char *name, sqlite3_stmt ** xstmt) { /* creating the "Block-Hatch-Pattern" insert statement */ char *sql; int ret; sqlite3_stmt *stmt; char *xpattern; char *pattern; *xstmt = NULL; pattern = sqlite3_mprintf ("%s_pattern", name); xpattern = gaiaDoubleQuotedSql (pattern); sql = sqlite3_mprintf ("INSERT INTO \"%s\" (feature_id, filename, layer, block_id, geometry) " "VALUES (?, ?, ?, ?, ?)", xpattern); free (xpattern); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE STATEMENT %s error: %s\n", pattern, sqlite3_errmsg (handle)); return 0; } sqlite3_free (pattern); *xstmt = stmt; return 1; } static int check_block_text_table (sqlite3 * handle, const char *name, int srid, int is3D) { /* checking if a Block-Text table already exists */ char *sql; int ok_geom = 0; int ok_data = 0; int ret; int i; char *xname; char **results; int n_rows; int n_columns; int metadata_version = checkSpatialMetaData (handle); if (metadata_version == 1) { /* legacy metadata style <= v.3.1.0 */ int ok_srid = 0; int ok_type = 0; int dims2d = 0; int dims3d = 0; sql = sqlite3_mprintf ("SELECT srid, type, coord_dimension " "FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", name, "geometry"); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (n_rows > 0) { for (i = 1; i <= n_rows; i++) { if (atoi (results[(i * n_columns) + 0]) == srid) ok_srid = 1; if (strcmp ("POINT", results[(i * n_columns) + 1]) == 0) ok_type = 1; if (strcmp ("XY", results[(i * n_columns) + 2]) == 0) dims2d = 1; if (strcmp ("XYZ", results[(i * n_columns) + 2]) == 0) dims3d = 1; } } sqlite3_free_table (results); if (ok_srid && ok_type) { if (is3D && dims3d) ok_geom = 1; if (!is3D && dims2d) ok_geom = 1; } } else { /* current metadata style >= v.4.0.0 */ int ok_srid = 0; int ok_type = 0; sql = sqlite3_mprintf ("SELECT srid, geometry_type " "FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", name, "geometry"); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (n_rows > 0) { for (i = 1; i <= n_rows; i++) { if (atoi (results[(i * n_columns) + 0]) == srid) ok_srid = 1; if (atoi (results[(i * n_columns) + 1]) == 1 && !is3D) ok_type = 1; if (atoi (results[(i * n_columns) + 1]) == 1001 && is3D) ok_type = 1; } } sqlite3_free_table (results); if (ok_srid && ok_type) { ok_geom = 1; } } xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); free (xname); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (n_rows > 0) { int ok_feature_id = 0; int ok_filename = 0; int ok_layer = 0; int ok_block_id = 0; int ok_label = 0; int ok_rotation = 0; for (i = 1; i <= n_rows; i++) { if (strcasecmp ("feature_id", results[(i * n_columns) + 1]) == 0) ok_feature_id = 1; if (strcasecmp ("filename", results[(i * n_columns) + 1]) == 0) ok_filename = 1; if (strcasecmp ("layer", results[(i * n_columns) + 1]) == 0) ok_layer = 1; if (strcasecmp ("block_id", results[(i * n_columns) + 1]) == 0) ok_block_id = 1; if (strcasecmp ("label", results[(i * n_columns) + 1]) == 0) ok_label = 1; if (strcasecmp ("rotation", results[(i * n_columns) + 1]) == 0) ok_rotation = 1; } if (ok_feature_id && ok_filename && ok_layer && ok_block_id && ok_label && ok_rotation) ok_data = 1; } sqlite3_free_table (results); if (ok_geom && ok_data) return 1; return 0; } static int has_viewgeom_rdonly (sqlite3 * handle) { /* testing if "views_geometry_columns" has a "read_only" column */ int has_rdonly = 0; int ret; int i; char **results; int n_rows; int n_columns; char *sql = "PRAGMA table_info(views_geometry_columns)"; ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); if (ret != SQLITE_OK) return 0; if (n_rows > 0) { for (i = 1; i <= n_rows; i++) { if (strcasecmp ("read_only", results[(i * n_columns) + 1]) == 0) has_rdonly = 1; } } sqlite3_free_table (results); return has_rdonly; } DXF_PRIVATE int create_instext_table (sqlite3 * handle, const char *name, const char *block, int is3d, sqlite3_stmt ** xstmt) { /* attempting to create the "Insert-mixed-Text" table */ char *sql; int ret; sqlite3_stmt *stmt; char *xname; char *idx_name; char *xidx_name; char *view; char *xview; char *xblock; *xstmt = NULL; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " filename TEXT NOT NULL, \n" " layer TEXT NOT NULL,\n" " block_id TEXT NOT NULL,\n" " x DOUBLE NOT NULL,\n" " y DOUBLE NOT NULL,\n" " z DOUBLE NOT NULL,\n" " scale_x DOUBLE NOT NULL,\n" " scale_y DOUBLE NOT NULL,\n" " scale_z DOUBLE NOT NULL,\n" " angle DOUBLE NOT NULL)", xname); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } idx_name = sqlite3_mprintf ("idx_%s", name); xidx_name = gaiaDoubleQuotedSql (idx_name); xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (layer, block_id)", xidx_name, xname); free (xidx_name); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (idx_name); view = sqlite3_mprintf ("%s_view", name); xview = gaiaDoubleQuotedSql (view); xname = gaiaDoubleQuotedSql (name); xblock = gaiaDoubleQuotedSql (block); if (is3d) { sql = sqlite3_mprintf ("CREATE VIEW \"%s\" AS " "SELECT b.ROWID AS rowid, i.feature_id AS feature_id, " "i.filename AS filename, i.layer AS layer, i.block_id AS block_id, " "ST_Translate(ScaleCoords(RotateCoords(b.geometry, i.angle), " "i.scale_x, i.scale_y), i.x, i.y, i.z) AS geometry " "FROM \"%s\" AS i JOIN \"%s\" AS b ON " "(b.layer = i.layer AND b.block_id = i.block_id)", xview, xname, xblock); } else { sql = sqlite3_mprintf ("CREATE VIEW \"%s\" AS " "SELECT b.ROWID AS rowid, i.feature_id AS feature_id, " "i.filename AS filename, i.layer AS layer, i.block_id AS block_id, " "ShiftCoords(ScaleCoords(RotateCoords(b.geometry, i.angle), " "i.scale_x, i.scale_y), i.x, i.y) AS geometry " "FROM \"%s\" AS i JOIN \"%s\" AS b ON " "(b.layer = i.layer AND b.block_id = i.block_id)", xview, xname, xblock); } free (xname); free (xview); free (xblock); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW %s error: %s\n", view, sqlite3_errmsg (handle)); return 0; } if (has_viewgeom_rdonly (handle)) sql = sqlite3_mprintf ("INSERT INTO views_geometry_columns (" "view_name, view_geometry, view_rowid, f_table_name, " "f_geometry_column, read_only) VALUES (Lower(%Q), Lower(%Q), " "Lower(%Q), Lower(%Q), Lower(%Q), 1)", view, "geometry", "rowid", block, "geometry"); else sql = sqlite3_mprintf ("INSERT INTO views_geometry_columns (" "view_name, view_geometry, view_rowid, f_table_name, " "f_geometry_column) VALUES (Lower(%Q), Lower(%Q), " "Lower(%Q), Lower(%Q), Lower(%Q))", view, "geometry", "rowid", block, "geometry"); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("Register Spatial VIEW %s error: %s\n", view, sqlite3_errmsg (handle)); return 0; } sqlite3_free (view); if (!create_insert_stmt (handle, name, &stmt)) return 0; *xstmt = stmt; return 1; } DXF_PRIVATE int create_inspoint_table (sqlite3 * handle, const char *name, const char *block, int is3d, sqlite3_stmt ** xstmt) { /* attempting to create the "Insert-mixed-Point" table */ char *sql; int ret; sqlite3_stmt *stmt; char *xname; char *idx_name; char *xidx_name; char *view; char *xview; char *xblock; *xstmt = NULL; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " filename TEXT NOT NULL, \n" " layer TEXT NOT NULL,\n" " block_id TEXT NOT NULL,\n" " x DOUBLE NOT NULL,\n" " y DOUBLE NOT NULL,\n" " z DOUBLE NOT NULL,\n" " scale_x DOUBLE NOT NULL,\n" " scale_y DOUBLE NOT NULL,\n" " scale_z DOUBLE NOT NULL,\n" " angle DOUBLE NOT NULL)", xname); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } idx_name = sqlite3_mprintf ("idx_%s", name); xidx_name = gaiaDoubleQuotedSql (idx_name); xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (layer, block_id)", xidx_name, xname); free (xidx_name); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (idx_name); view = sqlite3_mprintf ("%s_view", name); xview = gaiaDoubleQuotedSql (view); xname = gaiaDoubleQuotedSql (name); xblock = gaiaDoubleQuotedSql (block); if (is3d) { sql = sqlite3_mprintf ("CREATE VIEW \"%s\" AS " "SELECT b.ROWID AS rowid, i.feature_id AS feature_id, " "i.filename AS filename, i.layer AS layer, i.block_id AS block_id, " "ST_Translate(ScaleCoords(RotateCoords(b.geometry, i.angle), " "i.scale_x, i.scale_y), i.x, i.y, i.z) AS geometry " "FROM \"%s\" AS i JOIN \"%s\" AS b ON " "(b.layer = i.layer AND b.block_id = i.block_id)", xview, xname, xblock); } else { sql = sqlite3_mprintf ("CREATE VIEW \"%s\" AS " "SELECT b.ROWID as rowid, i.feature_id AS feature_id, " "i.filename AS filename, i.layer AS layer, i.block_id AS block_id, " "ShiftCoords(ScaleCoords(RotateCoords(b.geometry, i.angle), " "i.scale_x, i.scale_y), i.x, i.y) AS geometry " "FROM \"%s\" AS i JOIN \"%s\" AS b ON " "(b.layer = i.layer AND b.block_id = i.block_id)", xview, xname, xblock); } free (xname); free (xview); free (xblock); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW %s error: %s\n", view, sqlite3_errmsg (handle)); return 0; } if (has_viewgeom_rdonly (handle)) sql = sqlite3_mprintf ("INSERT INTO views_geometry_columns (" "view_name, view_geometry, view_rowid, f_table_name, " "f_geometry_column, read_only) VALUES (Lower(%Q), Lower(%Q), " "Lower(%Q), Lower(%Q), Lower(%Q), 1)", view, "geometry", "rowid", block, "geometry"); else sql = sqlite3_mprintf ("INSERT INTO views_geometry_columns (" "view_name, view_geometry, view_rowid, f_table_name, " "f_geometry_column) VALUES (Lower(%Q), Lower(%Q), " "Lower(%Q), Lower(%Q), Lower(%Q))", view, "geometry", "rowid", block, "geometry"); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("Register Spatial VIEW %s error: %s\n", view, sqlite3_errmsg (handle)); return 0; } sqlite3_free (view); if (!create_insert_stmt (handle, name, &stmt)) return 0; *xstmt = stmt; return 1; } DXF_PRIVATE int create_insline_table (sqlite3 * handle, const char *name, const char *block, int is3d, sqlite3_stmt ** xstmt) { /* attempting to create the "Insert-mixed-Line" table */ char *sql; int ret; sqlite3_stmt *stmt; char *xname; char *idx_name; char *xidx_name; char *view; char *xview; char *xblock; *xstmt = NULL; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " filename TEXT NOT NULL, \n" " layer TEXT NOT NULL,\n" " block_id TEXT NOT NULL,\n" " x DOUBLE NOT NULL,\n" " y DOUBLE NOT NULL,\n" " z DOUBLE NOT NULL,\n" " scale_x DOUBLE NOT NULL,\n" " scale_y DOUBLE NOT NULL,\n" " scale_z DOUBLE NOT NULL,\n" " angle DOUBLE NOT NULL)", xname); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } idx_name = sqlite3_mprintf ("idx_%s", name); xidx_name = gaiaDoubleQuotedSql (idx_name); xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (layer, block_id)", xidx_name, xname); free (xidx_name); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (idx_name); view = sqlite3_mprintf ("%s_view", name); xview = gaiaDoubleQuotedSql (view); xname = gaiaDoubleQuotedSql (name); xblock = gaiaDoubleQuotedSql (block); if (is3d) { sql = sqlite3_mprintf ("CREATE VIEW \"%s\" AS " "SELECT b.ROWID AS rowid, i.feature_id AS feature_id, " "i.filename AS filename, i.layer AS layer, i.block_id AS block_id, " "ST_Translate(ScaleCoords(RotateCoords(b.geometry, i.angle), " "i.scale_x, i.scale_y), i.x, i.y, i.z) AS geometry " "FROM \"%s\" AS i JOIN \"%s\" AS b ON " "(b.layer = i.layer AND b.block_id = i.block_id)", xview, xname, xblock); } else { sql = sqlite3_mprintf ("CREATE VIEW \"%s\" AS " "SELECT b.ROWID AS rowid, i.feature_id AS feature_id, " "i.filename AS filename, i.layer AS layer, i.block_id AS block_id, " "ShiftCoords(ScaleCoords(RotateCoords(b.geometry, i.angle), " "i.scale_x, i.scale_y), i.x, i.y) AS geometry " "FROM \"%s\" AS i JOIN \"%s\" AS b ON " "(b.layer = i.layer AND b.block_id = i.block_id)", xview, xname, xblock); } free (xname); free (xview); free (xblock); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW %s error: %s\n", view, sqlite3_errmsg (handle)); return 0; } if (has_viewgeom_rdonly (handle)) sql = sqlite3_mprintf ("INSERT INTO views_geometry_columns (" "view_name, view_geometry, view_rowid, f_table_name, " "f_geometry_column, read_only) VALUES (Lower(%Q), Lower(%Q), " "Lower(%Q), Lower(%Q), Lower(%Q), 1)", view, "geometry", "rowid", block, "geometry"); else sql = sqlite3_mprintf ("INSERT INTO views_geometry_columns (" "view_name, view_geometry, view_rowid, f_table_name, " "f_geometry_column) VALUES (Lower(%Q), Lower(%Q), " "Lower(%Q), Lower(%Q), Lower(%Q))", view, "geometry", "rowid", block, "geometry"); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("Register Spatial VIEW %s error: %s\n", view, sqlite3_errmsg (handle)); return 0; } sqlite3_free (view); if (!create_insert_stmt (handle, name, &stmt)) return 0; *xstmt = stmt; return 1; } DXF_PRIVATE int create_inspolyg_table (sqlite3 * handle, const char *name, const char *block, int is3d, sqlite3_stmt ** xstmt) { /* attempting to create the "Insert-mixed-Polyg" table */ char *sql; int ret; sqlite3_stmt *stmt; char *xname; char *idx_name; char *xidx_name; char *view; char *xview; char *xblock; *xstmt = NULL; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " filename TEXT NOT NULL, \n" " layer TEXT NOT NULL,\n" " block_id TEXT NOT NULL,\n" " x DOUBLE NOT NULL,\n" " y DOUBLE NOT NULL,\n" " z DOUBLE NOT NULL,\n" " scale_x DOUBLE NOT NULL,\n" " scale_y DOUBLE NOT NULL,\n" " scale_z DOUBLE NOT NULL,\n" " angle DOUBLE NOT NULL)", xname); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } idx_name = sqlite3_mprintf ("idx_%s", name); xidx_name = gaiaDoubleQuotedSql (idx_name); xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (layer, block_id)", xidx_name, xname); free (xidx_name); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (idx_name); view = sqlite3_mprintf ("%s_view", name); xview = gaiaDoubleQuotedSql (view); xname = gaiaDoubleQuotedSql (name); xblock = gaiaDoubleQuotedSql (block); if (is3d) { sql = sqlite3_mprintf ("CREATE VIEW \"%s\" AS " "SELECT b.ROWID AS rowid, i.feature_id AS feature_id, " "i.filename AS filename, i.layer AS layer, i.block_id AS block_id, " "ST_Translate(ScaleCoords(RotateCoords(b.geometry, i.angle), " "i.scale_x, i.scale_y), i.x, i.y, i.z) AS geometry " "FROM \"%s\" AS i JOIN \"%s\" AS b ON " "(b.layer = i.layer AND b.block_id = i.block_id)", xview, xname, xblock); } else { sql = sqlite3_mprintf ("CREATE VIEW \"%s\" AS " "SELECT b.ROWID AS rowid, i.feature_id AS feature_id, " "i.filename AS filename, i.layer AS layer, i.block_id AS block_id, " "ShiftCoords(ScaleCoords(RotateCoords(b.geometry, i.angle), " "i.scale_x, i.scale_y), i.x, i.y) AS geometry " "FROM \"%s\" AS i JOIN \"%s\" AS b ON " "(b.layer = i.layer AND b.block_id = i.block_id)", xview, xname, xblock); } free (xname); free (xview); free (xblock); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW %s error: %s\n", view, sqlite3_errmsg (handle)); return 0; } if (has_viewgeom_rdonly (handle)) sql = sqlite3_mprintf ("INSERT INTO views_geometry_columns (" "view_name, view_geometry, view_rowid, f_table_name, " "f_geometry_column, read_only) VALUES (Lower(%Q), Lower(%Q), " "Lower(%Q), Lower(%Q), Lower(%Q), 1)", view, "geometry", "rowid", block, "geometry"); else sql = sqlite3_mprintf ("INSERT INTO views_geometry_columns (" "view_name, view_geometry, view_rowid, f_table_name, " "f_geometry_column) VALUES (Lower(%Q), Lower(%Q), " "Lower(%Q), Lower(%Q), Lower(%Q))", view, "geometry", "rowid", block, "geometry"); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("Register Spatial VIEW %s error: %s\n", view, sqlite3_errmsg (handle)); return 0; } sqlite3_free (view); if (!create_insert_stmt (handle, name, &stmt)) return 0; *xstmt = stmt; return 1; } DXF_PRIVATE int create_inshatch_table (sqlite3 * handle, const char *name, const char *block, sqlite3_stmt ** xstmt) { /* attempting to create the "Insert-mixed-Hatch" table */ char *sql; int ret; sqlite3_stmt *stmt; char *xname; char *idx_name; char *xidx_name; char *view; char *xview; char *xblock; *xstmt = NULL; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " filename TEXT NOT NULL, \n" " layer TEXT NOT NULL,\n" " block_id TEXT NOT NULL,\n" " x DOUBLE NOT NULL,\n" " y DOUBLE NOT NULL,\n" " z DOUBLE NOT NULL,\n" " scale_x DOUBLE NOT NULL,\n" " scale_y DOUBLE NOT NULL,\n" " scale_z DOUBLE NOT NULL,\n" " angle DOUBLE NOT NULL)", xname); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } idx_name = sqlite3_mprintf ("idx_%s", name); xidx_name = gaiaDoubleQuotedSql (idx_name); xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (layer, block_id)", xidx_name, xname); free (xidx_name); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (idx_name); view = sqlite3_mprintf ("%s_view", name); xview = gaiaDoubleQuotedSql (view); xname = gaiaDoubleQuotedSql (name); xblock = gaiaDoubleQuotedSql (block); sql = sqlite3_mprintf ("CREATE VIEW \"%s\" AS " "SELECT b.ROWID AS rowid, i.feature_id AS feature_id, " "i.filename AS filename, i.layer AS layer, i.block_id AS block_id, " "ShiftCoords(ScaleCoords(RotateCoords(b.geometry, i.angle), " "i.scale_x, i.scale_y), i.x, i.y) AS geometry " "FROM \"%s\" AS i JOIN \"%s\" AS b ON " "(b.layer = i.layer AND b.block_id = i.block_id)", xview, xname, xblock); free (xname); free (xview); free (xblock); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW %s error: %s\n", view, sqlite3_errmsg (handle)); return 0; } if (has_viewgeom_rdonly (handle)) sql = sqlite3_mprintf ("INSERT INTO views_geometry_columns (" "view_name, view_geometry, view_rowid, f_table_name, " "f_geometry_column, read_only) VALUES (Lower(%Q), Lower(%Q), " "Lower(%Q), Lower(%Q), Lower(%Q), 1)", view, "geometry", "rowid", block, "geometry"); else sql = sqlite3_mprintf ("INSERT INTO views_geometry_columns (" "view_name, view_geometry, view_rowid, f_table_name, " "f_geometry_column) VALUES (Lower(%Q), Lower(%Q), " "Lower(%Q), Lower(%Q), Lower(%Q))", view, "geometry", "rowid", block, "geometry"); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("Register Spatial VIEW %s error: %s\n", view, sqlite3_errmsg (handle)); return 0; } sqlite3_free (view); if (!create_insert_stmt (handle, name, &stmt)) return 0; *xstmt = stmt; return 1; } DXF_PRIVATE int create_insert_extra_attr_table (sqlite3 * handle, const char *name, char *extra_name, sqlite3_stmt ** xstmt_ext) { /* attempting to create the "Insert-mixed-extra-attr" table */ char *sql; int ret; sqlite3_stmt *stmt_ext; char *xname; char *xextra_name; char *fk_name; char *xfk_name; char *idx_name; char *xidx_name; char *view_name; char *xview_name; *xstmt_ext = NULL; fk_name = sqlite3_mprintf ("fk_%s", extra_name); xextra_name = gaiaDoubleQuotedSql (extra_name); xfk_name = gaiaDoubleQuotedSql (fk_name); xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " attr_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " feature_id INTEGER NOT NULL,\n" " attr_key TEXT NOT NULL,\n" " attr_value TEXT NOT NULL,\n" " CONSTRAINT \"%s\" FOREIGN KEY (feature_id) " "REFERENCES \"%s\" (feature_id))", xextra_name, xfk_name, xname); free (xextra_name); free (xfk_name); free (xname); sqlite3_free (fk_name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", extra_name, sqlite3_errmsg (handle)); return 0; } idx_name = sqlite3_mprintf ("idx_%s", extra_name); xidx_name = gaiaDoubleQuotedSql (idx_name); xextra_name = gaiaDoubleQuotedSql (extra_name); sql = sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (feature_id)", xidx_name, xextra_name); free (xidx_name); free (xextra_name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (idx_name); view_name = sqlite3_mprintf ("%s_view", name); xview_name = gaiaDoubleQuotedSql (view_name); xname = gaiaDoubleQuotedSql (name); xextra_name = gaiaDoubleQuotedSql (extra_name); sql = sqlite3_mprintf ("CREATE VIEW \"%s\" AS " "SELECT f.feature_id AS feature_id, f.filename AS filename, " "f.layer AS layer, f.x AS x, f.y AS y, f.z AS z, f.scale_x AS scale_x, " "f.scale_y AS scale_y, f.scale_z AS scale_z, f.angle AS angle, " "a.attr_id AS attr_id, a.attr_key AS attr_key, a.attr_value AS attr_value " "FROM \"%s\" AS f " "LEFT JOIN \"%s\" AS a ON (f.feature_id = a.feature_id)", xview_name, xname, xextra_name); free (xview_name); free (xname); free (xextra_name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW %s error: %s\n", view_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (view_name); if (!create_extra_stmt (handle, extra_name, &stmt_ext)) return 0; *xstmt_ext = stmt_ext; return 1; } static int check_block_point_table (sqlite3 * handle, const char *name, int srid, int is3D) { /* checking if a Block-Point table already exists */ char *sql; int ok_geom = 0; int ok_data = 0; int ret; int i; char *xname; char **results; int n_rows; int n_columns; int metadata_version = checkSpatialMetaData (handle); if (metadata_version == 1) { /* legacy metadata style <= v.3.1.0 */ int ok_srid = 0; int ok_type = 0; int dims2d = 0; int dims3d = 0; sql = sqlite3_mprintf ("SELECT srid, type, coord_dimension " "FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", name, "geometry"); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (n_rows > 0) { for (i = 1; i <= n_rows; i++) { if (atoi (results[(i * n_columns) + 0]) == srid) ok_srid = 1; if (strcmp ("POINT", results[(i * n_columns) + 1]) == 0) ok_type = 1; if (strcmp ("XY", results[(i * n_columns) + 2]) == 0) dims2d = 1; if (strcmp ("XYZ", results[(i * n_columns) + 2]) == 0) dims3d = 1; } } sqlite3_free_table (results); if (ok_srid && ok_type) { if (is3D && dims3d) ok_geom = 1; if (!is3D && dims2d) ok_geom = 1; } } else { /* current metadata style >= v.4.0.0 */ int ok_srid = 0; int ok_type = 0; sql = sqlite3_mprintf ("SELECT srid, geometry_type " "FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", name, "geometry"); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (n_rows > 0) { for (i = 1; i <= n_rows; i++) { if (atoi (results[(i * n_columns) + 0]) == srid) ok_srid = 1; if (atoi (results[(i * n_columns) + 1]) == 1 && !is3D) ok_type = 1; if (atoi (results[(i * n_columns) + 1]) == 1001 && is3D) ok_type = 1; } } sqlite3_free_table (results); if (ok_srid && ok_type) { ok_geom = 1; } } xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); free (xname); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (n_rows > 0) { int ok_feature_id = 0; int ok_filename = 0; int ok_layer = 0; int ok_block_id = 0; for (i = 1; i <= n_rows; i++) { if (strcasecmp ("feature_id", results[(i * n_columns) + 1]) == 0) ok_feature_id = 1; if (strcasecmp ("filename", results[(i * n_columns) + 1]) == 0) ok_filename = 1; if (strcasecmp ("layer", results[(i * n_columns) + 1]) == 0) ok_layer = 1; if (strcasecmp ("block_id", results[(i * n_columns) + 1]) == 0) ok_block_id = 1; } if (ok_feature_id && ok_filename && ok_layer && ok_block_id) ok_data = 1; } sqlite3_free_table (results); if (ok_geom && ok_data) return 1; return 0; } static int check_block_line_table (sqlite3 * handle, const char *name, int srid, int is3D) { /* checking if a Block-Line table already exists */ char *sql; int ok_geom = 0; int ok_data = 0; int ret; int i; char *xname; char **results; int n_rows; int n_columns; int metadata_version = checkSpatialMetaData (handle); if (metadata_version == 1) { /* legacy metadata style <= v.3.1.0 */ int ok_srid = 0; int ok_type = 0; int dims2d = 0; int dims3d = 0; sql = sqlite3_mprintf ("SELECT srid, type, coord_dimension " "FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", name, "geometry"); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (n_rows > 0) { for (i = 1; i <= n_rows; i++) { if (atoi (results[(i * n_columns) + 0]) == srid) ok_srid = 1; if (strcmp ("LINESTRING", results[(i * n_columns) + 1]) == 0) ok_type = 1; if (strcmp ("XY", results[(i * n_columns) + 2]) == 0) dims2d = 1; if (strcmp ("XYZ", results[(i * n_columns) + 2]) == 0) dims3d = 1; } } sqlite3_free_table (results); if (ok_srid && ok_type) { if (is3D && dims3d) ok_geom = 1; if (!is3D && dims2d) ok_geom = 1; } } else { /* current metadata style >= v.4.0.0 */ int ok_srid = 0; int ok_type = 0; sql = sqlite3_mprintf ("SELECT srid, geometry_type " "FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", name, "geometry"); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (n_rows > 0) { for (i = 1; i <= n_rows; i++) { if (atoi (results[(i * n_columns) + 0]) == srid) ok_srid = 1; if (atoi (results[(i * n_columns) + 1]) == 2 && !is3D) ok_type = 1; if (atoi (results[(i * n_columns) + 1]) == 1002 && is3D) ok_type = 1; } } sqlite3_free_table (results); if (ok_srid && ok_type) { ok_geom = 1; } } xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); free (xname); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (n_rows > 0) { int ok_feature_id = 0; int ok_filename = 0; int ok_layer = 0; int ok_block_id = 0; for (i = 1; i <= n_rows; i++) { if (strcasecmp ("feature_id", results[(i * n_columns) + 1]) == 0) ok_feature_id = 1; if (strcasecmp ("filename", results[(i * n_columns) + 1]) == 0) ok_filename = 1; if (strcasecmp ("layer", results[(i * n_columns) + 1]) == 0) ok_layer = 1; if (strcasecmp ("block_id", results[(i * n_columns) + 1]) == 0) ok_block_id = 1; } if (ok_feature_id && ok_filename && ok_layer && ok_block_id) ok_data = 1; } sqlite3_free_table (results); if (ok_geom && ok_data) return 1; return 0; } static int check_block_polyg_table (sqlite3 * handle, const char *name, int srid, int is3D) { /* checking if a Block-Polygon table already exists */ char *sql; int ok_geom = 0; int ok_data = 0; int ret; int i; char *xname; char **results; int n_rows; int n_columns; int metadata_version = checkSpatialMetaData (handle); if (metadata_version == 1) { /* legacy metadata style <= v.3.1.0 */ int ok_srid = 0; int ok_type = 0; int dims2d = 0; int dims3d = 0; sql = sqlite3_mprintf ("SELECT srid, type, coord_dimension " "FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", name, "geometry"); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (n_rows > 0) { for (i = 1; i <= n_rows; i++) { if (atoi (results[(i * n_columns) + 0]) == srid) ok_srid = 1; if (strcmp ("POLYGON", results[(i * n_columns) + 1]) == 0) ok_type = 1; if (strcmp ("XY", results[(i * n_columns) + 2]) == 0) dims2d = 1; if (strcmp ("XYZ", results[(i * n_columns) + 2]) == 0) dims3d = 1; } } sqlite3_free_table (results); if (ok_srid && ok_type) { if (is3D && dims3d) ok_geom = 1; if (!is3D && dims2d) ok_geom = 1; } } else { /* current metadata style >= v.4.0.0 */ int ok_srid = 0; int ok_type = 0; sql = sqlite3_mprintf ("SELECT srid, geometry_type " "FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", name, "geometry"); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (n_rows > 0) { for (i = 1; i <= n_rows; i++) { if (atoi (results[(i * n_columns) + 0]) == srid) ok_srid = 1; if (atoi (results[(i * n_columns) + 1]) == 3 && !is3D) ok_type = 1; if (atoi (results[(i * n_columns) + 1]) == 1003 && is3D) ok_type = 1; } } sqlite3_free_table (results); if (ok_srid && ok_type) { ok_geom = 1; } } xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); free (xname); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (n_rows > 0) { int ok_feature_id = 0; int ok_filename = 0; int ok_layer = 0; int ok_block_id = 0; for (i = 1; i <= n_rows; i++) { if (strcasecmp ("feature_id", results[(i * n_columns) + 1]) == 0) ok_feature_id = 1; if (strcasecmp ("filename", results[(i * n_columns) + 1]) == 0) ok_filename = 1; if (strcasecmp ("layer", results[(i * n_columns) + 1]) == 0) ok_layer = 1; if (strcasecmp ("block_id", results[(i * n_columns) + 1]) == 0) ok_block_id = 1; } if (ok_feature_id && ok_filename && ok_layer && ok_block_id) ok_data = 1; } sqlite3_free_table (results); if (ok_geom && ok_data) return 1; return 0; } static int check_block_hatch_tables (sqlite3 * handle, const char *name, int srid) { /* checking if Block-Hatch tables already exist */ char *sql; int ok_geom = 0; int ok_pdata = 0; int ok_bdata = 0; int ret; int i; char *xname; char *pattern = sqlite3_mprintf ("%s_pattern", name); char *xpattern; char **results; int n_rows; int n_columns; int metadata_version = checkSpatialMetaData (handle); if (metadata_version == 1) { /* legacy metadata style <= v.3.1.0 */ int ok_bsrid = 0; int ok_btype = 0; int bdims2d = 0; int ok_psrid = 0; int ok_ptype = 0; int pdims2d = 0; sql = sqlite3_mprintf ("SELECT srid, type, coord_dimension " "FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", name, "geometry"); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto stop; if (n_rows > 0) { for (i = 1; i <= n_rows; i++) { if (atoi (results[(i * n_columns) + 0]) == srid) ok_bsrid = 1; if (strcmp ("MULTIPOLYGON", results[(i * n_columns) + 1]) == 0) ok_btype = 1; if (strcmp ("XY", results[(i * n_columns) + 2]) == 0) bdims2d = 1; } } sqlite3_free_table (results); sql = sqlite3_mprintf ("SELECT srid, type, coord_dimension " "FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", pattern, "geometry"); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto stop; if (n_rows > 0) { for (i = 1; i <= n_rows; i++) { if (atoi (results[(i * n_columns) + 0]) == srid) ok_psrid = 1; if (strcmp ("MULTILINESTRING", results[(i * n_columns) + 1]) == 0) ok_ptype = 1; if (strcmp ("XY", results[(i * n_columns) + 2]) == 0) pdims2d = 1; } } sqlite3_free_table (results); if (ok_bsrid && ok_btype && bdims2d && ok_psrid && ok_ptype && pdims2d) ok_geom = 1; } else { /* current metadata style >= v.4.0.0 */ int ok_psrid = 0; int ok_ptype = 0; int ok_bsrid = 0; int ok_btype = 0; sql = sqlite3_mprintf ("SELECT srid, geometry_type " "FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", name, "geometry"); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto stop; if (n_rows > 0) { for (i = 1; i <= n_rows; i++) { if (atoi (results[(i * n_columns) + 0]) == srid) ok_bsrid = 1; if (atoi (results[(i * n_columns) + 1]) == 6) ok_btype = 1; } } sqlite3_free_table (results); sql = sqlite3_mprintf ("SELECT srid, geometry_type " "FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", pattern, "geometry"); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto stop; if (n_rows > 0) { for (i = 1; i <= n_rows; i++) { if (atoi (results[(i * n_columns) + 0]) == srid) ok_psrid = 1; if (atoi (results[(i * n_columns) + 1]) == 5) ok_ptype = 1; } } sqlite3_free_table (results); if (ok_bsrid && ok_btype && ok_psrid && ok_ptype) ok_geom = 1; } xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); free (xname); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto stop; if (n_rows > 0) { int ok_feature_id = 0; int ok_filename = 0; int ok_layer = 0; int ok_block_id = 0; for (i = 1; i <= n_rows; i++) { if (strcasecmp ("feature_id", results[(i * n_columns) + 1]) == 0) ok_feature_id = 1; if (strcasecmp ("filename", results[(i * n_columns) + 1]) == 0) ok_filename = 1; if (strcasecmp ("layer", results[(i * n_columns) + 1]) == 0) ok_layer = 1; if (strcasecmp ("block_id", results[(i * n_columns) + 1]) == 0) ok_block_id = 1; } if (ok_feature_id && ok_filename && ok_layer && ok_block_id) ok_bdata = 1; } sqlite3_free_table (results); xpattern = gaiaDoubleQuotedSql (pattern); sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xpattern); free (xpattern); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto stop; if (n_rows > 0) { int ok_feature_id = 0; int ok_filename = 0; int ok_layer = 0; int ok_block_id = 0; for (i = 1; i <= n_rows; i++) { if (strcasecmp ("feature_id", results[(i * n_columns) + 1]) == 0) ok_feature_id = 1; if (strcasecmp ("filename", results[(i * n_columns) + 1]) == 0) ok_filename = 1; if (strcasecmp ("layer", results[(i * n_columns) + 1]) == 0) ok_layer = 1; if (strcasecmp ("block_id", results[(i * n_columns) + 1]) == 0) ok_block_id = 1; } if (ok_feature_id && ok_filename && ok_layer && ok_block_id) ok_pdata = 1; } sqlite3_free_table (results); if (ok_geom && ok_bdata && ok_pdata) { sqlite3_free (pattern); return 1; } stop: sqlite3_free (pattern); return 0; } static int create_block_text_table (sqlite3 * handle, const char *name, int srid, int text3D, sqlite3_stmt ** xstmt) { /* attempting to create the "Block-Text" table */ char *sql; int ret; sqlite3_stmt *stmt; char *xname; char *idx_name; char *xidx_name; *xstmt = NULL; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " filename TEXT NOT NULL, \n" " layer TEXT NOT NULL,\n" " block_id TEXT NOT NULL,\n" " label TEXT NOT NULL,\n" " rotation DOUBLE NOT NULL)", xname); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } idx_name = sqlite3_mprintf ("idx_%s", name); xidx_name = gaiaDoubleQuotedSql (idx_name); xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (layer, block_id)", xidx_name, xname); free (xidx_name); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (idx_name); sql = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'geometry', " "%d, 'POINT', %Q)", name, srid, text3D ? "XYZ" : "XY"); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("ADD GEOMETRY %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'geometry')", name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE SPATIAL INDEX %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } if (!create_block_text_stmt (handle, name, &stmt)) return 0; *xstmt = stmt; return 1; } static int create_block_point_table (sqlite3 * handle, const char *name, int srid, int point3D, sqlite3_stmt ** xstmt) { /* attempting to create the "Block-Point" table */ char *sql; int ret; sqlite3_stmt *stmt; char *xname; char *idx_name; char *xidx_name; *xstmt = NULL; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " filename TEXT NOT NULL, \n" " layer TEXT NOT NULL,\n" " block_id TEXT NOT NULL)", xname); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } idx_name = sqlite3_mprintf ("idx_%s", name); xidx_name = gaiaDoubleQuotedSql (idx_name); xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (layer, block_id)", xidx_name, xname); free (xidx_name); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (idx_name); sql = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'geometry', " "%d, 'POINT', %Q)", name, srid, point3D ? "XYZ" : "XY"); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("ADD GEOMETRY %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'geometry')", name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE SPATIAL INDEX %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } if (!create_block_point_stmt (handle, name, &stmt)) return 0; *xstmt = stmt; return 1; } static int create_block_line_table (sqlite3 * handle, const char *name, int srid, int line3D, sqlite3_stmt ** xstmt) { /* attempting to create the "Block-Line" table */ char *sql; int ret; sqlite3_stmt *stmt; char *xname; char *idx_name; char *xidx_name; *xstmt = NULL; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " filename TEXT NOT NULL, \n" " layer TEXT NOT NULL,\n" " block_id TEXT NOT NULL)", xname); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } idx_name = sqlite3_mprintf ("idx_%s", name); xidx_name = gaiaDoubleQuotedSql (idx_name); xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (layer, block_id)", xidx_name, xname); free (xidx_name); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (idx_name); sql = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'geometry', " "%d, 'LINESTRING', %Q)", name, srid, line3D ? "XYZ" : "XY"); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("ADD GEOMETRY %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'geometry')", name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE SPATIAL INDEX %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } if (!create_block_line_stmt (handle, name, &stmt)) return 0; *xstmt = stmt; return 1; } static int create_block_polyg_table (sqlite3 * handle, const char *name, int srid, int polyg3D, sqlite3_stmt ** xstmt) { /* attempting to create the "Block-Polyg" table */ char *sql; int ret; sqlite3_stmt *stmt; char *xname; char *idx_name; char *xidx_name; *xstmt = NULL; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " filename TEXT NOT NULL, \n" " layer TEXT NOT NULL,\n" " block_id TEXT NOT NULL)", xname); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } idx_name = sqlite3_mprintf ("idx_%s", name); xidx_name = gaiaDoubleQuotedSql (idx_name); xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (layer, block_id)", xidx_name, xname); free (xidx_name); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (idx_name); sql = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'geometry', " "%d, 'POLYGON', %Q)", name, srid, polyg3D ? "XYZ" : "XY"); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("ADD GEOMETRY %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'geometry')", name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE SPATIAL INDEX %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } if (!create_block_polyg_stmt (handle, name, &stmt)) return 0; *xstmt = stmt; return 1; } static int create_block_hatch_tables (sqlite3 * handle, const char *name, int srid, sqlite3_stmt ** xstmt, sqlite3_stmt ** xstmt2) { /* attempting to create the "Block-Hatch" tables */ char *sql; int ret; sqlite3_stmt *stmt; sqlite3_stmt *stmt2; char *xname; char *pattern; char *xpattern; char *fk_name; char *xfk_name; char *idx_name; char *xidx_name; *xstmt = NULL; *xstmt2 = NULL; /* creating the Block-Hatch-Boundary table */ xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " filename TEXT NOT NULL, \n" " layer TEXT NOT NULL,\n" " block_id TEXT NOT NULL)", xname); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } idx_name = sqlite3_mprintf ("idx_%s", name); xidx_name = gaiaDoubleQuotedSql (idx_name); xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (layer, block_id)", xidx_name, xname); free (xidx_name); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (idx_name); sql = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'geometry', " "%d, 'MULTIPOLYGON', 'XY')", name, srid); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("ADD GEOMETRY %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'geometry')", name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE SPATIAL INDEX %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } /* creating the Block-Hatch-Pattern table */ xname = gaiaDoubleQuotedSql (name); pattern = sqlite3_mprintf ("%s_pattern", name); xpattern = gaiaDoubleQuotedSql (pattern); fk_name = sqlite3_mprintf ("fk_%s_pattern", name); xfk_name = gaiaDoubleQuotedSql (fk_name); sqlite3_free (fk_name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " feature_id INTEGER PRIMARY KEY NOT NULL,\n" " filename TEXT NOT NULL, \n" " layer TEXT NOT NULL,\n" " block_id TEXT NOT NULL,\n" " CONSTRAINT \"%s\" FOREIGN KEY (feature_id) " " REFERENCES \"%s\" (feature_id))", xpattern, xfk_name, xname); free (xname); free (xfk_name); free (xpattern); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", pattern, sqlite3_errmsg (handle)); return 0; } idx_name = sqlite3_mprintf ("idx_%s", pattern); xidx_name = gaiaDoubleQuotedSql (idx_name); xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (layer, block_id)", xidx_name, xname); free (xidx_name); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (idx_name); sql = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'geometry', " "%d, 'MULTILINESTRING', 'XY')", pattern, srid); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("ADD GEOMETRY %s error: %s\n", pattern, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'geometry')", pattern); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE SPATIAL INDEX %s error: %s\n", pattern, sqlite3_errmsg (handle)); return 0; } sqlite3_free (pattern); if (!create_block_hatch_boundary_stmt (handle, name, &stmt)) return 0; if (!create_block_hatch_pattern_stmt (handle, name, &stmt2)) return 0; *xstmt = stmt; *xstmt2 = stmt2; return 1; } static int import_blocks (sqlite3 * handle, gaiaDxfParserPtr dxf, int append) { /* populating the target DB - importing BLOCK geometries */ gaiaDxfTextPtr txt; gaiaDxfPointPtr pt; gaiaDxfPolylinePtr ln; gaiaDxfPolylinePtr pg; gaiaDxfHatchPtr htc; int ret; unsigned char *blob; int blob_size; gaiaGeomCollPtr geom; int error = 0; char *name; sqlite3_stmt *stmt; sqlite3_stmt *stmt_text_2d = NULL; sqlite3_stmt *stmt_text_3d = NULL; sqlite3_stmt *stmt_point_2d = NULL; sqlite3_stmt *stmt_point_3d = NULL; sqlite3_stmt *stmt_line_2d = NULL; sqlite3_stmt *stmt_line_3d = NULL; sqlite3_stmt *stmt_polyg_2d = NULL; sqlite3_stmt *stmt_polyg_3d = NULL; sqlite3_stmt *stmt_hatch_boundary = NULL; sqlite3_stmt *stmt_hatch_pattern = NULL; int text = 0; int point = 0; int line = 0; int polyg = 0; int hatch = 0; int text2D = 0; int point2D = 0; int line2D = 0; int polyg2D = 0; int text3D = 0; int point3D = 0; int line3D = 0; int polyg3D = 0; int iv; gaiaDxfHolePtr hole; int num_holes; gaiaLinestringPtr p_ln; gaiaPolygonPtr p_pg; gaiaRingPtr p_rng; sqlite3_int64 feature_id; gaiaDxfHatchSegmPtr segm; gaiaDxfBlockPtr blk = dxf->first_block; while (blk != NULL) { /* exploring Blocks by type */ if (blk->hasInsert == 0) { blk = blk->next; continue; } if (blk->first_text != NULL) { text = 1; if (blk->is3Dtext) text3D = 1; else text2D = 1; } if (blk->first_point != NULL) { point = 1; if (blk->is3Dpoint) point3D = 1; else point2D = 1; } if (blk->first_line != NULL) { line = 1; if (blk->is3Dline) line3D = 1; else line2D = 1; } if (blk->first_polyg != NULL) { polyg = 1; if (blk->is3Dpolyg) polyg3D = 1; else polyg2D = 1; } if (blk->first_hatch != NULL) hatch = 1; blk = blk->next; } if (text && text2D) { /* preparing to insert into the Block Text 2D table */ if (dxf->prefix == NULL) name = sqlite3_mprintf ("block_text_2d"); else name = sqlite3_mprintf ("%sblock_text_2d", dxf->prefix); if (append && check_block_text_table (handle, name, dxf->srid, 0)) { /* appending into the already existing table */ if (!create_block_text_stmt (handle, name, &stmt_text_2d)) return 0; } else { /* creating a new table */ if (!create_block_text_table (handle, name, dxf->srid, 0, &stmt_text_2d)) return 0; } sqlite3_free (name); } if (text && text3D) { /* preparing to insert into the Block Text 3D table */ if (dxf->prefix == NULL) name = sqlite3_mprintf ("block_text_3d"); else name = sqlite3_mprintf ("%sblock_text_3d", dxf->prefix); if (append && check_block_text_table (handle, name, dxf->srid, 1)) { /* appending into the already existing table */ if (!create_block_text_stmt (handle, name, &stmt_text_3d)) return 0; } else { /* creating a new table */ if (!create_block_text_table (handle, name, dxf->srid, 1, &stmt_text_3d)) return 0; } sqlite3_free (name); } if (point && point2D) { /* preparing to insert into the Block Point 2D table */ if (dxf->prefix == NULL) name = sqlite3_mprintf ("block_point_2d"); else name = sqlite3_mprintf ("%sblock_point_2d", dxf->prefix); if (append && check_block_point_table (handle, name, dxf->srid, 0)) { /* appending into the already existing table */ if (!create_block_point_stmt (handle, name, &stmt_point_2d)) return 0; } else { /* creating a new table */ if (!create_block_point_table (handle, name, dxf->srid, 0, &stmt_point_2d)) return 0; } sqlite3_free (name); } if (point && point3D) { /* preparing to insert into the Block Point 3D table */ if (dxf->prefix == NULL) name = sqlite3_mprintf ("block_point_3d"); else name = sqlite3_mprintf ("%sblock_point_3d", dxf->prefix); if (append && check_block_point_table (handle, name, dxf->srid, 1)) { /* appending into the already existing table */ if (!create_block_point_stmt (handle, name, &stmt_point_3d)) return 0; } else { /* creating a new table */ if (!create_block_point_table (handle, name, dxf->srid, 1, &stmt_point_3d)) return 0; } sqlite3_free (name); } if (line && line2D) { /* preparing to insert into the Block Line 2D table */ if (dxf->prefix == NULL) name = sqlite3_mprintf ("block_line_2d"); else name = sqlite3_mprintf ("%sblock_line_2d", dxf->prefix); if (append && check_block_line_table (handle, name, dxf->srid, 0)) { /* appending into the already existing table */ if (!create_block_line_stmt (handle, name, &stmt_line_2d)) return 0; } else { /* creating a new table */ if (!create_block_line_table (handle, name, dxf->srid, 0, &stmt_line_2d)) return 0; } sqlite3_free (name); } if (line && line3D) { /* preparing to insert into the Block Line 3D table */ if (dxf->prefix == NULL) name = sqlite3_mprintf ("block_line_3d"); else name = sqlite3_mprintf ("%sblock_line_3d", dxf->prefix); if (append && check_block_line_table (handle, name, dxf->srid, 1)) { /* appending into the already existing table */ if (!create_block_line_stmt (handle, name, &stmt_line_3d)) return 0; } else { /* creating a new table */ if (!create_block_line_table (handle, name, dxf->srid, 1, &stmt_line_3d)) return 0; } sqlite3_free (name); } if (polyg && polyg2D) { /* preparing to insert into the Block Polyg 2D table */ if (dxf->prefix == NULL) name = sqlite3_mprintf ("block_polyg_2d"); else name = sqlite3_mprintf ("%sblock_polyg_2d", dxf->prefix); if (append && check_block_polyg_table (handle, name, dxf->srid, 0)) { /* appending into the already existing table */ if (!create_block_polyg_stmt (handle, name, &stmt_polyg_2d)) return 0; } else { /* creating a new table */ if (!create_block_polyg_table (handle, name, dxf->srid, 0, &stmt_polyg_2d)) return 0; } sqlite3_free (name); } if (polyg && polyg3D) { /* preparing to insert into the Block Polyg 3D table */ if (dxf->prefix == NULL) name = sqlite3_mprintf ("block_polyg_3d"); else name = sqlite3_mprintf ("%sblock_polyg_3d", dxf->prefix); if (append && check_block_polyg_table (handle, name, dxf->srid, 1)) { /* appending into the already existing table */ if (!create_block_polyg_stmt (handle, name, &stmt_polyg_3d)) return 0; } else { /* creating a new table */ if (!create_block_polyg_table (handle, name, dxf->srid, 1, &stmt_polyg_3d)) return 0; } sqlite3_free (name); } if (hatch) { /* preparing to insert into the Block Hatch table */ if (dxf->prefix == NULL) name = sqlite3_mprintf ("block_hatch_2d"); else name = sqlite3_mprintf ("%sblock_hatch_2d", dxf->prefix); if (append && check_block_hatch_tables (handle, name, dxf->srid)) { /* appending into the already existing table */ if (!create_block_hatch_boundary_stmt (handle, name, &stmt_hatch_boundary)) return 0; if (!create_block_hatch_pattern_stmt (handle, name, &stmt_hatch_pattern)) return 0; } else { /* creating a new table */ if (!create_block_hatch_tables (handle, name, dxf->srid, &stmt_hatch_boundary, &stmt_hatch_pattern)) return 0; } sqlite3_free (name); } ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("BEGIN %s error: %s\n", name, sqlite3_errmsg (handle)); error = 1; goto stop; } blk = dxf->first_block; while (blk != NULL) { if (blk->hasInsert == 0) { blk = blk->next; continue; } txt = blk->first_text; while (txt) { if (blk->is3Dtext) stmt = stmt_text_3d; else stmt = stmt_text_2d; sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, dxf->filename, strlen (dxf->filename), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, blk->layer_name, strlen (blk->layer_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 3, blk->block_id, strlen (blk->block_id), SQLITE_STATIC); sqlite3_bind_text (stmt, 4, txt->label, strlen (txt->label), SQLITE_STATIC); sqlite3_bind_double (stmt, 5, txt->angle); if (blk->is3Dtext) geom = gaiaAllocGeomCollXYZ (); else geom = gaiaAllocGeomColl (); geom->Srid = dxf->srid; if (blk->is3Dtext) gaiaAddPointToGeomCollXYZ (geom, txt->x, txt->y, txt->z); else gaiaAddPointToGeomColl (geom, txt->x, txt->y); gaiaToSpatiaLiteBlobWkb (geom, &blob, &blob_size); gaiaFreeGeomColl (geom); sqlite3_bind_blob (stmt, 6, blob, blob_size, free); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", name, sqlite3_errmsg (handle)); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); error = 1; goto stop; } txt = txt->next; } pt = blk->first_point; while (pt) { if (blk->is3Dpoint) stmt = stmt_point_3d; else stmt = stmt_point_2d; sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, dxf->filename, strlen (dxf->filename), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, blk->layer_name, strlen (blk->layer_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 3, blk->block_id, strlen (blk->block_id), SQLITE_STATIC); if (blk->is3Dpoint) geom = gaiaAllocGeomCollXYZ (); else geom = gaiaAllocGeomColl (); geom->Srid = dxf->srid; if (blk->is3Dpoint) gaiaAddPointToGeomCollXYZ (geom, pt->x, pt->y, pt->z); else gaiaAddPointToGeomColl (geom, pt->x, pt->y); gaiaToSpatiaLiteBlobWkb (geom, &blob, &blob_size); gaiaFreeGeomColl (geom); sqlite3_bind_blob (stmt, 4, blob, blob_size, free); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", name, sqlite3_errmsg (handle)); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); error = 1; goto stop; } pt = pt->next; } ln = blk->first_line; while (ln) { if (blk->is3Dline) stmt = stmt_line_3d; else stmt = stmt_line_2d; sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, dxf->filename, strlen (dxf->filename), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, blk->layer_name, strlen (blk->layer_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 3, blk->block_id, strlen (blk->block_id), SQLITE_STATIC); if (blk->is3Dline) geom = gaiaAllocGeomCollXYZ (); else geom = gaiaAllocGeomColl (); geom->Srid = dxf->srid; gaiaAddLinestringToGeomColl (geom, ln->points); p_ln = geom->FirstLinestring; for (iv = 0; iv < ln->points; iv++) { if (blk->is3Dline) { gaiaSetPointXYZ (p_ln->Coords, iv, *(ln->x + iv), *(ln->y + iv), *(ln->z + iv)); } else { gaiaSetPoint (p_ln->Coords, iv, *(ln->x + iv), *(ln->y + iv)); } } gaiaToSpatiaLiteBlobWkb (geom, &blob, &blob_size); gaiaFreeGeomColl (geom); sqlite3_bind_blob (stmt, 4, blob, blob_size, free); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", name, sqlite3_errmsg (handle)); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); error = 1; goto stop; } ln = ln->next; } pg = blk->first_polyg; while (pg) { if (blk->is3Dpolyg) stmt = stmt_polyg_3d; else stmt = stmt_polyg_2d; sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, dxf->filename, strlen (dxf->filename), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, blk->layer_name, strlen (blk->layer_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 3, blk->block_id, strlen (blk->block_id), SQLITE_STATIC); if (blk->is3Dpolyg) geom = gaiaAllocGeomCollXYZ (); else geom = gaiaAllocGeomColl (); geom->Srid = dxf->srid; num_holes = 0; hole = pg->first_hole; while (hole != NULL) { num_holes++; hole = hole->next; } gaiaAddPolygonToGeomColl (geom, pg->points, num_holes); p_pg = geom->FirstPolygon; p_rng = p_pg->Exterior; for (iv = 0; iv < pg->points; iv++) { if (blk->is3Dpolyg) { gaiaSetPointXYZ (p_rng->Coords, iv, *(pg->x + iv), *(pg->y + iv), *(pg->z + iv)); } else { gaiaSetPoint (p_rng->Coords, iv, *(pg->x + iv), *(pg->y + iv)); } } num_holes = 0; hole = pg->first_hole; while (hole != NULL) { p_rng = gaiaAddInteriorRing (p_pg, num_holes, hole->points); for (iv = 0; iv < hole->points; iv++) { if (polyg3D) { gaiaSetPointXYZ (p_rng->Coords, iv, *(hole->x + iv), *(hole->y + iv), *(hole->z + iv)); } else { gaiaSetPoint (p_rng->Coords, iv, *(hole->x + iv), *(hole->y + iv)); } } num_holes++; hole = hole->next; } gaiaToSpatiaLiteBlobWkb (geom, &blob, &blob_size); gaiaFreeGeomColl (geom); sqlite3_bind_blob (stmt, 4, blob, blob_size, free); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", name, sqlite3_errmsg (handle)); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); error = 1; goto stop; } pg = pg->next; } htc = blk->first_hatch; while (htc) { /* inserting the Boundary Geometry */ stmt = stmt_hatch_boundary; sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, dxf->filename, strlen (dxf->filename), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, blk->layer_name, strlen (blk->layer_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 3, blk->block_id, strlen (blk->block_id), SQLITE_STATIC); if (htc->boundary == NULL) sqlite3_bind_null (stmt, 4); else { gaiaToSpatiaLiteBlobWkb (htc->boundary, &blob, &blob_size); sqlite3_bind_blob (stmt, 4, blob, blob_size, free); } ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", name, sqlite3_errmsg (handle)); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); error = 1; goto stop; } feature_id = sqlite3_last_insert_rowid (handle); /* inserting the Pattern Geometry */ stmt = stmt_hatch_pattern; sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_int64 (stmt, 1, feature_id); sqlite3_bind_text (stmt, 2, dxf->filename, strlen (dxf->filename), SQLITE_STATIC); sqlite3_bind_text (stmt, 3, blk->layer_name, strlen (blk->layer_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 4, blk->block_id, strlen (blk->block_id), SQLITE_STATIC); if (htc->first_out == NULL) sqlite3_bind_null (stmt, 5); else { geom = gaiaAllocGeomColl (); geom->Srid = dxf->srid; geom->DeclaredType = GAIA_MULTILINESTRING; segm = htc->first_out; while (segm != NULL) { gaiaLinestringPtr p_ln = gaiaAddLinestringToGeomColl (geom, 2); gaiaSetPoint (p_ln->Coords, 0, segm->x0, segm->y0); gaiaSetPoint (p_ln->Coords, 1, segm->x1, segm->y1); segm = segm->next; } gaiaToSpatiaLiteBlobWkb (geom, &blob, &blob_size); gaiaFreeGeomColl (geom); sqlite3_bind_blob (stmt, 5, blob, blob_size, free); } ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", name, sqlite3_errmsg (handle)); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); error = 1; goto stop; } htc = htc->next; } blk = blk->next; } ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("COMMIT text_layer error: %s\n", sqlite3_errmsg (handle)); error = 1; goto stop; } stop: if (stmt_text_2d != NULL) sqlite3_finalize (stmt_text_2d); if (stmt_text_3d != NULL) sqlite3_finalize (stmt_text_3d); if (stmt_point_2d != NULL) sqlite3_finalize (stmt_point_2d); if (stmt_point_3d != NULL) sqlite3_finalize (stmt_point_3d); if (stmt_line_2d != NULL) sqlite3_finalize (stmt_line_2d); if (stmt_line_3d != NULL) sqlite3_finalize (stmt_line_3d); if (stmt_polyg_2d != NULL) sqlite3_finalize (stmt_polyg_2d); if (stmt_polyg_3d != NULL) sqlite3_finalize (stmt_polyg_3d); if (stmt_hatch_boundary != NULL) sqlite3_finalize (stmt_hatch_boundary); if (stmt_hatch_pattern != NULL) sqlite3_finalize (stmt_hatch_pattern); if (error) return 0; return 1; } GAIAGEO_DECLARE int gaiaLoadFromDxfParser (sqlite3 * handle, gaiaDxfParserPtr dxf, int mode, int append) { /* populating the target DB */ int ret; if (dxf == NULL) return 0; if (dxf->first_layer == NULL) return 0; if (dxf->first_block != NULL) { if (!import_blocks (handle, dxf, append)) return 0; } if (mode == GAIA_DXF_IMPORT_MIXED) ret = import_mixed (handle, dxf, append); else ret = import_by_layer (handle, dxf, append); return ret; } libspatialite-4.1.1/src/dxf/dxf_load_mixed.c0000664000175000017500000020471112163502133015751 00000000000000/* dxf_load_mixed.c -- implements DXF support [loding features into the DB - mixed layers by geometry type] version 4.1, 2013 May 14 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include #include #include #include #include #include #include "dxf_private.h" #if defined(_WIN32) && !defined(__MINGW32__) #define strcasecmp _stricmp #endif /* not WIN32 */ static int create_mixed_text_table (sqlite3 * handle, const char *name, int srid, int text3D, sqlite3_stmt ** xstmt) { /* attempting to create the "Text-mixed" table */ char *sql; int ret; sqlite3_stmt *stmt; char *xname; *xstmt = NULL; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " filename TEXT NOT NULL, \n" " layer TEXT NOT NULL,\n" " label TEXT NOT NULL,\n" " rotation DOUBLE NOT NULL)", xname); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'geometry', " "%d, 'POINT', %Q)", name, srid, text3D ? "XYZ" : "XY"); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("ADD GEOMETRY %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'geometry')", name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE SPATIAL INDEX %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } if (!create_text_stmt (handle, name, &stmt)) return 0; *xstmt = stmt; return 1; } static int create_mixed_point_table (sqlite3 * handle, const char *name, int srid, int point3D, sqlite3_stmt ** xstmt) { /* attempting to create the "Point-mixed" table */ char *sql; int ret; sqlite3_stmt *stmt; char *xname; *xstmt = NULL; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " filename TEXT NOT NULL, \n" " layer TEXT NOT NULL)", xname); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'geometry', " "%d, 'POINT', %Q)", name, srid, point3D ? "XYZ" : "XY"); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("ADD GEOMETRY %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'geometry')", name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE SPATIAL INDEX %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } if (!create_point_stmt (handle, name, &stmt)) return 0; *xstmt = stmt; return 1; } static int create_mixed_line_table (sqlite3 * handle, const char *name, int srid, int line3D, sqlite3_stmt ** xstmt) { /* attempting to create the "Line-mixed" table */ char *sql; int ret; sqlite3_stmt *stmt; char *xname; *xstmt = NULL; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " filename TEXT NOT NULL, \n" " layer TEXT NOT NULL)", xname); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'geometry', " "%d, 'LINESTRING', %Q)", name, srid, line3D ? "XYZ" : "XY"); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("ADD GEOMETRY %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'geometry')", name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE SPATIAL INDEX %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } if (!create_line_stmt (handle, name, &stmt)) return 0; *xstmt = stmt; return 1; } static int create_mixed_polyg_table (sqlite3 * handle, const char *name, int srid, int polyg3D, sqlite3_stmt ** xstmt) { /* attempting to create the "Polyg-mixed" table */ char *sql; int ret; sqlite3_stmt *stmt; char *xname; *xstmt = NULL; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " filename TEXT NOT NULL, \n" " layer TEXT NOT NULL)", xname); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'geometry', " "%d, 'POLYGON', %Q)", name, srid, polyg3D ? "XYZ" : "XY"); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("ADD GEOMETRY %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'geometry')", name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE SPATIAL INDEX %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } if (!create_polyg_stmt (handle, name, &stmt)) return 0; *xstmt = stmt; return 1; } static int create_mixed_hatch_table (sqlite3 * handle, const char *name, int srid, sqlite3_stmt ** xstmt, sqlite3_stmt ** xstmt2) { /* attempting to create the "Hatch-mixed" table */ char *sql; int ret; sqlite3_stmt *stmt; sqlite3_stmt *stmt2; char *xname; char *pattern; char *xpattern; char *fk_name; char *xfk_name; *xstmt = NULL; *xstmt2 = NULL; /* creating the Hatch-Boundary table */ xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " filename TEXT NOT NULL, \n" " layer TEXT NOT NULL)", xname); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'geometry', " "%d, 'MULTIPOLYGON', 'XY')", name, srid); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("ADD GEOMETRY %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'geometry')", name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE SPATIAL INDEX %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } /* creating the Hatch-Pattern table */ xname = gaiaDoubleQuotedSql (name); pattern = sqlite3_mprintf ("%s_pattern", name); xpattern = gaiaDoubleQuotedSql (pattern); fk_name = sqlite3_mprintf ("fk_%s_pattern", name); xfk_name = gaiaDoubleQuotedSql (fk_name); sqlite3_free (fk_name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " feature_id INTEGER PRIMARY KEY NOT NULL,\n" " filename TEXT NOT NULL, \n" " layer TEXT NOT NULL,\n" " CONSTRAINT \"%s\" FOREIGN KEY (feature_id) " " REFERENCES \"%s\" (feature_id))", xpattern, xfk_name, xname); free (xname); free (xfk_name); free (xpattern); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", pattern, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'geometry', " "%d, 'MULTILINESTRING', 'XY')", pattern, srid); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("ADD GEOMETRY %s error: %s\n", pattern, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'geometry')", pattern); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE SPATIAL INDEX %s error: %s\n", pattern, sqlite3_errmsg (handle)); return 0; } sqlite3_free (pattern); if (!create_hatch_boundary_stmt (handle, name, &stmt)) return 0; if (!create_hatch_pattern_stmt (handle, name, &stmt2)) return 0; *xstmt = stmt; *xstmt2 = stmt2; return 1; } static int create_mixed_text_extra_attr_table (sqlite3 * handle, const char *name, char *extra_name, sqlite3_stmt ** xstmt_ext) { /* attempting to create the "Text-mixed-extra-attr" table */ char *sql; int ret; sqlite3_stmt *stmt_ext; char *xname; char *xextra_name; char *fk_name; char *xfk_name; char *idx_name; char *xidx_name; char *view_name; char *xview_name; *xstmt_ext = NULL; fk_name = sqlite3_mprintf ("fk_%s", extra_name); xextra_name = gaiaDoubleQuotedSql (extra_name); xfk_name = gaiaDoubleQuotedSql (fk_name); xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " attr_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " feature_id INTEGER NOT NULL,\n" " attr_key TEXT NOT NULL,\n" " attr_value TEXT NOT NULL,\n" " CONSTRAINT \"%s\" FOREIGN KEY (feature_id) " "REFERENCES \"%s\" (feature_id))", xextra_name, xfk_name, xname); free (xextra_name); free (xfk_name); free (xname); sqlite3_free (fk_name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", extra_name, sqlite3_errmsg (handle)); return 0; } idx_name = sqlite3_mprintf ("idx_%s", extra_name); xidx_name = gaiaDoubleQuotedSql (idx_name); xextra_name = gaiaDoubleQuotedSql (extra_name); sql = sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (feature_id)", xidx_name, xextra_name); free (xidx_name); free (xextra_name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (idx_name); view_name = sqlite3_mprintf ("%s_view", name); xview_name = gaiaDoubleQuotedSql (view_name); xname = gaiaDoubleQuotedSql (name); xextra_name = gaiaDoubleQuotedSql (extra_name); sql = sqlite3_mprintf ("CREATE VIEW \"%s\" AS " "SELECT f.feature_id AS feature_id, f.filename AS filename, " "f.layer AS layer, f.label AS label, " "f.rotation AS rotation, f.geometry AS geometry, " "a.attr_id AS attr_id, a.attr_key AS attr_key, a.attr_value AS attr_value " "FROM \"%s\" AS f " "LEFT JOIN \"%s\" AS a ON (f.feature_id = a.feature_id)", xview_name, xname, xextra_name); free (xview_name); free (xname); free (xextra_name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW %s error: %s\n", view_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (view_name); if (!create_extra_stmt (handle, extra_name, &stmt_ext)) return 0; *xstmt_ext = stmt_ext; return 1; } static int create_mixed_point_extra_attr_table (sqlite3 * handle, const char *name, char *extra_name, sqlite3_stmt ** xstmt_ext) { /* attempting to create the "Point-mixed-extra-attr" table */ char *sql; int ret; sqlite3_stmt *stmt_ext; char *xname; char *xextra_name; char *fk_name; char *xfk_name; char *idx_name; char *xidx_name; char *view_name; char *xview_name; *xstmt_ext = NULL; fk_name = sqlite3_mprintf ("fk_%s", extra_name); xextra_name = gaiaDoubleQuotedSql (extra_name); xfk_name = gaiaDoubleQuotedSql (fk_name); xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " attr_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " feature_id INTEGER NOT NULL,\n" " attr_key TEXT NOT NULL,\n" " attr_value TEXT NOT NULL,\n" " CONSTRAINT \"%s\" FOREIGN KEY (feature_id) " "REFERENCES \"%s\" (feature_id))", xextra_name, xfk_name, xname); free (xfk_name); free (xname); free (xextra_name); sqlite3_free (fk_name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", extra_name, sqlite3_errmsg (handle)); return 0; } idx_name = sqlite3_mprintf ("idx_%s", extra_name); xidx_name = gaiaDoubleQuotedSql (idx_name); xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (feature_id)", xidx_name, xname); free (xidx_name); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (idx_name); view_name = sqlite3_mprintf ("%s_view", name); xview_name = gaiaDoubleQuotedSql (view_name); xname = gaiaDoubleQuotedSql (name); xextra_name = gaiaDoubleQuotedSql (extra_name); sql = sqlite3_mprintf ("CREATE VIEW \"%s\" AS " "SELECT f.feature_id AS feature_id, f.filename AS filename, " "f.layer AS layer, f.geometry AS geometry, " "a.attr_id AS attr_id, a.attr_key AS attr_key, a.attr_value AS attr_value " "FROM \"%s\" AS f " "LEFT JOIN \"%s\" AS a ON (f.feature_id = a.feature_id)", xview_name, xname, xextra_name); free (xview_name); free (xname); free (xextra_name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW %s error: %s\n", view_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (view_name); if (!create_extra_stmt (handle, extra_name, &stmt_ext)) return 0; *xstmt_ext = stmt_ext; return 1; } static int create_mixed_line_extra_attr_table (sqlite3 * handle, const char *name, char *extra_name, sqlite3_stmt ** xstmt_ext) { /* attempting to create the "Line-mixed-extra-attr" table */ char *sql; int ret; sqlite3_stmt *stmt_ext; char *xname; char *xextra_name; char *fk_name; char *xfk_name; char *idx_name; char *xidx_name; char *view_name; char *xview_name; *xstmt_ext = NULL; fk_name = sqlite3_mprintf ("fk_%s", extra_name); xextra_name = gaiaDoubleQuotedSql (extra_name); xfk_name = gaiaDoubleQuotedSql (fk_name); xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " attr_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " feature_id INTEGER NOT NULL,\n" " attr_key TEXT NOT NULL,\n" " attr_value TEXT NOT NULL,\n" " CONSTRAINT \"%s\" FOREIGN KEY (feature_id) " "REFERENCES \"%s\" (feature_id))", xextra_name, xfk_name, xname); free (xextra_name); free (xfk_name); free (xname); sqlite3_free (fk_name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", extra_name, sqlite3_errmsg (handle)); return 0; } idx_name = sqlite3_mprintf ("idx_%s", extra_name); xidx_name = gaiaDoubleQuotedSql (idx_name); xextra_name = gaiaDoubleQuotedSql (extra_name); sql = sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (feature_id)", xidx_name, xextra_name); free (xidx_name); free (xextra_name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (idx_name); view_name = sqlite3_mprintf ("%s_view", extra_name); xview_name = gaiaDoubleQuotedSql (view_name); xname = gaiaDoubleQuotedSql (name); xextra_name = gaiaDoubleQuotedSql (extra_name); sql = sqlite3_mprintf ("CREATE VIEW \"%s\" AS " "SELECT f.feature_id AS feature_id, f.filename AS filename, " "f.layer AS layer, f.geometry AS geometry, " "a.attr_id AS attr_id, a.attr_key AS attr_key, a.attr_value AS attr_value " "FROM \"%s\" AS f " "LEFT JOIN \"%s\" AS a ON (f.feature_id = a.feature_id)", xview_name, xname, xextra_name); free (xview_name); free (xname); free (xextra_name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW %s error: %s\n", view_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (view_name); if (!create_extra_stmt (handle, extra_name, &stmt_ext)) return 0; *xstmt_ext = stmt_ext; return 1; } static int create_mixed_polyg_extra_attr_table (sqlite3 * handle, const char *name, char *extra_name, sqlite3_stmt ** xstmt_ext) { /* attempting to create the "Polyg-mixed-extra-attr" table */ char *sql; int ret; sqlite3_stmt *stmt_ext; char *xname; char *xextra_name; char *fk_name; char *xfk_name; char *idx_name; char *xidx_name; char *view_name; char *xview_name; *xstmt_ext = NULL; fk_name = sqlite3_mprintf ("fk_%s", extra_name); xextra_name = gaiaDoubleQuotedSql (extra_name); xfk_name = gaiaDoubleQuotedSql (fk_name); xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " attr_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " feature_id INTEGER NOT NULL,\n" " attr_key TEXT NOT NULL,\n" " attr_value TEXT NOT NULL,\n" " CONSTRAINT \"%s\" FOREIGN KEY (feature_id) " "REFERENCES \"%s\" (feature_id))", xextra_name, xfk_name, xname); free (xextra_name); free (xfk_name); free (xname); sqlite3_free (fk_name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", extra_name, sqlite3_errmsg (handle)); return 0; } idx_name = sqlite3_mprintf ("idx_%s", extra_name); xidx_name = gaiaDoubleQuotedSql (idx_name); xextra_name = gaiaDoubleQuotedSql (extra_name); sql = sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (feature_id)", xidx_name, xextra_name); free (xidx_name); free (xextra_name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (idx_name); view_name = sqlite3_mprintf ("%s_view", name); xview_name = gaiaDoubleQuotedSql (view_name); xname = gaiaDoubleQuotedSql (name); xextra_name = gaiaDoubleQuotedSql (extra_name); sql = sqlite3_mprintf ("CREATE VIEW \"%s\" AS " "SELECT f.feature_id AS feature_id, f.filename AS filename, " "f.layer AS layer, f.geometry AS geometry, " "a.attr_id AS attr_id, a.attr_key AS attr_key, a.attr_value AS attr_value " "FROM \"%s\" AS f " "LEFT JOIN \"%s\" AS a ON (f.feature_id = a.feature_id)", xview_name, xname, xextra_name); free (xview_name); free (xname); free (xextra_name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW %s error: %s\n", view_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (view_name); if (!create_extra_stmt (handle, extra_name, &stmt_ext)) return 0; *xstmt_ext = stmt_ext; return 1; } DXF_PRIVATE int import_mixed (sqlite3 * handle, gaiaDxfParserPtr dxf, int append) { /* populating the target DB - all layers mixed altogether */ int text = 0; int point = 0; int line = 0; int polyg = 0; int hatch = 0; int insText = 0; int insPoint = 0; int insLine = 0; int insPolyg = 0; int insHatch = 0; int hasExtraText = 0; int hasExtraPoint = 0; int hasExtraLine = 0; int hasExtraPolyg = 0; int hasExtraInsText = 0; int hasExtraInsPoint = 0; int hasExtraInsLine = 0; int hasExtraInsPolyg = 0; int text3D = 0; int point3D = 0; int line3D = 0; int polyg3D = 0; int insText3D = 0; int insPoint3D = 0; int insLine3D = 0; int insPolyg3D = 0; int ret; sqlite3_stmt *stmt; sqlite3_stmt *stmt_ext; sqlite3_stmt *stmt_pattern; unsigned char *blob; int blob_size; gaiaGeomCollPtr geom; char *name; char *extra_name; char *block; gaiaDxfLayerPtr lyr = dxf->first_layer; while (lyr != NULL) { /* exploring Layers by type */ if (lyr->first_text != NULL) text = 1; if (lyr->first_point != NULL) point = 1; if (lyr->first_line != NULL) line = 1; if (lyr->first_polyg != NULL) polyg = 1; if (lyr->first_hatch != NULL) hatch = 1; if (lyr->first_ins_text != NULL) insText = 1; if (lyr->first_ins_point != NULL) insPoint = 1; if (lyr->first_ins_line != NULL) insLine = 1; if (lyr->first_ins_polyg != NULL) insPolyg = 1; if (lyr->first_ins_hatch != NULL) insHatch = 1; if (lyr->hasExtraText) hasExtraText = 1; if (lyr->hasExtraPoint) hasExtraPoint = 1; if (lyr->hasExtraLine) hasExtraLine = 1; if (lyr->hasExtraPolyg) hasExtraPolyg = 1; if (lyr->hasExtraInsText) hasExtraInsText = 1; if (lyr->hasExtraInsPoint) hasExtraInsPoint = 1; if (lyr->hasExtraInsLine) hasExtraInsLine = 1; if (lyr->hasExtraInsPolyg) hasExtraInsPolyg = 1; if (lyr->is3Dtext) text3D = 1; if (lyr->is3Dpoint) point3D = 1; if (lyr->is3Dline) line3D = 1; if (lyr->is3Dpolyg) polyg3D = 1; if (lyr->is3DinsText) insText3D = 1; if (lyr->is3DinsPoint) insPoint3D = 1; if (lyr->is3DinsLine) insLine3D = 1; if (lyr->is3DinsPolyg) insPolyg3D = 1; lyr = lyr->next; } if (text) { /* creating and populating the TEXT layer */ stmt_ext = NULL; extra_name = NULL; if (dxf->prefix == NULL) name = sqlite3_mprintf ("text_layer_%s", text3D ? "3d" : "2d"); else name = sqlite3_mprintf ("%stext_layer_%s", dxf->prefix, text3D ? "3d" : "2d"); if (append && check_text_table (handle, name, dxf->srid, text3D)) { /* appending into the already existing table */ if (!create_text_stmt (handle, name, &stmt)) return 0; } else { /* creating a new table */ if (!create_mixed_text_table (handle, name, dxf->srid, text3D, &stmt)) return 0; } if (hasExtraText) { extra_name = create_extra_attr_table_name (name); if (append && check_extra_attr_table (handle, extra_name)) { /* appending into the already existing table */ if (!create_extra_stmt (handle, extra_name, &stmt_ext)) return 0; } else { /* creating the Extra Attribute table */ if (!create_mixed_text_extra_attr_table (handle, name, extra_name, &stmt_ext)) { sqlite3_finalize (stmt); return 0; } } } ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("BEGIN %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); return 0; } lyr = dxf->first_layer; while (lyr != NULL) { gaiaDxfTextPtr txt = lyr->first_text; while (txt != NULL) { sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, dxf->filename, strlen (dxf->filename), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, lyr->layer_name, strlen (lyr->layer_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 3, txt->label, strlen (txt->label), SQLITE_STATIC); sqlite3_bind_double (stmt, 4, txt->angle); if (text3D) geom = gaiaAllocGeomCollXYZ (); else geom = gaiaAllocGeomColl (); geom->Srid = dxf->srid; if (text3D) gaiaAddPointToGeomCollXYZ (geom, txt->x, txt->y, txt->z); else gaiaAddPointToGeomColl (geom, txt->x, txt->y); gaiaToSpatiaLiteBlobWkb (geom, &blob, &blob_size); gaiaFreeGeomColl (geom); sqlite3_bind_blob (stmt, 5, blob, blob_size, free); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); return 0; } if (stmt_ext != NULL) { /* inserting all Extra Attributes */ sqlite3_int64 feature_id = sqlite3_last_insert_rowid (handle); gaiaDxfExtraAttrPtr ext = txt->first; while (ext != NULL) { sqlite3_reset (stmt_ext); sqlite3_clear_bindings (stmt_ext); sqlite3_bind_int64 (stmt_ext, 1, feature_id); sqlite3_bind_text (stmt_ext, 2, ext->key, strlen (ext->key), SQLITE_STATIC); sqlite3_bind_text (stmt_ext, 3, ext->value, strlen (ext->value), SQLITE_STATIC); ret = sqlite3_step (stmt_ext); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", extra_name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); return 0; } ext = ext->next; } } txt = txt->next; } lyr = lyr->next; } sqlite3_free (name); if (extra_name) sqlite3_free (extra_name); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("COMMIT text_layer error: %s\n", sqlite3_errmsg (handle)); return 0; } } if (point) { /* creating and populating the POINT layer */ stmt_ext = NULL; extra_name = NULL; if (dxf->prefix == NULL) name = sqlite3_mprintf ("point_layer_%s", point3D ? "3d" : "2d"); else name = sqlite3_mprintf ("%spoint_layer_%s", dxf->prefix, point3D ? "3d" : "2d"); if (append && check_point_table (handle, name, dxf->srid, point3D)) { /* appending into the already existing table */ if (!create_point_stmt (handle, name, &stmt)) return 0; } else { /* creating a new table */ if (!create_mixed_point_table (handle, name, dxf->srid, point3D, &stmt)) return 0; } if (hasExtraPoint) { extra_name = create_extra_attr_table_name (name); if (append && check_extra_attr_table (handle, extra_name)) { /* appending into the already existing table */ if (!create_extra_stmt (handle, extra_name, &stmt_ext)) return 0; } else { /* creating the Extra Attribute table */ if (!create_mixed_point_extra_attr_table (handle, name, extra_name, &stmt_ext)) { sqlite3_finalize (stmt); return 0; } } } ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("BEGIN %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); return 0; } lyr = dxf->first_layer; while (lyr != NULL) { gaiaDxfPointPtr pt = lyr->first_point; while (pt != NULL) { sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, dxf->filename, strlen (dxf->filename), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, lyr->layer_name, strlen (lyr->layer_name), SQLITE_STATIC); if (point3D) geom = gaiaAllocGeomCollXYZ (); else geom = gaiaAllocGeomColl (); geom->Srid = dxf->srid; if (point3D) gaiaAddPointToGeomCollXYZ (geom, pt->x, pt->y, pt->z); else gaiaAddPointToGeomColl (geom, pt->x, pt->y); gaiaToSpatiaLiteBlobWkb (geom, &blob, &blob_size); gaiaFreeGeomColl (geom); sqlite3_bind_blob (stmt, 3, blob, blob_size, free); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); return 0; } if (stmt_ext != NULL) { /* inserting all Extra Attributes */ sqlite3_int64 feature_id = sqlite3_last_insert_rowid (handle); gaiaDxfExtraAttrPtr ext = pt->first; while (ext != NULL) { sqlite3_reset (stmt_ext); sqlite3_clear_bindings (stmt_ext); sqlite3_bind_int64 (stmt_ext, 1, feature_id); sqlite3_bind_text (stmt_ext, 2, ext->key, strlen (ext->key), SQLITE_STATIC); sqlite3_bind_text (stmt_ext, 3, ext->value, strlen (ext->value), SQLITE_STATIC); ret = sqlite3_step (stmt_ext); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", extra_name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); return 0; } ext = ext->next; } } pt = pt->next; } lyr = lyr->next; } sqlite3_free (name); if (extra_name) sqlite3_free (extra_name); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("COMMIT point_layer error: %s\n", sqlite3_errmsg (handle)); return 0; } } if (line) { /* creating and populating the LINE layer */ stmt_ext = NULL; extra_name = NULL; if (dxf->prefix == NULL) name = sqlite3_mprintf ("line_layer_%s", line3D ? "3d" : "2d"); else name = sqlite3_mprintf ("%sline_layer_%s", dxf->prefix, line3D ? "3d" : "2d"); if (append && check_line_table (handle, name, dxf->srid, line3D)) { /* appending into the already existing table */ if (!create_line_stmt (handle, name, &stmt)) return 0; } else { /* creating a new table */ if (!create_mixed_line_table (handle, name, dxf->srid, line3D, &stmt)) return 0; } if (hasExtraLine) { extra_name = create_extra_attr_table_name (name); if (append && check_extra_attr_table (handle, extra_name)) { /* appending into the already existing table */ if (!create_extra_stmt (handle, extra_name, &stmt_ext)) return 0; } else { /* creating the Extra Attribute table */ if (!create_mixed_line_extra_attr_table (handle, name, extra_name, &stmt_ext)) { sqlite3_finalize (stmt); return 0; } } } ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("BEGIN %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); return 0; } lyr = dxf->first_layer; while (lyr != NULL) { gaiaDxfPolylinePtr ln = lyr->first_line; while (ln != NULL) { int iv; gaiaLinestringPtr p_ln; sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, dxf->filename, strlen (dxf->filename), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, lyr->layer_name, strlen (lyr->layer_name), SQLITE_STATIC); if (line3D) geom = gaiaAllocGeomCollXYZ (); else geom = gaiaAllocGeomColl (); geom->Srid = dxf->srid; gaiaAddLinestringToGeomColl (geom, ln->points); p_ln = geom->FirstLinestring; for (iv = 0; iv < ln->points; iv++) { if (line3D) { gaiaSetPointXYZ (p_ln->Coords, iv, *(ln->x + iv), *(ln->y + iv), *(ln->z + iv)); } else { gaiaSetPoint (p_ln->Coords, iv, *(ln->x + iv), *(ln->y + iv)); } } gaiaToSpatiaLiteBlobWkb (geom, &blob, &blob_size); gaiaFreeGeomColl (geom); sqlite3_bind_blob (stmt, 3, blob, blob_size, free); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); return 0; } if (stmt_ext != NULL) { /* inserting all Extra Attributes */ sqlite3_int64 feature_id = sqlite3_last_insert_rowid (handle); gaiaDxfExtraAttrPtr ext = ln->first; while (ext != NULL) { sqlite3_reset (stmt_ext); sqlite3_clear_bindings (stmt_ext); sqlite3_bind_int64 (stmt_ext, 1, feature_id); sqlite3_bind_text (stmt_ext, 2, ext->key, strlen (ext->key), SQLITE_STATIC); sqlite3_bind_text (stmt_ext, 3, ext->value, strlen (ext->value), SQLITE_STATIC); ret = sqlite3_step (stmt_ext); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", extra_name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); return 0; } ext = ext->next; } } ln = ln->next; } lyr = lyr->next; } sqlite3_free (name); if (extra_name) sqlite3_free (extra_name); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("COMMIT line_layer error: %s\n", sqlite3_errmsg (handle)); return 0; } } if (polyg) { /* creating and populating the POLYG layer */ stmt_ext = NULL; extra_name = NULL; if (dxf->prefix == NULL) name = sqlite3_mprintf ("polyg_layer_%s", polyg3D ? "3d" : "2d"); else name = sqlite3_mprintf ("%spolyg_layer_%s", dxf->prefix, polyg3D ? "3d" : "2d"); if (append && check_polyg_table (handle, name, dxf->srid, polyg3D)) { /* appending into the already existing table */ if (!create_polyg_stmt (handle, name, &stmt)) return 0; } else { /* creating a new table */ if (!create_mixed_polyg_table (handle, name, dxf->srid, polyg3D, &stmt)) return 0; } if (hasExtraPolyg) { extra_name = create_extra_attr_table_name (name); if (append && check_extra_attr_table (handle, extra_name)) { /* appending into the already existing table */ if (!create_extra_stmt (handle, extra_name, &stmt_ext)) return 0; } else { /* creating the Extra Attribute table */ if (!create_mixed_polyg_extra_attr_table (handle, name, extra_name, &stmt_ext)) { sqlite3_finalize (stmt); return 0; } } } ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("BEGIN %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); return 0; } lyr = dxf->first_layer; while (lyr != NULL) { gaiaDxfPolylinePtr pg = lyr->first_polyg; while (pg != NULL) { gaiaDxfHolePtr hole; int num_holes; int iv; gaiaPolygonPtr p_pg; gaiaRingPtr p_rng; sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, dxf->filename, strlen (dxf->filename), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, lyr->layer_name, strlen (lyr->layer_name), SQLITE_STATIC); if (polyg3D) geom = gaiaAllocGeomCollXYZ (); else geom = gaiaAllocGeomColl (); geom->Srid = dxf->srid; num_holes = 0; hole = pg->first_hole; while (hole != NULL) { num_holes++; hole = hole->next; } gaiaAddPolygonToGeomColl (geom, pg->points, num_holes); p_pg = geom->FirstPolygon; p_rng = p_pg->Exterior; for (iv = 0; iv < pg->points; iv++) { if (lyr->is3Dpolyg) { gaiaSetPointXYZ (p_rng->Coords, iv, *(pg->x + iv), *(pg->y + iv), *(pg->z + iv)); } else { gaiaSetPoint (p_rng->Coords, iv, *(pg->x + iv), *(pg->y + iv)); } } num_holes = 0; hole = pg->first_hole; while (hole != NULL) { p_rng = gaiaAddInteriorRing (p_pg, num_holes, hole->points); for (iv = 0; iv < hole->points; iv++) { if (lyr->is3Dpolyg) { gaiaSetPointXYZ (p_rng->Coords, iv, *(hole->x + iv), *(hole->y + iv), *(hole->z + iv)); } else { gaiaSetPoint (p_rng->Coords, iv, *(hole->x + iv), *(hole->y + iv)); } } num_holes++; hole = hole->next; } gaiaToSpatiaLiteBlobWkb (geom, &blob, &blob_size); gaiaFreeGeomColl (geom); sqlite3_bind_blob (stmt, 3, blob, blob_size, free); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); return 0; } if (stmt_ext != NULL) { /* inserting all Extra Attributes */ sqlite3_int64 feature_id = sqlite3_last_insert_rowid (handle); gaiaDxfExtraAttrPtr ext = pg->first; while (ext != NULL) { sqlite3_reset (stmt_ext); sqlite3_clear_bindings (stmt_ext); sqlite3_bind_int64 (stmt_ext, 1, feature_id); sqlite3_bind_text (stmt_ext, 2, ext->key, strlen (ext->key), SQLITE_STATIC); sqlite3_bind_text (stmt_ext, 3, ext->value, strlen (ext->value), SQLITE_STATIC); ret = sqlite3_step (stmt_ext); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", extra_name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); return 0; } ext = ext->next; } } pg = pg->next; } lyr = lyr->next; } sqlite3_free (name); if (extra_name) sqlite3_free (extra_name); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("COMMIT polyg_layer error: %s\n", sqlite3_errmsg (handle)); return 0; } } if (hatch) { /* creating and populating the HATCH layer */ if (dxf->prefix == NULL) name = sqlite3_mprintf ("hatch_layer_2d"); else name = sqlite3_mprintf ("%shatch_layer_2d", dxf->prefix); if (append && check_hatch_tables (handle, name, dxf->srid)) { /* appending into the already existing tables */ if (!create_hatch_boundary_stmt (handle, name, &stmt)) return 0; if (!create_hatch_pattern_stmt (handle, name, &stmt_pattern)) return 0; } else { /* creating a new table */ if (!create_mixed_hatch_table (handle, name, dxf->srid, &stmt, &stmt_pattern)) return 0; } ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("BEGIN %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); return 0; } lyr = dxf->first_layer; while (lyr != NULL) { gaiaDxfHatchPtr hatch = lyr->first_hatch; while (hatch != NULL) { sqlite3_int64 feature_id; gaiaDxfHatchSegmPtr segm; /* inserting the Boundary Geometry */ sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, dxf->filename, strlen (dxf->filename), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, lyr->layer_name, strlen (lyr->layer_name), SQLITE_STATIC); if (hatch->boundary == NULL) sqlite3_bind_null (stmt, 3); else { gaiaToSpatiaLiteBlobWkb (hatch->boundary, &blob, &blob_size); sqlite3_bind_blob (stmt, 3, blob, blob_size, free); } ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); sqlite3_finalize (stmt_pattern); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); return 0; } feature_id = sqlite3_last_insert_rowid (handle); /* inserting the Pattern Geometry */ sqlite3_reset (stmt_pattern); sqlite3_clear_bindings (stmt_pattern); sqlite3_bind_int64 (stmt_pattern, 1, feature_id); sqlite3_bind_text (stmt_pattern, 2, dxf->filename, strlen (dxf->filename), SQLITE_STATIC); sqlite3_bind_text (stmt_pattern, 3, lyr->layer_name, strlen (lyr->layer_name), SQLITE_STATIC); if (hatch->first_out == NULL) sqlite3_bind_null (stmt_pattern, 4); else { geom = gaiaAllocGeomColl (); geom->Srid = dxf->srid; geom->DeclaredType = GAIA_MULTILINESTRING; segm = hatch->first_out; while (segm != NULL) { gaiaLinestringPtr p_ln = gaiaAddLinestringToGeomColl (geom, 2); gaiaSetPoint (p_ln->Coords, 0, segm->x0, segm->y0); gaiaSetPoint (p_ln->Coords, 1, segm->x1, segm->y1); segm = segm->next; } gaiaToSpatiaLiteBlobWkb (geom, &blob, &blob_size); gaiaFreeGeomColl (geom); sqlite3_bind_blob (stmt_pattern, 4, blob, blob_size, free); } ret = sqlite3_step (stmt_pattern); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); sqlite3_finalize (stmt_pattern); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); return 0; } hatch = hatch->next; } lyr = lyr->next; } sqlite3_free (name); sqlite3_finalize (stmt); sqlite3_finalize (stmt_pattern); ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("COMMIT hatch_layer error: %s\n", sqlite3_errmsg (handle)); return 0; } } if (insText) { /* creating and populating the INSERT (Text reference) layer */ stmt_ext = NULL; extra_name = NULL; if (dxf->prefix == NULL) name = sqlite3_mprintf ("instext_layer_%s", insText3D ? "3d" : "2d"); else name = sqlite3_mprintf ("%sinstext_layer_%s", dxf->prefix, insText3D ? "3d" : "2d"); if (append && check_insert_table (handle, name)) { /* appending into the already existing table */ if (!create_insert_stmt (handle, name, &stmt)) return 0; } else { /* creating a new table */ if (dxf->prefix == NULL) block = sqlite3_mprintf ("block_text_%s", insText3D ? "3d" : "2d"); else block = sqlite3_mprintf ("%sblock_text_%s", dxf->prefix, insText3D ? "3d" : "2d"); if (!create_instext_table (handle, name, block, insText3D, &stmt)) return 0; sqlite3_free (block); } if (hasExtraInsText) { extra_name = create_extra_attr_table_name (name); if (append && check_extra_attr_table (handle, extra_name)) { /* appending into the already existing table */ if (!create_extra_stmt (handle, extra_name, &stmt_ext)) return 0; } else { /* creating the Extra Attribute table */ if (!create_insert_extra_attr_table (handle, name, extra_name, &stmt_ext)) { sqlite3_finalize (stmt); return 0; } } } ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("BEGIN %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); return 0; } lyr = dxf->first_layer; while (lyr != NULL) { gaiaDxfInsertPtr ins = lyr->first_ins_text; while (ins != NULL) { sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, dxf->filename, strlen (dxf->filename), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, lyr->layer_name, strlen (lyr->layer_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 3, ins->block_id, strlen (ins->block_id), SQLITE_STATIC); sqlite3_bind_double (stmt, 4, ins->x); sqlite3_bind_double (stmt, 5, ins->y); sqlite3_bind_double (stmt, 6, ins->z); sqlite3_bind_double (stmt, 7, ins->scale_x); sqlite3_bind_double (stmt, 8, ins->scale_y); sqlite3_bind_double (stmt, 9, ins->scale_z); sqlite3_bind_double (stmt, 10, ins->angle); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); return 0; } if (stmt_ext != NULL) { /* inserting all Extra Attributes */ sqlite3_int64 feature_id = sqlite3_last_insert_rowid (handle); gaiaDxfExtraAttrPtr ext = ins->first; while (ext != NULL) { sqlite3_reset (stmt_ext); sqlite3_clear_bindings (stmt_ext); sqlite3_bind_int64 (stmt_ext, 1, feature_id); sqlite3_bind_text (stmt_ext, 2, ext->key, strlen (ext->key), SQLITE_STATIC); sqlite3_bind_text (stmt_ext, 3, ext->value, strlen (ext->value), SQLITE_STATIC); ret = sqlite3_step (stmt_ext); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", extra_name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); return 0; } ext = ext->next; } } ins = ins->next; } lyr = lyr->next; } sqlite3_free (name); if (extra_name) sqlite3_free (extra_name); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("COMMIT hatch_layer error: %s\n", sqlite3_errmsg (handle)); return 0; } } if (insPoint) { /* creating and populating the INSERT (Point reference) layer */ stmt_ext = NULL; extra_name = NULL; if (dxf->prefix == NULL) name = sqlite3_mprintf ("inspoint_layer_%s", insPoint3D ? "3d" : "2d"); else name = sqlite3_mprintf ("%sinspoint_layer_%s", dxf->prefix, insPoint3D ? "3d" : "2d"); if (append && check_insert_table (handle, name)) { /* appending into the already existing table */ if (!create_insert_stmt (handle, name, &stmt)) return 0; } else { /* creating a new table */ if (dxf->prefix == NULL) block = sqlite3_mprintf ("block_point_%s", insPoint3D ? "3d" : "2d"); else block = sqlite3_mprintf ("%sblock_point_%s", dxf->prefix, insPoint3D ? "3d" : "2d"); if (!create_inspoint_table (handle, name, block, insPoint3D, &stmt)) return 0; sqlite3_free (block); } if (hasExtraInsPoint) { extra_name = create_extra_attr_table_name (name); if (append && check_extra_attr_table (handle, extra_name)) { /* appending into the already existing table */ if (!create_extra_stmt (handle, extra_name, &stmt_ext)) return 0; } else { /* creating the Extra Attribute table */ if (!create_insert_extra_attr_table (handle, name, extra_name, &stmt_ext)) { sqlite3_finalize (stmt); return 0; } } } ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("BEGIN %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); return 0; } lyr = dxf->first_layer; while (lyr != NULL) { gaiaDxfInsertPtr ins = lyr->first_ins_point; while (ins != NULL) { sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, dxf->filename, strlen (dxf->filename), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, lyr->layer_name, strlen (lyr->layer_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 3, ins->block_id, strlen (ins->block_id), SQLITE_STATIC); sqlite3_bind_double (stmt, 4, ins->x); sqlite3_bind_double (stmt, 5, ins->y); sqlite3_bind_double (stmt, 6, ins->z); sqlite3_bind_double (stmt, 7, ins->scale_x); sqlite3_bind_double (stmt, 8, ins->scale_y); sqlite3_bind_double (stmt, 9, ins->scale_z); sqlite3_bind_double (stmt, 10, ins->angle); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); return 0; } if (stmt_ext != NULL) { /* inserting all Extra Attributes */ sqlite3_int64 feature_id = sqlite3_last_insert_rowid (handle); gaiaDxfExtraAttrPtr ext = ins->first; while (ext != NULL) { sqlite3_reset (stmt_ext); sqlite3_clear_bindings (stmt_ext); sqlite3_bind_int64 (stmt_ext, 1, feature_id); sqlite3_bind_text (stmt_ext, 2, ext->key, strlen (ext->key), SQLITE_STATIC); sqlite3_bind_text (stmt_ext, 3, ext->value, strlen (ext->value), SQLITE_STATIC); ret = sqlite3_step (stmt_ext); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", extra_name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); return 0; } ext = ext->next; } } ins = ins->next; } lyr = lyr->next; } sqlite3_free (name); if (extra_name) sqlite3_free (extra_name); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("COMMIT hatch_layer error: %s\n", sqlite3_errmsg (handle)); return 0; } } if (insLine) { /* creating and populating the INSERT (Linestring reference) layer */ stmt_ext = NULL; extra_name = NULL; if (dxf->prefix == NULL) name = sqlite3_mprintf ("insline_layer_%s", insLine3D ? "3d" : "2d"); else name = sqlite3_mprintf ("%sinsline_layer_%s", dxf->prefix, insLine3D ? "3d" : "2d"); if (append && check_insert_table (handle, name)) { /* appending into the already existing table */ if (!create_insert_stmt (handle, name, &stmt)) return 0; } else { /* creating a new table */ if (dxf->prefix == NULL) block = sqlite3_mprintf ("block_line_%s", insLine3D ? "3d" : "2d"); else block = sqlite3_mprintf ("%sblock_line_%s", dxf->prefix, insLine3D ? "3d" : "2d"); if (!create_insline_table (handle, name, block, insLine3D, &stmt)) return 0; sqlite3_free (block); } if (hasExtraInsLine) { extra_name = create_extra_attr_table_name (name); if (append && check_extra_attr_table (handle, extra_name)) { /* appending into the already existing table */ if (!create_extra_stmt (handle, extra_name, &stmt_ext)) return 0; } else { /* creating the Extra Attribute table */ if (!create_insert_extra_attr_table (handle, name, extra_name, &stmt_ext)) { sqlite3_finalize (stmt); return 0; } } } ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("BEGIN %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); return 0; } lyr = dxf->first_layer; while (lyr != NULL) { gaiaDxfInsertPtr ins = lyr->first_ins_line; while (ins != NULL) { sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, dxf->filename, strlen (dxf->filename), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, lyr->layer_name, strlen (lyr->layer_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 3, ins->block_id, strlen (ins->block_id), SQLITE_STATIC); sqlite3_bind_double (stmt, 4, ins->x); sqlite3_bind_double (stmt, 5, ins->y); sqlite3_bind_double (stmt, 6, ins->z); sqlite3_bind_double (stmt, 7, ins->scale_x); sqlite3_bind_double (stmt, 8, ins->scale_y); sqlite3_bind_double (stmt, 9, ins->scale_z); sqlite3_bind_double (stmt, 10, ins->angle); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); return 0; } if (stmt_ext != NULL) { /* inserting all Extra Attributes */ sqlite3_int64 feature_id = sqlite3_last_insert_rowid (handle); gaiaDxfExtraAttrPtr ext = ins->first; while (ext != NULL) { sqlite3_reset (stmt_ext); sqlite3_clear_bindings (stmt_ext); sqlite3_bind_int64 (stmt_ext, 1, feature_id); sqlite3_bind_text (stmt_ext, 2, ext->key, strlen (ext->key), SQLITE_STATIC); sqlite3_bind_text (stmt_ext, 3, ext->value, strlen (ext->value), SQLITE_STATIC); ret = sqlite3_step (stmt_ext); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", extra_name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); return 0; } ext = ext->next; } } ins = ins->next; } lyr = lyr->next; } sqlite3_free (name); if (extra_name) sqlite3_free (extra_name); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("COMMIT hatch_layer error: %s\n", sqlite3_errmsg (handle)); return 0; } } if (insPolyg) { /* creating and populating the INSERT (Polygon reference) layer */ stmt_ext = NULL; extra_name = NULL; if (dxf->prefix == NULL) name = sqlite3_mprintf ("inspolyg_layer_%s", insPolyg3D ? "3d" : "2d"); else name = sqlite3_mprintf ("%sinspolyg_layer_%s", dxf->prefix, insPolyg3D ? "3d" : "2d"); if (append && check_insert_table (handle, name)) { /* appending into the already existing table */ if (!create_insert_stmt (handle, name, &stmt)) return 0; } else { /* creating a new table */ if (dxf->prefix == NULL) block = sqlite3_mprintf ("block_polyg_%s", insPolyg3D ? "3d" : "2d"); else block = sqlite3_mprintf ("%sblock_polyg_%s", dxf->prefix, insPolyg3D ? "3d" : "2d"); if (!create_inspolyg_table (handle, name, block, insPolyg3D, &stmt)) return 0; sqlite3_free (block); } if (hasExtraInsPolyg) { extra_name = create_extra_attr_table_name (name); if (append && check_extra_attr_table (handle, extra_name)) { /* appending into the already existing table */ if (!create_extra_stmt (handle, extra_name, &stmt_ext)) return 0; } else { /* creating the Extra Attribute table */ if (!create_insert_extra_attr_table (handle, name, extra_name, &stmt_ext)) { sqlite3_finalize (stmt); return 0; } } } ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("BEGIN %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); return 0; } lyr = dxf->first_layer; while (lyr != NULL) { gaiaDxfInsertPtr ins = lyr->first_ins_polyg; while (ins != NULL) { sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, dxf->filename, strlen (dxf->filename), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, lyr->layer_name, strlen (lyr->layer_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 3, ins->block_id, strlen (ins->block_id), SQLITE_STATIC); sqlite3_bind_double (stmt, 4, ins->x); sqlite3_bind_double (stmt, 5, ins->y); sqlite3_bind_double (stmt, 6, ins->z); sqlite3_bind_double (stmt, 7, ins->scale_x); sqlite3_bind_double (stmt, 8, ins->scale_y); sqlite3_bind_double (stmt, 9, ins->scale_z); sqlite3_bind_double (stmt, 10, ins->angle); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); return 0; } if (stmt_ext != NULL) { /* inserting all Extra Attributes */ sqlite3_int64 feature_id = sqlite3_last_insert_rowid (handle); gaiaDxfExtraAttrPtr ext = ins->first; while (ext != NULL) { sqlite3_reset (stmt_ext); sqlite3_clear_bindings (stmt_ext); sqlite3_bind_int64 (stmt_ext, 1, feature_id); sqlite3_bind_text (stmt_ext, 2, ext->key, strlen (ext->key), SQLITE_STATIC); sqlite3_bind_text (stmt_ext, 3, ext->value, strlen (ext->value), SQLITE_STATIC); ret = sqlite3_step (stmt_ext); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", extra_name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); return 0; } ext = ext->next; } } ins = ins->next; } lyr = lyr->next; } sqlite3_free (name); if (extra_name) sqlite3_free (extra_name); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("COMMIT hatch_layer error: %s\n", sqlite3_errmsg (handle)); return 0; } } if (insHatch) { /* creating and populating the INSERT (Hatch reference) layer */ stmt_ext = NULL; extra_name = NULL; if (dxf->prefix == NULL) name = sqlite3_mprintf ("inshatch_layer_2d"); else name = sqlite3_mprintf ("%sinshatch_layer_2d", dxf->prefix); if (append && check_insert_table (handle, name)) { /* appending into the already existing table */ if (!create_insert_stmt (handle, name, &stmt)) return 0; } else { /* creating a new table */ if (dxf->prefix == NULL) block = sqlite3_mprintf ("block_hatch_2d"); else block = sqlite3_mprintf ("%sblock_hatch_2d", dxf->prefix); if (!create_inshatch_table (handle, name, block, &stmt)) return 0; sqlite3_free (block); } ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("BEGIN %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); return 0; } lyr = dxf->first_layer; while (lyr != NULL) { gaiaDxfInsertPtr ins = lyr->first_ins_hatch; while (ins != NULL) { sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, dxf->filename, strlen (dxf->filename), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, lyr->layer_name, strlen (lyr->layer_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 3, ins->block_id, strlen (ins->block_id), SQLITE_STATIC); sqlite3_bind_double (stmt, 4, ins->x); sqlite3_bind_double (stmt, 5, ins->y); sqlite3_bind_double (stmt, 6, ins->z); sqlite3_bind_double (stmt, 7, ins->scale_x); sqlite3_bind_double (stmt, 8, ins->scale_y); sqlite3_bind_double (stmt, 9, ins->scale_z); sqlite3_bind_double (stmt, 10, ins->angle); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); return 0; } ins = ins->next; } lyr = lyr->next; } sqlite3_free (name); if (extra_name) sqlite3_free (extra_name); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("COMMIT hatch_layer error: %s\n", sqlite3_errmsg (handle)); return 0; } } return 1; } libspatialite-4.1.1/src/dxf/dxf_parser.c0000664000175000017500000024171712163502133015147 00000000000000/* dxf_parser.c -- implements DXF support [parsing] version 4.1, 2013 May 14 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include #include #include #include typedef struct dxf_segment { /* a DXF segment */ int valid; double ax; double ay; double az; double bx; double by; double bz; } dxfSegment; typedef dxfSegment *dxfSegmentPtr; typedef struct dxf_linked_segments { /* a collection of DXF segments */ int count; dxfSegmentPtr segments; } dxfLinkedSegments; typedef dxfLinkedSegments *dxfLinkedSegmentsPtr; typedef struct dxf_rings_collection { /* a collection of rings */ gaiaDxfPolylinePtr first; gaiaDxfPolylinePtr last; } dxfRingsCollection; typedef dxfRingsCollection *dxfRingsCollectionPtr; static gaiaDxfHatchSegmPtr alloc_dxf_hatch_segm (double x0, double y0, double x1, double y1) { /* allocating and initializing a DXF Hatch Segment object */ gaiaDxfHatchSegmPtr segm = malloc (sizeof (gaiaDxfHatchSegm)); segm->x0 = x0; segm->y0 = y0; segm->x1 = x1; segm->y1 = y1; segm->next = NULL; return segm; } static void destroy_dxf_hatch_segm (gaiaDxfHatchSegmPtr segm) { /* memory cleanup - destroying a DXF Hatch Segment object */ if (segm == NULL) return; free (segm); } static gaiaDxfBoundaryPathPtr alloc_dxf_boundary_path () { /* allocating and initializing a DXF Boundary Path object */ gaiaDxfBoundaryPathPtr path = malloc (sizeof (gaiaDxfBoundaryPath)); path->first = NULL; path->last = NULL; path->next = NULL; return path; } static void insert_dxf_boundary_segm (gaiaDxfBoundaryPathPtr path, gaiaDxfHatchSegmPtr segm) { /* inserting a Segment into a Boundary Path */ if (path->first == NULL) path->first = segm; if (path->last != NULL) path->last->next = segm; path->last = segm; } static void destroy_dxf_boundary_path (gaiaDxfBoundaryPathPtr path) { /* memory cleanup - destroying a DXF Boundary Path object */ gaiaDxfHatchSegmPtr segm; gaiaDxfHatchSegmPtr n_segm; if (path == NULL) return; segm = path->first; while (segm != NULL) { n_segm = segm->next; destroy_dxf_hatch_segm (segm); segm = n_segm; } free (path); } static gaiaDxfHatchPtr alloc_dxf_hatch () { /* allocating and initializing a DXF Pattern Hatch object */ gaiaDxfHatchPtr hatch = malloc (sizeof (gaiaDxfHatch)); hatch->spacing = 0.0; hatch->angle = 0.0; hatch->base_x = 0.0; hatch->base_y = 0.0; hatch->offset_x = 0.0; hatch->offset_y = 0.0; hatch->first = NULL; hatch->last = NULL; hatch->boundary = NULL; hatch->first_out = NULL; hatch->last_out = NULL; hatch->next = NULL; return hatch; } static void insert_dxf_boundary_path (gaiaDxfHatchPtr hatch, gaiaDxfBoundaryPathPtr path) { /* inserting a Boundary Path into a Hatch */ if (hatch->first == NULL) hatch->first = path; if (hatch->last != NULL) hatch->last->next = path; hatch->last = path; } static void insert_dxf_hatch_out (gaiaDxfHatchPtr hatch, gaiaDxfHatchSegmPtr segm) { /* inserting a Segment into a Hatch */ if (hatch->first_out == NULL) hatch->first_out = segm; if (hatch->last_out != NULL) hatch->last_out->next = segm; hatch->last_out = segm; } static void destroy_dxf_hatch (gaiaDxfHatchPtr hatch) { /* memory cleanup - destroying a DXF Pattern Hatch object */ gaiaDxfBoundaryPathPtr path; gaiaDxfBoundaryPathPtr n_path; gaiaDxfHatchSegmPtr out; gaiaDxfHatchSegmPtr n_out; if (hatch == NULL) return; path = hatch->first; while (path != NULL) { n_path = path->next; destroy_dxf_boundary_path (path); path = n_path; } if (hatch->boundary != NULL) gaiaFreeGeomColl (hatch->boundary); out = hatch->first_out; while (out != NULL) { n_out = out->next; destroy_dxf_hatch_segm (out); out = n_out; } free (hatch); } static int is_valid_dxf_hatch (gaiaDxfHatchPtr hatch) { /* testing for a valid Pattern Hatch */ if (hatch->first == NULL) return 0; return 1; } static void apply_vertical_hatch (gaiaGeomCollPtr boundary, gaiaGeomCollPtr geom, double spacing, double base_x) { /* vertical Pattern Hatch Lines */ double min_x = boundary->MinX; double max_x = boundary->MaxX; double min_y = boundary->MinY; double max_y = boundary->MaxY; double x; gaiaLinestringPtr ln; /* inserting all Hatch Lines into the collection */ x = base_x + boundary->MinX; while (x < max_x) { ln = gaiaAddLinestringToGeomColl (geom, 2); gaiaSetPoint (ln->Coords, 0, x, min_y); gaiaSetPoint (ln->Coords, 1, x, max_y); x += spacing; } x = base_x + boundary->MinX - spacing; while (x > min_x) { ln = gaiaAddLinestringToGeomColl (geom, 2); gaiaSetPoint (ln->Coords, 0, x, min_y); gaiaSetPoint (ln->Coords, 1, x, max_y); x -= spacing; } } static void apply_horizontal_hatch (gaiaGeomCollPtr boundary, gaiaGeomCollPtr geom, double spacing, double base_y) { /* horizontal Pattern Hatch Lines */ double min_x = boundary->MinX; double max_x = boundary->MaxX; double min_y = boundary->MinY; double max_y = boundary->MaxY; double y; gaiaLinestringPtr ln; /* inserting all Hatch Lines into the collection */ y = base_y + boundary->MinY; while (y < max_y) { ln = gaiaAddLinestringToGeomColl (geom, 2); gaiaSetPoint (ln->Coords, 0, min_x, y); gaiaSetPoint (ln->Coords, 1, max_x, y); y += spacing; } y = base_y + boundary->MinY - spacing; while (y > min_y) { ln = gaiaAddLinestringToGeomColl (geom, 2); gaiaSetPoint (ln->Coords, 0, min_x, y); gaiaSetPoint (ln->Coords, 1, max_x, y); y -= spacing; } } static void apply_hatch (gaiaGeomCollPtr boundary, gaiaGeomCollPtr geom, double angle, double spacing, double base_x, double base_y) { /* ordinary (slant) Pattern Hatch Lines */ double min_x = boundary->MinX; double max_x = boundary->MaxX; double min_y = boundary->MinY; double max_y = boundary->MaxY; double ext_x = max_x - min_x; double ext_y = max_y - min_y; double ext = (ext_x > ext_y) ? ext_x : ext_y; double mnx = (ext * 2.0) * -1.0; double mxx = ext * 3.0; double mny = (ext * 2.0) * -1.0; double mxy = ext * 3.0; gaiaLinestringPtr ln; double y; /* inserting all horizontal Hatch Lines into the collection */ y = 0.0; while (y < mxy) { ln = gaiaAddLinestringToGeomColl (geom, 2); gaiaSetPoint (ln->Coords, 0, mnx, y); gaiaSetPoint (ln->Coords, 1, mxx, y); y += spacing; } y = 0.0 - spacing; while (y > mny) { ln = gaiaAddLinestringToGeomColl (geom, 2); gaiaSetPoint (ln->Coords, 0, mnx, y); gaiaSetPoint (ln->Coords, 1, mxx, y); y -= spacing; } /* applying the required rotation */ gaiaRotateCoords (geom, angle * -1.0); /* translating into base position */ gaiaShiftCoords (geom, base_x + min_x, base_y + min_y); } static void create_dxf_hatch_lines (gaiaDxfHatchPtr hatch, int srid) { /* creating Pattern Hatch lines */ gaiaDxfBoundaryPathPtr path; gaiaDxfHatchSegmPtr out; gaiaDxfHatchSegmPtr n_out; gaiaGeomCollPtr geom; gaiaGeomCollPtr result; gaiaGeomCollPtr clipped; double angle; double x0; double y0; double x1; double y1; gaiaLinestringPtr ln; if (hatch == NULL) return; if (hatch->boundary != NULL) gaiaFreeGeomColl (hatch->boundary); out = hatch->first_out; while (out != NULL) { /* cleaning all Pattern Hatch lines */ n_out = out->next; destroy_dxf_hatch_segm (out); out = n_out; } hatch->boundary = NULL; hatch->first_out = NULL; hatch->last_out = NULL; /* creating the Pattern Boundary */ geom = gaiaAllocGeomColl (); path = hatch->first; while (path != NULL) { /* inserting Boundary lines */ out = path->first; while (out != NULL) { /* inserting all Boundary segments into the collection */ ln = gaiaAddLinestringToGeomColl (geom, 2); gaiaSetPoint (ln->Coords, 0, out->x0, out->y0); gaiaSetPoint (ln->Coords, 1, out->x1, out->y1); out = out->next; } path = path->next; } /* attempting to reassemble the Boundary */ result = gaiaPolygonize (geom, 0); gaiaFreeGeomColl (geom); if (result == NULL) return; gaiaMbrGeometry (result); result->Srid = srid; result->DeclaredType = GAIA_MULTIPOLYGON; hatch->boundary = result; if (hatch->spacing == 0.0) { /* no pattern filling, just the boundary */ return; } /* normalizing the angle */ angle = hatch->angle; while (angle >= 360.0) angle -= 360.0; while (angle <= -360.0) angle += 360; /* preparing the Hatch filling lines */ geom = gaiaAllocGeomColl (); if (angle == 90.0 || angle == -90.0 || angle == 270.0 || angle == -270.0) apply_vertical_hatch (result, geom, hatch->spacing, hatch->base_x); else if (angle == 0.0 || angle == 180 || angle == -180) apply_horizontal_hatch (result, geom, hatch->spacing, hatch->base_y); else apply_hatch (result, geom, angle, hatch->spacing, hatch->base_x, hatch->base_y); gaiaMbrGeometry (geom); clipped = gaiaGeometryIntersection (geom, result); gaiaFreeGeomColl (geom); if (clipped == NULL) return; ln = clipped->FirstLinestring; while (ln != NULL) { if (ln->Points == 2) { gaiaGetPoint (ln->Coords, 0, &x0, &y0); gaiaGetPoint (ln->Coords, 1, &x1, &y1); n_out = alloc_dxf_hatch_segm (x0, y0, x1, y1); insert_dxf_hatch_out (hatch, n_out); } ln = ln->Next; } gaiaFreeGeomColl (clipped); } static gaiaDxfHolePtr alloc_dxf_hole (int points) { /* allocating and initializing a DXF Polygon Hole object */ int i; gaiaDxfHolePtr hole = malloc (sizeof (gaiaDxfHole)); hole->points = points; hole->x = malloc (sizeof (double) * points); hole->y = malloc (sizeof (double) * points); hole->z = malloc (sizeof (double) * points); for (i = 0; i < points; i++) { *(hole->x + i) = 0.0; *(hole->y + i) = 0.0; *(hole->z + i) = 0.0; } hole->next = NULL; return hole; } static void insert_dxf_hole (gaiaDxfPolylinePtr line, gaiaDxfHolePtr hole) { /* inserting an Hole into a Polygon */ if (line->first_hole == NULL) line->first_hole = hole; if (line->last_hole != NULL) line->last_hole->next = hole; line->last_hole = hole; } static void destroy_dxf_hole (gaiaDxfHolePtr hole) { /* memory cleanup - destroying a DXF Hole object */ if (hole == NULL) return; if (hole->x != NULL) free (hole->x); if (hole->y != NULL) free (hole->y); if (hole->z != NULL) free (hole->z); free (hole); } static void linked_rings (gaiaDxfPolylinePtr line) { /* attempt to identify linked Polygon rings */ int i; int i2; int match = 0; double x; double y; double z; gaiaDxfHolePtr hole; dxfLinkedSegmentsPtr coll; dxfSegmentPtr seg; dxfSegmentPtr seg2; gaiaGeomCollPtr geom; gaiaGeomCollPtr result; gaiaPolygonPtr pg; gaiaRingPtr rng; int pgs; int ok; if (line == NULL) return; if (line->points <= 0) return; coll = malloc (sizeof (dxfLinkedSegments)); coll->count = line->points - 1; coll->segments = malloc (sizeof (dxfSegment) * coll->count); x = *(line->x + 0); y = *(line->y + 0); z = *(line->z + 0); for (i2 = 0, i = 1; i < line->points; i++, i2++) { /* initializing all segments */ seg = &(coll->segments[i2]); seg->valid = 1; seg->ax = x; seg->ay = y; seg->az = z; x = *(line->x + i); y = *(line->y + i); z = *(line->z + i); seg->bx = x; seg->by = y; seg->bz = z; } for (i = 0; i < coll->count - 1; i++) { /* testing for linked polygon holes */ seg = &(coll->segments[i]); if (seg->valid == 0) continue; for (i2 = i + 1; i2 < coll->count; i2++) { seg2 = &(coll->segments[i2]); if (seg2->valid == 0) continue; if ((seg->ax == seg2->ax && seg->ay == seg2->ay && seg->az == seg2->az && seg->bx == seg2->bx && seg->by == seg2->by && seg->bz == seg2->bz) || (seg->ax == seg2->bx && seg->ay == seg2->by && seg->az == seg2->bz && seg->bx == seg2->ax && seg->by == seg2->ay && seg->bz == seg2->az)) { /* found a linked segment */ seg->valid = 0; seg2->valid = 0; match = 1; } } } if (match == 0) { /* no link segment was found - quitting */ free (coll->segments); free (coll); return; } /* building a candidate geometry (multilinestring) */ geom = gaiaAllocGeomCollXYZ (); for (i = 0; i < coll->count; i++) { seg = &(coll->segments[i]); if (seg->valid) { /* inserting a valid segment into the collection */ gaiaLinestringPtr ln = gaiaAddLinestringToGeomColl (geom, 2); gaiaSetPointXYZ (ln->Coords, 0, seg->ax, seg->ay, seg->az); gaiaSetPointXYZ (ln->Coords, 1, seg->bx, seg->by, seg->bz); } } /* freeing the linked segments list */ free (coll->segments); free (coll); /* attempting to reassemble a polygon */ result = gaiaPolygonize (geom, 0); gaiaFreeGeomColl (geom); if (result == NULL) return; /* checking the returned polygon for validity */ pgs = 0; ok = 1; pg = result->FirstPolygon; while (pg != NULL) { pgs++; if (pg->NumInteriors == 0) ok = 0; pg = pg->Next; } if (ok == 1 && pgs == 1) { /* found a valid Polygon with internal holes(s) */ pg = result->FirstPolygon; rng = pg->Exterior; /* rebuilding the exterior ring */ free (line->x); free (line->y); free (line->z); line->points = rng->Points; line->x = malloc (sizeof (double) * line->points); line->y = malloc (sizeof (double) * line->points); line->z = malloc (sizeof (double) * line->points); for (i = 0; i < line->points; i++) { /* setting the exterior ring points */ gaiaGetPointXYZ (rng->Coords, i, &x, &y, &z); *(line->x + i) = x; *(line->y + i) = y; *(line->z + i) = z; } for (i2 = 0; i2 < pg->NumInteriors; i2++) { /* saving the Holes */ rng = pg->Interiors + i2; hole = alloc_dxf_hole (rng->Points); insert_dxf_hole (line, hole); for (i = 0; i < hole->points; i++) { /* setting the interior ring points */ gaiaGetPointXYZ (rng->Coords, i, &x, &y, &z); *(hole->x + i) = x; *(hole->y + i) = y; *(hole->z + i) = z; } } } gaiaFreeGeomColl (result); /* forcing the closure flag */ line->is_closed = 1; } static void insert_dxf_hatch (gaiaDxfParserPtr dxf, const char *layer_name, gaiaDxfHatchPtr hatch) { /* inserting a HATCH object into the appropriate Layer */ gaiaDxfLayerPtr lyr = dxf->first_layer; while (lyr != NULL) { if (strcmp (lyr->layer_name, layer_name) == 0) { /* found the matching Layer */ if (lyr->first_hatch == NULL) lyr->first_hatch = hatch; if (lyr->last_hatch != NULL) lyr->last_hatch->next = hatch; lyr->last_hatch = hatch; return; } lyr = lyr->next; } destroy_dxf_hatch (hatch); } static void insert_dxf_block_hatch (gaiaDxfParserPtr dxf, gaiaDxfHatchPtr hatch) { /* inserting a HATCH object into the current Block */ if (dxf->curr_block.first_hatch == NULL) dxf->curr_block.first_hatch = hatch; if (dxf->curr_block.last_hatch != NULL) dxf->curr_block.last_hatch->next = hatch; dxf->curr_block.last_hatch = hatch; } static gaiaDxfExtraAttrPtr alloc_dxf_extra () { /* allocating and initializing a DXF Extra Attribute object */ gaiaDxfExtraAttrPtr ext = malloc (sizeof (gaiaDxfExtraAttr)); ext->key = NULL; ext->value = NULL; ext->next = NULL; return ext; } static gaiaDxfExtraAttrPtr clone_dxf_extra (gaiaDxfExtraAttrPtr org) { /* cloning a DXF Extra Attribute object */ int len; gaiaDxfExtraAttrPtr ext = malloc (sizeof (gaiaDxfExtraAttr)); len = strlen (org->key); ext->key = malloc (len + 1); strcpy (ext->key, org->key); len = strlen (org->value); ext->value = malloc (len + 1); strcpy (ext->value, org->value); ext->next = NULL; return ext; } static void destroy_dxf_extra (gaiaDxfExtraAttrPtr ext) { /* memory cleanup - destroying a DXF Extra Attribute object */ if (ext == NULL) return; if (ext->key != NULL) free (ext->key); if (ext->value != NULL) free (ext->value); free (ext); } static gaiaDxfTextPtr alloc_dxf_text (const char *label, double x, double y, double z, double angle) { /* allocating and initializing a DXF Text object */ int len; gaiaDxfTextPtr txt = malloc (sizeof (gaiaDxfText)); len = strlen (label); txt->label = malloc (len + 1); strcpy (txt->label, label); txt->x = x; txt->y = y; txt->z = z; txt->angle = angle; txt->first = NULL; txt->last = NULL; txt->next = NULL; return txt; } static void destroy_dxf_text (gaiaDxfTextPtr txt) { /* memory cleanup - destroying a DXF Text object */ gaiaDxfExtraAttrPtr ext; gaiaDxfExtraAttrPtr n_ext; if (txt == NULL) return; if (txt->label != NULL) free (txt->label); ext = txt->first; while (ext != NULL) { n_ext = ext->next; destroy_dxf_extra (ext); ext = n_ext; } free (txt); } static int is_3d_text (gaiaDxfTextPtr txt) { /* testing if it's really a 3D Text */ if (txt->z == 0.0) return 0; return 1; } static void insert_dxf_text (gaiaDxfParserPtr dxf, const char *layer_name, gaiaDxfTextPtr txt) { /* inserting a TEXT object into the appropriate Layer */ gaiaDxfLayerPtr lyr = dxf->first_layer; while (lyr != NULL) { if (strcmp (lyr->layer_name, layer_name) == 0) { /* found the matching Layer */ if (lyr->first_text == NULL) lyr->first_text = txt; if (lyr->last_text != NULL) lyr->last_text->next = txt; lyr->last_text = txt; if (dxf->force_dims == GAIA_DXF_FORCE_2D || dxf->force_dims == GAIA_DXF_FORCE_3D) ; else { if (is_3d_text (txt)) lyr->is3Dtext = 1; } txt->first = dxf->first_ext; txt->last = dxf->last_ext; dxf->first_ext = NULL; dxf->last_ext = NULL; if (txt->first != NULL) lyr->hasExtraText = 1; return; } lyr = lyr->next; } destroy_dxf_text (txt); } static void insert_dxf_block_text (gaiaDxfParserPtr dxf, gaiaDxfTextPtr txt) { /* inserting a TEXT object into the current Block */ if (dxf->curr_block.first_text == NULL) dxf->curr_block.first_text = txt; if (dxf->curr_block.last_text != NULL) dxf->curr_block.last_text->next = txt; dxf->curr_block.last_text = txt; if (dxf->force_dims == GAIA_DXF_FORCE_2D || dxf->force_dims == GAIA_DXF_FORCE_3D) ; else { if (is_3d_text (txt)) dxf->curr_block.is3Dtext = 1; } } static gaiaDxfInsertPtr alloc_dxf_insert (const char *block_id, double x, double y, double z, double scale_x, double scale_y, double scale_z, double angle) { /* allocating and initializing a DXF Insertt object */ int len; gaiaDxfInsertPtr ins = malloc (sizeof (gaiaDxfInsert)); len = strlen (block_id); ins->block_id = malloc (len + 1); strcpy (ins->block_id, block_id); ins->x = x; ins->y = y; ins->z = z; ins->scale_x = scale_x; ins->scale_y = scale_y; ins->scale_z = scale_z; ins->angle = angle; ins->hasText = 0; ins->hasPoint = 0; ins->hasLine = 0; ins->hasPolyg = 0; ins->hasHatch = 0; ins->is3Dtext = 0; ins->is3Dpoint = 0; ins->is3Dline = 0; ins->is3Dpolyg = 0; ins->first = NULL; ins->last = NULL; ins->next = NULL; return ins; } static gaiaDxfInsertPtr clone_dxf_insert (gaiaDxfInsertPtr org) { /* cloning a DXF Insertt object */ gaiaDxfExtraAttrPtr ext_org; gaiaDxfExtraAttrPtr ext; int len; gaiaDxfInsertPtr ins = malloc (sizeof (gaiaDxfInsert)); len = strlen (org->block_id); ins->block_id = malloc (len + 1); strcpy (ins->block_id, org->block_id); ins->x = org->x; ins->y = org->y; ins->z = org->z; ins->scale_x = org->scale_x; ins->scale_y = org->scale_y; ins->scale_z = org->scale_z; ins->angle = org->angle; ins->hasText = org->hasText; ins->hasPoint = org->hasPoint; ins->hasLine = org->hasLine; ins->hasPolyg = org->hasPolyg; ins->hasHatch = org->hasHatch; ins->is3Dtext = org->is3Dtext; ins->is3Dpoint = org->is3Dpoint; ins->is3Dline = org->is3Dline; ins->is3Dpolyg = org->is3Dpolyg; ins->first = NULL; ins->last = NULL; ext_org = org->first; while (ext_org != NULL) { ext = clone_dxf_extra (ext_org); if (ins->first == NULL) ins->first = ext; if (ins->last != NULL) ins->last->next = ext; ins->last = ext; ext_org = ext_org->next; } ins->next = NULL; return ins; } static void destroy_dxf_insert (gaiaDxfInsertPtr ins) { /* memory cleanup - destroying a DXF Insert object */ gaiaDxfExtraAttrPtr ext; gaiaDxfExtraAttrPtr n_ext; if (ins == NULL) return; if (ins->block_id != NULL) free (ins->block_id); ext = ins->first; while (ext != NULL) { n_ext = ext->next; destroy_dxf_extra (ext); ext = n_ext; } free (ins); } static void insert_dxf_insert (gaiaDxfParserPtr dxf, const char *layer_name, gaiaDxfInsertPtr ins) { /* inserting an INSERT object into the appropriate Layer */ gaiaDxfLayerPtr lyr = dxf->first_layer; while (lyr != NULL) { if (strcmp (lyr->layer_name, layer_name) == 0) { /* found the matching Layer */ ins->first = dxf->first_ext; ins->last = dxf->last_ext; dxf->first_ext = NULL; dxf->last_ext = NULL; if (ins->hasText) { /* indirect Text reference */ gaiaDxfInsertPtr ins2 = clone_dxf_insert (ins); if (lyr->first_ins_text == NULL) lyr->first_ins_text = ins2; if (lyr->last_ins_text != NULL) lyr->last_ins_text->next = ins2; lyr->last_ins_text = ins2; if (ins2->is3Dtext) lyr->is3DinsText = 1; if (ins2->first != NULL) lyr->hasExtraInsText = 1; } if (ins->hasPoint) { /* indirect Point reference */ gaiaDxfInsertPtr ins2 = clone_dxf_insert (ins); if (lyr->first_ins_point == NULL) lyr->first_ins_point = ins2; if (lyr->last_ins_point != NULL) lyr->last_ins_point->next = ins2; lyr->last_ins_point = ins2; if (ins2->is3Dpoint) lyr->is3DinsPoint = 1; if (ins2->first != NULL) lyr->hasExtraInsPoint = 1; } if (ins->hasLine) { /* indirect Polyline (Linestring) reference */ gaiaDxfInsertPtr ins2 = clone_dxf_insert (ins); if (lyr->first_ins_line == NULL) lyr->first_ins_line = ins2; if (lyr->last_ins_line != NULL) lyr->last_ins_line->next = ins2; lyr->last_ins_line = ins2; if (ins2->is3Dline) lyr->is3DinsLine = 1; if (ins2->first != NULL) lyr->hasExtraInsLine = 1; } if (ins->hasPolyg) { /* indirect Polyline (Polygon) reference */ gaiaDxfInsertPtr ins2 = clone_dxf_insert (ins); if (lyr->first_ins_polyg == NULL) lyr->first_ins_polyg = ins2; if (lyr->last_ins_polyg != NULL) lyr->last_ins_polyg->next = ins2; lyr->last_ins_polyg = ins2; if (ins2->is3Dpolyg) lyr->is3DinsPolyg = 1; if (ins2->first != NULL) lyr->hasExtraInsPolyg = 1; } destroy_dxf_insert (ins); return; } lyr = lyr->next; } destroy_dxf_insert (ins); } static gaiaDxfPointPtr alloc_dxf_point (double x, double y, double z) { /* allocating and initializing a DXF Point object */ gaiaDxfPointPtr pt = malloc (sizeof (gaiaDxfPoint)); pt->x = x; pt->y = y; pt->z = z; pt->next = NULL; pt->first = NULL; pt->last = NULL; return pt; } static void destroy_dxf_point (gaiaDxfPointPtr pt) { /* memory cleanup - destroying a DXF Point object */ gaiaDxfExtraAttrPtr ext; gaiaDxfExtraAttrPtr n_ext; if (pt == NULL) return; ext = pt->first; while (ext != NULL) { n_ext = ext->next; destroy_dxf_extra (ext); ext = n_ext; } free (pt); } static int is_3d_point (gaiaDxfPointPtr pt) { /* testing if it's really a 3D Point */ if (pt->z == 0.0) return 0; return 1; } static void insert_dxf_point (gaiaDxfParserPtr dxf, const char *layer_name, gaiaDxfPointPtr pt) { /* inserting a POINT object into the appropriate Layer */ gaiaDxfLayerPtr lyr = dxf->first_layer; while (lyr != NULL) { if (strcmp (lyr->layer_name, layer_name) == 0) { /* found the matching Layer */ if (lyr->first_point == NULL) lyr->first_point = pt; if (lyr->last_point != NULL) lyr->last_point->next = pt; lyr->last_point = pt; if (dxf->force_dims == GAIA_DXF_FORCE_2D || dxf->force_dims == GAIA_DXF_FORCE_3D) ; else { if (is_3d_point (pt)) lyr->is3Dpoint = 1; } pt->first = dxf->first_ext; pt->last = dxf->last_ext; dxf->first_ext = NULL; dxf->last_ext = NULL; if (pt->first != NULL) lyr->hasExtraPoint = 1; return; } lyr = lyr->next; } destroy_dxf_point (pt); } static void insert_dxf_block_point (gaiaDxfParserPtr dxf, gaiaDxfPointPtr pt) { /* inserting a POINT object into the current Block */ if (dxf->curr_block.first_point == NULL) dxf->curr_block.first_point = pt; if (dxf->curr_block.last_point != NULL) dxf->curr_block.last_point->next = pt; dxf->curr_block.last_point = pt; if (dxf->force_dims == GAIA_DXF_FORCE_2D || dxf->force_dims == GAIA_DXF_FORCE_3D) ; else { if (is_3d_point (pt)) dxf->curr_block.is3Dpoint = 1; } } static gaiaDxfPolylinePtr alloc_dxf_polyline (int is_closed, int points) { /* allocating and initializing a DXF Polyline object */ int i; gaiaDxfPolylinePtr ln = malloc (sizeof (gaiaDxfPolyline)); ln->is_closed = is_closed; ln->points = points; ln->x = malloc (sizeof (double) * points); ln->y = malloc (sizeof (double) * points); ln->z = malloc (sizeof (double) * points); for (i = 0; i < points; i++) { *(ln->x + i) = 0.0; *(ln->y + i) = 0.0; *(ln->z + i) = 0.0; } ln->first_hole = NULL; ln->last_hole = NULL; ln->first = NULL; ln->last = NULL; ln->next = NULL; return ln; } static gaiaDxfPolylinePtr alloc_dxf_line (double x0, double y0, double z0, double x1, double y1, double z1) { /* allocating and initializing a DXF Line object */ gaiaDxfPolylinePtr ln = malloc (sizeof (gaiaDxfPolyline)); ln->is_closed = 0; ln->points = 2; ln->x = malloc (sizeof (double) * 2); ln->y = malloc (sizeof (double) * 2); ln->z = malloc (sizeof (double) * 2); *(ln->x + 0) = x0; *(ln->y + 0) = y0; *(ln->z + 0) = z0; *(ln->x + 1) = x1; *(ln->y + 1) = y1; *(ln->z + 1) = z1; ln->first_hole = NULL; ln->last_hole = NULL; ln->first = NULL; ln->last = NULL; ln->next = NULL; return ln; } static void destroy_dxf_polyline (gaiaDxfPolylinePtr ln) { /* memory cleanup - destroying a DXF Polyline object */ gaiaDxfExtraAttrPtr ext; gaiaDxfExtraAttrPtr n_ext; gaiaDxfHolePtr hole; gaiaDxfHolePtr n_hole; if (ln == NULL) return; if (ln->x != NULL) free (ln->x); if (ln->y != NULL) free (ln->y); if (ln->z != NULL) free (ln->z); ext = ln->first; while (ext != NULL) { n_ext = ext->next; destroy_dxf_extra (ext); ext = n_ext; } hole = ln->first_hole; while (hole != NULL) { n_hole = hole->next; destroy_dxf_hole (hole); hole = n_hole; } free (ln); } static int is_3d_line (gaiaDxfPolylinePtr ln) { /* testing if it's really a 3D Polyline */ gaiaDxfHolePtr hole; int i; for (i = 0; i < ln->points; i++) { if (*(ln->z + i) != 0.0) return 1; } hole = ln->first_hole; while (hole != NULL) { for (i = 0; i < hole->points; i++) { if (*(hole->z + i) != 0.0) return 1; } } return 0; } static dxfRingsCollectionPtr alloc_dxf_rings () { /* allocating an empty Rings Collection */ dxfRingsCollectionPtr coll = malloc (sizeof (dxfRingsCollection)); coll->first = NULL; coll->last = NULL; return coll; } static void destroy_dxf_rings (dxfRingsCollectionPtr coll) { /* memory cleanup - destroying a Rings Collection */ gaiaDxfPolylinePtr ln; gaiaDxfPolylinePtr n_ln; if (coll == NULL) return; ln = coll->first; while (ln != NULL) { n_ln = ln->next; destroy_dxf_polyline (ln); ln = n_ln; } free (coll); } static void insert_dxf_ring (dxfRingsCollectionPtr coll, gaiaDxfPolylinePtr line, int start, int end) { /* inserting a Ring into the collection */ int i; int i2; int points = end - start + 1; gaiaDxfPolylinePtr out = alloc_dxf_polyline (1, points); for (i2 = 0, i = start; i <= end; i++, i2++) { *(out->x + i2) = *(line->x + i); *(out->y + i2) = *(line->y + i); *(out->z + i2) = *(line->z + i); } if (coll->first == NULL) coll->first = out; if (coll->last != NULL) coll->last->next = out; coll->last = out; } static void unlinked_rings (gaiaDxfPolylinePtr line) { /* attempt to identify unlinked Polygon rings */ int invalid; int start; int count; double x; double y; double z; int i; int i2; gaiaDxfHolePtr hole; dxfRingsCollectionPtr coll; gaiaDxfPolylinePtr ring; gaiaGeomCollPtr geom; gaiaGeomCollPtr result; gaiaPolygonPtr pg; gaiaRingPtr rng; int pgs; int ok; if (line == NULL) return; if (line->points <= 0) return; coll = alloc_dxf_rings (); start = 0; while (start < line->points - 1) { /* looping on candidate rings */ x = *(line->x + start); y = *(line->y + start); z = *(line->z + start); invalid = 1; for (i = start + 1; i < line->points; i++) { if (*(line->x + i) == x && *(line->y + i) == y && *(line->z + i) == z) { insert_dxf_ring (coll, line, start, i); start = i + 1; invalid = 0; break; } } if (invalid) break; } count = 0; ring = coll->first; while (ring != NULL) { count++; ring = ring->next; } if (count < 2) invalid = 1; if (invalid) { /* no unlinked rings were found - quitting */ destroy_dxf_rings (coll); return; } /* building a candidate geometry (multilinestring) */ geom = gaiaAllocGeomCollXYZ (); ring = coll->first; while (ring != NULL) { /* inserting a ring into the collection */ gaiaLinestringPtr ln = gaiaAddLinestringToGeomColl (geom, ring->points); for (i = 0; i < ring->points; i++) { gaiaSetPointXYZ (ln->Coords, i, *(ring->x + i), *(ring->y + i), *(ring->z + i)); } ring = ring->next; } /* freeing the rings list */ destroy_dxf_rings (coll); /* attempting to reassemble a polygon */ result = gaiaPolygonize (geom, 0); gaiaFreeGeomColl (geom); if (result == NULL) return; /* checking the returned polygon for validity */ pgs = 0; ok = 1; pg = result->FirstPolygon; while (pg != NULL) { pgs++; if (pg->NumInteriors == 0) ok = 0; pg = pg->Next; } if (ok == 1 && pgs == 1) { /* found a valid Polygon with internal holes(s) */ pg = result->FirstPolygon; rng = pg->Exterior; /* rebuilding the exterior ring */ free (line->x); free (line->y); free (line->z); line->points = rng->Points; line->x = malloc (sizeof (double) * line->points); line->y = malloc (sizeof (double) * line->points); line->z = malloc (sizeof (double) * line->points); for (i = 0; i < line->points; i++) { /* setting the exterior ring points */ gaiaGetPointXYZ (rng->Coords, i, &x, &y, &z); *(line->x + i) = x; *(line->y + i) = y; *(line->z + i) = z; } for (i2 = 0; i2 < pg->NumInteriors; i2++) { /* saving the Holes */ rng = pg->Interiors + i2; hole = alloc_dxf_hole (rng->Points); insert_dxf_hole (line, hole); for (i = 0; i < hole->points; i++) { /* setting the interior ring points */ gaiaGetPointXYZ (rng->Coords, i, &x, &y, &z); *(hole->x + i) = x; *(hole->y + i) = y; *(hole->z + i) = z; } } } gaiaFreeGeomColl (result); /* forcing the closure flag */ line->is_closed = 1; } static void insert_dxf_polyline (gaiaDxfParserPtr dxf, const char *layer_name, gaiaDxfPolylinePtr ln) { /* inserting a POLYLINE object into the appropriate Layer */ gaiaDxfLayerPtr lyr = dxf->first_layer; while (lyr != NULL) { if (strcmp (lyr->layer_name, layer_name) == 0) { /* found the matching Layer */ if (dxf->linked_rings) linked_rings (ln); if (dxf->unlinked_rings) unlinked_rings (ln); if (ln->is_closed) { /* it's a Ring */ if (lyr->first_polyg == NULL) lyr->first_polyg = ln; if (lyr->last_polyg != NULL) lyr->last_polyg->next = ln; lyr->last_polyg = ln; if (dxf->force_dims == GAIA_DXF_FORCE_2D || dxf->force_dims == GAIA_DXF_FORCE_3D) ; else { if (is_3d_line (ln)) lyr->is3Dpolyg = 1; } } else { /* it's a Linestring */ if (lyr->first_line == NULL) lyr->first_line = ln; if (lyr->last_line != NULL) lyr->last_line->next = ln; lyr->last_line = ln; if (dxf->force_dims == GAIA_DXF_FORCE_2D || dxf->force_dims == GAIA_DXF_FORCE_3D) ; else { if (is_3d_line (ln)) lyr->is3Dline = 1; } } ln->first = dxf->first_ext; ln->last = dxf->last_ext; dxf->first_ext = NULL; dxf->last_ext = NULL; if (ln->is_closed && ln->first != NULL) lyr->hasExtraPolyg = 1; if (ln->is_closed == 0 && ln->first != NULL) lyr->hasExtraLine = 1; return; } lyr = lyr->next; } destroy_dxf_polyline (ln); } static void insert_dxf_block_polyline (gaiaDxfParserPtr dxf, gaiaDxfPolylinePtr ln) { /* inserting a POLYLINE object into the current Block */ if (dxf->linked_rings) linked_rings (ln); if (dxf->unlinked_rings) unlinked_rings (ln); if (ln->is_closed) { /* it's a Ring */ if (dxf->curr_block.first_polyg == NULL) dxf->curr_block.first_polyg = ln; if (dxf->curr_block.last_polyg != NULL) dxf->curr_block.last_polyg->next = ln; dxf->curr_block.last_polyg = ln; if (dxf->force_dims == GAIA_DXF_FORCE_2D || dxf->force_dims == GAIA_DXF_FORCE_3D) ; else { if (is_3d_line (ln)) dxf->curr_block.is3Dpolyg = 1; } } else { /* it's a Linestring */ if (dxf->curr_block.first_line == NULL) dxf->curr_block.first_line = ln; if (dxf->curr_block.last_line != NULL) dxf->curr_block.last_line->next = ln; dxf->curr_block.last_line = ln; if (dxf->force_dims == GAIA_DXF_FORCE_2D || dxf->force_dims == GAIA_DXF_FORCE_3D) ; else { if (is_3d_line (ln)) dxf->curr_block.is3Dline = 1; } } ln->first = dxf->first_ext; ln->last = dxf->last_ext; dxf->first_ext = NULL; dxf->last_ext = NULL; } static gaiaDxfBlockPtr alloc_dxf_block (const char *layer, const char *id) { /* allocating and initializing a DXF Block object */ int len; gaiaDxfBlockPtr blk = malloc (sizeof (gaiaDxfBlock)); blk->hasInsert = 0; len = strlen (layer); blk->layer_name = malloc (len + 1); strcpy (blk->layer_name, layer); len = strlen (id); blk->block_id = malloc (len + 1); strcpy (blk->block_id, id); blk->first_text = NULL; blk->last_text = NULL; blk->first_point = NULL; blk->last_point = NULL; blk->first_line = NULL; blk->last_line = NULL; blk->first_polyg = NULL; blk->last_polyg = NULL; blk->first_hatch = NULL; blk->last_hatch = NULL; blk->is3Dtext = 0; blk->is3Dpoint = 0; blk->is3Dline = 0; blk->is3Dpolyg = 0; blk->next = NULL; return blk; } static void destroy_dxf_block (gaiaDxfBlockPtr blk) { /* memory cleanup - destroying a DXF Block object */ gaiaDxfTextPtr txt; gaiaDxfTextPtr n_txt; gaiaDxfPointPtr pt; gaiaDxfPointPtr n_pt; gaiaDxfPolylinePtr ln; gaiaDxfPolylinePtr n_ln; gaiaDxfHatchPtr htc; gaiaDxfHatchPtr n_htc; if (blk == NULL) return; if (blk->layer_name != NULL) free (blk->layer_name); if (blk->block_id != NULL) free (blk->block_id); txt = blk->first_text; while (txt != NULL) { n_txt = txt->next; destroy_dxf_text (txt); txt = n_txt; } pt = blk->first_point; while (pt != NULL) { n_pt = pt->next; destroy_dxf_point (pt); pt = n_pt; } ln = blk->first_line; while (ln != NULL) { n_ln = ln->next; destroy_dxf_polyline (ln); ln = n_ln; } ln = blk->first_polyg; while (ln != NULL) { n_ln = ln->next; destroy_dxf_polyline (ln); ln = n_ln; } htc = blk->first_hatch; while (htc != NULL) { n_htc = htc->next; destroy_dxf_hatch (htc); htc = n_htc; } free (blk); } static void insert_dxf_block (gaiaDxfParserPtr dxf) { /* inserting a DXF Block object */ gaiaDxfBlockPtr blk; int ok = 0; if (dxf->curr_block.layer_name == NULL) return; if (dxf->curr_block.block_id == NULL) return; if (dxf->curr_block.first_text != NULL) ok++; if (dxf->curr_block.first_point != NULL) ok++; if (dxf->curr_block.first_line != NULL) ok++; if (dxf->curr_block.first_polyg != NULL) ok++; if (dxf->curr_block.first_hatch != NULL) ok++; if (ok == 0) return; blk = alloc_dxf_block (dxf->curr_block.layer_name, dxf->curr_block.block_id); blk->first_text = dxf->curr_block.first_text; blk->last_text = dxf->curr_block.last_text; dxf->curr_block.first_text = NULL; dxf->curr_block.last_text = NULL; blk->first_point = dxf->curr_block.first_point; blk->last_point = dxf->curr_block.last_point; dxf->curr_block.first_point = NULL; dxf->curr_block.last_point = NULL; blk->first_line = dxf->curr_block.first_line; blk->last_line = dxf->curr_block.last_line; dxf->curr_block.first_line = NULL; dxf->curr_block.last_line = NULL; blk->first_polyg = dxf->curr_block.first_polyg; blk->last_polyg = dxf->curr_block.last_polyg; dxf->curr_block.first_polyg = NULL; dxf->curr_block.last_polyg = NULL; blk->first_hatch = dxf->curr_block.first_hatch; blk->last_hatch = dxf->curr_block.last_hatch; dxf->curr_block.first_hatch = NULL; dxf->curr_block.last_hatch = NULL; if (dxf->first_block == NULL) dxf->first_block = blk; if (dxf->last_block != NULL) dxf->last_block->next = blk; dxf->last_block = blk; } static gaiaDxfLayerPtr alloc_dxf_layer (const char *name, int force_dims) { /* allocating and initializing a DXF Layer object */ int len; gaiaDxfLayerPtr lyr = malloc (sizeof (gaiaDxfLayer)); len = strlen (name); lyr->layer_name = malloc (len + 1); strcpy (lyr->layer_name, name); lyr->first_text = NULL; lyr->last_text = NULL; lyr->first_point = NULL; lyr->last_point = NULL; lyr->first_line = NULL; lyr->last_line = NULL; lyr->first_polyg = NULL; lyr->last_polyg = NULL; lyr->first_hatch = NULL; lyr->last_hatch = NULL; lyr->first_ins_text = NULL; lyr->last_ins_text = NULL; lyr->first_ins_point = NULL; lyr->last_ins_point = NULL; lyr->first_ins_line = NULL; lyr->last_ins_line = NULL; lyr->first_ins_polyg = NULL; lyr->last_ins_polyg = NULL; lyr->first_ins_hatch = NULL; lyr->last_ins_hatch = NULL; if (force_dims == GAIA_DXF_FORCE_3D) { lyr->is3Dtext = 1; lyr->is3Dpoint = 1; lyr->is3Dline = 1; lyr->is3Dpolyg = 1; lyr->is3DinsText = 1; lyr->is3DinsPoint = 1; lyr->is3DinsLine = 1; lyr->is3DinsPolyg = 1; } else { lyr->is3Dtext = 0; lyr->is3Dpoint = 0; lyr->is3Dline = 0; lyr->is3Dpolyg = 0; lyr->is3DinsText = 0; lyr->is3DinsPoint = 0; lyr->is3DinsLine = 0; lyr->is3DinsPolyg = 0; } lyr->hasExtraText = 0; lyr->hasExtraPoint = 0; lyr->hasExtraLine = 0; lyr->hasExtraPolyg = 0; lyr->hasExtraInsText = 0; lyr->hasExtraInsPoint = 0; lyr->hasExtraInsLine = 0; lyr->hasExtraInsPolyg = 0; lyr->next = NULL; return lyr; } static void destroy_dxf_layer (gaiaDxfLayerPtr lyr) { /* memory cleanup - destroying a DXF Layer object */ gaiaDxfTextPtr txt; gaiaDxfTextPtr n_txt; gaiaDxfPointPtr pt; gaiaDxfPointPtr n_pt; gaiaDxfPolylinePtr ln; gaiaDxfPolylinePtr n_ln; gaiaDxfHatchPtr ht; gaiaDxfHatchPtr n_ht; gaiaDxfInsertPtr ins; gaiaDxfInsertPtr n_ins; if (lyr == NULL) return; txt = lyr->first_text; while (txt != NULL) { n_txt = txt->next; destroy_dxf_text (txt); txt = n_txt; } pt = lyr->first_point; while (pt != NULL) { n_pt = pt->next; destroy_dxf_point (pt); pt = n_pt; } ln = lyr->first_line; while (ln != NULL) { n_ln = ln->next; destroy_dxf_polyline (ln); ln = n_ln; } ln = lyr->first_polyg; while (ln != NULL) { n_ln = ln->next; destroy_dxf_polyline (ln); ln = n_ln; } ht = lyr->first_hatch; while (ht != NULL) { n_ht = ht->next; destroy_dxf_hatch (ht); ht = n_ht; } ins = lyr->first_ins_text; while (ins != NULL) { n_ins = ins->next; destroy_dxf_insert (ins); ins = n_ins; } ins = lyr->first_ins_point; while (ins != NULL) { n_ins = ins->next; destroy_dxf_insert (ins); ins = n_ins; } ins = lyr->first_ins_line; while (ins != NULL) { n_ins = ins->next; destroy_dxf_insert (ins); ins = n_ins; } ins = lyr->first_ins_polyg; while (ins != NULL) { n_ins = ins->next; destroy_dxf_insert (ins); ins = n_ins; } ins = lyr->first_ins_hatch; while (ins != NULL) { n_ins = ins->next; destroy_dxf_insert (ins); ins = n_ins; } if (lyr->layer_name != NULL) free (lyr->layer_name); free (lyr); } static void insert_dxf_layer (gaiaDxfParserPtr dxf, gaiaDxfLayerPtr lyr) { /* inserting a Layer object into the DXF struct */ if (dxf->first_layer == NULL) dxf->first_layer = lyr; if (dxf->last_layer != NULL) dxf->last_layer->next = lyr; dxf->last_layer = lyr; } static void force_missing_layer (gaiaDxfParserPtr dxf) { /* forcing undeclared layers [missing TABLES section] */ int ok_layer = 1; if (dxf->undeclared_layers == 0) return; if (dxf->selected_layer != NULL) { ok_layer = 0; if (strcmp (dxf->selected_layer, dxf->curr_layer_name) == 0) ok_layer = 1; } if (ok_layer) { int already_defined = 0; gaiaDxfLayerPtr lyr = dxf->first_layer; while (lyr != NULL) { if (strcmp (lyr->layer_name, dxf->curr_layer_name) == 0) { already_defined = 1; break; } lyr = lyr->next; } if (already_defined) return; lyr = alloc_dxf_layer (dxf->curr_layer_name, dxf->force_dims); insert_dxf_layer (dxf, lyr); } } static void set_dxf_vertex (gaiaDxfParserPtr dxf) { /* saving the current Polyline Vertex */ gaiaDxfPointPtr pt = malloc (sizeof (gaiaDxfPoint)); pt->x = dxf->curr_point.x; pt->y = dxf->curr_point.y; pt->z = dxf->curr_point.z; pt->first = NULL; pt->last = NULL; pt->next = NULL; if (dxf->first_pt == NULL) dxf->first_pt = pt; if (dxf->last_pt != NULL) dxf->last_pt->next = pt; dxf->last_pt = pt; dxf->curr_point.x = 0.0; dxf->curr_point.y = 0.0; dxf->curr_point.z = 0.0; } static void save_current_polyline (gaiaDxfParserPtr dxf) { /* saving the current Polyline */ int points = 0; gaiaDxfPolylinePtr ln; gaiaDxfPointPtr n_pt; gaiaDxfPointPtr pt; if (dxf->curr_layer_name == NULL) goto clear; pt = dxf->first_pt; while (pt != NULL) { /* counting how many vertices are into the polyline */ points++; pt = pt->next; } ln = alloc_dxf_polyline (dxf->is_closed_polyline, points); points = 0; pt = dxf->first_pt; while (pt != NULL) { /* setting vertices into the polyline */ *(ln->x + points) = pt->x; *(ln->y + points) = pt->y; *(ln->z + points) = pt->z; points++; pt = pt->next; } if (dxf->is_block) insert_dxf_block_polyline (dxf, ln); else { force_missing_layer (dxf); insert_dxf_polyline (dxf, dxf->curr_layer_name, ln); } /* resetting the current polyline */ clear: pt = dxf->first_pt; while (pt != NULL) { n_pt = pt->next; destroy_dxf_point (pt); pt = n_pt; } /* resetting curr_layer */ if (dxf->curr_layer_name != NULL) free (dxf->curr_layer_name); dxf->curr_layer_name = NULL; dxf->first_pt = NULL; dxf->last_pt = NULL; } static void reset_dxf_polyline (gaiaDxfParserPtr dxf) { /* resetting the current DXF polyline */ if (dxf->is_polyline) { if (dxf->first_pt != NULL) save_current_polyline (dxf); dxf->is_polyline = 0; } } static void reset_dxf_block (gaiaDxfParserPtr dxf) { /* memory cleanup - resetting the current DXF Block */ gaiaDxfTextPtr txt; gaiaDxfTextPtr n_txt; gaiaDxfPointPtr pt; gaiaDxfPointPtr n_pt; gaiaDxfPolylinePtr ln; gaiaDxfPolylinePtr n_ln; gaiaDxfHatchPtr htc; gaiaDxfHatchPtr n_htc; if (dxf->curr_block.layer_name != NULL) free (dxf->curr_block.layer_name); if (dxf->curr_block.block_id != NULL) free (dxf->curr_block.block_id); txt = dxf->curr_block.first_text; while (txt != NULL) { n_txt = txt->next; destroy_dxf_text (txt); txt = n_txt; } pt = dxf->curr_block.first_point; while (pt != NULL) { n_pt = pt->next; destroy_dxf_point (pt); pt = n_pt; } ln = dxf->curr_block.first_line; while (ln != NULL) { n_ln = ln->next; destroy_dxf_polyline (ln); ln = n_ln; } ln = dxf->curr_block.first_polyg; while (ln != NULL) { n_ln = ln->next; destroy_dxf_polyline (ln); ln = n_ln; } htc = dxf->curr_block.first_hatch; while (htc != NULL) { n_htc = htc->next; destroy_dxf_hatch (htc); htc = n_htc; } dxf->curr_block.layer_name = NULL; dxf->curr_block.block_id = NULL; dxf->curr_block.first_text = NULL; dxf->curr_block.last_text = NULL; dxf->curr_block.first_point = NULL; dxf->curr_block.last_point = NULL; dxf->curr_block.first_line = NULL; dxf->curr_block.last_line = NULL; dxf->curr_block.first_polyg = NULL; dxf->curr_block.last_polyg = NULL; dxf->curr_block.first_hatch = NULL; dxf->curr_block.last_hatch = NULL; dxf->curr_block.is3Dtext = 0; dxf->curr_block.is3Dpoint = 0; dxf->curr_block.is3Dline = 0; dxf->curr_block.is3Dpolyg = 0; } static gaiaDxfBlockPtr find_dxf_block (gaiaDxfParserPtr dxf, const char *layer_name, const char *block_id) { /* attempting to find a Block object by its Id */ gaiaDxfBlockPtr blk = dxf->first_block; while (blk != NULL) { if (layer_name != NULL && block_id != NULL) { if (strcmp (blk->layer_name, layer_name) == 0 && strcmp (blk->block_id, block_id) == 0) { /* ok, matching item found */ return blk; } } blk = blk->next; } return NULL; } static void save_current_circle (gaiaDxfParserPtr dxf) { /* saving the current Circle */ int iv; double x; double y; gaiaGeomCollPtr geom = NULL; gaiaLinestringPtr circle; gaiaDxfPolylinePtr ln; if (dxf->curr_layer_name == NULL) return; geom = gaiaMakeCircle (dxf->curr_circle.cx, dxf->curr_circle.cy, dxf->curr_circle.radius, 2.5); if (geom == NULL) goto stop; circle = geom->FirstLinestring; if (circle == NULL) goto stop; ln = alloc_dxf_polyline (0, circle->Points); for (iv = 0; iv < circle->Points; iv++) { /* setting vertices into the polyline */ gaiaGetPoint (circle->Coords, iv, &x, &y); *(ln->x + iv) = x; *(ln->y + iv) = y; *(ln->z + iv) = dxf->curr_circle.cz; } if (dxf->is_block) insert_dxf_block_polyline (dxf, ln); else { force_missing_layer (dxf); insert_dxf_polyline (dxf, dxf->curr_layer_name, ln); } stop: /* resetting curr_layer */ if (dxf->curr_layer_name != NULL) free (dxf->curr_layer_name); dxf->curr_layer_name = NULL; if (geom != NULL) gaiaFreeGeomColl (geom); } static void save_current_arc (gaiaDxfParserPtr dxf) { /* saving the current Arc */ int iv; double x; double y; gaiaGeomCollPtr geom; gaiaLinestringPtr arc; gaiaDxfPolylinePtr ln; if (dxf->curr_layer_name == NULL) return; geom = gaiaMakeArc (dxf->curr_arc.cx, dxf->curr_arc.cy, dxf->curr_arc.radius, dxf->curr_arc.start, dxf->curr_arc.stop, 2.5); if (geom == NULL) goto stop; arc = geom->FirstLinestring; if (arc == NULL) goto stop; ln = alloc_dxf_polyline (0, arc->Points); for (iv = 0; iv < arc->Points; iv++) { /* setting vertices into the polyline */ gaiaGetPoint (arc->Coords, iv, &x, &y); *(ln->x + iv) = x; *(ln->y + iv) = y; *(ln->z + iv) = dxf->curr_arc.cz; } if (dxf->is_block) insert_dxf_block_polyline (dxf, ln); else { force_missing_layer (dxf); insert_dxf_polyline (dxf, dxf->curr_layer_name, ln); } stop: /* resetting curr_layer */ if (dxf->curr_layer_name != NULL) free (dxf->curr_layer_name); dxf->curr_layer_name = NULL; if (geom != NULL) gaiaFreeGeomColl (geom); } static void reset_dxf_entity (gaiaDxfParserPtr dxf) { /* resetting the current DXF entity */ gaiaDxfExtraAttrPtr ext; gaiaDxfExtraAttrPtr n_ext; if (dxf->is_vertex) { /* saving the current Vertex */ set_dxf_vertex (dxf); dxf->is_vertex = 0; return; } if (dxf->is_polyline) return; if (dxf->is_layer) { /* saving the current Table aka Layer */ int ok_layer = 1; if (dxf->selected_layer != NULL) { ok_layer = 0; if (strcmp (dxf->selected_layer, dxf->curr_layer_name) == 0) ok_layer = 1; } if (ok_layer) { gaiaDxfLayerPtr lyr = alloc_dxf_layer (dxf->curr_layer_name, dxf->force_dims); insert_dxf_layer (dxf, lyr); dxf->undeclared_layers = 0; } /* resetting curr_layer */ if (dxf->curr_layer_name != NULL) free (dxf->curr_layer_name); dxf->curr_layer_name = NULL; dxf->is_layer = 0; } if (dxf->is_insert) { gaiaDxfBlockPtr blk = find_dxf_block (dxf, dxf->curr_layer_name, dxf->curr_insert.block_id); if (blk != NULL) { /* saving the current Insert */ gaiaDxfInsertPtr ins = alloc_dxf_insert (dxf->curr_insert.block_id, dxf->curr_insert.x, dxf->curr_insert.y, dxf->curr_insert.z, dxf->curr_insert.scale_x, dxf->curr_insert.scale_y, dxf->curr_insert.scale_z, dxf->curr_insert.angle); blk->hasInsert = 1; if (blk->first_text != NULL) { ins->hasText = 1; if (blk->is3Dtext) ins->is3Dtext = 1; } if (blk->first_point != NULL) { ins->hasPoint = 1; if (blk->is3Dpoint) ins->is3Dpoint = 1; } if (blk->first_line != NULL) { ins->hasLine = 1; if (blk->is3Dline) ins->is3Dline = 1; } if (blk->first_polyg != NULL) { ins->hasPolyg = 1; if (blk->is3Dpolyg) ins->is3Dpolyg = 1; } if (blk->first_hatch != NULL) ins->hasHatch = 1; force_missing_layer (dxf); insert_dxf_insert (dxf, dxf->curr_layer_name, ins); } /* resetting curr_insert */ dxf->curr_insert.x = 0.0; dxf->curr_insert.y = 0.0; dxf->curr_insert.z = 0.0; dxf->curr_insert.scale_x = 0.0; dxf->curr_insert.scale_y = 0.0; dxf->curr_insert.scale_z = 0.0; dxf->curr_insert.angle = 0.0; dxf->curr_insert.is3Dtext = 0; dxf->curr_insert.is3Dpoint = 0; dxf->curr_insert.is3Dline = 0; dxf->curr_insert.is3Dpolyg = 0; if (dxf->curr_insert.block_id != NULL) free (dxf->curr_insert.block_id); dxf->curr_insert.block_id = NULL; dxf->is_insert = 0; /* resetting curr_layer */ if (dxf->curr_layer_name != NULL) free (dxf->curr_layer_name); dxf->curr_layer_name = NULL; } if (dxf->is_line) { /* saving the current Line */ gaiaDxfPolylinePtr ln = alloc_dxf_line (dxf->curr_point.x, dxf->curr_point.y, dxf->curr_point.z, dxf->curr_end_point.x, dxf->curr_end_point.y, dxf->curr_end_point.z); if (dxf->is_block) insert_dxf_block_polyline (dxf, ln); else { force_missing_layer (dxf); insert_dxf_polyline (dxf, dxf->curr_layer_name, ln); } /* resetting curr_line */ dxf->curr_point.x = 0.0; dxf->curr_point.y = 0.0; dxf->curr_point.z = 0.0; dxf->curr_end_point.x = 0.0; dxf->curr_end_point.y = 0.0; dxf->curr_end_point.z = 0.0; dxf->is_line = 0; /* resetting curr_layer */ if (dxf->curr_layer_name != NULL) free (dxf->curr_layer_name); dxf->curr_layer_name = NULL; } if (dxf->is_hatch) { /* saving the current hatch */ if (dxf->curr_hatch != NULL) { if (is_valid_dxf_hatch (dxf->curr_hatch)) { create_dxf_hatch_lines (dxf->curr_hatch, dxf->srid); if (dxf->is_block) insert_dxf_block_hatch (dxf, dxf->curr_hatch); else { force_missing_layer (dxf); insert_dxf_hatch (dxf, dxf->curr_layer_name, dxf->curr_hatch); } dxf->curr_hatch = NULL; } } dxf->is_hatch = 0; /* resetting curr_layer */ if (dxf->curr_layer_name != NULL) free (dxf->curr_layer_name); dxf->curr_layer_name = NULL; } if (dxf->is_text) { /* saving the current Text */ gaiaDxfTextPtr txt = alloc_dxf_text (dxf->curr_text.label, dxf->curr_text.x, dxf->curr_text.y, dxf->curr_text.z, dxf->curr_text.angle); if (dxf->is_block) insert_dxf_block_text (dxf, txt); else { force_missing_layer (dxf); insert_dxf_text (dxf, dxf->curr_layer_name, txt); } /* resetting curr_text */ dxf->curr_text.x = 0.0; dxf->curr_text.y = 0.0; dxf->curr_text.z = 0.0; dxf->curr_text.angle = 0.0; if (dxf->curr_text.label != NULL) free (dxf->curr_text.label); dxf->curr_text.label = NULL; dxf->is_text = 0; /* resetting curr_layer */ if (dxf->curr_layer_name != NULL) free (dxf->curr_layer_name); dxf->curr_layer_name = NULL; } if (dxf->is_point) { /* saving the current Point */ gaiaDxfPointPtr pt = alloc_dxf_point (dxf->curr_point.x, dxf->curr_point.y, dxf->curr_point.z); if (dxf->is_block) insert_dxf_block_point (dxf, pt); else { force_missing_layer (dxf); insert_dxf_point (dxf, dxf->curr_layer_name, pt); } /* resetting curr_point */ dxf->curr_point.x = 0.0; dxf->curr_point.y = 0.0; dxf->curr_point.z = 0.0; dxf->is_point = 0; /* resetting curr_layer */ if (dxf->curr_layer_name != NULL) free (dxf->curr_layer_name); dxf->curr_layer_name = NULL; } if (dxf->is_lwpolyline) { /* saving the current Polyline */ save_current_polyline (dxf); dxf->is_lwpolyline = 0; } if (dxf->is_circle) { /* saving the current Circle */ save_current_circle (dxf); /* resetting curr_circle */ dxf->curr_circle.cx = 0.0; dxf->curr_circle.cy = 0.0; dxf->curr_circle.cz = 0.0; dxf->curr_circle.radius = 0.0; dxf->is_circle = 0; /* resetting curr_layer */ if (dxf->curr_layer_name != NULL) free (dxf->curr_layer_name); dxf->curr_layer_name = NULL; } if (dxf->is_arc) { /* saving the current Arc */ save_current_arc (dxf); /* resetting curr_arc */ dxf->curr_arc.cx = 0.0; dxf->curr_arc.cy = 0.0; dxf->curr_arc.cz = 0.0; dxf->curr_arc.radius = 0.0; dxf->curr_arc.start = 0.0; dxf->curr_arc.stop = 0.0; dxf->is_arc = 0; /* resetting curr_layer */ if (dxf->curr_layer_name != NULL) free (dxf->curr_layer_name); dxf->curr_layer_name = NULL; } if (dxf->extra_key != NULL) free (dxf->extra_key); if (dxf->extra_value != NULL) free (dxf->extra_value); ext = dxf->first_ext; while (ext != NULL) { n_ext = ext->next; destroy_dxf_extra (ext); ext = n_ext; } dxf->first_ext = NULL; dxf->last_ext = NULL; if (dxf->curr_hatch != NULL) destroy_dxf_hatch (dxf->curr_hatch); dxf->curr_hatch = NULL; } static void set_dxf_layer_name (gaiaDxfParserPtr dxf, const char *name) { /* saving the current Layer Name */ int len; if (dxf->curr_layer_name != NULL) free (dxf->curr_layer_name); len = strlen (name); dxf->curr_layer_name = malloc (len + 1); strcpy (dxf->curr_layer_name, name); } static void set_dxf_block_layer_name (gaiaDxfParserPtr dxf, const char *name) { /* saving the current Block Layer Name */ int len; if (dxf->curr_block.layer_name != NULL) free (dxf->curr_block.layer_name); len = strlen (name); dxf->curr_block.layer_name = malloc (len + 1); strcpy (dxf->curr_block.layer_name, name); } static void set_dxf_block_id (gaiaDxfParserPtr dxf, const char *id) { /* saving the current Block Id */ int len; if (dxf->curr_block.block_id != NULL) free (dxf->curr_block.block_id); len = strlen (id); dxf->curr_block.block_id = malloc (len + 1); strcpy (dxf->curr_block.block_id, id); } static void set_dxf_insert_block_id (gaiaDxfParserPtr dxf, const char *id) { /* saving the current Block Id */ int len; if (dxf->curr_insert.block_id != NULL) free (dxf->curr_insert.block_id); len = strlen (id); dxf->curr_insert.block_id = malloc (len + 1); strcpy (dxf->curr_insert.block_id, id); } static void set_dxf_label (gaiaDxfParserPtr dxf, const char *label) { /* saving the current Text Label */ int len; if (dxf->curr_text.label != NULL) free (dxf->curr_text.label); len = strlen (label); dxf->curr_text.label = malloc (len + 1); strcpy (dxf->curr_text.label, label); } static void set_dxf_extra_attr (gaiaDxfParserPtr dxf) { /* saving the current Extra Attribute */ gaiaDxfExtraAttrPtr ext = alloc_dxf_extra (); ext->key = dxf->extra_key; ext->value = dxf->extra_value; if (dxf->first_ext == NULL) dxf->first_ext = ext; if (dxf->last_ext != NULL) dxf->last_ext->next = ext; dxf->last_ext = ext; dxf->extra_key = NULL; dxf->extra_value = NULL; } static void set_dxf_extra_key (gaiaDxfParserPtr dxf, const char *key) { /* saving the current Extra Attribute Key */ int len; if (dxf->extra_key != NULL) free (dxf->extra_key); len = strlen (key); dxf->extra_key = malloc (len + 1); strcpy (dxf->extra_key, key); if (dxf->extra_key != NULL && dxf->extra_value != NULL) set_dxf_extra_attr (dxf); } static void set_dxf_extra_value (gaiaDxfParserPtr dxf, const char *value) { /* saving the current Extra Attribute Value */ int len; if (dxf->extra_value != NULL) free (dxf->extra_value); len = strlen (value); dxf->extra_value = malloc (len + 1); strcpy (dxf->extra_value, value); if (dxf->extra_key != NULL && dxf->extra_value != NULL) set_dxf_extra_attr (dxf); } static void create_dxf_curr_hatch (gaiaDxfParserPtr dxf) { /* creating the current Hatch being parsed */ if (dxf->curr_hatch != NULL) destroy_dxf_hatch (dxf->curr_hatch); dxf->curr_hatch = alloc_dxf_hatch (); } static void start_dxf_hatch_boundary (gaiaDxfParserPtr dxf) { /* starting a new Hatch Boundary Path */ if (dxf->curr_hatch != NULL) { gaiaDxfBoundaryPathPtr path = alloc_dxf_boundary_path (); insert_dxf_boundary_path (dxf->curr_hatch, path); dxf->is_hatch_boundary = 1; } } static void insert_dxf_hatch_boundary_segm (gaiaDxfParserPtr dxf) { if (dxf->curr_hatch != NULL) { gaiaDxfBoundaryPathPtr path = dxf->curr_hatch->last; if (path != NULL) { gaiaDxfHatchSegmPtr segm = alloc_dxf_hatch_segm (dxf->curr_point.x, dxf->curr_point.y, dxf->curr_end_point.x, dxf->curr_end_point.y); insert_dxf_boundary_segm (path, segm); } } dxf->curr_point.x = 0.0; dxf->curr_point.y = 0.0; dxf->curr_point.z = 0.0; dxf->curr_end_point.x = 0.0; dxf->curr_end_point.y = 0.0; dxf->curr_end_point.z = 0.0; } static void set_dxf_hatch_spacing (gaiaDxfParserPtr dxf, double spacing) { /* saving the current Hatch spacing */ if (dxf->curr_hatch != NULL) dxf->curr_hatch->spacing = spacing; } static void set_dxf_hatch_angle (gaiaDxfParserPtr dxf, double angle) { /* saving the current Hatch angle */ if (dxf->curr_hatch != NULL) dxf->curr_hatch->angle = angle; } static void set_dxf_hatch_base_x (gaiaDxfParserPtr dxf, double x) { /* saving the current Hatch base X */ if (dxf->curr_hatch != NULL) dxf->curr_hatch->base_x = x; } static void set_dxf_hatch_base_y (gaiaDxfParserPtr dxf, double y) { /* saving the current Hatch base Y */ if (dxf->curr_hatch != NULL) dxf->curr_hatch->base_y = y; } static void set_dxf_hatch_offset_x (gaiaDxfParserPtr dxf, double x) { /* saving the current Hatch offset X */ if (dxf->curr_hatch != NULL) dxf->curr_hatch->offset_x = x; } static void set_dxf_hatch_offset_y (gaiaDxfParserPtr dxf, double y) { /* saving the current Hatch offset Y */ if (dxf->curr_hatch != NULL) dxf->curr_hatch->offset_y = y; } static int op_code_line (const char *line) { /* checking for a valid op-code */ int numdigit = 0; int invalid = 0; const char *p = line; while (*p != '\0') { /* skipping leading white-spaces */ if (*p == ' ' || *p == '\t') { p++; continue; } else break; } while (*p != '\0') { /* evaluating each character */ if (*p >= '0' && *p <= '9') { numdigit++; p++; continue; } else { invalid = 1; break; } } if (numdigit > 0 && invalid == 0) return 1; return 0; } static int parse_dxf_line (gaiaDxfParserPtr dxf, const char *line) { /* parsing a DXF line */ dxf->line_no += 1; if (dxf->tables || dxf->entities || dxf->blocks) { /* handling OP-CODE lines */ if (dxf->op_code_line) { if (!op_code_line (line)) { /* unexpected value */ spatialite_e ("ERROR on line %d: expected on OP-CODE to be found\n", dxf->line_no); return 0; } dxf->op_code = atoi (line); if (dxf->op_code == 0) reset_dxf_entity (dxf); dxf->op_code_line = 0; return 1; } dxf->op_code_line = 1; } if (dxf->eof) { /* reading past the end */ spatialite_e ("ERROR on line %d: attempting to read past EOF\n", dxf->line_no); return 0; } if (strcmp (line, "SECTION") == 0) { /* start SECTION tag */ reset_dxf_polyline (dxf); if (dxf->section) { spatialite_e ("ERROR on line %d: unexpected SECTION\n", dxf->line_no); dxf->error = 1; return 0; } dxf->section = 1; return 1; } if (strcmp (line, "ENDSEC") == 0) { /* end SECTION tag */ reset_dxf_polyline (dxf); if (!dxf->section) { spatialite_e ("ERROR on line %d: unexpected ENDSEC\n", dxf->line_no); dxf->error = 1; return 0; } dxf->section = 0; dxf->tables = 0; dxf->blocks = 0; dxf->is_block = 0; dxf->entities = 0; return 1; } if (strcmp (line, "TABLES") == 0) { /* start TABLES tag */ reset_dxf_polyline (dxf); if (dxf->section) { dxf->tables = 1; dxf->op_code_line = 1; return 1; } } if (strcmp (line, "BLOCKS") == 0) { /* start BLOCKS tag */ reset_dxf_polyline (dxf); if (dxf->section) { dxf->blocks = 1; dxf->op_code_line = 1; return 1; } } if (strcmp (line, "BLOCK") == 0) { /* start BLOCK tag */ reset_dxf_polyline (dxf); if (dxf->blocks) { dxf->is_block = 1; dxf->op_code_line = 1; return 1; } } if (strcmp (line, "ENDBLK") == 0) { /* end BLOCK tag */ reset_dxf_polyline (dxf); if (dxf->is_block) { insert_dxf_block (dxf); dxf->is_block = 0; dxf->op_code_line = 1; return 1; } } if (strcmp (line, "ENTITIES") == 0) { /* start ENTITIES tag */ reset_dxf_polyline (dxf); if (dxf->section) { dxf->entities = 1; dxf->op_code_line = 1; return 1; } } if (strcmp (line, "LAYER") == 0) { /* start LAYER tag */ reset_dxf_polyline (dxf); if (dxf->tables && dxf->op_code == 0) { dxf->is_layer = 1; return 1; } } if (strcmp (line, "INSERT") == 0) { /* start INSERT tag */ reset_dxf_polyline (dxf); if (dxf->entities && dxf->op_code == 0) { dxf->is_insert = 1; return 1; } } if (strcmp (line, "INSERT") == 0) { /* start INSERT tag */ reset_dxf_polyline (dxf); if (dxf->entities && dxf->op_code == 0) { dxf->is_insert = 1; return 1; } } if (strcmp (line, "TEXT") == 0) { /* start TEXT tag */ reset_dxf_polyline (dxf); if (dxf->entities && dxf->op_code == 0) { dxf->is_text = 1; return 1; } if (dxf->is_block && dxf->op_code == 0) { dxf->is_text = 1; return 1; } } if (strcmp (line, "POINT") == 0) { /* start POINT tag */ reset_dxf_polyline (dxf); if (dxf->entities && dxf->op_code == 0) { dxf->is_point = 1; return 1; } if (dxf->is_block && dxf->op_code == 0) { dxf->is_point = 1; return 1; } } if (strcmp (line, "POLYLINE") == 0) { /* start POLYLINE tag */ reset_dxf_polyline (dxf); if (dxf->entities && dxf->op_code == 0) { dxf->is_polyline = 1; return 1; } if (dxf->is_block && dxf->op_code == 0) { dxf->is_polyline = 1; return 1; } } if (strcmp (line, "LWPOLYLINE") == 0) { /* start LWPOLYLINE tag */ reset_dxf_polyline (dxf); if (dxf->entities && dxf->op_code == 0) { dxf->is_lwpolyline = 1; return 1; } if (dxf->is_block && dxf->op_code == 0) { dxf->is_lwpolyline = 1; return 1; } } if (strcmp (line, "LINE") == 0) { /* start LINE tag */ reset_dxf_polyline (dxf); if (dxf->entities && dxf->op_code == 0) { dxf->is_line = 1; return 1; } if (dxf->is_block && dxf->op_code == 0) { dxf->is_line = 1; return 1; } } if (strcmp (line, "CIRCLE") == 0) { /* start CIRCLE tag */ reset_dxf_polyline (dxf); if (dxf->entities && dxf->op_code == 0) { dxf->is_circle = 1; return 1; } if (dxf->is_block && dxf->op_code == 0) { dxf->is_circle = 1; return 1; } } if (strcmp (line, "ARC") == 0) { /* start ARC tag */ reset_dxf_polyline (dxf); if (dxf->entities && dxf->op_code == 0) { dxf->is_arc = 1; return 1; } if (dxf->is_block && dxf->op_code == 0) { dxf->is_arc = 1; return 1; } } if (strcmp (line, "VERTEX") == 0) { /* start VERTEX tag */ if (dxf->is_polyline && dxf->op_code == 0) { dxf->is_vertex = 1; return 1; } } if (strcmp (line, "HATCH") == 0) { /* start HATCH tag */ if (dxf->entities && dxf->op_code == 0) { dxf->is_hatch = 1; return 1; } if (dxf->is_block && dxf->op_code == 0) { dxf->is_hatch = 1; return 1; } } if (strcmp (line, "EOF") == 0) { /* end of file marker tag */ reset_dxf_polyline (dxf); dxf->eof = 1; return 1; } if (dxf->is_layer) { /* parsing Table attributes */ switch (dxf->op_code) { case 2: set_dxf_layer_name (dxf, line); break; }; } if (dxf->is_block) { /* parsing Block attributes */ switch (dxf->op_code) { case 2: set_dxf_block_id (dxf, line); break; case 8: set_dxf_block_layer_name (dxf, line); break; }; } if (dxf->is_line) { /* parsing Line attributes */ switch (dxf->op_code) { case 8: set_dxf_layer_name (dxf, line); break; case 10: dxf->curr_point.x = atof (line); break; case 20: dxf->curr_point.y = atof (line); break; case 30: dxf->curr_point.z = atof (line); break; case 11: dxf->curr_end_point.x = atof (line); break; case 21: dxf->curr_end_point.y = atof (line); break; case 31: dxf->curr_end_point.z = atof (line); break; }; } if (dxf->is_circle) { /* parsing Circle attributes */ switch (dxf->op_code) { case 8: set_dxf_layer_name (dxf, line); break; case 10: dxf->curr_circle.cx = atof (line); break; case 20: dxf->curr_circle.cy = atof (line); break; case 30: dxf->curr_circle.cz = atof (line); break; case 40: dxf->curr_circle.radius = atof (line); break; }; } if (dxf->is_arc) { /* parsing Arc attributes */ switch (dxf->op_code) { case 8: set_dxf_layer_name (dxf, line); break; case 10: dxf->curr_arc.cx = atof (line); break; case 20: dxf->curr_arc.cy = atof (line); break; case 30: dxf->curr_arc.cz = atof (line); break; case 40: dxf->curr_arc.radius = atof (line); break; case 50: dxf->curr_arc.start = atof (line); break; case 51: dxf->curr_arc.stop = atof (line); break; }; } if (dxf->is_insert) { /* parsing Insert attributes */ switch (dxf->op_code) { case 2: set_dxf_insert_block_id (dxf, line); break; case 8: set_dxf_layer_name (dxf, line); break; case 10: dxf->curr_insert.x = atof (line); break; case 20: dxf->curr_insert.y = atof (line); break; case 30: dxf->curr_insert.z = atof (line); break; case 41: dxf->curr_insert.scale_x = atof (line); break; case 42: dxf->curr_insert.scale_y = atof (line); break; case 43: dxf->curr_insert.scale_z = atof (line); break; case 50: dxf->curr_insert.angle = atof (line); break; case 1000: set_dxf_extra_value (dxf, line); break; case 1001: set_dxf_extra_key (dxf, line); break; }; } if (dxf->is_text) { /* parsing Text attributes */ switch (dxf->op_code) { case 1: set_dxf_label (dxf, line); break; case 8: set_dxf_layer_name (dxf, line); break; case 10: dxf->curr_text.x = atof (line); break; case 20: dxf->curr_text.y = atof (line); break; case 30: dxf->curr_text.z = atof (line); break; case 50: dxf->curr_text.angle = atof (line); break; case 1000: set_dxf_extra_value (dxf, line); break; case 1001: set_dxf_extra_key (dxf, line); break; }; } if (dxf->is_point) { /* parsing Point attributes */ switch (dxf->op_code) { case 8: set_dxf_layer_name (dxf, line); break; case 10: dxf->curr_point.x = atof (line); break; case 20: dxf->curr_point.y = atof (line); break; case 30: dxf->curr_point.z = atof (line); break; case 1000: set_dxf_extra_value (dxf, line); break; case 1001: set_dxf_extra_key (dxf, line); break; }; } if (dxf->is_lwpolyline) { /* parsing LwPolyline attributes */ switch (dxf->op_code) { case 8: set_dxf_layer_name (dxf, line); break; case 10: dxf->curr_point.x = atof (line); break; case 20: dxf->curr_point.y = atof (line); set_dxf_vertex (dxf); break; case 70: if ((atoi (line) & 0x01) == 0x01) dxf->is_closed_polyline = 1; else dxf->is_closed_polyline = 0; break; case 1000: set_dxf_extra_value (dxf, line); break; case 1001: set_dxf_extra_key (dxf, line); break; }; } if (dxf->is_polyline && dxf->is_vertex != 1) { /* parsing Polyline attributes */ switch (dxf->op_code) { case 8: set_dxf_layer_name (dxf, line); break; case 70: if ((atoi (line) & 0x01) == 0x01) dxf->is_closed_polyline = 1; else dxf->is_closed_polyline = 0; break; case 1000: set_dxf_extra_value (dxf, line); break; case 1001: set_dxf_extra_key (dxf, line); break; }; } if (dxf->is_vertex) { /* parsing Vertex attributes */ switch (dxf->op_code) { case 10: dxf->curr_point.x = atof (line); break; case 20: dxf->curr_point.y = atof (line); break; case 30: dxf->curr_point.z = atof (line); break; }; } if (dxf->is_hatch) { /* parsing Hatch attributes */ switch (dxf->op_code) { case 8: set_dxf_layer_name (dxf, line); create_dxf_curr_hatch (dxf); break; case 10: if (dxf->is_hatch_boundary) dxf->curr_point.x = atof (line); break; case 20: if (dxf->is_hatch_boundary) dxf->curr_point.y = atof (line); break; case 11: if (dxf->is_hatch_boundary) dxf->curr_end_point.x = atof (line); break; case 21: dxf->curr_end_point.y = atof (line); insert_dxf_hatch_boundary_segm (dxf); break; case 41: set_dxf_hatch_spacing (dxf, atof (line)); break; case 43: set_dxf_hatch_base_x (dxf, atof (line)); break; case 44: set_dxf_hatch_base_y (dxf, atof (line)); break; case 45: set_dxf_hatch_offset_x (dxf, atof (line)); break; case 46: set_dxf_hatch_offset_y (dxf, atof (line)); break; case 53: set_dxf_hatch_angle (dxf, atof (line)); break; case 92: start_dxf_hatch_boundary (dxf); break; case 97: dxf->is_hatch_boundary = 0; break; }; } return 1; } GAIAGEO_DECLARE gaiaDxfParserPtr gaiaCreateDxfParser (int srid, int force_dims, const char *prefix, const char *selected_layer, int special_rings) { /* allocating and initializing a DXF parser object */ gaiaDxfParserPtr dxf = malloc (sizeof (gaiaDxfParser)); dxf->line_no = 0; dxf->op_code_line = 0; dxf->op_code = -1; dxf->section = 0; dxf->tables = 0; dxf->blocks = 0; dxf->entities = 0; dxf->is_layer = 0; dxf->is_block = 0; dxf->is_text = 0; dxf->is_point = 0; dxf->is_polyline = 0; dxf->is_lwpolyline = 0; dxf->is_line = 0; dxf->is_circle = 0; dxf->is_arc = 0; dxf->is_vertex = 0; dxf->is_hatch = 0; dxf->is_hatch_boundary = 0; dxf->is_insert = 0; dxf->eof = 0; dxf->error = 0; dxf->curr_layer_name = NULL; dxf->curr_insert.x = 0.0; dxf->curr_insert.y = 0.0; dxf->curr_insert.z = 0.0; dxf->curr_insert.scale_x = 0.0; dxf->curr_insert.scale_y = 0.0; dxf->curr_insert.scale_z = 0.0; dxf->curr_insert.angle = 0.0; dxf->curr_insert.block_id = NULL; dxf->curr_insert.is3Dtext = 0; dxf->curr_insert.is3Dpoint = 0; dxf->curr_insert.is3Dline = 0; dxf->curr_insert.is3Dpolyg = 0; dxf->curr_text.x = 0.0; dxf->curr_text.y = 0.0; dxf->curr_text.z = 0.0; dxf->curr_text.angle = 0.0; dxf->curr_text.label = NULL; dxf->curr_point.x = 0.0; dxf->curr_point.y = 0.0; dxf->curr_point.z = 0.0; dxf->curr_block.layer_name = NULL; dxf->curr_block.block_id = NULL; dxf->curr_block.first_text = NULL; dxf->curr_block.last_text = NULL; dxf->curr_block.first_point = NULL; dxf->curr_block.last_point = NULL; dxf->curr_block.first_line = NULL; dxf->curr_block.last_line = NULL; dxf->curr_block.first_polyg = NULL; dxf->curr_block.last_polyg = NULL; dxf->curr_block.first_hatch = NULL; dxf->curr_block.last_hatch = NULL; dxf->curr_block.is3Dtext = 0; dxf->curr_block.is3Dpoint = 0; dxf->curr_block.is3Dline = 0; dxf->curr_block.is3Dpolyg = 0; dxf->curr_end_point.x = 0.0; dxf->curr_end_point.y = 0.0; dxf->curr_end_point.z = 0.0; dxf->curr_circle.cx = 0.0; dxf->curr_circle.cy = 0.0; dxf->curr_circle.cz = 0.0; dxf->curr_circle.radius = 0.0; dxf->curr_arc.cx = 0.0; dxf->curr_arc.cy = 0.0; dxf->curr_arc.cz = 0.0; dxf->curr_arc.radius = 0.0; dxf->curr_arc.start = 0.0; dxf->curr_arc.stop = 0.0; dxf->is_closed_polyline = 0; dxf->extra_key = NULL; dxf->extra_value = NULL; dxf->first_pt = NULL; dxf->last_pt = NULL; dxf->first_ext = NULL; dxf->last_ext = NULL; dxf->filename = NULL; dxf->first_layer = NULL; dxf->last_layer = NULL; dxf->first_block = NULL; dxf->last_block = NULL; dxf->curr_hatch = NULL; dxf->force_dims = force_dims; if (srid <= 0) srid = -1; dxf->srid = srid; dxf->prefix = prefix; dxf->selected_layer = selected_layer; dxf->linked_rings = 0; dxf->unlinked_rings = 0; if (special_rings == GAIA_DXF_RING_LINKED) dxf->linked_rings = 1; if (special_rings == GAIA_DXF_RING_UNLINKED) dxf->unlinked_rings = 1; dxf->undeclared_layers = 1; return dxf; } GAIAGEO_DECLARE void gaiaDestroyDxfParser (gaiaDxfParserPtr dxf) { /* memory cleanup: destroying a DXF parser object */ gaiaDxfLayerPtr lyr; gaiaDxfLayerPtr n_lyr; gaiaDxfPointPtr pt; gaiaDxfPointPtr n_pt; gaiaDxfExtraAttrPtr ext; gaiaDxfExtraAttrPtr n_ext; gaiaDxfBlockPtr blk; gaiaDxfBlockPtr n_blk; if (dxf == NULL) return; if (dxf->curr_text.label != NULL) free (dxf->curr_text.label); if (dxf->curr_layer_name != NULL) free (dxf->curr_layer_name); if (dxf->filename != NULL) free (dxf->filename); lyr = dxf->first_layer; while (lyr != NULL) { n_lyr = lyr->next; destroy_dxf_layer (lyr); lyr = n_lyr; } pt = dxf->first_pt; while (pt != NULL) { n_pt = pt->next; destroy_dxf_point (pt); pt = n_pt; } if (dxf->extra_key != NULL) free (dxf->extra_key); if (dxf->extra_value != NULL) free (dxf->extra_value); ext = dxf->first_ext; while (ext != NULL) { n_ext = ext->next; destroy_dxf_extra (ext); ext = n_ext; } blk = dxf->first_block; while (blk != NULL) { n_blk = blk->next; destroy_dxf_block (blk); blk = n_blk; } if (dxf->curr_hatch != NULL) destroy_dxf_hatch (dxf->curr_hatch); reset_dxf_block (dxf); free (dxf); } static void save_dxf_filename (gaiaDxfParserPtr dxf, const char *path) { /* saving the input/origin filename */ int len = strlen (path); const char *start = path; const char *stop = path + len - 1; const char *p = path; if (dxf->filename != NULL) free (dxf->filename); dxf->filename = NULL; if (path == NULL) return; while (*p != '\0') { if (*p == '/' || *p == '\\') start = p + 1; p++; } p = stop; while (p > path) { if (*p == '.') { stop = p - 1; break; } p--; } if (stop > start) { len = stop - start + 1; dxf->filename = malloc (len + 1); memset (dxf->filename, '\0', len + 1); memcpy (dxf->filename, start, len); } else { dxf->filename = malloc (len + 1); strcpy (dxf->filename, path); } } GAIAGEO_DECLARE int gaiaParseDxfFile (gaiaDxfParserPtr dxf, const char *path) { /* parsing the whole DXF file */ int c; char line[4192]; char *p = line; FILE *fl; if (dxf == NULL) return 0; save_dxf_filename (dxf, path); if (dxf->first_layer != NULL || dxf->first_block != NULL) return 0; /* attempting to open the input file */ fl = fopen (path, "rb"); if (fl == NULL) return 0; /* scanning the DXF file */ while ((c = getc (fl)) != EOF) { if (c == '\r') { /* ignoring any CR */ continue; } if (c == '\n') { /* end line found */ *p = '\0'; if (!parse_dxf_line (dxf, line)) goto stop; if (dxf->eof) { /* EOF marker found - quitting */ break; } p = line; continue; } *p++ = c; /* Even Rouault 2013-06-02 - avoiding a potential buffer overflow */ if (p - line == sizeof (line) - 1) goto stop; /* END - Even Rouault 2013-06-02 */ } fclose (fl); return 1; stop: fclose (fl); return 0; } libspatialite-4.1.1/src/dxf/dxf_writer.c0000664000175000017500000004461112163502133015161 00000000000000/* dxf_writer.c -- implements DXF support [exporting a DXF] version 4.1, 2013 May 27 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include #include #include #include #include #include #include "dxf_private.h" #if defined(_WIN32) && !defined(__MINGW32__) #define strcasecmp _stricmp #endif /* not WIN32 */ GAIAGEO_DECLARE int gaiaDxfWriterInit (gaiaDxfWriterPtr dxf, FILE * out, int precision, int version) { /* initializing a DXF Output object */ if (dxf == NULL) return 0; dxf->error = 0; dxf->precision = precision; if (precision < 0) dxf->precision = 0; if (precision > 10) dxf->precision = 10; if (version != GAIA_DXF_V12) dxf->error = 1; else dxf->version = GAIA_DXF_V12; if (out == NULL) dxf->error = 1; else dxf->out = out; dxf->count = 0; return 1; } GAIAGEO_DECLARE int gaiaDxfWriteHeader (gaiaDxfWriterPtr dxf, double minx, double miny, double minz, double maxx, double maxy, double maxz) { /* printing the DXF HEADER */ char format[128]; if (dxf == NULL) return 0; if (dxf->error) return 0; if (dxf->out == NULL) return 0; fprintf (dxf->out, "%3d\r\nSECTION\r\n%3d\r\nHEADER\r\n", 0, 2); fprintf (dxf->out, "%3d\r\n$EXTMIN\r\n", 9); sprintf (format, "%%3d\r\n%%1.%df\r\n%%3d\r\n%%1.%df\r\n%%3d\r\n%%1.%df\r\n", dxf->precision, dxf->precision, dxf->precision); fprintf (dxf->out, format, 10, minx, 20, miny, 30, minz); fprintf (dxf->out, "%3d\r\n$EXTMAX\r\n", 9); sprintf (format, "%%3d\r\n%%1.%df\r\n%%3d\r\n%%1.%df\r\n%%3d\r\n%%1.%df\r\n", dxf->precision, dxf->precision, dxf->precision); fprintf (dxf->out, format, 10, maxx, 20, maxy, 30, maxz); fprintf (dxf->out, "%3d\r\nENDSEC\r\n", 0); return 1; } GAIAGEO_DECLARE int gaiaDxfWriteTables (gaiaDxfWriterPtr dxf) { /* printing the DXF TABLES section header */ if (dxf == NULL) return 0; if (dxf->error) return 0; if (dxf->out == NULL) return 0; fprintf (dxf->out, "%3d\r\nSECTION\r\n%3d\r\nTABLES\r\n", 0, 2); return 1; } GAIAGEO_DECLARE int gaiaDxfWriteLayer (gaiaDxfWriterPtr dxf, const char *layer) { /* printing a DXF TABLE/LAYER definition */ if (dxf == NULL) return 0; if (dxf->error) return 0; if (dxf->out == NULL) return 0; fprintf (dxf->out, "%3d\r\nTABLE\r\n%3d\r\nLAYER\r\n", 0, 2); fprintf (dxf->out, "%3d\r\n%3d\r\n%3d\r\nLAYER\r\n%3d\r\n%s\r\n", 70, 1, 0, 2, layer); fprintf (dxf->out, "%3d\r\n%d\r\n%3d\r\n%d\r\n%3d\r\nCONTINUOUS\r\n", 70, 64, 62, 7, 6); fprintf (dxf->out, "%3d\r\nENDTAB\r\n", 0); return 1; } GAIAGEO_DECLARE int gaiaDxfWriteFooter (gaiaDxfWriterPtr dxf) { /* printing the DXF footer */ if (dxf == NULL) return 0; if (dxf->error) return 0; if (dxf->out == NULL) return 0; fprintf (dxf->out, "%3d\r\nEOF\r\n", 0); return 1; } GAIAGEO_DECLARE int gaiaDxfWriteEntities (gaiaDxfWriterPtr dxf) { /* printing the DXF ENTITIES section header */ if (dxf == NULL) return 0; if (dxf->error) return 0; if (dxf->out == NULL) return 0; fprintf (dxf->out, "%3d\r\nSECTION\r\n%3d\r\nENTITIES\r\n", 0, 2); return 1; } GAIAGEO_DECLARE int gaiaDxfWriteEndSection (gaiaDxfWriterPtr dxf) { /* printing a DXF ENDSEC */ if (dxf == NULL) return 0; if (dxf->error) return 0; if (dxf->out == NULL) return 0; fprintf (dxf->out, "%3d\r\nENDSEC\r\n", 0); return 1; } GAIAGEO_DECLARE int gaiaDxfWritePoint (gaiaDxfWriterPtr dxf, const char *layer, double x, double y, double z) { /* printing a DXF POINT */ char format[128]; if (dxf == NULL) return 0; if (dxf->error) return 0; if (dxf->out == NULL) return 0; fprintf (dxf->out, "%3d\r\nPOINT\r\n%3d\r\n%s\r\n", 0, 8, layer); sprintf (format, "%%3d\r\n%%1.%df\r\n%%3d\r\n%%1.%df\r\n%%3d\r\n%%1.%df\r\n", dxf->precision, dxf->precision, dxf->precision); fprintf (dxf->out, format, 10, x, 20, y, 30, z); dxf->count++; return 1; } GAIAGEO_DECLARE int gaiaDxfWriteText (gaiaDxfWriterPtr dxf, const char *layer, double x, double y, double z, const char *label, double text_height, double angle) { /* printing a DXF TEXT */ char format[128]; if (dxf == NULL) return 0; if (dxf->error) return 0; if (dxf->out == NULL) return 0; fprintf (dxf->out, "%3d\r\nTEXT\r\n%3d\r\n%s\r\n", 0, 8, layer); sprintf (format, "%%3d\r\n%%1.%df\r\n%%3d\r\n%%1.%df\r\n%%3d\r\n%%1.%df\r\n", dxf->precision, dxf->precision, dxf->precision); fprintf (dxf->out, format, 10, x, 20, y, 30, z); sprintf (format, "%%3d\r\n%%1.%df\r\n%%3d\r\n%%1.%df\r\n%%3d\r\n%%s\r\n", dxf->precision, dxf->precision); fprintf (dxf->out, format, 40, text_height, 50, angle, 1, label); dxf->count++; return 1; } GAIAGEO_DECLARE int gaiaDxfWriteLine (gaiaDxfWriterPtr dxf, const char *layer, gaiaLinestringPtr line) { /* printing a DXF POLYLINE (opened) */ int iv; double x; double y; double z; double m; char format[128]; if (dxf == NULL) return 0; if (dxf->error) return 0; if (dxf->out == NULL) return 0; fprintf (dxf->out, "%3d\r\nPOLYLINE\r\n%3d\r\n%s\r\n%3d\r\n%6d\r\n", 0, 8, layer, 66, 1); fprintf (dxf->out, "%3d\r\n%6d\r\n", 70, 0); for (iv = 0; iv < line->Points; iv++) { /* exporting all vertices */ if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } fprintf (dxf->out, "%3d\r\nVERTEX\r\n%3d\r\n%s\r\n", 0, 8, layer); sprintf (format, "%%3d\r\n%%1.%df\r\n%%3d\r\n%%1.%df\r\n%%3d\r\n%%1.%df\r\n", dxf->precision, dxf->precision, dxf->precision); fprintf (dxf->out, format, 10, x, 20, y, 30, z); } fprintf (dxf->out, "%3d\r\nSEQEND\r\n%3d\r\n%s\r\n", 0, 8, layer); dxf->count++; return 1; } GAIAGEO_DECLARE int gaiaDxfWriteRing (gaiaDxfWriterPtr dxf, const char *layer, gaiaRingPtr ring) { /* printing a DXF POLYLINE (closed) */ int iv; double x; double y; double z; double m; char format[128]; if (dxf == NULL) return 0; if (dxf->error) return 0; if (dxf->out == NULL) return 0; fprintf (dxf->out, "%3d\r\nPOLYLINE\r\n%3d\r\n%s\r\n%3d\r\n%6d\r\n", 0, 8, layer, 66, 1); fprintf (dxf->out, "%3d\r\n%6d\r\n", 70, 1); for (iv = 0; iv < ring->Points; iv++) { /* exporting all vertices */ if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } fprintf (dxf->out, "%3d\r\nVERTEX\r\n%3d\r\n%s\r\n", 0, 8, layer); sprintf (format, "%%3d\r\n%%1.%df\r\n%%3d\r\n%%1.%df\r\n%%3d\r\n%%1.%df\r\n", dxf->precision, dxf->precision, dxf->precision); fprintf (dxf->out, format, 10, x, 20, y, 30, z); } fprintf (dxf->out, "%3d\r\nSEQEND\r\n%3d\r\n%s\r\n", 0, 8, layer); dxf->count++; return 1; } GAIAGEO_DECLARE int gaiaDxfWriteGeometry (gaiaDxfWriterPtr dxf, const char *layer, const char *label, double text_height, double text_rotation, gaiaGeomCollPtr geom) { /* exporting a whole Geometry into the DXF */ gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; gaiaRingPtr rng; int ib; if (dxf == NULL) return 0; if (dxf->error) return 0; if (dxf->out == NULL) return 0; pt = geom->FirstPoint; while (pt != NULL) { if (label == NULL) gaiaDxfWritePoint (dxf, layer, pt->X, pt->Y, pt->Z); else gaiaDxfWriteText (dxf, layer, pt->X, pt->Y, pt->Z, label, text_height, text_rotation); pt = pt->Next; } ln = geom->FirstLinestring; while (ln != NULL) { gaiaDxfWriteLine (dxf, layer, ln); ln = ln->Next; } pg = geom->FirstPolygon; while (pg != NULL) { rng = pg->Exterior; gaiaDxfWriteRing (dxf, layer, rng); for (ib = 0; ib < pg->NumInteriors; ib++) { rng = pg->Interiors + ib; gaiaDxfWriteRing (dxf, layer, rng); } pg = pg->Next; } return 1; } static gaiaDxfExportLayerPtr alloc_aux_layer (const char *layer, gaiaGeomCollPtr geom) { /* allocating and initializing an helper Layer */ int len; gaiaDxfExportLayerPtr lyr = malloc (sizeof (gaiaDxfExportLayer)); len = strlen (layer); lyr->layer_name = malloc (len + 1); strcpy (lyr->layer_name, layer), lyr->minx = geom->MinX; lyr->miny = geom->MinY; lyr->maxx = geom->MaxX; lyr->maxy = geom->MaxY; lyr->next = NULL; return lyr; } static void destroy_aux_layer (gaiaDxfExportLayerPtr lyr) { /* destroying a DXF Helper Layer */ if (lyr == NULL) return; if (lyr->layer_name != NULL) free (lyr->layer_name); free (lyr); } static gaiaDxfExportPtr alloc_aux_exporter () { /* allocating and initializing the helper Exporter */ gaiaDxfExportPtr aux = malloc (sizeof (gaiaDxfExport)); aux->first = NULL; aux->last = NULL; return aux; } static void destroy_aux_exporter (gaiaDxfExportPtr aux) { /* memory cleanup - destroying the helper Exporter */ gaiaDxfExportLayerPtr lyr; gaiaDxfExportLayerPtr n_lyr; if (aux == NULL) return; lyr = aux->first; while (lyr != NULL) { n_lyr = lyr->next; destroy_aux_layer (lyr); lyr = n_lyr; } free (aux); } static void update_aux_exporter (gaiaDxfExportPtr aux, const char *layer, gaiaGeomCollPtr geom) { /* updating the Helper Exporter */ gaiaDxfExportLayerPtr lyr = aux->first; while (lyr != NULL) { if (strcasecmp (layer, lyr->layer_name) == 0) { /* updating an already defined layer */ if (geom->MinX < lyr->minx) lyr->minx = geom->MinX; if (geom->MinY < lyr->miny) lyr->miny = geom->MinY; if (geom->MaxX > lyr->maxx) lyr->maxx = geom->MaxX; if (geom->MaxY > lyr->maxy) lyr->maxy = geom->MaxY; if (geom->MinX < aux->minx) aux->minx = geom->MinX; if (geom->MinY < aux->miny) aux->miny = geom->MinY; if (geom->MaxX > aux->maxx) aux->maxx = geom->MaxX; if (geom->MaxY > aux->maxy) aux->maxy = geom->MaxY; return; } lyr = lyr->next; } /* inserting a new Layer */ lyr = alloc_aux_layer (layer, geom); if (aux->first == NULL) { aux->first = lyr; aux->minx = geom->MinX; aux->miny = geom->MinY; aux->maxx = geom->MaxX; aux->maxy = geom->MaxY; } if (aux->last != NULL) aux->last->next = lyr; aux->last = lyr; } GAIAGEO_DECLARE int gaiaExportDxf (gaiaDxfWriterPtr dxf, sqlite3 * db_handle, const char *sql, const char *layer_col_name, const char *geom_col_name, const char *label_col_name, const char *text_height_col_name, const char *text_rotation_col_name, gaiaGeomCollPtr geom_filter) { /* exporting a complex DXF by executing an arbitrary SQL query */ sqlite3_stmt *stmt = NULL; int ret; int params; int first_row = 1; int layer_col = -1; int geom_col = -1; int label_col = -1; int text_height_col = -1; int text_rotation_col = -1; int i; unsigned char *p_blob; const unsigned char *blob; int len; const char *layer; const char *label = NULL; gaiaGeomCollPtr geom; gaiaDxfExportPtr aux = NULL; gaiaDxfExportLayerPtr lyr; if (dxf == NULL) return 0; if (dxf->error) return 0; if (dxf->out == NULL) return 0; if (db_handle == NULL) return 0; if (sql == NULL) return 0; if (layer_col_name == NULL) return 0; if (geom_col_name == NULL) return 0; /* attempting to create the SQL prepared statement */ ret = sqlite3_prepare_v2 (db_handle, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("exportDXF - CREATE STATEMENT error: %s\n", sqlite3_errmsg (db_handle)); goto stop; } params = sqlite3_bind_parameter_count (stmt); if (params > 0 && geom_filter != NULL) { /* parameter binding - Spatial Filter */ sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); for (i = 1; i <= params; i++) { gaiaToSpatiaLiteBlobWkb (geom_filter, &p_blob, &len); ret = sqlite3_bind_blob (stmt, i, p_blob, len, free); if (ret != SQLITE_OK) { spatialite_e ("exportDXF - parameter BIND error: %s\n", sqlite3_errmsg (db_handle)); goto stop; } } } /* pass #1 - sniffing the result set */ while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { if (first_row) { /* this one is the first row of the resultset */ for (i = 0; i < sqlite3_column_count (stmt); i++) { /* attempting to identify the resultset columns */ if (strcasecmp (layer_col_name, sqlite3_column_name (stmt, i)) == 0) layer_col = i; if (strcasecmp (geom_col_name, sqlite3_column_name (stmt, i)) == 0) geom_col = i; if (label_col_name != NULL) { if (strcasecmp (label_col_name, sqlite3_column_name (stmt, i)) == 0) label_col = i; } if (text_height_col_name != NULL) { if (strcasecmp (text_height_col_name, sqlite3_column_name (stmt, i)) == 0) text_height_col = i; } if (text_rotation_col_name != NULL) { if (strcasecmp (text_rotation_col_name, sqlite3_column_name (stmt, i)) == 0) text_rotation_col = i; } } if (layer_col < 0) { spatialite_e ("exportDXF - Layer Column not found into the resultset\n"); goto stop; } if (geom_col < 0) { spatialite_e ("exportDXF - Geometry Column not found into the resultset\n"); goto stop; } first_row = 0; aux = alloc_aux_exporter (); } layer = (const char *) sqlite3_column_text (stmt, layer_col); blob = sqlite3_column_blob (stmt, geom_col); len = sqlite3_column_bytes (stmt, geom_col); geom = gaiaFromSpatiaLiteBlobWkb (blob, len); if (geom) { update_aux_exporter (aux, layer, geom); gaiaFreeGeomColl (geom); } } } /* pass #2 - exporting the DXF file */ gaiaDxfWriteHeader (dxf, aux->minx, aux->miny, 0, aux->maxx, aux->maxy, 0); gaiaDxfWriteTables (dxf); lyr = aux->first; while (lyr != NULL) { gaiaDxfWriteLayer (dxf, lyr->layer_name); lyr = lyr->next; } gaiaDxfWriteEndSection (dxf); gaiaDxfWriteEntities (dxf); sqlite3_reset (stmt); while (1) { /* scrolling the result set rows */ int ival; double height = 10.0; double rotation = 0.0; ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { layer = (const char *) sqlite3_column_text (stmt, layer_col); if (label_col >= 0) label = (const char *) sqlite3_column_text (stmt, label_col); if (text_height_col >= 0) { if (sqlite3_column_type (stmt, text_height_col) == SQLITE_INTEGER) { ival = sqlite3_column_int (stmt, text_height_col); height = ival; } if (sqlite3_column_type (stmt, text_height_col) == SQLITE_FLOAT) height = sqlite3_column_double (stmt, text_height_col); } if (text_rotation_col >= 0) { if (sqlite3_column_type (stmt, text_rotation_col) == SQLITE_INTEGER) { ival = sqlite3_column_int (stmt, text_rotation_col); rotation = ival; } if (sqlite3_column_type (stmt, text_height_col) == SQLITE_FLOAT) rotation = sqlite3_column_double (stmt, text_rotation_col); } blob = sqlite3_column_blob (stmt, geom_col); len = sqlite3_column_bytes (stmt, geom_col); geom = gaiaFromSpatiaLiteBlobWkb (blob, len); if (geom) { gaiaDxfWriteGeometry (dxf, layer, label, height, rotation, geom); gaiaFreeGeomColl (geom); } } } gaiaDxfWriteEndSection (dxf); gaiaDxfWriteFooter (dxf); sqlite3_finalize (stmt); if (aux != NULL) destroy_aux_exporter (aux); return dxf->count; stop: if (stmt != NULL) sqlite3_finalize (stmt); if (aux != NULL) destroy_aux_exporter (aux); return 0; } libspatialite-4.1.1/src/Makefile.am0000664000175000017500000000170712163502133014112 00000000000000 SUBDIRS = headers \ gaiaaux \ gaiaexif \ gaiageo \ geopackage \ spatialite \ shapefiles \ srsinit \ virtualtext \ wfs \ dxf \ md5 INCLUDES = @CFLAGS@ INCLUDES += -I$(top_srcdir)/src/headers INCLUDES += -I$(top_srcdir) lib_LTLIBRARIES = libspatialite.la libspatialite_la_SOURCES = versioninfo/version.c libspatialite_la_LIBADD = ./gaiaaux/libgaiaaux.la \ ./gaiaexif/libgaiaexif.la \ ./gaiageo/libgaiageo.la \ ./geopackage/libgeopackage.la \ ./spatialite/libsplite.la \ ./shapefiles/libshapefiles.la \ ./dxf/libdxf.la \ ./md5/libmd5.la \ ./srsinit/libsrsinit.la \ ./virtualtext/libvirtualtext.la \ ./wfs/libwfs.la @LIBXML2_LIBS@ if MINGW libspatialite_la_LDFLAGS = -version-info 4:1:0 -no-undefined else if ANDROID libspatialite_la_LDFLAGS = -version-info 6:0:1 libspatialite_la_LIBADD += -ldl else libspatialite_la_LDFLAGS = -version-info 6:0:1 libspatialite_la_LIBADD += -lpthread -ldl endif endif MOSTLYCLEANFILES = *.gcna *.gcno *.gcda libspatialite-4.1.1/src/gaiaexif/0000775000175000017500000000000012163503225013711 500000000000000libspatialite-4.1.1/src/gaiaexif/Makefile.am0000664000175000017500000000026112163502133015661 00000000000000 INCLUDES = @CFLAGS@ INCLUDES += -I$(top_srcdir)/src/headers noinst_LTLIBRARIES = libgaiaexif.la libgaiaexif_la_SOURCES = gaia_exif.c MOSTLYCLEANFILES = *.gcna *.gcno *.gcda libspatialite-4.1.1/src/gaiaexif/gaia_exif.c0000664000175000017500000016734312163502133015724 00000000000000/* gaia_exif.c -- Gaia EXIF support version 4.1, 2013 May 8 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include #include #include #ifdef _WIN32 #define strcasecmp _stricmp #endif /* not WIN32 */ static void exifTagName (char gps, unsigned short tag_id, char *str, int len) { /* returns the canonical name corresponding to an EXIF TAG ID */ int l; char *name = "UNKNOWN"; if (gps) { switch (tag_id) { case 0x00: name = "GPSVersionID"; break; case 0x01: name = "GPSLatitudeRef"; break; case 0x02: name = "GPSLatitude"; break; case 0x03: name = "GPSLongitudeRef"; break; case 0x04: name = "GPSLongitude"; break; case 0x05: name = "GPSAltitudeRef"; break; case 0x06: name = "GPSAltitude"; break; case 0x07: name = "GPSTimeStamp"; break; case 0x08: name = "GPSSatellites"; break; case 0x09: name = "GPSStatus"; break; case 0x0A: name = "GPSMeasureMode"; break; case 0x0B: name = "GPSDOP"; break; case 0x0C: name = "GPSSpeedRef"; break; case 0x0D: name = "GPSSpeed"; break; case 0x0E: name = "GPSTrackRef"; break; case 0x0F: name = "GPSTrack"; break; case 0x10: name = "GPSImgDirectionRef"; break; case 0x11: name = "GPSImgDirection"; break; case 0x12: name = "GPSMapDatum"; break; case 0x13: name = "GPSDestLatitudeRef"; break; case 0x14: name = "GPSDestLatitude"; break; case 0x15: name = "GPSDestLongitudeRef"; break; case 0x16: name = "GPSDestLongitude"; break; case 0x17: name = "GPSDestBearingRef"; break; case 0x18: name = "GPSDestBearing"; break; case 0x19: name = "GPSDestDistanceRef"; break; case 0x1A: name = "GPSDestDistance"; break; case 0x1B: name = "GPSProcessingMethod"; break; case 0x1C: name = "GPSAreaInformation"; break; case 0x1D: name = "GPSDateStamp"; break; case 0x1E: name = "GPSDifferential"; break; }; } else { switch (tag_id) { case 0x000B: name = "ACDComment"; break; case 0x00FE: name = "NewSubFile"; break; case 0x00FF: name = "SubFile"; break; case 0x0100: name = "ImageWidth"; break; case 0x0101: name = "ImageLength"; break; case 0x0102: name = "BitsPerSample"; break; case 0x0103: name = "Compression"; break; case 0x0106: name = "PhotometricInterpretation"; break; case 0x010A: name = "FillOrder"; break; case 0x010D: name = "DocumentName"; break; case 0x010E: name = "ImageDescription"; break; case 0x010F: name = "Make"; break; case 0x0110: name = "Model"; break; case 0x0111: name = "StripOffsets"; break; case 0x0112: name = "Orientation"; break; case 0x0115: name = "SamplesPerPixel"; break; case 0x0116: name = "RowsPerStrip"; break; case 0x0117: name = "StripByteCounts"; break; case 0x0118: name = "MinSampleValue"; break; case 0x0119: name = "MaxSampleValue"; break; case 0x011A: name = "XResolution"; break; case 0x011B: name = "YResolution"; break; case 0x011C: name = "PlanarConfiguration"; break; case 0x011D: name = "PageName"; break; case 0x011E: name = "XPosition"; break; case 0x011F: name = "YPosition"; break; case 0x0120: name = "FreeOffsets"; break; case 0x0121: name = "FreeByteCounts"; break; case 0x0122: name = "GrayResponseUnit"; break; case 0x0123: name = "GrayResponseCurve"; break; case 0x0124: name = "T4Options"; break; case 0x0125: name = "T6Options"; break; case 0x0128: name = "ResolutionUnit"; break; case 0x0129: name = "PageNumber"; break; case 0x012D: name = "TransferFunction"; break; case 0x0131: name = "Software"; break; case 0x0132: name = "DateTime"; break; case 0x013B: name = "Artist"; break; case 0x013C: name = "HostComputer"; break; case 0x013D: name = "Predictor"; break; case 0x013E: name = "WhitePoint"; break; case 0x013F: name = "PrimaryChromaticities"; break; case 0x0140: name = "ColorMap"; break; case 0x0141: name = "HalfToneHints"; break; case 0x0142: name = "TileWidth"; break; case 0x0143: name = "TileLength"; break; case 0x0144: name = "TileOffsets"; break; case 0x0145: name = "TileByteCounts"; break; case 0x014A: name = "SubIFD"; break; case 0x014C: name = "InkSet"; break; case 0x014D: name = "InkNames"; break; case 0x014E: name = "NumberOfInks"; break; case 0x0150: name = "DotRange"; break; case 0x0151: name = "TargetPrinter"; break; case 0x0152: name = "ExtraSample"; break; case 0x0153: name = "SampleFormat"; break; case 0x0154: name = "SMinSampleValue"; break; case 0x0155: name = "SMaxSampleValue"; break; case 0x0156: name = "TransferRange"; break; case 0x0157: name = "ClipPath"; break; case 0x0158: name = "XClipPathUnits"; break; case 0x0159: name = "YClipPathUnits"; break; case 0x015A: name = "Indexed"; break; case 0x015B: name = "JPEGTables"; break; case 0x015F: name = "OPIProxy"; break; case 0x0200: name = "JPEGProc"; break; case 0x0201: name = "JPEGInterchangeFormat"; break; case 0x0202: name = "JPEGInterchangeFormatLength"; break; case 0x0203: name = "JPEGRestartInterval"; break; case 0x0205: name = "JPEGLosslessPredictors"; break; case 0x0206: name = "JPEGPointTransforms"; break; case 0x0207: name = "JPEGQTables"; break; case 0x0208: name = "JPEGDCTables"; break; case 0x0209: name = "JPEGACTables"; break; case 0x0211: name = "YCbCrCoefficients"; break; case 0x0212: name = "YCbCrSubSampling"; break; case 0x0213: name = "YCbCrPositioning"; break; case 0x0214: name = "ReferenceBlackWhite"; break; case 0x02BC: name = "ExtensibleMetadataPlatform"; break; case 0x0301: name = "Gamma"; break; case 0x0302: name = "ICCProfileDescriptor"; break; case 0x0303: name = "SRGBRenderingIntent"; break; case 0x0320: name = "ImageTitle"; break; case 0x5001: name = "ResolutionXUnit"; break; case 0x5002: name = "ResolutionYUnit"; break; case 0x5003: name = "ResolutionXLengthUnit"; break; case 0x5004: name = "ResolutionYLengthUnit"; break; case 0x5005: name = "PrintFlags"; break; case 0x5006: name = "PrintFlagsVersion"; break; case 0x5007: name = "PrintFlagsCrop"; break; case 0x5008: name = "PrintFlagsBleedWidth"; break; case 0x5009: name = "PrintFlagsBleedWidthScale"; break; case 0x500A: name = "HalftoneLPI"; break; case 0x500B: name = "HalftoneLPIUnit"; break; case 0x500C: name = "HalftoneDegree"; break; case 0x500D: name = "HalftoneShape"; break; case 0x500E: name = "HalftoneMisc"; break; case 0x500F: name = "HalftoneScreen"; break; case 0x5010: name = "JPEGQuality"; break; case 0x5011: name = "GridSize"; break; case 0x5012: name = "ThumbnailFormat"; break; case 0x5013: name = "ThumbnailWidth"; break; case 0x5014: name = "ThumbnailHeight"; break; case 0x5015: name = "ThumbnailColorDepth"; break; case 0x5016: name = "ThumbnailPlanes"; break; case 0x5017: name = "ThumbnailRawBytes"; break; case 0x5018: name = "ThumbnailSize"; break; case 0x5019: name = "ThumbnailCompressedSize"; break; case 0x501A: name = "ColorTransferFunction"; break; case 0x501B: name = "ThumbnailData"; break; case 0x5020: name = "ThumbnailImageWidth"; break; case 0x5021: name = "ThumbnailImageHeight"; break; case 0x5022: name = "ThumbnailBitsPerSample"; break; case 0x5023: name = "ThumbnailCompression"; break; case 0x5024: name = "ThumbnailPhotometricInterp"; break; case 0x5025: name = "ThumbnailImageDescription"; break; case 0x5026: name = "ThumbnailEquipMake"; break; case 0x5027: name = "ThumbnailEquipModel"; break; case 0x5028: name = "ThumbnailStripOffsets"; break; case 0x5029: name = "ThumbnailOrientation"; break; case 0x502A: name = "ThumbnailSamplesPerPixel"; break; case 0x502B: name = "ThumbnailRowsPerStrip"; break; case 0x502C: name = "ThumbnailStripBytesCount"; break; case 0x502D: name = "ThumbnailResolutionX"; break; case 0x502E: name = "ThumbnailResolutionY"; break; case 0x502F: name = "ThumbnailPlanarConfig"; break; case 0x5030: name = "ThumbnailResolutionUnit"; break; case 0x5031: name = "ThumbnailTransferFunction"; break; case 0x5032: name = "ThumbnailSoftwareUsed"; break; case 0x5033: name = "ThumbnailDateTime"; break; case 0x5034: name = "ThumbnailArtist"; break; case 0x5035: name = "ThumbnailWhitePoint"; break; case 0x5036: name = "ThumbnailPrimaryChromaticities"; break; case 0x5037: name = "ThumbnailYCbCrCoefficients"; break; case 0x5038: name = "ThumbnailYCbCrSubsampling"; break; case 0x5039: name = "ThumbnailYCbCrPositioning"; break; case 0x503A: name = "ThumbnailRefBlackWhite"; break; case 0x503B: name = "ThumbnailCopyRight"; break; case 0x5090: name = "LuminanceTable"; break; case 0x5091: name = "ChrominanceTable"; break; case 0x5100: name = "FrameDelay"; break; case 0x5101: name = "LoopCount"; break; case 0x5110: name = "PixelUnit"; break; case 0x5111: name = "PixelPerUnitX"; break; case 0x5112: name = "PixelPerUnitY"; break; case 0x5113: name = "PaletteHistogram"; break; case 0x1000: name = "RelatedImageFileFormat"; break; case 0x800D: name = "ImageID"; break; case 0x80E3: name = "Matteing"; break; case 0x80E4: name = "DataType"; break; case 0x80E5: name = "ImageDepth"; break; case 0x80E6: name = "TileDepth"; break; case 0x828D: name = "CFARepeatPatternDim"; break; case 0x828E: name = "CFAPattern"; break; case 0x828F: name = "BatteryLevel"; break; case 0x8298: name = "Copyright"; break; case 0x829A: name = "ExposureTime"; break; case 0x829D: name = "FNumber"; break; case 0x83BB: name = "IPTC/NAA"; break; case 0x84E3: name = "IT8RasterPadding"; break; case 0x84E5: name = "IT8ColorTable"; break; case 0x8649: name = "ImageResourceInformation"; break; case 0x8769: name = "Exif IFD Pointer"; break; case 0x8773: name = "ICC_Profile"; break; case 0x8822: name = "ExposureProgram"; break; case 0x8824: name = "SpectralSensitivity"; break; case 0x8825: name = "GPSInfo IFD Pointer"; break; case 0x8827: name = "ISOSpeedRatings"; break; case 0x8828: name = "OECF"; break; case 0x9000: name = "ExifVersion"; break; case 0x9003: name = "DateTimeOriginal"; break; case 0x9004: name = "DateTimeDigitized"; break; case 0x9101: name = "ComponentsConfiguration"; break; case 0x9102: name = "CompressedBitsPerPixel"; break; case 0x9201: name = "ShutterSpeedValue"; break; case 0x9202: name = "ApertureValue"; break; case 0x9203: name = "BrightnessValue"; break; case 0x9204: name = "ExposureBiasValue"; break; case 0x9205: name = "MaxApertureValue"; break; case 0x9206: name = "SubjectDistance"; break; case 0x9207: name = "MeteringMode"; break; case 0x9208: name = "LightSource"; break; case 0x9209: name = "Flash"; break; case 0x920A: name = "FocalLength"; break; case 0x920B: case 0xA20B: name = "FlashEnergy"; break; case 0x920C: case 0xA20C: name = "SpatialFrequencyResponse"; break; case 0x920D: name = "Noise"; break; case 0x920E: case 0xA20E: name = "FocalPlaneXResolution"; break; case 0x920F: case 0XA20F: name = "FocalPlaneYResolution"; break; case 0x9210: case 0xA210: name = "FocalPlaneResolutionUnit"; break; case 0x9211: name = "ImageNumber"; break; case 0x9212: name = "SecurityClassification"; break; case 0x9213: name = "ImageHistory"; break; case 0x9214: case 0xA214: name = "SubjectLocation"; break; case 0x9215: case 0xA215: name = "ExposureIndex"; break; case 0x9216: name = "TIFF/EPStandardID"; break; case 0x9217: case 0xA217: name = "SensingMethod"; break; case 0x923F: name = "StoNits"; break; case 0x927C: name = "MakerNote"; break; case 0x9286: name = "UserComment"; break; case 0x9290: name = "SubSecTime"; break; case 0x9291: name = "SubSecTimeOriginal"; break; case 0x9292: name = "SubSecTimeDigitized"; break; case 0xA000: name = "FlashpixVersion"; break; case 0xA001: name = "ColorSpace"; break; case 0xA002: name = "ExifImageWidth"; break; case 0xA003: name = "ExifImageLength"; break; case 0xA004: name = "RelatedSoundFile"; break; case 0xA005: name = "Interoperability IFD Pointer"; break; case 0xA20D: name = "Noise"; break; case 0xA211: name = "ImageNumber"; break; case 0xA212: name = "SecurityClassification"; break; case 0xA213: name = "ImageHistory"; break; case 0xA216: name = "TIFF/EPStandardID"; break; case 0xA300: name = "FileSource"; break; case 0xA301: name = "SceneType"; break; case 0xA302: name = "CFAPattern"; break; case 0xA401: name = "CustomRendered"; break; case 0xA402: name = "ExposureMode"; break; case 0xA403: name = "WhiteBalance"; break; case 0xA404: name = "DigitalZoomRatio"; break; case 0xA405: name = "FocalLengthIn35mmFilm"; break; case 0xA406: name = "SceneCaptureType"; break; case 0xA407: name = "GainControl"; break; case 0xA408: name = "Contrast"; break; case 0xA409: name = "Saturation"; break; case 0xA40A: name = "Sharpness"; break; case 0xA40B: name = "DeviceSettingDescription"; break; case 0xA40C: name = "SubjectDistanceRange"; break; case 0xA420: name = "ImageUniqueID"; break; }; } l = strlen (name); if (len > l) strcpy (str, name); else { memset (str, '\0', len); memcpy (str, name, len - 1); } } static unsigned short exifImportU16 (const unsigned char *p, int little_endian, int little_endian_arch) { /* fetches an unsigned 16bit int from BLOB respecting declared endiannes */ union cvt { unsigned char byte[2]; unsigned short short_value; } convert; if (little_endian_arch) { /* Litte-Endian architecture [e.g. x86] */ if (!little_endian) { /* Big Endian data */ convert.byte[0] = *(p + 1); convert.byte[1] = *(p + 0); } else { /* Little Endian data */ convert.byte[0] = *(p + 0); convert.byte[1] = *(p + 1); } } else { /* Big Endian architecture [e.g. PPC] */ if (!little_endian) { /* Big Endian data */ convert.byte[0] = *(p + 0); convert.byte[1] = *(p + 1); } else { /* Little Endian data */ convert.byte[0] = *(p + 1); convert.byte[1] = *(p + 0); } } return convert.short_value; } static unsigned int exifImportU32 (const unsigned char *p, int little_endian, int little_endian_arch) { /* fetches an unsigned 32bit int from BLOB respecting declared endiannes */ union cvt { unsigned char byte[4]; unsigned int int_value; } convert; if (little_endian_arch) { /* Litte-Endian architecture [e.g. x86] */ if (!little_endian) { /* Big Endian data */ convert.byte[0] = *(p + 3); convert.byte[1] = *(p + 2); convert.byte[2] = *(p + 1); convert.byte[3] = *(p + 0); } else { /* Little Endian data */ convert.byte[0] = *(p + 0); convert.byte[1] = *(p + 1); convert.byte[2] = *(p + 2); convert.byte[3] = *(p + 3); } } else { /* Big Endian architecture [e.g. PPC] */ if (!little_endian) { /* Big Endian data */ convert.byte[0] = *(p + 0); convert.byte[1] = *(p + 1); convert.byte[2] = *(p + 2); convert.byte[3] = *(p + 3); } else { /* Little Endian data */ convert.byte[0] = *(p + 3); convert.byte[1] = *(p + 2); convert.byte[2] = *(p + 1); convert.byte[3] = *(p + 0); } } return convert.int_value; } static float exifImportFloat32 (const unsigned char *p, int little_endian, int little_endian_arch) { /* fetches a 32bit FLOAT from BLOB respecting declared endiannes */ union cvt { unsigned char byte[4]; float float_value; } convert; if (little_endian_arch) { /* Litte-Endian architecture [e.g. x86] */ if (!little_endian) { /* Big Endian data */ convert.byte[0] = *(p + 3); convert.byte[1] = *(p + 2); convert.byte[2] = *(p + 1); convert.byte[3] = *(p + 0); } else { /* Little Endian data */ convert.byte[0] = *(p + 0); convert.byte[1] = *(p + 1); convert.byte[2] = *(p + 2); convert.byte[3] = *(p + 3); } } else { /* Big Endian architecture [e.g. PPC] */ if (!little_endian) { /* Big Endian data */ convert.byte[0] = *(p + 0); convert.byte[1] = *(p + 1); convert.byte[2] = *(p + 2); convert.byte[3] = *(p + 3); } else { /* Little Endian data */ convert.byte[0] = *(p + 3); convert.byte[1] = *(p + 2); convert.byte[2] = *(p + 1); convert.byte[3] = *(p + 0); } } return convert.float_value; } static void exifSetTagValue (gaiaExifTagPtr tag, const unsigned char *blob, int endian_mode, int endian_arch, int app1_offset) { /* setting the TAG value */ int i; int sz = 0; unsigned int offset; const unsigned char *ptr; unsigned short short_value; unsigned int int_value; short sign_short_value; int sign_int_value; float float_value; double double_value; if (tag->Type == 1 || tag->Type == 2 || tag->Type == 6 || tag->Type == 7) sz = tag->Count; if (tag->Type == 3 || tag->Type == 8) sz = tag->Count * 2; if (tag->Type == 4 || tag->Type == 9 || tag->Type == 11) sz = tag->Count * 4; if (tag->Type == 5 || tag->Type == 10 || tag->Type == 12) sz = tag->Count * 8; if (sz <= 4) { /* TAG values is stored within the offset */ ptr = tag->TagOffset; } else { /* jumping to offset */ offset = exifImportU32 (tag->TagOffset, endian_mode, endian_arch); offset += app1_offset + 10; ptr = blob + offset; } if (tag->Type == 1 || tag->Type == 6 || tag->Type == 7) { /* BYTE type */ tag->ByteValue = malloc (tag->Count); memcpy (tag->ByteValue, ptr, tag->Count); } if (tag->Type == 2) { /* STRING type */ tag->StringValue = malloc (tag->Count); memcpy (tag->StringValue, ptr, tag->Count); } if (tag->Type == 3) { /* SHORT type */ tag->ShortValues = malloc (tag->Count * sizeof (unsigned short)); for (i = 0; i < tag->Count; i++) { short_value = exifImportU16 (ptr + (i * 2), endian_mode, endian_arch); *(tag->ShortValues + i) = short_value; } } if (tag->Type == 4) { /* LONG type */ tag->LongValues = malloc (tag->Count * sizeof (unsigned int)); for (i = 0; i < tag->Count; i++) { int_value = exifImportU32 (ptr + (i * 4), endian_mode, endian_arch); *(tag->LongValues + i) = int_value; } } if (tag->Type == 5) { /* RATIONAL type */ tag->LongRationals1 = malloc (tag->Count * sizeof (unsigned int)); tag->LongRationals2 = malloc (tag->Count * sizeof (unsigned int)); for (i = 0; i < tag->Count; i++) { int_value = exifImportU32 (ptr + (i * 8), endian_mode, endian_arch); *(tag->LongRationals1 + i) = int_value; int_value = exifImportU32 (ptr + (i * 8) + 4, endian_mode, endian_arch); *(tag->LongRationals2 + i) = int_value; } } if (tag->Type == 8) { /* SSHORT type */ tag->SignedShortValues = malloc (tag->Count * sizeof (short)); for (i = 0; i < tag->Count; i++) { sign_short_value = gaiaImport16 (ptr + (i * 2), endian_mode, endian_arch); *(tag->SignedShortValues + i) = sign_short_value; } } if (tag->Type == 9) { /* SIGNED LONG type */ tag->SignedLongValues = malloc (tag->Count * sizeof (int)); for (i = 0; i < tag->Count; i++) { sign_int_value = gaiaImport32 (ptr + (i * 4), endian_mode, endian_arch); *(tag->SignedLongValues + i) = sign_int_value; } } if (tag->Type == 10) { /* SIGNED RATIONAL type */ tag->SignedLongRationals1 = malloc (tag->Count * sizeof (int)); tag->SignedLongRationals2 = malloc (tag->Count * sizeof (int)); for (i = 0; i < tag->Count; i++) { sign_int_value = gaiaImport32 (ptr + (i * 8), endian_mode, endian_arch); *(tag->SignedLongRationals1 + i) = sign_int_value; sign_int_value = gaiaImport32 (ptr + (i * 8) + 4, endian_mode, endian_arch); *(tag->SignedLongRationals2 + i) = sign_int_value; } } if (tag->Type == 11) { /* FLOAT type */ tag->FloatValues = malloc (tag->Count * sizeof (float)); for (i = 0; i < tag->Count; i++) { float_value = exifImportFloat32 (ptr + (i * 4), endian_mode, endian_arch); *(tag->FloatValues + i) = float_value; } } if (tag->Type == 12) { /* DOUBLE type */ tag->DoubleValues = malloc (tag->Count * sizeof (double)); for (i = 0; i < tag->Count; i++) { double_value = gaiaImport64 (ptr + (i * 8), endian_mode, endian_arch); *(tag->DoubleValues + i) = double_value; } } } static void exifParseTag (const unsigned char *blob, unsigned int offset, int endian_mode, int endian_arch, gaiaExifTagListPtr list, int gps, int app1_offset) { /* parsing some TAG and inserting into the list */ unsigned short tag_id; unsigned short type; unsigned int count; gaiaExifTagPtr tag; tag_id = exifImportU16 (blob + offset, endian_mode, endian_arch); type = exifImportU16 (blob + offset + 2, endian_mode, endian_arch); count = exifImportU32 (blob + offset + 4, endian_mode, endian_arch); tag = malloc (sizeof (gaiaExifTag)); tag->Gps = (char) gps; tag->TagId = tag_id; tag->Type = type; tag->Count = (unsigned short) count; memcpy (tag->TagOffset, blob + offset + 8, 4); tag->ByteValue = NULL; tag->StringValue = NULL; tag->ShortValues = NULL; tag->LongValues = NULL; tag->LongRationals1 = NULL; tag->LongRationals2 = NULL; tag->SignedShortValues = NULL; tag->SignedLongValues = NULL; tag->SignedLongRationals1 = NULL; tag->SignedLongRationals2 = NULL; tag->FloatValues = NULL; tag->DoubleValues = NULL; exifSetTagValue (tag, blob, endian_mode, endian_arch, app1_offset); tag->Next = NULL; if (!(list->First)) list->First = tag; if (list->Last) (list->Last)->Next = tag; list->Last = tag; (list->NumTags)++; } static void exifExpandIFD (gaiaExifTagListPtr list, const unsigned char *blob, int endian_mode, int endian_arch, int app1_offset) { /* trying to expand the EXIF-IFD */ unsigned int offset; unsigned short items; unsigned short i; gaiaExifTagPtr tag; if (!list) return; tag = list->First; while (tag) { if (tag->TagId == 34665) { /* ok, this one is an IFD pointer */ offset = exifImportU32 (tag->TagOffset, endian_mode, endian_arch); offset += app1_offset + 10; items = exifImportU16 (blob + offset, endian_mode, endian_arch); offset += 2; for (i = 0; i < items; i++) { /* fetching the TAGs */ exifParseTag (blob, offset, endian_mode, endian_arch, list, 0, app1_offset); offset += 12; } } tag = tag->Next; } } static void exifExpandGPS (gaiaExifTagListPtr list, const unsigned char *blob, int endian_mode, int endian_arch, int app1_offset) { /* trying to expand the EXIF-GPS */ unsigned int offset; unsigned short items; unsigned short i; gaiaExifTagPtr tag; if (!list) return; tag = list->First; while (tag) { if (tag->TagId == 34853) { /* ok, this one is a GPSinfo-IFD pointer */ offset = exifImportU32 (tag->TagOffset, endian_mode, endian_arch); offset += app1_offset + 10; items = exifImportU16 (blob + offset, endian_mode, endian_arch); offset += 2; for (i = 0; i < items; i++) { /* fetching the TAGs */ exifParseTag (blob, offset, endian_mode, endian_arch, list, 1, app1_offset); offset += 12; } } tag = tag->Next; } } GAIAEXIF_DECLARE gaiaExifTagListPtr gaiaGetExifTags (const unsigned char *blob, int size) { /* trying to parse a BLOB as an EXIF photo */ gaiaExifTagListPtr list; int endian_arch = gaiaEndianArch (); int endian_mode; unsigned short app1_size; unsigned int offset; unsigned short items; unsigned short i; int app1_offset; gaiaExifTagPtr pT; if (!blob) goto error; if (size < 14) goto error; /* checking for SOI [Start Of Image] */ if (*(blob + 0) == 0xff && *(blob + 1) == 0xd8) ; else goto error; for (app1_offset = 2; app1_offset < size - 1; app1_offset++) { if (*(blob + app1_offset) == 0xff && *(blob + app1_offset + 1) == 0xe1) { /* found APP1 marker */ break; } } if (app1_offset == size - 1) { /* we've reached the end of the file, but not found the marker */ goto error; } /* checking for EXIF identifier */ if (memcmp (blob + app1_offset + 4, "Exif", 4) == 0) ; else goto error; /* checking for Pad */ if (*(blob + app1_offset + 8) == 0x00 && *(blob + app1_offset + 9) == 0x00) ; else goto error; if (memcmp (blob + app1_offset + 10, "II", 2) == 0) endian_mode = GAIA_LITTLE_ENDIAN; else if (memcmp (blob + app1_offset + 10, "MM", 2) == 0) endian_mode = GAIA_BIG_ENDIAN; else goto error; /* OK: this BLOB seems to contain a valid EXIF */ app1_size = exifImportU16 (blob + app1_offset + 2, endian_mode, endian_arch); if ((app1_size + app1_offset + 4) > size) goto error; /* checking for marker */ if (endian_mode == GAIA_BIG_ENDIAN) { if (*(blob + app1_offset + 12) == 0x00 && *(blob + app1_offset + 13) == 0x2a) ; else goto error; } else { if (*(blob + app1_offset + 12) == 0x2a && *(blob + app1_offset + 13) == 0x00) ; else goto error; } /* allocating an EXIF TAG LIST */ list = malloc (sizeof (gaiaExifTagList)); list->First = NULL; list->Last = NULL; list->NumTags = 0; list->TagsArray = NULL; offset = exifImportU32 (blob + app1_offset + 14, endian_mode, endian_arch); offset += app1_offset + 10; /* jump to offset */ items = exifImportU16 (blob + offset, endian_mode, endian_arch); offset += 2; for (i = 0; i < items; i++) { /* fetching the EXIF TAGs */ exifParseTag (blob, offset, endian_mode, endian_arch, list, 0, app1_offset); offset += 12; } /* expanding the IFD and GPS tags */ exifExpandIFD (list, blob, endian_mode, endian_arch, app1_offset); exifExpandGPS (list, blob, endian_mode, endian_arch, app1_offset); if (list->NumTags) { /* organizing the EXIF TAGS as an Array */ list->TagsArray = malloc (sizeof (gaiaExifTagPtr) * list->NumTags); pT = list->First; i = 0; while (pT) { *(list->TagsArray + i++) = pT; pT = pT->Next; } } return list; error: return NULL; } GAIAEXIF_DECLARE void gaiaExifTagsFree (gaiaExifTagListPtr p) { /* memory cleanup; freeing the EXIF TAG list */ gaiaExifTagPtr pT; gaiaExifTagPtr pTn; if (!p) return; pT = p->First; while (pT) { pTn = pT->Next; if (pT->ByteValue) free (pT->ByteValue); if (pT->StringValue) free (pT->StringValue); if (pT->ShortValues) free (pT->ShortValues); if (pT->LongValues) free (pT->LongValues); if (pT->LongRationals1) free (pT->LongRationals1); if (pT->LongRationals2) free (pT->LongRationals2); if (pT->SignedShortValues) free (pT->SignedShortValues); if (pT->SignedLongValues) free (pT->SignedLongValues); if (pT->SignedLongRationals1) free (pT->SignedLongRationals1); if (pT->SignedLongRationals2) free (pT->SignedLongRationals2); if (pT->FloatValues) free (pT->FloatValues); if (pT->DoubleValues) free (pT->DoubleValues); free (pT); pT = pTn; } if (p->TagsArray) free (p->TagsArray); free (p); } GAIAEXIF_DECLARE int gaiaGetExifTagsCount (gaiaExifTagListPtr tag_list) { /* returns the # TAGSs into this list */ return tag_list->NumTags; } GAIAEXIF_DECLARE gaiaExifTagPtr gaiaGetExifTagByPos (gaiaExifTagListPtr tag_list, const int pos) { /* returns the Nth TAG from this list */ if (pos >= 0 && pos < tag_list->NumTags) return *(tag_list->TagsArray + pos); return NULL; } GAIAEXIF_DECLARE gaiaExifTagPtr gaiaGetExifTagById (const gaiaExifTagListPtr tag_list, const unsigned short tag_id) { /* returns a not-GPS TAG identified by its ID */ gaiaExifTagPtr pT = tag_list->First; while (pT) { if (!(pT->Gps) && pT->TagId == tag_id) return pT; pT = pT->Next; } return NULL; } GAIAEXIF_DECLARE gaiaExifTagPtr gaiaGetExifGpsTagById (const gaiaExifTagListPtr tag_list, const unsigned short tag_id) { /* returns a GPS TAG identified by its ID */ gaiaExifTagPtr pT = tag_list->First; while (pT) { if (pT->Gps && pT->TagId == tag_id) return pT; pT = pT->Next; } return NULL; } GAIAEXIF_DECLARE gaiaExifTagPtr gaiaGetExifTagByName (const gaiaExifTagListPtr tag_list, const char *tag_name) { /* returns a TAG identified by its Name */ char name[128]; gaiaExifTagPtr pT = tag_list->First; while (pT) { exifTagName (pT->Gps, pT->TagId, name, 128); if (strcasecmp (name, tag_name) == 0) return pT; pT = pT->Next; } return NULL; } GAIAEXIF_DECLARE unsigned short gaiaExifTagGetId (const gaiaExifTagPtr tag) { /* returns the TAG ID */ return tag->TagId; } GAIAEXIF_DECLARE int gaiaIsExifGpsTag (const gaiaExifTagPtr tag) { /* checks if this one is a GPS tag */ return tag->Gps; } GAIAEXIF_DECLARE void gaiaExifTagGetName (const gaiaExifTagPtr tag, char *str, int len) { /* returns the TAG symbolic Name */ exifTagName (tag->Gps, tag->TagId, str, len); } GAIAEXIF_DECLARE unsigned short gaiaExifTagGetValueType (const gaiaExifTagPtr tag) { /* returns the TAG value Type */ return tag->Type; } GAIAEXIF_DECLARE unsigned short gaiaExifTagGetNumValues (const gaiaExifTagPtr tag) { /* returns the # TAG Values */ return tag->Count; } GAIAEXIF_DECLARE unsigned char gaiaExifTagGetByteValue (const gaiaExifTagPtr tag, const int ind, int *ok) { /* returns the Nth Byte value */ if (ind >= 0 && ind < tag->Count && (tag->Type == 1 || tag->Type == 6 || tag->Type == 7)) { *ok = 1; return *(tag->ByteValue + ind); } *ok = 0; return 0; } GAIAEXIF_DECLARE void gaiaExifTagGetStringValue (const gaiaExifTagPtr tag, char *str, int len, int *ok) { /* returns the String value */ int l; if (tag->Type == 2) { *ok = 1; l = strlen (tag->StringValue); if (len > l) strcpy (str, tag->StringValue); else { memset (str, '\0', len); memcpy (str, tag->StringValue, len - 1); } return; } *ok = 0; } GAIAEXIF_DECLARE unsigned short gaiaExifTagGetShortValue (const gaiaExifTagPtr tag, const int ind, int *ok) { /* returns the Nth Short value */ if (ind >= 0 && ind < tag->Count && tag->Type == 3) { *ok = 1; return *(tag->ShortValues + ind); } *ok = 0; return 0; } GAIAEXIF_DECLARE unsigned int gaiaExifTagGetLongValue (const gaiaExifTagPtr tag, const int ind, int *ok) { /* returns the Nth Long value */ if (ind >= 0 && ind < tag->Count && tag->Type == 4) { *ok = 1; return *(tag->LongValues + ind); } *ok = 0; return 0; } GAIAEXIF_DECLARE unsigned int gaiaExifTagGetRational1Value (const gaiaExifTagPtr tag, const int ind, int *ok) { /* returns the Nth Rational (1) value */ if (ind >= 0 && ind < tag->Count && tag->Type == 5) { *ok = 1; return *(tag->LongRationals1 + ind); } *ok = 0; return 0; } GAIAEXIF_DECLARE unsigned int gaiaExifTagGetRational2Value (const gaiaExifTagPtr tag, const int ind, int *ok) { /* returns the Nth Rational (2) value */ if (ind >= 0 && ind < tag->Count && tag->Type == 5) { *ok = 1; return *(tag->LongRationals2 + ind); } *ok = 0; return 0; } GAIAEXIF_DECLARE double gaiaExifTagGetRationalValue (const gaiaExifTagPtr tag, const int ind, int *ok) { /* returns the Nth Rational value as Double */ double x; if (ind >= 0 && ind < tag->Count && tag->Type == 5 && *(tag->LongRationals2 + ind)) { *ok = 1; x = (double) (*(tag->LongRationals1 + ind)) / (double) (*(tag->LongRationals2 + ind)); return x; } *ok = 0; return 0; } GAIAEXIF_DECLARE short gaiaExifTagGetSignedShortValue (const gaiaExifTagPtr tag, const int ind, int *ok) { /* returns the Nth Signed Short value */ if (ind >= 0 && ind < tag->Count && tag->Type == 8) { *ok = 1; return *(tag->SignedShortValues + ind); } *ok = 0; return 0; } GAIAEXIF_DECLARE int gaiaExifTagGetSignedLongValue (const gaiaExifTagPtr tag, const int ind, int *ok) { /* returns the Nth Signed Long value */ if (ind >= 0 && ind < tag->Count && tag->Type == 9) { *ok = 1; return *(tag->SignedLongValues + ind); } *ok = 0; return 0; } GAIAEXIF_DECLARE int gaiaExifTagGetSignedRational1Value (const gaiaExifTagPtr tag, const int ind, int *ok) { /* returns the Nth Signed Rational (1) value */ if (ind >= 0 && ind < tag->Count && tag->Type == 10) { *ok = 1; return *(tag->SignedLongRationals1 + ind); } *ok = 0; return 0; } GAIAEXIF_DECLARE int gaiaExifTagGetSignedRational2Value (const gaiaExifTagPtr tag, const int ind, int *ok) { /* returns the Nth Signed Rational (2) value */ if (ind >= 0 && ind < tag->Count && tag->Type == 10) { *ok = 1; return *(tag->SignedLongRationals2 + ind); } *ok = 0; return 0; } GAIAEXIF_DECLARE double gaiaExifTagGetSignedRationalValue (const gaiaExifTagPtr tag, const int ind, int *ok) { /* returns the Nth Signed Rational value as Double */ double x; if (ind >= 0 && ind < tag->Count && tag->Type == 10 && *(tag->SignedLongRationals2 + ind)) { *ok = 1; x = (double) (*(tag->SignedLongRationals1 + ind)) / (double) (*(tag->SignedLongRationals2 + ind)); return x; } *ok = 0; return 0; } GAIAEXIF_DECLARE float gaiaExifTagGetFloatValue (const gaiaExifTagPtr tag, const int ind, int *ok) { /* returns the Nth Float value */ if (ind >= 0 && ind < tag->Count && tag->Type == 11) { *ok = 1; return *(tag->FloatValues + ind); } *ok = 0; return 0; } GAIAEXIF_DECLARE double gaiaExifTagGetDoubleValue (const gaiaExifTagPtr tag, const int ind, int *ok) { /* returns the Nth Double value */ if (ind >= 0 && ind < tag->Count && tag->Type == 12) { *ok = 1; return *(tag->DoubleValues + ind); } *ok = 0; return 0; } GAIAEXIF_DECLARE void gaiaExifTagGetHumanReadable (const gaiaExifTagPtr tag, char *str, int len, int *ok) { /* returns the Human Readable value */ char *human = ""; char dummy[1024]; int l; int xok; double dblval; switch (tag->TagId) { case 0x0128: /* ResolutionUnit */ if (tag->Type == 3 && tag->Count == 1) { switch (*(tag->ShortValues + 0)) { case 2: human = "Inches"; break; case 3: human = "Centimeters"; break; }; } break; case 0x8822: /* ExposureProgram */ if (tag->Type == 3 && tag->Count == 1) { switch (*(tag->ShortValues + 0)) { case 0: human = "Not defined"; break; case 1: human = "Manual"; break; case 2: human = "Normal program"; break; case 3: human = "Aperture priority"; break; case 4: human = "Shutter priority"; break; case 5: human = "Creative program (biased toward depth of field)"; break; case 6: human = "Action program (biased toward fast shutter speed)"; break; case 7: human = "Portrait mode (for closeup photos with the background out of focus)"; break; case 8: human = "Landscape mode (for landscape photos with the background in focus)"; break; }; } break; case 0xA402: /* ExposureMode */ if (tag->Type == 3 && tag->Count == 1) { switch (*(tag->ShortValues + 0)) { case 0: human = "Auto exposure"; break; case 1: human = "Manual exposure"; break; case 2: human = "Auto bracket"; break; }; } break; case 0x0112: /* Orientation */ if (tag->Type == 3 && tag->Count == 1) { switch (*(tag->ShortValues + 0)) { case 1: human = "Normal"; break; case 2: human = "Mirrored"; break; case 3: human = "Upsidedown"; break; case 4: human = "Upsidedown Mirrored"; break; case 5: human = "90 deg Clockwise Mirrored"; break; case 6: human = "90 deg Counterclocwise"; break; case 7: human = "90 deg Counterclocwise Mirrored"; break; case 8: human = "90 deg Mirrored"; break; }; } break; case 0x9207: /* MeteringMode */ if (tag->Type == 3 && tag->Count == 1) { switch (*(tag->ShortValues + 0)) { case 1: human = "Average"; break; case 2: human = "Center Weighted Average"; break; case 3: human = "Spot"; break; case 4: human = "MultiSpot"; break; case 5: human = "MultiSegment"; break; case 6: human = "Partial"; break; case 255: human = "Other"; break; }; } break; case 0xA403: /* WhiteBalance */ if (tag->Type == 3 && tag->Count == 1) { switch (*(tag->ShortValues + 0)) { case 0: human = "Auto"; break; case 1: human = "Sunny"; break; case 2: human = "Cloudy"; break; case 3: human = "Tungsten"; break; case 4: human = "Fluorescent"; break; case 5: human = "Flash"; break; case 6: human = "Custom"; break; case 129: human = "Manual"; break; }; } break; case 0x9209: /* Flash */ if (tag->Type == 3 && tag->Count == 1) { switch (*(tag->ShortValues + 0)) { case 0: case 16: case 24: case 32: human = "No Flash"; break; case 1: human = "Flash"; break; case 5: human = "Flash, strobe return light not detected"; break; case 7: human = "Flash, strobe return light detected"; break; case 9: human = "Compulsory Flash"; break; case 13: human = "Compulsory Flash, Return light not detected"; break; case 15: human = "Compulsory Flash, Return light detected"; break; case 25: human = "Flash, Auto-Mode"; break; case 29: human = "Flash, Auto-Mode, Return light not detected"; break; case 31: human = "Flash, Auto-Mode, Return light detected"; break; case 65: human = "Red Eye"; break; case 69: human = "Red Eye, Return light not detected"; break; case 71: human = "Red Eye, Return light detected"; break; case 73: human = "Red Eye, Compulsory Flash"; break; case 77: human = "Red Eye, Compulsory Flash, Return light not detected"; break; case 79: human = "Red Eye, Compulsory Flash, Return light detected"; break; case 89: human = "Red Eye, Auto-Mode"; break; case 93: human = "Red Eye, Auto-Mode, Return light not detected"; break; case 95: human = "Red Eye, Auto-Mode, Return light detected"; break; }; } break; case 0xA217: /* SensingMethod */ if (tag->Type == 3 && tag->Count == 1) { switch (*(tag->ShortValues + 0)) { case 1: human = "Not defined"; break; case 2: human = "One Chip Color Area Sensor"; break; case 3: human = "Two Chip Color Area Sensor"; break; case 4: human = "Three Chip Color Area Sensor"; break; case 5: human = "Color Sequential Area Sensor"; break; case 7: human = "Trilinear Sensor"; break; case 8: human = "Color Sequential Linear Sensor"; break; }; } break; case 0xA406: /* SceneCaptureType */ if (tag->Type == 3 && tag->Count == 1) { switch (*(tag->ShortValues + 0)) { case 0: human = "Standard"; break; case 1: human = "Landscape"; break; case 2: human = "Portrait"; break; case 3: human = "Night scene"; break; }; } break; case 0xA407: /* GainControl */ if (tag->Type == 3 && tag->Count == 1) { switch (*(tag->ShortValues + 0)) { case 0: human = "None"; break; case 1: human = "Low gain up"; break; case 2: human = "High gain up"; break; case 3: human = "Low gain down"; break; case 4: human = "High gain down"; break; }; } break; case 0xA408: /* Contrast */ if (tag->Type == 3 && tag->Count == 1) { switch (*(tag->ShortValues + 0)) { case 0: human = "Normal"; break; case 1: human = "Soft"; break; case 2: human = "Hard"; break; }; } break; case 0xA409: /* Saturation */ if (tag->Type == 3 && tag->Count == 1) { switch (*(tag->ShortValues + 0)) { case 0: human = "Normal"; break; case 1: human = "Low saturation"; break; case 2: human = "High saturation"; break; }; } break; case 0xA40A: /* Sharpness */ if (tag->Type == 3 && tag->Count == 1) { switch (*(tag->ShortValues + 0)) { case 0: human = "Normal"; break; case 1: human = "Soft"; break; case 2: human = "Hard"; break; }; } break; case 0xA40C: /* SubjectDistanceRange */ if (tag->Type == 3 && tag->Count == 1) { switch (*(tag->ShortValues + 0)) { case 0: human = "Unknown"; break; case 1: human = "Macro"; break; case 2: human = "Close view"; break; case 3: human = "Distant view"; break; }; } break; case 0x9208: /* LightSource */ if (tag->Type == 3 && tag->Count == 1) { switch (*(tag->ShortValues + 0)) { case 0: human = "Unknown"; break; case 1: human = "Daylight"; break; case 2: human = "Fluorescent"; break; case 3: human = "Tungsten (incandescent light)"; break; case 4: human = "Flash"; break; case 9: human = "Fine weather"; break; case 10: human = "Cloudy weather"; break; case 11: human = "Shade"; case 12: human = "Daylight fluorescent (D 5700 - 7100K)"; break; case 13: human = "Day white fluorescent (N 4600 - 5400K)"; break; case 14: human = "Cool white fluorescent (W 3900 - 4500K)"; case 15: human = "White fluorescent (WW 3200 - 3700K)"; break; case 17: human = "Standard light A"; break; case 18: human = "Standard light B"; break; case 19: human = "Standard light C"; break; case 20: human = "D55"; break; case 21: human = "D65"; break; case 22: human = "D75"; break; case 23: human = "D50"; break; case 24: human = "ISO studio tungsten"; break; case 255: human = "other light source"; break; }; } break; case 0xA001: /* ColorSpace */ if (tag->Type == 3 && tag->Count == 1) { switch (*(tag->ShortValues + 0)) { case 1: human = "sRGB"; break; case 0xffff: human = "Uncalibrated"; break; }; } break; case 0x8827: /* ISOSpeedRatings */ if (tag->Type == 3 && tag->Count == 1) { sprintf (dummy, "%u ISO", *(tag->ShortValues + 0)); human = dummy; } break; case 0xA002: /* ExifImageWidth */ case 0xA003: /* ExifImageLength */ if (tag->Type == 3 && tag->Count == 1) { sprintf (dummy, "%u pixels", *(tag->ShortValues + 0)); human = dummy; } else if (tag->Type == 4 && tag->Count == 1) { sprintf (dummy, "%u pixels", *(tag->LongValues + 0)); human = dummy; } break; case 0x829A: /* ExposureTime */ if (tag->Type == 5 && tag->Count == 1) { dblval = gaiaExifTagGetRationalValue (tag, 0, &xok); if (xok) { if (dblval < 1.0) { dblval = 1.0 / dblval; sprintf (dummy, "1/%1.0f sec", dblval); human = dummy; } else { sprintf (dummy, "%1.0f sec", dblval); human = dummy; } } } break; case 0x9201: /* ShutterSpeedValue */ if (tag->Type == 10 && tag->Count == 1) { dblval = gaiaExifTagGetSignedRationalValue (tag, 0, &xok); if (xok) { dblval = exp (dblval * log (2)); if (dblval > 1.0) dblval = floor (dblval); if (dblval < 1.0) { dblval = math_round (1.0 / dblval); sprintf (dummy, "%1.0f sec", dblval); human = dummy; } else { sprintf (dummy, "1/%1.0f sec", dblval); human = dummy; } } } break; case 0x829D: /* FNumber */ if (tag->Type == 5 && tag->Count == 1) { dblval = gaiaExifTagGetRationalValue (tag, 0, &xok); if (xok) { sprintf (dummy, "F %1.1f", dblval); human = dummy; } } break; case 0x9202: /* ApertureValue */ case 0x9205: /* MaxApertureValue */ if (tag->Type == 5 && tag->Count == 1) { dblval = gaiaExifTagGetRationalValue (tag, 0, &xok); if (xok) { dblval = exp ((dblval * log (2)) / 2.0); sprintf (dummy, "F %1.1f", dblval); human = dummy; } } break; case 0x920A: /* FocalLength */ if (tag->Type == 5 && tag->Count == 1) { dblval = gaiaExifTagGetRationalValue (tag, 0, &xok); if (xok) { sprintf (dummy, "%1.1f mm", dblval); human = dummy; } } break; case 0xA405: /* FocalLengthIn35mmFilm */ if (tag->Type == 3 && tag->Count == 1) { sprintf (dummy, "%u mm", *(tag->ShortValues + 0)); human = dummy; } break; case 0x9204: /* ExposureBiasValue */ if (tag->Type == 10 && tag->Count == 1) { dblval = gaiaExifTagGetSignedRationalValue (tag, 0, &xok); if (xok) { sprintf (dummy, "%1.2f EV", dblval); human = dummy; } } break; }; l = strlen (human); if (l > 0) { if (len > l) strcpy (str, human); else { memset (str, '\0', len); memcpy (str, human, len - 1); } *ok = 1; return; } *ok = 0; } GAIAEXIF_DECLARE int gaiaGuessBlobType (const unsigned char *blob, int size) { /* returns the BLOB content type */ int jpeg = 0; int exif = 0; int exif_gps = 0; int geom = 1; gaiaExifTagListPtr exif_list; gaiaExifTagPtr pT; unsigned char jpeg1_signature[2]; unsigned char jpeg2_signature[2]; unsigned char jpeg3_signature[4]; unsigned char jfif_signature[4]; unsigned char exif_signature[4]; unsigned char png_signature[8]; unsigned char zip_signature[4]; unsigned char tiff_signature_little[4]; unsigned char tiff_signature_big[4]; unsigned char riff_signature[4]; unsigned char webp_signature[8]; jpeg1_signature[0] = 0xff; jpeg1_signature[1] = 0xd8; jpeg2_signature[0] = 0xff; jpeg2_signature[1] = 0xd9; jpeg3_signature[0] = 0xff; jpeg3_signature[1] = 0xd8; jpeg3_signature[2] = 0xff; jpeg3_signature[3] = 0xe0; jfif_signature[0] = 0x4a; jfif_signature[1] = 0x46; jfif_signature[2] = 0x49; jfif_signature[3] = 0x46; exif_signature[0] = 0x45; exif_signature[1] = 0x78; exif_signature[2] = 0x69; exif_signature[3] = 0x66; png_signature[0] = 0x89; png_signature[1] = 0x50; png_signature[2] = 0x4e; png_signature[3] = 0x47; png_signature[4] = 0x0d; png_signature[5] = 0x0a; png_signature[6] = 0x1a; png_signature[7] = 0x0a; zip_signature[0] = 0x50; zip_signature[1] = 0x4b; zip_signature[2] = 0x03; zip_signature[3] = 0x04; tiff_signature_little[0] = 'I'; tiff_signature_little[1] = 'I'; tiff_signature_little[2] = 0x2a; tiff_signature_little[3] = 0x00; tiff_signature_big[0] = 'M'; tiff_signature_big[1] = 'M'; tiff_signature_big[2] = 0x00; tiff_signature_big[3] = 0x2a; riff_signature[0] = 'R'; riff_signature[1] = 'I'; riff_signature[2] = 'F'; riff_signature[3] = 'F'; webp_signature[0] = 'W'; webp_signature[1] = 'E'; webp_signature[2] = 'B'; webp_signature[3] = 'P'; webp_signature[4] = 'V'; webp_signature[5] = 'P'; webp_signature[6] = '8'; webp_signature[7] = ' '; if (size < 1 || !blob) return GAIA_HEX_BLOB; if (size > 4) { if (memcmp (blob, tiff_signature_big, 4) == 0) return GAIA_TIFF_BLOB; if (memcmp (blob, tiff_signature_little, 4) == 0) return GAIA_TIFF_BLOB; } if (size > 5) { if (strncmp ((char *) blob, "%PDF-", 5) == 0) return GAIA_PDF_BLOB; } if (size > 4) { if (memcmp (blob, zip_signature, 4) == 0) return GAIA_ZIP_BLOB; } if (size > 6) { if (strncmp ((char *) blob, "GIF87a", 6) == 0 || strncmp ((char *) blob, "GIF89a", 6) == 0) return GAIA_GIF_BLOB; } if (size > 8) { if (memcmp (blob, png_signature, 8) == 0) return GAIA_PNG_BLOB; } if (size > 4) { if (memcmp (blob, jpeg1_signature, 2) == 0 && memcmp (blob + size - 2, jpeg2_signature, 2) == 0) jpeg = 1; /* this one is the standard JPEG signature */ if (memcmp (blob, jpeg3_signature, 4) == 0) jpeg = 1; /* another common JPEG signature */ } if (size > 10) { if (memcmp (blob + 6, jfif_signature, 4) == 0) jpeg = 1; /* standard JFIF signature */ if (memcmp (blob + 6, exif_signature, 4) == 0) jpeg = 1; /* standard EXIF signature */ } if (jpeg) { exif_list = gaiaGetExifTags (blob, size); if (exif_list) { exif = 1; pT = exif_list->First; while (pT) { if (pT->Gps) { exif_gps = 1; break; } pT = pT->Next; } gaiaExifTagsFree (exif_list); } } if (jpeg && exif && exif_gps) return GAIA_EXIF_GPS_BLOB; if (jpeg && exif) return GAIA_EXIF_BLOB; if (jpeg) return GAIA_JPEG_BLOB; if (size > 16) { if ((memcmp (blob, riff_signature, 4) == 0) && (memcmp (blob + 8, webp_signature, 8) == 0)) return GAIA_WEBP_BLOB; } /* testing for GEOMETRY */ if (size < 45) geom = 0; else { if (*(blob + 0) != GAIA_MARK_START) geom = 0; if (*(blob + (size - 1)) != GAIA_MARK_END) geom = 0; if (*(blob + 38) != GAIA_MARK_MBR) geom = 0; if (*(blob + 1) == 0 || *(blob + 1) == 1) ; else geom = 0; } if (geom) return GAIA_GEOMETRY_BLOB; #ifdef ENABLE_LIBXML2 /* LIBXML2 enabled: supporting XML documents */ if (gaiaIsValidXmlBlob (blob, size)) return GAIA_XML_BLOB; #endif /* end LIBXML2: supporting XML documents */ return GAIA_HEX_BLOB; } GAIAEXIF_DECLARE int gaiaGetGpsCoords (const unsigned char *blob, int size, double *longitude, double *latitude) { /* returns the ExifGps coords, if they exists */ gaiaExifTagListPtr exif_list; gaiaExifTagPtr pT; char lat_ref = '\0'; char long_ref = '\0'; double lat_degs = -DBL_MAX; double lat_mins = -DBL_MAX; double lat_secs = -DBL_MAX; double long_degs = -DBL_MAX; double long_mins = -DBL_MAX; double long_secs = -DBL_MAX; double dblval; double sign; int ok; if (size < 1 || !blob) return 0; exif_list = gaiaGetExifTags (blob, size); if (exif_list) { pT = exif_list->First; while (pT) { if (pT->Gps && pT->TagId == 0x01) { /* ok, this one is the GPSLatitudeRef tag */ if (pT->Type == 2) lat_ref = *(pT->StringValue); } if (pT->Gps && pT->TagId == 0x03) { /* ok, this one is the GPSLongitudeRef tag */ if (pT->Type == 2) long_ref = *(pT->StringValue); } if (pT->Gps && pT->TagId == 0x02) { /* ok, this one is the GPSLatitude tag */ if (pT->Type == 5 && pT->Count == 3) { dblval = gaiaExifTagGetRationalValue (pT, 0, &ok); if (ok) lat_degs = dblval; dblval = gaiaExifTagGetRationalValue (pT, 1, &ok); if (ok) lat_mins = dblval; dblval = gaiaExifTagGetRationalValue (pT, 2, &ok); if (ok) lat_secs = dblval; } } if (pT->Gps && pT->TagId == 0x04) { /* ok, this one is the GPSLongitude tag */ if (pT->Type == 5 && pT->Count == 3) { dblval = gaiaExifTagGetRationalValue (pT, 0, &ok); if (ok) long_degs = dblval; dblval = gaiaExifTagGetRationalValue (pT, 1, &ok); if (ok) long_mins = dblval; dblval = gaiaExifTagGetRationalValue (pT, 2, &ok); if (ok) long_secs = dblval; } } pT = pT->Next; } gaiaExifTagsFree (exif_list); if ((lat_ref == 'N' || lat_ref == 'S' || long_ref == 'E' || long_ref == 'W') && lat_degs != -DBL_MAX && lat_mins != -DBL_MAX && lat_secs != -DBL_MAX && long_degs != -DBL_MAX && long_mins != -DBL_MAX && long_secs != -DBL_MAX) { if (lat_ref == 'S') sign = -1.0; else sign = 1.0; lat_degs = math_round (lat_degs * 1000000.0); lat_mins = math_round (lat_mins * 1000000.0); lat_secs = math_round (lat_secs * 1000000.0); dblval = math_round (lat_degs + (lat_mins / 60.0) + (lat_secs / 3600.0)) * (sign / 1000000.0); *latitude = dblval; if (long_ref == 'W') sign = -1.0; else sign = 1.0; long_degs = math_round (long_degs * 1000000.0); long_mins = math_round (long_mins * 1000000.0); long_secs = math_round (long_secs * 1000000.0); dblval = math_round (long_degs + (long_mins / 60.0) + (long_secs / 3600.0)) * (sign / 1000000.0); *longitude = dblval; return 1; } } return 0; } GAIAEXIF_DECLARE int gaiaGetGpsLatLong (const unsigned char *blob, int size, char *latlong, int ll_size) { /* returns the ExifGps Latitude and Longitude, if they exists */ gaiaExifTagListPtr exif_list; gaiaExifTagPtr pT; char lat_ref = '\0'; char long_ref = '\0'; double lat_degs = -DBL_MAX; double lat_mins = -DBL_MAX; double lat_secs = -DBL_MAX; double long_degs = -DBL_MAX; double long_mins = -DBL_MAX; double long_secs = -DBL_MAX; double dblval; int ok; char ll[1024]; int len; *latlong = '\0'; if (size < 1 || !blob) return 0; exif_list = gaiaGetExifTags (blob, size); if (exif_list) { pT = exif_list->First; while (pT) { if (pT->Gps && pT->TagId == 0x01) { /* ok, this one is the GPSLatitudeRef tag */ if (pT->Type == 2) lat_ref = *(pT->StringValue); } if (pT->Gps && pT->TagId == 0x03) { /* ok, this one is the GPSLongitudeRef tag */ if (pT->Type == 2) long_ref = *(pT->StringValue); } if (pT->Gps && pT->TagId == 0x02) { /* ok, this one is the GPSLatitude tag */ if (pT->Type == 5 && pT->Count == 3) { dblval = gaiaExifTagGetRationalValue (pT, 0, &ok); if (ok) lat_degs = dblval; dblval = gaiaExifTagGetRationalValue (pT, 1, &ok); if (ok) lat_mins = dblval; dblval = gaiaExifTagGetRationalValue (pT, 2, &ok); if (ok) lat_secs = dblval; } } if (pT->Gps && pT->TagId == 0x04) { /* ok, this one is the GPSLongitude tag */ if (pT->Type == 5 && pT->Count == 3) { dblval = gaiaExifTagGetRationalValue (pT, 0, &ok); if (ok) long_degs = dblval; dblval = gaiaExifTagGetRationalValue (pT, 1, &ok); if (ok) long_mins = dblval; dblval = gaiaExifTagGetRationalValue (pT, 2, &ok); if (ok) long_secs = dblval; } } pT = pT->Next; } gaiaExifTagsFree (exif_list); if ((lat_ref == 'N' || lat_ref == 'S' || long_ref == 'E' || long_ref == 'W') && lat_degs != -DBL_MAX && lat_mins != -DBL_MAX && lat_secs != -DBL_MAX && long_degs != -DBL_MAX && long_mins != -DBL_MAX && long_secs != -DBL_MAX) { sprintf (ll, "%c %1.2f %1.2f %1.2f / %c %1.2f %1.2f %1.2f", lat_ref, lat_degs, lat_mins, lat_secs, long_ref, long_degs, long_mins, long_secs); len = strlen (ll); if (len < ll_size) strcpy (latlong, ll); else { memcpy (latlong, ll, ll_size - 1); latlong[ll_size] = '\0'; } return 1; } } return 0; } libspatialite-4.1.1/src/gaiaexif/Makefile.in0000664000175000017500000003676212163502133015711 00000000000000# Makefile.in generated by automake 1.12.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/gaiaexif DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libgaiaexif_la_LIBADD = am_libgaiaexif_la_OBJECTS = gaia_exif.lo libgaiaexif_la_OBJECTS = $(am_libgaiaexif_la_OBJECTS) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libgaiaexif_la_SOURCES) DIST_SOURCES = $(libgaiaexif_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ INCLUDES = @CFLAGS@ -I$(top_srcdir)/src/headers noinst_LTLIBRARIES = libgaiaexif.la libgaiaexif_la_SOURCES = gaia_exif.c MOSTLYCLEANFILES = *.gcna *.gcno *.gcda all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/gaiaexif/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/gaiaexif/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } libgaiaexif.la: $(libgaiaexif_la_OBJECTS) $(libgaiaexif_la_DEPENDENCIES) $(EXTRA_libgaiaexif_la_DEPENDENCIES) $(LINK) $(libgaiaexif_la_OBJECTS) $(libgaiaexif_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gaia_exif.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: $(HEADERS) $(SOURCES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES cscopelist ctags \ distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libspatialite-4.1.1/src/gaiaaux/0000775000175000017500000000000012163503225013553 500000000000000libspatialite-4.1.1/src/gaiaaux/Makefile.am0000664000175000017500000000027412163502133015527 00000000000000 INCLUDES = @CFLAGS@ INCLUDES += -I$(top_srcdir)/src/headers noinst_LTLIBRARIES = libgaiaaux.la libgaiaaux_la_SOURCES = gg_sqlaux.c \ gg_utf8.c MOSTLYCLEANFILES = *.gcna *.gcno *.gcda libspatialite-4.1.1/src/gaiaaux/gg_sqlaux.c0000664000175000017500000003263712163502133015641 00000000000000/* gg_sqlaux.c -- SQL ancillary functions version 4.1, 2013 May 8 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include #include #ifdef _WIN32 #define strcasecmp _stricmp #endif /* not WIN32 */ /* 64 bit integer: portable format for printf() */ #if defined(_WIN32) && !defined(__MINGW32__) #define FRMT64 "%I64d" #else #define FRMT64 "%lld" #endif GAIAAUX_DECLARE int gaiaIllegalSqlName (const char *name) { /* checks if column-name is an SQL illegal name */ int i; int len; if (!name) return 1; len = strlen (name); if (len == 0) return 1; for (i = 0; i < len; i++) { if (name[i] >= 'a' && name[i] <= 'z') continue; if (name[i] >= 'A' && name[i] <= 'Z') continue; if (name[i] >= '0' && name[i] <= '9') continue; if (name[i] == '_') continue; /* the name contains an illegal char */ return 1; } if (name[0] >= 'a' && name[0] <= 'z') return 0; if (name[0] >= 'A' && name[0] <= 'Z') return 0; /* the first char in the name isn't a letter */ return 1; } GAIAAUX_DECLARE int gaiaIsReservedSqliteName (const char *name) { /* checks if column-name is an SQLite reserved keyword */ char *reserved[] = { "ALL", "ALTER", "AND", "AS", "AUTOINCREMENT", "BETWEEN", "BLOB", "BY", "CASE", "CHECK", "COLLATE", "COMMIT", "CONSTRAINT", "CREATE", "CROSS", "DATE", "DATETIME", "DEFAULT", "DEFERRABLE", "DELETE", "DISTINCT", "DOUBLE", "DROP", "ELSE", "ESCAPE", "EXCEPT", "FOREIGN", "FROM", "FULL", "GLOB", "GROUP", "HAVING", "IN", "INDEX", "INNER", "INSERT", "INTEGER", "INTERSECT", "INTO", "IS", "ISNULL", "JOIN", "KEY", "LEFT", "LIKE", "LIMIT", "MATCH", "NATURAL", "NOT", "NOTNULL", "NULL", "ON", "OR", "ORDER", "OUTER", "PRAGMA", "PRIMARY", "REFERENCES", "REPLACE", "RIGHT", "ROLLBACK", "SELECT", "SET", "TABLE", "TEMP", "TEMPORARY", "THEN", "TEXT", "TIMESTAMP", "TO", "TRANSACTION", "UNION", "UNIQUE", "UPDATE", "USING", "VALUES", "VIEW", "WHEN", "WHERE", NULL }; char **pw = reserved; while (*pw != NULL) { if (strcasecmp (name, *pw) == 0) return 1; pw++; } return 0; } GAIAAUX_DECLARE int gaiaIsReservedSqlName (const char *name) { /* checks if column-name is an SQL reserved keyword */ char *reserved[] = { "ABSOLUTE", "ACTION", "ADD", "AFTER", "ALL", "ALLOCATE", "ALTER", "AND", "ANY", "ARE", "ARRAY", "AS", "ASC", "ASENSITIVE", "ASSERTION", "ASYMMETRIC", "AT", "ATOMIC", "AUTHORIZATION", "AVG", "BEFORE", "BEGIN", "BETWEEN", "BIGINT", "BINARY", "BIT", "BIT_LENGTH", "BLOB", "BOOLEAN", "BOTH", "BREADTH", "BY", "CALL", "CALLED", "CASCADE", "CASCADED", "CASE", "CAST", "CATALOG", "CHAR", "CHARACTER", "CHARACTER_LENGTH", "CHAR_LENGTH", "CHECK", "CLOB", "CLOSE", "COALESCE", "COLLATE", "COLLATION", "COLUMN", "COMMIT", "CONDITION", "CONNECT", "CONNECTION", "CONSTRAINT", "CONSTRAINTS", "CONSTRUCTOR", "CONTAINS", "CONTINUE", "CONVERT", "CORRESPONDING", "COUNT", "CREATE", "CROSS", "CUBE", "CURRENT", "CURRENT_DATE", "CURRENT_DEFAULT_TRANSFORM_GROUP", "CURRENT_PATH", "CURRENT_ROLE", "CURRENT_TIME", "CURRENT_TIMESTAMP", "CURRENT_TRANSFORM_GROUP_FOR_TYPE", "CURRENT_USER", "CURSOR", "CYCLE", "DATA", "DATE", "DAY", "DEALLOCATE", "DEC", "DECIMAL", "DECLARE", "DEFAULT", "DEFERRABLE", "DEFERRED", "DELETE", "DEPTH", "DEREF", "DESC", "DESCRIBE", "DESCRIPTOR", "DETERMINISTIC", "DIAGNOSTICS", "DISCONNECT", "DISTINCT", "DO", "DOMAIN", "DOUBLE", "DROP", "DYNAMIC", "EACH", "ELEMENT", "ELSE", "ELSEIF", "END", "EQUALS", "ESCAPE", "EXCEPT", "EXCEPTION", "EXEC", "EXECUTE", "EXISTS", "EXIT", "external", "EXTRACT", "FALSE", "FETCH", "FILTER", "FIRST", "FLOAT", "FOR", "FOREIGN", "FOUND", "FREE", "FROM", "FULL", "FUNCTION", "GENERAL", "GET", "GLOBAL", "GO", "GOTO", "GRANT", "GROUP", "GROUPING", "HANDLER", "HAVING", "HOLD", "HOUR", "IDENTITY", "IF", "IMMEDIATE", "IN", "INDICATOR", "INITIALLY", "INNER", "INOUT", "INPUT", "INSENSITIVE", "INSERT", "INT", "INTEGER", "INTERSECT", "INTERVAL", "INTO", "IS", "ISOLATION", "ITERATE", "JOIN", "KEY", "LANGUAGE", "LARGE", "LAST", "LATERAL", "LEADING", "LEAVE", "LEFT", "LEVEL", "LIKE", "LOCAL", "LOCALTIME", "LOCALTIMESTAMP", "LOCATOR", "LOOP", "LOWER", "MAP", "MATCH", "MAX", "MEMBER", "MERGE", "METHOD", "MIN", "MINUTE", "MODIFIES", "MODULE", "MONTH", "MULTISET", "NAMES", "NATIONAL", "NATURAL", "NCHAR", "NCLOB", "NEW", "NEXT", "NO", "NONE", "NOT", "NULL", "NULLIF", "NUMERIC", "OBJECT", "OCTET_LENGTH", "OF", "OLD", "ON", "ONLY", "OPEN", "OPTION", "OR", "ORDER", "ORDINALITY", "OUT", "OUTER", "OUTPUT", "OVER", "OVERLAPS", "PAD", "PARAMETER", "PARTIAL", "PARTITION", "PATH", "POSITION", "PRECISION", "PREPARE", "PRESERVE", "PRIMARY", "PRIOR", "PRIVILEGES", "PROCEDURE", "PUBLIC", "RANGE", "READ", "READS", "REAL", "RECURSIVE", "REF", "REFERENCES", "REFERENCING", "RELATIVE", "RELEASE", "REPEAT", "RESIGNAL", "RESTRICT", "RESULT", "RETURN", "RETURNS", "REVOKE", "RIGHT", "ROLE", "ROLLBACK", "ROLLUP", "ROUTINE", "ROW", "ROWS", "SAVEPOINT", "SCHEMA", "SCOPE", "SCROLL", "SEARCH", "SECOND", "SECTION", "SELECT", "SENSITIVE", "SESSION", "SESSION_USER", "SET", "SETS", "SIGNAL", "SIMILAR", "SIZE", "SMALLINT", "SOME", "SPACE", "SPECIFIC", "SPECIFICTYPE", "SQL", "SQLCODE", "SQLERROR", "SQLEXCEPTION", "SQLSTATE", "SQLWARNING", "START", "STATE", "STATIC", "SUBMULTISET", "SUBSTRING", "SUM", "SYMMETRIC", "SYSTEM", "SYSTEM_USER", "TABLE", "TABLESAMPLE", "TEMPORARY", "THEN", "TIME", "TIMESTAMP", "TIMEZONE_HOUR", "TIMEZONE_MINUTE", "TO", "TRAILING", "TRANSACTION", "TRANSLATE", "TRANSLATION", "TREAT", "TRIGGER", "TRIM", "TRUE", "UNDER", "UNDO", "UNION", "UNIQUE", "UNKNOWN", "UNNEST", "UNTIL", "UPDATE", "UPPER", "USAGE", "USER", "USING", "VALUE", "VALUES", "VARCHAR", "VARYING", "VIEW", "WHEN", "WHENEVER", "WHERE", "WHILE", "WINDOW", "WITH", "WITHIN", "WITHOUT", "WORK", "WRITE", "YEAR", "ZONE", NULL }; char **pw = reserved; while (*pw != NULL) { if (strcasecmp (name, *pw) == 0) return 1; pw++; } return 0; } GAIAAUX_DECLARE char * gaiaDequotedSql (const char *value) { /* / returns a well formatted TEXT value from SQL / 1] if the input string begins and ends with ' sigle quote will be the target / 2] if the input string begins and ends with " double quote will be the target / 3] in any othet case the string will simply be copied */ const char *pi = value; const char *start; const char *end; char *clean; char *po; int len; char target; int mark = 0; if (value == NULL) return NULL; len = strlen (value); clean = malloc (len + 1); if (*(value + 0) == '"' && *(value + len - 1) == '"') target = '"'; else if (*(value + 0) == '\'' && *(value + len - 1) == '\'') target = '\''; else { /* no dequoting; simply copying */ strcpy (clean, value); return clean; } start = value; end = value + len - 1; po = clean; while (*pi != '\0') { if (mark) { if (*pi == target) { *po++ = *pi++; mark = 0; continue; } else { /* error: mismatching quote */ free (clean); return NULL; } } if (*pi == target) { if (pi == start || pi == end) { /* first or last char */ pi++; continue; } /* found a quote marker */ mark = 1; pi++; continue; } *po++ = *pi++; } *po = '\0'; return clean; } GAIAAUX_DECLARE char * gaiaQuotedSql (const char *value, int quote) { /* / returns a well formatted TEXT value for SQL / 1] strips trailing spaces / 2] masks any QUOTE inside the string, appending another QUOTE / 3] works for both SINGLE- and DOUBLE-QUOTE */ const char *p_in; const char *p_end; char qt; char *out; char *p_out; int len = 0; int i; if (!value) return NULL; if (quote == GAIA_SQL_SINGLE_QUOTE) qt = '\''; else if (quote == GAIA_SQL_DOUBLE_QUOTE) qt = '"'; else return NULL; p_end = value; for (i = (strlen (value) - 1); i >= 0; i--) { /* stripping trailing spaces */ p_end = value + i; if (value[i] != ' ') break; } p_in = value; while (p_in <= p_end) { /* computing the output length */ len++; if (*p_in == qt) len++; p_in++; } if (len == 1 && *value == ' ') { /* empty string */ len = 0; } out = malloc (len + 1); if (!out) return NULL; if (len == 0) { /* empty string */ *out = '\0'; return out; } p_out = out; p_in = value; while (p_in <= p_end) { /* creating the output string */ if (*p_in == qt) *p_out++ = qt; *p_out++ = *p_in++; } *p_out = '\0'; return out; } GAIAAUX_DECLARE char * gaiaSingleQuotedSql (const char *value) { /* convenience method supporting SINGLE-QUOTES */ return gaiaQuotedSql (value, GAIA_SQL_SINGLE_QUOTE); } GAIAAUX_DECLARE char * gaiaDoubleQuotedSql (const char *value) { /* convenience method supporting DOUBLE-QUOTES */ return gaiaQuotedSql (value, GAIA_SQL_DOUBLE_QUOTE); } GAIAAUX_DECLARE void gaiaCleanSqlString (char *value) { /* / returns a well formatted TEXT value for SQL / 1] strips trailing spaces / 2] masks any ' inside the string, appending another ' */ char new_value[1024]; char *p; int len; int i; len = strlen (value); for (i = (len - 1); i >= 0; i--) { /* stripping trailing spaces */ if (value[i] == ' ') value[i] = '\0'; else break; } p = new_value; for (i = 0; i < len; i++) { if (value[i] == '\'') *(p++) = '\''; *(p++) = value[i]; } *p = '\0'; strcpy (value, new_value); } GAIAAUX_DECLARE void gaiaInsertIntoSqlLog (sqlite3 * sqlite, const char *user_agent, const char *utf8Sql, sqlite3_int64 * sqllog_pk) { /* inserting an event into the SQL Log */ char *sql_statement; int ret; *sqllog_pk = -1; if (checkSpatialMetaData (sqlite) != 3) { /* CURRENT db-schema (>= 4.0.0) required */ return; } sql_statement = sqlite3_mprintf ("INSERT INTO sql_statements_log " "(id, time_start, user_agent, sql_statement) VALUES (" "NULL, strftime('%%Y-%%m-%%dT%%H:%%M:%%fZ', 'now'), %Q, %Q)", user_agent, utf8Sql); ret = sqlite3_exec (sqlite, sql_statement, NULL, 0, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) return; *sqllog_pk = sqlite3_last_insert_rowid (sqlite); } GAIAAUX_DECLARE void gaiaUpdateSqlLog (sqlite3 * sqlite, sqlite3_int64 sqllog_pk, int success, const char *errMsg) { /* completing an event already inserted into the SQL Log */ char *sql_statement; char dummy[64]; if (checkSpatialMetaData (sqlite) != 3) { /* CURRENT db-schema (>= 4.0.0) required */ return; } sprintf (dummy, FRMT64, sqllog_pk); if (success) { sql_statement = sqlite3_mprintf ("UPDATE sql_statements_log SET " "time_end = strftime('%%Y-%%m-%%dT%%H:%%M:%%fZ', 'now'), " "success = 1, error_cause = 'success' WHERE id = %s", dummy); } else { sql_statement = sqlite3_mprintf ("UPDATE sql_statements_log SET " "time_end = strftime('%%Y-%%m-%%dT%%H:%%M:%%fZ', 'now'), " "success = 0, error_cause = %Q WHERE id = %s", (errMsg == NULL) ? "UNKNOWN" : errMsg, dummy); } sqlite3_exec (sqlite, sql_statement, NULL, 0, NULL); sqlite3_free (sql_statement); } libspatialite-4.1.1/src/gaiaaux/Makefile.in0000664000175000017500000003710212163502133015540 00000000000000# Makefile.in generated by automake 1.12.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/gaiaaux DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libgaiaaux_la_LIBADD = am_libgaiaaux_la_OBJECTS = gg_sqlaux.lo gg_utf8.lo libgaiaaux_la_OBJECTS = $(am_libgaiaaux_la_OBJECTS) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libgaiaaux_la_SOURCES) DIST_SOURCES = $(libgaiaaux_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ INCLUDES = @CFLAGS@ -I$(top_srcdir)/src/headers noinst_LTLIBRARIES = libgaiaaux.la libgaiaaux_la_SOURCES = gg_sqlaux.c \ gg_utf8.c MOSTLYCLEANFILES = *.gcna *.gcno *.gcda all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/gaiaaux/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/gaiaaux/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } libgaiaaux.la: $(libgaiaaux_la_OBJECTS) $(libgaiaaux_la_DEPENDENCIES) $(EXTRA_libgaiaaux_la_DEPENDENCIES) $(LINK) $(libgaiaaux_la_OBJECTS) $(libgaiaaux_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_sqlaux.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_utf8.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: $(HEADERS) $(SOURCES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES cscopelist ctags \ distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libspatialite-4.1.1/src/gaiaaux/gg_utf8.c0000664000175000017500000001155712163502133015210 00000000000000/* gg_utf8.c -- locale charset handling version 4.1, 2013 May 8 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #if OMIT_ICONV == 0 /* ICONV is absolutely required */ #if defined(__MINGW32__) || defined(_WIN32) #define LIBICONV_STATIC #include #define LIBCHARSET_STATIC #ifdef _MSC_VER /* isn't supported on OSGeo4W */ /* applying a tricky workaround to fix this issue */ extern const char *locale_charset (void); #else /* sane Windows - not OSGeo4W */ #include #endif /* end localcharset */ #else /* not MINGW32 - WIN32 */ #if defined(__APPLE__) || defined(__ANDROID__) #include #include #else /* neither Mac OsX nor Android */ #include #include #endif #endif #include #include GAIAAUX_DECLARE const char * gaiaGetLocaleCharset () { /* identifies the locale charset */ #if defined(__MINGW32__) || defined(_WIN32) return locale_charset (); #else /* not MINGW32 - WIN32 */ #if defined(__APPLE__) || defined(__ANDROID__) return locale_charset (); #else /* neither Mac OsX nor Android */ return nl_langinfo (CODESET); #endif #endif } GAIAAUX_DECLARE int gaiaConvertCharset (char **buf, const char *fromCs, const char *toCs) { /* converting a string from a charset to another "on-the-fly" */ char utf8buf[65536]; #if !defined(__MINGW32__) && defined(_WIN32) const char *pBuf; #else /* not WIN32 */ char *pBuf; #endif size_t len; size_t utf8len; char *pUtf8buf; iconv_t cvt = iconv_open (toCs, fromCs); if (cvt == (iconv_t) (-1)) goto unsupported; len = strlen (*buf); utf8len = 65536; pBuf = *buf; pUtf8buf = utf8buf; if (iconv (cvt, &pBuf, &len, &pUtf8buf, &utf8len) == (size_t) (-1)) goto error; utf8buf[65536 - utf8len] = '\0'; memcpy (*buf, utf8buf, (65536 - utf8len) + 1); iconv_close (cvt); return 1; error: iconv_close (cvt); unsupported: return 0; } GAIAAUX_DECLARE void * gaiaCreateUTF8Converter (const char *fromCS) { /* creating a UTF8 converter and returning an opaque reference to it */ iconv_t cvt = iconv_open ("UTF-8", fromCS); if (cvt == (iconv_t) (-1)) return NULL; return cvt; } GAIAAUX_DECLARE void gaiaFreeUTF8Converter (void *cvtCS) { /* destroying a UTF8 converter */ if (cvtCS) iconv_close (cvtCS); } GAIAAUX_DECLARE char * gaiaConvertToUTF8 (void *cvtCS, const char *buf, int buflen, int *err) { /* converting a string to UTF8 */ char *utf8buf = 0; #if !defined(__MINGW32__) && defined(_WIN32) const char *pBuf; #else char *pBuf; #endif size_t len; size_t utf8len; int maxlen = buflen * 4; char *pUtf8buf; *err = 0; if (!cvtCS) { *err = 1; return NULL; } utf8buf = malloc (maxlen); len = buflen; utf8len = maxlen; pBuf = (char *) buf; pUtf8buf = utf8buf; if (iconv (cvtCS, &pBuf, &len, &pUtf8buf, &utf8len) == (size_t) (-1)) { free (utf8buf); *err = 1; return NULL; } utf8buf[maxlen - utf8len] = '\0'; return utf8buf; } #endif /* ICONV enabled/disabled */ libspatialite-4.1.1/src/shapefiles/0000775000175000017500000000000012163503225014257 500000000000000libspatialite-4.1.1/src/shapefiles/Makefile.am0000664000175000017500000000030212163502133016223 00000000000000 INCLUDES = @CFLAGS@ INCLUDES += -I$(top_srcdir)/src/headers noinst_LTLIBRARIES = libshapefiles.la libshapefiles_la_SOURCES = shapefiles.c validator.c MOSTLYCLEANFILES = *.gcna *.gcno *.gcda libspatialite-4.1.1/src/shapefiles/validator.c0000664000175000017500000024415212163502133016335 00000000000000/* validator.c -- implements geometry validation and repair version 4.1, 2013 March 19 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #if defined(_WIN32) #include #endif #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include #include #include #include #include /* 64 bit integer: portable format for printf() */ #if defined(_WIN32) && !defined(__MINGW32__) #define FRMT64 "%I64d" #else #define FRMT64 "%lld" #endif #if defined(_WIN32) && !defined(__MINGW32__) #define strcasecmp _stricmp #endif struct validity_report_row { sqlite3_int64 rowid; int valid; char *warning; char *error; char *extra; struct validity_report_row *next; }; struct validity_report { struct validity_report_row *first; struct validity_report_row *last; int n_rows; int n_nullgeoms; int n_valids; int n_invalids; int n_warnings; }; struct sanitize_report_row { sqlite3_int64 rowid; int repaired; char *warning; char *error; char *summary; struct sanitize_report_row *next; }; struct sanitize_report { struct sanitize_report_row *first; struct sanitize_report_row *last; int n_invalids; int n_repaired; int n_discarded; int n_not_repaired; int input_type; int repaired_type; int discarded_type; }; static int check_table_column (sqlite3 * sqlite, const char *table, const char *geom, int *gtype, int *srid) { /* chacks if a table-column effectively exists */ char *sql; const char *xsql; int ret; int i; char **results; int rows; int columns; int spatial_type = 0; int ok = 0; *gtype = -1; *srid = -2; /* checking the DB layout */ xsql = "SELECT CheckSpatialMetadata()"; ret = sqlite3_get_table (sqlite, xsql, &results, &rows, &columns, NULL); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) spatial_type = atoi (results[(i * columns) + 0]); } sqlite3_free_table (results); if (spatial_type == 1 || spatial_type == 3) ; else return 0; /* checking the table-column */ if (spatial_type == 1) xsql = "SELECT type, coord_dimension, srid FROM geometry_columns "; else xsql = "SELECT geometry_type, srid FROM geometry_columns "; sql = sqlite3_mprintf ("%s WHERE Lower(f_table_name) = Lower(%Q) " "AND Lower(f_geometry_column) = Lower(%Q)", xsql, table, geom); ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { ok = 1; if (spatial_type == 1) { int ndims; const char *type = results[(i * columns) + 0]; const char *dims = results[(i * columns) + 2]; if (strcasecmp (dims, "XYZM") == 0) ndims = GAIA_XY_Z_M; else if (strcasecmp (dims, "4") == 0) ndims = GAIA_XY_Z_M; else if (strcasecmp (dims, "XYZ") == 0) ndims = GAIA_XY_Z; else if (strcasecmp (dims, "3") == 0) ndims = GAIA_XY_Z; else if (strcasecmp (dims, "XYM") == 0) ndims = GAIA_XY_M; else ndims = GAIA_XY; if (strcasecmp (type, "POINT") == 0) { if (ndims == GAIA_XY_Z_M) *gtype = 3001; else if (ndims == GAIA_XY_Z) *gtype = 1001; else if (ndims == GAIA_XY_M) *gtype = 2001; else *gtype = 1; } if (strcasecmp (type, "LINESTRING") == 0) { if (ndims == GAIA_XY_Z_M) *gtype = 3002; else if (ndims == GAIA_XY_Z) *gtype = 1002; else if (ndims == GAIA_XY_M) *gtype = 2002; else *gtype = 2; } if (strcasecmp (type, "POLYGON") == 0) { if (ndims == GAIA_XY_Z_M) *gtype = 3003; else if (ndims == GAIA_XY_Z) *gtype = 1003; else if (ndims == GAIA_XY_M) *gtype = 2003; else *gtype = 3; } if (strcasecmp (type, "MULTIPOINT") == 0) { if (ndims == GAIA_XY_Z_M) *gtype = 3004; else if (ndims == GAIA_XY_Z) *gtype = 1004; else if (ndims == GAIA_XY_M) *gtype = 2004; else *gtype = 4; } if (strcasecmp (type, "MULTILINESTRING") == 0) { if (ndims == GAIA_XY_Z_M) *gtype = 3005; else if (ndims == GAIA_XY_Z) *gtype = 1005; else if (ndims == GAIA_XY_M) *gtype = 2005; else *gtype = 5; } if (strcasecmp (type, "MULTIPOLYGON") == 0) { if (ndims == GAIA_XY_Z_M) *gtype = 3006; else if (ndims == GAIA_XY_Z) *gtype = 1006; else if (ndims == GAIA_XY_M) *gtype = 2006; else *gtype = 6; } if (strcasecmp (type, "GEOMETRYCOLLECTION") == 0) { if (ndims == GAIA_XY_Z_M) *gtype = 3007; else if (ndims == GAIA_XY_Z) *gtype = 1007; else if (ndims == GAIA_XY_M) *gtype = 2007; else *gtype = 7; } if (strcasecmp (type, "GEOMETRY") == 0) { if (ndims == GAIA_XY_Z_M) *gtype = 3000; else if (ndims == GAIA_XY_Z) *gtype = 1000; else if (ndims == GAIA_XY_M) *gtype = 2000; else *gtype = 0; } *srid = atoi (results[(i * columns) + 1]); } else { *gtype = atoi (results[(i * columns) + 0]); *srid = atoi (results[(i * columns) + 1]); } } } sqlite3_free_table (results); return ok; } #ifdef ENABLE_LWGEOM /* only if LWGEOM is supported */ static struct sanitize_report * alloc_sanitize_report (void) { /* allocating the report container struct */ struct sanitize_report *p = malloc (sizeof (struct sanitize_report)); p->first = NULL; p->last = NULL; p->n_invalids = 0; p->n_repaired = 0; p->n_discarded = 0; p->n_not_repaired = 0; p->input_type = -1; p->repaired_type = -1; p->discarded_type = -1; return p; } static void free_sanitize_report (struct sanitize_report *p) { /* memory cleanup: freeing the report container struct */ struct sanitize_report_row *r; struct sanitize_report_row *rn; r = p->first; while (r) { rn = r->next; if (r->warning != NULL) free (r->warning); if (r->error != NULL) free (r->error); if (r->summary != NULL) free (r->summary); free (r); r = rn; } free (p); } static void addMessageToSanitizeReport (struct sanitize_report *report, sqlite3_int64 rowid, int repaired, const char *error, const char *warning, const char *summary) { /* adding a message to the report */ int len; struct sanitize_report_row *r = malloc (sizeof (struct sanitize_report_row)); r->rowid = rowid; r->repaired = repaired; r->error = NULL; r->warning = NULL; r->summary = NULL; r->next = NULL; if (error) { len = strlen (error); r->error = malloc (len + 1); strcpy (r->error, error); } if (warning) { len = strlen (warning); r->warning = malloc (len + 1); strcpy (r->warning, warning); } if (summary) { len = strlen (summary); r->summary = malloc (len + 1); strcpy (r->summary, summary); } if (!repaired) report->n_not_repaired += 1; else { if (summary == NULL) report->n_repaired += 1; else report->n_discarded += 1; } if (report->first == NULL) report->first = r; if (report->last != NULL) report->last->next = r; report->last = r; } static int eval_type (int old, int new) { /* evaluates the max. common Geometry Type */ int o_dims; int n_dims; int r_dims; int o_type; int n_type; int r_type; int ret; if (old < 0) { /* first evaluation */ return new; } switch (old) { case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: o_dims = GAIA_XY; break; case 1000: case 1001: case 1002: case 1003: case 1004: case 1005: case 1006: case 1007: o_dims = GAIA_XY_Z; break; case 2000: case 2001: case 2002: case 2003: case 2004: case 2005: case 2006: case 2007: o_dims = GAIA_XY_M; break; case 3000: case 3001: case 3002: case 3003: case 3004: case 3005: case 3006: case 3007: o_dims = GAIA_XY_Z_M; break; default: o_dims = GAIA_XY; break; }; switch (new) { case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: n_dims = GAIA_XY; break; case 1000: case 1001: case 1002: case 1003: case 1004: case 1005: case 1006: case 1007: n_dims = GAIA_XY_Z; break; case 2000: case 2001: case 2002: case 2003: case 2004: case 2005: case 2006: case 2007: n_dims = GAIA_XY_M; break; case 3000: case 3001: case 3002: case 3003: case 3004: case 3005: case 3006: case 3007: n_dims = GAIA_XY_Z_M; break; default: n_dims = GAIA_XY; break; }; switch (old) { case 0: case 1000: case 2000: case 3000: o_type = -1; break; case 1: case 1001: case 2001: case 3001: o_type = GAIA_POINT; break; case 2: case 1002: case 2002: case 3002: o_type = GAIA_LINESTRING; break; case 3: case 1003: case 2003: case 3003: o_type = GAIA_POLYGON; break; case 4: case 1004: case 2004: case 3004: o_type = GAIA_MULTIPOINT; break; case 5: case 1005: case 2005: case 3005: o_type = GAIA_MULTILINESTRING; break; case 6: case 1006: case 2006: case 3006: o_type = GAIA_MULTIPOLYGON; break; case 7: case 1007: case 2007: case 3007: o_type = GAIA_GEOMETRYCOLLECTION; break; default: o_type = -1; break; }; switch (new) { case 0: case 1000: case 2000: case 3000: n_type = -1; break; case 1: case 1001: case 2001: case 3001: n_type = GAIA_POINT; break; case 2: case 1002: case 2002: case 3002: n_type = GAIA_LINESTRING; break; case 3: case 1003: case 2003: case 3003: n_type = GAIA_POLYGON; break; case 4: case 1004: case 2004: case 3004: n_type = GAIA_MULTIPOINT; break; case 5: case 1005: case 2005: case 3005: n_type = GAIA_MULTILINESTRING; break; case 6: case 1006: case 2006: case 3006: n_type = GAIA_MULTIPOLYGON; break; case 7: case 1007: case 2007: case 3007: n_type = GAIA_GEOMETRYCOLLECTION; break; default: n_type = -1; break; }; if (o_type == n_type) r_type = n_type; else { if ((o_type == GAIA_POINT || n_type == GAIA_POINT) && (o_type == GAIA_MULTIPOINT || n_type == GAIA_MULTIPOINT)) r_type = GAIA_MULTIPOINT; else if ((o_type == GAIA_LINESTRING || n_type == GAIA_LINESTRING) && (o_type == GAIA_LINESTRING || n_type == GAIA_LINESTRING)) r_type = GAIA_MULTILINESTRING; else if ((o_type == GAIA_POLYGON || n_type == GAIA_POLYGON) && (o_type == GAIA_MULTIPOLYGON || n_type == GAIA_MULTIPOLYGON)) r_type = GAIA_MULTIPOLYGON; else r_type = GAIA_GEOMETRYCOLLECTION; } if (o_dims == n_dims) r_dims = n_dims; else { if ((o_dims == GAIA_XY || n_dims == GAIA_XY) && (o_dims == GAIA_XY_Z || n_dims == GAIA_XY_Z)) r_dims = GAIA_XY_Z; if ((o_dims == GAIA_XY || n_dims == GAIA_XY) && (o_dims == GAIA_XY_M || n_dims == GAIA_XY_M)) r_dims = GAIA_XY_M; if ((o_dims == GAIA_XY || n_dims == GAIA_XY) && (o_dims == GAIA_XY_Z_M || n_dims == GAIA_XY_Z_M)) r_dims = GAIA_XY_Z_M; if ((o_dims == GAIA_XY_M || n_dims == GAIA_XY_M) && (o_dims == GAIA_XY_Z || n_dims == GAIA_XY_Z)) r_dims = GAIA_XY_Z_M; if ((o_dims == GAIA_XY_M || n_dims == GAIA_XY_M) && (o_dims == GAIA_XY_Z_M || n_dims == GAIA_XY_Z_M)) r_dims = GAIA_XY_Z_M; if ((o_dims == GAIA_XY_Z || n_dims == GAIA_XY_Z) && (o_dims == GAIA_XY_Z_M || n_dims == GAIA_XY_Z_M)) r_dims = GAIA_XY_Z_M; } switch (r_type) { case GAIA_POINT: switch (r_dims) { case GAIA_XY_Z_M: ret = 3001; break; case GAIA_XY_Z: ret = 1001; break; case GAIA_XY_M: ret = 2001; break; case GAIA_XY: ret = 1; break; }; break; case GAIA_LINESTRING: switch (r_dims) { case GAIA_XY_Z_M: ret = 3002; break; case GAIA_XY_Z: ret = 1002; break; case GAIA_XY_M: ret = 2002; break; case GAIA_XY: ret = 2; break; }; break; case GAIA_POLYGON: switch (r_dims) { case GAIA_XY_Z_M: ret = 3003; break; case GAIA_XY_Z: ret = 1003; break; case GAIA_XY_M: ret = 2003; break; case GAIA_XY: ret = 3; break; }; break; case GAIA_MULTIPOINT: switch (r_dims) { case GAIA_XY_Z_M: ret = 3004; break; case GAIA_XY_Z: ret = 1004; break; case GAIA_XY_M: ret = 2004; break; case GAIA_XY: ret = 4; break; }; break; case GAIA_MULTILINESTRING: switch (r_dims) { case GAIA_XY_Z_M: ret = 3005; break; case GAIA_XY_Z: ret = 1005; break; case GAIA_XY_M: ret = 2005; break; case GAIA_XY: ret = 5; break; }; break; case GAIA_MULTIPOLYGON: switch (r_dims) { case GAIA_XY_Z_M: ret = 3006; break; case GAIA_XY_Z: ret = 1006; break; case GAIA_XY_M: ret = 2006; break; case GAIA_XY: ret = 6; break; }; break; default: switch (r_dims) { case GAIA_XY_Z_M: ret = 3007; break; case GAIA_XY_Z: ret = 1007; break; case GAIA_XY_M: ret = 2007; break; case GAIA_XY: ret = 7; break; }; break; }; return ret; } static int eval_cast_type (int old, int new) { /* determining the appropriate Type Casting (if any) */ int o_type; int n_type; switch (old) { case 0: case 1000: case 2000: case 3000: o_type = -1; break; case 1: case 1001: case 2001: case 3001: o_type = GAIA_POINT; break; case 2: case 1002: case 2002: case 3002: o_type = GAIA_LINESTRING; break; case 3: case 1003: case 2003: case 3003: o_type = GAIA_POLYGON; break; case 4: case 1004: case 2004: case 3004: o_type = GAIA_MULTIPOINT; break; case 5: case 1005: case 2005: case 3005: o_type = GAIA_MULTILINESTRING; break; case 6: case 1006: case 2006: case 3006: o_type = GAIA_MULTIPOLYGON; break; case 7: case 1007: case 2007: case 3007: o_type = GAIA_GEOMETRYCOLLECTION; break; default: o_type = -1; break; }; switch (new) { case 0: case 1000: case 2000: case 3000: n_type = -1; break; case 1: case 1001: case 2001: case 3001: n_type = GAIA_POINT; break; case 2: case 1002: case 2002: case 3002: n_type = GAIA_LINESTRING; break; case 3: case 1003: case 2003: case 3003: n_type = GAIA_POLYGON; break; case 4: case 1004: case 2004: case 3004: n_type = GAIA_MULTIPOINT; break; case 5: case 1005: case 2005: case 3005: n_type = GAIA_MULTILINESTRING; break; case 6: case 1006: case 2006: case 3006: n_type = GAIA_MULTIPOLYGON; break; case 7: case 1007: case 2007: case 3007: n_type = GAIA_GEOMETRYCOLLECTION; break; default: n_type = -1; break; }; if (o_type == n_type) return -1; return n_type; } static int eval_cast_dims (int old, int new) { /* determining the appropriate Dimensions Casting (if any) */ int o_dims; int n_dims; switch (old) { case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: o_dims = GAIA_XY; break; case 1000: case 1001: case 1002: case 1003: case 1004: case 1005: case 1006: case 1007: o_dims = GAIA_XY_Z; break; case 2000: case 2001: case 2002: case 2003: case 2004: case 2005: case 2006: case 2007: o_dims = GAIA_XY_M; break; case 3000: case 3001: case 3002: case 3003: case 3004: case 3005: case 3006: case 3007: o_dims = GAIA_XY_Z_M; break; default: o_dims = GAIA_XY; break; }; switch (new) { case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: n_dims = GAIA_XY; break; case 1000: case 1001: case 1002: case 1003: case 1004: case 1005: case 1006: case 1007: n_dims = GAIA_XY_Z; break; case 2000: case 2001: case 2002: case 2003: case 2004: case 2005: case 2006: case 2007: n_dims = GAIA_XY_M; break; case 3000: case 3001: case 3002: case 3003: case 3004: case 3005: case 3006: case 3007: n_dims = GAIA_XY_Z_M; break; default: n_dims = GAIA_XY; break; }; if (o_dims == n_dims) return -1; return n_dims; } static const char * createDiscardedSummary (gaiaGeomCollPtr geom, char *summary) { /* short summary for discarded fragments */ gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; int pts = 0; int lns = 0; int pgs = 0; pt = geom->FirstPoint; while (pt) { pts++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { lns++; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { pgs++; pg = pg->Next; } if (pts > 0 && lns == 0 && pgs == 0) sprintf (summary, "%d Poin%s", pts, (pts > 1) ? "ts" : "t"); if (pts == 0 && lns > 0 && pgs == 0) sprintf (summary, "%d Linestrin%s", lns, (lns > 1) ? "gs" : "g"); if (pts == 0 && lns == 0 && pgs > 0) sprintf (summary, "%d Polygo%s", pgs, (pgs > 1) ? "ns" : "n"); if (pts > 0 && lns > 0 && pgs == 0) sprintf (summary, "%d Poin%s; %d Linestrin%s", pts, (pts > 1) ? "ts" : "t", lns, (lns > 1) ? "gs" : "s"); if (pts > 0 && lns == 0 && pgs > 0) sprintf (summary, "%d Poin%s; %d Polygo%s", pts, (pts > 1) ? "ts" : "t", pgs, (pgs > 1) ? "ns" : "n"); if (pts == 0 && lns > 0 && pgs > 0) sprintf (summary, "%d Linestrin%s; %d Polygo%s", lns, (lns > 1) ? "gs" : "g", pgs, (pgs > 1) ? "ns" : "n"); if (pts > 0 && lns > 0 && pgs > 0) sprintf (summary, "%d Poin%s; %d Linestrin%s; %d Polygo%s", pts, (pts > 1) ? "ts" : "t", lns, (lns > 1) ? "gs" : "s", pgs, (pgs > 1) ? "ns" : "n"); return summary; } static int change_geometry_type (sqlite3 * sqlite, const char *table, const char *geometry, int cast_type, int cast_dims) { /* changing the Geometry Type for the whole table/column */ int ret; int i; char **results; int rows; int columns; int spatial_type = 0; const char *xsql; char *sql; sqlite3_stmt *stmt; char *xtable; char *xgeom; const char *xtype; const char *xdims; /* checking the DB layout */ xsql = "SELECT CheckSpatialMetadata()"; ret = sqlite3_get_table (sqlite, xsql, &results, &rows, &columns, NULL); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) spatial_type = atoi (results[(i * columns) + 0]); } sqlite3_free_table (results); if (spatial_type == 1 || spatial_type == 3) ; else return 0; /* updating the "geometry_columns" row */ if (spatial_type == 1) sql = sqlite3_mprintf ("UPDATE geometry_columns SET type = ?, " "coord_dimension = ? WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", table, geometry); else sql = sqlite3_mprintf ("UPDATE geometry_columns SET geometry_type = ?, " "coord_dimension = ? WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", table, geometry); ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("sanitize_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); return 0; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); if (spatial_type == 1) { const char *p_type = "GEOMETRY"; const char *p_dims = "XY"; switch (cast_type) { case GAIA_POINT: p_type = "POINT"; break; case GAIA_LINESTRING: p_type = "LINESTRING"; break; case GAIA_POLYGON: p_type = "POLYGON"; break; case GAIA_MULTIPOINT: p_type = "MULTIPOINT"; break; case GAIA_MULTILINESTRING: p_type = "MULTILINESTRING"; break; case GAIA_MULTIPOLYGON: p_type = "MULTIPOLYGON"; break; case GAIA_GEOMETRYCOLLECTION: p_type = "GEOMETRYCOLLECTION"; break; }; switch (cast_dims) { case GAIA_XY_Z_M: p_dims = "XYZM"; break; case GAIA_XY_Z: p_dims = "XYZ"; break; case GAIA_XY_M: p_dims = "ZYM"; break; }; sqlite3_bind_text (stmt, 1, p_type, strlen (p_type), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, p_dims, strlen (p_dims), SQLITE_STATIC); } else { int gtype = 0; int ndims = 2; switch (cast_type) { case GAIA_POINT: switch (cast_dims) { case GAIA_XY_Z_M: gtype = 3001; ndims = 4; break; case GAIA_XY_Z: gtype = 1001; ndims = 3; break; case GAIA_XY_M: gtype = 2001; ndims = 3; break; default: gtype = 1; ndims = 2; break; }; break; case GAIA_LINESTRING: switch (cast_dims) { case GAIA_XY_Z_M: gtype = 3002; ndims = 4; break; case GAIA_XY_Z: gtype = 1002; ndims = 3; break; case GAIA_XY_M: gtype = 2002; ndims = 3; break; default: gtype = 2; ndims = 2; break; }; break; case GAIA_POLYGON: switch (cast_dims) { case GAIA_XY_Z_M: gtype = 3003; ndims = 4; break; case GAIA_XY_Z: gtype = 1003; ndims = 3; break; case GAIA_XY_M: gtype = 2003; ndims = 3; break; default: gtype = 3; ndims = 2; break; }; break; case GAIA_MULTIPOINT: switch (cast_dims) { case GAIA_XY_Z_M: gtype = 3004; ndims = 4; break; case GAIA_XY_Z: gtype = 1004; ndims = 3; break; case GAIA_XY_M: gtype = 2004; ndims = 3; break; default: gtype = 4; ndims = 2; break; }; break; case GAIA_MULTILINESTRING: switch (cast_dims) { case GAIA_XY_Z_M: gtype = 3005; ndims = 4; break; case GAIA_XY_Z: gtype = 1005; ndims = 3; break; case GAIA_XY_M: gtype = 2005; ndims = 3; break; default: gtype = 5; ndims = 2; break; }; break; case GAIA_MULTIPOLYGON: switch (cast_dims) { case GAIA_XY_Z_M: gtype = 3006; ndims = 4; break; case GAIA_XY_Z: gtype = 1006; ndims = 3; break; case GAIA_XY_M: gtype = 2006; ndims = 3; break; default: gtype = 6; ndims = 2; break; }; break; case GAIA_GEOMETRYCOLLECTION: switch (cast_dims) { case GAIA_XY_Z_M: gtype = 3007; ndims = 4; break; case GAIA_XY_Z: gtype = 1007; ndims = 3; break; case GAIA_XY_M: gtype = 2007; ndims = 3; break; default: gtype = 7; ndims = 2; break; }; break; }; sqlite3_bind_int (stmt, 1, gtype); sqlite3_bind_int (stmt, 2, ndims); } ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("sanitize_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); return 0; } sqlite3_finalize (stmt); /* applying type casting to already inserted Geometries */ xtable = gaiaDoubleQuotedSql (table); xgeom = gaiaDoubleQuotedSql (geometry); xtype = "Geometry"; xdims = "XY"; switch (cast_type) { case GAIA_POINT: xtype = "Point"; break; case GAIA_LINESTRING: xtype = "Linestring"; break; case GAIA_POLYGON: xtype = "Polygon"; break; case GAIA_MULTIPOINT: xtype = "MultiPoint"; break; case GAIA_MULTILINESTRING: xtype = "MultiLinestring"; break; case GAIA_MULTIPOLYGON: xtype = "MultiPolygon"; break; case GAIA_GEOMETRYCOLLECTION: xtype = "GeometryCollection"; break; }; switch (cast_dims) { case GAIA_XY_Z_M: xdims = "XYZM"; break; case GAIA_XY_Z: xdims = "XYZ"; break; case GAIA_XY_M: xdims = "XYM"; break; }; sql = sqlite3_mprintf ("UPDATE \"%s\" SET \"%s\" = CastTo%s(CastTo%s(\"%s\"))", xtable, xgeom, xtype, xdims, xgeom); free (xtable); free (xgeom); ret = sqlite3_exec (sqlite, sql, NULL, 0, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("sanitize_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); return 0; } return 1; } static void drop_tmp_table (sqlite3 * sqlite, const char *tmp_table) { /* dropping the auxiliary temporary table */ char *sql; char *xtable; int ret; xtable = gaiaDoubleQuotedSql (tmp_table); sql = sqlite3_mprintf ("DROP TABLE \"%s\"", xtable); free (xtable); ret = sqlite3_exec (sqlite, sql, NULL, 0, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) spatialite_e ("sanitize_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); } static void update_repaired (sqlite3 * sqlite, const char *table, const char *geometry, const char *tmp_table, int old_type, int new_type) { /* updating all repaired geometries */ char *sql; int cast_type = -1; int cast_dims = -1; int type; char *xtmp_table; char *xtable; char *xgeom; const char *casttype; const char *castdims; int ret; int is_error = 0; sqlite3_stmt *stmt; sqlite3_stmt *stmt_out; /* determining the final Geometry Type */ type = eval_type (old_type, new_type); if (type != old_type) { /* determining the eventual Castings to be applied */ cast_type = eval_cast_type (old_type, new_type); cast_dims = eval_cast_dims (old_type, new_type); } /* preparing the SELECT statement */ xtmp_table = gaiaDoubleQuotedSql (tmp_table); sql = sqlite3_mprintf ("SELECT ref_rowid, repaired_geometry FROM \"%s\" " "WHERE repaired_geometry IS NOT NULL", xtmp_table); free (xtmp_table); ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("sanitize_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); goto stop; } /* preparing the UPDATE statement */ xtable = gaiaDoubleQuotedSql (table); xgeom = gaiaDoubleQuotedSql (geometry); switch (new_type) { case 1: casttype = "Point"; castdims = "XY"; break; case 1001: casttype = "Point"; castdims = "XYZ"; break; case 2001: casttype = "Point"; castdims = "XYM"; break; case 3001: casttype = "Point"; castdims = "XYZM"; break; case 2: casttype = "Linestring"; castdims = "XY"; break; case 1002: casttype = "Linestring"; castdims = "XYZ"; break; case 2002: casttype = "Linestring"; castdims = "XYM"; break; case 3002: casttype = "Linestring"; castdims = "XYZM"; break; case 3: casttype = "Polygon"; castdims = "XY"; break; case 1003: casttype = "Polygon"; castdims = "XYZ"; break; case 2003: casttype = "Polygon"; castdims = "XYM"; break; case 3003: casttype = "Polygon"; castdims = "XYZM"; break; case 4: casttype = "MultiPoint"; castdims = "XY"; break; case 1004: casttype = "MultiPoint"; castdims = "XYZ"; break; case 2004: casttype = "MultiPoint"; castdims = "XYM"; break; case 3004: casttype = "MultiPoint"; castdims = "XYZM"; break; case 5: casttype = "MultiLinestring"; castdims = "XY"; break; case 1005: casttype = "MultiLinestring"; castdims = "XYZ"; break; case 2005: casttype = "MultiLinestring"; castdims = "XYM"; break; case 3005: casttype = "MultiLinestring"; castdims = "XYZM"; break; case 6: casttype = "MultiPolygon"; castdims = "XY"; break; case 1006: casttype = "MultiPolygon"; castdims = "XYZ"; break; case 2006: casttype = "MultiPolygon"; castdims = "XYM"; break; case 3006: casttype = "MultiPolygon"; castdims = "XYZM"; break; case 7: casttype = "GeometryCollection"; castdims = "XY"; break; case 1007: casttype = "GeometryCollection"; castdims = "XYZ"; break; case 2007: casttype = "GeometryCollection"; castdims = "XYM"; break; case 3007: casttype = "GeometryCollection"; castdims = "XYZM"; break; case 0: casttype = "Multi"; castdims = "XY"; break; case 1000: casttype = "Multi"; castdims = "XYZ"; break; case 2000: casttype = "Multi"; castdims = "XYM"; break; case 3000: casttype = "Multi"; castdims = "XYZM"; break; default: casttype = "Multi"; castdims = "XY"; break; }; sql = sqlite3_mprintf ("UPDATE \"%s\" SET \"%s\" = CastTo%s(CastTo%s(?)) " "WHERE ROWID = ?", xtable, xgeom, casttype, castdims); free (xtable); free (xgeom); ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt_out, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("sanitize_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); goto stop; } /* starting a Transaction */ ret = sqlite3_exec (sqlite, "BEGIN", NULL, 0, NULL); if (ret != SQLITE_OK) { spatialite_e ("sanitize_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); goto stop; } if (cast_type != -1 || cast_dims != -1) { /* changing the Geometry Type to the whole table/column */ if (!change_geometry_type (sqlite, table, geometry, cast_type, cast_dims)) return; } while (1) { /* scrolling the result set */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* processing one row from the resultset */ sqlite3_int64 rowid = sqlite3_column_int (stmt, 0); if (sqlite3_column_type (stmt, 1) == SQLITE_BLOB) { const unsigned char *blob = sqlite3_column_blob (stmt, 1); int n_bytes = sqlite3_column_bytes (stmt, 1); /* updating the main table */ sqlite3_reset (stmt_out); sqlite3_clear_bindings (stmt_out); sqlite3_bind_blob (stmt_out, 1, blob, n_bytes, SQLITE_STATIC); sqlite3_bind_int64 (stmt_out, 2, rowid); ret = sqlite3_step (stmt_out); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { is_error = 1; spatialite_e ("sanitize_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); break; } } } else { spatialite_e ("check_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); break; } } sqlite3_finalize (stmt); sqlite3_finalize (stmt_out); if (is_error) { /* Rollback */ ret = sqlite3_exec (sqlite, "ROLLBACK", NULL, 0, NULL); if (ret != SQLITE_OK) { spatialite_e ("sanitize_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); goto stop; } goto stop; } else { /* dropping the auxiliary temporary table */ drop_tmp_table (sqlite, tmp_table); /* committing the still pending Transaction */ ret = sqlite3_exec (sqlite, "COMMIT", NULL, 0, NULL); if (ret != SQLITE_OK) { spatialite_e ("sanitize_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); goto stop; } } stop: return; } SPATIALITE_DECLARE int sanitize_geometry_column (sqlite3 * sqlite, const char *table, const char *geom, const char *tmp_table, const char *report_path, int *n_invalids, int *n_repaired, int *n_discarded, int *n_failures, char **err_msg) { /* attempts to repair invalid Geometries from a Geometry Column */ char *sql; char *xtable; char *xgeom; char *xtmp_table; sqlite3_stmt *stmt; sqlite3_stmt *stmt_out; int ret; int gtype; int srid; const char *x_type; const char *x_dims; char num[256]; FILE *out = NULL; const char *p_msg; const char *p_summary; char summary[1024]; int is_error = 0; time_t v_time; struct tm *v_tm; const char *day; const char *month; int len; struct sanitize_report_row *p_r; struct sanitize_report *report = alloc_sanitize_report (); if (err_msg != NULL) *err_msg = NULL; if (!check_table_column (sqlite, table, geom, >ype, &srid)) { spatialite_e ("sanitize_geometry_column error: <%s>\n" "Not defined in \"geometry_columns\"", table, geom); if (err_msg != NULL) { char *msg = sqlite3_mprintf ("sanitize_geometry_column error: <%s><%s>\n" "Not defined in \"geometry_columns\"", table, geom); len = strlen (msg); *err_msg = malloc (len + 1); strcpy (*err_msg, msg); sqlite3_free (msg); } goto stop; } /* decoding Geometry Type and Dimensions */ switch (gtype) { case 0: x_type = "GEOMETRY"; x_dims = "XY"; break; case 1000: x_type = "GEOMETRY"; x_dims = "XYZ"; break; case 2000: x_type = "GEOMETRY"; x_dims = "XYM"; break; case 3000: x_type = "GEOMETRY"; x_dims = "XYZM"; break; case 1: x_type = "POINT"; x_dims = "XY"; break; case 1001: x_type = "POINT"; x_dims = "XYZ"; break; case 2001: x_type = "POINT"; x_dims = "XYM"; break; case 3001: x_type = "POINT"; x_dims = "XYZM"; break; case 2: x_type = "LINESTRING"; x_dims = "XY"; break; case 1002: x_type = "LINESTRING"; x_dims = "XYZ"; break; case 2002: x_type = "LINESTRING"; x_dims = "XYM"; break; case 3002: x_type = "LINESTRING"; x_dims = "XYZM"; break; case 3: x_type = "POLYGON"; x_dims = "XY"; break; case 1003: x_type = "POLYGON"; x_dims = "XYZ"; break; case 2003: x_type = "POLYGON"; x_dims = "XYM"; break; case 3003: x_type = "POLYGON"; x_dims = "XYZM"; break; case 4: x_type = "MULTIPOINT"; x_dims = "XY"; break; case 1004: x_type = "MULTIPOINT"; x_dims = "XYZ"; break; case 2004: x_type = "MULTIPOINT"; x_dims = "XYM"; break; case 3004: x_type = "MULTIPOINT"; x_dims = "XYZM"; break; case 5: x_type = "MULTILINESTRING"; x_dims = "XY"; break; case 1005: x_type = "MULTILINESTRING"; x_dims = "XYZ"; break; case 2005: x_type = "MULTILINESTRING"; x_dims = "XYM"; break; case 3005: x_type = "MULTILINESTRING"; x_dims = "XYZM"; break; case 6: x_type = "MULTIPOLYGON"; x_dims = "XY"; break; case 1006: x_type = "MULTIPOLYGON"; x_dims = "XYZ"; break; case 2006: x_type = "MULTIPOLYGON"; x_dims = "XYM"; break; case 3006: x_type = "MULTIPOLYGON"; x_dims = "XYZM"; break; case 7: x_type = "GEOMETRYCOLLECTION"; x_dims = "XY"; break; case 1007: x_type = "GEOMETRYCOLLECTION"; x_dims = "XYZ"; break; case 2007: x_type = "GEOMETRYCOLLECTION"; x_dims = "XYM"; break; case 3007: x_type = "GEOMETRYCOLLECTION"; x_dims = "XYZM"; break; default: x_type = "UNKNOWN"; x_dims = "UNKNOWN"; break; }; xtable = gaiaDoubleQuotedSql (table); xgeom = gaiaDoubleQuotedSql (geom); sql = sqlite3_mprintf ("SELECT ROWID, \"%s\" FROM \"%s\"", xgeom, xtable); free (xtable); free (xgeom); ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("sanitize_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); if (err_msg != NULL) { char *msg = sqlite3_mprintf ("sanitize_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); len = strlen (msg); *err_msg = malloc (len + 1); strcpy (*err_msg, msg); sqlite3_free (msg); } goto stop; } /* creating the auxiliary temporary table */ xtmp_table = gaiaDoubleQuotedSql (tmp_table); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (ref_rowid INTEGER NOT NULL PRIMARY KEY, " "input_geometry BLOB, repaired_geometry BLOB, discarded_geometry BLOB)", xtmp_table); free (xtmp_table); ret = sqlite3_exec (sqlite, sql, NULL, 0, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("sanitize_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); if (err_msg != NULL) { char *msg = sqlite3_mprintf ("sanitize_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); len = strlen (msg); *err_msg = malloc (len + 1); strcpy (*err_msg, msg); sqlite3_free (msg); } goto stop; } /* preparing the INSERT INTO statement */ xtmp_table = gaiaDoubleQuotedSql (tmp_table); sql = sqlite3_mprintf ("INSERT INTO \"%s\" " "(ref_rowid, input_geometry, repaired_geometry, discarded_geometry) " "VALUES (?, ?, ?, ?)", xtmp_table); free (xtmp_table); ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt_out, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("sanitize_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); if (err_msg != NULL) { char *msg = sqlite3_mprintf ("sanitize_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); len = strlen (msg); *err_msg = malloc (len + 1); strcpy (*err_msg, msg); sqlite3_free (msg); } goto stop; } /* starting a Transaction */ ret = sqlite3_exec (sqlite, "BEGIN", NULL, 0, NULL); if (ret != SQLITE_OK) { spatialite_e ("sanitize_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); if (err_msg != NULL) { char *msg = sqlite3_mprintf ("sanitize_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); len = strlen (msg); *err_msg = malloc (len + 1); strcpy (*err_msg, msg); sqlite3_free (msg); } goto stop; } /* opening the HTML report */ out = fopen (report_path, "wb"); if (out == NULL) goto stop; while (1) { /* scrolling the result set */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* processing one row from the resultset */ gaiaGeomCollPtr geom = NULL; sqlite3_int64 rowid = sqlite3_column_int (stmt, 0); if (sqlite3_column_type (stmt, 1) == SQLITE_BLOB) { const unsigned char *blob = sqlite3_column_blob (stmt, 1); int n_bytes = sqlite3_column_bytes (stmt, 1); geom = gaiaFromSpatiaLiteBlobWkb (blob, n_bytes); } if (geom) { /* checking a geometry for validity */ gaiaResetGeosMsg (); if (!gaiaIsValid (geom)) { unsigned char *blob_geom; int blob_sz_geom; unsigned char *blob_saned; int blob_sz_saned; unsigned char *blob_dscrd; int blob_sz_dscrd; const char *error; const char *warning; gaiaGeomCollPtr repaired; gaiaGeomCollPtr discarded; report->n_invalids += 1; gaiaResetLwGeomMsg (); repaired = gaiaMakeValid (geom); discarded = gaiaMakeValidDiscarded (geom); error = gaiaGetLwGeomErrorMsg (); warning = gaiaGetLwGeomWarningMsg (); if (discarded == NULL) p_summary = NULL; else p_summary = createDiscardedSummary (discarded, summary); addMessageToSanitizeReport (report, rowid, (repaired == NULL) ? 0 : 1, error, warning, p_summary); /* inserting into the auxiliary temporary table */ sqlite3_reset (stmt_out); sqlite3_clear_bindings (stmt_out); sqlite3_bind_int64 (stmt_out, 1, rowid); if (!repaired) { report->input_type = eval_type (report->input_type, gaiaGeometryType (geom)); gaiaToSpatiaLiteBlobWkb (geom, &blob_geom, &blob_sz_geom); sqlite3_bind_blob (stmt_out, 2, blob_geom, blob_sz_geom, free); sqlite3_bind_null (stmt_out, 3); } else { report->repaired_type = eval_type (report->repaired_type, gaiaGeometryType (repaired)); sqlite3_bind_null (stmt_out, 2); gaiaToSpatiaLiteBlobWkb (repaired, &blob_saned, &blob_sz_saned); sqlite3_bind_blob (stmt_out, 3, blob_saned, blob_sz_saned, free); } if (discarded) { report->discarded_type = eval_type (report->discarded_type, gaiaGeometryType (discarded)); gaiaToSpatiaLiteBlobWkb (discarded, &blob_dscrd, &blob_sz_dscrd); sqlite3_bind_blob (stmt_out, 4, blob_dscrd, blob_sz_dscrd, free); } else sqlite3_bind_null (stmt_out, 4); /* inserting into the auxiliary temporary table */ ret = sqlite3_step (stmt_out); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { is_error = 1; spatialite_e ("sanitize_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); if (err_msg != NULL) { char *msg = sqlite3_mprintf ("sanitize_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); len = strlen (msg); *err_msg = malloc (len + 1); strcpy (*err_msg, msg); sqlite3_free (msg); } break; } if (repaired) gaiaFreeGeomColl (repaired); if (discarded) gaiaFreeGeomColl (discarded); } gaiaFreeGeomColl (geom); } } else { spatialite_e ("check_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); if (err_msg != NULL) { char *msg = sqlite3_mprintf ("sanitize_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); len = strlen (msg); *err_msg = malloc (len + 1); strcpy (*err_msg, msg); sqlite3_free (msg); } break; } } sqlite3_finalize (stmt); sqlite3_finalize (stmt_out); if (is_error) { /* Rollback */ ret = sqlite3_exec (sqlite, "ROLLBACK", NULL, 0, NULL); if (ret != SQLITE_OK) { spatialite_e ("sanitize_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); if (err_msg != NULL) { char *msg = sqlite3_mprintf ("sanitize_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); len = strlen (msg); *err_msg = malloc (len + 1); strcpy (*err_msg, msg); sqlite3_free (msg); } goto stop; } goto stop; } else { /* committing the still pending Transaction */ ret = sqlite3_exec (sqlite, "COMMIT", NULL, 0, NULL); if (ret != SQLITE_OK) { spatialite_e ("sanitize_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); if (err_msg != NULL) { char *msg = sqlite3_mprintf ("sanitize_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); len = strlen (msg); *err_msg = malloc (len + 1); strcpy (*err_msg, msg); sqlite3_free (msg); } goto stop; } } /* generating the HTML header */ fprintf (out, "\n"); fprintf (out, "\n\t\n"); fprintf (out, "\t\t\n"); fprintf (out, "\t\tSpatiaLite Repair Geometries - Table: %s\n", table); fprintf (out, "\t\t\n"); fprintf (out, "\t\n\t\n"); time (&v_time); v_tm = localtime (&v_time); switch (v_tm->tm_wday) { case 0: day = "Sun"; break; case 1: day = "Mon"; break; case 2: day = "Tue"; break; case 3: day = "Wed"; break; case 4: day = "Thu"; break; case 5: day = "Fri"; break; case 6: day = "Sat"; break; }; switch (v_tm->tm_mon) { case 0: month = "Jan"; break; case 1: month = "Feb"; break; case 2: month = "Mar"; break; case 3: month = "Apr"; break; case 4: month = "May"; break; case 5: month = "Jun"; break; case 6: month = "Jul"; break; case 7: month = "Aug"; break; case 8: month = "Sep"; break; case 9: month = "Oct"; break; case 10: month = "Nov"; break; case 11: month = "Dec"; break; }; fprintf (out, "\t\t%d-%s-%d, %s [%02d:%02d:%02d]
\n", v_tm->tm_year + 1900, month, v_tm->tm_mday, day, v_tm->tm_hour, v_tm->tm_min, v_tm->tm_sec); fprintf (out, "\t\t

SpatiaLite Repair Geometries

\n"); /* generating the summary sub-report */ fprintf (out, "\t\t

Summary

\n"); fprintf (out, "\t\t\n"); fprintf (out, "\t\t\t\n"); fprintf (out, "\t\t\t\n", table); fprintf (out, "\t\t\t\n", geom); fprintf (out, "\t\t\t\n", x_type); fprintf (out, "\t\t\t\n", x_dims); fprintf (out, "\t\t\t\n", srid); fprintf (out, "\t\t\t\n"); fprintf (out, "\t\t\t\n", report->n_invalids); if (report->n_repaired > 0) fprintf (out, "\t\t\t\n", report->n_repaired); else fprintf (out, "\t\t\t\n"); if (report->n_discarded > 0) fprintf (out, "\t\t\t\n", report->n_discarded); else fprintf (out, "\t\t\t\n"); if (report->n_not_repaired > 0) fprintf (out, "\t\t\t\n", report->n_not_repaired); else fprintf (out, "\t\t\t\n"); fprintf (out, "\t\t\t\n"); if (report->n_not_repaired > 0) { fprintf (out, "\t\t\t\n", tmp_table); } else if (report->n_discarded > 0) { fprintf (out, "\t\t\t\n"); } else if (report->n_repaired > 0) { fprintf (out, "\t\t\t\n"); } else { fprintf (out, "\t\t\t\n"); } fprintf (out, "\t\t
Table / Layer
Table%s
Geometry Column%s
Geometry Type%s
Dimensions%s
SRID%d
Statistics
Invalid Geometries%d
Repaired Geometries (fully recovered)%d
Repaired Geometries (fully recovered)NONE
Repaired Geometries (by discarding fragments)%d
Repaired Geometries (by discarding fragments)NONE
Failures (Not Repaired Geometries)%d
Failures (Not Repaired Geometries)NONE
Suggested Action
This layer contains severly damaged Geometries (beyond any possible repair);
"); fprintf (out, "please manually check the %s table.
This layer contains valid but dubious Geometries;
"); fprintf (out, "a repair action is suggested.
This layer has been succesfully repaired and is now completely valid;
"); fprintf (out, "doesn't require any further corrective action.
This layer already was completely valid;
"); fprintf (out, "no corrective action was applied.
\n"); if (report->n_not_repaired != 0) { /* generating the NotRepaired sub-report */ fprintf (out, "\t\t\t
\n\t\t

Not Repaired Geometries

\n"); fprintf (out, "\t\t\n"); fprintf (out, "\t\t\t"); fprintf (out, ""); fprintf (out, "\n"); p_r = report->first; while (p_r) { if (p_r->repaired != 0) { p_r = p_r->next; continue; } sprintf (num, FRMT64, p_r->rowid); p_msg = "Unknown cause"; if (p_r->error) p_msg = p_r->error; else if (p_r->warning) p_msg = p_r->warning; fprintf (out, "\t\t\t\n", num, p_msg); p_r = p_r->next; } fprintf (out, "\t\t
ROWIDStatusError Message
%sNot Repaired (beyond possible repair)%s
\n"); } if (report->n_discarded != 0) { /* generating the DiscardedFragments sub-report */ fprintf (out, "\t\t\t
\n\t\t

Repaired Geometries (by discarding fragments)

\n"); fprintf (out, "\t\t\n"); fprintf (out, "\t\t\t"); fprintf (out, ""); fprintf (out, "\n"); p_r = report->first; while (p_r) { if (p_r->summary == NULL) { p_r = p_r->next; continue; } sprintf (num, FRMT64, p_r->rowid); fprintf (out, "\t\t\t\n", num, p_r->summary); p_r = p_r->next; } fprintf (out, "\t\t
ROWIDStatusDiscarded fragments summary
%sRepaired by discarding fragments%s
\n"); } /* generating the HTML footer */ fprintf (out, "\t\n\n"); fclose (out); /* post-processing actions */ if (report->n_invalids == 0) { /* we can immediately drop the tmp-table for sure */ drop_tmp_table (sqlite, tmp_table); } if (report->n_repaired > 0 && report->n_discarded == 0 && report->n_not_repaired == 0) { /* we can safely update all repaired geometries, then dropping the tmp_table */ update_repaired (sqlite, table, geom, tmp_table, gtype, report->repaired_type); } if (n_invalids != NULL) *n_invalids = report->n_invalids; if (n_repaired != NULL) *n_repaired = report->n_repaired; if (n_discarded != NULL) *n_discarded = report->n_discarded; if (n_failures != NULL) *n_failures = report->n_not_repaired; free_sanitize_report (report); return 1; stop: free_sanitize_report (report); if (out) fclose (out); return 0; } SPATIALITE_DECLARE int sanitize_all_geometry_columns (sqlite3 * sqlite, const char *tmp_prefix, const char *output_dir, int *x_not_repaired, char **err_msg) { /* attempts to repair invalid Geometries from all Geometry Columns */ const char *sql; int ret; int i; char **results; int rows; int columns; int n_invalids; int n_repaired; int n_discarded; int n_failures; char *report; char *tmp_table; FILE *out = NULL; time_t v_time; struct tm *v_tm; const char *day; const char *month; int sum_not_repaired = 0; if (err_msg != NULL) *err_msg = NULL; /* attempting to create the output directory */ #if defined(_WIN32) _mkdir (output_dir); #else mkdir (output_dir, 0777); #endif /* opening the HTML report */ report = sqlite3_mprintf ("%s/index.html", output_dir); out = fopen (report, "wb"); sqlite3_free (report); if (out == NULL) goto stop; /* generating the HTML header */ fprintf (out, "\n"); fprintf (out, "\n\t\n"); fprintf (out, "\t\t\n"); fprintf (out, "\t\tSpatiaLite Repair Geometries - All Tables\n"); fprintf (out, "\t\t\n"); fprintf (out, "\t\n\t\n"); time (&v_time); v_tm = localtime (&v_time); switch (v_tm->tm_wday) { case 0: day = "Sun"; break; case 1: day = "Mon"; break; case 2: day = "Tue"; break; case 3: day = "Wed"; break; case 4: day = "Thu"; break; case 5: day = "Fri"; break; case 6: day = "Sat"; break; }; switch (v_tm->tm_mon) { case 0: month = "Jan"; break; case 1: month = "Feb"; break; case 2: month = "Mar"; break; case 3: month = "Apr"; break; case 4: month = "May"; break; case 5: month = "Jun"; break; case 6: month = "Jul"; break; case 7: month = "Aug"; break; case 8: month = "Sep"; break; case 9: month = "Oct"; break; case 10: month = "Nov"; break; case 11: month = "Dec"; break; }; fprintf (out, "\t\t%d-%s-%d, %s [%02d:%02d:%02d]
\n", v_tm->tm_year + 1900, month, v_tm->tm_mday, day, v_tm->tm_hour, v_tm->tm_min, v_tm->tm_sec); fprintf (out, "\t\t

SpatiaLite Repair Geometries

\n"); /* table header */ fprintf (out, "\t\t\n"); fprintf (out, "\t\t\t"); fprintf (out, ""); fprintf (out, ""); fprintf (out, ""); fprintf (out, ""); fprintf (out, ""); fprintf (out, ""); fprintf (out, "\n"); sql = "SELECT f_table_name, f_geometry_column FROM geometry_columns"; ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL); if (ret != SQLITE_OK) goto stop; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { const char *cls_1; const char *cls_2; const char *cls_msg; const char *p_msg; const char *table = results[(i * columns) + 0]; const char *geom = results[(i * columns) + 1]; report = sqlite3_mprintf ("%s/lyr_%04d.html", output_dir, i); tmp_table = sqlite3_mprintf ("%s%s_%s", tmp_prefix, table, geom); ret = sanitize_geometry_column (sqlite, table, geom, tmp_table, report, &n_invalids, &n_repaired, &n_discarded, &n_failures, err_msg); sqlite3_free (report); sqlite3_free (tmp_table); fprintf (out, "\t\t\t", i); fprintf (out, "", table, geom); sum_not_repaired += n_failures; if (n_invalids == 0) { p_msg = "NONE: this layer was already fully valid"; cls_msg = "nil"; } else if (n_discarded == 0 && n_failures == 0) { p_msg = "NONE: this layer has been succesfully sanitized and is now fully valid"; cls_msg = "ok"; } else if (n_discarded == 0 && n_failures > 0) { p_msg = "Please check all discarded fragments"; cls_msg = "wng"; } else { p_msg = "Manually adjust all Geometries beyond possible repair, then retry"; cls_msg = "err"; } if (n_repaired == 0) cls_1 = "nil"; else cls_1 = "ok"; fprintf (out, "", n_invalids, cls_1, n_repaired); if (n_discarded == 0) cls_1 = "nil"; else cls_1 = "wng"; if (n_failures == 0) cls_2 = "nil"; else cls_2 = "err"; fprintf (out, "", cls_1, n_discarded, cls_2, n_failures); fprintf (out, "\n", cls_msg, p_msg); } } sqlite3_free_table (results); /* generating the HTML footer */ fprintf (out, "\t\t
Show DetailsTableGeometryInvalid GeometriesRepaired GeometriesRepaired Geometries
(by Discarding Fragments)
Repair Failures
(beyond possible repair)
Suggested Action
show%s%s%d%d%d%d%s
\n\t\n\n"); fclose (out); if (x_not_repaired != NULL) *x_not_repaired = sum_not_repaired; return 1; stop: return 0; } #else /* LIBXML2 isn't enabled */ SPATIALITE_DECLARE int sanitize_all_geometry_columns (sqlite3 * sqlite, const char *tmp_prefix, const char *output_dir, int *x_not_repaired, char **err_msg) { /* LWGEOM isn't enabled: always returning an error */ int len; const char *msg = "Sorry ... libspatialite was built disabling LWGEOM\n" "and is thus unable to support MakeValid"; /* silencing stupid compiler warnings */ if (sqlite == NULL || tmp_prefix == NULL || output_dir == NULL || x_not_repaired == NULL) tmp_prefix = NULL; if (err_msg == NULL) return 0; len = strlen (msg); *err_msg = malloc (len + 1); strcpy (*err_msg, msg); return 0; } SPATIALITE_DECLARE int sanitize_geometry_column (sqlite3 * sqlite, const char *table, const char *geom, const char *tmp_table, const char *report_path, int *n_invalids, int *n_repaired, int *n_discarded, int *n_failures, char **err_msg) { /* LWGEOM isn't enabled: always returning an error */ int len; const char *msg = "Sorry ... libspatialite was built disabling LWGEOM\n" "and is thus unable to support MakeValid"; /* silencing stupid compiler warnings */ if (sqlite == NULL || table == NULL || geom == NULL || tmp_table == NULL || report_path == NULL || n_invalids == NULL || n_repaired == NULL || n_discarded == NULL || n_failures == NULL) table = NULL; if (err_msg == NULL) return 0; len = strlen (msg); *err_msg = malloc (len + 1); strcpy (*err_msg, msg); return 0; } #endif /* end LWGEOM conditionals */ #ifndef OMIT_GEOS /* only if GEOS is supported */ static struct validity_report * alloc_validity_report (void) { /* allocating the report container struct */ struct validity_report *p = malloc (sizeof (struct validity_report)); p->first = NULL; p->last = NULL; p->n_rows = 0; p->n_nullgeoms = 0; p->n_valids = 0; p->n_invalids = 0; p->n_warnings = 0; return p; } static void free_validity_report (struct validity_report *p) { /* memory cleanup: freeing the report container struct */ struct validity_report_row *r; struct validity_report_row *rn; r = p->first; while (r) { rn = r->next; if (r->warning != NULL) free (r->warning); if (r->error != NULL) free (r->error); if (r->extra != NULL) free (r->extra); free (r); r = rn; } free (p); } static void addMessageToValidityReport (struct validity_report *report, sqlite3_int64 rowid, int valid, const char *error, const char *warning, const char *extra) { /* adding a message to the report */ int len; struct validity_report_row *r = malloc (sizeof (struct validity_report_row)); r->rowid = rowid; r->valid = valid; r->error = NULL; r->warning = NULL; r->extra = NULL; r->next = NULL; if (error) { len = strlen (error); r->error = malloc (len + 1); strcpy (r->error, error); } if (warning) { len = strlen (warning); r->warning = malloc (len + 1); strcpy (r->warning, warning); } if (extra) { len = strlen (extra); r->extra = malloc (len + 1); strcpy (r->extra, extra); } if (!valid) report->n_invalids += 1; else report->n_warnings += 1; if (report->first == NULL) report->first = r; if (report->last != NULL) report->last->next = r; report->last = r; } SPATIALITE_DECLARE int check_geometry_column (sqlite3 * sqlite, const char *table, const char *geom, const char *report_path, int *n_rows, int *n_invalids, char **err_msg) { /* checks a Geometry Column for validity */ char *sql; char *xtable; char *xgeom; sqlite3_stmt *stmt; int ret; int gtype; int srid; const char *x_type; const char *x_dims; char num[256]; time_t v_time; struct tm *v_tm; const char *day; const char *month; FILE *out = NULL; const char *p_msg; int len; struct validity_report_row *p_r; struct validity_report *report = alloc_validity_report (); if (err_msg != NULL) *err_msg = NULL; if (!check_table_column (sqlite, table, geom, >ype, &srid)) { spatialite_e ("check_geometry_column error: <%s>\n" "Not defined in \"geometry_columns\"", table); if (err_msg != NULL) { char *msg = sqlite3_mprintf ("check_geometry_column error: <%s><%s>\n" "Not defined in \"geometry_columns\"", table, geom); len = strlen (msg); *err_msg = malloc (len + 1); strcpy (*err_msg, msg); sqlite3_free (msg); } goto stop; } /* decoding Geometry Type and Dimensions */ switch (gtype) { case 0: x_type = "GEOMETRY"; x_dims = "XY"; break; case 1000: x_type = "GEOMETRY"; x_dims = "XYZ"; break; case 2000: x_type = "GEOMETRY"; x_dims = "XYM"; break; case 3000: x_type = "GEOMETRY"; x_dims = "XYZM"; break; case 1: x_type = "POINT"; x_dims = "XY"; break; case 1001: x_type = "POINT"; x_dims = "XYZ"; break; case 2001: x_type = "POINT"; x_dims = "XYM"; break; case 3001: x_type = "POINT"; x_dims = "XYZM"; break; case 2: x_type = "LINESTRING"; x_dims = "XY"; break; case 1002: x_type = "LINESTRING"; x_dims = "XYZ"; break; case 2002: x_type = "LINESTRING"; x_dims = "XYM"; break; case 3002: x_type = "LINESTRING"; x_dims = "XYZM"; break; case 3: x_type = "POLYGON"; x_dims = "XY"; break; case 1003: x_type = "POLYGON"; x_dims = "XYZ"; break; case 2003: x_type = "POLYGON"; x_dims = "XYM"; break; case 3003: x_type = "POLYGON"; x_dims = "XYZM"; break; case 4: x_type = "MULTIPOINT"; x_dims = "XY"; break; case 1004: x_type = "MULTIPOINT"; x_dims = "XYZ"; break; case 2004: x_type = "MULTIPOINT"; x_dims = "XYM"; break; case 3004: x_type = "MULTIPOINT"; x_dims = "XYZM"; break; case 5: x_type = "MULTILINESTRING"; x_dims = "XY"; break; case 1005: x_type = "MULTILINESTRING"; x_dims = "XYZ"; break; case 2005: x_type = "MULTILINESTRING"; x_dims = "XYM"; break; case 3005: x_type = "MULTILINESTRING"; x_dims = "XYZM"; break; case 6: x_type = "MULTIPOLYGON"; x_dims = "XY"; break; case 1006: x_type = "MULTIPOLYGON"; x_dims = "XYZ"; break; case 2006: x_type = "MULTIPOLYGON"; x_dims = "XYM"; break; case 3006: x_type = "MULTIPOLYGON"; x_dims = "XYZM"; break; case 7: x_type = "GEOMETRYCOLLECTION"; x_dims = "XY"; break; case 1007: x_type = "GEOMETRYCOLLECTION"; x_dims = "XYZ"; break; case 2007: x_type = "GEOMETRYCOLLECTION"; x_dims = "XYM"; break; case 3007: x_type = "GEOMETRYCOLLECTION"; x_dims = "XYZM"; break; default: x_type = "UNKNOWN"; x_dims = "UNKNOWN"; break; }; xtable = gaiaDoubleQuotedSql (table); xgeom = gaiaDoubleQuotedSql (geom); sql = sqlite3_mprintf ("SELECT ROWID, \"%s\" FROM \"%s\"", xgeom, xtable); free (xtable); free (xgeom); ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("check_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); if (err_msg != NULL) { char *msg = sqlite3_mprintf ("check_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); len = strlen (msg); *err_msg = malloc (len + 1); strcpy (*err_msg, msg); sqlite3_free (msg); } goto stop; } /* opening the HTML report */ out = fopen (report_path, "wb"); if (out == NULL) goto stop; while (1) { /* scrolling the result set */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* processing one row from the resultset */ gaiaGeomCollPtr geom = NULL; sqlite3_int64 rowid = sqlite3_column_int (stmt, 0); report->n_rows += 1; if (sqlite3_column_type (stmt, 1) == SQLITE_BLOB) { const unsigned char *blob = sqlite3_column_blob (stmt, 1); int n_bytes = sqlite3_column_bytes (stmt, 1); geom = gaiaFromSpatiaLiteBlobWkb (blob, n_bytes); } if (geom) { /* checking a geometry for validity */ int valid; const char *error; const char *warning; const char *extra; gaiaResetGeosMsg (); valid = gaiaIsValid (geom); error = gaiaGetGeosErrorMsg (); warning = gaiaGetGeosWarningMsg (); extra = gaiaGetGeosAuxErrorMsg (); if (!valid || error || warning) addMessageToValidityReport (report, rowid, valid, error, warning, extra); else report->n_valids += 1; gaiaFreeGeomColl (geom); } else report->n_nullgeoms += 1; } else { spatialite_e ("check_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); if (err_msg != NULL) { char *msg = sqlite3_mprintf ("check_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); len = strlen (msg); *err_msg = malloc (len + 1); strcpy (*err_msg, msg); sqlite3_free (msg); } break; } } sqlite3_finalize (stmt); /* generating the HTML header */ fprintf (out, "\n"); fprintf (out, "\n\t\n"); fprintf (out, "\t\t\n"); fprintf (out, "\t\tSpatiaLite Validity Check - Table: %s\n", table); fprintf (out, "\t\t\n"); fprintf (out, "\t\n\t\n"); time (&v_time); v_tm = localtime (&v_time); switch (v_tm->tm_wday) { case 0: day = "Sun"; break; case 1: day = "Mon"; break; case 2: day = "Tue"; break; case 3: day = "Wed"; break; case 4: day = "Thu"; break; case 5: day = "Fri"; break; case 6: day = "Sat"; break; }; switch (v_tm->tm_mon) { case 0: month = "Jan"; break; case 1: month = "Feb"; break; case 2: month = "Mar"; break; case 3: month = "Apr"; break; case 4: month = "May"; break; case 5: month = "Jun"; break; case 6: month = "Jul"; break; case 7: month = "Aug"; break; case 8: month = "Sep"; break; case 9: month = "Oct"; break; case 10: month = "Nov"; break; case 11: month = "Dec"; break; }; fprintf (out, "\t\t%d-%s-%d, %s [%02d:%02d:%02d]
\n", v_tm->tm_year + 1900, month, v_tm->tm_mday, day, v_tm->tm_hour, v_tm->tm_min, v_tm->tm_sec); fprintf (out, "\t\t

SpatiaLite Validity Check

\n"); /* generating the summary sub-report */ fprintf (out, "\t\t

Summary

\n"); fprintf (out, "\t\t\n"); fprintf (out, "\t\t\t\n"); fprintf (out, "\t\t\t\n", table); fprintf (out, "\t\t\t\n", geom); fprintf (out, "\t\t\t\n", x_type); fprintf (out, "\t\t\t\n", x_dims); fprintf (out, "\t\t\t\n", srid); fprintf (out, "\t\t\t\n"); fprintf (out, "\t\t\t\n", report->n_rows); if (report->n_nullgeoms > 0) fprintf (out, "\t\t\t\n", report->n_nullgeoms); else fprintf (out, "\t\t\t\n"); fprintf (out, "\t\t\t\n", report->n_valids); if (report->n_warnings > 0) fprintf (out, "\t\t\t\n", report->n_warnings); else fprintf (out, "\t\t\t\n"); if (report->n_invalids > 0) fprintf (out, "\t\t\t\n", report->n_invalids); else fprintf (out, "\t\t\t\n"); fprintf (out, "\t\t\t\n"); if (report->n_invalids > 0) { fprintf (out, "\t\t\t\n"); } else if (report->n_warnings > 0) { fprintf (out, "\t\t\t\n"); } else { fprintf (out, "\t\t\t\n"); } fprintf (out, "\t\t
Table / Layer
Table%s
Geometry Column%s
Geometry Type%s
Dimensions%s
SRID%d
Statistics
Total Rows%d
NULL Geometries%d
NULL GeometriesNONE
Valid Geometries (full valid)%d
Valid Geometries (minor issues)%d
Valid Geometries (minor issues)NONE
Invalid Geometries%d
Invalid GeometriesNONE
Suggested Action
This layer contains invalid Geometries;
"); fprintf (out, "a repair action is urgently required.
This layer contains valid but dubious Geometries;
"); fprintf (out, "a repair action is suggested.
This layer is perfectly valid;
"); fprintf (out, "doesn't require any corrective action.
\n"); if (report->n_invalids > 0) { /* generating the errors sub-report */ fprintf (out, "\t\t\t
\n\t\t

Invalid Geometries List

\n"); fprintf (out, "\t\t\n"); fprintf (out, "\t\t\t"); fprintf (out, "\n"); p_r = report->first; while (p_r) { if (p_r->valid != 0) { p_r = p_r->next; continue; } sprintf (num, FRMT64, p_r->rowid); p_msg = "Unknown cause"; if (p_r->error) p_msg = p_r->error; else if (p_r->warning) p_msg = p_r->warning; else if (p_r->extra) p_msg = p_r->extra; fprintf (out, "\t\t\t\n", num, p_msg); p_r = p_r->next; } fprintf (out, "\t\t
ROWIDError Cause
%s%s
\n"); } if (report->n_warnings > 0) { /* generating the warnings sub-report */ fprintf (out, "\t\t\t
\n\t\t

Valid Geometries List (anyway presenting some minor issue)

\n"); fprintf (out, "\t\t\n"); fprintf (out, "\t\t\t"); fprintf (out, "\n"); p_r = report->first; while (p_r) { if (p_r->valid != 1) { p_r = p_r->next; continue; } sprintf (num, FRMT64, p_r->rowid); p_msg = "Unknown cause"; if (p_r->error) p_msg = p_r->error; else if (p_r->warning) p_msg = p_r->warning; fprintf (out, "\t\t\t\n", num, p_msg); p_r = p_r->next; } fprintf (out, "\t\t
ROWIDWarning Cause
%s%s
\n"); } /* generating the HTML footer */ fprintf (out, "\t\n\n"); fclose (out); if (n_rows != NULL) *n_rows = report->n_rows; if (n_invalids != NULL) *n_invalids = report->n_invalids; free_validity_report (report); return 1; stop: free_validity_report (report); if (out) fclose (out); return 0; } SPATIALITE_DECLARE int check_all_geometry_columns (sqlite3 * sqlite, const char *output_dir, int *x_invalids, char **err_msg) { /* checks all Geometry Columns for validity */ const char *sql; int ret; int i; char **results; int rows; int columns; int n_rows; int n_invalids; char *report; FILE *out = NULL; time_t v_time; struct tm *v_tm; const char *day; const char *month; int sum_invalids = 0; /* attempting to create the output directory */ #if defined(_WIN32) _mkdir (output_dir); #else mkdir (output_dir, 0777); #endif if (err_msg != NULL) *err_msg = NULL; /* opening the HTML report */ report = sqlite3_mprintf ("%s/index.html", output_dir); out = fopen (report, "wb"); sqlite3_free (report); if (out == NULL) goto stop; /* generating the HTML header */ fprintf (out, "\n"); fprintf (out, "\n\t\n"); fprintf (out, "\t\t\n"); fprintf (out, "\t\tSpatiaLite Validity Check - All Tables\n"); fprintf (out, "\t\t\n"); fprintf (out, "\t\n\t\n"); time (&v_time); v_tm = localtime (&v_time); switch (v_tm->tm_wday) { case 0: day = "Sun"; break; case 1: day = "Mon"; break; case 2: day = "Tue"; break; case 3: day = "Wed"; break; case 4: day = "Thu"; break; case 5: day = "Fri"; break; case 6: day = "Sat"; break; }; switch (v_tm->tm_mon) { case 0: month = "Jan"; break; case 1: month = "Feb"; break; case 2: month = "Mar"; break; case 3: month = "Apr"; break; case 4: month = "May"; break; case 5: month = "Jun"; break; case 6: month = "Jul"; break; case 7: month = "Aug"; break; case 8: month = "Sep"; break; case 9: month = "Oct"; break; case 10: month = "Nov"; break; case 11: month = "Dec"; break; }; fprintf (out, "\t\t%d-%s-%d, %s [%02d:%02d:%02d]
\n", v_tm->tm_year + 1900, month, v_tm->tm_mday, day, v_tm->tm_hour, v_tm->tm_min, v_tm->tm_sec); fprintf (out, "\t\t

SpatiaLite Validity Check

\n"); /* table header */ fprintf (out, "\t\t\n"); fprintf (out, "\t\t\t"); fprintf (out, ""); fprintf (out, ""); fprintf (out, ""); fprintf (out, ""); fprintf (out, "\n"); sql = "SELECT f_table_name, f_geometry_column FROM geometry_columns"; ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL); if (ret != SQLITE_OK) goto stop; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { const char *table = results[(i * columns) + 0]; const char *geom = results[(i * columns) + 1]; report = sqlite3_mprintf ("%s/lyr_%04d.html", output_dir, i); ret = check_geometry_column (sqlite, table, geom, report, &n_rows, &n_invalids, err_msg); sqlite3_free (report); fprintf (out, "\t\t\t", i); fprintf (out, "", table, geom); sum_invalids += n_invalids; if (n_invalids == 0) { fprintf (out, "", n_rows, n_invalids); fprintf (out, "\n"); } else { fprintf (out, "", n_rows, n_invalids); fprintf (out, "\n"); } } } sqlite3_free_table (results); /* generating the HTML footer */ fprintf (out, "\t\t
Show DetailsTableGeometryTotal RowsInvalid GeometriesSuggested Action
show%s%s%d%dNONE: this layer is fully valid
%d%dRepairing this layer is urgently required
\n\t\n\n"); fclose (out); if (x_invalids != NULL) *x_invalids = sum_invalids; return 1; stop: return 0; } #else SPATIALITE_DECLARE int check_all_geometry_columns (sqlite3 * sqlite, const char *output_dir, int *x_invalids, char **err_msg) { /* GEOS isn't enabled: always returning an error */ int len; const char *msg = "Sorry ... libspatialite was built disabling LWGEOM\n" "and is thus unable to support IsValid"; /* silencing stupid compiler warnings */ if (sqlite == NULL || output_dir == NULL || x_invalids == NULL) output_dir = NULL; if (err_msg == NULL) return 0; len = strlen (msg); *err_msg = malloc (len + 1); strcpy (*err_msg, msg); return 0; } SPATIALITE_DECLARE int check_geometry_column (sqlite3 * sqlite, const char *table, const char *geom, const char *report_path, int *n_rows, int *n_invalids, char **err_msg) { /* GEOS isn't enabled: always returning an error */ int len; const char *msg = "Sorry ... libspatialite was built disabling GEOS\n" "and is thus unable to support IsValid"; /* silencing stupid compiler warnings */ if (sqlite == NULL || table == NULL || geom == NULL || ||report_path == NULL || n_rows == NULL || n_invalids == NULL) table = NULL; if (err_msg == NULL) return 0; len = strlen (msg); *err_msg = malloc (len + 1); strcpy (*err_msg, msg); return 0; } #endif /* end GEOS conditionals */ libspatialite-4.1.1/src/shapefiles/Makefile.in0000664000175000017500000003717212163502133016253 00000000000000# Makefile.in generated by automake 1.12.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/shapefiles DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libshapefiles_la_LIBADD = am_libshapefiles_la_OBJECTS = shapefiles.lo validator.lo libshapefiles_la_OBJECTS = $(am_libshapefiles_la_OBJECTS) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libshapefiles_la_SOURCES) DIST_SOURCES = $(libshapefiles_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ INCLUDES = @CFLAGS@ -I$(top_srcdir)/src/headers noinst_LTLIBRARIES = libshapefiles.la libshapefiles_la_SOURCES = shapefiles.c validator.c MOSTLYCLEANFILES = *.gcna *.gcno *.gcda all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/shapefiles/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/shapefiles/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } libshapefiles.la: $(libshapefiles_la_OBJECTS) $(libshapefiles_la_DEPENDENCIES) $(EXTRA_libshapefiles_la_DEPENDENCIES) $(LINK) $(libshapefiles_la_OBJECTS) $(libshapefiles_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/shapefiles.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/validator.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: $(HEADERS) $(SOURCES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES cscopelist ctags \ distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libspatialite-4.1.1/src/shapefiles/shapefiles.c0000664000175000017500000047374212163502133016504 00000000000000/* shapefiles.c -- implements shapefile support [import - export] version 4.1, 2013 May 8 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) /* MSVC strictly requires this include [off_t] */ #include #endif #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include #include #include #include #include #ifndef OMIT_FREEXL #include #endif #if defined(_WIN32) && !defined(__MINGW32__) #define strcasecmp _stricmp #define strncasecmp _strnicmp #endif /* 64 bit integer: portable format for printf() */ #if defined(_WIN32) && !defined(__MINGW32__) #define FRMT64 "%I64d" #else #define FRMT64 "%lld" #endif struct auxdbf_fld { /* auxiliary DBF field struct */ char already_used; gaiaDbfFieldPtr dbf_field; struct auxdbf_fld *next; }; struct auxdbf_list { /* auxiliary DBF struct */ struct auxdbf_fld *first; struct auxdbf_fld *last; }; struct dupl_column { /* a column value in a duplicated row */ int pos; char *name; int type; sqlite3_int64 int_value; double dbl_value; const char *txt_value; const void *blob; int size; int query_pos; struct dupl_column *next; }; struct dupl_row { /* a duplicated row with column values */ int count; struct dupl_column *first; struct dupl_column *last; const char *table; }; static void clean_dupl_row (struct dupl_row *str) { /* destroying a duplicated row struct */ struct dupl_column *p; struct dupl_column *pn; p = str->first; while (p) { pn = p->next; free (p->name); free (p); p = pn; } } static void add_to_dupl_row (struct dupl_row *str, const char *name) { /* adding a column to the duplicated row struct */ int len; struct dupl_column *p = malloc (sizeof (struct dupl_column)); p->pos = str->count; len = strlen (name); p->name = malloc (len + 1); strcpy (p->name, name); str->count++; p->type = SQLITE_NULL; p->next = NULL; if (str->first == NULL) str->first = p; if (str->last) str->last->next = p; str->last = p; } static void set_int_value (struct dupl_row *str, int pos, sqlite3_int64 value) { /* setting up an integer value */ struct dupl_column *p = str->first; while (p) { if (p->pos == pos) { p->type = SQLITE_INTEGER; p->int_value = value; return; } p = p->next; } } static void set_double_value (struct dupl_row *str, int pos, double value) { /* setting up a double value */ struct dupl_column *p = str->first; while (p) { if (p->pos == pos) { p->type = SQLITE_FLOAT; p->dbl_value = value; return; } p = p->next; } } static void set_text_value (struct dupl_row *str, int pos, const char *value) { /* setting up a text value */ struct dupl_column *p = str->first; while (p) { if (p->pos == pos) { p->type = SQLITE_TEXT; p->txt_value = value; return; } p = p->next; } } static void set_blob_value (struct dupl_row *str, int pos, const void *blob, int size) { /* setting up a blob value */ struct dupl_column *p = str->first; while (p) { if (p->pos == pos) { p->type = SQLITE_BLOB; p->blob = blob; p->size = size; return; } p = p->next; } } static void set_null_value (struct dupl_row *str, int pos) { /* setting up a NULL value */ struct dupl_column *p = str->first; while (p) { if (p->pos == pos) { p->type = SQLITE_NULL; return; } p = p->next; } } static void reset_query_pos (struct dupl_row *str) { /* resetting QueryPos for BLOBs */ struct dupl_column *p = str->first; while (p) { p->query_pos = -1; p = p->next; } } static int check_dupl_blob2 (struct dupl_column *ptr, const void *blob, int size) { /* checking a BLOB value */ if (ptr->type != SQLITE_BLOB) return 0; if (ptr->size != size) return 0; if (memcmp (ptr->blob, blob, size) != 0) return 0; return 1; } static int check_dupl_blob (struct dupl_row *str, int pos, const void *blob, int size) { /* checking a BLOB value */ struct dupl_column *p = str->first; while (p) { if (p->query_pos == pos) { return check_dupl_blob2 (p, blob, size); } p = p->next; } return 0; } static struct auxdbf_list * alloc_auxdbf (gaiaDbfListPtr dbf_list) { /* allocating the auxiliary DBF struct */ gaiaDbfFieldPtr fld; struct auxdbf_fld *fld_ex; struct auxdbf_list *auxdbf = malloc (sizeof (struct auxdbf_list)); auxdbf->first = NULL; auxdbf->last = NULL; fld = dbf_list->First; while (fld) { fld_ex = malloc (sizeof (struct auxdbf_fld)); fld_ex->already_used = 0; fld_ex->dbf_field = fld; fld_ex->next = NULL; if (auxdbf->first == NULL) auxdbf->first = fld_ex; if (auxdbf->last != NULL) auxdbf->last->next = fld_ex; auxdbf->last = fld_ex; fld = fld->Next; } return auxdbf; } static void free_auxdbf (struct auxdbf_list *auxdbf) { /* freeing an auxiliary DBF struct */ struct auxdbf_fld *n_fld; struct auxdbf_fld *fld = auxdbf->first; while (fld != NULL) { n_fld = fld->next; free (fld); fld = n_fld; } free (auxdbf); } static gaiaDbfFieldPtr getDbfField (struct auxdbf_list *aux, char *name) { /* find a DBF attribute by name */ struct auxdbf_fld *fld = aux->first; while (fld) { if (strcasecmp (fld->dbf_field->Name, name) == 0) { fld->already_used = 1; return fld->dbf_field; } fld = fld->next; } fld = aux->first; while (fld) { if (fld->already_used) { fld = fld->next; continue; } if (strncasecmp (fld->dbf_field->Name, name, 9) == 0) { fld->already_used = 1; return fld->dbf_field; } fld = fld->next; } return NULL; } #ifndef OMIT_ICONV /* ICONV enabled: supporting SHP */ SPATIALITE_DECLARE int load_shapefile (sqlite3 * sqlite, char *shp_path, char *table, char *charset, int srid, char *column, int coerce2d, int compressed, int verbose, int spatial_index, int *rows, char *err_msg) { return load_shapefile_ex (sqlite, shp_path, table, charset, srid, column, NULL, NULL, coerce2d, compressed, verbose, spatial_index, rows, err_msg); } SPATIALITE_DECLARE int load_shapefile_ex (sqlite3 * sqlite, char *shp_path, char *table, char *charset, int srid, char *g_column, char *gtype, char *pk_column, int coerce2d, int compressed, int verbose, int spatial_index, int *rows, char *err_msg) { sqlite3_stmt *stmt = NULL; int ret; char *errMsg = NULL; char *sql; char *dummy; int already_exists = 0; int metadata = 0; int sqlError = 0; gaiaShapefilePtr shp = NULL; gaiaDbfFieldPtr dbf_field; int cnt; int col_cnt; int seed; int len; int dup; int idup; int current_row; char **col_name = NULL; unsigned char *blob; int blob_size; char *geom_type; char *txt_dims; char *geo_column = g_column; char *xgtype = gtype; char *qtable = NULL; char *qpk_name = NULL; char *pk_name = NULL; int pk_autoincr = 1; char *xname; int pk_type = SQLITE_INTEGER; int pk_set; gaiaOutBuffer sql_statement; if (!geo_column) geo_column = "Geometry"; if (!xgtype) ; else { if (strcasecmp (xgtype, "LINESTRING") == 0) xgtype = "LINESTRING"; else if (strcasecmp (xgtype, "LINESTRINGZ") == 0) xgtype = "LINESTRINGZ"; else if (strcasecmp (xgtype, "LINESTRINGM") == 0) xgtype = "LINESTRINGM"; else if (strcasecmp (xgtype, "LINESTRINGZM") == 0) xgtype = "LINESTRINGZM"; else if (strcasecmp (xgtype, "MULTILINESTRING") == 0) xgtype = "MULTILINESTRING"; else if (strcasecmp (xgtype, "MULTILINESTRINGZ") == 0) xgtype = "MULTILINESTRINGZ"; else if (strcasecmp (xgtype, "MULTILINESTRINGM") == 0) xgtype = "MULTILINESTRINGM"; else if (strcasecmp (xgtype, "MULTILINESTRINGZM") == 0) xgtype = "MULTILINESTRINGZM"; else if (strcasecmp (xgtype, "POLYGON") == 0) xgtype = "POLYGON"; else if (strcasecmp (xgtype, "POLYGONZ") == 0) xgtype = "POLYGONZ"; else if (strcasecmp (xgtype, "POLYGONM") == 0) xgtype = "POLYGONM"; else if (strcasecmp (xgtype, "POLYGONZM") == 0) xgtype = "POLYGONZM"; else if (strcasecmp (xgtype, "MULTIPOLYGON") == 0) xgtype = "MULTIPOLYGON"; else if (strcasecmp (xgtype, "MULTIPOLYGONZ") == 0) xgtype = "MULTIPOLYGONZ"; else if (strcasecmp (xgtype, "MULTIPOLYGONM") == 0) xgtype = "MULTIPOLYGONM"; else if (strcasecmp (xgtype, "MULTIPOLYGONZM") == 0) xgtype = "MULTIPOLYGONZM"; else xgtype = NULL; } qtable = gaiaDoubleQuotedSql (table); /* checking if TABLE already exists */ sql = sqlite3_mprintf ("SELECT name FROM sqlite_master WHERE type = 'table' " "AND Lower(name) = Lower(%Q)", table); ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { if (!err_msg) spatialite_e ("load shapefile error: <%s>\n", sqlite3_errmsg (sqlite)); else sprintf (err_msg, "load shapefile error: <%s>\n", sqlite3_errmsg (sqlite)); goto clean_up; } while (1) { /* scrolling the result set */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) already_exists = 1; else { spatialite_e ("load shapefile error: <%s>\n", sqlite3_errmsg (sqlite)); break; } } sqlite3_finalize (stmt); if (already_exists) { if (!err_msg) spatialite_e ("load shapefile error: table '%s' already exists\n", table); else sprintf (err_msg, "load shapefile error: table '%s' already exists\n", table); if (qtable) free (qtable); if (qpk_name) free (qpk_name); return 0; } /* checking if MetaData GEOMETRY_COLUMNS exists */ sql = "SELECT name FROM sqlite_master WHERE type = 'table' AND name = 'geometry_columns'"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { if (!err_msg) spatialite_e ("load shapefile error: <%s>\n", sqlite3_errmsg (sqlite)); else sprintf (err_msg, "load shapefile error: <%s>\n", sqlite3_errmsg (sqlite)); if (qtable) free (qtable); if (qpk_name) free (qpk_name); return 0; } while (1) { /* scrolling the result set */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) metadata = 1; else { spatialite_e ("load shapefile error: <%s>\n", sqlite3_errmsg (sqlite)); break; } } sqlite3_finalize (stmt); shp = gaiaAllocShapefile (); gaiaOpenShpRead (shp, shp_path, charset, "UTF-8"); if (!(shp->Valid)) { if (!err_msg) { spatialite_e ("load shapefile error: cannot open shapefile '%s'\n", shp_path); if (shp->LastError) spatialite_e ("\tcause: %s\n", shp->LastError); } else { char extra[512]; *extra = '\0'; if (shp->LastError) sprintf (extra, "\n\tcause: %s\n", shp->LastError); sprintf (err_msg, "load shapefile error: cannot open shapefile '%s'%s", shp_path, extra); } gaiaFreeShapefile (shp); if (qtable) free (qtable); if (qpk_name) free (qpk_name); return 0; } /* checking for duplicate / illegal column names and antialising them */ col_cnt = 0; dbf_field = shp->Dbf->First; while (dbf_field) { /* counting DBF fields */ col_cnt++; dbf_field = dbf_field->Next; } col_name = malloc (sizeof (char *) * col_cnt); cnt = 0; seed = 0; if (pk_column != NULL) { /* validating the Primary Key column */ dbf_field = shp->Dbf->First; while (dbf_field) { if (strcasecmp (pk_column, dbf_field->Name) == 0) { /* ok, using this field as Primary Key */ pk_name = pk_column; pk_autoincr = 0; switch (dbf_field->Type) { case 'C': pk_type = SQLITE_TEXT; break; case 'N': if (dbf_field->Decimals) pk_type = SQLITE_FLOAT; else { if (dbf_field->Length <= 18) pk_type = SQLITE_INTEGER; else pk_type = SQLITE_FLOAT; } break; case 'D': pk_type = SQLITE_FLOAT; break; case 'F': pk_type = SQLITE_FLOAT; break; case 'L': pk_type = SQLITE_INTEGER; break; }; } dbf_field = dbf_field->Next; } } if (pk_name == NULL) { if (pk_column != NULL) pk_name = pk_column; else pk_name = "PK_UID"; } qpk_name = gaiaDoubleQuotedSql (pk_name); dbf_field = shp->Dbf->First; while (dbf_field) { /* preparing column names */ char *xdummy = NULL; if (strcasecmp (pk_name, dbf_field->Name) == 0) { /* skipping the Primary Key field */ dummy = dbf_field->Name; len = strlen (dummy); *(col_name + cnt) = malloc (len + 1); strcpy (*(col_name + cnt), dummy); cnt++; dbf_field = dbf_field->Next; continue; } dummy = dbf_field->Name; dup = 0; for (idup = 0; idup < cnt; idup++) { if (strcasecmp (dummy, *(col_name + idup)) == 0) dup = 1; } if (strcasecmp (dummy, pk_name) == 0) dup = 1; if (strcasecmp (dummy, geo_column) == 0) dup = 1; if (dup) { xdummy = sqlite3_mprintf ("COL_%d", seed++); spatialite_e ("Warning: duplicated fieldName \"%s\" in shapefile \"%s\": " "renaming the second occurence in table \"%s\" as \"%s\".\n", dummy, shp_path, table, xdummy); dummy = xdummy; } len = strlen (dummy); *(col_name + cnt) = malloc (len + 1); strcpy (*(col_name + cnt), dummy); if (xdummy) sqlite3_free (xdummy); cnt++; dbf_field = dbf_field->Next; } if (verbose) spatialite_e ("========\nLoading shapefile at '%s' into SQLite table '%s'\n", shp_path, table); /* starting a transaction */ if (verbose) spatialite_e ("\nBEGIN;\n"); ret = sqlite3_exec (sqlite, "BEGIN", NULL, 0, &errMsg); if (ret != SQLITE_OK) { if (!err_msg) spatialite_e ("load shapefile error: <%s>\n", errMsg); else sprintf (err_msg, "load shapefile error: <%s>\n", errMsg); sqlite3_free (errMsg); sqlError = 1; goto clean_up; } /* creating the Table */ gaiaOutBufferInitialize (&sql_statement); if (pk_type == SQLITE_TEXT) { sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (\n\"%s\" " "TEXT PRIMARY KEY NOT NULL", qtable, qpk_name); } else if (pk_type == SQLITE_FLOAT) { sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (\n\"%s\" " "DOUBLE PRIMARY KEY NOT NULL", qtable, qpk_name); } else { if (pk_autoincr) sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (\n\"%s\" " "INTEGER PRIMARY KEY AUTOINCREMENT", qtable, qpk_name); else sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (\n\"%s\" " "INTEGER NOT NULL PRIMARY KEY", qtable, qpk_name); } gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); cnt = 0; dbf_field = shp->Dbf->First; while (dbf_field) { if (strcasecmp (pk_name, dbf_field->Name) == 0) { /* skipping the Primary Key field */ dbf_field = dbf_field->Next; cnt++; continue; } xname = gaiaDoubleQuotedSql (*(col_name + cnt)); sql = sqlite3_mprintf (",\n\"%s\"", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); cnt++; switch (dbf_field->Type) { case 'C': gaiaAppendToOutBuffer (&sql_statement, " TEXT"); break; case 'N': if (dbf_field->Decimals) gaiaAppendToOutBuffer (&sql_statement, " DOUBLE"); else { if (dbf_field->Length <= 18) gaiaAppendToOutBuffer (&sql_statement, " INTEGER"); else gaiaAppendToOutBuffer (&sql_statement, " DOUBLE"); } break; case 'D': gaiaAppendToOutBuffer (&sql_statement, " DOUBLE"); break; case 'F': gaiaAppendToOutBuffer (&sql_statement, " DOUBLE"); break; case 'L': gaiaAppendToOutBuffer (&sql_statement, " INTEGER"); break; }; dbf_field = dbf_field->Next; } if (metadata) gaiaAppendToOutBuffer (&sql_statement, ")"); else { xname = gaiaDoubleQuotedSql (geo_column); sql = sqlite3_mprintf (",\n\"%s\" BLOB)", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); } if (sql_statement.Error == 0 && sql_statement.Buffer != NULL) { if (verbose) spatialite_e ("%s;\n", sql_statement.Buffer); ret = sqlite3_exec (sqlite, sql_statement.Buffer, NULL, 0, &errMsg); } else ret = SQLITE_ERROR; gaiaOutBufferReset (&sql_statement); if (ret != SQLITE_OK) { if (!err_msg) spatialite_e ("load shapefile error: <%s>\n", errMsg); else sprintf (err_msg, "load shapefile error: <%s>\n", errMsg); sqlite3_free (errMsg); sqlError = 1; goto clean_up; } if (metadata) { /* creating Geometry column */ switch (shp->Shape) { case GAIA_SHP_POINT: case GAIA_SHP_POINTM: case GAIA_SHP_POINTZ: geom_type = "POINT"; break; case GAIA_SHP_MULTIPOINT: case GAIA_SHP_MULTIPOINTM: case GAIA_SHP_MULTIPOINTZ: geom_type = "MULTIPOINT"; break; case GAIA_SHP_POLYLINE: case GAIA_SHP_POLYLINEM: case GAIA_SHP_POLYLINEZ: if (xgtype == NULL) { /* auto-decting if MULTILINESTRING is required */ gaiaShpAnalyze (shp); if (shp->EffectiveType == GAIA_LINESTRING) geom_type = "LINESTRING"; else geom_type = "MULTILINESTRING"; } else { /* user-defined geometry type */ if (strcmp (xgtype, "LINESTRING") == 0) { geom_type = "LINESTRING"; shp->EffectiveType = GAIA_LINESTRING; shp->EffectiveDims = GAIA_XY; } if (strcmp (xgtype, "LINESTRINGZ") == 0) { geom_type = "LINESTRING"; shp->EffectiveType = GAIA_LINESTRING; shp->EffectiveDims = GAIA_XY_Z; } if (strcmp (xgtype, "LINESTRINGM") == 0) { geom_type = "LINESTRING"; shp->EffectiveType = GAIA_LINESTRING; shp->EffectiveDims = GAIA_XY_M; } if (strcmp (xgtype, "LINESTRINGZM") == 0) { geom_type = "LINESTRING"; shp->EffectiveType = GAIA_LINESTRING; shp->EffectiveDims = GAIA_XY_Z_M; } if (strcmp (xgtype, "MULTILINESTRING") == 0) { geom_type = "MULTILINESTRING"; shp->EffectiveType = GAIA_MULTILINESTRING; shp->EffectiveDims = GAIA_XY; } if (strcmp (xgtype, "MULTILINESTRINGZ") == 0) { geom_type = "MULTILINESTRING"; shp->EffectiveType = GAIA_MULTILINESTRING; shp->EffectiveDims = GAIA_XY_Z; } if (strcmp (xgtype, "MULTILINESTRINGM") == 0) { geom_type = "MULTILINESTRING"; shp->EffectiveType = GAIA_MULTILINESTRING; shp->EffectiveDims = GAIA_XY_M; } if (strcmp (xgtype, "MULTILINESTRINGZM") == 0) { geom_type = "MULTILINESTRING"; shp->EffectiveType = GAIA_MULTILINESTRING; shp->EffectiveDims = GAIA_XY_Z_M; } } break; case GAIA_SHP_POLYGON: case GAIA_SHP_POLYGONM: case GAIA_SHP_POLYGONZ: if (xgtype == NULL) { /* auto-decting if MULTIPOLYGON is required */ gaiaShpAnalyze (shp); if (shp->EffectiveType == GAIA_POLYGON) geom_type = "POLYGON"; else geom_type = "MULTIPOLYGON"; } else { /* user-defined geometry type */ if (strcmp (xgtype, "POLYGON") == 0) { geom_type = "POLYGON"; shp->EffectiveType = GAIA_POLYGON; shp->EffectiveDims = GAIA_XY; } if (strcmp (xgtype, "POLYGONZ") == 0) { geom_type = "POLYGON"; shp->EffectiveType = GAIA_POLYGON; shp->EffectiveDims = GAIA_XY_Z; } if (strcmp (xgtype, "POLYGONM") == 0) { geom_type = "POLYGON"; shp->EffectiveType = GAIA_POLYGON; shp->EffectiveDims = GAIA_XY_M; } if (strcmp (xgtype, "POLYGONZM") == 0) { geom_type = "POLYGON"; shp->EffectiveType = GAIA_POLYGON; shp->EffectiveDims = GAIA_XY_Z_M; } if (strcmp (xgtype, "MULTIPOLYGON") == 0) { geom_type = "MULTIPOLYGON"; shp->EffectiveType = GAIA_MULTIPOLYGON; shp->EffectiveDims = GAIA_XY; } if (strcmp (xgtype, "MULTIPOLYGONZ") == 0) { geom_type = "MULTIPOLYGON"; shp->EffectiveType = GAIA_MULTIPOLYGON; shp->EffectiveDims = GAIA_XY_Z; } if (strcmp (xgtype, "MULTIPOLYGONM") == 0) { geom_type = "MULTIPOLYGON"; shp->EffectiveType = GAIA_MULTIPOLYGON; shp->EffectiveDims = GAIA_XY_M; } if (strcmp (xgtype, "MULTIPOLYGONZM") == 0) { geom_type = "MULTIPOLYGON"; shp->EffectiveType = GAIA_MULTIPOLYGON; shp->EffectiveDims = GAIA_XY_Z_M; } } break; }; if (coerce2d) shp->EffectiveDims = GAIA_XY; switch (shp->EffectiveDims) { case GAIA_XY_Z: txt_dims = "XYZ"; break; case GAIA_XY_M: txt_dims = "XYM"; break; case GAIA_XY_Z_M: txt_dims = "XYZM"; break; default: txt_dims = "XY"; break; }; sql = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, %Q, %d, %Q, %Q)", table, geo_column, srid, geom_type, txt_dims); if (verbose) spatialite_e ("%s;\n", sql); ret = sqlite3_exec (sqlite, sql, NULL, 0, &errMsg); sqlite3_free (sql); if (ret != SQLITE_OK) { if (!err_msg) spatialite_e ("load shapefile error: <%s>\n", errMsg); else sprintf (err_msg, "load shapefile error: <%s>\n", errMsg); sqlite3_free (errMsg); sqlError = 1; goto clean_up; } if (spatial_index) { /* creating the Spatial Index */ sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, %Q)", table, geo_column); ret = sqlite3_exec (sqlite, sql, NULL, 0, &errMsg); sqlite3_free (sql); if (ret != SQLITE_OK) { if (!err_msg) spatialite_e ("load shapefile error: <%s>\n", errMsg); else sprintf (err_msg, "load shapefile error: <%s>\n", errMsg); sqlite3_free (errMsg); sqlError = 1; goto clean_up; } } } else { /* no Metadata */ if (shp->Shape == GAIA_SHP_POLYLINE || shp->Shape == GAIA_SHP_POLYLINEM || shp->Shape == GAIA_SHP_POLYLINEZ || shp->Shape == GAIA_SHP_POLYGON || shp->Shape == GAIA_SHP_POLYGONM || shp->Shape == GAIA_SHP_POLYGONZ) { /* / fixing anyway the Geometry type for / LINESTRING/MULTILINESTRING or / POLYGON/MULTIPOLYGON */ gaiaShpAnalyze (shp); } } /* preparing the INSERT INTO parametrerized statement */ gaiaOutBufferInitialize (&sql_statement); sql = sqlite3_mprintf ("INSERT INTO \"%s\" (\"%s\",", qtable, qpk_name); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); cnt = 0; dbf_field = shp->Dbf->First; while (dbf_field) { /* columns corresponding to some DBF attribute */ if (strcasecmp (pk_name, dbf_field->Name) == 0) { /* skipping the Primary Key field */ dbf_field = dbf_field->Next; cnt++; continue; } xname = gaiaDoubleQuotedSql (*(col_name + cnt++)); sql = sqlite3_mprintf ("\"%s\" ,", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); dbf_field = dbf_field->Next; } xname = gaiaDoubleQuotedSql (geo_column); /* the GEOMETRY column */ sql = sqlite3_mprintf ("\"%s\")\n VALUES (?", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); dbf_field = shp->Dbf->First; while (dbf_field) { /* column values */ if (strcasecmp (pk_name, dbf_field->Name) == 0) { /* skipping the Primary Key field */ dbf_field = dbf_field->Next; continue; } gaiaAppendToOutBuffer (&sql_statement, ", ?"); dbf_field = dbf_field->Next; } gaiaAppendToOutBuffer (&sql_statement, ", ?)"); /* the GEOMETRY column */ if (sql_statement.Error == 0 && sql_statement.Buffer != NULL) ret = sqlite3_prepare_v2 (sqlite, sql_statement.Buffer, strlen (sql_statement.Buffer), &stmt, NULL); else ret = SQLITE_ERROR; gaiaOutBufferReset (&sql_statement); if (ret != SQLITE_OK) { if (!err_msg) spatialite_e ("load shapefile error: <%s>\n", sqlite3_errmsg (sqlite)); else sprintf (err_msg, "load shapefile error: <%s>\n", sqlite3_errmsg (sqlite)); sqlError = 1; goto clean_up; } current_row = 0; while (1) { /* inserting rows from shapefile */ ret = gaiaReadShpEntity (shp, current_row, srid); if (!ret) { if (!(shp->LastError)) /* normal SHP EOF */ break; if (!err_msg) spatialite_e ("%s\n", shp->LastError); else sprintf (err_msg, "%s\n", shp->LastError); sqlError = 1; sqlite3_finalize (stmt); goto clean_up; } current_row++; /* binding query params */ sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); pk_set = 0; cnt = 0; dbf_field = shp->Dbf->First; while (dbf_field) { /* Primary Key value */ if (strcasecmp (pk_name, dbf_field->Name) == 0) { if (pk_type == SQLITE_TEXT) sqlite3_bind_text (stmt, 1, dbf_field->Value->TxtValue, strlen (dbf_field-> Value->TxtValue), SQLITE_STATIC); else if (pk_type == SQLITE_FLOAT) sqlite3_bind_double (stmt, 1, dbf_field->Value->DblValue); else sqlite3_bind_int64 (stmt, 1, dbf_field->Value->IntValue); pk_set = 1; } dbf_field = dbf_field->Next; } if (!pk_set) sqlite3_bind_int (stmt, 1, current_row); cnt = 0; dbf_field = shp->Dbf->First; while (dbf_field) { /* column values */ if (strcasecmp (pk_name, dbf_field->Name) == 0) { /* skipping the Primary Key field */ dbf_field = dbf_field->Next; continue; } if (!(dbf_field->Value)) sqlite3_bind_null (stmt, cnt + 2); else { switch (dbf_field->Value->Type) { case GAIA_INT_VALUE: sqlite3_bind_int64 (stmt, cnt + 2, dbf_field->Value->IntValue); break; case GAIA_DOUBLE_VALUE: sqlite3_bind_double (stmt, cnt + 2, dbf_field->Value->DblValue); break; case GAIA_TEXT_VALUE: sqlite3_bind_text (stmt, cnt + 2, dbf_field->Value->TxtValue, strlen (dbf_field->Value-> TxtValue), SQLITE_STATIC); break; default: sqlite3_bind_null (stmt, cnt + 2); break; } } cnt++; dbf_field = dbf_field->Next; } if (shp->Dbf->Geometry) { if (compressed) gaiaToCompressedBlobWkb (shp->Dbf->Geometry, &blob, &blob_size); else gaiaToSpatiaLiteBlobWkb (shp->Dbf->Geometry, &blob, &blob_size); sqlite3_bind_blob (stmt, cnt + 2, blob, blob_size, free); } else { /* handling a NULL-Geometry */ sqlite3_bind_null (stmt, cnt + 2); } ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { if (!err_msg) spatialite_e ("load shapefile error: <%s>\n", sqlite3_errmsg (sqlite)); else sprintf (err_msg, "load shapefile error: <%s>\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); sqlError = 1; goto clean_up; } } sqlite3_finalize (stmt); clean_up: if (qtable) free (qtable); if (qpk_name) free (qpk_name); gaiaFreeShapefile (shp); if (col_name) { /* releasing memory allocation for column names */ for (cnt = 0; cnt < col_cnt; cnt++) free (*(col_name + cnt)); free (col_name); } if (sqlError) { /* some error occurred - ROLLBACK */ if (verbose) spatialite_e ("ROLLBACK;\n"); ret = sqlite3_exec (sqlite, "ROLLBACK", NULL, 0, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("load shapefile error: <%s>\n", errMsg); sqlite3_free (errMsg); } if (rows) *rows = current_row; return 0; } else { /* ok - confirming pending transaction - COMMIT */ if (verbose) spatialite_e ("COMMIT;\n"); ret = sqlite3_exec (sqlite, "COMMIT", NULL, 0, &errMsg); if (ret != SQLITE_OK) { if (!err_msg) spatialite_e ("load shapefile error: <%s>\n", errMsg); else sprintf (err_msg, "load shapefile error: <%s>\n", errMsg); sqlite3_free (errMsg); return 0; } if (rows) *rows = current_row; if (verbose) spatialite_e ("\nInserted %d rows into '%s' from SHAPEFILE\n========\n", current_row, table); if (err_msg) sprintf (err_msg, "Inserted %d rows into '%s' from SHAPEFILE", current_row, table); return 1; } } #endif /* end ICONV (SHP) */ static void output_prj_file (sqlite3 * sqlite, char *path, char *table, char *column) { /* exporting [if possible] a .PRJ file */ char **results; int rows; int columns; int i; char *errMsg = NULL; int srid = -1; char *sql; int ret; int rs_srid = 0; int rs_srs_wkt = 0; int rs_srtext = 0; int has_srtext = 0; const char *name; char *srsWkt = NULL; FILE *out; /* step I: retrieving the SRID */ sql = sqlite3_mprintf ("SELECT srid FROM geometry_columns WHERE " "f_table_name = %Q AND f_geometry_column = %Q", table, column); ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, &errMsg); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("dump shapefile MetaData error: <%s>\n", errMsg); sqlite3_free (errMsg); return; } for (i = 1; i <= rows; i++) { srid = atoi (results[(i * columns) + 0]); } sqlite3_free_table (results); if (srid <= 0) { /* srid still undefined, so we'll read VIEWS_GEOMETRY_COLUMNS */ sql = sqlite3_mprintf ("SELECT srid FROM views_geometry_columns " "JOIN geometry_columns USING (f_table_name, f_geometry_column) " "WHERE view_name = %Q AND view_geometry = %Q", table, column); ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, &errMsg); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("dump shapefile MetaData error: <%s>\n", errMsg); sqlite3_free (errMsg); return; } for (i = 1; i <= rows; i++) { srid = atoi (results[(i * columns) + 0]); } sqlite3_free_table (results); } if (srid <= 0) return; /* step II: checking if the SRS_WKT or SRTEXT column actually exists */ ret = sqlite3_get_table (sqlite, "PRAGMA table_info(spatial_ref_sys)", &results, &rows, &columns, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("dump shapefile MetaData error: <%s>\n", errMsg); sqlite3_free (errMsg); return; } if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 1]; if (strcasecmp (name, "srid") == 0) rs_srid = 1; if (strcasecmp (name, "srs_wkt") == 0) rs_srs_wkt = 1; if (strcasecmp (name, "srtext") == 0) rs_srtext = 1; } } sqlite3_free_table (results); if (rs_srs_wkt == 1 || rs_srtext == 1) has_srtext = 1; if (rs_srid == 0 || has_srtext == 0) return; /* step III: fetching WKT SRS */ if (rs_srtext) { sql = sqlite3_mprintf ("SELECT srtext FROM spatial_ref_sys " "WHERE srid = %d AND srtext IS NOT NULL", srid); } else { sql = sqlite3_mprintf ("SELECT srs_wkt FROM spatial_ref_sys " "WHERE srid = %d AND srs_wkt IS NOT NULL", srid); } ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, &errMsg); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("dump shapefile MetaData error: <%s>\n", errMsg); sqlite3_free (errMsg); goto end; } if (rows < 1) ; else { for (i = 1; i <= rows; i++) { char *srs = results[(i * columns) + 0]; int len = strlen (srs); if (srsWkt) free (srsWkt); srsWkt = malloc (len + 1); strcpy (srsWkt, srs); } } sqlite3_free_table (results); if (srsWkt == NULL) goto end; /* step IV: generating the .PRJ file */ sql = sqlite3_mprintf ("%s.prj", path); out = fopen (sql, "wb"); sqlite3_free (sql); if (!out) goto end; fprintf (out, "%s\r\n", srsWkt); fclose (out); end: if (srsWkt) free (srsWkt); return; } #ifndef OMIT_ICONV /* ICONV enabled: supporting SHAPEFILE and DBF */ static int get_default_dbf_fields (sqlite3 * sqlite, const char *xtable, const char *db_prefix, const char *table_name, gaiaDbfListPtr * dbf_export_list) { /* creating DBF field definitions for an empty DBF */ int row = 0; char *sql; sqlite3_stmt *stmt; int ret; int offset = 0; gaiaDbfListPtr list = NULL; if (db_prefix != NULL && table_name != NULL) { char *xprefix = gaiaDoubleQuotedSql (db_prefix); char *xxtable = gaiaDoubleQuotedSql (table_name); sql = sqlite3_mprintf ("PRAGMA \"%s\".table_info(\"%s\")", xprefix, xxtable); free (xprefix); free (xxtable); } else sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xtable); /* / compiling SQL prepared statement */ list = gaiaAllocDbfList (); ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto sql_error; while (1) { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* processing a result set row */ int xtype = SQLITE_TEXT; int length = 60; char *name = (char *) sqlite3_column_text (stmt, 1); const char *type = (const char *) sqlite3_column_text (stmt, 2); if (strcasecmp (type, "INT") == 0 || strcasecmp (type, "INTEGER") == 0 || strcasecmp (type, "SMALLINT") == 0 || strcasecmp (type, "BIGINT") == 0 || strcasecmp (type, "TINYINT") == 0) xtype = SQLITE_INTEGER; if (strcasecmp (type, "DOUBLE") == 0 || strcasecmp (type, "REAL") == 0 || strcasecmp (type, "DOUBLE PRECISION") == 0 || strcasecmp (type, "NUMERIC") == 0 || strcasecmp (type, "FLOAT") == 0) xtype = SQLITE_FLOAT; if (strncasecmp (type, "VARCHAR(", 8) == 0) length = atoi (type + 8); if (strncasecmp (type, "CHAR(", 5) == 0) length = atoi (type + 5); if (xtype == SQLITE_FLOAT) { gaiaAddDbfField (list, name, 'N', offset, 19, 6); offset += 19; } else if (xtype == SQLITE_INTEGER) { gaiaAddDbfField (list, name, 'N', offset, 18, 0); offset += 18; } else { gaiaAddDbfField (list, name, 'C', offset, length, 0); offset += length; } row++; } else goto sql_error; } sqlite3_finalize (stmt); if (row == 0) goto sql_error; *dbf_export_list = list; return 1; sql_error: gaiaFreeDbfList (list); *dbf_export_list = NULL; return 0; } static gaiaVectorLayersListPtr recover_unregistered_geometry (sqlite3 * handle, const char *table, const char *geometry) { /* attempting to recover an unregistered Geometry */ int len; int error = 0; gaiaVectorLayersListPtr list; gaiaVectorLayerPtr lyr; /* allocating a VectorLayersList */ list = malloc (sizeof (gaiaVectorLayersList)); list->First = NULL; list->Last = NULL; list->Current = NULL; lyr = malloc (sizeof (gaiaVectorLayer)); lyr->LayerType = GAIA_VECTOR_UNKNOWN; len = strlen (table); lyr->TableName = malloc (len + 1); strcpy (lyr->TableName, table); len = strlen (geometry); lyr->GeometryName = malloc (len + 1); strcpy (lyr->GeometryName, geometry); lyr->Srid = 0; lyr->GeometryType = GAIA_VECTOR_UNKNOWN; lyr->Dimensions = GAIA_VECTOR_UNKNOWN; lyr->SpatialIndex = GAIA_SPATIAL_INDEX_NONE; lyr->ExtentInfos = NULL; lyr->AuthInfos = NULL; lyr->First = NULL; lyr->Last = NULL; lyr->Next = NULL; list->Current = NULL; if (list->First == NULL) list->First = lyr; if (list->Last != NULL) list->Last->Next = lyr; list->Last = lyr; if (!doComputeFieldInfos (handle, lyr->TableName, lyr->GeometryName, SPATIALITE_STATISTICS_LEGACY, lyr)) error = 1; if (list->First == NULL || error) { gaiaFreeVectorLayersList (list); return NULL; } return list; } static int compute_max_int_length (sqlite3_int64 min, sqlite3_int64 max) { /* determining the buffer size for some INT */ int pos_len = 0; int neg_len = 1; sqlite3_int64 value = max; while (value != 0) { pos_len++; value /= 10; } if (min >= 0) return pos_len; value = min; while (value != 0) { neg_len++; value /= 10; } if (neg_len > pos_len) return neg_len; return pos_len; } static int compute_max_dbl_length (double min, double max) { /* determining the buffer size for some DOUBLE */ int pos_len = 0; int neg_len = 1; sqlite3_int64 value; if (max >= 0.0) value = floor (max); else value = ceil (max); while (value != 0) { pos_len++; value /= 10; } if (min >= 0.0) return pos_len + 7; value = ceil (min); while (value != 0) { neg_len++; value /= 10; } if (neg_len > pos_len) return neg_len + 7; return pos_len + 7; } static void shp_parse_table_name (const char *tn, char **db_prefix, char **table_name) { /* attempting to extract an eventual DB prefix */ int i; int len = strlen (tn); int i_dot = -1; int l_db; int l_tbl; for (i = 0; i < len; i++) { if (tn[i] == '.') { i_dot = i; break; } } if (i_dot >= 1) { l_db = i_dot; l_tbl = len - (i_dot + 1); *db_prefix = malloc (l_db + 1); memset (*db_prefix, '\0', l_db + 1); memcpy (*db_prefix, tn, l_db); *table_name = malloc (l_tbl + 1); strcpy (*table_name, tn + i_dot + 1); return; } *table_name = malloc (len + 1); strcpy (*table_name, tn); } static int get_attached_layer_v4 (sqlite3 * handle, const char *db_prefix, const char *table, const char *geometry, gaiaVectorLayersListPtr list) { /* creating a VectorLayersList object - v.4.0.0 DB layout */ char *sql; int ret; sqlite3_stmt *stmt; int error = 0; char *xdb; /* querying the vector_layers view */ xdb = gaiaDoubleQuotedSql (db_prefix); sql = sqlite3_mprintf ("SELECT layer_type, table_name, geometry_column, geometry_type, " "srid, spatial_index_enabled FROM \"%s\".vector_layers " "WHERE Lower(table_name) = Lower(%Q) AND " "Lower(geometry_column) = Lower(%Q)", xdb, table, geometry); free (xdb); /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { error = 1; goto stop; } while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* processing a VectorLayer row */ const char *layer_type = (const char *) sqlite3_column_text (stmt, 0); const char *table_name = (const char *) sqlite3_column_text (stmt, 1); const char *geometry_column = (const char *) sqlite3_column_text (stmt, 2); int geometry_type = sqlite3_column_int (stmt, 3); int srid = sqlite3_column_int (stmt, 4); int spatial_index = sqlite3_column_int (stmt, 5); addVectorLayer (list, layer_type, table_name, geometry_column, geometry_type, srid, spatial_index); } else error = 1; } ret = sqlite3_finalize (stmt); stop: if (error) return 0; /* querying the vector_layers_statistics view */ xdb = gaiaDoubleQuotedSql (db_prefix); sql = sqlite3_mprintf ("SELECT table_name, geometry_column, row_count, extent_min_x, " "extent_min_y, extent_max_x, extent_max_y FROM \"%s\".vector_layers_statistics " "WHERE Lower(table_name) = Lower(%Q) AND " "Lower(geometry_column) = Lower(%Q)", xdb, table, geometry); free (xdb); /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { error = 1; goto stop2; } while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* processing a VectorLayer row */ int is_null = 0; const char *table_name = (const char *) sqlite3_column_text (stmt, 0); const char *geometry_column = (const char *) sqlite3_column_text (stmt, 1); int count; double min_x; double min_y; double max_x; double max_y; if (sqlite3_column_type (stmt, 2) == SQLITE_NULL) is_null = 1; else count = sqlite3_column_int (stmt, 2); if (sqlite3_column_type (stmt, 3) == SQLITE_NULL) is_null = 1; else min_x = sqlite3_column_double (stmt, 3); if (sqlite3_column_type (stmt, 4) == SQLITE_NULL) is_null = 1; else min_y = sqlite3_column_double (stmt, 4); if (sqlite3_column_type (stmt, 5) == SQLITE_NULL) is_null = 1; else max_x = sqlite3_column_double (stmt, 5); if (sqlite3_column_type (stmt, 6) == SQLITE_NULL) is_null = 1; else max_y = sqlite3_column_double (stmt, 6); if (!is_null) addVectorLayerExtent (list, table_name, geometry_column, count, min_x, min_y, max_x, max_y); } } ret = sqlite3_finalize (stmt); stop2: /* querying the vector_layers_field_infos view */ xdb = gaiaDoubleQuotedSql (db_prefix); sql = sqlite3_mprintf ("SELECT table_name, geometry_column, ordinal, column_name, " "null_values, integer_values, double_values, text_values, blob_values," "max_size, integer_min, integer_max, double_min, double_max " "FROM \"%s\".vector_layers_field_infos " "WHERE Lower(table_name) = Lower(%Q) AND " "Lower(geometry_column) = Lower(%Q)", xdb, table, geometry); free (xdb); /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { error = 1; goto stop4; } while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* processing a VectorLayer row */ int null_max_size = 0; int null_int_range = 0; int null_double_range = 0; int max_size; sqlite3_int64 integer_min; sqlite3_int64 integer_max; double double_min; double double_max; const char *table_name = (const char *) sqlite3_column_text (stmt, 0); const char *geometry_column = (const char *) sqlite3_column_text (stmt, 1); int ordinal = sqlite3_column_int (stmt, 2); const char *column_name = (const char *) sqlite3_column_text (stmt, 3); int null_values = sqlite3_column_int (stmt, 4); int integer_values = sqlite3_column_int (stmt, 5); int double_values = sqlite3_column_int (stmt, 6); int text_values = sqlite3_column_int (stmt, 7); int blob_values = sqlite3_column_int (stmt, 8); if (sqlite3_column_type (stmt, 9) == SQLITE_NULL) null_max_size = 1; else max_size = sqlite3_column_int (stmt, 9); if (sqlite3_column_type (stmt, 10) == SQLITE_NULL || sqlite3_column_type (stmt, 11) == SQLITE_NULL) null_int_range = 1; else { integer_min = sqlite3_column_int64 (stmt, 10); integer_max = sqlite3_column_int64 (stmt, 11); } if (sqlite3_column_type (stmt, 12) == SQLITE_NULL || sqlite3_column_type (stmt, 13) == SQLITE_NULL) null_double_range = 1; else { double_min = sqlite3_column_double (stmt, 12); double_max = sqlite3_column_double (stmt, 13); } addLayerAttributeField (list, table_name, geometry_column, ordinal, column_name, null_values, integer_values, double_values, text_values, blob_values, null_max_size, max_size, null_int_range, &integer_min, &integer_max, null_double_range, double_min, double_max); } } ret = sqlite3_finalize (stmt); stop4: if (error) return 0; return 1; } static int check_spatial_metadata (const void *handle, const char *db_prefix) { /* internal utility function: / / 0 - if no valid SpatialMetaData where found / 1 - if SpatiaLite-like (legacy) SpatialMetadata where found / 2 - if FDO-OGR-like SpatialMetadata where found / 3 - if SpatiaLite-like (current) SpatialMetadata where found / */ sqlite3 *sqlite = (sqlite3 *) handle; int spatialite_legacy_rs = 0; int spatialite_rs = 0; int fdo_rs = 0; int spatialite_legacy_gc = 0; int spatialite_gc = 0; int fdo_gc = 0; int rs_srid = 0; int auth_name = 0; int auth_srid = 0; int srtext = 0; int ref_sys_name = 0; int proj4text = 0; int f_table_name = 0; int f_geometry_column = 0; int geometry_type = 0; int coord_dimension = 0; int gc_srid = 0; int geometry_format = 0; int type = 0; int spatial_index_enabled = 0; char *sql; int ret; const char *name; int i; char **results; int rows; int columns; char *xdb; /* checking the GEOMETRY_COLUMNS table */ xdb = gaiaDoubleQuotedSql (db_prefix); sql = sqlite3_mprintf ("PRAGMA \"%s\".table_info(geometry_columns)", xdb); free (xdb); ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto unknown; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 1]; if (strcasecmp (name, "f_table_name") == 0) f_table_name = 1; if (strcasecmp (name, "f_geometry_column") == 0) f_geometry_column = 1; if (strcasecmp (name, "geometry_type") == 0) geometry_type = 1; if (strcasecmp (name, "coord_dimension") == 0) coord_dimension = 1; if (strcasecmp (name, "srid") == 0) gc_srid = 1; if (strcasecmp (name, "geometry_format") == 0) geometry_format = 1; if (strcasecmp (name, "type") == 0) type = 1; if (strcasecmp (name, "spatial_index_enabled") == 0) spatial_index_enabled = 1; } } sqlite3_free_table (results); if (f_table_name && f_geometry_column && type && coord_dimension && gc_srid && spatial_index_enabled) spatialite_legacy_gc = 1; if (f_table_name && f_geometry_column && geometry_type && coord_dimension && gc_srid && spatial_index_enabled) spatialite_gc = 1; if (f_table_name && f_geometry_column && geometry_type && coord_dimension && gc_srid && geometry_format) fdo_gc = 1; /* checking the SPATIAL_REF_SYS table */ xdb = gaiaDoubleQuotedSql (db_prefix); sql = sqlite3_mprintf ("PRAGMA \"%s\".table_info(spatial_ref_sys)", xdb); free (xdb); ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto unknown; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 1]; if (strcasecmp (name, "srid") == 0) rs_srid = 1; if (strcasecmp (name, "auth_name") == 0) auth_name = 1; if (strcasecmp (name, "auth_srid") == 0) auth_srid = 1; if (strcasecmp (name, "srtext") == 0) srtext = 1; if (strcasecmp (name, "ref_sys_name") == 0) ref_sys_name = 1; if (strcasecmp (name, "proj4text") == 0) proj4text = 1; if (strcasecmp (name, "srtext") == 0) srtext = 1; } } sqlite3_free_table (results); if (rs_srid && auth_name && auth_srid && ref_sys_name && proj4text && srtext) spatialite_rs = 1; if (rs_srid && auth_name && auth_srid && ref_sys_name && proj4text) spatialite_legacy_rs = 1; if (rs_srid && auth_name && auth_srid && srtext) fdo_rs = 1; /* verifying the MetaData format */ if (spatialite_legacy_gc && spatialite_legacy_rs) return 1; if (fdo_gc && fdo_rs) return 2; if (spatialite_gc && spatialite_rs) return 3; unknown: return 0; } static int get_attached_table_layer_legacy (sqlite3 * handle, const char *db_prefix, const char *table, const char *geometry, gaiaVectorLayersListPtr list) { /* fetching Table-based geometries */ int ret; char *sql; const char *name; int i; char **results; int rows; int columns; int f_table = 0; int f_geometry = 0; int type = 0; int dims = 0; int srid = 0; int spatial_index = 0; sqlite3_stmt *stmt; int error = 0; char *xdb; /* checking the GEOMETRY_COLUMN table */ xdb = gaiaDoubleQuotedSql (db_prefix); sql = sqlite3_mprintf ("PRAGMA \"%s\".table_info(geometry_columns)", xdb); free (xdb); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 1]; if (strcasecmp (name, "f_table_name") == 0) f_table = 1; if (strcasecmp (name, "f_geometry_column") == 0) f_geometry = 1; if (strcasecmp (name, "type") == 0) type = 1; if (strcasecmp (name, "coord_dimension") == 0) dims = 1; if (strcasecmp (name, "srid") == 0) srid = 1; if (strcasecmp (name, "spatial_index_enabled") == 0) spatial_index = 1; } } sqlite3_free_table (results); if (f_table && f_geometry && type && dims && srid && spatial_index) ; else return 1; xdb = gaiaDoubleQuotedSql (db_prefix); sql = sqlite3_mprintf ("SELECT f_table_name, f_geometry_column, type, coord_dimension, " "srid, spatial_index_enabled FROM \"%s\".geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", xdb, table, geometry); free (xdb); /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { error = 1; goto stop; } while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* processing a VectorLayer row */ const char *table_name = (const char *) sqlite3_column_text (stmt, 0); const char *geometry_column = (const char *) sqlite3_column_text (stmt, 1); const char *type = (const char *) sqlite3_column_text (stmt, 2); const char *dims = (const char *) sqlite3_column_text (stmt, 3); int srid = sqlite3_column_int (stmt, 4); int spatial_index = sqlite3_column_int (stmt, 5); int geometry_type = -1; if (strcasecmp (type, "POINT") == 0) geometry_type = 1; if (strcasecmp (type, "LINESTRING") == 0) geometry_type = 2; if (strcasecmp (type, "POLYGON") == 0) geometry_type = 3; if (strcasecmp (type, "MULTIPOINT") == 0) geometry_type = 4; if (strcasecmp (type, "MULTILINESTRING") == 0) geometry_type = 5; if (strcasecmp (type, "MULTIPOLYGON") == 0) geometry_type = 6; if (strcasecmp (type, "GEOMETRYCOLLECTION") == 0) geometry_type = 7; if (strcasecmp (type, "GEOMETRY") == 0) geometry_type = 0; if (strcasecmp (dims, "XYZ") == 0 || strcasecmp (dims, "3") == 0) geometry_type += 1000; if (strcasecmp (dims, "XYM") == 0) geometry_type += 2000; if (strcasecmp (dims, "XYZM") == 0 || strcasecmp (dims, "4") == 0) geometry_type += 3000; addVectorLayer (list, "SpatialTable", table_name, geometry_column, geometry_type, srid, spatial_index); } else error = 1; } ret = sqlite3_finalize (stmt); stop: if (error) return 0; return 1; } static int get_attached_view_layer_legacy (sqlite3 * handle, const char *db_prefix, const char *table, const char *geometry, gaiaVectorLayersListPtr list) { /* fetching View-based geometries */ int ret; char *sql; const char *name; int i; char **results; int rows; int columns; int f_table = 0; int f_geometry = 0; int type = 0; int dims = 0; int srid = 0; int spatial_index = 0; int view_name = 0; int view_geometry = 0; int fvw_table = 0; int fvw_geometry = 0; sqlite3_stmt *stmt; int error = 0; char *xdb; /* checking the GEOMETRY_COLUMN table */ xdb = gaiaDoubleQuotedSql (db_prefix); sql = sqlite3_mprintf ("PRAGMA \"%s\".table_info(geometry_columns)", xdb); free (xdb); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 1]; if (strcasecmp (name, "f_table_name") == 0) f_table = 1; if (strcasecmp (name, "f_geometry_column") == 0) f_geometry = 1; if (strcasecmp (name, "type") == 0) type = 1; if (strcasecmp (name, "coord_dimension") == 0) dims = 1; if (strcasecmp (name, "srid") == 0) srid = 1; if (strcasecmp (name, "spatial_index_enabled") == 0) spatial_index = 1; } } sqlite3_free_table (results); if (f_table && f_geometry && type && dims && srid && spatial_index) ; else return 1; /* checking the VIEWS_GEOMETRY_COLUMN table */ xdb = gaiaDoubleQuotedSql (db_prefix); sql = sqlite3_mprintf ("PRAGMA \"%s\".table_info(views_geometry_columns)", xdb); free (xdb); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 1]; if (strcasecmp (name, "view_name") == 0) view_name = 1; if (strcasecmp (name, "view_geometry") == 0) view_geometry = 1; if (strcasecmp (name, "f_table_name") == 0) fvw_table = 1; if (strcasecmp (name, "f_geometry_column") == 0) fvw_geometry = 1; } } sqlite3_free_table (results); if (view_name && view_geometry && fvw_table && fvw_geometry) ; else return 1; xdb = gaiaDoubleQuotedSql (db_prefix); sql = sqlite3_mprintf ("SELECT a.view_name, a.view_geometry, b.type, b.coord_dimension, " "b.srid, b.spatial_index_enabled FROM \"%s\".views_geometry_columns AS a " "JOIN \"%s\".geometry_columns AS b ON (Lower(a.f_table_name) = Lower(b.f_table_name) " "AND Lower(a.f_geometry_column) = Lower(b.f_geometry_column)) " "WHERE Lower(a.view_name) = Lower(%Q) AND " "Lower(a.view_geometry) = Lower(%Q)", xdb, xdb, table, geometry); free (xdb); /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { error = 1; goto stop; } while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* processing a VectorLayer row */ const char *table_name = (const char *) sqlite3_column_text (stmt, 0); const char *geometry_column = (const char *) sqlite3_column_text (stmt, 1); const char *type = (const char *) sqlite3_column_text (stmt, 2); const char *dims = (const char *) sqlite3_column_text (stmt, 3); int srid = sqlite3_column_int (stmt, 4); int spatial_index = sqlite3_column_int (stmt, 5); int geometry_type = -1; if (strcasecmp (type, "POINT") == 0) geometry_type = 1; if (strcasecmp (type, "LINESTRING") == 0) geometry_type = 2; if (strcasecmp (type, "POLYGON") == 0) geometry_type = 3; if (strcasecmp (type, "MULTIPOINT") == 0) geometry_type = 4; if (strcasecmp (type, "MULTILINESTRING") == 0) geometry_type = 5; if (strcasecmp (type, "MULTIPOLYGON") == 0) geometry_type = 6; if (strcasecmp (type, "GEOMETRYCOLLECTION") == 0) geometry_type = 7; if (strcasecmp (type, "GEOMETRY") == 0) geometry_type = 0; if (strcasecmp (dims, "XYZ") == 0 || strcasecmp (dims, "3") == 0) geometry_type += 1000; if (strcasecmp (dims, "XYM") == 0) geometry_type += 2000; if (strcasecmp (dims, "XYZM") == 0 || strcasecmp (dims, "4") == 0) geometry_type += 3000; addVectorLayer (list, "SpatialView", table_name, geometry_column, geometry_type, srid, spatial_index); } else error = 1; } ret = sqlite3_finalize (stmt); stop: if (error) return 0; return 1; } static int get_attached_table_extent_legacy (sqlite3 * handle, const char *db_prefix, const char *table, const char *geometry, gaiaVectorLayersListPtr list) { /* fetching Table-based extents */ int ret; char *sql; const char *name; int i; char **results; int rows; int columns; int f_table = 0; int f_geometry = 0; int count = 0; int minx = 0; int miny = 0; int maxx = 0; int maxy = 0; sqlite3_stmt *stmt; char *xdb; /* checking the LAYER_STATISTICS table */ xdb = gaiaDoubleQuotedSql (db_prefix); sql = sqlite3_mprintf ("PRAGMA \"%s\".table_info(layer_statistics)", xdb); free (xdb); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 1]; if (strcasecmp (name, "table_name") == 0) f_table = 1; if (strcasecmp (name, "geometry_column") == 0) f_geometry = 1; if (strcasecmp (name, "row_count") == 0) count = 1; if (strcasecmp (name, "extent_min_x") == 0) minx = 1; if (strcasecmp (name, "extent_min_y") == 0) miny = 1; if (strcasecmp (name, "extent_max_x") == 0) maxx = 1; if (strcasecmp (name, "extent_max_y") == 0) maxy = 1; } } sqlite3_free_table (results); if (f_table && f_geometry && count && minx && miny && maxx && maxy) ; else return 1; /* querying the layer_statistics table */ xdb = gaiaDoubleQuotedSql (db_prefix); sql = sqlite3_mprintf ("SELECT table_name, geometry_column, row_count, extent_min_x, " "extent_min_y, extent_max_x, extent_max_y FROM \"%s\".layer_statistics " "WHERE Lower(table_name) = Lower(%Q) AND " "Lower(geometry_column) = Lower(%Q)", xdb, table, geometry); free (xdb); /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto stop; while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* processing a VectorLayer row */ int is_null = 0; const char *table_name = (const char *) sqlite3_column_text (stmt, 0); const char *geometry_column = (const char *) sqlite3_column_text (stmt, 1); int count; double min_x; double min_y; double max_x; double max_y; if (sqlite3_column_type (stmt, 2) == SQLITE_NULL) is_null = 1; else count = sqlite3_column_int (stmt, 2); if (sqlite3_column_type (stmt, 3) == SQLITE_NULL) is_null = 1; else min_x = sqlite3_column_double (stmt, 3); if (sqlite3_column_type (stmt, 4) == SQLITE_NULL) is_null = 1; else min_y = sqlite3_column_double (stmt, 4); if (sqlite3_column_type (stmt, 5) == SQLITE_NULL) is_null = 1; else max_x = sqlite3_column_double (stmt, 5); if (sqlite3_column_type (stmt, 6) == SQLITE_NULL) is_null = 1; else max_y = sqlite3_column_double (stmt, 6); if (!is_null) addVectorLayerExtent (list, table_name, geometry_column, count, min_x, min_y, max_x, max_y); } } ret = sqlite3_finalize (stmt); stop: return 1; } static int get_attached_view_extent_legacy (sqlite3 * handle, const char *db_prefix, const char *table, const char *geometry, gaiaVectorLayersListPtr list) { /* fetching View-based extents */ int ret; char *sql; const char *name; int i; char **results; int rows; int columns; int f_table = 0; int f_geometry = 0; int count = 0; int minx = 0; int miny = 0; int maxx = 0; int maxy = 0; sqlite3_stmt *stmt; char *xdb; /* checking the VIEWS_LAYER_STATISTICS table */ xdb = gaiaDoubleQuotedSql (db_prefix); sql = sqlite3_mprintf ("PRAGMA \"%s\".table_info(views_layer_statistics)", xdb); free (xdb); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 1]; if (strcasecmp (name, "view_name") == 0) f_table = 1; if (strcasecmp (name, "view_geometry") == 0) f_geometry = 1; if (strcasecmp (name, "row_count") == 0) count = 1; if (strcasecmp (name, "extent_min_x") == 0) minx = 1; if (strcasecmp (name, "extent_min_y") == 0) miny = 1; if (strcasecmp (name, "extent_max_x") == 0) maxx = 1; if (strcasecmp (name, "extent_max_y") == 0) maxy = 1; } } sqlite3_free_table (results); if (f_table && f_geometry && count && minx && miny && maxx && maxy) ; else return 1; /* querying the views_layer_statistics table */ xdb = gaiaDoubleQuotedSql (db_prefix); sql = sqlite3_mprintf ("SELECT view_name, view_geometry, row_count, extent_min_x, " "extent_min_y, extent_max_x, extent_max_y FROM \"%s\".views_layer_statistics " "WHERE Lower(view_name) = Lower(%Q) AND " "Lower(view_geometry) = Lower(%Q)", xdb, table, geometry); free (xdb); /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto stop; while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* processing a VectorLayer row */ int is_null = 0; const char *table_name = (const char *) sqlite3_column_text (stmt, 0); const char *geometry_column = (const char *) sqlite3_column_text (stmt, 1); int count; double min_x; double min_y; double max_x; double max_y; if (sqlite3_column_type (stmt, 2) == SQLITE_NULL) is_null = 1; else count = sqlite3_column_int (stmt, 2); if (sqlite3_column_type (stmt, 3) == SQLITE_NULL) is_null = 1; else min_x = sqlite3_column_double (stmt, 3); if (sqlite3_column_type (stmt, 4) == SQLITE_NULL) is_null = 1; else min_y = sqlite3_column_double (stmt, 4); if (sqlite3_column_type (stmt, 5) == SQLITE_NULL) is_null = 1; else max_x = sqlite3_column_double (stmt, 5); if (sqlite3_column_type (stmt, 6) == SQLITE_NULL) is_null = 1; else max_y = sqlite3_column_double (stmt, 6); if (!is_null) addVectorLayerExtent (list, table_name, geometry_column, count, min_x, min_y, max_x, max_y); } } ret = sqlite3_finalize (stmt); stop: return 1; } static gaiaVectorLayersListPtr attached_layer (sqlite3 * handle, const char *db_prefix, const char *table, const char *geometry) { /* attempting to support a "layer" from within an attached DB */ gaiaVectorLayersListPtr list; int metadata_version; list = malloc (sizeof (gaiaVectorLayersList)); list->First = NULL; list->Last = NULL; list->Current = NULL; metadata_version = check_spatial_metadata (handle, db_prefix); if (metadata_version == 3) { /* current metadata style >= v.4.0.0 */ if (!get_attached_layer_v4 (handle, db_prefix, table, geometry, list)) { gaiaFreeVectorLayersList (list); return NULL; } if (list->First == NULL) { gaiaFreeVectorLayersList (list); return NULL; } return list; } /* legacy metadata style <= v.3.x.x */ if (!get_attached_table_layer_legacy (handle, db_prefix, table, geometry, list)) goto error; if (!get_attached_view_layer_legacy (handle, db_prefix, table, geometry, list)) goto error; if (!get_attached_table_extent_legacy (handle, db_prefix, table, geometry, list)) goto error; if (!get_attached_view_extent_legacy (handle, db_prefix, table, geometry, list)) goto error; if (list->First == NULL) { gaiaFreeVectorLayersList (list); return NULL; } return list; error: gaiaFreeVectorLayersList (list); return NULL; } SPATIALITE_DECLARE int dump_shapefile (sqlite3 * sqlite, char *table, char *column, char *shp_path, char *charset, char *geom_type, int verbose, int *xrows, char *err_msg) { /* SHAPEFILE dump */ char *sql; char *dummy; int shape = -1; int len; int ret; sqlite3_stmt *stmt; int n_cols = 0; int offset = 0; int i; int rows = 0; char buf[256]; char *xtable; char *xcolumn; const void *blob_value; gaiaShapefilePtr shp = NULL; gaiaDbfListPtr dbf_list; gaiaDbfListPtr dbf_write; gaiaDbfFieldPtr dbf_field; gaiaVectorLayerPtr lyr = NULL; gaiaLayerAttributeFieldPtr fld; gaiaVectorLayersListPtr list; char *db_prefix = NULL; char *table_name = NULL; char *xprefix; char *xxtable; struct auxdbf_list *auxdbf = NULL; if (geom_type) { /* normalizing required geometry type */ if (strcasecmp ((char *) geom_type, "POINT") == 0) shape = GAIA_POINT; if (strcasecmp ((char *) geom_type, "LINESTRING") == 0) shape = GAIA_LINESTRING; if (strcasecmp ((char *) geom_type, "POLYGON") == 0) shape = GAIA_POLYGON; if (strcasecmp ((char *) geom_type, "MULTIPOINT") == 0) shape = GAIA_POINT; } /* is the datasource a genuine registered Geometry ?? */ list = gaiaGetVectorLayersList (sqlite, table, column, GAIA_VECTORS_LIST_PESSIMISTIC); if (list == NULL) { /* attempting to recover an unregistered Geometry */ list = recover_unregistered_geometry (sqlite, table, column); } if (list == NULL) { /* attempting to enucleate an eventual DB-prefix */ shp_parse_table_name (table, &db_prefix, &table_name); if (db_prefix != NULL && table_name != NULL) list = attached_layer (sqlite, db_prefix, table_name, column); } if (list != NULL) lyr = list->First; if (lyr == NULL) { gaiaFreeVectorLayersList (list); if (!err_msg) spatialite_e ("Unable to detect GeometryType for \"%s\".\"%s\" ... sorry\n", table, column); else sprintf (err_msg, "Unable to detect GeometryType for \"%s\".\"%s\" ... sorry\n", table, column); return 0; } switch (lyr->GeometryType) { case GAIA_VECTOR_POINT: switch (lyr->Dimensions) { case GAIA_XY: shape = GAIA_POINT; break; case GAIA_XY_Z: shape = GAIA_POINTZ; break; case GAIA_XY_M: shape = GAIA_POINTM; break; case GAIA_XY_Z_M: shape = GAIA_POINTZM; break; }; break; case GAIA_VECTOR_LINESTRING: switch (lyr->Dimensions) { case GAIA_XY: shape = GAIA_LINESTRING; break; case GAIA_XY_Z: shape = GAIA_LINESTRINGZ; break; case GAIA_XY_M: shape = GAIA_LINESTRINGM; break; case GAIA_XY_Z_M: shape = GAIA_LINESTRINGZM; break; }; break; case GAIA_VECTOR_POLYGON: switch (lyr->Dimensions) { case GAIA_XY: shape = GAIA_POLYGON; break; case GAIA_XY_Z: shape = GAIA_POLYGONZ; break; case GAIA_XY_M: shape = GAIA_POLYGONM; break; case GAIA_XY_Z_M: shape = GAIA_POLYGONZM; break; }; break; case GAIA_VECTOR_MULTIPOINT: switch (lyr->Dimensions) { case GAIA_XY: shape = GAIA_MULTIPOINT; break; case GAIA_XY_Z: shape = GAIA_MULTIPOINTZ; break; case GAIA_XY_M: shape = GAIA_MULTIPOINTM; break; case GAIA_XY_Z_M: shape = GAIA_MULTIPOINTZM; break; }; break; case GAIA_VECTOR_MULTILINESTRING: switch (lyr->Dimensions) { case GAIA_XY: shape = GAIA_MULTILINESTRING; break; case GAIA_XY_Z: shape = GAIA_MULTILINESTRINGZ; break; case GAIA_XY_M: shape = GAIA_MULTILINESTRINGM; break; case GAIA_XY_Z_M: shape = GAIA_MULTILINESTRINGZM; break; }; break; case GAIA_VECTOR_MULTIPOLYGON: switch (lyr->Dimensions) { case GAIA_XY: shape = GAIA_MULTIPOLYGON; break; case GAIA_XY_Z: shape = GAIA_MULTIPOLYGONZ; break; case GAIA_XY_M: shape = GAIA_MULTIPOLYGONM; break; case GAIA_XY_Z_M: shape = GAIA_MULTIPOLYGONZM; break; }; break; }; if (shape < 0) { if (!err_msg) spatialite_e ("Unable to detect GeometryType for \"%s\".\"%s\" ... sorry\n", table, column); else sprintf (err_msg, "Unable to detect GeometryType for \"%s\".\"%s\" ... sorry\n", table, column); return 0; } if (verbose) spatialite_e ("========\nDumping SQLite table '%s' into shapefile at '%s'\n", table, shp_path); /* preparing SQL statement */ xtable = gaiaDoubleQuotedSql (table); xcolumn = gaiaDoubleQuotedSql (column); if (shape == GAIA_LINESTRING || shape == GAIA_LINESTRINGZ || shape == GAIA_LINESTRINGM || shape == GAIA_LINESTRINGZM || shape == GAIA_MULTILINESTRING || shape == GAIA_MULTILINESTRINGZ || shape == GAIA_MULTILINESTRINGM || shape == GAIA_MULTILINESTRINGZM) { if (db_prefix != NULL && table_name != NULL) { xprefix = gaiaDoubleQuotedSql (db_prefix); xxtable = gaiaDoubleQuotedSql (table_name); sql = sqlite3_mprintf ("SELECT * FROM \"%s\".\"%s\" WHERE GeometryAliasType(\"%s\") = " "'LINESTRING' OR GeometryAliasType(\"%s\") = 'MULTILINESTRING' " "OR \"%s\" IS NULL", xprefix, xxtable, xcolumn, xcolumn, xcolumn); free (xprefix); free (xxtable); } else sql = sqlite3_mprintf ("SELECT * FROM \"%s\" WHERE GeometryAliasType(\"%s\") = " "'LINESTRING' OR GeometryAliasType(\"%s\") = 'MULTILINESTRING' " "OR \"%s\" IS NULL", xtable, xcolumn, xcolumn, xcolumn); } else if (shape == GAIA_POLYGON || shape == GAIA_POLYGONZ || shape == GAIA_POLYGONM || shape == GAIA_POLYGONZM || shape == GAIA_MULTIPOLYGON || shape == GAIA_MULTIPOLYGONZ || shape == GAIA_MULTIPOLYGONM || shape == GAIA_MULTIPOLYGONZM) { if (db_prefix != NULL && table_name != NULL) { xprefix = gaiaDoubleQuotedSql (db_prefix); xxtable = gaiaDoubleQuotedSql (table_name); sql = sqlite3_mprintf ("SELECT * FROM \"%s\".\"%s\" WHERE GeometryAliasType(\"%s\") = " "'POLYGON' OR GeometryAliasType(\"%s\") = 'MULTIPOLYGON'" "OR \"%s\" IS NULL", xprefix, xxtable, xcolumn, xcolumn, xcolumn); free (xprefix); free (xxtable); } else sql = sqlite3_mprintf ("SELECT * FROM \"%s\" WHERE GeometryAliasType(\"%s\") = " "'POLYGON' OR GeometryAliasType(\"%s\") = 'MULTIPOLYGON'" "OR \"%s\" IS NULL", xtable, xcolumn, xcolumn, xcolumn); } else if (shape == GAIA_MULTIPOINT || shape == GAIA_MULTIPOINTZ || shape == GAIA_MULTIPOINTM || shape == GAIA_MULTIPOINTZM) { if (db_prefix != NULL && table_name != NULL) { xprefix = gaiaDoubleQuotedSql (db_prefix); xxtable = gaiaDoubleQuotedSql (table_name); sql = sqlite3_mprintf ("SELECT * FROM \"%s\".\"%s\" WHERE GeometryAliasType(\"%s\") = " "'POINT' OR GeometryAliasType(\"%s\") = 'MULTIPOINT'" "OR \"%s\" IS NULL", xprefix, xxtable, xcolumn, xcolumn, xcolumn); free (xprefix); free (xxtable); } else sql = sqlite3_mprintf ("SELECT * FROM \"%s\" WHERE GeometryAliasType(\"%s\") = " "'POINT' OR GeometryAliasType(\"%s\") = 'MULTIPOINT'" "OR \"%s\" IS NULL", xtable, xcolumn, xcolumn, xcolumn); } else { if (db_prefix != NULL && table_name != NULL) { xprefix = gaiaDoubleQuotedSql (db_prefix); xxtable = gaiaDoubleQuotedSql (table_name); sql = sqlite3_mprintf ("SELECT * FROM \"%s\".\"%s\" WHERE GeometryAliasType(\"%s\") = " "'POINT' OR \"%s\" IS NULL", xprefix, xxtable, xcolumn, xcolumn); free (xprefix); free (xxtable); } else sql = sqlite3_mprintf ("SELECT * FROM \"%s\" WHERE GeometryAliasType(\"%s\") = " "'POINT' OR \"%s\" IS NULL", xtable, xcolumn, xcolumn); } /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto sql_error; if (lyr->First == NULL) { /* the datasource is probably empty - zero rows */ if (get_default_dbf_fields (sqlite, xtable, db_prefix, table_name, &dbf_list)) goto continue_exporting; } /* preparing the DBF fields list */ dbf_list = gaiaAllocDbfList (); offset = 0; fld = lyr->First; while (fld) { int sql_type = SQLITE_NULL; int max_len; if (strcasecmp (fld->AttributeFieldName, column) == 0) { /* ignoring the Geometry itself */ fld = fld->Next; continue; } if (fld->IntegerValuesCount > 0 && fld->DoubleValuesCount == 0 && fld->TextValuesCount == 0) { sql_type = SQLITE_INTEGER; max_len = 18; if (fld->IntRange) max_len = compute_max_int_length (fld->IntRange->MinValue, fld->IntRange->MaxValue); } if (fld->DoubleValuesCount > 0 && fld->TextValuesCount == 0) { sql_type = SQLITE_FLOAT; max_len = 19; if (fld->DoubleRange) max_len = compute_max_dbl_length (fld->DoubleRange->MinValue, fld->DoubleRange->MaxValue); } if (fld->TextValuesCount > 0) { sql_type = SQLITE_TEXT; max_len = 255; if (fld->MaxSize) max_len = fld->MaxSize->MaxSize; } if (sql_type == SQLITE_NULL) { /* considering as TEXT(1) */ sql_type = SQLITE_TEXT; max_len = 1; } /* adding a DBF field */ if (sql_type == SQLITE_TEXT) { if (max_len == 0) /* avoiding ZERO-length fields */ max_len = 1; gaiaAddDbfField (dbf_list, fld->AttributeFieldName, 'C', offset, max_len, 0); offset += max_len; } if (sql_type == SQLITE_FLOAT) { if (max_len > 19) max_len = 19; if (max_len < 8) max_len = 8; gaiaAddDbfField (dbf_list, fld->AttributeFieldName, 'N', offset, max_len, 6); offset += max_len; } if (sql_type == SQLITE_INTEGER) { if (max_len > 18) max_len = 18; gaiaAddDbfField (dbf_list, fld->AttributeFieldName, 'N', offset, max_len, 0); offset += max_len; } fld = fld->Next; } /* resetting SQLite query */ continue_exporting: ret = sqlite3_reset (stmt); if (ret != SQLITE_OK) goto sql_error; /* trying to open shapefile files */ shp = gaiaAllocShapefile (); gaiaOpenShpWrite (shp, shp_path, shape, dbf_list, "UTF-8", charset); if (!(shp->Valid)) goto no_file; /* trying to export the .PRJ file */ output_prj_file (sqlite, shp_path, table, column); while (1) { /* scrolling the result set to dump data into shapefile */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { if (n_cols == 0) n_cols = sqlite3_column_count (stmt); rows++; dbf_write = gaiaCloneDbfEntity (dbf_list); auxdbf = alloc_auxdbf (dbf_write); for (i = 0; i < n_cols; i++) { if (strcasecmp ((char *) column, (char *) sqlite3_column_name (stmt, i)) == 0) { /* this one is the internal BLOB encoded GEOMETRY to be exported */ if (sqlite3_column_type (stmt, i) != SQLITE_BLOB) { /* this one is a NULL Geometry */ dbf_write->Geometry = NULL; } else { blob_value = sqlite3_column_blob (stmt, i); len = sqlite3_column_bytes (stmt, i); dbf_write->Geometry = gaiaFromSpatiaLiteBlobWkb (blob_value, len); } } dummy = (char *) sqlite3_column_name (stmt, i); dbf_field = getDbfField (auxdbf, dummy); if (!dbf_field) continue; if (sqlite3_column_type (stmt, i) == SQLITE_NULL) { /* handling NULL values */ gaiaSetNullValue (dbf_field); } else { switch (dbf_field->Type) { case 'N': if (sqlite3_column_type (stmt, i) == SQLITE_INTEGER) gaiaSetIntValue (dbf_field, sqlite3_column_int64 (stmt, i)); else if (sqlite3_column_type (stmt, i) == SQLITE_FLOAT) gaiaSetDoubleValue (dbf_field, sqlite3_column_double (stmt, i)); else gaiaSetNullValue (dbf_field); break; case 'C': if (sqlite3_column_type (stmt, i) == SQLITE_TEXT) { dummy = (char *) sqlite3_column_text (stmt, i); gaiaSetStrValue (dbf_field, dummy); } else if (sqlite3_column_type (stmt, i) == SQLITE_INTEGER) { sprintf (buf, FRMT64, sqlite3_column_int64 (stmt, i)); gaiaSetStrValue (dbf_field, buf); } else if (sqlite3_column_type (stmt, i) == SQLITE_FLOAT) { sql = sqlite3_mprintf ("%1.6f", sqlite3_column_double (stmt, i)); gaiaSetStrValue (dbf_field, sql); sqlite3_free (sql); } else gaiaSetNullValue (dbf_field); break; }; } } free_auxdbf (auxdbf); auxdbf = NULL; if (!gaiaWriteShpEntity (shp, dbf_write)) spatialite_e ("shapefile write error\n"); gaiaFreeDbfList (dbf_write); } else goto sql_error; } if (auxdbf != NULL) free_auxdbf (auxdbf); sqlite3_finalize (stmt); gaiaFlushShpHeaders (shp); gaiaFreeShapefile (shp); free (xtable); free (xcolumn); gaiaFreeVectorLayersList (list); if (verbose) spatialite_e ("\nExported %d rows into SHAPEFILE\n========\n", rows); if (xrows) *xrows = rows; if (err_msg) sprintf (err_msg, "Exported %d rows into SHAPEFILE", rows); if (db_prefix != NULL) free (db_prefix); if (table_name != NULL) free (table_name); return 1; sql_error: /* some SQL error occurred */ if (auxdbf != NULL) free_auxdbf (auxdbf); sqlite3_finalize (stmt); free (xtable); free (xcolumn); gaiaFreeVectorLayersList (list); if (dbf_list) gaiaFreeDbfList (dbf_list); if (shp) gaiaFreeShapefile (shp); if (!err_msg) spatialite_e ("SELECT failed: %s", sqlite3_errmsg (sqlite)); else sprintf (err_msg, "SELECT failed: %s", sqlite3_errmsg (sqlite)); if (db_prefix != NULL) free (db_prefix); if (table_name != NULL) free (table_name); return 0; no_file: /* shapefile can't be created/opened */ if (auxdbf != NULL) free_auxdbf (auxdbf); free (xtable); free (xcolumn); gaiaFreeVectorLayersList (list); if (dbf_list) gaiaFreeDbfList (dbf_list); if (shp) gaiaFreeShapefile (shp); if (!err_msg) spatialite_e ("ERROR: unable to open '%s' for writing", shp_path); else sprintf (err_msg, "ERROR: unable to open '%s' for writing", shp_path); if (db_prefix != NULL) free (db_prefix); if (table_name != NULL) free (table_name); return 0; } SPATIALITE_DECLARE int load_dbf (sqlite3 * sqlite, char *dbf_path, char *table, char *charset, int verbose, int *rows, char *err_msg) { return load_dbf_ex (sqlite, dbf_path, table, NULL, charset, verbose, rows, err_msg); } SPATIALITE_DECLARE int load_dbf_ex (sqlite3 * sqlite, char *dbf_path, char *table, char *pk_column, char *charset, int verbose, int *rows, char *err_msg) { sqlite3_stmt *stmt; int ret; char *errMsg = NULL; char *sql; char *dummy; char *xname; int already_exists = 0; int sqlError = 0; gaiaDbfPtr dbf = NULL; gaiaDbfFieldPtr dbf_field; int cnt; int col_cnt; int seed; int len; int dup; int idup; int current_row; char **col_name = NULL; int deleted; char *qtable = NULL; char *qpk_name = NULL; char *pk_name = NULL; int pk_autoincr = 1; gaiaOutBuffer sql_statement; int pk_type = SQLITE_INTEGER; int pk_set; qtable = gaiaDoubleQuotedSql (table); /* checking if TABLE already exists */ sql = sqlite3_mprintf ("SELECT name FROM sqlite_master WHERE " "type = 'table' AND Lower(name) = Lower(%Q)", table); ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { if (!err_msg) spatialite_e ("load DBF error: <%s>\n", sqlite3_errmsg (sqlite)); else sprintf (err_msg, "load DBF error: <%s>\n", sqlite3_errmsg (sqlite)); if (qtable) free (qtable); if (qpk_name) free (qpk_name); return 0; } while (1) { /* scrolling the result set */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) already_exists = 1; else { spatialite_e ("load DBF error: <%s>\n", sqlite3_errmsg (sqlite)); break; } } sqlite3_finalize (stmt); if (already_exists) { if (!err_msg) spatialite_e ("load DBF error: table '%s' already exists\n", table); else sprintf (err_msg, "load DBF error: table '%s' already exists\n", table); if (qtable) free (qtable); if (qpk_name) free (qpk_name); return 0; } dbf = gaiaAllocDbf (); gaiaOpenDbfRead (dbf, dbf_path, charset, "UTF-8"); if (!(dbf->Valid)) { if (!err_msg) { spatialite_e ("load DBF error: cannot open '%s'\n", dbf_path); if (dbf->LastError) spatialite_e ("\tcause: %s\n", dbf->LastError); } else { char extra[512]; *extra = '\0'; if (dbf->LastError) sprintf (extra, "\n\tcause: %s", dbf->LastError); sprintf (err_msg, "load DBF error: cannot open '%s'%s", dbf_path, extra); } gaiaFreeDbf (dbf); if (qtable) free (qtable); if (qpk_name) free (qpk_name); return 0; } /* checking for duplicate / illegal column names and antialising them */ col_cnt = 0; dbf_field = dbf->Dbf->First; while (dbf_field) { /* counting DBF fields */ col_cnt++; dbf_field = dbf_field->Next; } col_name = malloc (sizeof (char *) * col_cnt); cnt = 0; seed = 0; if (pk_column != NULL) { /* validating the Primary Key column */ dbf_field = dbf->Dbf->First; while (dbf_field) { if (strcasecmp (pk_column, dbf_field->Name) == 0) { /* ok, using this field as Primary Key */ pk_name = pk_column; pk_autoincr = 0; switch (dbf_field->Type) { case 'C': pk_type = SQLITE_TEXT; break; case 'N': if (dbf_field->Decimals) pk_type = SQLITE_FLOAT; else { if (dbf_field->Length <= 18) pk_type = SQLITE_INTEGER; else pk_type = SQLITE_FLOAT; } break; case 'D': pk_type = SQLITE_FLOAT; break; case 'F': pk_type = SQLITE_FLOAT; break; case 'L': pk_type = SQLITE_INTEGER; break; }; } dbf_field = dbf_field->Next; } } if (pk_name == NULL) { if (pk_column != NULL) pk_name = pk_column; else pk_name = "PK_UID"; } qpk_name = gaiaDoubleQuotedSql (pk_name); dbf_field = dbf->Dbf->First; while (dbf_field) { /* preparing column names */ char *xdummy = NULL; if (strcasecmp (pk_name, dbf_field->Name) == 0) { /* skipping the Primary Key field */ dummy = dbf_field->Name; len = strlen (dummy); *(col_name + cnt) = malloc (len + 1); strcpy (*(col_name + cnt), dummy); cnt++; dbf_field = dbf_field->Next; continue; } dummy = dbf_field->Name; dup = 0; for (idup = 0; idup < cnt; idup++) { if (strcasecmp (dummy, *(col_name + idup)) == 0) dup = 1; } if (dup) { xdummy = sqlite3_mprintf ("COL_%d", seed++); dummy = xdummy; } len = strlen (dummy); *(col_name + cnt) = malloc (len + 1); strcpy (*(col_name + cnt), dummy); if (xdummy) free (xdummy); cnt++; dbf_field = dbf_field->Next; } if (verbose) spatialite_e ("========\nLoading DBF at '%s' into SQLite table '%s'\n", dbf_path, table); /* starting a transaction */ if (verbose) spatialite_e ("\nBEGIN;\n"); ret = sqlite3_exec (sqlite, "BEGIN", NULL, 0, &errMsg); if (ret != SQLITE_OK) { if (!err_msg) spatialite_e ("load DBF error: <%s>\n", errMsg); else sprintf (err_msg, "load DBF error: <%s>\n", errMsg); sqlite3_free (errMsg); sqlError = 1; goto clean_up; } /* creating the Table */ gaiaOutBufferInitialize (&sql_statement); if (pk_type == SQLITE_TEXT) { sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (\n\"%s\" " "TEXT PRIMARY KEY NOT NULL", qtable, qpk_name); } else if (pk_type == SQLITE_FLOAT) { sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (\n\"%s\" " "DOUBLE PRIMARY KEY NOT NULL", qtable, qpk_name); } else { if (pk_autoincr) sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (\n\"%s\" " "INTEGER PRIMARY KEY AUTOINCREMENT", qtable, qpk_name); else sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (\n\"%s\" " "INTEGER NOT NULL PRIMARY KEY", qtable, qpk_name); } gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); cnt = 0; dbf_field = dbf->Dbf->First; while (dbf_field) { if (strcasecmp (pk_name, dbf_field->Name) == 0) { /* skipping the Primary Key field */ dbf_field = dbf_field->Next; cnt++; continue; } xname = gaiaDoubleQuotedSql (*(col_name + cnt)); sql = sqlite3_mprintf (",\n\"%s\"", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); cnt++; switch (dbf_field->Type) { case 'C': gaiaAppendToOutBuffer (&sql_statement, " TEXT"); break; case 'N': if (dbf_field->Decimals) gaiaAppendToOutBuffer (&sql_statement, " DOUBLE"); else { if (dbf_field->Length <= 18) gaiaAppendToOutBuffer (&sql_statement, " INTEGER"); else gaiaAppendToOutBuffer (&sql_statement, " DOUBLE"); } break; case 'D': gaiaAppendToOutBuffer (&sql_statement, " DOUBLE"); break; case 'F': gaiaAppendToOutBuffer (&sql_statement, " DOUBLE"); break; case 'L': gaiaAppendToOutBuffer (&sql_statement, " INTEGER"); break; }; dbf_field = dbf_field->Next; } gaiaAppendToOutBuffer (&sql_statement, ")"); if (sql_statement.Error == 0 && sql_statement.Buffer != NULL) { if (verbose) spatialite_e ("%s;\n", sql_statement.Buffer); ret = sqlite3_exec (sqlite, sql_statement.Buffer, NULL, 0, &errMsg); } else ret = SQLITE_ERROR; gaiaOutBufferReset (&sql_statement); if (ret != SQLITE_OK) { if (!err_msg) spatialite_e ("load DBF error: <%s>\n", errMsg); else sprintf (err_msg, "load DBF error: <%s>\n", errMsg); sqlite3_free (errMsg); sqlError = 1; goto clean_up; } /* preparing the INSERT INTO parametrerized statement */ sql = sqlite3_mprintf ("INSERT INTO \"%s\" (\"%s\"", qtable, qpk_name); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); cnt = 0; dbf_field = dbf->Dbf->First; while (dbf_field) { /* columns corresponding to some DBF attribute */ if (strcasecmp (pk_name, dbf_field->Name) == 0) { /* skipping the Primary Key field */ dbf_field = dbf_field->Next; cnt++; continue; } xname = gaiaDoubleQuotedSql (*(col_name + cnt++)); sql = sqlite3_mprintf (",\"%s\"", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); dbf_field = dbf_field->Next; } gaiaAppendToOutBuffer (&sql_statement, ")\nVALUES (?"); dbf_field = dbf->Dbf->First; while (dbf_field) { /* column values */ if (strcasecmp (pk_name, dbf_field->Name) == 0) { /* skipping the Primary Key field */ dbf_field = dbf_field->Next; continue; } gaiaAppendToOutBuffer (&sql_statement, ", ?"); dbf_field = dbf_field->Next; } gaiaAppendToOutBuffer (&sql_statement, ")"); if (sql_statement.Error == 0 && sql_statement.Buffer != NULL) ret = sqlite3_prepare_v2 (sqlite, sql_statement.Buffer, strlen (sql_statement.Buffer), &stmt, NULL); else ret = SQLITE_ERROR; gaiaOutBufferReset (&sql_statement); if (ret != SQLITE_OK) { if (!err_msg) spatialite_e ("load DBF error: <%s>\n", sqlite3_errmsg (sqlite)); else sprintf (err_msg, "load DBF error: <%s>\n", sqlite3_errmsg (sqlite)); sqlError = 1; goto clean_up; } current_row = 0; while (1) { /* inserting rows from DBF */ ret = gaiaReadDbfEntity (dbf, current_row, &deleted); if (!ret) { if (!(dbf->LastError)) /* normal DBF EOF */ break; if (!err_msg) spatialite_e ("%s\n", dbf->LastError); else sprintf (err_msg, "%s\n", dbf->LastError); sqlError = 1; goto clean_up; } current_row++; if (deleted) { /* skipping DBF deleted row */ continue; } /* binding query params */ sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); pk_set = 0; cnt = 0; dbf_field = dbf->Dbf->First; while (dbf_field) { /* Primary Key value */ if (strcasecmp (pk_name, dbf_field->Name) == 0) { if (pk_type == SQLITE_TEXT) sqlite3_bind_text (stmt, 1, dbf_field->Value->TxtValue, strlen (dbf_field-> Value->TxtValue), SQLITE_STATIC); else if (pk_type == SQLITE_FLOAT) sqlite3_bind_double (stmt, 1, dbf_field->Value->DblValue); else sqlite3_bind_int64 (stmt, 1, dbf_field->Value->IntValue); pk_set = 1; } dbf_field = dbf_field->Next; } if (!pk_set) sqlite3_bind_int (stmt, 1, current_row); sqlite3_bind_int (stmt, 1, current_row); cnt = 0; dbf_field = dbf->Dbf->First; while (dbf_field) { /* column values */ if (strcasecmp (pk_name, dbf_field->Name) == 0) { /* skipping the Primary Key field */ dbf_field = dbf_field->Next; continue; } if (!(dbf_field->Value)) sqlite3_bind_null (stmt, cnt + 2); else { switch (dbf_field->Value->Type) { case GAIA_INT_VALUE: sqlite3_bind_int64 (stmt, cnt + 2, dbf_field->Value->IntValue); break; case GAIA_DOUBLE_VALUE: sqlite3_bind_double (stmt, cnt + 2, dbf_field->Value->DblValue); break; case GAIA_TEXT_VALUE: sqlite3_bind_text (stmt, cnt + 2, dbf_field->Value->TxtValue, strlen (dbf_field->Value-> TxtValue), SQLITE_STATIC); break; default: sqlite3_bind_null (stmt, cnt + 2); break; } } cnt++; dbf_field = dbf_field->Next; } ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { if (!err_msg) spatialite_e ("load DBF error: <%s>\n", sqlite3_errmsg (sqlite)); else sprintf (err_msg, "load DBF error: <%s>\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); sqlError = 1; goto clean_up; } } sqlite3_finalize (stmt); clean_up: if (qtable) free (qtable); if (qpk_name) free (qpk_name); gaiaFreeDbf (dbf); if (col_name) { /* releasing memory allocation for column names */ for (cnt = 0; cnt < col_cnt; cnt++) free (*(col_name + cnt)); free (col_name); } if (sqlError) { /* some error occurred - ROLLBACK */ if (verbose) spatialite_e ("ROLLBACK;\n"); ret = sqlite3_exec (sqlite, "ROLLBACK", NULL, 0, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("load DBF error: <%s>\n", errMsg); sqlite3_free (errMsg); }; if (rows) *rows = current_row; if (qtable) free (qtable); if (qpk_name) free (qpk_name); return 0; } else { /* ok - confirming pending transaction - COMMIT */ if (verbose) spatialite_e ("COMMIT;\n"); ret = sqlite3_exec (sqlite, "COMMIT", NULL, 0, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("load DBF error: <%s>\n", errMsg); sqlite3_free (errMsg); return 0; } if (rows) *rows = current_row; if (verbose) spatialite_e ("\nInserted %d rows into '%s' from DBF\n========\n", current_row, table); if (err_msg) sprintf (err_msg, "Inserted %d rows into '%s' from DBF", current_row, table); return 1; } } SPATIALITE_DECLARE int dump_dbf (sqlite3 * sqlite, char *table, char *dbf_path, char *charset, char *err_msg) { /* DBF dump */ int rows; int i; char *sql; char *xtable; sqlite3_stmt *stmt; int row1 = 0; int n_cols = 0; int offset = 0; int type; gaiaDbfPtr dbf = NULL; gaiaDbfListPtr dbf_export_list = NULL; gaiaDbfListPtr dbf_list = NULL; gaiaDbfListPtr dbf_write; gaiaDbfFieldPtr dbf_field; int *max_length = NULL; int *sql_type = NULL; char *dummy; char buf[256]; int len; int ret; char *db_prefix = NULL; char *table_name = NULL; struct auxdbf_list *auxdbf = NULL; shp_parse_table_name (table, &db_prefix, &table_name); /* / preparing SQL statement */ if (db_prefix != NULL && table_name != NULL) { char *xdb = gaiaDoubleQuotedSql (db_prefix); char *xxtable = gaiaDoubleQuotedSql (table_name); sql = sqlite3_mprintf ("SELECT * FROM \"%s\".\"%s\"", xdb, xxtable); free (xdb); free (xxtable); } else { xtable = gaiaDoubleQuotedSql (table); sql = sqlite3_mprintf ("SELECT * FROM \"%s\"", xtable); } /* / compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto sql_error; rows = 0; while (1) { /* / Pass I - scrolling the result set to compute real DBF attributes' sizes and types */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* processing a result set row */ row1++; if (n_cols == 0) { /* this one is the first row, so we are going to prepare the DBF Fields list */ n_cols = sqlite3_column_count (stmt); dbf_export_list = gaiaAllocDbfList (); max_length = (int *) malloc (sizeof (int) * n_cols); sql_type = (int *) malloc (sizeof (int) * n_cols); for (i = 0; i < n_cols; i++) { /* initializes the DBF export fields */ dummy = (char *) sqlite3_column_name (stmt, i); gaiaAddDbfField (dbf_export_list, dummy, '\0', 0, 0, 0); max_length[i] = 0; sql_type[i] = SQLITE_NULL; } } for (i = 0; i < n_cols; i++) { /* update the DBF export fields analyzing fetched data */ type = sqlite3_column_type (stmt, i); if (type == SQLITE_NULL || type == SQLITE_BLOB) continue; if (type == SQLITE_TEXT) { len = sqlite3_column_bytes (stmt, i); sql_type[i] = SQLITE_TEXT; if (len > max_length[i]) max_length[i] = len; } else if (type == SQLITE_FLOAT && sql_type[i] != SQLITE_TEXT) sql_type[i] = SQLITE_FLOAT; /* promoting a numeric column to be DOUBLE */ else if (type == SQLITE_INTEGER && (sql_type[i] == SQLITE_NULL || sql_type[i] == SQLITE_INTEGER)) sql_type[i] = SQLITE_INTEGER; /* promoting a null column to be INTEGER */ if (type == SQLITE_INTEGER && max_length[i] < 18) max_length[i] = 18; if (type == SQLITE_FLOAT && max_length[i] < 24) max_length[i] = 24; } } else goto sql_error; } if (!row1) goto empty_result_set; i = 0; offset = 0; dbf_list = gaiaAllocDbfList (); dbf_field = dbf_export_list->First; while (dbf_field) { /* preparing the final DBF attribute list */ if (sql_type[i] == SQLITE_NULL || sql_type[i] == SQLITE_BLOB) { i++; dbf_field = dbf_field->Next; continue; } if (sql_type[i] == SQLITE_TEXT) { gaiaAddDbfField (dbf_list, dbf_field->Name, 'C', offset, max_length[i], 0); offset += max_length[i]; } if (sql_type[i] == SQLITE_FLOAT) { gaiaAddDbfField (dbf_list, dbf_field->Name, 'N', offset, 19, 6); offset += 19; } if (sql_type[i] == SQLITE_INTEGER) { gaiaAddDbfField (dbf_list, dbf_field->Name, 'N', offset, 18, 0); offset += 18; } i++; dbf_field = dbf_field->Next; } free (max_length); free (sql_type); gaiaFreeDbfList (dbf_export_list); dbf_export_list = NULL; continue_exporting: /* resetting SQLite query */ ret = sqlite3_reset (stmt); if (ret != SQLITE_OK) goto sql_error; /* trying to open the DBF file */ dbf = gaiaAllocDbf (); /* xfering export-list ownership */ dbf->Dbf = dbf_list; dbf_list = NULL; gaiaOpenDbfWrite (dbf, dbf_path, "UTF-8", charset); if (!(dbf->Valid)) goto no_file; while (1) { /* Pass II - scrolling the result set to dump data into DBF */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { rows++; dbf_write = gaiaCloneDbfEntity (dbf->Dbf); auxdbf = alloc_auxdbf (dbf_write); for (i = 0; i < n_cols; i++) { dummy = (char *) sqlite3_column_name (stmt, i); dbf_field = getDbfField (auxdbf, dummy); if (!dbf_field) continue; if (sqlite3_column_type (stmt, i) == SQLITE_NULL || sqlite3_column_type (stmt, i) == SQLITE_BLOB) { /* handling NULL values */ gaiaSetNullValue (dbf_field); } else { switch (dbf_field->Type) { case 'N': if (sqlite3_column_type (stmt, i) == SQLITE_INTEGER) gaiaSetIntValue (dbf_field, sqlite3_column_int64 (stmt, i)); else if (sqlite3_column_type (stmt, i) == SQLITE_FLOAT) gaiaSetDoubleValue (dbf_field, sqlite3_column_double (stmt, i)); else gaiaSetNullValue (dbf_field); break; case 'C': if (sqlite3_column_type (stmt, i) == SQLITE_TEXT) { dummy = (char *) sqlite3_column_text (stmt, i); gaiaSetStrValue (dbf_field, dummy); } else if (sqlite3_column_type (stmt, i) == SQLITE_INTEGER) { sprintf (buf, FRMT64, sqlite3_column_int64 (stmt, i)); gaiaSetStrValue (dbf_field, buf); } else if (sqlite3_column_type (stmt, i) == SQLITE_FLOAT) { sql = sqlite3_mprintf ("%1.6f", sqlite3_column_double (stmt, i)); gaiaSetStrValue (dbf_field, sql); sqlite3_free (sql); } else gaiaSetNullValue (dbf_field); break; }; } } free_auxdbf (auxdbf); auxdbf = NULL; if (!gaiaWriteDbfEntity (dbf, dbf_write)) spatialite_e ("DBF write error\n"); gaiaFreeDbfList (dbf_write); } else goto sql_error; } if (auxdbf != NULL) free_auxdbf (auxdbf); sqlite3_finalize (stmt); gaiaFlushDbfHeader (dbf); gaiaFreeDbf (dbf); free (xtable); if (!err_msg) spatialite_e ("Exported %d rows into the DBF file\n", rows); else sprintf (err_msg, "Exported %d rows into the DBF file\n", rows); if (db_prefix != NULL) free (db_prefix); if (table_name != NULL) free (table_name); return 1; sql_error: /* some SQL error occurred */ if (auxdbf != NULL) free_auxdbf (auxdbf); free (xtable); sqlite3_finalize (stmt); if (dbf_export_list) gaiaFreeDbfList (dbf_export_list); if (dbf_list) gaiaFreeDbfList (dbf_list); if (dbf) gaiaFreeDbf (dbf); if (!err_msg) spatialite_e ("dump DBF file error: %s\n", sqlite3_errmsg (sqlite)); else sprintf (err_msg, "dump DBF file error: %s\n", sqlite3_errmsg (sqlite)); if (db_prefix != NULL) free (db_prefix); if (table_name != NULL) free (table_name); return 0; no_file: /* DBF can't be created/opened */ if (auxdbf != NULL) free_auxdbf (auxdbf); free (xtable); if (dbf_export_list) gaiaFreeDbfList (dbf_export_list); if (dbf_list) gaiaFreeDbfList (dbf_list); if (dbf) gaiaFreeDbf (dbf); if (!err_msg) spatialite_e ("ERROR: unable to open '%s' for writing\n", dbf_path); else sprintf (err_msg, "ERROR: unable to open '%s' for writing\n", dbf_path); if (db_prefix != NULL) free (db_prefix); if (table_name != NULL) free (table_name); return 0; empty_result_set: /* the result set is empty - nothing to do */ if (auxdbf != NULL) free_auxdbf (auxdbf); if (get_default_dbf_fields (sqlite, xtable, db_prefix, table_name, &dbf_list)) goto continue_exporting; free (xtable); sqlite3_finalize (stmt); if (dbf_export_list) gaiaFreeDbfList (dbf_export_list); if (dbf_list) gaiaFreeDbfList (dbf_list); if (dbf) gaiaFreeDbf (dbf); if (!err_msg) spatialite_e ("The SQL SELECT returned an empty result set ... there is nothing to export ...\n"); else sprintf (err_msg, "The SQL SELECT returned an empty result set ... there is nothing to export ...\n"); if (db_prefix != NULL) free (db_prefix); if (table_name != NULL) free (table_name); return 0; } #endif /* end ICONV (SHP and DBF) */ SPATIALITE_DECLARE int is_kml_constant (sqlite3 * sqlite, char *table, char *column) { /* checking a possible column name for KML dump */ char *sql; char *xname; int ret; int k = 1; const char *name; char **results; int rows; int columns; int i; char *errMsg = NULL; xname = gaiaDoubleQuotedSql (table); sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); free (xname); ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, &errMsg); sqlite3_free (sql); if (ret != SQLITE_OK) return 1; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 1]; if (strcasecmp (name, column) == 0) k = 0; } } sqlite3_free_table (results); return k; } SPATIALITE_DECLARE int dump_kml (sqlite3 * sqlite, char *table, char *geom_col, char *kml_path, char *name_col, char *desc_col, int precision) { /* dumping a geometry table as KML */ char *sql; char *xname; char *xdesc; char *xgeom_col; char *xtable; sqlite3_stmt *stmt = NULL; FILE *out = NULL; int ret; int rows = 0; int is_const = 1; /* opening/creating the KML file */ out = fopen (kml_path, "wb"); if (!out) goto no_file; /* preparing SQL statement */ if (name_col == NULL) xname = sqlite3_mprintf ("%Q", "name"); else { is_const = is_kml_constant (sqlite, table, name_col); if (is_const) xname = sqlite3_mprintf ("%Q", name_col); else { xname = gaiaDoubleQuotedSql (name_col); sql = sqlite3_mprintf ("\"%s\"", xname); free (xname); xname = sql; } } if (desc_col == NULL) xdesc = sqlite3_mprintf ("%Q", "description"); else { is_const = is_kml_constant (sqlite, table, desc_col); if (is_const) xdesc = sqlite3_mprintf ("%Q", desc_col); else { xdesc = gaiaDoubleQuotedSql (desc_col); sql = sqlite3_mprintf ("\"%s\"", xdesc); free (xdesc); xdesc = sql; } } xgeom_col = gaiaDoubleQuotedSql (geom_col); xtable = gaiaDoubleQuotedSql (table); sql = sqlite3_mprintf ("SELECT AsKML(%s, %s, %s, %d) FROM \"%s\" " "WHERE \"%s\" IS NOT NULL", xname, xdesc, xgeom_col, precision, xtable, xgeom_col); sqlite3_free (xname); sqlite3_free (xdesc); free (xgeom_col); free (xtable); /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto sql_error; while (1) { /* scrolling the result set */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* processing a result set row */ if (rows == 0) { fprintf (out, "\r\n"); fprintf (out, "\r\n"); fprintf (out, "\r\n"); } rows++; fprintf (out, "\t%s\r\n", sqlite3_column_text (stmt, 0)); } else goto sql_error; } if (!rows) goto empty_result_set; fprintf (out, "\r\n"); fprintf (out, "\r\n"); sqlite3_finalize (stmt); fclose (out); return 1; sql_error: /* some SQL error occurred */ if (stmt) sqlite3_finalize (stmt); if (out) fclose (out); spatialite_e ("Dump KML error: %s\n", sqlite3_errmsg (sqlite)); return 0; no_file: /* KML file can't be created/opened */ if (stmt) sqlite3_finalize (stmt); if (out) fclose (out); spatialite_e ("ERROR: unable to open '%s' for writing\n", kml_path); return 0; empty_result_set: /* the result set is empty - nothing to do */ if (stmt) sqlite3_finalize (stmt); if (out) fclose (out); spatialite_e ("The SQL SELECT returned an empty result set\n... there is nothing to export ...\n"); return 0; } static int is_table (sqlite3 * sqlite, const char *table) { /* check if this one really is a TABLE */ char *sql; int ret; char **results; int rows; int columns; char *errMsg = NULL; int ok = 0; sql = sqlite3_mprintf ("SELECT tbl_name FROM sqlite_master " "WHERE type = 'table' AND Lower(tbl_name) = Lower(%Q)", table); ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, &errMsg); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("SQLite SQL error: %s\n", errMsg); sqlite3_free (errMsg); return ok; } if (rows < 1) ; else ok = 1; sqlite3_free_table (results); return ok; } SPATIALITE_DECLARE void check_duplicated_rows (sqlite3 * sqlite, char *table, int *dupl_count) { /* Checking a Table for Duplicate rows */ char *sql; int first = 1; char *xname; int pk; int ret; char **results; int rows; int columns; int i; char *errMsg = NULL; sqlite3_stmt *stmt = NULL; gaiaOutBuffer sql_statement; gaiaOutBuffer col_list; *dupl_count = 0; if (is_table (sqlite, table) == 0) { spatialite_e (".chkdupl %s: no such table\n", table); return; } /* extracting the column names (excluding any Primary Key) */ gaiaOutBufferInitialize (&col_list); xname = gaiaDoubleQuotedSql (table); sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); free (xname); ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, &errMsg); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("SQLite SQL error: %s\n", errMsg); sqlite3_free (errMsg); return; } if (rows < 1) ; else { for (i = 1; i <= rows; i++) { sql = results[(i * columns) + 1]; pk = atoi (results[(i * columns) + 5]); if (!pk) { xname = gaiaDoubleQuotedSql (sql); if (first) { sql = sqlite3_mprintf ("\"%s\"", xname); first = 0; } else sql = sqlite3_mprintf (", \"%s\"", xname); free (xname); gaiaAppendToOutBuffer (&col_list, sql); sqlite3_free (sql); } } } sqlite3_free_table (results); /* preparing the SQL statement */ gaiaOutBufferInitialize (&sql_statement); gaiaAppendToOutBuffer (&sql_statement, "SELECT Count(*) AS \"[dupl-count]\", "); if (col_list.Error == 0 && col_list.Buffer != NULL) gaiaAppendToOutBuffer (&sql_statement, col_list.Buffer); xname = gaiaDoubleQuotedSql (table); sql = sqlite3_mprintf ("\nFROM \"%s\"\nGROUP BY ", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); if (col_list.Error == 0 && col_list.Buffer != NULL) gaiaAppendToOutBuffer (&sql_statement, col_list.Buffer); gaiaOutBufferReset (&col_list); gaiaAppendToOutBuffer (&sql_statement, "\nHAVING \"[dupl-count]\" > 1"); gaiaAppendToOutBuffer (&sql_statement, "\nORDER BY \"[dupl-count]\" DESC"); if (sql_statement.Error == 0 && sql_statement.Buffer != NULL) { ret = sqlite3_prepare_v2 (sqlite, sql_statement.Buffer, strlen (sql_statement.Buffer), &stmt, NULL); gaiaOutBufferReset (&sql_statement); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", sqlite3_errmsg (sqlite)); return; } } while (1) { /* fetching the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* fetching a row */ *dupl_count += sqlite3_column_int (stmt, 0) - 1; } else { spatialite_e ("SQL error: %s", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); return; } } sqlite3_finalize (stmt); if (*dupl_count) spatialite_e ("%d duplicated rows found !!!\n", *dupl_count); else spatialite_e ("No duplicated rows have been identified\n"); } static int do_delete_duplicates2 (sqlite3 * sqlite, sqlite3_stmt * stmt1, struct dupl_row *value_list, int *count) { /* deleting duplicate rows [actual delete] */ int cnt = 0; int row_no = 0; char *sql; char *xname; int ret; sqlite3_stmt *stmt2 = NULL; struct dupl_column *col; int first = 1; int qcnt = 0; int param = 1; int match; int n_cols; int col_no; gaiaOutBuffer sql_statement; gaiaOutBuffer where; gaiaOutBuffer condition; *count = 0; reset_query_pos (value_list); gaiaOutBufferInitialize (&sql_statement); gaiaOutBufferInitialize (&where); gaiaOutBufferInitialize (&condition); /* preparing the query statement */ gaiaAppendToOutBuffer (&sql_statement, "SELECT ROWID"); gaiaAppendToOutBuffer (&where, "\nWHERE "); col = value_list->first; while (col) { if (col->type == SQLITE_BLOB) { sql = sqlite3_mprintf (", %s", col->name); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); col->query_pos = qcnt++; } else if (col->type == SQLITE_NULL) { if (first) { first = 0; sql = sqlite3_mprintf ("%s", col->name); gaiaAppendToOutBuffer (&condition, sql); sqlite3_free (sql); } else { sql = sqlite3_mprintf (" AND %s", col->name); gaiaAppendToOutBuffer (&condition, sql); sqlite3_free (sql); } gaiaAppendToOutBuffer (&condition, " IS NULL"); gaiaAppendToOutBuffer (&where, condition.Buffer); gaiaOutBufferReset (&condition); } else { if (first) { first = 0; sql = sqlite3_mprintf ("%s", col->name); gaiaAppendToOutBuffer (&condition, sql); sqlite3_free (sql); } else { sql = sqlite3_mprintf (" AND %s", col->name); gaiaAppendToOutBuffer (&condition, sql); sqlite3_free (sql); } gaiaAppendToOutBuffer (&condition, " = ?"); gaiaAppendToOutBuffer (&where, condition.Buffer); gaiaOutBufferReset (&condition); col->query_pos = param++; } col = col->next; } xname = gaiaDoubleQuotedSql (value_list->table); sql = sqlite3_mprintf ("\nFROM \"%s\"", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); gaiaAppendToOutBuffer (&sql_statement, where.Buffer); gaiaOutBufferReset (&where); if (sql_statement.Error == 0 && sql_statement.Buffer != NULL) ret = sqlite3_prepare_v2 (sqlite, sql_statement.Buffer, strlen (sql_statement.Buffer), &stmt2, NULL); else ret = SQLITE_ERROR; gaiaOutBufferReset (&sql_statement); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", sqlite3_errmsg (sqlite)); goto error; } sqlite3_reset (stmt2); sqlite3_clear_bindings (stmt2); col = value_list->first; while (col) { /* binding query params */ if (col->type == SQLITE_INTEGER) sqlite3_bind_int64 (stmt2, col->query_pos, col->int_value); if (col->type == SQLITE_FLOAT) sqlite3_bind_double (stmt2, col->query_pos, col->dbl_value); if (col->type == SQLITE_TEXT) sqlite3_bind_text (stmt2, col->query_pos, col->txt_value, strlen (col->txt_value), SQLITE_STATIC); col = col->next; } while (1) { /* fetching the result set rows */ ret = sqlite3_step (stmt2); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* fetching a row */ match = 1; n_cols = sqlite3_column_count (stmt2); for (col_no = 1; col_no < n_cols; col_no++) { /* checking blob columns */ if (sqlite3_column_type (stmt2, col_no) == SQLITE_BLOB) { const void *blob = sqlite3_column_blob (stmt2, col_no); int blob_size = sqlite3_column_bytes (stmt2, col_no); if (check_dupl_blob (value_list, col_no - 1, blob, blob_size) == 0) match = 0; } else match = 0; if (match == 0) break; } if (match == 0) continue; row_no++; if (row_no > 1) { /* deleting any duplicated row except the first one */ sqlite3_reset (stmt1); sqlite3_clear_bindings (stmt1); sqlite3_bind_int64 (stmt1, 1, sqlite3_column_int64 (stmt2, 0)); ret = sqlite3_step (stmt1); if (ret == SQLITE_DONE || ret == SQLITE_ROW) cnt++; else { spatialite_e ("SQL error: %s\n", sqlite3_errmsg (sqlite)); goto error; } } } else { spatialite_e ("SQL error: %s\n", sqlite3_errmsg (sqlite)); goto error; } } if (stmt2) sqlite3_finalize (stmt2); *count = cnt; return 1; error: if (stmt2) sqlite3_finalize (stmt2); *count = 0; return 0; } static int do_delete_duplicates (sqlite3 * sqlite, const char *sql1, const char *sql2, struct dupl_row *value_list, int *count) { /* deleting duplicate rows */ sqlite3_stmt *stmt1 = NULL; sqlite3_stmt *stmt2 = NULL; int ret; int xcnt; int cnt = 0; int n_cols; int col_no; char *sql_err = NULL; *count = 0; /* the complete operation is handled as an unique SQL Transaction */ ret = sqlite3_exec (sqlite, "BEGIN", NULL, NULL, &sql_err); if (ret != SQLITE_OK) { spatialite_e ("BEGIN TRANSACTION error: %s\n", sql_err); sqlite3_free (sql_err); return 0; } /* preparing the main SELECT statement */ ret = sqlite3_prepare_v2 (sqlite, sql1, strlen (sql1), &stmt1, NULL); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", sqlite3_errmsg (sqlite)); return 0; } /* preparing the DELETE statement */ ret = sqlite3_prepare_v2 (sqlite, sql2, strlen (sql2), &stmt2, NULL); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", sqlite3_errmsg (sqlite)); goto error; } while (1) { /* fetching the result set rows */ ret = sqlite3_step (stmt1); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* fetching a row */ sqlite3_reset (stmt2); sqlite3_clear_bindings (stmt2); n_cols = sqlite3_column_count (stmt1); for (col_no = 1; col_no < n_cols; col_no++) { /* saving column values */ if (sqlite3_column_type (stmt1, col_no) == SQLITE_INTEGER) set_int_value (value_list, col_no - 1, sqlite3_column_int64 (stmt1, col_no)); if (sqlite3_column_type (stmt1, col_no) == SQLITE_FLOAT) set_double_value (value_list, col_no - 1, sqlite3_column_double (stmt1, col_no)); if (sqlite3_column_type (stmt1, col_no) == SQLITE_TEXT) { const char *xtext = (const char *) sqlite3_column_text (stmt1, col_no); set_text_value (value_list, col_no - 1, xtext); } if (sqlite3_column_type (stmt1, col_no) == SQLITE_BLOB) { const void *blob = sqlite3_column_blob (stmt1, col_no); int blob_size = sqlite3_column_bytes (stmt1, col_no); set_blob_value (value_list, col_no - 1, blob, blob_size); } if (sqlite3_column_type (stmt1, col_no) == SQLITE_NULL) set_null_value (value_list, col_no - 1); } if (do_delete_duplicates2 (sqlite, stmt2, value_list, &xcnt)) cnt += xcnt; else goto error; } else { spatialite_e ("SQL error: %s\n", sqlite3_errmsg (sqlite)); goto error; } } sqlite3_finalize (stmt1); sqlite3_finalize (stmt2); /* confirm the still pending Transaction */ ret = sqlite3_exec (sqlite, "COMMIT", NULL, NULL, &sql_err); if (ret != SQLITE_OK) { spatialite_e ("COMMIT TRANSACTION error: %s\n", sql_err); sqlite3_free (sql_err); return 0; } *count = cnt; return 1; error: *count = 0; if (stmt1) sqlite3_finalize (stmt1); if (stmt2) sqlite3_finalize (stmt2); /* performing a ROLLBACK anyway */ ret = sqlite3_exec (sqlite, "ROLLBACK", NULL, NULL, &sql_err); if (ret != SQLITE_OK) { spatialite_e ("ROLLBACK TRANSACTION error: %s\n", sql_err); sqlite3_free (sql_err); return 0; } return 0; } SPATIALITE_DECLARE void remove_duplicated_rows (sqlite3 * sqlite, char *table) { /* attempting to delete Duplicate rows from a table */ struct dupl_row value_list; char *sql; char *sql2; int first = 1; char *xname; int pk; int ret; char **results; int rows; int columns; int i; char *errMsg = NULL; int count; gaiaOutBuffer sql_statement; gaiaOutBuffer col_list; value_list.count = 0; value_list.first = NULL; value_list.last = NULL; value_list.table = table; if (is_table (sqlite, table) == 0) { spatialite_e (".remdupl %s: no such table\n", table); return; } /* extracting the column names (excluding any Primary Key) */ gaiaOutBufferInitialize (&col_list); xname = gaiaDoubleQuotedSql (table); sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); free (xname); ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, &errMsg); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("SQLite SQL error: %s\n", errMsg); sqlite3_free (errMsg); return; } if (rows < 1) ; else { for (i = 1; i <= rows; i++) { sql = results[(i * columns) + 1]; pk = atoi (results[(i * columns) + 5]); if (!pk) { if (first) first = 0; else gaiaAppendToOutBuffer (&col_list, ", "); xname = gaiaDoubleQuotedSql (sql); sql = sqlite3_mprintf ("\"%s\"", xname); free (xname); gaiaAppendToOutBuffer (&col_list, sql); add_to_dupl_row (&value_list, sql); sqlite3_free (sql); } } } sqlite3_free_table (results); /* preparing the SQL statement (identifying duplicated rows) */ gaiaOutBufferInitialize (&sql_statement); gaiaAppendToOutBuffer (&sql_statement, "SELECT Count(*) AS \"[dupl-count]\", "); if (col_list.Error == 0 && col_list.Buffer != NULL) gaiaAppendToOutBuffer (&sql_statement, col_list.Buffer); xname = gaiaDoubleQuotedSql (table); sql = sqlite3_mprintf ("\nFROM \"%s\"\nGROUP BY ", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); if (col_list.Error == 0 && col_list.Buffer != NULL) gaiaAppendToOutBuffer (&sql_statement, col_list.Buffer); gaiaOutBufferReset (&col_list); gaiaAppendToOutBuffer (&sql_statement, "\nHAVING \"[dupl-count]\" > 1"); /* preparing the SQL statement [delete] */ xname = gaiaDoubleQuotedSql (table); sql2 = sqlite3_mprintf ("DELETE FROM \"%s\" WHERE ROWID = ?", xname); free (xname); if (sql_statement.Error == 0 && sql_statement.Buffer != NULL) sql = sql_statement.Buffer; else sql = "NULL-SELECT"; if (do_delete_duplicates (sqlite, sql, sql2, &value_list, &count)) { if (!count) spatialite_e ("No duplicated rows have been identified\n"); else spatialite_e ("%d duplicated rows deleted from: %s\n", count, table); } gaiaOutBufferReset (&sql_statement); sqlite3_free (sql2); clean_dupl_row (&value_list); } static int check_elementary (sqlite3 * sqlite, const char *inTable, const char *geom, const char *outTable, const char *pKey, const char *multiID, char *type, int *srid, char *coordDims) { /* preliminary check for ELEMENTARY GEOMETRIES */ char *sql; char *xtable; int ret; char **results; int rows; int columns; char *errMsg = NULL; int ok = 0; int i; char *gtp; char *dims; int metadata_version = checkSpatialMetaData (sqlite); /* fetching metadata */ if (metadata_version == 3) { /* current metadata style >= v.4.0.0 */ sql = sqlite3_mprintf ("SELECT geometry_type, srid " "FROM geometry_columns WHERE Lower(f_table_name) = Lower(%Q) " "AND Lower(f_geometry_column) = Lower(%Q)", inTable, geom); } else { /* legacy metadata style <= v.3.1.0 */ sql = sqlite3_mprintf ("SELECT type, coord_dimension, srid " "FROM geometry_columns WHERE Lower(f_table_name) = Lower(%Q) " "AND Lower(f_geometry_column) = Lower(%Q)", inTable, geom); } ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, &errMsg); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", errMsg); sqlite3_free (errMsg); return 0; } if (rows < 1) ; else { for (i = 1; i <= rows; i++) { if (metadata_version == 3) { /* current metadata style >= v.4.0.0 */ gtp = "UNKNOWN"; dims = "UNKNOWN"; switch (atoi (results[(i * columns) + 0])) { case 0: gtp = "GEOMETRY"; dims = "XY"; break; case 1: gtp = "POINT"; dims = "XY"; break; case 2: gtp = "LINESTRING"; dims = "XY"; break; case 3: gtp = "POLYGON"; dims = "XY"; break; case 4: gtp = "MULTIPOINT"; dims = "XY"; break; case 5: gtp = "MULTILINESTRING"; dims = "XY"; break; case 6: gtp = "MULTIPOLYGON"; dims = "XY"; break; case 7: gtp = "GEOMETRYCOLLECTION"; dims = "XY"; break; case 1000: gtp = "GEOMETRY"; dims = "XYZ"; break; case 1001: gtp = "POINT"; dims = "XYZ"; break; case 1002: gtp = "LINESTRING"; dims = "XYZ"; break; case 1003: gtp = "POLYGON"; dims = "XYZ"; break; case 1004: gtp = "MULTIPOINT"; dims = "XYZ"; break; case 1005: gtp = "MULTILINESTRING"; dims = "XYZ"; break; case 1006: gtp = "MULTIPOLYGON"; dims = "XYZ"; break; case 1007: gtp = "GEOMETRYCOLLECTION"; dims = "XYZ"; break; case 2000: gtp = "GEOMETRY"; dims = "XYM"; break; case 2001: gtp = "POINT"; dims = "XYM"; break; case 2002: gtp = "LINESTRING"; dims = "XYM"; break; case 2003: gtp = "POLYGON"; dims = "XYM"; break; case 2004: gtp = "MULTIPOINT"; dims = "XYM"; break; case 2005: gtp = "MULTILINESTRING"; dims = "XYM"; break; case 2006: gtp = "MULTIPOLYGON"; dims = "XYM"; break; case 2007: gtp = "GEOMETRYCOLLECTION"; dims = "XYM"; break; case 3000: gtp = "GEOMETRY"; dims = "XYZM"; break; case 3001: gtp = "POINT"; dims = "XYZM"; break; case 3002: gtp = "LINESTRING"; dims = "XYZM"; break; case 3003: gtp = "POLYGON"; dims = "XYZM"; break; case 3004: gtp = "MULTIPOINT"; dims = "XYZM"; break; case 3005: gtp = "MULTILINESTRING"; dims = "XYZM"; break; case 3006: gtp = "MULTIPOLYGON"; dims = "XYZM"; break; case 3007: gtp = "GEOMETRYCOLLECTION"; dims = "XYZM"; break; }; *srid = atoi (results[(i * columns) + 1]); } else { /* legacy metadata style <= v.3.1.0 */ gtp = results[(i * columns) + 0]; dims = results[(i * columns) + 1]; *srid = atoi (results[(i * columns) + 2]); } if (strcasecmp (gtp, "POINT") == 0 || strcasecmp (gtp, "MULTIPOINT") == 0) strcpy (type, "POINT"); else if (strcasecmp (gtp, "LINESTRING") == 0 || strcasecmp (gtp, "MULTILINESTRING") == 0) strcpy (type, "LINESTRING"); else if (strcasecmp (gtp, "POLYGON") == 0 || strcasecmp (gtp, "MULTIPOLYGON") == 0) strcpy (type, "POLYGON"); else strcpy (type, "GEOMETRY"); strcpy (coordDims, dims); ok = 1; } } sqlite3_free_table (results); if (!ok) return 0; /* checking if PrimaryKey already exists */ xtable = gaiaDoubleQuotedSql (inTable); sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xtable); free (xtable); ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, &errMsg); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", errMsg); sqlite3_free (errMsg); return 0; } if (rows < 1) ; else { for (i = 1; i <= rows; i++) { if (strcasecmp (pKey, results[(i * columns) + 1]) == 0) ok = 0; } } sqlite3_free_table (results); if (!ok) return 0; /* checking if MultiID already exists */ xtable = gaiaDoubleQuotedSql (inTable); sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xtable); free (xtable); ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, &errMsg); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", errMsg); sqlite3_free (errMsg); return 0; } if (rows < 1) ; else { for (i = 1; i <= rows; i++) { if (strcasecmp (multiID, results[(i * columns) + 1]) == 0) ok = 0; } } sqlite3_free_table (results); if (!ok) return 0; /* cheching if Output Table already exists */ sql = sqlite3_mprintf ("SELECT Count(*) FROM sqlite_master " "WHERE type = 'table' AND Lower(tbl_name) = Lower(%Q)", outTable); ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, &errMsg); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", errMsg); sqlite3_free (errMsg); return 0; } if (rows < 1) ; else { for (i = 1; i <= rows; i++) { if (atoi (results[(i * columns) + 0]) != 0) ok = 0; } } sqlite3_free_table (results); return ok; } static gaiaGeomCollPtr elemGeomFromPoint (gaiaPointPtr pt, int srid) { /* creating a Geometry containing a single Point */ gaiaGeomCollPtr g = NULL; switch (pt->DimensionModel) { case GAIA_XY_Z_M: g = gaiaAllocGeomCollXYZM (); break; case GAIA_XY_Z: g = gaiaAllocGeomCollXYZ (); break; case GAIA_XY_M: g = gaiaAllocGeomCollXYM (); break; default: g = gaiaAllocGeomColl (); break; }; if (!g) return NULL; g->Srid = srid; g->DeclaredType = GAIA_POINT; switch (pt->DimensionModel) { case GAIA_XY_Z_M: gaiaAddPointToGeomCollXYZM (g, pt->X, pt->Y, pt->Z, pt->M); break; case GAIA_XY_Z: gaiaAddPointToGeomCollXYZ (g, pt->X, pt->Y, pt->Z); break; case GAIA_XY_M: gaiaAddPointToGeomCollXYM (g, pt->X, pt->Y, pt->M); break; default: gaiaAddPointToGeomColl (g, pt->X, pt->Y); break; }; return g; } static gaiaGeomCollPtr elemGeomFromLinestring (gaiaLinestringPtr ln, int srid) { /* creating a Geometry containing a single Linestring */ gaiaGeomCollPtr g = NULL; gaiaLinestringPtr ln2; int iv; double x; double y; double z; double m; switch (ln->DimensionModel) { case GAIA_XY_Z_M: g = gaiaAllocGeomCollXYZM (); break; case GAIA_XY_Z: g = gaiaAllocGeomCollXYZ (); break; case GAIA_XY_M: g = gaiaAllocGeomCollXYM (); break; default: g = gaiaAllocGeomColl (); break; }; if (!g) return NULL; g->Srid = srid; g->DeclaredType = GAIA_LINESTRING; ln2 = gaiaAddLinestringToGeomColl (g, ln->Points); switch (ln->DimensionModel) { case GAIA_XY_Z_M: for (iv = 0; iv < ln->Points; iv++) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (ln2->Coords, iv, x, y, z, m); } break; case GAIA_XY_Z: for (iv = 0; iv < ln->Points; iv++) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (ln2->Coords, iv, x, y, z); } break; case GAIA_XY_M: for (iv = 0; iv < ln->Points; iv++) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); gaiaSetPointXYM (ln2->Coords, iv, x, y, m); } break; default: for (iv = 0; iv < ln->Points; iv++) { gaiaGetPoint (ln->Coords, iv, &x, &y); gaiaSetPoint (ln2->Coords, iv, x, y); } break; }; return g; } static gaiaGeomCollPtr elemGeomFromPolygon (gaiaPolygonPtr pg, int srid) { /* creating a Geometry containing a single Polygon */ gaiaGeomCollPtr g = NULL; gaiaPolygonPtr pg2; gaiaRingPtr rng; gaiaRingPtr rng2; int ib; int iv; double x; double y; double z; double m; switch (pg->DimensionModel) { case GAIA_XY_Z_M: g = gaiaAllocGeomCollXYZM (); break; case GAIA_XY_Z: g = gaiaAllocGeomCollXYZ (); break; case GAIA_XY_M: g = gaiaAllocGeomCollXYM (); break; default: g = gaiaAllocGeomColl (); break; }; if (!g) return NULL; g->Srid = srid; g->DeclaredType = GAIA_POLYGON; rng = pg->Exterior; pg2 = gaiaAddPolygonToGeomColl (g, rng->Points, pg->NumInteriors); rng2 = pg2->Exterior; switch (pg->DimensionModel) { case GAIA_XY_Z_M: for (iv = 0; iv < rng->Points; iv++) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (rng2->Coords, iv, x, y, z, m); } for (ib = 0; ib < pg->NumInteriors; ib++) { rng = pg->Interiors + ib; rng2 = gaiaAddInteriorRing (pg2, ib, rng->Points); for (iv = 0; iv < rng->Points; iv++) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (rng2->Coords, iv, x, y, z, m); } } break; case GAIA_XY_Z: for (iv = 0; iv < rng->Points; iv++) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (rng2->Coords, iv, x, y, z); } for (ib = 0; ib < pg->NumInteriors; ib++) { rng = pg->Interiors + ib; rng2 = gaiaAddInteriorRing (pg2, ib, rng->Points); for (iv = 0; iv < rng->Points; iv++) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (rng2->Coords, iv, x, y, z); } } break; case GAIA_XY_M: for (iv = 0; iv < rng->Points; iv++) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); gaiaSetPointXYM (rng2->Coords, iv, x, y, m); } for (ib = 0; ib < pg->NumInteriors; ib++) { rng = pg->Interiors + ib; rng2 = gaiaAddInteriorRing (pg2, ib, rng->Points); for (iv = 0; iv < rng->Points; iv++) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); gaiaSetPointXYM (rng2->Coords, iv, x, y, m); } } break; default: for (iv = 0; iv < rng->Points; iv++) { gaiaGetPoint (rng->Coords, iv, &x, &y); gaiaSetPoint (rng2->Coords, iv, x, y); } for (ib = 0; ib < pg->NumInteriors; ib++) { rng = pg->Interiors + ib; rng2 = gaiaAddInteriorRing (pg2, ib, rng->Points); for (iv = 0; iv < rng->Points; iv++) { gaiaGetPoint (rng->Coords, iv, &x, &y); gaiaSetPoint (rng2->Coords, iv, x, y); } } break; }; return g; } SPATIALITE_DECLARE void elementary_geometries (sqlite3 * sqlite, char *inTable, char *geometry, char *outTable, char *pKey, char *multiId) { /* attempting to create a derived table surely containing elemetary Geoms */ char type[128]; int srid; char dims[64]; char *sql; char *xname; char *xpk; char *xmulti; gaiaOutBuffer sql_statement; gaiaOutBuffer sql2; gaiaOutBuffer sql3; gaiaOutBuffer sql4; char *sql_geom; int ret; int comma = 0; char *errMsg = NULL; int i; char **results; int rows; int columns; int geom_idx = -1; sqlite3_stmt *stmt_in = NULL; sqlite3_stmt *stmt_out = NULL; int n_columns; sqlite3_int64 id = 0; if (check_elementary (sqlite, inTable, geometry, outTable, pKey, multiId, type, &srid, dims) == 0) { spatialite_e (".elemgeo: invalid args\n"); return; } /* starts a transaction */ ret = sqlite3_exec (sqlite, "BEGIN", NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", errMsg); sqlite3_free (errMsg); goto abort; } gaiaOutBufferInitialize (&sql_statement); gaiaOutBufferInitialize (&sql2); gaiaOutBufferInitialize (&sql3); gaiaOutBufferInitialize (&sql4); gaiaAppendToOutBuffer (&sql_statement, "SELECT "); xname = gaiaDoubleQuotedSql (outTable); xpk = gaiaDoubleQuotedSql (pKey); xmulti = gaiaDoubleQuotedSql (multiId); sql = sqlite3_mprintf ("INSERT INTO \"%s\" (\"%s\", \"%s\", ", xname, xpk, xmulti); free (xname); free (xpk); free (xmulti); gaiaAppendToOutBuffer (&sql2, sql); sqlite3_free (sql); gaiaAppendToOutBuffer (&sql3, ") VALUES (NULL, ?"); xname = gaiaDoubleQuotedSql (outTable); xpk = gaiaDoubleQuotedSql (pKey); xmulti = gaiaDoubleQuotedSql (multiId); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (\n" "\t\"%s\" INTEGER PRIMARY KEY AUTOINCREMENT" ",\n\t\"%s\" INTEGER NOT NULL", xname, xpk, xmulti); free (xname); free (xpk); free (xmulti); gaiaAppendToOutBuffer (&sql4, sql); sqlite3_free (sql); xname = gaiaDoubleQuotedSql (inTable); sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); free (xname); ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, &errMsg); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", errMsg); sqlite3_free (errMsg); goto abort; } if (rows < 1) ; else { for (i = 1; i <= rows; i++) { xname = gaiaDoubleQuotedSql (results[(i * columns) + 1]); if (comma) sql = sqlite3_mprintf (", \"%s\"", xname); else { comma = 1; sql = sqlite3_mprintf ("\"%s\"", xname); } free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); gaiaAppendToOutBuffer (&sql2, sql); gaiaAppendToOutBuffer (&sql3, ", ?"); sqlite3_free (sql); if (strcasecmp (geometry, results[(i * columns) + 1]) == 0) geom_idx = i - 1; else { xname = gaiaDoubleQuotedSql (results[(i * columns) + 1]); if (atoi (results[(i * columns) + 3]) != 0) sql = sqlite3_mprintf (",\n\t\"%s\" %s NOT NULL", xname, results[(i * columns) + 2]); else sql = sqlite3_mprintf (",\n\t\"%s\" %s", xname, results[(i * columns) + 2]); free (xname); gaiaAppendToOutBuffer (&sql4, sql); sqlite3_free (sql); } } } sqlite3_free_table (results); if (geom_idx < 0) goto abort; xname = gaiaDoubleQuotedSql (inTable); sql = sqlite3_mprintf (" FROM \"%s\"", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); gaiaAppendToOutBuffer (&sql2, sql3.Buffer); gaiaAppendToOutBuffer (&sql2, ")"); gaiaAppendToOutBuffer (&sql4, ")"); gaiaOutBufferReset (&sql3); sql_geom = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, %Q, %d, %Q, %Q)", outTable, geometry, srid, type, dims); /* creating the output table */ ret = sqlite3_exec (sqlite, sql4.Buffer, NULL, NULL, &errMsg); gaiaOutBufferReset (&sql4); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", errMsg); sqlite3_free (errMsg); goto abort; } /* creating the output Geometry */ ret = sqlite3_exec (sqlite, sql_geom, NULL, NULL, &errMsg); sqlite3_free (sql_geom); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", errMsg); sqlite3_free (errMsg); goto abort; } /* preparing the INPUT statement */ ret = sqlite3_prepare_v2 (sqlite, sql_statement.Buffer, strlen (sql_statement.Buffer), &stmt_in, NULL); gaiaOutBufferReset (&sql_statement); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", sqlite3_errmsg (sqlite)); goto abort; } /* preparing the OUTPUT statement */ ret = sqlite3_prepare_v2 (sqlite, sql2.Buffer, strlen (sql2.Buffer), &stmt_out, NULL); gaiaOutBufferReset (&sql2); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", sqlite3_errmsg (sqlite)); goto abort; } /* data transfer */ n_columns = sqlite3_column_count (stmt_in); while (1) { ret = sqlite3_step (stmt_in); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) { gaiaGeomCollPtr g = gaiaFromSpatiaLiteBlobWkb ((const unsigned char *) sqlite3_column_blob (stmt_in, geom_idx), sqlite3_column_bytes (stmt_in, geom_idx)); if (!g) { /* NULL input geometry */ sqlite3_reset (stmt_out); sqlite3_clear_bindings (stmt_out); sqlite3_bind_int64 (stmt_out, 1, id); sqlite3_bind_null (stmt_out, geom_idx + 2); for (i = 0; i < n_columns; i++) { int type = sqlite3_column_type (stmt_in, i); if (i == geom_idx) continue; switch (type) { case SQLITE_INTEGER: sqlite3_bind_int64 (stmt_out, i + 2, sqlite3_column_int (stmt_in, i)); break; case SQLITE_FLOAT: sqlite3_bind_double (stmt_out, i + 2, sqlite3_column_double (stmt_in, i)); break; case SQLITE_TEXT: sqlite3_bind_text (stmt_out, i + 2, (const char *) sqlite3_column_text (stmt_in, i), sqlite3_column_bytes (stmt_in, i), SQLITE_STATIC); break; case SQLITE_BLOB: sqlite3_bind_blob (stmt_out, i + 2, sqlite3_column_blob (stmt_in, i), sqlite3_column_bytes (stmt_in, i), SQLITE_STATIC); break; case SQLITE_NULL: default: sqlite3_bind_null (stmt_out, i + 2); break; }; } ret = sqlite3_step (stmt_out); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("[OUT]step error: %s\n", sqlite3_errmsg (sqlite)); goto abort; } } else { /* separating Elementary Geoms */ gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; gaiaGeomCollPtr outGeom; pt = g->FirstPoint; while (pt) { /* separating Points */ outGeom = elemGeomFromPoint (pt, g->Srid); sqlite3_reset (stmt_out); sqlite3_clear_bindings (stmt_out); sqlite3_bind_int64 (stmt_out, 1, id); if (!outGeom) sqlite3_bind_null (stmt_out, geom_idx + 2); else { unsigned char *blob; int size; gaiaToSpatiaLiteBlobWkb (outGeom, &blob, &size); sqlite3_bind_blob (stmt_out, geom_idx + 2, blob, size, free); gaiaFreeGeomColl (outGeom); } for (i = 0; i < n_columns; i++) { int type = sqlite3_column_type (stmt_in, i); if (i == geom_idx) continue; switch (type) { case SQLITE_INTEGER: sqlite3_bind_int64 (stmt_out, i + 2, sqlite3_column_int (stmt_in, i)); break; case SQLITE_FLOAT: sqlite3_bind_double (stmt_out, i + 2, sqlite3_column_double (stmt_in, i)); break; case SQLITE_TEXT: sqlite3_bind_text (stmt_out, i + 2, (const char *) sqlite3_column_text (stmt_in, i), sqlite3_column_bytes (stmt_in, i), SQLITE_STATIC); break; case SQLITE_BLOB: sqlite3_bind_blob (stmt_out, i + 2, sqlite3_column_blob (stmt_in, i), sqlite3_column_bytes (stmt_in, i), SQLITE_STATIC); break; case SQLITE_NULL: default: sqlite3_bind_null (stmt_out, i + 2); break; }; } ret = sqlite3_step (stmt_out); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("[OUT]step error: %s\n", sqlite3_errmsg (sqlite)); goto abort; } pt = pt->Next; } ln = g->FirstLinestring; while (ln) { /* separating Linestrings */ outGeom = elemGeomFromLinestring (ln, g->Srid); sqlite3_reset (stmt_out); sqlite3_clear_bindings (stmt_out); sqlite3_bind_int64 (stmt_out, 1, id); if (!outGeom) sqlite3_bind_null (stmt_out, geom_idx + 2); else { unsigned char *blob; int size; gaiaToSpatiaLiteBlobWkb (outGeom, &blob, &size); sqlite3_bind_blob (stmt_out, geom_idx + 2, blob, size, free); gaiaFreeGeomColl (outGeom); } for (i = 0; i < n_columns; i++) { int type = sqlite3_column_type (stmt_in, i); if (i == geom_idx) continue; switch (type) { case SQLITE_INTEGER: sqlite3_bind_int64 (stmt_out, i + 2, sqlite3_column_int (stmt_in, i)); break; case SQLITE_FLOAT: sqlite3_bind_double (stmt_out, i + 2, sqlite3_column_double (stmt_in, i)); break; case SQLITE_TEXT: sqlite3_bind_text (stmt_out, i + 2, (const char *) sqlite3_column_text (stmt_in, i), sqlite3_column_bytes (stmt_in, i), SQLITE_STATIC); break; case SQLITE_BLOB: sqlite3_bind_blob (stmt_out, i + 2, sqlite3_column_blob (stmt_in, i), sqlite3_column_bytes (stmt_in, i), SQLITE_STATIC); break; case SQLITE_NULL: default: sqlite3_bind_null (stmt_out, i + 2); break; }; } ret = sqlite3_step (stmt_out); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("[OUT]step error: %s\n", sqlite3_errmsg (sqlite)); goto abort; } ln = ln->Next; } pg = g->FirstPolygon; while (pg) { /* separating Polygons */ outGeom = elemGeomFromPolygon (pg, g->Srid); sqlite3_reset (stmt_out); sqlite3_clear_bindings (stmt_out); sqlite3_bind_int64 (stmt_out, 1, id); if (!outGeom) sqlite3_bind_null (stmt_out, geom_idx + 2); else { unsigned char *blob; int size; gaiaToSpatiaLiteBlobWkb (outGeom, &blob, &size); sqlite3_bind_blob (stmt_out, geom_idx + 2, blob, size, free); gaiaFreeGeomColl (outGeom); } for (i = 0; i < n_columns; i++) { int type = sqlite3_column_type (stmt_in, i); if (i == geom_idx) continue; switch (type) { case SQLITE_INTEGER: sqlite3_bind_int64 (stmt_out, i + 2, sqlite3_column_int (stmt_in, i)); break; case SQLITE_FLOAT: sqlite3_bind_double (stmt_out, i + 2, sqlite3_column_double (stmt_in, i)); break; case SQLITE_TEXT: sqlite3_bind_text (stmt_out, i + 2, (const char *) sqlite3_column_text (stmt_in, i), sqlite3_column_bytes (stmt_in, i), SQLITE_STATIC); break; case SQLITE_BLOB: sqlite3_bind_blob (stmt_out, i + 2, sqlite3_column_blob (stmt_in, i), sqlite3_column_bytes (stmt_in, i), SQLITE_STATIC); break; case SQLITE_NULL: default: sqlite3_bind_null (stmt_out, i + 2); break; }; } ret = sqlite3_step (stmt_out); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("[OUT]step error: %s\n", sqlite3_errmsg (sqlite)); goto abort; } pg = pg->Next; } gaiaFreeGeomColl (g); } id++; } else { spatialite_e ("[IN]step error: %s\n", sqlite3_errmsg (sqlite)); goto abort; } } sqlite3_finalize (stmt_in); sqlite3_finalize (stmt_out); /* commits the transaction */ ret = sqlite3_exec (sqlite, "COMMIT", NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", errMsg); sqlite3_free (errMsg); goto abort; } return; abort: if (stmt_in) sqlite3_finalize (stmt_in); if (stmt_out) sqlite3_finalize (stmt_out); } #ifndef OMIT_FREEXL /* including FreeXL */ SPATIALITE_DECLARE int load_XL (sqlite3 * sqlite, const char *path, const char *table, unsigned int worksheetIndex, int first_titles, unsigned int *rows, char *err_msg) { /* loading an XL spreadsheet as a new DB table */ sqlite3_stmt *stmt; unsigned int current_row; int ret; char *errMsg = NULL; char *xname; char *dummy; char *xdummy; char *sql; int sqlError = 0; const void *xl_handle; unsigned int info; unsigned short columns; unsigned short col; gaiaOutBuffer sql_statement; FreeXL_CellValue cell; int already_exists = 0; /* checking if TABLE already exists */ sql = sqlite3_mprintf ("SELECT name FROM sqlite_master WHERE type = 'table' " "AND Lower(name) = Lower(%Q)", table); ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { if (!err_msg) spatialite_e ("load XL error: <%s>\n", sqlite3_errmsg (sqlite)); else sprintf (err_msg, "load XL error: <%s>\n", sqlite3_errmsg (sqlite)); return 0; } while (1) { /* scrolling the result set */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) already_exists = 1; else { spatialite_e ("load XL error: <%s>\n", sqlite3_errmsg (sqlite)); break; } } sqlite3_finalize (stmt); if (already_exists) { if (!err_msg) spatialite_e ("load XL error: table '%s' already exists\n", table); else sprintf (err_msg, "load XL error: table '%s' already exists\n", table); return 0; } /* opening the .XLS file [Workbook] */ ret = freexl_open (path, &xl_handle); if (ret != FREEXL_OK) goto error; /* checking if Password protected */ ret = freexl_get_info (xl_handle, FREEXL_BIFF_PASSWORD, &info); if (ret != FREEXL_OK) goto error; if (info != FREEXL_BIFF_PLAIN) goto error; /* Worksheet entries */ ret = freexl_get_info (xl_handle, FREEXL_BIFF_SHEET_COUNT, &info); if (ret != FREEXL_OK) goto error; if (info == 0) goto error; if (worksheetIndex < info) ; else goto error; ret = freexl_select_active_worksheet (xl_handle, worksheetIndex); if (ret != FREEXL_OK) goto error; ret = freexl_worksheet_dimensions (xl_handle, rows, &columns); if (ret != FREEXL_OK) goto error; /* starting a transaction */ ret = sqlite3_exec (sqlite, "BEGIN", NULL, 0, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("load XL error: %s\n", errMsg); sqlite3_free (errMsg); sqlError = 1; goto clean_up; } /* creating the Table */ gaiaOutBufferInitialize (&sql_statement); xname = gaiaDoubleQuotedSql (table); sql = sqlite3_mprintf ("CREATE TABLE \"%s\"", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); gaiaAppendToOutBuffer (&sql_statement, " (\nPK_UID INTEGER PRIMARY KEY AUTOINCREMENT"); for (col = 0; col < columns; col++) { if (first_titles) { /* fetching column names */ for (col = 0; col < columns; col++) { ret = freexl_get_cell_value (xl_handle, 0, col, &cell); if (ret != FREEXL_OK) dummy = sqlite3_mprintf ("col_%d", col); else { if (cell.type == FREEXL_CELL_INT) dummy = sqlite3_mprintf ("%d", cell.value.int_value); else if (cell.type == FREEXL_CELL_DOUBLE) dummy = sqlite3_mprintf ("%1.2f ", cell. value.double_value); else if (cell.type == FREEXL_CELL_TEXT || cell.type == FREEXL_CELL_SST_TEXT || cell.type == FREEXL_CELL_DATE || cell.type == FREEXL_CELL_DATETIME || cell.type == FREEXL_CELL_TIME) { int len = strlen (cell.value.text_value); if (len < 256) dummy = sqlite3_mprintf ("%s", cell. value.text_value); else dummy = sqlite3_mprintf ("col_%d", col); } else dummy = sqlite3_mprintf ("col_%d", col); } xdummy = gaiaDoubleQuotedSql (dummy); sqlite3_free (dummy); sql = sqlite3_mprintf (", \"%s\"", xdummy); free (xdummy); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); } } else { /* setting default column names */ for (col = 0; col < columns; col++) { dummy = sqlite3_mprintf ("col_%d", col); xdummy = gaiaDoubleQuotedSql (dummy); sqlite3_free (dummy); sql = sqlite3_mprintf (", \"%s\"", xdummy); free (xdummy); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); } } } gaiaAppendToOutBuffer (&sql_statement, ")"); if (sql_statement.Error == 0 && sql_statement.Buffer != NULL) { ret = sqlite3_exec (sqlite, sql_statement.Buffer, NULL, 0, &errMsg); gaiaOutBufferReset (&sql_statement); if (ret != SQLITE_OK) { spatialite_e ("load XL error: %s\n", errMsg); sqlite3_free (errMsg); sqlError = 1; goto clean_up; } } /* preparing the INSERT INTO parameterized statement */ gaiaOutBufferReset (&sql_statement); xname = gaiaDoubleQuotedSql (table); sql = sqlite3_mprintf ("INSERT INTO \"%s\" (PK_UID", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); for (col = 0; col < columns; col++) { if (first_titles) { ret = freexl_get_cell_value (xl_handle, 0, col, &cell); if (ret != FREEXL_OK) dummy = sqlite3_mprintf ("col_%d", col); else { if (cell.type == FREEXL_CELL_INT) dummy = sqlite3_mprintf ("%d", cell.value.int_value); else if (cell.type == FREEXL_CELL_DOUBLE) dummy = sqlite3_mprintf ("%1.2f", cell.value.double_value); else if (cell.type == FREEXL_CELL_TEXT || cell.type == FREEXL_CELL_SST_TEXT || cell.type == FREEXL_CELL_DATE || cell.type == FREEXL_CELL_DATETIME || cell.type == FREEXL_CELL_TIME) { int len = strlen (cell.value.text_value); if (len < 256) dummy = sqlite3_mprintf ("%s", cell.value.text_value); else dummy = sqlite3_mprintf ("col_%d", col); } else dummy = sqlite3_mprintf ("col_%d", col); } xdummy = gaiaDoubleQuotedSql (dummy); sqlite3_free (dummy); sql = sqlite3_mprintf (", \"%s\"", xdummy); free (xdummy); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); } else { /* setting default column names */ dummy = sqlite3_mprintf ("col_%d", col); xdummy = gaiaDoubleQuotedSql (dummy); sqlite3_free (dummy); sql = sqlite3_mprintf (", \"%s\"", xdummy); free (xdummy); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); } } gaiaAppendToOutBuffer (&sql_statement, ")\nVALUES (NULL"); for (col = 0; col < columns; col++) { /* column values */ gaiaAppendToOutBuffer (&sql_statement, ", ?"); } gaiaAppendToOutBuffer (&sql_statement, ")"); if (sql_statement.Error == 0 && sql_statement.Buffer != NULL) { ret = sqlite3_prepare_v2 (sqlite, sql_statement.Buffer, strlen (sql_statement.Buffer), &stmt, NULL); gaiaOutBufferReset (&sql_statement); if (ret != SQLITE_OK) { spatialite_e ("load XL error: %s\n", sqlite3_errmsg (sqlite)); sqlError = 1; goto clean_up; } } if (first_titles) current_row = 1; else current_row = 0; while (current_row < *rows) { /* binding query params */ sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); for (col = 0; col < columns; col++) { /* column values */ ret = freexl_get_cell_value (xl_handle, current_row, col, &cell); if (ret != FREEXL_OK) sqlite3_bind_null (stmt, col + 1); else { switch (cell.type) { case FREEXL_CELL_INT: sqlite3_bind_int (stmt, col + 1, cell.value.int_value); break; case FREEXL_CELL_DOUBLE: sqlite3_bind_double (stmt, col + 1, cell.value.double_value); break; case FREEXL_CELL_TEXT: case FREEXL_CELL_SST_TEXT: case FREEXL_CELL_DATE: case FREEXL_CELL_DATETIME: case FREEXL_CELL_TIME: sqlite3_bind_text (stmt, col + 1, cell.value.text_value, strlen (cell.value.text_value), SQLITE_STATIC); break; default: sqlite3_bind_null (stmt, col + 1); break; }; } } ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("load XL error: %s\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); sqlError = 1; goto clean_up; } current_row++; } sqlite3_finalize (stmt); clean_up: if (sqlError) { /* some error occurred - ROLLBACK */ ret = sqlite3_exec (sqlite, "ROLLBACK", NULL, 0, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("load XL error: %s\n", errMsg); sqlite3_free (errMsg); } spatialite_e ("XL not loaded\n\n\na ROLLBACK was automatically performed\n"); } else { /* ok - confirming pending transaction - COMMIT */ ret = sqlite3_exec (sqlite, "COMMIT", NULL, 0, &errMsg); if (ret != SQLITE_OK) { if (!err_msg) spatialite_e ("load XL error: %s\n", errMsg); else sprintf (err_msg, "load XL error: %s\n", errMsg); sqlite3_free (errMsg); return 0; } if (first_titles) *rows = *rows - 1; /* allow for header row */ spatialite_e ("XL loaded\n\n%d inserted rows\n", *rows); } freexl_close (xl_handle); return 1; error: freexl_close (xl_handle); if (!err_msg) spatialite_e ("XL datasource '%s' is not valid\n", path); else sprintf (err_msg, "XL datasource '%s' is not valid\n", path); return 0; } #endif /* FreeXL enabled/disabled */ SPATIALITE_DECLARE int dump_geojson (sqlite3 * sqlite, char *table, char *geom_col, char *outfile_path, int precision, int option) { /* dumping a geometry table as GeoJSON - Brad Hards 2011-11-09 */ char *sql; char *xgeom_col; char *xtable; sqlite3_stmt *stmt = NULL; FILE *out = NULL; int ret; int rows = 0; /* opening/creating the GeoJSON output file */ out = fopen (outfile_path, "wb"); if (!out) goto no_file; /* preparing SQL statement */ xtable = gaiaDoubleQuotedSql (table); xgeom_col = gaiaDoubleQuotedSql (geom_col); sql = sqlite3_mprintf ("SELECT AsGeoJSON(\"%s\", %d, %d) FROM \"%s\" WHERE \"%s\" IS NOT NULL", xgeom_col, precision, option, xtable, xgeom_col); free (xtable); free (xgeom_col); ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto sql_error; while (1) { /* scrolling the result set */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) { break; /* end of result set */ } if (ret == SQLITE_ROW) { rows++; fprintf (out, "%s\r\n", sqlite3_column_text (stmt, 0)); } else { goto sql_error; } } if (rows == 0) { goto empty_result_set; } sqlite3_finalize (stmt); fclose (out); return 1; sql_error: /* an SQL error occurred */ if (stmt) { sqlite3_finalize (stmt); } if (out) { fclose (out); } spatialite_e ("Dump GeoJSON error: %s\n", sqlite3_errmsg (sqlite)); return 0; no_file: /* Output file could not be created / opened */ if (stmt) { sqlite3_finalize (stmt); } if (out) { fclose (out); } spatialite_e ("ERROR: unable to open '%s' for writing\n", outfile_path); return 0; empty_result_set: /* the result set is empty - nothing to do */ if (stmt) { sqlite3_finalize (stmt); } if (out) { fclose (out); } spatialite_e ("The SQL SELECT returned no data to export...\n"); return 0; } libspatialite-4.1.1/src/headers/0000775000175000017500000000000012163503225013547 500000000000000libspatialite-4.1.1/src/headers/Makefile.am0000664000175000017500000000076312163502133015526 00000000000000 noinst_HEADERS = spatialite_private.h nobase_include_HEADERS = spatialite.h \ spatialite/gaiaexif.h \ spatialite/gaiaaux.h \ spatialite/gaiageo.h \ spatialite/gg_const.h \ spatialite/gg_structs.h \ spatialite/gg_core.h \ spatialite/gg_mbr.h \ spatialite/gg_formats.h \ spatialite/gg_dynamic.h \ spatialite/gg_advanced.h \ spatialite/gg_xml.h \ spatialite/gg_wfs.h \ spatialite/gg_dxf.h \ spatialite/spatialite.h \ spatialite/sqlite.h \ spatialite/debug.h \ spatialite/geopackage.h libspatialite-4.1.1/src/headers/spatialite_private.h0000664000175000017500000002377112163502133017540 00000000000000/* spatialite.h -- Gaia spatial support for SQLite version 4.1, 2013 May 8 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include /** \file spatialite_private.h SpatiaLite private header file */ #ifndef DOXYGEN_SHOULD_SKIP_THIS #ifdef _WIN32 #ifdef DLL_EXPORT #define SPATIALITE_PRIVATE #else #define SPATIALITE_PRIVATE #endif #else #define SPATIALITE_PRIVATE __attribute__ ((visibility("hidden"))) #endif #endif #ifndef _SPATIALITE_PRIVATE_H #ifndef DOXYGEN_SHOULD_SKIP_THIS #define _SPATIALITE_PRIVATE_H #endif #ifdef __cplusplus extern "C" { #endif /** spatial_ref_sys_init2: will create the "spatial_ref_sys" table and will populate this table with any supported EPSG SRID definition */ #define GAIA_EPSG_ANY -9999 /** spatial_ref_sys_init2: will create the "spatial_ref_sys" table and will populate this table only inserting WGS84-related definitions */ #define GAIA_EPSG_WGS84_ONLY -9998 /** spatial_ref_sys_init2: will create the "spatial_ref_sys" table but will avoid to insert any row at all */ #define GAIA_EPSG_NONE -9997 #define SPATIALITE_STATISTICS_GENUINE 1 #define SPATIALITE_STATISTICS_VIEWS 2 #define SPATIALITE_STATISTICS_VIRTS 3 #define SPATIALITE_STATISTICS_LEGACY 4 struct vxpath_ns { /* a Namespace definition */ char *Prefix; char *Href; struct vxpath_ns *Next; }; struct vxpath_namespaces { /* Namespace container */ struct vxpath_ns *First; struct vxpath_ns *Last; }; struct splite_geos_cache_item { unsigned char gaiaBlob[64]; int gaiaBlobSize; uLong crc32; void *geosGeom; void *preparedGeosGeom; }; struct splite_xmlSchema_cache_item { time_t timestamp; char *schemaURI; void *schemaDoc; void *parserCtxt; void *schema; }; #define MAX_XMLSCHEMA_CACHE 16 struct splite_internal_cache { void *xmlParsingErrors; void *xmlSchemaValidationErrors; void *xmlXPathErrors; struct splite_geos_cache_item cacheItem1; struct splite_geos_cache_item cacheItem2; struct splite_xmlSchema_cache_item xmlSchemaCache[MAX_XMLSCHEMA_CACHE]; }; struct epsg_defs { int srid; char *auth_name; int auth_srid; char *ref_sys_name; char *proj4text; char *srs_wkt; struct epsg_defs *next; }; SPATIALITE_PRIVATE struct epsg_defs *add_epsg_def (int filter_srid, struct epsg_defs **first, struct epsg_defs **last, int srid, const char *auth_name, int auth_srid, const char *ref_sys_name); SPATIALITE_PRIVATE void add_proj4text (struct epsg_defs *p, int count, const char *text); SPATIALITE_PRIVATE void add_srs_wkt (struct epsg_defs *p, int count, const char *text); SPATIALITE_PRIVATE void initialize_epsg (int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE int checkSpatialMetaData (const void *sqlite); SPATIALITE_PRIVATE int delaunay_triangle_check (void *pg); SPATIALITE_PRIVATE void *voronoj_build (int pgs, void *first, double extra_frame_size); SPATIALITE_PRIVATE void *voronoj_export (void *voronoj, void *result, int only_edges); SPATIALITE_PRIVATE void voronoj_free (void *voronoj); SPATIALITE_PRIVATE void *concave_hull_build (void *first, int dimension_model, double factor, int allow_holes); SPATIALITE_PRIVATE int createAdvancedMetaData (void *sqlite); SPATIALITE_PRIVATE void updateSpatiaLiteHistory (void *sqlite, const char *table, const char *geom, const char *operation); SPATIALITE_PRIVATE int createGeometryColumns (void *p_sqlite); SPATIALITE_PRIVATE int check_layer_statistics (void *p_sqlite); SPATIALITE_PRIVATE int check_views_layer_statistics (void *p_sqlite); SPATIALITE_PRIVATE int check_virts_layer_statistics (void *p_sqlite); SPATIALITE_PRIVATE void updateGeometryTriggers (void *p_sqlite, const char *table, const char *column); SPATIALITE_PRIVATE int getRealSQLnames (void *p_sqlite, const char *table, const char *column, char **real_table, char **real_column); SPATIALITE_PRIVATE void buildSpatialIndex (void *p_sqlite, const unsigned char *table, const char *column); SPATIALITE_PRIVATE int doComputeFieldInfos (void *p_sqlite, const char *table, const char *column, int stat_type, void *p_lyr); SPATIALITE_PRIVATE void getProjParams (void *p_sqlite, int srid, char **params); SPATIALITE_PRIVATE int getEllipsoidParams (void *p_sqlite, int srid, double *a, double *b, double *rf); SPATIALITE_PRIVATE void addVectorLayer (void *list, const char *layer_type, const char *table_name, const char *geometry_column, int geometry_type, int srid, int spatial_index); SPATIALITE_PRIVATE void addVectorLayerExtent (void *list, const char *table_name, const char *geometry_column, int count, double min_x, double min_y, double max_x, double max_y); SPATIALITE_PRIVATE void addLayerAttributeField (void *list, const char *table_name, const char *geometry_column, int ordinal, const char *column_name, int null_values, int integer_values, int double_values, int text_values, int blob_values, int null_max_size, int max_size, int null_int_range, void *integer_min, void *integer_max, int null_double_range, double double_min, double double_max); SPATIALITE_PRIVATE int createStylingTables (void *p_sqlite, int relaxed); SPATIALITE_PRIVATE int register_external_graphic (void *p_sqlite, const char *xlink_href, const unsigned char *p_blob, int n_bytes, const char *title, const char *abstract, const char *file_name); SPATIALITE_PRIVATE int register_vector_styled_layer (void *p_sqlite, const char *f_table_name, const char *f_geometry_column, int style_id, const unsigned char *p_blob, int n_bytes); SPATIALITE_PRIVATE int register_raster_styled_layer (void *p_sqlite, const char *coverage_name, int style_id, const unsigned char *p_blob, int n_bytes); SPATIALITE_PRIVATE int register_styled_group (void *p_sqlite, const char *group_name, const char *f_table_name, const char *f_geometry_column, const char *coverage_name, int style_id, int paint_order); SPATIALITE_PRIVATE int styled_group_set_infos (void *p_sqlite, const char *group_name, const char *title, const char *abstract); SPATIALITE_PRIVATE int createIsoMetadataTables (void *p_sqlite, int relaxed); SPATIALITE_PRIVATE int get_iso_metadata_id (void *p_sqlite, const char *fileIdentifier, void *p_id); SPATIALITE_PRIVATE int register_iso_metadata (void *p_sqlite, const char *scope, const unsigned char *p_blob, int n_bytes, void *p_id, const char *fileIdentifier); SPATIALITE_PRIVATE int createRasterCoveragesTable (void *p_sqlite); SPATIALITE_PRIVATE int checkPopulatedCoverage (void *p_sqlite, const char *coverage_name); SPATIALITE_PRIVATE const char *splite_lwgeom_version (void); SPATIALITE_PRIVATE void splite_lwgeom_init (void); SPATIALITE_PRIVATE void splite_free_geos_cache_item (struct splite_geos_cache_item *p); SPATIALITE_PRIVATE void splite_free_xml_schema_cache_item (struct splite_xmlSchema_cache_item *p); SPATIALITE_PRIVATE void vxpath_free_namespaces (struct vxpath_namespaces *ns_list); SPATIALITE_PRIVATE struct vxpath_namespaces *vxpath_get_namespaces (void *p_xml_doc); SPATIALITE_PRIVATE int vxpath_eval_expr (void *p_cache, void *xml_doc, const char *xpath_expr, void *p_xpathCtx, void *p_xpathObj); SPATIALITE_PRIVATE void *register_spatialite_sql_functions (void *db, void *cache); SPATIALITE_PRIVATE void init_spatialite_virtualtables (void *p_db, void *p_cache); SPATIALITE_PRIVATE void spatialite_splash_screen (int verbose); SPATIALITE_PRIVATE void geos_error (const char *fmt, ...); SPATIALITE_PRIVATE void geos_warning (const char *fmt, ...); #ifdef __cplusplus } #endif #endif /* _SPATIALITE_PRIVATE_H */ libspatialite-4.1.1/src/headers/spatialite/0000775000175000017500000000000012163503225015706 500000000000000libspatialite-4.1.1/src/headers/spatialite/gaiageo.h0000664000175000017500000000445512163502133017400 00000000000000/* gaiageo.h -- Gaia common support for geometries version 4.1, 2013 May 8 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Klaus Foerster klaus.foerster@svg.cc Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /** \file gaiageo.h Geometry handling functions and constants */ #ifndef DOXYGEN_SHOULD_SKIP_THIS /* stdio.h included for FILE objects. */ #include #ifdef DLL_EXPORT #define GAIAGEO_DECLARE __declspec(dllexport) #else #define GAIAGEO_DECLARE extern #endif #endif #ifndef _GAIAGEO_H #ifndef DOXYGEN_SHOULD_SKIP_THIS #define _GAIAGEO_H #endif #include "gg_const.h" #include "gg_structs.h" #include "gg_core.h" #include "gg_mbr.h" #include "gg_formats.h" #include "gg_dynamic.h" #include "gg_advanced.h" #include "gg_xml.h" #endif /* _GAIAGEO_H */ libspatialite-4.1.1/src/headers/spatialite/gg_dxf.h0000664000175000017500000006702012163502133017237 00000000000000/* gg_dxf.h -- Gaia common support for DXF files version 4.1, 2013 May 14 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /** \file gg_dxf.h Geometry handling functions: DXF files */ #ifndef _GG_DXF_H #ifndef DOXYGEN_SHOULD_SKIP_THIS #define _GG_DXF_H #endif #ifdef __cplusplus extern "C" { #endif /* constant values for DXF */ /** import distinct layers */ #define GAIA_DXF_IMPORT_BY_LAYER 1 /** import layers mixed altogether by type */ #define GAIA_DXF_IMPORT_MIXED 2 /** auto-selects 2D or 3D */ #define GAIA_DXF_AUTO_2D_3D 3 /** always force 2D */ #define GAIA_DXF_FORCE_2D 4 /** always force 3D */ #define GAIA_DXF_FORCE_3D 5 /** don't apply any special Ring handling */ #define GAIA_DXF_RING_NONE 6 /** apply special "linked rings" handling */ #define GAIA_DXF_RING_LINKED 7 /** apply special "unlinked rings" handling */ #define GAIA_DXF_RING_UNLINKED 8 /** DXF version [Writer] */ #define GAIA_DXF_V12 1000 /* data structs */ /** wrapper for DXF Extra Attribute object */ typedef struct gaia_dxf_extra_attr { /** pointer to Extra Attribute Key value */ char *key; /** pointer to Extra Attribute Value string */ char *value; /** pointer to next item [linked list] */ struct gaia_dxf_extra_attr *next; } gaiaDxfExtraAttr; /** Typedef for DXF Extra Attribute object \sa gaiaDxfExtraAttr */ typedef gaiaDxfExtraAttr *gaiaDxfExtraAttrPtr; /** wrapper for DXF Insert object */ typedef struct gaia_dxf_insert { /** pointer to Block ID string */ char *block_id; /** X coordinate */ double x; /** Y coordinate */ double y; /** Z coordinate */ double z; /** X scale factor */ double scale_x; /** Y scale factor */ double scale_y; /** Z scale factor */ double scale_z; /** rotation angle */ double angle; /** boolean flag: contains Text objects */ int hasText; /** boolean flag: contains Point objects */ int hasPoint; /** boolean flag: contains Polyline (Linestring) objects */ int hasLine; /** boolean flag: contains Polyline (Polygon) objects */ int hasPolyg; /** boolean flag: contains Hatch objects */ int hasHatch; /** boolean flag: contains 3d Text objects */ int is3Dtext; /** boolean flag: contains 3d Point objects */ int is3Dpoint; /** boolean flag: contains 3d Polyline (Linestring) objects */ int is3Dline; /** boolean flag: contains 3d Polyline (Polygon) objects */ int is3Dpolyg; /** pointer to first Extra Attribute [linked list] */ gaiaDxfExtraAttrPtr first; /** pointer to last Extra Attribute [linked list] */ gaiaDxfExtraAttrPtr last; /** pointer to next item [linked list] */ struct gaia_dxf_insert *next; } gaiaDxfInsert; /** Typedef for DXF Insert object \sa gaiaDxfText */ typedef gaiaDxfInsert *gaiaDxfInsertPtr; /** wrapper for DXF Text object */ typedef struct gaia_dxf_text { /** pointer to Label string */ char *label; /** X coordinate */ double x; /** Y coordinate */ double y; /** Z coordinate */ double z; /** label rotation angle */ double angle; /** pointer to first Extra Attribute [linked list] */ gaiaDxfExtraAttrPtr first; /** pointer to last Extra Attribute [linked list] */ gaiaDxfExtraAttrPtr last; /** pointer to next item [linked list] */ struct gaia_dxf_text *next; } gaiaDxfText; /** Typedef for DXF Text object \sa gaiaDxfText */ typedef gaiaDxfText *gaiaDxfTextPtr; /** wrapper for DXF Point object */ typedef struct gaia_dxf_point { /** X coordinate */ double x; /** Y coordinate */ double y; /** Z coordinate */ double z; /** pointer to first Extra Attribute [linked list] */ gaiaDxfExtraAttrPtr first; /** pointer to last Extra Attribute [linked list] */ gaiaDxfExtraAttrPtr last; /** pointer to next item [linked list] */ struct gaia_dxf_point *next; } gaiaDxfPoint; /** Typedef for DXF Point object \sa gaiaDxfPoint */ typedef gaiaDxfPoint *gaiaDxfPointPtr; /** wrapper for DXF Circle object */ typedef struct gaia_dxf_circle { /** Center X coordinate */ double cx; /** Center Y coordinate */ double cy; /** Center Z coordinate */ double cz; /** radius */ double radius; } gaiaDxfCircle; /** Typedef for DXF Circle object \sa gaiaDxfCircle */ typedef gaiaDxfCircle *gaiaDxfCirclePtr; /** wrapper for DXF Arc object */ typedef struct gaia_dxf_arc { /** Center X coordinate */ double cx; /** Center Y coordinate */ double cy; /** Center Z coordinate */ double cz; /** radius */ double radius; /** start angle */ double start; /** stop angle */ double stop; } gaiaDxfArc; /** Typedef for DXF Arc object \sa gaiaDxfArc */ typedef gaiaDxfArc *gaiaDxfArcPtr; /** wrapper for DXF Polygon interior hole object */ typedef struct gaia_dxf_hole { /** total count of points */ int points; /** array of X coordinates */ double *x; /** array of Y coordinates */ double *y; /** array of Z coordinates */ double *z; /** pointer to next item [linked list] */ struct gaia_dxf_hole *next; } gaiaDxfHole; /** Typedef for DXF Point object \sa gaiaDxfHole */ typedef gaiaDxfHole *gaiaDxfHolePtr; /** wrapper for DXF Polyline object could be a Linestring or a Polygon depending on the is_closed flag */ typedef struct gaia_dxf_polyline { /** open (Linestring) or closed (Polygon exterior ring) */ int is_closed; /** total count of points */ int points; /** array of X coordinates */ double *x; /** array of Y coordinates */ double *y; /** array of Z coordinates */ double *z; /** pointer to first Polygon hole [linked list] */ gaiaDxfHolePtr first_hole; /** pointer to last Polygon hole [linked list] */ gaiaDxfHolePtr last_hole; /** pointer to first Extra Attribute [linked list] */ gaiaDxfExtraAttrPtr first; /** pointer to last Extra Attribute [linked list] */ gaiaDxfExtraAttrPtr last; /** pointer to next item [linked list] */ struct gaia_dxf_polyline *next; } gaiaDxfPolyline; /** Typedef for DXF Polyline object \sa gaiaDxfPolyline */ typedef gaiaDxfPolyline *gaiaDxfPolylinePtr; /** wrapper for DXF Pattern Segment object */ typedef struct gaia_dxf_hatch_segm { /** start X */ double x0; /** start Y */ double y0; /** end X */ double x1; /** end Y */ double y1; /** pointer to next item [linked list] */ struct gaia_dxf_hatch_segm *next; } gaiaDxfHatchSegm; /** Typedef for DXF Hatch Segment object \sa gaiaDxfHatch */ typedef gaiaDxfHatchSegm *gaiaDxfHatchSegmPtr; /** wrapper for DXF Boundary Path object */ typedef struct gaia_dxf_boundary_path { /** pointer to first segment */ gaiaDxfHatchSegmPtr first; /** pointer to last segment */ gaiaDxfHatchSegmPtr last; /** pointer to next item [linked list] */ struct gaia_dxf_boundary_path *next; } gaiaDxfBoundaryPath; /** Typedef for DXF Boundary Path object \sa gaiaDxfBoundaryPath */ typedef gaiaDxfBoundaryPath *gaiaDxfBoundaryPathPtr; /** wrapper for DXF Pattern Hatch object */ typedef struct gaia_dxf_hatch { /** hatch pattern spacing */ double spacing; /** hatch line angle */ double angle; /** hatch line base X */ double base_x; /** hatch line base Y */ double base_y; /** hatch line offset X */ double offset_x; /** hatch line offset Y */ double offset_y; /** pointer to first Boundary */ gaiaDxfBoundaryPathPtr first; /** pointer to last Boundary */ gaiaDxfBoundaryPathPtr last; /** pointer to Boundary geometry */ gaiaGeomCollPtr boundary; /** pointer to first Pattern segment */ gaiaDxfHatchSegmPtr first_out; /** pointer to last Pattern segment */ gaiaDxfHatchSegmPtr last_out; /** pointer to next item [linked list] */ struct gaia_dxf_hatch *next; } gaiaDxfHatch; /** Typedef for DXF Hatch object \sa gaiaDxfHatch */ typedef gaiaDxfHatch *gaiaDxfHatchPtr; /** wrapper for DXF Block object */ typedef struct gaia_dxf_block { /** Boolean flag: this block is referenced by some Insert */ int hasInsert; /** pointer to Layer Name string */ char *layer_name; /** pointer to Block ID string */ char *block_id; /** pointer to first DXF Text object [linked list] */ gaiaDxfTextPtr first_text; /** pointer to last DXF Text object [linked list] */ gaiaDxfTextPtr last_text; /** pointer to first DXF Point object [linked list] */ gaiaDxfPointPtr first_point; /** pointer to last DXF Point object [linked list] */ gaiaDxfPointPtr last_point; /** pointer to first DXF Polyline (Linestring) object [linked list] */ gaiaDxfPolylinePtr first_line; /** pointer to last DXF Polyline (Linestring) object [linked list] */ gaiaDxfPolylinePtr last_line; /** pointer to first DXF Polyline (Polygon) object [linked list] */ gaiaDxfPolylinePtr first_polyg; /** pointer to last DXF Polyline (Polygon) object [linked list] */ gaiaDxfPolylinePtr last_polyg; /** pointer to first DXF Hatch object [linked list] */ gaiaDxfHatchPtr first_hatch; /** pointer to last DXF Hatch object [linked list] */ gaiaDxfHatchPtr last_hatch; /** boolean flag: contains 3d Text objects */ int is3Dtext; /** boolean flag: contains 3d Point objects */ int is3Dpoint; /** boolean flag: contains 3d Polyline (Linestring) objects */ int is3Dline; /** boolean flag: contains 3d Polyline (Polygon) objects */ int is3Dpolyg; /** pointer to next item [linked list] */ struct gaia_dxf_block *next; } gaiaDxfBlock; /** Typedef for DXF Block object \sa gaiaDxfBlock */ typedef gaiaDxfBlock *gaiaDxfBlockPtr; /** wrapper for DXF Layer object */ typedef struct gaia_dxf_layer { /** pointer to Layer Name string */ char *layer_name; /** pointer to first DXF Text object [linked list] */ gaiaDxfTextPtr first_text; /** pointer to last DXF Text object [linked list] */ gaiaDxfTextPtr last_text; /** pointer to first DXF Point object [linked list] */ gaiaDxfPointPtr first_point; /** pointer to lasst DXF Point object [linked list] */ gaiaDxfPointPtr last_point; /** pointer to first DXF Polyline (Linestring) object [linked list] */ gaiaDxfPolylinePtr first_line; /** pointer to last DXF Polyline (Linestring) object [linked list] */ gaiaDxfPolylinePtr last_line; /** pointer to first DXF Polyline (Polygon) object [linked list] */ gaiaDxfPolylinePtr first_polyg; /** pointer to last DXF Polyline (Polygon) object [linked list] */ gaiaDxfPolylinePtr last_polyg; /** pointer to first DXF Hatch object [linked list] */ gaiaDxfHatchPtr first_hatch; /** pointer to last DXF Hatch object [linked list] */ gaiaDxfHatchPtr last_hatch; /** pointer to first DXF Insert Text object [linked list] */ gaiaDxfInsertPtr first_ins_text; /** pointer to last DXF Insert Text object [linked list] */ gaiaDxfInsertPtr last_ins_text; /** pointer to first DXF Insert Point object [linked list] */ gaiaDxfInsertPtr first_ins_point; /** pointer to last DXF Insert Point object [linked list] */ gaiaDxfInsertPtr last_ins_point; /** pointer to first DXF Insert Polyline (Linestring) object [linked list] */ gaiaDxfInsertPtr first_ins_line; /** pointer to last DXF Insert Polyline (Linestring) object [linked list] */ gaiaDxfInsertPtr last_ins_line; /** pointer to first DXF Insert Polyline (Polygon) object [linked list] */ gaiaDxfInsertPtr first_ins_polyg; /** pointer to last DXF Insert Polyline (Polygon) object [linked list] */ gaiaDxfInsertPtr last_ins_polyg; /** pointer to first DXF Insert Hatch object [linked list] */ gaiaDxfInsertPtr first_ins_hatch; /** pointer to last DXF Insert Hatch object [linked list] */ gaiaDxfInsertPtr last_ins_hatch; /** boolean flag: contains 3d Text objects */ int is3Dtext; /** boolean flag: contains 3d Point objects */ int is3Dpoint; /** boolean flag: contains 3d Polyline (Linestring) objects */ int is3Dline; /** boolean flag: contains 3d Polyline (Polygon) objects */ int is3Dpolyg; /** boolean flag: contains 3d Insert Text objects */ int is3DinsText; /** boolean flag: contains 3d Insert Point objects */ int is3DinsPoint; /** boolean flag: contains 3d Insert Polyline (Linestring) objects */ int is3DinsLine; /** boolean flag: contains 3d Insert Polyline (Polygon) objects */ int is3DinsPolyg; /** boolean flag: contains Text Extra Attributes */ int hasExtraText; /** boolean flag: contains Point Extra Attributes */ int hasExtraPoint; /** boolean flag: contains Polyline (Linestring) Extra Attributes */ int hasExtraLine; /** boolean flag: contains Polyline (Polygon) Extra Attributes */ int hasExtraPolyg; /** boolean flag: contains Insert Text Extra Attributes */ int hasExtraInsText; /** boolean flag: contains Insert Text Extra Attributes */ int hasExtraInsPoint; /** boolean flag: contains Insert Polyline (Linestring) Extra Attributes */ int hasExtraInsLine; /** boolean flag: contains Insert Polyline (Polygon) Extra Attributes */ int hasExtraInsPolyg; /** pointer to next item [linked list] */ struct gaia_dxf_layer *next; } gaiaDxfLayer; /** Typedef for DXF Layer object \sa gaiaDxfLayer */ typedef gaiaDxfLayer *gaiaDxfLayerPtr; /** wrapper for DXF Parser object */ typedef struct gaia_dxf_parser { /** OUT: origin/input filename */ char *filename; /** OUT: pointer to first DXF Layer object [linked list] */ gaiaDxfLayerPtr first_layer; /** OUT: pointer to last DXF Layer object [linked list] */ gaiaDxfLayerPtr last_layer; /** OUT: pointer to first DXF Block object [linked list] */ gaiaDxfBlockPtr first_block; /** OUT: pointer to last DXF Block object [linked list] */ gaiaDxfBlockPtr last_block; /** IN: parser option - dimension handlig */ int force_dims; /** IN: parser option - the SRID */ int srid; /** IN: parser option - pointer the single Layer Name string */ const char *selected_layer; /** IN: parser option - pointer to prefix string for DB tables */ const char *prefix; /** IN: parser option - linked rings special handling */ int linked_rings; /** IN: parser option - unlinked rings special handling */ int unlinked_rings; /** internal parser variable */ int line_no; /** internal parser variable */ int op_code_line; /** internal parser variable */ int op_code; /** internal parser variable */ int section; /** internal parser variable */ int tables; /** internal parser variable */ int blocks; /** internal parser variable */ int entities; /** internal parser variable */ int is_layer; /** internal parser variable */ int is_block; /** internal parser variable */ int is_text; /** internal parser variable */ int is_point; /** internal parser variable */ int is_polyline; /** internal parser variable */ int is_lwpolyline; /** internal parser variable */ int is_line; /** internal parser variable */ int is_circle; /** internal parser variable */ int is_arc; /** internal parser variable */ int is_vertex; /** internal parser variable */ int is_hatch; /** internal parser variable */ int is_hatch_boundary; /** internal parser variable */ int is_insert; /** internal parser variable */ int eof; /** internal parser variable */ int error; /** internal parser variable */ char *curr_layer_name; /** internal parser variable */ gaiaDxfText curr_text; /** internal parser variable */ gaiaDxfInsert curr_insert; /** internal parser variable */ gaiaDxfBlock curr_block; /** internal parser variable */ gaiaDxfPoint curr_point; /** internal parser variable */ gaiaDxfPoint curr_end_point; /** internal parser variable */ gaiaDxfCircle curr_circle; /** internal parser variable */ gaiaDxfArc curr_arc; /** internal parser variable */ int is_closed_polyline; /** internal parser variable */ gaiaDxfPointPtr first_pt; /** internal parser variable */ gaiaDxfPointPtr last_pt; /** internal parser variable */ char *extra_key; /** internal parser variable */ char *extra_value; /** internal parser variable */ gaiaDxfExtraAttrPtr first_ext; /** internal parser variable */ gaiaDxfExtraAttrPtr last_ext; /** internal parser variable */ gaiaDxfHatchPtr curr_hatch; /** internal parser variable */ int undeclared_layers; } gaiaDxfParser; /** Typedef for DXF Layer object \sa gaiaDxfParser */ typedef gaiaDxfParser *gaiaDxfParserPtr; /** wrapper for DXF Write object */ typedef struct gaia_dxf_write { /** IN: output DXF file handle */ FILE *out; /** IN: coord's precision (number of decimal digits) */ int precision; /** IN: DXF version number */ int version; /** OUT: count of exported geometries */ int count; /** OUT: error flag */ int error; } gaiaDxfWriter; /** Typedef for DXF Writer object */ typedef gaiaDxfWriter *gaiaDxfWriterPtr; /* function prototypes */ /** Creates a DXF Parser object \param srid the SRID value to be used for all Geometries \param force_dims should be one of GAIA_DXF_AUTO_2D_3D, GAIA_DXF_FORCE_2D or GAIA_DXF_FORCE_3D \param prefix an optional prefix to be used for DB target tables (could be NULL) \param selected_layers if set, only the DXF Layer of corresponding name will be imported (could be NULL) \param special_rings rings handling: should be one of GAIA_DXF_RING_NONE, GAIA_DXF_RING_LINKED of GAIA_DXF_RING_UNLINKED \return the pointer to a DXF Parser object \sa gaiaDestroyDxfParser, gaiaParseDxfFile, gaiaLoadFromDxfParser \note the DXF Parser object corresponds to dynamically allocated memory: so you are responsible to destroy this object before or later by invoking gaiaDestroyDxfParser(). */ GAIAGEO_DECLARE gaiaDxfParserPtr gaiaCreateDxfParser (int srid, int force_dims, const char *prefix, const char *selected_layer, int special_rings); /** Destroying a DXF Parser object \param parser pointer to DXF Parser object \sa gaiaCreateDxfParser \note the pointer to the DXF Parser object to be finalized is expected to be the one returned by a previous call to gaiaCreateDxfParser. */ GAIAGEO_DECLARE void gaiaDestroyDxfParser (gaiaDxfParserPtr parser); /** Parsing a DXF file \param parser pointer to DXF Parser object \param dxf_path pathname of the DXF external file to be parsed \return 0 on failure, any other value on success \sa gaiaCreateDxfParser, gaiaDestroyDxfParser, gaiaLoadFromDxfParser \note the pointer to the DXF Parser object is expected to be the one returned by a previous call to gaiaCreateDxfParser. A DXF Parser object can be used only a single time to parse a DXF file */ GAIAGEO_DECLARE int gaiaParseDxfFile (gaiaDxfParserPtr parser, const char *dxf_path); /** Populating a DB so to permanently store all Geometries from a DXF Parser \param db_handle handle to a valid DB connection \param parser pointer to DXF Parser object \param mode should be one of GAIA_DXF_IMPORT_BY_LAYER or GAIA_DXF_IMPORT_MIXED \param append boolean flag: if set and some required DB table already exists will attempt to append further rows into the existing table. otherwise an error will be returned. \return 0 on failure, any other value on success \sa gaiaCreateDxfParser, gaiaDestroyDxfParser, gaiaParseDxfFile \note the pointer to the DXF Parser object is expected to be the one returned by a previous call to gaiaCreateDxfParser and previously used for a succesfull call to gaiaParseDxfFile */ GAIAGEO_DECLARE int gaiaLoadFromDxfParser (sqlite3 * db_handle, gaiaDxfParserPtr parser, int mode, int append); /** Initializing a DXF Writer Object \param writer pointer to the gaiaDxfWriter object to be initialized \param out file handle to DXF output file \param precision number of decimal digits for any coordinate \param version currently always expected to be GAIA_DXF_V12 \return 0 on failure, any other value on success \sa gaiaDxfWriteHeader, gaiaExportDxf */ GAIAGEO_DECLARE int gaiaDxfWriterInit (gaiaDxfWriterPtr dxf, FILE * out, int precision, int version); /** Writing the DXF Header \param dxf pointer to a properly initialized gaiaDxfWriter object \param minx the minimum X coordinate contained within the DXF \param minx the minimum Y coordinate contained within the DXF \param minx the minimum Z coordinate contained within the DXF \param minx the maximum X coordinate contained within the DXF \param minx the maximum Y coordinate contained within the DXF \param minx the maximum Z coordinate contained within the DXF \return 0 on failure, any other value on success \sa gaiaDxfWriterInit, gaiaDxfWriteFooter, gaiaDxfWriteTables, gaiaDxfWriteEntities */ GAIAGEO_DECLARE int gaiaDxfWriteHeader (gaiaDxfWriterPtr dxf, double minx, double miny, double minz, double maxx, double maxy, double maxz); /** Writing a DXF Entities Section Header \param dxf pointer to a properly initialized gaiaDxfWriter object \return 0 on failure, any other value on success \sa gaiaDxfWriteHeader */ GAIAGEO_DECLARE int gaiaDxfWriteFooter (gaiaDxfWriterPtr dxf); /** Writing the DXF Tables Section Header \param dxf pointer to a properly initialized gaiaDxfWriter object \return 0 on failure, any other value on success \sa gaiaDxfWriteHeader, gaiaDxfWriteEndSection */ GAIAGEO_DECLARE int gaiaDxfWriteTables (gaiaDxfWriterPtr dxf); /** Writing a DXF Table/Layer definition \param dxf pointer to a properly initialized gaiaDxfWriter object \param layer_name name of the layer \return 0 on failure, any other value on success \sa gaiaDxfWriteTables, gaiaDxfWriteEndSection */ GAIAGEO_DECLARE int gaiaDxfWriteLayer (gaiaDxfWriterPtr dxf, const char *layer_name); /** Writing a DXF Entities Section Header \param dxf pointer to a properly initialized gaiaDxfWriter object \return 0 on failure, any other value on success \sa gaiaDxfWriteHeader, gaiaDxfWriteEndSection, gaiaDxfWritePoint, gaiaDxfWriteText, gaiaDxfWriteLine, gaiaDxfWriteRing, gaiaDxfWriteGeometry */ GAIAGEO_DECLARE int gaiaDxfWriteEntities (gaiaDxfWriterPtr dxf); /** Writing a DXF Entities Section Header \param dxf pointer to a properly initialized gaiaDxfWriter object \return 0 on failure, any other value on success \sa gaiaDxfWriteTables, gaiaDxfWriteEntities */ GAIAGEO_DECLARE int gaiaDxfWriteEndSection (gaiaDxfWriterPtr dxf); /** Writing a DXF Point Entity \param dxf pointer to a properly initialized gaiaDxfWriter object \param layer_name name of the corresponding layer \param x X coordinate value \param y Y coordinate value \param z Z coordinate value \return 0 on failure, any other value on success \sa gaiaDxfWriteEntities, gaiaDxfWriteEndSection, gaiaDxfWriteText, gaiaDxfWriteLine, gaiaDxfWriteRing, gaiaDxfWriteGeometry */ GAIAGEO_DECLARE int gaiaDxfWritePoint (gaiaDxfWriterPtr dxf, const char *layer_name, double x, double y, double z); /** Writing a DXF Text Entity \param dxf pointer to a properly initialized gaiaDxfWriter object \param layer_name name of the corresponding layer \param x X coordinate value \param y Y coordinate value \param z Z coordinate value \param label text string containing the label value \param text_height height of the text in map units \param angle text rotation angle \return 0 on failure, any other value on success \sa gaiaDxfWriteEntities, gaiaDxfWriteEndSection, gaiaDxfWritePoint, gaiaDxfWriteLine, gaiaDxfWriteRing, gaiaDxfWriteGeometry */ GAIAGEO_DECLARE int gaiaDxfWriteText (gaiaDxfWriterPtr dxf, const char *layer_name, double x, double y, double z, const char *label, double text_height, double angle); /** Writing a DXF Polyline (opened) Entity \param dxf pointer to a properly initialized gaiaDxfWriter object \param layer_name name of the corresponding layer \param line pointer to the internal Linestring to be exported into the DXF \return 0 on failure, any other value on success \sa gaiaDxfWriteEntities, gaiaDxfWriteEndSection, gaiaDxfWritePoint, gaiaDxfWriteText, gaiaDxfWriteRing, gaiaDxfWriteGeometry */ GAIAGEO_DECLARE int gaiaDxfWriteLine (gaiaDxfWriterPtr dxf, const char *layer_name, gaiaLinestringPtr line); /** Writing a DXF Polyline (closed) Entity \param dxf pointer to a properly initialized gaiaDxfWriter object \param layer_name name of the corresponding layer \param line pointer to the internal Ring to be exported into the DXF \return 0 on failure, any other value on success \sa gaiaDxfWriteEntities, gaiaDxfWriteEndSection, gaiaDxfWritePoint, gaiaDxfWriteText, gaiaDxfWriteLine, gaiaDxfWriteGeometry */ GAIAGEO_DECLARE int gaiaDxfWriteRing (gaiaDxfWriterPtr dxf, const char *layer_name, gaiaRingPtr ring); /** Writing a DXF generic Entity \param dxf pointer to a properly initialized gaiaDxfWriter object \param layer_name name of the corresponding layer \param line pointer to the internal Ring to be exported into the DXF \param label text string containing the label value (could be NULL) \param text_height only for Text Labels: ingnored in any other case. \param text_rotation only for Text Labels: ingnored in any other case. \return 0 on failure, any other value on success \sa gaiaDxfWriteEntities, gaiaDxfWriteEndSection, gaiaDxfWritePoint, gaiaDxfWriteText, gaiaDxfWriteLine, gaiaDxfWriteRing */ GAIAGEO_DECLARE int gaiaDxfWriteGeometry (gaiaDxfWriterPtr dxf, const char *layer_name, const char *label, double text_height, double text_rotation, gaiaGeomCollPtr geometry); /** Exporting a complex DXF file \param dxf pointer to a properly initialized gaiaDxfWriter object \param db_hanlde handle to the current DB connection \param sql a text string defining the SQL query to be used for extracting all geometries/entities to be exported into the output DXF \param layer_col_name name of the SQL resultset column containing the Layer name \param geom_col_name name of the SQL resultset column containing Geometries \param label_col_name name of the SQL resultset column containing Label values (could be NULL) \param text_height_col_name name of the SQL resultset column containing Text Height values (could be NULL) \param text_rotation_col_name name of the SQL resultset column containing Text Rotation values (could be NULL) \param geom_filter an optional arbitrary Geometry to be used as a Spatial Filter (could be NULL) \return 0 on failure; the total count of exported entities on success \sa gaiaDxfWriterInit */ GAIAGEO_DECLARE int gaiaExportDxf (gaiaDxfWriterPtr dxf, sqlite3 * db_handle, const char *sql, const char *layer_col_name, const char *geom_col_name, const char *label_col_name, const char *text_height_col_name, const char *text_rotation_col_name, gaiaGeomCollPtr geom_filter); #ifdef __cplusplus } #endif #endif /* _GG_DXF_H */ libspatialite-4.1.1/src/headers/spatialite/gg_dynamic.h0000664000175000017500000003154412163502133020104 00000000000000/* gg_dynamic.h -- Gaia common support for geometries: DynamicLine functions version 4.1, 2013 May 8 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /** \file gg_dynamic.h Geometry handling functions: DynamicLine handling */ #ifndef _GG_DYNAMIC #ifndef DOXYGEN_SHOULD_SKIP_THIS #define _GG_DYNAMIC #endif #ifdef __cplusplus extern "C" { #endif /* function prototypes */ /** Creates a new dynamicly growing line/ring object \return the pointer to newly created object \sa gaiaCreateDynamicLine, gaiaFreeDynamicLine \note you are responsible to destroy (before or after) any allocated dynamically growing line/ring object. */ GAIAGEO_DECLARE gaiaDynamicLinePtr gaiaAllocDynamicLine (void); /** Destroys a dynamically growing line/ring object \param p pointer to object to be destroyed \sa gaiaAllocDynamicLine */ GAIAGEO_DECLARE void gaiaFreeDynamicLine (gaiaDynamicLinePtr p); /** Appends a new 2D Point [XY] at the end of a dynamically growing line/ring object \param p pointer to the dynamically growing line/ring object. \param x X coordinate of the Point \param y Y coordinate of the Point \return the pointer to newly created Point */ GAIAGEO_DECLARE gaiaPointPtr gaiaAppendPointToDynamicLine (gaiaDynamicLinePtr p, double x, double y); /** Appends a new 3D Point [XYZ] at the end of a dynamically growing line/ring object \param p pointer to the dynamically growing line/ring object. \param x X coordinate of the Point \param y Y coordinate of the Point \param z Z coordinate of the Point \return the pointer to newly created Point */ GAIAGEO_DECLARE gaiaPointPtr gaiaAppendPointZToDynamicLine (gaiaDynamicLinePtr p, double x, double y, double z); /** Appends a new 2D Point [XYM] at the end of a dynamically growing line/ring object \param p pointer to the dynamically growing line/ring object. \param x X coordinate of the Point \param y Y coordinate of the Point \param m M measure of the Point \return the pointer to newly created Point */ GAIAGEO_DECLARE gaiaPointPtr gaiaAppendPointMToDynamicLine (gaiaDynamicLinePtr p, double x, double y, double m); /** Appends a new 3D Point [XYZM] at the end of a dynamically growing line/ring object \param p pointer to the dynamically growing line/ring object. \param x X coordinate of the Point \param y Y coordinate of the Point \param z Z coordinate of the Point \param m M measure of the Point \return the pointer to newly created Point */ GAIAGEO_DECLARE gaiaPointPtr gaiaAppendPointZMToDynamicLine (gaiaDynamicLinePtr p, double x, double y, double z, double m); /** Appends a new 2D Point [XY] before the first one of a dynamically growing line/ring object \param p pointer to the dynamically growing line/ring object. \param x X coordinate of the Point \param y Y coordinate of the Point \return the pointer to newly created Point */ GAIAGEO_DECLARE gaiaPointPtr gaiaPrependPointToDynamicLine (gaiaDynamicLinePtr p, double x, double y); /** Appends a new 3D Point [XYZ] before the first one of a dynamically growing line/ring object \param p pointer to the dynamically growing line/ring object. \param x X coordinate of the Point \param y Y coordinate of the Point \param z Z coordinate of the Point \return the pointer to newly created Point */ GAIAGEO_DECLARE gaiaPointPtr gaiaPrependPointZToDynamicLine (gaiaDynamicLinePtr p, double x, double y, double z); /** Appends a new 2D Point [XYM] before the first one of a dynamically growing line/ring object \param p pointer to the dynamically growing line/ring object. \param x X coordinate of the Point \param y Y coordinate of the Point \param m M measure of the Point \return the pointer to newly created Point */ GAIAGEO_DECLARE gaiaPointPtr gaiaPrependPointMToDynamicLine (gaiaDynamicLinePtr p, double x, double y, double m); /** Appends a new 3D Point [XYZM] before the first one of a dynamically growing line/ring object \param p pointer to the dynamically growing line/ring object. \param x X coordinate of the Point \param y Y coordinate of the Point \param z Z coordinate of the Point \param m M measure of the Point \return the pointer to newly created Point */ GAIAGEO_DECLARE gaiaPointPtr gaiaPrependPointZMToDynamicLine (gaiaDynamicLinePtr p, double x, double y, double z, double m); /** Appends a new 2D Point [XY] immediately after the given Point into a dynamically growing line/ring object \param p pointer to the dynamically growing line/ring object. \param pt pointer to the given Point. \param x X coordinate of the Point to be appended \param y Y coordinate of the Point to be appended \sa gaiaDynamicLiceInsertBefore \return the pointer to newly created Point */ GAIAGEO_DECLARE gaiaPointPtr gaiaDynamicLineInsertAfter (gaiaDynamicLinePtr p, gaiaPointPtr pt, double x, double y); /** Appends a new 2D Point [XY] immediately before the given Point into a dynamically growing line/ring object \param p pointer to the dynamically growing line/ring object. \param pt pointer to the given Point. \param x X coordinate of the Point to be appended \param y Y coordinate of the Point to be appended \sa gaiaDynamicLiceInsertBeforeAfter \return the pointer to newly created Point */ GAIAGEO_DECLARE gaiaPointPtr gaiaDynamicLineInsertBefore (gaiaDynamicLinePtr p, gaiaPointPtr pt, double x, double y); /** Removes a given Point from a dynamically growing line/ring object \param p pointer to dynamically growing line/ring object. \param pt pointer to given Point. \note the given Point (referenced by its address) will be removed from the dynamically growin line/ring object. \n the given Point will be then implicitly destroyed. */ GAIAGEO_DECLARE void gaiaDynamicLineDeletePoint (gaiaDynamicLinePtr p, gaiaPointPtr pt); /** Duplicates a dynamically growing line/ring object \param org pointer to dynamically growing line/ring object [origin]. \return the pointer to newly created dynamic growing line/ring object: NULL on failure. \note the newly created object is an exact copy of the original one. */ GAIAGEO_DECLARE gaiaDynamicLinePtr gaiaCloneDynamicLine (gaiaDynamicLinePtr org); /** Duplicates and reverts a dynamically growing line/ring object \param org pointer to dynamically growing line/ring object [origin]. \return the pointer to newly created dynamic growing line/ring object: NULL on failure. \note the newly created object is an exact copy of the origina one, except in that direction is reverted. \n i.e. first inpunt point becomes last output point, and last input point becomes first output point. */ GAIAGEO_DECLARE gaiaDynamicLinePtr gaiaReverseDynamicLine (gaiaDynamicLinePtr org); /** Cuts a dynamically growing line/ring in two halves, using a given cut point \param org pointer to the input object [the line to be split]. \param point pointer to given cut point. \return the pointer to newly created dynamic growing line/ring object: NULL on failure. \sa gaiaDynamicLineSplitAfter \note the newly created object will contain a line going from the orginal first point to the cut point [excluded]. \n on completion the orginal line will be reduced, going from the cut point [included] to the original last point. */ GAIAGEO_DECLARE gaiaDynamicLinePtr gaiaDynamicLineSplitBefore (gaiaDynamicLinePtr org, gaiaPointPtr point); /** Cuts a dynamically growing line/ring in two halves, using a given cut point \param org pointer to the input object [the line to be split]. \param point pointer to given cut point. \return the pointer to newly created dynamic growing line/ring object: NULL on failure. \sa gaiaDynamicLineSplitBefore \note the newly created object will contain a line going from the orginal first point to the cut point [included]. \n on completion the orginal line will be reduced, going from the cut point [excluded] to the original last point. */ GAIAGEO_DECLARE gaiaDynamicLinePtr gaiaDynamicLineSplitAfter (gaiaDynamicLinePtr org, gaiaPointPtr point); /** Merges two dynamically growing line/ring object into a single one \param org pointer to the first input object [first line]. \param point pointer to the reference Point object. \param toJoin pointer to the second input object [second line]. \return the pointer to newly created dynamically growing line/ring object [merged line]: NULL on failure. \sa gaiaDynamicLineJoinBefore \note the reference Point must exists into the first line: the second line will then be inserted immediately after the reference Point. \n The newly created object will represent the resulting merged line: \n both input objects remain untouched. */ GAIAGEO_DECLARE gaiaDynamicLinePtr gaiaDynamicLineJoinAfter (gaiaDynamicLinePtr org, gaiaPointPtr point, gaiaDynamicLinePtr toJoin); /** Merges two dynamically growing line/ring object into a single one \param org pointer to the first input object [first line]. \param point pointer to the reference Point object. \param toJoin pointer to the second input object [second line]. \return the pointer to newly created dynamically growing line/ring object [merged line]: NULL on failure. \sa gaiaDynamicLineJoinAfter \note the reference Point must exists into the first line: the second line will then be inserted immediately before the reference Point. \n The newly created object will represent the resulting merged line: \n both input objects remain untouched. */ GAIAGEO_DECLARE gaiaDynamicLinePtr gaiaDynamicLineJoinBefore (gaiaDynamicLinePtr org, gaiaPointPtr point, gaiaDynamicLinePtr toJoin); /** Finds a Point within a dymically growing line/ring object [by coords] \param p pointer to dymamically line/ring object. \param x Point X coordinate. \param y Point Y coordinate. \return the pointer to the corresponding Point object: NULL on failure. \sa gaiaDynamicLineFindByPos \note if the line object contains more Points sharing the same coordinates, a reference to the first one found will be returned. */ GAIAGEO_DECLARE gaiaPointPtr gaiaDynamicLineFindByCoords (gaiaDynamicLinePtr p, double x, double y); /** Finds a Point within a dymically growing line/ring object [by position] \param p pointer to dymamically line/ring object. \param pos relative position [first Point has index 0]. \return the pointer to the corresponding Point object: NULL on failure. \sa gaiaDynamicLineFindByCoords */ GAIAGEO_DECLARE gaiaPointPtr gaiaDynamicLineFindByPos (gaiaDynamicLinePtr p, int pos); /** Creates a new dynamicly growing line/ring object \param coords an array of COORDs, any dimension [XY, XYZ, XYM, XYZM] \param points number of points [aka vertices] into the array \return the pointer to newly created object \sa gaiaAllocDynamicLine, gaiaFreeDynamicLine, gaiaLinestringStruct, gaiaRingStruct \note you are responsible to destroy (before or after) any allocated dynamically growing line/ring object. \n The COORDs array is usually expected to be one found within a gaiaLinestring or gaiaRing object. */ GAIAGEO_DECLARE gaiaDynamicLinePtr gaiaCreateDynamicLine (double *coords, int points); #ifdef __cplusplus } #endif #endif /* _GG_DYNAMIC */ libspatialite-4.1.1/src/headers/spatialite/gg_structs.h0000664000175000017500000005531212163502133020166 00000000000000/* gg_structs.h -- Gaia common support for geometries: structures version 4.1, 2013 May 8 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /** \file gg_structs.h Geometry structures */ #ifndef _GG_STRUCTS_H #ifndef DOXYGEN_SHOULD_SKIP_THIS #define _GG_STRUCTS_H #endif #include #ifdef __cplusplus extern "C" { #endif /** Container for OGC POINT Geometry */ typedef struct gaiaPointStruct { /* an OpenGis POINT */ /** X coordinate */ double X; /* X,Y coordinates */ /** Y coordinate */ double Y; /** Z coordinate: only for XYZ and XYZM dims */ double Z; /* Z coordinate */ /** M measure: only for XYM and XYZM dims */ double M; /* M measure */ /** one of GAIA_XY, GAIA_XY_Z, GAIA_XY_M, GAIA_XY_ZM */ int DimensionModel; /* (x,y), (x,y,z), (x,y,m) or (x,y,z,m) */ /** pointer to next item [double linked list] */ struct gaiaPointStruct *Next; /* for double-linked list */ /** pointer to previous item [double linked list] */ struct gaiaPointStruct *Prev; /* for double-linked list */ } gaiaPoint; /** Typedef for OGC POINT structure \sa gaiaPoint */ typedef gaiaPoint *gaiaPointPtr; /** Container for dynamically growing line/ring */ typedef struct gaiaDynamicLineStruct { /* a generic DYNAMIC LINE object */ /** invalid object */ int Error; /** the SRID */ int Srid; /** pointer to first POINT [double linked list] */ gaiaPointPtr First; /* Points linked list - first */ /** pointer to last POINT [double linked list] */ gaiaPointPtr Last; /* Points linked list - last */ } gaiaDynamicLine; /** Typedef for dynamically growing line/ring structure \sa gaiaDynamicLine */ typedef gaiaDynamicLine *gaiaDynamicLinePtr; /** Container for OGC LINESTRING Geometry */ typedef struct gaiaLinestringStruct { /* an OpenGis LINESTRING */ /** number of points [aka vertices] */ int Points; /* number of vertices */ /** COORDs mem-array */ double *Coords; /* X,Y [vertices] array */ /** MBR: min X */ double MinX; /* MBR - BBOX */ /** MBR: min Y */ double MinY; /* MBR - BBOX */ /** MBR: max X */ double MaxX; /* MBR - BBOX */ /** MBR: max X */ double MaxY; /* MBR - BBOX */ /** one of GAIA_XY, GAIA_XY_Z, GAIA_XY_M, GAIA_XY_ZM */ int DimensionModel; /* (x,y), (x,y,z), (x,y,m) or (x,y,z,m) */ /** pointer to next item [linked list] */ struct gaiaLinestringStruct *Next; /* for linked list */ } gaiaLinestring; /** Typedef for OGC LINESTRING structure \sa gaiaLinestring */ typedef gaiaLinestring *gaiaLinestringPtr; /** Container for OGC RING Geometry */ typedef struct gaiaRingStruct { /* a GIS ring - OpenGis LINESTRING, closed */ /** number of points [aka vertices] */ int Points; /* number of vertices */ /** COORDs mem-array */ double *Coords; /* X,Y [vertices] array */ /** clockwise / counterclockwise */ int Clockwise; /* clockwise / counterclockwise */ /** MBR: min X */ double MinX; /* MBR - BBOX */ /** MBR: min Y */ double MinY; /* MBR - BBOX */ /** MBR: max X */ double MaxX; /* MBR - BBOX */ /** MBR: max Y */ double MaxY; /* MBR - BBOX */ /** one of GAIA_XY, GAIA_XY_Z, GAIA_XY_M, GAIA_XY_ZM */ int DimensionModel; /* (x,y), (x,y,z), (x,y,m) or (x,y,z,m) */ /** pointer to next item [linked list] */ struct gaiaRingStruct *Next; /* for linked list */ /** pointer to belonging Polygon */ struct gaiaPolygonStruct *Link; /* polygon reference */ } gaiaRing; /** Typedef for OGC RING structure \sa gaiaRing */ typedef gaiaRing *gaiaRingPtr; /** Container for OGC POLYGON Geometry */ typedef struct gaiaPolygonStruct { /* an OpenGis POLYGON */ /** the exterior ring (mandatory) */ gaiaRingPtr Exterior; /* exterior ring */ /** number of interior rings (may be, none) */ int NumInteriors; /* number of interior rings */ /** array of interior rings */ gaiaRingPtr Interiors; /* interior rings array */ /** index of first unused interior ring */ int NextInterior; /* first free interior ring */ /** MBR: min X */ double MinX; /* MBR - BBOX */ /** MBR: min Y */ double MinY; /* MBR - BBOX */ /** MBR: max X */ double MaxX; /* MBR - BBOX */ /** MBR: max Y */ double MaxY; /* MBR - BBOX */ /** one of GAIA_XY, GAIA_XY_Z, GAIA_XY_M, GAIA_XY_ZM */ int DimensionModel; /* (x,y), (x,y,z), (x,y,m) or (x,y,z,m) */ /** pointer to next item [linked list] */ struct gaiaPolygonStruct *Next; /* for linked list */ } gaiaPolygon; /** Typedef for OGC POLYGON structure \sa gaiaPolygon */ typedef gaiaPolygon *gaiaPolygonPtr; /** Container for OGC GEOMETRYCOLLECTION Geometry */ typedef struct gaiaGeomCollStruct { /* OpenGis GEOMETRYCOLLECTION */ /** the SRID */ int Srid; /* the SRID value for this GEOMETRY */ /** CPU endian arch */ char endian_arch; /* littleEndian - bigEndian arch for target CPU */ /** BLOB Geometry endian arch */ char endian; /* littleEndian - bigEndian */ /** BLOB-Geometry buffer */ const unsigned char *blob; /* WKB encoded buffer */ /** BLOB-Geometry buffer size (in bytes) */ unsigned long size; /* buffer size */ /** current offset [BLOB parsing] */ unsigned long offset; /* current offset [for parsing] */ /** pointer to first POINT [linked list]; may be NULL */ gaiaPointPtr FirstPoint; /* Points linked list - first */ /** pointer to last POINT [linked list]; may be NULL */ gaiaPointPtr LastPoint; /* Points linked list - last */ /** pointer to first LINESTRING [linked list]; may be NULL */ gaiaLinestringPtr FirstLinestring; /* Linestrings linked list - first */ /** pointer to last LINESTRING [linked list]; may be NULL */ gaiaLinestringPtr LastLinestring; /* Linestrings linked list - last */ /** pointer to first POLYGON [linked list]; may be NULL */ gaiaPolygonPtr FirstPolygon; /* Polygons linked list - first */ /** pointer to last POLYGON [linked list]; may be NULL */ gaiaPolygonPtr LastPolygon; /* Polygons linked list - last */ /** MBR: min X */ double MinX; /* MBR - BBOX */ /** MBR: min Y */ double MinY; /* MBR - BBOX */ /** MBR: max X */ double MaxX; /* MBR - BBOX */ /** MBR: max Y */ double MaxY; /* MBR - BBOX */ /** one of GAIA_XY, GAIA_XY_Z, GAIA_XY_M, GAIA_XY_ZM */ int DimensionModel; /* (x,y), (x,y,z), (x,y,m) or (x,y,z,m) */ /** any valid Geometry Class type */ int DeclaredType; /* the declared TYPE for this Geometry */ /** pointer to next item [linked list] */ struct gaiaGeomCollStruct *Next; /* Vanuatu - used for linked list */ } gaiaGeomColl; /** Typedef for OGC GEOMETRYCOLLECTION structure \sa gaiaGeomCool */ typedef gaiaGeomColl *gaiaGeomCollPtr; /** Container similar to LINESTRING [internally used] */ typedef struct gaiaPreRingStruct { /* a LINESTRING used to build rings */ /** pointer to LINESTRING */ gaiaLinestringPtr Line; /* a LINESTRING pointer */ /** already used/visited item */ int AlreadyUsed; /* a switch to mark an already used line element */ /** pointer to next item [linked list] */ struct gaiaPreRingStruct *Next; /* for linked list */ } gaiaPreRing; /** Typedef for gaiaPreRing structure \sa gaiaPreRing */ typedef gaiaPreRing *gaiaPreRingPtr; /** Container for variant (multi-type) value */ typedef struct gaiaValueStruct { /* a DBF field multitype value */ /** data type: one of GAIA_NULL_VALUE, GAIA_INT_VALUE, GAIA_DOUBLE_VALUE, GAIA_TEXT_VALUE */ short Type; /* the type */ /** TEXT type value */ char *TxtValue; /* the text value */ /** INT type value */ sqlite3_int64 IntValue; /* the integer value */ /** DOUBLE type value */ double DblValue; /* the double value */ } gaiaValue; /** Typedef for variant (multi-type) value structure */ typedef gaiaValue *gaiaValuePtr; /** Container for DBF field */ typedef struct gaiaDbfFieldStruct { /* a DBF field definition - shapefile attribute */ /** field name */ char *Name; /* field name */ /** DBF data type */ unsigned char Type; /* field type */ /** DBF buffer offset [where the field value starts] */ int Offset; /* buffer offset [this field begins at *buffer+offset* and extends for *length* bytes */ /** total DBF buffer field length (in bytes) */ unsigned char Length; /* field total length [in bytes] */ /** precision (decimal digits) */ unsigned char Decimals; /* decimal positions */ /** current variant [multi-type] value */ gaiaValuePtr Value; /* the current multitype value for this attribute */ /** pointer to next item [linked list] */ struct gaiaDbfFieldStruct *Next; /* pointer to next element in linked list */ } gaiaDbfField; /** Typedef for DBF field structure */ typedef gaiaDbfField *gaiaDbfFieldPtr; /** Container for a list of DBF fields */ typedef struct gaiaDbfListStruct { /* a linked list to contain the DBF fields definitions - shapefile attributes */ /** current RowID */ int RowId; /* the current RowId */ /** current Geometry */ gaiaGeomCollPtr Geometry; /* geometry for current entity */ /** pointer to first DBF field [linked list] */ gaiaDbfFieldPtr First; /* pointer to first element in linked list */ /** pointer to last DBF field [linked list] */ gaiaDbfFieldPtr Last; /* pointer to last element in linker list */ } gaiaDbfList; /** Typedef for a list of DBF fields \sa gaiaDbfList */ typedef gaiaDbfList *gaiaDbfListPtr; /** Container for DBF file handling */ typedef struct gaiaDbfStruct { /* DBF TYPE */ /** DBF endian arch */ int endian_arch; /** validity flag: 1 = ready to be processed */ int Valid; /* 1 = ready to process */ /** DBF file pathname */ char *Path; /* the DBF path */ /** FILE handle */ FILE *flDbf; /* the DBF file handle */ /** list of DBF fields */ gaiaDbfListPtr Dbf; /* the DBF attributes list */ /** I/O buffer */ unsigned char *BufDbf; /* the DBF I/O buffer */ /** header size (in bytes) */ int DbfHdsz; /* the DBF header length */ /** record length (in bytes) */ int DbfReclen; /* the DBF record length */ /** current file size */ int DbfSize; /* current DBF size */ /** current Record Number */ int DbfRecno; /* current DBF record number */ /** handle to ICONV converter object */ void *IconvObj; /* opaque reference to ICONV converter */ /** last error message (may be NULL) */ char *LastError; /* last error message */ } gaiaDbf; /** Typedef for DBF file handler structure \sa gaiaDbf */ typedef gaiaDbf *gaiaDbfPtr; /** Container for SHP file handling */ typedef struct gaiaShapefileStruct { /* SHAPEFILE TYPE */ /** SHP endian arch */ int endian_arch; /** validity flag: 1 = ready to be processed */ int Valid; /* 1 = ready to process */ /** read or write mode */ int ReadOnly; /* read or write mode */ /** SHP 'abstract' path (no suffixes) */ char *Path; /* the shapefile abstract path [no suffixes] */ /** FILE handle to SHX file */ FILE *flShx; /* the SHX file handle */ /** FILE handle to SHP file */ FILE *flShp; /* the SHP file handle */ /** FILE handle to DBF file */ FILE *flDbf; /* the DBF file handle */ /** the SHP shape code */ int Shape; /* the SHAPE code for the whole shapefile */ /** list of DBF fields */ gaiaDbfListPtr Dbf; /* the DBF attributes list */ /** DBF I/O buffer */ unsigned char *BufDbf; /* the DBF I/O buffer */ /** DBF header size (in bytes) */ int DbfHdsz; /* the DBF header length */ /** DBF record length (in bytes) */ int DbfReclen; /* the DBF record length */ /** DBF current file size (in bytes) */ int DbfSize; /* current DBF size */ /** DBF current Record Number */ int DbfRecno; /* current DBF record number */ /** SHP I/O buffer */ unsigned char *BufShp; /* the SHP I/O buffer */ /** SHP current buffer size (in bytes) */ int ShpBfsz; /* the SHP buffer current size */ /** SHP current file size */ int ShpSize; /* current SHP size */ /** SHX current file size */ int ShxSize; /* current SHX size */ /** Total Extent: min X */ double MinX; /* the MBR/BBOX for the whole shapefile */ /** Total Extent: min Y */ double MinY; /** Total Extent: max X */ double MaxX; /** Total Extent: max Y */ double MaxY; /** handle to ICONV converter object */ void *IconvObj; /* opaque reference to ICONV converter */ /** last error message (may be NULL) */ char *LastError; /* last error message */ /** SHP actual OGC Geometry type */ int EffectiveType; /* the effective Geometry-type, as determined by gaiaShpAnalyze() */ /** SHP actual dims: one of GAIA_XY, GAIA_XY_Z, GAIA_XY_M, GAIA_XY_ZM */ int EffectiveDims; /* the effective Dimensions [XY, XYZ, XYM, XYZM], as determined by gaiaShpAnalyze() */ } gaiaShapefile; /** Typedef for SHP file handler structure \sa gaiaShapefile */ typedef gaiaShapefile *gaiaShapefilePtr; /** Container for dynamically growing output buffer */ typedef struct gaiaOutBufferStruct { /* a struct handling a dynamically growing output buffer */ /** current buffer */ char *Buffer; /** current write offset */ int WriteOffset; /** current buffer size (in bytes) */ int BufferSize; /** validity flag */ int Error; } gaiaOutBuffer; /** Typedef for dynamically growing output buffer structure \sa gaiaOutBuffer */ typedef gaiaOutBuffer *gaiaOutBufferPtr; #ifndef OMIT_ICONV /* ICONV enabled: supporting text reader */ /** Virtual Text driver: MAX number of fields */ #define VRTTXT_FIELDS_MAX 65535 /** Virtual Text driver: MAX block size (in bytes) */ #define VRTTXT_BLOCK_MAX 65535 /** Virtual Text driver: TEXT value */ #define VRTTXT_TEXT 1 /** Virtual Text driver: INTEGER value */ #define VRTTXT_INTEGER 2 /** Virtual Text driver: DOUBLE value */ #define VRTTXT_DOUBLE 3 /** Virtual Text driver: NULL value */ #define VRTTXT_NULL 4 /** Container for Virtual Text record (line) */ struct vrttxt_line { /* a struct representing a full LINE (aka Record) */ /** current offset (parsing) */ off_t offset; /** line length (in bytes) */ int len; /** array of field offsets (where each field starts) */ int field_offsets[VRTTXT_FIELDS_MAX]; /** number of field into the record */ int num_fields; /** validity flag */ int error; }; /** Container for Virtual Text record (line) offsets */ struct vrttxt_row { /* a struct storing Row offsets */ /** Line Number */ int line_no; /** start offset */ off_t offset; /** record (line) length (in bytes) */ int len; /** number of fields into this record */ int num_fields; }; /** Container for Virtual Text block of records */ struct vrttxt_row_block { /* / for efficiency sake, individual Row offsets / are grouped in reasonably sized blocks */ /** array of records [lines] */ struct vrttxt_row rows[VRTTXT_BLOCK_MAX]; /** number of records into the array */ int num_rows; /** min Line Number */ int min_line_no; /** max Line Number */ int max_line_no; /** pointer to next item [linked list] */ struct vrttxt_row_block *next; }; /** Container for Virtual Text column (field) header */ struct vrttxt_column_header { /* a struct representing a Column (aka Field) header */ /** column name */ char *name; /** data type: one of GAIA_NULL_VALUE, GAIA_INT_VALUE, GAIA_DOUBLE_VALUE, GAIA_TEXT_VALUE */ int type; }; /** Container for Virtual Text file handling */ typedef struct vrttxt_reader { /* the main TXT-Reader struct */ /** array of columns (fields) */ struct vrttxt_column_header columns[VRTTXT_FIELDS_MAX]; /** FILE handle */ FILE *text_file; /** handle to ICONV converter object */ void *toUtf8; /* the UTF-8 ICONV converter */ /** field separator character */ char field_separator; /** text separator character (quote) */ char text_separator; /** decimal separator */ char decimal_separator; /** TRUE if the first line contains column names */ int first_line_titles; /** validity flag */ int error; /** pointer to first block of records [linked list] */ struct vrttxt_row_block *first; /** pointer to last block of records [linked list] */ struct vrttxt_row_block *last; /** array of pointers to individual records [lines] */ struct vrttxt_row **rows; /** number of records */ int num_rows; /** current Line Number */ int line_no; /** max number of columns (fields) */ int max_fields; /** current buffer size */ int current_buf_sz; /** current buffer offset [parsing] */ int current_buf_off; /** I/O buffer */ char *line_buffer; /** current field buffer */ char *field_buffer; /** array of field offsets [current record] */ int field_offsets[VRTTXT_FIELDS_MAX]; /** array of field lengths [current record] */ int field_lens[VRTTXT_FIELDS_MAX]; /** max field [current record] */ int max_current_field; /** current record [line] ready for parsing */ int current_line_ready; } gaiaTextReader; /** Typedef for Virtual Text file handling structure \sa gaiaTextReader */ typedef gaiaTextReader *gaiaTextReaderPtr; #endif /* end ICONV (text reader) */ /** Layer Extent infos */ typedef struct gaiaLayerExtentInfos { /** row count (aka feature count) */ int Count; /** Extent: min X */ double MinX; /* MBR - BBOX */ /** Extent: min Y */ double MinY; /* MBR - BBOX */ /** Extent: max X */ double MaxX; /* MBR - BBOX */ /** Extent: max Y */ double MaxY; /* MBR - BBOX */ } gaiaLayerExtent; /** Typedef for Layer Extent infos \sa gaiaLayerExtent */ typedef gaiaLayerExtent *gaiaLayerExtentPtr; /** Layer Auth infos */ typedef struct gaiaLayerAuthInfos { /** Read-Only layer: TRUE or FALSE */ int IsReadOnly; /** Hidden layer: TRUE or FALSE */ int IsHidden; } gaiaLayerAuth; /** Typedef for Layer Auth infos \sa gaiaLayerAuth */ typedef gaiaLayerAuth *gaiaLayerAuthPtr; /** Attribute/Field MaxSize/Length infos */ typedef struct gaiaAttributeFieldMaxSizeInfos { /** MaxSize / MaxLength */ int MaxSize; } gaiaAttributeFieldMaxSize; /** Typedef for Attribute/Field MaxSize/Length infos \sa gaiaAttributeFieldMaxSize */ typedef gaiaAttributeFieldMaxSize *gaiaAttributeFieldMaxSizePtr; /** Attribute/Field Integer range infos */ typedef struct gaiaAttributeFieldIntRangeInfos { /** Minimum value */ sqlite3_int64 MinValue; /** Maximum value */ sqlite3_int64 MaxValue; } gaiaAttributeFieldIntRange; /** Typedef for Attribute/Field Integer range infos \sa gaiaAttributeFieldIntRange */ typedef gaiaAttributeFieldIntRange *gaiaAttributeFieldIntRangePtr; /** Attribute/Field Double range infos */ typedef struct gaiaAttributeFieldDoubleRangeInfos { /** Minimum value */ double MinValue; /** Maximum value */ double MaxValue; } gaiaAttributeFieldDoubleRange; /** Typedef for Attribute/Field Double range infos \sa gaiaAttributeFieldDoubleRange */ typedef gaiaAttributeFieldDoubleRange *gaiaAttributeFieldDoubleRangePtr; /** LayerAttributeField infos */ typedef struct gaiaLayerAttributeFieldInfos { /** ordinal position */ int Ordinal; /** SQL name of the corresponding column */ char *AttributeFieldName; /** total count of NULL values */ int NullValuesCount; /** total count of INTEGER values */ int IntegerValuesCount; /** total count of DOUBLE values */ int DoubleValuesCount; /** total count of TEXT values */ int TextValuesCount; /** total count of BLOB values */ int BlobValuesCount; /** pointer to MaxSize/Length infos (may be NULL) */ gaiaAttributeFieldMaxSizePtr MaxSize; /** pointer to range of Integer values infos (may be NULL) */ gaiaAttributeFieldIntRangePtr IntRange; /** pointer to range of Double values infos (may be NULL) */ gaiaAttributeFieldDoubleRangePtr DoubleRange; /** pointer to next item (linked list) */ struct gaiaLayerAttributeFieldInfos *Next; } gaiaLayerAttributeField; /** Typedef for Layer AttributeField infos \sa gaiaLayerAttributeField */ typedef gaiaLayerAttributeField *gaiaLayerAttributeFieldPtr; /** Vector Layer item */ typedef struct gaiaVectorLayerItem { /** one of GAIA_VECTOR_UNKNOWN, GAIA_VECTOR_TABLE, GAIA_VECTOR_VIEW, GAIA_VECTOR_VIRTUAL */ int LayerType; /** SQL name of the corresponding table */ char *TableName; /** SQL name of the corresponding Geometry column */ char *GeometryName; /** SRID value */ int Srid; /** one of GAIA_VECTOR_UNKNOWN, GAIA_VECTOR_POINT, GAIA_VECTOR_LINESTRING, GAIA_VECTOR_POLYGON, GAIA_VECTOR_MULTIPOINT, GAIA_VECTOR_MULTILINESTRING, GAIA_VECTOR_MULTIPOLYGON, GAIA_VECTOR_GEOMETRYCOLLECTION, GAIA_VECTOR_GEOMETRY */ int GeometryType; /** one of GAIA_VECTOR_UNKNOWN, GAIA_XY, GAIA_XY_Z, GAIA_XY_M, GAIA_XY_ZM */ int Dimensions; /** one of GAIA_VECTOR_UNKNOWN, GAIA_SPATIAL_INDEX_NONE, GAIA_SPATIAL_INDEX_RTREE, GAIA_SPATIAL_INDEX_MBRCACHE */ int SpatialIndex; /** pointer to Extent infos (may be NULL) */ gaiaLayerExtentPtr ExtentInfos; /** pointer to Auth infos (may be NULL) */ gaiaLayerAuthPtr AuthInfos; /** pointer to first Field/Attribute (linked list) */ gaiaLayerAttributeFieldPtr First; /** pointer to last Field/Attribute (linked list) */ gaiaLayerAttributeFieldPtr Last; /** pointer to next item (linked list) */ struct gaiaVectorLayerItem *Next; } gaiaVectorLayer; /** Typedef for Vector Layer item \sa gaiaVectorLayer */ typedef gaiaVectorLayer *gaiaVectorLayerPtr; /** Container for Vector Layers List */ typedef struct gaiaVectorLayersListStr { /** pointer to first vector layer (linked list) */ gaiaVectorLayerPtr First; /** pointer to last vector layer (linked list) */ gaiaVectorLayerPtr Last; /** pointer to currently set vector layer */ gaiaVectorLayerPtr Current; } gaiaVectorLayersList; /** Typedef for Vector Layers List \sa gaiaVectorLayersList */ typedef gaiaVectorLayersList *gaiaVectorLayersListPtr; #ifdef __cplusplus } #endif #endif /* _GG_STRUCTS_H */ libspatialite-4.1.1/src/headers/spatialite/gaiaaux.h0000664000175000017500000002561512163502133017424 00000000000000/* gaiaaux.h -- Gaia common utility functions version 4.1, 2013 May 8 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /** \file gaiaaux.h Auxiliary/helper functions */ #ifndef DOXYGEN_SHOULD_SKIP_THIS #ifdef DLL_EXPORT #define GAIAAUX_DECLARE __declspec(dllexport) #else #define GAIAAUX_DECLARE extern #endif #endif #ifndef _GAIAAUX_H #ifndef DOXYGEN_SHOULD_SKIP_THIS #define _GAIAAUX_H #endif #ifdef __cplusplus extern "C" { #endif /* constants */ /** SQL single quoted string (text constant) */ #define GAIA_SQL_SINGLE_QUOTE 1001 /** SQL double quoted string (SQL name) */ #define GAIA_SQL_DOUBLE_QUOTE 1002 /* function prototypes */ /** Retrieves the Locale Charset \return the GNU ICONV name identifying the locale charset */ GAIAAUX_DECLARE const char *gaiaGetLocaleCharset (void); /** Converts a text string from one charset to another \param buf the text string to be converted \param fromCs the GNU ICONV name identifying the input charset \param toCs the GNU ICONV name identifying the output charset \return 0 on failure, any other value on success. \note this function uses an internal buffer limited to 64KB; so it's not safe passing extremely huge-sized text string. */ GAIAAUX_DECLARE int gaiaConvertCharset (char **buf, const char *fromCs, const char *toCs); /** Creates a persistent UTF8 converter object \param fromCS the GNU ICONV name identifying the input charset \return the handle of the converter object, or NULL on failure \sa gaiaFreeUTF8Converter \note you must properly destroy the converter object when it isn't any longer used. */ GAIAAUX_DECLARE void *gaiaCreateUTF8Converter (const char *fromCS); /** Destroys an UTF8 converter object \param cvtCS the handle identifying the UTF8 convert object (returned by a previous call to gaiaCreateUTF8Converter). \sa gaiaCreateUTF8Converter */ GAIAAUX_DECLARE void gaiaFreeUTF8Converter (void *cvtCS); /** Converts a text string to UTF8 \param cvtCS the handle identifying the UTF8 convert object (returned by a previous call to gaiaCreateUTF8Converter). \param buf the input text string \param len length (in bytes) of input string \param err on completion will contain 0 on success, any other value on failure \return the null-terminated UTF8 encoded string: NULL on failure \sa gaiaCreateUTF8Converter, gaiaFreeUTF8Converter \note this function can safely handle strings of arbitrary length, and will return the converted string into a dynamically allocated buffer created by malloc(). You are required to explicitly free() any string returned by this function. */ GAIAAUX_DECLARE char *gaiaConvertToUTF8 (void *cvtCS, const char *buf, int len, int *err); /** Checks if a name is a reserved SQLite name \param name the name to be checked \return 0 if no: any other value if yes \sa gaiaIsReservedSqlName, gaiaIllegalSqlName */ GAIAAUX_DECLARE int gaiaIsReservedSqliteName (const char *name); /** Checks if a name is a reserved SQL name \param name the name to be checked \return 0 if no: any other value if yes \sa gaiaIsReservedSqliteName, gaiaIllegalSqlName */ GAIAAUX_DECLARE int gaiaIsReservedSqlName (const char *name); /** Checks if a name is an illegal SQL name \param name the name to be checked \return 0 if no: any other value if yes \sa gaiaIsReservedSqliteName, gaiaIsReservedSqlName */ GAIAAUX_DECLARE int gaiaIllegalSqlName (const char *name); /** Properly formats an SQL text constant \param value the text string to be formatted \return the formatted string: NULL on failure \sa gaiaQuotedSql, gaiaDequotedSql \note this function simply is a convenience method corresponding to: gaiaQuotedSQL(value, GAIA_SQL_SINGLE_QUOTE); \remark passing a string like "Sant'Andrea" will return 'Sant''Andrea' */ GAIAAUX_DECLARE char *gaiaSingleQuotedSql (const char *value); /** Properly formats an SQL name \param value the SQL name to be formatted \return the formatted string: NULL on failure \sa gaiaQuotedSql, gaiaDequotedSql \note this function simply is a convenience method corresponding to: gaiaQuotedSQL(value, GAIA_SQL_DOUBLE_QUOTE); \remark passing a string like "Sant\"Andrea" will return "Sant""Andrea" */ GAIAAUX_DECLARE char *gaiaDoubleQuotedSql (const char *value); /** Properly formats an SQL generic string \param value the string to be formatted \param quote GAIA_SQL_SINGLE_QUOTE or GAIA_SQL_DOUBLE_QUOTE \return the formatted string: NULL on failure \sa gaiaSingleQuotedSql, gaiaDoubleQuotedSql, gaiaDequotedSql \note this function can safely handle strings of arbitrary length, and will return the formatted string into a dynamically allocated buffer created by malloc(). You are required to explicitly free() any string returned by this function. */ GAIAAUX_DECLARE char *gaiaQuotedSql (const char *value, int quote); /** Properly formats an SQL generic string (dequoting) \param value the string to be dequoted \return the formatted string: NULL on failure \sa gaiaSingleQuotedSql, gaiaDoubleQuotedSql, gaiaQuotedSql \note this function can safely handle strings of arbitrary length, and will return the formatted string into a dynamically allocated buffer created by malloc(). You are required to explicitly free() any string returned by this function. */ GAIAAUX_DECLARE char *gaiaDequotedSql (const char *value); /* / DEPRECATED FUNCTION: gaiaCleanSqlString() / this function must not be used for any new project / it's still maintained for backward compatibility, / but will be probably removed in future versions */ /** deprecated function \param value the string to be formatted \sa gaiaQuotedSql \note this function is still supported simply for backward compatibility. it's intrinsically unsafe (passing huge strings potentially leads to buffer overflows) and you are strongly encouraged to use gaiaQuotedSql() as a safest replacement. */ GAIAAUX_DECLARE void gaiaCleanSqlString (char *value); /** SQL log: statement start \param sqlite handle of the current DB connection \param user_agent name of the invoking application, e.g. "spatialite_gui" or "spatialite CLI" \param utf8Sql the SQL statement bein executed \param sqllog_pk after completion this variable will contain the value of the Primary Key identifying the corresponding Log event \sa gaiaUpdateSqlLog \note this function inserts an \b event into the SQL Log, and is expected to be invoked immediately \b before executing the SQL statement itself. */ GAIAAUX_DECLARE void gaiaInsertIntoSqlLog (sqlite3 * sqlite, const char *user_agent, const char *utf8Sql, sqlite3_int64 * sqllog_pk); /** SQL log: statement start \param sqlite handle of the current DB connection \param sqllog_pk the Primary Key identifying the corresponding Log event. \n expected to be exactely the same returned by the most recent call to gaiaInsertIntoSqlLog() \param success expected to be TRUE if the SQL statement was succesfully executed. \param errMsg expected to be the error message returned by SQLite on failure, NULL on success. \sa gaiaInsertIntoSqlLog \note this function completes an \b event inserted into the SQL Log, and is expected to be invoked immediately \b after executing the SQL statement itself. */ GAIAAUX_DECLARE void gaiaUpdateSqlLog (sqlite3 * sqlite, sqlite3_int64 sqllog_pk, int success, const char *errMsg); /** Creates a persistent MD5 checksum object \return the handle of an MD5 checksum object, or NULL on failure \sa gaiaFreeMD5Checksum, gaiaUpdateMD5Checksum, gaiaFinalizeMD5Checksum \note you must properly destroy the MD5 object when it isn't any longer used. */ GAIAAUX_DECLARE void *gaiaCreateMD5Checksum (void); /** Destroys an MD5 checksum object \param md5 the handle of the MD5 checksum object (returned by a previous call to gaiaCreateMD5Checksum). \sa gaiaCreateMD5Checksum */ GAIAAUX_DECLARE void gaiaFreeMD5Checksum (void *md5); /** Updates an MD5 checksum object \param md5 the handle of the MD5 checksum object (returned by a previous call to gaiaCreateMD5Checksum). \param blob an arbitrary sequence of binary data \param blob_size the length (in bytes) of the binary data \sa gaiaCreateMD5Checksum, gaiaFreeMD5Checksum, gaiaFinalizeMD5Checksum \note you can repeatedly invoke gaiaUpdateMD5Checksum more than a single time and always using the same MD5 object. In this case the final MD5 checksum returned by gaiaGetMD5Checsum will be the total checksum for any data processed by the MD5 object since its initialization. */ GAIAAUX_DECLARE void gaiaUpdateMD5Checksum (void *md5, const unsigned char *blob, int blob_len); /** Return an MD5 checksum value \param md5 the handle of the MD5 checksum object (returned by a previous call to gaiaCreateMD5Checksum). \return an hexadecimal text string representing the MD checksum: NULL on failure \sa gaiaCreateMD5Checksum, gaiaUpdateMD5Checksum, gaiaFreeMD5Checksum \note this function will return the MD5 checksum into a dynamically allocated buffer created by malloc(). You are required to explicitly free() any string returned by this function. \note gaiaFinalizeMD5Checksum will implicitly reset the MD5 object to its initial state. */ GAIAAUX_DECLARE char *gaiaFinalizeMD5Checksum (void *md5); #ifdef __cplusplus } #endif #endif /* _GAIAAUX_H */ libspatialite-4.1.1/src/headers/spatialite/gg_advanced.h0000664000175000017500000017335412163502133020233 00000000000000/* gg_advanced.h -- Gaia common support for geometries: advanced version 4.1, 2013 May 8 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /* CREDITS: this module has been partly funded by: Regione Toscana - Settore Sistema Informativo Territoriale ed Ambientale (wrapping liblwgeom APIs) */ /** \file gg_advanced.h Geometry handling functions: advanced */ #ifndef _GG_ADVANCED_H #ifndef DOXYGEN_SHOULD_SKIP_THIS #define _GG_ADVANCED_H #endif /** Gaia-to-GEOS: all geometries */ #define GAIA2GEOS_ALL 0 /** Gaia-to-GEOS: only geometries of the Point type */ #define GAIA2GEOS_ONLY_POINTS 1 /** Gaia-to-GEOS: only geometries of the Linestring type */ #define GAIA2GEOS_ONLY_LINESTRINGS 2 /** Gaia-to-GEOS: only geometries of the Polygon type */ #define GAIA2GEOS_ONLY_POLYGONS 3 #ifdef __cplusplus extern "C" { #endif #ifndef DOXYGEN_SHOULD_SKIP_THIS #ifndef OMIT_PROJ /* including PROJ.4 */ #endif /** Converts and angle from Radians into Degrees \param rads the angle measured in Radians. \return the angle measured in Degrees. \sa gaiaDegsToRads \remark \b PROJ.4 support required */ GAIAGEO_DECLARE double gaiaRadsToDegs (double rads); /** Converts and angle from Degrees into Radians \param degs the angle measured in Degrees. \return the angle measured in Radians. \sa gaiaRadsToDegs \remark \b PROJ.4 support required */ GAIAGEO_DECLARE double gaiaDegsToRads (double degs); /** Tansforms a Geometry object into a different Reference System [aka Reprojection] \param org pointer to input Geometry object. \param proj_from geodetic parameters string [EPSG format] qualifying the input Reference System \param proj_to geodetic parameters string [EPSG format] qualifying the output Reference System \return the pointer to newly created Geometry object: NULL on failure. \sa gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaGeometryTransform() \remark \b PROJ.4 support required */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTransform (gaiaGeomCollPtr org, char *proj_from, char *proj_to); #endif /* end including PROJ.4 */ #ifndef OMIT_GEOS /* including GEOS */ /** Resets the GEOS error and warning messages to an empty state \sa gaiaGetGeosErrorMsg, gaiaGetGeosWarningMsg, gaiaGeosAuxErrorMsg, gaiaSetGeosErrorMsg, gaiaSetGeosWarningMsg, gaiaSetGeosAuxErrorMsg \remark \b GEOS support required. */ GAIAGEO_DECLARE void gaiaResetGeosMsg (void); /** Return the latest GEOS error message (if any) \return the latest GEOS error message: an empty string if no error was previoysly found. \sa gaiaResetGeosMsg, gaiaGetGeosWarningMsg, gaiaGetGeosAuxErrorMsg, gaiaSetGeosErrorMsg, gaiaSetGeosWarningMsg, gaiaSetGeosAuxErrorMsg \remark \b GEOS support required. */ GAIAGEO_DECLARE const char *gaiaGetGeosErrorMsg (void); /** Return the latest GEOS warning message (if any) \return the latest GEOS warning message: an empty string if no warning was previoysly found. \sa gaiaResetGeosMsg, gaiaGetGeosErrorMsg, gaiaGetGeosAuxErrorMsg, gaiaSetGeosErrorMsg, gaiaSetGeosWarningMsg, gaiaSetGeosAuxErrorMsg \remark \b GEOS support required. */ GAIAGEO_DECLARE const char *gaiaGetGeosWarningMsg (void); /** Return the latest GEOS (auxiliary) error message (if any) \return the latest GEOS (auxiliary) error message: an empty string if no error was previoysly found. \sa gaiaResetGeosMsg, gaiaGetGeosErrorMsg, gaiaGetGeosWarningMsg, gaiaSetGeosErrorMsg, gaiaSetGeosWarningMsg, gaiaSetGeosAuxErrorMsg \remark \b GEOS support required. */ GAIAGEO_DECLARE const char *gaiaGetGeosAuxErrorMsg (void); /** Set the current GEOS error message \param msg the error message to be set. \sa gaiaResetGeosMsg, gaiaGetGeosErrorMsg, gaiaGetGeosWarningMsg, gaiaGetGeosAuxErrorMsg, gaiaSetGeosWarningMsg, gaiaSetGeosAuxErrorMsg \remark \b GEOS support required. */ GAIAGEO_DECLARE void gaiaSetGeosErrorMsg (const char *msg); /** Set the current GEOS warning message \param msg the warning message to be set. \sa gaiaResetGeosMsg, gaiaGetGeosErrorMsg, gaiaGetGeosWarningMsg, gaiaGetGeosAuxErrorMsg, gaiaSetGeosErrorMsg, gaiaSetGeosAuxErrorMsg \remark \b GEOS support required. */ GAIAGEO_DECLARE void gaiaSetGeosWarningMsg (const char *msg); /** Set the current GEOS (auxiliary) error message \param msg the error message to be set. \sa gaiaResetGeosMsg, gaiaGetGeosErrorMsg, gaiaGetGeosWarningMsg, gaiaGetGeosAuxErrorMsg, gaiaSetGeosWarningMsg, gaiaSetGeosErrorMsg \remark \b GEOS support required. */ GAIAGEO_DECLARE void gaiaSetGeosAuxErrorMsg (const char *msg); /** Converts a Geometry object into a GEOS Geometry \param gaia pointer to Geometry object \return handle to GEOS Geometry \sa gaiaFromGeos_XY, gaiaFromGeos_XYZ, gaiaFromGeos_XYM, gaiaFromGeos_XYZM, gaiaToGeosSelective \note convenience method, simply defaulting to gaiaToGeos(geom, GAIA2GEOS_ALL) \remark \b GEOS support required. */ GAIAGEO_DECLARE void *gaiaToGeos (const gaiaGeomCollPtr gaia); /** Converts a Geometry object into a GEOS Geometry \param gaia pointer to Geometry object \param mode one of GAIA2GEOS_ALL, GAIA2GEOS_ONLY_POINTS, GAIA2GEOS_ONLY_LINESTRINGS or GAIA2GEOS_ONLY_POLYGONS \return handle to GEOS Geometry \sa gaiaFromGeos_XY, gaiaFromGeos_XYZ, gaiaFromGeos_XYM, gaiaFromGeos_XYZM \note if the mode argument is not GAIA2GEOS_ALL only elementary geometries of the selected type will be passed to GEOS, ignoring any other. \remark \b GEOS support required. */ GAIAGEO_DECLARE void *gaiaToGeosSelective (const gaiaGeomCollPtr gaia, int mode); /** Converts a GEOS Geometry into a Geometry object [XY dims] \param geos handle to GEOS Geometry \return the pointer to the newly created Geometry object \sa gaiaToGeos, gaiaFromGeos_XYZ, gaiaFromGeos_XYM, gaiaFromGeos_XYZM \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaFromGeos_XY() \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XY (const void *geos); /** Converts a GEOS Geometry into a Geometry object [XYZ dims] \param geos handle to GEOS Geometry \return the pointer to the newly created Geometry object \sa gaiaToGeos, gaiaFromGeos_XY, gaiaFromGeos_XYM, gaiaFromGeos_XYZM \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaFromGeos_XYZ() \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYZ (const void *geos); /** Converts a GEOS Geometry into a Geometry object [XYM dims] \param geos handle to GEOS Geometry \return the pointer to the newly created Geometry object \sa gaiaToGeos, gaiaFromGeos_XY, gaiaFromGeos_XYZ, gaiaFromGeos_XYZM \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaFromGeos_XYM() \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYM (const void *geos); /** Converts a GEOS Geometry into a Geometry object [XYZM dims] \param geos handle to GEOS Geometry \return the pointer to the newly created Geometry object \sa gaiaToGeos, gaiaFromGeos_XY, gaiaFromGeos_XYZ, gaiaFromGeos_XYM \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaFromGeos_XYZM() \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYZM (const void *geos); /** Checks if a Geometry object represents an OGC Simple Geometry \param geom pointer to Geometry object. \return 0 if false; any other value if true \sa gaiaIsClosed, gaiaIsRing, gaiaIsValid \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaIsSimple (gaiaGeomCollPtr geom); /** Checks if a Linestring object represents an OGC Closed Geometry This function only works on a single linestring - if you pass in a multi-line linestring geometry, it will return 0 (false). See gaiaIsClosedGeom for an alternative. \param line pointer to Linestring object. \return 0 if false; any other value if true \sa gaiaIsSimple, gaiaIsRing, gaiaIsValid, gaiaIsClosedGeom \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaIsClosed (gaiaLinestringPtr line); /** Checks if a Geometry object represents an OGC Closed Linestring \param geom pointer to Geometry object. \return 0 if false; any other value if true \sa gaiaIsSimple, gaiaIsRing, gaiaIsValid, gaiaIsClosed \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaIsClosedGeom (gaiaGeomCollPtr geom); /** Checks if a Linestring object represents an OGC Ring Geometry \param line pointer to Geometry object. \return 0 if false; any other value if true \sa gaiaIsSimple, gaiaIsClosed, gaiaIsValid \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaIsRing (gaiaLinestringPtr line); /** Checks if a Geometry object represents an OGC Valid Geometry \param geom pointer to Geometry object. \return 0 if false; any other value if true \sa gaiaIsSimple, gaiaIsClosed, gaiaIsRing \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaIsValid (gaiaGeomCollPtr geom); /** Measures the total Length for a Geometry object \param geom pointer to Geometry object \param length on completion this variable will contain the measured length \return 0 on failure: any other value on success \sa gaiaGeomCollArea, gaiaMeasureLength, gaiaGeomCollLengthOrPerimeter \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollLength (gaiaGeomCollPtr geom, double *length); /** Measures the total Length or Perimeter for a Geometry object \param geom pointer to Geometry object \param perimeter if TRUE only Polygons will be considered, ignoring any Linesting \n the opposite if FALSE (considering only Linestrings and ignoring any Polygon) \param length on completion this variable will contain the measured length or perimeter \return 0 on failure: any other value on success \sa gaiaGeomCollArea, gaiaMeasureLength, gaiaGeomCollLength \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollLengthOrPerimeter (gaiaGeomCollPtr geom, int perimeter, double *length); /** Measures the total Area for a Geometry object \param geom pointer to Geometry object \param area on completion this variable will contain the measured area \return 0 on failure: any other value on success \sa gaiaGeomCollLength, gaiaMeasureArea, gaiaGeodesicArea \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollArea (gaiaGeomCollPtr geom, double *area); /** Attempts to rearrange a generic Geometry object into a Polygon or MultiPolygon \param geom the input Geometry object \param force_multi if not set to 0, then an eventual Polygon will be returned casted to MultiPolygon \return the pointer to newly created Geometry object representing a Polygon or MultiPolygon Geometry: NULL on failure. \sa gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaPolygonize() \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaPolygonize (gaiaGeomCollPtr geom, int force_multi); /** Spatial relationship evalution: Equals \param geom1 the first Geometry object to be evaluated \param geom2 the second Geometry object to be evaluated \return 0 if false: any other value if true \sa gaiaGeomCollDisjoint, gaiaGeomCollIntersects, gaiaGeomCollOverlaps, gaiaGeomCollCrosses, gaiaGeomCollContains, gaiaGeomCollWithin, gaiaGeomCollTouches, gaiaGeomCollRelate, gaiaGeomCollPreparedDisjoint \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollEquals (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); /** Spatial relationship evalution: Disjoint \param geom1 the first Geometry object to be evaluated \param geom2 the second Geometry object to be evaluated \return 0 if false: any other value if true \sa gaiaGeomCollEquals, gaiaGeomCollIntersects, gaiaGeomCollOverlaps, gaiaGeomCollCrosses, gaiaGeomCollContains, gaiaGeomCollWithin, gaiaGeomCollTouches, gaiaGeomCollRelate \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollDisjoint (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); /** Spatial relationship evalution: Disjoint (GEOSPreparedGeometry) \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom1 the first Geometry object to be evaluated \param blob1 the BLOB corresponding to the first Geometry \param size1 the size (in bytes) of the first BLOB \param geom2 the second Geometry object to be evaluated \param blob2 the BLOB corresponding to the second Geometry \param size2 the size (in bytes) of the second BLOB \return 0 if false: any other value if true \sa gaiaGeomCollDisjoint \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollPreparedDisjoint (void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2); /** Spatial relationship evalution: Intesects \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom1 the first Geometry object to be evaluated \param geom2 the second Geometry object to be evaluated \return 0 if false: any other value if true \sa gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollOverlaps, gaiaGeomCollCrosses, gaiaGeomCollContains, gaiaGeomCollWithin, gaiaGeomCollTouches, gaiaGeomCollRelate, gaiaGeomCollPreparedIntersects \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollIntersects (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); /** Spatial relationship evalution: Intesects (GEOSPreparedGeometry) \param geom1 the first Geometry object to be evaluated \param blob1 the BLOB corresponding to the first Geometry \param size1 the size (in bytes) of the first BLOB \param geom2 the second Geometry object to be evaluated \param blob2 the BLOB corresponding to the second Geometry \param size2 the size (in bytes) of the second BLOB \return 0 if false: any other value if true \sa gaiaGeomCollIntersects \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollPreparedIntersects (void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2); /** Spatial relationship evalution: Overlaps \param geom1 the first Geometry object to be evaluated \param geom2 the second Geometry object to be evaluated \return 0 if false: any other value if true \sa gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, gaiaGeomCollCrosses, gaiaGeomCollContains, gaiaGeomCollWithin, gaiaGeomCollTouches, gaiaGeomCollRelate, gaiaGeomCollPreparedOverlaps \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollOverlaps (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); /** Spatial relationship evalution: Overlaps (GEOSPreparedGeometry) \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom1 the first Geometry object to be evaluated \param blob1 the BLOB corresponding to the first Geometry \param size1 the size (in bytes) of the first BLOB \param geom2 the second Geometry object to be evaluated \param blob2 the BLOB corresponding to the second Geometry \param size2 the size (in bytes) of the second BLOB \return 0 if false: any other value if true \sa gaiaGeomCollOverlaps \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollPreparedOverlaps (void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2); /** Spatial relationship evalution: Crosses \param geom1 the first Geometry object to be evaluated \param geom2 the second Geometry object to be evaluated \return 0 if false: any other value if true \sa gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, gaiaGeomCollOverlaps, gaiaGeomCollContains, gaiaGeomCollWithin, gaiaGeomCollTouches, gaiaGeomCollRelate, gaiaGeomCollCrosses \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollCrosses (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); /** Spatial relationship evalution: Crosses (GEOSPreparedGeometry) \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom1 the first Geometry object to be evaluated \param blob1 the BLOB corresponding to the first Geometry \param size1 the size (in bytes) of the first BLOB \param geom2 the second Geometry object to be evaluated \param blob2 the BLOB corresponding to the second Geometry \param size2 the size (in bytes) of the second BLOB \return 0 if false: any other value if true \sa gaiaGeomCollCrosses \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollPreparedCrosses (void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2); /** Spatial relationship evalution: Contains \param geom1 the first Geometry object to be evaluated \param geom2 the second Geometry object to be evaluated \return 0 if false: any other value if true \sa gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, gaiaGeomCollOverlaps, gaiaGeomCollCrosses, gaiaGeomCollWithin, gaiaGeomCollTouches, gaiaGeomCollRelate, gaiaGeomCollPreparedContains \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollContains (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); /** Spatial relationship evalution: Contains (GEOSPreparedGeometry) \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom1 the first Geometry object to be evaluated \param blob1 the BLOB corresponding to the first Geometry \param size1 the size (in bytes) of the first BLOB \param geom2 the second Geometry object to be evaluated \param blob2 the BLOB corresponding to the second Geometry \param size2 the size (in bytes) of the second BLOB \return 0 if false: any other value if true \sa gaiaGeomCollContains \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollPreparedContains (void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2); /** Spatial relationship evalution: Within \param geom1 the first Geometry object to be evaluated \param geom2 the second Geometry object to be evaluated \return 0 if false: any other value if true \sa gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, gaiaGeomCollOverlaps, gaiaGeomCollCrosses, gaiaGeomCollContains, gaiaGeomCollTouches, gaiaGeomCollRelate, gaiaGeomCollWithin \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollWithin (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); /** Spatial relationship evalution: Within (GEOSPreparedGeometry) \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom1 the first Geometry object to be evaluated \param blob1 the BLOB corresponding to the first Geometry \param size1 the size (in bytes) of the first BLOB \param geom2 the second Geometry object to be evaluated \param blob2 the BLOB corresponding to the second Geometry \param size2 the size (in bytes) of the second BLOB \return 0 if false: any other value if true \sa gaiaGeomCollPrepared \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollPreparedWithin (void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2); /** Spatial relationship evalution: Touches \param geom1 the first Geometry object to be evaluated \param geom2 the second Geometry object to be evaluated \return 0 if false: any other value if true \sa gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, gaiaGeomCollOverlaps, gaiaGeomCollCrosses, gaiaGeomCollContains, gaiaGeomCollWithin, gaiaGeomCollRelate, gaiaGeomCollPreparedTouches \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollTouches (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); /** Spatial relationship evalution: Touches (GEOSPreparedGeometry) \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom1 the first Geometry object to be evaluated \param blob1 the BLOB corresponding to the first Geometry \param size1 the size (in bytes) of the first BLOB \param geom2 the second Geometry object to be evaluated \param blob2 the BLOB corresponding to the second Geometry \param size2 the size (in bytes) of the second BLOB \return 0 if false: any other value if true \sa gaiaGeomCollTouches \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollPreparedTouches (void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2); /** Spatial relationship evalution: Relate \param geom1 the first Geometry object to be evaluated \param geom2 the second Geometry object to be evaluated \param pattern intersection matrix pattern [DE-9IM] \return 0 if false: any other value if true \sa gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, gaiaGeomCollOverlaps, gaiaGeomCollCrosses, gaiaGeomCollContains, gaiaGeomCollWithin, gaiaGeomCollTouches \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollRelate (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, const char *pattern); /** Calculates the maximum distance intercurring between two Geometry objects \param geom1 the first Geometry object \param geom2 the second Geometry object \param dist on completion this variable will contain the calculated distance \return 0 on failure: any other value on success. \sa gaia3DDistance, gaiaMaxDistance, gaia3DMaxDistance \note this function always computes the 2D cartesian distance. \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollDistance (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist); /** Spatial operator: Intersection \param geom1 the first Geometry object \param geom2 the second Geometry object \return the pointer to newly created Geometry object representing the geometry Intersection of both input Geometries: NULL on failure. \sa gaiaFreeGeomColl, gaiaGeometryUnion, gaiaGeometryDifference, gaiaGeometrySymDifference, gaiaBoundary \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaGeometryIntersection() \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryIntersection (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); /** Spatial operator: Union \param geom1 the first Geometry object \param geom2 the second Geometry object \return the pointer to newly created Geometry object representing the geometry Union of both input Geometries: NULL on failure. \sa gaiaFreeGeomColl, gaiaUnaryUnion, gaiaUnionCascaded \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaGeometryUnion() \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryUnion (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); /** Spatial operator: Union Cascaded \param geom the input Geometry object. \return the pointer to newly created Geometry object: NULL on failure. \n this function is similar to gaiaUnaryUnion, but it only accepts Polygons and MultiPolygons and it's now deprecated; anyway it's supported on older GEOS versions. NULL on failure. \sa gaiaFreeGeomColl, gaiaGeometryUnion, gaiaUnionUnion \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaUnionCascaded() \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaUnionCascaded (gaiaGeomCollPtr geom); /** Spatial operator: Difference \param geom1 the first Geometry object \param geom2 the second Geometry object \return the pointer to newly created Geometry object representing the geometry Difference of both input Geometries: NULL on failure. \sa gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaGeometryDifference() \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryDifference (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); /** Spatial operator: SymDifference \param geom1 the first Geometry object \param geom2 the second Geometry object \return the pointer to newly created Geometry object representing the geometry SymDifference of both input Geometries: NULL on failure. \sa gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaGeometrySymDifference() \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometrySymDifference (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); /** Spatial operator: Boundary \param geom the Geometry object to be evaluated \return the pointer to newly created Geometry object representing the geometry Boundary of the input Geometry: NULL on failure. \sa gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaBoundary() \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaBoundary (gaiaGeomCollPtr geom); /** Spatial operator: Centroid \param geom pointer to Geometry object. \param x on completion this variable will contain the centroid X coordinate \param y on completion this variable will contain the centroid Y coordinate \return 0 on failure: any other value on success \sa gaiaRingCentroid \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollCentroid (gaiaGeomCollPtr geom, double *x, double *y); /** Spatial operator: PointOnSurface \param geom pointer to Geometry object. \param x on completion this variable will contain the Point X coordinate \param y on completion this variable will contain the Point Y coordinate \return 0 on failure: any other value on success \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGetPointOnSurface (gaiaGeomCollPtr geom, double *x, double *y); /** Spatial operator: Simplify \param geom the input Geometry object \param tolerance approximation threshold \return the pointer to newly created Geometry object representing the simplified Geometry [applying the Douglas-Peucker algorithm]: NULL on failure. \sa gaiaFreeGeomColl, gaiaGeomCollSimplifyPreserveTopology \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaGeomCollSimplify() \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollSimplify (gaiaGeomCollPtr geom, double tolerance); /** Spatial operator: Simplify [preserving topology] \param geom the input Geometry object \param tolerance approximation threshold \return the pointer to newly created Geometry object representing the simplified Geometry [applying the Douglas-Peucker algorithm]: NULL on failure. \sa gaiaFreeGeomColl, gaiaGeomCollSimplify \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaGeomCollSimplify() \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollSimplifyPreserveTopology (gaiaGeomCollPtr geom, double tolerance); /** Spatial operator: ConvexHull \param geom the input Geometry object \return the pointer to newly created Geometry object representing the ConvexHull of input Geometry: NULL on failure. \sa gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaConvexHull() \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaConvexHull (gaiaGeomCollPtr geom); /** Spatial operator: Buffer \param geom the input Geometry object \param radius the buffer's radius \param points number of points (aka vertices) to be used in order to approximate a circular arc. \return the pointer to newly created Geometry object representing the Buffer of input Geometry: NULL on failure. \sa gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaGeomCollBuffer() \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollBuffer (gaiaGeomCollPtr geom, double radius, int points); #ifndef DOXYGEN_SHOULD_IGNORE_THIS #ifdef GEOS_ADVANCED #endif /** Calculates the Hausdorff distance intercurring between two Geometry objects \param geom1 pointer to first Geometry object \param geom2 pointer to second Geometry object \param dist on completion this variable will contain the calculated Hausdorff distance \return 0 on failure: any other value on success. \remark \b GEOS-ADVANCED support required. */ GAIAGEO_DECLARE int gaiaHausdorffDistance (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist); /** Spatial operator: Offset Curve \param geom the input Geometry object \param radius the buffer's radius \param points number of points (aka vertices) to be used in order to approximate a circular arc. \param left_right if set to 1 the left-sided OffsetCurve will be returned; otherwise the right-sided one. \return the pointer to newly created Geometry object representing the OffsetCurve of input Geometry: NULL on failure. \sa gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaOffsetCurve() \remark \b GEOS-ADVANCED support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaOffsetCurve (gaiaGeomCollPtr geom, double radius, int points, int left_right); /** Spatial operator: Single Sided Buffer \param geom the input Geometry object \param radius the buffer's radius \param points number of points (aka vertices) to be used in order to approximate a circular arc. \param left_right if set to 1 the left-sided Buffer will be returned; otherwise the right-sided one. \return the pointer to newly created Geometry object representing the single-sided Buffer of input Geometry: NULL on failure. \sa gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaSingleSidedBuffer() \remark \b GEOS-ADVANCED support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSingleSidedBuffer (gaiaGeomCollPtr geom, double radius, int points, int left_right); /** Spatial operator: Shared Paths \param geom1 pointer to first Geometry object \param geom2 pointer to second Geometry object \return the pointer to newly created Geometry object representing any Share Path common to both input geometries: NULL on failure. \sa gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaSharedPaths() \remark \b GEOS-ADVANCED support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSharedPaths (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); /** Spatial operator: Line Interpolate Point \param ln_geom the input Geometry object [expected to be of lineal type] \param fraction total length fraction [in the range 0.0 / 1.0] \return the pointer to newly created Geometry object representing a Point laying on the input Geometry and positioned at the given length fraction: NULL on failure. \sa gaiaLineInterpolateEquidistantPoints \sa gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaLineInterpolatePoint() \remark \b GEOS-ADVANCED support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineInterpolatePoint (gaiaGeomCollPtr ln_geom, double fraction); /** Spatial operator: Line Interpolate Equidistant Points \param ln_geom the input Geometry object [expected to be of lineal type] \param distance regular distance between interpolated points \return the pointer to newly created Geometry object representing a MultiPoint; such MultiPoint always supports the M coordinate (the corresponding value representing the progressive distance for each interpolated Point). individual Points will be regularly spaced by the given distance: NULL on failure. \sa gaiaLineInterpolatePoint \sa gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaLineInterpolateEquidistantPoints() \remark \b GEOS-ADVANCED support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineInterpolateEquidistantPoints (gaiaGeomCollPtr ln_geom, double distance); /** Spatial operator: Line Substring \param ln_geom the input Geometry object [expected to be of lineal type] \param start_fraction substring start, expressed as total length fraction [in the range 0.0 / 1.0] \param end_fraction substring end, expressed as total length fraction \return the pointer to newly created Geometry object representing a Linestring laying on the input Geometry. \n this Linestring will begin (and stop) at given total length fractions. NULL on failure. \sa gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaLineSubstring() \remark \b GEOS-ADVANCED support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineSubstring (gaiaGeomCollPtr ln_geom, double start_fraction, double end_fraction); /** Spatial operator: Shortest Line \param geom1 pointer to the first Geometry object. \param geom2 pointer to the second Geometry object. \return the pointer to newly created Geometry object representing a Linestring; NULL on failure. \n the returned Linestring graphically represents the minimum distance intercurrinng between both input geometries. \sa gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaShortestLine() \remark \b GEOS-ADVANCED support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaShortestLine (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); /** Spatial operator: Shortest Line \param geom1 pointer to the first Geometry object. \param geom2 pointer to the second Geometry object. \param tolerance approximation factor \return the pointer to newly created Geometry object; NULL on failure. \n the returned Geometry represents the first input Geometry (nicely \e snapped to the second input Geometry, whenever is possible). \sa gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaShortestLine() \remark \b GEOS-ADVANCED support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSnap (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double tolerance); /** Spatial operator: Line Merge \param geom pointer to input Geometry object. \return the pointer to newly created Geometry object; NULL on failure. \n if possible, this representing a reassembled Linestring or MultiLinestring. \sa gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaLineMerge() \remark \b GEOS-ADVANCED support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineMerge (gaiaGeomCollPtr geom); /** Spatial operator: Line Cut At Nodes \param geom1 pointer to input Geometry object [Linestring or MultiLinestring]. \param geom2 pointer to input Geometry object [Point or MultiPoint]. \return the pointer to newly created Geometry object; NULL on failure. \n if possible, any input Linestring will be split accordingly to given Node(s): no point will be interpolated, existing Linestring Vertices will be evaluated. \sa gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaLinesCutAtNodes() \remark \b GEOS-ADVANCED support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLinesCutAtNodes (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); /** Spatial operator: Unary Union \param geom the input Geometry object. \return the pointer to newly created Geometry object: NULL on failure. \n this function is the same as gaiaGeometryUnion, except in that this works internally to the input Geometry itself. NULL on failure. \sa gaiaFreeGeomColl, gaiaGeometryUnion, gaiaUnionCascaded \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaUnaryUnion() \remark \b GEOS-ADVANCED support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaUnaryUnion (gaiaGeomCollPtr geom); /** Determines the location of the closest Point on Linestring to the given Point \param ln_geom pointer to first input Geometry object [expected to be of the lineal type]. \param pt_geom pointer to second input Geometry object [expected to be a Point]. \return the fraction [in the range 0.0 / 1.0] of ln_geom total length where the closest Point to pt_geom lays. \remark \b GEOS-ADVANCED support required. */ GAIAGEO_DECLARE double gaiaLineLocatePoint (gaiaGeomCollPtr ln_geom, gaiaGeomCollPtr pt_geom); /** Topology check: test if a Geometry covers another one \param geom1 pointer to first input Geometry object. \param geom2 pointer to second input Geometry object. \return 0 if false; any other value if geom1 \e spatially \e covers geom2. \sa gaiaGeomCollCoveredBy \remark \b GEOS-ADVANCED support required. */ GAIAGEO_DECLARE int gaiaGeomCollCovers (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); /** Topology check: test if a Geometry covers another one (GEOSPreparedGeometry) \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom1 pointer to first input Geometry object. \param blob1 the BLOB corresponding to the first Geometry \param size1 the size (in bytes) of the first BLOB \param geom2 pointer to second input Geometry object. \param blob2 the BLOB corresponding to the second Geometry \param size2 the size (in bytes) of the second BLOB \return 0 if false; any other value if geom1 \e spatially \e covers geom2. \sa gaiaGeomCollCovers \remark \b GEOS-ADVANCED support required. */ GAIAGEO_DECLARE int gaiaGeomCollPreparedCovers (void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2); /** Topology check: test if a Geometry is covered by another one \param geom1 pointer to first input Geometry object. \param geom2 pointer to second input Geometry object. \return 0 if false; any other value if geom2 is \e spatially \e covered \e by geom1. \sa gaiaGeomCollCovers \remark \b GEOS-ADVANCED support required. */ GAIAGEO_DECLARE int gaiaGeomCollCoveredBy (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); /** Topology check: test if a Geometry is covered by another one (GEOSPreparedGeometry) \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom1 pointer to first input Geometry object. \param blob1 the BLOB corresponding to the first Geometry \param size1 the size (in bytes) of the first BLOB \param geom2 pointer to second input Geometry object. \param blob2 the BLOB corresponding to the second Geometry \param size2 the size (in bytes) of the second BLOB \return 0 if false; any other value if geom2 is \e spatially \e covered \e by geom1. \sa gaiaGeomCollCovers \remark \b GEOS-ADVANCED support required. */ GAIAGEO_DECLARE int gaiaGeomCollPreparedCoveredBy (void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2); /** Utility function: SquareGrid \param geom the Geometry to be covered by the Grid. \param origin_x the X ccordinate identifying the Grid Origin. \param origin_y the Y coordinate identifiying the Grid Origin. \param size the Grid cell-side size. \param only_edges if non-zero will return a MULTILINESTRING, otherwise it will return a MULTIPOLYGON containing square POLYGONs. \return the pointer to newly created Geometry object: NULL on failure. \n this function will always return a MultiPolygon \n NULL will be returned if any argument is invalid. \sa gaiaFreeGeomColl, gaiaTriangularGrid, gaiaHexagonalGrid \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaSquareGrid() */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSquareGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y, double size, int only_edges); /** Utility function: TriangularGrid \param geom the Geometry to be covered by the Grid. \param origin_x the X ccordinate identifying the Grid Origin. \param origin_y the Y coordinate identifiying the Grid Origin. \param size the Grid cell-side size. \param only_edges if non-zero will return a MULTILINESTRING, otherwise it will return a MULTIPOLYGON containing triangular POLYGONs. \return the pointer to newly created Geometry object: NULL on failure. \n this function will always return a MultiPolygon \n NULL will be returned if any argument is invalid. \sa gaiaFreeGeomColl, gaiaSquareGrid, gaiaHexagonalGrid \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaTriangularGrid() */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTriangularGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y, double size, int only_edges); /** Utility function: HexagonalGrid \param geom the Geometry to be covered by the Grid. \param origin_x the X ccordinate identifying the Grid Origin. \param origin_y the Y coordinate identifiying the Grid Origin. \param size the Grid cell-side size. \param only_edges if non-zero will return a MULTILINESTRING, otherwise it will return a MULTIPOLYGON containing hexagonal POLYGONs. \return the pointer to newly created Geometry object: NULL on failure. \n this function will always return a MultiPolygon \n NULL will be returned if any argument is invalid. \sa gaiaFreeGeomColl, gaiaSquareGrid, gaiaTriangularGrid \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaHexagonalGrid() */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaHexagonalGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y, double size, int only_edges); #endif /* end GEOS advanced features */ #ifndef DOXYGEN_SHOULD_IGNORE_THIS #ifdef GEOS_TRUNK #endif /** Delaunay Triangulation \param geom pointer to input Geometry object. \param tolerance optional snapping tolerance. \param only_edges if non-zero will return a MULTILINESTRING, otherwise it will return a MULTIPOLYGON containing triangular POLYGONs. \return the pointer to newly created Geometry object: NULL on failure. \n NULL will be returned if any argument is invalid. \sa gaiaFreeGeomColl, gaiaVoronojDiagram, gaiaConcaveHull \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaDelaunayTriangulation() \remark \b GEOS-TRUNK support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaDelaunayTriangulation (gaiaGeomCollPtr geom, double tolerance, int only_edges); /** Voronoj Diagram \param geom pointer to input Geometry object. \param extra_frame_size percent factor expanding the BBOX of input Geometry \param tolerance optional snapping tolerance. \param only_edges if non-zero will return a MULTILINESTRING, otherwise it will return a MULTIPOLYGON. \return the pointer to newly created Geometry object: NULL on failure. \n NULL will be returned if any argument is invalid. \sa gaiaFreeGeomColl, gaiaDelaunayTriangulation \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaVoronojDiagram() \remark \b GEOS-TRUNK support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaVoronojDiagram (gaiaGeomCollPtr geom, double extra_frame_size, double tolerance, int only_edges); /** Concave Hull \param geom pointer to input Geometry object. \param factor multiplier used for filtering Delaunay triangles: please read the note. \param tolerance optional snapping tolerance. \param allow_holes if FALSE any interior hole will be suppressed. \return the pointer to newly created Geometry object (always of the Polygon type): NULL on failure. \n NULL will be returned if any argument is invalid. \sa gaiaFreeGeomColl, gaiaDelaunayTriangulation \note This function will first create the Delauany Triangulation corresponding to input Geometry, determining at the same time the \b standard \b deviation for all edge's lengths. \n Then in a second pass all Delaunay's triangles will be filtered, and all triangles presenting at least one edge longer than \b standard \b deviation \b * \b factor will be discarded. \n All filtered triangles will then be merged altogether so to create the Concave Hull. \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaConcaveHull() \remark \b GEOS-TRUNK support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaConcaveHull (gaiaGeomCollPtr geom, double factor, double tolerance, int allow_holes); #endif /* end GEOS experimental features */ #ifndef DOXYGEN_SHOULD_IGNORE_THIS #ifdef ENABLE_LWGEOM #endif /** Resets the LWGEOM error and warning messages to an empty state \sa gaiaGetLwGeomErrorMsg, gaiaGetLwGeomWarningMsg, gaiaSetLwGeomErrorMsg, gaiaSetLwGeomWarningMsg \remark \b LWGEOM support required. */ GAIAGEO_DECLARE void gaiaResetLwGeomMsg (void); /** Return the latest LWGEOM error message (if any) \return the latest LWGEOM error message: an empty string if no error was previoysly found. \sa gaiaResetLwGeomMsg, gaiaGetLwGeomWarningMsg, gaiaSetLwGeomErrorMsg, gaiaSetLwGeomWarningMsg \remark \b LWGEOM support required. */ GAIAGEO_DECLARE const char *gaiaGetLwGeomErrorMsg (void); /** Return the latest LWGEOM warning message (if any) \return the latest LWGEOM warning message: an empty string if no warning was previoysly found. \sa gaiaResetLwGeomMsg, gaiaGetLwGeomErrorMsg, gaiaSetLwGeomErrorMsg, gaiaSetLwGeomWarningMsg \remark \b LWGEOM support required. */ GAIAGEO_DECLARE const char *gaiaGetLwGeomWarningMsg (void); /** Set the current LWGEOM error message \param msg the error message to be set. \sa gaiaResetLwGeomMsg, gaiaGetLwGeomErrorMsg, gaiaGetLwGeomWarningMsg, gaiaSetLwGeomWarningMsg \remark \b LWGEOM support required. */ GAIAGEO_DECLARE void gaiaSetLwGeomErrorMsg (const char *msg); /** Set the current LWGEOM warning message \param msg the warning message to be set. \sa gaiaResetLwGeomMsg, gaiaGetLwGeomErrorMsg, gaiaGetLwGeomWarningMsg, gaiaSetLwGeomErrorMsg \remark \b LWGEOM support required. */ GAIAGEO_DECLARE void gaiaSetLwGeomWarningMsg (const char *msg); /** Utility function: MakeValid \param geom the input Geometry object. \return the pointer to newly created Geometry object: NULL on failure. \n this function will attempt to create a valid representation of a given invalid geometry without loosing any of the input vertices. \n Already-valid geometries are returned without further intervention. \n NULL will be returned if the passed argument is invalid. \sa gaiaFreeGeomColl, gaiaMakeValidDiscarded \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaMakeValid() \remark \b LWGEOM support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMakeValid (gaiaGeomCollPtr geom); /** Utility function: MakeValidDiscarded \param geom the input Geometry object. \return the pointer to newly created Geometry object: NULL on failure. \n this function will attempt to collect any invalid item (offending geometries) discarded by gaiaMakeValid while building a valid Geometry. \n Saving any discarded item could be useful for a finer (manual) adjustment. \n NULL will be returned if gaiaMakeValid hasn't identified any offending item to be discarded during the validation. \sa gaiaFreeGeomColl, gaiaMakeValid \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaMakeValidDiscarded() \remark \b LWGEOM support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMakeValidDiscarded (gaiaGeomCollPtr geom); /** Utility function: Segmentize \param geom the input Geometry object. \param dist the meximum segment length. \return the pointer to newly created Geometry object: NULL on failure. \n this function will return a modified geometry having no segment longer than the given distance. \n Distance computation is performed in 2d only. \n all Points or segments shorter than 'dist' will be returned without further intervention. \n NULL will be returned if the passed argument is invalid. \sa gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaSegmentize() \remark \b LWGEOM support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSegmentize (gaiaGeomCollPtr geom, double dist); /** Utility function: Azimuth \param xa the X coordinate of PointA. \param ya the Y coordinate of PointA. \param xb the X ccordinate of PointB. \param yb the Y coordinate of PointB. \param azimuth on completion this variable will contain the angle in radians from the horizontal of the vector defined by pointA and pointB. \n Angle is computed clockwise from down-to-up: on the clock: 12=0; 3=PI/2; 6=PI; 9=3PI/2. \return 0 on failure: any other value on success \sa gaiaProjectedPoint \remark \b LWGEOM support required. */ GAIAGEO_DECLARE int gaiaAzimuth (double xa, double ya, double xb, double yb, double *azimuth); /** Utility function: EllipsoidAzimuth \param xa the X coordinate of PointA. \param ya the Y coordinate of PointA. \param xb the X ccordinate of PointB. \param yb the Y coordinate of PointB. \param a major axis of the reference spheroid. \param b minor axis of the reference spheroid. \param azimuth on completion this variable will contain the angle in radians from the horizontal of the vector defined by pointA and pointB. \n Angle is computed clockwise from down-to-up: on the clock: 12=0; 3=PI/2; 6=PI; 9=3PI/2. \return 0 on failure: any other value on success \sa gaiaAzimuth \remark \b LWGEOM support required. */ GAIAGEO_DECLARE int gaiaEllipsoidAzimuth (double xa, double ya, double xb, double yb, double a, double b, double *azimuth); /** Utility function: ProjectedPoint \param x1 the X coordinate of the Start Point. \param y1 the Y coordinate of the Start Point. \param a major axis of the reference spheroid. \param b minor axis of the reference spheroid. \param distance a distance expressed in Meters \param azimuth (aka bearing aka heading) expressed in radians; on the clock: 12=0; 3=PI/2; 6=PI; 9=3PI/2. \param x2 on completion this variable will contain the the X coordinate of the Projected Point. \param y2 on completion this variable will contain the the Y coordinate of the Projected Point. \return 0 on failure: any other value on success \remark \b LWGEOM support required. */ GAIAGEO_DECLARE int gaiaProjectedPoint (double x1, double y1, double a, double b, double distance, double azimuth, double *x2, double *y2); /** Utility function: GeoHash \param geom the input geometry. \param precision the expected precision: if <= 0 will be automatically determined. \return NULL on failure: a null-terminated text string on success \note you are responsible to free (before or after) any text string returned by gaiaGeoHash() \remark \b LWGEOM support required. */ GAIAGEO_DECLARE char *gaiaGeoHash (gaiaGeomCollPtr geom, int precision); /** Utility function: AsX3D \param geom the input geometry. \param srs the WKT SRS definition. \param precision the expected precision (coord decimal digits). \param options \param refid the X3D namespace \return NULL on failure: a null-terminated text string on success \note you are responsible to free (before or after) any text string returned by gaiaAsX3D() \remark \b LWGEOM support required. */ GAIAGEO_DECLARE char *gaiaAsX3D (gaiaGeomCollPtr geom, const char *srs, int precision, int options, const char *refid); /** Calculates the minimum 3D distance intercurring between two Geometry objects \param geom1 the first Geometry object \param geom2 the second Geometry object \param dist on completion this variable will contain the calculated distance \return 0 on failure: any other value on success. \sa gaiaGeomCollDistance, gaiaMaxDistance, gaia3DMaxDisance \note this function computes the 3D cartesian distance (if Z is supported) \remark \b LWGEOM support required. */ GAIAGEO_DECLARE int gaia3DDistance (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist); /** Calculates the maximum 2D distance intercurring between two Geometry objects \param geom1 the first Geometry object \param geom2 the second Geometry object \param dist on completion this variable will contain the calculated distance \return 0 on failure: any other value on success. \sa gaiaGeomCollDistance, gaia3DDistance, gaia3DMaxDistance \note this function computes the 2D maximum cartesian distance (Z is always ignored) \remark \b LWGEOM support required. */ GAIAGEO_DECLARE int gaiaMaxDistance (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist); /** Calculates the maximum 3D distance intercurring between two Geometry objects \param geom1 the first Geometry object \param geom2 the second Geometry object \param dist on completion this variable will contain the calculated distance \return 0 on failure: any other value on success. \sa gaiaGeomCollDistance, gaia3DDistance, gaiaMaxDistance \note this function computes the 3D maximum cartesian distance (if Z is supported) \remark \b LWGEOM support required. */ GAIAGEO_DECLARE int gaia3DMaxDistance (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist); /** Utility function: Split \param input the input Geometry object. \param blade the blade Geometry object. \return the pointer to newly created Geometry object: NULL on failure. \n The function supports splitting a line by point, a line by line, a polygon by line. \sa gaiaFreeGeomColl, gaiaSplitLeft, gaiaSplitRight \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaSplit() \note gaiaSplit will return both the \b left and the \b right split halves at the same time. \remark \b LWGEOM support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSplit (gaiaGeomCollPtr input, gaiaGeomCollPtr blade); /** Utility function: SplitLeft \param input the input Geometry object. \param blade the blade Geometry object. \return the pointer to newly created Geometry object: NULL on failure. \n The function supports splitting a line by point, a line by line, a polygon by line. \sa gaiaFreeGeomColl, gaiaSplit, gaiaSplitRight \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaSplitLeft() \note gaiaSplitLeft will only return the \b left split half; NULL may be eventually returned if empty. \remark \b LWGEOM support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSplitLeft (gaiaGeomCollPtr input, gaiaGeomCollPtr blade); /** Utility function: SplitRight \param input the input Geometry object. \param blade the blade Geometry object. \return the pointer to newly created Geometry object: NULL on failure. \n The function supports splitting a line by point, a line by line, a polygon by line. \sa gaiaFreeGeomColl, gaiaSplit, gaiaSplitLeft \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaSplitRight() \note gaiaSplitLeft will only return the \b right split half; NULL may be eventually returned if empty. \remark \b LWGEOM support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSplitRight (gaiaGeomCollPtr input, gaiaGeomCollPtr blade); /** Measures the total Area for a Geometry object (geodesic) \param geom pointer to Geometry object \param a major axis of the reference spheroid. \param b minor axis of the reference spheroid. \param use_ellipsoid if TRUE will measure the Area on the Ellipsoid, otherwise on the Sphere \param area on completion this variable will contain the measured area \return 0 on failure: any other value on success \sa gaiaGeomCollLength, gaiaMeasureArea, gaiaGeomCollArea \remark \b LWGEOM support required. */ GAIAGEO_DECLARE int gaiaGeodesicArea (gaiaGeomCollPtr geom, double a, double b, int use_ellipsoid, double *area); #endif /* end LWGEOM support */ #endif /* end including GEOS */ /** Utility function: SnapToGrid \param geom the input Geometry object. \param origin_x the X ccordinate identifying the Grid Origin. \param origin_y the Y coordinate identifiying the Grid Origin. \param origin_z the Z ccordinate identifying the Grid Origin. \param origin_m the M coordinate identifiying the Grid Origin. \param size_x Grid cell size (X axis). \param size_y Grid cell size (Y axis). \param size_z Grid cell size (Z axis). \param size_m Grid cell size (M axis). \return the pointer to newly created Geometry object: NULL on failure. \n this function will return a modified geometry having all points snapped to a regular Grid defined by its origin and cell size. \n Consecutive points falling on the same cell will be removed, eventually returning NULL if \n output points are not enough to define a geometry of the given type. \n Collapsed geometries in a collection are stripped from it. \n Specify 0 as size for any dimension you don't want to snap to a grid. \n NULL will be returned if the passed argument is invalid. \sa gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaSnapToGrid() */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSnapToGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y, double origin_z, double origin_m, double size_x, double size_y, double size_z, double size_m); #ifdef __cplusplus } #endif #endif /* _GG_ADVANCED_H */ libspatialite-4.1.1/src/headers/spatialite/gaiaexif.h0000664000175000017500000004560412163502133017562 00000000000000/* gaiaexif.h -- Gaia common EXIF Metadata reading functions version 4.1, 2013 May 8 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /** \file gaiaexif.h EXIF/image: supporting functions and constants */ #ifndef DOXYGEN_SHOULD_SKIP_THIS #ifdef DLL_EXPORT #define GAIAEXIF_DECLARE __declspec(dllexport) #else #define GAIAEXIF_DECLARE extern #endif #endif #ifndef _GAIAEXIF_H #ifndef DOXYGEN_SHOULD_SKIP_THIS #define _GAIAEXIF_H #endif #ifdef __cplusplus extern "C" { #endif /* constants used for BLOB value types */ /** generic hexadecimal BLOB */ #define GAIA_HEX_BLOB 0 /** this BLOB does actually contain a GIF image */ #define GAIA_GIF_BLOB 1 /** this BLOB does actually containt a PNG image */ #define GAIA_PNG_BLOB 2 /** this BLOB does actually contain a generic JPEG image */ #define GAIA_JPEG_BLOB 3 /** this BLOB does actually contain a JPEG-EXIF image */ #define GAIA_EXIF_BLOB 4 /** this BLOB does actually contain a JPEG-EXIF image including GPS data */ #define GAIA_EXIF_GPS_BLOB 5 /** this BLOB does actually contain a ZIP compressed file */ #define GAIA_ZIP_BLOB 6 /** this BLOB does actually contain a PDF document */ #define GAIA_PDF_BLOB 7 /** this BLOB does actually contain a SpatiaLite Geometry */ #define GAIA_GEOMETRY_BLOB 8 /** this BLOB does actually contain a TIFF image */ #define GAIA_TIFF_BLOB 9 /** this BLOB does actually contain a WebP image */ #define GAIA_WEBP_BLOB 10 /** this BLOB does actually contain a SpatiaLite XmlBLOB */ #define GAIA_XML_BLOB 11 /* constants used for EXIF value types */ /** unrecognized EXIF value */ #define GAIA_EXIF_NONE 0 /** EXIF value of the BYTE type */ #define GAIA_EXIF_BYTE 1 /** EXIF value of the SHORT type */ #define GAIA_EXIF_SHORT 2 /** EXIF value of the STRING type */ #define GAIA_EXIF_STRING 3 /** EXIF value of the LONG type */ #define GAIA_EXIF_LONG 4 /** EXIF value of the RATIONAL type */ #define GAIA_EXIF_RATIONAL 5 /** EXIF value of the SLONG type */ #define GAIA_EXIF_SLONG 9 /** EXIF value of the SRATIONAL type */ #define GAIA_EXIF_SRATIONAL 10 /** Container for an EXIF tag */ typedef struct gaiaExifTagStruct { /* an EXIF TAG */ /** GPS data included (0/1) */ char Gps; /** EXIF tag ID */ unsigned short TagId; /** EXIF value type */ unsigned short Type; /** number of values */ unsigned short Count; /** tag offset [big- little-endian encoded] */ unsigned char TagOffset[4]; /** array of BYTE values */ unsigned char *ByteValue; /** array of STRING values */ char *StringValue; /** array of SHORT values */ unsigned short *ShortValues; /** array of LONG values ] */ unsigned int *LongValues; /** array of RATIONAL values [numerators] */ unsigned int *LongRationals1; /** array of RATIONAL values [denominators] */ unsigned int *LongRationals2; /** array of Signed SHORT values */ short *SignedShortValues; /** array of Signed LONG values */ int *SignedLongValues; /** array of Signed RATIONAL values [numerators] */ int *SignedLongRationals1; /** array of Signed RATIONAL values [denominators] */ int *SignedLongRationals2; /** array of FLOAT values */ float *FloatValues; /** array of DOUBLE values */ double *DoubleValues; /** pointer to next item into the linked list */ struct gaiaExifTagStruct *Next; } gaiaExifTag; /** Typedef for EXIF tag structure. \sa gaiaExifTagStruct */ typedef gaiaExifTag *gaiaExifTagPtr; /** Container for a list of EXIF tags */ typedef struct gaiaExifTagListStruct { /* an EXIF TAG LIST */ /** pointer to first item into the linked list */ gaiaExifTagPtr First; /** pointer to the last item into the linked list */ gaiaExifTagPtr Last; /** number of items */ int NumTags; /** an array of pointers to items */ gaiaExifTagPtr *TagsArray; } gaiaExifTagList; /** Typedef for EXIF tag structure \sa gaiaExifTagListStruct */ typedef gaiaExifTagList *gaiaExifTagListPtr; /* function prototipes */ /** Creates a list of EXIF tags by parsing a BLOB of the JPEG-EXIF type \param blob the BLOB to be parsed \param size the BLOB size (in bytes) \return a list of EXIF tags: or NULL if any error is encountered \sa gaiaExifTagsFree \note you must explicitly destroy the list when it's any longer used. */ GAIAEXIF_DECLARE gaiaExifTagListPtr gaiaGetExifTags (const unsigned char *blob, int size); /** Destroy a list of EXIF tags \param tag_list the list to be destroied \sa gaiaGetExifTags \note the pointer passed to this function must be one returned by a previous call to gaiaGetExifTags */ GAIAEXIF_DECLARE void gaiaExifTagsFree (gaiaExifTagListPtr tag_list); /** Return the total number of EXIF tags into the list \param tag_list pointer to an EXIF tag list. \return the EXIF tag count. \sa gaiaGetExifTags, gaiaExifTagsFree */ GAIAEXIF_DECLARE int gaiaGetExifTagsCount (gaiaExifTagListPtr tag_list); /** Retrieves an EXIF tag by its relative position into the list \param tag_list pointer to an EXIF tag list. \param pos relative item position [first item is 0] \return a pointer to the corresponding EXIF tag: NULL if not found \sa gaiaGetExifTags, gaiaExifTagsFree, gaiaExifTagsCount */ GAIAEXIF_DECLARE gaiaExifTagPtr gaiaGetExifTagByPos (gaiaExifTagListPtr tag_list, const int pos); /** Return the total number of EXIF tags into the list \param tag_list pointer to an EXIF tag list. \return the EXIF tag count. \sa gaiaGetExifTags, gaiaExifTagsFree */ GAIAEXIF_DECLARE int gaiaGetExifTagsCount (gaiaExifTagListPtr tag_list); /** Retrieves an EXIF tag by its Tag ID \param tag_list pointer to an EXIF tag list. \param tag_id the Tag ID to be found \return a pointer to the corresponding EXIF tag: NULL if not found \sa gaiaGetExifTags, gaiaExifTagsFree */ GAIAEXIF_DECLARE gaiaExifTagPtr gaiaGetExifTagById (const gaiaExifTagListPtr tag_list, const unsigned short tag_id); /** Retrieves an EXIF-GPS tag by its Tag ID \param tag_list pointer to an EXIF tag list. \param tag_id the GPS Tag ID to be found \return a pointer to the corresponding EXIF tag: NULL if not found \sa gaiaGetExifTags, gaiaExifTagsFree */ GAIAEXIF_DECLARE gaiaExifTagPtr gaiaGetExifGpsTagById (const gaiaExifTagListPtr tag_list, const unsigned short tag_id); /** Retrieves an EXIF tag by its name \param tag_list pointer to an EXIF tag list. \param tag_name the Tag Name to be found \return a pointer to the corresponding EXIF tag: NULL if not found \sa gaiaGetExifTags, gaiaExifTagsFree */ GAIAEXIF_DECLARE gaiaExifTagPtr gaiaGetExifTagByName (const gaiaExifTagListPtr tag_list, const char *tag_name); /** Return the Tag ID from an EXIF tag \param tag pointer to an EXIF tag \return the Tag ID \sa gaiaGetExifTagById, gaiaGetExifGpsTagById, gaiaGetExifTagByName */ GAIAEXIF_DECLARE unsigned short gaiaExifTagGetId (const gaiaExifTagPtr tag); /** Return the Tag Name from an EXIF tag \param tag pointer to an EXIF tag \param tag_name receiving buffer: the Tag Name will be copied here \param len length of the receiving buffer \sa gaiaGetExifTagById, gaiaGetExifGpsTagById, gaiaGetExifTagByName */ GAIAEXIF_DECLARE void gaiaExifTagGetName (const gaiaExifTagPtr tag, char *tag_name, int len); /** Checks if an EXIF tag actually is an EXIF-GPS tag \param tag pointer to an EXIF tag \return 0 if false: any other value if true \sa gaiaGetExifTagById, gaiaGetExifGpsTagById, gaiaGetExifTagByName */ GAIAEXIF_DECLARE int gaiaIsExifGpsTag (const gaiaExifTagPtr tag); /** Return the value type for an EXIF tag \param tag pointer to an EXIF tag \return the value type: one of GAIA_EXIF_NONE, GAIA_EXIF_BYTE, GAIA_EXIF_SHORT, GAIA_EXIF_STRING, GAIA_EXIF_LONG, GAIA_EXIF_RATIONAL, GAIA_EXIF_SLONG, GAIA_EXIF_SRATIONAL \sa gaiaGetExifTagById, gaiaGetExifGpsTagById, gaiaGetExifTagByName */ GAIAEXIF_DECLARE unsigned short gaiaExifTagGetValueType (const gaiaExifTagPtr tag); /** Return the total count of values from an EXIF tag \param tag pointer to an EXIF tag \return the number of available values \sa gaiaGetExifTagById, gaiaGetExifGpsTagById, gaiaGetExifTagByName */ GAIAEXIF_DECLARE unsigned short gaiaExifTagGetNumValues (const gaiaExifTagPtr tag); /** Return a BYTE value from an EXIF tag \param tag pointer to an EXIF tag. \param ind value index [first value has index 0]. \param ok on completion will contain 0 on failure: any other value on success. \return the BYTE value \sa gaiaGetExifTagById, gaiaGetExifGpsTagById, gaiaGetExifTagByName, gaiaExifTagGetValueType, gaiaExifTagGetNumValues */ GAIAEXIF_DECLARE unsigned char gaiaExifTagGetByteValue (const gaiaExifTagPtr tag, const int ind, int *ok); /** Return a STRING value from an EXIF tag \param tag pointer to an EXIF tag. \param str receiving buffer: the STRING value will be copied here. \param len length of the receiving buffer \param ok on completion will contain 0 on failure: any other value on success. \sa gaiaGetExifTagById, gaiaGetExifGpsTagById, gaiaGetExifTagByName, gaiaExifTagGetValueType, gaiaExifTagGetNumValues */ GAIAEXIF_DECLARE void gaiaExifTagGetStringValue (const gaiaExifTagPtr tag, char *str, int len, int *ok); /** Return a SHORT value from an EXIF tag \param tag pointer to an EXIF tag. \param ind value index [first value has index 0]. \param ok on completion will contain 0 on failure: any other value on success. \return the SHORT value \sa gaiaGetExifTagById, gaiaGetExifGpsTagById, gaiaGetExifTagByName, gaiaExifTagGetValueType, gaiaExifTagGetNumValues */ GAIAEXIF_DECLARE unsigned short gaiaExifTagGetShortValue (const gaiaExifTagPtr tag, const int ind, int *ok); /** Return a LONG value from an EXIF tag \param tag pointer to an EXIF tag. \param ind value index [first value has index 0]. \param ok on completion will contain 0 on failure: any other value on success. \return the LONG value \sa gaiaGetExifTagById, gaiaGetExifGpsTagById, gaiaGetExifTagByName, gaiaExifTagGetValueType, gaiaExifTagGetNumValues */ GAIAEXIF_DECLARE unsigned int gaiaExifTagGetLongValue (const gaiaExifTagPtr tag, const int ind, int *ok); /** Return a RATIONAL [numerator] value from an EXIF tag \param tag pointer to an EXIF tag. \param ind value index [first value has index 0]. \param ok on completion will contain 0 on failure: any other value on success. \return the RATIONAL [numerator] value \sa gaiaGetExifTagById, gaiaGetExifGpsTagById, gaiaGetExifTagByName, gaiaExifTagGetValueType, gaiaExifTagGetNumValues */ GAIAEXIF_DECLARE unsigned int gaiaExifTagGetRational1Value (const gaiaExifTagPtr tag, const int ind, int *ok); /** Return a RATIONAL [denominator] value from an EXIF tag \param tag pointer to an EXIF tag. \param ind value index [first value has index 0]. \param ok on completion will contain 0 on failure: any other value on success. \return the RATIONAL [denominator] value \sa gaiaGetExifTagById, gaiaGetExifGpsTagById, gaiaGetExifTagByName, gaiaExifTagGetValueType, gaiaExifTagGetNumValues */ GAIAEXIF_DECLARE unsigned int gaiaExifTagGetRational2Value (const gaiaExifTagPtr tag, const int ind, int *ok); /** Return a RATIONAL value from an EXIF tag \param tag pointer to an EXIF tag. \param ind value index [first value has index 0]. \param ok on completion will contain 0 on failure: any other value on success. \return the RATIONAL value \sa gaiaGetExifTagById, gaiaGetExifGpsTagById, gaiaGetExifTagByName, gaiaExifTagGetValueType, gaiaExifTagGetNumValues */ GAIAEXIF_DECLARE double gaiaExifTagGetRationalValue (const gaiaExifTagPtr tag, const int ind, int *ok); /** Return a Signed SHORT value from an EXIF tag \param tag pointer to an EXIF tag. \param ind value index [first value has index 0]. \param ok on completion will contain 0 on failure: any other value on success. \return the Signed SHORT value \sa gaiaGetExifTagById, gaiaGetExifGpsTagById, gaiaGetExifTagByName, gaiaExifTagGetValueType, gaiaExifTagGetNumValues */ GAIAEXIF_DECLARE short gaiaExifTagGetSignedShortValue (const gaiaExifTagPtr tag, const int ind, int *ok); /** Return a Signed LONG value from an EXIF tag \param tag pointer to an EXIF tag. \param ind value index [first value has index 0]. \param ok on completion will contain 0 on failure: any other value on success. \return the Signed LONG value \sa gaiaGetExifTagById, gaiaGetExifGpsTagById, gaiaGetExifTagByName, gaiaExifTagGetValueType, gaiaExifTagGetNumValues */ GAIAEXIF_DECLARE int gaiaExifTagGetSignedLongValue (const gaiaExifTagPtr tag, const int ind, int *ok); /** Return a SRATIONAL [numerator] value from an EXIF tag \param tag pointer to an EXIF tag. \param ind value index [first value has index 0]. \param ok on completion will contain 0 on failure: any other value on success. \return the SRATIONAL [numerator] value \sa gaiaGetExifTagById, gaiaGetExifGpsTagById, gaiaGetExifTagByName, gaiaExifTagGetValueType, gaiaExifTagGetNumValues */ GAIAEXIF_DECLARE int gaiaExifTagGetSignedRational1Value (const gaiaExifTagPtr tag, const int ind, int *ok); /** Return a SRATIONAL [denominator] value from an EXIF tag \param tag pointer to an EXIF tag. \param ind value index [first value has index 0]. \param ok on completion will contain 0 on failure: any other value on success. \return the SRATIONAL [denominator] value \sa gaiaGetExifTagById, gaiaGetExifGpsTagById, gaiaGetExifTagByName, gaiaExifTagGetValueType, gaiaExifTagGetNumValues */ GAIAEXIF_DECLARE int gaiaExifTagGetSignedRational2Value (const gaiaExifTagPtr tag, const int ind, int *ok); /** Return a Signed RATIONAL value from an EXIF tag \param tag pointer to an EXIF tag. \param ind value index [first value has index 0]. \param ok on completion will contain 0 on failure: any other value on success. \return the Signed RATIONAL value \sa gaiaGetExifTagById, gaiaGetExifGpsTagById, gaiaGetExifTagByName, gaiaExifTagGetValueType, gaiaExifTagGetNumValues */ GAIAEXIF_DECLARE double gaiaExifTagGetSignedRationalValue (const gaiaExifTagPtr tag, const int ind, int *ok); /** Return a FLOAT value from an EXIF tag \param tag pointer to an EXIF tag. \param ind value index [first value has index 0]. \param ok on completion will contain 0 on failure: any other value on success. \return the FLOAT value \sa gaiaGetExifTagById, gaiaGetExifGpsTagById, gaiaGetExifTagByName, gaiaExifTagGetValueType, gaiaExifTagGetNumValues */ GAIAEXIF_DECLARE float gaiaExifTagGetFloatValue (const gaiaExifTagPtr tag, const int ind, int *ok); /** Return a DOUBLE value from an EXIF tag \param tag pointer to an EXIF tag. \param ind value index [first value has index 0]. \param ok on completion will contain 0 on failure: any other value on success. \return the DOUBLE value \sa gaiaGetExifTagById, gaiaGetExifGpsTagById, gaiaGetExifTagByName, gaiaExifTagGetValueType, gaiaExifTagGetNumValues */ GAIAEXIF_DECLARE double gaiaExifTagGetDoubleValue (const gaiaExifTagPtr tag, const int ind, int *ok); /** Return a human readable description from an EXIF tag \param tag pointer to an EXIF tag. \param str receiving buffer: the STRING value will be copied here. \param len length of the receiving buffer \param ok on completion will contain 0 on failure: any other value on success. \sa gaiaGetExifTagById, gaiaGetExifGpsTagById, gaiaGetExifTagByName */ GAIAEXIF_DECLARE void gaiaExifTagGetHumanReadable (const gaiaExifTagPtr tag, char *str, int len, int *ok); /** Attempts to guess the actual content-type of some BLOB \param blob the BLOB to be parsed \param size length of the BLOB (in bytes) \return the BLOB type: one of GAIA_HEX_BLOB, GAIA_GIF_BLOB, GAIA_PNG_BLOB, GAIA_JPEG_BLOB, GAIA_EXIF_BLOB, GAIA_EXIF_GPS_BLOB, GAIA_ZIP_BLOB, GAIA_PDF_BLOB, GAIA_GEOMETRY_BLOB, GAIA_TIFF_BLOB */ GAIAEXIF_DECLARE int gaiaGuessBlobType (const unsigned char *blob, int size); /** Return longitude and latitude from an EXIF-GPS tag \param blob the BLOB to be parsed \param size length of the BLOB (in bytes) \param longitude on success will contain the longitude coordinate \param latitude on success will contain the latitude coordinate \return 0 on failure: any other value on success \sa gaiaGetExifTagById, gaiaGetExifGpsTagById, gaiaGetExifTagByName, gaiaIsExifGpsTag */ GAIAEXIF_DECLARE int gaiaGetGpsCoords (const unsigned char *blob, int size, double *longitude, double *latitude); /** Return a text string representing DMS coordinates from an EXIF-GPS tag \param blob the BLOB to be parsed \param size length of the BLOB (in bytes) \param latlong receiving buffer: the text string will be copied here. \param ll_size length of the receiving buffer \return 0 on failure: any other value on success \sa gaiaGetExifTagById, gaiaGetExifGpsTagById, gaiaGetExifTagByName, gaiaIsExifGpsTag */ GAIAEXIF_DECLARE int gaiaGetGpsLatLong (const unsigned char *blob, int size, char *latlong, int ll_size); #ifdef __cplusplus } #endif #endif /* _GAIAEXIF_H */ libspatialite-4.1.1/src/headers/spatialite/gg_mbr.h0000664000175000017500000003427312163502133017242 00000000000000/* gg_mbr.h -- Gaia common support for geometries: MBR functions version 4.1, 2013 May 8 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /** \file gg_mbr.h Geometry handling functions: MBR */ #ifndef _GG_MBR_H #ifndef DOXYGEN_SHOULD_SKIP_THIS #define _GG_MBR_H #endif #ifdef __cplusplus extern "C" { #endif /* function prototypes */ /** Updates the actual MBR for a Linestring object \param line pointer to the Linestring object */ GAIAGEO_DECLARE void gaiaMbrLinestring (gaiaLinestringPtr line); /** Updates the actual MBR for a Ring object \param rng pointer to the Ring object */ GAIAGEO_DECLARE void gaiaMbrRing (gaiaRingPtr rng); /** Updates the actual MBR for a Polygon object \param polyg pointer to the Polygon object */ GAIAGEO_DECLARE void gaiaMbrPolygon (gaiaPolygonPtr polyg); /** Updates the actual MBR for a Geometry object \param geom pointer to the Geometry object */ GAIAGEO_DECLARE void gaiaMbrGeometry (gaiaGeomCollPtr geom); /** Retrieves the MBR (MinX) from a BLOB-Geometry object \param blob pointer to BLOB-Geometry. \param size the BLOB's size (in bytes). \param minx on completion this variable will contain the MBR MinX coordinate. \return 0 on failure: any other value on success. \sa gaiaGetMbrMaxX, gaiaGetMbrMinY, gaiaGetMbrMaxY */ GAIAGEO_DECLARE int gaiaGetMbrMinX (const unsigned char *blob, unsigned int size, double *minx); /** Retrieves the MBR (MaxX) from a BLOB-Geometry object \param blob pointer to BLOB-Geometry. \param size the BLOB's size (in bytes). \param maxx on completion this variable will contain the MBR MaxX coordinate. \return 0 on failure: any other value on success. \sa gaiaGetMbrMinX, gaiaGetMbrMinY, gaiaGetMbrMaxY */ GAIAGEO_DECLARE int gaiaGetMbrMaxX (const unsigned char *blob, unsigned int size, double *maxx); /** Retrieves the MBR (MinY) from a BLOB-Geometry object \param blob pointer to BLOB-Geometry. \param size the BLOB's size (in bytes). \param miny on completion this variable will contain the MBR MinY coordinate. \return 0 on failure: any other value on success. \sa gaiaGetMbrMinX, gaiaGetMbrMaxX, gaiaGetMbrMaxY */ GAIAGEO_DECLARE int gaiaGetMbrMinY (const unsigned char *blob, unsigned int size, double *miny); /** Retrieves the MBR (MaxY) from a BLOB-Geometry object \param blob pointer to BLOB-Geometry. \param size the BLOB's size (in bytes). \param maxy on completion this variable will contain the MBR MaxY coordinate. \return 0 on failure: any other value on success. \sa gaiaGetMbrMinX, gaiaGetMbrMaxX, gaiaGetMbrMinY */ GAIAGEO_DECLARE int gaiaGetMbrMaxY (const unsigned char *blob, unsigned int size, double *maxy); /** Creates a Geometry object corresponding to the Envelope [MBR] for a BLOB-Geometry \param blob pointer to BLOB-Geometry \param size the BLOB's size (in bytes) \return the pointer to the newly created Geometry object: NULL on failure \sa gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, unless you've passed ownership of the Geometry object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromSpatiaLiteBlobMbr (const unsigned char *blob, unsigned int size); /** MBRs comparison: Contains \param mbr1 pointer to first Geometry object. \param mbr2 pointer to second Geometry object. \return 0 if false; any other value if mbr1 spatially \e contains mbr2 \sa gaiaMbrsDisjoint, gaiaMbrsEqual, gaiaMbrsIntersects, gaiaMbrsOverlaps, gaiaMbrsTouches, gaiaMbrsWithin */ GAIAGEO_DECLARE int gaiaMbrsContains (gaiaGeomCollPtr mbr1, gaiaGeomCollPtr mbr2); /** MBRs comparison: Disjoint \param mbr1 pointer to first Geometry object. \param mbr2 pointer to second Geometry object. \return 0 if false; any other value if mbr1 and mbr2 are spatially \e disjoint \sa gaiaMbrsContains, gaiaMbrsEqual, gaiaMbrsIntersects, gaiaMbrsOverlaps, gaiaMbrsTouches, gaiaMbrsWithin */ GAIAGEO_DECLARE int gaiaMbrsDisjoint (gaiaGeomCollPtr mbr1, gaiaGeomCollPtr mbr2); /** MBRs comparison: Equal \param mbr1 pointer to first Geometry object. \param mbr2 pointer to second Geometry object. \return 0 if false; any other value if mbr1 and mbr2 are spatially \e equal \sa gaiaMbrsContains, gaiaMbrsDisjoint, gaiaMbrsIntersects, gaiaMbrsOverlaps, gaiaMbrsTouches, gaiaMbrsWithin */ GAIAGEO_DECLARE int gaiaMbrsEqual (gaiaGeomCollPtr mbr1, gaiaGeomCollPtr mbr2); /** MBRs comparison: Intersects \param mbr1 pointer to first Geometry object. \param mbr2 pointer to second Geometry object. \return 0 if false; any other value if mbr1 and mbr2 spatially \e intersect \sa gaiaMbrsContains, gaiaMbrsDisjoint, gaiaMbrsEqual, gaiaMbrsOverlaps, gaiaMbrsTouches, gaiaMbrsWithin */ GAIAGEO_DECLARE int gaiaMbrsIntersects (gaiaGeomCollPtr mbr1, gaiaGeomCollPtr mbr2); /** MBRs comparison: Overlaps \param mbr1 pointer to first Geometry object. \param mbr2 pointer to second Geometry object. \return 0 if false; any other value if mbr1 and mbr2 spatially \e overlap \sa gaiaMbrsContains, gaiaMbrsDisjoint, gaiaMbrsEqual, gaiaMbrsIntersects, gaiaMbrsTouches, gaiaMbrsWithin */ GAIAGEO_DECLARE int gaiaMbrsOverlaps (gaiaGeomCollPtr mbr1, gaiaGeomCollPtr mbr2); /** MBRs comparison: Touches \param mbr1 pointer to first Geometry object. \param mbr2 pointer to second Geometry object. \return 0 if false; any other value if mbr1 and mbr2 spatially \e touche \sa gaiaMbrsContains, gaiaMbrsDisjoint, gaiaMbrsEqual, gaiaMbrsIntersects, gaiaMbrsOverlaps, gaiaMbrsWithin */ GAIAGEO_DECLARE int gaiaMbrsTouches (gaiaGeomCollPtr mbr1, gaiaGeomCollPtr mbr2); /** MBRs comparison: Within \param mbr1 pointer to first Geometry object. \param mbr2 pointer to second Geometry object. \return 0 if false; any other value if mbr1 is spatially \e within mbr2 \sa gaiaMbrsContains, gaiaMbrsDisjoint, gaiaMbrsEqual, gaiaMbrsIntersects, gaiaMbrsOverlaps, gaiaMbrsTouches */ GAIAGEO_DECLARE int gaiaMbrsWithin (gaiaGeomCollPtr mbr1, gaiaGeomCollPtr mbr2); /** Creates a BLOB-Geometry representing an Envelope [MBR] \param x1 first X coordinate. \param y1 first Y coordinate. \param x2 second X coordinate. \param y2 second Y coordinate. \param srid the SRID associated to the Envelope \param result on completion will contain a pointer to newly created BLOB-Geometry \param size on completion this variabile will contain the BLOB's size (in bytes) \sa gaiaBuildCircleMbr \note [XY] coords must define two extreme Points identifying a diagonal of the MBR [Envelope] \n no special order is required for coords: MAX / MIN values will be internally arranged as appropriate. */ GAIAGEO_DECLARE void gaiaBuildMbr (double x1, double y1, double x2, double y2, int srid, unsigned char **result, int *size); /** Creates a BLOB-Geometry representing an Envelope [MBR] \param x centre X coordinate. \param y centre Y coordinate. \param radius the radius of the circle \param srid the SRID associated to the Envelope \param result on completion will contain a pointer to newly created BLOB-Geometry \param size on completion this variabile will contain the BLOB's size (in bytes) \sa gaiaBuildMbr \note the \e circle of givern \e radius and \e centre will be used so to determine the corresponding \e square Envelope */ GAIAGEO_DECLARE void gaiaBuildCircleMbr (double x, double y, double radius, int srid, unsigned char **result, int *size); /** Creates a BLOB-FilterMBR \param x1 first X coordinate. \param y1 first Y coordinate. \param x2 second X coordinate. \param y2 second Y coordinate. \param mode one of: GAIA_FILTER_MBR_WITHIN, GAIA_FILTER_MBR_CONTAINS, GAIA_FILTER_MBR_INTERSECTS, GAIA_FILTER_MBR_DECLARE \param result on completion will contain a pointer to newly created BLOB-FilterMBR \param size on completion this variabile will contain the BLOB's size (in bytes) \sa gaiaParseFilterMbr \note [XY] coords must define two extreme Points identifying a diagonal of the MBR [Envelope] \n no special order is required for coords: MAX / MIN values will be internally arranged as appropriate. \remark internally used to implement Geometry Callback R*Tree filtering. */ GAIAGEO_DECLARE void gaiaBuildFilterMbr (double x1, double y1, double x2, double y2, int mode, unsigned char **result, int *size); /** Creates a BLOB-FilterMBR \param result pointer to BLOB-FilterMBR [previously created by gaiaBuildFilterMbr] BLOB-Geometry \param size BLOB's size (in bytes) \param minx on completion this variable will contain the MBR MinX coord. \param miny on completion this variable will contain the MBR MinY coord. \param maxx on completion this variable will contain the MBR MinY coord. \param maxy on completion this variable will contain the MBR MaxY coord. \param mode on completion this variable will contain the FilterMBR mode. \sa gaiaBuildFilterMbr \remark internally used to implement Geometry Callback R*Tree filtering. */ GAIAGEO_DECLARE int gaiaParseFilterMbr (unsigned char *result, int size, double *minx, double *miny, double *maxx, double *maxy, int *mode); /** Computes the Z-Range for a Linestring object \param line pointer to the Linestring object \param min on completion this variable will contain the min Z value found \param max on completion this variable will contain the max Z value found \note if the Linestring has XY or XYM dims, the Z-Range is meaningless */ GAIAGEO_DECLARE void gaiaZRangeLinestring (gaiaLinestringPtr line, double *min, double *max); /** Computes the Z-Range for a Ring object \param rng pointer to the Ring object \param min on completion this variable will contain the min Z value found \param max on completion this variable will contain the max Z value found \note if the Ring has XY or XYM dims, the Z-Range is meaningless */ GAIAGEO_DECLARE void gaiaZRangeRing (gaiaRingPtr rng, double *min, double *max); /** Computes the Z-Range for a Polygon object \param polyg pointer to the Polygon object \param min on completion this variable will contain the min Z value found \param max on completion this variable will contain the max Z value found \note if the Polygon has XY or XYM dims, the Z-Range is meaningless */ GAIAGEO_DECLARE void gaiaZRangePolygon (gaiaPolygonPtr polyg, double *min, double *max); /** Computes the Z-Range for a Geometry object \param geom pointer to the Geometry object \param min on completion this variable will contain the min Z value found \param max on completion this variable will contain the max Z value found \note if the Geometry has XY or XYM dims, the Z-Range is meaningless */ GAIAGEO_DECLARE void gaiaZRangeGeometry (gaiaGeomCollPtr geom, double *min, double *max); /** Computes the M-Range for a Linestring object \param line pointer to the Linestring object \param min on completion this variable will contain the min M value found \param max on completion this variable will contain the max M value found \note if the Linestring has XY or XYZ dims, the M-Range is meaningless */ GAIAGEO_DECLARE void gaiaMRangeLinestring (gaiaLinestringPtr line, double *min, double *max); /** Computes the M-Range for a Ring object \param rng pointer to the Ring object \param min on completion this variable will contain the min M value found \param max on completion this variable will contain the max M value found \note if the Ring has XY or XYZ dims, the M-Range is meaningless */ GAIAGEO_DECLARE void gaiaMRangeRing (gaiaRingPtr rng, double *min, double *max); /** Computes the M-Range for a Polygon object \param polyg pointer to the Polygon object \param min on completion this variable will contain the min M value found \param max on completion this variable will contain the max M value found \note if the Polygon has XY or XYZ dims, the M-Range is meaningless */ GAIAGEO_DECLARE void gaiaMRangePolygon (gaiaPolygonPtr polyg, double *min, double *max); /** Computes the Z-Range for a Geometry object \param geom pointer to the Geometry object \param min on completion this variable will contain the min M value found \param max on completion this variable will contain the max M value found \note if the Geometry has XY or XYZ dims, the M-Range is meaningless */ GAIAGEO_DECLARE void gaiaMRangeGeometry (gaiaGeomCollPtr geom, double *min, double *max); #ifdef __cplusplus } #endif #endif /* _GG_MBR_H */ libspatialite-4.1.1/src/headers/spatialite/gg_core.h0000664000175000017500000017365512163502133017422 00000000000000/* gg_core.h -- Gaia common support for geometries: core functions version 4.1, 2013 May 8 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /** \file gg_core.h Geometry handling functions: core */ #ifndef _GG_CORE_H #ifndef DOXYGEN_SHOULD_SKIP_THIS #define _GG_CORE_H #endif #ifdef __cplusplus extern "C" { #endif /* function prototypes */ /** Safely frees any dynamic memory block allocated by the library itself \param ptr pointer to dynamically allocated memory \note on some platforms (most notably, Microsoft Windows) many different runtime libraries may actually support the same process. \n attempting to free() a memory block allocated by a different runtime module may easily cause fatal memory corruption. */ GAIAGEO_DECLARE void gaiaFree (void *ptr); /** Allocates a 2D POINT [XY] \param x the X coordinate. \param y the Y coordinate. \return the pointer to the newly created POINT object: NULL on failure \sa gaiaFreePoint \note you are responsible to destroy (before or after) any allocated POINT, unless you've passed ownership of the POINT object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaPointPtr gaiaAllocPoint (double x, double y); /** Allocates a 3D POINT [XYZ] \param x the X coordinate. \param y the Y coordinate. \param z the Z coordinate. \return the pointer to the newly created POINT object: NULL on failure \sa gaiaFreePoint \note you are responsible to destroy (before or after) any allocated POINT, unless you've passed ownership of the POINT object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaPointPtr gaiaAllocPointXYZ (double x, double y, double z); /** Allocates a 2D POINT [XYM] \param x the X coordinate. \param y the Y coordinate. \param m the M measure. \return the pointer to the newly created POINT object: NULL on failure \sa gaiaFreePoint \note you are responsible to destroy (before or after) any allocated POINT, unless you've passed ownership of the POINT object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaPointPtr gaiaAllocPointXYM (double x, double y, double m); /** Allocates a 3D POINT [XYZM] \param x the X coordinate. \param y the Y coordinate. \param z the Z coordinate. \param m the M measure. \return the pointer to the newly created POINT object: NULL on failure \sa gaiaFreePoint \note you are responsible to destroy (before or after) any allocated POINT, unless you've passed ownership of the POINT object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaPointPtr gaiaAllocPointXYZM (double x, double y, double z, double m); /** Destroys a POINT object \param ptr pointer to the POINT object to be destroyed \sa gaiaAllocPoint, gaiaAllocPointXYZ, gaiaAllocPointXYM, gaiaAllocPointXYZM \note attempting to destroy any POINT object whose ownership has already been transferred to some other (higher order) object is a serious error, and will easily cause severe memory corruption. */ GAIAGEO_DECLARE void gaiaFreePoint (gaiaPointPtr ptr); /** Allocates a 2D LINESTRING [XY] \param vert number of points [aka vertices] into the Linestring \return the pointer to newly created LINESTRING object: NULL on failure \sa gaiaFreeLinestring, gaiaLineSetPoint, gaiaLineGetPoint, gaiaSetPoint, gaiaGetPoint \note you are responsible to destroy (before or after) any allocated LINESTRING, unless you've passed ownership of the LINESTRING object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaLinestringPtr gaiaAllocLinestring (int vert); /** Allocates a 3D LINESTRING [XYZ] \param vert number of points [aka vertices] into the Linestring \return the pointer to newly created LINESTRING object: NULL on failure \sa gaiaFreeLinestring, gaiaLineSetPoint, gaiaLineGetPoint, gaiaSetPointXYZ, gaiaGetPointXYZ \note you are responsible to destroy (before or after) any allocated LINESTRING, unless you've passed ownership of the LINESTRING object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaLinestringPtr gaiaAllocLinestringXYZ (int vert); /** Allocates a 2D LINESTRING [XYM] \param vert number of points [aka vertices] into the Linestring \return the pointer to newly created LINESTRING object: NULL on failure \sa gaiaFreeLinestring, gaiaLineSetPoint, gaiaLineGetPoint, gaiaSetPointXYM, gaiaGetPointXYM \note you are responsible to destroy (before or after) any allocated LINESTRING, unless you've passed ownership of the LINESTRING object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaLinestringPtr gaiaAllocLinestringXYM (int vert); /** Allocates a 3D LINESTRING [XYZM] \param vert number of points [aka vertices] into the Linestring \return the pointer to newly created LINESTRING object: NULL on failure \sa gaiaFreeLinestring, gaiaLineSetPoint, gaiaLineGetPoint, gaiaSetPointXYZM, gaiaGetPointXYZM \note you are responsible to destroy (before or after) any allocated LINESTRING, unless you've passed ownership of the LINESTRING object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaLinestringPtr gaiaAllocLinestringXYZM (int vert); /** Destroys a LINESTRING object \param ptr pointer to the LINESTRING object to be destroyed \sa gaiaAllocLinestring, gaiaAllocLinestringXYZ, gaiaAllocLinestringXYM, gaiaAllocLinestringXYZM \note attempting to destroy any LINESTRING object whose ownnership has already been transferred to some other (higher order) object is a serious error, and will easily cause severe memory corruption. */ GAIAGEO_DECLARE void gaiaFreeLinestring (gaiaLinestringPtr ptr); /** Copies coordinates between two LINESTRING objects \param dst destination LINESTRING [output] \param src origin LINESTRING [input] \sa gaiaCopyLinestringCoordsReverse \note both LINESTRING objects must have exactly the same number of points: if dimensions aren't the same for both objects, then the appropriate conversion will be silently applied. */ GAIAGEO_DECLARE void gaiaCopyLinestringCoords (gaiaLinestringPtr dst, gaiaLinestringPtr src); /** Copies coordinates between two LINESTRING objects in reverse order \param dst destination LINESTRING [output] \param src origin LINESTRING [input] \sa gaiaCopyLinestringCoords \note both LINESTRING objects must have exactly the same number of points: if dimensions aren't the same for both objects, then the appropriate conversion will be silently applied. */ GAIAGEO_DECLARE void gaiaCopyLinestringCoordsReverse (gaiaLinestringPtr dst, gaiaLinestringPtr src); /** Allocates a 2D RING [XY] \param vert number of points [aka vertices] into the Ring \return the pointer to newly created RING object: NULL on failure \sa gaiaFreeRing, gaiaRingSetPoint, gaiaRingGetPoint, gaiaSetPoint, gaiaGetPoint \note you are responsible to destroy (before or after) any allocated RING, unless you've passed ownership of the RING object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaRingPtr gaiaAllocRing (int vert); /** Allocates a 3D RING [XYZ] \param vert number of points [aka vertices] into the Ring \return the pointer to newly created RING object: NULL on failure \sa gaiaFreeRing, gaiaRingSetPoint, gaiaRingGetPoint, gaiaSetPointXYZ, gaiaGetPointXYZ \note you are responsible to destroy (before or after) any allocated RING, unless you've passed ownership of the RING object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaRingPtr gaiaAllocRingXYZ (int vert); /** Allocates 2D RING [XYM] \param vert number of points [aka vertices] into the Ring \return the pointer to newly created RING object: NULL on failure \sa gaiaFreeRing, gaiaRingSetPoint, gaiaRingGetPoint, gaiaSetPointXYM, gaiaGetPointXYM \note you are responsible to destroy (before or after) any allocated RING, unless you've passed ownership of the RING object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaRingPtr gaiaAllocRingXYM (int vert); /** Allocates a 3D RING [XYZM] \param vert number of points [aka vertices] into the Ring \return the pointer to newly created RING object: NULL on failure \sa gaiaFreeRing, gaiaRingSetPoint, gaiaRingGetPoint, gaiaSetPointXYZM, gaiaSetPointXYZM \note you are responsible to destroy (before or after) any allocated RING, unless you've passed ownership of the RING object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaRingPtr gaiaAllocRingXYZM (int vert); /** Destroys a RING object \param ptr pointer to the RING object to be destroyed \sa gaiaAllocRing, gaiaAllocRingXYZ, gaiaAllocRingXYM, gaiaAllocRingXYZM \note attempting to destroy any RING object whose ownership has already been transferred to some other (higher order) object is a serious error, and will easily cause severe memory corruption. */ GAIAGEO_DECLARE void gaiaFreeRing (gaiaRingPtr ptr); /** Copies coordinates between two RING objects \param dst destination RING [output] \param src origin RING [input] \sa gaiaCopyRingCoordsReverse \note both RING objects must have exactly the same number of points: if dimensions aren't the same for both objects, then the appropriate conversion will be silently applied. */ GAIAGEO_DECLARE void gaiaCopyRingCoords (gaiaRingPtr dst, gaiaRingPtr src); /** Copies coordinates between two RING objects in reverse order \param dst destination RING [output] \param src origin RING [input] \sa gaiaCopyRingCoords \note both RING objects must have exactly the same number of points: if dimensions aren't the same for both objects, then the appropriate conversion will be silently applied. */ GAIAGEO_DECLARE void gaiaCopyRingCoordsReverse (gaiaRingPtr dst, gaiaRingPtr src); /** Allocates a 2D POLYGON [XY] \param vert number of points [aka vertices] into the Exterior Ring. \param holes number of Interior Rings [0, if no Interior Ring is required]. \return the pointer to newly created POLYGON object: NULL on failure \sa gaiaFreePolygon \note you are responsible to destroy (before or after) any allocated POLYGON, unless you've passed ownership of the POLYGON object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaPolygonPtr gaiaAllocPolygon (int vert, int holes); /** Allocates a 3D POLYGON [XYZ] \param vert number of points [aka vertices] into the Exterior Ring. \param holes number of Interior Rings [0, if no Interior Ring is required]. \return the pointer to newly created POLYGON object: NULL on failure \sa gaiaFreePolygon \note you are responsible to destroy (before or after) any allocated POLYGON, unless you've passed ownership of the POLYGON object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaPolygonPtr gaiaAllocPolygonXYZ (int vert, int holes); /** Allocates a 2D POLYGON [XYM] \param vert number of points [aka vertices] into the Exterior Ring. \param holes number of Interior Rings [0, if no Interior Ring is required]. \return the pointer to newly created POLYGON object: NULL on failure \sa gaiaFreePolygon \note you are responsible to destroy (before or after) any allocated POLYGON, unless you've passed ownership of the POLYGON object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaPolygonPtr gaiaAllocPolygonXYM (int vert, int holes); /** Allocates a 3D POLYGON [XYZM] \param vert number of points [aka vertices] into the Exterior Ring. \param holes number of Interior Rings [may by 0, if no Interior Ring is required]. \return the pointer to newly created POLYGON object: NULL on failure \sa gaiaFreePolygon \note you are responsible to destroy (before or after) any allocated POLYGON, unless you've passed ownership of the POLYGON object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaPolygonPtr gaiaAllocPolygonXYZM (int vert, int holes); /** Allocates a POLYGON \param ring pointer to a valid RING object: assumed to be the Polygon's Exterior Ring. \return the pointer to newly created POLYGON object: NULL on failure \sa gaiaAllocRing, gaiaAllocRingXYZ, gaiaAllocRingXYM, gaiaAllocRingXYZM, gaiaFreePolygon \note you are responsible to destroy (before or after) any allocated POLYGON, unless you've passed ownership of the POLYGON object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. \n Ownership of passed Ring object will be transferred to the Polygon object being created. */ GAIAGEO_DECLARE gaiaPolygonPtr gaiaCreatePolygon (gaiaRingPtr ring); /** Destroys a POLYGON object \param polyg pointer to the POLYGON object to be destroyed \sa gaiaAllocPolygon, gaiaAllocPolygonXYZ, gaiaAllocPolygonXYM, gaiaAllocPolygonXYZM, gaiaCreatePolygon \note attempting to destroy any POLYGON object whose ownership has already been transferred to some other (higher order) object is a serious error, and will easily cause severe memory corruption. \n Ownership of each RING object referenced by a POLYGON object always belongs to the POLYGON itself, so destroying the POLYGON will surely destroy any related RING as well. */ GAIAGEO_DECLARE void gaiaFreePolygon (gaiaPolygonPtr polyg); /** Allocates a 2D Geometry [XY] \return the pointer to newly created Geometry object: NULL on failure \sa gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, unless you've passed ownership of the Geometry object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaAllocGeomColl (void); /** Allocates a 3D Geometry [XYZ] \return the pointer to newly created Geometry object: NULL on failure \sa gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, unless you've passed ownership of the Geometry object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaAllocGeomCollXYZ (void); /** Allocates a 2D Geometry [XYM] \return the pointer to newly created Geometry object: NULL on failure \sa gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, unless you've passed ownership of the Geometry object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaAllocGeomCollXYM (void); /** Allocates a 3D Geometry [XYZM] \return the pointer to newly created Geometry object: NULL on failure \sa gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, unless you've passed ownership of the Geometry object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaAllocGeomCollXYZM (void); /** Destroys a Geometry object \param geom pointer to the Geometry object to be destroyed \sa gaiaAllocGeomColl, gaiaAllocGeomCollXYZ, gaiaAllocGeomCollXYM, gaiaAllocGeomCollXYZM \note attempting to destroy any Geometry object whose ownership has already been transferred to some other (higher order) object is a serious error, and will easily cause severe memory corruption. \n Ownership of each POINT, LINESTRING or POLYGON object referenced by a Geometry object always belongs to the Geometry itself, so destroying the Geometry will surely destroy any related elementary geometry item as well. */ GAIAGEO_DECLARE void gaiaFreeGeomColl (gaiaGeomCollPtr geom); /** Creates a new 2D Point [XY] object into a Geometry object \param p pointer to the Geometry object \param x X coordinate of the Point to be created \param y X coordinate of the Point to be created \note ownership of the newly created POINT object belongs to the Geometry object. */ GAIAGEO_DECLARE void gaiaAddPointToGeomColl (gaiaGeomCollPtr p, double x, double y); /** Creates a new 3D Point [XYZ] object into a Geometry object \param p pointer to the Geometry object \param x X coordinate of the Point to be created \param y X coordinate of the Point to be created \param z Z coordinate of the Point to be created \note ownership of the newly created POINT object belongs to the Geometry object. */ GAIAGEO_DECLARE void gaiaAddPointToGeomCollXYZ (gaiaGeomCollPtr p, double x, double y, double z); /** Creates a new 2D Point [XYM] object into a Geometry object \param p pointer to the Geometry object \param x X coordinate of the Point to be created \param y X coordinate of the Point to be created \param m M measure of the Point to be created \note ownership of the newly created POINT object belongs to the Geometry object. */ GAIAGEO_DECLARE void gaiaAddPointToGeomCollXYM (gaiaGeomCollPtr p, double x, double y, double m); /** Creates a new 3D Point [XYZM] object into a Geometry object \param p pointer to the Geometry object \param x X coordinate of the Point to be created \param y X coordinate of the Point to be created \param z Z coordinate of the Point to be created \param m M measure of the Point to be created \note ownership of the newly created POINT object belongs to the Geometry object. */ GAIAGEO_DECLARE void gaiaAddPointToGeomCollXYZM (gaiaGeomCollPtr p, double x, double y, double z, double m); /** Creates a new Linestring object into a Geometry object \param p pointer to the Geometry object. \param vert number of points [aka vertices] into the Linestring. \return the pointer to newly created Linestring: NULL on failure. \note ownership of the newly created Linestring object belongs to the Geometry object. \n the newly created Linestring will have the same dimensions as the Geometry has. */ GAIAGEO_DECLARE gaiaLinestringPtr gaiaAddLinestringToGeomColl (gaiaGeomCollPtr p, int vert); /** Inserts an already existing Linestring object into a Geometry object \param p pointer to the Geometry object. \param line pointer to the Linestring object. \note ownership of the Linestring object will be transferred to the Geometry object. */ GAIAGEO_DECLARE void gaiaInsertLinestringInGeomColl (gaiaGeomCollPtr p, gaiaLinestringPtr line); /** Creates a new Polygon object into a Geometry object \param p pointer to the Geometry object. \param vert number of points [aka vertices] into the Polygon's Exterior Ring. \param interiors number of Interiors Rings [0, if no Interior Ring is required] \return the pointer to newly created Polygon: NULL on failure. \note ownership of the newly created Polygon object belongs to the Geometry object. \n the newly created Polygon will have the same dimensions as the Geometry has. */ GAIAGEO_DECLARE gaiaPolygonPtr gaiaAddPolygonToGeomColl (gaiaGeomCollPtr p, int vert, int interiors); /** Creates a new Polygon object into a Geometry object starting from an already existing Ring object \param p pointer to the Geometry object. \param ring pointer to the Ring object [assumed to represent to Polygon's Exterior Ring]. \return the pointer to the newly created Polygon object: NULL on failure. \note ownership of the Ring object will be transferred to the Polygon object, and the Polygon object ownerships belongs to the Geometry object. \n the Polygon object will have the same dimensions as the Ring object has. */ GAIAGEO_DECLARE gaiaPolygonPtr gaiaInsertPolygonInGeomColl (gaiaGeomCollPtr p, gaiaRingPtr ring); /** Creates a new Interior Ring object into a Polygon object \param p pointer to the Polygon object. \param pos relative position index [first Interior Ring has index 0]. \param vert number of points (aka vertices) into the Ring. \return the pointer to the newly created Ring object: NULL on failure. \sa gaiaAllocPolygon, gaiaAllocPolygonXYZ, gaiaAllocPolygonXYM, gaiaAllocPolygonXYZM \note ownership of the Ring object belongs to the Polygon object. \n the newly created Ring will have the same dimensions the Polygon has. */ GAIAGEO_DECLARE gaiaRingPtr gaiaAddInteriorRing (gaiaPolygonPtr p, int pos, int vert); /** Inserts an already existing Ring object into a Polygon object \param p pointer to the Polygon object \param ring pointer to the Ring object \sa gaiaAddRingToPolygon \note ownership of the Ring object still remains to the calling procedure (a duplicated copy of the original Ring will be inserted into the Polygon). \n the newly created Polygon will have the same dimensions as the Ring has. \n if required the Polygon's Interior Rings count could be increased. */ GAIAGEO_DECLARE void gaiaInsertInteriorRing (gaiaPolygonPtr p, gaiaRingPtr ring); /** Inserts an already existing Ring object into a Polygon object \param polyg pointer to the Polygon object \param ring pointer to the Ring object \sa gaiaInsertInteriorRing \note ownership of the Ring object will be transferred to the Polygon object. \n the newly created Polygon will have the same dimensions as the Ring has. \n if required the Polygon's Interior Rings count could be increased. */ GAIAGEO_DECLARE void gaiaAddRingToPolyg (gaiaPolygonPtr polyg, gaiaRingPtr ring); /** Duplicates a Linestring object \param line pointer to Linestring object [origin]. \return the pointer to newly created Linestring object: NULL on failure. \sa gaiaCloneRing, gaiaClonePolygon, gaiaCloneGeomColl, gaiaCloneGeomCollPoints, gaiaCloneGeomCollLinestrings, gaiaCloneGeomCollPolygons, gaiaCloneLinestringSpecial \note the newly created object is an exact copy of the original one. */ GAIAGEO_DECLARE gaiaLinestringPtr gaiaCloneLinestring (gaiaLinestringPtr line); /** Duplicates a Linestring object (special) \param line pointer to Linestring object [origin]. \param mode one of GAIA_SAME_ORDER or GAIA_REVERSE_ORDER. \return the pointer to newly created Linestring object: NULL on failure. \sa gaiaCloneLinestring, gaiaCloneGeomCollSpecial \note if GAIA_REVERSE_ORDER is specified, then any vertex into the newly created object will be in reverse order [first vertex will be last one, and last vertex will be the first one]. In any other case this function will simply default to gaiaCloneLinestring. */ GAIAGEO_DECLARE gaiaLinestringPtr gaiaCloneLinestringSpecial (gaiaLinestringPtr line, int mode); /** Duplicates a Ring object \param ring pointer to Ring object [origin]. \return the pointer to newly created Ring object: NULL on failure. \sa gaiaCloneLinestring, gaiaClonePolygon, gaiaCloneGeomColl, gaiaCloneGeomCollPoints, gaiaCloneGeomCollLinestrings, gaiaCloneGeomCollPolygons, gaiaCloneRingSpecial \note the newly created object is an exact copy of the original one. */ GAIAGEO_DECLARE gaiaRingPtr gaiaCloneRing (gaiaRingPtr ring); /** Duplicates a Ring object (special) \param ring pointer to Ring object [origin]. \param mode one of GAIA_SAME_ORDER or GAIA_REVERSE_ORDER. \return the pointer to newly created Ring object: NULL on failure. \sa gaiaCloneRing, gaiaClonePolygonSpecial \note if GAIA_REVERSE_ORDER is specified, then any vertex into the newly created object will be in reverse order [first vertex will be last one, and last vertex will be the first one]. In any other case this function will simply default to gaiaCloneRing. */ GAIAGEO_DECLARE gaiaRingPtr gaiaCloneRingSpecial (gaiaRingPtr ring, int mode); /** Duplicates a Polygon object \param polyg pointer to Polygon object [origin]. \return the pointer to newly created Polygon object: NULL on failure. \sa gaiaCloneLinestring, gaiaCloneRing, gaiaCloneGeomColl, gaiaCloneGeomCollPoints, gaiaCloneGeomCollLinestrings, gaiaCloneGeomCollPolygons, gaiaClonePolygonSpecial \note the newly created object is an exact copy of the original one. */ GAIAGEO_DECLARE gaiaPolygonPtr gaiaClonePolygon (gaiaPolygonPtr polyg); /** Duplicates a Polygon object (special) \param polyg pointer to Polygon object [origin]. \param mode one of GAIA_SAME_ORDER, GAIA_REVERSE_ORDER or GAIA_LHR_ORDER. \return the pointer to newly created Polygon object: NULL on failure. \sa gaiaClonePolygon, gaiaCloneGeomCollSpecial \note if GAIA_REVERSE_ORDER is specified, then any Ring into the newly created object will be in reverse order. If GAIA_LHR_ORDER is specified instead, any Exterior Ring will have clockwise orientation, and any Interior Ring will have counter-clockwise orientation. In any other case this function will simply default to gaiaClonePolygon. */ GAIAGEO_DECLARE gaiaPolygonPtr gaiaClonePolygonSpecial (gaiaPolygonPtr polyg, int mode); /** Duplicates a Geometry object \param geom pointer to Geometry object [origin]. \return the pointer to newly created Geometry object: NULL on failure. \sa gaiaCloneLinestring, gaiaCloneRing, gaiaClonePolygon, gaiaCloneGeomCollPoints, gaiaCloneGeomCollLinestrings, gaiaCloneGeomCollPolygons, gaiaCastGeomCollToXY, gaiaCastGeomCollToXYZ, gaiaCastGeomCollToXYM, gaiaCastGeomCollToXYZM, gaiaExtractPointsFromGeomColl, gaiaExtractLinestringsFromGeomColl, gaiaExtractPolygonsFromGeomColl, gaiaMergeGeometries, gaiaCloneGeomCollSpecial \note the newly created object is an exact copy of the original one. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCloneGeomColl (gaiaGeomCollPtr geom); /** Duplicates a Geometry object (special) \param geom pointer to Geometry object [origin]. \param mode one of GAIA_SAME_ORDER, GAIA_REVERSE_ORDER or GAIA_LHR_ORDER. \return the pointer to newly created Geometry object: NULL on failure. \sa gaiaCloneLinestringSpecial, gaiaCloneRingSpecial, gaiaClonePolygonSpecial, gaiaCloneGeomColl \note if GAIA_REVERSE_ORDER is specified, then any Linestring and/or Ring into the newly created object will be in reverse order. If GAIA_LHR_ORDER is specified instead, any Polygong will have the Exterior Ring in clockwise orientation, and any Interior Ring int counter-clockwise orientation. In any other case this function will simply default to gaiaCloneGeomColl. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCloneGeomCollSpecial (gaiaGeomCollPtr geom, int mode); /** Duplicates a Geometry object [Points only] \param geom pointer to Geometry object [origin]. \return the pointer to newly created Geometry object: NULL on failure. \sa gaiaCloneLinestring, gaiaCloneRing, gaiaClonePolygon, gaiaCloneGeomColl, gaiaCloneGeomCollLinestrings, gaiaCloneGeomCollPolygons \note the newly created object is an exact copy of the original one; except in that only Point objects will be copied. \n Caveat: an empty Geometry could be returned. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCloneGeomCollPoints (gaiaGeomCollPtr geom); /** Duplicates a Geometry object [Linestrings only] \param geom pointer to Geometry object [origin]. \return the pointer to newly created Geometry object: NULL on failure. \sa gaiaCloneLinestring, gaiaCloneRing, gaiaClonePolygon, gaiaCloneGeomColl, gaiaCloneGeomCollPoints, gaiaCloneGeomCollPolygons \note the newly created object is an exact copy of the original one; except in that only Linestrings objects will be copied. \n Caveat: an empty Geometry could be returned. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCloneGeomCollLinestrings (gaiaGeomCollPtr geom); /** Duplicates a Geometry object [Polygons only] \param geom pointer to Geometry object [origin]. \return the pointer to newly created Geometry object: NULL on failure. \sa gaiaCloneLinestring, gaiaCloneRing, gaiaClonePolygon, gaiaCloneGeomColl, gaiaCloneGeomCollPoints, gaiaCloneGeomCollLinestrings \note the newly created object is an exact copy of the original one; except in that only Polygons objects will be copied. \n Caveat: an empty Geometry could be returned. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCloneGeomCollPolygons (gaiaGeomCollPtr geom); /** Duplicates a Geometry object [casting dimensions to 2D XY] \param geom pointer to Geometry object [origin]. \return the pointer to newly created Geometry object: NULL on failure. \sa gaiaCloneGeomColl, gaiaCastGeomCollToXYZ, gaiaCastGeomCollToXYM, gaiaCastGeomCollToXYZM \note the newly created object is an exact copy of the original one; except in that any elementary item will be casted to 2D [XY] dimensions. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCastGeomCollToXY (gaiaGeomCollPtr geom); /** Duplicates a Geometry object [casting dimensions to 3D XYZ] \param geom pointer to Geometry object [origin]. \return the pointer to newly created Geometry object: NULL on failure. \sa gaiaCloneGeomColl, gaiaCastGeomCollToXY, gaiaCastGeomCollToXYM, gaiaCastGeomCollToXYZM \note the newly created object is an exact copy of the original one; except in that any elementary item will be cast to 3D [XYZ] dimensions. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCastGeomCollToXYZ (gaiaGeomCollPtr geom); /** Duplicates a Geometry object [casting dimensions to 2D XYM] \param geom pointer to Geometry object [origin]. \return the pointer to newly created Geometry object: NULL on failure. \sa gaiaCloneGeomColl, gaiaCastGeomCollToXY, gaiaCastGeomCollToXYZ, gaiaCastGeomCollToXYZM \note the newly created object is an exact copy of the original one; except in that any elementary item will be cast to 2D [XYM] dimensions. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCastGeomCollToXYM (gaiaGeomCollPtr geom); /** Duplicates a Geometry object [casting dimensions to 3D XYZM] \param geom pointer to Geometry object [origin]. \return the pointer to newly created Geometry object: NULL on failure. \sa gaiaCloneGeomColl, gaiaCastGeomCollToXY, gaiaCastGeomCollToXYZ, gaiaCastGeomCollToXYM \note the newly created object is an exact copy of the original one; except in that any elementary item will be cast to 3D [XYZM] dimensions. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCastGeomCollToXYZM (gaiaGeomCollPtr geom); /** Gets coodinates from a Linestring's Point \param ln pointer to Linestring object. \param v relative position of Point: first Point has index 0 \param x on completion this variable will contain the Point X coordinate. \param y on completion this variable will contain the Point Y coordinate. \param z on completion this variable will contain the Point Z coordinate. \param m on completion this variable will contain the Point M measure. \return 0 on failure: any other different value on success. \sa gaiaLineSetPoint, gaiaGetPoint, gaiaGetPointXYZ, gaiaGetPointXYM, gaiaGetPointXYZM \note this function perform the same identical task performed by gaiaGetPoint(), gaiaGetPointXYZ(), gaiaGetPointXYM() and gaiaGetPointXYZM() macros. \n using the gaiaLineGetPoint() function is a little bit slower but is intrinsically safest, because misused macros can easily cause severe memory corruption. \n gaiaLineGetPoint() instead will always ensure that the appropriate dimensions (as declared by the Linestring object) will be correctly used. */ GAIAGEO_DECLARE int gaiaLineGetPoint (gaiaLinestringPtr ln, int v, double *x, double *y, double *z, double *m); /** Sets coordinates for a Linestring's Point \param ln pointer to Linestring object. \param v relative position of Point: first Point has index 0 \param x the Point's X coordinate. \param y the Point's Y coordinate. \param z the Point's Z coordinate. \param m the Point's M measure. \return 0 on failure: any other different value on success. \sa gaiaLineGetPoint, gaiaSetPoint, gaiaSetPointXYZ, gaiaSetPointXYM, gaiaSetPointXYZM \note this function perform the same identical task performed by gaiaSetPoint(), gaiaSetPointXYZ(), gaiaSetPointXYM() and gaiaSetPointXYZM() macros. \n using the gaiaLineSetPoint() function is a little bit slower but is intrinsically safest, because misused macros can easily cause severe memory corruption. \n gaiaLineSetPoint() instead will always ensure that the appropriate dimensions (as declared by the Linestring object) will be correctly used. */ GAIAGEO_DECLARE int gaiaLineSetPoint (gaiaLinestringPtr ln, int v, double x, double y, double z, double m); /** Gets coordinates from a Ring's Point \param rng pointer to Ring object. \param v relative position of Point: first Point has index 0 \param x on completion this variable will contain the Point X coordinate. \param y on completion this variable will contain the Point Y coordinate. \param z on completion this variable will contain the Point Z coordinate. \param m on completion this variable will contain the Point M measure. \return 0 on failure: any other different value on success. \sa gaiaRingSetPoint, gaiaGetPoint, gaiaGetPointXYZ, gaiaGetPointXYM, gaiaGetPointXYZM \note this function perform the same identical task performed by gaiaGetPoint(), gaiaGetPointXYZ(), gaiaGetPointXYM() and gaiaGetPointXYZM() macros. \n using the gaiaRingGetPoint() function is a little bit slower but is intrinsically safest, because misused macros can easily cause severe memory corruption. \n gaiaRingGetPoint() instead will always ensure that the appropriate dimensions (as declared by the Ring object) will be correctly used. */ GAIAGEO_DECLARE int gaiaRingGetPoint (gaiaRingPtr rng, int v, double *x, double *y, double *z, double *m); /** Sets coodinates for a Ring's Point \param rng pointer to Ring object. \param v relative position of Point: first Point has index 0 \param x the Point's X coordinate. \param y the Point's Y coordinate. \param z the Point's Z coordinate. \param m the Point's M measure. \return 0 on failure: any other different value on success. \sa gaiaRingGetPoint, gaiaGetPoint, gaiaGetPointXYZ, gaiaSetPointXYM, gaiaSetPointXYZM \note this function perform the same identical task performed by gaiaSetPoint(), gaiaSetPointXYZ(), gaiaSetPointXYM() and gaiaSetPointXYZM() macros. \n using the gaiaRingSetPoint() function is a little bit slower but is intrinsically safest, because misused macros can easily cause severe memory corruption. \n gaiaRingSetPoint() instead will always ensure that the appropriate dimensions (as declared by the Ring object) will be correctly used. */ GAIAGEO_DECLARE int gaiaRingSetPoint (gaiaRingPtr rng, int v, double x, double y, double z, double m); /** Determines OGC dimensions for a Geometry object \param geom pointer to Geometry object \return OGC dimensions \note OGC dimensions are defined as follows: \li if the Geometry doesn't contain any elementary item: \b -1 \li if the Geometry only contains Point items: \b 0 \li if the Geometry only contains Point / Linestring items: \b 1 \li if the Geometry contains some Polygon item: \b 2 */ GAIAGEO_DECLARE int gaiaDimension (gaiaGeomCollPtr geom); /** Determines the corresponding Type for a Geometry object \param geom pointer to Geometry object \return the corresponding Geometry Type \note Type is one of: GAIA_POINT, GAIA_LINESTRING, GAIA_POLYGON, GAIA_MULTIPOINT, GAIA_MULTILINESTRING, GAIA_MULTIPOLYGON, GAIA_GEOMETRYCOLLECTION, GAIA_POINTZ, GAIA_LINESTRINGZ, GAIA_POLYGONZ, GAIA_MULTIPOINTZ, GAIA_MULTILINESTRINGZ, GAIA_MULTIPOLYGONZ, GAIA_GEOMETRYCOLLECTIONZ, GAIA_POINTM, GAIA_LINESTRINGM, GAIA_POLYGONM, GAIA_MULTIPOINTM, GAIA_MULTILINESTRINGM, GAIA_MULTIPOLYGONM, GAIA_GEOMETRYCOLLECTIONM, GAIA_POINTZM, GAIA_LINESTRINGZM, GAIA_POLYGONZM, GAIA_MULTIPOINTZM, GAIA_MULTILINESTRINGZM, GAIA_MULTIPOLYGONZM, GAIA_GEOMETRYCOLLECTIONZM \n on failure GAIA_NONE will be returned. */ GAIAGEO_DECLARE int gaiaGeometryType (gaiaGeomCollPtr geom); /** Determines the corresponding Type for a Geometry object \param geom pointer to Geometry object \return the corresponding Geometry Type \sa gaiaGeometryType \note Type is one of: GAIA_POINT, GAIA_LINESTRING, GAIA_POLYGON, GAIA_MULTIPOINT, GAIA_MULTILINESTRING, GAIA_MULTIPOLYGON, GAIA_GEOMETRYCOLLECTION \n on failure GAIA_NONE will be returned. \remark deprecated function (used in earlier SpatiaLite versions). */ GAIAGEO_DECLARE int gaiaGeometryAliasType (gaiaGeomCollPtr geom); /** Checks for empty Geometry object \param geom pointer to Geometry object \return 0 if the Geometry is empty: otherwise any other different value. \note an empty Geometry is a Geometry not containing any elementary item: i.e. no Points, no Linestrings and no Polygons at all. */ GAIAGEO_DECLARE int gaiaIsEmpty (gaiaGeomCollPtr geom); /** Checks for toxic Geometry object \param geom pointer to Geometry object \return 0 if the Geometry is not toxic: otherwise any other different value. \sa gaiaSanitize \note a \b toxic Geometry is a Geometry containing severely malformed Polygons: i.e. containing less than 4 Points. \n Or containing severely malformed Linestrings: i.e. containing less than 2 Points. \n Attempting to pass any toxic Geometry to GEOS supported functions will easily cause a crash. */ GAIAGEO_DECLARE int gaiaIsToxic (gaiaGeomCollPtr geom); /** Checks for not-closed Rings \param ring pointer to Ring object \return 0 if the Ring in unclosed: otherwise any other different value. \sa gaiaIsToxic, gaiaIsNotClosedGeomColl \note unclosed Rings cause GEOS supported functions to crash. \n SpatiaLite will always carefully check any Ring before passing it to GEOS, eventually silently inserting a further point required so to properly close the figure. \n This function allows to explicitly identify any unclosed Ring. */ GAIAGEO_DECLARE int gaiaIsNotClosedRing (gaiaRingPtr ring); /** Checks for not-closed Rings in a Geometry object \param geom pointer to Geometry object \return 0 if the Geometry has no unclosed Rings: otherwise any other different value. \sa gaiaIsToxic, gaiaIsNotClosedRing \note This function allows to explicitly identify any Geometry containing at least one unclosed Ring. */ GAIAGEO_DECLARE int gaiaIsNotClosedGeomColl (gaiaGeomCollPtr geom); /** Attempts to sanitize a possibly malformed Geometry object \param org pointer to Geometry object. \return the pointer to newly created Geometry: NULL on failure. \sa gaiaIsToxic \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry created by gaiaSanitize() \n the output Geometry will surely have: \li no repeated Points on Linestrings or Rings (i.e. consecutive Points sharing exactly the same coordinates): any repeated Point will be suppressed, simply leaving only the first occurrence. \li proper Ring closure: for sure any Ring will have exactly coinciding first and last Points. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSanitize (gaiaGeomCollPtr org); /** Attempts to resolve a (Multi)Linestring from a Geometry object \param geom pointer to Geometry object. \param force_multi: 0 if the returned Geometry could represent a Linestring: any other value if casting to MultiLinestring is required unconditionally. \return the pointer to newly created Geometry: NULL on failure. \sa gaiaDissolveSegments, gaiaDissolvePoints \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry created by gaiaLinearize() \n the input Geometry is expected to contain Polygons only: then any Ring will be transformed into the corresponding Linestring. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLinearize (gaiaGeomCollPtr geom, int force_multi); /** Attempts to resolve a collection of Segments from a Geometry object \param geom pointer to Geometry object. \return the pointer to newly created Geometry: NULL on failure. \sa gaiaLinearize, gaiaDissolvePoints \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry created by gaiaDissolveSegments() \n the input Geometry can be of any arbitrary type: \li any Point will be copied untouched. \li any Linestring will be dissolved into Segments. \li any Ring will be dissolved into Segments. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaDissolveSegments (gaiaGeomCollPtr geom); /** Attempts to resolve a collection of Points from a Geometry object \param geom pointer to Geometry object. \return the pointer to newly created Geometry: NULL on failure. \sa gaiaLinearize, gaiaDissolveSegments \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry created by gaiaDissolvePoints() \n the input Geometry can be of any arbitrary type: \li any Point will be copied untouched. \li any Linestring will be dissolved into sparse Points. \li any Ring will be dissolved into sparse Points. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaDissolvePoints (gaiaGeomCollPtr geom); /** Extracts any Point from a Geometry object \param geom pointer to Geometry object \return the pointer to newly created Geometry: NULL on failure. \sa gaiaExtractLinestringsFromGeomColl, gaiaExtractPolygonsFromGeomColl, gaiaCloneGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry created by gaiaExtractPointsFromGeomColl() \n the newly created Geometry will contain any Point contained into the input Geometry. \n if the input Geometry doesn't contains any Point, then NULL will be returned. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaExtractPointsFromGeomColl (gaiaGeomCollPtr geom); /** Extracts any Linestring from a Geometry object \param geom pointer to Geometry object \return the pointer to newly created Geometry: NULL on failure. \sa gaiaExtractPointsFromGeomColl, gaiaExtractPolygonsFromGeomColl, gaiaCloneGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry created by gaiaExtractLinestringsFromGeomColl() \n the newly created Geometry will contain any Linestring contained into the input Geometry. \n if the input Geometry doesn't contains any Linestring, then NULL will be returned. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaExtractLinestringsFromGeomColl (gaiaGeomCollPtr geom); /** Extracts any Polygon from a Geometry object \param geom pointer to Geometry object \return the pointer to newly created Geometry: NULL on failure. \sa gaiaExtractPointsFromGeomColl, gaiaExtractLinestringsFromGeomColl, gaiaCloneGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry created by gaiaExtractPolygonsFromGeomColl() \n the newly created Geometry will contain any Polygon contained into the input Geometry. \n if the input Geometry doesn't contains any Polygon, then NULL will be returned. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaExtractPolygonsFromGeomColl (gaiaGeomCollPtr geom); /** Merges two Geometry objects into a single one \param geom1 pointer to first Geometry object. \param geom2 pointer to second Geometry object. \return the pointer to newly created Geometry: NULL on failure. \sa gaiaCloneGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry created by gaiaMergeGeometries() \n the newly created Geometry will contain any Point, Linestring and/or Polygon contained in both input Geometries. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMergeGeometries (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); /** Return a GeometryCollection containing elements matching the specified range of measures \param geom pointer to Geometry object \param m_start range of measures: start value \param m_end range of measures: end value \return the pointer to newly created Geometry: NULL on failure. \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry created by gaiaLocateBetweenMeasures() \n the newly created Geometry will contain Points and/or Linestrings. \n if the input Geometry has no M dimension then NULL will be returned. \n if the input Geometry doesn't contains any point/vertex corresponding to the required range of measures then NULL will be returned. \n if the input Geometry contains any Polygon (or is a GeometryCollection) then NULL will be returned. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLocateBetweenMeasures (gaiaGeomCollPtr geom, double m_start, double m_end); /** Measures the geometric length for a Linestring or Ring \param dims dimensions: one of GAIA_XY, GAIA_XY_Z, GAIA_XY_M or GAIA_XY_ZM \param coords pointed to COORD mem-array \param vert number of Points (aka Vertices) within the COORD mem-array \return the calculated geometric length \sa gaiaGeomCollLength \note \b dims, \b coords and \b vert are usually expected to correspond to \b DimensionModel, \b Coords and \b Points members from a gaiaLinestringStruct or gaiaRingStruct \remark internal method: doesn't require any GEOS support. */ GAIAGEO_DECLARE double gaiaMeasureLength (int dims, double *coords, int vert); /** Measures the geometric area for a Ring object \param ring pointer to Ring object \return the calculated geometric area \sa gaiaGeomCollArea \remark internal method: doesn't require any GEOS support. */ GAIAGEO_DECLARE double gaiaMeasureArea (gaiaRingPtr ring); /** Determines the Centroid for a Ring object \param ring pointer to Ring object. \param rx on completion this variable will contain the centroid X coordinate. \param ry on completion this variable will contain the centroid Y coordinate. \sa gaiaGeomCollCentroid \remark internal method: doesn't require any GEOS support. */ GAIAGEO_DECLARE void gaiaRingCentroid (gaiaRingPtr ring, double *rx, double *ry); /** Determines the direction for a Ring object \param p pointer to Ring object \return 0 if the ring has counter-clockwise direction; any other different value for clockwise direction. */ GAIAGEO_DECLARE void gaiaClockwise (gaiaRingPtr p); /** Check if a Point lays on a Ring surface \param ring pointer to Ring object \param pt_x Point X coordinate \param pt_y Point Y coordinate \return 0 if false: any other value if true */ GAIAGEO_DECLARE int gaiaIsPointOnRingSurface (gaiaRingPtr ring, double pt_x, double pt_y); /** Checks if a Point lays on a Polygon surface \param polyg pointer to Polygon object \param x Point X coordinate \param y Point Y coordinate \return 0 if false: any other value if true */ GAIAGEO_DECLARE int gaiaIsPointOnPolygonSurface (gaiaPolygonPtr polyg, double x, double y); /** Computes the minimum distance between a Point and a Linestring or Ring \param x0 Point X coordinate \param y0 Point Y coordinate \param dims dimensions: one of GAIA_XY, GAIA_XY_Z, GAIA_XY_M or GAIA_XY_ZM \param coords pointed to COORD mem-array \param vert number of Points (aka Vertices) within the COORD mem-array \return the calculated minumum distance. \note \b dims, \b coords and \b vert are usually expected to correspond to \b DimensionModel, \b Coords and \b Points members from a gaiaLinestringStruct or gaiaRingStruct */ GAIAGEO_DECLARE double gaiaMinDistance (double x0, double y0, int dims, double *coords, int vert); /** Determines the intesection Point between two Segments \param x0 on completion this variable will contain the Intersection X coord \param y0 on completion this variable will contain the Intersection Y coord \param x1 start Point X of first Segment \param y1 start Point Y of first Segment \param x2 end Point X of first Segment \param y2 end Point Y of first Segment \param x3 start Point X of second Segment \param y3 start Point Y of second Segment \param x4 end Point X of second Segment \param y4 end Point Y of second Segment \return 0 if the Segments doesn't intersect at all: any other value on success. */ GAIAGEO_DECLARE int gaiaIntersect (double *x0, double *y0, double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4); /** Shifts any coordinate within a Geometry object \param geom pointer to Geometry object. \param shift_x X axis shift factor. \param shift_y Y axis shift factor. \sa gaiaScaleCoords, gaiaRotateCoords, gaiaReflectCoords, gaiaSwapCoords, gaiaShiftCoords3D, gaiaShiftLongitude */ GAIAGEO_DECLARE void gaiaShiftCoords (gaiaGeomCollPtr geom, double shift_x, double shift_y); /** Shifts any coordinate within a 3D Geometry object \param geom pointer to Geometry object. \param shift_x X axis shift factor. \param shift_y Y axis shift factor. \param shift_z Z axis shift factor. \sa gaiaScaleCoords, gaiaRotateCoords, gaiaReflectCoords, gaiaSwapCoords, gaiaShiftCoords, gaiaShiftLongitude, gaiaNormalizeLonLat */ GAIAGEO_DECLARE void gaiaShiftCoords3D (gaiaGeomCollPtr geom, double shift_x, double shift_y, double shift_z); /** Shifts negative longitudes \param geom pointer to Geometry object. \sa gaiaShiftCoords, gaiaShiftCoords3D, gaiaNormalizeLonLat \note only intended for geographic (longitude/latitude) coordinates. Negative longitudes (-180/0) will be shifted by 360, thus allowing to represent longitudes in the 0/360 range and effectively crossing the International Date Line. */ GAIAGEO_DECLARE void gaiaShiftLongitude (gaiaGeomCollPtr geom); /** Shifts any coordinate to within the "normal range" of longitude and latitude values (-180.0 to 180.0 longitude and -90.0 to 90.0 latitude). \param geom pointer to Geometry object. \sa gaiaScaleCoords, gaiaRotateCoords, gaiaReflectCoords, gaiaSwapCoords, gaiaShiftCoords3D, gaiaShiftLongitude */ GAIAGEO_DECLARE void gaiaNormalizeLonLat (gaiaGeomCollPtr geom); /** Scales any coordinate within a Geometry object \param geom pointer to Geometry object. \param scale_x X axis scale factor. \param scale_y Y axis scale factor. \sa gaiaShiftCoords, gaiaRotateCoords, gaiaReflectCoords, gaiaSwapCoords */ GAIAGEO_DECLARE void gaiaScaleCoords (gaiaGeomCollPtr geom, double scale_x, double scale_y); /** Rotates any coordinate within a Geometry object \param geom pointer to Geometry object. \param angle rotation angle [expressed in Degrees]. \sa gaiaShiftCoords, gaiaScaleCoords, gaiaReflectCoords, gaiaSwapCoords */ GAIAGEO_DECLARE void gaiaRotateCoords (gaiaGeomCollPtr geom, double angle); /** Reflects any coordinate within a Geometry object \param geom pointer to Geometry object. \param x_axis if set to 0, no X axis reflection will be applied: otherwise the X axis will be reflected. \param y_axis if set to 0, no Y axis reflection will be applied: otherwise the Y axis will be reflected. \sa gaiaShiftCoords, gaiaScaleCoords, gaiaRotateCoords, gaiaSwapCoords */ GAIAGEO_DECLARE void gaiaReflectCoords (gaiaGeomCollPtr geom, int x_axis, int y_axis); /** Swaps any coordinate within a Geometry object \param geom pointer to Geometry object. \sa gaiaShiftCoords, gaiaScaleCoords, gaiaRotateCoords, gaiaReflectCoords \note the X and Y axes will be swapped. */ GAIAGEO_DECLARE void gaiaSwapCoords (gaiaGeomCollPtr geom); /** Checks if two Linestring objects are equivalent \param line1 pointer to first Linestring object. \param line2 pointer to second Linestring object. \return 0 if false: any other different value if true \sa gaiaPolygonEquals \note two Linestrings objects are assumed to be equivalent if exactly \remark deprecated function (used in earlier SpatiaLite versions). the same Points are found in both them. */ GAIAGEO_DECLARE int gaiaLinestringEquals (gaiaLinestringPtr line1, gaiaLinestringPtr line2); /** Checks if two Polygons objects are equivalent \param polyg1 pointer to first Polygon object. \param polyg2 pointer to second Polygon object. \return 0 if false: any other different value if true \sa gaiaLinestringEquals \note two Polygon objects are assumed to be equivalent if exactly the same Points are found in both them. \remark deprecated function (used in earlier SpatiaLite versions). */ GAIAGEO_DECLARE int gaiaPolygonEquals (gaiaPolygonPtr polyg1, gaiaPolygonPtr polyg2); /** Retrieves Geodesic params for an Ellipsoid definition \param name text string identifying an Ellipsoid definition. \param a on completion this variable will contain the first geodesic param. \param b on completion this variable will contain the second geodesic param. \param rf on completion this variable will contain the third geodesic param. \return 0 on failure: any other value on success. \sa gaiaGreatCircleDistance, gaiaGeodesicDistance, gaiaGreatCircleTotalLength, gaiaGeodesicTotalLength \note supported Ellipsoid definitions are: \b MERIT, \b SGS85, \b GRS80, \b IAU76, \b airy, \b APL4.9, \b NWL9D, \b mod_airy, \b andrae, \b aust_SA, \b GRS67, \b bessel, \b bess_nam, \b clrk66, \b clrk80, \b CPM, \b delmbr, \b engelis, \b evrst30, \b evrst48, \b evrst56, \b evrst69, \b evrstSS, \b fschr60 */ GAIAGEO_DECLARE int gaiaEllipseParams (const char *name, double *a, double *b, double *rf); /** Calculates the Great Circle Distance between between two Points \param a first geodesic parameter. \param b second geodesic parameter. \param lat1 Latitude of first Point. \param lon1 Longitude of first Point. \param lat2 Latitude of second Point. \param lon2 Longitude of second Point. \return the calculated Great Circle Distance. \sa gaiaEllipseParams, gaiaGeodesicDistance, gaiaGreatCircleTotalLength, gaiaGeodesicTotalLength \note the returned distance is expressed in Kilometers. \n the Great Circle method is less accurate but fastest to be calculated. */ GAIAGEO_DECLARE double gaiaGreatCircleDistance (double a, double b, double lat1, double lon1, double lat2, double lon2); /** Calculates the Geodesic Distance between between two Points \param a first geodesic parameter. \param b second geodesic parameter. \param rf third geodesic parameter. \param lat1 Latitude of first Point. \param lon1 Longitude of first Point. \param lat2 Latitude of second Point. \param lon2 Longitude of second Point. \return the calculated Geodesic Distance. \sa gaiaEllipseParams, gaiaGreatCircleDistance, gaiaGreatCircleTotalLength, gaiaGeodesicTotalLength \note the returned distance is expressed in Kilometers. \n the Geodesic method is much more accurate but slowest to be calculated. */ GAIAGEO_DECLARE double gaiaGeodesicDistance (double a, double b, double rf, double lat1, double lon1, double lat2, double lon2); /** Calculates the Great Circle Total Length for a Linestring / Ring \param a first geodesic parameter. \param b second geodesic parameter. \param dims dimensions: one of GAIA_XY, GAIA_XY_Z, GAIA_XY_M or GAIA_XY_ZM \param coords pointed to COORD mem-array \param vert number of Points (aka Vertices) within the COORD mem-array \return the calculated Great Circle Total Length. \sa gaiaEllipseParams, gaiaGreatCircleDistance, gaiaGeodesicDistance, gaiaGeodesicTotalLength \note the returned length is expressed in Kilometers. \n the Great Circle method is less accurate but fastest to be calculated. \n \b dims, \b coords and \b vert are usually expected to correspond to \b DimensionModel, \b Coords and \b Points members from a gaiaLinestringStruct or gaiaRingStruct */ GAIAGEO_DECLARE double gaiaGreatCircleTotalLength (double a, double b, int dims, double *coords, int vert); /** Calculates the Geodesic Total Length for a Linestring / Ring \param a first geodesic parameter. \param b second geodesic parameter. \param rf third geodesic parameter. \param dims dimensions: one of GAIA_XY, GAIA_XY_Z, GAIA_XY_M or GAIA_XY_ZM \param coords pointed to COORD mem-array \param vert number of Points (aka Vertices) within the COORD mem-array \return the calculated Geodesic Total Length. \sa gaiaEllipseParams, gaiaGreatCircleDistance, gaiaGeodesicDistance, gaiaGreatCircleTotalLength \note the returned length is expressed in Kilometers. \n the Geodesic method is much more accurate but slowest to be calculated. \n \b dims, \b coords and \b vert are usually expected to correspond to \b DimensionModel, \b Coords and \b Points members from a gaiaLinestringStruct or gaiaRingStruct */ GAIAGEO_DECLARE double gaiaGeodesicTotalLength (double a, double b, double rf, int dims, double *coords, int vert); /** Convert a Length from a Measure Unit to another \param value the length measure to be converted. \param unit_from original Measure Unit. \param unit_to converted Measure Unit. \param cvt on completion this variable will contain the converted length measure. \note supported Measu Units are: GAIA_KM, GAIA_M, GAIA_DM, GAIA_CM, GAIA_MM, GAIA_KMI, GAIA_IN, GAIA_FT, GAIA_YD, GAIA_MI, GAIA_FATH, GAIC_CH, GAIA_LINK, GAIA_US_IN, GAIA_US_FT, GAIA_US_YD, GAIA_US_CH, GAIA_US_MI, GAIA_IND_YD, GAIA_IND_FT, GAIA_IND_CH */ GAIAGEO_DECLARE int gaiaConvertLength (double value, int unit_from, int unit_to, double *cvt); /** Creates a Circle (Linestring) Geometry \param center_x center point X coordinate. \param center_y center point Y coordinate. \param radius the circle's radius. \param step angular distance (in degrees) between points on the circumference. \sa gaiaMakeArc, gaiaMakeEllipse, gaiaMakeEllipticArc \note simply a convenience method defaulting to gaiaMakeEllipse with both axes set to radius value */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMakeCircle (double center_x, double center_y, double radius, double step); /** Creates an Ellipse (Linestring) Geometry \param center_x center point X coordinate. \param center_y center point Y coordinate. \param x_axis the ellipses's X axis. \param y_axis the ellipses's Y axis. \param step angular distance (in degrees) between points on the ellipse. \sa gaiaMakeEllipticArc, gaiaMakeCircle, gaiaMakeArc */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMakeEllipse (double center_x, double center_y, double x_axis, double y_axis, double step); /** Creates a Circular Arc (Linestring) Geometry \param center_x center point X coordinate. \param center_y center point Y coordinate. \param radius the circle's radius. \param start the start angle (in degrees). \param start the stop angle (in degrees). \param step angular distance (in degrees) between points on the circumference. \sa gaiaMakeCircle, gaiaMakeEllipse, gaiaMakeEllipticArc \note simply a convenience method defaulting to gaiaMakeEllipticArc with both axes set to radius value */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMakeArc (double center_x, double center_y, double radius, double start, double stop, double step); /** Creates an Elliptic Arc (Linestring) Geometry \param center_x center point X coordinate. \param center_y center point Y coordinate. \param x_axis the ellipses's X axis. \param y_axis the ellipses's Y axis. \param start the start angle (in degrees). \param start the stop angle (in degrees). \param step angular distance (in degrees) between points on the ellipse. \sa gaiaMakeCircle, gaiaMakeEllipse, gaiaMakeEllipticArc */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMakeEllipticArc (double center_x, double center_y, double x_axis, double y_axis, double start, double stop, double step); #ifdef __cplusplus } #endif #endif /* _GG_CORE_H */ libspatialite-4.1.1/src/headers/spatialite/gg_formats.h0000664000175000017500000015061512163502133020134 00000000000000/* gg_formats.h -- Gaia common support for geometries: formats version 4.1, 2013 May 8 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Klaus Foerster klaus.foerster@svg.cc Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /** \file gg_formats.h Geometry handling functions: formats */ #ifndef _GG_FORMATS_H #ifndef DOXYGEN_SHOULD_SKIP_THIS #define _GG_FORMATS_H #endif #ifdef __cplusplus extern "C" { #endif /* function prototypes */ /** Test CPU endianness \return 0 if big-endian: any other value if little-endian */ GAIAGEO_DECLARE int gaiaEndianArch (void); /** Import an INT-16 value in endian-aware fashion \param p endian-dependent representation (input buffer). \param little_endian 0 if the input buffer is big-endian: any other value for little-endian. \param little_endian_arch the value returned by gaiaEndianArch() \return the internal SHORT value \sa gaiaEndianArch, gaiaExport16 \note you are expected to pass an input buffer corresponding to an allocation size of (at least) 2 bytes. */ GAIAGEO_DECLARE short gaiaImport16 (const unsigned char *p, int little_endian, int little_endian_arch); /** Import an INT-32 value in endian-aware fashion \param p endian-dependent representation (input buffer). \param little_endian 0 if the input buffer is big-endian: any other value for little-endian. \param little_endian_arch the value returned by gaiaEndianArch() \return the internal INT value \sa gaiaEndianArch, gaiaExport32 \note you are expected to pass an input buffer corresponding to an allocation size of (at least) 4 bytes. */ GAIAGEO_DECLARE int gaiaImport32 (const unsigned char *p, int little_endian, int little_endian_arch); /** Import an UINT-32 value in endian-aware fashion \param p endian-dependent representation (input buffer). \param little_endian 0 if the input buffer is big-endian: any other value for little-endian. \param little_endian_arch the value returned by gaiaEndianArch() \return the internal UINT value \sa gaiaEndianArch, gaiaExportU32 \note you are expected to pass an input buffer corresponding to an allocation size of (at least) 4 bytes. */ GAIAGEO_DECLARE unsigned int gaiaImportU32 (const unsigned char *p, int little_endian, int little_endian_arch); /** Import a FLOAT-32 value in endian-aware fashion \param p endian-dependent representation (input buffer). \param little_endian 0 if the input buffer is big-endian: any other value for little-endian. \param little_endian_arch the value returned by gaiaEndianArch() \return the internal FLOAT value \sa gaiaEndianArch, gaiaExportF32 \note you are expected to pass an input buffer corresponding to an allocation size of (at least) 4 bytes. */ GAIAGEO_DECLARE float gaiaImportF32 (const unsigned char *p, int little_endian, int little_endian_arch); /** Import an DOUBLE-64 in endian-aware fashion \param p endian-dependent representation (input buffer). \param little_endian 0 if the input buffer is big-endian: any other value for little-endian. \param little_endian_arch the value returned by gaiaEndianArch() \return the internal DOUBLE value \sa gaiaEndianArch, gaiaExport64 \note you are expected to pass an input buffer corresponding to an allocation size of (at least) 8 bytes. */ GAIAGEO_DECLARE double gaiaImport64 (const unsigned char *p, int little_endian, int little_endian_arch); /** Import an INT-64 in endian-aware fashion \param p endian-dependent representation (input buffer). \param little_endian 0 if the input buffer is big-endian: any other value for little-endian. \param little_endian_arch the value returned by gaiaEndianArch() \return the internal INT-64 value \sa gaiaEndianArch, gaiaExportI64 \note you are expected to pass an input buffer corresponding to an allocation size of (at least) 8 bytes. */ GAIAGEO_DECLARE sqlite3_int64 gaiaImportI64 (const unsigned char *p, int little_endian, int little_endian_arch); /** Export an INT-16 value in endian-aware fashion \param p endian-dependent representation (output buffer). \param value the internal value to be exported. \param little_endian 0 if the output buffer has to be big-endian: any other value for little-endian. \param little_endian_arch the value returned by gaiaEndianArch() \sa gaiaEndianArch, gaiaImport16 \note you are expected to pass an output buffer corresponding to an allocation size of (at least) 2 bytes. */ GAIAGEO_DECLARE void gaiaExport16 (unsigned char *p, short value, int little_endian, int little_endian_arch); /** Export an INT-32 value in endian-aware fashion \param p endian-dependent representation (output buffer). \param value the internal value to be exported. \param little_endian 0 if the output buffer has to be big-endian: any other value for little-endian. \param little_endian_arch the value returned by gaiaEndianArch() \sa gaiaEndianArch, gaiaImport32 \note you are expected to pass an output buffer corresponding to an allocation size of (at least) 4 bytes. */ GAIAGEO_DECLARE void gaiaExport32 (unsigned char *p, int value, int little_endian, int little_endian_arch); /** Export an UINT-32 value in endian-aware fashion \param p endian-dependent representation (output buffer). \param value the internal value to be exported. \param little_endian 0 if the output buffer has to be big-endian: any other value for little-endian. \param little_endian_arch the value returned by gaiaEndianArch() \sa gaiaEndianArch, gaiaImportU32 \note you are expected to pass an output buffer corresponding to an allocation size of (at least) 4 bytes. */ GAIAGEO_DECLARE void gaiaExportU32 (unsigned char *p, unsigned int value, int little_endian, int little_endian_arch); /** Export a FLOAT-32 value in endian-aware fashion \param p endian-dependent representation (output buffer). \param value the internal value to be exported. \param little_endian 0 if the output buffer has to be big-endian: any other value for little-endian. \param little_endian_arch the value returned by gaiaEndianArch() \sa gaiaEndianArch, gaiaImportF32 \note you are expected to pass an output buffer corresponding to an allocation size of (at least) 4 bytes. */ GAIAGEO_DECLARE void gaiaExportF32 (unsigned char *p, float value, int little_endian, int little_endian_arch); /** Export a DOUBLE value in endian-aware fashion \param p endian-dependent representation (output buffer). \param value the internal value to be exported. \param little_endian 0 if the output buffer has to be big-endian: any other value for little-endian. \param little_endian_arch the value returned by gaiaEndianArch() \sa gaiaEndianArch, gaiaImport64 \note you are expected to pass an output buffer corresponding to an allocation size of (at least) 8 bytes. */ GAIAGEO_DECLARE void gaiaExport64 (unsigned char *p, double value, int little_endian, int little_endian_arch); /** Export an INT-64 value in endian-aware fashion \param p endian-dependent representation (output buffer). \param value the internal value to be exported. \param little_endian 0 if the output buffer has to be big-endian: any other value for little-endian. \param little_endian_arch the value returned by gaiaEndianArch() \sa gaiaEndianArch, gaiaImportI64 \note you are expected to pass an output buffer corresponding to an allocation size of (at least) 8 bytes. */ GAIAGEO_DECLARE void gaiaExportI64 (unsigned char *p, sqlite3_int64 value, int little_endian, int little_endian_arch); /** Initializes a dynamically growing Text output buffer \param buf pointer to gaiaOutBufferStruct structure \sa gaiaOutBufferReset, gaiaAppendToOutBuffer \note Text notations representing Geometry objects may easily require a huge storage amount: the gaiaOutBufferStruct automatically supports a dynamically growing output buffer. \n You are required to initialize this structure before attempting any further operation; and you are responsible to cleanup any related memory allocation when it's any longer required. */ GAIAGEO_DECLARE void gaiaOutBufferInitialize (gaiaOutBufferPtr buf); /** Resets a dynamically growing Text output buffer to its initial (empty) state \param buf pointer to gaiaOutBufferStruct structure \sa gaiaOutBufferInitialize, gaiaAppendToOutBuffer \note You are required to initialize this structure before attempting any further operation: this function will release any related memory allocation. */ GAIAGEO_DECLARE void gaiaOutBufferReset (gaiaOutBufferPtr buf); /** Appends a text string at the end of Text output buffer \param buf pointer to gaiaOutBufferStruct structure. \param text the text string to be appended. \sa gaiaOutBufferInitialize, gaiaOutBufferReset \note You are required to initialize this structure before attempting any further operation: the dynamically growing Text buffer will be automatically allocated and/or extended as required. */ GAIAGEO_DECLARE void gaiaAppendToOutBuffer (gaiaOutBufferPtr buf, const char *text); /** Creates a BLOB-Geometry representing a Point \param x Point X coordinate. \param y Point Y coordinate. \param srid the SRID to be set for the Point. \param result on completion will containt a pointer to BLOB-Geometry: NULL on failure. \param size on completion this variable will contain the BLOB's size (in bytes) \sa gaiaFromSpatiaLiteBlobWkb \note the BLOB buffer corresponds to dynamically allocated memory: so you are responsible to free() it [unless SQLite will take care of memory cleanup via buffer binding]. */ GAIAGEO_DECLARE void gaiaMakePoint (double x, double y, int srid, unsigned char **result, int *size); /** Creates a BLOB-Geometry representing a PointZ \param x Point X coordinate. \param y Point Y coordinate. \param z Point Z coordinate. \param srid the SRID to be set for the Point. \param result on completion will containt a pointer to BLOB-Geometry: NULL on failure. \param size on completion this variable will contain the BLOB's size (in bytes) \sa gaiaFromSpatiaLiteBlobWkb \note the BLOB buffer corresponds to dynamically allocated memory: so you are responsible to free() it [unless SQLite will take care of memory cleanup via buffer binding]. */ GAIAGEO_DECLARE void gaiaMakePointZ (double x, double y, double z, int srid, unsigned char **result, int *size); /** Creates a BLOB-Geometry representing a PointM \param x Point X coordinate. \param y Point Y coordinate. \param m Point M coordinate. \param srid the SRID to be set for the Point. \param result on completion will containt a pointer to BLOB-Geometry: NULL on failure. \param size on completion this variable will contain the BLOB's size (in bytes) \sa gaiaFromSpatiaLiteBlobWkb \note the BLOB buffer corresponds to dynamically allocated memory: so you are responsible to free() it [unless SQLite will take care of memory cleanup via buffer binding]. */ GAIAGEO_DECLARE void gaiaMakePointM (double x, double y, double m, int srid, unsigned char **result, int *size); /** Creates a BLOB-Geometry representing a PointZM \param x Point X coordinate. \param y Point Y coordinate. \param z Point Z coordinate. \param m Point M coordinate. \param srid the SRID to be set for the Point. \param result on completion will containt a pointer to BLOB-Geometry: NULL on failure. \param size on completion this variable will contain the BLOB's size (in bytes) \sa gaiaFromSpatiaLiteBlobWkb \note the BLOB buffer corresponds to dynamically allocated memory: so you are responsible to free() it [unless SQLite will take care of memory cleanup via buffer binding]. */ GAIAGEO_DECLARE void gaiaMakePointZM (double x, double y, double z, double m, int srid, unsigned char **result, int *size); /** Creates a BLOB-Geometry representing a Segment (2-Points Linestring) \param geom1 pointer to first Geometry object (expected to represent a Point). \param geom2 pointer to second Geometry object (expected to represent a Point). \param result on completion will containt a pointer to BLOB-Geometry: NULL on failure. \param size on completion this variable will contain the BLOB's size (in bytes) \sa gaiaFromSpatiaLiteBlobWkb \note the BLOB buffer corresponds to dynamically allocated memory: so you are responsible to free() it [unless SQLite will take care of memory cleanup via buffer binding]. */ GAIAGEO_DECLARE void gaiaMakeLine (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, unsigned char **result, int *size); /** Creates a Geometry object from the corresponding BLOB-Geometry \param blob pointer to BLOB-Geometry \param size the BLOB's size \return the pointer to the newly created Geometry object: NULL on failure \sa gaiaFreeGeomColl, gaiaToSpatiaLiteBlobWkb, gaiaToCompressedBlobWkb \note you are responsible to destroy (before or after) any allocated Geometry, unless you've passed ownership of the Geometry object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromSpatiaLiteBlobWkb (const unsigned char *blob, unsigned int size); /** Creates a BLOB-Geometry corresponding to a Geometry object \param geom pointer to the Geometry object. \param result on completion will containt a pointer to BLOB-Geometry: NULL on failure. \param size on completion this variable will contain the BLOB's size (in bytes) \sa gaiaFromSpatiaLiteBlobWkb, gaiaToCompressedBlobWkb \note the BLOB buffer corresponds to dynamically allocated memory: so you are responsible to free() it [unless SQLite will take care of memory cleanup via buffer binding]. */ GAIAGEO_DECLARE void gaiaToSpatiaLiteBlobWkb (gaiaGeomCollPtr geom, unsigned char **result, int *size); /** Creates a Compressed BLOB-Geometry corresponding to a Geometry object \param geom pointer to the Geometry object. \param result on completion will containt a pointer to Compressed BLOB-Geometry: NULL on failure. \param size on completion this variable will contain the BLOB's size (in bytes) \sa gaiaFromSpatiaLiteBlobWkb, gaiaToSpatiaLiteBlobWkb \note this function will apply compression to any Linestring / Ring found within the Geometry to be encoded. \n the returned BLOB buffer corresponds to dynamically allocated memory: so you are responsible to free() it [unless SQLite will take care of memory cleanup via buffer binding]. */ GAIAGEO_DECLARE void gaiaToCompressedBlobWkb (gaiaGeomCollPtr geom, unsigned char **result, int *size); /** Creates a Geometry object from WKB notation \param blob pointer to WKB buffer \param size the BLOB's size (in bytes) \return the pointer to the newly created Geometry object: NULL on failure. \sa gaiaToWkb, gaiaToHexWkb, gaiaFromEWKB, gaiaToEWKB \note you are responsible to destroy (before or after) any allocated Geometry, unless you've passed ownership of the Geometry object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromWkb (const unsigned char *blob, unsigned int size); /** Encodes a Geometry object into WKB notation \param geom pointer to Geometry object \param result on completion will containt a pointer to the WKB buffer [BLOB]: NULL on failure. \param size on completion this variable will contain the BLOB's size (in bytes) \sa gaiaFromWkb, gaiaToHexWkb, gaiaFromEWKB, gaiaToEWKB \note this function will apply 3D WKB encoding as internally intended by SpatiaLite: not necessarily intended by other OGC-like implementations. \n Anyway, 2D WKB is surely standard and safely interoperable. \n the returned BLOB buffer corresponds to dynamically allocated memory: so you are responsible to free() it [unless SQLite will take care of memory cleanup via buffer binding]. */ GAIAGEO_DECLARE void gaiaToWkb (gaiaGeomCollPtr geom, unsigned char **result, int *size); /** Encodes a Geometry object into (hex) WKB notation \param geom pointer to Geometry object \return the pointer to a text buffer containing WKB translated into plain hexadecimal: NULL on failure. \sa gaiaFromWkb, gaiaToWkb, gaiaFromEWKB, gaiaToEWKB \note the returned buffer corresponds to dynamically allocated memory: so you are responsible to free() it [unless SQLite will take care of memory cleanup via buffer binding]. */ GAIAGEO_DECLARE char *gaiaToHexWkb (gaiaGeomCollPtr geom); /** Encodes a Geometry object into EWKB notation \param out_buf pointer to dynamically growing Text buffer \param geom pointer to Geometry object \sa gaiaFromWkb, gaiaToWkb, gaiaToHexWkb, gaiaFromEWKB, gaiaToEWKB \note this function will produce strictly conformat EWKB; you can safely use this for PostGIS data exchange. */ GAIAGEO_DECLARE void gaiaToEWKB (gaiaOutBufferPtr out_buf, gaiaGeomCollPtr geom); /** Creates a Geometry object from EWKB notation \param in_buffer pointer to EWKB buffer \return the pointer to the newly created Geometry object: NULL on failure. \sa gaiaToWkb, gaiaToHexWkb, gaiaParseHexEWKB, gaiaToEWKB, gaiaEwkbGetPoint, gaiaEwkbGetLinestring, gaiaEwkbGetPolygon, gaiaEwkbGetMultiGeometry \note you are responsible to destroy (before or after) any allocated Geometry, unless you've passed ownership of the Geometry object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromEWKB (const unsigned char *in_buffer); /** Translates an EWKB notation from hexadecimal into binary \param blob_hex pointer to EWKB input buffer (hexadecimal text string) \param blob_size lenght (in bytes) of the input buffer; if succesfull will contain the lenght of the returned output buffer. \return the pointer to the newly created EWKB binary buffer: NULL on failure. \sa gaiaToWkb, gaiaToHexWkb, gaiaFromEWKB, gaiaToEWKB \note you are responsible to destroy (before or after) any buffer allocated by gaiaParseHexEWKB() */ GAIAGEO_DECLARE unsigned char *gaiaParseHexEWKB (const unsigned char *blob_hex, int *blob_size); /** Attempts to decode a Point from within an EWKB binary buffer \param geom pointer to an existing Geometry object; if succesfull the parsed Point will be inserted into this Geometry \param blob pointer to EWKB input buffer \param offset the offset (in bytes) on the input buffer where the Point definition is expected to start. \param blob_size lenght (in bytes) of the input buffer. \param endian (boolean) states if the EWKB input buffer is little- or big-endian encode. \param endian_arch (boolean) states if the target CPU has a little- or big-endian architecture. \param dims dimensions: one of GAIA_XY, GAIA_XY_Z, GAIA_XY_M or GAIA_XY_Z_M \return -1 on failure; otherwise the offset where the next object starts. \sa gaiaEwkbGetLinestring, gaiaEwkbGetPolygon, gaiaEwkbGetMultiGeometry \note these functions are mainly intended for internal usage. */ GAIAGEO_DECLARE int gaiaEwkbGetPoint (gaiaGeomCollPtr geom, unsigned char *blob, int offset, int blob_size, int endian, int endian_arch, int dims); /** Attempts to decode a Point from within an EWKB binary buffer \param geom pointer to an existing Geometry object; if succesfull the parsed Linestring will be inserted into this Geometry \param blob pointer to EWKB input buffer \param offset the offset (in bytes) on the input buffer where the Point definition is expected to start. \param blob_size lenght (in bytes) of the input buffer. \param endian (boolean) states if the EWKB input buffer is little- or big-endian encode. \param endian_arch (boolean) states if the target CPU has a little- or big-endian architecture. \param dims dimensions: one of GAIA_XY, GAIA_XY_Z, GAIA_XY_M or GAIA_XY_Z_M \return -1 on failure; otherwise the offset where the next object starts. \sa gaiaEwkbGetPoint, gaiaEwkbGetPolygon, gaiaEwkbGetMultiGeometry \note these functions are mainly intended for internal usage. */ GAIAGEO_DECLARE int gaiaEwkbGetLinestring (gaiaGeomCollPtr geom, unsigned char *blob, int offset, int blob_size, int endian, int endian_arch, int dims); /** Attempts to decode a Polygon from within an EWKB binary buffer \param geom pointer to an existing Geometry object; if succesfull the parsed Polygon will be inserted into this Geometry \param blob pointer to EWKB input buffer \param offset the offset (in bytes) on the input buffer where the Point definition is expected to start. \param blob_size lenght (in bytes) of the input buffer. \param endian (boolean) states if the EWKB input buffer is little- or big-endian encode. \param endian_arch (boolean) states if the target CPU has a little- or big-endian architecture. \param dims dimensions: one of GAIA_XY, GAIA_XY_Z, GAIA_XY_M or GAIA_XY_Z_M \return -1 on failure; otherwise the offset where the next object starts. \sa gaiaEwkbGetPoint, gaiaEwkbGetPolygon, gaiaEwkbGetMultiGeometry */ GAIAGEO_DECLARE int gaiaEwkbGetPolygon (gaiaGeomCollPtr geom, unsigned char *blob, int offset, int blob_size, int endian, int endian_arch, int dims); /** Attempts to decode a MultiGeometry from within an EWKB binary buffer \param geom pointer to an existing Geometry object; if succesfull the parsed MultiGeometry will be inserted into this Geometry \param blob pointer to EWKB input buffer \param offset the offset (in bytes) on the input buffer where the Point definition is expected to start. \param blob_size lenght (in bytes) of the input buffer. \param endian (boolean) states if the EWKB input buffer is little- or big-endian encode. \param endian_arch (boolean) states if the target CPU has a little- or big-endian architecture. \param dims dimensions: one of GAIA_XY, GAIA_XY_Z, GAIA_XY_M or GAIA_XY_Z_M \return -1 on failure; otherwise the offset where the next object starts. \sa gaiaEwkbGetPoint, gaiaEwkbGetLinestring, gaiaEwkbGetPolygon \note these functions are mainly intended for internal usage. */ GAIAGEO_DECLARE int gaiaEwkbGetMultiGeometry (gaiaGeomCollPtr geom, unsigned char *blob, int offset, int blob_size, int endian, int endian_arch, int dims); /** Creates a Geometry object from FGF notation \param blob pointer to FGF buffer \param size the BLOB's size (in bytes) \return the pointer to the newly created Geometry object: NULL on failure. \sa gaiaToFgf \note you are responsible to destroy (before or after) any allocated Geometry, unless you've passed ownership of the Geometry object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromFgf (const unsigned char *blob, unsigned int size); /** Encodes a Geometry object into FGF notation \param geom pointer to Geometry object \param result on completion will containt a pointer to the FGF buffer [BLOB]: NULL on failure. \param size on completion this variable will contain the BLOB's size (in bytes) \param coord_dims one of: GAIA_XY, GAIA_XY_Z, GAIA_XY_M, GAIA_XY_ZM \sa gaiaFromFgf \note the returned BLOB buffer corresponds to dynamically allocated memory: so you are responsible to free() it [unless SQLite will take care of memory cleanup via buffer binding]. */ GAIAGEO_DECLARE void gaiaToFgf (gaiaGeomCollPtr geom, unsigned char **result, int *size, int coord_dims); /** Creates a Geometry object from WKT notation \param in_buffer pointer to WKT buffer \param type the expected Geometry Class Type \n if actual type defined in WKT doesn't corresponds to this, an error will be raised. \return the pointer to the newly created Geometry object: NULL on failure \sa gaiaOutWkt, gaiaOutWktStrict, gaiaParseEWKT, gaiaToEWKT \note you are responsible to destroy (before or after) any allocated Geometry, unless you've passed ownership of the Geometry object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaParseWkt (const unsigned char *in_buffer, short type); /** Encodes a Geometry object into WKT notation \param out_buf pointer to dynamically growing Text buffer \param geom pointer to Geometry object \sa gaiaParseWkt, gaiaOutWktStrict, gaiaParseEWKT, gaiaToEWKT \note this function will apply 3D WKT encoding as internally intended by SpatiaLite: not necessarily intended by other OGC-like implementations. \n Anyway, 2D WKT is surely standard and safely interoperable. */ GAIAGEO_DECLARE void gaiaOutWkt (gaiaOutBufferPtr out_buf, gaiaGeomCollPtr geom); /** Encodes a Geometry object into strict 2D WKT notation \param out_buf pointer to dynamically growing Text buffer \param geom pointer to Geometry object \param precision decimal digits to be used for coordinates \sa gaiaParseWkt, gaiaOutWkt, gaiaParseEWKT, gaiaToEWKT \note this function will apply strict 2D WKT encoding, so to be surely standard and safely interoperable. \n Dimensions will be automatically casted to 2D [XY] when required. */ GAIAGEO_DECLARE void gaiaOutWktStrict (gaiaOutBufferPtr out_buf, gaiaGeomCollPtr geom, int precision); /** Creates a Geometry object from EWKT notation \param in_buffer pointer to EWKT buffer \return the pointer to the newly created Geometry object: NULL on failure \sa gaiaParseWkt, gaiaOutWkt, gaiaOutWktStrict, gaiaToEWKT \note you are responsible to destroy (before or after) any allocated Geometry, unless you've passed ownership of the Geometry object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaParseEWKT (const unsigned char *in_buffer); /** Encodes a Geometry object into EWKT notation \param out_buf pointer to dynamically growing Text buffer \param geom pointer to Geometry object \sa gaiaParseWkt, gaiaOutWkt, gaiaOutWktStrict, gaiaParseEWKT \note this function will apply PostGIS own EWKT encoding. */ GAIAGEO_DECLARE void gaiaToEWKT (gaiaOutBufferPtr out_buf, gaiaGeomCollPtr geom); /** Encodes a WKT 3D Point [XYZ] \param out_buf pointer to dynamically growing Text buffer \param point pointer to Point object \sa gaiaOutLinestringZ, gaiaOutPolygonZ \remark mainly intended for internal usage. */ GAIAGEO_DECLARE void gaiaOutPointZ (gaiaOutBufferPtr out_buf, gaiaPointPtr point); /** Encodes a WKT 3D Linestring [XYZ] \param out_buf pointer to dynamically growing Text buffer \param linestring pointer to Linestring object \sa gaiaOutPointZ, gaiaOutPolygonZ \remark mainly intended for internal usage. */ GAIAGEO_DECLARE void gaiaOutLinestringZ (gaiaOutBufferPtr out_buf, gaiaLinestringPtr linestring); /** Encodes a WKT 3D Polygon [XYZ] \param out_buf pointer to dynamically growing Text buffer \param polygon pointer to Point object \sa gaiaOutPointZ, gaiaOutLinestringZ \remark mainly intended for internal usage. */ GAIAGEO_DECLARE void gaiaOutPolygonZ (gaiaOutBufferPtr out_buf, gaiaPolygonPtr polygon); /** Creates a Geometry object from KML notation \param in_buffer pointer to KML buffer \return the pointer to the newly created Geometry object: NULL on failure \sa gaiaOutBareKml, gaiaOutFullKml \note you are responsible to destroy (before or after) any allocated Geometry, unless you've passed ownership of the Geometry object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaParseKml (const unsigned char *in_buffer); /** Encodes a Geometry object into KML notation \param out_buf pointer to dynamically growing Text buffer \param geom pointer to Geometry object \param precision decimal digits to be used for coordinates \sa gaiaParseKml, gaiaOutFullKml \note this function will export the simplest KML notation (no descriptions). */ GAIAGEO_DECLARE void gaiaOutBareKml (gaiaOutBufferPtr out_buf, gaiaGeomCollPtr geom, int precision); /** Encodes a Geometry object into KML notation \param out_buf pointer to dynamically growing Text buffer \param name text string to be set as KML \e name \param desc text string to se set as KML \e description \param geom pointer to Geometry object \param precision decimal digits to be used for coordinates \sa gaiaParseKml, gaiaOutBareKml \note this function will export the simplest KML notation (no descriptions). */ GAIAGEO_DECLARE void gaiaOutFullKml (gaiaOutBufferPtr out_buf, const char *name, const char *desc, gaiaGeomCollPtr geom, int precision); /** Creates a Geometry object from GML notation \param in_buffer pointer to GML buffer \param sqlite_handle handle to current DB connection \return the pointer to the newly created Geometry object: NULL on failure \sa gaiaOutGml \note you are responsible to destroy (before or after) any allocated Geometry, unless you've passed ownership of the Geometry object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaParseGml (const unsigned char *in_buffer, sqlite3 * sqlite_handle); /** Encodes a Geometry object into GML notation \param out_buf pointer to dynamically growing Text buffer \param version GML version \param precision decimal digits to be used for coordinates \param geom pointer to Geometry object \sa gaiaParseGml \note if \e version is set to \b 3, then GMLv3 will be used; in any other case GMLv2 will be assumed by default. */ GAIAGEO_DECLARE void gaiaOutGml (gaiaOutBufferPtr out_buf, int version, int precision, gaiaGeomCollPtr geom); /** Creates a Geometry object from GeoJSON notation \param in_buffer pointer to GeoJSON buffer \return the pointer to the newly created Geometry object: NULL on failure \sa gaiaOutGeoJSON \note you are responsible to destroy (before or after) any allocated Geometry, unless you've passed ownership of the Geometry object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaParseGeoJSON (const unsigned char *in_buffer); /** Encodes a Geometry object into GeoJSON notation \param out_buf pointer to dynamically growing Text buffer \param geom pointer to Geometry object \param precision decimal digits to be used for coordinates \param options GeoJSON specific options \sa gaiaParseGeoJSON \note \e options can assume the following values: \li 1 = BBOX, no CRS \li 2 = no BBOX, short form CRS \li 3 = BBOX, short form CRS \li 4 = no BBOX, long form CRS \li 5 = BBOX, long form CRS \li any other value: no BBOX and no CRS */ GAIAGEO_DECLARE void gaiaOutGeoJSON (gaiaOutBufferPtr out_buf, gaiaGeomCollPtr geom, int precision, int options); /** Encodes a Geometry object into SVG notation \param out_buf pointer to dynamically growing Text buffer \param geom pointer to Geometry object \param relative flag: relative or absolute coordinates \param precision decimal digits to be used for coordinates \note if \e relative is set to \b 1, then SVG relative coords will be used: in any other case SVG absolute coords will be assumed by default. */ GAIAGEO_DECLARE void gaiaOutSvg (gaiaOutBufferPtr out_buf, gaiaGeomCollPtr geom, int relative, int precision); /** Allocates a new DBF Field Value object [duplicating an existing one] \param org pointer to input DBF Field Value object. \return the pointer to newly created DBF Field object. \sa gaiaAllocDbfField, gaiaFreeDbfField, gaiaCloneDbfField, gaiaCloneValue, gaiaSetNullValue, gaiaSetIntValue, gaiaSetDoubleValue, gaiaSetStrValue \note the newly created object is an exact copy of the original one. */ GAIAGEO_DECLARE gaiaValuePtr gaiaCloneValue (gaiaValuePtr org); /** Resets a DBF Field Value object to its initial empty state \param p pointer to DBF Field Value object \sa gaiaAllocDbfField, gaiaCloneDbfField, gaiaCloneValue, gaiaSetNullValue, gaiaSetIntValue, gaiaSetDoubleValue, gaiaSetStrValue, gaiaResetDbfEntity */ GAIAGEO_DECLARE void gaiaFreeValue (gaiaValuePtr p); /** Allocates a new DBF Field object \param name text string: DBF Field name. \param type identifier of the corresponding DBF data type. \param offset corresponding offset into the DBF I/O buffer. \param length max field length (in bytes). \param decimals precision: number of decimal digits. \return the pointer to newly created DBF Field object. \sa gaiaFreeDbfField, gaiaCloneDbfField, gaiaFreeValue, gaiaSetNullValue, gaiaSetIntValue, gaiaSetDoubleValue, gaiaSetStrValue \note you are responsible to destroy (before or after) any allocated DBF Field, unless you've passed ownership to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. \n supported DBF data types are: \li 'C' text string [default] \li 'N' numeric \li 'D' date \li 'L' boolean */ GAIAGEO_DECLARE gaiaDbfFieldPtr gaiaAllocDbfField (char *name, unsigned char type, int offset, unsigned char length, unsigned char decimals); /** Destroys a DBF Field object \param p pointer to DBF Field object \sa gaiaAllocDbfField, gaiaCloneDbfField, gaiaCloneValue, gaiaFreeValue, gaiaSetNullValue, gaiaSetIntValue, gaiaSetDoubleValue, gaiaSetStrValue */ GAIAGEO_DECLARE void gaiaFreeDbfField (gaiaDbfFieldPtr p); /** Allocates a new DBF Field object [duplicating an existing one] \param org pointer to input DBF Field object. \return the pointer to newly created DBF Field object. \sa gaiaAllocDbfField, gaiaFreeDbfField, gaiaCloneDbfField, gaiaFreeValue, gaiaSetNullValue, gaiaSetIntValue, gaiaSetDoubleValue, gaiaSetStrValue \note the newly created object is an exact copy of the original one [this including an evantual Field Value]. */ GAIAGEO_DECLARE gaiaDbfFieldPtr gaiaCloneDbfField (gaiaDbfFieldPtr org); /** Sets a NULL current value for a DBF Field object \param field pointer to DBF Field object \sa gaiaAllocDbfField, gaiaFreeDbfField, gaiaCloneDbfField, gaiaFreeValue, gaiaSetIntValue, gaiaSetDoubleValue, gaiaSetStrValue */ GAIAGEO_DECLARE void gaiaSetNullValue (gaiaDbfFieldPtr field); /** Sets an INTEGER current value for a DBF Field object \param field pointer to DBF Field object. \param value integer value to be set. \sa gaiaAllocDbfField, gaiaFreeDbfField, gaiaCloneDbfField, gaiaFreeValue, gaiaSetNullValue, gaiaSetDoubleValue, gaiaSetStrValue */ GAIAGEO_DECLARE void gaiaSetIntValue (gaiaDbfFieldPtr field, sqlite3_int64 value); /** Sets a DOUBLE current value for a DBF Field object \param field pointer to DBF Field object. \param value double value to be set. \sa gaiaAllocDbfField, gaiaFreeDbfField, gaiaCloneDbfField, gaiaFreeValue, gaiaSetNullValue, gaiaSetIntValue, gaiaSetStrValue */ GAIAGEO_DECLARE void gaiaSetDoubleValue (gaiaDbfFieldPtr field, double value); /** Sets a TEXT current value for a DBF Field object \param field pointer to DBF Field object. \param str text string value to be set. \sa gaiaAllocDbfField, gaiaFreeDbfField, gaiaCloneDbfField, gaiaFreeValue, gaiaSetNullValue, gaiaSetIntValue, gaiaSetDoubleValue */ GAIAGEO_DECLARE void gaiaSetStrValue (gaiaDbfFieldPtr field, char *str); /** Creates an initially empty DBF List object \return the pointer to newly allocated DBF List object: NULL on failure. \sa gaiaFreeDbfList, gaiaIsValidDbfList, gaiaResetDbfEntity, gaiaCloneDbfEntity, gaiaAddDbfField \note you are responsible to destroy (before or after) any allocated DBF List, unless you've passed ownership to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaDbfListPtr gaiaAllocDbfList (void); /** Destroys a DBF List object \param list pointer to the DBF List object \sa gaiaAllocDbfList, gaiaIsValidDbfList, gaiaResetDbfEntity, gaiaCloneDbfEntity, gaiaAddDbfField \note attempting to destroy any DBF List object whose ownnership has already been transferred to some other (higher order) object is a serious error, and will easily cause severe memory corruption. */ GAIAGEO_DECLARE void gaiaFreeDbfList (gaiaDbfListPtr list); /** Checks a DBF List object for validity \param list pointer to the DBF List object. \return 0 if not valid: any other value if valid. \sa gaiaAllocDbfList, gaiaFreeDbfList, gaiaIsValidDbfList, gaiaResetDbfEntity, gaiaCloneDbfEntity, gaiaAddDbfField */ GAIAGEO_DECLARE int gaiaIsValidDbfList (gaiaDbfListPtr list); /** Inserts a further DBF Field object into a DBF List object \param list pointer to the DBF List object. \param name text string: DBF Field name. \param type identifier of the corresponding DBF data type. \param offset corresponding offset into the DBF I/O buffer. \param length max field length (in bytes). \param decimals precision: number of decimal digits. \return the pointer to newly created DBF Field object. \sa gaiaAllocDbfField \note supported DBF data types are: \li 'C' text string [default] \li 'N' numeric \li 'D' date \li 'L' boolean */ GAIAGEO_DECLARE gaiaDbfFieldPtr gaiaAddDbfField (gaiaDbfListPtr list, char *name, unsigned char type, int offset, unsigned char length, unsigned char decimals); /** Resets a DBF List object to its initial empty state \param list pointer to the DBF List object. \sa gaiaFreeValue \note any DBF Field associated to the List object will be reset to its initial empty state (i.e. \e no \e value at all). */ GAIAGEO_DECLARE void gaiaResetDbfEntity (gaiaDbfListPtr list); /** Allocates a new DBF List object [duplicating an existing one] \param org pointer to input DBF List object. \return the pointer to newly created DBF List object. \sa gaiaCloneDbfField, gaiaCloneValue, \note the newly created object is an exact copy of the original one. \n this including any currently set Field Value. */ GAIAGEO_DECLARE gaiaDbfListPtr gaiaCloneDbfEntity (gaiaDbfListPtr org); /** Allocates a new Shapefile object. \return the pointer to newly created Shapefile object. \sa gaiaFreeShapefile, gaiaOpenShpRead, gaiaOpenShpWrite, gaiaReadShpEntity, gaiaShpAnalyze, gaiaWriteShpEntity, gaiaFlushShpHeaders \note you are responsible to destroy (before or after) any allocated Shapefile. \n you should phisically open the Shapefile in \e read or \e write mode before performing any actual I/O operation. */ GAIAGEO_DECLARE gaiaShapefilePtr gaiaAllocShapefile (void); /** Destroys a Shapefile object \param shp pointer to the Shapefile object. \sa gaiaAllocShapefile, gaiaOpenShpRead, gaiaOpenShpWrite, gaiaReadShpEntity, gaiaShpAnalyze, gaiaWriteShpEntity, gaiaFlushShpHeaders \note destroying the Shapefile object will close any related file: anyway you a responsible to explicitly call gaiaFlushShpHeader before destroyng a Shapefile opened in \e write mode. */ GAIAGEO_DECLARE void gaiaFreeShapefile (gaiaShapefilePtr shp); /** Open a Shapefile in read mode \param shp pointer to the Shapefile object. \param path \e abstract pathname to the corresponding file-system files. \param charFrom GNU ICONV name identifying the input charset encoding. \param charTo GNU ICONV name identifying the output charset encoding. \sa gaiaAllocShapefile, gaiaFreeShapefile, gaiaOpenShpWrite, gaiaReadShpEntity, gaiaShpAnalyze, gaiaWriteShpEntity, gaiaFlushShpHeaders \note on failure the object member \e Valid will be set to 0; and the object member \e LastError will contain the appropriate error message. \n the \e abstract pathname should not contain any suffix at all. */ GAIAGEO_DECLARE void gaiaOpenShpRead (gaiaShapefilePtr shp, const char *path, const char *charFrom, const char *charTo); /** Open a Shapefile in read mode \param shp pointer to the Shapefile object. \param path \e abstract pathname to the corresponding file-system files. \param shape the SHAPE code; expected to be one of GAIA_SHP_POINT, GAIA_SHP_POLYLINE, GAIA_SHP_POLYGON, GAIA_SHP_MULTIPOINT, GAIA_SHP_POINTZ, GAIA_SHP_POLYLINEZ, GAIA_SHP_POLYGONZ, GAIA_SHP_MULTIPOINTZ, GAIA_SHP_POINTM, GAIA_SHP_POLYLINEM, GAIA_SHP_POLYGONM, GAIA_SHP_MULTIPOINTM \param list pointer to DBF List object representing the corresponding data attributes. \param charFrom GNU ICONV name identifying the input charset encoding. \param charTo GNU ICONV name identifying the output charset encoding. \sa gaiaAllocShapefile, gaiaFreeShapefile, gaiaOpenShpRead, gaiaReadShpEntity, gaiaShpAnalyze, gaiaWriteShpEntity, gaiaFlushShpHeaders \note on failure the object member \e Valid will be set to 0; and the object member \e LastError will contain the appropriate error message. \n the \e abstract pathname should not contain any suffix at all. */ GAIAGEO_DECLARE void gaiaOpenShpWrite (gaiaShapefilePtr shp, const char *path, int shape, gaiaDbfListPtr list, const char *charFrom, const char *charTo); /** Reads a feature from a Shapefile object \param shp pointer to the Shapefile object. \param current_row the row number identifying the feature to be read. \param srid feature's SRID \return 0 on failure: any other value on success. \sa gaiaAllocShapefile, gaiaFreeShapefile, gaiaOpenShpRead, gaiaOpenShpWrite, gaiaShpAnalyze, gaiaWriteShpEntity, gaiaFlushShpHeaders \note on completion the Shapefile's \e Dbf member will contain the feature read: \li the \e Dbf->Geometry member will contain the corresponding Geometry \li and the \e Dbf->First member will point to the linked list containing the corresponding data attributes [both data formats and values]. \remark the Shapefile object should be opened in \e read mode. */ GAIAGEO_DECLARE int gaiaReadShpEntity (gaiaShapefilePtr shp, int current_row, int srid); /** Prescans a Shapefile object gathering informations \param shp pointer to the Shapefile object. \sa gaiaAllocShapefile, gaiaFreeShapefile, gaiaOpenShpRead, gaiaOpenShpWrite, gaiaReadShpEntity, gaiaWriteShpEntity, gaiaFlushShpHeaders \note on completion the Shapefile's \e EffectiveType will containt the Geometry type corresponding to features actually found. \remark the Shapefile object should be opened in \e read mode. */ GAIAGEO_DECLARE void gaiaShpAnalyze (gaiaShapefilePtr shp); /** Writes a feature into a Shapefile object \param shp pointer to the Shapefile object. \param entity pointer to DBF List object containing both Geometry and Field values. \return 0 on failure: any other value on success. \sa gaiaAllocShapefile, gaiaFreeShapefile, gaiaOpenShpRead, gaiaOpenShpWrite, gaiaReadShpEntity, gaiaShpAnalyze, gaiaFlushShpHeaders \remark the Shapefile object should be opened in \e write mode. */ GAIAGEO_DECLARE int gaiaWriteShpEntity (gaiaShapefilePtr shp, gaiaDbfListPtr entity); /** Writes into an output Shapefile any required header / footer \param shp pointer to the Shapefile object. \sa gaiaAllocShapefile, gaiaFreeShapefile, gaiaOpenShpRead, gaiaOpenShpWrite, gaiaReadShpEntity, gaiaShpAnalyze, gaiaWriteShpEntity \note forgetting to call gaiaFlushShpHeader for any Shapefile opened in \e write mode immediately before destroying the object, will surely cause severe file corruption. */ GAIAGEO_DECLARE void gaiaFlushShpHeaders (gaiaShapefilePtr shp); /** Allocates a new DBF File object. \return the pointer to newly created DBF File object. \sa gaiaFreeDbf, gaiaOpenDbfRead, gaiaOpenDbfWrite, gaiaReadDbfEntity, gaiaWriteDbfEntity, gaiaFlushDbfHeader \note you are responsible to destroy (before or after) any allocated DBF File. \n you should phisically open the DBF File in \e read or \e write mode before performing any actual I/O operation. */ GAIAGEO_DECLARE gaiaDbfPtr gaiaAllocDbf (void); /** Destroys a DBF File object \param dbf pointer to the DBF File object. \sa gaiaAllocDbf, gaiaFreeDbf, gaiaOpenDbfWrite, gaiaReadDbfEntity, gaiaWriteDbfEntity, gaiaFlushDbfHeader \note destroying the Shapefile object will close any related file: anyway you a responsible to explicitly call gaiaFlushShpHeader before destroyng a Shapefile opened in \e write mode. */ GAIAGEO_DECLARE void gaiaFreeDbf (gaiaDbfPtr dbf); /** Open a DBF File in read mode \param dbf pointer to the DBF File object. \param path pathname to the corresponding file-system file. \param charFrom GNU ICONV name identifying the input charset encoding. \param charTo GNU ICONV name identifying the output charset encoding. \sa gaiaAllocDbf, gaiaFreeDbf, gaiaOpenDbfWrite, gaiaReadDbfEntity, gaiaWriteDbfEntity, gaiaFlushDbfHeader \note on failure the object member \e Valid will be set to 0; and the object member \e LastError will contain the appropriate error message. */ GAIAGEO_DECLARE void gaiaOpenDbfRead (gaiaDbfPtr dbf, const char *path, const char *charFrom, const char *charTo); /** Open a DBF File in write mode \param dbf pointer to the DBF File object. \param path pathname to the corresponding file-system file. \param charFrom GNU ICONV name identifying the input charset encoding. \param charTo GNU ICONV name identifying the output charset encoding. \sa gaiaAllocDbf, gaiaFreeDbf, gaiaOpenDbfRead, gaiaReadDbfEntity, gaiaWriteDbfEntity, gaiaFlushDbfHeader \note on failure the object member \e Valid will be set to 0; and the object member \e LastError will contain the appropriate error message. */ GAIAGEO_DECLARE void gaiaOpenDbfWrite (gaiaDbfPtr dbf, const char *path, const char *charFrom, const char *charTo); /** Reads a record from a DBF File object \param dbf pointer to the DBF File object. \param current_row the row number identifying the record to be read. \param deleted on completion this variable will contain 0 if the record just read is valid: any other value if the record just read is marked as \e logically \e deleted. \return 0 on failure: any other value on success. \sa gaiaAllocDbf, gaiaFreeDbf, gaiaOpenDbfRead, gaiaOpenDbfWrite, gaiaFlushDbfHeader \note on completion the DBF File \e First member will point to the linked list containing the corresponding data attributes [both data formats and values]. \remark the DBF File object should be opened in \e read mode. */ GAIAGEO_DECLARE int gaiaReadDbfEntity (gaiaDbfPtr dbf, int current_row, int *deleted); /** Writes a record into a DBF File object \param dbf pointer to the DBF File object. \param entity pointer to DBF List object containing Fields and corresponding values. \return 0 on failure: any other value on success. \sa gaiaAllocDbf, gaiaFreeDbf, gaiaOpenDbfRead, gaiaOpenDbfWrite, gaiaReadDbfEntity, gaiaFlushDbfHeader \remark the DBF File object should be opened in \e write mode. */ GAIAGEO_DECLARE int gaiaWriteDbfEntity (gaiaDbfPtr dbf, gaiaDbfListPtr entity); /** Writes into an output DBF File any required header / footer \param dbf pointer to the DBF File object. \sa gaiaAllocDbf, gaiaFreeDbf, gaiaOpenDbfRead, gaiaOpenDbfWrite, gaiaReadDbfEntity, gaiaWriteDbfEntity \note forgetting to call gaiaFlushDbfHeader for any DBF File opened in \e write mode immediately before destroying the object, will surely cause severe file corruption. */ GAIAGEO_DECLARE void gaiaFlushDbfHeader (gaiaDbfPtr dbf); #ifndef OMIT_ICONV /* ICONV enabled: supporting text reader */ /** Creates a Text Reader object \param path to the corresponding file-system file. \param field_separator the character acting as a separator between adjacent fields. \param text_separator the character used to quote text strings. \param decimal_separator the character used as a separator between integer and decimal digits for real numeric values. \param first_line_titles 0 if the first line contains regular values: any other value if the first line contains column names. \param encoding GNU ICONV name identifying the input charset encoding. \return the pointer to the newly created Text Reader object: NULL on failure \sa gaiaTextReaderDestroy, gaiaTextReaderParse, gaiaTextReaderGetRow, gaiaTextReaderFetchField \note you are responsible to destroy (before or after) any allocated Text Reader object. */ GAIAGEO_DECLARE gaiaTextReaderPtr gaiaTextReaderAlloc (const char *path, char field_separator, char text_separator, char decimal_separator, int first_line_titles, const char *encoding); /** Destroys a Text Reader object \param reader pointer to Text Reader object. \sa gaiaTextReaderAlloc, gaiaTextReaderParse, gaiaTextReaderGetRow, gaiaTextReaderFetchField */ GAIAGEO_DECLARE void gaiaTextReaderDestroy (gaiaTextReaderPtr reader); /** Prescans the external file associated to a Text Reade object \param reader pointer to Text Reader object. \return 0 on failure: any other value on success. \sa gaiaTextReaderAlloc, gaiaTextReaderDestroy, gaiaTextReaderGetRow, gaiaTextReaderFetchField \note this preliminary step is required so to ensure: \li file consistency: checking expected formatting rules. \li identifying the number / type / name of fields [aka columns]. \li identifying the actual number of lines within the file. */ GAIAGEO_DECLARE int gaiaTextReaderParse (gaiaTextReaderPtr reader); /** Reads a line from a Text Reader object \param reader pointer to Text Reader object. \param row_num the Line Number identifying the Line to be read. \return 0 on failure: any other value on success. \sa gaiaTextReaderAlloc, gaiaTextReaderDestroy, gaiaTextReaderParse, gaiaTextReaderFetchField \note this function will load the requested Line into the current buffer: you can then use gaiaTextReaderFetchField in order to retrieve any individual field [aka column] value. */ GAIAGEO_DECLARE int gaiaTextReaderGetRow (gaiaTextReaderPtr reader, int row_num); /** Retrieves an individual field value from the current Line \param reader pointer to Text Reader object. \param field_num relative field [aka column] index: first field has index 0. \param type on completion this variable will contain the value type. \param value on completion this variable will contain the current field value. \return 0 on failure: any other value on success. \sa gaiaTextReaderAlloc, gaiaTextReaderDestroy, gaiaTextReaderParse, gaiaTextReaderGetRow */ GAIAGEO_DECLARE int gaiaTextReaderFetchField (gaiaTextReaderPtr reader, int field_num, int *type, const char **value); #endif /* end ICONV (text reader) */ #ifdef __cplusplus } #endif #endif /* _GG_FORMATS_H */ libspatialite-4.1.1/src/headers/spatialite/gg_wfs.h0000664000175000017500000004425512163502133017262 00000000000000/* gg_wfs.h -- Gaia common support for WFS version 4.1, 2013 May 14 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /** \file gg_wfs.h WFS support */ #ifndef _GG_WFS_H #ifndef DOXYGEN_SHOULD_SKIP_THIS #define _GG_WFS_H #endif #ifdef __cplusplus extern "C" { #endif typedef struct gaia_wfs_catalog gaiaWFScatalog; typedef gaiaWFScatalog *gaiaWFScatalogPtr; typedef struct gaia_wfs_item gaiaWFSitem; typedef gaiaWFSitem *gaiaWFSitemPtr; typedef struct gaia_wfs_schema gaiaWFSschema; typedef gaiaWFSschema *gaiaWFSschemaPtr; typedef struct gaia_wfs_column gaiaWFScolumn; typedef gaiaWFScolumn *gaiaWFScolumnPtr; /** Loads data from some WFS source \param sqlite handle to current DB connection \param path_or_url pointer to some WFS-GetFeature XML Document (could be a pathname or an URL). \param alt_describe_uri an alternative URI for DescribeFeatureType to be used if no one is found within the XML document returned by GetFeature. \param layer_name the name of the WFS layer. \param swap_axes if TRUE the X and Y axes will be swapped \param table the name of the table to be created \param pk_column name of the Primary Key column; if NULL or mismatching then "PK_UID" will be assumed by default. \param spatial_index if TRUE an R*Tree Spatial Index will be created \param rows on completion will contain the total number of actually imported rows \param err_msg on completion will contain an error message (if any) \param progress_callback pointer to a callback function to be invoked immediately after processing each WFS page (could be NULL) \param callback_ptr an arbitrary pointer (to be passed as the second argument by the callback function). \sa create_wfs_catalog, load_from_wfs_paged \return 0 on failure, any other value on success \note an eventual error message returned via err_msg requires to be deallocated by invoking free() \n please note: this one simply is a convenience method, and exactly corresponds to load_from_wfs_paged() setting a negative page size. */ SPATIALITE_DECLARE int load_from_wfs (sqlite3 * sqlite, const char *path_or_url, const char *alt_describe_uri, const char *layer_name, int swap_axes, const char *table, const char *pk_column_name, int spatial_index, int *rows, char **err_msg, void (*progress_callback) (int, void *), void *callback_ptr); /** Loads data from some WFS source (using WFS paging) \param sqlite handle to current DB connection \param path_or_url pointer to some WFS-GetFeature XML Document (could be a pathname or an URL). \param alt_describe_uri an alternative URI for DescribeFeatureType to be used if no one is found within the XML document returned by GetFeature. \param layer_name the name of the WFS layer. \param swap_axes if TRUE the X and Y axes will be swapped \param table the name of the table to be created \param pk_column name of the Primary Key column; if NULL or mismatching then "PK_UID" will be assumed by default. \param spatial_index if TRUE an R*Tree Spatial Index will be created \param page_size max number of features for each single WFS call; if zero or negative a single monolithic page is assumed (i.e. paging will not be applied). \param rows on completion will contain the total number of actually imported rows \param err_msg on completion will contain an error message (if any) \param progress_callback pointer to a callback function to be invoked immediately after processing each WFS page (could be NULL) \param callback_ptr an arbitrary pointer (to be passed as the second argument by the callback function). \sa create_wfs_catalog, load_from_wfs \return 0 on failure, any other value on success \note an eventual error message returned via err_msg requires to be deallocated by invoking free() \note the progress_callback function must have this signature: \b void \b myfunct(\b int \b count, \b void \b *ptr); \n and will cyclically report how many features have been processed since the initial call start. */ SPATIALITE_DECLARE int load_from_wfs_paged (sqlite3 * sqlite, const char *path_or_url, const char *alt_describe_uri, const char *layer_name, int swap_axes, const char *table, const char *pk_column_name, int spatial_index, int page_size, int *rows, char **err_msg, void (*progress_callback) (int, void *), void *callback_ptr); /** Creates a Catalog for some WFS service \param path_or_url pointer to some WFS-GetCapabilities XML Document (could be a pathname or an URL). \param err_msg on completion will contain an error message (if any) \return the pointer to the corresponding WFS-Catalog object: NULL on failure \sa destroy_wfs_catalog, get_wfs_catalog_count, get_wfs_catalog_item, load_from_wfs \note an eventual error message returned via err_msg requires to be deallocated by invoking free().\n you are responsible to destroy (before or after) any WFS-Catalog returned by create_wfs_catalog(). */ SPATIALITE_DECLARE gaiaWFScatalogPtr create_wfs_catalog (const char *path_or_url, char **err_msg); /** Destroys a WFS-Catalog object freeing any allocated resource \param handle the pointer to a valid WFS-Catalog returned by a previous call to create_wfs_catalog() \sa create_wfs_catalog */ SPATIALITE_DECLARE void destroy_wfs_catalog (gaiaWFScatalogPtr handle); /** Return the base URL for any WFS-GetFeature call \param handle the pointer to a valid WFS-Item returned by a previous call to get_wfs_catalog_item(). \return the base URL for any WFS-GetFeature call: NULL is undefined \sa create_wfs_catalog, get_wfs_base_describe_url, get_wfs_request_url */ SPATIALITE_DECLARE const char *get_wfs_base_request_url (gaiaWFScatalogPtr handle); /** Return the base URL for any WFS-DescribeFeatureType call \param handle the pointer to a valid WFS-Item returned by a previous call to get_wfs_catalog_item(). \return the base URL for any WFS-DescribeFeatureType call: NULL is undefined \sa create_wfs_catalog, get_wfs_base_request_url, get_wfs_describe_url */ SPATIALITE_DECLARE const char *get_wfs_base_describe_url (gaiaWFScatalogPtr handle); /** Return a GetFeature URL (GET) \param handle the pointer to a valid WFS-Item returned by a previous call to get_wfs_catalog_item(). \param name the NAME uniquely identifying the required WFS layer. \param version could be "1.0.0" or "1.1.0"; if NULL or invalid "1.1.0" will be assumed. \param srid the preferred SRS to be used for WFS geometries; if negative or mismatching will be simply ignored. \param max_features the WFS MAXFEATURES argument; any negative or zero value will be ignored. \return the GetFeature URL: NULL if any error is found. \sa get_wfs_base_request_url, get_wfs_describe_url \note you are responsible to destroy (before or after) any allocated memory returned by get_wfs_request_url(). */ SPATIALITE_DECLARE char *get_wfs_request_url (gaiaWFScatalogPtr handle, const char *name, const char *version, int srid, int max_features); /** Return a DescribeFeatureType URL (GET) \param handle the pointer to a valid WFS-Item returned by a previous call to get_wfs_catalog_item(). \param name the NAME uniquely identifying the required WFS layer. \param version could be "1.0.0" or "1.1.0"; if NULL or invalid "1.1.0" will be assumed. \return the DescribeFeatureType URL: NULL if any error is found. \sa get_wfs_base_describe_url, get_wfs_request_url \note you are responsible to destroy (before or after) any allocated memory returned by get_wfs_describe_url(). */ SPATIALITE_DECLARE char *get_wfs_describe_url (gaiaWFScatalogPtr handle, const char *name, const char *version); /** Return the total count of items (aka Layers) defined within a WFS-Catalog object \param handle the pointer to a valid WFS-Catalog returned by a previous call to create_wfs_catalog() \return the total count of items (aka Layers) defined within a WFS-Catalog object: a negative number if the WFS-Catalog isn't valid \sa create_wfs_catalog, get_wfs_catalog_item */ SPATIALITE_DECLARE int get_wfs_catalog_count (gaiaWFScatalogPtr handle); /** Return the pointer to some specific Layer defined within a WFS-Catalog object \param handle the pointer to a valid WFS-Catalog returned by a previous call to create_wfs_catalog() \param index the relative index identifying the required WFS-Layer (the first Item in the WFS-Catalaog object has index ZERO). \return the pointer to the required WFS-Layer object: NULL if the passed index isn't valid \sa create_wfs_catalog, get_wfs_catalog_count, get_wfs_item_name, get_wfs_item_title, get_wfs_item_abstract, get_wfs_layer_srid_count, get_wfs_layer_srid, get_wfs_keyword_count, get_wfs_keyword */ SPATIALITE_DECLARE gaiaWFSitemPtr get_wfs_catalog_item (gaiaWFScatalogPtr handle, int index); /** Return the name corresponding to some WFS-Item (aka Layer) object \param handle the pointer to a valid WFS-Item returned by a previous call to get_wfs_catalog_item(). \return the name corresponding to the WFS-Layer object \sa get_wfs_layer_title, get_wfs_layer_abstract, get_wfs_layer_srid_count, get_wfs_layer_srid, get_wfs_keyword_count, get_wfs_keyword */ SPATIALITE_DECLARE const char *get_wfs_item_name (gaiaWFSitemPtr handle); /** Return the title corresponding to some WFS-Item (aka Layer) object \param handle the pointer to a valid WFS-Item returned by a previous call to get_wfs_catalog_item(). \return the title corresponding to the WFS-Layer object \sa get_wfs_item_name, get_wfs_item_abstract, get_wfs_layer_srid_count, get_wfs_layer_srid, get_wfs_keyword_count, get_wfs_keyword */ SPATIALITE_DECLARE const char *get_wfs_item_title (gaiaWFSitemPtr handle); /** Return the abstract corresponding to some WFS-Item (aka Layer) object \param handle the pointer to a valid WFS-Item returned by a previous call to get_wfs_catalog_item(). \return the abstract corresponding to the WFS-Layer object \sa get_wfs_item_name, get_wfs_item_title, get_wfs_layer_srid_count, get_wfs_layer_srid, get_wfs_keyword_count, get_wfs_keyword */ SPATIALITE_DECLARE const char *get_wfs_item_abstract (gaiaWFSitemPtr handle); /** Return the total count of SRIDs supported by a WFS-Item object \param handle the pointer to a valid WFS-Item returned by a previous call to get_wfs_catalog_item(). \return the total count of SRIDs supported by a WFS-Item object: a negative number if the WFS-Item isn't valid \sa get_wfs_item_name, get_wfs_item_title, get_wfs_item_abstract, get_wfs_layer_srid, get_wfs_keyword_count, get_wfs_keyword */ SPATIALITE_DECLARE int get_wfs_layer_srid_count (gaiaWFSitemPtr handle); /** Return one of the SRIDs supported by a WFS-Item object \param handle the pointer to a valid WFS-Item returned by a previous call to get_wfs_catalog_item(). \param index the relative index identifying the required SRID (the first SRID value supported by a WFS-Item object has index ZERO). \return the SRID-value: a negative number if the required SRID-value isn't defined. \sa get_wfs_item_name, get_wfs_item_title, get_wfs_item_abstract, get_wfs_layer_srid_count, get_wfs_keyword_count, get_wfs_keyword */ SPATIALITE_DECLARE int get_wfs_layer_srid (gaiaWFSitemPtr handle, int index); /** Return the total count of Keywords associated to a WFS-Item object \param handle the pointer to a valid WFS-Item returned by a previous call to get_wfs_catalog_item(). \return the total count of Keyword associated to a WFS-Item object: a negative number if the WFS-Item isn't valid \sa get_wfs_item_name, get_wfs_item_title, get_wfs_item_abstract, get_wfs_layer_srid_count, get_wfs_layer_srid, get_wfs_layer_keyword */ SPATIALITE_DECLARE int get_wfs_keyword_count (gaiaWFSitemPtr handle); /** Return one of the Keywords supported by a WFS-Item object \param handle the pointer to a valid WFS-Item returned by a previous call to get_wfs_catalog_item(). \param index the relative index identifying the required Keyword (the first Keyword associated to a WFS-Item object has index ZERO). \return the Keyword value: NULL if the required Keyword isn't defined. \sa get_wfs_item_name, get_wfs_item_title, get_wfs_item_abstract, get_wfs_layer_srid_count, get_wfs_layer_srid, get_wfs_layer_keyword */ SPATIALITE_DECLARE const char *get_wfs_keyword (gaiaWFSitemPtr handle, int index); /** Creates a Schema representing some WFS Layer \param path_or_url pointer to some WFS-DescribeFeatureType XML Document (could be a pathname or an URL). \param err_msg on completion will contain an error message (if any) \return the pointer to the corresponding WFS-Schema object: NULL on failure \sa destroy_wfs_schema,get_wfs_schema_column_count, get_wfs_schema_column_info, get_wfs_schema_geometry_info \note an eventual error message returned via err_msg requires to be deallocated by invoking free().\n you are responsible to destroy (before or after) any WFS-Schema returned by create_wfs_schema(). */ SPATIALITE_DECLARE gaiaWFSschemaPtr create_wfs_schema (const char *path_or_url, const char *layer_name, char **err_msg); /** Destroys a WFS-schema object freeing any allocated resource \param handle the pointer to a valid WFS-Catalog returned by a previous call to create_wfs_schema() \sa create_wfs_schema */ SPATIALITE_DECLARE void destroy_wfs_schema (gaiaWFSschemaPtr handle); /** Return the infos describing some WFS-GeometryColumn object \param handle the pointer to a valid WFS-Schema returned by a previous call to create_wfs_schema(). \param name on completion will contain a pointer to the GeometryColumn name \param type on completion will contain the GeometryType set for the Column; could be one of GAIA_POINT, GAIA_LINESTRING, GAIA_POLYGON, GAIA_MULTIPOINT, GAIA_MULTILINESTRING, GAIA_MULTIPOLYGON or GAIA_GEOMETRYCOLLECTION \param srid on completion will contain the SRID-value set for the GeometryColumn \param dims on completion will contain the dimensions (2 or 3) set for the GeometryColumn \param nullable on completion will contain a Boolean value; if TRUE the Column may contain NULL-values. \return TRUE on success, FALSE if any error is encountered or if the WFS-Schema hasn't any Geometry-Column defined. \sa create_wfs_schema, get_wfs_schema_column_count, get_wfs_schema_column, get_wfs_schema_column_info */ SPATIALITE_DECLARE int get_wfs_schema_geometry_info (gaiaWFSschemaPtr handle, const char **name, int *type, int *srid, int *dims, int *nullable); /** Return the total count of items (aka Columns) defined within a WFS-Schema object \param handle the pointer to a valid WFS-Schema returned by a previous call to create_wfs_schema() \return the total count of items (aka Columns) defined within a WFS-Schema object: a negative number if the WFS-Schema isn't valid \sa create_wfs_schema, get_wfs_schema_geometry_info, get_wfs_schema_column, get_wfs_schema_column_info */ SPATIALITE_DECLARE int get_wfs_schema_column_count (gaiaWFSschemaPtr handle); /** Return the pointer to some specific Column defined within a WFS-Schema object \param handle the pointer to a valid WFS-Schema returned by a previous call to create_wfs_schema() \param index the relative index identifying the required WFS-Column (the first Item in the WFS-Schema object has index ZERO). \return the pointer to the required WFS-Column object: NULL if the passed index isn't valid \sa create_wfs_schema, get_wfs_schema_geometry_info, get_wfs_schema_column_count, get_wfs_schema_column_info */ SPATIALITE_DECLARE gaiaWFScolumnPtr get_wfs_schema_column (gaiaWFSschemaPtr handle, int index); /** Return the infos describing some WFS-Column object \param handle the pointer to a valid WFS-Column returned by a previous call to get_wfs_schema_column(). \param name on completion will contain a pointer to the Column name \param type on completion will contain the datatype set for the Column; could be one of SQLITE_TEXT, SQLITE_INTEGER or SQLITE_FLOAT \param nullable on completion will contain a Boolean value; if TRUE the Column may contain NULL-values. \return TRUE on success, FALSE if any error is encountered \sa get_wfs_schema_column, get_wfs_schema_geometry_info */ SPATIALITE_DECLARE int get_wfs_schema_column_info (gaiaWFScolumnPtr handle, const char **name, int *type, int *nullable); #ifdef __cplusplus } #endif #endif /* _GG_WFS_H */ libspatialite-4.1.1/src/headers/spatialite/gg_const.h0000664000175000017500000004242312163502133017604 00000000000000/* gg_const.h -- Gaia common support for geometries: constants version 4.1, 2013 May 8 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Klaus Foerster klaus.foerster@svg.cc Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /** \file gg_const.h Geometry constants and macros */ #ifndef _GG_CONST_H #ifndef DOXYGEN_SHOULD_SKIP_THIS #define _GG_CONST_H #endif #ifdef __cplusplus extern "C" { #endif /* constant values for getVectorLayersList modes */ /** mode: FAST */ #define GAIA_VECTORS_LIST_FAST 0 /** mode: OPTIMISTIC */ #define GAIA_VECTORS_LIST_OPTIMISTIC 1 /** mode: PESSIMISTIC */ #define GAIA_VECTORS_LIST_PESSIMISTIC 2 /* constant values for Vector Layer Types */ /** Vector Layer: unknown type */ #define GAIA_VECTOR_UNKNOWN -1 /** Vector Layer: Spatial Table */ #define GAIA_VECTOR_TABLE 1 /** Vector Layer: Spatial View */ #define GAIA_VECTOR_VIEW 2 /** Vector Layer: Virtual Shape */ #define GAIA_VECTOR_VIRTUAL 3 /* constant values for Vector Layer Geometry Types */ /** Vector Layer Geometry: Geometry */ #define GAIA_VECTOR_GEOMETRY 0 /** Vector Layer Geometry: Point */ #define GAIA_VECTOR_POINT 1 /** Vector Layer Geometry: Linestring */ #define GAIA_VECTOR_LINESTRING 2 /** Vector Layer Geometry: Polygon */ #define GAIA_VECTOR_POLYGON 3 /** Vector Layer Geometry: MultiPoint */ #define GAIA_VECTOR_MULTIPOINT 4 /** Vector Layer Geometry: MultiLinestring */ #define GAIA_VECTOR_MULTILINESTRING 5 /** Vector Layer Geometry: MultiPolygon */ #define GAIA_VECTOR_MULTIPOLYGON 6 /** Vector Layer Geometry: GeometryCollection */ #define GAIA_VECTOR_GEOMETRYCOLLECTION 7 /* constant values for Spatial Index */ /** Vector Layer: no Spatial Index */ #define GAIA_SPATIAL_INDEX_NONE 0 /** Vector Layer: Spatial Index RTree */ #define GAIA_SPATIAL_INDEX_RTREE 1 /** Vector Layer: Spatial Index MbrCache */ #define GAIA_SPATIAL_INDEX_MBRCACHE 2 /* constant values for generic geometry classes */ /** WKT parser: unknown Geometry type */ #define GAIA_TYPE_NONE 0 /** WKT parser: Point Geometry type */ #define GAIA_TYPE_POINT 1 /** WKT parser: Linestring Geometry type */ #define GAIA_TYPE_LINESTRING 2 /** WKT parser: Polygon Geometry type */ #define GAIA_TYPE_POLYGON 3 /* constants that defines byte storage order */ /** Big-Endian marker */ #define GAIA_BIG_ENDIAN 0 /** Little-Endian marker */ #define GAIA_LITTLE_ENDIAN 1 /* constants that defines special markers used for encoding of SpatiaLite internal BLOB geometries */ /** BLOB-Geometry internal marker: START */ #define GAIA_MARK_START 0x00 /** BLOB-Geometry internal marker: END */ #define GAIA_MARK_END 0xFE /** BLOB-Geometry internal marker: MBR */ #define GAIA_MARK_MBR 0x7C /** BLOB-Geometry internal marker: ENTITY */ #define GAIA_MARK_ENTITY 0x69 /* constants that defines GEOMETRY CLASSes */ /** BLOB-Geometry CLASS: unknown */ #define GAIA_UNKNOWN 0 /** BLOB-Geometry CLASS: POINT */ #define GAIA_POINT 1 /** BLOB-Geometry CLASS: LINESTRING */ #define GAIA_LINESTRING 2 /** BLOB-Geometry CLASS: POLYGON */ #define GAIA_POLYGON 3 /** BLOB-Geometry CLASS: MULTIPOINT */ #define GAIA_MULTIPOINT 4 /** BLOB-Geometry CLASS: MULTILINESTRING */ #define GAIA_MULTILINESTRING 5 /** BLOB-Geometry CLASS: MULTIPOLYGON */ #define GAIA_MULTIPOLYGON 6 /** BLOB-Geometry CLASS: GEOMETRYCOLLECTION */ #define GAIA_GEOMETRYCOLLECTION 7 /** BLOB-Geometry CLASS: POINT Z */ #define GAIA_POINTZ 1001 /** BLOB-Geometry CLASS: LINESTRING Z */ #define GAIA_LINESTRINGZ 1002 /** BLOB-Geometry CLASS: POLYGON Z */ #define GAIA_POLYGONZ 1003 /** BLOB-Geometry CLASS: MULTIPOINT Z */ #define GAIA_MULTIPOINTZ 1004 /** BLOB-Geometry CLASS: MULTILINESTRING Z */ #define GAIA_MULTILINESTRINGZ 1005 /** BLOB-Geometry CLASS: MULTIPOLYGON Z */ #define GAIA_MULTIPOLYGONZ 1006 /** BLOB-Geometry CLASS: GEOMETRYCOLLECTION Z */ #define GAIA_GEOMETRYCOLLECTIONZ 1007 /** BLOB-Geometry CLASS: POINT M */ #define GAIA_POINTM 2001 /** BLOB-Geometry CLASS: LINESTRING M */ #define GAIA_LINESTRINGM 2002 /** BLOB-Geometry CLASS: POLYGON M */ #define GAIA_POLYGONM 2003 /** BLOB-Geometry CLASS: MULTIPOINT M */ #define GAIA_MULTIPOINTM 2004 /** BLOB-Geometry CLASS: MULTILINESTRING M */ #define GAIA_MULTILINESTRINGM 2005 /** BLOB-Geometry CLASS: MULTIPOLYGON M */ #define GAIA_MULTIPOLYGONM 2006 /** BLOB-Geometry CLASS: GEOMETRYCOLLECTION M */ #define GAIA_GEOMETRYCOLLECTIONM 2007 /** BLOB-Geometry CLASS: POINT ZM */ #define GAIA_POINTZM 3001 /** BLOB-Geometry CLASS: LINESTRING ZM */ #define GAIA_LINESTRINGZM 3002 /** BLOB-Geometry CLASS: POLYGON ZM */ #define GAIA_POLYGONZM 3003 /** BLOB-Geometry CLASS: MULTIPOINT ZM */ #define GAIA_MULTIPOINTZM 3004 /** BLOB-Geometry CLASS: MULTILINESTRING ZM */ #define GAIA_MULTILINESTRINGZM 3005 /** BLOB-Geometry CLASS: MULTIPOLYGON ZM */ #define GAIA_MULTIPOLYGONZM 3006 /** BLOB-Geometry CLASS: GEOMETRYCOLLECTION ZM */ #define GAIA_GEOMETRYCOLLECTIONZM 3007 /* constants that defines Compressed GEOMETRY CLASSes */ /** BLOB-Geometry CLASS: compressed LINESTRING */ #define GAIA_COMPRESSED_LINESTRING 1000002 /** BLOB-Geometry CLASS: compressed POLYGON */ #define GAIA_COMPRESSED_POLYGON 1000003 /** BLOB-Geometry CLASS: compressed LINESTRING Z */ #define GAIA_COMPRESSED_LINESTRINGZ 1001002 /** BLOB-Geometry CLASS: compressed POLYGON Z */ #define GAIA_COMPRESSED_POLYGONZ 1001003 /** BLOB-Geometry CLASS: compressed LINESTRING M */ #define GAIA_COMPRESSED_LINESTRINGM 1002002 /** BLOB-Geometry CLASS: compressed POLYGON M */ #define GAIA_COMPRESSED_POLYGONM 1002003 /** BLOB-Geometry CLASS: compressed LINESTRING ZM */ #define GAIA_COMPRESSED_LINESTRINGZM 1003002 /** BLOB-Geometry CLASS: compressed POLYGON ZM */ #define GAIA_COMPRESSED_POLYGONZM 1003003 /* constants that defines GEOS-WKB 3D CLASSes */ /** GEOS-WKB 3D CLASS: POINT Z */ #define GAIA_GEOSWKB_POINTZ -2147483647 /** GEOS-WKB 3D CLASS: LINESTRING Z */ #define GAIA_GEOSWKB_LINESTRINGZ -2147483646 /** GEOS-WKB 3D CLASS: POLYGON Z */ #define GAIA_GEOSWKB_POLYGONZ -2147483645 /** GEOS-WKB 3D CLASS: MULTIPOINT Z */ #define GAIA_GEOSWKB_MULTIPOINTZ -2147483644 /** GEOS-WKB 3D CLASS: MULTILINESTRING Z */ #define GAIA_GEOSWKB_MULTILINESTRINGZ -2147483643 /** GEOS-WKB 3D CLASS: MULTIPOLYGON Z */ #define GAIA_GEOSWKB_MULTIPOLYGONZ -2147483642 /** GEOS-WKB 3D CLASS: POINT Z */ #define GAIA_GEOSWKB_GEOMETRYCOLLECTIONZ -2147483641 /* constants that defines multitype values */ /** DBF data type: NULL */ #define GAIA_NULL_VALUE 0 /** DBF data type: TEXT */ #define GAIA_TEXT_VALUE 1 /** DBF data type: INT */ #define GAIA_INT_VALUE 2 /** DBF data type: DOUBLE */ #define GAIA_DOUBLE_VALUE 3 /* constants that defines POINT index for LINESTRING */ /** Linestring/Ring functions: START POINT */ #define GAIA_START_POINT 1 /** Linestring/Ring functions: END POINT */ #define GAIA_END_POINT 2 /** Linestring/Ring functions: POINTN */ #define GAIA_POINTN 3 /* constants that defines MBRs spatial relationships */ /** MBR relationships: CONTAINS */ #define GAIA_MBR_CONTAINS 1 /** MBR relationships: DISJOINT */ #define GAIA_MBR_DISJOINT 2 /** MBR relationships: EQUAL */ #define GAIA_MBR_EQUAL 3 /** MBR relationships: INTERSECTS */ #define GAIA_MBR_INTERSECTS 4 /** MBR relationships: OVERLAP */ #define GAIA_MBR_OVERLAPS 5 /** MBR relationships: TOUCHES */ #define GAIA_MBR_TOUCHES 6 /** MBR relationships: WITHIN */ #define GAIA_MBR_WITHIN 7 /* constants used for FilterMBR */ /** FilerMBR relationships: WITHIN */ #define GAIA_FILTER_MBR_WITHIN 74 /** FilerMBR relationships: CONTAINS */ #define GAIA_FILTER_MBR_CONTAINS 77 /** FilerMBR relationships: INTERSECTS */ #define GAIA_FILTER_MBR_INTERSECTS 79 /** FilerMBR relationships: DECLARE */ #define GAIA_FILTER_MBR_DECLARE 89 /* constants defining SVG default values */ /** SVG precision: RELATIVE */ #define GAIA_SVG_DEFAULT_RELATIVE 0 /** SVG precision: DEFAULT */ #define GAIA_SVG_DEFAULT_PRECISION 6 /** SVG precision: MAX */ #define GAIA_SVG_DEFAULT_MAX_PRECISION 15 /* constants used for VirtualNetwork */ /** VirtualNetwork internal markers: START */ #define GAIA_NET_START 0x67 /** VirtualNetwork internal markers: 64 bit START */ #define GAIA_NET64_START 0x68 /** VirtualNetwork internal markers: A-Stat START */ #define GAIA_NET64_A_STAR_START 0x69 /** VirtualNetwork internal markers: END */ #define GAIA_NET_END 0x87 /** VirtualNetwork internal markers: HEADER */ #define GAIA_NET_HEADER 0xc0 /** VirtualNetwork internal markers: CODE */ #define GAIA_NET_CODE 0xa6 /** VirtualNetwork internal markers: ID */ #define GAIA_NET_ID 0xb5 /** VirtualNetwork internal markers: NODE */ #define GAIA_NET_NODE 0xde /** VirtualNetwork internal markers: ARC */ #define GAIA_NET_ARC 0x54 /** VirtualNetwork internal markers: TABLE */ #define GAIA_NET_TABLE 0xa0 /** VirtualNetwork internal markers: FROM */ #define GAIA_NET_FROM 0xa1 /** VirtualNetwork internal markers: TO */ #define GAIA_NET_TO 0xa2 /** VirtualNetwork internal markers: GEOM */ #define GAIA_NET_GEOM 0xa3 /** VirtualNetwork internal markers: NAME */ #define GAIA_NET_NAME 0xa4 /** VirtualNetwork internal markers: COEFF */ #define GAIA_NET_A_STAR_COEFF 0xa5 /** VirtualNetwork internal markers: BLOCK */ #define GAIA_NET_BLOCK 0xed /* constants used for Coordinate Dimensions */ /** Coordinate Dimensions: XY */ #define GAIA_XY 0x00 /** Coordinate Dimensions: XYZ */ #define GAIA_XY_Z 0x01 /** Coordinate Dimensions: XYM */ #define GAIA_XY_M 0x02 /** Coordinate Dimensions: XYZM */ #define GAIA_XY_Z_M 0x03 /* constants used for length unit conversion */ /** Length unit conversion: Kilometer */ #define GAIA_KM 0 /** Length unit conversion: Meter */ #define GAIA_M 1 /** Length unit conversion: Decimeter */ #define GAIA_DM 2 /** Length unit conversion: Centimeter */ #define GAIA_CM 3 /** Length unit conversion: Millimeter */ #define GAIA_MM 4 /** Length unit conversion: International Nautical Mile */ #define GAIA_KMI 5 /** Length unit conversion: Inch */ #define GAIA_IN 6 /** Length unit conversion: Feet */ #define GAIA_FT 7 /** Length unit conversion: Yard */ #define GAIA_YD 8 /** Length unit conversion: Mile */ #define GAIA_MI 9 /** Length unit conversion: Fathom */ #define GAIA_FATH 10 /** Length unit conversion: Chain */ #define GAIA_CH 11 /** Length unit conversion: Link */ #define GAIA_LINK 12 /** Length unit conversion: US Inch */ #define GAIA_US_IN 13 /** Length unit conversion: US Feet */ #define GAIA_US_FT 14 /** Length unit conversion: US Yard */ #define GAIA_US_YD 15 /** Length unit conversion: US Chain */ #define GAIA_US_CH 16 /** Length unit conversion: US Mile */ #define GAIA_US_MI 17 /** Length unit conversion: Indian Yard */ #define GAIA_IND_YD 18 /** Length unit conversion: Indian Feet */ #define GAIA_IND_FT 19 /** Length unit conversion: Indian Chain */ #define GAIA_IND_CH 20 /** Length unit conversion: MIN */ #define GAIA_MIN_UNIT GAIA_KM /** Length unit conversion: MAX */ #define GAIA_MAX_UNIT GAIA_IND_CH /* constants used for SHAPES */ /** SHP shape: unknown */ #define GAIA_SHP_NULL 0 /** SHP shape: POINT */ #define GAIA_SHP_POINT 1 /** SHP shape: POLYLINE */ #define GAIA_SHP_POLYLINE 3 /** SHP shape: POLYGON */ #define GAIA_SHP_POLYGON 5 /** SHP shape: MULTIPOINT */ #define GAIA_SHP_MULTIPOINT 8 /** SHP shape: POINT Z */ #define GAIA_SHP_POINTZ 11 /** SHP shape: POLYLINE Z */ #define GAIA_SHP_POLYLINEZ 13 /** SHP shape: POLYGON Z */ #define GAIA_SHP_POLYGONZ 15 /** SHP shape: MULTIPOINT Z */ #define GAIA_SHP_MULTIPOINTZ 18 /** SHP shape: POINT M */ #define GAIA_SHP_POINTM 21 /** SHP shape: POLYLINE M */ #define GAIA_SHP_POLYLINEM 23 /** SHP shape: POLYGON M */ #define GAIA_SHP_POLYGONM 25 /** SHP shape: MULTIPOINT M */ #define GAIA_SHP_MULTIPOINTM 28 /* constants used for Clone Special modes */ /** Clone Special Mode: Same Order as input */ #define GAIA_SAME_ORDER 0 /** Clone Special Mode: Reversed Order */ #define GAIA_REVERSE_ORDER -1 /** Clone Special Mode: apply Left Handle Rule to Polygon Rings */ #define GAIA_LHR_ORDER -2 /* macros */ /** macro extracting XY coordinates \param xy pointer [const void *] to COORD mem-array \param v [int] point index [first point has index 0] \param x [double *] X coordinate \param y [double *] Y coordinate \sa gaiaLineGetPoint, gaiaRingGetPoint \note using this macro on behalf of COORDs not of [XY] dims may cause serious problems */ #define gaiaGetPoint(xy,v,x,y) \ {*x = xy[(v) * 2]; \ *y = xy[(v) * 2 + 1];} /** macro setting XY coordinates \param xy pointer [const void *] to COORD mem-array \param v [int] point index [first point has index 0] \param x [double] X coordinate \param y [double] Y coordinate \sa gaiaLineSetPoint, gaiaRingSetPoint \note using this macro on behalf on COORDs not of [XY] dims may cause serious problems */ #define gaiaSetPoint(xy,v,x,y) \ {xy[(v) * 2] = x; \ xy[(v) * 2 + 1] = y;} /** macro extracting XYZ coordinates \param xyz pointer [const void *] to COORD mem-array \param v [int] point index [first point has index 0] \param x [double *] X coordinate \param y [double *] Y coordinate \param z [double *] Z coordinate \sa gaiaLineGetPoint, gaiaRingGetPoint \note using this macro on behalf of COORDs not of [XYZ] dims may cause serious problems */ #define gaiaGetPointXYZ(xyz,v,x,y,z) \ {*x = xyz[(v) * 3]; \ *y = xyz[(v) * 3 + 1]; \ *z = xyz[(v) * 3 + 2];} /** macro setting XYZ coordinates \param xyz pointer [const void *] to COORD mem-array \param v [int] point index [first point has index 0] \param x [double] X coordinate \param y [double] Y coordinate \param z [double] Z coordinate \sa gaiaLineSetPoint, gaiaRingSetPoint \note using this macro on behalf on COORDs not of [XYZ] dims may cause serious problems */ #define gaiaSetPointXYZ(xyz,v,x,y,z) \ {xyz[(v) * 3] = x; \ xyz[(v) * 3 + 1] = y; \ xyz[(v) * 3 + 2] = z;} /** macro extracting XYM coordinates \param xym pointer [const void *] to COORD mem-array \param v [int] point index [first point has index 0] \param x [double *] X coordinate \param y [double *] Y coordinate \param m [double *] M measure \sa gaiaLineGetPoint, gaiaRingGetPoint \note using this macro on behalf of COORDs not of [XYM] dims may cause serious problems */ #define gaiaGetPointXYM(xym,v,x,y,m) \ {*x = xym[(v) * 3]; \ *y = xym[(v) * 3 + 1]; \ *m = xym[(v) * 3 + 2];} /** macro setting XYM coordinates \param xym pointer [const void *] to COORD mem-array \param v [int] point index [first point has index 0] \param x [double] X coordinate \param y [double] Y coordinate \param m [double] M measure \sa gaiaLineSetPoint, gaiaRingSetPoint \note using this macro on behalf on COORDs not of [XYM] dims may cause serious problems */ #define gaiaSetPointXYM(xym,v,x,y,m) \ {xym[(v) * 3] = x; \ xym[(v) * 3 + 1] = y; \ xym[(v) * 3 + 2] = m;} /** macro extracting XYZM coordinates \param xyzm pointer [const void *] to COORD mem-array \param v [int] point index [first point has index 0] \param x [double *] X coordinate \param y [double *] Y coordinate \param z [double *] Z coordinate \param m [double *] M measure \sa gaiaLineGetPoint, gaiaRingGetPoint \note using this macro on behalf of COORDs not of [XYZM] dims may cause serious problems */ #define gaiaGetPointXYZM(xyzm,v,x,y,z,m) \ {*x = xyzm[(v) * 4]; \ *y = xyzm[(v) * 4 + 1]; \ *z = xyzm[(v) * 4 + 2]; \ *m = xyzm[(v) * 4 + 3];} /** macro setting XYZM coordinates \param xyzm pointer [const void *] to COORD mem-array \param v [int] point index [first point has index 0] \param x [double] X coordinate \param y [double] Y coordinate \param z [double] Z coordinate \param m [double] M measure \sa gaiaLineSetPoint, gaiaRingSetPoint \note using this macro on behalf on COORDs not of [XYZM] dims may cause serious problems */ #define gaiaSetPointXYZM(xyzm,v,x,y,z,m) \ {xyzm[(v) * 4] = x; \ xyzm[(v) * 4 + 1] = y; \ xyzm[(v) * 4 + 2] = z; \ xyzm[(v) * 4 + 3] = m;} #ifdef __cplusplus } #endif #endif /* _GG_CONST_H */ libspatialite-4.1.1/src/headers/spatialite/sqlite.h0000664000175000017500000000445612163502133017306 00000000000000/* sqlite.h -- supporting SQLite headers in a flexible way version 4.1, 2013 May 8 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2013 the Initial Developer. All Rights Reserved. Contributor(s): Pepijn Van Eeckhoudt Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #ifndef _SPATIALITE_SQLITE_H #define _SPATIALITE_SQLITE_H #ifdef LOADABLE_EXTENSION /* loadable-extension only */ #ifdef SPL_AMALGAMATION /* spatialite-amalgamation */ #include #else #include #endif /* We can't use SQLITE_EXTENSION_INIT1 as this is an intializer in recent version of sqlite */ extern const sqlite3_api_routines *sqlite3_api; #else /* ordinary lib */ #ifdef SPL_AMALGAMATION /* spatialite-amalgamation */ #include #else #include #endif #endif #endif libspatialite-4.1.1/src/headers/spatialite/debug.h0000664000175000017500000000504712163502133017070 00000000000000/* debug.h -- abstract defs for standard output functions version 4.1, 2013 May 8 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2012-2013 the Initial Developer. All Rights Reserved. Contributor(s): Pepijn Van Eeckhoudt Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #ifndef SPATIALITE_DEBUG_H #define SPATIALITE_DEBUG_H #ifdef __ANDROID__ /* Android specific */ #include #ifdef DEBUG #define spatialite_d(...) #else #define spatialite_d(...) __android_log_print(ANDROID_LOG_DEBUG, "Spatialite", __VA_ARGS__) #endif #define spatialite_i(...) __android_log_print(ANDROID_LOG_INFO, "Spatialite", __VA_ARGS__) #define spatialite_e(...) __android_log_print(ANDROID_LOG_ERROR, "Spatialite", __VA_ARGS__) #else /* any other standard platform (Win, Linux, Mac) */ #include #ifdef DEBUG #define spatialite_d(...) #else #define spatialite_d(...) fprintf(stdout, __VA_ARGS__) #endif #define spatialite_i(...) fprintf(stdout, __VA_ARGS__) #define spatialite_e(...) fprintf(stderr, __VA_ARGS__) #endif /* platform specific */ #endif libspatialite-4.1.1/src/headers/spatialite/geopackage.h0000664000175000017500000000677312163502133020077 00000000000000/* GeoPackage extensions for SpatiaLite / SQLite Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage Extensions The Initial Developer of the Original Code is Brad Hards (bradh@frogmouth.net) Portions created by the Initial Developer are Copyright (C) 2012 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /** \file gaiaexif.h EXIF/image: supporting functions and constants */ #ifndef DOXYGEN_SHOULD_SKIP_THIS #ifdef DLL_EXPORT #define GEOPACKAGE_DECLARE __declspec(dllexport) #else #define GEOPACKAGE_DECLARE extern #endif #endif #ifndef _GEOPACKAGE_H #ifndef DOXYGEN_SHOULD_SKIP_THIS #define _GEOPACKAGE_H #endif #include "sqlite.h" #ifdef __cplusplus extern "C" { #endif /* Internal geopackage SQL function implementation */ GEOPACKAGE_DECLARE void fnct_gpkgCreateBaseTables (sqlite3_context * context, int argc, sqlite3_value ** argv); GEOPACKAGE_DECLARE void fnct_gpkgCreateTilesTable (sqlite3_context * context, int argc, sqlite3_value ** argv); GEOPACKAGE_DECLARE void fnct_gpkgCreateTilesZoomLevel (sqlite3_context * context, int argc, sqlite3_value ** argv); GEOPACKAGE_DECLARE void fnct_gpkgAddTileTriggers (sqlite3_context * context, int argc, sqlite3_value ** argv); GEOPACKAGE_DECLARE void fnct_gpkgAddRasterTriggers (sqlite3_context * context, int argc, sqlite3_value ** argv); GEOPACKAGE_DECLARE void fnct_gpkgAddRtMetadataTriggers (sqlite3_context * context, int argc, sqlite3_value ** argv); GEOPACKAGE_DECLARE void fnct_gpkgGetNormalRow (sqlite3_context * context, int argc, sqlite3_value ** argv); GEOPACKAGE_DECLARE void fnct_gpkgGetNormalZoom (sqlite3_context * context, int argc, sqlite3_value ** argv); GEOPACKAGE_DECLARE void fnct_gpkgGetImageType (sqlite3_context * context, int argc, sqlite3_value ** argv); GEOPACKAGE_DECLARE void fnct_gpkgPointToTile (sqlite3_context * context, int argc, sqlite3_value ** argv); /* Markers for unused arguments / variable */ #if __GNUC__ #define UNUSED __attribute__ ((__unused__)) #else #define UNUSED #endif #ifdef __cplusplus } #endif #endif libspatialite-4.1.1/src/headers/spatialite/gg_xml.h0000664000175000017500000006157412163502133017266 00000000000000/* gg_xml.h -- Gaia common support for XML documents version 4.1, 2013 May 8 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /** \file gg_xml.h Geometry handling functions: XML document */ #ifndef _GG_XML_H #ifndef DOXYGEN_SHOULD_SKIP_THIS #define _GG_XML_H #endif #ifdef __cplusplus extern "C" { #endif /* constant values for XmlBLOB */ /** XmlBLOB internal marker: START */ #define GAIA_XML_START 0x00 /** XmlBLOB internal marker: END */ #define GAIA_XML_END 0xDD /** XmlBLOB internal marker: HEADER */ #define GAIA_XML_HEADER 0xAB /** XmlBLOB internal marker: SCHEMA */ #define GAIA_XML_SCHEMA 0xBA /** XmlBLOB internal marker: FILEID */ #define GAIA_XML_FILEID 0xCA /** XmlBLOB internal marker: PARENTID */ #define GAIA_XML_PARENTID 0xDA /** XmlBLOB internal marker: TITLE */ #define GAIA_XML_TITLE 0xDB /** XmlBLOB internal marker: ABSTRACT */ #define GAIA_XML_ABSTRACT 0xDC /** XmlBLOB internal marker: GEOMETRY */ #define GAIA_XML_GEOMETRY 0xDD /** XmlBLOB internal marker: CRC32 */ #define GAIA_XML_CRC32 0xBC /** XmlBLOB internal marker: PAYLOAD */ #define GAIA_XML_PAYLOAD 0xCB /* bitmasks for XmlBLOB-FLAG */ /** XmlBLOB FLAG - LITTLE_ENDIAN bitmask */ #define GAIA_XML_LITTLE_ENDIAN 0x01 /** XmlBLOB FLAG - COMPRESSED bitmask */ #define GAIA_XML_COMPRESSED 0x02 /** XmlBLOB FLAG - VALIDATED bitmask */ #define GAIA_XML_VALIDATED 0x04 /** XmlBLOB FLAG - ISO METADATA bitmask */ #define GAIA_XML_ISO_METADATA 0x80 /** XmlBLOB FLAG - SLDSE VECTOR STYLE bitmask */ #define GAIA_XML_SLD_SE_RASTER_STYLE 0x10 /** XmlBLOB FLAG - SLDSE VECTOR STYLE bitmask */ #define GAIA_XML_SLD_SE_VECTOR_STYLE 0x40 /** XmlBLOB FLAG - SVG bitmask */ #define GAIA_XML_SVG 0x20 /* function prototypes */ #ifndef DOXYGEN_SHOULD_IGNORE_THIS #ifdef ENABLE_LIBXML2 /* LIBXML2 enabled: supporting XML documents */ #endif /** return the LIBXML2 version string \return a text string identifying the current LIBXML2 version \note the version string corresponds to dynamically allocated memory: so you are responsible to free() it [unless SQLite will take care of memory cleanup via buffer binding]. */ GAIAGEO_DECLARE char *gaia_libxml2_version (void); /** Creates an XmlBLOB buffer \param p_cache a memory pointer returned by spatialite_alloc_connection() \param xml pointer to the XML document (XmlBLOB payload). \param xml_len lenght of the XML document (in bytes). \param compressed if TRUE the returned XmlBLOB will be zip-compressed. \param schemaURI if not NULL the XML document will be assumed to be valid only if it succesfully passes a formal Schema valitadion. \param result on completion will containt a pointer to XmlBLOB: NULL on failure. \param size on completion this variable will contain the XmlBLOB's size (in bytes) \param parsing_errors on completion this variable will contain all error/warning messages emitted during the XML Parsing step. Can be set to NULL so to ignore any message. \param schema_validation_errors on completion this variable will contain all error/warning messages emitted during the XML Schema Validation step. Can be set to NULL so to ignore any message. \sa gaiaXmlFromBlob, gaiaXmlTextFromBlob, gaiaXmlBlobGetLastParseError, gaiaXmlBlobGetLastValidateError \note the XmlBLOB buffer corresponds to dynamically allocated memory: so you are responsible to free() it [unless SQLite will take care of memory cleanup via buffer binding]. */ GAIAGEO_DECLARE void gaiaXmlToBlob (void *p_cache, const unsigned char *xml, int xml_len, int compressed, const char *schemaURI, unsigned char **result, int *size, char **parsing_errors, char **schema_validation_errors); /** Extract an XMLDocument from within an XmlBLOB buffer \param blob pointer to the XmlBLOB buffer. \param size XmlBLOB's size (in bytes). \param indent if a negative value is passed the XMLDocument will be extracted exactly as it was when loaded. Otherwise it will be properly formatted using the required intenting (max. 8); ZERO means that the whole XML Document will consist of a single line. \return the pointer to the newly created XMLDocument buffer: NULL on failure \sa gaiaXmlToBlob, gaiaXmlFromBlob \note the returned XMLDocument will always be encoded as UTF-8 (irrespectively from the internal encoding declaration), so to allow any further processing as SQLite TEXT. \note the XMLDocument buffer corresponds to dynamically allocated memory: so you are responsible to free() it before or after. */ GAIAGEO_DECLARE char *gaiaXmlTextFromBlob (const unsigned char *blob, int size, int indent); /** Extract an XMLDocument from within an XmlBLOB buffer \param blob pointer to the XmlBLOB buffer. \param size XmlBLOB's size (in bytes). \param indent if a negative value is passed the XMLDocument will be extracted exactly as it was when loaded. Otherwise it will be properly formatted using the required intenting (max. 8); ZERO means that the whole XML Document will consist of a single line. \param result pointer to the memory buffer containing the XML Document \param res_size dimension (in bytes) of the XML Document memory buffer (both values will be passed back after succesful completion). \sa gaiaXmlToBlob, gaiaXmlTextFromBlob \note the returned XMLDocument will always respect the internal encoding declaration, and may not support any further processing as SQLite TEXT if it's not UTF-8. \note the XMLDocument buffer corresponds to dynamically allocated memory: so you are responsible to free() it before or after. */ GAIAGEO_DECLARE void gaiaXmlFromBlob (const unsigned char *blob, int size, int indent, unsigned char **result, int *res_size); /** Checks if a BLOB actually is a valid XmlBLOB buffer \param blob pointer to the XmlBLOB buffer. \param size XmlBLOB's size (in bytes). \return TRUE or FALSE \sa gaiaIsCompressedXmlBlob, gaiaIsSchemaValidatedXmlBlob, gaiaIsIsoMetadataXmlBlob, gaiaIsSldSeVectorStyleXmlBlob, gaiaIsSldSeRasterStyleXmlBlob, gaiaIsSvgXmlBlob */ GAIAGEO_DECLARE int gaiaIsValidXmlBlob (const unsigned char *blob, int size); /** Checks if a valid XmlBLOB buffer is compressed or not \param blob pointer to the XmlBLOB buffer. \param size XmlBLOB's size (in bytes). \return TRUE or FALSE if the BLOB actually is a valid XmlBLOB; -1 in any other case. \sa gaiaIsValidXmlBlob, gaiaIsSchemaValidatedXmlBlob, gaiaIsIsoMetadataXmlBlob, gaiaIsSldSeVectorStyleXmlBlob, gaiaIsSldSeRasterStyleXmlBlob, gaiaIsSvgXmlBlob */ GAIAGEO_DECLARE int gaiaIsCompressedXmlBlob (const unsigned char *blob, int size); /** Checks if a valid XmlBLOB buffer does contain an ISO Metadata or not \param blob pointer to the XmlBLOB buffer. \param size XmlBLOB's size (in bytes). \return TRUE or FALSE if the BLOB actually is a valid XmlBLOB; -1 in any other case. \sa gaiaIsValidXmlBlob, gaiaIsSchemaValidatedXmlBlob, gaiaIsCompressedXmlBlob, gaiaIsSldSeVectorStyleXmlBlob, gaiaIsSldSeRasterStyleXmlBlob, gaiaIsSvgXmlBlob */ GAIAGEO_DECLARE int gaiaIsIsoMetadataXmlBlob (const unsigned char *blob, int size); /** Checks if a valid XmlBLOB buffer does contain an SLD/SE Style or not \param blob pointer to the XmlBLOB buffer. \param size XmlBLOB's size (in bytes). \return TRUE or FALSE if the BLOB actually is a valid XmlBLOB; -1 in any other case. \sa gaiaIsValidXmlBlob, gaiaIsSchemaValidatedXmlBlob, gaiaIsCompressedXmlBlob, gaiaIsIsoMetadataXmlBlob, gaiaIsSldSeRasterStyleXmlBlob, gaiaIsSvgXmlBlob */ GAIAGEO_DECLARE int gaiaIsSldSeVectorStyleXmlBlob (const unsigned char *blob, int size); /** Checks if a valid XmlBLOB buffer does contain an SLD/SE Style or not \param blob pointer to the XmlBLOB buffer. \param size XmlBLOB's size (in bytes). \return TRUE or FALSE if the BLOB actually is a valid XmlBLOB; -1 in any other case. \sa gaiaIsValidXmlBlob, gaiaIsSchemaValidatedXmlBlob, gaiaIsCompressedXmlBlob, gaiaIsIsoMetadataXmlBlob, gaiaIsSldSeVectorStyleXmlBlob, gaiaIsSvgXmlBlob */ GAIAGEO_DECLARE int gaiaIsSldSeRasterStyleXmlBlob (const unsigned char *blob, int size); /** Checks if a valid XmlBLOB buffer does contain an SVG Symbol or not \param blob pointer to the XmlBLOB buffer. \param size XmlBLOB's size (in bytes). \return TRUE or FALSE if the BLOB actually is a valid XmlBLOB; -1 in any other case. \sa gaiaIsValidXmlBlob, gaiaIsSchemaValidatedXmlBlob, gaiaIsCompressedXmlBlob, gaiaIsIsoMetadataXmlBlob, gaiaIsSldSeVectorStyleXmlBlob, gaiaIsSldSeRasterStyleXmlBlob */ GAIAGEO_DECLARE int gaiaIsSvgXmlBlob (const unsigned char *blob, int size); /** Return another XmlBLOB buffer compressed / uncompressed \param blob pointer to the input XmlBLOB buffer. \param in_size input XmlBLOB's size (in bytes). \param compressed if TRUE the returned XmlBLOB will be zip-compressed. \param result on completion will containt a pointer to the output XmlBLOB: NULL on failure. \param out_size on completion this variable will contain the output XmlBLOB's size (in bytes) \sa gaiaXmlToBlob, gaiaIsCompressedXmlBlob \note the XmlBLOB buffer corresponds to dynamically allocated memory: so you are responsible to free() it [unless SQLite will take care of memory cleanup via buffer binding]. */ GAIAGEO_DECLARE void gaiaXmlBlobCompression (const unsigned char *blob, int in_size, int compressed, unsigned char **result, int *out_size); /** Checks if a valid XmlBLOB buffer has succesfully passed a formal Schema validation or not \param blob pointer to the XmlBLOB buffer. \param size XmlBLOB's size (in bytes). \return TRUE or FALSE if the BLOB actually is a valid XmlBLOB but not schema-validated; -1 in any other case. \sa gaiaIsValidXmlBlob, gaiaIsSvgXmlBlob, gaiaIsCompressedXmlBlob, gaiaIsIsoMetadataXmlBlob, gaiaIsSldSeVectorStyleXmlBlob, gaiaIsSldSeRasterStyleXmlBlob */ GAIAGEO_DECLARE int gaiaIsSchemaValidatedXmlBlob (const unsigned char *blob, int size); /** Return the XMLDocument size (in bytes) from a valid XmlBLOB buffer \param blob pointer to the XmlBLOB buffer. \param size XmlBLOB's size (in bytes). \return the XMLDocument size (in bytes) for any valid XmlBLOB; -1 if the BLOB isn't a valid XmlBLOB. */ GAIAGEO_DECLARE int gaiaXmlBlobGetDocumentSize (const unsigned char *blob, int size); /** Return the SchemaURI from a valid XmlBLOB buffer \param blob pointer to the XmlBLOB buffer. \param size XmlBLOB's size (in bytes). \return the SchemaURI for any valid XmlBLOB containing a SchemaURI; NULL in any other case. \sa gaiaXmlGetInternalSchemaURI \note the returned SchemaURI corresponds to dynamically allocated memory: so you are responsible to free() it before or after. */ GAIAGEO_DECLARE char *gaiaXmlBlobGetSchemaURI (const unsigned char *blob, int size); /** Return the Internal SchemaURI from a valid XmlDocument \param p_cache a memory pointer returned by spatialite_alloc_connection() \param xml pointer to the XML document \param xml_len lenght of the XML document (in bytes). \return the SchemaURI eventually defined within a valid XMLDocument; NULL if the XMLDocument is invalid, or if it doesn't contain any SchemaURI. \sa gaiaXmlBlobGetSchemaURI \note the returned SchemaURI corresponds to dynamically allocated memory: so you are responsible to free() it before or after. */ GAIAGEO_DECLARE char *gaiaXmlGetInternalSchemaURI (void *p_cache, const unsigned char *xml, int xml_len); /** Return the FileIdentifier from a valid XmlBLOB buffer \param blob pointer to the XmlBLOB buffer. \param size XmlBLOB's size (in bytes). \return the FileIdentifier for any valid XmlBLOB containing a FileIdentifier; NULL in any other case. \sa gaiaIsIsoMetadataXmlBlob, gaiaXmlBlobSetFileId, gaiaXmlBlobAddFileId \note the returned FileIdentifier corresponds to dynamically allocated memory: so you are responsible to free() it before or after. */ GAIAGEO_DECLARE char *gaiaXmlBlobGetFileId (const unsigned char *blob, int size); /** Return the ParentIdentifier from a valid XmlBLOB buffer \param blob pointer to the XmlBLOB buffer. \param size XmlBLOB's size (in bytes). \return the ParentIdentifier for any valid XmlBLOB containing a ParentIdentifier; NULL in any other case. \sa gaiaIsIsoMetadataXmlBlob, gaiaXmlBlobSetParentId, gaiaXmlBlobAddParentId \note the returned ParentIdentifier corresponds to dynamically allocated memory: so you are responsible to free() it before or after. */ GAIAGEO_DECLARE char *gaiaXmlBlobGetParentId (const unsigned char *blob, int size); /** Return a new XmlBLOB (ISO Metadata) by replacing the FileId value \param p_cache a memory pointer returned by spatialite_alloc_connection() \param blob pointer to the input XmlBLOB buffer. \param size input XmlBLOB's size (in bytes). \param identifier the new FileId value to be set. \param new_blob on completion will contain a pointer to the output XmlBLOB buffer. \param new_size on completion will containg the output XmlBlob's size (in bytes). \return TRUE for success; FALSE for any failure cause. \sa gaiaIsIsoMetadataXmlBlob, gaiaXmlBlobGetFileId, gaiaXmlBlobAddFileId \note the output XmlBLOB corresponds to dynamically allocated memory: so you are responsible to free() it before or after. */ GAIAGEO_DECLARE int gaiaXmlBlobSetFileId (void *p_cache, const unsigned char *blob, int size, const char *identifier, unsigned char **new_blob, int *new_size); /** Return a new XmlBLOB (ISO Metadata) by replacing the ParentId value \param p_cache a memory pointer returned by spatialite_alloc_connection() \param blob pointer to the inputXmlBLOB buffer. \param size input XmlBLOB's size (in bytes). \param identifier the new ParentId value to be set. \param new_blob on completion will contain a pointer to the output XmlBLOB buffer. \param new_size on completion will containg the output XmlBlob's size (in bytes). \return TRUE for success; FALSE for any failure cause. \sa gaiaIsIsoMetadataXmlBlob, gaiaXmlBlobGetParentId, gaiaXmlBlobAddParentId \note the returned XmlBLOB corresponds to dynamically allocated memory: so you are responsible to free() it before or after. */ GAIAGEO_DECLARE int gaiaXmlBlobSetParentId (void *p_cache, const unsigned char *blob, int size, const char *identifier, unsigned char **new_blob, int *new_size); /** Return a new XmlBLOB (ISO Metadata) by inserting a FileId value \param p_cache a memory pointer returned by spatialite_alloc_connection() \param blob pointer to the input XmlBLOB buffer. \param size input XmlBLOB's size (in bytes). \param identifier the new FileId value to be inserted. \param ns_id prefix corresponding to FileIdentifier NameSpace (may be NULL) \param uri_id URI corresponding to the FileIdentifier NameSpace (may be NULL) \param ns_charstr prefix corresponding to CharacterString NameSpace (may be NULL) \param uri_charstr URI corresponding to CharacterString NameSpace (may be NULL) \param new_blob on completion will contain a pointer to the output XmlBLOB buffer. \param new_size on completion will containg the output XmlBlob's size (in bytes). \return TRUE for success; FALSE for any failure cause. \sa gaiaIsIsoMetadataXmlBlob, gaiaXmlBlobGetFileId, gaiaXmlBlobSetFileId \note the output XmlBLOB corresponds to dynamically allocated memory: so you are responsible to free() it before or after. */ GAIAGEO_DECLARE int gaiaXmlBlobAddFileId (void *p_cache, const unsigned char *blob, int size, const char *identifier, const char *ns_id, const char *uri_id, const char *ns_charstr, const char *uri_charstr, unsigned char **new_blob, int *new_size); /** Return a new XmlBLOB (ISO Metadata) by inserting a ParentId value \param p_cache a memory pointer returned by spatialite_alloc_connection() \param blob pointer to the inputXmlBLOB buffer. \param size input XmlBLOB's size (in bytes). \param identifier the new ParentId value to be inserted. \param ns_id prefix corresponding to FileIdentifier NameSpace (may be NULL) \param uri_id URI corresponding to the FileIdentifier NameSpace (may be NULL) \param ns_charstr prefix corresponding to CharacterString NameSpace (may be NULL) \param uri_charstr URI corresponding to CharacterString NameSpace (may be NULL) \param new_blob on completion will contain a pointer to the output XmlBLOB buffer. \param new_size on completion will containg the output XmlBlob's size (in bytes). \return TRUE for success; FALSE for any failure cause. \sa gaiaIsIsoMetadataXmlBlob, gaiaXmlBlobGetParentId, gaiaXmlBlobSetParentId \note the returned XmlBLOB corresponds to dynamically allocated memory: so you are responsible to free() it before or after. */ GAIAGEO_DECLARE int gaiaXmlBlobAddParentId (void *p_cache, const unsigned char *blob, int size, const char *identifier, const char *ns_id, const char *uri_id, const char *ns_charstr, const char *uri_charstr, unsigned char **new_blob, int *new_size); /** Return the Title from a valid XmlBLOB buffer \param blob pointer to the XmlBLOB buffer. \param size XmlBLOB's size (in bytes). \return the Title for any valid XmlBLOB containing a Title; NULL in any other case. \sa gaiaIsIsoMetadataXmlBlob, gaiaIsSldSeVectorStyleXmlBlob, gaiaIsSldSeRasterStyleXmlBlob \note the returned Title corresponds to dynamically allocated memory: so you are responsible to free() it before or after. */ GAIAGEO_DECLARE char *gaiaXmlBlobGetTitle (const unsigned char *blob, int size); /** Return the Abstract from a valid XmlBLOB buffer \param blob pointer to the XmlBLOB buffer. \param size XmlBLOB's size (in bytes). \return the Abstract for any valid XmlBLOB containing an Abstract; NULL in any other case. \sa gaiaIsIsoMetadataXmlBlob, gaiaIsSldSeVectorStyleXmlBlob, gaiaIsSldSeRasterStyleXmlBlob \note the returned Abstract corresponds to dynamically allocated memory: so you are responsible to free() it before or after. */ GAIAGEO_DECLARE char *gaiaXmlBlobGetAbstract (const unsigned char *blob, int size); /** Return the Geometry Buffer from a valid XmlBLOB buffer \param blob pointer to the XmlBLOB buffer. \param size XmlBLOB's size (in bytes). \param blob_geom on completion this variable will contain a pointer to the returned Geometry Buffer (NULL if no Geometry was defined within the XmlBLOB) \param blob_size on completion this variable will contain the size (in bytes) of the returned Geometry Buffer \sa gaiaIsIsoMetadataXmlBlob \note the returned Geometry Buffer corresponds to dynamically allocated memory: so you are responsible to free() it before or after. */ GAIAGEO_DECLARE void gaiaXmlBlobGetGeometry (const unsigned char *blob, int size, unsigned char **blob_geom, int *blob_size); /** Return the Charset Encoding from a valid XmlBLOB buffer \param blob pointer to the XmlBLOB buffer. \param size XmlBLOB's size (in bytes). \return the Charset Encoding for any valid XmlBLOB explicitly defining an Encoding; NULL in any other case. \note the returned Encoding corresponds to dynamically allocated memory: so you are responsible to free() it before or after. */ GAIAGEO_DECLARE char *gaiaXmlBlobGetEncoding (const unsigned char *blob, int size); /** Return the most recent XML Parse error/warning (if any) \param ptr a memory pointer returned by spatialite_alloc_connection() \return the most recent XML Parse error/warning message (if any); NULL in any other case. \sa gaiaXmlBlobGetLastValidateError, gaiaIsValidXPathExpression, gaiaXmlBlobGetLastXPathError \note the returned error/warning message corresponds to dynamically allocated memory: so you are responsible to free() it before or after. */ GAIAGEO_DECLARE char *gaiaXmlBlobGetLastParseError (void *p_cache); /** Return the most recent XML Validate error/warning (if any) \param p_cache a memory pointer returned by spatialite_alloc_connection() \return the most recent XML Validate error/warning message (if any); NULL in any other case. \sa gaiaXmlBlobGetLastParseError, gaiaIsValidXPathExpression, gaiaXmlBlobGetLastXPathError \note the returned error/warning message corresponds to dynamically allocated memory: so you are responsible to free() it before or after. */ GAIAGEO_DECLARE char *gaiaXmlBlobGetLastValidateError (void *p_cache); /** Checks if a Text string could be a valid XPathExpression \param p_cache a memory pointer returned by spatialite_alloc_connection() \param xpath_expr pointer to the XPathExpression to be checked. \return TRUE or FALSE if the Text string actually is a valid XPathExpression; -1 in any other case. \sa gaiaXmlBlobGetLastXPathError */ GAIAGEO_DECLARE int gaiaIsValidXPathExpression (void *p_cache, const char *xpath_expr); /** Return the most recent XPath error/warning (if any) \param p_cache a memory pointer returned by spatialite_alloc_connection() \return the most recent XPath error/warning message (if any); NULL in any other case. \sa gaiaXmlBlobGetLastParseError, gaiaXmlBlobGetLastValidateError, gaiaIsValidXPathExpression \note the returned error/warning message corresponds to dynamically allocated memory: so you are responsible to free() it before or after. */ GAIAGEO_DECLARE char *gaiaXmlBlobGetLastXPathError (void *p_cache); /** Load an external XML Document \param path_or_url pointer to the external XML Document (could be a pathname or an URL). \param result on completion will containt a pointer to a BLOB: NULL on failure. \param size on completion this variable will contain the BLOB's size (in bytes). \param parsing_errors on completion this variable will contain all error/warning messages emitted during the XML Parsing step. Can be set to NULL so to ignore any message. \sa gaiaXmlFromBlob, gaiaXmlStore \note the BLOB buffer corresponds to dynamically allocated memory: so you are responsible to free() it [unless SQLite will take care of memory cleanup via buffer binding]. */ GAIAGEO_DECLARE int gaiaXmlLoad (void *p_cache, const char *path_or_url, unsigned char **result, int *size, char **parsing_errors); /** Stores an external XML Document \param blob pointer to the XmlBLOB buffer. \param size XmlBLOB's size (in bytes). \param path pathname of the export file \param indent if a negative value is passed the XMLDocument will be extracted exactly as it was when loaded. Otherwise it will be properly formatted using the required intenting (max. 8); ZERO means that the whole XML Document will consist of a single line. \sa gaiaXmlToBlob, gaiaXmlTextFromBlob \note the returned XMLDocument will always respect the internal encoding declaration, and may not support any further processing as SQLite TEXT if it's not UTF-8. \note the XMLDocument buffer corresponds to dynamically allocated memory: so you are responsible to free() it before or after. \sa gaiaXmlFromBlob, gaiaXmlLoad \note the BLOB buffer corresponds to dynamically allocated memory: so you are responsible to free() it [unless SQLite will take care of memory cleanup via buffer binding]. */ GAIAGEO_DECLARE int gaiaXmlStore (const unsigned char *blob, int size, const char *path, int indent); #endif /* end LIBXML2: supporting XML documents */ #ifdef __cplusplus } #endif #endif /* _GG_XML_H */ libspatialite-4.1.1/src/headers/spatialite/spatialite.h0000664000175000017500000000422512163502133020136 00000000000000/* spatialite.h -- Gaia support for SQLite extensions version 4.1, 2013 May 8 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ int virtualshape_extension_init (sqlite3 * db); int virtualdbf_extension_init (sqlite3 * db); int virtualtext_extension_init (sqlite3 * db); int virtualXL_extension_init (sqlite3 * db); int virtualnetwork_extension_init (sqlite3 * db); int virtualfdo_extension_init (sqlite3 * db); int mbrcache_extension_init (sqlite3 * db); int virtual_spatialindex_extension_init (sqlite3 * db); int virtual_xpath_extension_init (sqlite3 * db, void *p_cache); libspatialite-4.1.1/src/headers/Makefile.in0000664000175000017500000003707512163502133015545 00000000000000# Makefile.in generated by automake 1.12.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/headers DIST_COMMON = $(nobase_include_HEADERS) $(noinst_HEADERS) \ $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(includedir)" HEADERS = $(nobase_include_HEADERS) $(noinst_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ noinst_HEADERS = spatialite_private.h nobase_include_HEADERS = spatialite.h \ spatialite/gaiaexif.h \ spatialite/gaiaaux.h \ spatialite/gaiageo.h \ spatialite/gg_const.h \ spatialite/gg_structs.h \ spatialite/gg_core.h \ spatialite/gg_mbr.h \ spatialite/gg_formats.h \ spatialite/gg_dynamic.h \ spatialite/gg_advanced.h \ spatialite/gg_xml.h \ spatialite/gg_wfs.h \ spatialite/gg_dxf.h \ spatialite/spatialite.h \ spatialite/sqlite.h \ spatialite/debug.h \ spatialite/geopackage.h all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/headers/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/headers/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-nobase_includeHEADERS: $(nobase_include_HEADERS) @$(NORMAL_INSTALL) @list='$(nobase_include_HEADERS)'; test -n "$(includedir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \ $(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \ fi; \ $(am__nobase_list) | while read dir files; do \ xfiles=; for file in $$files; do \ if test -f "$$file"; then xfiles="$$xfiles $$file"; \ else xfiles="$$xfiles $(srcdir)/$$file"; fi; done; \ test -z "$$xfiles" || { \ test "x$$dir" = x. || { \ echo " $(MKDIR_P) '$(DESTDIR)$(includedir)/$$dir'"; \ $(MKDIR_P) "$(DESTDIR)$(includedir)/$$dir"; }; \ echo " $(INSTALL_HEADER) $$xfiles '$(DESTDIR)$(includedir)/$$dir'"; \ $(INSTALL_HEADER) $$xfiles "$(DESTDIR)$(includedir)/$$dir" || exit $$?; }; \ done uninstall-nobase_includeHEADERS: @$(NORMAL_UNINSTALL) @list='$(nobase_include_HEADERS)'; test -n "$(includedir)" || list=; \ $(am__nobase_strip_setup); files=`$(am__nobase_strip)`; \ dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir) ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: $(HEADERS) $(SOURCES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: for dir in "$(DESTDIR)$(includedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-nobase_includeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-nobase_includeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool cscopelist ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-nobase_includeHEADERS \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-nobase_includeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libspatialite-4.1.1/src/headers/spatialite.h0000664000175000017500000006461312163502133016006 00000000000000/* spatialite.h -- Gaia spatial support for SQLite version 4.1, 2013 May 8 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /** \file spatialite.h Main SpatiaLite header file */ #ifndef DOXYGEN_SHOULD_SKIP_THIS #ifdef _WIN32 #ifdef DLL_EXPORT #define SPATIALITE_DECLARE __declspec(dllexport) #else #define SPATIALITE_DECLARE extern #endif #else #define SPATIALITE_DECLARE __attribute__ ((visibility("default"))) #endif #endif #ifndef _SPATIALITE_H #ifndef DOXYGEN_SHOULD_SKIP_THIS #define _SPATIALITE_H #endif #ifdef __cplusplus extern "C" { #endif #include /** Return the current library version. */ SPATIALITE_DECLARE const char *spatialite_version (void); /** Initializes the internal memory block supporting each connection \sa spatialite_init_ex, spatialite_cleanup_ex */ SPATIALITE_DECLARE void *spatialite_alloc_connection (void); /** Initializes the library. This function is now \b DEPRECATED because is not reentrant (not thread safe); use spatialite_init_ex() for all new development. \param verbose if TRUE a short start-up message is shown on stderr \sa spatialite_cleanup, spatialite_init_ex \note You absolutely must invoke this function before attempting to perform any other SpatiaLite's call. */ SPATIALITE_DECLARE void spatialite_init (int verbose); /** Initializes the library. \param db_handle handle to the current SQLite connection \param ptr a memory pointer returned by spatialite_alloc_connection() \param verbose if TRUE a short start-up message is shown on stderr \sa spatialite_alloc_connection, spatialite_cleanup_ex, spatialite_init \note You absolutely must invoke this function before attempting to perform any other SpatiaLite's call. */ SPATIALITE_DECLARE void spatialite_init_ex (sqlite3 * db_handle, void *ptr, int verbose); /** Initializes the GEOS library. \note You are never supposed to invoke this function (internally handled). */ SPATIALITE_DECLARE void spatialite_init_geos (void); /** Cleanup spatialite This function is now \b DEPRECATED; use spatialite_cleanup_ex() for all new development. This function performs general cleanup, essentially undoing the effect of spatialite_init(). \sa spatialite_init */ SPATIALITE_DECLARE void spatialite_cleanup (void); /** Cleanup spatialite This function performs general cleanup, essentially undoing the effect of spatialite_init_ex(). \param ptr the same memory pointer passed to the corresponding call to spatialite_init_ex() and returned by spatialite_alloc_connection() \sa spatialite_init_ex, spatialite_alloc_connection */ SPATIALITE_DECLARE void spatialite_cleanup_ex (void *ptr); /** Dumps a full geometry-table into an external Shapefile \param sqlite handle to current DB connection \param table the name of the table to be exported \param column the name of the geometry column \param shp_path pathname of the Shapefile to be exported (no suffix) \param charset a valid GNU ICONV charset to be used for DBF text strings \param geom_type "POINT", "LINESTRING", "POLYGON", "MULTIPOLYGON" or NULL \param verbose if TRUE a short report is shown on stderr \param rows on completion will contain the total number of actually exported rows \param err_msg on completion will contain an error message (if any) \return 0 on failure, any other value on success */ SPATIALITE_DECLARE int dump_shapefile (sqlite3 * sqlite, char *table, char *column, char *shp_path, char *charset, char *geom_type, int verbose, int *rows, char *err_msg); /** Loads an external Shapefile into a newly created table \param sqlite handle to current DB connection \param shp_path pathname of the Shapefile to be imported (no suffix) \param table the name of the table to be created \param charset a valid GNU ICONV charset to be used for DBF text strings \param srid the SRID to be set for Geometries \param column the name of the geometry column \param coerce2d if TRUE any Geometry will be casted to 2D [XY] \param compressed if TRUE compressed Geometries will be created \param verbose if TRUE a short report is shown on stderr \param spatial_index if TRUE an R*Tree Spatial Index will be created \param rows on completion will contain the total number of actually exported rows \param err_msg on completion will contain an error message (if any) \return 0 on failure, any other value on success \sa load_shapefile_ex \note this function simply calls load_shapefile_ex by passing implicit gype="AUTO" and pk_column=NULL arguments */ SPATIALITE_DECLARE int load_shapefile (sqlite3 * sqlite, char *shp_path, char *table, char *charset, int srid, char *column, int coerce2d, int compressed, int verbose, int spatial_index, int *rows, char *err_msg); /** Loads an external Shapefile into a newly created table \param sqlite handle to current DB connection \param shp_path pathname of the Shapefile to be imported (no suffix) \param table the name of the table to be created \param charset a valid GNU ICONV charset to be used for DBF text strings \param srid the SRID to be set for Geometries \param geo_column the name of the geometry column \param gtype expected to be one of: "LINESTRING", "LINESTRINGZ", "LINESTRINGM", "LINESTRINGZM", "MULTILINESTRING", "MULTILINESTRINGZ", "MULTILINESTRINGM", "MULTILINESTRINGZM", "POLYGON", "POLYGONZ", "POLYGONM", "POLYGONZM", "MULTIPOLYGON", "MULTIPOLYGONZ", "MULTIPOLYGONM", "MULTIPOLYGONZM" or "AUTO". \param pk_column name of the Primary Key column; if NULL or mismatching then "PK_UID" will be assumed by default. \param coerce2d if TRUE any Geometry will be casted to 2D [XY] \param compressed if TRUE compressed Geometries will be created \param verbose if TRUE a short report is shown on stderr \param spatial_index if TRUE an R*Tree Spatial Index will be created \param rows on completion will contain the total number of actually exported rows \param err_msg on completion will contain an error message (if any) \return 0 on failure, any other value on success \sa load_shapefile \note the Shapefile format doesn't supports any distinction between LINESTRINGs and MULTILINESTRINGs, or between POLYGONs and MULTIPOLYGONs; as does not allows to clearly distinguish if the M-measure is required. \n So a first preliminary scan of the Shapefile is required in order to correctly identify the actual payload (gtype = "AUTO", default case). \n By explicitly specifying some expected geometry type this first scan will be skipped at all thus introducing a noticeable performance gain. \n Anyway, declaring a mismatching geometry type will surely cause a failure. */ SPATIALITE_DECLARE int load_shapefile_ex (sqlite3 * sqlite, char *shp_path, char *table, char *charset, int srid, char *geo_column, char *gtype, char *pk_column, int coerce2d, int compressed, int verbose, int spatial_index, int *rows, char *err_msg); /** Loads an external DBF file into a newly created table \param sqlite handle to current DB connection \param dbf_path pathname of the DBF file to be imported \param table the name of the table to be created \param charset a valid GNU ICONV charset to be used for DBF text strings \param verbose if TRUE a short report is shown on stderr \param rows on completion will contain the total number of actually exported rows \param err_msg on completion will contain an error message (if any) \sa load_dbf_ex \note this function simply calls load_dbf_ex by passing an implicit pk_column=NULL argument \return 0 on failure, any other value on success */ SPATIALITE_DECLARE int load_dbf (sqlite3 * sqlite, char *dbf_path, char *table, char *charset, int verbose, int *rows, char *err_msg); /** Loads an external DBF file into a newly created table \param sqlite handle to current DB connection \param dbf_path pathname of the DBF file to be imported \param table the name of the table to be created \param pk_column name of the Primary Key column; if NULL or mismatching then "PK_UID" will be assumed by default. \param charset a valid GNU ICONV charset to be used for DBF text strings \param verbose if TRUE a short report is shown on stderr \param rows on completion will contain the total number of actually exported rows \param err_msg on completion will contain an error message (if any) \sa load_shapefile \return 0 on failure, any other value on success */ SPATIALITE_DECLARE int load_dbf_ex (sqlite3 * sqlite, char *dbf_path, char *table, char *pk_column, char *charset, int verbose, int *rows, char *err_msg); /** Dumps a full table into an external DBF file \param sqlite handle to current DB connection \param table the name of the table to be exported \param dbf_path pathname of the DBF to be exported \param charset a valid GNU ICONV charset to be used for DBF text strings \param err_msg on completion will contain an error message (if any) \return 0 on failure, any other value on success */ SPATIALITE_DECLARE int dump_dbf (sqlite3 * sqlite, char *table, char *dbf_path, char *charset, char *err_msg); /** Loads an external spreadsheet (.xls) file into a newly created table \param sqlite handle to current DB connection \param path pathname of the spreadsheet file to be imported \param table the name of the table to be created \param worksheetIndex the index identifying the worksheet to be imported \param first_titles if TRUE the first line is assumed to contain column names \param rows on completion will contain the total number of actually exported rows \param err_msg on completion will contain an error message (if any) \return 0 on failure, any other value on success */ SPATIALITE_DECLARE int load_XL (sqlite3 * sqlite, const char *path, const char *table, unsigned int worksheetIndex, int first_titles, unsigned int *rows, char *err_msg); /** A portable replacement for C99 round() \param value a double value \return the nearest integeral value */ SPATIALITE_DECLARE double math_round (double value); /** A portable replacement for C99 llabs() \param value a 64 bit integer value \return the corresponding absolute value */ SPATIALITE_DECLARE sqlite3_int64 math_llabs (sqlite3_int64 value); /** Inserts the inlined EPSG dataset into the "spatial_ref_sys" table \param sqlite handle to current DB connection \param verbose if TRUE a short report is shown on stderr \return 0 on failure, any other value on success \sa spatial_ref_sys_init2 \note this function is internally invoked by the SQL function InitSpatialMetadata(), and is not usually intended for direct use. This functions is now deprecated, and will simply call spatial_ref_sys_init2(sqlite, GAIA_EPSG_ANY, verbose). */ SPATIALITE_DECLARE int spatial_ref_sys_init (sqlite3 * sqlite, int verbose); /** Inserts the inlined EPSG dataset into the "spatial_ref_sys" table \param sqlite handle to current DB connection \param mode can be one of GAIA_EPSG_ANY, GAIA_EPSG_NONE or GAIA_EPSG_WGS84_ONLY \param verbose if TRUE a short report is shown on stderr \return 0 on failure, any other value on success \note this function is internally invoked by the SQL function InitSpatialMetadata(), and is not usually intended for direct use. */ SPATIALITE_DECLARE int spatial_ref_sys_init2 (sqlite3 * sqlite, int mode, int verbose); /** Inserts some inlined EPSG definition into the "spatial_ref_sys" table \param sqlite handle to current DB connection \param srid the SRID value uniquely identifying the required EPSG definition \return 0 on failure, any other value on success */ SPATIALITE_DECLARE int insert_epsg_srid (sqlite3 * sqlite, int srid); /** Checks if a column is actually defined into the given table \param sqlite handle to current DB connection \param table the table to be checked \param column the column to be checked \return 0 on success, any other value on success \note internally used to detect if some KML attribute defaults to a constant value */ SPATIALITE_DECLARE int is_kml_constant (sqlite3 * sqlite, char *table, char *column); /** Dumps a full geometry-table into an external KML file \param sqlite handle to current DB connection \param table the name of the table to be exported \param geom_col the name of the geometry column \param kml_path pathname of the KML file to be exported \param name_col column to be used for KML "name" (may be null) \param desc_col column to be used for KML "description" (may be null) \param precision number of decimal digits for coordinates \return 0 on failure, any other value on success */ SPATIALITE_DECLARE int dump_kml (sqlite3 * sqlite, char *table, char *geom_col, char *kml_path, char *name_col, char *desc_col, int precision); /** Checks for duplicated rows into the same table \param sqlite handle to current DB connection \param table name of the table to be checked \param dupl_count on completion will contain the number of duplicated rows found \sa remove_duplicated_rows \note two (or more) rows are assumed to be duplicated if any column value (excluding any Primary Key column) is exacly the same */ SPATIALITE_DECLARE void check_duplicated_rows (sqlite3 * sqlite, char *table, int *dupl_count); /** Remove duplicated rows from a table \param sqlite handle to current DB connection \param table name of the table to be cleaned \sa check_duplicated_rows \note when two (or more) duplicated rows exist, only the first occurence will be preserved, then deleting any further occurrence. */ SPATIALITE_DECLARE void remove_duplicated_rows (sqlite3 * sqlite, char *table); /** Creates a derived table surely containing elementary Geometries \param sqlite handle to current DB connection \param inTable name of the input table \param geometry name of the Geometry column \param outTable name of the output table to be created \param pKey name of the Primary Key column in the output table \param multiId name of the column identifying origins in the output table \note if the input table contains some kind of complex Geometry (MULTIPOINT, MULTILINESTRING, MULTIPOLYGON or GEOMETRYCOLLECTION), then many rows are inserted into the output table: each single row will contain the same attributes and an elementaty Geometry. All the rows created by expanding the same input row will expose the same value in the "multiId" column. */ SPATIALITE_DECLARE void elementary_geometries (sqlite3 * sqlite, char *inTable, char *geometry, char *outTable, char *pKey, char *multiId); /** Dumps a full geometry-table into an external GeoJSON file \param sqlite handle to current DB connection \param table the name of the table to be exported \param geom_col the name of the geometry column \param outfile_path pathname for the GeoJSON file to be written to \param precision number of decimal digits for coordinates \param option the format to use for output \note valid values for option are: - 0 no option - 1 GeoJSON MBR - 2 GeoJSON Short CRS (e.g EPSG:4326) - 3 MBR + Short CRS - 4 GeoJSON Long CRS (e.g urn:ogc:def:crs:EPSG::4326) - 5 MBR + Long CRS \return 0 on failure, any other value on success */ SPATIALITE_DECLARE int dump_geojson (sqlite3 * sqlite, char *table, char *geom_col, char *outfile_path, int precision, int option); /** Updates the LAYER_STATICS metadata table \param sqlite handle to current DB connection \param table name of the table to be processed \param column name of the geometry to be processed \note this function will explore the given table/geometry determining the number of rows and the full layer extent; a corresponding table/geometry entry is expected to be already declared in the GEOMETRY_COLUMNS table. These informations will be permanently stored into the LAYER_STATISTICS table; if such table does not yet exists will be implicitly created. - if table is NULL, any entry found within GEOMETRY_COLUMNS will be processed. - if table is not NULL and column is NULL, any geometry belonging to the given table will be processed. - if both table and column are not NULL, then only the given entry will be processed. \return 0 on failure, the total count of processed entries on success */ SPATIALITE_DECLARE int update_layer_statistics (sqlite3 * sqlite, const char *table, const char *column); /** Queries the Metadata tables returning the Layer Full Extent \param handle SQLite handle to current DB connection. \param table VectorLayer Table (or View, or VirtualShape). \param geometry Geometry Column name. \param mode if TRUE a PESSIMISTIC statistics update will be implied, otherwise OPTIMISTIC. \return the pointer to the newly created Geometry (Envelope): NULL on failure \note you are responsible to destroy (before or after) any allocated Geometry returned by gaiaGetLayerExtent(). \n The geometry arg is optional when the table simply has a single Geometry Column, and can be NULL in this case. \n When the mode arg is set to FALSE (default) then the returned infos will be simply retrieved from the staticized statistic tables (faster, but could be inaccurate). \n If the mode arg is set to TRUE a preliminary attempt to update the statistic tables will be always performed (probably slower, but surely accurate). \n If the named Layer doesn't exist, or if it's completely empty (not containing any valid Geometry) NULL will be returned. */ SPATIALITE_DECLARE gaiaGeomCollPtr gaiaGetLayerExtent (sqlite3 * handle, const char *table, const char *geometry, int mode); /** Queries the Metadata tables supporting Vector Layers \param handle SQLite handle to current DB connection. \param table VectorLayer Table (or View, or VirtualShape). \param geometry Geometry Column name. \param mode one of GAIA_VECTORS_LIST_LOOSE or GAIA_VECTORS_LIST_STRICT. \return the pointer to the newly created VectorLayersList object: NULL on failure \sa gaiaFreeVectorLayersList \note you are responsible to destroy (before or after) any allocated VectorLayersList returned by gaiaGetVectorLayersList(). \n If the table arg is NULL all VectorLayers defined within the DB will be reported; otherwise only a single Layer will be reported (if existing). \n By defining the geometry arg (not NULL) you can further restrict the returned report. \n When the mode arg is set to GAIA_VECTORS_LIST_FAST (default) then the returned infos will be simply retrieved from the staticized statistic tables (faster, but could be inaccurate). \n If the mode arg is set to GAIA_VECTORS_LIST_PRECISE a preliminary attempt to update the statistic tables will be always performed (probably slower, but surely accurate). */ SPATIALITE_DECLARE gaiaVectorLayersListPtr gaiaGetVectorLayersList (sqlite3 * handle, const char *table, const char *geometry, int mode); /** Destroys a VectorLayersList object \param ptr pointer to the VectorLayersList object to be destroyed \sa gaiaGetVectorLayersList */ SPATIALITE_DECLARE void gaiaFreeVectorLayersList (gaiaVectorLayersListPtr ptr); /** Drops a layer-table, removing any related dependency \param sqlite handle to current DB connection \param table name of the table to be removed \note this function will drop a SpatialTable, SpatialView or VirtualShape being properly registered within the Metadata tables. \n an eventual Spatial Index will be dropped as well, and any row referring the selected table will be removed from the Metadata tables. \return 0 on failure, any other value on success */ SPATIALITE_DECLARE int gaiaDropTable (sqlite3 * sqlite, const char *table); /** Checks a Geometry Column for validity \param sqlite handle to current DB connection \param table name of the table \param geometry name of the column to be checked \param report_path pathname of the report-file \param n_rows if this variable is not NULL on successful completion will contain the total number of rows found into the checkeck table \param n_invalids if this variable is not NULL on successful completion will contain the total number of invalid Geometries found into the checkeck table \param err_msg if this variable is not NULL and the return status is ZERO (failure), an appropriate error message will be returned \note this function will check a Geometry Column (layer) for validity; a HTML report will be produced. \n an eventual error message returned via err_msg requires to be deallocated by invoking free() \return 0 on failure, any other value on success */ SPATIALITE_DECLARE int check_geometry_column (sqlite3 * sqlite, const char *table, const char *geom, const char *report_path, int *n_rows, int *n_invalids, char **err_msg); /** Checks all Geometry Columns for validity \param sqlite handle to current DB connection \param output_dir pathname of the directory to be created for report-files \param n_invalids if this variable is not NULL on successful completion will contain the total number of invalid Geometries found \param err_msg if this variable is not NULL and the return status is ZERO (failure), an appropriate error message will be returned \note this function will check all Geometry Columns (vector layers) for validity; a HTML report will be produced. \n an eventual error message returned via err_msg requires to be deallocated by invoking free() \return 0 on failure, any other value on success */ SPATIALITE_DECLARE int check_all_geometry_columns (sqlite3 * sqlite, const char *output_dir, int *n_invalids, char **err_msg); /** Sanitizes a Geometry Column making all invalid geometries to be valid \param sqlite handle to current DB connection \param table name of the table \param geometry name of the column to be checked \param tmp_table name of the temporary table \param report_path pathname of the report-file \param n_invalids if this variable is not NULL on successful completion will contain the total number of invalid Geometries found into the sanitize table \param n_repaired if this variable is not NULL on successful completion will contain the total number of repaired Geometries \param n_discarded if this variable is not NULL on successful completion will contain the total number of repaired Geometries (by discarding fragments) \param n_failures if this variable is not NULL on successful completion will contain the total number of repair failures (i.e. Geometries beyond possible repair) \param err_msg if this variable is not NULL and the return status is ZERO (failure), an appropriate error message will be returned \note this function will attempt to make valid all invalid geometries found within a Geometry Column (layer); a temporary table is required. \n if the process has full success the temprary table will be deleted; otherwise it will be preserved for further inspection. a HTML report will be produced as well. \n an eventual error message returned via err_msg requires to be deallocated by invoking free() \return 0 on failure, any other value on success */ SPATIALITE_DECLARE int sanitize_geometry_column (sqlite3 * sqlite, const char *table, const char *geom, const char *tmp_table, const char *report_path, int *n_invalids, int *n_repaired, int *n_discarded, int *n_failures, char **err_msg); /** Sanitizes all Geometry Columns making all invalid geometries to be valid \param sqlite handle to current DB connection \param tmp_prefix name-prefix for temporary tables \param output_dir pathname of the directory to be created for report-files \param not_repaired if this variable is not NULL on successful completion will contain the total count of repair failures (i.e. Geometries beyond possible repair) \param err_msg if this variable is not NULL and the return status is ZERO (failure), an appropriate error message will be returned \note this function will attempt to make valid all invalid geometries found within all Geometry Columns (vector layers); a temporary table is required so to support each input table. \n if the process has full success the temprary table will be deleted; otherwise it will be preserved for further inspection. a HTML report will be produced as well. \n an eventual error message returned via err_msg requires to be deallocated by invoking free() \return 0 on failure, any other value on success */ SPATIALITE_DECLARE int sanitize_all_geometry_columns (sqlite3 * sqlite, const char *tmp_prefix, const char *output_dir, int *not_repaired, char **err_msg); #ifdef __cplusplus } #endif #endif /* _SPATIALITE_H */ libspatialite-4.1.1/src/spatialite/0000775000175000017500000000000012163503225014273 500000000000000libspatialite-4.1.1/src/spatialite/metatables.c0000664000175000017500000064677212163502133016523 00000000000000/* metatables.c -- creating the metadata tables and related triggers version 4.1, 2013 May 8 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Pepijn Van Eeckhoudt (implementing Android support) Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include #include #include #include #include #include #ifdef _WIN32 #define strcasecmp _stricmp #endif /* not WIN32 */ struct spatial_index_str { /* a struct to implement a linked list of spatial-indexes */ char ValidRtree; char ValidCache; char *TableName; char *ColumnName; struct spatial_index_str *Next; }; static int testSpatiaLiteHistory (sqlite3 * sqlite) { /* internal utility function: / / checks if the SPATIALITE_HISTORY table already exists / */ int event_id = 0; int table_name = 0; int geometry_column = 0; int event = 0; int timestamp = 0; int ver_sqlite = 0; int ver_splite = 0; char sql[1024]; int ret; const char *name; int i; char **results; int rows; int columns; /* checking the SPATIALITE_HISTORY table */ strcpy (sql, "PRAGMA table_info(spatialite_history)"); ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 1]; if (strcasecmp (name, "event_id") == 0) event_id = 1; if (strcasecmp (name, "table_name") == 0) table_name = 1; if (strcasecmp (name, "geometry_column") == 0) geometry_column = 1; if (strcasecmp (name, "event") == 0) event = 1; if (strcasecmp (name, "timestamp") == 0) timestamp = 1; if (strcasecmp (name, "ver_sqlite") == 0) ver_sqlite = 1; if (strcasecmp (name, "ver_splite") == 0) ver_splite = 1; } } sqlite3_free_table (results); if (event_id && table_name && geometry_column && event && timestamp && ver_sqlite && ver_splite) return 1; return 0; } static int checkSpatiaLiteHistory (sqlite3 * sqlite) { /* internal utility function: / / checks if the SPATIALITE_HISTORY table already exists / if not, such table will then be created / */ char sql[1024]; char *errMsg = NULL; int ret; if (testSpatiaLiteHistory (sqlite)) return 1; /* creating the SPATIALITE_HISTORY table */ strcpy (sql, "CREATE TABLE IF NOT EXISTS "); strcat (sql, "spatialite_history (\n"); strcat (sql, "event_id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,\n"); strcat (sql, "table_name TEXT NOT NULL,\n"); strcat (sql, "geometry_column TEXT,\n"); strcat (sql, "event TEXT NOT NULL,\n"); strcat (sql, "timestamp TEXT NOT NULL,\n"); strcat (sql, "ver_sqlite TEXT NOT NULL,\n"); strcat (sql, "ver_splite TEXT NOT NULL)"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) return 0; if (testSpatiaLiteHistory (sqlite)) return 1; return 0; } SPATIALITE_PRIVATE void updateSpatiaLiteHistory (void *p_sqlite, const char *table, const char *geom, const char *operation) { /* inserting a row in SPATIALITE_HISTORY */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; char sql[2048]; sqlite3_stmt *stmt = NULL; int ret; if (checkSpatiaLiteHistory (sqlite) == 0) return; strcpy (sql, "INSERT INTO spatialite_history "); strcat (sql, "(event_id, table_name, geometry_column, event, timestamp, "); strcat (sql, "ver_sqlite, ver_splite) VALUES (NULL, ?, ?, ?, "); strcat (sql, "strftime('%Y-%m-%dT%H:%M:%fZ', 'now'), "); strcat (sql, "sqlite_version(), spatialite_version())"); ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n%s\n", sql, sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, table, strlen (table), SQLITE_STATIC); if (!geom) sqlite3_bind_null (stmt, 2); else sqlite3_bind_text (stmt, 2, geom, strlen (geom), SQLITE_STATIC); sqlite3_bind_text (stmt, 3, operation, strlen (operation), SQLITE_STATIC); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) goto stop; spatialite_e ("SQL error: %s\n", sqlite3_errmsg (sqlite)); stop: if (stmt) sqlite3_finalize (stmt); } static int create_views_geometry_columns (sqlite3 * sqlite) { char sql[4186]; char *errMsg = NULL; int ret; /* creating the VIEWS_GEOMETRY_COLUMNS table */ strcpy (sql, "CREATE TABLE IF NOT EXISTS "); strcat (sql, "views_geometry_columns (\n"); strcat (sql, "view_name TEXT NOT NULL,\n"); strcat (sql, "view_geometry TEXT NOT NULL,\n"); strcat (sql, "view_rowid TEXT NOT NULL,\n"); strcat (sql, "f_table_name TEXT NOT NULL,\n"); strcat (sql, "f_geometry_column TEXT NOT NULL,\n"); strcat (sql, "read_only INTEGER NOT NULL,\n"); strcat (sql, "CONSTRAINT pk_geom_cols_views PRIMARY KEY "); strcat (sql, "(view_name, view_geometry),\n"); strcat (sql, "CONSTRAINT fk_views_geom_cols FOREIGN KEY "); strcat (sql, "(f_table_name, f_geometry_column) "); strcat (sql, "REFERENCES geometry_columns "); strcat (sql, "(f_table_name, f_geometry_column) "); strcat (sql, "ON DELETE CASCADE,\n"); strcat (sql, "CONSTRAINT ck_vw_rdonly CHECK (read_only IN "); strcat (sql, "(0,1)))"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } /* creating an INDEX supporting the GEOMETRY_COLUMNS FK */ strcpy (sql, "CREATE INDEX IF NOT EXISTS "); strcat (sql, "idx_viewsjoin ON views_geometry_columns\n"); strcat (sql, "(f_table_name, f_geometry_column)"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } /* creating the VIEWS_GEOMETRY_COLUMNS triggers */ strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vwgc_view_name_insert\n"); strcat (sql, "BEFORE INSERT ON 'views_geometry_columns'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: "); strcat (sql, "view_name value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.view_name LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: "); strcat (sql, "view_name value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.view_name LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: \n"); strcat (sql, "view_name value must be lower case')\n"); strcat (sql, "WHERE NEW.view_name <> lower(NEW.view_name);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vwgc_view_name_update\n"); strcat (sql, "BEFORE UPDATE OF 'view_name' ON 'views_geometry_columns'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: "); strcat (sql, "view_name value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.view_name LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: "); strcat (sql, "view_name value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.view_name LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: "); strcat (sql, "view_name value must be lower case')\n"); strcat (sql, "WHERE NEW.view_name <> lower(NEW.view_name);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vwgc_view_geometry_insert\n"); strcat (sql, "BEFORE INSERT ON 'views_geometry_columns'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: "); strcat (sql, "view_geometry value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.view_geometry LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: \n"); strcat (sql, "view_geometry value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.view_geometry LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: "); strcat (sql, "view_geometry value must be lower case')\n"); strcat (sql, "WHERE NEW.view_geometry <> lower(NEW.view_geometry);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vwgc_view_geometry_update\n"); strcat (sql, "BEFORE UPDATE OF 'view_geometry' ON 'views_geometry_columns'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: "); strcat (sql, "view_geometry value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.view_geometry LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: \n"); strcat (sql, "view_geometry value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.view_geometry LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: "); strcat (sql, "view_geometry value must be lower case')\n"); strcat (sql, "WHERE NEW.view_geometry <> lower(NEW.view_geometry);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vwgc_view_rowid_update\n"); strcat (sql, "BEFORE UPDATE OF 'view_rowid' ON 'views_geometry_columns'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: "); strcat (sql, "view_rowid value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.f_geometry_column LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: "); strcat (sql, "view_rowid value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.view_rowid LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: "); strcat (sql, "view_rowid value must be lower case')\n"); strcat (sql, "WHERE NEW.view_rowid <> lower(NEW.view_rowid);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vwgc_view_rowid_insert\n"); strcat (sql, "BEFORE INSERT ON 'views_geometry_columns'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: "); strcat (sql, "view_rowid value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.view_rowid LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: \n"); strcat (sql, "view_rowid value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.view_rowid LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: "); strcat (sql, "view_rowid value must be lower case')\n"); strcat (sql, "WHERE NEW.view_rowid <> lower(NEW.view_rowid);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vwgc_f_table_name_insert\n"); strcat (sql, "BEFORE INSERT ON 'views_geometry_columns'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: "); strcat (sql, "f_table_name value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.f_table_name LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: "); strcat (sql, "f_table_name value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.f_table_name LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: \n"); strcat (sql, "f_table_name value must be lower case')\n"); strcat (sql, "WHERE NEW.f_table_name <> lower(NEW.f_table_name);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vwgc_f_table_name_update\n"); strcat (sql, "BEFORE UPDATE OF 'f_table_name' ON 'views_geometry_columns'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: "); strcat (sql, "f_table_name value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.f_table_name LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: "); strcat (sql, "f_table_name value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.f_table_name LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: "); strcat (sql, "f_table_name value must be lower case')\n"); strcat (sql, "WHERE NEW.f_table_name <> lower(NEW.f_table_name);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vwgc_f_geometry_column_insert\n"); strcat (sql, "BEFORE INSERT ON 'views_geometry_columns'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: "); strcat (sql, "f_geometry_column value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.f_geometry_column LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: \n"); strcat (sql, "f_geometry_column value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.f_geometry_column LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: "); strcat (sql, "f_geometry_column value must be lower case')\n"); strcat (sql, "WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vwgc_f_geometry_column_update\n"); strcat (sql, "BEFORE UPDATE OF 'f_geometry_column' ON 'views_geometry_columns'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: "); strcat (sql, "f_geometry_column value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.f_geometry_column LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: "); strcat (sql, "f_geometry_column value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.f_geometry_column LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: "); strcat (sql, "f_geometry_column value must be lower case')\n"); strcat (sql, "WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } return 1; } static int create_virts_geometry_columns (sqlite3 * sqlite) { char sql[4186]; char *errMsg = NULL; int ret; /* creating the VIRTS_GEOMETRY_COLUMNS table */ strcpy (sql, "CREATE TABLE IF NOT EXISTS "); strcat (sql, "virts_geometry_columns (\n"); strcat (sql, "virt_name TEXT NOT NULL,\n"); strcat (sql, "virt_geometry TEXT NOT NULL,\n"); strcat (sql, "geometry_type INTEGER NOT NULL,\n"); strcat (sql, "coord_dimension INTEGER NOT NULL,\n"); strcat (sql, "srid INTEGER NOT NULL,\n"); strcat (sql, "CONSTRAINT pk_geom_cols_virts PRIMARY KEY "); strcat (sql, "(virt_name, virt_geometry),\n"); strcat (sql, "CONSTRAINT fk_vgc_srid FOREIGN KEY "); strcat (sql, "(srid) REFERENCES spatial_ref_sys (srid))"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } /* creating an INDEX supporting the SPATIAL_REF_SYS FK */ strcpy (sql, "CREATE INDEX IF NOT EXISTS "); strcat (sql, "idx_virtssrid ON virts_geometry_columns\n"); strcat (sql, "(srid)"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } /* creating the VIRTS_GEOMETRY_COLUMNS triggers */ strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vtgc_virt_name_insert\n"); strcat (sql, "BEFORE INSERT ON 'virts_geometry_columns'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on virts_geometry_columns violates constraint: "); strcat (sql, "virt_name value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.virt_name LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on virts_geometry_columns violates constraint: "); strcat (sql, "virt_name value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.virt_name LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on virts_geometry_columns violates constraint: \n"); strcat (sql, "virt_name value must be lower case')\n"); strcat (sql, "WHERE NEW.virt_name <> lower(NEW.virt_name);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vtgc_virt_name_update\n"); strcat (sql, "BEFORE UPDATE OF 'virt_name' ON 'virts_geometry_columns'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on virts_geometry_columns violates constraint: "); strcat (sql, "virt_name value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.virt_name LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on virts_geometry_columns violates constraint: "); strcat (sql, "virt_name value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.virt_name LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on virts_geometry_columns violates constraint: "); strcat (sql, "virt_name value must be lower case')\n"); strcat (sql, "WHERE NEW.virt_name <> lower(NEW.virt_name);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vtgc_virt_geometry_insert\n"); strcat (sql, "BEFORE INSERT ON 'virts_geometry_columns'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on virts_geometry_columns violates constraint: "); strcat (sql, "virt_geometry value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.virt_geometry LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on virts_geometry_columns violates constraint: \n"); strcat (sql, "virt_geometry value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.virt_geometry LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on virts_geometry_columns violates constraint: "); strcat (sql, "virt_geometry value must be lower case')\n"); strcat (sql, "WHERE NEW.virt_geometry <> lower(NEW.virt_geometry);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vtgc_virt_geometry_update\n"); strcat (sql, "BEFORE UPDATE OF 'virt_geometry' ON 'virts_geometry_columns'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on virts_geometry_columns violates constraint: "); strcat (sql, "virt_geometry value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.virt_geometry LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on virts_geometry_columns violates constraint: \n"); strcat (sql, "virt_geometry value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.virt_geometry LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on virts_geometry_columns violates constraint: "); strcat (sql, "virt_geometry value must be lower case')\n"); strcat (sql, "WHERE NEW.virt_geometry <> lower(NEW.virt_geometry);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vtgc_geometry_type_insert\n"); strcat (sql, "BEFORE INSERT ON 'virts_geometry_columns'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'geometry_type must be one of "); strcat (sql, "0,1,2,3,4,5,6,7,"); strcat (sql, "1000,1001,1002,1003,1004,1005,1006,1007,"); strcat (sql, "2000,2001,2002,2003,2004,2005,2006,2007,"); strcat (sql, "3000,3001,3002,3003,3004,3005,3006,3007')\n"); strcat (sql, "WHERE NOT(NEW.geometry_type IN (0,1,2,3,4,5,6,7,"); strcat (sql, "1000,1001,1002,1003,1004,1005,1006,1007,"); strcat (sql, "2000,2001,2002,2003,2004,2005,2006,2007,"); strcat (sql, "3000,3001,3002,3003,3004,3005,3006,3007));\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vtgc_geometry_type_update\n"); strcat (sql, "BEFORE UPDATE OF 'geometry_type' ON 'virts_geometry_columns'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'geometry_type must be one of "); strcat (sql, "0,1,2,3,4,5,6,7,"); strcat (sql, "1000,1001,1002,1003,1004,1005,1006,1007,"); strcat (sql, "2000,2001,2002,2003,2004,2005,2006,2007,"); strcat (sql, "3000,3001,3002,3003,3004,3005,3006,3007')\n"); strcat (sql, "WHERE NOT(NEW.geometry_type IN (0,1,2,3,4,5,6,7,"); strcat (sql, "1000,1001,1002,1003,1004,1005,1006,1007,"); strcat (sql, "2000,2001,2002,2003,2004,2005,2006,2007,"); strcat (sql, "3000,3001,3002,3003,3004,3005,3006,3007));\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vtgc_coord_dimension_insert\n"); strcat (sql, "BEFORE INSERT ON 'virts_geometry_columns'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'coord_dimension must be one of 2,3,4')\n"); strcat (sql, "WHERE NOT(NEW.coord_dimension IN (2,3,4));\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vtgc_coord_dimension_update\n"); strcat (sql, "BEFORE UPDATE OF 'coord_dimension' ON 'virts_geometry_columns'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'coord_dimension must be one of 2,3,4')\n"); strcat (sql, "WHERE NOT(NEW.coord_dimension IN (2,3,4));\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } return 1; } static int create_geometry_columns_statistics (sqlite3 * sqlite) { char sql[4186]; char *errMsg = NULL; int ret; /* creating the GEOMETRY_COLUMNS_STATISTICS table */ strcpy (sql, "CREATE TABLE IF NOT EXISTS "); strcat (sql, "geometry_columns_statistics (\n"); strcat (sql, "f_table_name TEXT NOT NULL,\n"); strcat (sql, "f_geometry_column TEXT NOT NULL,\n"); strcat (sql, "last_verified TIMESTAMP,\n"); strcat (sql, "row_count INTEGER,\n"); strcat (sql, "extent_min_x DOUBLE,\n"); strcat (sql, "extent_min_y DOUBLE,\n"); strcat (sql, "extent_max_x DOUBLE,\n"); strcat (sql, "extent_max_y DOUBLE,\n"); strcat (sql, "CONSTRAINT pk_gc_statistics PRIMARY KEY "); strcat (sql, "(f_table_name, f_geometry_column),\n"); strcat (sql, "CONSTRAINT fk_gc_statistics FOREIGN KEY "); strcat (sql, "(f_table_name, f_geometry_column) REFERENCES "); strcat (sql, "geometry_columns (f_table_name, f_geometry_column) "); strcat (sql, "ON DELETE CASCADE)"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } /* creating the GEOMETRY_COLUMNS_STATISTICS triggers */ strcpy (sql, "CREATE TRIGGER IF NOT EXISTS gcs_f_table_name_insert\n"); strcat (sql, "BEFORE INSERT ON 'geometry_columns_statistics'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns_statistics violates constraint: "); strcat (sql, "f_table_name value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.f_table_name LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns_statistics violates constraint: "); strcat (sql, "f_table_name value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.f_table_name LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns_statistics violates constraint: \n"); strcat (sql, "f_table_name value must be lower case')\n"); strcat (sql, "WHERE NEW.f_table_name <> lower(NEW.f_table_name);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS gcs_f_table_name_update\n"); strcat (sql, "BEFORE UPDATE OF 'f_table_name' ON 'geometry_columns_statistics'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns_statistics violates constraint: "); strcat (sql, "f_table_name value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.f_table_name LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns_statistics violates constraint: "); strcat (sql, "f_table_name value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.f_table_name LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns_statistics violates constraint: "); strcat (sql, "f_table_name value must be lower case')\n"); strcat (sql, "WHERE NEW.f_table_name <> lower(NEW.f_table_name);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS gcs_f_geometry_column_insert\n"); strcat (sql, "BEFORE INSERT ON 'geometry_columns_statistics'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns_statistics violates constraint: "); strcat (sql, "f_geometry_column value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.f_geometry_column LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns_statistics violates constraint: \n"); strcat (sql, "f_geometry_column value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.f_geometry_column LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns_statistics violates constraint: "); strcat (sql, "f_geometry_column value must be lower case')\n"); strcat (sql, "WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS gcs_f_geometry_column_update\n"); strcat (sql, "BEFORE UPDATE OF 'f_geometry_column' ON 'geometry_columns_statistics'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns_statistics violates constraint: "); strcat (sql, "f_geometry_column value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.f_geometry_column LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns_statistics violates constraint: "); strcat (sql, "f_geometry_column value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.f_geometry_column LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns_statistics violates constraint: "); strcat (sql, "f_geometry_column value must be lower case')\n"); strcat (sql, "WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } return 1; } static int create_views_geometry_columns_statistics (sqlite3 * sqlite) { char sql[4186]; char *errMsg = NULL; int ret; /* creating the VIEWS_GEOMETRY_COLUMNS_STATISTICS table */ strcpy (sql, "CREATE TABLE IF NOT EXISTS "); strcat (sql, "views_geometry_columns_statistics (\n"); strcat (sql, "view_name TEXT NOT NULL,\n"); strcat (sql, "view_geometry TEXT NOT NULL,\n"); strcat (sql, "last_verified TIMESTAMP,\n"); strcat (sql, "row_count INTEGER,\n"); strcat (sql, "extent_min_x DOUBLE,\n"); strcat (sql, "extent_min_y DOUBLE,\n"); strcat (sql, "extent_max_x DOUBLE,\n"); strcat (sql, "extent_max_y DOUBLE,\n"); strcat (sql, "CONSTRAINT pk_vwgc_statistics PRIMARY KEY "); strcat (sql, "(view_name, view_geometry),\n"); strcat (sql, "CONSTRAINT fk_vwgc_statistics FOREIGN KEY "); strcat (sql, "(view_name, view_geometry) REFERENCES "); strcat (sql, "views_geometry_columns (view_name, view_geometry) "); strcat (sql, "ON DELETE CASCADE)"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } /* creating the VIEWS_GEOMETRY_COLUMNS_STATISTICS triggers */ strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vwgcs_view_name_insert\n"); strcat (sql, "BEFORE INSERT ON 'views_geometry_columns_statistics'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns_statistics violates constraint: "); strcat (sql, "view_name value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.view_name LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns_statistics violates constraint: "); strcat (sql, "view_name value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.view_name LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns_statistics violates constraint: \n"); strcat (sql, "view_name value must be lower case')\n"); strcat (sql, "WHERE NEW.view_name <> lower(NEW.view_name);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vwgcs_view_name_update\n"); strcat (sql, "BEFORE UPDATE OF 'view_name' ON 'views_geometry_columns_statistics'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns_statistics violates constraint: "); strcat (sql, "view_name value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.view_name LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns_statistics violates constraint: "); strcat (sql, "view_name value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.view_name LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns_statistics violates constraint: "); strcat (sql, "view_name value must be lower case')\n"); strcat (sql, "WHERE NEW.view_name <> lower(NEW.view_name);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vwgcs_view_geometry_insert\n"); strcat (sql, "BEFORE INSERT ON 'views_geometry_columns_statistics'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns_statistics violates constraint: "); strcat (sql, "view_geometry value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.view_geometry LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns_statistics violates constraint: \n"); strcat (sql, "view_geometry value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.view_geometry LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns_statistics violates constraint: "); strcat (sql, "view_geometry value must be lower case')\n"); strcat (sql, "WHERE NEW.view_geometry <> lower(NEW.view_geometry);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vwgcs_view_geometry_update\n"); strcat (sql, "BEFORE UPDATE OF 'view_geometry' ON 'views_geometry_columns_statistics'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns_statistics violates constraint: "); strcat (sql, "view_geometry value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.view_geometry LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns_statistics violates constraint: \n"); strcat (sql, "view_geometry value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.view_geometry LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns_statistics violates constraint: "); strcat (sql, "view_geometry value must be lower case')\n"); strcat (sql, "WHERE NEW.view_geometry <> lower(NEW.view_geometry);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } return 1; } static int create_virts_geometry_columns_statistics (sqlite3 * sqlite) { char sql[4186]; char *errMsg = NULL; int ret; /* creating the VIRTS_GEOMETRY_COLUMNS_STATISTICS table */ strcpy (sql, "CREATE TABLE IF NOT EXISTS "); strcat (sql, "virts_geometry_columns_statistics (\n"); strcat (sql, "virt_name TEXT NOT NULL,\n"); strcat (sql, "virt_geometry TEXT NOT NULL,\n"); strcat (sql, "last_verified TIMESTAMP,\n"); strcat (sql, "row_count INTEGER,\n"); strcat (sql, "extent_min_x DOUBLE,\n"); strcat (sql, "extent_min_y DOUBLE,\n"); strcat (sql, "extent_max_x DOUBLE,\n"); strcat (sql, "extent_max_y DOUBLE,\n"); strcat (sql, "CONSTRAINT pk_vrtgc_statistics PRIMARY KEY "); strcat (sql, "(virt_name, virt_geometry),\n"); strcat (sql, "CONSTRAINT fk_vrtgc_statistics FOREIGN KEY "); strcat (sql, "(virt_name, virt_geometry) REFERENCES "); strcat (sql, "virts_geometry_columns (virt_name, virt_geometry) "); strcat (sql, "ON DELETE CASCADE)"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } /* creating the VIRTS_GEOMETRY_COLUMNS_STATISTICS triggers */ strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vtgcs_virt_name_insert\n"); strcat (sql, "BEFORE INSERT ON 'virts_geometry_columns_statistics'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on virts_geometry_columns_statistics violates constraint: "); strcat (sql, "virt_name value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.virt_name LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on virts_geometry_columns_statistics violates constraint: "); strcat (sql, "virt_name value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.virt_name LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on virts_geometry_columns_statistics violates constraint: \n"); strcat (sql, "virt_name value must be lower case')\n"); strcat (sql, "WHERE NEW.virt_name <> lower(NEW.virt_name);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vtgcs_virt_name_update\n"); strcat (sql, "BEFORE UPDATE OF 'virt_name' ON 'virts_geometry_columns_statistics'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on virts_geometry_columns_statistics violates constraint: "); strcat (sql, "virt_name value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.virt_name LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on virts_geometry_columns_statistics violates constraint: "); strcat (sql, "virt_name value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.virt_name LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on virts_geometry_columns_statistics violates constraint: "); strcat (sql, "virt_name value must be lower case')\n"); strcat (sql, "WHERE NEW.virt_name <> lower(NEW.virt_name);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vtgcs_virt_geometry_insert\n"); strcat (sql, "BEFORE INSERT ON 'virts_geometry_columns_statistics'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on virts_geometry_columns_statistics violates constraint: "); strcat (sql, "virt_geometry value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.virt_geometry LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on virts_geometry_columns_statistics violates constraint: \n"); strcat (sql, "virt_geometry value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.virt_geometry LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on virts_geometry_columns_statistics violates constraint: "); strcat (sql, "virt_geometry value must be lower case')\n"); strcat (sql, "WHERE NEW.virt_geometry <> lower(NEW.virt_geometry);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vtgcs_virt_geometry_update\n"); strcat (sql, "BEFORE UPDATE OF 'virt_geometry' ON 'virts_geometry_columns_statistics'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on virts_geometry_columns_statistics violates constraint: "); strcat (sql, "virt_geometry value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.virt_geometry LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on virts_geometry_columns_statistics violates constraint: \n"); strcat (sql, "virt_geometry value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.virt_geometry LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on virts_geometry_columns_statistics violates constraint: "); strcat (sql, "virt_geometry value must be lower case')\n"); strcat (sql, "WHERE NEW.virt_geometry <> lower(NEW.virt_geometry);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } return 1; } static int create_geometry_columns_field_infos (sqlite3 * sqlite) { char sql[4186]; char *errMsg = NULL; int ret; /* creating the GEOMETRY_COLUMNS_FIELD_INFOS table */ strcpy (sql, "CREATE TABLE IF NOT EXISTS "); strcat (sql, "geometry_columns_field_infos (\n"); strcat (sql, "f_table_name TEXT NOT NULL,\n"); strcat (sql, "f_geometry_column TEXT NOT NULL,\n"); strcat (sql, "ordinal INTEGER NOT NULL,\n"); strcat (sql, "column_name TEXT NOT NULL,\n"); strcat (sql, "null_values INTEGER NOT NULL,\n"); strcat (sql, "integer_values INTEGER NOT NULL,\n"); strcat (sql, "double_values INTEGER NOT NULL,\n"); strcat (sql, "text_values INTEGER NOT NULL,\n"); strcat (sql, "blob_values INTEGER NOT NULL,\n"); strcat (sql, "max_size INTEGER,\n"); strcat (sql, "integer_min INTEGER,\n"); strcat (sql, "integer_max INTEGER,\n"); strcat (sql, "double_min DOUBLE,\n"); strcat (sql, "double_max DOUBLE,\n"); strcat (sql, "CONSTRAINT pk_gcfld_infos PRIMARY KEY "); strcat (sql, "(f_table_name, f_geometry_column, ordinal, column_name),\n"); strcat (sql, "CONSTRAINT fk_gcfld_infos FOREIGN KEY "); strcat (sql, "(f_table_name, f_geometry_column) REFERENCES "); strcat (sql, "geometry_columns (f_table_name, f_geometry_column) "); strcat (sql, "ON DELETE CASCADE)"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } /* creating the GEOMETRY_COLUMNS_FIELD_INFOS triggers */ strcpy (sql, "CREATE TRIGGER IF NOT EXISTS gcfi_f_table_name_insert\n"); strcat (sql, "BEFORE INSERT ON 'geometry_columns_field_infos'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns_field_infos violates constraint: "); strcat (sql, "f_table_name value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.f_table_name LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns_field_infos violates constraint: "); strcat (sql, "f_table_name value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.f_table_name LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns_field_infos violates constraint: \n"); strcat (sql, "f_table_name value must be lower case')\n"); strcat (sql, "WHERE NEW.f_table_name <> lower(NEW.f_table_name);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS gcfi_f_table_name_update\n"); strcat (sql, "BEFORE UPDATE OF 'f_table_name' ON 'geometry_columns_field_infos'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns_field_infos violates constraint: "); strcat (sql, "f_table_name value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.f_table_name LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns_field_infos violates constraint: "); strcat (sql, "f_table_name value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.f_table_name LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns_field_infos violates constraint: "); strcat (sql, "f_table_name value must be lower case')\n"); strcat (sql, "WHERE NEW.f_table_name <> lower(NEW.f_table_name);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS gcfi_f_geometry_column_insert\n"); strcat (sql, "BEFORE INSERT ON 'geometry_columns_field_infos'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns_field_infos violates constraint: "); strcat (sql, "f_geometry_column value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.f_geometry_column LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns_field_infos violates constraint: \n"); strcat (sql, "f_geometry_column value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.f_geometry_column LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns_field_infos violates constraint: "); strcat (sql, "f_geometry_column value must be lower case')\n"); strcat (sql, "WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS gcfi_f_geometry_column_update\n"); strcat (sql, "BEFORE UPDATE OF 'f_geometry_column' ON 'geometry_columns_field_infos'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns_field_infos violates constraint: "); strcat (sql, "f_geometry_column value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.f_geometry_column LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns_field_infos violates constraint: "); strcat (sql, "f_geometry_column value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.f_geometry_column LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns_field_infos violates constraint: "); strcat (sql, "f_geometry_column value must be lower case')\n"); strcat (sql, "WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } return 1; } static int create_views_geometry_columns_field_infos (sqlite3 * sqlite) { char sql[4186]; char *errMsg = NULL; int ret; /* creating the VIEWS_COLUMNS_FIELD_INFOS table */ strcpy (sql, "CREATE TABLE IF NOT EXISTS "); strcat (sql, "views_geometry_columns_field_infos (\n"); strcat (sql, "view_name TEXT NOT NULL,\n"); strcat (sql, "view_geometry TEXT NOT NULL,\n"); strcat (sql, "ordinal INTEGER NOT NULL,\n"); strcat (sql, "column_name TEXT NOT NULL,\n"); strcat (sql, "null_values INTEGER NOT NULL,\n"); strcat (sql, "integer_values INTEGER NOT NULL,\n"); strcat (sql, "double_values INTEGER NOT NULL,\n"); strcat (sql, "text_values INTEGER NOT NULL,\n"); strcat (sql, "blob_values INTEGER NOT NULL,\n"); strcat (sql, "max_size INTEGER,\n"); strcat (sql, "integer_min INTEGER,\n"); strcat (sql, "integer_max INTEGER,\n"); strcat (sql, "double_min DOUBLE,\n"); strcat (sql, "double_max DOUBLE,\n"); strcat (sql, "CONSTRAINT pk_vwgcfld_infos PRIMARY KEY "); strcat (sql, "(view_name, view_geometry, ordinal, column_name),\n"); strcat (sql, "CONSTRAINT fk_vwgcfld_infos FOREIGN KEY "); strcat (sql, "(view_name, view_geometry) REFERENCES "); strcat (sql, "views_geometry_columns (view_name, view_geometry) "); strcat (sql, "ON DELETE CASCADE)"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } /* creating the VIEWS_COLUMNS_FIELD_INFOS triggers */ strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vwgcfi_view_name_insert\n"); strcat (sql, "BEFORE INSERT ON 'views_geometry_columns_field_infos'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns_field_infos violates constraint: "); strcat (sql, "view_name value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.view_name LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns_field_infos violates constraint: "); strcat (sql, "view_name value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.view_name LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns_field_infos violates constraint: \n"); strcat (sql, "view_name value must be lower case')\n"); strcat (sql, "WHERE NEW.view_name <> lower(NEW.view_name);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vwgcfi_view_name_update\n"); strcat (sql, "BEFORE UPDATE OF 'view_name' ON 'views_geometry_columns_field_infos'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns_field_infos violates constraint: "); strcat (sql, "view_name value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.view_name LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns_field_infos violates constraint: "); strcat (sql, "view_name value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.view_name LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns_field_infos violates constraint: "); strcat (sql, "view_name value must be lower case')\n"); strcat (sql, "WHERE NEW.view_name <> lower(NEW.view_name);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vwgcfi_view_geometry_insert\n"); strcat (sql, "BEFORE INSERT ON 'views_geometry_columns_field_infos'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns_field_infos violates constraint: "); strcat (sql, "view_geometry value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.view_geometry LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns_field_infos violates constraint: \n"); strcat (sql, "view_geometry value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.view_geometry LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns_field_infos violates constraint: "); strcat (sql, "view_geometry value must be lower case')\n"); strcat (sql, "WHERE NEW.view_geometry <> lower(NEW.view_geometry);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vwgcfi_view_geometry_update\n"); strcat (sql, "BEFORE UPDATE OF 'view_geometry' ON 'views_geometry_columns_field_infos'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns_field_infos violates constraint: "); strcat (sql, "view_geometry value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.view_geometry LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns_field_infos violates constraint: \n"); strcat (sql, "view_geometry value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.view_geometry LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns_field_infos violates constraint: "); strcat (sql, "view_geometry value must be lower case')\n"); strcat (sql, "WHERE NEW.view_geometry <> lower(NEW.view_geometry);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } return 1; } static int create_virts_geometry_columns_field_infos (sqlite3 * sqlite) { char sql[4186]; char *errMsg = NULL; int ret; /* creating the VIRTS_GEOMETRY_COLUMNS_FIELD_INFOS table */ strcpy (sql, "CREATE TABLE IF NOT EXISTS "); strcat (sql, "virts_geometry_columns_field_infos (\n"); strcat (sql, "virt_name TEXT NOT NULL,\n"); strcat (sql, "virt_geometry TEXT NOT NULL,\n"); strcat (sql, "ordinal INTEGER NOT NULL,\n"); strcat (sql, "column_name TEXT NOT NULL,\n"); strcat (sql, "null_values INTEGER NOT NULL,\n"); strcat (sql, "integer_values INTEGER NOT NULL,\n"); strcat (sql, "double_values INTEGER NOT NULL,\n"); strcat (sql, "text_values INTEGER NOT NULL,\n"); strcat (sql, "blob_values INTEGER NOT NULL,\n"); strcat (sql, "max_size INTEGER,\n"); strcat (sql, "integer_min INTEGER,\n"); strcat (sql, "integer_max INTEGER,\n"); strcat (sql, "double_min DOUBLE,\n"); strcat (sql, "double_max DOUBLE,\n"); strcat (sql, "CONSTRAINT pk_vrtgcfld_infos PRIMARY KEY "); strcat (sql, "(virt_name, virt_geometry, ordinal, column_name),\n"); strcat (sql, "CONSTRAINT fk_vrtgcfld_infos FOREIGN KEY "); strcat (sql, "(virt_name, virt_geometry) REFERENCES "); strcat (sql, "virts_geometry_columns (virt_name, virt_geometry) "); strcat (sql, "ON DELETE CASCADE)"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } /* creating the VIRTS_GEOMETRY_COLUMNS_FIELD_INFOS triggers */ strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vtgcfi_virt_name_insert\n"); strcat (sql, "BEFORE INSERT ON 'virts_geometry_columns_field_infos'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on virts_geometry_columns_field_infos violates constraint: "); strcat (sql, "virt_name value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.virt_name LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on virts_geometry_columns_field_infos violates constraint: "); strcat (sql, "virt_name value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.virt_name LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on virts_geometry_columns_field_infos violates constraint: \n"); strcat (sql, "virt_name value must be lower case')\n"); strcat (sql, "WHERE NEW.virt_name <> lower(NEW.virt_name);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vtgcfi_virt_name_update\n"); strcat (sql, "BEFORE UPDATE OF 'virt_name' ON 'virts_geometry_columns_field_infos'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on virts_geometry_columns_field_infos violates constraint: "); strcat (sql, "virt_name value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.virt_name LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on virts_geometry_columns_field_infos violates constraint: "); strcat (sql, "virt_name value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.virt_name LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on virts_geometry_columns_field_infos violates constraint: "); strcat (sql, "virt_name value must be lower case')\n"); strcat (sql, "WHERE NEW.virt_name <> lower(NEW.virt_name);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vtgcfi_virt_geometry_insert\n"); strcat (sql, "BEFORE INSERT ON 'virts_geometry_columns_field_infos'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on virts_geometry_columns_field_infos violates constraint: "); strcat (sql, "virt_geometry value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.virt_geometry LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on virts_geometry_columns_field_infos violates constraint: \n"); strcat (sql, "virt_geometry value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.virt_geometry LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on virts_geometry_columns_field_infos violates constraint: "); strcat (sql, "virt_geometry value must be lower case')\n"); strcat (sql, "WHERE NEW.virt_geometry <> lower(NEW.virt_geometry);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vtgcfi_virt_geometry_update\n"); strcat (sql, "BEFORE UPDATE OF 'virt_geometry' ON 'virts_geometry_columns_field_infos'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on virts_geometry_columns_field_infos violates constraint: "); strcat (sql, "virt_geometry value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.virt_geometry LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on virts_geometry_columns_field_infos violates constraint: \n"); strcat (sql, "virt_geometry value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.virt_geometry LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on virts_geometry_columns_field_infos violates constraint: "); strcat (sql, "virt_geometry value must be lower case')\n"); strcat (sql, "WHERE NEW.virt_geometry <> lower(NEW.virt_geometry);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } return 1; } static int create_geometry_columns_times (sqlite3 * sqlite) { char sql[4186]; char *errMsg = NULL; int ret; /* creating the GEOMETRY_COLUMNS_TIME table */ strcpy (sql, "CREATE TABLE IF NOT EXISTS "); strcat (sql, "geometry_columns_time (\n"); strcat (sql, "f_table_name TEXT NOT NULL,\n"); strcat (sql, "f_geometry_column TEXT NOT NULL,\n"); strcat (sql, "last_insert TIMESTAMP NOT NULL DEFAULT '0000-01-01T00:00:00.000Z',\n"); strcat (sql, "last_update TIMESTAMP NOT NULL DEFAULT '0000-01-01T00:00:00.000Z',\n"); strcat (sql, "last_delete TIMESTAMP NOT NULL DEFAULT '0000-01-01T00:00:00.000Z',\n"); strcat (sql, "CONSTRAINT pk_gc_time PRIMARY KEY "); strcat (sql, "(f_table_name, f_geometry_column),\n"); strcat (sql, "CONSTRAINT fk_gc_time FOREIGN KEY "); strcat (sql, "(f_table_name, f_geometry_column) "); strcat (sql, "REFERENCES geometry_columns "); strcat (sql, "(f_table_name, f_geometry_column) "); strcat (sql, "ON DELETE CASCADE)"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } /* creating the GEOMETRY_COLUMNS_TIME triggers */ strcpy (sql, "CREATE TRIGGER IF NOT EXISTS gctm_f_table_name_insert\n"); strcat (sql, "BEFORE INSERT ON 'geometry_columns_time'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns_time violates constraint: "); strcat (sql, "f_table_name value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.f_table_name LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns_time violates constraint: "); strcat (sql, "f_table_name value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.f_table_name LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns_time violates constraint: \n"); strcat (sql, "f_table_name value must be lower case')\n"); strcat (sql, "WHERE NEW.f_table_name <> lower(NEW.f_table_name);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS gctm_f_table_name_update\n"); strcat (sql, "BEFORE UPDATE OF 'f_table_name' ON 'geometry_columns_time'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns_time violates constraint: "); strcat (sql, "f_table_name value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.f_table_name LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns_time violates constraint: "); strcat (sql, "f_table_name value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.f_table_name LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns_time violates constraint: "); strcat (sql, "f_table_name value must be lower case')\n"); strcat (sql, "WHERE NEW.f_table_name <> lower(NEW.f_table_name);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS gctm_f_geometry_column_insert\n"); strcat (sql, "BEFORE INSERT ON 'geometry_columns_time'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns_time violates constraint: "); strcat (sql, "f_geometry_column value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.f_geometry_column LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns_time violates constraint: \n"); strcat (sql, "f_geometry_column value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.f_geometry_column LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns_time violates constraint: "); strcat (sql, "f_geometry_column value must be lower case')\n"); strcat (sql, "WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS gctm_f_geometry_column_update\n"); strcat (sql, "BEFORE UPDATE OF 'f_geometry_column' ON 'geometry_columns_time'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns_time violates constraint: "); strcat (sql, "f_geometry_column value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.f_geometry_column LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns_time violates constraint: "); strcat (sql, "f_geometry_column value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.f_geometry_column LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns_time violates constraint: "); strcat (sql, "f_geometry_column value must be lower case')\n"); strcat (sql, "WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } return 1; } static int create_geometry_columns_auth (sqlite3 * sqlite) { char sql[4186]; char *errMsg = NULL; int ret; /* creating the GEOMETRY_COLUMNS_AUTH table */ strcpy (sql, "CREATE TABLE IF NOT EXISTS "); strcat (sql, "geometry_columns_auth (\n"); strcat (sql, "f_table_name TEXT NOT NULL,\n"); strcat (sql, "f_geometry_column TEXT NOT NULL,\n"); strcat (sql, "read_only INTEGER NOT NULL,\n"); strcat (sql, "hidden INTEGER NOT NULL,\n"); strcat (sql, "CONSTRAINT pk_gc_auth PRIMARY KEY "); strcat (sql, "(f_table_name, f_geometry_column),\n"); strcat (sql, "CONSTRAINT fk_gc_auth FOREIGN KEY "); strcat (sql, "(f_table_name, f_geometry_column) "); strcat (sql, "REFERENCES geometry_columns "); strcat (sql, "(f_table_name, f_geometry_column) "); strcat (sql, "ON DELETE CASCADE,\n"); strcat (sql, "CONSTRAINT ck_gc_ronly CHECK (read_only IN "); strcat (sql, "(0,1)),\n"); strcat (sql, "CONSTRAINT ck_gc_hidden CHECK (hidden IN "); strcat (sql, "(0,1)))"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } /* creating the GEOMETRY_COLUMNS_AUTH triggers */ strcpy (sql, "CREATE TRIGGER IF NOT EXISTS gcau_f_table_name_insert\n"); strcat (sql, "BEFORE INSERT ON 'geometry_columns_auth'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns_auth violates constraint: "); strcat (sql, "f_table_name value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.f_table_name LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns_auth violates constraint: "); strcat (sql, "f_table_name value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.f_table_name LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns_auth violates constraint: \n"); strcat (sql, "f_table_name value must be lower case')\n"); strcat (sql, "WHERE NEW.f_table_name <> lower(NEW.f_table_name);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS gcau_f_table_name_update\n"); strcat (sql, "BEFORE UPDATE OF 'f_table_name' ON 'geometry_columns_auth'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns_auth violates constraint: "); strcat (sql, "f_table_name value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.f_table_name LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns_auth violates constraint: "); strcat (sql, "f_table_name value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.f_table_name LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns_auth violates constraint: "); strcat (sql, "f_table_name value must be lower case')\n"); strcat (sql, "WHERE NEW.f_table_name <> lower(NEW.f_table_name);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS gcau_f_geometry_column_insert\n"); strcat (sql, "BEFORE INSERT ON 'geometry_columns_auth'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns_auth violates constraint: "); strcat (sql, "f_geometry_column value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.f_geometry_column LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns_auth violates constraint: \n"); strcat (sql, "f_geometry_column value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.f_geometry_column LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns_auth violates constraint: "); strcat (sql, "f_geometry_column value must be lower case')\n"); strcat (sql, "WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS gcau_f_geometry_column_update\n"); strcat (sql, "BEFORE UPDATE OF 'f_geometry_column' ON 'geometry_columns_auth'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns_auth violates constraint: "); strcat (sql, "f_geometry_column value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.f_geometry_column LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns_auth violates constraint: "); strcat (sql, "f_geometry_column value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.f_geometry_column LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns_auth violates constraint: "); strcat (sql, "f_geometry_column value must be lower case')\n"); strcat (sql, "WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } return 1; } static int create_views_geometry_columns_auth (sqlite3 * sqlite) { char sql[4186]; char *errMsg = NULL; int ret; /* creating the VIEWS_GEOMETRY_COLUMNS_AUTH table */ strcpy (sql, "CREATE TABLE IF NOT EXISTS "); strcat (sql, "views_geometry_columns_auth (\n"); strcat (sql, "view_name TEXT NOT NULL,\n"); strcat (sql, "view_geometry TEXT NOT NULL,\n"); strcat (sql, "hidden INTEGER NOT NULL,\n"); strcat (sql, "CONSTRAINT pk_vwgc_auth PRIMARY KEY "); strcat (sql, "(view_name, view_geometry),\n"); strcat (sql, "CONSTRAINT fk_vwgc_auth FOREIGN KEY "); strcat (sql, "(view_name, view_geometry) "); strcat (sql, "REFERENCES views_geometry_columns "); strcat (sql, "(view_name, view_geometry) "); strcat (sql, "ON DELETE CASCADE,\n"); strcat (sql, "CONSTRAINT ck_vwgc_hidden CHECK (hidden IN "); strcat (sql, "(0,1)))"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } /* creating the VIEWS_GEOMETRY_COLUMNS_AUTH triggers */ strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vwgcau_view_name_insert\n"); strcat (sql, "BEFORE INSERT ON 'views_geometry_columns_auth'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns_auth violates constraint: "); strcat (sql, "view_name value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.view_name LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns_auth violates constraint: "); strcat (sql, "view_name value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.view_name LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns_auth violates constraint: \n"); strcat (sql, "view_name value must be lower case')\n"); strcat (sql, "WHERE NEW.view_name <> lower(NEW.view_name);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vwgcau_view_name_update\n"); strcat (sql, "BEFORE UPDATE OF 'view_name' ON 'views_geometry_columns_auth'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns_auth violates constraint: "); strcat (sql, "view_name value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.view_name LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns_auth violates constraint: "); strcat (sql, "view_name value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.view_name LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns_auth violates constraint: "); strcat (sql, "view_name value must be lower case')\n"); strcat (sql, "WHERE NEW.view_name <> lower(NEW.view_name);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vwgcau_view_geometry_insert\n"); strcat (sql, "BEFORE INSERT ON 'views_geometry_columns_auth'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns_auth violates constraint: "); strcat (sql, "view_geometry value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.view_geometry LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns_auth violates constraint: \n"); strcat (sql, "view_geometry value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.view_geometry LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns_auth violates constraint: "); strcat (sql, "view_geometry value must be lower case')\n"); strcat (sql, "WHERE NEW.view_geometry <> lower(NEW.view_geometry);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vwgcau_view_geometry_update\n"); strcat (sql, "BEFORE UPDATE OF 'view_geometry' ON 'views_geometry_columns_auth'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns_auth violates constraint: "); strcat (sql, "view_geometry value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.view_geometry LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns_auth violates constraint: \n"); strcat (sql, "view_geometry value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.view_geometry LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns_auth violates constraint: "); strcat (sql, "view_geometry value must be lower case')\n"); strcat (sql, "WHERE NEW.view_geometry <> lower(NEW.view_geometry);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } return 1; } static int create_virts_geometry_columns_auth (sqlite3 * sqlite) { char sql[4186]; char *errMsg = NULL; int ret; /* creating the VIRTS_GEOMETRY_COLUMNS_AUTH table */ strcpy (sql, "CREATE TABLE IF NOT EXISTS "); strcat (sql, "virts_geometry_columns_auth (\n"); strcat (sql, "virt_name TEXT NOT NULL,\n"); strcat (sql, "virt_geometry TEXT NOT NULL,\n"); strcat (sql, "hidden INTEGER NOT NULL,\n"); strcat (sql, "CONSTRAINT pk_vrtgc_auth PRIMARY KEY "); strcat (sql, "(virt_name, virt_geometry),\n"); strcat (sql, "CONSTRAINT fk_vrtgc_auth FOREIGN KEY "); strcat (sql, "(virt_name, virt_geometry) "); strcat (sql, "REFERENCES virts_geometry_columns "); strcat (sql, "(virt_name, virt_geometry) "); strcat (sql, "ON DELETE CASCADE,\n"); strcat (sql, "CONSTRAINT ck_vrtgc_hidden CHECK (hidden IN "); strcat (sql, "(0,1)))"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } /* creating the VIRTS_GEOMETRY_COLUMNS_AUTH triggers */ strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vtgcau_virt_name_insert\n"); strcat (sql, "BEFORE INSERT ON 'virts_geometry_columns_auth'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on virts_geometry_columns_auth violates constraint: "); strcat (sql, "virt_name value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.virt_name LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on virts_geometry_columns_auth violates constraint: "); strcat (sql, "virt_name value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.virt_name LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on virts_geometry_columns_auth violates constraint: \n"); strcat (sql, "virt_name value must be lower case')\n"); strcat (sql, "WHERE NEW.virt_name <> lower(NEW.virt_name);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vtgcau_virt_name_update\n"); strcat (sql, "BEFORE UPDATE OF 'virt_name' ON 'virts_geometry_columns_auth'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on virts_geometry_columns_auth violates constraint: "); strcat (sql, "virt_name value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.virt_name LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on virts_geometry_columns_auth violates constraint: "); strcat (sql, "virt_name value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.virt_name LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on virts_geometry_columns_auth violates constraint: "); strcat (sql, "virt_name value must be lower case')\n"); strcat (sql, "WHERE NEW.virt_name <> lower(NEW.virt_name);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vtgcau_virt_geometry_insert\n"); strcat (sql, "BEFORE INSERT ON 'virts_geometry_columns_auth'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on virts_geometry_columns_auth violates constraint: "); strcat (sql, "virt_geometry value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.virt_geometry LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on virts_geometry_columns_auth violates constraint: \n"); strcat (sql, "virt_geometry value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.virt_geometry LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on virts_geometry_columns_auth violates constraint: "); strcat (sql, "virt_geometry value must be lower case')\n"); strcat (sql, "WHERE NEW.virt_geometry <> lower(NEW.virt_geometry);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vtgcau_virt_geometry_update\n"); strcat (sql, "BEFORE UPDATE OF 'virt_geometry' ON 'virts_geometry_columns_auth'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on virts_geometry_columns_auth violates constraint: "); strcat (sql, "virt_geometry value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.virt_geometry LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on virts_geometry_columns_auth violates constraint: \n"); strcat (sql, "virt_geometry value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.virt_geometry LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on virts_geometry_columns_auth violates constraint: "); strcat (sql, "virt_geometry value must be lower case')\n"); strcat (sql, "WHERE NEW.virt_geometry <> lower(NEW.virt_geometry);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } return 1; } static int create_geometry_columns_views (sqlite3 * sqlite) { char sql[4186]; char *errMsg = NULL; int ret; /* creating the VECTOR_LAYERS view */ strcpy (sql, "CREATE VIEW IF NOT EXISTS "); strcat (sql, "vector_layers AS\n"); strcat (sql, "SELECT 'SpatialTable' AS layer_type, "); strcat (sql, "f_table_name AS table_name, "); strcat (sql, "f_geometry_column AS geometry_column, "); strcat (sql, "geometry_type AS geometry_type, "); strcat (sql, "coord_dimension AS coord_dimension, "); strcat (sql, "srid AS srid, "); strcat (sql, "spatial_index_enabled AS spatial_index_enabled\n"); strcat (sql, "FROM geometry_columns\n"); strcat (sql, "UNION\n"); strcat (sql, "SELECT 'SpatialView' AS layer_type, "); strcat (sql, "a.view_name AS table_name, "); strcat (sql, "a.view_geometry AS geometry_column, "); strcat (sql, "b.geometry_type AS geometry_type, "); strcat (sql, "b.coord_dimension AS coord_dimension, "); strcat (sql, "b.srid AS srid, "); strcat (sql, "b.spatial_index_enabled AS spatial_index_enabled\n"); strcat (sql, "FROM views_geometry_columns AS a\n"); strcat (sql, "LEFT JOIN geometry_columns AS b ON ("); strcat (sql, "Upper(a.f_table_name) = Upper(b.f_table_name) AND "); strcat (sql, "Upper(a.f_geometry_column) = Upper(b.f_geometry_column))\n"); strcat (sql, "UNION\n"); strcat (sql, "SELECT 'VirtualShape' AS layer_type, "); strcat (sql, "virt_name AS table_name, "); strcat (sql, "virt_geometry AS geometry_column, "); strcat (sql, "geometry_type AS geometry_type, "); strcat (sql, "coord_dimension AS coord_dimension, "); strcat (sql, "srid AS srid, "); strcat (sql, "0 AS spatial_index_enabled\n"); strcat (sql, "FROM virts_geometry_columns"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } /* creating the VECTOR_LAYERS_AUTH view */ strcpy (sql, "CREATE VIEW IF NOT EXISTS "); strcat (sql, "vector_layers_auth AS\n"); strcat (sql, "SELECT 'SpatialTable' AS layer_type, "); strcat (sql, "f_table_name AS table_name, "); strcat (sql, "f_geometry_column AS geometry_column, "); strcat (sql, "read_only AS read_only, "); strcat (sql, "hidden AS hidden\n"); strcat (sql, "FROM geometry_columns_auth\n"); strcat (sql, "UNION\n"); strcat (sql, "SELECT 'SpatialView' AS layer_type, "); strcat (sql, "a.view_name AS table_name, "); strcat (sql, "a.view_geometry AS geometry_column, "); strcat (sql, "b.read_only AS read_only, "); strcat (sql, "a.hidden AS hidden\n"); strcat (sql, "FROM views_geometry_columns_auth AS a\n"); strcat (sql, "JOIN views_geometry_columns AS b ON ("); strcat (sql, "Upper(a.view_name) = Upper(b.view_name) AND "); strcat (sql, "Upper(a.view_geometry) = Upper(b.view_geometry))\n"); strcat (sql, "UNION\n"); strcat (sql, "SELECT 'VirtualShape' AS layer_type, "); strcat (sql, "virt_name AS table_name, "); strcat (sql, "virt_geometry AS geometry_column, "); strcat (sql, "1 AS read_only, "); strcat (sql, "hidden AS hidden\n"); strcat (sql, "FROM virts_geometry_columns_auth"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } /* creating the VECTOR_LAYERS_STATISTICS view */ strcpy (sql, "CREATE VIEW IF NOT EXISTS "); strcat (sql, "vector_layers_statistics AS\n"); strcat (sql, "SELECT 'SpatialTable' AS layer_type, "); strcat (sql, "f_table_name AS table_name, "); strcat (sql, "f_geometry_column AS geometry_column, "); strcat (sql, "last_verified AS last_verified, "); strcat (sql, "row_count AS row_count, "); strcat (sql, "extent_min_x AS extent_min_x, "); strcat (sql, "extent_min_y AS extent_min_y, "); strcat (sql, "extent_max_x AS extent_max_x, "); strcat (sql, "extent_max_y AS extent_max_y\n"); strcat (sql, "FROM geometry_columns_statistics\n"); strcat (sql, "UNION\n"); strcat (sql, "SELECT 'SpatialView' AS layer_type, "); strcat (sql, "view_name AS table_name, "); strcat (sql, "view_geometry AS geometry_column, "); strcat (sql, "last_verified AS last_verified, "); strcat (sql, "row_count AS row_count, "); strcat (sql, "extent_min_x AS extent_min_x, "); strcat (sql, "extent_min_y AS extent_min_y, "); strcat (sql, "extent_max_x AS extent_max_x, "); strcat (sql, "extent_max_y AS extent_max_y\n"); strcat (sql, "FROM views_geometry_columns_statistics\n"); strcat (sql, "UNION\n"); strcat (sql, "SELECT 'VirtualShape' AS layer_type, "); strcat (sql, "virt_name AS table_name, "); strcat (sql, "virt_geometry AS geometry_column, "); strcat (sql, "last_verified AS last_verified, "); strcat (sql, "row_count AS row_count, "); strcat (sql, "extent_min_x AS extent_min_x, "); strcat (sql, "extent_min_y AS extent_min_y, "); strcat (sql, "extent_max_x AS extent_max_x, "); strcat (sql, "extent_max_y AS extent_max_y\n"); strcat (sql, "FROM virts_geometry_columns_statistics"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } /* creating the VECTOR_LAYERS_FIELD_INFOS view */ strcpy (sql, "CREATE VIEW IF NOT EXISTS "); strcat (sql, "vector_layers_field_infos AS\n"); strcat (sql, "SELECT 'SpatialTable' AS layer_type, "); strcat (sql, "f_table_name AS table_name, "); strcat (sql, "f_geometry_column AS geometry_column, "); strcat (sql, "ordinal AS ordinal, "); strcat (sql, "column_name AS column_name, "); strcat (sql, "null_values AS null_values, "); strcat (sql, "integer_values AS integer_values, "); strcat (sql, "double_values AS double_values, "); strcat (sql, "text_values AS text_values, "); strcat (sql, "blob_values AS blob_values, "); strcat (sql, "max_size AS max_size, "); strcat (sql, "integer_min AS integer_min, "); strcat (sql, "integer_max AS integer_max, "); strcat (sql, "double_min AS double_min, "); strcat (sql, "double_max double_max\n"); strcat (sql, "FROM geometry_columns_field_infos\n"); strcat (sql, "UNION\n"); strcat (sql, "SELECT 'SpatialView' AS layer_type, "); strcat (sql, "view_name AS table_name, "); strcat (sql, "view_geometry AS geometry_column, "); strcat (sql, "ordinal AS ordinal, "); strcat (sql, "column_name AS column_name, "); strcat (sql, "null_values AS null_values, "); strcat (sql, "integer_values AS integer_values, "); strcat (sql, "double_values AS double_values, "); strcat (sql, "text_values AS text_values, "); strcat (sql, "blob_values AS blob_values, "); strcat (sql, "max_size AS max_size, "); strcat (sql, "integer_min AS integer_min, "); strcat (sql, "integer_max AS integer_max, "); strcat (sql, "double_min AS double_min, "); strcat (sql, "double_max double_max\n"); strcat (sql, "FROM views_geometry_columns_field_infos\n"); strcat (sql, "UNION\n"); strcat (sql, "SELECT 'VirtualShape' AS layer_type, "); strcat (sql, "virt_name AS table_name, "); strcat (sql, "virt_geometry AS geometry_column, "); strcat (sql, "ordinal AS ordinal, "); strcat (sql, "column_name AS column_name, "); strcat (sql, "null_values AS null_values, "); strcat (sql, "integer_values AS integer_values, "); strcat (sql, "double_values AS double_values, "); strcat (sql, "text_values AS text_values, "); strcat (sql, "blob_values AS blob_values, "); strcat (sql, "max_size AS max_size, "); strcat (sql, "integer_min AS integer_min, "); strcat (sql, "integer_max AS integer_max, "); strcat (sql, "double_min AS double_min, "); strcat (sql, "double_max double_max\n"); strcat (sql, "FROM virts_geometry_columns_field_infos"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } return 1; } SPATIALITE_PRIVATE int check_layer_statistics (void *p_sqlite) { /* / checks the LAYER_STATISTICS table for validity; / if the table doesn't exist, attempts to create */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; char sql[8192]; char **results; int rows; int columns; int ret; int raster_layer = 0; int table_name = 0; int geometry_column = 0; int row_count = 0; int extent_min_x = 0; int extent_min_y = 0; int extent_max_x = 0; int extent_max_y = 0; int i; const char *name; int has_pk = 0; /* checking the LAYER_STATISTICS table */ ret = sqlite3_get_table (sqlite, "PRAGMA table_info(layer_statistics)", &results, &rows, &columns, NULL); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 1]; if (strcasecmp (name, "raster_layer") == 0) raster_layer = 1; if (strcasecmp (name, "table_name") == 0) table_name = 1; if (strcasecmp (name, "geometry_column") == 0) geometry_column = 1; if (strcasecmp (name, "row_count") == 0) row_count = 1; if (strcasecmp (name, "extent_min_x") == 0) extent_min_x = 1; if (strcasecmp (name, "extent_min_y") == 0) extent_min_y = 1; if (strcasecmp (name, "extent_max_x") == 0) extent_max_x = 1; if (strcasecmp (name, "extent_max_y") == 0) extent_max_y = 1; } } sqlite3_free_table (results); /* LAYER_STATISTICS already exists and has a valid layout */ if (raster_layer && table_name && geometry_column && row_count && extent_min_x && extent_max_x && extent_min_y && extent_max_y) return 1; /* LAYER_STATISTICS already exists, but has an invalid layout */ if (raster_layer || table_name || geometry_column || row_count || extent_min_x || extent_max_x || extent_min_y || extent_max_y) return 0; /* checking if GEOMETRY_COLUMNS has a Primary Key */ ret = sqlite3_get_table (sqlite, "PRAGMA table_info(geometry_columns)", &results, &rows, &columns, NULL); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 5]; if (atoi (name) != 0) has_pk = 1; } } sqlite3_free_table (results); /* attempting to create LAYER_STATISTICS */ if (has_pk) { /* GEOMETRY_COLUMNS has a Primary Key */ strcpy (sql, "CREATE TABLE layer_statistics (\n"); strcat (sql, "raster_layer INTEGER NOT NULL,\n"); strcat (sql, "table_name TEXT NOT NULL,\n"); strcat (sql, "geometry_column TEXT NOT NULL,\n"); strcat (sql, "row_count INTEGER,\n"); strcat (sql, "extent_min_x DOUBLE,\n"); strcat (sql, "extent_min_y DOUBLE,\n"); strcat (sql, "extent_max_x DOUBLE,\n"); strcat (sql, "extent_max_y DOUBLE,\n"); strcat (sql, "CONSTRAINT pk_layer_statistics PRIMARY KEY "); strcat (sql, "(raster_layer, table_name, geometry_column),\n"); strcat (sql, "CONSTRAINT fk_layer_statistics FOREIGN KEY "); strcat (sql, "(table_name, geometry_column) REFERENCES "); strcat (sql, "geometry_columns (f_table_name, f_geometry_column) "); strcat (sql, "ON DELETE CASCADE)"); } else { /* there is no Primary Key on GEOMETRY_COLUMNS */ strcpy (sql, "CREATE TABLE layer_statistics (\n"); strcat (sql, "raster_layer INTEGER NOT NULL,\n"); strcat (sql, "table_name TEXT NOT NULL,\n"); strcat (sql, "geometry_column TEXT NOT NULL,\n"); strcat (sql, "row_count INTEGER,\n"); strcat (sql, "extent_min_x DOUBLE,\n"); strcat (sql, "extent_min_y DOUBLE,\n"); strcat (sql, "extent_max_x DOUBLE,\n"); strcat (sql, "extent_max_y DOUBLE,\n"); strcat (sql, "CONSTRAINT pk_layer_statistics PRIMARY KEY "); strcat (sql, "(raster_layer, table_name, geometry_column))"); } ret = sqlite3_exec (sqlite, sql, NULL, NULL, NULL); if (ret != SQLITE_OK) return 0; return 1; } SPATIALITE_PRIVATE int check_views_layer_statistics (void *p_sqlite) { /* / checks the VIEWS_LAYER_STATISTICS table for validity; / if the table doesn't exist, attempts to create */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; char sql[8192]; char **results; int rows; int columns; int ret; int view_name = 0; int view_geometry = 0; int row_count = 0; int extent_min_x = 0; int extent_min_y = 0; int extent_max_x = 0; int extent_max_y = 0; int i; const char *name; /* checking the VIEWS_LAYER_STATISTICS table */ ret = sqlite3_get_table (sqlite, "PRAGMA table_info(views_layer_statistics)", &results, &rows, &columns, NULL); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 1]; if (strcasecmp (name, "view_name") == 0) view_name = 1; if (strcasecmp (name, "view_geometry") == 0) view_geometry = 1; if (strcasecmp (name, "row_count") == 0) row_count = 1; if (strcasecmp (name, "extent_min_x") == 0) extent_min_x = 1; if (strcasecmp (name, "extent_min_y") == 0) extent_min_y = 1; if (strcasecmp (name, "extent_max_x") == 0) extent_max_x = 1; if (strcasecmp (name, "extent_max_y") == 0) extent_max_y = 1; } } sqlite3_free_table (results); /* VIEWS_LAYER_STATISTICS already exists and has a valid layout */ if (view_name && view_geometry && row_count && extent_min_x && extent_max_x && extent_min_y && extent_max_y) return 1; /* VIEWS_LAYER_STATISTICS already exists, but has an invalid layout */ if (view_name || view_geometry || row_count || extent_min_x || extent_max_x || extent_min_y || extent_max_y) return 0; /* attempting to create VIEWS_LAYER_STATISTICS */ strcpy (sql, "CREATE TABLE views_layer_statistics (\n"); strcat (sql, "view_name TEXT NOT NULL,\n"); strcat (sql, "view_geometry TEXT NOT NULL,\n"); strcat (sql, "row_count INTEGER,\n"); strcat (sql, "extent_min_x DOUBLE,\n"); strcat (sql, "extent_min_y DOUBLE,\n"); strcat (sql, "extent_max_x DOUBLE,\n"); strcat (sql, "extent_max_y DOUBLE,\n"); strcat (sql, "CONSTRAINT pk_views_layer_statistics PRIMARY KEY "); strcat (sql, "(view_name, view_geometry),\n"); strcat (sql, "CONSTRAINT fk_views_layer_statistics FOREIGN KEY "); strcat (sql, "(view_name, view_geometry) REFERENCES "); strcat (sql, "views_geometry_columns (view_name, view_geometry) "); strcat (sql, "ON DELETE CASCADE)"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, NULL); if (ret != SQLITE_OK) return 0; return 1; } SPATIALITE_PRIVATE int check_virts_layer_statistics (void *p_sqlite) { /* / checks the VIRTS_LAYER_STATISTICS table for validity; / if the table doesn't exist, attempts to create */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; char sql[8192]; char **results; int rows; int columns; int ret; int virt_name = 0; int virt_geometry = 0; int row_count = 0; int extent_min_x = 0; int extent_min_y = 0; int extent_max_x = 0; int extent_max_y = 0; int i; const char *name; /* checking the VIRTS_LAYER_STATISTICS table */ ret = sqlite3_get_table (sqlite, "PRAGMA table_info(virts_layer_statistics)", &results, &rows, &columns, NULL); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 1]; if (strcasecmp (name, "virt_name") == 0) virt_name = 1; if (strcasecmp (name, "virt_geometry") == 0) virt_geometry = 1; if (strcasecmp (name, "row_count") == 0) row_count = 1; if (strcasecmp (name, "extent_min_x") == 0) extent_min_x = 1; if (strcasecmp (name, "extent_min_y") == 0) extent_min_y = 1; if (strcasecmp (name, "extent_max_x") == 0) extent_max_x = 1; if (strcasecmp (name, "extent_max_y") == 0) extent_max_y = 1; } } sqlite3_free_table (results); /* VIRTS_LAYER_STATISTICS already exists and has a valid layout */ if (virt_name && virt_geometry && row_count && extent_min_x && extent_max_x && extent_min_y && extent_max_y) return 1; /* VIRTS_LAYER_STATISTICS already exists, but has an invalid layout */ if (virt_name || virt_geometry || row_count || extent_min_x || extent_max_x || extent_min_y || extent_max_y) return 0; /* attempting to create VIRTS_LAYER_STATISTICS */ strcpy (sql, "CREATE TABLE virts_layer_statistics (\n"); strcat (sql, "virt_name TEXT NOT NULL,\n"); strcat (sql, "virt_geometry TEXT NOT NULL,\n"); strcat (sql, "row_count INTEGER,\n"); strcat (sql, "extent_min_x DOUBLE,\n"); strcat (sql, "extent_min_y DOUBLE,\n"); strcat (sql, "extent_max_x DOUBLE,\n"); strcat (sql, "extent_max_y DOUBLE,\n"); strcat (sql, "CONSTRAINT pk_virts_layer_statistics PRIMARY KEY "); strcat (sql, "(virt_name, virt_geometry),\n"); strcat (sql, "CONSTRAINT fk_virts_layer_statistics FOREIGN KEY "); strcat (sql, "(virt_name, virt_geometry) REFERENCES "); strcat (sql, "virts_geometry_columns (virt_name, virt_geometry) "); strcat (sql, "ON DELETE CASCADE)"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, NULL); if (ret != SQLITE_OK) return 0; return 1; } static int create_sql_statements_log (sqlite3 * sqlite) { char sql[4186]; char *errMsg = NULL; int ret; /* creating the SQL_STATEMENTS_LOG table */ strcpy (sql, "CREATE TABLE IF NOT EXISTS "); strcat (sql, "sql_statements_log (\n"); strcat (sql, "id INTEGER PRIMARY KEY AUTOINCREMENT,\n"); strcat (sql, "time_start TIMESTAMP NOT NULL DEFAULT '0000-01-01T00:00:00.000Z',\n"); strcat (sql, "time_end TIMESTAMP NOT NULL DEFAULT '0000-01-01T00:00:00.000Z',\n"); strcat (sql, "user_agent TEXT NOT NULL,\n"); strcat (sql, "sql_statement TEXT NOT NULL,\n"); strcat (sql, "success INTEGER NOT NULL DEFAULT 0,\n"); strcat (sql, "error_cause TEXT NOT NULL DEFAULT 'ABORTED',\n"); strcat (sql, "CONSTRAINT sqllog_success CHECK "); strcat (sql, "(success IN (0,1)))"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } return 1; } SPATIALITE_PRIVATE int createAdvancedMetaData (void *p_sqlite) { /* creating the advanced MetaData tables */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; if (!create_views_geometry_columns (sqlite)) return 0; if (!create_virts_geometry_columns (sqlite)) return 0; if (!create_geometry_columns_statistics (sqlite)) return 0; if (!create_views_geometry_columns_statistics (sqlite)) return 0; if (!create_virts_geometry_columns_statistics (sqlite)) return 0; if (!create_geometry_columns_field_infos (sqlite)) return 0; if (!create_views_geometry_columns_field_infos (sqlite)) return 0; if (!create_virts_geometry_columns_field_infos (sqlite)) return 0; if (!create_geometry_columns_times (sqlite)) return 0; if (!create_geometry_columns_auth (sqlite)) return 0; if (!create_views_geometry_columns_auth (sqlite)) return 0; if (!create_virts_geometry_columns_auth (sqlite)) return 0; if (!create_geometry_columns_views (sqlite)) return 0; if (!create_sql_statements_log (sqlite)) return 0; return 1; } SPATIALITE_PRIVATE int createGeometryColumns (void *p_sqlite) { sqlite3 *sqlite = (sqlite3 *) p_sqlite; char sql[4186]; char *errMsg = NULL; int ret; /* creating the GEOMETRY_COLUMNS table */ strcpy (sql, "CREATE TABLE geometry_columns (\n"); strcat (sql, "f_table_name TEXT NOT NULL,\n"); strcat (sql, "f_geometry_column TEXT NOT NULL,\n"); strcat (sql, "geometry_type INTEGER NOT NULL,\n"); strcat (sql, "coord_dimension INTEGER NOT NULL,\n"); strcat (sql, "srid INTEGER NOT NULL,\n"); strcat (sql, "spatial_index_enabled INTEGER NOT NULL,\n"); strcat (sql, "CONSTRAINT pk_geom_cols PRIMARY KEY "); strcat (sql, "(f_table_name, f_geometry_column),\n"); strcat (sql, "CONSTRAINT fk_gc_srs FOREIGN KEY "); strcat (sql, "(srid) REFERENCES spatial_ref_sys (srid),\n"); strcat (sql, "CONSTRAINT ck_gc_rtree CHECK "); strcat (sql, "(spatial_index_enabled IN (0,1,2)))"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } updateSpatiaLiteHistory (sqlite, "geometry_columns", NULL, "table successfully created"); /* creating an INDEX corresponding to the SRID FK */ strcpy (sql, "CREATE INDEX idx_srid_geocols ON geometry_columns\n"); strcat (sql, "(srid) "); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } /* creating the GEOMETRY_COLUMNS triggers */ strcpy (sql, "CREATE TRIGGER geometry_columns_f_table_name_insert\n"); strcat (sql, "BEFORE INSERT ON 'geometry_columns'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns violates constraint: "); strcat (sql, "f_table_name value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.f_table_name LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns violates constraint: "); strcat (sql, "f_table_name value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.f_table_name LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns violates constraint: \n"); strcat (sql, "f_table_name value must be lower case')\n"); strcat (sql, "WHERE NEW.f_table_name <> lower(NEW.f_table_name);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } updateSpatiaLiteHistory (sqlite, "geometry_columns", NULL, "trigger 'geometry_columns_f_table_name_insert' successfully created"); strcpy (sql, "CREATE TRIGGER geometry_columns_f_table_name_update\n"); strcat (sql, "BEFORE UPDATE OF 'f_table_name' ON 'geometry_columns'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns violates constraint: "); strcat (sql, "f_table_name value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.f_table_name LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns violates constraint: "); strcat (sql, "f_table_name value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.f_table_name LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns violates constraint: "); strcat (sql, "f_table_name value must be lower case')\n"); strcat (sql, "WHERE NEW.f_table_name <> lower(NEW.f_table_name);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } updateSpatiaLiteHistory (sqlite, "geometry_columns", NULL, "trigger 'geometry_columns_f_table_name_update' successfully created"); strcpy (sql, "CREATE TRIGGER geometry_columns_f_geometry_column_insert\n"); strcat (sql, "BEFORE INSERT ON 'geometry_columns'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns violates constraint: "); strcat (sql, "f_geometry_column value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.f_geometry_column LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns violates constraint: \n"); strcat (sql, "f_geometry_column value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.f_geometry_column LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns violates constraint: "); strcat (sql, "f_geometry_column value must be lower case')\n"); strcat (sql, "WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } updateSpatiaLiteHistory (sqlite, "geometry_columns", NULL, "trigger 'geometry_columns_f_geometry_column_insert' successfully created"); strcpy (sql, "CREATE TRIGGER geometry_columns_f_geometry_column_update\n"); strcat (sql, "BEFORE UPDATE OF 'f_geometry_column' ON 'geometry_columns'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns violates constraint: "); strcat (sql, "f_geometry_column value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.f_geometry_column LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns violates constraint: "); strcat (sql, "f_geometry_column value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.f_geometry_column LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns violates constraint: "); strcat (sql, "f_geometry_column value must be lower case')\n"); strcat (sql, "WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } updateSpatiaLiteHistory (sqlite, "geometry_columns", NULL, "trigger 'geometry_columns_f_geometry_column_update' successfully created"); strcpy (sql, "CREATE TRIGGER geometry_columns_geometry_type_insert\n"); strcat (sql, "BEFORE INSERT ON 'geometry_columns'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'geometry_type must be one of "); strcat (sql, "0,1,2,3,4,5,6,7,"); strcat (sql, "1000,1001,1002,1003,1004,1005,1006,1007,"); strcat (sql, "2000,2001,2002,2003,2004,2005,2006,2007,"); strcat (sql, "3000,3001,3002,3003,3004,3005,3006,3007')\n"); strcat (sql, "WHERE NOT(NEW.geometry_type IN (0,1,2,3,4,5,6,7,"); strcat (sql, "1000,1001,1002,1003,1004,1005,1006,1007,"); strcat (sql, "2000,2001,2002,2003,2004,2005,2006,2007,"); strcat (sql, "3000,3001,3002,3003,3004,3005,3006,3007));\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } updateSpatiaLiteHistory (sqlite, "geometry_columns", NULL, "trigger 'geometry_columns_geometry_type_insert' successfully created"); strcpy (sql, "CREATE TRIGGER geometry_columns_geometry_type_update\n"); strcat (sql, "BEFORE UPDATE OF 'geometry_type' ON 'geometry_columns'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'geometry_type must be one of "); strcat (sql, "0,1,2,3,4,5,6,7,"); strcat (sql, "1000,1001,1002,1003,1004,1005,1006,1007,"); strcat (sql, "2000,2001,2002,2003,2004,2005,2006,2007,"); strcat (sql, "3000,3001,3002,3003,3004,3005,3006,3007')\n"); strcat (sql, "WHERE NOT(NEW.geometry_type IN (0,1,2,3,4,5,6,7,"); strcat (sql, "1000,1001,1002,1003,1004,1005,1006,1007,"); strcat (sql, "2000,2001,2002,2003,2004,2005,2006,2007,"); strcat (sql, "3000,3001,3002,3003,3004,3005,3006,3007));\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } updateSpatiaLiteHistory (sqlite, "geometry_columns", NULL, "trigger 'geometry_columns_geometry_type_update' successfully created"); strcpy (sql, "CREATE TRIGGER geometry_columns_coord_dimension_insert\n"); strcat (sql, "BEFORE INSERT ON 'geometry_columns'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'coord_dimension must be one of 2,3,4')\n"); strcat (sql, "WHERE NOT(NEW.coord_dimension IN (2,3,4));\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } updateSpatiaLiteHistory (sqlite, "geometry_columns", NULL, "trigger 'geometry_columns_coord_dimension_insert' successfully created"); strcpy (sql, "CREATE TRIGGER geometry_columns_coord_dimension_update\n"); strcat (sql, "BEFORE UPDATE OF 'coord_dimension' ON 'geometry_columns'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'coord_dimension must be one of 2,3,4')\n"); strcat (sql, "WHERE NOT(NEW.coord_dimension IN (2,3,4));\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } updateSpatiaLiteHistory (sqlite, "geometry_columns", NULL, "trigger 'geometry_columns_coord_dimension_update' successfully created"); return 1; } SPATIALITE_PRIVATE void updateGeometryTriggers (void *p_sqlite, const char *table, const char *column) { /* updates triggers for some Spatial Column */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; int ret; int col_index; const char *col_dims; int index; int cached; int dims; char *txt_dims; int len; char *errMsg = NULL; char *sql_statement; char *raw; char *quoted_trigger; char *quoted_rtree; char *quoted_table; char *quoted_column; char *p_table = NULL; char *p_column = NULL; sqlite3_stmt *stmt; struct spatial_index_str *first_idx = NULL; struct spatial_index_str *last_idx = NULL; struct spatial_index_str *curr_idx; struct spatial_index_str *next_idx; int metadata_version = checkSpatialMetaData (sqlite); if (!getRealSQLnames (sqlite, table, column, &p_table, &p_column)) { spatialite_e ("updateTableTriggers() error: not existing Table or Column\n"); return; } if (metadata_version == 3) { /* current metadata style >= v.4.0.0 */ sql_statement = sqlite3_mprintf ("SELECT spatial_index_enabled " "FROM geometry_columns WHERE Lower(f_table_name) = Lower(?) " "AND Lower(f_geometry_column) = Lower(?)"); } else { /* legacy metadata style <= v.3.1.0 */ sql_statement = sqlite3_mprintf ("SELECT spatial_index_enabled, coord_dimension " "FROM geometry_columns WHERE Lower(f_table_name) = Lower(?) " "AND Lower(f_geometry_column) = Lower(?)"); } /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("updateTableTriggers: error %d \"%s\"\n", sqlite3_errcode (sqlite), sqlite3_errmsg (sqlite)); return; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, table, strlen (table), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, column, strlen (column), SQLITE_STATIC); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { col_index = sqlite3_column_int (stmt, 0); if (metadata_version == 1) { /* legacy metadata style <= v.3.1.0 */ col_dims = (const char *) sqlite3_column_text (stmt, 1); dims = GAIA_XY; if (strcasecmp (col_dims, "XYZ") == 0) dims = GAIA_XY_Z; if (strcasecmp (col_dims, "XYM") == 0) dims = GAIA_XY_M; if (strcasecmp (col_dims, "XYZM") == 0) dims = GAIA_XY_Z_M; switch (dims) { case GAIA_XY_Z: txt_dims = "XYZ"; break; case GAIA_XY_M: txt_dims = "XYM"; break; case GAIA_XY_Z_M: txt_dims = "XYZM"; break; default: txt_dims = "XY"; break; }; } index = 0; cached = 0; if (col_index == 1) index = 1; if (col_index == 2) cached = 1; /* trying to delete old versions [v2.0, v2.2] triggers[if any] */ raw = sqlite3_mprintf ("gti_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS \"%s\"", quoted_trigger); free (quoted_trigger); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; raw = sqlite3_mprintf ("gtu_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS \"%s\"", quoted_trigger); free (quoted_trigger); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; raw = sqlite3_mprintf ("gsi_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS \"%s\"", quoted_trigger); free (quoted_trigger); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; raw = sqlite3_mprintf ("gsu_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS \"%s\"", quoted_trigger); free (quoted_trigger); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; /* end deletion old versions [v2.0, v2.2] triggers[if any] */ /* deleting the old INSERT trigger TYPE [if any] */ raw = sqlite3_mprintf ("ggi_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS \"%s\"", quoted_trigger); free (quoted_trigger); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; /* inserting the new INSERT trigger TYPE */ raw = sqlite3_mprintf ("ggi_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); quoted_table = gaiaDoubleQuotedSql (p_table); quoted_column = gaiaDoubleQuotedSql (p_column); if (metadata_version == 3) { /* current metadata style >= v.4.0.0 */ sql_statement = sqlite3_mprintf ("CREATE TRIGGER \"%s\" BEFORE INSERT ON \"%s\"\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, '%q.%q violates Geometry constraint [geom-type or SRID not allowed]')\n" "WHERE (SELECT geometry_type FROM geometry_columns\n" "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)\n" "AND GeometryConstraints(NEW.\"%s\", geometry_type, srid) = 1) IS NULL;\nEND", quoted_trigger, quoted_table, p_table, p_column, p_table, p_column, quoted_column); free (quoted_trigger); free (quoted_table); free (quoted_column); } else { /* legacy metadata style <= v.3.1.0 */ sql_statement = sqlite3_mprintf ("CREATE TRIGGER \"%s\" BEFORE INSERT ON \"%s\"\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, '%q.%q violates Geometry constraint [geom-type or SRID not allowed]')\n" "WHERE (SELECT type FROM geometry_columns\n" "WHERE f_table_name = %Q AND f_geometry_column = %Q\n" "AND GeometryConstraints(NEW.\"%s\", type, srid, %Q) = 1) IS NULL;\nEND", quoted_trigger, quoted_table, p_table, p_column, p_table, p_column, quoted_column, txt_dims); free (quoted_trigger); free (quoted_table); free (quoted_column); } ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; /* deleting the old UPDATE trigger TYPE [if any] */ raw = sqlite3_mprintf ("ggu_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS \"%s\"", quoted_trigger); free (quoted_trigger); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; /* inserting the new UPDATE trigger TYPE */ raw = sqlite3_mprintf ("ggu_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); quoted_table = gaiaDoubleQuotedSql (p_table); quoted_column = gaiaDoubleQuotedSql (p_column); if (metadata_version == 3) { /* current metadata style >= v.4.0.0 */ sql_statement = sqlite3_mprintf ("CREATE TRIGGER \"%s\" BEFORE UPDATE ON \"%s\"\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, '%q.%q violates Geometry constraint [geom-type or SRID not allowed]')\n" "WHERE (SELECT geometry_type FROM geometry_columns\n" "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)\n" "AND GeometryConstraints(NEW.\"%s\", geometry_type, srid) = 1) IS NULL;\nEND", quoted_trigger, quoted_table, p_table, p_column, p_table, p_column, quoted_column); free (quoted_trigger); free (quoted_table); free (quoted_column); } else { /* legacy metadata style <= v.3.1.0 */ sql_statement = sqlite3_mprintf ("CREATE TRIGGER \"%s\" BEFORE UPDATE ON \"%s\"\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, '%q.%q violates Geometry constraint [geom-type or SRID not allowed]')\n" "WHERE (SELECT type FROM geometry_columns\n" "WHERE f_table_name = %Q AND f_geometry_column = %Q\n" "AND GeometryConstraints(NEW.\"%s\", type, srid, %Q) = 1) IS NULL;\nEND", quoted_trigger, quoted_table, p_table, p_column, p_table, p_column, quoted_column, txt_dims); free (quoted_trigger); free (quoted_table); free (quoted_column); } ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; /* inserting SpatialIndex information into the linked list */ curr_idx = malloc (sizeof (struct spatial_index_str)); len = strlen (p_table); curr_idx->TableName = malloc (len + 1); strcpy (curr_idx->TableName, p_table); len = strlen (p_column); curr_idx->ColumnName = malloc (len + 1); strcpy (curr_idx->ColumnName, p_column); curr_idx->ValidRtree = (char) index; curr_idx->ValidCache = (char) cached; curr_idx->Next = NULL; if (!first_idx) first_idx = curr_idx; if (last_idx) last_idx->Next = curr_idx; last_idx = curr_idx; /* deleting the old INSERT trigger SPATIAL_INDEX [if any] */ raw = sqlite3_mprintf ("gii_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS \"%s\"", quoted_trigger); free (quoted_trigger); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; if (metadata_version == 3) { /* deleting the old UPDATE (timestamp) trigger [if any] */ raw = sqlite3_mprintf ("tmu_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS \"%s\"", quoted_trigger); free (quoted_trigger); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; /* deleting the old INSERT (timestamp) trigger [if any] */ raw = sqlite3_mprintf ("tmi_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS \"%s\"", quoted_trigger); free (quoted_trigger); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; /* deleting the old DELETE (timestamp) trigger [if any] */ raw = sqlite3_mprintf ("tmd_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS \"%s\"", quoted_trigger); free (quoted_trigger); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; } if (index == 0 && cached == 0) { if (metadata_version == 3) { /* current metadata style >= v.4.0.0 */ /* inserting the new UPDATE (timestamp) trigger */ raw = sqlite3_mprintf ("tmu_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); quoted_table = gaiaDoubleQuotedSql (p_table); sql_statement = sqlite3_mprintf ("CREATE TRIGGER \"%s\" AFTER UPDATE ON \"%s\"\n" "FOR EACH ROW BEGIN\n" "UPDATE geometry_columns_time SET last_update = strftime('%%Y-%%m-%%dT%%H:%%M:%%fZ', 'now')\n" "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q);\nEND", quoted_trigger, quoted_table, p_table, p_column); free (quoted_trigger); free (quoted_table); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; /* inserting the new INSERT (timestamp) trigger */ raw = sqlite3_mprintf ("tmi_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); quoted_table = gaiaDoubleQuotedSql (p_table); sql_statement = sqlite3_mprintf ("CREATE TRIGGER \"%s\" AFTER INSERT ON \"%s\"\n" "FOR EACH ROW BEGIN\n" "UPDATE geometry_columns_time SET last_insert = strftime('%%Y-%%m-%%dT%%H:%%M:%%fZ', 'now')\n" "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q);\nEND", quoted_trigger, quoted_table, p_table, p_column); free (quoted_trigger); free (quoted_table); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; /* inserting the new DELETE (timestamp) trigger */ raw = sqlite3_mprintf ("tmd_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); quoted_table = gaiaDoubleQuotedSql (p_table); sql_statement = sqlite3_mprintf ("CREATE TRIGGER \"%s\" AFTER DELETE ON \"%s\"\n" "FOR EACH ROW BEGIN\n" "UPDATE geometry_columns_time SET last_delete = strftime('%%Y-%%m-%%dT%%H:%%M:%%fZ', 'now')\n" "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q);\nEND", quoted_trigger, quoted_table, p_table, p_column); free (quoted_trigger); free (quoted_table); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; } } /* deleting the old INSERT trigger SPATIAL_INDEX [if any] */ raw = sqlite3_mprintf ("gid_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS \"%s\"", quoted_trigger); free (quoted_trigger); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; /* deleting the old UPDATE trigger SPATIAL_INDEX [if any] */ raw = sqlite3_mprintf ("giu_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS \"%s\"", quoted_trigger); free (quoted_trigger); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; /* deleting the old DELETE trigger SPATIAL_INDEX [if any] */ raw = sqlite3_mprintf ("gid_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS \"%s\"", quoted_trigger); free (quoted_trigger); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; /* deleting the old INSERT trigger MBR_CACHE [if any] */ raw = sqlite3_mprintf ("gci_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS \"%s\"", quoted_trigger); free (quoted_trigger); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; /* deleting the old UPDATE trigger MBR_CACHE [if any] */ raw = sqlite3_mprintf ("gcu_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS \"%s\"", quoted_trigger); free (quoted_trigger); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; /* deleting the old UPDATE trigger MBR_CACHE [if any] */ raw = sqlite3_mprintf ("gcd_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS \"%s\"", quoted_trigger); free (quoted_trigger); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; if (index) { /* inserting the new INSERT trigger RTree */ if (metadata_version == 3) { /* current metadata style >= v.4.0.0 */ raw = sqlite3_mprintf ("gii_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); raw = sqlite3_mprintf ("idx_%s_%s", p_table, p_column); quoted_rtree = gaiaDoubleQuotedSql (raw); quoted_table = gaiaDoubleQuotedSql (p_table); quoted_column = gaiaDoubleQuotedSql (p_column); sql_statement = sqlite3_mprintf ("CREATE TRIGGER \"%s\" AFTER INSERT ON \"%s\"\n" "FOR EACH ROW BEGIN\n" "UPDATE geometry_columns_time SET last_insert = strftime('%%Y-%%m-%%dT%%H:%%M:%%fZ', 'now')\n" "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q);\n" "DELETE FROM \"%s\" WHERE pkid=NEW.ROWID;\n" "SELECT RTreeAlign(%Q, NEW.ROWID, NEW.\"%s\");\nEND", quoted_trigger, quoted_table, p_table, p_column, quoted_rtree, raw, quoted_column); sqlite3_free (raw); free (quoted_trigger); free (quoted_rtree); free (quoted_table); free (quoted_column); } else { /* legacy metadata style <= v.3.1.0 */ raw = sqlite3_mprintf ("gii_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); raw = sqlite3_mprintf ("idx_%s_%s", p_table, p_column); quoted_rtree = gaiaDoubleQuotedSql (raw); quoted_table = gaiaDoubleQuotedSql (p_table); quoted_column = gaiaDoubleQuotedSql (p_column); sql_statement = sqlite3_mprintf ("CREATE TRIGGER \"%s\" AFTER INSERT ON \"%s\"\n" "FOR EACH ROW BEGIN\n" "DELETE FROM \"%s\" WHERE pkid=NEW.ROWID;\n" "SELECT RTreeAlign(%Q, NEW.ROWID, NEW.\"%s\");\nEND", quoted_trigger, quoted_table, quoted_rtree, raw, quoted_column); sqlite3_free (raw); free (quoted_trigger); free (quoted_rtree); free (quoted_table); free (quoted_column); } ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; /* inserting the new UPDATE trigger RTree */ if (metadata_version == 3) { /* current metadata style >= v.4.0.0 */ raw = sqlite3_mprintf ("giu_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); raw = sqlite3_mprintf ("idx_%s_%s", p_table, p_column); quoted_rtree = gaiaDoubleQuotedSql (raw); quoted_table = gaiaDoubleQuotedSql (p_table); quoted_column = gaiaDoubleQuotedSql (p_column); sql_statement = sqlite3_mprintf ("CREATE TRIGGER \"%s\" AFTER UPDATE ON \"%s\"\n" "FOR EACH ROW BEGIN\n" "UPDATE geometry_columns_time SET last_update = strftime('%%Y-%%m-%%dT%%H:%%M:%%fZ', 'now')\n" "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q);\n" "DELETE FROM \"%s\" WHERE pkid=NEW.ROWID;\n" "SELECT RTreeAlign(%Q, NEW.ROWID, NEW.\"%s\");\nEND", quoted_trigger, quoted_table, p_table, p_column, quoted_rtree, raw, quoted_column); sqlite3_free (raw); free (quoted_trigger); free (quoted_rtree); free (quoted_table); free (quoted_column); } else { /* legacy metadata style <= v.3.1.0 */ raw = sqlite3_mprintf ("giu_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); raw = sqlite3_mprintf ("idx_%s_%s", p_table, p_column); quoted_rtree = gaiaDoubleQuotedSql (raw); quoted_table = gaiaDoubleQuotedSql (p_table); quoted_column = gaiaDoubleQuotedSql (p_column); sql_statement = sqlite3_mprintf ("CREATE TRIGGER \"%s\" AFTER UPDATE ON \"%s\"\n" "FOR EACH ROW BEGIN\n" "DELETE FROM \"%s\" WHERE pkid=NEW.ROWID;\n" "SELECT RTreeAlign(%Q, NEW.ROWID, NEW.\"%s\");\nEND", quoted_trigger, quoted_table, quoted_rtree, raw, quoted_column); sqlite3_free (raw); free (quoted_trigger); free (quoted_rtree); free (quoted_table); free (quoted_column); } ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; /* inserting the new DELETE trigger RTree */ if (metadata_version == 3) { /* current metadata style >= v.4.0.0 */ raw = sqlite3_mprintf ("gid_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); raw = sqlite3_mprintf ("idx_%s_%s", p_table, p_column); quoted_rtree = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); quoted_table = gaiaDoubleQuotedSql (p_table); quoted_column = gaiaDoubleQuotedSql (p_column); sql_statement = sqlite3_mprintf ("CREATE TRIGGER \"%s\" AFTER DELETE ON \"%s\"\n" "FOR EACH ROW BEGIN\n" "UPDATE geometry_columns_time SET last_delete = strftime('%%Y-%%m-%%dT%%H:%%M:%%fZ', 'now')\n" "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q);\n" "DELETE FROM \"%s\" WHERE pkid=OLD.ROWID;\nEND", quoted_trigger, quoted_table, p_table, p_column, quoted_rtree); free (quoted_trigger); free (quoted_rtree); free (quoted_table); free (quoted_column); } else { /* legacy metadata style <= v.3.1.0 */ raw = sqlite3_mprintf ("gid_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); raw = sqlite3_mprintf ("idx_%s_%s", p_table, p_column); quoted_rtree = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); quoted_table = gaiaDoubleQuotedSql (p_table); quoted_column = gaiaDoubleQuotedSql (p_column); sql_statement = sqlite3_mprintf ("CREATE TRIGGER \"%s\" AFTER DELETE ON \"%s\"\n" "FOR EACH ROW BEGIN\n" "DELETE FROM \"%s\" WHERE pkid=OLD.ROWID;\nEND", quoted_trigger, quoted_table, quoted_rtree); free (quoted_trigger); free (quoted_rtree); free (quoted_table); free (quoted_column); } ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; } if (cached) { /* inserting the new INSERT trigger MBRcache */ if (metadata_version == 3) { /* current metadata style >= v.4.0.0 */ raw = sqlite3_mprintf ("gci_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); raw = sqlite3_mprintf ("cache_%s_%s", p_table, p_column); quoted_rtree = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); quoted_table = gaiaDoubleQuotedSql (p_table); quoted_column = gaiaDoubleQuotedSql (p_column); sql_statement = sqlite3_mprintf ("CREATE TRIGGER \"%s\" AFTER INSERT ON \"%s\"\n" "FOR EACH ROW BEGIN\n" "UPDATE geometry_columns_time SET last_insert = strftime('%%Y-%%m-%%dT%%H:%%M:%%fZ', 'now')\n" "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q);\n" "INSERT INTO \"%s\" (rowid, mbr) VALUES (NEW.ROWID,\nBuildMbrFilter(" "MbrMinX(NEW.\"%s\"), MbrMinY(NEW.\"%s\"), MbrMaxX(NEW.\"%s\"), MbrMaxY(NEW.\"%s\")));\nEND", quoted_trigger, quoted_table, p_table, p_column, quoted_rtree, quoted_column, quoted_column, quoted_column, quoted_column); free (quoted_trigger); free (quoted_rtree); free (quoted_table); free (quoted_column); } else { /* legacy metadata style <= v.3.1.0 */ raw = sqlite3_mprintf ("gci_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); raw = sqlite3_mprintf ("cache_%s_%s", p_table, p_column); quoted_rtree = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); quoted_table = gaiaDoubleQuotedSql (p_table); quoted_column = gaiaDoubleQuotedSql (p_column); sql_statement = sqlite3_mprintf ("CREATE TRIGGER \"%s\" AFTER INSERT ON \"%s\"\n" "FOR EACH ROW BEGIN\n" "INSERT INTO \"%s\" (rowid, mbr) VALUES (NEW.ROWID,\nBuildMbrFilter(" "MbrMinX(NEW.\"%s\"), MbrMinY(NEW.\"%s\"), MbrMaxX(NEW.\"%s\"), MbrMaxY(NEW.\"%s\")));\nEND", quoted_trigger, quoted_table, quoted_rtree, quoted_column, quoted_column, quoted_column, quoted_column); free (quoted_trigger); free (quoted_rtree); free (quoted_table); free (quoted_column); } ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; /* inserting the new UPDATE trigger MBRcache */ if (metadata_version == 3) { /* current metadata style >= v.4.0.0 */ raw = sqlite3_mprintf ("gcu_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); raw = sqlite3_mprintf ("cache_%s_%s", p_table, p_column); quoted_rtree = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); quoted_table = gaiaDoubleQuotedSql (p_table); quoted_column = gaiaDoubleQuotedSql (p_column); sql_statement = sqlite3_mprintf ("CREATE TRIGGER \"%s\" AFTER UPDATE ON \"%s\"\n" "FOR EACH ROW BEGIN\n" "UPDATE geometry_columns_time SET last_update = strftime('%%Y-%%m-%%dT%%H:%%M:%%fZ', 'now')\n" "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q);\n" "UPDATE \"%s\" SET mbr = BuildMbrFilter(" "MbrMinX(NEW.\"%s\"), MbrMinY(NEW.\"%s\"), MbrMaxX(NEW.\"%s\"), MbrMaxY(NEW.\"%s\"))\n" "WHERE rowid = NEW.ROWID;\nEND", quoted_trigger, quoted_table, p_table, p_column, quoted_rtree, quoted_column, quoted_column, quoted_column, quoted_column); free (quoted_trigger); free (quoted_rtree); free (quoted_table); free (quoted_column); } else { /* legacy metadata style <= v.3.1.0 */ raw = sqlite3_mprintf ("gcu_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); raw = sqlite3_mprintf ("cache_%s_%s", p_table, p_column); quoted_rtree = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); quoted_table = gaiaDoubleQuotedSql (p_table); quoted_column = gaiaDoubleQuotedSql (p_column); sql_statement = sqlite3_mprintf ("CREATE TRIGGER \"%s\" AFTER UPDATE ON \"%s\"\n" "FOR EACH ROW BEGIN\n" "UPDATE \"%s\" SET mbr = BuildMbrFilter(" "MbrMinX(NEW.\"%s\"), MbrMinY(NEW.\"%s\"), MbrMaxX(NEW.\"%s\"), MbrMaxY(NEW.\"%s\"))\n" "WHERE rowid = NEW.ROWID;\nEND", quoted_trigger, quoted_table, quoted_rtree, quoted_column, quoted_column, quoted_column, quoted_column); free (quoted_trigger); free (quoted_rtree); free (quoted_table); free (quoted_column); } ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; /* inserting the new DELETE trigger MBRcache */ if (metadata_version == 3) { /* current metadata style >= v.4.0.0 */ raw = sqlite3_mprintf ("gcd_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); raw = sqlite3_mprintf ("cache_%s_%s", p_table, p_column); quoted_rtree = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); quoted_table = gaiaDoubleQuotedSql (p_table); sql_statement = sqlite3_mprintf ("CREATE TRIGGER \"%s\" AFTER DELETE ON \"%s\"\n" "FOR EACH ROW BEGIN\n" "UPDATE geometry_columns_time SET last_delete = strftime('%%Y-%%m-%%dT%%H:%%M:%%fZ', 'now')\n" "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q);\n" "DELETE FROM \"%s\" WHERE rowid = OLD.ROWID;\nEND", quoted_trigger, quoted_table, p_table, p_column, quoted_rtree); free (quoted_trigger); free (quoted_rtree); free (quoted_table); } else { /* legacy metadata style <= v.3.1.0 */ raw = sqlite3_mprintf ("gcd_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); raw = sqlite3_mprintf ("cache_%s_%s", p_table, p_column); quoted_rtree = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); quoted_table = gaiaDoubleQuotedSql (p_table); quoted_column = gaiaDoubleQuotedSql (p_column); sql_statement = sqlite3_mprintf ("CREATE TRIGGER \"%s\" AFTER DELETE ON \"%s\"\n" "FOR EACH ROW BEGIN\n" "DELETE FROM \"%s\" WHERE rowid = OLD.ROWID;\nEND", quoted_trigger, quoted_table, quoted_rtree); free (quoted_trigger); free (quoted_rtree); free (quoted_table); } ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; } } } ret = sqlite3_finalize (stmt); /* now we'll adjust any related SpatialIndex as required */ curr_idx = first_idx; while (curr_idx) { if (curr_idx->ValidRtree) { /* building RTree SpatialIndex */ raw = sqlite3_mprintf ("idx_%s_%s", curr_idx->TableName, curr_idx->ColumnName); quoted_rtree = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("CREATE VIRTUAL TABLE \"%s\" " "USING rtree(pkid, xmin, xmax, ymin, ymax)", quoted_rtree); free (quoted_rtree); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; buildSpatialIndex (sqlite, (unsigned char *) (curr_idx->TableName), curr_idx->ColumnName); } if (curr_idx->ValidCache) { /* building MbrCache SpatialIndex */ raw = sqlite3_mprintf ("cache_%s_%s", curr_idx->TableName, curr_idx->ColumnName); quoted_rtree = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); quoted_table = gaiaDoubleQuotedSql (curr_idx->TableName); quoted_column = gaiaDoubleQuotedSql (curr_idx->ColumnName); sql_statement = sqlite3_mprintf ("CREATE VIRTUAL TABLE \"%s\" " "USING MbrCache(\"%s\", \"%s\")", quoted_rtree, quoted_table, quoted_column); free (quoted_rtree); free (quoted_table); free (quoted_column); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; } curr_idx = curr_idx->Next; } goto index_cleanup; error: spatialite_e ("updateTableTriggers: \"%s\"\n", errMsg); sqlite3_free (errMsg); index_cleanup: curr_idx = first_idx; while (curr_idx) { next_idx = curr_idx->Next; if (curr_idx->TableName) free (curr_idx->TableName); if (curr_idx->ColumnName) free (curr_idx->ColumnName); free (curr_idx); curr_idx = next_idx; } if (p_table) free (p_table); if (p_column) free (p_column); } SPATIALITE_PRIVATE void buildSpatialIndex (void *p_sqlite, const unsigned char *table, const char *column) { /* loading a SpatialIndex [RTree] */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; char *raw; char *quoted_rtree; char *quoted_table; char *quoted_column; char *sql_statement; char *errMsg = NULL; int ret; raw = sqlite3_mprintf ("idx_%s_%s", table, column); quoted_rtree = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); quoted_table = gaiaDoubleQuotedSql ((const char *) table); quoted_column = gaiaDoubleQuotedSql (column); sql_statement = sqlite3_mprintf ("INSERT INTO \"%s\" " "(pkid, xmin, xmax, ymin, ymax) " "SELECT ROWID, MbrMinX(\"%s\"), MbrMaxX(\"%s\"), MbrMinY(\"%s\"), MbrMaxY(\"%s\") " "FROM \"%s\" WHERE MbrMinX(\"%s\") IS NOT NULL", quoted_rtree, quoted_column, quoted_column, quoted_column, quoted_column, quoted_table, quoted_column); free (quoted_rtree); free (quoted_table); free (quoted_column); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("buildSpatialIndex error: \"%s\"\n", errMsg); sqlite3_free (errMsg); } } SPATIALITE_PRIVATE int getRealSQLnames (void *p_sqlite, const char *table, const char *column, char **real_table, char **real_column) { /* attempting to retrieve the "real" table and column names (upper/lowercase) */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; char *p_table = NULL; char *p_column = NULL; char *sql_statement; char *quoted; const char *name; int len; sqlite3_stmt *stmt; int ret; sql_statement = sqlite3_mprintf ("SELECT name " "FROM sqlite_master WHERE type = 'table' " "AND Lower(name) = Lower(?)"); /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("real_names: error %d \"%s\"\n", sqlite3_errcode (sqlite), sqlite3_errmsg (sqlite)); return 0; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, table, strlen (table), SQLITE_STATIC); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { name = (const char *) sqlite3_column_text (stmt, 0); len = sqlite3_column_bytes (stmt, 0); if (p_table) free (p_table); p_table = malloc (len + 1); strcpy (p_table, name); } } sqlite3_finalize (stmt); if (p_table == NULL) return 0; quoted = gaiaDoubleQuotedSql (p_table); sql_statement = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", quoted); free (quoted); /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("real_names: error %d \"%s\"\n", sqlite3_errcode (sqlite), sqlite3_errmsg (sqlite)); free (p_table); return 0; } while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { name = (const char *) sqlite3_column_text (stmt, 1); len = sqlite3_column_bytes (stmt, 1); if (strcasecmp (name, column) == 0) { if (p_column) free (p_column); p_column = malloc (len + 1); strcpy (p_column, name); } } } sqlite3_finalize (stmt); if (p_column == NULL) { free (p_table); return 0; } *real_table = p_table; *real_column = p_column; return 1; } SPATIALITE_PRIVATE void addLayerAttributeField (void *x_list, const char *table_name, const char *geometry_column, int ordinal, const char *column_name, int null_values, int integer_values, int double_values, int text_values, int blob_values, int null_max_size, int max_size, int null_int_range, void *x_integer_min, void *x_integer_max, int null_double_range, double double_min, double double_max) { /* adding some AttributeFiled to a VectorLayer */ gaiaVectorLayersListPtr list = (gaiaVectorLayersListPtr) x_list; sqlite3_int64 integer_min = *((sqlite3_int64 *) x_integer_min); sqlite3_int64 integer_max = *((sqlite3_int64 *) x_integer_max); gaiaLayerAttributeFieldPtr fld; int len; gaiaVectorLayerPtr lyr = list->Current; if (lyr) { if (strcasecmp (lyr->TableName, table_name) == 0 && strcasecmp (lyr->GeometryName, geometry_column) == 0) goto valid_pointer; } list->Current = NULL; lyr = list->First; while (lyr) { if (strcasecmp (lyr->TableName, table_name) == 0 && strcasecmp (lyr->GeometryName, geometry_column) == 0) { list->Current = lyr; goto valid_pointer; } lyr = lyr->Next; } valid_pointer: lyr = list->Current; if (lyr == NULL) return; fld = malloc (sizeof (gaiaLayerAttributeField)); fld->Ordinal = ordinal; len = strlen (column_name); fld->AttributeFieldName = malloc (len + 1); strcpy (fld->AttributeFieldName, column_name); fld->NullValuesCount = null_values; fld->IntegerValuesCount = integer_values; fld->DoubleValuesCount = double_values; fld->TextValuesCount = text_values; fld->BlobValuesCount = blob_values; fld->MaxSize = NULL; fld->IntRange = NULL; fld->DoubleRange = NULL; if (!null_max_size) { fld->MaxSize = malloc (sizeof (gaiaAttributeFieldMaxSize)); fld->MaxSize->MaxSize = max_size; } if (!null_int_range) { fld->IntRange = malloc (sizeof (gaiaAttributeFieldIntRange)); fld->IntRange->MinValue = integer_min; fld->IntRange->MaxValue = integer_max; } if (!null_double_range) { fld->DoubleRange = malloc (sizeof (gaiaAttributeFieldDoubleRange)); fld->DoubleRange->MinValue = double_min; fld->DoubleRange->MaxValue = double_max; } fld->Next = NULL; if (lyr->First == NULL) lyr->First = fld; if (lyr->Last != NULL) lyr->Last->Next = fld; lyr->Last = fld; } SPATIALITE_PRIVATE void addVectorLayer (void *x_list, const char *layer_type, const char *table_name, const char *geometry_column, int geometry_type, int srid, int spatial_index) { /* adding a Layer to a VectorLayersList */ gaiaVectorLayersListPtr list = (gaiaVectorLayersListPtr) x_list; int len; gaiaVectorLayerPtr lyr = malloc (sizeof (gaiaVectorLayer)); lyr->LayerType = GAIA_VECTOR_UNKNOWN; if (strcasecmp (layer_type, "SpatialTable") == 0) lyr->LayerType = GAIA_VECTOR_TABLE; if (strcasecmp (layer_type, "SpatialView") == 0) lyr->LayerType = GAIA_VECTOR_VIEW; if (strcasecmp (layer_type, "VirtualShape") == 0) lyr->LayerType = GAIA_VECTOR_VIRTUAL; len = strlen (table_name); lyr->TableName = malloc (len + 1); strcpy (lyr->TableName, table_name); len = strlen (geometry_column); lyr->GeometryName = malloc (len + 1); strcpy (lyr->GeometryName, geometry_column); lyr->Srid = srid; switch (geometry_type) { case 0: lyr->GeometryType = GAIA_VECTOR_GEOMETRY; lyr->Dimensions = GAIA_XY; break; case 1000: lyr->GeometryType = GAIA_VECTOR_GEOMETRY; lyr->Dimensions = GAIA_XY_Z; break; case 2000: lyr->GeometryType = GAIA_VECTOR_GEOMETRY; lyr->Dimensions = GAIA_XY_M; break; case 3000: lyr->GeometryType = GAIA_VECTOR_GEOMETRY; lyr->Dimensions = GAIA_XY_Z_M; break; case 1: lyr->GeometryType = GAIA_VECTOR_POINT; lyr->Dimensions = GAIA_XY; break; case 1001: lyr->GeometryType = GAIA_VECTOR_POINT; lyr->Dimensions = GAIA_XY_Z; break; case 2001: lyr->GeometryType = GAIA_VECTOR_POINT; lyr->Dimensions = GAIA_XY_M; break; case 3001: lyr->GeometryType = GAIA_VECTOR_POINT; lyr->Dimensions = GAIA_XY_Z_M; break; case 2: lyr->GeometryType = GAIA_VECTOR_LINESTRING; lyr->Dimensions = GAIA_XY; break; case 1002: lyr->GeometryType = GAIA_VECTOR_LINESTRING; lyr->Dimensions = GAIA_XY_Z; break; case 2002: lyr->GeometryType = GAIA_VECTOR_LINESTRING; lyr->Dimensions = GAIA_XY_M; break; case 3002: lyr->GeometryType = GAIA_VECTOR_LINESTRING; lyr->Dimensions = GAIA_XY_Z_M; break; case 3: lyr->GeometryType = GAIA_VECTOR_POLYGON; lyr->Dimensions = GAIA_XY; break; case 1003: lyr->GeometryType = GAIA_VECTOR_POLYGON; lyr->Dimensions = GAIA_XY_Z; break; case 2003: lyr->GeometryType = GAIA_VECTOR_POLYGON; lyr->Dimensions = GAIA_XY_M; break; case 3003: lyr->GeometryType = GAIA_VECTOR_POLYGON; lyr->Dimensions = GAIA_XY_Z_M; break; case 4: lyr->GeometryType = GAIA_VECTOR_MULTIPOINT; lyr->Dimensions = GAIA_XY; break; case 1004: lyr->GeometryType = GAIA_VECTOR_MULTIPOINT; lyr->Dimensions = GAIA_XY_Z; break; case 2004: lyr->GeometryType = GAIA_VECTOR_MULTIPOINT; lyr->Dimensions = GAIA_XY_M; break; case 3004: lyr->GeometryType = GAIA_VECTOR_MULTIPOINT; lyr->Dimensions = GAIA_XY_Z_M; break; case 5: lyr->GeometryType = GAIA_VECTOR_MULTILINESTRING; lyr->Dimensions = GAIA_XY; break; case 1005: lyr->GeometryType = GAIA_VECTOR_MULTILINESTRING; lyr->Dimensions = GAIA_XY_Z; break; case 2005: lyr->GeometryType = GAIA_VECTOR_MULTILINESTRING; lyr->Dimensions = GAIA_XY_M; break; case 3005: lyr->GeometryType = GAIA_VECTOR_MULTILINESTRING; lyr->Dimensions = GAIA_XY_Z_M; break; case 6: lyr->GeometryType = GAIA_VECTOR_MULTIPOLYGON; lyr->Dimensions = GAIA_XY; break; case 1006: lyr->GeometryType = GAIA_VECTOR_MULTIPOLYGON; lyr->Dimensions = GAIA_XY_Z; break; case 2006: lyr->GeometryType = GAIA_VECTOR_MULTIPOLYGON; lyr->Dimensions = GAIA_XY_M; break; case 3006: lyr->GeometryType = GAIA_VECTOR_MULTIPOLYGON; lyr->Dimensions = GAIA_XY_Z_M; break; case 7: lyr->GeometryType = GAIA_VECTOR_GEOMETRYCOLLECTION; lyr->Dimensions = GAIA_XY; break; case 1007: lyr->GeometryType = GAIA_VECTOR_GEOMETRYCOLLECTION; lyr->Dimensions = GAIA_XY_Z; break; case 2007: lyr->GeometryType = GAIA_VECTOR_GEOMETRYCOLLECTION; lyr->Dimensions = GAIA_XY_M; break; case 3007: lyr->GeometryType = GAIA_VECTOR_GEOMETRYCOLLECTION; lyr->Dimensions = GAIA_XY_Z_M; break; default: lyr->GeometryType = GAIA_VECTOR_UNKNOWN; lyr->Dimensions = GAIA_VECTOR_UNKNOWN; break; }; switch (spatial_index) { case 0: lyr->SpatialIndex = GAIA_SPATIAL_INDEX_NONE; break; case 1: lyr->SpatialIndex = GAIA_SPATIAL_INDEX_RTREE; break; case 2: lyr->SpatialIndex = GAIA_SPATIAL_INDEX_MBRCACHE; break; default: lyr->SpatialIndex = GAIA_VECTOR_UNKNOWN; break; }; lyr->ExtentInfos = NULL; lyr->AuthInfos = NULL; lyr->First = NULL; lyr->Last = NULL; lyr->Next = NULL; list->Current = NULL; if (list->First == NULL) list->First = lyr; if (list->Last != NULL) list->Last->Next = lyr; list->Last = lyr; } SPATIALITE_PRIVATE void addVectorLayerExtent (void *x_list, const char *table_name, const char *geometry_column, int count, double min_x, double min_y, double max_x, double max_y) { /* appending a LayerExtent object to the corresponding VectorLayer */ gaiaVectorLayersListPtr list = (gaiaVectorLayersListPtr) x_list; gaiaVectorLayerPtr lyr = list->First; while (lyr) { if (strcasecmp (lyr->TableName, table_name) == 0 && strcasecmp (lyr->GeometryName, geometry_column) == 0) { lyr->ExtentInfos = malloc (sizeof (gaiaLayerExtent)); lyr->ExtentInfos->Count = count; lyr->ExtentInfos->MinX = min_x; lyr->ExtentInfos->MinY = min_y; lyr->ExtentInfos->MaxX = max_x; lyr->ExtentInfos->MaxY = max_y; return; } lyr = lyr->Next; } } static void addVectorLayerAuth (gaiaVectorLayersListPtr list, const char *table_name, const char *geometry_column, int read_only, int hidden) { /* appending a LayerAuth object to the corresponding VectorLayer */ gaiaVectorLayerPtr lyr = list->First; while (lyr) { if (strcasecmp (lyr->TableName, table_name) == 0 && strcasecmp (lyr->GeometryName, geometry_column) == 0) { gaiaLayerAuthPtr auth = malloc (sizeof (gaiaLayerAuth)); lyr->AuthInfos = auth; auth->IsReadOnly = read_only; auth->IsHidden = hidden; return; } lyr = lyr->Next; } } static void freeLayerAttributeField (gaiaLayerAttributeFieldPtr fld) { /* destroying an AttributeField */ if (fld->AttributeFieldName) free (fld->AttributeFieldName); if (fld->MaxSize) free (fld->MaxSize); if (fld->IntRange) free (fld->IntRange); if (fld->DoubleRange) free (fld->DoubleRange); free (fld); } static void freeVectorLayer (gaiaVectorLayerPtr lyr) { /* destroyng a VectorLayer object */ gaiaLayerAttributeFieldPtr fld; gaiaLayerAttributeFieldPtr fldn; if (!lyr) return; if (lyr->TableName) free (lyr->TableName); if (lyr->GeometryName) free (lyr->GeometryName); if (lyr->ExtentInfos) free (lyr->ExtentInfos); if (lyr->AuthInfos) free (lyr->AuthInfos); fld = lyr->First; while (fld) { fldn = fld->Next; freeLayerAttributeField (fld); fld = fldn; } free (lyr); } SPATIALITE_DECLARE void gaiaFreeVectorLayersList (gaiaVectorLayersListPtr list) { /* destroying a VectorLayersList object */ gaiaVectorLayerPtr lyr; gaiaVectorLayerPtr lyr_n; if (!list) return; lyr = list->First; while (lyr) { /* destroying each layer */ lyr_n = lyr->Next; freeVectorLayer (lyr); lyr = lyr_n; } free (list); } static int gaiaGetVectorLayersList_v4 (sqlite3 * handle, const char *table, const char *geometry, gaiaVectorLayersListPtr list) { /* creating a VectorLayersList object - v.4.0.0 DB layout */ char *sql; int ret; sqlite3_stmt *stmt; int error = 0; /* querying the vector_layers view */ if (table == NULL) sql = sqlite3_mprintf ("SELECT layer_type, table_name, geometry_column, geometry_type, " "srid, spatial_index_enabled FROM vector_layers"); else { if (geometry == NULL) sql = sqlite3_mprintf ("SELECT layer_type, table_name, geometry_column, geometry_type, " "srid, spatial_index_enabled FROM vector_layers " "WHERE Lower(table_name) = Lower(%Q)", table); else sql = sqlite3_mprintf ("SELECT layer_type, table_name, geometry_column, geometry_type, " "srid, spatial_index_enabled FROM vector_layers " "WHERE Lower(table_name) = Lower(%Q) AND " "Lower(geometry_column) = Lower(%Q)", table, geometry); } /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { error = 1; goto stop; } while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* processing a VectorLayer row */ const char *layer_type = (const char *) sqlite3_column_text (stmt, 0); const char *table_name = (const char *) sqlite3_column_text (stmt, 1); const char *geometry_column = (const char *) sqlite3_column_text (stmt, 2); int geometry_type = sqlite3_column_int (stmt, 3); int srid = sqlite3_column_int (stmt, 4); int spatial_index = sqlite3_column_int (stmt, 5); addVectorLayer (list, layer_type, table_name, geometry_column, geometry_type, srid, spatial_index); } else error = 1; } ret = sqlite3_finalize (stmt); stop: if (error) return 0; /* querying the vector_layers_statistics view */ if (table == NULL) sql = sqlite3_mprintf ("SELECT table_name, geometry_column, row_count, extent_min_x, " "extent_min_y, extent_max_x, extent_max_y FROM vector_layers_statistics"); else { if (geometry == NULL) sql = sqlite3_mprintf ("SELECT table_name, geometry_column, row_count, extent_min_x, " "extent_min_y, extent_max_x, extent_max_y FROM vector_layers_statistics " "WHERE Lower(table_name) = Lower(%Q)", table); else sql = sqlite3_mprintf ("SELECT table_name, geometry_column, row_count, extent_min_x, " "extent_min_y, extent_max_x, extent_max_y FROM vector_layers_statistics " "WHERE Lower(table_name) = Lower(%Q) AND " "Lower(geometry_column) = Lower(%Q)", table, geometry); } /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { error = 1; goto stop2; } while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* processing a VectorLayer row */ int is_null = 0; const char *table_name = (const char *) sqlite3_column_text (stmt, 0); const char *geometry_column = (const char *) sqlite3_column_text (stmt, 1); int count; double min_x; double min_y; double max_x; double max_y; if (sqlite3_column_type (stmt, 2) == SQLITE_NULL) is_null = 1; else count = sqlite3_column_int (stmt, 2); if (sqlite3_column_type (stmt, 3) == SQLITE_NULL) is_null = 1; else min_x = sqlite3_column_double (stmt, 3); if (sqlite3_column_type (stmt, 4) == SQLITE_NULL) is_null = 1; else min_y = sqlite3_column_double (stmt, 4); if (sqlite3_column_type (stmt, 5) == SQLITE_NULL) is_null = 1; else max_x = sqlite3_column_double (stmt, 5); if (sqlite3_column_type (stmt, 6) == SQLITE_NULL) is_null = 1; else max_y = sqlite3_column_double (stmt, 6); if (!is_null) addVectorLayerExtent (list, table_name, geometry_column, count, min_x, min_y, max_x, max_y); } } ret = sqlite3_finalize (stmt); stop2: /* querying the vector_layers_auth view */ if (table == NULL) sql = sqlite3_mprintf ("SELECT table_name, geometry_column, read_only, hidden " "FROM vector_layers_auth"); else { if (geometry == NULL) sql = sqlite3_mprintf ("SELECT table_name, geometry_column, read_only, hidden " "FROM vector_layers_auth WHERE Lower(table_name) = Lower(%Q)", table, geometry); else sql = sqlite3_mprintf ("SELECT table_name, geometry_column, read_only, hidden " "FROM vector_layers_auth " "WHERE Lower(table_name) = Lower(%Q) AND " "Lower(geometry_column) = Lower(%Q)", table, geometry); } /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { error = 1; goto stop3; } while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* processing a VectorLayer row */ int is_null = 0; const char *table_name = (const char *) sqlite3_column_text (stmt, 0); const char *geometry_column = (const char *) sqlite3_column_text (stmt, 1); int read_only; int hidden; if (sqlite3_column_type (stmt, 2) == SQLITE_NULL) is_null = 1; else read_only = sqlite3_column_int (stmt, 2); if (sqlite3_column_type (stmt, 3) == SQLITE_NULL) is_null = 1; else hidden = sqlite3_column_int (stmt, 3); if (!is_null) addVectorLayerAuth (list, table_name, geometry_column, read_only, hidden); } } ret = sqlite3_finalize (stmt); stop3: /* querying the vector_layers_field_infos view */ if (table == NULL) { /* if no "table" is set, we'll never return AttributeField Infos */ goto stop4; } else { if (geometry == NULL) sql = sqlite3_mprintf ("SELECT table_name, geometry_column, ordinal, column_name, " "null_values, integer_values, double_values, text_values, blob_values," "max_size, integer_min, integer_max, double_min, double_max " "FROM vector_layers_field_infos WHERE Lower(table_name) = Lower(%Q)", table, geometry); else sql = sqlite3_mprintf ("SELECT table_name, geometry_column, ordinal, column_name, " "null_values, integer_values, double_values, text_values, blob_values," "max_size, integer_min, integer_max, double_min, double_max " "FROM vector_layers_field_infos " "WHERE Lower(table_name) = Lower(%Q) AND " "Lower(geometry_column) = Lower(%Q)", table, geometry); } /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { error = 1; goto stop4; } while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* processing a VectorLayer row */ int null_max_size = 0; int null_int_range = 0; int null_double_range = 0; int max_size; sqlite3_int64 integer_min; sqlite3_int64 integer_max; double double_min; double double_max; const char *table_name = (const char *) sqlite3_column_text (stmt, 0); const char *geometry_column = (const char *) sqlite3_column_text (stmt, 1); int ordinal = sqlite3_column_int (stmt, 2); const char *column_name = (const char *) sqlite3_column_text (stmt, 3); int null_values = sqlite3_column_int (stmt, 4); int integer_values = sqlite3_column_int (stmt, 5); int double_values = sqlite3_column_int (stmt, 6); int text_values = sqlite3_column_int (stmt, 7); int blob_values = sqlite3_column_int (stmt, 8); if (sqlite3_column_type (stmt, 9) == SQLITE_NULL) null_max_size = 1; else max_size = sqlite3_column_int (stmt, 9); if (sqlite3_column_type (stmt, 10) == SQLITE_NULL || sqlite3_column_type (stmt, 11) == SQLITE_NULL) null_int_range = 1; else { integer_min = sqlite3_column_int64 (stmt, 10); integer_max = sqlite3_column_int64 (stmt, 11); } if (sqlite3_column_type (stmt, 12) == SQLITE_NULL || sqlite3_column_type (stmt, 13) == SQLITE_NULL) null_double_range = 1; else { double_min = sqlite3_column_double (stmt, 12); double_max = sqlite3_column_double (stmt, 13); } addLayerAttributeField (list, table_name, geometry_column, ordinal, column_name, null_values, integer_values, double_values, text_values, blob_values, null_max_size, max_size, null_int_range, &integer_min, &integer_max, null_double_range, double_min, double_max); } } ret = sqlite3_finalize (stmt); stop4: if (error) return 0; return 1; } static int get_table_layers_legacy (sqlite3 * handle, const char *table, const char *geometry, gaiaVectorLayersListPtr list) { /* fetching Table-based geometries */ int ret; char *sql; const char *name; int i; char **results; int rows; int columns; int f_table = 0; int f_geometry = 0; int type = 0; int dims = 0; int srid = 0; int spatial_index = 0; sqlite3_stmt *stmt; int error = 0; /* checking the GEOMETRY_COLUMN table */ sql = "PRAGMA table_info(geometry_columns)"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, NULL); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 1]; if (strcasecmp (name, "f_table_name") == 0) f_table = 1; if (strcasecmp (name, "f_geometry_column") == 0) f_geometry = 1; if (strcasecmp (name, "type") == 0) type = 1; if (strcasecmp (name, "coord_dimension") == 0) dims = 1; if (strcasecmp (name, "srid") == 0) srid = 1; if (strcasecmp (name, "spatial_index_enabled") == 0) spatial_index = 1; } } sqlite3_free_table (results); if (f_table && f_geometry && type && dims && srid && spatial_index) ; else return 1; if (table == NULL) sql = sqlite3_mprintf ("SELECT f_table_name, f_geometry_column, type, coord_dimension, " "srid, spatial_index_enabled FROM geometry_columns"); else { if (geometry == NULL) sql = sqlite3_mprintf ("SELECT f_table_name, f_geometry_column, type, coord_dimension, " "srid, spatial_index_enabled FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q)", table); else sql = sqlite3_mprintf ("SELECT f_table_name, f_geometry_column, type, coord_dimension, " "srid, spatial_index_enabled FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", table, geometry); } /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { error = 1; goto stop; } while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* processing a VectorLayer row */ const char *table_name = (const char *) sqlite3_column_text (stmt, 0); const char *geometry_column = (const char *) sqlite3_column_text (stmt, 1); const char *type = (const char *) sqlite3_column_text (stmt, 2); const char *dims = (const char *) sqlite3_column_text (stmt, 3); int srid = sqlite3_column_int (stmt, 4); int spatial_index = sqlite3_column_int (stmt, 5); int geometry_type = -1; if (strcasecmp (type, "POINT") == 0) geometry_type = 1; if (strcasecmp (type, "LINESTRING") == 0) geometry_type = 2; if (strcasecmp (type, "POLYGON") == 0) geometry_type = 3; if (strcasecmp (type, "MULTIPOINT") == 0) geometry_type = 4; if (strcasecmp (type, "MULTILINESTRING") == 0) geometry_type = 5; if (strcasecmp (type, "MULTIPOLYGON") == 0) geometry_type = 6; if (strcasecmp (type, "GEOMETRYCOLLECTION") == 0) geometry_type = 7; if (strcasecmp (type, "GEOMETRY") == 0) geometry_type = 0; if (strcasecmp (dims, "XYZ") == 0 || strcasecmp (dims, "3") == 0) geometry_type += 1000; if (strcasecmp (dims, "XYM") == 0) geometry_type += 2000; if (strcasecmp (dims, "XYZM") == 0 || strcasecmp (dims, "4") == 0) geometry_type += 3000; addVectorLayer (list, "SpatialTable", table_name, geometry_column, geometry_type, srid, spatial_index); } else error = 1; } ret = sqlite3_finalize (stmt); stop: if (error) return 0; return 1; } static int get_view_layers_legacy (sqlite3 * handle, const char *table, const char *geometry, gaiaVectorLayersListPtr list) { /* fetching View-based geometries */ int ret; char *sql; const char *name; int i; char **results; int rows; int columns; int f_table = 0; int f_geometry = 0; int type = 0; int dims = 0; int srid = 0; int spatial_index = 0; int view_name = 0; int view_geometry = 0; int fvw_table = 0; int fvw_geometry = 0; sqlite3_stmt *stmt; int error = 0; /* checking the GEOMETRY_COLUMN table */ sql = "PRAGMA table_info(geometry_columns)"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, NULL); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 1]; if (strcasecmp (name, "f_table_name") == 0) f_table = 1; if (strcasecmp (name, "f_geometry_column") == 0) f_geometry = 1; if (strcasecmp (name, "type") == 0) type = 1; if (strcasecmp (name, "coord_dimension") == 0) dims = 1; if (strcasecmp (name, "srid") == 0) srid = 1; if (strcasecmp (name, "spatial_index_enabled") == 0) spatial_index = 1; } } sqlite3_free_table (results); if (f_table && f_geometry && type && dims && srid && spatial_index) ; else return 1; /* checking the VIEWS_GEOMETRY_COLUMN table */ sql = "PRAGMA table_info(views_geometry_columns)"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, NULL); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 1]; if (strcasecmp (name, "view_name") == 0) view_name = 1; if (strcasecmp (name, "view_geometry") == 0) view_geometry = 1; if (strcasecmp (name, "f_table_name") == 0) fvw_table = 1; if (strcasecmp (name, "f_geometry_column") == 0) fvw_geometry = 1; } } sqlite3_free_table (results); if (view_name && view_geometry && fvw_table && fvw_geometry) ; else return 1; if (table == NULL) sql = sqlite3_mprintf ("SELECT a.view_name, a.view_geometry, b.type, b.coord_dimension, " "b.srid, b.spatial_index_enabled FROM views_geometry_columns AS a " "JOIN geometry_columns AS b ON (Lower(a.f_table_name) = Lower(b.f_table_name) " "AND Lower(a.f_geometry_column) = Lower(b.f_geometry_column))"); else { if (geometry == NULL) sql = sqlite3_mprintf ("SELECT a.view_name, a.view_geometry, b.type, b.coord_dimension, " "b.srid, b.spatial_index_enabled FROM views_geometry_columns AS a " "JOIN geometry_columns AS b ON (Lower(a.f_table_name) = Lower(b.f_table_name) " "AND Lower(a.f_geometry_column) = Lower(b.f_geometry_column)) " "WHERE Lower(a.view_name) = Lower(%Q)", table); else sql = sqlite3_mprintf ("SELECT a.view_name, a.view_geometry, b.type, b.coord_dimension, " "b.srid, b.spatial_index_enabled FROM views_geometry_columns AS a " "JOIN geometry_columns AS b ON (Lower(a.f_table_name) = Lower(b.f_table_name) " "AND Lower(a.f_geometry_column) = Lower(b.f_geometry_column)) " "WHERE Lower(a.view_name) = Lower(%Q) AND " "Lower(a.view_geometry) = Lower(%Q)", table, geometry); } /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { error = 1; goto stop; } while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* processing a VectorLayer row */ const char *table_name = (const char *) sqlite3_column_text (stmt, 0); const char *geometry_column = (const char *) sqlite3_column_text (stmt, 1); const char *type = (const char *) sqlite3_column_text (stmt, 2); const char *dims = (const char *) sqlite3_column_text (stmt, 3); int srid = sqlite3_column_int (stmt, 4); int spatial_index = sqlite3_column_int (stmt, 5); int geometry_type = -1; if (strcasecmp (type, "POINT") == 0) geometry_type = 1; if (strcasecmp (type, "LINESTRING") == 0) geometry_type = 2; if (strcasecmp (type, "POLYGON") == 0) geometry_type = 3; if (strcasecmp (type, "MULTIPOINT") == 0) geometry_type = 4; if (strcasecmp (type, "MULTILINESTRING") == 0) geometry_type = 5; if (strcasecmp (type, "MULTIPOLYGON") == 0) geometry_type = 6; if (strcasecmp (type, "GEOMETRYCOLLECTION") == 0) geometry_type = 7; if (strcasecmp (type, "GEOMETRY") == 0) geometry_type = 0; if (strcasecmp (dims, "XYZ") == 0 || strcasecmp (dims, "3") == 0) geometry_type += 1000; if (strcasecmp (dims, "XYM") == 0) geometry_type += 2000; if (strcasecmp (dims, "XYZM") == 0 || strcasecmp (dims, "4") == 0) geometry_type += 3000; addVectorLayer (list, "SpatialView", table_name, geometry_column, geometry_type, srid, spatial_index); } else error = 1; } ret = sqlite3_finalize (stmt); stop: if (error) return 0; return 1; } static int get_table_extent_legacy (sqlite3 * handle, const char *table, const char *geometry, gaiaVectorLayersListPtr list) { /* fetching Table-based extents */ int ret; char *sql; const char *name; int i; char **results; int rows; int columns; int f_table = 0; int f_geometry = 0; int count = 0; int minx = 0; int miny = 0; int maxx = 0; int maxy = 0; sqlite3_stmt *stmt; /* checking the LAYER_STATISTICS table */ sql = "PRAGMA table_info(layer_statistics)"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, NULL); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 1]; if (strcasecmp (name, "table_name") == 0) f_table = 1; if (strcasecmp (name, "geometry_column") == 0) f_geometry = 1; if (strcasecmp (name, "row_count") == 0) count = 1; if (strcasecmp (name, "extent_min_x") == 0) minx = 1; if (strcasecmp (name, "extent_min_y") == 0) miny = 1; if (strcasecmp (name, "extent_max_x") == 0) maxx = 1; if (strcasecmp (name, "extent_max_y") == 0) maxy = 1; } } sqlite3_free_table (results); if (f_table && f_geometry && count && minx && miny && maxx && maxy) ; else return 1; /* querying the layer_statistics table */ if (table == NULL) sql = sqlite3_mprintf ("SELECT table_name, geometry_column, row_count, extent_min_x, " "extent_min_y, extent_max_x, extent_max_y FROM layer_statistics"); else { if (geometry == NULL) sql = sqlite3_mprintf ("SELECT table_name, geometry_column, row_count, extent_min_x, " "extent_min_y, extent_max_x, extent_max_y FROM layer_statistics " "WHERE Lower(table_name) = Lower(%Q)", table); else sql = sqlite3_mprintf ("SELECT table_name, geometry_column, row_count, extent_min_x, " "extent_min_y, extent_max_x, extent_max_y FROM layer_statistics " "WHERE Lower(table_name) = Lower(%Q) AND " "Lower(geometry_column) = Lower(%Q)", table, geometry); } /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto stop; while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* processing a VectorLayer row */ int is_null = 0; const char *table_name = (const char *) sqlite3_column_text (stmt, 0); const char *geometry_column = (const char *) sqlite3_column_text (stmt, 1); int count; double min_x; double min_y; double max_x; double max_y; if (sqlite3_column_type (stmt, 2) == SQLITE_NULL) is_null = 1; else count = sqlite3_column_int (stmt, 2); if (sqlite3_column_type (stmt, 3) == SQLITE_NULL) is_null = 1; else min_x = sqlite3_column_double (stmt, 3); if (sqlite3_column_type (stmt, 4) == SQLITE_NULL) is_null = 1; else min_y = sqlite3_column_double (stmt, 4); if (sqlite3_column_type (stmt, 5) == SQLITE_NULL) is_null = 1; else max_x = sqlite3_column_double (stmt, 5); if (sqlite3_column_type (stmt, 6) == SQLITE_NULL) is_null = 1; else max_y = sqlite3_column_double (stmt, 6); if (!is_null) addVectorLayerExtent (list, table_name, geometry_column, count, min_x, min_y, max_x, max_y); } } ret = sqlite3_finalize (stmt); stop: return 1; } static int get_view_extent_legacy (sqlite3 * handle, const char *table, const char *geometry, gaiaVectorLayersListPtr list) { /* fetching View-based extents */ int ret; char *sql; const char *name; int i; char **results; int rows; int columns; int f_table = 0; int f_geometry = 0; int count = 0; int minx = 0; int miny = 0; int maxx = 0; int maxy = 0; sqlite3_stmt *stmt; /* checking the VIEWS_LAYER_STATISTICS table */ sql = "PRAGMA table_info(views_layer_statistics)"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, NULL); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 1]; if (strcasecmp (name, "view_name") == 0) f_table = 1; if (strcasecmp (name, "view_geometry") == 0) f_geometry = 1; if (strcasecmp (name, "row_count") == 0) count = 1; if (strcasecmp (name, "extent_min_x") == 0) minx = 1; if (strcasecmp (name, "extent_min_y") == 0) miny = 1; if (strcasecmp (name, "extent_max_x") == 0) maxx = 1; if (strcasecmp (name, "extent_max_y") == 0) maxy = 1; } } sqlite3_free_table (results); if (f_table && f_geometry && count && minx && miny && maxx && maxy) ; else return 1; /* querying the views_layer_statistics table */ if (table == NULL) sql = sqlite3_mprintf ("SELECT view_name, view_geometry, row_count, extent_min_x, " "extent_min_y, extent_max_x, extent_max_y FROM views_layer_statistics"); else { if (geometry == NULL) sql = sqlite3_mprintf ("SELECT view_name, view_geometry, row_count, extent_min_x, " "extent_min_y, extent_max_x, extent_max_y FROM views_layer_statistics " "WHERE Lower(view_name) = Lower(%Q)", table); else sql = sqlite3_mprintf ("SELECT view_name, view_geometry, row_count, extent_min_x, " "extent_min_y, extent_max_x, extent_max_y FROM views_layer_statistics " "WHERE Lower(view_name) = Lower(%Q) AND " "Lower(view_geometry) = Lower(%Q)", table, geometry); } /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto stop; while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* processing a VectorLayer row */ int is_null = 0; const char *table_name = (const char *) sqlite3_column_text (stmt, 0); const char *geometry_column = (const char *) sqlite3_column_text (stmt, 1); int count; double min_x; double min_y; double max_x; double max_y; if (sqlite3_column_type (stmt, 2) == SQLITE_NULL) is_null = 1; else count = sqlite3_column_int (stmt, 2); if (sqlite3_column_type (stmt, 3) == SQLITE_NULL) is_null = 1; else min_x = sqlite3_column_double (stmt, 3); if (sqlite3_column_type (stmt, 4) == SQLITE_NULL) is_null = 1; else min_y = sqlite3_column_double (stmt, 4); if (sqlite3_column_type (stmt, 5) == SQLITE_NULL) is_null = 1; else max_x = sqlite3_column_double (stmt, 5); if (sqlite3_column_type (stmt, 6) == SQLITE_NULL) is_null = 1; else max_y = sqlite3_column_double (stmt, 6); if (!is_null) addVectorLayerExtent (list, table_name, geometry_column, count, min_x, min_y, max_x, max_y); } } ret = sqlite3_finalize (stmt); stop: return 1; } static int get_table_auth_legacy (sqlite3 * handle, const char *table, const char *geometry, gaiaVectorLayersListPtr list) { /* fetching Table-based Auth */ int ret; char *sql; const char *name; int i; char **results; int rows; int columns; int f_table = 0; int f_geometry = 0; int read_only = 0; int hidden = 0; sqlite3_stmt *stmt; /* checking the GEOMETRY_COLUMNS_AUTH table */ sql = "PRAGMA table_info(geometry_columns_auth)"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, NULL); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 1]; if (strcasecmp (name, "f_table_name") == 0) f_table = 1; if (strcasecmp (name, "f_geometry_column") == 0) f_geometry = 1; if (strcasecmp (name, "read_only") == 0) read_only = 1; if (strcasecmp (name, "hidden") == 0) hidden = 1; } } sqlite3_free_table (results); if (f_table && f_geometry && read_only && hidden) ; else return 1; /* querying the geometry_columns_auth table */ if (table == NULL) sql = sqlite3_mprintf ("SELECT f_table_name, f_geometry_column, read_only, hidden " "FROM geometry_columns_auth"); else { if (geometry == NULL) sql = sqlite3_mprintf ("SELECT f_table_name, f_geometry_column, read_only, hidden " "FROM geometry_columns_auth " "WHERE Lower(f_table_name) = Lower(%Q)", table); else sql = sqlite3_mprintf ("SELECT f_table_name, f_geometry_column, read_only, hidden " "FROM geometry_columns_auth " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", table, geometry); } /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto stop; while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* processing a VectorLayer row */ int is_null = 0; const char *table_name = (const char *) sqlite3_column_text (stmt, 0); const char *geometry_column = (const char *) sqlite3_column_text (stmt, 1); int read_only; int hidden; if (sqlite3_column_type (stmt, 2) == SQLITE_NULL) is_null = 1; else read_only = sqlite3_column_int (stmt, 2); if (sqlite3_column_type (stmt, 3) == SQLITE_NULL) is_null = 1; else hidden = sqlite3_column_int (stmt, 3); if (!is_null) addVectorLayerAuth (list, table_name, geometry_column, read_only, hidden); } } ret = sqlite3_finalize (stmt); stop: return 1; } static int compute_table_fields_statistics (sqlite3 * handle, const char *table, const char *geometry, gaiaVectorLayersListPtr list) { /* computing field statistics - legacy */ gaiaVectorLayerPtr lyr; lyr = list->First; while (lyr) { /* testing if the Table/Geometry is already defined */ if (geometry == NULL) { if (strcasecmp (lyr->TableName, table) == 0) { if (!doComputeFieldInfos (handle, lyr->TableName, lyr->GeometryName, SPATIALITE_STATISTICS_LEGACY, lyr)) return 0; } } else { if (strcasecmp (lyr->TableName, table) == 0 && strcasecmp (lyr->GeometryName, geometry) == 0) { if (!doComputeFieldInfos (handle, lyr->TableName, lyr->GeometryName, SPATIALITE_STATISTICS_LEGACY, lyr)) return 0; } } lyr = lyr->Next; } return 1; } static int check_v4_statistics (sqlite3 * handle) { /* checking if v.4.0.0 statistics tables are supported */ char *sql_statement; int ret; char **results; int rows; int columns; /* testing the SQL Query */ sql_statement = sqlite3_mprintf ("SELECT g.table_name, g.geometry_column, " "s.row_count, s.extent_min_x, s.extent_min_y, " "s.extent_max_x, s.extent_max_y " "FROM vector_layers AS g " "LEFT JOIN vector_layers_statistics AS s ON " "(g.table_name = s.table_name AND " "g.geometry_column = s.geometry_column) LIMIT 1"); ret = sqlite3_get_table (handle, sql_statement, &results, &rows, &columns, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) return 0; sqlite3_free_table (results); return 1; } static int check_v3_statistics (sqlite3 * handle) { /* checking if v.3.0.0 statistics tables are supported */ char *sql_statement; int ret; char **results; int rows; int columns; if (!check_layer_statistics (handle)) return 0; /* testing the SQL Query - Table-based Geometries */ sql_statement = sqlite3_mprintf ("SELECT g.f_table_name, g.f_geometry_column, " "s.row_count, s.extent_min_x, s.extent_min_y, " "s.extent_max_x, s.extent_max_y " "FROM geometry_columns AS g " "LEFT JOIN layer_statistics AS s ON " "(g.f_table_name = s.table_name AND " "g.f_geometry_column = s.geometry_column) LIMIT 1"); ret = sqlite3_get_table (handle, sql_statement, &results, &rows, &columns, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) return 0; sqlite3_free_table (results); if (!check_views_layer_statistics (handle)) return 0; /* testing the SQL Query - View-based Geometries */ sql_statement = sqlite3_mprintf ("SELECT g.view_name, g.view_geometry, " "s.row_count, s.extent_min_x, s.extent_min_y, " "s.extent_max_x, s.extent_max_y " "FROM views_geometry_columns AS g " "LEFT JOIN views_layer_statistics AS s ON " "(g.view_name = s.view_name AND " "g.view_geometry = s.view_geometry) LIMIT 1"); ret = sqlite3_get_table (handle, sql_statement, &results, &rows, &columns, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) return 0; sqlite3_free_table (results); if (!check_virts_layer_statistics (handle)) return 0; /* testing the SQL Query - VirtualShape-based Geometries */ sql_statement = sqlite3_mprintf ("SELECT g.virt_name, g.virt_geometry, " "s.row_count, s.extent_min_x, s.extent_min_y, " "s.extent_max_x, s.extent_max_y " "FROM virts_geometry_columns AS g " "LEFT JOIN virts_layer_statistics AS s ON " "(g.virt_name = s.virt_name AND " "g.virt_geometry = s.virt_geometry) LIMIT 1"); ret = sqlite3_get_table (handle, sql_statement, &results, &rows, &columns, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) return 0; sqlite3_free_table (results); return 1; } static int check_v2_statistics (sqlite3 * handle) { /* checking if v.2.0.0 statistics tables are supported */ char *sql_statement; int ret; char **results; int rows; int columns; if (!check_layer_statistics (handle)) return 0; /* testing the SQL Query - Table-based Geometries */ sql_statement = sqlite3_mprintf ("SELECT g.f_table_name, g.f_geometry_column, " "s.row_count, s.extent_min_x, s.extent_min_y, " "s.extent_max_x, s.extent_max_y " "FROM geometry_columns AS g " "LEFT JOIN layer_statistics AS s ON " "(g.f_table_name = s.table_name AND " "g.f_geometry_column = s.geometry_column) LIMIT 1"); ret = sqlite3_get_table (handle, sql_statement, &results, &rows, &columns, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) return 0; sqlite3_free_table (results); return 1; } static int optimistic_layer_statistics_v4 (sqlite3 * handle, const char *table, const char *geometry) { /* selective statistics update - v.4.0.0 layout */ char *sql_statement; int ret; const char *f_table_name; const char *f_geometry_column; int i; char **results; int rows; int columns; int error = 0; if (table == NULL && geometry == NULL) { /* processing any table/geometry found in GEOMETRY_COLUMNS */ sql_statement = sqlite3_mprintf ("SELECT g.table_name, g.geometry_column " "FROM vector_layers AS g " "LEFT JOIN vector_layers_statistics AS s ON " "(g.table_name = s.table_name AND " "g.geometry_column = s.geometry_column) " "WHERE s.row_count IS NULL OR s.extent_min_x IS NULL " "OR s.extent_min_y IS NULL OR s.extent_max_y IS NULL " "OR s.extent_max_y IS NULL"); } else if (geometry == NULL) { /* processing any geometry belonging to this table */ sql_statement = sqlite3_mprintf ("SELECT g.table_name, g.geometry_column " "FROM vector_layers AS g " "LEFT JOIN vector_layers_statistics AS s ON " "(g.table_name = s.table_name AND " "g.geometry_column = s.geometry_column) " "WHERE Lower(g.table_name) = Lower(%Q) AND " "(s.row_count IS NULL OR s.extent_min_x IS NULL " "OR s.extent_min_y IS NULL OR s.extent_max_y IS NULL " "OR s.extent_max_y IS NULL)", table); } else { /* processing a single table/geometry entry */ sql_statement = sqlite3_mprintf ("SELECT g.table_name, g.geometry_column " "FROM vector_layers AS g " "LEFT JOIN vector_layers_statistics AS s ON " "(g.table_name = s.table_name AND " "g.geometry_column = s.geometry_column) " "WHERE Lower(g.table_name) = Lower(%Q) AND " "Lower(g.geometry_column) = Lower(%Q) AND " "(s.row_count IS NULL OR s.extent_min_x IS NULL " "OR s.extent_min_y IS NULL OR s.extent_max_y IS NULL " "OR s.extent_max_y IS NULL)", table, geometry); } ret = sqlite3_get_table (handle, sql_statement, &results, &rows, &columns, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { f_table_name = results[(i * columns) + 0]; f_geometry_column = results[(i * columns) + 1]; if (!update_layer_statistics (handle, f_table_name, f_geometry_column)) { error = 1; break; } } } sqlite3_free_table (results); if (error) return 0; return 1; } static int optimistic_layer_statistics_v3 (sqlite3 * handle, const char *table, const char *geometry) { /* selective statistics update - v.3.0.0 layout */ char *sql_statement; int ret; const char *f_table_name; const char *f_geometry_column; int i; char **results; int rows; int columns; int error = 0; /* genuine Table-based Geometries */ if (table == NULL && geometry == NULL) { /* processing any table/geometry found in GEOMETRY_COLUMNS */ sql_statement = sqlite3_mprintf ("SELECT g.f_table_name, g.f_geometry_column " "FROM geometry_columns AS g " "LEFT JOIN layer_statistics AS s ON " "(g.f_table_name = s.table_name AND " "g.f_geometry_column = s.geometry_column) " "WHERE s.row_count IS NULL OR s.extent_min_x IS NULL " "OR s.extent_min_y IS NULL OR s.extent_max_y IS NULL " "OR s.extent_max_y IS NULL"); } else if (geometry == NULL) { /* processing any geometry belonging to this table */ sql_statement = sqlite3_mprintf ("SELECT g.f_table_name, g.f_geometry_column " "FROM geometry_columns AS g " "LEFT JOIN layer_statistics AS s ON " "(g.f_table_name = s.table_name AND " "g.f_geometry_column = s.geometry_column) " "WHERE Lower(g.f_table_name) = Lower(%Q) AND " "(s.row_count IS NULL OR s.extent_min_x IS NULL " "OR s.extent_min_y IS NULL OR s.extent_max_y IS NULL " "OR s.extent_max_y IS NULL)", table); } else { /* processing a single table/geometry entry */ sql_statement = sqlite3_mprintf ("SELECT g.f_table_name, g.f_geometry_column " "FROM geometry_columns AS g " "LEFT JOIN layer_statistics AS s ON " "(g.f_table_name = s.table_name AND " "g.f_geometry_column = s.geometry_column) " "WHERE Lower(g.f_table_name) = Lower(%Q) AND " "Lower(g.f_geometry_column) = Lower(%Q) AND " "(s.row_count IS NULL OR s.extent_min_x IS NULL " "OR s.extent_min_y IS NULL OR s.extent_max_y IS NULL " "OR s.extent_max_y IS NULL)", table, geometry); } ret = sqlite3_get_table (handle, sql_statement, &results, &rows, &columns, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { f_table_name = results[(i * columns) + 0]; f_geometry_column = results[(i * columns) + 1]; if (!update_layer_statistics (handle, f_table_name, f_geometry_column)) { error = 1; break; } } } sqlite3_free_table (results); if (error) return 0; /* View Based Geometries */ if (table == NULL && geometry == NULL) { /* processing any table/geometry found in GEOMETRY_COLUMNS */ sql_statement = sqlite3_mprintf ("SELECT g.view_name, g.view_geometry " "FROM views_geometry_columns AS g " "LEFT JOIN views_layer_statistics AS s ON " "(g.view_name = s.view_name AND " "g.view_geometry = s.view_geometry) " "WHERE s.row_count IS NULL OR s.extent_min_x IS NULL " "OR s.extent_min_y IS NULL OR s.extent_max_y IS NULL " "OR s.extent_max_y IS NULL"); } else if (geometry == NULL) { /* processing any geometry belonging to this table */ sql_statement = sqlite3_mprintf ("SELECT g.view_name, g.view_geometry " "FROM views_geometry_columns AS g " "LEFT JOIN views_layer_statistics AS s ON " "(g.view_name = s.view_name AND " "g.view_geometry = s.view_geometry) " "WHERE Lower(g.view_name) = Lower(%Q) AND " "(s.row_count IS NULL OR s.extent_min_x IS NULL " "OR s.extent_min_y IS NULL OR s.extent_max_y IS NULL " "OR s.extent_max_y IS NULL)", table); } else { /* processing a single table/geometry entry */ sql_statement = sqlite3_mprintf ("SELECT g.view_name, g.view_geometry " "FROM views_geometry_columns AS g " "LEFT JOIN views_layer_statistics AS s ON " "(g.view_name = s.view_name AND " "g.view_geometry = s.view_geometry) " "WHERE Lower(g.view_name) = Lower(%Q) AND " "Lower(g.view_geometry) = Lower(%Q) AND " "(s.row_count IS NULL OR s.extent_min_x IS NULL " "OR s.extent_min_y IS NULL OR s.extent_max_y IS NULL " "OR s.extent_max_y IS NULL)", table, geometry); } ret = sqlite3_get_table (handle, sql_statement, &results, &rows, &columns, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { f_table_name = results[(i * columns) + 0]; f_geometry_column = results[(i * columns) + 1]; if (!update_layer_statistics (handle, f_table_name, f_geometry_column)) { error = 1; break; } } } sqlite3_free_table (results); if (error) return 0; /* VirtualShape Based Geometries */ if (table == NULL && geometry == NULL) { /* processing any table/geometry found in GEOMETRY_COLUMNS */ sql_statement = sqlite3_mprintf ("SELECT g.virt_name, g.virt_geometry " "FROM virts_geometry_columns AS g " "LEFT JOIN virts_layer_statistics AS s ON " "(g.virt_name = s.virt_name AND " "g.virt_geometry = s.virt_geometry) " "WHERE s.row_count IS NULL OR s.extent_min_x IS NULL " "OR s.extent_min_y IS NULL OR s.extent_max_y IS NULL " "OR s.extent_max_y IS NULL"); } else if (geometry == NULL) { /* processing any geometry belonging to this table */ sql_statement = sqlite3_mprintf ("SELECT g.virt_name, g.virt_geometry " "FROM virts_geometry_columns AS g " "LEFT JOIN virts_layer_statistics AS s ON " "(g.virt_name = s.virt_name AND " "g.virt_geometry = s.virt_geometry) " "WHERE Lower(g.virt_name) = Lower(%Q) AND " "(s.row_count IS NULL OR s.extent_min_x IS NULL " "OR s.extent_min_y IS NULL OR s.extent_max_y IS NULL " "OR s.extent_max_y IS NULL)", table); } else { /* processing a single table/geometry entry */ sql_statement = sqlite3_mprintf ("SELECT g.virt_name, g.virt_geometry " "FROM virts_geometry_columns AS g " "LEFT JOIN virts_layer_statistics AS s ON " "(g.virt_name = s.virt_name AND " "g.virt_geometry = s.virt_geometry) " "WHERE Lower(g.virt_name) = Lower(%Q) AND " "Lower(g.virt_geometry) = Lower(%Q) AND " "(s.row_count IS NULL OR s.extent_min_x IS NULL " "OR s.extent_min_y IS NULL OR s.extent_max_y IS NULL " "OR s.extent_max_y IS NULL)", table, geometry); } ret = sqlite3_get_table (handle, sql_statement, &results, &rows, &columns, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { f_table_name = results[(i * columns) + 0]; f_geometry_column = results[(i * columns) + 1]; if (!update_layer_statistics (handle, f_table_name, f_geometry_column)) { error = 1; break; } } } sqlite3_free_table (results); if (error) return 0; return 1; } static int optimistic_layer_statistics_v2 (sqlite3 * handle, const char *table, const char *geometry) { /* selective statistics update - v.2.0.0 layout */ char *sql_statement; int ret; const char *f_table_name; const char *f_geometry_column; int i; char **results; int rows; int columns; int error = 0; /* genuine Table-based Geometries */ if (table == NULL && geometry == NULL) { /* processing any table/geometry found in GEOMETRY_COLUMNS */ sql_statement = sqlite3_mprintf ("SELECT g.f_table_name, g.f_geometry_column " "FROM geometry_columns AS g " "LEFT JOIN layer_statistics AS s ON " "(g.f_table_name = s.table_name AND " "g.f_geometry_column = s.geometry_column) " "WHERE s.row_count IS NULL OR s.extent_min_x IS NULL " "OR s.extent_min_y IS NULL OR s.extent_max_y IS NULL " "OR s.extent_max_y IS NULL"); } else if (geometry == NULL) { /* processing any geometry belonging to this table */ sql_statement = sqlite3_mprintf ("SELECT g.f_table_name, g.f_geometry_column " "FROM geometry_columns AS g " "LEFT JOIN layer_statistics AS s ON " "(g.f_table_name = s.table_name AND " "g.f_geometry_column = s.geometry_column) " "WHERE Lower(g.f_table_name) = Lower(%Q) AND " "(s.row_count IS NULL OR s.extent_min_x IS NULL " "OR s.extent_min_y IS NULL OR s.extent_max_y IS NULL " "OR s.extent_max_y IS NULL)", table); } else { /* processing a single table/geometry entry */ sql_statement = sqlite3_mprintf ("SELECT g.f_table_name, g.f_geometry_column " "FROM geometry_columns AS g " "LEFT JOIN layer_statistics AS s ON " "(g.f_table_name = s.table_name AND " "g.f_geometry_column = s.geometry_column) " "WHERE Lower(g.f_table_name) = Lower(%Q) AND " "Lower(g.f_geometry_column) = Lower(%Q) AND " "(s.row_count IS NULL OR s.extent_min_x IS NULL " "OR s.extent_min_y IS NULL OR s.extent_max_y IS NULL " "OR s.extent_max_y IS NULL)", table, geometry); } ret = sqlite3_get_table (handle, sql_statement, &results, &rows, &columns, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { f_table_name = results[(i * columns) + 0]; f_geometry_column = results[(i * columns) + 1]; if (!update_layer_statistics (handle, f_table_name, f_geometry_column)) { error = 1; break; } } } sqlite3_free_table (results); if (error) return 0; return 1; } static int optimistic_layer_statistics (sqlite3 * handle, const char *table, const char *geometry) { /* selective statistics update */ if (check_v4_statistics (handle)) return optimistic_layer_statistics_v4 (handle, table, geometry); else if (check_v3_statistics (handle)) return optimistic_layer_statistics_v3 (handle, table, geometry); else if (check_v2_statistics (handle)) return optimistic_layer_statistics_v2 (handle, table, geometry); else return 0; } SPATIALITE_DECLARE gaiaVectorLayersListPtr gaiaGetVectorLayersList (sqlite3 * handle, const char *table, const char *geometry, int mode) { /* creating a VectorLayersList object */ gaiaVectorLayersListPtr list; int metadata_version; if (mode == GAIA_VECTORS_LIST_PESSIMISTIC) { /* updating anyway the statistics before querying */ if (!update_layer_statistics (handle, table, geometry)) return NULL; } if (mode == GAIA_VECTORS_LIST_OPTIMISTIC) { /* selectively updating the statistics before querying */ if (!optimistic_layer_statistics (handle, table, geometry)) { /* failure: defaulting to Pessimistic */ if (!update_layer_statistics (handle, table, geometry)) return NULL; } } /* allocating an empty VectorLayersList */ list = malloc (sizeof (gaiaVectorLayersList)); list->First = NULL; list->Last = NULL; list->Current = NULL; metadata_version = checkSpatialMetaData (handle); if (metadata_version == 3) { /* current metadata style >= v.4.0.0 */ if (!gaiaGetVectorLayersList_v4 (handle, table, geometry, list)) { gaiaFreeVectorLayersList (list); return NULL; } if (list->First == NULL) { gaiaFreeVectorLayersList (list); return NULL; } return list; } /* legacy metadata style <= v.3.x.x */ if (!get_table_layers_legacy (handle, table, geometry, list)) goto error; if (!get_view_layers_legacy (handle, table, geometry, list)) goto error; if (!get_table_extent_legacy (handle, table, geometry, list)) goto error; if (!get_view_extent_legacy (handle, table, geometry, list)) goto error; if (!get_table_auth_legacy (handle, table, geometry, list)) goto error; if (table != NULL && mode == GAIA_VECTORS_LIST_PESSIMISTIC) { if (!compute_table_fields_statistics (handle, table, geometry, list)) goto error; } if (list->First == NULL) { gaiaFreeVectorLayersList (list); return NULL; } return list; error: gaiaFreeVectorLayersList (list); return NULL; } SPATIALITE_DECLARE gaiaGeomCollPtr gaiaGetLayerExtent (sqlite3 * handle, const char *table, const char *geometry, int mode) { /* attempting to get a Layer Full Extent (Envelope) */ gaiaVectorLayersListPtr list; gaiaVectorLayerPtr lyr; double minx = -DBL_MAX; double miny = -DBL_MAX; double maxx = DBL_MAX; double maxy = DBL_MAX; int srid; gaiaGeomCollPtr bbox; gaiaPolygonPtr polyg; gaiaRingPtr rect; int md = GAIA_VECTORS_LIST_OPTIMISTIC; if (table == NULL) return NULL; if (mode) md = GAIA_VECTORS_LIST_PESSIMISTIC; list = gaiaGetVectorLayersList (handle, table, geometry, md); if (list == NULL) return NULL; lyr = list->First; if (lyr == list->Last && lyr != NULL) { srid = lyr->Srid; if (lyr->ExtentInfos) { minx = lyr->ExtentInfos->MinX; miny = lyr->ExtentInfos->MinY; maxx = lyr->ExtentInfos->MaxX; maxy = lyr->ExtentInfos->MaxY; } } gaiaFreeVectorLayersList (list); if (minx == -DBL_MIN || miny == -DBL_MAX || maxx == DBL_MAX || maxy == DBL_MAX) return NULL; /* building the Envelope */ bbox = gaiaAllocGeomColl (); bbox->Srid = srid; polyg = gaiaAddPolygonToGeomColl (bbox, 5, 0); rect = polyg->Exterior; gaiaSetPoint (rect->Coords, 0, minx, miny); /* vertex # 1 */ gaiaSetPoint (rect->Coords, 1, maxx, miny); /* vertex # 2 */ gaiaSetPoint (rect->Coords, 2, maxx, maxy); /* vertex # 3 */ gaiaSetPoint (rect->Coords, 3, minx, maxy); /* vertex # 4 */ gaiaSetPoint (rect->Coords, 4, minx, miny); /* vertex # 5 [same as vertex # 1 to close the polygon] */ return bbox; } libspatialite-4.1.1/src/spatialite/Makefile.am0000664000175000017500000000071512163502133016247 00000000000000 INCLUDES = @CFLAGS@ @GEOS_CFLAGS@ @LIBXML2_CFLAGS@ INCLUDES += -I$(top_srcdir)/src/headers noinst_LTLIBRARIES = libsplite.la libsplite_la_SOURCES = mbrcache.c \ spatialite.c \ spatialite_init.c \ metatables.c \ statistics.c \ extra_tables.c \ virtualdbf.c \ virtualXL.c \ virtualfdo.c \ virtualspatialindex.c \ virtualnetwork.c \ virtualshape.c \ virtualxpath.c libsplite_la_CFLAGS = -fvisibility=hidden MOSTLYCLEANFILES = *.gcna *.gcno *.gcda libspatialite-4.1.1/src/spatialite/virtualdbf.c0000664000175000017500000005423712163502133016531 00000000000000/* virtualdbf.c -- SQLite3 extension [VIRTUAL TABLE accessing DBF] version 4.1, 2013 May 8 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include #include #include #include #ifdef _WIN32 #define strcasecmp _stricmp #endif /* not WIN32 */ #ifndef OMIT_ICONV /* if ICONV is disabled no DBF support is available */ static struct sqlite3_module my_dbf_module; typedef struct VirtualDbfStruct { /* extends the sqlite3_vtab struct */ const sqlite3_module *pModule; /* ptr to sqlite module: USED INTERNALLY BY SQLITE */ int nRef; /* # references: USED INTERNALLY BY SQLITE */ char *zErrMsg; /* error message: USE INTERNALLY BY SQLITE */ sqlite3 *db; /* the sqlite db holding the virtual table */ gaiaDbfPtr dbf; /* the DBF struct */ } VirtualDbf; typedef VirtualDbf *VirtualDbfPtr; typedef struct VirtualDbfConstraintStruct { /* a constraint to be verified for xFilter */ int iColumn; /* Column on left-hand side of constraint */ int op; /* Constraint operator */ char valueType; /* value Type ('I'=int,'D'=double,'T'=text) */ sqlite3_int64 intValue; /* Int64 comparison value */ double dblValue; /* Double comparison value */ char *txtValue; /* Text comparison value */ struct VirtualDbfConstraintStruct *next; } VirtualDbfConstraint; typedef VirtualDbfConstraint *VirtualDbfConstraintPtr; typedef struct VirtualDbfCursorStruct { /* extends the sqlite3_vtab_cursor struct */ VirtualDbfPtr pVtab; /* Virtual table of this cursor */ long current_row; /* the current row ID */ int eof; /* the EOF marker */ VirtualDbfConstraintPtr firstConstraint; VirtualDbfConstraintPtr lastConstraint; } VirtualDbfCursor; typedef VirtualDbfCursor *VirtualDbfCursorPtr; static int vdbf_create (sqlite3 * db, void *pAux, int argc, const char *const *argv, sqlite3_vtab ** ppVTab, char **pzErr) { /* creates the virtual table connected to some DBF */ char *sql; VirtualDbfPtr p_vt; char path[2048]; char encoding[128]; const char *pEncoding = NULL; int len; const char *pPath = NULL; gaiaDbfFieldPtr pFld; int cnt; int col_cnt; int seed; int dup; int idup; char *xname; char **col_name = NULL; gaiaOutBuffer sql_statement; if (pAux) pAux = pAux; /* unused arg warning suppression */ /* checking for DBF PATH */ if (argc == 5) { pPath = argv[3]; len = strlen (pPath); if ((*(pPath + 0) == '\'' || *(pPath + 0) == '"') && (*(pPath + len - 1) == '\'' || *(pPath + len - 1) == '"')) { /* the path is enclosed between quotes - we need to dequote it */ strcpy (path, pPath + 1); len = strlen (path); *(path + len - 1) = '\0'; } else strcpy (path, pPath); pEncoding = argv[4]; len = strlen (pEncoding); if ((*(pEncoding + 0) == '\'' || *(pEncoding + 0) == '"') && (*(pEncoding + len - 1) == '\'' || *(pEncoding + len - 1) == '"')) { /* the charset-name is enclosed between quotes - we need to dequote it */ strcpy (encoding, pEncoding + 1); len = strlen (encoding); *(encoding + len - 1) = '\0'; } else strcpy (encoding, pEncoding); } else { *pzErr = sqlite3_mprintf ("[VirtualDbf module] CREATE VIRTUAL: illegal arg list {dbf_path, encoding}"); return SQLITE_ERROR; } p_vt = (VirtualDbfPtr) sqlite3_malloc (sizeof (VirtualDbf)); if (!p_vt) return SQLITE_NOMEM; p_vt->pModule = &my_dbf_module; p_vt->nRef = 0; p_vt->zErrMsg = NULL; p_vt->db = db; p_vt->dbf = gaiaAllocDbf (); /* trying to open file */ gaiaOpenDbfRead (p_vt->dbf, path, encoding, "UTF-8"); if (!(p_vt->dbf->Valid)) { /* something is going the wrong way; creating a stupid default table */ xname = gaiaDoubleQuotedSql ((const char *) argv[2]); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (PKUID INTEGER)", xname); free (xname); if (sqlite3_declare_vtab (db, sql) != SQLITE_OK) { sqlite3_free (sql); *pzErr = sqlite3_mprintf ("[VirtualDbf module] cannot build a table from DBF\n"); return SQLITE_ERROR; } sqlite3_free (sql); *ppVTab = (sqlite3_vtab *) p_vt; return SQLITE_OK; } /* preparing the COLUMNs for this VIRTUAL TABLE */ gaiaOutBufferInitialize (&sql_statement); xname = gaiaDoubleQuotedSql (argv[2]); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (PKUID INTEGER", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); /* checking for duplicate / illegal column names and antialising them */ col_cnt = 0; pFld = p_vt->dbf->Dbf->First; while (pFld) { /* counting DBF fields */ col_cnt++; pFld = pFld->Next; } col_name = malloc (sizeof (char *) * col_cnt); cnt = 0; seed = 0; pFld = p_vt->dbf->Dbf->First; while (pFld) { xname = gaiaDoubleQuotedSql (pFld->Name); dup = 0; for (idup = 0; idup < cnt; idup++) { if (strcasecmp (xname, *(col_name + idup)) == 0) dup = 1; } if (strcasecmp (xname, "\"PKUID\"") == 0) dup = 1; if (dup) { free (xname); sql = sqlite3_mprintf ("COL_%d", seed++); xname = gaiaDoubleQuotedSql (sql); sqlite3_free (sql); } if (pFld->Type == 'N') { if (pFld->Decimals > 0 || pFld->Length > 18) sql = sqlite3_mprintf (", \"%s\" DOUBLE", xname); else sql = sqlite3_mprintf (", \"%s\" INTEGER", xname); } else if (pFld->Type == 'F') sql = sqlite3_mprintf (", \"%s\" DOUBLE", xname); else sql = sqlite3_mprintf (", \"%s\" VARCHAR(%d)", xname, pFld->Length); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); *(col_name + cnt) = xname; cnt++; pFld = pFld->Next; } gaiaAppendToOutBuffer (&sql_statement, ")"); if (col_name) { /* releasing memory allocation for column names */ for (cnt = 0; cnt < col_cnt; cnt++) free (*(col_name + cnt)); free (col_name); } if (sql_statement.Error == 0 && sql_statement.Buffer != NULL) { if (sqlite3_declare_vtab (db, sql_statement.Buffer) != SQLITE_OK) { *pzErr = sqlite3_mprintf ("[VirtualDbf module] CREATE VIRTUAL: invalid SQL statement \"%s\"", sql_statement.Buffer); gaiaOutBufferReset (&sql_statement); return SQLITE_ERROR; } } gaiaOutBufferReset (&sql_statement); *ppVTab = (sqlite3_vtab *) p_vt; return SQLITE_OK; } static int vdbf_connect (sqlite3 * db, void *pAux, int argc, const char *const *argv, sqlite3_vtab ** ppVTab, char **pzErr) { /* connects the virtual table to some DBF - simply aliases vdbf_create() */ return vdbf_create (db, pAux, argc, argv, ppVTab, pzErr); } static int vdbf_best_index (sqlite3_vtab * pVTab, sqlite3_index_info * pIndex) { /* best index selection */ int i; int iArg = 0; char str[2048]; char buf[64]; if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ *str = '\0'; for (i = 0; i < pIndex->nConstraint; i++) { if (pIndex->aConstraint[i].usable) { iArg++; pIndex->aConstraintUsage[i].argvIndex = iArg; pIndex->aConstraintUsage[i].omit = 1; sprintf (buf, "%d:%d,", pIndex->aConstraint[i].iColumn, pIndex->aConstraint[i].op); strcat (str, buf); } } if (*str != '\0') { pIndex->idxStr = sqlite3_mprintf ("%s", str); pIndex->needToFreeIdxStr = 1; } return SQLITE_OK; } static int vdbf_disconnect (sqlite3_vtab * pVTab) { /* disconnects the virtual table */ VirtualDbfPtr p_vt = (VirtualDbfPtr) pVTab; if (p_vt->dbf) gaiaFreeDbf (p_vt->dbf); sqlite3_free (p_vt); return SQLITE_OK; } static int vdbf_destroy (sqlite3_vtab * pVTab) { /* destroys the virtual table - simply aliases vdbf_disconnect() */ return vdbf_disconnect (pVTab); } static void vdbf_read_row (VirtualDbfCursorPtr cursor, int *deleted_row) { /* trying to read a "row" from DBF */ int ret; int deleted; if (!(cursor->pVtab->dbf->Valid)) { cursor->eof = 1; return; } ret = gaiaReadDbfEntity (cursor->pVtab->dbf, cursor->current_row, &deleted); if (!ret) { if (!(cursor->pVtab->dbf->LastError)) /* normal DBF EOF */ { cursor->eof = 1; return; } /* an error occurred */ spatialite_e ("%s\n", cursor->pVtab->dbf->LastError); cursor->eof = 1; return; } cursor->current_row++; *deleted_row = deleted; } static int vdbf_open (sqlite3_vtab * pVTab, sqlite3_vtab_cursor ** ppCursor) { /* opening a new cursor */ int deleted; VirtualDbfCursorPtr cursor = (VirtualDbfCursorPtr) sqlite3_malloc (sizeof (VirtualDbfCursor)); if (cursor == NULL) return SQLITE_ERROR; cursor->firstConstraint = NULL; cursor->lastConstraint = NULL; cursor->pVtab = (VirtualDbfPtr) pVTab; cursor->current_row = 0; cursor->eof = 0; *ppCursor = (sqlite3_vtab_cursor *) cursor; while (1) { vdbf_read_row (cursor, &deleted); if (cursor->eof) break; if (!deleted) break; } return SQLITE_OK; } static void vdbf_free_constraints (VirtualDbfCursorPtr cursor) { /* memory cleanup - cursor constraints */ VirtualDbfConstraintPtr pC; VirtualDbfConstraintPtr pCn; pC = cursor->firstConstraint; while (pC) { pCn = pC->next; if (pC->txtValue) sqlite3_free (pC->txtValue); sqlite3_free (pC); pC = pCn; } cursor->firstConstraint = NULL; cursor->lastConstraint = NULL; } static int vdbf_close (sqlite3_vtab_cursor * pCursor) { /* closing the cursor */ VirtualDbfCursorPtr cursor = (VirtualDbfCursorPtr) pCursor; vdbf_free_constraints (cursor); sqlite3_free (pCursor); return SQLITE_OK; } static int vdbf_parse_constraint (const char *str, int index, int *iColumn, int *op) { /* parsing a constraint string */ char buf[64]; const char *in = str; char *out = buf; int i = 0; int found = 0; *out = '\0'; while (*in != '\0') { if (*in == ',') { if (index == i) { *out = '\0'; found = 1; break; } i++; in++; continue; } if (index == i) *out++ = *in; in++; } if (!found) return 0; in = buf; for (i = 0; i < (int) strlen (buf); i++) { if (buf[i] == ':') { buf[i] = '\0'; *iColumn = atoi (buf); *op = atoi (buf + i + 1); return 1; } in++; } return 0; } static int vdbf_eval_constraints (VirtualDbfCursorPtr cursor) { /* evaluating Filter constraints */ int nCol; gaiaDbfFieldPtr pFld; VirtualDbfConstraintPtr pC = cursor->firstConstraint; if (pC == NULL) return 1; while (pC) { int ok = 0; if (pC->iColumn == 0) { /* the PRIMARY KEY column */ if (pC->valueType == 'I') { switch (pC->op) { case SQLITE_INDEX_CONSTRAINT_EQ: if (cursor->current_row == pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GT: if (cursor->current_row > pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LE: if (cursor->current_row <= pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LT: if (cursor->current_row < pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GE: if (cursor->current_row >= pC->intValue) ok = 1; break; }; } goto done; } nCol = 1; pFld = cursor->pVtab->dbf->Dbf->First; while (pFld) { if (nCol == pC->iColumn) { if ((pFld->Value)) { switch (pFld->Value->Type) { case GAIA_INT_VALUE: if (pC->valueType == 'I') { switch (pC->op) { case SQLITE_INDEX_CONSTRAINT_EQ: if (pFld->Value->IntValue == pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GT: if (pFld->Value->IntValue > pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LE: if (pFld->Value->IntValue <= pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LT: if (pFld->Value->IntValue < pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GE: if (pFld->Value->IntValue >= pC->intValue) ok = 1; break; }; } break; case GAIA_DOUBLE_VALUE: if (pC->valueType == 'I') { switch (pC->op) { case SQLITE_INDEX_CONSTRAINT_EQ: if (pFld->Value->DblValue == pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GT: if (pFld->Value->DblValue > pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LE: if (pFld->Value->DblValue <= pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LT: if (pFld->Value->DblValue < pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GE: if (pFld->Value->DblValue >= pC->intValue) ok = 1; break; }; } if (pC->valueType == 'D') { switch (pC->op) { case SQLITE_INDEX_CONSTRAINT_EQ: if (pFld->Value->DblValue == pC->dblValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GT: if (pFld->Value->DblValue > pC->dblValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LE: if (pFld->Value->DblValue <= pC->dblValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LT: if (pFld->Value->DblValue < pC->dblValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GE: if (pFld->Value->DblValue >= pC->dblValue) ok = 1; break; } } break; case GAIA_TEXT_VALUE: if (pC->valueType == 'T' && pC->txtValue) { int ret; ret = strcmp (pFld->Value->TxtValue, pC->txtValue); switch (pC->op) { case SQLITE_INDEX_CONSTRAINT_EQ: if (ret == 0) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GT: if (ret > 0) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LE: if (ret <= 0) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LT: if (ret < 0) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GE: if (ret >= 0) ok = 1; break; }; } break; }; } goto done; } nCol++; pFld = pFld->Next; } done: if (!ok) return 0; pC = pC->next; } return 1; } static int vdbf_filter (sqlite3_vtab_cursor * pCursor, int idxNum, const char *idxStr, int argc, sqlite3_value ** argv) { /* setting up a cursor filter */ int i; int iColumn; int op; int len; int deleted; VirtualDbfConstraintPtr pC; VirtualDbfCursorPtr cursor = (VirtualDbfCursorPtr) pCursor; if (idxNum) idxNum = idxNum; /* unused arg warning suppression */ /* resetting any previously set filter constraint */ vdbf_free_constraints (cursor); for (i = 0; i < argc; i++) { if (!vdbf_parse_constraint (idxStr, i, &iColumn, &op)) continue; pC = sqlite3_malloc (sizeof (VirtualDbfConstraint)); if (!pC) continue; pC->iColumn = iColumn; pC->op = op; pC->valueType = '\0'; pC->txtValue = NULL; pC->next = NULL; if (sqlite3_value_type (argv[i]) == SQLITE_INTEGER) { pC->valueType = 'I'; pC->intValue = sqlite3_value_int64 (argv[i]); } if (sqlite3_value_type (argv[i]) == SQLITE_FLOAT) { pC->valueType = 'D'; pC->dblValue = sqlite3_value_double (argv[i]); } if (sqlite3_value_type (argv[i]) == SQLITE_TEXT) { pC->valueType = 'T'; len = sqlite3_value_bytes (argv[i]) + 1; pC->txtValue = (char *) sqlite3_malloc (len); if (pC->txtValue) strcpy (pC->txtValue, (char *) sqlite3_value_text (argv[i])); } if (cursor->firstConstraint == NULL) cursor->firstConstraint = pC; if (cursor->lastConstraint != NULL) cursor->lastConstraint->next = pC; cursor->lastConstraint = pC; } cursor->current_row = 0; cursor->eof = 0; while (1) { vdbf_read_row (cursor, &deleted); if (cursor->eof) break; if (deleted) continue; if (vdbf_eval_constraints (cursor)) break; } return SQLITE_OK; } static int vdbf_next (sqlite3_vtab_cursor * pCursor) { /* fetching a next row from cursor */ int deleted; VirtualDbfCursorPtr cursor = (VirtualDbfCursorPtr) pCursor; while (1) { vdbf_read_row (cursor, &deleted); if (cursor->eof) break; if (deleted) continue; if (vdbf_eval_constraints (cursor)) break; } return SQLITE_OK; } static int vdbf_eof (sqlite3_vtab_cursor * pCursor) { /* cursor EOF */ VirtualDbfCursorPtr cursor = (VirtualDbfCursorPtr) pCursor; return cursor->eof; } static int vdbf_column (sqlite3_vtab_cursor * pCursor, sqlite3_context * pContext, int column) { /* fetching value for the Nth column */ int nCol = 1; gaiaDbfFieldPtr pFld; VirtualDbfCursorPtr cursor = (VirtualDbfCursorPtr) pCursor; if (column == 0) { /* the PRIMARY KEY column */ sqlite3_result_int (pContext, cursor->current_row); return SQLITE_OK; } pFld = cursor->pVtab->dbf->Dbf->First; while (pFld) { /* column values */ if (nCol == column) { if (!(pFld->Value)) sqlite3_result_null (pContext); else { switch (pFld->Value->Type) { case GAIA_INT_VALUE: sqlite3_result_int64 (pContext, pFld->Value->IntValue); break; case GAIA_DOUBLE_VALUE: sqlite3_result_double (pContext, pFld->Value->DblValue); break; case GAIA_TEXT_VALUE: sqlite3_result_text (pContext, pFld->Value->TxtValue, strlen (pFld->Value->TxtValue), SQLITE_STATIC); break; default: sqlite3_result_null (pContext); break; } } break; } nCol++; pFld = pFld->Next; } return SQLITE_OK; } static int vdbf_rowid (sqlite3_vtab_cursor * pCursor, sqlite_int64 * pRowid) { /* fetching the ROWID */ VirtualDbfCursorPtr cursor = (VirtualDbfCursorPtr) pCursor; *pRowid = cursor->current_row; return SQLITE_OK; } static int vdbf_update (sqlite3_vtab * pVTab, int argc, sqlite3_value ** argv, sqlite_int64 * pRowid) { /* generic update [INSERT / UPDATE / DELETE */ if (pVTab || argc || argv || pRowid) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_READONLY; } static int vdbf_begin (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vdbf_sync (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vdbf_commit (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vdbf_rollback (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } int sqlite3VirtualDbfInit (sqlite3 * db) { int rc = SQLITE_OK; my_dbf_module.iVersion = 1; my_dbf_module.xCreate = &vdbf_create; my_dbf_module.xConnect = &vdbf_connect; my_dbf_module.xBestIndex = &vdbf_best_index; my_dbf_module.xDisconnect = &vdbf_disconnect; my_dbf_module.xDestroy = &vdbf_destroy; my_dbf_module.xOpen = &vdbf_open; my_dbf_module.xClose = &vdbf_close; my_dbf_module.xFilter = &vdbf_filter; my_dbf_module.xNext = &vdbf_next; my_dbf_module.xEof = &vdbf_eof; my_dbf_module.xColumn = &vdbf_column; my_dbf_module.xRowid = &vdbf_rowid; my_dbf_module.xUpdate = &vdbf_update; my_dbf_module.xBegin = &vdbf_begin; my_dbf_module.xSync = &vdbf_sync; my_dbf_module.xCommit = &vdbf_commit; my_dbf_module.xRollback = &vdbf_rollback; my_dbf_module.xFindFunction = NULL; sqlite3_create_module_v2 (db, "VirtualDbf", &my_dbf_module, NULL, 0); return rc; } int virtualdbf_extension_init (sqlite3 * db) { return sqlite3VirtualDbfInit (db); } #endif /* ICONV enabled/disabled */ libspatialite-4.1.1/src/spatialite/virtualshape.c0000664000175000017500000007227612163502133017101 00000000000000/* virtualshape.c -- SQLite3 extension [VIRTUAL TABLE accessing Shapefile] version 4.1, 2013 May 8 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include #include #include #include #include #ifdef _WIN32 #define strcasecmp _stricmp #endif /* not WIN32 */ #ifndef OMIT_ICONV /* if ICONV is disabled no SHP support is available */ static struct sqlite3_module my_shape_module; typedef struct VirtualShapeStruct { /* extends the sqlite3_vtab struct */ const sqlite3_module *pModule; /* ptr to sqlite module: USED INTERNALLY BY SQLITE */ int nRef; /* # references: USED INTERNALLY BY SQLITE */ char *zErrMsg; /* error message: USE INTERNALLY BY SQLITE */ sqlite3 *db; /* the sqlite db holding the virtual table */ gaiaShapefilePtr Shp; /* the Shapefile struct */ int Srid; /* the Shapefile SRID */ } VirtualShape; typedef VirtualShape *VirtualShapePtr; typedef struct VirtualShapeConstraintStruct { /* a constraint to be verified for xFilter */ int iColumn; /* Column on left-hand side of constraint */ int op; /* Constraint operator */ char valueType; /* value Type ('I'=int,'D'=double,'T'=text) */ sqlite3_int64 intValue; /* Int64 comparison value */ double dblValue; /* Double comparison value */ char *txtValue; /* Text comparison value */ struct VirtualShapeConstraintStruct *next; } VirtualShapeConstraint; typedef VirtualShapeConstraint *VirtualShapeConstraintPtr; typedef struct VirtualShapeCursorStruct { /* extends the sqlite3_vtab_cursor struct */ VirtualShapePtr pVtab; /* Virtual table of this cursor */ long current_row; /* the current row ID */ int blobSize; unsigned char *blobGeometry; int eof; /* the EOF marker */ VirtualShapeConstraintPtr firstConstraint; VirtualShapeConstraintPtr lastConstraint; } VirtualShapeCursor; typedef VirtualShapeCursor *VirtualShapeCursorPtr; static int vshp_has_metadata (sqlite3 * db, int *geotype) { /* testing the layout of virts_geometry_columns table */ char **results; int ret; int rows; int columns; int i; int ok_virt_name = 0; int ok_virt_geometry = 0; int ok_srid = 0; int ok_geometry_type = 0; int ok_type = 0; int ok_coord_dimension = 0; ret = sqlite3_get_table (db, "PRAGMA table_info(virts_geometry_columns)", &results, &rows, &columns, NULL); if (ret != SQLITE_OK) return 0; for (i = 1; i <= rows; i++) { if (strcasecmp ("virt_name", results[(i * columns) + 1]) == 0) ok_virt_name = 1; if (strcasecmp ("virt_geometry", results[(i * columns) + 1]) == 0) ok_virt_geometry = 1; if (strcasecmp ("srid", results[(i * columns) + 1]) == 0) ok_srid = 1; if (strcasecmp ("geometry_type", results[(i * columns) + 1]) == 0) ok_geometry_type = 1; if (strcasecmp ("type", results[(i * columns) + 1]) == 0) ok_type = 1; if (strcasecmp ("coord_dimension", results[(i * columns) + 1]) == 0) ok_coord_dimension = 1; } sqlite3_free_table (results); if (ok_virt_name && ok_virt_geometry && ok_srid && ok_geometry_type && ok_coord_dimension) { *geotype = 1; return 1; } if (ok_virt_name && ok_virt_geometry && ok_srid && ok_type) { *geotype = 0; return 1; } return 0; } static int vshp_create (sqlite3 * db, void *pAux, int argc, const char *const *argv, sqlite3_vtab ** ppVTab, char **pzErr) { /* creates the virtual table connected to some shapefile */ char *sql; VirtualShapePtr p_vt; char path[2048]; char encoding[128]; const char *pEncoding = NULL; int len; const char *pPath = NULL; int srid; gaiaDbfFieldPtr pFld; int cnt; int col_cnt; int seed; int dup; int idup; char *xname; char **col_name = NULL; int geotype; gaiaOutBuffer sql_statement; if (pAux) pAux = pAux; /* unused arg warning suppression */ /* checking for shapefile PATH */ if (argc == 6) { pPath = argv[3]; len = strlen (pPath); if ((*(pPath + 0) == '\'' || *(pPath + 0) == '"') && (*(pPath + len - 1) == '\'' || *(pPath + len - 1) == '"')) { /* the path is enclosed between quotes - we need to dequote it */ strcpy (path, pPath + 1); len = strlen (path); *(path + len - 1) = '\0'; } else strcpy (path, pPath); pEncoding = argv[4]; len = strlen (pEncoding); if ((*(pEncoding + 0) == '\'' || *(pEncoding + 0) == '"') && (*(pEncoding + len - 1) == '\'' || *(pEncoding + len - 1) == '"')) { /* the charset-name is enclosed between quotes - we need to dequote it */ strcpy (encoding, pEncoding + 1); len = strlen (encoding); *(encoding + len - 1) = '\0'; } else strcpy (encoding, pEncoding); srid = atoi (argv[5]); if (srid < 0) srid = -1; } else { *pzErr = sqlite3_mprintf ("[VirtualShape module] CREATE VIRTUAL: illegal arg list {shp_path, encoding, srid}"); return SQLITE_ERROR; } p_vt = (VirtualShapePtr) sqlite3_malloc (sizeof (VirtualShape)); if (!p_vt) return SQLITE_NOMEM; p_vt->pModule = &my_shape_module; p_vt->nRef = 0; p_vt->zErrMsg = NULL; p_vt->db = db; p_vt->Shp = gaiaAllocShapefile (); p_vt->Srid = srid; /* trying to open files etc in order to ensure we actually have a genuine shapefile */ gaiaOpenShpRead (p_vt->Shp, path, encoding, "UTF-8"); if (!(p_vt->Shp->Valid)) { /* something is going the wrong way; creating a stupid default table */ xname = gaiaDoubleQuotedSql ((const char *) argv[2]); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (PKUID INTEGER, Geometry BLOB)", xname); free (xname); if (sqlite3_declare_vtab (db, sql) != SQLITE_OK) { sqlite3_free (sql); *pzErr = sqlite3_mprintf ("[VirtualShape module] cannot build a table from Shapefile\n"); return SQLITE_ERROR; } sqlite3_free (sql); *ppVTab = (sqlite3_vtab *) p_vt; return SQLITE_OK; } if (p_vt->Shp->Shape == 3 || p_vt->Shp->Shape == 13 || p_vt->Shp->Shape == 23 || p_vt->Shp->Shape == 5 || p_vt->Shp->Shape == 15 || p_vt->Shp->Shape == 25) { /* fixing anyway the Geometry type for LINESTRING/MULTILINESTRING or POLYGON/MULTIPOLYGON */ gaiaShpAnalyze (p_vt->Shp); } /* preparing the COLUMNs for this VIRTUAL TABLE */ gaiaOutBufferInitialize (&sql_statement); xname = gaiaDoubleQuotedSql (argv[2]); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (PKUID INTEGER, Geometry BLOB", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); /* checking for duplicate / illegal column names and antialising them */ col_cnt = 0; pFld = p_vt->Shp->Dbf->First; while (pFld) { /* counting DBF fields */ col_cnt++; pFld = pFld->Next; } col_name = malloc (sizeof (char *) * col_cnt); cnt = 0; seed = 0; pFld = p_vt->Shp->Dbf->First; while (pFld) { xname = gaiaDoubleQuotedSql (pFld->Name); dup = 0; for (idup = 0; idup < cnt; idup++) { if (strcasecmp (xname, *(col_name + idup)) == 0) dup = 1; } if (strcasecmp (xname, "\"PKUID\"") == 0) dup = 1; if (strcasecmp (xname, "\"Geometry\"") == 0) dup = 1; if (dup) { free (xname); sql = sqlite3_mprintf ("COL_%d", seed++); xname = gaiaDoubleQuotedSql (sql); sqlite3_free (sql); } if (pFld->Type == 'N') { if (pFld->Decimals > 0 || pFld->Length > 18) sql = sqlite3_mprintf (", \"%s\" DOUBLE", xname); else sql = sqlite3_mprintf (", \"%s\" INTEGER", xname); } else if (pFld->Type == 'F') sql = sqlite3_mprintf (", \"%s\" DOUBLE", xname); else sql = sqlite3_mprintf (", \"%s\" VARCHAR(%d)", xname, pFld->Length); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); *(col_name + cnt) = xname; cnt++; pFld = pFld->Next; } gaiaAppendToOutBuffer (&sql_statement, ")"); if (col_name) { /* releasing memory allocation for column names */ for (cnt = 0; cnt < col_cnt; cnt++) free (*(col_name + cnt)); free (col_name); } if (sql_statement.Error == 0 && sql_statement.Buffer != NULL) { if (sqlite3_declare_vtab (db, sql_statement.Buffer) != SQLITE_OK) { *pzErr = sqlite3_mprintf ("[VirtualShape module] CREATE VIRTUAL: invalid SQL statement \"%s\"", sql_statement.Buffer); gaiaOutBufferReset (&sql_statement); return SQLITE_ERROR; } } gaiaOutBufferReset (&sql_statement); *ppVTab = (sqlite3_vtab *) p_vt; if (vshp_has_metadata (db, &geotype)) { /* registering the Virtual Geometry */ if (geotype) { int xtype = 0; int xdims = 0; switch (p_vt->Shp->EffectiveType) { case GAIA_POINT: switch (p_vt->Shp->EffectiveDims) { case GAIA_XY_Z_M: xtype = 3001; xdims = 4; break; case GAIA_XY_M: xtype = 2001; xdims = 3; break; case GAIA_XY_Z: xtype = 1001; xdims = 3; break; default: xtype = 1; xdims = 2; break; }; break; case GAIA_LINESTRING: switch (p_vt->Shp->EffectiveDims) { case GAIA_XY_Z_M: xtype = 3002; xdims = 4; break; case GAIA_XY_M: xtype = 2002; xdims = 3; break; case GAIA_XY_Z: xtype = 1002; xdims = 3; break; default: xtype = 2; xdims = 2; break; }; break; case GAIA_POLYGON: switch (p_vt->Shp->EffectiveDims) { case GAIA_XY_Z_M: xtype = 3003; xdims = 4; break; case GAIA_XY_M: xtype = 2003; xdims = 3; break; case GAIA_XY_Z: xtype = 1003; xdims = 3; break; default: xtype = 3; xdims = 2; break; }; break; case GAIA_MULTIPOINT: switch (p_vt->Shp->EffectiveDims) { case GAIA_XY_Z_M: xtype = 3004; xdims = 4; break; case GAIA_XY_M: xtype = 2004; xdims = 3; break; case GAIA_XY_Z: xtype = 1004; xdims = 3; break; default: xtype = 4; xdims = 2; break; }; break; case GAIA_MULTILINESTRING: switch (p_vt->Shp->EffectiveDims) { case GAIA_XY_Z_M: xtype = 3005; xdims = 4; break; case GAIA_XY_M: xtype = 2005; xdims = 3; break; case GAIA_XY_Z: xtype = 1005; xdims = 3; break; default: xtype = 5; xdims = 2; break; }; break; case GAIA_MULTIPOLYGON: switch (p_vt->Shp->EffectiveDims) { case GAIA_XY_Z_M: xtype = 3006; xdims = 4; break; case GAIA_XY_M: xtype = 2006; xdims = 3; break; case GAIA_XY_Z: xtype = 1006; xdims = 3; break; default: xtype = 6; xdims = 2; break; }; break; }; sql = sqlite3_mprintf ("INSERT OR IGNORE INTO virts_geometry_columns " "(virt_name, virt_geometry, geometry_type, coord_dimension, srid) " "VALUES (Lower(%Q), 'geometry', %d, %d, %d)", argv[2], xtype, xdims, p_vt->Srid); } else { const char *xgtype = "GEOMETRY"; switch (p_vt->Shp->EffectiveType) { case GAIA_POINT: xgtype = "POINT"; break; case GAIA_LINESTRING: xgtype = "LINESTRING"; break; case GAIA_POLYGON: xgtype = "POLYGON"; break; case GAIA_MULTIPOINT: xgtype = "MULTIPOINT"; break; case GAIA_MULTILINESTRING: xgtype = "MULTILINESTRING"; break; case GAIA_MULTIPOLYGON: xgtype = "MULTIPOLYGON"; break; }; sql = sqlite3_mprintf ("INSERT OR IGNORE INTO virts_geometry_columns " "(virt_name, virt_geometry, type, srid) " "VALUES (Lower(%Q), 'geometry', %Q, %d)", argv[2], xgtype, p_vt->Srid); } sqlite3_exec (db, sql, NULL, NULL, NULL); sqlite3_free (sql); } if (checkSpatialMetaData (db) == 3) { /* current metadata style >= v.4.0.0 */ /* inserting a row into VIRTS_GEOMETRY_COLUMNS_AUTH */ sql = sqlite3_mprintf ("INSERT OR IGNORE INTO " "virts_geometry_columns_auth (virt_name, virt_geometry, hidden) " "VALUES (Lower(%Q), 'geometry', 0)", argv[2]); sqlite3_exec (db, sql, NULL, NULL, NULL); sqlite3_free (sql); /* inserting a row into GEOMETRY_COLUMNS_STATISTICS */ sql = sqlite3_mprintf ("INSERT OR IGNORE INTO " "virts_geometry_columns_statistics (virt_name, virt_geometry) " "VALUES (Lower(%Q), 'geometry')", argv[2]); sqlite3_exec (db, sql, NULL, NULL, NULL); sqlite3_free (sql); } return SQLITE_OK; } static int vshp_connect (sqlite3 * db, void *pAux, int argc, const char *const *argv, sqlite3_vtab ** ppVTab, char **pzErr) { /* connects the virtual table to some shapefile - simply aliases vshp_create() */ return vshp_create (db, pAux, argc, argv, ppVTab, pzErr); } static int vshp_best_index (sqlite3_vtab * pVTab, sqlite3_index_info * pIndex) { /* best index selection */ int i; int iArg = 0; char str[2048]; char buf[64]; if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ *str = '\0'; for (i = 0; i < pIndex->nConstraint; i++) { if (pIndex->aConstraint[i].usable) { iArg++; pIndex->aConstraintUsage[i].argvIndex = iArg; pIndex->aConstraintUsage[i].omit = 1; sprintf (buf, "%d:%d,", pIndex->aConstraint[i].iColumn, pIndex->aConstraint[i].op); strcat (str, buf); } } if (*str != '\0') { pIndex->idxStr = sqlite3_mprintf ("%s", str); pIndex->needToFreeIdxStr = 1; } return SQLITE_OK; } static int vshp_disconnect (sqlite3_vtab * pVTab) { /* disconnects the virtual table */ VirtualShapePtr p_vt = (VirtualShapePtr) pVTab; if (p_vt->Shp) gaiaFreeShapefile (p_vt->Shp); sqlite3_free (p_vt); return SQLITE_OK; } static int vshp_destroy (sqlite3_vtab * pVTab) { /* destroys the virtual table - simply aliases vshp_disconnect() */ return vshp_disconnect (pVTab); } static void vshp_read_row (VirtualShapeCursorPtr cursor) { /* trying to read a "row" from shapefile */ int ret; gaiaGeomCollPtr geom; if (!(cursor->pVtab->Shp->Valid)) { cursor->eof = 1; return; } if (cursor->blobGeometry) { free (cursor->blobGeometry); cursor->blobGeometry = NULL; } ret = gaiaReadShpEntity (cursor->pVtab->Shp, cursor->current_row, cursor->pVtab->Srid); if (!ret) { if (!(cursor->pVtab->Shp->LastError)) /* normal SHP EOF */ { cursor->eof = 1; return; } /* an error occurred */ spatialite_e ("%s\n", cursor->pVtab->Shp->LastError); cursor->eof = 1; return; } cursor->current_row++; geom = cursor->pVtab->Shp->Dbf->Geometry; if (geom) { /* preparing the BLOB representing Geometry */ gaiaToSpatiaLiteBlobWkb (geom, &(cursor->blobGeometry), &(cursor->blobSize)); } } static int vshp_open (sqlite3_vtab * pVTab, sqlite3_vtab_cursor ** ppCursor) { /* opening a new cursor */ VirtualShapeCursorPtr cursor = (VirtualShapeCursorPtr) sqlite3_malloc (sizeof (VirtualShapeCursor)); if (cursor == NULL) return SQLITE_ERROR; cursor->firstConstraint = NULL; cursor->lastConstraint = NULL; cursor->pVtab = (VirtualShapePtr) pVTab; cursor->current_row = 0; cursor->blobGeometry = NULL; cursor->blobSize = 0; cursor->eof = 0; *ppCursor = (sqlite3_vtab_cursor *) cursor; vshp_read_row (cursor); return SQLITE_OK; } static void vshp_free_constraints (VirtualShapeCursorPtr cursor) { /* memory cleanup - cursor constraints */ VirtualShapeConstraintPtr pC; VirtualShapeConstraintPtr pCn; pC = cursor->firstConstraint; while (pC) { pCn = pC->next; if (pC->txtValue) sqlite3_free (pC->txtValue); sqlite3_free (pC); pC = pCn; } cursor->firstConstraint = NULL; cursor->lastConstraint = NULL; } static int vshp_close (sqlite3_vtab_cursor * pCursor) { /* closing the cursor */ VirtualShapeCursorPtr cursor = (VirtualShapeCursorPtr) pCursor; if (cursor->blobGeometry) free (cursor->blobGeometry); vshp_free_constraints (cursor); sqlite3_free (pCursor); return SQLITE_OK; } static int vshp_parse_constraint (const char *str, int index, int *iColumn, int *op) { /* parsing a constraint string */ char buf[64]; const char *in = str; char *out = buf; int i = 0; int found = 0; *out = '\0'; while (*in != '\0') { if (*in == ',') { if (index == i) { *out = '\0'; found = 1; break; } i++; in++; continue; } if (index == i) *out++ = *in; in++; } if (!found) return 0; in = buf; for (i = 0; i < (int) strlen (buf); i++) { if (buf[i] == ':') { buf[i] = '\0'; *iColumn = atoi (buf); *op = atoi (buf + i + 1); return 1; } in++; } return 0; } static int vshp_eval_constraints (VirtualShapeCursorPtr cursor) { /* evaluating Filter constraints */ int nCol; gaiaDbfFieldPtr pFld; VirtualShapeConstraintPtr pC = cursor->firstConstraint; if (pC == NULL) return 1; while (pC) { int ok = 0; if (pC->iColumn == 0) { /* the PRIMARY KEY column */ if (pC->valueType == 'I') { switch (pC->op) { case SQLITE_INDEX_CONSTRAINT_EQ: if (cursor->current_row == pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GT: if (cursor->current_row > pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LE: if (cursor->current_row <= pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LT: if (cursor->current_row < pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GE: if (cursor->current_row >= pC->intValue) ok = 1; break; }; } goto done; } nCol = 2; pFld = cursor->pVtab->Shp->Dbf->First; while (pFld) { if (nCol == pC->iColumn) { if ((pFld->Value)) { switch (pFld->Value->Type) { case GAIA_INT_VALUE: if (pC->valueType == 'I') { switch (pC->op) { case SQLITE_INDEX_CONSTRAINT_EQ: if (pFld->Value->IntValue == pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GT: if (pFld->Value->IntValue > pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LE: if (pFld->Value->IntValue <= pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LT: if (pFld->Value->IntValue < pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GE: if (pFld->Value->IntValue >= pC->intValue) ok = 1; break; }; } break; case GAIA_DOUBLE_VALUE: if (pC->valueType == 'I') { switch (pC->op) { case SQLITE_INDEX_CONSTRAINT_EQ: if (pFld->Value->DblValue == pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GT: if (pFld->Value->DblValue > pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LE: if (pFld->Value->DblValue <= pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LT: if (pFld->Value->DblValue < pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GE: if (pFld->Value->DblValue >= pC->intValue) ok = 1; break; }; } if (pC->valueType == 'D') { switch (pC->op) { case SQLITE_INDEX_CONSTRAINT_EQ: if (pFld->Value->DblValue == pC->dblValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GT: if (pFld->Value->DblValue > pC->dblValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LE: if (pFld->Value->DblValue <= pC->dblValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LT: if (pFld->Value->DblValue < pC->dblValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GE: if (pFld->Value->DblValue >= pC->dblValue) ok = 1; break; } } break; case GAIA_TEXT_VALUE: if (pC->valueType == 'T' && pC->txtValue) { int ret; ret = strcmp (pFld->Value->TxtValue, pC->txtValue); switch (pC->op) { case SQLITE_INDEX_CONSTRAINT_EQ: if (ret == 0) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GT: if (ret > 0) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LE: if (ret <= 0) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LT: if (ret < 0) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GE: if (ret >= 0) ok = 1; break; }; } break; }; } goto done; } nCol++; pFld = pFld->Next; } done: if (!ok) return 0; pC = pC->next; } return 1; } static int vshp_filter (sqlite3_vtab_cursor * pCursor, int idxNum, const char *idxStr, int argc, sqlite3_value ** argv) { /* setting up a cursor filter */ int i; int iColumn; int op; int len; VirtualShapeConstraintPtr pC; VirtualShapeCursorPtr cursor = (VirtualShapeCursorPtr) pCursor; if (idxNum) idxNum = idxNum; /* unused arg warning suppression */ /* resetting any previously set filter constraint */ vshp_free_constraints (cursor); for (i = 0; i < argc; i++) { if (!vshp_parse_constraint (idxStr, i, &iColumn, &op)) continue; pC = sqlite3_malloc (sizeof (VirtualShapeConstraint)); if (!pC) continue; pC->iColumn = iColumn; pC->op = op; pC->valueType = '\0'; pC->txtValue = NULL; pC->next = NULL; if (sqlite3_value_type (argv[i]) == SQLITE_INTEGER) { pC->valueType = 'I'; pC->intValue = sqlite3_value_int64 (argv[i]); } if (sqlite3_value_type (argv[i]) == SQLITE_FLOAT) { pC->valueType = 'D'; pC->dblValue = sqlite3_value_double (argv[i]); } if (sqlite3_value_type (argv[i]) == SQLITE_TEXT) { pC->valueType = 'T'; len = sqlite3_value_bytes (argv[i]) + 1; pC->txtValue = (char *) sqlite3_malloc (len); if (pC->txtValue) strcpy (pC->txtValue, (char *) sqlite3_value_text (argv[i])); } if (cursor->firstConstraint == NULL) cursor->firstConstraint = pC; if (cursor->lastConstraint != NULL) cursor->lastConstraint->next = pC; cursor->lastConstraint = pC; } cursor->current_row = 0; if (cursor->blobGeometry) free (cursor->blobGeometry); cursor->blobGeometry = NULL; cursor->blobSize = 0; cursor->eof = 0; while (1) { vshp_read_row (cursor); if (cursor->eof) break; if (vshp_eval_constraints (cursor)) break; } return SQLITE_OK; } static int vshp_next (sqlite3_vtab_cursor * pCursor) { /* fetching a next row from cursor */ VirtualShapeCursorPtr cursor = (VirtualShapeCursorPtr) pCursor; while (1) { vshp_read_row (cursor); if (cursor->eof) break; if (vshp_eval_constraints (cursor)) break; } return SQLITE_OK; } static int vshp_eof (sqlite3_vtab_cursor * pCursor) { /* cursor EOF */ VirtualShapeCursorPtr cursor = (VirtualShapeCursorPtr) pCursor; return cursor->eof; } static int vshp_column (sqlite3_vtab_cursor * pCursor, sqlite3_context * pContext, int column) { /* fetching value for the Nth column */ int nCol = 2; gaiaGeomCollPtr geom; gaiaDbfFieldPtr pFld; VirtualShapeCursorPtr cursor = (VirtualShapeCursorPtr) pCursor; if (column == 0) { /* the PRIMARY KEY column */ sqlite3_result_int (pContext, cursor->current_row); return SQLITE_OK; } if (column == 1) { /* the GEOMETRY column */ geom = cursor->pVtab->Shp->Dbf->Geometry; if (geom) sqlite3_result_blob (pContext, cursor->blobGeometry, cursor->blobSize, SQLITE_STATIC); else sqlite3_result_null (pContext); return SQLITE_OK; } pFld = cursor->pVtab->Shp->Dbf->First; while (pFld) { /* column values */ if (nCol == column) { if (!(pFld->Value)) sqlite3_result_null (pContext); else { switch (pFld->Value->Type) { case GAIA_INT_VALUE: sqlite3_result_int64 (pContext, pFld->Value->IntValue); break; case GAIA_DOUBLE_VALUE: sqlite3_result_double (pContext, pFld->Value->DblValue); break; case GAIA_TEXT_VALUE: sqlite3_result_text (pContext, pFld->Value->TxtValue, strlen (pFld->Value->TxtValue), SQLITE_STATIC); break; default: sqlite3_result_null (pContext); break; } } break; } nCol++; pFld = pFld->Next; } return SQLITE_OK; } static int vshp_rowid (sqlite3_vtab_cursor * pCursor, sqlite_int64 * pRowid) { /* fetching the ROWID */ VirtualShapeCursorPtr cursor = (VirtualShapeCursorPtr) pCursor; *pRowid = cursor->current_row; return SQLITE_OK; } static int vshp_update (sqlite3_vtab * pVTab, int argc, sqlite3_value ** argv, sqlite_int64 * pRowid) { /* generic update [INSERT / UPDATE / DELETE */ if (pVTab || argc || argv || pRowid) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_READONLY; } static int vshp_begin (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vshp_sync (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vshp_commit (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vshp_rollback (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } int sqlite3VirtualShapeInit (sqlite3 * db) { int rc = SQLITE_OK; my_shape_module.iVersion = 1; my_shape_module.xCreate = &vshp_create; my_shape_module.xConnect = &vshp_connect; my_shape_module.xBestIndex = &vshp_best_index; my_shape_module.xDisconnect = &vshp_disconnect; my_shape_module.xDestroy = &vshp_destroy; my_shape_module.xOpen = &vshp_open; my_shape_module.xClose = &vshp_close; my_shape_module.xFilter = &vshp_filter; my_shape_module.xNext = &vshp_next; my_shape_module.xEof = &vshp_eof; my_shape_module.xColumn = &vshp_column; my_shape_module.xRowid = &vshp_rowid; my_shape_module.xUpdate = &vshp_update; my_shape_module.xBegin = &vshp_begin; my_shape_module.xSync = &vshp_sync; my_shape_module.xCommit = &vshp_commit; my_shape_module.xRollback = &vshp_rollback; my_shape_module.xFindFunction = NULL; sqlite3_create_module_v2 (db, "VirtualShape", &my_shape_module, NULL, 0); return rc; } int virtualshape_extension_init (sqlite3 * db) { return sqlite3VirtualShapeInit (db); } #endif /* ICONV enabled/disabled */ libspatialite-4.1.1/src/spatialite/virtualspatialindex.c0000664000175000017500000006152512163502133020461 00000000000000/* virtualspatialindex.c -- SQLite3 extension [VIRTUAL TABLE RTree metahandler] version 4.1, 2013 May 8 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include #include #include #ifdef _WIN32 #define strcasecmp _stricmp #define strncasecmp _strnicmp #endif /* not WIN32 */ static struct sqlite3_module my_spidx_module; /****************************************************************************** / / VirtualTable structs / ******************************************************************************/ typedef struct VirtualSpatialIndexStruct { /* extends the sqlite3_vtab struct */ const sqlite3_module *pModule; /* ptr to sqlite module: USED INTERNALLY BY SQLITE */ int nRef; /* # references: USED INTERNALLY BY SQLITE */ char *zErrMsg; /* error message: USE INTERNALLY BY SQLITE */ sqlite3 *db; /* the sqlite db holding the virtual table */ } VirtualSpatialIndex; typedef VirtualSpatialIndex *VirtualSpatialIndexPtr; typedef struct VirtualSpatialIndexCursorStruct { /* extends the sqlite3_vtab_cursor struct */ VirtualSpatialIndexPtr pVtab; /* Virtual table of this cursor */ int eof; /* the EOF marker */ sqlite3_stmt *stmt; sqlite3_int64 CurrentRowId; } VirtualSpatialIndexCursor; typedef VirtualSpatialIndexCursor *VirtualSpatialIndexCursorPtr; static int vspidx_check_view_rtree (sqlite3 * sqlite, const char *table_name, const char *geom_column, char **real_table, char **real_geom) { /* checks if the required RTree is actually defined - SpatialView */ sqlite3_stmt *stmt; char *sql_statement; int ret; int count = 0; char *rt = NULL; char *rg = NULL; /* testing if views_geometry_columns exists */ sql_statement = sqlite3_mprintf ("SELECT tbl_name FROM sqlite_master " "WHERE type = 'table' AND tbl_name = 'views_geometry_columns'"); ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) return 0; while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) count++; } sqlite3_finalize (stmt); if (count != 1) return 0; count = 0; /* attempting to find the RTree Geometry Column */ sql_statement = sqlite3_mprintf ("SELECT a.f_table_name, a.f_geometry_column " "FROM views_geometry_columns AS a " "JOIN geometry_columns AS b ON (" "Upper(a.f_table_name) = Upper(b.f_table_name) AND " "Upper(a.f_geometry_column) = Upper(b.f_geometry_column)) " "WHERE Upper(a.view_name) = Upper(%Q) " "AND Upper(a.view_geometry) = Upper(%Q) AND b.spatial_index_enabled = 1", table_name, geom_column); ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) return 0; while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { const char *v = (const char *) sqlite3_column_text (stmt, 0); int len = sqlite3_column_bytes (stmt, 0); if (rt) free (rt); rt = malloc (len + 1); strcpy (rt, v); v = (const char *) sqlite3_column_text (stmt, 1); len = sqlite3_column_bytes (stmt, 1); if (rg) free (rg); rg = malloc (len + 1); strcpy (rg, v); count++; } } sqlite3_finalize (stmt); if (count != 1) return 0; *real_table = rt; *real_geom = rg; return 1; } static int vspidx_check_rtree (sqlite3 * sqlite, const char *db_prefix, const char *table_name, const char *geom_column, char **real_table, char **real_geom) { /* checks if the required RTree is actually defined */ sqlite3_stmt *stmt; char *sql_statement; int ret; int count = 0; char *rt = NULL; char *rg = NULL; if (db_prefix == NULL) { sql_statement = sqlite3_mprintf ("SELECT f_table_name, f_geometry_column FROM geometry_columns " "WHERE Upper(f_table_name) = Upper(%Q) AND " "Upper(f_geometry_column) = Upper(%Q) AND spatial_index_enabled = 1", table_name, geom_column); } else { char *quoted_db = gaiaDoubleQuotedSql (db_prefix); sql_statement = sqlite3_mprintf ("SELECT f_table_name, f_geometry_column FROM \"%s\".geometry_columns " "WHERE Upper(f_table_name) = Upper(%Q) AND " "Upper(f_geometry_column) = Upper(%Q) AND spatial_index_enabled = 1", quoted_db, table_name, geom_column); free (quoted_db); } ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) return 0; while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { const char *v = (const char *) sqlite3_column_text (stmt, 0); int len = sqlite3_column_bytes (stmt, 0); if (rt) free (rt); rt = malloc (len + 1); strcpy (rt, v); v = (const char *) sqlite3_column_text (stmt, 1); len = sqlite3_column_bytes (stmt, 1); if (rg) free (rg); rg = malloc (len + 1); strcpy (rg, v); count++; } } sqlite3_finalize (stmt); if (count != 1) return vspidx_check_view_rtree (sqlite, table_name, geom_column, real_table, real_geom); else { *real_table = rt; *real_geom = rg; } return 1; } static int vspidx_find_view_rtree (sqlite3 * sqlite, const char *db_prefix, const char *table_name, char **real_table, char **real_geom) { /* attempts to find the corresponding RTree Geometry Column - SpatialView */ sqlite3_stmt *stmt; char *sql_statement; int ret; int count = 0; char *rt = NULL; char *rg = NULL; /* testing if views_geometry_columns exists */ if (db_prefix == NULL) { sql_statement = sqlite3_mprintf ("SELECT tbl_name FROM sqlite_master " "WHERE type = 'table' AND tbl_name = 'views_geometry_columns'"); } else { char *quoted_db = gaiaDoubleQuotedSql (db_prefix); sql_statement = sqlite3_mprintf ("SELECT tbl_name FROM \"%s\".sqlite_master " "WHERE type = 'table' AND tbl_name = 'views_geometry_columns'", quoted_db); free (quoted_db); } ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) return 0; while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) count++; } sqlite3_finalize (stmt); if (count != 1) return 0; count = 0; /* attempting to find the RTree Geometry Column */ if (db_prefix == NULL) { sql_statement = sqlite3_mprintf ("SELECT a.f_table_name, a.f_geometry_column " "FROM views_geometry_columns AS a " "JOIN geometry_columns AS b ON (" "Upper(a.f_table_name) = Upper(b.f_table_name) AND " "Upper(a.f_geometry_column) = Upper(b.f_geometry_column)) " "WHERE Upper(a.view_name) = Upper(%Q) AND b.spatial_index_enabled = 1", table_name); } else { char *quoted_db = gaiaDoubleQuotedSql (db_prefix); sql_statement = sqlite3_mprintf ("SELECT a.f_table_name, a.f_geometry_column " "FROM \"%s\".views_geometry_columns AS a " "JOIN \"%s\".geometry_columns AS b ON (" "Upper(a.f_table_name) = Upper(b.f_table_name) AND " "Upper(a.f_geometry_column) = Upper(b.f_geometry_column)) " "WHERE Upper(a.view_name) = Upper(%Q) AND b.spatial_index_enabled = 1", quoted_db, quoted_db, table_name); free (quoted_db); } ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) return 0; while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { const char *v = (const char *) sqlite3_column_text (stmt, 0); int len = sqlite3_column_bytes (stmt, 0); if (rt) free (rt); rt = malloc (len + 1); strcpy (rt, v); v = (const char *) sqlite3_column_text (stmt, 1); len = sqlite3_column_bytes (stmt, 1); if (rg) free (rg); rg = malloc (len + 1); strcpy (rg, v); count++; } } sqlite3_finalize (stmt); if (count != 1) return 0; *real_table = rt; *real_geom = rg; return 1; } static int vspidx_find_rtree (sqlite3 * sqlite, const char *db_prefix, const char *table_name, char **real_table, char **real_geom) { /* attempts to find the corresponding RTree Geometry Column */ sqlite3_stmt *stmt; char *sql_statement; int ret; int count = 0; char *rt = NULL; char *rg = NULL; if (db_prefix == NULL) { sql_statement = sqlite3_mprintf ("SELECT f_table_name, f_geometry_column FROM geometry_columns " "WHERE Upper(f_table_name) = Upper(%Q) AND spatial_index_enabled = 1", table_name); } else { char *quoted_db = gaiaDoubleQuotedSql (db_prefix); sql_statement = sqlite3_mprintf ("SELECT f_table_name, f_geometry_column FROM \"%s\".geometry_columns " "WHERE Upper(f_table_name) = Upper(%Q) AND spatial_index_enabled = 1", quoted_db, table_name); free (quoted_db); } ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) return 0; while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { const char *v = (const char *) sqlite3_column_text (stmt, 0); int len = sqlite3_column_bytes (stmt, 0); if (rt) free (rt); rt = malloc (len + 1); strcpy (rt, v); v = (const char *) sqlite3_column_text (stmt, 1); len = sqlite3_column_bytes (stmt, 1); if (rg) free (rg); rg = malloc (len + 1); strcpy (rg, v); count++; } } sqlite3_finalize (stmt); if (count != 1) return vspidx_find_view_rtree (sqlite, db_prefix, table_name, real_table, real_geom); else { *real_table = rt; *real_geom = rg; } return 1; } static void vspidx_parse_table_name (const char *tn, char **db_prefix, char **table_name) { /* attempting to extract an eventual DB prefix */ int i; int len = strlen (tn); int i_dot = -1; if (strncasecmp (tn, "DB=", 3) == 0) { int l_db; int l_tbl; for (i = 3; i < len; i++) { if (tn[i] == '.') { i_dot = i; break; } } if (i_dot > 1) { l_db = i_dot - 3; l_tbl = len - (i_dot + 1); *db_prefix = malloc (l_db + 1); memset (*db_prefix, '\0', l_db + 1); memcpy (*db_prefix, tn + 3, l_db); *table_name = malloc (l_tbl + 1); strcpy (*table_name, tn + i_dot + 1); return; } } *table_name = malloc (len + 1); strcpy (*table_name, tn); } static int vspidx_create (sqlite3 * db, void *pAux, int argc, const char *const *argv, sqlite3_vtab ** ppVTab, char **pzErr) { /* creates the virtual table for R*Tree SpatialIndex metahandling */ VirtualSpatialIndexPtr p_vt; char *buf; char *vtable; char *xname; if (pAux) pAux = pAux; /* unused arg warning suppression */ if (argc == 3) { vtable = gaiaDequotedSql ((char *) argv[2]); } else { *pzErr = sqlite3_mprintf ("[VirtualSpatialIndex module] CREATE VIRTUAL: illegal arg list {void}\n"); return SQLITE_ERROR; } p_vt = (VirtualSpatialIndexPtr) sqlite3_malloc (sizeof (VirtualSpatialIndex)); if (!p_vt) return SQLITE_NOMEM; p_vt->db = db; p_vt->pModule = &my_spidx_module; p_vt->nRef = 0; p_vt->zErrMsg = NULL; /* preparing the COLUMNs for this VIRTUAL TABLE */ xname = gaiaDoubleQuotedSql (vtable); buf = sqlite3_mprintf ("CREATE TABLE \"%s\" (f_table_name TEXT, " "f_geometry_column TEXT, search_frame BLOB)", xname); free (xname); free (vtable); if (sqlite3_declare_vtab (db, buf) != SQLITE_OK) { sqlite3_free (buf); *pzErr = sqlite3_mprintf ("[VirtualSpatialIndex module] CREATE VIRTUAL: invalid SQL statement \"%s\"", buf); return SQLITE_ERROR; } sqlite3_free (buf); *ppVTab = (sqlite3_vtab *) p_vt; return SQLITE_OK; } static int vspidx_connect (sqlite3 * db, void *pAux, int argc, const char *const *argv, sqlite3_vtab ** ppVTab, char **pzErr) { /* connects the virtual table - simply aliases vspidx_create() */ return vspidx_create (db, pAux, argc, argv, ppVTab, pzErr); } static int vspidx_best_index (sqlite3_vtab * pVTab, sqlite3_index_info * pIdxInfo) { /* best index selection */ int i; int errors = 0; int err = 1; int table = 0; int geom = 0; int mbr = 0; if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ for (i = 0; i < pIdxInfo->nConstraint; i++) { /* verifying the constraints */ struct sqlite3_index_constraint *p = &(pIdxInfo->aConstraint[i]); if (p->usable) { if (p->iColumn == 0 && p->op == SQLITE_INDEX_CONSTRAINT_EQ) table++; else if (p->iColumn == 1 && p->op == SQLITE_INDEX_CONSTRAINT_EQ) geom++; else if (p->iColumn == 2 && p->op == SQLITE_INDEX_CONSTRAINT_EQ) mbr++; else errors++; } } if (table == 1 && (geom == 0 || geom == 1) && mbr == 1 && errors == 0) { /* this one is a valid SpatialIndex query */ if (geom == 1) pIdxInfo->idxNum = 1; else pIdxInfo->idxNum = 2; pIdxInfo->estimatedCost = 1.0; for (i = 0; i < pIdxInfo->nConstraint; i++) { if (pIdxInfo->aConstraint[i].usable) { pIdxInfo->aConstraintUsage[i].argvIndex = i + 1; pIdxInfo->aConstraintUsage[i].omit = 1; } } err = 0; } if (err) { /* illegal query */ pIdxInfo->idxNum = 0; } return SQLITE_OK; } static int vspidx_disconnect (sqlite3_vtab * pVTab) { /* disconnects the virtual table */ VirtualSpatialIndexPtr p_vt = (VirtualSpatialIndexPtr) pVTab; sqlite3_free (p_vt); return SQLITE_OK; } static int vspidx_destroy (sqlite3_vtab * pVTab) { /* destroys the virtual table - simply aliases vspidx_disconnect() */ return vspidx_disconnect (pVTab); } static int vspidx_open (sqlite3_vtab * pVTab, sqlite3_vtab_cursor ** ppCursor) { /* opening a new cursor */ VirtualSpatialIndexCursorPtr cursor = (VirtualSpatialIndexCursorPtr) sqlite3_malloc (sizeof (VirtualSpatialIndexCursor)); if (cursor == NULL) return SQLITE_ERROR; cursor->pVtab = (VirtualSpatialIndexPtr) pVTab; cursor->stmt = NULL; cursor->eof = 1; *ppCursor = (sqlite3_vtab_cursor *) cursor; return SQLITE_OK; } static int vspidx_close (sqlite3_vtab_cursor * pCursor) { /* closing the cursor */ VirtualSpatialIndexCursorPtr cursor = (VirtualSpatialIndexCursorPtr) pCursor; if (cursor->stmt) sqlite3_finalize (cursor->stmt); sqlite3_free (pCursor); return SQLITE_OK; } static int vspidx_filter (sqlite3_vtab_cursor * pCursor, int idxNum, const char *idxStr, int argc, sqlite3_value ** argv) { /* setting up a cursor filter */ char *db_prefix = NULL; char *table_name = NULL; char *geom_column; char *xtable = NULL; char *xgeom = NULL; char *idx_name; char *idx_nameQ; char *sql_statement; gaiaGeomCollPtr geom = NULL; int ok_table = 0; int ok_geom = 0; const unsigned char *blob; int size; int exists; int ret; sqlite3_stmt *stmt; float minx; float miny; float maxx; float maxy; double tic; double tic2; VirtualSpatialIndexCursorPtr cursor = (VirtualSpatialIndexCursorPtr) pCursor; VirtualSpatialIndexPtr spidx = (VirtualSpatialIndexPtr) cursor->pVtab; if (idxStr) idxStr = idxStr; /* unused arg warning suppression */ cursor->eof = 1; if (idxNum == 1 && argc == 3) { /* retrieving the Table/Column/MBR params */ if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) { char *tn = (char *) sqlite3_value_text (argv[0]); vspidx_parse_table_name (tn, &db_prefix, &table_name); ok_table = 1; } if (sqlite3_value_type (argv[1]) == SQLITE_TEXT) { geom_column = (char *) sqlite3_value_text (argv[1]); ok_geom = 1; } if (sqlite3_value_type (argv[2]) == SQLITE_BLOB) { blob = sqlite3_value_blob (argv[2]); size = sqlite3_value_bytes (argv[2]); geom = gaiaFromSpatiaLiteBlobWkb (blob, size); } if (ok_table && ok_geom && geom) ; else { /* invalid args */ goto stop; } } if (idxNum == 2 && argc == 2) { /* retrieving the Table/MBR params */ if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) { char *tn = (char *) sqlite3_value_text (argv[0]); vspidx_parse_table_name (tn, &db_prefix, &table_name); ok_table = 1; } if (sqlite3_value_type (argv[1]) == SQLITE_BLOB) { blob = sqlite3_value_blob (argv[1]); size = sqlite3_value_bytes (argv[1]); geom = gaiaFromSpatiaLiteBlobWkb (blob, size); } if (ok_table && geom) ; else { /* invalid args */ goto stop; } } /* checking if the corresponding R*Tree exists */ if (ok_geom) exists = vspidx_check_rtree (spidx->db, db_prefix, table_name, geom_column, &xtable, &xgeom); else exists = vspidx_find_rtree (spidx->db, db_prefix, table_name, &xtable, &xgeom); if (!exists) goto stop; /* building the RTree query */ idx_name = sqlite3_mprintf ("idx_%s_%s", xtable, xgeom); idx_nameQ = gaiaDoubleQuotedSql (idx_name); if (db_prefix == NULL) { sql_statement = sqlite3_mprintf ("SELECT pkid FROM \"%s\" WHERE " "xmin <= ? AND xmax >= ? AND ymin <= ? AND ymax >= ?", idx_nameQ); } else { char *quoted_db = gaiaDoubleQuotedSql (db_prefix); sql_statement = sqlite3_mprintf ("SELECT pkid FROM \"%s\".\"%s\" WHERE " "xmin <= ? AND xmax >= ? AND ymin <= ? AND ymax >= ?", quoted_db, idx_nameQ); free (quoted_db); } free (idx_nameQ); sqlite3_free (idx_name); ret = sqlite3_prepare_v2 (spidx->db, sql_statement, strlen (sql_statement), &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto stop; /* binding stmt params [MBR] */ gaiaMbrGeometry (geom); /* adjusting the MBR so to compensate for DOUBLE/FLOAT truncations */ minx = (float) (geom->MinX); miny = (float) (geom->MinY); maxx = (float) (geom->MaxX); maxy = (float) (geom->MaxY); tic = fabs (geom->MinX - minx); tic2 = fabs (geom->MinY - miny); if (tic2 > tic) tic = tic2; tic2 = fabs (geom->MaxX - maxx); if (tic2 > tic) tic = tic2; tic2 = fabs (geom->MaxY - maxy); if (tic2 > tic) tic = tic2; tic *= 2.0; sqlite3_bind_double (stmt, 1, geom->MaxX + tic); sqlite3_bind_double (stmt, 2, geom->MinX - tic); sqlite3_bind_double (stmt, 3, geom->MaxY + tic); sqlite3_bind_double (stmt, 4, geom->MinY - tic); cursor->stmt = stmt; cursor->eof = 0; /* fetching the first ResultSet's row */ ret = sqlite3_step (cursor->stmt); if (ret == SQLITE_ROW) cursor->CurrentRowId = sqlite3_column_int64 (cursor->stmt, 0); else cursor->eof = 1; stop: if (geom) gaiaFreeGeomColl (geom); if (xtable) free (xtable); if (xgeom) free (xgeom); if (db_prefix) free (db_prefix); if (table_name) free (table_name); return SQLITE_OK; } static int vspidx_next (sqlite3_vtab_cursor * pCursor) { /* fetching a next row from cursor */ int ret; VirtualSpatialIndexCursorPtr cursor = (VirtualSpatialIndexCursorPtr) pCursor; ret = sqlite3_step (cursor->stmt); if (ret == SQLITE_ROW) cursor->CurrentRowId = sqlite3_column_int64 (cursor->stmt, 0); else cursor->eof = 1; return SQLITE_OK; } static int vspidx_eof (sqlite3_vtab_cursor * pCursor) { /* cursor EOF */ VirtualSpatialIndexCursorPtr cursor = (VirtualSpatialIndexCursorPtr) pCursor; return cursor->eof; } static int vspidx_column (sqlite3_vtab_cursor * pCursor, sqlite3_context * pContext, int column) { /* fetching value for the Nth column */ VirtualSpatialIndexCursorPtr cursor = (VirtualSpatialIndexCursorPtr) pCursor; if (cursor || column) cursor = cursor; /* unused arg warning suppression */ if (column) column = column; /* unused arg warning suppression */ sqlite3_result_null (pContext); return SQLITE_OK; } static int vspidx_rowid (sqlite3_vtab_cursor * pCursor, sqlite_int64 * pRowid) { /* fetching the ROWID */ VirtualSpatialIndexCursorPtr cursor = (VirtualSpatialIndexCursorPtr) pCursor; *pRowid = cursor->CurrentRowId; return SQLITE_OK; } static int vspidx_update (sqlite3_vtab * pVTab, int argc, sqlite3_value ** argv, sqlite_int64 * pRowid) { /* generic update [INSERT / UPDATE / DELETE */ if (pRowid || argc || argv || pVTab) pRowid = pRowid; /* unused arg warning suppression */ /* read only datasource */ return SQLITE_READONLY; } static int vspidx_begin (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vspidx_sync (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vspidx_commit (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vspidx_rollback (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } int sqlite3VirtualSpatialIndexInit (sqlite3 * db) { int rc = SQLITE_OK; my_spidx_module.iVersion = 1; my_spidx_module.xCreate = &vspidx_create; my_spidx_module.xConnect = &vspidx_connect; my_spidx_module.xBestIndex = &vspidx_best_index; my_spidx_module.xDisconnect = &vspidx_disconnect; my_spidx_module.xDestroy = &vspidx_destroy; my_spidx_module.xOpen = &vspidx_open; my_spidx_module.xClose = &vspidx_close; my_spidx_module.xFilter = &vspidx_filter; my_spidx_module.xNext = &vspidx_next; my_spidx_module.xEof = &vspidx_eof; my_spidx_module.xColumn = &vspidx_column; my_spidx_module.xRowid = &vspidx_rowid; my_spidx_module.xUpdate = &vspidx_update; my_spidx_module.xBegin = &vspidx_begin; my_spidx_module.xSync = &vspidx_sync; my_spidx_module.xCommit = &vspidx_commit; my_spidx_module.xRollback = &vspidx_rollback; my_spidx_module.xFindFunction = NULL; sqlite3_create_module_v2 (db, "VirtualSpatialIndex", &my_spidx_module, NULL, 0); return rc; } int virtual_spatialindex_extension_init (sqlite3 * db) { return sqlite3VirtualSpatialIndexInit (db); } libspatialite-4.1.1/src/spatialite/virtualfdo.c0000664000175000017500000015761512163502133016552 00000000000000/* virtualfdo.c -- SQLite3 extension [VIRTUAL TABLE accessing FDO-OGR tables] version 4.1, 2013 May 8 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include #include #include /* constants definining FDO-OGR Geometry formats */ #define FDO_OGR_NONE 0 #define FDO_OGR_WKT 1 #define FDO_OGR_WKB 2 #define FDO_OGR_FGF 3 #define FDO_OGR_SPLITE 4 #ifdef _WIN32 #define strcasecmp _stricmp #define strncasecmp _strnicmp #endif /* not WIN32 */ /* 64 bit integer: portable format for printf() */ #if defined(_WIN32) && !defined(__MINGW32__) #define FRMT64 "%I64d" #else #define FRMT64 "%lld" #endif #if defined(_WIN32) && !defined(__MINGW32__) #define LONG64_MAX _I64_MAX #define LONG64_MIN _I64_MIN #else #define LONG64_MAX 9223372036854775807LL #define LONG64_MIN (-LONG64_MAX + 1) #endif struct sqlite3_module my_fdo_module; typedef struct SqliteValue { /* a multitype storing a column value */ int Type; sqlite3_int64 IntValue; double DoubleValue; char *Text; unsigned char *Blob; int Size; } SqliteValue; typedef SqliteValue *SqliteValuePtr; typedef struct VirtualFDOStruct { /* extends the sqlite3_vtab struct */ const sqlite3_module *pModule; /* ptr to sqlite module: USED INTERNALLY BY SQLITE */ int nRef; /* # references: USED INTERNALLY BY SQLITE */ char *zErrMsg; /* error message: USE INTERNALLY BY SQLITE */ sqlite3 *db; /* the sqlite db holding the virtual table */ char *table; /* the real-table name */ int nColumns; /* the # columns into the table */ char **Column; /* the name for each column */ char **Type; /* the type for each column */ int *NotNull; /* NotNull clause for each column */ SqliteValuePtr *Value; /* the current-row value for each column */ int nGeometries; /* # Geometry columns into the table */ char **GeoColumn; /* the name for each Geometry column */ int *Srid; /* the SRID for each Geometry column */ int *GeoType; /* the Type for each Geometry column */ int *Format; /* the Format for each Geometry column */ int *CoordDimensions; /* # Dimensions for each Geometry column */ } VirtualFDO; typedef VirtualFDO *VirtualFDOPtr; typedef struct VirtualFDOCursorStruct { /* extends the sqlite3_vtab_cursor struct */ VirtualFDOPtr pVtab; /* Virtual table of this cursor */ sqlite3_stmt *stmt; sqlite3_int64 current_row; /* the current row ID */ int eof; /* the EOF marker */ } VirtualFDOCursor; typedef VirtualFDOCursor *VirtualFDOCursorPtr; static SqliteValuePtr value_alloc (void) { /* allocates and initialites a Value multitype */ SqliteValuePtr p = malloc (sizeof (SqliteValue)); p->Type = SQLITE_NULL; p->Text = NULL; p->Blob = NULL; return p; } static void value_free (SqliteValuePtr p) { /* freeing a Value multitype */ if (!p) return; if (p->Text) free (p->Text); if (p->Blob) free (p->Blob); free (p); } static void value_set_null (SqliteValuePtr p) { /* setting a NULL value to the multitype */ if (!p) return; p->Type = SQLITE_NULL; if (p->Text) free (p->Text); if (p->Blob) free (p->Blob); p->Text = NULL; p->Blob = NULL; } static void value_set_int (SqliteValuePtr p, sqlite3_int64 value) { /* setting an INT value to the multitype */ if (!p) return; p->Type = SQLITE_INTEGER; if (p->Text) free (p->Text); if (p->Blob) free (p->Blob); p->Text = NULL; p->Blob = NULL; p->IntValue = value; } static void value_set_double (SqliteValuePtr p, double value) { /* setting a DOUBLE value to the multitype */ if (!p) return; p->Type = SQLITE_FLOAT; if (p->Text) free (p->Text); if (p->Blob) free (p->Blob); p->Text = NULL; p->Blob = NULL; p->DoubleValue = value; } static void value_set_text (SqliteValuePtr p, const char *value, int size) { /* setting a TEXT value to the multitype */ if (!p) return; p->Type = SQLITE_TEXT; if (p->Text) free (p->Text); if (p->Blob) free (p->Blob); p->Blob = NULL; p->Text = malloc (size); memcpy (p->Text, value, size); p->Size = size; } static void value_set_blob (SqliteValuePtr p, const unsigned char *value, int size) { /* setting a BLOB value to the multitype */ if (!p) return; p->Type = SQLITE_BLOB; if (p->Text) free (p->Text); if (p->Blob) free (p->Blob); p->Text = NULL; p->Blob = malloc (size); memcpy (p->Blob, value, size); p->Size = size; } static void free_table (VirtualFDOPtr p_vt) { /* memory cleanup; freeing the virtual table struct */ int i; if (!p_vt) return; if (p_vt->table) sqlite3_free (p_vt->table); if (p_vt->Column) { for (i = 0; i < p_vt->nColumns; i++) { if (*(p_vt->Column + i)) sqlite3_free (*(p_vt->Column + i)); } sqlite3_free (p_vt->Column); } if (p_vt->Type) { for (i = 0; i < p_vt->nColumns; i++) { if (*(p_vt->Type + i)) sqlite3_free (*(p_vt->Type + i)); } sqlite3_free (p_vt->Type); } if (p_vt->NotNull) sqlite3_free (p_vt->NotNull); if (p_vt->Value) { for (i = 0; i < p_vt->nColumns; i++) { if (*(p_vt->Value + i)) value_free (*(p_vt->Value + i)); } sqlite3_free (p_vt->Value); } if (p_vt->GeoColumn) { for (i = 0; i < p_vt->nGeometries; i++) { if (*(p_vt->GeoColumn + i)) sqlite3_free (*(p_vt->GeoColumn + i)); } sqlite3_free (p_vt->GeoColumn); } if (p_vt->Srid) sqlite3_free (p_vt->Srid); if (p_vt->GeoType) sqlite3_free (p_vt->GeoType); if (p_vt->Format) sqlite3_free (p_vt->Format); if (p_vt->CoordDimensions) sqlite3_free (p_vt->CoordDimensions); sqlite3_free (p_vt); } static void vfdoOutWkt3D (gaiaOutBufferPtr out_buf, gaiaGeomCollPtr geom) { /* prints the GEOS-WKT-3D representation of current geometry */ int pts = 0; int lns = 0; int pgs = 0; gaiaPointPtr point; gaiaLinestringPtr line; gaiaPolygonPtr polyg; if (!geom) return; point = geom->FirstPoint; while (point) { /* counting how many POINTs are there */ pts++; point = point->Next; } line = geom->FirstLinestring; while (line) { /* counting how many LINESTRINGs are there */ lns++; line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* counting how many POLYGONs are there */ pgs++; polyg = polyg->Next; } if ((pts + lns + pgs) == 1 && (geom->DeclaredType == GAIA_POINT || geom->DeclaredType == GAIA_LINESTRING || geom->DeclaredType == GAIA_POLYGON)) { /* we have only one elementary geometry */ point = geom->FirstPoint; while (point) { /* processing POINT */ gaiaAppendToOutBuffer (out_buf, "POINT ("); gaiaOutPointZ (out_buf, point); gaiaAppendToOutBuffer (out_buf, ")"); point = point->Next; } line = geom->FirstLinestring; while (line) { /* processing LINESTRING */ gaiaAppendToOutBuffer (out_buf, "LINESTRING ("); gaiaOutLinestringZ (out_buf, line); gaiaAppendToOutBuffer (out_buf, ")"); line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* processing POLYGONZ */ gaiaAppendToOutBuffer (out_buf, "POLYGON ("); gaiaOutPolygonZ (out_buf, polyg); gaiaAppendToOutBuffer (out_buf, ")"); polyg = polyg->Next; } } else { /* we have some kind of complex geometry */ if (pts > 0 && lns == 0 && pgs == 0 && geom->DeclaredType == GAIA_MULTIPOINT) { /* some kind of MULTIPOINT */ gaiaAppendToOutBuffer (out_buf, "MULTIPOINT ("); point = geom->FirstPoint; while (point) { if (point != geom->FirstPoint) gaiaAppendToOutBuffer (out_buf, ", "); gaiaOutPointZ (out_buf, point); point = point->Next; } gaiaAppendToOutBuffer (out_buf, ")"); } else if (pts == 0 && lns > 0 && pgs == 0 && geom->DeclaredType == GAIA_MULTILINESTRING) { /* some kind of MULTILINESTRING */ gaiaAppendToOutBuffer (out_buf, "MULTILINESTRING ("); line = geom->FirstLinestring; while (line) { if (line != geom->FirstLinestring) gaiaAppendToOutBuffer (out_buf, ", ("); else gaiaAppendToOutBuffer (out_buf, "("); gaiaOutLinestringZ (out_buf, line); gaiaAppendToOutBuffer (out_buf, ")"); line = line->Next; } gaiaAppendToOutBuffer (out_buf, ")"); } else if (pts == 0 && lns == 0 && pgs > 0 && geom->DeclaredType == GAIA_MULTIPOLYGON) { /* some kind of MULTIPOLYGON */ gaiaAppendToOutBuffer (out_buf, "MULTIPOLYGON ("); polyg = geom->FirstPolygon; while (polyg) { if (polyg != geom->FirstPolygon) gaiaAppendToOutBuffer (out_buf, ", ("); else gaiaAppendToOutBuffer (out_buf, "("); gaiaOutPolygonZ (out_buf, polyg); gaiaAppendToOutBuffer (out_buf, ")"); polyg = polyg->Next; } gaiaAppendToOutBuffer (out_buf, ")"); } else { /* some kind of GEOMETRYCOLLECTION */ int ie = 0; gaiaAppendToOutBuffer (out_buf, "GEOMETRYCOLLECTION ("); point = geom->FirstPoint; while (point) { /* processing POINTs */ if (ie > 0) gaiaAppendToOutBuffer (out_buf, ", "); ie++; gaiaAppendToOutBuffer (out_buf, "POINT ("); gaiaOutPointZ (out_buf, point); gaiaAppendToOutBuffer (out_buf, ")"); point = point->Next; } line = geom->FirstLinestring; while (line) { /* processing LINESTRINGs */ if (ie > 0) gaiaAppendToOutBuffer (out_buf, ", "); ie++; gaiaAppendToOutBuffer (out_buf, "LINESTRING ("); gaiaOutLinestringZ (out_buf, line); gaiaAppendToOutBuffer (out_buf, ")"); line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* processing POLYGONs */ if (ie > 0) gaiaAppendToOutBuffer (out_buf, ", "); ie++; gaiaAppendToOutBuffer (out_buf, "POLYGON ("); gaiaOutPolygonZ (out_buf, polyg); gaiaAppendToOutBuffer (out_buf, ")"); polyg = polyg->Next; } gaiaAppendToOutBuffer (out_buf, ")"); } } } static void vfdoToWkb3D (gaiaGeomCollPtr geom, unsigned char **result, int *size) { /* builds the GEOS-WKB-3D representation for this GEOMETRY */ int ib; int iv; double x; double y; double z = 0.0; double m = 0.0; int entities = 0; int n_points = 0; int n_linestrings = 0; int n_polygons = 0; int type; unsigned char *ptr; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; gaiaRingPtr rng; gaiaPointPtr point = NULL; gaiaLinestringPtr line = NULL; gaiaPolygonPtr polyg = NULL; int endian_arch = gaiaEndianArch (); gaiaMbrGeometry (geom); /* how many entities, and of what kind, do we have ? */ pt = geom->FirstPoint; while (pt) { point = pt; entities++; n_points++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { line = ln; entities++; n_linestrings++; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { polyg = pg; entities++; n_polygons++; pg = pg->Next; } *size = 0; *result = NULL; if (n_points == 0 && n_polygons == 0 && n_linestrings == 0) return; /* ok, we can determine the geometry class */ if (n_points == 1 && n_linestrings == 0 && n_polygons == 0) { if (geom->DeclaredType == GAIA_MULTIPOINT) type = GAIA_GEOSWKB_MULTIPOINTZ; else if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) type = GAIA_GEOSWKB_GEOMETRYCOLLECTIONZ; else type = GAIA_GEOSWKB_POINTZ; } else if (n_points > 1 && n_linestrings == 0 && n_polygons == 0) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) type = GAIA_GEOSWKB_GEOMETRYCOLLECTIONZ; else type = GAIA_GEOSWKB_MULTIPOINTZ; } else if (n_points == 0 && n_linestrings == 1 && n_polygons == 0) { if (geom->DeclaredType == GAIA_MULTILINESTRING) type = GAIA_GEOSWKB_MULTILINESTRINGZ; else if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) type = GAIA_GEOSWKB_GEOMETRYCOLLECTIONZ; else type = GAIA_GEOSWKB_LINESTRINGZ; } else if (n_points == 0 && n_linestrings > 1 && n_polygons == 0) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) type = GAIA_GEOSWKB_GEOMETRYCOLLECTIONZ; else type = GAIA_GEOSWKB_MULTILINESTRINGZ; } else if (n_points == 0 && n_linestrings == 0 && n_polygons == 1) { if (geom->DeclaredType == GAIA_MULTIPOLYGON) type = GAIA_GEOSWKB_MULTIPOLYGONZ; else if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) type = GAIA_GEOSWKB_GEOMETRYCOLLECTIONZ; else type = GAIA_GEOSWKB_POLYGONZ; } else if (n_points == 0 && n_linestrings == 0 && n_polygons > 1) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) type = GAIA_GEOSWKB_GEOMETRYCOLLECTIONZ; else type = GAIA_GEOSWKB_MULTIPOLYGONZ; } else type = GAIA_GEOSWKB_GEOMETRYCOLLECTIONZ; /* and now we compute the size of WKB */ *size = 5; /* header size */ if (type == GAIA_GEOSWKB_MULTIPOINTZ || type == GAIA_GEOSWKB_MULTILINESTRINGZ || type == GAIA_GEOSWKB_MULTIPOLYGONZ || type == GAIA_GEOSWKB_GEOMETRYCOLLECTIONZ) *size += 4; point = geom->FirstPoint; while (point) { if (type == GAIA_GEOSWKB_MULTIPOINTZ || type == GAIA_GEOSWKB_MULTILINESTRINGZ || type == GAIA_GEOSWKB_MULTIPOLYGONZ || type == GAIA_GEOSWKB_GEOMETRYCOLLECTIONZ) *size += 5; *size += (sizeof (double) * 3); /* three doubles for each POINT */ point = point->Next; } line = geom->FirstLinestring; while (line) { if (type == GAIA_GEOSWKB_MULTIPOINTZ || type == GAIA_GEOSWKB_MULTILINESTRINGZ || type == GAIA_GEOSWKB_MULTIPOLYGONZ || type == GAIA_GEOSWKB_GEOMETRYCOLLECTIONZ) *size += 5; *size += (4 + ((sizeof (double) * 3) * line->Points)); /* # points + [x,y,z] for each vertex */ line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { if (type == GAIA_GEOSWKB_MULTIPOINTZ || type == GAIA_GEOSWKB_MULTILINESTRINGZ || type == GAIA_GEOSWKB_MULTIPOLYGONZ || type == GAIA_GEOSWKB_GEOMETRYCOLLECTIONZ) *size += 5; rng = polyg->Exterior; *size += (8 + ((sizeof (double) * 3) * rng->Points)); /* # rings + # points + [x,y,z] array - exterior ring */ for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; *size += (4 + ((sizeof (double) * 3) * rng->Points)); /* # points + [x,y,z] array - interior ring */ } polyg = polyg->Next; } *result = malloc (*size); ptr = *result; /* and finally we build the WKB */ *ptr = 0x01; /* little endian byte order */ gaiaExport32 (ptr + 1, type, 1, endian_arch); /* the main CLASS TYPE */ ptr += 5; if (type == GAIA_GEOSWKB_MULTIPOINTZ || type == GAIA_GEOSWKB_MULTILINESTRINGZ || type == GAIA_GEOSWKB_MULTIPOLYGONZ || type == GAIA_GEOSWKB_GEOMETRYCOLLECTIONZ) { gaiaExport32 (ptr, entities, 1, endian_arch); /* it's a collection; # entities */ ptr += 4; } point = geom->FirstPoint; while (point) { if (type == GAIA_GEOSWKB_MULTIPOINTZ || type == GAIA_GEOMETRYCOLLECTIONZ) { *ptr = 0x01; /* it's a collection: the CLASS TYPE for this element */ gaiaExport32 (ptr + 1, GAIA_GEOSWKB_POINTZ, 1, endian_arch); ptr += 5; } gaiaExport64 (ptr, point->X, 1, endian_arch); /* X */ gaiaExport64 (ptr + 8, point->Y, 1, endian_arch); /* Y */ gaiaExport64 (ptr + 16, point->Z, 1, endian_arch); /* Z */ ptr += 24; point = point->Next; } line = geom->FirstLinestring; while (line) { if (type == GAIA_GEOSWKB_MULTILINESTRINGZ || type == GAIA_GEOSWKB_GEOMETRYCOLLECTIONZ) { *ptr = 0x01; /* it's a collection: the CLASS TYPE for this element */ gaiaExport32 (ptr + 1, GAIA_GEOSWKB_LINESTRINGZ, 1, endian_arch); ptr += 5; } gaiaExport32 (ptr, line->Points, 1, endian_arch); /* # points */ ptr += 4; for (iv = 0; iv < line->Points; iv++) { z = 0.0; m = 0.0; if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } gaiaExport64 (ptr, x, 1, endian_arch); /* X */ gaiaExport64 (ptr + 8, y, 1, endian_arch); /* Y */ gaiaExport64 (ptr + 16, z, 1, endian_arch); /* Z */ ptr += 24; } line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { if (type == GAIA_GEOSWKB_MULTIPOLYGONZ || type == GAIA_GEOSWKB_GEOMETRYCOLLECTIONZ) { *ptr = 0x01; /* it's a collection: the CLASS TYPE for this element */ gaiaExport32 (ptr + 1, GAIA_GEOSWKB_POLYGONZ, 1, endian_arch); ptr += 5; } gaiaExport32 (ptr, polyg->NumInteriors + 1, 1, endian_arch); /* # rings */ rng = polyg->Exterior; gaiaExport32 (ptr + 4, rng->Points, 1, endian_arch); /* # points - exterior ring */ ptr += 8; for (iv = 0; iv < rng->Points; iv++) { z = 0.0; m = 0.0; if (rng->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); } else if (rng->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); } else if (rng->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); } gaiaExport64 (ptr, x, 1, endian_arch); /* X - exterior ring */ gaiaExport64 (ptr + 8, y, 1, endian_arch); /* Y - exterior ring */ gaiaExport64 (ptr + 16, z, 1, endian_arch); /* Z - exterior ring */ ptr += 24; } for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; gaiaExport32 (ptr, rng->Points, 1, endian_arch); /* # points - interior ring */ ptr += 4; for (iv = 0; iv < rng->Points; iv++) { z = 0.0; m = 0.0; if (rng->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); } else if (rng->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); } else if (rng->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); } gaiaExport64 (ptr, x, 1, endian_arch); /* X - interior ring */ gaiaExport64 (ptr + 8, y, 1, endian_arch); /* Y - interior ring */ gaiaExport64 (ptr + 16, z, 1, endian_arch); /* Z - exterior ring */ ptr += 24; } } polyg = polyg->Next; } } static int vfdoGeometryType (gaiaGeomCollPtr geom) { /* determinates the Class for this geometry */ gaiaPointPtr point; gaiaLinestringPtr line; gaiaPolygonPtr polyg; int n_points = 0; int n_linestrings = 0; int n_polygons = 0; if (!geom) return GAIA_UNKNOWN; point = geom->FirstPoint; while (point) { /* counts how many points are there */ n_points++; point = point->Next; } line = geom->FirstLinestring; while (line) { /* counts how many linestrings are there */ n_linestrings++; line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* counts how many polygons are there */ n_polygons++; polyg = polyg->Next; } if (n_points == 0 && n_linestrings == 0 && n_polygons == 0) return GAIA_UNKNOWN; if (n_points == 1 && n_linestrings == 0 && n_polygons == 0) { if (geom->DeclaredType == GAIA_MULTIPOINT) return GAIA_MULTIPOINT; else if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) return GAIA_GEOMETRYCOLLECTION; else return GAIA_POINT; } if (n_points > 0 && n_linestrings == 0 && n_polygons == 0) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) return GAIA_GEOMETRYCOLLECTION; else return GAIA_MULTIPOINT; } if (n_points == 0 && n_linestrings == 1 && n_polygons == 0) { if (geom->DeclaredType == GAIA_MULTILINESTRING) return GAIA_MULTILINESTRING; else if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) return GAIA_GEOMETRYCOLLECTION; else return GAIA_LINESTRING; } if (n_points == 0 && n_linestrings > 0 && n_polygons == 0) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) return GAIA_GEOMETRYCOLLECTION; else return GAIA_MULTILINESTRING; } if (n_points == 0 && n_linestrings == 0 && n_polygons == 1) { if (geom->DeclaredType == GAIA_MULTIPOLYGON) return GAIA_MULTIPOLYGON; else if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) return GAIA_GEOMETRYCOLLECTION; else return GAIA_POLYGON; } if (n_points == 0 && n_linestrings == 0 && n_polygons > 0) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) return GAIA_GEOMETRYCOLLECTION; else return GAIA_MULTIPOLYGON; } return GAIA_GEOMETRYCOLLECTION; } static int vfdo_insert_row (VirtualFDOPtr p_vt, sqlite3_int64 * rowid, int argc, sqlite3_value ** argv) { /* trying to insert a row into FDO-OGR real-table */ sqlite3_stmt *stmt; int ret; int i; int ic; int ig; int geom_done; int err_geom = 0; int geom_constraint_err = 0; char prefix[16]; const char *text; const unsigned char *blob; gaiaOutBuffer out_buf; gaiaOutBuffer sql_statement; unsigned char *blob_wkb; int size; char *sql; char buf[256]; char *xname; gaiaGeomCollPtr geom = NULL; gaiaOutBufferInitialize (&sql_statement); xname = gaiaDoubleQuotedSql (p_vt->table); sql = sqlite3_mprintf ("INSERT INTO \"%s\" ", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); for (ic = 0; ic < p_vt->nColumns; ic++) { if (ic == 0) strcpy (prefix, "("); else strcpy (prefix, ", "); xname = gaiaDoubleQuotedSql (*(p_vt->Column + ic)); sql = sqlite3_mprintf ("%s%s", prefix, xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); } gaiaAppendToOutBuffer (&sql_statement, ") VALUES "); for (ic = 0; ic < p_vt->nColumns; ic++) { if (ic == 0) strcpy (prefix, "("); else strcpy (prefix, ", "); sprintf (buf, "%s?", prefix); gaiaAppendToOutBuffer (&sql_statement, buf); } gaiaAppendToOutBuffer (&sql_statement, ")"); if (sql_statement.Error == 0 && sql_statement.Buffer != NULL) ret = sqlite3_prepare_v2 (p_vt->db, sql_statement.Buffer, strlen (sql_statement.Buffer), &stmt, NULL); else ret = SQLITE_ERROR; gaiaOutBufferReset (&sql_statement); if (ret != SQLITE_OK) return SQLITE_ERROR; for (i = 2; i < argc; i++) { geom_done = 0; for (ig = 0; ig < p_vt->nGeometries; ig++) { if (strcasecmp (*(p_vt->Column + i - 2), *(p_vt->GeoColumn + ig)) == 0) { /* this one is a Geometry column */ if (sqlite3_value_type (argv[i]) == SQLITE_BLOB) { blob = sqlite3_value_blob (argv[i]); size = sqlite3_value_bytes (argv[i]); geom = gaiaFromSpatiaLiteBlobWkb (blob, size); if (geom) { if (geom->Srid != *(p_vt->Srid + ig)) { /* SRID constraint violation */ geom_constraint_err = 1; goto error; } /* checking for TYPE constraint violation */ if (vfdoGeometryType (geom) != *(p_vt->GeoType + ig)) { /* Geometry TYPE constraint violation */ geom_constraint_err = 1; goto error; } switch (*(p_vt->Format + ig)) { case FDO_OGR_WKT: gaiaOutBufferInitialize (&out_buf); if (*(p_vt->CoordDimensions + ig) == GAIA_XY_Z) vfdoOutWkt3D (&out_buf, geom); else gaiaOutWkt (&out_buf, geom); if (out_buf.Error == 0 && out_buf.Buffer != NULL) { sqlite3_bind_text (stmt, i - 1, out_buf.Buffer, out_buf. WriteOffset, free); out_buf.Buffer = NULL; gaiaOutBufferReset (&out_buf); } else { err_geom = 1; goto error; } break; case FDO_OGR_WKB: if (*(p_vt->CoordDimensions + ig) == GAIA_XY_Z) vfdoToWkb3D (geom, &blob_wkb, &size); else gaiaToWkb (geom, &blob_wkb, &size); if (blob_wkb) sqlite3_bind_blob (stmt, i - 1, blob_wkb, size, free); else { err_geom = 1; goto error; } break; case FDO_OGR_FGF: gaiaToFgf (geom, &blob_wkb, &size, *(p_vt->CoordDimensions + ig)); if (blob_wkb) sqlite3_bind_blob (stmt, i - 1, blob_wkb, size, free); else { err_geom = 1; goto error; } break; case FDO_OGR_SPLITE: gaiaToSpatiaLiteBlobWkb (geom, &blob_wkb, &size); if (blob_wkb) sqlite3_bind_blob (stmt, i - 1, blob_wkb, size, free); else { err_geom = 1; goto error; } break; default: err_geom = 1; goto error; break; }; } else { err_geom = 1; goto error; } } else if (sqlite3_value_type (argv[i]) == SQLITE_NULL) sqlite3_bind_null (stmt, i - 1); else { err_geom = 1; goto error; } geom_done = 1; } } if (geom_done) { if (geom) { /* memory cleanup: Kashif Rasul 14 Jan 2010 */ gaiaFreeGeomColl (geom); geom = NULL; } continue; } switch (sqlite3_value_type (argv[i])) { case SQLITE_INTEGER: sqlite3_bind_int64 (stmt, i - 1, sqlite3_value_int64 (argv[i])); break; case SQLITE_FLOAT: sqlite3_bind_double (stmt, i - 1, sqlite3_value_double (argv[i])); break; case SQLITE_TEXT: text = (char *) sqlite3_value_text (argv[i]); size = sqlite3_value_bytes (argv[i]); sqlite3_bind_text (stmt, i - 1, text, size, SQLITE_STATIC); break; case SQLITE_BLOB: blob = sqlite3_value_blob (argv[i]); size = sqlite3_value_bytes (argv[i]); sqlite3_bind_blob (stmt, i - 1, blob, size, SQLITE_STATIC); break; case SQLITE_NULL: default: sqlite3_bind_null (stmt, i - 1); break; }; } error: if (geom) { /* memory cleanup: Kashif Rasul 14 Jan 2010 */ gaiaFreeGeomColl (geom); } if (err_geom || geom_constraint_err) { sqlite3_finalize (stmt); return SQLITE_CONSTRAINT; } ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { sqlite3_finalize (stmt); return ret; } sqlite3_finalize (stmt); *rowid = sqlite3_last_insert_rowid (p_vt->db); return SQLITE_OK; } static int vfdo_update_row (VirtualFDOPtr p_vt, sqlite3_int64 rowid, int argc, sqlite3_value ** argv) { /* trying to update a row in FDO-OGR real-table */ sqlite3_stmt *stmt; int ret; int i; int ic; int ig; int geom_done; int err_geom = 0; int geom_constraint_err = 0; char prefix[16]; const char *text; const unsigned char *blob; gaiaOutBuffer out_buf; gaiaOutBuffer sql_statement; unsigned char *blob_wkb; int size; char *sql; char buf[256]; char *xname; gaiaGeomCollPtr geom; gaiaOutBufferInitialize (&sql_statement); xname = gaiaDoubleQuotedSql (p_vt->table); sql = sqlite3_mprintf ("UPDATE \"%s\" SET", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); for (ic = 0; ic < p_vt->nColumns; ic++) { if (ic == 0) strcpy (prefix, " "); else strcpy (prefix, ", "); xname = gaiaDoubleQuotedSql (*(p_vt->Column + ic)); sql = sqlite3_mprintf ("%s%s = ?", prefix, xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); } sprintf (buf, " WHERE ROWID = " FRMT64, rowid); gaiaAppendToOutBuffer (&sql_statement, buf); if (sql_statement.Error == 0 && sql_statement.Buffer != NULL) ret = sqlite3_prepare_v2 (p_vt->db, sql_statement.Buffer, strlen (sql_statement.Buffer), &stmt, NULL); else ret = SQLITE_ERROR; gaiaOutBufferReset (&sql_statement); if (ret != SQLITE_OK) return SQLITE_ERROR; for (i = 2; i < argc; i++) { geom_done = 0; for (ig = 0; ig < p_vt->nGeometries; ig++) { if (strcasecmp (*(p_vt->Column + i - 2), *(p_vt->GeoColumn + ig)) == 0) { /* this one is a Geometry column */ if (sqlite3_value_type (argv[i]) == SQLITE_BLOB) { blob = sqlite3_value_blob (argv[i]); size = sqlite3_value_bytes (argv[i]); geom = gaiaFromSpatiaLiteBlobWkb (blob, size); if (geom) { if (geom->Srid != *(p_vt->Srid + ig)) { /* SRID constraint violation */ geom_constraint_err = 1; goto error; } /* checking for TYPE constraint violation */ if (vfdoGeometryType (geom) != *(p_vt->GeoType + ig)) { /* Geometry TYPE constraint violation */ geom_constraint_err = 1; goto error; } switch (*(p_vt->Format + ig)) { case FDO_OGR_WKT: gaiaOutBufferInitialize (&out_buf); if (*(p_vt->CoordDimensions + ig) == GAIA_XY_Z) vfdoOutWkt3D (&out_buf, geom); else gaiaOutWkt (&out_buf, geom); if (out_buf.Error == 0 && out_buf.Buffer != NULL) { sqlite3_bind_text (stmt, i - 1, out_buf.Buffer, out_buf. WriteOffset, free); out_buf.Buffer = NULL; gaiaOutBufferReset (&out_buf); } else { err_geom = 1; goto error; } break; case FDO_OGR_WKB: if (*(p_vt->CoordDimensions + ig) == GAIA_XY_Z) vfdoToWkb3D (geom, &blob_wkb, &size); else gaiaToWkb (geom, &blob_wkb, &size); if (blob_wkb) sqlite3_bind_blob (stmt, i - 1, blob_wkb, size, free); else { err_geom = 1; goto error; } break; case FDO_OGR_FGF: gaiaToFgf (geom, &blob_wkb, &size, *(p_vt->CoordDimensions + ig)); if (blob_wkb) sqlite3_bind_blob (stmt, i - 1, blob_wkb, size, free); else { err_geom = 1; goto error; } break; case FDO_OGR_SPLITE: gaiaToSpatiaLiteBlobWkb (geom, &blob_wkb, &size); if (blob_wkb) sqlite3_bind_blob (stmt, i - 1, blob_wkb, size, free); else { err_geom = 1; goto error; } break; default: err_geom = 1; goto error; break; }; } else { err_geom = 1; goto error; } } else if (sqlite3_value_type (argv[i]) == SQLITE_NULL) sqlite3_bind_null (stmt, i - 1); else { err_geom = 1; goto error; } geom_done = 1; } } if (geom_done) { gaiaFreeGeomColl (geom); geom = NULL; continue; } switch (sqlite3_value_type (argv[i])) { case SQLITE_INTEGER: sqlite3_bind_int64 (stmt, i - 1, sqlite3_value_int64 (argv[i])); break; case SQLITE_FLOAT: sqlite3_bind_double (stmt, i - 1, sqlite3_value_double (argv[i])); break; case SQLITE_TEXT: text = (char *) sqlite3_value_text (argv[i]); size = sqlite3_value_bytes (argv[i]); sqlite3_bind_text (stmt, i - 1, text, size, SQLITE_STATIC); break; case SQLITE_BLOB: blob = sqlite3_value_blob (argv[i]); size = sqlite3_value_bytes (argv[i]); sqlite3_bind_blob (stmt, i - 1, blob, size, SQLITE_STATIC); break; case SQLITE_NULL: default: sqlite3_bind_null (stmt, i - 1); break; }; } error: gaiaFreeGeomColl (geom); if (err_geom || geom_constraint_err) { sqlite3_finalize (stmt); return SQLITE_CONSTRAINT; } ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { sqlite3_finalize (stmt); return ret; } sqlite3_finalize (stmt); return SQLITE_OK; } static int vfdo_delete_row (VirtualFDOPtr p_vt, sqlite3_int64 rowid) { /* trying to delete a row from FDO-OGR real-table */ char *sql_statement; char dummy[256]; int ret; char *xname; xname = gaiaDoubleQuotedSql (p_vt->table); sprintf (dummy, FRMT64, rowid); sql_statement = sqlite3_mprintf ("DELETE FROM \"%s\" WHERE ROWID = %s", xname, dummy); free (xname); ret = sqlite3_exec (p_vt->db, sql_statement, NULL, NULL, NULL); sqlite3_free (sql_statement); return ret; } char * vfdo_convertWKT3D (const char *wkt) { /* converting WKT 3D */ char *out; char *o; const char *p = wkt; int len = strlen (wkt); int extra = 0; while (*p != '\0') { if (strncasecmp (p, "POINT", 5) == 0) { p += 5; extra++; continue; } if (strncasecmp (p, "LINESTRING", 10) == 0) { p += 10; extra++; continue; } if (strncasecmp (p, "POLYGON", 7) == 0) { p += 7; extra++; continue; } if (strncasecmp (p, "MULTIPOINT", 10) == 0) { p += 10; extra++; continue; } if (strncasecmp (p, "MULTILINESTRING", 15) == 0) { p += 15; extra++; continue; } if (strncasecmp (p, "MULTIPOLYGON", 12) == 0) { p += 12; extra++; continue; } if (strncasecmp (p, "GEOMETRYCOLLECTION", 18) == 0) { p += 18; extra++; continue; } p++; } out = malloc (len + extra + 1); o = out; p = wkt; while (*p != '\0') { if (strncasecmp (p, "POINT", 5) == 0) { strcpy (o, "POINTZ"); o += 6; p += 5; continue; } if (strncasecmp (p, "LINESTRING", 10) == 0) { strcpy (o, "LINESTRINGZ"); o += 11; p += 10; continue; } if (strncasecmp (p, "POLYGON", 7) == 0) { strcpy (o, "POLYGONZ"); o += 8; p += 7; continue; } if (strncasecmp (p, "MULTIPOINT", 10) == 0) { strcpy (o, "MULTIPOINTZ"); o += 11; p += 10; continue; } if (strncasecmp (p, "MULTILINESTRING", 15) == 0) { strcpy (o, "MULTILINESTRINGZ"); o += 16; p += 15; continue; } if (strncasecmp (p, "MULTIPOLYGON", 12) == 0) { strcpy (o, "MULTIPOLYGONZ"); o += 13; p += 12; continue; } if (strncasecmp (p, "GEOMETRYCOLLECTION", 18) == 0) { strcpy (o, "GEOMETRYCOLLECTIONZ"); o += 19; p += 18; continue; } *o++ = *p++; } *o = '\0'; return out; } static void vfdo_read_row (VirtualFDOCursorPtr cursor) { /* trying to read a row from FDO-OGR real-table */ sqlite3_stmt *stmt; int ret; int ic; int ig; unsigned char *wkt; const char *text; const unsigned char *blob; unsigned char *xblob; int size; sqlite3_int64 pk; int geom_done; gaiaGeomCollPtr geom; stmt = cursor->stmt; sqlite3_bind_int64 (stmt, 1, cursor->current_row); ret = sqlite3_step (stmt); if (ret == SQLITE_ROW) { pk = sqlite3_column_int64 (stmt, 0); for (ic = 0; ic < cursor->pVtab->nColumns; ic++) { /* fetching column values */ geom_done = 0; for (ig = 0; ig < cursor->pVtab->nGeometries; ig++) { if (strcasecmp (*(cursor->pVtab->Column + ic), *(cursor->pVtab->GeoColumn + ig)) == 0) { /* this one is a Geometry column */ switch (*(cursor->pVtab->Format + ig)) { case FDO_OGR_WKT: if (sqlite3_column_type (stmt, ic + 1) == SQLITE_TEXT) { /* trying to parse a WKT Geometry */ char delete_wkt = 0; wkt = (unsigned char *) sqlite3_column_text (stmt, ic + 1); if (* (cursor->pVtab->CoordDimensions + ig) == GAIA_XY_Z) { wkt = (unsigned char *) vfdo_convertWKT3D ((char *) wkt); if (wkt == NULL) { value_set_null (* (cursor->pVtab->Value + ic)); continue; } delete_wkt = 1; } geom = gaiaParseWkt (wkt, -1); if (delete_wkt) free ((void *) wkt); if (!geom) value_set_null (* (cursor-> pVtab->Value + ic)); else { geom->Srid = *(cursor->pVtab->Srid + ig); gaiaToSpatiaLiteBlobWkb (geom, &xblob, &size); if (xblob) { value_set_blob (* (cursor->pVtab->Value + ic), xblob, size); free (xblob); } else value_set_null (* (cursor->pVtab->Value + ic)); gaiaFreeGeomColl (geom); } } else value_set_null (* (cursor->pVtab->Value + ic)); break; case FDO_OGR_WKB: if (sqlite3_column_type (stmt, ic + 1) == SQLITE_BLOB) { /* trying to parse a WKB Geometry */ blob = sqlite3_column_blob (stmt, ic + 1); size = sqlite3_column_bytes (stmt, ic + 1); geom = gaiaFromWkb (blob, size); if (!geom) value_set_null (* (cursor-> pVtab->Value + ic)); else { geom->Srid = *(cursor->pVtab->Srid + ig); gaiaToSpatiaLiteBlobWkb (geom, &xblob, &size); if (xblob) { value_set_blob (* (cursor->pVtab->Value + ic), xblob, size); free (xblob); } else value_set_null (* (cursor->pVtab->Value + ic)); gaiaFreeGeomColl (geom); } } else value_set_null (* (cursor->pVtab->Value + ic)); break; case FDO_OGR_FGF: if (sqlite3_column_type (stmt, ic + 1) == SQLITE_BLOB) { /* trying to parse an FGF Geometry */ blob = sqlite3_column_blob (stmt, ic + 1); size = sqlite3_column_bytes (stmt, ic + 1); geom = gaiaFromFgf (blob, size); if (!geom) value_set_null (* (cursor-> pVtab->Value + ic)); else { geom->Srid = *(cursor->pVtab->Srid + ig); gaiaToSpatiaLiteBlobWkb (geom, &xblob, &size); if (xblob) { value_set_blob (* (cursor->pVtab->Value + ic), xblob, size); free (xblob); } else value_set_null (* (cursor->pVtab->Value + ic)); gaiaFreeGeomColl (geom); } } else value_set_null (* (cursor->pVtab->Value + ic)); break; case FDO_OGR_SPLITE: if (sqlite3_column_type (stmt, ic + 1) == SQLITE_BLOB) { /* trying to parse a SPATIALITE Geometry */ blob = sqlite3_column_blob (stmt, ic + 1); size = sqlite3_column_bytes (stmt, ic + 1); value_set_blob (* (cursor->pVtab->Value + ic), blob, size); } else value_set_null (* (cursor->pVtab->Value + ic)); break; default: value_set_null (*(cursor->pVtab->Value + ic)); break; }; geom_done = 1; } } if (geom_done) continue; switch (sqlite3_column_type (stmt, ic + 1)) { case SQLITE_INTEGER: value_set_int (*(cursor->pVtab->Value + ic), sqlite3_column_int64 (stmt, ic + 1)); break; case SQLITE_FLOAT: value_set_double (*(cursor->pVtab->Value + ic), sqlite3_column_double (stmt, ic + 1)); break; case SQLITE_TEXT: text = (char *) sqlite3_column_text (stmt, ic + 1); size = sqlite3_column_bytes (stmt, ic + 1); value_set_text (*(cursor->pVtab->Value + ic), text, size); break; case SQLITE_BLOB: blob = sqlite3_column_blob (stmt, ic + 1); size = sqlite3_column_bytes (stmt, ic + 1); value_set_blob (*(cursor->pVtab->Value + ic), blob, size); break; case SQLITE_NULL: default: value_set_null (*(cursor->pVtab->Value + ic)); break; }; } } else { /* an error occurred */ cursor->eof = 1; return; } cursor->eof = 0; cursor->current_row = pk; } static int vfdo_create (sqlite3 * db, void *pAux, int argc, const char *const *argv, sqlite3_vtab ** ppVTab, char **pzErr) { /* creates the virtual table connected to some FDO-OGR table */ char *vtable = NULL; char *table = NULL; int ret; int i; int len; int n_rows; int n_columns; const char *col_name; const char *col_type; const char *format; int coord_dimension; int not_null; int srid; int type; char **results; char *sql; char prefix[16]; char *xname; gaiaOutBuffer sql_statement; VirtualFDOPtr p_vt = NULL; if (pAux) pAux = pAux; /* unused arg warning suppression */ /* checking for table_name */ if (argc == 4) { vtable = gaiaDequotedSql ((char *) argv[2]); table = gaiaDequotedSql ((char *) argv[3]); } else { *pzErr = sqlite3_mprintf ("[VirtualFDO module] CREATE VIRTUAL: illegal arg list {table_name}\n"); goto error; } /* retrieving the base table columns */ xname = gaiaDoubleQuotedSql (table); sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); free (xname); ret = sqlite3_get_table (db, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto illegal; if (n_rows >= 1) { p_vt = (VirtualFDOPtr) sqlite3_malloc (sizeof (VirtualFDO)); if (!p_vt) return SQLITE_NOMEM; p_vt->db = db; p_vt->nRef = 0; p_vt->zErrMsg = NULL; len = strlen (table); p_vt->table = sqlite3_malloc (len + 1); strcpy (p_vt->table, table); p_vt->nColumns = n_rows; p_vt->Column = sqlite3_malloc (sizeof (char *) * n_rows); p_vt->Type = sqlite3_malloc (sizeof (char *) * n_rows); p_vt->NotNull = sqlite3_malloc (sizeof (int) * n_rows); p_vt->Value = sqlite3_malloc (sizeof (SqliteValuePtr) * n_rows); for (i = 0; i < n_rows; i++) { *(p_vt->Column + i) = NULL; *(p_vt->Type + i) = NULL; *(p_vt->NotNull + i) = -1; *(p_vt->Value + i) = value_alloc (); } p_vt->nGeometries = 0; p_vt->GeoColumn = NULL; p_vt->Srid = NULL; p_vt->GeoType = NULL; p_vt->Format = NULL; p_vt->CoordDimensions = NULL; for (i = 1; i <= n_rows; i++) { col_name = results[(i * n_columns) + 1]; col_type = results[(i * n_columns) + 2]; if (atoi (results[(i * n_columns) + 3]) == 0) not_null = 0; else not_null = 1; len = strlen (col_name); *(p_vt->Column + (i - 1)) = sqlite3_malloc (len + 1); strcpy (*(p_vt->Column + (i - 1)), col_name); len = strlen (col_type); *(p_vt->Type + (i - 1)) = sqlite3_malloc (len + 1); strcpy (*(p_vt->Type + (i - 1)), col_type); *(p_vt->NotNull + (i - 1)) = not_null; } sqlite3_free_table (results); } else goto illegal; /* retrieving the base table columns */ sql = sqlite3_mprintf ("SELECT f_geometry_column, geometry_type, srid, " "geometry_format, coord_dimension\n" "FROM geometry_columns WHERE Upper(f_table_name) = Upper(%Q)", table); ret = sqlite3_get_table (db, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto illegal; if (n_rows >= 1) { p_vt->nGeometries = n_rows; p_vt->GeoColumn = sqlite3_malloc (sizeof (char *) * n_rows); p_vt->Srid = sqlite3_malloc (sizeof (char *) * n_rows); p_vt->GeoType = sqlite3_malloc (sizeof (int) * n_rows); p_vt->Format = sqlite3_malloc (sizeof (int) * n_rows); p_vt->CoordDimensions = sqlite3_malloc (sizeof (int) * n_rows); for (i = 0; i < n_rows; i++) { *(p_vt->GeoColumn + i) = NULL; *(p_vt->Srid + i) = -1; *(p_vt->GeoType + i) = -1; *(p_vt->Format + i) = FDO_OGR_NONE; *(p_vt->CoordDimensions + i) = GAIA_XY; } for (i = 1; i <= n_rows; i++) { col_name = results[(i * n_columns) + 0]; type = atoi (results[(i * n_columns) + 1]); srid = atoi (results[(i * n_columns) + 2]); format = results[(i * n_columns) + 3]; coord_dimension = atoi (results[(i * n_columns) + 4]); len = strlen (col_name); *(p_vt->GeoColumn + (i - 1)) = sqlite3_malloc (len + 1); strcpy (*(p_vt->GeoColumn + (i - 1)), col_name); *(p_vt->GeoType + (i - 1)) = type; *(p_vt->Srid + (i - 1)) = srid; if (strcasecmp (format, "WKT") == 0) *(p_vt->Format + (i - 1)) = FDO_OGR_WKT; if (strcasecmp (format, "WKB") == 0) *(p_vt->Format + (i - 1)) = FDO_OGR_WKB; if (strcasecmp (format, "FGF") == 0) *(p_vt->Format + (i - 1)) = FDO_OGR_FGF; if (strcasecmp (format, "SPATIALITE") == 0) *(p_vt->Format + (i - 1)) = FDO_OGR_SPLITE; if (coord_dimension == 3) *(p_vt->CoordDimensions + (i - 1)) = GAIA_XY_Z; else if (coord_dimension == 4) *(p_vt->CoordDimensions + (i - 1)) = GAIA_XY_Z_M; else *(p_vt->CoordDimensions + (i - 1)) = GAIA_XY; } sqlite3_free_table (results); } else goto illegal; /* preparing the COLUMNs for this VIRTUAL TABLE */ gaiaOutBufferInitialize (&sql_statement); xname = gaiaDoubleQuotedSql (vtable); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" ", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); for (i = 0; i < p_vt->nColumns; i++) { if (i == 0) strcpy (prefix, "("); else strcpy (prefix, ", "); xname = gaiaDoubleQuotedSql (*(p_vt->Column + i)); if (*(p_vt->NotNull + i)) sql = sqlite3_mprintf ("%s%s %s NOT NULL", prefix, xname, *(p_vt->Type + i)); else sql = sqlite3_mprintf ("%s%s %s", prefix, xname, *(p_vt->Type + i)); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); } gaiaAppendToOutBuffer (&sql_statement, ")"); if (sql_statement.Error == 0 && sql_statement.Buffer != NULL) { if (sqlite3_declare_vtab (db, sql_statement.Buffer) != SQLITE_OK) { *pzErr = sqlite3_mprintf ("[VirtualFDO module] CREATE VIRTUAL: invalid SQL statement \"%s\"", sql); goto error; } gaiaOutBufferReset (&sql_statement); } else goto error; *ppVTab = (sqlite3_vtab *) p_vt; free (vtable); free (table); return SQLITE_OK; illegal: /* something is going the wrong way */ gaiaOutBufferReset (&sql_statement); if (p_vt) free_table (p_vt); *pzErr = sqlite3_mprintf ("[VirtualFDO module] '%s' isn't a valid FDO-OGR Geometry table\n", table); error: if (vtable) free (vtable); if (table) free (table); gaiaOutBufferReset (&sql_statement); return SQLITE_ERROR; } static int vfdo_connect (sqlite3 * db, void *pAux, int argc, const char *const *argv, sqlite3_vtab ** ppVTab, char **pzErr) { /* connects the virtual table to some shapefile - simply aliases vfdo_create() */ return vfdo_create (db, pAux, argc, argv, ppVTab, pzErr); } static int vfdo_best_index (sqlite3_vtab * pVTab, sqlite3_index_info * pIndex) { /* best index selection */ if (pVTab || pIndex) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vfdo_disconnect (sqlite3_vtab * pVTab) { /* disconnects the virtual table */ VirtualFDOPtr p_vt = (VirtualFDOPtr) pVTab; free_table (p_vt); return SQLITE_OK; } static int vfdo_destroy (sqlite3_vtab * pVTab) { /* destroys the virtual table - simply aliases vfdo_disconnect() */ return vfdo_disconnect (pVTab); } static int vfdo_open (sqlite3_vtab * pVTab, sqlite3_vtab_cursor ** ppCursor) { /* opening a new cursor */ sqlite3_stmt *stmt; gaiaOutBuffer sql_statement; int ret; char *sql; int ic; char *xname; VirtualFDOCursorPtr cursor = (VirtualFDOCursorPtr) sqlite3_malloc (sizeof (VirtualFDOCursor)); if (cursor == NULL) return SQLITE_ERROR; cursor->pVtab = (VirtualFDOPtr) pVTab; gaiaOutBufferInitialize (&sql_statement); gaiaAppendToOutBuffer (&sql_statement, "SELECT ROWID"); for (ic = 0; ic < cursor->pVtab->nColumns; ic++) { value_set_null (*(cursor->pVtab->Value + ic)); xname = gaiaDoubleQuotedSql (*(cursor->pVtab->Column + ic)); sql = sqlite3_mprintf (",\"%s\"", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); } xname = gaiaDoubleQuotedSql (cursor->pVtab->table); sql = sqlite3_mprintf (" FROM \"%s\" WHERE ROWID >= ?", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); if (sql_statement.Error == 0 && sql_statement.Buffer != NULL) ret = sqlite3_prepare_v2 (cursor->pVtab->db, sql_statement.Buffer, strlen (sql_statement.Buffer), &stmt, NULL); else ret = SQLITE_ERROR; gaiaOutBufferReset (&sql_statement); if (ret != SQLITE_OK) { /* an error occurred */ cursor->eof = 1; return SQLITE_ERROR; } cursor->stmt = stmt; cursor->current_row = LONG64_MIN; cursor->eof = 0; *ppCursor = (sqlite3_vtab_cursor *) cursor; vfdo_read_row (cursor); return SQLITE_OK; } static int vfdo_close (sqlite3_vtab_cursor * pCursor) { /* closing the cursor */ int ic; VirtualFDOCursorPtr cursor = (VirtualFDOCursorPtr) pCursor; for (ic = 0; ic < cursor->pVtab->nColumns; ic++) value_set_null (*(cursor->pVtab->Value + ic)); if (cursor->stmt) sqlite3_finalize (cursor->stmt); sqlite3_free (pCursor); return SQLITE_OK; } static int vfdo_filter (sqlite3_vtab_cursor * pCursor, int idxNum, const char *idxStr, int argc, sqlite3_value ** argv) { /* setting up a cursor filter */ if (pCursor || idxNum || idxStr || argc || argv) pCursor = pCursor; /* unused arg warning suppression */ return SQLITE_OK; } static int vfdo_next (sqlite3_vtab_cursor * pCursor) { /* fetching next row from cursor */ VirtualFDOCursorPtr cursor = (VirtualFDOCursorPtr) pCursor; (cursor->current_row)++; vfdo_read_row (cursor); return SQLITE_OK; } static int vfdo_eof (sqlite3_vtab_cursor * pCursor) { /* cursor EOF */ VirtualFDOCursorPtr cursor = (VirtualFDOCursorPtr) pCursor; return cursor->eof; } static int vfdo_column (sqlite3_vtab_cursor * pCursor, sqlite3_context * pContext, int column) { /* fetching value for the Nth column */ VirtualFDOCursorPtr cursor = (VirtualFDOCursorPtr) pCursor; SqliteValuePtr value; if (column >= 0 && column < cursor->pVtab->nColumns) { value = *(cursor->pVtab->Value + column); switch (value->Type) { case SQLITE_INTEGER: sqlite3_result_int64 (pContext, value->IntValue); break; case SQLITE_FLOAT: sqlite3_result_double (pContext, value->DoubleValue); break; case SQLITE_TEXT: sqlite3_result_text (pContext, value->Text, value->Size, SQLITE_STATIC); break; case SQLITE_BLOB: sqlite3_result_blob (pContext, value->Blob, value->Size, SQLITE_STATIC); break; default: sqlite3_result_null (pContext); break; }; } else sqlite3_result_null (pContext); return SQLITE_OK; } static int vfdo_rowid (sqlite3_vtab_cursor * pCursor, sqlite_int64 * pRowid) { /* fetching the ROWID */ VirtualFDOCursorPtr cursor = (VirtualFDOCursorPtr) pCursor; *pRowid = cursor->current_row; return SQLITE_OK; } static int vfdo_update (sqlite3_vtab * pVTab, int argc, sqlite3_value ** argv, sqlite_int64 * pRowid) { /* generic update [INSERT / UPDATE / DELETE */ sqlite3_int64 rowid = 0; int ret; VirtualFDOPtr p_vt = (VirtualFDOPtr) pVTab; if (argc == 1) { /* performing a DELETE */ if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { rowid = sqlite3_value_int64 (argv[0]); ret = vfdo_delete_row (p_vt, rowid); } else ret = SQLITE_MISMATCH; } else { if (sqlite3_value_type (argv[0]) == SQLITE_NULL) { /* performing an INSERT */ ret = vfdo_insert_row (p_vt, &rowid, argc, argv); if (ret == SQLITE_OK) *pRowid = rowid; } else { /* performing an UPDATE */ rowid = sqlite3_value_int64 (argv[0]); ret = vfdo_update_row (p_vt, rowid, argc, argv); } } return ret; } static int vfdo_begin (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vfdo_sync (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vfdo_commit (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vfdo_rollback (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } int sqlite3VirtualFDOInit (sqlite3 * db) { int rc = SQLITE_OK; my_fdo_module.iVersion = 1; my_fdo_module.xCreate = &vfdo_create; my_fdo_module.xConnect = &vfdo_connect; my_fdo_module.xBestIndex = &vfdo_best_index; my_fdo_module.xDisconnect = &vfdo_disconnect; my_fdo_module.xDestroy = &vfdo_destroy; my_fdo_module.xOpen = &vfdo_open; my_fdo_module.xClose = &vfdo_close; my_fdo_module.xFilter = &vfdo_filter; my_fdo_module.xNext = &vfdo_next; my_fdo_module.xEof = &vfdo_eof; my_fdo_module.xColumn = &vfdo_column; my_fdo_module.xRowid = &vfdo_rowid; my_fdo_module.xUpdate = &vfdo_update; my_fdo_module.xBegin = &vfdo_begin; my_fdo_module.xSync = &vfdo_sync; my_fdo_module.xCommit = &vfdo_commit; my_fdo_module.xRollback = &vfdo_rollback; my_fdo_module.xFindFunction = NULL; sqlite3_create_module_v2 (db, "VirtualFDO", &my_fdo_module, NULL, 0); return rc; } int virtualfdo_extension_init (sqlite3 * db) { return sqlite3VirtualFDOInit (db); } libspatialite-4.1.1/src/spatialite/virtualxpath.c0000664000175000017500000007202612163502133017116 00000000000000/* virtualxpath.c -- SQLite3 extension [VIRTUAL XPath handler] version 4.1, 2013 May 8 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #ifdef ENABLE_LIBXML2 /* LIBXML2 enabled: supporting XML documents */ #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #define LONG64_MAX _I64_MAX #define LONG64_MIN _I64_MIN #else #define LONG64_MAX 9223372036854775807LL #define LONG64_MIN (-LONG64_MAX + 1) #endif #include #include #include #include #include #ifdef _WIN32 #define strcasecmp _stricmp #define strncasecmp _strnicmp #endif /* not WIN32 */ static struct sqlite3_module my_xpath_module; /****************************************************************************** / / VirtualTable structs / ******************************************************************************/ typedef struct VirtualXPathStruct { /* extends the sqlite3_vtab struct */ const sqlite3_module *pModule; /* ptr to sqlite module: USED INTERNALLY BY SQLITE */ int nRef; /* # references: USED INTERNALLY BY SQLITE */ char *zErrMsg; /* error message: USE INTERNALLY BY SQLITE */ sqlite3 *db; /* the sqlite db holding the virtual table */ void *p_cache; /* pointer to the internal cache */ char *table; /* the real-table name */ char *column; /* the real-column name */ } VirtualXPath; typedef VirtualXPath *VirtualXPathPtr; typedef struct VirtualXPathCursorStruct { /* extends the sqlite3_vtab_cursor struct */ VirtualXPathPtr pVtab; /* Virtual table of this cursor */ int eof; /* the EOF marker */ sqlite3_stmt *stmt; char *xpathExpr; xmlDocPtr xmlDoc; xmlXPathContextPtr xpathContext; xmlXPathObjectPtr xpathObj; int xpathIdx; sqlite3_int64 current_row; int keyOp1; sqlite3_int64 keyVal1; int keyOp2; sqlite3_int64 keyVal2; } VirtualXPathCursor; typedef VirtualXPathCursor *VirtualXPathCursorPtr; static void vxpath_free_ns (struct vxpath_ns *ns) { /* memory cleanup - destroying a Namespace item */ if (!ns) return; if (ns->Prefix) free (ns->Prefix); if (ns->Href) free (ns->Href); free (ns); } SPATIALITE_PRIVATE void vxpath_free_namespaces (struct vxpath_namespaces *ns_list) { /* memory cleanup - destroying the Namespaces list */ struct vxpath_ns *ns; struct vxpath_ns *nns; if (!ns_list) return; ns = ns_list->First; while (ns) { nns = ns->Next; vxpath_free_ns (ns); ns = nns; } free (ns_list); } static void vxpath_add_ns (struct vxpath_namespaces *ns_list, const char *prefix, const char *href) { /* inserting a further Namespace into the list */ int len; struct vxpath_ns *ns = ns_list->First; while (ns) { /* checking if it's already defined */ if (ns->Prefix == NULL || prefix == NULL) { if (ns->Prefix == NULL && prefix == NULL && strcmp (ns->Href, href) == 0) { /* ok, already defined (default Namespace) */ return; } } else { if (strcmp (ns->Prefix, prefix) == 0 && strcmp (ns->Href, href) == 0) { /* ok, already defined */ return; } } ns = ns->Next; } /* inserting a new Namespace */ ns = malloc (sizeof (struct vxpath_ns)); if (prefix == NULL) ns->Prefix = NULL; else { len = strlen (prefix); ns->Prefix = malloc (len + 1); strcpy (ns->Prefix, prefix); } len = strlen (href); ns->Href = malloc (len + 1); strcpy (ns->Href, href); ns->Next = NULL; if (ns_list->First == NULL) ns_list->First = ns; if (ns_list->Last != NULL) ns_list->Last->Next = ns; ns_list->Last = ns; } static void vxpath_feed_ns (struct vxpath_namespaces *ns_list, xmlNodePtr start) { /* recursively searching for Namespaces */ xmlNodePtr node = start; while (node) { if (node->ns != NULL) { /* a Namespace is defined */ vxpath_add_ns (ns_list, (const char *) (node->ns->prefix), (const char *) (node->ns->href)); } if (node->properties != NULL) { /* exploring the Attribute list */ struct _xmlAttr *attr = node->properties; while (attr) { if (attr->type == XML_ATTRIBUTE_NODE) { if (attr->ns != NULL) { /* a Namespace is defined */ vxpath_add_ns (ns_list, (const char *) (attr-> ns->prefix), (const char *) (attr-> ns->href)); } } attr = attr->next; } } vxpath_feed_ns (ns_list, node->children); node = node->next; } } SPATIALITE_PRIVATE struct vxpath_namespaces * vxpath_get_namespaces (void *p_xml_doc) { /* creating and populating the Namespaces list */ xmlDocPtr xml_doc = (xmlDocPtr) p_xml_doc; xmlNodePtr root = xmlDocGetRootElement (xml_doc); struct vxpath_namespaces *ns_list; ns_list = malloc (sizeof (struct vxpath_namespaces)); ns_list->First = NULL; ns_list->Last = NULL; vxpath_feed_ns (ns_list, root); return ns_list; } static void vxpathError (void *ctx, const char *msg, ...) { /* appending to the current XPath Error buffer */ struct splite_internal_cache *cache = (struct splite_internal_cache *) ctx; gaiaOutBufferPtr buf = (gaiaOutBufferPtr) (cache->xmlXPathErrors); char out[65536]; va_list args; if (ctx != NULL) ctx = NULL; /* suppressing stupid compiler warnings (unused args) */ va_start (args, msg); vsnprintf (out, 65536, msg, args); gaiaAppendToOutBuffer (buf, out); va_end (args); } static void vxpathResetXmlErrors (struct splite_internal_cache *cache) { /* resetting the XPath Error buffer */ gaiaOutBufferPtr buf = (gaiaOutBufferPtr) (cache->xmlXPathErrors); gaiaOutBufferReset (buf); } GAIAGEO_DECLARE int gaiaIsValidXPathExpression (void *p_cache, const char *xpath_expr) { struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; xmlXPathCompExprPtr result; xmlGenericErrorFunc xpathError = (xmlGenericErrorFunc) vxpathError; vxpathResetXmlErrors (cache); xmlSetGenericErrorFunc (cache, xpathError); /* testing an XPath expression */ result = xmlXPathCompile ((const xmlChar *) xpath_expr); xmlSetGenericErrorFunc ((void *) stderr, NULL); if (result) { xmlXPathFreeCompExpr (result); return 1; } return 0; } SPATIALITE_PRIVATE int vxpath_eval_expr (void *p_cache, void *x_xml_doc, const char *xpath_expr, void *x_xpathCtx, void *x_xpathObj) { struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; /* evaluating an XPath expression */ xmlDocPtr xml_doc = (xmlDocPtr) x_xml_doc; xmlXPathContextPtr *p_xpathCtx = (xmlXPathContextPtr *) x_xpathCtx; xmlXPathObjectPtr *p_xpathObj = (xmlXPathObjectPtr *) x_xpathObj; xmlXPathObjectPtr xpathObj; xmlXPathContextPtr xpathCtx; xmlGenericErrorFunc xpathError = (xmlGenericErrorFunc) vxpathError; /* attempting to identify all required Namespaces */ struct vxpath_ns *ns; struct vxpath_namespaces *ns_list = vxpath_get_namespaces (xml_doc); vxpathResetXmlErrors (cache); xmlSetGenericErrorFunc (cache, xpathError); /* creating an XPath context */ xpathCtx = xmlXPathNewContext (xml_doc); if (xpathCtx == NULL) { xmlSetGenericErrorFunc ((void *) stderr, NULL); return 0; } /* registering all Namespaces */ if (xpathCtx != NULL && ns_list != NULL) { ns = ns_list->First; while (ns) { if (ns->Prefix == NULL) { /* the default Namespace always is "dflt:xx" */ xmlXPathRegisterNs (xpathCtx, (xmlChar *) "dflt", (xmlChar *) ns->Href); } else { /* a fully qualified Namespace */ xmlXPathRegisterNs (xpathCtx, (xmlChar *) ns->Prefix, (xmlChar *) ns->Href); } ns = ns->Next; } } vxpath_free_namespaces (ns_list); /* evaluating the XPath expression */ xpathObj = xmlXPathEvalExpression ((const xmlChar *) xpath_expr, xpathCtx); if (xpathObj != NULL) { xmlNodeSetPtr nodes = xpathObj->nodesetval; int num_nodes = (nodes) ? nodes->nodeNr : 0; if (num_nodes >= 1) { /* OK: match found */ *p_xpathCtx = xpathCtx; *p_xpathObj = xpathObj; xmlSetGenericErrorFunc ((void *) stderr, NULL); return 1; } /* invalid: empty nodeset */ xmlXPathFreeObject (xpathObj); } xmlXPathFreeContext (xpathCtx); xmlSetGenericErrorFunc ((void *) stderr, NULL); return 0; } static void vxpath_read_row (VirtualXPathCursorPtr cursor) { /* trying to read a row from the real-table */ sqlite3_stmt *stmt; int ret; sqlite3_int64 pk; int eof; if (cursor->stmt == NULL || cursor->xpathExpr == NULL) return; if (cursor->xpathObj) xmlXPathFreeObject (cursor->xpathObj); if (cursor->xpathContext) xmlXPathFreeContext (cursor->xpathContext); if (cursor->xmlDoc) xmlFreeDoc (cursor->xmlDoc); cursor->xmlDoc = NULL; cursor->xpathContext = NULL; cursor->xpathObj = NULL; stmt = cursor->stmt; sqlite3_bind_int64 (stmt, 1, cursor->current_row); while (1) { ret = sqlite3_step (stmt); if (ret == SQLITE_ROW) { pk = sqlite3_column_int64 (stmt, 0); /* filtering the PK value */ eof = 0; switch (cursor->keyOp1) { case SQLITE_INDEX_CONSTRAINT_EQ: if (pk > cursor->keyVal1) eof = 1; break; case SQLITE_INDEX_CONSTRAINT_LT: if (pk >= cursor->keyVal1) eof = 1; break; case SQLITE_INDEX_CONSTRAINT_LE: if (pk > cursor->keyVal1) eof = 1; break; }; switch (cursor->keyOp2) { case SQLITE_INDEX_CONSTRAINT_EQ: if (pk > cursor->keyVal2) eof = 1; break; case SQLITE_INDEX_CONSTRAINT_LT: if (pk >= cursor->keyVal2) eof = 1; break; case SQLITE_INDEX_CONSTRAINT_LE: if (pk > cursor->keyVal2) eof = 1; break; }; if (eof) { cursor->eof = 1; return; } if (sqlite3_column_type (stmt, 1) == SQLITE_BLOB) { xmlDocPtr xml_doc; int xml_len; unsigned char *xml; const unsigned char *blob = sqlite3_column_blob (stmt, 1); int size = sqlite3_column_bytes (stmt, 1); gaiaXmlFromBlob (blob, size, -1, &xml, &xml_len); if (!xml) continue; xml_doc = xmlReadMemory ((const char *) xml, xml_len, "noname.xml", NULL, 0); if (xml_doc != NULL) { xmlXPathContextPtr xpathCtx; xmlXPathObjectPtr xpathObj; if (vxpath_eval_expr (cursor->pVtab->p_cache, xml_doc, cursor->xpathExpr, &xpathCtx, &xpathObj)) { free (xml); if (cursor->xpathObj) xmlXPathFreeObject (cursor->xpathObj); if (cursor->xpathContext) xmlXPathFreeContext (cursor->xpathContext); if (cursor->xmlDoc) xmlFreeDoc (cursor->xmlDoc); cursor->xmlDoc = xml_doc; cursor->xpathContext = xpathCtx; cursor->xpathObj = xpathObj; cursor->xpathIdx = 0; break; } free (xml); xmlFreeDoc (xml_doc); } } } else { /* an error occurred */ cursor->eof = 1; return; } } cursor->eof = 0; cursor->current_row = pk; } static void vxpath_check (sqlite3 * db, const char *table, const char *column, int *okTable, int *okCol) { /* checking if both Table and Column exist */ char **results; char *sql; char *xname; int ret; int i; int n_rows; int n_columns; xname = gaiaDoubleQuotedSql (table); sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); free (xname); ret = sqlite3_get_table (db, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return; if (n_rows >= 1) { *okTable = 1; for (i = 1; i <= n_rows; i++) { const char *col_name = results[(i * n_columns) + 1]; if (strcasecmp (col_name, column) == 0) *okCol = 1; } } sqlite3_free_table (results); } static int vxpath_create (sqlite3 * db, void *pAux, int argc, const char *const *argv, sqlite3_vtab ** ppVTab, char **pzErr) { /* creates the virtual table for XPath */ VirtualXPathPtr p_vt; char *vtable = NULL; char *table = NULL; char *column = NULL; char *xname; char *sql; int okTable = 0; int okCol = 0; if (argc == 5) { vtable = gaiaDequotedSql ((char *) argv[2]); table = gaiaDequotedSql ((char *) argv[3]); column = gaiaDequotedSql ((char *) argv[4]); } else { *pzErr = sqlite3_mprintf ("[VirtualXPath module] CREATE VIRTUAL: illegal arg list {void}\n"); return SQLITE_ERROR; } vxpath_check (db, table, column, &okTable, &okCol); if (!okTable || !okCol) goto illegal; xname = gaiaDoubleQuotedSql (vtable); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (pkid INTEGER, sub INTEGER, " "parent TEXT, node TEXT, attribute TEXT, " "value TEXT, xpath_expr TEXT)", xname); free (xname); if (sqlite3_declare_vtab (db, sql) != SQLITE_OK) { sqlite3_free (sql); *pzErr = sqlite3_mprintf ("[VirtualXPath module] CREATE VIRTUAL: invalid SQL statement \"%s\"", sql); goto error; } sqlite3_free (sql); p_vt = (VirtualXPathPtr) sqlite3_malloc (sizeof (VirtualXPath)); if (!p_vt) return SQLITE_NOMEM; p_vt->db = db; p_vt->p_cache = pAux; p_vt->nRef = 0; p_vt->zErrMsg = NULL; p_vt->table = table; p_vt->column = column; *ppVTab = (sqlite3_vtab *) p_vt; free (vtable); return SQLITE_OK; illegal: /* something is going the wrong way */ if (!okTable == 0) *pzErr = sqlite3_mprintf ("[VirtualXPath module] table \"%s\" doesn't exists\n", table); else if (!okCol) *pzErr = sqlite3_mprintf ("[VirtualXPath module] table \"%s\" exists, but has no \"%s\" column\n", table, column); error: return SQLITE_ERROR; } static int vxpath_connect (sqlite3 * db, void *pAux, int argc, const char *const *argv, sqlite3_vtab ** ppVTab, char **pzErr) { /* connects the virtual table - simply aliases vxpath_create() */ return vxpath_create (db, pAux, argc, argv, ppVTab, pzErr); } static int vxpath_best_index (sqlite3_vtab * pVTab, sqlite3_index_info * pIdxInfo) { /* best index selection */ int i; int errors = 0; int err = 1; int xpath = 0; if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ for (i = 0; i < pIdxInfo->nConstraint; i++) { /* verifying the constraints */ struct sqlite3_index_constraint *p = &(pIdxInfo->aConstraint[i]); if (p->usable) { if (p->iColumn == 0); else if (p->iColumn == 6 && p->op == SQLITE_INDEX_CONSTRAINT_EQ) xpath++; else errors++; } } if (xpath == 1 && errors == 0) { /* this one is a valid XPath query */ pIdxInfo->idxNum = 1; pIdxInfo->estimatedCost = 1.0; pIdxInfo->idxStr = sqlite3_malloc (pIdxInfo->nConstraint * 2); pIdxInfo->needToFreeIdxStr = 1; for (i = 0; i < pIdxInfo->nConstraint; i++) { struct sqlite3_index_constraint *p = &(pIdxInfo->aConstraint[i]); if (p->usable) { char *pStr = pIdxInfo->idxStr + (i * 2); if (p->iColumn == 6) *pStr = 0; else *pStr = 1; pStr++; *pStr = p->op; pIdxInfo->aConstraintUsage[i].argvIndex = i + 1; pIdxInfo->aConstraintUsage[i].omit = 1; } } err = 0; } if (err) { /* illegal query */ pIdxInfo->idxNum = 0; } return SQLITE_OK; } static int vxpath_disconnect (sqlite3_vtab * pVTab) { /* disconnects the virtual table */ VirtualXPathPtr p_vt = (VirtualXPathPtr) pVTab; free (p_vt->column); free (p_vt->table); sqlite3_free (p_vt); return SQLITE_OK; } static int vxpath_destroy (sqlite3_vtab * pVTab) { /* destroys the virtual table - simply aliases vxpath_disconnect() */ return vxpath_disconnect (pVTab); } static int vxpath_open (sqlite3_vtab * pVTab, sqlite3_vtab_cursor ** ppCursor) { /* opening a new cursor */ sqlite3_stmt *stmt; int ret; char *sql; char *xname; char *xcolumn; VirtualXPathCursorPtr cursor = (VirtualXPathCursorPtr) sqlite3_malloc (sizeof (VirtualXPathCursor)); if (cursor == NULL) return SQLITE_ERROR; cursor->pVtab = (VirtualXPathPtr) pVTab; cursor->xmlDoc = NULL; cursor->xpathContext = NULL; cursor->xpathObj = NULL; cursor->xpathExpr = NULL; cursor->stmt = NULL; cursor->keyOp1 = 0; cursor->keyVal1 = 0; cursor->keyOp2 = 0; cursor->keyVal2 = 0; xcolumn = gaiaDoubleQuotedSql (cursor->pVtab->column); xname = gaiaDoubleQuotedSql (cursor->pVtab->table); sql = sqlite3_mprintf ("SELECT ROWID, \"%s\" FROM \"%s\"" " WHERE ROWID >= ?", xcolumn, xname); free (xname); free (xcolumn); ret = sqlite3_prepare_v2 (cursor->pVtab->db, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { /* an error occurred */ cursor->eof = 1; return SQLITE_ERROR; } cursor->stmt = stmt; cursor->current_row = LONG64_MIN; cursor->eof = 0; *ppCursor = (sqlite3_vtab_cursor *) cursor; return SQLITE_OK; } static int vxpath_close (sqlite3_vtab_cursor * pCursor) { /* closing the cursor */ VirtualXPathCursorPtr cursor = (VirtualXPathCursorPtr) pCursor; if (cursor->stmt) sqlite3_finalize (cursor->stmt); if (cursor->xpathObj) xmlXPathFreeObject (cursor->xpathObj); if (cursor->xpathContext) xmlXPathFreeContext (cursor->xpathContext); if (cursor->xmlDoc) xmlFreeDoc (cursor->xmlDoc); if (cursor->xpathExpr) free (cursor->xpathExpr); sqlite3_free (pCursor); return SQLITE_OK; } static int vxpath_filter (sqlite3_vtab_cursor * pCursor, int idxNum, const char *idxStr, int argc, sqlite3_value ** argv) { /* setting up a cursor filter */ int ok = 0; VirtualXPathCursorPtr cursor = (VirtualXPathCursorPtr) pCursor; if (idxStr) idxStr = idxStr; /* unused arg warning suppression */ cursor->eof = 1; if (idxNum == 1) { int i; cursor->keyOp1 = 0; cursor->keyOp2 = 0; for (i = 0; i < argc; i++) { const char *pStr = idxStr + (i * 2); if (*pStr == 0) { /* retrieving the XPath expression param */ if (sqlite3_value_type (argv[i]) == SQLITE_TEXT) { char *exp = (char *) sqlite3_value_text (argv[i]); if (exp != NULL) { int len = strlen (exp); cursor->xpathExpr = malloc (len + 1); strcpy (cursor->xpathExpr, exp); } ok = 1; } } else { /* evaluating a ROWID contraint */ pStr++; if (cursor->keyOp1 == 0) { cursor->keyOp1 = *pStr; cursor->keyVal1 = sqlite3_value_int64 (argv[i]); } else { cursor->keyOp2 = *pStr; cursor->keyVal2 = sqlite3_value_int64 (argv[i]); } } } } if (!ok) { cursor->eof = 1; return SQLITE_OK; } /* attempting to set a reasonable ROWID */ switch (cursor->keyOp1) { case SQLITE_INDEX_CONSTRAINT_EQ: cursor->current_row = cursor->keyVal1; break; case SQLITE_INDEX_CONSTRAINT_GT: cursor->current_row = cursor->keyVal1 + 1; break; case SQLITE_INDEX_CONSTRAINT_GE: cursor->current_row = cursor->keyVal1; break; }; switch (cursor->keyOp2) { case SQLITE_INDEX_CONSTRAINT_EQ: cursor->current_row = cursor->keyVal2; break; case SQLITE_INDEX_CONSTRAINT_GT: cursor->current_row = cursor->keyVal2 + 1; break; case SQLITE_INDEX_CONSTRAINT_GE: cursor->current_row = cursor->keyVal2; break; }; vxpath_read_row (cursor); return SQLITE_OK; } static int vxpath_next (sqlite3_vtab_cursor * pCursor) { /* fetching a next row from cursor */ VirtualXPathCursorPtr cursor = (VirtualXPathCursorPtr) pCursor; if (cursor->xpathObj != NULL) { /* we already have a current XPath node-set */ xmlNodeSetPtr nodes = cursor->xpathObj->nodesetval; int num_nodes = (nodes) ? nodes->nodeNr : 0; if ((cursor->xpathIdx + 1) < num_nodes) { /* ok, consuming the current XPath node from the node-set */ cursor->xpathIdx += 1; return SQLITE_OK; } } (cursor->current_row)++; vxpath_read_row (cursor); return SQLITE_OK; } static int vxpath_eof (sqlite3_vtab_cursor * pCursor) { /* cursor EOF */ VirtualXPathCursorPtr cursor = (VirtualXPathCursorPtr) pCursor; return cursor->eof; } static int vxpath_column (sqlite3_vtab_cursor * pCursor, sqlite3_context * pContext, int column) { /* fetching value for the Nth column */ VirtualXPathCursorPtr cursor = (VirtualXPathCursorPtr) pCursor; xmlNodeSetPtr nodeset = cursor->xpathObj->nodesetval; xmlNodePtr node = nodeset->nodeTab[cursor->xpathIdx]; xmlNodePtr parent = node->parent; char *xParent = NULL; char *xNode = NULL; char *xAttribute = NULL; char *xValue = NULL; char *prefix; if (node->type == XML_ELEMENT_NODE) { if (parent != NULL) { if (parent->ns != NULL && parent->name != NULL) { prefix = (char *) (parent->ns->prefix); if (prefix == NULL) prefix = "dflt"; xParent = sqlite3_mprintf ("%s:%s", prefix, parent->name); } else if (parent->name != NULL) xParent = sqlite3_mprintf ("%s", parent->name); } if (node->ns != NULL && node->name != NULL) { prefix = (char *) (node->ns->prefix); if (prefix == NULL) prefix = "dflt"; xNode = sqlite3_mprintf ("%s:%s", prefix, node->name); } else if (node->name != NULL) xNode = sqlite3_mprintf ("%s", node->name); } else if (node->type == XML_ATTRIBUTE_NODE) { if (parent != NULL) { xmlNodePtr granpa = parent->parent; if (granpa != NULL) { if (granpa->ns != NULL && granpa->name != NULL) { prefix = (char *) (granpa->ns->prefix); if (prefix == NULL) prefix = "dflt"; xParent = sqlite3_mprintf ("%s:%s", prefix, granpa->name); } else if (granpa->name != NULL) xParent = sqlite3_mprintf ("%s", granpa->name); } if (parent->ns != NULL && parent->name != NULL) { prefix = (char *) (parent->ns->prefix); if (prefix == NULL) prefix = "dflt"; xNode = sqlite3_mprintf ("%s:%s", prefix, parent->name); } else if (parent->name != NULL) xNode = sqlite3_mprintf ("%s", parent->name); } if (node->ns != NULL && node->name != NULL) { prefix = (char *) (node->ns->prefix); if (prefix == NULL) prefix = "dflt"; xAttribute = sqlite3_mprintf ("%s:%s", prefix, node->name); } else if (node->name != NULL) xAttribute = sqlite3_mprintf ("%s", node->name); if (node->children != NULL) { if (node->children->content != NULL) xValue = sqlite3_mprintf ("%s", node->children->content); } } else if (node->type == XML_TEXT_NODE) { if (parent != NULL) { xmlNodePtr granpa = parent->parent; if (granpa != NULL) { if (granpa->ns != NULL && granpa->name != NULL) { prefix = (char *) (granpa->ns->prefix); if (prefix == NULL) prefix = "dflt"; xParent = sqlite3_mprintf ("%s:%s", prefix, granpa->name); } else if (granpa->name != NULL) xParent = sqlite3_mprintf ("%s", granpa->name); } if (parent->ns != NULL && parent->name != NULL) { prefix = (char *) (parent->ns->prefix); if (prefix == NULL) prefix = "dflt"; xNode = sqlite3_mprintf ("%s:%s", prefix, parent->name); } else if (parent->name != NULL) xNode = sqlite3_mprintf ("%s", parent->name); } if (node->content != NULL) xValue = sqlite3_mprintf ("%s", node->content); } if (column == 0) sqlite3_result_int64 (pContext, cursor->current_row); else if (column == 1) sqlite3_result_int (pContext, cursor->xpathIdx); else if (column == 2) { if (!xParent) sqlite3_result_null (pContext); else sqlite3_result_text (pContext, xParent, strlen (xParent), SQLITE_TRANSIENT); } else if (column == 3) { if (!xNode) sqlite3_result_null (pContext); else sqlite3_result_text (pContext, xNode, strlen (xNode), SQLITE_TRANSIENT); } else if (column == 4) { if (!xAttribute) sqlite3_result_null (pContext); else sqlite3_result_text (pContext, xAttribute, strlen (xAttribute), SQLITE_TRANSIENT); } else if (column == 5) { if (!xValue) sqlite3_result_null (pContext); else sqlite3_result_text (pContext, xValue, strlen (xValue), SQLITE_TRANSIENT); } else if (column == 6) sqlite3_result_text (pContext, cursor->xpathExpr, strlen (cursor->xpathExpr), SQLITE_STATIC); else sqlite3_result_null (pContext); if (xParent) sqlite3_free (xParent); if (xNode) sqlite3_free (xNode); if (xAttribute) sqlite3_free (xAttribute); if (xValue) sqlite3_free (xValue); return SQLITE_OK; } static int vxpath_rowid (sqlite3_vtab_cursor * pCursor, sqlite_int64 * pRowid) { /* fetching the ROWID */ VirtualXPathCursorPtr cursor = (VirtualXPathCursorPtr) pCursor; *pRowid = cursor->current_row; return SQLITE_OK; } static int vxpath_update (sqlite3_vtab * pVTab, int argc, sqlite3_value ** argv, sqlite_int64 * pRowid) { /* generic update [INSERT / UPDATE / DELETE */ if (pRowid || argc || argv || pVTab) pRowid = pRowid; /* unused arg warning suppression */ /* read only datasource */ return SQLITE_READONLY; } static int vxpath_begin (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vxpath_sync (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vxpath_commit (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vxpath_rollback (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } int sqlite3VirtualXPathInit (sqlite3 * db, void *p_cache) { int rc = SQLITE_OK; my_xpath_module.iVersion = 1; my_xpath_module.xCreate = &vxpath_create; my_xpath_module.xConnect = &vxpath_connect; my_xpath_module.xBestIndex = &vxpath_best_index; my_xpath_module.xDisconnect = &vxpath_disconnect; my_xpath_module.xDestroy = &vxpath_destroy; my_xpath_module.xOpen = &vxpath_open; my_xpath_module.xClose = &vxpath_close; my_xpath_module.xFilter = &vxpath_filter; my_xpath_module.xNext = &vxpath_next; my_xpath_module.xEof = &vxpath_eof; my_xpath_module.xColumn = &vxpath_column; my_xpath_module.xRowid = &vxpath_rowid; my_xpath_module.xUpdate = &vxpath_update; my_xpath_module.xBegin = &vxpath_begin; my_xpath_module.xSync = &vxpath_sync; my_xpath_module.xCommit = &vxpath_commit; my_xpath_module.xRollback = &vxpath_rollback; my_xpath_module.xFindFunction = NULL; sqlite3_create_module_v2 (db, "VirtualXPath", &my_xpath_module, p_cache, 0); return rc; } int virtual_xpath_extension_init (sqlite3 * db, void *p_cache) { return sqlite3VirtualXPathInit (db, p_cache); } #endif /* end LIBXML2: supporting XML documents */ libspatialite-4.1.1/src/spatialite/Makefile.in0000664000175000017500000007517412163502133016273 00000000000000# Makefile.in generated by automake 1.12.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/spatialite DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libsplite_la_LIBADD = am_libsplite_la_OBJECTS = libsplite_la-mbrcache.lo \ libsplite_la-spatialite.lo libsplite_la-spatialite_init.lo \ libsplite_la-metatables.lo libsplite_la-statistics.lo \ libsplite_la-extra_tables.lo libsplite_la-virtualdbf.lo \ libsplite_la-virtualXL.lo libsplite_la-virtualfdo.lo \ libsplite_la-virtualspatialindex.lo \ libsplite_la-virtualnetwork.lo libsplite_la-virtualshape.lo \ libsplite_la-virtualxpath.lo libsplite_la_OBJECTS = $(am_libsplite_la_OBJECTS) libsplite_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libsplite_la_CFLAGS) \ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libsplite_la_SOURCES) DIST_SOURCES = $(libsplite_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ INCLUDES = @CFLAGS@ @GEOS_CFLAGS@ @LIBXML2_CFLAGS@ \ -I$(top_srcdir)/src/headers noinst_LTLIBRARIES = libsplite.la libsplite_la_SOURCES = mbrcache.c \ spatialite.c \ spatialite_init.c \ metatables.c \ statistics.c \ extra_tables.c \ virtualdbf.c \ virtualXL.c \ virtualfdo.c \ virtualspatialindex.c \ virtualnetwork.c \ virtualshape.c \ virtualxpath.c libsplite_la_CFLAGS = -fvisibility=hidden MOSTLYCLEANFILES = *.gcna *.gcno *.gcda all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/spatialite/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/spatialite/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } libsplite.la: $(libsplite_la_OBJECTS) $(libsplite_la_DEPENDENCIES) $(EXTRA_libsplite_la_DEPENDENCIES) $(libsplite_la_LINK) $(libsplite_la_OBJECTS) $(libsplite_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsplite_la-extra_tables.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsplite_la-mbrcache.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsplite_la-metatables.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsplite_la-spatialite.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsplite_la-spatialite_init.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsplite_la-statistics.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsplite_la-virtualXL.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsplite_la-virtualdbf.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsplite_la-virtualfdo.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsplite_la-virtualnetwork.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsplite_la-virtualshape.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsplite_la-virtualspatialindex.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsplite_la-virtualxpath.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< libsplite_la-mbrcache.lo: mbrcache.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-mbrcache.lo -MD -MP -MF $(DEPDIR)/libsplite_la-mbrcache.Tpo -c -o libsplite_la-mbrcache.lo `test -f 'mbrcache.c' || echo '$(srcdir)/'`mbrcache.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsplite_la-mbrcache.Tpo $(DEPDIR)/libsplite_la-mbrcache.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mbrcache.c' object='libsplite_la-mbrcache.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-mbrcache.lo `test -f 'mbrcache.c' || echo '$(srcdir)/'`mbrcache.c libsplite_la-spatialite.lo: spatialite.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-spatialite.lo -MD -MP -MF $(DEPDIR)/libsplite_la-spatialite.Tpo -c -o libsplite_la-spatialite.lo `test -f 'spatialite.c' || echo '$(srcdir)/'`spatialite.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsplite_la-spatialite.Tpo $(DEPDIR)/libsplite_la-spatialite.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='spatialite.c' object='libsplite_la-spatialite.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-spatialite.lo `test -f 'spatialite.c' || echo '$(srcdir)/'`spatialite.c libsplite_la-spatialite_init.lo: spatialite_init.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-spatialite_init.lo -MD -MP -MF $(DEPDIR)/libsplite_la-spatialite_init.Tpo -c -o libsplite_la-spatialite_init.lo `test -f 'spatialite_init.c' || echo '$(srcdir)/'`spatialite_init.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsplite_la-spatialite_init.Tpo $(DEPDIR)/libsplite_la-spatialite_init.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='spatialite_init.c' object='libsplite_la-spatialite_init.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-spatialite_init.lo `test -f 'spatialite_init.c' || echo '$(srcdir)/'`spatialite_init.c libsplite_la-metatables.lo: metatables.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-metatables.lo -MD -MP -MF $(DEPDIR)/libsplite_la-metatables.Tpo -c -o libsplite_la-metatables.lo `test -f 'metatables.c' || echo '$(srcdir)/'`metatables.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsplite_la-metatables.Tpo $(DEPDIR)/libsplite_la-metatables.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='metatables.c' object='libsplite_la-metatables.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-metatables.lo `test -f 'metatables.c' || echo '$(srcdir)/'`metatables.c libsplite_la-statistics.lo: statistics.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-statistics.lo -MD -MP -MF $(DEPDIR)/libsplite_la-statistics.Tpo -c -o libsplite_la-statistics.lo `test -f 'statistics.c' || echo '$(srcdir)/'`statistics.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsplite_la-statistics.Tpo $(DEPDIR)/libsplite_la-statistics.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='statistics.c' object='libsplite_la-statistics.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-statistics.lo `test -f 'statistics.c' || echo '$(srcdir)/'`statistics.c libsplite_la-extra_tables.lo: extra_tables.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-extra_tables.lo -MD -MP -MF $(DEPDIR)/libsplite_la-extra_tables.Tpo -c -o libsplite_la-extra_tables.lo `test -f 'extra_tables.c' || echo '$(srcdir)/'`extra_tables.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsplite_la-extra_tables.Tpo $(DEPDIR)/libsplite_la-extra_tables.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='extra_tables.c' object='libsplite_la-extra_tables.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-extra_tables.lo `test -f 'extra_tables.c' || echo '$(srcdir)/'`extra_tables.c libsplite_la-virtualdbf.lo: virtualdbf.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-virtualdbf.lo -MD -MP -MF $(DEPDIR)/libsplite_la-virtualdbf.Tpo -c -o libsplite_la-virtualdbf.lo `test -f 'virtualdbf.c' || echo '$(srcdir)/'`virtualdbf.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsplite_la-virtualdbf.Tpo $(DEPDIR)/libsplite_la-virtualdbf.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virtualdbf.c' object='libsplite_la-virtualdbf.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-virtualdbf.lo `test -f 'virtualdbf.c' || echo '$(srcdir)/'`virtualdbf.c libsplite_la-virtualXL.lo: virtualXL.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-virtualXL.lo -MD -MP -MF $(DEPDIR)/libsplite_la-virtualXL.Tpo -c -o libsplite_la-virtualXL.lo `test -f 'virtualXL.c' || echo '$(srcdir)/'`virtualXL.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsplite_la-virtualXL.Tpo $(DEPDIR)/libsplite_la-virtualXL.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virtualXL.c' object='libsplite_la-virtualXL.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-virtualXL.lo `test -f 'virtualXL.c' || echo '$(srcdir)/'`virtualXL.c libsplite_la-virtualfdo.lo: virtualfdo.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-virtualfdo.lo -MD -MP -MF $(DEPDIR)/libsplite_la-virtualfdo.Tpo -c -o libsplite_la-virtualfdo.lo `test -f 'virtualfdo.c' || echo '$(srcdir)/'`virtualfdo.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsplite_la-virtualfdo.Tpo $(DEPDIR)/libsplite_la-virtualfdo.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virtualfdo.c' object='libsplite_la-virtualfdo.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-virtualfdo.lo `test -f 'virtualfdo.c' || echo '$(srcdir)/'`virtualfdo.c libsplite_la-virtualspatialindex.lo: virtualspatialindex.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-virtualspatialindex.lo -MD -MP -MF $(DEPDIR)/libsplite_la-virtualspatialindex.Tpo -c -o libsplite_la-virtualspatialindex.lo `test -f 'virtualspatialindex.c' || echo '$(srcdir)/'`virtualspatialindex.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsplite_la-virtualspatialindex.Tpo $(DEPDIR)/libsplite_la-virtualspatialindex.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virtualspatialindex.c' object='libsplite_la-virtualspatialindex.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-virtualspatialindex.lo `test -f 'virtualspatialindex.c' || echo '$(srcdir)/'`virtualspatialindex.c libsplite_la-virtualnetwork.lo: virtualnetwork.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-virtualnetwork.lo -MD -MP -MF $(DEPDIR)/libsplite_la-virtualnetwork.Tpo -c -o libsplite_la-virtualnetwork.lo `test -f 'virtualnetwork.c' || echo '$(srcdir)/'`virtualnetwork.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsplite_la-virtualnetwork.Tpo $(DEPDIR)/libsplite_la-virtualnetwork.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virtualnetwork.c' object='libsplite_la-virtualnetwork.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-virtualnetwork.lo `test -f 'virtualnetwork.c' || echo '$(srcdir)/'`virtualnetwork.c libsplite_la-virtualshape.lo: virtualshape.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-virtualshape.lo -MD -MP -MF $(DEPDIR)/libsplite_la-virtualshape.Tpo -c -o libsplite_la-virtualshape.lo `test -f 'virtualshape.c' || echo '$(srcdir)/'`virtualshape.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsplite_la-virtualshape.Tpo $(DEPDIR)/libsplite_la-virtualshape.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virtualshape.c' object='libsplite_la-virtualshape.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-virtualshape.lo `test -f 'virtualshape.c' || echo '$(srcdir)/'`virtualshape.c libsplite_la-virtualxpath.lo: virtualxpath.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-virtualxpath.lo -MD -MP -MF $(DEPDIR)/libsplite_la-virtualxpath.Tpo -c -o libsplite_la-virtualxpath.lo `test -f 'virtualxpath.c' || echo '$(srcdir)/'`virtualxpath.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsplite_la-virtualxpath.Tpo $(DEPDIR)/libsplite_la-virtualxpath.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virtualxpath.c' object='libsplite_la-virtualxpath.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-virtualxpath.lo `test -f 'virtualxpath.c' || echo '$(srcdir)/'`virtualxpath.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: $(HEADERS) $(SOURCES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES cscopelist ctags \ distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libspatialite-4.1.1/src/spatialite/statistics.c0000664000175000017500000017255012163502133016560 00000000000000/* statistics.c -- helper functions updating internal statistics version 4.1, 2013 May 8 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Pepijn Van Eeckhoudt (implementing Android support) Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #if defined(_WIN32) || defined(WIN32) #include #define isatty _isatty #else #include #endif #include #include #include #include #include #include #ifndef OMIT_GEOS /* including GEOS */ #include #endif #ifndef OMIT_PROJ /* including PROJ.4 */ #include #endif #ifdef _WIN32 #define strcasecmp _stricmp #endif /* not WIN32 */ struct field_item_infos { int ordinal; char *col_name; int null_values; int integer_values; int double_values; int text_values; int blob_values; int max_size; int int_minmax_set; int int_min; int int_max; int dbl_minmax_set; double dbl_min; double dbl_max; struct field_item_infos *next; }; struct field_container_infos { struct field_item_infos *first; struct field_item_infos *last; }; static int do_update_layer_statistics_v4 (sqlite3 * sqlite, const char *table, const char *column, int count, int has_coords, double min_x, double min_y, double max_x, double max_y) { /* update GEOMETRY_COLUMNS_STATISTICS Version >= 4.0.0 */ char sql[8192]; int ret; int error = 0; sqlite3_stmt *stmt; strcpy (sql, "INSERT OR REPLACE INTO geometry_columns_statistics "); strcat (sql, "(f_table_name, f_geometry_column, last_verified, "); strcat (sql, "row_count, extent_min_x, extent_min_y, "); strcat (sql, "extent_max_x, extent_max_y) VALUES (?, ?, "); strcat (sql, "strftime('%Y-%m-%dT%H:%M:%fZ', 'now'), ?, ?, ?, ?, ?)"); /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) return 0; /* binding INSERT params */ sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, table, strlen (table), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, column, strlen (column), SQLITE_STATIC); sqlite3_bind_int (stmt, 3, count); if (has_coords) { sqlite3_bind_double (stmt, 4, min_x); sqlite3_bind_double (stmt, 5, min_y); sqlite3_bind_double (stmt, 6, max_x); sqlite3_bind_double (stmt, 7, max_y); } else { sqlite3_bind_null (stmt, 4); sqlite3_bind_null (stmt, 5); sqlite3_bind_null (stmt, 6); sqlite3_bind_null (stmt, 7); } ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else error = 1; ret = sqlite3_finalize (stmt); if (ret != SQLITE_OK) return 0; if (error) return 0; return 1; } static int do_update_layer_statistics (sqlite3 * sqlite, const char *table, const char *column, int count, int has_coords, double min_x, double min_y, double max_x, double max_y) { /* update LAYER_STATISTICS [single table/geometry] */ char sql[8192]; int ret; int error = 0; sqlite3_stmt *stmt; int metadata_version = checkSpatialMetaData (sqlite); if (metadata_version == 3) { /* current metadata style >= v.4.0.0 */ return do_update_layer_statistics_v4 (sqlite, table, column, count, has_coords, min_x, min_y, max_x, max_y); } if (!check_layer_statistics (sqlite)) return 0; strcpy (sql, "INSERT OR REPLACE INTO layer_statistics "); strcat (sql, "(raster_layer, table_name, geometry_column, "); strcat (sql, "row_count, extent_min_x, extent_min_y, "); strcat (sql, "extent_max_x, extent_max_y) "); strcat (sql, "VALUES (0, ?, ?, ?, ?, ?, ?, ?)"); /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) return 0; /* binding INSERT params */ sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, table, strlen (table), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, column, strlen (column), SQLITE_STATIC); sqlite3_bind_int (stmt, 3, count); if (has_coords) { sqlite3_bind_double (stmt, 4, min_x); sqlite3_bind_double (stmt, 5, min_y); sqlite3_bind_double (stmt, 6, max_x); sqlite3_bind_double (stmt, 7, max_y); } else { sqlite3_bind_null (stmt, 4); sqlite3_bind_null (stmt, 5); sqlite3_bind_null (stmt, 6); sqlite3_bind_null (stmt, 7); } ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else error = 1; ret = sqlite3_finalize (stmt); if (ret != SQLITE_OK) return 0; if (error) return 0; return 1; } static int do_update_views_layer_statistics_v4 (sqlite3 * sqlite, const char *table, const char *column, int count, int has_coords, double min_x, double min_y, double max_x, double max_y) { /* update VIEWS_GEOMETRY_COLUMNS_STATISTICS Version >= 4.0.0 */ char sql[8192]; int ret; int error = 0; sqlite3_stmt *stmt; strcpy (sql, "INSERT OR REPLACE INTO views_geometry_columns_statistics "); strcat (sql, "(view_name, view_geometry, last_verified, "); strcat (sql, "row_count, extent_min_x, extent_min_y, "); strcat (sql, "extent_max_x, extent_max_y) VALUES (?, ?, "); strcat (sql, "strftime('%Y-%m-%dT%H:%M:%fZ', 'now'), ?, ?, ?, ?, ?)"); /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) return 0; /* binding INSERT params */ sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, table, strlen (table), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, column, strlen (column), SQLITE_STATIC); sqlite3_bind_int (stmt, 3, count); if (has_coords) { sqlite3_bind_double (stmt, 4, min_x); sqlite3_bind_double (stmt, 5, min_y); sqlite3_bind_double (stmt, 6, max_x); sqlite3_bind_double (stmt, 7, max_y); } else { sqlite3_bind_null (stmt, 4); sqlite3_bind_null (stmt, 5); sqlite3_bind_null (stmt, 6); sqlite3_bind_null (stmt, 7); } ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else error = 1; ret = sqlite3_finalize (stmt); if (ret != SQLITE_OK) return 0; if (error) return 0; return 1; } static int do_update_views_layer_statistics (sqlite3 * sqlite, const char *table, const char *column, int count, int has_coords, double min_x, double min_y, double max_x, double max_y) { /* update VIEWS_LAYER_STATISTICS [single table/geometry] */ char sql[8192]; int ret; int error = 0; sqlite3_stmt *stmt; int metadata_version = checkSpatialMetaData (sqlite); if (metadata_version == 3) { /* current metadata style >= v.4.0.0 */ return do_update_views_layer_statistics_v4 (sqlite, table, column, count, has_coords, min_x, min_y, max_x, max_y); } if (!check_views_layer_statistics (sqlite)) return 0; strcpy (sql, "INSERT OR REPLACE INTO views_layer_statistics "); strcat (sql, "(view_name, view_geometry, "); strcat (sql, "row_count, extent_min_x, extent_min_y, "); strcat (sql, "extent_max_x, extent_max_y) "); strcat (sql, "VALUES (?, ?, ?, ?, ?, ?, ?)"); /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) return 0; /* binding INSERT params */ sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, table, strlen (table), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, column, strlen (column), SQLITE_STATIC); sqlite3_bind_int (stmt, 3, count); if (has_coords) { sqlite3_bind_double (stmt, 4, min_x); sqlite3_bind_double (stmt, 5, min_y); sqlite3_bind_double (stmt, 6, max_x); sqlite3_bind_double (stmt, 7, max_y); } else { sqlite3_bind_null (stmt, 4); sqlite3_bind_null (stmt, 5); sqlite3_bind_null (stmt, 6); sqlite3_bind_null (stmt, 7); } ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else error = 1; ret = sqlite3_finalize (stmt); if (ret != SQLITE_OK) return 0; if (error) return 0; return 1; } static int do_update_virts_layer_statistics_v4 (sqlite3 * sqlite, const char *table, const char *column, int count, int has_coords, double min_x, double min_y, double max_x, double max_y) { /* update VIRTS_GEOMETRY_COLUMNS_STATISTICS Version >= 4.0.0 */ char sql[8192]; int ret; int error = 0; sqlite3_stmt *stmt; strcpy (sql, "INSERT OR REPLACE INTO virts_geometry_columns_statistics "); strcat (sql, "(virt_name, virt_geometry, last_verified, "); strcat (sql, "row_count, extent_min_x, extent_min_y, "); strcat (sql, "extent_max_x, extent_max_y) VALUES (?, ?, "); strcat (sql, "strftime('%Y-%m-%dT%H:%M:%fZ', 'now'), ?, ?, ?, ?, ?)"); /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) return 0; /* binding INSERT params */ sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, table, strlen (table), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, column, strlen (column), SQLITE_STATIC); sqlite3_bind_int (stmt, 3, count); if (has_coords) { sqlite3_bind_double (stmt, 4, min_x); sqlite3_bind_double (stmt, 5, min_y); sqlite3_bind_double (stmt, 6, max_x); sqlite3_bind_double (stmt, 7, max_y); } else { sqlite3_bind_null (stmt, 4); sqlite3_bind_null (stmt, 5); sqlite3_bind_null (stmt, 6); sqlite3_bind_null (stmt, 7); } ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else error = 1; ret = sqlite3_finalize (stmt); if (ret != SQLITE_OK) return 0; if (error) return 0; return 1; } static int do_update_virts_layer_statistics (sqlite3 * sqlite, const char *table, const char *column, int count, int has_coords, double min_x, double min_y, double max_x, double max_y) { /* update VIRTS_LAYER_STATISTICS [single table/geometry] */ char sql[8192]; int ret; int error = 0; sqlite3_stmt *stmt; int metadata_version = checkSpatialMetaData (sqlite); if (metadata_version == 3) { /* current metadata style >= v.4.0.0 */ return do_update_virts_layer_statistics_v4 (sqlite, table, column, count, has_coords, min_x, min_y, max_x, max_y); } if (!check_virts_layer_statistics (sqlite)) return 0; strcpy (sql, "INSERT OR REPLACE INTO virts_layer_statistics "); strcat (sql, "(virt_name, virt_geometry, "); strcat (sql, "row_count, extent_min_x, extent_min_y, "); strcat (sql, "extent_max_x, extent_max_y) "); strcat (sql, "VALUES (?, ?, ?, ?, ?, ?, ?)"); /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) return 0; /* binding INSERT params */ sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, table, strlen (table), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, column, strlen (column), SQLITE_STATIC); sqlite3_bind_int (stmt, 3, count); if (has_coords) { sqlite3_bind_double (stmt, 4, min_x); sqlite3_bind_double (stmt, 5, min_y); sqlite3_bind_double (stmt, 6, max_x); sqlite3_bind_double (stmt, 7, max_y); } else { sqlite3_bind_null (stmt, 4); sqlite3_bind_null (stmt, 5); sqlite3_bind_null (stmt, 6); sqlite3_bind_null (stmt, 7); } ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else error = 1; ret = sqlite3_finalize (stmt); if (ret != SQLITE_OK) return 0; if (error) return 0; return 1; } static void update_field_infos (struct field_container_infos *infos, int ordinal, const char *col_name, const char *type, int size, int count) { /* updating the field container infos */ int len; struct field_item_infos *p = infos->first; while (p) { if (strcasecmp (col_name, p->col_name) == 0) { /* updating an already defined field */ if (strcasecmp (type, "null") == 0) p->null_values += count; if (strcasecmp (type, "integer") == 0) p->integer_values += count; if (strcasecmp (type, "real") == 0) p->double_values += count; if (strcasecmp (type, "text") == 0) { p->text_values += count; if (size > p->max_size) p->max_size = size; } if (strcasecmp (type, "blob") == 0) { p->blob_values += count; if (size > p->max_size) p->max_size = size; } return; } p = p->next; } /* inserting a new field */ p = malloc (sizeof (struct field_item_infos)); p->ordinal = ordinal; len = strlen (col_name); p->col_name = malloc (len + 1); strcpy (p->col_name, col_name); p->null_values = 0; p->integer_values = 0; p->double_values = 0; p->text_values = 0; p->blob_values = 0; p->max_size = -1; p->int_minmax_set = 0; p->int_min = 0; p->int_max = 0; p->dbl_minmax_set = 0; p->dbl_min = 0.0; p->dbl_max = 0.0; p->next = NULL; if (strcasecmp (type, "null") == 0) p->null_values += count; if (strcasecmp (type, "integer") == 0) p->integer_values += count; if (strcasecmp (type, "real") == 0) p->double_values += count; if (strcasecmp (type, "text") == 0) { p->text_values += count; if (size > p->max_size) p->max_size = size; } if (strcasecmp (type, "blob") == 0) { p->blob_values += count; if (size > p->max_size) p->max_size = size; } if (infos->first == NULL) infos->first = p; if (infos->last != NULL) infos->last->next = p; infos->last = p; } static void update_field_infos_int_minmax (struct field_container_infos *infos, const char *col_name, int int_min, int int_max) { /* updating the field container infos - Int MinMax */ struct field_item_infos *p = infos->first; while (p) { if (strcasecmp (col_name, p->col_name) == 0) { p->int_minmax_set = 1; p->int_min = int_min; p->int_max = int_max; return; } p = p->next; } } static void update_field_infos_double_minmax (struct field_container_infos *infos, const char *col_name, double dbl_min, double dbl_max) { /* updating the field container infos - Double MinMax */ struct field_item_infos *p = infos->first; while (p) { if (strcasecmp (col_name, p->col_name) == 0) { p->dbl_minmax_set = 1; p->dbl_min = dbl_min; p->dbl_max = dbl_max; return; } p = p->next; } } static void free_field_infos (struct field_container_infos *infos) { /* memory cleanup - freeing a field infos container */ struct field_item_infos *p = infos->first; struct field_item_infos *pn; while (p) { /* destroying field items */ pn = p->next; if (p->col_name) free (p->col_name); free (p); p = pn; } } static int do_update_field_infos (sqlite3 * sqlite, const char *table, const char *column, struct field_container_infos *infos) { /* update GEOMETRY_COLUMNS_FIELD_INFOS Version >= 4.0.0 */ char sql[8192]; char *sql_statement; int ret; int error = 0; sqlite3_stmt *stmt; struct field_item_infos *p = infos->first; /* deleting any previous row */ sql_statement = sqlite3_mprintf ("DELETE FROM geometry_columns_field_infos " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", table, column); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) return 0; /* reinserting yet again */ strcpy (sql, "INSERT INTO geometry_columns_field_infos "); strcat (sql, "(f_table_name, f_geometry_column, ordinal, "); strcat (sql, "column_name, null_values, integer_values, "); strcat (sql, "double_values, text_values, blob_values, max_size, "); strcat (sql, "integer_min, integer_max, double_min, double_max) "); strcat (sql, "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"); /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) return 0; while (p) { /* binding INSERT params */ sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, table, strlen (table), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, column, strlen (column), SQLITE_STATIC); sqlite3_bind_int (stmt, 3, p->ordinal); sqlite3_bind_text (stmt, 4, p->col_name, strlen (p->col_name), SQLITE_STATIC); sqlite3_bind_int (stmt, 5, p->null_values); sqlite3_bind_int (stmt, 6, p->integer_values); sqlite3_bind_int (stmt, 7, p->double_values); sqlite3_bind_int (stmt, 8, p->text_values); sqlite3_bind_int (stmt, 9, p->blob_values); if (p->max_size < 0) sqlite3_bind_null (stmt, 10); else sqlite3_bind_int (stmt, 10, p->max_size); if (p->int_minmax_set) { sqlite3_bind_int (stmt, 11, p->int_min); sqlite3_bind_int (stmt, 12, p->int_max); } else { sqlite3_bind_null (stmt, 11); sqlite3_bind_null (stmt, 12); } if (p->dbl_minmax_set) { sqlite3_bind_double (stmt, 13, p->dbl_min); sqlite3_bind_double (stmt, 14, p->dbl_max); } else { sqlite3_bind_null (stmt, 13); sqlite3_bind_null (stmt, 14); } ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else error = 1; p = p->next; } ret = sqlite3_finalize (stmt); if (ret != SQLITE_OK) return 0; if (error) return 0; return 1; } static int do_update_views_field_infos (sqlite3 * sqlite, const char *table, const char *column, struct field_container_infos *infos) { /* update VIEW_GEOMETRY_COLUMNS_FIELD_INFOS Version >= 4.0.0 */ char sql[8192]; char *sql_statement; int ret; int error = 0; sqlite3_stmt *stmt; struct field_item_infos *p = infos->first; /* deleting any previous row */ sql_statement = sqlite3_mprintf ("DELETE FROM views_geometry_columns_field_infos " "WHERE Lower(view_name) = Lower(%Q) AND " "Lower(view_geometry) = Lower(%Q)", table, column); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) return 0; /* reinserting yet again */ strcpy (sql, "INSERT INTO views_geometry_columns_field_infos "); strcat (sql, "(view_name, view_geometry, ordinal, "); strcat (sql, "column_name, null_values, integer_values, "); strcat (sql, "double_values, text_values, blob_values, max_size, "); strcat (sql, "integer_min, integer_max, double_min, double_max) "); strcat (sql, "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"); /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) return 0; while (p) { /* binding INSERT params */ sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, table, strlen (table), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, column, strlen (column), SQLITE_STATIC); sqlite3_bind_int (stmt, 3, p->ordinal); sqlite3_bind_text (stmt, 4, p->col_name, strlen (p->col_name), SQLITE_STATIC); sqlite3_bind_int (stmt, 5, p->null_values); sqlite3_bind_int (stmt, 6, p->integer_values); sqlite3_bind_int (stmt, 7, p->double_values); sqlite3_bind_int (stmt, 8, p->text_values); sqlite3_bind_int (stmt, 9, p->blob_values); if (p->max_size < 0) sqlite3_bind_null (stmt, 10); else sqlite3_bind_int (stmt, 10, p->max_size); if (p->int_minmax_set) { sqlite3_bind_int (stmt, 11, p->int_min); sqlite3_bind_int (stmt, 12, p->int_max); } else { sqlite3_bind_null (stmt, 11); sqlite3_bind_null (stmt, 12); } if (p->dbl_minmax_set) { sqlite3_bind_double (stmt, 13, p->dbl_min); sqlite3_bind_double (stmt, 14, p->dbl_max); } else { sqlite3_bind_null (stmt, 13); sqlite3_bind_null (stmt, 14); } ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else error = 1; p = p->next; } ret = sqlite3_finalize (stmt); if (ret != SQLITE_OK) return 0; if (error) return 0; return 1; } static int do_update_virts_field_infos (sqlite3 * sqlite, const char *table, const char *column, struct field_container_infos *infos) { /* update VIRTS_GEOMETRY_COLUMNS_FIELD_INFOS Version >= 4.0.0 */ char sql[8192]; char *sql_statement; int ret; int error = 0; sqlite3_stmt *stmt; struct field_item_infos *p = infos->first; /* deleting any previous row */ sql_statement = sqlite3_mprintf ("DELETE FROM virts_geometry_columns_field_infos " "WHERE Lower(virt_name) = Lower(%Q) AND " "Lower(virt_geometry) = Lower(%Q)", table, column); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) return 0; /* reinserting yet again */ strcpy (sql, "INSERT INTO virts_geometry_columns_field_infos "); strcat (sql, "(virt_name, virt_geometry, ordinal, "); strcat (sql, "column_name, null_values, integer_values, "); strcat (sql, "double_values, text_values, blob_values, max_size, "); strcat (sql, "integer_min, integer_max, double_min, double_max) "); strcat (sql, "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"); /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) return 0; while (p) { /* binding INSERT params */ sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, table, strlen (table), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, column, strlen (column), SQLITE_STATIC); sqlite3_bind_int (stmt, 3, p->ordinal); sqlite3_bind_text (stmt, 4, p->col_name, strlen (p->col_name), SQLITE_STATIC); sqlite3_bind_int (stmt, 5, p->null_values); sqlite3_bind_int (stmt, 6, p->integer_values); sqlite3_bind_int (stmt, 7, p->double_values); sqlite3_bind_int (stmt, 8, p->text_values); sqlite3_bind_int (stmt, 9, p->blob_values); if (p->max_size < 0) sqlite3_bind_null (stmt, 10); else sqlite3_bind_int (stmt, 10, p->max_size); if (p->int_minmax_set) { sqlite3_bind_int (stmt, 11, p->int_min); sqlite3_bind_int (stmt, 12, p->int_max); } else { sqlite3_bind_null (stmt, 11); sqlite3_bind_null (stmt, 12); } if (p->dbl_minmax_set) { sqlite3_bind_double (stmt, 13, p->dbl_min); sqlite3_bind_double (stmt, 14, p->dbl_max); } else { sqlite3_bind_null (stmt, 13); sqlite3_bind_null (stmt, 14); } ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else error = 1; p = p->next; } ret = sqlite3_finalize (stmt); if (ret != SQLITE_OK) return 0; if (error) return 0; return 1; } static int do_compute_minmax (sqlite3 * sqlite, const char *table, struct field_container_infos *infos) { /* Pass2 - computing Integer / Double min/max ranges */ char *quoted; char *sql_statement; int int_min; int int_max; double dbl_min; double dbl_max; int ret; int i; int c; char **results; int rows; int columns; const char *col_name; int is_double; int comma = 0; int empty = 1; gaiaOutBuffer out_buf; struct field_item_infos *ptr; gaiaOutBufferInitialize (&out_buf); gaiaAppendToOutBuffer (&out_buf, "SELECT DISTINCT "); ptr = infos->first; while (ptr) { quoted = gaiaDoubleQuotedSql (ptr->col_name); if (ptr->integer_values >= 0 && ptr->double_values == 0 && ptr->blob_values == 0 && ptr->text_values == 0) { if (comma) sql_statement = sqlite3_mprintf (", 0, %Q, min(\"%s\"), max(\"%s\")", ptr->col_name, quoted, quoted); else { comma = 1; sql_statement = sqlite3_mprintf (" 0, %Q, min(\"%s\"), max(\"%s\")", ptr->col_name, quoted, quoted); } gaiaAppendToOutBuffer (&out_buf, sql_statement); sqlite3_free (sql_statement); empty = 0; } if (ptr->double_values >= 0 && ptr->integer_values == 0 && ptr->blob_values == 0 && ptr->text_values == 0) { if (comma) sql_statement = sqlite3_mprintf (", 1, %Q, min(\"%s\"), max(\"%s\")", ptr->col_name, quoted, quoted); else { comma = 1; sql_statement = sqlite3_mprintf (" 1, %Q, min(\"%s\"), max(\"%s\")", ptr->col_name, quoted, quoted); } gaiaAppendToOutBuffer (&out_buf, sql_statement); sqlite3_free (sql_statement); empty = 0; } free (quoted); ptr = ptr->next; } if (out_buf.Buffer == NULL) return 0; if (empty) { /* no columns to check */ gaiaOutBufferReset (&out_buf); return 1; } quoted = gaiaDoubleQuotedSql (table); sql_statement = sqlite3_mprintf (" FROM \"%s\"", quoted); free (quoted); gaiaAppendToOutBuffer (&out_buf, sql_statement); sqlite3_free (sql_statement); /* executing the SQL query */ ret = sqlite3_get_table (sqlite, out_buf.Buffer, &results, &rows, &columns, NULL); gaiaOutBufferReset (&out_buf); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { for (c = 0; c < columns; c += 4) { /* retrieving field infos */ is_double = atoi (results[(i * columns) + c + 0]); col_name = results[(i * columns) + c + 1]; if (results[(i * columns) + c + 2] != NULL && results[(i * columns) + c + 3] != NULL) { if (!is_double) { int_min = atoi (results[(i * columns) + c + 2]); int_max = atoi (results[(i * columns) + c + 3]); update_field_infos_int_minmax (infos, col_name, int_min, int_max); } else { dbl_min = atof (results[(i * columns) + c + 2]); dbl_max = atof (results[(i * columns) + c + 3]); update_field_infos_double_minmax (infos, col_name, dbl_min, dbl_max); } } } } } sqlite3_free_table (results); return 1; } static void copy_attributes_into_layer (struct field_container_infos *infos, gaiaVectorLayerPtr lyr) { /* copying the AttributeField definitions into the VectorLayer */ gaiaLayerAttributeFieldPtr fld; int len; struct field_item_infos *p = infos->first; while (p) { /* adding an AttributeField definition */ fld = malloc (sizeof (gaiaLayerAttributeField)); fld->Ordinal = p->ordinal; len = strlen (p->col_name); fld->AttributeFieldName = malloc (len + 1); strcpy (fld->AttributeFieldName, p->col_name); fld->NullValuesCount = p->null_values; fld->IntegerValuesCount = p->integer_values; fld->DoubleValuesCount = p->double_values; fld->TextValuesCount = p->text_values; fld->BlobValuesCount = p->blob_values; fld->MaxSize = NULL; fld->IntRange = NULL; fld->DoubleRange = NULL; if (p->max_size) { fld->MaxSize = malloc (sizeof (gaiaAttributeFieldMaxSize)); fld->MaxSize->MaxSize = p->max_size; } if (p->int_minmax_set) { fld->IntRange = malloc (sizeof (gaiaAttributeFieldIntRange)); fld->IntRange->MinValue = p->int_min; fld->IntRange->MaxValue = p->int_max; } if (p->dbl_minmax_set) { fld->DoubleRange = malloc (sizeof (gaiaAttributeFieldDoubleRange)); fld->DoubleRange->MinValue = p->dbl_min; fld->DoubleRange->MaxValue = p->dbl_max; } fld->Next = NULL; if (lyr->First == NULL) lyr->First = fld; if (lyr->Last != NULL) lyr->Last->Next = fld; lyr->Last = fld; p = p->next; } } SPATIALITE_PRIVATE int doComputeFieldInfos (void *p_sqlite, const char *table, const char *column, int stat_type, void *p_lyr) { /* computes FIELD_INFOS [single table/geometry] */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; gaiaVectorLayerPtr lyr = (gaiaVectorLayerPtr) p_lyr; char *sql_statement; char *quoted; int ret; int i; int c; char **results; int rows; int columns; int ordinal; const char *col_name; const char *type; const char *sz; int size; int count; int error = 0; int comma = 0; gaiaOutBuffer out_buf; gaiaOutBuffer group_by; struct field_container_infos infos; gaiaOutBufferInitialize (&out_buf); gaiaOutBufferInitialize (&group_by); infos.first = NULL; infos.last = NULL; /* retrieving the column names for the current table */ /* then building the SQL query statement */ quoted = gaiaDoubleQuotedSql (table); sql_statement = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", quoted); free (quoted); ret = sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { gaiaAppendToOutBuffer (&out_buf, "SELECT DISTINCT Count(*)"); gaiaAppendToOutBuffer (&group_by, "GROUP BY"); for (i = 1; i <= rows; i++) { ordinal = atoi (results[(i * columns) + 0]); col_name = results[(i * columns) + 1]; quoted = gaiaDoubleQuotedSql (col_name); sql_statement = sqlite3_mprintf (", %d, %Q AS col_%d, typeof(\"%s\") AS typ_%d, max(length(\"%s\"))", ordinal, col_name, ordinal, quoted, ordinal, quoted); free (quoted); gaiaAppendToOutBuffer (&out_buf, sql_statement); sqlite3_free (sql_statement); if (!comma) { comma = 1; sql_statement = sqlite3_mprintf (" col_%d, typ_%d", ordinal, ordinal); } else sql_statement = sqlite3_mprintf (", col_%d, typ_%d", ordinal, ordinal); gaiaAppendToOutBuffer (&group_by, sql_statement); sqlite3_free (sql_statement); } } sqlite3_free_table (results); if (out_buf.Buffer == NULL) return 0; quoted = gaiaDoubleQuotedSql (table); sql_statement = sqlite3_mprintf (" FROM \"%s\" ", quoted); free (quoted); gaiaAppendToOutBuffer (&out_buf, sql_statement); sqlite3_free (sql_statement); gaiaAppendToOutBuffer (&out_buf, group_by.Buffer); gaiaOutBufferReset (&group_by); /* executing the SQL query */ ret = sqlite3_get_table (sqlite, out_buf.Buffer, &results, &rows, &columns, NULL); gaiaOutBufferReset (&out_buf); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { count = atoi (results[(i * columns) + 0]); for (c = 1; c < columns; c += 4) { /* retrieving field infos */ ordinal = atoi (results[(i * columns) + c + 0]); col_name = results[(i * columns) + c + 1]; type = results[(i * columns) + c + 2]; sz = results[(i * columns) + c + 3]; if (sz == NULL) size = -1; else size = atoi (sz); update_field_infos (&infos, ordinal, col_name, type, size, count); } } } sqlite3_free_table (results); /* Pass-2: computing INTEGER and DOUBLE min/max ranges */ if (!error) { if (!do_compute_minmax (sqlite, table, &infos)) error = 1; } switch (stat_type) { case SPATIALITE_STATISTICS_LEGACY: if (!error) copy_attributes_into_layer (&infos, lyr); free_field_infos (&infos); if (error) return 0; return 1; break; case SPATIALITE_STATISTICS_GENUINE: if (!do_update_field_infos (sqlite, table, column, &infos)) error = 1; break; case SPATIALITE_STATISTICS_VIEWS: if (!do_update_views_field_infos (sqlite, table, column, &infos)) error = 1; break; case SPATIALITE_STATISTICS_VIRTS: if (!do_update_virts_field_infos (sqlite, table, column, &infos)) error = 1; break; }; free_field_infos (&infos); if (error) return 0; return 1; } static int do_compute_layer_statistics (sqlite3 * sqlite, const char *table, const char *column, int stat_type) { /* computes LAYER_STATISTICS [single table/geometry] */ int ret; int error = 0; int count; double min_x; double min_y; double max_x; double max_y; int has_coords = 1; char *quoted; char *col_quoted; char *sql_statement; sqlite3_stmt *stmt; int metadata_version = checkSpatialMetaData (sqlite); quoted = gaiaDoubleQuotedSql ((const char *) table); col_quoted = gaiaDoubleQuotedSql ((const char *) column); sql_statement = sqlite3_mprintf ("SELECT Count(*), " "Min(MbrMinX(\"%s\")), Min(MbrMinY(\"%s\")), Max(MbrMaxX(\"%s\")), Max(MbrMaxY(\"%s\")) " "FROM \"%s\"", col_quoted, col_quoted, col_quoted, col_quoted, quoted); free (quoted); free (col_quoted); /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) return 0; while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { count = sqlite3_column_int (stmt, 0); if (sqlite3_column_type (stmt, 1) == SQLITE_NULL) has_coords = 0; else min_x = sqlite3_column_double (stmt, 1); if (sqlite3_column_type (stmt, 2) == SQLITE_NULL) has_coords = 0; else min_y = sqlite3_column_double (stmt, 2); if (sqlite3_column_type (stmt, 3) == SQLITE_NULL) has_coords = 0; else max_x = sqlite3_column_double (stmt, 3); if (sqlite3_column_type (stmt, 4) == SQLITE_NULL) has_coords = 0; else max_y = sqlite3_column_double (stmt, 4); switch (stat_type) { case SPATIALITE_STATISTICS_GENUINE: if (!do_update_layer_statistics (sqlite, table, column, count, has_coords, min_x, min_y, max_x, max_y)) error = 1; break; case SPATIALITE_STATISTICS_VIEWS: if (!do_update_views_layer_statistics (sqlite, table, column, count, has_coords, min_x, min_y, max_x, max_y)) error = 1; break; case SPATIALITE_STATISTICS_VIRTS: if (!do_update_virts_layer_statistics (sqlite, table, column, count, has_coords, min_x, min_y, max_x, max_y)) error = 1; break; }; } else error = 1; } ret = sqlite3_finalize (stmt); if (ret != SQLITE_OK) return 0; if (error) return 0; if (metadata_version == 3) { /* current metadata style >= v.4.0.0 */ if (!doComputeFieldInfos (sqlite, table, column, stat_type, NULL)) return 0; } return 1; } static int genuine_layer_statistics_v4 (sqlite3 * sqlite, const char *table, const char *column) { /* updating GEOMETRY_COLUMNS_STATISTICS Version >= 4.0.0 */ char *sql_statement; int ret; const char *f_table_name; const char *f_geometry_column; int i; char **results; int rows; int columns; int error = 0; if (table == NULL && column == NULL) { /* processing any table/geometry found in GEOMETRY_COLUMNS */ sql_statement = sqlite3_mprintf ("SELECT t.f_table_name, t.f_geometry_column " "FROM geometry_columns_time AS t, " "geometry_columns_statistics AS s " "WHERE Lower(s.f_table_name) = Lower(t.f_table_name) AND " "Lower(s.f_geometry_column) = Lower(t.f_geometry_column) AND " "(s.last_verified < t.last_insert OR " "s.last_verified < t.last_update OR " "s.last_verified < t.last_delete OR " "s.last_verified IS NULL)"); } else if (column == NULL) { /* processing any geometry belonging to this table */ sql_statement = sqlite3_mprintf ("SELECT t.f_table_name, t.f_geometry_column " "FROM geometry_columns_time AS t, " "geometry_columns_statistics AS s " "WHERE Lower(t.f_table_name) = Lower(%Q) AND " "Lower(s.f_table_name) = Lower(t.f_table_name) AND " "Lower(s.f_geometry_column) = Lower(t.f_geometry_column) AND " "(s.last_verified < t.last_insert OR " "s.last_verified < t.last_update OR " "s.last_verified < t.last_delete OR " "s.last_verified IS NULL)", table); } else { /* processing a single table/geometry entry */ sql_statement = sqlite3_mprintf ("SELECT t.f_table_name, t.f_geometry_column " "FROM geometry_columns_time AS t, " "geometry_columns_statistics AS s " "WHERE Lower(t.f_table_name) = Lower(%Q) AND " "Lower(t.f_geometry_column) = Lower(%Q) AND " "Lower(s.f_table_name) = Lower(t.f_table_name) AND " "Lower(s.f_geometry_column) = Lower(t.f_geometry_column) AND " "(s.last_verified < t.last_insert OR " "s.last_verified < t.last_update OR " "s.last_verified < t.last_delete OR " "s.last_verified IS NULL)", table, column); } ret = sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { f_table_name = results[(i * columns) + 0]; f_geometry_column = results[(i * columns) + 1]; if (!do_compute_layer_statistics (sqlite, f_table_name, f_geometry_column, SPATIALITE_STATISTICS_GENUINE)) { error = 1; break; } } } sqlite3_free_table (results); if (error) return 0; return 1; } static int genuine_layer_statistics (sqlite3 * sqlite, const char *table, const char *column) { /* updating genuine LAYER_STATISTICS metadata */ char *sql_statement; int ret; const char *f_table_name; const char *f_geometry_column; int i; char **results; int rows; int columns; int error = 0; int metadata_version = checkSpatialMetaData (sqlite); if (metadata_version == 3) { /* current metadata style >= v.4.0.0 */ return genuine_layer_statistics_v4 (sqlite, table, column); } if (table == NULL && column == NULL) { /* processing any table/geometry found in GEOMETRY_COLUMNS */ sql_statement = sqlite3_mprintf ("SELECT f_table_name, f_geometry_column " "FROM geometry_columns"); } else if (column == NULL) { /* processing any geometry belonging to this table */ sql_statement = sqlite3_mprintf ("SELECT f_table_name, f_geometry_column " "FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q)", table); } else { /* processing a single table/geometry entry */ sql_statement = sqlite3_mprintf ("SELECT f_table_name, f_geometry_column " "FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q) " "AND Lower(f_geometry_column) = Lower(%Q)", table, column); } ret = sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { f_table_name = results[(i * columns) + 0]; f_geometry_column = results[(i * columns) + 1]; if (!do_compute_layer_statistics (sqlite, f_table_name, f_geometry_column, SPATIALITE_STATISTICS_GENUINE)) { error = 1; break; } } } sqlite3_free_table (results); if (error) return 0; return 1; } static int views_layer_statistics (sqlite3 * sqlite, const char *table, const char *column) { /* updating VIEWS_LAYER_STATISTICS metadata */ char *sql_statement; int ret; const char *view_name; const char *view_geometry; int i; char **results; int rows; int columns; int error = 0; if (table == NULL && column == NULL) { /* processing any table/geometry found in VIEWS_GEOMETRY_COLUMNS */ sql_statement = sqlite3_mprintf ("SELECT view_name, view_geometry " "FROM views_geometry_columns"); } else if (column == NULL) { /* processing any geometry belonging to this table */ sql_statement = sqlite3_mprintf ("SELECT view_name, view_geometry " "FROM views_geometry_columns " "WHERE Lower(view_name) = Lower(%Q)", table); } else { /* processing a single table/geometry entry */ sql_statement = sqlite3_mprintf ("SELECT view_name, view_geometry " "FROM views_geometry_columns " "WHERE Lower(view_name) = Lower(%Q) " "AND Lower(view_geometry) = Lower(%Q)", table, column); } ret = sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { view_name = results[(i * columns) + 0]; view_geometry = results[(i * columns) + 1]; if (!do_compute_layer_statistics (sqlite, view_name, view_geometry, SPATIALITE_STATISTICS_VIEWS)) { error = 1; break; } } } sqlite3_free_table (results); if (error) return 0; return 1; } static int virts_layer_statistics (sqlite3 * sqlite, const char *table, const char *column) { /* updating VIRTS_LAYER_STATISTICS metadata */ char *sql_statement; int ret; const char *f_table_name; const char *f_geometry_column; int i; char **results; int rows; int columns; int error = 0; if (table == NULL && column == NULL) { /* processing any table/geometry found in VIRTS_GEOMETRY_COLUMNS */ sql_statement = sqlite3_mprintf ("SELECT virt_name, virt_geometry " "FROM virts_geometry_columns"); } else if (column == NULL) { /* processing any geometry belonging to this table */ sql_statement = sqlite3_mprintf ("SELECT virt_name, virt_geometry " "FROM virts_geometry_columns " "WHERE Lower(virt_name) = Lower(%Q)", table); } else { /* processing a single table/geometry entry */ sql_statement = sqlite3_mprintf ("SELECT virt_name, virt_geometry " "FROM virts_geometry_columns " "WHERE Lower(virt_name) = Lower(%Q) " "AND Lower(virt_geometry) = Lower(%Q)", table, column); } ret = sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { f_table_name = results[(i * columns) + 0]; f_geometry_column = results[(i * columns) + 1]; if (!do_compute_layer_statistics (sqlite, f_table_name, f_geometry_column, SPATIALITE_STATISTICS_VIRTS)) { error = 1; break; } } } sqlite3_free_table (results); if (error) return 0; return 1; } static int has_views_metadata (sqlite3 * sqlite) { /* testing if the VIEWS_GEOMETRY_COLUMNS table exists */ char **results; int rows; int columns; int ret; int i; int defined = 0; ret = sqlite3_get_table (sqlite, "PRAGMA table_info(views_geometry_columns)", &results, &rows, &columns, NULL); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) defined = 1; } sqlite3_free_table (results); return defined; } static int has_virts_metadata (sqlite3 * sqlite) { /* testing if the VIRTS_GEOMETRY_COLUMNS table exists */ char **results; int rows; int columns; int ret; int i; int defined = 0; ret = sqlite3_get_table (sqlite, "PRAGMA table_info(virts_geometry_columns)", &results, &rows, &columns, NULL); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) defined = 1; } sqlite3_free_table (results); return defined; } SPATIALITE_DECLARE int update_layer_statistics (sqlite3 * sqlite, const char *table, const char *column) { /* updating LAYER_STATISTICS metadata [main] */ if (!genuine_layer_statistics (sqlite, table, column)) return 0; if (has_views_metadata (sqlite)) { if (!views_layer_statistics (sqlite, table, column)) return 0; } if (has_virts_metadata (sqlite)) { if (!virts_layer_statistics (sqlite, table, column)) return 0; } return 1; } struct drop_params { /* a struct supporting Drop Table */ char **rtrees; int n_rtrees; int is_view; int ok_geometry_columns; int ok_views_geometry_columns; int ok_virts_geometry_columns; int ok_geometry_columns_auth; int ok_geometry_columns_field_infos; int ok_geometry_columns_statistics; int ok_views_geometry_columns_auth; int ok_views_geometry_columns_field_infos; int ok_views_geometry_columns_statistics; int ok_virts_geometry_columns_auth; int ok_virts_geometry_columns_field_infos; int ok_virts_geometry_columns_statistics; int ok_layer_statistics; int ok_views_layer_statistics; int ok_virts_layer_statistics; int ok_layer_params; int ok_layer_sub_classes; int ok_layer_table_layout; }; static int do_drop_table (sqlite3 * sqlite, const char *table, struct drop_params *aux) { /* performing the actual work */ char *sql; char *q_name; int i; if (aux->is_view) { /* dropping a View */ q_name = gaiaDoubleQuotedSql (table); sql = sqlite3_mprintf ("DROP VIEW IF EXISTS \"%s\"", q_name); free (q_name); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } else { /* dropping a Table */ q_name = gaiaDoubleQuotedSql (table); sql = sqlite3_mprintf ("DROP TABLE IF EXISTS \"%s\"", q_name); free (q_name); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } for (i = 0; i < aux->n_rtrees; i++) { /* dropping any R*Tree */ q_name = gaiaDoubleQuotedSql (*(aux->rtrees + i)); sql = sqlite3_mprintf ("DROP TABLE IF EXISTS \"%s\"", q_name); free (q_name); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } if (aux->ok_layer_params) { /* deleting from LAYER_PARAMS */ sql = sqlite3_mprintf ("DELETE FROM layer_params " "WHERE lower(table_name) = lower(%Q)", table); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } if (aux->ok_layer_sub_classes) { /* deleting from LAYER_SUB_CLASSES */ sql = sqlite3_mprintf ("DELETE FROM layer_sub_classes " "WHERE lower(table_name) = lower(%Q)", table); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } if (aux->ok_layer_table_layout) { /* deleting from LAYER_TABLE_LAYOUT */ sql = sqlite3_mprintf ("DELETE FROM layer_table_layout " "WHERE lower(table_name) = lower(%Q)", table); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } if (aux->ok_geometry_columns_auth) { /* deleting from GEOMETRY_COLUMNS_AUTH */ sql = sqlite3_mprintf ("DELETE FROM geometry_columns_auth " "WHERE lower(f_table_name) = lower(%Q)", table); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } if (aux->ok_geometry_columns_field_infos) { /* deleting from GEOMETRY_COLUMNS_FIELD_INFOS */ sql = sqlite3_mprintf ("DELETE FROM geometry_columns_fiels_infos " "WHERE lower(f_table_name) = lower(%Q)", table); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } if (aux->ok_geometry_columns_statistics) { /* deleting from GEOMETRY_COLUMNS_STATISTICS */ sql = sqlite3_mprintf ("DELETE FROM geometry_columns_statistics " "WHERE lower(f_table_name) = lower(%Q)", table); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } if (aux->ok_views_geometry_columns_auth) { /* deleting from VIEWS_GEOMETRY_COLUMNS_AUTH */ sql = sqlite3_mprintf ("DELETE FROM views_geometry_columns_auth " "WHERE lower(view_name) = lower(%Q)", table); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } if (aux->ok_views_geometry_columns_field_infos) { /* deleting from VIEWS_GEOMETRY_COLUMNS_FIELD_INFOS */ sql = sqlite3_mprintf ("DELETE FROM views_geometry_columns_fiels_infos " "WHERE view_name = %Q", table); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } if (aux->ok_views_geometry_columns_statistics) { /* deleting from VIEWS_GEOMETRY_COLUMNS_STATISTICS */ sql = sqlite3_mprintf ("DELETE FROM views_geometry_columns_statistics " "WHERE lower(view_name) = lower(%Q)", table); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } if (aux->ok_virts_geometry_columns_auth) { /* deleting from VIRTS_GEOMETRY_COLUMNS_AUTH */ sql = sqlite3_mprintf ("DELETE FROM virts_geometry_columns_auth " "WHERE lower(virt_name) = lower(%Q)", table); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } if (aux->ok_virts_geometry_columns_field_infos) { /* deleting from VIRTS_GEOMETRY_COLUMNS_FIELD_INFOS */ sql = sqlite3_mprintf ("DELETE FROM virts_geometry_columns_fiels_infos " "WHERE lower(virt_name) = lower(%Q)", table); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } if (aux->ok_virts_geometry_columns_statistics) { /* deleting from VIRTS_GEOMETRY_COLUMNS_STATISTICS */ sql = sqlite3_mprintf ("DELETE FROM virts_geometry_columns_statistics " "WHERE lower(virt_name) = lower(%Q)", table); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } if (aux->ok_layer_statistics) { /* deleting from LAYER_STATISTICS */ sql = sqlite3_mprintf ("DELETE FROM layer_statistics " "WHERE lower(table_name) = lower(%Q)", table); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } if (aux->ok_views_layer_statistics) { /* deleting from VIEWS_LAYER_STATISTICS */ sql = sqlite3_mprintf ("DELETE FROM views_layer_statistics " "WHERE lower(view_name) = lower(%Q)", table); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } if (aux->ok_virts_layer_statistics) { /* deleting from VIRTS_LAYER_STATISTICS */ sql = sqlite3_mprintf ("DELETE FROM virts_layer_statistics " "WHERE lower(virt_name) = lower(%Q)", table); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } if (aux->ok_geometry_columns) { /* deleting from GEOMETRY_COLUMNS */ sql = sqlite3_mprintf ("DELETE FROM geometry_columns " "WHERE lower(f_table_name) = lower(%Q)", table); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } if (aux->ok_views_geometry_columns) { /* deleting from VIEWS_GEOMETRY_COLUMNS */ sql = sqlite3_mprintf ("DELETE FROM views_geometry_columns " "WHERE lower(view_name) = lower(%Q)", table); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } if (aux->ok_virts_geometry_columns) { /* deleting from VIEWS_GEOMETRY_COLUMNS */ sql = sqlite3_mprintf ("DELETE FROM virts_geometry_columns " "WHERE lower(virt_name) = lower(%Q)", table); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } return 1; } static int do_drop_sub_view (sqlite3 * sqlite, const char *table, struct drop_params *aux) { /* dropping any depending View */ int ret; int i; char **results; int rows; int columns; char *sql; struct drop_params aux2; /* initializing the aux params */ aux2.rtrees = NULL; aux2.n_rtrees = 0; aux2.is_view = 1; aux2.ok_geometry_columns = 0; aux2.ok_views_geometry_columns = aux->ok_views_geometry_columns; aux2.ok_virts_geometry_columns = aux->ok_virts_geometry_columns; aux2.ok_geometry_columns_auth = aux->ok_geometry_columns_auth; aux2.ok_geometry_columns_field_infos = aux->ok_geometry_columns_field_infos; aux2.ok_geometry_columns_statistics = aux->ok_geometry_columns_statistics; aux2.ok_views_geometry_columns_auth = aux->ok_views_geometry_columns_auth; aux2.ok_views_geometry_columns_field_infos = aux->ok_views_geometry_columns_field_infos; aux2.ok_views_geometry_columns_statistics = aux->ok_views_geometry_columns_statistics; aux2.ok_virts_geometry_columns_auth = aux->ok_virts_geometry_columns_auth; aux2.ok_virts_geometry_columns_field_infos = aux->ok_virts_geometry_columns_field_infos; aux2.ok_virts_geometry_columns_statistics = aux->ok_virts_geometry_columns_statistics; aux2.ok_layer_statistics = aux->ok_layer_statistics; aux2.ok_views_layer_statistics = aux->ok_views_layer_statistics; aux2.ok_virts_layer_statistics = aux->ok_virts_layer_statistics; aux2.ok_layer_params = aux->ok_layer_params; aux2.ok_layer_sub_classes = aux->ok_layer_sub_classes; aux2.ok_layer_table_layout = aux->ok_layer_table_layout; if (aux->ok_views_geometry_columns == 0) return 1; /* identifying any View depending on the target */ sql = sqlite3_mprintf ("SELECT view_name FROM views_geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q)", table); ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { const char *name = results[(i * columns) + 0]; /* dropping the view itself */ if (!do_drop_table (sqlite, name, &aux2)) return 0; } } sqlite3_free_table (results); return 1; } static int check_drop_layout (sqlite3 * sqlite, const char *table, struct drop_params *aux) { /* checking the actual DB configuration */ int i; char **results; int rows; int columns; char jolly = '%'; char *x_name; char *sql = "SELECT type, name FROM sqlite_master WHERE type = 'table' or type = 'view'"; int ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL); if (ret != SQLITE_OK) return 0; if (rows < 1) ret = 0; else { ret = 1; for (i = 1; i <= rows; i++) { const char *type = results[(i * columns) + 0]; const char *name = results[(i * columns) + 1]; if (name) { /* checking which tables are actually defined */ if (strcasecmp (name, "geometry_columns") == 0) aux->ok_geometry_columns = 1; if (strcasecmp (name, "views_geometry_columns") == 0) aux->ok_views_geometry_columns = 1; if (strcasecmp (name, "virts_geometry_columns") == 0) aux->ok_virts_geometry_columns = 1; if (strcasecmp (name, "geometry_columns_auth") == 0) aux->ok_geometry_columns_auth = 1; if (strcasecmp (name, "views_geometry_columns_auth") == 0) aux->ok_views_geometry_columns_auth = 1; if (strcasecmp (name, "virts_geometry_columns_auth") == 0) aux->ok_virts_geometry_columns_auth = 1; if (strcasecmp (name, "geometry_columns_statistics") == 0) aux->ok_geometry_columns_statistics = 1; if (strcasecmp (name, "views_geometry_columns_statistics") == 0) aux->ok_views_geometry_columns_statistics = 1; if (strcasecmp (name, "virts_geometry_columns_statistics") == 0) aux->ok_virts_geometry_columns_statistics = 1; if (strcasecmp (name, "geometry_columns_field_infos") == 0) aux->ok_geometry_columns_field_infos = 1; if (strcasecmp (name, "views_geometry_columns_field_infos") == 0) aux->ok_views_geometry_columns_field_infos = 1; if (strcasecmp (name, "virts_geometry_columns_field_infos") == 0) aux->ok_virts_geometry_columns_field_infos = 1; if (strcasecmp (name, "layer_params") == 0) aux->ok_layer_params = 1; if (strcasecmp (name, "layer_statistics") == 0) aux->ok_layer_statistics = 1; if (strcasecmp (name, "layer_sub_classes") == 0) aux->ok_layer_sub_classes = 1; if (strcasecmp (name, "layer_table_layout") == 0) aux->ok_layer_table_layout = 1; if (strcasecmp (name, "views_geometry_columns") == 0) aux->ok_views_geometry_columns = 1; if (strcasecmp (name, "virts_geometry_columns") == 0) aux->ok_virts_geometry_columns = 1; if (strcasecmp (name, "virts_geometry_columns") == 0) aux->ok_virts_geometry_columns = 1; if (strcasecmp (name, table) == 0) { /* checking if the target is a view */ if (strcasecmp (type, "view") == 0) aux->is_view = 1; } } } } sqlite3_free_table (results); if (!ret) return 0; /* identifying any possible R*Tree supporting the main target */ x_name = sqlite3_mprintf ("idx_%s_%c", table, jolly); sql = sqlite3_mprintf ("SELECT name FROM sqlite_master WHERE type = 'table' " "AND name LIKE(%Q) AND sql LIKE('%cvirtual%c') AND sql LIKE('%crtree%c')", x_name, jolly, jolly, jolly, jolly); sqlite3_free (x_name); ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { /* allocating the rtrees array */ aux->n_rtrees = rows; aux->rtrees = malloc (sizeof (char **) * aux->n_rtrees); for (i = 1; i <= rows; i++) { const char *name = results[(i * columns) + 0]; int len = strlen (name); *(aux->rtrees + (i - 1)) = malloc (len + 1); strcpy (*(aux->rtrees + (i - 1)), name); } } sqlite3_free_table (results); return 1; } SPATIALITE_DECLARE int gaiaDropTable (sqlite3 * sqlite, const char *table) { /* dropping a Spatial Table and any other related stuff */ int ret; struct drop_params aux; /* initializing the aux params */ aux.rtrees = NULL; aux.n_rtrees = 0; aux.is_view = 0; aux.ok_geometry_columns = 0; aux.ok_views_geometry_columns = 0; aux.ok_virts_geometry_columns = 0; aux.ok_geometry_columns_auth = 0; aux.ok_geometry_columns_field_infos = 0; aux.ok_geometry_columns_statistics = 0; aux.ok_views_geometry_columns_auth = 0; aux.ok_views_geometry_columns_field_infos = 0; aux.ok_views_geometry_columns_statistics = 0; aux.ok_virts_geometry_columns_auth = 0; aux.ok_virts_geometry_columns_field_infos = 0; aux.ok_virts_geometry_columns_statistics = 0; aux.ok_layer_statistics = 0; aux.ok_views_layer_statistics = 0; aux.ok_virts_layer_statistics = 0; aux.ok_layer_params = 0; aux.ok_layer_sub_classes = 0; aux.ok_layer_table_layout = 0; if (table == NULL) return 0; /* the whole operation is a single transaction */ ret = sqlite3_exec (sqlite, "BEGIN", NULL, NULL, NULL); if (ret != SQLITE_OK) return 0; /* checking the actual DB configuration */ if (!check_drop_layout (sqlite, table, &aux)) goto rollback; /* recursively dropping any depending View */ if (!do_drop_sub_view (sqlite, table, &aux)) goto rollback; if (!do_drop_table (sqlite, table, &aux)) goto rollback; /* committing the still pending transaction */ ret = sqlite3_exec (sqlite, "COMMIT", NULL, NULL, NULL); if (ret != SQLITE_OK) goto rollback; if (aux.rtrees) { /* memory cleanup - rtrees */ int i; for (i = 0; i < aux.n_rtrees; i++) { if (*(aux.rtrees + i) != NULL) free (*(aux.rtrees + i)); } free (aux.rtrees); } return 1; rollback: /* invalidating the still pending transaction */ sqlite3_exec (sqlite, "ROLLBACK", NULL, NULL, NULL); if (aux.rtrees) { /* memory cleanup - rtrees */ int i; for (i = 0; i < aux.n_rtrees; i++) { if (*(aux.rtrees + i) != NULL) free (*(aux.rtrees + i)); } free (aux.rtrees); } return 0; } libspatialite-4.1.1/src/spatialite/spatialite_init.c0000664000175000017500000001002512163502133017534 00000000000000/* spatialite_init.c -- SQLite3 spatial extension version 4.1, 2013 May 8 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Pepijn Van Eeckhoudt (implementing Android support) Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /* CREDITS: this module has been partly funded by: Regione Toscana - Settore Sistema Informativo Territoriale ed Ambientale (exposing liblwgeom APIs as SpatiaLite own SQL functions) */ #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #define LOADABLE_EXTENSION #include #undef LOADABLE_EXTENSION #include #include #include #ifndef OMIT_GEOS /* including GEOS */ #include #endif SQLITE_EXTENSION_INIT1 static int init_spatialite_extension (sqlite3 * db, char **pzErrMsg, const sqlite3_api_routines * pApi) { void *p_cache = spatialite_alloc_connection (); struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; SQLITE_EXTENSION_INIT2 (pApi); /* setting the POSIX locale for numeric */ setlocale (LC_NUMERIC, "POSIX"); *pzErrMsg = NULL; register_spatialite_sql_functions (db, cache); init_spatialite_virtualtables (db, p_cache); /* setting a timeout handler */ sqlite3_busy_timeout (db, 5000); return 0; } SPATIALITE_DECLARE void spatialite_init (int verbose) { /* used when SQLite initializes as an ordinary lib OBSOLETE - strongly discuraged !!!!! */ #ifndef OMIT_GEOS /* initializing GEOS */ initGEOS (geos_warning, geos_error); #endif /* end GEOS */ sqlite3_auto_extension ((void (*)(void)) init_spatialite_extension); spatialite_splash_screen (verbose); } SPATIALITE_DECLARE void spatialite_cleanup () { #ifndef OMIT_GEOS finishGEOS (); #endif #ifdef ENABLE_LWGEOM gaiaResetLwGeomMsg (); #endif sqlite3_reset_auto_extension (); } #if !(defined _WIN32) || defined(__MINGW32__) /* MSVC is unable to understand this declaration */ __attribute__ ((visibility ("default"))) #endif SPATIALITE_DECLARE int sqlite3_extension_init (sqlite3 * db, char **pzErrMsg, const sqlite3_api_routines * pApi) { /* SQLite invokes this routine once when it dynamically loads the extension. */ #ifndef OMIT_GEOS /* initializing GEOS */ initGEOS (geos_warning, geos_error); #endif /* end GEOS */ return init_spatialite_extension (db, pzErrMsg, pApi); } libspatialite-4.1.1/src/spatialite/extra_tables.c0000664000175000017500000034334712163502133017047 00000000000000/* extra_tables.c -- Creating all SLD/SE and ISO Metadata extra tables version 4.0, 2013 February 16 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /* CREDITS: this module has been partly funded by: Regione Toscana - Settore Sistema Informativo Territoriale ed Ambientale (implementing XML support - ISO Metadata and SLD/SE Styles) */ #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include #include #include #include static int check_raster_coverages (sqlite3 * sqlite) { /* checking if the "raster_coverages" table already exists */ int exists = 0; char *sql_statement; char *errMsg = NULL; int ret; char **results; int rows; int columns; int i; sql_statement = "SELECT name FROM sqlite_master WHERE type = 'table' " "AND Upper(name) = Upper('raster_coverages')"; ret = sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, &errMsg); if (ret != SQLITE_OK) { sqlite3_free (errMsg); return 0; } for (i = 1; i <= rows; i++) exists = 1; sqlite3_free_table (results); return exists; } static int check_raster_coverages_ref_sys (sqlite3 * sqlite) { /* checking if the "raster_coverages_ref_sys" view already exists */ int exists = 0; char *sql_statement; char *errMsg = NULL; int ret; char **results; int rows; int columns; int i; sql_statement = "SELECT name FROM sqlite_master WHERE type = 'view' " "AND Upper(name) = Upper('raster_coverages_ref_sys')"; ret = sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, &errMsg); if (ret != SQLITE_OK) { sqlite3_free (errMsg); return 0; } for (i = 1; i <= rows; i++) exists = 1; sqlite3_free_table (results); return exists; } static int create_raster_coverages (sqlite3 * sqlite) { /* creating the "raster_coverages" table */ char *sql; int ret; char *err_msg = NULL; sql = "CREATE TABLE raster_coverages (\n" "coverage_name TEXT NOT NULL PRIMARY KEY,\n" "sample_type TEXT NOT NULL DEFAULT '*** undefined ***',\n" "pixel_type TEXT NOT NULL DEFAULT '*** undefined ***',\n" "num_bands INTEGER NOT NULL DEFAULT 1,\n" "compression TEXT NOT NULL DEFAULT 'NONE',\n" "quality INTEGER NOT NULL DEFAULT 100,\n" "tile_width INTEGER NOT NULL DEFAULT 512,\n" "tile_height INTEGER NOT NULL DEFAULT 512,\n" "horz_resolution DOUBLE,\n" "vert_resolution DOUBLE,\n" "srid INTEGER,\n" "nodata_pixel BLOB,\n" "CONSTRAINT fk_rc_srs FOREIGN KEY (srid) " "REFERENCES spatial_ref_sys (srid))"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE 'raster_coverages' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } /* creating the raster_coverages triggers */ sql = "CREATE TRIGGER raster_coverages_name_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "coverage_name value must not contain a single quote')\n" "WHERE NEW.coverage_name LIKE ('%''%');\n" "SELECT RAISE(ABORT,'insert on raster_coverages_layers violates constraint: " "coverage_name value must not contain a double quote')\n" "WHERE NEW.coverage_name LIKE ('%\"%');\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "coverage_name value must be lower case')\n" "WHERE NEW.coverage_name <> lower(NEW.coverage_name);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_name_update\n" "BEFORE UPDATE OF 'coverage_name' ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'update on raster_coverages violates constraint: " "coverage_name value must not contain a single quote')\n" "WHERE NEW.coverage_name LIKE ('%''%');\n" "SELECT RAISE(ABORT,'update on raster_coverages violates constraint: " "coverage_name value must not contain a double quote')\n" "WHERE NEW.coverage_name LIKE ('%\"%');\n" "SELECT RAISE(ABORT,'update on raster_coverages violates constraint: " "coverage_name value must be lower case')\n" "WHERE NEW.coverage_name <> lower(NEW.coverage_name);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_sample_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "sample_type must be one of ''1-BIT'' | ''2-BIT'' | ''4-BIT'' | " "''INT8'' | ''UINT8'' | ''INT16'' | ''UINT16'' | ''INT32'' | " "''UINT32'' | ''FLOAT'' | ''DOUBLE''')\n" "WHERE NEW.sample_type NOT IN ('1-BIT', '2-BIT', '4-BIT', " "'INT8', 'UINT8', 'INT16', 'UINT16', 'INT32', " "'UINT32', 'FLOAT', 'DOUBLE');\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_sample_update\n" "BEFORE UPDATE OF 'sample_type' ON 'raster_coverages'" "\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "sample_type must be one of ''1-BIT'' | ''2-BIT'' | ''4-BIT'' | " "''INT8'' | ''UINT8'' | ''INT16'' | ''UINT16'' | ''INT32'' | " "''UINT32'' | ''FLOAT'' | ''DOUBLE''')\n" "WHERE NEW.sample_type NOT IN ('1-BIT', '2-BIT', '4-BIT', " "'INT8', 'UINT8', 'INT16', 'UINT16', 'INT32', " "'UINT32', 'FLOAT', 'DOUBLE');\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_pixel_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "pixel_type must be one of ''MONOCHROME'' | ''PALETTE'' | " "''GRAYSCALE'' | ''RGB'' | ''MULTIBAND'' | ''DATAGRID''')\n" "WHERE NEW.pixel_type NOT IN ('MONOCHROME', 'PALETTE', " "'GRAYSCALE', 'RGB', 'MULTIBAND', 'DATAGRID');\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_pixel_update\n" "BEFORE UPDATE OF 'pixel_type' ON 'raster_coverages'" "\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "pixel_type must be one of ''MONOCHROME'' | ''PALETTE'' | " "''GRAYSCALE'' | ''RGB'' | ''MULTIBAND'' | ''DATAGRID''')\n" "WHERE NEW.pixel_type NOT IN ('MONOCHROME', 'PALETTE', " "'GRAYSCALE', 'RGB', 'MULTIBAND', 'DATAGRID');\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_bands_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "num_bands must be >= 1')\nWHERE NEW.num_bands < 1;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_bands_update\n" "BEFORE UPDATE OF 'num_bands' ON 'raster_coverages'" "\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "num_bands must be >= 1')\nWHERE NEW.num_bands < 1;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_compression_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "compression must be one of ''NONE'' | ''DEFLATE'' | ''LZMA'' | " "''GIF'' | ''PNG'' | ''JPEG'' | ''LOSSY_WEBP'' | ''LOSSLESS_WEBP''')\n" "WHERE NEW.compression NOT IN ('NONE', 'DEFLATE', 'LZMA', " "'GIF', 'PNG', 'JPEG', 'LOSSY_WEBP', 'LOSSLESS_WEBP');\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_compression_update\n" "BEFORE UPDATE OF 'compression' ON 'raster_coverages'" "\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "compression must be one of ''NONE'' | ''DEFLATE'' | ''LZMA'' | " "''GIF'' | ''PNG'' | ''JPEG'' | ''LOSSY_WEBP'' | ''LOSSLESS_WEBP''')\n" "WHERE NEW.compression NOT IN ('NONE', 'DEFLATE', 'LZMA', " "'GIF', 'PNG', 'JPEG', 'LOSSY_WEBP', 'LOSSLESS_WEBP');\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_quality_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "quality must be between 0 and 100')\n" "WHERE NEW.quality NOT BETWEEN 0 AND 100;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_quality_update\n" "BEFORE UPDATE OF 'quality' ON 'raster_coverages'" "\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "quality must be between 0 and 100')\n" "WHERE NEW.quality NOT BETWEEN 0 AND 100;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_tilew_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "tile_width must be an exact multiple of 8 between 256 and 1024')\n" "WHERE CastToInteger(NEW.tile_width) IS NULL OR " "NEW.tile_width NOT BETWEEN 256 AND 1024 OR (NEW.tile_width % 8) <> 0;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_tilew_update\n" "BEFORE UPDATE OF 'tile_width' ON 'raster_coverages'" "\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "tile_width must be an exact multiple of 8 between 256 and 1024')\n" "WHERE CastToInteger(NEW.tile_width) IS NULL OR " "NEW.tile_width NOT BETWEEN 256 AND 1024 OR (NEW.tile_width % 8) <> 0;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_tileh_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "tile_height must be an exact multiple of 8 between 256 and 1024')\n" "WHERE CastToInteger(NEW.tile_height) IS NULL OR " "NEW.tile_height NOT BETWEEN 256 AND 1024 OR (NEW.tile_height % 8) <> 0;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_tileh_update\n" "BEFORE UPDATE OF 'tile_height' ON 'raster_coverages'" "\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "tile_height must be an exact multiple of 8 between 256 and 1024')\n" "WHERE CastToInteger(NEW.tile_height) IS NULL OR " "NEW.tile_height NOT BETWEEN 256 AND 1024 OR (NEW.tile_height % 8) <> 0;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_horzres_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "horz_resolution must be positive')\n" "WHERE NEW.horz_resolution IS NOT NULL AND " "(NEW.horz_resolution <= 0.0 OR CastToDouble(NEW.horz_resolution) IS NULL);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_horzres_update\n" "BEFORE UPDATE OF 'horz_resolution' ON 'raster_coverages'" "\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "horz_resolution must be positive')\n" "WHERE NEW.horz_resolution IS NOT NULL AND " "(NEW.horz_resolution <= 0.0 OR CastToDouble(NEW.horz_resolution) IS NULL);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_vertres_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "vert_resolution must be positive')\n" "WHERE NEW.vert_resolution IS NOT NULL AND " "(NEW.vert_resolution <= 0.0 OR CastToDouble(NEW.vert_resolution) IS NULL);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_vertres_update\n" "BEFORE UPDATE OF 'vert_resolution' ON 'raster_coverages'" "\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "vert_resolution must be positive')\n" "WHERE NEW.vert_resolution IS NOT NULL AND " "(NEW.vert_resolution <= 0.0 OR CastToDouble(NEW.vert_resolution) IS NULL);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_nodata_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "invalid nodata_pixel')\nWHERE NEW.nodata_pixel IS NOT NULL AND " "IsValidNoDataPixel(NEW.nodata_pixel, NEW.sample_type, NEW.num_bands) <> 1;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_nodata_update\n" "BEFORE UPDATE OF 'vert_resolution' ON 'raster_coverages'" "\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "invalid nodata_pixel')\nWHERE NEW.nodata_pixel IS NOT NULL AND " "IsValidNoDataPixel(NEW.nodata_pixel, NEW.sample_type, NEW.num_bands) <> 1;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_monosample_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "inconsistent MONOCHROME sample_type')\nWHERE NEW.pixel_type = 'MONOCHROME' " "AND NEW.sample_type <> '1-BIT';\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_monosample_update\n" "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "inconsistent MONOCHROME sample_type')\nWHERE NEW.pixel_type = 'MONOCHROME' " "AND NEW.sample_type <>'1-BIT';\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_monocompr_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "inconsistent MONOCHROME compression')\nWHERE NEW.pixel_type = 'MONOCHROME' " "AND NEW.compression NOT IN ('NONE', 'PNG');\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_monocompr_update\n" "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "inconsistent MONOCHROME compression')\nWHERE NEW.pixel_type = 'MONOCHROME' " "AND NEW.compression NOT IN ('NONE', 'PNG');\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_monobands_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "inconsistent MONOCHROME num_bands')\nWHERE NEW.pixel_type = 'MONOCHROME' " "AND NEW.num_bands <> 1;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_monobands_update\n" "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "inconsistent MONOCHROME num_bands')\nWHERE NEW.pixel_type = 'MONOCHROME' " "AND NEW.num_bands <> 1;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_pltsample_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "inconsistent PALETTE sample_type')\nWHERE NEW.pixel_type = 'PALETTE' " "AND NEW.sample_type NOT IN ('1-BIT', '2-BIT', '4-BIT', 'UINT8');\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_pltsample_update\n" "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "inconsistent PALETTE sample_type')\nWHERE NEW.pixel_type = 'PALETTE' " "AND NEW.sample_type NOT IN ('1-BIT', '2-BIT', '4-BIT', 'UINT8');\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_pltcompr_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "inconsistent PALETTE compression')\nWHERE NEW.pixel_type = 'PALETTE' " "AND NEW.compression NOT IN ('NONE', 'GIF', 'PNG');\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_pltcompr_update\n" "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "inconsistent PALETTE compression')\nWHERE NEW.pixel_type = 'PALETTE' " "AND NEW.compression NOT IN ('NONE', 'GIF', 'PNG');\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_pltbands_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "inconsistent PALETTE num_bands')\nWHERE NEW.pixel_type = 'PALETTE' " "AND NEW.num_bands <> 1;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_pltbands_update\n" "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "inconsistent PALETTE num_bands')\nWHERE NEW.pixel_type = 'PALETTE' " "AND NEW.num_bands <> 1;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_graysample_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "inconsistent GRAYSCALE sample_type')\nWHERE NEW.pixel_type = 'GRAYSCALE' " "AND NEW.sample_type NOT IN ('2-BIT', '4-BIT', 'UINT8');\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_graysample_update\n" "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "inconsistent GRAYSCALE sample_type')\nWHERE NEW.pixel_type = 'GRAYSCALE' " "AND NEW.sample_type NOT IN ('2-BIT', '4-BIT', 'UINT8');\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_graybands_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "inconsistent GRAYSCALE num_bands')\nWHERE NEW.pixel_type = 'GRAYSCALE' " "AND NEW.num_bands <> 1;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_graybands_update\n" "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "inconsistent GRAYSCALE num_bands')\nWHERE NEW.pixel_type = 'GRAYSCALE' " "AND NEW.num_bands <> 1;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_rgbsample_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "inconsistent RGB sample_type')\nWHERE NEW.pixel_type = 'RGB' " "AND NEW.sample_type <> 'UINT8';\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_rgbsample_update\n" "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "inconsistent RGB sample_type')\nWHERE NEW.pixel_type = 'RGB' " "AND NEW.sample_type <> 'UINT8';\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_rgbcompr_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "inconsistent RGB compression')\nWHERE NEW.pixel_type = 'RGB' " "AND NEW.compression NOT IN ('NONE', 'DEFLATE', 'LZMA', 'PNG', " "'JPEG', 'LOSSY_WEBP', 'LOSSLESS_WEBP');\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_rgbcompr_update\n" "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "inconsistent RGB compression')\nWHERE NEW.pixel_type = 'RGB' " "AND NEW.compression NOT IN ('NONE', 'DEFLATE', 'LZMA', 'PNG', " "'JPEG', 'LOSSY_WEBP', 'LOSSLESS_WEBP');\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_rgbbands_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "inconsistent RGB num_bands')\nWHERE NEW.pixel_type = 'RGB' " "AND NEW.num_bands <> 3;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_rgbbands_update\n" "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "inconsistent RGB num_bands')\nWHERE NEW.pixel_type = 'RGB' " "AND NEW.num_bands <> 3;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_multisample_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "inconsistent MULTIBAND sample_type')\nWHERE NEW.pixel_type = 'MULTIBAND' " "AND NEW.sample_type NOT IN ('UINT8', 'UINT16');\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_multisample_update\n" "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "inconsistent MULTIBAND sample_type')\nWHERE NEW.pixel_type = 'MULTIBAND' " "AND NEW.sample_type NOT IN ('UINT8', 'UINT16');\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_multicompr_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "inconsistent MULTIBAND compression')\nWHERE NEW.pixel_type = 'MULTIBAND' " "AND NEW.compression NOT IN ('NONE', 'DEFLATE', 'LZMA');\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_multicompr_update\n" "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "inconsistent MULTIBAND compression')\nWHERE NEW.pixel_type = 'MULTIBAND' " "AND NEW.compression NOT IN ('NONE', 'DEFLATE', 'LZMA');\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_gridsample_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "inconsistent DATAGRID sample_type')\nWHERE NEW.pixel_type = 'DATAGRID' " "AND NEW.sample_type NOT IN ('INT8', 'UINT8', 'INT16', 'UINT16', " "'INT32', 'UINT32', 'FLOAT', 'DOUBLE');\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_gridsample_update\n" "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "inconsistent DATAGRID sample_type')\nWHERE NEW.pixel_type = 'DATAGRID' " "AND NEW.sample_type NOT IN ('INT8', 'UINT8', 'INT16', 'UINT16', " "'INT32', 'UINT32', 'FLOAT', 'DOUBLE');\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_gridcompr_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "inconsistent DATAGRID compression')\nWHERE NEW.pixel_type = 'DATAGRID' " "AND NEW.compression NOT IN ('NONE', 'DEFLATE', 'LZMA');\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_gridcompr_update\n" "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "inconsistent DATAGRID compression')\nWHERE NEW.pixel_type = 'DATAGRID' " "AND NEW.compression NOT IN ('NONE', 'DEFLATE', 'LZMA');\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_gridbands_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "inconsistent DATAGRID num_bands')\nWHERE NEW.pixel_type = 'DATAGRID' " "AND NEW.num_bands <> 1;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_gridbands_update\n" "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "inconsistent DATAGRID num_bands')\nWHERE NEW.pixel_type = 'DATAGRID' " "AND NEW.num_bands <> 1;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_georef_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "inconsistent georeferencing infos')\n" "WHERE NOT ((NEW.horz_resolution IS NULL AND NEW.vert_resolution IS NULL " "AND NEW.srid IS NULL) OR (NEW.horz_resolution IS NOT NULL " "AND NEW.vert_resolution IS NOT NULL AND NEW.srid IS NOT NULL));\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_georef_update\n" "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'update on raster_coverages violates constraint: " "inconsistent georeferencing infos')\n" "WHERE NOT ((NEW.horz_resolution IS NULL AND NEW.vert_resolution IS NULL " "AND NEW.srid IS NULL) OR (NEW.horz_resolution IS NOT NULL " "AND NEW.vert_resolution IS NOT NULL AND NEW.srid IS NOT NULL));\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_update\n" "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "attempting to change the definition of an already populated Coverage')\n" "WHERE IsPopulatedCoverage(OLD.coverage_name) = 1;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_delete\n" "BEFORE DELETE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'delete on raster_coverages violates constraint: " "attempting to delete the definition of an already populated Coverage')\n" "WHERE IsPopulatedCoverage(OLD.coverage_name) = 1;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } /* creating the raster_coverages_ref_sys view */ sql = "CREATE VIEW raster_coverages_ref_sys AS\n" "SELECT c.coverage_name AS coverage_name, c.sample_type AS sample_type, " "c.pixel_type AS pixel_type, c.num_bands AS num_bands, " "c.compression AS compression, c.quality AS quality, " "c.tile_width AS tile_width, c.tile_height AS tile_height, " "c.horz_resolution AS horz_resolution, c.vert_resolution AS vert_resolution, " "c.nodata_pixel AS nodata_pixel, c.srid AS srid, " "s.auth_name AS auth_name, s.auth_srid AS auth_srid, " "s.ref_sys_name AS ref_sys_name, s.proj4text AS ref_sys_name\n" "FROM raster_coverages AS c\n" "LEFT JOIN spatial_ref_sys AS s ON (c.srid = s.srid)"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW 'raster_coverages_ref_sys' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } return 1; } SPATIALITE_PRIVATE int createRasterCoveragesTable (void *p_sqlite) { /* Creating the main RasterCoverages table */ int ok_table; sqlite3 *sqlite = p_sqlite; /* checking if already defined */ ok_table = check_raster_coverages (sqlite); if (ok_table) { spatialite_e ("CreateRasterCoveragesTable() error: table 'raster_coverages' already exists\n"); goto error; } ok_table = check_raster_coverages_ref_sys (sqlite); if (ok_table) { spatialite_e ("CreateRasterCoveragesTable() error: view 'raster_coverages_ref_sys' already exists\n"); goto error; } /* creating the main RasterCoverages table */ if (!create_raster_coverages (sqlite)) goto error; return 1; error: return 0; } static int check_if_coverage_exists (sqlite3 * sqlite, const char *coverage) { /* checking if a Coverage table already exists */ int exists = 0; char *sql_statement; char *errMsg = NULL; int ret; char **results; int rows; int columns; int i; sql_statement = sqlite3_mprintf ("SELECT name FROM sqlite_master WHERE type = 'table' " "AND Upper(name) = Upper(%Q)", coverage); ret = sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { sqlite3_free (errMsg); return 0; } for (i = 1; i <= rows; i++) exists = 1; sqlite3_free_table (results); return exists; } SPATIALITE_PRIVATE int checkPopulatedCoverage (void *p_sqlite, const char *coverage_name) { /* checking if a Coverage table is already populated */ int is_populated = 0; char *xname; char *sql_statement; char *errMsg = NULL; int ret; char **results; int rows; int columns; int i; sqlite3 *sqlite = p_sqlite; if (!check_if_coverage_exists (sqlite, coverage_name)) return 0; xname = gaiaDoubleQuotedSql (coverage_name); sql_statement = sqlite3_mprintf ("SELECT ROWID FROM \"%s\" LIMIT 10", xname); free (xname); ret = sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { sqlite3_free (errMsg); return 0; } for (i = 1; i <= rows; i++) is_populated = 1; sqlite3_free_table (results); return is_populated; } #ifdef ENABLE_LIBXML2 /* including LIBXML2 */ static int check_styling_table (sqlite3 * sqlite, const char *table, int is_view) { /* checking if some SLD/SE Styling-related table/view already exists */ int exists = 0; char *sql_statement; char *errMsg = NULL; int ret; char **results; int rows; int columns; int i; sql_statement = sqlite3_mprintf ("SELECT name FROM sqlite_master WHERE type = '%s'" "AND Upper(name) = Upper(%Q)", (!is_view) ? "table" : "view", table); ret = sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { sqlite3_free (errMsg); return 0; } for (i = 1; i <= rows; i++) exists = 1; sqlite3_free_table (results); return exists; } static int create_external_graphics (sqlite3 * sqlite) { /* creating the SE_external_graphics table */ char *sql; int ret; char *err_msg = NULL; sql = "CREATE TABLE SE_external_graphics (\n" "xlink_href TEXT NOT NULL PRIMARY KEY,\n" "title TEXT NOT NULL DEFAULT '*** undefined ***',\n" "abstract TEXT NOT NULL DEFAULT '*** undefined ***',\n" "resource BLOB NOT NULL,\n" "file_name TEXT NOT NULL DEFAULT '*** undefined ***')"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE 'SE_external_graphics' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } /* creating the SE_external_graphics triggers */ sql = "CREATE TRIGGER sextgr_mime_type_insert\n" "BEFORE INSERT ON 'SE_external_graphics'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on SE_external_graphics violates constraint: " "GetMimeType(resource) must be one of ''image/gif'' | ''image/png'' | " "''image/jpeg'' | ''image/svg+xml''')\n" "WHERE GetMimeType(NEW.resource) NOT IN ('image/gif', 'image/png', " "'image/jpeg', 'image/svg+xml');\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER sextgr_mime_type_update\n" "BEFORE UPDATE OF 'mime_type' ON 'SE_external_graphics'" "\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on SE_external_graphics violates constraint: " "GetMimeType(resource) must be one of ''image/gif'' | ''image/png'' | " "''image/jpeg'' | ''image/svg+xml''')\n" "WHERE GetMimeType(NEW.resource) NOT IN ('image/gif', 'image/png', " "'image/jpeg', 'image/svg+xml');\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_vector_styled_layers (sqlite3 * sqlite, int relaxed) { /* creating the SE_vector_styled_layers table */ char *sql; int ret; char *err_msg = NULL; sql = "CREATE TABLE SE_vector_styled_layers (\n" "f_table_name TEXT NOT NULL,\n" "f_geometry_column TEXT NOT NULL,\n" "style_id INTEGER NOT NULL,\n" "style BLOB NOT NULL,\n" "CONSTRAINT pk_sevstl PRIMARY KEY " "(f_table_name, f_geometry_column, style_id),\n" "CONSTRAINT fk_sevstl FOREIGN KEY (f_table_name, f_geometry_column) " "REFERENCES geometry_columns (f_table_name, f_geometry_column) " "ON DELETE CASCADE)"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE 'SE_vector_styled_layers' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } /* creating the SE_vector_styled_layers triggers */ sql = "CREATE TRIGGER sevstl_f_table_name_insert\n" "BEFORE INSERT ON 'SE_vector_styled_layers'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on SE_vector_styled_layers violates constraint: " "f_table_name value must not contain a single quote')\n" "WHERE NEW.f_table_name LIKE ('%''%');\n" "SELECT RAISE(ABORT,'insert on SE_vector_styled_layers violates constraint: " "f_table_name value must not contain a double quote')\n" "WHERE NEW.f_table_name LIKE ('%\"%');\n" "SELECT RAISE(ABORT,'insert on SE_vector_styled_layers violates constraint: " "f_table_name value must be lower case')\n" "WHERE NEW.f_table_name <> lower(NEW.f_table_name);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER sevstl_f_table_name_update\n" "BEFORE UPDATE OF 'f_table_name' ON 'SE_vector_styled_layers'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'update on SE_vector_styled_layers violates constraint: " "f_table_name value must not contain a single quote')\n" "WHERE NEW.f_table_name LIKE ('%''%');\n" "SELECT RAISE(ABORT,'update on SE_vector_styled_layers violates constraint: " "f_table_name value must not contain a double quote')\n" "WHERE NEW.f_table_name LIKE ('%\"%');\n" "SELECT RAISE(ABORT,'update on SE_vector_styled_layers violates constraint: " "f_table_name value must be lower case')\n" "WHERE NEW.f_table_name <> lower(NEW.f_table_name);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER sevstl_f_geometry_column_insert\n" "BEFORE INSERT ON 'SE_vector_styled_layers'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on SE_vector_styled_layers violates constraint: " "f_geometry_column value must not contain a single quote')\n" "WHERE NEW.f_geometry_column LIKE ('%''%');\n" "SELECT RAISE(ABORT,'insert on SE_vector_styled_layers violates constraint: " "f_geometry_column value must not contain a double quote')\n" "WHERE NEW.f_geometry_column LIKE ('%\"%');\n" "SELECT RAISE(ABORT,'insert on SE_vector_styled_layers violates constraint: " "f_geometry_column value must be lower case')\n" "WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER sevstl_f_geometry_column_update\n" "BEFORE UPDATE OF 'f_geometry_column' ON 'SE_vector_styled_layers'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'update on SE_vector_styled_layers violates constraint: " "f_geometry_column value must not contain a single quote')\n" "WHERE NEW.f_geometry_column LIKE ('%''%');\n" "SELECT RAISE(ABORT,'update on SE_vector_styled_layers violates constraint: " "f_geometry_column value must not contain a double quote')\n" "WHERE NEW.f_geometry_column LIKE ('%\"%');\n" "SELECT RAISE(ABORT,'update on SE_vector_styled_layers violates constraint: " "f_geometry_column value must be lower case')\n" "WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } if (relaxed == 0) { /* strong trigger - imposing XML schema validation */ sql = "CREATE TRIGGER sevstl_style_insert\n" "BEFORE INSERT ON 'SE_vector_styled_layers'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on SE_vector_styled_layers violates constraint: " "not a valid SLD/SE Vector Style')\n" "WHERE XB_IsSldSeVectorStyle(NEW.style) <> 1;\n" "SELECT RAISE(ABORT,'insert on SE_vector_styled_layers violates constraint: " "not an XML Schema Validated SLD/SE Vector Style')\n" "WHERE XB_IsSchemaValidated(NEW.style) <> 1;\nEND"; } else { /* relaxed trigger - not imposing XML schema validation */ sql = "CREATE TRIGGER sevstl_style_insert\n" "BEFORE INSERT ON 'SE_vector_styled_layers'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on SE_vector_styled_layers violates constraint: " "not a valid SLD/SE Vector Style')\n" "WHERE XB_IsSldSeVectorStyle(NEW.style) <> 1;\nEND"; } ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } if (relaxed == 0) { /* strong trigger - imposing XML schema validation */ sql = "CREATE TRIGGER sevstl_style_update\n" "BEFORE UPDATE ON 'SE_vector_styled_layers'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'update on SE_vector_styled_layers violates constraint: " "not a valid SLD/SE Vector Style')\n" "WHERE XB_IsSldSeVectorStyle(NEW.style) <> 1;\n" "SELECT RAISE(ABORT,'update on SE_vector_styled_layers violates constraint: " "not an XML Schema Validated SLD/SE Vector Style')\n" "WHERE XB_IsSchemaValidated(NEW.style) <> 1;\nEND"; } else { /* relaxed trigger - not imposing XML schema validation */ sql = "CREATE TRIGGER sevstl_style_update\n" "BEFORE UPDATE ON 'SE_vector_styled_layers'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'update on SE_vector_styled_layers violates constraint: " "not a valid SLD/SE Vector Style')\n" "WHERE XB_IsSldSeVectorStyle(NEW.style) <> 1;\nEND"; } ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_raster_styled_layers (sqlite3 * sqlite, int relaxed) { /* creating the SE_raster_styled_layers table */ char *sql; int ret; char *err_msg = NULL; sql = "CREATE TABLE SE_raster_styled_layers (\n" "coverage_name TEXT NOT NULL,\n" "style_id INTEGER NOT NULL,\n" "style BLOB NOT NULL,\n" "CONSTRAINT pk_serstl PRIMARY KEY " "(coverage_name, style_id),\n" "CONSTRAINT fk_serstl FOREIGN KEY (coverage_name) " "REFERENCES raster_coverages (coverage_name) " "ON DELETE CASCADE)"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE 'SE_raster_styled_layers' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } /* creating the SE_vector_styled_layers triggers */ sql = "CREATE TRIGGER serstl_coverage_name_insert\n" "BEFORE INSERT ON 'SE_raster_styled_layers'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on SE_raster_styled_layers violates constraint: " "coverage_name value must not contain a single quote')\n" "WHERE NEW.coverage_name LIKE ('%''%');\n" "SELECT RAISE(ABORT,'insert on SE_raster_styled_layers violates constraint: " "coverage_name value must not contain a double quote')\n" "WHERE NEW.coverage_name LIKE ('%\"%');\n" "SELECT RAISE(ABORT,'insert on SE_raster_styled_layers violates constraint: " "coverage_name value must be lower case')\n" "WHERE NEW.coverage_name <> lower(NEW.coverage_name);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER serstl_coverage_name_update\n" "BEFORE UPDATE OF 'coverage_name' ON 'SE_raster_styled_layers'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'update on SE_raster_styled_layers violates constraint: " "coverage_name value must not contain a single quote')\n" "WHERE NEW.coverage_name LIKE ('%''%');\n" "SELECT RAISE(ABORT,'update on SE_raster_styled_layers violates constraint: " "coverage_name value must not contain a double quote')\n" "WHERE NEW.coverage_name LIKE ('%\"%');\n" "SELECT RAISE(ABORT,'update on SE_raster_styled_layers violates constraint: " "coverage_name value must be lower case')\n" "WHERE NEW.coverage_name <> lower(NEW.coverage_name);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } if (relaxed == 0) { /* strong trigger - imposing XML schema validation */ sql = "CREATE TRIGGER serstl_style_insert\n" "BEFORE INSERT ON 'SE_raster_styled_layers'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on SE_raster_styled_layers violates constraint: " "not a valid SLD/SE Raster Style')\n" "WHERE XB_IsSldSeRasterStyle(NEW.style) <> 1;\n" "SELECT RAISE(ABORT,'insert on SE_raster_styled_layers violates constraint: " "not an XML Schema Validated SLD/SE Raster Style')\n" "WHERE XB_IsSchemaValidated(NEW.style) <> 1;\nEND"; } else { /* relaxed trigger - not imposing XML schema validation */ sql = "CREATE TRIGGER serstl_style_insert\n" "BEFORE INSERT ON 'SE_raster_styled_layers'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on SE_raster_styled_layers violates constraint: " "not a valid SLD/SE Raster Style')\n" "WHERE XB_IsSldSeRasterStyle(NEW.style) <> 1;\nEND"; } ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } if (relaxed == 0) { /* strong trigger - imposing XML schema validation */ sql = "CREATE TRIGGER serstl_style_update\n" "BEFORE UPDATE ON 'SE_raster_styled_layers'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'update on SE_raster_styled_layers violates constraint: " "not a valid SLD/SE Raster Style')\n" "WHERE XB_IsSldSeRasterStyle(NEW.style) <> 1;\n" "SELECT RAISE(ABORT,'update on SE_raster_styled_layers violates constraint: " "not an XML Schema Validated SLD/SE Raster Style')\n" "WHERE XB_IsSchemaValidated(NEW.style) <> 1;\nEND"; } else { /* relaxed trigger - not imposing XML schema validation */ sql = "CREATE TRIGGER serstl_style_update\n" "BEFORE UPDATE ON 'SE_raster_styled_layers'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'update on SE_raster_styled_layers violates constraint: " "not a valid SLD/SE Raster Style')\n" "WHERE XB_IsSldSeRasterStyle(NEW.style) <> 1;\nEND"; } ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_styled_groups (sqlite3 * sqlite) { /* creating the SE_styled_groups table */ char *sql; int ret; char *err_msg = NULL; sql = "CREATE TABLE SE_styled_groups (\n" "group_name TEXT NOT NULL PRIMARY KEY,\n" "title TEXT NOT NULL DEFAULT '*** undefined ***',\n" "abstract TEXT NOT NULL DEFAULT '*** undefined ***')"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE 'SE_styled_groups' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } /* creating the SE_styled_groups triggers */ sql = "CREATE TRIGGER segrp_group_name_insert\n" "BEFORE INSERT ON 'SE_styled_groups'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on SE_styled_groups violates constraint: " "group_name value must not contain a single quote')\n" "WHERE NEW.group_name LIKE ('%''%');\n" "SELECT RAISE(ABORT,'insert on SE_styled_groups violates constraint: " "group_name value must not contain a double quote')\n" "WHERE NEW.group_name LIKE ('%\"%');\n" "SELECT RAISE(ABORT,'insert on SE_styled_groups violates constraint: " "group_name value must be lower case')\n" "WHERE NEW.group_name <> lower(NEW.group_name);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER segrp_group_name_update\n" "BEFORE UPDATE OF 'group_name' ON 'SE_styled_groups'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'update on SE_raster_styled_layers violates constraint: " "group_name value must not contain a single quote')\n" "WHERE NEW.group_name LIKE ('%''%');\n" "SELECT RAISE(ABORT,'update on SE_styled_groups violates constraint: " "group_name value must not contain a double quote')\n" "WHERE NEW.group_name LIKE ('%\"%');\n" "SELECT RAISE(ABORT,'update on SE_styled_groups violates constraint: " "group_name value must be lower case')\n" "WHERE NEW.group_name <> lower(NEW.group_name);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_styled_group_refs (sqlite3 * sqlite) { /* creating the SE_styled_group_refs table */ char *sql; int ret; char *err_msg = NULL; sql = "CREATE TABLE SE_styled_group_refs (\n" "id INTEGER PRIMARY KEY AUTOINCREMENT,\n" "group_name TEXT NOT NULL,\n" "paint_order INTEGER NOT NULL,\n" "f_table_name TEXT,\n" "f_geometry_column TEXT,\n" "vector_style_id INTEGER,\n" "coverage_name TEXT,\n" "raster_style_id INTEGER,\n" "CONSTRAINT fk_se_refs FOREIGN KEY (group_name) " "REFERENCES SE_styled_groups (group_name) " "ON DELETE CASCADE,\n" "CONSTRAINT fk_se_styled_vector FOREIGN KEY " "(f_table_name, f_geometry_column, vector_style_id) " "REFERENCES SE_vector_styled_layers " "(f_table_name, f_geometry_column, style_id) " "ON DELETE CASCADE,\n" "CONSTRAINT fk_se_styled_raster FOREIGN KEY " "(coverage_name, raster_style_id) " "REFERENCES SE_raster_styled_layers (coverage_name, style_id) " "ON DELETE CASCADE)"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE 'SE_styled_group_refs' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } /* creating the SE_styled_group_refs triggers */ sql = "CREATE TRIGGER segrrefs_group_name_insert\n" "BEFORE INSERT ON 'SE_styled_group_refs'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on SE_styled_group_refs violates constraint: " "group_name value must not contain a single quote')\n" "WHERE NEW.group_name LIKE ('%''%');\n" "SELECT RAISE(ABORT,'insert on SE_styled_group_refs violates constraint: " "group_name value must not contain a double quote')\n" "WHERE NEW.group_name LIKE ('%\"%');\n" "SELECT RAISE(ABORT,'insert on SE_styled_group_refs violates constraint: " "group_name value must be lower case')\n" "WHERE NEW.group_name <> lower(NEW.group_name);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER segrrefs_group_name_update\n" "BEFORE UPDATE OF 'group_name' ON 'SE_styled_group_refs'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'update on SE_styled_group_refs violates constraint: " "group_name value must not contain a single quote')\n" "WHERE NEW.group_name LIKE ('%''%');\n" "SELECT RAISE(ABORT,'update on SE_styled_group_refs violates constraint: " "group_name value must not contain a double quote')\n" "WHERE NEW.group_name LIKE ('%\"%');\n" "SELECT RAISE(ABORT,'update on SE_styled_group_refs violates constraint: " "group_name value must be lower case')\n" "WHERE NEW.group_name <> lower(NEW.group_name);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER segrrefs_f_table_name_insert\n" "BEFORE INSERT ON 'SE_styled_group_refs'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on SE_styled_group_refs violates constraint: " "f_table_name value must not contain a single quote')\n" "WHERE NEW.f_table_name LIKE ('%''%');\n" "SELECT RAISE(ABORT,'insert on SE_styled_group_refs violates constraint: " "f_table_name value must not contain a double quote')\n" "WHERE NEW.f_table_name LIKE ('%\"%');\n" "SELECT RAISE(ABORT,'insert on SE_styled_group_refs violates constraint: " "f_table_name value must be lower case')\n" "WHERE NEW.f_table_name <> lower(NEW.f_table_name);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER segrrefs_f_table_name_update\n" "BEFORE UPDATE OF 'f_table_name' ON 'SE_styled_group_refs'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'update on SE_styled_group_refs violates constraint: " "f_table_name value must not contain a single quote')\n" "WHERE NEW.f_table_name LIKE ('%''%');\n" "SELECT RAISE(ABORT,'update on SE_styled_group_refs violates constraint: " "f_table_name value must not contain a double quote')\n" "WHERE NEW.f_table_name LIKE ('%\"%');\n" "SELECT RAISE(ABORT,'update on SE_styled_group_refs violates constraint: " "f_table_name value must be lower case')\n" "WHERE NEW.f_table_name <> lower(NEW.f_table_name);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER segrrefs_f_geometry_column_insert\n" "BEFORE INSERT ON 'SE_styled_group_refs'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on SE_styled_group_refs violates constraint: " "f_geometry_column value must not contain a single quote')\n" "WHERE NEW.f_geometry_column LIKE ('%''%');\n" "SELECT RAISE(ABORT,'insert on SE_styled_group_refs violates constraint: " "f_geometry_column value must not contain a double quote')\n" "WHERE NEW.f_geometry_column LIKE ('%\"%');\n" "SELECT RAISE(ABORT,'insert on SE_styled_group_refs violates constraint: " "f_geometry_column value must be lower case')\n" "WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER segrrefs_f_geometry_column_update\n" "BEFORE UPDATE OF 'f_geometry_column' ON 'SE_styled_group_refs'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'update on SE_styled_group_refs violates constraint: " "f_geometry_column value must not contain a single quote')\n" "WHERE NEW.f_geometry_column LIKE ('%''%');\n" "SELECT RAISE(ABORT,'update on SE_styled_group_refs violates constraint: " "f_geometry_column value must not contain a double quote')\n" "WHERE NEW.f_geometry_column LIKE ('%\"%');\n" "SELECT RAISE(ABORT,'update on SE_styled_group_refs violates constraint: " "f_geometry_column value must be lower case')\n" "WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER segrrefs_coverage_name_insert\n" "BEFORE INSERT ON 'SE_styled_group_refs'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on SE_styled_group_refs violates constraint: " "coverage_name value must not contain a single quote')\n" "WHERE NEW.coverage_name LIKE ('%''%');\n" "SELECT RAISE(ABORT,'insert on SE_styled_group_refs violates constraint: " "coverage_name value must not contain a double quote')\n" "WHERE NEW.coverage_name LIKE ('%\"%');\n" "SELECT RAISE(ABORT,'insert on SE_styled_group_refs violates constraint: " "coverage_name value must be lower case')\n" "WHERE NEW.coverage_name <> lower(NEW.coverage_name);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER segrrefs_coverage_name_update\n" "BEFORE UPDATE OF 'coverage_name' ON 'SE_styled_group_refs'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'update on SE_styled_group_refs violates constraint: " "coverage_name value must not contain a single quote')\n" "WHERE NEW.coverage_name LIKE ('%''%');\n" "SELECT RAISE(ABORT,'update on SE_styled_group_refs violates constraint: " "coverage_name value must not contain a double quote')\n" "WHERE NEW.coverage_name LIKE ('%\"%');\n" "SELECT RAISE(ABORT,'update on SE_styled_group_refs violates constraint: " "coverage_name value must be lower case')\n" "WHERE NEW.coverage_name <> lower(NEW.coverage_name);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER segrrefs_insert\n" "BEFORE INSERT ON 'SE_styled_group_refs'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on SE_styled_group_refs violates constraint: " "cannot reference both Vector and Raster at the same time')\n" "WHERE (NEW.f_table_name IS NOT NULL OR NEW.f_geometry_column IS NOT NULL " "OR NEW.vector_style_id IS NOT NULL) AND (NEW.coverage_name IS NOT NULL " "OR NEW.raster_style_id IS NOT NULL);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER segrrefs_update\n" "BEFORE UPDATE ON 'SE_styled_group_refs'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'update on SE_styled_group_refs violates constraint: " "cannot reference both Vector and Raster at the same time')\n" "WHERE (NEW.f_table_name IS NOT NULL OR NEW.f_geometry_column IS NOT NULL " "OR NEW.vector_style_id IS NOT NULL) AND (NEW.coverage_name IS NOT NULL " "OR NEW.raster_style_id IS NOT NULL);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } /* creating any Index on SE_styled_group_refs */ sql = "CREATE INDEX idx_SE_styled_vgroups ON " "SE_styled_group_refs " "(f_table_name, f_geometry_column, vector_style_id)"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("Create Index 'idx_SE_styled_vgroups' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE INDEX idx_SE_styled_rgroups ON " "SE_styled_group_refs " "(coverage_name, raster_style_id)"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("Create Index 'idx_SE_styled_rgroups' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE INDEX idx_SE_styled_groups_paint ON " "SE_styled_group_refs " "(group_name, paint_order)"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("Create Index 'idx_SE_styled_groups_paint' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_external_graphics_view (sqlite3 * sqlite) { /* creating the SE_external_graphics_view view */ char *sql_statement; int ret; char *err_msg = NULL; sql_statement = sqlite3_mprintf ("CREATE VIEW SE_external_graphics_view AS\n" "SELECT xlink_href AS xlink_href, title AS title, " "abstract AS abstract, resource AS resource, " "file_name AS file_name, GetMimeType(resource) AS mime_type\n" "FROM SE_external_graphics"); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW 'SE_external_graphics_view' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_vector_styled_layers_view (sqlite3 * sqlite) { /* creating the SE_vector_styled_layers_view view */ char *sql_statement; int ret; char *err_msg = NULL; sql_statement = sqlite3_mprintf ("CREATE VIEW SE_vector_styled_layers_view AS \n" "SELECT f_table_name AS f_table_name, f_geometry_column AS f_geometry_column, " "style_id AS style_id, XB_GetTitle(style) AS title, " "XB_GetAbstract(style) AS abstract, style AS style, " "XB_IsSchemaValidated(style) AS schema_validated, " "XB_GetSchemaURI(style) AS schema_uri\n" "FROM SE_vector_styled_layers"); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW 'SE_vector_styled_layers_view' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_raster_styled_layers_view (sqlite3 * sqlite) { /* creating the SE_raster_styled_layers_view view */ char *sql_statement; int ret; char *err_msg = NULL; sql_statement = sqlite3_mprintf ("CREATE VIEW SE_raster_styled_layers_view AS \n" "SELECT coverage_name AS coverage_name, " "style_id AS style_id, XB_GetTitle(style) AS title, " "XB_GetAbstract(style) AS abstract, style AS style, " "XB_IsSchemaValidated(style) AS schema_validated, " "XB_GetSchemaURI(style) AS schema_uri\n" "FROM SE_raster_styled_layers"); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW 'SE_raster_styled_layers_view' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_styled_groups_view (sqlite3 * sqlite) { /* creating the SE_styled_groups_view view */ char *sql; int ret; char *err_msg = NULL; sql = "CREATE VIEW SE_styled_groups_view AS " "SELECT g.group_name AS group_name, g.title AS group_title, " "g.abstract AS group_abstract, gr.paint_order AS paint_order, " "'vector' AS type, v.f_table_name AS layer_name, " "v.f_geometry_column AS geometry_column, v.style_id AS style_id, " "XB_GetTitle(v.style) AS style_title, XB_GetAbstract(v.style) AS style_abstract, " "v.style AS style, gc.geometry_type AS geometry_type, " "gc.coord_dimension AS coord_dimension, gc.srid AS srid " "FROM SE_styled_groups AS g " "JOIN SE_styled_group_refs AS gr ON (g.group_name = gr.group_name) " "JOIN SE_vector_styled_layers AS v ON (gr.f_table_name = v.f_table_name " "AND gr.f_geometry_column = v.f_geometry_column AND gr.vector_style_id = v.style_id) " "JOIN geometry_columns AS gc ON (v.f_table_name = gc.f_table_name " "AND v.f_geometry_column = gc.f_geometry_column) UNION " "SELECT g.group_name AS group_name, g.title AS group_title, " "g.abstract AS group_abstract, gr.paint_order AS paint_order, " "'raster' AS type, r.coverage_name AS layer_name, NULL AS geometry_column, " "r.style_id AS style_id, XB_GetTitle(r.style) AS style_title, " "XB_GetAbstract(r.style) AS style_abstract, r.style AS style, " "NULL AS geometry_type, NULL AS coord_dimension, NULL AS srid " "FROM SE_styled_groups AS g " "JOIN SE_styled_group_refs AS gr ON (g.group_name = gr.group_name) " "JOIN SE_raster_styled_layers AS r ON (gr.coverage_name = r.coverage_name " "AND gr.raster_style_id = r.style_id)"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW 'SE_styled_groups_view' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } return 1; } SPATIALITE_PRIVATE int createStylingTables (void *p_sqlite, int relaxed) { /* Creating the SE Styling tables */ const char *tables[10]; int views[9]; const char **p_tbl; int *p_view; int ok_table; sqlite3 *sqlite = p_sqlite; /* checking SLD/SE Styling tables */ tables[0] = "SE_external_graphics"; tables[1] = "SE_vector_styled_layers"; tables[2] = "SE_raster_styled_layers"; tables[3] = "SE_styled_groups"; tables[4] = "SE_styled_group_refs"; tables[5] = "SE_external_graphics_view"; tables[6] = "SE_vector_styled_layers_view"; tables[7] = "SE_raster_styled_layers_view"; tables[8] = "SE_styled_groups_view"; tables[9] = NULL; views[0] = 0; views[1] = 0; views[2] = 0; views[3] = 0; views[4] = 0; views[5] = 1; views[6] = 1; views[7] = 1; views[8] = 1; p_tbl = tables; p_view = views; while (*p_tbl != NULL) { ok_table = check_styling_table (sqlite, *p_tbl, *p_view); if (ok_table) { spatialite_e ("CreateStylingTables() error: table '%s' already exists\n", *p_tbl); goto error; } p_tbl++; p_view++; } /* creating the SLD/SE Styling tables */ if (!check_raster_coverages (sqlite)) { /* creating the main RasterCoverages table as well */ if (!create_raster_coverages (sqlite)) goto error; } if (!create_external_graphics (sqlite)) goto error; if (!create_vector_styled_layers (sqlite, relaxed)) goto error; if (!create_raster_styled_layers (sqlite, relaxed)) goto error; if (!create_styled_groups (sqlite)) goto error; if (!create_styled_group_refs (sqlite)) goto error; if (!create_external_graphics_view (sqlite)) goto error; if (!create_vector_styled_layers_view (sqlite)) goto error; if (!create_raster_styled_layers_view (sqlite)) goto error; if (!create_styled_groups_view (sqlite)) goto error; return 1; error: return 0; } static int check_iso_metadata_table (sqlite3 * sqlite, const char *table, int is_view) { /* checking if some ISO Metadata-related table/view already exists */ int exists = 0; char *sql_statement; char *errMsg = NULL; int ret; char **results; int rows; int columns; int i; sql_statement = sqlite3_mprintf ("SELECT name FROM sqlite_master WHERE type = '%s'" "AND Upper(name) = Upper(%Q)", (!is_view) ? "table" : "view", table); ret = sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { sqlite3_free (errMsg); return 0; } for (i = 1; i <= rows; i++) exists = 1; sqlite3_free_table (results); return exists; } static int create_iso_metadata (sqlite3 * sqlite, int relaxed) { /* creating the ISO_metadata table */ char *sql; int ret; char *err_msg = NULL; sql = "CREATE TABLE ISO_metadata (\n" "id INTEGER PRIMARY KEY AUTOINCREMENT,\n" "md_scope TEXT NOT NULL DEFAULT 'dataset',\n" "metadata BLOB NOT NULL DEFAULT (zeroblob(4)),\n" "fileId TEXT,\nparentId TEXT)"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE 'ISO_metadata' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } /* adding the Geometry column */ sql = "SELECT AddGeometryColumn('ISO_metadata', 'geometry', 4326, 'MULTIPOLYGON', 'XY')"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e (" AddGeometryColumn 'ISO_metadata'.'geometry' error:%s\n", err_msg); sqlite3_free (err_msg); return 0; } /* adding a Spatial Index */ sql = "SELECT CreateSpatialIndex ('ISO_metadata', 'geometry')"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("CreateSpatialIndex 'ISO_metadata'.'geometry' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } /* creating the ISO_metadata triggers */ sql = "CREATE TRIGGER 'ISO_metadata_md_scope_insert'\n" "BEFORE INSERT ON 'ISO_metadata'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, 'insert on table ISO_metadata violates constraint: " "md_scope must be one of ''undefined'' | ''fieldSession'' | ''collectionSession'' " "| ''series'' | ''dataset'' | ''featureType'' | ''feature'' | ''attributeType'' " "| ''attribute'' | ''tile'' | ''model'' | ''catalogue'' | ''schema'' " "| ''taxonomy'' | ''software'' | ''service'' | ''collectionHardware'' " "| ''nonGeographicDataset'' | ''dimensionGroup''')\n" "WHERE NOT(NEW.md_scope IN ('undefined','fieldSession','collectionSession'," "'series','dataset','featureType','feature','attributeType','attribute'," "'tile','model','catalogue','schema','taxonomy','software','service'," "'collectionHardware','nonGeographicDataset','dimensionGroup'));\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER 'ISO_metadata_md_scope_update'\n" "BEFORE UPDATE OF 'md_scope' ON 'ISO_metadata'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, 'update on table ISO_metadata violates constraint: " "md_scope must be one of ''undefined'' | ''fieldSession'' | ''collectionSession'' " "| ''series'' | ''dataset'' | ''featureType'' | ''feature'' | ''attributeType'' |" " ''attribute'' | ''tile'' | ''model'' | ''catalogue'' | ''schema'' " "| ''taxonomy'' | ''software'' | ''service'' | ''collectionHardware'' " "| ''nonGeographicDataset'' | ''dimensionGroup''')\n" "WHERE NOT(NEW.md_scope IN ('undefined','fieldSession','collectionSession'," "'series','dataset','featureType','feature','attributeType','attribute'," "'tile','model','catalogue','schema','taxonomy','software','service'," "'collectionHardware','nonGeographicDataset','dimensionGroup'));\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER 'ISO_metadata_fileIdentifier_insert'\n" "AFTER INSERT ON 'ISO_metadata'\nFOR EACH ROW BEGIN\n" "UPDATE ISO_metadata SET fileId = XB_GetFileId(NEW.metadata), " "parentId = XB_GetParentId(NEW.metadata), " "geometry = XB_GetGeometry(NEW.metadata) WHERE id = NEW.id;\n" "UPDATE ISO_metadata_reference " "SET md_parent_id = GetIsoMetadataId(NEW.parentId) " "WHERE md_file_id = NEW.id;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER 'ISO_metadata_fileIdentifier_update'\n" "AFTER UPDATE ON 'ISO_metadata'\nFOR EACH ROW BEGIN\n" "UPDATE ISO_metadata SET fileId = XB_GetFileId(NEW.metadata), " "parentId = XB_GetParentId(NEW.metadata), " "geometry = XB_GetGeometry(NEW.metadata) WHERE id = NEW.id;\n" "UPDATE ISO_metadata_reference " "SET md_parent_id = GetIsoMetadataId(NEW.parentId) " "WHERE md_file_id = NEW.id;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } if (relaxed == 0) { /* strong trigger - imposing XML schema validation */ sql = "CREATE TRIGGER ISO_metadata_insert\n" "BEFORE INSERT ON 'ISO_metadata'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on ISO_metadata violates constraint: " "not a valid ISO Metadata XML')\n" "WHERE XB_IsIsoMetadata(NEW.metadata) <> 1 AND NEW.id <> 0;\n" "SELECT RAISE(ABORT,'insert on ISO_metadata violates constraint: " "not an XML Schema Validated ISO Metadata')\n" "WHERE XB_IsSchemaValidated(NEW.metadata) <> 1 AND NEW.id <> 0;\nEND"; } else { /* relaxed trigger - not imposing XML schema validation */ sql = "CREATE TRIGGER ISO_metadata_insert\n" "BEFORE INSERT ON 'ISO_metadata'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on ISO_metadata violates constraint: " "not a valid ISO Metadata XML')\n" "WHERE XB_IsIsoMetadata(NEW.metadata) <> 1 AND NEW.id <> 0;\nEND"; } ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } if (relaxed == 0) { /* strong trigger - imposing XML schema validation */ sql = "CREATE TRIGGER ISO_metadata_update\n" "BEFORE UPDATE ON 'ISO_metadata'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'update on ISO_metadata violates constraint: " "not a valid ISO Metadata XML')\n" "WHERE XB_IsIsoMetadata(NEW.metadata) <> 1 AND NEW.id <> 0;\n" "SELECT RAISE(ABORT,'update on ISO_metadata violates constraint: " "not an XML Schema Validated ISO Metadata')\n" "WHERE XB_IsSchemaValidated(NEW.metadata) <> 1 AND NEW.id <> 0;\nEND"; } else { /* relaxed trigger - not imposing XML schema validation */ sql = "CREATE TRIGGER ISO_metadata_update\n" "BEFORE UPDATE ON 'ISO_metadata'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'update on ISO_metadata violates constraint: " "not a valid ISO Metadata XML')\n" "WHERE XB_IsIsoMetadata(NEW.metadata) <> 1 AND NEW.id <> 0;\nEND"; } ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } /* creating any Index on ISO_metadata */ sql = "CREATE UNIQUE INDEX idx_ISO_metadata_ids ON " "ISO_metadata (fileId)"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("Create Index 'idx_ISO_metadata_ids' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE INDEX idx_ISO_metadata_parents ON " "ISO_metadata (parentId)"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("Create Index 'idx_ISO_metadata_parents' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_iso_metadata_reference (sqlite3 * sqlite) { /* creating the ISO_metadata_reference table */ char *sql; int ret; char *err_msg = NULL; sql = "CREATE TABLE ISO_metadata_reference (\n" "reference_scope TEXT NOT NULL DEFAULT 'table',\n" "table_name TEXT NOT NULL DEFAULT 'undefined',\n" "column_name TEXT NOT NULL DEFAULT 'undefined',\n" "row_id_value INTEGER NOT NULL DEFAULT 0,\n" "timestamp TEXT NOT NULL DEFAULT (" "strftime('%Y-%m-%dT%H:%M:%fZ',CURRENT_TIMESTAMP)),\n" "md_file_id INTEGER NOT NULL DEFAULT 0,\n" "md_parent_id INTEGER NOT NULL DEFAULT 0,\n" "CONSTRAINT fk_isometa_mfi FOREIGN KEY (md_file_id) " "REFERENCES ISO_metadata(id),\n" "CONSTRAINT fk_isometa_mpi FOREIGN KEY (md_parent_id) " "REFERENCES ISO_metadata(id))"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE 'ISO_metadata_reference' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } /* creating the ISO_metadata_reference triggers */ sql = "CREATE TRIGGER 'ISO_metadata_reference_scope_insert'\n" "BEFORE INSERT ON 'ISO_metadata_reference'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, 'insert on table ISO_metadata_reference violates constraint: " "reference_scope must be one of ''table'' | ''column'' | ''row'' | ''row/col''')\n" "WHERE NOT NEW.reference_scope IN ('table','column','row','row/col');\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER 'ISO_metadata_reference_scope_update'\n" "BEFORE UPDATE OF 'reference_scope' ON 'ISO_metadata_reference'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, 'update on table ISO_metadata_reference violates constraint: " "referrence_scope must be one of ''table'' | ''column'' | ''row'' | ''row/col''')\n" "WHERE NOT NEW.reference_scope IN ('table','column','row','row/col');\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER 'ISO_metadata_reference_table_name_insert'\n" "BEFORE INSERT ON 'ISO_metadata_reference'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, 'insert on table ISO_metadata_reference violates constraint: " "table_name must be the name of a table in geometry_columns')\n" "WHERE NOT NEW.table_name IN (\n" "SELECT f_table_name AS table_name FROM geometry_columns);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER 'ISO_metadata_reference_table_name_update'\n" "BEFORE UPDATE OF 'table_name' ON 'ISO_metadata_reference'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, 'update on table ISO_metadata_reference violates constraint: " "table_name must be the name of a table in geometry_columns')\n" "WHERE NOT NEW.table_name IN (\n" "SELECT f_table_name AS table_name FROM geometry_columns);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER 'ISO_metadata_reference_row_id_value_insert'\n" "BEFORE INSERT ON 'ISO_metadata_reference'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, 'insert on ISO_table ISO_metadata_reference violates constraint: " "row_id_value must be 0 when reference_scope is ''table'' or ''column''')\n" "WHERE NEW.reference_scope IN ('table','column') AND NEW.row_id_value <> 0;\n" "SELECT RAISE(ROLLBACK, 'insert on table ISO_metadata_reference violates constraint: " "row_id_value must exist in specified table when reference_scope is ''row'' or ''row/col''')\n" "WHERE NEW.reference_scope IN ('row','row/col') AND NOT EXISTS\n" "(SELECT rowid FROM (SELECT NEW.table_name AS table_name) " "WHERE rowid = NEW.row_id_value);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER 'ISO_metadata_reference_row_id_value_update'\n" "BEFORE UPDATE OF 'row_id_value' ON 'ISO_metadata_reference'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, 'update on table ISO_metadata_reference violates constraint: " "row_id_value must be 0 when reference_scope is ''table'' or ''column''')\n" "WHERE NEW.reference_scope IN ('table','column') AND NEW.row_id_value <> 0;\n" "SELECT RAISE(ROLLBACK, 'update on ISO_table metadata_reference violates constraint: " "row_id_value must exist in specified table when reference_scope is ''row'' or ''row/col''')\n" "WHERE NEW.reference_scope IN ('row','row/col') AND NOT EXISTS\n" "(SELECT rowid FROM (SELECT NEW.table_name AS table_name) " "WHERE rowid = NEW.row_id_value);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER 'ISO_metadata_reference_timestamp_insert'\n" "BEFORE INSERT ON 'ISO_metadata_reference'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, 'insert on table ISO_metadata_reference violates constraint: " "timestamp must be a valid time in ISO 8601 ''yyyy-mm-ddThh:mm:ss.cccZ'' form')\n" "WHERE NOT (NEW.timestamp GLOB'[1-2][0-9][0-9][0-9]-[0-1][0-9]-[1-3][0-9]T" "[0-2][0-9]:[0-5][0-9]:[0-5][0-9].[0-9][0-9][0-9]Z' AND strftime('%s'," "NEW.timestamp) NOT NULL);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER 'ISO_metadata_reference_timestamp_update'\n" "BEFORE UPDATE OF 'timestamp' ON 'ISO_metadata_reference'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, 'update on table ISO_metadata_reference violates constraint: " "timestamp must be a valid time in ISO 8601 ''yyyy-mm-ddThh:mm:ss.cccZ'' form')\n" "WHERE NOT (NEW.timestamp GLOB'[1-2][0-9][0-9][0-9]-[0-1][0-9]-[1-3][0-9]T" "[0-2][0-9]:[0-5][0-9]:[0-5][0-9].[0-9][0-9][0-9]Z' AND strftime('%s'," "NEW.timestamp) NOT NULL);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } /* creating any Index on ISO_metadata_reference */ sql = "CREATE INDEX idx_ISO_metadata_reference_ids ON " "ISO_metadata_reference (md_file_id)"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("Create Index 'idx_ISO_metadata_reference_ids' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE INDEX idx_ISO_metadata_reference_parents ON " "ISO_metadata_reference (md_parent_id)"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("Create Index 'idx_ISO_metadata_reference_parents' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_iso_metadata_view (sqlite3 * sqlite) { /* creating the ISO_metadata_view view */ char *sql; int ret; char *err_msg = NULL; sql = "CREATE VIEW ISO_metadata_view AS\n" "SELECT id AS id, md_scope AS md_scope, XB_GetTitle(metadata) AS title, " "XB_GetAbstract(metadata) AS abstract, geometry AS geometry, " "fileId AS fileIdentifier, parentId AS parentIdentifier, metadata AS metadata, " "XB_IsSchemaValidated(metadata) AS schema_validated, " "XB_GetSchemaURI(metadata) AS metadata_schema_URI\n" "FROM ISO_metadata"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW 'ISO_metadata_view' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } return 1; } SPATIALITE_PRIVATE int createIsoMetadataTables (void *p_sqlite, int relaxed) { /* Creating the ISO Metadata tables */ const char *tables[4]; int views[3]; const char **p_tbl; int *p_view; int ok_table; int ret; char *err_msg = NULL; sqlite3 *sqlite = p_sqlite; /* checking ISO Metadata tables */ tables[0] = "ISO_metadata"; tables[1] = "ISO_metadata_reference"; tables[2] = "ISO_metadata_view"; tables[3] = NULL; views[0] = 0; views[1] = 0; views[2] = 1; p_tbl = tables; p_view = views; while (*p_tbl != NULL) { ok_table = check_iso_metadata_table (sqlite, *p_tbl, *p_view); if (ok_table) { spatialite_e ("CreateIsoMetadataTables() error: table '%s' already exists\n", *p_tbl); goto error; } p_tbl++; p_view++; } /* creating the ISO Metadata tables */ if (!create_iso_metadata (sqlite, relaxed)) goto error; if (!create_iso_metadata_reference (sqlite)) goto error; if (!create_iso_metadata_view (sqlite)) goto error; /* inserting the default "undef" row into ISO_metadata */ ret = sqlite3_exec (sqlite, "INSERT INTO ISO_metadata (id, md_scope) VALUES (0, 'undefined')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("Insert default 'undefined' ISO_metadata row - error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } return 1; error: return 0; } SPATIALITE_PRIVATE int register_external_graphic (void *p_sqlite, const char *xlink_href, const unsigned char *p_blob, int n_bytes, const char *title, const char *abstract, const char *file_name) { /* auxiliary function: inserts or updates an ExternalGraphic Resource */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; int ret; const char *sql; sqlite3_stmt *stmt; int exists = 0; int extras = 0; int retval = 0; /* checking if already exists */ sql = "SELECT xlink_href FROM SE_external_graphics WHERE xlink_href = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("registerExternalGraphic: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, xlink_href, strlen (xlink_href), SQLITE_STATIC); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) exists = 1; } sqlite3_finalize (stmt); if (title != NULL && abstract != NULL && file_name != NULL) extras = 1; if (exists) { /* update */ if (extras) { /* full infos */ sql = "UPDATE SE_external_graphics " "SET resource = ?, title = ?, abstract = ?, file_name = ? " "WHERE xlink_href = ?"; } else { /* limited basic infos */ sql = "UPDATE SE_external_graphics " "SET resource = ? WHERE xlink_href = ?"; } } else { /* insert */ if (extras) { /* full infos */ sql = "INSERT INTO SE_external_graphics " "(xlink_href, resource, title, abstract, file_name) " "VALUES (?, ?, ?, ?, ?)"; } else { /* limited basic infos */ sql = "INSERT INTO SE_external_graphics " "(xlink_href, resource) VALUES (?, ?)"; } } ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("registerExternalGraphic: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); if (exists) { /* update */ if (extras) { /* full infos */ sqlite3_bind_blob (stmt, 1, p_blob, n_bytes, SQLITE_STATIC); sqlite3_bind_text (stmt, 2, title, strlen (title), SQLITE_STATIC); sqlite3_bind_text (stmt, 3, abstract, strlen (abstract), SQLITE_STATIC); sqlite3_bind_text (stmt, 4, file_name, strlen (file_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 5, xlink_href, strlen (xlink_href), SQLITE_STATIC); } else { /* limited basic infos */ sqlite3_bind_blob (stmt, 1, p_blob, n_bytes, SQLITE_STATIC); sqlite3_bind_text (stmt, 2, xlink_href, strlen (xlink_href), SQLITE_STATIC); } } else { /* insert */ if (extras) { /* full infos */ sqlite3_bind_text (stmt, 1, xlink_href, strlen (xlink_href), SQLITE_STATIC); sqlite3_bind_blob (stmt, 2, p_blob, n_bytes, SQLITE_STATIC); sqlite3_bind_text (stmt, 3, title, strlen (title), SQLITE_STATIC); sqlite3_bind_text (stmt, 4, abstract, strlen (abstract), SQLITE_STATIC); sqlite3_bind_text (stmt, 5, file_name, strlen (file_name), SQLITE_STATIC); } else { /* limited basic infos */ sqlite3_bind_text (stmt, 1, xlink_href, strlen (xlink_href), SQLITE_STATIC); sqlite3_bind_blob (stmt, 2, p_blob, n_bytes, SQLITE_STATIC); } } ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) retval = 1; else spatialite_e ("registerExternalGraphic() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); return retval; stop: return 0; } SPATIALITE_PRIVATE int register_vector_styled_layer (void *p_sqlite, const char *f_table_name, const char *f_geometry_column, int style_id, const unsigned char *p_blob, int n_bytes) { /* auxiliary function: inserts or updates a Vector Styled Layer */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; int ret; const char *sql; sqlite3_stmt *stmt; int exists = 0; int retval = 0; if (style_id >= 0) { /* checking if already exists */ sql = "SELECT style_id FROM SE_vector_styled_layers " "WHERE f_table_name = Lower(?) AND f_geometry_column = Lower(?) " "AND style_id = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("registerVectorStyledLayer: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, f_table_name, strlen (f_table_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, f_geometry_column, strlen (f_geometry_column), SQLITE_STATIC); sqlite3_bind_int (stmt, 3, style_id); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) exists = 1; } sqlite3_finalize (stmt); } else { /* assigning the next style_id value */ style_id = 0; sql = "SELECT Max(style_id) FROM SE_vector_styled_layers " "WHERE f_table_name = Lower(?) AND f_geometry_column = Lower(?) "; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("registerVectorStyledLayer: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, f_table_name, strlen (f_table_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, f_geometry_column, strlen (f_geometry_column), SQLITE_STATIC); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 0) == SQLITE_INTEGER) style_id = sqlite3_column_int (stmt, 0) + 1; } } sqlite3_finalize (stmt); } if (exists) { /* update */ sql = "UPDATE SE_vector_styled_layers SET style = ? " "WHERE f_table_name = Lower(?) AND f_geometry_column = Lower(?) " "AND style_id = ?"; } else { /* insert */ sql = "INSERT INTO SE_vector_styled_layers " "(f_table_name, f_geometry_column, style_id, style) VALUES " "(?, ?, ?, ?)"; } ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("registerVectorStyledLayer: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); if (exists) { /* update */ sqlite3_bind_blob (stmt, 1, p_blob, n_bytes, SQLITE_STATIC); sqlite3_bind_text (stmt, 2, f_table_name, strlen (f_table_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 3, f_geometry_column, strlen (f_geometry_column), SQLITE_STATIC); sqlite3_bind_int (stmt, 4, style_id); } else { /* insert */ sqlite3_bind_text (stmt, 1, f_table_name, strlen (f_table_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, f_geometry_column, strlen (f_geometry_column), SQLITE_STATIC); sqlite3_bind_int (stmt, 3, style_id); sqlite3_bind_blob (stmt, 4, p_blob, n_bytes, SQLITE_STATIC); } ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) retval = 1; else spatialite_e ("registerVectorStyledLayer() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); return retval; stop: return 0; } SPATIALITE_PRIVATE int register_raster_styled_layer (void *p_sqlite, const char *coverage_name, int style_id, const unsigned char *p_blob, int n_bytes) { /* auxiliary function: inserts or updates a Raster Styled Layer */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; int ret; const char *sql; sqlite3_stmt *stmt; int exists = 0; int retval = 0; if (style_id >= 0) { /* checking if already exists */ sql = "SELECT style_id FROM SE_raster_styled_layers " "WHERE coverage_name = Lower(?) AND style_id = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("registerRasterStyledLayer: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, coverage_name, strlen (coverage_name), SQLITE_STATIC); sqlite3_bind_int (stmt, 2, style_id); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) exists = 1; } sqlite3_finalize (stmt); } else { /* assigning the next style_id value */ style_id = 0; sql = "SELECT Max(style_id) FROM SE_raster_styled_layers " "WHERE coverage_name = Lower(?) "; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("registerVectorStyledLayer: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, coverage_name, strlen (coverage_name), SQLITE_STATIC); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 0) == SQLITE_INTEGER) style_id = sqlite3_column_int (stmt, 0) + 1; } } sqlite3_finalize (stmt); } if (exists) { /* update */ sql = "UPDATE SE_raster_styled_layers SET style = ? " "WHERE coverage_name = Lower(?) AND style_id = ?"; } else { /* insert */ sql = "INSERT INTO SE_raster_styled_layers " "(coverage_name, style_id, style) VALUES (?, ?, ?)"; } ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("registerRasterStyledLayer: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); if (exists) { /* update */ sqlite3_bind_blob (stmt, 1, p_blob, n_bytes, SQLITE_STATIC); sqlite3_bind_text (stmt, 2, coverage_name, strlen (coverage_name), SQLITE_STATIC); sqlite3_bind_int (stmt, 3, style_id); } else { /* insert */ sqlite3_bind_text (stmt, 1, coverage_name, strlen (coverage_name), SQLITE_STATIC); sqlite3_bind_int (stmt, 2, style_id); sqlite3_bind_blob (stmt, 3, p_blob, n_bytes, SQLITE_STATIC); } ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) retval = 1; else spatialite_e ("registerRasterStyledLayer() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); return retval; stop: return 0; } SPATIALITE_PRIVATE int register_styled_group (void *p_sqlite, const char *group_name, const char *f_table_name, const char *f_geometry_column, const char *coverage_name, int style_id, int paint_order) { /* auxiliary function: inserts or updates a Styled Group Item */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; int ret; const char *sql; sqlite3_stmt *stmt; int exists_group = 0; int exists = 0; int retval = 0; sqlite3_int64 id; /* checking if the Group already exists */ sql = "SELECT group_name FROM SE_styled_groups " "WHERE group_name = Lower(?)"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("registerStyledGroupsRefs: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, group_name, strlen (group_name), SQLITE_STATIC); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) exists_group = 1; } sqlite3_finalize (stmt); if (!exists_group) { /* insert group */ sql = "INSERT INTO SE_styled_groups (group_name) VALUES (?)"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("registerStyledGroupsRefs: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, group_name, strlen (group_name), SQLITE_STATIC); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) retval = 1; else spatialite_e ("registerStyledGroupsRefs() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); if (retval == 0) goto stop; retval = 0; } if (paint_order >= 0) { /* checking if the group-item already exists */ sql = "SELECT id FROM SE_styled_group_refs " "WHERE group_name = Lower(?) AND paint_order = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("registerStyledGroupsRefs: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, group_name, strlen (group_name), SQLITE_STATIC); sqlite3_bind_int (stmt, 2, paint_order); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { id = sqlite3_column_int64 (stmt, 0); exists++; } } sqlite3_finalize (stmt); if (exists != 1) goto stop; } if (paint_order < 0) { /* assigning the next paint_order value */ paint_order = 0; sql = "SELECT Max(paint_order) FROM SE_styled_group_refs " "WHERE group_name = Lower(?) "; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("registerStyledGroupsRefs: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, group_name, strlen (group_name), SQLITE_STATIC); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 0) == SQLITE_INTEGER) paint_order = sqlite3_column_int (stmt, 0) + 1; } } sqlite3_finalize (stmt); } if (exists) { /* update */ sql = "UPDATE SE_styled_group_refs SET paint_order = ? " "WHERE id = ?"; } else { /* insert */ if (coverage_name == NULL) { /* vector styled layer */ sql = "INSERT INTO SE_styled_group_refs " "(id, group_name, f_table_name, f_geometry_column, vector_style_id, paint_order) " "VALUES (NULL, ?, ?, ?, ?, ?)"; } else { /* raster styled layer */ sql = "INSERT INTO SE_styled_group_refs " "(id, group_name, coverage_name, raster_style_id, paint_order) " "VALUES (NULL, ?, ?, ?, ?)"; } } ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("registerStyledGroupsRefs: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); if (exists) { /* update */ sqlite3_bind_int (stmt, 1, paint_order); sqlite3_bind_int64 (stmt, 2, id); } else { /* insert */ sqlite3_bind_text (stmt, 1, group_name, strlen (group_name), SQLITE_STATIC); if (coverage_name == NULL) { /* vector styled layer */ sqlite3_bind_text (stmt, 2, f_table_name, strlen (f_table_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 3, f_geometry_column, strlen (f_geometry_column), SQLITE_STATIC); sqlite3_bind_int (stmt, 4, style_id); sqlite3_bind_int (stmt, 5, paint_order); } else { /* raster styled layer */ sqlite3_bind_text (stmt, 2, coverage_name, strlen (coverage_name), SQLITE_STATIC); sqlite3_bind_int (stmt, 3, style_id); sqlite3_bind_int (stmt, 4, paint_order); } } ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) retval = 1; else spatialite_e ("registerStyledGroupsRefs() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); return retval; stop: return 0; } SPATIALITE_PRIVATE int styled_group_set_infos (void *p_sqlite, const char *group_name, const char *title, const char *abstract) { /* auxiliary function: inserts or updates the Styled Group descriptive infos */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; int ret; const char *sql; sqlite3_stmt *stmt; int exists = 0; int retval = 0; /* checking if the Group already exists */ sql = "SELECT group_name FROM SE_styled_groups " "WHERE group_name = Lower(?)"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("styledGroupSetInfos: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, group_name, strlen (group_name), SQLITE_STATIC); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) exists = 1; } sqlite3_finalize (stmt); if (!exists) { /* insert group */ sql = "INSERT INTO SE_styled_groups (group_name, title, abstract) VALUES (?, ?, ?)"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("styledGroupSetInfos: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, group_name, strlen (group_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, title, strlen (title), SQLITE_STATIC); sqlite3_bind_text (stmt, 3, abstract, strlen (abstract), SQLITE_STATIC); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) retval = 1; else spatialite_e ("styledGroupSetInfos() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); } else { /* update group */ sql = "UPDATE SE_styled_groups SET title = ?, abstract = ? WHERE group_name = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("styledGroupSetInfos: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, title, strlen (title), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, abstract, strlen (abstract), SQLITE_STATIC); sqlite3_bind_text (stmt, 3, group_name, strlen (group_name), SQLITE_STATIC); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) retval = 1; else spatialite_e ("styledGroupSetInfos() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); } return retval; stop: return 0; } SPATIALITE_PRIVATE int get_iso_metadata_id (void *p_sqlite, const char *fileIdentifier, void *p_id) { /* auxiliary function: return the ID of the row corresponding to "fileIdentifier" */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; sqlite3_int64 *p64 = (sqlite3_int64 *) p_id; sqlite3_int64 id; int ret; const char *sql; sqlite3_stmt *stmt; int ok = 0; sql = "SELECT id FROM ISO_metadata WHERE fileId = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("getIsoMetadataId: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, fileIdentifier, strlen (fileIdentifier), SQLITE_STATIC); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { ok++; id = sqlite3_column_int64 (stmt, 0); } } sqlite3_finalize (stmt); if (ok == 1) { *p64 = id; return 1; } stop: return 0; } SPATIALITE_PRIVATE int register_iso_metadata (void *p_sqlite, const char *scope, const unsigned char *p_blob, int n_bytes, void *p_id, const char *fileIdentifier) { /* auxiliary function: inserts or updates an ISO Metadata */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; sqlite3_int64 *p64 = (sqlite3_int64 *) p_id; sqlite3_int64 id = *p64; int ret; const char *sql; sqlite3_stmt *stmt; int exists = 0; int retval = 0; if (id >= 0) { /* checking if already exists - by ID */ sql = "SELECT id FROM ISO_metadata WHERE id = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("registerIsoMetadata: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_int64 (stmt, 1, id); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) exists = 1; } sqlite3_finalize (stmt); } if (fileIdentifier != NULL) { /* checking if already exists - by fileIdentifier */ sql = "SELECT id FROM ISO_metadata WHERE fileId = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("registerIsoMetadata: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, fileIdentifier, strlen (fileIdentifier), SQLITE_STATIC); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { exists = 1; id = sqlite3_column_int64 (stmt, 0); } } sqlite3_finalize (stmt); } if (exists) { /* update */ sql = "UPDATE ISO_metadata SET md_scope = ?, metadata = ? " "WHERE id = ?"; } else { /* insert */ sql = "INSERT INTO ISO_metadata " "(id, md_scope, metadata) VALUES (?, ?, ?)"; } ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("registerIsoMetadata: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); if (exists) { /* update */ sqlite3_bind_text (stmt, 1, scope, strlen (scope), SQLITE_STATIC); sqlite3_bind_blob (stmt, 2, p_blob, n_bytes, SQLITE_STATIC); sqlite3_bind_int (stmt, 3, id); } else { /* insert */ if (id < 0) sqlite3_bind_null (stmt, 1); else sqlite3_bind_int64 (stmt, 1, id); sqlite3_bind_text (stmt, 2, scope, strlen (scope), SQLITE_STATIC); sqlite3_bind_blob (stmt, 3, p_blob, n_bytes, SQLITE_STATIC); } ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) retval = 1; else spatialite_e ("registerIsoMetadata() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); return retval; stop: return 0; } #endif /* end including LIBXML2 */ libspatialite-4.1.1/src/spatialite/spatialite.c0000664000175000017500000275450712163502133016537 00000000000000/* spatialite.c -- SQLite3 spatial extension version 4.1, 2013 May 8 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Pepijn Van Eeckhoudt (implementing Android support) Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /* CREDITS: this module has been partly funded by: Regione Toscana - Settore Sistema Informativo Territoriale ed Ambientale (exposing liblwgeom APIs as SpatiaLite own SQL functions) */ #include #include #include #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #if defined(_WIN32) || defined(WIN32) #include #define isatty _isatty #else #include #endif #include #include #include #include #include #include #include #include #include #include #ifndef OMIT_GEOS /* including GEOS */ #include #endif #ifndef OMIT_PROJ /* including PROJ.4 */ #include #endif #ifdef _WIN32 #define strcasecmp _stricmp #endif /* not WIN32 */ /* 64 bit integer: portable format for printf() */ #if defined(_WIN32) && !defined(__MINGW32__) #define FRMT64 "%I64d" #define FRMT64_WO_PCT "I64d" #else #define FRMT64 "%lld" #define FRMT64_WO_PCT "lld" #endif #define GAIA_UNUSED() if (argc || argv) argc = argc; struct gaia_geom_chain_item { /* a struct used to store a chain item */ gaiaGeomCollPtr geom; struct gaia_geom_chain_item *next; }; struct gaia_geom_chain { /* a struct used to store a dynamic chain of GeometryCollections */ int all_polygs; struct gaia_geom_chain_item *first; struct gaia_geom_chain_item *last; }; #ifndef OMIT_GEOCALLBACKS /* supporting RTree geometry callbacks */ struct gaia_rtree_mbr { /* a struct used by R*Tree GeometryCallback functions [MBR] */ double minx; double miny; double maxx; double maxy; }; #endif /* end RTree geometry callbacks */ struct stddev_str { /* a struct to implement StandardVariation and Variance aggregate functions */ int cleaned; double mean; double quot; double count; }; struct fdo_table { /* a struct to implement a linked-list for FDO-ORG table names */ char *table; struct fdo_table *next; }; static void fnct_spatialite_version (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / spatialite_version() / / return a text string representing the current SpatiaLite version */ int len; const char *p_result = spatialite_version (); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ len = strlen (p_result); sqlite3_result_text (context, p_result, len, SQLITE_TRANSIENT); } static void fnct_geos_version (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / geos_version() / / return a text string representing the current GEOS version / or NULL if GEOS is currently unsupported */ #ifndef OMIT_GEOS /* GEOS version */ int len; const char *p_result = GEOSversion (); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ len = strlen (p_result); sqlite3_result_text (context, p_result, len, SQLITE_TRANSIENT); #else sqlite3_result_null (context); #endif } static void fnct_proj4_version (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / proj4_version() / / return a text string representing the current PROJ.4 version / or NULL if PROJ.4 is currently unsupported */ #ifndef OMIT_PROJ /* PROJ.4 version */ int len; const char *p_result = pj_get_release (); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ len = strlen (p_result); sqlite3_result_text (context, p_result, len, SQLITE_TRANSIENT); #else sqlite3_result_null (context); #endif } static void fnct_has_proj (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / HasProj() / / return 1 if built including Proj.4; otherwise 0 */ GAIA_UNUSED (); /* LCOV_EXCL_LINE */ #ifndef OMIT_PROJ /* PROJ.4 is supported */ sqlite3_result_int (context, 1); #else sqlite3_result_int (context, 0); #endif } static void fnct_has_geos (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / HasGeos() / / return 1 if built including GEOS; otherwise 0 */ GAIA_UNUSED (); /* LCOV_EXCL_LINE */ #ifndef OMIT_GEOS /* GEOS is supported */ sqlite3_result_int (context, 1); #else sqlite3_result_int (context, 0); #endif } static void fnct_has_geos_advanced (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / HasGeosAdvanced() / / return 1 if built including GEOS-ADVANCED; otherwise 0 */ GAIA_UNUSED (); /* LCOV_EXCL_LINE */ #ifdef GEOS_ADVANCED /* GEOS-ADVANCED is supported */ sqlite3_result_int (context, 1); #else sqlite3_result_int (context, 0); #endif } static void fnct_has_geos_trunk (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / HasGeosTrunk() / / return 1 if built including GEOS-TRUNK; otherwise 0 */ GAIA_UNUSED (); /* LCOV_EXCL_LINE */ #ifdef GEOS_TRUNK /* GEOS-TRUNK is supported */ sqlite3_result_int (context, 1); #else sqlite3_result_int (context, 0); #endif } static void fnct_lwgeom_version (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / lwgeom_version() / / return a text string representing the current LWGEOM version / or NULL if LWGEOM is currently unsupported */ #ifdef ENABLE_LWGEOM /* LWGEOM version */ int len; const char *p_result = splite_lwgeom_version (); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ len = strlen (p_result); sqlite3_result_text (context, p_result, len, SQLITE_TRANSIENT); #else GAIA_UNUSED (); /* LCOV_EXCL_LINE */ sqlite3_result_null (context); #endif } static void fnct_libxml2_version (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / libxml2_version() / / return a text string representing the current LIBXML2 version / or NULL if LIBXML2 is currently unsupported */ #ifdef ENABLE_LIBXML2 /* LIBXML2 version */ int len; const char *p_result = gaia_libxml2_version (); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ len = strlen (p_result); sqlite3_result_text (context, p_result, len, free); #else GAIA_UNUSED (); /* LCOV_EXCL_LINE */ sqlite3_result_null (context); #endif } static void fnct_has_lwgeom (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / HasLwGeom() / / return 1 if built including LWGEOM; otherwise 0 */ GAIA_UNUSED (); /* LCOV_EXCL_LINE */ #ifdef ENABLE_LWGEOM /* LWGEOM is supported */ sqlite3_result_int (context, 1); #else sqlite3_result_int (context, 0); #endif } static void fnct_has_iconv (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / HasIconv() / / return 1 if built including ICONV; otherwise 0 */ GAIA_UNUSED (); /* LCOV_EXCL_LINE */ #ifndef OMIT_ICONV /* ICONV is supported */ sqlite3_result_int (context, 1); #else sqlite3_result_int (context, 0); #endif } static void fnct_has_math_sql (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / HasMathSql() / / return 1 if built including MATHSQL; otherwise 0 */ GAIA_UNUSED (); /* LCOV_EXCL_LINE */ #ifndef OMIT_MATHSQL /* MATHSQL is supported */ sqlite3_result_int (context, 1); #else sqlite3_result_int (context, 0); #endif } static void fnct_has_geo_callbacks (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / HasGeoCallbacks() / / return 1 if built enabling GEOCALLBACKS; otherwise 0 */ GAIA_UNUSED (); /* LCOV_EXCL_LINE */ #ifndef OMIT_GEOCALLBACKS /* GEO-CALLBACKS are supported */ sqlite3_result_int (context, 1); #else sqlite3_result_int (context, 0); #endif } static void fnct_has_freeXL (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / HasFreeXL() / / return 1 if built including FreeXL; otherwise 0 */ GAIA_UNUSED (); /* LCOV_EXCL_LINE */ #ifndef OMIT_FREEXL /* FreeXL is supported */ sqlite3_result_int (context, 1); #else sqlite3_result_int (context, 0); #endif } static void fnct_has_epsg (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / HasEpsg() / / return 1 if built including EPSG; otherwise 0 */ GAIA_UNUSED (); /* LCOV_EXCL_LINE */ #ifndef OMIT_EPSG /* EPSG is supported */ sqlite3_result_int (context, 1); #else sqlite3_result_int (context, 0); #endif } static void fnct_has_libxml2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / HasLibXML2() / / return 1 if built including LIBXML2; otherwise 0 */ GAIA_UNUSED (); /* LCOV_EXCL_LINE */ #ifdef ENABLE_LIBXML2 /* LIBXML2 is supported */ sqlite3_result_int (context, 1); #else sqlite3_result_int (context, 0); #endif } static void fnct_GeometryConstraints (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / GeometryConstraints(BLOBencoded geometry, geometry-type, srid) / GeometryConstraints(BLOBencoded geometry, geometry-type, srid, dimensions) / / checks geometry constraints, returning: / / -1 - if some error occurred / 1 - if geometry constraints validation passes / 0 - if geometry constraints validation fails / */ int little_endian; int endian_arch = gaiaEndianArch (); unsigned char *p_blob = NULL; int n_bytes = 0; int srid; int geom_srid = -1; const char *type; int xtype; int geom_type = -1; int geom_normalized_type; const unsigned char *dimensions; int dims = GAIA_XY; int ret; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_BLOB || sqlite3_value_type (argv[0]) == SQLITE_NULL) ; else { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[1]) == SQLITE_TEXT) type = (const char *) sqlite3_value_text (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { /* current metadata style >= v.4.0.0 */ type = "UNKNOWN"; switch (sqlite3_value_int (argv[1])) { case 0: type = "GEOMETRY"; dims = GAIA_XY; break; case 1: type = "POINT"; dims = GAIA_XY; break; case 2: type = "LINESTRING"; dims = GAIA_XY; break; case 3: type = "POLYGON"; dims = GAIA_XY; break; case 4: type = "MULTIPOINT"; dims = GAIA_XY; break; case 5: type = "MULTILINESTRING"; dims = GAIA_XY; break; case 6: type = "MULTIPOLYGON"; dims = GAIA_XY; break; case 7: type = "GEOMETRYCOLLECTION"; dims = GAIA_XY; break; case 1000: type = "GEOMETRY"; dims = GAIA_XY_Z; break; case 1001: type = "POINT"; dims = GAIA_XY_Z; break; case 1002: type = "LINESTRING"; dims = GAIA_XY_Z; break; case 1003: type = "POLYGON"; dims = GAIA_XY_Z; break; case 1004: type = "MULTIPOINT"; dims = GAIA_XY_Z; break; case 1005: type = "MULTILINESTRING"; dims = GAIA_XY_Z; break; case 1006: type = "MULTIPOLYGON"; dims = GAIA_XY_Z; break; case 1007: type = "GEOMETRYCOLLECTION"; dims = GAIA_XY_Z; break; case 2000: type = "GEOMETRY"; dims = GAIA_XY_M; break; case 2001: type = "POINT"; dims = GAIA_XY_M; break; case 2002: type = "LINESTRING"; dims = GAIA_XY_M; break; case 2003: type = "POLYGON"; dims = GAIA_XY_M; break; case 2004: type = "MULTIPOINT"; dims = GAIA_XY_M; break; case 2005: type = "MULTILINESTRING"; dims = GAIA_XY_M; break; case 2006: type = "MULTIPOLYGON"; dims = GAIA_XY_M; break; case 2007: type = "GEOMETRYCOLLECTION"; dims = GAIA_XY_M; break; case 3000: type = "GEOMETRY"; dims = GAIA_XY_Z_M; break; case 3001: type = "POINT"; dims = GAIA_XY_Z_M; break; case 3002: type = "LINESTRING"; dims = GAIA_XY_Z_M; break; case 3003: type = "POLYGON"; dims = GAIA_XY_Z_M; break; case 3004: type = "MULTIPOINT"; dims = GAIA_XY_Z_M; break; case 3005: type = "MULTILINESTRING"; dims = GAIA_XY_Z_M; break; case 3006: type = "MULTIPOLYGON"; dims = GAIA_XY_Z_M; break; case 3007: type = "GEOMETRYCOLLECTION"; dims = GAIA_XY_Z_M; break; }; } else { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) srid = sqlite3_value_int (argv[2]); else { sqlite3_result_int (context, -1); return; } if (argc == 4) { /* explicit dimensions - supporting XYZM */ dimensions = sqlite3_value_text (argv[3]); if (strcasecmp ((char *) dimensions, "XYZ") == 0) dims = GAIA_XY_Z; else if (strcasecmp ((char *) dimensions, "XYM") == 0) dims = GAIA_XY_M; else if (strcasecmp ((char *) dimensions, "XYZM") == 0) dims = GAIA_XY_Z_M; else dims = GAIA_XY; } if (sqlite3_value_type (argv[0]) == SQLITE_BLOB) { p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); } if (p_blob) { /* quick Geometry validation */ if (n_bytes < 45) goto illegal_geometry; /* cannot be an internal BLOB WKB geometry */ if (*(p_blob + 0) != GAIA_MARK_START) goto illegal_geometry; /* failed to recognize START signature */ if (*(p_blob + (n_bytes - 1)) != GAIA_MARK_END) goto illegal_geometry; /* failed to recognize END signature */ if (*(p_blob + 38) != GAIA_MARK_MBR) goto illegal_geometry; /* failed to recognize MBR signature */ if (*(p_blob + 1) == GAIA_LITTLE_ENDIAN) little_endian = 1; else if (*(p_blob + 1) == GAIA_BIG_ENDIAN) little_endian = 0; else goto illegal_geometry; /* unknown encoding; neither little-endian nor big-endian */ geom_type = gaiaImport32 (p_blob + 39, little_endian, endian_arch); geom_srid = gaiaImport32 (p_blob + 2, little_endian, endian_arch); goto valid_geometry; illegal_geometry: sqlite3_result_int (context, -1); return; } valid_geometry: xtype = GAIA_UNKNOWN; if (strcasecmp ((char *) type, "POINT") == 0) { switch (dims) { case GAIA_XY_Z: xtype = GAIA_POINTZ; break; case GAIA_XY_M: xtype = GAIA_POINTM; break; case GAIA_XY_Z_M: xtype = GAIA_POINTZM; break; default: xtype = GAIA_POINT; break; }; } if (strcasecmp ((char *) type, "LINESTRING") == 0) { switch (dims) { case GAIA_XY_Z: xtype = GAIA_LINESTRINGZ; break; case GAIA_XY_M: xtype = GAIA_LINESTRINGM; break; case GAIA_XY_Z_M: xtype = GAIA_LINESTRINGZM; break; default: xtype = GAIA_LINESTRING; break; }; } if (strcasecmp ((char *) type, "POLYGON") == 0) { switch (dims) { case GAIA_XY_Z: xtype = GAIA_POLYGONZ; break; case GAIA_XY_M: xtype = GAIA_POLYGONM; break; case GAIA_XY_Z_M: xtype = GAIA_POLYGONZM; break; default: xtype = GAIA_POLYGON; break; }; } if (strcasecmp ((char *) type, "MULTIPOINT") == 0) { switch (dims) { case GAIA_XY_Z: xtype = GAIA_MULTIPOINTZ; break; case GAIA_XY_M: xtype = GAIA_MULTIPOINTM; break; case GAIA_XY_Z_M: xtype = GAIA_MULTIPOINTZM; break; default: xtype = GAIA_MULTIPOINT; break; }; } if (strcasecmp ((char *) type, "MULTILINESTRING") == 0) { switch (dims) { case GAIA_XY_Z: xtype = GAIA_MULTILINESTRINGZ; break; case GAIA_XY_M: xtype = GAIA_MULTILINESTRINGM; break; case GAIA_XY_Z_M: xtype = GAIA_MULTILINESTRINGZM; break; default: xtype = GAIA_MULTILINESTRING; break; }; } if (strcasecmp ((char *) type, "MULTIPOLYGON") == 0) { switch (dims) { case GAIA_XY_Z: xtype = GAIA_MULTIPOLYGONZ; break; case GAIA_XY_M: xtype = GAIA_MULTIPOLYGONM; break; case GAIA_XY_Z_M: xtype = GAIA_MULTIPOLYGONZM; break; default: xtype = GAIA_MULTIPOLYGON; break; }; } if (strcasecmp ((char *) type, "GEOMETRYCOLLECTION") == 0) { switch (dims) { case GAIA_XY_Z: xtype = GAIA_GEOMETRYCOLLECTIONZ; break; case GAIA_XY_M: xtype = GAIA_GEOMETRYCOLLECTIONM; break; case GAIA_XY_Z_M: xtype = GAIA_GEOMETRYCOLLECTIONZM; break; default: xtype = GAIA_GEOMETRYCOLLECTION; break; }; } switch (geom_type) { /* adjusting COMPRESSED Geometries */ case GAIA_COMPRESSED_LINESTRING: geom_normalized_type = GAIA_LINESTRING; break; case GAIA_COMPRESSED_LINESTRINGZ: geom_normalized_type = GAIA_LINESTRINGZ; break; case GAIA_COMPRESSED_LINESTRINGM: geom_normalized_type = GAIA_LINESTRINGM; break; case GAIA_COMPRESSED_LINESTRINGZM: geom_normalized_type = GAIA_LINESTRINGZM; break; case GAIA_COMPRESSED_POLYGON: geom_normalized_type = GAIA_POLYGON; break; case GAIA_COMPRESSED_POLYGONZ: geom_normalized_type = GAIA_POLYGONZ; break; case GAIA_COMPRESSED_POLYGONM: geom_normalized_type = GAIA_POLYGONM; break; case GAIA_COMPRESSED_POLYGONZM: geom_normalized_type = GAIA_POLYGONZM; break; default: geom_normalized_type = geom_type; break; }; if (strcasecmp ((char *) type, "GEOMETRY") == 0) xtype = -1; if (xtype == GAIA_UNKNOWN) sqlite3_result_int (context, -1); else { ret = 1; if (p_blob) { /* skipping NULL Geometry; this is assumed to be always good */ if (geom_srid != srid) ret = 0; if (xtype == -1) ; else if (xtype != geom_normalized_type) ret = 0; } sqlite3_result_int (context, ret); } } static void fnct_RTreeAlign (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / RTreeAlign(RTree-table-name, PKID-value, BLOBencoded geometry) / / attempts to update the associated R*Tree, returning: / / -1 - if some invalid arg was passed / 1 - succesfull update / 0 - update failure / */ unsigned char *p_blob = NULL; int n_bytes = 0; sqlite3_int64 pkid; const char *rtree_table; char *table_name; int len; char pkv[64]; gaiaGeomCollPtr geom = NULL; int ret; char *sql_statement; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) rtree_table = (const char *) sqlite3_value_text (argv[0]); else { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) pkid = sqlite3_value_int64 (argv[1]); else { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[2]) == SQLITE_BLOB || sqlite3_value_type (argv[2]) == SQLITE_NULL) ; else { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[2]) == SQLITE_BLOB) { p_blob = (unsigned char *) sqlite3_value_blob (argv[2]); n_bytes = sqlite3_value_bytes (argv[2]); geom = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); } if (geom == NULL) { /* NULL geometry: nothing to do */ sqlite3_result_int (context, 1); } else { /* INSERTing into the R*Tree */ if (*(rtree_table + 0) == '"' && *(rtree_table + strlen (rtree_table) - 1) == '"') { /* earlier versions may pass an already quoted name */ char *dequoted_table_name; len = strlen (rtree_table); table_name = malloc (len + 1); strcpy (table_name, rtree_table); dequoted_table_name = gaiaDequotedSql (table_name); free (table_name); if (dequoted_table_name == NULL) { sqlite3_result_int (context, -1); return; } table_name = gaiaDoubleQuotedSql (dequoted_table_name); free (dequoted_table_name); } else table_name = gaiaDoubleQuotedSql (rtree_table); sprintf (pkv, FRMT64, pkid); sql_statement = sqlite3_mprintf ("INSERT INTO \"%s\" (pkid, xmin, ymin, xmax, ymax) " "VALUES (%s, %1.12f, %1.12f, %1.12f, %1.12f)", table_name, pkv, geom->MinX, geom->MinY, geom->MaxX, geom->MaxY); gaiaFreeGeomColl (geom); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, NULL); sqlite3_free (sql_statement); free (table_name); if (ret != SQLITE_OK) sqlite3_result_int (context, 0); else sqlite3_result_int (context, 1); } } static void fnct_IsValidNoDataPixel (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / IsValidNoDataPixel(BLOBencoded pixel, text sample_type, int num_bands) / / basic version intended to be overloaded by RasterLite-2 / always return 0 (FALSE) / or -1 (INVALID ARGS) / */ GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) sqlite3_result_int (context, -1); if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) sqlite3_result_int (context, -1); if (sqlite3_value_type (argv[2]) != SQLITE_INTEGER) sqlite3_result_int (context, -1); sqlite3_result_int (context, 0); } static void fnct_IsPopulatedCoverage (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / IsPopulatedCoverage() / / check if a RasterCoverage is already populated / returns 1 if TRUE, 0 if FALSE / -1 on invalid arguments */ const char *coverage; int ret; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_int (context, -1); return; } coverage = (const char *) sqlite3_value_text (argv[0]); ret = checkPopulatedCoverage (sqlite, coverage); sqlite3_result_int (context, ret); return; } SPATIALITE_PRIVATE int checkSpatialMetaData (const void *handle) { /* internal utility function: / / for FDO-OGR interoperability and cross-version seamless compatibility: / tests the SpatialMetadata type, returning: / / 0 - if no valid SpatialMetaData where found / 1 - if SpatiaLite-like (legacy) SpatialMetadata where found / 2 - if FDO-OGR-like SpatialMetadata where found / 3 - if SpatiaLite-like (current) SpatialMetadata where found / */ sqlite3 *sqlite = (sqlite3 *) handle; int spatialite_legacy_rs = 0; int spatialite_rs = 0; int fdo_rs = 0; int spatialite_legacy_gc = 0; int spatialite_gc = 0; int fdo_gc = 0; int rs_srid = 0; int auth_name = 0; int auth_srid = 0; int srtext = 0; int ref_sys_name = 0; int proj4text = 0; int f_table_name = 0; int f_geometry_column = 0; int geometry_type = 0; int coord_dimension = 0; int gc_srid = 0; int geometry_format = 0; int type = 0; int spatial_index_enabled = 0; char sql[1024]; int ret; const char *name; int i; char **results; int rows; int columns; /* checking the GEOMETRY_COLUMNS table */ strcpy (sql, "PRAGMA table_info(geometry_columns)"); ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL); if (ret != SQLITE_OK) goto unknown; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 1]; if (strcasecmp (name, "f_table_name") == 0) f_table_name = 1; if (strcasecmp (name, "f_geometry_column") == 0) f_geometry_column = 1; if (strcasecmp (name, "geometry_type") == 0) geometry_type = 1; if (strcasecmp (name, "coord_dimension") == 0) coord_dimension = 1; if (strcasecmp (name, "srid") == 0) gc_srid = 1; if (strcasecmp (name, "geometry_format") == 0) geometry_format = 1; if (strcasecmp (name, "type") == 0) type = 1; if (strcasecmp (name, "spatial_index_enabled") == 0) spatial_index_enabled = 1; } } sqlite3_free_table (results); if (f_table_name && f_geometry_column && type && coord_dimension && gc_srid && spatial_index_enabled) spatialite_legacy_gc = 1; if (f_table_name && f_geometry_column && geometry_type && coord_dimension && gc_srid && spatial_index_enabled) spatialite_gc = 1; if (f_table_name && f_geometry_column && geometry_type && coord_dimension && gc_srid && geometry_format) fdo_gc = 1; /* checking the SPATIAL_REF_SYS table */ strcpy (sql, "PRAGMA table_info(spatial_ref_sys)"); ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL); if (ret != SQLITE_OK) goto unknown; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 1]; if (strcasecmp (name, "srid") == 0) rs_srid = 1; if (strcasecmp (name, "auth_name") == 0) auth_name = 1; if (strcasecmp (name, "auth_srid") == 0) auth_srid = 1; if (strcasecmp (name, "srtext") == 0) srtext = 1; if (strcasecmp (name, "ref_sys_name") == 0) ref_sys_name = 1; if (strcasecmp (name, "proj4text") == 0) proj4text = 1; if (strcasecmp (name, "srtext") == 0) srtext = 1; } } sqlite3_free_table (results); if (rs_srid && auth_name && auth_srid && ref_sys_name && proj4text && srtext) spatialite_rs = 1; if (rs_srid && auth_name && auth_srid && ref_sys_name && proj4text) spatialite_legacy_rs = 1; if (rs_srid && auth_name && auth_srid && srtext) fdo_rs = 1; /* verifying the MetaData format */ if (spatialite_legacy_gc && spatialite_legacy_rs) return 1; if (fdo_gc && fdo_rs) return 2; if (spatialite_gc && spatialite_rs) return 3; unknown: return 0; } static void add_fdo_table (struct fdo_table **first, struct fdo_table **last, const char *table, int len) { /* adds an FDO-OGR styled Geometry Table to corresponding linked list */ struct fdo_table *p = malloc (sizeof (struct fdo_table)); p->table = malloc (len + 1); strcpy (p->table, table); p->next = NULL; if (!(*first)) (*first) = p; if ((*last)) (*last)->next = p; (*last) = p; } static void free_fdo_tables (struct fdo_table *first) { /* memory cleanup; destroying the FDO-OGR tables linked list */ struct fdo_table *p; struct fdo_table *pn; p = first; while (p) { pn = p->next; if (p->table) free (p->table); free (p); p = pn; } } static void fnct_AutoFDOStart (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / AutoFDOStart(void) / / for FDO-OGR interoperability: / tests the SpatialMetadata type, then automatically / creating a VirtualFDO table for each FDO-OGR main table / declared within FDO-styled SpatialMetadata / */ int ret; const char *name; int i; char **results; int rows; int columns; char *sql_statement; int count = 0; struct fdo_table *first = NULL; struct fdo_table *last = NULL; struct fdo_table *p; int len; char *xname; char *xxname; char *xtable; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (checkSpatialMetaData (sqlite) == 2) { /* ok, creating VirtualFDO tables */ sql_statement = "SELECT DISTINCT f_table_name FROM geometry_columns"; ret = sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, NULL); if (ret != SQLITE_OK) goto error; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 0]; if (name) { len = strlen (name); add_fdo_table (&first, &last, name, len); } } } sqlite3_free_table (results); p = first; while (p) { /* destroying the VirtualFDO table [if existing] */ xxname = sqlite3_mprintf ("fdo_%s", p->table); xname = gaiaDoubleQuotedSql (xxname); sqlite3_free (xxname); sql_statement = sqlite3_mprintf ("DROP TABLE IF EXISTS \"%s\"", xname); free (xname); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; /* creating the VirtualFDO table */ xxname = sqlite3_mprintf ("fdo_%s", p->table); xname = gaiaDoubleQuotedSql (xxname); sqlite3_free (xxname); xtable = gaiaDoubleQuotedSql (p->table); sql_statement = sqlite3_mprintf ("CREATE VIRTUAL TABLE \"%s\" USING VirtualFDO(\"%s\")", xname, xtable); free (xname); free (xtable); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; count++; p = p->next; } error: free_fdo_tables (first); sqlite3_result_int (context, count); return; } sqlite3_result_int (context, 0); return; } static void fnct_AutoFDOStop (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / AutoFDOStop(void) / / for FDO-OGR interoperability: / tests the SpatialMetadata type, then automatically / removes any VirtualFDO table / */ int ret; const char *name; int i; char **results; int rows; int columns; char *sql_statement; int count = 0; struct fdo_table *first = NULL; struct fdo_table *last = NULL; struct fdo_table *p; int len; char *xname; char *xxname; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (checkSpatialMetaData (sqlite) == 2) { /* ok, creating VirtualFDO tables */ sql_statement = "SELECT DISTINCT f_table_name FROM geometry_columns"; ret = sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, NULL); if (ret != SQLITE_OK) goto error; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 0]; if (name) { len = strlen (name); add_fdo_table (&first, &last, name, len); } } } sqlite3_free_table (results); p = first; while (p) { /* destroying the VirtualFDO table [if existing] */ xxname = sqlite3_mprintf ("fdo_%s", p->table); xname = gaiaDoubleQuotedSql (xxname); sqlite3_free (xxname); sql_statement = sqlite3_mprintf ("DROP TABLE IF EXISTS \"%s\"", xname); free (xname); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; count++; p = p->next; } error: free_fdo_tables (first); sqlite3_result_int (context, count); return; } sqlite3_result_int (context, 0); return; } static void fnct_CheckSpatialMetaData (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CheckSpatialMetaData(void) / / for FDO-OGR interoperability: / tests the SpatialMetadata type, returning: / / 0 - if no valid SpatialMetaData where found / 1 - if SpatiaLite-legacy SpatialMetadata where found / 2- if FDO-OGR-like SpatialMetadata where found / 3 - if SpatiaLite-current SpatialMetadata where found / */ sqlite3 *sqlite; int ret; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ sqlite = sqlite3_context_db_handle (context); ret = checkSpatialMetaData (sqlite); if (ret == 3) { /* trying to create the advanced metadata tables >= v.4.0.0 */ createAdvancedMetaData (sqlite); } sqlite3_result_int (context, ret); return; } static void fnct_InitSpatialMetaData (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / InitSpatialMetaData() / or / InitSpatialMetaData(text mode) / or / InitSpatialMetaData(integer transaction) / or / InitSpatialMetaData(integer transaction, text mode) / / creates the SPATIAL_REF_SYS and GEOMETRY_COLUMNS tables / returns 1 on success / 0 on failure */ char sql[8192]; char *errMsg = NULL; int ret; int transaction = 0; const char *xmode; int mode = GAIA_EPSG_ANY; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (argc == 1) { if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) { xmode = (const char *) sqlite3_value_text (argv[0]); if (strcasecmp (xmode, "NONE") == 0 || strcasecmp (xmode, "EMPTY") == 0) mode = GAIA_EPSG_NONE; if (strcasecmp (xmode, "WGS84") == 0 || strcasecmp (xmode, "WGS84_ONLY") == 0) mode = GAIA_EPSG_WGS84_ONLY; } else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) transaction = sqlite3_value_int (argv[0]); else { spatialite_e ("InitSpatialMetaData() error: argument 1 is not of the String or Integer type\n"); sqlite3_result_int (context, 0); return; } } if (argc == 2) { if (sqlite3_value_type (argv[0]) != SQLITE_INTEGER) { spatialite_e ("InitSpatialMetaData() error: argument 1 is not of the Integer type\n"); sqlite3_result_int (context, 0); return; } if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { spatialite_e ("InitSpatialMetaData() error: argument 2 is not of the String type\n"); sqlite3_result_int (context, 0); return; } transaction = sqlite3_value_int (argv[0]); xmode = (const char *) sqlite3_value_text (argv[1]); if (strcasecmp (xmode, "NONE") == 0 || strcasecmp (xmode, "EMPTY") == 0) mode = GAIA_EPSG_NONE; if (strcasecmp (xmode, "WGS84") == 0 || strcasecmp (xmode, "WGS84_ONLY") == 0) mode = GAIA_EPSG_WGS84_ONLY; } if (transaction) { /* starting a Transaction */ ret = sqlite3_exec (sqlite, "BEGIN", NULL, NULL, &errMsg); if (ret != SQLITE_OK) goto error; } /* creating the SPATIAL_REF_SYS table */ strcpy (sql, "CREATE TABLE spatial_ref_sys (\n"); strcat (sql, "srid INTEGER NOT NULL PRIMARY KEY,\n"); strcat (sql, "auth_name TEXT NOT NULL,\n"); strcat (sql, "auth_srid INTEGER NOT NULL,\n"); strcat (sql, "ref_sys_name TEXT NOT NULL DEFAULT 'Unknown',\n"); strcat (sql, "proj4text TEXT NOT NULL,\n"); strcat (sql, "srtext TEXT NOT NULL DEFAULT 'Undefined')"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) goto error; strcpy (sql, "CREATE UNIQUE INDEX idx_spatial_ref_sys \n"); strcat (sql, "ON spatial_ref_sys (auth_srid, auth_name)"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) goto error; updateSpatiaLiteHistory (sqlite, "spatial_ref_sys", NULL, "table successfully created"); /* creating the GEOMETRY_COLUMNS table */ if (!createGeometryColumns (sqlite)) goto error; /* creating the GEOM_COLS_REF_SYS view */ strcpy (sql, "CREATE VIEW geom_cols_ref_sys AS\n"); strcat (sql, "SELECT f_table_name, f_geometry_column, geometry_type,\n"); strcat (sql, "coord_dimension, spatial_ref_sys.srid AS srid,\n"); strcat (sql, "auth_name, auth_srid, ref_sys_name, proj4text, srtext\n"); strcat (sql, "FROM geometry_columns, spatial_ref_sys\n"); strcat (sql, "WHERE geometry_columns.srid = spatial_ref_sys.srid"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); updateSpatiaLiteHistory (sqlite, "geom_cols_ref_sys", NULL, "view 'geom_cols_ref_sys' successfully created"); if (ret != SQLITE_OK) goto error; if (!createAdvancedMetaData (sqlite)) goto error; /* creating the SpatialIndex VIRTUAL TABLE */ strcpy (sql, "CREATE VIRTUAL TABLE SpatialIndex "); strcat (sql, "USING VirtualSpatialIndex()"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) goto error; if (spatial_ref_sys_init2 (sqlite, mode, 0)) { if (mode == GAIA_EPSG_NONE) updateSpatiaLiteHistory (sqlite, "spatial_ref_sys", NULL, "table successfully created [empty]"); else updateSpatiaLiteHistory (sqlite, "spatial_ref_sys", NULL, "table successfully populated"); } if (transaction) { /* confirming the still pending Transaction */ ret = sqlite3_exec (sqlite, "COMMIT", NULL, NULL, &errMsg); if (ret != SQLITE_OK) goto error; } sqlite3_result_int (context, 1); return; error: spatialite_e (" InitSpatiaMetaData() error:\"%s\"\n", errMsg); sqlite3_free (errMsg); if (transaction) { /* performing a Rollback */ ret = sqlite3_exec (sqlite, "ROLLBACK", NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e (" InitSpatiaMetaData() error:\"%s\"\n", errMsg); sqlite3_free (errMsg); } } sqlite3_result_int (context, 0); return; } static void fnct_InsertEpsgSrid (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / InsertEpsgSrid(int srid) / / returns 1 on success: 0 on failure */ int srid; int ret; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) srid = sqlite3_value_int (argv[0]); else { sqlite3_result_int (context, 0); return; } ret = insert_epsg_srid (sqlite, srid); if (!ret) sqlite3_result_int (context, 0); else sqlite3_result_int (context, 1); } static int recoverGeomColumn (sqlite3 * sqlite, const char *table, const char *column, int xtype, int dims, int srid) { /* checks if TABLE.COLUMN exists and has the required features */ int ok = 1; int type; sqlite3_stmt *stmt; gaiaGeomCollPtr geom; const void *blob_value; int len; int ret; int i_col; int is_nullable = 1; char *p_table; char *p_column; char *sql_statement; /* testing if NOT NULL */ p_table = gaiaDoubleQuotedSql (table); sql_statement = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", p_table); free (p_table); ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("recoverGeomColumn: \"%s\"\n", sqlite3_errmsg (sqlite)); return 0; } while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { if (strcasecmp (column, (const char *) sqlite3_column_text (stmt, 1)) == 0) { if (sqlite3_column_int (stmt, 2) != 0) is_nullable = 0; } } } sqlite3_finalize (stmt); p_table = gaiaDoubleQuotedSql (table); p_column = gaiaDoubleQuotedSql (column); sql_statement = sqlite3_mprintf ("SELECT \"%s\" FROM \"%s\"", p_column, p_table); free (p_table); free (p_column); /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("recoverGeomColumn: error %d \"%s\"\n", sqlite3_errcode (sqlite), sqlite3_errmsg (sqlite)); return 0; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, table, strlen (table), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, column, strlen (column), SQLITE_STATIC); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* checking Geometry features */ geom = NULL; for (i_col = 0; i_col < sqlite3_column_count (stmt); i_col++) { if (sqlite3_column_type (stmt, i_col) == SQLITE_NULL) { /* found a NULL geometry */ if (!is_nullable) ok = 0; } else if (sqlite3_column_type (stmt, i_col) != SQLITE_BLOB) ok = 0; else { blob_value = sqlite3_column_blob (stmt, i_col); len = sqlite3_column_bytes (stmt, i_col); geom = gaiaFromSpatiaLiteBlobWkb (blob_value, len); if (!geom) ok = 0; else { if (geom->DimensionModel != dims) ok = 0; if (geom->Srid != srid) ok = 0; type = gaiaGeometryType (geom); if (xtype == -1) ; /* GEOMETRY */ else { if (xtype == type) ; else ok = 0; } gaiaFreeGeomColl (geom); } } } } if (!ok) break; } ret = sqlite3_finalize (stmt); if (ret != SQLITE_OK) { spatialite_e ("recoverGeomColumn: error %d \"%s\"\n", sqlite3_errcode (sqlite), sqlite3_errmsg (sqlite)); return 0; } return ok; } static void fnct_AddGeometryColumn (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / AddGeometryColumn(table, column, srid, type [ , dimension [ , not-null ] ] ) / / creates a new COLUMN of given TYPE into TABLE / returns 1 on success / 0 on failure */ const char *table; const char *column; const unsigned char *type; const unsigned char *txt_dims; int xtype; int srid = -1; int dimension = 2; int dims = -1; int auto_dims = -1; char sql[1024]; int ret; int notNull = 0; int metadata_version; sqlite3_stmt *stmt; char *p_table = NULL; const char *name; int len; char *quoted_table; char *quoted_column; const char *p_type; const char *p_dims; int n_type; int n_dims; char *sql_statement; sqlite3 *sqlite = sqlite3_context_db_handle (context); if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { spatialite_e ("AddGeometryColumn() error: argument 1 [table_name] is not of the String type\n"); sqlite3_result_int (context, 0); return; } table = (const char *) sqlite3_value_text (argv[0]); if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { spatialite_e ("AddGeometryColumn() error: argument 2 [column_name] is not of the String type\n"); sqlite3_result_int (context, 0); return; } column = (const char *) sqlite3_value_text (argv[1]); if (sqlite3_value_type (argv[2]) != SQLITE_INTEGER) { spatialite_e ("AddGeometryColumn() error: argument 3 [SRID] is not of the Integer type\n"); sqlite3_result_int (context, 0); return; } srid = sqlite3_value_int (argv[2]); if (sqlite3_value_type (argv[3]) != SQLITE_TEXT) { spatialite_e ("AddGeometryColumn() error: argument 4 [geometry_type] is not of the String type\n"); sqlite3_result_int (context, 0); return; } type = sqlite3_value_text (argv[3]); if (argc > 4) { if (sqlite3_value_type (argv[4]) == SQLITE_INTEGER) { dimension = sqlite3_value_int (argv[4]); if (dimension == 2) dims = GAIA_XY; if (dimension == 3) dims = GAIA_XY_Z; if (dimension == 4) dims = GAIA_XY_Z_M; } else if (sqlite3_value_type (argv[4]) == SQLITE_TEXT) { txt_dims = sqlite3_value_text (argv[4]); if (strcasecmp ((char *) txt_dims, "XY") == 0) dims = GAIA_XY; if (strcasecmp ((char *) txt_dims, "XYZ") == 0) dims = GAIA_XY_Z; if (strcasecmp ((char *) txt_dims, "XYM") == 0) dims = GAIA_XY_M; if (strcasecmp ((char *) txt_dims, "XYZM") == 0) dims = GAIA_XY_Z_M; } else { spatialite_e ("AddGeometryColumn() error: argument 5 [dimension] is not of the Integer or Text type\n"); sqlite3_result_int (context, 0); return; } } if (argc == 6) { /* optional NOT NULL arg */ if (sqlite3_value_type (argv[5]) != SQLITE_INTEGER) { spatialite_e ("AddGeometryColumn() error: argument 6 [not null] is not of the Integer type\n"); sqlite3_result_int (context, 0); return; } notNull = sqlite3_value_int (argv[5]); } xtype = GAIA_UNKNOWN; if (strcasecmp ((char *) type, "POINT") == 0) { auto_dims = GAIA_XY; xtype = GAIA_POINT; } if (strcasecmp ((char *) type, "LINESTRING") == 0) { auto_dims = GAIA_XY; xtype = GAIA_LINESTRING; } if (strcasecmp ((char *) type, "POLYGON") == 0) { auto_dims = GAIA_XY; xtype = GAIA_POLYGON; } if (strcasecmp ((char *) type, "MULTIPOINT") == 0) { auto_dims = GAIA_XY; xtype = GAIA_MULTIPOINT; } if (strcasecmp ((char *) type, "MULTILINESTRING") == 0) { auto_dims = GAIA_XY; xtype = GAIA_MULTILINESTRING; } if (strcasecmp ((char *) type, "MULTIPOLYGON") == 0) { auto_dims = GAIA_XY; xtype = GAIA_MULTIPOLYGON; } if (strcasecmp ((char *) type, "GEOMETRYCOLLECTION") == 0) { auto_dims = GAIA_XY; xtype = GAIA_GEOMETRYCOLLECTION; } if (strcasecmp ((char *) type, "GEOMETRY") == 0) { auto_dims = GAIA_XY; xtype = -1; } if (strcasecmp ((char *) type, "POINTZ") == 0) { auto_dims = GAIA_XY_Z; xtype = GAIA_POINT; } if (strcasecmp ((char *) type, "LINESTRINGZ") == 0) { auto_dims = GAIA_XY_Z; xtype = GAIA_LINESTRING; } if (strcasecmp ((char *) type, "POLYGONZ") == 0) { auto_dims = GAIA_XY_Z; xtype = GAIA_POLYGON; } if (strcasecmp ((char *) type, "MULTIPOINTZ") == 0) { auto_dims = GAIA_XY_Z; xtype = GAIA_MULTIPOINT; } if (strcasecmp ((char *) type, "MULTILINESTRINGZ") == 0) { auto_dims = GAIA_XY_Z; xtype = GAIA_MULTILINESTRING; } if (strcasecmp ((char *) type, "MULTIPOLYGONZ") == 0) { auto_dims = GAIA_XY_Z; xtype = GAIA_MULTIPOLYGON; } if (strcasecmp ((char *) type, "GEOMETRYCOLLECTIONZ") == 0) { auto_dims = GAIA_XY_Z; xtype = GAIA_GEOMETRYCOLLECTION; } if (strcasecmp ((char *) type, "GEOMETRYZ") == 0) { auto_dims = GAIA_XY_Z; xtype = -1; } if (strcasecmp ((char *) type, "POINTM") == 0) { auto_dims = GAIA_XY_M; xtype = GAIA_POINT; } if (strcasecmp ((char *) type, "LINESTRINGM") == 0) { auto_dims = GAIA_XY_M; xtype = GAIA_LINESTRING; } if (strcasecmp ((char *) type, "POLYGONM") == 0) { auto_dims = GAIA_XY_M; xtype = GAIA_POLYGON; } if (strcasecmp ((char *) type, "MULTIPOINTM") == 0) { auto_dims = GAIA_XY_M; xtype = GAIA_MULTIPOINT; } if (strcasecmp ((char *) type, "MULTILINESTRINGM") == 0) { auto_dims = GAIA_XY_M; xtype = GAIA_MULTILINESTRING; } if (strcasecmp ((char *) type, "MULTIPOLYGONM") == 0) { auto_dims = GAIA_XY_M; xtype = GAIA_MULTIPOLYGON; } if (strcasecmp ((char *) type, "GEOMETRYCOLLECTIONM") == 0) { auto_dims = GAIA_XY_M; xtype = GAIA_GEOMETRYCOLLECTION; } if (strcasecmp ((char *) type, "GEOMETRYM") == 0) { auto_dims = GAIA_XY_M; xtype = -1; } if (strcasecmp ((char *) type, "POINTZM") == 0) { auto_dims = GAIA_XY_Z_M; xtype = GAIA_POINT; } if (strcasecmp ((char *) type, "LINESTRINGZM") == 0) { auto_dims = GAIA_XY_Z_M; xtype = GAIA_LINESTRING; } if (strcasecmp ((char *) type, "POLYGONZM") == 0) { auto_dims = GAIA_XY_Z_M; xtype = GAIA_POLYGON; } if (strcasecmp ((char *) type, "MULTIPOINTZM") == 0) { auto_dims = GAIA_XY_Z_M; xtype = GAIA_MULTIPOINT; } if (strcasecmp ((char *) type, "MULTILINESTRINGZM") == 0) { auto_dims = GAIA_XY_Z_M; xtype = GAIA_MULTILINESTRING; } if (strcasecmp ((char *) type, "MULTIPOLYGONZM") == 0) { auto_dims = GAIA_XY_Z_M; xtype = GAIA_MULTIPOLYGON; } if (strcasecmp ((char *) type, "GEOMETRYCOLLECTIONZM") == 0) { auto_dims = GAIA_XY_Z_M; xtype = GAIA_GEOMETRYCOLLECTION; } if (strcasecmp ((char *) type, "GEOMETRYZM") == 0) { auto_dims = GAIA_XY_Z_M; xtype = -1; } if (xtype == GAIA_UNKNOWN) { spatialite_e ("AddGeometryColumn() error: argument 4 [geometry_type] has an illegal value\n"); sqlite3_result_int (context, 0); return; } if (dims < 0) dims = auto_dims; if (dims == GAIA_XY || dims == GAIA_XY_Z || dims == GAIA_XY_M || dims == GAIA_XY_Z_M) ; else { spatialite_e ("AddGeometryColumn() error: argument 5 [dimension] ILLEGAL VALUE\n"); sqlite3_result_int (context, 0); return; } if (auto_dims != GAIA_XY && dims != auto_dims) { spatialite_e ("AddGeometryColumn() error: argument 5 [dimension] ILLEGAL VALUE\n"); sqlite3_result_int (context, 0); return; } /* checking if the table exists */ strcpy (sql, "SELECT name FROM sqlite_master WHERE type = 'table' AND Lower(name) = Lower(?)"); ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("AddGeometryColumn: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_result_int (context, 0); return; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, table, strlen (table), SQLITE_STATIC); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { name = (const char *) sqlite3_column_text (stmt, 0); len = sqlite3_column_bytes (stmt, 0); if (p_table) free (p_table); p_table = malloc (len + 1); strcpy (p_table, name); } } sqlite3_finalize (stmt); if (!p_table) { spatialite_e ("AddGeometryColumn() error: table '%s' does not exist\n", table); sqlite3_result_int (context, 0); return; } metadata_version = checkSpatialMetaData (sqlite); if (metadata_version == 1 || metadata_version == 3) ; else { spatialite_e ("AddGeometryColumn() error: unexpected metadata layout\n"); sqlite3_result_int (context, 0); return; } /* trying to add the column */ switch (xtype) { case GAIA_POINT: p_type = "POINT"; break; case GAIA_LINESTRING: p_type = "LINESTRING"; break; case GAIA_POLYGON: p_type = "POLYGON"; break; case GAIA_MULTIPOINT: p_type = "MULTIPOINT"; break; case GAIA_MULTILINESTRING: p_type = "MULTILINESTRING"; break; case GAIA_MULTIPOLYGON: p_type = "MULTIPOLYGON"; break; case GAIA_GEOMETRYCOLLECTION: p_type = "GEOMETRYCOLLECTION"; break; case -1: p_type = "GEOMETRY"; break; }; quoted_table = gaiaDoubleQuotedSql (p_table); quoted_column = gaiaDoubleQuotedSql (column); if (notNull) { /* adding a NOT NULL clause */ sql_statement = sqlite3_mprintf ("ALTER TABLE \"%s\" ADD COLUMN \"%s\" " "%s NOT NULL DEFAULT ''", quoted_table, quoted_column, p_type); } else sql_statement = sqlite3_mprintf ("ALTER TABLE \"%s\" ADD COLUMN \"%s\" %s ", quoted_table, quoted_column, p_type); free (quoted_table); free (quoted_column); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("AddGeometryColumn: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_result_int (context, 0); free (p_table); return; } /*ok, inserting into geometry_columns [Spatial Metadata] */ if (metadata_version == 1) { /* legacy metadata style <= v.3.1.0 */ switch (xtype) { case GAIA_POINT: p_type = "POINT"; break; case GAIA_LINESTRING: p_type = "LINESTRING"; break; case GAIA_POLYGON: p_type = "POLYGON"; break; case GAIA_MULTIPOINT: p_type = "MULTIPOINT"; break; case GAIA_MULTILINESTRING: p_type = "MULTILINESTRING"; break; case GAIA_MULTIPOLYGON: p_type = "MULTIPOLYGON"; break; case GAIA_GEOMETRYCOLLECTION: p_type = "GEOMETRYCOLLECTION"; break; case -1: p_type = "GEOMETRY"; break; }; switch (dims) { case GAIA_XY: p_dims = "XY"; break; case GAIA_XY_Z: p_dims = "XYZ"; break; case GAIA_XY_M: p_dims = "XYM"; break; case GAIA_XY_Z_M: p_dims = "XYZM"; break; }; sql_statement = sqlite3_mprintf ("INSERT INTO geometry_columns " "(f_table_name, f_geometry_column, type, coord_dimension, srid, " "spatial_index_enabled) VALUES (?, ?, %Q, %Q, ?, 0)", p_type, p_dims); } else { /* current metadata style >= v.4.0.0 */ switch (xtype) { case GAIA_POINT: if (dims == GAIA_XY_Z) n_type = 1001; else if (dims == GAIA_XY_M) n_type = 2001; else if (dims == GAIA_XY_Z_M) n_type = 3001; else n_type = 1; break; case GAIA_LINESTRING: if (dims == GAIA_XY_Z) n_type = 1002; else if (dims == GAIA_XY_M) n_type = 2002; else if (dims == GAIA_XY_Z_M) n_type = 3002; else n_type = 2; break; case GAIA_POLYGON: if (dims == GAIA_XY_Z) n_type = 1003; else if (dims == GAIA_XY_M) n_type = 2003; else if (dims == GAIA_XY_Z_M) n_type = 3003; else n_type = 3; break; case GAIA_MULTIPOINT: if (dims == GAIA_XY_Z) n_type = 1004; else if (dims == GAIA_XY_M) n_type = 2004; else if (dims == GAIA_XY_Z_M) n_type = 3004; else n_type = 4; break; case GAIA_MULTILINESTRING: if (dims == GAIA_XY_Z) n_type = 1005; else if (dims == GAIA_XY_M) n_type = 2005; else if (dims == GAIA_XY_Z_M) n_type = 3005; else n_type = 5; break; case GAIA_MULTIPOLYGON: if (dims == GAIA_XY_Z) n_type = 1006; else if (dims == GAIA_XY_M) n_type = 2006; else if (dims == GAIA_XY_Z_M) n_type = 3006; else n_type = 6; break; case GAIA_GEOMETRYCOLLECTION: if (dims == GAIA_XY_Z) n_type = 1007; else if (dims == GAIA_XY_M) n_type = 2007; else if (dims == GAIA_XY_Z_M) n_type = 3007; else n_type = 7; break; case -1: if (dims == GAIA_XY_Z) n_type = 1000; else if (dims == GAIA_XY_M) n_type = 2000; else if (dims == GAIA_XY_Z_M) n_type = 3000; else n_type = 0; break; }; switch (dims) { case GAIA_XY: n_dims = 2; break; case GAIA_XY_Z: case GAIA_XY_M: n_dims = 3; break; case GAIA_XY_Z_M: n_dims = 4; break; }; sql_statement = sqlite3_mprintf ("INSERT INTO geometry_columns " "(f_table_name, f_geometry_column, geometry_type, coord_dimension, " "srid, spatial_index_enabled) VALUES (Lower(?), Lower(?), %d, %d, ?, 0)", n_type, n_dims); } ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("AddGeometryColumn: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_result_int (context, 0); free (p_table); return; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, p_table, strlen (p_table), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, column, strlen (column), SQLITE_STATIC); if (srid < 0) sqlite3_bind_int (stmt, 3, -1); else sqlite3_bind_int (stmt, 3, srid); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("AddGeometryColumn() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); goto error; } sqlite3_finalize (stmt); if (metadata_version == 3) { /* current metadata style >= v.4.0.0 */ /* inserting a row into GEOMETRY_COLUMNS_AUTH */ strcpy (sql, "INSERT OR REPLACE INTO geometry_columns_auth (f_table_name, f_geometry_column, "); strcat (sql, "read_only, hidden) VALUES (Lower(?), Lower(?), 0, 0)"); ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("AddGeometryColumn: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_result_int (context, 0); free (p_table); return; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, table, strlen (table), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, column, strlen (column), SQLITE_STATIC); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("AddGeometryColumn() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); goto error; } sqlite3_finalize (stmt); /* inserting a row into GEOMETRY_COLUMNS_STATISTICS */ strcpy (sql, "INSERT OR REPLACE INTO geometry_columns_statistics (f_table_name, f_geometry_column) "); strcat (sql, "VALUES (Lower(?), Lower(?))"); ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("AddGeometryColumn: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_result_int (context, 0); free (p_table); return; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, table, strlen (table), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, column, strlen (column), SQLITE_STATIC); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("AddGeometryColumn() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); goto error; } sqlite3_finalize (stmt); /* inserting a row into GEOMETRY_COLUMNS_TIME */ strcpy (sql, "INSERT OR REPLACE INTO geometry_columns_time (f_table_name, f_geometry_column) "); strcat (sql, "VALUES (Lower(?), Lower(?))"); ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("AddGeometryColumn: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_result_int (context, 0); free (p_table); return; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, table, strlen (table), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, column, strlen (column), SQLITE_STATIC); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("AddGeometryColumn() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); goto error; } sqlite3_finalize (stmt); } updateGeometryTriggers (sqlite, table, column); sqlite3_result_int (context, 1); switch (xtype) { case GAIA_POINT: p_type = "POINT"; break; case GAIA_LINESTRING: p_type = "LINESTRING"; break; case GAIA_POLYGON: p_type = "POLYGON"; break; case GAIA_MULTIPOINT: p_type = "MULTIPOINT"; break; case GAIA_MULTILINESTRING: p_type = "MULTILINESTRING"; break; case GAIA_MULTIPOLYGON: p_type = "MULTIPOLYGON"; break; case GAIA_GEOMETRYCOLLECTION: p_type = "GEOMETRYCOLLECTION"; break; case -1: p_type = "GEOMETRY"; break; }; switch (dims) { case GAIA_XY: p_dims = "XY"; break; case GAIA_XY_Z: p_dims = "XYZ"; break; case GAIA_XY_M: p_dims = "XYM"; break; case GAIA_XY_Z_M: p_dims = "XYZM"; break; }; sql_statement = sqlite3_mprintf ("Geometry [%s,%s,SRID=%d] successfully created", p_type, p_dims, (srid <= 0) ? -1 : srid); updateSpatiaLiteHistory (sqlite, table, column, sql_statement); sqlite3_free (sql_statement); free (p_table); return; error: sqlite3_result_int (context, 0); free (p_table); return; } static void fnct_RecoverGeometryColumn (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / RecoverGeometryColumn(table, column, srid, type , dimension ) / / checks if an existing TABLE.COLUMN satisfies the required geometric features / if yes adds it to SpatialMetaData and enabling triggers / returns 1 on success / 0 on failure */ const char *table; const char *column; const unsigned char *type; int xtype; int xxtype; int srid = -1; const unsigned char *txt_dims; int dimension = 2; int dims = -1; int auto_dims = -1; char sql[1024]; int ret; int metadata_version; sqlite3_stmt *stmt; int exists = 0; const char *p_type; const char *p_dims; int n_type; int n_dims; char *sql_statement; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { spatialite_e ("RecoverGeometryColumn() error: argument 1 [table_name] is not of the String type\n"); sqlite3_result_int (context, 0); return; } table = (const char *) sqlite3_value_text (argv[0]); if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { spatialite_e ("RecoverGeometryColumn() error: argument 2 [column_name] is not of the String type\n"); sqlite3_result_int (context, 0); return; } column = (const char *) sqlite3_value_text (argv[1]); if (sqlite3_value_type (argv[2]) != SQLITE_INTEGER) { spatialite_e ("RecoverGeometryColumn() error: argument 3 [SRID] is not of the Integer type\n"); sqlite3_result_int (context, 0); return; } srid = sqlite3_value_int (argv[2]); if (sqlite3_value_type (argv[3]) != SQLITE_TEXT) { spatialite_e ("RecoverGeometryColumn() error: argument 4 [geometry_type] is not of the String type\n"); sqlite3_result_int (context, 0); return; } type = sqlite3_value_text (argv[3]); if (argc == 5) { if (sqlite3_value_type (argv[4]) == SQLITE_INTEGER) { dimension = sqlite3_value_int (argv[4]); if (dimension == 2) dims = GAIA_XY; if (dimension == 3) dims = GAIA_XY_Z; if (dimension == 4) dims = GAIA_XY_Z_M; } else if (sqlite3_value_type (argv[4]) == SQLITE_TEXT) { txt_dims = sqlite3_value_text (argv[4]); if (strcasecmp ((char *) txt_dims, "XY") == 0) dims = GAIA_XY; if (strcasecmp ((char *) txt_dims, "XYZ") == 0) dims = GAIA_XY_Z; if (strcasecmp ((char *) txt_dims, "XYM") == 0) dims = GAIA_XY_M; if (strcasecmp ((char *) txt_dims, "XYZM") == 0) dims = GAIA_XY_Z_M; } else { spatialite_e ("RecoverGeometryColumn() error: argument 5 [dimension] is not of the Integer or Text type\n"); sqlite3_result_int (context, 0); return; } } xtype = GAIA_UNKNOWN; if (strcasecmp ((char *) type, "POINT") == 0) { auto_dims = GAIA_XY; xtype = GAIA_POINT; } if (strcasecmp ((char *) type, "LINESTRING") == 0) { auto_dims = GAIA_XY; xtype = GAIA_LINESTRING; } if (strcasecmp ((char *) type, "POLYGON") == 0) { auto_dims = GAIA_XY; xtype = GAIA_POLYGON; } if (strcasecmp ((char *) type, "MULTIPOINT") == 0) { auto_dims = GAIA_XY; xtype = GAIA_MULTIPOINT; } if (strcasecmp ((char *) type, "MULTILINESTRING") == 0) { auto_dims = GAIA_XY; xtype = GAIA_MULTILINESTRING; } if (strcasecmp ((char *) type, "MULTIPOLYGON") == 0) { auto_dims = GAIA_XY; xtype = GAIA_MULTIPOLYGON; } if (strcasecmp ((char *) type, "GEOMETRYCOLLECTION") == 0) { auto_dims = GAIA_XY; xtype = GAIA_GEOMETRYCOLLECTION; } if (strcasecmp ((char *) type, "GEOMETRY") == 0) { auto_dims = GAIA_XY; xtype = -1; } if (strcasecmp ((char *) type, "POINTZ") == 0) { auto_dims = GAIA_XY_Z; xtype = GAIA_POINT; } if (strcasecmp ((char *) type, "LINESTRINGZ") == 0) { auto_dims = GAIA_XY_Z; xtype = GAIA_LINESTRING; } if (strcasecmp ((char *) type, "POLYGONZ") == 0) { auto_dims = GAIA_XY_Z; xtype = GAIA_POLYGON; } if (strcasecmp ((char *) type, "MULTIPOINTZ") == 0) { auto_dims = GAIA_XY_Z; xtype = GAIA_MULTIPOINT; } if (strcasecmp ((char *) type, "MULTILINESTRINGZ") == 0) { auto_dims = GAIA_XY_Z; xtype = GAIA_MULTILINESTRING; } if (strcasecmp ((char *) type, "MULTIPOLYGONZ") == 0) { auto_dims = GAIA_XY_Z; xtype = GAIA_MULTIPOLYGON; } if (strcasecmp ((char *) type, "GEOMETRYCOLLECTIONZ") == 0) { auto_dims = GAIA_XY_Z; xtype = GAIA_GEOMETRYCOLLECTION; } if (strcasecmp ((char *) type, "GEOMETRYZ") == 0) { auto_dims = GAIA_XY_Z; xtype = -1; } if (strcasecmp ((char *) type, "POINTM") == 0) { auto_dims = GAIA_XY_M; xtype = GAIA_POINT; } if (strcasecmp ((char *) type, "LINESTRINGM") == 0) { auto_dims = GAIA_XY_M; xtype = GAIA_LINESTRING; } if (strcasecmp ((char *) type, "POLYGONM") == 0) { auto_dims = GAIA_XY_M; xtype = GAIA_POLYGON; } if (strcasecmp ((char *) type, "MULTIPOINTM") == 0) { auto_dims = GAIA_XY_M; xtype = GAIA_MULTIPOINT; } if (strcasecmp ((char *) type, "MULTILINESTRINGM") == 0) { auto_dims = GAIA_XY_M; xtype = GAIA_MULTILINESTRING; } if (strcasecmp ((char *) type, "MULTIPOLYGONM") == 0) { auto_dims = GAIA_XY_M; xtype = GAIA_MULTIPOLYGON; } if (strcasecmp ((char *) type, "GEOMETRYCOLLECTIONM") == 0) { auto_dims = GAIA_XY_M; xtype = GAIA_GEOMETRYCOLLECTION; } if (strcasecmp ((char *) type, "GEOMETRYM") == 0) { auto_dims = GAIA_XY_M; xtype = -1; } if (strcasecmp ((char *) type, "POINTZM") == 0) { auto_dims = GAIA_XY_Z_M; xtype = GAIA_POINT; } if (strcasecmp ((char *) type, "LINESTRINGZM") == 0) { auto_dims = GAIA_XY_Z_M; xtype = GAIA_LINESTRING; } if (strcasecmp ((char *) type, "POLYGONZM") == 0) { auto_dims = GAIA_XY_Z_M; xtype = GAIA_POLYGON; } if (strcasecmp ((char *) type, "MULTIPOINTZM") == 0) { auto_dims = GAIA_XY_Z_M; xtype = GAIA_MULTIPOINT; } if (strcasecmp ((char *) type, "MULTILINESTRINGZM") == 0) { auto_dims = GAIA_XY_Z_M; xtype = GAIA_MULTILINESTRING; } if (strcasecmp ((char *) type, "MULTIPOLYGONZM") == 0) { auto_dims = GAIA_XY_Z_M; xtype = GAIA_MULTIPOLYGON; } if (strcasecmp ((char *) type, "GEOMETRYCOLLECTIONZM") == 0) { auto_dims = GAIA_XY_Z_M; xtype = GAIA_GEOMETRYCOLLECTION; } if (strcasecmp ((char *) type, "GEOMETRYZM") == 0) { auto_dims = GAIA_XY_Z_M; xtype = -1; } if (dims < 0) dims = auto_dims; if (xtype == GAIA_UNKNOWN) { spatialite_e ("RecoverGeometryColumn() error: argument 4 [geometry_type] has an illegal value\n"); sqlite3_result_int (context, 0); return; } if (dims == GAIA_XY || dims == GAIA_XY_Z || dims == GAIA_XY_M || dims == GAIA_XY_Z_M) ; else { spatialite_e ("RecoverGeometryColumn() error: argument 5 [dimension] ILLEGAL VALUE\n"); sqlite3_result_int (context, 0); return; } if (auto_dims != GAIA_XY && dims != auto_dims) { spatialite_e ("RecoverGeometryColumn() error: argument 5 [dimension] ILLEGAL VALUE\n"); sqlite3_result_int (context, 0); return; } metadata_version = checkSpatialMetaData (sqlite); if (metadata_version == 1 || metadata_version == 3) ; else { spatialite_e ("RecoverGeometryColumn() error: unexpected metadata layout\n"); sqlite3_result_int (context, 0); return; } /* checking if the table exists */ strcpy (sql, "SELECT name FROM sqlite_master WHERE type = 'table' AND Lower(name) = Lower(?)"); ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("RecoverGeometryColumn: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_result_int (context, 0); return; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, table, strlen (table), SQLITE_STATIC); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT) exists = 1; } } sqlite3_finalize (stmt); if (!exists) { spatialite_e ("RecoverGeometryColumn() error: table '%s' does not exist\n", table); sqlite3_result_int (context, 0); return; } /* adjusting the actual GeometryType */ xxtype = xtype; xtype = GAIA_UNKNOWN; if (xxtype == GAIA_POINT) { switch (dims) { case GAIA_XY_Z: xtype = GAIA_POINTZ; break; case GAIA_XY_M: xtype = GAIA_POINTM; break; case GAIA_XY_Z_M: xtype = GAIA_POINTZM; break; default: xtype = GAIA_POINT; break; }; } if (xxtype == GAIA_LINESTRING) { switch (dims) { case GAIA_XY_Z: xtype = GAIA_LINESTRINGZ; break; case GAIA_XY_M: xtype = GAIA_LINESTRINGM; break; case GAIA_XY_Z_M: xtype = GAIA_LINESTRINGZM; break; default: xtype = GAIA_LINESTRING; break; }; } if (xxtype == GAIA_POLYGON) { switch (dims) { case GAIA_XY_Z: xtype = GAIA_POLYGONZ; break; case GAIA_XY_M: xtype = GAIA_POLYGONM; break; case GAIA_XY_Z_M: xtype = GAIA_POLYGONZM; break; default: xtype = GAIA_POLYGON; break; }; } if (xxtype == GAIA_MULTIPOINT) { switch (dims) { case GAIA_XY_Z: xtype = GAIA_MULTIPOINTZ; break; case GAIA_XY_M: xtype = GAIA_MULTIPOINTM; break; case GAIA_XY_Z_M: xtype = GAIA_MULTIPOINTZM; break; default: xtype = GAIA_MULTIPOINT; break; }; } if (xxtype == GAIA_MULTILINESTRING) { switch (dims) { case GAIA_XY_Z: xtype = GAIA_MULTILINESTRINGZ; break; case GAIA_XY_M: xtype = GAIA_MULTILINESTRINGM; break; case GAIA_XY_Z_M: xtype = GAIA_MULTILINESTRINGZM; break; default: xtype = GAIA_MULTILINESTRING; break; }; } if (xxtype == GAIA_MULTIPOLYGON) { switch (dims) { case GAIA_XY_Z: xtype = GAIA_MULTIPOLYGONZ; break; case GAIA_XY_M: xtype = GAIA_MULTIPOLYGONM; break; case GAIA_XY_Z_M: xtype = GAIA_MULTIPOLYGONZM; break; default: xtype = GAIA_MULTIPOLYGON; break; }; } if (xxtype == GAIA_GEOMETRYCOLLECTION) { switch (dims) { case GAIA_XY_Z: xtype = GAIA_GEOMETRYCOLLECTIONZ; break; case GAIA_XY_M: xtype = GAIA_GEOMETRYCOLLECTIONM; break; case GAIA_XY_Z_M: xtype = GAIA_GEOMETRYCOLLECTIONZM; break; default: xtype = GAIA_GEOMETRYCOLLECTION; break; }; } if (xxtype == -1) xtype = -1; /* GEOMETRY */ if (!recoverGeomColumn (sqlite, table, column, xtype, dims, srid)) { spatialite_e ("RecoverGeometryColumn(): validation failed\n"); sqlite3_result_int (context, 0); return; } /* deleting anyway any previous definition */ sql_statement = sqlite3_mprintf ("DELETE FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(?) AND " "Lower(f_geometry_column) = Lower(?)"); ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("RecoverGeometryColumn: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_result_int (context, 0); return; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, table, strlen (table), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, column, strlen (column), SQLITE_STATIC); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("RecoverGeometryColumn() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); goto error; } sqlite3_finalize (stmt); if (metadata_version == 1) { /* legacy metadata style <= v.3.1.0 */ switch (xtype) { case GAIA_POINT: case GAIA_POINTZ: case GAIA_POINTM: case GAIA_POINTZM: p_type = "POINT"; break; case GAIA_LINESTRING: case GAIA_LINESTRINGZ: case GAIA_LINESTRINGM: case GAIA_LINESTRINGZM: p_type = "LINESTRING"; break; case GAIA_POLYGON: case GAIA_POLYGONZ: case GAIA_POLYGONM: case GAIA_POLYGONZM: p_type = "POLYGON"; break; case GAIA_MULTIPOINT: case GAIA_MULTIPOINTZ: case GAIA_MULTIPOINTM: case GAIA_MULTIPOINTZM: p_type = "MULTIPOINT"; break; case GAIA_MULTILINESTRING: case GAIA_MULTILINESTRINGZ: case GAIA_MULTILINESTRINGM: case GAIA_MULTILINESTRINGZM: p_type = "MULTILINESTRING"; break; case GAIA_MULTIPOLYGON: case GAIA_MULTIPOLYGONZ: case GAIA_MULTIPOLYGONM: case GAIA_MULTIPOLYGONZM: p_type = "MULTIPOLYGON"; break; case GAIA_GEOMETRYCOLLECTION: case GAIA_GEOMETRYCOLLECTIONZ: case GAIA_GEOMETRYCOLLECTIONM: case GAIA_GEOMETRYCOLLECTIONZM: p_type = "GEOMETRYCOLLECTION"; break; case -1: p_type = "GEOMETRY"; break; }; strcat (sql, "', '"); switch (dims) { case GAIA_XY: p_dims = "XY"; break; case GAIA_XY_Z: p_dims = "XYZ"; break; case GAIA_XY_M: p_dims = "XYM"; break; case GAIA_XY_Z_M: p_dims = "XYZM"; break; }; /* Sandro 2013-01-07 / fixing an issue reported by Peter Aronson [ESRI] sql_statement = sqlite3_mprintf ("INSERT INTO geometry_columns " "(f_table_name, f_geometry_column, type, coord_dimension, srid, " "spatial_index_enabled) VALUES (Lower(?), Lower(?), %Q, %Q, ?, 0)", p_type, p_dims); */ sql_statement = sqlite3_mprintf ("INSERT INTO geometry_columns " "(f_table_name, f_geometry_column, type, coord_dimension, srid, " "spatial_index_enabled) VALUES (?, ?, %Q, %Q, ?, 0)", p_type, p_dims); } else { /* current metadata style >= v.4.0.0 */ switch (xtype) { case GAIA_POINT: n_type = 1; n_dims = 2; break; case GAIA_POINTZ: n_type = 1001; n_dims = 3; break; case GAIA_POINTM: n_type = 2001; n_dims = 3; break; case GAIA_POINTZM: n_type = 3001; n_dims = 4; break; case GAIA_LINESTRING: n_type = 2; n_dims = 2; break; case GAIA_LINESTRINGZ: n_type = 1002; n_dims = 3; break; case GAIA_LINESTRINGM: n_type = 2002; n_dims = 3; break; case GAIA_LINESTRINGZM: n_type = 3002; n_dims = 4; break; case GAIA_POLYGON: n_type = 3; n_dims = 3; break; case GAIA_POLYGONZ: n_type = 1003; n_dims = 3; break; case GAIA_POLYGONM: n_type = 2003; n_dims = 3; break; case GAIA_POLYGONZM: n_type = 3003; n_dims = 4; break; case GAIA_MULTIPOINT: n_type = 4; n_dims = 2; break; case GAIA_MULTIPOINTZ: n_type = 1004; n_dims = 3; break; case GAIA_MULTIPOINTM: n_type = 2004; n_dims = 3; break; case GAIA_MULTIPOINTZM: n_type = 3004; n_dims = 4; break; case GAIA_MULTILINESTRING: n_type = 5; n_dims = 2; break; case GAIA_MULTILINESTRINGZ: n_type = 1005; n_dims = 3; break; case GAIA_MULTILINESTRINGM: n_type = 2005; n_dims = 3; break; case GAIA_MULTILINESTRINGZM: n_type = 3005; n_dims = 4; break; case GAIA_MULTIPOLYGON: n_type = 6; n_dims = 2; break; case GAIA_MULTIPOLYGONZ: n_type = 1006; n_dims = 3; break; case GAIA_MULTIPOLYGONM: n_type = 2006; n_dims = 3; break; case GAIA_MULTIPOLYGONZM: n_type = 3006; n_dims = 4; break; case GAIA_GEOMETRYCOLLECTION: n_type = 7; n_dims = 2; break; case GAIA_GEOMETRYCOLLECTIONZ: n_type = 1007; n_dims = 3; break; case GAIA_GEOMETRYCOLLECTIONM: n_type = 2007; n_dims = 3; break; case GAIA_GEOMETRYCOLLECTIONZM: n_type = 3007; n_dims = 4; break; case -1: switch (dims) { case GAIA_XY: n_type = 0; n_dims = 2; break; case GAIA_XY_Z: n_type = 1000; n_dims = 3; break; case GAIA_XY_M: n_type = 2000; n_dims = 3; break; case GAIA_XY_Z_M: n_type = 3000; n_dims = 4; break; }; break; }; sql_statement = sqlite3_mprintf ("INSERT INTO geometry_columns " "(f_table_name, f_geometry_column, geometry_type, coord_dimension, " "srid, spatial_index_enabled) VALUES (Lower(?), Lower(?), %d, %d, ?, 0)", n_type, n_dims); } ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("RecoverGeometryColumn: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_result_int (context, 0); return; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, table, strlen (table), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, column, strlen (column), SQLITE_STATIC); if (srid < 0) sqlite3_bind_int (stmt, 3, -1); else sqlite3_bind_int (stmt, 3, srid); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("RecoverGeometryColumn() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); goto error; } sqlite3_finalize (stmt); if (metadata_version == 3) { /* current metadata style >= v.4.0.0 */ /* inserting a row into GEOMETRY_COLUMNS_AUTH */ strcpy (sql, "INSERT OR REPLACE INTO geometry_columns_auth (f_table_name, f_geometry_column, "); strcat (sql, "read_only, hidden) VALUES (Lower(?), Lower(?), 0, 0)"); ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("RecoverGeometryColumn: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_result_int (context, 0); return; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, table, strlen (table), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, column, strlen (column), SQLITE_STATIC); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("RecoverGeometryColumn() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); goto error; } sqlite3_finalize (stmt); /* inserting a row into GEOMETRY_COLUMNS_STATISTICS */ strcpy (sql, "INSERT OR REPLACE INTO geometry_columns_statistics (f_table_name, f_geometry_column) "); strcat (sql, "VALUES (Lower(?), Lower(?))"); ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("RecoverGeometryColumn: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_result_int (context, 0); return; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, table, strlen (table), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, column, strlen (column), SQLITE_STATIC); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("RecoverGeometryColumn() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); goto error; } sqlite3_finalize (stmt); /* inserting a row into GEOMETRY_COLUMNS_TIME */ strcpy (sql, "INSERT OR REPLACE INTO geometry_columns_time (f_table_name, f_geometry_column) "); strcat (sql, "VALUES (Lower(?), Lower(?))"); ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("RecoverGeometryColumn: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_result_int (context, 0); return; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, table, strlen (table), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, column, strlen (column), SQLITE_STATIC); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("RecoverGeometryColumn() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); goto error; } sqlite3_finalize (stmt); } updateGeometryTriggers (sqlite, table, column); sqlite3_result_int (context, 1); switch (xtype) { case GAIA_POINT: case GAIA_POINTZ: case GAIA_POINTM: case GAIA_POINTZM: p_type = "POINT"; break; case GAIA_LINESTRING: case GAIA_LINESTRINGZ: case GAIA_LINESTRINGM: case GAIA_LINESTRINGZM: p_type = "LINESTRING"; break; case GAIA_POLYGON: case GAIA_POLYGONZ: case GAIA_POLYGONM: case GAIA_POLYGONZM: p_type = "POLYGON"; break; case GAIA_MULTIPOINT: case GAIA_MULTIPOINTZ: case GAIA_MULTIPOINTM: case GAIA_MULTIPOINTZM: p_type = "MULTIPOINT"; break; case GAIA_MULTILINESTRING: case GAIA_MULTILINESTRINGZ: case GAIA_MULTILINESTRINGM: case GAIA_MULTILINESTRINGZM: p_type = "MULTILINESTRING"; break; case GAIA_MULTIPOLYGON: case GAIA_MULTIPOLYGONZ: case GAIA_MULTIPOLYGONM: case GAIA_MULTIPOLYGONZM: p_type = "MULTIPOLYGON"; break; case GAIA_GEOMETRYCOLLECTION: case GAIA_GEOMETRYCOLLECTIONZ: case GAIA_GEOMETRYCOLLECTIONM: case GAIA_GEOMETRYCOLLECTIONZM: p_type = "GEOMETRYCOLLECTION"; break; case -1: p_type = "GEOMETRY"; break; }; switch (dims) { case GAIA_XY: p_dims = "XY"; break; case GAIA_XY_Z: p_dims = "XYZ"; break; case GAIA_XY_M: p_dims = "XYM"; break; case GAIA_XY_Z_M: p_dims = "XYZM"; break; }; sql_statement = sqlite3_mprintf ("Geometry [%s,%s,SRID=%d] successfully recovered", p_type, p_dims, (srid <= 0) ? -1 : srid); updateSpatiaLiteHistory (sqlite, table, column, sql_statement); sqlite3_free (sql_statement); return; error: sqlite3_result_int (context, 0); return; } static void fnct_DiscardGeometryColumn (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / DiscardGeometryColumn(table, column) / / removes TABLE.COLUMN from the Spatial MetaData [thus disabling triggers too] / returns 1 on success / 0 on failure */ const unsigned char *table; const unsigned char *column; char *p_table = NULL; char *p_column = NULL; sqlite3_stmt *stmt; char *sql_statement; char *raw; char *quoted; char *errMsg = NULL; int ret; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { spatialite_e ("DiscardGeometryColumn() error: argument 1 [table_name] is not of the String type\n"); sqlite3_result_int (context, 0); return; } table = sqlite3_value_text (argv[0]); if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { spatialite_e ("DiscardGeometryColumn() error: argument 2 [column_name] is not of the String type\n"); sqlite3_result_int (context, 0); return; } column = sqlite3_value_text (argv[1]); sql_statement = sqlite3_mprintf ("DELETE FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(?) " "AND Lower(f_geometry_column) = Lower(?)"); ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("DiscardGeometryColumn: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_result_int (context, 0); return; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, (const char *) table, strlen ((const char *) table), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, (const char *) column, strlen ((const char *) column), SQLITE_STATIC); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("DiscardGeometryColumn() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); goto error; } sqlite3_finalize (stmt); /* removing triggers too */ if (!getRealSQLnames (sqlite, (const char *) table, (const char *) column, &p_table, &p_column)) { spatialite_e ("DiscardGeometryColumn() error: not existing Table or Column\n"); sqlite3_result_int (context, 0); return; } raw = sqlite3_mprintf ("ggi_%s_%s", p_table, p_column); quoted = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS \"%s\"", quoted); free (quoted); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; raw = sqlite3_mprintf ("ggu_%s_%s", p_table, p_column); quoted = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS \"%s\"", quoted); free (quoted); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; raw = sqlite3_mprintf ("gii_%s_%s", p_table, p_column); quoted = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS \"%s\"", quoted); free (quoted); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; raw = sqlite3_mprintf ("giu_%s_%s", p_table, p_column); quoted = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS \"%s\"", quoted); free (quoted); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; raw = sqlite3_mprintf ("gid_%s_%s", p_table, p_column); quoted = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS \"%s\"", quoted); free (quoted); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; raw = sqlite3_mprintf ("gci_%s_%s", p_table, p_column); quoted = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS \"%s\"", quoted); free (quoted); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; raw = sqlite3_mprintf ("gcu_%s_%s", p_table, p_column); quoted = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS \"%s\"", quoted); free (quoted); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; raw = sqlite3_mprintf ("gcd_%s_%s", p_table, p_column); quoted = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS \"%s\"", quoted); free (quoted); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; raw = sqlite3_mprintf ("tmi_%s_%s", p_table, p_column); quoted = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS \"%s\"", quoted); free (quoted); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; raw = sqlite3_mprintf ("tmu_%s_%s", p_table, p_column); quoted = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS \"%s\"", quoted); free (quoted); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; raw = sqlite3_mprintf ("tmd_%s_%s", p_table, p_column); quoted = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS \"%s\"", quoted); free (quoted); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; /* trying to delete old versions [v2.0, v2.2] triggers[if any] */ raw = sqlite3_mprintf ("gti_%s_%s", p_table, p_column); quoted = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS \"%s\"", quoted); free (quoted); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; raw = sqlite3_mprintf ("gtu_%s_%s", p_table, p_column); quoted = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS \"%s\"", quoted); free (quoted); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; raw = sqlite3_mprintf ("gsi_%s_%s", p_table, p_column); quoted = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS \"%s\"", quoted); free (quoted); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; raw = sqlite3_mprintf ("gsu_%s_%s", p_table, p_column); quoted = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS \"%s\"", quoted); free (quoted); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; /* end deletion old versions [v2.0, v2.2] triggers[if any] */ sqlite3_result_int (context, 1); updateSpatiaLiteHistory (sqlite, p_table, p_column, "Geometry successfully discarded"); free (p_table); free (p_column); return; error: if (p_table) free (p_table); if (p_column) free (p_column); spatialite_e ("DiscardGeometryColumn() error: \"%s\"\n", errMsg); sqlite3_free (errMsg); sqlite3_result_int (context, 0); return; } static int registerVirtual (sqlite3 * sqlite, const char *table) { /* attempting to register a VirtualGeometry */ char gtype[64]; int xtype = -1; int srid; char **results; int ret; int rows; int columns; int i; char *errMsg = NULL; int ok_virt_name = 0; int ok_virt_geometry = 0; int ok_srid = 0; int ok_geometry_type = 0; int ok_type = 0; int ok_coord_dimension = 0; int xdims; char *quoted; char *sql_statement; /* testing the layout of virts_geometry_columns table */ ret = sqlite3_get_table (sqlite, "PRAGMA table_info(virts_geometry_columns)", &results, &rows, &columns, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("RegisterVirtualGeometry() error: \"%s\"\n", errMsg); sqlite3_free (errMsg); return 0; } for (i = 1; i <= rows; i++) { if (strcasecmp ("virt_name", results[(i * columns) + 1]) == 0) ok_virt_name = 1; if (strcasecmp ("virt_geometry", results[(i * columns) + 1]) == 0) ok_virt_geometry = 1; if (strcasecmp ("srid", results[(i * columns) + 1]) == 0) ok_srid = 1; if (strcasecmp ("geometry_type", results[(i * columns) + 1]) == 0) ok_geometry_type = 1; if (strcasecmp ("type", results[(i * columns) + 1]) == 0) ok_type = 1; if (strcasecmp ("coord_dimension", results[(i * columns) + 1]) == 0) ok_coord_dimension = 1; } sqlite3_free_table (results); if (ok_virt_name && ok_virt_geometry && ok_srid && ok_geometry_type && ok_coord_dimension) ; else if (ok_virt_name && ok_virt_geometry && ok_srid && ok_type) ; else return 0; /* determining Geometry Type and dims */ quoted = gaiaDoubleQuotedSql (table); sql_statement = sqlite3_mprintf ("SELECT DISTINCT " "ST_GeometryType(Geometry), ST_Srid(Geometry) FROM \"%s\"", quoted); free (quoted); ret = sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("RegisterVirtualGeometry() error: \"%s\"\n", errMsg); sqlite3_free (errMsg); return 0; } for (i = 1; i <= rows; i++) { if (results[(i * columns)] == NULL) *gtype = '\0'; else strcpy (gtype, results[(i * columns)]); if (results[(i * columns) + 1] == NULL) srid = 0; else srid = atoi (results[(i * columns) + 1]); } sqlite3_free_table (results); /* normalized Geometry type */ if (strcmp (gtype, "POINT") == 0) xtype = 1; if (strcmp (gtype, "POINT Z") == 0) xtype = 1001; if (strcmp (gtype, "POINT M") == 0) xtype = 2001; if (strcmp (gtype, "POINT ZM") == 0) xtype = 3001; if (strcmp (gtype, "LINESTRING") == 0) xtype = 2; if (strcmp (gtype, "LINESTRING Z") == 0) xtype = 1002; if (strcmp (gtype, "LINESTRING M") == 0) xtype = 2002; if (strcmp (gtype, "LINESTRING ZM") == 0) xtype = 3002; if (strcmp (gtype, "POLYGON") == 0) xtype = 3; if (strcmp (gtype, "POLYGON Z") == 0) xtype = 1003; if (strcmp (gtype, "POLYGON M") == 0) xtype = 2003; if (strcmp (gtype, "POLYGON ZM") == 0) xtype = 3003; if (strcmp (gtype, "MULTIPOINT") == 0) xtype = 4; if (strcmp (gtype, "MULTIPOINT Z") == 0) xtype = 1004; if (strcmp (gtype, "MULTIPOINT M") == 0) xtype = 2004; if (strcmp (gtype, "MULTIPOINT ZM") == 0) xtype = 3004; if (strcmp (gtype, "MULTILINESTRING") == 0) xtype = 5; if (strcmp (gtype, "MULTILINESTRING Z") == 0) xtype = 1005; if (strcmp (gtype, "MULTILINESTRING M") == 0) xtype = 2005; if (strcmp (gtype, "MULTILINESTRING ZM") == 0) xtype = 3005; if (strcmp (gtype, "MULTIPOLYGON") == 0) xtype = 6; if (strcmp (gtype, "MULTIPOLYGON Z") == 0) xtype = 1006; if (strcmp (gtype, "MULTIPOLYGON M") == 0) xtype = 2006; if (strcmp (gtype, "MULTIPOLYGON ZM") == 0) xtype = 3006; /* updating metadata tables */ xdims = -1; switch (xtype) { case 1: case 2: case 3: case 4: case 5: case 6: xdims = 2; break; case 1001: case 1002: case 1003: case 1004: case 1005: case 1006: case 2001: case 2002: case 2003: case 2004: case 2005: case 2006: xdims = 3; break; case 3001: case 3002: case 3003: case 3004: case 3005: case 3006: xdims = 4; break; }; if (ok_geometry_type) { /* has the "geometry_type" column */ sql_statement = sqlite3_mprintf ("INSERT OR REPLACE INTO virts_geometry_columns " "(virt_name, virt_geometry, geometry_type, coord_dimension, srid) " "VALUES (Lower(%Q), 'geometry', %d, %d, %d)", table, xtype, xdims, srid); } else { /* has the "type" column */ const char *xgtype = "UNKNOWN"; switch (xtype) { case 1: case 1001: case 2001: case 3001: xgtype = "POINT"; break; case 2: case 1002: case 2002: case 3002: xgtype = "LINESTRING"; break; case 3: case 1003: case 2003: case 3003: xgtype = "POLYGON"; break; case 4: case 1004: case 2004: case 3004: xgtype = "MULTIPOINT"; break; case 5: case 1005: case 2005: case 3005: xgtype = "MULTILINESTRING"; break; case 6: case 1006: case 2006: case 3006: xgtype = "MULTIPOLYGON"; break; }; sql_statement = sqlite3_mprintf ("INSERT OR REPLACE INTO virts_geometry_columns " "(virt_name, virt_geometry, type, srid) " "VALUES (Lower(%Q), 'geometry', %Q, %d)", table, xgtype, srid); } ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("RegisterVirtualGeometry() error: \"%s\"\n", errMsg); sqlite3_free (errMsg); return 0; } if (checkSpatialMetaData (sqlite) == 3) { /* current metadata style >= v.4.0.0 */ /* inserting a row into VIRTS_GEOMETRY_COLUMNS_AUTH */ sql_statement = sqlite3_mprintf ("INSERT OR REPLACE INTO " "virts_geometry_columns_auth (virt_name, virt_geometry, hidden) " "VALUES (Lower(%Q), 'geometry', 0)", table); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("RegisterVirtualGeometry() error: \"%s\"\n", errMsg); sqlite3_free (errMsg); return 0; } /* inserting a row into GEOMETRY_COLUMNS_STATISTICS */ sql_statement = sqlite3_mprintf ("INSERT OR REPLACE INTO " "virts_geometry_columns_statistics (virt_name, virt_geometry) " "VALUES (Lower(%Q), 'geometry')", table); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("RegisterVirtualGeometry() error: \"%s\"\n", errMsg); sqlite3_free (errMsg); return 0; } } return 1; } static void fnct_RegisterVirtualGeometry (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / RegisterVirtualGeometry(table) / / insert/updates TABLE.COLUMN into the Spatial MetaData [Virtual Table] / returns 1 on success / 0 on failure */ const unsigned char *table; char sql[1024]; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { spatialite_e ("RegisterVirtualGeometry() error: argument 1 [table_name] is not of the String type\n"); sqlite3_result_int (context, 0); return; } table = sqlite3_value_text (argv[0]); if (!registerVirtual (sqlite, (char *) table)) goto error; sqlite3_result_int (context, 1); strcpy (sql, "Virtual Geometry successfully registered"); updateSpatiaLiteHistory (sqlite, (const char *) table, "Geometry", sql); return; error: spatialite_e ("RegisterVirtualGeometry() error\n"); sqlite3_result_int (context, 0); return; } static void fnct_DropVirtualGeometry (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / DropVirtualGeometry(table) / / removes TABLE.COLUMN from the Spatial MetaData and DROPs the Virtual Table / returns 1 on success / 0 on failure */ const unsigned char *table; char *sql_statement; char *errMsg = NULL; int ret; char *quoted; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { spatialite_e ("DropVirtualGeometry() error: argument 1 [table_name] is not of the String type\n"); sqlite3_result_int (context, 0); return; } table = sqlite3_value_text (argv[0]); sql_statement = sqlite3_mprintf ("DELETE FROM virts_geometry_columns " "WHERE Lower(virt_name) = Lower(%Q)", table); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; quoted = gaiaDoubleQuotedSql ((const char *) table); sql_statement = sqlite3_mprintf ("DROP TABLE IF EXISTS \"%s\"", quoted); free (quoted); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; sqlite3_result_int (context, 1); updateSpatiaLiteHistory (sqlite, (const char *) table, "Geometry", "Virtual Geometry successfully dropped"); return; error: spatialite_e ("DropVirtualGeometry() error: \"%s\"\n", errMsg); sqlite3_free (errMsg); sqlite3_result_int (context, 0); return; } static void fnct_InitFDOSpatialMetaData (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / InitFDOSpatialMetaData(void) / / creates the FDO-styled SPATIAL_REF_SYS and GEOMETRY_COLUMNS tables / returns 1 on success / 0 on failure */ char sql[1024]; char *errMsg = NULL; int ret; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ /* creating the SPATIAL_REF_SYS tables */ strcpy (sql, "CREATE TABLE spatial_ref_sys (\n"); strcat (sql, "srid INTEGER PRIMARY KEY,\n"); strcat (sql, "auth_name TEXT,\n"); strcat (sql, "auth_srid INTEGER,\n"); strcat (sql, "srtext TEXT)"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) goto error; /* creating the GEOMETRY_COLUMN tables */ strcpy (sql, "CREATE TABLE geometry_columns (\n"); strcat (sql, "f_table_name TEXT,\n"); strcat (sql, "f_geometry_column TEXT,\n"); strcat (sql, "geometry_type INTEGER,\n"); strcat (sql, "coord_dimension INTEGER,\n"); strcat (sql, "srid INTEGER,\n"); strcat (sql, "geometry_format TEXT)"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) goto error; sqlite3_result_int (context, 1); return; error: spatialite_e ("InitFDOSpatiaMetaData() error: \"%s\"\n", errMsg); sqlite3_free (errMsg); sqlite3_result_int (context, 0); return; } static int recoverFDOGeomColumn (sqlite3 * sqlite, const unsigned char *table, const unsigned char *column, int xtype, int srid) { /* checks if TABLE.COLUMN exists and has the required features */ int ok = 1; char *sql_statement; int type; sqlite3_stmt *stmt; gaiaGeomCollPtr geom; const void *blob_value; int len; int ret; int i_col; char *xcolumn; char *xtable; xcolumn = gaiaDoubleQuotedSql ((char *) column); xtable = gaiaDoubleQuotedSql ((char *) table); sql_statement = sqlite3_mprintf ("SELECT \"%s\" FROM \"%s\"", xcolumn, xtable); free (xcolumn); free (xtable); /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("recoverFDOGeomColumn: error %d \"%s\"\n", sqlite3_errcode (sqlite), sqlite3_errmsg (sqlite)); return 0; } while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* checking Geometry features */ geom = NULL; for (i_col = 0; i_col < sqlite3_column_count (stmt); i_col++) { if (sqlite3_column_type (stmt, i_col) != SQLITE_BLOB) ok = 0; else { blob_value = sqlite3_column_blob (stmt, i_col); len = sqlite3_column_bytes (stmt, i_col); geom = gaiaFromSpatiaLiteBlobWkb (blob_value, len); if (!geom) ok = 0; else { if (geom->Srid != srid) ok = 0; /* normalizing Geometry Type */ switch (gaiaGeometryType (geom)) { case GAIA_POINT: case GAIA_POINTZ: case GAIA_POINTM: case GAIA_POINTZM: type = GAIA_POINT; break; case GAIA_LINESTRING: case GAIA_LINESTRINGZ: case GAIA_LINESTRINGM: case GAIA_LINESTRINGZM: type = GAIA_LINESTRING; break; case GAIA_POLYGON: case GAIA_POLYGONZ: case GAIA_POLYGONM: case GAIA_POLYGONZM: type = GAIA_POLYGON; break; case GAIA_MULTIPOINT: case GAIA_MULTIPOINTZ: case GAIA_MULTIPOINTM: case GAIA_MULTIPOINTZM: type = GAIA_MULTIPOINT; break; case GAIA_MULTILINESTRING: case GAIA_MULTILINESTRINGZ: case GAIA_MULTILINESTRINGM: case GAIA_MULTILINESTRINGZM: type = GAIA_MULTILINESTRING; break; case GAIA_MULTIPOLYGON: case GAIA_MULTIPOLYGONZ: case GAIA_MULTIPOLYGONM: case GAIA_MULTIPOLYGONZM: type = GAIA_MULTIPOLYGON; break; case GAIA_GEOMETRYCOLLECTION: case GAIA_GEOMETRYCOLLECTIONZ: case GAIA_GEOMETRYCOLLECTIONM: case GAIA_GEOMETRYCOLLECTIONZM: type = GAIA_GEOMETRYCOLLECTION; break; default: type = -1; break; }; if (xtype == type) ; else ok = 0; gaiaFreeGeomColl (geom); } } } } if (!ok) break; } ret = sqlite3_finalize (stmt); if (ret != SQLITE_OK) { spatialite_e ("recoverFDOGeomColumn: error %d \"%s\"\n", sqlite3_errcode (sqlite), sqlite3_errmsg (sqlite)); return 0; } return ok; } static void fnct_AddFDOGeometryColumn (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / AddFDOGeometryColumn(table, column, srid, geometry_type , dimension, geometry_format ) / / creates a new COLUMN of given TYPE into TABLE / returns 1 on success / 0 on failure */ const char *table; const char *column; const char *format; char xformat[64]; int type; int srid = -1; int dimension = 2; char *sql_statement; char *errMsg = NULL; int ret; char **results; int rows; int columns; int i; int oktbl; char *xtable; char *xcolumn; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { spatialite_e ("AddFDOGeometryColumn() error: argument 1 [table_name] is not of the String type\n"); sqlite3_result_int (context, 0); return; } table = (const char *) sqlite3_value_text (argv[0]); if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { spatialite_e ("AddFDOGeometryColumn() error: argument 2 [column_name] is not of the String type\n"); sqlite3_result_int (context, 0); return; } column = (const char *) sqlite3_value_text (argv[1]); if (sqlite3_value_type (argv[2]) != SQLITE_INTEGER) { spatialite_e ("AddFDOGeometryColumn() error: argument 3 [SRID] is not of the Integer type\n"); sqlite3_result_int (context, 0); return; } srid = sqlite3_value_int (argv[2]); if (sqlite3_value_type (argv[3]) != SQLITE_INTEGER) { spatialite_e ("AddFDOGeometryColumn() error: argument 4 [geometry_type] is not of the Integer type\n"); sqlite3_result_int (context, 0); return; } type = sqlite3_value_int (argv[3]); if (sqlite3_value_type (argv[4]) != SQLITE_INTEGER) { spatialite_e ("AddFDOGeometryColumn() error: argument 5 [dimension] is not of the Integer type\n"); sqlite3_result_int (context, 0); return; } dimension = sqlite3_value_int (argv[4]); if (sqlite3_value_type (argv[5]) != SQLITE_TEXT) { spatialite_e ("AddFDOGeometryColumn() error: argument 6 [geometry_format] is not of the String type\n"); sqlite3_result_int (context, 0); return; } format = (const char *) sqlite3_value_text (argv[5]); if (type == GAIA_POINT || type == GAIA_LINESTRING || type == GAIA_POLYGON || type == GAIA_MULTIPOINT || type == GAIA_MULTILINESTRING || type == GAIA_MULTIPOLYGON || type == GAIA_GEOMETRYCOLLECTION) ; else { spatialite_e ("AddFDOGeometryColumn() error: argument 4 [geometry_type] has an illegal value\n"); sqlite3_result_int (context, 0); return; } if (dimension < 2 || dimension > 4) { spatialite_e ("AddFDOGeometryColumn() error: argument 5 [dimension] current version only accepts dimension=2,3,4\n"); sqlite3_result_int (context, 0); return; } if (strcasecmp (format, "WKT") == 0) strcpy (xformat, "WKT"); else if (strcasecmp (format, "WKB") == 0) strcpy (xformat, "WKB"); else if (strcasecmp (format, "FGF") == 0) strcpy (xformat, "FGF"); else if (strcasecmp (format, "SPATIALITE") == 0) strcpy (xformat, "SPATIALITE"); else { spatialite_e ("AddFDOGeometryColumn() error: argument 6 [geometry_format] has to be one of: WKT,WKB,FGF,SPATIALITE\n"); sqlite3_result_int (context, 0); return; } /* checking if the table exists */ xtable = gaiaDoubleQuotedSql (table); xcolumn = gaiaDoubleQuotedSql (column); sql_statement = sqlite3_mprintf ("SELECT name FROM sqlite_master " "WHERE type = 'table' AND Upper(name) = Upper(%Q)", table); free (xtable); free (xcolumn); ret = sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("AddFDOGeometryColumn: \"%s\"\n", errMsg); sqlite3_free (errMsg); return; } oktbl = 0; for (i = 1; i <= rows; i++) oktbl = 1; sqlite3_free_table (results); if (!oktbl) { spatialite_e ("AddFDOGeometryColumn() error: table '%s' does not exist\n", table); sqlite3_result_int (context, 0); return; } /* trying to add the column */ xtable = gaiaDoubleQuotedSql (table); xcolumn = gaiaDoubleQuotedSql (column); sql_statement = sqlite3_mprintf ("ALTER TABLE \"%s\" " "ADD COLUMN \"%s\" BLOB", xtable, xcolumn); free (xtable); free (xcolumn); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; /*ok, inserting into geometry_columns [FDO Spatial Metadata] */ sql_statement = sqlite3_mprintf ("INSERT INTO geometry_columns " "(f_table_name, f_geometry_column, geometry_type, " "coord_dimension, srid, geometry_format) VALUES (%Q, %Q, %d, %d, %d, %Q)", table, column, type, dimension, (srid <= 0) ? -1 : srid, xformat); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; sqlite3_result_int (context, 1); return; error: spatialite_e ("AddFDOGeometryColumn() error: \"%s\"\n", errMsg); sqlite3_free (errMsg); sqlite3_result_int (context, 0); return; } static void fnct_RecoverFDOGeometryColumn (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / RecoverFDOGeometryColumn(table, column, srid, geometry_type , dimension, geometry_format ) / / checks if an existing TABLE.COLUMN satisfies the required geometric features / if yes adds it to FDO-styled SpatialMetaData / returns 1 on success / 0 on failure */ const char *table; const char *column; const char *format; char xformat[64]; int type; int srid = -1; int dimension = 2; char *sql_statement; char *errMsg = NULL; int ret; char **results; int rows; int columns; int i; int ok_tbl; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { spatialite_e ("RecoverFDOGeometryColumn() error: argument 1 [table_name] is not of the String type\n"); sqlite3_result_int (context, 0); return; } table = (const char *) sqlite3_value_text (argv[0]); if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { spatialite_e ("RecoverFDOGeometryColumn() error: argument 2 [column_name] is not of the String type\n"); sqlite3_result_int (context, 0); return; } column = (const char *) sqlite3_value_text (argv[1]); if (sqlite3_value_type (argv[2]) != SQLITE_INTEGER) { spatialite_e ("RecoverFDOGeometryColumn() error: argument 3 [SRID] is not of the Integer type\n"); sqlite3_result_int (context, 0); return; } srid = sqlite3_value_int (argv[2]); if (sqlite3_value_type (argv[3]) != SQLITE_INTEGER) { spatialite_e ("RecoverFDOGeometryColumn() error: argument 4 [geometry_type] is not of the Integer type\n"); sqlite3_result_int (context, 0); return; } type = sqlite3_value_int (argv[3]); if (sqlite3_value_type (argv[4]) != SQLITE_INTEGER) { spatialite_e ("RecoverFDOGeometryColumn() error: argument 5 [dimension] is not of the Integer type\n"); sqlite3_result_int (context, 0); return; } dimension = sqlite3_value_int (argv[4]); if (sqlite3_value_type (argv[5]) != SQLITE_TEXT) { spatialite_e ("RecoverFDOGeometryColumn() error: argument 6 [geometry_format] is not of the String type\n"); sqlite3_result_int (context, 0); return; } format = (const char *) sqlite3_value_text (argv[5]); if (type == GAIA_POINT || type == GAIA_LINESTRING || type == GAIA_POLYGON || type == GAIA_MULTIPOINT || type == GAIA_MULTILINESTRING || type == GAIA_MULTIPOLYGON || type == GAIA_GEOMETRYCOLLECTION) ; else { spatialite_e ("RecoverFDOGeometryColumn() error: argument 4 [geometry_type] has an illegal value\n"); sqlite3_result_int (context, 0); return; } if (dimension < 2 || dimension > 4) { spatialite_e ("RecoverFDOGeometryColumn() error: argument 5 [dimension] current version only accepts dimension=2,3,4\n"); sqlite3_result_int (context, 0); return; } if (strcasecmp (format, "WKT") == 0) strcpy (xformat, "WKT"); else if (strcasecmp (format, "WKB") == 0) strcpy (xformat, "WKB"); else if (strcasecmp (format, "FGF") == 0) strcpy (xformat, "FGF"); else if (strcasecmp (format, "SPATIALITE") == 0) strcpy (xformat, "SPATIALITE"); else { spatialite_e ("RecoverFDOGeometryColumn() error: argument 6 [geometry_format] has to be one of: WKT,WKB,FGF\n"); sqlite3_result_int (context, 0); return; } /* checking if the table exists */ sql_statement = sqlite3_mprintf ("SELECT name FROM sqlite_master " "WHERE type = 'table' AND Upper(name) = Upper(%Q)", table); ret = sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("RecoverFDOGeometryColumn: \"%s\"\n", errMsg); sqlite3_free (errMsg); return; } ok_tbl = 0; for (i = 1; i <= rows; i++) ok_tbl = 1; sqlite3_free_table (results); if (!ok_tbl) { spatialite_e ("RecoverFDOGeometryColumn() error: table '%s' does not exist\n", table); sqlite3_result_int (context, 0); return; } if (!recoverFDOGeomColumn (sqlite, (const unsigned char *) table, (const unsigned char *) column, type, srid)) { spatialite_e ("RecoverFDOGeometryColumn(): validation failed\n"); sqlite3_result_int (context, 0); return; } sql_statement = sqlite3_mprintf ("INSERT INTO geometry_columns " "(f_table_name, f_geometry_column, geometry_type, " "coord_dimension, srid, geometry_format) VALUES (%Q, %Q, %d, %d, %d, %Q)", table, column, type, dimension, (srid <= 0) ? -1 : srid, xformat); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; sqlite3_result_int (context, 1); return; error: spatialite_e ("RecoverFDOGeometryColumn() error: \"%s\"\n", errMsg); sqlite3_free (errMsg); sqlite3_result_int (context, 0); return; } static void fnct_DiscardFDOGeometryColumn (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / DiscardFDOGeometryColumn(table, column) / / removes TABLE.COLUMN from the Spatial MetaData / returns 1 on success / 0 on failure */ const unsigned char *table; const unsigned char *column; char *sql_statement; char *errMsg = NULL; int ret; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { spatialite_e ("DiscardFDOGeometryColumn() error: argument 1 [table_name] is not of the String type\n"); sqlite3_result_int (context, 0); return; } table = sqlite3_value_text (argv[0]); if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { spatialite_e ("DiscardFDOGeometryColumn() error: argument 2 [column_name] is not of the String type\n"); sqlite3_result_int (context, 0); return; } column = sqlite3_value_text (argv[1]); sql_statement = sqlite3_mprintf ("DELETE FROM geometry_columns WHERE Upper(f_table_name) = " "Upper(%Q) AND Upper(f_geometry_column) = Upper(%Q)", table, column); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; sqlite3_result_int (context, 1); return; error: spatialite_e ("DiscardFDOGeometryColumn() error: \"%s\"\n", errMsg); sqlite3_free (errMsg); sqlite3_result_int (context, 0); return; } static int eval_rtree_entry (int ok_geom, double geom_value, int ok_rtree, double rtree_value) { /* evaluating geom-coord and rtree-coord */ if (!ok_geom && !ok_rtree) return 1; if (ok_geom && ok_rtree) { float g = (float) geom_value; float r = (float) rtree_value; double tic = fabs (geom_value - r) * 2.0; float diff = g - r; if (diff > tic) return 0; return 1; } return 0; } static int check_spatial_index (sqlite3 * sqlite, const unsigned char *table, const unsigned char *geom) { /* attempting to check an R*Tree for consistency */ char *xtable = NULL; char *xgeom = NULL; char *idx_name; char *xidx_name = NULL; char sql[1024]; char *sql_statement; int ret; int is_defined = 0; sqlite3_stmt *stmt; sqlite3_int64 count_geom; sqlite3_int64 count_rtree; double g_xmin; double g_ymin; double g_xmax; double g_ymax; int ok_g_xmin; int ok_g_ymin; int ok_g_xmax; int ok_g_ymax; double i_xmin; double i_ymin; double i_xmax; double i_ymax; int ok_i_xmin; int ok_i_ymin; int ok_i_xmax; int ok_i_ymax; /* checking if the R*Tree Spatial Index is defined */ sql_statement = sqlite3_mprintf ("SELECT Count(*) FROM geometry_columns " "WHERE Upper(f_table_name) = Upper(%Q) " "AND Upper(f_geometry_column) = Upper(%Q) AND spatial_index_enabled = 1", table, geom); ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CheckSpatialIndex SQL error: %s\n", sqlite3_errmsg (sqlite)); goto err_label; } while (1) { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) is_defined = sqlite3_column_int (stmt, 0); else { printf ("sqlite3_step() error: %s\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); goto err_label; } } sqlite3_finalize (stmt); if (!is_defined) goto err_label; xgeom = gaiaDoubleQuotedSql ((char *) geom); xtable = gaiaDoubleQuotedSql ((char *) table); idx_name = sqlite3_mprintf ("idx_%s_%s", table, geom); xidx_name = gaiaDoubleQuotedSql (idx_name); sqlite3_free (idx_name); /* counting how many Geometries are set into the main-table */ sql_statement = sqlite3_mprintf ("SELECT Count(*) FROM \"%s\" " "WHERE ST_GeometryType(\"%s\") IS NOT NULL", xtable, xgeom); ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CheckSpatialIndex SQL error: %s\n", sqlite3_errmsg (sqlite)); goto err_label; } while (1) { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) count_geom = sqlite3_column_int (stmt, 0); else { printf ("sqlite3_step() error: %s\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); goto err_label; } } sqlite3_finalize (stmt); /* counting how many R*Tree entries are defined */ sql_statement = sqlite3_mprintf ("SELECT Count(*) FROM \"%s\"", xidx_name); ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CheckSpatialIndex SQL error: %s\n", sqlite3_errmsg (sqlite)); goto err_label; } while (1) { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) count_rtree = sqlite3_column_int (stmt, 0); else { printf ("sqlite3_step() error: %s\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); goto err_label; } } sqlite3_finalize (stmt); if (count_geom != count_rtree) { /* unexpected count difference */ goto mismatching_zero; } /* checking the geometry-table against the corresponding R*Tree */ sql_statement = sqlite3_mprintf ("SELECT MbrMinX(g.\"%s\"), MbrMinY(g.\"%s\"), " "MbrMaxX(g.\"%s\"), MbrMaxY(g.\"%s\"), i.xmin, i.ymin, i.xmax, i.ymax\n" "FROM \"%s\" AS g\nLEFT JOIN \"%s\" AS i ON (g.ROWID = i.pkid)", xgeom, xgeom, xgeom, xgeom, xtable, xidx_name); ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CheckSpatialIndex SQL error: %s\n", sqlite3_errmsg (sqlite)); goto err_label; } while (1) { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) { /* checking a row */ ok_g_xmin = 1; ok_g_ymin = 1; ok_g_xmax = 1; ok_g_ymax = 1; ok_i_xmin = 1; ok_i_ymin = 1; ok_i_xmax = 1; ok_i_ymax = 1; if (sqlite3_column_type (stmt, 0) == SQLITE_NULL) ok_g_xmin = 0; else g_xmin = sqlite3_column_double (stmt, 0); if (sqlite3_column_type (stmt, 1) == SQLITE_NULL) ok_g_ymin = 0; else g_ymin = sqlite3_column_double (stmt, 1); if (sqlite3_column_type (stmt, 2) == SQLITE_NULL) ok_g_xmax = 0; else g_xmax = sqlite3_column_double (stmt, 2); if (sqlite3_column_type (stmt, 3) == SQLITE_NULL) ok_g_ymax = 0; else g_ymax = sqlite3_column_double (stmt, 3); if (sqlite3_column_type (stmt, 4) == SQLITE_NULL) ok_i_xmin = 0; else i_xmin = sqlite3_column_double (stmt, 4); if (sqlite3_column_type (stmt, 5) == SQLITE_NULL) ok_i_ymin = 0; else i_ymin = sqlite3_column_double (stmt, 5); if (sqlite3_column_type (stmt, 6) == SQLITE_NULL) ok_i_xmax = 0; else i_xmax = sqlite3_column_double (stmt, 6); if (sqlite3_column_type (stmt, 7) == SQLITE_NULL) ok_i_ymax = 0; else i_ymax = sqlite3_column_double (stmt, 7); if (eval_rtree_entry (ok_g_xmin, g_xmin, ok_i_xmin, i_xmin) == 0) goto mismatching; if (eval_rtree_entry (ok_g_ymin, g_ymin, ok_i_ymin, i_ymin) == 0) goto mismatching; if (eval_rtree_entry (ok_g_xmax, g_xmax, ok_i_xmax, i_xmax) == 0) goto mismatching; if (eval_rtree_entry (ok_g_ymax, g_ymax, ok_i_ymax, i_ymax) == 0) goto mismatching; } else { printf ("sqlite3_step() error: %s\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); goto err_label; } } /* we have now to finalize the query [memory cleanup] */ sqlite3_finalize (stmt); /* now we'll check the R*Tree against the corresponding geometry-table */ sql_statement = sqlite3_mprintf ("SELECT MbrMinX(g.\"%s\"), MbrMinY(g.\"%s\"), " "MbrMaxX(g.\"%s\"), MbrMaxY(g.\"%s\"), i.xmin, i.ymin, i.xmax, i.ymax\n" "FROM \"%s\" AS i\nLEFT JOIN \"%s\" AS g ON (g.ROWID = i.pkid)", xgeom, xgeom, xgeom, xgeom, xidx_name, xtable); ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CheckSpatialIndex SQL error: %s\n", sqlite3_errmsg (sqlite)); goto err_label; } while (1) { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) { /* checking a row */ ok_g_xmin = 1; ok_g_ymin = 1; ok_g_xmax = 1; ok_g_ymax = 1; ok_i_xmin = 1; ok_i_ymin = 1; ok_i_xmax = 1; ok_i_ymax = 1; if (sqlite3_column_type (stmt, 0) == SQLITE_NULL) ok_g_xmin = 0; else g_xmin = sqlite3_column_double (stmt, 0); if (sqlite3_column_type (stmt, 1) == SQLITE_NULL) ok_g_ymin = 0; else g_ymin = sqlite3_column_double (stmt, 1); if (sqlite3_column_type (stmt, 2) == SQLITE_NULL) ok_g_xmax = 0; else g_xmax = sqlite3_column_double (stmt, 2); if (sqlite3_column_type (stmt, 3) == SQLITE_NULL) ok_g_ymax = 0; else g_ymax = sqlite3_column_double (stmt, 3); if (sqlite3_column_type (stmt, 4) == SQLITE_NULL) ok_i_xmin = 0; else i_xmin = sqlite3_column_double (stmt, 4); if (sqlite3_column_type (stmt, 5) == SQLITE_NULL) ok_i_ymin = 0; else i_ymin = sqlite3_column_double (stmt, 5); if (sqlite3_column_type (stmt, 6) == SQLITE_NULL) ok_i_xmax = 0; else i_xmax = sqlite3_column_double (stmt, 6); if (sqlite3_column_type (stmt, 7) == SQLITE_NULL) ok_i_ymax = 0; else i_ymax = sqlite3_column_double (stmt, 7); if (eval_rtree_entry (ok_g_xmin, g_xmin, ok_i_xmin, i_xmin) == 0) goto mismatching; if (eval_rtree_entry (ok_g_ymin, g_ymin, ok_i_ymin, i_ymin) == 0) goto mismatching; if (eval_rtree_entry (ok_g_xmax, g_xmax, ok_i_xmax, i_xmax) == 0) goto mismatching; if (eval_rtree_entry (ok_g_ymax, g_ymax, ok_i_ymax, i_ymax) == 0) goto mismatching; } else { printf ("sqlite3_step() error: %s\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); goto err_label; } } sqlite3_finalize (stmt); strcpy (sql, "Check SpatialIndex: is valid"); updateSpatiaLiteHistory (sqlite, (const char *) table, (const char *) geom, sql); free (xgeom); free (xtable); free (xidx_name); return 1; mismatching: sqlite3_finalize (stmt); strcpy (sql, "Check SpatialIndex: INCONSISTENCIES detected"); updateSpatiaLiteHistory (sqlite, (const char *) table, (const char *) geom, sql); mismatching_zero: if (xgeom) free (xgeom); if (xtable) free (xtable); if (xidx_name) free (xidx_name); return 0; err_label: if (xgeom) free (xgeom); if (xtable) free (xtable); if (xidx_name) free (xidx_name); return -1; } static int check_any_spatial_index (sqlite3 * sqlite) { /* attempting to check any defined R*Tree for consistency */ const unsigned char *table; const unsigned char *column; int status; char sql[1024]; int ret; int invalid_rtree = 0; sqlite3_stmt *stmt; /* retrieving any defined R*Tree */ strcpy (sql, "SELECT f_table_name, f_geometry_column FROM geometry_columns "); strcat (sql, "WHERE spatial_index_enabled = 1"); ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("CheckSpatialIndex SQL error: %s\n", sqlite3_errmsg (sqlite)); return -1; } while (1) { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) { /* checking a single R*Tree */ table = sqlite3_column_text (stmt, 0); column = sqlite3_column_text (stmt, 1); status = check_spatial_index (sqlite, table, column); if (status < 0) { sqlite3_finalize (stmt); return -1; } if (status == 0) invalid_rtree = 1; } else { printf ("sqlite3_step() error: %s\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); return -1; } } sqlite3_finalize (stmt); if (invalid_rtree) return 0; return 1; } static void fnct_CheckSpatialIndex (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CheckSpatialIndex() / CheckSpatialIndex(table, column) / / checks a SpatialIndex for consistency, returning: / 1 - the R*Tree is fully consistent / 0 - the R*Tree is inconsistent / NULL on failure */ const unsigned char *table; const unsigned char *column; int status; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (argc == 0) { /* no arguments: we must check any defined R*Tree */ status = check_any_spatial_index (sqlite); if (status < 0) sqlite3_result_null (context); else if (status > 0) sqlite3_result_int (context, 1); else sqlite3_result_int (context, 0); return; } if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { spatialite_e ("CheckSpatialIndex() error: argument 1 [table_name] is not of the String type\n"); sqlite3_result_null (context); return; } table = sqlite3_value_text (argv[0]); if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { spatialite_e ("CheckSpatialIndex() error: argument 2 [column_name] is not of the String type\n"); sqlite3_result_null (context); return; } column = sqlite3_value_text (argv[1]); status = check_spatial_index (sqlite, table, column); if (status < 0) sqlite3_result_null (context); else if (status > 0) sqlite3_result_int (context, 1); else sqlite3_result_int (context, 0); } static int recover_spatial_index (sqlite3 * sqlite, const unsigned char *table, const unsigned char *geom) { /* attempting to rebuild an R*Tree */ char *sql_statement; char *errMsg = NULL; int ret; char *idx_name; char *xidx_name; char sql[1024]; int is_defined = 0; sqlite3_stmt *stmt; /* checking if the R*Tree Spatial Index is defined */ sql_statement = sqlite3_mprintf ("SELECT Count(*) FROM geometry_columns " "WHERE Upper(f_table_name) = Upper(%Q) " "AND Upper(f_geometry_column) = Upper(%Q) AND spatial_index_enabled = 1", table, geom); ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("RecoverSpatialIndex SQL error: %s\n", sqlite3_errmsg (sqlite)); return -1; } while (1) { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) is_defined = sqlite3_column_int (stmt, 0); else { printf ("sqlite3_step() error: %s\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); return -1; } } sqlite3_finalize (stmt); if (!is_defined) return -1; /* erasing the R*Tree table */ idx_name = sqlite3_mprintf ("idx_%s_%s", table, geom); xidx_name = gaiaDoubleQuotedSql (idx_name); sqlite3_free (idx_name); sql_statement = sqlite3_mprintf ("DELETE FROM \"%s\"", xidx_name); free (xidx_name); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; /* populating the R*Tree table from scratch */ buildSpatialIndex (sqlite, table, (const char *) geom); strcpy (sql, "SpatialIndex: successfully recovered"); updateSpatiaLiteHistory (sqlite, (const char *) table, (const char *) geom, sql); return 1; error: spatialite_e ("RecoverSpatialIndex() error: \"%s\"\n", errMsg); sqlite3_free (errMsg); return 0; } static int recover_any_spatial_index (sqlite3 * sqlite, int no_check) { /* attempting to rebuild any defined R*Tree */ const unsigned char *table; const unsigned char *column; int status; char sql[1024]; int ret; int to_be_fixed; sqlite3_stmt *stmt; /* retrieving any defined R*Tree */ strcpy (sql, "SELECT f_table_name, f_geometry_column FROM geometry_columns "); strcat (sql, "WHERE spatial_index_enabled = 1"); ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("RecoverSpatialIndex SQL error: %s\n", sqlite3_errmsg (sqlite)); return -1; } while (1) { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) { /* checking a single R*Tree */ table = sqlite3_column_text (stmt, 0); column = sqlite3_column_text (stmt, 1); to_be_fixed = 1; if (!no_check) { status = check_spatial_index (sqlite, table, column); if (status < 0) { /* some unexpected error occurred */ goto fatal_error; } else if (status > 0) { /* the Spatial Index is already valid */ to_be_fixed = 0; } } if (to_be_fixed) { /* rebuilding the Spatial Index */ status = recover_spatial_index (sqlite, table, column); if (status < 0) { /* some unexpected error occurred */ goto fatal_error; } else if (status == 0) goto error; } } else { printf ("sqlite3_step() error: %s\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); return -1; } } sqlite3_finalize (stmt); return 1; error: sqlite3_finalize (stmt); return 0; fatal_error: sqlite3_finalize (stmt); return -1; } static void fnct_RecoverSpatialIndex (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / RecoverSpatialIndex() / RecoverSpatialIndex(no_check) / RecoverSpatialIndex(table, column) / RecoverSpatialIndex(table, column, no_check) / / attempts to rebuild a SpatialIndex, returning: / 1 - on success / 0 - on failure / NULL if any syntax error is detected */ const unsigned char *table; const unsigned char *column; int no_check = 0; int status; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (argc <= 1) { /* no arguments: we must rebuild any defined R*Tree */ if (argc == 1) { if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) no_check = sqlite3_value_int (argv[0]); else { spatialite_e ("RecoverSpatialIndex() error: argument 1 [no_check] is not of the Integer type\n"); sqlite3_result_null (context); return; } } status = recover_any_spatial_index (sqlite, no_check); if (status < 0) sqlite3_result_null (context); else if (status > 0) sqlite3_result_int (context, 1); else sqlite3_result_int (context, 0); return; } if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { spatialite_e ("RecoverSpatialIndex() error: argument 1 [table_name] is not of the String type\n"); sqlite3_result_null (context); return; } table = sqlite3_value_text (argv[0]); if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { spatialite_e ("RecoverSpatialIndex() error: argument 2 [column_name] is not of the String type\n"); sqlite3_result_null (context); return; } column = sqlite3_value_text (argv[1]); if (argc == 3) { if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) no_check = sqlite3_value_int (argv[2]); else { spatialite_e ("RecoverSpatialIndex() error: argument 2 [no_check] is not of the Integer type\n"); sqlite3_result_null (context); return; } } if (!no_check) { /* checking the current SpatialIndex validity */ status = check_spatial_index (sqlite, table, column); if (status < 0) { /* some unexpected error occurred */ sqlite3_result_null (context); return; } else if (status > 0) { /* the Spatial Index is already valid */ sqlite3_result_int (context, 1); return; } } /* rebuilding the Spatial Index */ status = recover_spatial_index (sqlite, table, column); if (status < 0) sqlite3_result_null (context); else if (status > 0) sqlite3_result_int (context, 1); else sqlite3_result_int (context, 0); } static void fnct_CreateSpatialIndex (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CreateSpatialIndex(table, column ) / / creates a SpatialIndex based on Column and Table / returns 1 on success / 0 on failure */ const char *table; const char *column; char *sql_statement; char sql[1024]; char *errMsg = NULL; int ret; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { spatialite_e ("CreateSpatialIndex() error: argument 1 [table_name] is not of the String type\n"); sqlite3_result_int (context, 0); return; } table = (const char *) sqlite3_value_text (argv[0]); if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { spatialite_e ("CreateSpatialIndex() error: argument 2 [column_name] is not of the String type\n"); sqlite3_result_int (context, 0); return; } column = (const char *) sqlite3_value_text (argv[1]); sql_statement = sqlite3_mprintf ("UPDATE geometry_columns SET spatial_index_enabled = 1 " "WHERE Upper(f_table_name) = Upper(%Q) AND " "Upper(f_geometry_column) = Upper(%Q) AND spatial_index_enabled = 0", table, column); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; if (sqlite3_changes (sqlite) == 0) { spatialite_e ("CreateSpatialIndex() error: either \"%s\".\"%s\" isn't a Geometry column or a SpatialIndex is already defined\n", table, column); sqlite3_result_int (context, 0); return; } updateGeometryTriggers (sqlite, table, column); sqlite3_result_int (context, 1); strcpy (sql, "R*Tree Spatial Index successfully created"); updateSpatiaLiteHistory (sqlite, table, column, sql); return; error: spatialite_e ("CreateSpatialIndex() error: \"%s\"\n", errMsg); sqlite3_free (errMsg); sqlite3_result_int (context, 0); return; } static void fnct_CreateMbrCache (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CreateMbrCache(table, column ) / / creates an MBR Cache based on Column and Table / returns 1 on success / 0 on failure */ const char *table; const char *column; char *sql_statement; char sql[1024]; char *errMsg = NULL; int ret; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { spatialite_e ("CreateMbrCache() error: argument 1 [table_name] is not of the String type\n"); sqlite3_result_int (context, 0); return; } table = (const char *) sqlite3_value_text (argv[0]); if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { spatialite_e ("CreateMbrCache() error: argument 2 [column_name] is not of the String type\n"); sqlite3_result_int (context, 0); return; } column = (const char *) sqlite3_value_text (argv[1]); sql_statement = sqlite3_mprintf ("UPDATE geometry_columns SET spatial_index_enabled = 2 " "WHERE Upper(f_table_name) = Upper(%Q) " "AND Upper(f_geometry_column) = Upper(%Q) AND spatial_index_enabled = 0", table, column); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; if (sqlite3_changes (sqlite) == 0) { spatialite_e ("CreateMbrCache() error: either \"%s\".\"%s\" isn't a Geometry column or a SpatialIndex is already defined\n", table, column); sqlite3_result_int (context, 0); return; } updateGeometryTriggers (sqlite, table, column); sqlite3_result_int (context, 1); strcpy (sql, "MbrCache successfully created"); updateSpatiaLiteHistory (sqlite, table, column, sql); return; error: spatialite_e ("CreateMbrCache() error: \"%s\"\n", errMsg); sqlite3_free (errMsg); sqlite3_result_int (context, 0); return; } static void fnct_DisableSpatialIndex (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / DisableSpatialIndex(table, column ) / / disables a SpatialIndex based on Column and Table / returns 1 on success / 0 on failure */ const char *table; const char *column; char sql[1024]; char *sql_statement; char *errMsg = NULL; int ret; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { spatialite_e ("DisableSpatialIndex() error: argument 1 [table_name] is not of the String type\n"); sqlite3_result_int (context, 0); return; } table = (const char *) sqlite3_value_text (argv[0]); if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { spatialite_e ("DisableSpatialIndex() error: argument 2 [column_name] is not of the String type\n"); sqlite3_result_int (context, 0); return; } column = (const char *) sqlite3_value_text (argv[1]); sql_statement = sqlite3_mprintf ("UPDATE geometry_columns SET spatial_index_enabled = 0 " "WHERE Upper(f_table_name) = Upper(%Q) AND " "Upper(f_geometry_column) = Upper(%Q) AND spatial_index_enabled <> 0", table, column); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; if (sqlite3_changes (sqlite) == 0) { spatialite_e ("DisableSpatialIndex() error: either \"%s\".\"%s\" isn't a Geometry column or no SpatialIndex is defined\n", table, column); sqlite3_result_int (context, 0); return; } updateGeometryTriggers (sqlite, table, column); sqlite3_result_int (context, 1); strcpy (sql, "SpatialIndex successfully disabled"); updateSpatiaLiteHistory (sqlite, table, column, sql); return; error: spatialite_e ("DisableSpatialIndex() error: \"%s\"\n", errMsg); sqlite3_free (errMsg); sqlite3_result_int (context, 0); return; } static void fnct_RebuildGeometryTriggers (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / RebuildGeometryTriggers(table, column ) / / rebuilds Geometry Triggers (constraints) based on Column and Table / returns 1 on success / 0 on failure */ const char *table; const char *column; char *sql_statement; char *errMsg = NULL; int ret; char **results; int rows; int columns; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { spatialite_e ("RebuildGeometryTriggers() error: argument 1 [table_name] is not of the String type\n"); sqlite3_result_int (context, 0); return; } table = (const char *) sqlite3_value_text (argv[0]); if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { spatialite_e ("RebuildGeometryTriggers() error: argument 2 [column_name] is not of the String type\n"); sqlite3_result_int (context, 0); return; } column = (const char *) sqlite3_value_text (argv[1]); sql_statement = sqlite3_mprintf ("SELECT f_table_name FROM geometry_columns " "WHERE Upper(f_table_name) = Upper(%Q) AND Upper(f_geometry_column) = Upper (%Q)", table, column); ret = sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; sqlite3_free_table (results); if (rows <= 0) { spatialite_e ("RebuildGeometryTriggers() error: \"%s\".\"%s\" isn't a Geometry column\n", table, column); sqlite3_result_int (context, 0); return; } updateGeometryTriggers (sqlite, table, column); sqlite3_result_int (context, 1); updateSpatiaLiteHistory (sqlite, table, column, "Geometry Triggers successfully rebuilt"); return; error: spatialite_e ("RebuildGeometryTriggers() error: \"%s\"\n", errMsg); sqlite3_free (errMsg); sqlite3_result_int (context, 0); return; } static void fnct_UpdateLayerStatistics (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / UpdateLayerStatistics(table, column ) / / Updates LAYER_STATISTICS [based on Column and Table] / returns 1 on success / 0 on failure */ const char *sql; const char *table = NULL; const char *column = NULL; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (argc >= 1) { if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { spatialite_e ("UpdateLayerStatistics() error: argument 1 [table_name] is not of the String type\n"); sqlite3_result_int (context, 0); return; } table = (const char *) sqlite3_value_text (argv[0]); } if (argc >= 2) { if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { spatialite_e ("UpdateLayerStatistics() error: argument 2 [column_name] is not of the String type\n"); sqlite3_result_int (context, 0); return; } column = (const char *) sqlite3_value_text (argv[1]); } if (!update_layer_statistics (sqlite, table, column)) goto error; sqlite3_result_int (context, 1); sql = "UpdateLayerStatistics"; if (table == NULL) table = "ALL-TABLES"; if (column == NULL) column = "ALL-GEOMETRY-COLUMNS"; updateSpatiaLiteHistory (sqlite, (const char *) table, (const char *) column, sql); return; error: sqlite3_result_int (context, 0); return; } static void fnct_GetLayerExtent (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / GetLayerExtent(table) / GetLayerExtent(table, column ) / GetLayerExtent(table, column, pessimistic ) / / Return a Geometry (Envelope) corresponding to the full layer / extent [eventually updating the supporting statistics / NULL on failure */ const char *table = NULL; const char *column = NULL; int pessimistic = 0; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geom; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (argc >= 1) { if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { spatialite_e ("GetLayerExtent() error: argument 1 [table_name] is not of the String type\n"); sqlite3_result_null (context); return; } table = (const char *) sqlite3_value_text (argv[0]); } if (argc >= 2) { if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { spatialite_e ("GetLayerExtent() error: argument 2 [column_name] is not of the String type\n"); sqlite3_result_null (context); return; } column = (const char *) sqlite3_value_text (argv[1]); } if (argc >= 3) { if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { spatialite_e ("GetLayerExtent() error: argument 3 [OPTIMISTIC/PESSIMISTIC] is not of the Integer type\n"); sqlite3_result_null (context); return; } pessimistic = sqlite3_value_int (argv[2]); } geom = gaiaGetLayerExtent (sqlite, table, column, pessimistic); if (!geom) goto error; /* builds the BLOB geometry to be returned */ gaiaToSpatiaLiteBlobWkb (geom, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (geom); return; error: sqlite3_result_null (context); return; } static void fnct_CreateRasterCoveragesTable (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CreateRasterCoveragesTable() / / creates the main RasterCoverages table / returns 1 on success / 0 on failure */ sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (!createRasterCoveragesTable (sqlite)) goto error; updateSpatiaLiteHistory (sqlite, "*** Raster Coveraverages ***", NULL, "Main table successfully created"); sqlite3_result_int (context, 1); return; error: sqlite3_result_int (context, 0); return; } static gaiaPointPtr simplePoint (gaiaGeomCollPtr geo) { /* helper function / if this GEOMETRY contains only one POINT, and no other elementary geometry / the POINT address will be returned / otherwise NULL will be returned */ int cnt = 0; gaiaPointPtr point; gaiaPointPtr this_point = NULL; if (!geo) return NULL; if (geo->FirstLinestring || geo->FirstPolygon) return NULL; point = geo->FirstPoint; while (point) { /* counting how many POINTs are there */ cnt++; this_point = point; point = point->Next; } if (cnt == 1 && this_point) return this_point; return NULL; } static gaiaLinestringPtr simpleLinestring (gaiaGeomCollPtr geo) { /* helper function / if this GEOMETRY contains only one LINESTRING, and no other elementary geometry / the LINESTRING address will be returned / otherwise NULL will be returned */ int cnt = 0; gaiaLinestringPtr line; gaiaLinestringPtr this_line = NULL; if (!geo) return NULL; if (geo->FirstPoint || geo->FirstPolygon) return NULL; line = geo->FirstLinestring; while (line) { /* counting how many LINESTRINGs are there */ cnt++; this_line = line; line = line->Next; } if (cnt == 1 && this_line) return this_line; return NULL; } static gaiaPolygonPtr simplePolygon (gaiaGeomCollPtr geo) { /* helper function / if this GEOMETRY contains only one POLYGON, and no other elementary geometry / the POLYGON address will be returned / otherwise NULL will be returned */ int cnt = 0; gaiaPolygonPtr polyg; gaiaPolygonPtr this_polyg = NULL; if (!geo) return NULL; if (geo->FirstPoint || geo->FirstLinestring) return NULL; polyg = geo->FirstPolygon; while (polyg) { /* counting how many POLYGONs are there */ cnt++; this_polyg = polyg; polyg = polyg->Next; } if (cnt == 1 && this_polyg) return this_polyg; return NULL; } static void fnct_AsText (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / AsText(BLOB encoded geometry) / / returns the corresponding WKT encoded value / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int len; gaiaOutBuffer out_buf; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); gaiaOutBufferInitialize (&out_buf); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { gaiaOutWkt (&out_buf, geo); if (out_buf.Error || out_buf.Buffer == NULL) sqlite3_result_null (context); else { len = out_buf.WriteOffset; sqlite3_result_text (context, out_buf.Buffer, len, free); out_buf.Buffer = NULL; } } gaiaFreeGeomColl (geo); gaiaOutBufferReset (&out_buf); } static void fnct_AsWkt (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / AsWkt(BLOB encoded geometry [, Integer precision]) / / returns the corresponding WKT encoded value / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int len; int precision = 15; gaiaOutBuffer out_buf; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (argc == 2) { if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) precision = sqlite3_value_int (argv[1]); else { sqlite3_result_null (context); return; } } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); gaiaOutBufferInitialize (&out_buf); if (!geo) sqlite3_result_null (context); else { gaiaOutWktStrict (&out_buf, geo, precision); if (out_buf.Error || out_buf.Buffer == NULL) sqlite3_result_null (context); else { len = out_buf.WriteOffset; sqlite3_result_text (context, out_buf.Buffer, len, free); out_buf.Buffer = NULL; } } gaiaFreeGeomColl (geo); gaiaOutBufferReset (&out_buf); } /* / / AsSvg(geometry,[relative], [precision]) implementation / //////////////////////////////////////////////////////////// / / Author: Klaus Foerster klaus.foerster@svg.cc / version 0.9. 2008 September 21 / */ static void fnct_AsSvg (sqlite3_context * context, int argc, sqlite3_value ** argv, int relative, int precision) { /* SQL function: AsSvg(BLOB encoded geometry, [int relative], [int precision]) returns the corresponding SVG encoded value or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int len; gaiaOutBuffer out_buf; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) { sqlite3_result_null (context); return; } else { /* make sure relative is 0 or 1 */ if (relative > 0) relative = 1; else relative = 0; /* make sure precision is between 0 and 15 - default to 6 if absent */ if (precision > GAIA_SVG_DEFAULT_MAX_PRECISION) precision = GAIA_SVG_DEFAULT_MAX_PRECISION; if (precision < 0) precision = 0; /* produce SVG-notation - actual work is done in gaiageo/gg_wkt.c */ gaiaOutBufferInitialize (&out_buf); gaiaOutSvg (&out_buf, geo, relative, precision); if (out_buf.Error || out_buf.Buffer == NULL) sqlite3_result_null (context); else { len = out_buf.WriteOffset; sqlite3_result_text (context, out_buf.Buffer, len, free); out_buf.Buffer = NULL; } } gaiaFreeGeomColl (geo); gaiaOutBufferReset (&out_buf); } static void fnct_AsSvg1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* called without additional arguments */ fnct_AsSvg (context, argc, argv, GAIA_SVG_DEFAULT_RELATIVE, GAIA_SVG_DEFAULT_PRECISION); } static void fnct_AsSvg2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* called with relative-switch */ if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) fnct_AsSvg (context, argc, argv, sqlite3_value_int (argv[1]), GAIA_SVG_DEFAULT_PRECISION); else sqlite3_result_null (context); } static void fnct_AsSvg3 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* called with relative-switch and precision-argument */ if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER && sqlite3_value_type (argv[2]) == SQLITE_INTEGER) fnct_AsSvg (context, argc, argv, sqlite3_value_int (argv[1]), sqlite3_value_int (argv[2])); else sqlite3_result_null (context); } /* END of Klaus Foerster AsSvg() implementation */ SPATIALITE_PRIVATE void getProjParams (void *p_sqlite, int srid, char **proj_params) { /* retrives the PROJ params from SPATIAL_SYS_REF table, if possible */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; char *sql; char **results; int rows; int columns; int i; int ret; int len; const char *proj4text; char *errMsg = NULL; *proj_params = NULL; sql = sqlite3_mprintf ("SELECT proj4text FROM spatial_ref_sys WHERE srid = %d", srid); ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, &errMsg); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("unknown SRID: %d\t<%s>\n", srid, errMsg); sqlite3_free (errMsg); return; } for (i = 1; i <= rows; i++) { proj4text = results[(i * columns)]; if (proj4text != NULL) { len = strlen (proj4text); *proj_params = malloc (len + 1); strcpy (*proj_params, proj4text); } } if (*proj_params == NULL) spatialite_e ("unknown SRID: %d\n", srid); sqlite3_free_table (results); } #ifndef OMIT_PROJ /* PROJ.4 is strictly required to support KML */ static void fnct_AsKml1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / AsKml(BLOB encoded geometry [, Integer precision]) / / returns the corresponding 'bare geom' KML representation / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int len; gaiaOutBuffer out_buf; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr geo_wgs84; char *proj_from; char *proj_to; int precision = 15; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); if (argc == 2) { if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) precision = sqlite3_value_int (argv[1]); else { sqlite3_result_null (context); return; } } gaiaOutBufferInitialize (&out_buf); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { if (geo->Srid == 4326) ; /* already WGS84 */ else if (geo->Srid <= 0) { /* unknown SRID: giving up */ sqlite3_result_null (context); goto stop; } else { /* attempting to reproject into WGS84 */ getProjParams (sqlite, geo->Srid, &proj_from); getProjParams (sqlite, 4326, &proj_to); if (proj_to == NULL || proj_from == NULL) { if (proj_from) free (proj_from); if (proj_to) free (proj_to); sqlite3_result_null (context); goto stop; } geo_wgs84 = gaiaTransform (geo, proj_from, proj_to); free (proj_from); free (proj_to); if (!geo_wgs84) { sqlite3_result_null (context); goto stop; } /* ok, reprojection was successful */ gaiaFreeGeomColl (geo); geo = geo_wgs84; } /* produce KML-notation - actual work is done in gaiageo/gg_wkt.c */ gaiaOutBareKml (&out_buf, geo, precision); if (out_buf.Error || out_buf.Buffer == NULL) sqlite3_result_null (context); else { len = out_buf.WriteOffset; sqlite3_result_text (context, out_buf.Buffer, len, free); out_buf.Buffer = NULL; } } stop: gaiaFreeGeomColl (geo); gaiaOutBufferReset (&out_buf); } static void fnct_AsKml3 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / AsKml(Anything name, Anything description, BLOB encoded geometry [, Integer precision]) / / returns the corresponding 'full' KML representation / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int len; gaiaOutBuffer out_buf; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr geo_wgs84; sqlite3_int64 int_value; double dbl_value; const char *name; const char *desc; char *name_malloc = NULL; char *desc_malloc = NULL; char dummy[128]; char *xdummy; char *proj_from; char *proj_to; int precision = 15; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ switch (sqlite3_value_type (argv[0])) { case SQLITE_TEXT: name = (const char *) sqlite3_value_text (argv[0]); len = strlen (name); name_malloc = malloc (len + 1); strcpy (name_malloc, name); name = name_malloc; break; case SQLITE_INTEGER: int_value = sqlite3_value_int64 (argv[0]); sprintf (dummy, FRMT64, int_value); len = strlen (dummy); name_malloc = malloc (len + 1); strcpy (name_malloc, dummy); name = name_malloc; break; case SQLITE_FLOAT: dbl_value = sqlite3_value_double (argv[0]); xdummy = sqlite3_mprintf ("%1.6f", dbl_value); len = strlen (xdummy); name_malloc = malloc (len + 1); strcpy (name_malloc, xdummy); sqlite3_free (xdummy); name = name_malloc; break; case SQLITE_BLOB: name = "BLOB"; break; default: name = "NULL"; break; }; switch (sqlite3_value_type (argv[1])) { case SQLITE_TEXT: desc = (const char *) sqlite3_value_text (argv[1]); len = strlen (desc); desc_malloc = malloc (len + 1); strcpy (desc_malloc, desc); desc = desc_malloc; break; case SQLITE_INTEGER: int_value = sqlite3_value_int64 (argv[1]); sprintf (dummy, FRMT64, int_value); len = strlen (dummy); desc_malloc = malloc (len + 1); strcpy (desc_malloc, dummy); desc = desc_malloc; break; case SQLITE_FLOAT: dbl_value = sqlite3_value_double (argv[1]); xdummy = sqlite3_mprintf ("%1.6f", dbl_value); len = strlen (xdummy); desc_malloc = malloc (len + 1); strcpy (desc_malloc, xdummy); sqlite3_free (xdummy); desc = desc_malloc; break; case SQLITE_BLOB: desc = "BLOB"; break; default: desc = "NULL"; break; }; gaiaOutBufferInitialize (&out_buf); if (sqlite3_value_type (argv[2]) != SQLITE_BLOB) { sqlite3_result_null (context); goto stop; } p_blob = (unsigned char *) sqlite3_value_blob (argv[2]); n_bytes = sqlite3_value_bytes (argv[2]); if (argc == 4) { if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) precision = sqlite3_value_int (argv[3]); else { sqlite3_result_null (context); goto stop; } } geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { if (geo->Srid == 4326) ; /* already WGS84 */ else if (geo->Srid == 0) { /* unknown SRID: giving up */ sqlite3_result_null (context); goto stop; } else { /* attempting to reproject into WGS84 */ getProjParams (sqlite, geo->Srid, &proj_from); getProjParams (sqlite, 4326, &proj_to); if (proj_to == NULL || proj_from == NULL) { if (proj_from != NULL) free (proj_from); if (proj_to != NULL) free (proj_to); sqlite3_result_null (context); goto stop; } geo_wgs84 = gaiaTransform (geo, proj_from, proj_to); free (proj_from); free (proj_to); if (!geo_wgs84) { sqlite3_result_null (context); goto stop; } /* ok, reprojection was successful */ gaiaFreeGeomColl (geo); geo = geo_wgs84; } /* produce KML-notation - actual work is done in gaiageo/gg_wkt.c */ gaiaOutFullKml (&out_buf, name, desc, geo, precision); if (out_buf.Error || out_buf.Buffer == NULL) sqlite3_result_null (context); else { len = out_buf.WriteOffset; sqlite3_result_text (context, out_buf.Buffer, len, free); out_buf.Buffer = NULL; } } stop: gaiaFreeGeomColl (geo); if (name_malloc) free (name_malloc); if (desc_malloc) free (desc_malloc); gaiaOutBufferReset (&out_buf); } static void fnct_AsKml (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / AsKml(Anything name, Anything description, BLOB encoded geometry) / or / AsKml(BLOB encoded geometry) / / returns the corresponding KML representation / or NULL if any error is encountered */ if (argc == 3 || argc == 4) fnct_AsKml3 (context, argc, argv); else fnct_AsKml1 (context, argc, argv); } #endif /* end including PROJ.4 */ static void fnct_AsGml (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / AsGml(BLOB encoded geometry) / or / AsGml(integer version, BLOB encoded geometry) / or / AsGml(integer version, BLOB encoded geometry, integer precision) / / *version* may be 2 (GML 2.1.2) or 3 (GML 3.1.1) / default *version*: 2 / / *precision* is the number of output decimal digits / default *precision*: 15 / / returns the corresponding GML representation / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int len; int version = 2; int precision = 15; gaiaOutBuffer out_buf; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (argc == 3) { if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) version = sqlite3_value_int (argv[0]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) precision = sqlite3_value_int (argv[2]); else { sqlite3_result_null (context); return; } } else if (argc == 2) { if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER && sqlite3_value_type (argv[1]) == SQLITE_BLOB) { version = sqlite3_value_int (argv[0]); p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); } else if (sqlite3_value_type (argv[0]) == SQLITE_BLOB && sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); precision = sqlite3_value_int (argv[1]); } else { sqlite3_result_null (context); return; } } else { if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); } gaiaOutBufferInitialize (&out_buf); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { /* produce GML-notation - actual work is done in gaiageo/gg_wkt.c */ gaiaOutGml (&out_buf, version, precision, geo); if (out_buf.Error || out_buf.Buffer == NULL) sqlite3_result_null (context); else { len = out_buf.WriteOffset; sqlite3_result_text (context, out_buf.Buffer, len, free); out_buf.Buffer = NULL; } } gaiaFreeGeomColl (geo); gaiaOutBufferReset (&out_buf); } static void fnct_AsGeoJSON (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / AsGeoJSON(BLOB encoded geometry) / or / AsGeoJSON(BLOB encoded geometry, integer precision) / or / AsGeoJSON(BLOB encoded geometry, integer precision, integer options) / / *precision* is the number of output decimal digits / default *precision*: 15 / / *options* may be one of the followings: / 0 = no options [default] / 1 = GeoJSON MBR / 2 = GeoJSON Short CRS (e.g EPSG:4326) / 3 = 1 + 2 (Mbr + shortCrs) / 4 = GeoJSON Long CRS (e.g urn:ogc:def:crs:EPSG::4326) / 5 = 1 + 4 (Mbr + longCrs) / / returns the corresponding GML representation / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int len; int precision = 15; int options = 0; gaiaOutBuffer out_buf; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (argc == 3) { if (sqlite3_value_type (argv[0]) == SQLITE_BLOB && sqlite3_value_type (argv[1]) == SQLITE_INTEGER && sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); precision = sqlite3_value_int (argv[1]); options = sqlite3_value_int (argv[2]); if (options >= 1 && options <= 5) ; else options = 0; } else { sqlite3_result_null (context); return; } } else if (argc == 2) { if (sqlite3_value_type (argv[0]) == SQLITE_BLOB && sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); precision = sqlite3_value_int (argv[1]); } else { sqlite3_result_null (context); return; } } else { if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); } gaiaOutBufferInitialize (&out_buf); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { /* produce GeoJSON-notation - actual work is done in gaiageo/gg_wkt.c */ gaiaOutGeoJSON (&out_buf, geo, precision, options); if (out_buf.Error || out_buf.Buffer == NULL) sqlite3_result_null (context); else { len = out_buf.WriteOffset; sqlite3_result_text (context, out_buf.Buffer, len, free); out_buf.Buffer = NULL; } } gaiaFreeGeomColl (geo); gaiaOutBufferReset (&out_buf); } static void fnct_AsBinary (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / AsBinary(BLOB encoded geometry) / / returns the corresponding WKB encoded value / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { gaiaToWkb (geo, &p_result, &len); if (!p_result) sqlite3_result_null (context); else sqlite3_result_blob (context, p_result, len, free); } gaiaFreeGeomColl (geo); } static void fnct_AsFGF (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / AsFGF(BLOB encoded geometry) / / returns the corresponding FGF encoded value / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; int coord_dims; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { spatialite_e ("AsFGF() error: argument 2 [geom_coords] is not of the Integer type\n"); sqlite3_result_null (context); return; } coord_dims = sqlite3_value_int (argv[1]); if (coord_dims == 0 || coord_dims == 1 || coord_dims == 2 || coord_dims == 3) ; else { spatialite_e ("AsFGF() error: argument 2 [geom_coords] out of range [0,1,2,3]\n"); sqlite3_result_null (context); return; } geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { gaiaToFgf (geo, &p_result, &len, coord_dims); if (!p_result) sqlite3_result_null (context); else sqlite3_result_blob (context, p_result, len, free); } gaiaFreeGeomColl (geo); } static void fnct_MakePoint1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / MakePoint(double X, double Y) / alias / ST_Point(double X, double Y) / / builds a POINT / or NULL if any error is encountered */ int len; int int_value; unsigned char *p_result = NULL; double x; double y; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) x = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) y = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); y = int_value; } else { sqlite3_result_null (context); return; } gaiaMakePoint (x, y, 0, &p_result, &len); if (!p_result) sqlite3_result_null (context); else sqlite3_result_blob (context, p_result, len, free); } static void fnct_MakePoint2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / MakePoint(double X, double Y, int SRID) / / builds a POINT / or NULL if any error is encountered */ int len; int int_value; unsigned char *p_result = NULL; double x; double y; int srid; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) x = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) y = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); y = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) srid = sqlite3_value_int (argv[2]); else { sqlite3_result_null (context); return; } gaiaMakePoint (x, y, srid, &p_result, &len); if (!p_result) sqlite3_result_null (context); else sqlite3_result_blob (context, p_result, len, free); } static void fnct_MakePointZ1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / MakePointZ(double X, double Y, double Z) / / builds a POINT Z / or NULL if any error is encountered */ int len; int int_value; unsigned char *p_result = NULL; double x; double y; double z; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) x = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) y = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); y = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) z = sqlite3_value_double (argv[2]); else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); z = int_value; } else { sqlite3_result_null (context); return; } gaiaMakePointZ (x, y, z, 0, &p_result, &len); if (!p_result) sqlite3_result_null (context); else sqlite3_result_blob (context, p_result, len, free); } static void fnct_MakePointZ2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / MakePointZ(double X, double Y, double Z, int SRID) / / builds a POINT Z / or NULL if any error is encountered */ int len; int int_value; unsigned char *p_result = NULL; double x; double y; double z; int srid; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) x = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) y = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); y = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) z = sqlite3_value_double (argv[2]); else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); z = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) srid = sqlite3_value_int (argv[3]); else { sqlite3_result_null (context); return; } gaiaMakePointZ (x, y, z, srid, &p_result, &len); if (!p_result) sqlite3_result_null (context); else sqlite3_result_blob (context, p_result, len, free); } static void fnct_MakePointM1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / MakePointM(double X, double Y, double M) / / builds a POINT M / or NULL if any error is encountered */ int len; int int_value; unsigned char *p_result = NULL; double x; double y; double m; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) x = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) y = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); y = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) m = sqlite3_value_double (argv[2]); else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); m = int_value; } else { sqlite3_result_null (context); return; } gaiaMakePointM (x, y, m, 0, &p_result, &len); if (!p_result) sqlite3_result_null (context); else sqlite3_result_blob (context, p_result, len, free); } static void fnct_MakePointM2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / MakePointM(double X, double Y, double M, int SRID) / / builds a POINT M / or NULL if any error is encountered */ int len; int int_value; unsigned char *p_result = NULL; double x; double y; double m; int srid; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) x = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) y = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); y = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) m = sqlite3_value_double (argv[2]); else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); m = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) srid = sqlite3_value_int (argv[3]); else { sqlite3_result_null (context); return; } gaiaMakePointM (x, y, m, srid, &p_result, &len); if (!p_result) sqlite3_result_null (context); else sqlite3_result_blob (context, p_result, len, free); } static void fnct_MakePointZM1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / MakePointZM(double X, double Y, double Z, double M) / / builds a POINT ZM / or NULL if any error is encountered */ int len; int int_value; unsigned char *p_result = NULL; double x; double y; double z; double m; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) x = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) y = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); y = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) z = sqlite3_value_double (argv[2]); else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); z = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) m = sqlite3_value_double (argv[3]); else if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[3]); m = int_value; } else { sqlite3_result_null (context); return; } gaiaMakePointZM (x, y, z, m, 0, &p_result, &len); if (!p_result) sqlite3_result_null (context); else sqlite3_result_blob (context, p_result, len, free); } static void fnct_MakePointZM2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / MakePointZM(double X, double Y, double Z, double M, int SRID) / / builds a POINT / or NULL if any error is encountered */ int len; int int_value; unsigned char *p_result = NULL; double x; double y; double z; double m; int srid; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) x = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) y = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); y = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) z = sqlite3_value_double (argv[2]); else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); z = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) m = sqlite3_value_double (argv[3]); else if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[3]); m = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[4]) == SQLITE_INTEGER) srid = sqlite3_value_int (argv[4]); else { sqlite3_result_null (context); return; } gaiaMakePointZM (x, y, z, m, srid, &p_result, &len); if (!p_result) sqlite3_result_null (context); else sqlite3_result_blob (context, p_result, len, free); } static void addGeomPointToDynamicLine (gaiaDynamicLinePtr dyn, gaiaGeomCollPtr geom) { /* appending a simple-Point Geometry to a Dynamic Line */ int pts; int lns; int pgs; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; if (dyn == NULL) return; if (dyn->Error) return; /* checking if GEOM simply is a POINT */ if (geom == NULL) { dyn->Error = 1; return; } pts = 0; lns = 0; pgs = 0; pt = geom->FirstPoint; while (pt) { pts++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { lns++; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { pgs++; pg = pg->Next; } if (pts == 1 && lns == 0 && pgs == 0) ; else { /* failure: not a simple POINT */ dyn->Error = 1; return; } if (dyn->Srid != geom->Srid) { /* failure: SRID mismatch */ dyn->Error = 1; return; } switch (geom->FirstPoint->DimensionModel) { case GAIA_XY_Z_M: gaiaAppendPointZMToDynamicLine (dyn, geom->FirstPoint->X, geom->FirstPoint->Y, geom->FirstPoint->Z, geom->FirstPoint->M); break; case GAIA_XY_Z: gaiaAppendPointZToDynamicLine (dyn, geom->FirstPoint->X, geom->FirstPoint->Y, geom->FirstPoint->Z); break; case GAIA_XY_M: gaiaAppendPointMToDynamicLine (dyn, geom->FirstPoint->X, geom->FirstPoint->Y, geom->FirstPoint->M); break; default: gaiaAppendPointToDynamicLine (dyn, geom->FirstPoint->X, geom->FirstPoint->Y); break; } } static void fnct_MakeLine_step (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / MakeLine(BLOBencoded geom) / / aggregate function - STEP / */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geom; gaiaDynamicLinePtr *p; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geom = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geom) return; p = sqlite3_aggregate_context (context, sizeof (gaiaDynamicLinePtr)); if (!(*p)) { /* this is the first row */ *p = gaiaAllocDynamicLine (); (*p)->Srid = geom->Srid; addGeomPointToDynamicLine (*p, geom); gaiaFreeGeomColl (geom); } else { /* subsequent rows */ addGeomPointToDynamicLine (*p, geom); gaiaFreeGeomColl (geom); } } static gaiaGeomCollPtr geomFromDynamicLine (gaiaDynamicLinePtr dyn) { /* attempting to build a Geometry from a Dynamic Line */ gaiaGeomCollPtr geom = NULL; gaiaLinestringPtr ln = NULL; gaiaPointPtr pt; int iv; int count = 0; int dims = GAIA_XY; if (dyn == NULL) return NULL; if (dyn->Error) return NULL; pt = dyn->First; while (pt) { /* counting points and checking dims */ count++; if (dims == GAIA_XY && pt->DimensionModel != GAIA_XY) dims = pt->DimensionModel; if (dims == GAIA_XY_Z && (pt->DimensionModel == GAIA_XY_M || pt->DimensionModel == GAIA_XY_Z_M)) dims = GAIA_XY_Z_M; if (dims == GAIA_XY_M && (pt->DimensionModel == GAIA_XY_Z || pt->DimensionModel == GAIA_XY_Z_M)) dims = GAIA_XY_Z_M; pt = pt->Next; } if (count < 2) return NULL; switch (dims) { case GAIA_XY_Z_M: geom = gaiaAllocGeomCollXYZM (); ln = gaiaAllocLinestringXYZM (count); break; case GAIA_XY_Z: geom = gaiaAllocGeomCollXYZ (); ln = gaiaAllocLinestringXYZ (count); break; case GAIA_XY_M: geom = gaiaAllocGeomCollXYM (); ln = gaiaAllocLinestringXYM (count); break; default: geom = gaiaAllocGeomColl (); ln = gaiaAllocLinestring (count); break; }; if (geom != NULL && ln != NULL) { gaiaInsertLinestringInGeomColl (geom, ln); geom->Srid = dyn->Srid; } else { if (geom) gaiaFreeGeomColl (geom); if (ln) gaiaFreeLinestring (ln); return NULL; } iv = 0; pt = dyn->First; while (pt) { /* setting linestring points */ if (dims == GAIA_XY_Z_M) { gaiaSetPointXYZM (ln->Coords, iv, pt->X, pt->Y, pt->Z, pt->M); } else if (dims == GAIA_XY_Z) { gaiaSetPointXYZ (ln->Coords, iv, pt->X, pt->Y, pt->Z); } else if (dims == GAIA_XY_M) { gaiaSetPointXYM (ln->Coords, iv, pt->X, pt->Y, pt->M); } else { gaiaSetPoint (ln->Coords, iv, pt->X, pt->Y); } iv++; pt = pt->Next; } return geom; } static void fnct_MakeLine_final (sqlite3_context * context) { /* SQL function: / MakeLine(BLOBencoded geom) / / aggregate function - FINAL / */ gaiaGeomCollPtr result; gaiaDynamicLinePtr *p = sqlite3_aggregate_context (context, 0); if (!p) { sqlite3_result_null (context); return; } result = geomFromDynamicLine (*p); gaiaFreeDynamicLine (*p); if (!result) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } static void buildLineFromMultiPoint (sqlite3_context * context, gaiaGeomCollPtr geom, int direction) { /* internal: building a Linestring from a MultiPolygon */ gaiaGeomCollPtr result; gaiaDynamicLinePtr dyn; int n_pts = 0; int n_lns = 0; int n_pgs = 0; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; if (geom) { pt = geom->FirstPoint; while (pt) { n_pts++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { n_lns++; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { n_pgs++; pg = pg->Next; } } /* checking if really is a MultiPoint */ if (n_pts >= 2 && n_lns == 0 && n_pgs == 0) ; else { sqlite3_result_null (context); goto end; } dyn = gaiaAllocDynamicLine (); dyn->Srid = geom->Srid; pt = geom->FirstPoint; while (pt) { /* inserting all Points accordingly to required direction */ if (direction) { /* conformant direction */ switch (pt->DimensionModel) { case GAIA_XY_Z_M: gaiaAppendPointZMToDynamicLine (dyn, pt->X, pt->Y, pt->Z, pt->M); break; case GAIA_XY_Z: gaiaAppendPointZToDynamicLine (dyn, pt->X, pt->Y, pt->Z); break; case GAIA_XY_M: gaiaAppendPointMToDynamicLine (dyn, pt->X, pt->Y, pt->M); break; default: gaiaAppendPointToDynamicLine (dyn, pt->X, pt->Y); break; } } else { /* reverse direction */ switch (pt->DimensionModel) { case GAIA_XY_Z_M: gaiaPrependPointZMToDynamicLine (dyn, pt->X, pt->Y, pt->Z, pt->M); break; case GAIA_XY_Z: gaiaPrependPointZToDynamicLine (dyn, pt->X, pt->Y, pt->Z); break; case GAIA_XY_M: gaiaPrependPointMToDynamicLine (dyn, pt->X, pt->Y, pt->M); break; default: gaiaPrependPointToDynamicLine (dyn, pt->X, pt->Y); break; } } pt = pt->Next; } result = geomFromDynamicLine (dyn); gaiaFreeDynamicLine (dyn); if (!result) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } end: gaiaFreeGeomColl (geom); } static void fnct_MakeLine (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / MakeLine(point-geometry geom1, point-geometry geom2) / or / MakeLine(multipoint geom, boolean direction) / / - builds a SEGMENT joining two POINTs / - the MultiPoint version works exactely as the corresponding aggregate / function, but not requiring aggregation; direction=TRUE direct order, / direction=FALSE reverse order / - or NULL if any error is encountered */ int len; unsigned char *p_blob; int n_bytes; unsigned char *p_result = NULL; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); goto stop; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo1) { sqlite3_result_null (context); goto stop; } if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { /* expecting a single MultiPoint input */ int direction = sqlite3_value_int (argv[1]); buildLineFromMultiPoint (context, geo1, direction); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_null (context); goto stop; } p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo2) { sqlite3_result_null (context); goto stop; } gaiaMakeLine (geo1, geo2, &p_result, &len); if (!p_result) sqlite3_result_null (context); else sqlite3_result_blob (context, p_result, len, free); stop: if (geo1) gaiaFreeGeomColl (geo1); if (geo2) gaiaFreeGeomColl (geo2); } static void fnct_MakeCircle (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / MakeCircle(double cx, double cy, double radius) / or / MakeCircle(double cx, double cy, double radius, int srid) / or / MakeCircle(double cx, double cy, double radius, int srid, double step) / / - builds a Linestring approximating a Circle / - step is the angular distance (in degrees) between points on / the circurmference (by default: every 10 degs) / - or NULL if any error is encountered */ int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geom = NULL; int ival; double cx; double cy; double r; int srid = 0; double step = 10.0; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[0]); cx = ival; } else if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) cx = sqlite3_value_double (argv[0]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[1]); cy = ival; } else if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) cy = sqlite3_value_double (argv[1]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[2]); r = ival; } else if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) r = sqlite3_value_double (argv[2]); else { sqlite3_result_null (context); return; } if (argc >= 4) { if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) srid = sqlite3_value_int (argv[3]); else { sqlite3_result_null (context); return; } } if (argc == 5) { if (sqlite3_value_type (argv[4]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[4]); step = ival; } else if (sqlite3_value_type (argv[4]) == SQLITE_FLOAT) step = sqlite3_value_double (argv[4]); else { sqlite3_result_null (context); return; } } geom = gaiaMakeCircle (cx, cy, r, step); if (!geom) sqlite3_result_null (context); else { if (srid != 0) geom->Srid = srid; gaiaToSpatiaLiteBlobWkb (geom, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); } if (geom) gaiaFreeGeomColl (geom); } static void fnct_MakeArc (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / MakeArc(double cx, double cy, double radius, double start, double stop) / or / MakeArc(double cx, double cy, double radius, double start, double stop, / int srid) / or / MakeArc(double cx, double cy, double radius, double start, double stop, / int srid, double step) / / - builds a Linestring approximating a Circular Arc / - start and stop are the initial and final angles (in degrees) / - step is the angular distance (in degrees) between points on / the circurmference (by default: every 10 degs) / - or NULL if any error is encountered */ int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geom = NULL; int ival; double cx; double cy; double r; double start; double stop; int srid = 0; double step = 10.0; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[0]); cx = ival; } else if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) cx = sqlite3_value_double (argv[0]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[1]); cy = ival; } else if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) cy = sqlite3_value_double (argv[1]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[2]); r = ival; } else if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) r = sqlite3_value_double (argv[2]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[3]); start = ival; } else if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) start = sqlite3_value_double (argv[3]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[4]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[4]); stop = ival; } else if (sqlite3_value_type (argv[4]) == SQLITE_FLOAT) stop = sqlite3_value_double (argv[4]); else { sqlite3_result_null (context); return; } if (argc >= 6) { if (sqlite3_value_type (argv[5]) == SQLITE_INTEGER) srid = sqlite3_value_int (argv[5]); else { sqlite3_result_null (context); return; } } if (argc == 7) { if (sqlite3_value_type (argv[6]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[6]); step = ival; } else if (sqlite3_value_type (argv[6]) == SQLITE_FLOAT) step = sqlite3_value_double (argv[6]); else { sqlite3_result_null (context); return; } } geom = gaiaMakeArc (cx, cy, r, start, stop, step); if (!geom) sqlite3_result_null (context); else { if (srid != 0) geom->Srid = srid; gaiaToSpatiaLiteBlobWkb (geom, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); } if (geom) gaiaFreeGeomColl (geom); } static void fnct_MakeEllipse (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / MakeEllipse(double cx, double cy, double x_axis, double y_axis) / or / MakeEllipse(double cx, double cy, double x_axis, double y_axis, / int srid) / or / MakeEllipse(double cx, double cy, double x_axis, double y_axis, / int srid, double step) / / - builds a Linestring approximating an Ellipse / - step is the angular distance (in degrees) between points on / the ellipse (by default: every 10 degs) / - or NULL if any error is encountered */ int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geom = NULL; int ival; double cx; double cy; double x_axis; double y_axis; int srid = 0; double step = 10.0; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[0]); cx = ival; } else if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) cx = sqlite3_value_double (argv[0]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[1]); cy = ival; } else if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) cy = sqlite3_value_double (argv[1]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[2]); x_axis = ival; } else if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) x_axis = sqlite3_value_double (argv[2]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[3]); y_axis = ival; } else if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) y_axis = sqlite3_value_double (argv[3]); else { sqlite3_result_null (context); return; } if (argc >= 5) { if (sqlite3_value_type (argv[4]) == SQLITE_INTEGER) srid = sqlite3_value_int (argv[4]); else { sqlite3_result_null (context); return; } } if (argc == 6) { if (sqlite3_value_type (argv[5]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[5]); step = ival; } else if (sqlite3_value_type (argv[5]) == SQLITE_FLOAT) step = sqlite3_value_double (argv[5]); else { sqlite3_result_null (context); return; } } geom = gaiaMakeEllipse (cx, cy, x_axis, y_axis, step); if (!geom) sqlite3_result_null (context); else { if (srid != 0) geom->Srid = srid; gaiaToSpatiaLiteBlobWkb (geom, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); } if (geom) gaiaFreeGeomColl (geom); } static void fnct_MakeEllipticArc (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / MakeEllipticArc(double cx, double cy, double x_axis, double y_axis, / double start, double stop) / or / MakeEllipticArc(double cx, double cy, double x_axis, double y_axis, / double start, double stop, int srid) / or / MakeEllipticArc(double cx, double cy, double x_axis, double y_axis, / double start, double stop, int srid, double step) / / - builds a Linestring approximating an Elliptic Arc / - start and stop are the initial and final angles (in degrees) / - step is the angular distance (in degrees) between points on / the ellipse (by default: every 10 degs) / - or NULL if any error is encountered */ int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geom = NULL; int ival; double cx; double cy; double x_axis; double y_axis; double start; double stop; int srid = 0; double step = 10.0; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[0]); cx = ival; } else if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) cx = sqlite3_value_double (argv[0]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[1]); cy = ival; } else if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) cy = sqlite3_value_double (argv[1]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[2]); x_axis = ival; } else if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) x_axis = sqlite3_value_double (argv[2]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[3]); y_axis = ival; } else if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) y_axis = sqlite3_value_double (argv[3]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[4]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[4]); start = ival; } else if (sqlite3_value_type (argv[4]) == SQLITE_FLOAT) start = sqlite3_value_double (argv[4]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[5]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[5]); stop = ival; } else if (sqlite3_value_type (argv[5]) == SQLITE_FLOAT) stop = sqlite3_value_double (argv[5]); else { sqlite3_result_null (context); return; } if (argc >= 7) { if (sqlite3_value_type (argv[6]) == SQLITE_INTEGER) srid = sqlite3_value_int (argv[6]); else { sqlite3_result_null (context); return; } } if (argc == 8) { if (sqlite3_value_type (argv[7]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[7]); step = ival; } else if (sqlite3_value_type (argv[7]) == SQLITE_FLOAT) step = sqlite3_value_double (argv[7]); else { sqlite3_result_null (context); return; } } geom = gaiaMakeEllipticArc (cx, cy, x_axis, y_axis, start, stop, step); if (!geom) sqlite3_result_null (context); else { if (srid != 0) geom->Srid = srid; gaiaToSpatiaLiteBlobWkb (geom, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); } if (geom) gaiaFreeGeomColl (geom); } static void fnct_MakeCircularSector (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / MakeCircularSector(double cx, double cy, double radius, double start, double stop) / or / MakeCircularSector(double cx, double cy, double radius, double start, double stop, / int srid) / or / MakeCircularSector(double cx, double cy, double radius, double start, double stop, / int srid, double step) / / - builds a Polygon approximating a Circular Sector / - start and stop are the initial and final angles (in degrees) / - step is the angular distance (in degrees) between points on / the circurmference (by default: every 10 degs) / - or NULL if any error is encountered */ int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geom = NULL; gaiaGeomCollPtr sector = NULL; int ival; double cx; double cy; double r; double start; double stop; int srid = 0; double step = 10.0; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[0]); cx = ival; } else if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) cx = sqlite3_value_double (argv[0]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[1]); cy = ival; } else if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) cy = sqlite3_value_double (argv[1]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[2]); r = ival; } else if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) r = sqlite3_value_double (argv[2]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[3]); start = ival; } else if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) start = sqlite3_value_double (argv[3]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[4]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[4]); stop = ival; } else if (sqlite3_value_type (argv[4]) == SQLITE_FLOAT) stop = sqlite3_value_double (argv[4]); else { sqlite3_result_null (context); return; } if (argc >= 6) { if (sqlite3_value_type (argv[5]) == SQLITE_INTEGER) srid = sqlite3_value_int (argv[5]); else { sqlite3_result_null (context); return; } } if (argc == 7) { if (sqlite3_value_type (argv[6]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[6]); step = ival; } else if (sqlite3_value_type (argv[6]) == SQLITE_FLOAT) step = sqlite3_value_double (argv[6]); else { sqlite3_result_null (context); return; } } geom = gaiaMakeArc (cx, cy, r, start, stop, step); if (!geom) sqlite3_result_null (context); else { int ii; int io = 0; double x; double y; gaiaLinestringPtr in = geom->FirstLinestring; gaiaPolygonPtr pg; gaiaRingPtr out; sector = gaiaAllocGeomColl (); pg = gaiaAddPolygonToGeomColl (sector, in->Points + 2, 0); out = pg->Exterior; /* inserting the Centre - first point */ gaiaSetPoint (out->Coords, io, cx, cy); io++; for (ii = 0; ii < in->Points; ii++) { /* copying the Arc's points */ gaiaGetPoint (in->Coords, ii, &x, &y); gaiaSetPoint (out->Coords, io, x, y); io++; } /* inserting the Centre - last point */ gaiaSetPoint (out->Coords, io, cx, cy); if (srid != 0) sector->Srid = srid; gaiaToSpatiaLiteBlobWkb (sector, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); } if (geom) gaiaFreeGeomColl (geom); if (sector) gaiaFreeGeomColl (sector); } static void fnct_MakeCircularStripe (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / MakeCircularStripe(double cx, double cy, double radius_1, double radius_2, / double start, double stop) / or / MakeCircularStripe(double cx, double cy, double radius_1, double radius_2, / double start, double stop, int srid) / or / MakeCircularStripe(double cx, double cy, double radius_1, double radius_2, / double start, double stop, int srid, double step) / / - builds a Polygon approximating a Circular Stripe delimited by two / arcs sharing the same Centre-Point but having different radii / - start and stop are the initial and final angles (in degrees) / - step is the angular distance (in degrees) between points on / the circurmference (by default: every 10 degs) / - or NULL if any error is encountered */ int len; unsigned char *p_result = NULL; gaiaGeomCollPtr arc1 = NULL; gaiaGeomCollPtr arc2 = NULL; gaiaGeomCollPtr stripe = NULL; int ival; double cx; double cy; double r1; double r2; double start; double stop; int srid = 0; double step = 10.0; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[0]); cx = ival; } else if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) cx = sqlite3_value_double (argv[0]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[1]); cy = ival; } else if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) cy = sqlite3_value_double (argv[1]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[2]); r1 = ival; } else if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) r1 = sqlite3_value_double (argv[2]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[3]); r2 = ival; } else if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) r2 = sqlite3_value_double (argv[3]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[4]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[4]); start = ival; } else if (sqlite3_value_type (argv[4]) == SQLITE_FLOAT) start = sqlite3_value_double (argv[4]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[5]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[5]); stop = ival; } else if (sqlite3_value_type (argv[5]) == SQLITE_FLOAT) stop = sqlite3_value_double (argv[5]); else { sqlite3_result_null (context); return; } if (argc >= 7) { if (sqlite3_value_type (argv[6]) == SQLITE_INTEGER) srid = sqlite3_value_int (argv[6]); else { sqlite3_result_null (context); return; } } if (argc == 8) { if (sqlite3_value_type (argv[7]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[7]); step = ival; } else if (sqlite3_value_type (argv[7]) == SQLITE_FLOAT) step = sqlite3_value_double (argv[7]); else { sqlite3_result_null (context); return; } } arc1 = gaiaMakeArc (cx, cy, r1, start, stop, step); arc2 = gaiaMakeArc (cx, cy, r2, start, stop, step); if (arc1 == NULL || arc2 == NULL) sqlite3_result_null (context); else { int ii; int io = 0; double x; double y; gaiaLinestringPtr in1 = arc1->FirstLinestring; gaiaLinestringPtr in2 = arc2->FirstLinestring; gaiaPolygonPtr pg; gaiaRingPtr out; stripe = gaiaAllocGeomColl (); pg = gaiaAddPolygonToGeomColl (stripe, in1->Points + in2->Points + 1, 0); out = pg->Exterior; for (ii = 0; ii < in1->Points; ii++) { /* copying the first Arc's points - direct order */ gaiaGetPoint (in1->Coords, ii, &x, &y); gaiaSetPoint (out->Coords, io, x, y); io++; } for (ii = in2->Points - 1; ii >= 0; ii--) { /* copying the second Arc's points - reverse order */ gaiaGetPoint (in2->Coords, ii, &x, &y); gaiaSetPoint (out->Coords, io, x, y); io++; } /* closing the Polygon Ring */ gaiaGetPoint (out->Coords, 0, &x, &y); gaiaSetPoint (out->Coords, io, x, y); if (srid != 0) stripe->Srid = srid; gaiaToSpatiaLiteBlobWkb (stripe, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); } if (arc1) gaiaFreeGeomColl (arc1); if (arc2) gaiaFreeGeomColl (arc2); if (stripe) gaiaFreeGeomColl (stripe); } static void fnct_MakeEllipticSector (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / MakeEllipticSector(double cx, double cy, double x_axis, double y_axis, / double start, double stop) / or / MakeEllipticSector(double cx, double cy, double x_axis, double y_axis, / double start, double stop, int srid) / or / MakeEllipticSector(double cx, double cy, double x_axis, double y_axis, / double start, double stop, int srid, double step) / / - builds a Polygon approximating an Elliptic Sector / - start and stop are the initial and final angles (in degrees) / - step is the angular distance (in degrees) between points on / the ellipse (by default: every 10 degs) / - or NULL if any error is encountered */ int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geom = NULL; gaiaGeomCollPtr sector = NULL; int ival; double cx; double cy; double x_axis; double y_axis; double start; double stop; int srid = 0; double step = 10.0; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[0]); cx = ival; } else if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) cx = sqlite3_value_double (argv[0]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[1]); cy = ival; } else if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) cy = sqlite3_value_double (argv[1]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[2]); x_axis = ival; } else if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) x_axis = sqlite3_value_double (argv[2]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[3]); y_axis = ival; } else if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) y_axis = sqlite3_value_double (argv[3]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[4]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[4]); start = ival; } else if (sqlite3_value_type (argv[4]) == SQLITE_FLOAT) start = sqlite3_value_double (argv[4]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[5]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[5]); stop = ival; } else if (sqlite3_value_type (argv[5]) == SQLITE_FLOAT) stop = sqlite3_value_double (argv[5]); else { sqlite3_result_null (context); return; } if (argc >= 7) { if (sqlite3_value_type (argv[6]) == SQLITE_INTEGER) srid = sqlite3_value_int (argv[6]); else { sqlite3_result_null (context); return; } } if (argc == 8) { if (sqlite3_value_type (argv[7]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[7]); step = ival; } else if (sqlite3_value_type (argv[7]) == SQLITE_FLOAT) step = sqlite3_value_double (argv[7]); else { sqlite3_result_null (context); return; } } geom = gaiaMakeEllipticArc (cx, cy, x_axis, y_axis, start, stop, step); if (!geom) sqlite3_result_null (context); else { int ii; int io = 0; double x; double y; gaiaLinestringPtr in = geom->FirstLinestring; gaiaPolygonPtr pg; gaiaRingPtr out; sector = gaiaAllocGeomColl (); pg = gaiaAddPolygonToGeomColl (sector, in->Points + 2, 0); out = pg->Exterior; /* inserting the Centre - first point */ gaiaSetPoint (out->Coords, io, cx, cy); io++; for (ii = 0; ii < in->Points; ii++) { /* copying the Arc's points */ gaiaGetPoint (in->Coords, ii, &x, &y); gaiaSetPoint (out->Coords, io, x, y); io++; } /* inserting the Centre - last point */ gaiaSetPoint (out->Coords, io, cx, cy); if (srid != 0) sector->Srid = srid; gaiaToSpatiaLiteBlobWkb (sector, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); } if (geom) gaiaFreeGeomColl (geom); if (sector) gaiaFreeGeomColl (sector); } static void fnct_Collect_step (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Collect(BLOBencoded geom) / / aggregate function - STEP / */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geom; gaiaGeomCollPtr result; gaiaGeomCollPtr *p; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geom = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geom) return; p = sqlite3_aggregate_context (context, sizeof (gaiaGeomCollPtr)); if (!(*p)) { /* this is the first row */ *p = geom; } else { /* subsequent rows */ result = gaiaMergeGeometries (*p, geom); gaiaFreeGeomColl (*p); *p = result; gaiaFreeGeomColl (geom); } } static void fnct_Collect_final (sqlite3_context * context) { /* SQL function: / Collect(BLOBencoded geom) / / aggregate function - FINAL / */ gaiaGeomCollPtr result; gaiaGeomCollPtr *p = sqlite3_aggregate_context (context, 0); if (!p) { sqlite3_result_null (context); return; } result = *p; if (!result) sqlite3_result_null (context); else if (gaiaIsEmpty (result)) { gaiaFreeGeomColl (result); sqlite3_result_null (context); } else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } static void fnct_Collect (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Collect(geometry geom1, geometry geom2) / / merges two generic GEOMETRIES into a single one / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; gaiaGeomCollPtr result; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo1 || !geo2) sqlite3_result_null (context); else { result = gaiaMergeGeometries (geo1, geo2); if (!result) sqlite3_result_null (context); else if (gaiaIsEmpty (result)) { gaiaFreeGeomColl (result); sqlite3_result_null (context); } else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void geom_from_text1 (sqlite3_context * context, int argc, sqlite3_value ** argv, short type) { /* SQL function: / GeomFromText(WKT encoded geometry) / / returns the current geometry by parsing WKT encoded string / or NULL if any error is encountered / / if *type* is a negative value can accept any GEOMETRY CLASS / otherwise only requests conforming with required CLASS are valid */ int len; unsigned char *p_result = NULL; const unsigned char *text; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } text = sqlite3_value_text (argv[0]); geo = gaiaParseWkt (text, type); if (geo == NULL) { sqlite3_result_null (context); return; } gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); gaiaFreeGeomColl (geo); sqlite3_result_blob (context, p_result, len, free); } static void geom_from_text2 (sqlite3_context * context, int argc, sqlite3_value ** argv, short type) { /* SQL function: / GeomFromText(WKT encoded geometry, SRID) / / returns the current geometry by parsing WKT encoded string / or NULL if any error is encountered / / if *type* is a negative value can accept any GEOMETRY CLASS / otherwise only requests conforming with required CLASS are valid */ int len; unsigned char *p_result = NULL; const unsigned char *text; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } text = sqlite3_value_text (argv[0]); geo = gaiaParseWkt (text, type); if (geo == NULL) { sqlite3_result_null (context); return; } geo->Srid = sqlite3_value_int (argv[1]); gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); gaiaFreeGeomColl (geo); sqlite3_result_blob (context, p_result, len, free); } static int check_wkb (const unsigned char *wkb, int size, short type) { /* checking type coherency for WKB encoded GEOMETRY */ int little_endian; int wkb_type; int endian_arch = gaiaEndianArch (); if (size < 5) return 0; /* too short to be a WKB */ if (*(wkb + 0) == 0x01) little_endian = GAIA_LITTLE_ENDIAN; else if (*(wkb + 0) == 0x00) little_endian = GAIA_BIG_ENDIAN; else return 0; /* illegal byte ordering; neither BIG-ENDIAN nor LITTLE-ENDIAN */ wkb_type = gaiaImport32 (wkb + 1, little_endian, endian_arch); if (wkb_type == GAIA_POINT || wkb_type == GAIA_LINESTRING || wkb_type == GAIA_POLYGON || wkb_type == GAIA_MULTIPOINT || wkb_type == GAIA_MULTILINESTRING || wkb_type == GAIA_MULTIPOLYGON || wkb_type == GAIA_GEOMETRYCOLLECTION || wkb_type == GAIA_POINTZ || wkb_type == GAIA_LINESTRINGZ || wkb_type == GAIA_POLYGONZ || wkb_type == GAIA_MULTIPOINTZ || wkb_type == GAIA_MULTILINESTRINGZ || wkb_type == GAIA_MULTIPOLYGONZ || wkb_type == GAIA_GEOMETRYCOLLECTIONZ || wkb_type == GAIA_POINTM || wkb_type == GAIA_LINESTRINGM || wkb_type == GAIA_POLYGONM || wkb_type == GAIA_MULTIPOINTM || wkb_type == GAIA_MULTILINESTRINGM || wkb_type == GAIA_MULTIPOLYGONM || wkb_type == GAIA_GEOMETRYCOLLECTIONM || wkb_type == GAIA_POINTZM || wkb_type == GAIA_LINESTRINGZM || wkb_type == GAIA_POLYGONZM || wkb_type == GAIA_MULTIPOINTZM || wkb_type == GAIA_MULTILINESTRINGZM || wkb_type == GAIA_MULTIPOLYGONZM || wkb_type == GAIA_GEOMETRYCOLLECTIONZM) ; else return 0; /* illegal GEOMETRY CLASS */ if (type < 0) ; /* no restrinction about GEOMETRY CLASS TYPE */ else { if (wkb_type != type) return 0; /* invalid CLASS TYPE for request */ } return 1; } static void geom_from_wkb1 (sqlite3_context * context, int argc, sqlite3_value ** argv, short type) { /* SQL function: / GeomFromWKB(WKB encoded geometry) / / returns the current geometry by parsing a WKB encoded blob / or NULL if any error is encountered / / if *type* is a negative value can accept any GEOMETRY CLASS / otherwise only requests conforming with required CLASS are valid */ int len; int n_bytes; unsigned char *p_result = NULL; const unsigned char *wkb; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } wkb = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); if (!check_wkb (wkb, n_bytes, type)) return; geo = gaiaFromWkb (wkb, n_bytes); if (geo == NULL) { sqlite3_result_null (context); return; } gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); gaiaFreeGeomColl (geo); sqlite3_result_blob (context, p_result, len, free); } static void geom_from_wkb2 (sqlite3_context * context, int argc, sqlite3_value ** argv, short type) { /* SQL function: / GeomFromWKB(WKB encoded geometry, SRID) / / returns the current geometry by parsing a WKB encoded blob / or NULL if any error is encountered / / if *type* is a negative value can accept any GEOMETRY CLASS / otherwise only requests conforming with required CLASS are valid */ int len; int n_bytes; unsigned char *p_result = NULL; const unsigned char *wkb; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } wkb = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); if (!check_wkb (wkb, n_bytes, type)) return; geo = gaiaFromWkb (wkb, n_bytes); if (geo == NULL) { sqlite3_result_null (context); return; } geo->Srid = sqlite3_value_int (argv[1]); gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); gaiaFreeGeomColl (geo); sqlite3_result_blob (context, p_result, len, free); } static void fnct_GeometryFromFGF1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / GeomFromFGF(FGF encoded geometry) / / returns the current geometry by parsing an FGF encoded blob / or NULL if any error is encountered / / if *type* is a negative value can accept any GEOMETRY CLASS / otherwise only requests conforming with required CLASS are valid */ int len; int n_bytes; unsigned char *p_result = NULL; const unsigned char *fgf; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } fgf = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromFgf (fgf, n_bytes); if (geo == NULL) { sqlite3_result_null (context); return; } gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); gaiaFreeGeomColl (geo); sqlite3_result_blob (context, p_result, len, free); } static void fnct_GeometryFromFGF2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / GeomFromFGF(FGF encoded geometry, SRID) / / returns the current geometry by parsing an FGF encoded string / or NULL if any error is encountered / / if *type* is a negative value can accept any GEOMETRY CLASS / otherwise only requests conforming with required CLASS are valid */ int len; int n_bytes; unsigned char *p_result = NULL; const unsigned char *fgf; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } fgf = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromFgf (fgf, n_bytes); if (geo == NULL) { sqlite3_result_null (context); return; } geo->Srid = sqlite3_value_int (argv[1]); gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); gaiaFreeGeomColl (geo); sqlite3_result_blob (context, p_result, len, free); } /* / the following functions simply readdress the request to geom_from_text?() / setting the appropriate GEOMETRY CLASS TYPE */ static void fnct_GeomFromText1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_text1 (context, argc, argv, (short) -1); } static void fnct_GeomFromText2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_text2 (context, argc, argv, (short) -1); } static void fnct_GeomCollFromText1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_text1 (context, argc, argv, (short) GAIA_GEOMETRYCOLLECTION); } static void fnct_GeomCollFromText2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_text2 (context, argc, argv, (short) GAIA_GEOMETRYCOLLECTION); } static void fnct_LineFromText1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_text1 (context, argc, argv, (short) GAIA_LINESTRING); } static void fnct_LineFromText2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_text2 (context, argc, argv, (short) GAIA_LINESTRING); } static void fnct_PointFromText1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_text1 (context, argc, argv, (short) GAIA_POINT); } static void fnct_PointFromText2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_text2 (context, argc, argv, (short) GAIA_POINT); } static void fnct_PolyFromText1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_text1 (context, argc, argv, (short) GAIA_POLYGON); } static void fnct_PolyFromText2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_text2 (context, argc, argv, (short) GAIA_POLYGON); } static void fnct_MLineFromText1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_text1 (context, argc, argv, (short) GAIA_MULTILINESTRING); } static void fnct_MLineFromText2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_text2 (context, argc, argv, (short) GAIA_MULTILINESTRING); } static void fnct_MPointFromText1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_text1 (context, argc, argv, (short) GAIA_MULTIPOINT); } static void fnct_MPointFromText2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_text2 (context, argc, argv, (short) GAIA_MULTIPOINT); } static void fnct_MPolyFromText1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_text1 (context, argc, argv, (short) GAIA_MULTIPOLYGON); } static void fnct_MPolyFromText2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_text2 (context, argc, argv, (short) GAIA_MULTIPOLYGON); } static void fnct_WktToSql (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ST_WKTToSQL(WKT encoded geometry) / / returns the current geometry by parsing WKT encoded string / or NULL if any error is encountered / / the SRID is always 0 [SQL/MM function] */ int len; unsigned char *p_result = NULL; const unsigned char *text; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } text = sqlite3_value_text (argv[0]); geo = gaiaParseWkt (text, -1); if (geo == NULL) { sqlite3_result_null (context); return; } geo->Srid = 0; gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); gaiaFreeGeomColl (geo); sqlite3_result_blob (context, p_result, len, free); } /* / the following functions simply readdress the request to geom_from_wkb?() / setting the appropriate GEOMETRY CLASS TYPE */ static void fnct_GeomFromWkb1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_wkb1 (context, argc, argv, (short) -1); } static void fnct_GeomFromWkb2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_wkb2 (context, argc, argv, (short) -1); } static void fnct_GeomCollFromWkb1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_wkb1 (context, argc, argv, (short) GAIA_GEOMETRYCOLLECTION); } static void fnct_GeomCollFromWkb2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_wkb2 (context, argc, argv, (short) GAIA_GEOMETRYCOLLECTION); } static void fnct_LineFromWkb1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_wkb1 (context, argc, argv, (short) GAIA_LINESTRING); } static void fnct_LineFromWkb2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_wkb2 (context, argc, argv, (short) GAIA_LINESTRING); } static void fnct_PointFromWkb1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_wkb1 (context, argc, argv, (short) GAIA_POINT); } static void fnct_PointFromWkb2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_wkb2 (context, argc, argv, (short) GAIA_POINT); } static void fnct_PolyFromWkb1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_wkb1 (context, argc, argv, (short) GAIA_POLYGON); } static void fnct_PolyFromWkb2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_wkb2 (context, argc, argv, (short) GAIA_POLYGON); } static void fnct_MLineFromWkb1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_wkb1 (context, argc, argv, (short) GAIA_MULTILINESTRING); } static void fnct_MLineFromWkb2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_wkb2 (context, argc, argv, (short) GAIA_MULTILINESTRING); } static void fnct_MPointFromWkb1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_wkb1 (context, argc, argv, (short) GAIA_MULTIPOINT); } static void fnct_MPointFromWkb2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_wkb2 (context, argc, argv, (short) GAIA_MULTIPOINT); } static void fnct_MPolyFromWkb1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_wkb1 (context, argc, argv, (short) GAIA_MULTIPOLYGON); } static void fnct_MPolyFromWkb2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_wkb2 (context, argc, argv, (short) GAIA_MULTIPOLYGON); } static void fnct_WkbToSql (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ST_WKBToSQL(WKB encoded geometry) / / returns the current geometry by parsing a WKB encoded blob / or NULL if any error is encountered / / the SRID is always 0 [SQL/MM function] */ int len; int n_bytes; unsigned char *p_result = NULL; const unsigned char *wkb; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } wkb = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); if (!check_wkb (wkb, n_bytes, -1)) return; geo = gaiaFromWkb (wkb, n_bytes); if (geo == NULL) { sqlite3_result_null (context); return; } geo->Srid = 0; gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); gaiaFreeGeomColl (geo); sqlite3_result_blob (context, p_result, len, free); } static void fnct_CompressGeometry (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CompressGeometry(BLOB encoded geometry) / / returns a COMPRESSED geometry [if a valid Geometry was supplied] / or NULL in any other case */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { gaiaToCompressedBlobWkb (geo, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); } gaiaFreeGeomColl (geo); } static void fnct_UncompressGeometry (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / UncompressGeometry(BLOB encoded geometry) / / returns an UNCOMPRESSED geometry [if a valid Geometry was supplied] / or NULL in any other case */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); } gaiaFreeGeomColl (geo); } static void fnct_SanitizeGeometry (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / SanitizeGeometry(BLOB encoded geometry) / / returns a SANITIZED geometry [if a valid Geometry was supplied] / or NULL in any other case / / Sanitizing includes: / - repeated vertices suppression / - enforcing ring closure / */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr sanitized = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { sanitized = gaiaSanitize (geo); gaiaToSpatiaLiteBlobWkb (sanitized, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); } gaiaFreeGeomColl (geo); gaiaFreeGeomColl (sanitized); } static void cast_count (gaiaGeomCollPtr geom, int *pts, int *lns, int *pgs) { /* counting elementary geometries */ int n_pts = 0; int n_lns = 0; int n_pgs = 0; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; if (geom) { pt = geom->FirstPoint; while (pt) { n_pts++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { n_lns++; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { n_pgs++; pg = pg->Next; } } *pts = n_pts; *lns = n_lns; *pgs = n_pgs; } static void fnct_CastToPoint (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CastToPoint(BLOB encoded geometry) / / returns a POINT-type geometry [if conversion is possible] / or NULL in any other case */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; int pts; int lns; int pgs; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr geom2 = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { cast_count (geo, &pts, &lns, &pgs); if (pts == 1 && lns == 0 && pgs == 0) { geom2 = gaiaCloneGeomColl (geo); geom2->Srid = geo->Srid; geom2->DeclaredType = GAIA_POINT; gaiaToSpatiaLiteBlobWkb (geom2, &p_result, &len); gaiaFreeGeomColl (geom2); sqlite3_result_blob (context, p_result, len, free); } else sqlite3_result_null (context); } gaiaFreeGeomColl (geo); } static void fnct_CastToLinestring (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CastToLinestring(BLOB encoded geometry) / / returns a LINESTRING-type geometry [if conversion is possible] / or NULL in any other case */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; int pts; int lns; int pgs; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr geom2 = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { cast_count (geo, &pts, &lns, &pgs); if (pts == 0 && lns == 1 && pgs == 0) { geom2 = gaiaCloneGeomColl (geo); geom2->Srid = geo->Srid; geom2->DeclaredType = GAIA_LINESTRING; gaiaToSpatiaLiteBlobWkb (geom2, &p_result, &len); gaiaFreeGeomColl (geom2); sqlite3_result_blob (context, p_result, len, free); } else sqlite3_result_null (context); } gaiaFreeGeomColl (geo); } static void fnct_CastToPolygon (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CastToPolygon(BLOB encoded geometry) / / returns a POLYGON-type geometry [if conversion is possible] / or NULL in any other case */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; int pts; int lns; int pgs; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr geom2 = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { cast_count (geo, &pts, &lns, &pgs); if (pts == 0 && lns == 0 && pgs == 1) { geom2 = gaiaCloneGeomColl (geo); geom2->Srid = geo->Srid; geom2->DeclaredType = GAIA_POLYGON; gaiaToSpatiaLiteBlobWkb (geom2, &p_result, &len); gaiaFreeGeomColl (geom2); sqlite3_result_blob (context, p_result, len, free); } else sqlite3_result_null (context); } gaiaFreeGeomColl (geo); } static void fnct_CastToMultiPoint (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CastToMultiPoint(BLOB encoded geometry) / / returns a MULTIPOINT-type geometry [if conversion is possible] / or NULL in any other case */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; int pts; int lns; int pgs; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr geom2 = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { cast_count (geo, &pts, &lns, &pgs); if (pts >= 1 && lns == 0 && pgs == 0) { geom2 = gaiaCloneGeomColl (geo); geom2->Srid = geo->Srid; geom2->DeclaredType = GAIA_MULTIPOINT; gaiaToSpatiaLiteBlobWkb (geom2, &p_result, &len); gaiaFreeGeomColl (geom2); sqlite3_result_blob (context, p_result, len, free); } else sqlite3_result_null (context); } gaiaFreeGeomColl (geo); } static void fnct_CastToMultiLinestring (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CastToMultiLinestring(BLOB encoded geometry) / / returns a MULTILINESTRING-type geometry [if conversion is possible] / or NULL in any other case */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; int pts; int lns; int pgs; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr geom2 = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { cast_count (geo, &pts, &lns, &pgs); if (pts == 0 && lns >= 1 && pgs == 0) { geom2 = gaiaCloneGeomColl (geo); geom2->Srid = geo->Srid; geom2->DeclaredType = GAIA_MULTILINESTRING; gaiaToSpatiaLiteBlobWkb (geom2, &p_result, &len); gaiaFreeGeomColl (geom2); sqlite3_result_blob (context, p_result, len, free); } else sqlite3_result_null (context); } gaiaFreeGeomColl (geo); } static void fnct_CastToMultiPolygon (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CastToMultiPolygon(BLOB encoded geometry) / / returns a MULTIPOLYGON-type geometry [if conversion is possible] / or NULL in any other case */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; int pts; int lns; int pgs; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr geom2 = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { cast_count (geo, &pts, &lns, &pgs); if (pts == 0 && lns == 0 && pgs >= 1) { geom2 = gaiaCloneGeomColl (geo); geom2->Srid = geo->Srid; geom2->DeclaredType = GAIA_MULTIPOLYGON; gaiaToSpatiaLiteBlobWkb (geom2, &p_result, &len); gaiaFreeGeomColl (geom2); sqlite3_result_blob (context, p_result, len, free); } else sqlite3_result_null (context); } gaiaFreeGeomColl (geo); } static void fnct_CastToGeometryCollection (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CastToGeometryCollection(BLOB encoded geometry) / / returns a GEOMETRYCOLLECTION-type geometry [if conversion is possible] / or NULL in any other case */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; int pts; int lns; int pgs; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr geom2 = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { cast_count (geo, &pts, &lns, &pgs); if (pts >= 1 || lns >= 1 || pgs >= 1) { geom2 = gaiaCloneGeomColl (geo); geom2->Srid = geo->Srid; geom2->DeclaredType = GAIA_GEOMETRYCOLLECTION; gaiaToSpatiaLiteBlobWkb (geom2, &p_result, &len); gaiaFreeGeomColl (geom2); sqlite3_result_blob (context, p_result, len, free); } else sqlite3_result_null (context); } gaiaFreeGeomColl (geo); } static void fnct_CastToMulti (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CastToMulti(BLOB encoded geometry) / / returns a MULTIPOINT, MULTILINESTRING, MULTIPOLYGON or / GEOMETRYCOLLECTION-type geometry [if conversion is possible] / or NULL in any other case */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; int pts; int lns; int pgs; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr geom2 = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { cast_count (geo, &pts, &lns, &pgs); if (pts >= 1 || lns >= 1 || pgs >= 1) { geom2 = gaiaCloneGeomColl (geo); geom2->Srid = geo->Srid; if (pts >= 1 && lns == 0 && pgs == 0) geom2->DeclaredType = GAIA_MULTIPOINT; else if (pts == 0 && lns >= 1 && pgs == 0) geom2->DeclaredType = GAIA_MULTILINESTRING; else if (pts == 0 && lns == 0 && pgs >= 1) geom2->DeclaredType = GAIA_MULTIPOLYGON; else geom2->DeclaredType = GAIA_GEOMETRYCOLLECTION; gaiaToSpatiaLiteBlobWkb (geom2, &p_result, &len); gaiaFreeGeomColl (geom2); sqlite3_result_blob (context, p_result, len, free); } else sqlite3_result_null (context); } gaiaFreeGeomColl (geo); } static void fnct_CastToSingle (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CastToSingle(BLOB encoded geometry) / / returns a POINT, LINESTRING or POLYGON-type geometry [if conversion is possible] / or NULL in any other case */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; int pts; int lns; int pgs; int ok; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr geom2 = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { cast_count (geo, &pts, &lns, &pgs); ok = 0; if (pts == 1 && lns == 0 && pgs == 0) ok = 1; if (pts == 0 && lns == 1 && pgs == 0) ok = 1; if (pts == 0 && lns == 0 && pgs == 1) ok = 1; if (ok) { geom2 = gaiaCloneGeomColl (geo); geom2->Srid = geo->Srid; if (pts == 1) geom2->DeclaredType = GAIA_POINT; else if (lns == 1) geom2->DeclaredType = GAIA_LINESTRING; else geom2->DeclaredType = GAIA_POLYGON; gaiaToSpatiaLiteBlobWkb (geom2, &p_result, &len); gaiaFreeGeomColl (geom2); sqlite3_result_blob (context, p_result, len, free); } else sqlite3_result_null (context); } gaiaFreeGeomColl (geo); } static void fnct_CastToXY (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CastToXY(BLOB encoded geometry) / / returns an XY-dimension Geometry [if conversion is possible] / or NULL in any other case */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr geom2 = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { geom2 = gaiaCastGeomCollToXY (geo); if (geom2) { geom2->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkb (geom2, &p_result, &len); gaiaFreeGeomColl (geom2); sqlite3_result_blob (context, p_result, len, free); } else sqlite3_result_null (context); } gaiaFreeGeomColl (geo); } static void fnct_CastToXYZ (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CastToXY(BLOB encoded geometry) / / returns an XY-dimension Geometry [if conversion is possible] / or NULL in any other case */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr geom2 = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { geom2 = gaiaCastGeomCollToXYZ (geo); if (geom2) { geom2->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkb (geom2, &p_result, &len); gaiaFreeGeomColl (geom2); sqlite3_result_blob (context, p_result, len, free); } else sqlite3_result_null (context); } gaiaFreeGeomColl (geo); } static void fnct_CastToXYM (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CastToXY(BLOB encoded geometry) / / returns an XYM-dimension Geometry [if conversion is possible] / or NULL in any other case */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr geom2 = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { geom2 = gaiaCastGeomCollToXYM (geo); if (geom2) { geom2->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkb (geom2, &p_result, &len); gaiaFreeGeomColl (geom2); sqlite3_result_blob (context, p_result, len, free); } else sqlite3_result_null (context); } gaiaFreeGeomColl (geo); } static void fnct_CastToXYZM (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CastToXY(BLOB encoded geometry) / / returns an XYZM-dimension Geometry [if conversion is possible] / or NULL in any other case */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr geom2 = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { geom2 = gaiaCastGeomCollToXYZM (geo); if (geom2) { geom2->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkb (geom2, &p_result, &len); gaiaFreeGeomColl (geom2); sqlite3_result_blob (context, p_result, len, free); } else sqlite3_result_null (context); } gaiaFreeGeomColl (geo); } static void fnct_ExtractMultiPoint (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ExtractMultiPoint(BLOB encoded geometry) / / returns a MULTIPOINT-type geometry [if conversion is possible] / or NULL in any other case */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; int pts; int lns; int pgs; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr geom2 = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { cast_count (geo, &pts, &lns, &pgs); if (pts >= 1) { geom2 = gaiaCloneGeomCollPoints (geo); geom2->Srid = geo->Srid; geom2->DeclaredType = GAIA_MULTIPOINT; gaiaToSpatiaLiteBlobWkb (geom2, &p_result, &len); gaiaFreeGeomColl (geom2); sqlite3_result_blob (context, p_result, len, free); } else sqlite3_result_null (context); } gaiaFreeGeomColl (geo); } static void fnct_ExtractMultiLinestring (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ExtractMultiLinestring(BLOB encoded geometry) / / returns a MULTILINESTRING-type geometry [if conversion is possible] / or NULL in any other case */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; int pts; int lns; int pgs; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr geom2 = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { cast_count (geo, &pts, &lns, &pgs); if (lns >= 1) { geom2 = gaiaCloneGeomCollLinestrings (geo); geom2->Srid = geo->Srid; geom2->DeclaredType = GAIA_MULTILINESTRING; gaiaToSpatiaLiteBlobWkb (geom2, &p_result, &len); gaiaFreeGeomColl (geom2); sqlite3_result_blob (context, p_result, len, free); } else sqlite3_result_null (context); } gaiaFreeGeomColl (geo); } static void fnct_ExtractMultiPolygon (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ExtractMultiPolygon(BLOB encoded geometry) / / returns a MULTIPOLYGON-type geometry [if conversion is possible] / or NULL in any other case */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; int pts; int lns; int pgs; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr geom2 = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { cast_count (geo, &pts, &lns, &pgs); if (pgs >= 1) { geom2 = gaiaCloneGeomCollPolygons (geo); geom2->Srid = geo->Srid; geom2->DeclaredType = GAIA_MULTIPOLYGON; gaiaToSpatiaLiteBlobWkb (geom2, &p_result, &len); gaiaFreeGeomColl (geom2); sqlite3_result_blob (context, p_result, len, free); } else sqlite3_result_null (context); } gaiaFreeGeomColl (geo); } static void fnct_Reverse (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ST_Reverse(BLOB encoded geometry) / / returns a new Geometry: any Linestring or Ring will be in reverse order / or NULL in any other case */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr geom2 = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { geom2 = gaiaCloneGeomCollSpecial (geo, GAIA_REVERSE_ORDER); geom2->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkb (geom2, &p_result, &len); gaiaFreeGeomColl (geom2); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (geo); } } static void fnct_ForceLHR (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ST_ForceLHR(BLOB encoded geometry) / / returns a new Geometry: any Exterior Ring will be in clockwise orientation / and any Interior Ring will be in counter-clockwise orientation / or NULL in any other case */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr geom2 = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { geom2 = gaiaCloneGeomCollSpecial (geo, GAIA_LHR_ORDER); geom2->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkb (geom2, &p_result, &len); gaiaFreeGeomColl (geom2); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (geo); } } static void fnct_Dimension (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Dimension(BLOB encoded geometry) / / returns: / 0 if geometry is a POINT or MULTIPOINT / 1 if geometry is a LINESTRING or MULTILINESTRING / 2 if geometry is a POLYGON or MULTIPOLYGON / 0, 1, 2, for GEOMETRYCOLLECTIONS according to geometries contained inside / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int dim; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { dim = gaiaDimension (geo); sqlite3_result_int (context, dim); } gaiaFreeGeomColl (geo); } static void fnct_CoordDimension (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CoordDimension(BLOB encoded geometry) / / returns: / 'XY', 'XYM', 'XYZ', 'XYZM' / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int len; char *p_dim = NULL; char *p_result = NULL; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { if (geo->DimensionModel == GAIA_XY) p_dim = "XY"; else if (geo->DimensionModel == GAIA_XY_Z) p_dim = "XYZ"; else if (geo->DimensionModel == GAIA_XY_M) p_dim = "XYM"; else if (geo->DimensionModel == GAIA_XY_Z_M) p_dim = "XYZM"; if (p_dim) { len = strlen (p_dim); p_result = malloc (len + 1); strcpy (p_result, p_dim); } if (!p_result) sqlite3_result_null (context); else { len = strlen (p_result); sqlite3_result_text (context, p_result, len, free); } } gaiaFreeGeomColl (geo); } static void fnct_NDims (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ST_NDims(BLOB encoded geometry) / / returns: / 2, 3 or 4 / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int result = 0; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { if (geo->DimensionModel == GAIA_XY) result = 2; else if (geo->DimensionModel == GAIA_XY_Z) result = 3; else if (geo->DimensionModel == GAIA_XY_M) result = 3; else if (geo->DimensionModel == GAIA_XY_Z_M) result = 4; sqlite3_result_int (context, result); } gaiaFreeGeomColl (geo); } static void fnct_GeometryType (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / GeometryType(BLOB encoded geometry) / / returns the class for current geometry: / 'POINT' or 'MULTIPOINT' [Z, M, ZM] / 'LINESTRING' or 'MULTILINESTRING' [Z, M, ZM] / 'POLYGON' or 'MULTIPOLYGON' [Z, M, ZM] / 'GEOMETRYCOLLECTION' [Z, M, ZM] / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int len; int type; char *p_type = NULL; char *p_result = NULL; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { type = gaiaGeometryType (geo); switch (type) { case GAIA_POINT: p_type = "POINT"; break; case GAIA_POINTZ: p_type = "POINT Z"; break; case GAIA_POINTM: p_type = "POINT M"; break; case GAIA_POINTZM: p_type = "POINT ZM"; break; case GAIA_MULTIPOINT: p_type = "MULTIPOINT"; break; case GAIA_MULTIPOINTZ: p_type = "MULTIPOINT Z"; break; case GAIA_MULTIPOINTM: p_type = "MULTIPOINT M"; break; case GAIA_MULTIPOINTZM: p_type = "MULTIPOINT ZM"; break; case GAIA_LINESTRING: case GAIA_COMPRESSED_LINESTRING: p_type = "LINESTRING"; break; case GAIA_LINESTRINGZ: case GAIA_COMPRESSED_LINESTRINGZ: p_type = "LINESTRING Z"; break; case GAIA_LINESTRINGM: case GAIA_COMPRESSED_LINESTRINGM: p_type = "LINESTRING M"; break; case GAIA_LINESTRINGZM: case GAIA_COMPRESSED_LINESTRINGZM: p_type = "LINESTRING ZM"; break; case GAIA_MULTILINESTRING: p_type = "MULTILINESTRING"; break; case GAIA_MULTILINESTRINGZ: p_type = "MULTILINESTRING Z"; break; case GAIA_MULTILINESTRINGM: p_type = "MULTILINESTRING M"; break; case GAIA_MULTILINESTRINGZM: p_type = "MULTILINESTRING ZM"; break; case GAIA_POLYGON: case GAIA_COMPRESSED_POLYGON: p_type = "POLYGON"; break; case GAIA_POLYGONZ: case GAIA_COMPRESSED_POLYGONZ: p_type = "POLYGON Z"; break; case GAIA_POLYGONM: case GAIA_COMPRESSED_POLYGONM: p_type = "POLYGON M"; break; case GAIA_POLYGONZM: case GAIA_COMPRESSED_POLYGONZM: p_type = "POLYGON ZM"; break; case GAIA_MULTIPOLYGON: p_type = "MULTIPOLYGON"; break; case GAIA_MULTIPOLYGONZ: p_type = "MULTIPOLYGON Z"; break; case GAIA_MULTIPOLYGONM: p_type = "MULTIPOLYGON M"; break; case GAIA_MULTIPOLYGONZM: p_type = "MULTIPOLYGON ZM"; break; case GAIA_GEOMETRYCOLLECTION: p_type = "GEOMETRYCOLLECTION"; break; case GAIA_GEOMETRYCOLLECTIONZ: p_type = "GEOMETRYCOLLECTION Z"; break; case GAIA_GEOMETRYCOLLECTIONM: p_type = "GEOMETRYCOLLECTION M"; break; case GAIA_GEOMETRYCOLLECTIONZM: p_type = "GEOMETRYCOLLECTION ZM"; break; }; if (p_type) { len = strlen (p_type); p_result = malloc (len + 1); strcpy (p_result, p_type); } if (!p_result) sqlite3_result_null (context); else { len = strlen (p_result); sqlite3_result_text (context, p_result, len, free); } } gaiaFreeGeomColl (geo); } static void fnct_GeometryAliasType (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / GeometryAliasType(BLOB encoded geometry) / / returns the alias-class for current geometry: / 'POINT' / 'LINESTRING' / 'POLYGON' / 'MULTIPOINT' / 'MULTILINESTRING' / 'MULTIPOLYGON' / 'GEOMETRYCOLLECTION' / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int len; int type; char *p_type = NULL; char *p_result = NULL; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { type = gaiaGeometryAliasType (geo); switch (type) { case GAIA_POINT: p_type = "POINT"; break; case GAIA_MULTIPOINT: p_type = "MULTIPOINT"; break; case GAIA_LINESTRING: p_type = "LINESTRING"; break; case GAIA_MULTILINESTRING: p_type = "MULTILINESTRING"; break; case GAIA_POLYGON: p_type = "POLYGON"; break; case GAIA_MULTIPOLYGON: p_type = "MULTIPOLYGON"; break; case GAIA_GEOMETRYCOLLECTION: p_type = "GEOMETRYCOLLECTION"; break; }; if (p_type) { len = strlen (p_type); p_result = malloc (len + 1); strcpy (p_result, p_type); } if (!p_result) sqlite3_result_null (context); else { len = strlen (p_result); sqlite3_result_text (context, p_result, len, free); } } gaiaFreeGeomColl (geo); } static void fnct_SridFromAuthCRS (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / SridFromAuthCRS(auth_name, auth_srid) / / returns the SRID / or NULL if any error is encountered */ const unsigned char *auth_name; int auth_srid; int srid = -1; char *sql; char **results; int n_rows; int n_columns; char *err_msg = NULL; int ret; int i; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } auth_name = sqlite3_value_text (argv[0]); auth_srid = sqlite3_value_int (argv[1]); sql = sqlite3_mprintf ("SELECT srid FROM spatial_ref_sys " "WHERE Upper(auth_name) = Upper(%Q) AND auth_srid = %d", auth_name, auth_srid); ret = sqlite3_get_table (sqlite, sql, &results, &n_rows, &n_columns, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) goto done; if (n_rows >= 1) { for (i = 1; i <= n_rows; i++) srid = atoi (results[(i * n_columns) + 0]); } sqlite3_free_table (results); done: sqlite3_result_int (context, srid); } static void fnct_SRID (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Srid(BLOB encoded geometry) / / returns the SRID / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else sqlite3_result_int (context, geo->Srid); gaiaFreeGeomColl (geo); } static void fnct_SetSRID (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / SetSrid(BLOBencoded geometry, srid) / / returns a new geometry that is the original one received, but with the new SRID [no coordinates translation is applied] / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; int srid; unsigned char *p_result = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) srid = sqlite3_value_int (argv[1]); else { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { geo->Srid = srid; gaiaToSpatiaLiteBlobWkb (geo, &p_result, &n_bytes); sqlite3_result_blob (context, p_result, n_bytes, free); } gaiaFreeGeomColl (geo); } static void fnct_IsEmpty (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / IsEmpty(BLOB encoded geometry) / / returns: / 1 if this geometry contains no elementary geometries / 0 otherwise / or -1 if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_int (context, -1); else sqlite3_result_int (context, gaiaIsEmpty (geo)); gaiaFreeGeomColl (geo); } static void fnct_Is3D (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Is3D(BLOB encoded geometry) / / returns: / 1 if this geometry has Z coords / 0 otherwise / or -1 if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_int (context, -1); else { if (geo->DimensionModel == GAIA_XY_Z || geo->DimensionModel == GAIA_XY_Z_M) sqlite3_result_int (context, 1); else sqlite3_result_int (context, 0); } gaiaFreeGeomColl (geo); } static void fnct_IsMeasured (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / IsMeasured(BLOB encoded geometry) / / returns: / 1 if this geometry has M coords / 0 otherwise / or -1 if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_int (context, -1); else { if (geo->DimensionModel == GAIA_XY_M || geo->DimensionModel == GAIA_XY_Z_M) sqlite3_result_int (context, 1); else sqlite3_result_int (context, 0); } gaiaFreeGeomColl (geo); } static void fnct_MinZ (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ST_MinZ(BLOB encoded GEMETRY) / / returns the MinZ coordinate for current geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; double min; double max; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { if (geo->DimensionModel == GAIA_XY_Z || geo->DimensionModel == GAIA_XY_Z_M) { gaiaZRangeGeometry (geo, &min, &max); sqlite3_result_double (context, min); } else sqlite3_result_null (context); gaiaFreeGeomColl (geo); } } static void fnct_MaxZ (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ST_MaxZ(BLOB encoded GEMETRY) / / returns the MaxZ coordinate for current geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; double min; double max; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { if (geo->DimensionModel == GAIA_XY_Z || geo->DimensionModel == GAIA_XY_Z_M) { gaiaZRangeGeometry (geo, &min, &max); sqlite3_result_double (context, max); } else sqlite3_result_null (context); gaiaFreeGeomColl (geo); } } static void fnct_MinM (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ST_MinM(BLOB encoded GEMETRY) / / returns the MinM coordinate for current geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; double min; double max; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { if (geo->DimensionModel == GAIA_XY_M || geo->DimensionModel == GAIA_XY_Z_M) { gaiaMRangeGeometry (geo, &min, &max); sqlite3_result_double (context, min); } else sqlite3_result_null (context); gaiaFreeGeomColl (geo); } } static void fnct_MaxM (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ST_MaxM(BLOB encoded GEMETRY) / / returns the MaxM coordinate for current geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; double min; double max; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { if (geo->DimensionModel == GAIA_XY_M || geo->DimensionModel == GAIA_XY_Z_M) { gaiaMRangeGeometry (geo, &min, &max); sqlite3_result_double (context, max); } else sqlite3_result_null (context); gaiaFreeGeomColl (geo); } } static void fnct_Envelope (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Envelope(BLOB encoded geometry) / / returns the MBR for current geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr bbox; gaiaPolygonPtr polyg; gaiaRingPtr rect; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { gaiaMbrGeometry (geo); bbox = gaiaAllocGeomColl (); bbox->Srid = geo->Srid; polyg = gaiaAddPolygonToGeomColl (bbox, 5, 0); rect = polyg->Exterior; gaiaSetPoint (rect->Coords, 0, geo->MinX, geo->MinY); /* vertex # 1 */ gaiaSetPoint (rect->Coords, 1, geo->MaxX, geo->MinY); /* vertex # 2 */ gaiaSetPoint (rect->Coords, 2, geo->MaxX, geo->MaxY); /* vertex # 3 */ gaiaSetPoint (rect->Coords, 3, geo->MinX, geo->MaxY); /* vertex # 4 */ gaiaSetPoint (rect->Coords, 4, geo->MinX, geo->MinY); /* vertex # 5 [same as vertex # 1 to close the polygon] */ gaiaToSpatiaLiteBlobWkb (bbox, &p_result, &len); gaiaFreeGeomColl (bbox); sqlite3_result_blob (context, p_result, len, free); } gaiaFreeGeomColl (geo); } static void fnct_Expand (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ST_Expand(BLOB encoded geometry, double amount) / / returns the MBR for current geometry expanded by "amount" in each direction / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr bbox; gaiaPolygonPtr polyg; gaiaRingPtr rect; double tic; int int_value; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) tic = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); tic = int_value; } else { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { gaiaMbrGeometry (geo); bbox = gaiaAllocGeomColl (); bbox->Srid = geo->Srid; polyg = gaiaAddPolygonToGeomColl (bbox, 5, 0); rect = polyg->Exterior; gaiaSetPoint (rect->Coords, 0, geo->MinX - tic, geo->MinY - tic); /* vertex # 1 */ gaiaSetPoint (rect->Coords, 1, geo->MaxX + tic, geo->MinY - tic); /* vertex # 2 */ gaiaSetPoint (rect->Coords, 2, geo->MaxX + tic, geo->MaxY + tic); /* vertex # 3 */ gaiaSetPoint (rect->Coords, 3, geo->MinX - tic, geo->MaxY + tic); /* vertex # 4 */ gaiaSetPoint (rect->Coords, 4, geo->MinX - tic, geo->MinY - tic); /* vertex # 5 [same as vertex # 1 to close the polygon] */ gaiaToSpatiaLiteBlobWkb (bbox, &p_result, &len); gaiaFreeGeomColl (bbox); sqlite3_result_blob (context, p_result, len, free); } gaiaFreeGeomColl (geo); } static void build_filter_mbr (sqlite3_context * context, int argc, sqlite3_value ** argv, int mode) { /* SQL functions: / BuildMbrFilter(double X1, double Y1, double X2, double Y2) / FilterMBRWithin(double X1, double Y1, double X2, double Y2) / FilterMBRContain(double X1, double Y1, double X2, double Y2) / FilterMBRIntersects(double X1, double Y1, double X2, double Y2) / / builds a generic filter for MBR from two points (identifying a rectangle's diagonal) / or NULL if any error is encountered */ int len; unsigned char *p_result = NULL; double x1; double y1; double x2; double y2; int int_value; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) x1 = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x1 = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) y1 = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); y1 = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) x2 = sqlite3_value_double (argv[2]); else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); x2 = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) y2 = sqlite3_value_double (argv[3]); else if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[3]); y2 = int_value; } else { sqlite3_result_null (context); return; } gaiaBuildFilterMbr (x1, y1, x2, y2, mode, &p_result, &len); if (!p_result) sqlite3_result_null (context); else sqlite3_result_blob (context, p_result, len, free); } /* / the following functions simply readdress the request to build_filter_mbr() / setting the appropriate MODe */ static void fnct_BuildMbrFilter (sqlite3_context * context, int argc, sqlite3_value ** argv) { build_filter_mbr (context, argc, argv, GAIA_FILTER_MBR_DECLARE); } static void fnct_FilterMbrWithin (sqlite3_context * context, int argc, sqlite3_value ** argv) { build_filter_mbr (context, argc, argv, GAIA_FILTER_MBR_WITHIN); } static void fnct_FilterMbrContains (sqlite3_context * context, int argc, sqlite3_value ** argv) { build_filter_mbr (context, argc, argv, GAIA_FILTER_MBR_CONTAINS); } static void fnct_FilterMbrIntersects (sqlite3_context * context, int argc, sqlite3_value ** argv) { build_filter_mbr (context, argc, argv, GAIA_FILTER_MBR_INTERSECTS); } static void fnct_BuildMbr1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / BuildMBR(double X1, double Y1, double X2, double Y2) / / builds an MBR from two points (identifying a rectangle's diagonal) / or NULL if any error is encountered */ int len; unsigned char *p_result = NULL; double x1; double y1; double x2; double y2; int int_value; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) x1 = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x1 = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) y1 = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); y1 = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) x2 = sqlite3_value_double (argv[2]); else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); x2 = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) y2 = sqlite3_value_double (argv[3]); else if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[3]); y2 = int_value; } else { sqlite3_result_null (context); return; } gaiaBuildMbr (x1, y1, x2, y2, -1, &p_result, &len); if (!p_result) sqlite3_result_null (context); else sqlite3_result_blob (context, p_result, len, free); } static void fnct_BuildMbr2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / BuildMBR(double X1, double Y1, double X2, double Y2, int SRID) / / builds an MBR from two points (identifying a rectangle's diagonal) / or NULL if any error is encountered */ int len; unsigned char *p_result = NULL; double x1; double y1; double x2; double y2; int int_value; int srid; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) x1 = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x1 = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) y1 = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); y1 = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) x2 = sqlite3_value_double (argv[2]); else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); x2 = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) y2 = sqlite3_value_double (argv[3]); else if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[3]); y2 = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[4]) == SQLITE_INTEGER) srid = sqlite3_value_int (argv[4]); else { sqlite3_result_null (context); return; } gaiaBuildMbr (x1, y1, x2, y2, srid, &p_result, &len); if (!p_result) sqlite3_result_null (context); else sqlite3_result_blob (context, p_result, len, free); } static void fnct_BuildCircleMbr1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / BuildCircleMBR(double X, double Y, double radius) / / builds an MBR from two points (identifying a rectangle's diagonal) / or NULL if any error is encountered */ int len; unsigned char *p_result = NULL; double x; double y; double radius; int int_value; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) x = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) y = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); y = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) radius = sqlite3_value_double (argv[2]); else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); radius = int_value; } else { sqlite3_result_null (context); return; } gaiaBuildCircleMbr (x, y, radius, -1, &p_result, &len); if (!p_result) sqlite3_result_null (context); else sqlite3_result_blob (context, p_result, len, free); } static void fnct_BuildCircleMbr2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / BuildCircleMBR(double X, double Y, double radius, int SRID) / / builds an MBR from two points (identifying a rectangle's diagonal) / or NULL if any error is encountered */ int len; unsigned char *p_result = NULL; double x; double y; double radius; int int_value; int srid; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) x = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) y = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); y = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) radius = sqlite3_value_double (argv[2]); else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); radius = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) srid = sqlite3_value_int (argv[3]); else { sqlite3_result_null (context); return; } gaiaBuildCircleMbr (x, y, radius, srid, &p_result, &len); if (!p_result) sqlite3_result_null (context); else sqlite3_result_blob (context, p_result, len, free); } static void fnct_Extent_step (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Extent(BLOBencoded geom) / / aggregate function - STEP / */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geom; double **p; double *max_min; int *srid_check; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geom = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geom) return; gaiaMbrGeometry (geom); p = sqlite3_aggregate_context (context, sizeof (double **)); if (!(*p)) { /* this is the first row */ max_min = malloc ((sizeof (double) * 5)); *(max_min + 0) = geom->MinX; *(max_min + 1) = geom->MinY; *(max_min + 2) = geom->MaxX; *(max_min + 3) = geom->MaxY; srid_check = (int *) (max_min + 4); *(srid_check + 0) = geom->Srid; *(srid_check + 1) = geom->Srid; *p = max_min; } else { /* subsequent rows */ max_min = *p; if (geom->MinX < *(max_min + 0)) *(max_min + 0) = geom->MinX; if (geom->MinY < *(max_min + 1)) *(max_min + 1) = geom->MinY; if (geom->MaxX > *(max_min + 2)) *(max_min + 2) = geom->MaxX; if (geom->MaxY > *(max_min + 3)) *(max_min + 3) = geom->MaxY; srid_check = (int *) (max_min + 4); if (*(srid_check + 1) != geom->Srid) *(srid_check + 1) = geom->Srid; } gaiaFreeGeomColl (geom); } static void fnct_Extent_final (sqlite3_context * context) { /* SQL function: / Extent(BLOBencoded geom) / / aggregate function - FINAL / */ gaiaGeomCollPtr result; gaiaPolygonPtr polyg; gaiaRingPtr rect; double *max_min; double minx; double miny; double maxx; double maxy; int *srid_check; double **p = sqlite3_aggregate_context (context, 0); if (!p) { sqlite3_result_null (context); return; } max_min = *p; if (!max_min) { sqlite3_result_null (context); return; } srid_check = (int *) (max_min + 4); if (*(srid_check + 0) != *(srid_check + 1)) { sqlite3_result_null (context); return; } result = gaiaAllocGeomColl (); if (!result) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = *(srid_check + 0); polyg = gaiaAddPolygonToGeomColl (result, 5, 0); rect = polyg->Exterior; minx = *(max_min + 0); miny = *(max_min + 1); maxx = *(max_min + 2); maxy = *(max_min + 3); gaiaSetPoint (rect->Coords, 0, minx, miny); /* vertex # 1 */ gaiaSetPoint (rect->Coords, 1, maxx, miny); /* vertex # 2 */ gaiaSetPoint (rect->Coords, 2, maxx, maxy); /* vertex # 3 */ gaiaSetPoint (rect->Coords, 3, minx, maxy); /* vertex # 4 */ gaiaSetPoint (rect->Coords, 4, minx, miny); /* vertex # 5 [same as vertex # 1 to close the polygon] */ gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } free (max_min); } static void fnct_MbrMinX (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / MbrMinX(BLOB encoded GEMETRY) / / returns the MinX coordinate for current geometry's MBR / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; double coord; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); if (!gaiaGetMbrMinX (p_blob, n_bytes, &coord)) sqlite3_result_null (context); else sqlite3_result_double (context, coord); } static void fnct_MbrMaxX (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / MbrMaxX(BLOB encoded GEMETRY) / / returns the MaxX coordinate for current geometry's MBR / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; double coord; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); if (!gaiaGetMbrMaxX (p_blob, n_bytes, &coord)) sqlite3_result_null (context); else sqlite3_result_double (context, coord); } static void fnct_MbrMinY (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / MbrMinY(BLOB encoded GEMETRY) / / returns the MinY coordinate for current geometry's MBR / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; double coord; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); if (!gaiaGetMbrMinY (p_blob, n_bytes, &coord)) sqlite3_result_null (context); else sqlite3_result_double (context, coord); } static void fnct_MbrMaxY (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / MbrMaxY(BLOB encoded GEMETRY) / / returns the MaxY coordinate for current geometry's MBR / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; double coord; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); if (!gaiaGetMbrMaxY (p_blob, n_bytes, &coord)) sqlite3_result_null (context); else sqlite3_result_double (context, coord); } #ifndef OMIT_GEOCALLBACKS /* supporting RTree geometry callbacks */ static void gaia_mbr_del (void *p) { /* freeing data used by R*Tree Geometry Callback */ sqlite3_free (p); } static int fnct_RTreeIntersects (sqlite3_rtree_geometry * p, int nCoord, double *aCoord, int *pRes) { /* R*Tree Geometry callback function: / ... MATCH RTreeIntersects(double x1, double y1, double x2, double y2) */ struct gaia_rtree_mbr *mbr; double xmin; double xmax; double ymin; double ymax; float fminx; float fminy; float fmaxx; float fmaxy; double tic; double tic2; if (p->pUser == 0) { /* first call: we must check args and then initialize the MBR struct */ if (nCoord != 4) return SQLITE_ERROR; if (p->nParam != 4) return SQLITE_ERROR; mbr = (struct gaia_rtree_mbr *) (p->pUser = sqlite3_malloc (sizeof (struct gaia_rtree_mbr))); if (!mbr) return SQLITE_NOMEM; p->xDelUser = gaia_mbr_del; xmin = p->aParam[0]; ymin = p->aParam[1]; xmax = p->aParam[2]; ymax = p->aParam[3]; if (xmin > xmax) { xmin = p->aParam[2]; xmax = p->aParam[0]; } if (ymin > ymax) { ymin = p->aParam[3]; ymax = p->aParam[1]; } /* adjusting the MBR so to compensate for DOUBLE/FLOAT truncations */ fminx = (float) xmin; fminy = (float) ymin; fmaxx = (float) xmax; fmaxy = (float) ymax; tic = fabs (xmin - fminx); tic2 = fabs (ymin - fminy); if (tic2 > tic) tic = tic2; tic2 = fabs (xmax - fmaxx); if (tic2 > tic) tic = tic2; tic2 = fabs (ymax - fmaxy); if (tic2 > tic) tic = tic2; tic *= 2.0; mbr->minx = xmin - tic; mbr->miny = ymin - tic; mbr->maxx = xmax + tic; mbr->maxy = ymax + tic; } mbr = (struct gaia_rtree_mbr *) (p->pUser); xmin = aCoord[0]; xmax = aCoord[1]; ymin = aCoord[2]; ymax = aCoord[3]; *pRes = 1; /* evaluating Intersects relationship */ if (xmin > mbr->maxx) *pRes = 0; if (xmax < mbr->minx) *pRes = 0; if (ymin > mbr->maxy) *pRes = 0; if (ymax < mbr->miny) *pRes = 0; return SQLITE_OK; } static int fnct_RTreeDistWithin (sqlite3_rtree_geometry * p, int nCoord, double *aCoord, int *pRes) { /* R*Tree Geometry callback function: / ... MATCH RTreeDistWithin(double x, double y, double radius) */ struct gaia_rtree_mbr *mbr; double xmin; double xmax; double ymin; double ymax; if (p->pUser == 0) { /* first call: we must check args and then initialize the MBR struct */ if (nCoord != 4) return SQLITE_ERROR; if (p->nParam != 3) return SQLITE_ERROR; mbr = (struct gaia_rtree_mbr *) (p->pUser = sqlite3_malloc (sizeof (struct gaia_rtree_mbr))); if (!mbr) return SQLITE_NOMEM; p->xDelUser = gaia_mbr_del; mbr->minx = p->aParam[0] - p->aParam[2]; mbr->miny = p->aParam[1] - p->aParam[2]; mbr->maxx = p->aParam[0] + p->aParam[2]; mbr->maxy = p->aParam[1] + p->aParam[2]; } mbr = (struct gaia_rtree_mbr *) (p->pUser); xmin = aCoord[0]; xmax = aCoord[1]; ymin = aCoord[2]; ymax = aCoord[3]; *pRes = 1; /* evaluating Intersects relationship */ if (xmin > mbr->maxx) *pRes = 0; if (xmax < mbr->minx) *pRes = 0; if (ymin > mbr->maxy) *pRes = 0; if (ymax < mbr->miny) *pRes = 0; return SQLITE_OK; } #endif /* end RTree geometry callbacks */ static void fnct_X (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / X(BLOB encoded POINT) / / returns the X coordinate for current POINT geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; gaiaPointPtr point; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { point = simplePoint (geo); if (!point) sqlite3_result_null (context); else sqlite3_result_double (context, point->X); } gaiaFreeGeomColl (geo); } static void fnct_Y (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Y(BLOB encoded POINT) / / returns the Y coordinate for current POINT geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; gaiaPointPtr point; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { point = simplePoint (geo); if (!point) sqlite3_result_null (context); else sqlite3_result_double (context, point->Y); } gaiaFreeGeomColl (geo); } static void fnct_Z (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Z(BLOB encoded POINT) / / returns the Z coordinate for current POINT geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; gaiaPointPtr point; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { point = simplePoint (geo); if (!point) sqlite3_result_null (context); else { if (point->DimensionModel == GAIA_XY_Z || point->DimensionModel == GAIA_XY_Z_M) sqlite3_result_double (context, point->Z); else sqlite3_result_null (context); } } gaiaFreeGeomColl (geo); } static void fnct_M (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / M(BLOB encoded POINT) / / returns the M coordinate for current POINT geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; gaiaPointPtr point; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { point = simplePoint (geo); if (!point) sqlite3_result_null (context); else { if (point->DimensionModel == GAIA_XY_M || point->DimensionModel == GAIA_XY_Z_M) sqlite3_result_double (context, point->M); else sqlite3_result_null (context); } } gaiaFreeGeomColl (geo); } static void fnct_NumPoints (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / NumPoints(BLOB encoded LINESTRING) / / returns the number of vertices for current LINESTRING geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; gaiaLinestringPtr line; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { line = simpleLinestring (geo); if (!line) sqlite3_result_null (context); else sqlite3_result_int (context, line->Points); } gaiaFreeGeomColl (geo); } static void point_n (sqlite3_context * context, int argc, sqlite3_value ** argv, int request) { /* SQL functions: / StartPoint(BLOB encoded LINESTRING geometry) / EndPoint(BLOB encoded LINESTRING geometry) / PointN(BLOB encoded LINESTRING geometry, integer point_no) / / returns the Nth POINT for current LINESTRING geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int vertex; int len; double x; double y; double z; double m; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; gaiaLinestringPtr line; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (request == GAIA_POINTN) { /* PointN() requires point index to be defined as an SQL function argument */ if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } vertex = sqlite3_value_int (argv[1]); } else if (request == GAIA_END_POINT) vertex = -1; /* EndPoint() specifies a negative point index */ else vertex = 1; /* StartPoint() */ p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { line = simpleLinestring (geo); if (!line) sqlite3_result_null (context); else { if (vertex < 0) vertex = line->Points - 1; else vertex -= 1; /* decreasing the point index by 1, because PointN counts starting at index 1 */ if (vertex >= 0 && vertex < line->Points) { if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, vertex, &x, &y, &z); result = gaiaAllocGeomCollXYZ (); result->Srid = geo->Srid; gaiaAddPointToGeomCollXYZ (result, x, y, z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, vertex, &x, &y, &m); result = gaiaAllocGeomCollXYM (); result->Srid = geo->Srid; gaiaAddPointToGeomCollXYM (result, x, y, m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, vertex, &x, &y, &z, &m); result = gaiaAllocGeomCollXYZM (); result->Srid = geo->Srid; gaiaAddPointToGeomCollXYZM (result, x, y, z, m); } else { gaiaGetPoint (line->Coords, vertex, &x, &y); result = gaiaAllocGeomColl (); result->Srid = geo->Srid; gaiaAddPointToGeomColl (result, x, y); } } else result = NULL; if (!result) sqlite3_result_null (context); else { gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); gaiaFreeGeomColl (result); sqlite3_result_blob (context, p_result, len, free); } } } gaiaFreeGeomColl (geo); } /* / the following functions simply readdress the request to point_n() / setting the appropriate request mode */ static void fnct_StartPoint (sqlite3_context * context, int argc, sqlite3_value ** argv) { point_n (context, argc, argv, GAIA_START_POINT); } static void fnct_EndPoint (sqlite3_context * context, int argc, sqlite3_value ** argv) { point_n (context, argc, argv, GAIA_END_POINT); } static void fnct_PointN (sqlite3_context * context, int argc, sqlite3_value ** argv) { point_n (context, argc, argv, GAIA_POINTN); } static void fnct_ExteriorRing (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL functions: / ExteriorRing(BLOB encoded POLYGON geometry) / / returns the EXTERIOR RING for current POLYGON geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int iv; double x; double y; double z; double m; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; gaiaPolygonPtr polyg; gaiaRingPtr ring; gaiaLinestringPtr line; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { polyg = simplePolygon (geo); if (!polyg) sqlite3_result_null (context); else { ring = polyg->Exterior; if (ring->DimensionModel == GAIA_XY_Z) result = gaiaAllocGeomCollXYZ (); else if (ring->DimensionModel == GAIA_XY_M) result = gaiaAllocGeomCollXYM (); else if (ring->DimensionModel == GAIA_XY_Z_M) result = gaiaAllocGeomCollXYZM (); else result = gaiaAllocGeomColl (); result->Srid = geo->Srid; line = gaiaAddLinestringToGeomColl (result, ring->Points); for (iv = 0; iv < line->Points; iv++) { if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (line->Coords, iv, x, y, z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); gaiaSetPointXYM (line->Coords, iv, x, y, m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (line->Coords, iv, x, y, z, m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); gaiaSetPoint (line->Coords, iv, x, y); } } gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); gaiaFreeGeomColl (result); sqlite3_result_blob (context, p_result, len, free); } } gaiaFreeGeomColl (geo); } static void fnct_NumInteriorRings (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / NumInteriorRings(BLOB encoded POLYGON) / / returns the number of INTERIOR RINGS for current POLYGON geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; gaiaPolygonPtr polyg; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { polyg = simplePolygon (geo); if (!polyg) sqlite3_result_null (context); else sqlite3_result_int (context, polyg->NumInteriors); } gaiaFreeGeomColl (geo); } static void fnct_InteriorRingN (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL functions: / InteriorRingN(BLOB encoded POLYGON geometry) / / returns the Nth INTERIOR RING for current POLYGON geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int border; int iv; double x; double y; double z; double m; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; gaiaPolygonPtr polyg; gaiaRingPtr ring; gaiaLinestringPtr line; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); border = sqlite3_value_int (argv[1]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { polyg = simplePolygon (geo); if (!polyg) sqlite3_result_null (context); else { if (border >= 1 && border <= polyg->NumInteriors) { ring = polyg->Interiors + (border - 1); if (ring->DimensionModel == GAIA_XY_Z) result = gaiaAllocGeomCollXYZ (); else if (ring->DimensionModel == GAIA_XY_M) result = gaiaAllocGeomCollXYM (); else if (ring->DimensionModel == GAIA_XY_Z_M) result = gaiaAllocGeomCollXYZM (); else result = gaiaAllocGeomColl (); result->Srid = geo->Srid; line = gaiaAddLinestringToGeomColl (result, ring->Points); for (iv = 0; iv < line->Points; iv++) { if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (line->Coords, iv, x, y, z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); gaiaSetPointXYM (line->Coords, iv, x, y, m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (line->Coords, iv, x, y, z, m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); gaiaSetPoint (line->Coords, iv, x, y); } } gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); gaiaFreeGeomColl (result); sqlite3_result_blob (context, p_result, len, free); } else sqlite3_result_null (context); } } gaiaFreeGeomColl (geo); } static void fnct_NumGeometries (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / NumGeometries(BLOB encoded GEOMETRYCOLLECTION) / / returns the number of elementary geometries for current geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int cnt = 0; gaiaPointPtr point; gaiaLinestringPtr line; gaiaPolygonPtr polyg; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { point = geo->FirstPoint; while (point) { /* counts how many points are there */ cnt++; point = point->Next; } line = geo->FirstLinestring; while (line) { /* counts how many linestrings are there */ cnt++; line = line->Next; } polyg = geo->FirstPolygon; while (polyg) { /* counts how many polygons are there */ cnt++; polyg = polyg->Next; } sqlite3_result_int (context, cnt); } gaiaFreeGeomColl (geo); } static void fnct_NPoints (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ST_NPoints(BLOB encoded GEOMETRYCOLLECTION) / / returns the total number of points/vertices for current geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int cnt = 0; int ib; gaiaPointPtr point; gaiaLinestringPtr line; gaiaPolygonPtr polyg; gaiaRingPtr rng; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { point = geo->FirstPoint; while (point) { /* counts how many points are there */ cnt++; point = point->Next; } line = geo->FirstLinestring; while (line) { /* counts how many points are there */ cnt += line->Points; line = line->Next; } polyg = geo->FirstPolygon; while (polyg) { /* counts how many points are in the exterior ring */ rng = polyg->Exterior; cnt += rng->Points; for (ib = 0; ib < polyg->NumInteriors; ib++) { /* processing any interior ring */ rng = polyg->Interiors + ib; cnt += rng->Points; } polyg = polyg->Next; } sqlite3_result_int (context, cnt); } gaiaFreeGeomColl (geo); } static void fnct_NRings (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ST_NRings(BLOB encoded GEOMETRYCOLLECTION) / / returns the total number of rings for current geometry / (this including both interior and exterior rings) / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int cnt = 0; gaiaPolygonPtr polyg; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { polyg = geo->FirstPolygon; while (polyg) { /* counts how many rings are there */ cnt += polyg->NumInteriors + 1; polyg = polyg->Next; } sqlite3_result_int (context, cnt); } gaiaFreeGeomColl (geo); } static int is_single_point (gaiaGeomCollPtr geom) { /* check if this geometry is a simple Point */ int pts = 0; int lns = 0; int pgs = 0; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; pt = geom->FirstPoint; while (pt) { pts++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { lns++; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { pgs++; pg = pg->Next; } if (pts == 1 && lns == 0 && pgs == 0) return 1; return 0; } static int is_single_linestring (gaiaGeomCollPtr geom) { /* check if this geometry is a simple Linestring */ int pts = 0; int lns = 0; int pgs = 0; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; pt = geom->FirstPoint; while (pt) { pts++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { lns++; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { pgs++; pg = pg->Next; } if (pts == 0 && lns == 1 && pgs == 0) return 1; return 0; } static void fnct_AddPoint (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL functions: / ST_AddPoint(BLOB encoded LINESTRING line, BLOB encoded POINT point) / ST_AddPoint(BLOB encoded LINESTRING line, BLOB encoded POINT point, INTEGER position) / / returns a new Linestring by adding a new Point before "position" (zero-based index) / a negative "position" (default) means appending to the end / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaLinestringPtr ln; gaiaLinestringPtr out_ln; gaiaPointPtr pt; int position = -1; gaiaGeomCollPtr line = NULL; gaiaGeomCollPtr point = NULL; gaiaGeomCollPtr out; int len; unsigned char *p_result = NULL; int iv; int out_iv; double x; double y; double m; double z; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); line = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!line) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { gaiaFreeGeomColl (line); sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); point = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!point) { gaiaFreeGeomColl (line); sqlite3_result_null (context); return; } if (argc == 3) { if (sqlite3_value_type (argv[2]) != SQLITE_INTEGER) { sqlite3_result_null (context); goto stop; } position = sqlite3_value_int (argv[2]); } if (is_single_linestring (line) && is_single_point (point)) ; else { sqlite3_result_null (context); goto stop; } ln = line->FirstLinestring; pt = point->FirstPoint; if (position >= 0 && position >= ln->Points) { sqlite3_result_null (context); goto stop; } /* creating the output Geometry */ if (line->DimensionModel == GAIA_XY_Z) out = gaiaAllocGeomCollXYZ (); else if (line->DimensionModel == GAIA_XY_M) out = gaiaAllocGeomCollXYM (); else if (line->DimensionModel == GAIA_XY_Z_M) out = gaiaAllocGeomCollXYZM (); else out = gaiaAllocGeomColl (); out->Srid = line->Srid; out->DeclaredType = line->DeclaredType; out_ln = gaiaAddLinestringToGeomColl (out, ln->Points + 1); if (position < 0) { /* appending the new Point */ for (iv = 0; iv < ln->Points; iv++) { if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (out_ln->Coords, iv, x, y, z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); gaiaSetPointXYM (out_ln->Coords, iv, x, y, m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (out_ln->Coords, iv, x, y, z, m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); gaiaSetPoint (out_ln->Coords, iv, x, y); } } /* appending the new Point */ x = pt->X; y = pt->Y; z = pt->Z; m = pt->M; out_iv = ln->Points; if (line->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (out_ln->Coords, out_iv, x, y, z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (out_ln->Coords, out_iv, x, y, m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (out_ln->Coords, out_iv, x, y, z, m); } else { gaiaSetPoint (out_ln->Coords, out_iv, x, y); } } else { /* inserting the new Point before "position" */ out_iv = 0; for (iv = 0; iv < position; iv++) { /* copying all Points before "position" */ if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (out_ln->Coords, out_iv, x, y, z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); gaiaSetPointXYM (out_ln->Coords, out_iv, x, y, m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (out_ln->Coords, out_iv, x, y, z, m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); gaiaSetPoint (out_ln->Coords, out_iv, x, y); } out_iv++; } /* inserting the new Point */ x = pt->X; y = pt->Y; z = pt->Z; m = pt->M; if (line->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (out_ln->Coords, out_iv, x, y, z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (out_ln->Coords, out_iv, x, y, m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (out_ln->Coords, out_iv, x, y, z, m); } else { gaiaSetPoint (out_ln->Coords, out_iv, x, y); } out_iv++; for (iv = position; iv < ln->Points; iv++) { /* copying all Points after "position" */ if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (out_ln->Coords, out_iv, x, y, z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); gaiaSetPointXYM (out_ln->Coords, out_iv, x, y, m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (out_ln->Coords, out_iv, x, y, z, m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); gaiaSetPoint (out_ln->Coords, out_iv, x, y); } out_iv++; } } gaiaToSpatiaLiteBlobWkb (out, &p_result, &len); gaiaFreeGeomColl (out); sqlite3_result_blob (context, p_result, len, free); stop: gaiaFreeGeomColl (line); gaiaFreeGeomColl (point); } static void fnct_SetPoint (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL functions: / ST_SetPoint(BLOB encoded LINESTRING line, INTEGER position, BLOB encoded POINT point) / / returns a new Linestring by replacing the Point at "position" (zero-based index) / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaLinestringPtr ln; gaiaLinestringPtr out_ln; gaiaPointPtr pt; int position; gaiaGeomCollPtr line = NULL; gaiaGeomCollPtr point = NULL; gaiaGeomCollPtr out; int len; unsigned char *p_result = NULL; int iv; double x; double y; double m; double z; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); line = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!line) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { gaiaFreeGeomColl (line); sqlite3_result_null (context); return; } position = sqlite3_value_int (argv[1]); if (sqlite3_value_type (argv[2]) != SQLITE_BLOB) { gaiaFreeGeomColl (line); sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[2]); n_bytes = sqlite3_value_bytes (argv[2]); point = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!point) { gaiaFreeGeomColl (line); sqlite3_result_null (context); return; } if (is_single_linestring (line) && is_single_point (point)) ; else { sqlite3_result_null (context); goto stop; } ln = line->FirstLinestring; pt = point->FirstPoint; if (position < 0 || position >= ln->Points) { sqlite3_result_null (context); goto stop; } /* creating the output Geometry */ if (line->DimensionModel == GAIA_XY_Z) out = gaiaAllocGeomCollXYZ (); else if (line->DimensionModel == GAIA_XY_M) out = gaiaAllocGeomCollXYM (); else if (line->DimensionModel == GAIA_XY_Z_M) out = gaiaAllocGeomCollXYZM (); else out = gaiaAllocGeomColl (); out->Srid = line->Srid; out->DeclaredType = line->DeclaredType; out_ln = gaiaAddLinestringToGeomColl (out, ln->Points); for (iv = 0; iv < ln->Points; iv++) { if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); } if (iv == position) { /* replacing the new Point */ x = pt->X; y = pt->Y; z = pt->Z; m = pt->M; } if (line->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (out_ln->Coords, iv, x, y, z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (out_ln->Coords, iv, x, y, m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (out_ln->Coords, iv, x, y, z, m); } else { gaiaSetPoint (out_ln->Coords, iv, x, y); } } gaiaToSpatiaLiteBlobWkb (out, &p_result, &len); gaiaFreeGeomColl (out); sqlite3_result_blob (context, p_result, len, free); stop: gaiaFreeGeomColl (line); gaiaFreeGeomColl (point); } static void fnct_RemovePoint (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL functions: / ST_RemovePoint(BLOB encoded LINESTRING line, INTEGER position) / / returns a new Linestring by removing the Point at "position" (zero-based index) / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaLinestringPtr ln; gaiaLinestringPtr out_ln; int position; gaiaGeomCollPtr line = NULL; gaiaGeomCollPtr out; int len; unsigned char *p_result = NULL; int iv; int out_iv; double x; double y; double m; double z; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); line = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!line) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_null (context); goto stop; } position = sqlite3_value_int (argv[1]); if (!is_single_linestring (line)) { sqlite3_result_null (context); goto stop; } ln = line->FirstLinestring; if (position < 0 || position >= ln->Points) { sqlite3_result_null (context); goto stop; } /* creating the output Geometry */ if (line->DimensionModel == GAIA_XY_Z) out = gaiaAllocGeomCollXYZ (); else if (line->DimensionModel == GAIA_XY_M) out = gaiaAllocGeomCollXYM (); else if (line->DimensionModel == GAIA_XY_Z_M) out = gaiaAllocGeomCollXYZM (); else out = gaiaAllocGeomColl (); out->Srid = line->Srid; out->DeclaredType = line->DeclaredType; out_ln = gaiaAddLinestringToGeomColl (out, ln->Points - 1); out_iv = 0; for (iv = 0; iv < position; iv++) { /* copying all Points before "position" */ if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (out_ln->Coords, out_iv, x, y, z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); gaiaSetPointXYM (out_ln->Coords, out_iv, x, y, m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (out_ln->Coords, out_iv, x, y, z, m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); gaiaSetPoint (out_ln->Coords, out_iv, x, y); } out_iv++; } for (iv = position + 1; iv < ln->Points; iv++) { /* copying all Points after "position" */ if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (out_ln->Coords, out_iv, x, y, z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); gaiaSetPointXYM (out_ln->Coords, out_iv, x, y, m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (out_ln->Coords, out_iv, x, y, z, m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); gaiaSetPoint (out_ln->Coords, out_iv, x, y); } out_iv++; } gaiaToSpatiaLiteBlobWkb (out, &p_result, &len); gaiaFreeGeomColl (out); sqlite3_result_blob (context, p_result, len, free); stop: gaiaFreeGeomColl (line); } static int getXYZMSinglePoint (gaiaGeomCollPtr geom, double *x, double *y, double *z, double *m) { /* check if this geometry is a simple Point (returning full coords) */ int pts = 0; int lns = 0; int pgs = 0; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; pt = geom->FirstPoint; while (pt) { pts++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { lns++; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { pgs++; pg = pg->Next; } if (pts == 1 && lns == 0 && pgs == 0) ; else return 0; *x = geom->FirstPoint->X; *y = geom->FirstPoint->Y; if (geom->DimensionModel == GAIA_XY_Z || geom->DimensionModel == GAIA_XY_Z_M) *z = geom->FirstPoint->Z; else *z = 0.0; if (geom->DimensionModel == GAIA_XY_M || geom->DimensionModel == GAIA_XY_Z_M) *m = geom->FirstPoint->M; else *m = 0.0; return 1; } static void fnct_SnapToGrid (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ST_SnapToGrid(BLOBencoded geom, double size) / ST_SnapToGrid(BLOBencoded geom, double sizeX, double sizeY) / ST_SnapToGrid(BLOBencoded geom, double originX, double originY, / double sizeX, double sizeY) / / Snap all points of the input geometry to the grid defined by its / origin and cell size. Remove consecutive points falling on the same / cell. Collapsed geometries in a collection are stripped from it. / / / ST_SnapToGrid(BLOBencoded geom, BLOBencoded point, double sizeX, / double sizeY, double sizeZ, double sizeM) / / Snap all points of the input geometry to the grid defined by its / origin (the second argument, must be a point) and cell sizes. / / Specify 0 as size for any dimension you don't want to snap to / a grid. / return NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int int_value; double origin_x = 0.0; double origin_y = 0.0; double origin_z = 0.0; double origin_m = 0.0; double size_x; double size_y; double size_z = 0.0; double size_m = 0.0; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr point = NULL; gaiaGeomCollPtr result = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (argc == 2) { /* ST_SnapToGrid(BLOBencoded geom, double size) */ if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); size_x = int_value; size_y = size_x; } else if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) { size_x = sqlite3_value_double (argv[1]); size_y = size_x; } else { sqlite3_result_null (context); return; } } if (argc == 3) { /* ST_SnapToGrid(BLOBencoded geom, double sizeX, double sizeY) */ if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); size_x = int_value; } else if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) { size_x = sqlite3_value_double (argv[1]); } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); size_y = int_value; } else if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) { size_y = sqlite3_value_double (argv[2]); } else { sqlite3_result_null (context); return; } } if (argc == 5) { /* / ST_SnapToGrid(BLOBencoded geom, double originX, double originY, / double sizeX, double sizeY) */ if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); origin_x = int_value; } else if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) { origin_x = sqlite3_value_double (argv[1]); } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); origin_y = int_value; } else if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) { origin_y = sqlite3_value_double (argv[2]); } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[3]); size_x = int_value; } else if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) { size_x = sqlite3_value_double (argv[3]); } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[4]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[4]); size_y = int_value; } else if (sqlite3_value_type (argv[4]) == SQLITE_FLOAT) { size_y = sqlite3_value_double (argv[4]); } else { sqlite3_result_null (context); return; } } if (argc == 6) { /* / ST_SnapToGrid(BLOBencoded geom, BLOBencoded point, double sizeX, / double sizeY, double sizeZ, double sizeM) */ if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); point = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!point) { sqlite3_result_null (context); return; } if (!getXYZMSinglePoint (point, &origin_x, &origin_y, &origin_z, &origin_m)) { gaiaFreeGeomColl (point); sqlite3_result_null (context); return; } gaiaFreeGeomColl (point); if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); size_x = int_value; } else if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) { size_x = sqlite3_value_double (argv[2]); } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[3]); size_y = int_value; } else if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) { size_y = sqlite3_value_double (argv[3]); } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[4]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[4]); size_z = int_value; } else if (sqlite3_value_type (argv[4]) == SQLITE_FLOAT) { size_z = sqlite3_value_double (argv[4]); } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[5]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[5]); size_m = int_value; } else if (sqlite3_value_type (argv[5]) == SQLITE_FLOAT) { size_m = sqlite3_value_double (argv[5]); } else { sqlite3_result_null (context); return; } } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { result = gaiaSnapToGrid (geo, origin_x, origin_y, origin_z, origin_m, size_x, size_y, size_z, size_m); if (result == NULL) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo); } static char garsMapping[24] = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' }; static char garsLetterCode (int value) { return garsMapping[value]; } static int garsMappingIndex (const char letter) { int i = 0; for (i = 0; i < 24; ++i) { if (letter == garsMapping[i]) return i; } return -1; } static double garsLetterToDegreesLat (char msd, char lsd) { double high = garsMappingIndex (msd) * 24.0; double low = garsMappingIndex (lsd); if ((high < 0) || (low < 0)) { return -100.0; } return (((high + low) * 0.5) - 90.0); } static void fnct_GARSMbr (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / GARSMbr(Text) / / converts the Text (which should be a valid GARS area) to the corresponding / MBR geometry. / This function will return NULL if an error occurs */ const char *text = NULL; int len = 0; unsigned char *p_result = NULL; double x1 = 0.0; double y1 = 0.0; double x2 = 0.0; double y2 = 0.0; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } text = (const char *) sqlite3_value_text (argv[0]); if ((strlen (text) < 5) || (strlen (text) > 7)) { sqlite3_result_null (context); return; } if (strlen (text) == 5) { int numMatch = 0; unsigned int digit100 = 0; char letterMSD = '\0'; char letterLSD = '\0'; numMatch = sscanf (text, "%u%c%c", &digit100, &letterMSD, &letterLSD); if (numMatch != 3) { sqlite3_result_null (context); return; } x1 = ((digit100 - 1) * 0.5) - 180.0; y1 = garsLetterToDegreesLat (letterMSD, letterLSD); if ((x1 < -180.0) || (x1 > 179.5) || (y1 < -90.0) || (y1 > 89.5)) { sqlite3_result_null (context); return; } x2 = x1 + 0.5; y2 = y1 + 0.5; } if (strlen (text) == 6) { unsigned int numMatch = 0; unsigned int digit100 = 0; char letterMSD = '\0'; char letterLSD = '\0'; unsigned int digitSegment = 0; numMatch = sscanf (text, "%u%c%c%u", &digit100, &letterMSD, &letterLSD, &digitSegment); if (numMatch != 4) { sqlite3_result_null (context); return; } if ((digitSegment < 1) || (digitSegment > 4)) { sqlite3_result_null (context); return; } x1 = ((digit100 - 1) * 0.5) - 180.0; if ((digitSegment == 2) || (digitSegment == 4)) { x1 += 0.25; } y1 = garsLetterToDegreesLat (letterMSD, letterLSD); if ((digitSegment == 1) || (digitSegment == 2)) { y1 += 0.25; } if ((x1 < -180.0) || (x1 > 179.75) || (y1 < -90.0) || (y1 > 89.75)) { sqlite3_result_null (context); return; } x2 = x1 + 0.25; y2 = y1 + 0.25; } if (strlen (text) == 7) { unsigned int numMatch = 0; unsigned int digit100 = 0; char letterMSD = '\0'; char letterLSD = '\0'; unsigned int digitAndKeypad = 0; unsigned int digitSegment = 0; unsigned int keypadNumber = 0; numMatch = sscanf (text, "%u%c%c%u", &digit100, &letterMSD, &letterLSD, &digitAndKeypad); if (numMatch != 4) { sqlite3_result_null (context); return; } digitSegment = digitAndKeypad / 10; keypadNumber = digitAndKeypad % 10; if ((digitSegment < 1) || (digitSegment > 4)) { sqlite3_result_null (context); return; } if (keypadNumber < 1) { sqlite3_result_null (context); return; } x1 = ((digit100 - 1) * 0.5) - 180.0; if ((digitSegment == 2) || (digitSegment == 4)) { x1 += 0.25; } y1 = garsLetterToDegreesLat (letterMSD, letterLSD); if ((digitSegment == 1) || (digitSegment == 2)) { y1 += 0.25; } switch (keypadNumber) { case 1: x1 += 0 * 0.25 / 3; y1 += 2 * 0.25 / 3; break; case 2: x1 += 1 * 0.25 / 3; y1 += 2 * 0.25 / 3; break; case 3: x1 += 2 * 0.25 / 3; y1 += 2 * 0.25 / 3; break; case 4: x1 += 0 * 0.25 / 3; y1 += 1 * 0.25 / 3; break; case 5: x1 += 1 * 0.25 / 3; y1 += 1 * 0.25 / 3; break; case 6: x1 += 2 * 0.25 / 3; y1 += 1 * 0.25 / 3; break; case 7: x1 += 0 * 0.25 / 3; y1 += 0 * 0.25 / 3; break; case 8: x1 += 1 * 0.25 / 3; y1 += 0 * 0.25 / 3; break; case 9: x1 += 2 * 0.25 / 3; y1 += 0 * 0.25 / 3; break; } if ((x1 < -180.0) || (x1 >= 180.0) || (y1 < -90.0) || (y1 >= 90.0)) { sqlite3_result_null (context); return; } x2 = x1 + (0.25 / 3); y2 = y1 + (0.25 / 3); } gaiaBuildMbr (x1, y1, x2, y2, 4326, &p_result, &len); if (!p_result) { sqlite3_result_null (context); printf ("bad p_result\n"); } else sqlite3_result_blob (context, p_result, len, free); } static void fnct_ToGARS (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ToGARS(BLOB encoded POINT) / / returns the Global Area Reference System coordinate area for a given point, / or NULL if an error occurs */ unsigned char *p_blob; int n_bytes; int pts = 0; int lns = 0; int pgs = 0; gaiaPointPtr point; gaiaLinestringPtr line; gaiaPolygonPtr polyg; gaiaGeomCollPtr geo = NULL; char p_result[8]; int lon_band = 0; double lon_minutes = 0; int segmentNumber = 0; int lat_band = 0; double lat_minutes = 0; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) { sqlite3_result_null (context); return; } gaiaNormalizeLonLat (geo); point = geo->FirstPoint; while (point != NULL) { pts++; point = point->Next; } line = geo->FirstLinestring; while (line != NULL) { lns++; line = line->Next; } polyg = geo->FirstPolygon; while (polyg != NULL) { pgs++; polyg = polyg->Next; } if (pts == 1 && lns == 0 && pgs == 0) point = geo->FirstPoint; else { /* not a single Point */ gaiaFreeGeomColl (geo); sqlite3_result_null (context); return; } /* longitude band */ lon_band = 1 + (int) ((point->X + 180.0) * 2); sprintf (p_result, "%03i", lon_band); /* latitude band */ lat_band = (int) ((point->Y + 90.0) * 2); p_result[3] = garsLetterCode (lat_band / 24); p_result[4] = garsLetterCode (lat_band % 24); /* quadrant */ lon_minutes = fmod ((point->X + 180.0), 0.5) * 60.0; if (lon_minutes < 15.0) { segmentNumber = 1; } else { segmentNumber = 2; lon_minutes -= 15.0; } lat_minutes = fmod ((point->Y + 90.0), 0.5) * 60.0; if (lat_minutes < 15.0) { segmentNumber += 2; } else { /* we already have the right segment */ lat_minutes -= 15.0; } sprintf (&(p_result[5]), "%i", segmentNumber); /* area */ segmentNumber = 0; if (lon_minutes >= 10.0) { segmentNumber = 3; } else if (lon_minutes >= 5.0) { segmentNumber = 2; } else { segmentNumber = 1; } if (lat_minutes >= 10.0) { /* nothing to add */ } else if (lat_minutes >= 5.0) { segmentNumber += 3; } else { segmentNumber += 6; } sprintf (&(p_result[6]), "%i", segmentNumber); sqlite3_result_text (context, p_result, 7, SQLITE_TRANSIENT); gaiaFreeGeomColl (geo); } static void fnct_GeometryN (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / GeometryN(BLOB encoded GEOMETRYCOLLECTION geometry) / / returns the Nth geometry for current GEOMETRYCOLLECTION or MULTIxxxx geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int entity; int len; int cnt = 0; int iv; int ib; double x; double y; double z; double m; gaiaPointPtr point; gaiaLinestringPtr line; gaiaLinestringPtr line2; gaiaPolygonPtr polyg; gaiaPolygonPtr polyg2; gaiaRingPtr ring_in; gaiaRingPtr ring_out; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); entity = sqlite3_value_int (argv[1]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { point = geo->FirstPoint; while (point) { /* counts how many points are there */ cnt++; if (cnt == entity) { /* ok, required elementary geometry is this POINT */ if (point->DimensionModel == GAIA_XY_Z) result = gaiaAllocGeomCollXYZ (); else if (point->DimensionModel == GAIA_XY_M) result = gaiaAllocGeomCollXYM (); else if (point->DimensionModel == GAIA_XY_Z_M) result = gaiaAllocGeomCollXYZM (); else result = gaiaAllocGeomColl (); result->Srid = geo->Srid; if (point->DimensionModel == GAIA_XY_Z) gaiaAddPointToGeomCollXYZ (result, point->X, point->Y, point->Z); else if (point->DimensionModel == GAIA_XY_M) gaiaAddPointToGeomCollXYM (result, point->X, point->Y, point->M); else if (point->DimensionModel == GAIA_XY_Z_M) gaiaAddPointToGeomCollXYZM (result, point->X, point->Y, point->Z, point->M); else gaiaAddPointToGeomColl (result, point->X, point->Y); goto skip; } point = point->Next; } line = geo->FirstLinestring; while (line) { /* counts how many linestrings are there */ cnt++; if (cnt == entity) { /* ok, required elementary geometry is this LINESTRING */ if (line->DimensionModel == GAIA_XY_Z) result = gaiaAllocGeomCollXYZ (); else if (line->DimensionModel == GAIA_XY_M) result = gaiaAllocGeomCollXYM (); else if (line->DimensionModel == GAIA_XY_Z_M) result = gaiaAllocGeomCollXYZM (); else result = gaiaAllocGeomColl (); result->Srid = geo->Srid; line2 = gaiaAddLinestringToGeomColl (result, line->Points); for (iv = 0; iv < line2->Points; iv++) { if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (line2->Coords, iv, x, y, z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); gaiaSetPointXYM (line2->Coords, iv, x, y, m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (line2->Coords, iv, x, y, z, m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); gaiaSetPoint (line2->Coords, iv, x, y); } } goto skip; } line = line->Next; } polyg = geo->FirstPolygon; while (polyg) { /* counts how many polygons are there */ cnt++; if (cnt == entity) { /* ok, required elementary geometry is this POLYGON */ if (polyg->DimensionModel == GAIA_XY_Z) result = gaiaAllocGeomCollXYZ (); else if (polyg->DimensionModel == GAIA_XY_M) result = gaiaAllocGeomCollXYM (); else if (polyg->DimensionModel == GAIA_XY_Z_M) result = gaiaAllocGeomCollXYZM (); else result = gaiaAllocGeomColl (); result->Srid = geo->Srid; ring_in = polyg->Exterior; polyg2 = gaiaAddPolygonToGeomColl (result, ring_in->Points, polyg->NumInteriors); ring_out = polyg2->Exterior; for (iv = 0; iv < ring_out->Points; iv++) { /* copying the exterior ring POINTs */ if (ring_in->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring_in->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (ring_out->Coords, iv, x, y, z); } else if (ring_in->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring_in->Coords, iv, &x, &y, &m); gaiaSetPointXYM (ring_out->Coords, iv, x, y, m); } else if (ring_in->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring_in->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (ring_out->Coords, iv, x, y, z, m); } else { gaiaGetPoint (ring_in->Coords, iv, &x, &y); gaiaSetPoint (ring_out->Coords, iv, x, y); } } for (ib = 0; ib < polyg2->NumInteriors; ib++) { /* processing the interior rings */ ring_in = polyg->Interiors + ib; ring_out = gaiaAddInteriorRing (polyg2, ib, ring_in->Points); for (iv = 0; iv < ring_out->Points; iv++) { if (ring_in->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring_in->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (ring_out->Coords, iv, x, y, z); } else if (ring_in->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring_in->Coords, iv, &x, &y, &m); gaiaSetPointXYM (ring_out->Coords, iv, x, y, m); } else if (ring_in->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring_in->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (ring_out->Coords, iv, x, y, z, m); } else { gaiaGetPoint (ring_in->Coords, iv, &x, &y); gaiaSetPoint (ring_out->Coords, iv, x, y); } } } goto skip; } polyg = polyg->Next; } skip: if (result) { gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); gaiaFreeGeomColl (result); sqlite3_result_blob (context, p_result, len, free); } else sqlite3_result_null (context); } gaiaFreeGeomColl (geo); } static void mbrs_eval (sqlite3_context * context, int argc, sqlite3_value ** argv, int request) { /* SQL function: / MBRsomething(BLOB encoded GEOMETRY-1, BLOB encoded GEOMETRY-2) / / returns: / 1 if the required spatial relationship between the two MBRs is TRUE / 0 otherwise / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int ret; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobMbr (p_blob, n_bytes); p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobMbr (p_blob, n_bytes); if (!geo1 || !geo2) sqlite3_result_null (context); else { ret = 0; gaiaMbrGeometry (geo1); gaiaMbrGeometry (geo2); switch (request) { case GAIA_MBR_CONTAINS: ret = gaiaMbrsContains (geo1, geo2); break; case GAIA_MBR_DISJOINT: ret = gaiaMbrsDisjoint (geo1, geo2); break; case GAIA_MBR_EQUAL: ret = gaiaMbrsEqual (geo1, geo2); break; case GAIA_MBR_INTERSECTS: ret = gaiaMbrsIntersects (geo1, geo2); break; case GAIA_MBR_OVERLAPS: ret = gaiaMbrsOverlaps (geo1, geo2); break; case GAIA_MBR_TOUCHES: ret = gaiaMbrsTouches (geo1, geo2); break; case GAIA_MBR_WITHIN: ret = gaiaMbrsWithin (geo1, geo2); break; } if (ret < 0) sqlite3_result_null (context); else sqlite3_result_int (context, ret); } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } /* / the following functions simply readdress the mbr_eval() / setting the appropriate request mode */ static void fnct_MbrContains (sqlite3_context * context, int argc, sqlite3_value ** argv) { mbrs_eval (context, argc, argv, GAIA_MBR_CONTAINS); } static void fnct_MbrDisjoint (sqlite3_context * context, int argc, sqlite3_value ** argv) { mbrs_eval (context, argc, argv, GAIA_MBR_DISJOINT); } static void fnct_MbrEqual (sqlite3_context * context, int argc, sqlite3_value ** argv) { mbrs_eval (context, argc, argv, GAIA_MBR_EQUAL); } static void fnct_MbrIntersects (sqlite3_context * context, int argc, sqlite3_value ** argv) { mbrs_eval (context, argc, argv, GAIA_MBR_INTERSECTS); } static void fnct_EnvIntersects (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ST_EnvIntersects(Geometry geom, double X1, double Y1, double X2, double Y2) / ST_EnvelopesIntersects(Geometry geom, double X1, double Y1, double X2, double Y2) / / the second MBR is defined by two points (identifying a rectangle's diagonal) / or NULL if any error is encountered */ double x1; double y1; double x2; double y2; int int_value; unsigned char *p_blob; int n_bytes; int ret = 0; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; gaiaLinestringPtr ln; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) x1 = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); x1 = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) y1 = sqlite3_value_double (argv[2]); else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); y1 = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) x2 = sqlite3_value_double (argv[3]); else if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[3]); x2 = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[4]) == SQLITE_FLOAT) y2 = sqlite3_value_double (argv[4]); else if (sqlite3_value_type (argv[4]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[4]); y2 = int_value; } else { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo1) sqlite3_result_null (context); else { gaiaMbrGeometry (geo1); geo2 = gaiaAllocGeomColl (); ln = gaiaAddLinestringToGeomColl (geo2, 2); gaiaSetPoint (ln->Coords, 0, x1, y1); gaiaSetPoint (ln->Coords, 1, x2, y2); gaiaMbrGeometry (geo2); ret = gaiaMbrsIntersects (geo1, geo2); sqlite3_result_int (context, ret); } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void fnct_MbrOverlaps (sqlite3_context * context, int argc, sqlite3_value ** argv) { mbrs_eval (context, argc, argv, GAIA_MBR_OVERLAPS); } static void fnct_MbrTouches (sqlite3_context * context, int argc, sqlite3_value ** argv) { mbrs_eval (context, argc, argv, GAIA_MBR_TOUCHES); } static void fnct_MbrWithin (sqlite3_context * context, int argc, sqlite3_value ** argv) { mbrs_eval (context, argc, argv, GAIA_MBR_WITHIN); } static void fnct_ShiftCoords (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ShiftCoords(BLOBencoded geometry, shiftX, shiftY) / / returns a new geometry that is the original one received, but with shifted coordinates / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; double shift_x; double shift_y; int int_value; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) shift_x = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); shift_x = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) shift_y = sqlite3_value_double (argv[2]); else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); shift_y = int_value; } else { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { gaiaShiftCoords (geo, shift_x, shift_y); gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); if (!p_result) sqlite3_result_null (context); else sqlite3_result_blob (context, p_result, len, free); } gaiaFreeGeomColl (geo); } static void fnct_Translate (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Translate(BLOBencoded geometry, shiftX, shiftY, shiftZ) / / returns a new geometry that is the original one received, but with shifted coordinates / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; double shift_x; double shift_y; double shift_z; int int_value; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) shift_x = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); shift_x = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) shift_y = sqlite3_value_double (argv[2]); else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); shift_y = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) shift_z = sqlite3_value_double (argv[3]); else if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[3]); shift_z = int_value; } else { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { gaiaShiftCoords3D (geo, shift_x, shift_y, shift_z); gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); if (!p_result) sqlite3_result_null (context); else sqlite3_result_blob (context, p_result, len, free); } gaiaFreeGeomColl (geo); } static void fnct_ShiftLongitude (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ShiftLongitude(BLOBencoded geometry) / / returns a new geometry that is the original one received, but with negative / longitudes shifted by 360 / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { gaiaShiftLongitude (geo); gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); if (!p_result) sqlite3_result_null (context); else sqlite3_result_blob (context, p_result, len, free); } gaiaFreeGeomColl (geo); } static void fnct_NormalizeLonLat (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / NormalizeLonLat (BLOBencoded geometry) / / returns a new geometry that is the original one received, but with longitude / and latitude values shifted into the range [-180 - 180, -90 - 90]. / NULL is returned if any error is encountered */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { gaiaNormalizeLonLat (geo); gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); if (!p_result) sqlite3_result_null (context); else sqlite3_result_blob (context, p_result, len, free); } gaiaFreeGeomColl (geo); } static void fnct_ScaleCoords (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ScaleCoords(BLOBencoded geometry, scale_factor_x [, scale_factor_y]) / / returns a new geometry that is the original one received, but with scaled coordinates / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; double scale_x; double scale_y; int int_value; if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) scale_x = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); scale_x = int_value; } else { sqlite3_result_null (context); return; } if (argc == 2) scale_y = scale_x; /* this one is an isotropic scaling request */ else { /* an anisotropic scaling is requested */ if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) scale_y = sqlite3_value_double (argv[2]); else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); scale_y = int_value; } else { sqlite3_result_null (context); return; } } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { gaiaScaleCoords (geo, scale_x, scale_y); gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); if (!p_result) sqlite3_result_null (context); else sqlite3_result_blob (context, p_result, len, free); } gaiaFreeGeomColl (geo); } static void fnct_RotateCoords (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / RotateCoords(BLOBencoded geometry, angle) / / returns a new geometry that is the original one received, but with rotated coordinates / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; double angle; int int_value; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) angle = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); angle = int_value; } else { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { gaiaRotateCoords (geo, angle); gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); if (!p_result) sqlite3_result_null (context); else sqlite3_result_blob (context, p_result, len, free); } gaiaFreeGeomColl (geo); } static void fnct_ReflectCoords (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ReflectCoords(BLOBencoded geometry, x_axis, y_axis) / / returns a new geometry that is the original one received, but with mirrored coordinates / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; int x_axis; int y_axis; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) x_axis = sqlite3_value_int (argv[1]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) y_axis = sqlite3_value_int (argv[2]); else { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { gaiaReflectCoords (geo, x_axis, y_axis); gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); if (!p_result) sqlite3_result_null (context); else sqlite3_result_blob (context, p_result, len, free); } gaiaFreeGeomColl (geo); } static void fnct_SwapCoords (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / SwapCoords(BLOBencoded geometry) / / returns a new geometry that is the original one received, but with swapped x- and y-coordinate / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { gaiaSwapCoords (geo); gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); if (!p_result) sqlite3_result_null (context); else sqlite3_result_blob (context, p_result, len, free); } gaiaFreeGeomColl (geo); } SPATIALITE_PRIVATE int getEllipsoidParams (void *p_sqlite, int srid, double *a, double *b, double *rf) { /* / retrieves the PROJ +ellps=xx [+a=xx +b=xx] params /from SPATIAL_SYS_REF table, if possible */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; char *proj4text; char *p_proj; char *p_ellps; char *p_datum; char *p_a; char *p_b; char *p_end; if (srid == 0) { /* / SRID=0 is formally defined as "Undefined Geographic" / so will default to SRID=4326 (WGS84 Long/Lat) */ srid = 4326; } getProjParams (sqlite, srid, &proj4text); if (proj4text == NULL) return 0; /* parsing the proj4text geodesic string */ p_proj = strstr (proj4text, "+proj="); p_datum = strstr (proj4text, "+datum="); p_ellps = strstr (proj4text, "+ellps="); p_a = strstr (proj4text, "+a="); p_b = strstr (proj4text, "+b="); /* checking if +proj=longlat is true */ if (!p_proj) goto invalid; p_end = strchr (p_proj, ' '); if (p_end) *p_end = '\0'; if (strcmp (p_proj + 6, "longlat") != 0) goto invalid; if (p_ellps) { /* trying to retrieve the ellipsoid params by name */ p_end = strchr (p_ellps, ' '); if (p_end) *p_end = '\0'; if (gaiaEllipseParams (p_ellps + 7, a, b, rf)) goto valid; } else if (p_datum) { /* / starting since GDAL 1.9.0 the WGS84 [4326] PROJ.4 def doesn't / declares any longer the "+ellps=" param / in this case we'll attempt to recover using "+datum=". */ p_end = strchr (p_datum, ' '); if (p_end) *p_end = '\0'; if (gaiaEllipseParams (p_datum + 7, a, b, rf)) goto valid; } if (p_a && p_b) { /* trying to retrieve the +a=xx and +b=xx args */ p_end = strchr (p_a, ' '); if (p_end) *p_end = '\0'; p_end = strchr (p_b, ' '); if (p_end) *p_end = '\0'; *a = atof (p_a + 3); *b = atof (p_b + 3); *rf = 1.0 / ((*a - *b) / *a); goto valid; } valid: free (proj4text); return 1; invalid: free (proj4text); return 0; } static void fnct_FromEWKB (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / GeomFromEWKB(EWKB encoded geometry) / / returns the current geometry by parsing Geos/PostGis EWKB encoded string / or NULL if any error is encountered */ int len; unsigned char *p_result = NULL; const unsigned char *text; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } text = sqlite3_value_text (argv[0]); geo = gaiaFromEWKB (text); if (geo == NULL) { sqlite3_result_null (context); return; } gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); gaiaFreeGeomColl (geo); sqlite3_result_blob (context, p_result, len, free); } static void fnct_ToEWKB (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / AsEWKB(BLOB encoded geometry) / / returns a text string corresponding to Geos/PostGIS EWKB notation / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int len; gaiaOutBuffer out_buf; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) { sqlite3_result_null (context); return; } else { gaiaOutBufferInitialize (&out_buf); gaiaToEWKB (&out_buf, geo); if (out_buf.Error || out_buf.Buffer == NULL) sqlite3_result_null (context); else { len = out_buf.WriteOffset; sqlite3_result_text (context, out_buf.Buffer, len, free); out_buf.Buffer = NULL; } } gaiaFreeGeomColl (geo); gaiaOutBufferReset (&out_buf); } static void fnct_ToEWKT (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / AsEWKT(BLOB encoded geometry) / / returns the corresponding PostGIS EWKT encoded value / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int len; gaiaOutBuffer out_buf; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); gaiaOutBufferInitialize (&out_buf); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { gaiaToEWKT (&out_buf, geo); if (out_buf.Error || out_buf.Buffer == NULL) sqlite3_result_null (context); else { len = out_buf.WriteOffset; sqlite3_result_text (context, out_buf.Buffer, len, free); out_buf.Buffer = NULL; } } gaiaFreeGeomColl (geo); gaiaOutBufferReset (&out_buf); } static void fnct_FromEWKT (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / GeomFromEWKT(EWKT encoded geometry) / / returns the current geometry by parsing EWKT (PostGIS) encoded string / or NULL if any error is encountered */ int len; unsigned char *p_result = NULL; const unsigned char *text; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } text = sqlite3_value_text (argv[0]); geo = gaiaParseEWKT (text); if (geo == NULL) { sqlite3_result_null (context); return; } gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); gaiaFreeGeomColl (geo); sqlite3_result_blob (context, p_result, len, free); } static void fnct_FromGeoJSON (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / GeomFromGeoJSON(GeoJSON encoded geometry) / / returns the current geometry by parsing GeoJSON encoded string / or NULL if any error is encountered */ int len; unsigned char *p_result = NULL; const unsigned char *text; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } text = sqlite3_value_text (argv[0]); geo = gaiaParseGeoJSON (text); if (geo == NULL) { sqlite3_result_null (context); return; } gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); gaiaFreeGeomColl (geo); sqlite3_result_blob (context, p_result, len, free); } static void fnct_FromKml (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / GeomFromKml(KML encoded geometry) / / returns the current geometry by parsing KML encoded string / or NULL if any error is encountered */ int len; unsigned char *p_result = NULL; const unsigned char *text; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } text = sqlite3_value_text (argv[0]); geo = gaiaParseKml (text); if (geo == NULL) { sqlite3_result_null (context); return; } gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); gaiaFreeGeomColl (geo); sqlite3_result_blob (context, p_result, len, free); } static void fnct_FromGml (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / GeomFromGml(GML encoded geometry) / / returns the current geometry by parsing GML encoded string / or NULL if any error is encountered */ int len; unsigned char *p_result = NULL; const unsigned char *text; gaiaGeomCollPtr geo = NULL; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } text = sqlite3_value_text (argv[0]); geo = gaiaParseGml (text, sqlite); if (geo == NULL) { sqlite3_result_null (context); return; } gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); gaiaFreeGeomColl (geo); sqlite3_result_blob (context, p_result, len, free); } static void fnct_LinesFromRings (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / LinesFromRings(BLOBencoded geometry, BOOL multi_linestring) / / returns a new geometry [LINESTRING or MULTILINESTRING] representing / the linearization for current (MULTI)POLYGON geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr geom_new = NULL; int len; int multi_linestring = 0; unsigned char *p_result = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (geo == NULL) { sqlite3_result_null (context); return; } if (argc == 2) { if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) multi_linestring = sqlite3_value_int (argv[1]); } geom_new = gaiaLinearize (geo, multi_linestring); if (!geom_new) goto invalid; gaiaFreeGeomColl (geo); gaiaToSpatiaLiteBlobWkb (geom_new, &p_result, &len); gaiaFreeGeomColl (geom_new); sqlite3_result_blob (context, p_result, len, free); return; invalid: if (geo) gaiaFreeGeomColl (geo); sqlite3_result_null (context); } #ifndef OMIT_GEOS /* including GEOS */ static void fnct_BuildArea (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / BuildArea(BLOBencoded geometry) / / Assuming that Geometry represents a set of sparse Linestrings, / this function will attempt to reassemble a single Polygon / (or a set of Polygons) / NULL is returned for invalid arguments */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (geo == NULL) sqlite3_result_null (context); else { result = gaiaPolygonize (geo, 0); if (result == NULL) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo); } static void fnct_Polygonize_step (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Polygonize(BLOBencoded geom) / / aggregate function - STEP / */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geom; gaiaGeomCollPtr result; gaiaGeomCollPtr *p; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geom = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geom) return; p = sqlite3_aggregate_context (context, sizeof (gaiaGeomCollPtr)); if (!(*p)) { /* this is the first row */ *p = geom; } else { /* subsequent rows */ result = gaiaMergeGeometries (*p, geom); gaiaFreeGeomColl (*p); *p = result; gaiaFreeGeomColl (geom); } } static void fnct_Polygonize_final (sqlite3_context * context) { /* SQL function: / Polygonize(BLOBencoded geom) / / aggregate function - FINAL / */ gaiaGeomCollPtr result; gaiaGeomCollPtr geom; gaiaGeomCollPtr *p = sqlite3_aggregate_context (context, 0); if (!p) { sqlite3_result_null (context); return; } result = *p; if (!result) sqlite3_result_null (context); else { geom = gaiaPolygonize (result, 0); if (geom == NULL) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; geom->Srid = result->Srid; gaiaToSpatiaLiteBlobWkb (geom, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (geom); } gaiaFreeGeomColl (result); } } #endif /* end including GEOS */ static void fnct_DissolveSegments (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / DissolveSegments(BLOBencoded geometry) / / Dissolves any LINESTRING or RING into elementary segments / NULL is returned for invalid arguments */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (geo == NULL) sqlite3_result_null (context); else { result = gaiaDissolveSegments (geo); if (result == NULL) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo); } static void fnct_DissolvePoints (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / DissolvePoints(BLOBencoded geometry) / / Dissolves any LINESTRING or RING into elementary Vertices / NULL is returned for invalid arguments */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (geo == NULL) sqlite3_result_null (context); else { result = gaiaDissolvePoints (geo); if (result == NULL) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo); } static void fnct_CollectionExtract (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CollectionExtract(BLOBencoded geometry, Integer type) / / Extracts from a GEOMETRYCOLLECTION any item of the required TYPE / 1=Point - 2=Linestring - 3=Polygon / NULL is returned for invalid arguments */ unsigned char *p_blob; int n_bytes; int type; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) type = sqlite3_value_int (argv[1]); else { sqlite3_result_null (context); return; } if (type == 1 || type == 2 || type == 3) ; else { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (geo == NULL) sqlite3_result_null (context); else { switch (type) { case 1: result = gaiaExtractPointsFromGeomColl (geo); break; case 2: result = gaiaExtractLinestringsFromGeomColl (geo); break; case 3: result = gaiaExtractPolygonsFromGeomColl (geo); break; }; if (result == NULL) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo); } static void fnct_LocateBetweenMeasures (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL functions: / ST_Locate_Along_Measure(BLOBencoded geometry, Double m_value) / ST_Locate_Between_Measures(BLOBencoded geometry, Double m_start, Double m_end) / / Extracts from a GEOMETRY (supporting M) any Point/Linestring / matching the range of measures / NULL is returned for invalid arguments */ unsigned char *p_blob; int n_bytes; double m_start; double m_end; int intval; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) m_start = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { intval = sqlite3_value_int (argv[1]); m_start = intval; } else { sqlite3_result_null (context); return; } if (argc > 2) { if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) m_end = sqlite3_value_double (argv[2]); else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { intval = sqlite3_value_int (argv[2]); m_end = intval; } else { sqlite3_result_null (context); return; } } else m_end = m_start; p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (geo == NULL) sqlite3_result_null (context); else { result = gaiaLocateBetweenMeasures (geo, m_start, m_end); if (result == NULL) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo); } #ifndef OMIT_PROJ /* including PROJ.4 */ static void fnct_Transform (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Transform(BLOBencoded geometry, srid) / / returns a new geometry that is the original one received, but with the new SRID [no coordinates translation is applied] / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; int srid_from; int srid_to; char *proj_from; char *proj_to; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) srid_to = sqlite3_value_int (argv[1]); else { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { srid_from = geo->Srid; getProjParams (sqlite, srid_from, &proj_from); getProjParams (sqlite, srid_to, &proj_to); if (proj_to == NULL || proj_from == NULL) { if (proj_from) free (proj_from); if (proj_to) free (proj_to); gaiaFreeGeomColl (geo); sqlite3_result_null (context); return; } result = gaiaTransform (geo, proj_from, proj_to); free (proj_from); free (proj_to); if (!result) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = srid_to; gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo); } #endif /* end including PROJ.4 */ #ifndef OMIT_GEOS /* including GEOS */ static void fnct_Boundary (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Boundary(BLOB encoded geometry) / / returns the combinatorial boundary for current geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr boundary; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { if (gaiaIsEmpty (geo)) sqlite3_result_null (context); else { boundary = gaiaBoundary (geo); if (!boundary) sqlite3_result_null (context); else { gaiaToSpatiaLiteBlobWkb (boundary, &p_result, &len); gaiaFreeGeomColl (boundary); sqlite3_result_blob (context, p_result, len, free); } } } gaiaFreeGeomColl (geo); } static void fnct_IsClosed (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / IsClosed(BLOB encoded LINESTRING or MULTILINESTRING geometry) / / returns: / 1 if this LINESTRING is closed [or if this is a MULTILINESTRING and every LINESTRINGs are closed] / 0 otherwise / or -1 if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_int (context, -1); else { sqlite3_result_int (context, gaiaIsClosedGeom (geo)); } gaiaFreeGeomColl (geo); } static void fnct_IsSimple (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / IsSimple(BLOB encoded GEOMETRY) / / returns: / 1 if this GEOMETRY is simple / 0 otherwise / or -1 if any error is encountered */ unsigned char *p_blob; int n_bytes; int ret; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_int (context, -1); else { ret = gaiaIsSimple (geo); if (ret < 0) sqlite3_result_int (context, -1); else sqlite3_result_int (context, ret); } gaiaFreeGeomColl (geo); } static void fnct_IsRing (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / IsRing(BLOB encoded LINESTRING geometry) / / returns: / 1 if this LINESTRING is a valid RING / 0 otherwise / or -1 if any error is encountered */ unsigned char *p_blob; int n_bytes; int ret; gaiaGeomCollPtr geo = NULL; gaiaLinestringPtr line; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_int (context, -1); else { line = simpleLinestring (geo); if (!line < 0) sqlite3_result_int (context, -1); else { ret = gaiaIsRing (line); sqlite3_result_int (context, ret); } } gaiaFreeGeomColl (geo); } static void fnct_IsValid (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / IsValid(BLOB encoded GEOMETRY) / / returns: / 1 if this GEOMETRY is a valid one / 0 otherwise / or -1 if any error is encountered */ unsigned char *p_blob; int n_bytes; int ret; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_int (context, -1); else { ret = gaiaIsValid (geo); if (ret < 0) sqlite3_result_int (context, -1); else sqlite3_result_int (context, ret); } gaiaFreeGeomColl (geo); } static void length_common (sqlite3_context * context, int argc, sqlite3_value ** argv, int is_perimeter) { /* common implementation supporting both ST_Length and ST_Perimeter */ unsigned char *p_blob; int n_bytes; double length = 0.0; int ret; int use_ellipsoid = -1; double a; double b; double rf; gaiaGeomCollPtr geo = NULL; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (argc == 2) { if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } use_ellipsoid = sqlite3_value_int (argv[1]); if (use_ellipsoid != 0) use_ellipsoid = 1; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { if (use_ellipsoid >= 0) { /* attempting to identify the corresponding ellipsoid */ if (getEllipsoidParams (sqlite, geo->Srid, &a, &b, &rf)) { double l; int ib; gaiaLinestringPtr line; gaiaPolygonPtr polyg; gaiaRingPtr ring; if (use_ellipsoid) { /* measuring on the Ellipsoid */ if (!is_perimeter) { line = geo->FirstLinestring; while (line) { /* Linestrings */ l = gaiaGeodesicTotalLength (a, b, rf, line->DimensionModel, line-> Coords, line-> Points); if (l < 0.0) { length = -1.0; break; } length += l; line = line->Next; } } if (length >= 0) { if (is_perimeter) { /* Polygons */ polyg = geo->FirstPolygon; while (polyg) { /* exterior Ring */ ring = polyg->Exterior; l = gaiaGeodesicTotalLength (a, b, rf, ring-> DimensionModel, ring-> Coords, ring-> Points); if (l < 0.0) { length = -1.0; break; } length += l; for (ib = 0; ib < polyg->NumInteriors; ib++) { /* interior Rings */ ring = polyg->Interiors + ib; l = gaiaGeodesicTotalLength (a, b, rf, ring->DimensionModel, ring->Coords, ring->Points); if (l < 0.0) { length = -1.0; break; } length += l; } if (length < 0.0) break; polyg = polyg->Next; } } } } else { /* measuring on the Great Circle */ if (!is_perimeter) { line = geo->FirstLinestring; while (line) { /* Linestrings */ length += gaiaGreatCircleTotalLength (a, b, line->DimensionModel, line->Coords, line->Points); line = line->Next; } } if (length >= 0) { if (is_perimeter) { /* Polygons */ polyg = geo->FirstPolygon; while (polyg) { /* exterior Ring */ ring = polyg->Exterior; length += gaiaGreatCircleTotalLength (a, b, ring->DimensionModel, ring->Coords, ring->Points); for (ib = 0; ib < polyg->NumInteriors; ib++) { /* interior Rings */ ring = polyg->Interiors + ib; length += gaiaGreatCircleTotalLength (a, b, ring->DimensionModel, ring->Coords, ring->Points); } polyg = polyg->Next; } } } } if (length < 0.0) { /* invalid distance */ sqlite3_result_null (context); } else sqlite3_result_double (context, length); } else sqlite3_result_null (context); goto stop; } ret = gaiaGeomCollLengthOrPerimeter (geo, is_perimeter, &length); if (!ret) sqlite3_result_null (context); else sqlite3_result_double (context, length); } stop: gaiaFreeGeomColl (geo); } static void fnct_Length (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ST_Length(BLOB encoded GEOMETRYCOLLECTION) / ST_Length(BLOB encoded GEOMETRYCOLLECTION, Boolean use_ellipsoid) / / returns the total length for current geometry / or NULL if any error is encountered / / Please note: starting since 4.0.0 this function will ignore / any Polygon (only Linestrings will be considered) / */ length_common (context, argc, argv, 0); } static void fnct_Perimeter (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ST_Perimeter(BLOB encoded GEOMETRYCOLLECTION) / ST_Perimeter(BLOB encoded GEOMETRYCOLLECTION, Boolean use_ellipsoid) / / returns the total perimeter length for current geometry / or NULL if any error is encountered / / Please note: starting since 4.0.0 this function will ignore / any Linestring (only Polygons will be considered) / */ length_common (context, argc, argv, 1); } static void fnct_Area (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Area(BLOB encoded GEOMETRYCOLLECTION) / / returns the total area for current geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; double area = 0.0; int ret; int use_ellipsoid = -1; #ifdef ENABLE_LWGEOM /* only if LWGEOM is enabled */ double a; double b; double rf; sqlite3 *sqlite = sqlite3_context_db_handle (context); #endif /* end LWGEOM conditional */ gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (argc == 2) { if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } use_ellipsoid = sqlite3_value_int (argv[1]); if (use_ellipsoid != 0) use_ellipsoid = 1; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { if (use_ellipsoid >= 0) { #ifdef ENABLE_LWGEOM /* only if LWGEOM is enabled */ /* attempting to identify the corresponding ellipsoid */ if (getEllipsoidParams (sqlite, geo->Srid, &a, &b, &rf)) ret = gaiaGeodesicArea (geo, a, b, use_ellipsoid, &area); else ret = 0; #else ret = 0; #endif /* end LWGEOM conditional */ } else ret = gaiaGeomCollArea (geo, &area); if (!ret) sqlite3_result_null (context); else sqlite3_result_double (context, area); } gaiaFreeGeomColl (geo); } static void fnct_Centroid (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Centroid(BLOBencoded POLYGON or MULTIPOLYGON geometry) / / returns a POINT representing the centroid for current POLYGON / MULTIPOLYGON geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int len; int ret; double x; double y; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { if (gaiaIsEmpty (geo)) sqlite3_result_null (context); else { ret = gaiaGeomCollCentroid (geo, &x, &y); if (!ret) sqlite3_result_null (context); else { result = gaiaAllocGeomColl (); result->Srid = geo->Srid; gaiaAddPointToGeomColl (result, x, y); gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); gaiaFreeGeomColl (result); sqlite3_result_blob (context, p_result, len, free); } } } gaiaFreeGeomColl (geo); } static void fnct_PointOnSurface (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / PointOnSurface(BLOBencoded POLYGON or MULTIPOLYGON geometry) / / returns a POINT guaranteed to lie on the Surface / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int len; double x; double y; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { if (!gaiaGetPointOnSurface (geo, &x, &y)) sqlite3_result_null (context); else { result = gaiaAllocGeomColl (); gaiaAddPointToGeomColl (result, x, y); result->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); gaiaFreeGeomColl (result); sqlite3_result_blob (context, p_result, len, free); } } gaiaFreeGeomColl (geo); } static void fnct_Simplify (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Simplify(BLOBencoded geometry, tolerance) / / returns a new geometry that is a caricature of the original one received, but simplified using the Douglas-Peuker algorihtm / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; int int_value; double tolerance; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) tolerance = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); tolerance = int_value; } else { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { result = gaiaGeomCollSimplify (geo, tolerance); if (!result) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo); } static void fnct_SimplifyPreserveTopology (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / SimplifyPreserveTopology(BLOBencoded geometry, tolerance) / / returns a new geometry that is a caricature of the original one received, but simplified using the Douglas-Peuker algorihtm [preserving topology] / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; int int_value; double tolerance; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) tolerance = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); tolerance = int_value; } else { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { result = gaiaGeomCollSimplifyPreserveTopology (geo, tolerance); if (!result) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo); } static void fnct_ConvexHull (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ConvexHull(BLOBencoded geometry) / / returns a new geometry representing the CONVEX HULL for current geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { result = gaiaConvexHull (geo); if (!result) sqlite3_result_null (context); else { gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo); } static void fnct_Buffer (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Buffer(BLOBencoded geometry, radius) / / returns a new geometry representing the BUFFER for current geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; double radius; int int_value; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) radius = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); radius = int_value; } else { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { result = gaiaGeomCollBuffer (geo, radius, 30); if (!result) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo); } static void fnct_Intersection (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Intersection(BLOBencoded geom1, BLOBencoded geom2) / / returns a new geometry representing the INTERSECTION of both geometries / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; gaiaGeomCollPtr result; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo1 || !geo2) sqlite3_result_null (context); else { result = gaiaGeometryIntersection (geo1, geo2); if (!result) sqlite3_result_null (context); else if (gaiaIsEmpty (result)) { gaiaFreeGeomColl (result); sqlite3_result_null (context); } else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static int gaia_union_polygs (gaiaGeomCollPtr geom) { /* testing if this geometry simply contains Polygons */ int pts = 0; int lns = 0; int pgs = 0; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; pt = geom->FirstPoint; while (pt) { pts++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { lns++; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { pgs++; pg = pg->Next; } if (pts || lns) return 0; if (!pgs) return 0; return 1; } static void fnct_Union_step (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Union(BLOBencoded geom) / / aggregate function - STEP / */ struct gaia_geom_chain *chain; struct gaia_geom_chain_item *item; unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geom; struct gaia_geom_chain **p; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geom = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geom) return; p = sqlite3_aggregate_context (context, sizeof (struct gaia_geom_chain **)); if (!(*p)) { /* this is the first row */ chain = malloc (sizeof (struct gaia_geom_chain)); *p = chain; item = malloc (sizeof (struct gaia_geom_chain_item)); item->geom = geom; item->next = NULL; chain->all_polygs = gaia_union_polygs (geom); chain->first = item; chain->last = item; } else { /* subsequent rows */ chain = *p; item = malloc (sizeof (struct gaia_geom_chain_item)); item->geom = geom; item->next = NULL; if (!gaia_union_polygs (geom)) chain->all_polygs = 0; chain->last->next = item; chain->last = item; } } static void gaia_free_geom_chain (struct gaia_geom_chain *chain) { struct gaia_geom_chain_item *p = chain->first; struct gaia_geom_chain_item *pn; while (p) { pn = p->next; gaiaFreeGeomColl (p->geom); free (p); p = pn; } free (chain); } static void fnct_Union_final (sqlite3_context * context) { /* SQL function: / Union(BLOBencoded geom) / / aggregate function - FINAL / */ gaiaGeomCollPtr tmp; struct gaia_geom_chain *chain; struct gaia_geom_chain_item *item; gaiaGeomCollPtr aggregate; gaiaGeomCollPtr result; struct gaia_geom_chain **p = sqlite3_aggregate_context (context, 0); if (!p) { sqlite3_result_null (context); return; } chain = *p; #ifdef GEOS_ADVANCED /* we can apply UnaryUnion */ item = chain->first; while (item) { gaiaGeomCollPtr geom = item->geom; if (item == chain->first) { /* initializing the aggregate geometry */ aggregate = geom; item->geom = NULL; item = item->next; continue; } tmp = gaiaMergeGeometries (aggregate, geom); gaiaFreeGeomColl (aggregate); gaiaFreeGeomColl (geom); item->geom = NULL; aggregate = tmp; item = item->next; } result = gaiaUnaryUnion (aggregate); gaiaFreeGeomColl (aggregate); /* end UnaryUnion */ #else /* old GEOS; no UnaryUnion available */ if (chain->all_polygs) { /* all Polygons: we can apply UnionCascaded */ item = chain->first; while (item) { gaiaGeomCollPtr geom = item->geom; if (item == chain->first) { /* initializing the aggregate geometry */ aggregate = geom; item->geom = NULL; item = item->next; continue; } tmp = gaiaMergeGeometries (aggregate, geom); gaiaFreeGeomColl (aggregate); gaiaFreeGeomColl (geom); item->geom = NULL; aggregate = tmp; item = item->next; } result = gaiaUnionCascaded (aggregate); gaiaFreeGeomColl (aggregate); } else { /* mixed types: the hardest/slowest way */ item = chain->first; while (item) { gaiaGeomCollPtr geom = item->geom; if (item == chain->first) { result = geom; item->geom = NULL; item = item->next; continue; } tmp = gaiaGeometryUnion (result, geom); gaiaFreeGeomColl (result); gaiaFreeGeomColl (geom); item->geom = NULL; result = tmp; item = item->next; } } /* end old GEOS: no UnaryUnion available */ #endif gaia_free_geom_chain (chain); if (result == NULL) sqlite3_result_null (context); else if (gaiaIsEmpty (result)) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); } gaiaFreeGeomColl (result); } static void fnct_Union (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Union(BLOBencoded geom1, BLOBencoded geom2) / / returns a new geometry representing the UNION of both geometries / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; gaiaGeomCollPtr result; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo1 || !geo2) sqlite3_result_null (context); else { result = gaiaGeometryUnion (geo1, geo2); if (!result) sqlite3_result_null (context); else if (gaiaIsEmpty (result)) { gaiaFreeGeomColl (result); sqlite3_result_null (context); } else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void fnct_Difference (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Difference(BLOBencoded geom1, BLOBencoded geom2) / / returns a new geometry representing the DIFFERENCE of both geometries / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; gaiaGeomCollPtr result; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo1 || !geo2) sqlite3_result_null (context); else { result = gaiaGeometryDifference (geo1, geo2); if (!result) sqlite3_result_null (context); else if (gaiaIsEmpty (result)) { gaiaFreeGeomColl (result); sqlite3_result_null (context); } else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void fnct_SymDifference (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / SymDifference(BLOBencoded geom1, BLOBencoded geom2) / / returns a new geometry representing the SYMMETRIC DIFFERENCE of both geometries / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; gaiaGeomCollPtr result; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo1 || !geo2) sqlite3_result_null (context); else { result = gaiaGeometrySymDifference (geo1, geo2); if (!result) sqlite3_result_null (context); else if (gaiaIsEmpty (result)) { gaiaFreeGeomColl (result); sqlite3_result_null (context); } else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void fnct_Equals (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Equals(BLOBencoded geom1, BLOBencoded geom2) / / returns: / 1 if the two geometries are "spatially equal" / 0 otherwise / or -1 if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; int ret; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo1 || !geo2) sqlite3_result_int (context, -1); else { ret = gaiaGeomCollEquals (geo1, geo2); sqlite3_result_int (context, ret); } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void fnct_Intersects (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Intersects(BLOBencoded geom1, BLOBencoded geom2) / / returns: / 1 if the two geometries do "spatially intersects" / 0 otherwise / or -1 if any error is encountered */ unsigned char *blob1; unsigned char *blob2; int bytes1; int bytes2; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; int ret; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } blob1 = (unsigned char *) sqlite3_value_blob (argv[0]); bytes1 = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkb (blob1, bytes1); blob2 = (unsigned char *) sqlite3_value_blob (argv[1]); bytes2 = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkb (blob2, bytes2); if (!geo1 || !geo2) sqlite3_result_int (context, -1); else { #ifdef GEOS_ADVANCED /* only if GEOS advanced features are enable */ ret = gaiaGeomCollPreparedIntersects (sqlite3_user_data (context), geo1, blob1, bytes1, geo2, blob2, bytes2); #else ret = gaiaGeomCollIntersects (geo1, geo2); #endif /* end GEOS_ADVANCED */ sqlite3_result_int (context, ret); } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void fnct_Disjoint (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Disjoint(BLOBencoded geom1, BLOBencoded geom2) / / returns: / 1 if the two geometries are "spatially disjoint" / 0 otherwise / or -1 if any error is encountered */ unsigned char *blob1; unsigned char *blob2; int bytes1; int bytes2; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; int ret; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } blob1 = (unsigned char *) sqlite3_value_blob (argv[0]); bytes1 = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkb (blob1, bytes1); blob2 = (unsigned char *) sqlite3_value_blob (argv[1]); bytes2 = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkb (blob2, bytes2); if (!geo1 || !geo2) sqlite3_result_int (context, -1); else { #ifdef GEOS_ADVANCED /* only if GEOS advanced features are enable */ ret = gaiaGeomCollPreparedDisjoint (sqlite3_user_data (context), geo1, blob1, bytes1, geo2, blob2, bytes2); #else ret = gaiaGeomCollDisjoint (geo1, geo2); #endif /* end GEOS_ADVANCED */ sqlite3_result_int (context, ret); } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void fnct_Overlaps (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Overlaps(BLOBencoded geom1, BLOBencoded geom2) / / returns: / 1 if the two geometries do "spatially overlaps" / 0 otherwise / or -1 if any error is encountered */ unsigned char *blob1; unsigned char *blob2; int bytes1; int bytes2; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; int ret; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } blob1 = (unsigned char *) sqlite3_value_blob (argv[0]); bytes1 = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkb (blob1, bytes1); blob2 = (unsigned char *) sqlite3_value_blob (argv[1]); bytes2 = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkb (blob2, bytes2); if (!geo1 || !geo2) sqlite3_result_int (context, -1); else { #ifdef GEOS_ADVANCED /* only if GEOS advanced features are enable */ ret = gaiaGeomCollPreparedOverlaps (sqlite3_user_data (context), geo1, blob1, bytes1, geo2, blob2, bytes2); #else ret = gaiaGeomCollOverlaps (geo1, geo2); #endif /* end GEOS_ADVANCED */ sqlite3_result_int (context, ret); } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void fnct_Crosses (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Crosses(BLOBencoded geom1, BLOBencoded geom2) / / returns: / 1 if the two geometries do "spatially crosses" / 0 otherwise / or -1 if any error is encountered */ unsigned char *blob1; unsigned char *blob2; int bytes1; int bytes2; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; int ret; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } blob1 = (unsigned char *) sqlite3_value_blob (argv[0]); bytes1 = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkb (blob1, bytes1); blob2 = (unsigned char *) sqlite3_value_blob (argv[1]); bytes2 = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkb (blob2, bytes2); if (!geo1 || !geo2) sqlite3_result_int (context, -1); else { #ifdef GEOS_ADVANCED /* only if GEOS advanced features are enable */ ret = gaiaGeomCollPreparedCrosses (sqlite3_user_data (context), geo1, blob1, bytes1, geo2, blob2, bytes2); #else ret = gaiaGeomCollCrosses (geo1, geo2); #endif /* end GEOS_ADVANCED */ sqlite3_result_int (context, ret); } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void fnct_Touches (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Touches(BLOBencoded geom1, BLOBencoded geom2) / / returns: / 1 if the two geometries do "spatially touches" / 0 otherwise / or -1 if any error is encountered */ unsigned char *blob1; unsigned char *blob2; int bytes1; int bytes2; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; int ret; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } blob1 = (unsigned char *) sqlite3_value_blob (argv[0]); bytes1 = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkb (blob1, bytes1); blob2 = (unsigned char *) sqlite3_value_blob (argv[1]); bytes2 = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkb (blob2, bytes2); if (!geo1 || !geo2) sqlite3_result_int (context, -1); else { #ifdef GEOS_ADVANCED /* only if GEOS advanced features are enable */ ret = gaiaGeomCollPreparedTouches (sqlite3_user_data (context), geo1, blob1, bytes1, geo2, blob2, bytes2); #else ret = gaiaGeomCollTouches (geo1, geo2); #endif /* end GEOS_ADVANCED */ sqlite3_result_int (context, ret); } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void fnct_Within (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Within(BLOBencoded geom1, BLOBencoded geom2) / / returns: / 1 if GEOM-1 is completely contained within GEOM-2 / 0 otherwise / or -1 if any error is encountered */ unsigned char *blob1; unsigned char *blob2; int bytes1; int bytes2; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; int ret; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } blob1 = (unsigned char *) sqlite3_value_blob (argv[0]); bytes1 = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkb (blob1, bytes1); blob2 = (unsigned char *) sqlite3_value_blob (argv[1]); bytes2 = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkb (blob2, bytes2); if (!geo1 || !geo2) sqlite3_result_int (context, -1); else { #ifdef GEOS_ADVANCED /* only if GEOS advanced features are enable */ ret = gaiaGeomCollPreparedWithin (sqlite3_user_data (context), geo1, blob1, bytes1, geo2, blob2, bytes2); #else ret = gaiaGeomCollWithin (geo1, geo2); #endif /* end GEOS_ADVANCED */ sqlite3_result_int (context, ret); } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void fnct_Contains (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Contains(BLOBencoded geom1, BLOBencoded geom2) / / returns: / 1 if GEOM-1 completely contains GEOM-2 / 0 otherwise / or -1 if any error is encountered */ unsigned char *blob1; unsigned char *blob2; int bytes1; int bytes2; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; int ret; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } blob1 = (unsigned char *) sqlite3_value_blob (argv[0]); bytes1 = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkb (blob1, bytes1); blob2 = (unsigned char *) sqlite3_value_blob (argv[1]); bytes2 = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkb (blob2, bytes2); if (!geo1 || !geo2) sqlite3_result_int (context, -1); else { #ifdef GEOS_ADVANCED /* only if GEOS advanced features are enable */ ret = gaiaGeomCollPreparedContains (sqlite3_user_data (context), geo1, blob1, bytes1, geo2, blob2, bytes2); #else ret = gaiaGeomCollContains (geo1, geo2); #endif /* end GEOS_ADVANCED */ sqlite3_result_int (context, ret); } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void fnct_Relate (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Relate(BLOBencoded geom1, BLOBencoded geom2, string pattern) / / returns: / 1 if GEOM-1 and GEOM-2 have a spatial relationship as specified by the patternMatrix / 0 otherwise / or -1 if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; int ret; const unsigned char *pattern; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[2]) != SQLITE_TEXT) { sqlite3_result_int (context, -1); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); pattern = sqlite3_value_text (argv[2]); if (!geo1 || !geo2) sqlite3_result_int (context, -1); else { ret = gaiaGeomCollRelate (geo1, geo2, (char *) pattern); sqlite3_result_int (context, ret); } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void fnct_Distance (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Distance(BLOBencoded geom1, BLOBencoded geom2) / Distance(BLOBencoded geom1, BLOBencoded geom2, Boolen use_ellipsoid) / / returns the distance between GEOM-1 and GEOM-2 */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; double dist; int use_ellipsoid = -1; double a; double b; double rf; int ret; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (argc == 3) { if (sqlite3_value_type (argv[2]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } use_ellipsoid = sqlite3_value_int (argv[2]); if (use_ellipsoid != 0) use_ellipsoid = 1; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo1 || !geo2) sqlite3_result_null (context); else { if (use_ellipsoid >= 0) { /* attempting to identify the corresponding ellipsoid */ if (getEllipsoidParams (sqlite, geo1->Srid, &a, &b, &rf)) { #ifdef GEOS_ADVANCED /* GEOS advanced features support is strictly required */ gaiaGeomCollPtr shortest = gaiaShortestLine (geo1, geo2); if (shortest == NULL) sqlite3_result_null (context); else if (shortest->FirstLinestring == NULL) { gaiaFreeGeomColl (shortest); sqlite3_result_null (context); } else { /* computes the metric distance */ double x0; double y0; double x1; double y1; double z; double m; gaiaLinestringPtr ln = shortest->FirstLinestring; dist = -1.0; if (ln->Points == 2) { if (ln->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, 0, &x0, &y0, &z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, 0, &x0, &y0, &m); } else if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, 0, &x0, &y0, &z, &m); } else { gaiaGetPoint (ln->Coords, 0, &x0, &y0); } if (ln->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, 1, &x1, &y1, &z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, 1, &x1, &y1, &m); } else if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, 1, &x1, &y1, &z, &m); } else { gaiaGetPoint (ln->Coords, 1, &x1, &y1); } if (use_ellipsoid) dist = gaiaGeodesicDistance (a, b, rf, y0, x0, y1, x1); else { a = 6378137.0; rf = 298.257223563; b = (a * (1.0 - (1.0 / rf))); dist = gaiaGreatCircleDistance (a, b, y0, x0, y1, x1); } if (dist < 0.0) { /* invalid distance */ sqlite3_result_null (context); } else sqlite3_result_double (context, dist); } else sqlite3_result_null (context); gaiaFreeGeomColl (shortest); } #else /* GEOS advanced features support unavailable */ sqlite3_result_null (context); #endif } else sqlite3_result_null (context); goto stop; } ret = gaiaGeomCollDistance (geo1, geo2, &dist); if (!ret) sqlite3_result_null (context); else sqlite3_result_double (context, dist); } stop: gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void fnct_PtDistWithin (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / PtDistWithin(BLOBencoded geom1, BLOBencoded geom2, double dist / [, boolen use_spheroid]) / / returns TRUE if the distance between GEOM-1 and GEOM-2 / is less or equal to dist / / - if both geom1 and geom2 are in the 4326 (WGS84) SRID, / (and does actually contains a single POINT each one) / dist is assumed to be measured in Meters / - in this case the optional arg use_spheroid is / checked to determine if geodesic distance has to be / computed on the sphere (quickest) or on the spheroid / default: use_spheroid = FALSE / / in any other case the "plain" distance is evaluated */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; double ref_dist; int use_spheroid = 0; double x0; double y0; double x1; double y1; int pt0 = 0; int ln0 = 0; int pg0 = 0; int pt1 = 0; int ln1 = 0; int pg1 = 0; double dist; double a; double b; double rf; int ret; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER || sqlite3_value_type (argv[2]) == SQLITE_FLOAT) ; else { sqlite3_result_null (context); return; } if (argc == 4) { /* optional use_spheroid arg */ if (sqlite3_value_type (argv[3]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int dst = sqlite3_value_int (argv[2]); ref_dist = dst; } else ref_dist = sqlite3_value_double (argv[2]); if (argc == 4) use_spheroid = sqlite3_value_int (argv[3]); if (!geo1 || !geo2) sqlite3_result_null (context); else { if (geo1->Srid == 4326 && geo2->Srid == 4326) { /* checking for single points */ pt = geo1->FirstPoint; while (pt) { x0 = pt->X; y0 = pt->Y; pt0++; pt = pt->Next; } ln = geo1->FirstLinestring; while (ln) { ln0++; ln = ln->Next; } pg = geo1->FirstPolygon; while (pg) { pg0++; pg = pg->Next; } pt = geo2->FirstPoint; while (pt) { x1 = pt->X; y1 = pt->Y; pt1++; pt = pt->Next; } ln = geo2->FirstLinestring; while (ln) { ln1++; ln = ln->Next; } pg = geo2->FirstPolygon; while (pg) { pg1++; pg = pg->Next; } if (pt0 == 1 && pt1 == 1 && ln0 == 0 && ln1 == 0 && pg0 == 0 && pg1 == 0) { /* using geodesic distance */ a = 6378137.0; rf = 298.257223563; b = (a * (1.0 - (1.0 / rf))); if (use_spheroid) { dist = gaiaGeodesicDistance (a, b, rf, y0, x0, y1, x1); if (dist <= ref_dist) sqlite3_result_int (context, 1); else sqlite3_result_int (context, 0); } else { dist = gaiaGreatCircleDistance (a, b, y0, x0, y1, x1); if (dist <= ref_dist) sqlite3_result_int (context, 1); else sqlite3_result_int (context, 0); } goto stop; } } /* defaulting to flat distance */ ret = gaiaGeomCollDistance (geo1, geo2, &dist); if (!ret) sqlite3_result_null (context); if (dist <= ref_dist) sqlite3_result_int (context, 1); else sqlite3_result_int (context, 0); } stop: gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } SPATIALITE_PRIVATE void geos_error (const char *fmt, ...) { /* reporting some GEOS error */ va_list ap; char *msg; va_start (ap, fmt); msg = sqlite3_vmprintf (fmt, ap); va_end (ap); if (msg) { spatialite_e ("GEOS error: %s\n", msg); gaiaSetGeosErrorMsg (msg); sqlite3_free (msg); } else gaiaSetGeosErrorMsg (NULL); } SPATIALITE_PRIVATE void geos_warning (const char *fmt, ...) { /* reporting some GEOS warning */ va_list ap; char *msg; va_start (ap, fmt); msg = sqlite3_vmprintf (fmt, ap); va_end (ap); if (msg) { spatialite_e ("GEOS warning: %s\n", msg); gaiaSetGeosWarningMsg (msg); sqlite3_free (msg); } else gaiaSetGeosWarningMsg (NULL); } static void fnct_aux_polygonize (sqlite3_context * context, gaiaGeomCollPtr geom_org, int force_multipolygon, int allow_multipolygon) { /* a common function performing any kind of polygonization op */ gaiaGeomCollPtr geom_new = NULL; int len; unsigned char *p_result = NULL; gaiaPolygonPtr pg; int pgs = 0; if (!geom_org) goto invalid; geom_new = gaiaPolygonize (geom_org, force_multipolygon); if (!geom_new) goto invalid; gaiaFreeGeomColl (geom_org); pg = geom_new->FirstPolygon; while (pg) { pgs++; pg = pg->Next; } if (pgs > 1 && allow_multipolygon == 0) { /* invalid: a POLYGON is expected !!! */ gaiaFreeGeomColl (geom_new); sqlite3_result_null (context); return; } gaiaToSpatiaLiteBlobWkb (geom_new, &p_result, &len); gaiaFreeGeomColl (geom_new); sqlite3_result_blob (context, p_result, len, free); return; invalid: if (geom_org) gaiaFreeGeomColl (geom_org); sqlite3_result_null (context); } /* / the following functions performs initial argument checking, / and then readdressing the request to fnct_aux_polygonize() / for actual processing */ static void fnct_BdPolyFromText1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / BdPolyFromText(WKT encoded MULTILINESTRING) / / returns the current geometry [POLYGON] by parsing a WKT encoded MULTILINESTRING / or NULL if any error is encountered / */ const unsigned char *text; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } text = sqlite3_value_text (argv[0]); geo = gaiaParseWkt (text, -1); if (geo == NULL) { sqlite3_result_null (context); return; } if (geo->DeclaredType != GAIA_MULTILINESTRING) { gaiaFreeGeomColl (geo); sqlite3_result_null (context); return; } geo->Srid = 0; fnct_aux_polygonize (context, geo, 0, 0); return; } static void fnct_BdPolyFromText2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / BdPolyFromText(WKT encoded MULTILINESTRING, SRID) / / returns the current geometry [POLYGON] by parsing a WKT encoded MULTILINESTRING / or NULL if any error is encountered / */ const unsigned char *text; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } text = sqlite3_value_text (argv[0]); geo = gaiaParseWkt (text, -1); if (geo == NULL) { sqlite3_result_null (context); return; } if (geo->DeclaredType != GAIA_MULTILINESTRING) { gaiaFreeGeomColl (geo); sqlite3_result_null (context); return; } geo->Srid = sqlite3_value_int (argv[1]); fnct_aux_polygonize (context, geo, 0, 0); return; } static void fnct_BdMPolyFromText1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / BdMPolyFromText(WKT encoded MULTILINESTRING) / / returns the current geometry [MULTIPOLYGON] by parsing a WKT encoded MULTILINESTRING / or NULL if any error is encountered / */ const unsigned char *text; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } text = sqlite3_value_text (argv[0]); geo = gaiaParseWkt (text, -1); if (geo == NULL) { sqlite3_result_null (context); return; } if (geo->DeclaredType != GAIA_MULTILINESTRING) { gaiaFreeGeomColl (geo); sqlite3_result_null (context); return; } geo->Srid = 0; fnct_aux_polygonize (context, geo, 1, 1); return; } static void fnct_BdMPolyFromText2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / BdMPolyFromText(WKT encoded MULTILINESTRING, SRID) / / returns the current geometry [MULTIPOLYGON] by parsing a WKT encoded MULTILINESTRING / or NULL if any error is encountered / */ const unsigned char *text; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } text = sqlite3_value_text (argv[0]); geo = gaiaParseWkt (text, -1); if (geo == NULL) { sqlite3_result_null (context); return; } if (geo->DeclaredType != GAIA_MULTILINESTRING) { gaiaFreeGeomColl (geo); sqlite3_result_null (context); return; } geo->Srid = sqlite3_value_int (argv[1]); fnct_aux_polygonize (context, geo, 1, 1); return; } static void fnct_BdPolyFromWKB1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / BdPolyFromWKB(WKB encoded MULTILINESTRING) / / returns the current geometry [POLYGON] by parsing a WKB encoded MULTILINESTRING / or NULL if any error is encountered / */ int n_bytes; const unsigned char *wkb; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } wkb = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); if (!check_wkb (wkb, n_bytes, -1)) return; geo = gaiaFromWkb (wkb, n_bytes); if (geo == NULL) { sqlite3_result_null (context); return; } if (geo->DeclaredType != GAIA_MULTILINESTRING) { gaiaFreeGeomColl (geo); sqlite3_result_null (context); return; } geo->Srid = 0; fnct_aux_polygonize (context, geo, 0, 0); return; } static void fnct_BdPolyFromWKB2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / BdPolyFromWKB(WKB encoded MULTILINESTRING) / / returns the current geometry [POLYGON] by parsing a WKB encoded MULTILINESTRING / or NULL if any error is encountered / */ int n_bytes; const unsigned char *wkb; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } wkb = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); if (!check_wkb (wkb, n_bytes, -1)) return; geo = gaiaFromWkb (wkb, n_bytes); if (geo == NULL) { sqlite3_result_null (context); return; } if (geo->DeclaredType != GAIA_MULTILINESTRING) { gaiaFreeGeomColl (geo); sqlite3_result_null (context); return; } geo->Srid = sqlite3_value_int (argv[1]); fnct_aux_polygonize (context, geo, 0, 0); return; } static void fnct_BdMPolyFromWKB1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / BdMPolyFromWKB(WKB encoded MULTILINESTRING) / / returns the current geometry [MULTIPOLYGON] by parsing a WKB encoded MULTILINESTRING / or NULL if any error is encountered / */ int n_bytes; const unsigned char *wkb; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } wkb = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); if (!check_wkb (wkb, n_bytes, -1)) return; geo = gaiaFromWkb (wkb, n_bytes); if (geo == NULL) { sqlite3_result_null (context); return; } if (geo->DeclaredType != GAIA_MULTILINESTRING) { gaiaFreeGeomColl (geo); sqlite3_result_null (context); return; } geo->Srid = 0; fnct_aux_polygonize (context, geo, 1, 1); return; } static void fnct_BdMPolyFromWKB2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / BdMPolyFromWKB(WKB encoded MULTILINESTRING) / / returns the current geometry [MULTIPOLYGON] by parsing a WKB encoded MULTILINESTRING / or NULL if any error is encountered / */ int n_bytes; const unsigned char *wkb; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } wkb = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); if (!check_wkb (wkb, n_bytes, -1)) return; geo = gaiaFromWkb (wkb, n_bytes); if (geo == NULL) { sqlite3_result_null (context); return; } if (geo->DeclaredType != GAIA_MULTILINESTRING) { gaiaFreeGeomColl (geo); sqlite3_result_null (context); return; } geo->Srid = sqlite3_value_int (argv[1]); fnct_aux_polygonize (context, geo, 1, 1); return; } #ifdef GEOS_ADVANCED /* GEOS advanced features */ static int check_topo_table (sqlite3 * sqlite, const char *table, int is_view) { /* checking if some Topology-related table/view already exists */ int exists = 0; char *sql_statement; char *errMsg = NULL; int ret; char **results; int rows; int columns; int i; sql_statement = sqlite3_mprintf ("SELECT name FROM sqlite_master WHERE type = '%s'" "AND Upper(name) = Upper(%Q)", (!is_view) ? "table" : "view", table); ret = sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { sqlite3_free (errMsg); return 0; } for (i = 1; i <= rows; i++) exists = 1; sqlite3_free_table (results); return exists; } static int create_topo_nodes (sqlite3 * sqlite, const char *table, int srid, int dims) { /* creating the topo_nodes table */ char *sql_statement; char *sqltable; char *idx_name; char *xidx_name; int ret; char *err_msg = NULL; sqltable = gaiaDoubleQuotedSql (table); sql_statement = sqlite3_mprintf ("CREATE TABLE \"%s\" (\n" "node_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" "node_code TEXT)", sqltable); free (sqltable); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE '%s' error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } sql_statement = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'Geometry', %d, 'POINT', '%s', 1)", table, srid, (dims == GAIA_XY_Z) ? "XYZ" : "XY"); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("AddGeometryColumn '%s'.'Geometry' error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } sql_statement = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'Geometry')", table); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CreateSpatialIndex '%s'.'Geometry' error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } sqltable = gaiaDoubleQuotedSql (table); idx_name = sqlite3_mprintf ("idx_%s_code", table); xidx_name = gaiaDoubleQuotedSql (idx_name); sqlite3_free (idx_name); sql_statement = sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (node_code)", xidx_name, sqltable); free (sqltable); free (xidx_name); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("Create Index '%s'('node_code') error: %s\n", sqltable, err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_topo_edges (sqlite3 * sqlite, const char *table, int srid, int dims) { /* creating the topo_edges table */ char *sql_statement; char *sqltable; char *idx_name; char *xidx_name; int ret; char *err_msg = NULL; sqltable = gaiaDoubleQuotedSql (table); sql_statement = sqlite3_mprintf ("CREATE TABLE \"%s\" (\n" "edge_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" "node_from_code TEXT,\n" "node_to_code TEXT,\n" "edge_code TEXT)", sqltable); free (sqltable); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE '%s' error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } sql_statement = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'Geometry', %d, 'LINESTRING', '%s', 1)", table, srid, (dims == GAIA_XY_Z) ? "XYZ" : "XY"); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("AddGeometryColumn '%s'.'Geometry' error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } sql_statement = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'Geometry')", table); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CreateSpatialIndex '%s'.'Geometry' error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } sqltable = gaiaDoubleQuotedSql (table); idx_name = sqlite3_mprintf ("idx_%s_code", table); xidx_name = gaiaDoubleQuotedSql (idx_name); sqlite3_free (idx_name); sql_statement = sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (edge_code)", xidx_name, sqltable); free (sqltable); free (xidx_name); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("Create Index '%s'('edge_code') error: %s\n", sqltable, err_msg); sqlite3_free (err_msg); return 0; } sqltable = gaiaDoubleQuotedSql (table); idx_name = sqlite3_mprintf ("idx_%s_from", table); xidx_name = gaiaDoubleQuotedSql (idx_name); sqlite3_free (idx_name); sql_statement = sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (node_from_code)", xidx_name, sqltable); free (sqltable); free (xidx_name); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("Create Index '%s'('node_from_code') error: %s\n", sqltable, err_msg); sqlite3_free (err_msg); return 0; } sqltable = gaiaDoubleQuotedSql (table); idx_name = sqlite3_mprintf ("idx_%s_to", table); xidx_name = gaiaDoubleQuotedSql (idx_name); sqlite3_free (idx_name); sql_statement = sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (node_to_code)", xidx_name, sqltable); free (sqltable); free (xidx_name); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("Create Index '%s'('node_to_code') error: %s\n", sqltable, err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_topo_faces (sqlite3 * sqlite, const char *table) { /* creating the topo_faces table */ char *sql_statement; char *sqltable; char *idx_name; char *xidx_name; int ret; char *err_msg = NULL; sqltable = gaiaDoubleQuotedSql (table); sql_statement = sqlite3_mprintf ("CREATE TABLE \"%s\" (\n" "face_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" "face_code TEXT)", sqltable); free (sqltable); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE '%s' error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } sqltable = gaiaDoubleQuotedSql (table); idx_name = sqlite3_mprintf ("idx_%s_code", table); xidx_name = gaiaDoubleQuotedSql (idx_name); sqlite3_free (idx_name); sql_statement = sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (face_code)", xidx_name, sqltable); free (sqltable); free (xidx_name); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("Create Index '%s'('face_code') error: %s\n", sqltable, err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_topo_faces_edges (sqlite3 * sqlite, const char *table, const char *table2) { /* creating the topo_faces_edges table */ char *sql_statement; char *sqltable; char *sqltable2; char *idx_name; char *xidx_name; int ret; char *err_msg = NULL; sqltable = gaiaDoubleQuotedSql (table); sqltable2 = gaiaDoubleQuotedSql (table2); sql_statement = sqlite3_mprintf ("CREATE TABLE \"%s\" (\n" "face_id INTEGER NOT NULL,\n" "edge_code TEXT NOT NULL,\n" "orientation TEXT,\n" "CONSTRAINT pk_faces_edges PRIMARY KEY " "(face_id, edge_code),\n" "CONSTRAINT fk_faces_edges FOREIGN KEY " "(face_id) REFERENCES \"%s\" (face_id))\n", sqltable, sqltable2); free (sqltable); free (sqltable2); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE '%s' error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } sqltable = gaiaDoubleQuotedSql (table); idx_name = sqlite3_mprintf ("idx_%s_edge", table); xidx_name = gaiaDoubleQuotedSql (idx_name); sqlite3_free (idx_name); sql_statement = sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (edge_code)", xidx_name, sqltable); free (sqltable); free (xidx_name); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("Create Index '%s'('edge_code') error: %s\n", sqltable, err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_topo_curves (sqlite3 * sqlite, const char *table) { /* creating the topo_curves table */ char *sql_statement; char *sqltable; char *idx_name; char *xidx_name; int ret; char *err_msg = NULL; sqltable = gaiaDoubleQuotedSql (table); sql_statement = sqlite3_mprintf ("CREATE TABLE \"%s\" (\n" "curve_id INTEGER NOT NULL,\n" "edge_code TEXT NOT NULL,\n" "orientation TEXT,\n" "CONSTRAINT pk_curves PRIMARY KEY " "(curve_id, edge_code))\n", sqltable); free (sqltable); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE '%s' error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } sqltable = gaiaDoubleQuotedSql (table); idx_name = sqlite3_mprintf ("idx_%s_edge", table); xidx_name = gaiaDoubleQuotedSql (idx_name); sqlite3_free (idx_name); sql_statement = sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (edge_code)", xidx_name, sqltable); free (sqltable); free (xidx_name); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("Create Index '%s'('edge_code') error: %s\n", sqltable, err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_topo_surfaces (sqlite3 * sqlite, const char *table) { /* creating the topo_surfaces table */ char *sql_statement; char *sqltable; char *idx_name; char *xidx_name; int ret; char *err_msg = NULL; sqltable = gaiaDoubleQuotedSql (table); sql_statement = sqlite3_mprintf ("CREATE TABLE \"%s\" (\n" "surface_id INTEGER NOT NULL,\n" "face_code TEXT NOT NULL,\n" "orientation TEXT,\n" "CONSTRAINT pk_surfaces PRIMARY KEY " "(surface_id, face_code))", sqltable); free (sqltable); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE '%s' error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } sqltable = gaiaDoubleQuotedSql (table); idx_name = sqlite3_mprintf ("idx_%s_face", table); xidx_name = gaiaDoubleQuotedSql (idx_name); sqlite3_free (idx_name); sql_statement = sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (face_code)", xidx_name, sqltable); free (sqltable); free (xidx_name); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("Create Index '%s'('face_code') error: %s\n", sqltable, err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_check_node_codes (sqlite3 * sqlite, const char *view, const char *table_nodes) { /* creating the check node codes VIEW */ char *sql_statement; char *sqltable; char *sqlview; int ret; char *err_msg = NULL; sqlview = gaiaDoubleQuotedSql (view); sqltable = gaiaDoubleQuotedSql (table_nodes); sql_statement = sqlite3_mprintf ("CREATE VIEW \"%s\" AS\n" "SELECT node_code AS node_code, Count(node_id) AS count\n" "FROM \"%s\"\nGROUP BY node_code\nHAVING count > 1\n", sqlview, sqltable); free (sqlview); free (sqltable); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW '%s' error: %s\n", view, err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_check_node_geoms (sqlite3 * sqlite, const char *view, const char *table_nodes) { /* creating the check node geoms VIEW */ char *sql_statement; char *sqltable; char *sqlview; int ret; char *err_msg = NULL; sqlview = gaiaDoubleQuotedSql (view); sqltable = gaiaDoubleQuotedSql (table_nodes); sql_statement = sqlite3_mprintf ("CREATE VIEW \"%s\" AS\n" "SELECT n1.node_id AS node1_id, n1.node_code AS node1_code, " "n2.node_id AS node2_id, n2.node_code AS node2_code\n" "FROM \"%s\" AS n1\nJOIN \"%s\" AS n2 ON (\n" " n1.node_id <> n2.node_id AND\n" " ST_Equals(n1.Geometry, n2.Geometry) = 1 AND\n" " n2.node_id IN (\n SELECT ROWID FROM SpatialIndex\n" " WHERE f_table_name = %Q AND\n search_frame = n1.Geometry))\n", sqlview, sqltable, sqltable, table_nodes); free (sqlview); free (sqltable); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW '%s' error: %s\n", view, err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_check_edge_codes (sqlite3 * sqlite, const char *view, const char *table_edges) { /* creating the check edge codes VIEW */ char *sql_statement; char *sqltable; char *sqlview; int ret; char *err_msg = NULL; sqlview = gaiaDoubleQuotedSql (view); sqltable = gaiaDoubleQuotedSql (table_edges); sql_statement = sqlite3_mprintf ("CREATE VIEW \"%s\" AS\n" "SELECT edge_code AS edge_code, Count(edge_id) AS count\n" "FROM \"%s\"\nGROUP BY edge_code\nHAVING count > 1\n", sqlview, sqltable); free (sqlview); free (sqltable); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW '%s' error: %s\n", view, err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_check_edge_geoms (sqlite3 * sqlite, const char *view, const char *table_edges) { /* creating the check edge geoms VIEW */ char *sql_statement; char *sqltable; char *sqlview; int ret; char *err_msg = NULL; sqlview = gaiaDoubleQuotedSql (view); sqltable = gaiaDoubleQuotedSql (table_edges); sql_statement = sqlite3_mprintf ("CREATE VIEW \"%s\" AS\n" "SELECT e1.edge_id AS edge1_id, e1.edge_code AS edge1_code, " "e2.edge_id AS edge2_id, e2.edge_code AS edge2_code\n" "FROM \"%s\" AS e1\nJOIN \"%s\" AS e2 ON (\n e1.edge_id <> e2.edge_id AND\n" "NOT (e1.node_from_code = e2.node_from_code " "AND e1.node_to_code = e2.node_to_code) AND\n" " ST_Crosses(e1.Geometry, e2.Geometry) = 1 AND\n" " e2.edge_id IN (\n" " SELECT ROWID FROM SpatialIndex\n" " WHERE f_table_name = %Q AND\n search_frame = e1.Geometry))\n", sqlview, sqltable, sqltable, table_edges); free (sqlview); free (sqltable); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW '%s' error: %s\n", view, err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_check_edge_node_geoms (sqlite3 * sqlite, const char *view, const char *table_edges, const char *table_nodes) { /* creating the check edge/node geoms VIEW */ char *sql_statement; char *sql_edges; char *sql_nodes; char *sqlview; int ret; char *err_msg = NULL; sqlview = gaiaDoubleQuotedSql (view); sql_edges = gaiaDoubleQuotedSql (table_edges); sql_nodes = gaiaDoubleQuotedSql (table_nodes); sql_statement = sqlite3_mprintf ("CREATE VIEW \"%s\" AS\n" "SELECT e.edge_id AS edge_id, n.node_id AS node_id\n" "FROM \"%s\" AS e,\n\"%s\" AS n\n" "WHERE ST_Intersects(e.Geometry, n.Geometry)\n" " AND ST_Equals(ST_StartPoint(e.Geometry), n.Geometry) = 0\n" " AND ST_Equals(ST_EndPoint(e.Geometry), n.Geometry) = 0\n" " AND n.ROWID IN (\n SELECT ROWID FROM SpatialIndex\n" " WHERE f_table_name = %Q\n AND search_frame = e.Geometry);", sqlview, sql_edges, sql_nodes, table_nodes); free (sqlview); free (sql_nodes); free (sql_edges); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW '%s' error: %s\n", view, err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_check_face_codes (sqlite3 * sqlite, const char *view, const char *table_faces) { /* creating the check face codes VIEW */ char *sql_statement; char *sqltable; char *sqlview; int ret; char *err_msg = NULL; sqlview = gaiaDoubleQuotedSql (view); sqltable = gaiaDoubleQuotedSql (table_faces); sql_statement = sqlite3_mprintf ("CREATE VIEW \"%s\" AS\n" "SELECT face_code AS face_code, Count(face_id) AS count\n" "FROM \"%s\"\nGROUP BY face_code\nHAVING count > 1\n", sqlview, sqltable); free (sqltable); free (sqlview); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW '%s' error: %s\n", view, err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_faces_resolved (sqlite3 * sqlite, const char *view, const char *faces, const char *faces_edges, const char *edges) { /* creating the Faces Resolved VIEW */ char *sql_statement; char *sql_faces; char *sql_faces_edges; char *sql_edges; char *sqlview; int ret; char *err_msg = NULL; sqlview = gaiaDoubleQuotedSql (view); sql_faces = gaiaDoubleQuotedSql (faces); sql_faces_edges = gaiaDoubleQuotedSql (faces_edges); sql_edges = gaiaDoubleQuotedSql (edges); sql_statement = sqlite3_mprintf ("CREATE VIEW \"%s\" AS\n" "SELECT f.face_id AS face_id, f.face_code AS face_code, " "ST_Polygonize(e.Geometry) AS Geometry\n" "FROM \"%s\" AS f\nLEFT JOIN \"%s\" AS fe ON (fe.face_id = f.face_id)\n" "LEFT JOIN \"%s\" AS e ON (e.edge_code = fe.edge_code)\n" "GROUP BY f.face_id\n", sqlview, sql_faces, sql_faces_edges, sql_edges); free (sqlview); free (sql_faces); free (sql_faces_edges); free (sql_edges); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW '%s' error: %s\n", view, err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_curves_resolved (sqlite3 * sqlite, const char *view, const char *curves, char *edges) { /* creating the Curves Resolved VIEW */ char *sql_statement; char *sql_curves; char *sql_edges; char *sqlview; int ret; char *err_msg = NULL; sqlview = gaiaDoubleQuotedSql (view); sql_curves = gaiaDoubleQuotedSql (curves); sql_edges = gaiaDoubleQuotedSql (edges); sql_statement = sqlite3_mprintf ("CREATE VIEW \"%s\" AS\nSELECT c.curve_id AS curve_id, " "CastToMultiLinestring(ST_Collect(e.Geometry)) AS Geometry\n" "FROM \"%s\" AS c\nLEFT JOIN \"%s\" AS e ON (e.edge_code = c.edge_code)\n" "GROUP BY c.curve_id\n", sqlview, sql_curves, sql_edges); free (sqlview); free (sql_edges); free (sql_curves); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW '%s' error: %s\n", view, err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_surfaces_resolved (sqlite3 * sqlite, const char *view, const char *surfaces, const char *faces) { /* creating the Surfaces Resolved VIEW */ char *sql_statement; char *sql_surfaces; char *sql_faces; char *sqlview; int ret; char *err_msg = NULL; sqlview = gaiaDoubleQuotedSql (view); sql_surfaces = gaiaDoubleQuotedSql (surfaces); sql_faces = gaiaDoubleQuotedSql (faces); sql_statement = sqlite3_mprintf ("CREATE VIEW \"%s\" AS\n" "SELECT s.surface_id AS surface_id,\n" " CastToMultipolygon(ST_UnaryUnion(ST_Collect(f.Geometry))) AS Geometry\n" "FROM \"%s\" AS s\n" "LEFT JOIN \"%s\" AS f ON (f.face_code = s.face_code)\n" "GROUP BY s.surface_id\n", sqlview, sql_surfaces, sql_faces); free (sqlview); free (sql_surfaces); free (sql_faces); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW '%s' error: %s\n", view, err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_dangling_nodes (sqlite3 * sqlite, const char *view, const char *nodes, const char *edges) { /* creating the Dangling Nodes VIEW */ char *sql_statement; char *sql_nodes; char *sql_edges; char *sqlview; int ret; char *err_msg = NULL; sqlview = gaiaDoubleQuotedSql (view); sql_nodes = gaiaDoubleQuotedSql (nodes); sql_edges = gaiaDoubleQuotedSql (edges); sql_statement = sqlite3_mprintf ("CREATE VIEW \"%s\" AS\n" "SELECT n.node_id AS node_id\nFROM \"%s\" AS n\n" "LEFT JOIN \"%s\" AS e ON (n.node_code = e.node_from_code)\n" "WHERE e.edge_id IS NULL\nINTERSECT\nSELECT n.node_id AS node_id\n" "FROM \"%s\" AS n\nLEFT JOIN \"%s\" AS e ON (n.node_code = e.node_to_code)\n" "WHERE e.edge_id IS NULL\n", sqlview, sql_nodes, sql_edges, sql_nodes, sql_edges); free (sqlview); free (sql_nodes); free (sql_edges); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW '%s' error: %s\n", view, err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_dangling_edges (sqlite3 * sqlite, const char *view, const char *edges, const char *faces_edges, const char *curves) { /* creating the Dangling Edges VIEW */ char *sql_statement; char *sql_edges; char *sql_faces_edges; char *sql_curves; char *sqlview; int ret; char *err_msg = NULL; sqlview = gaiaDoubleQuotedSql (view); sql_edges = gaiaDoubleQuotedSql (edges); sql_faces_edges = gaiaDoubleQuotedSql (faces_edges); sql_curves = gaiaDoubleQuotedSql (curves); sql_statement = sqlite3_mprintf ("CREATE VIEW \"%s\" AS\n" "SELECT e.edge_id AS edge_id\nFROM \"%s\" AS e\n" "LEFT JOIN \"%s\" AS f ON (e.edge_code = f.edge_code)\n" "WHERE f.edge_code IS NULL\nINTERSECT\nSELECT e.edge_id AS edge_id\n" "FROM \"%s\" AS e\nLEFT JOIN \"%s\" AS c ON (e.edge_code = c.edge_code)\n" "WHERE c.edge_code IS NULL\n", sqlview, sql_edges, sql_faces_edges, sql_edges, sql_curves); free (sqlview); free (sql_edges); free (sql_faces_edges); free (sql_curves); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW '%s' error: %s\n", view, err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_check_edges_from_to (sqlite3 * sqlite, const char *view, const char *edges, const char *nodes) { /* creating the Edges/Nodes [from/to] VIEW */ char skeleton[2048]; char *sql_statement; char *sql_edges; char *sql_nodes; char *sqlview; int ret; char *err_msg = NULL; sqlview = gaiaDoubleQuotedSql (view); sql_edges = gaiaDoubleQuotedSql (edges); sql_nodes = gaiaDoubleQuotedSql (nodes); strcpy (skeleton, "CREATE VIEW \"%s\" AS\n"); strcat (skeleton, "SELECT e.edge_id AS edge_id, n.node_id AS node_id,\n"); strcat (skeleton, " n.node_code AS node_code,\n"); strcat (skeleton, "'Mismatching coords' AS error_cause\n"); strcat (skeleton, "FROM \"%s\" AS e\n"); strcat (skeleton, "JOIN \"%s\" AS n ON "); strcat (skeleton, "(e.node_from_code = n.node_code)\n"); strcat (skeleton, "WHERE ST_Equals(ST_StartPoint(e.Geometry), n.Geometry) = 0\n"); strcat (skeleton, "UNION\n"); strcat (skeleton, "SELECT e.edge_id AS edge_id, n.node_id AS node_id,\n"); strcat (skeleton, " n.node_code AS node_code,\n"); strcat (skeleton, " 'Mismatching coords' AS error_cause\n"); strcat (skeleton, "FROM \"%s\" AS e\n"); strcat (skeleton, "JOIN \"%s\" AS n ON "); strcat (skeleton, "(e.node_to_code = n.node_code)\n"); strcat (skeleton, "WHERE ST_Equals(ST_EndPoint(e.Geometry), n.Geometry) = 0\n"); strcat (skeleton, "UNION\n"); strcat (skeleton, "SELECT e.edge_id AS edge_id, n.node_id AS node_id,\n"); strcat (skeleton, " n.node_code AS node_code,\n"); strcat (skeleton, " 'Unresolved Node reference' AS error_cause\n"); strcat (skeleton, "FROM \"%s\" AS e\n"); strcat (skeleton, "LEFT JOIN \"%s\" AS n ON "); strcat (skeleton, "(e.node_from_code = n.node_code)\n"); strcat (skeleton, "WHERE n.node_id IS NULL\n"); strcat (skeleton, "UNION\n"); strcat (skeleton, "SELECT e.edge_id AS edge_id, n.node_id AS node_id,\n"); strcat (skeleton, " n.node_code AS node_code,\n"); strcat (skeleton, " 'Unresolved Node reference' AS error_cause\n"); strcat (skeleton, "FROM \"%s\" AS e\n"); strcat (skeleton, "LEFT JOIN \"%s\" AS n ON "); strcat (skeleton, "(e.node_to_code = n.node_code)\n"); strcat (skeleton, "WHERE n.node_id IS NULL\n"); sql_statement = sqlite3_mprintf (skeleton, sqlview, sql_edges, sql_nodes, sql_edges, sql_nodes, sql_edges, sql_nodes, sql_edges, sql_nodes); free (sqlview); free (sql_edges); free (sql_nodes); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW '%s' error: %s\n", view, err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_topo_master (sqlite3 * sqlite) { /* creating the topo_master table */ char sql[2048]; int ret; char *err_msg = NULL; /* creating the table */ strcpy (sql, "CREATE TABLE topology_master (\n"); strcat (sql, "nodes TEXT NOT NULL,\n"); strcat (sql, "edges TEXT NOT NULL,\n"); strcat (sql, "faces TEXT NOT NULL,\n"); strcat (sql, "faces_edges TEXT NOT NULL,\n"); strcat (sql, "curves TEXT NOT NULL,\n"); strcat (sql, "surfaces TEXT NOT NULL,\n"); strcat (sql, "check_node_ids TEXT NOT NULL,\n"); strcat (sql, "check_node_geoms TEXT NOT NULL,\n"); strcat (sql, "check_edge_ids TEXT NOT NULL,\n"); strcat (sql, "check_edge_geoms TEXT NOT NULL,\n"); strcat (sql, "check_edge_node_geoms TEXT NOT NULL,\n"); strcat (sql, "check_face_ids TEXT NOT NULL,\n"); strcat (sql, "faces_resolved TEXT NOT NULL,\n"); strcat (sql, "curves_resolved TEXT NOT NULL,\n"); strcat (sql, "surfaces_resolved TEXT NOT NULL,\n"); strcat (sql, "dangling_nodes TEXT NOT NULL,\n"); strcat (sql, "dangling_edges TEXT NOT NULL,\n"); strcat (sql, "check_edges_from_to TEXT NOT NULL,\n"); strcat (sql, "coord_dimension TEXT NOT NULL,\n"); strcat (sql, "srid INTEGER NOT NULL,\n"); strcat (sql, "CONSTRAINT fk_topo_master FOREIGN KEY \n"); strcat (sql, "(srid) REFERENCES spatial_ref_sys (srid))"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE 'topology_master' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int update_topo_master (sqlite3 * sqlite, const char *nodes, const char *edges, const char *faces, const char *faces_edges, const char *curves, const char *surfaces, const char *check_nodes, const char *check_node_geoms, const char *check_edges, const char *check_edge_geoms, const char *check_edge_node_geoms, const char *check_faces, const char *faces_res, const char *curves_res, const char *surfaces_res, const char *dangling_nodes, const char *dangling_edges, const char *check_edges_from_to, int srid, int dims) { /* updating the topo_master table */ char *sql_statement; int ret; char *err_msg = NULL; /* inserting Topology data into MASTER */ sql_statement = sqlite3_mprintf ("INSERT INTO topology_master " "(nodes, edges, faces, faces_edges, curves, surfaces, check_node_ids, " "check_node_geoms, check_edge_ids, check_edge_geoms, check_edge_node_geoms, " "check_face_ids, faces_resolved, curves_resolved, surfaces_resolved, " "dangling_nodes, dangling_edges, check_edges_from_to, coord_dimension, srid) " "VALUES (%Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %d)", nodes, edges, faces, faces_edges, curves, surfaces, check_nodes, check_node_geoms, check_edges, check_edge_geoms, check_edge_node_geoms, check_faces, faces_res, curves_res, surfaces_res, dangling_nodes, dangling_edges, check_edges_from_to, (dims == GAIA_XY_Z) ? "XYZ" : "XY", srid); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("INSERT INTO 'topology_master' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } return 1; } static void fnct_CreateTopologyTables (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CreateTopologyTables(srid, coord_dims) / or / CreateTopologyTables(prefix, srid, coord_dims) / / creates any Topology related table / returns 1 on success / 0 on failure */ const char *prefix = "topo_"; const unsigned char *txt_dims; int srid = -1; int dimension; int dims = -1; char *table_curves; char *table_surfaces; char *table_nodes; char *table_edges; char *table_faces; char *table_faces_edges; char *view_check_node_codes; char *view_check_node_geoms; char *view_check_edge_codes; char *view_check_edge_geoms; char *view_check_edge_node_geoms; char *view_check_face_codes; char *view_faces_resolved; char *view_curves_resolved; char *view_surfaces_resolved; char *view_dangling_nodes; char *view_dangling_edges; char *view_edges_check_from_to; const char *tables[20]; int views[20]; int *p_view; const char **p_tbl; int ok_table; int create_master = 1; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (argc == 3) { if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { spatialite_e ("CreateTopologyTables() error: argument 1 [table_prefix] is not of the String type\n"); sqlite3_result_int (context, 0); return; } prefix = (char *) sqlite3_value_text (argv[0]); if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { spatialite_e ("CreateTopologyTables() error: argument 2 [SRID] is not of the Integer type\n"); sqlite3_result_int (context, 0); return; } srid = sqlite3_value_int (argv[1]); if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { dimension = sqlite3_value_int (argv[2]); if (dimension == 2) dims = GAIA_XY; if (dimension == 3) dims = GAIA_XY_Z; } else if (sqlite3_value_type (argv[2]) == SQLITE_TEXT) { txt_dims = sqlite3_value_text (argv[2]); if (strcasecmp ((char *) txt_dims, "XY") == 0) dims = GAIA_XY; if (strcasecmp ((char *) txt_dims, "XYZ") == 0) dims = GAIA_XY_Z; } else { spatialite_e ("CreateTopologyTables() error: argument 3 [dimension] is not of the Integer or Text type\n"); sqlite3_result_int (context, 0); return; } } else { if (sqlite3_value_type (argv[0]) != SQLITE_INTEGER) { spatialite_e ("CreateTopologyTables() error: argument 1 [SRID] is not of the Integer type\n"); sqlite3_result_int (context, 0); return; } srid = sqlite3_value_int (argv[0]); if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { dimension = sqlite3_value_int (argv[1]); if (dimension == 2) dims = GAIA_XY; if (dimension == 3) dims = GAIA_XY_Z; } else if (sqlite3_value_type (argv[1]) == SQLITE_TEXT) { txt_dims = sqlite3_value_text (argv[1]); if (strcasecmp ((char *) txt_dims, "XY") == 0) dims = GAIA_XY; if (strcasecmp ((char *) txt_dims, "XYZ") == 0) dims = GAIA_XY_Z; } else { spatialite_e ("CreateTopologyTables() error: argument 2 [dimension] is not of the Integer or Text type\n"); sqlite3_result_int (context, 0); return; } } if (dims == GAIA_XY || dims == GAIA_XY_Z) ; else { spatialite_e ("CreateTopologyTables() error: [dimension] ILLEGAL VALUE\n"); sqlite3_result_int (context, 0); return; } if (srid <= 0) { spatialite_e ("CreateTopologyTables() error: [SRID] ILLEGAL VALUE\n"); sqlite3_result_int (context, 0); return; } /* checking Topology tables */ tables[0] = "topology_master"; views[0] = 0; table_curves = sqlite3_mprintf ("%scurves", prefix); tables[1] = table_curves; views[1] = 0; table_surfaces = sqlite3_mprintf ("%ssurfaces", prefix); tables[2] = table_surfaces; views[2] = 0; table_nodes = sqlite3_mprintf ("%snodes", prefix); tables[3] = table_nodes; views[3] = 0; table_edges = sqlite3_mprintf ("%sedges", prefix); tables[4] = table_edges; views[4] = 0; table_faces = sqlite3_mprintf ("%sfaces", prefix); tables[5] = table_faces; views[5] = 0; table_faces_edges = sqlite3_mprintf ("%sfaces_edges", prefix); tables[6] = table_faces_edges; views[6] = 0; view_check_node_codes = sqlite3_mprintf ("%snodes_check_dupl_codes", prefix); tables[7] = view_check_node_codes; views[7] = 1; view_check_node_geoms = sqlite3_mprintf ("%snodes_check_dupl_geoms", prefix); tables[8] = view_check_node_geoms; views[8] = 1; view_check_edge_codes = sqlite3_mprintf ("%sedges_check_dupl_codes", prefix); tables[9] = view_check_edge_codes; views[9] = 1; view_check_edge_geoms = sqlite3_mprintf ("%sedges_check_intersections", prefix); tables[10] = view_check_edge_geoms; views[10] = 1; view_check_edge_node_geoms = sqlite3_mprintf ("%sedges_check_nodes", prefix); tables[11] = view_check_edge_node_geoms; views[11] = 1; view_check_face_codes = sqlite3_mprintf ("%sfaces_check_dupl_codes", prefix); tables[12] = view_check_face_codes; views[12] = 1; view_faces_resolved = sqlite3_mprintf ("%sfaces_resolved", prefix); tables[13] = view_faces_resolved; views[13] = 1; view_curves_resolved = sqlite3_mprintf ("%scurves_resolved", prefix); tables[14] = view_curves_resolved; views[14] = 1; view_surfaces_resolved = sqlite3_mprintf ("%ssurfaces_resolved", prefix); tables[15] = view_surfaces_resolved; views[15] = 1; view_dangling_nodes = sqlite3_mprintf ("%sdangling_nodes", prefix); tables[16] = view_dangling_nodes; views[16] = 1; view_dangling_edges = sqlite3_mprintf ("%sdangling_edges", prefix); tables[17] = view_dangling_edges; views[17] = 1; view_edges_check_from_to = sqlite3_mprintf ("%sedges_check_from_to", prefix); tables[18] = view_edges_check_from_to; views[18] = 1; tables[19] = NULL; p_view = views; p_tbl = tables; while (*p_tbl != NULL) { ok_table = check_topo_table (sqlite, *p_tbl, *p_view); if (ok_table) { if (strcmp (*p_tbl, "topology_master") == 0) create_master = 0; else { spatialite_e ("CreateTopologyTables() error: table '%s' already exists\n", *p_tbl); goto error; } } p_tbl++; p_view++; } /* creating Topology tables */ if (create_master) { if (!create_topo_master (sqlite)) goto error; } if (!create_topo_nodes (sqlite, table_nodes, srid, dims)) goto error; if (!create_topo_edges (sqlite, table_edges, srid, dims)) goto error; if (!create_topo_faces (sqlite, table_faces)) goto error; if (!create_topo_faces_edges (sqlite, table_faces_edges, table_faces)) goto error; if (!create_topo_curves (sqlite, table_curves)) goto error; if (!create_topo_surfaces (sqlite, table_surfaces)) goto error; if (!create_check_node_codes (sqlite, view_check_node_codes, table_nodes)) goto error; if (!create_check_node_geoms (sqlite, view_check_node_geoms, table_nodes)) goto error; if (!create_check_edge_codes (sqlite, view_check_edge_codes, table_edges)) goto error; if (!create_check_edge_geoms (sqlite, view_check_edge_geoms, table_edges)) goto error; if (!create_check_edge_node_geoms (sqlite, view_check_edge_node_geoms, table_edges, table_nodes)) goto error; if (!create_check_face_codes (sqlite, view_check_face_codes, table_faces)) goto error; if (!create_faces_resolved (sqlite, view_faces_resolved, table_faces, table_faces_edges, table_edges)) goto error; if (!create_curves_resolved (sqlite, view_curves_resolved, table_curves, table_edges)) goto error; if (!create_surfaces_resolved (sqlite, view_surfaces_resolved, table_surfaces, view_faces_resolved)) goto error; if (!create_dangling_nodes (sqlite, view_dangling_nodes, table_nodes, table_edges)) goto error; if (!create_dangling_edges (sqlite, view_dangling_edges, table_edges, table_faces_edges, table_curves)) goto error; if (!create_check_edges_from_to (sqlite, view_edges_check_from_to, table_edges, table_nodes)) goto error; if (!update_topo_master (sqlite, table_nodes, table_edges, table_faces, table_faces_edges, table_curves, table_surfaces, view_check_node_codes, view_check_node_geoms, view_check_edge_codes, view_check_edge_geoms, view_check_edge_node_geoms, view_check_face_codes, view_faces_resolved, view_curves_resolved, view_surfaces_resolved, view_dangling_nodes, view_dangling_edges, view_edges_check_from_to, srid, dims)) goto error; updateSpatiaLiteHistory (sqlite, "*** TOPOLOGY ***", NULL, "Topology tables successfully created"); sqlite3_result_int (context, 1); sqlite3_free (table_curves); sqlite3_free (table_surfaces); sqlite3_free (table_nodes); sqlite3_free (table_edges); sqlite3_free (table_faces); sqlite3_free (table_faces_edges); sqlite3_free (view_check_node_codes); sqlite3_free (view_check_node_geoms); sqlite3_free (view_check_edge_codes); sqlite3_free (view_check_edge_geoms); sqlite3_free (view_check_edge_node_geoms); sqlite3_free (view_check_face_codes); sqlite3_free (view_faces_resolved); sqlite3_free (view_curves_resolved); sqlite3_free (view_surfaces_resolved); sqlite3_free (view_dangling_nodes); sqlite3_free (view_dangling_edges); sqlite3_free (view_edges_check_from_to); return; error: sqlite3_result_int (context, 0); sqlite3_free (table_curves); sqlite3_free (table_surfaces); sqlite3_free (table_nodes); sqlite3_free (table_edges); sqlite3_free (table_faces); sqlite3_free (table_faces_edges); sqlite3_free (view_check_node_codes); sqlite3_free (view_check_node_geoms); sqlite3_free (view_check_edge_codes); sqlite3_free (view_check_edge_geoms); sqlite3_free (view_check_edge_node_geoms); sqlite3_free (view_check_face_codes); sqlite3_free (view_faces_resolved); sqlite3_free (view_curves_resolved); sqlite3_free (view_surfaces_resolved); sqlite3_free (view_dangling_nodes); sqlite3_free (view_dangling_edges); sqlite3_free (view_edges_check_from_to); return; } static void fnct_OffsetCurve (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / OffsetCurve(BLOBencoded geometry, radius, left-or-right-side) / / returns a new geometry representing the OFFSET-CURVE for current geometry / [a LINESTRING is expected] / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; double radius; int int_value; int left_right; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) radius = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); radius = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) left_right = sqlite3_value_int (argv[2]); else { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { result = gaiaOffsetCurve (geo, radius, 16, left_right); if (!result) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo); } static void fnct_SingleSidedBuffer (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / SingleSidedBuffer(BLOBencoded geometry, radius, left-or-right-side) / / returns a new geometry representing the SingleSided BUFFER / for current geometry [a LINESTRING is expected] / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; double radius; int int_value; int left_right; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) radius = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); radius = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) left_right = sqlite3_value_int (argv[2]); else { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { result = gaiaSingleSidedBuffer (geo, radius, 16, left_right); if (!result) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo); } static void fnct_HausdorffDistance (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / HausdorffDistance(BLOBencoded geom1, BLOBencoded geom2) / / returns the discrete Hausdorff distance between GEOM-1 and GEOM-2 */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; double dist; int ret; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo1 || !geo2) sqlite3_result_null (context); else { ret = gaiaHausdorffDistance (geo1, geo2, &dist); if (!ret) sqlite3_result_null (context); sqlite3_result_double (context, dist); } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void fnct_SharedPaths (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / SharedPaths(BLOBencoded geometry1, BLOBencoded geometry2) / / returns a new geometry representing common (shared) Edges / [two LINESTRINGs/MULTILINESTRINGs are expected] / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; gaiaGeomCollPtr result; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (geo1 == NULL || geo2 == NULL) sqlite3_result_null (context); else { result = gaiaSharedPaths (geo1, geo2); if (!result) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = geo1->Srid; gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void fnct_Covers (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Covers(BLOBencoded geom1, BLOBencoded geom2) / / returns: / 1 if GEOM-1 "spatially covers" GEOM-2 / 0 otherwise / or -1 if any error is encountered */ unsigned char *blob1; unsigned char *blob2; int bytes1; int bytes2; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; int ret; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } blob1 = (unsigned char *) sqlite3_value_blob (argv[0]); bytes1 = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkb (blob1, bytes1); blob2 = (unsigned char *) sqlite3_value_blob (argv[1]); bytes2 = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkb (blob2, bytes2); if (!geo1 || !geo2) sqlite3_result_int (context, -1); else { ret = gaiaGeomCollPreparedCovers (sqlite3_user_data (context), geo1, blob1, bytes1, geo2, blob2, bytes2); sqlite3_result_int (context, ret); } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void fnct_CoveredBy (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CoveredBy(BLOBencoded geom1, BLOBencoded geom2) / / returns: / 1 if GEOM-1 is "spatially covered by" GEOM-2 / 0 otherwise / or -1 if any error is encountered */ unsigned char *blob1; unsigned char *blob2; int bytes1; int bytes2; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; int ret; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } blob1 = (unsigned char *) sqlite3_value_blob (argv[0]); bytes1 = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkb (blob1, bytes1); blob2 = (unsigned char *) sqlite3_value_blob (argv[1]); bytes2 = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkb (blob2, bytes2); if (!geo1 || !geo2) sqlite3_result_int (context, -1); else { ret = gaiaGeomCollPreparedCoveredBy (sqlite3_user_data (context), geo1, blob1, bytes1, geo2, blob2, bytes2); sqlite3_result_int (context, ret); } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void fnct_LineInterpolatePoint (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / LineInterpolatePoint(BLOBencoded geometry1, double fraction) / / returns a new geometry representing a point interpolated along a line / [a LINESTRING is expected / fraction ranging from 0.0 to 1.0] / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int int_value; double fraction; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) fraction = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); fraction = int_value; } else { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (geo == NULL) sqlite3_result_null (context); else { result = gaiaLineInterpolatePoint (geo, fraction); if (!result) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo); } static void fnct_LineInterpolateEquidistantPoints (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / LineInterpolateEquidistantPointS(BLOBencoded geometry1, double distance) / / returns a new geometry representing a point interpolated along a line / [a LINESTRING is expected / fraction ranging from 0.0 to 1.0] / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int int_value; double distance; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) distance = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); distance = int_value; } else { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (geo == NULL) sqlite3_result_null (context); else { result = gaiaLineInterpolateEquidistantPoints (geo, distance); if (!result) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo); } static void fnct_LineLocatePoint (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / LineLocatePoint(BLOBencoded geometry1, BLOBencoded geometry2) / / return a number (between 0.0 and 1.0) representing the location / of the closest point on LineString to the given Point, as a fraction / of total 2d line length / / - geom1 is expected to represent some LINESTRING / - geom2 is expected to represent some POINT */ unsigned char *p_blob; int n_bytes; double fraction; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (geo1 == NULL || geo2 == NULL) sqlite3_result_null (context); else { fraction = gaiaLineLocatePoint (geo1, geo2); if (fraction >= 0.0 && fraction <= 1.0) sqlite3_result_double (context, fraction); else sqlite3_result_null (context); } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void fnct_LineSubstring (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / LineSubstring(BLOBencoded geometry1, double start_fraction, double end_fraction) / / Return a Linestring being a substring of the input one starting and ending at / the given fractions of total 2d length [fractions ranging from 0.0 to 1.0] / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int int_value; double fraction1; double fraction2; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) fraction1 = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); fraction1 = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) fraction2 = sqlite3_value_double (argv[2]); else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); fraction2 = int_value; } else { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (geo == NULL) sqlite3_result_null (context); else { result = gaiaLineSubstring (geo, fraction1, fraction2); if (!result) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo); } static void fnct_ClosestPoint (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ClosestPoint(BLOBencoded geometry1, BLOBencoded geometry2) / / Returns the Point on geom1 that is closest to geom2 / NULL is returned for invalid arguments (or if distance is ZERO) */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; gaiaGeomCollPtr result; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (geo1 == NULL || geo2 == NULL) sqlite3_result_null (context); else { result = gaiaShortestLine (geo1, geo2); if (result == NULL) sqlite3_result_null (context); else if (result->FirstLinestring == NULL) { gaiaFreeGeomColl (result); sqlite3_result_null (context); } else { /* builds the BLOB geometry to be returned */ double x; double y; double z; double m; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr pt = NULL; gaiaLinestringPtr ln = result->FirstLinestring; if (ln->DimensionModel == GAIA_XY_Z) pt = gaiaAllocGeomCollXYZ (); else if (ln->DimensionModel == GAIA_XY_M) pt = gaiaAllocGeomCollXYM (); else if (ln->DimensionModel == GAIA_XY_Z_M) pt = gaiaAllocGeomCollXYZM (); else pt = gaiaAllocGeomColl (); if (ln->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, 0, &x, &y, &z); gaiaAddPointToGeomCollXYZ (pt, x, y, z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, 0, &x, &y, &m); gaiaAddPointToGeomCollXYM (pt, x, y, m); } else if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, 0, &x, &y, &z, &m); gaiaAddPointToGeomCollXYZM (pt, x, y, z, m); } else { gaiaGetPoint (ln->Coords, 0, &x, &y); gaiaAddPointToGeomColl (pt, x, y); } pt->Srid = geo1->Srid; gaiaToSpatiaLiteBlobWkb (pt, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); gaiaFreeGeomColl (pt); } } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void fnct_ShortestLine (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ShortestLine(BLOBencoded geometry1, BLOBencoded geometry2) / / Returns the shortest line between two geometries / NULL is returned for invalid arguments (or if distance is ZERO) */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; gaiaGeomCollPtr result; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (geo1 == NULL || geo2 == NULL) sqlite3_result_null (context); else { result = gaiaShortestLine (geo1, geo2); sqlite3_result_null (context); if (!result) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = geo1->Srid; gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void fnct_Snap (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Snap(BLOBencoded geometry1, BLOBencoded geometry2, double tolerance) / / Returns a new Geometry corresponding to geom1 snapped to geom2 / and using the given tolerance / NULL is returned for invalid arguments (or if distance is ZERO) */ unsigned char *p_blob; int n_bytes; int int_value; double tolerance; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; gaiaGeomCollPtr result; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) tolerance = sqlite3_value_double (argv[2]); else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); tolerance = int_value; } else { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (geo1 == NULL || geo2 == NULL) sqlite3_result_null (context); else { result = gaiaSnap (geo1, geo2, tolerance); if (result == NULL) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = geo1->Srid; gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void fnct_LineMerge (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / LineMerge(BLOBencoded geometry) / / Assuming that Geometry represents a set of sparse Linestrings, / this function will attempt to reassemble a single line / (or a set of lines) / NULL is returned for invalid arguments */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (geo == NULL) sqlite3_result_null (context); else { result = gaiaLineMerge (geo); if (result == NULL) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo); } static void fnct_UnaryUnion (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / UnaryUnion(BLOBencoded geometry) / / exactly like Union, but using a single Collection / NULL is returned for invalid arguments */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (geo == NULL) sqlite3_result_null (context); else { result = gaiaUnaryUnion (geo); if (result == NULL) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo); } static void fnct_SquareGrid (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ST_SquareGrid(BLOBencoded geom, double size) / ST_SquareGrid(BLOBencoded geom, double size, boolean edges_only) / ST_SquareGrid(BLOBencoded geom, double size, boolean edges_only, BLOBencoded origin) / / Builds a regular grid (Square cells) covering the geom. / each cell has the edges's length as defined by the size argument / an arbitrary origin is supported (0,0 is assumed by default) / return NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int int_value; double origin_x = 0.0; double origin_y = 0.0; double size; int edges_only = 0; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr point = NULL; gaiaGeomCollPtr result = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); size = int_value; } else if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) { size = sqlite3_value_double (argv[1]); } else { sqlite3_result_null (context); return; } if (size <= 0.0) { /* negative side size */ sqlite3_result_null (context); return; } if (argc >= 3) { if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) edges_only = sqlite3_value_int (argv[2]); else { sqlite3_result_null (context); return; } } if (argc == 4) { if (sqlite3_value_type (argv[3]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[3]); n_bytes = sqlite3_value_bytes (argv[3]); point = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!point) { sqlite3_result_null (context); return; } if (point->FirstLinestring != NULL) goto no_point; if (point->FirstPolygon != NULL) goto no_point; if (point->FirstPoint != NULL) { if (point->FirstPoint == point->LastPoint) { origin_x = point->FirstPoint->X; origin_y = point->FirstPoint->Y; gaiaFreeGeomColl (point); } else goto no_point; } else goto no_point; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { if (geo->FirstPoint != NULL) goto no_polygon; if (geo->FirstLinestring != NULL) goto no_polygon; if (geo->FirstPolygon == NULL) goto no_polygon; result = gaiaSquareGrid (geo, origin_x, origin_y, size, edges_only); if (result == NULL) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo); return; no_point: gaiaFreeGeomColl (point); sqlite3_result_null (context); return; no_polygon: gaiaFreeGeomColl (geo); sqlite3_result_null (context); return; } static void fnct_TriangularGrid (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ST_TriangularGrid(BLOBencoded geom, double size) / ST_TriangularGrid(BLOBencoded geom, double size, boolean edges_only) / ST_TriangularGrid(BLOBencoded geom, double size, boolean edges_only, BLOBencoded origin) / / Builds a regular grid (Triangular cells) covering the geom. / each cell has the edge's length as defined by the size argument / an arbitrary origin is supported (0,0 is assumed by default) / return NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int int_value; double origin_x = 0.0; double origin_y = 0.0; double size; int edges_only = 0; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr point = NULL; gaiaGeomCollPtr result = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); size = int_value; } else if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) { size = sqlite3_value_double (argv[1]); } else { sqlite3_result_null (context); return; } if (size <= 0.0) { /* negative side size */ sqlite3_result_null (context); return; } if (argc >= 3) { if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) edges_only = sqlite3_value_int (argv[2]); else { sqlite3_result_null (context); return; } } if (argc == 4) { if (sqlite3_value_type (argv[3]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[3]); n_bytes = sqlite3_value_bytes (argv[3]); point = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!point) { sqlite3_result_null (context); return; } if (point->FirstLinestring != NULL) goto no_point; if (point->FirstPolygon != NULL) goto no_point; if (point->FirstPoint != NULL) { if (point->FirstPoint == point->LastPoint) { origin_x = point->FirstPoint->X; origin_y = point->FirstPoint->Y; gaiaFreeGeomColl (point); } else goto no_point; } else goto no_point; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { if (geo->FirstPoint != NULL) goto no_polygon; if (geo->FirstLinestring != NULL) goto no_polygon; if (geo->FirstPolygon == NULL) goto no_polygon; result = gaiaTriangularGrid (geo, origin_x, origin_y, size, edges_only); if (result == NULL) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo); return; no_point: gaiaFreeGeomColl (point); sqlite3_result_null (context); return; no_polygon: gaiaFreeGeomColl (geo); sqlite3_result_null (context); return; } static void fnct_HexagonalGrid (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ST_HexagonalGrid(BLOBencoded geom, double size) / ST_HexagonalGrid(BLOBencoded geom, double size, boolean edges_only) / ST_HexagonalGrid(BLOBencoded geom, double size, boolean edges_only, BLOBencoded origin) / / Builds a regular grid (Hexagonal cells) covering the geom. / each cell has the edges's length as defined by the size argument / an arbitrary origin is supported (0,0 is assumed by default) / return NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int int_value; double origin_x = 0.0; double origin_y = 0.0; double size; int edges_only = 0; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr point = NULL; gaiaGeomCollPtr result = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); size = int_value; } else if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) { size = sqlite3_value_double (argv[1]); } else { sqlite3_result_null (context); return; } if (size <= 0.0) { /* negative side size */ sqlite3_result_null (context); return; } if (argc >= 3) { if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) edges_only = sqlite3_value_int (argv[2]); else { sqlite3_result_null (context); return; } } if (argc == 4) { if (sqlite3_value_type (argv[3]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[3]); n_bytes = sqlite3_value_bytes (argv[3]); point = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!point) { sqlite3_result_null (context); return; } if (point->FirstLinestring != NULL) goto no_point; if (point->FirstPolygon != NULL) goto no_point; if (point->FirstPoint != NULL) { if (point->FirstPoint == point->LastPoint) { origin_x = point->FirstPoint->X; origin_y = point->FirstPoint->Y; gaiaFreeGeomColl (point); } else goto no_point; } else goto no_point; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { if (geo->FirstPoint != NULL) goto no_polygon; if (geo->FirstLinestring != NULL) goto no_polygon; if (geo->FirstPolygon == NULL) goto no_polygon; result = gaiaHexagonalGrid (geo, origin_x, origin_y, size, edges_only); if (result == NULL) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo); return; no_point: gaiaFreeGeomColl (point); sqlite3_result_null (context); return; no_polygon: gaiaFreeGeomColl (geo); sqlite3_result_null (context); return; } static void fnct_LinesCutAtNodes (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / LinesCutAtNodes(BLOBencoded geometry1, BLOBencoded geometry2) / / Assuming that Geometry-1 represents a set of arbitray Linestrings, / and that Geometry-2 represents of arbitrary Points, this function / will then attempt to cut lines accordingly to given nodes. / NULL is returned for invalid arguments */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geom1 = NULL; gaiaGeomCollPtr geom2 = NULL; gaiaGeomCollPtr result; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geom1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); geom2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (geom1 == NULL || geom2 == NULL) { if (geom1) gaiaFreeGeomColl (geom1); if (geom2) gaiaFreeGeomColl (geom2); sqlite3_result_null (context); return; } result = gaiaLinesCutAtNodes (geom1, geom2); if (result == NULL) { sqlite3_result_null (context); } else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = geom1->Srid; gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } gaiaFreeGeomColl (geom1); gaiaFreeGeomColl (geom2); } static int cmp_pt_coords (const void *p1, const void *p2) { /* compares two nodes by ID [for QSORT] */ gaiaPointPtr pt1 = *((gaiaPointPtr *) p1); gaiaPointPtr pt2 = *((gaiaPointPtr *) p2); if (pt1->X == pt2->X && pt1->Y == pt2->Y && pt1->Z == pt2->Z) return 0; if (pt1->X > pt2->X) return 1; if (pt1->X == pt2->X && pt1->Y > pt2->Y) return 1; if (pt1->X == pt2->X && pt1->Y == pt2->Y && pt1->Z > pt2->Z) return 1; return -1; } static gaiaGeomCollPtr auxPolygNodes (gaiaGeomCollPtr geom) { /* attempting to identify Ring-Nodes */ gaiaGeomCollPtr result = NULL; gaiaPolygonPtr pg; gaiaRingPtr rng; gaiaPointPtr pt; gaiaPointPtr prev_pt; gaiaPointPtr *sorted = NULL; int count = 0; int iv; int ib; double x; double y; double z; double m; /* inserting all Points into a Dynamic Line */ gaiaDynamicLinePtr dyn = gaiaAllocDynamicLine (); pg = geom->FirstPolygon; while (pg) { rng = pg->Exterior; /* CAVEAT: first point needs to be skipped (closed ring) */ for (iv = 1; iv < rng->Points; iv++) { /* exterior ring */ if (geom->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); gaiaAppendPointZToDynamicLine (dyn, x, y, z); } else if (geom->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); gaiaAppendPointMToDynamicLine (dyn, x, y, m); } else if (geom->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); gaiaAppendPointZMToDynamicLine (dyn, x, y, z, m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); gaiaAppendPointToDynamicLine (dyn, x, y); } } for (ib = 0; ib < pg->NumInteriors; ib++) { rng = pg->Interiors + ib; /* CAVEAT: first point needs to be skipped (closed ring) */ for (iv = 1; iv < rng->Points; iv++) { /* interior ring */ if (geom->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); gaiaAppendPointZToDynamicLine (dyn, x, y, z); } else if (geom->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); gaiaAppendPointMToDynamicLine (dyn, x, y, m); } else if (geom->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); gaiaAppendPointZMToDynamicLine (dyn, x, y, z, m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); gaiaAppendPointToDynamicLine (dyn, x, y); } } } pg = pg->Next; } pt = dyn->First; while (pt) { /* counting how many points */ count++; pt = pt->Next; } if (count == 0) { gaiaFreeDynamicLine (dyn); return NULL; } /* allocating and initializing an array of pointers */ sorted = malloc (sizeof (gaiaPointPtr) * count); iv = 0; pt = dyn->First; while (pt) { *(sorted + iv++) = pt; pt = pt->Next; } /* sorting points by coords */ qsort (sorted, count, sizeof (gaiaPointPtr), cmp_pt_coords); if (geom->DimensionModel == GAIA_XY_Z) result = gaiaAllocGeomCollXYZ (); else if (geom->DimensionModel == GAIA_XY_M) result = gaiaAllocGeomCollXYM (); else if (geom->DimensionModel == GAIA_XY_Z_M) result = gaiaAllocGeomCollXYZM (); else result = gaiaAllocGeomColl (); result->Srid = geom->Srid; /* identifying nodes */ prev_pt = NULL; for (iv = 0; iv < count; iv++) { pt = *(sorted + iv); if (prev_pt != NULL) { if (prev_pt->X == pt->X && prev_pt->Y == pt->Y && prev_pt->Z == pt->Z) { if (result->LastPoint != NULL) { if (result->LastPoint->X == pt->X && result->LastPoint->Y == pt->Y && result->LastPoint->Z == pt->Z) continue; } /* Node found */ if (result->DimensionModel == GAIA_XY_Z) gaiaAddPointToGeomCollXYZ (result, pt->X, pt->Y, pt->Z); else if (result->DimensionModel == GAIA_XY_M) gaiaAddPointToGeomCollXYM (result, pt->X, pt->Y, pt->M); else if (result->DimensionModel == GAIA_XY_Z_M) gaiaAddPointToGeomCollXYZM (result, pt->X, pt->Y, pt->Z, pt->M); else gaiaAddPointToGeomColl (result, pt->X, pt->Y); } } prev_pt = pt; } if (result->FirstPoint == NULL) { gaiaFreeGeomColl (result); result = NULL; } free (sorted); gaiaFreeDynamicLine (dyn); return result; } static void fnct_RingsCutAtNodes (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / RingsCutAtNodes(BLOBencoded geometry) / / This function will attempt to return a collection of lines / representing Polygon/Rings: the input geometry is expected / to be a Polygon or MultiPolygon. / Each Ring will be cut accordingly to any identified "node" / i.e. self-intersections or intersections between two Rings. / / NULL is returned for invalid arguments */ int pts = 0; int lns = 0; int pgs = 0; unsigned char *p_blob; int n_bytes; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; gaiaGeomCollPtr geom = NULL; gaiaGeomCollPtr geom1 = NULL; gaiaGeomCollPtr geom2 = NULL; gaiaGeomCollPtr result; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geom = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (geom == NULL) { sqlite3_result_null (context); return; } /* checking if Geometry is a Polygon or MultiPolyhon */ pt = geom->FirstPoint; while (pt) { pts++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { lns++; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { pgs++; pg = pg->Next; } if (pts > 0 || lns > 0 || pgs == 0) { /* not Polygon/MultiPolygon */ gaiaFreeGeomColl (geom); sqlite3_result_null (context); return; } /* transforming Rings into Linestrings */ geom1 = gaiaLinearize (geom, 1); if (geom1 == NULL) { gaiaFreeGeomColl (geom); sqlite3_result_null (context); return; } /* identifying the Nodes */ geom2 = auxPolygNodes (geom); if (geom2 == NULL) { /* there is no need to cut any Ring [no Nodes] */ int len; unsigned char *p_result = NULL; geom1->Srid = geom->Srid; gaiaToSpatiaLiteBlobWkb (geom1, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (geom); gaiaFreeGeomColl (geom1); return; } /* attempting to cut Rings */ result = gaiaLinesCutAtNodes (geom1, geom2); if (result == NULL) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = geom->Srid; gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } gaiaFreeGeomColl (geom); gaiaFreeGeomColl (geom1); gaiaFreeGeomColl (geom2); } #endif /* end GEOS advanced features */ #ifdef GEOS_TRUNK /* GEOS experimental features */ static void fnct_DelaunayTriangulation (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / DelaunayTriangulation(BLOBencoded geometry) / DelaunayTriangulation(BLOBencoded geometry, boolean onlyEdges) / DelaunayTriangulation(BLOBencoded geometry, boolean onlyEdges, double tolerance) / / Attempts to build a Delaunay Triangulation using all points/vertices / found in the input geometry. / NULL is returned for invalid arguments */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; int int_value; double tolerance = 0.0; int only_edges = 0; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (argc >= 2) { if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) only_edges = sqlite3_value_int (argv[1]); else { sqlite3_result_null (context); return; } } if (argc == 3) { if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) tolerance = sqlite3_value_double (argv[2]); else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); tolerance = int_value; } else { sqlite3_result_null (context); return; } } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (geo == NULL) sqlite3_result_null (context); else { result = gaiaDelaunayTriangulation (geo, tolerance, only_edges); if (result == NULL) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo); } static void fnct_VoronojDiagram (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / VoronojDiagram(BLOBencoded geometry) / VoronojDiagram(BLOBencoded geometry, boolean onlyEdges) / VoronojDiagram(BLOBencoded geometry, boolean onlyEdges, / double extra_frame_size) / VoronojDiagram(BLOBencoded geometry, boolean onlyEdges, / double extra_frame_size, double tolerance) / / Attempts to build a Voronoj Diagram using all points/vertices / found in the input geometry. / NULL is returned for invalid arguments */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; int int_value; double tolerance = 0.0; double extra_frame_size = -1.0; int only_edges = 0; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (argc >= 2) { if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) only_edges = sqlite3_value_int (argv[1]); else { sqlite3_result_null (context); return; } } if (argc >= 3) { if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) extra_frame_size = sqlite3_value_double (argv[2]); else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); extra_frame_size = int_value; } else { sqlite3_result_null (context); return; } } if (argc == 4) { if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) tolerance = sqlite3_value_double (argv[3]); else if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[3]); tolerance = int_value; } else { sqlite3_result_null (context); return; } } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (geo == NULL) sqlite3_result_null (context); else { result = gaiaVoronojDiagram (geo, extra_frame_size, tolerance, only_edges); if (result == NULL) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo); } static void fnct_ConcaveHull (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ConcaveHull(BLOBencoded geometry) / ConcaveHull(BLOBencoded geometry, double factor) / ConcaveHull(BLOBencoded geometry, double factor, boolean allow_holes) / ConcaveHull(BLOBencoded geometry, double factor, / boolean allow_holes, double tolerance) / / Attempts to build a ConcaveHull using all points/vertices / found in the input geometry. / NULL is returned for invalid arguments */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; int int_value; double tolerance = 0.0; double factor = 3.0; int allow_holes = 0; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (argc >= 2) { if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) factor = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); factor = int_value; } else { sqlite3_result_null (context); return; } } if (argc >= 3) { if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) allow_holes = sqlite3_value_int (argv[2]); else { sqlite3_result_null (context); return; } } if (argc == 4) { if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) tolerance = sqlite3_value_double (argv[3]); else if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[3]); tolerance = int_value; } else { sqlite3_result_null (context); return; } } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (geo == NULL) sqlite3_result_null (context); else { result = gaiaConcaveHull (geo, factor, tolerance, allow_holes); if (result == NULL) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo); } #endif /* end GEOS experimental features */ #ifdef ENABLE_LWGEOM /* enabling LWGEOM support */ static void fnct_MakeValid (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / MakeValid(BLOBencoded geometry) / / Attempts to make an invalid geometry valid without loosing vertices. / NULL is returned for invalid arguments */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (geo == NULL) sqlite3_result_null (context); else { result = gaiaMakeValid (geo); if (result == NULL) { char *msg; const char *lw_err = gaiaGetLwGeomErrorMsg (); if (lw_err) msg = sqlite3_mprintf ("MakeValid error - LWGEOM reports: %s\n", lw_err); else msg = sqlite3_mprintf ("MakeValid error - LWGEOM reports: Unknown Reason\n"); sqlite3_result_error (context, msg, strlen (msg)); sqlite3_free (msg); } else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo); } static void fnct_MakeValidDiscarded (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / MakeValidDiscarded(BLOBencoded geometry) / / Strictly related to MakeValid(); useful to collect any offending item / discarded during the validation process. / NULL is returned for invalid arguments (or if no discarded items are found) */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (geo == NULL) sqlite3_result_null (context); else { result = gaiaMakeValidDiscarded (geo); if (result == NULL) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo); } static void fnct_Segmentize (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Segmentize(BLOBencoded geometry, double dist) / / Ensure every segment is at most 'dist' long / NULL is returned for invalid arguments */ unsigned char *p_blob; int n_bytes; int int_value; double dist; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) dist = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); dist = int_value; } else { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (geo == NULL) sqlite3_result_null (context); else { result = gaiaSegmentize (geo, dist); if (result == NULL) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo); } static void fnct_Split (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Split(BLOBencoded input, BLOBencoded blade) / / Returns a collection of geometries resulting by splitting a geometry / NULL is returned for invalid arguments */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr input = NULL; gaiaGeomCollPtr blade = NULL; gaiaGeomCollPtr result; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); input = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (input == NULL) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); blade = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (blade == NULL) { gaiaFreeGeomColl (input); sqlite3_result_null (context); return; } else { result = gaiaSplit (input, blade); if (result == NULL) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = input->Srid; gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (input); gaiaFreeGeomColl (blade); } static void fnct_SplitLeft (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / SplitLeft(BLOBencoded input, BLOBencoded blade) / / Returns a collection of geometries resulting by splitting a geometry [left half] / NULL is returned for invalid arguments */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr input = NULL; gaiaGeomCollPtr blade = NULL; gaiaGeomCollPtr result; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); input = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (input == NULL) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); blade = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (blade == NULL) { gaiaFreeGeomColl (input); sqlite3_result_null (context); return; } else { result = gaiaSplitLeft (input, blade); if (result == NULL) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = input->Srid; gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (input); gaiaFreeGeomColl (blade); } static void fnct_SplitRight (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / SplitRight(BLOBencoded input, BLOBencoded blade) / / Returns a collection of geometries resulting by splitting a geometry [right half] / NULL is returned for invalid arguments */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr input = NULL; gaiaGeomCollPtr blade = NULL; gaiaGeomCollPtr result; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); input = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (input == NULL) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); blade = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (blade == NULL) { gaiaFreeGeomColl (input); sqlite3_result_null (context); return; } else { result = gaiaSplitRight (input, blade); if (result == NULL) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = input->Srid; gaiaToSpatiaLiteBlobWkb (result, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (input); gaiaFreeGeomColl (blade); } static int getXYSinglePoint (gaiaGeomCollPtr geom, double *x, double *y) { /* check if this geometry is a simple Point (returning 2D coords) */ double z; double m; return getXYZMSinglePoint (geom, x, y, &z, &m); } static void fnct_Azimuth (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Azimuth(BLOBencoded pointA, BLOBencoded pointB) / / Returns the angle in radians from the horizontal of the vector / defined by pointA and pointB. / Angle is computed clockwise from down-to-up: on the clock: / 12=0; 3=PI/2; 6=PI; 9=3PI/2. / NULL is returned for invalid arguments */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geom; double x1; double y1; double x2; double y2; double a; double b; double rf; double azimuth; int srid; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } /* retrieving and validating the first point */ p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geom = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (geom == NULL) { sqlite3_result_null (context); return; } if (!getXYSinglePoint (geom, &x1, &y1)) { gaiaFreeGeomColl (geom); sqlite3_result_null (context); return; } srid = geom->Srid; gaiaFreeGeomColl (geom); /* retrieving and validating the second point */ p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); geom = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (geom == NULL) { sqlite3_result_null (context); return; } if (!getXYSinglePoint (geom, &x2, &y2)) { gaiaFreeGeomColl (geom); sqlite3_result_null (context); return; } gaiaFreeGeomColl (geom); if (getEllipsoidParams (sqlite, srid, &a, &b, &rf)) { if (gaiaEllipsoidAzimuth (x1, y1, x2, y2, a, b, &azimuth)) sqlite3_result_double (context, azimuth); else sqlite3_result_null (context); return; } if (gaiaAzimuth (x1, y1, x2, y2, &azimuth)) sqlite3_result_double (context, azimuth); else sqlite3_result_null (context); } static void fnct_Project (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Project(BLOBencoded point, distance Double, bearing Double) / / Returns a new Point projected from a start point given a / distance and a bearing. / - Point is expected to be Long/Lat / - Distance is in meters / - Bearing is in radians; on the clock: / 12=0; 3=PI/2; 6=PI; 9=3PI/2. / NULL is returned for invalid arguments */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geom; double x1; double y1; double x2; double y2; int ival; double distance; double azimuth; double a; double b; double rf; int srid; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) distance = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[1]); distance = ival; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) azimuth = sqlite3_value_double (argv[2]); else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[2]); azimuth = ival; } else { sqlite3_result_null (context); return; } /* retrieving and validating the start point */ p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geom = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (geom == NULL) { sqlite3_result_null (context); return; } if (!getXYSinglePoint (geom, &x1, &y1)) { gaiaFreeGeomColl (geom); sqlite3_result_null (context); return; } srid = geom->Srid; gaiaFreeGeomColl (geom); if (!getEllipsoidParams (sqlite, srid, &a, &b, &rf)) { sqlite3_result_null (context); return; } if (distance == 0.0) { /* returning the Start Point */ gaiaMakePoint (x1, y1, srid, &p_blob, &n_bytes); if (!p_blob) sqlite3_result_null (context); else sqlite3_result_blob (context, p_blob, n_bytes, free); return; } if (gaiaProjectedPoint (x1, y1, a, b, distance, azimuth, &x2, &y2)) { gaiaMakePoint (x2, y2, srid, &p_blob, &n_bytes); if (!p_blob) sqlite3_result_null (context); else sqlite3_result_blob (context, p_blob, n_bytes, free); } else sqlite3_result_null (context); } static void fnct_GeoHash (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / GeoHash(BLOBencoded geom) / GeoHash(BLOBencoded geom, Integer precision) / / Returns a GeoHash representation for input geometry / (expected to be in longitude/latitude coords) / NULL is returned for invalid arguments */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geom; int precision = 0; char *geo_hash; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (argc == 2) { if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) precision = sqlite3_value_int (argv[1]); else { sqlite3_result_null (context); return; } } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geom = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (geom == NULL) { sqlite3_result_null (context); return; } geo_hash = gaiaGeoHash (geom, precision); if (geo_hash != NULL) { int len = strlen (geo_hash); sqlite3_result_text (context, geo_hash, len, free); } else sqlite3_result_null (context); gaiaFreeGeomColl (geom); } static char * get_srs_by_srid (sqlite3 * sqlite, int srid, int longsrs) { /* retrieves the short- or long- srs reference for the given srid */ char sql[1024]; int ret; const char *name; int i; char **results; int rows; int columns; int len; char *srs = NULL; if (longsrs) sprintf (sql, "SELECT 'urn:ogc:def:crs:' || auth_name || '::' || auth_srid " "FROM spatial_ref_sys WHERE srid = %d", srid); else sprintf (sql, "SELECT auth_name || ':' || auth_srid " "FROM spatial_ref_sys WHERE srid = %d", srid); ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL); if (ret != SQLITE_OK) return NULL; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 0]; len = strlen (name); srs = malloc (len + 1); strcpy (srs, name); } } sqlite3_free_table (results); return srs; } static void fnct_AsX3D (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / AsX3D(BLOBencoded geom) / AsX3D(BLOBencoded geom, Integer precision) / AsX3D(BLOBencoded geom, Integer precision, Integer options) / AsX3D(BLOBencoded geom, Integer precision, Integer options, Text refid) / / Returns an X3D representation for input geometry / NULL is returned for invalid arguments */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geom; int precision = 15; int options = 0; const char *refid = ""; char *srs = NULL; char *x3d; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (argc >= 2) { if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) precision = sqlite3_value_int (argv[1]); else { sqlite3_result_null (context); return; } } if (argc >= 3) { if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) options = sqlite3_value_int (argv[2]); else { sqlite3_result_null (context); return; } } if (argc == 4) { if (sqlite3_value_type (argv[3]) == SQLITE_TEXT) refid = (const char *) sqlite3_value_text (argv[3]); else { sqlite3_result_null (context); return; } } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geom = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (geom == NULL) { sqlite3_result_null (context); return; } if (geom->Srid > 0) { int longshort = 0; if (options & 1) longshort = 1; srs = get_srs_by_srid (sqlite, geom->Srid, longshort); } x3d = gaiaAsX3D (geom, srs, precision, options, refid); if (x3d != NULL) { int len = strlen (x3d); sqlite3_result_text (context, x3d, len, free); } else sqlite3_result_null (context); gaiaFreeGeomColl (geom); if (srs) free (srs); } static void fnct_3DDistance (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / 3DDistance(BLOBencoded geom1, BLOBencoded geom2) / / returns the 3D distance between GEOM-1 and GEOM-2 */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; double dist; int ret; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo1 || !geo2) sqlite3_result_null (context); else { ret = gaia3DDistance (geo1, geo2, &dist); if (!ret) sqlite3_result_null (context); else sqlite3_result_double (context, dist); } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void fnct_MaxDistance (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / MaxDistance(BLOBencoded geom1, BLOBencoded geom2) / / returns the max 2D distance between GEOM-1 and GEOM-2 */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; double dist; int ret; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo1 || !geo2) sqlite3_result_null (context); else { ret = gaiaMaxDistance (geo1, geo2, &dist); if (!ret) sqlite3_result_null (context); else sqlite3_result_double (context, dist); } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void fnct_3DMaxDistance (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / 3DMaxDistance(BLOBencoded geom1, BLOBencoded geom2) / / returns the max 3D distance between GEOM-1 and GEOM-2 */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; double dist; int ret; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo1 || !geo2) sqlite3_result_null (context); else { ret = gaia3DMaxDistance (geo1, geo2, &dist); if (!ret) sqlite3_result_null (context); else sqlite3_result_double (context, dist); } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } #endif /* end LWGEOM support */ #endif /* end including GEOS */ static int text2double (const unsigned char *str, double *val) { /* checks for a valid number, eventually returning a DOUBLE */ int err = 0; int sign = 0; int decimal = 0; int exp = 0; int expsign = 0; const unsigned char *p = str; while (*p != '\0') { switch (*p) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': break; case '-': case '+': if (!exp) sign++; else expsign++; case '.': decimal++; break; case 'e': case 'E': exp++; break; default: err = 1; break; }; p++; } if (sign > 1 || expsign > 1 || decimal > 1 || (exp == 0 && expsign > 0)) err = 1; if (err) return 0; *val = atof ((const char *) str); return 1; } static void fnct_CastToInteger (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CastToInteger(generic value) / / returns an INTEGER value [if conversion is possible] / or NULL in any other case */ GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { sqlite3_int64 val = sqlite3_value_int64 (argv[0]); sqlite3_result_int64 (context, val); return; } if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) { sqlite3_int64 val; double dval = sqlite3_value_double (argv[0]); double diff = dval - floor (dval); val = (sqlite3_int64) sqlite3_value_double (argv[0]); if (diff >= 0.5) val++; sqlite3_result_int64 (context, val); return; } if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) { const unsigned char *txt = sqlite3_value_text (argv[0]); double dval; if (text2double (txt, &dval)) { sqlite3_int64 val; double dval = sqlite3_value_double (argv[0]); double diff = dval - floor (dval); val = (sqlite3_int64) sqlite3_value_double (argv[0]); if (diff >= 0.5) val++; sqlite3_result_int64 (context, val); return; } } sqlite3_result_null (context); } static void fnct_CastToDouble (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CastToDouble(generic value) / / returns a DOUBLE value [if conversion is possible] / or NULL in any other case */ GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { double val = (double) sqlite3_value_int64 (argv[0]); sqlite3_result_double (context, val); return; } if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) { double val = sqlite3_value_double (argv[0]); sqlite3_result_double (context, val); return; } if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) { const unsigned char *txt = sqlite3_value_text (argv[0]); double val; if (text2double (txt, &val)) { sqlite3_result_double (context, val); return; } } sqlite3_result_null (context); } static void fnct_CastToText (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CastToText(generic value) / CastToText(generic value, Integer left-aligned-length) / / returns a TEXT value [if conversion is possible] / or NULL in any other case */ char *txt; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { char format[32]; const char *fmt = FRMT64; sqlite3_int64 val; if (argc == 2) { int length; if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } length = sqlite3_value_int (argv[1]); if (length > 0) { sprintf (format, "%%0%d" FRMT64_WO_PCT, length); fmt = format; } } val = sqlite3_value_int64 (argv[0]); txt = sqlite3_mprintf (fmt, val); sqlite3_result_text (context, txt, strlen (txt), sqlite3_free); return; } if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) { int i; int len; double val = sqlite3_value_double (argv[0]); char format[32]; const char *fmt = "%1.18f"; if (argc == 2) { int length; if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } length = sqlite3_value_int (argv[1]); if (length > 0) { sprintf (format, "%%0%d.18f", length + 19); fmt = format; } } txt = sqlite3_mprintf (fmt, val); len = strlen (txt); for (i = len - 1; i > 0; i--) { /* suppressing meaningless trailing zeroes */ if (txt[i] >= '1' && txt[i] <= '9') break; if (txt[i] == '.') { txt[i + 1] = '0'; break; } if (txt[i] == '0') txt[i] = '\0'; } sqlite3_result_text (context, txt, strlen (txt), sqlite3_free); return; } if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) { int n_bytes; txt = (char *) sqlite3_value_text (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); sqlite3_result_text (context, txt, n_bytes, SQLITE_TRANSIENT); return; } sqlite3_result_null (context); } static int parseHexByte (unsigned char hi, unsigned char lo, unsigned char *val) { /* converting a byte for its Hex representation */ unsigned char x; switch (hi) { case '0': x = 0; break; case '1': x = 16; break; case '2': x = 16 * 2; break; case '3': x = 16 * 3; break; case '4': x = 16 * 4; break; case '5': x = 16 * 5; break; case '6': x = 16 * 6; break; case '7': x = 16 * 7; break; case '8': x = 16 * 8; break; case '9': x = 16 * 9; break; case 'a': case 'A': x = 16 * 10; break; case 'b': case 'B': x = 16 * 11; break; case 'c': case 'C': x = 16 * 12; break; case 'd': case 'D': x = 16 * 13; break; case 'e': case 'E': x = 16 * 14; break; case 'f': case 'F': x = 16 * 15; break; default: return 0; }; switch (lo) { case '0': x += 0; break; case '1': x += 1; break; case '2': x += 2; break; case '3': x += 3; break; case '4': x += 4; break; case '5': x += 5; break; case '6': x += 6; break; case '7': x += 7; break; case '8': x += 8; break; case '9': x += 9; break; case 'a': case 'A': x += 10; break; case 'b': case 'B': x += 11; break; case 'c': case 'C': x += 12; break; case 'd': case 'D': x += 13; break; case 'e': case 'E': x += 14; break; case 'f': case 'F': x += 15; break; default: return 0; }; *val = x; return 1; } static int parseHexString (const unsigned char *in, int in_len, unsigned char **out, int *out_len) { /* parsing an Hexadecimal string */ unsigned char *buf; unsigned char *p_out; unsigned char byteval; int i; int len; *out = NULL; *out_len = 0; if (in == NULL) return 0; len = in_len / 2; if (len * 2 != in_len) /* # digits is an odd number */ return 0; buf = malloc (len); p_out = buf; for (i = 0; i < in_len; i += 2) { if (!parseHexByte (in[i], in[i + 1], &byteval)) goto error; *p_out++ = byteval; } *out = buf; *out_len = len; return 1; error: free (buf); return 0; } static void fnct_CastToBlob (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CastToBlob(generic value) / or / CastToBlob(generic value, boolen hex_input) / / returns a BLOB value [if conversion is possible] / or NULL in any other case */ const unsigned char *p_blob; int n_bytes; int is_hex = 0; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (argc == 2) { if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } is_hex = sqlite3_value_int (argv[1]); } if (sqlite3_value_type (argv[0]) == SQLITE_BLOB) { p_blob = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); if (is_hex) { /* attempting to convert Hexadecimal input */ unsigned char *blob; int bytes; if (!parseHexString (p_blob, n_bytes, &blob, &bytes)) { sqlite3_result_null (context); return; } sqlite3_result_blob (context, blob, bytes, free); return; } sqlite3_result_blob (context, p_blob, n_bytes, SQLITE_TRANSIENT); return; } if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) { p_blob = sqlite3_value_text (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); if (is_hex) { /* attempting to convert Hexadecimal input */ unsigned char *blob; int bytes; if (!parseHexString (p_blob, n_bytes, &blob, &bytes)) { sqlite3_result_null (context); return; } sqlite3_result_blob (context, blob, bytes, free); return; } sqlite3_result_blob (context, p_blob, n_bytes, SQLITE_TRANSIENT); return; } sqlite3_result_null (context); } static void fnct_ForceAsNull (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ForceAsNull(generic val1, generic val2) / / returns a NULL value if val1 and val2 are equal / (and exactly of the same type) / return val1 in any other case */ int type1; int type2; const unsigned char *p_blob; int n_bytes; const unsigned char *p_blob2; int n_bytes2; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ type1 = sqlite3_value_type (argv[0]); type2 = sqlite3_value_type (argv[1]); if (type1 == type2) { switch (type1) { case SQLITE_INTEGER: if (sqlite3_value_int64 (argv[0]) == sqlite3_value_int64 (argv[1])) { sqlite3_result_null (context); return; } break; case SQLITE_FLOAT: if (sqlite3_value_double (argv[0]) == sqlite3_value_double (argv[1])) { sqlite3_result_null (context); return; } break; case SQLITE_TEXT: p_blob = sqlite3_value_text (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); p_blob2 = sqlite3_value_text (argv[1]); n_bytes2 = sqlite3_value_bytes (argv[1]); if (n_bytes == n_bytes2) { if (strcasecmp ((const char *) p_blob, (const char *) p_blob2) == 0) { sqlite3_result_null (context); return; } } break; case SQLITE_BLOB: p_blob = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); p_blob2 = sqlite3_value_blob (argv[1]); n_bytes2 = sqlite3_value_bytes (argv[1]); if (n_bytes == n_bytes2) { if (memcmp (p_blob, p_blob2, n_bytes) == 0) { sqlite3_result_null (context); return; } } break; case SQLITE_NULL: sqlite3_result_null (context); return; }; } /* returning the first argument */ switch (type1) { case SQLITE_INTEGER: sqlite3_result_int64 (context, sqlite3_value_int64 (argv[0])); break; case SQLITE_FLOAT: sqlite3_result_double (context, sqlite3_value_double (argv[0])); break; case SQLITE_TEXT: p_blob = sqlite3_value_text (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); sqlite3_result_text (context, (const char *) p_blob, n_bytes, SQLITE_TRANSIENT); break; case SQLITE_BLOB: p_blob = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); sqlite3_result_blob (context, p_blob, n_bytes, SQLITE_TRANSIENT); break; default: sqlite3_result_null (context); break; }; } static void fnct_CreateUUID (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CreateUUID() / / returns a TEXT value containing an UUID / [xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxxxx] */ unsigned char rnd[16]; char uuid[64]; char *p = uuid; int i; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ sqlite3_randomness (16, rnd); for (i = 0; i < 16; i++) { if (i == 4 || i == 6 || i == 8 || i == 10) *p++ = '-'; sprintf (p, "%02x", rnd[i]); p += 2; } *p = '\0'; uuid[14] = '4'; uuid[19] = '8'; sqlite3_result_text (context, uuid, strlen (uuid), SQLITE_TRANSIENT); } static void fnct_MD5Checksum (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / MD5Checksum(blob) / / returns a TEXT value containing an hex MD5 checksum / [xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx] / or / NULL on invalid arguments */ void *md5; char *checksum; const unsigned char *blob; int blob_len; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_BLOB) { blob = sqlite3_value_blob (argv[0]); blob_len = sqlite3_value_bytes (argv[0]); } else if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) { blob = sqlite3_value_text (argv[0]); blob_len = sqlite3_value_bytes (argv[0]); } else { sqlite3_result_null (context); return; } /* creating an MD5 object */ md5 = gaiaCreateMD5Checksum (); /* evaluating the BLOB */ gaiaUpdateMD5Checksum (md5, blob, blob_len); checksum = gaiaFinalizeMD5Checksum (md5); gaiaFreeMD5Checksum (md5); if (checksum == NULL) sqlite3_result_null (context); else sqlite3_result_text (context, checksum, strlen (checksum), free); } static void fnct_MD5TotalChecksum_step (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / MD5TotalChecksum(BLOB) / / aggregate function - STEP / */ void **p; void *md5; const unsigned char *blob; int blob_len; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_BLOB) { blob = sqlite3_value_blob (argv[0]); blob_len = sqlite3_value_bytes (argv[0]); } else if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) { blob = sqlite3_value_text (argv[0]); blob_len = sqlite3_value_bytes (argv[0]); } else { sqlite3_result_null (context); return; } p = sqlite3_aggregate_context (context, sizeof (void *)); if (!(*p)) { /* this is the first row - creating an MD5 object */ md5 = gaiaCreateMD5Checksum (); gaiaUpdateMD5Checksum (md5, blob, blob_len); *p = md5; } else { /* subsequent rows */ md5 = *p; gaiaUpdateMD5Checksum (md5, blob, blob_len); } } static void fnct_MD5TotalChecksum_final (sqlite3_context * context) { /* SQL function: / MD5TotalChecksum(BLOB) / / aggregate function - FINAL / */ void **p; void *md5; char *checksum; p = sqlite3_aggregate_context (context, 0); if (!(*p)) { sqlite3_result_null (context); return; } md5 = *p; checksum = gaiaFinalizeMD5Checksum (md5); gaiaFreeMD5Checksum (md5); if (checksum == NULL) sqlite3_result_null (context); else sqlite3_result_text (context, checksum, strlen (checksum), free); } #ifndef OMIT_MATHSQL /* supporting SQL math functions */ static int testInvalidFP (double x) { /* testing if this one is an invalid Floating Point */ #ifdef _WIN32 if (_fpclass (x) == _FPCLASS_NN || _fpclass (x) == _FPCLASS_PN || _fpclass (x) == _FPCLASS_NZ || _fpclass (x) == _FPCLASS_PZ) ; else return 1; #else if (fpclassify (x) == FP_NORMAL || fpclassify (x) == FP_ZERO) ; else return 1; #endif return 0; } static void fnct_math_acos (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / acos(double X) / / Returns the arc cosine of X, that is, the value whose cosine is X / or NULL if any error is encountered */ int int_value; double x; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) { x = acos (sqlite3_value_double (argv[0])); if (testInvalidFP (x)) sqlite3_result_null (context); else sqlite3_result_double (context, x); } else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; x = acos (x); if (testInvalidFP (x)) sqlite3_result_null (context); else sqlite3_result_double (context, x); } else sqlite3_result_null (context); } static void fnct_math_asin (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / asin(double X) / / Returns the arc sine of X, that is, the value whose sine is X / or NULL if any error is encountered */ int int_value; double x; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) { x = asin (sqlite3_value_double (argv[0])); if (testInvalidFP (x)) sqlite3_result_null (context); else sqlite3_result_double (context, x); } else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; x = asin (x); if (testInvalidFP (x)) sqlite3_result_null (context); else sqlite3_result_double (context, x); } else sqlite3_result_null (context); } static void fnct_math_atan (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / atan(double X) / / Returns the arc tangent of X, that is, the value whose tangent is X / or NULL if any error is encountered */ int int_value; double x; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) { x = atan (sqlite3_value_double (argv[0])); sqlite3_result_double (context, x); } else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; x = atan (x); sqlite3_result_double (context, x); } else sqlite3_result_null (context); } static void fnct_math_ceil (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ceil(double X) / / Returns the smallest integer value not less than X / or NULL if any error is encountered */ int int_value; double x; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) { x = ceil (sqlite3_value_double (argv[0])); sqlite3_result_double (context, x); } else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; x = ceil (x); sqlite3_result_double (context, x); } else sqlite3_result_null (context); } static void fnct_math_cos (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / cos(double X) / / Returns the cosine of X, where X is given in radians / or NULL if any error is encountered */ int int_value; double x; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) { x = cos (sqlite3_value_double (argv[0])); sqlite3_result_double (context, x); } else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; x = cos (x); sqlite3_result_double (context, x); } else sqlite3_result_null (context); } static void fnct_math_cot (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / cot(double X) / / Returns the cotangent of X / or NULL if any error is encountered */ int int_value; double x; double tang; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) x = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; } else { sqlite3_result_null (context); return; } tang = tan (x); if (tang == 0.0) { sqlite3_result_null (context); return; } x = 1.0 / tang; sqlite3_result_double (context, x); } static void fnct_math_degrees (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / degrees(double X) / / Returns the argument X, converted from radians to degrees / or NULL if any error is encountered */ int int_value; double x; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) x = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; } else { sqlite3_result_null (context); return; } x = x * 57.29577951308232; sqlite3_result_double (context, x); } static void fnct_math_exp (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / exp(double X) / / Returns the value of e (the base of natural logarithms) raised to the power of X / or NULL if any error is encountered */ int int_value; double x; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) { x = exp (sqlite3_value_double (argv[0])); sqlite3_result_double (context, x); } else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; x = exp (x); sqlite3_result_double (context, x); } else sqlite3_result_null (context); } static void fnct_math_floor (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / floor(double X) / / Returns the largest integer value not greater than X / or NULL if any error is encountered */ int int_value; double x; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) { x = floor (sqlite3_value_double (argv[0])); sqlite3_result_double (context, x); } else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; x = floor (x); sqlite3_result_double (context, x); } else sqlite3_result_null (context); } static void fnct_math_logn (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / log(double X) / / Returns the natural logarithm of X; that is, the base-e logarithm of X / or NULL if any error is encountered */ int int_value; double x; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) { x = log (sqlite3_value_double (argv[0])); if (testInvalidFP (x)) sqlite3_result_null (context); else sqlite3_result_double (context, x); } else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; x = log (x); if (testInvalidFP (x)) sqlite3_result_null (context); else sqlite3_result_double (context, x); } else sqlite3_result_null (context); } static void fnct_math_logn2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / log(double B, double X) / / Returns the logarithm of X to the base B / or NULL if any error is encountered */ int int_value; double x = 0.0; double b = 1.0; double log1; double log2; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) x = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) b = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); b = int_value; } else { sqlite3_result_null (context); return; } if (x <= 0.0 || b <= 1.0) { sqlite3_result_null (context); return; } log1 = log (x); if (testInvalidFP (log1)) { sqlite3_result_null (context); return; } log2 = log (b); if (testInvalidFP (log2)) { sqlite3_result_null (context); return; } sqlite3_result_double (context, log1 / log2); } static void fnct_math_log_2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / log2(double X) / / Returns the base-2 logarithm of X / or NULL if any error is encountered */ int int_value; double x; double log1; double log2; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) x = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; } else { sqlite3_result_null (context); return; } log1 = log (x); if (testInvalidFP (log1)) { sqlite3_result_null (context); return; } log2 = log (2.0); sqlite3_result_double (context, log1 / log2); } static void fnct_math_log_10 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / log10(double X) / / Returns the base-10 logarithm of X / or NULL if any error is encountered */ int int_value; double x; double log1; double log2; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) x = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; } else { sqlite3_result_null (context); return; } log1 = log (x); if (testInvalidFP (log1)) { sqlite3_result_null (context); return; } log2 = log (10.0); sqlite3_result_double (context, log1 / log2); } static void fnct_math_pi (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / pi(void) / / Returns the value of (pi) */ GAIA_UNUSED (); /* LCOV_EXCL_LINE */ sqlite3_result_double (context, 3.14159265358979323846); } static void fnct_math_pow (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / pow(double X, double Y) / / Returns the value of X raised to the power of Y. / or NULL if any error is encountered */ int int_value; double x; double y; double p; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) x = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) y = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); y = int_value; } else { sqlite3_result_null (context); return; } p = pow (x, y); if (testInvalidFP (p)) sqlite3_result_null (context); else sqlite3_result_double (context, p); } static void fnct_math_stddev_step (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / stddev_pop(double X) / stddev_samp(double X) / var_pop(double X) / var_samp(double X) / / aggregate function - STEP / */ struct stddev_str *p; int int_value; double x; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) x = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; } else return; p = sqlite3_aggregate_context (context, sizeof (struct stddev_str)); if (!(p->cleaned)) { p->cleaned = 1; p->mean = x; p->quot = 0.0; p->count = 0.0; } p->count += 1.0; p->quot = p->quot + (((p->count - 1.0) * ((x - p->mean) * (x - p->mean))) / p->count); p->mean = p->mean + ((x - p->mean) / p->count); } static void fnct_math_stddev_pop_final (sqlite3_context * context) { /* SQL function: / stddev_pop(double X) / aggregate function - FINAL / */ double x; struct stddev_str *p = sqlite3_aggregate_context (context, 0); if (!p) { sqlite3_result_null (context); return; } x = sqrt (p->quot / p->count); sqlite3_result_double (context, x); } static void fnct_math_stddev_samp_final (sqlite3_context * context) { /* SQL function: / stddev_samp(double X) / aggregate function - FINAL / */ double x; struct stddev_str *p = sqlite3_aggregate_context (context, 0); if (!p) { sqlite3_result_null (context); return; } x = sqrt (p->quot / (p->count - 1.0)); sqlite3_result_double (context, x); } static void fnct_math_var_pop_final (sqlite3_context * context) { /* SQL function: / var_pop(double X) / aggregate function - FINAL / */ double x; struct stddev_str *p = sqlite3_aggregate_context (context, 0); if (!p) { sqlite3_result_null (context); return; } x = p->quot / p->count; sqlite3_result_double (context, x); } static void fnct_math_var_samp_final (sqlite3_context * context) { /* SQL function: / var_samp(double X) / aggregate function - FINAL / */ double x; struct stddev_str *p = sqlite3_aggregate_context (context, 0); if (!p) { sqlite3_result_null (context); return; } x = p->quot / (p->count - 1.0); sqlite3_result_double (context, x); } static void fnct_math_radians (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / radians(double X) / / Returns the argument X, converted from degrees to radians / or NULL if any error is encountered */ int int_value; double x; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) x = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; } else { sqlite3_result_null (context); return; } x = x * .0174532925199432958; sqlite3_result_double (context, x); } static void fnct_math_round (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / round(double X) / / Returns the nearest integer, but round halfway cases away from zero / or NULL if any error is encountered */ int int_value; double x; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) { x = math_round (sqlite3_value_double (argv[0])); sqlite3_result_double (context, x); } else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; x = math_round (x); sqlite3_result_double (context, x); } else sqlite3_result_null (context); } static void fnct_math_sign (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / sign(double X) / / Returns the sign of the argument as -1, 0, or 1, depending on whether X is negative, zero, or positive / or NULL if any error is encountered */ int int_value; double x; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) x = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; } else { sqlite3_result_null (context); return; } if (x > 0.0) sqlite3_result_double (context, 1.0); else if (x < 0.0) sqlite3_result_double (context, -1.0); else sqlite3_result_double (context, 0.0); } static void fnct_math_sin (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / sin(double X) / / Returns the sine of X, where X is given in radians / or NULL if any error is encountered */ int int_value; double x; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) { x = sin (sqlite3_value_double (argv[0])); sqlite3_result_double (context, x); } else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; x = sin (x); sqlite3_result_double (context, x); } else sqlite3_result_null (context); } static void fnct_math_sqrt (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / sqrt(double X) / / Returns the square root of a non-negative number X / or NULL if any error is encountered */ int int_value; double x; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) { x = sqrt (sqlite3_value_double (argv[0])); if (testInvalidFP (x)) sqlite3_result_null (context); else sqlite3_result_double (context, x); } else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; x = sqrt (x); if (testInvalidFP (x)) sqlite3_result_null (context); else sqlite3_result_double (context, x); } else sqlite3_result_null (context); } static void fnct_math_tan (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / tan(double X) / / Returns the tangent of X, where X is given in radians / or NULL if any error is encountered */ int int_value; double x; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) { x = tan (sqlite3_value_double (argv[0])); sqlite3_result_double (context, x); } else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; x = tan (x); sqlite3_result_double (context, x); } else sqlite3_result_null (context); } #endif /* end supporting SQL math functions */ static void fnct_GeomFromExifGpsBlob (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / GeomFromExifGpsBlob(BLOB encoded image) / / returns: / a POINT geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geom; unsigned char *geoblob; int geosize; double longitude; double latitude; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); if (gaiaGetGpsCoords (p_blob, n_bytes, &longitude, &latitude)) { geom = gaiaAllocGeomColl (); geom->Srid = 4326; gaiaAddPointToGeomColl (geom, longitude, latitude); gaiaToSpatiaLiteBlobWkb (geom, &geoblob, &geosize); gaiaFreeGeomColl (geom); sqlite3_result_blob (context, geoblob, geosize, free); } else sqlite3_result_null (context); } static char * guess_mime_type (const unsigned char *p_blob, int n_bytes) { /* guessing the mime-type corresponding to some BLOB */ int blob_type; const char *mime = NULL; int len; char *string = NULL; blob_type = gaiaGuessBlobType (p_blob, n_bytes); switch (blob_type) { case GAIA_ZIP_BLOB: mime = "application/zip"; break; case GAIA_PDF_BLOB: mime = "application/pdf"; break; case GAIA_TIFF_BLOB: mime = "image/tiff"; break; case GAIA_GIF_BLOB: mime = "image/gif"; break; case GAIA_PNG_BLOB: mime = "image/png"; break; case GAIA_JPEG_BLOB: case GAIA_EXIF_BLOB: case GAIA_EXIF_GPS_BLOB: mime = "image/jpeg"; break; #ifdef ENABLE_LIBXML2 /* including LIBXML2 */ case GAIA_XML_BLOB: mime = "application/xml"; if (gaiaIsSvgXmlBlob (p_blob, n_bytes)) mime = "image/svg+xml"; break; #endif /* end including LIBXML2 */ }; if (mime != NULL) { len = strlen (mime); string = malloc (len + 1); strcpy (string, mime); } return string; } static void fnct_GetMimeType (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / GetMimeType(BLOB) / / returns: / the Mime-Type corresponding to the BLOB / or NULL if any error is encountered or no valid mime is defined */ unsigned char *p_blob; int n_bytes; char *mime = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); mime = guess_mime_type (p_blob, n_bytes); if (mime == NULL) sqlite3_result_null (context); else sqlite3_result_text (context, mime, strlen (mime), free); } static void blob_guess (sqlite3_context * context, int argc, sqlite3_value ** argv, int request) { /* SQL function: / IsGifBlob(BLOB encoded image) / IsPngBlob, IsJpegBlob, IsExifBlob, IsExifGpsBlob, IsTiffBlob, / IsZipBlob, IsPdfBlob,IsGeometryBlob / / returns: / 1 if the required BLOB_TYPE is TRUE / 0 otherwise / or -1 if any error is encountered */ unsigned char *p_blob; int n_bytes; int blob_type; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); blob_type = gaiaGuessBlobType (p_blob, n_bytes); if (request == GAIA_GEOMETRY_BLOB) { if (blob_type == GAIA_GEOMETRY_BLOB) sqlite3_result_int (context, 1); else sqlite3_result_int (context, 0); return; } if (request == GAIA_ZIP_BLOB) { if (blob_type == GAIA_ZIP_BLOB) sqlite3_result_int (context, 1); else sqlite3_result_int (context, 0); return; } if (request == GAIA_PDF_BLOB) { if (blob_type == GAIA_PDF_BLOB) sqlite3_result_int (context, 1); else sqlite3_result_int (context, 0); return; } if (request == GAIA_TIFF_BLOB) { if (blob_type == GAIA_TIFF_BLOB) sqlite3_result_int (context, 1); else sqlite3_result_int (context, 0); return; } if (request == GAIA_GIF_BLOB) { if (blob_type == GAIA_GIF_BLOB) sqlite3_result_int (context, 1); else sqlite3_result_int (context, 0); return; } if (request == GAIA_PNG_BLOB) { if (blob_type == GAIA_PNG_BLOB) sqlite3_result_int (context, 1); else sqlite3_result_int (context, 0); return; } if (request == GAIA_JPEG_BLOB) { if (blob_type == GAIA_JPEG_BLOB || blob_type == GAIA_EXIF_BLOB || blob_type == GAIA_EXIF_GPS_BLOB) sqlite3_result_int (context, 1); else sqlite3_result_int (context, 0); return; } if (request == GAIA_EXIF_BLOB) { if (blob_type == GAIA_EXIF_BLOB || blob_type == GAIA_EXIF_GPS_BLOB) { sqlite3_result_int (context, 1); } else sqlite3_result_int (context, 0); return; } if (request == GAIA_EXIF_GPS_BLOB) { if (blob_type == GAIA_EXIF_GPS_BLOB) { sqlite3_result_int (context, 1); } else sqlite3_result_int (context, 0); return; } if (request == GAIA_WEBP_BLOB) { if (blob_type == GAIA_WEBP_BLOB) sqlite3_result_int (context, 1); else sqlite3_result_int (context, 0); return; } sqlite3_result_int (context, -1); } /* / the following functions simply readdress the blob_guess() / setting the appropriate request mode */ static void fnct_IsGeometryBlob (sqlite3_context * context, int argc, sqlite3_value ** argv) { blob_guess (context, argc, argv, GAIA_GEOMETRY_BLOB); } static void fnct_IsZipBlob (sqlite3_context * context, int argc, sqlite3_value ** argv) { blob_guess (context, argc, argv, GAIA_ZIP_BLOB); } static void fnct_IsPdfBlob (sqlite3_context * context, int argc, sqlite3_value ** argv) { blob_guess (context, argc, argv, GAIA_PDF_BLOB); } static void fnct_IsTiffBlob (sqlite3_context * context, int argc, sqlite3_value ** argv) { blob_guess (context, argc, argv, GAIA_TIFF_BLOB); } static void fnct_IsGifBlob (sqlite3_context * context, int argc, sqlite3_value ** argv) { blob_guess (context, argc, argv, GAIA_GIF_BLOB); } static void fnct_IsPngBlob (sqlite3_context * context, int argc, sqlite3_value ** argv) { blob_guess (context, argc, argv, GAIA_PNG_BLOB); } static void fnct_IsJpegBlob (sqlite3_context * context, int argc, sqlite3_value ** argv) { blob_guess (context, argc, argv, GAIA_JPEG_BLOB); } static void fnct_IsExifBlob (sqlite3_context * context, int argc, sqlite3_value ** argv) { blob_guess (context, argc, argv, GAIA_EXIF_BLOB); } static void fnct_IsExifGpsBlob (sqlite3_context * context, int argc, sqlite3_value ** argv) { blob_guess (context, argc, argv, GAIA_EXIF_GPS_BLOB); } static void fnct_IsWebPBlob (sqlite3_context * context, int argc, sqlite3_value ** argv) { blob_guess (context, argc, argv, GAIA_WEBP_BLOB); } static void fnct_BlobFromFile (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / BlobFromFile(TEXT filepath) / / returns: / some BLOB on success / or NULL on failure */ unsigned char *p_blob; int n_bytes; int max_blob; int rd; sqlite3 *sqlite = sqlite3_context_db_handle (context); const char *path = NULL; FILE *in = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) path = (const char *) sqlite3_value_text (argv[0]); if (path == NULL) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); in = fopen (path, "rb"); if (in == NULL) { sqlite3_result_null (context); return; } else { /* querying the file length */ if (fseek (in, 0, SEEK_END) < 0) { sqlite3_result_null (context); fclose (in); return; } n_bytes = ftell (in); max_blob = sqlite3_limit (sqlite, SQLITE_LIMIT_LENGTH, -1); if (n_bytes > max_blob) { /* too big; cannot be stored into a BLOB */ sqlite3_result_null (context); fclose (in); return; } rewind (in); p_blob = malloc (n_bytes); /* attempting to load the BLOB from the file */ rd = fread (p_blob, 1, n_bytes, in); fclose (in); if (rd != n_bytes) { /* read error */ free (p_blob); sqlite3_result_null (context); return; } sqlite3_result_blob (context, p_blob, n_bytes, free); } } static void fnct_BlobToFile (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / BlobToFile(BLOB payload, TEXT filepath) / / returns: / 1 on success / or 0 on failure */ unsigned char *p_blob; int n_bytes; const char *path = NULL; FILE *out = NULL; int ret = 1; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, 0); return; } if (sqlite3_value_type (argv[1]) == SQLITE_TEXT) path = (const char *) sqlite3_value_text (argv[1]); if (path == NULL) { sqlite3_result_int (context, 0); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); out = fopen (path, "wb"); if (out == NULL) ret = 0; else { /* exporting the BLOB into the file */ int wr = fwrite (p_blob, 1, n_bytes, out); if (wr != n_bytes) ret = 0; fclose (out); } sqlite3_result_int (context, ret); } static void fnct_ExportDXF (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ExportDXF(TEXT out_dir, TEXT filename, TEXT sql_query, TEXT layer_col_name, / TEXT geom_col_name, TEXT label_col_name, TEXT text_height_col_name, / TEXT text_rotation_col_name, BLOB geom_filter) / or / ExportDXF(TEXT out_dir, TEXT filename, TEXT sql_query, TEXT layer_col_name, / TEXT geom_col_name, TEXT label_col_name, TEXT text_height_col_name, / TEXT text_rotation_col_name, BLOB geom_filter, INT precision) / / returns: / 1 on success / or 0 on failure */ unsigned char *p_blob; int n_bytes; char *path; const char *dir_path = NULL; const char *filename = NULL; FILE *out = NULL; const char *sql_query = NULL; const char *layer_col_name = NULL; const char *geom_col_name = NULL; const char *label_col_name = NULL; const char *text_height_col_name = NULL; const char *text_rotation_col_name = NULL; gaiaGeomCollPtr geom = NULL; int precision = 3; int ret = 1; sqlite3 *db_handle = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) dir_path = (const char *) sqlite3_value_text (argv[0]); if (sqlite3_value_type (argv[1]) == SQLITE_TEXT) filename = (const char *) sqlite3_value_text (argv[1]); if (sqlite3_value_type (argv[2]) == SQLITE_TEXT) sql_query = (const char *) sqlite3_value_text (argv[2]); if (sqlite3_value_type (argv[3]) == SQLITE_TEXT) layer_col_name = (const char *) sqlite3_value_text (argv[3]); if (sqlite3_value_type (argv[4]) == SQLITE_TEXT) geom_col_name = (const char *) sqlite3_value_text (argv[4]); if (sqlite3_value_type (argv[5]) == SQLITE_TEXT) label_col_name = (const char *) sqlite3_value_text (argv[5]); if (sqlite3_value_type (argv[6]) == SQLITE_TEXT) text_height_col_name = (const char *) sqlite3_value_text (argv[6]); if (sqlite3_value_type (argv[7]) == SQLITE_TEXT) text_rotation_col_name = (const char *) sqlite3_value_text (argv[7]); if (sqlite3_value_type (argv[8]) == SQLITE_BLOB) { p_blob = (unsigned char *) sqlite3_value_blob (argv[8]); n_bytes = sqlite3_value_bytes (argv[8]); geom = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); } if (argc == 10) { if (sqlite3_value_type (argv[9]) == SQLITE_INTEGER) precision = sqlite3_value_int (argv[9]); } if (dir_path == NULL || filename == NULL || sql_query == NULL || layer_col_name == NULL || geom_col_name == NULL) { sqlite3_result_int (context, 0); if (geom != NULL) gaiaFreeGeomColl (geom); return; } path = sqlite3_mprintf ("%s/%s.dxf", dir_path, filename); out = fopen (path, "wb"); if (out == NULL) { ret = 0; spatialite_e ("ExportDXF error - unable to create \"%s\"\n", path); } else { /* exporting the DXF */ gaiaDxfWriter dxf; gaiaDxfWriterInit (&dxf, out, precision, GAIA_DXF_V12); ret = gaiaExportDxf (&dxf, db_handle, sql_query, layer_col_name, geom_col_name, label_col_name, text_height_col_name, text_rotation_col_name, geom); if (ret > 0) ret = 1; fclose (out); } sqlite3_result_int (context, ret); if (geom != NULL) gaiaFreeGeomColl (geom); sqlite3_free (path); } static void fnct_CountUnsafeTriggers (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CountUnsafeTriggers() / / returns: / the total count of *unsafe* triggers found / 0 if no dubious trigger has been identifiedfailure */ int ret; int i; char **results; int rows; int columns; const char *sql; sqlite3 *sqlite = sqlite3_context_db_handle (context); int count = 0; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ /* checking all Triggers */ sql = "SELECT Count(*) FROM sqlite_master WHERE " "type IN ('trigger', 'view') AND (sql LIKE '%BlobFromFile%' " "OR sql LIKE '%BlobToFile%' OR sql LIKE '%XB_LoadXML%' " "OR sql LIKE '%XB_StoreXML%')"; ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL); if (ret != SQLITE_OK) goto unknown; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { count = atoi (results[(i * columns) + 0]); } } sqlite3_free_table (results); unknown: sqlite3_result_int (context, count); } static void fnct_GeodesicLength (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / GeodesicLength(BLOB encoded GEOMETRYCOLLECTION) / / returns the total Geodesic length for current geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; double l; double length = 0.0; double a; double b; double rf; gaiaGeomCollPtr geo = NULL; gaiaLinestringPtr line; gaiaPolygonPtr polyg; gaiaRingPtr ring; int ib; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { if (getEllipsoidParams (sqlite, geo->Srid, &a, &b, &rf)) { line = geo->FirstLinestring; while (line) { /* Linestrings */ l = gaiaGeodesicTotalLength (a, b, rf, line->DimensionModel, line->Coords, line->Points); if (l < 0.0) { length = -1.0; break; } length += l; line = line->Next; } if (length >= 0) { /* Polygons */ polyg = geo->FirstPolygon; while (polyg) { /* exterior Ring */ ring = polyg->Exterior; l = gaiaGeodesicTotalLength (a, b, rf, ring->DimensionModel, ring->Coords, ring->Points); if (l < 0.0) { length = -1.0; break; } length += l; for (ib = 0; ib < polyg->NumInteriors; ib++) { /* interior Rings */ ring = polyg->Interiors + ib; l = gaiaGeodesicTotalLength (a, b, rf, ring-> DimensionModel, ring->Coords, ring->Points); if (l < 0.0) { length = -1.0; break; } length += l; } if (length < 0.0) break; polyg = polyg->Next; } } if (length < 0.0) sqlite3_result_null (context); else sqlite3_result_double (context, length); } else sqlite3_result_null (context); gaiaFreeGeomColl (geo); } } static void fnct_GreatCircleLength (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / GreatCircleLength(BLOB encoded GEOMETRYCOLLECTION) / / returns the total Great Circle length for current geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; double length = 0.0; double a; double b; double rf; gaiaGeomCollPtr geo = NULL; gaiaLinestringPtr line; gaiaPolygonPtr polyg; gaiaRingPtr ring; int ib; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) sqlite3_result_null (context); else { if (getEllipsoidParams (sqlite, geo->Srid, &a, &b, &rf)) { line = geo->FirstLinestring; while (line) { /* Linestrings */ length += gaiaGreatCircleTotalLength (a, b, line->DimensionModel, line->Coords, line->Points); line = line->Next; } if (length >= 0) { /* Polygons */ polyg = geo->FirstPolygon; while (polyg) { /* exterior Ring */ ring = polyg->Exterior; length += gaiaGreatCircleTotalLength (a, b, ring-> DimensionModel, ring->Coords, ring->Points); for (ib = 0; ib < polyg->NumInteriors; ib++) { /* interior Rings */ ring = polyg->Interiors + ib; length += gaiaGreatCircleTotalLength (a, b, ring-> DimensionModel, ring->Coords, ring->Points); } polyg = polyg->Next; } } sqlite3_result_double (context, length); } else sqlite3_result_null (context); gaiaFreeGeomColl (geo); } } static void convertUnit (sqlite3_context * context, int argc, sqlite3_value ** argv, int unit_from, int unit_to) { /* SQL functions: / CvtToKm(), CvtToDm(), CvtToCm(), CvtToMm(), CvtToKmi(), CvtToIn(), CvtToFt(), / CvtToYd(), CvtToMi(), CvtToFath(), CvtToCh(), CvtToLink(), CvtToUsIn(), / CvtToUsFt(), CvtToUsYd(), CvtToUsCh(), CvtToUsMi(), CvtToIndFt(), / CvtToIndYd(), CvtToIndCh(), / CvtFromKm(), CvtFromDm(), CvtFromCm(), CvtFromMm(), CvtFromKmi(), / CvtFromIn(), CvtFromFt(), CvtFromYd(), CvtFromMi(), CvtFromFath(), / CvtFromCh(), CvtFromLink(), CvtFromUsIn(), CvtFromUsFt(), CvtFromUsYd(), / CvtFromUsCh(), CvtFromUsMi(), CvtFromIndFt(), CvtFromIndYd(), / CvtFromIndCh() / / converts a Length from one unit to a different one / or NULL if any error is encountered */ double cvt; double value; int int_value; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) value = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); value = int_value; } else { sqlite3_result_null (context); return; } if (!gaiaConvertLength (value, unit_from, unit_to, &cvt)) sqlite3_result_null (context); else sqlite3_result_double (context, cvt); } static void fnct_cvtToKm (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_M, GAIA_KM); } static void fnct_cvtToDm (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_M, GAIA_DM); } static void fnct_cvtToCm (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_M, GAIA_CM); } static void fnct_cvtToMm (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_M, GAIA_MM); } static void fnct_cvtToKmi (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_M, GAIA_KMI); } static void fnct_cvtToIn (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_M, GAIA_IN); } static void fnct_cvtToFt (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_M, GAIA_FT); } static void fnct_cvtToYd (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_M, GAIA_YD); } static void fnct_cvtToMi (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_M, GAIA_MI); } static void fnct_cvtToFath (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_M, GAIA_FATH); } static void fnct_cvtToCh (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_M, GAIA_CH); } static void fnct_cvtToLink (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_M, GAIA_LINK); } static void fnct_cvtToUsIn (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_M, GAIA_US_IN); } static void fnct_cvtToUsFt (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_M, GAIA_US_FT); } static void fnct_cvtToUsYd (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_M, GAIA_US_YD); } static void fnct_cvtToUsCh (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_M, GAIA_US_CH); } static void fnct_cvtToUsMi (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_M, GAIA_US_MI); } static void fnct_cvtToIndFt (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_M, GAIA_IND_FT); } static void fnct_cvtToIndYd (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_M, GAIA_IND_YD); } static void fnct_cvtToIndCh (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_M, GAIA_IND_CH); } static void fnct_cvtFromKm (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_KM, GAIA_M); } static void fnct_cvtFromDm (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_DM, GAIA_M); } static void fnct_cvtFromCm (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_CM, GAIA_M); } static void fnct_cvtFromMm (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_MM, GAIA_M); } static void fnct_cvtFromKmi (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_KMI, GAIA_M); } static void fnct_cvtFromIn (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_IN, GAIA_M); } static void fnct_cvtFromFt (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_FT, GAIA_M); } static void fnct_cvtFromYd (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_YD, GAIA_M); } static void fnct_cvtFromMi (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_MI, GAIA_M); } static void fnct_cvtFromFath (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_FATH, GAIA_M); } static void fnct_cvtFromCh (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_CH, GAIA_M); } static void fnct_cvtFromLink (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_LINK, GAIA_M); } static void fnct_cvtFromUsIn (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_US_IN, GAIA_M); } static void fnct_cvtFromUsFt (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_US_FT, GAIA_M); } static void fnct_cvtFromUsYd (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_US_YD, GAIA_M); } static void fnct_cvtFromUsCh (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_US_CH, GAIA_M); } static void fnct_cvtFromUsMi (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_US_MI, GAIA_M); } static void fnct_cvtFromIndFt (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_IND_FT, GAIA_M); } static void fnct_cvtFromIndYd (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_IND_YD, GAIA_M); } static void fnct_cvtFromIndCh (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_IND_CH, GAIA_M); } #ifdef ENABLE_LIBXML2 /* including LIBXML2 */ static void fnct_CreateStylingTables (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CreateStylingTables() / or / CreateStylingTables(bool relaxed) / / creates any SLD/SE related table / returns 1 on success / 0 on failure, -1 on invalid arguments */ int relaxed = 0; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (argc == 1) { if (sqlite3_value_type (argv[0]) != SQLITE_INTEGER) { sqlite3_result_int (context, -1); return; } relaxed = sqlite3_value_int (argv[0]); } if (!createStylingTables (sqlite, relaxed)) goto error; updateSpatiaLiteHistory (sqlite, "*** SE Styling ***", NULL, "Styling tables successfully created"); sqlite3_result_int (context, 1); return; error: sqlite3_result_int (context, 0); return; } static void fnct_RegisterExternalGraphic (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / RegisterExternalGraphic(String xlink_href, BLOB resource) / or / RegisterExternalGraphic(String xlink_href, BLOB resource, String file_name) / / insert or updates an External Graphic / returns 1 on success / 0 on failure, -1 on invalid arguments */ int ret; const char *xlink_href; const char *title = NULL; const char *abstract = NULL; const char *file_name = NULL; const unsigned char *p_blob; int n_bytes; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } if (argc == 5) { /* optional extra args */ if (sqlite3_value_type (argv[2]) != SQLITE_TEXT) { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[3]) != SQLITE_TEXT) { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[4]) != SQLITE_TEXT) { sqlite3_result_int (context, -1); return; } } xlink_href = (const char *) sqlite3_value_text (argv[0]); p_blob = sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); if (argc == 5) { title = (const char *) sqlite3_value_text (argv[2]); abstract = (const char *) sqlite3_value_text (argv[3]); file_name = (const char *) sqlite3_value_text (argv[4]); } ret = register_external_graphic (sqlite, xlink_href, p_blob, n_bytes, title, abstract, file_name); sqlite3_result_int (context, ret); } static void fnct_RegisterVectorStyledLayer (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / RegisterVectorStyledLayer(String f_table_name, String f_geometry_column, / BLOB style) / or / RegisterVectorStyledLayer(String f_table_name, String f_geometry_column, / Integer style_id, BLOB style) / / inserts or updates a Vector Styled Layer / returns 1 on success / 0 on failure, -1 on invalid arguments */ int ret; const char *f_geometry_column; const char *f_table_name; int style_id = -1; const unsigned char *p_blob; int n_bytes; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { sqlite3_result_int (context, -1); return; } if (argc == 4) { /* optional extra args */ if (sqlite3_value_type (argv[2]) != SQLITE_INTEGER) { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[3]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } } else { /* no extra-args */ if (sqlite3_value_type (argv[2]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } } f_table_name = (const char *) sqlite3_value_text (argv[0]); f_geometry_column = (const char *) sqlite3_value_text (argv[1]); if (argc == 4) { style_id = sqlite3_value_int (argv[2]); p_blob = sqlite3_value_blob (argv[3]); n_bytes = sqlite3_value_bytes (argv[3]); } else { p_blob = sqlite3_value_blob (argv[2]); n_bytes = sqlite3_value_bytes (argv[2]); } ret = register_vector_styled_layer (sqlite, f_table_name, f_geometry_column, style_id, p_blob, n_bytes); sqlite3_result_int (context, ret); } static void fnct_RegisterRasterStyledLayer (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / RegisterRasterStyledLayer(String coverage_name, BLOB style) / or / RegisterRasterStyledLayer(String coverage_name, Integer style_id, / BLOB style) / / inserts or updates a Raster Styled Layer / returns 1 on success / 0 on failure, -1 on invalid arguments */ int ret; const char *coverage_name; int style_id = -1; const unsigned char *p_blob; int n_bytes; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_int (context, -1); return; } if (argc == 3) { /* optional extra args */ if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[2]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } } else { /* no extra-args */ if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } } coverage_name = (const char *) sqlite3_value_text (argv[0]); if (argc == 3) { style_id = sqlite3_value_int (argv[1]); p_blob = sqlite3_value_blob (argv[2]); n_bytes = sqlite3_value_bytes (argv[2]); } else { p_blob = sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); } ret = register_raster_styled_layer (sqlite, coverage_name, style_id, p_blob, n_bytes); sqlite3_result_int (context, ret); } static void fnct_RegisterStyledGroup (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / RegisterStyledGroup(String group_name, String coverage_name, / Integer style_id [, Integer paint_order) / or / RegisterStyledGroup(String group_name, String f_table_name, / String f_geometry_column, Integer style_id / [, Integer paint_order) / / inserts or updates a Styled Group item / returns 1 on success / 0 on failure, -1 on invalid arguments */ int ret; const char *group_name; const char *f_table_name = NULL; const char *f_geometry_column = NULL; const char *coverage_name = NULL; int style_id; int paint_order = -1; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (argc == 3) { /* raster layer - default */ if (sqlite3_value_type (argv[0]) == SQLITE_TEXT && sqlite3_value_type (argv[1]) == SQLITE_TEXT && sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { group_name = (const char *) sqlite3_value_text (argv[0]); coverage_name = (const char *) sqlite3_value_text (argv[1]); style_id = sqlite3_value_int (argv[2]); } else { sqlite3_result_int (context, -1); return; } } else if (argc == 4) { if (sqlite3_value_type (argv[0]) == SQLITE_TEXT && sqlite3_value_type (argv[1]) == SQLITE_TEXT && sqlite3_value_type (argv[2]) == SQLITE_INTEGER && sqlite3_value_type (argv[3]) == SQLITE_INTEGER) { /* raster layer - paint_order */ group_name = (const char *) sqlite3_value_text (argv[0]); coverage_name = (const char *) sqlite3_value_text (argv[1]); style_id = sqlite3_value_int (argv[2]); paint_order = sqlite3_value_int (argv[3]); } else if (sqlite3_value_type (argv[0]) == SQLITE_TEXT && sqlite3_value_type (argv[1]) == SQLITE_TEXT && sqlite3_value_type (argv[2]) == SQLITE_TEXT && sqlite3_value_type (argv[3]) == SQLITE_INTEGER) { /* vector layer - default */ group_name = (const char *) sqlite3_value_text (argv[0]); f_table_name = (const char *) sqlite3_value_text (argv[1]); f_geometry_column = (const char *) sqlite3_value_text (argv[2]); style_id = sqlite3_value_int (argv[3]); } else { sqlite3_result_int (context, -1); return; } } else if (argc == 5) { /* vector layer - paint_order */ if (sqlite3_value_type (argv[0]) == SQLITE_TEXT && sqlite3_value_type (argv[1]) == SQLITE_TEXT && sqlite3_value_type (argv[2]) == SQLITE_TEXT && sqlite3_value_type (argv[3]) == SQLITE_INTEGER && sqlite3_value_type (argv[4]) == SQLITE_INTEGER) { group_name = (const char *) sqlite3_value_text (argv[0]); f_table_name = (const char *) sqlite3_value_text (argv[1]); f_geometry_column = (const char *) sqlite3_value_text (argv[2]); style_id = sqlite3_value_int (argv[3]); paint_order = sqlite3_value_int (argv[4]); } else { sqlite3_result_int (context, -1); return; } } ret = register_styled_group (sqlite, group_name, f_table_name, f_geometry_column, coverage_name, style_id, paint_order); sqlite3_result_int (context, ret); } static void fnct_SetStyledGroupInfos (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / SetStyledGroupInfos(String group_name, String title, / String abstract) / / inserts or updates the descriptive infos supporting a Styled Group / returns 1 on success / 0 on failure, -1 on invalid arguments */ int ret; const char *group_name; const char *title = NULL; const char *abstract = NULL; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[2]) != SQLITE_TEXT) { sqlite3_result_int (context, -1); return; } group_name = (const char *) sqlite3_value_text (argv[0]); title = (const char *) sqlite3_value_text (argv[1]); abstract = (const char *) sqlite3_value_text (argv[2]); ret = styled_group_set_infos (sqlite, group_name, title, abstract); sqlite3_result_int (context, ret); } static void fnct_CreateIsoMetadataTables (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CreateIsoMetadataTables() / or / CreateIsoMetadataTables(bool relaxed) / / creates any ISO Metadata related table / returns 1 on success / 0 on failure, -1 on invalid arguments */ int relaxed = 0; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (argc == 1) { if (sqlite3_value_type (argv[0]) != SQLITE_INTEGER) { sqlite3_result_int (context, -1); return; } relaxed = sqlite3_value_int (argv[0]); } if (!createIsoMetadataTables (sqlite, relaxed)) goto error; updateSpatiaLiteHistory (sqlite, "*** ISO Metadata ***", NULL, "ISO Metadata tables successfully created"); sqlite3_result_int (context, 1); return; error: sqlite3_result_int (context, 0); return; } static void fnct_GetIsoMetadataId (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / GetIsoMetadataId(String fileIdentifier) / / return the ID of the row corresponding to "fileIdentifier" / 0 on failure / -1 on invalid argument */ const char *fileIdentifier; sqlite3_int64 id; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_int (context, -1); return; } fileIdentifier = (const char *) sqlite3_value_text (argv[0]); if (!get_iso_metadata_id (sqlite, fileIdentifier, &id)) sqlite3_result_int (context, 0); else sqlite3_result_int64 (context, id); } static void fnct_RegisterIsoMetadata (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / RegisterIsoMetadata(String scope, BLOB metadata) / or / RegisterIsoMetadata(String scope, BLOB metadata, / Integer id) / or / RegisterIsoMetadata(String scope, BLOB metadata, / String fileIdentifier) / / insert or updates a Raster Styled Layer / returns 1 on success / 0 on failure, -1 on invalid arguments */ int ret; const char *scope; const unsigned char *p_blob; int n_bytes; sqlite3_int64 id = -1; const char *fileIdentifier = NULL; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } if (argc == 3) { /* optional extra args */ if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER || sqlite3_value_type (argv[2]) == SQLITE_TEXT) ; else { sqlite3_result_int (context, -1); return; } } scope = (const char *) sqlite3_value_text (argv[0]); p_blob = sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); if (argc == 3) { if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) id = sqlite3_value_int64 (argv[2]); if (sqlite3_value_type (argv[2]) == SQLITE_TEXT) fileIdentifier = (const char *) sqlite3_value_text (argv[2]); } ret = register_iso_metadata (sqlite, scope, p_blob, n_bytes, &id, fileIdentifier); sqlite3_result_int (context, ret); } static void fnct_XB_Create (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_Create(BLOB XMLdocument) / XB_Create(BLOB XMLdocument, bool compressed) / XB_Create(BLOB XMLdocument, bool compressed, text SchemaURI) / XB_Create(BLOB XMLdocument, bool compressed, int InternalSchemaURI) / / returns the current XmlBlob by parsing an XMLdocument / or NULL if any error is encountered / / - the XMLdocument should be "well formed" / - if *compressed* is TRUE (default) the XmlBlob would be zipped / - if *SchemaURI* in not NULL then only XMLdocuments succesfully / passing a formal Schema Validation will be accepted as valid / - if *InternalSchamaURI* is defined (any numeric value) then an / attempt will be made in order to identify a SchemaURI defined / internally within the XMLDocument itself. / if such internal SchemaURI doesn't exists, or if the formal / Schema Validation fails, NULL will be returned. */ int len; unsigned char *p_result = NULL; const unsigned char *xml; int xml_len; int compressed = 1; int use_internal_schema_uri = 0; const char *schemaURI = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (argc >= 2) { if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } } if (argc == 3) { if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) use_internal_schema_uri = 1; else if (sqlite3_value_type (argv[2]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } } xml = (const unsigned char *) sqlite3_value_blob (argv[0]); xml_len = sqlite3_value_bytes (argv[0]); if (argc >= 2) compressed = sqlite3_value_int (argv[1]); if (use_internal_schema_uri) { /* using the SchemaURI internally defined within the XMLDocument */ char *internalSchemaURI = gaiaXmlGetInternalSchemaURI (sqlite3_user_data (context), xml, xml_len); if (internalSchemaURI == NULL) { /* unable to identify the SchemaURI */ p_result = NULL; } else { /* ok, attempting to validate using the internal SchemaURI */ gaiaXmlToBlob (sqlite3_user_data (context), xml, xml_len, compressed, internalSchemaURI, &p_result, &len, NULL, NULL); free (internalSchemaURI); } } else { if (argc == 3) schemaURI = (const char *) sqlite3_value_text (argv[2]); gaiaXmlToBlob (sqlite3_user_data (context), xml, xml_len, compressed, schemaURI, &p_result, &len, NULL, NULL); } if (p_result == NULL) { sqlite3_result_null (context); return; } sqlite3_result_blob (context, p_result, len, free); } static void fnct_XB_LoadXML (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_LoadXML(text path-or-URL) / / returns a generic Text by parsing an XML Document / or NULL if any error is encountered / */ const char *path_or_url; unsigned char *xml; int xml_len; int ret; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } path_or_url = (const char *) sqlite3_value_text (argv[0]); /* acquiring the XML Document as a Blob */ ret = gaiaXmlLoad (sqlite3_user_data (context), path_or_url, &xml, &xml_len, NULL); if (!ret || xml == NULL) { sqlite3_result_null (context); return; } sqlite3_result_blob (context, xml, xml_len, free); } static void fnct_XB_GetPayload (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_GetPayload(XmlBLOB) / XB_GetPayload(XmlBLOB, int format) / / returns the current XMLDocument (as BLOB) by parsing an XmlBLOB / or NULL if any error is encountered / / the returned buffer will be always null-terminated */ const unsigned char *p_blob; int n_bytes; unsigned char *out; int out_len; int indent = -1; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (argc == 2) { if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } } p_blob = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); if (argc == 2) indent = sqlite3_value_int (argv[1]); gaiaXmlFromBlob (p_blob, n_bytes, indent, &out, &out_len); if (out == NULL) { sqlite3_result_null (context); return; } sqlite3_result_blob (context, out, out_len, free); } static void fnct_XB_StoreXML (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_StoreXML(XmlBLOB, text path) / XB_StoreXML(XmlBLOB, taxt path, int format) / / exports the current XMLDocument into an external file by parsing an XmlBLOB / return 1 on success, 0 on failure, -1 on invalid args / */ const unsigned char *p_blob; int n_bytes; const char *path; int indent = -1; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { sqlite3_result_int (context, -1); return; } if (argc == 3) { if (sqlite3_value_type (argv[2]) != SQLITE_INTEGER) { sqlite3_result_int (context, -1); return; } } p_blob = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); path = (const char *) sqlite3_value_text (argv[1]); if (argc == 3) indent = sqlite3_value_int (argv[2]); if (!gaiaXmlStore (p_blob, n_bytes, path, indent)) { sqlite3_result_int (context, 0); return; } sqlite3_result_int (context, 1); } static void fnct_XB_GetDocument (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_GetDocument(XmlBLOB) / XB_GetDocument(XmlBLOB, int indent) / / returns the current XMLDocument (as UTF-8 TEXT) by parsing an XmlBLOB / or NULL if any error is encountered / / the returned buffer will be always null-terminated */ const unsigned char *p_blob; int n_bytes; char *xml; int len; int indent = -1; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (argc == 2) { if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } } p_blob = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); if (argc == 2) indent = sqlite3_value_int (argv[1]); xml = gaiaXmlTextFromBlob (p_blob, n_bytes, indent); if (xml == NULL) { sqlite3_result_null (context); return; } len = strlen ((const char *) xml); sqlite3_result_text (context, (char *) xml, len, free); } static void fnct_XB_SchemaValidate (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_SchemaValidate(XmlBLOB, text SchemaURI) / XB_SchemaValidate(XmlBLOB, text SchemaURI, bool compressed) / XB_SchemaValidate(XmlBLOB, int InternalSchemaURI) / XB_SchemaValidate(XmlBLOB, int InternalSchemaURI, bool compressed) / / returns a validated XmlBLOB object if the SchemaValidation was succesfull / or NULL if any error is encountered */ int len; unsigned char *p_result = NULL; const unsigned char *p_blob; int n_bytes; unsigned char *xml; int xml_len; int compressed = 1; const char *schemaURI = NULL; int use_internal_schema_uri = 0; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) use_internal_schema_uri = 1; else if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } if (argc == 3) { if (sqlite3_value_type (argv[2]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } } p_blob = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); if (argc == 3) compressed = sqlite3_value_int (argv[2]); gaiaXmlFromBlob (p_blob, n_bytes, -1, &xml, &xml_len); if (xml == NULL) { sqlite3_result_null (context); return; } if (use_internal_schema_uri) { /* using the SchemaURI internally defined within the XMLDocument */ char *internalSchemaURI = gaiaXmlGetInternalSchemaURI (sqlite3_user_data (context), xml, xml_len); if (internalSchemaURI == NULL) { /* unable to identify the SchemaURI */ p_result = NULL; } else { /* ok, attempting to validate using the internal SchemaURI */ gaiaXmlToBlob (sqlite3_user_data (context), xml, xml_len, compressed, internalSchemaURI, &p_result, &len, NULL, NULL); free (internalSchemaURI); } } else { schemaURI = (const char *) sqlite3_value_text (argv[1]); gaiaXmlToBlob (sqlite3_user_data (context), xml, xml_len, compressed, schemaURI, &p_result, &len, NULL, NULL); } free (xml); if (p_result == NULL) { sqlite3_result_null (context); return; } sqlite3_result_blob (context, p_result, len, free); } static void fnct_XB_Compress (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_Compress(XmlBLOB) / / returns a compressed XmlBLOB object / or NULL if any error is encountered */ int len; unsigned char *p_result = NULL; const unsigned char *p_blob; int n_bytes; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); gaiaXmlBlobCompression (p_blob, n_bytes, 1, &p_result, &len); if (p_result == NULL) { sqlite3_result_null (context); return; } sqlite3_result_blob (context, p_result, len, free); } static void fnct_XB_Uncompress (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_Uncompress(XmlBLOB) / / returns an uncompressed XmlBLOB object / or NULL if any error is encountered */ int len; unsigned char *p_result = NULL; const unsigned char *p_blob; int n_bytes; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); gaiaXmlBlobCompression (p_blob, n_bytes, 0, &p_result, &len); if (p_result == NULL) { sqlite3_result_null (context); return; } sqlite3_result_blob (context, p_result, len, free); } static void fnct_XB_IsValid (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_IsValid(XmlBLOB) / / returns TRUE if the current BLOB is an XmlBLOB, FALSE if not / or -1 if any error is encountered */ unsigned char *p_blob; int n_bytes; int ret; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); ret = gaiaIsValidXmlBlob (p_blob, n_bytes); sqlite3_result_int (context, ret); } static void fnct_XB_IsCompressed (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_IsCompressed(XmlBLOB) / / returns TRUE if the current BLOB is a compressed XmlBLOB, / FALSE if it's a valid uncompressed XmlBLOB / or -1 if any error is encountered */ unsigned char *p_blob; int n_bytes; int ret; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); ret = gaiaIsCompressedXmlBlob (p_blob, n_bytes); sqlite3_result_int (context, ret); } static void fnct_XB_IsSchemaValidated (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_IsSchemaValidated(XmlBLOB) / / returns TRUE if the current BLOB is a Schema validated XmlBLOB, / FALSE if it's a valid but not validated XmlBLOB / or -1 if any error is encountered */ unsigned char *p_blob; int n_bytes; int ret; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); ret = gaiaIsSchemaValidatedXmlBlob (p_blob, n_bytes); sqlite3_result_int (context, ret); } static void fnct_XB_IsIsoMetadata (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_IsIsoMetadata(XmlBLOB) / / returns TRUE if the current BLOB is an ISO Metadata XmlBLOB, / FALSE if it's a valid XmlBLOB but not an ISO Metadata / or -1 if any error is encountered */ unsigned char *p_blob; int n_bytes; int ret; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); ret = gaiaIsIsoMetadataXmlBlob (p_blob, n_bytes); sqlite3_result_int (context, ret); } static void fnct_XB_IsSldSeVectorStyle (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_IsSldSeVectorStyle(XmlBLOB) / / returns TRUE if the current BLOB is an SLD/SE Vector Style XmlBLOB, / FALSE if it's a valid XmlBLOB but not an SLD/SE Style / or -1 if any error is encountered */ unsigned char *p_blob; int n_bytes; int ret; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); ret = gaiaIsSldSeVectorStyleXmlBlob (p_blob, n_bytes); sqlite3_result_int (context, ret); } static void fnct_XB_IsSldSeRasterStyle (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_IsSldSeRasterStyle(XmlBLOB) / / returns TRUE if the current BLOB is an SLD/SE Raster Style XmlBLOB, / FALSE if it's a valid XmlBLOB but not an SLD/SE Style / or -1 if any error is encountered */ unsigned char *p_blob; int n_bytes; int ret; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); ret = gaiaIsSldSeRasterStyleXmlBlob (p_blob, n_bytes); sqlite3_result_int (context, ret); } static void fnct_XB_IsSvg (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_IsSvg(XmlBLOB) / / returns TRUE if the current BLOB is an SLD/SE Style XmlBLOB, / FALSE if it's a valid XmlBLOB but not an SLD/SE Style / or -1 if any error is encountered */ unsigned char *p_blob; int n_bytes; int ret; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); ret = gaiaIsSvgXmlBlob (p_blob, n_bytes); sqlite3_result_int (context, ret); } static void fnct_XB_GetDocumentSize (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_GetDocumentSize(XmlBLOB) / / if the BLOB is a valid XmlBLOB will return the XMLDocument size (in bytes) / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int ret; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); ret = gaiaXmlBlobGetDocumentSize (p_blob, n_bytes); if (ret < 0) sqlite3_result_null (context); else sqlite3_result_int (context, ret); } static void fnct_XB_GetSchemaURI (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_GetSchemaURI(XmlBLOB) / / if the BLOB is a valid XmlBLOB containing a SchemaURI then / the SchemaURI will be returned / return NULL on any other case */ const unsigned char *p_blob; int n_bytes; char *schema_uri; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); schema_uri = gaiaXmlBlobGetSchemaURI (p_blob, n_bytes); if (schema_uri == NULL) sqlite3_result_null (context); else sqlite3_result_text (context, schema_uri, strlen (schema_uri), free); } static void fnct_XB_GetFileId (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_GetFileId(XmlBLOB) / / if the BLOB is a valid XmlBLOB containing a FileIdentifier then / the FileIdentifier will be returned / return NULL on any other case */ const unsigned char *p_blob; int n_bytes; char *file_identifier; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); file_identifier = gaiaXmlBlobGetFileId (p_blob, n_bytes); if (file_identifier == NULL) sqlite3_result_null (context); else sqlite3_result_text (context, file_identifier, strlen (file_identifier), free); } static void fnct_XB_GetParentId (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_GetParentId(XmlBLOB) / / if the BLOB is a valid XmlBLOB containing a ParentIdentifier then / the ParentIdentifier will be returned / return NULL on any other case */ const unsigned char *p_blob; int n_bytes; char *parent_identifier; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); parent_identifier = gaiaXmlBlobGetParentId (p_blob, n_bytes); if (parent_identifier == NULL) sqlite3_result_null (context); else sqlite3_result_text (context, parent_identifier, strlen (parent_identifier), free); } static void fnct_XB_SetFileId (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_SetFileId(XmlBLOB, Text value) / / if the BLOB is a valid XmlBLOB of the ISO-Metadata type / already containing a FileID then this function will / return a new XmlBLOB containing the new FileID / return NULL on any other case */ const unsigned char *p_blob; int n_bytes; unsigned char *new_blob; int new_bytes; const char *identifier; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } p_blob = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); identifier = (const char *) sqlite3_value_text (argv[1]); if (!gaiaXmlBlobSetFileId (sqlite3_user_data (context), p_blob, n_bytes, identifier, &new_blob, &new_bytes)) sqlite3_result_null (context); else sqlite3_result_blob (context, new_blob, new_bytes, free); } static void fnct_XB_SetParentId (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_SetParentId(XmlBLOB, Text value) / / if the BLOB is a valid XmlBLOB of the ISO-Metadata type / already containing a ParentID then this function will / return a new XmlBLOB containing the new ParentID / return NULL on any other case */ const unsigned char *p_blob; int n_bytes; unsigned char *new_blob; int new_bytes; const char *identifier; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } p_blob = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); identifier = (const char *) sqlite3_value_text (argv[1]); if (!gaiaXmlBlobSetParentId (sqlite3_user_data (context), p_blob, n_bytes, identifier, &new_blob, &new_bytes)) sqlite3_result_null (context); else sqlite3_result_blob (context, new_blob, new_bytes, free); } static void fnct_XB_AddFileId (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_AddFileId(XmlBLOB, Text value, Text ns_id, Text uri_id, Text ns_charstr, Text uri_charstr) / / if the BLOB is a valid XmlBLOB of the ISO-Metadata type / not containing a FileID then this function will / return a new XmlBLOB containing the new FileID / return NULL on any other case */ const unsigned char *p_blob; int n_bytes; unsigned char *new_blob; int new_bytes; const char *identifier; const char *ns_id = NULL; const char *uri_id = NULL; const char *ns_charstr = NULL; const char *uri_charstr = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_TEXT || sqlite3_value_type (argv[2]) == SQLITE_NULL) ; else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[3]) == SQLITE_TEXT || sqlite3_value_type (argv[3]) == SQLITE_NULL) ; else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[4]) == SQLITE_TEXT || sqlite3_value_type (argv[4]) == SQLITE_NULL) ; else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[5]) == SQLITE_TEXT || sqlite3_value_type (argv[5]) == SQLITE_NULL) ; else { sqlite3_result_null (context); return; } p_blob = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); identifier = (const char *) sqlite3_value_text (argv[1]); if (sqlite3_value_type (argv[2]) == SQLITE_TEXT) ns_id = (const char *) sqlite3_value_text (argv[2]); if (sqlite3_value_type (argv[3]) == SQLITE_TEXT) uri_id = (const char *) sqlite3_value_text (argv[3]); if (sqlite3_value_type (argv[4]) == SQLITE_TEXT) ns_charstr = (const char *) sqlite3_value_text (argv[4]); if (sqlite3_value_type (argv[5]) == SQLITE_TEXT) uri_charstr = (const char *) sqlite3_value_text (argv[5]); if (!gaiaXmlBlobAddFileId (sqlite3_user_data (context), p_blob, n_bytes, identifier, ns_id, uri_id, ns_charstr, uri_charstr, &new_blob, &new_bytes)) sqlite3_result_null (context); else sqlite3_result_blob (context, new_blob, new_bytes, free); } static void fnct_XB_AddParentId (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_AddParentId(XmlBLOB, Text value, Text ns_id, Text uri_id, Text ns_charstr, Text url_charstr) / / if the BLOB is a valid XmlBLOB of the ISO-Metadata type / not containing a ParentID then this function will / return a new XmlBLOB containing the new ParentID / return NULL on any other case */ const unsigned char *p_blob; int n_bytes; unsigned char *new_blob; int new_bytes; const char *identifier; const char *ns_id = NULL; const char *uri_id = NULL; const char *ns_charstr = NULL; const char *uri_charstr = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_TEXT || sqlite3_value_type (argv[2]) == SQLITE_NULL) ; else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[3]) == SQLITE_TEXT || sqlite3_value_type (argv[3]) == SQLITE_NULL) ; else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[4]) == SQLITE_TEXT || sqlite3_value_type (argv[4]) == SQLITE_NULL) ; else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[5]) == SQLITE_TEXT || sqlite3_value_type (argv[5]) == SQLITE_NULL) ; else { sqlite3_result_null (context); return; } p_blob = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); identifier = (const char *) sqlite3_value_text (argv[1]); if (sqlite3_value_type (argv[2]) == SQLITE_TEXT) ns_id = (const char *) sqlite3_value_text (argv[2]); if (sqlite3_value_type (argv[3]) == SQLITE_TEXT) uri_id = (const char *) sqlite3_value_text (argv[3]); if (sqlite3_value_type (argv[4]) == SQLITE_TEXT) ns_charstr = (const char *) sqlite3_value_text (argv[4]); if (sqlite3_value_type (argv[5]) == SQLITE_TEXT) uri_charstr = (const char *) sqlite3_value_text (argv[5]); if (!gaiaXmlBlobAddParentId (sqlite3_user_data (context), p_blob, n_bytes, identifier, ns_id, uri_id, ns_charstr, uri_charstr, &new_blob, &new_bytes)) sqlite3_result_null (context); else sqlite3_result_blob (context, new_blob, new_bytes, free); } static void fnct_XB_GetTitle (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_GetTitle(XmlBLOB) / / if the BLOB is a valid XmlBLOB containing a Title then / the Title will be returned / return NULL on any other case */ const unsigned char *p_blob; int n_bytes; char *title; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); title = gaiaXmlBlobGetTitle (p_blob, n_bytes); if (title == NULL) sqlite3_result_null (context); else sqlite3_result_text (context, title, strlen (title), free); } static void fnct_XB_GetAbstract (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_GetAbstract(XmlBLOB) / / if the BLOB is a valid XmlBLOB containing an Abstract then / the Abstract will be returned / return NULL on any other case */ const unsigned char *p_blob; int n_bytes; char *abstract; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); abstract = gaiaXmlBlobGetAbstract (p_blob, n_bytes); if (abstract == NULL) sqlite3_result_null (context); else sqlite3_result_text (context, abstract, strlen (abstract), free); } static void fnct_XB_GetGeometry (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_GetGeometry(XmlBLOB) / / if the BLOB is a valid XmlBLOB containing a Geometry then / the Geometry will be returned / return NULL on any other case */ const unsigned char *p_blob; int n_bytes; int blob_len; unsigned char *blob; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); gaiaXmlBlobGetGeometry (p_blob, n_bytes, &blob, &blob_len); if (blob == NULL) sqlite3_result_null (context); else sqlite3_result_blob (context, blob, blob_len, free); } static void fnct_XB_GetEncoding (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_GetEncoding(XmlBLOB) / / if the BLOB is a valid XmlBLOB explicitly defining an encoding then / the charset name will be returned / return NULL on any other case */ const unsigned char *p_blob; int n_bytes; char *encoding; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); encoding = gaiaXmlBlobGetEncoding (p_blob, n_bytes); if (encoding == NULL) sqlite3_result_null (context); else sqlite3_result_text (context, encoding, strlen (encoding), free); } static void fnct_XB_GetInternalSchemaURI (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_GetInternalSchemaURI(XmlDocument) / / if the XMLDocument is valid and it contains an internally / defined SchemaURI then this SchemaURI will be returned / return NULL on any other case */ const unsigned char *xml; int xml_len; char *schema_uri; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } xml = sqlite3_value_blob (argv[0]); xml_len = sqlite3_value_bytes (argv[0]); schema_uri = gaiaXmlGetInternalSchemaURI (sqlite3_user_data (context), xml, xml_len); if (schema_uri == NULL) sqlite3_result_null (context); else sqlite3_result_text (context, schema_uri, strlen (schema_uri), free); } static void fnct_XB_GetLastParseError (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_GetLastParseError() / / return the most recent XML Parse error/warning (if any) / return NULL on any other case */ char *msg; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ msg = gaiaXmlBlobGetLastParseError (sqlite3_user_data (context)); if (msg == NULL) sqlite3_result_null (context); else sqlite3_result_text (context, msg, strlen (msg), SQLITE_STATIC); } static void fnct_XB_GetLastValidateError (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_GetLastValidateError() / / return the most recent XML Validate error/warning (if any) / return NULL on any other case */ char *msg; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ msg = gaiaXmlBlobGetLastValidateError (sqlite3_user_data (context)); if (msg == NULL) sqlite3_result_null (context); else sqlite3_result_text (context, msg, strlen (msg), SQLITE_STATIC); } static void fnct_XB_IsValidXPathExpression (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_IsValidXPathExpression(text XPathExpression) / / returns TRUE if the current arg is a valid XPathExpression, / FALSE if it's not / or -1 if any error is encountered */ int ret; const char *xpath; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_int (context, -1); return; } xpath = (const char *) sqlite3_value_text (argv[0]); ret = gaiaIsValidXPathExpression (sqlite3_user_data (context), xpath); sqlite3_result_int (context, ret); } static void fnct_XB_GetLastXPathError (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_GetLastXPathError() / / return the most recent XML Validate error/warning (if any) / return NULL on any other case */ char *msg; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ msg = gaiaXmlBlobGetLastXPathError (sqlite3_user_data (context)); if (msg == NULL) sqlite3_result_null (context); else sqlite3_result_text (context, msg, strlen (msg), SQLITE_STATIC); } static void fnct_XB_CacheFlush (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_CacheFlush() / / resets the Internal XML Schema Cache to its initial empty state / / returns TRUE on success */ int i; struct splite_xmlSchema_cache_item *p_xmlSchema; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ for (i = 0; i < MAX_XMLSCHEMA_CACHE; i++) { /* freeing the XmlSchema cache */ p_xmlSchema = &(cache->xmlSchemaCache[i]); splite_free_xml_schema_cache_item (p_xmlSchema); } sqlite3_result_int (context, 1); } #endif /* end including LIBXML2 */ SPATIALITE_DECLARE void * spatialite_alloc_connection () { /* allocating and initializing an empty internal cache */ gaiaOutBufferPtr out; int i; struct splite_internal_cache *cache; struct splite_geos_cache_item *p; struct splite_xmlSchema_cache_item *p_xmlSchema; cache = malloc (sizeof (struct splite_internal_cache)); /* initializing the XML error buffers */ out = malloc (sizeof (gaiaOutBuffer)); gaiaOutBufferInitialize (out); cache->xmlParsingErrors = out; out = malloc (sizeof (gaiaOutBuffer)); gaiaOutBufferInitialize (out); cache->xmlSchemaValidationErrors = out; out = malloc (sizeof (gaiaOutBuffer)); gaiaOutBufferInitialize (out); cache->xmlXPathErrors = out; /* initializing the GEOS cache */ p = &(cache->cacheItem1); memset (p->gaiaBlob, '\0', 64); p->gaiaBlobSize = 0; p->crc32 = 0; p->geosGeom = NULL; p->preparedGeosGeom = NULL; p = &(cache->cacheItem2); memset (p->gaiaBlob, '\0', 64); p->gaiaBlobSize = 0; p->crc32 = 0; p->geosGeom = NULL; p->preparedGeosGeom = NULL; for (i = 0; i < MAX_XMLSCHEMA_CACHE; i++) { /* initializing the XmlSchema cache */ p_xmlSchema = &(cache->xmlSchemaCache[i]); p_xmlSchema->timestamp = 0; p_xmlSchema->schemaURI = NULL; p_xmlSchema->schemaDoc = NULL; p_xmlSchema->parserCtxt = NULL; p_xmlSchema->schema = NULL; } return cache; } SPATIALITE_PRIVATE void * register_spatialite_sql_functions (void *p_db, void *p_cache) { sqlite3 *db = p_db; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; const char *security_level; if (cache == NULL) { /* dirty compatibility mode: allocating an internal cache */ cache = spatialite_alloc_connection (); } sqlite3_create_function (db, "spatialite_version", 0, SQLITE_ANY, 0, fnct_spatialite_version, 0, 0); sqlite3_create_function (db, "proj4_version", 0, SQLITE_ANY, 0, fnct_proj4_version, 0, 0); sqlite3_create_function (db, "geos_version", 0, SQLITE_ANY, 0, fnct_geos_version, 0, 0); sqlite3_create_function (db, "lwgeom_version", 0, SQLITE_ANY, 0, fnct_lwgeom_version, 0, 0); sqlite3_create_function (db, "libxml2_version", 0, SQLITE_ANY, 0, fnct_libxml2_version, 0, 0); sqlite3_create_function (db, "HasProj", 0, SQLITE_ANY, 0, fnct_has_proj, 0, 0); sqlite3_create_function (db, "HasGeos", 0, SQLITE_ANY, 0, fnct_has_geos, 0, 0); sqlite3_create_function (db, "HasGeosAdvanced", 0, SQLITE_ANY, 0, fnct_has_geos_advanced, 0, 0); sqlite3_create_function (db, "HasGeosTrunk", 0, SQLITE_ANY, 0, fnct_has_geos_trunk, 0, 0); sqlite3_create_function (db, "HasLwGeom", 0, SQLITE_ANY, 0, fnct_has_lwgeom, 0, 0); sqlite3_create_function (db, "HasMathSql", 0, SQLITE_ANY, 0, fnct_has_math_sql, 0, 0); sqlite3_create_function (db, "HasGeoCallbacks", 0, SQLITE_ANY, 0, fnct_has_geo_callbacks, 0, 0); sqlite3_create_function (db, "HasIconv", 0, SQLITE_ANY, 0, fnct_has_iconv, 0, 0); sqlite3_create_function (db, "HasFreeXL", 0, SQLITE_ANY, 0, fnct_has_freeXL, 0, 0); sqlite3_create_function (db, "HasEpsg", 0, SQLITE_ANY, 0, fnct_has_epsg, 0, 0); sqlite3_create_function (db, "HasLibXML2", 0, SQLITE_ANY, 0, fnct_has_libxml2, 0, 0); sqlite3_create_function (db, "GeometryConstraints", 3, SQLITE_ANY, 0, fnct_GeometryConstraints, 0, 0); sqlite3_create_function (db, "GeometryConstraints", 4, SQLITE_ANY, 0, fnct_GeometryConstraints, 0, 0); sqlite3_create_function (db, "RTreeAlign", 3, SQLITE_ANY, 0, fnct_RTreeAlign, 0, 0); sqlite3_create_function (db, "IsValidNoDataPixel", 3, SQLITE_ANY, 0, fnct_IsValidNoDataPixel, 0, 0); sqlite3_create_function (db, "IsPopulatedCoverage", 1, SQLITE_ANY, 0, fnct_IsPopulatedCoverage, 0, 0); sqlite3_create_function (db, "CheckSpatialMetaData", 0, SQLITE_ANY, 0, fnct_CheckSpatialMetaData, 0, 0); sqlite3_create_function (db, "AutoFDOStart", 0, SQLITE_ANY, 0, fnct_AutoFDOStart, 0, 0); sqlite3_create_function (db, "AutoFDOStop", 0, SQLITE_ANY, 0, fnct_AutoFDOStop, 0, 0); sqlite3_create_function (db, "InitFDOSpatialMetaData", 0, SQLITE_ANY, 0, fnct_InitFDOSpatialMetaData, 0, 0); sqlite3_create_function (db, "AddFDOGeometryColumn", 6, SQLITE_ANY, 0, fnct_AddFDOGeometryColumn, 0, 0); sqlite3_create_function (db, "RecoverFDOGeometryColumn", 6, SQLITE_ANY, 0, fnct_RecoverFDOGeometryColumn, 0, 0); sqlite3_create_function (db, "DiscardFDOGeometryColumn", 2, SQLITE_ANY, 0, fnct_DiscardFDOGeometryColumn, 0, 0); sqlite3_create_function (db, "InitSpatialMetaData", 0, SQLITE_ANY, 0, fnct_InitSpatialMetaData, 0, 0); sqlite3_create_function (db, "InitSpatialMetaData", 1, SQLITE_ANY, 0, fnct_InitSpatialMetaData, 0, 0); sqlite3_create_function (db, "InitSpatialMetaData", 2, SQLITE_ANY, 0, fnct_InitSpatialMetaData, 0, 0); sqlite3_create_function (db, "InsertEpsgSrid", 1, SQLITE_ANY, 0, fnct_InsertEpsgSrid, 0, 0); sqlite3_create_function (db, "AddGeometryColumn", 4, SQLITE_ANY, 0, fnct_AddGeometryColumn, 0, 0); sqlite3_create_function (db, "AddGeometryColumn", 5, SQLITE_ANY, 0, fnct_AddGeometryColumn, 0, 0); sqlite3_create_function (db, "AddGeometryColumn", 6, SQLITE_ANY, 0, fnct_AddGeometryColumn, 0, 0); sqlite3_create_function (db, "RecoverGeometryColumn", 4, SQLITE_ANY, 0, fnct_RecoverGeometryColumn, 0, 0); sqlite3_create_function (db, "RecoverGeometryColumn", 5, SQLITE_ANY, 0, fnct_RecoverGeometryColumn, 0, 0); sqlite3_create_function (db, "DiscardGeometryColumn", 2, SQLITE_ANY, 0, fnct_DiscardGeometryColumn, 0, 0); sqlite3_create_function (db, "RegisterVirtualGeometry", 1, SQLITE_ANY, 0, fnct_RegisterVirtualGeometry, 0, 0); sqlite3_create_function (db, "DropVirtualGeometry", 1, SQLITE_ANY, 0, fnct_DropVirtualGeometry, 0, 0); sqlite3_create_function (db, "RecoverSpatialIndex", 0, SQLITE_ANY, 0, fnct_RecoverSpatialIndex, 0, 0); sqlite3_create_function (db, "RecoverSpatialIndex", 1, SQLITE_ANY, 0, fnct_RecoverSpatialIndex, 0, 0); sqlite3_create_function (db, "RecoverSpatialIndex", 2, SQLITE_ANY, 0, fnct_RecoverSpatialIndex, 0, 0); sqlite3_create_function (db, "RecoverSpatialIndex", 3, SQLITE_ANY, 0, fnct_RecoverSpatialIndex, 0, 0); sqlite3_create_function (db, "CheckSpatialIndex", 0, SQLITE_ANY, 0, fnct_CheckSpatialIndex, 0, 0); sqlite3_create_function (db, "CheckSpatialIndex", 2, SQLITE_ANY, 0, fnct_CheckSpatialIndex, 0, 0); sqlite3_create_function (db, "CreateSpatialIndex", 2, SQLITE_ANY, 0, fnct_CreateSpatialIndex, 0, 0); sqlite3_create_function (db, "CreateMbrCache", 2, SQLITE_ANY, 0, fnct_CreateMbrCache, 0, 0); sqlite3_create_function (db, "DisableSpatialIndex", 2, SQLITE_ANY, 0, fnct_DisableSpatialIndex, 0, 0); sqlite3_create_function (db, "RebuildGeometryTriggers", 2, SQLITE_ANY, 0, fnct_RebuildGeometryTriggers, 0, 0); sqlite3_create_function (db, "UpdateLayerStatistics", 0, SQLITE_ANY, 0, fnct_UpdateLayerStatistics, 0, 0); sqlite3_create_function (db, "UpdateLayerStatistics", 1, SQLITE_ANY, 0, fnct_UpdateLayerStatistics, 0, 0); sqlite3_create_function (db, "UpdateLayerStatistics", 2, SQLITE_ANY, 0, fnct_UpdateLayerStatistics, 0, 0); sqlite3_create_function (db, "GetLayerExtent", 1, SQLITE_ANY, 0, fnct_GetLayerExtent, 0, 0); sqlite3_create_function (db, "GetLayerExtent", 2, SQLITE_ANY, 0, fnct_GetLayerExtent, 0, 0); sqlite3_create_function (db, "GetLayerExtent", 3, SQLITE_ANY, 0, fnct_GetLayerExtent, 0, 0); sqlite3_create_function (db, "CreateRasterCoveragesTable", 0, SQLITE_ANY, 0, fnct_CreateRasterCoveragesTable, 0, 0); sqlite3_create_function (db, "AsText", 1, SQLITE_ANY, 0, fnct_AsText, 0, 0); sqlite3_create_function (db, "ST_AsText", 1, SQLITE_ANY, 0, fnct_AsText, 0, 0); sqlite3_create_function (db, "AsWkt", 1, SQLITE_ANY, 0, fnct_AsWkt, 0, 0); sqlite3_create_function (db, "AsWkt", 2, SQLITE_ANY, 0, fnct_AsWkt, 0, 0); sqlite3_create_function (db, "AsSvg", 1, SQLITE_ANY, 0, fnct_AsSvg1, 0, 0); sqlite3_create_function (db, "AsSvg", 2, SQLITE_ANY, 0, fnct_AsSvg2, 0, 0); sqlite3_create_function (db, "AsSvg", 3, SQLITE_ANY, 0, fnct_AsSvg3, 0, 0); #ifndef OMIT_PROJ /* PROJ.4 is strictly required to support KML */ sqlite3_create_function (db, "AsKml", 1, SQLITE_ANY, 0, fnct_AsKml, 0, 0); sqlite3_create_function (db, "AsKml", 2, SQLITE_ANY, 0, fnct_AsKml, 0, 0); sqlite3_create_function (db, "AsKml", 3, SQLITE_ANY, 0, fnct_AsKml, 0, 0); sqlite3_create_function (db, "AsKml", 4, SQLITE_ANY, 0, fnct_AsKml, 0, 0); #endif /* end including PROJ.4 */ sqlite3_create_function (db, "AsGml", 1, SQLITE_ANY, 0, fnct_AsGml, 0, 0); sqlite3_create_function (db, "AsGml", 2, SQLITE_ANY, 0, fnct_AsGml, 0, 0); sqlite3_create_function (db, "AsGml", 3, SQLITE_ANY, 0, fnct_AsGml, 0, 0); sqlite3_create_function (db, "GeomFromGml", 1, SQLITE_ANY, 0, fnct_FromGml, 0, 0); sqlite3_create_function (db, "AsGeoJSON", 1, SQLITE_ANY, 0, fnct_AsGeoJSON, 0, 0); sqlite3_create_function (db, "AsGeoJSON", 2, SQLITE_ANY, 0, fnct_AsGeoJSON, 0, 0); sqlite3_create_function (db, "AsGeoJSON", 3, SQLITE_ANY, 0, fnct_AsGeoJSON, 0, 0); sqlite3_create_function (db, "GeomFromGeoJSON", 1, SQLITE_ANY, 0, fnct_FromGeoJSON, 0, 0); sqlite3_create_function (db, "GeomFromKml", 1, SQLITE_ANY, 0, fnct_FromKml, 0, 0); sqlite3_create_function (db, "AsFGF", 2, SQLITE_ANY, 0, fnct_AsFGF, 0, 0); sqlite3_create_function (db, "GeomFromEWKB", 1, SQLITE_ANY, 0, fnct_FromEWKB, 0, 0); sqlite3_create_function (db, "AsEWKB", 1, SQLITE_ANY, 0, fnct_ToEWKB, 0, 0); sqlite3_create_function (db, "AsEWKT", 1, SQLITE_ANY, 0, fnct_ToEWKT, 0, 0); sqlite3_create_function (db, "GeomFromEWKT", 1, SQLITE_ANY, 0, fnct_FromEWKT, 0, 0); sqlite3_create_function (db, "AsBinary", 1, SQLITE_ANY, 0, fnct_AsBinary, 0, 0); sqlite3_create_function (db, "ST_AsBinary", 1, SQLITE_ANY, 0, fnct_AsBinary, 0, 0); sqlite3_create_function (db, "GeomFromText", 1, SQLITE_ANY, 0, fnct_GeomFromText1, 0, 0); sqlite3_create_function (db, "GeomFromText", 2, SQLITE_ANY, 0, fnct_GeomFromText2, 0, 0); sqlite3_create_function (db, "GeometryFromText", 1, SQLITE_ANY, 0, fnct_GeomFromText1, 0, 0); sqlite3_create_function (db, "GeometryFromText", 2, SQLITE_ANY, 0, fnct_GeomFromText2, 0, 0); sqlite3_create_function (db, "GeomCollFromText", 1, SQLITE_ANY, 0, fnct_GeomCollFromText1, 0, 0); sqlite3_create_function (db, "GeomCollFromText", 2, SQLITE_ANY, 0, fnct_GeomCollFromText2, 0, 0); sqlite3_create_function (db, "GeometryCollectionFromText", 1, SQLITE_ANY, 0, fnct_GeomCollFromText1, 0, 0); sqlite3_create_function (db, "GeometryCollectionFromText", 2, SQLITE_ANY, 0, fnct_GeomCollFromText2, 0, 0); sqlite3_create_function (db, "PointFromText", 1, SQLITE_ANY, 0, fnct_PointFromText1, 0, 0); sqlite3_create_function (db, "PointFromText", 2, SQLITE_ANY, 0, fnct_PointFromText2, 0, 0); sqlite3_create_function (db, "LineFromText", 1, SQLITE_ANY, 0, fnct_LineFromText1, 0, 0); sqlite3_create_function (db, "LineFromText", 2, SQLITE_ANY, 0, fnct_LineFromText2, 0, 0); sqlite3_create_function (db, "LineStringFromText", 1, SQLITE_ANY, 0, fnct_LineFromText1, 0, 0); sqlite3_create_function (db, "LineStringFromText", 2, SQLITE_ANY, 0, fnct_LineFromText2, 0, 0); sqlite3_create_function (db, "PolyFromText", 1, SQLITE_ANY, 0, fnct_PolyFromText1, 0, 0); sqlite3_create_function (db, "PolyFromText", 2, SQLITE_ANY, 0, fnct_PolyFromText2, 0, 0); sqlite3_create_function (db, "PolygonFromText", 1, SQLITE_ANY, 0, fnct_PolyFromText1, 0, 0); sqlite3_create_function (db, "PolygonFromText", 2, SQLITE_ANY, 0, fnct_PolyFromText2, 0, 0); sqlite3_create_function (db, "MPointFromText", 1, SQLITE_ANY, 0, fnct_MPointFromText1, 0, 0); sqlite3_create_function (db, "MPointFromText", 2, SQLITE_ANY, 0, fnct_MPointFromText2, 0, 0); sqlite3_create_function (db, "MultiPointFromText", 1, SQLITE_ANY, 0, fnct_MPointFromText1, 0, 0); sqlite3_create_function (db, "MultiPointFromText", 2, SQLITE_ANY, 0, fnct_MPointFromText2, 0, 0); sqlite3_create_function (db, "MLineFromText", 1, SQLITE_ANY, 0, fnct_MLineFromText1, 0, 0); sqlite3_create_function (db, "MLineFromText", 2, SQLITE_ANY, 0, fnct_MLineFromText2, 0, 0); sqlite3_create_function (db, "MultiLineStringFromText", 1, SQLITE_ANY, 0, fnct_MLineFromText1, 0, 0); sqlite3_create_function (db, "MultiLineStringFromText", 2, SQLITE_ANY, 0, fnct_MLineFromText2, 0, 0); sqlite3_create_function (db, "MPolyFromText", 1, SQLITE_ANY, 0, fnct_MPolyFromText1, 0, 0); sqlite3_create_function (db, "MPolyFromText", 2, SQLITE_ANY, 0, fnct_MPolyFromText2, 0, 0); sqlite3_create_function (db, "MultiPolygonFromText", 1, SQLITE_ANY, 0, fnct_MPolyFromText1, 0, 0); sqlite3_create_function (db, "MultiPolygonFromText", 2, SQLITE_ANY, 0, fnct_MPolyFromText2, 0, 0); sqlite3_create_function (db, "GeomFromWKB", 1, SQLITE_ANY, 0, fnct_GeomFromWkb1, 0, 0); sqlite3_create_function (db, "GeomFromWKB", 2, SQLITE_ANY, 0, fnct_GeomFromWkb2, 0, 0); sqlite3_create_function (db, "GeometryFromWKB", 1, SQLITE_ANY, 0, fnct_GeomFromWkb1, 0, 0); sqlite3_create_function (db, "GeometryFromWKB", 2, SQLITE_ANY, 0, fnct_GeomFromWkb2, 0, 0); sqlite3_create_function (db, "GeomCollFromWKB", 1, SQLITE_ANY, 0, fnct_GeomCollFromWkb1, 0, 0); sqlite3_create_function (db, "GeomCollFromWKB", 2, SQLITE_ANY, 0, fnct_GeomCollFromWkb2, 0, 0); sqlite3_create_function (db, "GeometryCollectionFromWKB", 1, SQLITE_ANY, 0, fnct_GeomCollFromWkb1, 0, 0); sqlite3_create_function (db, "GeometryCollectionFromWKB", 2, SQLITE_ANY, 0, fnct_GeomCollFromWkb2, 0, 0); sqlite3_create_function (db, "PointFromWKB", 1, SQLITE_ANY, 0, fnct_PointFromWkb1, 0, 0); sqlite3_create_function (db, "PointFromWKB", 2, SQLITE_ANY, 0, fnct_PointFromWkb2, 0, 0); sqlite3_create_function (db, "LineFromWKB", 1, SQLITE_ANY, 0, fnct_LineFromWkb1, 0, 0); sqlite3_create_function (db, "LineFromWKB", 2, SQLITE_ANY, 0, fnct_LineFromWkb2, 0, 0); sqlite3_create_function (db, "LineStringFromWKB", 1, SQLITE_ANY, 0, fnct_LineFromWkb1, 0, 0); sqlite3_create_function (db, "LineStringFromWKB", 2, SQLITE_ANY, 0, fnct_LineFromWkb2, 0, 0); sqlite3_create_function (db, "PolyFromWKB", 1, SQLITE_ANY, 0, fnct_PolyFromWkb1, 0, 0); sqlite3_create_function (db, "PolyFromWKB", 2, SQLITE_ANY, 0, fnct_PolyFromWkb2, 0, 0); sqlite3_create_function (db, "PolygonFromWKB", 1, SQLITE_ANY, 0, fnct_PolyFromWkb1, 0, 0); sqlite3_create_function (db, "PolygonFromWKB", 2, SQLITE_ANY, 0, fnct_PolyFromWkb2, 0, 0); sqlite3_create_function (db, "MPointFromWKB", 1, SQLITE_ANY, 0, fnct_MPointFromWkb1, 0, 0); sqlite3_create_function (db, "MPointFromWKB", 2, SQLITE_ANY, 0, fnct_MPointFromWkb2, 0, 0); sqlite3_create_function (db, "MultiPointFromWKB", 1, SQLITE_ANY, 0, fnct_MPointFromWkb1, 0, 0); sqlite3_create_function (db, "MultiPointFromWKB", 2, SQLITE_ANY, 0, fnct_MPointFromWkb2, 0, 0); sqlite3_create_function (db, "MLineFromWKB", 1, SQLITE_ANY, 0, fnct_MLineFromWkb1, 0, 0); sqlite3_create_function (db, "MLineFromWKB", 2, SQLITE_ANY, 0, fnct_MLineFromWkb2, 0, 0); sqlite3_create_function (db, "MultiLineStringFromWKB", 1, SQLITE_ANY, 0, fnct_MLineFromWkb1, 0, 0); sqlite3_create_function (db, "MultiLineStringFromWKB", 2, SQLITE_ANY, 0, fnct_MLineFromWkb2, 0, 0); sqlite3_create_function (db, "MPolyFromWKB", 1, SQLITE_ANY, 0, fnct_MPolyFromWkb1, 0, 0); sqlite3_create_function (db, "MPolyFromWKB", 2, SQLITE_ANY, 0, fnct_MPolyFromWkb2, 0, 0); sqlite3_create_function (db, "MultiPolygonFromWKB", 1, SQLITE_ANY, 0, fnct_MPolyFromWkb1, 0, 0); sqlite3_create_function (db, "MultiPolygonFromWKB", 2, SQLITE_ANY, 0, fnct_MPolyFromWkb2, 0, 0); sqlite3_create_function (db, "ST_WKTToSQL", 1, SQLITE_ANY, 0, fnct_WktToSql, 0, 0); sqlite3_create_function (db, "ST_GeomFromText", 1, SQLITE_ANY, 0, fnct_GeomFromText1, 0, 0); sqlite3_create_function (db, "ST_GeomFromText", 2, SQLITE_ANY, 0, fnct_GeomFromText2, 0, 0); sqlite3_create_function (db, "ST_GeometryFromText", 1, SQLITE_ANY, 0, fnct_GeomFromText1, 0, 0); sqlite3_create_function (db, "ST_GeometryFromText", 2, SQLITE_ANY, 0, fnct_GeomFromText2, 0, 0); sqlite3_create_function (db, "ST_GeomCollFromText", 1, SQLITE_ANY, 0, fnct_GeomCollFromText1, 0, 0); sqlite3_create_function (db, "ST_GeomCollFromText", 2, SQLITE_ANY, 0, fnct_GeomCollFromText2, 0, 0); sqlite3_create_function (db, "ST_GeometryCollectionFromText", 1, SQLITE_ANY, 0, fnct_GeomCollFromText1, 0, 0); sqlite3_create_function (db, "ST_GeometryCollectionFromText", 2, SQLITE_ANY, 0, fnct_GeomCollFromText2, 0, 0); sqlite3_create_function (db, "ST_PointFromText", 1, SQLITE_ANY, 0, fnct_PointFromText1, 0, 0); sqlite3_create_function (db, "ST_PointFromText", 2, SQLITE_ANY, 0, fnct_PointFromText2, 0, 0); sqlite3_create_function (db, "ST_LineFromText", 1, SQLITE_ANY, 0, fnct_LineFromText1, 0, 0); sqlite3_create_function (db, "ST_LineFromText", 2, SQLITE_ANY, 0, fnct_LineFromText2, 0, 0); sqlite3_create_function (db, "ST_LineStringFromText", 1, SQLITE_ANY, 0, fnct_LineFromText1, 0, 0); sqlite3_create_function (db, "ST_LineStringFromText", 2, SQLITE_ANY, 0, fnct_LineFromText2, 0, 0); sqlite3_create_function (db, "ST_PolyFromText", 1, SQLITE_ANY, 0, fnct_PolyFromText1, 0, 0); sqlite3_create_function (db, "ST_PolyFromText", 2, SQLITE_ANY, 0, fnct_PolyFromText2, 0, 0); sqlite3_create_function (db, "ST_PolygonFromText", 1, SQLITE_ANY, 0, fnct_PolyFromText1, 0, 0); sqlite3_create_function (db, "ST_PolygonFromText", 2, SQLITE_ANY, 0, fnct_PolyFromText2, 0, 0); sqlite3_create_function (db, "ST_MPointFromText", 1, SQLITE_ANY, 0, fnct_MPointFromText1, 0, 0); sqlite3_create_function (db, "ST_MPointFromText", 2, SQLITE_ANY, 0, fnct_MPointFromText2, 0, 0); sqlite3_create_function (db, "ST_MultiPointFromText", 1, SQLITE_ANY, 0, fnct_MPointFromText1, 0, 0); sqlite3_create_function (db, "ST_MultiPointFromText", 2, SQLITE_ANY, 0, fnct_MPointFromText2, 0, 0); sqlite3_create_function (db, "ST_MLineFromText", 1, SQLITE_ANY, 0, fnct_MLineFromText1, 0, 0); sqlite3_create_function (db, "ST_MLineFromText", 2, SQLITE_ANY, 0, fnct_MLineFromText2, 0, 0); sqlite3_create_function (db, "ST_MultiLineStringFromText", 1, SQLITE_ANY, 0, fnct_MLineFromText1, 0, 0); sqlite3_create_function (db, "ST_MultiLineStringFromText", 2, SQLITE_ANY, 0, fnct_MLineFromText2, 0, 0); sqlite3_create_function (db, "ST_MPolyFromText", 1, SQLITE_ANY, 0, fnct_MPolyFromText1, 0, 0); sqlite3_create_function (db, "ST_MPolyFromText", 2, SQLITE_ANY, 0, fnct_MPolyFromText2, 0, 0); sqlite3_create_function (db, "ST_MultiPolygonFromText", 1, SQLITE_ANY, 0, fnct_MPolyFromText1, 0, 0); sqlite3_create_function (db, "ST_MultiPolygonFromText", 2, SQLITE_ANY, 0, fnct_MPolyFromText2, 0, 0); sqlite3_create_function (db, "ST_WKBToSQL", 1, SQLITE_ANY, 0, fnct_WkbToSql, 0, 0); sqlite3_create_function (db, "ST_GeomFromWKB", 1, SQLITE_ANY, 0, fnct_GeomFromWkb1, 0, 0); sqlite3_create_function (db, "ST_GeomFromWKB", 2, SQLITE_ANY, 0, fnct_GeomFromWkb2, 0, 0); sqlite3_create_function (db, "ST_GeometryFromWKB", 1, SQLITE_ANY, 0, fnct_GeomFromWkb1, 0, 0); sqlite3_create_function (db, "ST_GeometryFromWKB", 2, SQLITE_ANY, 0, fnct_GeomFromWkb2, 0, 0); sqlite3_create_function (db, "ST_GeomCollFromWKB", 1, SQLITE_ANY, 0, fnct_GeomCollFromWkb1, 0, 0); sqlite3_create_function (db, "ST_GeomCollFromWKB", 2, SQLITE_ANY, 0, fnct_GeomCollFromWkb2, 0, 0); sqlite3_create_function (db, "ST_GeometryCollectionFromWKB", 1, SQLITE_ANY, 0, fnct_GeomCollFromWkb1, 0, 0); sqlite3_create_function (db, "ST_GeometryCollectionFromWKB", 2, SQLITE_ANY, 0, fnct_GeomCollFromWkb2, 0, 0); sqlite3_create_function (db, "ST_PointFromWKB", 1, SQLITE_ANY, 0, fnct_PointFromWkb1, 0, 0); sqlite3_create_function (db, "ST_PointFromWKB", 2, SQLITE_ANY, 0, fnct_PointFromWkb2, 0, 0); sqlite3_create_function (db, "ST_LineFromWKB", 1, SQLITE_ANY, 0, fnct_LineFromWkb1, 0, 0); sqlite3_create_function (db, "ST_LineFromWKB", 2, SQLITE_ANY, 0, fnct_LineFromWkb2, 0, 0); sqlite3_create_function (db, "ST_LineStringFromWKB", 1, SQLITE_ANY, 0, fnct_LineFromWkb1, 0, 0); sqlite3_create_function (db, "ST_LineStringFromWKB", 2, SQLITE_ANY, 0, fnct_LineFromWkb2, 0, 0); sqlite3_create_function (db, "ST_PolyFromWKB", 1, SQLITE_ANY, 0, fnct_PolyFromWkb1, 0, 0); sqlite3_create_function (db, "ST_PolyFromWKB", 2, SQLITE_ANY, 0, fnct_PolyFromWkb2, 0, 0); sqlite3_create_function (db, "ST_PolygonFromWKB", 1, SQLITE_ANY, 0, fnct_PolyFromWkb1, 0, 0); sqlite3_create_function (db, "ST_PolygonFromWKB", 2, SQLITE_ANY, 0, fnct_PolyFromWkb2, 0, 0); sqlite3_create_function (db, "ST_MPointFromWKB", 1, SQLITE_ANY, 0, fnct_MPointFromWkb1, 0, 0); sqlite3_create_function (db, "ST_MPointFromWKB", 2, SQLITE_ANY, 0, fnct_MPointFromWkb2, 0, 0); sqlite3_create_function (db, "ST_MultiPointFromWKB", 1, SQLITE_ANY, 0, fnct_MPointFromWkb1, 0, 0); sqlite3_create_function (db, "ST_MultiPointFromWKB", 2, SQLITE_ANY, 0, fnct_MPointFromWkb2, 0, 0); sqlite3_create_function (db, "ST_MLineFromWKB", 1, SQLITE_ANY, 0, fnct_MLineFromWkb1, 0, 0); sqlite3_create_function (db, "ST_MLineFromWKB", 2, SQLITE_ANY, 0, fnct_MLineFromWkb2, 0, 0); sqlite3_create_function (db, "ST_MultiLineStringFromWKB", 1, SQLITE_ANY, 0, fnct_MLineFromWkb1, 0, 0); sqlite3_create_function (db, "ST_MultiLineStringFromWKB", 2, SQLITE_ANY, 0, fnct_MLineFromWkb2, 0, 0); sqlite3_create_function (db, "ST_MPolyFromWKB", 1, SQLITE_ANY, 0, fnct_MPolyFromWkb1, 0, 0); sqlite3_create_function (db, "ST_MPolyFromWKB", 2, SQLITE_ANY, 0, fnct_MPolyFromWkb2, 0, 0); sqlite3_create_function (db, "ST_MultiPolygonFromWKB", 1, SQLITE_ANY, 0, fnct_MPolyFromWkb1, 0, 0); sqlite3_create_function (db, "ST_MultiPolygonFromWKB", 2, SQLITE_ANY, 0, fnct_MPolyFromWkb2, 0, 0); sqlite3_create_function (db, "GeomFromFGF", 1, SQLITE_ANY, 0, fnct_GeometryFromFGF1, 0, 0); sqlite3_create_function (db, "GeomFromFGF", 2, SQLITE_ANY, 0, fnct_GeometryFromFGF2, 0, 0); sqlite3_create_function (db, "CompressGeometry", 1, SQLITE_ANY, 0, fnct_CompressGeometry, 0, 0); sqlite3_create_function (db, "UncompressGeometry", 1, SQLITE_ANY, 0, fnct_UncompressGeometry, 0, 0); sqlite3_create_function (db, "SanitizeGeometry", 1, SQLITE_ANY, 0, fnct_SanitizeGeometry, 0, 0); sqlite3_create_function (db, "CastToInteger", 1, SQLITE_ANY, 0, fnct_CastToInteger, 0, 0); sqlite3_create_function (db, "CastToDouble", 1, SQLITE_ANY, 0, fnct_CastToDouble, 0, 0); sqlite3_create_function (db, "CastToText", 1, SQLITE_ANY, 0, fnct_CastToText, 0, 0); sqlite3_create_function (db, "CastToText", 2, SQLITE_ANY, 0, fnct_CastToText, 0, 0); sqlite3_create_function (db, "CastToBlob", 1, SQLITE_ANY, 0, fnct_CastToBlob, 0, 0); sqlite3_create_function (db, "CastToBlob", 2, SQLITE_ANY, 0, fnct_CastToBlob, 0, 0); sqlite3_create_function (db, "ForceAsNull", 2, SQLITE_ANY, 0, fnct_ForceAsNull, 0, 0); sqlite3_create_function (db, "CreateUUID", 0, SQLITE_ANY, 0, fnct_CreateUUID, 0, 0); sqlite3_create_function (db, "MD5Checksum", 1, SQLITE_ANY, 0, fnct_MD5Checksum, 0, 0); sqlite3_create_function (db, "MD5TotalChecksum", 1, SQLITE_ANY, 0, 0, fnct_MD5TotalChecksum_step, fnct_MD5TotalChecksum_final); sqlite3_create_function (db, "CastToPoint", 1, SQLITE_ANY, 0, fnct_CastToPoint, 0, 0); sqlite3_create_function (db, "CastToLinestring", 1, SQLITE_ANY, 0, fnct_CastToLinestring, 0, 0); sqlite3_create_function (db, "CastToPolygon", 1, SQLITE_ANY, 0, fnct_CastToPolygon, 0, 0); sqlite3_create_function (db, "CastToMultiPoint", 1, SQLITE_ANY, 0, fnct_CastToMultiPoint, 0, 0); sqlite3_create_function (db, "CastToMultiLinestring", 1, SQLITE_ANY, 0, fnct_CastToMultiLinestring, 0, 0); sqlite3_create_function (db, "CastToMultiPolygon", 1, SQLITE_ANY, 0, fnct_CastToMultiPolygon, 0, 0); sqlite3_create_function (db, "CastToGeometryCollection", 1, SQLITE_ANY, 0, fnct_CastToGeometryCollection, 0, 0); sqlite3_create_function (db, "CastToMulti", 1, SQLITE_ANY, 0, fnct_CastToMulti, 0, 0); sqlite3_create_function (db, "ST_Multi", 1, SQLITE_ANY, 0, fnct_CastToMulti, 0, 0); sqlite3_create_function (db, "CastToSingle", 1, SQLITE_ANY, 0, fnct_CastToSingle, 0, 0); sqlite3_create_function (db, "CastToXY", 1, SQLITE_ANY, 0, fnct_CastToXY, 0, 0); sqlite3_create_function (db, "CastToXYZ", 1, SQLITE_ANY, 0, fnct_CastToXYZ, 0, 0); sqlite3_create_function (db, "CastToXYM", 1, SQLITE_ANY, 0, fnct_CastToXYM, 0, 0); sqlite3_create_function (db, "CastToXYZM", 1, SQLITE_ANY, 0, fnct_CastToXYZM, 0, 0); sqlite3_create_function (db, "ExtractMultiPoint", 1, SQLITE_ANY, 0, fnct_ExtractMultiPoint, 0, 0); sqlite3_create_function (db, "ExtractMultiLinestring", 1, SQLITE_ANY, 0, fnct_ExtractMultiLinestring, 0, 0); sqlite3_create_function (db, "ExtractMultiPolygon", 1, SQLITE_ANY, 0, fnct_ExtractMultiPolygon, 0, 0); sqlite3_create_function (db, "ST_Reverse", 1, SQLITE_ANY, 0, fnct_Reverse, 0, 0); sqlite3_create_function (db, "ST_ForceLHR", 1, SQLITE_ANY, 0, fnct_ForceLHR, 0, 0); sqlite3_create_function (db, "Dimension", 1, SQLITE_ANY, 0, fnct_Dimension, 0, 0); sqlite3_create_function (db, "ST_Dimension", 1, SQLITE_ANY, 0, fnct_Dimension, 0, 0); sqlite3_create_function (db, "CoordDimension", 1, SQLITE_ANY, 0, fnct_CoordDimension, 0, 0); sqlite3_create_function (db, "ST_NDims", 1, SQLITE_ANY, 0, fnct_NDims, 0, 0); sqlite3_create_function (db, "GeometryType", 1, SQLITE_ANY, 0, fnct_GeometryType, 0, 0); sqlite3_create_function (db, "ST_GeometryType", 1, SQLITE_ANY, 0, fnct_GeometryType, 0, 0); sqlite3_create_function (db, "GeometryAliasType", 1, SQLITE_ANY, 0, fnct_GeometryAliasType, 0, 0); sqlite3_create_function (db, "SridFromAuthCRS", 2, SQLITE_ANY, 0, fnct_SridFromAuthCRS, 0, 0); sqlite3_create_function (db, "SRID", 1, SQLITE_ANY, 0, fnct_SRID, 0, 0); sqlite3_create_function (db, "ST_SRID", 1, SQLITE_ANY, 0, fnct_SRID, 0, 0); sqlite3_create_function (db, "SetSRID", 2, SQLITE_ANY, 0, fnct_SetSRID, 0, 0); sqlite3_create_function (db, "IsEmpty", 1, SQLITE_ANY, 0, fnct_IsEmpty, 0, 0); sqlite3_create_function (db, "ST_IsEmpty", 1, SQLITE_ANY, 0, fnct_IsEmpty, 0, 0); sqlite3_create_function (db, "ST_Is3D", 1, SQLITE_ANY, 0, fnct_Is3D, 0, 0); sqlite3_create_function (db, "ST_IsMeasured", 1, SQLITE_ANY, 0, fnct_IsMeasured, 0, 0); sqlite3_create_function (db, "Envelope", 1, SQLITE_ANY, 0, fnct_Envelope, 0, 0); sqlite3_create_function (db, "ST_Envelope", 1, SQLITE_ANY, 0, fnct_Envelope, 0, 0); sqlite3_create_function (db, "ST_Expand", 2, SQLITE_ANY, 0, fnct_Expand, 0, 0); sqlite3_create_function (db, "X", 1, SQLITE_ANY, 0, fnct_X, 0, 0); sqlite3_create_function (db, "Y", 1, SQLITE_ANY, 0, fnct_Y, 0, 0); sqlite3_create_function (db, "Z", 1, SQLITE_ANY, 0, fnct_Z, 0, 0); sqlite3_create_function (db, "M", 1, SQLITE_ANY, 0, fnct_M, 0, 0); sqlite3_create_function (db, "ST_X", 1, SQLITE_ANY, 0, fnct_X, 0, 0); sqlite3_create_function (db, "ST_Y", 1, SQLITE_ANY, 0, fnct_Y, 0, 0); sqlite3_create_function (db, "ST_Z", 1, SQLITE_ANY, 0, fnct_Z, 0, 0); sqlite3_create_function (db, "ST_M", 1, SQLITE_ANY, 0, fnct_M, 0, 0); sqlite3_create_function (db, "ST_MinX", 1, SQLITE_ANY, 0, fnct_MbrMinX, 0, 0); sqlite3_create_function (db, "ST_MinY", 1, SQLITE_ANY, 0, fnct_MbrMinY, 0, 0); sqlite3_create_function (db, "ST_MinZ", 1, SQLITE_ANY, 0, fnct_MinZ, 0, 0); sqlite3_create_function (db, "ST_MinM", 1, SQLITE_ANY, 0, fnct_MinM, 0, 0); sqlite3_create_function (db, "ST_MaxX", 1, SQLITE_ANY, 0, fnct_MbrMaxX, 0, 0); sqlite3_create_function (db, "ST_MaxY", 1, SQLITE_ANY, 0, fnct_MbrMaxY, 0, 0); sqlite3_create_function (db, "ST_MaxZ", 1, SQLITE_ANY, 0, fnct_MaxZ, 0, 0); sqlite3_create_function (db, "ST_MaxM", 1, SQLITE_ANY, 0, fnct_MaxM, 0, 0); sqlite3_create_function (db, "NumPoints", 1, SQLITE_ANY, 0, fnct_NumPoints, 0, 0); sqlite3_create_function (db, "ST_NumPoints", 1, SQLITE_ANY, 0, fnct_NumPoints, 0, 0); sqlite3_create_function (db, "StartPoint", 1, SQLITE_ANY, 0, fnct_StartPoint, 0, 0); sqlite3_create_function (db, "EndPoint", 1, SQLITE_ANY, 0, fnct_EndPoint, 0, 0); sqlite3_create_function (db, "ST_StartPoint", 1, SQLITE_ANY, 0, fnct_StartPoint, 0, 0); sqlite3_create_function (db, "ST_EndPoint", 1, SQLITE_ANY, 0, fnct_EndPoint, 0, 0); sqlite3_create_function (db, "PointN", 2, SQLITE_ANY, 0, fnct_PointN, 0, 0); sqlite3_create_function (db, "ST_PointN", 2, SQLITE_ANY, 0, fnct_PointN, 0, 0); sqlite3_create_function (db, "ExteriorRing", 1, SQLITE_ANY, 0, fnct_ExteriorRing, 0, 0); sqlite3_create_function (db, "ST_ExteriorRing", 1, SQLITE_ANY, 0, fnct_ExteriorRing, 0, 0); sqlite3_create_function (db, "NumInteriorRing", 1, SQLITE_ANY, 0, fnct_NumInteriorRings, 0, 0); sqlite3_create_function (db, "NumInteriorRings", 1, SQLITE_ANY, 0, fnct_NumInteriorRings, 0, 0); sqlite3_create_function (db, "ST_NumInteriorRing", 1, SQLITE_ANY, 0, fnct_NumInteriorRings, 0, 0); sqlite3_create_function (db, "InteriorRingN", 2, SQLITE_ANY, 0, fnct_InteriorRingN, 0, 0); sqlite3_create_function (db, "ST_InteriorRingN", 2, SQLITE_ANY, 0, fnct_InteriorRingN, 0, 0); sqlite3_create_function (db, "NumGeometries", 1, SQLITE_ANY, 0, fnct_NumGeometries, 0, 0); sqlite3_create_function (db, "ST_NumGeometries", 1, SQLITE_ANY, 0, fnct_NumGeometries, 0, 0); sqlite3_create_function (db, "GeometryN", 2, SQLITE_ANY, 0, fnct_GeometryN, 0, 0); sqlite3_create_function (db, "ST_GeometryN", 2, SQLITE_ANY, 0, fnct_GeometryN, 0, 0); sqlite3_create_function (db, "MBRContains", 2, SQLITE_ANY, 0, fnct_MbrContains, 0, 0); sqlite3_create_function (db, "MbrDisjoint", 2, SQLITE_ANY, 0, fnct_MbrDisjoint, 0, 0); sqlite3_create_function (db, "MBREqual", 2, SQLITE_ANY, 0, fnct_MbrEqual, 0, 0); sqlite3_create_function (db, "MbrIntersects", 2, SQLITE_ANY, 0, fnct_MbrIntersects, 0, 0); sqlite3_create_function (db, "ST_EnvIntersects", 2, SQLITE_ANY, 0, fnct_MbrIntersects, 0, 0); sqlite3_create_function (db, "ST_EnvIntersects", 5, SQLITE_ANY, 0, fnct_EnvIntersects, 0, 0); sqlite3_create_function (db, "ST_EnvelopesIntersects", 2, SQLITE_ANY, 0, fnct_MbrIntersects, 0, 0); sqlite3_create_function (db, "ST_EnvelopesIntersects", 5, SQLITE_ANY, 0, fnct_EnvIntersects, 0, 0); sqlite3_create_function (db, "MBROverlaps", 2, SQLITE_ANY, 0, fnct_MbrOverlaps, 0, 0); sqlite3_create_function (db, "MbrTouches", 2, SQLITE_ANY, 0, fnct_MbrTouches, 0, 0); sqlite3_create_function (db, "MbrWithin", 2, SQLITE_ANY, 0, fnct_MbrWithin, 0, 0); sqlite3_create_function (db, "ShiftCoords", 3, SQLITE_ANY, 0, fnct_ShiftCoords, 0, 0); sqlite3_create_function (db, "ShiftCoordinates", 3, SQLITE_ANY, 0, fnct_ShiftCoords, 0, 0); sqlite3_create_function (db, "ST_Translate", 4, SQLITE_ANY, 0, fnct_Translate, 0, 0); sqlite3_create_function (db, "ST_Shift_Longitude", 1, SQLITE_ANY, 0, fnct_ShiftLongitude, 0, 0); sqlite3_create_function (db, "NormalizeLonLat", 1, SQLITE_ANY, 0, fnct_NormalizeLonLat, 0, 0); sqlite3_create_function (db, "ScaleCoords", 2, SQLITE_ANY, 0, fnct_ScaleCoords, 0, 0); sqlite3_create_function (db, "ScaleCoordinates", 2, SQLITE_ANY, 0, fnct_ScaleCoords, 0, 0); sqlite3_create_function (db, "ScaleCoords", 3, SQLITE_ANY, 0, fnct_ScaleCoords, 0, 0); sqlite3_create_function (db, "ScaleCoordinates", 3, SQLITE_ANY, 0, fnct_ScaleCoords, 0, 0); sqlite3_create_function (db, "RotateCoords", 2, SQLITE_ANY, 0, fnct_RotateCoords, 0, 0); sqlite3_create_function (db, "RotateCoordinates", 2, SQLITE_ANY, 0, fnct_RotateCoords, 0, 0); sqlite3_create_function (db, "ReflectCoords", 3, SQLITE_ANY, 0, fnct_ReflectCoords, 0, 0); sqlite3_create_function (db, "ReflectCoordinates", 3, SQLITE_ANY, 0, fnct_ReflectCoords, 0, 0); sqlite3_create_function (db, "SwapCoords", 1, SQLITE_ANY, 0, fnct_SwapCoords, 0, 0); sqlite3_create_function (db, "SwapCoordinates", 1, SQLITE_ANY, 0, fnct_SwapCoords, 0, 0); sqlite3_create_function (db, "BuildMbr", 4, SQLITE_ANY, 0, fnct_BuildMbr1, 0, 0); sqlite3_create_function (db, "BuildMbr", 5, SQLITE_ANY, 0, fnct_BuildMbr2, 0, 0); sqlite3_create_function (db, "BuildCircleMbr", 3, SQLITE_ANY, 0, fnct_BuildCircleMbr1, 0, 0); sqlite3_create_function (db, "BuildCircleMbr", 4, SQLITE_ANY, 0, fnct_BuildCircleMbr2, 0, 0); sqlite3_create_function (db, "Extent", 1, SQLITE_ANY, 0, 0, fnct_Extent_step, fnct_Extent_final); sqlite3_create_function (db, "MbrMinX", 1, SQLITE_ANY, 0, fnct_MbrMinX, 0, 0); sqlite3_create_function (db, "MbrMaxX", 1, SQLITE_ANY, 0, fnct_MbrMaxX, 0, 0); sqlite3_create_function (db, "MbrMinY", 1, SQLITE_ANY, 0, fnct_MbrMinY, 0, 0); sqlite3_create_function (db, "MbrMaxY", 1, SQLITE_ANY, 0, fnct_MbrMaxY, 0, 0); sqlite3_create_function (db, "ST_Point", 2, SQLITE_ANY, 0, fnct_MakePoint1, 0, 0); sqlite3_create_function (db, "MakePoint", 2, SQLITE_ANY, 0, fnct_MakePoint1, 0, 0); sqlite3_create_function (db, "MakePoint", 3, SQLITE_ANY, 0, fnct_MakePoint2, 0, 0); sqlite3_create_function (db, "MakePointZ", 3, SQLITE_ANY, 0, fnct_MakePointZ1, 0, 0); sqlite3_create_function (db, "MakePointZ", 4, SQLITE_ANY, 0, fnct_MakePointZ2, 0, 0); sqlite3_create_function (db, "MakePointM", 3, SQLITE_ANY, 0, fnct_MakePointM1, 0, 0); sqlite3_create_function (db, "MakePointM", 4, SQLITE_ANY, 0, fnct_MakePointM2, 0, 0); sqlite3_create_function (db, "MakePointZM", 4, SQLITE_ANY, 0, fnct_MakePointZM1, 0, 0); sqlite3_create_function (db, "MakePointZM", 5, SQLITE_ANY, 0, fnct_MakePointZM2, 0, 0); sqlite3_create_function (db, "MakeLine", 1, SQLITE_ANY, 0, 0, fnct_MakeLine_step, fnct_MakeLine_final); sqlite3_create_function (db, "MakeLine", 2, SQLITE_ANY, 0, fnct_MakeLine, 0, 0); sqlite3_create_function (db, "MakeCircle", 3, SQLITE_ANY, 0, fnct_MakeCircle, 0, 0); sqlite3_create_function (db, "MakeCircle", 4, SQLITE_ANY, 0, fnct_MakeCircle, 0, 0); sqlite3_create_function (db, "MakeCircle", 5, SQLITE_ANY, 0, fnct_MakeCircle, 0, 0); sqlite3_create_function (db, "MakeEllipse", 4, SQLITE_ANY, 0, fnct_MakeEllipse, 0, 0); sqlite3_create_function (db, "MakeEllipse", 5, SQLITE_ANY, 0, fnct_MakeEllipse, 0, 0); sqlite3_create_function (db, "MakeEllipse", 6, SQLITE_ANY, 0, fnct_MakeEllipse, 0, 0); sqlite3_create_function (db, "MakeArc", 5, SQLITE_ANY, 0, fnct_MakeArc, 0, 0); sqlite3_create_function (db, "MakeArc", 6, SQLITE_ANY, 0, fnct_MakeArc, 0, 0); sqlite3_create_function (db, "MakeArc", 7, SQLITE_ANY, 0, fnct_MakeArc, 0, 0); sqlite3_create_function (db, "MakeEllipticArc", 6, SQLITE_ANY, 0, fnct_MakeEllipticArc, 0, 0); sqlite3_create_function (db, "MakeEllipticArc", 7, SQLITE_ANY, 0, fnct_MakeEllipticArc, 0, 0); sqlite3_create_function (db, "MakeEllipticArc", 8, SQLITE_ANY, 0, fnct_MakeEllipticArc, 0, 0); sqlite3_create_function (db, "MakeCircularSector", 5, SQLITE_ANY, 0, fnct_MakeCircularSector, 0, 0); sqlite3_create_function (db, "MakeCircularSector", 6, SQLITE_ANY, 0, fnct_MakeCircularSector, 0, 0); sqlite3_create_function (db, "MakeCircularSector", 7, SQLITE_ANY, 0, fnct_MakeCircularSector, 0, 0); sqlite3_create_function (db, "MakeCircularStripe", 6, SQLITE_ANY, 0, fnct_MakeCircularStripe, 0, 0); sqlite3_create_function (db, "MakeCircularStripe", 7, SQLITE_ANY, 0, fnct_MakeCircularStripe, 0, 0); sqlite3_create_function (db, "MakeCircularStripe", 8, SQLITE_ANY, 0, fnct_MakeCircularStripe, 0, 0); sqlite3_create_function (db, "MakeEllipticSector", 6, SQLITE_ANY, 0, fnct_MakeEllipticSector, 0, 0); sqlite3_create_function (db, "MakeEllipticSector", 7, SQLITE_ANY, 0, fnct_MakeEllipticSector, 0, 0); sqlite3_create_function (db, "MakeEllipticSector", 8, SQLITE_ANY, 0, fnct_MakeEllipticSector, 0, 0); sqlite3_create_function (db, "Collect", 1, SQLITE_ANY, 0, 0, fnct_Collect_step, fnct_Collect_final); sqlite3_create_function (db, "Collect", 2, SQLITE_ANY, 0, fnct_Collect, 0, 0); sqlite3_create_function (db, "ST_Collect", 1, SQLITE_ANY, 0, 0, fnct_Collect_step, fnct_Collect_final); sqlite3_create_function (db, "ST_Collect", 2, SQLITE_ANY, 0, fnct_Collect, 0, 0); sqlite3_create_function (db, "BuildMbrFilter", 4, SQLITE_ANY, 0, fnct_BuildMbrFilter, 0, 0); sqlite3_create_function (db, "FilterMbrWithin", 4, SQLITE_ANY, 0, fnct_FilterMbrWithin, 0, 0); sqlite3_create_function (db, "FilterMbrContains", 4, SQLITE_ANY, 0, fnct_FilterMbrContains, 0, 0); sqlite3_create_function (db, "FilterMbrIntersects", 4, SQLITE_ANY, 0, fnct_FilterMbrIntersects, 0, 0); sqlite3_create_function (db, "LinesFromRings", 1, SQLITE_ANY, 0, fnct_LinesFromRings, 0, 0); sqlite3_create_function (db, "ST_LinesFromRings", 1, SQLITE_ANY, 0, fnct_LinesFromRings, 0, 0); sqlite3_create_function (db, "LinesFromRings", 2, SQLITE_ANY, 0, fnct_LinesFromRings, 0, 0); sqlite3_create_function (db, "ST_LinesFromRings", 2, SQLITE_ANY, 0, fnct_LinesFromRings, 0, 0); sqlite3_create_function (db, "ST_NPoints", 1, SQLITE_ANY, 0, fnct_NPoints, 0, 0); sqlite3_create_function (db, "ST_nrings", 1, SQLITE_ANY, 0, fnct_NRings, 0, 0); sqlite3_create_function (db, "ToGARS", 1, SQLITE_ANY, 0, fnct_ToGARS, 0, 0); sqlite3_create_function (db, "GARSMbr", 1, SQLITE_ANY, 0, fnct_GARSMbr, 0, 0); sqlite3_create_function (db, "SnapToGrid", 2, SQLITE_ANY, 0, fnct_SnapToGrid, 0, 0); sqlite3_create_function (db, "ST_SnapToGrid", 2, SQLITE_ANY, 0, fnct_SnapToGrid, 0, 0); sqlite3_create_function (db, "SnapToGrid", 3, SQLITE_ANY, 0, fnct_SnapToGrid, 0, 0); sqlite3_create_function (db, "ST_SnapToGrid", 3, SQLITE_ANY, 0, fnct_SnapToGrid, 0, 0); sqlite3_create_function (db, "SnapToGrid", 5, SQLITE_ANY, 0, fnct_SnapToGrid, 0, 0); sqlite3_create_function (db, "ST_SnapToGrid", 5, SQLITE_ANY, 0, fnct_SnapToGrid, 0, 0); sqlite3_create_function (db, "SnapToGrid", 6, SQLITE_ANY, 0, fnct_SnapToGrid, 0, 0); sqlite3_create_function (db, "ST_SnapToGrid", 6, SQLITE_ANY, 0, fnct_SnapToGrid, 0, 0); sqlite3_create_function (db, "AddPoint", 2, SQLITE_ANY, 0, fnct_AddPoint, 0, 0); sqlite3_create_function (db, "ST_AddPoint", 2, SQLITE_ANY, 0, fnct_AddPoint, 0, 0); sqlite3_create_function (db, "AddPoint", 3, SQLITE_ANY, 0, fnct_AddPoint, 0, 0); sqlite3_create_function (db, "ST_AddPoint", 3, SQLITE_ANY, 0, fnct_AddPoint, 0, 0); sqlite3_create_function (db, "RemovePoint", 2, SQLITE_ANY, 0, fnct_RemovePoint, 0, 0); sqlite3_create_function (db, "ST_RemovePoint", 2, SQLITE_ANY, 0, fnct_RemovePoint, 0, 0); sqlite3_create_function (db, "SetPoint", 3, SQLITE_ANY, 0, fnct_SetPoint, 0, 0); sqlite3_create_function (db, "ST_SetPoint", 3, SQLITE_ANY, 0, fnct_SetPoint, 0, 0); #ifndef OMIT_GEOS /* including GEOS */ sqlite3_create_function (db, "BuildArea", 1, SQLITE_ANY, 0, fnct_BuildArea, 0, 0); sqlite3_create_function (db, "ST_BuildArea", 1, SQLITE_ANY, 0, fnct_BuildArea, 0, 0); sqlite3_create_function (db, "Polygonize", 1, SQLITE_ANY, 0, 0, fnct_Polygonize_step, fnct_Polygonize_final); sqlite3_create_function (db, "ST_Polygonize", 1, SQLITE_ANY, 0, 0, fnct_Polygonize_step, fnct_Polygonize_final); #endif /* end including GEOS */ sqlite3_create_function (db, "DissolveSegments", 1, SQLITE_ANY, 0, fnct_DissolveSegments, 0, 0); sqlite3_create_function (db, "ST_DissolveSegments", 1, SQLITE_ANY, 0, fnct_DissolveSegments, 0, 0); sqlite3_create_function (db, "DissolvePoints", 1, SQLITE_ANY, 0, fnct_DissolvePoints, 0, 0); sqlite3_create_function (db, "ST_DissolvePoints", 1, SQLITE_ANY, 0, fnct_DissolvePoints, 0, 0); sqlite3_create_function (db, "CollectionExtract", 2, SQLITE_ANY, 0, fnct_CollectionExtract, 0, 0); sqlite3_create_function (db, "ST_CollectionExtract", 2, SQLITE_ANY, 0, fnct_CollectionExtract, 0, 0); sqlite3_create_function (db, "ST_Locate_Along_Measure", 2, SQLITE_ANY, 0, fnct_LocateBetweenMeasures, 0, 0); sqlite3_create_function (db, "ST_LocateAlong", 2, SQLITE_ANY, 0, fnct_LocateBetweenMeasures, 0, 0); sqlite3_create_function (db, "ST_Locate_Between_Measures", 3, SQLITE_ANY, 0, fnct_LocateBetweenMeasures, 0, 0); sqlite3_create_function (db, "ST_LocateBetween", 3, SQLITE_ANY, 0, fnct_LocateBetweenMeasures, 0, 0); #ifndef OMIT_GEOCALLBACKS /* supporting RTree geometry callbacks */ sqlite3_rtree_geometry_callback (db, "RTreeWithin", fnct_RTreeIntersects, 0); sqlite3_rtree_geometry_callback (db, "RTreeContains", fnct_RTreeIntersects, 0); sqlite3_rtree_geometry_callback (db, "RTreeIntersects", fnct_RTreeIntersects, 0); sqlite3_rtree_geometry_callback (db, "RTreeDistWithin", fnct_RTreeDistWithin, 0); #endif /* end RTree geometry callbacks */ /* some BLOB/JPEG/EXIF functions */ sqlite3_create_function (db, "IsGeometryBlob", 1, SQLITE_ANY, 0, fnct_IsGeometryBlob, 0, 0); sqlite3_create_function (db, "IsZipBlob", 1, SQLITE_ANY, 0, fnct_IsZipBlob, 0, 0); sqlite3_create_function (db, "IsPdfBlob", 1, SQLITE_ANY, 0, fnct_IsPdfBlob, 0, 0); sqlite3_create_function (db, "IsTiffBlob", 1, SQLITE_ANY, 0, fnct_IsTiffBlob, 0, 0); sqlite3_create_function (db, "IsGifBlob", 1, SQLITE_ANY, 0, fnct_IsGifBlob, 0, 0); sqlite3_create_function (db, "IsPngBlob", 1, SQLITE_ANY, 0, fnct_IsPngBlob, 0, 0); sqlite3_create_function (db, "IsJpegBlob", 1, SQLITE_ANY, 0, fnct_IsJpegBlob, 0, 0); sqlite3_create_function (db, "IsExifBlob", 1, SQLITE_ANY, 0, fnct_IsExifBlob, 0, 0); sqlite3_create_function (db, "IsExifGpsBlob", 1, SQLITE_ANY, 0, fnct_IsExifGpsBlob, 0, 0); sqlite3_create_function (db, "IsWebpBlob", 1, SQLITE_ANY, 0, fnct_IsWebPBlob, 0, 0); sqlite3_create_function (db, "GeomFromExifGpsBlob", 1, SQLITE_ANY, 0, fnct_GeomFromExifGpsBlob, 0, 0); sqlite3_create_function (db, "GetMimeType", 1, SQLITE_ANY, 0, fnct_GetMimeType, 0, 0); sqlite3_create_function (db, "CountUnsafeTriggers", 0, SQLITE_ANY, 0, fnct_CountUnsafeTriggers, 0, 0); /* // enabling BlobFromFile, BlobToFile and XB_LoadXML, XB_StoreXML, ExportDXF // // these functions could potentially introduce serious security issues, // most notably when invoked from within some Trigger // - BlobToFile: some arbitrary code, possibly harmfull (e.g. virus or // trojan) could be installed on the local file-system, the user being // completely unaware of this // - BlobFromFile: some file could be maliciously "stolen" from the local // file system and then inseted into the DB // - the same is for XB_LoadXML and XB_StoreXML // - ExportDXF could potentially flood the local file-system by // outputting a huge size of data // // so by default such functions are disabled. // if for any good/legitimate reason the user really wants to enable them // the following environment variable has to be explicitly declared: // // SPATIALITE_SECURITY=relaxed // */ security_level = getenv ("SPATIALITE_SECURITY"); if (security_level == NULL) ; else if (strcasecmp (security_level, "relaxed") == 0) { sqlite3_create_function (db, "BlobFromFile", 1, SQLITE_ANY, 0, fnct_BlobFromFile, 0, 0); sqlite3_create_function (db, "BlobToFile", 2, SQLITE_ANY, 0, fnct_BlobToFile, 0, 0); sqlite3_create_function (db, "ExportDXF", 9, SQLITE_ANY, 0, fnct_ExportDXF, 0, 0); sqlite3_create_function (db, "ExportDXF", 10, SQLITE_ANY, 0, fnct_ExportDXF, 0, 0); #ifdef ENABLE_LIBXML2 /* including LIBXML2 */ sqlite3_create_function (db, "XB_LoadXML", 1, SQLITE_ANY, cache, fnct_XB_LoadXML, 0, 0); sqlite3_create_function (db, "XB_StoreXML", 2, SQLITE_ANY, 0, fnct_XB_StoreXML, 0, 0); sqlite3_create_function (db, "XB_StoreXML", 3, SQLITE_ANY, 0, fnct_XB_StoreXML, 0, 0); #endif /* end including LIBXML2 */ } /* some Geodesic functions */ sqlite3_create_function (db, "GreatCircleLength", 1, SQLITE_ANY, 0, fnct_GreatCircleLength, 0, 0); sqlite3_create_function (db, "GeodesicLength", 1, SQLITE_ANY, 0, fnct_GeodesicLength, 0, 0); /* some Length Unit conversion functions */ sqlite3_create_function (db, "CvtToKm", 1, SQLITE_ANY, 0, fnct_cvtToKm, 0, 0); sqlite3_create_function (db, "CvtToDm", 1, SQLITE_ANY, 0, fnct_cvtToDm, 0, 0); sqlite3_create_function (db, "CvtToCm", 1, SQLITE_ANY, 0, fnct_cvtToCm, 0, 0); sqlite3_create_function (db, "CvtToMm", 1, SQLITE_ANY, 0, fnct_cvtToMm, 0, 0); sqlite3_create_function (db, "CvtToKmi", 1, SQLITE_ANY, 0, fnct_cvtToKmi, 0, 0); sqlite3_create_function (db, "CvtToIn", 1, SQLITE_ANY, 0, fnct_cvtToIn, 0, 0); sqlite3_create_function (db, "CvtToFt", 1, SQLITE_ANY, 0, fnct_cvtToFt, 0, 0); sqlite3_create_function (db, "CvtToYd", 1, SQLITE_ANY, 0, fnct_cvtToYd, 0, 0); sqlite3_create_function (db, "CvtToMi", 1, SQLITE_ANY, 0, fnct_cvtToMi, 0, 0); sqlite3_create_function (db, "CvtToFath", 1, SQLITE_ANY, 0, fnct_cvtToFath, 0, 0); sqlite3_create_function (db, "CvtToCh", 1, SQLITE_ANY, 0, fnct_cvtToCh, 0, 0); sqlite3_create_function (db, "CvtToLink", 1, SQLITE_ANY, 0, fnct_cvtToLink, 0, 0); sqlite3_create_function (db, "CvtToUsIn", 1, SQLITE_ANY, 0, fnct_cvtToUsIn, 0, 0); sqlite3_create_function (db, "CvtToUsFt", 1, SQLITE_ANY, 0, fnct_cvtToUsFt, 0, 0); sqlite3_create_function (db, "CvtToUsYd", 1, SQLITE_ANY, 0, fnct_cvtToUsYd, 0, 0); sqlite3_create_function (db, "CvtToUsCh", 1, SQLITE_ANY, 0, fnct_cvtToUsCh, 0, 0); sqlite3_create_function (db, "CvtToUsMi", 1, SQLITE_ANY, 0, fnct_cvtToUsMi, 0, 0); sqlite3_create_function (db, "CvtToIndFt", 1, SQLITE_ANY, 0, fnct_cvtToIndFt, 0, 0); sqlite3_create_function (db, "CvtToIndYd", 1, SQLITE_ANY, 0, fnct_cvtToIndYd, 0, 0); sqlite3_create_function (db, "CvtToIndCh", 1, SQLITE_ANY, 0, fnct_cvtToIndCh, 0, 0); sqlite3_create_function (db, "CvtFromKm", 1, SQLITE_ANY, 0, fnct_cvtFromKm, 0, 0); sqlite3_create_function (db, "CvtFromDm", 1, SQLITE_ANY, 0, fnct_cvtFromDm, 0, 0); sqlite3_create_function (db, "CvtFromCm", 1, SQLITE_ANY, 0, fnct_cvtFromCm, 0, 0); sqlite3_create_function (db, "CvtFromMm", 1, SQLITE_ANY, 0, fnct_cvtFromMm, 0, 0); sqlite3_create_function (db, "CvtFromKmi", 1, SQLITE_ANY, 0, fnct_cvtFromKmi, 0, 0); sqlite3_create_function (db, "CvtFromIn", 1, SQLITE_ANY, 0, fnct_cvtFromIn, 0, 0); sqlite3_create_function (db, "CvtFromFt", 1, SQLITE_ANY, 0, fnct_cvtFromFt, 0, 0); sqlite3_create_function (db, "CvtFromYd", 1, SQLITE_ANY, 0, fnct_cvtFromYd, 0, 0); sqlite3_create_function (db, "CvtFromMi", 1, SQLITE_ANY, 0, fnct_cvtFromMi, 0, 0); sqlite3_create_function (db, "CvtFromFath", 1, SQLITE_ANY, 0, fnct_cvtFromFath, 0, 0); sqlite3_create_function (db, "CvtFromCh", 1, SQLITE_ANY, 0, fnct_cvtFromCh, 0, 0); sqlite3_create_function (db, "CvtFromLink", 1, SQLITE_ANY, 0, fnct_cvtFromLink, 0, 0); sqlite3_create_function (db, "CvtFromUsIn", 1, SQLITE_ANY, 0, fnct_cvtFromUsIn, 0, 0); sqlite3_create_function (db, "CvtFromUsFt", 1, SQLITE_ANY, 0, fnct_cvtFromUsFt, 0, 0); sqlite3_create_function (db, "CvtFromUsYd", 1, SQLITE_ANY, 0, fnct_cvtFromUsYd, 0, 0); sqlite3_create_function (db, "CvtFromUsCh", 1, SQLITE_ANY, 0, fnct_cvtFromUsCh, 0, 0); sqlite3_create_function (db, "CvtFromUsMi", 1, SQLITE_ANY, 0, fnct_cvtFromUsMi, 0, 0); sqlite3_create_function (db, "CvtFromIndFt", 1, SQLITE_ANY, 0, fnct_cvtFromIndFt, 0, 0); sqlite3_create_function (db, "CvtFromIndYd", 1, SQLITE_ANY, 0, fnct_cvtFromIndYd, 0, 0); sqlite3_create_function (db, "CvtFromIndCh", 1, SQLITE_ANY, 0, fnct_cvtFromIndCh, 0, 0); #ifndef OMIT_MATHSQL /* supporting SQL math functions */ /* some extra math functions */ sqlite3_create_function (db, "acos", 1, SQLITE_ANY, 0, fnct_math_acos, 0, 0); sqlite3_create_function (db, "asin", 1, SQLITE_ANY, 0, fnct_math_asin, 0, 0); sqlite3_create_function (db, "atan", 1, SQLITE_ANY, 0, fnct_math_atan, 0, 0); sqlite3_create_function (db, "ceil", 1, SQLITE_ANY, 0, fnct_math_ceil, 0, 0); sqlite3_create_function (db, "ceiling", 1, SQLITE_ANY, 0, fnct_math_ceil, 0, 0); sqlite3_create_function (db, "cos", 1, SQLITE_ANY, 0, fnct_math_cos, 0, 0); sqlite3_create_function (db, "cot", 1, SQLITE_ANY, 0, fnct_math_cot, 0, 0); sqlite3_create_function (db, "degrees", 1, SQLITE_ANY, 0, fnct_math_degrees, 0, 0); sqlite3_create_function (db, "exp", 1, SQLITE_ANY, 0, fnct_math_exp, 0, 0); sqlite3_create_function (db, "floor", 1, SQLITE_ANY, 0, fnct_math_floor, 0, 0); sqlite3_create_function (db, "ln", 1, SQLITE_ANY, 0, fnct_math_logn, 0, 0); sqlite3_create_function (db, "log", 1, SQLITE_ANY, 0, fnct_math_logn, 0, 0); sqlite3_create_function (db, "log", 2, SQLITE_ANY, 0, fnct_math_logn2, 0, 0); sqlite3_create_function (db, "log2", 1, SQLITE_ANY, 0, fnct_math_log_2, 0, 0); sqlite3_create_function (db, "log10", 1, SQLITE_ANY, 0, fnct_math_log_10, 0, 0); sqlite3_create_function (db, "pi", 0, SQLITE_ANY, 0, fnct_math_pi, 0, 0); sqlite3_create_function (db, "pow", 2, SQLITE_ANY, 0, fnct_math_pow, 0, 0); sqlite3_create_function (db, "power", 2, SQLITE_ANY, 0, fnct_math_pow, 0, 0); sqlite3_create_function (db, "radians", 1, SQLITE_ANY, 0, fnct_math_radians, 0, 0); sqlite3_create_function (db, "round", 1, SQLITE_ANY, 0, fnct_math_round, 0, 0); sqlite3_create_function (db, "sign", 1, SQLITE_ANY, 0, fnct_math_sign, 0, 0); sqlite3_create_function (db, "sin", 1, SQLITE_ANY, 0, fnct_math_sin, 0, 0); sqlite3_create_function (db, "stddev_pop", 1, SQLITE_ANY, 0, 0, fnct_math_stddev_step, fnct_math_stddev_pop_final); sqlite3_create_function (db, "stddev_samp", 1, SQLITE_ANY, 0, 0, fnct_math_stddev_step, fnct_math_stddev_samp_final); sqlite3_create_function (db, "sqrt", 1, SQLITE_ANY, 0, fnct_math_sqrt, 0, 0); sqlite3_create_function (db, "tan", 1, SQLITE_ANY, 0, fnct_math_tan, 0, 0); sqlite3_create_function (db, "var_pop", 1, SQLITE_ANY, 0, 0, fnct_math_stddev_step, fnct_math_var_pop_final); sqlite3_create_function (db, "var_samp", 1, SQLITE_ANY, 0, 0, fnct_math_stddev_step, fnct_math_var_samp_final); #endif /* end supporting SQL math functions */ #ifndef OMIT_PROJ /* including PROJ.4 */ sqlite3_create_function (db, "Transform", 2, SQLITE_ANY, 0, fnct_Transform, 0, 0); sqlite3_create_function (db, "ST_Transform", 2, SQLITE_ANY, 0, fnct_Transform, 0, 0); #endif /* end including PROJ.4 */ #ifndef OMIT_GEOS /* including GEOS */ sqlite3_create_function (db, "Boundary", 1, SQLITE_ANY, 0, fnct_Boundary, 0, 0); sqlite3_create_function (db, "ST_Boundary", 1, SQLITE_ANY, 0, fnct_Boundary, 0, 0); sqlite3_create_function (db, "IsClosed", 1, SQLITE_ANY, 0, fnct_IsClosed, 0, 0); sqlite3_create_function (db, "ST_IsClosed", 1, SQLITE_ANY, 0, fnct_IsClosed, 0, 0); sqlite3_create_function (db, "IsSimple", 1, SQLITE_ANY, 0, fnct_IsSimple, 0, 0); sqlite3_create_function (db, "ST_IsSimple", 1, SQLITE_ANY, 0, fnct_IsSimple, 0, 0); sqlite3_create_function (db, "IsRing", 1, SQLITE_ANY, 0, fnct_IsRing, 0, 0); sqlite3_create_function (db, "ST_IsRing", 1, SQLITE_ANY, 0, fnct_IsRing, 0, 0); sqlite3_create_function (db, "IsValid", 1, SQLITE_ANY, 0, fnct_IsValid, 0, 0); sqlite3_create_function (db, "ST_IsValid", 1, SQLITE_ANY, 0, fnct_IsValid, 0, 0); sqlite3_create_function (db, "GLength", 1, SQLITE_ANY, 0, fnct_Length, 0, 0); sqlite3_create_function (db, "GLength", 2, SQLITE_ANY, 0, fnct_Length, 0, 0); sqlite3_create_function (db, "ST_Length", 1, SQLITE_ANY, 0, fnct_Length, 0, 0); sqlite3_create_function (db, "ST_Length", 2, SQLITE_ANY, 0, fnct_Length, 0, 0); sqlite3_create_function (db, "Perimeter", 1, SQLITE_ANY, 0, fnct_Perimeter, 0, 0); sqlite3_create_function (db, "Perimeter", 2, SQLITE_ANY, 0, fnct_Perimeter, 0, 0); sqlite3_create_function (db, "ST_Perimeter", 1, SQLITE_ANY, 0, fnct_Perimeter, 0, 0); sqlite3_create_function (db, "ST_Perimeter", 2, SQLITE_ANY, 0, fnct_Perimeter, 0, 0); sqlite3_create_function (db, "Area", 1, SQLITE_ANY, 0, fnct_Area, 0, 0); sqlite3_create_function (db, "ST_Area", 1, SQLITE_ANY, 0, fnct_Area, 0, 0); sqlite3_create_function (db, "ST_Centroid", 1, SQLITE_ANY, 0, fnct_Centroid, 0, 0); sqlite3_create_function (db, "Centroid", 1, SQLITE_ANY, 0, fnct_Centroid, 0, 0); sqlite3_create_function (db, "PointOnSurface", 1, SQLITE_ANY, 0, fnct_PointOnSurface, 0, 0); sqlite3_create_function (db, "ST_PointOnSurface", 1, SQLITE_ANY, 0, fnct_PointOnSurface, 0, 0); sqlite3_create_function (db, "Simplify", 2, SQLITE_ANY, 0, fnct_Simplify, 0, 0); sqlite3_create_function (db, "ST_Simplify", 2, SQLITE_ANY, 0, fnct_Simplify, 0, 0); sqlite3_create_function (db, "ST_Generalize", 2, SQLITE_ANY, 0, fnct_Simplify, 0, 0); sqlite3_create_function (db, "SimplifyPreserveTopology", 2, SQLITE_ANY, 0, fnct_SimplifyPreserveTopology, 0, 0); sqlite3_create_function (db, "ST_SimplifyPreserveTopology", 2, SQLITE_ANY, 0, fnct_SimplifyPreserveTopology, 0, 0); sqlite3_create_function (db, "ConvexHull", 1, SQLITE_ANY, 0, fnct_ConvexHull, 0, 0); sqlite3_create_function (db, "ST_ConvexHull", 1, SQLITE_ANY, 0, fnct_ConvexHull, 0, 0); sqlite3_create_function (db, "Buffer", 2, SQLITE_ANY, 0, fnct_Buffer, 0, 0); sqlite3_create_function (db, "ST_Buffer", 2, SQLITE_ANY, 0, fnct_Buffer, 0, 0); sqlite3_create_function (db, "Intersection", 2, SQLITE_ANY, 0, fnct_Intersection, 0, 0); sqlite3_create_function (db, "ST_Intersection", 2, SQLITE_ANY, 0, fnct_Intersection, 0, 0); sqlite3_create_function (db, "GUnion", 1, SQLITE_ANY, 0, 0, fnct_Union_step, fnct_Union_final); sqlite3_create_function (db, "GUnion", 2, SQLITE_ANY, 0, fnct_Union, 0, 0); sqlite3_create_function (db, "ST_Union", 1, SQLITE_ANY, 0, 0, fnct_Union_step, fnct_Union_final); sqlite3_create_function (db, "ST_Union", 2, SQLITE_ANY, 0, fnct_Union, 0, 0); sqlite3_create_function (db, "Difference", 2, SQLITE_ANY, 0, fnct_Difference, 0, 0); sqlite3_create_function (db, "ST_Difference", 2, SQLITE_ANY, 0, fnct_Difference, 0, 0); sqlite3_create_function (db, "SymDifference", 2, SQLITE_ANY, 0, fnct_SymDifference, 0, 0); sqlite3_create_function (db, "ST_SymDifference", 2, SQLITE_ANY, 0, fnct_SymDifference, 0, 0); sqlite3_create_function (db, "Equals", 2, SQLITE_ANY, 0, fnct_Equals, 0, 0); sqlite3_create_function (db, "ST_Equals", 2, SQLITE_ANY, 0, fnct_Equals, 0, 0); sqlite3_create_function (db, "Intersects", 2, SQLITE_ANY, cache, fnct_Intersects, 0, 0); sqlite3_create_function (db, "ST_Intersects", 2, SQLITE_ANY, cache, fnct_Intersects, 0, 0); sqlite3_create_function (db, "Disjoint", 2, SQLITE_ANY, cache, fnct_Disjoint, 0, 0); sqlite3_create_function (db, "ST_Disjoint", 2, SQLITE_ANY, cache, fnct_Disjoint, 0, 0); sqlite3_create_function (db, "Overlaps", 2, SQLITE_ANY, cache, fnct_Overlaps, 0, 0); sqlite3_create_function (db, "ST_Overlaps", 2, SQLITE_ANY, cache, fnct_Overlaps, 0, 0); sqlite3_create_function (db, "Crosses", 2, SQLITE_ANY, cache, fnct_Crosses, 0, 0); sqlite3_create_function (db, "ST_Crosses", 2, SQLITE_ANY, cache, fnct_Crosses, 0, 0); sqlite3_create_function (db, "Touches", 2, SQLITE_ANY, cache, fnct_Touches, 0, 0); sqlite3_create_function (db, "ST_Touches", 2, SQLITE_ANY, cache, fnct_Touches, 0, 0); sqlite3_create_function (db, "Within", 2, SQLITE_ANY, cache, fnct_Within, 0, 0); sqlite3_create_function (db, "ST_Within", 2, SQLITE_ANY, cache, fnct_Within, 0, 0); sqlite3_create_function (db, "Contains", 2, SQLITE_ANY, cache, fnct_Contains, 0, 0); sqlite3_create_function (db, "ST_Contains", 2, SQLITE_ANY, cache, fnct_Contains, 0, 0); sqlite3_create_function (db, "Relate", 3, SQLITE_ANY, 0, fnct_Relate, 0, 0); sqlite3_create_function (db, "ST_Relate", 3, SQLITE_ANY, 0, fnct_Relate, 0, 0); sqlite3_create_function (db, "Distance", 2, SQLITE_ANY, 0, fnct_Distance, 0, 0); sqlite3_create_function (db, "Distance", 3, SQLITE_ANY, 0, fnct_Distance, 0, 0); sqlite3_create_function (db, "ST_Distance", 2, SQLITE_ANY, 0, fnct_Distance, 0, 0); sqlite3_create_function (db, "ST_Distance", 3, SQLITE_ANY, 0, fnct_Distance, 0, 0); sqlite3_create_function (db, "PtDistWithin", 3, SQLITE_ANY, 0, fnct_PtDistWithin, 0, 0); sqlite3_create_function (db, "PtDistWithin", 4, SQLITE_ANY, 0, fnct_PtDistWithin, 0, 0); sqlite3_create_function (db, "BdPolyFromText", 1, SQLITE_ANY, 0, fnct_BdPolyFromText1, 0, 0); sqlite3_create_function (db, "BdPolyFromText", 2, SQLITE_ANY, 0, fnct_BdPolyFromText2, 0, 0); sqlite3_create_function (db, "BdMPolyFromText", 1, SQLITE_ANY, 0, fnct_BdMPolyFromText1, 0, 0); sqlite3_create_function (db, "BdMPolyFromText", 2, SQLITE_ANY, 0, fnct_BdMPolyFromText2, 0, 0); sqlite3_create_function (db, "BdPolyFromWKB", 1, SQLITE_ANY, 0, fnct_BdPolyFromWKB1, 0, 0); sqlite3_create_function (db, "BdPolyFromWKB", 2, SQLITE_ANY, 0, fnct_BdPolyFromWKB2, 0, 0); sqlite3_create_function (db, "BdMPolyFromWKB", 1, SQLITE_ANY, 0, fnct_BdMPolyFromWKB1, 0, 0); sqlite3_create_function (db, "BdMPolyFromWKB", 2, SQLITE_ANY, 0, fnct_BdMPolyFromWKB2, 0, 0); sqlite3_create_function (db, "ST_BdPolyFromText", 1, SQLITE_ANY, 0, fnct_BdPolyFromText1, 0, 0); sqlite3_create_function (db, "ST_BdPolyFromText", 2, SQLITE_ANY, 0, fnct_BdPolyFromText2, 0, 0); sqlite3_create_function (db, "ST_BdMPolyFromText", 1, SQLITE_ANY, 0, fnct_BdMPolyFromText1, 0, 0); sqlite3_create_function (db, "ST_BdMPolyFromText", 2, SQLITE_ANY, 0, fnct_BdMPolyFromText2, 0, 0); sqlite3_create_function (db, "ST_BdPolyFromWKB", 1, SQLITE_ANY, 0, fnct_BdPolyFromWKB1, 0, 0); sqlite3_create_function (db, "ST_BdPolyFromWKB", 2, SQLITE_ANY, 0, fnct_BdPolyFromWKB2, 0, 0); sqlite3_create_function (db, "ST_BdMPolyFromWKB", 1, SQLITE_ANY, 0, fnct_BdMPolyFromWKB1, 0, 0); sqlite3_create_function (db, "ST_BdMPolyFromWKB", 2, SQLITE_ANY, 0, fnct_BdMPolyFromWKB2, 0, 0); #ifdef GEOS_ADVANCED /* GEOS advanced features */ sqlite3_create_function (db, "CreateTopologyTables", 2, SQLITE_ANY, 0, fnct_CreateTopologyTables, 0, 0); sqlite3_create_function (db, "CreateTopologyTables", 3, SQLITE_ANY, 0, fnct_CreateTopologyTables, 0, 0); sqlite3_create_function (db, "OffsetCurve", 3, SQLITE_ANY, 0, fnct_OffsetCurve, 0, 0); sqlite3_create_function (db, "ST_OffsetCurve", 3, SQLITE_ANY, 0, fnct_OffsetCurve, 0, 0); sqlite3_create_function (db, "SingleSidedBuffer", 3, SQLITE_ANY, 0, fnct_SingleSidedBuffer, 0, 0); sqlite3_create_function (db, "ST_SingleSidedBuffer", 3, SQLITE_ANY, 0, fnct_SingleSidedBuffer, 0, 0); sqlite3_create_function (db, "HausdorffDistance", 2, SQLITE_ANY, 0, fnct_HausdorffDistance, 0, 0); sqlite3_create_function (db, "ST_HausdorffDistance", 2, SQLITE_ANY, 0, fnct_HausdorffDistance, 0, 0); sqlite3_create_function (db, "SharedPaths", 2, SQLITE_ANY, 0, fnct_SharedPaths, 0, 0); sqlite3_create_function (db, "ST_SharedPaths", 2, SQLITE_ANY, 0, fnct_SharedPaths, 0, 0); sqlite3_create_function (db, "Covers", 2, SQLITE_ANY, cache, fnct_Covers, 0, 0); sqlite3_create_function (db, "ST_Covers", 2, SQLITE_ANY, cache, fnct_Covers, 0, 0); sqlite3_create_function (db, "CoveredBy", 2, SQLITE_ANY, cache, fnct_CoveredBy, 0, 0); sqlite3_create_function (db, "ST_CoveredBy", 2, SQLITE_ANY, cache, fnct_CoveredBy, 0, 0); sqlite3_create_function (db, "Line_Interpolate_Point", 2, SQLITE_ANY, 0, fnct_LineInterpolatePoint, 0, 0); sqlite3_create_function (db, "ST_Line_Interpolate_Point", 2, SQLITE_ANY, 0, fnct_LineInterpolatePoint, 0, 0); sqlite3_create_function (db, "Line_Interpolate_Equidistant_Points", 2, SQLITE_ANY, 0, fnct_LineInterpolateEquidistantPoints, 0, 0); sqlite3_create_function (db, "ST_Line_Interpolate_Equidistant_Points", 2, SQLITE_ANY, 0, fnct_LineInterpolateEquidistantPoints, 0, 0); sqlite3_create_function (db, "Line_Locate_Point", 2, SQLITE_ANY, 0, fnct_LineLocatePoint, 0, 0); sqlite3_create_function (db, "ST_Line_Locate_Point", 2, SQLITE_ANY, 0, fnct_LineLocatePoint, 0, 0); sqlite3_create_function (db, "Line_Substring", 3, SQLITE_ANY, 0, fnct_LineSubstring, 0, 0); sqlite3_create_function (db, "ST_Line_Substring", 3, SQLITE_ANY, 0, fnct_LineSubstring, 0, 0); sqlite3_create_function (db, "ClosestPoint", 2, SQLITE_ANY, 0, fnct_ClosestPoint, 0, 0); sqlite3_create_function (db, "ST_ClosestPoint", 2, SQLITE_ANY, 0, fnct_ClosestPoint, 0, 0); sqlite3_create_function (db, "ShortestLine", 2, SQLITE_ANY, 0, fnct_ShortestLine, 0, 0); sqlite3_create_function (db, "ST_ShortestLine", 2, SQLITE_ANY, 0, fnct_ShortestLine, 0, 0); sqlite3_create_function (db, "Snap", 3, SQLITE_ANY, 0, fnct_Snap, 0, 0); sqlite3_create_function (db, "ST_Snap", 3, SQLITE_ANY, 0, fnct_Snap, 0, 0); sqlite3_create_function (db, "LineMerge", 1, SQLITE_ANY, 0, fnct_LineMerge, 0, 0); sqlite3_create_function (db, "ST_LineMerge", 1, SQLITE_ANY, 0, fnct_LineMerge, 0, 0); sqlite3_create_function (db, "UnaryUnion", 1, SQLITE_ANY, 0, fnct_UnaryUnion, 0, 0); sqlite3_create_function (db, "ST_UnaryUnion", 1, SQLITE_ANY, 0, fnct_UnaryUnion, 0, 0); sqlite3_create_function (db, "SquareGrid", 2, SQLITE_ANY, 0, fnct_SquareGrid, 0, 0); sqlite3_create_function (db, "SquareGrid", 3, SQLITE_ANY, 0, fnct_SquareGrid, 0, 0); sqlite3_create_function (db, "SquareGrid", 4, SQLITE_ANY, 0, fnct_SquareGrid, 0, 0); sqlite3_create_function (db, "ST_SquareGrid", 2, SQLITE_ANY, 0, fnct_SquareGrid, 0, 0); sqlite3_create_function (db, "ST_SquareGrid", 3, SQLITE_ANY, 0, fnct_SquareGrid, 0, 0); sqlite3_create_function (db, "ST_SquareGrid", 4, SQLITE_ANY, 0, fnct_SquareGrid, 0, 0); sqlite3_create_function (db, "TriangularGrid", 2, SQLITE_ANY, 0, fnct_TriangularGrid, 0, 0); sqlite3_create_function (db, "TriangularGrid", 3, SQLITE_ANY, 0, fnct_TriangularGrid, 0, 0); sqlite3_create_function (db, "TriangularGrid", 4, SQLITE_ANY, 0, fnct_TriangularGrid, 0, 0); sqlite3_create_function (db, "ST_TriangularGrid", 2, SQLITE_ANY, 0, fnct_TriangularGrid, 0, 0); sqlite3_create_function (db, "ST_TriangularGrid", 3, SQLITE_ANY, 0, fnct_TriangularGrid, 0, 0); sqlite3_create_function (db, "ST_TriangularGrid", 4, SQLITE_ANY, 0, fnct_TriangularGrid, 0, 0); sqlite3_create_function (db, "HexagonalGrid", 2, SQLITE_ANY, 0, fnct_HexagonalGrid, 0, 0); sqlite3_create_function (db, "HexagonalGrid", 3, SQLITE_ANY, 0, fnct_HexagonalGrid, 0, 0); sqlite3_create_function (db, "HexagonalGrid", 4, SQLITE_ANY, 0, fnct_HexagonalGrid, 0, 0); sqlite3_create_function (db, "ST_HexagonalGrid", 2, SQLITE_ANY, 0, fnct_HexagonalGrid, 0, 0); sqlite3_create_function (db, "ST_HexagonalGrid", 3, SQLITE_ANY, 0, fnct_HexagonalGrid, 0, 0); sqlite3_create_function (db, "ST_HexagonalGrid", 4, SQLITE_ANY, 0, fnct_HexagonalGrid, 0, 0); sqlite3_create_function (db, "LinesCutAtNodes", 2, SQLITE_ANY, 0, fnct_LinesCutAtNodes, 0, 0); sqlite3_create_function (db, "ST_LinesCutAtNodes", 2, SQLITE_ANY, 0, fnct_LinesCutAtNodes, 0, 0); sqlite3_create_function (db, "RingsCutAtNodes", 1, SQLITE_ANY, 0, fnct_RingsCutAtNodes, 0, 0); sqlite3_create_function (db, "ST_RingsCutAtNodes", 1, SQLITE_ANY, 0, fnct_RingsCutAtNodes, 0, 0); #endif /* end GEOS advanced features */ #ifdef GEOS_TRUNK /* GEOS experimental features */ sqlite3_create_function (db, "DelaunayTriangulation", 1, SQLITE_ANY, 0, fnct_DelaunayTriangulation, 0, 0); sqlite3_create_function (db, "DelaunayTriangulation", 2, SQLITE_ANY, 0, fnct_DelaunayTriangulation, 0, 0); sqlite3_create_function (db, "DelaunayTriangulation", 3, SQLITE_ANY, 0, fnct_DelaunayTriangulation, 0, 0); sqlite3_create_function (db, "ST_DelaunayTriangulation", 1, SQLITE_ANY, 0, fnct_DelaunayTriangulation, 0, 0); sqlite3_create_function (db, "ST_DelaunayTriangulation", 2, SQLITE_ANY, 0, fnct_DelaunayTriangulation, 0, 0); sqlite3_create_function (db, "ST_DelaunayTriangulation", 3, SQLITE_ANY, 0, fnct_DelaunayTriangulation, 0, 0); sqlite3_create_function (db, "VoronojDiagram", 1, SQLITE_ANY, 0, fnct_VoronojDiagram, 0, 0); sqlite3_create_function (db, "VoronojDiagram", 2, SQLITE_ANY, 0, fnct_VoronojDiagram, 0, 0); sqlite3_create_function (db, "VoronojDiagram", 3, SQLITE_ANY, 0, fnct_VoronojDiagram, 0, 0); sqlite3_create_function (db, "VoronojDiagram", 4, SQLITE_ANY, 0, fnct_VoronojDiagram, 0, 0); sqlite3_create_function (db, "ST_VoronojDiagram", 1, SQLITE_ANY, 0, fnct_VoronojDiagram, 0, 0); sqlite3_create_function (db, "ST_VoronojDiagram", 2, SQLITE_ANY, 0, fnct_VoronojDiagram, 0, 0); sqlite3_create_function (db, "ST_VoronojDiagram", 3, SQLITE_ANY, 0, fnct_VoronojDiagram, 0, 0); sqlite3_create_function (db, "ST_VoronojDiagram", 4, SQLITE_ANY, 0, fnct_VoronojDiagram, 0, 0); sqlite3_create_function (db, "ConcaveHull", 1, SQLITE_ANY, 0, fnct_ConcaveHull, 0, 0); sqlite3_create_function (db, "ConcaveHull", 2, SQLITE_ANY, 0, fnct_ConcaveHull, 0, 0); sqlite3_create_function (db, "ConcaveHull", 3, SQLITE_ANY, 0, fnct_ConcaveHull, 0, 0); sqlite3_create_function (db, "ConcaveHull", 4, SQLITE_ANY, 0, fnct_ConcaveHull, 0, 0); sqlite3_create_function (db, "ST_ConcaveHull", 1, SQLITE_ANY, 0, fnct_ConcaveHull, 0, 0); sqlite3_create_function (db, "ST_ConcaveHull", 2, SQLITE_ANY, 0, fnct_ConcaveHull, 0, 0); sqlite3_create_function (db, "ST_ConcaveHull", 3, SQLITE_ANY, 0, fnct_ConcaveHull, 0, 0); sqlite3_create_function (db, "ST_ConcaveHull", 4, SQLITE_ANY, 0, fnct_ConcaveHull, 0, 0); #endif /* end GEOS experimental features */ #ifdef ENABLE_LWGEOM /* enabling LWGEOM support */ sqlite3_create_function (db, "MakeValid", 1, SQLITE_ANY, 0, fnct_MakeValid, 0, 0); sqlite3_create_function (db, "ST_MakeValid", 1, SQLITE_ANY, 0, fnct_MakeValid, 0, 0); sqlite3_create_function (db, "MakeValidDiscarded", 1, SQLITE_ANY, 0, fnct_MakeValidDiscarded, 0, 0); sqlite3_create_function (db, "ST_MakeValidDiscarded", 1, SQLITE_ANY, 0, fnct_MakeValidDiscarded, 0, 0); sqlite3_create_function (db, "Area", 2, SQLITE_ANY, 0, fnct_Area, 0, 0); sqlite3_create_function (db, "ST_Area", 2, SQLITE_ANY, 0, fnct_Area, 0, 0); sqlite3_create_function (db, "Segmentize", 2, SQLITE_ANY, 0, fnct_Segmentize, 0, 0); sqlite3_create_function (db, "ST_Segmentize", 2, SQLITE_ANY, 0, fnct_Segmentize, 0, 0); sqlite3_create_function (db, "Azimuth", 2, SQLITE_ANY, 0, fnct_Azimuth, 0, 0); sqlite3_create_function (db, "ST_Azimuth", 2, SQLITE_ANY, 0, fnct_Azimuth, 0, 0); sqlite3_create_function (db, "Project", 3, SQLITE_ANY, 0, fnct_Project, 0, 0); sqlite3_create_function (db, "ST_Project", 3, SQLITE_ANY, 0, fnct_Project, 0, 0); sqlite3_create_function (db, "GeoHash", 1, SQLITE_ANY, 0, fnct_GeoHash, 0, 0); sqlite3_create_function (db, "GeoHash", 2, SQLITE_ANY, 0, fnct_GeoHash, 0, 0); sqlite3_create_function (db, "ST_GeoHash", 1, SQLITE_ANY, 0, fnct_GeoHash, 0, 0); sqlite3_create_function (db, "ST_GeoHash", 2, SQLITE_ANY, 0, fnct_GeoHash, 0, 0); sqlite3_create_function (db, "AsX3D", 1, SQLITE_ANY, 0, fnct_AsX3D, 0, 0); sqlite3_create_function (db, "AsX3D", 2, SQLITE_ANY, 0, fnct_AsX3D, 0, 0); sqlite3_create_function (db, "AsX3D", 3, SQLITE_ANY, 0, fnct_AsX3D, 0, 0); sqlite3_create_function (db, "AsX3D", 4, SQLITE_ANY, 0, fnct_AsX3D, 0, 0); sqlite3_create_function (db, "ST_AsX3D", 1, SQLITE_ANY, 0, fnct_AsX3D, 0, 0); sqlite3_create_function (db, "ST_AsX3D", 2, SQLITE_ANY, 0, fnct_AsX3D, 0, 0); sqlite3_create_function (db, "ST_AsX3D", 3, SQLITE_ANY, 0, fnct_AsX3D, 0, 0); sqlite3_create_function (db, "ST_AsX3D", 4, SQLITE_ANY, 0, fnct_AsX3D, 0, 0); sqlite3_create_function (db, "ST_3DDistance", 2, SQLITE_ANY, 0, fnct_3DDistance, 0, 0); sqlite3_create_function (db, "MaxDistance", 2, SQLITE_ANY, 0, fnct_MaxDistance, 0, 0); sqlite3_create_function (db, "ST_MaxDistance", 2, SQLITE_ANY, 0, fnct_MaxDistance, 0, 0); sqlite3_create_function (db, "ST_3DMaxDistance", 2, SQLITE_ANY, 0, fnct_3DMaxDistance, 0, 0); sqlite3_create_function (db, "Split", 2, SQLITE_ANY, 0, fnct_Split, 0, 0); sqlite3_create_function (db, "ST_Split", 2, SQLITE_ANY, 0, fnct_Split, 0, 0); sqlite3_create_function (db, "SplitLeft", 2, SQLITE_ANY, 0, fnct_SplitLeft, 0, 0); sqlite3_create_function (db, "ST_SplitLeft", 2, SQLITE_ANY, 0, fnct_SplitLeft, 0, 0); sqlite3_create_function (db, "SplitRight", 2, SQLITE_ANY, 0, fnct_SplitRight, 0, 0); sqlite3_create_function (db, "ST_SplitRight", 2, SQLITE_ANY, 0, fnct_SplitRight, 0, 0); #endif /* end LWGEOM support */ #endif /* end including GEOS */ #ifdef ENABLE_LIBXML2 /* including LIBXML2 */ sqlite3_create_function (db, "CreateStylingTables", 0, SQLITE_ANY, 0, fnct_CreateStylingTables, 0, 0); sqlite3_create_function (db, "CreateStylingTables", 1, SQLITE_ANY, 0, fnct_CreateStylingTables, 0, 0); sqlite3_create_function (db, "RegisterExternalGraphic", 2, SQLITE_ANY, 0, fnct_RegisterExternalGraphic, 0, 0); sqlite3_create_function (db, "RegisterExternalGraphic", 5, SQLITE_ANY, 0, fnct_RegisterExternalGraphic, 0, 0); sqlite3_create_function (db, "RegisterVectorStyledLayer", 3, SQLITE_ANY, 0, fnct_RegisterVectorStyledLayer, 0, 0); sqlite3_create_function (db, "RegisterVectorStyledLayer", 4, SQLITE_ANY, 0, fnct_RegisterVectorStyledLayer, 0, 0); sqlite3_create_function (db, "RegisterRasterStyledLayer", 2, SQLITE_ANY, 0, fnct_RegisterRasterStyledLayer, 0, 0); sqlite3_create_function (db, "RegisterRasterStyledLayer", 3, SQLITE_ANY, 0, fnct_RegisterRasterStyledLayer, 0, 0); sqlite3_create_function (db, "RegisterStyledGroup", 3, SQLITE_ANY, 0, fnct_RegisterStyledGroup, 0, 0); sqlite3_create_function (db, "RegisterStyledGroup", 4, SQLITE_ANY, 0, fnct_RegisterStyledGroup, 0, 0); sqlite3_create_function (db, "RegisterStyledGroup", 5, SQLITE_ANY, 0, fnct_RegisterStyledGroup, 0, 0); sqlite3_create_function (db, "SetStyledGroupInfos", 3, SQLITE_ANY, 0, fnct_SetStyledGroupInfos, 0, 0); sqlite3_create_function (db, "CreateIsoMetadataTables", 0, SQLITE_ANY, 0, fnct_CreateIsoMetadataTables, 0, 0); sqlite3_create_function (db, "CreateIsoMetadataTables", 1, SQLITE_ANY, 0, fnct_CreateIsoMetadataTables, 0, 0); sqlite3_create_function (db, "GetIsoMetadataId", 1, SQLITE_ANY, 0, fnct_GetIsoMetadataId, 0, 0); sqlite3_create_function (db, "RegisterIsoMetadata", 2, SQLITE_ANY, 0, fnct_RegisterIsoMetadata, 0, 0); sqlite3_create_function (db, "RegisterIsoMetadata", 3, SQLITE_ANY, 0, fnct_RegisterIsoMetadata, 0, 0); sqlite3_create_function (db, "XB_Create", 1, SQLITE_ANY, cache, fnct_XB_Create, 0, 0); sqlite3_create_function (db, "XB_Create", 2, SQLITE_ANY, cache, fnct_XB_Create, 0, 0); sqlite3_create_function (db, "XB_Create", 3, SQLITE_ANY, cache, fnct_XB_Create, 0, 0); sqlite3_create_function (db, "XB_GetPayload", 1, SQLITE_ANY, 0, fnct_XB_GetPayload, 0, 0); sqlite3_create_function (db, "XB_GetPayload", 2, SQLITE_ANY, 0, fnct_XB_GetPayload, 0, 0); sqlite3_create_function (db, "XB_GetDocument", 1, SQLITE_ANY, 0, fnct_XB_GetDocument, 0, 0); sqlite3_create_function (db, "XB_GetDocument", 2, SQLITE_ANY, 0, fnct_XB_GetDocument, 0, 0); sqlite3_create_function (db, "XB_SchemaValidate", 2, SQLITE_ANY, cache, fnct_XB_SchemaValidate, 0, 0); sqlite3_create_function (db, "XB_Compress", 1, SQLITE_ANY, 0, fnct_XB_Compress, 0, 0); sqlite3_create_function (db, "XB_Uncompress", 1, SQLITE_ANY, 0, fnct_XB_Uncompress, 0, 0); sqlite3_create_function (db, "XB_IsValid", 1, SQLITE_ANY, 0, fnct_XB_IsValid, 0, 0); sqlite3_create_function (db, "XB_IsSchemaValidated", 1, SQLITE_ANY, 0, fnct_XB_IsSchemaValidated, 0, 0); sqlite3_create_function (db, "XB_IsCompressed", 1, SQLITE_ANY, 0, fnct_XB_IsCompressed, 0, 0); sqlite3_create_function (db, "XB_IsIsoMetadata", 1, SQLITE_ANY, 0, fnct_XB_IsIsoMetadata, 0, 0); sqlite3_create_function (db, "XB_IsSldSeVectorStyle", 1, SQLITE_ANY, 0, fnct_XB_IsSldSeVectorStyle, 0, 0); sqlite3_create_function (db, "XB_IsSldSeRasterStyle", 1, SQLITE_ANY, 0, fnct_XB_IsSldSeRasterStyle, 0, 0); sqlite3_create_function (db, "XB_IsSvg", 1, SQLITE_ANY, 0, fnct_XB_IsSvg, 0, 0); sqlite3_create_function (db, "XB_GetSchemaURI", 1, SQLITE_ANY, 0, fnct_XB_GetSchemaURI, 0, 0); sqlite3_create_function (db, "XB_GetInternalSchemaURI", 1, SQLITE_ANY, cache, fnct_XB_GetInternalSchemaURI, 0, 0); sqlite3_create_function (db, "XB_GetFileId", 1, SQLITE_ANY, 0, fnct_XB_GetFileId, 0, 0); sqlite3_create_function (db, "XB_GetParentId", 1, SQLITE_ANY, 0, fnct_XB_GetParentId, 0, 0); sqlite3_create_function (db, "XB_SetFileId", 2, SQLITE_ANY, cache, fnct_XB_SetFileId, 0, 0); sqlite3_create_function (db, "XB_SetParentId", 2, SQLITE_ANY, cache, fnct_XB_SetParentId, 0, 0); sqlite3_create_function (db, "XB_AddFileId", 6, SQLITE_ANY, cache, fnct_XB_AddFileId, 0, 0); sqlite3_create_function (db, "XB_AddParentId", 6, SQLITE_ANY, cache, fnct_XB_AddParentId, 0, 0); sqlite3_create_function (db, "XB_GetTitle", 1, SQLITE_ANY, 0, fnct_XB_GetTitle, 0, 0); sqlite3_create_function (db, "XB_GetAbstract", 1, SQLITE_ANY, 0, fnct_XB_GetAbstract, 0, 0); sqlite3_create_function (db, "XB_GetGeometry", 1, SQLITE_ANY, 0, fnct_XB_GetGeometry, 0, 0); sqlite3_create_function (db, "XB_GetDocumentSize", 1, SQLITE_ANY, 0, fnct_XB_GetDocumentSize, 0, 0); sqlite3_create_function (db, "XB_GetEncoding", 1, SQLITE_ANY, 0, fnct_XB_GetEncoding, 0, 0); sqlite3_create_function (db, "XB_GetLastParseError", 0, SQLITE_ANY, cache, fnct_XB_GetLastParseError, 0, 0); sqlite3_create_function (db, "XB_GetLastValidateError", 0, SQLITE_ANY, cache, fnct_XB_GetLastValidateError, 0, 0); sqlite3_create_function (db, "XB_IsValidXPathExpression", 1, SQLITE_ANY, cache, fnct_XB_IsValidXPathExpression, 0, 0); sqlite3_create_function (db, "XB_GetLastXPathError", 0, SQLITE_ANY, cache, fnct_XB_GetLastXPathError, 0, 0); sqlite3_create_function (db, "XB_CacheFlush", 0, SQLITE_ANY, cache, fnct_XB_CacheFlush, 0, 0); #endif /* end including LIBXML2 */ #ifdef ENABLE_GEOPACKAGE /* not yet finalised geopackage raster functions, plus some convenience API */ sqlite3_create_function (db, "gpkgCreateBaseTables", 0, SQLITE_ANY, 0, fnct_gpkgCreateBaseTables, 0, 0); sqlite3_create_function (db, "gpkgCreateTilesTable", 2, SQLITE_ANY, 0, fnct_gpkgCreateTilesTable, 0, 0); sqlite3_create_function (db, "gpkgCreateTilesZoomLevel", 4, SQLITE_ANY, 0, fnct_gpkgCreateTilesZoomLevel, 0, 0); sqlite3_create_function (db, "gpkgAddTileTriggers", 1, SQLITE_ANY, 0, fnct_gpkgAddTileTriggers, 0, 0); sqlite3_create_function (db, "gpkgAddRtMetadataTriggers", 1, SQLITE_ANY, 0, fnct_gpkgAddRtMetadataTriggers, 0, 0); sqlite3_create_function (db, "gpkgGetNormalZoom", 2, SQLITE_ANY, 0, fnct_gpkgGetNormalZoom, 0, 0); sqlite3_create_function (db, "gpkgGetNormalRow", 3, SQLITE_ANY, 0, fnct_gpkgGetNormalRow, 0, 0); sqlite3_create_function (db, "gpkgGetImageType", 1, SQLITE_ANY, 0, fnct_gpkgGetImageType, 0, 0); sqlite3_create_function (db, "gpkgPointToTile", 5, SQLITE_ANY, 0, fnct_gpkgPointToTile, 0, 0); #endif /* enabling GeoPackage extensions */ return cache; } SPATIALITE_PRIVATE void init_spatialite_virtualtables (void *p_db, void *p_cache) { sqlite3 *db = (sqlite3 *) p_db; #ifndef OMIT_ICONV /* when ICONV is disabled SHP/DBF/TXT cannot be supported */ /* initializing the VirtualShape extension */ virtualshape_extension_init (db); /* initializing the VirtualDbf extension */ virtualdbf_extension_init (db); /* initializing the VirtualText extension */ virtualtext_extension_init (db); #ifndef OMIT_FREEXL /* initializing the VirtualXL extension */ virtualXL_extension_init (db); #endif /* FreeXL enabled/disable */ #endif /* ICONV enabled/disabled */ /* initializing the VirtualNetwork extension */ virtualnetwork_extension_init (db); /* initializing the MbrCache extension */ mbrcache_extension_init (db); /* initializing the VirtualFDO extension */ virtualfdo_extension_init (db); /* initializing the VirtualSpatialIndex extension */ virtual_spatialindex_extension_init (db); #ifdef ENABLE_LIBXML2 /* including LIBXML2 */ /* initializing the VirtualXPath extension */ virtual_xpath_extension_init (db, p_cache); #endif /* LIBXML2 enabled/disable */ } #ifdef LOADABLE_EXTENSION /* loadable-extension only */ static int init_spatialite_extension (sqlite3 * db, char **pzErrMsg, const sqlite3_api_routines * pApi) { void *p_cache; SQLITE_EXTENSION_INIT2 (pApi); /* setting the POSIX locale for numeric */ setlocale (LC_NUMERIC, "POSIX"); *pzErrMsg = NULL; p_cache = register_spatialite_sql_functions (db, NULL); init_spatialite_virtualtables (db, p_cache); /* setting a timeout handler */ sqlite3_busy_timeout (db, 5000); return 0; } #endif SPATIALITE_DECLARE void spatialite_init_geos (void) { /* initializes GEOS (or resets to initial state - as required by LWGEOM) */ #ifndef OMIT_GEOS /* initializing GEOS */ initGEOS (geos_warning, geos_error); #endif /* end GEOS */ } SPATIALITE_PRIVATE void spatialite_splash_screen (int verbose) { if (isatty (1)) { /* printing "hello" message only when stdout is on console */ if (verbose) { spatialite_i ("SpatiaLite version ..: %s", spatialite_version ()); spatialite_i ("\tSupported Extensions:\n"); #ifndef OMIT_ICONV /* ICONV is required by SHP/DBF/TXT */ spatialite_i ("\t- 'VirtualShape'\t[direct Shapefile access]\n"); spatialite_i ("\t- 'VirtualDbf'\t\t[direct DBF access]\n"); #ifndef OMIT_FREEXL spatialite_i ("\t- 'VirtualXL'\t\t[direct XLS access]\n"); #endif /* end FreeXL conditional */ spatialite_i ("\t- 'VirtualText'\t\t[direct CSV/TXT access]\n"); #endif /* end ICONV conditional */ spatialite_i ("\t- 'VirtualNetwork'\t[Dijkstra shortest path]\n"); spatialite_i ("\t- 'RTree'\t\t[Spatial Index - R*Tree]\n"); spatialite_i ("\t- 'MbrCache'\t\t[Spatial Index - MBR cache]\n"); spatialite_i ("\t- 'VirtualSpatialIndex'\t[R*Tree metahandler]\n"); #ifdef ENABLE_LIBXML2 /* VirtualXPath is supported */ spatialite_i ("\t- 'VirtualXPath'\t[XML Path Language - XPath]\n"); #endif /* end including LIBXML2 */ spatialite_i ("\t- 'VirtualFDO'\t\t[FDO-OGR interoperability]\n"); spatialite_i ("\t- 'SpatiaLite'\t\t[Spatial SQL - OGC]\n"); } #ifndef OMIT_PROJ /* PROJ.4 version */ if (verbose) spatialite_i ("PROJ.4 version ......: %s\n", pj_get_release ()); #endif /* end including PROJ.4 */ #ifndef OMIT_GEOS /* GEOS version */ if (verbose) spatialite_i ("GEOS version ........: %s\n", GEOSversion ()); #endif /* end GEOS version */ #ifdef ENABLE_LWGEOM /* LWGEOM version */ if (verbose) spatialite_i ("LWGEOM version ......: %s\n", splite_lwgeom_version ()); #endif /* end LWGEOM version */ } } #ifndef LOADABLE_EXTENSION SPATIALITE_DECLARE void spatialite_init_ex (sqlite3 * db_handle, void *p_cache, int verbose) { /* used when SQLite initializes as an ordinary lib */ struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; /* setting the POSIX locale for numeric */ setlocale (LC_NUMERIC, "POSIX"); #ifndef OMIT_GEOS /* initializing GEOS */ initGEOS (geos_warning, geos_error); #endif /* end GEOS */ #ifdef POSTGIS_2_1 /* initializing liblwgeom from PostGIS 2.1.x (or later) */ splite_lwgeom_init (); #endif /* end POSTGIS_2_1 */ register_spatialite_sql_functions (db_handle, cache); init_spatialite_virtualtables (db_handle, p_cache); spatialite_splash_screen (verbose); /* setting a timeout handler */ sqlite3_busy_timeout (db_handle, 5000); } static void free_internal_cache (struct splite_internal_cache *cache) { /* freeing an internal cache */ struct splite_geos_cache_item *p; #ifdef ENABLE_LIBXML2 int i; struct splite_xmlSchema_cache_item *p_xmlSchema; #endif /* freeing the XML error buffers */ gaiaOutBufferReset (cache->xmlParsingErrors); gaiaOutBufferReset (cache->xmlSchemaValidationErrors); gaiaOutBufferReset (cache->xmlXPathErrors); free (cache->xmlParsingErrors); free (cache->xmlSchemaValidationErrors); free (cache->xmlXPathErrors); /* freeing the GEOS cache */ p = &(cache->cacheItem1); splite_free_geos_cache_item (p); p = &(cache->cacheItem2); splite_free_geos_cache_item (p); #ifdef ENABLE_LIBXML2 for (i = 0; i < MAX_XMLSCHEMA_CACHE; i++) { /* freeing the XmlSchema cache */ p_xmlSchema = &(cache->xmlSchemaCache[i]); splite_free_xml_schema_cache_item (p_xmlSchema); } #endif /* freeing the cache itself */ free (cache); } SPATIALITE_DECLARE void spatialite_cleanup_ex (void *ptr) { struct splite_internal_cache *cache = (struct splite_internal_cache *) ptr; #ifndef OMIT_GEOS finishGEOS (); gaiaResetGeosMsg (); #endif #ifdef ENABLE_LWGEOM gaiaResetLwGeomMsg (); #endif free_internal_cache (cache); sqlite3_reset_auto_extension (); } #endif /* not built as loadable-extension only */ #ifdef LOADABLE_EXTENSION /* loadable-extension only */ #if !(defined _WIN32) || defined(__MINGW32__) /* MSVC is unable to understand this declaration */ __attribute__ ((visibility ("default"))) #endif SPATIALITE_DECLARE int sqlite3_extension_init (sqlite3 * db, char **pzErrMsg, const sqlite3_api_routines * pApi) { /* SQLite invokes this routine once when it dynamically loads the extension. */ #ifndef OMIT_GEOS /* initializing GEOS */ initGEOS (geos_warning, geos_error); #endif /* end GEOS */ #ifdef POSTGIS_2_1 /* initializing liblwgeom from PostGIS 2.1.x (or later) */ splite_lwgeom_init (); #endif /* end POSTGIS_2_1 */ return init_spatialite_extension (db, pzErrMsg, pApi); } #endif SPATIALITE_DECLARE sqlite3_int64 math_llabs (sqlite3_int64 value) { /* replacing the C99 llabs() function */ return value < 0 ? -value : value; } SPATIALITE_DECLARE double math_round (double value) { /* replacing the C99 round() function */ double min = floor (value); if (fabs (value - min) < 0.5) return min; return min + 1.0; } libspatialite-4.1.1/src/spatialite/virtualXL.c0000664000175000017500000006025112163502133016312 00000000000000/* virtualXLc -- SQLite3 extension [VIRTUAL TABLE accessing .XLS] version 4.1, 2013 May 8 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include #include #include #ifndef OMIT_FREEXL #include #endif #ifdef _WIN32 #define strcasecmp _stricmp #endif /* not WIN32 */ #ifndef OMIT_ICONV /* if ICONV is disabled no XL support is available */ #ifndef OMIT_FREEXL /* FreeXL is disabled */ static struct sqlite3_module my_XL_module; typedef struct VirtualXLStruct { /* extends the sqlite3_vtab struct */ const sqlite3_module *pModule; /* ptr to sqlite module: USED INTERNALLY BY SQLITE */ int nRef; /* # references: USED INTERNALLY BY SQLITE */ char *zErrMsg; /* error message: USE INTERNALLY BY SQLITE */ sqlite3 *db; /* the sqlite db holding the virtual table */ const void *XL_handle; /* the XL handle */ unsigned int rows; /* Worksheet #rows */ unsigned short columns; /* Worksheet #columns */ char firstLineTitles; /* 'Y' or 'N' */ } VirtualXL; typedef VirtualXL *VirtualXLPtr; typedef struct VirtualXLConstraintStruct { /* a constraint to be verified for xFilter */ int iColumn; /* Column on left-hand side of constraint */ int op; /* Constraint operator */ char valueType; /* value Type ('I'=int,'D'=double,'T'=text) */ sqlite3_int64 intValue; /* Int64 comparison value */ double dblValue; /* Double comparison value */ char *txtValue; /* Text comparison value */ struct VirtualXLConstraintStruct *next; } VirtualXLConstraint; typedef VirtualXLConstraint *VirtualXLConstraintPtr; typedef struct VirtualXLCursorStruct { /* extends the sqlite3_vtab_cursor struct */ VirtualXLPtr pVtab; /* Virtual table of this cursor */ unsigned int current_row; /* the current row ID */ int eof; /* the EOF marker */ VirtualXLConstraintPtr firstConstraint; VirtualXLConstraintPtr lastConstraint; } VirtualXLCursor; typedef VirtualXLCursor *VirtualXLCursorPtr; static int vXL_create (sqlite3 * db, void *pAux, int argc, const char *const *argv, sqlite3_vtab ** ppVTab, char **pzErr) { /* creates the virtual table connected to some XLS file */ char *sql; VirtualXLPtr p_vt; char path[2048]; char firstLineTitles = 'N'; unsigned int worksheet = 0; unsigned int max_worksheet; unsigned int info; unsigned int rows; unsigned short columns; unsigned short col; int len; int ret; const void *handle; const char *pPath = NULL; char *xname; gaiaOutBuffer sql_statement; if (pAux) pAux = pAux; /* unused arg warning suppression */ /* checking for XLS PATH */ if (argc == 4 || argc == 5 || argc == 6) { pPath = argv[3]; len = strlen (pPath); if ((*(pPath + 0) == '\'' || *(pPath + 0) == '"') && (*(pPath + len - 1) == '\'' || *(pPath + len - 1) == '"')) { /* the path is enclosed between quotes - we need to dequote it */ strcpy (path, pPath + 1); len = strlen (path); *(path + len - 1) = '\0'; } else strcpy (path, pPath); if (argc == 5 || argc == 6) worksheet = atoi (argv[4]); if (argc == 6) { if (atoi (argv[5]) == 1) firstLineTitles = 'Y'; } } else { *pzErr = sqlite3_mprintf ("[VirtualXL module] CREATE VIRTUAL: illegal arg list {xls_path [, worksheet_index [, first_line_titles(1/0)]]}"); return SQLITE_ERROR; } /* allocating the main XL module */ p_vt = (VirtualXLPtr) sqlite3_malloc (sizeof (VirtualXL)); if (!p_vt) return SQLITE_NOMEM; p_vt->pModule = &my_XL_module; p_vt->nRef = 0; p_vt->zErrMsg = NULL; p_vt->db = db; p_vt->XL_handle = NULL; p_vt->rows = 0; p_vt->columns = 0; p_vt->firstLineTitles = firstLineTitles; /* opening the .XLS file [Workbook] */ ret = freexl_open (path, &handle); if (ret != FREEXL_OK) { /* free memory */ freexl_close (handle); /* something is going the wrong way; creating a stupid default table */ xname = gaiaDoubleQuotedSql (argv[2]); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (PKUID INTEGER)", xname); free (xname); if (sqlite3_declare_vtab (db, sql) != SQLITE_OK) { sqlite3_free (sql); *pzErr = sqlite3_mprintf ("[VirtualXL module] cannot build a table from XL\n"); return SQLITE_ERROR; } sqlite3_free (sql); *ppVTab = (sqlite3_vtab *) p_vt; return SQLITE_OK; } /* checking if Password Protected [obfuscated] */ freexl_get_info (handle, FREEXL_BIFF_PASSWORD, &info); if (info != FREEXL_BIFF_PLAIN) { /* free memory */ freexl_close (handle); /* Obfuscated: creating a stupid default table */ xname = gaiaDoubleQuotedSql (argv[2]); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (PKUID INTEGER)", xname); free (xname); if (sqlite3_declare_vtab (db, sql) != SQLITE_OK) { sqlite3_free (sql); *pzErr = sqlite3_mprintf ("[VirtualXL module] Password protected [obfuscated] .xls\n"); return SQLITE_ERROR; } sqlite3_free (sql); *ppVTab = (sqlite3_vtab *) p_vt; return SQLITE_OK; } /* querying how many Worksheets are there */ freexl_get_info (handle, FREEXL_BIFF_SHEET_COUNT, &max_worksheet); if (worksheet >= max_worksheet) { /* free memory */ freexl_close (handle); /* no such Worksheet: creating a stupid default table */ xname = gaiaDoubleQuotedSql (argv[2]); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (PKUID INTEGER)", xname); free (xname); if (sqlite3_declare_vtab (db, sql) != SQLITE_OK) { sqlite3_free (sql); *pzErr = sqlite3_mprintf ("[VirtualXL module] no such Worksheet [index=%u]\n", worksheet); return SQLITE_ERROR; } sqlite3_free (sql); *ppVTab = (sqlite3_vtab *) p_vt; return SQLITE_OK; } /* selecting the currently active XL Worksheet */ freexl_select_active_worksheet (handle, worksheet); freexl_worksheet_dimensions (handle, &rows, &columns); p_vt->XL_handle = handle; p_vt->rows = rows; p_vt->columns = columns; /* preparing the COLUMNs for this VIRTUAL TABLE */ gaiaOutBufferInitialize (&sql_statement); xname = gaiaDoubleQuotedSql (argv[2]); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (row_no INTEGER", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); if (firstLineTitles == 'Y') { /* fetching column names */ for (col = 0; col < columns; col++) { FreeXL_CellValue cell; int ret = freexl_get_cell_value (handle, 0, col, &cell); if (ret != FREEXL_OK) sql = sqlite3_mprintf ("col_%d", col); else { if (cell.type == FREEXL_CELL_INT) sql = sqlite3_mprintf ("%d", cell.value.int_value); else if (cell.type == FREEXL_CELL_DOUBLE) sql = sqlite3_mprintf ("%1.2f", cell.value.double_value); else if (cell.type == FREEXL_CELL_TEXT || cell.type == FREEXL_CELL_SST_TEXT || cell.type == FREEXL_CELL_DATE || cell.type == FREEXL_CELL_DATETIME || cell.type == FREEXL_CELL_TIME) { int len = strlen (cell.value.text_value); if (len < 256) sql = sqlite3_mprintf ("%s", cell.value.text_value); else sql = sqlite3_mprintf ("col_%d", col); } else sql = sqlite3_mprintf ("col_%d", col); } xname = gaiaDoubleQuotedSql (sql); sqlite3_free (sql); sql = sqlite3_mprintf (", \"%s\"", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); } } else { /* setting default column names */ for (col = 0; col < columns; col++) { sql = sqlite3_mprintf ("col_%d", col); xname = gaiaDoubleQuotedSql (sql); sqlite3_free (sql); sql = sqlite3_mprintf (", \"%s\"", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); } } gaiaAppendToOutBuffer (&sql_statement, ")"); if (sql_statement.Error == 0 && sql_statement.Buffer != NULL) { if (sqlite3_declare_vtab (db, sql_statement.Buffer) != SQLITE_OK) { *pzErr = sqlite3_mprintf ("[VirtualXL module] CREATE VIRTUAL: invalid SQL statement \"%s\"", sql_statement.Buffer); gaiaOutBufferReset (&sql_statement); return SQLITE_ERROR; } } gaiaOutBufferReset (&sql_statement); *ppVTab = (sqlite3_vtab *) p_vt; return SQLITE_OK; } static int vXL_connect (sqlite3 * db, void *pAux, int argc, const char *const *argv, sqlite3_vtab ** ppVTab, char **pzErr) { /* connects the virtual table to a .xls file - simply aliases vXL_create() */ return vXL_create (db, pAux, argc, argv, ppVTab, pzErr); } static int vXL_best_index (sqlite3_vtab * pVTab, sqlite3_index_info * pIndex) { /* best index selection */ int i; int iArg = 0; char str[2048]; char buf[64]; if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ *str = '\0'; for (i = 0; i < pIndex->nConstraint; i++) { if (pIndex->aConstraint[i].usable) { iArg++; pIndex->aConstraintUsage[i].argvIndex = iArg; pIndex->aConstraintUsage[i].omit = 1; sprintf (buf, "%d:%d,", pIndex->aConstraint[i].iColumn, pIndex->aConstraint[i].op); strcat (str, buf); } } if (*str != '\0') { pIndex->idxStr = sqlite3_mprintf ("%s", str); pIndex->needToFreeIdxStr = 1; } return SQLITE_OK; } static int vXL_disconnect (sqlite3_vtab * pVTab) { /* disconnects the virtual table */ VirtualXLPtr p_vt = (VirtualXLPtr) pVTab; if (p_vt->XL_handle) freexl_close (p_vt->XL_handle); sqlite3_free (p_vt); return SQLITE_OK; } static int vXL_destroy (sqlite3_vtab * pVTab) { /* destroys the virtual table - simply aliases vXL_disconnect() */ return vXL_disconnect (pVTab); } static void vXL_read_row (VirtualXLCursorPtr cursor) { /* trying to read a "row" from XL */ cursor->current_row++; if (cursor->current_row > cursor->pVtab->rows) { cursor->eof = 1; return; } } static int vXL_open (sqlite3_vtab * pVTab, sqlite3_vtab_cursor ** ppCursor) { /* opening a new cursor */ VirtualXLCursorPtr cursor = (VirtualXLCursorPtr) sqlite3_malloc (sizeof (VirtualXLCursor)); if (cursor == NULL) return SQLITE_ERROR; cursor->firstConstraint = NULL; cursor->lastConstraint = NULL; cursor->pVtab = (VirtualXLPtr) pVTab; if (cursor->pVtab->firstLineTitles == 'Y') cursor->current_row = 1; else cursor->current_row = 0; cursor->eof = 0; *ppCursor = (sqlite3_vtab_cursor *) cursor; vXL_read_row (cursor); return SQLITE_OK; } static void vXL_free_constraints (VirtualXLCursorPtr cursor) { /* memory cleanup - cursor constraints */ VirtualXLConstraintPtr pC; VirtualXLConstraintPtr pCn; pC = cursor->firstConstraint; while (pC) { pCn = pC->next; if (pC->txtValue) sqlite3_free (pC->txtValue); sqlite3_free (pC); pC = pCn; } cursor->firstConstraint = NULL; cursor->lastConstraint = NULL; } static int vXL_close (sqlite3_vtab_cursor * pCursor) { /* closing the cursor */ VirtualXLCursorPtr cursor = (VirtualXLCursorPtr) pCursor; vXL_free_constraints (cursor); sqlite3_free (pCursor); return SQLITE_OK; } static int vXL_parse_constraint (const char *str, int index, int *iColumn, int *op) { /* parsing a constraint string */ char buf[64]; const char *in = str; char *out = buf; int i = 0; int found = 0; *out = '\0'; while (*in != '\0') { if (*in == ',') { if (index == i) { *out = '\0'; found = 1; break; } i++; in++; continue; } if (index == i) *out++ = *in; in++; } if (!found) return 0; in = buf; for (i = 0; i < (int) strlen (buf); i++) { if (buf[i] == ':') { buf[i] = '\0'; *iColumn = atoi (buf); *op = atoi (buf + i + 1); return 1; } in++; } return 0; } static int vXL_eval_constraints (VirtualXLCursorPtr cursor) { /* evaluating Filter constraints */ FreeXL_CellValue cell; VirtualXLConstraintPtr pC = cursor->firstConstraint; if (pC == NULL) return 1; while (pC) { int ok = 0; if (pC->iColumn == 0) { /* the PRIMARY KEY column */ if (pC->valueType == 'I') { int cur_row = cursor->current_row; if (cursor->pVtab->firstLineTitles == 'Y') cur_row--; switch (pC->op) { case SQLITE_INDEX_CONSTRAINT_EQ: if (cur_row == pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GT: if (cur_row > pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LE: if (cur_row <= pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LT: if (cur_row < pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GE: if (cur_row >= pC->intValue) ok = 1; break; }; } goto done; } if (cursor->pVtab->XL_handle != NULL && cursor->current_row <= cursor->pVtab->rows && pC->iColumn <= cursor->pVtab->columns) freexl_get_cell_value (cursor->pVtab->XL_handle, cursor->current_row - 1, pC->iColumn - 1, &cell); else cell.type = FREEXL_CELL_NULL; if (cell.type == FREEXL_CELL_INT) { if (pC->valueType == 'I') { switch (pC->op) { case SQLITE_INDEX_CONSTRAINT_EQ: if (cell.value.int_value == pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GT: if (cell.value.int_value > pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LE: if (cell.value.int_value <= pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LT: if (cell.value.int_value < pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GE: if (cell.value.int_value >= pC->intValue) ok = 1; break; }; } if (pC->valueType == 'D') { switch (pC->op) { case SQLITE_INDEX_CONSTRAINT_EQ: if (cell.value.int_value == pC->dblValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GT: if (cell.value.int_value > pC->dblValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LE: if (cell.value.int_value <= pC->dblValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LT: if (cell.value.int_value < pC->dblValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GE: if (cell.value.int_value >= pC->dblValue) ok = 1; break; }; } } if (cell.type == FREEXL_CELL_DOUBLE) { if (pC->valueType == 'I') { switch (pC->op) { case SQLITE_INDEX_CONSTRAINT_EQ: if (cell.value.double_value == pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GT: if (cell.value.double_value > pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LE: if (cell.value.double_value <= pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LT: if (cell.value.double_value < pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GE: if (cell.value.double_value >= pC->intValue) ok = 1; break; }; } if (pC->valueType == 'D') { switch (pC->op) { case SQLITE_INDEX_CONSTRAINT_EQ: if (cell.value.double_value == pC->dblValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GT: if (cell.value.double_value > pC->dblValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LE: if (cell.value.double_value <= pC->dblValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LT: if (cell.value.double_value < pC->dblValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GE: if (cell.value.double_value >= pC->dblValue) ok = 1; break; }; } } if ((cell.type == FREEXL_CELL_TEXT || cell.type == FREEXL_CELL_SST_TEXT || cell.type == FREEXL_CELL_DATE || cell.type == FREEXL_CELL_DATETIME || cell.type == FREEXL_CELL_TIME) && pC->valueType == 'T') { int ret = strcmp (cell.value.text_value, pC->txtValue); switch (pC->op) { case SQLITE_INDEX_CONSTRAINT_EQ: if (ret == 0) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GT: if (ret > 0) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LE: if (ret <= 0) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LT: if (ret < 0) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GE: if (ret >= 0) ok = 1; break; }; } done: if (!ok) return 0; pC = pC->next; } return 1; } static int vXL_filter (sqlite3_vtab_cursor * pCursor, int idxNum, const char *idxStr, int argc, sqlite3_value ** argv) { /* setting up a cursor filter */ int i; int iColumn; int op; int len; VirtualXLConstraintPtr pC; VirtualXLCursorPtr cursor = (VirtualXLCursorPtr) pCursor; if (idxNum) idxNum = idxNum; /* unused arg warning suppression */ /* resetting any previously set filter constraint */ vXL_free_constraints (cursor); for (i = 0; i < argc; i++) { if (!vXL_parse_constraint (idxStr, i, &iColumn, &op)) continue; pC = sqlite3_malloc (sizeof (VirtualXLConstraint)); if (!pC) continue; pC->iColumn = iColumn; pC->op = op; pC->valueType = '\0'; pC->txtValue = NULL; pC->next = NULL; if (sqlite3_value_type (argv[i]) == SQLITE_INTEGER) { pC->valueType = 'I'; pC->intValue = sqlite3_value_int64 (argv[i]); } if (sqlite3_value_type (argv[i]) == SQLITE_FLOAT) { pC->valueType = 'D'; pC->dblValue = sqlite3_value_double (argv[i]); } if (sqlite3_value_type (argv[i]) == SQLITE_TEXT) { pC->valueType = 'T'; len = sqlite3_value_bytes (argv[i]) + 1; pC->txtValue = (char *) sqlite3_malloc (len); if (pC->txtValue) strcpy (pC->txtValue, (char *) sqlite3_value_text (argv[i])); } if (cursor->firstConstraint == NULL) cursor->firstConstraint = pC; if (cursor->lastConstraint != NULL) cursor->lastConstraint->next = pC; cursor->lastConstraint = pC; } if (cursor->pVtab->firstLineTitles == 'Y') cursor->current_row = 1; else cursor->current_row = 0; cursor->eof = 0; while (1) { vXL_read_row (cursor); if (cursor->eof) break; if (vXL_eval_constraints (cursor)) break; } return SQLITE_OK; } static int vXL_next (sqlite3_vtab_cursor * pCursor) { /* fetching a next row from cursor */ VirtualXLCursorPtr cursor = (VirtualXLCursorPtr) pCursor; while (1) { vXL_read_row (cursor); if (cursor->eof) break; if (vXL_eval_constraints (cursor)) break; } return SQLITE_OK; } static int vXL_eof (sqlite3_vtab_cursor * pCursor) { /* cursor EOF */ VirtualXLCursorPtr cursor = (VirtualXLCursorPtr) pCursor; return cursor->eof; } static int vXL_column (sqlite3_vtab_cursor * pCursor, sqlite3_context * pContext, int column) { /* fetching value for the Nth column */ FreeXL_CellValue cell; VirtualXLCursorPtr cursor = (VirtualXLCursorPtr) pCursor; if (column == 0) { /* the PRIMARY KEY column */ if (cursor->pVtab->firstLineTitles == 'Y') sqlite3_result_int (pContext, cursor->current_row - 1); else sqlite3_result_int (pContext, cursor->current_row); return SQLITE_OK; } if (cursor->pVtab->XL_handle != NULL && cursor->current_row <= cursor->pVtab->rows && column <= cursor->pVtab->columns) freexl_get_cell_value (cursor->pVtab->XL_handle, cursor->current_row - 1, column - 1, &cell); else cell.type = FREEXL_CELL_NULL; switch (cell.type) { case FREEXL_CELL_INT: sqlite3_result_int (pContext, cell.value.int_value); break; case FREEXL_CELL_DOUBLE: sqlite3_result_double (pContext, cell.value.double_value); break; case FREEXL_CELL_TEXT: case FREEXL_CELL_SST_TEXT: case FREEXL_CELL_DATE: case FREEXL_CELL_DATETIME: case FREEXL_CELL_TIME: sqlite3_result_text (pContext, cell.value.text_value, strlen (cell.value.text_value), SQLITE_STATIC); break; default: sqlite3_result_null (pContext); break; }; return SQLITE_OK; } static int vXL_rowid (sqlite3_vtab_cursor * pCursor, sqlite_int64 * pRowid) { /* fetching the ROWID */ VirtualXLCursorPtr cursor = (VirtualXLCursorPtr) pCursor; if (cursor->pVtab->firstLineTitles == 'Y') *pRowid = cursor->current_row - 1; else *pRowid = cursor->current_row; return SQLITE_OK; } static int vXL_update (sqlite3_vtab * pVTab, int argc, sqlite3_value ** argv, sqlite_int64 * pRowid) { /* generic update [INSERT / UPDATE / DELETE */ if (pVTab || argc || argv || pRowid) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_READONLY; } static int vXL_begin (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vXL_sync (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vXL_commit (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vXL_rollback (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } int sqlite3VirtualXLInit (sqlite3 * db) { int rc = SQLITE_OK; my_XL_module.iVersion = 1; my_XL_module.xCreate = &vXL_create; my_XL_module.xConnect = &vXL_connect; my_XL_module.xBestIndex = &vXL_best_index; my_XL_module.xDisconnect = &vXL_disconnect; my_XL_module.xDestroy = &vXL_destroy; my_XL_module.xOpen = &vXL_open; my_XL_module.xClose = &vXL_close; my_XL_module.xFilter = &vXL_filter; my_XL_module.xNext = &vXL_next; my_XL_module.xEof = &vXL_eof; my_XL_module.xColumn = &vXL_column; my_XL_module.xRowid = &vXL_rowid; my_XL_module.xUpdate = &vXL_update; my_XL_module.xBegin = &vXL_begin; my_XL_module.xSync = &vXL_sync; my_XL_module.xCommit = &vXL_commit; my_XL_module.xRollback = &vXL_rollback; my_XL_module.xFindFunction = NULL; sqlite3_create_module_v2 (db, "VirtualXL", &my_XL_module, NULL, 0); return rc; } int virtualXL_extension_init (sqlite3 * db) { return sqlite3VirtualXLInit (db); } #endif /* FreeXL enabled/disabled */ #endif /* ICONV enabled/disabled */ libspatialite-4.1.1/src/spatialite/virtualnetwork.c0000664000175000017500000015711312163502133017464 00000000000000/* virtualnetwork.c -- SQLite3 extension [VIRTUAL TABLE Routing - shortest path] version 4.1, 2013 May 8 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Luigi Costalli luigi.costalli@gmail.com Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include #include #include static struct sqlite3_module my_net_module; #define VNET_DIJKSTRA_ALGORITHM 1 #define VNET_A_STAR_ALGORITHM 2 #ifdef _WIN32 #define strcasecmp _stricmp #endif /* not WIN32 */ /****************************************************************************** / / VirtualNetwork structs / ******************************************************************************/ typedef struct NetworkArcStruct { /* an ARC */ const struct NetworkNodeStruct *NodeFrom; const struct NetworkNodeStruct *NodeTo; sqlite3_int64 ArcRowid; double Cost; } NetworkArc; typedef NetworkArc *NetworkArcPtr; typedef struct NetworkNodeStruct { /* a NODE */ int InternalIndex; sqlite3_int64 Id; char *Code; double CoordX; double CoordY; int NumArcs; NetworkArcPtr Arcs; } NetworkNode; typedef NetworkNode *NetworkNodePtr; typedef struct NetworkStruct { /* the main NETWORK structure */ int Net64; int AStar; int EndianArch; int MaxCodeLength; int CurrentIndex; int NodeCode; int NumNodes; char *TableName; char *FromColumn; char *ToColumn; char *GeometryColumn; char *NameColumn; double AStarHeuristicCoeff; NetworkNodePtr Nodes; } Network; typedef Network *NetworkPtr; typedef struct ArcSolutionStruct { /* Geometry corresponding to an Arc used by Dijkstra shortest path solution */ sqlite3_int64 ArcRowid; char *FromCode; char *ToCode; sqlite3_int64 FromId; sqlite3_int64 ToId; int Points; double *Coords; int Srid; char *Name; struct ArcSolutionStruct *Next; } ArcSolution; typedef ArcSolution *ArcSolutionPtr; typedef struct RowSolutionStruct { /* a row into the shortest path solution */ NetworkArcPtr Arc; char *Name; struct RowSolutionStruct *Next; } RowSolution; typedef RowSolution *RowSolutionPtr; typedef struct SolutionStruct { /* the shortest path solution */ ArcSolutionPtr FirstArc; ArcSolutionPtr LastArc; NetworkNodePtr From; NetworkNodePtr To; RowSolutionPtr First; RowSolutionPtr Last; RowSolutionPtr CurrentRow; sqlite3_int64 CurrentRowId; double TotalCost; gaiaGeomCollPtr Geometry; } Solution; typedef Solution *SolutionPtr; /****************************************************************************** / / Dijkstra and A* common structs / ******************************************************************************/ typedef struct RoutingNode { int Id; struct RoutingNode **To; NetworkArcPtr *Link; int DimTo; struct RoutingNode *PreviousNode; NetworkArcPtr Arc; double Distance; double HeuristicDistance; int Inspected; } RoutingNode; typedef RoutingNode *RoutingNodePtr; typedef struct RoutingNodes { RoutingNodePtr Nodes; NetworkArcPtr *ArcsBuffer; RoutingNodePtr *NodesBuffer; int Dim; int DimLink; } RoutingNodes; typedef RoutingNodes *RoutingNodesPtr; typedef struct RoutingHeapStruct { RoutingNodePtr *Values; int Head; int Tail; } RoutingHeap; typedef RoutingHeap *RoutingHeapPtr; /****************************************************************************** / / VirtualTable structs / ******************************************************************************/ typedef struct VirtualNetworkStruct { /* extends the sqlite3_vtab struct */ const sqlite3_module *pModule; /* ptr to sqlite module: USED INTERNALLY BY SQLITE */ int nRef; /* # references: USED INTERNALLY BY SQLITE */ char *zErrMsg; /* error message: USE INTERNALLY BY SQLITE */ sqlite3 *db; /* the sqlite db holding the virtual table */ NetworkPtr graph; /* the NETWORK structure */ RoutingNodesPtr routing; /* the ROUTING structure */ int currentAlgorithm; /* the currently selected Shortest Path Algorithm */ } VirtualNetwork; typedef VirtualNetwork *VirtualNetworkPtr; typedef struct VirtualNetworkCursortStruct { /* extends the sqlite3_vtab_cursor struct */ VirtualNetworkPtr pVtab; /* Virtual table of this cursor */ SolutionPtr solution; /* the current solution */ int eof; /* the EOF marker */ } VirtualNetworkCursor; typedef VirtualNetworkCursor *VirtualNetworkCursorPtr; /* / / implementation of the Dijkstra Shortest Path algorithm / //////////////////////////////////////////////////////////// / / Author: Luigi Costalli luigi.costalli@gmail.com / version 1.0. 2008 October 21 / */ static RoutingNodesPtr routing_init (NetworkPtr graph) { /* allocating and initializing the ROUTING struct */ int i; int j; int cnt = 0; RoutingNodesPtr nd; RoutingNodePtr ndn; NetworkNodePtr nn; /* allocating the main Nodes struct */ nd = malloc (sizeof (RoutingNodes)); /* allocating and initializing Nodes array */ nd->Nodes = malloc (sizeof (RoutingNode) * graph->NumNodes); nd->Dim = graph->NumNodes; nd->DimLink = 0; /* pre-alloc buffer strategy - GENSCHER 2010-01-05 */ for (i = 0; i < graph->NumNodes; cnt += graph->Nodes[i].NumArcs, i++); nd->NodesBuffer = malloc (sizeof (RoutingNodePtr) * cnt); nd->ArcsBuffer = malloc (sizeof (NetworkArcPtr) * cnt); cnt = 0; for (i = 0; i < graph->NumNodes; i++) { /* initializing the Nodes array */ nn = graph->Nodes + i; ndn = nd->Nodes + i; ndn->Id = nn->InternalIndex; ndn->DimTo = nn->NumArcs; ndn->To = &(nd->NodesBuffer[cnt]); ndn->Link = &(nd->ArcsBuffer[cnt]); cnt += nn->NumArcs; for (j = 0; j < nn->NumArcs; j++) { /* setting the outcoming Arcs for the current Node */ nd->DimLink++; ndn->To[j] = nd->Nodes + nn->Arcs[j].NodeTo->InternalIndex; ndn->Link[j] = nn->Arcs + j; } } return (nd); } static void routing_free (RoutingNodes * e) { /* memory cleanup; freeing the ROUTING struct */ free (e->ArcsBuffer); free (e->NodesBuffer); free (e->Nodes); free (e); } static RoutingHeapPtr routing_heap_init (int dim) { /* allocating the Nodes ordered list */ RoutingHeapPtr h; h = malloc (sizeof (RoutingHeap)); h->Values = malloc (sizeof (RoutingNodePtr) * dim); h->Head = 0; h->Tail = 0; return (h); } static void routing_heap_free (RoutingHeapPtr h) { /* freeing the Nodes ordered list */ free (h->Values); free (h); } static void routing_push (RoutingHeapPtr h, RoutingNodePtr n) { /* inserting a Node into the list */ h->Values[h->Tail] = n; h->Tail++; } static RoutingNodePtr dijkstra_pop (RoutingHeapPtr h) { /* fetching the minimum value */ int i; RoutingNodePtr n; double min = DBL_MAX; int i_min = h->Head; for (i = h->Head; i < h->Tail; i++) { n = h->Values[i]; if (n->Distance < min) { min = n->Distance; i_min = i; } } if (i_min > h->Head) { n = h->Values[i_min]; h->Values[i_min] = h->Values[h->Head]; h->Values[h->Head] = n; } n = h->Values[h->Head]; h->Head++; return (n); } static NetworkArcPtr * dijkstra_shortest_path (RoutingNodesPtr e, NetworkNodePtr pfrom, NetworkNodePtr pto, int *ll) { /* identifying the Shortest Path - Dijkstra's algorithm */ int from; int to; int i; int k; RoutingNodePtr n; RoutingNodePtr p_to; NetworkArcPtr p_link; int cnt; NetworkArcPtr *result; RoutingHeapPtr h; /* setting From/To */ from = pfrom->InternalIndex; to = pto->InternalIndex; /* initializing the heap */ h = routing_heap_init (e->DimLink); /* initializing the graph */ for (i = 0; i < e->Dim; i++) { n = e->Nodes + i; n->PreviousNode = NULL; n->Arc = NULL; n->Inspected = 0; n->Distance = DBL_MAX; } /* pushes the From node into the Nodes list */ e->Nodes[from].Distance = 0.0; routing_push (h, e->Nodes + from); while (h->Tail != h->Head) { /* Dijsktra loop */ n = dijkstra_pop (h); if (n->Id == to) { /* destination reached */ break; } n->Inspected = 1; for (i = 0; i < n->DimTo; i++) { p_to = *(n->To + i); p_link = *(n->Link + i); if (p_to->Inspected == 0) { if (p_to->Distance == DBL_MAX) { /* inserting a new node into the list */ p_to->Distance = n->Distance + p_link->Cost; p_to->PreviousNode = n; p_to->Arc = p_link; routing_push (h, p_to); } else if (p_to->Distance > n->Distance + p_link->Cost) { /* updating an already inserted node */ p_to->Distance = n->Distance + p_link->Cost; p_to->PreviousNode = n; p_to->Arc = p_link; } } } } routing_heap_free (h); cnt = 0; n = e->Nodes + to; while (n->PreviousNode != NULL) { /* counting how many Arcs are into the Shortest Path solution */ cnt++; n = n->PreviousNode; } /* allocating the solution */ result = malloc (sizeof (NetworkArcPtr) * cnt); k = cnt - 1; n = e->Nodes + to; while (n->PreviousNode != NULL) { /* inserting an Arc into the solution */ result[k] = n->Arc; n = n->PreviousNode; k--; } *ll = cnt; return (result); } /* END of Luigi Costalli Dijkstra Shortest Path implementation */ /* / / implementation of the A* Shortest Path algorithm / */ static RoutingNodePtr a_star_pop (RoutingHeapPtr h) { /* fetching the minimum value */ int i; RoutingNodePtr n; double min = DBL_MAX; int i_min = h->Head; for (i = h->Head; i < h->Tail; i++) { n = h->Values[i]; if (n->HeuristicDistance < min) { min = n->HeuristicDistance; i_min = i; } } if (i_min > h->Head) { n = h->Values[i_min]; h->Values[i_min] = h->Values[h->Head]; h->Values[h->Head] = n; } n = h->Values[h->Head]; h->Head++; return (n); } static double a_star_heuristic_distance (NetworkNodePtr n1, NetworkNodePtr n2, double coeff) { /* computing the euclidean distance intercurring between two nodes */ double dx = n1->CoordX - n2->CoordX; double dy = n1->CoordY - n2->CoordY; double dist = sqrt ((dx * dx) + (dy * dy)) * coeff; return dist; } static NetworkArcPtr * a_star_shortest_path (RoutingNodesPtr e, NetworkNodePtr nodes, NetworkNodePtr pfrom, NetworkNodePtr pto, double heuristic_coeff, int *ll) { /* identifying the Shortest Path - A* algorithm */ int from; int to; int i; int k; RoutingNodePtr pAux; RoutingNodePtr n; RoutingNodePtr p_to; NetworkNodePtr pOrg; NetworkNodePtr pDest; NetworkArcPtr p_link; int cnt; NetworkArcPtr *result; RoutingHeapPtr h; /* setting From/To */ from = pfrom->InternalIndex; to = pto->InternalIndex; pAux = e->Nodes + from; pOrg = nodes + pAux->Id; pAux = e->Nodes + to; pDest = nodes + pAux->Id; /* initializing the heap */ h = routing_heap_init (e->DimLink); /* initializing the graph */ for (i = 0; i < e->Dim; i++) { n = e->Nodes + i; n->PreviousNode = NULL; n->Arc = NULL; n->Inspected = 0; n->Distance = DBL_MAX; n->HeuristicDistance = DBL_MAX; } /* pushes the From node into the Nodes list */ e->Nodes[from].Distance = 0.0; e->Nodes[from].HeuristicDistance = a_star_heuristic_distance (pOrg, pDest, heuristic_coeff); routing_push (h, e->Nodes + from); while (h->Tail != h->Head) { /* A* loop */ n = a_star_pop (h); if (n->Id == to) { /* destination reached */ break; } n->Inspected = 1; for (i = 0; i < n->DimTo; i++) { p_to = *(n->To + i); p_link = *(n->Link + i); if (p_to->Inspected == 0) { if (p_to->Distance == DBL_MAX) { /* inserting a new node into the list */ p_to->Distance = n->Distance + p_link->Cost; pOrg = nodes + p_to->Id; p_to->HeuristicDistance = p_to->Distance + a_star_heuristic_distance (pOrg, pDest, heuristic_coeff); p_to->PreviousNode = n; p_to->Arc = p_link; routing_push (h, p_to); } else if (p_to->Distance > n->Distance + p_link->Cost) { /* updating an already inserted node */ p_to->Distance = n->Distance + p_link->Cost; pOrg = nodes + p_to->Id; p_to->HeuristicDistance = p_to->Distance + a_star_heuristic_distance (pOrg, pDest, heuristic_coeff); p_to->PreviousNode = n; p_to->Arc = p_link; } } } } routing_heap_free (h); cnt = 0; n = e->Nodes + to; while (n->PreviousNode != NULL) { /* counting how many Arcs are into the Shortest Path solution */ cnt++; n = n->PreviousNode; } /* allocating the solution */ result = malloc (sizeof (NetworkArcPtr) * cnt); k = cnt - 1; n = e->Nodes + to; while (n->PreviousNode != NULL) { /* inserting an Arc into the solution */ result[k] = n->Arc; n = n->PreviousNode; k--; } *ll = cnt; return (result); } /* END of A* Shortest Path implementation */ static int cmp_nodes_code (const void *p1, const void *p2) { /* compares two nodes by CODE [for BSEARCH] */ NetworkNodePtr pN1 = (NetworkNodePtr) p1; NetworkNodePtr pN2 = (NetworkNodePtr) p2; return strcmp (pN1->Code, pN2->Code); } static int cmp_nodes_id (const void *p1, const void *p2) { /* compares two nodes by ID [for BSEARCH] */ NetworkNodePtr pN1 = (NetworkNodePtr) p1; NetworkNodePtr pN2 = (NetworkNodePtr) p2; if (pN1->Id == pN2->Id) return 0; if (pN1->Id > pN2->Id) return 1; return -1; } static NetworkNodePtr find_node_by_code (NetworkPtr graph, const char *code) { /* searching a Node (by Code) into the sorted list */ NetworkNodePtr ret; NetworkNode pN; pN.Code = (char *) code; ret = bsearch (&pN, graph->Nodes, graph->NumNodes, sizeof (NetworkNode), cmp_nodes_code); return ret; } static NetworkNodePtr find_node_by_id (NetworkPtr graph, const sqlite3_int64 id) { /* searching a Node (by Id) into the sorted list */ NetworkNodePtr ret; NetworkNode pN; pN.Id = id; ret = bsearch (&pN, graph->Nodes, graph->NumNodes, sizeof (NetworkNode), cmp_nodes_id); return ret; } static void delete_solution (SolutionPtr solution) { /* deleting the current solution */ ArcSolutionPtr pA; ArcSolutionPtr pAn; RowSolutionPtr pR; RowSolutionPtr pRn; if (!solution) return; pA = solution->FirstArc; while (pA) { pAn = pA->Next; if (pA->FromCode) free (pA->FromCode); if (pA->ToCode) free (pA->ToCode); if (pA->Coords) free (pA->Coords); if (pA->Name) free (pA->Name); free (pA); pA = pAn; } pR = solution->First; while (pR) { pRn = pR->Next; if (pR->Name) free (pR->Name); free (pR); pR = pRn; } if (solution->Geometry) gaiaFreeGeomColl (solution->Geometry); free (solution); } static void reset_solution (SolutionPtr solution) { /* resetting the current solution */ ArcSolutionPtr pA; ArcSolutionPtr pAn; RowSolutionPtr pR; RowSolutionPtr pRn; if (!solution) return; pA = solution->FirstArc; while (pA) { pAn = pA->Next; if (pA->FromCode) free (pA->FromCode); if (pA->ToCode) free (pA->ToCode); if (pA->Coords) free (pA->Coords); free (pA); pA = pAn; } pR = solution->First; while (pR) { pRn = pR->Next; if (pR->Name) free (pR->Name); free (pR); pR = pRn; } if (solution->Geometry) gaiaFreeGeomColl (solution->Geometry); solution->FirstArc = NULL; solution->LastArc = NULL; solution->From = NULL; solution->To = NULL; solution->First = NULL; solution->Last = NULL; solution->CurrentRow = NULL; solution->CurrentRowId = 0; solution->TotalCost = 0.0; solution->Geometry = NULL; } static SolutionPtr alloc_solution (void) { /* allocates and initializes the current solution */ SolutionPtr p = malloc (sizeof (Solution)); p->FirstArc = NULL; p->LastArc = NULL; p->From = NULL; p->To = NULL; p->First = NULL; p->Last = NULL; p->CurrentRow = NULL; p->CurrentRowId = 0; p->TotalCost = 0.0; p->Geometry = NULL; return p; } static void add_arc_to_solution (SolutionPtr solution, NetworkArcPtr arc) { /* inserts an Arc into the Shortest Path solution */ RowSolutionPtr p = malloc (sizeof (RowSolution)); p->Arc = arc; p->Name = NULL; p->Next = NULL; solution->TotalCost += arc->Cost; if (!(solution->First)) solution->First = p; if (solution->Last) solution->Last->Next = p; solution->Last = p; } static void add_arc_geometry_to_solution (SolutionPtr solution, sqlite3_int64 arc_id, const char *from_code, const char *to_code, sqlite3_int64 from_id, sqlite3_int64 to_id, int points, double *coords, int srid, const char *name) { /* inserts an Arc Geometry into the Shortest Path solution */ int len; ArcSolutionPtr p = malloc (sizeof (ArcSolution)); p->ArcRowid = arc_id; p->FromCode = NULL; len = strlen (from_code); if (len > 0) { p->FromCode = malloc (len + 1); strcpy (p->FromCode, from_code); } p->ToCode = NULL; len = strlen (to_code); if (len > 0) { p->ToCode = malloc (len + 1); strcpy (p->ToCode, to_code); } p->FromId = from_id; p->ToId = to_id; p->Points = points; p->Coords = coords; p->Srid = srid; if (name == NULL) p->Name = NULL; else { len = strlen (name); p->Name = malloc (len + 1); strcpy (p->Name, name); } p->Next = NULL; if (!(solution->FirstArc)) solution->FirstArc = p; if (solution->LastArc) solution->LastArc->Next = p; solution->LastArc = p; } static void build_solution (sqlite3 * handle, NetworkPtr graph, SolutionPtr solution, NetworkArcPtr * shortest_path, int cnt) { /* formatting the Shortest Path solution */ int i; char *sql; int err; int error = 0; int ret; sqlite3_int64 arc_id; const unsigned char *blob; int size; sqlite3_int64 from_id; sqlite3_int64 to_id; char *from_code; char *to_code; char *name; int tbd; int ind; int base = 0; int block = 128; int how_many; sqlite3_stmt *stmt; char *xfrom; char *xto; char *xgeom; char *xname; char *xtable; gaiaOutBuffer sql_statement; if (cnt > 0) { /* building the solution */ for (i = 0; i < cnt; i++) { add_arc_to_solution (solution, shortest_path[i]); } } tbd = cnt; while (tbd > 0) { /* requesting max 128 arcs at each time */ if (tbd < block) how_many = tbd; else how_many = block; /* preparing the Geometry representing this solution [reading arcs] */ gaiaOutBufferInitialize (&sql_statement); if (graph->NameColumn) { /* a Name column is defined */ xfrom = gaiaDoubleQuotedSql (graph->FromColumn); xto = gaiaDoubleQuotedSql (graph->ToColumn); xgeom = gaiaDoubleQuotedSql (graph->GeometryColumn); xname = gaiaDoubleQuotedSql (graph->NameColumn); xtable = gaiaDoubleQuotedSql (graph->TableName); sql = sqlite3_mprintf ("SELECT ROWID, \"%s\", \"%s\", \"%s\", \"%s\" FROM \"%s\" WHERE ROWID IN (", xfrom, xto, xgeom, xname, xtable); free (xfrom); free (xto); free (xgeom); free (xname); free (xtable); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); } else { /* no Name column is defined */ xfrom = gaiaDoubleQuotedSql (graph->FromColumn); xto = gaiaDoubleQuotedSql (graph->ToColumn); xgeom = gaiaDoubleQuotedSql (graph->GeometryColumn); xtable = gaiaDoubleQuotedSql (graph->TableName); sql = sqlite3_mprintf ("SELECT ROWID, \"%s\", \"%s\", \"%s\" FROM \"%s\" WHERE ROWID IN (", xfrom, xto, xgeom, xtable); free (xfrom); free (xto); free (xgeom); free (xtable); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); } for (i = 0; i < how_many; i++) { if (i == 0) gaiaAppendToOutBuffer (&sql_statement, "?"); else gaiaAppendToOutBuffer (&sql_statement, ",?"); } gaiaAppendToOutBuffer (&sql_statement, ")"); if (sql_statement.Error == 0 && sql_statement.Buffer != NULL) ret = sqlite3_prepare_v2 (handle, sql_statement.Buffer, strlen (sql_statement.Buffer), &stmt, NULL); else ret = SQLITE_ERROR; gaiaOutBufferReset (&sql_statement); if (ret != SQLITE_OK) { error = 1; goto abort; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); ind = 1; for (i = 0; i < cnt; i++) { if (i < base) continue; if (i >= (base + how_many)) break; sqlite3_bind_int64 (stmt, ind, shortest_path[i]->ArcRowid); ind++; } while (1) { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) { arc_id = -1; from_id = -1; to_id = -1; from_code = NULL; to_code = NULL; blob = NULL; size = 0; name = NULL; err = 0; if (sqlite3_column_type (stmt, 0) == SQLITE_INTEGER) arc_id = sqlite3_column_int64 (stmt, 0); else err = 1; if (graph->NodeCode) { /* nodes are identified by TEXT codes */ if (sqlite3_column_type (stmt, 1) == SQLITE_TEXT) from_code = (char *) sqlite3_column_text (stmt, 1); else err = 1; if (sqlite3_column_type (stmt, 2) == SQLITE_TEXT) to_code = (char *) sqlite3_column_text (stmt, 2); else err = 1; } else { /* nodes are identified by INTEGER ids */ if (sqlite3_column_type (stmt, 1) == SQLITE_INTEGER) from_id = sqlite3_column_int64 (stmt, 1); else err = 1; if (sqlite3_column_type (stmt, 2) == SQLITE_INTEGER) to_id = sqlite3_column_int64 (stmt, 2); else err = 1; } if (sqlite3_column_type (stmt, 3) == SQLITE_BLOB) { blob = (const unsigned char *) sqlite3_column_blob (stmt, 3); size = sqlite3_column_bytes (stmt, 3); } else err = 1; if (graph->NameColumn) { if (sqlite3_column_type (stmt, 4) == SQLITE_TEXT) name = (char *) sqlite3_column_text (stmt, 4); } if (err) error = 1; else { /* saving the Arc geometry into the temporary struct */ gaiaGeomCollPtr geom = gaiaFromSpatiaLiteBlobWkb (blob, size); if (geom) { /* OK, we have fetched a valid Geometry */ if (geom->FirstPoint == NULL && geom->FirstPolygon == NULL && geom->FirstLinestring != NULL && geom->FirstLinestring == geom->LastLinestring) { /* Geometry is LINESTRING as expected */ int iv; int points = geom->FirstLinestring->Points; double *coords = malloc (sizeof (double) * (points * 2)); for (iv = 0; iv < points; iv++) { double x; double y; gaiaGetPoint (geom->FirstLinestring-> Coords, iv, &x, &y); *(coords + ((iv * 2) + 0)) = x; *(coords + ((iv * 2) + 1)) = y; } if (from_code == NULL) from_code = ""; if (to_code == NULL) to_code = ""; add_arc_geometry_to_solution (solution, arc_id, from_code, to_code, from_id, to_id, points, coords, geom-> Srid, name); } else error = 1; gaiaFreeGeomColl (geom); } else error = 1; } } } sqlite3_finalize (stmt); tbd -= how_many; base += how_many; } abort: if (shortest_path) free (shortest_path); if (!error) { /* building the Geometry representing the Shortest Path Solution */ gaiaLinestringPtr ln; int tot_pts = 0; RowSolutionPtr pR; ArcSolutionPtr pA; int srid = -1; if (solution->FirstArc) srid = (solution->FirstArc)->Srid; pR = solution->First; while (pR) { pA = solution->FirstArc; while (pA) { /* computing how many vertices do we need to build the LINESTRING */ if (pR->Arc->ArcRowid == pA->ArcRowid) { if (pR == solution->First) tot_pts += pA->Points; else tot_pts += (pA->Points - 1); if (pA->Srid != srid) srid = -1; } pA = pA->Next; } pR = pR->Next; } /* creating the Shortest Path Geometry - LINESTRING */ ln = gaiaAllocLinestring (tot_pts); solution->Geometry = gaiaAllocGeomColl (); solution->Geometry->Srid = srid; gaiaInsertLinestringInGeomColl (solution->Geometry, ln); tot_pts = 0; pR = solution->First; while (pR) { /* building the LINESTRING */ int skip; if (pR == solution->First) skip = 0; /* for first arc we must copy any vertex */ else skip = 1; /* for subsequent arcs we must skip first vertex [already inserted from previous arc] */ pA = solution->FirstArc; while (pA) { if (pR->Arc->ArcRowid == pA->ArcRowid) { /* copying vertices from correspoinding Arc Geometry */ int ini; int iv; int rev; double x; double y; if (graph->NodeCode) { /* nodes are identified by TEXT codes */ if (strcmp (pR->Arc->NodeFrom->Code, pA->ToCode) == 0) rev = 1; else rev = 0; } else { /* nodes are identified by INTEGER ids */ if (pR->Arc->NodeFrom->Id == pA->ToId) rev = 1; else rev = 0; } if (rev) { /* copying Arc vertices in reverse order */ if (skip) ini = pA->Points - 2; else ini = pA->Points - 1; for (iv = ini; iv >= 0; iv--) { x = *(pA->Coords + ((iv * 2) + 0)); y = *(pA->Coords + ((iv * 2) + 1)); gaiaSetPoint (ln->Coords, tot_pts, x, y); tot_pts++; } } else { /* copying Arc vertices in normal order */ if (skip) ini = 1; else ini = 0; for (iv = ini; iv < pA->Points; iv++) { x = *(pA->Coords + ((iv * 2) + 0)); y = *(pA->Coords + ((iv * 2) + 1)); gaiaSetPoint (ln->Coords, tot_pts, x, y); tot_pts++; } } if (pA->Name) { int len = strlen (pA->Name); pR->Name = malloc (len + 1); strcpy (pR->Name, pA->Name); } break; } pA = pA->Next; } pR = pR->Next; } } } static void dijkstra_solve (sqlite3 * handle, NetworkPtr graph, RoutingNodesPtr routing, SolutionPtr solution) { /* computing a Dijkstra Shortest Path solution */ int cnt; NetworkArcPtr *shortest_path = dijkstra_shortest_path (routing, solution->From, solution->To, &cnt); build_solution (handle, graph, solution, shortest_path, cnt); } static void a_star_solve (sqlite3 * handle, NetworkPtr graph, RoutingNodesPtr routing, SolutionPtr solution) { /* computing an A* Shortest Path solution */ int cnt; NetworkArcPtr *shortest_path = a_star_shortest_path (routing, graph->Nodes, solution->From, solution->To, graph->AStarHeuristicCoeff, &cnt); build_solution (handle, graph, solution, shortest_path, cnt); } static void network_free (NetworkPtr p) { /* memory cleanup; freeing any allocation for the network struct */ NetworkNodePtr pN; int i; if (!p) return; for (i = 0; i < p->NumNodes; i++) { pN = p->Nodes + i; if (pN->Code) free (pN->Code); if (pN->Arcs) free (pN->Arcs); } if (p->Nodes) free (p->Nodes); if (p->TableName) free (p->TableName); if (p->FromColumn) free (p->FromColumn); if (p->ToColumn) free (p->ToColumn); if (p->GeometryColumn) free (p->GeometryColumn); if (p->NameColumn) free (p->NameColumn); free (p); } static NetworkPtr network_init (const unsigned char *blob, int size) { /* parsing the HEADER block */ NetworkPtr graph; int net64; int aStar = 0; int nodes; int node_code; int max_code_length; int endian_arch = gaiaEndianArch (); const char *table; const char *from; const char *to; const char *geom; const char *name = NULL; double a_star_coeff = 1.0; int len; const unsigned char *ptr; if (size < 9) return NULL; if (*(blob + 0) == GAIA_NET_START) /* signature - legacy format using 32bit ints */ net64 = 0; else if (*(blob + 0) == GAIA_NET64_START) /* signature - format using 64bit ints */ net64 = 1; else if (*(blob + 0) == GAIA_NET64_A_STAR_START) /* signature - format using 64bit ints AND supporting A* */ { net64 = 1; aStar = 1; } else return NULL; if (*(blob + 1) != GAIA_NET_HEADER) /* signature */ return NULL; nodes = gaiaImport32 (blob + 2, 1, endian_arch); /* # nodes */ if (nodes <= 0) return NULL; if (*(blob + 6) == GAIA_NET_CODE) /* Nodes identified by a TEXT code */ node_code = 1; else if (*(blob + 6) == GAIA_NET_ID) /* Nodes indentified by an INTEGER id */ node_code = 0; else return NULL; max_code_length = *(blob + 7); /* Max TEXT Code length */ if (*(blob + 8) != GAIA_NET_TABLE) /* signature for TABLE NAME */ return NULL; ptr = blob + 9; len = gaiaImport16 (ptr, 1, endian_arch); /* TABLE NAME is varlen */ ptr += 2; table = (char *) ptr; ptr += len; if (*ptr != GAIA_NET_FROM) /* signature for FromNode COLUMN */ return NULL; ptr++; len = gaiaImport16 (ptr, 1, endian_arch); /* FromNode COLUMN is varlen */ ptr += 2; from = (char *) ptr; ptr += len; if (*ptr != GAIA_NET_TO) /* signature for ToNode COLUMN */ return NULL; ptr++; len = gaiaImport16 (ptr, 1, endian_arch); /* ToNode COLUMN is varlen */ ptr += 2; to = (char *) ptr; ptr += len; if (*ptr != GAIA_NET_GEOM) /* signature for Geometry COLUMN */ return NULL; ptr++; len = gaiaImport16 (ptr, 1, endian_arch); /* Geometry COLUMN is varlen */ ptr += 2; geom = (char *) ptr; ptr += len; if (net64) { if (*ptr != GAIA_NET_NAME) /* signature for Name COLUMN - may be empty */ return NULL; ptr++; len = gaiaImport16 (ptr, 1, endian_arch); /* Name COLUMN is varlen */ ptr += 2; name = (char *) ptr; ptr += len; } if (net64 && aStar) { if (*ptr != GAIA_NET_A_STAR_COEFF) /* signature for A* Heuristic Coeff */ return NULL; ptr++; a_star_coeff = gaiaImport64 (ptr, 1, endian_arch); ptr += 8; } if (*ptr != GAIA_NET_END) /* signature */ return NULL; graph = malloc (sizeof (Network)); graph->Net64 = net64; graph->AStar = aStar; graph->EndianArch = endian_arch; graph->CurrentIndex = 0; graph->NodeCode = node_code; graph->MaxCodeLength = max_code_length; graph->NumNodes = nodes; graph->Nodes = malloc (sizeof (NetworkNode) * nodes); len = strlen (table); graph->TableName = malloc (len + 1); strcpy (graph->TableName, table); len = strlen (from); graph->FromColumn = malloc (len + 1); strcpy (graph->FromColumn, from); len = strlen (to); graph->ToColumn = malloc (len + 1); strcpy (graph->ToColumn, to); len = strlen (geom); graph->GeometryColumn = malloc (len + 1); strcpy (graph->GeometryColumn, geom); if (!net64) { /* Name column is not supported */ graph->NameColumn = NULL; } else { len = strlen (name); if (len <= 1) graph->NameColumn = NULL; else { graph->NameColumn = malloc (len + 1); strcpy (graph->NameColumn, name); } } graph->AStarHeuristicCoeff = a_star_coeff; return graph; } static int network_block (NetworkPtr graph, const unsigned char *blob, int size) { /* parsing a NETWORK Block */ const unsigned char *in = blob; int nodes; int i; int ia; int index; char code[256]; double x; double y; sqlite3_int64 nodeId = -1; int arcs; NetworkNodePtr pN; NetworkArcPtr pA; int len; sqlite3_int64 arcId; int nodeToIdx; double cost; if (size < 3) goto error; if (*in++ != GAIA_NET_BLOCK) /* signature */ goto error; nodes = gaiaImport16 (in, 1, graph->EndianArch); /* # Nodes */ in += 2; for (i = 0; i < nodes; i++) { /* parsing each node */ if ((size - (in - blob)) < 5) goto error; if (*in++ != GAIA_NET_NODE) /* signature */ goto error; index = gaiaImport32 (in, 1, graph->EndianArch); /* node internal index */ in += 4; if (index < 0 || index >= graph->NumNodes) goto error; if (graph->NodeCode) { /* Nodes are identified by a TEXT Code */ if ((size - (in - blob)) < graph->MaxCodeLength) goto error; memcpy (code, in, graph->MaxCodeLength); in += graph->MaxCodeLength; } else { /* Nodes are identified by an INTEGER Id */ if (graph->Net64) { if ((size - (in - blob)) < 8) goto error; nodeId = gaiaImportI64 (in, 1, graph->EndianArch); /* the Node ID: 64bit */ in += 8; } else { if ((size - (in - blob)) < 4) goto error; nodeId = gaiaImport32 (in, 1, graph->EndianArch); /* the Node ID: 32bit */ in += 4; } } if (graph->AStar) { /* fetching node's X,Y coords */ if ((size - (in - blob)) < 8) goto error; x = gaiaImport64 (in, 1, graph->EndianArch); /* X coord */ in += 8; if ((size - (in - blob)) < 8) goto error; y = gaiaImport64 (in, 1, graph->EndianArch); /* Y coord */ in += 8; } else { x = DBL_MAX; y = DBL_MAX; } if ((size - (in - blob)) < 2) goto error; arcs = gaiaImport16 (in, 1, graph->EndianArch); /* # Arcs */ in += 2; if (arcs < 0) goto error; /* initializing the Node */ pN = graph->Nodes + index; pN->InternalIndex = index; if (graph->NodeCode) { /* Nodes are identified by a TEXT Code */ pN->Id = -1; len = strlen (code); pN->Code = malloc (len + 1); strcpy (pN->Code, code); } else { /* Nodes are identified by an INTEGER Id */ pN->Id = nodeId; pN->Code = NULL; } pN->CoordX = x; pN->CoordY = y; pN->NumArcs = arcs; if (arcs) { /* parsing the Arcs */ pN->Arcs = malloc (sizeof (NetworkArc) * arcs); for (ia = 0; ia < arcs; ia++) { /* parsing each Arc */ if (graph->Net64) { if ((size - (in - blob)) < 22) goto error; } else { if ((size - (in - blob)) < 18) goto error; } if (*in++ != GAIA_NET_ARC) /* signature */ goto error; if (graph->Net64) { arcId = gaiaImportI64 (in, 1, graph->EndianArch); /* # Arc ROWID: 64bit */ in += 8; } else { arcId = gaiaImport32 (in, 1, graph->EndianArch); /* # Arc ROWID: 32bit */ in += 4; } nodeToIdx = gaiaImport32 (in, 1, graph->EndianArch); /* # NodeTo internal index */ in += 4; cost = gaiaImport64 (in, 1, graph->EndianArch); /* # Cost */ in += 8; if (*in++ != GAIA_NET_END) /* signature */ goto error; pA = pN->Arcs + ia; /* initializing the Arc */ if (nodeToIdx < 0 || nodeToIdx >= graph->NumNodes) goto error; pA->NodeFrom = pN; pA->NodeTo = graph->Nodes + nodeToIdx; pA->ArcRowid = arcId; pA->Cost = cost; } } else pN->Arcs = NULL; if ((size - (in - blob)) < 1) goto error; if (*in++ != GAIA_NET_END) /* signature */ goto error; } return 1; error: return 0; } static NetworkPtr load_network (sqlite3 * handle, const char *table) { /* loads the NETWORK struct */ NetworkPtr graph = NULL; sqlite3_stmt *stmt; char *sql; int ret; int header = 1; const unsigned char *blob; int size; char *xname; xname = gaiaDoubleQuotedSql (table); sql = sqlite3_mprintf ("SELECT NetworkData FROM \"%s\" ORDER BY Id", xname); free (xname); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto abort; while (1) { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 0) == SQLITE_BLOB) { blob = (const unsigned char *) sqlite3_column_blob (stmt, 0); size = sqlite3_column_bytes (stmt, 0); if (header) { /* parsing the HEADER block */ graph = network_init (blob, size); header = 0; } else { /* parsing ordinary Blocks */ if (!graph) { sqlite3_finalize (stmt); goto abort; } if (!network_block (graph, blob, size)) { sqlite3_finalize (stmt); goto abort; } } } else { sqlite3_finalize (stmt); goto abort; } } else { sqlite3_finalize (stmt); goto abort; } } sqlite3_finalize (stmt); return graph; abort: network_free (graph); return NULL; } static int vnet_create (sqlite3 * db, void *pAux, int argc, const char *const *argv, sqlite3_vtab ** ppVTab, char **pzErr) { /* creates the virtual table connected to some shapefile */ VirtualNetworkPtr p_vt; int err; int ret; int i; int n_rows; int n_columns; char *vtable = NULL; char *table = NULL; const char *col_name = NULL; char **results; char *err_msg = NULL; char *sql; int ok_id; int ok_data; char *xname; NetworkPtr graph = NULL; if (pAux) pAux = pAux; /* unused arg warning suppression */ /* checking for table_name and geo_column_name */ if (argc == 4) { vtable = gaiaDequotedSql (argv[2]); table = gaiaDequotedSql (argv[3]); } else { *pzErr = sqlite3_mprintf ("[VirtualNetwork module] CREATE VIRTUAL: illegal arg list {NETWORK-DATAtable}\n"); goto error; } /* retrieving the base table columns */ err = 0; ok_id = 0; ok_data = 0; xname = gaiaDoubleQuotedSql (table); sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); free (xname); ret = sqlite3_get_table (db, sql, &results, &n_rows, &n_columns, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { err = 1; goto illegal; } if (n_rows > 1) { for (i = 1; i <= n_rows; i++) { col_name = results[(i * n_columns) + 1]; if (strcasecmp (col_name, "id") == 0) ok_id = 1; if (strcasecmp (col_name, "networkdata") == 0) ok_data = 1; } sqlite3_free_table (results); if (!ok_id) err = 1; if (!ok_data) err = 1; } else err = 1; illegal: if (err) { /* something is going the wrong way */ *pzErr = sqlite3_mprintf ("[VirtualNetwork module] cannot build a valid NETWORK\n"); return SQLITE_ERROR; } p_vt = (VirtualNetworkPtr) sqlite3_malloc (sizeof (VirtualNetwork)); if (!p_vt) return SQLITE_NOMEM; graph = load_network (db, table); if (!graph) { /* something is going the wrong way */ *pzErr = sqlite3_mprintf ("[VirtualNetwork module] cannot build a valid NETWORK\n"); goto error; } p_vt->db = db; p_vt->graph = graph; p_vt->currentAlgorithm = VNET_DIJKSTRA_ALGORITHM; p_vt->routing = NULL; p_vt->pModule = &my_net_module; p_vt->nRef = 0; p_vt->zErrMsg = NULL; /* preparing the COLUMNs for this VIRTUAL TABLE */ xname = gaiaDoubleQuotedSql (vtable); if (p_vt->graph->NodeCode) { if (p_vt->graph->NameColumn) { sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (Algorithm TEXT, " "ArcRowid INTEGER, NodeFrom TEXT, NodeTo TEXT," " Cost DOUBLE, Geometry BLOB, Name TEXT)", xname); } else { sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (Algorithm TEXT, " "ArcRowid INTEGER, NodeFrom TEXT, NodeTo TEXT," " Cost DOUBLE, Geometry BLOB)", xname); } } else { if (p_vt->graph->NameColumn) { sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (Algorithm TEXT, " "ArcRowid INTEGER, NodeFrom INTEGER, NodeTo INTEGER," " Cost DOUBLE, Geometry BLOB, Name TEXT)", xname); } else { sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (Algorithm TEXT, " "ArcRowid INTEGER, NodeFrom INTEGER, NodeTo INTEGER," " Cost DOUBLE, Geometry BLOB)", xname); } } free (xname); if (sqlite3_declare_vtab (db, sql) != SQLITE_OK) { *pzErr = sqlite3_mprintf ("[VirtualNetwork module] CREATE VIRTUAL: invalid SQL statement \"%s\"", sql); sqlite3_free (sql); goto error; } sqlite3_free (sql); *ppVTab = (sqlite3_vtab *) p_vt; p_vt->routing = routing_init (p_vt->graph); free (table); free (vtable); return SQLITE_OK; error: if (table) free (table); if (vtable) free (vtable); return SQLITE_ERROR; } static int vnet_connect (sqlite3 * db, void *pAux, int argc, const char *const *argv, sqlite3_vtab ** ppVTab, char **pzErr) { /* connects the virtual table to some shapefile - simply aliases vshp_create() */ return vnet_create (db, pAux, argc, argv, ppVTab, pzErr); } static int vnet_best_index (sqlite3_vtab * pVTab, sqlite3_index_info * pIdxInfo) { /* best index selection */ int i; int errors = 0; int err = 1; int from = 0; int to = 0; int i_from = -1; int i_to = -1; if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ for (i = 0; i < pIdxInfo->nConstraint; i++) { /* verifying the constraints */ struct sqlite3_index_constraint *p = &(pIdxInfo->aConstraint[i]); if (p->usable) { if (p->iColumn == 2 && p->op == SQLITE_INDEX_CONSTRAINT_EQ) { from++; i_from = i; } else if (p->iColumn == 3 && p->op == SQLITE_INDEX_CONSTRAINT_EQ) { to++; i_to = i; } else errors++; } } if (from == 1 && to == 1 && errors == 0) { /* this one is a valid Shortest Path query */ if (i_from < i_to) pIdxInfo->idxNum = 1; /* first arg is FROM */ else pIdxInfo->idxNum = 2; /* first arg is TO */ pIdxInfo->estimatedCost = 1.0; for (i = 0; i < pIdxInfo->nConstraint; i++) { if (pIdxInfo->aConstraint[i].usable) { pIdxInfo->aConstraintUsage[i].argvIndex = i + 1; pIdxInfo->aConstraintUsage[i].omit = 1; } } err = 0; } if (err) { /* illegal query */ pIdxInfo->idxNum = 0; } return SQLITE_OK; } static int vnet_disconnect (sqlite3_vtab * pVTab) { /* disconnects the virtual table */ VirtualNetworkPtr p_vt = (VirtualNetworkPtr) pVTab; if (p_vt->routing) routing_free (p_vt->routing); if (p_vt->graph) network_free (p_vt->graph); sqlite3_free (p_vt); return SQLITE_OK; } static int vnet_destroy (sqlite3_vtab * pVTab) { /* destroys the virtual table - simply aliases vshp_disconnect() */ return vnet_disconnect (pVTab); } static void vnet_read_row (VirtualNetworkCursorPtr cursor) { /* trying to read a "row" from Shortest Path solution */ if (cursor->solution->CurrentRow == NULL) cursor->eof = 1; else cursor->eof = 0; return; } static int vnet_open (sqlite3_vtab * pVTab, sqlite3_vtab_cursor ** ppCursor) { /* opening a new cursor */ VirtualNetworkCursorPtr cursor = (VirtualNetworkCursorPtr) sqlite3_malloc (sizeof (VirtualNetworkCursor)); if (cursor == NULL) return SQLITE_ERROR; cursor->pVtab = (VirtualNetworkPtr) pVTab; cursor->solution = alloc_solution (); cursor->eof = 0; *ppCursor = (sqlite3_vtab_cursor *) cursor; return SQLITE_OK; } static int vnet_close (sqlite3_vtab_cursor * pCursor) { /* closing the cursor */ VirtualNetworkCursorPtr cursor = (VirtualNetworkCursorPtr) pCursor; delete_solution (cursor->solution); sqlite3_free (pCursor); return SQLITE_OK; } static int vnet_filter (sqlite3_vtab_cursor * pCursor, int idxNum, const char *idxStr, int argc, sqlite3_value ** argv) { /* setting up a cursor filter */ int node_code = 0; VirtualNetworkCursorPtr cursor = (VirtualNetworkCursorPtr) pCursor; VirtualNetworkPtr net = (VirtualNetworkPtr) cursor->pVtab; if (idxStr) idxStr = idxStr; /* unused arg warning suppression */ node_code = net->graph->NodeCode; reset_solution (cursor->solution); cursor->eof = 1; if (idxNum == 1 && argc == 2) { /* retrieving the Shortest Path From/To params */ if (node_code) { /* Nodes are identified by TEXT Codes */ if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) cursor->solution->From = find_node_by_code (net->graph, (char *) sqlite3_value_text (argv[0])); if (sqlite3_value_type (argv[1]) == SQLITE_TEXT) cursor->solution->To = find_node_by_code (net->graph, (char *) sqlite3_value_text (argv[1])); } else { /* Nodes are identified by INT Ids */ if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) cursor->solution->From = find_node_by_id (net->graph, sqlite3_value_int (argv[0])); if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) cursor->solution->To = find_node_by_id (net->graph, sqlite3_value_int (argv[1])); } } if (idxNum == 2 && argc == 2) { /* retrieving the Shortest Path To/From params */ if (node_code) { /* Nodes are identified by TEXT Codes */ if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) cursor->solution->To = find_node_by_code (net->graph, (char *) sqlite3_value_text (argv[0])); if (sqlite3_value_type (argv[1]) == SQLITE_TEXT) cursor->solution->From = find_node_by_code (net->graph, (char *) sqlite3_value_text (argv[1])); } else { /* Nodes are identified by INT Ids */ if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) cursor->solution->To = find_node_by_id (net->graph, sqlite3_value_int (argv[0])); if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) cursor->solution->From = find_node_by_id (net->graph, sqlite3_value_int (argv[1])); } } if (cursor->solution->From && cursor->solution->To) { cursor->eof = 0; if (net->currentAlgorithm == VNET_A_STAR_ALGORITHM) a_star_solve (net->db, net->graph, net->routing, cursor->solution); else dijkstra_solve (net->db, net->graph, net->routing, cursor->solution); return SQLITE_OK; } cursor->eof = 0; return SQLITE_OK; } static int vnet_next (sqlite3_vtab_cursor * pCursor) { /* fetching a next row from cursor */ VirtualNetworkCursorPtr cursor = (VirtualNetworkCursorPtr) pCursor; if (cursor->solution->CurrentRowId == 0) cursor->solution->CurrentRow = cursor->solution->First; else cursor->solution->CurrentRow = cursor->solution->CurrentRow->Next; if (!(cursor->solution->CurrentRow)) { cursor->eof = 1; return SQLITE_OK; } (cursor->solution->CurrentRowId)++; vnet_read_row (cursor); return SQLITE_OK; } static int vnet_eof (sqlite3_vtab_cursor * pCursor) { /* cursor EOF */ VirtualNetworkCursorPtr cursor = (VirtualNetworkCursorPtr) pCursor; return cursor->eof; } static int vnet_column (sqlite3_vtab_cursor * pCursor, sqlite3_context * pContext, int column) { /* fetching value for the Nth column */ RowSolutionPtr row; int node_code = 0; const char *algorithm; VirtualNetworkCursorPtr cursor = (VirtualNetworkCursorPtr) pCursor; VirtualNetworkPtr net = (VirtualNetworkPtr) cursor->pVtab; node_code = net->graph->NodeCode; if (cursor->solution->CurrentRow == 0) { /* special case: this one is the solution summary */ if (column == 0) { /* the currently used Algorithm */ if (net->currentAlgorithm == VNET_A_STAR_ALGORITHM) algorithm = "A*"; else algorithm = "Dijkstra"; sqlite3_result_text (pContext, algorithm, strlen (algorithm), SQLITE_STATIC); } if (cursor->solution->From == NULL || cursor->solution->To == NULL) { /* empty [uninitialized] solution */ if (column > 0) sqlite3_result_null (pContext); return SQLITE_OK; } if (column == 1) { /* the ArcRowId column */ sqlite3_result_null (pContext); } if (column == 2) { /* the NodeFrom column */ if (node_code) sqlite3_result_text (pContext, cursor->solution->From->Code, strlen (cursor->solution->From->Code), SQLITE_STATIC); else sqlite3_result_int64 (pContext, cursor->solution->From->Id); } if (column == 3) { /* the NodeTo column */ if (node_code) sqlite3_result_text (pContext, cursor->solution->To->Code, strlen (cursor->solution->To->Code), SQLITE_STATIC); else sqlite3_result_int64 (pContext, cursor->solution->To->Id); } if (column == 4) { /* the Cost column */ sqlite3_result_double (pContext, cursor->solution->TotalCost); } if (column == 5) { /* the Geometry column */ if (!(cursor->solution->Geometry)) sqlite3_result_null (pContext); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; gaiaToSpatiaLiteBlobWkb (cursor->solution->Geometry, &p_result, &len); sqlite3_result_blob (pContext, p_result, len, free); } } if (column == 6) { /* the [optional] Name column */ sqlite3_result_null (pContext); } } else { /* ordinary case: this one is an Arc used by the solution */ row = cursor->solution->CurrentRow; if (column == 0) { /* the currently used Algorithm */ if (net->currentAlgorithm == VNET_A_STAR_ALGORITHM) algorithm = "A*"; else algorithm = "Dijkstra"; sqlite3_result_text (pContext, algorithm, strlen (algorithm), SQLITE_STATIC); } if (column == 1) { /* the ArcRowId column */ sqlite3_result_int64 (pContext, row->Arc->ArcRowid); } if (column == 2) { /* the NodeFrom column */ if (node_code) sqlite3_result_text (pContext, row->Arc->NodeFrom->Code, strlen (row->Arc->NodeFrom->Code), SQLITE_STATIC); else sqlite3_result_int64 (pContext, row->Arc->NodeFrom->Id); } if (column == 3) { /* the NodeTo column */ if (node_code) sqlite3_result_text (pContext, row->Arc->NodeTo->Code, strlen (row->Arc->NodeTo->Code), SQLITE_STATIC); else sqlite3_result_int64 (pContext, row->Arc->NodeTo->Id); } if (column == 4) { /* the Cost column */ sqlite3_result_double (pContext, row->Arc->Cost); } if (column == 5) { /* the Geometry column */ sqlite3_result_null (pContext); } if (column == 6) { /* the [optional] Name column */ if (row->Name) sqlite3_result_text (pContext, row->Name, strlen (row->Name), SQLITE_STATIC); else sqlite3_result_null (pContext); } } return SQLITE_OK; } static int vnet_rowid (sqlite3_vtab_cursor * pCursor, sqlite_int64 * pRowid) { /* fetching the ROWID */ VirtualNetworkCursorPtr cursor = (VirtualNetworkCursorPtr) pCursor; *pRowid = cursor->solution->CurrentRowId; return SQLITE_OK; } static int vnet_update (sqlite3_vtab * pVTab, int argc, sqlite3_value ** argv, sqlite_int64 * pRowid) { /* generic update [INSERT / UPDATE / DELETE */ VirtualNetworkPtr p_vtab = (VirtualNetworkPtr) pVTab; if (pRowid) pRowid = pRowid; /* unused arg warning suppression */ if (argc == 1) { /* performing a DELETE is forbidden */ return SQLITE_READONLY; } else { if (sqlite3_value_type (argv[0]) == SQLITE_NULL) { /* performing an INSERT is forbidden */ return SQLITE_READONLY; } else { /* performing an UPDATE */ if (argc == 9) { p_vtab->currentAlgorithm = VNET_DIJKSTRA_ALGORITHM; if (sqlite3_value_type (argv[2]) == SQLITE_TEXT) { const unsigned char *algorithm = sqlite3_value_text (argv[2]); if (strcmp ((char *) algorithm, "A*") == 0) p_vtab->currentAlgorithm = VNET_A_STAR_ALGORITHM; if (strcmp ((char *) algorithm, "a*") == 0) p_vtab->currentAlgorithm = VNET_A_STAR_ALGORITHM; } if (p_vtab->graph->AStar == 0) p_vtab->currentAlgorithm = VNET_DIJKSTRA_ALGORITHM; } return SQLITE_OK; } } return SQLITE_READONLY; } static int vnet_begin (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vnet_sync (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vnet_commit (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vnet_rollback (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } int sqlite3VirtualNetworkInit (sqlite3 * db) { int rc = SQLITE_OK; my_net_module.iVersion = 1; my_net_module.xCreate = &vnet_create; my_net_module.xConnect = &vnet_connect; my_net_module.xBestIndex = &vnet_best_index; my_net_module.xDisconnect = &vnet_disconnect; my_net_module.xDestroy = &vnet_destroy; my_net_module.xOpen = &vnet_open; my_net_module.xClose = &vnet_close; my_net_module.xFilter = &vnet_filter; my_net_module.xNext = &vnet_next; my_net_module.xEof = &vnet_eof; my_net_module.xColumn = &vnet_column; my_net_module.xRowid = &vnet_rowid; my_net_module.xUpdate = &vnet_update; my_net_module.xBegin = &vnet_begin; my_net_module.xSync = &vnet_sync; my_net_module.xCommit = &vnet_commit; my_net_module.xRollback = &vnet_rollback; my_net_module.xFindFunction = NULL; sqlite3_create_module_v2 (db, "VirtualNetwork", &my_net_module, NULL, 0); return rc; } int virtualnetwork_extension_init (sqlite3 * db) { return sqlite3VirtualNetworkInit (db); } libspatialite-4.1.1/src/spatialite/mbrcache.c0000664000175000017500000011223012163502133016117 00000000000000/* mbrcache.c -- SQLite3 extension [MBR CACHE VIRTUAL TABLE] version 4.1, 2013 May 8 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include #include #include #include #ifdef _WIN32 #define strcasecmp _stricmp #endif /* not WIN32 */ #if defined(_WIN32) && !defined(__MINGW32__) #define LONG64_MAX _I64_MAX #define LONG64_MIN _I64_MIN #else #define LONG64_MAX 9223372036854775807LL #define LONG64_MIN (-LONG64_MAX + 1) #endif static struct sqlite3_module my_mbr_module; /* memory structs used to store the MBR's cache the basic idea is to implement a hierarchy in order to avoid excessive memory fragmentation and achieve better performance - the cache is a linked-list of cache page elements - each cache page contains an array of 32 cache blocks - each cache block contains an array of 32 cache cells so a single cache page con store up to 1024 cache cells */ struct mbr_cache_cell { /* a cached entity */ /* the entity's ROWID */ sqlite3_int64 rowid; /* the MBR */ double minx; double miny; double maxx; double maxy; }; struct mbr_cache_block { /* a block of 32 cached entities */ /* allocation bitmap: the meaning of each bit is: 1 - corresponding cache cell is in use 0 - corresponding cache cell is unused */ unsigned int bitmap; /* the MBR corresponding to this cache block i.e. the combined MBR for any contained cell */ double minx; double miny; double maxx; double maxy; /* the cache cells array */ struct mbr_cache_cell cells[32]; }; struct mbr_cache_page { /* a page containing 32 cached blocks */ /* allocation bitmap: the meaning of each bit is: 1 - corresponding cache block is in full 0 - corresponding cache block is not full */ unsigned int bitmap; /* the MBR corresponding to this cache page i.e. the combined MBR for any contained block */ double minx; double miny; double maxx; double maxy; /* the cache blocks array */ struct mbr_cache_block blocks[32]; /* the min-max rowid for this page */ sqlite3_int64 min_rowid; sqlite3_int64 max_rowid; /* pointer to next element into the cached pages linked list */ struct mbr_cache_page *next; }; struct mbr_cache { /* the MBR's cache implemented as a cache pages linked list */ /* pointers used to handle the cache pages linked list */ struct mbr_cache_page *first; struct mbr_cache_page *last; /* pointer used to identify the current cache page when inserting a new cache cell */ struct mbr_cache_page *current; }; typedef struct MbrCacheStruct { /* extends the sqlite3_vtab struct */ const sqlite3_module *pModule; /* ptr to sqlite module: USED INTERNALLY BY SQLITE */ int nRef; /* # references: USED INTERNALLY BY SQLITE */ char *zErrMsg; /* error message: USE INTERNALLY BY SQLITE */ sqlite3 *db; /* the sqlite db holding the virtual table */ struct mbr_cache *cache; /* the MBR's cache */ char *table_name; /* the main table to be cached */ char *column_name; /* the column to be cached */ int error; /* some previous error disables any operation */ } MbrCache; typedef MbrCache *MbrCachePtr; typedef struct MbrCacheCursortStruct { /* extends the sqlite3_vtab_cursor struct */ MbrCachePtr pVtab; /* Virtual table of this cursor */ int eof; /* the EOF marker */ /* positioning parameters while performing a cache search */ struct mbr_cache_page *current_page; int current_block_index; int current_cell_index; struct mbr_cache_cell *current_cell; /* the strategy to use: 0 = sequential scan 1 = find rowid 2 = spatial search */ int strategy; /* the MBR to search for */ double minx; double miny; double maxx; double maxy; /* the MBR search mode: 0 = WITHIN 1 = CONTAIN */ int mbr_mode; } MbrCacheCursor; typedef MbrCacheCursor *MbrCacheCursorPtr; static unsigned int cache_bitmask (int x) { /* return the bitmask corresponding to index X */ switch (x) { case 0: return 0x80000000; case 1: return 0x40000000; case 2: return 0x20000000; case 3: return 0x10000000; case 4: return 0x08000000; case 5: return 0x04000000; case 6: return 0x02000000; case 7: return 0x01000000; case 8: return 0x00800000; case 9: return 0x00400000; case 10: return 0x00200000; case 11: return 0x00100000; case 12: return 0x00080000; case 13: return 0x00040000; case 14: return 0x00020000; case 15: return 0x00010000; case 16: return 0x00008000; case 17: return 0x00004000; case 18: return 0x00002000; case 19: return 0x00001000; case 20: return 0x00000800; case 21: return 0x00000400; case 22: return 0x00000200; case 23: return 0x00000100; case 24: return 0x00000080; case 25: return 0x00000040; case 26: return 0x00000020; case 27: return 0x00000010; case 28: return 0x00000008; case 29: return 0x00000004; case 30: return 0x00000002; case 31: return 0x00000001; }; return 0x00000000; } static struct mbr_cache * cache_alloc (void) { /* allocates and initializes an empty cache struct */ struct mbr_cache *p = malloc (sizeof (struct mbr_cache)); p->first = NULL; p->last = NULL; p->current = NULL; return p; } static struct mbr_cache_page * cache_page_alloc (void) { /* allocates and initializes a cache page */ int i; struct mbr_cache_block *pb; struct mbr_cache_page *p = malloc (sizeof (struct mbr_cache_page)); p->bitmap = 0x00000000; p->next = NULL; p->minx = DBL_MAX; p->miny = DBL_MAX; p->maxx = -DBL_MAX; p->maxy = -DBL_MAX; for (i = 0; i < 32; i++) { pb = p->blocks + i; pb->bitmap = 0x00000000; pb->minx = DBL_MAX; pb->miny = DBL_MAX; pb->maxx = -DBL_MAX; pb->maxy = DBL_MAX; } p->max_rowid = LONG64_MIN; p->min_rowid = LONG64_MAX; return p; } static void cache_destroy (struct mbr_cache *p) { /* memory cleanup; destroying a cache and any page into the cache */ struct mbr_cache_page *pp; struct mbr_cache_page *ppn; if (!p) return; pp = p->first; while (pp) { ppn = pp->next; free (pp); pp = ppn; } free (p); } static int cache_get_free_block (struct mbr_cache_page *pp) { /* scans a cache page, returning the index of the first available block containing a free cell */ int ib; for (ib = 0; ib < 32; ib++) { if ((pp->bitmap & cache_bitmask (ib)) == 0x00000000) return ib; } return -1; } static void cache_fix_page_bitmap (struct mbr_cache_page *pp) { /* updating the cache page bitmap */ int ib; for (ib = 0; ib < 32; ib++) { if (pp->blocks[ib].bitmap == 0xffffffff) { /* all the cells into this block are used; marking the page bitmap */ pp->bitmap |= cache_bitmask (ib); } } } static int cache_get_free_cell (struct mbr_cache_block *pb) { /* scans a cache block, returning the index of the first free cell */ int ic; for (ic = 0; ic < 32; ic++) { if ((pb->bitmap & cache_bitmask (ic)) == 0x00000000) return ic; } return -1; } static struct mbr_cache_page * cache_get_free_page (struct mbr_cache *p) { /* return a pointer to the first cache page containing a free cell */ struct mbr_cache_page *pp; if (!(p->first)) { /* the cache is empty; so we surely need to allocate the first page */ pp = cache_page_alloc (); p->first = pp; p->last = pp; p->current = pp; return pp; } if (p->current) { /* checking if there is at least a free block into the current page */ if (p->current->bitmap != 0xffffffff) return p->current; } pp = p->first; while (pp) { /* scanning the page list in order to discover if there is an existing page not yet completely filled */ if (pp->bitmap != 0xffffffff) { p->current = pp; return pp; } pp = pp->next; } /* we have to allocate a new page */ pp = cache_page_alloc (); p->last->next = pp; p->last = pp; p->current = pp; return pp; } static void cache_insert_cell (struct mbr_cache *p, sqlite3_int64 rowid, double minx, double miny, double maxx, double maxy) { /* inserting a new cell */ struct mbr_cache_page *pp = cache_get_free_page (p); int ib = cache_get_free_block (pp); struct mbr_cache_block *pb = pp->blocks + ib; int ic = cache_get_free_cell (pb); struct mbr_cache_cell *pc = pb->cells + ic; pc->rowid = rowid; pc->minx = minx; pc->miny = miny; pc->maxx = maxx; pc->maxy = maxy; /* marking the cache cell as used into the block bitmap */ pb->bitmap |= cache_bitmask (ic); /* updating the cache block MBR */ if (pb->minx > minx) pb->minx = minx; if (pb->maxx < maxx) pb->maxx = maxx; if (pb->miny > miny) pb->miny = miny; if (pb->maxy < maxy) pb->maxy = maxy; /* updating the cache page MBR */ if (pp->minx > minx) pp->minx = minx; if (pp->maxx < maxx) pp->maxx = maxx; if (pp->miny > miny) pp->miny = miny; if (pp->maxy < maxy) pp->maxy = maxy; /* fixing the cache page bitmap */ cache_fix_page_bitmap (pp); /* updating min-max rowid into the cache page */ if (pp->min_rowid > rowid) pp->min_rowid = rowid; if (pp->max_rowid < rowid) pp->max_rowid = rowid; } static struct mbr_cache * cache_load (sqlite3 * handle, const char *table, const char *column) { /* initial loading the MBR cache retrieving any existing entity from the main table */ sqlite3_stmt *stmt; int ret; char *sql_statement; sqlite3_int64 rowid; double minx; double maxx; double miny; double maxy; int v1; int v2; int v3; int v4; int v5; struct mbr_cache *p_cache; char *xcolumn; char *xtable; xcolumn = gaiaDoubleQuotedSql (column); xtable = gaiaDoubleQuotedSql (table); sql_statement = sqlite3_mprintf ("SELECT ROWID, MbrMinX(\"%s\"), MbrMinY(\"%s\"), " "MbrMaxX(\"%s\"), MbrMaxY(\"%s\") FROM \"%s\"", xcolumn, xcolumn, xcolumn, xcolumn, xtable); free (xcolumn); free (xtable); ret = sqlite3_prepare_v2 (handle, sql_statement, strlen (sql_statement), &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { /* some error occurred */ spatialite_e ("cache SQL error: %s\n", sqlite3_errmsg (handle)); return NULL; } p_cache = cache_alloc (); while (1) { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) { v1 = 0; v2 = 0; v3 = 0; v4 = 0; v5 = 0; if (sqlite3_column_type (stmt, 0) == SQLITE_INTEGER) v1 = 1; if (sqlite3_column_type (stmt, 1) == SQLITE_FLOAT) v2 = 1; if (sqlite3_column_type (stmt, 1) == SQLITE_FLOAT) v3 = 1; if (sqlite3_column_type (stmt, 1) == SQLITE_FLOAT) v4 = 1; if (sqlite3_column_type (stmt, 1) == SQLITE_FLOAT) v5 = 1; if (v1 && v2 && v3 && v4 && v5) { /* ok, this entity is a valid one; inserting them into the MBR's cache */ rowid = sqlite3_column_int (stmt, 0); minx = sqlite3_column_double (stmt, 1); miny = sqlite3_column_double (stmt, 2); maxx = sqlite3_column_double (stmt, 3); maxy = sqlite3_column_double (stmt, 4); cache_insert_cell (p_cache, rowid, minx, miny, maxx, maxy); } } else { /* some unexpected error occurred */ spatialite_e ("sqlite3_step() error: %s\n", sqlite3_errmsg (handle)); sqlite3_finalize (stmt); cache_destroy (p_cache); return NULL; } } /* we have now to finalize the query [memory cleanup] */ sqlite3_finalize (stmt); return p_cache; } static int cache_find_next_cell (struct mbr_cache_page **page, int *i_block, int *i_cell, struct mbr_cache_cell **cell) { /* finding next cached cell */ struct mbr_cache_page *pp = *page; struct mbr_cache_block *pb; struct mbr_cache_cell *pc; int ib; int ic; int sib = *i_block; int sic = *i_cell; while (pp) { for (ib = sib; ib < 32; ib++) { pb = pp->blocks + ib; for (ic = sic; ic < 32; ic++) { if ((pb->bitmap & cache_bitmask (ic)) == 0x00000000) continue; pc = pb->cells + ic; if (pc == *cell) { /* this one is the current cell */ continue; } /* next cell found */ *page = pp; *i_block = ib; *i_cell = ic; *cell = pc; return 1; } sic = 0; } sib = 0; pp = pp->next; } return 0; } static int cache_find_next_mbr (struct mbr_cache_page **page, int *i_block, int *i_cell, struct mbr_cache_cell **cell, double minx, double miny, double maxx, double maxy, int mode) { /* finding next cached cell */ struct mbr_cache_page *pp = *page; struct mbr_cache_block *pb; struct mbr_cache_cell *pc; int ib; int ic; int sib = *i_block; int sic = *i_cell; int ok_mbr; while (pp) { ok_mbr = 0; if (pp->maxx >= minx && pp->minx <= maxx && pp->maxy >= miny && pp->miny <= maxy) ok_mbr = 1; if (ok_mbr) { for (ib = sib; ib < 32; ib++) { pb = pp->blocks + ib; ok_mbr = 0; if (pb->maxx >= minx && pb->minx <= maxx && pb->maxy >= miny && pb->miny <= maxy) ok_mbr = 1; if (ok_mbr) { for (ic = sic; ic < 32; ic++) { if ((pb->bitmap & cache_bitmask (ic)) == 0x00000000) continue; pc = pb->cells + ic; ok_mbr = 0; if (mode == GAIA_FILTER_MBR_INTERSECTS) { /* MBR INTERSECTS */ if (pc->maxx >= minx && pc->minx <= maxx && pc->maxy >= miny && pc->miny <= maxy) ok_mbr = 1; } else if (mode == GAIA_FILTER_MBR_CONTAINS) { /* MBR CONTAINS */ if (minx >= pc->minx && maxx <= pc->maxx && miny >= pc->miny && maxy <= pc->maxy) ok_mbr = 1; } else { /* MBR WITHIN */ if (pc->minx >= minx && pc->maxx <= maxx && pc->miny >= miny && pc->maxy <= maxy) ok_mbr = 1; } if (ok_mbr) { if (pc == *cell) { /* this one is the current cell */ continue; } /* next cell found */ *page = pp; *i_block = ib; *i_cell = ic; *cell = pc; return 1; } } } sic = 0; } } sib = 0; pp = pp->next; } return 0; } static struct mbr_cache_cell * cache_find_by_rowid (struct mbr_cache_page *pp, sqlite3_int64 rowid) { /* trying to find a row by rowid from the Mbr cache */ struct mbr_cache_block *pb; struct mbr_cache_cell *pc; int ib; int ic; while (pp) { if (rowid >= pp->min_rowid && rowid <= pp->max_rowid) { for (ib = 0; ib < 32; ib++) { pb = pp->blocks + ib; for (ic = 0; ic < 32; ic++) { if ((pb->bitmap & cache_bitmask (ic)) == 0x00000000) continue; pc = pb->cells + ic; if (pc->rowid == rowid) return pc; } } } pp = pp->next; } return 0; } static void cache_update_page (struct mbr_cache_page *pp, int i_block) { /* updating the cache block and cache page MBR after a DELETE or UPDATE occurred */ struct mbr_cache_block *pb; struct mbr_cache_cell *pc; int ib; int ic; /* updating the cache block MBR */ pb = pp->blocks + i_block; pb->minx = DBL_MAX; pb->miny = DBL_MAX; pb->maxx = -DBL_MAX; pb->maxy = -DBL_MAX; for (ic = 0; ic < 32; ic++) { if ((pb->bitmap & cache_bitmask (ic)) == 0x00000000) continue; pc = pb->cells + ic; if (pb->minx > pc->minx) pb->minx = pc->minx; if (pb->miny > pc->miny) pb->miny = pc->miny; if (pb->maxx < pc->maxx) pb->maxx = pc->maxx; if (pb->maxy < pc->maxy) pb->maxy = pc->maxy; } /* updating the cache page MBR */ pp->minx = DBL_MAX; pp->miny = DBL_MAX; pp->maxx = -DBL_MAX; pp->maxy = -DBL_MAX; pp->min_rowid = LONG64_MAX; pp->max_rowid = LONG64_MIN; for (ib = 0; ib < 32; ib++) { pb = pp->blocks + ib; for (ic = 0; ic < 32; ic++) { if ((pb->bitmap & cache_bitmask (ic)) == 0x00000000) continue; pc = pb->cells + ic; if (pp->minx > pc->minx) pp->minx = pc->minx; if (pp->miny > pc->miny) pp->miny = pc->miny; if (pp->maxx < pc->maxx) pp->maxx = pc->maxx; if (pp->maxy < pc->maxy) pp->maxy = pc->maxy; if (pp->min_rowid > pc->rowid) pp->min_rowid = pc->rowid; if (pp->max_rowid < pc->rowid) pp->max_rowid = pc->rowid; } } } static int cache_delete_cell (struct mbr_cache_page *pp, sqlite3_int64 rowid) { /* trying to delete a row identified by rowid from the Mbr cache */ struct mbr_cache_block *pb; struct mbr_cache_cell *pc; int ib; int ic; while (pp) { if (rowid >= pp->min_rowid && rowid <= pp->max_rowid) { for (ib = 0; ib < 32; ib++) { pb = pp->blocks + ib; for (ic = 0; ic < 32; ic++) { if ((pb->bitmap & cache_bitmask (ic)) == 0x00000000) continue; pc = pb->cells + ic; if (pc->rowid == rowid) { /* marking the cell as free */ pb->bitmap &= ~(cache_bitmask (ic)); /* marking the block as not full */ pp->bitmap &= ~(cache_bitmask (ib)); /* updating the cache block and cache page MBR */ cache_update_page (pp, ib); return 1; } } } } pp = pp->next; } return 0; } static int cache_update_cell (struct mbr_cache_page *pp, sqlite3_int64 rowid, double minx, double miny, double maxx, double maxy) { /* trying to update a row identified by rowid from the Mbr cache */ struct mbr_cache_block *pb; struct mbr_cache_cell *pc; int ib; int ic; while (pp) { if (rowid >= pp->min_rowid && rowid <= pp->max_rowid) { for (ib = 0; ib < 32; ib++) { pb = pp->blocks + ib; for (ic = 0; ic < 32; ic++) { if ((pb->bitmap & cache_bitmask (ic)) == 0x00000000) continue; pc = pb->cells + ic; if (pc->rowid == rowid) { /* updating the cell MBR */ pc->minx = minx; pc->miny = miny; pc->maxx = maxx; pc->maxy = maxy; /* updating the cache block and cache page MBR */ cache_update_page (pp, ib); return 1; } } } } pp = pp->next; } return 0; } static int mbrc_create (sqlite3 * db, void *pAux, int argc, const char *const *argv, sqlite3_vtab ** ppVTab, char **pzErr) { /* creates the virtual table and caches related Geometry column */ int err; int ret; int i; int len; int n_rows; int n_columns; const char *vtable; const char *table; const char *column; const char *col_name; char *xvtable = NULL; char *xtable = NULL; char *xcolumn = NULL; char **results; char *err_msg = NULL; char *sql_statement; int ok_col; MbrCachePtr p_vt; char *xname; if (pAux) pAux = pAux; /* unused arg warning suppression */ p_vt = (MbrCachePtr) sqlite3_malloc (sizeof (MbrCache)); if (!p_vt) return SQLITE_NOMEM; *ppVTab = (sqlite3_vtab *) p_vt; p_vt->pModule = &my_mbr_module; p_vt->nRef = 0; p_vt->zErrMsg = NULL; p_vt->db = db; p_vt->table_name = NULL; p_vt->column_name = NULL; p_vt->cache = NULL; /* checking for table_name and geo_column_name */ if (argc == 5) { vtable = argv[2]; len = strlen (vtable); if ((*(vtable + 0) == '\'' || *(vtable + 0) == '"') && (*(vtable + len - 1) == '\'' || *(vtable + len - 1) == '"')) { /* the VirtualTableName is enclosed between quotes - we need to dequote it */ xvtable = gaiaDequotedSql (vtable); vtable = xvtable; } table = argv[3]; len = strlen (table); if ((*(table + 0) == '\'' || *(table + 0) == '"') && (*(table + len - 1) == '\'' || *(table + len - 1) == '"')) { /* the MainTableName is enclosed between quotes - we need to dequote it */ xtable = gaiaDequotedSql (table); table = xtable; } column = argv[4]; len = strlen (column); if ((*(column + 0) == '\'' || *(column + 0) == '"') && (*(column + len - 1) == '\'' || *(column + len - 1) == '"')) { /* the GeometryColumnName is enclosed between quotes - we need to dequote it */ xcolumn = gaiaDequotedSql (column); column = xcolumn; } len = strlen (table); p_vt->table_name = sqlite3_malloc (len + 1); strcpy (p_vt->table_name, table); len = strlen (column); p_vt->column_name = sqlite3_malloc (len + 1); strcpy (p_vt->column_name, column); if (xtable) free (xtable); if (xcolumn) free (xcolumn); } else { *pzErr = sqlite3_mprintf ("[MbrCache module] CREATE VIRTUAL: illegal arg list {table_name, geo_column_name}"); return SQLITE_ERROR; } /* retrieving the base table columns */ err = 0; ok_col = 0; xname = gaiaDoubleQuotedSql (p_vt->table_name); sql_statement = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); free (xname); ret = sqlite3_get_table (db, sql_statement, &results, &n_rows, &n_columns, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { sqlite3_free (sql_statement); err = 1; goto illegal; } if (n_rows > 1) { for (i = 1; i <= n_rows; i++) { col_name = results[(i * n_columns) + 1]; if (strcasecmp (col_name, p_vt->column_name) == 0) ok_col = 1; } sqlite3_free_table (results); if (!ok_col) err = 1; } else err = 1; illegal: if (err) { /* something is going the wrong way; creating a stupid default table */ xname = gaiaDoubleQuotedSql (vtable); sql_statement = sqlite3_mprintf ("CREATE TABLE \"%s\" (rowid INTEGER, mbr BLOB)", xname); free (xname); if (sqlite3_declare_vtab (db, sql_statement) != SQLITE_OK) { sqlite3_free (sql_statement); *pzErr = sqlite3_mprintf ("[MbrCache module] cannot build the VirtualTable\n"); return SQLITE_ERROR; } sqlite3_free (sql_statement); p_vt->error = 1; *ppVTab = (sqlite3_vtab *) p_vt; return SQLITE_OK; } p_vt->error = 0; xname = gaiaDoubleQuotedSql (vtable); sql_statement = sqlite3_mprintf ("CREATE TABLE \"%s\" (rowid INTEGER, mbr BLOB)", xname); free (xname); if (sqlite3_declare_vtab (db, sql_statement) != SQLITE_OK) { *pzErr = sqlite3_mprintf ("[MbrCache module] CREATE VIRTUAL: invalid SQL statement \"%s\"", sql_statement); sqlite3_free (sql_statement); return SQLITE_ERROR; } sqlite3_free (sql_statement); *ppVTab = (sqlite3_vtab *) p_vt; return SQLITE_OK; } static int mbrc_connect (sqlite3 * db, void *pAux, int argc, const char *const *argv, sqlite3_vtab ** ppVTab, char **pzErr) { /* connects the virtual table - simply aliases mbrc_create() */ return mbrc_create (db, pAux, argc, argv, ppVTab, pzErr); } static int mbrc_best_index (sqlite3_vtab * pVTab, sqlite3_index_info * pIdxInfo) { /* best index selection */ int i; int err = 1; int errors = 0; int mbr = 0; int rowid = 0; if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ for (i = 0; i < pIdxInfo->nConstraint; i++) { /* verifying the constraints */ struct sqlite3_index_constraint *p = &(pIdxInfo->aConstraint[i]); if (p->usable) { if (p->iColumn == 0 && p->op == SQLITE_INDEX_CONSTRAINT_EQ) rowid++; else if (p->iColumn == 1 && p->op == SQLITE_INDEX_CONSTRAINT_EQ) mbr++; else errors++; } } if (mbr == 1 && rowid == 0 && errors == 0) { /* this one is a valid spatially-filtered query */ pIdxInfo->idxNum = 2; for (i = 0; i < pIdxInfo->nConstraint; i++) { pIdxInfo->aConstraintUsage[i].argvIndex = 1; pIdxInfo->aConstraintUsage[i].omit = 1; } err = 0; } if (mbr == 0 && rowid == 1 && errors == 0) { /* this one is a valid rowid-filtered query */ pIdxInfo->idxNum = 1; pIdxInfo->estimatedCost = 1.0; for (i = 0; i < pIdxInfo->nConstraint; i++) { if (pIdxInfo->aConstraint[i].usable) { pIdxInfo->aConstraintUsage[i].argvIndex = 1; pIdxInfo->aConstraintUsage[i].omit = 1; } } err = 0; } if (mbr == 0 && rowid == 0 && errors == 0) { /* this one is a valid unfiltered query */ pIdxInfo->idxNum = 0; err = 0; } if (err) { /* illegal query */ pIdxInfo->idxNum = -1; } return SQLITE_OK; } static int mbrc_disconnect (sqlite3_vtab * pVTab) { /* disconnects the virtual table */ MbrCachePtr p_vt = (MbrCachePtr) pVTab; if (p_vt->cache) cache_destroy (p_vt->cache); if (p_vt->table_name) sqlite3_free (p_vt->table_name); if (p_vt->column_name) sqlite3_free (p_vt->column_name); sqlite3_free (p_vt); return SQLITE_OK; } static int mbrc_destroy (sqlite3_vtab * pVTab) { /* destroys the virtual table - simply aliases mbrc_disconnect() */ return mbrc_disconnect (pVTab); } static void mbrc_read_row_unfiltered (MbrCacheCursorPtr cursor) { /* trying to read the next row from the Mbr cache - unfiltered mode */ struct mbr_cache_page *page = cursor->current_page; struct mbr_cache_cell *cell = cursor->current_cell; int i_block = cursor->current_block_index; int i_cell = cursor->current_cell_index; if (cache_find_next_cell (&page, &i_block, &i_cell, &cell)) { cursor->current_page = page; cursor->current_block_index = i_block; cursor->current_cell_index = i_cell; cursor->current_cell = cell; } else cursor->eof = 1; } static void mbrc_read_row_filtered (MbrCacheCursorPtr cursor) { /* trying to read the next row from the Mbr cache - spatially filter mode */ struct mbr_cache_page *page = cursor->current_page; struct mbr_cache_cell *cell = cursor->current_cell; int i_block = cursor->current_block_index; int i_cell = cursor->current_cell_index; if (cache_find_next_mbr (&page, &i_block, &i_cell, &cell, cursor->minx, cursor->miny, cursor->maxx, cursor->maxy, cursor->mbr_mode)) { cursor->current_page = page; cursor->current_block_index = i_block; cursor->current_cell_index = i_cell; cursor->current_cell = cell; } else cursor->eof = 1; } static void mbrc_read_row_by_rowid (MbrCacheCursorPtr cursor, sqlite3_int64 rowid) { /* trying to find a row by rowid from the Mbr cache */ struct mbr_cache_cell *cell = cache_find_by_rowid (cursor->pVtab->cache->first, rowid); if (cell) cursor->current_cell = cell; else { cursor->current_cell = NULL; cursor->eof = 1; } } static int mbrc_open (sqlite3_vtab * pVTab, sqlite3_vtab_cursor ** ppCursor) { /* opening a new cursor */ MbrCachePtr p_vt = (MbrCachePtr) pVTab; MbrCacheCursorPtr cursor = (MbrCacheCursorPtr) sqlite3_malloc (sizeof (MbrCacheCursor)); if (cursor == NULL) return SQLITE_ERROR; cursor->pVtab = p_vt; if (p_vt->error) { cursor->eof = 1; *ppCursor = (sqlite3_vtab_cursor *) cursor; return SQLITE_OK; } if (!(p_vt->cache)) p_vt->cache = cache_load (p_vt->db, p_vt->table_name, p_vt->column_name); cursor->current_page = cursor->pVtab->cache->first; cursor->current_block_index = 0; cursor->current_cell_index = 0; cursor->current_cell = NULL; cursor->eof = 0; *ppCursor = (sqlite3_vtab_cursor *) cursor; return SQLITE_OK; } static int mbrc_close (sqlite3_vtab_cursor * pCursor) { /* closing the cursor */ sqlite3_free (pCursor); return SQLITE_OK; } static int mbrc_filter (sqlite3_vtab_cursor * pCursor, int idxNum, const char *idxStr, int argc, sqlite3_value ** argv) { /* setting up a cursor filter */ MbrCacheCursorPtr cursor = (MbrCacheCursorPtr) pCursor; if (idxStr || argc) idxStr = idxStr; /* unused arg warning suppression */ if (cursor->pVtab->error) { cursor->eof = 1; return SQLITE_OK; } cursor->current_page = cursor->pVtab->cache->first; cursor->current_block_index = 0; cursor->current_cell_index = 0; cursor->current_cell = NULL; cursor->eof = 0; cursor->strategy = idxNum; if (idxNum == 0) { /* unfiltered mode */ mbrc_read_row_unfiltered (cursor); return SQLITE_OK; } if (idxNum == 1) { /* filtering by ROWID */ sqlite3_int64 rowid = sqlite3_value_int64 (argv[0]); mbrc_read_row_by_rowid (cursor, rowid); return SQLITE_OK; } if (idxNum == 2) { /* filtering by MBR spatial relation */ unsigned char *p_blob; int n_bytes; double minx; double miny; double maxx; double maxy; int mode; if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) cursor->eof = 1; else { p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); if (gaiaParseFilterMbr (p_blob, n_bytes, &minx, &miny, &maxx, &maxy, &mode)) { if (mode == GAIA_FILTER_MBR_WITHIN || mode == GAIA_FILTER_MBR_CONTAINS || mode == GAIA_FILTER_MBR_INTERSECTS) { cursor->minx = minx; cursor->miny = miny; cursor->maxx = maxx; cursor->maxy = maxy; cursor->mbr_mode = mode; mbrc_read_row_filtered (cursor); } else cursor->eof = 1; } } return SQLITE_OK; } /* illegal query mode */ cursor->eof = 1; return SQLITE_OK; } static int mbrc_next (sqlite3_vtab_cursor * pCursor) { /* fetching a next row from cursor */ MbrCacheCursorPtr cursor = (MbrCacheCursorPtr) pCursor; if (cursor->pVtab->error) { cursor->eof = 1; return SQLITE_OK; } if (cursor->strategy == 0) mbrc_read_row_unfiltered (cursor); else if (cursor->strategy == 2) mbrc_read_row_filtered (cursor); else cursor->eof = 1; return SQLITE_OK; } static int mbrc_eof (sqlite3_vtab_cursor * pCursor) { /* cursor EOF */ MbrCacheCursorPtr cursor = (MbrCacheCursorPtr) pCursor; return cursor->eof; } static int mbrc_column (sqlite3_vtab_cursor * pCursor, sqlite3_context * pContext, int column) { /* fetching value for the Nth column */ MbrCacheCursorPtr cursor = (MbrCacheCursorPtr) pCursor; if (!(cursor->current_cell)) sqlite3_result_null (pContext); else { if (column == 0) { /* the PRIMARY KEY column */ sqlite3_result_int64 (pContext, cursor->current_cell->rowid); } if (column == 1) { /* the MBR column */ char *envelope = sqlite3_mprintf ("POLYGON((" "%1.2f %1.2f, %1.2f %1.2f, %1.2f %1.2f, %1.2f %1.2f, %1.2f %1.2f))", cursor->current_cell->minx, cursor->current_cell->miny, cursor->current_cell->maxx, cursor->current_cell->miny, cursor->current_cell->maxx, cursor->current_cell->maxy, cursor->current_cell->minx, cursor->current_cell->maxy, cursor->current_cell->minx, cursor->current_cell->miny); sqlite3_result_text (pContext, envelope, strlen (envelope), sqlite3_free); } } return SQLITE_OK; } static int mbrc_rowid (sqlite3_vtab_cursor * pCursor, sqlite_int64 * pRowid) { /* fetching the ROWID */ MbrCacheCursorPtr cursor = (MbrCacheCursorPtr) pCursor; *pRowid = cursor->current_cell->rowid; return SQLITE_OK; } static int mbrc_update (sqlite3_vtab * pVTab, int argc, sqlite3_value ** argv, sqlite_int64 * pRowid) { /* generic update [INSERT / UPDATE / DELETE */ sqlite3_int64 rowid; unsigned char *p_blob; int n_bytes; double minx; double miny; double maxx; double maxy; int mode; int illegal = 0; MbrCachePtr p_vtab = (MbrCachePtr) pVTab; if (pRowid) pRowid = pRowid; /* unused arg warning suppression */ if (p_vtab->error) return SQLITE_OK; if (!(p_vtab->cache)) p_vtab->cache = cache_load (p_vtab->db, p_vtab->table_name, p_vtab->column_name); if (argc == 1) { /* performing a DELETE */ if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { rowid = sqlite3_value_int64 (argv[0]); cache_delete_cell (p_vtab->cache->first, rowid); } else illegal = 1; } else { if (sqlite3_value_type (argv[0]) == SQLITE_NULL) { /* performing an INSERT */ if (argc == 4) { if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER && sqlite3_value_type (argv[3]) == SQLITE_BLOB) { rowid = sqlite3_value_int64 (argv[2]); p_blob = (unsigned char *) sqlite3_value_blob (argv[3]); n_bytes = sqlite3_value_bytes (argv[3]); if (gaiaParseFilterMbr (p_blob, n_bytes, &minx, &miny, &maxx, &maxy, &mode)) { if (mode == GAIA_FILTER_MBR_DECLARE) { if (!cache_find_by_rowid (p_vtab->cache->first, rowid)) cache_insert_cell (p_vtab->cache, rowid, minx, miny, maxx, maxy); } else illegal = 1; } else illegal = 1; } else illegal = 1; } else illegal = 1; } else { /* performing an UPDATE */ if (argc == 4) { if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER && sqlite3_value_type (argv[3]) == SQLITE_BLOB) { rowid = sqlite3_value_int64 (argv[0]); p_blob = (unsigned char *) sqlite3_value_blob (argv[3]); n_bytes = sqlite3_value_bytes (argv[3]); if (gaiaParseFilterMbr (p_blob, n_bytes, &minx, &miny, &maxx, &maxy, &mode)) { if (mode == GAIA_FILTER_MBR_DECLARE) cache_update_cell (p_vtab->cache->first, rowid, minx, miny, maxx, maxy); else illegal = 1; } else illegal = 1; } else illegal = 1; } else illegal = 1; } } if (illegal) return SQLITE_MISMATCH; return SQLITE_OK; } static int mbrc_begin (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int mbrc_sync (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int mbrc_commit (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int mbrc_rollback (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } int sqlite3MbrCacheInit (sqlite3 * db) { int rc = SQLITE_OK; my_mbr_module.iVersion = 1; my_mbr_module.xCreate = &mbrc_create; my_mbr_module.xConnect = &mbrc_connect; my_mbr_module.xBestIndex = &mbrc_best_index; my_mbr_module.xDisconnect = &mbrc_disconnect; my_mbr_module.xDestroy = &mbrc_destroy; my_mbr_module.xOpen = &mbrc_open; my_mbr_module.xClose = &mbrc_close; my_mbr_module.xFilter = &mbrc_filter; my_mbr_module.xNext = &mbrc_next; my_mbr_module.xEof = &mbrc_eof; my_mbr_module.xColumn = &mbrc_column; my_mbr_module.xRowid = &mbrc_rowid; my_mbr_module.xUpdate = &mbrc_update; my_mbr_module.xBegin = &mbrc_begin; my_mbr_module.xSync = &mbrc_sync; my_mbr_module.xCommit = &mbrc_commit; my_mbr_module.xRollback = &mbrc_rollback; my_mbr_module.xFindFunction = NULL; sqlite3_create_module_v2 (db, "MbrCache", &my_mbr_module, NULL, 0); return rc; } int mbrcache_extension_init (sqlite3 * db) { return sqlite3MbrCacheInit (db); } libspatialite-4.1.1/src/md5/0000775000175000017500000000000012163503226012622 500000000000000libspatialite-4.1.1/src/md5/Makefile.am0000664000175000017500000000030712163502133014572 00000000000000 INCLUDES = @CFLAGS@ INCLUDES += -I$(top_srcdir)/src/headers -I. noinst_HEADERS = md5.h noinst_LTLIBRARIES = libmd5.la libmd5_la_SOURCES = md5.c gaia_md5.c MOSTLYCLEANFILES = *.gcna *.gcno *.gcda libspatialite-4.1.1/src/md5/Makefile.in0000664000175000017500000003710012163502133014604 00000000000000# Makefile.in generated by automake 1.12.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/md5 DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libmd5_la_LIBADD = am_libmd5_la_OBJECTS = md5.lo gaia_md5.lo libmd5_la_OBJECTS = $(am_libmd5_la_OBJECTS) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libmd5_la_SOURCES) DIST_SOURCES = $(libmd5_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ INCLUDES = @CFLAGS@ -I$(top_srcdir)/src/headers -I. noinst_HEADERS = md5.h noinst_LTLIBRARIES = libmd5.la libmd5_la_SOURCES = md5.c gaia_md5.c MOSTLYCLEANFILES = *.gcna *.gcno *.gcda all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/md5/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/md5/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } libmd5.la: $(libmd5_la_OBJECTS) $(libmd5_la_DEPENDENCIES) $(EXTRA_libmd5_la_DEPENDENCIES) $(LINK) $(libmd5_la_OBJECTS) $(libmd5_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gaia_md5.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/md5.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: $(HEADERS) $(SOURCES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES cscopelist ctags \ distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libspatialite-4.1.1/src/md5/md5.h0000664000175000017500000000331612163502133013377 00000000000000/* * This is an OpenSSL-compatible implementation of the RSA Data Security, Inc. * MD5 Message-Digest Algorithm (RFC 1321). * * Homepage: * http://openwall.info/wiki/people/solar/software/public-domain-source-code/md5 * * Author: * Alexander Peslyak, better known as Solar Designer * * This software was written by Alexander Peslyak in 2001. No copyright is * claimed, and the software is hereby placed in the public domain. * In case this attempt to disclaim copyright and place the software in the * public domain is deemed null and void, then the software is * Copyright (c) 2001 Alexander Peslyak and it is hereby released to the * general public under the following terms: * * Redistribution and use in source and binary forms, with or without * modification, are permitted. * * There's ABSOLUTELY NO WARRANTY, express or implied. * * See md5.c for more information. */ #ifdef HAVE_OPENSSL #include #elif !defined(_MD5_H) #define _MD5_H /* SpatiaLite private MD5 declarations Sandro Furieri - 2013-06-03 */ #ifndef DOXYGEN_SHOULD_SKIP_THIS #ifdef _WIN32 #ifdef DLL_EXPORT #define MD5_PRIVATE #else #define MD5_PRIVATE #endif #else #define MD5_PRIVATE __attribute__ ((visibility("hidden"))) #endif #endif /* end Sandro Furieri - SpatiaLite - 2013-06-03 */ /* Any 32-bit or wider unsigned integer data type will do */ typedef unsigned int MD5_u32plus; typedef struct { MD5_u32plus lo, hi; MD5_u32plus a, b, c, d; unsigned char buffer[64]; MD5_u32plus block[16]; } MD5_CTX; MD5_PRIVATE void MD5_Init(MD5_CTX *ctx); MD5_PRIVATE void MD5_Update(MD5_CTX *ctx, void *data, unsigned long size); MD5_PRIVATE void MD5_Final(unsigned char *result, MD5_CTX *ctx); #endif libspatialite-4.1.1/src/md5/gaia_md5.c0000664000175000017500000000646512163502133014363 00000000000000/* gaia_md5.c -- a thin wrapper built around the original MD5 implementation from Alexander Peslyak (released on the Public Domain) version 4.1, 2013 June 3 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include #include "md5.h" GAIAAUX_DECLARE void * gaiaCreateMD5Checksum (void) { /* Creates and initializes an MD5 checksum object */ MD5_CTX *md5 = malloc (sizeof (MD5_CTX)); MD5_Init (md5); return md5; } GAIAAUX_DECLARE void gaiaFreeMD5Checksum (void *p_md5) { /* memory cleanup - destroying an MD5 checksum object */ unsigned char result[32]; MD5_CTX *md5 = (MD5_CTX *) p_md5; if (md5 == NULL) return; MD5_Final (result, md5); free (md5); } GAIAAUX_DECLARE void gaiaUpdateMD5Checksum (void *p_md5, const unsigned char *blob, int blob_len) { /* progressively updating the MD5 checksum */ MD5_CTX *md5 = (MD5_CTX *) p_md5; if (md5 == NULL || blob == NULL) return; MD5_Update (md5, (void *)blob, blob_len); } GAIAAUX_DECLARE char * gaiaFinalizeMD5Checksum (void *p_md5) { /* return the current MD5 checksum and resets the MD5 object */ int i; char *hex; char hex_byte[8]; unsigned char result[32]; MD5_CTX *md5 = (MD5_CTX *) p_md5; if (md5 == NULL) return NULL; MD5_Final (result, md5); MD5_Init (md5); /* formatting the MD5 checksum as hex-text */ hex = malloc (33); *hex = '\0'; for (i = 0; i < 16; i++) { sprintf (hex_byte, "%02x", result[i]); strcat (hex, hex_byte); } return hex; } libspatialite-4.1.1/src/md5/md5.c0000664000175000017500000002065412163502133013376 00000000000000/* * This is an OpenSSL-compatible implementation of the RSA Data Security, Inc. * MD5 Message-Digest Algorithm (RFC 1321). * * Homepage: * http://openwall.info/wiki/people/solar/software/public-domain-source-code/md5 * * Author: * Alexander Peslyak, better known as Solar Designer * * This software was written by Alexander Peslyak in 2001. No copyright is * claimed, and the software is hereby placed in the public domain. * In case this attempt to disclaim copyright and place the software in the * public domain is deemed null and void, then the software is * Copyright (c) 2001 Alexander Peslyak and it is hereby released to the * general public under the following terms: * * Redistribution and use in source and binary forms, with or without * modification, are permitted. * * There's ABSOLUTELY NO WARRANTY, express or implied. * * (This is a heavily cut-down "BSD license".) * * This differs from Colin Plumb's older public domain implementation in that * no exactly 32-bit integer data type is required (any 32-bit or wider * unsigned integer data type will do), there's no compile-time endianness * configuration, and the function prototypes match OpenSSL's. No code from * Colin Plumb's implementation has been reused; this comment merely compares * the properties of the two independent implementations. * * The primary goals of this implementation are portability and ease of use. * It is meant to be fast, but not as fast as possible. Some known * optimizations are not included to reduce source code size and avoid * compile-time configuration. */ #ifndef HAVE_OPENSSL #include #include "md5.h" /* * The basic MD5 functions. * * F and G are optimized compared to their RFC 1321 definitions for * architectures that lack an AND-NOT instruction, just like in Colin Plumb's * implementation. */ #define F(x, y, z) ((z) ^ ((x) & ((y) ^ (z)))) #define G(x, y, z) ((y) ^ ((z) & ((x) ^ (y)))) #define H(x, y, z) ((x) ^ (y) ^ (z)) #define I(x, y, z) ((y) ^ ((x) | ~(z))) /* * The MD5 transformation for all four rounds. */ #define STEP(f, a, b, c, d, x, t, s) \ (a) += f((b), (c), (d)) + (x) + (t); \ (a) = (((a) << (s)) | (((a) & 0xffffffff) >> (32 - (s)))); \ (a) += (b); /* * SET reads 4 input bytes in little-endian byte order and stores them * in a properly aligned word in host byte order. * * The check for little-endian architectures that tolerate unaligned * memory accesses is just an optimization. Nothing will break if it * doesn't work. */ #if defined(__i386__) || defined(__x86_64__) || defined(__vax__) #define SET(n) \ (*(MD5_u32plus *)&ptr[(n) * 4]) #define GET(n) \ SET(n) #else #define SET(n) \ (ctx->block[(n)] = \ (MD5_u32plus)ptr[(n) * 4] | \ ((MD5_u32plus)ptr[(n) * 4 + 1] << 8) | \ ((MD5_u32plus)ptr[(n) * 4 + 2] << 16) | \ ((MD5_u32plus)ptr[(n) * 4 + 3] << 24)) #define GET(n) \ (ctx->block[(n)]) #endif /* * This processes one or more 64-byte data blocks, but does NOT update * the bit counters. There are no alignment requirements. */ static void *body(MD5_CTX *ctx, void *data, unsigned long size) { unsigned char *ptr; MD5_u32plus a, b, c, d; MD5_u32plus saved_a, saved_b, saved_c, saved_d; ptr = data; a = ctx->a; b = ctx->b; c = ctx->c; d = ctx->d; do { saved_a = a; saved_b = b; saved_c = c; saved_d = d; /* Round 1 */ STEP(F, a, b, c, d, SET(0), 0xd76aa478, 7) STEP(F, d, a, b, c, SET(1), 0xe8c7b756, 12) STEP(F, c, d, a, b, SET(2), 0x242070db, 17) STEP(F, b, c, d, a, SET(3), 0xc1bdceee, 22) STEP(F, a, b, c, d, SET(4), 0xf57c0faf, 7) STEP(F, d, a, b, c, SET(5), 0x4787c62a, 12) STEP(F, c, d, a, b, SET(6), 0xa8304613, 17) STEP(F, b, c, d, a, SET(7), 0xfd469501, 22) STEP(F, a, b, c, d, SET(8), 0x698098d8, 7) STEP(F, d, a, b, c, SET(9), 0x8b44f7af, 12) STEP(F, c, d, a, b, SET(10), 0xffff5bb1, 17) STEP(F, b, c, d, a, SET(11), 0x895cd7be, 22) STEP(F, a, b, c, d, SET(12), 0x6b901122, 7) STEP(F, d, a, b, c, SET(13), 0xfd987193, 12) STEP(F, c, d, a, b, SET(14), 0xa679438e, 17) STEP(F, b, c, d, a, SET(15), 0x49b40821, 22) /* Round 2 */ STEP(G, a, b, c, d, GET(1), 0xf61e2562, 5) STEP(G, d, a, b, c, GET(6), 0xc040b340, 9) STEP(G, c, d, a, b, GET(11), 0x265e5a51, 14) STEP(G, b, c, d, a, GET(0), 0xe9b6c7aa, 20) STEP(G, a, b, c, d, GET(5), 0xd62f105d, 5) STEP(G, d, a, b, c, GET(10), 0x02441453, 9) STEP(G, c, d, a, b, GET(15), 0xd8a1e681, 14) STEP(G, b, c, d, a, GET(4), 0xe7d3fbc8, 20) STEP(G, a, b, c, d, GET(9), 0x21e1cde6, 5) STEP(G, d, a, b, c, GET(14), 0xc33707d6, 9) STEP(G, c, d, a, b, GET(3), 0xf4d50d87, 14) STEP(G, b, c, d, a, GET(8), 0x455a14ed, 20) STEP(G, a, b, c, d, GET(13), 0xa9e3e905, 5) STEP(G, d, a, b, c, GET(2), 0xfcefa3f8, 9) STEP(G, c, d, a, b, GET(7), 0x676f02d9, 14) STEP(G, b, c, d, a, GET(12), 0x8d2a4c8a, 20) /* Round 3 */ STEP(H, a, b, c, d, GET(5), 0xfffa3942, 4) STEP(H, d, a, b, c, GET(8), 0x8771f681, 11) STEP(H, c, d, a, b, GET(11), 0x6d9d6122, 16) STEP(H, b, c, d, a, GET(14), 0xfde5380c, 23) STEP(H, a, b, c, d, GET(1), 0xa4beea44, 4) STEP(H, d, a, b, c, GET(4), 0x4bdecfa9, 11) STEP(H, c, d, a, b, GET(7), 0xf6bb4b60, 16) STEP(H, b, c, d, a, GET(10), 0xbebfbc70, 23) STEP(H, a, b, c, d, GET(13), 0x289b7ec6, 4) STEP(H, d, a, b, c, GET(0), 0xeaa127fa, 11) STEP(H, c, d, a, b, GET(3), 0xd4ef3085, 16) STEP(H, b, c, d, a, GET(6), 0x04881d05, 23) STEP(H, a, b, c, d, GET(9), 0xd9d4d039, 4) STEP(H, d, a, b, c, GET(12), 0xe6db99e5, 11) STEP(H, c, d, a, b, GET(15), 0x1fa27cf8, 16) STEP(H, b, c, d, a, GET(2), 0xc4ac5665, 23) /* Round 4 */ STEP(I, a, b, c, d, GET(0), 0xf4292244, 6) STEP(I, d, a, b, c, GET(7), 0x432aff97, 10) STEP(I, c, d, a, b, GET(14), 0xab9423a7, 15) STEP(I, b, c, d, a, GET(5), 0xfc93a039, 21) STEP(I, a, b, c, d, GET(12), 0x655b59c3, 6) STEP(I, d, a, b, c, GET(3), 0x8f0ccc92, 10) STEP(I, c, d, a, b, GET(10), 0xffeff47d, 15) STEP(I, b, c, d, a, GET(1), 0x85845dd1, 21) STEP(I, a, b, c, d, GET(8), 0x6fa87e4f, 6) STEP(I, d, a, b, c, GET(15), 0xfe2ce6e0, 10) STEP(I, c, d, a, b, GET(6), 0xa3014314, 15) STEP(I, b, c, d, a, GET(13), 0x4e0811a1, 21) STEP(I, a, b, c, d, GET(4), 0xf7537e82, 6) STEP(I, d, a, b, c, GET(11), 0xbd3af235, 10) STEP(I, c, d, a, b, GET(2), 0x2ad7d2bb, 15) STEP(I, b, c, d, a, GET(9), 0xeb86d391, 21) a += saved_a; b += saved_b; c += saved_c; d += saved_d; ptr += 64; } while (size -= 64); ctx->a = a; ctx->b = b; ctx->c = c; ctx->d = d; return ptr; } /* Sandro Furieri - SpatiaLite - 2013-06-03 simply re-declaring all these functions as PRIVATE (not externally visible outside libspatialite itself) */ MD5_PRIVATE void MD5_Init(MD5_CTX *ctx) { ctx->a = 0x67452301; ctx->b = 0xefcdab89; ctx->c = 0x98badcfe; ctx->d = 0x10325476; ctx->lo = 0; ctx->hi = 0; } MD5_PRIVATE void MD5_Update(MD5_CTX *ctx, void *data, unsigned long size) { MD5_u32plus saved_lo; unsigned long used, free; saved_lo = ctx->lo; if ((ctx->lo = (saved_lo + size) & 0x1fffffff) < saved_lo) ctx->hi++; ctx->hi += size >> 29; used = saved_lo & 0x3f; if (used) { free = 64 - used; if (size < free) { memcpy(&ctx->buffer[used], data, size); return; } memcpy(&ctx->buffer[used], data, free); data = (unsigned char *)data + free; size -= free; body(ctx, ctx->buffer, 64); } if (size >= 64) { data = body(ctx, data, size & ~(unsigned long)0x3f); size &= 0x3f; } memcpy(ctx->buffer, data, size); } MD5_PRIVATE void MD5_Final(unsigned char *result, MD5_CTX *ctx) { unsigned long used, free; used = ctx->lo & 0x3f; ctx->buffer[used++] = 0x80; free = 64 - used; if (free < 8) { memset(&ctx->buffer[used], 0, free); body(ctx, ctx->buffer, 64); used = 0; free = 64; } memset(&ctx->buffer[used], 0, free - 8); ctx->lo <<= 3; ctx->buffer[56] = ctx->lo; ctx->buffer[57] = ctx->lo >> 8; ctx->buffer[58] = ctx->lo >> 16; ctx->buffer[59] = ctx->lo >> 24; ctx->buffer[60] = ctx->hi; ctx->buffer[61] = ctx->hi >> 8; ctx->buffer[62] = ctx->hi >> 16; ctx->buffer[63] = ctx->hi >> 24; body(ctx, ctx->buffer, 64); result[0] = ctx->a; result[1] = ctx->a >> 8; result[2] = ctx->a >> 16; result[3] = ctx->a >> 24; result[4] = ctx->b; result[5] = ctx->b >> 8; result[6] = ctx->b >> 16; result[7] = ctx->b >> 24; result[8] = ctx->c; result[9] = ctx->c >> 8; result[10] = ctx->c >> 16; result[11] = ctx->c >> 24; result[12] = ctx->d; result[13] = ctx->d >> 8; result[14] = ctx->d >> 16; result[15] = ctx->d >> 24; memset(ctx, 0, sizeof(*ctx)); } #endif libspatialite-4.1.1/src/Makefile.in0000664000175000017500000006165512163502133014133 00000000000000# Makefile.in generated by automake 1.12.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ @ANDROID_TRUE@@MINGW_FALSE@am__append_1 = -ldl @ANDROID_FALSE@@MINGW_FALSE@am__append_2 = -lpthread -ldl subdir = src DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(libdir)" LTLIBRARIES = $(lib_LTLIBRARIES) am__DEPENDENCIES_1 = libspatialite_la_DEPENDENCIES = ./gaiaaux/libgaiaaux.la \ ./gaiaexif/libgaiaexif.la ./gaiageo/libgaiageo.la \ ./geopackage/libgeopackage.la ./spatialite/libsplite.la \ ./shapefiles/libshapefiles.la ./dxf/libdxf.la ./md5/libmd5.la \ ./srsinit/libsrsinit.la ./virtualtext/libvirtualtext.la \ ./wfs/libwfs.la $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am_libspatialite_la_OBJECTS = version.lo libspatialite_la_OBJECTS = $(am_libspatialite_la_OBJECTS) libspatialite_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libspatialite_la_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libspatialite_la_SOURCES) DIST_SOURCES = $(libspatialite_la_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = headers \ gaiaaux \ gaiaexif \ gaiageo \ geopackage \ spatialite \ shapefiles \ srsinit \ virtualtext \ wfs \ dxf \ md5 INCLUDES = @CFLAGS@ -I$(top_srcdir)/src/headers -I$(top_srcdir) lib_LTLIBRARIES = libspatialite.la libspatialite_la_SOURCES = versioninfo/version.c libspatialite_la_LIBADD = ./gaiaaux/libgaiaaux.la \ ./gaiaexif/libgaiaexif.la ./gaiageo/libgaiageo.la \ ./geopackage/libgeopackage.la ./spatialite/libsplite.la \ ./shapefiles/libshapefiles.la ./dxf/libdxf.la ./md5/libmd5.la \ ./srsinit/libsrsinit.la ./virtualtext/libvirtualtext.la \ ./wfs/libwfs.la @LIBXML2_LIBS@ $(am__append_1) $(am__append_2) @ANDROID_FALSE@@MINGW_FALSE@libspatialite_la_LDFLAGS = -version-info 6:0:1 @ANDROID_TRUE@@MINGW_FALSE@libspatialite_la_LDFLAGS = -version-info 6:0:1 @MINGW_TRUE@libspatialite_la_LDFLAGS = -version-info 4:1:0 -no-undefined MOSTLYCLEANFILES = *.gcna *.gcno *.gcda all: all-recursive .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } libspatialite.la: $(libspatialite_la_OBJECTS) $(libspatialite_la_DEPENDENCIES) $(EXTRA_libspatialite_la_DEPENDENCIES) $(libspatialite_la_LINK) -rpath $(libdir) $(libspatialite_la_OBJECTS) $(libspatialite_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/version.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< version.lo: versioninfo/version.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT version.lo -MD -MP -MF $(DEPDIR)/version.Tpo -c -o version.lo `test -f 'versioninfo/version.c' || echo '$(srcdir)/'`versioninfo/version.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/version.Tpo $(DEPDIR)/version.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='versioninfo/version.c' object='version.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o version.lo `test -f 'versioninfo/version.c' || echo '$(srcdir)/'`versioninfo/version.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(RECURSIVE_TARGETS) $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done cscopelist-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) cscopelist); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive $(HEADERS) $(SOURCES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(LTLIBRARIES) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(libdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-libLTLIBRARIES install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-libLTLIBRARIES .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) \ cscopelist-recursive ctags-recursive install-am install-strip \ tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool cscopelist \ cscopelist-recursive ctags ctags-recursive distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am \ install-libLTLIBRARIES install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-recursive uninstall uninstall-am \ uninstall-libLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libspatialite-4.1.1/src/geopackage/0000775000175000017500000000000012163503225014222 500000000000000libspatialite-4.1.1/src/geopackage/Makefile.am0000664000175000017500000000101112163502133016164 00000000000000AM_CFLAGS = $(GCOV_FLAGS) INCLUDES = @CFLAGS@ INCLUDES += -I$(top_srcdir)/src/headers noinst_LTLIBRARIES = libgeopackage.la libgeopackage_la_SOURCES = \ gpkg_add_tile_triggers.c \ gpkg_add_rt_metadata_triggers.c \ gpkg_get_normal_row.c \ gpkg_get_normal_zoom.c \ gpkg_point_to_tile.c \ gpkgGetImageType.c \ gpkgCreateBaseTables.c \ gpkgCreateTilesTable.c \ gpkgCreateTilesZoomLevel.c libgeopackage_la_CFLAGS = -fvisibility=hidden MOSTLYCLEANFILES = *.gcna *.gcno *.gcda EXTRA_DIST = geopackage_internal.h libspatialite-4.1.1/src/geopackage/gpkgCreateTilesZoomLevel.c0000664000175000017500000001112212163502133021212 00000000000000/* GeoPackage extensions for SpatiaLite / SQLite Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage Extensions The Initial Developer of the Original Code is Brad Hards (bradh@frogmouth.net) Portions created by the Initial Developer are Copyright (C) 2012 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include "spatialite/geopackage.h" #include "config.h" #include "geopackage_internal.h" #ifdef ENABLE_GEOPACKAGE GEOPACKAGE_DECLARE void fnct_gpkgCreateTilesZoomLevel (sqlite3_context * context, int argc __attribute__ ((unused)), sqlite3_value ** argv) { /* SQL function: / gpkgCreateTilesZoomLevel(table_name, zoom_level, extent_width, extent_height) / / Adds a zoom level for the specified table / / returns nothing on success, raises exception on error / / This function assumes usual tile conventions, including that the tiles are power-of-two-zoom, / 256x256 pixels, 1 tile at the top level (zoom level 0). / */ const unsigned char *table; int zoomlevel = 0; int columns = 1; int rows = 1; int tilesize = 256; double extent_height; double extent_width; char *sql_stmt = NULL; sqlite3 *sqlite = NULL; char *errMsg = NULL; int ret = 0; if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_error(context, "gpkgCreateTilesZoomLevel() error: argument 1 [table] is not of the String type", -1); return; } table = sqlite3_value_text (argv[0]); if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_error(context, "gpkgCreateTilesZoomLevel() error: argument 2 [zoom level] is not of the integer type", -1); return; } zoomlevel = sqlite3_value_int (argv[1]); if (zoomlevel < 0) { sqlite3_result_error(context, "gpkgCreateTilesZoomLevel() error: argument 2 [zoom level] must be >= 0", -1); return; } if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { extent_width = (double)sqlite3_value_int (argv[2]); } else if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) { extent_width = sqlite3_value_double (argv[2]); } else { sqlite3_result_error(context, "gpkgCreateTilesZoomLevel() error: argument 3 [extent_width] is not of a numerical type", -1); return; } if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) { extent_height = (double)sqlite3_value_int (argv[3]); } else if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) { extent_height = sqlite3_value_double (argv[3]); } else { sqlite3_result_error(context, "gpkgCreateTilesZoomLevel() error: argument 4 [extent_height] is not of a numerical type", -1); return; } sqlite = sqlite3_context_db_handle (context); columns = pow(2, zoomlevel); rows = columns; sql_stmt = sqlite3_mprintf("INSERT INTO tile_matrix_metadata" "(t_table_name, zoom_level, matrix_width, matrix_height, tile_width, tile_height, pixel_x_size, pixel_y_size)" "VALUES (%Q, %i, %i, %i, %i, %i, %g, %g)", table, zoomlevel, columns, rows, tilesize, tilesize, extent_width/(tilesize * columns), extent_height/(tilesize * rows)); ret = sqlite3_exec (sqlite, sql_stmt, NULL, NULL, &errMsg); sqlite3_free(sql_stmt); if (ret != SQLITE_OK) { sqlite3_result_error(context, errMsg, -1); sqlite3_free(errMsg); return; } } #endif libspatialite-4.1.1/src/geopackage/geopackage_internal.h0000664000175000017500000000031612163502133020272 00000000000000#include #include #include #include #include #include #include #include "spatialite/debug.h" #include "spatialite.h" libspatialite-4.1.1/src/geopackage/gpkg_get_normal_row.c0000664000175000017500000001112512163502133020331 00000000000000/* GeoPackage extensions for SpatiaLite / SQLite Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage Extensions The Initial Developer of the Original Code is Brad Hards (bradh@frogmouth.net) Portions created by the Initial Developer are Copyright (C) 2012 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include "spatialite/geopackage.h" #include "config.h" #include "geopackage_internal.h" #ifdef ENABLE_GEOPACKAGE GEOPACKAGE_DECLARE void fnct_gpkgGetNormalRow (sqlite3_context * context, int argc UNUSED, sqlite3_value ** argv) { /* SQL function: / gpkgGetNormalRow(tile_table_name, normal_zoom_level, inverted_row_number) / / Gets the normal integer row number for the specified table, normal zoom level / and inverted row number. Raises a SQL exception if no zoom level row record in / tile_matrix_metadata / / Note that this function can also be used to convert from a normal row number / to an inverted row number - this conversion is symmetric. */ const unsigned char *table; int zoom_level; int inverted_row_number; int matrix_height; int normal_row_number; char *sql_stmt = NULL; sqlite3 *sqlite = NULL; char *errMsg = NULL; char **results; char *endptr = 0; int rows = 0; int columns = 0; int ret = 0; if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_error(context, "gpkgGetNormalRow() error: argument 1 [tile_table_name] is not of the String type", -1); return; } table = sqlite3_value_text (argv[0]); if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_error(context, "gpkgGetNormalRow() error: argument 2 [normal zoom level] is not of the integer type", -1); return; } zoom_level = sqlite3_value_int (argv[1]); if (sqlite3_value_type (argv[2]) != SQLITE_INTEGER) { sqlite3_result_error(context, "gpkgGetNormalRow() error: argument 3 [inverted_row_number] is not of the integer type", -1); return; } inverted_row_number = sqlite3_value_int (argv[2]); sql_stmt = sqlite3_mprintf("SELECT matrix_height FROM tile_matrix_metadata WHERE t_table_name=\"%q\" AND zoom_level=%i", table, zoom_level); sqlite = sqlite3_context_db_handle (context); ret = sqlite3_get_table (sqlite, sql_stmt, &results, &rows, &columns, &errMsg); sqlite3_free(sql_stmt); if (ret != SQLITE_OK) { sqlite3_result_error (context, errMsg, -1); sqlite3_free (errMsg); return; } if (rows != 1) { sqlite3_result_error (context, "gpkgGetNormalRow: tile table or zoom level not found", -1); sqlite3_free_table(results); sqlite3_free (errMsg); return; } errno = 0; matrix_height = strtol(results[1 * columns + 0], &endptr, 10); if ((endptr == results[1 * columns + 0]) || (matrix_height < 0) || (errno == ERANGE && matrix_height == INT_MAX) || (errno != 0 && matrix_height == 0)) { sqlite3_free_table (results); sqlite3_result_error (context, "gpkgGetNormalRow: could not parse result (corrupt GeoPackage?)", -1); return; } sqlite3_free_table (results); if ((inverted_row_number >= matrix_height) || (inverted_row_number < 0)) { sqlite3_result_error (context, "gpkgGetNormalRow: row number outside of matrix height range", -1); return; } normal_row_number = matrix_height - inverted_row_number -1; sqlite3_result_int (context, normal_row_number); } #endif libspatialite-4.1.1/src/geopackage/Makefile.in0000664000175000017500000006766312163502133016226 00000000000000# Makefile.in generated by automake 1.12.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/geopackage DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libgeopackage_la_LIBADD = am_libgeopackage_la_OBJECTS = \ libgeopackage_la-gpkg_add_tile_triggers.lo \ libgeopackage_la-gpkg_add_rt_metadata_triggers.lo \ libgeopackage_la-gpkg_get_normal_row.lo \ libgeopackage_la-gpkg_get_normal_zoom.lo \ libgeopackage_la-gpkg_point_to_tile.lo \ libgeopackage_la-gpkgGetImageType.lo \ libgeopackage_la-gpkgCreateBaseTables.lo \ libgeopackage_la-gpkgCreateTilesTable.lo \ libgeopackage_la-gpkgCreateTilesZoomLevel.lo libgeopackage_la_OBJECTS = $(am_libgeopackage_la_OBJECTS) libgeopackage_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libgeopackage_la_CFLAGS) \ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libgeopackage_la_SOURCES) DIST_SOURCES = $(libgeopackage_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AM_CFLAGS = $(GCOV_FLAGS) INCLUDES = @CFLAGS@ -I$(top_srcdir)/src/headers noinst_LTLIBRARIES = libgeopackage.la libgeopackage_la_SOURCES = \ gpkg_add_tile_triggers.c \ gpkg_add_rt_metadata_triggers.c \ gpkg_get_normal_row.c \ gpkg_get_normal_zoom.c \ gpkg_point_to_tile.c \ gpkgGetImageType.c \ gpkgCreateBaseTables.c \ gpkgCreateTilesTable.c \ gpkgCreateTilesZoomLevel.c libgeopackage_la_CFLAGS = -fvisibility=hidden MOSTLYCLEANFILES = *.gcna *.gcno *.gcda EXTRA_DIST = geopackage_internal.h all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/geopackage/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/geopackage/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } libgeopackage.la: $(libgeopackage_la_OBJECTS) $(libgeopackage_la_DEPENDENCIES) $(EXTRA_libgeopackage_la_DEPENDENCIES) $(libgeopackage_la_LINK) $(libgeopackage_la_OBJECTS) $(libgeopackage_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgeopackage_la-gpkgCreateBaseTables.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgeopackage_la-gpkgCreateTilesTable.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgeopackage_la-gpkgCreateTilesZoomLevel.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgeopackage_la-gpkgGetImageType.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgeopackage_la-gpkg_add_rt_metadata_triggers.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgeopackage_la-gpkg_add_tile_triggers.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgeopackage_la-gpkg_get_normal_row.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgeopackage_la-gpkg_get_normal_zoom.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgeopackage_la-gpkg_point_to_tile.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< libgeopackage_la-gpkg_add_tile_triggers.lo: gpkg_add_tile_triggers.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkg_add_tile_triggers.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkg_add_tile_triggers.Tpo -c -o libgeopackage_la-gpkg_add_tile_triggers.lo `test -f 'gpkg_add_tile_triggers.c' || echo '$(srcdir)/'`gpkg_add_tile_triggers.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libgeopackage_la-gpkg_add_tile_triggers.Tpo $(DEPDIR)/libgeopackage_la-gpkg_add_tile_triggers.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gpkg_add_tile_triggers.c' object='libgeopackage_la-gpkg_add_tile_triggers.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkg_add_tile_triggers.lo `test -f 'gpkg_add_tile_triggers.c' || echo '$(srcdir)/'`gpkg_add_tile_triggers.c libgeopackage_la-gpkg_add_rt_metadata_triggers.lo: gpkg_add_rt_metadata_triggers.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkg_add_rt_metadata_triggers.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkg_add_rt_metadata_triggers.Tpo -c -o libgeopackage_la-gpkg_add_rt_metadata_triggers.lo `test -f 'gpkg_add_rt_metadata_triggers.c' || echo '$(srcdir)/'`gpkg_add_rt_metadata_triggers.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libgeopackage_la-gpkg_add_rt_metadata_triggers.Tpo $(DEPDIR)/libgeopackage_la-gpkg_add_rt_metadata_triggers.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gpkg_add_rt_metadata_triggers.c' object='libgeopackage_la-gpkg_add_rt_metadata_triggers.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkg_add_rt_metadata_triggers.lo `test -f 'gpkg_add_rt_metadata_triggers.c' || echo '$(srcdir)/'`gpkg_add_rt_metadata_triggers.c libgeopackage_la-gpkg_get_normal_row.lo: gpkg_get_normal_row.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkg_get_normal_row.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkg_get_normal_row.Tpo -c -o libgeopackage_la-gpkg_get_normal_row.lo `test -f 'gpkg_get_normal_row.c' || echo '$(srcdir)/'`gpkg_get_normal_row.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libgeopackage_la-gpkg_get_normal_row.Tpo $(DEPDIR)/libgeopackage_la-gpkg_get_normal_row.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gpkg_get_normal_row.c' object='libgeopackage_la-gpkg_get_normal_row.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkg_get_normal_row.lo `test -f 'gpkg_get_normal_row.c' || echo '$(srcdir)/'`gpkg_get_normal_row.c libgeopackage_la-gpkg_get_normal_zoom.lo: gpkg_get_normal_zoom.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkg_get_normal_zoom.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkg_get_normal_zoom.Tpo -c -o libgeopackage_la-gpkg_get_normal_zoom.lo `test -f 'gpkg_get_normal_zoom.c' || echo '$(srcdir)/'`gpkg_get_normal_zoom.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libgeopackage_la-gpkg_get_normal_zoom.Tpo $(DEPDIR)/libgeopackage_la-gpkg_get_normal_zoom.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gpkg_get_normal_zoom.c' object='libgeopackage_la-gpkg_get_normal_zoom.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkg_get_normal_zoom.lo `test -f 'gpkg_get_normal_zoom.c' || echo '$(srcdir)/'`gpkg_get_normal_zoom.c libgeopackage_la-gpkg_point_to_tile.lo: gpkg_point_to_tile.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkg_point_to_tile.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkg_point_to_tile.Tpo -c -o libgeopackage_la-gpkg_point_to_tile.lo `test -f 'gpkg_point_to_tile.c' || echo '$(srcdir)/'`gpkg_point_to_tile.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libgeopackage_la-gpkg_point_to_tile.Tpo $(DEPDIR)/libgeopackage_la-gpkg_point_to_tile.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gpkg_point_to_tile.c' object='libgeopackage_la-gpkg_point_to_tile.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkg_point_to_tile.lo `test -f 'gpkg_point_to_tile.c' || echo '$(srcdir)/'`gpkg_point_to_tile.c libgeopackage_la-gpkgGetImageType.lo: gpkgGetImageType.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkgGetImageType.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkgGetImageType.Tpo -c -o libgeopackage_la-gpkgGetImageType.lo `test -f 'gpkgGetImageType.c' || echo '$(srcdir)/'`gpkgGetImageType.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libgeopackage_la-gpkgGetImageType.Tpo $(DEPDIR)/libgeopackage_la-gpkgGetImageType.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gpkgGetImageType.c' object='libgeopackage_la-gpkgGetImageType.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkgGetImageType.lo `test -f 'gpkgGetImageType.c' || echo '$(srcdir)/'`gpkgGetImageType.c libgeopackage_la-gpkgCreateBaseTables.lo: gpkgCreateBaseTables.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkgCreateBaseTables.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkgCreateBaseTables.Tpo -c -o libgeopackage_la-gpkgCreateBaseTables.lo `test -f 'gpkgCreateBaseTables.c' || echo '$(srcdir)/'`gpkgCreateBaseTables.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libgeopackage_la-gpkgCreateBaseTables.Tpo $(DEPDIR)/libgeopackage_la-gpkgCreateBaseTables.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gpkgCreateBaseTables.c' object='libgeopackage_la-gpkgCreateBaseTables.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkgCreateBaseTables.lo `test -f 'gpkgCreateBaseTables.c' || echo '$(srcdir)/'`gpkgCreateBaseTables.c libgeopackage_la-gpkgCreateTilesTable.lo: gpkgCreateTilesTable.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkgCreateTilesTable.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkgCreateTilesTable.Tpo -c -o libgeopackage_la-gpkgCreateTilesTable.lo `test -f 'gpkgCreateTilesTable.c' || echo '$(srcdir)/'`gpkgCreateTilesTable.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libgeopackage_la-gpkgCreateTilesTable.Tpo $(DEPDIR)/libgeopackage_la-gpkgCreateTilesTable.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gpkgCreateTilesTable.c' object='libgeopackage_la-gpkgCreateTilesTable.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkgCreateTilesTable.lo `test -f 'gpkgCreateTilesTable.c' || echo '$(srcdir)/'`gpkgCreateTilesTable.c libgeopackage_la-gpkgCreateTilesZoomLevel.lo: gpkgCreateTilesZoomLevel.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkgCreateTilesZoomLevel.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkgCreateTilesZoomLevel.Tpo -c -o libgeopackage_la-gpkgCreateTilesZoomLevel.lo `test -f 'gpkgCreateTilesZoomLevel.c' || echo '$(srcdir)/'`gpkgCreateTilesZoomLevel.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libgeopackage_la-gpkgCreateTilesZoomLevel.Tpo $(DEPDIR)/libgeopackage_la-gpkgCreateTilesZoomLevel.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gpkgCreateTilesZoomLevel.c' object='libgeopackage_la-gpkgCreateTilesZoomLevel.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkgCreateTilesZoomLevel.lo `test -f 'gpkgCreateTilesZoomLevel.c' || echo '$(srcdir)/'`gpkgCreateTilesZoomLevel.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: $(HEADERS) $(SOURCES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES cscopelist ctags \ distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libspatialite-4.1.1/src/geopackage/gpkg_add_rt_metadata_triggers.c0000664000175000017500000001406112163502133022320 00000000000000/* GeoPackage extensions for SpatiaLite / SQLite Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage Extensions The Initial Developer of the Original Code is Brad Hards (bradh@frogmouth.net) Portions created by the Initial Developer are Copyright (C) 2012 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include "spatialite/geopackage.h" #include "config.h" #include "geopackage_internal.h" #ifdef ENABLE_GEOPACKAGE GEOPACKAGE_DECLARE void fnct_gpkgAddRtMetadataTriggers (sqlite3_context * context, int argc UNUSED, sqlite3_value ** argv) { /* SQL function: / gpkgAddRtMetadataTriggers(table) / / Adds Geopackage table triggers for the metadata table associated with the / named table. NOTE: pass the data table name, not the metadata table name. / / returns nothing on success, raises exception on error */ const unsigned char *table; char *sql_stmt = NULL; sqlite3 *sqlite = NULL; char *errMsg = NULL; int ret = 0; int i = 0; /* Note: the code below relies on there being five (or less) varargs, all of which are the table name */ const char* trigger_stmts[] = { "CREATE TRIGGER '%q_rt_metadata_r_raster_column_insert'\n" "BEFORE INSERT ON '%q_rt_metadata'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'insert on table ''%q_rt_metadata'' violates constraint: r_raster_column must be specified for table %s in table raster_columns')\n" "WHERE (NOT (NEW.r_raster_column IN (SELECT DISTINCT r_raster_column FROM raster_columns WHERE r_table_name = '%s')));\n" "END", "CREATE TRIGGER '%q_rt_metadata_r_raster_column_update'\n" "BEFORE UPDATE OF r_raster_column ON '%q_rt_metadata'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on table ''%q_rt_metadata'' violates constraint: r_raster_column must be specified for table %s in table raster_columns')\n" "WHERE (NOT (NEW.r_raster_column IN (SELECT DISTINCT r_raster_column FROM raster_columns WHERE r_table_name = '%s')));\n" "END", "CREATE TRIGGER '%q_rt_metadata_georectification_insert'\n" "BEFORE INSERT ON '%q_rt_metadata'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'insert on table ''%q_rt_metadata'' violates constraint: georectification must be 0, 1 or 2')\n" "WHERE (NOT (NEW.georectification IN (0, 1, 2)));\n" "END", "CREATE TRIGGER '%q_rt_metadata_georectification_update'\n" "BEFORE UPDATE OF georectification ON '%q_rt_metadata'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on table ''%q_rt_metadata'' violates constraint: georectification must be 0, 1 or 2')\n" "WHERE (NOT (NEW.georectification IN (0, 1, 2)));\n" "END", "CREATE TRIGGER '%q_rt_metadata_compr_qual_factor_insert'\n" "BEFORE INSERT ON '%q_rt_metadata'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, 'insert on table ''%q_rt_metadata'' violates constraint: compr_qual_factor < 1, must be between 1 and 100')\n" "WHERE NEW.compr_qual_factor < 1;\n" "SELECT RAISE(ROLLBACK, 'insert on table ''%q_rt_metadata'' violates constraint: compr_qual_factor > 100, must be between 1 and 100')\n" "WHERE NEW.compr_qual_factor > 100;\n" "END", "CREATE TRIGGER '%q_rt_metadata_compr_qual_factor_update'\n" "BEFORE UPDATE OF compr_qual_factor ON '%q_rt_metadata'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, 'update on table ''%q_rt_metadata'' violates constraint: compr_qual_factor < 1, must be between 1 and 100')\n" "WHERE NEW.compr_qual_factor < 1;\n" "SELECT RAISE(ROLLBACK, 'update on table ''%q_rt_metadata'' violates constraint: compr_qual_factor > 100, must be between 1 and 100')\n" "WHERE NEW.compr_qual_factor > 100;\n" "END", "CREATE TRIGGER '%q_rt_metadata_row_id_value_insert'\n" "BEFORE INSERT ON '%q_rt_metadata'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, 'insert on table %q_rt_metadata violates constraint: row_id_value must exist in %q table')\n" "WHERE NOT EXISTS (SELECT rowid FROM '%q' WHERE rowid = NEW.row_id_value);\n" "END", "CREATE TRIGGER '%q_rt_metadata_row_id_value_update'\n" "BEFORE UPDATE OF 'row_id_value' ON '%q_rt_metadata'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, 'update on table %q_rt_metadata violates constraint: row_id_value must exist in %qtable')\n" "WHERE NOT EXISTS (SELECT rowid FROM '%q' WHERE rowid = NEW.row_id_value);\n" "END", NULL }; if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_error(context, "gpkgAddRtMetadataTriggers() error: argument 1 [table] is not of the String type", -1); return; } table = sqlite3_value_text (argv[0]); for (i = 0; trigger_stmts[i] != NULL; ++i) { sql_stmt = sqlite3_mprintf(trigger_stmts[i], table, table, table, table, table); sqlite = sqlite3_context_db_handle (context); ret = sqlite3_exec (sqlite, sql_stmt, NULL, NULL, &errMsg); sqlite3_free(sql_stmt); if (ret != SQLITE_OK) { sqlite3_result_error(context, errMsg, -1); sqlite3_free(errMsg); return; } } } #endif libspatialite-4.1.1/src/geopackage/gpkgCreateBaseTables.c0000664000175000017500000005025112163502133020310 00000000000000/* GeoPackage extensions for SpatiaLite / SQLite Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage Extensions The Initial Developer of the Original Code is Brad Hards (bradh@frogmouth.net) Portions created by the Initial Developer are Copyright (C) 2012 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include "spatialite/geopackage.h" #include "config.h" #include "geopackage_internal.h" #ifdef ENABLE_GEOPACKAGE GEOPACKAGE_DECLARE void fnct_gpkgCreateBaseTables (sqlite3_context * context, int argc __attribute__ ((unused)), sqlite3_value ** argv) { /* SQL function: / gpkgCreateBaseTables() / / Create base tables for an "empty" GeoPackage / returns nothing on success, raises exception on error / */ char *sql_stmt = NULL; sqlite3 *sqlite = NULL; char *errMsg = NULL; int ret = 0; int i = 0; const char* tableSchemas[] = { /* GeoPackage specification Table 2 */ "CREATE TABLE geopackage_contents (\n" "table_name TEXT NOT NULL PRIMARY KEY,\n" "data_type TEXT NOT NULL,\n" "identifier TEXT NOT NULL DEFAULT '',\n" "description TEXT NOT NULL DEFAULT '',\n" "last_change TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ',CURRENT_TIMESTAMP)),\n" "min_x DOUBLE NOT NULL DEFAULT -180.0,\n" "min_y DOUBLE NOT NULL DEFAULT -90.0,\n" "max_x DOUBLE NOT NULL DEFAULT 180.0,\n" "max_y DOUBLE NOT NULL DEFAULT 90.0,\n" "srid INTEGER NOT NULL DEFAULT 0,\n" "CONSTRAINT fk_gc_r_srid FOREIGN KEY (srid) REFERENCES spatial_ref_sys(srid));", /* GeoPackage specification Table 23/24 */ "CREATE TABLE raster_columns (\n" "r_table_name TEXT NOT NULL,\n" "r_raster_column TEXT NOT NULL,\n" "compr_qual_factor INTEGER NOT NULL DEFAULT 100,\n" "georectification INTEGER NOT NULL DEFAULT 0,\n" "srid INTEGER NOT NULL DEFAULT 0,\n" "CONSTRAINT pk_rc PRIMARY KEY (r_table_name, r_raster_column) ON CONFLICT ROLLBACK,\n" "CONSTRAINT fk_rc_r_srid FOREIGN KEY (srid) REFERENCES spatial_ref_sys(srid)," "CONSTRAINT fk_rc_r_gc FOREIGN KEY (r_table_name) REFERENCES geopackage_contents(table_name));", /* The next four triggers are from GeoPackage specification Table 21 */ "CREATE TRIGGER 'raster_columns_r_table_name_insert'\n" "BEFORE INSERT ON 'raster_columns'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'insert on raster_columns violates constraint: r_table_name value must not contain a single quote')\n" "WHERE NEW.r_table_name LIKE ('%''''%');\n" "SELECT RAISE(ABORT, 'insert on raster_columns violates constraint: r_table_name value must not contain a double quote')\n" "WHERE NEW.r_table_name LIKE ('%\"%');\n" "SELECT RAISE(ABORT, 'insert on raster_columns violates constraint: r_table_name value must be lower case')\n" "WHERE NEW.r_table_name <> lower(NEW.r_table_name);\n" "END;", "CREATE TRIGGER 'raster_columns_r_table_name_update'\n" "BEFORE UPDATE OF 'r_table_name' ON 'raster_columns'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'update on raster_columns violates constraint: r_table_name value must not contain a single quote')\n" "WHERE NEW.r_table_name LIKE ('%''''%');\n" "SELECT RAISE(ABORT,'update on raster_columns violates constraint: r_table_name value must not contain a double quote')\n" "WHERE NEW.r_table_name LIKE ('%\"%');\n" "SELECT RAISE(ABORT,'update on raster_columns violates constraint: r_table_name value must be lower case')\n" "WHERE NEW.r_table_name <> lower(NEW.r_table_name);\n" "END;", "CREATE TRIGGER 'raster_columns_r_raster_column_insert'\n" "BEFORE INSERT ON 'raster_columns'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_columns violates constraint: r_raster_column value must not contain a single quote')\n" "WHERE NEW.r_raster_column LIKE ('%''''%');\n" "SELECT RAISE(ABORT,'insert on raster_columns violates constraint: r_raster_column value must not contain a double quote')\n" "WHERE NEW.r_raster_column LIKE ('%\"%');\n" "SELECT RAISE(ABORT,'insert on raster_columns violates constraint: r_raster_column value must be lower case')\n" "WHERE NEW.r_raster_column <> lower(NEW.r_raster_column);\n" "END;", "CREATE TRIGGER 'raster_columns_r_raster_column_update'\n" "BEFORE UPDATE OF r_raster_column ON 'raster_columns'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'update on raster_columns violates constraint: r_raster_column value must not contain a single quote')\n" "WHERE NEW.r_raster_column LIKE ('%''''%');\n" "SELECT RAISE(ABORT,'update on raster_columns violates constraint: r_raster_column value must not contain a double quote')\n" "WHERE NEW.r_raster_column LIKE ('%\"%');\n" "SELECT RAISE(ABORT,'update on raster_columns violates constraint: r_raster_column value must be lower case')\n" "WHERE NEW.r_raster_column <> lower(NEW.r_raster_column);\n" "END;", /* GeoPackage specification Table 23/24 */ /* TODO: see if there is a nicer way to manage this using a VIEW */ "CREATE TABLE tile_table_metadata (\n" "t_table_name TEXT NOT NULL PRIMARY KEY,\n" "is_times_two_zoom INTEGER NOT NULL DEFAULT 1\n" ");", /* The next four triggers are from GeoPackage specification Table 25 */ "CREATE TRIGGER 'tile_table_metadata_t_table_name_insert'\n" "BEFORE INSERT ON 'tile_table_metadata'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, 'insert on table ''tile_table_metadata'' violates constraint: t_table_name not in raster_columns.r_table_name values')\n" "WHERE NOT (NEW.t_table_name IN (SELECT DISTINCT r_table_name FROM raster_columns));\n" "END;", "CREATE TRIGGER 'tile_table_metadata_t_table_name_update'\n" "BEFORE UPDATE OF t_table_name ON 'tile_table_metadata'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, 'update on table ''tile_table_metadata'' violates constraint: t_table_name not in raster_columns.r_table_name values')\n" "WHERE NOT (NEW.t_table_name IN (SELECT DISTINCT r_table_name FROM raster_columns));\n" "END;", "CREATE TRIGGER 'tile_table_metadata_is_times_two_zoom_insert'\n" "BEFORE INSERT ON 'tile_table_metadata'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'insert on tile_table_metadata violates constraint: is_time_two_zoom must be one of 0|1')\n" "WHERE NOT(NEW.is_times_two_zoom IN (0,1));\n" "END;", "CREATE TRIGGER 'tile_table_metadata_is_times_two_zoom_update'\n" "BEFORE UPDATE OF is_times_two_zoom ON 'tile_table_metadata'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update of tile_table_metadata violates constraint: is_time_two_zoom must be one of 0|1')\n" "WHERE NOT(NEW.is_times_two_zoom IN (0,1));\n" "END;", /* GeoPackage specification Table 27/28 */ "CREATE TABLE tile_matrix_metadata (\n" "t_table_name TEXT NOT NULL,\n" "zoom_level INTEGER NOT NULL,\n" "matrix_width INTEGER NOT NULL,\n" "matrix_height INTEGER NOT NULL,\n" "tile_width INTEGER NOT NULL,\n" "tile_height INTEGER NOT NULL,\n" "pixel_x_size DOUBLE NOT NULL,\n" "pixel_y_size DOUBLE NOT NULL,\n" "CONSTRAINT pk_ttm PRIMARY KEY (t_table_name, zoom_level) ON CONFLICT ROLLBACK,\n" "CONSTRAINT fk_ttm_t_table_name FOREIGN KEY (t_table_name) REFERENCES tile_table_metadata(t_table_name));", /* The next ten triggers are from GeoPackage specification Table 25 */ "CREATE TRIGGER 'tile_matrix_metadata_zoom_level_insert'\n" "BEFORE INSERT ON 'tile_matrix_metadata'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, 'insert on table ''tile_matrix_metadata'' violates constraint: zoom_level cannot be less than 0')\n" "WHERE (NEW.zoom_level < 0);\n" "END;", "CREATE TRIGGER 'tile_matrix_metadata_zoom_level_update'\n" "BEFORE UPDATE of zoom_level ON 'tile_matrix_metadata'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, 'update on table ''tile_matrix_metadata'' violates constraint: zoom_level cannot be less than 0')\n" "WHERE (NEW.zoom_level < 0);\n" "END;", "CREATE TRIGGER 'tile_matrix_metadata_matrix_width_insert'\n" "BEFORE INSERT ON 'tile_matrix_metadata'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, 'insert on table ''tile_matrix_metadata'' violates constraint: matrix_width cannot be less than 1')\n" "WHERE (NEW.matrix_width < 1);\n" "END;", "CREATE TRIGGER 'tile_matrix_metadata_matrix_width_update'\n" "BEFORE UPDATE OF matrix_width ON 'tile_matrix_metadata'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, 'update on table ''tile_matrix_metadata'' violates constraint: matrix_width cannot be less than 1')\n" "WHERE (NEW.matrix_width < 1);\n" "END;", "CREATE TRIGGER 'tile_matrix_metadata_matrix_height_insert'\n" "BEFORE INSERT ON 'tile_matrix_metadata'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, 'insert on table ''tile_matrix_metadata'' violates constraint: matrix_height cannot be less than 1')\n" "WHERE (NEW.matrix_height < 1);\n" "END;", "CREATE TRIGGER 'tile_matrix_metadata_matrix_height_update'\n" "BEFORE UPDATE OF matrix_height ON 'tile_matrix_metadata'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, 'update on table ''tile_matrix_metadata'' violates constraint: matrix_height cannot be less than 1')\n" "WHERE (NEW.matrix_height < 1);\n" "END;", "CREATE TRIGGER 'tile_matrix_metadata_pixel_x_size_insert'\n" "BEFORE INSERT ON 'tile_matrix_metadata'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, 'insert on table ''tile_matrix_metadata'' violates constraint: pixel_x_size must be greater than 0')\n" "WHERE NOT (NEW.pixel_x_size > 0);\n" "END;", "CREATE TRIGGER 'tile_matrix_metadata_pixel_x_size_update'\n" "BEFORE UPDATE OF pixel_x_size ON 'tile_matrix_metadata'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, 'update on table ''tile_matrix_metadata'' violates constraint: pixel_x_size must be greater than 0')\n" "WHERE NOT (NEW.pixel_x_size > 0);\n" "END;", "CREATE TRIGGER 'tile_matrix_metadata_pixel_y_size_insert'\n" "BEFORE INSERT ON 'tile_matrix_metadata'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, 'insert on table ''tile_matrix_metadata'' violates constraint: pixel_y_size must be greater than 0')\n" "WHERE NOT (NEW.pixel_y_size > 0);\n" "END;", "CREATE TRIGGER 'tile_matrix_metadata_pixel_y_size_update'\n" "BEFORE UPDATE OF pixel_y_size ON 'tile_matrix_metadata'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, 'update on table ''tile_matrix_metadata'' violates constraint: pixel_y_size must be greater than 0')\n" "WHERE NOT (NEW.pixel_y_size > 0);\n" "END;", /* GeoPackage specification Table 43/45 */ "CREATE TABLE xml_metadata (\n" "id INTEGER CONSTRAINT xm_pk PRIMARY KEY ASC ON CONFLICT ROLLBACK AUTOINCREMENT NOT NULL UNIQUE,\n" "md_scope TEXT NOT NULL DEFAULT 'dataset',\n" "metadata_standard_URI TEXT NOT NULL DEFAULT 'http://schemas.opengis.net/iso/19139/',\n" "metadata BLOB NOT NULL DEFAULT (zeroblob(4))\n" ");", /* The next two triggers are from GeoPackage Table 46 */ "CREATE TRIGGER 'xml_metadata_md_scope_insert'\n" "BEFORE INSERT ON 'xml_metadata'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, 'insert on table xml_metadata violates constraint: md_scope must be one of undefined | fieldSession | collectionSession | series | dataset | featureType | feature | attributeType | attribute | tile | model | catalogue | schema | taxonomy software | service | collectionHardware | nonGeographicDataset | dimensionGroup')\n" "WHERE NOT(NEW.md_scope IN ('undefined','fieldSession','collectionSession','series','dataset','featureType', 'feature','attributeType','attribute','tile','model','catalogue','schema','taxonomy', 'software','service','collectionHardware','nonGeographicDataset','dimensionGroup'));\n" "END;", "CREATE TRIGGER 'xml_metadata_md_scope_update'\n" "BEFORE UPDATE OF 'md_scope' ON 'xml_metadata'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, 'update on table xml_metadata violates constraint: md_scope must be one of undefined | fieldSession | collectionSession | series | dataset | featureType | feature | attributeType | attribute | tile | model | catalogue | schema | taxonomy software | service | collectionHardware | nonGeographicDataset | dimensionGroup')\n" "WHERE NOT(NEW.md_scope IN ('undefined','fieldSession','collectionSession','series','dataset','featureType', 'feature','attributeType','attribute','tile','model','catalogue','schema','taxonomy', 'software','service','collectionHardware','nonGeographicDataset','dimensionGroup'));\n" "END;", /* GeoPackage Table 47 */ "INSERT INTO xml_metadata VALUES (0, 'undefined', 'http://schemas.opengis.net/iso/19139/', (zeroblob(4)));", /* GeoPackage specification Table 48/49 */ "CREATE TABLE metadata_reference (" "reference_scope TEXT NOT NULL DEFAULT \"table\"," "table_name TEXT NOT NULL DEFAULT \"undefined\"," "column_name TEXT NOT NULL DEFAULT \"undefined\"," "row_id_value INTEGER NOT NULL DEFAULT 0," "timestamp TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ',CURRENT_TIMESTAMP))," "md_file_id INTEGER NOT NULL DEFAULT 0," "md_parent_id INTEGER NOT NULL DEFAULT 0," "CONSTRAINT crmr_mfi_fk FOREIGN KEY (md_file_id) REFERENCES xml_metadata(id)," "CONSTRAINT crmr_mpi_fk FOREIGN KEY (md_parent_id) REFERENCES xml_metadata(id)" ");", /* The next 10 triggers are from GeoPackage specification Table 50 */ "CREATE TRIGGER 'metadata_reference_reference_scope_insert'\n" "BEFORE INSERT ON 'metadata_reference'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, 'insert on table metadata_reference violates constraint: reference_scope must be one of \"table\", \"column\", \"row\", \"row/col\"')\n" "WHERE NOT NEW.reference_scope IN ('table','column','row','row/col');\n" "END;", "CREATE TRIGGER 'metadata_reference_reference_scope_update'\n" "BEFORE UPDATE OF 'reference_scope' ON 'metadata_reference'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, 'update on table metadata_reference violates constraint: referrence_scope must be one of \"table\", \"column\", \"row\", \"row/col\"')\n" "WHERE NOT NEW.reference_scope IN ('table','column','row','row/col');\n" "END;", "CREATE TRIGGER 'metadata_reference_table_name_insert'\n" "BEFORE INSERT ON 'metadata_reference'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, 'insert on table metadata_reference violates constraint: table_name must be the name of a table in geometry_columns or raster_columns')\n" "WHERE NOT NEW.table_name IN (\n" "SELECT f_table_name AS table_name FROM geometry_columns\n" "UNION ALL\n" "SELECT r_table_name AS table_name FROM raster_columns);\n" "END;", "CREATE TRIGGER 'metadata_reference_table_name_update'\n" "BEFORE UPDATE OF 'table_name' ON 'metadata_reference'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, 'update on table metadata_reference violates constraint: table_name must be the name of a table in geometry_columns or raster_columns')\n" "WHERE NOT NEW.table_name IN (\n" "SELECT f_table_name AS table_name FROM geometry_columns\n" "UNION ALL\n" "SELECT r_table_name AS table_name FROM raster_columns);\n" "END;", "CREATE TRIGGER 'metadata_reference_column_name_insert'\n" "BEFORE INSERT ON 'metadata_reference'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, 'insert on table metadata_reference violates constraint: column name must be \"undefined\" when reference_scope is \"table\" or \"row\"')\n" "WHERE (NEW.reference_scope IN ('table','row')\n" "AND NEW.column_name <> 'undefined');\n" "SELECT RAISE(ROLLBACK, 'insert on table metadata_reference violates constraint: column name must be defined for the specified table when reference_scope is \"column\" or \"row/col\"')\n" "WHERE (NEW.reference_scope IN ('column','row/col')\n" "AND NOT NEW.table_name IN (\n" "SELECT name FROM SQLITE_MASTER WHERE type = 'table'\n" "AND name = NEW.table_name\n" "AND sql LIKE ('%' || NEW.column_name || '%')));\n" "END;", "CREATE TRIGGER 'metadata_reference_column_name_update'\n" "BEFORE UPDATE OF column_name ON 'metadata_reference'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, 'update on table metadata_reference violates constraint: column name must be \"undefined\" when reference_scope is \"table\" or \"row\"')\n" "WHERE (NEW.reference_scope IN ('table','row')\n" "AND NEW.column_name <> 'undefined');\n" "SELECT RAISE(ROLLBACK, 'update on table metadata_reference violates constraint: column name must be defined for the specified table when reference_scope is \"column\" or \"row/col\"')\n" "WHERE (NEW.reference_scope IN ('column','row/col')\n" "AND NOT NEW.table_name IN (\n" "SELECT name FROM SQLITE_MASTER WHERE type = 'table'\n" "AND name = NEW.table_name\n" "AND sql LIKE ('%' || NEW.column_name || '%')));\n" "END;", "CREATE TRIGGER 'metadata_reference_row_id_value_insert'\n" "BEFORE INSERT ON 'metadata_reference'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, 'insert on table metadata_reference violates constraint: row_id_value must be 0 when reference_scope is \"table\" or \"column\"')\n" "WHERE NEW.reference_scope IN ('table','column')\n" "AND NEW.row_id_value <> 0;\n" "SELECT RAISE(ROLLBACK, 'insert on table metadata_reference violates constraint: row_id_value must exist in specified table when reference_scope is \"row\" or \"row/col\"')\n" "WHERE NEW.reference_scope IN ('row','row/col')\n" "AND NOT EXISTS (SELECT rowid\n" "FROM (SELECT NEW.table_name AS table_name) WHERE rowid = NEW.row_id_value);\n" "END;", "CREATE TRIGGER 'metadata_reference_row_id_value_update'\n" "BEFORE UPDATE OF 'row_id_value' ON 'metadata_reference'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, 'update on table metadata_reference violates constraint: row_id_value must be 0 when reference_scope is \"table\" or \"column\"')\n" "WHERE NEW.reference_scope IN ('table','column')\n" "AND NEW.row_id_value <> 0;\n" "SELECT RAISE(ROLLBACK, 'update on table metadata_reference violates constraint: row_id_value must exist in specified table when reference_scope is \"row\" or \"row/col\"')\n" "WHERE NEW.reference_scope IN ('row','row/col')\n" "AND NOT EXISTS (SELECT rowid\n" "FROM (SELECT NEW.table_name AS table_name) WHERE rowid = NEW.row_id_value);\n" "END;", "CREATE TRIGGER 'metadata_reference_timestamp_insert'\n" "BEFORE INSERT ON 'metadata_reference'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, 'insert on table metadata_reference violates constraint: timestamp must be a valid time in ISO 8601 \"yyyy-mm-ddThh-mm-ss.cccZ\" form')\n" "WHERE NOT (NEW.timestamp GLOB '[1-2][0-9][0-9][0-9]-[0-1][0-9]-[1-3][1-9]T[0-2][0-9]:[0-5][0-9]:[0-5][0-9].[0-9][0-9][0-9]Z'\n" "AND strftime('%s',NEW.timestamp) NOT NULL);\n" "END;", "CREATE TRIGGER 'metadata_reference_timestamp_update'\n" "BEFORE UPDATE OF 'timestamp' ON 'metadata_reference'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, 'update on table metadata_reference violates constraint: timestamp must be a valid time in ISO 8601 \"yyyy-mm-ddThh-mm-ss.cccZ\" form')\n" "WHERE NOT (NEW.timestamp GLOB '[1-2][0-9][0-9][0-9]-[0-1][0-9]-[1-3][1-9]T[0-2][0-9]:[0-5][0-9]:[0-5][0-9].[0-9][0-9][0-9]Z'\n" "AND strftime('%s',NEW.timestamp) NOT NULL);\n" "END;", "CREATE TABLE manifest (\n" "id TEXT NOT NULL PRIMARY KEY,\n" "manifest TEXT NOT NULL\n" ");", NULL }; for (i = 0; tableSchemas[i] != NULL; ++i) { sql_stmt = sqlite3_mprintf("%s", tableSchemas[i]); sqlite = sqlite3_context_db_handle (context); ret = sqlite3_exec (sqlite, sql_stmt, NULL, NULL, &errMsg); sqlite3_free(sql_stmt); if (ret != SQLITE_OK) { sqlite3_result_error(context, errMsg, -1); sqlite3_free(errMsg); return; } } } #endif libspatialite-4.1.1/src/geopackage/gpkgCreateTilesTable.c0000664000175000017500000001125612163502133020335 00000000000000/* GeoPackage extensions for SpatiaLite / SQLite Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage Extensions The Initial Developer of the Original Code is Brad Hards (bradh@frogmouth.net) Portions created by the Initial Developer are Copyright (C) 2012 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include "spatialite/geopackage.h" #include "config.h" #include "geopackage_internal.h" #ifdef ENABLE_GEOPACKAGE GEOPACKAGE_DECLARE void fnct_gpkgCreateTilesTable (sqlite3_context * context, int argc __attribute__ ((unused)), sqlite3_value ** argv) { /* SQL function: / gpkgCreateTilesTable(table_name, srid) / / Create a new (empty) Tiles table and the associated metadata table, and the triggers for those tables / It also adds in the matching entries into geopackage_contents, raster_columns and tile_table_metadata / / TODO: consider adding description and identifier to geopackage_contents / / returns nothing on success, raises exception on error / / This function assumes usual tile conventions, including that the tiles are power-of-two-zoom. / */ const unsigned char *table; int srid = -1; char *sql_stmt = NULL; sqlite3 *sqlite = NULL; char *errMsg = NULL; int ret = 0; int i = 0; const char* tableSchemas[] = { "INSERT INTO geopackage_contents (table_name, data_type) VALUES (%Q, 'tiles')", "INSERT INTO tile_table_metadata VALUES (%Q, 1)", "CREATE TABLE %q (\n" "id INTEGER PRIMARY KEY AUTOINCREMENT,\n" "zoom_level INTEGER NOT NULL DEFAULT 0,\n" "tile_column INTEGER NOT NULL DEFAULT 0,\n" "tile_row INTEGER NOT NULL DEFAULT 0,\n" "tile_data BLOB NOT NULL,\n" "UNIQUE (zoom_level, tile_column, tile_row))", "CREATE TABLE %q_rt_metadata (\n" "row_id_value INTEGER NOT NULL,\n" "r_raster_column TEXT NOT NULL DEFAULT 'tile_data',\n" "georectification INTEGER NOT NULL DEFAULT 0,\n" "min_x DOUBLE NOT NULL DEFAULT -180.0,\n" "min_y DOUBLE NOT NULL DEFAULT -90.0,\n" "max_x DOUBLE NOT NULL DEFAULT 180.0,\n" "max_y DOUBLE NOT NULL DEFAULT 90.0,\n" "compr_qual_factor INTEGER NOT NULL DEFAULT 100,\n" "CONSTRAINT pk_smt_rm PRIMARY KEY (row_id_value, r_raster_column) ON CONFLICT ROLLBACK)", "SELECT gpkgAddTileTriggers(%Q)", "SELECT gpkgAddRtMetadataTriggers(%Q)", NULL }; if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_error(context, "gpkgCreateTilesTable() error: argument 1 [table] is not of the String type", -1); return; } table = sqlite3_value_text (argv[0]); if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_error(context, "gpkgCreateTilesTable() error: argument 2 [srid] is not of the integer type", -1); return; } srid = sqlite3_value_int (argv[1]); sqlite = sqlite3_context_db_handle (context); sql_stmt = sqlite3_mprintf("INSERT INTO raster_columns (r_table_name, r_raster_column, georectification, srid) VALUES (%Q, 'tile_data', 1, %i)", table, srid); ret = sqlite3_exec (sqlite, sql_stmt, NULL, NULL, &errMsg); sqlite3_free(sql_stmt); if (ret != SQLITE_OK) { sqlite3_result_error(context, errMsg, -1); sqlite3_free(errMsg); return; } for (i = 0; tableSchemas[i] != NULL; ++i) { sql_stmt = sqlite3_mprintf(tableSchemas[i], table); ret = sqlite3_exec (sqlite, sql_stmt, NULL, NULL, &errMsg); sqlite3_free(sql_stmt); if (ret != SQLITE_OK) { sqlite3_result_error(context, errMsg, -1); sqlite3_free(errMsg); return; } } } #endif libspatialite-4.1.1/src/geopackage/gpkg_point_to_tile.c0000664000175000017500000001453112163502133020167 00000000000000/* GeoPackage extensions for SpatiaLite / SQLite Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage Extensions The Initial Developer of the Original Code is Brad Hards (bradh@frogmouth.net) Portions created by the Initial Developer are Copyright (C) 2012 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include "spatialite/geopackage.h" #include "config.h" #include "geopackage_internal.h" #ifdef ENABLE_GEOPACKAGE GEOPACKAGE_DECLARE void fnct_gpkgPointToTile (sqlite3_context * context, int argc UNUSED, sqlite3_value ** argv) { /* SQL function: / gpkgPointToTile (table, srid, x, y, zoom) / / Returns tile from tile matrix for specified srid, point and zoom level */ const unsigned char *table; int srid = 0; int target_srid = -1; double x_coord, y_coord; int int_value; int zoom; char *sql_stmt = NULL; sqlite3 *sqlite = NULL; sqlite3_stmt *stmt; int ret; if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_error(context, "gpkgPointToTile() error: argument 1 [table] is not of the String type", -1); return; } table = sqlite3_value_text (argv[0]); if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_error(context, "gpkgPointToTile() error: argument 2 [srid] is not of the integer type", -1); return; } srid = sqlite3_value_int (argv[1]); if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) { x_coord = sqlite3_value_double (argv[2]); } else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); x_coord = int_value; } else { sqlite3_result_error(context, "gpkgPointToTile() error: argument 3 [x coordinate] is not of a numerical type", -1); return; } if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) { y_coord = sqlite3_value_double (argv[3]); } else if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[3]); y_coord = int_value; } else { sqlite3_result_error(context, "gpkgPointToTile() error: argument 4 [y coordinate] is not of a numerical type", -1); return; } if (sqlite3_value_type (argv[4]) != SQLITE_INTEGER) { sqlite3_result_error(context, "gpkgPointToTile() error: argument 5 [zoom level] is not of the integer type", -1); return; } zoom = sqlite3_value_int (argv[4]); /* project into right coordinate basis if the input isn't already there */ /* Get the target table SRID */ sql_stmt = sqlite3_mprintf("SELECT srid FROM raster_columns WHERE r_table_name=%Q AND r_raster_column='tile_data'", table); sqlite = sqlite3_context_db_handle (context); ret = sqlite3_prepare_v2 (sqlite, sql_stmt, strlen(sql_stmt), &stmt, NULL); sqlite3_free(sql_stmt); if (ret != SQLITE_OK) { sqlite3_result_error(context, "gpkgPointToTile() error: failed to prepare SQL SRID select statement", -1); return; } ret = sqlite3_step (stmt); if (ret != SQLITE_ROW) { sqlite3_finalize (stmt); sqlite3_result_error(context, "gpkgPointToTile() error: Could not find SRID for specified table", -1); return; } if (sqlite3_column_type (stmt, 0) != SQLITE_INTEGER) { sqlite3_finalize (stmt); sqlite3_result_error(context, "gpkgPointToTile() error: SRID for table is not an integer. Corrupt GeoPackage?", -1); return; } target_srid = sqlite3_column_int(stmt, 0); sqlite3_finalize (stmt); if (srid != target_srid) { /* project input coordinates */ sql_stmt = sqlite3_mprintf("SELECT ST_X(projected),ST_Y(projected) FROM (SELECT Transform(MakePoint(%f, %f, %i), %i) AS projected)", x_coord, y_coord, srid, target_srid); sqlite = sqlite3_context_db_handle (context); ret = sqlite3_prepare_v2 (sqlite, sql_stmt, strlen(sql_stmt), &stmt, NULL); sqlite3_free(sql_stmt); if (ret != SQLITE_OK) { sqlite3_result_error(context, "gpkgPointToTile() error: failed to prepare SQL Transform statement", -1); return; } ret = sqlite3_step (stmt); if (ret == SQLITE_ROW) { if ((sqlite3_column_type (stmt, 0) == SQLITE_FLOAT) && (sqlite3_column_type (stmt, 1) == SQLITE_FLOAT)) { x_coord = sqlite3_column_double(stmt, 0); y_coord = sqlite3_column_double(stmt, 1); } } ret = sqlite3_finalize (stmt); } /* now we can get the tile blob */ sql_stmt = sqlite3_mprintf("SELECT tile_data FROM \"%q\",\"%s_rt_metadata\" WHERE %q.id=%s_rt_metadata.id AND zoom_level=%i AND min_x <= %g AND max_x >=%g AND min_y <= %g AND max_y >= %g", table, table, table, table, zoom, x_coord, x_coord, y_coord, y_coord); sqlite = sqlite3_context_db_handle (context); ret = sqlite3_prepare_v2 (sqlite, sql_stmt, strlen(sql_stmt), &stmt, NULL); sqlite3_free(sql_stmt); if (ret != SQLITE_OK) { sqlite3_result_error(context, "gpkgPointToTile() error: failed to prepare SQL statement", -1); return; } ret = sqlite3_step (stmt); if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 0) == SQLITE_BLOB) { sqlite3_result_value (context, sqlite3_column_value(stmt, 0)); } } ret = sqlite3_finalize (stmt); } #endif libspatialite-4.1.1/src/geopackage/gpkg_add_tile_triggers.c0000664000175000017500000001343612163502133020775 00000000000000/* GeoPackage extensions for SpatiaLite / SQLite Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage Extensions The Initial Developer of the Original Code is Brad Hards (bradh@frogmouth.net) Portions created by the Initial Developer are Copyright (C) 2012 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include "spatialite/geopackage.h" #include "config.h" #include "geopackage_internal.h" #ifdef ENABLE_GEOPACKAGE GEOPACKAGE_DECLARE void fnct_gpkgAddTileTriggers (sqlite3_context * context, int argc __attribute__ ((unused)), sqlite3_value ** argv) { /* SQL function: / gpkgAddTileTriggers(table) / / Adds Geopackage tile table triggers for the named table / returns nothing on success, raises exception on error / */ const unsigned char *table; char *sql_stmt = NULL; sqlite3 *sqlite = NULL; char *errMsg = NULL; int ret = 0; int i = 0; /* Note: the code below relies on there being twelve (or less) varargs, all of which are the table name */ const char* trigger_stmts[] = { "CREATE TRIGGER \"%s_zoom_insert\"\n" "BEFORE INSERT ON \"%s\"\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'insert on table ''%s'' violates constraint: zoom_level not specified for table in tile_matrix_metadata')\n" "WHERE NOT (NEW.zoom_level IN (SELECT zoom_level FROM tile_matrix_metadata WHERE t_table_name = \"%s\"));\n" "END", "CREATE TRIGGER \"%s_zoom_update\"\n" "BEFORE UPDATE OF zoom_level ON \"%s\"\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on table ''%s'' violates constraint: zoom_level not specified for table in tile_matrix_metadata')\n" "WHERE NOT (NEW.zoom_level IN (SELECT zoom_level FROM tile_matrix_metadata WHERE t_table_name = \"%s\"));\n" "END", "CREATE TRIGGER \"%s_tile_column_insert\"\n" "BEFORE INSERT ON \"%s\"\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'insert on table ''%s'' violates constraint: tile_column cannot be < 0')\n" "WHERE (NEW.tile_column < 0) ;\n" "SELECT RAISE(ABORT, 'insert on table ''%s'' violates constraint: tile_column must be < matrix_width specified for table and zoom level in tile_matrix_metadata')\n" "WHERE NOT (NEW.tile_column < (SELECT matrix_width FROM tile_matrix_metadata WHERE t_table_name = '%s' AND zoom_level = NEW.zoom_level));\n" "END", "CREATE TRIGGER \"%s_tile_column_update\"\n" "BEFORE UPDATE OF tile_column ON \"%s\"\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on table ''%s'' violates constraint: tile_column cannot be < 0')\n" "WHERE (NEW.tile_column < 0) ;\n" "SELECT RAISE(ABORT, 'update on table ''%s'' violates constraint: tile_column must be < matrix_width specified for table and zoom level in tile_matrix_metadata')\n" "WHERE NOT (NEW.tile_column < (SELECT matrix_width FROM tile_matrix_metadata WHERE t_table_name = '%s' AND zoom_level = NEW.zoom_level));\n" "END", "CREATE TRIGGER \"%s_tile_row_insert\"\n" "BEFORE INSERT ON \"%s\"\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'insert on table ''%s'' violates constraint: tile_row cannot be < 0')\n" "WHERE (NEW.tile_row < 0) ;\n" "SELECT RAISE(ABORT, 'insert on table ''%s'' violates constraint: tile_row must be < matrix_height specified for table and zoom level in tile_matrix_metadata')\n" "WHERE NOT (NEW.tile_row < (SELECT matrix_height FROM tile_matrix_metadata WHERE t_table_name = '%s' AND zoom_level = NEW.zoom_level));\n" "END", "CREATE TRIGGER \"%s_tile_row_update\"\n" "BEFORE UPDATE OF tile_row ON \"%s\"\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on table ''%s'' violates constraint: tile_row cannot be < 0')\n" "WHERE (NEW.tile_row < 0) ;\n" "SELECT RAISE(ABORT, 'update on table ''%s'' violates constraint: tile_row must be < matrix_height specified for table and zoom level in tile_matrix_metadata')\n" "WHERE NOT (NEW.tile_row < (SELECT matrix_height FROM tile_matrix_metadata WHERE t_table_name = '%s' AND zoom_level = NEW.zoom_level));\n" "END", NULL }; if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_error(context, "gpkgAddTileTriggers() error: argument 1 [table] is not of the String type", -1); return; } table = sqlite3_value_text (argv[0]); for (i = 0; trigger_stmts[i] != NULL; ++i) { sql_stmt = sqlite3_mprintf(trigger_stmts[i], table, table, table, table, table, table, table, table, table, table, table, table); sqlite = sqlite3_context_db_handle (context); ret = sqlite3_exec (sqlite, sql_stmt, NULL, NULL, &errMsg); sqlite3_free(sql_stmt); if (ret != SQLITE_OK) { sqlite3_result_error(context, errMsg, -1); sqlite3_free(errMsg); return; } } } #endif libspatialite-4.1.1/src/geopackage/gpkg_get_normal_zoom.c0000664000175000017500000001060712163502133020512 00000000000000/* GeoPackage extensions for SpatiaLite / SQLite Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage Extensions The Initial Developer of the Original Code is Brad Hards (bradh@frogmouth.net) Portions created by the Initial Developer are Copyright (C) 2012 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include "spatialite/geopackage.h" #include "config.h" #include "geopackage_internal.h" #ifdef ENABLE_GEOPACKAGE GEOPACKAGE_DECLARE void fnct_gpkgGetNormalZoom (sqlite3_context * context, int argc UNUSED, sqlite3_value ** argv) { /* SQL function: / gpkgGetNormalZoom(tile_table_name, inverted_zoom_level) / / Gets the normal integer zoom level for data stored in the specified table. / Raises a SQL exception if inverted zoom level is outside the range of / tile_matrix_metadata table normal zoom levels defined for the tile_table / / Note that this function can also be used to convert from a normal zoom level / to an inverted zoom level - this conversion is symmetric. */ const unsigned char *table; int inverted_zoom_level; long max_zoom_level; long normal_zoom_level; char * sql_stmt = NULL; sqlite3 *sqlite = NULL; char *errMsg = NULL; char **results; char *endptr = 0; int rows = 0; int columns = 0; int ret = 0; if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_error(context, "gpkgGetNormalZoom() error: argument 1 [tile_table_name] is not of the String type", -1); return; } table = sqlite3_value_text (argv[0]); if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_error(context, "gpkgGetNormalZoom() error: argument 2 [inverted zoom level] is not of the integer type", -1); return; } inverted_zoom_level = sqlite3_value_int (argv[1]); sql_stmt = sqlite3_mprintf("SELECT MAX(zoom_level) FROM tile_matrix_metadata WHERE t_table_name=\"%q\"", table); sqlite = sqlite3_context_db_handle (context); ret = sqlite3_get_table (sqlite, sql_stmt, &results, &rows, &columns, &errMsg); sqlite3_free(sql_stmt); if (ret != SQLITE_OK) { sqlite3_result_error (context, errMsg, -1); sqlite3_free (errMsg); return; } if ((rows != 1) || (results[1 * columns + 0] == NULL)) { sqlite3_free_table(results); sqlite3_result_error (context, "gpkgGetNormalZoom: tile table not found in tile_matrix_metadata", -1); sqlite3_free (errMsg); return; } errno = 0; max_zoom_level = strtol(results[1 * columns + 0], &endptr, 10); if ((endptr == results[1 * columns + 0]) || (max_zoom_level < 0) || (errno == ERANGE && max_zoom_level == LONG_MAX) || (errno != 0 && max_zoom_level == 0)) { sqlite3_free_table (results); sqlite3_result_error (context, "gpkgGetNormalZoom: could not parse result (corrupt GeoPackage?)", -1); return; } sqlite3_free_table (results); if ((inverted_zoom_level > max_zoom_level) || (inverted_zoom_level < 0)) { sqlite3_result_error (context, "gpkgGetNormalZoom: input zoom level number outside of valid zoom levels", -1); return; } normal_zoom_level = max_zoom_level - inverted_zoom_level; sqlite3_result_int (context, normal_zoom_level); } #endiflibspatialite-4.1.1/src/geopackage/gpkgGetImageType.c0000664000175000017500000000651612163502133017510 00000000000000/* GeoPackage extensions for SpatiaLite / SQLite Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage Extensions The Initial Developer of the Original Code is Brad Hards (bradh@frogmouth.net) Portions created by the Initial Developer are Copyright (C) 2012 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include "spatialite/geopackage.h" #include #include "config.h" #include "geopackage_internal.h" #ifdef ENABLE_GEOPACKAGE GEOPACKAGE_DECLARE void fnct_gpkgGetImageType (sqlite3_context * context, int argc UNUSED, sqlite3_value ** argv) { /* SQL function: / gpkgGetImageType(blob) / / Gets the image type (as a string) of the blob argument, or "unknown" if / the image type is not one of the PNG, JPEG, TIFF or WebP format types that / are supported in GeoPackage. This function raises exception on error (e.g. / wrong argument type). / / The result will be one of: / - "png" - for PNG / - "jpeg" - for JPEG / - "tiff" - for TIFF / - "x-webp" - for WebP / These are the mime type for the image format (without the "image/" prefix) / */ unsigned char *p_blob = NULL; int n_bytes = 0; int blobType; if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_error(context, "gpkgGetImageType() error: argument 1 [image blob] is not of the BLOB type", -1); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); blobType = gaiaGuessBlobType(p_blob, n_bytes); switch (blobType) { case GAIA_TIFF_BLOB: sqlite3_result_text(context, "tiff", strlen("tiff"), SQLITE_TRANSIENT); break; case GAIA_PNG_BLOB: sqlite3_result_text(context, "png", strlen("png"), SQLITE_TRANSIENT); break; case GAIA_JPEG_BLOB: sqlite3_result_text(context, "jpeg", strlen("jpeg"), SQLITE_TRANSIENT); break; case GAIA_WEBP_BLOB: sqlite3_result_text(context, "x-webp", strlen("x-webp"), SQLITE_TRANSIENT); break; default: sqlite3_result_text(context, "unknown", strlen("unknown"), SQLITE_TRANSIENT); break; } } #endif libspatialite-4.1.1/src/srsinit/0000775000175000017500000000000012163503225013627 500000000000000libspatialite-4.1.1/src/srsinit/epsg_inlined_36.c0000664000175000017500000047233512163502133016676 00000000000000/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_36 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def (filter, first, last, 31986, "epsg", 31986, "SIRGAS 1995 / UTM zone 17N"); add_proj4text (p, 0, "+proj=utm +zone=17 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 1995 / UTM zone 17N\",GEOGCS[\"SIRGAS 19"); add_srs_wkt (p, 1, "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); add_srs_wkt (p, 2, "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); add_srs_wkt (p, 8, "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); add_srs_wkt (p, 9, "an\",-81],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",500000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 11, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea"); add_srs_wkt (p, 12, "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"31986\"]]"); p = add_epsg_def (filter, first, last, 31987, "epsg", 31987, "SIRGAS 1995 / UTM zone 18N"); add_proj4text (p, 0, "+proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 1995 / UTM zone 18N\",GEOGCS[\"SIRGAS 19"); add_srs_wkt (p, 1, "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); add_srs_wkt (p, 2, "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); add_srs_wkt (p, 8, "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); add_srs_wkt (p, 9, "an\",-75],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",500000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 11, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea"); add_srs_wkt (p, 12, "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"31987\"]]"); p = add_epsg_def (filter, first, last, 31988, "epsg", 31988, "SIRGAS 1995 / UTM zone 19N"); add_proj4text (p, 0, "+proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 1995 / UTM zone 19N\",GEOGCS[\"SIRGAS 19"); add_srs_wkt (p, 1, "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); add_srs_wkt (p, 2, "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); add_srs_wkt (p, 8, "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); add_srs_wkt (p, 9, "an\",-69],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",500000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 11, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea"); add_srs_wkt (p, 12, "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"31988\"]]"); p = add_epsg_def (filter, first, last, 31989, "epsg", 31989, "SIRGAS 1995 / UTM zone 20N"); add_proj4text (p, 0, "+proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 1995 / UTM zone 20N\",GEOGCS[\"SIRGAS 19"); add_srs_wkt (p, 1, "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); add_srs_wkt (p, 2, "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); add_srs_wkt (p, 8, "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); add_srs_wkt (p, 9, "an\",-63],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",500000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 11, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea"); add_srs_wkt (p, 12, "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"31989\"]]"); p = add_epsg_def (filter, first, last, 31990, "epsg", 31990, "SIRGAS 1995 / UTM zone 21N"); add_proj4text (p, 0, "+proj=utm +zone=21 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 1995 / UTM zone 21N\",GEOGCS[\"SIRGAS 19"); add_srs_wkt (p, 1, "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); add_srs_wkt (p, 2, "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); add_srs_wkt (p, 8, "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); add_srs_wkt (p, 9, "an\",-57],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",500000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 11, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea"); add_srs_wkt (p, 12, "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"31990\"]]"); p = add_epsg_def (filter, first, last, 31991, "epsg", 31991, "SIRGAS 1995 / UTM zone 22N"); add_proj4text (p, 0, "+proj=utm +zone=22 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 1995 / UTM zone 22N\",GEOGCS[\"SIRGAS 19"); add_srs_wkt (p, 1, "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); add_srs_wkt (p, 2, "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); add_srs_wkt (p, 8, "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); add_srs_wkt (p, 9, "an\",-51],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",500000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 11, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea"); add_srs_wkt (p, 12, "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"31991\"]]"); p = add_epsg_def (filter, first, last, 31992, "epsg", 31992, "SIRGAS 1995 / UTM zone 17S"); add_proj4text (p, 0, "+proj=utm +zone=17 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 1995 / UTM zone 17S\",GEOGCS[\"SIRGAS 19"); add_srs_wkt (p, 1, "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); add_srs_wkt (p, 2, "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); add_srs_wkt (p, 8, "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); add_srs_wkt (p, 9, "an\",-81],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",500000],PARAMETER[\"false_northing\",100"); add_srs_wkt (p, 11, "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 12, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"31992\"]]"); p = add_epsg_def (filter, first, last, 31993, "epsg", 31993, "SIRGAS 1995 / UTM zone 18S"); add_proj4text (p, 0, "+proj=utm +zone=18 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 1995 / UTM zone 18S\",GEOGCS[\"SIRGAS 19"); add_srs_wkt (p, 1, "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); add_srs_wkt (p, 2, "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); add_srs_wkt (p, 8, "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); add_srs_wkt (p, 9, "an\",-75],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",500000],PARAMETER[\"false_northing\",100"); add_srs_wkt (p, 11, "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 12, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"31993\"]]"); p = add_epsg_def (filter, first, last, 31994, "epsg", 31994, "SIRGAS 1995 / UTM zone 19S"); add_proj4text (p, 0, "+proj=utm +zone=19 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 1995 / UTM zone 19S\",GEOGCS[\"SIRGAS 19"); add_srs_wkt (p, 1, "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); add_srs_wkt (p, 2, "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); add_srs_wkt (p, 8, "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); add_srs_wkt (p, 9, "an\",-69],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",500000],PARAMETER[\"false_northing\",100"); add_srs_wkt (p, 11, "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 12, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"31994\"]]"); p = add_epsg_def (filter, first, last, 31995, "epsg", 31995, "SIRGAS 1995 / UTM zone 20S"); add_proj4text (p, 0, "+proj=utm +zone=20 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 1995 / UTM zone 20S\",GEOGCS[\"SIRGAS 19"); add_srs_wkt (p, 1, "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); add_srs_wkt (p, 2, "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); add_srs_wkt (p, 8, "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); add_srs_wkt (p, 9, "an\",-63],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",500000],PARAMETER[\"false_northing\",100"); add_srs_wkt (p, 11, "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 12, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"31995\"]]"); p = add_epsg_def (filter, first, last, 31996, "epsg", 31996, "SIRGAS 1995 / UTM zone 21S"); add_proj4text (p, 0, "+proj=utm +zone=21 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 1995 / UTM zone 21S\",GEOGCS[\"SIRGAS 19"); add_srs_wkt (p, 1, "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); add_srs_wkt (p, 2, "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); add_srs_wkt (p, 8, "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); add_srs_wkt (p, 9, "an\",-57],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",500000],PARAMETER[\"false_northing\",100"); add_srs_wkt (p, 11, "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 12, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"31996\"]]"); p = add_epsg_def (filter, first, last, 31997, "epsg", 31997, "SIRGAS 1995 / UTM zone 22S"); add_proj4text (p, 0, "+proj=utm +zone=22 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 1995 / UTM zone 22S\",GEOGCS[\"SIRGAS 19"); add_srs_wkt (p, 1, "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); add_srs_wkt (p, 2, "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); add_srs_wkt (p, 8, "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); add_srs_wkt (p, 9, "an\",-51],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",500000],PARAMETER[\"false_northing\",100"); add_srs_wkt (p, 11, "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 12, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"31997\"]]"); p = add_epsg_def (filter, first, last, 31998, "epsg", 31998, "SIRGAS 1995 / UTM zone 23S"); add_proj4text (p, 0, "+proj=utm +zone=23 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 1995 / UTM zone 23S\",GEOGCS[\"SIRGAS 19"); add_srs_wkt (p, 1, "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); add_srs_wkt (p, 2, "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); add_srs_wkt (p, 8, "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); add_srs_wkt (p, 9, "an\",-45],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",500000],PARAMETER[\"false_northing\",100"); add_srs_wkt (p, 11, "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 12, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"31998\"]]"); p = add_epsg_def (filter, first, last, 31999, "epsg", 31999, "SIRGAS 1995 / UTM zone 24S"); add_proj4text (p, 0, "+proj=utm +zone=24 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 1995 / UTM zone 24S\",GEOGCS[\"SIRGAS 19"); add_srs_wkt (p, 1, "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); add_srs_wkt (p, 2, "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); add_srs_wkt (p, 8, "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); add_srs_wkt (p, 9, "an\",-39],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",500000],PARAMETER[\"false_northing\",100"); add_srs_wkt (p, 11, "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 12, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"31999\"]]"); p = add_epsg_def (filter, first, last, 32000, "epsg", 32000, "SIRGAS 1995 / UTM zone 25S"); add_proj4text (p, 0, "+proj=utm +zone=25 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 1995 / UTM zone 25S\",GEOGCS[\"SIRGAS 19"); add_srs_wkt (p, 1, "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); add_srs_wkt (p, 2, "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); add_srs_wkt (p, 8, "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); add_srs_wkt (p, 9, "an\",-33],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",500000],PARAMETER[\"false_northing\",100"); add_srs_wkt (p, 11, "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 12, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"32000\"]]"); p = add_epsg_def (filter, first, last, 32001, "epsg", 32001, "NAD27 / Montana North"); add_proj4text (p, 0, "+proj=lcc +lat_1=48.71666666666667 +lat_2=47.85 +lat_0=4"); add_proj4text (p, 1, "7 +lon_0=-109.5 +x_0=609601.2192024384 +y_0=0 +datum=NAD"); add_proj4text (p, 2, "27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Montana North\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],P"); add_srs_wkt (p, 7, "ARAMETER[\"standard_parallel_1\",48.71666666666667],PARA"); add_srs_wkt (p, 8, "METER[\"standard_parallel_2\",47.85],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",47],PARAMETER[\"central_meridian\",-109.5]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",2000000],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",0],UNIT[\"US survey foot\",0.3048006096012192"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"32001\"]]"); p = add_epsg_def (filter, first, last, 32002, "epsg", 32002, "NAD27 / Montana Central"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.88333333333333 +lat_2=46.45 +lat_0=4"); add_proj4text (p, 1, "5.83333333333334 +lon_0=-109.5 +x_0=609601.2192024384 +y"); add_proj4text (p, 2, "_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Montana Central\",GEOGCS[\"NAD27\",DATU"); add_srs_wkt (p, 1, "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); add_srs_wkt (p, 2, ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 7, "PARAMETER[\"standard_parallel_1\",47.88333333333333],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_2\",46.45],PARAMETER[\"latitu"); add_srs_wkt (p, 9, "de_of_origin\",45.83333333333334],PARAMETER[\"central_me"); add_srs_wkt (p, 10, "ridian\",-109.5],PARAMETER[\"false_easting\",2000000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0."); add_srs_wkt (p, 12, "3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); add_srs_wkt (p, 13, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32002\"]]"); p = add_epsg_def (filter, first, last, 32003, "epsg", 32003, "NAD27 / Montana South"); add_proj4text (p, 0, "+proj=lcc +lat_1=46.4 +lat_2=44.86666666666667 +lat_0=44"); add_proj4text (p, 1, " +lon_0=-109.5 +x_0=609601.2192024384 +y_0=0 +datum=NAD2"); add_proj4text (p, 2, "7 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Montana South\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],P"); add_srs_wkt (p, 7, "ARAMETER[\"standard_parallel_1\",46.4],PARAMETER[\"stand"); add_srs_wkt (p, 8, "ard_parallel_2\",44.86666666666667],PARAMETER[\"latitude"); add_srs_wkt (p, 9, "_of_origin\",44],PARAMETER[\"central_meridian\",-109.5],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",2000000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",0],UNIT[\"US survey foot\",0.3048006096012192,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"32003\"]]"); p = add_epsg_def (filter, first, last, 32005, "epsg", 32005, "NAD27 / Nebraska North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.85 +lat_2=42.81666666666667 +lat_0=4"); add_proj4text (p, 1, "1.33333333333334 +lon_0=-100 +x_0=609601.2192024384 +y_0"); add_proj4text (p, 2, "=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Nebraska North\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 7, "PARAMETER[\"standard_parallel_1\",41.85],PARAMETER[\"sta"); add_srs_wkt (p, 8, "ndard_parallel_2\",42.81666666666667],PARAMETER[\"latitu"); add_srs_wkt (p, 9, "de_of_origin\",41.33333333333334],PARAMETER[\"central_me"); add_srs_wkt (p, 10, "ridian\",-100],PARAMETER[\"false_easting\",2000000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"US survey foot\",0.30"); add_srs_wkt (p, 12, "48006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\","); add_srs_wkt (p, 13, "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32005\"]]"); p = add_epsg_def (filter, first, last, 32006, "epsg", 32006, "NAD27 / Nebraska South"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.28333333333333 +lat_2=41.71666666666"); add_proj4text (p, 1, "667 +lat_0=39.66666666666666 +lon_0=-99.5 +x_0=609601.21"); add_proj4text (p, 2, "92024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Nebraska South\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 7, "PARAMETER[\"standard_parallel_1\",40.28333333333333],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_2\",41.71666666666667],PARAME"); add_srs_wkt (p, 9, "TER[\"latitude_of_origin\",39.66666666666666],PARAMETER["); add_srs_wkt (p, 10, "\"central_meridian\",-99.5],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "2000000],PARAMETER[\"false_northing\",0],UNIT[\"US surve"); add_srs_wkt (p, 12, "y foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]"); add_srs_wkt (p, 13, "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 14, "\"32006\"]]"); p = add_epsg_def (filter, first, last, 32007, "epsg", 32007, "NAD27 / Nevada East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0."); add_proj4text (p, 1, "9999 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=u"); add_proj4text (p, 2, "s-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Nevada East\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",34.75],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, "\",-115.5833333333333],PARAMETER[\"scale_factor\",0.9999"); add_srs_wkt (p, 9, "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); add_srs_wkt (p, 10, "northing\",0],UNIT[\"US survey foot\",0.3048006096012192"); add_srs_wkt (p, 11, ",AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32007\"]]"); p = add_epsg_def (filter, first, last, 32008, "epsg", 32008, "NAD27 / Nevada Central"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0."); add_proj4text (p, 1, "9999 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=u"); add_proj4text (p, 2, "s-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Nevada Central\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 7, "R[\"latitude_of_origin\",34.75],PARAMETER[\"central_meri"); add_srs_wkt (p, 8, "dian\",-116.6666666666667],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 9, "9999],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_northing\",0],UNIT[\"US survey foot\",0.304800609601"); add_srs_wkt (p, 11, "2192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS"); add_srs_wkt (p, 12, "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32008\"]]"); p = add_epsg_def (filter, first, last, 32009, "epsg", 32009, "NAD27 / Nevada West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0."); add_proj4text (p, 1, "9999 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=u"); add_proj4text (p, 2, "s-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Nevada West\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",34.75],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, "\",-118.5833333333333],PARAMETER[\"scale_factor\",0.9999"); add_srs_wkt (p, 9, "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); add_srs_wkt (p, 10, "northing\",0],UNIT[\"US survey foot\",0.3048006096012192"); add_srs_wkt (p, 11, ",AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32009\"]]"); p = add_epsg_def (filter, first, last, 32010, "epsg", 32010, "NAD27 / New Hampshire"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.9"); add_proj4text (p, 1, "99966667 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +uni"); add_proj4text (p, 2, "ts=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / New Hampshire\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",42.5],PARAMETER[\"central_meridi"); add_srs_wkt (p, 8, "an\",-71.66666666666667],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 9, "9966667],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"US survey foot\",0.3048006096"); add_srs_wkt (p, 11, "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 12, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32010\"]]"); p = add_epsg_def (filter, first, last, 32011, "epsg", 32011, "NAD27 / New Jersey"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.66666666"); add_proj4text (p, 1, "666667 +k=0.9999749999999999 +x_0=609601.2192024384 +y_0"); add_proj4text (p, 2, "=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / New Jersey\",GEOGCS[\"NAD27\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); add_srs_wkt (p, 2, "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 6, "267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",38.83333333333334],PARAMETER[\"cent"); add_srs_wkt (p, 8, "ral_meridian\",-74.66666666666667],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, "tor\",0.999975],PARAMETER[\"false_easting\",2000000],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_northing\",0],UNIT[\"US survey foot\",0.3"); add_srs_wkt (p, 11, "048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32011\"]]"); p = add_epsg_def (filter, first, last, 32012, "epsg", 32012, "NAD27 / New Mexico East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999"); add_proj4text (p, 1, "909091 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units"); add_proj4text (p, 2, "=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / New Mexico East\",GEOGCS[\"NAD27\",DATU"); add_srs_wkt (p, 1, "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); add_srs_wkt (p, 2, ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 7, "R[\"latitude_of_origin\",31],PARAMETER[\"central_meridia"); add_srs_wkt (p, 8, "n\",-104.3333333333333],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 9, "909091],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"US survey foot\",0.3048006096"); add_srs_wkt (p, 11, "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 12, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32012\"]]"); p = add_epsg_def (filter, first, last, 32013, "epsg", 32013, "NAD27 / New Mexico Central"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=1524"); add_proj4text (p, 1, "00.3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / New Mexico Central\",GEOGCS[\"NAD27\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186"); add_srs_wkt (p, 2, "6\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"700"); add_srs_wkt (p, 3, "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 6, "SG\",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 7, "METER[\"latitude_of_origin\",31],PARAMETER[\"central_mer"); add_srs_wkt (p, 8, "idian\",-106.25],PARAMETER[\"scale_factor\",0.9999],PARA"); add_srs_wkt (p, 9, "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); add_srs_wkt (p, 10, "ng\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); add_srs_wkt (p, 12, "TH],AUTHORITY[\"EPSG\",\"32013\"]]"); p = add_epsg_def (filter, first, last, 32014, "epsg", 32014, "NAD27 / New Mexico West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999"); add_proj4text (p, 1, "916667 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units"); add_proj4text (p, 2, "=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / New Mexico West\",GEOGCS[\"NAD27\",DATU"); add_srs_wkt (p, 1, "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); add_srs_wkt (p, 2, ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 7, "R[\"latitude_of_origin\",31],PARAMETER[\"central_meridia"); add_srs_wkt (p, 8, "n\",-107.8333333333333],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 9, "916667],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"US survey foot\",0.3048006096"); add_srs_wkt (p, 11, "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 12, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32014\"]]"); p = add_epsg_def (filter, first, last, 32015, "epsg", 32015, "NAD27 / New York East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40 +lon_0=-74.33333333333333 +k=0.999"); add_proj4text (p, 1, "966667 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units"); add_proj4text (p, 2, "=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / New York East\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",40],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, "\",-74.33333333333333],PARAMETER[\"scale_factor\",0.9999"); add_srs_wkt (p, 9, "66667],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",0],UNIT[\"US survey foot\",0.30480060960"); add_srs_wkt (p, 11, "12192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXI"); add_srs_wkt (p, 12, "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32015\"]]"); p = add_epsg_def (filter, first, last, 32016, "epsg", 32016, "NAD27 / New York Central"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.999"); add_proj4text (p, 1, "9375 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=u"); add_proj4text (p, 2, "s-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / New York Central\",GEOGCS[\"NAD27\",DAT"); add_srs_wkt (p, 1, "UM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); add_srs_wkt (p, 2, ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 7, "R[\"latitude_of_origin\",40],PARAMETER[\"central_meridia"); add_srs_wkt (p, 8, "n\",-76.58333333333333],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 9, "9375],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_northing\",0],UNIT[\"US survey foot\",0.304800609601"); add_srs_wkt (p, 11, "2192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS"); add_srs_wkt (p, 12, "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32016\"]]"); p = add_epsg_def (filter, first, last, 32017, "epsg", 32017, "NAD27 / New York West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.999"); add_proj4text (p, 1, "9375 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=u"); add_proj4text (p, 2, "s-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / New York West\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",40],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, "\",-78.58333333333333],PARAMETER[\"scale_factor\",0.9999"); add_srs_wkt (p, 9, "375],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012"); add_srs_wkt (p, 11, "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS["); add_srs_wkt (p, 12, "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32017\"]]"); p = add_epsg_def (filter, first, last, 32018, "epsg", 32018, "NAD27 / New York Long Island (deprecated)"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666"); add_proj4text (p, 1, "666 +lat_0=40.5 +lon_0=-74 +x_0=304800.6096012192 +y_0=0"); add_proj4text (p, 2, " +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / New York Long Island (deprecated)\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD27\",DATUM[\"North_American_Datum_1927\",SPHERO"); add_srs_wkt (p, 2, "ID[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIME"); add_srs_wkt (p, 4, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"4267\"]],PROJECTION[\"Lambert_Conf"); add_srs_wkt (p, 7, "ormal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",41."); add_srs_wkt (p, 8, "03333333333333],PARAMETER[\"standard_parallel_2\",40.666"); add_srs_wkt (p, 9, "66666666666],PARAMETER[\"latitude_of_origin\",40.5],PARA"); add_srs_wkt (p, 10, "METER[\"central_meridian\",-74],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, "g\",1000000],PARAMETER[\"false_northing\",0],UNIT[\"US s"); add_srs_wkt (p, 12, "urvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 13, "3\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 14, "G\",\"32018\"]]"); p = add_epsg_def (filter, first, last, 32019, "epsg", 32019, "NAD27 / North Carolina"); add_proj4text (p, 0, "+proj=lcc +lat_1=34.33333333333334 +lat_2=36.16666666666"); add_proj4text (p, 1, "666 +lat_0=33.75 +lon_0=-79 +x_0=609601.2192024384 +y_0="); add_proj4text (p, 2, "0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / North Carolina\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 7, "PARAMETER[\"standard_parallel_1\",34.33333333333334],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_2\",36.16666666666666],PARAME"); add_srs_wkt (p, 9, "TER[\"latitude_of_origin\",33.75],PARAMETER[\"central_me"); add_srs_wkt (p, 10, "ridian\",-79],PARAMETER[\"false_easting\",2000000],PARAM"); add_srs_wkt (p, 11, "ETER[\"false_northing\",0],UNIT[\"US survey foot\",0.304"); add_srs_wkt (p, 12, "8006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",E"); add_srs_wkt (p, 13, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32019\"]]"); p = add_epsg_def (filter, first, last, 32020, "epsg", 32020, "NAD27 / North Dakota North"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.43333333333333 +lat_2=48.73333333333"); add_proj4text (p, 1, "333 +lat_0=47 +lon_0=-100.5 +x_0=609601.2192024384 +y_0="); add_proj4text (p, 2, "0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / North Dakota North\",GEOGCS[\"NAD27\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186"); add_srs_wkt (p, 2, "6\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"700"); add_srs_wkt (p, 3, "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 6, "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 7, "\"],PARAMETER[\"standard_parallel_1\",47.43333333333333]"); add_srs_wkt (p, 8, ",PARAMETER[\"standard_parallel_2\",48.73333333333333],PA"); add_srs_wkt (p, 9, "RAMETER[\"latitude_of_origin\",47],PARAMETER[\"central_m"); add_srs_wkt (p, 10, "eridian\",-100.5],PARAMETER[\"false_easting\",2000000],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0"); add_srs_wkt (p, 12, ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X"); add_srs_wkt (p, 13, "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32020\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def (filter, first, last, 32021, "epsg", 32021, "NAD27 / North Dakota South"); add_proj4text (p, 0, "+proj=lcc +lat_1=46.18333333333333 +lat_2=47.48333333333"); add_proj4text (p, 1, "333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=609601.2"); add_proj4text (p, 2, "192024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / North Dakota South\",GEOGCS[\"NAD27\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186"); add_srs_wkt (p, 2, "6\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"700"); add_srs_wkt (p, 3, "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 6, "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 7, "\"],PARAMETER[\"standard_parallel_1\",46.18333333333333]"); add_srs_wkt (p, 8, ",PARAMETER[\"standard_parallel_2\",47.48333333333333],PA"); add_srs_wkt (p, 9, "RAMETER[\"latitude_of_origin\",45.66666666666666],PARAME"); add_srs_wkt (p, 10, "TER[\"central_meridian\",-100.5],PARAMETER[\"false_easti"); add_srs_wkt (p, 11, "ng\",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US "); add_srs_wkt (p, 12, "survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "03\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP"); add_srs_wkt (p, 14, "SG\",\"32021\"]]"); p = add_epsg_def (filter, first, last, 32022, "epsg", 32022, "NAD27 / Ohio North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.43333333333333 +lat_2=41.7 +lat_0=39"); add_proj4text (p, 1, ".66666666666666 +lon_0=-82.5 +x_0=609601.2192024384 +y_0"); add_proj4text (p, 2, "=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Ohio North\",GEOGCS[\"NAD27\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); add_srs_wkt (p, 2, "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 6, "267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARA"); add_srs_wkt (p, 7, "METER[\"standard_parallel_1\",40.43333333333333],PARAMET"); add_srs_wkt (p, 8, "ER[\"standard_parallel_2\",41.7],PARAMETER[\"latitude_of"); add_srs_wkt (p, 9, "_origin\",39.66666666666666],PARAMETER[\"central_meridia"); add_srs_wkt (p, 10, "n\",-82.5],PARAMETER[\"false_easting\",2000000],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_northing\",0],UNIT[\"US survey foot\",0.304800"); add_srs_wkt (p, 12, "6096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST"); add_srs_wkt (p, 13, "],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32022\"]]"); p = add_epsg_def (filter, first, last, 32023, "epsg", 32023, "NAD27 / Ohio South"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.73333333333333 +lat_2=40.03333333333"); add_proj4text (p, 1, "333 +lat_0=38 +lon_0=-82.5 +x_0=609601.2192024384 +y_0=0"); add_proj4text (p, 2, " +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Ohio South\",GEOGCS[\"NAD27\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); add_srs_wkt (p, 2, "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 6, "267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARA"); add_srs_wkt (p, 7, "METER[\"standard_parallel_1\",38.73333333333333],PARAMET"); add_srs_wkt (p, 8, "ER[\"standard_parallel_2\",40.03333333333333],PARAMETER["); add_srs_wkt (p, 9, "\"latitude_of_origin\",38],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 10, ",-82.5],PARAMETER[\"false_easting\",2000000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"US survey foot\",0.3048006096"); add_srs_wkt (p, 12, "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 13, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32023\"]]"); p = add_epsg_def (filter, first, last, 32024, "epsg", 32024, "NAD27 / Oklahoma North"); add_proj4text (p, 0, "+proj=lcc +lat_1=35.56666666666667 +lat_2=36.76666666666"); add_proj4text (p, 1, "667 +lat_0=35 +lon_0=-98 +x_0=609601.2192024384 +y_0=0 +"); add_proj4text (p, 2, "datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Oklahoma North\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 7, "PARAMETER[\"standard_parallel_1\",35.56666666666667],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_2\",36.76666666666667],PARAME"); add_srs_wkt (p, 9, "TER[\"latitude_of_origin\",35],PARAMETER[\"central_merid"); add_srs_wkt (p, 10, "ian\",-98],PARAMETER[\"false_easting\",2000000],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_northing\",0],UNIT[\"US survey foot\",0.304800"); add_srs_wkt (p, 12, "6096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST"); add_srs_wkt (p, 13, "],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32024\"]]"); p = add_epsg_def (filter, first, last, 32025, "epsg", 32025, "NAD27 / Oklahoma South"); add_proj4text (p, 0, "+proj=lcc +lat_1=33.93333333333333 +lat_2=35.23333333333"); add_proj4text (p, 1, "333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=609601.2192"); add_proj4text (p, 2, "024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Oklahoma South\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 7, "PARAMETER[\"standard_parallel_1\",33.93333333333333],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_2\",35.23333333333333],PARAME"); add_srs_wkt (p, 9, "TER[\"latitude_of_origin\",33.33333333333334],PARAMETER["); add_srs_wkt (p, 10, "\"central_meridian\",-98],PARAMETER[\"false_easting\",20"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"US survey "); add_srs_wkt (p, 12, "foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],"); add_srs_wkt (p, 13, "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "32025\"]]"); p = add_epsg_def (filter, first, last, 32026, "epsg", 32026, "NAD27 / Oregon North"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.33333333333334 +lat_2=46 +lat_0=43.6"); add_proj4text (p, 1, "6666666666666 +lon_0=-120.5 +x_0=609601.2192024384 +y_0="); add_proj4text (p, 2, "0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Oregon North\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 7, "AMETER[\"standard_parallel_1\",44.33333333333334],PARAME"); add_srs_wkt (p, 8, "TER[\"standard_parallel_2\",46],PARAMETER[\"latitude_of_"); add_srs_wkt (p, 9, "origin\",43.66666666666666],PARAMETER[\"central_meridian"); add_srs_wkt (p, 10, "\",-120.5],PARAMETER[\"false_easting\",2000000],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_northing\",0],UNIT[\"US survey foot\",0.304800"); add_srs_wkt (p, 12, "6096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST"); add_srs_wkt (p, 13, "],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32026\"]]"); p = add_epsg_def (filter, first, last, 32027, "epsg", 32027, "NAD27 / Oregon South"); add_proj4text (p, 0, "+proj=lcc +lat_1=42.33333333333334 +lat_2=44 +lat_0=41.6"); add_proj4text (p, 1, "6666666666666 +lon_0=-120.5 +x_0=609601.2192024384 +y_0="); add_proj4text (p, 2, "0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Oregon South\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 7, "AMETER[\"standard_parallel_1\",42.33333333333334],PARAME"); add_srs_wkt (p, 8, "TER[\"standard_parallel_2\",44],PARAMETER[\"latitude_of_"); add_srs_wkt (p, 9, "origin\",41.66666666666666],PARAMETER[\"central_meridian"); add_srs_wkt (p, 10, "\",-120.5],PARAMETER[\"false_easting\",2000000],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_northing\",0],UNIT[\"US survey foot\",0.304800"); add_srs_wkt (p, 12, "6096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST"); add_srs_wkt (p, 13, "],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32027\"]]"); p = add_epsg_def (filter, first, last, 32028, "epsg", 32028, "NAD27 / Pennsylvania North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.88333333333333 +lat_2=41.95 +lat_0=4"); add_proj4text (p, 1, "0.16666666666666 +lon_0=-77.75 +x_0=609601.2192024384 +y"); add_proj4text (p, 2, "_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Pennsylvania North\",GEOGCS[\"NAD27\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186"); add_srs_wkt (p, 2, "6\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"700"); add_srs_wkt (p, 3, "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 6, "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 7, "\"],PARAMETER[\"standard_parallel_1\",40.88333333333333]"); add_srs_wkt (p, 8, ",PARAMETER[\"standard_parallel_2\",41.95],PARAMETER[\"la"); add_srs_wkt (p, 9, "titude_of_origin\",40.16666666666666],PARAMETER[\"centra"); add_srs_wkt (p, 10, "l_meridian\",-77.75],PARAMETER[\"false_easting\",2000000"); add_srs_wkt (p, 11, "],PARAMETER[\"false_northing\",0],UNIT[\"US survey foot\""); add_srs_wkt (p, 12, ",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\""); add_srs_wkt (p, 13, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32028\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def (filter, first, last, 32029, "epsg", 32029, "NAD27 / Pennsylvania South (deprecated)"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.93333333333333 +lat_2=40.8 +lat_0=39"); add_proj4text (p, 1, ".33333333333334 +lon_0=-77.75 +x_0=609601.2192024384 +y_"); add_proj4text (p, 2, "0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Pennsylvania South (deprecated)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID"); add_srs_wkt (p, 2, "[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4267\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 7, "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",39.9333"); add_srs_wkt (p, 8, "3333333333],PARAMETER[\"standard_parallel_2\",40.8],PARA"); add_srs_wkt (p, 9, "METER[\"latitude_of_origin\",39.33333333333334],PARAMETE"); add_srs_wkt (p, 10, "R[\"central_meridian\",-77.75],PARAMETER[\"false_easting"); add_srs_wkt (p, 11, "\",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US su"); add_srs_wkt (p, 12, "rvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003"); add_srs_wkt (p, 13, "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 14, "\",\"32029\"]]"); p = add_epsg_def (filter, first, last, 32030, "epsg", 32030, "NAD27 / Rhode Island"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.9"); add_proj4text (p, 1, "999938 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units"); add_proj4text (p, 2, "=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Rhode Island\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",41.08333333333334],PARAMETER[\"cent"); add_srs_wkt (p, 8, "ral_meridian\",-71.5],PARAMETER[\"scale_factor\",0.99999"); add_srs_wkt (p, 9, "38],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_northing\",0],UNIT[\"US survey foot\",0.30480060960121"); add_srs_wkt (p, 11, "92,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Y\",NORTH],AUTHORITY[\"EPSG\",\"32030\"]]"); p = add_epsg_def (filter, first, last, 32031, "epsg", 32031, "NAD27 / South Carolina North"); add_proj4text (p, 0, "+proj=lcc +lat_1=33.76666666666667 +lat_2=34.96666666666"); add_proj4text (p, 1, "667 +lat_0=33 +lon_0=-81 +x_0=609601.2192024384 +y_0=0 +"); add_proj4text (p, 2, "datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / South Carolina North\",GEOGCS[\"NAD27\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1"); add_srs_wkt (p, 2, "866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 4, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 5, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2"); add_srs_wkt (p, 7, "SP\"],PARAMETER[\"standard_parallel_1\",33.7666666666666"); add_srs_wkt (p, 8, "7],PARAMETER[\"standard_parallel_2\",34.96666666666667],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",33],PARAMETER[\"central"); add_srs_wkt (p, 10, "_meridian\",-81],PARAMETER[\"false_easting\",2000000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0."); add_srs_wkt (p, 12, "3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); add_srs_wkt (p, 13, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32031\"]]"); p = add_epsg_def (filter, first, last, 32033, "epsg", 32033, "NAD27 / South Carolina South"); add_proj4text (p, 0, "+proj=lcc +lat_1=32.33333333333334 +lat_2=33.66666666666"); add_proj4text (p, 1, "666 +lat_0=31.83333333333333 +lon_0=-81 +x_0=609601.2192"); add_proj4text (p, 2, "024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / South Carolina South\",GEOGCS[\"NAD27\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1"); add_srs_wkt (p, 2, "866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 4, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 5, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2"); add_srs_wkt (p, 7, "SP\"],PARAMETER[\"standard_parallel_1\",32.3333333333333"); add_srs_wkt (p, 8, "4],PARAMETER[\"standard_parallel_2\",33.66666666666666],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",31.83333333333333],PARA"); add_srs_wkt (p, 10, "METER[\"central_meridian\",-81],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, "g\",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US s"); add_srs_wkt (p, 12, "urvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 13, "3\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 14, "G\",\"32033\"]]"); p = add_epsg_def (filter, first, last, 32034, "epsg", 32034, "NAD27 / South Dakota North"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.41666666666666 +lat_2=45.68333333333"); add_proj4text (p, 1, "333 +lat_0=43.83333333333334 +lon_0=-100 +x_0=609601.219"); add_proj4text (p, 2, "2024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / South Dakota North\",GEOGCS[\"NAD27\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186"); add_srs_wkt (p, 2, "6\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"700"); add_srs_wkt (p, 3, "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 6, "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 7, "\"],PARAMETER[\"standard_parallel_1\",44.41666666666666]"); add_srs_wkt (p, 8, ",PARAMETER[\"standard_parallel_2\",45.68333333333333],PA"); add_srs_wkt (p, 9, "RAMETER[\"latitude_of_origin\",43.83333333333334],PARAME"); add_srs_wkt (p, 10, "TER[\"central_meridian\",-100],PARAMETER[\"false_easting"); add_srs_wkt (p, 11, "\",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US su"); add_srs_wkt (p, 12, "rvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003"); add_srs_wkt (p, 13, "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 14, "\",\"32034\"]]"); p = add_epsg_def (filter, first, last, 32035, "epsg", 32035, "NAD27 / South Dakota South"); add_proj4text (p, 0, "+proj=lcc +lat_1=42.83333333333334 +lat_2=44.4 +lat_0=42"); add_proj4text (p, 1, ".33333333333334 +lon_0=-100.3333333333333 +x_0=609601.21"); add_proj4text (p, 2, "92024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / South Dakota South\",GEOGCS[\"NAD27\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186"); add_srs_wkt (p, 2, "6\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"700"); add_srs_wkt (p, 3, "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 6, "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 7, "\"],PARAMETER[\"standard_parallel_1\",42.83333333333334]"); add_srs_wkt (p, 8, ",PARAMETER[\"standard_parallel_2\",44.4],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",42.33333333333334],PARAMETER[\"central"); add_srs_wkt (p, 10, "_meridian\",-100.3333333333333],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, "g\",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US s"); add_srs_wkt (p, 12, "urvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 13, "3\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 14, "G\",\"32035\"]]"); p = add_epsg_def (filter, first, last, 32036, "epsg", 32036, "NAD27 / Tennessee (deprecated)"); add_proj4text (p, 0, "+proj=lcc +lat_1=35.25 +lat_2=36.41666666666666 +lat_0=3"); add_proj4text (p, 1, "4.66666666666666 +lon_0=-86 +x_0=30480.06096012192 +y_0="); add_proj4text (p, 2, "0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Tennessee (deprecated)\",GEOGCS[\"NAD27"); add_srs_wkt (p, 1, "\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke"); add_srs_wkt (p, 2, " 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 4, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 5, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2"); add_srs_wkt (p, 7, "SP\"],PARAMETER[\"standard_parallel_1\",35.25],PARAMETER"); add_srs_wkt (p, 8, "[\"standard_parallel_2\",36.41666666666666],PARAMETER[\""); add_srs_wkt (p, 9, "latitude_of_origin\",34.66666666666666],PARAMETER[\"cent"); add_srs_wkt (p, 10, "ral_meridian\",-86],PARAMETER[\"false_easting\",100000],"); add_srs_wkt (p, 11, "PARAMETER[\"false_northing\",0],UNIT[\"US survey foot\","); add_srs_wkt (p, 12, "0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\""); add_srs_wkt (p, 13, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32036\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def (filter, first, last, 32037, "epsg", 32037, "NAD27 / Texas North"); add_proj4text (p, 0, "+proj=lcc +lat_1=34.65 +lat_2=36.18333333333333 +lat_0=3"); add_proj4text (p, 1, "4 +lon_0=-101.5 +x_0=609601.2192024384 +y_0=0 +datum=NAD"); add_proj4text (p, 2, "27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Texas North\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 7, "AMETER[\"standard_parallel_1\",34.65],PARAMETER[\"standa"); add_srs_wkt (p, 8, "rd_parallel_2\",36.18333333333333],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",34],PARAMETER[\"central_meridian\",-101.5],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_easting\",2000000],PARAMETER[\"false_no"); add_srs_wkt (p, 11, "rthing\",0],UNIT[\"US survey foot\",0.3048006096012192,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"32037\"]]"); p = add_epsg_def (filter, first, last, 32038, "epsg", 32038, "NAD27 / Texas North Central"); add_proj4text (p, 0, "+proj=lcc +lat_1=32.13333333333333 +lat_2=33.96666666666"); add_proj4text (p, 1, "667 +lat_0=31.66666666666667 +lon_0=-97.5 +x_0=609601.21"); add_proj4text (p, 2, "92024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Texas North Central\",GEOGCS[\"NAD27\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 18"); add_srs_wkt (p, 2, "66\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "08\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 6, "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 7, "\"],PARAMETER[\"standard_parallel_1\",32.13333333333333]"); add_srs_wkt (p, 8, ",PARAMETER[\"standard_parallel_2\",33.96666666666667],PA"); add_srs_wkt (p, 9, "RAMETER[\"latitude_of_origin\",31.66666666666667],PARAME"); add_srs_wkt (p, 10, "TER[\"central_meridian\",-97.5],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, "g\",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US s"); add_srs_wkt (p, 12, "urvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 13, "3\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 14, "G\",\"32038\"]]"); p = add_epsg_def (filter, first, last, 32039, "epsg", 32039, "NAD27 / Texas Central"); add_proj4text (p, 0, "+proj=lcc +lat_1=30.11666666666667 +lat_2=31.88333333333"); add_proj4text (p, 1, "333 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +"); add_proj4text (p, 2, "x_0=609601.2192024384 +y_0=0 +datum=NAD27 +units=us-ft +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Texas Central\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],P"); add_srs_wkt (p, 7, "ARAMETER[\"standard_parallel_1\",30.11666666666667],PARA"); add_srs_wkt (p, 8, "METER[\"standard_parallel_2\",31.88333333333333],PARAMET"); add_srs_wkt (p, 9, "ER[\"latitude_of_origin\",29.66666666666667],PARAMETER[\""); add_srs_wkt (p, 10, "central_meridian\",-100.3333333333333],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",2000000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 12, "[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 14, "[\"EPSG\",\"32039\"]]"); p = add_epsg_def (filter, first, last, 32040, "epsg", 32040, "NAD27 / Texas South Central"); add_proj4text (p, 0, "+proj=lcc +lat_1=28.38333333333333 +lat_2=30.28333333333"); add_proj4text (p, 1, "333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=609601.2192"); add_proj4text (p, 2, "024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Texas South Central\",GEOGCS[\"NAD27\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 18"); add_srs_wkt (p, 2, "66\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "08\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 6, "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 7, "\"],PARAMETER[\"standard_parallel_1\",28.38333333333333]"); add_srs_wkt (p, 8, ",PARAMETER[\"standard_parallel_2\",30.28333333333333],PA"); add_srs_wkt (p, 9, "RAMETER[\"latitude_of_origin\",27.83333333333333],PARAME"); add_srs_wkt (p, 10, "TER[\"central_meridian\",-99],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US surv"); add_srs_wkt (p, 12, "ey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\""); add_srs_wkt (p, 13, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"32040\"]]"); p = add_epsg_def (filter, first, last, 32041, "epsg", 32041, "NAD27 / Texas South"); add_proj4text (p, 0, "+proj=lcc +lat_1=26.16666666666667 +lat_2=27.83333333333"); add_proj4text (p, 1, "333 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=609601.21"); add_proj4text (p, 2, "92024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Texas South\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 7, "AMETER[\"standard_parallel_1\",26.16666666666667],PARAME"); add_srs_wkt (p, 8, "TER[\"standard_parallel_2\",27.83333333333333],PARAMETER"); add_srs_wkt (p, 9, "[\"latitude_of_origin\",25.66666666666667],PARAMETER[\"c"); add_srs_wkt (p, 10, "entral_meridian\",-98.5],PARAMETER[\"false_easting\",200"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",0],UNIT[\"US survey f"); add_srs_wkt (p, 12, "oot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],A"); add_srs_wkt (p, 13, "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 14, "2041\"]]"); p = add_epsg_def (filter, first, last, 32042, "epsg", 32042, "NAD27 / Utah North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.71666666666667 +lat_2=41.78333333333"); add_proj4text (p, 1, "333 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=609601.2"); add_proj4text (p, 2, "192024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Utah North\",GEOGCS[\"NAD27\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); add_srs_wkt (p, 2, "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 6, "267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARA"); add_srs_wkt (p, 7, "METER[\"standard_parallel_1\",40.71666666666667],PARAMET"); add_srs_wkt (p, 8, "ER[\"standard_parallel_2\",41.78333333333333],PARAMETER["); add_srs_wkt (p, 9, "\"latitude_of_origin\",40.33333333333334],PARAMETER[\"ce"); add_srs_wkt (p, 10, "ntral_meridian\",-111.5],PARAMETER[\"false_easting\",200"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",0],UNIT[\"US survey f"); add_srs_wkt (p, 12, "oot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],A"); add_srs_wkt (p, 13, "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 14, "2042\"]]"); p = add_epsg_def (filter, first, last, 32043, "epsg", 32043, "NAD27 / Utah Central"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.01666666666667 +lat_2=40.65 +lat_0=3"); add_proj4text (p, 1, "8.33333333333334 +lon_0=-111.5 +x_0=609601.2192024384 +y"); add_proj4text (p, 2, "_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Utah Central\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 7, "AMETER[\"standard_parallel_1\",39.01666666666667],PARAME"); add_srs_wkt (p, 8, "TER[\"standard_parallel_2\",40.65],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",38.33333333333334],PARAMETER[\"central_merid"); add_srs_wkt (p, 10, "ian\",-111.5],PARAMETER[\"false_easting\",2000000],PARAM"); add_srs_wkt (p, 11, "ETER[\"false_northing\",0],UNIT[\"US survey foot\",0.304"); add_srs_wkt (p, 12, "8006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",E"); add_srs_wkt (p, 13, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32043\"]]"); p = add_epsg_def (filter, first, last, 32044, "epsg", 32044, "NAD27 / Utah South"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.21666666666667 +lat_2=38.35 +lat_0=3"); add_proj4text (p, 1, "6.66666666666666 +lon_0=-111.5 +x_0=609601.2192024384 +y"); add_proj4text (p, 2, "_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Utah South\",GEOGCS[\"NAD27\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); add_srs_wkt (p, 2, "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 6, "267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARA"); add_srs_wkt (p, 7, "METER[\"standard_parallel_1\",37.21666666666667],PARAMET"); add_srs_wkt (p, 8, "ER[\"standard_parallel_2\",38.35],PARAMETER[\"latitude_o"); add_srs_wkt (p, 9, "f_origin\",36.66666666666666],PARAMETER[\"central_meridi"); add_srs_wkt (p, 10, "an\",-111.5],PARAMETER[\"false_easting\",2000000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",0],UNIT[\"US survey foot\",0.3048"); add_srs_wkt (p, 12, "006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32044\"]]"); p = add_epsg_def (filter, first, last, 32045, "epsg", 32045, "NAD27 / Vermont"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964286 +x_0"); add_proj4text (p, 1, "=152400.3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Vermont\",GEOGCS[\"NAD27\",DATUM[\"Nort"); add_srs_wkt (p, 1, "h_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378206"); add_srs_wkt (p, 2, ".4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AUTHO"); add_srs_wkt (p, 3, "RITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 4, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4267"); add_srs_wkt (p, 6, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 7, "itude_of_origin\",42.5],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, "72.5],PARAMETER[\"scale_factor\",0.999964286],PARAMETER["); add_srs_wkt (p, 9, "\"false_easting\",500000],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 10, "],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"32045\"]]"); p = add_epsg_def (filter, first, last, 32046, "epsg", 32046, "NAD27 / Virginia North"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.03333333333333 +lat_2=39.2 +lat_0=37"); add_proj4text (p, 1, ".66666666666666 +lon_0=-78.5 +x_0=609601.2192024384 +y_0"); add_proj4text (p, 2, "=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Virginia North\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 7, "PARAMETER[\"standard_parallel_1\",38.03333333333333],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_2\",39.2],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",37.66666666666666],PARAMETER[\"central_mer"); add_srs_wkt (p, 10, "idian\",-78.5],PARAMETER[\"false_easting\",2000000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"US survey foot\",0.30"); add_srs_wkt (p, 12, "48006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\","); add_srs_wkt (p, 13, "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32046\"]]"); p = add_epsg_def (filter, first, last, 32047, "epsg", 32047, "NAD27 / Virginia South"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.76666666666667 +lat_2=37.96666666666"); add_proj4text (p, 1, "667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=609601.21"); add_proj4text (p, 2, "92024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Virginia South\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 7, "PARAMETER[\"standard_parallel_1\",36.76666666666667],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_2\",37.96666666666667],PARAME"); add_srs_wkt (p, 9, "TER[\"latitude_of_origin\",36.33333333333334],PARAMETER["); add_srs_wkt (p, 10, "\"central_meridian\",-78.5],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "2000000],PARAMETER[\"false_northing\",0],UNIT[\"US surve"); add_srs_wkt (p, 12, "y foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]"); add_srs_wkt (p, 13, "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 14, "\"32047\"]]"); p = add_epsg_def (filter, first, last, 32048, "epsg", 32048, "NAD27 / Washington North"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.5 +lat_2=48.73333333333333 +lat_0=47"); add_proj4text (p, 1, " +lon_0=-120.8333333333333 +x_0=609601.2192024384 +y_0=0"); add_proj4text (p, 2, " +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Washington North\",GEOGCS[\"NAD27\",DAT"); add_srs_wkt (p, 1, "UM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); add_srs_wkt (p, 2, ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 7, "PARAMETER[\"standard_parallel_1\",47.5],PARAMETER[\"stan"); add_srs_wkt (p, 8, "dard_parallel_2\",48.73333333333333],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",47],PARAMETER[\"central_meridian\",-120.83"); add_srs_wkt (p, 10, "33333333333],PARAMETER[\"false_easting\",2000000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",0],UNIT[\"US survey foot\",0.3048"); add_srs_wkt (p, 12, "006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32048\"]]"); p = add_epsg_def (filter, first, last, 32049, "epsg", 32049, "NAD27 / Washington South"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.83333333333334 +lat_2=47.33333333333"); add_proj4text (p, 1, "334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=609601.2"); add_proj4text (p, 2, "192024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Washington South\",GEOGCS[\"NAD27\",DAT"); add_srs_wkt (p, 1, "UM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); add_srs_wkt (p, 2, ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 7, "PARAMETER[\"standard_parallel_1\",45.83333333333334],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_2\",47.33333333333334],PARAME"); add_srs_wkt (p, 9, "TER[\"latitude_of_origin\",45.33333333333334],PARAMETER["); add_srs_wkt (p, 10, "\"central_meridian\",-120.5],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US surv"); add_srs_wkt (p, 12, "ey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\""); add_srs_wkt (p, 13, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"32049\"]]"); p = add_epsg_def (filter, first, last, 32050, "epsg", 32050, "NAD27 / West Virginia North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39 +lat_2=40.25 +lat_0=38.5 +lon_0=-79."); add_proj4text (p, 1, "5 +x_0=609601.2192024384 +y_0=0 +datum=NAD27 +units=us-f"); add_proj4text (p, 2, "t +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / West Virginia North\",GEOGCS[\"NAD27\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 18"); add_srs_wkt (p, 2, "66\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "08\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 6, "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 7, "\"],PARAMETER[\"standard_parallel_1\",39],PARAMETER[\"st"); add_srs_wkt (p, 8, "andard_parallel_2\",40.25],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",38.5],PARAMETER[\"central_meridian\",-79.5],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",2000000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"32050\"]]"); p = add_epsg_def (filter, first, last, 32051, "epsg", 32051, "NAD27 / West Virginia South"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.48333333333333 +lat_2=38.88333333333"); add_proj4text (p, 1, "333 +lat_0=37 +lon_0=-81 +x_0=609601.2192024384 +y_0=0 +"); add_proj4text (p, 2, "datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / West Virginia South\",GEOGCS[\"NAD27\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 18"); add_srs_wkt (p, 2, "66\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "08\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 6, "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 7, "\"],PARAMETER[\"standard_parallel_1\",37.48333333333333]"); add_srs_wkt (p, 8, ",PARAMETER[\"standard_parallel_2\",38.88333333333333],PA"); add_srs_wkt (p, 9, "RAMETER[\"latitude_of_origin\",37],PARAMETER[\"central_m"); add_srs_wkt (p, 10, "eridian\",-81],PARAMETER[\"false_easting\",2000000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"US survey foot\",0.30"); add_srs_wkt (p, 12, "48006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\","); add_srs_wkt (p, 13, "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32051\"]]"); p = add_epsg_def (filter, first, last, 32052, "epsg", 32052, "NAD27 / Wisconsin North"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.56666666666667 +lat_2=46.76666666666"); add_proj4text (p, 1, "667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=609601.2192"); add_proj4text (p, 2, "024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Wisconsin North\",GEOGCS[\"NAD27\",DATU"); add_srs_wkt (p, 1, "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); add_srs_wkt (p, 2, ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 7, "PARAMETER[\"standard_parallel_1\",45.56666666666667],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_2\",46.76666666666667],PARAME"); add_srs_wkt (p, 9, "TER[\"latitude_of_origin\",45.16666666666666],PARAMETER["); add_srs_wkt (p, 10, "\"central_meridian\",-90],PARAMETER[\"false_easting\",20"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"US survey "); add_srs_wkt (p, 12, "foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],"); add_srs_wkt (p, 13, "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "32052\"]]"); p = add_epsg_def (filter, first, last, 32053, "epsg", 32053, "NAD27 / Wisconsin Central"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.25 +lat_2=45.5 +lat_0=43.83333333333"); add_proj4text (p, 1, "334 +lon_0=-90 +x_0=609601.2192024384 +y_0=0 +datum=NAD2"); add_proj4text (p, 2, "7 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Wisconsin Central\",GEOGCS[\"NAD27\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866"); add_srs_wkt (p, 2, "\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 7, "],PARAMETER[\"standard_parallel_1\",44.25],PARAMETER[\"s"); add_srs_wkt (p, 8, "tandard_parallel_2\",45.5],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",43.83333333333334],PARAMETER[\"central_meridian\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_easting\",2000000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"US survey foot\",0.30480060960121"); add_srs_wkt (p, 12, "92,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Y\",NORTH],AUTHORITY[\"EPSG\",\"32053\"]]"); p = add_epsg_def (filter, first, last, 32054, "epsg", 32054, "NAD27 / Wisconsin South"); add_proj4text (p, 0, "+proj=lcc +lat_1=42.73333333333333 +lat_2=44.06666666666"); add_proj4text (p, 1, "667 +lat_0=42 +lon_0=-90 +x_0=609601.2192024384 +y_0=0 +"); add_proj4text (p, 2, "datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Wisconsin South\",GEOGCS[\"NAD27\",DATU"); add_srs_wkt (p, 1, "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); add_srs_wkt (p, 2, ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 7, "PARAMETER[\"standard_parallel_1\",42.73333333333333],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_2\",44.06666666666667],PARAME"); add_srs_wkt (p, 9, "TER[\"latitude_of_origin\",42],PARAMETER[\"central_merid"); add_srs_wkt (p, 10, "ian\",-90],PARAMETER[\"false_easting\",2000000],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_northing\",0],UNIT[\"US survey foot\",0.304800"); add_srs_wkt (p, 12, "6096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST"); add_srs_wkt (p, 13, "],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32054\"]]"); p = add_epsg_def (filter, first, last, 32055, "epsg", 32055, "NAD27 / Wyoming East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.66666666666666 +lon_0=-105.1666666"); add_proj4text (p, 1, "666667 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +dat"); add_proj4text (p, 2, "um=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Wyoming East\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",40.66666666666666],PARAMETER[\"cent"); add_srs_wkt (p, 8, "ral_meridian\",-105.1666666666667],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, "tor\",0.999941177],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0"); add_srs_wkt (p, 11, ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32055\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def (filter, first, last, 32056, "epsg", 32056, "NAD27 / Wyoming East Central"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.66666666666666 +lon_0=-107.3333333"); add_proj4text (p, 1, "333333 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +dat"); add_proj4text (p, 2, "um=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Wyoming East Central\",GEOGCS[\"NAD27\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1"); add_srs_wkt (p, 2, "866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 4, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 5, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PA"); add_srs_wkt (p, 7, "RAMETER[\"latitude_of_origin\",40.66666666666666],PARAME"); add_srs_wkt (p, 8, "TER[\"central_meridian\",-107.3333333333333],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.999941177],PARAMETER[\"false_easting\","); add_srs_wkt (p, 10, "500000],PARAMETER[\"false_northing\",0],UNIT[\"US survey"); add_srs_wkt (p, 11, " foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]]"); add_srs_wkt (p, 12, ",AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "32056\"]]"); p = add_epsg_def (filter, first, last, 32057, "epsg", 32057, "NAD27 / Wyoming West Central"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.66666666666666 +lon_0=-108.75 +k=0"); add_proj4text (p, 1, ".999941177 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +u"); add_proj4text (p, 2, "nits=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Wyoming West Central\",GEOGCS[\"NAD27\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1"); add_srs_wkt (p, 2, "866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 4, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 5, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PA"); add_srs_wkt (p, 7, "RAMETER[\"latitude_of_origin\",40.66666666666666],PARAME"); add_srs_wkt (p, 8, "TER[\"central_meridian\",-108.75],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",0.999941177],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0."); add_srs_wkt (p, 11, "3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32057\"]]"); p = add_epsg_def (filter, first, last, 32058, "epsg", 32058, "NAD27 / Wyoming West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.66666666666666 +lon_0=-110.0833333"); add_proj4text (p, 1, "333333 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +dat"); add_proj4text (p, 2, "um=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Wyoming West\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",40.66666666666666],PARAMETER[\"cent"); add_srs_wkt (p, 8, "ral_meridian\",-110.0833333333333],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, "tor\",0.999941177],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0"); add_srs_wkt (p, 11, ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32058\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def (filter, first, last, 32061, "epsg", 32061, "NAD27 / Guatemala Norte (deprecated)"); add_proj4text (p, 0, "+proj=lcc +lat_1=16.81666666666667 +lat_0=16.81666666666"); add_proj4text (p, 1, "667 +lon_0=-90.33333333333333 +k_0=0.99992226 +x_0=50000"); add_proj4text (p, 2, "0 +y_0=292209.579 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Guatemala Norte (deprecated)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"C"); add_srs_wkt (p, 2, "larke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_C"); add_srs_wkt (p, 7, "onic_1SP\"],PARAMETER[\"latitude_of_origin\",16.81666666"); add_srs_wkt (p, 8, "666667],PARAMETER[\"central_meridian\",-90.3333333333333"); add_srs_wkt (p, 9, "3],PARAMETER[\"scale_factor\",0.99992226],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_easting\",500000],PARAMETER[\"false_northing\",29220"); add_srs_wkt (p, 11, "9.579],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 12, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32"); add_srs_wkt (p, 13, "061\"]]"); p = add_epsg_def (filter, first, last, 32062, "epsg", 32062, "NAD27 / Guatemala Sur (deprecated)"); add_proj4text (p, 0, "+proj=lcc +lat_1=14.9 +lat_0=14.9 +lon_0=-90.33333333333"); add_proj4text (p, 1, "333 +k_0=0.99989906 +x_0=500000 +y_0=325992.681 +datum=N"); add_proj4text (p, 2, "AD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Guatemala Sur (deprecated)\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Cl"); add_srs_wkt (p, 2, "arke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Gre"); add_srs_wkt (p, 4, "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_C"); add_srs_wkt (p, 7, "onic_1SP\"],PARAMETER[\"latitude_of_origin\",14.9],PARAM"); add_srs_wkt (p, 8, "ETER[\"central_meridian\",-90.33333333333333],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",0.99989906],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, ",500000],PARAMETER[\"false_northing\",325992.681],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32062\"]]"); p = add_epsg_def (filter, first, last, 32064, "epsg", 32064, "NAD27 / BLM 14N (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-99 +k=0.9996 +x_0=500000.00"); add_proj4text (p, 1, "1016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / BLM 14N (ftUS)\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 7, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, "\",-99],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"f"); add_srs_wkt (p, 9, "alse_easting\",1640416.67],PARAMETER[\"false_northing\","); add_srs_wkt (p, 10, "0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY["); add_srs_wkt (p, 11, "\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"32064\"]]"); p = add_epsg_def (filter, first, last, 32065, "epsg", 32065, "NAD27 / BLM 15N (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9996 +x_0=500000.00"); add_proj4text (p, 1, "1016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / BLM 15N (ftUS)\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 7, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, "\",-93],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"f"); add_srs_wkt (p, 9, "alse_easting\",1640416.67],PARAMETER[\"false_northing\","); add_srs_wkt (p, 10, "0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY["); add_srs_wkt (p, 11, "\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"32065\"]]"); p = add_epsg_def (filter, first, last, 32066, "epsg", 32066, "NAD27 / BLM 16N (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9996 +x_0=500000.00"); add_proj4text (p, 1, "1016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / BLM 16N (ftUS)\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 7, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, "\",-87],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"f"); add_srs_wkt (p, 9, "alse_easting\",1640416.67],PARAMETER[\"false_northing\","); add_srs_wkt (p, 10, "0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY["); add_srs_wkt (p, 11, "\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"32066\"]]"); p = add_epsg_def (filter, first, last, 32067, "epsg", 32067, "NAD27 / BLM 17N (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9996 +x_0=500000.00"); add_proj4text (p, 1, "1016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / BLM 17N (ftUS)\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 7, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, "\",-81],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"f"); add_srs_wkt (p, 9, "alse_easting\",1640416.67],PARAMETER[\"false_northing\","); add_srs_wkt (p, 10, "0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY["); add_srs_wkt (p, 11, "\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"32067\"]]"); p = add_epsg_def (filter, first, last, 32074, "epsg", 32074, "NAD27 / BLM 14N (feet) (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-99 +k=0.9996 +x_0=500000.00"); add_proj4text (p, 1, "1016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / BLM 14N (feet) (deprecated)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"C"); add_srs_wkt (p, 2, "larke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4267\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 8, "ral_meridian\",-99],PARAMETER[\"scale_factor\",0.9996],P"); add_srs_wkt (p, 9, "ARAMETER[\"false_easting\",1640416.67],PARAMETER[\"false"); add_srs_wkt (p, 10, "_northing\",0],UNIT[\"US survey foot\",0.304800609601219"); add_srs_wkt (p, 11, "2,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Y\",NORTH],AUTHORITY[\"EPSG\",\"32074\"]]"); p = add_epsg_def (filter, first, last, 32075, "epsg", 32075, "NAD27 / BLM 15N (feet) (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9996 +x_0=500000.00"); add_proj4text (p, 1, "1016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / BLM 15N (feet) (deprecated)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"C"); add_srs_wkt (p, 2, "larke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4267\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 8, "ral_meridian\",-93],PARAMETER[\"scale_factor\",0.9996],P"); add_srs_wkt (p, 9, "ARAMETER[\"false_easting\",1640416.67],PARAMETER[\"false"); add_srs_wkt (p, 10, "_northing\",0],UNIT[\"US survey foot\",0.304800609601219"); add_srs_wkt (p, 11, "2,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Y\",NORTH],AUTHORITY[\"EPSG\",\"32075\"]]"); p = add_epsg_def (filter, first, last, 32076, "epsg", 32076, "NAD27 / BLM 16N (feet) (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9996 +x_0=500000.00"); add_proj4text (p, 1, "1016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / BLM 16N (feet) (deprecated)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"C"); add_srs_wkt (p, 2, "larke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4267\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 8, "ral_meridian\",-87],PARAMETER[\"scale_factor\",0.9996],P"); add_srs_wkt (p, 9, "ARAMETER[\"false_easting\",1640416.67],PARAMETER[\"false"); add_srs_wkt (p, 10, "_northing\",0],UNIT[\"US survey foot\",0.304800609601219"); add_srs_wkt (p, 11, "2,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Y\",NORTH],AUTHORITY[\"EPSG\",\"32076\"]]"); p = add_epsg_def (filter, first, last, 32077, "epsg", 32077, "NAD27 / BLM 17N (feet) (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9996 +x_0=500000.00"); add_proj4text (p, 1, "1016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / BLM 17N (feet) (deprecated)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"C"); add_srs_wkt (p, 2, "larke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4267\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 8, "ral_meridian\",-81],PARAMETER[\"scale_factor\",0.9996],P"); add_srs_wkt (p, 9, "ARAMETER[\"false_easting\",1640416.67],PARAMETER[\"false"); add_srs_wkt (p, 10, "_northing\",0],UNIT[\"US survey foot\",0.304800609601219"); add_srs_wkt (p, 11, "2,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Y\",NORTH],AUTHORITY[\"EPSG\",\"32077\"]]"); p = add_epsg_def (filter, first, last, 32081, "epsg", 32081, "NAD27 / MTM zone 1"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-53 +k=0.9999 +x_0=304800 +y"); add_proj4text (p, 1, "_0=0 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / MTM zone 1\",GEOGCS[\"NAD27\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); add_srs_wkt (p, 2, "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 6, "267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, "53],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false"); add_srs_wkt (p, 9, "_easting\",304800],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 10, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 11, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 12, "2081\"]]"); p = add_epsg_def (filter, first, last, 32082, "epsg", 32082, "NAD27 / MTM zone 2"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-56 +k=0.9999 +x_0=304800 +y"); add_proj4text (p, 1, "_0=0 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / MTM zone 2\",GEOGCS[\"NAD27\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); add_srs_wkt (p, 2, "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 6, "267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, "56],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false"); add_srs_wkt (p, 9, "_easting\",304800],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 10, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 11, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 12, "2082\"]]"); p = add_epsg_def (filter, first, last, 32083, "epsg", 32083, "NAD27 / MTM zone 3"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-58.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / MTM zone 3\",GEOGCS[\"NAD27\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); add_srs_wkt (p, 2, "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 6, "267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, "58.5],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",304800],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 11, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32083\"]]"); p = add_epsg_def (filter, first, last, 32084, "epsg", 32084, "NAD27 / MTM zone 4"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-61.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / MTM zone 4\",GEOGCS[\"NAD27\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); add_srs_wkt (p, 2, "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 6, "267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, "61.5],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",304800],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 11, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32084\"]]"); p = add_epsg_def (filter, first, last, 32085, "epsg", 32085, "NAD27 / MTM zone 5"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-64.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / MTM zone 5\",GEOGCS[\"NAD27\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); add_srs_wkt (p, 2, "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 6, "267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, "64.5],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",304800],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 11, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32085\"]]"); p = add_epsg_def (filter, first, last, 32086, "epsg", 32086, "NAD27 / MTM zone 6"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-67.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / MTM zone 6\",GEOGCS[\"NAD27\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); add_srs_wkt (p, 2, "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 6, "267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, "67.5],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",304800],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 11, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32086\"]]"); p = add_epsg_def (filter, first, last, 32098, "epsg", 32098, "NAD27 / Quebec Lambert"); add_proj4text (p, 0, "+proj=lcc +lat_1=60 +lat_2=46 +lat_0=44 +lon_0=-68.5 +x_"); add_proj4text (p, 1, "0=0 +y_0=0 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Quebec Lambert\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 7, "PARAMETER[\"standard_parallel_1\",60],PARAMETER[\"standa"); add_srs_wkt (p, 8, "rd_parallel_2\",46],PARAMETER[\"latitude_of_origin\",44]"); add_srs_wkt (p, 9, ",PARAMETER[\"central_meridian\",-68.5],PARAMETER[\"false"); add_srs_wkt (p, 10, "_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 12, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32098\"]]"); p = add_epsg_def (filter, first, last, 32099, "epsg", 32099, "NAD27 / Louisiana Offshore"); add_proj4text (p, 0, "+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666"); add_proj4text (p, 1, "667 +lat_0=25.66666666666667 +lon_0=-91.33333333333333 +"); add_proj4text (p, 2, "x_0=609601.2192024384 +y_0=0 +datum=NAD27 +units=us-ft +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Louisiana Offshore\",GEOGCS[\"NAD27\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186"); add_srs_wkt (p, 2, "6\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"700"); add_srs_wkt (p, 3, "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 6, "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 7, "\"],PARAMETER[\"standard_parallel_1\",27.83333333333333]"); add_srs_wkt (p, 8, ",PARAMETER[\"standard_parallel_2\",26.16666666666667],PA"); add_srs_wkt (p, 9, "RAMETER[\"latitude_of_origin\",25.66666666666667],PARAME"); add_srs_wkt (p, 10, "TER[\"central_meridian\",-91.33333333333333],PARAMETER[\""); add_srs_wkt (p, 11, "false_easting\",2000000],PARAMETER[\"false_northing\",0]"); add_srs_wkt (p, 12, ",UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 14, "HORITY[\"EPSG\",\"32099\"]]"); p = add_epsg_def (filter, first, last, 32100, "epsg", 32100, "NAD83 / Montana"); add_proj4text (p, 0, "+proj=lcc +lat_1=49 +lat_2=45 +lat_0=44.25 +lon_0=-109.5"); add_proj4text (p, 1, " +x_0=600000 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Montana\",GEOGCS[\"NAD83\",DATUM[\"Nort"); add_srs_wkt (p, 1, "h_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137,29"); add_srs_wkt (p, 2, "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,"); add_srs_wkt (p, 3, "0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 4, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 5, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Conic_2"); add_srs_wkt (p, 7, "SP\"],PARAMETER[\"standard_parallel_1\",49],PARAMETER[\""); add_srs_wkt (p, 8, "standard_parallel_2\",45],PARAMETER[\"latitude_of_origin"); add_srs_wkt (p, 9, "\",44.25],PARAMETER[\"central_meridian\",-109.5],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",600000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32100"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def (filter, first, last, 32104, "epsg", 32104, "NAD83 / Nebraska"); add_proj4text (p, 0, "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +"); add_proj4text (p, 1, "lon_0=-100 +x_0=500000 +y_0=0 +datum=NAD83 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Nebraska\",GEOGCS[\"NAD83\",DATUM[\"Nor"); add_srs_wkt (p, 1, "th_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 2, "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 3, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Conic"); add_srs_wkt (p, 7, "_2SP\"],PARAMETER[\"standard_parallel_1\",43],PARAMETER["); add_srs_wkt (p, 8, "\"standard_parallel_2\",40],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",39.83333333333334],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 10, "100],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 12, "001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"32104\"]]"); p = add_epsg_def (filter, first, last, 32107, "epsg", 32107, "NAD83 / Nevada East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0."); add_proj4text (p, 1, "9999 +x_0=200000 +y_0=8000000 +datum=NAD83 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Nevada East\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",34.75],PARAMETER[\"ce"); add_srs_wkt (p, 8, "ntral_meridian\",-115.5833333333333],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9999],PARAMETER[\"false_easting\",200000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",8000000],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); add_srs_wkt (p, 12, "TH],AUTHORITY[\"EPSG\",\"32107\"]]"); p = add_epsg_def (filter, first, last, 32108, "epsg", 32108, "NAD83 / Nevada Central"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0."); add_proj4text (p, 1, "9999 +x_0=500000 +y_0=6000000 +datum=NAD83 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Nevada Central\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 7, "or\"],PARAMETER[\"latitude_of_origin\",34.75],PARAMETER["); add_srs_wkt (p, 8, "\"central_meridian\",-116.6666666666667],PARAMETER[\"sca"); add_srs_wkt (p, 9, "le_factor\",0.9999],PARAMETER[\"false_easting\",500000],"); add_srs_wkt (p, 10, "PARAMETER[\"false_northing\",6000000],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"32108\"]]"); p = add_epsg_def (filter, first, last, 32109, "epsg", 32109, "NAD83 / Nevada West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0."); add_proj4text (p, 1, "9999 +x_0=800000 +y_0=4000000 +datum=NAD83 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Nevada West\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",34.75],PARAMETER[\"ce"); add_srs_wkt (p, 8, "ntral_meridian\",-118.5833333333333],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9999],PARAMETER[\"false_easting\",800000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",4000000],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); add_srs_wkt (p, 12, "TH],AUTHORITY[\"EPSG\",\"32109\"]]"); p = add_epsg_def (filter, first, last, 32110, "epsg", 32110, "NAD83 / New Hampshire"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.9"); add_proj4text (p, 1, "99966667 +x_0=300000 +y_0=0 +datum=NAD83 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / New Hampshire\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",42.5],PARAMETER[\"c"); add_srs_wkt (p, 8, "entral_meridian\",-71.66666666666667],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",0.999966667],PARAMETER[\"false_easting\",300000"); add_srs_wkt (p, 10, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); add_srs_wkt (p, 12, "TH],AUTHORITY[\"EPSG\",\"32110\"]]"); p = add_epsg_def (filter, first, last, 32111, "epsg", 32111, "NAD83 / New Jersey"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9"); add_proj4text (p, 1, "999 +x_0=150000 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / New Jersey\",GEOGCS[\"NAD83\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",38.83333333333334],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",-74.5],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",0.9999],PARAMETER[\"false_easting\",150000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"32111\"]]"); p = add_epsg_def (filter, first, last, 32112, "epsg", 32112, "NAD83 / New Mexico East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999"); add_proj4text (p, 1, "909091 +x_0=165000 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / New Mexico East\",GEOGCS[\"NAD83\",DATU"); add_srs_wkt (p, 1, "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63"); add_srs_wkt (p, 2, "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8"); add_srs_wkt (p, 3, "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor\"],PARAMETER[\"latitude_of_origin\",31],PARAMETER[\""); add_srs_wkt (p, 8, "central_meridian\",-104.3333333333333],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",0.999909091],PARAMETER[\"false_easting\",16500"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 12, "RTH],AUTHORITY[\"EPSG\",\"32112\"]]"); p = add_epsg_def (filter, first, last, 32113, "epsg", 32113, "NAD83 / New Mexico Central"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=5000"); add_proj4text (p, 1, "00 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / New Mexico Central\",GEOGCS[\"NAD83\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, "rcator\"],PARAMETER[\"latitude_of_origin\",31],PARAMETER"); add_srs_wkt (p, 8, "[\"central_meridian\",-106.25],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9999],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"32113\"]]"); p = add_epsg_def (filter, first, last, 32114, "epsg", 32114, "NAD83 / New Mexico West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999"); add_proj4text (p, 1, "916667 +x_0=830000 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / New Mexico West\",GEOGCS[\"NAD83\",DATU"); add_srs_wkt (p, 1, "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63"); add_srs_wkt (p, 2, "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8"); add_srs_wkt (p, 3, "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor\"],PARAMETER[\"latitude_of_origin\",31],PARAMETER[\""); add_srs_wkt (p, 8, "central_meridian\",-107.8333333333333],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",0.999916667],PARAMETER[\"false_easting\",83000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 12, "RTH],AUTHORITY[\"EPSG\",\"32114\"]]"); p = add_epsg_def (filter, first, last, 32115, "epsg", 32115, "NAD83 / New York East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9"); add_proj4text (p, 1, "999 +x_0=150000 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / New York East\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",38.83333333333334],"); add_srs_wkt (p, 8, "PARAMETER[\"central_meridian\",-74.5],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",0.9999],PARAMETER[\"false_easting\",150000],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 11, "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"32115\"]]"); p = add_epsg_def (filter, first, last, 32116, "epsg", 32116, "NAD83 / New York Central"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.999"); add_proj4text (p, 1, "9375 +x_0=250000 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / New York Central\",GEOGCS[\"NAD83\",DAT"); add_srs_wkt (p, 1, "UM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6"); add_srs_wkt (p, 2, "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS"); add_srs_wkt (p, 3, "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor\"],PARAMETER[\"latitude_of_origin\",40],PARAMETER[\""); add_srs_wkt (p, 8, "central_meridian\",-76.58333333333333],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",0.9999375],PARAMETER[\"false_easting\",250000]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 11, "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"32116\"]]"); } #endif /* full EPSG initialization enabled/disabled */ libspatialite-4.1.1/src/srsinit/Makefile.am0000664000175000017500000000227112163502133015602 00000000000000 SUBDIRS = epsg_update INCLUDES = @CFLAGS@ INCLUDES += -I$(top_srcdir)/src/headers noinst_LTLIBRARIES = libsrsinit.la libsrsinit_la_SOURCES = srs_init.c \ epsg_inlined_00.c \ epsg_inlined_01.c \ epsg_inlined_02.c \ epsg_inlined_03.c \ epsg_inlined_04.c \ epsg_inlined_05.c \ epsg_inlined_06.c \ epsg_inlined_07.c \ epsg_inlined_08.c \ epsg_inlined_09.c \ epsg_inlined_10.c \ epsg_inlined_11.c \ epsg_inlined_12.c \ epsg_inlined_13.c \ epsg_inlined_14.c \ epsg_inlined_15.c \ epsg_inlined_16.c \ epsg_inlined_17.c \ epsg_inlined_18.c \ epsg_inlined_19.c \ epsg_inlined_20.c \ epsg_inlined_21.c \ epsg_inlined_22.c \ epsg_inlined_23.c \ epsg_inlined_24.c \ epsg_inlined_25.c \ epsg_inlined_26.c \ epsg_inlined_27.c \ epsg_inlined_28.c \ epsg_inlined_29.c \ epsg_inlined_30.c \ epsg_inlined_31.c \ epsg_inlined_32.c \ epsg_inlined_33.c \ epsg_inlined_34.c \ epsg_inlined_35.c \ epsg_inlined_36.c \ epsg_inlined_37.c \ epsg_inlined_38.c \ epsg_inlined_39.c \ epsg_inlined_40.c \ epsg_inlined_wgs84_00.c \ epsg_inlined_wgs84_01.c \ epsg_inlined_prussian.c \ epsg_inlined_extra.c libsrsinit_la_CFLAGS = -fvisibility=hidden MOSTLYCLEANFILES = *.gcna *.gcno *.gcda libspatialite-4.1.1/src/srsinit/epsg_inlined_10.c0000664000175000017500000046064112163502133016663 00000000000000/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def (filter, first, last, 3036, "epsg", 3036, "Moznet / UTM zone 36S"); add_proj4text (p, 0, "+proj=utm +zone=36 +south +ellps=WGS84 +towgs84=0,0,0,-0"); add_proj4text (p, 1, ",-0,-0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Moznet / UTM zone 36S\",GEOGCS[\"Moznet\",DATUM"); add_srs_wkt (p, 1, "[\"Moznet_ITRF94\",SPHEROID[\"WGS 84\",6378137,298.25722"); add_srs_wkt (p, 2, "3563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,0,0,-0,-0,-"); add_srs_wkt (p, 3, "0,0],AUTHORITY[\"EPSG\",\"6130\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4130\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 7, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 8, "ian\",33],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 9, "false_easting\",500000],PARAMETER[\"false_northing\",100"); add_srs_wkt (p, 10, "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 11, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"3036\"]]"); p = add_epsg_def (filter, first, last, 3037, "epsg", 3037, "Moznet / UTM zone 37S"); add_proj4text (p, 0, "+proj=utm +zone=37 +south +ellps=WGS84 +towgs84=0,0,0,-0"); add_proj4text (p, 1, ",-0,-0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Moznet / UTM zone 37S\",GEOGCS[\"Moznet\",DATUM"); add_srs_wkt (p, 1, "[\"Moznet_ITRF94\",SPHEROID[\"WGS 84\",6378137,298.25722"); add_srs_wkt (p, 2, "3563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,0,0,-0,-0,-"); add_srs_wkt (p, 3, "0,0],AUTHORITY[\"EPSG\",\"6130\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4130\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 7, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 8, "ian\",39],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 9, "false_easting\",500000],PARAMETER[\"false_northing\",100"); add_srs_wkt (p, 10, "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 11, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"3037\"]]"); p = add_epsg_def (filter, first, last, 3038, "epsg", 3038, "ETRS89 / TM26"); add_proj4text (p, 0, "+proj=utm +zone=26 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / TM26\",GEOGCS[\"ETRS89\",DATUM[\"Europ"); add_srs_wkt (p, 1, "ean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 7, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 8, "ETER[\"central_meridian\",-27],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 12, "T],AUTHORITY[\"EPSG\",\"3038\"]]"); p = add_epsg_def (filter, first, last, 3039, "epsg", 3039, "ETRS89 / TM27"); add_proj4text (p, 0, "+proj=utm +zone=27 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / TM27\",GEOGCS[\"ETRS89\",DATUM[\"Europ"); add_srs_wkt (p, 1, "ean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 7, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 8, "ETER[\"central_meridian\",-21],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 12, "T],AUTHORITY[\"EPSG\",\"3039\"]]"); p = add_epsg_def (filter, first, last, 3040, "epsg", 3040, "ETRS89 / TM28"); add_proj4text (p, 0, "+proj=utm +zone=28 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / TM28\",GEOGCS[\"ETRS89\",DATUM[\"Europ"); add_srs_wkt (p, 1, "ean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 7, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 8, "ETER[\"central_meridian\",-15],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 12, "T],AUTHORITY[\"EPSG\",\"3040\"]]"); p = add_epsg_def (filter, first, last, 3041, "epsg", 3041, "ETRS89 / TM29"); add_proj4text (p, 0, "+proj=utm +zone=29 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / TM29\",GEOGCS[\"ETRS89\",DATUM[\"Europ"); add_srs_wkt (p, 1, "ean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 7, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 8, "ETER[\"central_meridian\",-9],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 12, "T],AUTHORITY[\"EPSG\",\"3041\"]]"); p = add_epsg_def (filter, first, last, 3042, "epsg", 3042, "ETRS89 / TM30"); add_proj4text (p, 0, "+proj=utm +zone=30 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / TM30\",GEOGCS[\"ETRS89\",DATUM[\"Europ"); add_srs_wkt (p, 1, "ean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 7, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 8, "ETER[\"central_meridian\",-3],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 12, "T],AUTHORITY[\"EPSG\",\"3042\"]]"); p = add_epsg_def (filter, first, last, 3043, "epsg", 3043, "ETRS89 / TM31"); add_proj4text (p, 0, "+proj=utm +zone=31 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / TM31\",GEOGCS[\"ETRS89\",DATUM[\"Europ"); add_srs_wkt (p, 1, "ean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 7, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 8, "ETER[\"central_meridian\",3],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 12, "T],AUTHORITY[\"EPSG\",\"3043\"]]"); p = add_epsg_def (filter, first, last, 3044, "epsg", 3044, "ETRS89 / TM32"); add_proj4text (p, 0, "+proj=utm +zone=32 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / TM32\",GEOGCS[\"ETRS89\",DATUM[\"Europ"); add_srs_wkt (p, 1, "ean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 7, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 8, "ETER[\"central_meridian\",9],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 12, "T],AUTHORITY[\"EPSG\",\"3044\"]]"); p = add_epsg_def (filter, first, last, 3045, "epsg", 3045, "ETRS89 / TM33"); add_proj4text (p, 0, "+proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / TM33\",GEOGCS[\"ETRS89\",DATUM[\"Europ"); add_srs_wkt (p, 1, "ean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 7, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 8, "ETER[\"central_meridian\",15],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 12, "T],AUTHORITY[\"EPSG\",\"3045\"]]"); p = add_epsg_def (filter, first, last, 3046, "epsg", 3046, "ETRS89 / TM34"); add_proj4text (p, 0, "+proj=utm +zone=34 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / TM34\",GEOGCS[\"ETRS89\",DATUM[\"Europ"); add_srs_wkt (p, 1, "ean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 7, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 8, "ETER[\"central_meridian\",21],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 12, "T],AUTHORITY[\"EPSG\",\"3046\"]]"); p = add_epsg_def (filter, first, last, 3047, "epsg", 3047, "ETRS89 / TM35"); add_proj4text (p, 0, "+proj=utm +zone=35 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / TM35\",GEOGCS[\"ETRS89\",DATUM[\"Europ"); add_srs_wkt (p, 1, "ean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 7, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 8, "ETER[\"central_meridian\",27],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 12, "T],AUTHORITY[\"EPSG\",\"3047\"]]"); p = add_epsg_def (filter, first, last, 3048, "epsg", 3048, "ETRS89 / TM36"); add_proj4text (p, 0, "+proj=utm +zone=36 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / TM36\",GEOGCS[\"ETRS89\",DATUM[\"Europ"); add_srs_wkt (p, 1, "ean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 7, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 8, "ETER[\"central_meridian\",33],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 12, "T],AUTHORITY[\"EPSG\",\"3048\"]]"); p = add_epsg_def (filter, first, last, 3049, "epsg", 3049, "ETRS89 / TM37"); add_proj4text (p, 0, "+proj=utm +zone=37 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / TM37\",GEOGCS[\"ETRS89\",DATUM[\"Europ"); add_srs_wkt (p, 1, "ean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 7, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 8, "ETER[\"central_meridian\",39],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 12, "T],AUTHORITY[\"EPSG\",\"3049\"]]"); p = add_epsg_def (filter, first, last, 3050, "epsg", 3050, "ETRS89 / TM38"); add_proj4text (p, 0, "+proj=utm +zone=38 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / TM38\",GEOGCS[\"ETRS89\",DATUM[\"Europ"); add_srs_wkt (p, 1, "ean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 7, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 8, "ETER[\"central_meridian\",45],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 12, "T],AUTHORITY[\"EPSG\",\"3050\"]]"); p = add_epsg_def (filter, first, last, 3051, "epsg", 3051, "ETRS89 / TM39"); add_proj4text (p, 0, "+proj=utm +zone=39 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / TM39\",GEOGCS[\"ETRS89\",DATUM[\"Europ"); add_srs_wkt (p, 1, "ean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 7, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 8, "ETER[\"central_meridian\",51],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 12, "T],AUTHORITY[\"EPSG\",\"3051\"]]"); p = add_epsg_def (filter, first, last, 3054, "epsg", 3054, "Hjorsey 1955 / UTM zone 26N"); add_proj4text (p, 0, "+proj=utm +zone=26 +ellps=intl +towgs84=-73,46,-86,0,0,0"); add_proj4text (p, 1, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Hjorsey 1955 / UTM zone 26N\",GEOGCS[\"Hjorsey "); add_srs_wkt (p, 1, "1955\",DATUM[\"Hjorsey_1955\",SPHEROID[\"International 1"); add_srs_wkt (p, 2, "924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84["); add_srs_wkt (p, 3, "-73,46,-86,0,0,0,0],AUTHORITY[\"EPSG\",\"6658\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4658\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 8, "\"central_meridian\",-27],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 9, "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 11, "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"3054\"]]"); p = add_epsg_def (filter, first, last, 3055, "epsg", 3055, "Hjorsey 1955 / UTM zone 27N"); add_proj4text (p, 0, "+proj=utm +zone=27 +ellps=intl +towgs84=-73,46,-86,0,0,0"); add_proj4text (p, 1, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Hjorsey 1955 / UTM zone 27N\",GEOGCS[\"Hjorsey "); add_srs_wkt (p, 1, "1955\",DATUM[\"Hjorsey_1955\",SPHEROID[\"International 1"); add_srs_wkt (p, 2, "924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84["); add_srs_wkt (p, 3, "-73,46,-86,0,0,0,0],AUTHORITY[\"EPSG\",\"6658\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4658\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 8, "\"central_meridian\",-21],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 9, "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 11, "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"3055\"]]"); p = add_epsg_def (filter, first, last, 3056, "epsg", 3056, "Hjorsey 1955 / UTM zone 28N"); add_proj4text (p, 0, "+proj=utm +zone=28 +ellps=intl +towgs84=-73,46,-86,0,0,0"); add_proj4text (p, 1, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Hjorsey 1955 / UTM zone 28N\",GEOGCS[\"Hjorsey "); add_srs_wkt (p, 1, "1955\",DATUM[\"Hjorsey_1955\",SPHEROID[\"International 1"); add_srs_wkt (p, 2, "924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84["); add_srs_wkt (p, 3, "-73,46,-86,0,0,0,0],AUTHORITY[\"EPSG\",\"6658\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4658\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 8, "\"central_meridian\",-15],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 9, "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 11, "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"3056\"]]"); p = add_epsg_def (filter, first, last, 3057, "epsg", 3057, "ISN93 / Lambert 1993"); add_proj4text (p, 0, "+proj=lcc +lat_1=64.25 +lat_2=65.75 +lat_0=65 +lon_0=-19"); add_proj4text (p, 1, " +x_0=500000 +y_0=500000 +ellps=GRS80 +towgs84=0,0,0,0,0"); add_proj4text (p, 2, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ISN93 / Lambert 1993\",GEOGCS[\"ISN93\",DATUM[\""); add_srs_wkt (p, 1, "Islands_Net_1993\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 2, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 3, ",0],AUTHORITY[\"EPSG\",\"6659\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 5, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"4659\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 7, "],PARAMETER[\"standard_parallel_1\",64.25],PARAMETER[\"s"); add_srs_wkt (p, 8, "tandard_parallel_2\",65.75],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",65],PARAMETER[\"central_meridian\",-19],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",500000],PARAMETER[\"false_northing\",500"); add_srs_wkt (p, 11, "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS"); add_srs_wkt (p, 12, "[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3057"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def (filter, first, last, 3058, "epsg", 3058, "Helle 1954 / Jan Mayen Grid"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-8.5 +k=1 +x_0=50000 +y_0=-7"); add_proj4text (p, 1, "800000 +ellps=intl +towgs84=982.609,552.753,-540.873,6.6"); add_proj4text (p, 2, "8163,-31.6115,-19.8482,16.805 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Helle 1954 / Jan Mayen Grid\",GEOGCS[\"Helle 19"); add_srs_wkt (p, 1, "54\",DATUM[\"Helle_1954\",SPHEROID[\"International 1924\""); add_srs_wkt (p, 2, ",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[982.6"); add_srs_wkt (p, 3, "09,552.753,-540.873,6.68163,-31.6115,-19.8482,16.805],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6660\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "660\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "8.5],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",50000],PARAMETER[\"false_northing\",-7800000],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"x\",N"); add_srs_wkt (p, 12, "ORTH],AXIS[\"y\",EAST],AUTHORITY[\"EPSG\",\"3058\"]]"); p = add_epsg_def (filter, first, last, 3059, "epsg", 3059, "LKS92 / Latvia TM"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9996 +x_0=500000 +y_"); add_proj4text (p, 1, "0=-6000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"LKS92 / Latvia TM\",GEOGCS[\"LKS92\",DATUM[\"La"); add_srs_wkt (p, 1, "tvia_1992\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"6661\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 5, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"46"); add_srs_wkt (p, 6, "61\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 7, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",24"); add_srs_wkt (p, 8, "],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_e"); add_srs_wkt (p, 9, "asting\",500000],PARAMETER[\"false_northing\",-6000000],"); add_srs_wkt (p, 10, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 11, ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3059\"]]"); p = add_epsg_def (filter, first, last, 3060, "epsg", 3060, "IGN72 Grande Terre / UTM zone 58S"); add_proj4text (p, 0, "+proj=utm +zone=58 +south +ellps=intl +towgs84=-11.64,-3"); add_proj4text (p, 1, "48.6,291.98,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGN72 Grande Terre / UTM zone 58S\",GEOGCS[\"IG"); add_srs_wkt (p, 1, "N72 Grande Terre\",DATUM[\"IGN72_Grande_Terre\",SPHEROID"); add_srs_wkt (p, 2, "[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7022\"]],TOWGS84[-11.64,-348.6,291.98,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6634\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4662\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",165],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",10000000],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "060\"]]"); p = add_epsg_def (filter, first, last, 3061, "epsg", 3061, "Porto Santo 1995 / UTM zone 28N"); add_proj4text (p, 0, "+proj=utm +zone=28 +ellps=intl +towgs84=-502.862,-247.43"); add_proj4text (p, 1, "8,312.724,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Porto Santo 1995 / UTM zone 28N\",GEOGCS[\"Port"); add_srs_wkt (p, 1, "o Santo 1995\",DATUM[\"Porto_Santo_1995\",SPHEROID[\"Int"); add_srs_wkt (p, 2, "ernational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); add_srs_wkt (p, 3, "]],TOWGS84[-502.862,-247.438,312.724,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6663\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4663\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",-15],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",0.9996],PARAMETER[\"false_easting"); add_srs_wkt (p, 10, "\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 12, "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3061\"]]"); p = add_epsg_def (filter, first, last, 3062, "epsg", 3062, "Azores Oriental 1995 / UTM zone 26N"); add_proj4text (p, 0, "+proj=utm +zone=26 +ellps=intl +towgs84=-204.619,140.176"); add_proj4text (p, 1, ",55.226,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Azores Oriental 1995 / UTM zone 26N\",GEOGCS[\""); add_srs_wkt (p, 1, "Azores Oriental 1995\",DATUM[\"Azores_Oriental_Islands_1"); add_srs_wkt (p, 2, "995\",SPHEROID[\"International 1924\",6378388,297,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7022\"]],TOWGS84[-204.619,140.176,55.226,"); add_srs_wkt (p, 4, "0,0,0,0],AUTHORITY[\"EPSG\",\"6664\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 5, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 6, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 7, "EPSG\",\"4664\"]],PROJECTION[\"Transverse_Mercator\"],PA"); add_srs_wkt (p, 8, "RAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_me"); add_srs_wkt (p, 9, "ridian\",-27],PARAMETER[\"scale_factor\",0.9996],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"3062\"]]"); p = add_epsg_def (filter, first, last, 3063, "epsg", 3063, "Azores Central 1995 / UTM zone 26N"); add_proj4text (p, 0, "+proj=utm +zone=26 +ellps=intl +towgs84=-106.226,166.366"); add_proj4text (p, 1, ",-37.893,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Azores Central 1995 / UTM zone 26N\",GEOGCS[\"A"); add_srs_wkt (p, 1, "zores Central 1995\",DATUM[\"Azores_Central_Islands_1995"); add_srs_wkt (p, 2, "\",SPHEROID[\"International 1924\",6378388,297,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7022\"]],TOWGS84[-106.226,166.366,-37.893,0,"); add_srs_wkt (p, 4, "0,0,0],AUTHORITY[\"EPSG\",\"6665\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4665\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 8, "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, "dian\",-27],PARAMETER[\"scale_factor\",0.9996],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"3063\"]]"); p = add_epsg_def (filter, first, last, 3064, "epsg", 3064, "IGM95 / UTM zone 32N"); add_proj4text (p, 0, "+proj=utm +zone=32 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGM95 / UTM zone 32N\",GEOGCS[\"IGM95\",DATUM[\""); add_srs_wkt (p, 1, "Istituto_Geografico_Militaire_1995\",SPHEROID[\"WGS 84\""); add_srs_wkt (p, 2, ",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6670\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4670\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 8, "\"central_meridian\",9],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 9, "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 10, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 11, "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"3064\"]]"); p = add_epsg_def (filter, first, last, 3065, "epsg", 3065, "IGM95 / UTM zone 33N"); add_proj4text (p, 0, "+proj=utm +zone=33 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGM95 / UTM zone 33N\",GEOGCS[\"IGM95\",DATUM[\""); add_srs_wkt (p, 1, "Istituto_Geografico_Militaire_1995\",SPHEROID[\"WGS 84\""); add_srs_wkt (p, 2, ",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6670\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4670\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 8, "\"central_meridian\",15],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 9, "96],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 11, "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"3065\"]]"); p = add_epsg_def (filter, first, last, 3066, "epsg", 3066, "ED50 / Jordan TM"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=37 +k=0.9998 +x_0=500000 +y_"); add_proj4text (p, 1, "0=-3000000 +ellps=intl +towgs84=-87,-98,-121,0,0,0,0 +un"); add_proj4text (p, 2, "its=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / Jordan TM\",GEOGCS[\"ED50\",DATUM[\"Euro"); add_srs_wkt (p, 1, "pean_Datum_1950\",SPHEROID[\"International 1924\",637838"); add_srs_wkt (p, 2, "8,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-121"); add_srs_wkt (p, 3, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 7, "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); add_srs_wkt (p, 8, "meridian\",37],PARAMETER[\"scale_factor\",0.9998],PARAME"); add_srs_wkt (p, 9, "TER[\"false_easting\",500000],PARAMETER[\"false_northing"); add_srs_wkt (p, 10, "\",-3000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 11, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 12, "RITY[\"EPSG\",\"3066\"]]"); p = add_epsg_def (filter, first, last, 3067, "epsg", 3067, "ETRS89 / TM35FIN(E,N)"); add_proj4text (p, 0, "+proj=utm +zone=35 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / TM35FIN(E,N)\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, "],PARAMETER[\"central_meridian\",27],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"3067\"]]"); p = add_epsg_def (filter, first, last, 3068, "epsg", 3068, "DHDN / Soldner Berlin"); add_proj4text (p, 0, "+proj=cass +lat_0=52.41864827777778 +lon_0=13.6272036666"); add_proj4text (p, 1, "6667 +x_0=40000 +y_0=10000 +datum=potsdam +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner Berlin\",GEOGCS[\"DHDN\",DATUM[\""); add_srs_wkt (p, 1, "Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",6"); add_srs_wkt (p, 2, "377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOW"); add_srs_wkt (p, 3, "GS84[598.1,73.7,418.2,0.202,0.045,-2.455,6.7],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Cassini_Soldner\"],PARAMETER[\"latitude_of_"); add_srs_wkt (p, 8, "origin\",52.41864827777778],PARAMETER[\"central_meridian"); add_srs_wkt (p, 9, "\",13.62720366666667],PARAMETER[\"false_easting\",40000]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_northing\",10000],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"x\",NORTH],AXIS[\"y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"3068\"]]"); p = add_epsg_def (filter, first, last, 3069, "epsg", 3069, "NAD27 / Wisconsin Transverse Mercator"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-90 +k=0.9996 +x_0=500000 +y"); add_proj4text (p, 1, "_0=-4500000 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Wisconsin Transverse Mercator\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\""); add_srs_wkt (p, 2, "Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"4267\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 7, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 8, "ntral_meridian\",-90],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 9, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 10, "orthing\",-4500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"3069\"]]"); p = add_epsg_def (filter, first, last, 3070, "epsg", 3070, "NAD83 / Wisconsin Transverse Mercator"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-90 +k=0.9996 +x_0=520000 +y"); add_proj4text (p, 1, "_0=-4480000 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Wisconsin Transverse Mercator\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\""); add_srs_wkt (p, 2, "GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "19\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, "ARAMETER[\"central_meridian\",-90],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, "tor\",0.9996],PARAMETER[\"false_easting\",520000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",-4480000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 11, "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"3070\"]]"); p = add_epsg_def (filter, first, last, 3071, "epsg", 3071, "NAD83(HARN) / Wisconsin Transverse Mercator"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-90 +k=0.9996 +x_0=520000 +y"); add_proj4text (p, 1, "_0=-4480000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Wisconsin Transverse Mercator\",G"); add_srs_wkt (p, 1, "EOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Refere"); add_srs_wkt (p, 2, "nce_Network\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4152\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "90],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false"); add_srs_wkt (p, 10, "_easting\",520000],PARAMETER[\"false_northing\",-4480000"); add_srs_wkt (p, 11, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3071\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def (filter, first, last, 3072, "epsg", 3072, "NAD83 / Maine CS2000 East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=43.83333333333334 +lon_0=-67.875 +k=0"); add_proj4text (p, 1, ".99998 +x_0=700000 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Maine CS2000 East\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 7, "cator\"],PARAMETER[\"latitude_of_origin\",43.83333333333"); add_srs_wkt (p, 8, "334],PARAMETER[\"central_meridian\",-67.875],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.99998],PARAMETER[\"false_easting\",7000"); add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); add_srs_wkt (p, 12, "ORTH],AUTHORITY[\"EPSG\",\"3072\"]]"); p = add_epsg_def (filter, first, last, 3073, "epsg", 3073, "NAD83 / Maine CS2000 Central (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=43 +lon_0=-69.125 +k=0.99998 +x_0=500"); add_proj4text (p, 1, "000 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Maine CS2000 Central (deprecated)\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83\",DATUM[\"North_American_Datum_1983\",SPHERO"); add_srs_wkt (p, 2, "ID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6269\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",43],PARAMETER[\"central_meridian\",-69.125],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.99998],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); add_srs_wkt (p, 12, "ORTH],AUTHORITY[\"EPSG\",\"3073\"]]"); p = add_epsg_def (filter, first, last, 3074, "epsg", 3074, "NAD83 / Maine CS2000 West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.375 +k=0"); add_proj4text (p, 1, ".99998 +x_0=300000 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Maine CS2000 West\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 7, "cator\"],PARAMETER[\"latitude_of_origin\",42.83333333333"); add_srs_wkt (p, 8, "334],PARAMETER[\"central_meridian\",-70.375],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.99998],PARAMETER[\"false_easting\",3000"); add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); add_srs_wkt (p, 12, "ORTH],AUTHORITY[\"EPSG\",\"3074\"]]"); p = add_epsg_def (filter, first, last, 3075, "epsg", 3075, "NAD83(HARN) / Maine CS2000 East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=43.83333333333334 +lon_0=-67.875 +k=0"); add_proj4text (p, 1, ".99998 +x_0=700000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Maine CS2000 East\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",43.83333333333334],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",-67.875],PARAMETER[\"scale_factor\",0.99998],PARAMETER["); add_srs_wkt (p, 10, "\"false_easting\",700000],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 11, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3075\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def (filter, first, last, 3076, "epsg", 3076, "NAD83(HARN) / Maine CS2000 Central (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=43 +lon_0=-69.125 +k=0.99998 +x_0=500"); add_proj4text (p, 1, "000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Maine CS2000 Central (deprecated)"); add_srs_wkt (p, 1, "\",GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Re"); add_srs_wkt (p, 2, "ference_Network\",SPHEROID[\"GRS 1980\",6378137,298.2572"); add_srs_wkt (p, 3, "22101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,"); add_srs_wkt (p, 4, "0],AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 6, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4152\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 8, "R[\"latitude_of_origin\",43],PARAMETER[\"central_meridia"); add_srs_wkt (p, 9, "n\",-69.125],PARAMETER[\"scale_factor\",0.99998],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3076\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def (filter, first, last, 3077, "epsg", 3077, "NAD83(HARN) / Maine CS2000 West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.375 +k=0"); add_proj4text (p, 1, ".99998 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Maine CS2000 West\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",42.83333333333334],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",-70.375],PARAMETER[\"scale_factor\",0.99998],PARAMETER["); add_srs_wkt (p, 10, "\"false_easting\",300000],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 11, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3077\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def (filter, first, last, 3078, "epsg", 3078, "NAD83 / Michigan Oblique Mercator"); add_proj4text (p, 0, "+proj=omerc +lat_0=45.30916666666666 +lonc=-86 +alpha=33"); add_proj4text (p, 1, "7.25556 +k=0.9996 +x_0=2546731.496 +y_0=-4354009.816 +ga"); add_proj4text (p, 2, "mma=337.25556 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Michigan Oblique Mercator\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Hotine_"); add_srs_wkt (p, 7, "Oblique_Mercator\"],PARAMETER[\"latitude_of_center\",45."); add_srs_wkt (p, 8, "30916666666666],PARAMETER[\"longitude_of_center\",-86],P"); add_srs_wkt (p, 9, "ARAMETER[\"azimuth\",337.25556],PARAMETER[\"rectified_gr"); add_srs_wkt (p, 10, "id_angle\",337.25556],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_easting\",2546731.496],PARAMETER[\"fa"); add_srs_wkt (p, 12, "lse_northing\",-4354009.816],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 14, "UTHORITY[\"EPSG\",\"3078\"]]"); p = add_epsg_def (filter, first, last, 3079, "epsg", 3079, "NAD83(HARN) / Michigan Oblique Mercator"); add_proj4text (p, 0, "+proj=omerc +lat_0=45.30916666666666 +lonc=-86 +alpha=33"); add_proj4text (p, 1, "7.25556 +k=0.9996 +x_0=2546731.496 +y_0=-4354009.816 +ga"); add_proj4text (p, 2, "mma=337.25556 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units"); add_proj4text (p, 3, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Michigan Oblique Mercator\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_"); add_srs_wkt (p, 2, "Network\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Hotine_Oblique_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_center\",45.30916666666666],PARAMETER[\"long"); add_srs_wkt (p, 9, "itude_of_center\",-86],PARAMETER[\"azimuth\",337.25556],"); add_srs_wkt (p, 10, "PARAMETER[\"rectified_grid_angle\",337.25556],PARAMETER["); add_srs_wkt (p, 11, "\"scale_factor\",0.9996],PARAMETER[\"false_easting\",254"); add_srs_wkt (p, 12, "6731.496],PARAMETER[\"false_northing\",-4354009.816],UNI"); add_srs_wkt (p, 13, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",E"); add_srs_wkt (p, 14, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3079\"]]"); p = add_epsg_def (filter, first, last, 3080, "epsg", 3080, "NAD27 / Shackleford"); add_proj4text (p, 0, "+proj=lcc +lat_1=27.41666666666667 +lat_2=34.91666666666"); add_proj4text (p, 1, "666 +lat_0=31.16666666666667 +lon_0=-100 +x_0=914400 +y_"); add_proj4text (p, 2, "0=914400 +datum=NAD27 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Shackleford\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 7, "AMETER[\"standard_parallel_1\",27.41666666666667],PARAME"); add_srs_wkt (p, 8, "TER[\"standard_parallel_2\",34.91666666666666],PARAMETER"); add_srs_wkt (p, 9, "[\"latitude_of_origin\",31.16666666666667],PARAMETER[\"c"); add_srs_wkt (p, 10, "entral_meridian\",-100],PARAMETER[\"false_easting\",3000"); add_srs_wkt (p, 11, "000],PARAMETER[\"false_northing\",3000000],UNIT[\"foot\""); add_srs_wkt (p, 12, ",0.3048,AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\"X\",EAST],A"); add_srs_wkt (p, 13, "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3080\"]]"); p = add_epsg_def (filter, first, last, 3081, "epsg", 3081, "NAD83 / Texas State Mapping System"); add_proj4text (p, 0, "+proj=lcc +lat_1=27.41666666666667 +lat_2=34.91666666666"); add_proj4text (p, 1, "666 +lat_0=31.16666666666667 +lon_0=-100 +x_0=1000000 +y"); add_proj4text (p, 2, "_0=1000000 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Texas State Mapping System\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambe"); add_srs_wkt (p, 7, "rt_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 8, "1\",27.41666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",34.91666666666666],PARAMETER[\"latitude_of_origin\",31."); add_srs_wkt (p, 10, "16666666666667],PARAMETER[\"central_meridian\",-100],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_easting\",1000000],PARAMETER[\"false_nort"); add_srs_wkt (p, 12, "hing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "01\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP"); add_srs_wkt (p, 14, "SG\",\"3081\"]]"); p = add_epsg_def (filter, first, last, 3082, "epsg", 3082, "NAD83 / Texas Centric Lambert Conformal"); add_proj4text (p, 0, "+proj=lcc +lat_1=27.5 +lat_2=35 +lat_0=18 +lon_0=-100 +x"); add_proj4text (p, 1, "_0=1500000 +y_0=5000000 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Texas Centric Lambert Conformal\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"626"); add_srs_wkt (p, 4, "9\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"L"); add_srs_wkt (p, 7, "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 8, "lel_1\",27.5],PARAMETER[\"standard_parallel_2\",35],PARA"); add_srs_wkt (p, 9, "METER[\"latitude_of_origin\",18],PARAMETER[\"central_mer"); add_srs_wkt (p, 10, "idian\",-100],PARAMETER[\"false_easting\",1500000],PARAM"); add_srs_wkt (p, 11, "ETER[\"false_northing\",5000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"3082\"]]"); p = add_epsg_def (filter, first, last, 3083, "epsg", 3083, "NAD83 / Texas Centric Albers Equal Area"); add_proj4text (p, 0, "+proj=aea +lat_1=27.5 +lat_2=35 +lat_0=18 +lon_0=-100 +x"); add_proj4text (p, 1, "_0=1500000 +y_0=6000000 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Texas Centric Albers Equal Area\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"626"); add_srs_wkt (p, 4, "9\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"A"); add_srs_wkt (p, 7, "lbers_Conic_Equal_Area\"],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 8, "1\",27.5],PARAMETER[\"standard_parallel_2\",35],PARAMETE"); add_srs_wkt (p, 9, "R[\"latitude_of_center\",18],PARAMETER[\"longitude_of_ce"); add_srs_wkt (p, 10, "nter\",-100],PARAMETER[\"false_easting\",1500000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",6000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"3083\"]]"); p = add_epsg_def (filter, first, last, 3084, "epsg", 3084, "NAD83(HARN) / Texas Centric Lambert Conformal"); add_proj4text (p, 0, "+proj=lcc +lat_1=27.5 +lat_2=35 +lat_0=18 +lon_0=-100 +x"); add_proj4text (p, 1, "_0=1500000 +y_0=5000000 +ellps=GRS80 +towgs84=0,0,0,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Texas Centric Lambert Conformal\""); add_srs_wkt (p, 1, ",GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Refe"); add_srs_wkt (p, 2, "rence_Network\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4152\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],P"); add_srs_wkt (p, 8, "ARAMETER[\"standard_parallel_1\",27.5],PARAMETER[\"stand"); add_srs_wkt (p, 9, "ard_parallel_2\",35],PARAMETER[\"latitude_of_origin\",18"); add_srs_wkt (p, 10, "],PARAMETER[\"central_meridian\",-100],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",1500000],PARAMETER[\"false_northing\",5000000"); add_srs_wkt (p, 12, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 13, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3084\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def (filter, first, last, 3085, "epsg", 3085, "NAD83(HARN) / Texas Centric Albers Equal Area"); add_proj4text (p, 0, "+proj=aea +lat_1=27.5 +lat_2=35 +lat_0=18 +lon_0=-100 +x"); add_proj4text (p, 1, "_0=1500000 +y_0=6000000 +ellps=GRS80 +towgs84=0,0,0,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Texas Centric Albers Equal Area\""); add_srs_wkt (p, 1, ",GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Refe"); add_srs_wkt (p, 2, "rence_Network\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4152\"]],PROJECTION[\"Albers_Conic_Equal_Area\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"standard_parallel_1\",27.5],PARAMETER[\"standard_"); add_srs_wkt (p, 9, "parallel_2\",35],PARAMETER[\"latitude_of_center\",18],PA"); add_srs_wkt (p, 10, "RAMETER[\"longitude_of_center\",-100],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",1500000],PARAMETER[\"false_northing\",6000000]"); add_srs_wkt (p, 12, ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X"); add_srs_wkt (p, 13, "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3085\"]]"); p = add_epsg_def (filter, first, last, 3086, "epsg", 3086, "NAD83 / Florida GDL Albers"); add_proj4text (p, 0, "+proj=aea +lat_1=24 +lat_2=31.5 +lat_0=24 +lon_0=-84 +x_"); add_proj4text (p, 1, "0=400000 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Florida GDL Albers\",GEOGCS[\"NAD83\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Albers_Conic_"); add_srs_wkt (p, 7, "Equal_Area\"],PARAMETER[\"standard_parallel_1\",24],PARA"); add_srs_wkt (p, 8, "METER[\"standard_parallel_2\",31.5],PARAMETER[\"latitude"); add_srs_wkt (p, 9, "_of_center\",24],PARAMETER[\"longitude_of_center\",-84],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",400000],PARAMETER[\"false_no"); add_srs_wkt (p, 11, "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"3086\"]]"); p = add_epsg_def (filter, first, last, 3087, "epsg", 3087, "NAD83(HARN) / Florida GDL Albers"); add_proj4text (p, 0, "+proj=aea +lat_1=24 +lat_2=31.5 +lat_0=24 +lon_0=-84 +x_"); add_proj4text (p, 1, "0=400000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +uni"); add_proj4text (p, 2, "ts=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Florida GDL Albers\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network"); add_srs_wkt (p, 2, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Albers_Conic_Equal_Area\"],PARAMETER[\"standa"); add_srs_wkt (p, 8, "rd_parallel_1\",24],PARAMETER[\"standard_parallel_2\",31"); add_srs_wkt (p, 9, ".5],PARAMETER[\"latitude_of_center\",24],PARAMETER[\"lon"); add_srs_wkt (p, 10, "gitude_of_center\",-84],PARAMETER[\"false_easting\",4000"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); add_srs_wkt (p, 13, "ORTH],AUTHORITY[\"EPSG\",\"3087\"]]"); p = add_epsg_def (filter, first, last, 3088, "epsg", 3088, "NAD83 / Kentucky Single Zone"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.08333333333334 +lat_2=38.66666666666"); add_proj4text (p, 1, "666 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=1500000 "); add_proj4text (p, 2, "+y_0=1000000 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Kentucky Single Zone\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 7, "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",37"); add_srs_wkt (p, 8, ".08333333333334],PARAMETER[\"standard_parallel_2\",38.66"); add_srs_wkt (p, 9, "666666666666],PARAMETER[\"latitude_of_origin\",36.333333"); add_srs_wkt (p, 10, "33333334],PARAMETER[\"central_meridian\",-85.75],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_easting\",1500000],PARAMETER[\"false_northing"); add_srs_wkt (p, 12, "\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 13, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"3088\"]]"); p = add_epsg_def (filter, first, last, 3089, "epsg", 3089, "NAD83 / Kentucky Single Zone (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.08333333333334 +lat_2=38.66666666666"); add_proj4text (p, 1, "666 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=1500000 "); add_proj4text (p, 2, "+y_0=999999.9998983998 +datum=NAD83 +units=us-ft +no_def"); add_proj4text (p, 3, "s"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Kentucky Single Zone (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"G"); add_srs_wkt (p, 2, "RS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"701"); add_srs_wkt (p, 3, "9\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 7, "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 8, "_1\",37.08333333333334],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",38.66666666666666],PARAMETER[\"latitude_of_origin\",36."); add_srs_wkt (p, 10, "33333333333334],PARAMETER[\"central_meridian\",-85.75],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_easting\",4921250],PARAMETER[\"false_no"); add_srs_wkt (p, 12, "rthing\",3280833.333],UNIT[\"US survey foot\",0.30480060"); add_srs_wkt (p, 13, "96012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],"); add_srs_wkt (p, 14, "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3089\"]]"); p = add_epsg_def (filter, first, last, 3090, "epsg", 3090, "NAD83(HARN) / Kentucky Single Zone"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.08333333333334 +lat_2=38.66666666666"); add_proj4text (p, 1, "666 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=1500000 "); add_proj4text (p, 2, "+y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 3, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Kentucky Single Zone\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netwo"); add_srs_wkt (p, 2, "rk\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 8, "standard_parallel_1\",37.08333333333334],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_2\",38.66666666666666],PARAMETER[\"latitu"); add_srs_wkt (p, 10, "de_of_origin\",36.33333333333334],PARAMETER[\"central_me"); add_srs_wkt (p, 11, "ridian\",-85.75],PARAMETER[\"false_easting\",1500000],PA"); add_srs_wkt (p, 12, "RAMETER[\"false_northing\",1000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); add_srs_wkt (p, 14, "ORTH],AUTHORITY[\"EPSG\",\"3090\"]]"); p = add_epsg_def (filter, first, last, 3091, "epsg", 3091, "NAD83(HARN) / Kentucky Single Zone (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.08333333333334 +lat_2=38.66666666666"); add_proj4text (p, 1, "666 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=1500000 "); add_proj4text (p, 2, "+y_0=999999.9998983998 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 3, ",0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Kentucky Single Zone (ftUS)\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Referenc"); add_srs_wkt (p, 2, "e_Network\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"41"); add_srs_wkt (p, 7, "52\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"standard_parallel_1\",37.08333333333334],PARAMETE"); add_srs_wkt (p, 9, "R[\"standard_parallel_2\",38.66666666666666],PARAMETER[\""); add_srs_wkt (p, 10, "latitude_of_origin\",36.33333333333334],PARAMETER[\"cent"); add_srs_wkt (p, 11, "ral_meridian\",-85.75],PARAMETER[\"false_easting\",49212"); add_srs_wkt (p, 12, "50],PARAMETER[\"false_northing\",3280833.333],UNIT[\"US "); add_srs_wkt (p, 13, "survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 14, "03\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP"); add_srs_wkt (p, 15, "SG\",\"3091\"]]"); p = add_epsg_def (filter, first, last, 3092, "epsg", 3092, "Tokyo / UTM zone 51N"); add_proj4text (p, 0, "+proj=utm +zone=51 +ellps=bessel +towgs84=-146.414,507.3"); add_proj4text (p, 1, "37,680.507,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tokyo / UTM zone 51N\",GEOGCS[\"Tokyo\",DATUM[\""); add_srs_wkt (p, 1, "Tokyo\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-146.414,507.337,"); add_srs_wkt (p, 3, "680.507,0,0,0,0],AUTHORITY[\"EPSG\",\"6301\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4301\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, "entral_meridian\",123],PARAMETER[\"scale_factor\",0.9996"); add_srs_wkt (p, 9, "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); add_srs_wkt (p, 10, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 11, "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"3092\"]]"); p = add_epsg_def (filter, first, last, 3093, "epsg", 3093, "Tokyo / UTM zone 52N"); add_proj4text (p, 0, "+proj=utm +zone=52 +ellps=bessel +towgs84=-146.414,507.3"); add_proj4text (p, 1, "37,680.507,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tokyo / UTM zone 52N\",GEOGCS[\"Tokyo\",DATUM[\""); add_srs_wkt (p, 1, "Tokyo\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-146.414,507.337,"); add_srs_wkt (p, 3, "680.507,0,0,0,0],AUTHORITY[\"EPSG\",\"6301\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4301\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, "entral_meridian\",129],PARAMETER[\"scale_factor\",0.9996"); add_srs_wkt (p, 9, "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); add_srs_wkt (p, 10, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 11, "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"3093\"]]"); p = add_epsg_def (filter, first, last, 3094, "epsg", 3094, "Tokyo / UTM zone 53N"); add_proj4text (p, 0, "+proj=utm +zone=53 +ellps=bessel +towgs84=-146.414,507.3"); add_proj4text (p, 1, "37,680.507,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tokyo / UTM zone 53N\",GEOGCS[\"Tokyo\",DATUM[\""); add_srs_wkt (p, 1, "Tokyo\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-146.414,507.337,"); add_srs_wkt (p, 3, "680.507,0,0,0,0],AUTHORITY[\"EPSG\",\"6301\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4301\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, "entral_meridian\",135],PARAMETER[\"scale_factor\",0.9996"); add_srs_wkt (p, 9, "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); add_srs_wkt (p, 10, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 11, "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"3094\"]]"); p = add_epsg_def (filter, first, last, 3095, "epsg", 3095, "Tokyo / UTM zone 54N"); add_proj4text (p, 0, "+proj=utm +zone=54 +ellps=bessel +towgs84=-146.414,507.3"); add_proj4text (p, 1, "37,680.507,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tokyo / UTM zone 54N\",GEOGCS[\"Tokyo\",DATUM[\""); add_srs_wkt (p, 1, "Tokyo\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-146.414,507.337,"); add_srs_wkt (p, 3, "680.507,0,0,0,0],AUTHORITY[\"EPSG\",\"6301\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4301\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, "entral_meridian\",141],PARAMETER[\"scale_factor\",0.9996"); add_srs_wkt (p, 9, "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); add_srs_wkt (p, 10, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 11, "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"3095\"]]"); p = add_epsg_def (filter, first, last, 3096, "epsg", 3096, "Tokyo / UTM zone 55N"); add_proj4text (p, 0, "+proj=utm +zone=55 +ellps=bessel +towgs84=-146.414,507.3"); add_proj4text (p, 1, "37,680.507,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tokyo / UTM zone 55N\",GEOGCS[\"Tokyo\",DATUM[\""); add_srs_wkt (p, 1, "Tokyo\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-146.414,507.337,"); add_srs_wkt (p, 3, "680.507,0,0,0,0],AUTHORITY[\"EPSG\",\"6301\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4301\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, "entral_meridian\",147],PARAMETER[\"scale_factor\",0.9996"); add_srs_wkt (p, 9, "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); add_srs_wkt (p, 10, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 11, "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"3096\"]]"); p = add_epsg_def (filter, first, last, 3097, "epsg", 3097, "JGD2000 / UTM zone 51N"); add_proj4text (p, 0, "+proj=utm +zone=51 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2000 / UTM zone 51N\",GEOGCS[\"JGD2000\",DAT"); add_srs_wkt (p, 1, "UM[\"Japanese_Geodetic_Datum_2000\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6612\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4612\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 8, "\"central_meridian\",123],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 9, "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 11, "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"3097\"]]"); p = add_epsg_def (filter, first, last, 3098, "epsg", 3098, "JGD2000 / UTM zone 52N"); add_proj4text (p, 0, "+proj=utm +zone=52 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2000 / UTM zone 52N\",GEOGCS[\"JGD2000\",DAT"); add_srs_wkt (p, 1, "UM[\"Japanese_Geodetic_Datum_2000\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6612\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4612\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 8, "\"central_meridian\",129],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 9, "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 11, "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"3098\"]]"); p = add_epsg_def (filter, first, last, 3099, "epsg", 3099, "JGD2000 / UTM zone 53N"); add_proj4text (p, 0, "+proj=utm +zone=53 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2000 / UTM zone 53N\",GEOGCS[\"JGD2000\",DAT"); add_srs_wkt (p, 1, "UM[\"Japanese_Geodetic_Datum_2000\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6612\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4612\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 8, "\"central_meridian\",135],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 9, "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 11, "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"3099\"]]"); p = add_epsg_def (filter, first, last, 3100, "epsg", 3100, "JGD2000 / UTM zone 54N"); add_proj4text (p, 0, "+proj=utm +zone=54 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2000 / UTM zone 54N\",GEOGCS[\"JGD2000\",DAT"); add_srs_wkt (p, 1, "UM[\"Japanese_Geodetic_Datum_2000\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6612\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4612\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 8, "\"central_meridian\",141],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 9, "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 11, "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"3100\"]]"); p = add_epsg_def (filter, first, last, 3101, "epsg", 3101, "JGD2000 / UTM zone 55N"); add_proj4text (p, 0, "+proj=utm +zone=55 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2000 / UTM zone 55N\",GEOGCS[\"JGD2000\",DAT"); add_srs_wkt (p, 1, "UM[\"Japanese_Geodetic_Datum_2000\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6612\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4612\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 8, "\"central_meridian\",147],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 9, "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 11, "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"3101\"]]"); p = add_epsg_def (filter, first, last, 3102, "epsg", 3102, "American Samoa 1962 / American Samoa Lambert"); add_proj4text (p, 0, "+proj=lcc +lat_1=-14.26666666666667 +lat_0=-14.266666666"); add_proj4text (p, 1, "66667 +lon_0=-170 +k_0=1 +x_0=152400.3048006096 +y_0=951"); add_proj4text (p, 2, "69.31165862332 +ellps=clrk66 +towgs84=-115,118,426,0,0,0"); add_proj4text (p, 3, ",0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"American Samoa 1962 / American Samoa Lambert\","); add_srs_wkt (p, 1, "GEOGCS[\"American Samoa 1962\",DATUM[\"American_Samoa_19"); add_srs_wkt (p, 2, "62\",SPHEROID[\"Clarke 1866\",6378206.4,294.978698213898"); add_srs_wkt (p, 3, "2,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS84[-115,118,426,0,0"); add_srs_wkt (p, 4, ",0,0],AUTHORITY[\"EPSG\",\"6169\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4169\"]],PROJECTION[\"Lambert_Conformal_Conic_1SP"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",-14.26666666666667]"); add_srs_wkt (p, 9, ",PARAMETER[\"central_meridian\",-170],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",1],PARAMETER[\"false_easting\",500000],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_northing\",312234.65],UNIT[\"US survey foot\","); add_srs_wkt (p, 12, "0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\""); add_srs_wkt (p, 13, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3102\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def (filter, first, last, 3103, "epsg", 3103, "Mauritania 1999 / UTM zone 28N (deprecated)"); add_proj4text (p, 0, "+proj=utm +zone=28 +ellps=clrk80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Mauritania 1999 / UTM zone 28N (deprecated)\",G"); add_srs_wkt (p, 1, "EOGCS[\"Mauritania 1999\",DATUM[\"Mauritania_1999\",SPHE"); add_srs_wkt (p, 2, "ROID[\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7012\"]],AUTHORITY[\"EPSG\",\"6681\"]],PRIME"); add_srs_wkt (p, 4, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"4681\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 7, "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 8, "[\"central_meridian\",-15],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 9, "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"3103\"]]"); p = add_epsg_def (filter, first, last, 3104, "epsg", 3104, "Mauritania 1999 / UTM zone 29N (deprecated)"); add_proj4text (p, 0, "+proj=utm +zone=29 +ellps=clrk80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Mauritania 1999 / UTM zone 29N (deprecated)\",G"); add_srs_wkt (p, 1, "EOGCS[\"Mauritania 1999\",DATUM[\"Mauritania_1999\",SPHE"); add_srs_wkt (p, 2, "ROID[\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7012\"]],AUTHORITY[\"EPSG\",\"6681\"]],PRIME"); add_srs_wkt (p, 4, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"4681\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 7, "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 8, "[\"central_meridian\",-9],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 9, "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 11, "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"3104\"]]"); p = add_epsg_def (filter, first, last, 3105, "epsg", 3105, "Mauritania 1999 / UTM zone 30N (deprecated)"); add_proj4text (p, 0, "+proj=utm +zone=30 +ellps=clrk80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Mauritania 1999 / UTM zone 30N (deprecated)\",G"); add_srs_wkt (p, 1, "EOGCS[\"Mauritania 1999\",DATUM[\"Mauritania_1999\",SPHE"); add_srs_wkt (p, 2, "ROID[\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7012\"]],AUTHORITY[\"EPSG\",\"6681\"]],PRIME"); add_srs_wkt (p, 4, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"4681\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 7, "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 8, "[\"central_meridian\",-3],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 9, "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 11, "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"3105\"]]"); p = add_epsg_def (filter, first, last, 3106, "epsg", 3106, "Gulshan 303 / Bangladesh Transverse Mercator"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=90 +k=0.9996 +x_0=500000 +y_"); add_proj4text (p, 1, "0=0 +a=6377276.345 +b=6356075.413140239 +towgs84=283.7,7"); add_proj4text (p, 2, "35.9,261.1,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Gulshan 303 / Bangladesh Transverse Mercator\","); add_srs_wkt (p, 1, "GEOGCS[\"Gulshan 303\",DATUM[\"Gulshan_303\",SPHEROID[\""); add_srs_wkt (p, 2, "Everest 1830 (1937 Adjustment)\",6377276.345,300.8017,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7015\"]],TOWGS84[283.7,735.9,261.1,0,"); add_srs_wkt (p, 4, "0,0,0],AUTHORITY[\"EPSG\",\"6682\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4682\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 8, "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, "dian\",90],PARAMETER[\"scale_factor\",0.9996],PARAMETER["); add_srs_wkt (p, 10, "\"false_easting\",500000],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 11, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"3106\"]]"); p = add_epsg_def (filter, first, last, 3107, "epsg", 3107, "GDA94 / SA Lambert"); add_proj4text (p, 0, "+proj=lcc +lat_1=-28 +lat_2=-36 +lat_0=-32 +lon_0=135 +x"); add_proj4text (p, 1, "_0=1000000 +y_0=2000000 +ellps=GRS80 +towgs84=0,0,0,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDA94 / SA Lambert\",GEOGCS[\"GDA94\",DATUM[\"G"); add_srs_wkt (p, 1, "eocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 7, "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",-28]"); add_srs_wkt (p, 8, ",PARAMETER[\"standard_parallel_2\",-36],PARAMETER[\"lati"); add_srs_wkt (p, 9, "tude_of_origin\",-32],PARAMETER[\"central_meridian\",135"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",1000000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",2000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); add_srs_wkt (p, 13, "TH],AUTHORITY[\"EPSG\",\"3107\"]]"); p = add_epsg_def (filter, first, last, 3108, "epsg", 3108, "ETRS89 / Guernsey Grid"); add_proj4text (p, 0, "+proj=tmerc +lat_0=49.5 +lon_0=-2.416666666666667 +k=0.9"); add_proj4text (p, 1, "99997 +x_0=47000 +y_0=50000 +ellps=GRS80 +towgs84=0,0,0,"); add_proj4text (p, 2, "0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / Guernsey Grid\",GEOGCS[\"ETRS89\",DATU"); add_srs_wkt (p, 1, "M[\"European_Terrestrial_Reference_System_1989\",SPHEROI"); add_srs_wkt (p, 2, "D[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\""); add_srs_wkt (p, 7, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, "49.5],PARAMETER[\"central_meridian\",-2.416666666666667]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.999997],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",47000],PARAMETER[\"false_northing\",50000],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 12, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "3108\"]]"); p = add_epsg_def (filter, first, last, 3109, "epsg", 3109, "ETRS89 / Jersey Transverse Mercator"); add_proj4text (p, 0, "+proj=tmerc +lat_0=49.225 +lon_0=-2.135 +k=0.99999990000"); add_proj4text (p, 1, "00001 +x_0=40000 +y_0=70000 +ellps=GRS80 +towgs84=0,0,0,"); add_proj4text (p, 2, "0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / Jersey Transverse Mercator\",GEOGCS[\""); add_srs_wkt (p, 1, "ETRS89\",DATUM[\"European_Terrestrial_Reference_System_1"); add_srs_wkt (p, 2, "989\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",49.225],PARAMETER[\"central_meridian\",-2."); add_srs_wkt (p, 9, "135],PARAMETER[\"scale_factor\",0.9999999],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_easting\",40000],PARAMETER[\"false_northing\",70000"); add_srs_wkt (p, 11, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"3109\"]]"); p = add_epsg_def (filter, first, last, 3110, "epsg", 3110, "AGD66 / Vicgrid66"); add_proj4text (p, 0, "+proj=lcc +lat_1=-36 +lat_2=-38 +lat_0=-37 +lon_0=145 +x"); add_proj4text (p, 1, "_0=2500000 +y_0=4500000 +ellps=aust_SA +towgs84=-117.808"); add_proj4text (p, 2, ",-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_de"); add_proj4text (p, 3, "fs"); add_srs_wkt (p, 0, "PROJCS[\"AGD66 / Vicgrid66\",GEOGCS[\"AGD66\",DATUM[\"Au"); add_srs_wkt (p, 1, "stralian_Geodetic_Datum_1966\",SPHEROID[\"Australian Nat"); add_srs_wkt (p, 2, "ional Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"700"); add_srs_wkt (p, 3, "3\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.234"); add_srs_wkt (p, 4, ",-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 5, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 6, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 7, "EPSG\",\"4202\"]],PROJECTION[\"Lambert_Conformal_Conic_2"); add_srs_wkt (p, 8, "SP\"],PARAMETER[\"standard_parallel_1\",-36],PARAMETER[\""); add_srs_wkt (p, 9, "standard_parallel_2\",-38],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 10, "n\",-37],PARAMETER[\"central_meridian\",145],PARAMETER[\""); add_srs_wkt (p, 11, "false_easting\",2500000],PARAMETER[\"false_northing\",45"); add_srs_wkt (p, 12, "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 13, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 14, "\"EPSG\",\"3110\"]]"); p = add_epsg_def (filter, first, last, 3111, "epsg", 3111, "GDA94 / Vicgrid94"); add_proj4text (p, 0, "+proj=lcc +lat_1=-36 +lat_2=-38 +lat_0=-37 +lon_0=145 +x"); add_proj4text (p, 1, "_0=2500000 +y_0=2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDA94 / Vicgrid94\",GEOGCS[\"GDA94\",DATUM[\"Ge"); add_srs_wkt (p, 1, "ocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 7, "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",-36]"); add_srs_wkt (p, 8, ",PARAMETER[\"standard_parallel_2\",-38],PARAMETER[\"lati"); add_srs_wkt (p, 9, "tude_of_origin\",-37],PARAMETER[\"central_meridian\",145"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",2500000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",2500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); add_srs_wkt (p, 13, "TH],AUTHORITY[\"EPSG\",\"3111\"]]"); p = add_epsg_def (filter, first, last, 3112, "epsg", 3112, "GDA94 / Geoscience Australia Lambert"); add_proj4text (p, 0, "+proj=lcc +lat_1=-18 +lat_2=-36 +lat_0=0 +lon_0=134 +x_0"); add_proj4text (p, 1, "=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +"); add_proj4text (p, 2, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDA94 / Geoscience Australia Lambert\",GEOGCS[\""); add_srs_wkt (p, 1, "GDA94\",DATUM[\"Geocentric_Datum_of_Australia_1994\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6283\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 8, "_parallel_1\",-18],PARAMETER[\"standard_parallel_2\",-36"); add_srs_wkt (p, 9, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 10, "l_meridian\",134],PARAMETER[\"false_easting\",0],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"3112\"]]"); p = add_epsg_def (filter, first, last, 3113, "epsg", 3113, "GDA94 / BCSG02"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-28 +lon_0=153 +k=0.99999 +x_0=50000 "); add_proj4text (p, 1, "+y_0=100000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDA94 / BCSG02\",GEOGCS[\"GDA94\",DATUM[\"Geoce"); add_srs_wkt (p, 1, "ntric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980\",63"); add_srs_wkt (p, 2, "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8"); add_srs_wkt (p, 3, "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor\"],PARAMETER[\"latitude_of_origin\",-28],PARAMETER[\""); add_srs_wkt (p, 8, "central_meridian\",153],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 9, "99],PARAMETER[\"false_easting\",50000],PARAMETER[\"false"); add_srs_wkt (p, 10, "_northing\",100000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"3113\"]]"); p = add_epsg_def (filter, first, last, 3114, "epsg", 3114, "MAGNA-SIRGAS / Colombia Far West zone"); add_proj4text (p, 0, "+proj=tmerc +lat_0=4.596200416666666 +lon_0=-80.07750791"); add_proj4text (p, 1, "666666 +k=1 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +towg"); add_proj4text (p, 2, "s84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MAGNA-SIRGAS / Colombia Far West zone\",GEOGCS["); add_srs_wkt (p, 1, "\"MAGNA-SIRGAS\",DATUM[\"Marco_Geocentrico_Nacional_de_R"); add_srs_wkt (p, 2, "eferencia\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6686\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"46"); add_srs_wkt (p, 7, "86\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",4.596200416666666],PARAMETER[\"centr"); add_srs_wkt (p, 9, "al_meridian\",-80.07750791666666],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",1],PARAMETER[\"false_easting\",1000000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"3114\"]]"); p = add_epsg_def (filter, first, last, 3115, "epsg", 3115, "MAGNA-SIRGAS / Colombia West zone"); add_proj4text (p, 0, "+proj=tmerc +lat_0=4.596200416666666 +lon_0=-77.07750791"); add_proj4text (p, 1, "666666 +k=1 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +towg"); add_proj4text (p, 2, "s84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MAGNA-SIRGAS / Colombia West zone\",GEOGCS[\"MA"); add_srs_wkt (p, 1, "GNA-SIRGAS\",DATUM[\"Marco_Geocentrico_Nacional_de_Refer"); add_srs_wkt (p, 2, "encia\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"6686\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4686\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",4.596200416666666],PARAMETER[\"central_m"); add_srs_wkt (p, 9, "eridian\",-77.07750791666666],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",1],PARAMETER[\"false_easting\",1000000],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\","); add_srs_wkt (p, 13, "EAST],AUTHORITY[\"EPSG\",\"3115\"]]"); p = add_epsg_def (filter, first, last, 3116, "epsg", 3116, "MAGNA-SIRGAS / Colombia Bogota zone"); add_proj4text (p, 0, "+proj=tmerc +lat_0=4.596200416666666 +lon_0=-74.07750791"); add_proj4text (p, 1, "666666 +k=1 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +towg"); add_proj4text (p, 2, "s84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MAGNA-SIRGAS / Colombia Bogota zone\",GEOGCS[\""); add_srs_wkt (p, 1, "MAGNA-SIRGAS\",DATUM[\"Marco_Geocentrico_Nacional_de_Ref"); add_srs_wkt (p, 2, "erencia\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6686\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4686"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",4.596200416666666],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",-74.07750791666666],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",1],PARAMETER[\"false_easting\",1000000],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"3116\"]]"); p = add_epsg_def (filter, first, last, 3117, "epsg", 3117, "MAGNA-SIRGAS / Colombia East Central zone"); add_proj4text (p, 0, "+proj=tmerc +lat_0=4.596200416666666 +lon_0=-71.07750791"); add_proj4text (p, 1, "666666 +k=1 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +towg"); add_proj4text (p, 2, "s84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MAGNA-SIRGAS / Colombia East Central zone\",GEO"); add_srs_wkt (p, 1, "GCS[\"MAGNA-SIRGAS\",DATUM[\"Marco_Geocentrico_Nacional_"); add_srs_wkt (p, 2, "de_Referencia\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6686\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4686\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",4.596200416666666],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",-71.07750791666666],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",1],PARAMETER[\"false_easting\",1000000],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Ea"); add_srs_wkt (p, 13, "sting\",EAST],AUTHORITY[\"EPSG\",\"3117\"]]"); p = add_epsg_def (filter, first, last, 3118, "epsg", 3118, "MAGNA-SIRGAS / Colombia East zone"); add_proj4text (p, 0, "+proj=tmerc +lat_0=4.596200416666666 +lon_0=-68.07750791"); add_proj4text (p, 1, "666666 +k=1 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +towg"); add_proj4text (p, 2, "s84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MAGNA-SIRGAS / Colombia East zone\",GEOGCS[\"MA"); add_srs_wkt (p, 1, "GNA-SIRGAS\",DATUM[\"Marco_Geocentrico_Nacional_de_Refer"); add_srs_wkt (p, 2, "encia\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"6686\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4686\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",4.596200416666666],PARAMETER[\"central_m"); add_srs_wkt (p, 9, "eridian\",-68.07750791666666],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",1],PARAMETER[\"false_easting\",1000000],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\","); add_srs_wkt (p, 13, "EAST],AUTHORITY[\"EPSG\",\"3118\"]]"); p = add_epsg_def (filter, first, last, 3119, "epsg", 3119, "Douala 1948 / AEF west"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=10.5 +k=0.999 +x_0=1000000 +"); add_proj4text (p, 1, "y_0=1000000 +ellps=intl +towgs84=-206.1,-174.7,-87.7,0,0"); add_proj4text (p, 2, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Douala 1948 / AEF west\",GEOGCS[\"Douala 1948\""); add_srs_wkt (p, 1, ",DATUM[\"Douala_1948\",SPHEROID[\"International 1924\",6"); add_srs_wkt (p, 2, "378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-206.1,"); add_srs_wkt (p, 3, "-174.7,-87.7,0,0,0,0],AUTHORITY[\"EPSG\",\"6192\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4192\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, "R[\"central_meridian\",10.5],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.999],PARAMETER[\"false_easting\",1000000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"3119\"]]"); p = add_epsg_def (filter, first, last, 3120, "epsg", 3120, "Pulkovo 1942(58) / Poland zone I"); add_proj4text (p, 0, "+proj=sterea +lat_0=50.625 +lon_0=21.08333333333333 +k=0"); add_proj4text (p, 1, ".9998 +x_0=4637000 +y_0=5467000 +ellps=krass +towgs84=33"); add_proj4text (p, 2, ".4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_d"); add_proj4text (p, 3, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(58) / Poland zone I\",GEOGCS[\"Pul"); add_srs_wkt (p, 1, "kovo 1942(58)\",DATUM[\"Pulkovo_1942_58\",SPHEROID[\"Kra"); add_srs_wkt (p, 2, "ssowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\""); add_srs_wkt (p, 3, "]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6179\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4179\"]],PROJECTION[\"Oblique_Stereographic\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",50.625],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, "dian\",21.08333333333333],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 10, "998],PARAMETER[\"false_easting\",4637000],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_northing\",5467000],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"3120\"]]"); p = add_epsg_def (filter, first, last, 3121, "epsg", 3121, "PRS92 / Philippines zone 1"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=0.99995 +x_0=500000 +"); add_proj4text (p, 1, "y_0=0 +ellps=clrk66 +towgs84=-127.62,-67.24,-47.04,-3.06"); add_proj4text (p, 2, "8,4.903,1.578,-1.06 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PRS92 / Philippines zone 1\",GEOGCS[\"PRS92\",D"); add_srs_wkt (p, 1, "ATUM[\"Philippine_Reference_System_1992\",SPHEROID[\"Cla"); add_srs_wkt (p, 2, "rke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],TOWGS84[-127.62,-67.24,-47.04,-3.068,4.903,1"); add_srs_wkt (p, 4, ".578,-1.06],AUTHORITY[\"EPSG\",\"6683\"]],PRIMEM[\"Green"); add_srs_wkt (p, 5, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 6, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 7, "Y[\"EPSG\",\"4683\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 8, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 9, "l_meridian\",117],PARAMETER[\"scale_factor\",0.99995],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 11, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, ",AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "3121\"]]"); p = add_epsg_def (filter, first, last, 3122, "epsg", 3122, "PRS92 / Philippines zone 2"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=119 +k=0.99995 +x_0=500000 +"); add_proj4text (p, 1, "y_0=0 +ellps=clrk66 +towgs84=-127.62,-67.24,-47.04,-3.06"); add_proj4text (p, 2, "8,4.903,1.578,-1.06 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PRS92 / Philippines zone 2\",GEOGCS[\"PRS92\",D"); add_srs_wkt (p, 1, "ATUM[\"Philippine_Reference_System_1992\",SPHEROID[\"Cla"); add_srs_wkt (p, 2, "rke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],TOWGS84[-127.62,-67.24,-47.04,-3.068,4.903,1"); add_srs_wkt (p, 4, ".578,-1.06],AUTHORITY[\"EPSG\",\"6683\"]],PRIMEM[\"Green"); add_srs_wkt (p, 5, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 6, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 7, "Y[\"EPSG\",\"4683\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 8, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 9, "l_meridian\",119],PARAMETER[\"scale_factor\",0.99995],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 11, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, ",AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "3122\"]]"); p = add_epsg_def (filter, first, last, 3123, "epsg", 3123, "PRS92 / Philippines zone 3"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=121 +k=0.99995 +x_0=500000 +"); add_proj4text (p, 1, "y_0=0 +ellps=clrk66 +towgs84=-127.62,-67.24,-47.04,-3.06"); add_proj4text (p, 2, "8,4.903,1.578,-1.06 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PRS92 / Philippines zone 3\",GEOGCS[\"PRS92\",D"); add_srs_wkt (p, 1, "ATUM[\"Philippine_Reference_System_1992\",SPHEROID[\"Cla"); add_srs_wkt (p, 2, "rke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],TOWGS84[-127.62,-67.24,-47.04,-3.068,4.903,1"); add_srs_wkt (p, 4, ".578,-1.06],AUTHORITY[\"EPSG\",\"6683\"]],PRIMEM[\"Green"); add_srs_wkt (p, 5, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 6, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 7, "Y[\"EPSG\",\"4683\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 8, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 9, "l_meridian\",121],PARAMETER[\"scale_factor\",0.99995],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 11, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, ",AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "3123\"]]"); p = add_epsg_def (filter, first, last, 3124, "epsg", 3124, "PRS92 / Philippines zone 4"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=0.99995 +x_0=500000 +"); add_proj4text (p, 1, "y_0=0 +ellps=clrk66 +towgs84=-127.62,-67.24,-47.04,-3.06"); add_proj4text (p, 2, "8,4.903,1.578,-1.06 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PRS92 / Philippines zone 4\",GEOGCS[\"PRS92\",D"); add_srs_wkt (p, 1, "ATUM[\"Philippine_Reference_System_1992\",SPHEROID[\"Cla"); add_srs_wkt (p, 2, "rke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],TOWGS84[-127.62,-67.24,-47.04,-3.068,4.903,1"); add_srs_wkt (p, 4, ".578,-1.06],AUTHORITY[\"EPSG\",\"6683\"]],PRIMEM[\"Green"); add_srs_wkt (p, 5, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 6, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 7, "Y[\"EPSG\",\"4683\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 8, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 9, "l_meridian\",123],PARAMETER[\"scale_factor\",0.99995],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 11, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, ",AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "3124\"]]"); p = add_epsg_def (filter, first, last, 3125, "epsg", 3125, "PRS92 / Philippines zone 5"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=125 +k=0.99995 +x_0=500000 +"); add_proj4text (p, 1, "y_0=0 +ellps=clrk66 +towgs84=-127.62,-67.24,-47.04,-3.06"); add_proj4text (p, 2, "8,4.903,1.578,-1.06 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PRS92 / Philippines zone 5\",GEOGCS[\"PRS92\",D"); add_srs_wkt (p, 1, "ATUM[\"Philippine_Reference_System_1992\",SPHEROID[\"Cla"); add_srs_wkt (p, 2, "rke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],TOWGS84[-127.62,-67.24,-47.04,-3.068,4.903,1"); add_srs_wkt (p, 4, ".578,-1.06],AUTHORITY[\"EPSG\",\"6683\"]],PRIMEM[\"Green"); add_srs_wkt (p, 5, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 6, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 7, "Y[\"EPSG\",\"4683\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 8, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 9, "l_meridian\",125],PARAMETER[\"scale_factor\",0.99995],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 11, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, ",AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "3125\"]]"); p = add_epsg_def (filter, first, last, 3126, "epsg", 3126, "ETRS89 / ETRS-GK19FIN"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=19 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / ETRS-GK19FIN\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, "],PARAMETER[\"central_meridian\",19],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",1],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\","); add_srs_wkt (p, 12, "EAST],AUTHORITY[\"EPSG\",\"3126\"]]"); p = add_epsg_def (filter, first, last, 3127, "epsg", 3127, "ETRS89 / ETRS-GK20FIN"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=20 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / ETRS-GK20FIN\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, "],PARAMETER[\"central_meridian\",20],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",1],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\","); add_srs_wkt (p, 12, "EAST],AUTHORITY[\"EPSG\",\"3127\"]]"); p = add_epsg_def (filter, first, last, 3128, "epsg", 3128, "ETRS89 / ETRS-GK21FIN"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / ETRS-GK21FIN\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, "],PARAMETER[\"central_meridian\",21],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",1],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\","); add_srs_wkt (p, 12, "EAST],AUTHORITY[\"EPSG\",\"3128\"]]"); p = add_epsg_def (filter, first, last, 3129, "epsg", 3129, "ETRS89 / ETRS-GK22FIN"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=22 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / ETRS-GK22FIN\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, "],PARAMETER[\"central_meridian\",22],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",1],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\","); add_srs_wkt (p, 12, "EAST],AUTHORITY[\"EPSG\",\"3129\"]]"); p = add_epsg_def (filter, first, last, 3130, "epsg", 3130, "ETRS89 / ETRS-GK23FIN"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=23 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / ETRS-GK23FIN\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, "],PARAMETER[\"central_meridian\",23],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",1],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\","); add_srs_wkt (p, 12, "EAST],AUTHORITY[\"EPSG\",\"3130\"]]"); p = add_epsg_def (filter, first, last, 3131, "epsg", 3131, "ETRS89 / ETRS-GK24FIN"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / ETRS-GK24FIN\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, "],PARAMETER[\"central_meridian\",24],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",1],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\","); add_srs_wkt (p, 12, "EAST],AUTHORITY[\"EPSG\",\"3131\"]]"); p = add_epsg_def (filter, first, last, 3132, "epsg", 3132, "ETRS89 / ETRS-GK25FIN"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=25 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / ETRS-GK25FIN\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, "],PARAMETER[\"central_meridian\",25],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",1],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\","); add_srs_wkt (p, 12, "EAST],AUTHORITY[\"EPSG\",\"3132\"]]"); p = add_epsg_def (filter, first, last, 3133, "epsg", 3133, "ETRS89 / ETRS-GK26FIN"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=26 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / ETRS-GK26FIN\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, "],PARAMETER[\"central_meridian\",26],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",1],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\","); add_srs_wkt (p, 12, "EAST],AUTHORITY[\"EPSG\",\"3133\"]]"); p = add_epsg_def (filter, first, last, 3134, "epsg", 3134, "ETRS89 / ETRS-GK27FIN"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / ETRS-GK27FIN\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, "],PARAMETER[\"central_meridian\",27],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",1],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\","); add_srs_wkt (p, 12, "EAST],AUTHORITY[\"EPSG\",\"3134\"]]"); p = add_epsg_def (filter, first, last, 3135, "epsg", 3135, "ETRS89 / ETRS-GK28FIN"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=28 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / ETRS-GK28FIN\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, "],PARAMETER[\"central_meridian\",28],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",1],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\","); add_srs_wkt (p, 12, "EAST],AUTHORITY[\"EPSG\",\"3135\"]]"); p = add_epsg_def (filter, first, last, 3136, "epsg", 3136, "ETRS89 / ETRS-GK29FIN"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=29 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / ETRS-GK29FIN\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, "],PARAMETER[\"central_meridian\",29],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",1],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\","); add_srs_wkt (p, 12, "EAST],AUTHORITY[\"EPSG\",\"3136\"]]"); p = add_epsg_def (filter, first, last, 3137, "epsg", 3137, "ETRS89 / ETRS-GK30FIN"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / ETRS-GK30FIN\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, "],PARAMETER[\"central_meridian\",30],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",1],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\","); add_srs_wkt (p, 12, "EAST],AUTHORITY[\"EPSG\",\"3137\"]]"); p = add_epsg_def (filter, first, last, 3138, "epsg", 3138, "ETRS89 / ETRS-GK31FIN"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=31 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / ETRS-GK31FIN\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, "],PARAMETER[\"central_meridian\",31],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",1],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\","); add_srs_wkt (p, 12, "EAST],AUTHORITY[\"EPSG\",\"3138\"]]"); } #endif /* full EPSG initialization enabled/disabled */ libspatialite-4.1.1/src/srsinit/epsg_inlined_37.c0000664000175000017500000045511212163502133016671 00000000000000/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_37 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def (filter, first, last, 32117, "epsg", 32117, "NAD83 / New York West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.999"); add_proj4text (p, 1, "9375 +x_0=350000 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / New York West\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",40],PARAMETER[\"cen"); add_srs_wkt (p, 8, "tral_meridian\",-78.58333333333333],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",0.9999375],PARAMETER[\"false_easting\",350000],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"32117\"]]"); p = add_epsg_def (filter, first, last, 32118, "epsg", 32118, "NAD83 / New York Long Island"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666"); add_proj4text (p, 1, "666 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000 +y_0"); add_proj4text (p, 2, "=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / New York Long Island\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 7, "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",41"); add_srs_wkt (p, 8, ".03333333333333],PARAMETER[\"standard_parallel_2\",40.66"); add_srs_wkt (p, 9, "666666666666],PARAMETER[\"latitude_of_origin\",40.166666"); add_srs_wkt (p, 10, "66666666],PARAMETER[\"central_meridian\",-74],PARAMETER["); add_srs_wkt (p, 11, "\"false_easting\",300000],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 12, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 13, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32118\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def (filter, first, last, 32119, "epsg", 32119, "NAD83 / North Carolina"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333"); add_proj4text (p, 1, "334 +lat_0=33.75 +lon_0=-79 +x_0=609601.22 +y_0=0 +datum"); add_proj4text (p, 2, "=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / North Carolina\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 7, "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",36.16666"); add_srs_wkt (p, 8, "666666666],PARAMETER[\"standard_parallel_2\",34.33333333"); add_srs_wkt (p, 9, "333334],PARAMETER[\"latitude_of_origin\",33.75],PARAMETE"); add_srs_wkt (p, 10, "R[\"central_meridian\",-79],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "609601.22],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Y\",NORTH],AUTHORITY[\"EPSG\",\"32119\"]]"); p = add_epsg_def (filter, first, last, 32120, "epsg", 32120, "NAD83 / North Dakota North"); add_proj4text (p, 0, "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.43333333333"); add_proj4text (p, 1, "333 +lat_0=47 +lon_0=-100.5 +x_0=600000 +y_0=0 +datum=NA"); add_proj4text (p, 2, "D83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / North Dakota North\",GEOGCS[\"NAD83\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 7, "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",48.7"); add_srs_wkt (p, 8, "3333333333333],PARAMETER[\"standard_parallel_2\",47.4333"); add_srs_wkt (p, 9, "3333333333],PARAMETER[\"latitude_of_origin\",47],PARAMET"); add_srs_wkt (p, 10, "ER[\"central_meridian\",-100.5],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, "g\",600000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 12, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS"); add_srs_wkt (p, 13, "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32120\"]]"); p = add_epsg_def (filter, first, last, 32121, "epsg", 32121, "NAD83 / North Dakota South"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.48333333333333 +lat_2=46.18333333333"); add_proj4text (p, 1, "333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=600000 +"); add_proj4text (p, 2, "y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / North Dakota South\",GEOGCS[\"NAD83\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 7, "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",47.4"); add_srs_wkt (p, 8, "8333333333333],PARAMETER[\"standard_parallel_2\",46.1833"); add_srs_wkt (p, 9, "3333333333],PARAMETER[\"latitude_of_origin\",45.66666666"); add_srs_wkt (p, 10, "666666],PARAMETER[\"central_meridian\",-100.5],PARAMETER"); add_srs_wkt (p, 11, "[\"false_easting\",600000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 12, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 13, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32121\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def (filter, first, last, 32122, "epsg", 32122, "NAD83 / Ohio North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.7 +lat_2=40.43333333333333 +lat_0=39"); add_proj4text (p, 1, ".66666666666666 +lon_0=-82.5 +x_0=600000 +y_0=0 +datum=N"); add_proj4text (p, 2, "AD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Ohio North\",GEOGCS[\"NAD83\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Con"); add_srs_wkt (p, 7, "ic_2SP\"],PARAMETER[\"standard_parallel_1\",41.7],PARAME"); add_srs_wkt (p, 8, "TER[\"standard_parallel_2\",40.43333333333333],PARAMETER"); add_srs_wkt (p, 9, "[\"latitude_of_origin\",39.66666666666666],PARAMETER[\"c"); add_srs_wkt (p, 10, "entral_meridian\",-82.5],PARAMETER[\"false_easting\",600"); add_srs_wkt (p, 11, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 13, "NORTH],AUTHORITY[\"EPSG\",\"32122\"]]"); p = add_epsg_def (filter, first, last, 32123, "epsg", 32123, "NAD83 / Ohio South"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.03333333333333 +lat_2=38.73333333333"); add_proj4text (p, 1, "333 +lat_0=38 +lon_0=-82.5 +x_0=600000 +y_0=0 +datum=NAD"); add_proj4text (p, 2, "83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Ohio South\",GEOGCS[\"NAD83\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Con"); add_srs_wkt (p, 7, "ic_2SP\"],PARAMETER[\"standard_parallel_1\",40.033333333"); add_srs_wkt (p, 8, "33333],PARAMETER[\"standard_parallel_2\",38.733333333333"); add_srs_wkt (p, 9, "33],PARAMETER[\"latitude_of_origin\",38],PARAMETER[\"cen"); add_srs_wkt (p, 10, "tral_meridian\",-82.5],PARAMETER[\"false_easting\",60000"); add_srs_wkt (p, 11, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 13, "RTH],AUTHORITY[\"EPSG\",\"32123\"]]"); p = add_epsg_def (filter, first, last, 32124, "epsg", 32124, "NAD83 / Oklahoma North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.76666666666667 +lat_2=35.56666666666"); add_proj4text (p, 1, "667 +lat_0=35 +lon_0=-98 +x_0=600000 +y_0=0 +datum=NAD83"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Oklahoma North\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 7, "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",36.76666"); add_srs_wkt (p, 8, "666666667],PARAMETER[\"standard_parallel_2\",35.56666666"); add_srs_wkt (p, 9, "666667],PARAMETER[\"latitude_of_origin\",35],PARAMETER[\""); add_srs_wkt (p, 10, "central_meridian\",-98],PARAMETER[\"false_easting\",6000"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); add_srs_wkt (p, 13, "ORTH],AUTHORITY[\"EPSG\",\"32124\"]]"); p = add_epsg_def (filter, first, last, 32125, "epsg", 32125, "NAD83 / Oklahoma South"); add_proj4text (p, 0, "+proj=lcc +lat_1=35.23333333333333 +lat_2=33.93333333333"); add_proj4text (p, 1, "333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000 +y_0"); add_proj4text (p, 2, "=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Oklahoma South\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 7, "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",35.23333"); add_srs_wkt (p, 8, "333333333],PARAMETER[\"standard_parallel_2\",33.93333333"); add_srs_wkt (p, 9, "333333],PARAMETER[\"latitude_of_origin\",33.333333333333"); add_srs_wkt (p, 10, "34],PARAMETER[\"central_meridian\",-98],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_easting\",600000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 12, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32125\"]]"); p = add_epsg_def (filter, first, last, 32126, "epsg", 32126, "NAD83 / Oregon North"); add_proj4text (p, 0, "+proj=lcc +lat_1=46 +lat_2=44.33333333333334 +lat_0=43.6"); add_proj4text (p, 1, "6666666666666 +lon_0=-120.5 +x_0=2500000 +y_0=0 +datum=N"); add_proj4text (p, 2, "AD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Oregon North\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co"); add_srs_wkt (p, 7, "nic_2SP\"],PARAMETER[\"standard_parallel_1\",46],PARAMET"); add_srs_wkt (p, 8, "ER[\"standard_parallel_2\",44.33333333333334],PARAMETER["); add_srs_wkt (p, 9, "\"latitude_of_origin\",43.66666666666666],PARAMETER[\"ce"); add_srs_wkt (p, 10, "ntral_meridian\",-120.5],PARAMETER[\"false_easting\",250"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"32126\"]]"); p = add_epsg_def (filter, first, last, 32127, "epsg", 32127, "NAD83 / Oregon South"); add_proj4text (p, 0, "+proj=lcc +lat_1=44 +lat_2=42.33333333333334 +lat_0=41.6"); add_proj4text (p, 1, "6666666666666 +lon_0=-120.5 +x_0=1500000 +y_0=0 +datum=N"); add_proj4text (p, 2, "AD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Oregon South\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co"); add_srs_wkt (p, 7, "nic_2SP\"],PARAMETER[\"standard_parallel_1\",44],PARAMET"); add_srs_wkt (p, 8, "ER[\"standard_parallel_2\",42.33333333333334],PARAMETER["); add_srs_wkt (p, 9, "\"latitude_of_origin\",41.66666666666666],PARAMETER[\"ce"); add_srs_wkt (p, 10, "ntral_meridian\",-120.5],PARAMETER[\"false_easting\",150"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"32127\"]]"); p = add_epsg_def (filter, first, last, 32128, "epsg", 32128, "NAD83 / Pennsylvania North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.95 +lat_2=40.88333333333333 +lat_0=4"); add_proj4text (p, 1, "0.16666666666666 +lon_0=-77.75 +x_0=600000 +y_0=0 +datum"); add_proj4text (p, 2, "=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Pennsylvania North\",GEOGCS[\"NAD83\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 7, "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",41.9"); add_srs_wkt (p, 8, "5],PARAMETER[\"standard_parallel_2\",40.88333333333333],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",40.16666666666666],PARA"); add_srs_wkt (p, 10, "METER[\"central_meridian\",-77.75],PARAMETER[\"false_eas"); add_srs_wkt (p, 11, "ting\",600000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 12, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A"); add_srs_wkt (p, 13, "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32128\"]]"); p = add_epsg_def (filter, first, last, 32129, "epsg", 32129, "NAD83 / Pennsylvania South"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.96666666666667 +lat_2=39.93333333333"); add_proj4text (p, 1, "333 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=600000 +"); add_proj4text (p, 2, "y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Pennsylvania South\",GEOGCS[\"NAD83\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 7, "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",40.9"); add_srs_wkt (p, 8, "6666666666667],PARAMETER[\"standard_parallel_2\",39.9333"); add_srs_wkt (p, 9, "3333333333],PARAMETER[\"latitude_of_origin\",39.33333333"); add_srs_wkt (p, 10, "333334],PARAMETER[\"central_meridian\",-77.75],PARAMETER"); add_srs_wkt (p, 11, "[\"false_easting\",600000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 12, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 13, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32129\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def (filter, first, last, 32130, "epsg", 32130, "NAD83 / Rhode Island"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.9"); add_proj4text (p, 1, "9999375 +x_0=100000 +y_0=0 +datum=NAD83 +units=m +no_def"); add_proj4text (p, 2, "s"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Rhode Island\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",41.08333333333334],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",-71.5],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",0.99999375],PARAMETER[\"false_easting\",100000],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"32130\"]]"); p = add_epsg_def (filter, first, last, 32133, "epsg", 32133, "NAD83 / South Carolina"); add_proj4text (p, 0, "+proj=lcc +lat_1=34.83333333333334 +lat_2=32.5 +lat_0=31"); add_proj4text (p, 1, ".83333333333333 +lon_0=-81 +x_0=609600 +y_0=0 +datum=NAD"); add_proj4text (p, 2, "83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / South Carolina\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 7, "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",34.83333"); add_srs_wkt (p, 8, "333333334],PARAMETER[\"standard_parallel_2\",32.5],PARAM"); add_srs_wkt (p, 9, "ETER[\"latitude_of_origin\",31.83333333333333],PARAMETER"); add_srs_wkt (p, 10, "[\"central_meridian\",-81],PARAMETER[\"false_easting\",6"); add_srs_wkt (p, 11, "09600],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"32133\"]]"); p = add_epsg_def (filter, first, last, 32134, "epsg", 32134, "NAD83 / South Dakota North"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.68333333333333 +lat_2=44.41666666666"); add_proj4text (p, 1, "666 +lat_0=43.83333333333334 +lon_0=-100 +x_0=600000 +y_"); add_proj4text (p, 2, "0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / South Dakota North\",GEOGCS[\"NAD83\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 7, "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",45.6"); add_srs_wkt (p, 8, "8333333333333],PARAMETER[\"standard_parallel_2\",44.4166"); add_srs_wkt (p, 9, "6666666666],PARAMETER[\"latitude_of_origin\",43.83333333"); add_srs_wkt (p, 10, "333334],PARAMETER[\"central_meridian\",-100],PARAMETER[\""); add_srs_wkt (p, 11, "false_easting\",600000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 13, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32134\"]]"); p = add_epsg_def (filter, first, last, 32135, "epsg", 32135, "NAD83 / South Dakota South"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.4 +lat_2=42.83333333333334 +lat_0=42"); add_proj4text (p, 1, ".33333333333334 +lon_0=-100.3333333333333 +x_0=600000 +y"); add_proj4text (p, 2, "_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / South Dakota South\",GEOGCS[\"NAD83\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 7, "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",44.4"); add_srs_wkt (p, 8, "],PARAMETER[\"standard_parallel_2\",42.83333333333334],P"); add_srs_wkt (p, 9, "ARAMETER[\"latitude_of_origin\",42.33333333333334],PARAM"); add_srs_wkt (p, 10, "ETER[\"central_meridian\",-100.3333333333333],PARAMETER["); add_srs_wkt (p, 11, "\"false_easting\",600000],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 12, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 13, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32135\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def (filter, first, last, 32136, "epsg", 32136, "NAD83 / Tennessee"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.41666666666666 +lat_2=35.25 +lat_0=3"); add_proj4text (p, 1, "4.33333333333334 +lon_0=-86 +x_0=600000 +y_0=0 +datum=NA"); add_proj4text (p, 2, "D83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Tennessee\",GEOGCS[\"NAD83\",DATUM[\"No"); add_srs_wkt (p, 1, "rth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137,"); add_srs_wkt (p, 2, "298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,"); add_srs_wkt (p, 3, "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 4, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 5, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Coni"); add_srs_wkt (p, 7, "c_2SP\"],PARAMETER[\"standard_parallel_1\",36.4166666666"); add_srs_wkt (p, 8, "6666],PARAMETER[\"standard_parallel_2\",35.25],PARAMETER"); add_srs_wkt (p, 9, "[\"latitude_of_origin\",34.33333333333334],PARAMETER[\"c"); add_srs_wkt (p, 10, "entral_meridian\",-86],PARAMETER[\"false_easting\",60000"); add_srs_wkt (p, 11, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 13, "RTH],AUTHORITY[\"EPSG\",\"32136\"]]"); p = add_epsg_def (filter, first, last, 32137, "epsg", 32137, "NAD83 / Texas North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.18333333333333 +lat_2=34.65 +lat_0=3"); add_proj4text (p, 1, "4 +lon_0=-101.5 +x_0=200000 +y_0=1000000 +datum=NAD83 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Texas North\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co"); add_srs_wkt (p, 7, "nic_2SP\"],PARAMETER[\"standard_parallel_1\",36.18333333"); add_srs_wkt (p, 8, "333333],PARAMETER[\"standard_parallel_2\",34.65],PARAMET"); add_srs_wkt (p, 9, "ER[\"latitude_of_origin\",34],PARAMETER[\"central_meridi"); add_srs_wkt (p, 10, "an\",-101.5],PARAMETER[\"false_easting\",200000],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"32137\"]]"); p = add_epsg_def (filter, first, last, 32138, "epsg", 32138, "NAD83 / Texas North Central"); add_proj4text (p, 0, "+proj=lcc +lat_1=33.96666666666667 +lat_2=32.13333333333"); add_proj4text (p, 1, "333 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000 +y"); add_proj4text (p, 2, "_0=2000000 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Texas North Central\",GEOGCS[\"NAD83\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 7, "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",33.9"); add_srs_wkt (p, 8, "6666666666667],PARAMETER[\"standard_parallel_2\",32.1333"); add_srs_wkt (p, 9, "3333333333],PARAMETER[\"latitude_of_origin\",31.66666666"); add_srs_wkt (p, 10, "666667],PARAMETER[\"central_meridian\",-98.5],PARAMETER["); add_srs_wkt (p, 11, "\"false_easting\",600000],PARAMETER[\"false_northing\",2"); add_srs_wkt (p, 12, "000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 13, "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 14, "2138\"]]"); p = add_epsg_def (filter, first, last, 32139, "epsg", 32139, "NAD83 / Texas Central"); add_proj4text (p, 0, "+proj=lcc +lat_1=31.88333333333333 +lat_2=30.11666666666"); add_proj4text (p, 1, "667 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +"); add_proj4text (p, 2, "x_0=700000 +y_0=3000000 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Texas Central\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_C"); add_srs_wkt (p, 7, "onic_2SP\"],PARAMETER[\"standard_parallel_1\",31.8833333"); add_srs_wkt (p, 8, "3333333],PARAMETER[\"standard_parallel_2\",30.1166666666"); add_srs_wkt (p, 9, "6667],PARAMETER[\"latitude_of_origin\",29.66666666666667"); add_srs_wkt (p, 10, "],PARAMETER[\"central_meridian\",-100.3333333333333],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_easting\",700000],PARAMETER[\"false_north"); add_srs_wkt (p, 12, "ing\",3000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 13, "1\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 14, "G\",\"32139\"]]"); p = add_epsg_def (filter, first, last, 32140, "epsg", 32140, "NAD83 / Texas South Central"); add_proj4text (p, 0, "+proj=lcc +lat_1=30.28333333333333 +lat_2=28.38333333333"); add_proj4text (p, 1, "333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0"); add_proj4text (p, 2, "=4000000 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Texas South Central\",GEOGCS[\"NAD83\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 7, "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",30.2"); add_srs_wkt (p, 8, "8333333333333],PARAMETER[\"standard_parallel_2\",28.3833"); add_srs_wkt (p, 9, "3333333333],PARAMETER[\"latitude_of_origin\",27.83333333"); add_srs_wkt (p, 10, "333333],PARAMETER[\"central_meridian\",-99],PARAMETER[\""); add_srs_wkt (p, 11, "false_easting\",600000],PARAMETER[\"false_northing\",400"); add_srs_wkt (p, 12, "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 13, "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"321"); add_srs_wkt (p, 14, "40\"]]"); p = add_epsg_def (filter, first, last, 32141, "epsg", 32141, "NAD83 / Texas South"); add_proj4text (p, 0, "+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666"); add_proj4text (p, 1, "667 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=300000 +y"); add_proj4text (p, 2, "_0=5000000 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Texas South\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co"); add_srs_wkt (p, 7, "nic_2SP\"],PARAMETER[\"standard_parallel_1\",27.83333333"); add_srs_wkt (p, 8, "333333],PARAMETER[\"standard_parallel_2\",26.16666666666"); add_srs_wkt (p, 9, "667],PARAMETER[\"latitude_of_origin\",25.66666666666667]"); add_srs_wkt (p, 10, ",PARAMETER[\"central_meridian\",-98.5],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",300000],PARAMETER[\"false_northing\",5000000]"); add_srs_wkt (p, 12, ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X"); add_srs_wkt (p, 13, "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32141\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def (filter, first, last, 32142, "epsg", 32142, "NAD83 / Utah North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666"); add_proj4text (p, 1, "667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000 +"); add_proj4text (p, 2, "y_0=1000000 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Utah North\",GEOGCS[\"NAD83\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Con"); add_srs_wkt (p, 7, "ic_2SP\"],PARAMETER[\"standard_parallel_1\",41.783333333"); add_srs_wkt (p, 8, "33333],PARAMETER[\"standard_parallel_2\",40.716666666666"); add_srs_wkt (p, 9, "67],PARAMETER[\"latitude_of_origin\",40.33333333333334],"); add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",-111.5],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",500000],PARAMETER[\"false_northing\",1000000]"); add_srs_wkt (p, 12, ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X"); add_srs_wkt (p, 13, "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32142\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def (filter, first, last, 32143, "epsg", 32143, "NAD83 / Utah Central"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=3"); add_proj4text (p, 1, "8.33333333333334 +lon_0=-111.5 +x_0=500000 +y_0=2000000 "); add_proj4text (p, 2, "+datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Utah Central\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co"); add_srs_wkt (p, 7, "nic_2SP\"],PARAMETER[\"standard_parallel_1\",40.65],PARA"); add_srs_wkt (p, 8, "METER[\"standard_parallel_2\",39.01666666666667],PARAMET"); add_srs_wkt (p, 9, "ER[\"latitude_of_origin\",38.33333333333334],PARAMETER[\""); add_srs_wkt (p, 10, "central_meridian\",-111.5],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",2000000],UNIT[\"metr"); add_srs_wkt (p, 12, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI"); add_srs_wkt (p, 13, "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32143\"]]"); p = add_epsg_def (filter, first, last, 32144, "epsg", 32144, "NAD83 / Utah South"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=3"); add_proj4text (p, 1, "6.66666666666666 +lon_0=-111.5 +x_0=500000 +y_0=3000000 "); add_proj4text (p, 2, "+datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Utah South\",GEOGCS[\"NAD83\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Con"); add_srs_wkt (p, 7, "ic_2SP\"],PARAMETER[\"standard_parallel_1\",38.35],PARAM"); add_srs_wkt (p, 8, "ETER[\"standard_parallel_2\",37.21666666666667],PARAMETE"); add_srs_wkt (p, 9, "R[\"latitude_of_origin\",36.66666666666666],PARAMETER[\""); add_srs_wkt (p, 10, "central_meridian\",-111.5],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",3000000],UNIT[\"metr"); add_srs_wkt (p, 12, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI"); add_srs_wkt (p, 13, "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32144\"]]"); p = add_epsg_def (filter, first, last, 32145, "epsg", 32145, "NAD83 / Vermont"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964286 +x_0"); add_proj4text (p, 1, "=500000 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Vermont\",GEOGCS[\"NAD83\",DATUM[\"Nort"); add_srs_wkt (p, 1, "h_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137,29"); add_srs_wkt (p, 2, "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,"); add_srs_wkt (p, 3, "0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 4, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 5, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PA"); add_srs_wkt (p, 7, "RAMETER[\"latitude_of_origin\",42.5],PARAMETER[\"central"); add_srs_wkt (p, 8, "_meridian\",-72.5],PARAMETER[\"scale_factor\",0.99996428"); add_srs_wkt (p, 9, "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 10, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 11, "1\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"32145\"]]"); p = add_epsg_def (filter, first, last, 32146, "epsg", 32146, "NAD83 / Virginia North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.2 +lat_2=38.03333333333333 +lat_0=37"); add_proj4text (p, 1, ".66666666666666 +lon_0=-78.5 +x_0=3500000 +y_0=2000000 +"); add_proj4text (p, 2, "datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Virginia North\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 7, "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",39.2],PA"); add_srs_wkt (p, 8, "RAMETER[\"standard_parallel_2\",38.03333333333333],PARAM"); add_srs_wkt (p, 9, "ETER[\"latitude_of_origin\",37.66666666666666],PARAMETER"); add_srs_wkt (p, 10, "[\"central_meridian\",-78.5],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",3500000],PARAMETER[\"false_northing\",2000000],UNIT[\"m"); add_srs_wkt (p, 12, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],"); add_srs_wkt (p, 13, "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32146\"]]"); p = add_epsg_def (filter, first, last, 32147, "epsg", 32147, "NAD83 / Virginia South"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.96666666666667 +lat_2=36.76666666666"); add_proj4text (p, 1, "667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3500000 +"); add_proj4text (p, 2, "y_0=1000000 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Virginia South\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 7, "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",37.96666"); add_srs_wkt (p, 8, "666666667],PARAMETER[\"standard_parallel_2\",36.76666666"); add_srs_wkt (p, 9, "666667],PARAMETER[\"latitude_of_origin\",36.333333333333"); add_srs_wkt (p, 10, "34],PARAMETER[\"central_meridian\",-78.5],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_easting\",3500000],PARAMETER[\"false_northing\",1000"); add_srs_wkt (p, 12, "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS"); add_srs_wkt (p, 13, "[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3214"); add_srs_wkt (p, 14, "7\"]]"); p = add_epsg_def (filter, first, last, 32148, "epsg", 32148, "NAD83 / Washington North"); add_proj4text (p, 0, "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.5 +lat_0=47"); add_proj4text (p, 1, " +lon_0=-120.8333333333333 +x_0=500000 +y_0=0 +datum=NAD"); add_proj4text (p, 2, "83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Washington North\",GEOGCS[\"NAD83\",DAT"); add_srs_wkt (p, 1, "UM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6"); add_srs_wkt (p, 2, "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS"); add_srs_wkt (p, 3, "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 7, "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",48.7333"); add_srs_wkt (p, 8, "3333333333],PARAMETER[\"standard_parallel_2\",47.5],PARA"); add_srs_wkt (p, 9, "METER[\"latitude_of_origin\",47],PARAMETER[\"central_mer"); add_srs_wkt (p, 10, "idian\",-120.8333333333333],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"32148\"]]"); p = add_epsg_def (filter, first, last, 32149, "epsg", 32149, "NAD83 / Washington South"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.33333333333334 +lat_2=45.83333333333"); add_proj4text (p, 1, "334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000 +"); add_proj4text (p, 2, "y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Washington South\",GEOGCS[\"NAD83\",DAT"); add_srs_wkt (p, 1, "UM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6"); add_srs_wkt (p, 2, "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS"); add_srs_wkt (p, 3, "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 7, "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",47.3333"); add_srs_wkt (p, 8, "3333333334],PARAMETER[\"standard_parallel_2\",45.8333333"); add_srs_wkt (p, 9, "3333334],PARAMETER[\"latitude_of_origin\",45.33333333333"); add_srs_wkt (p, 10, "334],PARAMETER[\"central_meridian\",-120.5],PARAMETER[\""); add_srs_wkt (p, 11, "false_easting\",500000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 13, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32149\"]]"); p = add_epsg_def (filter, first, last, 32150, "epsg", 32150, "NAD83 / West Virginia North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79."); add_proj4text (p, 1, "5 +x_0=600000 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / West Virginia North\",GEOGCS[\"NAD83\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 7, "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",40.2"); add_srs_wkt (p, 8, "5],PARAMETER[\"standard_parallel_2\",39],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",38.5],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 10, "79.5],PARAMETER[\"false_easting\",600000],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"32150\"]]"); p = add_epsg_def (filter, first, last, 32151, "epsg", 32151, "NAD83 / West Virginia South"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333"); add_proj4text (p, 1, "333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +datum=NAD83"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / West Virginia South\",GEOGCS[\"NAD83\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 7, "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",38.8"); add_srs_wkt (p, 8, "8333333333333],PARAMETER[\"standard_parallel_2\",37.4833"); add_srs_wkt (p, 9, "3333333333],PARAMETER[\"latitude_of_origin\",37],PARAMET"); add_srs_wkt (p, 10, "ER[\"central_meridian\",-81],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",600000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Y\",NORTH],AUTHORITY[\"EPSG\",\"32151\"]]"); p = add_epsg_def (filter, first, last, 32152, "epsg", 32152, "NAD83 / Wisconsin North"); add_proj4text (p, 0, "+proj=lcc +lat_1=46.76666666666667 +lat_2=45.56666666666"); add_proj4text (p, 1, "667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000 +y_0"); add_proj4text (p, 2, "=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Wisconsin North\",GEOGCS[\"NAD83\",DATU"); add_srs_wkt (p, 1, "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63"); add_srs_wkt (p, 2, "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8"); add_srs_wkt (p, 3, "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 7, "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",46.7666"); add_srs_wkt (p, 8, "6666666667],PARAMETER[\"standard_parallel_2\",45.5666666"); add_srs_wkt (p, 9, "6666667],PARAMETER[\"latitude_of_origin\",45.16666666666"); add_srs_wkt (p, 10, "666],PARAMETER[\"central_meridian\",-90],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_easting\",600000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 12, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",E"); add_srs_wkt (p, 13, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32152\"]]"); p = add_epsg_def (filter, first, last, 32153, "epsg", 32153, "NAD83 / Wisconsin Central"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.5 +lat_2=44.25 +lat_0=43.83333333333"); add_proj4text (p, 1, "334 +lon_0=-90 +x_0=600000 +y_0=0 +datum=NAD83 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Wisconsin Central\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor"); add_srs_wkt (p, 7, "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",45.5]"); add_srs_wkt (p, 8, ",PARAMETER[\"standard_parallel_2\",44.25],PARAMETER[\"la"); add_srs_wkt (p, 9, "titude_of_origin\",43.83333333333334],PARAMETER[\"centra"); add_srs_wkt (p, 10, "l_meridian\",-90],PARAMETER[\"false_easting\",600000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"32153\"]]"); p = add_epsg_def (filter, first, last, 32154, "epsg", 32154, "NAD83 / Wisconsin South"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.06666666666667 +lat_2=42.73333333333"); add_proj4text (p, 1, "333 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +datum=NAD83"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Wisconsin South\",GEOGCS[\"NAD83\",DATU"); add_srs_wkt (p, 1, "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63"); add_srs_wkt (p, 2, "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8"); add_srs_wkt (p, 3, "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 7, "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",44.0666"); add_srs_wkt (p, 8, "6666666667],PARAMETER[\"standard_parallel_2\",42.7333333"); add_srs_wkt (p, 9, "3333333],PARAMETER[\"latitude_of_origin\",42],PARAMETER["); add_srs_wkt (p, 10, "\"central_meridian\",-90],PARAMETER[\"false_easting\",60"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"32154\"]]"); p = add_epsg_def (filter, first, last, 32155, "epsg", 32155, "NAD83 / Wyoming East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.9"); add_proj4text (p, 1, "999375 +x_0=200000 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Wyoming East\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",40.5],PARAMETER[\"cen"); add_srs_wkt (p, 8, "tral_meridian\",-105.1666666666667],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",0.9999375],PARAMETER[\"false_easting\",200000],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"32155\"]]"); p = add_epsg_def (filter, first, last, 32156, "epsg", 32156, "NAD83 / Wyoming East Central"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.9"); add_proj4text (p, 1, "999375 +x_0=400000 +y_0=100000 +datum=NAD83 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Wyoming East Central\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, "Mercator\"],PARAMETER[\"latitude_of_origin\",40.5],PARAM"); add_srs_wkt (p, 8, "ETER[\"central_meridian\",-107.3333333333333],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",0.9999375],PARAMETER[\"false_easting\","); add_srs_wkt (p, 10, "400000],PARAMETER[\"false_northing\",100000],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI"); add_srs_wkt (p, 12, "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32156\"]]"); p = add_epsg_def (filter, first, last, 32157, "epsg", 32157, "NAD83 / Wyoming West Central"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.9999375 +x_0"); add_proj4text (p, 1, "=600000 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Wyoming West Central\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, "Mercator\"],PARAMETER[\"latitude_of_origin\",40.5],PARAM"); add_srs_wkt (p, 8, "ETER[\"central_meridian\",-108.75],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, "tor\",0.9999375],PARAMETER[\"false_easting\",600000],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 11, "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"32157\"]]"); p = add_epsg_def (filter, first, last, 32158, "epsg", 32158, "NAD83 / Wyoming West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.9"); add_proj4text (p, 1, "999375 +x_0=800000 +y_0=100000 +datum=NAD83 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Wyoming West\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",40.5],PARAMETER[\"cen"); add_srs_wkt (p, 8, "tral_meridian\",-110.0833333333333],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",0.9999375],PARAMETER[\"false_easting\",800000],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",100000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 12, "RTH],AUTHORITY[\"EPSG\",\"32158\"]]"); p = add_epsg_def (filter, first, last, 32161, "epsg", 32161, "NAD83 / Puerto Rico & Virgin Is."); add_proj4text (p, 0, "+proj=lcc +lat_1=18.43333333333333 +lat_2=18.03333333333"); add_proj4text (p, 1, "333 +lat_0=17.83333333333333 +lon_0=-66.43333333333334 +"); add_proj4text (p, 2, "x_0=200000 +y_0=200000 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Puerto Rico & Virgin Is.\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS "); add_srs_wkt (p, 2, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert"); add_srs_wkt (p, 7, "_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 8, ",18.43333333333333],PARAMETER[\"standard_parallel_2\",18"); add_srs_wkt (p, 9, ".03333333333333],PARAMETER[\"latitude_of_origin\",17.833"); add_srs_wkt (p, 10, "33333333333],PARAMETER[\"central_meridian\",-66.43333333"); add_srs_wkt (p, 11, "333334],PARAMETER[\"false_easting\",200000],PARAMETER[\""); add_srs_wkt (p, 12, "false_northing\",200000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 14, "RITY[\"EPSG\",\"32161\"]]"); p = add_epsg_def (filter, first, last, 32164, "epsg", 32164, "NAD83 / BLM 14N (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-99 +k=0.9996 +x_0=500000.00"); add_proj4text (p, 1, "1016002 +y_0=0 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / BLM 14N (ftUS)\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 7, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 8, "ntral_meridian\",-99],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 9, ",PARAMETER[\"false_easting\",1640416.67],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012"); add_srs_wkt (p, 11, "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS["); add_srs_wkt (p, 12, "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32164\"]]"); p = add_epsg_def (filter, first, last, 32165, "epsg", 32165, "NAD83 / BLM 15N (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9996 +x_0=500000.00"); add_proj4text (p, 1, "1016002 +y_0=0 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / BLM 15N (ftUS)\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 7, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 8, "ntral_meridian\",-93],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 9, ",PARAMETER[\"false_easting\",1640416.67],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012"); add_srs_wkt (p, 11, "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS["); add_srs_wkt (p, 12, "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32165\"]]"); p = add_epsg_def (filter, first, last, 32166, "epsg", 32166, "NAD83 / BLM 16N (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9996 +x_0=500000.00"); add_proj4text (p, 1, "1016002 +y_0=0 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / BLM 16N (ftUS)\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 7, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 8, "ntral_meridian\",-87],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 9, ",PARAMETER[\"false_easting\",1640416.67],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012"); add_srs_wkt (p, 11, "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS["); add_srs_wkt (p, 12, "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32166\"]]"); p = add_epsg_def (filter, first, last, 32167, "epsg", 32167, "NAD83 / BLM 17N (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9996 +x_0=500000.00"); add_proj4text (p, 1, "1016002 +y_0=0 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / BLM 17N (ftUS)\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 7, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 8, "ntral_meridian\",-81],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 9, ",PARAMETER[\"false_easting\",1640416.67],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012"); add_srs_wkt (p, 11, "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS["); add_srs_wkt (p, 12, "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32167\"]]"); p = add_epsg_def (filter, first, last, 32180, "epsg", 32180, "NAD83 / SCoPQ zone 2 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-55.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / SCoPQ zone 2 (deprecated)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",-55.5],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",0.9999],PARAMETER[\"false_easting\",304800],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 12, "RITY[\"EPSG\",\"32180\"]]"); p = add_epsg_def (filter, first, last, 32181, "epsg", 32181, "NAD83 / MTM zone 1"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-53 +k=0.9999 +x_0=304800 +y"); add_proj4text (p, 1, "_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / MTM zone 1\",GEOGCS[\"NAD83\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-53],PARAMETER[\"scale_factor\",0.9999],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",304800],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, "AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"32181\"]]"); p = add_epsg_def (filter, first, last, 32182, "epsg", 32182, "NAD83 / MTM zone 2"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-56 +k=0.9999 +x_0=304800 +y"); add_proj4text (p, 1, "_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / MTM zone 2\",GEOGCS[\"NAD83\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-56],PARAMETER[\"scale_factor\",0.9999],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",304800],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, "AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"32182\"]]"); p = add_epsg_def (filter, first, last, 32183, "epsg", 32183, "NAD83 / MTM zone 3"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-58.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / MTM zone 3\",GEOGCS[\"NAD83\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-58.5],PARAMETER[\"scale_factor\",0.9999],P"); add_srs_wkt (p, 9, "ARAMETER[\"false_easting\",304800],PARAMETER[\"false_nor"); add_srs_wkt (p, 10, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 11, "],AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"32183\"]]"); p = add_epsg_def (filter, first, last, 32184, "epsg", 32184, "NAD83 / MTM zone 4"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-61.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / MTM zone 4\",GEOGCS[\"NAD83\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-61.5],PARAMETER[\"scale_factor\",0.9999],P"); add_srs_wkt (p, 9, "ARAMETER[\"false_easting\",304800],PARAMETER[\"false_nor"); add_srs_wkt (p, 10, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 11, "],AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"32184\"]]"); p = add_epsg_def (filter, first, last, 32185, "epsg", 32185, "NAD83 / MTM zone 5"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-64.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / MTM zone 5\",GEOGCS[\"NAD83\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-64.5],PARAMETER[\"scale_factor\",0.9999],P"); add_srs_wkt (p, 9, "ARAMETER[\"false_easting\",304800],PARAMETER[\"false_nor"); add_srs_wkt (p, 10, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 11, "],AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"32185\"]]"); p = add_epsg_def (filter, first, last, 32186, "epsg", 32186, "NAD83 / MTM zone 6"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-67.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / MTM zone 6\",GEOGCS[\"NAD83\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-67.5],PARAMETER[\"scale_factor\",0.9999],P"); add_srs_wkt (p, 9, "ARAMETER[\"false_easting\",304800],PARAMETER[\"false_nor"); add_srs_wkt (p, 10, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 11, "],AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"32186\"]]"); p = add_epsg_def (filter, first, last, 32187, "epsg", 32187, "NAD83 / MTM zone 7"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-70.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / MTM zone 7\",GEOGCS[\"NAD83\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-70.5],PARAMETER[\"scale_factor\",0.9999],P"); add_srs_wkt (p, 9, "ARAMETER[\"false_easting\",304800],PARAMETER[\"false_nor"); add_srs_wkt (p, 10, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 11, "],AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"32187\"]]"); p = add_epsg_def (filter, first, last, 32188, "epsg", 32188, "NAD83 / MTM zone 8"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-73.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / MTM zone 8\",GEOGCS[\"NAD83\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-73.5],PARAMETER[\"scale_factor\",0.9999],P"); add_srs_wkt (p, 9, "ARAMETER[\"false_easting\",304800],PARAMETER[\"false_nor"); add_srs_wkt (p, 10, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 11, "],AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"32188\"]]"); p = add_epsg_def (filter, first, last, 32189, "epsg", 32189, "NAD83 / MTM zone 9"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-76.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / MTM zone 9\",GEOGCS[\"NAD83\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-76.5],PARAMETER[\"scale_factor\",0.9999],P"); add_srs_wkt (p, 9, "ARAMETER[\"false_easting\",304800],PARAMETER[\"false_nor"); add_srs_wkt (p, 10, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 11, "],AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"32189\"]]"); p = add_epsg_def (filter, first, last, 32190, "epsg", 32190, "NAD83 / MTM zone 10"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-79.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / MTM zone 10\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-79.5],PARAMETER[\"scale_factor\",0.9999],P"); add_srs_wkt (p, 9, "ARAMETER[\"false_easting\",304800],PARAMETER[\"false_nor"); add_srs_wkt (p, 10, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 11, "],AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"32190\"]]"); p = add_epsg_def (filter, first, last, 32191, "epsg", 32191, "NAD83 / MTM zone 11"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-82.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / MTM zone 11\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-82.5],PARAMETER[\"scale_factor\",0.9999],P"); add_srs_wkt (p, 9, "ARAMETER[\"false_easting\",304800],PARAMETER[\"false_nor"); add_srs_wkt (p, 10, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 11, "],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"32191\"]]"); p = add_epsg_def (filter, first, last, 32192, "epsg", 32192, "NAD83 / MTM zone 12"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9999 +x_0=304800 +y"); add_proj4text (p, 1, "_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / MTM zone 12\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-81],PARAMETER[\"scale_factor\",0.9999],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",304800],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"32192\"]]"); p = add_epsg_def (filter, first, last, 32193, "epsg", 32193, "NAD83 / MTM zone 13"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-84 +k=0.9999 +x_0=304800 +y"); add_proj4text (p, 1, "_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / MTM zone 13\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-84],PARAMETER[\"scale_factor\",0.9999],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",304800],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"32193\"]]"); p = add_epsg_def (filter, first, last, 32194, "epsg", 32194, "NAD83 / MTM zone 14"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9999 +x_0=304800 +y"); add_proj4text (p, 1, "_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / MTM zone 14\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-87],PARAMETER[\"scale_factor\",0.9999],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",304800],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"32194\"]]"); p = add_epsg_def (filter, first, last, 32195, "epsg", 32195, "NAD83 / MTM zone 15"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-90 +k=0.9999 +x_0=304800 +y"); add_proj4text (p, 1, "_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / MTM zone 15\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-90],PARAMETER[\"scale_factor\",0.9999],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",304800],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"32195\"]]"); p = add_epsg_def (filter, first, last, 32196, "epsg", 32196, "NAD83 / MTM zone 16"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9999 +x_0=304800 +y"); add_proj4text (p, 1, "_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / MTM zone 16\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-93],PARAMETER[\"scale_factor\",0.9999],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",304800],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"32196\"]]"); p = add_epsg_def (filter, first, last, 32197, "epsg", 32197, "NAD83 / MTM zone 17"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-96 +k=0.9999 +x_0=304800 +y"); add_proj4text (p, 1, "_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / MTM zone 17\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-96],PARAMETER[\"scale_factor\",0.9999],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",304800],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"32197\"]]"); p = add_epsg_def (filter, first, last, 32198, "epsg", 32198, "NAD83 / Quebec Lambert"); add_proj4text (p, 0, "+proj=lcc +lat_1=60 +lat_2=46 +lat_0=44 +lon_0=-68.5 +x_"); add_proj4text (p, 1, "0=0 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Quebec Lambert\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 7, "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",60],PARA"); add_srs_wkt (p, 8, "METER[\"standard_parallel_2\",46],PARAMETER[\"latitude_o"); add_srs_wkt (p, 9, "f_origin\",44],PARAMETER[\"central_meridian\",-68.5],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32198"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def (filter, first, last, 32199, "epsg", 32199, "NAD83 / Louisiana Offshore"); add_proj4text (p, 0, "+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666"); add_proj4text (p, 1, "667 +lat_0=25.5 +lon_0=-91.33333333333333 +x_0=1000000 +"); add_proj4text (p, 2, "y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Louisiana Offshore\",GEOGCS[\"NAD83\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 7, "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",27.8"); add_srs_wkt (p, 8, "3333333333333],PARAMETER[\"standard_parallel_2\",26.1666"); add_srs_wkt (p, 9, "6666666667],PARAMETER[\"latitude_of_origin\",25.5],PARAM"); add_srs_wkt (p, 10, "ETER[\"central_meridian\",-91.33333333333333],PARAMETER["); add_srs_wkt (p, 11, "\"false_easting\",1000000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 12, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 13, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32199\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def (filter, first, last, 32201, "epsg", 32201, "WGS 72 / UTM zone 1N"); add_proj4text (p, 0, "+proj=utm +zone=1 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55"); add_proj4text (p, 1, "4,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 1N\",GEOGCS[\"WGS 72\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 5, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, "177],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 11, "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32201\"]]"); p = add_epsg_def (filter, first, last, 32202, "epsg", 32202, "WGS 72 / UTM zone 2N"); add_proj4text (p, 0, "+proj=utm +zone=2 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55"); add_proj4text (p, 1, "4,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 2N\",GEOGCS[\"WGS 72\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 5, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, "171],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 11, "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32202\"]]"); p = add_epsg_def (filter, first, last, 32203, "epsg", 32203, "WGS 72 / UTM zone 3N"); add_proj4text (p, 0, "+proj=utm +zone=3 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55"); add_proj4text (p, 1, "4,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 3N\",GEOGCS[\"WGS 72\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 5, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, "165],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 11, "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32203\"]]"); p = add_epsg_def (filter, first, last, 32204, "epsg", 32204, "WGS 72 / UTM zone 4N"); add_proj4text (p, 0, "+proj=utm +zone=4 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55"); add_proj4text (p, 1, "4,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 4N\",GEOGCS[\"WGS 72\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 5, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, "159],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 11, "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32204\"]]"); p = add_epsg_def (filter, first, last, 32205, "epsg", 32205, "WGS 72 / UTM zone 5N"); add_proj4text (p, 0, "+proj=utm +zone=5 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55"); add_proj4text (p, 1, "4,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 5N\",GEOGCS[\"WGS 72\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 5, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, "153],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 11, "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32205\"]]"); p = add_epsg_def (filter, first, last, 32206, "epsg", 32206, "WGS 72 / UTM zone 6N"); add_proj4text (p, 0, "+proj=utm +zone=6 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55"); add_proj4text (p, 1, "4,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 6N\",GEOGCS[\"WGS 72\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 5, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, "147],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 11, "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32206\"]]"); p = add_epsg_def (filter, first, last, 32207, "epsg", 32207, "WGS 72 / UTM zone 7N"); add_proj4text (p, 0, "+proj=utm +zone=7 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55"); add_proj4text (p, 1, "4,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 7N\",GEOGCS[\"WGS 72\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 5, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, "141],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 11, "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32207\"]]"); p = add_epsg_def (filter, first, last, 32208, "epsg", 32208, "WGS 72 / UTM zone 8N"); add_proj4text (p, 0, "+proj=utm +zone=8 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55"); add_proj4text (p, 1, "4,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 8N\",GEOGCS[\"WGS 72\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 5, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, "135],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 11, "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32208\"]]"); p = add_epsg_def (filter, first, last, 32209, "epsg", 32209, "WGS 72 / UTM zone 9N"); add_proj4text (p, 0, "+proj=utm +zone=9 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55"); add_proj4text (p, 1, "4,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 9N\",GEOGCS[\"WGS 72\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 5, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, "129],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 11, "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32209\"]]"); p = add_epsg_def (filter, first, last, 32210, "epsg", 32210, "WGS 72 / UTM zone 10N"); add_proj4text (p, 0, "+proj=utm +zone=10 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 10N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-123],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa"); add_srs_wkt (p, 9, "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 10, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); add_srs_wkt (p, 11, "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"32210\"]]"); p = add_epsg_def (filter, first, last, 32211, "epsg", 32211, "WGS 72 / UTM zone 11N"); add_proj4text (p, 0, "+proj=utm +zone=11 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 11N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-117],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa"); add_srs_wkt (p, 9, "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 10, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); add_srs_wkt (p, 11, "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"32211\"]]"); p = add_epsg_def (filter, first, last, 32212, "epsg", 32212, "WGS 72 / UTM zone 12N"); add_proj4text (p, 0, "+proj=utm +zone=12 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 12N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-111],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa"); add_srs_wkt (p, 9, "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 10, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); add_srs_wkt (p, 11, "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"32212\"]]"); p = add_epsg_def (filter, first, last, 32213, "epsg", 32213, "WGS 72 / UTM zone 13N"); add_proj4text (p, 0, "+proj=utm +zone=13 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 13N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-105],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa"); add_srs_wkt (p, 9, "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 10, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); add_srs_wkt (p, 11, "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"32213\"]]"); p = add_epsg_def (filter, first, last, 32214, "epsg", 32214, "WGS 72 / UTM zone 14N"); add_proj4text (p, 0, "+proj=utm +zone=14 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 14N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-99],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 11, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32214\"]]"); p = add_epsg_def (filter, first, last, 32215, "epsg", 32215, "WGS 72 / UTM zone 15N"); add_proj4text (p, 0, "+proj=utm +zone=15 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 15N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-93],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 11, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32215\"]]"); p = add_epsg_def (filter, first, last, 32216, "epsg", 32216, "WGS 72 / UTM zone 16N"); add_proj4text (p, 0, "+proj=utm +zone=16 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 16N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-87],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 11, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32216\"]]"); p = add_epsg_def (filter, first, last, 32217, "epsg", 32217, "WGS 72 / UTM zone 17N"); add_proj4text (p, 0, "+proj=utm +zone=17 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 17N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-81],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 11, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32217\"]]"); p = add_epsg_def (filter, first, last, 32218, "epsg", 32218, "WGS 72 / UTM zone 18N"); add_proj4text (p, 0, "+proj=utm +zone=18 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 18N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-75],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 11, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32218\"]]"); p = add_epsg_def (filter, first, last, 32219, "epsg", 32219, "WGS 72 / UTM zone 19N"); add_proj4text (p, 0, "+proj=utm +zone=19 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 19N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-69],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 11, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32219\"]]"); p = add_epsg_def (filter, first, last, 32220, "epsg", 32220, "WGS 72 / UTM zone 20N"); add_proj4text (p, 0, "+proj=utm +zone=20 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 20N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-63],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 11, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32220\"]]"); p = add_epsg_def (filter, first, last, 32221, "epsg", 32221, "WGS 72 / UTM zone 21N"); add_proj4text (p, 0, "+proj=utm +zone=21 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 21N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-57],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 11, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32221\"]]"); p = add_epsg_def (filter, first, last, 32222, "epsg", 32222, "WGS 72 / UTM zone 22N"); add_proj4text (p, 0, "+proj=utm +zone=22 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 22N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-51],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 11, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32222\"]]"); p = add_epsg_def (filter, first, last, 32223, "epsg", 32223, "WGS 72 / UTM zone 23N"); add_proj4text (p, 0, "+proj=utm +zone=23 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 23N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-45],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 11, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32223\"]]"); p = add_epsg_def (filter, first, last, 32224, "epsg", 32224, "WGS 72 / UTM zone 24N"); add_proj4text (p, 0, "+proj=utm +zone=24 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 24N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-39],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 11, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32224\"]]"); p = add_epsg_def (filter, first, last, 32225, "epsg", 32225, "WGS 72 / UTM zone 25N"); add_proj4text (p, 0, "+proj=utm +zone=25 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 25N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-33],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 11, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32225\"]]"); p = add_epsg_def (filter, first, last, 32226, "epsg", 32226, "WGS 72 / UTM zone 26N"); add_proj4text (p, 0, "+proj=utm +zone=26 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 26N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-27],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 11, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32226\"]]"); p = add_epsg_def (filter, first, last, 32227, "epsg", 32227, "WGS 72 / UTM zone 27N"); add_proj4text (p, 0, "+proj=utm +zone=27 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 27N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-21],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 11, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32227\"]]"); p = add_epsg_def (filter, first, last, 32228, "epsg", 32228, "WGS 72 / UTM zone 28N"); add_proj4text (p, 0, "+proj=utm +zone=28 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 28N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-15],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 11, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32228\"]]"); p = add_epsg_def (filter, first, last, 32229, "epsg", 32229, "WGS 72 / UTM zone 29N"); add_proj4text (p, 0, "+proj=utm +zone=29 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 29N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-9],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 11, "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32229\"]]"); p = add_epsg_def (filter, first, last, 32230, "epsg", 32230, "WGS 72 / UTM zone 30N"); add_proj4text (p, 0, "+proj=utm +zone=30 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 30N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-3],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 11, "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32230\"]]"); p = add_epsg_def (filter, first, last, 32231, "epsg", 32231, "WGS 72 / UTM zone 31N"); add_proj4text (p, 0, "+proj=utm +zone=31 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 31N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",3],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false"); add_srs_wkt (p, 9, "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 10, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 11, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 12, "2231\"]]"); p = add_epsg_def (filter, first, last, 32232, "epsg", 32232, "WGS 72 / UTM zone 32N"); add_proj4text (p, 0, "+proj=utm +zone=32 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 32N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",9],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false"); add_srs_wkt (p, 9, "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 10, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 11, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 12, "2232\"]]"); p = add_epsg_def (filter, first, last, 32233, "epsg", 32233, "WGS 72 / UTM zone 33N"); add_proj4text (p, 0, "+proj=utm +zone=33 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 33N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",15],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 11, "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32233\"]]"); p = add_epsg_def (filter, first, last, 32234, "epsg", 32234, "WGS 72 / UTM zone 34N"); add_proj4text (p, 0, "+proj=utm +zone=34 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 34N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",21],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 11, "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32234\"]]"); p = add_epsg_def (filter, first, last, 32235, "epsg", 32235, "WGS 72 / UTM zone 35N"); add_proj4text (p, 0, "+proj=utm +zone=35 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 35N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",27],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 11, "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32235\"]]"); p = add_epsg_def (filter, first, last, 32236, "epsg", 32236, "WGS 72 / UTM zone 36N"); add_proj4text (p, 0, "+proj=utm +zone=36 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 36N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",33],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 11, "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32236\"]]"); } #endif /* full EPSG initialization enabled/disabled */ libspatialite-4.1.1/src/srsinit/epsg_inlined_09.c0000664000175000017500000045237612163502133016701 00000000000000/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def (filter, first, last, 2931, "epsg", 2931, "Beduaram / TM 13 NE"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=13 +k=0.9996 +x_0=500000 +y_"); add_proj4text (p, 1, "0=0 +a=6378249.2 +b=6356515 +towgs84=-106,-87,188,0,0,0,"); add_proj4text (p, 2, "0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beduaram / TM 13 NE\",GEOGCS[\"Beduaram\",DATUM"); add_srs_wkt (p, 1, "[\"Beduaram\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,2"); add_srs_wkt (p, 2, "93.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-"); add_srs_wkt (p, 3, "106,-87,188,0,0,0,0],AUTHORITY[\"EPSG\",\"6213\"]],PRIME"); add_srs_wkt (p, 4, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"4213\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 7, "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 8, "[\"central_meridian\",13],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 9, "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 11, "001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"2931\"]]"); p = add_epsg_def (filter, first, last, 2932, "epsg", 2932, "QND95 / Qatar National Grid"); add_proj4text (p, 0, "+proj=tmerc +lat_0=24.45 +lon_0=51.21666666666667 +k=0.9"); add_proj4text (p, 1, "9999 +x_0=200000 +y_0=300000 +ellps=intl +towgs84=-119.4"); add_proj4text (p, 2, "25,-303.659,-11.0006,1.1643,0.174458,1.09626,3.65706 +un"); add_proj4text (p, 3, "its=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"QND95 / Qatar National Grid\",GEOGCS[\"QND95\","); add_srs_wkt (p, 1, "DATUM[\"Qatar_National_Datum_1995\",SPHEROID[\"Internati"); add_srs_wkt (p, 2, "onal 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TO"); add_srs_wkt (p, 3, "WGS84[-119.425,-303.659,-11.0006,1.1643,0.174458,1.09626"); add_srs_wkt (p, 4, ",3.65706],AUTHORITY[\"EPSG\",\"6614\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 5, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 6, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4614\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 8, "PARAMETER[\"latitude_of_origin\",24.45],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",51.21666666666667],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",0.99999],PARAMETER[\"false_easting\",200000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",300000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 13, "hing\",NORTH],AUTHORITY[\"EPSG\",\"2932\"]]"); p = add_epsg_def (filter, first, last, 2933, "epsg", 2933, "Segara / UTM zone 50S"); add_proj4text (p, 0, "+proj=utm +zone=50 +south +ellps=bessel +towgs84=-403,68"); add_proj4text (p, 1, "4,41,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Segara / UTM zone 50S\",GEOGCS[\"Segara\",DATUM"); add_srs_wkt (p, 1, "[\"Gunung_Segara\",SPHEROID[\"Bessel 1841\",6377397.155,"); add_srs_wkt (p, 2, "299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-403,6"); add_srs_wkt (p, 3, "84,41,0,0,0,0],AUTHORITY[\"EPSG\",\"6613\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4613\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 8, "ral_meridian\",117],PARAMETER[\"scale_factor\",0.9996],P"); add_srs_wkt (p, 9, "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 10, "thing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"2933\"]]"); p = add_epsg_def (filter, first, last, 2934, "epsg", 2934, "Segara (Jakarta) / NEIEZ (deprecated)"); add_proj4text (p, 0, "+proj=merc +lon_0=110 +k=0.997 +x_0=3900000 +y_0=900000 "); add_proj4text (p, 1, "+ellps=bessel +towgs84=-403,684,41,0,0,0,0 +pm=jakarta +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Segara (Jakarta) / NEIEZ (deprecated)\",GEOGCS["); add_srs_wkt (p, 1, "\"Segara (Jakarta)\",DATUM[\"Gunung_Segara_Jakarta\",SPH"); add_srs_wkt (p, 2, "EROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7004\"]],TOWGS84[-403,684,41,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"6820\"]],PRIMEM[\"Jakarta\",106.8077194444"); add_srs_wkt (p, 5, "444,AUTHORITY[\"EPSG\",\"8908\"]],UNIT[\"degree\",0.0174"); add_srs_wkt (p, 6, "532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4820\"]],PROJECTION[\"Mercator_1SP\"],PARAMETER["); add_srs_wkt (p, 8, "\"central_meridian\",110],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 9, "97],PARAMETER[\"false_easting\",3900000],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_northing\",900000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, ",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"2934\"]]"); p = add_epsg_def (filter, first, last, 2935, "epsg", 2935, "Pulkovo 1942 / CS63 zone A1"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0.1166666666666667 +lon_0=41.53333333"); add_proj4text (p, 1, "333333 +k=1 +x_0=1300000 +y_0=0 +ellps=krass +towgs84=23"); add_proj4text (p, 2, ".92,-141.27,-80.9,-0,0.35,0.82,-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / CS63 zone A1\",GEOGCS[\"Pulkovo "); add_srs_wkt (p, 1, "1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassowsky 1940"); add_srs_wkt (p, 2, "\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[2"); add_srs_wkt (p, 3, "3.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0.1166666666666667],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 9, "41.53333333333333],PARAMETER[\"scale_factor\",1],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",1300000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 12, "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"293"); add_srs_wkt (p, 13, "5\"]]"); p = add_epsg_def (filter, first, last, 2936, "epsg", 2936, "Pulkovo 1942 / CS63 zone A2"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0.1166666666666667 +lon_0=44.53333333"); add_proj4text (p, 1, "333333 +k=1 +x_0=2300000 +y_0=0 +ellps=krass +towgs84=23"); add_proj4text (p, 2, ".92,-141.27,-80.9,-0,0.35,0.82,-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / CS63 zone A2\",GEOGCS[\"Pulkovo "); add_srs_wkt (p, 1, "1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassowsky 1940"); add_srs_wkt (p, 2, "\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[2"); add_srs_wkt (p, 3, "3.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0.1166666666666667],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 9, "44.53333333333333],PARAMETER[\"scale_factor\",1],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",2300000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 12, "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"293"); add_srs_wkt (p, 13, "6\"]]"); p = add_epsg_def (filter, first, last, 2937, "epsg", 2937, "Pulkovo 1942 / CS63 zone A3"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0.1166666666666667 +lon_0=47.53333333"); add_proj4text (p, 1, "333333 +k=1 +x_0=3300000 +y_0=0 +ellps=krass +towgs84=23"); add_proj4text (p, 2, ".92,-141.27,-80.9,-0,0.35,0.82,-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / CS63 zone A3\",GEOGCS[\"Pulkovo "); add_srs_wkt (p, 1, "1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassowsky 1940"); add_srs_wkt (p, 2, "\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[2"); add_srs_wkt (p, 3, "3.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0.1166666666666667],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 9, "47.53333333333333],PARAMETER[\"scale_factor\",1],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",3300000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 12, "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"293"); add_srs_wkt (p, 13, "7\"]]"); p = add_epsg_def (filter, first, last, 2938, "epsg", 2938, "Pulkovo 1942 / CS63 zone A4"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0.1166666666666667 +lon_0=50.53333333"); add_proj4text (p, 1, "333333 +k=1 +x_0=4300000 +y_0=0 +ellps=krass +towgs84=23"); add_proj4text (p, 2, ".92,-141.27,-80.9,-0,0.35,0.82,-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / CS63 zone A4\",GEOGCS[\"Pulkovo "); add_srs_wkt (p, 1, "1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassowsky 1940"); add_srs_wkt (p, 2, "\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[2"); add_srs_wkt (p, 3, "3.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0.1166666666666667],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 9, "50.53333333333333],PARAMETER[\"scale_factor\",1],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",4300000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 12, "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"293"); add_srs_wkt (p, 13, "8\"]]"); p = add_epsg_def (filter, first, last, 2939, "epsg", 2939, "Pulkovo 1942 / CS63 zone K2"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0.1333333333333333 +lon_0=50.76666666"); add_proj4text (p, 1, "666667 +k=1 +x_0=2300000 +y_0=0 +ellps=krass +towgs84=23"); add_proj4text (p, 2, ".92,-141.27,-80.9,-0,0.35,0.82,-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / CS63 zone K2\",GEOGCS[\"Pulkovo "); add_srs_wkt (p, 1, "1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassowsky 1940"); add_srs_wkt (p, 2, "\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[2"); add_srs_wkt (p, 3, "3.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0.1333333333333333],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 9, "50.76666666666667],PARAMETER[\"scale_factor\",1],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",2300000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 12, "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"293"); add_srs_wkt (p, 13, "9\"]]"); p = add_epsg_def (filter, first, last, 2940, "epsg", 2940, "Pulkovo 1942 / CS63 zone K3"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0.1333333333333333 +lon_0=53.76666666"); add_proj4text (p, 1, "666667 +k=1 +x_0=3300000 +y_0=0 +ellps=krass +towgs84=23"); add_proj4text (p, 2, ".92,-141.27,-80.9,-0,0.35,0.82,-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / CS63 zone K3\",GEOGCS[\"Pulkovo "); add_srs_wkt (p, 1, "1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassowsky 1940"); add_srs_wkt (p, 2, "\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[2"); add_srs_wkt (p, 3, "3.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0.1333333333333333],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 9, "53.76666666666667],PARAMETER[\"scale_factor\",1],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",3300000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 12, "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"294"); add_srs_wkt (p, 13, "0\"]]"); p = add_epsg_def (filter, first, last, 2941, "epsg", 2941, "Pulkovo 1942 / CS63 zone K4"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0.1333333333333333 +lon_0=56.76666666"); add_proj4text (p, 1, "666667 +k=1 +x_0=4300000 +y_0=0 +ellps=krass +towgs84=23"); add_proj4text (p, 2, ".92,-141.27,-80.9,-0,0.35,0.82,-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / CS63 zone K4\",GEOGCS[\"Pulkovo "); add_srs_wkt (p, 1, "1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassowsky 1940"); add_srs_wkt (p, 2, "\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[2"); add_srs_wkt (p, 3, "3.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0.1333333333333333],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 9, "56.76666666666667],PARAMETER[\"scale_factor\",1],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",4300000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 12, "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"294"); add_srs_wkt (p, 13, "1\"]]"); p = add_epsg_def (filter, first, last, 2942, "epsg", 2942, "Porto Santo / UTM zone 28N"); add_proj4text (p, 0, "+proj=utm +zone=28 +ellps=intl +towgs84=-499,-249,314,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Porto Santo / UTM zone 28N\",GEOGCS[\"Porto San"); add_srs_wkt (p, 1, "to\",DATUM[\"Porto_Santo_1936\",SPHEROID[\"International"); add_srs_wkt (p, 2, " 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS8"); add_srs_wkt (p, 3, "4[-499,-249,314,0,0,0,0],AUTHORITY[\"EPSG\",\"6615\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AUTHORITY[\"EPSG\",\"4615\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 7, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 8, "ETER[\"central_meridian\",-15],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"2942\"]]"); p = add_epsg_def (filter, first, last, 2943, "epsg", 2943, "Selvagem Grande / UTM zone 28N"); add_proj4text (p, 0, "+proj=utm +zone=28 +ellps=intl +towgs84=-289,-124,60,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Selvagem Grande / UTM zone 28N\",GEOGCS[\"Selva"); add_srs_wkt (p, 1, "gem Grande\",DATUM[\"Selvagem_Grande\",SPHEROID[\"Intern"); add_srs_wkt (p, 2, "ational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]]"); add_srs_wkt (p, 3, ",TOWGS84[-289,-124,60,0,0,0,0],AUTHORITY[\"EPSG\",\"6616"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4616\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-15],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"2943\"]]"); p = add_epsg_def (filter, first, last, 2944, "epsg", 2944, "NAD83(CSRS) / SCoPQ zone 2 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-55.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / SCoPQ zone 2 (deprecated)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"46"); add_srs_wkt (p, 7, "17\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",-5"); add_srs_wkt (p, 9, "5.5],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_easting\",304800],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 11, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EA"); add_srs_wkt (p, 12, "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2944\"]]"); p = add_epsg_def (filter, first, last, 2945, "epsg", 2945, "NAD83(CSRS) / MTM zone 3"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-58.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / MTM zone 3\",GEOGCS[\"NAD83(CSRS)"); add_srs_wkt (p, 1, "\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",-58.5],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",0.9999],PARAMETER[\"false_easting\",304"); add_srs_wkt (p, 10, "800],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"E(X)\",EAST],AXIS[\"N"); add_srs_wkt (p, 12, "(Y)\",NORTH],AUTHORITY[\"EPSG\",\"2945\"]]"); p = add_epsg_def (filter, first, last, 2946, "epsg", 2946, "NAD83(CSRS) / MTM zone 4"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-61.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / MTM zone 4\",GEOGCS[\"NAD83(CSRS)"); add_srs_wkt (p, 1, "\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",-61.5],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",0.9999],PARAMETER[\"false_easting\",304"); add_srs_wkt (p, 10, "800],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"E(X)\",EAST],AXIS[\"N"); add_srs_wkt (p, 12, "(Y)\",NORTH],AUTHORITY[\"EPSG\",\"2946\"]]"); p = add_epsg_def (filter, first, last, 2947, "epsg", 2947, "NAD83(CSRS) / MTM zone 5"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-64.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / MTM zone 5\",GEOGCS[\"NAD83(CSRS)"); add_srs_wkt (p, 1, "\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",-64.5],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",0.9999],PARAMETER[\"false_easting\",304"); add_srs_wkt (p, 10, "800],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"E(X)\",EAST],AXIS[\"N"); add_srs_wkt (p, 12, "(Y)\",NORTH],AUTHORITY[\"EPSG\",\"2947\"]]"); p = add_epsg_def (filter, first, last, 2948, "epsg", 2948, "NAD83(CSRS) / MTM zone 6"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-67.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / MTM zone 6\",GEOGCS[\"NAD83(CSRS)"); add_srs_wkt (p, 1, "\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",-67.5],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",0.9999],PARAMETER[\"false_easting\",304"); add_srs_wkt (p, 10, "800],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"E(X)\",EAST],AXIS[\"N"); add_srs_wkt (p, 12, "(Y)\",NORTH],AUTHORITY[\"EPSG\",\"2948\"]]"); p = add_epsg_def (filter, first, last, 2949, "epsg", 2949, "NAD83(CSRS) / MTM zone 7"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-70.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / MTM zone 7\",GEOGCS[\"NAD83(CSRS)"); add_srs_wkt (p, 1, "\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",-70.5],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",0.9999],PARAMETER[\"false_easting\",304"); add_srs_wkt (p, 10, "800],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"E(X)\",EAST],AXIS[\"N"); add_srs_wkt (p, 12, "(Y)\",NORTH],AUTHORITY[\"EPSG\",\"2949\"]]"); p = add_epsg_def (filter, first, last, 2950, "epsg", 2950, "NAD83(CSRS) / MTM zone 8"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-73.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / MTM zone 8\",GEOGCS[\"NAD83(CSRS)"); add_srs_wkt (p, 1, "\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",-73.5],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",0.9999],PARAMETER[\"false_easting\",304"); add_srs_wkt (p, 10, "800],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"E(X)\",EAST],AXIS[\"N"); add_srs_wkt (p, 12, "(Y)\",NORTH],AUTHORITY[\"EPSG\",\"2950\"]]"); p = add_epsg_def (filter, first, last, 2951, "epsg", 2951, "NAD83(CSRS) / MTM zone 9"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-76.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / MTM zone 9\",GEOGCS[\"NAD83(CSRS)"); add_srs_wkt (p, 1, "\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",-76.5],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",0.9999],PARAMETER[\"false_easting\",304"); add_srs_wkt (p, 10, "800],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"E(X)\",EAST],AXIS[\"N"); add_srs_wkt (p, 12, "(Y)\",NORTH],AUTHORITY[\"EPSG\",\"2951\"]]"); p = add_epsg_def (filter, first, last, 2952, "epsg", 2952, "NAD83(CSRS) / MTM zone 10"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-79.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / MTM zone 10\",GEOGCS[\"NAD83(CSRS"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",-79.5],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",0.9999],PARAMETER[\"false_easting\",304"); add_srs_wkt (p, 10, "800],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"E(X)\",EAST],AXIS[\"N"); add_srs_wkt (p, 12, "(Y)\",NORTH],AUTHORITY[\"EPSG\",\"2952\"]]"); p = add_epsg_def (filter, first, last, 2953, "epsg", 2953, "NAD83(CSRS) / New Brunswick Stereographic"); add_proj4text (p, 0, "+proj=sterea +lat_0=46.5 +lon_0=-66.5 +k=0.999912 +x_0=2"); add_proj4text (p, 1, "500000 +y_0=7500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 "); add_proj4text (p, 2, "+units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / New Brunswick Stereographic\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4617\"]],PROJECTION[\"Oblique_Stereographic\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",46.5],PARAMETER[\"central_meridi"); add_srs_wkt (p, 9, "an\",-66.5],PARAMETER[\"scale_factor\",0.999912],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",2500000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, "\",7500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"2953\"]]"); p = add_epsg_def (filter, first, last, 2954, "epsg", 2954, "NAD83(CSRS) / Prince Edward Isl. Stereographic (NAD83)"); add_proj4text (p, 0, "+proj=sterea +lat_0=47.25 +lon_0=-63 +k=0.999912 +x_0=40"); add_proj4text (p, 1, "0000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +un"); add_proj4text (p, 2, "its=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / Prince Edward Isl. Stereographic "); add_srs_wkt (p, 1, "(NAD83)\",GEOGCS[\"NAD83(CSRS)\",DATUM[\"NAD83_Canadian_"); add_srs_wkt (p, 2, "Spatial_Reference_System\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 3, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 4, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Green"); add_srs_wkt (p, 5, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 6, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 7, "Y[\"EPSG\",\"4617\"]],PROJECTION[\"Oblique_Stereographic"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",47.25],PARAMETER[\""); add_srs_wkt (p, 9, "central_meridian\",-63],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 10, "912],PARAMETER[\"false_easting\",400000],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_northing\",800000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"9001\"]],AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"2954\"]]"); p = add_epsg_def (filter, first, last, 2955, "epsg", 2955, "NAD83(CSRS) / UTM zone 11N"); add_proj4text (p, 0, "+proj=utm +zone=11 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / UTM zone 11N\",GEOGCS[\"NAD83(CSR"); add_srs_wkt (p, 1, "S)\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 8, "igin\",0],PARAMETER[\"central_meridian\",-117],PARAMETER"); add_srs_wkt (p, 9, "[\"scale_factor\",0.9996],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS"); add_srs_wkt (p, 12, "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2955\"]]"); p = add_epsg_def (filter, first, last, 2956, "epsg", 2956, "NAD83(CSRS) / UTM zone 12N"); add_proj4text (p, 0, "+proj=utm +zone=12 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / UTM zone 12N\",GEOGCS[\"NAD83(CSR"); add_srs_wkt (p, 1, "S)\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 8, "igin\",0],PARAMETER[\"central_meridian\",-111],PARAMETER"); add_srs_wkt (p, 9, "[\"scale_factor\",0.9996],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS"); add_srs_wkt (p, 12, "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2956\"]]"); p = add_epsg_def (filter, first, last, 2957, "epsg", 2957, "NAD83(CSRS) / UTM zone 13N"); add_proj4text (p, 0, "+proj=utm +zone=13 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / UTM zone 13N\",GEOGCS[\"NAD83(CSR"); add_srs_wkt (p, 1, "S)\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 8, "igin\",0],PARAMETER[\"central_meridian\",-105],PARAMETER"); add_srs_wkt (p, 9, "[\"scale_factor\",0.9996],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS"); add_srs_wkt (p, 12, "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2957\"]]"); p = add_epsg_def (filter, first, last, 2958, "epsg", 2958, "NAD83(CSRS) / UTM zone 17N"); add_proj4text (p, 0, "+proj=utm +zone=17 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / UTM zone 17N\",GEOGCS[\"NAD83(CSR"); add_srs_wkt (p, 1, "S)\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 8, "igin\",0],PARAMETER[\"central_meridian\",-81],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",0.9996],PARAMETER[\"false_easting\",500"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS["); add_srs_wkt (p, 12, "\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2958\"]]"); p = add_epsg_def (filter, first, last, 2959, "epsg", 2959, "NAD83(CSRS) / UTM zone 18N"); add_proj4text (p, 0, "+proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / UTM zone 18N\",GEOGCS[\"NAD83(CSR"); add_srs_wkt (p, 1, "S)\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 8, "igin\",0],PARAMETER[\"central_meridian\",-75],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",0.9996],PARAMETER[\"false_easting\",500"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS["); add_srs_wkt (p, 12, "\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2959\"]]"); p = add_epsg_def (filter, first, last, 2960, "epsg", 2960, "NAD83(CSRS) / UTM zone 19N"); add_proj4text (p, 0, "+proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / UTM zone 19N\",GEOGCS[\"NAD83(CSR"); add_srs_wkt (p, 1, "S)\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 8, "igin\",0],PARAMETER[\"central_meridian\",-69],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",0.9996],PARAMETER[\"false_easting\",500"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS["); add_srs_wkt (p, 12, "\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2960\"]]"); p = add_epsg_def (filter, first, last, 2961, "epsg", 2961, "NAD83(CSRS) / UTM zone 20N"); add_proj4text (p, 0, "+proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / UTM zone 20N\",GEOGCS[\"NAD83(CSR"); add_srs_wkt (p, 1, "S)\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 8, "igin\",0],PARAMETER[\"central_meridian\",-63],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",0.9996],PARAMETER[\"false_easting\",500"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS["); add_srs_wkt (p, 12, "\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2961\"]]"); p = add_epsg_def (filter, first, last, 2962, "epsg", 2962, "NAD83(CSRS) / UTM zone 21N"); add_proj4text (p, 0, "+proj=utm +zone=21 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / UTM zone 21N\",GEOGCS[\"NAD83(CSR"); add_srs_wkt (p, 1, "S)\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 8, "igin\",0],PARAMETER[\"central_meridian\",-57],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",0.9996],PARAMETER[\"false_easting\",500"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS["); add_srs_wkt (p, 12, "\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2962\"]]"); p = add_epsg_def (filter, first, last, 2964, "epsg", 2964, "NAD27 / Alaska Albers"); add_proj4text (p, 0, "+proj=aea +lat_1=55 +lat_2=65 +lat_0=50 +lon_0=-154 +x_0"); add_proj4text (p, 1, "=0 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Alaska Albers\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4267\"]],PROJECTION[\"Albers_Conic_Equal_Area\"],PARAM"); add_srs_wkt (p, 7, "ETER[\"standard_parallel_1\",55],PARAMETER[\"standard_pa"); add_srs_wkt (p, 8, "rallel_2\",65],PARAMETER[\"latitude_of_center\",50],PARA"); add_srs_wkt (p, 9, "METER[\"longitude_of_center\",-154],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",0],PARAMETER[\"false_northing\",0],UNIT[\"US sur"); add_srs_wkt (p, 11, "vey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\""); add_srs_wkt (p, 12, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"2964\"]]"); p = add_epsg_def (filter, first, last, 2965, "epsg", 2965, "NAD83 / Indiana East (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.9"); add_proj4text (p, 1, "99966667 +x_0=99999.99989839978 +y_0=249999.9998983998 +"); add_proj4text (p, 2, "datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Indiana East (ftUS)\",GEOGCS[\"NAD83\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, "rcator\"],PARAMETER[\"latitude_of_origin\",37.5],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-85.66666666666667],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.999966667],PARAMETER[\"false_easting\","); add_srs_wkt (p, 10, "328083.333],PARAMETER[\"false_northing\",820208.33300000"); add_srs_wkt (p, 11, "02],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"2965\"]]"); p = add_epsg_def (filter, first, last, 2966, "epsg", 2966, "NAD83 / Indiana West (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.9"); add_proj4text (p, 1, "99966667 +x_0=900000 +y_0=249999.9998983998 +datum=NAD83"); add_proj4text (p, 2, " +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Indiana West (ftUS)\",GEOGCS[\"NAD83\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, "rcator\"],PARAMETER[\"latitude_of_origin\",37.5],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-87.08333333333333],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.999966667],PARAMETER[\"false_easting\","); add_srs_wkt (p, 10, "2952750],PARAMETER[\"false_northing\",820208.3330000002]"); add_srs_wkt (p, 11, ",UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"2966\"]]"); p = add_epsg_def (filter, first, last, 2967, "epsg", 2967, "NAD83(HARN) / Indiana East (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.9"); add_proj4text (p, 1, "99966667 +x_0=99999.99989839978 +y_0=249999.9998983998 +"); add_proj4text (p, 2, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Indiana East (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Networ"); add_srs_wkt (p, 2, "k\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",37.5],PARAMETER[\"central_meridian\",-85.6666"); add_srs_wkt (p, 9, "6666666667],PARAMETER[\"scale_factor\",0.999966667],PARA"); add_srs_wkt (p, 10, "METER[\"false_easting\",328083.333],PARAMETER[\"false_no"); add_srs_wkt (p, 11, "rthing\",820208.3330000002],UNIT[\"US survey foot\",0.30"); add_srs_wkt (p, 12, "48006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\","); add_srs_wkt (p, 13, "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2967\"]]"); p = add_epsg_def (filter, first, last, 2968, "epsg", 2968, "NAD83(HARN) / Indiana West (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.9"); add_proj4text (p, 1, "99966667 +x_0=900000 +y_0=249999.9998983998 +ellps=GRS80"); add_proj4text (p, 2, " +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Indiana West (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Networ"); add_srs_wkt (p, 2, "k\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",37.5],PARAMETER[\"central_meridian\",-87.0833"); add_srs_wkt (p, 9, "3333333333],PARAMETER[\"scale_factor\",0.999966667],PARA"); add_srs_wkt (p, 10, "METER[\"false_easting\",2952750],PARAMETER[\"false_north"); add_srs_wkt (p, 11, "ing\",820208.3330000002],UNIT[\"US survey foot\",0.30480"); add_srs_wkt (p, 12, "06096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAS"); add_srs_wkt (p, 13, "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2968\"]]"); p = add_epsg_def (filter, first, last, 2969, "epsg", 2969, "Fort Marigot / UTM zone 20N"); add_proj4text (p, 0, "+proj=utm +zone=20 +ellps=intl +towgs84=137,248,-430,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Fort Marigot / UTM zone 20N\",GEOGCS[\"Fort Mar"); add_srs_wkt (p, 1, "igot\",DATUM[\"Fort_Marigot\",SPHEROID[\"International 1"); add_srs_wkt (p, 2, "924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84["); add_srs_wkt (p, 3, "137,248,-430,0,0,0,0],AUTHORITY[\"EPSG\",\"6621\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4621\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, "R[\"central_meridian\",-63],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"2969\"]]"); p = add_epsg_def (filter, first, last, 2970, "epsg", 2970, "Guadeloupe 1948 / UTM zone 20N"); add_proj4text (p, 0, "+proj=utm +zone=20 +ellps=intl +towgs84=-467,-16,-300,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Guadeloupe 1948 / UTM zone 20N\",GEOGCS[\"Guade"); add_srs_wkt (p, 1, "loupe 1948\",DATUM[\"Guadeloupe_1948\",SPHEROID[\"Intern"); add_srs_wkt (p, 2, "ational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]]"); add_srs_wkt (p, 3, ",TOWGS84[-467,-16,-300,0,0,0,0],AUTHORITY[\"EPSG\",\"662"); add_srs_wkt (p, 4, "2\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4622\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, "],PARAMETER[\"central_meridian\",-63],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 11, "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 12, "ng\",NORTH],AUTHORITY[\"EPSG\",\"2970\"]]"); p = add_epsg_def (filter, first, last, 2971, "epsg", 2971, "CSG67 / UTM zone 22N"); add_proj4text (p, 0, "+proj=utm +zone=22 +ellps=intl +towgs84=-186,230,110,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CSG67 / UTM zone 22N\",GEOGCS[\"CSG67\",DATUM[\""); add_srs_wkt (p, 1, "Centre_Spatial_Guyanais_1967\",SPHEROID[\"International "); add_srs_wkt (p, 2, "1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84"); add_srs_wkt (p, 3, "[-186,230,110,0,0,0,0],AUTHORITY[\"EPSG\",\"6623\"]],PRI"); add_srs_wkt (p, 4, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4623\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, "R[\"central_meridian\",-51],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"2971\"]]"); p = add_epsg_def (filter, first, last, 2972, "epsg", 2972, "RGFG95 / UTM zone 22N"); add_proj4text (p, 0, "+proj=utm +zone=22 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGFG95 / UTM zone 22N\",GEOGCS[\"RGFG95\",DATUM"); add_srs_wkt (p, 1, "[\"Reseau_Geodesique_Francais_Guyane_1995\",SPHEROID[\"G"); add_srs_wkt (p, 2, "RS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"701"); add_srs_wkt (p, 3, "9\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6624\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4624\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, "ARAMETER[\"central_meridian\",-51],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"2972\"]]"); p = add_epsg_def (filter, first, last, 2973, "epsg", 2973, "Martinique 1938 / UTM zone 20N"); add_proj4text (p, 0, "+proj=utm +zone=20 +ellps=intl +towgs84=186,482,151,0,0,"); add_proj4text (p, 1, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Martinique 1938 / UTM zone 20N\",GEOGCS[\"Marti"); add_srs_wkt (p, 1, "nique 1938\",DATUM[\"Martinique_1938\",SPHEROID[\"Intern"); add_srs_wkt (p, 2, "ational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]]"); add_srs_wkt (p, 3, ",TOWGS84[186,482,151,0,0,0,0],AUTHORITY[\"EPSG\",\"6625\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4625\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, "ARAMETER[\"central_meridian\",-63],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"2973\"]]"); p = add_epsg_def (filter, first, last, 2975, "epsg", 2975, "RGR92 / UTM zone 40S"); add_proj4text (p, 0, "+proj=utm +zone=40 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGR92 / UTM zone 40S\",GEOGCS[\"RGR92\",DATUM[\""); add_srs_wkt (p, 1, "Reseau_Geodesique_de_la_Reunion_1992\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6627\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AUTHORITY[\"EPSG\",\"4627\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",57],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"2975\"]]"); p = add_epsg_def (filter, first, last, 2976, "epsg", 2976, "Tahiti 52 / UTM zone 6S"); add_proj4text (p, 0, "+proj=utm +zone=6 +south +ellps=intl +towgs84=162,117,15"); add_proj4text (p, 1, "4,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tahiti 52 / UTM zone 6S\",GEOGCS[\"Tahiti 52\","); add_srs_wkt (p, 1, "DATUM[\"Tahiti_52\",SPHEROID[\"International 1924\",6378"); add_srs_wkt (p, 2, "388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[162,117,15"); add_srs_wkt (p, 3, "4,0,0,0,0],AUTHORITY[\"EPSG\",\"6628\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 4, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 5, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"4628\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 7, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 8, "_meridian\",-147],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 11, "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"2976\"]]"); p = add_epsg_def (filter, first, last, 2977, "epsg", 2977, "Tahaa 54 / UTM zone 5S"); add_proj4text (p, 0, "+proj=utm +zone=5 +south +ellps=intl +towgs84=72.438,345"); add_proj4text (p, 1, ".918,79.486,1.6045,0.8823,0.5565,1.3746 +units=m +no_def"); add_proj4text (p, 2, "s"); add_srs_wkt (p, 0, "PROJCS[\"Tahaa 54 / UTM zone 5S\",GEOGCS[\"Tahaa 54\",DA"); add_srs_wkt (p, 1, "TUM[\"Tahaa_54\",SPHEROID[\"International 1924\",6378388"); add_srs_wkt (p, 2, ",297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[72.438,345.91"); add_srs_wkt (p, 3, "8,79.486,1.6045,0.8823,0.5565,1.3746],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6629\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4629\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",-153],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 12, "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2977\"]]"); p = add_epsg_def (filter, first, last, 2978, "epsg", 2978, "IGN72 Nuku Hiva / UTM zone 7S"); add_proj4text (p, 0, "+proj=utm +zone=7 +south +ellps=intl +towgs84=84,274,65,"); add_proj4text (p, 1, "0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGN72 Nuku Hiva / UTM zone 7S\",GEOGCS[\"IGN72 "); add_srs_wkt (p, 1, "Nuku Hiva\",DATUM[\"IGN72_Nuku_Hiva\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, "TOWGS84[84,274,65,0,0,0,0],AUTHORITY[\"EPSG\",\"6630\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AUTHORITY[\"EPSG\",\"4630\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 7, "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PAR"); add_srs_wkt (p, 8, "AMETER[\"central_meridian\",-141],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, "TY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nor"); add_srs_wkt (p, 12, "thing\",NORTH],AUTHORITY[\"EPSG\",\"2978\"]]"); p = add_epsg_def (filter, first, last, 2979, "epsg", 2979, "K0 1949 / UTM zone 42S (deprecated)"); add_proj4text (p, 0, "+proj=utm +zone=42 +south +ellps=intl +towgs84=145,-187,"); add_proj4text (p, 1, "103,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"K0 1949 / UTM zone 42S (deprecated)\",GEOGCS[\""); add_srs_wkt (p, 1, "K0 1949\",DATUM[\"K0_1949\",SPHEROID[\"International 192"); add_srs_wkt (p, 2, "4\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[14"); add_srs_wkt (p, 3, "5,-187,103,0,0,0,0],AUTHORITY[\"EPSG\",\"6631\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4631\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 8, "\"central_meridian\",69],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 9, "96],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); add_srs_wkt (p, 12, "ORTH],AUTHORITY[\"EPSG\",\"2979\"]]"); p = add_epsg_def (filter, first, last, 2980, "epsg", 2980, "Combani 1950 / UTM zone 38S"); add_proj4text (p, 0, "+proj=utm +zone=38 +south +ellps=intl +towgs84=-382,-59,"); add_proj4text (p, 1, "-262,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Combani 1950 / UTM zone 38S\",GEOGCS[\"Combani "); add_srs_wkt (p, 1, "1950\",DATUM[\"Combani_1950\",SPHEROID[\"International 1"); add_srs_wkt (p, 2, "924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84["); add_srs_wkt (p, 3, "-382,-59,-262,0,0,0,0],AUTHORITY[\"EPSG\",\"6632\"]],PRI"); add_srs_wkt (p, 4, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4632\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, "R[\"central_meridian\",45],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 9, "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"2980\"]]"); p = add_epsg_def (filter, first, last, 2981, "epsg", 2981, "IGN56 Lifou / UTM zone 58S"); add_proj4text (p, 0, "+proj=utm +zone=58 +south +ellps=intl +towgs84=335.47,22"); add_proj4text (p, 1, "2.58,-230.94,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGN56 Lifou / UTM zone 58S\",GEOGCS[\"IGN56 Lif"); add_srs_wkt (p, 1, "ou\",DATUM[\"IGN56_Lifou\",SPHEROID[\"International 1924"); add_srs_wkt (p, 2, "\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[335"); add_srs_wkt (p, 3, ".47,222.58,-230.94,0,0,0,0],AUTHORITY[\"EPSG\",\"6633\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4633\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",165],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, "TY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nor"); add_srs_wkt (p, 12, "thing\",NORTH],AUTHORITY[\"EPSG\",\"2981\"]]"); p = add_epsg_def (filter, first, last, 2982, "epsg", 2982, "IGN72 Grand Terre / UTM zone 58S (deprecated)"); add_proj4text (p, 0, "+proj=utm +zone=58 +south +ellps=intl +towgs84=-13,-348,"); add_proj4text (p, 1, "292,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGN72 Grand Terre / UTM zone 58S (deprecated)\""); add_srs_wkt (p, 1, ",GEOGCS[\"IGN72 Grand Terre\",DATUM[\"IGN72_Grande_Terre"); add_srs_wkt (p, 2, "\",SPHEROID[\"International 1924\",6378388,297,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7022\"]],TOWGS84[-13,-348,292,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6634\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9108\"]],AUTHORITY[\"EPSG\",\"4634"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",165]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 11, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 12, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"2982\"]]"); p = add_epsg_def (filter, first, last, 2983, "epsg", 2983, "ST87 Ouvea / UTM zone 58S (deprecated)"); add_proj4text (p, 0, "+proj=utm +zone=58 +south +ellps=intl +towgs84=-122.383,"); add_proj4text (p, 1, "-188.696,103.344,3.5107,-4.9668,-5.7047,4.4798 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ST87 Ouvea / UTM zone 58S (deprecated)\",GEOGCS"); add_srs_wkt (p, 1, "[\"ST87 Ouvea\",DATUM[\"ST87_Ouvea\",SPHEROID[\"Internat"); add_srs_wkt (p, 2, "ional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],T"); add_srs_wkt (p, 3, "OWGS84[-122.383,-188.696,103.344,3.5107,-4.9668,-5.7047,"); add_srs_wkt (p, 4, "4.4798],AUTHORITY[\"EPSG\",\"6635\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 5, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 6, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 7, "EPSG\",\"4635\"]],PROJECTION[\"Transverse_Mercator\"],PA"); add_srs_wkt (p, 8, "RAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_me"); add_srs_wkt (p, 9, "ridian\",165],PARAMETER[\"scale_factor\",0.9996],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"2983\"]]"); p = add_epsg_def (filter, first, last, 2984, "epsg", 2984, "RGNC 1991 / Lambert New Caledonia (deprecated)"); add_proj4text (p, 0, "+proj=lcc +lat_1=-20.66666666666667 +lat_2=-22.333333333"); add_proj4text (p, 1, "33333 +lat_0=-21.5 +lon_0=166 +x_0=400000 +y_0=300000 +e"); add_proj4text (p, 2, "llps=intl +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGNC 1991 / Lambert New Caledonia (deprecated)\""); add_srs_wkt (p, 1, ",GEOGCS[\"RGNC 1991\",DATUM[\"Reseau_Geodesique_Nouvelle"); add_srs_wkt (p, 2, "_Caledonie_1991\",SPHEROID[\"International 1924\",637838"); add_srs_wkt (p, 3, "8,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[0,0,0,0,0,0,"); add_srs_wkt (p, 4, "0],AUTHORITY[\"EPSG\",\"6645\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 6, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4645\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 8, "PARAMETER[\"standard_parallel_1\",-20.66666666666667],PA"); add_srs_wkt (p, 9, "RAMETER[\"standard_parallel_2\",-22.33333333333333],PARA"); add_srs_wkt (p, 10, "METER[\"latitude_of_origin\",-21.5],PARAMETER[\"central_"); add_srs_wkt (p, 11, "meridian\",166],PARAMETER[\"false_easting\",400000],PARA"); add_srs_wkt (p, 12, "METER[\"false_northing\",300000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); add_srs_wkt (p, 14, "H],AUTHORITY[\"EPSG\",\"2984\"]]"); p = add_epsg_def (filter, first, last, 2987, "epsg", 2987, "Saint Pierre et Miquelon 1950 / UTM zone 21N"); add_proj4text (p, 0, "+proj=utm +zone=21 +ellps=clrk66 +towgs84=30,430,368,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Saint Pierre et Miquelon 1950 / UTM zone 21N\","); add_srs_wkt (p, 1, "GEOGCS[\"Saint Pierre et Miquelon 1950\",DATUM[\"Saint_P"); add_srs_wkt (p, 2, "ierre_et_Miquelon_1950\",SPHEROID[\"Clarke 1866\",637820"); add_srs_wkt (p, 3, "6.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],TOWG"); add_srs_wkt (p, 4, "S84[30,430,368,0,0,0,0],AUTHORITY[\"EPSG\",\"6638\"]],PR"); add_srs_wkt (p, 5, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 6, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 7, "]],AUTHORITY[\"EPSG\",\"4638\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",-57],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 10, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"2987\"]]"); p = add_epsg_def (filter, first, last, 2988, "epsg", 2988, "MOP78 / UTM zone 1S"); add_proj4text (p, 0, "+proj=utm +zone=1 +south +ellps=intl +towgs84=253,-132,-"); add_proj4text (p, 1, "127,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MOP78 / UTM zone 1S\",GEOGCS[\"MOP78\",DATUM[\""); add_srs_wkt (p, 1, "MOP78\",SPHEROID[\"International 1924\",6378388,297,AUTH"); add_srs_wkt (p, 2, "ORITY[\"EPSG\",\"7022\"]],TOWGS84[253,-132,-127,0,0,0,0]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6639\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4639\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-177],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa"); add_srs_wkt (p, 9, "lse_easting\",500000],PARAMETER[\"false_northing\",10000"); add_srs_wkt (p, 10, "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS"); add_srs_wkt (p, 11, "[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"2988\"]]"); p = add_epsg_def (filter, first, last, 2989, "epsg", 2989, "RRAF 1991 / UTM zone 20N (deprecated)"); add_proj4text (p, 0, "+proj=utm +zone=20 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RRAF 1991 / UTM zone 20N (deprecated)\",GEOGCS["); add_srs_wkt (p, 1, "\"RRAF 1991\",DATUM[\"Reseau_de_Reference_des_Antilles_F"); add_srs_wkt (p, 2, "rancaises_1991\",SPHEROID[\"WGS 84\",6378137,298.2572235"); add_srs_wkt (p, 3, "63,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,0,0,0,0,0,0],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6640\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4640\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "63],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false"); add_srs_wkt (p, 10, "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2"); add_srs_wkt (p, 13, "989\"]]"); p = add_epsg_def (filter, first, last, 2990, "epsg", 2990, "Reunion 1947 / TM Reunion (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-21.11666666666667 +lon_0=55.53333333"); add_proj4text (p, 1, "333333 +k=1 +x_0=50000 +y_0=160000 +ellps=intl +towgs84="); add_proj4text (p, 2, "94,-948,-1262,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Reunion 1947 / TM Reunion (deprecated)\",GEOGCS"); add_srs_wkt (p, 1, "[\"Reunion 1947\",DATUM[\"Reunion_1947\",SPHEROID[\"Inte"); add_srs_wkt (p, 2, "rnational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); add_srs_wkt (p, 3, "]],TOWGS84[94,-948,-1262,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "626\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4626\"]],PROJECTION[\""); add_srs_wkt (p, 7, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, "-21.11666666666667],PARAMETER[\"central_meridian\",55.53"); add_srs_wkt (p, 9, "333333333333],PARAMETER[\"scale_factor\",1],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",50000],PARAMETER[\"false_northing\",1600"); add_srs_wkt (p, 11, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2990\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def (filter, first, last, 2991, "epsg", 2991, "NAD83 / Oregon Lambert"); add_proj4text (p, 0, "+proj=lcc +lat_1=43 +lat_2=45.5 +lat_0=41.75 +lon_0=-120"); add_proj4text (p, 1, ".5 +x_0=400000 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Oregon Lambert\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 7, "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",43],PARA"); add_srs_wkt (p, 8, "METER[\"standard_parallel_2\",45.5],PARAMETER[\"latitude"); add_srs_wkt (p, 9, "_of_origin\",41.75],PARAMETER[\"central_meridian\",-120."); add_srs_wkt (p, 10, "5],PARAMETER[\"false_easting\",400000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, "1\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"2991\"]]"); p = add_epsg_def (filter, first, last, 2992, "epsg", 2992, "NAD83 / Oregon Lambert (ft)"); add_proj4text (p, 0, "+proj=lcc +lat_1=43 +lat_2=45.5 +lat_0=41.75 +lon_0=-120"); add_proj4text (p, 1, ".5 +x_0=399999.9999984 +y_0=0 +datum=NAD83 +units=ft +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Oregon Lambert (ft)\",GEOGCS[\"NAD83\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 7, "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",43],"); add_srs_wkt (p, 8, "PARAMETER[\"standard_parallel_2\",45.5],PARAMETER[\"lati"); add_srs_wkt (p, 9, "tude_of_origin\",41.75],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 10, "120.5],PARAMETER[\"false_easting\",1312335.958],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_northing\",0],UNIT[\"foot\",0.3048,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9002\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"2992\"]]"); p = add_epsg_def (filter, first, last, 2993, "epsg", 2993, "NAD83(HARN) / Oregon Lambert"); add_proj4text (p, 0, "+proj=lcc +lat_1=43 +lat_2=45.5 +lat_0=41.75 +lon_0=-120"); add_proj4text (p, 1, ".5 +x_0=400000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,"); add_proj4text (p, 2, "0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Oregon Lambert\",GEOGCS[\"NAD83(H"); add_srs_wkt (p, 1, "ARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standa"); add_srs_wkt (p, 8, "rd_parallel_1\",43],PARAMETER[\"standard_parallel_2\",45"); add_srs_wkt (p, 9, ".5],PARAMETER[\"latitude_of_origin\",41.75],PARAMETER[\""); add_srs_wkt (p, 10, "central_meridian\",-120.5],PARAMETER[\"false_easting\",4"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"2993\"]]"); p = add_epsg_def (filter, first, last, 2994, "epsg", 2994, "NAD83(HARN) / Oregon Lambert (ft)"); add_proj4text (p, 0, "+proj=lcc +lat_1=43 +lat_2=45.5 +lat_0=41.75 +lon_0=-120"); add_proj4text (p, 1, ".5 +x_0=399999.9999984 +y_0=0 +ellps=GRS80 +towgs84=0,0,"); add_proj4text (p, 2, "0,0,0,0,0 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Oregon Lambert (ft)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Networ"); add_srs_wkt (p, 2, "k\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"st"); add_srs_wkt (p, 8, "andard_parallel_1\",43],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",45.5],PARAMETER[\"latitude_of_origin\",41.75],PARAMETER"); add_srs_wkt (p, 10, "[\"central_meridian\",-120.5],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",1312335.958],PARAMETER[\"false_northing\",0],UNIT[\"foo"); add_srs_wkt (p, 12, "t\",0.3048,AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\"X\",EAST"); add_srs_wkt (p, 13, "],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2994\"]]"); p = add_epsg_def (filter, first, last, 2995, "epsg", 2995, "IGN53 Mare / UTM zone 58S"); add_proj4text (p, 0, "+proj=utm +zone=58 +south +ellps=intl +towgs84=287.58,17"); add_proj4text (p, 1, "7.78,-135.41,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGN53 Mare / UTM zone 58S\",GEOGCS[\"IGN53 Mare"); add_srs_wkt (p, 1, "\",DATUM[\"IGN53_Mare\",SPHEROID[\"International 1924\","); add_srs_wkt (p, 2, "6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[287.58"); add_srs_wkt (p, 3, ",177.78,-135.41,0,0,0,0],AUTHORITY[\"EPSG\",\"6641\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AUTHORITY[\"EPSG\",\"4641\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 7, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 8, "ETER[\"central_meridian\",165],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"2995\"]]"); p = add_epsg_def (filter, first, last, 2996, "epsg", 2996, "ST84 Ile des Pins / UTM zone 58S"); add_proj4text (p, 0, "+proj=utm +zone=58 +south +ellps=intl +towgs84=-13,-348,"); add_proj4text (p, 1, "292,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ST84 Ile des Pins / UTM zone 58S\",GEOGCS[\"ST8"); add_srs_wkt (p, 1, "4 Ile des Pins\",DATUM[\"ST84_Ile_des_Pins\",SPHEROID[\""); add_srs_wkt (p, 2, "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "22\"]],TOWGS84[-13,-348,292,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6642\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4642\"]],PROJECTIO"); add_srs_wkt (p, 7, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 8, "n\",0],PARAMETER[\"central_meridian\",165],PARAMETER[\"s"); add_srs_wkt (p, 9, "cale_factor\",0.9996],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 10, "],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\","); add_srs_wkt (p, 11, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 12, "XIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2996\"]]"); p = add_epsg_def (filter, first, last, 2997, "epsg", 2997, "ST71 Belep / UTM zone 58S"); add_proj4text (p, 0, "+proj=utm +zone=58 +south +ellps=intl +towgs84=-480.26,-"); add_proj4text (p, 1, "438.32,-643.429,16.3119,20.1721,-4.0349,-111.7 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ST71 Belep / UTM zone 58S\",GEOGCS[\"ST71 Belep"); add_srs_wkt (p, 1, "\",DATUM[\"ST71_Belep\",SPHEROID[\"International 1924\","); add_srs_wkt (p, 2, "6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-480.2"); add_srs_wkt (p, 3, "6,-438.32,-643.429,16.3119,20.1721,-4.0349,-111.7],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6643\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4643"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",165]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 11, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 12, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"2997\"]]"); p = add_epsg_def (filter, first, last, 2998, "epsg", 2998, "NEA74 Noumea / UTM zone 58S"); add_proj4text (p, 0, "+proj=utm +zone=58 +south +ellps=intl +towgs84=-10.18,-3"); add_proj4text (p, 1, "50.43,291.37,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NEA74 Noumea / UTM zone 58S\",GEOGCS[\"NEA74 No"); add_srs_wkt (p, 1, "umea\",DATUM[\"NEA74_Noumea\",SPHEROID[\"International 1"); add_srs_wkt (p, 2, "924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84["); add_srs_wkt (p, 3, "-10.18,-350.43,291.37,0,0,0,0],AUTHORITY[\"EPSG\",\"6644"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4644\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",165],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"2998\"]]"); p = add_epsg_def (filter, first, last, 2999, "epsg", 2999, "Grand Comoros / UTM zone 38S"); add_proj4text (p, 0, "+proj=utm +zone=38 +south +ellps=intl +towgs84=-963,510,"); add_proj4text (p, 1, "-359,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Grand Comoros / UTM zone 38S\",GEOGCS[\"Grand C"); add_srs_wkt (p, 1, "omoros\",DATUM[\"Grand_Comoros\",SPHEROID[\"Internationa"); add_srs_wkt (p, 2, "l 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS"); add_srs_wkt (p, 3, "84[-963,510,-359,0,0,0,0],AUTHORITY[\"EPSG\",\"6646\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4646\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",45],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"2999\"]]"); p = add_epsg_def (filter, first, last, 3000, "epsg", 3000, "Segara / NEIEZ"); add_proj4text (p, 0, "+proj=merc +lon_0=110 +k=0.997 +x_0=3900000 +y_0=900000 "); add_proj4text (p, 1, "+ellps=bessel +towgs84=-403,684,41,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"Segara / NEIEZ\",GEOGCS[\"Segara\",DATUM[\"Gunu"); add_srs_wkt (p, 1, "ng_Segara\",SPHEROID[\"Bessel 1841\",6377397.155,299.152"); add_srs_wkt (p, 2, "8128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-403,684,41,0"); add_srs_wkt (p, 3, ",0,0,0],AUTHORITY[\"EPSG\",\"6613\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 4, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 5, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"4613\"]],PROJECTION[\"Mercator_1SP\"],PARAMETER"); add_srs_wkt (p, 7, "[\"central_meridian\",110],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 8, "997],PARAMETER[\"false_easting\",3900000],PARAMETER[\"fa"); add_srs_wkt (p, 9, "lse_northing\",900000],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 10, "\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); add_srs_wkt (p, 11, "TY[\"EPSG\",\"3000\"]]"); p = add_epsg_def (filter, first, last, 3001, "epsg", 3001, "Batavia / NEIEZ"); add_proj4text (p, 0, "+proj=merc +lon_0=110 +k=0.997 +x_0=3900000 +y_0=900000 "); add_proj4text (p, 1, "+ellps=bessel +towgs84=-377,681,-50,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"Batavia / NEIEZ\",GEOGCS[\"Batavia\",DATUM[\"Ba"); add_srs_wkt (p, 1, "tavia\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-377,681,-50,0,0,"); add_srs_wkt (p, 3, "0,0],AUTHORITY[\"EPSG\",\"6211\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4211\"]],PROJECTION[\"Mercator_1SP\"],PARAMETER[\""); add_srs_wkt (p, 7, "central_meridian\",110],PARAMETER[\"scale_factor\",0.997"); add_srs_wkt (p, 8, "],PARAMETER[\"false_easting\",3900000],PARAMETER[\"false"); add_srs_wkt (p, 9, "_northing\",900000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 10, "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); add_srs_wkt (p, 11, "\"EPSG\",\"3001\"]]"); p = add_epsg_def (filter, first, last, 3002, "epsg", 3002, "Makassar / NEIEZ"); add_proj4text (p, 0, "+proj=merc +lon_0=110 +k=0.997 +x_0=3900000 +y_0=900000 "); add_proj4text (p, 1, "+ellps=bessel +towgs84=-587.8,519.75,145.76,0,0,0,0 +uni"); add_proj4text (p, 2, "ts=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Makassar / NEIEZ\",GEOGCS[\"Makassar\",DATUM[\""); add_srs_wkt (p, 1, "Makassar\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528"); add_srs_wkt (p, 2, "128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-587.8,519.75,"); add_srs_wkt (p, 3, "145.76,0,0,0,0],AUTHORITY[\"EPSG\",\"6257\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"4257\"]],PROJECTION[\"Mercator_1SP\"],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",110],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.997],PARAMETER[\"false_easting\",3900000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",900000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 10, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 11, ",AUTHORITY[\"EPSG\",\"3002\"]]"); p = add_epsg_def (filter, first, last, 3003, "epsg", 3003, "Monte Mario / Italy zone 1"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=9 +k=0.9996 +x_0=1500000 +y_"); add_proj4text (p, 1, "0=0 +ellps=intl +towgs84=-104.1,-49.1,-9.9,0.971,-2.917,"); add_proj4text (p, 2, "0.714,-11.68 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Monte Mario / Italy zone 1\",GEOGCS[\"Monte Mar"); add_srs_wkt (p, 1, "io\",DATUM[\"Monte_Mario\",SPHEROID[\"International 1924"); add_srs_wkt (p, 2, "\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-10"); add_srs_wkt (p, 3, "4.1,-49.1,-9.9,0.971,-2.917,0.714,-11.68],AUTHORITY[\"EP"); add_srs_wkt (p, 4, "SG\",\"6265\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4265\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",0],PARAMETER[\"central_meridian\",9],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9996],PARAMETER[\"false_easting\",15000"); add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); add_srs_wkt (p, 12, "ORTH],AUTHORITY[\"EPSG\",\"3003\"]]"); p = add_epsg_def (filter, first, last, 3004, "epsg", 3004, "Monte Mario / Italy zone 2"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9996 +x_0=2520000 +y"); add_proj4text (p, 1, "_0=0 +ellps=intl +towgs84=-104.1,-49.1,-9.9,0.971,-2.917"); add_proj4text (p, 2, ",0.714,-11.68 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Monte Mario / Italy zone 2\",GEOGCS[\"Monte Mar"); add_srs_wkt (p, 1, "io\",DATUM[\"Monte_Mario\",SPHEROID[\"International 1924"); add_srs_wkt (p, 2, "\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-10"); add_srs_wkt (p, 3, "4.1,-49.1,-9.9,0.971,-2.917,0.714,-11.68],AUTHORITY[\"EP"); add_srs_wkt (p, 4, "SG\",\"6265\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4265\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",0],PARAMETER[\"central_meridian\",15],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",0.9996],PARAMETER[\"false_easting\",252"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"3004\"]]"); p = add_epsg_def (filter, first, last, 3005, "epsg", 3005, "NAD83 / BC Albers"); add_proj4text (p, 0, "+proj=aea +lat_1=50 +lat_2=58.5 +lat_0=45 +lon_0=-126 +x"); add_proj4text (p, 1, "_0=1000000 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / BC Albers\",GEOGCS[\"NAD83\",DATUM[\"No"); add_srs_wkt (p, 1, "rth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137,"); add_srs_wkt (p, 2, "298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,"); add_srs_wkt (p, 3, "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 4, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 5, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"4269\"]],PROJECTION[\"Albers_Conic_Equal_Are"); add_srs_wkt (p, 7, "a\"],PARAMETER[\"standard_parallel_1\",50],PARAMETER[\"s"); add_srs_wkt (p, 8, "tandard_parallel_2\",58.5],PARAMETER[\"latitude_of_cente"); add_srs_wkt (p, 9, "r\",45],PARAMETER[\"longitude_of_center\",-126],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",1000000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"3005\"]]"); p = add_epsg_def (filter, first, last, 3006, "epsg", 3006, "SWEREF99 TM"); add_proj4text (p, 0, "+proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SWEREF99 TM\",GEOGCS[\"SWEREF99\",DATUM[\"SWERE"); add_srs_wkt (p, 1, "F99\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 2, "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"6619\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4619\"]]"); add_srs_wkt (p, 6, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 7, "e_of_origin\",0],PARAMETER[\"central_meridian\",15],PARA"); add_srs_wkt (p, 8, "METER[\"scale_factor\",0.9996],PARAMETER[\"false_easting"); add_srs_wkt (p, 9, "\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); add_srs_wkt (p, 11, "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3006\"]]"); p = add_epsg_def (filter, first, last, 3007, "epsg", 3007, "SWEREF99 12 00"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=150000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SWEREF99 12 00\",GEOGCS[\"SWEREF99\",DATUM[\"SW"); add_srs_wkt (p, 1, "EREF99\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6619\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4619\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",0],PARAMETER[\"central_meridian\",12],PA"); add_srs_wkt (p, 8, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 9, "150000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 10, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 11, "AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3007\"]]"); p = add_epsg_def (filter, first, last, 3008, "epsg", 3008, "SWEREF99 13 30"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=13.5 +k=1 +x_0=150000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SWEREF99 13 30\",GEOGCS[\"SWEREF99\",DATUM[\"SW"); add_srs_wkt (p, 1, "EREF99\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6619\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4619\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",0],PARAMETER[\"central_meridian\",13.5],"); add_srs_wkt (p, 8, "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 9, ",150000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 10, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 11, ",AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3008\"]]"); p = add_epsg_def (filter, first, last, 3009, "epsg", 3009, "SWEREF99 15 00"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=150000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SWEREF99 15 00\",GEOGCS[\"SWEREF99\",DATUM[\"SW"); add_srs_wkt (p, 1, "EREF99\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6619\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4619\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",0],PARAMETER[\"central_meridian\",15],PA"); add_srs_wkt (p, 8, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 9, "150000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 10, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 11, "AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3009\"]]"); p = add_epsg_def (filter, first, last, 3010, "epsg", 3010, "SWEREF99 16 30"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=16.5 +k=1 +x_0=150000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SWEREF99 16 30\",GEOGCS[\"SWEREF99\",DATUM[\"SW"); add_srs_wkt (p, 1, "EREF99\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6619\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4619\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",0],PARAMETER[\"central_meridian\",16.5],"); add_srs_wkt (p, 8, "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 9, ",150000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 10, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 11, ",AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3010\"]]"); p = add_epsg_def (filter, first, last, 3011, "epsg", 3011, "SWEREF99 18 00"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=150000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SWEREF99 18 00\",GEOGCS[\"SWEREF99\",DATUM[\"SW"); add_srs_wkt (p, 1, "EREF99\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6619\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4619\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",0],PARAMETER[\"central_meridian\",18],PA"); add_srs_wkt (p, 8, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 9, "150000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 10, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 11, "AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3011\"]]"); p = add_epsg_def (filter, first, last, 3012, "epsg", 3012, "SWEREF99 14 15"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=14.25 +k=1 +x_0=150000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SWEREF99 14 15\",GEOGCS[\"SWEREF99\",DATUM[\"SW"); add_srs_wkt (p, 1, "EREF99\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6619\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4619\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",0],PARAMETER[\"central_meridian\",14.25]"); add_srs_wkt (p, 8, ",PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting"); add_srs_wkt (p, 9, "\",150000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); add_srs_wkt (p, 11, "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3012\"]]"); p = add_epsg_def (filter, first, last, 3013, "epsg", 3013, "SWEREF99 15 45"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15.75 +k=1 +x_0=150000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SWEREF99 15 45\",GEOGCS[\"SWEREF99\",DATUM[\"SW"); add_srs_wkt (p, 1, "EREF99\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6619\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4619\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",0],PARAMETER[\"central_meridian\",15.75]"); add_srs_wkt (p, 8, ",PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting"); add_srs_wkt (p, 9, "\",150000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); add_srs_wkt (p, 11, "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3013\"]]"); p = add_epsg_def (filter, first, last, 3014, "epsg", 3014, "SWEREF99 17 15"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=17.25 +k=1 +x_0=150000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SWEREF99 17 15\",GEOGCS[\"SWEREF99\",DATUM[\"SW"); add_srs_wkt (p, 1, "EREF99\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6619\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4619\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",0],PARAMETER[\"central_meridian\",17.25]"); add_srs_wkt (p, 8, ",PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting"); add_srs_wkt (p, 9, "\",150000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); add_srs_wkt (p, 11, "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3014\"]]"); p = add_epsg_def (filter, first, last, 3015, "epsg", 3015, "SWEREF99 18 45"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=18.75 +k=1 +x_0=150000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SWEREF99 18 45\",GEOGCS[\"SWEREF99\",DATUM[\"SW"); add_srs_wkt (p, 1, "EREF99\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6619\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4619\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",0],PARAMETER[\"central_meridian\",18.75]"); add_srs_wkt (p, 8, ",PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting"); add_srs_wkt (p, 9, "\",150000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); add_srs_wkt (p, 11, "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3015\"]]"); p = add_epsg_def (filter, first, last, 3016, "epsg", 3016, "SWEREF99 20 15"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=20.25 +k=1 +x_0=150000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SWEREF99 20 15\",GEOGCS[\"SWEREF99\",DATUM[\"SW"); add_srs_wkt (p, 1, "EREF99\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6619\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4619\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",0],PARAMETER[\"central_meridian\",20.25]"); add_srs_wkt (p, 8, ",PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting"); add_srs_wkt (p, 9, "\",150000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); add_srs_wkt (p, 11, "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3016\"]]"); p = add_epsg_def (filter, first, last, 3017, "epsg", 3017, "SWEREF99 21 45"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21.75 +k=1 +x_0=150000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SWEREF99 21 45\",GEOGCS[\"SWEREF99\",DATUM[\"SW"); add_srs_wkt (p, 1, "EREF99\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6619\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4619\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",0],PARAMETER[\"central_meridian\",21.75]"); add_srs_wkt (p, 8, ",PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting"); add_srs_wkt (p, 9, "\",150000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); add_srs_wkt (p, 11, "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3017\"]]"); p = add_epsg_def (filter, first, last, 3018, "epsg", 3018, "SWEREF99 23 15"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=23.25 +k=1 +x_0=150000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SWEREF99 23 15\",GEOGCS[\"SWEREF99\",DATUM[\"SW"); add_srs_wkt (p, 1, "EREF99\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6619\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4619\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",0],PARAMETER[\"central_meridian\",23.25]"); add_srs_wkt (p, 8, ",PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting"); add_srs_wkt (p, 9, "\",150000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); add_srs_wkt (p, 11, "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3018\"]]"); p = add_epsg_def (filter, first, last, 3019, "epsg", 3019, "RT90 7.5 gon V"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=11.30827777777778 +k=1 +x_0="); add_proj4text (p, 1, "1500000 +y_0=0 +ellps=bessel +towgs84=414.1,41.3,603.1,-"); add_proj4text (p, 2, "0.855,2.141,-7.023,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RT90 7.5 gon V\",GEOGCS[\"RT90\",DATUM[\"Rikets"); add_srs_wkt (p, 1, "_koordinatsystem_1990\",SPHEROID[\"Bessel 1841\",6377397"); add_srs_wkt (p, 2, ".155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[4"); add_srs_wkt (p, 3, "14.1,41.3,603.1,-0.855,2.141,-7.023,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6124\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4124\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",11.30827777777778"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",1500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3019\"]]"); p = add_epsg_def (filter, first, last, 3020, "epsg", 3020, "RT90 5 gon V"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=13.55827777777778 +k=1 +x_0="); add_proj4text (p, 1, "1500000 +y_0=0 +ellps=bessel +towgs84=414.1,41.3,603.1,-"); add_proj4text (p, 2, "0.855,2.141,-7.023,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RT90 5 gon V\",GEOGCS[\"RT90\",DATUM[\"Rikets_k"); add_srs_wkt (p, 1, "oordinatsystem_1990\",SPHEROID[\"Bessel 1841\",6377397.1"); add_srs_wkt (p, 2, "55,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[414"); add_srs_wkt (p, 3, ".1,41.3,603.1,-0.855,2.141,-7.023,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6124\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4124\"]],PROJECTIO"); add_srs_wkt (p, 7, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 8, "n\",0],PARAMETER[\"central_meridian\",13.55827777777778]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting"); add_srs_wkt (p, 10, "\",1500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3020\"]]"); p = add_epsg_def (filter, first, last, 3021, "epsg", 3021, "RT90 2.5 gon V"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15.80827777777778 +k=1 +x_0="); add_proj4text (p, 1, "1500000 +y_0=0 +ellps=bessel +towgs84=414.1,41.3,603.1,-"); add_proj4text (p, 2, "0.855,2.141,-7.023,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RT90 2.5 gon V\",GEOGCS[\"RT90\",DATUM[\"Rikets"); add_srs_wkt (p, 1, "_koordinatsystem_1990\",SPHEROID[\"Bessel 1841\",6377397"); add_srs_wkt (p, 2, ".155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[4"); add_srs_wkt (p, 3, "14.1,41.3,603.1,-0.855,2.141,-7.023,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6124\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4124\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",15.80827777777778"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",1500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3021\"]]"); p = add_epsg_def (filter, first, last, 3022, "epsg", 3022, "RT90 0 gon"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=18.05827777777778 +k=1 +x_0="); add_proj4text (p, 1, "1500000 +y_0=0 +ellps=bessel +towgs84=414.1,41.3,603.1,-"); add_proj4text (p, 2, "0.855,2.141,-7.023,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RT90 0 gon\",GEOGCS[\"RT90\",DATUM[\"Rikets_koo"); add_srs_wkt (p, 1, "rdinatsystem_1990\",SPHEROID[\"Bessel 1841\",6377397.155"); add_srs_wkt (p, 2, ",299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[414.1"); add_srs_wkt (p, 3, ",41.3,603.1,-0.855,2.141,-7.023,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6124\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4124\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",18.05827777777778],PA"); add_srs_wkt (p, 9, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 10, "1500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "Y\",EAST],AUTHORITY[\"EPSG\",\"3022\"]]"); p = add_epsg_def (filter, first, last, 3023, "epsg", 3023, "RT90 2.5 gon O"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=20.30827777777778 +k=1 +x_0="); add_proj4text (p, 1, "1500000 +y_0=0 +ellps=bessel +towgs84=414.1,41.3,603.1,-"); add_proj4text (p, 2, "0.855,2.141,-7.023,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RT90 2.5 gon O\",GEOGCS[\"RT90\",DATUM[\"Rikets"); add_srs_wkt (p, 1, "_koordinatsystem_1990\",SPHEROID[\"Bessel 1841\",6377397"); add_srs_wkt (p, 2, ".155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[4"); add_srs_wkt (p, 3, "14.1,41.3,603.1,-0.855,2.141,-7.023,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6124\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4124\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",20.30827777777778"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",1500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3023\"]]"); p = add_epsg_def (filter, first, last, 3024, "epsg", 3024, "RT90 5 gon O"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=22.55827777777778 +k=1 +x_0="); add_proj4text (p, 1, "1500000 +y_0=0 +ellps=bessel +towgs84=414.1,41.3,603.1,-"); add_proj4text (p, 2, "0.855,2.141,-7.023,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RT90 5 gon O\",GEOGCS[\"RT90\",DATUM[\"Rikets_k"); add_srs_wkt (p, 1, "oordinatsystem_1990\",SPHEROID[\"Bessel 1841\",6377397.1"); add_srs_wkt (p, 2, "55,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[414"); add_srs_wkt (p, 3, ".1,41.3,603.1,-0.855,2.141,-7.023,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6124\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4124\"]],PROJECTIO"); add_srs_wkt (p, 7, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 8, "n\",0],PARAMETER[\"central_meridian\",22.55827777777778]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting"); add_srs_wkt (p, 10, "\",1500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3024\"]]"); p = add_epsg_def (filter, first, last, 3025, "epsg", 3025, "RT38 7.5 gon V"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=11.30827777777778 +k=1 +x_0="); add_proj4text (p, 1, "1500000 +y_0=0 +ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RT38 7.5 gon V\",GEOGCS[\"RT38\",DATUM[\"Stockh"); add_srs_wkt (p, 1, "olm_1938\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528"); add_srs_wkt (p, 2, "128,AUTHORITY[\"EPSG\",\"7004\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "308\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4308\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 7, "0],PARAMETER[\"central_meridian\",11.30827777777778],PAR"); add_srs_wkt (p, 8, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",1"); add_srs_wkt (p, 9, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 10, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 11, "Y\",EAST],AUTHORITY[\"EPSG\",\"3025\"]]"); p = add_epsg_def (filter, first, last, 3026, "epsg", 3026, "RT38 5 gon V"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=13.55827777777778 +k=1 +x_0="); add_proj4text (p, 1, "1500000 +y_0=0 +ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RT38 5 gon V\",GEOGCS[\"RT38\",DATUM[\"Stockhol"); add_srs_wkt (p, 1, "m_1938\",SPHEROID[\"Bessel 1841\",6377397.155,299.152812"); add_srs_wkt (p, 2, "8,AUTHORITY[\"EPSG\",\"7004\"]],AUTHORITY[\"EPSG\",\"630"); add_srs_wkt (p, 3, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 4, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4308\"]],PROJECTION[\"T"); add_srs_wkt (p, 6, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 7, "],PARAMETER[\"central_meridian\",13.55827777777778],PARA"); add_srs_wkt (p, 8, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",15"); add_srs_wkt (p, 9, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 10, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 11, "\",EAST],AUTHORITY[\"EPSG\",\"3026\"]]"); p = add_epsg_def (filter, first, last, 3027, "epsg", 3027, "RT38 2.5 gon V"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15.80827777777778 +k=1 +x_0="); add_proj4text (p, 1, "1500000 +y_0=0 +ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RT38 2.5 gon V\",GEOGCS[\"RT38\",DATUM[\"Stockh"); add_srs_wkt (p, 1, "olm_1938\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528"); add_srs_wkt (p, 2, "128,AUTHORITY[\"EPSG\",\"7004\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "308\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4308\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 7, "0],PARAMETER[\"central_meridian\",15.80827777777778],PAR"); add_srs_wkt (p, 8, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",1"); add_srs_wkt (p, 9, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 10, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 11, "Y\",EAST],AUTHORITY[\"EPSG\",\"3027\"]]"); p = add_epsg_def (filter, first, last, 3028, "epsg", 3028, "RT38 0 gon"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=18.05827777777778 +k=1 +x_0="); add_proj4text (p, 1, "1500000 +y_0=0 +ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RT38 0 gon\",GEOGCS[\"RT38\",DATUM[\"Stockholm_"); add_srs_wkt (p, 1, "1938\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7004\"]],AUTHORITY[\"EPSG\",\"6308\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4308\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",18.05827777777778],PARAMET"); add_srs_wkt (p, 8, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",15000"); add_srs_wkt (p, 9, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 10, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 11, "EAST],AUTHORITY[\"EPSG\",\"3028\"]]"); p = add_epsg_def (filter, first, last, 3029, "epsg", 3029, "RT38 2.5 gon O"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=20.30827777777778 +k=1 +x_0="); add_proj4text (p, 1, "1500000 +y_0=0 +ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RT38 2.5 gon O\",GEOGCS[\"RT38\",DATUM[\"Stockh"); add_srs_wkt (p, 1, "olm_1938\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528"); add_srs_wkt (p, 2, "128,AUTHORITY[\"EPSG\",\"7004\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "308\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4308\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 7, "0],PARAMETER[\"central_meridian\",20.30827777777778],PAR"); add_srs_wkt (p, 8, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",1"); add_srs_wkt (p, 9, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 10, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 11, "Y\",EAST],AUTHORITY[\"EPSG\",\"3029\"]]"); p = add_epsg_def (filter, first, last, 3030, "epsg", 3030, "RT38 5 gon O"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=22.55827777777778 +k=1 +x_0="); add_proj4text (p, 1, "1500000 +y_0=0 +ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RT38 5 gon O\",GEOGCS[\"RT38\",DATUM[\"Stockhol"); add_srs_wkt (p, 1, "m_1938\",SPHEROID[\"Bessel 1841\",6377397.155,299.152812"); add_srs_wkt (p, 2, "8,AUTHORITY[\"EPSG\",\"7004\"]],AUTHORITY[\"EPSG\",\"630"); add_srs_wkt (p, 3, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 4, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4308\"]],PROJECTION[\"T"); add_srs_wkt (p, 6, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 7, "],PARAMETER[\"central_meridian\",22.55827777777778],PARA"); add_srs_wkt (p, 8, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",15"); add_srs_wkt (p, 9, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 10, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 11, "\",EAST],AUTHORITY[\"EPSG\",\"3030\"]]"); p = add_epsg_def (filter, first, last, 3031, "epsg", 3031, "WGS 84 / Antarctic Polar Stereographic"); add_proj4text (p, 0, "+proj=stere +lat_0=-90 +lat_ts=-71 +lon_0=0 +k=1 +x_0=0 "); add_proj4text (p, 1, "+y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / Antarctic Polar Stereographic\",GEOGCS"); add_srs_wkt (p, 1, "[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",63781"); add_srs_wkt (p, 2, "37,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]]"); add_srs_wkt (p, 6, ",PROJECTION[\"Polar_Stereographic\"],PARAMETER[\"latitud"); add_srs_wkt (p, 7, "e_of_origin\",-71],PARAMETER[\"central_meridian\",0],PAR"); add_srs_wkt (p, 8, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 10, "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); add_srs_wkt (p, 11, "orthing\",NORTH],AUTHORITY[\"EPSG\",\"3031\"]]"); p = add_epsg_def (filter, first, last, 3032, "epsg", 3032, "WGS 84 / Australian Antarctic Polar Stereographic"); add_proj4text (p, 0, "+proj=stere +lat_0=-90 +lat_ts=-71 +lon_0=70 +k=1 +x_0=6"); add_proj4text (p, 1, "000000 +y_0=6000000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / Australian Antarctic Polar Stereograph"); add_srs_wkt (p, 1, "ic\",GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS"); add_srs_wkt (p, 2, " 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4326\"]],PROJECTION[\"Polar_Stereographic\"],PARAMETE"); add_srs_wkt (p, 7, "R[\"latitude_of_origin\",-71],PARAMETER[\"central_meridi"); add_srs_wkt (p, 8, "an\",70],PARAMETER[\"scale_factor\",1],PARAMETER[\"false"); add_srs_wkt (p, 9, "_easting\",6000000],PARAMETER[\"false_northing\",6000000"); add_srs_wkt (p, 10, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 11, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"3032\"]]"); p = add_epsg_def (filter, first, last, 3033, "epsg", 3033, "WGS 84 / Australian Antarctic Lambert"); add_proj4text (p, 0, "+proj=lcc +lat_1=-68.5 +lat_2=-74.5 +lat_0=-50 +lon_0=70"); add_proj4text (p, 1, " +x_0=6000000 +y_0=6000000 +datum=WGS84 +units=m +no_def"); add_proj4text (p, 2, "s"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / Australian Antarctic Lambert\",GEOGCS["); add_srs_wkt (p, 1, "\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],"); add_srs_wkt (p, 6, "PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 7, "standard_parallel_1\",-68.5],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-74.5],PARAMETER[\"latitude_of_origin\",-50],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",70],PARAMETER[\"false_easting"); add_srs_wkt (p, 10, "\",6000000],PARAMETER[\"false_northing\",6000000],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"303"); add_srs_wkt (p, 13, "3\"]]"); p = add_epsg_def (filter, first, last, 3034, "epsg", 3034, "ETRS89 / LCC Europe"); add_proj4text (p, 0, "+proj=lcc +lat_1=35 +lat_2=65 +lat_0=52 +lon_0=10 +x_0=4"); add_proj4text (p, 1, "000000 +y_0=2800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 "); add_proj4text (p, 2, "+units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / LCC Europe\",GEOGCS[\"ETRS89\",DATUM[\""); add_srs_wkt (p, 1, "European_Terrestrial_Reference_System_1989\",SPHEROID[\""); add_srs_wkt (p, 2, "GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "19\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 7, "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 8, "_1\",35],PARAMETER[\"standard_parallel_2\",65],PARAMETER"); add_srs_wkt (p, 9, "[\"latitude_of_origin\",52],PARAMETER[\"central_meridian"); add_srs_wkt (p, 10, "\",10],PARAMETER[\"false_easting\",4000000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",2800000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"3034\"]]"); p = add_epsg_def (filter, first, last, 3035, "epsg", 3035, "ETRS89 / LAEA Europe"); add_proj4text (p, 0, "+proj=laea +lat_0=52 +lon_0=10 +x_0=4321000 +y_0=3210000"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / LAEA Europe\",GEOGCS[\"ETRS89\",DATUM["); add_srs_wkt (p, 1, "\"European_Terrestrial_Reference_System_1989\",SPHEROID["); add_srs_wkt (p, 2, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"L"); add_srs_wkt (p, 7, "ambert_Azimuthal_Equal_Area\"],PARAMETER[\"latitude_of_c"); add_srs_wkt (p, 8, "enter\",52],PARAMETER[\"longitude_of_center\",10],PARAME"); add_srs_wkt (p, 9, "TER[\"false_easting\",4321000],PARAMETER[\"false_northin"); add_srs_wkt (p, 10, "g\",3210000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 11, "]],AXIS[\"Y\",NORTH],AXIS[\"X\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"3035\"]]"); } #endif /* full EPSG initialization enabled/disabled */ libspatialite-4.1.1/src/srsinit/epsg_inlined_prussian.c0000664000175000017500000017243712163502133020312 00000000000000/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Mark Johnson Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_prussian (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* old Prussian based on Cassini-Soldner - kindly contributed by Mark Johnson */ struct epsg_defs *p; p = add_epsg_def (filter, first, last, 187900, "mj10777.de", 187900, "DHDN / Soldner Rathausnetz 660"); add_proj4text (p, 0, "+proj=cass +lat_0=52.41864827777778 +lon_0=13.62720366666667 "); add_proj4text (p, 1, "+x_0=14741.77 +y_0=-11288.28 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner Rathausnetz 660\","); add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); add_srs_wkt (p, 2, "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt (p, 3, "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",52.41864827777778],"); add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",13.62720366666667],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",14741.77],PARAMETER[\"false_northing\",-11288.28],"); add_srs_wkt (p, 12, "AUTHORITY[\"mj10777.de\",\"187900\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def (filter, first, last, 187901, "mj10777.de", 187901, "DHDN / Soldner 1 Kucklinsberg"); add_proj4text (p, 0, "+proj=cass +lat_0=54.46022375 +lon_0=21.95509736 "); add_proj4text (p, 1, "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 1 Kucklinsberg\","); add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); add_srs_wkt (p, 2, "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt (p, 3, "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",54.46022375],"); add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",21.95509736],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "AUTHORITY[\"mj10777.de\",\"187901\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def (filter, first, last, 187902, "mj10777.de", 187902, "DHDN / Soldner 2 Paulinen"); add_proj4text (p, 0, "+proj=cass +lat_0=54.28921067 +lon_0=20.73315431 "); add_proj4text (p, 1, "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 2 Paulinen\","); add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); add_srs_wkt (p, 2, "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt (p, 3, "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",54.28921067],"); add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",20.73315431],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "AUTHORITY[\"mj10777.de\",\"187902\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def (filter, first, last, 187903, "mj10777.de", 187903, "DHDN / Soldner 3 Markushof I"); add_proj4text (p, 0, "+proj=cass +lat_0=54.05881333 +lon_0=19.37343583 "); add_proj4text (p, 1, "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 3 Markushof I\","); add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); add_srs_wkt (p, 2, "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt (p, 3, "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",54.05881333],"); add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",19.37343583],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "AUTHORITY[\"mj10777.de\",\"187903\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def (filter, first, last, 187904, "mj10777.de", 187904, "DHDN / Soldner 4 Thurmberg"); add_proj4text (p, 0, "+proj=cass +lat_0=54.22552092 +lon_0=18.12569375 "); add_proj4text (p, 1, "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 4 Thurmberg\","); add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); add_srs_wkt (p, 2, "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt (p, 3, "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",54.22552092],"); add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",18.12569375],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "AUTHORITY[\"mj10777.de\",\"187904\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def (filter, first, last, 187905, "mj10777.de", 187905, "DHDN / Soldner 5 Kauernick I"); add_proj4text (p, 0, "+proj=cass +lat_0=53.38933197 +lon_0=19.59810438 "); add_proj4text (p, 1, "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 5 Kauernick I\","); add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); add_srs_wkt (p, 2, "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt (p, 3, "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",53.38933197],"); add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",19.59810438],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "AUTHORITY[\"mj10777.de\",\"187905\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def (filter, first, last, 187906, "mj10777.de", 187906, "DHDN / Soldner 6 Thorn, Rathausturm"); add_proj4text (p, 0, "+proj=cass +lat_0=53.01181586 +lon_0=18.60725428 "); add_proj4text (p, 1, "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 6 Thorn, Rathausturm\","); add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); add_srs_wkt (p, 2, "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt (p, 3, "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",53.01181586],"); add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",18.60725428],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "AUTHORITY[\"mj10777.de\",\"187906\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def (filter, first, last, 187907, "mj10777.de", 187907, "DHDN / Soldner 7 Heinrichsthal"); add_proj4text (p, 0, "+proj=cass +lat_0=53.71289217 +lon_0=17.49676781 "); add_proj4text (p, 1, "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 7 Heinrichsthal\","); add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); add_srs_wkt (p, 2, "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt (p, 3, "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",53.71289217],"); add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",17.49676781],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "AUTHORITY[\"mj10777.de\",\"187907\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def (filter, first, last, 187908, "mj10777.de", 187908, "DHDN / Soldner 8 Gollenberg, Denkmal"); add_proj4text (p, 0, "+proj=cass +lat_0=54.20857178 +lon_0=16.22956781 "); add_proj4text (p, 1, "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 8 Gollenberg, Denkmal\","); add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); add_srs_wkt (p, 2, "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt (p, 3, "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",54.20857178],"); add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",16.22956781],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "AUTHORITY[\"mj10777.de\",\"187908\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def (filter, first, last, 187909, "mj10777.de", 187909, "DHDN / Soldner 9 Gnesen"); add_proj4text (p, 0, "+proj=cass +lat_0=52.53820406 +lon_0=17.59450500 "); add_proj4text (p, 1, "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 9 Gnesen\","); add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); add_srs_wkt (p, 2, "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt (p, 3, "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",52.53820406],"); add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",17.59450500],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "AUTHORITY[\"mj10777.de\",\"187909\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def (filter, first, last, 187910, "mj10777.de", 187910, "DHDN / Soldner 10 Josefsberg"); add_proj4text (p, 0, "+proj=cass +lat_0=51.98768806 +lon_0=16.20044389 "); add_proj4text (p, 1, "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 10 Josefsberg\","); add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); add_srs_wkt (p, 2, "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt (p, 3, "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",51.98768806],"); add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",16.20044389],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "AUTHORITY[\"mj10777.de\",\"187910\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def (filter, first, last, 187911, "mj10777.de", 187911, "DHDN / Soldner 11 Schroda"); add_proj4text (p, 0, "+proj=cass +lat_0=52.23137372 +lon_0=17.27795372 "); add_proj4text (p, 1, "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 11 Schroda\","); add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); add_srs_wkt (p, 2, "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt (p, 3, "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",52.23137372],"); add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",17.27795372],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "AUTHORITY[\"mj10777.de\",\"187911\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def (filter, first, last, 187912, "mj10777.de", 187912, "DHDN / Soldner 12 Pschow"); add_proj4text (p, 0, "+proj=cass +lat_0=50.04206544 +lon_0=18.39610692 "); add_proj4text (p, 1, "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 12 Pschow\","); add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); add_srs_wkt (p, 2, "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt (p, 3, "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",50.04206544],"); add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",18.39610692],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "AUTHORITY[\"mj10777.de\",\"187912\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def (filter, first, last, 187913, "mj10777.de", 187913, "DHDN / Soldner 13 Rummelsberg"); add_proj4text (p, 0, "+proj=cass +lat_0=50.70352314 +lon_0=17.11233917 "); add_proj4text (p, 1, "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 13 Rummelsberg\","); add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); add_srs_wkt (p, 2, "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt (p, 3, "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",50.70352314],"); add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",17.11233917],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "AUTHORITY[\"mj10777.de\",\"187913\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def (filter, first, last, 187914, "mj10777.de", 187914, "DHDN / Soldner 14 Gröditzberg I"); add_proj4text (p, 0, "+proj=cass +lat_0=51.17819342 +lon_0=15.76127086 "); add_proj4text (p, 1, "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 14 Gröditzberg I\","); add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); add_srs_wkt (p, 2, "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt (p, 3, "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",51.17819342],"); add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",15.76127086],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "AUTHORITY[\"mj10777.de\",\"187914\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def (filter, first, last, 187915, "mj10777.de", 187915, "DHDN / Soldner 15 Kaltenborn"); add_proj4text (p, 0, "+proj=cass +lat_0=51.92903708 +lon_0=14.66212942 "); add_proj4text (p, 1, "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 15 Kaltenborn\","); add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); add_srs_wkt (p, 2, "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt (p, 3, "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",51.92903708],"); add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",14.66212942],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "AUTHORITY[\"mj10777.de\",\"187915\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def (filter, first, last, 187917, "mj10777.de", 187917, "DHDN / Soldner 17 Greifswald, Nikolaikirche"); add_proj4text (p, 0, "+proj=cass +lat_0=54.09698872 +lon_0=13.37880703 "); add_proj4text (p, 1, "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 17 Greifswald, Nikolaikirche\","); add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); add_srs_wkt (p, 2, "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt (p, 3, "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",54.09698872],"); add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",13.37880703],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "AUTHORITY[\"mj10777.de\",\"187917\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def (filter, first, last, 187916, "mj10777.de", 187916, "DHDN / Soldner 16 Bahn I"); add_proj4text (p, 0, "+proj=cass +lat_0=53.10184583 +lon_0=14.70144539 "); add_proj4text (p, 1, "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 16 Bahn I\","); add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); add_srs_wkt (p, 2, "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt (p, 3, "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",53.10184583],"); add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",14.70144539],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "AUTHORITY[\"mj10777.de\",\"187916\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def (filter, first, last, 187918, "mj10777.de", 187918, "DHDN / Soldner 18 Müggelberg 600"); add_proj4text (p, 0, "+proj=cass +lat_0=52.41864827777778 +lon_0=13.62720366666667 "); add_proj4text (p, 1, "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 18 Müggelberg 600\","); add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); add_srs_wkt (p, 2, "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt (p, 3, "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",52.41864827777778],"); add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",13.62720366666667],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "AUTHORITY[\"mj10777.de\",\"187918\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def (filter, first, last, 187919, "mj10777.de", 187919, "DHDN / Soldner 19 Götzer Berg 650"); add_proj4text (p, 0, "+proj=cass +lat_0=52.43725961111112 +lon_0=12.72882972222223 "); add_proj4text (p, 1, "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 19 Götzer Berg 650\","); add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); add_srs_wkt (p, 2, "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt (p, 3, "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",52.43725961111112],"); add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",12.72882972222223],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "AUTHORITY[\"mj10777.de\",\"187919\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def (filter, first, last, 187920, "mj10777.de", 187920, "DHDN / Soldner 20 Torgau, Stadtkirche"); add_proj4text (p, 0, "+proj=cass +lat_0=51.56136217 +lon_0=13.00760264 "); add_proj4text (p, 1, "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 20 Torgau, Stadtkirche\","); add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); add_srs_wkt (p, 2, "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt (p, 3, "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",51.56136217],"); add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",13.00760264],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "AUTHORITY[\"mj10777.de\",\"187920\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def (filter, first, last, 187921, "mj10777.de", 187921, "DHDN / Soldner 21 Burkersroda, Kirchturm"); add_proj4text (p, 0, "+proj=cass +lat_0=51.17656322 +lon_0=11.64139367 "); add_proj4text (p, 1, "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 21 Burkersroda, Kirchturm\","); add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); add_srs_wkt (p, 2, "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt (p, 3, "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",51.17656322],"); add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",11.64139367],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "AUTHORITY[\"mj10777.de\",\"187921\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def (filter, first, last, 187922, "mj10777.de", 187922, "DHDN / Soldner 22 Inselsberg"); add_proj4text (p, 0, "+proj=cass +lat_0=50.85237983 +lon_0=10.46776506 "); add_proj4text (p, 1, "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 22 Inselsberg\","); add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); add_srs_wkt (p, 2, "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt (p, 3, "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",50.85237983],"); add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",10.46776506],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "AUTHORITY[\"mj10777.de\",\"187922\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def (filter, first, last, 187923, "mj10777.de", 187923, "DHDN / Soldner 23 Magdeburg"); add_proj4text (p, 0, "+proj=cass +lat_0=52.12625311 +lon_0=11.63550325 "); add_proj4text (p, 1, "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 23 Magdeburg\","); add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); add_srs_wkt (p, 2, "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt (p, 3, "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",52.12625311],"); add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",11.63550325],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "AUTHORITY[\"mj10777.de\",\"187923\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def (filter, first, last, 187924, "mj10777.de", 187924, "DHDN / Soldner 24 Ostenfeld I"); add_proj4text (p, 0, "+proj=cass +lat_0=54.47018733 +lon_0=9.23411097 "); add_proj4text (p, 1, "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 24 Ostenfeld I\","); add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); add_srs_wkt (p, 2, "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt (p, 3, "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",54.47018733],"); add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",9.23411097],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "AUTHORITY[\"mj10777.de\",\"187924\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def (filter, first, last, 187925, "mj10777.de", 187925, "DHDN / Soldner 25 Rathkrügen"); add_proj4text (p, 0, "+proj=cass +lat_0=53.81839364 +lon_0=10.04220189 "); add_proj4text (p, 1, "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 25 Rathkrügen\","); add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); add_srs_wkt (p, 2, "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt (p, 3, "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",53.81839364],"); add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",10.04220189],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "AUTHORITY[\"mj10777.de\",\"187925\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def (filter, first, last, 187926, "mj10777.de", 187926, "DHDN / Soldner 26 Bungsberg, Aussichtsturm"); add_proj4text (p, 0, "+proj=cass +lat_0=54.21110653 +lon_0=10.72636431 "); add_proj4text (p, 1, "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 26 Bungsberg, Aussichtsturm\","); add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); add_srs_wkt (p, 2, "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt (p, 3, "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",54.21110653],"); add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",10.72636431],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "AUTHORITY[\"mj10777.de\",\"187926\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def (filter, first, last, 187927, "mj10777.de", 187927, "DHDN / Soldner 27 Celle, Stadtkirche"); add_proj4text (p, 0, "+proj=cass +lat_0=52.62574192 +lon_0=10.08190214 "); add_proj4text (p, 1, "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 27 Celle, Stadtkirche\","); add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); add_srs_wkt (p, 2, "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt (p, 3, "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",52.62574192],"); add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",10.08190214],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "AUTHORITY[\"mj10777.de\",\"187927\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def (filter, first, last, 187928, "mj10777.de", 187928, "DHDN / Soldner 28 Kaltenborn"); add_proj4text (p, 0, "+proj=cass +lat_0=51.79646722 +lon_0=10.27322494 "); add_proj4text (p, 1, "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 28 Kaltenborn\","); add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); add_srs_wkt (p, 2, "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt (p, 3, "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",51.79646722],"); add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",10.27322494],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "AUTHORITY[\"mj10777.de\",\"187928\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def (filter, first, last, 187929, "mj10777.de", 187929, "DHDN / Soldner 29 Silberberg"); add_proj4text (p, 0, "+proj=cass +lat_0=53.73123461 +lon_0=9.05774925 "); add_proj4text (p, 1, "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 29 Silberberg\","); add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); add_srs_wkt (p, 2, "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt (p, 3, "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",53.73123461],"); add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",9.05774925],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "AUTHORITY[\"mj10777.de\",\"187929\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def (filter, first, last, 187930, "mj10777.de", 187930, "DHDN / Soldner 30 Windberg"); add_proj4text (p, 0, "+proj=cass +lat_0=52.88088372 +lon_0=7.53062114 "); add_proj4text (p, 1, "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 30 Windberg\","); add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); add_srs_wkt (p, 2, "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt (p, 3, "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",52.88088372],"); add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",7.53062114],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "AUTHORITY[\"mj10777.de\",\"187930\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def (filter, first, last, 187931, "mj10777.de", 187931, "DHDN / Soldner 31 Hermannsdenkmal"); add_proj4text (p, 0, "+proj=cass +lat_0=51.91301647 +lon_0=8.84051853 "); add_proj4text (p, 1, "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 31 Hermannsdenkmal\","); add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); add_srs_wkt (p, 2, "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt (p, 3, "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",51.91301647],"); add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",8.84051853],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "AUTHORITY[\"mj10777.de\",\"187931\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def (filter, first, last, 187932, "mj10777.de", 187932, "DHDN / Soldner 32 Münster"); add_proj4text (p, 0, "+proj=cass +lat_0=51.96547642 +lon_0=7.62334994 "); add_proj4text (p, 1, "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 32 Münster\","); add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); add_srs_wkt (p, 2, "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt (p, 3, "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",51.96547642],"); add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",7.62334994],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "AUTHORITY[\"mj10777.de\",\"187932\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def (filter, first, last, 187933, "mj10777.de", 187933, "DHDN / Soldner 33 Bochum, Peter-Paul-Kirche"); add_proj4text (p, 0, "+proj=cass +lat_0=51.48373533 +lon_0=7.22115822 "); add_proj4text (p, 1, "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 33 Bochum, Peter-Paul-Kirche\","); add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); add_srs_wkt (p, 2, "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt (p, 3, "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",51.48373533],"); add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",7.22115822],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "AUTHORITY[\"mj10777.de\",\"187933\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def (filter, first, last, 187934, "mj10777.de", 187934, "DHDN / Soldner 34 Homert"); add_proj4text (p, 0, "+proj=cass +lat_0=51.26480147 +lon_0=8.10687050 "); add_proj4text (p, 1, "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 34 Homert\","); add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); add_srs_wkt (p, 2, "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt (p, 3, "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",51.26480147],"); add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",8.10687050],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "AUTHORITY[\"mj10777.de\",\"187934\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def (filter, first, last, 187935, "mj10777.de", 187935, "DHDN / Soldner 35 Kassel, Martinskirche"); add_proj4text (p, 0, "+proj=cass +lat_0=51.31846489 +lon_0=9.50203072 "); add_proj4text (p, 1, "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 35 Kassel, Martinskirche\","); add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); add_srs_wkt (p, 2, "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt (p, 3, "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",51.31846489],"); add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",9.50203072],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "AUTHORITY[\"mj10777.de\",\"187935\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def (filter, first, last, 187936, "mj10777.de", 187936, "DHDN / Soldner 36 Schaumburg, Schloßturm"); add_proj4text (p, 0, "+proj=cass +lat_0=50.34048964 +lon_0=7.97808156 "); add_proj4text (p, 1, "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 36 Schaumburg, Schloßturm\","); add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); add_srs_wkt (p, 2, "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt (p, 3, "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",50.34048964],"); add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",7.97808156],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "AUTHORITY[\"mj10777.de\",\"187936\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def (filter, first, last, 187937, "mj10777.de", 187937, "DHDN / Soldner 37 Fleckert"); add_proj4text (p, 0, "+proj=cass +lat_0=50.18762544 +lon_0=7.60594289 "); add_proj4text (p, 1, "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 37 Fleckert\","); add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); add_srs_wkt (p, 2, "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt (p, 3, "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",50.18762544],"); add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",7.60594289],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "AUTHORITY[\"mj10777.de\",\"187937\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def (filter, first, last, 187938, "mj10777.de", 187938, "DHDN / Soldner 38 Cöln, Dom"); add_proj4text (p, 0, "+proj=cass +lat_0=50.94257242 +lon_0=6.95897600 "); add_proj4text (p, 1, "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 38 Cöln, Dom\","); add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); add_srs_wkt (p, 2, "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt (p, 3, "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",50.94257242],"); add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",6.95897600],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "AUTHORITY[\"mj10777.de\",\"187938\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def (filter, first, last, 187939, "mj10777.de", 187939, "DHDN / Soldner 39 Langschoß"); add_proj4text (p, 0, "+proj=cass +lat_0=50.66738711 +lon_0=6.28935703 "); add_proj4text (p, 1, "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 39 Langschoß\","); add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); add_srs_wkt (p, 2, "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt (p, 3, "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",50.66738711],"); add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",6.28935703],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "AUTHORITY[\"mj10777.de\",\"187939\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def (filter, first, last, 187940, "mj10777.de", 187940, "DHDN / Soldner 40 Rissenthal"); add_proj4text (p, 0, "+proj=cass +lat_0=49.47801819 +lon_0=6.75864339 "); add_proj4text (p, 1, "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 40 Rissenthal\","); add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); add_srs_wkt (p, 2, "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt (p, 3, "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",49.47801819],"); add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",6.75864339],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "AUTHORITY[\"mj10777.de\",\"187940\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def (filter, first, last, 187941, "mj10777.de", 187941, "DHDN / Soldner Bayern"); add_proj4text (p, 0, "+proj=cass +lat_0=48.13959111 +lon_0=11.57437083 "); add_proj4text (p, 1, "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner Bayern\","); add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); add_srs_wkt (p, 2, "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt (p, 3, "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",48.13959111],"); add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",11.57437083],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "AUTHORITY[\"mj10777.de\",\"187941\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def (filter, first, last, 187997, "mj10777.de", 187997, "NAD27 / Washington Capitol"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk66 +datum=NAD27 +pm=-77.0093576 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"NAD27 / Washington Capitol\",DATUM[\"North_American_Datum_1927\","); add_srs_wkt (p, 1, "SPHEROID[\"Clarke 1866\",6378206.4,294.9786982138982,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],"); add_srs_wkt (p, 3, "PRIMEM[\"Washington\",-77.0093576,AUTHORITY[\"mj10777.de\",\"188000\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"mj10777.de\",\"187997\"]]"); p = add_epsg_def (filter, first, last, 187998, "mj10777.de", 187998, "DHDN / Ferro / Deutsches_Hauptdreiecksnetz"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +datum=potsdam +pm=ferro +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / Ferro / Deutsches_Hauptdreiecksnetz\","); add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); add_srs_wkt (p, 2, "DATUM[\"Deutsches_Hauptdreiecksnetz\","); add_srs_wkt (p, 3, "SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt (p, 5, "PRIMEM[\"Ferro\",-17.66666666666667,AUTHORITY[\"EPSG\",\"8909\"]],"); add_srs_wkt (p, 6, "UNIT[\"Degree\",0.017453292519943295,AUTHORITY[\"EPSG\",\"9122\"],"); add_srs_wkt (p, 7, "AUTHORITY[\"mj10777.de\",\"187998\"]]"); /* mj10777: Not existing System, used for testing purposes. */ p = add_epsg_def (filter, first, last, 187999, "mj10777.de", 187999, "DHDN / Brandenburger Tor"); add_proj4text (p, 0, "+proj=cass +lat_0=52.41864827777778 +lon_0=13.62720366666667 "); add_proj4text (p, 1, "+x_0=16816.4833410610881 +y_0=-11047.016016734 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner Brandenburger Tor\","); add_srs_wkt (p, 1, "GEOGCS[\"DHDN\","); add_srs_wkt (p, 2, "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt (p, 3, "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",52.41864827777778],"); add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",13.62720366666667],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",16816.4833410610881],PARAMETER[\"false_northing\",-11047.016016734],"); add_srs_wkt (p, 12, "AUTHORITY[\"mj10777.de\",\"187999\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def (filter, first, last, 325833, "mj10777.de", 325833, "ETRS89 / UTM zone 33N (Brandenburg)"); add_proj4text (p, 0, "+proj=utm +zone=33 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / UTM zone 33N (Brandenburg)\",GEOGCS[\"ETRS89\","); add_srs_wkt (p, 1, "DATUM[\"European_Terrestrial_Reference_System_1989\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"6258\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.01745329251994328,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4258\"]],UNIT[\"metre\",1,"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"9001\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 8, "PARAMETER[\"latitude_of_origin\",0],"); add_srs_wkt (p, 9, "PARAMETER[\"central_meridian\",15],PARAMETER[\"scale_factor\",0.9996],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",3500000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"325833\"],"); add_srs_wkt (p, 12, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]]"); } #endif /* full EPSG initialization enabled/disabled */ libspatialite-4.1.1/src/srsinit/epsg_inlined_wgs84_00.c0000664000175000017500000040053312163502133017710 00000000000000/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include SPATIALITE_PRIVATE void initialize_epsg_wgs84_00 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list [WGS84] */ struct epsg_defs *p; p = add_epsg_def (filter, first, last, 4326, "epsg", 4326, "WGS 84"); add_proj4text (p, 0, "+proj=longlat +datum=WGS84 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\""); add_srs_wkt (p, 1, ",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 4, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"43"); add_srs_wkt (p, 5, "26\"]]"); p = add_epsg_def (filter, first, last, 32601, "epsg", 32601, "WGS 84 / UTM zone 1N"); add_proj4text (p, 0, "+proj=utm +zone=1 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 1N\",GEOGCS[\"WGS 84\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,A"); add_srs_wkt (p, 2, "UTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-177],PARAMETER[\"scale_fa"); add_srs_wkt (p, 8, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 9, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 10, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 11, "\",NORTH],AUTHORITY[\"EPSG\",\"32601\"]]"); p = add_epsg_def (filter, first, last, 32602, "epsg", 32602, "WGS 84 / UTM zone 2N"); add_proj4text (p, 0, "+proj=utm +zone=2 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 2N\",GEOGCS[\"WGS 84\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,A"); add_srs_wkt (p, 2, "UTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-171],PARAMETER[\"scale_fa"); add_srs_wkt (p, 8, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 9, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 10, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 11, "\",NORTH],AUTHORITY[\"EPSG\",\"32602\"]]"); p = add_epsg_def (filter, first, last, 32603, "epsg", 32603, "WGS 84 / UTM zone 3N"); add_proj4text (p, 0, "+proj=utm +zone=3 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 3N\",GEOGCS[\"WGS 84\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,A"); add_srs_wkt (p, 2, "UTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-165],PARAMETER[\"scale_fa"); add_srs_wkt (p, 8, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 9, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 10, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 11, "\",NORTH],AUTHORITY[\"EPSG\",\"32603\"]]"); p = add_epsg_def (filter, first, last, 32604, "epsg", 32604, "WGS 84 / UTM zone 4N"); add_proj4text (p, 0, "+proj=utm +zone=4 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 4N\",GEOGCS[\"WGS 84\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,A"); add_srs_wkt (p, 2, "UTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-159],PARAMETER[\"scale_fa"); add_srs_wkt (p, 8, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 9, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 10, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 11, "\",NORTH],AUTHORITY[\"EPSG\",\"32604\"]]"); p = add_epsg_def (filter, first, last, 32605, "epsg", 32605, "WGS 84 / UTM zone 5N"); add_proj4text (p, 0, "+proj=utm +zone=5 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 5N\",GEOGCS[\"WGS 84\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,A"); add_srs_wkt (p, 2, "UTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-153],PARAMETER[\"scale_fa"); add_srs_wkt (p, 8, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 9, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 10, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 11, "\",NORTH],AUTHORITY[\"EPSG\",\"32605\"]]"); p = add_epsg_def (filter, first, last, 32606, "epsg", 32606, "WGS 84 / UTM zone 6N"); add_proj4text (p, 0, "+proj=utm +zone=6 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 6N\",GEOGCS[\"WGS 84\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,A"); add_srs_wkt (p, 2, "UTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-147],PARAMETER[\"scale_fa"); add_srs_wkt (p, 8, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 9, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 10, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 11, "\",NORTH],AUTHORITY[\"EPSG\",\"32606\"]]"); p = add_epsg_def (filter, first, last, 32607, "epsg", 32607, "WGS 84 / UTM zone 7N"); add_proj4text (p, 0, "+proj=utm +zone=7 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 7N\",GEOGCS[\"WGS 84\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,A"); add_srs_wkt (p, 2, "UTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-141],PARAMETER[\"scale_fa"); add_srs_wkt (p, 8, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 9, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 10, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 11, "\",NORTH],AUTHORITY[\"EPSG\",\"32607\"]]"); p = add_epsg_def (filter, first, last, 32608, "epsg", 32608, "WGS 84 / UTM zone 8N"); add_proj4text (p, 0, "+proj=utm +zone=8 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 8N\",GEOGCS[\"WGS 84\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,A"); add_srs_wkt (p, 2, "UTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-135],PARAMETER[\"scale_fa"); add_srs_wkt (p, 8, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 9, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 10, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 11, "\",NORTH],AUTHORITY[\"EPSG\",\"32608\"]]"); p = add_epsg_def (filter, first, last, 32609, "epsg", 32609, "WGS 84 / UTM zone 9N"); add_proj4text (p, 0, "+proj=utm +zone=9 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 9N\",GEOGCS[\"WGS 84\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,A"); add_srs_wkt (p, 2, "UTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-129],PARAMETER[\"scale_fa"); add_srs_wkt (p, 8, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 9, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 10, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 11, "\",NORTH],AUTHORITY[\"EPSG\",\"32609\"]]"); p = add_epsg_def (filter, first, last, 32610, "epsg", 32610, "WGS 84 / UTM zone 10N"); add_proj4text (p, 0, "+proj=utm +zone=10 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 10N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-123],PARAMETER[\"scale_fa"); add_srs_wkt (p, 8, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 9, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 10, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 11, "\",NORTH],AUTHORITY[\"EPSG\",\"32610\"]]"); p = add_epsg_def (filter, first, last, 32611, "epsg", 32611, "WGS 84 / UTM zone 11N"); add_proj4text (p, 0, "+proj=utm +zone=11 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 11N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-117],PARAMETER[\"scale_fa"); add_srs_wkt (p, 8, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 9, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 10, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 11, "\",NORTH],AUTHORITY[\"EPSG\",\"32611\"]]"); p = add_epsg_def (filter, first, last, 32612, "epsg", 32612, "WGS 84 / UTM zone 12N"); add_proj4text (p, 0, "+proj=utm +zone=12 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 12N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-111],PARAMETER[\"scale_fa"); add_srs_wkt (p, 8, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 9, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 10, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 11, "\",NORTH],AUTHORITY[\"EPSG\",\"32612\"]]"); p = add_epsg_def (filter, first, last, 32613, "epsg", 32613, "WGS 84 / UTM zone 13N"); add_proj4text (p, 0, "+proj=utm +zone=13 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 13N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-105],PARAMETER[\"scale_fa"); add_srs_wkt (p, 8, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 9, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 10, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 11, "\",NORTH],AUTHORITY[\"EPSG\",\"32613\"]]"); p = add_epsg_def (filter, first, last, 32614, "epsg", 32614, "WGS 84 / UTM zone 14N"); add_proj4text (p, 0, "+proj=utm +zone=14 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 14N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-99],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 10, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 11, ",NORTH],AUTHORITY[\"EPSG\",\"32614\"]]"); p = add_epsg_def (filter, first, last, 32615, "epsg", 32615, "WGS 84 / UTM zone 15N"); add_proj4text (p, 0, "+proj=utm +zone=15 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 15N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-93],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 10, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 11, ",NORTH],AUTHORITY[\"EPSG\",\"32615\"]]"); p = add_epsg_def (filter, first, last, 32616, "epsg", 32616, "WGS 84 / UTM zone 16N"); add_proj4text (p, 0, "+proj=utm +zone=16 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 16N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-87],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 10, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 11, ",NORTH],AUTHORITY[\"EPSG\",\"32616\"]]"); p = add_epsg_def (filter, first, last, 32617, "epsg", 32617, "WGS 84 / UTM zone 17N"); add_proj4text (p, 0, "+proj=utm +zone=17 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 17N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-81],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 10, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 11, ",NORTH],AUTHORITY[\"EPSG\",\"32617\"]]"); p = add_epsg_def (filter, first, last, 32618, "epsg", 32618, "WGS 84 / UTM zone 18N"); add_proj4text (p, 0, "+proj=utm +zone=18 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 18N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-75],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 10, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 11, ",NORTH],AUTHORITY[\"EPSG\",\"32618\"]]"); p = add_epsg_def (filter, first, last, 32619, "epsg", 32619, "WGS 84 / UTM zone 19N"); add_proj4text (p, 0, "+proj=utm +zone=19 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 19N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-69],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 10, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 11, ",NORTH],AUTHORITY[\"EPSG\",\"32619\"]]"); p = add_epsg_def (filter, first, last, 32620, "epsg", 32620, "WGS 84 / UTM zone 20N"); add_proj4text (p, 0, "+proj=utm +zone=20 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 20N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-63],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 10, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 11, ",NORTH],AUTHORITY[\"EPSG\",\"32620\"]]"); p = add_epsg_def (filter, first, last, 32621, "epsg", 32621, "WGS 84 / UTM zone 21N"); add_proj4text (p, 0, "+proj=utm +zone=21 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 21N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-57],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 10, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 11, ",NORTH],AUTHORITY[\"EPSG\",\"32621\"]]"); p = add_epsg_def (filter, first, last, 32622, "epsg", 32622, "WGS 84 / UTM zone 22N"); add_proj4text (p, 0, "+proj=utm +zone=22 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 22N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-51],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 10, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 11, ",NORTH],AUTHORITY[\"EPSG\",\"32622\"]]"); p = add_epsg_def (filter, first, last, 32623, "epsg", 32623, "WGS 84 / UTM zone 23N"); add_proj4text (p, 0, "+proj=utm +zone=23 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 23N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-45],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 10, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 11, ",NORTH],AUTHORITY[\"EPSG\",\"32623\"]]"); p = add_epsg_def (filter, first, last, 32624, "epsg", 32624, "WGS 84 / UTM zone 24N"); add_proj4text (p, 0, "+proj=utm +zone=24 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 24N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-39],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 10, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 11, ",NORTH],AUTHORITY[\"EPSG\",\"32624\"]]"); p = add_epsg_def (filter, first, last, 32625, "epsg", 32625, "WGS 84 / UTM zone 25N"); add_proj4text (p, 0, "+proj=utm +zone=25 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 25N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-33],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 10, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 11, ",NORTH],AUTHORITY[\"EPSG\",\"32625\"]]"); p = add_epsg_def (filter, first, last, 32626, "epsg", 32626, "WGS 84 / UTM zone 26N"); add_proj4text (p, 0, "+proj=utm +zone=26 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 26N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-27],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 10, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 11, ",NORTH],AUTHORITY[\"EPSG\",\"32626\"]]"); p = add_epsg_def (filter, first, last, 32627, "epsg", 32627, "WGS 84 / UTM zone 27N"); add_proj4text (p, 0, "+proj=utm +zone=27 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 27N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-21],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 10, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 11, ",NORTH],AUTHORITY[\"EPSG\",\"32627\"]]"); p = add_epsg_def (filter, first, last, 32628, "epsg", 32628, "WGS 84 / UTM zone 28N"); add_proj4text (p, 0, "+proj=utm +zone=28 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 28N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-15],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 10, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 11, ",NORTH],AUTHORITY[\"EPSG\",\"32628\"]]"); p = add_epsg_def (filter, first, last, 32629, "epsg", 32629, "WGS 84 / UTM zone 29N"); add_proj4text (p, 0, "+proj=utm +zone=29 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 29N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-9],PARAMETER[\"scale_fact"); add_srs_wkt (p, 8, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 9, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 10, "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 11, ",NORTH],AUTHORITY[\"EPSG\",\"32629\"]]"); p = add_epsg_def (filter, first, last, 32630, "epsg", 32630, "WGS 84 / UTM zone 30N"); add_proj4text (p, 0, "+proj=utm +zone=30 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 30N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-3],PARAMETER[\"scale_fact"); add_srs_wkt (p, 8, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 9, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 10, "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 11, ",NORTH],AUTHORITY[\"EPSG\",\"32630\"]]"); p = add_epsg_def (filter, first, last, 32631, "epsg", 32631, "WGS 84 / UTM zone 31N"); add_proj4text (p, 0, "+proj=utm +zone=31 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 31N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",3],PARAMETER[\"scale_facto"); add_srs_wkt (p, 8, "r\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETE"); add_srs_wkt (p, 9, "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 10, "G\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\","); add_srs_wkt (p, 11, "NORTH],AUTHORITY[\"EPSG\",\"32631\"]]"); p = add_epsg_def (filter, first, last, 32632, "epsg", 32632, "WGS 84 / UTM zone 32N"); add_proj4text (p, 0, "+proj=utm +zone=32 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 32N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",9],PARAMETER[\"scale_facto"); add_srs_wkt (p, 8, "r\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETE"); add_srs_wkt (p, 9, "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 10, "G\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\","); add_srs_wkt (p, 11, "NORTH],AUTHORITY[\"EPSG\",\"32632\"]]"); p = add_epsg_def (filter, first, last, 32633, "epsg", 32633, "WGS 84 / UTM zone 33N"); add_proj4text (p, 0, "+proj=utm +zone=33 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 33N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",15],PARAMETER[\"scale_fact"); add_srs_wkt (p, 8, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 9, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 10, "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 11, ",NORTH],AUTHORITY[\"EPSG\",\"32633\"]]"); p = add_epsg_def (filter, first, last, 32634, "epsg", 32634, "WGS 84 / UTM zone 34N"); add_proj4text (p, 0, "+proj=utm +zone=34 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 34N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",21],PARAMETER[\"scale_fact"); add_srs_wkt (p, 8, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 9, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 10, "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 11, ",NORTH],AUTHORITY[\"EPSG\",\"32634\"]]"); p = add_epsg_def (filter, first, last, 32635, "epsg", 32635, "WGS 84 / UTM zone 35N"); add_proj4text (p, 0, "+proj=utm +zone=35 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 35N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",27],PARAMETER[\"scale_fact"); add_srs_wkt (p, 8, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 9, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 10, "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 11, ",NORTH],AUTHORITY[\"EPSG\",\"32635\"]]"); p = add_epsg_def (filter, first, last, 32636, "epsg", 32636, "WGS 84 / UTM zone 36N"); add_proj4text (p, 0, "+proj=utm +zone=36 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 36N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",33],PARAMETER[\"scale_fact"); add_srs_wkt (p, 8, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 9, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 10, "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 11, ",NORTH],AUTHORITY[\"EPSG\",\"32636\"]]"); p = add_epsg_def (filter, first, last, 32637, "epsg", 32637, "WGS 84 / UTM zone 37N"); add_proj4text (p, 0, "+proj=utm +zone=37 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 37N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",39],PARAMETER[\"scale_fact"); add_srs_wkt (p, 8, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 9, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 10, "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 11, ",NORTH],AUTHORITY[\"EPSG\",\"32637\"]]"); p = add_epsg_def (filter, first, last, 32638, "epsg", 32638, "WGS 84 / UTM zone 38N"); add_proj4text (p, 0, "+proj=utm +zone=38 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 38N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",45],PARAMETER[\"scale_fact"); add_srs_wkt (p, 8, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 9, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 10, "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 11, ",NORTH],AUTHORITY[\"EPSG\",\"32638\"]]"); p = add_epsg_def (filter, first, last, 32639, "epsg", 32639, "WGS 84 / UTM zone 39N"); add_proj4text (p, 0, "+proj=utm +zone=39 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 39N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",51],PARAMETER[\"scale_fact"); add_srs_wkt (p, 8, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 9, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 10, "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 11, ",NORTH],AUTHORITY[\"EPSG\",\"32639\"]]"); p = add_epsg_def (filter, first, last, 32640, "epsg", 32640, "WGS 84 / UTM zone 40N"); add_proj4text (p, 0, "+proj=utm +zone=40 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 40N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",57],PARAMETER[\"scale_fact"); add_srs_wkt (p, 8, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 9, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 10, "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 11, ",NORTH],AUTHORITY[\"EPSG\",\"32640\"]]"); p = add_epsg_def (filter, first, last, 32641, "epsg", 32641, "WGS 84 / UTM zone 41N"); add_proj4text (p, 0, "+proj=utm +zone=41 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 41N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",63],PARAMETER[\"scale_fact"); add_srs_wkt (p, 8, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 9, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 10, "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 11, ",NORTH],AUTHORITY[\"EPSG\",\"32641\"]]"); p = add_epsg_def (filter, first, last, 32642, "epsg", 32642, "WGS 84 / UTM zone 42N"); add_proj4text (p, 0, "+proj=utm +zone=42 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 42N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",69],PARAMETER[\"scale_fact"); add_srs_wkt (p, 8, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 9, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 10, "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 11, ",NORTH],AUTHORITY[\"EPSG\",\"32642\"]]"); p = add_epsg_def (filter, first, last, 32643, "epsg", 32643, "WGS 84 / UTM zone 43N"); add_proj4text (p, 0, "+proj=utm +zone=43 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 43N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",75],PARAMETER[\"scale_fact"); add_srs_wkt (p, 8, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 9, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 10, "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 11, ",NORTH],AUTHORITY[\"EPSG\",\"32643\"]]"); p = add_epsg_def (filter, first, last, 32644, "epsg", 32644, "WGS 84 / UTM zone 44N"); add_proj4text (p, 0, "+proj=utm +zone=44 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 44N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",81],PARAMETER[\"scale_fact"); add_srs_wkt (p, 8, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 9, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 10, "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 11, ",NORTH],AUTHORITY[\"EPSG\",\"32644\"]]"); p = add_epsg_def (filter, first, last, 32645, "epsg", 32645, "WGS 84 / UTM zone 45N"); add_proj4text (p, 0, "+proj=utm +zone=45 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 45N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",87],PARAMETER[\"scale_fact"); add_srs_wkt (p, 8, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 9, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 10, "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 11, ",NORTH],AUTHORITY[\"EPSG\",\"32645\"]]"); p = add_epsg_def (filter, first, last, 32646, "epsg", 32646, "WGS 84 / UTM zone 46N"); add_proj4text (p, 0, "+proj=utm +zone=46 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 46N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",93],PARAMETER[\"scale_fact"); add_srs_wkt (p, 8, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 9, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 10, "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 11, ",NORTH],AUTHORITY[\"EPSG\",\"32646\"]]"); p = add_epsg_def (filter, first, last, 32647, "epsg", 32647, "WGS 84 / UTM zone 47N"); add_proj4text (p, 0, "+proj=utm +zone=47 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 47N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",99],PARAMETER[\"scale_fact"); add_srs_wkt (p, 8, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 9, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 10, "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 11, ",NORTH],AUTHORITY[\"EPSG\",\"32647\"]]"); p = add_epsg_def (filter, first, last, 32648, "epsg", 32648, "WGS 84 / UTM zone 48N"); add_proj4text (p, 0, "+proj=utm +zone=48 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 48N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",105],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 10, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 11, ",NORTH],AUTHORITY[\"EPSG\",\"32648\"]]"); p = add_epsg_def (filter, first, last, 32649, "epsg", 32649, "WGS 84 / UTM zone 49N"); add_proj4text (p, 0, "+proj=utm +zone=49 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 49N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",111],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 10, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 11, ",NORTH],AUTHORITY[\"EPSG\",\"32649\"]]"); p = add_epsg_def (filter, first, last, 32650, "epsg", 32650, "WGS 84 / UTM zone 50N"); add_proj4text (p, 0, "+proj=utm +zone=50 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 50N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",117],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 10, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 11, ",NORTH],AUTHORITY[\"EPSG\",\"32650\"]]"); p = add_epsg_def (filter, first, last, 32651, "epsg", 32651, "WGS 84 / UTM zone 51N"); add_proj4text (p, 0, "+proj=utm +zone=51 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 51N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",123],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 10, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 11, ",NORTH],AUTHORITY[\"EPSG\",\"32651\"]]"); p = add_epsg_def (filter, first, last, 32652, "epsg", 32652, "WGS 84 / UTM zone 52N"); add_proj4text (p, 0, "+proj=utm +zone=52 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 52N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",129],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 10, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 11, ",NORTH],AUTHORITY[\"EPSG\",\"32652\"]]"); p = add_epsg_def (filter, first, last, 32653, "epsg", 32653, "WGS 84 / UTM zone 53N"); add_proj4text (p, 0, "+proj=utm +zone=53 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 53N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",135],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 10, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 11, ",NORTH],AUTHORITY[\"EPSG\",\"32653\"]]"); p = add_epsg_def (filter, first, last, 32654, "epsg", 32654, "WGS 84 / UTM zone 54N"); add_proj4text (p, 0, "+proj=utm +zone=54 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 54N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",141],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 10, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 11, ",NORTH],AUTHORITY[\"EPSG\",\"32654\"]]"); p = add_epsg_def (filter, first, last, 32655, "epsg", 32655, "WGS 84 / UTM zone 55N"); add_proj4text (p, 0, "+proj=utm +zone=55 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 55N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",147],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 10, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 11, ",NORTH],AUTHORITY[\"EPSG\",\"32655\"]]"); p = add_epsg_def (filter, first, last, 32656, "epsg", 32656, "WGS 84 / UTM zone 56N"); add_proj4text (p, 0, "+proj=utm +zone=56 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 56N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",153],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 10, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 11, ",NORTH],AUTHORITY[\"EPSG\",\"32656\"]]"); p = add_epsg_def (filter, first, last, 32657, "epsg", 32657, "WGS 84 / UTM zone 57N"); add_proj4text (p, 0, "+proj=utm +zone=57 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 57N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",159],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 10, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 11, ",NORTH],AUTHORITY[\"EPSG\",\"32657\"]]"); p = add_epsg_def (filter, first, last, 32658, "epsg", 32658, "WGS 84 / UTM zone 58N"); add_proj4text (p, 0, "+proj=utm +zone=58 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 58N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",165],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 10, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 11, ",NORTH],AUTHORITY[\"EPSG\",\"32658\"]]"); p = add_epsg_def (filter, first, last, 32659, "epsg", 32659, "WGS 84 / UTM zone 59N"); add_proj4text (p, 0, "+proj=utm +zone=59 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 59N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",171],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 10, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 11, ",NORTH],AUTHORITY[\"EPSG\",\"32659\"]]"); p = add_epsg_def (filter, first, last, 32660, "epsg", 32660, "WGS 84 / UTM zone 60N"); add_proj4text (p, 0, "+proj=utm +zone=60 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 60N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",177],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 10, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 11, ",NORTH],AUTHORITY[\"EPSG\",\"32660\"]]"); p = add_epsg_def (filter, first, last, 32661, "epsg", 32661, "WGS 84 / UPS North (N,E)"); add_proj4text (p, 0, "+proj=stere +lat_0=90 +lat_ts=90 +lon_0=0 +k=0.994 +x_0="); add_proj4text (p, 1, "2000000 +y_0=2000000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UPS North (N,E)\",GEOGCS[\"WGS 84\",DA"); add_srs_wkt (p, 1, "TUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2572235"); add_srs_wkt (p, 2, "63,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"63"); add_srs_wkt (p, 3, "26\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 4, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"P"); add_srs_wkt (p, 6, "olar_Stereographic\"],PARAMETER[\"latitude_of_origin\",9"); add_srs_wkt (p, 7, "0],PARAMETER[\"central_meridian\",0],PARAMETER[\"scale_f"); add_srs_wkt (p, 8, "actor\",0.994],PARAMETER[\"false_easting\",2000000],PARA"); add_srs_wkt (p, 9, "METER[\"false_northing\",2000000],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 10, "RITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\""); add_srs_wkt (p, 11, "Easting\",EAST],AUTHORITY[\"EPSG\",\"32661\"]]"); p = add_epsg_def (filter, first, last, 32662, "epsg", 32662, "WGS 84 / Plate Carree (deprecated)"); add_proj4text (p, 0, "+proj=eqc +lat_ts=0 +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +dat"); add_proj4text (p, 1, "um=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / Plate Carree (deprecated)\",GEOGCS[\"W"); add_srs_wkt (p, 1, "GS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,2"); add_srs_wkt (p, 2, "98.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PRO"); add_srs_wkt (p, 6, "JECTION[\"Equirectangular\"],PARAMETER[\"latitude_of_ori"); add_srs_wkt (p, 7, "gin\",0],PARAMETER[\"central_meridian\",0],PARAMETER[\"f"); add_srs_wkt (p, 8, "alse_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 9, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 10, ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32662\"]]"); p = add_epsg_def (filter, first, last, 32664, "epsg", 32664, "WGS 84 / BLM 14N (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-99 +k=0.9996 +x_0=500000.00"); add_proj4text (p, 1, "1016002 +y_0=0 +datum=WGS84 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / BLM 14N (ftUS)\",GEOGCS[\"WGS 84\",DAT"); add_srs_wkt (p, 1, "UM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.25722356"); add_srs_wkt (p, 2, "3,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"632"); add_srs_wkt (p, 3, "6\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 4, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"T"); add_srs_wkt (p, 6, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 7, "],PARAMETER[\"central_meridian\",-99],PARAMETER[\"scale_"); add_srs_wkt (p, 8, "factor\",0.9996],PARAMETER[\"false_easting\",1640416.67]"); add_srs_wkt (p, 9, ",PARAMETER[\"false_northing\",0],UNIT[\"US survey foot\""); add_srs_wkt (p, 10, ",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\""); add_srs_wkt (p, 11, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32664\""); add_srs_wkt (p, 12, "]]"); p = add_epsg_def (filter, first, last, 32665, "epsg", 32665, "WGS 84 / BLM 15N (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9996 +x_0=500000.00"); add_proj4text (p, 1, "1016002 +y_0=0 +datum=WGS84 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / BLM 15N (ftUS)\",GEOGCS[\"WGS 84\",DAT"); add_srs_wkt (p, 1, "UM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.25722356"); add_srs_wkt (p, 2, "3,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"632"); add_srs_wkt (p, 3, "6\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 4, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"T"); add_srs_wkt (p, 6, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 7, "],PARAMETER[\"central_meridian\",-93],PARAMETER[\"scale_"); add_srs_wkt (p, 8, "factor\",0.9996],PARAMETER[\"false_easting\",1640416.67]"); add_srs_wkt (p, 9, ",PARAMETER[\"false_northing\",0],UNIT[\"US survey foot\""); add_srs_wkt (p, 10, ",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\""); add_srs_wkt (p, 11, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32665\""); add_srs_wkt (p, 12, "]]"); p = add_epsg_def (filter, first, last, 32666, "epsg", 32666, "WGS 84 / BLM 16N (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9996 +x_0=500000.00"); add_proj4text (p, 1, "1016002 +y_0=0 +datum=WGS84 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / BLM 16N (ftUS)\",GEOGCS[\"WGS 84\",DAT"); add_srs_wkt (p, 1, "UM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.25722356"); add_srs_wkt (p, 2, "3,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"632"); add_srs_wkt (p, 3, "6\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 4, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"T"); add_srs_wkt (p, 6, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 7, "],PARAMETER[\"central_meridian\",-87],PARAMETER[\"scale_"); add_srs_wkt (p, 8, "factor\",0.9996],PARAMETER[\"false_easting\",1640416.67]"); add_srs_wkt (p, 9, ",PARAMETER[\"false_northing\",0],UNIT[\"US survey foot\""); add_srs_wkt (p, 10, ",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\""); add_srs_wkt (p, 11, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32666\""); add_srs_wkt (p, 12, "]]"); p = add_epsg_def (filter, first, last, 32667, "epsg", 32667, "WGS 84 / BLM 17N (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9996 +x_0=500000.00"); add_proj4text (p, 1, "1016002 +y_0=0 +datum=WGS84 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / BLM 17N (ftUS)\",GEOGCS[\"WGS 84\",DAT"); add_srs_wkt (p, 1, "UM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.25722356"); add_srs_wkt (p, 2, "3,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"632"); add_srs_wkt (p, 3, "6\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 4, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"T"); add_srs_wkt (p, 6, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 7, "],PARAMETER[\"central_meridian\",-81],PARAMETER[\"scale_"); add_srs_wkt (p, 8, "factor\",0.9996],PARAMETER[\"false_easting\",1640416.67]"); add_srs_wkt (p, 9, ",PARAMETER[\"false_northing\",0],UNIT[\"US survey foot\""); add_srs_wkt (p, 10, ",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\""); add_srs_wkt (p, 11, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32667\""); add_srs_wkt (p, 12, "]]"); p = add_epsg_def (filter, first, last, 32701, "epsg", 32701, "WGS 84 / UTM zone 1S"); add_proj4text (p, 0, "+proj=utm +zone=1 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 1S\",GEOGCS[\"WGS 84\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,A"); add_srs_wkt (p, 2, "UTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-177],PARAMETER[\"scale_fa"); add_srs_wkt (p, 8, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 9, "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 10, "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); add_srs_wkt (p, 11, "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32701\"]]"); p = add_epsg_def (filter, first, last, 32702, "epsg", 32702, "WGS 84 / UTM zone 2S"); add_proj4text (p, 0, "+proj=utm +zone=2 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 2S\",GEOGCS[\"WGS 84\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,A"); add_srs_wkt (p, 2, "UTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-171],PARAMETER[\"scale_fa"); add_srs_wkt (p, 8, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 9, "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 10, "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); add_srs_wkt (p, 11, "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32702\"]]"); p = add_epsg_def (filter, first, last, 32703, "epsg", 32703, "WGS 84 / UTM zone 3S"); add_proj4text (p, 0, "+proj=utm +zone=3 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 3S\",GEOGCS[\"WGS 84\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,A"); add_srs_wkt (p, 2, "UTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-165],PARAMETER[\"scale_fa"); add_srs_wkt (p, 8, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 9, "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 10, "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); add_srs_wkt (p, 11, "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32703\"]]"); p = add_epsg_def (filter, first, last, 32704, "epsg", 32704, "WGS 84 / UTM zone 4S"); add_proj4text (p, 0, "+proj=utm +zone=4 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 4S\",GEOGCS[\"WGS 84\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,A"); add_srs_wkt (p, 2, "UTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-159],PARAMETER[\"scale_fa"); add_srs_wkt (p, 8, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 9, "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 10, "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); add_srs_wkt (p, 11, "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32704\"]]"); p = add_epsg_def (filter, first, last, 32705, "epsg", 32705, "WGS 84 / UTM zone 5S"); add_proj4text (p, 0, "+proj=utm +zone=5 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 5S\",GEOGCS[\"WGS 84\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,A"); add_srs_wkt (p, 2, "UTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-153],PARAMETER[\"scale_fa"); add_srs_wkt (p, 8, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 9, "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 10, "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); add_srs_wkt (p, 11, "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32705\"]]"); p = add_epsg_def (filter, first, last, 32706, "epsg", 32706, "WGS 84 / UTM zone 6S"); add_proj4text (p, 0, "+proj=utm +zone=6 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 6S\",GEOGCS[\"WGS 84\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,A"); add_srs_wkt (p, 2, "UTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-147],PARAMETER[\"scale_fa"); add_srs_wkt (p, 8, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 9, "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 10, "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); add_srs_wkt (p, 11, "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32706\"]]"); p = add_epsg_def (filter, first, last, 32707, "epsg", 32707, "WGS 84 / UTM zone 7S"); add_proj4text (p, 0, "+proj=utm +zone=7 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 7S\",GEOGCS[\"WGS 84\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,A"); add_srs_wkt (p, 2, "UTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-141],PARAMETER[\"scale_fa"); add_srs_wkt (p, 8, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 9, "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 10, "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); add_srs_wkt (p, 11, "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32707\"]]"); p = add_epsg_def (filter, first, last, 32708, "epsg", 32708, "WGS 84 / UTM zone 8S"); add_proj4text (p, 0, "+proj=utm +zone=8 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 8S\",GEOGCS[\"WGS 84\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,A"); add_srs_wkt (p, 2, "UTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-135],PARAMETER[\"scale_fa"); add_srs_wkt (p, 8, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 9, "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 10, "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); add_srs_wkt (p, 11, "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32708\"]]"); p = add_epsg_def (filter, first, last, 32709, "epsg", 32709, "WGS 84 / UTM zone 9S"); add_proj4text (p, 0, "+proj=utm +zone=9 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 9S\",GEOGCS[\"WGS 84\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,A"); add_srs_wkt (p, 2, "UTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-129],PARAMETER[\"scale_fa"); add_srs_wkt (p, 8, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 9, "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 10, "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); add_srs_wkt (p, 11, "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32709\"]]"); p = add_epsg_def (filter, first, last, 32710, "epsg", 32710, "WGS 84 / UTM zone 10S"); add_proj4text (p, 0, "+proj=utm +zone=10 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 10S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-123],PARAMETER[\"scale_fa"); add_srs_wkt (p, 8, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 9, "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 10, "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); add_srs_wkt (p, 11, "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32710\"]]"); p = add_epsg_def (filter, first, last, 32711, "epsg", 32711, "WGS 84 / UTM zone 11S"); add_proj4text (p, 0, "+proj=utm +zone=11 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 11S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-117],PARAMETER[\"scale_fa"); add_srs_wkt (p, 8, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 9, "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 10, "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); add_srs_wkt (p, 11, "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32711\"]]"); p = add_epsg_def (filter, first, last, 32712, "epsg", 32712, "WGS 84 / UTM zone 12S"); add_proj4text (p, 0, "+proj=utm +zone=12 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 12S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-111],PARAMETER[\"scale_fa"); add_srs_wkt (p, 8, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 9, "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 10, "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); add_srs_wkt (p, 11, "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32712\"]]"); p = add_epsg_def (filter, first, last, 32713, "epsg", 32713, "WGS 84 / UTM zone 13S"); add_proj4text (p, 0, "+proj=utm +zone=13 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 13S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-105],PARAMETER[\"scale_fa"); add_srs_wkt (p, 8, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 9, "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 10, "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); add_srs_wkt (p, 11, "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32713\"]]"); p = add_epsg_def (filter, first, last, 32714, "epsg", 32714, "WGS 84 / UTM zone 14S"); add_proj4text (p, 0, "+proj=utm +zone=14 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 14S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-99],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 10, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 11, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"32714\"]]"); p = add_epsg_def (filter, first, last, 32715, "epsg", 32715, "WGS 84 / UTM zone 15S"); add_proj4text (p, 0, "+proj=utm +zone=15 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 15S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-93],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 10, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 11, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"32715\"]]"); p = add_epsg_def (filter, first, last, 32716, "epsg", 32716, "WGS 84 / UTM zone 16S"); add_proj4text (p, 0, "+proj=utm +zone=16 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 16S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-87],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 10, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 11, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"32716\"]]"); p = add_epsg_def (filter, first, last, 32717, "epsg", 32717, "WGS 84 / UTM zone 17S"); add_proj4text (p, 0, "+proj=utm +zone=17 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 17S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-81],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 10, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 11, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"32717\"]]"); p = add_epsg_def (filter, first, last, 32718, "epsg", 32718, "WGS 84 / UTM zone 18S"); add_proj4text (p, 0, "+proj=utm +zone=18 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 18S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-75],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 10, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 11, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"32718\"]]"); p = add_epsg_def (filter, first, last, 32719, "epsg", 32719, "WGS 84 / UTM zone 19S"); add_proj4text (p, 0, "+proj=utm +zone=19 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 19S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-69],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 10, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 11, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"32719\"]]"); p = add_epsg_def (filter, first, last, 32720, "epsg", 32720, "WGS 84 / UTM zone 20S"); add_proj4text (p, 0, "+proj=utm +zone=20 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 20S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-63],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 10, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 11, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"32720\"]]"); p = add_epsg_def (filter, first, last, 32721, "epsg", 32721, "WGS 84 / UTM zone 21S"); add_proj4text (p, 0, "+proj=utm +zone=21 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 21S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-57],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 10, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 11, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"32721\"]]"); p = add_epsg_def (filter, first, last, 32722, "epsg", 32722, "WGS 84 / UTM zone 22S"); add_proj4text (p, 0, "+proj=utm +zone=22 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 22S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-51],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 10, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 11, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"32722\"]]"); p = add_epsg_def (filter, first, last, 32723, "epsg", 32723, "WGS 84 / UTM zone 23S"); add_proj4text (p, 0, "+proj=utm +zone=23 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 23S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-45],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 10, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 11, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"32723\"]]"); p = add_epsg_def (filter, first, last, 32724, "epsg", 32724, "WGS 84 / UTM zone 24S"); add_proj4text (p, 0, "+proj=utm +zone=24 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 24S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-39],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 10, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 11, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"32724\"]]"); p = add_epsg_def (filter, first, last, 32725, "epsg", 32725, "WGS 84 / UTM zone 25S"); add_proj4text (p, 0, "+proj=utm +zone=25 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 25S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-33],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 10, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 11, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"32725\"]]"); p = add_epsg_def (filter, first, last, 32726, "epsg", 32726, "WGS 84 / UTM zone 26S"); add_proj4text (p, 0, "+proj=utm +zone=26 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 26S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-27],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 10, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 11, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"32726\"]]"); p = add_epsg_def (filter, first, last, 32727, "epsg", 32727, "WGS 84 / UTM zone 27S"); add_proj4text (p, 0, "+proj=utm +zone=27 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 27S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-21],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 10, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 11, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"32727\"]]"); p = add_epsg_def (filter, first, last, 32728, "epsg", 32728, "WGS 84 / UTM zone 28S"); add_proj4text (p, 0, "+proj=utm +zone=28 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 28S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-15],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 10, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 11, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"32728\"]]"); p = add_epsg_def (filter, first, last, 32729, "epsg", 32729, "WGS 84 / UTM zone 29S"); add_proj4text (p, 0, "+proj=utm +zone=29 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 29S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-9],PARAMETER[\"scale_fact"); add_srs_wkt (p, 8, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 9, "ER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 10, "TY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nor"); add_srs_wkt (p, 11, "thing\",NORTH],AUTHORITY[\"EPSG\",\"32729\"]]"); p = add_epsg_def (filter, first, last, 32730, "epsg", 32730, "WGS 84 / UTM zone 30S"); add_proj4text (p, 0, "+proj=utm +zone=30 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 30S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",-3],PARAMETER[\"scale_fact"); add_srs_wkt (p, 8, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 9, "ER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 10, "TY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nor"); add_srs_wkt (p, 11, "thing\",NORTH],AUTHORITY[\"EPSG\",\"32730\"]]"); p = add_epsg_def (filter, first, last, 32731, "epsg", 32731, "WGS 84 / UTM zone 31S"); add_proj4text (p, 0, "+proj=utm +zone=31 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 31S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",3],PARAMETER[\"scale_facto"); add_srs_wkt (p, 8, "r\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETE"); add_srs_wkt (p, 9, "R[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 10, "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 11, "hing\",NORTH],AUTHORITY[\"EPSG\",\"32731\"]]"); p = add_epsg_def (filter, first, last, 32732, "epsg", 32732, "WGS 84 / UTM zone 32S"); add_proj4text (p, 0, "+proj=utm +zone=32 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 32S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",9],PARAMETER[\"scale_facto"); add_srs_wkt (p, 8, "r\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETE"); add_srs_wkt (p, 9, "R[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 10, "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 11, "hing\",NORTH],AUTHORITY[\"EPSG\",\"32732\"]]"); p = add_epsg_def (filter, first, last, 32733, "epsg", 32733, "WGS 84 / UTM zone 33S"); add_proj4text (p, 0, "+proj=utm +zone=33 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 33S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",15],PARAMETER[\"scale_fact"); add_srs_wkt (p, 8, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 9, "ER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 10, "TY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nor"); add_srs_wkt (p, 11, "thing\",NORTH],AUTHORITY[\"EPSG\",\"32733\"]]"); p = add_epsg_def (filter, first, last, 32734, "epsg", 32734, "WGS 84 / UTM zone 34S"); add_proj4text (p, 0, "+proj=utm +zone=34 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 34S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",21],PARAMETER[\"scale_fact"); add_srs_wkt (p, 8, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 9, "ER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 10, "TY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nor"); add_srs_wkt (p, 11, "thing\",NORTH],AUTHORITY[\"EPSG\",\"32734\"]]"); } libspatialite-4.1.1/src/srsinit/epsg_inlined_23.c0000664000175000017500000024224712163502133016667 00000000000000/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_23 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def (filter, first, last, 4655, "epsg", 4655, "New Beijing / 3-degree Gauss-Kruger zone 28"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=84 +k=1 +x_0=28500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger zone 28\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 7, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 8, "ian\",84],PARAMETER[\"scale_factor\",1],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",28500000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 10, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); add_srs_wkt (p, 11, "NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4655\"]]"); p = add_epsg_def (filter, first, last, 4656, "epsg", 4656, "New Beijing / 3-degree Gauss-Kruger zone 29"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=29500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger zone 29\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 7, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 8, "ian\",87],PARAMETER[\"scale_factor\",1],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",29500000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 10, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); add_srs_wkt (p, 11, "NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4656\"]]"); p = add_epsg_def (filter, first, last, 4657, "epsg", 4657, "Reykjavik 1900"); add_proj4text (p, 0, "+proj=longlat +a=6377019.27 +b=6355762.5391 +towgs84=-28"); add_proj4text (p, 1, ",199,5,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Reykjavik 1900\",DATUM[\"Reykjavik_1900\",SPHER"); add_srs_wkt (p, 1, "OID[\"Danish 1876\",6377019.27,300,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 2, "7051\"]],TOWGS84[-28,199,5,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "6657\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 4, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4657\"]]"); p = add_epsg_def (filter, first, last, 4658, "epsg", 4658, "Hjorsey 1955"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-73,46,-86,0,0,0,0 +n"); add_proj4text (p, 1, "o_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Hjorsey 1955\",DATUM[\"Hjorsey_1955\",SPHEROID["); add_srs_wkt (p, 1, "\"International 1924\",6378388,297,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 2, "7022\"]],TOWGS84[-73,46,-86,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"6658\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 4, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4658\"]]"); p = add_epsg_def (filter, first, last, 4659, "epsg", 4659, "ISN93"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"ISN93\",DATUM[\"Islands_Net_1993\",SPHEROID[\"G"); add_srs_wkt (p, 1, "RS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"701"); add_srs_wkt (p, 2, "9\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6659\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4659\"]]"); p = add_epsg_def (filter, first, last, 4660, "epsg", 4660, "Helle 1954"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=982.609,552.753,-540."); add_proj4text (p, 1, "873,6.68163,-31.6115,-19.8482,16.805 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Helle 1954\",DATUM[\"Helle_1954\",SPHEROID[\"In"); add_srs_wkt (p, 1, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 2, "\"]],TOWGS84[982.609,552.753,-540.873,6.68163,-31.6115,-"); add_srs_wkt (p, 3, "19.8482,16.805],AUTHORITY[\"EPSG\",\"6660\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"4660\"]]"); p = add_epsg_def (filter, first, last, 4661, "epsg", 4661, "LKS92"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"LKS92\",DATUM[\"Latvia_1992\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 1, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 2, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6661\"]],PR"); add_srs_wkt (p, 3, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 4, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 5, "]],AUTHORITY[\"EPSG\",\"4661\"]]"); p = add_epsg_def (filter, first, last, 4662, "epsg", 4662, "IGN72 Grande Terre"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-11.64,-348.6,291.98,"); add_proj4text (p, 1, "0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"IGN72 Grande Terre\",DATUM[\"IGN72_Grande_Terre"); add_srs_wkt (p, 1, "\",SPHEROID[\"International 1924\",6378388,297,AUTHORITY"); add_srs_wkt (p, 2, "[\"EPSG\",\"7022\"]],TOWGS84[-11.64,-348.6,291.98,0,0,0,"); add_srs_wkt (p, 3, "0],AUTHORITY[\"EPSG\",\"6634\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4662\"]]"); p = add_epsg_def (filter, first, last, 4663, "epsg", 4663, "Porto Santo 1995"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-502.862,-247.438,312"); add_proj4text (p, 1, ".724,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Porto Santo 1995\",DATUM[\"Porto_Santo_1995\",S"); add_srs_wkt (p, 1, "PHEROID[\"International 1924\",6378388,297,AUTHORITY[\"E"); add_srs_wkt (p, 2, "PSG\",\"7022\"]],TOWGS84[-502.862,-247.438,312.724,0,0,0"); add_srs_wkt (p, 3, ",0],AUTHORITY[\"EPSG\",\"6663\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 5, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"4663\"]]"); p = add_epsg_def (filter, first, last, 4664, "epsg", 4664, "Azores Oriental 1995"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-204.619,140.176,55.2"); add_proj4text (p, 1, "26,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Azores Oriental 1995\",DATUM[\"Azores_Oriental_"); add_srs_wkt (p, 1, "Islands_1995\",SPHEROID[\"International 1924\",6378388,2"); add_srs_wkt (p, 2, "97,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-204.619,140.17"); add_srs_wkt (p, 3, "6,55.226,0,0,0,0],AUTHORITY[\"EPSG\",\"6664\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4664\"]]"); p = add_epsg_def (filter, first, last, 4665, "epsg", 4665, "Azores Central 1995"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-106.226,166.366,-37."); add_proj4text (p, 1, "893,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Azores Central 1995\",DATUM[\"Azores_Central_Is"); add_srs_wkt (p, 1, "lands_1995\",SPHEROID[\"International 1924\",6378388,297"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-106.226,166.366,"); add_srs_wkt (p, 3, "-37.893,0,0,0,0],AUTHORITY[\"EPSG\",\"6665\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4665\"]]"); p = add_epsg_def (filter, first, last, 4666, "epsg", 4666, "Lisbon 1890"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +towgs84=508.088,-191.042,56"); add_proj4text (p, 1, "5.223,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Lisbon 1890\",DATUM[\"Lisbon_1890\",SPHEROID[\""); add_srs_wkt (p, 1, "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 2, ",\"7004\"]],TOWGS84[508.088,-191.042,565.223,0,0,0,0],AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"6666\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 6, "666\"]]"); p = add_epsg_def (filter, first, last, 4667, "epsg", 4667, "IKBD-92"); add_proj4text (p, 0, "+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"IKBD-92\",DATUM[\"Iraq_Kuwait_Boundary_Datum_19"); add_srs_wkt (p, 1, "92\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHORITY"); add_srs_wkt (p, 2, "[\"EPSG\",\"7030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6667\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4667\"]]"); p = add_epsg_def (filter, first, last, 4668, "epsg", 4668, "ED79"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-86,-98,-119,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"ED79\",DATUM[\"European_Datum_1979\",SPHEROID[\""); add_srs_wkt (p, 1, "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 2, "22\"]],TOWGS84[-86,-98,-119,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"6668\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 4, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4668\"]]"); p = add_epsg_def (filter, first, last, 4669, "epsg", 4669, "LKS94"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"LKS94\",DATUM[\"Lithuania_1994_ETRS89\",SPHEROI"); add_srs_wkt (p, 1, "D[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 2, "\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "126\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4669\"]]"); p = add_epsg_def (filter, first, last, 4670, "epsg", 4670, "IGM95"); add_proj4text (p, 0, "+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"IGM95\",DATUM[\"Istituto_Geografico_Militaire_1"); add_srs_wkt (p, 1, "995\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6670\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4670\"]]"); p = add_epsg_def (filter, first, last, 4671, "epsg", 4671, "Voirol 1879"); add_proj4text (p, 0, "+proj=longlat +a=6378249.2 +b=6356515 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Voirol 1879\",DATUM[\"Voirol_1879\",SPHEROID[\""); add_srs_wkt (p, 1, "Clarke 1880 (IGN)\",6378249.2,293.4660212936269,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7011\"]],AUTHORITY[\"EPSG\",\"6671\"]],PRIM"); add_srs_wkt (p, 3, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 4, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 5, "],AUTHORITY[\"EPSG\",\"4671\"]]"); p = add_epsg_def (filter, first, last, 4672, "epsg", 4672, "Chatham Islands 1971"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=175,-38,113,0,0,0,0 +"); add_proj4text (p, 1, "no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Chatham Islands 1971\",DATUM[\"Chatham_Islands_"); add_srs_wkt (p, 1, "Datum_1971\",SPHEROID[\"International 1924\",6378388,297"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[175,-38,113,0,0,0"); add_srs_wkt (p, 3, ",0],AUTHORITY[\"EPSG\",\"6672\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 5, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"4672\"]]"); p = add_epsg_def (filter, first, last, 4673, "epsg", 4673, "Chatham Islands 1979"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=174.05,-25.49,112.57,"); add_proj4text (p, 1, "-0,-0,0.554,0.2263 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Chatham Islands 1979\",DATUM[\"Chatham_Islands_"); add_srs_wkt (p, 1, "Datum_1979\",SPHEROID[\"International 1924\",6378388,297"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[174.05,-25.49,112"); add_srs_wkt (p, 3, ".57,-0,-0,0.554,0.2263],AUTHORITY[\"EPSG\",\"6673\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AUTHORITY[\"EPSG\",\"4673\"]]"); p = add_epsg_def (filter, first, last, 4674, "epsg", 4674, "SIRGAS 2000"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"SIRGAS 2000\",DATUM[\"Sistema_de_Referencia_Geo"); add_srs_wkt (p, 1, "centrico_para_las_AmericaS_2000\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4674\"]]"); p = add_epsg_def (filter, first, last, 4675, "epsg", 4675, "Guam 1963"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk66 +towgs84=-100,-248,259,0,0,0"); add_proj4text (p, 1, ",0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Guam 1963\",DATUM[\"Guam_1963\",SPHEROID[\"Clar"); add_srs_wkt (p, 1, "ke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 2, ",\"7008\"]],TOWGS84[-100,-248,259,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"6675\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4675\"]]"); p = add_epsg_def (filter, first, last, 4676, "epsg", 4676, "Vientiane 1982"); add_proj4text (p, 0, "+proj=longlat +ellps=krass +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Vientiane 1982\",DATUM[\"Vientiane_1982\",SPHER"); add_srs_wkt (p, 1, "OID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 2, ",\"7024\"]],AUTHORITY[\"EPSG\",\"6676\"]],PRIMEM[\"Green"); add_srs_wkt (p, 3, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 4, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"4676\"]]"); p = add_epsg_def (filter, first, last, 4677, "epsg", 4677, "Lao 1993"); add_proj4text (p, 0, "+proj=longlat +ellps=krass +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Lao 1993\",DATUM[\"Lao_1993\",SPHEROID[\"Krasso"); add_srs_wkt (p, 1, "wsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"6677\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 4, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "4677\"]]"); p = add_epsg_def (filter, first, last, 4678, "epsg", 4678, "Lao 1997"); add_proj4text (p, 0, "+proj=longlat +ellps=krass +towgs84=44.585,-131.212,-39."); add_proj4text (p, 1, "544,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Lao 1997\",DATUM[\"Lao_National_Datum_1997\",SP"); add_srs_wkt (p, 1, "HEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPS"); add_srs_wkt (p, 2, "G\",\"7024\"]],TOWGS84[44.585,-131.212,-39.544,0,0,0,0],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"6678\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 5, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4678\"]]"); p = add_epsg_def (filter, first, last, 4679, "epsg", 4679, "Jouik 1961"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=-80.01,253.26,291.1"); add_proj4text (p, 1, "9,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Jouik 1961\",DATUM[\"Jouik_1961\",SPHEROID[\"Cl"); add_srs_wkt (p, 1, "arke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 2, ",\"7012\"]],TOWGS84[-80.01,253.26,291.19,0,0,0,0],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6679\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4679\""); add_srs_wkt (p, 6, "]]"); p = add_epsg_def (filter, first, last, 4680, "epsg", 4680, "Nouakchott 1965"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=124.5,-63.5,-281,0,"); add_proj4text (p, 1, "0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Nouakchott 1965\",DATUM[\"Nouakchott_1965\",SPH"); add_srs_wkt (p, 1, "EROID[\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7012\"]],TOWGS84[124.5,-63.5,-281,0,0,0,0],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"6680\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 5, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4680\"]]"); p = add_epsg_def (filter, first, last, 4681, "epsg", 4681, "Mauritania 1999"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Mauritania 1999\",DATUM[\"Mauritania_1999\",SPH"); add_srs_wkt (p, 1, "EROID[\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7012\"]],AUTHORITY[\"EPSG\",\"6681\"]],PRIM"); add_srs_wkt (p, 3, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 4, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 5, "],AUTHORITY[\"EPSG\",\"4681\"]]"); p = add_epsg_def (filter, first, last, 4682, "epsg", 4682, "Gulshan 303"); add_proj4text (p, 0, "+proj=longlat +a=6377276.345 +b=6356075.413140239 +towgs"); add_proj4text (p, 1, "84=283.7,735.9,261.1,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Gulshan 303\",DATUM[\"Gulshan_303\",SPHEROID[\""); add_srs_wkt (p, 1, "Everest 1830 (1937 Adjustment)\",6377276.345,300.8017,AU"); add_srs_wkt (p, 2, "THORITY[\"EPSG\",\"7015\"]],TOWGS84[283.7,735.9,261.1,0,"); add_srs_wkt (p, 3, "0,0,0],AUTHORITY[\"EPSG\",\"6682\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 6, "SG\",\"4682\"]]"); p = add_epsg_def (filter, first, last, 4683, "epsg", 4683, "PRS92"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk66 +towgs84=-127.62,-67.24,-47."); add_proj4text (p, 1, "04,-3.068,4.903,1.578,-1.06 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"PRS92\",DATUM[\"Philippine_Reference_System_199"); add_srs_wkt (p, 1, "2\",SPHEROID[\"Clarke 1866\",6378206.4,294.9786982138982"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"7008\"]],TOWGS84[-127.62,-67.24,-4"); add_srs_wkt (p, 3, "7.04,-3.068,4.903,1.578,-1.06],AUTHORITY[\"EPSG\",\"6683"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4683\"]]"); p = add_epsg_def (filter, first, last, 4684, "epsg", 4684, "Gan 1970"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-133,-321,50,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Gan 1970\",DATUM[\"Gan_1970\",SPHEROID[\"Intern"); add_srs_wkt (p, 1, "ational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]]"); add_srs_wkt (p, 2, ",TOWGS84[-133,-321,50,0,0,0,0],AUTHORITY[\"EPSG\",\"6684"); add_srs_wkt (p, 3, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 4, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"9122\"]],AUTHORITY[\"EPSG\",\"4684\"]]"); p = add_epsg_def (filter, first, last, 4685, "epsg", 4685, "Gandajika"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Gandajika\",DATUM[\"Gandajika\",SPHEROID[\"Inte"); add_srs_wkt (p, 1, "rnational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); add_srs_wkt (p, 2, "]],AUTHORITY[\"EPSG\",\"6685\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 4, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"4685\"]]"); p = add_epsg_def (filter, first, last, 4686, "epsg", 4686, "MAGNA-SIRGAS"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"MAGNA-SIRGAS\",DATUM[\"Marco_Geocentrico_Nacion"); add_srs_wkt (p, 1, "al_de_Referencia\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 2, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 3, ",0],AUTHORITY[\"EPSG\",\"6686\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 5, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"4686\"]]"); p = add_epsg_def (filter, first, last, 4687, "epsg", 4687, "RGPF"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0.072,-0.507,-0.245,"); add_proj4text (p, 1, "-0.0183,0.0003,-0.007,-0.0093 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"RGPF\",DATUM[\"Reseau_Geodesique_de_la_Polynesi"); add_srs_wkt (p, 1, "e_Francaise\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 2, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0.072,-0.507,-0."); add_srs_wkt (p, 3, "245,-0.0183,0.0003,-0.007,-0.0093],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6687\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4687\"]]"); p = add_epsg_def (filter, first, last, 4688, "epsg", 4688, "Fatu Iva 72"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=347.103,1078.12,2623."); add_proj4text (p, 1, "92,-33.8875,70.6773,-9.3943,186.074 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Fatu Iva 72\",DATUM[\"Fatu_Iva_72\",SPHEROID[\""); add_srs_wkt (p, 1, "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 2, "22\"]],TOWGS84[347.103,1078.12,2623.92,-33.8875,70.6773,"); add_srs_wkt (p, 3, "-9.3943,186.074],AUTHORITY[\"EPSG\",\"6688\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4688\"]]"); p = add_epsg_def (filter, first, last, 4689, "epsg", 4689, "IGN63 Hiva Oa"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=410.721,55.049,80.746"); add_proj4text (p, 1, ",2.5779,2.3514,0.6664,17.3311 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"IGN63 Hiva Oa\",DATUM[\"IGN63_Hiva_Oa\",SPHEROI"); add_srs_wkt (p, 1, "D[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 2, "\"7022\"]],TOWGS84[410.721,55.049,80.746,2.5779,2.3514,0"); add_srs_wkt (p, 3, ".6664,17.3311],AUTHORITY[\"EPSG\",\"6689\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4689\"]]"); p = add_epsg_def (filter, first, last, 4690, "epsg", 4690, "Tahiti 79"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=221.525,152.948,176.7"); add_proj4text (p, 1, "68,-2.3847,-1.3896,-0.877,11.4741 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Tahiti 79\",DATUM[\"Tahiti_79\",SPHEROID[\"Inte"); add_srs_wkt (p, 1, "rnational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); add_srs_wkt (p, 2, "]],TOWGS84[221.525,152.948,176.768,-2.3847,-1.3896,-0.87"); add_srs_wkt (p, 3, "7,11.4741],AUTHORITY[\"EPSG\",\"6690\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 4, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 5, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"4690\"]]"); p = add_epsg_def (filter, first, last, 4691, "epsg", 4691, "Moorea 87"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=215.525,149.593,176.2"); add_proj4text (p, 1, "29,-3.2624,-1.692,-1.1571,10.4773 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Moorea 87\",DATUM[\"Moorea_87\",SPHEROID[\"Inte"); add_srs_wkt (p, 1, "rnational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); add_srs_wkt (p, 2, "]],TOWGS84[215.525,149.593,176.229,-3.2624,-1.692,-1.157"); add_srs_wkt (p, 3, "1,10.4773],AUTHORITY[\"EPSG\",\"6691\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 4, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 5, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"4691\"]]"); p = add_epsg_def (filter, first, last, 4692, "epsg", 4692, "Maupiti 83"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=217.037,86.959,23.956"); add_proj4text (p, 1, ",0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Maupiti 83\",DATUM[\"Maupiti_83\",SPHEROID[\"In"); add_srs_wkt (p, 1, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 2, "\"]],TOWGS84[217.037,86.959,23.956,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6692\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4692\"]]"); p = add_epsg_def (filter, first, last, 4693, "epsg", 4693, "Nakhl-e Ghanem"); add_proj4text (p, 0, "+proj=longlat +ellps=WGS84 +towgs84=0,-0.15,0.68,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Nakhl-e Ghanem\",DATUM[\"Nakhl_e_Ghanem\",SPHER"); add_srs_wkt (p, 1, "OID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 2, "\"7030\"]],TOWGS84[0,-0.15,0.68,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"6693\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4693\"]]"); p = add_epsg_def (filter, first, last, 4694, "epsg", 4694, "POSGAR 94"); add_proj4text (p, 0, "+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"POSGAR 94\",DATUM[\"Posiciones_Geodesicas_Argen"); add_srs_wkt (p, 1, "tinas_1994\",SPHEROID[\"WGS 84\",6378137,298.257223563,A"); add_srs_wkt (p, 2, "UTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,0,0,0,0,0,0],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"6694\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"469"); add_srs_wkt (p, 6, "4\"]]"); p = add_epsg_def (filter, first, last, 4695, "epsg", 4695, "Katanga 1955"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk66 +towgs84=-103.746,-9.614,-25"); add_proj4text (p, 1, "5.95,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Katanga 1955\",DATUM[\"Katanga_1955\",SPHEROID["); add_srs_wkt (p, 1, "\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7008\"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,"); add_srs_wkt (p, 3, "0],AUTHORITY[\"EPSG\",\"6695\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4695\"]]"); p = add_epsg_def (filter, first, last, 4696, "epsg", 4696, "Kasai 1953"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Kasai 1953\",DATUM[\"Kasai_1953\",SPHEROID[\"Cl"); add_srs_wkt (p, 1, "arke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 2, ",\"7012\"]],AUTHORITY[\"EPSG\",\"6696\"]],PRIMEM[\"Green"); add_srs_wkt (p, 3, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 4, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"4696\"]]"); p = add_epsg_def (filter, first, last, 4697, "epsg", 4697, "IGC 1962 6th Parallel South"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"IGC 1962 6th Parallel South\",DATUM[\"IGC_1962_"); add_srs_wkt (p, 1, "Arc_of_the_6th_Parallel_South\",SPHEROID[\"Clarke 1880 ("); add_srs_wkt (p, 2, "RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6697\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4697\"]]"); p = add_epsg_def (filter, first, last, 4698, "epsg", 4698, "IGN 1962 Kerguelen"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=145,-187,103,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"IGN 1962 Kerguelen\",DATUM[\"IGN_1962_Kerguelen"); add_srs_wkt (p, 1, "\",SPHEROID[\"International 1924\",6378388,297,AUTHORITY"); add_srs_wkt (p, 2, "[\"EPSG\",\"7022\"]],TOWGS84[145,-187,103,0,0,0,0],AUTHO"); add_srs_wkt (p, 3, "RITY[\"EPSG\",\"6698\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 4, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4698"); add_srs_wkt (p, 6, "\"]]"); p = add_epsg_def (filter, first, last, 4699, "epsg", 4699, "Le Pouce 1934"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=-770.1,158.4,-498.2"); add_proj4text (p, 1, ",0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Le Pouce 1934\",DATUM[\"Le_Pouce_1934\",SPHEROI"); add_srs_wkt (p, 1, "D[\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7012\"]],TOWGS84[-770.1,158.4,-498.2,0,0,0,0],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6699\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4699\"]]"); p = add_epsg_def (filter, first, last, 4700, "epsg", 4700, "IGN Astro 1960"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"IGN Astro 1960\",DATUM[\"IGN_Astro_1960\",SPHER"); add_srs_wkt (p, 1, "OID[\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY["); add_srs_wkt (p, 2, "\"EPSG\",\"7012\"]],AUTHORITY[\"EPSG\",\"6700\"]],PRIMEM"); add_srs_wkt (p, 3, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 4, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"4700\"]]"); p = add_epsg_def (filter, first, last, 4701, "epsg", 4701, "IGCB 1955"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=-79.9,-158,-168.9,0"); add_proj4text (p, 1, ",0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"IGCB 1955\",DATUM[\"Institut_Geographique_du_Co"); add_srs_wkt (p, 1, "ngo_Belge_1955\",SPHEROID[\"Clarke 1880 (RGS)\",6378249."); add_srs_wkt (p, 2, "145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-79.9,"); add_srs_wkt (p, 3, "-158,-168.9,0,0,0,0],AUTHORITY[\"EPSG\",\"6701\"]],PRIME"); add_srs_wkt (p, 4, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"4701\"]]"); p = add_epsg_def (filter, first, last, 4702, "epsg", 4702, "Mauritania 1999"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"Mauritania 1999\",DATUM[\"Mauritania_1999\",SPH"); add_srs_wkt (p, 1, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 2, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6702\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4702\"]]"); p = add_epsg_def (filter, first, last, 4703, "epsg", 4703, "Mhast 1951"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Mhast 1951\",DATUM[\"Missao_Hidrografico_Angola"); add_srs_wkt (p, 1, "_y_Sao_Tome_1951\",SPHEROID[\"Clarke 1880 (RGS)\",637824"); add_srs_wkt (p, 2, "9.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6703\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4703\"]]"); p = add_epsg_def (filter, first, last, 4704, "epsg", 4704, "Mhast (onshore)"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Mhast (onshore)\",DATUM[\"Mhast_onshore\",SPHER"); add_srs_wkt (p, 1, "OID[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 2, ",\"7022\"]],AUTHORITY[\"EPSG\",\"6704\"]],PRIMEM[\"Green"); add_srs_wkt (p, 3, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 4, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"4704\"]]"); p = add_epsg_def (filter, first, last, 4705, "epsg", 4705, "Mhast (offshore)"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Mhast (offshore)\",DATUM[\"Mhast_offshore\",SPH"); add_srs_wkt (p, 1, "EROID[\"International 1924\",6378388,297,AUTHORITY[\"EPS"); add_srs_wkt (p, 2, "G\",\"7022\"]],AUTHORITY[\"EPSG\",\"6705\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 3, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 4, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"4705\"]]"); p = add_epsg_def (filter, first, last, 4706, "epsg", 4706, "Egypt Gulf of Suez S-650 TL"); add_proj4text (p, 0, "+proj=longlat +ellps=helmert +towgs84=-146.21,112.63,4.0"); add_proj4text (p, 1, "5,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Egypt Gulf of Suez S-650 TL\",DATUM[\"Egypt_Gul"); add_srs_wkt (p, 1, "f_of_Suez_S_650_TL\",SPHEROID[\"Helmert 1906\",6378200,2"); add_srs_wkt (p, 2, "98.3,AUTHORITY[\"EPSG\",\"7020\"]],TOWGS84[-146.21,112.6"); add_srs_wkt (p, 3, "3,4.05,0,0,0,0],AUTHORITY[\"EPSG\",\"6706\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"4706\"]]"); p = add_epsg_def (filter, first, last, 4707, "epsg", 4707, "Tern Island 1961"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=114,-116,-333,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Tern Island 1961\",DATUM[\"Tern_Island_1961\",S"); add_srs_wkt (p, 1, "PHEROID[\"International 1924\",6378388,297,AUTHORITY[\"E"); add_srs_wkt (p, 2, "PSG\",\"7022\"]],TOWGS84[114,-116,-333,0,0,0,0],AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"6707\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4707\"]]"); p = add_epsg_def (filter, first, last, 4708, "epsg", 4708, "Cocos Islands 1965"); add_proj4text (p, 0, "+proj=longlat +ellps=aust_SA +towgs84=-491,-22,435,0,0,0"); add_proj4text (p, 1, ",0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Cocos Islands 1965\",DATUM[\"Cocos_Islands_1965"); add_srs_wkt (p, 1, "\",SPHEROID[\"Australian National Spheroid\",6378160,298"); add_srs_wkt (p, 2, ".25,AUTHORITY[\"EPSG\",\"7003\"]],TOWGS84[-491,-22,435,0"); add_srs_wkt (p, 3, ",0,0,0],AUTHORITY[\"EPSG\",\"6708\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 4, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 5, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"4708\"]]"); p = add_epsg_def (filter, first, last, 4709, "epsg", 4709, "Iwo Jima 1945"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=145,75,-272,0,0,0,0 +"); add_proj4text (p, 1, "no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Iwo Jima 1945\",DATUM[\"Iwo_Jima_1945\",SPHEROI"); add_srs_wkt (p, 1, "D[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 2, "\"7022\"]],TOWGS84[145,75,-272,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"6709\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4709\"]]"); p = add_epsg_def (filter, first, last, 4710, "epsg", 4710, "St. Helena 1971"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-320,550,-494,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"St. Helena 1971\",DATUM[\"St_Helena_1971\",SPHE"); add_srs_wkt (p, 1, "ROID[\"International 1924\",6378388,297,AUTHORITY[\"EPSG"); add_srs_wkt (p, 2, "\",\"7022\"]],TOWGS84[-320,550,-494,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6710\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4710\"]]"); p = add_epsg_def (filter, first, last, 4711, "epsg", 4711, "Marcus Island 1952"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=124,-234,-25,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Marcus Island 1952\",DATUM[\"Marcus_Island_1952"); add_srs_wkt (p, 1, "\",SPHEROID[\"International 1924\",6378388,297,AUTHORITY"); add_srs_wkt (p, 2, "[\"EPSG\",\"7022\"]],TOWGS84[124,-234,-25,0,0,0,0],AUTHO"); add_srs_wkt (p, 3, "RITY[\"EPSG\",\"6711\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 4, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4711"); add_srs_wkt (p, 6, "\"]]"); p = add_epsg_def (filter, first, last, 4712, "epsg", 4712, "Ascension Island 1958"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-205,107,53,0,0,0,0 +"); add_proj4text (p, 1, "no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Ascension Island 1958\",DATUM[\"Ascension_Islan"); add_srs_wkt (p, 1, "d_1958\",SPHEROID[\"International 1924\",6378388,297,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7022\"]],TOWGS84[-205,107,53,0,0,0,0],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"6712\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 5, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4712\"]]"); p = add_epsg_def (filter, first, last, 4713, "epsg", 4713, "Ayabelle Lighthouse"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=-79,-129,145,0,0,0,"); add_proj4text (p, 1, "0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Ayabelle Lighthouse\",DATUM[\"Ayabelle_Lighthou"); add_srs_wkt (p, 1, "se\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145,293.465,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-79,-129,145,0,0,0"); add_srs_wkt (p, 3, ",0],AUTHORITY[\"EPSG\",\"6713\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 5, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"4713\"]]"); p = add_epsg_def (filter, first, last, 4714, "epsg", 4714, "Bellevue"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-127,-769,472,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Bellevue\",DATUM[\"Bellevue\",SPHEROID[\"Intern"); add_srs_wkt (p, 1, "ational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]]"); add_srs_wkt (p, 2, ",TOWGS84[-127,-769,472,0,0,0,0],AUTHORITY[\"EPSG\",\"671"); add_srs_wkt (p, 3, "4\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 4, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4714\"]]"); p = add_epsg_def (filter, first, last, 4715, "epsg", 4715, "Camp Area Astro"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-104,-129,239,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Camp Area Astro\",DATUM[\"Camp_Area_Astro\",SPH"); add_srs_wkt (p, 1, "EROID[\"International 1924\",6378388,297,AUTHORITY[\"EPS"); add_srs_wkt (p, 2, "G\",\"7022\"]],TOWGS84[-104,-129,239,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"6715\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4715\"]]"); p = add_epsg_def (filter, first, last, 4716, "epsg", 4716, "Phoenix Islands 1966"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=298,-304,-375,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Phoenix Islands 1966\",DATUM[\"Phoenix_Islands_"); add_srs_wkt (p, 1, "1966\",SPHEROID[\"International 1924\",6378388,297,AUTHO"); add_srs_wkt (p, 2, "RITY[\"EPSG\",\"7022\"]],TOWGS84[298,-304,-375,0,0,0,0],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"6716\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 5, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4716\"]]"); p = add_epsg_def (filter, first, last, 4717, "epsg", 4717, "Cape Canaveral"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk66 +towgs84=-2,151,181,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Cape Canaveral\",DATUM[\"Cape_Canaveral\",SPHER"); add_srs_wkt (p, 1, "OID[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7008\"]],TOWGS84[-2,151,181,0,0,0,0],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6717\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4717\""); add_srs_wkt (p, 6, "]]"); p = add_epsg_def (filter, first, last, 4718, "epsg", 4718, "Solomon 1968"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=252,-209,-751,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Solomon 1968\",DATUM[\"Solomon_1968\",SPHEROID["); add_srs_wkt (p, 1, "\"International 1924\",6378388,297,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 2, "7022\"]],TOWGS84[252,-209,-751,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"6718\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4718\"]]"); p = add_epsg_def (filter, first, last, 4719, "epsg", 4719, "Easter Island 1967"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=211,147,111,0,0,0,0 +"); add_proj4text (p, 1, "no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Easter Island 1967\",DATUM[\"Easter_Island_1967"); add_srs_wkt (p, 1, "\",SPHEROID[\"International 1924\",6378388,297,AUTHORITY"); add_srs_wkt (p, 2, "[\"EPSG\",\"7022\"]],TOWGS84[211,147,111,0,0,0,0],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6719\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4719\""); add_srs_wkt (p, 6, "]]"); p = add_epsg_def (filter, first, last, 4720, "epsg", 4720, "Fiji 1986"); add_proj4text (p, 0, "+proj=longlat +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.554,0."); add_proj4text (p, 1, "2263 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Fiji 1986\",DATUM[\"Fiji_Geodetic_Datum_1986\","); add_srs_wkt (p, 1, "SPHEROID[\"WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 2, "7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"6720\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4720\"]]"); p = add_epsg_def (filter, first, last, 4721, "epsg", 4721, "Fiji 1956"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=265.025,384.929,-194."); add_proj4text (p, 1, "046,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Fiji 1956\",DATUM[\"Fiji_1956\",SPHEROID[\"Inte"); add_srs_wkt (p, 1, "rnational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); add_srs_wkt (p, 2, "]],TOWGS84[265.025,384.929,-194.046,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6721\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4721\"]]"); p = add_epsg_def (filter, first, last, 4722, "epsg", 4722, "South Georgia 1968"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-794,119,-298,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"South Georgia 1968\",DATUM[\"South_Georgia_1968"); add_srs_wkt (p, 1, "\",SPHEROID[\"International 1924\",6378388,297,AUTHORITY"); add_srs_wkt (p, 2, "[\"EPSG\",\"7022\"]],TOWGS84[-794,119,-298,0,0,0,0],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"6722\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"472"); add_srs_wkt (p, 6, "2\"]]"); p = add_epsg_def (filter, first, last, 4723, "epsg", 4723, "Grand Cayman 1959"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk66 +towgs84=67.8,106.1,138.8,0,"); add_proj4text (p, 1, "0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Grand Cayman 1959\",DATUM[\"Grand_Cayman_1959\""); add_srs_wkt (p, 1, ",SPHEROID[\"Clarke 1866\",6378206.4,294.9786982138982,AU"); add_srs_wkt (p, 2, "THORITY[\"EPSG\",\"7008\"]],TOWGS84[67.8,106.1,138.8,0,0"); add_srs_wkt (p, 3, ",0,0],AUTHORITY[\"EPSG\",\"6723\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 6, "SG\",\"4723\"]]"); p = add_epsg_def (filter, first, last, 4724, "epsg", 4724, "Diego Garcia 1969"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=208,-435,-229,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Diego Garcia 1969\",DATUM[\"Diego_Garcia_1969\""); add_srs_wkt (p, 1, ",SPHEROID[\"International 1924\",6378388,297,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7022\"]],TOWGS84[208,-435,-229,0,0,0,0],AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"6724\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4724\""); add_srs_wkt (p, 6, "]]"); p = add_epsg_def (filter, first, last, 4725, "epsg", 4725, "Johnston Island 1961"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=189,-79,-202,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Johnston Island 1961\",DATUM[\"Johnston_Island_"); add_srs_wkt (p, 1, "1961\",SPHEROID[\"International 1924\",6378388,297,AUTHO"); add_srs_wkt (p, 2, "RITY[\"EPSG\",\"7022\"]],TOWGS84[189,-79,-202,0,0,0,0],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6725\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4725\"]]"); p = add_epsg_def (filter, first, last, 4726, "epsg", 4726, "Little Cayman 1961"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk66 +towgs84=42,124,147,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Little Cayman 1961\",DATUM[\"Little_Cayman_1961"); add_srs_wkt (p, 1, "\",SPHEROID[\"Clarke 1866\",6378206.4,294.9786982138982,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7008\"]],TOWGS84[42,124,147,0,0,0,0"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6726\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4726\"]]"); p = add_epsg_def (filter, first, last, 4727, "epsg", 4727, "Midway 1961"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=403,-81,277,0,0,0,0 +"); add_proj4text (p, 1, "no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Midway 1961\",DATUM[\"Midway_1961\",SPHEROID[\""); add_srs_wkt (p, 1, "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 2, "22\"]],TOWGS84[403,-81,277,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "6727\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 4, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4727\"]]"); p = add_epsg_def (filter, first, last, 4728, "epsg", 4728, "Pico de las Nieves 1984"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-307,-92,127,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Pico de las Nieves 1984\",DATUM[\"Pico_de_las_N"); add_srs_wkt (p, 1, "ieves_1984\",SPHEROID[\"International 1924\",6378388,297"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-307,-92,127,0,0,"); add_srs_wkt (p, 3, "0,0],AUTHORITY[\"EPSG\",\"6728\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4728\"]]"); p = add_epsg_def (filter, first, last, 4729, "epsg", 4729, "Pitcairn 1967"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=185,165,42,0,0,0,0 +n"); add_proj4text (p, 1, "o_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Pitcairn 1967\",DATUM[\"Pitcairn_1967\",SPHEROI"); add_srs_wkt (p, 1, "D[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 2, "\"7022\"]],TOWGS84[185,165,42,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6729\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4729\"]]"); p = add_epsg_def (filter, first, last, 4730, "epsg", 4730, "Santo 1965"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=170,42,84,0,0,0,0 +no"); add_proj4text (p, 1, "_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Santo 1965\",DATUM[\"Santo_1965\",SPHEROID[\"In"); add_srs_wkt (p, 1, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 2, "\"]],TOWGS84[170,42,84,0,0,0,0],AUTHORITY[\"EPSG\",\"673"); add_srs_wkt (p, 3, "0\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 4, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4730\"]]"); p = add_epsg_def (filter, first, last, 4731, "epsg", 4731, "Viti Levu 1916"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=51,391,-36,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Viti Levu 1916\",DATUM[\"Viti_Levu_1916\",SPHER"); add_srs_wkt (p, 1, "OID[\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY["); add_srs_wkt (p, 2, "\"EPSG\",\"7012\"]],TOWGS84[51,391,-36,0,0,0,0],AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"6731\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4731\"]]"); p = add_epsg_def (filter, first, last, 4732, "epsg", 4732, "Marshall Islands 1960"); add_proj4text (p, 0, "+proj=longlat +a=6378270 +b=6356794.343434343 +towgs84=1"); add_proj4text (p, 1, "02,52,-38,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Marshall Islands 1960\",DATUM[\"Marshall_Island"); add_srs_wkt (p, 1, "s_1960\",SPHEROID[\"Hough 1960\",6378270,297,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7053\"]],TOWGS84[102,52,-38,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"6732\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4732\"]]"); p = add_epsg_def (filter, first, last, 4733, "epsg", 4733, "Wake Island 1952"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=276,-57,149,0,0,0,0 +"); add_proj4text (p, 1, "no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Wake Island 1952\",DATUM[\"Wake_Island_1952\",S"); add_srs_wkt (p, 1, "PHEROID[\"International 1924\",6378388,297,AUTHORITY[\"E"); add_srs_wkt (p, 2, "PSG\",\"7022\"]],TOWGS84[276,-57,149,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"6733\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4733\"]]"); p = add_epsg_def (filter, first, last, 4734, "epsg", 4734, "Tristan 1968"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-632,438,-609,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Tristan 1968\",DATUM[\"Tristan_1968\",SPHEROID["); add_srs_wkt (p, 1, "\"International 1924\",6378388,297,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 2, "7022\"]],TOWGS84[-632,438,-609,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"6734\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4734\"]]"); p = add_epsg_def (filter, first, last, 4735, "epsg", 4735, "Kusaie 1951"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=647,1777,-1124,0,0,0,"); add_proj4text (p, 1, "0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Kusaie 1951\",DATUM[\"Kusaie_1951\",SPHEROID[\""); add_srs_wkt (p, 1, "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 2, "22\"]],TOWGS84[647,1777,-1124,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6735\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4735\"]]"); p = add_epsg_def (filter, first, last, 4736, "epsg", 4736, "Deception Island"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=260,12,-147,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Deception Island\",DATUM[\"Deception_Island\",S"); add_srs_wkt (p, 1, "PHEROID[\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHOR"); add_srs_wkt (p, 2, "ITY[\"EPSG\",\"7012\"]],TOWGS84[260,12,-147,0,0,0,0],AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"6736\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 5, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 6, "36\"]]"); p = add_epsg_def (filter, first, last, 4737, "epsg", 4737, "Korea 2000"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"Korea 2000\",DATUM[\"Geocentric_datum_of_Korea\""); add_srs_wkt (p, 1, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"6737\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4737\"]]"); p = add_epsg_def (filter, first, last, 4738, "epsg", 4738, "Hong Kong 1963"); add_proj4text (p, 0, "+proj=longlat +a=6378293.645208759 +b=6356617.987679838 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Hong Kong 1963\",DATUM[\"Hong_Kong_1963\",SPHER"); add_srs_wkt (p, 1, "OID[\"Clarke 1858\",6378293.645208759,294.2606763692654,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7007\"]],AUTHORITY[\"EPSG\",\"6738\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4738\"]]"); p = add_epsg_def (filter, first, last, 4739, "epsg", 4739, "Hong Kong 1963(67)"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-156,-271,-189,0,0,0,"); add_proj4text (p, 1, "0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Hong Kong 1963(67)\",DATUM[\"Hong_Kong_1963_67\""); add_srs_wkt (p, 1, ",SPHEROID[\"International 1924\",6378388,297,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7022\"]],TOWGS84[-156,-271,-189,0,0,0,0],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6739\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4739\""); add_srs_wkt (p, 6, "]]"); p = add_epsg_def (filter, first, last, 4740, "epsg", 4740, "PZ-90"); add_proj4text (p, 0, "+proj=longlat +a=6378136 +b=6356751.361745712 +towgs84=0"); add_proj4text (p, 1, ",0,1.5,-0,-0,0.076,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"PZ-90\",DATUM[\"Parametrop_Zemp_1990\",SPHEROID"); add_srs_wkt (p, 1, "[\"PZ-90\",6378136,298.257839303,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 2, "54\"]],TOWGS84[0,0,1.5,-0,-0,0.076,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6740\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4740\"]]"); p = add_epsg_def (filter, first, last, 4741, "epsg", 4741, "FD54"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"FD54\",DATUM[\"Faroe_Datum_1954\",SPHEROID[\"In"); add_srs_wkt (p, 1, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 2, "\"]],AUTHORITY[\"EPSG\",\"6741\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 3, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 4, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"4741\"]]"); p = add_epsg_def (filter, first, last, 4742, "epsg", 4742, "GDM2000"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"GDM2000\",DATUM[\"Geodetic_Datum_of_Malaysia_20"); add_srs_wkt (p, 1, "00\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"6742\"]],PRI"); add_srs_wkt (p, 3, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 4, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 5, "],AUTHORITY[\"EPSG\",\"4742\"]]"); p = add_epsg_def (filter, first, last, 4743, "epsg", 4743, "Karbala 1979"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=70.995,-335.916,262"); add_proj4text (p, 1, ".898,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Karbala 1979\",DATUM[\"Karbala_1979\",SPHEROID["); add_srs_wkt (p, 1, "\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EP"); add_srs_wkt (p, 2, "SG\",\"7012\"]],TOWGS84[70.995,-335.916,262.898,0,0,0,0]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6743\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4743\"]]"); p = add_epsg_def (filter, first, last, 4744, "epsg", 4744, "Nahrwan 1934"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Nahrwan 1934\",DATUM[\"Nahrwan_1934\",SPHEROID["); add_srs_wkt (p, 1, "\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EP"); add_srs_wkt (p, 2, "SG\",\"7012\"]],AUTHORITY[\"EPSG\",\"6744\"]],PRIMEM[\"G"); add_srs_wkt (p, 3, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 4, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"4744\"]]"); p = add_epsg_def (filter, first, last, 4745, "epsg", 4745, "RD/83"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"RD/83\",DATUM[\"Rauenberg_Datum_83\",SPHEROID[\""); add_srs_wkt (p, 1, "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 2, ",\"7004\"]],AUTHORITY[\"EPSG\",\"6745\"]],PRIMEM[\"Green"); add_srs_wkt (p, 3, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 4, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"4745\"]]"); p = add_epsg_def (filter, first, last, 4746, "epsg", 4746, "PD/83"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"PD/83\",DATUM[\"Potsdam_Datum_83\",SPHEROID[\"B"); add_srs_wkt (p, 1, "essel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 2, "\"7004\"]],AUTHORITY[\"EPSG\",\"6746\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 3, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 4, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"4746\"]]"); p = add_epsg_def (filter, first, last, 4747, "epsg", 4747, "GR96"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"GR96\",DATUM[\"Greenland_1996\",SPHEROID[\"GRS "); add_srs_wkt (p, 1, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 2, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],"); add_srs_wkt (p, 3, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 4, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 5, "2\"]],AUTHORITY[\"EPSG\",\"4747\"]]"); p = add_epsg_def (filter, first, last, 4748, "epsg", 4748, "Vanua Levu 1915"); add_proj4text (p, 0, "+proj=longlat +a=6378306.3696 +b=6356571.996 +towgs84=51"); add_proj4text (p, 1, ",391,-36,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Vanua Levu 1915\",DATUM[\"Vanua_Levu_1915\",SPH"); add_srs_wkt (p, 1, "EROID[\"Clarke 1880 (international foot)\",6378306.3696,"); add_srs_wkt (p, 2, "293.4663076556361,AUTHORITY[\"EPSG\",\"7055\"]],TOWGS84["); add_srs_wkt (p, 3, "51,391,-36,0,0,0,0],AUTHORITY[\"EPSG\",\"6748\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4748\"]]"); p = add_epsg_def (filter, first, last, 4749, "epsg", 4749, "RGNC91-93"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"RGNC91-93\",DATUM[\"Reseau_Geodesique_de_Nouvel"); add_srs_wkt (p, 1, "le_Caledonie_91_93\",SPHEROID[\"GRS 1980\",6378137,298.2"); add_srs_wkt (p, 2, "57222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0"); add_srs_wkt (p, 3, ",0,0],AUTHORITY[\"EPSG\",\"6749\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 6, "SG\",\"4749\"]]"); p = add_epsg_def (filter, first, last, 4750, "epsg", 4750, "ST87 Ouvea"); add_proj4text (p, 0, "+proj=longlat +ellps=WGS84 +towgs84=-56.263,16.136,-22.8"); add_proj4text (p, 1, "56,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"ST87 Ouvea\",DATUM[\"ST87_Ouvea\",SPHEROID[\"WG"); add_srs_wkt (p, 1, "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); add_srs_wkt (p, 2, "]],TOWGS84[-56.263,16.136,-22.856,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"6750\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4750\"]]"); p = add_epsg_def (filter, first, last, 4751, "epsg", 4751, "Kertau (RSO)"); add_proj4text (p, 0, "+proj=longlat +a=6377295.664 +b=6356094.667915204 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"Kertau (RSO)\",DATUM[\"Kertau_RSO\",SPHEROID[\""); add_srs_wkt (p, 1, "Everest 1830 (RSO 1969)\",6377295.664,300.8017,AUTHORITY"); add_srs_wkt (p, 2, "[\"EPSG\",\"7056\"]],AUTHORITY[\"EPSG\",\"6751\"]],PRIME"); add_srs_wkt (p, 3, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 4, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"4751\"]]"); p = add_epsg_def (filter, first, last, 4752, "epsg", 4752, "Viti Levu 1912"); add_proj4text (p, 0, "+proj=longlat +a=6378306.3696 +b=6356571.996 +towgs84=51"); add_proj4text (p, 1, ",391,-36,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Viti Levu 1912\",DATUM[\"Viti_Levu_1912\",SPHER"); add_srs_wkt (p, 1, "OID[\"Clarke 1880 (international foot)\",6378306.3696,29"); add_srs_wkt (p, 2, "3.4663076556361,AUTHORITY[\"EPSG\",\"7055\"]],TOWGS84[51"); add_srs_wkt (p, 3, ",391,-36,0,0,0,0],AUTHORITY[\"EPSG\",\"6752\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4752\"]]"); p = add_epsg_def (filter, first, last, 4753, "epsg", 4753, "fk89"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"fk89\",DATUM[\"fk89\",SPHEROID[\"International "); add_srs_wkt (p, 1, "1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"6753\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4753\""); add_srs_wkt (p, 5, "]]"); p = add_epsg_def (filter, first, last, 4754, "epsg", 4754, "LGD2006"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-208.406,-109.878,-2."); add_proj4text (p, 1, "5764,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"LGD2006\",DATUM[\"Libyan_Geodetic_Datum_2006\","); add_srs_wkt (p, 1, "SPHEROID[\"International 1924\",6378388,297,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7022\"]],TOWGS84[-208.406,-109.878,-2.5764,0,0,"); add_srs_wkt (p, 3, "0,0],AUTHORITY[\"EPSG\",\"6754\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4754\"]]"); p = add_epsg_def (filter, first, last, 4755, "epsg", 4755, "DGN95"); add_proj4text (p, 0, "+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"DGN95\",DATUM[\"Datum_Geodesi_Nasional_1995\",S"); add_srs_wkt (p, 1, "PHEROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPS"); add_srs_wkt (p, 2, "G\",\"7030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6755\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4755\"]]"); } #endif /* full EPSG initialization enabled/disabled */ libspatialite-4.1.1/src/srsinit/epsg_inlined_26.c0000664000175000017500000042777712163502133016707 00000000000000/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def (filter, first, last, 5306, "epsg", 5306, "DRUKREF 03 / Trashigang TM"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=91.75 +k=1 +x_0=250000 +y_0="); add_proj4text (p, 1, "-2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +n"); add_proj4text (p, 2, "o_defs"); add_srs_wkt (p, 0, "PROJCS[\"DRUKREF 03 / Trashigang TM\",GEOGCS[\"DRUKREF 0"); add_srs_wkt (p, 1, "3\",DATUM[\"Bhutan_National_Geodetic_Datum\",SPHEROID[\""); add_srs_wkt (p, 2, "GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "19\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1058\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"5264\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, "ARAMETER[\"central_meridian\",91.75],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",1],PARAMETER[\"false_easting\",250000],PARAMETER"); add_srs_wkt (p, 10, "[\"false_northing\",-2500000],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 12, "ing\",NORTH],AUTHORITY[\"EPSG\",\"5306\"]]"); p = add_epsg_def (filter, first, last, 5307, "epsg", 5307, "DRUKREF 03 / Trongsa TM"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=90.5 +k=1 +x_0=250000 +y_0=-"); add_proj4text (p, 1, "2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"DRUKREF 03 / Trongsa TM\",GEOGCS[\"DRUKREF 03\""); add_srs_wkt (p, 1, ",DATUM[\"Bhutan_National_Geodetic_Datum\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1058\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"5264\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",90.5],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, "r\",1],PARAMETER[\"false_easting\",250000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",-2500000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"5307\"]]"); p = add_epsg_def (filter, first, last, 5308, "epsg", 5308, "DRUKREF 03 / Tsirang TM"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=90.16666666666667 +k=1 +x_0="); add_proj4text (p, 1, "250000 +y_0=-2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DRUKREF 03 / Tsirang TM\",GEOGCS[\"DRUKREF 03\""); add_srs_wkt (p, 1, ",DATUM[\"Bhutan_National_Geodetic_Datum\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1058\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"5264\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",90.16666666666667],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",1],PARAMETER[\"false_easting\",250000],"); add_srs_wkt (p, 10, "PARAMETER[\"false_northing\",-2500000],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI"); add_srs_wkt (p, 12, "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5308\"]]"); p = add_epsg_def (filter, first, last, 5309, "epsg", 5309, "DRUKREF 03 / Wangdue Phodrang TM"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=90.11666666666666 +k=1 +x_0="); add_proj4text (p, 1, "250000 +y_0=-2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DRUKREF 03 / Wangdue Phodrang TM\",GEOGCS[\"DRU"); add_srs_wkt (p, 1, "KREF 03\",DATUM[\"Bhutan_National_Geodetic_Datum\",SPHER"); add_srs_wkt (p, 2, "OID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "1058\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"5264\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",90.11666666666666],PA"); add_srs_wkt (p, 9, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 10, "250000],PARAMETER[\"false_northing\",-2500000],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5309\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def (filter, first, last, 5310, "epsg", 5310, "DRUKREF 03 / Yangtse TM"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=91.56666666666666 +k=1 +x_0="); add_proj4text (p, 1, "250000 +y_0=-2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DRUKREF 03 / Yangtse TM\",GEOGCS[\"DRUKREF 03\""); add_srs_wkt (p, 1, ",DATUM[\"Bhutan_National_Geodetic_Datum\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1058\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"5264\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",91.56666666666666],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",1],PARAMETER[\"false_easting\",250000],"); add_srs_wkt (p, 10, "PARAMETER[\"false_northing\",-2500000],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI"); add_srs_wkt (p, 12, "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5310\"]]"); p = add_epsg_def (filter, first, last, 5311, "epsg", 5311, "DRUKREF 03 / Zhemgang TM"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=90.86666666666666 +k=1 +x_0="); add_proj4text (p, 1, "250000 +y_0=-2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DRUKREF 03 / Zhemgang TM\",GEOGCS[\"DRUKREF 03\""); add_srs_wkt (p, 1, ",DATUM[\"Bhutan_National_Geodetic_Datum\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1058\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"5264\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",90.86666666666666],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",1],PARAMETER[\"false_easting\",250000],"); add_srs_wkt (p, 10, "PARAMETER[\"false_northing\",-2500000],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI"); add_srs_wkt (p, 12, "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5311\"]]"); p = add_epsg_def (filter, first, last, 5316, "epsg", 5316, "ETRS89 / Faroe TM"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-7 +k=0.999997 +x_0=200000 +"); add_proj4text (p, 1, "y_0=-6000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / Faroe TM\",GEOGCS[\"ETRS89\",DATUM[\"E"); add_srs_wkt (p, 1, "uropean_Terrestrial_Reference_System_1989\",SPHEROID[\"G"); add_srs_wkt (p, 2, "RS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"701"); add_srs_wkt (p, 3, "9\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, "ARAMETER[\"central_meridian\",-7],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",0.999997],PARAMETER[\"false_easting\",200000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",-6000000],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); add_srs_wkt (p, 12, "orthing\",NORTH],AUTHORITY[\"EPSG\",\"5316\"]]"); p = add_epsg_def (filter, first, last, 5320, "epsg", 5320, "NAD83 / Teranet Ontario Lambert"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.5 +lat_2=54.5 +lat_0=0 +lon_0=-84 +x"); add_proj4text (p, 1, "_0=1000000 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Teranet Ontario Lambert\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_"); add_srs_wkt (p, 7, "Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 8, ",44.5],PARAMETER[\"standard_parallel_2\",54.5],PARAMETER"); add_srs_wkt (p, 9, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 10, ",-84],PARAMETER[\"false_easting\",1000000],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"5320\"]]"); p = add_epsg_def (filter, first, last, 5321, "epsg", 5321, "NAD83(CSRS) / Teranet Ontario Lambert"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.5 +lat_2=54.5 +lat_0=0 +lon_0=-84 +x"); add_proj4text (p, 1, "_0=1000000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / Teranet Ontario Lambert\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference"); add_srs_wkt (p, 2, "_System\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMET"); add_srs_wkt (p, 8, "ER[\"standard_parallel_1\",44.5],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_2\",54.5],PARAMETER[\"latitude_of_origin\",0],PAR"); add_srs_wkt (p, 10, "AMETER[\"central_meridian\",-84],PARAMETER[\"false_easti"); add_srs_wkt (p, 11, "ng\",1000000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 13, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"5321\"]]"); p = add_epsg_def (filter, first, last, 5324, "epsg", 5324, "ISN2004"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"ISN2004\",DATUM[\"Islands_Net_2004\",SPHEROID[\""); add_srs_wkt (p, 1, "GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 2, "19\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1060\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"5324\"]]"); p = add_epsg_def (filter, first, last, 5325, "epsg", 5325, "ISN2004 / Lambert 2004"); add_proj4text (p, 0, "+proj=lcc +lat_1=64.25 +lat_2=65.75 +lat_0=65 +lon_0=-19"); add_proj4text (p, 1, " +x_0=1700000 +y_0=300000 +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ISN2004 / Lambert 2004\",GEOGCS[\"ISN2004\",DAT"); add_srs_wkt (p, 1, "UM[\"Islands_Net_2004\",SPHEROID[\"GRS 1980\",6378137,29"); add_srs_wkt (p, 2, "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,"); add_srs_wkt (p, 3, "0,0,0,0],AUTHORITY[\"EPSG\",\"1060\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 4, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 5, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"5324\"]],PROJECTION[\"Lambert_Conformal_Conic_2"); add_srs_wkt (p, 7, "SP\"],PARAMETER[\"standard_parallel_1\",64.25],PARAMETER"); add_srs_wkt (p, 8, "[\"standard_parallel_2\",65.75],PARAMETER[\"latitude_of_"); add_srs_wkt (p, 9, "origin\",65],PARAMETER[\"central_meridian\",-19],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",1700000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, "\",300000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 12, "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"5325\"]]"); p = add_epsg_def (filter, first, last, 5329, "epsg", 5329, "Segara (Jakarta) / NEIEZ"); add_proj4text (p, 0, "+proj=merc +lon_0=3.192280555555556 +k=0.997 +x_0=390000"); add_proj4text (p, 1, "0 +y_0=900000 +ellps=bessel +towgs84=-403,684,41,0,0,0,0"); add_proj4text (p, 2, " +pm=jakarta +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Segara (Jakarta) / NEIEZ\",GEOGCS[\"Segara (Jak"); add_srs_wkt (p, 1, "arta)\",DATUM[\"Gunung_Segara_Jakarta\",SPHEROID[\"Besse"); add_srs_wkt (p, 2, "l 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "04\"]],TOWGS84[-403,684,41,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6820\"]],PRIMEM[\"Jakarta\",106.8077194444444,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8908\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4820\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Mercator_1SP\"],PARAMETER[\"central_meri"); add_srs_wkt (p, 8, "dian\",3.192280555555556],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 9, "97],PARAMETER[\"false_easting\",3900000],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_northing\",900000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, ",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"5329\"]]"); p = add_epsg_def (filter, first, last, 5330, "epsg", 5330, "Batavia (Jakarta) / NEIEZ"); add_proj4text (p, 0, "+proj=merc +lon_0=3.192280555555556 +k=0.997 +x_0=390000"); add_proj4text (p, 1, "0 +y_0=900000 +ellps=bessel +towgs84=-377,681,-50,0,0,0,"); add_proj4text (p, 2, "0 +pm=jakarta +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Batavia (Jakarta) / NEIEZ\",GEOGCS[\"Batavia (J"); add_srs_wkt (p, 1, "akarta)\",DATUM[\"Batavia_Jakarta\",SPHEROID[\"Bessel 18"); add_srs_wkt (p, 2, "41\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\""); add_srs_wkt (p, 3, "]],TOWGS84[-377,681,-50,0,0,0,0],AUTHORITY[\"EPSG\",\"68"); add_srs_wkt (p, 4, "13\"]],PRIMEM[\"Jakarta\",106.8077194444444,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8908\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4813\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Mercator_1SP\"],PARAMETER[\"central_meridi"); add_srs_wkt (p, 8, "an\",3.192280555555556],PARAMETER[\"scale_factor\",0.997"); add_srs_wkt (p, 9, "],PARAMETER[\"false_easting\",3900000],PARAMETER[\"false"); add_srs_wkt (p, 10, "_northing\",900000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"5330\"]]"); p = add_epsg_def (filter, first, last, 5331, "epsg", 5331, "Makassar (Jakarta) / NEIEZ"); add_proj4text (p, 0, "+proj=merc +lon_0=3.192280555555556 +k=0.997 +x_0=390000"); add_proj4text (p, 1, "0 +y_0=900000 +ellps=bessel +towgs84=-587.8,519.75,145.7"); add_proj4text (p, 2, "6,0,0,0,0 +pm=jakarta +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Makassar (Jakarta) / NEIEZ\",GEOGCS[\"Makassar "); add_srs_wkt (p, 1, "(Jakarta)\",DATUM[\"Makassar_Jakarta\",SPHEROID[\"Bessel"); add_srs_wkt (p, 2, " 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"700"); add_srs_wkt (p, 3, "4\"]],TOWGS84[-587.8,519.75,145.76,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6804\"]],PRIMEM[\"Jakarta\",106.8077194444444,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8908\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4804\"]],PROJECTION[\"Mercator_1SP\"],PARAMETER[\"cen"); add_srs_wkt (p, 8, "tral_meridian\",3.192280555555556],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, "tor\",0.997],PARAMETER[\"false_easting\",3900000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",900000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"5331\"]]"); p = add_epsg_def (filter, first, last, 5337, "epsg", 5337, "Aratu / UTM zone 25S"); add_proj4text (p, 0, "+proj=utm +zone=25 +south +ellps=intl +towgs84=-151.99,2"); add_proj4text (p, 1, "87.04,-147.45,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Aratu / UTM zone 25S\",GEOGCS[\"Aratu\",DATUM[\""); add_srs_wkt (p, 1, "Aratu\",SPHEROID[\"International 1924\",6378388,297,AUTH"); add_srs_wkt (p, 2, "ORITY[\"EPSG\",\"7022\"]],TOWGS84[-151.99,287.04,-147.45"); add_srs_wkt (p, 3, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6208\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"4208\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 7, "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); add_srs_wkt (p, 8, "meridian\",-33],PARAMETER[\"scale_factor\",0.9996],PARAM"); add_srs_wkt (p, 9, "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 10, "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 11, "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"5337\"]]"); p = add_epsg_def (filter, first, last, 5340, "epsg", 5340, "POSGAR 2007"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"POSGAR 2007\",DATUM[\"Posiciones_Geodesicas_Arg"); add_srs_wkt (p, 1, "entinas_2007\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 2, "01,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"1062\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 5, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "5340\"]]"); p = add_epsg_def (filter, first, last, 5343, "epsg", 5343, "POSGAR 2007 / Argentina 1"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-72 +k=1 +x_0=1500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"POSGAR 2007 / Argentina 1\",GEOGCS[\"POSGAR 200"); add_srs_wkt (p, 1, "7\",DATUM[\"Posiciones_Geodesicas_Argentinas_2007\",SPHE"); add_srs_wkt (p, 2, "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"1062\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5340\"]],PROJECTIO"); add_srs_wkt (p, 7, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 8, "n\",-90],PARAMETER[\"central_meridian\",-72],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",1],PARAMETER[\"false_easting\",1500000],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"5343\"]]"); p = add_epsg_def (filter, first, last, 5344, "epsg", 5344, "POSGAR 2007 / Argentina 2"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-69 +k=1 +x_0=2500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"POSGAR 2007 / Argentina 2\",GEOGCS[\"POSGAR 200"); add_srs_wkt (p, 1, "7\",DATUM[\"Posiciones_Geodesicas_Argentinas_2007\",SPHE"); add_srs_wkt (p, 2, "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"1062\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5340\"]],PROJECTIO"); add_srs_wkt (p, 7, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 8, "n\",-90],PARAMETER[\"central_meridian\",-69],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",1],PARAMETER[\"false_easting\",2500000],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"5344\"]]"); p = add_epsg_def (filter, first, last, 5345, "epsg", 5345, "POSGAR 2007 / Argentina 3"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-66 +k=1 +x_0=3500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"POSGAR 2007 / Argentina 3\",GEOGCS[\"POSGAR 200"); add_srs_wkt (p, 1, "7\",DATUM[\"Posiciones_Geodesicas_Argentinas_2007\",SPHE"); add_srs_wkt (p, 2, "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"1062\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5340\"]],PROJECTIO"); add_srs_wkt (p, 7, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 8, "n\",-90],PARAMETER[\"central_meridian\",-66],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",1],PARAMETER[\"false_easting\",3500000],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"5345\"]]"); p = add_epsg_def (filter, first, last, 5346, "epsg", 5346, "POSGAR 2007 / Argentina 4"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-63 +k=1 +x_0=4500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"POSGAR 2007 / Argentina 4\",GEOGCS[\"POSGAR 200"); add_srs_wkt (p, 1, "7\",DATUM[\"Posiciones_Geodesicas_Argentinas_2007\",SPHE"); add_srs_wkt (p, 2, "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"1062\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5340\"]],PROJECTIO"); add_srs_wkt (p, 7, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 8, "n\",-90],PARAMETER[\"central_meridian\",-63],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",1],PARAMETER[\"false_easting\",4500000],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"5346\"]]"); p = add_epsg_def (filter, first, last, 5347, "epsg", 5347, "POSGAR 2007 / Argentina 5"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-60 +k=1 +x_0=5500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"POSGAR 2007 / Argentina 5\",GEOGCS[\"POSGAR 200"); add_srs_wkt (p, 1, "7\",DATUM[\"Posiciones_Geodesicas_Argentinas_2007\",SPHE"); add_srs_wkt (p, 2, "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"1062\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5340\"]],PROJECTIO"); add_srs_wkt (p, 7, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 8, "n\",-90],PARAMETER[\"central_meridian\",-60],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",1],PARAMETER[\"false_easting\",5500000],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"5347\"]]"); p = add_epsg_def (filter, first, last, 5348, "epsg", 5348, "POSGAR 2007 / Argentina 6"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-57 +k=1 +x_0=6500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"POSGAR 2007 / Argentina 6\",GEOGCS[\"POSGAR 200"); add_srs_wkt (p, 1, "7\",DATUM[\"Posiciones_Geodesicas_Argentinas_2007\",SPHE"); add_srs_wkt (p, 2, "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"1062\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5340\"]],PROJECTIO"); add_srs_wkt (p, 7, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 8, "n\",-90],PARAMETER[\"central_meridian\",-57],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",1],PARAMETER[\"false_easting\",6500000],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"5348\"]]"); p = add_epsg_def (filter, first, last, 5349, "epsg", 5349, "POSGAR 2007 / Argentina 7"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-54 +k=1 +x_0=7500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"POSGAR 2007 / Argentina 7\",GEOGCS[\"POSGAR 200"); add_srs_wkt (p, 1, "7\",DATUM[\"Posiciones_Geodesicas_Argentinas_2007\",SPHE"); add_srs_wkt (p, 2, "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"1062\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5340\"]],PROJECTIO"); add_srs_wkt (p, 7, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 8, "n\",-90],PARAMETER[\"central_meridian\",-54],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",1],PARAMETER[\"false_easting\",7500000],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"5349\"]]"); p = add_epsg_def (filter, first, last, 5354, "epsg", 5354, "MARGEN"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"MARGEN\",DATUM[\"Marco_Geodesico_Nacional\",SPH"); add_srs_wkt (p, 1, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 2, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"1063\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5354\"]]"); p = add_epsg_def (filter, first, last, 5355, "epsg", 5355, "MARGEN / UTM zone 20S"); add_proj4text (p, 0, "+proj=utm +zone=20 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MARGEN / UTM zone 20S\",GEOGCS[\"MARGEN\",DATUM"); add_srs_wkt (p, 1, "[\"Marco_Geodesico_Nacional\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1063\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"5354\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 8, "ral_meridian\",-63],PARAMETER[\"scale_factor\",0.9996],P"); add_srs_wkt (p, 9, "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 10, "thing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"5355\"]]"); p = add_epsg_def (filter, first, last, 5356, "epsg", 5356, "MARGEN / UTM zone 19S"); add_proj4text (p, 0, "+proj=utm +zone=19 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MARGEN / UTM zone 19S\",GEOGCS[\"MARGEN\",DATUM"); add_srs_wkt (p, 1, "[\"Marco_Geodesico_Nacional\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1063\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"5354\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 8, "ral_meridian\",-69],PARAMETER[\"scale_factor\",0.9996],P"); add_srs_wkt (p, 9, "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 10, "thing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"5356\"]]"); p = add_epsg_def (filter, first, last, 5357, "epsg", 5357, "MARGEN / UTM zone 21S"); add_proj4text (p, 0, "+proj=utm +zone=21 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MARGEN / UTM zone 21S\",GEOGCS[\"MARGEN\",DATUM"); add_srs_wkt (p, 1, "[\"Marco_Geodesico_Nacional\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1063\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"5354\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 8, "ral_meridian\",-57],PARAMETER[\"scale_factor\",0.9996],P"); add_srs_wkt (p, 9, "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 10, "thing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"5357\"]]"); p = add_epsg_def (filter, first, last, 5360, "epsg", 5360, "SIRGAS-Chile"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"SIRGAS-Chile\",DATUM[\"SIRGAS_Chile\",SPHEROID["); add_srs_wkt (p, 1, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 2, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"106"); add_srs_wkt (p, 3, "4\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 4, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"9122\"]],AUTHORITY[\"EPSG\",\"5360\"]]"); p = add_epsg_def (filter, first, last, 5361, "epsg", 5361, "SIRGAS-Chile / UTM zone 19S"); add_proj4text (p, 0, "+proj=utm +zone=19 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS-Chile / UTM zone 19S\",GEOGCS[\"SIRGAS-C"); add_srs_wkt (p, 1, "hile\",DATUM[\"SIRGAS_Chile\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1064\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"5360\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 8, "ral_meridian\",-69],PARAMETER[\"scale_factor\",0.9996],P"); add_srs_wkt (p, 9, "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 10, "thing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"5361\"]]"); p = add_epsg_def (filter, first, last, 5362, "epsg", 5362, "SIRGAS-Chile / UTM zone 18S"); add_proj4text (p, 0, "+proj=utm +zone=18 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS-Chile / UTM zone 18S\",GEOGCS[\"SIRGAS-C"); add_srs_wkt (p, 1, "hile\",DATUM[\"SIRGAS_Chile\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1064\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"5360\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 8, "ral_meridian\",-75],PARAMETER[\"scale_factor\",0.9996],P"); add_srs_wkt (p, 9, "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 10, "thing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"5362\"]]"); p = add_epsg_def (filter, first, last, 5365, "epsg", 5365, "CR05"); add_proj4text (p, 0, "+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"CR05\",DATUM[\"Costa_Rica_2005\",SPHEROID[\"WGS"); add_srs_wkt (p, 1, " 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]"); add_srs_wkt (p, 2, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1065\"]],P"); add_srs_wkt (p, 3, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 4, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 5, "\"]],AUTHORITY[\"EPSG\",\"5365\"]]"); p = add_epsg_def (filter, first, last, 5367, "epsg", 5367, "CR05 / CRTM05"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-84 +k=0.9999 +x_0=500000 +y"); add_proj4text (p, 1, "_0=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"CR05 / CRTM05\",GEOGCS[\"CR05\",DATUM[\"Costa_R"); add_srs_wkt (p, 1, "ica_2005\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"1065\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5365\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-84],P"); add_srs_wkt (p, 8, "ARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_east"); add_srs_wkt (p, 9, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 10, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",N"); add_srs_wkt (p, 11, "ORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"5367\""); add_srs_wkt (p, 12, "]]"); p = add_epsg_def (filter, first, last, 5371, "epsg", 5371, "MACARIO SOLIS"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"MACARIO SOLIS\",DATUM[\"Sistema_Geodesico_Nacio"); add_srs_wkt (p, 1, "nal_de_Panama_MACARIO_SOLIS\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1066\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"5371\"]]"); p = add_epsg_def (filter, first, last, 5373, "epsg", 5373, "Peru96"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"Peru96\",DATUM[\"Peru96\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 1, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 2, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1067\"]],PRIMEM"); add_srs_wkt (p, 3, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 4, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"5373\"]]"); p = add_epsg_def (filter, first, last, 5381, "epsg", 5381, "SIRGAS-ROU98"); add_proj4text (p, 0, "+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"SIRGAS-ROU98\",DATUM[\"SIRGAS_ROU98\",SPHEROID["); add_srs_wkt (p, 1, "\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 2, "30\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1068\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"5381\"]]"); p = add_epsg_def (filter, first, last, 5382, "epsg", 5382, "SIRGAS-ROU98 / UTM zone 21S"); add_proj4text (p, 0, "+proj=utm +zone=21 +south +ellps=WGS84 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS-ROU98 / UTM zone 21S\",GEOGCS[\"SIRGAS-R"); add_srs_wkt (p, 1, "OU98\",DATUM[\"SIRGAS_ROU98\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1068\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"5381\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-57],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 11, "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"5382\"]]"); p = add_epsg_def (filter, first, last, 5383, "epsg", 5383, "SIRGAS-ROU98 / UTM zone 22S"); add_proj4text (p, 0, "+proj=utm +zone=22 +south +ellps=WGS84 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS-ROU98 / UTM zone 22S\",GEOGCS[\"SIRGAS-R"); add_srs_wkt (p, 1, "OU98\",DATUM[\"SIRGAS_ROU98\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1068\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"5381\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-51],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 11, "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"5383\"]]"); p = add_epsg_def (filter, first, last, 5387, "epsg", 5387, "Peru96 / UTM zone 18S"); add_proj4text (p, 0, "+proj=utm +zone=18 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Peru96 / UTM zone 18S\",GEOGCS[\"Peru96\",DATUM"); add_srs_wkt (p, 1, "[\"Peru96\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"1067\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 5, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"53"); add_srs_wkt (p, 6, "73\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 7, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",-7"); add_srs_wkt (p, 8, "5],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 9, "easting\",500000],PARAMETER[\"false_northing\",10000000]"); add_srs_wkt (p, 10, ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E"); add_srs_wkt (p, 11, "asting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"5387\"]]"); p = add_epsg_def (filter, first, last, 5388, "epsg", 5388, "Peru96 / UTM zone 17S"); add_proj4text (p, 0, "+proj=utm +zone=17 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Peru96 / UTM zone 17S\",GEOGCS[\"Peru96\",DATUM"); add_srs_wkt (p, 1, "[\"Peru96\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"1067\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 5, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"53"); add_srs_wkt (p, 6, "73\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 7, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",-8"); add_srs_wkt (p, 8, "1],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 9, "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 10, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 11, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"538"); add_srs_wkt (p, 12, "8\"]]"); p = add_epsg_def (filter, first, last, 5389, "epsg", 5389, "Peru96 / UTM zone 19S"); add_proj4text (p, 0, "+proj=utm +zone=19 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Peru96 / UTM zone 19S\",GEOGCS[\"Peru96\",DATUM"); add_srs_wkt (p, 1, "[\"Peru96\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"1067\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 5, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"53"); add_srs_wkt (p, 6, "73\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 7, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",-6"); add_srs_wkt (p, 8, "9],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 9, "easting\",500000],PARAMETER[\"false_northing\",10000000]"); add_srs_wkt (p, 10, ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E"); add_srs_wkt (p, 11, "asting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"5389\"]]"); p = add_epsg_def (filter, first, last, 5393, "epsg", 5393, "SIRGAS_ES2007.8"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"SIRGAS_ES2007.8\",DATUM[\"SIRGAS_ES2007_8\",SPH"); add_srs_wkt (p, 1, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 2, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"1069\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5393\"]]"); p = add_epsg_def (filter, first, last, 5396, "epsg", 5396, "SIRGAS 2000 / UTM zone 26S"); add_proj4text (p, 0, "+proj=utm +zone=26 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 2000 / UTM zone 26S\",GEOGCS[\"SIRGAS 20"); add_srs_wkt (p, 1, "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); add_srs_wkt (p, 2, "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",-27],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",500000],PARAMETER[\"false_northing\",100000"); add_srs_wkt (p, 11, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"5396\"]]"); p = add_epsg_def (filter, first, last, 5451, "epsg", 5451, "Ocotepeque 1935"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk66 +towgs84=213.11,9.37,-74.95,"); add_proj4text (p, 1, "0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Ocotepeque 1935\",DATUM[\"Ocotepeque_1935\",SPH"); add_srs_wkt (p, 1, "EROID[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHOR"); add_srs_wkt (p, 2, "ITY[\"EPSG\",\"7008\"]],TOWGS84[213.11,9.37,-74.95,0,0,0"); add_srs_wkt (p, 3, ",0],AUTHORITY[\"EPSG\",\"1070\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 5, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"5451\"]]"); p = add_epsg_def (filter, first, last, 5456, "epsg", 5456, "Ocotepeque 1935 / Costa Rica Norte"); add_proj4text (p, 0, "+proj=lcc +lat_1=10.46666666666667 +lat_0=10.46666666666"); add_proj4text (p, 1, "667 +lon_0=-84.33333333333333 +k_0=0.99995696 +x_0=50000"); add_proj4text (p, 2, "0 +y_0=271820.522 +ellps=clrk66 +towgs84=213.11,9.37,-74"); add_proj4text (p, 3, ".95,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Ocotepeque 1935 / Costa Rica Norte\",GEOGCS[\"O"); add_srs_wkt (p, 1, "cotepeque 1935\",DATUM[\"Ocotepeque_1935\",SPHEROID[\"Cl"); add_srs_wkt (p, 2, "arke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7008\"]],TOWGS84[213.11,9.37,-74.95,0,0,0,0],AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"1070\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5451\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",10.46666666666667],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",-84.33333333333333],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.99995696],PARAMETER[\"false_easting\",500000]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_northing\",271820.522],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Y\",NORTH],AUTHORITY[\"EPSG\",\"5456\"]]"); p = add_epsg_def (filter, first, last, 5457, "epsg", 5457, "Ocotepeque 1935 / Costa Rica Sur"); add_proj4text (p, 0, "+proj=lcc +lat_1=9 +lat_0=9 +lon_0=-83.66666666666667 +k"); add_proj4text (p, 1, "_0=0.99995696 +x_0=500000 +y_0=327987.436 +ellps=clrk66 "); add_proj4text (p, 2, "+towgs84=213.11,9.37,-74.95,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Ocotepeque 1935 / Costa Rica Sur\",GEOGCS[\"Oco"); add_srs_wkt (p, 1, "tepeque 1935\",DATUM[\"Ocotepeque_1935\",SPHEROID[\"Clar"); add_srs_wkt (p, 2, "ke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],TOWGS84[213.11,9.37,-74.95,0,0,0,0],AUTHORIT"); add_srs_wkt (p, 4, "Y[\"EPSG\",\"1070\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5451\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",9],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "83.66666666666667],PARAMETER[\"scale_factor\",0.99995696"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",327987.436],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"5457\"]]"); p = add_epsg_def (filter, first, last, 5458, "epsg", 5458, "Ocotepeque 1935 / Guatemala Norte (deprecated)"); add_proj4text (p, 0, "+proj=lcc +lat_1=16.81666666666667 +lat_0=16.81666666666"); add_proj4text (p, 1, "667 +lon_0=-90.33333333333333 +k_0=0.99992226 +x_0=50000"); add_proj4text (p, 2, "0 +y_0=292209.579 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Ocotepeque 1935 / Guatemala Norte (deprecated)\""); add_srs_wkt (p, 1, ",GEOGCS[\"NAD27\",DATUM[\"North_American_Datum_1927\",SP"); add_srs_wkt (p, 2, "HEROID[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHO"); add_srs_wkt (p, 3, "RITY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AUTHORITY[\"EPSG\",\"4267\"]],PROJECTION[\"Lambert_"); add_srs_wkt (p, 7, "Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, "16.81666666666667],PARAMETER[\"central_meridian\",-90.33"); add_srs_wkt (p, 9, "333333333333],PARAMETER[\"scale_factor\",0.99992226],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 11, "ing\",292209.579],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"5458\"]]"); p = add_epsg_def (filter, first, last, 5459, "epsg", 5459, "Ocotepeque 1935 / Guatemala Sur"); add_proj4text (p, 0, "+proj=lcc +lat_1=14.9 +lat_0=14.9 +lon_0=-90.33333333333"); add_proj4text (p, 1, "333 +k_0=0.99989906 +x_0=500000 +y_0=325992.681 +ellps=c"); add_proj4text (p, 2, "lrk66 +towgs84=213.11,9.37,-74.95,0,0,0,0 +units=m +no_d"); add_proj4text (p, 3, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Ocotepeque 1935 / Guatemala Sur\",GEOGCS[\"Ocot"); add_srs_wkt (p, 1, "epeque 1935\",DATUM[\"Ocotepeque_1935\",SPHEROID[\"Clark"); add_srs_wkt (p, 2, "e 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7008\"]],TOWGS84[213.11,9.37,-74.95,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"1070\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5451\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",14.9],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",-90.33333333333333],PARAMETER[\"scale_factor\",0.999899"); add_srs_wkt (p, 10, "06],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",325992.681],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"5459\"]]"); p = add_epsg_def (filter, first, last, 5460, "epsg", 5460, "Ocotepeque 1935 / El Salvador Lambert"); add_proj4text (p, 0, "+proj=lcc +lat_1=13.78333333333333 +lat_0=13.78333333333"); add_proj4text (p, 1, "333 +lon_0=-89 +k_0=0.99996704 +x_0=500000 +y_0=295809.1"); add_proj4text (p, 2, "84 +ellps=clrk66 +towgs84=213.11,9.37,-74.95,0,0,0,0 +un"); add_proj4text (p, 3, "its=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Ocotepeque 1935 / El Salvador Lambert\",GEOGCS["); add_srs_wkt (p, 1, "\"Ocotepeque 1935\",DATUM[\"Ocotepeque_1935\",SPHEROID[\""); add_srs_wkt (p, 2, "Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7008\"]],TOWGS84[213.11,9.37,-74.95,0,0,0,0],AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"1070\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"545"); add_srs_wkt (p, 7, "1\"]],PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAME"); add_srs_wkt (p, 8, "TER[\"latitude_of_origin\",13.78333333333333],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",-89],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 10, "9996704],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",295809.184],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"5460\"]]"); p = add_epsg_def (filter, first, last, 5461, "epsg", 5461, "Ocotepeque 1935 / Nicaragua Norte"); add_proj4text (p, 0, "+proj=lcc +lat_1=13.86666666666667 +lat_0=13.86666666666"); add_proj4text (p, 1, "667 +lon_0=-85.5 +k_0=0.99990314 +x_0=500000 +y_0=359891"); add_proj4text (p, 2, ".816 +ellps=clrk66 +towgs84=213.11,9.37,-74.95,0,0,0,0 +"); add_proj4text (p, 3, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Ocotepeque 1935 / Nicaragua Norte\",GEOGCS[\"Oc"); add_srs_wkt (p, 1, "otepeque 1935\",DATUM[\"Ocotepeque_1935\",SPHEROID[\"Cla"); add_srs_wkt (p, 2, "rke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],TOWGS84[213.11,9.37,-74.95,0,0,0,0],AUTHORIT"); add_srs_wkt (p, 4, "Y[\"EPSG\",\"1070\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5451\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",13.86666666666667],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",-85.5],PARAMETER[\"scale_factor\",0.99990"); add_srs_wkt (p, 10, "314],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_northing\",359891.816],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 13, "ORITY[\"EPSG\",\"5461\"]]"); p = add_epsg_def (filter, first, last, 5462, "epsg", 5462, "Ocotepeque 1935 / Nicaragua Sur"); add_proj4text (p, 0, "+proj=lcc +lat_1=11.73333333333333 +lat_0=11.73333333333"); add_proj4text (p, 1, "333 +lon_0=-85.5 +k_0=0.9999222800000001 +x_0=500000 +y_"); add_proj4text (p, 2, "0=288876.327 +ellps=clrk66 +towgs84=213.11,9.37,-74.95,0"); add_proj4text (p, 3, ",0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Ocotepeque 1935 / Nicaragua Sur\",GEOGCS[\"Ocot"); add_srs_wkt (p, 1, "epeque 1935\",DATUM[\"Ocotepeque_1935\",SPHEROID[\"Clark"); add_srs_wkt (p, 2, "e 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7008\"]],TOWGS84[213.11,9.37,-74.95,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"1070\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5451\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",11.73333333333333],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",-85.5],PARAMETER[\"scale_factor\",0.99992"); add_srs_wkt (p, 10, "228],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_northing\",288876.327],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 13, "ORITY[\"EPSG\",\"5462\"]]"); p = add_epsg_def (filter, first, last, 5463, "epsg", 5463, "SAD69 / UTM zone 17N"); add_proj4text (p, 0, "+proj=utm +zone=17 +ellps=aust_SA +towgs84=-57,1,-41,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 17N\",GEOGCS[\"SAD69\",DATUM[\""); add_srs_wkt (p, 1, "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); add_srs_wkt (p, 2, "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); add_srs_wkt (p, 3, "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 7, "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, "central_meridian\",-81],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 9, "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 10, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 11, "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"5463\"]]"); p = add_epsg_def (filter, first, last, 5464, "epsg", 5464, "Sibun Gorge 1922"); add_proj4text (p, 0, "+proj=longlat +a=6378293.645208759 +b=6356617.987679838 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Sibun Gorge 1922\",DATUM[\"Sibun_Gorge_1922\",S"); add_srs_wkt (p, 1, "PHEROID[\"Clarke 1858\",6378293.645208759,294.2606763692"); add_srs_wkt (p, 2, "654,AUTHORITY[\"EPSG\",\"7007\"]],AUTHORITY[\"EPSG\",\"1"); add_srs_wkt (p, 3, "071\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"5464\"]]"); p = add_epsg_def (filter, first, last, 5466, "epsg", 5466, "Sibun Gorge 1922 / Colony Grid"); add_proj4text (p, 0, "+proj=tmerc +lat_0=17.06124194444444 +lon_0=-88.6318575 "); add_proj4text (p, 1, "+k=1 +x_0=66220.02833082761 +y_0=135779.5099885299 +a=63"); add_proj4text (p, 2, "78293.645208759 +b=6356617.987679838 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Sibun Gorge 1922 / Colony Grid\",GEOGCS[\"Sibun"); add_srs_wkt (p, 1, " Gorge 1922\",DATUM[\"Sibun_Gorge_1922\",SPHEROID[\"Clar"); add_srs_wkt (p, 2, "ke 1858\",6378293.645208759,294.2606763692654,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7007\"]],AUTHORITY[\"EPSG\",\"1071\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"5464\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, "rcator\"],PARAMETER[\"latitude_of_origin\",17.0612419444"); add_srs_wkt (p, 8, "4444],PARAMETER[\"central_meridian\",-88.6318575],PARAME"); add_srs_wkt (p, 9, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",6622"); add_srs_wkt (p, 10, "0.02833082761],PARAMETER[\"false_northing\",135779.50998"); add_srs_wkt (p, 11, "85299],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 12, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"54"); add_srs_wkt (p, 13, "66\"]]"); p = add_epsg_def (filter, first, last, 5467, "epsg", 5467, "Panama-Colon 1911"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk66 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Panama-Colon 1911\",DATUM[\"Panama_Colon_1911\""); add_srs_wkt (p, 1, ",SPHEROID[\"Clarke 1866\",6378206.4,294.9786982138982,AU"); add_srs_wkt (p, 2, "THORITY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"1072\"]"); add_srs_wkt (p, 3, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 4, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 5, "122\"]],AUTHORITY[\"EPSG\",\"5467\"]]"); p = add_epsg_def (filter, first, last, 5469, "epsg", 5469, "Panama-Colon 1911 / Panama Lambert"); add_proj4text (p, 0, "+proj=lcc +lat_1=8.416666666666666 +lat_0=8.416666666666"); add_proj4text (p, 1, "666 +lon_0=-80 +k_0=0.99989909 +x_0=500000 +y_0=294865.3"); add_proj4text (p, 2, "03 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Panama-Colon 1911 / Panama Lambert\",GEOGCS[\"P"); add_srs_wkt (p, 1, "anama-Colon 1911\",DATUM[\"Panama_Colon_1911\",SPHEROID["); add_srs_wkt (p, 2, "\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"1072\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"5467\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 7, "l_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",8.416666"); add_srs_wkt (p, 8, "666666666],PARAMETER[\"central_meridian\",-80],PARAMETER"); add_srs_wkt (p, 9, "[\"scale_factor\",0.99989909],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, ",500000],PARAMETER[\"false_northing\",294865.303],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"5469\"]]"); p = add_epsg_def (filter, first, last, 5472, "epsg", 5472, "Panama-Colon 1911 / Panama Polyconic"); add_proj4text (p, 0, "+proj=poly +lat_0=8.25 +lon_0=-81 +x_0=914391.7962 +y_0="); add_proj4text (p, 1, "999404.7217154861 +ellps=clrk66 +to_meter=0.9143917962 +"); add_proj4text (p, 2, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Panama-Colon 1911 / Panama Polyconic\",GEOGCS[\""); add_srs_wkt (p, 1, "Panama-Colon 1911\",DATUM[\"Panama_Colon_1911\",SPHEROID"); add_srs_wkt (p, 2, "[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"1072\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"5467\"]],PROJECTION[\"Polyconic\"],PAR"); add_srs_wkt (p, 7, "AMETER[\"latitude_of_origin\",8.25],PARAMETER[\"central_"); add_srs_wkt (p, 8, "meridian\",-81],PARAMETER[\"false_easting\",1000000],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_northing\",1092972.1],UNIT[\"Clarke's yar"); add_srs_wkt (p, 10, "d\",0.9143917962,AUTHORITY[\"EPSG\",\"9037\"]],AXIS[\"Ea"); add_srs_wkt (p, 11, "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"5472\"]]"); p = add_epsg_def (filter, first, last, 5479, "epsg", 5479, "RSRGD2000 / MSLC2000"); add_proj4text (p, 0, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.333333333"); add_proj4text (p, 1, "33333 +lat_0=-78 +lon_0=163 +x_0=7000000 +y_0=5000000 +e"); add_proj4text (p, 2, "llps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RSRGD2000 / MSLC2000\",GEOGCS[\"RSRGD2000\",DAT"); add_srs_wkt (p, 1, "UM[\"Ross_Sea_Region_Geodetic_Datum_2000\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6764\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4764\"]],PROJECTION[\"Lambe"); add_srs_wkt (p, 7, "rt_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 8, "1\",-76.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-79.33333333333333],PARAMETER[\"latitude_of_origin\",-7"); add_srs_wkt (p, 10, "8],PARAMETER[\"central_meridian\",163],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",7000000],PARAMETER[\"false_northing\",5000000"); add_srs_wkt (p, 12, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 13, "Northing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 14, "G\",\"5479\"]]"); p = add_epsg_def (filter, first, last, 5480, "epsg", 5480, "RSRGD2000 / BCLC2000"); add_proj4text (p, 0, "+proj=lcc +lat_1=-73.66666666666667 +lat_2=-75.333333333"); add_proj4text (p, 1, "33333 +lat_0=-74.5 +lon_0=165 +x_0=5000000 +y_0=3000000 "); add_proj4text (p, 2, "+ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RSRGD2000 / BCLC2000\",GEOGCS[\"RSRGD2000\",DAT"); add_srs_wkt (p, 1, "UM[\"Ross_Sea_Region_Geodetic_Datum_2000\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6764\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4764\"]],PROJECTION[\"Lambe"); add_srs_wkt (p, 7, "rt_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 8, "1\",-73.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-75.33333333333333],PARAMETER[\"latitude_of_origin\",-7"); add_srs_wkt (p, 10, "4.5],PARAMETER[\"central_meridian\",165],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_easting\",5000000],PARAMETER[\"false_northing\",30000"); add_srs_wkt (p, 12, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 13, "\"Northing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 14, "PSG\",\"5480\"]]"); p = add_epsg_def (filter, first, last, 5481, "epsg", 5481, "RSRGD2000 / PCLC2000"); add_proj4text (p, 0, "+proj=lcc +lat_1=-70.66666666666667 +lat_2=-72.333333333"); add_proj4text (p, 1, "33333 +lat_0=-71.5 +lon_0=166 +x_0=3000000 +y_0=1000000 "); add_proj4text (p, 2, "+ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RSRGD2000 / PCLC2000\",GEOGCS[\"RSRGD2000\",DAT"); add_srs_wkt (p, 1, "UM[\"Ross_Sea_Region_Geodetic_Datum_2000\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6764\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4764\"]],PROJECTION[\"Lambe"); add_srs_wkt (p, 7, "rt_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 8, "1\",-70.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-72.33333333333333],PARAMETER[\"latitude_of_origin\",-7"); add_srs_wkt (p, 10, "1.5],PARAMETER[\"central_meridian\",166],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_easting\",3000000],PARAMETER[\"false_northing\",10000"); add_srs_wkt (p, 12, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 13, "\"Northing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 14, "PSG\",\"5481\"]]"); p = add_epsg_def (filter, first, last, 5482, "epsg", 5482, "RSRGD2000 / RSPS2000"); add_proj4text (p, 0, "+proj=stere +lat_0=-90 +lat_ts=-90 +lon_0=180 +k=0.994 +"); add_proj4text (p, 1, "x_0=5000000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0"); add_proj4text (p, 2, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RSRGD2000 / RSPS2000\",GEOGCS[\"RSRGD2000\",DAT"); add_srs_wkt (p, 1, "UM[\"Ross_Sea_Region_Geodetic_Datum_2000\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6764\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4764\"]],PROJECTION[\"Polar"); add_srs_wkt (p, 7, "_Stereographic\"],PARAMETER[\"latitude_of_origin\",-90],"); add_srs_wkt (p, 8, "PARAMETER[\"central_meridian\",180],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",0.994],PARAMETER[\"false_easting\",5000000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 11, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "Easting\",EAST],AUTHORITY[\"EPSG\",\"5482\"]]"); p = add_epsg_def (filter, first, last, 5489, "epsg", 5489, "RGAF09"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"RGAF09\",DATUM[\"Reseau_Geodesique_des_Antilles"); add_srs_wkt (p, 1, "_Francaises_2009\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 2, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 3, ",0],AUTHORITY[\"EPSG\",\"1073\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 5, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"5489\"]]"); p = add_epsg_def (filter, first, last, 5490, "epsg", 5490, "RGAF09 / UTM zone 20N"); add_proj4text (p, 0, "+proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGAF09 / UTM zone 20N\",GEOGCS[\"RGAF09\",DATUM"); add_srs_wkt (p, 1, "[\"Reseau_Geodesique_des_Antilles_Francaises_2009\",SPHE"); add_srs_wkt (p, 2, "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"1073\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5489\"]],PROJECTIO"); add_srs_wkt (p, 7, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 8, "n\",0],PARAMETER[\"central_meridian\",-63],PARAMETER[\"s"); add_srs_wkt (p, 9, "cale_factor\",0.9996],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 10, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); add_srs_wkt (p, 12, "orthing\",NORTH],AUTHORITY[\"EPSG\",\"5490\"]]"); p = add_epsg_def (filter, first, last, 5513, "epsg", 5513, "S-JTSK / Krovak"); add_proj4text (p, 0, "+proj=krovak +lat_0=49.5 +lon_0=24.83333333333333 +alpha"); add_proj4text (p, 1, "=30.28813972222222 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel"); add_proj4text (p, 2, " +towgs84=589,76,480,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"S-JTSK / Krovak\",GEOGCS[\"S-JTSK\",DATUM[\"Sys"); add_srs_wkt (p, 1, "tem_Jednotne_Trigonometricke_Site_Katastralni\",SPHEROID"); add_srs_wkt (p, 2, "[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7004\"]],TOWGS84[589,76,480,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6156\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4156\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Krovak\"],PARAMETER[\"latitude_of_center\",49."); add_srs_wkt (p, 8, "5],PARAMETER[\"longitude_of_center\",24.83333333333333],"); add_srs_wkt (p, 9, "PARAMETER[\"azimuth\",30.28813972222222],PARAMETER[\"pse"); add_srs_wkt (p, 10, "udo_standard_parallel_1\",78.5],PARAMETER[\"scale_factor"); add_srs_wkt (p, 11, "\",0.9999],PARAMETER[\"false_easting\",0],PARAMETER[\"fa"); add_srs_wkt (p, 12, "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "9001\"]],AXIS[\"X\",SOUTH],AXIS[\"Y\",WEST],AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"5513\"]]"); p = add_epsg_def (filter, first, last, 5518, "epsg", 5518, "CI1971 / Chatham Islands Map Grid"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-44 +lon_0=-176.5 +k=1 +x_0=350000 +y"); add_proj4text (p, 1, "_0=650000 +ellps=intl +towgs84=175,-38,113,0,0,0,0 +unit"); add_proj4text (p, 2, "s=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CI1971 / Chatham Islands Map Grid\",GEOGCS[\"Ch"); add_srs_wkt (p, 1, "atham Islands 1971\",DATUM[\"Chatham_Islands_Datum_1971\""); add_srs_wkt (p, 2, ",SPHEROID[\"International 1924\",6378388,297,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7022\"]],TOWGS84[175,-38,113,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6672\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4672\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",-44],PARAMETER[\"central_meridian\",-176.5"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",350000],PARAMETER[\"false_northing\",650000],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"5518"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def (filter, first, last, 5519, "epsg", 5519, "CI1979 / Chatham Islands Map Grid"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-44 +lon_0=-176.5 +k=1 +x_0=350000 +y"); add_proj4text (p, 1, "_0=650000 +ellps=intl +towgs84=174.05,-25.49,112.57,-0,-"); add_proj4text (p, 2, "0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CI1979 / Chatham Islands Map Grid\",GEOGCS[\"Ch"); add_srs_wkt (p, 1, "atham Islands 1979\",DATUM[\"Chatham_Islands_Datum_1979\""); add_srs_wkt (p, 2, ",SPHEROID[\"International 1924\",6378388,297,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7022\"]],TOWGS84[174.05,-25.49,112.57,-0,-0,0.5"); add_srs_wkt (p, 4, "54,0.2263],AUTHORITY[\"EPSG\",\"6673\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 5, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 6, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4673\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",-44],PARAMETER[\"centr"); add_srs_wkt (p, 9, "al_meridian\",-176.5],PARAMETER[\"scale_factor\",1],PARA"); add_srs_wkt (p, 10, "METER[\"false_easting\",350000],PARAMETER[\"false_northi"); add_srs_wkt (p, 11, "ng\",650000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"5519\"]]"); p = add_epsg_def (filter, first, last, 5520, "epsg", 5520, "DHDN / 3-degree Gauss-Kruger zone 1"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=3 +k=1 +x_0=1500000 +y_0=0 +"); add_proj4text (p, 1, "datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / 3-degree Gauss-Kruger zone 1\",GEOGCS[\""); add_srs_wkt (p, 1, "DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\""); add_srs_wkt (p, 2, "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,"); add_srs_wkt (p, 4, "6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, "G\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 9, "ian\",3],PARAMETER[\"scale_factor\",1],PARAMETER[\"false"); add_srs_wkt (p, 10, "_easting\",1500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 11, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NO"); add_srs_wkt (p, 12, "RTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5520\"]]"); p = add_epsg_def (filter, first, last, 5523, "epsg", 5523, "WGS 84 / Gabon TM 2011"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=11.5 +k=0.9996 +x_0=1500000 "); add_proj4text (p, 1, "+y_0=5500000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / Gabon TM 2011\",GEOGCS[\"WGS 84\",DATU"); add_srs_wkt (p, 1, "M[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326"); add_srs_wkt (p, 3, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 4, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 6, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 7, ",PARAMETER[\"central_meridian\",11.5],PARAMETER[\"scale_"); add_srs_wkt (p, 8, "factor\",0.9996],PARAMETER[\"false_easting\",1500000],PA"); add_srs_wkt (p, 9, "RAMETER[\"false_northing\",5500000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 10, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); add_srs_wkt (p, 11, "ORTH],AUTHORITY[\"EPSG\",\"5523\"]]"); p = add_epsg_def (filter, first, last, 5524, "epsg", 5524, "Corrego Alegre 1961"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Corrego Alegre 1961\",DATUM[\"Corrego_Alegre_19"); add_srs_wkt (p, 1, "61\",SPHEROID[\"International 1924\",6378388,297,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7022\"]],AUTHORITY[\"EPSG\",\"1074\"]],PRI"); add_srs_wkt (p, 3, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 4, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 5, "],AUTHORITY[\"EPSG\",\"5524\"]]"); p = add_epsg_def (filter, first, last, 5527, "epsg", 5527, "SAD69(96)"); add_proj4text (p, 0, "+proj=longlat +ellps=aust_SA +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"SAD69(96)\",DATUM[\"South_American_Datum_1969_9"); add_srs_wkt (p, 1, "6\",SPHEROID[\"GRS 1967 Modified\",6378160,298.25,AUTHOR"); add_srs_wkt (p, 2, "ITY[\"EPSG\",\"7050\"]],AUTHORITY[\"EPSG\",\"1075\"]],PR"); add_srs_wkt (p, 3, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 4, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 5, "]],AUTHORITY[\"EPSG\",\"5527\"]]"); p = add_epsg_def (filter, first, last, 5530, "epsg", 5530, "SAD69(96) / Brazil Polyconic"); add_proj4text (p, 0, "+proj=poly +lat_0=0 +lon_0=-54 +x_0=5000000 +y_0=1000000"); add_proj4text (p, 1, "0 +ellps=aust_SA +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69(96) / Brazil Polyconic\",GEOGCS[\"SAD69(9"); add_srs_wkt (p, 1, "6)\",DATUM[\"South_American_Datum_1969_96\",SPHEROID[\"G"); add_srs_wkt (p, 2, "RS 1967 Modified\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "050\"]],AUTHORITY[\"EPSG\",\"1075\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 4, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 5, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"5527\"]],PROJECTION[\"Polyconic\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, "54],PARAMETER[\"false_easting\",5000000],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 10, "G\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR"); add_srs_wkt (p, 11, "ITY[\"EPSG\",\"5530\"]]"); p = add_epsg_def (filter, first, last, 5531, "epsg", 5531, "SAD69(96) / UTM zone 21S"); add_proj4text (p, 0, "+proj=utm +zone=21 +south +ellps=aust_SA +units=m +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69(96) / UTM zone 21S\",GEOGCS[\"SAD69(96)\""); add_srs_wkt (p, 1, ",DATUM[\"South_American_Datum_1969_96\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "967 Modified\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"1075\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"5527\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 7, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, "\",-57],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"f"); add_srs_wkt (p, 9, "alse_easting\",500000],PARAMETER[\"false_northing\",1000"); add_srs_wkt (p, 10, "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 11, "S[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"5531\"]]"); p = add_epsg_def (filter, first, last, 5532, "epsg", 5532, "SAD69(96) / UTM zone 22S"); add_proj4text (p, 0, "+proj=utm +zone=22 +south +ellps=aust_SA +towgs84=-57,1,"); add_proj4text (p, 1, "-41,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69(96) / UTM zone 22S\",GEOGCS[\"SAD69\",DAT"); add_srs_wkt (p, 1, "UM[\"South_American_Datum_1969\",SPHEROID[\"GRS 1967 Mod"); add_srs_wkt (p, 2, "ified\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOW"); add_srs_wkt (p, 3, "GS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AUTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-51],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"5532\"]]"); p = add_epsg_def (filter, first, last, 5533, "epsg", 5533, "SAD69(96) / UTM zone 23S"); add_proj4text (p, 0, "+proj=utm +zone=23 +south +ellps=aust_SA +units=m +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69(96) / UTM zone 23S\",GEOGCS[\"SAD69(96)\""); add_srs_wkt (p, 1, ",DATUM[\"South_American_Datum_1969_96\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "967 Modified\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"1075\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"5527\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 7, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, "\",-45],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"f"); add_srs_wkt (p, 9, "alse_easting\",500000],PARAMETER[\"false_northing\",1000"); add_srs_wkt (p, 10, "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 11, "S[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"5533\"]]"); p = add_epsg_def (filter, first, last, 5534, "epsg", 5534, "SAD69(96) / UTM zone 24S"); add_proj4text (p, 0, "+proj=utm +zone=24 +south +ellps=aust_SA +units=m +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69(96) / UTM zone 24S\",GEOGCS[\"SAD69(96)\""); add_srs_wkt (p, 1, ",DATUM[\"South_American_Datum_1969_96\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "967 Modified\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"1075\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"5527\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 7, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, "\",-39],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"f"); add_srs_wkt (p, 9, "alse_easting\",500000],PARAMETER[\"false_northing\",1000"); add_srs_wkt (p, 10, "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 11, "S[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"5534\"]]"); p = add_epsg_def (filter, first, last, 5535, "epsg", 5535, "SAD69(96) / UTM zone 25S"); add_proj4text (p, 0, "+proj=utm +zone=25 +south +ellps=aust_SA +units=m +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69(96) / UTM zone 25S\",GEOGCS[\"SAD69(96)\""); add_srs_wkt (p, 1, ",DATUM[\"South_American_Datum_1969_96\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "967 Modified\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"1075\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"5527\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 7, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, "\",-33],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"f"); add_srs_wkt (p, 9, "alse_easting\",500000],PARAMETER[\"false_northing\",1000"); add_srs_wkt (p, 10, "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 11, "S[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"5535\"]]"); p = add_epsg_def (filter, first, last, 5536, "epsg", 5536, "Corrego Alegre 1961 / UTM zone 21S"); add_proj4text (p, 0, "+proj=utm +zone=21 +south +ellps=intl +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Corrego Alegre 1961 / UTM zone 21S\",GEOGCS[\"C"); add_srs_wkt (p, 1, "orrego Alegre 1961\",DATUM[\"Corrego_Alegre_1961\",SPHER"); add_srs_wkt (p, 2, "OID[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7022\"]],AUTHORITY[\"EPSG\",\"1074\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"5524\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-57],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 11, "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"5536\"]]"); p = add_epsg_def (filter, first, last, 5537, "epsg", 5537, "Corrego Alegre 1961 / UTM zone 22S"); add_proj4text (p, 0, "+proj=utm +zone=22 +south +ellps=intl +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Corrego Alegre 1961 / UTM zone 22S\",GEOGCS[\"C"); add_srs_wkt (p, 1, "orrego Alegre 1961\",DATUM[\"Corrego_Alegre_1961\",SPHER"); add_srs_wkt (p, 2, "OID[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7022\"]],AUTHORITY[\"EPSG\",\"1074\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"5524\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-51],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 11, "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"5537\"]]"); p = add_epsg_def (filter, first, last, 5538, "epsg", 5538, "Corrego Alegre 1961 / UTM zone 23S"); add_proj4text (p, 0, "+proj=utm +zone=23 +south +ellps=intl +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Corrego Alegre 1961 / UTM zone 23S\",GEOGCS[\"C"); add_srs_wkt (p, 1, "orrego Alegre 1961\",DATUM[\"Corrego_Alegre_1961\",SPHER"); add_srs_wkt (p, 2, "OID[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7022\"]],AUTHORITY[\"EPSG\",\"1074\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"5524\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-45],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 11, "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"5538\"]]"); p = add_epsg_def (filter, first, last, 5539, "epsg", 5539, "Corrego Alegre 1961 / UTM zone 24S"); add_proj4text (p, 0, "+proj=utm +zone=24 +south +ellps=intl +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Corrego Alegre 1961 / UTM zone 24S\",GEOGCS[\"C"); add_srs_wkt (p, 1, "orrego Alegre 1961\",DATUM[\"Corrego_Alegre_1961\",SPHER"); add_srs_wkt (p, 2, "OID[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7022\"]],AUTHORITY[\"EPSG\",\"1074\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"5524\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-39],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 11, "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"5539\"]]"); p = add_epsg_def (filter, first, last, 5546, "epsg", 5546, "PNG94"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"PNG94\",DATUM[\"Papua_New_Guinea_Geodetic_Datum"); add_srs_wkt (p, 1, "_1994\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 2, "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"1076\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5546\""); add_srs_wkt (p, 6, "]]"); p = add_epsg_def (filter, first, last, 5550, "epsg", 5550, "PNG94 / PNGMG94 zone 54"); add_proj4text (p, 0, "+proj=utm +zone=54 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PNG94 / PNGMG94 zone 54\",GEOGCS[\"PNG94\",DATU"); add_srs_wkt (p, 1, "M[\"Papua_New_Guinea_Geodetic_Datum_1994\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1076\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"5546\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",141],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, "TY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nor"); add_srs_wkt (p, 12, "thing\",NORTH],AUTHORITY[\"EPSG\",\"5550\"]]"); p = add_epsg_def (filter, first, last, 5551, "epsg", 5551, "PNG94 / PNGMG94 zone 55"); add_proj4text (p, 0, "+proj=utm +zone=55 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PNG94 / PNGMG94 zone 55\",GEOGCS[\"PNG94\",DATU"); add_srs_wkt (p, 1, "M[\"Papua_New_Guinea_Geodetic_Datum_1994\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1076\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"5546\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",147],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, "TY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nor"); add_srs_wkt (p, 12, "thing\",NORTH],AUTHORITY[\"EPSG\",\"5551\"]]"); p = add_epsg_def (filter, first, last, 5552, "epsg", 5552, "PNG94 / PNGMG94 zone 56"); add_proj4text (p, 0, "+proj=utm +zone=56 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PNG94 / PNGMG94 zone 56\",GEOGCS[\"PNG94\",DATU"); add_srs_wkt (p, 1, "M[\"Papua_New_Guinea_Geodetic_Datum_1994\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1076\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"5546\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",153],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, "TY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nor"); add_srs_wkt (p, 12, "thing\",NORTH],AUTHORITY[\"EPSG\",\"5552\"]]"); p = add_epsg_def (filter, first, last, 5559, "epsg", 5559, "Ocotepeque 1935 / Guatemala Norte"); add_proj4text (p, 0, "+proj=lcc +lat_1=16.81666666666667 +lat_0=16.81666666666"); add_proj4text (p, 1, "667 +lon_0=-90.33333333333333 +k_0=0.99992226 +x_0=50000"); add_proj4text (p, 2, "0 +y_0=292209.579 +ellps=clrk66 +towgs84=213.11,9.37,-74"); add_proj4text (p, 3, ".95,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Ocotepeque 1935 / Guatemala Norte\",GEOGCS[\"Oc"); add_srs_wkt (p, 1, "otepeque 1935\",DATUM[\"Ocotepeque_1935\",SPHEROID[\"Cla"); add_srs_wkt (p, 2, "rke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],TOWGS84[213.11,9.37,-74.95,0,0,0,0],AUTHORIT"); add_srs_wkt (p, 4, "Y[\"EPSG\",\"1070\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5451\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",16.81666666666667],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",-90.33333333333333],PARAMETER[\"scale_fac"); add_srs_wkt (p, 10, "tor\",0.99992226],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",292209.579],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"5559\"]]"); p = add_epsg_def (filter, first, last, 20004, "epsg", 20004, "Pulkovo 1995 / Gauss-Kruger zone 4"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=4500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 4\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",21],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",45000"); add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 12, "EAST],AUTHORITY[\"EPSG\",\"20004\"]]"); p = add_epsg_def (filter, first, last, 20005, "epsg", 20005, "Pulkovo 1995 / Gauss-Kruger zone 5"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=5500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 5\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",27],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",55000"); add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 12, "EAST],AUTHORITY[\"EPSG\",\"20005\"]]"); p = add_epsg_def (filter, first, last, 20006, "epsg", 20006, "Pulkovo 1995 / Gauss-Kruger zone 6"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=6500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 6\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",33],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",65000"); add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 12, "EAST],AUTHORITY[\"EPSG\",\"20006\"]]"); p = add_epsg_def (filter, first, last, 20007, "epsg", 20007, "Pulkovo 1995 / Gauss-Kruger zone 7"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=7500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 7\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",39],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",75000"); add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 12, "EAST],AUTHORITY[\"EPSG\",\"20007\"]]"); p = add_epsg_def (filter, first, last, 20008, "epsg", 20008, "Pulkovo 1995 / Gauss-Kruger zone 8"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=8500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 8\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",45],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",85000"); add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 12, "EAST],AUTHORITY[\"EPSG\",\"20008\"]]"); p = add_epsg_def (filter, first, last, 20009, "epsg", 20009, "Pulkovo 1995 / Gauss-Kruger zone 9"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=9500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 9\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",51],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",95000"); add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 12, "EAST],AUTHORITY[\"EPSG\",\"20009\"]]"); p = add_epsg_def (filter, first, last, 20010, "epsg", 20010, "Pulkovo 1995 / Gauss-Kruger zone 10"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=10500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); add_proj4text (p, 2, "0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 10\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",57],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",105"); add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 12, "\",EAST],AUTHORITY[\"EPSG\",\"20010\"]]"); p = add_epsg_def (filter, first, last, 20011, "epsg", 20011, "Pulkovo 1995 / Gauss-Kruger zone 11"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=11500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); add_proj4text (p, 2, "0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 11\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",63],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",115"); add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 12, "\",EAST],AUTHORITY[\"EPSG\",\"20011\"]]"); p = add_epsg_def (filter, first, last, 20012, "epsg", 20012, "Pulkovo 1995 / Gauss-Kruger zone 12"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=12500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); add_proj4text (p, 2, "0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 12\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",69],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",125"); add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 12, "\",EAST],AUTHORITY[\"EPSG\",\"20012\"]]"); p = add_epsg_def (filter, first, last, 20013, "epsg", 20013, "Pulkovo 1995 / Gauss-Kruger zone 13"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=13500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); add_proj4text (p, 2, "0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 13\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",75],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",135"); add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 12, "\",EAST],AUTHORITY[\"EPSG\",\"20013\"]]"); p = add_epsg_def (filter, first, last, 20014, "epsg", 20014, "Pulkovo 1995 / Gauss-Kruger zone 14"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=14500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); add_proj4text (p, 2, "0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 14\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",81],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",145"); add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 12, "\",EAST],AUTHORITY[\"EPSG\",\"20014\"]]"); p = add_epsg_def (filter, first, last, 20015, "epsg", 20015, "Pulkovo 1995 / Gauss-Kruger zone 15"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=15500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); add_proj4text (p, 2, "0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 15\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",87],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",155"); add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 12, "\",EAST],AUTHORITY[\"EPSG\",\"20015\"]]"); p = add_epsg_def (filter, first, last, 20016, "epsg", 20016, "Pulkovo 1995 / Gauss-Kruger zone 16"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=16500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); add_proj4text (p, 2, "0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 16\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",93],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",165"); add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 12, "\",EAST],AUTHORITY[\"EPSG\",\"20016\"]]"); p = add_epsg_def (filter, first, last, 20017, "epsg", 20017, "Pulkovo 1995 / Gauss-Kruger zone 17"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=17500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); add_proj4text (p, 2, "0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 17\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",99],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",175"); add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 12, "\",EAST],AUTHORITY[\"EPSG\",\"20017\"]]"); p = add_epsg_def (filter, first, last, 20018, "epsg", 20018, "Pulkovo 1995 / Gauss-Kruger zone 18"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=18500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); add_proj4text (p, 2, "-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 18\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",105],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",18"); add_srs_wkt (p, 10, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "Y\",EAST],AUTHORITY[\"EPSG\",\"20018\"]]"); p = add_epsg_def (filter, first, last, 20019, "epsg", 20019, "Pulkovo 1995 / Gauss-Kruger zone 19"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=19500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); add_proj4text (p, 2, "-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 19\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",111],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",19"); add_srs_wkt (p, 10, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "Y\",EAST],AUTHORITY[\"EPSG\",\"20019\"]]"); p = add_epsg_def (filter, first, last, 20020, "epsg", 20020, "Pulkovo 1995 / Gauss-Kruger zone 20"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=20500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); add_proj4text (p, 2, "-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 20\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",117],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",20"); add_srs_wkt (p, 10, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "Y\",EAST],AUTHORITY[\"EPSG\",\"20020\"]]"); } #endif /* full EPSG initialization enabled/disabled */ libspatialite-4.1.1/src/srsinit/epsg_inlined_28.c0000664000175000017500000045630512163502133016676 00000000000000/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_28 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def (filter, first, last, 21419, "epsg", 21419, "Beijing 1954 / Gauss-Kruger zone 19"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=19500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 19\",GEOGCS[\""); add_srs_wkt (p, 1, "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\""); add_srs_wkt (p, 7, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, "0],PARAMETER[\"central_meridian\",111],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",1],PARAMETER[\"false_easting\",19500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"21419\"]]"); p = add_epsg_def (filter, first, last, 21420, "epsg", 21420, "Beijing 1954 / Gauss-Kruger zone 20"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=20500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 20\",GEOGCS[\""); add_srs_wkt (p, 1, "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\""); add_srs_wkt (p, 7, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, "0],PARAMETER[\"central_meridian\",117],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",1],PARAMETER[\"false_easting\",20500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"21420\"]]"); p = add_epsg_def (filter, first, last, 21421, "epsg", 21421, "Beijing 1954 / Gauss-Kruger zone 21"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=21500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 21\",GEOGCS[\""); add_srs_wkt (p, 1, "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\""); add_srs_wkt (p, 7, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, "0],PARAMETER[\"central_meridian\",123],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",1],PARAMETER[\"false_easting\",21500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"21421\"]]"); p = add_epsg_def (filter, first, last, 21422, "epsg", 21422, "Beijing 1954 / Gauss-Kruger zone 22"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=22500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 22\",GEOGCS[\""); add_srs_wkt (p, 1, "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\""); add_srs_wkt (p, 7, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, "0],PARAMETER[\"central_meridian\",129],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",1],PARAMETER[\"false_easting\",22500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"21422\"]]"); p = add_epsg_def (filter, first, last, 21423, "epsg", 21423, "Beijing 1954 / Gauss-Kruger zone 23"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=23500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 23\",GEOGCS[\""); add_srs_wkt (p, 1, "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\""); add_srs_wkt (p, 7, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, "0],PARAMETER[\"central_meridian\",135],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",1],PARAMETER[\"false_easting\",23500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"21423\"]]"); p = add_epsg_def (filter, first, last, 21453, "epsg", 21453, "Beijing 1954 / Gauss-Kruger CM 75E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 75E\",GEOGCS[\"B"); add_srs_wkt (p, 1, "eijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"62"); add_srs_wkt (p, 4, "14\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, "],PARAMETER[\"central_meridian\",75],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",1],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, "\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"21453\"]]"); p = add_epsg_def (filter, first, last, 21454, "epsg", 21454, "Beijing 1954 / Gauss-Kruger CM 81E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 81E\",GEOGCS[\"B"); add_srs_wkt (p, 1, "eijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"62"); add_srs_wkt (p, 4, "14\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, "],PARAMETER[\"central_meridian\",81],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",1],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, "\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"21454\"]]"); p = add_epsg_def (filter, first, last, 21455, "epsg", 21455, "Beijing 1954 / Gauss-Kruger CM 87E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 87E\",GEOGCS[\"B"); add_srs_wkt (p, 1, "eijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"62"); add_srs_wkt (p, 4, "14\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, "],PARAMETER[\"central_meridian\",87],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",1],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, "\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"21455\"]]"); p = add_epsg_def (filter, first, last, 21456, "epsg", 21456, "Beijing 1954 / Gauss-Kruger CM 93E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 93E\",GEOGCS[\"B"); add_srs_wkt (p, 1, "eijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"62"); add_srs_wkt (p, 4, "14\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, "],PARAMETER[\"central_meridian\",93],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",1],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, "\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"21456\"]]"); p = add_epsg_def (filter, first, last, 21457, "epsg", 21457, "Beijing 1954 / Gauss-Kruger CM 99E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 99E\",GEOGCS[\"B"); add_srs_wkt (p, 1, "eijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"62"); add_srs_wkt (p, 4, "14\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, "],PARAMETER[\"central_meridian\",99],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",1],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, "\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"21457\"]]"); p = add_epsg_def (filter, first, last, 21458, "epsg", 21458, "Beijing 1954 / Gauss-Kruger CM 105E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 105E\",GEOGCS[\""); add_srs_wkt (p, 1, "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\""); add_srs_wkt (p, 7, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, "0],PARAMETER[\"central_meridian\",105],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",1],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, "SG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHO"); add_srs_wkt (p, 12, "RITY[\"EPSG\",\"21458\"]]"); p = add_epsg_def (filter, first, last, 21459, "epsg", 21459, "Beijing 1954 / Gauss-Kruger CM 111E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 111E\",GEOGCS[\""); add_srs_wkt (p, 1, "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\""); add_srs_wkt (p, 7, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, "0],PARAMETER[\"central_meridian\",111],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",1],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, "SG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHO"); add_srs_wkt (p, 12, "RITY[\"EPSG\",\"21459\"]]"); p = add_epsg_def (filter, first, last, 21460, "epsg", 21460, "Beijing 1954 / Gauss-Kruger CM 117E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 117E\",GEOGCS[\""); add_srs_wkt (p, 1, "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\""); add_srs_wkt (p, 7, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, "0],PARAMETER[\"central_meridian\",117],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",1],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, "SG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHO"); add_srs_wkt (p, 12, "RITY[\"EPSG\",\"21460\"]]"); p = add_epsg_def (filter, first, last, 21461, "epsg", 21461, "Beijing 1954 / Gauss-Kruger CM 123E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 123E\",GEOGCS[\""); add_srs_wkt (p, 1, "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\""); add_srs_wkt (p, 7, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, "0],PARAMETER[\"central_meridian\",123],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",1],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, "SG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHO"); add_srs_wkt (p, 12, "RITY[\"EPSG\",\"21461\"]]"); p = add_epsg_def (filter, first, last, 21462, "epsg", 21462, "Beijing 1954 / Gauss-Kruger CM 129E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 129E\",GEOGCS[\""); add_srs_wkt (p, 1, "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\""); add_srs_wkt (p, 7, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, "0],PARAMETER[\"central_meridian\",129],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",1],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, "SG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHO"); add_srs_wkt (p, 12, "RITY[\"EPSG\",\"21462\"]]"); p = add_epsg_def (filter, first, last, 21463, "epsg", 21463, "Beijing 1954 / Gauss-Kruger CM 135E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 135E\",GEOGCS[\""); add_srs_wkt (p, 1, "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\""); add_srs_wkt (p, 7, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, "0],PARAMETER[\"central_meridian\",135],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",1],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, "SG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHO"); add_srs_wkt (p, 12, "RITY[\"EPSG\",\"21463\"]]"); p = add_epsg_def (filter, first, last, 21473, "epsg", 21473, "Beijing 1954 / Gauss-Kruger 13N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger 13N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",75],PARAMETE"); add_srs_wkt (p, 9, "R[\"scale_factor\",1],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 10, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA"); add_srs_wkt (p, 12, "ST],AUTHORITY[\"EPSG\",\"21473\"]]"); p = add_epsg_def (filter, first, last, 21474, "epsg", 21474, "Beijing 1954 / Gauss-Kruger 14N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger 14N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",81],PARAMETE"); add_srs_wkt (p, 9, "R[\"scale_factor\",1],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 10, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA"); add_srs_wkt (p, 12, "ST],AUTHORITY[\"EPSG\",\"21474\"]]"); p = add_epsg_def (filter, first, last, 21475, "epsg", 21475, "Beijing 1954 / Gauss-Kruger 15N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger 15N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",87],PARAMETE"); add_srs_wkt (p, 9, "R[\"scale_factor\",1],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 10, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA"); add_srs_wkt (p, 12, "ST],AUTHORITY[\"EPSG\",\"21475\"]]"); p = add_epsg_def (filter, first, last, 21476, "epsg", 21476, "Beijing 1954 / Gauss-Kruger 16N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger 16N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",93],PARAMETE"); add_srs_wkt (p, 9, "R[\"scale_factor\",1],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 10, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA"); add_srs_wkt (p, 12, "ST],AUTHORITY[\"EPSG\",\"21476\"]]"); p = add_epsg_def (filter, first, last, 21477, "epsg", 21477, "Beijing 1954 / Gauss-Kruger 17N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger 17N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",99],PARAMETE"); add_srs_wkt (p, 9, "R[\"scale_factor\",1],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 10, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA"); add_srs_wkt (p, 12, "ST],AUTHORITY[\"EPSG\",\"21477\"]]"); p = add_epsg_def (filter, first, last, 21478, "epsg", 21478, "Beijing 1954 / Gauss-Kruger 18N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger 18N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",105],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); add_srs_wkt (p, 12, "AST],AUTHORITY[\"EPSG\",\"21478\"]]"); p = add_epsg_def (filter, first, last, 21479, "epsg", 21479, "Beijing 1954 / Gauss-Kruger 19N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger 19N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",111],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); add_srs_wkt (p, 12, "AST],AUTHORITY[\"EPSG\",\"21479\"]]"); p = add_epsg_def (filter, first, last, 21480, "epsg", 21480, "Beijing 1954 / Gauss-Kruger 20N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger 20N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",117],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); add_srs_wkt (p, 12, "AST],AUTHORITY[\"EPSG\",\"21480\"]]"); p = add_epsg_def (filter, first, last, 21481, "epsg", 21481, "Beijing 1954 / Gauss-Kruger 21N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger 21N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",123],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); add_srs_wkt (p, 12, "AST],AUTHORITY[\"EPSG\",\"21481\"]]"); p = add_epsg_def (filter, first, last, 21482, "epsg", 21482, "Beijing 1954 / Gauss-Kruger 22N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger 22N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",129],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); add_srs_wkt (p, 12, "AST],AUTHORITY[\"EPSG\",\"21482\"]]"); p = add_epsg_def (filter, first, last, 21483, "epsg", 21483, "Beijing 1954 / Gauss-Kruger 23N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger 23N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",135],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); add_srs_wkt (p, 12, "AST],AUTHORITY[\"EPSG\",\"21483\"]]"); p = add_epsg_def (filter, first, last, 21500, "epsg", 21500, "Belge 1950 (Brussels) / Belge Lambert 50"); add_proj4text (p, 0, "+proj=lcc +lat_1=49.83333333333334 +lat_2=51.16666666666"); add_proj4text (p, 1, "666 +lat_0=90 +lon_0=0 +x_0=150000 +y_0=5400000 +ellps=i"); add_proj4text (p, 2, "ntl +pm=brussels +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Belge 1950 (Brussels) / Belge Lambert 50\",GEOG"); add_srs_wkt (p, 1, "CS[\"Belge 1950 (Brussels)\",DATUM[\"Reseau_National_Bel"); add_srs_wkt (p, 2, "ge_1950_Brussels\",SPHEROID[\"International 1924\",63783"); add_srs_wkt (p, 3, "88,297,AUTHORITY[\"EPSG\",\"7022\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6809\"]],PRIMEM[\"Brussels\",4.367975,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8910\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4809\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"sta"); add_srs_wkt (p, 8, "ndard_parallel_1\",49.83333333333334],PARAMETER[\"standa"); add_srs_wkt (p, 9, "rd_parallel_2\",51.16666666666666],PARAMETER[\"latitude_"); add_srs_wkt (p, 10, "of_origin\",90],PARAMETER[\"central_meridian\",0],PARAME"); add_srs_wkt (p, 11, "TER[\"false_easting\",150000],PARAMETER[\"false_northing"); add_srs_wkt (p, 12, "\",5400000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 13, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"21500\"]]"); p = add_epsg_def (filter, first, last, 21780, "epsg", 21780, "Bern 1898 (Bern) / LV03C"); add_proj4text (p, 0, "+proj=somerc +lat_0=46.95240555555556 +lon_0=0 +k_0=1 +x"); add_proj4text (p, 1, "_0=0 +y_0=0 +ellps=bessel +towgs84=674.4,15.1,405.3,0,0,"); add_proj4text (p, 2, "0,0 +pm=bern +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Bern 1898 (Bern) / LV03C\",GEOGCS[\"Bern 1898 ("); add_srs_wkt (p, 1, "Bern)\",DATUM[\"CH1903_Bern\",SPHEROID[\"Bessel 1841\",6"); add_srs_wkt (p, 2, "377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOW"); add_srs_wkt (p, 3, "GS84[674.4,15.1,405.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6801"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Bern\",7.439583333333333,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8907\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4801\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Hotine_Oblique_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 8, "of_center\",46.95240555555556],PARAMETER[\"longitude_of_"); add_srs_wkt (p, 9, "center\",0],PARAMETER[\"azimuth\",90],PARAMETER[\"rectif"); add_srs_wkt (p, 10, "ied_grid_angle\",90],PARAMETER[\"scale_factor\",1],PARAM"); add_srs_wkt (p, 11, "ETER[\"false_easting\",0],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 12, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AXIS[\"X\",NORTH],AUTHORITY[\"EPSG\",\"21780\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def (filter, first, last, 21781, "epsg", 21781, "CH1903 / LV03"); add_proj4text (p, 0, "+proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333"); add_proj4text (p, 1, "333333 +k_0=1 +x_0=600000 +y_0=200000 +ellps=bessel +tow"); add_proj4text (p, 2, "gs84=674.4,15.1,405.3,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CH1903 / LV03\",GEOGCS[\"CH1903\",DATUM[\"CH190"); add_srs_wkt (p, 1, "3\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7004\"]],TOWGS84[674.4,15.1,405.3,0,0,"); add_srs_wkt (p, 3, "0,0],AUTHORITY[\"EPSG\",\"6149\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4149\"]],PROJECTION[\"Hotine_Oblique_Mercator\"],P"); add_srs_wkt (p, 7, "ARAMETER[\"latitude_of_center\",46.95240555555556],PARAM"); add_srs_wkt (p, 8, "ETER[\"longitude_of_center\",7.439583333333333],PARAMETE"); add_srs_wkt (p, 9, "R[\"azimuth\",90],PARAMETER[\"rectified_grid_angle\",90]"); add_srs_wkt (p, 10, ",PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting"); add_srs_wkt (p, 11, "\",600000],PARAMETER[\"false_northing\",200000],UNIT[\"m"); add_srs_wkt (p, 12, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Y\",EAST],"); add_srs_wkt (p, 13, "AXIS[\"X\",NORTH],AUTHORITY[\"EPSG\",\"21781\"]]"); p = add_epsg_def (filter, first, last, 21782, "epsg", 21782, "CH1903 / LV03C-G"); add_proj4text (p, 0, "+proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333"); add_proj4text (p, 1, "333333 +k_0=1 +x_0=0 +y_0=0 +ellps=bessel +towgs84=674.4"); add_proj4text (p, 2, ",15.1,405.3,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CH1903 / LV03C-G\",GEOGCS[\"CH1903\",DATUM[\"CH"); add_srs_wkt (p, 1, "1903\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[674.4,15.1,405.3,0"); add_srs_wkt (p, 3, ",0,0,0],AUTHORITY[\"EPSG\",\"6149\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 4, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 5, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"4149\"]],PROJECTION[\"Hotine_Oblique_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_center\",46.95240555555556],PA"); add_srs_wkt (p, 8, "RAMETER[\"longitude_of_center\",7.439583333333333],PARAM"); add_srs_wkt (p, 9, "ETER[\"azimuth\",90],PARAMETER[\"rectified_grid_angle\","); add_srs_wkt (p, 10, "90],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 11, "ing\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Y\",EAST],AXIS[\""); add_srs_wkt (p, 13, "X\",NORTH],AUTHORITY[\"EPSG\",\"21782\"]]"); p = add_epsg_def (filter, first, last, 21817, "epsg", 21817, "Bogota 1975 / UTM zone 17N (deprecated)"); add_proj4text (p, 0, "+proj=utm +zone=17 +ellps=intl +towgs84=307,304,-318,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Bogota 1975 / UTM zone 17N (deprecated)\",GEOGC"); add_srs_wkt (p, 1, "S[\"Bogota 1975\",DATUM[\"Bogota_1975\",SPHEROID[\"Inter"); add_srs_wkt (p, 2, "national 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]"); add_srs_wkt (p, 3, "],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY[\"EPSG\",\"621"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4218\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, "],PARAMETER[\"central_meridian\",-81],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 11, "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 12, "ng\",NORTH],AUTHORITY[\"EPSG\",\"21817\"]]"); p = add_epsg_def (filter, first, last, 21818, "epsg", 21818, "Bogota 1975 / UTM zone 18N"); add_proj4text (p, 0, "+proj=utm +zone=18 +ellps=intl +towgs84=307,304,-318,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Bogota 1975 / UTM zone 18N\",GEOGCS[\"Bogota 19"); add_srs_wkt (p, 1, "75\",DATUM[\"Bogota_1975\",SPHEROID[\"International 1924"); add_srs_wkt (p, 2, "\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[307"); add_srs_wkt (p, 3, ",304,-318,0,0,0,0],AUTHORITY[\"EPSG\",\"6218\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4218\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 7, "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, "central_meridian\",-75],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 9, "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 10, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 11, "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"21818\"]]"); p = add_epsg_def (filter, first, last, 21891, "epsg", 21891, "Bogota 1975 / Colombia West zone (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-77.08091666"); add_proj4text (p, 1, "666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs"); add_proj4text (p, 2, "84=307,304,-318,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Bogota 1975 / Colombia West zone (deprecated)\""); add_srs_wkt (p, 1, ",GEOGCS[\"Bogota 1975\",DATUM[\"Bogota_1975\",SPHEROID[\""); add_srs_wkt (p, 2, "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "22\"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6218\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4218\"]],PROJECTIO"); add_srs_wkt (p, 7, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 8, "n\",4.599047222222222],PARAMETER[\"central_meridian\",-7"); add_srs_wkt (p, 9, "7.08091666666667],PARAMETER[\"scale_factor\",1],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",1000000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, ",AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "21891\"]]"); p = add_epsg_def (filter, first, last, 21892, "epsg", 21892, "Bogota 1975 / Colombia Bogota zone (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-74.08091666"); add_proj4text (p, 1, "666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs"); add_proj4text (p, 2, "84=307,304,-318,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Bogota 1975 / Colombia Bogota zone (deprecated)"); add_srs_wkt (p, 1, "\",GEOGCS[\"Bogota 1975\",DATUM[\"Bogota_1975\",SPHEROID"); add_srs_wkt (p, 2, "[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7022\"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6218\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4218\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",4.599047222222222],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "74.08091666666667],PARAMETER[\"scale_factor\",1],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",1000000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, "\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"21892\"]]"); p = add_epsg_def (filter, first, last, 21893, "epsg", 21893, "Bogota 1975 / Colombia East Central zone (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-71.08091666"); add_proj4text (p, 1, "666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs"); add_proj4text (p, 2, "84=307,304,-318,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Bogota 1975 / Colombia East Central zone (depre"); add_srs_wkt (p, 1, "cated)\",GEOGCS[\"Bogota 1975\",DATUM[\"Bogota_1975\",SP"); add_srs_wkt (p, 2, "HEROID[\"International 1924\",6378388,297,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7022\"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6218\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4218\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",4.599047222222222],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, "dian\",-71.08091666666667],PARAMETER[\"scale_factor\",1]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",1000000],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"21893\"]]"); p = add_epsg_def (filter, first, last, 21894, "epsg", 21894, "Bogota 1975 / Colombia East (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-68.08091666"); add_proj4text (p, 1, "666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs"); add_proj4text (p, 2, "84=307,304,-318,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Bogota 1975 / Colombia East (deprecated)\",GEOG"); add_srs_wkt (p, 1, "CS[\"Bogota 1975\",DATUM[\"Bogota_1975\",SPHEROID[\"Inte"); add_srs_wkt (p, 2, "rnational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); add_srs_wkt (p, 3, "]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY[\"EPSG\",\"62"); add_srs_wkt (p, 4, "18\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4218\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",4"); add_srs_wkt (p, 8, ".599047222222222],PARAMETER[\"central_meridian\",-68.080"); add_srs_wkt (p, 9, "91666666667],PARAMETER[\"scale_factor\",1],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_easting\",1000000],PARAMETER[\"false_northing\",100"); add_srs_wkt (p, 11, "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 12, "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"218"); add_srs_wkt (p, 13, "94\"]]"); p = add_epsg_def (filter, first, last, 21896, "epsg", 21896, "Bogota 1975 / Colombia West zone"); add_proj4text (p, 0, "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-77.08091666"); add_proj4text (p, 1, "666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs"); add_proj4text (p, 2, "84=307,304,-318,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Bogota 1975 / Colombia West zone\",GEOGCS[\"Bog"); add_srs_wkt (p, 1, "ota 1975\",DATUM[\"Bogota_1975\",SPHEROID[\"Internationa"); add_srs_wkt (p, 2, "l 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS"); add_srs_wkt (p, 3, "84[307,304,-318,0,0,0,0],AUTHORITY[\"EPSG\",\"6218\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AUTHORITY[\"EPSG\",\"4218\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 7, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",4.599047"); add_srs_wkt (p, 8, "222222222],PARAMETER[\"central_meridian\",-77.0809166666"); add_srs_wkt (p, 9, "6667],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",1000000],PARAMETER[\"false_northing\",1000000],U"); add_srs_wkt (p, 11, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 12, ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"21896\"]]"); p = add_epsg_def (filter, first, last, 21897, "epsg", 21897, "Bogota 1975 / Colombia Bogota zone"); add_proj4text (p, 0, "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-74.08091666"); add_proj4text (p, 1, "666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs"); add_proj4text (p, 2, "84=307,304,-318,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Bogota 1975 / Colombia Bogota zone\",GEOGCS[\"B"); add_srs_wkt (p, 1, "ogota 1975\",DATUM[\"Bogota_1975\",SPHEROID[\"Internatio"); add_srs_wkt (p, 2, "nal 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOW"); add_srs_wkt (p, 3, "GS84[307,304,-318,0,0,0,0],AUTHORITY[\"EPSG\",\"6218\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AUTHORITY[\"EPSG\",\"4218\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 7, "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",4.5990"); add_srs_wkt (p, 8, "47222222222],PARAMETER[\"central_meridian\",-74.08091666"); add_srs_wkt (p, 9, "666667],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",1000000],PARAMETER[\"false_northing\",1000000]"); add_srs_wkt (p, 11, ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X"); add_srs_wkt (p, 12, "\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"21897\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def (filter, first, last, 21898, "epsg", 21898, "Bogota 1975 / Colombia East Central zone"); add_proj4text (p, 0, "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-71.08091666"); add_proj4text (p, 1, "666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs"); add_proj4text (p, 2, "84=307,304,-318,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Bogota 1975 / Colombia East Central zone\",GEOG"); add_srs_wkt (p, 1, "CS[\"Bogota 1975\",DATUM[\"Bogota_1975\",SPHEROID[\"Inte"); add_srs_wkt (p, 2, "rnational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); add_srs_wkt (p, 3, "]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY[\"EPSG\",\"62"); add_srs_wkt (p, 4, "18\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4218\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",4"); add_srs_wkt (p, 8, ".599047222222222],PARAMETER[\"central_meridian\",-71.080"); add_srs_wkt (p, 9, "91666666667],PARAMETER[\"scale_factor\",1],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_easting\",1000000],PARAMETER[\"false_northing\",100"); add_srs_wkt (p, 11, "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 12, "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"218"); add_srs_wkt (p, 13, "98\"]]"); p = add_epsg_def (filter, first, last, 21899, "epsg", 21899, "Bogota 1975 / Colombia East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-68.08091666"); add_proj4text (p, 1, "666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs"); add_proj4text (p, 2, "84=307,304,-318,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Bogota 1975 / Colombia East\",GEOGCS[\"Bogota 1"); add_srs_wkt (p, 1, "975\",DATUM[\"Bogota_1975\",SPHEROID[\"International 192"); add_srs_wkt (p, 2, "4\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[30"); add_srs_wkt (p, 3, "7,304,-318,0,0,0,0],AUTHORITY[\"EPSG\",\"6218\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4218\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, "rcator\"],PARAMETER[\"latitude_of_origin\",4.59904722222"); add_srs_wkt (p, 8, "2222],PARAMETER[\"central_meridian\",-68.08091666666667]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting"); add_srs_wkt (p, 10, "\",1000000],PARAMETER[\"false_northing\",1000000],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); add_srs_wkt (p, 12, "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"21899\"]]"); p = add_epsg_def (filter, first, last, 22032, "epsg", 22032, "Camacupa / UTM zone 32S"); add_proj4text (p, 0, "+proj=utm +zone=32 +south +ellps=clrk80 +towgs84=-50.9,-"); add_proj4text (p, 1, "347.6,-231,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Camacupa / UTM zone 32S\",GEOGCS[\"Camacupa\",D"); add_srs_wkt (p, 1, "ATUM[\"Camacupa\",SPHEROID[\"Clarke 1880 (RGS)\",6378249"); add_srs_wkt (p, 2, ".145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-50.9"); add_srs_wkt (p, 3, ",-347.6,-231,0,0,0,0],AUTHORITY[\"EPSG\",\"6220\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4220\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, "R[\"central_meridian\",9],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 9, "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 11, "G\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\","); add_srs_wkt (p, 12, "NORTH],AUTHORITY[\"EPSG\",\"22032\"]]"); p = add_epsg_def (filter, first, last, 22033, "epsg", 22033, "Camacupa / UTM zone 33S"); add_proj4text (p, 0, "+proj=utm +zone=33 +south +ellps=clrk80 +towgs84=-50.9,-"); add_proj4text (p, 1, "347.6,-231,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Camacupa / UTM zone 33S\",GEOGCS[\"Camacupa\",D"); add_srs_wkt (p, 1, "ATUM[\"Camacupa\",SPHEROID[\"Clarke 1880 (RGS)\",6378249"); add_srs_wkt (p, 2, ".145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-50.9"); add_srs_wkt (p, 3, ",-347.6,-231,0,0,0,0],AUTHORITY[\"EPSG\",\"6220\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4220\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, "R[\"central_meridian\",15],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 9, "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"22033\"]]"); p = add_epsg_def (filter, first, last, 22091, "epsg", 22091, "Camacupa / TM 11.30 SE"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=11.5 +k=0.9996 +x_0=500000 +"); add_proj4text (p, 1, "y_0=10000000 +ellps=clrk80 +towgs84=-50.9,-347.6,-231,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Camacupa / TM 11.30 SE\",GEOGCS[\"Camacupa\",DA"); add_srs_wkt (p, 1, "TUM[\"Camacupa\",SPHEROID[\"Clarke 1880 (RGS)\",6378249."); add_srs_wkt (p, 2, "145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-50.9,"); add_srs_wkt (p, 3, "-347.6,-231,0,0,0,0],AUTHORITY[\"EPSG\",\"6220\"]],PRIME"); add_srs_wkt (p, 4, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"4220\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 7, "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 8, "[\"central_meridian\",11.5],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"22091\"]]"); p = add_epsg_def (filter, first, last, 22092, "epsg", 22092, "Camacupa / TM 12 SE"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=12 +k=0.9996 +x_0=500000 +y_"); add_proj4text (p, 1, "0=10000000 +ellps=clrk80 +towgs84=-50.9,-347.6,-231,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Camacupa / TM 12 SE\",GEOGCS[\"Camacupa\",DATUM"); add_srs_wkt (p, 1, "[\"Camacupa\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145"); add_srs_wkt (p, 2, ",293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-50.9,-34"); add_srs_wkt (p, 3, "7.6,-231,0,0,0,0],AUTHORITY[\"EPSG\",\"6220\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4220\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, "entral_meridian\",12],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 9, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 10, "orthing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"22092\"]]"); p = add_epsg_def (filter, first, last, 22171, "epsg", 22171, "POSGAR 98 / Argentina 1"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-72 +k=1 +x_0=1500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"POSGAR 98 / Argentina 1\",GEOGCS[\"POSGAR 98\","); add_srs_wkt (p, 1, "DATUM[\"Posiciones_Geodesicas_Argentinas_1998\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"619"); add_srs_wkt (p, 4, "0\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4190\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-"); add_srs_wkt (p, 8, "90],PARAMETER[\"central_meridian\",-72],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",1],PARAMETER[\"false_easting\",1500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"22171\"]]"); p = add_epsg_def (filter, first, last, 22172, "epsg", 22172, "POSGAR 98 / Argentina 2"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-69 +k=1 +x_0=2500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"POSGAR 98 / Argentina 2\",GEOGCS[\"POSGAR 98\","); add_srs_wkt (p, 1, "DATUM[\"Posiciones_Geodesicas_Argentinas_1998\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"619"); add_srs_wkt (p, 4, "0\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4190\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-"); add_srs_wkt (p, 8, "90],PARAMETER[\"central_meridian\",-69],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",1],PARAMETER[\"false_easting\",2500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"22172\"]]"); p = add_epsg_def (filter, first, last, 22173, "epsg", 22173, "POSGAR 98 / Argentina 3"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-66 +k=1 +x_0=3500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"POSGAR 98 / Argentina 3\",GEOGCS[\"POSGAR 98\","); add_srs_wkt (p, 1, "DATUM[\"Posiciones_Geodesicas_Argentinas_1998\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"619"); add_srs_wkt (p, 4, "0\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4190\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-"); add_srs_wkt (p, 8, "90],PARAMETER[\"central_meridian\",-66],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",1],PARAMETER[\"false_easting\",3500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"22173\"]]"); p = add_epsg_def (filter, first, last, 22174, "epsg", 22174, "POSGAR 98 / Argentina 4"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-63 +k=1 +x_0=4500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"POSGAR 98 / Argentina 4\",GEOGCS[\"POSGAR 98\","); add_srs_wkt (p, 1, "DATUM[\"Posiciones_Geodesicas_Argentinas_1998\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"619"); add_srs_wkt (p, 4, "0\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4190\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-"); add_srs_wkt (p, 8, "90],PARAMETER[\"central_meridian\",-63],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",1],PARAMETER[\"false_easting\",4500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"22174\"]]"); p = add_epsg_def (filter, first, last, 22175, "epsg", 22175, "POSGAR 98 / Argentina 5"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-60 +k=1 +x_0=5500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"POSGAR 98 / Argentina 5\",GEOGCS[\"POSGAR 98\","); add_srs_wkt (p, 1, "DATUM[\"Posiciones_Geodesicas_Argentinas_1998\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"619"); add_srs_wkt (p, 4, "0\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4190\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-"); add_srs_wkt (p, 8, "90],PARAMETER[\"central_meridian\",-60],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",1],PARAMETER[\"false_easting\",5500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"22175\"]]"); p = add_epsg_def (filter, first, last, 22176, "epsg", 22176, "POSGAR 98 / Argentina 6"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-57 +k=1 +x_0=6500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"POSGAR 98 / Argentina 6\",GEOGCS[\"POSGAR 98\","); add_srs_wkt (p, 1, "DATUM[\"Posiciones_Geodesicas_Argentinas_1998\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"619"); add_srs_wkt (p, 4, "0\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4190\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-"); add_srs_wkt (p, 8, "90],PARAMETER[\"central_meridian\",-57],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",1],PARAMETER[\"false_easting\",6500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"22176\"]]"); p = add_epsg_def (filter, first, last, 22177, "epsg", 22177, "POSGAR 98 / Argentina 7"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-54 +k=1 +x_0=7500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"POSGAR 98 / Argentina 7\",GEOGCS[\"POSGAR 98\","); add_srs_wkt (p, 1, "DATUM[\"Posiciones_Geodesicas_Argentinas_1998\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"619"); add_srs_wkt (p, 4, "0\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4190\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-"); add_srs_wkt (p, 8, "90],PARAMETER[\"central_meridian\",-54],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",1],PARAMETER[\"false_easting\",7500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"22177\"]]"); p = add_epsg_def (filter, first, last, 22181, "epsg", 22181, "POSGAR 94 / Argentina 1"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-72 +k=1 +x_0=1500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"POSGAR 94 / Argentina 1\",GEOGCS[\"POSGAR 94\","); add_srs_wkt (p, 1, "DATUM[\"Posiciones_Geodesicas_Argentinas_1994\",SPHEROID"); add_srs_wkt (p, 2, "[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6694"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4694\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 8, "0],PARAMETER[\"central_meridian\",-72],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",1],PARAMETER[\"false_easting\",1500000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"22181\"]]"); p = add_epsg_def (filter, first, last, 22182, "epsg", 22182, "POSGAR 94 / Argentina 2"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-69 +k=1 +x_0=2500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"POSGAR 94 / Argentina 2\",GEOGCS[\"POSGAR 94\","); add_srs_wkt (p, 1, "DATUM[\"Posiciones_Geodesicas_Argentinas_1994\",SPHEROID"); add_srs_wkt (p, 2, "[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6694"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4694\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 8, "0],PARAMETER[\"central_meridian\",-69],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",1],PARAMETER[\"false_easting\",2500000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"22182\"]]"); p = add_epsg_def (filter, first, last, 22183, "epsg", 22183, "POSGAR 94 / Argentina 3"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-66 +k=1 +x_0=3500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"POSGAR 94 / Argentina 3\",GEOGCS[\"POSGAR 94\","); add_srs_wkt (p, 1, "DATUM[\"Posiciones_Geodesicas_Argentinas_1994\",SPHEROID"); add_srs_wkt (p, 2, "[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6694"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4694\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 8, "0],PARAMETER[\"central_meridian\",-66],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",1],PARAMETER[\"false_easting\",3500000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"22183\"]]"); p = add_epsg_def (filter, first, last, 22184, "epsg", 22184, "POSGAR 94 / Argentina 4"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-63 +k=1 +x_0=4500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"POSGAR 94 / Argentina 4\",GEOGCS[\"POSGAR 94\","); add_srs_wkt (p, 1, "DATUM[\"Posiciones_Geodesicas_Argentinas_1994\",SPHEROID"); add_srs_wkt (p, 2, "[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6694"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4694\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 8, "0],PARAMETER[\"central_meridian\",-63],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",1],PARAMETER[\"false_easting\",4500000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"22184\"]]"); p = add_epsg_def (filter, first, last, 22185, "epsg", 22185, "POSGAR 94 / Argentina 5"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-60 +k=1 +x_0=5500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"POSGAR 94 / Argentina 5\",GEOGCS[\"POSGAR 94\","); add_srs_wkt (p, 1, "DATUM[\"Posiciones_Geodesicas_Argentinas_1994\",SPHEROID"); add_srs_wkt (p, 2, "[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6694"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4694\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 8, "0],PARAMETER[\"central_meridian\",-60],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",1],PARAMETER[\"false_easting\",5500000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"22185\"]]"); p = add_epsg_def (filter, first, last, 22186, "epsg", 22186, "POSGAR 94 / Argentina 6"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-57 +k=1 +x_0=6500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"POSGAR 94 / Argentina 6\",GEOGCS[\"POSGAR 94\","); add_srs_wkt (p, 1, "DATUM[\"Posiciones_Geodesicas_Argentinas_1994\",SPHEROID"); add_srs_wkt (p, 2, "[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6694"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4694\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 8, "0],PARAMETER[\"central_meridian\",-57],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",1],PARAMETER[\"false_easting\",6500000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"22186\"]]"); p = add_epsg_def (filter, first, last, 22187, "epsg", 22187, "POSGAR 94 / Argentina 7"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-54 +k=1 +x_0=7500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"POSGAR 94 / Argentina 7\",GEOGCS[\"POSGAR 94\","); add_srs_wkt (p, 1, "DATUM[\"Posiciones_Geodesicas_Argentinas_1994\",SPHEROID"); add_srs_wkt (p, 2, "[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6694"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4694\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 8, "0],PARAMETER[\"central_meridian\",-54],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",1],PARAMETER[\"false_easting\",7500000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"22187\"]]"); p = add_epsg_def (filter, first, last, 22191, "epsg", 22191, "Campo Inchauspe / Argentina 1"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-72 +k=1 +x_0=1500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=intl +towgs84=-148,136,90,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"Campo Inchauspe / Argentina 1\",GEOGCS[\"Campo "); add_srs_wkt (p, 1, "Inchauspe\",DATUM[\"Campo_Inchauspe\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, "TOWGS84[-148,136,90,0,0,0,0],AUTHORITY[\"EPSG\",\"6221\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4221\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-90]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-72],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",1],PARAMETER[\"false_easting\",1500000],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 11, "G\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"22191\"]]"); p = add_epsg_def (filter, first, last, 22192, "epsg", 22192, "Campo Inchauspe / Argentina 2"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-69 +k=1 +x_0=2500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=intl +towgs84=-148,136,90,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"Campo Inchauspe / Argentina 2\",GEOGCS[\"Campo "); add_srs_wkt (p, 1, "Inchauspe\",DATUM[\"Campo_Inchauspe\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, "TOWGS84[-148,136,90,0,0,0,0],AUTHORITY[\"EPSG\",\"6221\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4221\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-90]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-69],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",1],PARAMETER[\"false_easting\",2500000],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 11, "G\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"22192\"]]"); p = add_epsg_def (filter, first, last, 22193, "epsg", 22193, "Campo Inchauspe / Argentina 3"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-66 +k=1 +x_0=3500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=intl +towgs84=-148,136,90,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"Campo Inchauspe / Argentina 3\",GEOGCS[\"Campo "); add_srs_wkt (p, 1, "Inchauspe\",DATUM[\"Campo_Inchauspe\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, "TOWGS84[-148,136,90,0,0,0,0],AUTHORITY[\"EPSG\",\"6221\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4221\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-90]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-66],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",1],PARAMETER[\"false_easting\",3500000],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 11, "G\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"22193\"]]"); p = add_epsg_def (filter, first, last, 22194, "epsg", 22194, "Campo Inchauspe / Argentina 4"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-63 +k=1 +x_0=4500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=intl +towgs84=-148,136,90,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"Campo Inchauspe / Argentina 4\",GEOGCS[\"Campo "); add_srs_wkt (p, 1, "Inchauspe\",DATUM[\"Campo_Inchauspe\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, "TOWGS84[-148,136,90,0,0,0,0],AUTHORITY[\"EPSG\",\"6221\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4221\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-90]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-63],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",1],PARAMETER[\"false_easting\",4500000],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 11, "G\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"22194\"]]"); p = add_epsg_def (filter, first, last, 22195, "epsg", 22195, "Campo Inchauspe / Argentina 5"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-60 +k=1 +x_0=5500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=intl +towgs84=-148,136,90,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"Campo Inchauspe / Argentina 5\",GEOGCS[\"Campo "); add_srs_wkt (p, 1, "Inchauspe\",DATUM[\"Campo_Inchauspe\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, "TOWGS84[-148,136,90,0,0,0,0],AUTHORITY[\"EPSG\",\"6221\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4221\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-90]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-60],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",1],PARAMETER[\"false_easting\",5500000],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 11, "G\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"22195\"]]"); p = add_epsg_def (filter, first, last, 22196, "epsg", 22196, "Campo Inchauspe / Argentina 6"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-57 +k=1 +x_0=6500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=intl +towgs84=-148,136,90,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"Campo Inchauspe / Argentina 6\",GEOGCS[\"Campo "); add_srs_wkt (p, 1, "Inchauspe\",DATUM[\"Campo_Inchauspe\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, "TOWGS84[-148,136,90,0,0,0,0],AUTHORITY[\"EPSG\",\"6221\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4221\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-90]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-57],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",1],PARAMETER[\"false_easting\",6500000],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 11, "G\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"22196\"]]"); p = add_epsg_def (filter, first, last, 22197, "epsg", 22197, "Campo Inchauspe / Argentina 7"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-54 +k=1 +x_0=7500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=intl +towgs84=-148,136,90,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"Campo Inchauspe / Argentina 7\",GEOGCS[\"Campo "); add_srs_wkt (p, 1, "Inchauspe\",DATUM[\"Campo_Inchauspe\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, "TOWGS84[-148,136,90,0,0,0,0],AUTHORITY[\"EPSG\",\"6221\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4221\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-90]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-54],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",1],PARAMETER[\"false_easting\",7500000],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 11, "G\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"22197\"]]"); p = add_epsg_def (filter, first, last, 22234, "epsg", 22234, "Cape / UTM zone 34S"); add_proj4text (p, 0, "+proj=utm +zone=34 +south +a=6378249.145 +b=6356514.9663"); add_proj4text (p, 1, "98753 +towgs84=-136,-108,-292,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Cape / UTM zone 34S\",GEOGCS[\"Cape\",DATUM[\"C"); add_srs_wkt (p, 1, "ape\",SPHEROID[\"Clarke 1880 (Arc)\",6378249.145,293.466"); add_srs_wkt (p, 2, "3077,AUTHORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-29"); add_srs_wkt (p, 3, "2,0,0,0,0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 4, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 5, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"4222\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 7, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 8, "_meridian\",21],PARAMETER[\"scale_factor\",0.9996],PARAM"); add_srs_wkt (p, 9, "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 10, "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 11, "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"22234\"]]"); p = add_epsg_def (filter, first, last, 22235, "epsg", 22235, "Cape / UTM zone 35S"); add_proj4text (p, 0, "+proj=utm +zone=35 +south +a=6378249.145 +b=6356514.9663"); add_proj4text (p, 1, "98753 +towgs84=-136,-108,-292,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Cape / UTM zone 35S\",GEOGCS[\"Cape\",DATUM[\"C"); add_srs_wkt (p, 1, "ape\",SPHEROID[\"Clarke 1880 (Arc)\",6378249.145,293.466"); add_srs_wkt (p, 2, "3077,AUTHORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-29"); add_srs_wkt (p, 3, "2,0,0,0,0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 4, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 5, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"4222\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 7, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 8, "_meridian\",27],PARAMETER[\"scale_factor\",0.9996],PARAM"); add_srs_wkt (p, 9, "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 10, "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 11, "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"22235\"]]"); p = add_epsg_def (filter, first, last, 22236, "epsg", 22236, "Cape / UTM zone 36S (deprecated)"); add_proj4text (p, 0, "+proj=utm +zone=36 +south +a=6378249.145 +b=6356514.9663"); add_proj4text (p, 1, "98753 +towgs84=-136,-108,-292,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Cape / UTM zone 36S (deprecated)\",GEOGCS[\"Cap"); add_srs_wkt (p, 1, "e\",DATUM[\"Cape\",SPHEROID[\"Clarke 1880 (Arc)\",637824"); add_srs_wkt (p, 2, "9.145,293.4663077,AUTHORITY[\"EPSG\",\"7013\"]],TOWGS84["); add_srs_wkt (p, 3, "-136,-108,-292,0,0,0,0],AUTHORITY[\"EPSG\",\"6222\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AUTHORITY[\"EPSG\",\"4222\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",33],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"22236\"]]"); p = add_epsg_def (filter, first, last, 22275, "epsg", 22275, "Cape / Lo15"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=0 +y_0=0 +axis="); add_proj4text (p, 1, "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1"); add_proj4text (p, 2, "08,-292,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Cape / Lo15\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP"); add_srs_wkt (p, 1, "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,"); add_srs_wkt (p, 3, "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4222\"]],PROJECTION[\"Transverse_Mercator_South_Orien"); add_srs_wkt (p, 7, "tated\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, "central_meridian\",15],PARAMETER[\"scale_factor\",1],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\""); add_srs_wkt (p, 10, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 11, "\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22275"); add_srs_wkt (p, 12, "\"]]"); p = add_epsg_def (filter, first, last, 22277, "epsg", 22277, "Cape / Lo17"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=17 +k=1 +x_0=0 +y_0=0 +axis="); add_proj4text (p, 1, "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1"); add_proj4text (p, 2, "08,-292,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Cape / Lo17\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP"); add_srs_wkt (p, 1, "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,"); add_srs_wkt (p, 3, "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4222\"]],PROJECTION[\"Transverse_Mercator_South_Orien"); add_srs_wkt (p, 7, "tated\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, "central_meridian\",17],PARAMETER[\"scale_factor\",1],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\""); add_srs_wkt (p, 10, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 11, "\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22277"); add_srs_wkt (p, 12, "\"]]"); p = add_epsg_def (filter, first, last, 22279, "epsg", 22279, "Cape / Lo19"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=19 +k=1 +x_0=0 +y_0=0 +axis="); add_proj4text (p, 1, "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1"); add_proj4text (p, 2, "08,-292,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Cape / Lo19\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP"); add_srs_wkt (p, 1, "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,"); add_srs_wkt (p, 3, "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4222\"]],PROJECTION[\"Transverse_Mercator_South_Orien"); add_srs_wkt (p, 7, "tated\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, "central_meridian\",19],PARAMETER[\"scale_factor\",1],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\""); add_srs_wkt (p, 10, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 11, "\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22279"); add_srs_wkt (p, 12, "\"]]"); p = add_epsg_def (filter, first, last, 22281, "epsg", 22281, "Cape / Lo21"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=0 +y_0=0 +axis="); add_proj4text (p, 1, "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1"); add_proj4text (p, 2, "08,-292,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Cape / Lo21\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP"); add_srs_wkt (p, 1, "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,"); add_srs_wkt (p, 3, "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4222\"]],PROJECTION[\"Transverse_Mercator_South_Orien"); add_srs_wkt (p, 7, "tated\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, "central_meridian\",21],PARAMETER[\"scale_factor\",1],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\""); add_srs_wkt (p, 10, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 11, "\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22281"); add_srs_wkt (p, 12, "\"]]"); p = add_epsg_def (filter, first, last, 22283, "epsg", 22283, "Cape / Lo23"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=23 +k=1 +x_0=0 +y_0=0 +axis="); add_proj4text (p, 1, "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1"); add_proj4text (p, 2, "08,-292,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Cape / Lo23\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP"); add_srs_wkt (p, 1, "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,"); add_srs_wkt (p, 3, "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4222\"]],PROJECTION[\"Transverse_Mercator_South_Orien"); add_srs_wkt (p, 7, "tated\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, "central_meridian\",23],PARAMETER[\"scale_factor\",1],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\""); add_srs_wkt (p, 10, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 11, "\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22283"); add_srs_wkt (p, 12, "\"]]"); p = add_epsg_def (filter, first, last, 22285, "epsg", 22285, "Cape / Lo25"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=25 +k=1 +x_0=0 +y_0=0 +axis="); add_proj4text (p, 1, "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1"); add_proj4text (p, 2, "08,-292,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Cape / Lo25\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP"); add_srs_wkt (p, 1, "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,"); add_srs_wkt (p, 3, "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4222\"]],PROJECTION[\"Transverse_Mercator_South_Orien"); add_srs_wkt (p, 7, "tated\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, "central_meridian\",25],PARAMETER[\"scale_factor\",1],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\""); add_srs_wkt (p, 10, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 11, "\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22285"); add_srs_wkt (p, 12, "\"]]"); p = add_epsg_def (filter, first, last, 22287, "epsg", 22287, "Cape / Lo27"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=0 +y_0=0 +axis="); add_proj4text (p, 1, "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1"); add_proj4text (p, 2, "08,-292,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Cape / Lo27\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP"); add_srs_wkt (p, 1, "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,"); add_srs_wkt (p, 3, "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4222\"]],PROJECTION[\"Transverse_Mercator_South_Orien"); add_srs_wkt (p, 7, "tated\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, "central_meridian\",27],PARAMETER[\"scale_factor\",1],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\""); add_srs_wkt (p, 10, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 11, "\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22287"); add_srs_wkt (p, 12, "\"]]"); p = add_epsg_def (filter, first, last, 22289, "epsg", 22289, "Cape / Lo29"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=29 +k=1 +x_0=0 +y_0=0 +axis="); add_proj4text (p, 1, "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1"); add_proj4text (p, 2, "08,-292,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Cape / Lo29\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP"); add_srs_wkt (p, 1, "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,"); add_srs_wkt (p, 3, "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4222\"]],PROJECTION[\"Transverse_Mercator_South_Orien"); add_srs_wkt (p, 7, "tated\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, "central_meridian\",29],PARAMETER[\"scale_factor\",1],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\""); add_srs_wkt (p, 10, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 11, "\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22289"); add_srs_wkt (p, 12, "\"]]"); p = add_epsg_def (filter, first, last, 22291, "epsg", 22291, "Cape / Lo31"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=31 +k=1 +x_0=0 +y_0=0 +axis="); add_proj4text (p, 1, "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1"); add_proj4text (p, 2, "08,-292,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Cape / Lo31\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP"); add_srs_wkt (p, 1, "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,"); add_srs_wkt (p, 3, "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4222\"]],PROJECTION[\"Transverse_Mercator_South_Orien"); add_srs_wkt (p, 7, "tated\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, "central_meridian\",31],PARAMETER[\"scale_factor\",1],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\""); add_srs_wkt (p, 10, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 11, "\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22291"); add_srs_wkt (p, 12, "\"]]"); p = add_epsg_def (filter, first, last, 22293, "epsg", 22293, "Cape / Lo33"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=0 +y_0=0 +axis="); add_proj4text (p, 1, "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1"); add_proj4text (p, 2, "08,-292,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Cape / Lo33\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP"); add_srs_wkt (p, 1, "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,"); add_srs_wkt (p, 3, "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4222\"]],PROJECTION[\"Transverse_Mercator_South_Orien"); add_srs_wkt (p, 7, "tated\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, "central_meridian\",33],PARAMETER[\"scale_factor\",1],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\""); add_srs_wkt (p, 10, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 11, "\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22293"); add_srs_wkt (p, 12, "\"]]"); p = add_epsg_def (filter, first, last, 22332, "epsg", 22332, "Carthage / UTM zone 32N"); add_proj4text (p, 0, "+proj=utm +zone=32 +datum=carthage +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Carthage / UTM zone 32N\",GEOGCS[\"Carthage\",D"); add_srs_wkt (p, 1, "ATUM[\"Carthage\",SPHEROID[\"Clarke 1880 (IGN)\",6378249"); add_srs_wkt (p, 2, ".2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS"); add_srs_wkt (p, 3, "84[-263,6,431,0,0,0,0],AUTHORITY[\"EPSG\",\"6223\"]],PRI"); add_srs_wkt (p, 4, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4223\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, "R[\"central_meridian\",9],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 9, "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 11, "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"22332\"]]"); p = add_epsg_def (filter, first, last, 22391, "epsg", 22391, "Carthage / Nord Tunisie"); add_proj4text (p, 0, "+proj=lcc +lat_1=36 +lat_0=36 +lon_0=9.9 +k_0=0.99962554"); add_proj4text (p, 1, "4 +x_0=500000 +y_0=300000 +datum=carthage +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Carthage / Nord Tunisie\",GEOGCS[\"Carthage\",D"); add_srs_wkt (p, 1, "ATUM[\"Carthage\",SPHEROID[\"Clarke 1880 (IGN)\",6378249"); add_srs_wkt (p, 2, ".2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS"); add_srs_wkt (p, 3, "84[-263,6,431,0,0,0,0],AUTHORITY[\"EPSG\",\"6223\"]],PRI"); add_srs_wkt (p, 4, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4223\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 7, "formal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",36]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",9.9],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.999625544],PARAMETER[\"false_easting\",500000]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_northing\",300000],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"22391\"]]"); p = add_epsg_def (filter, first, last, 22392, "epsg", 22392, "Carthage / Sud Tunisie"); add_proj4text (p, 0, "+proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=9.9 +k_0=0.9996"); add_proj4text (p, 1, "25769 +x_0=500000 +y_0=300000 +datum=carthage +units=m +"); add_proj4text (p, 2, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Carthage / Sud Tunisie\",GEOGCS[\"Carthage\",DA"); add_srs_wkt (p, 1, "TUM[\"Carthage\",SPHEROID[\"Clarke 1880 (IGN)\",6378249."); add_srs_wkt (p, 2, "2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS8"); add_srs_wkt (p, 3, "4[-263,6,431,0,0,0,0],AUTHORITY[\"EPSG\",\"6223\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4223\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 7, "formal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",33."); add_srs_wkt (p, 8, "3],PARAMETER[\"central_meridian\",9.9],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",0.999625769],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",300000],UNIT[\"metre\",1"); add_srs_wkt (p, 11, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"22392\"]]"); p = add_epsg_def (filter, first, last, 22521, "epsg", 22521, "Corrego Alegre 1970-72 / UTM zone 21S"); add_proj4text (p, 0, "+proj=utm +zone=21 +south +ellps=intl +towgs84=-206,172,"); add_proj4text (p, 1, "-6,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Corrego Alegre 1970-72 / UTM zone 21S\",GEOGCS["); add_srs_wkt (p, 1, "\"Corrego Alegre 1970-72\",DATUM[\"Corrego_Alegre_1970_7"); add_srs_wkt (p, 2, "2\",SPHEROID[\"International 1924\",6378388,297,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7022\"]],TOWGS84[-206,172,-6,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6225\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4225"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-57]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 11, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 12, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"22521\"]]"); p = add_epsg_def (filter, first, last, 22522, "epsg", 22522, "Corrego Alegre 1970-72 / UTM zone 22S"); add_proj4text (p, 0, "+proj=utm +zone=22 +south +ellps=intl +towgs84=-206,172,"); add_proj4text (p, 1, "-6,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Corrego Alegre 1970-72 / UTM zone 22S\",GEOGCS["); add_srs_wkt (p, 1, "\"Corrego Alegre 1970-72\",DATUM[\"Corrego_Alegre_1970_7"); add_srs_wkt (p, 2, "2\",SPHEROID[\"International 1924\",6378388,297,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7022\"]],TOWGS84[-206,172,-6,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6225\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4225"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-51]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 11, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 12, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"22522\"]]"); p = add_epsg_def (filter, first, last, 22523, "epsg", 22523, "Corrego Alegre 1970-72 / UTM zone 23S"); add_proj4text (p, 0, "+proj=utm +zone=23 +south +ellps=intl +towgs84=-206,172,"); add_proj4text (p, 1, "-6,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Corrego Alegre 1970-72 / UTM zone 23S\",GEOGCS["); add_srs_wkt (p, 1, "\"Corrego Alegre 1970-72\",DATUM[\"Corrego_Alegre_1970_7"); add_srs_wkt (p, 2, "2\",SPHEROID[\"International 1924\",6378388,297,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7022\"]],TOWGS84[-206,172,-6,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6225\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4225"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-45]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 11, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 12, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"22523\"]]"); p = add_epsg_def (filter, first, last, 22524, "epsg", 22524, "Corrego Alegre 1970-72 / UTM zone 24S"); add_proj4text (p, 0, "+proj=utm +zone=24 +south +ellps=intl +towgs84=-206,172,"); add_proj4text (p, 1, "-6,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Corrego Alegre 1970-72 / UTM zone 24S\",GEOGCS["); add_srs_wkt (p, 1, "\"Corrego Alegre 1970-72\",DATUM[\"Corrego_Alegre_1970_7"); add_srs_wkt (p, 2, "2\",SPHEROID[\"International 1924\",6378388,297,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7022\"]],TOWGS84[-206,172,-6,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6225\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4225"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-39]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 11, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 12, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"22524\"]]"); p = add_epsg_def (filter, first, last, 22525, "epsg", 22525, "Corrego Alegre 1970-72 / UTM zone 25S"); add_proj4text (p, 0, "+proj=utm +zone=25 +south +ellps=intl +towgs84=-206,172,"); add_proj4text (p, 1, "-6,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Corrego Alegre 1970-72 / UTM zone 25S\",GEOGCS["); add_srs_wkt (p, 1, "\"Corrego Alegre 1970-72\",DATUM[\"Corrego_Alegre_1970_7"); add_srs_wkt (p, 2, "2\",SPHEROID[\"International 1924\",6378388,297,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7022\"]],TOWGS84[-206,172,-6,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6225\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4225"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-33]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 11, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 12, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"22525\"]]"); p = add_epsg_def (filter, first, last, 22700, "epsg", 22700, "Deir ez Zor / Levant Zone"); add_proj4text (p, 0, "+proj=lcc +lat_1=34.65 +lat_0=34.65 +lon_0=37.35 +k_0=0."); add_proj4text (p, 1, "9996256 +x_0=300000 +y_0=300000 +a=6378249.2 +b=6356515 "); add_proj4text (p, 2, "+towgs84=-190.421,8.532,238.69,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Deir ez Zor / Levant Zone\",GEOGCS[\"Deir ez Zo"); add_srs_wkt (p, 1, "r\",DATUM[\"Deir_ez_Zor\",SPHEROID[\"Clarke 1880 (IGN)\""); add_srs_wkt (p, 2, ",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\""); add_srs_wkt (p, 3, "]],TOWGS84[-190.421,8.532,238.69,0,0,0,0],AUTHORITY[\"EP"); add_srs_wkt (p, 4, "SG\",\"6227\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4227\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Lambert_Conformal_Conic_1SP\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",34.65],PARAMETER[\"central_meridian\",37"); add_srs_wkt (p, 9, ".35],PARAMETER[\"scale_factor\",0.9996256],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_easting\",300000],PARAMETER[\"false_northing\",3000"); add_srs_wkt (p, 11, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"22700"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def (filter, first, last, 22770, "epsg", 22770, "Deir ez Zor / Syria Lambert"); add_proj4text (p, 0, "+proj=lcc +lat_1=34.65 +lat_0=34.65 +lon_0=37.35 +k_0=0."); add_proj4text (p, 1, "9996256 +x_0=300000 +y_0=300000 +a=6378249.2 +b=6356515 "); add_proj4text (p, 2, "+towgs84=-190.421,8.532,238.69,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Deir ez Zor / Syria Lambert\",GEOGCS[\"Deir ez "); add_srs_wkt (p, 1, "Zor\",DATUM[\"Deir_ez_Zor\",SPHEROID[\"Clarke 1880 (IGN)"); add_srs_wkt (p, 2, "\",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011"); add_srs_wkt (p, 3, "\"]],TOWGS84[-190.421,8.532,238.69,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6227\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4227\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAMETER[\"la"); add_srs_wkt (p, 8, "titude_of_origin\",34.65],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",37.35],PARAMETER[\"scale_factor\",0.9996256],PARAMETER["); add_srs_wkt (p, 10, "\"false_easting\",300000],PARAMETER[\"false_northing\",3"); add_srs_wkt (p, 11, "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 12, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"22"); add_srs_wkt (p, 13, "770\"]]"); p = add_epsg_def (filter, first, last, 22780, "epsg", 22780, "Deir ez Zor / Levant Stereographic"); add_proj4text (p, 0, "+proj=sterea +lat_0=34.2 +lon_0=39.15 +k=0.9995341 +x_0="); add_proj4text (p, 1, "0 +y_0=0 +a=6378249.2 +b=6356515 +towgs84=-190.421,8.532"); add_proj4text (p, 2, ",238.69,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Deir ez Zor / Levant Stereographic\",GEOGCS[\"D"); add_srs_wkt (p, 1, "eir ez Zor\",DATUM[\"Deir_ez_Zor\",SPHEROID[\"Clarke 188"); add_srs_wkt (p, 2, "0 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7011\"]],TOWGS84[-190.421,8.532,238.69,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6227\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4227"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Oblique_Stereographic\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",34.2],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",39.15],PARAMETER[\"scale_factor\",0.9995341],PARAMETER["); add_srs_wkt (p, 10, "\"false_easting\",0],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"22780\"]]"); p = add_epsg_def (filter, first, last, 22832, "epsg", 22832, "Douala / UTM zone 32N (deprecated)"); add_proj4text (p, 0, "+proj=utm +zone=32 +a=6378249.2 +b=6356515 +units=m +no_"); add_proj4text (p, 1, "defs"); add_srs_wkt (p, 0, "PROJCS[\"Douala / UTM zone 32N (deprecated)\",GEOGCS[\"D"); add_srs_wkt (p, 1, "ouala\",DATUM[\"Douala\",SPHEROID[\"Clarke 1880 (IGN)\","); add_srs_wkt (p, 2, "6378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6228\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9108\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4228\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 7, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, "\",9],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 11, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "22832\"]]"); p = add_epsg_def (filter, first, last, 22991, "epsg", 22991, "Egypt 1907 / Blue Belt"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30 +lon_0=35 +k=1 +x_0=300000 +y_0=11"); add_proj4text (p, 1, "00000 +ellps=helmert +towgs84=-130,110,-13,0,0,0,0 +unit"); add_proj4text (p, 2, "s=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Egypt 1907 / Blue Belt\",GEOGCS[\"Egypt 1907\","); add_srs_wkt (p, 1, "DATUM[\"Egypt_1907\",SPHEROID[\"Helmert 1906\",6378200,2"); add_srs_wkt (p, 2, "98.3,AUTHORITY[\"EPSG\",\"7020\"]],TOWGS84[-130,110,-13,"); add_srs_wkt (p, 3, "0,0,0,0],AUTHORITY[\"EPSG\",\"6229\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 4, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 5, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"4229\"]],PROJECTION[\"Transverse_Mercator\"],PA"); add_srs_wkt (p, 7, "RAMETER[\"latitude_of_origin\",30],PARAMETER[\"central_m"); add_srs_wkt (p, 8, "eridian\",35],PARAMETER[\"scale_factor\",1],PARAMETER[\""); add_srs_wkt (p, 9, "false_easting\",300000],PARAMETER[\"false_northing\",110"); add_srs_wkt (p, 10, "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 11, "S[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"22991\"]]"); p = add_epsg_def (filter, first, last, 22992, "epsg", 22992, "Egypt 1907 / Red Belt"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30 +lon_0=31 +k=1 +x_0=615000 +y_0=81"); add_proj4text (p, 1, "0000 +ellps=helmert +towgs84=-130,110,-13,0,0,0,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Egypt 1907 / Red Belt\",GEOGCS[\"Egypt 1907\",D"); add_srs_wkt (p, 1, "ATUM[\"Egypt_1907\",SPHEROID[\"Helmert 1906\",6378200,29"); add_srs_wkt (p, 2, "8.3,AUTHORITY[\"EPSG\",\"7020\"]],TOWGS84[-130,110,-13,0"); add_srs_wkt (p, 3, ",0,0,0],AUTHORITY[\"EPSG\",\"6229\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 4, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 5, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"4229\"]],PROJECTION[\"Transverse_Mercator\"],PA"); add_srs_wkt (p, 7, "RAMETER[\"latitude_of_origin\",30],PARAMETER[\"central_m"); add_srs_wkt (p, 8, "eridian\",31],PARAMETER[\"scale_factor\",1],PARAMETER[\""); add_srs_wkt (p, 9, "false_easting\",615000],PARAMETER[\"false_northing\",810"); add_srs_wkt (p, 10, "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS"); add_srs_wkt (p, 11, "[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"22992\"]]"); p = add_epsg_def (filter, first, last, 22993, "epsg", 22993, "Egypt 1907 / Purple Belt"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30 +lon_0=27 +k=1 +x_0=700000 +y_0=20"); add_proj4text (p, 1, "0000 +ellps=helmert +towgs84=-130,110,-13,0,0,0,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Egypt 1907 / Purple Belt\",GEOGCS[\"Egypt 1907\""); add_srs_wkt (p, 1, ",DATUM[\"Egypt_1907\",SPHEROID[\"Helmert 1906\",6378200,"); add_srs_wkt (p, 2, "298.3,AUTHORITY[\"EPSG\",\"7020\"]],TOWGS84[-130,110,-13"); add_srs_wkt (p, 3, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6229\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"4229\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 7, "PARAMETER[\"latitude_of_origin\",30],PARAMETER[\"central"); add_srs_wkt (p, 8, "_meridian\",27],PARAMETER[\"scale_factor\",1],PARAMETER["); add_srs_wkt (p, 9, "\"false_easting\",700000],PARAMETER[\"false_northing\",2"); add_srs_wkt (p, 10, "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 11, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"22993\"]]"); p = add_epsg_def (filter, first, last, 22994, "epsg", 22994, "Egypt 1907 / Extended Purple Belt"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30 +lon_0=27 +k=1 +x_0=700000 +y_0=12"); add_proj4text (p, 1, "00000 +ellps=helmert +towgs84=-130,110,-13,0,0,0,0 +unit"); add_proj4text (p, 2, "s=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Egypt 1907 / Extended Purple Belt\",GEOGCS[\"Eg"); add_srs_wkt (p, 1, "ypt 1907\",DATUM[\"Egypt_1907\",SPHEROID[\"Helmert 1906\""); add_srs_wkt (p, 2, ",6378200,298.3,AUTHORITY[\"EPSG\",\"7020\"]],TOWGS84[-13"); add_srs_wkt (p, 3, "0,110,-13,0,0,0,0],AUTHORITY[\"EPSG\",\"6229\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4229\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 7, "cator\"],PARAMETER[\"latitude_of_origin\",30],PARAMETER["); add_srs_wkt (p, 8, "\"central_meridian\",27],PARAMETER[\"scale_factor\",1],P"); add_srs_wkt (p, 9, "ARAMETER[\"false_easting\",700000],PARAMETER[\"false_nor"); add_srs_wkt (p, 10, "thing\",1200000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 11, "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"22994\"]]"); p = add_epsg_def (filter, first, last, 23028, "epsg", 23028, "ED50 / UTM zone 28N"); add_proj4text (p, 0, "+proj=utm +zone=28 +ellps=intl +towgs84=-87,-98,-121,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / UTM zone 28N\",GEOGCS[\"ED50\",DATUM[\"E"); add_srs_wkt (p, 1, "uropean_Datum_1950\",SPHEROID[\"International 1924\",637"); add_srs_wkt (p, 2, "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-"); add_srs_wkt (p, 3, "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-15],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"23028\"]]"); p = add_epsg_def (filter, first, last, 23029, "epsg", 23029, "ED50 / UTM zone 29N"); add_proj4text (p, 0, "+proj=utm +zone=29 +ellps=intl +towgs84=-87,-98,-121,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / UTM zone 29N\",GEOGCS[\"ED50\",DATUM[\"E"); add_srs_wkt (p, 1, "uropean_Datum_1950\",SPHEROID[\"International 1924\",637"); add_srs_wkt (p, 2, "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-"); add_srs_wkt (p, 3, "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-9],PARAMETER[\"scale_factor\",0.9996],PARA"); add_srs_wkt (p, 9, "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); add_srs_wkt (p, 10, "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 11, "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"23029\"]]"); p = add_epsg_def (filter, first, last, 23030, "epsg", 23030, "ED50 / UTM zone 30N"); add_proj4text (p, 0, "+proj=utm +zone=30 +ellps=intl +towgs84=-87,-98,-121,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / UTM zone 30N\",GEOGCS[\"ED50\",DATUM[\"E"); add_srs_wkt (p, 1, "uropean_Datum_1950\",SPHEROID[\"International 1924\",637"); add_srs_wkt (p, 2, "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-"); add_srs_wkt (p, 3, "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-3],PARAMETER[\"scale_factor\",0.9996],PARA"); add_srs_wkt (p, 9, "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); add_srs_wkt (p, 10, "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 11, "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"23030\"]]"); p = add_epsg_def (filter, first, last, 23031, "epsg", 23031, "ED50 / UTM zone 31N"); add_proj4text (p, 0, "+proj=utm +zone=31 +ellps=intl +towgs84=-87,-98,-121,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / UTM zone 31N\",GEOGCS[\"ED50\",DATUM[\"E"); add_srs_wkt (p, 1, "uropean_Datum_1950\",SPHEROID[\"International 1924\",637"); add_srs_wkt (p, 2, "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-"); add_srs_wkt (p, 3, "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",3],PARAMETER[\"scale_factor\",0.9996],PARAM"); add_srs_wkt (p, 9, "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 10, "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 11, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"23031\"]]"); p = add_epsg_def (filter, first, last, 23032, "epsg", 23032, "ED50 / UTM zone 32N"); add_proj4text (p, 0, "+proj=utm +zone=32 +ellps=intl +towgs84=-87,-98,-121,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / UTM zone 32N\",GEOGCS[\"ED50\",DATUM[\"E"); add_srs_wkt (p, 1, "uropean_Datum_1950\",SPHEROID[\"International 1924\",637"); add_srs_wkt (p, 2, "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-"); add_srs_wkt (p, 3, "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",9],PARAMETER[\"scale_factor\",0.9996],PARAM"); add_srs_wkt (p, 9, "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 10, "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 11, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"23032\"]]"); p = add_epsg_def (filter, first, last, 23033, "epsg", 23033, "ED50 / UTM zone 33N"); add_proj4text (p, 0, "+proj=utm +zone=33 +ellps=intl +towgs84=-87,-98,-121,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / UTM zone 33N\",GEOGCS[\"ED50\",DATUM[\"E"); add_srs_wkt (p, 1, "uropean_Datum_1950\",SPHEROID[\"International 1924\",637"); add_srs_wkt (p, 2, "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-"); add_srs_wkt (p, 3, "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",15],PARAMETER[\"scale_factor\",0.9996],PARA"); add_srs_wkt (p, 9, "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); add_srs_wkt (p, 10, "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 11, "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"23033\"]]"); } #endif /* full EPSG initialization enabled/disabled */ libspatialite-4.1.1/src/srsinit/epsg_inlined_25.c0000664000175000017500000044024512163502133016667 00000000000000/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def (filter, first, last, 5013, "epsg", 5013, "PTRA08"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"PTRA08\",DATUM[\"Autonomous_Regions_of_Portugal"); add_srs_wkt (p, 1, "_2008\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 2, "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"1041\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5013\""); add_srs_wkt (p, 6, "]]"); p = add_epsg_def (filter, first, last, 5014, "epsg", 5014, "PTRA08 / UTM zone 25N"); add_proj4text (p, 0, "+proj=utm +zone=25 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PTRA08 / UTM zone 25N\",GEOGCS[\"PTRA08\",DATUM"); add_srs_wkt (p, 1, "[\"Autonomous_Regions_of_Portugal_2008\",SPHEROID[\"GRS "); add_srs_wkt (p, 2, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1041\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"5013\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",-33],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); add_srs_wkt (p, 12, "ORTH],AUTHORITY[\"EPSG\",\"5014\"]]"); p = add_epsg_def (filter, first, last, 5015, "epsg", 5015, "PTRA08 / UTM zone 26N"); add_proj4text (p, 0, "+proj=utm +zone=26 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PTRA08 / UTM zone 26N\",GEOGCS[\"PTRA08\",DATUM"); add_srs_wkt (p, 1, "[\"Autonomous_Regions_of_Portugal_2008\",SPHEROID[\"GRS "); add_srs_wkt (p, 2, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1041\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"5013\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",-27],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); add_srs_wkt (p, 12, "ORTH],AUTHORITY[\"EPSG\",\"5015\"]]"); p = add_epsg_def (filter, first, last, 5016, "epsg", 5016, "PTRA08 / UTM zone 28N"); add_proj4text (p, 0, "+proj=utm +zone=28 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PTRA08 / UTM zone 28N\",GEOGCS[\"PTRA08\",DATUM"); add_srs_wkt (p, 1, "[\"Autonomous_Regions_of_Portugal_2008\",SPHEROID[\"GRS "); add_srs_wkt (p, 2, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1041\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"5013\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",-15],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); add_srs_wkt (p, 12, "ORTH],AUTHORITY[\"EPSG\",\"5016\"]]"); p = add_epsg_def (filter, first, last, 5018, "epsg", 5018, "Lisbon / Portuguese Grid New"); add_proj4text (p, 0, "+proj=tmerc +lat_0=39.66666666666666 +lon_0=-8.131906111"); add_proj4text (p, 1, "111112 +k=1 +x_0=0 +y_0=0 +ellps=intl +towgs84=-304.046,"); add_proj4text (p, 2, "-60.576,103.64,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Lisbon / Portuguese Grid New\",GEOGCS[\"Lisbon\""); add_srs_wkt (p, 1, ",DATUM[\"Lisbon_1937\",SPHEROID[\"International 1924\",6"); add_srs_wkt (p, 2, "378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-304.04"); add_srs_wkt (p, 3, "6,-60.576,103.64,0,0,0,0],AUTHORITY[\"EPSG\",\"6207\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4207\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",39.6666"); add_srs_wkt (p, 8, "6666666666],PARAMETER[\"central_meridian\",-8.1319061111"); add_srs_wkt (p, 9, "11112],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_e"); add_srs_wkt (p, 10, "asting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS"); add_srs_wkt (p, 12, "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"5018\"]]"); p = add_epsg_def (filter, first, last, 5041, "epsg", 5041, "WGS 84 / UPS North (E,N)"); add_proj4text (p, 0, "+proj=stere +lat_0=90 +lat_ts=90 +lon_0=0 +k=0.994 +x_0="); add_proj4text (p, 1, "2000000 +y_0=2000000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UPS North (E,N)\",GEOGCS[\"WGS 84\",DA"); add_srs_wkt (p, 1, "TUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2572235"); add_srs_wkt (p, 2, "63,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"63"); add_srs_wkt (p, 3, "26\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 4, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"P"); add_srs_wkt (p, 6, "olar_Stereographic\"],PARAMETER[\"latitude_of_origin\",9"); add_srs_wkt (p, 7, "0],PARAMETER[\"central_meridian\",0],PARAMETER[\"scale_f"); add_srs_wkt (p, 8, "actor\",0.994],PARAMETER[\"false_easting\",2000000],PARA"); add_srs_wkt (p, 9, "METER[\"false_northing\",2000000],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 10, "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); add_srs_wkt (p, 11, "orthing\",NORTH],AUTHORITY[\"EPSG\",\"5041\"]]"); p = add_epsg_def (filter, first, last, 5042, "epsg", 5042, "WGS 84 / UPS South (E,N)"); add_proj4text (p, 0, "+proj=stere +lat_0=-90 +lat_ts=-90 +lon_0=0 +k=0.994 +x_"); add_proj4text (p, 1, "0=2000000 +y_0=2000000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UPS South (E,N)\",GEOGCS[\"WGS 84\",DA"); add_srs_wkt (p, 1, "TUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2572235"); add_srs_wkt (p, 2, "63,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"63"); add_srs_wkt (p, 3, "26\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 4, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"P"); add_srs_wkt (p, 6, "olar_Stereographic\"],PARAMETER[\"latitude_of_origin\",-"); add_srs_wkt (p, 7, "90],PARAMETER[\"central_meridian\",0],PARAMETER[\"scale_"); add_srs_wkt (p, 8, "factor\",0.994],PARAMETER[\"false_easting\",2000000],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_northing\",2000000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 10, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 11, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"5042\"]]"); p = add_epsg_def (filter, first, last, 5048, "epsg", 5048, "ETRS89 / TM35FIN(N,E)"); add_proj4text (p, 0, "+proj=utm +zone=35 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / TM35FIN(N,E)\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, "],PARAMETER[\"central_meridian\",27],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Eastin"); add_srs_wkt (p, 12, "g\",EAST],AUTHORITY[\"EPSG\",\"5048\"]]"); p = add_epsg_def (filter, first, last, 5069, "epsg", 5069, "NAD27 / Conus Albers"); add_proj4text (p, 0, "+proj=aea +lat_1=29.5 +lat_2=45.5 +lat_0=23 +lon_0=-96 +"); add_proj4text (p, 1, "x_0=0 +y_0=0 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Conus Albers\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4267\"]],PROJECTION[\"Albers_Conic_Equal_Area\"],PARAMET"); add_srs_wkt (p, 7, "ER[\"standard_parallel_1\",29.5],PARAMETER[\"standard_pa"); add_srs_wkt (p, 8, "rallel_2\",45.5],PARAMETER[\"latitude_of_center\",23],PA"); add_srs_wkt (p, 9, "RAMETER[\"longitude_of_center\",-96],PARAMETER[\"false_e"); add_srs_wkt (p, 10, "asting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS"); add_srs_wkt (p, 12, "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"5069\"]]"); p = add_epsg_def (filter, first, last, 5070, "epsg", 5070, "NAD83 / Conus Albers"); add_proj4text (p, 0, "+proj=aea +lat_1=29.5 +lat_2=45.5 +lat_0=23 +lon_0=-96 +"); add_proj4text (p, 1, "x_0=0 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Conus Albers\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Albers_Conic_Equal_A"); add_srs_wkt (p, 7, "rea\"],PARAMETER[\"standard_parallel_1\",29.5],PARAMETER"); add_srs_wkt (p, 8, "[\"standard_parallel_2\",45.5],PARAMETER[\"latitude_of_c"); add_srs_wkt (p, 9, "enter\",23],PARAMETER[\"longitude_of_center\",-96],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_easting\",0],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 11, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"5070\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def (filter, first, last, 5071, "epsg", 5071, "NAD83(HARN) / Conus Albers"); add_proj4text (p, 0, "+proj=aea +lat_1=29.5 +lat_2=45.5 +lat_0=23 +lon_0=-96 +"); add_proj4text (p, 1, "x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Conus Albers\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Albers_Conic_Equal_Area\"],PARAMETER[\"standard_par"); add_srs_wkt (p, 8, "allel_1\",29.5],PARAMETER[\"standard_parallel_2\",45.5],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_center\",23],PARAMETER[\"longitu"); add_srs_wkt (p, 10, "de_of_center\",-96],PARAMETER[\"false_easting\",0],PARAM"); add_srs_wkt (p, 11, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"5071\"]]"); p = add_epsg_def (filter, first, last, 5072, "epsg", 5072, "NAD83(NSRS2007) / Conus Albers"); add_proj4text (p, 0, "+proj=aea +lat_1=29.5 +lat_2=45.5 +lat_0=23 +lon_0=-96 +"); add_proj4text (p, 1, "x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Conus Albers\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 7, "59\"]],PROJECTION[\"Albers_Conic_Equal_Area\"],PARAMETER"); add_srs_wkt (p, 8, "[\"standard_parallel_1\",29.5],PARAMETER[\"standard_para"); add_srs_wkt (p, 9, "llel_2\",45.5],PARAMETER[\"latitude_of_center\",23],PARA"); add_srs_wkt (p, 10, "METER[\"longitude_of_center\",-96],PARAMETER[\"false_eas"); add_srs_wkt (p, 11, "ting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Y\",NORTH],AUTHORITY[\"EPSG\",\"5072\"]]"); p = add_epsg_def (filter, first, last, 5105, "epsg", 5105, "ETRS89 / NTM zone 5"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=5.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 5\",GEOGCS[\"ETRS89\",DATUM[\""); add_srs_wkt (p, 1, "European_Terrestrial_Reference_System_1989\",SPHEROID[\""); add_srs_wkt (p, 2, "GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "19\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",58],"); add_srs_wkt (p, 8, "PARAMETER[\"central_meridian\",5.5],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",1],PARAMETER[\"false_easting\",100000],PARAMETER["); add_srs_wkt (p, 10, "\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Eastin"); add_srs_wkt (p, 12, "g\",EAST],AUTHORITY[\"EPSG\",\"5105\"]]"); p = add_epsg_def (filter, first, last, 5106, "epsg", 5106, "ETRS89 / NTM zone 6"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=6.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 6\",GEOGCS[\"ETRS89\",DATUM[\""); add_srs_wkt (p, 1, "European_Terrestrial_Reference_System_1989\",SPHEROID[\""); add_srs_wkt (p, 2, "GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "19\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",58],"); add_srs_wkt (p, 8, "PARAMETER[\"central_meridian\",6.5],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",1],PARAMETER[\"false_easting\",100000],PARAMETER["); add_srs_wkt (p, 10, "\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Eastin"); add_srs_wkt (p, 12, "g\",EAST],AUTHORITY[\"EPSG\",\"5106\"]]"); p = add_epsg_def (filter, first, last, 5107, "epsg", 5107, "ETRS89 / NTM zone 7"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=7.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 7\",GEOGCS[\"ETRS89\",DATUM[\""); add_srs_wkt (p, 1, "European_Terrestrial_Reference_System_1989\",SPHEROID[\""); add_srs_wkt (p, 2, "GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "19\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",58],"); add_srs_wkt (p, 8, "PARAMETER[\"central_meridian\",7.5],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",1],PARAMETER[\"false_easting\",100000],PARAMETER["); add_srs_wkt (p, 10, "\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Eastin"); add_srs_wkt (p, 12, "g\",EAST],AUTHORITY[\"EPSG\",\"5107\"]]"); p = add_epsg_def (filter, first, last, 5108, "epsg", 5108, "ETRS89 / NTM zone 8"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=8.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 8\",GEOGCS[\"ETRS89\",DATUM[\""); add_srs_wkt (p, 1, "European_Terrestrial_Reference_System_1989\",SPHEROID[\""); add_srs_wkt (p, 2, "GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "19\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",58],"); add_srs_wkt (p, 8, "PARAMETER[\"central_meridian\",8.5],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",1],PARAMETER[\"false_easting\",100000],PARAMETER["); add_srs_wkt (p, 10, "\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Eastin"); add_srs_wkt (p, 12, "g\",EAST],AUTHORITY[\"EPSG\",\"5108\"]]"); p = add_epsg_def (filter, first, last, 5109, "epsg", 5109, "ETRS89 / NTM zone 9"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=9.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 9\",GEOGCS[\"ETRS89\",DATUM[\""); add_srs_wkt (p, 1, "European_Terrestrial_Reference_System_1989\",SPHEROID[\""); add_srs_wkt (p, 2, "GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "19\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",58],"); add_srs_wkt (p, 8, "PARAMETER[\"central_meridian\",9.5],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",1],PARAMETER[\"false_easting\",100000],PARAMETER["); add_srs_wkt (p, 10, "\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Eastin"); add_srs_wkt (p, 12, "g\",EAST],AUTHORITY[\"EPSG\",\"5109\"]]"); p = add_epsg_def (filter, first, last, 5110, "epsg", 5110, "ETRS89 / NTM zone 10"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=10.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 10\",GEOGCS[\"ETRS89\",DATUM["); add_srs_wkt (p, 1, "\"European_Terrestrial_Reference_System_1989\",SPHEROID["); add_srs_wkt (p, 2, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",5"); add_srs_wkt (p, 8, "8],PARAMETER[\"central_meridian\",10.5],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",1],PARAMETER[\"false_easting\",100000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E"); add_srs_wkt (p, 12, "asting\",EAST],AUTHORITY[\"EPSG\",\"5110\"]]"); p = add_epsg_def (filter, first, last, 5111, "epsg", 5111, "ETRS89 / NTM zone 11"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=11.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 11\",GEOGCS[\"ETRS89\",DATUM["); add_srs_wkt (p, 1, "\"European_Terrestrial_Reference_System_1989\",SPHEROID["); add_srs_wkt (p, 2, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",5"); add_srs_wkt (p, 8, "8],PARAMETER[\"central_meridian\",11.5],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",1],PARAMETER[\"false_easting\",100000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E"); add_srs_wkt (p, 12, "asting\",EAST],AUTHORITY[\"EPSG\",\"5111\"]]"); p = add_epsg_def (filter, first, last, 5112, "epsg", 5112, "ETRS89 / NTM zone 12"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=12.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 12\",GEOGCS[\"ETRS89\",DATUM["); add_srs_wkt (p, 1, "\"European_Terrestrial_Reference_System_1989\",SPHEROID["); add_srs_wkt (p, 2, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",5"); add_srs_wkt (p, 8, "8],PARAMETER[\"central_meridian\",12.5],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",1],PARAMETER[\"false_easting\",100000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E"); add_srs_wkt (p, 12, "asting\",EAST],AUTHORITY[\"EPSG\",\"5112\"]]"); p = add_epsg_def (filter, first, last, 5113, "epsg", 5113, "ETRS89 / NTM zone 13"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=13.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 13\",GEOGCS[\"ETRS89\",DATUM["); add_srs_wkt (p, 1, "\"European_Terrestrial_Reference_System_1989\",SPHEROID["); add_srs_wkt (p, 2, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",5"); add_srs_wkt (p, 8, "8],PARAMETER[\"central_meridian\",13.5],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",1],PARAMETER[\"false_easting\",100000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E"); add_srs_wkt (p, 12, "asting\",EAST],AUTHORITY[\"EPSG\",\"5113\"]]"); p = add_epsg_def (filter, first, last, 5114, "epsg", 5114, "ETRS89 / NTM zone 14"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=14.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 14\",GEOGCS[\"ETRS89\",DATUM["); add_srs_wkt (p, 1, "\"European_Terrestrial_Reference_System_1989\",SPHEROID["); add_srs_wkt (p, 2, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",5"); add_srs_wkt (p, 8, "8],PARAMETER[\"central_meridian\",14.5],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",1],PARAMETER[\"false_easting\",100000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E"); add_srs_wkt (p, 12, "asting\",EAST],AUTHORITY[\"EPSG\",\"5114\"]]"); p = add_epsg_def (filter, first, last, 5115, "epsg", 5115, "ETRS89 / NTM zone 15"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=15.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 15\",GEOGCS[\"ETRS89\",DATUM["); add_srs_wkt (p, 1, "\"European_Terrestrial_Reference_System_1989\",SPHEROID["); add_srs_wkt (p, 2, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",5"); add_srs_wkt (p, 8, "8],PARAMETER[\"central_meridian\",15.5],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",1],PARAMETER[\"false_easting\",100000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E"); add_srs_wkt (p, 12, "asting\",EAST],AUTHORITY[\"EPSG\",\"5115\"]]"); p = add_epsg_def (filter, first, last, 5116, "epsg", 5116, "ETRS89 / NTM zone 16"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=16.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 16\",GEOGCS[\"ETRS89\",DATUM["); add_srs_wkt (p, 1, "\"European_Terrestrial_Reference_System_1989\",SPHEROID["); add_srs_wkt (p, 2, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",5"); add_srs_wkt (p, 8, "8],PARAMETER[\"central_meridian\",16.5],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",1],PARAMETER[\"false_easting\",100000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E"); add_srs_wkt (p, 12, "asting\",EAST],AUTHORITY[\"EPSG\",\"5116\"]]"); p = add_epsg_def (filter, first, last, 5117, "epsg", 5117, "ETRS89 / NTM zone 17"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=17.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 17\",GEOGCS[\"ETRS89\",DATUM["); add_srs_wkt (p, 1, "\"European_Terrestrial_Reference_System_1989\",SPHEROID["); add_srs_wkt (p, 2, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",5"); add_srs_wkt (p, 8, "8],PARAMETER[\"central_meridian\",17.5],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",1],PARAMETER[\"false_easting\",100000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E"); add_srs_wkt (p, 12, "asting\",EAST],AUTHORITY[\"EPSG\",\"5117\"]]"); p = add_epsg_def (filter, first, last, 5118, "epsg", 5118, "ETRS89 / NTM zone 18"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=18.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 18\",GEOGCS[\"ETRS89\",DATUM["); add_srs_wkt (p, 1, "\"European_Terrestrial_Reference_System_1989\",SPHEROID["); add_srs_wkt (p, 2, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",5"); add_srs_wkt (p, 8, "8],PARAMETER[\"central_meridian\",18.5],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",1],PARAMETER[\"false_easting\",100000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E"); add_srs_wkt (p, 12, "asting\",EAST],AUTHORITY[\"EPSG\",\"5118\"]]"); p = add_epsg_def (filter, first, last, 5119, "epsg", 5119, "ETRS89 / NTM zone 19"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=19.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 19\",GEOGCS[\"ETRS89\",DATUM["); add_srs_wkt (p, 1, "\"European_Terrestrial_Reference_System_1989\",SPHEROID["); add_srs_wkt (p, 2, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",5"); add_srs_wkt (p, 8, "8],PARAMETER[\"central_meridian\",19.5],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",1],PARAMETER[\"false_easting\",100000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E"); add_srs_wkt (p, 12, "asting\",EAST],AUTHORITY[\"EPSG\",\"5119\"]]"); p = add_epsg_def (filter, first, last, 5120, "epsg", 5120, "ETRS89 / NTM zone 20"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=20.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 20\",GEOGCS[\"ETRS89\",DATUM["); add_srs_wkt (p, 1, "\"European_Terrestrial_Reference_System_1989\",SPHEROID["); add_srs_wkt (p, 2, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",5"); add_srs_wkt (p, 8, "8],PARAMETER[\"central_meridian\",20.5],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",1],PARAMETER[\"false_easting\",100000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E"); add_srs_wkt (p, 12, "asting\",EAST],AUTHORITY[\"EPSG\",\"5120\"]]"); p = add_epsg_def (filter, first, last, 5121, "epsg", 5121, "ETRS89 / NTM zone 21"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=21.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 21\",GEOGCS[\"ETRS89\",DATUM["); add_srs_wkt (p, 1, "\"European_Terrestrial_Reference_System_1989\",SPHEROID["); add_srs_wkt (p, 2, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",5"); add_srs_wkt (p, 8, "8],PARAMETER[\"central_meridian\",21.5],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",1],PARAMETER[\"false_easting\",100000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E"); add_srs_wkt (p, 12, "asting\",EAST],AUTHORITY[\"EPSG\",\"5121\"]]"); p = add_epsg_def (filter, first, last, 5122, "epsg", 5122, "ETRS89 / NTM zone 22"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=22.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 22\",GEOGCS[\"ETRS89\",DATUM["); add_srs_wkt (p, 1, "\"European_Terrestrial_Reference_System_1989\",SPHEROID["); add_srs_wkt (p, 2, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",5"); add_srs_wkt (p, 8, "8],PARAMETER[\"central_meridian\",22.5],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",1],PARAMETER[\"false_easting\",100000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E"); add_srs_wkt (p, 12, "asting\",EAST],AUTHORITY[\"EPSG\",\"5122\"]]"); p = add_epsg_def (filter, first, last, 5123, "epsg", 5123, "ETRS89 / NTM zone 23"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=23.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 23\",GEOGCS[\"ETRS89\",DATUM["); add_srs_wkt (p, 1, "\"European_Terrestrial_Reference_System_1989\",SPHEROID["); add_srs_wkt (p, 2, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",5"); add_srs_wkt (p, 8, "8],PARAMETER[\"central_meridian\",23.5],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",1],PARAMETER[\"false_easting\",100000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E"); add_srs_wkt (p, 12, "asting\",EAST],AUTHORITY[\"EPSG\",\"5123\"]]"); p = add_epsg_def (filter, first, last, 5124, "epsg", 5124, "ETRS89 / NTM zone 24"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=24.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 24\",GEOGCS[\"ETRS89\",DATUM["); add_srs_wkt (p, 1, "\"European_Terrestrial_Reference_System_1989\",SPHEROID["); add_srs_wkt (p, 2, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",5"); add_srs_wkt (p, 8, "8],PARAMETER[\"central_meridian\",24.5],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",1],PARAMETER[\"false_easting\",100000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E"); add_srs_wkt (p, 12, "asting\",EAST],AUTHORITY[\"EPSG\",\"5124\"]]"); p = add_epsg_def (filter, first, last, 5125, "epsg", 5125, "ETRS89 / NTM zone 25"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=25.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 25\",GEOGCS[\"ETRS89\",DATUM["); add_srs_wkt (p, 1, "\"European_Terrestrial_Reference_System_1989\",SPHEROID["); add_srs_wkt (p, 2, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",5"); add_srs_wkt (p, 8, "8],PARAMETER[\"central_meridian\",25.5],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",1],PARAMETER[\"false_easting\",100000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E"); add_srs_wkt (p, 12, "asting\",EAST],AUTHORITY[\"EPSG\",\"5125\"]]"); p = add_epsg_def (filter, first, last, 5126, "epsg", 5126, "ETRS89 / NTM zone 26"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=26.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 26\",GEOGCS[\"ETRS89\",DATUM["); add_srs_wkt (p, 1, "\"European_Terrestrial_Reference_System_1989\",SPHEROID["); add_srs_wkt (p, 2, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",5"); add_srs_wkt (p, 8, "8],PARAMETER[\"central_meridian\",26.5],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",1],PARAMETER[\"false_easting\",100000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E"); add_srs_wkt (p, 12, "asting\",EAST],AUTHORITY[\"EPSG\",\"5126\"]]"); p = add_epsg_def (filter, first, last, 5127, "epsg", 5127, "ETRS89 / NTM zone 27"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=27.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 27\",GEOGCS[\"ETRS89\",DATUM["); add_srs_wkt (p, 1, "\"European_Terrestrial_Reference_System_1989\",SPHEROID["); add_srs_wkt (p, 2, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",5"); add_srs_wkt (p, 8, "8],PARAMETER[\"central_meridian\",27.5],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",1],PARAMETER[\"false_easting\",100000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E"); add_srs_wkt (p, 12, "asting\",EAST],AUTHORITY[\"EPSG\",\"5127\"]]"); p = add_epsg_def (filter, first, last, 5128, "epsg", 5128, "ETRS89 / NTM zone 28"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=28.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 28\",GEOGCS[\"ETRS89\",DATUM["); add_srs_wkt (p, 1, "\"European_Terrestrial_Reference_System_1989\",SPHEROID["); add_srs_wkt (p, 2, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",5"); add_srs_wkt (p, 8, "8],PARAMETER[\"central_meridian\",28.5],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",1],PARAMETER[\"false_easting\",100000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E"); add_srs_wkt (p, 12, "asting\",EAST],AUTHORITY[\"EPSG\",\"5128\"]]"); p = add_epsg_def (filter, first, last, 5129, "epsg", 5129, "ETRS89 / NTM zone 29"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=29.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 29\",GEOGCS[\"ETRS89\",DATUM["); add_srs_wkt (p, 1, "\"European_Terrestrial_Reference_System_1989\",SPHEROID["); add_srs_wkt (p, 2, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",5"); add_srs_wkt (p, 8, "8],PARAMETER[\"central_meridian\",29.5],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",1],PARAMETER[\"false_easting\",100000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E"); add_srs_wkt (p, 12, "asting\",EAST],AUTHORITY[\"EPSG\",\"5129\"]]"); p = add_epsg_def (filter, first, last, 5130, "epsg", 5130, "ETRS89 / NTM zone 30"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=30.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 30\",GEOGCS[\"ETRS89\",DATUM["); add_srs_wkt (p, 1, "\"European_Terrestrial_Reference_System_1989\",SPHEROID["); add_srs_wkt (p, 2, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",5"); add_srs_wkt (p, 8, "8],PARAMETER[\"central_meridian\",30.5],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",1],PARAMETER[\"false_easting\",100000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E"); add_srs_wkt (p, 12, "asting\",EAST],AUTHORITY[\"EPSG\",\"5130\"]]"); p = add_epsg_def (filter, first, last, 5132, "epsg", 5132, "Tokyo 1892"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Tokyo 1892\",DATUM[\"Tokyo_1892\",SPHEROID[\"Be"); add_srs_wkt (p, 1, "ssel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 2, "7004\"]],AUTHORITY[\"EPSG\",\"1048\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 3, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 4, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"5132\"]]"); p = add_epsg_def (filter, first, last, 5167, "epsg", 5167, "Korean 1985 / East Sea Belt"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=131 +k=1 +x_0=200000 +y_0=5"); add_proj4text (p, 1, "00000 +ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Korean 1985 / East Sea Belt\",GEOGCS[\"Korean 1"); add_srs_wkt (p, 1, "985\",DATUM[\"Korean_Datum_1985\",SPHEROID[\"Bessel 1841"); add_srs_wkt (p, 2, "\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6162\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4162\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",38],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, "\",131],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_"); add_srs_wkt (p, 9, "easting\",200000],PARAMETER[\"false_northing\",500000],U"); add_srs_wkt (p, 10, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 11, ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5167\"]]"); p = add_epsg_def (filter, first, last, 5168, "epsg", 5168, "Korean 1985 / Central Belt Jeju"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=127 +k=1 +x_0=200000 +y_0=5"); add_proj4text (p, 1, "50000 +ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Korean 1985 / Central Belt Jeju\",GEOGCS[\"Kore"); add_srs_wkt (p, 1, "an 1985\",DATUM[\"Korean_Datum_1985\",SPHEROID[\"Bessel "); add_srs_wkt (p, 2, "1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"6162\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4162\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 7, "ETER[\"latitude_of_origin\",38],PARAMETER[\"central_meri"); add_srs_wkt (p, 8, "dian\",127],PARAMETER[\"scale_factor\",1],PARAMETER[\"fa"); add_srs_wkt (p, 9, "lse_easting\",200000],PARAMETER[\"false_northing\",55000"); add_srs_wkt (p, 10, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 11, "X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5168\"]"); add_srs_wkt (p, 12, "]"); p = add_epsg_def (filter, first, last, 5169, "epsg", 5169, "Tokyo 1892 / Korea West Belt"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=125 +k=1 +x_0=200000 +y_0=5"); add_proj4text (p, 1, "00000 +ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tokyo 1892 / Korea West Belt\",GEOGCS[\"Tokyo 1"); add_srs_wkt (p, 1, "892\",DATUM[\"Tokyo_1892\",SPHEROID[\"Bessel 1841\",6377"); add_srs_wkt (p, 2, "397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"1048\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5132\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",38],PARAMETER[\"central_meridian\",125],"); add_srs_wkt (p, 8, "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 9, ",200000],PARAMETER[\"false_northing\",500000],UNIT[\"met"); add_srs_wkt (p, 10, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 11, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5169\"]]"); p = add_epsg_def (filter, first, last, 5170, "epsg", 5170, "Tokyo 1892 / Korea Central Belt"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=127 +k=1 +x_0=200000 +y_0=5"); add_proj4text (p, 1, "00000 +ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tokyo 1892 / Korea Central Belt\",GEOGCS[\"Toky"); add_srs_wkt (p, 1, "o 1892\",DATUM[\"Tokyo_1892\",SPHEROID[\"Bessel 1841\",6"); add_srs_wkt (p, 2, "377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"1048\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 5, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"51"); add_srs_wkt (p, 6, "32\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 7, "atitude_of_origin\",38],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 8, "27],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 9, "ing\",200000],PARAMETER[\"false_northing\",500000],UNIT["); add_srs_wkt (p, 10, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NOR"); add_srs_wkt (p, 11, "TH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5170\"]]"); p = add_epsg_def (filter, first, last, 5171, "epsg", 5171, "Tokyo 1892 / Korea East Belt"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=129 +k=1 +x_0=200000 +y_0=5"); add_proj4text (p, 1, "00000 +ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tokyo 1892 / Korea East Belt\",GEOGCS[\"Tokyo 1"); add_srs_wkt (p, 1, "892\",DATUM[\"Tokyo_1892\",SPHEROID[\"Bessel 1841\",6377"); add_srs_wkt (p, 2, "397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"1048\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5132\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",38],PARAMETER[\"central_meridian\",129],"); add_srs_wkt (p, 8, "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 9, ",200000],PARAMETER[\"false_northing\",500000],UNIT[\"met"); add_srs_wkt (p, 10, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 11, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5171\"]]"); p = add_epsg_def (filter, first, last, 5172, "epsg", 5172, "Tokyo 1892 / Korea East Sea Belt"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=131 +k=1 +x_0=200000 +y_0=5"); add_proj4text (p, 1, "00000 +ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tokyo 1892 / Korea East Sea Belt\",GEOGCS[\"Tok"); add_srs_wkt (p, 1, "yo 1892\",DATUM[\"Tokyo_1892\",SPHEROID[\"Bessel 1841\","); add_srs_wkt (p, 2, "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1048\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5"); add_srs_wkt (p, 6, "132\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",38],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 8, "131],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eas"); add_srs_wkt (p, 9, "ting\",200000],PARAMETER[\"false_northing\",500000],UNIT"); add_srs_wkt (p, 10, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NO"); add_srs_wkt (p, 11, "RTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5172\"]]"); p = add_epsg_def (filter, first, last, 5173, "epsg", 5173, "Korean 1985 / Modified West Belt"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=125.0028902777778 +k=1 +x_0"); add_proj4text (p, 1, "=200000 +y_0=500000 +ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Korean 1985 / Modified West Belt\",GEOGCS[\"Kor"); add_srs_wkt (p, 1, "ean 1985\",DATUM[\"Korean_Datum_1985\",SPHEROID[\"Bessel"); add_srs_wkt (p, 2, " 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"700"); add_srs_wkt (p, 3, "4\"]],AUTHORITY[\"EPSG\",\"6162\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 6, "SG\",\"4162\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 7, "METER[\"latitude_of_origin\",38],PARAMETER[\"central_mer"); add_srs_wkt (p, 8, "idian\",125.0028902777778],PARAMETER[\"scale_factor\",1]"); add_srs_wkt (p, 9, ",PARAMETER[\"false_easting\",200000],PARAMETER[\"false_n"); add_srs_wkt (p, 10, "orthing\",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"5173\"]]"); p = add_epsg_def (filter, first, last, 5174, "epsg", 5174, "Korean 1985 / Modified Central Belt"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=127.0028902777778 +k=1 +x_0"); add_proj4text (p, 1, "=200000 +y_0=500000 +ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Korean 1985 / Modified Central Belt\",GEOGCS[\""); add_srs_wkt (p, 1, "Korean 1985\",DATUM[\"Korean_Datum_1985\",SPHEROID[\"Bes"); add_srs_wkt (p, 2, "sel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7004\"]],AUTHORITY[\"EPSG\",\"6162\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 4, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 5, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"4162\"]],PROJECTION[\"Transverse_Mercator\"],PA"); add_srs_wkt (p, 7, "RAMETER[\"latitude_of_origin\",38],PARAMETER[\"central_m"); add_srs_wkt (p, 8, "eridian\",127.0028902777778],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "1],PARAMETER[\"false_easting\",200000],PARAMETER[\"false"); add_srs_wkt (p, 10, "_northing\",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"5174\"]]"); p = add_epsg_def (filter, first, last, 5175, "epsg", 5175, "Korean 1985 / Modified Central Belt Jeju"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=127.0028902777778 +k=1 +x_0"); add_proj4text (p, 1, "=200000 +y_0=550000 +ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Korean 1985 / Modified Central Belt Jeju\",GEOG"); add_srs_wkt (p, 1, "CS[\"Korean 1985\",DATUM[\"Korean_Datum_1985\",SPHEROID["); add_srs_wkt (p, 2, "\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7004\"]],AUTHORITY[\"EPSG\",\"6162\"]],PRIMEM[\"Gre"); add_srs_wkt (p, 4, "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4162\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",38],PARAMETER[\"cen"); add_srs_wkt (p, 8, "tral_meridian\",127.0028902777778],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, "tor\",1],PARAMETER[\"false_easting\",200000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",550000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, "SG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHO"); add_srs_wkt (p, 12, "RITY[\"EPSG\",\"5175\"]]"); p = add_epsg_def (filter, first, last, 5176, "epsg", 5176, "Korean 1985 / Modified East Belt"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=129.0028902777778 +k=1 +x_0"); add_proj4text (p, 1, "=200000 +y_0=500000 +ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Korean 1985 / Modified East Belt\",GEOGCS[\"Kor"); add_srs_wkt (p, 1, "ean 1985\",DATUM[\"Korean_Datum_1985\",SPHEROID[\"Bessel"); add_srs_wkt (p, 2, " 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"700"); add_srs_wkt (p, 3, "4\"]],AUTHORITY[\"EPSG\",\"6162\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 6, "SG\",\"4162\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 7, "METER[\"latitude_of_origin\",38],PARAMETER[\"central_mer"); add_srs_wkt (p, 8, "idian\",129.0028902777778],PARAMETER[\"scale_factor\",1]"); add_srs_wkt (p, 9, ",PARAMETER[\"false_easting\",200000],PARAMETER[\"false_n"); add_srs_wkt (p, 10, "orthing\",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"5176\"]]"); p = add_epsg_def (filter, first, last, 5177, "epsg", 5177, "Korean 1985 / Modified East Sea Belt"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=131.0028902777778 +k=1 +x_0"); add_proj4text (p, 1, "=200000 +y_0=500000 +ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Korean 1985 / Modified East Sea Belt\",GEOGCS[\""); add_srs_wkt (p, 1, "Korean 1985\",DATUM[\"Korean_Datum_1985\",SPHEROID[\"Bes"); add_srs_wkt (p, 2, "sel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7004\"]],AUTHORITY[\"EPSG\",\"6162\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 4, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 5, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"4162\"]],PROJECTION[\"Transverse_Mercator\"],PA"); add_srs_wkt (p, 7, "RAMETER[\"latitude_of_origin\",38],PARAMETER[\"central_m"); add_srs_wkt (p, 8, "eridian\",131.0028902777778],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "1],PARAMETER[\"false_easting\",200000],PARAMETER[\"false"); add_srs_wkt (p, 10, "_northing\",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"5177\"]]"); p = add_epsg_def (filter, first, last, 5178, "epsg", 5178, "Korean 1985 / Unified CS"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=127.5 +k=0.9996 +x_0=100000"); add_proj4text (p, 1, "0 +y_0=2000000 +ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Korean 1985 / Unified CS\",GEOGCS[\"Korean 1985"); add_srs_wkt (p, 1, "\",DATUM[\"Korean_Datum_1985\",SPHEROID[\"Bessel 1841\","); add_srs_wkt (p, 2, "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"6162\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 6, "162\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",38],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 8, "127.5],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa"); add_srs_wkt (p, 9, "lse_easting\",1000000],PARAMETER[\"false_northing\",2000"); add_srs_wkt (p, 10, "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS"); add_srs_wkt (p, 11, "[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5178"); add_srs_wkt (p, 12, "\"]]"); p = add_epsg_def (filter, first, last, 5179, "epsg", 5179, "Korea 2000 / Unified CS"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=127.5 +k=0.9996 +x_0=100000"); add_proj4text (p, 1, "0 +y_0=2000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 2, "s=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Korea 2000 / Unified CS\",GEOGCS[\"Korea 2000\""); add_srs_wkt (p, 1, ",DATUM[\"Geocentric_datum_of_Korea\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6737\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4737\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, "Mercator\"],PARAMETER[\"latitude_of_origin\",38],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",127.5],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9996],PARAMETER[\"false_easting\",1000000],PARAMETER["); add_srs_wkt (p, 10, "\"false_northing\",2000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"5179\"]]"); p = add_epsg_def (filter, first, last, 5180, "epsg", 5180, "Korea 2000 / West Belt"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=125 +k=1 +x_0=200000 +y_0=5"); add_proj4text (p, 1, "00000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Korea 2000 / West Belt\",GEOGCS[\"Korea 2000\","); add_srs_wkt (p, 1, "DATUM[\"Geocentric_datum_of_Korea\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6737\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4737\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, "rcator\"],PARAMETER[\"latitude_of_origin\",38],PARAMETER"); add_srs_wkt (p, 8, "[\"central_meridian\",125],PARAMETER[\"scale_factor\",1]"); add_srs_wkt (p, 9, ",PARAMETER[\"false_easting\",200000],PARAMETER[\"false_n"); add_srs_wkt (p, 10, "orthing\",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"5180\"]]"); p = add_epsg_def (filter, first, last, 5181, "epsg", 5181, "Korea 2000 / Central Belt"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=127 +k=1 +x_0=200000 +y_0=5"); add_proj4text (p, 1, "00000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Korea 2000 / Central Belt\",GEOGCS[\"Korea 2000"); add_srs_wkt (p, 1, "\",DATUM[\"Geocentric_datum_of_Korea\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6737\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AUTHORITY[\"EPSG\",\"4737\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",38],PARAME"); add_srs_wkt (p, 8, "TER[\"central_meridian\",127],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",1],PARAMETER[\"false_easting\",200000],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_northing\",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"5181\"]]"); p = add_epsg_def (filter, first, last, 5182, "epsg", 5182, "Korea 2000 / Central Belt Jeju"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=127 +k=1 +x_0=200000 +y_0=5"); add_proj4text (p, 1, "50000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Korea 2000 / Central Belt Jeju\",GEOGCS[\"Korea"); add_srs_wkt (p, 1, " 2000\",DATUM[\"Geocentric_datum_of_Korea\",SPHEROID[\"G"); add_srs_wkt (p, 2, "RS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"701"); add_srs_wkt (p, 3, "9\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6737\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4737\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",38],"); add_srs_wkt (p, 8, "PARAMETER[\"central_meridian\",127],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",1],PARAMETER[\"false_easting\",200000],PARAMETER["); add_srs_wkt (p, 10, "\"false_northing\",550000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"5182\"]]"); p = add_epsg_def (filter, first, last, 5183, "epsg", 5183, "Korea 2000 / East Belt"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=129 +k=1 +x_0=200000 +y_0=5"); add_proj4text (p, 1, "00000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Korea 2000 / East Belt\",GEOGCS[\"Korea 2000\","); add_srs_wkt (p, 1, "DATUM[\"Geocentric_datum_of_Korea\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6737\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4737\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, "rcator\"],PARAMETER[\"latitude_of_origin\",38],PARAMETER"); add_srs_wkt (p, 8, "[\"central_meridian\",129],PARAMETER[\"scale_factor\",1]"); add_srs_wkt (p, 9, ",PARAMETER[\"false_easting\",200000],PARAMETER[\"false_n"); add_srs_wkt (p, 10, "orthing\",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"5183\"]]"); p = add_epsg_def (filter, first, last, 5184, "epsg", 5184, "Korea 2000 / East Sea Belt"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=131 +k=1 +x_0=200000 +y_0=5"); add_proj4text (p, 1, "00000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Korea 2000 / East Sea Belt\",GEOGCS[\"Korea 200"); add_srs_wkt (p, 1, "0\",DATUM[\"Geocentric_datum_of_Korea\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6737\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AUTHORITY[\"EPSG\",\"4737\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 7, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",38],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",131],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, "\",1],PARAMETER[\"false_easting\",200000],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_northing\",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, "\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"5184\"]]"); p = add_epsg_def (filter, first, last, 5185, "epsg", 5185, "Korea 2000 / West Belt 2010"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=125 +k=1 +x_0=200000 +y_0=6"); add_proj4text (p, 1, "00000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Korea 2000 / West Belt 2010\",GEOGCS[\"Korea 20"); add_srs_wkt (p, 1, "00\",DATUM[\"Geocentric_datum_of_Korea\",SPHEROID[\"GRS "); add_srs_wkt (p, 2, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6737\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4737\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",38],PAR"); add_srs_wkt (p, 8, "AMETER[\"central_meridian\",125],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, "r\",1],PARAMETER[\"false_easting\",200000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",600000],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 11, "G\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"5185\"]]"); p = add_epsg_def (filter, first, last, 5186, "epsg", 5186, "Korea 2000 / Central Belt 2010"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=127 +k=1 +x_0=200000 +y_0=6"); add_proj4text (p, 1, "00000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Korea 2000 / Central Belt 2010\",GEOGCS[\"Korea"); add_srs_wkt (p, 1, " 2000\",DATUM[\"Geocentric_datum_of_Korea\",SPHEROID[\"G"); add_srs_wkt (p, 2, "RS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"701"); add_srs_wkt (p, 3, "9\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6737\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4737\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",38],"); add_srs_wkt (p, 8, "PARAMETER[\"central_meridian\",127],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",1],PARAMETER[\"false_easting\",200000],PARAMETER["); add_srs_wkt (p, 10, "\"false_northing\",600000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"5186\"]]"); p = add_epsg_def (filter, first, last, 5187, "epsg", 5187, "Korea 2000 / East Belt 2010"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=129 +k=1 +x_0=200000 +y_0=6"); add_proj4text (p, 1, "00000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Korea 2000 / East Belt 2010\",GEOGCS[\"Korea 20"); add_srs_wkt (p, 1, "00\",DATUM[\"Geocentric_datum_of_Korea\",SPHEROID[\"GRS "); add_srs_wkt (p, 2, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6737\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4737\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",38],PAR"); add_srs_wkt (p, 8, "AMETER[\"central_meridian\",129],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, "r\",1],PARAMETER[\"false_easting\",200000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",600000],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 11, "G\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"5187\"]]"); p = add_epsg_def (filter, first, last, 5188, "epsg", 5188, "Korea 2000 / East Sea Belt 2010"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=131 +k=1 +x_0=200000 +y_0=6"); add_proj4text (p, 1, "00000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Korea 2000 / East Sea Belt 2010\",GEOGCS[\"Kore"); add_srs_wkt (p, 1, "a 2000\",DATUM[\"Geocentric_datum_of_Korea\",SPHEROID[\""); add_srs_wkt (p, 2, "GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "19\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6737\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4737\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",38],"); add_srs_wkt (p, 8, "PARAMETER[\"central_meridian\",131],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",1],PARAMETER[\"false_easting\",200000],PARAMETER["); add_srs_wkt (p, 10, "\"false_northing\",600000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"5188\"]]"); p = add_epsg_def (filter, first, last, 5223, "epsg", 5223, "WGS 84 / Gabon TM"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=12 +k=0.9996 +x_0=500000 +y_"); add_proj4text (p, 1, "0=500000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / Gabon TM\",GEOGCS[\"WGS 84\",DATUM[\"W"); add_srs_wkt (p, 1, "GS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTH"); add_srs_wkt (p, 2, "ORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],"); add_srs_wkt (p, 3, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 4, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 5, "2\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 6, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 7, "METER[\"central_meridian\",12],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 8, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 9, "false_northing\",500000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 10, "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"5223\"]]"); p = add_epsg_def (filter, first, last, 5228, "epsg", 5228, "S-JTSK/05"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +towgs84=572.213,85.334,461."); add_proj4text (p, 1, "94,4.9732,1.529,5.2484,3.5378 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"S-JTSK/05\",DATUM[\"System_Jednotne_Trigonometr"); add_srs_wkt (p, 1, "icke_Site_Katastralni_05\",SPHEROID[\"Bessel 1841\",6377"); add_srs_wkt (p, 2, "397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS8"); add_srs_wkt (p, 3, "4[572.213,85.334,461.94,4.9732,1.529,5.2484,3.5378],AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"1052\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"522"); add_srs_wkt (p, 7, "8\"]]"); p = add_epsg_def (filter, first, last, 5229, "epsg", 5229, "S-JTSK/05 (Ferro)"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +towgs84=572.213,85.334,461."); add_proj4text (p, 1, "94,4.9732,1.529,5.2484,3.5378 +pm=ferro +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"S-JTSK/05 (Ferro)\",DATUM[\"System_Jednotne_Tri"); add_srs_wkt (p, 1, "gonometricke_Site_Katastralni_05_Ferro\",SPHEROID[\"Bess"); add_srs_wkt (p, 2, "el 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "004\"]],TOWGS84[572.213,85.334,461.94,4.9732,1.529,5.248"); add_srs_wkt (p, 4, "4,3.5378],AUTHORITY[\"EPSG\",\"1055\"]],PRIMEM[\"Ferro\""); add_srs_wkt (p, 5, ",-17.66666666666667,AUTHORITY[\"EPSG\",\"8909\"]],UNIT[\""); add_srs_wkt (p, 6, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"5229\"]]"); p = add_epsg_def (filter, first, last, 5233, "epsg", 5233, "SLD99"); add_proj4text (p, 0, "+proj=longlat +a=6377276.345 +b=6356075.413140239 +towgs"); add_proj4text (p, 1, "84=-0.293,766.95,87.713,0.195704,1.69507,3.47302,-0.0393"); add_proj4text (p, 2, "38 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"SLD99\",DATUM[\"Sri_Lanka_Datum_1999\",SPHEROID"); add_srs_wkt (p, 1, "[\"Everest 1830 (1937 Adjustment)\",6377276.345,300.8017"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"7015\"]],TOWGS84[-0.293,766.95,87."); add_srs_wkt (p, 3, "713,0.195704,1.69507,3.47302,-0.039338],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"1053\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5233\"]]"); p = add_epsg_def (filter, first, last, 5234, "epsg", 5234, "Kandawala / Sri Lanka Grid"); add_proj4text (p, 0, "+proj=tmerc +lat_0=7.000480277777778 +lon_0=80.771711111"); add_proj4text (p, 1, "11112 +k=0.9999238418 +x_0=200000 +y_0=200000 +a=6377276"); add_proj4text (p, 2, ".345 +b=6356075.413140239 +towgs84=-97,787,86,0,0,0,0 +u"); add_proj4text (p, 3, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kandawala / Sri Lanka Grid\",GEOGCS[\"Kandawala"); add_srs_wkt (p, 1, "\",DATUM[\"Kandawala\",SPHEROID[\"Everest 1830 (1937 Adj"); add_srs_wkt (p, 2, "ustment)\",6377276.345,300.8017,AUTHORITY[\"EPSG\",\"701"); add_srs_wkt (p, 3, "5\"]],TOWGS84[-97,787,86,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "244\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4244\"]],PROJECTION[\""); add_srs_wkt (p, 7, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, "7.000480277777778],PARAMETER[\"central_meridian\",80.771"); add_srs_wkt (p, 9, "71111111112],PARAMETER[\"scale_factor\",0.9999238418],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_easting\",200000],PARAMETER[\"false_nort"); add_srs_wkt (p, 11, "hing\",200000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU"); add_srs_wkt (p, 13, "THORITY[\"EPSG\",\"5234\"]]"); p = add_epsg_def (filter, first, last, 5235, "epsg", 5235, "SLD99 / Sri Lanka Grid 1999"); add_proj4text (p, 0, "+proj=tmerc +lat_0=7.000471527777778 +lon_0=80.771713083"); add_proj4text (p, 1, "33334 +k=0.9999238418 +x_0=500000 +y_0=500000 +a=6377276"); add_proj4text (p, 2, ".345 +b=6356075.413140239 +towgs84=-0.293,766.95,87.713,"); add_proj4text (p, 3, "0.195704,1.69507,3.47302,-0.039338 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SLD99 / Sri Lanka Grid 1999\",GEOGCS[\"SLD99\","); add_srs_wkt (p, 1, "DATUM[\"Sri_Lanka_Datum_1999\",SPHEROID[\"Everest 1830 ("); add_srs_wkt (p, 2, "1937 Adjustment)\",6377276.345,300.8017,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7015\"]],TOWGS84[-0.293,766.95,87.713,0.195704,1.69"); add_srs_wkt (p, 4, "507,3.47302,-0.039338],AUTHORITY[\"EPSG\",\"1053\"]],PRI"); add_srs_wkt (p, 5, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 6, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"5233\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",7.000471527"); add_srs_wkt (p, 9, "777778],PARAMETER[\"central_meridian\",80.77171308333334"); add_srs_wkt (p, 10, "],PARAMETER[\"scale_factor\",0.9999238418],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_easting\",500000],PARAMETER[\"false_northing\",5000"); add_srs_wkt (p, 12, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 13, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 14, "PSG\",\"5235\"]]"); p = add_epsg_def (filter, first, last, 5243, "epsg", 5243, "ETRS89 / LCC Germany (E-N)"); add_proj4text (p, 0, "+proj=lcc +lat_1=48.66666666666666 +lat_2=53.66666666666"); add_proj4text (p, 1, "666 +lat_0=51 +lon_0=10.5 +x_0=0 +y_0=0 +ellps=GRS80 +to"); add_proj4text (p, 2, "wgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / LCC Germany (E-N)\",GEOGCS[\"ETRS89\","); add_srs_wkt (p, 1, "DATUM[\"European_Terrestrial_Reference_System_1989\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 8, "_parallel_1\",48.66666666666666],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_2\",53.66666666666666],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 10, "igin\",51],PARAMETER[\"central_meridian\",10.5],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_easting\",0],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 12, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 13, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"5243\"]]"); p = add_epsg_def (filter, first, last, 5246, "epsg", 5246, "GDBD2009"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"GDBD2009\",DATUM[\"Geocentric_Datum_Brunei_Daru"); add_srs_wkt (p, 1, "ssalam_2009\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 2, "1,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"105"); add_srs_wkt (p, 3, "6\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 4, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"9122\"]],AUTHORITY[\"EPSG\",\"5246\"]]"); p = add_epsg_def (filter, first, last, 5247, "epsg", 5247, "GDBD2009 / Brunei BRSO"); add_proj4text (p, 0, "+proj=omerc +lat_0=4 +lonc=115 +alpha=53.31580995 +k=0.9"); add_proj4text (p, 1, "9984 +x_0=0 +y_0=0 +gamma=53.13010236111111 +ellps=GRS80"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDBD2009 / Brunei BRSO\",GEOGCS[\"GDBD2009\",DA"); add_srs_wkt (p, 1, "TUM[\"Geocentric_Datum_Brunei_Darussalam_2009\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],AUTHORITY[\"EPSG\",\"1056\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 4, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 5, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"5246\"]],PROJECTION[\"Hotine_Oblique_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_center\",4],PARAMETER[\"longit"); add_srs_wkt (p, 8, "ude_of_center\",115],PARAMETER[\"azimuth\",53.31580995],"); add_srs_wkt (p, 9, "PARAMETER[\"rectified_grid_angle\",53.13010236111111],PA"); add_srs_wkt (p, 10, "RAMETER[\"scale_factor\",0.99984],PARAMETER[\"false_east"); add_srs_wkt (p, 11, "ing\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 13, "XIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5247\"]]"); p = add_epsg_def (filter, first, last, 5252, "epsg", 5252, "TUREF"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"TUREF\",DATUM[\"Turkish_National_Reference_Fram"); add_srs_wkt (p, 1, "e\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"1057\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5252\"]]"); p = add_epsg_def (filter, first, last, 5253, "epsg", 5253, "TUREF / TM27"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"TUREF / TM27\",GEOGCS[\"TUREF\",DATUM[\"Turkish"); add_srs_wkt (p, 1, "_National_Reference_Frame\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1057\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"5252\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",27],PARAMETER[\"scale_factor\",1],PARAMETER"); add_srs_wkt (p, 9, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 10, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 11, "X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5253\"]"); add_srs_wkt (p, 12, "]"); p = add_epsg_def (filter, first, last, 5254, "epsg", 5254, "TUREF / TM30"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"TUREF / TM30\",GEOGCS[\"TUREF\",DATUM[\"Turkish"); add_srs_wkt (p, 1, "_National_Reference_Frame\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1057\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"5252\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",30],PARAMETER[\"scale_factor\",1],PARAMETER"); add_srs_wkt (p, 9, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 10, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 11, "X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5254\"]"); add_srs_wkt (p, 12, "]"); p = add_epsg_def (filter, first, last, 5255, "epsg", 5255, "TUREF / TM33"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"TUREF / TM33\",GEOGCS[\"TUREF\",DATUM[\"Turkish"); add_srs_wkt (p, 1, "_National_Reference_Frame\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1057\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"5252\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",33],PARAMETER[\"scale_factor\",1],PARAMETER"); add_srs_wkt (p, 9, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 10, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 11, "X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5255\"]"); add_srs_wkt (p, 12, "]"); p = add_epsg_def (filter, first, last, 5256, "epsg", 5256, "TUREF / TM36"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=36 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"TUREF / TM36\",GEOGCS[\"TUREF\",DATUM[\"Turkish"); add_srs_wkt (p, 1, "_National_Reference_Frame\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1057\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"5252\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",36],PARAMETER[\"scale_factor\",1],PARAMETER"); add_srs_wkt (p, 9, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 10, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 11, "X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5256\"]"); add_srs_wkt (p, 12, "]"); p = add_epsg_def (filter, first, last, 5257, "epsg", 5257, "TUREF / TM39"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"TUREF / TM39\",GEOGCS[\"TUREF\",DATUM[\"Turkish"); add_srs_wkt (p, 1, "_National_Reference_Frame\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1057\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"5252\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",39],PARAMETER[\"scale_factor\",1],PARAMETER"); add_srs_wkt (p, 9, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 10, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 11, "X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5257\"]"); add_srs_wkt (p, 12, "]"); p = add_epsg_def (filter, first, last, 5258, "epsg", 5258, "TUREF / TM42"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=42 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"TUREF / TM42\",GEOGCS[\"TUREF\",DATUM[\"Turkish"); add_srs_wkt (p, 1, "_National_Reference_Frame\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1057\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"5252\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",42],PARAMETER[\"scale_factor\",1],PARAMETER"); add_srs_wkt (p, 9, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 10, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 11, "X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5258\"]"); add_srs_wkt (p, 12, "]"); p = add_epsg_def (filter, first, last, 5259, "epsg", 5259, "TUREF / TM45"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"TUREF / TM45\",GEOGCS[\"TUREF\",DATUM[\"Turkish"); add_srs_wkt (p, 1, "_National_Reference_Frame\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1057\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"5252\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",45],PARAMETER[\"scale_factor\",1],PARAMETER"); add_srs_wkt (p, 9, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 10, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 11, "X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5259\"]"); add_srs_wkt (p, 12, "]"); p = add_epsg_def (filter, first, last, 5264, "epsg", 5264, "DRUKREF 03"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"DRUKREF 03\",DATUM[\"Bhutan_National_Geodetic_D"); add_srs_wkt (p, 1, "atum\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHO"); add_srs_wkt (p, 2, "RITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"1058\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5264\"]]"); p = add_epsg_def (filter, first, last, 5266, "epsg", 5266, "DRUKREF 03 / Bhutan National Grid"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=250000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DRUKREF 03 / Bhutan National Grid\",GEOGCS[\"DR"); add_srs_wkt (p, 1, "UKREF 03\",DATUM[\"Bhutan_National_Geodetic_Datum\",SPHE"); add_srs_wkt (p, 2, "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"1058\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5264\"]],PROJECTIO"); add_srs_wkt (p, 7, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 8, "n\",0],PARAMETER[\"central_meridian\",90],PARAMETER[\"sc"); add_srs_wkt (p, 9, "ale_factor\",1],PARAMETER[\"false_easting\",250000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"5266\"]]"); p = add_epsg_def (filter, first, last, 5269, "epsg", 5269, "TUREF / 3-degree Gauss-Kruger zone 9"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=9500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"TUREF / 3-degree Gauss-Kruger zone 9\",GEOGCS[\""); add_srs_wkt (p, 1, "TUREF\",DATUM[\"Turkish_National_Reference_Frame\",SPHER"); add_srs_wkt (p, 2, "OID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "1057\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"5252\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",27],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",1],PARAMETER[\"false_easting\",9500000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"5269\"]]"); p = add_epsg_def (filter, first, last, 5270, "epsg", 5270, "TUREF / 3-degree Gauss-Kruger zone 10"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=10500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"TUREF / 3-degree Gauss-Kruger zone 10\",GEOGCS["); add_srs_wkt (p, 1, "\"TUREF\",DATUM[\"Turkish_National_Reference_Frame\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"1057\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5252\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",30],PARAMETER[\"s"); add_srs_wkt (p, 9, "cale_factor\",1],PARAMETER[\"false_easting\",10500000],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"5270\"]]"); p = add_epsg_def (filter, first, last, 5271, "epsg", 5271, "TUREF / 3-degree Gauss-Kruger zone 11"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=11500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"TUREF / 3-degree Gauss-Kruger zone 11\",GEOGCS["); add_srs_wkt (p, 1, "\"TUREF\",DATUM[\"Turkish_National_Reference_Frame\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"1057\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5252\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",33],PARAMETER[\"s"); add_srs_wkt (p, 9, "cale_factor\",1],PARAMETER[\"false_easting\",11500000],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"5271\"]]"); p = add_epsg_def (filter, first, last, 5272, "epsg", 5272, "TUREF / 3-degree Gauss-Kruger zone 12"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=36 +k=1 +x_0=12500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"TUREF / 3-degree Gauss-Kruger zone 12\",GEOGCS["); add_srs_wkt (p, 1, "\"TUREF\",DATUM[\"Turkish_National_Reference_Frame\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"1057\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5252\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",36],PARAMETER[\"s"); add_srs_wkt (p, 9, "cale_factor\",1],PARAMETER[\"false_easting\",12500000],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"5272\"]]"); p = add_epsg_def (filter, first, last, 5273, "epsg", 5273, "TUREF / 3-degree Gauss-Kruger zone 13"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=13500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"TUREF / 3-degree Gauss-Kruger zone 13\",GEOGCS["); add_srs_wkt (p, 1, "\"TUREF\",DATUM[\"Turkish_National_Reference_Frame\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"1057\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5252\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",39],PARAMETER[\"s"); add_srs_wkt (p, 9, "cale_factor\",1],PARAMETER[\"false_easting\",13500000],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"5273\"]]"); p = add_epsg_def (filter, first, last, 5274, "epsg", 5274, "TUREF / 3-degree Gauss-Kruger zone 14"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=42 +k=1 +x_0=14500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"TUREF / 3-degree Gauss-Kruger zone 14\",GEOGCS["); add_srs_wkt (p, 1, "\"TUREF\",DATUM[\"Turkish_National_Reference_Frame\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"1057\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5252\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",42],PARAMETER[\"s"); add_srs_wkt (p, 9, "cale_factor\",1],PARAMETER[\"false_easting\",14500000],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"5274\"]]"); p = add_epsg_def (filter, first, last, 5275, "epsg", 5275, "TUREF / 3-degree Gauss-Kruger zone 15"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=15500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"TUREF / 3-degree Gauss-Kruger zone 15\",GEOGCS["); add_srs_wkt (p, 1, "\"TUREF\",DATUM[\"Turkish_National_Reference_Frame\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"1057\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5252\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",45],PARAMETER[\"s"); add_srs_wkt (p, 9, "cale_factor\",1],PARAMETER[\"false_easting\",15500000],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"5275\"]]"); p = add_epsg_def (filter, first, last, 5292, "epsg", 5292, "DRUKREF 03 / Bumthang TM"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=90.73333333333333 +k=1 +x_0="); add_proj4text (p, 1, "250000 +y_0=-2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DRUKREF 03 / Bumthang TM\",GEOGCS[\"DRUKREF 03\""); add_srs_wkt (p, 1, ",DATUM[\"Bhutan_National_Geodetic_Datum\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1058\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"5264\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",90.73333333333333],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",1],PARAMETER[\"false_easting\",250000],"); add_srs_wkt (p, 10, "PARAMETER[\"false_northing\",-2500000],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI"); add_srs_wkt (p, 12, "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5292\"]]"); p = add_epsg_def (filter, first, last, 5293, "epsg", 5293, "DRUKREF 03 / Chhukha TM"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=89.55 +k=1 +x_0=250000 +y_0="); add_proj4text (p, 1, "-2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +n"); add_proj4text (p, 2, "o_defs"); add_srs_wkt (p, 0, "PROJCS[\"DRUKREF 03 / Chhukha TM\",GEOGCS[\"DRUKREF 03\""); add_srs_wkt (p, 1, ",DATUM[\"Bhutan_National_Geodetic_Datum\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1058\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"5264\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",89.55],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",1],PARAMETER[\"false_easting\",250000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",-2500000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"5293\"]]"); p = add_epsg_def (filter, first, last, 5294, "epsg", 5294, "DRUKREF 03 / Dagana TM"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=89.84999999999999 +k=1 +x_0="); add_proj4text (p, 1, "250000 +y_0=-2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DRUKREF 03 / Dagana TM\",GEOGCS[\"DRUKREF 03\","); add_srs_wkt (p, 1, "DATUM[\"Bhutan_National_Geodetic_Datum\",SPHEROID[\"GRS "); add_srs_wkt (p, 2, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1058\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"5264\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",89.85],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",1],PARAMETER[\"false_easting\",250000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",-2500000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"5294\"]]"); p = add_epsg_def (filter, first, last, 5295, "epsg", 5295, "DRUKREF 03 / Gasa TM"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=90.03333333333333 +k=1 +x_0="); add_proj4text (p, 1, "250000 +y_0=-2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DRUKREF 03 / Gasa TM\",GEOGCS[\"DRUKREF 03\",DA"); add_srs_wkt (p, 1, "TUM[\"Bhutan_National_Geodetic_Datum\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1058\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AUTHORITY[\"EPSG\",\"5264\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",90.03333333333333],PARAMETER[\"s"); add_srs_wkt (p, 9, "cale_factor\",1],PARAMETER[\"false_easting\",250000],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_northing\",-2500000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"5295\"]]"); p = add_epsg_def (filter, first, last, 5296, "epsg", 5296, "DRUKREF 03 / Ha TM"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=90.15000000000001 +k=1 +x_0="); add_proj4text (p, 1, "250000 +y_0=-2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DRUKREF 03 / Ha TM\",GEOGCS[\"DRUKREF 03\",DATU"); add_srs_wkt (p, 1, "M[\"Bhutan_National_Geodetic_Datum\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1058\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"5264\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, "R[\"central_meridian\",90.15],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",1],PARAMETER[\"false_easting\",250000],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_northing\",-2500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); add_srs_wkt (p, 12, "ORTH],AUTHORITY[\"EPSG\",\"5296\"]]"); p = add_epsg_def (filter, first, last, 5297, "epsg", 5297, "DRUKREF 03 / Lhuentse TM"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=91.13333333333334 +k=1 +x_0="); add_proj4text (p, 1, "250000 +y_0=-2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DRUKREF 03 / Lhuentse TM\",GEOGCS[\"DRUKREF 03\""); add_srs_wkt (p, 1, ",DATUM[\"Bhutan_National_Geodetic_Datum\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1058\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"5264\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",91.13333333333334],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",1],PARAMETER[\"false_easting\",250000],"); add_srs_wkt (p, 10, "PARAMETER[\"false_northing\",-2500000],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI"); add_srs_wkt (p, 12, "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5297\"]]"); p = add_epsg_def (filter, first, last, 5298, "epsg", 5298, "DRUKREF 03 / Mongar TM"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=91.23333333333333 +k=1 +x_0="); add_proj4text (p, 1, "250000 +y_0=-2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DRUKREF 03 / Mongar TM\",GEOGCS[\"DRUKREF 03\","); add_srs_wkt (p, 1, "DATUM[\"Bhutan_National_Geodetic_Datum\",SPHEROID[\"GRS "); add_srs_wkt (p, 2, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1058\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"5264\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",91.23333333333333],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",1],PARAMETER[\"false_easting\",250000],"); add_srs_wkt (p, 10, "PARAMETER[\"false_northing\",-2500000],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI"); add_srs_wkt (p, 12, "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5298\"]]"); p = add_epsg_def (filter, first, last, 5299, "epsg", 5299, "DRUKREF 03 / Paro TM"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=89.34999999999999 +k=1 +x_0="); add_proj4text (p, 1, "250000 +y_0=-2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DRUKREF 03 / Paro TM\",GEOGCS[\"DRUKREF 03\",DA"); add_srs_wkt (p, 1, "TUM[\"Bhutan_National_Geodetic_Datum\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1058\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AUTHORITY[\"EPSG\",\"5264\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",89.35],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",1],PARAMETER[\"false_easting\",250000],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_northing\",-2500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); add_srs_wkt (p, 12, "ORTH],AUTHORITY[\"EPSG\",\"5299\"]]"); p = add_epsg_def (filter, first, last, 5300, "epsg", 5300, "DRUKREF 03 / Pemagatshel TM"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=91.34999999999999 +k=1 +x_0="); add_proj4text (p, 1, "250000 +y_0=-2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DRUKREF 03 / Pemagatshel TM\",GEOGCS[\"DRUKREF "); add_srs_wkt (p, 1, "03\",DATUM[\"Bhutan_National_Geodetic_Datum\",SPHEROID[\""); add_srs_wkt (p, 2, "GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "19\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1058\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"5264\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, "ARAMETER[\"central_meridian\",91.35],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",1],PARAMETER[\"false_easting\",250000],PARAMETER"); add_srs_wkt (p, 10, "[\"false_northing\",-2500000],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 12, "ing\",NORTH],AUTHORITY[\"EPSG\",\"5300\"]]"); p = add_epsg_def (filter, first, last, 5301, "epsg", 5301, "DRUKREF 03 / Punakha TM"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=89.84999999999999 +k=1 +x_0="); add_proj4text (p, 1, "250000 +y_0=-2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DRUKREF 03 / Punakha TM\",GEOGCS[\"DRUKREF 03\""); add_srs_wkt (p, 1, ",DATUM[\"Bhutan_National_Geodetic_Datum\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1058\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"5264\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",89.85],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",1],PARAMETER[\"false_easting\",250000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",-2500000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"5301\"]]"); p = add_epsg_def (filter, first, last, 5302, "epsg", 5302, "DRUKREF 03 / Samdrup Jongkhar TM"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=91.56666666666666 +k=1 +x_0="); add_proj4text (p, 1, "250000 +y_0=-2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DRUKREF 03 / Samdrup Jongkhar TM\",GEOGCS[\"DRU"); add_srs_wkt (p, 1, "KREF 03\",DATUM[\"Bhutan_National_Geodetic_Datum\",SPHER"); add_srs_wkt (p, 2, "OID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "1058\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"5264\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",91.56666666666666],PA"); add_srs_wkt (p, 9, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 10, "250000],PARAMETER[\"false_northing\",-2500000],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5302\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def (filter, first, last, 5303, "epsg", 5303, "DRUKREF 03 / Samtse TM"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=89.06666666666666 +k=1 +x_0="); add_proj4text (p, 1, "250000 +y_0=-2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DRUKREF 03 / Samtse TM\",GEOGCS[\"DRUKREF 03\","); add_srs_wkt (p, 1, "DATUM[\"Bhutan_National_Geodetic_Datum\",SPHEROID[\"GRS "); add_srs_wkt (p, 2, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1058\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"5264\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",89.06666666666666],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",1],PARAMETER[\"false_easting\",250000],"); add_srs_wkt (p, 10, "PARAMETER[\"false_northing\",-2500000],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI"); add_srs_wkt (p, 12, "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5303\"]]"); p = add_epsg_def (filter, first, last, 5304, "epsg", 5304, "DRUKREF 03 / Sarpang TM"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=90.26666666666667 +k=1 +x_0="); add_proj4text (p, 1, "250000 +y_0=-2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DRUKREF 03 / Sarpang TM\",GEOGCS[\"DRUKREF 03\""); add_srs_wkt (p, 1, ",DATUM[\"Bhutan_National_Geodetic_Datum\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1058\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"5264\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",90.26666666666667],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",1],PARAMETER[\"false_easting\",250000],"); add_srs_wkt (p, 10, "PARAMETER[\"false_northing\",-2500000],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI"); add_srs_wkt (p, 12, "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5304\"]]"); p = add_epsg_def (filter, first, last, 5305, "epsg", 5305, "DRUKREF 03 / Thimphu TM"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=89.55 +k=1 +x_0=250000 +y_0="); add_proj4text (p, 1, "-2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +n"); add_proj4text (p, 2, "o_defs"); add_srs_wkt (p, 0, "PROJCS[\"DRUKREF 03 / Thimphu TM\",GEOGCS[\"DRUKREF 03\""); add_srs_wkt (p, 1, ",DATUM[\"Bhutan_National_Geodetic_Datum\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1058\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"5264\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",89.55],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",1],PARAMETER[\"false_easting\",250000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",-2500000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"5305\"]]"); } #endif /* full EPSG initialization enabled/disabled */ libspatialite-4.1.1/src/srsinit/epsg_inlined_21.c0000664000175000017500000042656612163502133016675 00000000000000/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def (filter, first, last, 4316, "epsg", 4316, "Dealul Piscului 1930"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=103.25,-100.4,-307.19"); add_proj4text (p, 1, ",0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Dealul Piscului 1930\",DATUM[\"Dealul_Piscului_"); add_srs_wkt (p, 1, "1930\",SPHEROID[\"International 1924\",6378388,297,AUTHO"); add_srs_wkt (p, 2, "RITY[\"EPSG\",\"7022\"]],TOWGS84[103.25,-100.4,-307.19,0"); add_srs_wkt (p, 3, ",0,0,0],AUTHORITY[\"EPSG\",\"6316\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 4, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 5, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"4316\"]]"); p = add_epsg_def (filter, first, last, 4317, "epsg", 4317, "Dealul Piscului 1970"); add_proj4text (p, 0, "+proj=longlat +ellps=krass +towgs84=28,-121,-77,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Dealul Piscului 1970\",DATUM[\"Dealul_Piscului_"); add_srs_wkt (p, 1, "1970\",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHOR"); add_srs_wkt (p, 2, "ITY[\"EPSG\",\"7024\"]],TOWGS84[28,-121,-77,0,0,0,0],AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"6317\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 5, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"43"); add_srs_wkt (p, 6, "17\"]]"); p = add_epsg_def (filter, first, last, 4318, "epsg", 4318, "NGN"); add_proj4text (p, 0, "+proj=longlat +ellps=WGS84 +towgs84=-3.2,-5.7,2.8,0,0,0,"); add_proj4text (p, 1, "0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"NGN\",DATUM[\"National_Geodetic_Network\",SPHER"); add_srs_wkt (p, 1, "OID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 2, "\"7030\"]],TOWGS84[-3.2,-5.7,2.8,0,0,0,0],AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"6318\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4318\"]]"); p = add_epsg_def (filter, first, last, 4319, "epsg", 4319, "KUDAMS"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=-20.8,11.3,2.4,0,0,0"); add_proj4text (p, 1, ",0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"KUDAMS\",DATUM[\"Kuwait_Utility\",SPHEROID[\"GR"); add_srs_wkt (p, 1, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 2, "\"]],TOWGS84[-20.8,11.3,2.4,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"6319\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 4, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4319\"]]"); p = add_epsg_def (filter, first, last, 4322, "epsg", 4322, "WGS 72"); add_proj4text (p, 0, "+proj=longlat +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.554,0."); add_proj4text (p, 1, "2263 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"WGS 72\",DATUM[\"WGS_1972\",SPHEROID[\"WGS 72\""); add_srs_wkt (p, 1, ",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TOWGS84[0,"); add_srs_wkt (p, 2, "0,4.5,0,0,0.554,0.2263],AUTHORITY[\"EPSG\",\"6322\"]],PR"); add_srs_wkt (p, 3, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 4, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 5, "]],AUTHORITY[\"EPSG\",\"4322\"]]"); p = add_epsg_def (filter, first, last, 4324, "epsg", 4324, "WGS 72BE"); add_proj4text (p, 0, "+proj=longlat +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0"); add_proj4text (p, 1, ".38 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"WGS 72BE\",DATUM[\"WGS_1972_Transit_Broadcast_E"); add_srs_wkt (p, 1, "phemeris\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORITY["); add_srs_wkt (p, 2, "\"EPSG\",\"7043\"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"6324\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 5, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"43"); add_srs_wkt (p, 6, "24\"]]"); p = add_epsg_def (filter, first, last, 4399, "epsg", 4399, "NAD27 / BLM 59N (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=171 +k=0.9996 +x_0=500000.00"); add_proj4text (p, 1, "1016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / BLM 59N (ftUS)\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 7, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, "\",171],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"f"); add_srs_wkt (p, 9, "alse_easting\",1640416.67],PARAMETER[\"false_northing\","); add_srs_wkt (p, 10, "0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY["); add_srs_wkt (p, 11, "\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"4399\"]]"); p = add_epsg_def (filter, first, last, 4400, "epsg", 4400, "NAD27 / BLM 60N (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=177 +k=0.9996 +x_0=500000.00"); add_proj4text (p, 1, "1016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / BLM 60N (ftUS)\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 7, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, "\",177],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"f"); add_srs_wkt (p, 9, "alse_easting\",1640416.67],PARAMETER[\"false_northing\","); add_srs_wkt (p, 10, "0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY["); add_srs_wkt (p, 11, "\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"4400\"]]"); p = add_epsg_def (filter, first, last, 4401, "epsg", 4401, "NAD27 / BLM 1N (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-177 +k=0.9996 +x_0=500000.0"); add_proj4text (p, 1, "01016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / BLM 1N (ftUS)\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-177],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa"); add_srs_wkt (p, 9, "lse_easting\",1640416.67],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 10, "],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"4401\"]]"); p = add_epsg_def (filter, first, last, 4402, "epsg", 4402, "NAD27 / BLM 2N (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-171 +k=0.9996 +x_0=500000.0"); add_proj4text (p, 1, "01016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / BLM 2N (ftUS)\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-171],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa"); add_srs_wkt (p, 9, "lse_easting\",1640416.67],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 10, "],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"4402\"]]"); p = add_epsg_def (filter, first, last, 4403, "epsg", 4403, "NAD27 / BLM 3N (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-165 +k=0.9996 +x_0=500000.0"); add_proj4text (p, 1, "01016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / BLM 3N (ftUS)\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-165],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa"); add_srs_wkt (p, 9, "lse_easting\",1640416.67],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 10, "],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"4403\"]]"); p = add_epsg_def (filter, first, last, 4404, "epsg", 4404, "NAD27 / BLM 4N (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-159 +k=0.9996 +x_0=500000.0"); add_proj4text (p, 1, "01016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / BLM 4N (ftUS)\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-159],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa"); add_srs_wkt (p, 9, "lse_easting\",1640416.67],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 10, "],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"4404\"]]"); p = add_epsg_def (filter, first, last, 4405, "epsg", 4405, "NAD27 / BLM 5N (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-153 +k=0.9996 +x_0=500000.0"); add_proj4text (p, 1, "01016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / BLM 5N (ftUS)\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-153],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa"); add_srs_wkt (p, 9, "lse_easting\",1640416.67],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 10, "],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"4405\"]]"); p = add_epsg_def (filter, first, last, 4406, "epsg", 4406, "NAD27 / BLM 6N (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-147 +k=0.9996 +x_0=500000.0"); add_proj4text (p, 1, "01016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / BLM 6N (ftUS)\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-147],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa"); add_srs_wkt (p, 9, "lse_easting\",1640416.67],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 10, "],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"4406\"]]"); p = add_epsg_def (filter, first, last, 4407, "epsg", 4407, "NAD27 / BLM 7N (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-141 +k=0.9996 +x_0=500000.0"); add_proj4text (p, 1, "01016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / BLM 7N (ftUS)\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-141],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa"); add_srs_wkt (p, 9, "lse_easting\",1640416.67],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 10, "],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"4407\"]]"); p = add_epsg_def (filter, first, last, 4408, "epsg", 4408, "NAD27 / BLM 8N (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-135 +k=0.9996 +x_0=500000.0"); add_proj4text (p, 1, "01016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / BLM 8N (ftUS)\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-135],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa"); add_srs_wkt (p, 9, "lse_easting\",1640416.67],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 10, "],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"4408\"]]"); p = add_epsg_def (filter, first, last, 4409, "epsg", 4409, "NAD27 / BLM 9N (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-129 +k=0.9996 +x_0=500000.0"); add_proj4text (p, 1, "01016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / BLM 9N (ftUS)\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-129],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa"); add_srs_wkt (p, 9, "lse_easting\",1640416.67],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 10, "],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"4409\"]]"); p = add_epsg_def (filter, first, last, 4410, "epsg", 4410, "NAD27 / BLM 10N (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-123 +k=0.9996 +x_0=500000.0"); add_proj4text (p, 1, "01016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / BLM 10N (ftUS)\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 7, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, "\",-123],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 9, "false_easting\",1640416.67],PARAMETER[\"false_northing\""); add_srs_wkt (p, 10, ",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"4410\"]]"); p = add_epsg_def (filter, first, last, 4411, "epsg", 4411, "NAD27 / BLM 11N (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-117 +k=0.9996 +x_0=500000.0"); add_proj4text (p, 1, "01016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / BLM 11N (ftUS)\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 7, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, "\",-117],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 9, "false_easting\",1640416.67],PARAMETER[\"false_northing\""); add_srs_wkt (p, 10, ",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"4411\"]]"); p = add_epsg_def (filter, first, last, 4412, "epsg", 4412, "NAD27 / BLM 12N (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-111 +k=0.9996 +x_0=500000.0"); add_proj4text (p, 1, "01016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / BLM 12N (ftUS)\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 7, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, "\",-111],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 9, "false_easting\",1640416.67],PARAMETER[\"false_northing\""); add_srs_wkt (p, 10, ",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"4412\"]]"); p = add_epsg_def (filter, first, last, 4413, "epsg", 4413, "NAD27 / BLM 13N (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-105 +k=0.9996 +x_0=500000.0"); add_proj4text (p, 1, "01016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / BLM 13N (ftUS)\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 7, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, "\",-105],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 9, "false_easting\",1640416.67],PARAMETER[\"false_northing\""); add_srs_wkt (p, 10, ",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"4413\"]]"); p = add_epsg_def (filter, first, last, 4414, "epsg", 4414, "NAD83(HARN) / Guam Map Grid"); add_proj4text (p, 0, "+proj=tmerc +lat_0=13.5 +lon_0=144.75 +k=1 +x_0=100000 +"); add_proj4text (p, 1, "y_0=200000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Guam Map Grid\",GEOGCS[\"NAD83(HA"); add_srs_wkt (p, 1, "RN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",13.5],PARAMETER[\"central_meridian\",144.75],PARAME"); add_srs_wkt (p, 9, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",1000"); add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",200000],UNIT[\"metre\","); add_srs_wkt (p, 11, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Y\",NORTH],AUTHORITY[\"EPSG\",\"4414\"]]"); p = add_epsg_def (filter, first, last, 4415, "epsg", 4415, "Katanga 1955 / Katanga Lambert"); add_proj4text (p, 0, "+proj=lcc +lat_1=-6.5 +lat_2=-11.5 +lat_0=-9 +lon_0=26 +"); add_proj4text (p, 1, "x_0=500000 +y_0=500000 +ellps=clrk66 +towgs84=-103.746,-"); add_proj4text (p, 2, "9.614,-255.95,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Katanga 1955 / Katanga Lambert\",GEOGCS[\"Katan"); add_srs_wkt (p, 1, "ga 1955\",DATUM[\"Katanga_1955\",SPHEROID[\"Clarke 1866\""); add_srs_wkt (p, 2, ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); add_srs_wkt (p, 3, "]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6695\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4695\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"st"); add_srs_wkt (p, 8, "andard_parallel_1\",-6.5],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 9, "2\",-11.5],PARAMETER[\"latitude_of_origin\",-9],PARAMETE"); add_srs_wkt (p, 10, "R[\"central_meridian\",26],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",500000],UNIT[\"metre"); add_srs_wkt (p, 12, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS"); add_srs_wkt (p, 13, "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"4415\"]]"); p = add_epsg_def (filter, first, last, 4417, "epsg", 4417, "Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 7"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=7500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=26,-121,-78,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 7"); add_srs_wkt (p, 1, "\",GEOGCS[\"Pulkovo 1942(83)\",DATUM[\"Pulkovo_1942_83\""); add_srs_wkt (p, 2, ",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7024\"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6178\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4178\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",21],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",75"); add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 12, "\",EAST],AUTHORITY[\"EPSG\",\"4417\"]]"); p = add_epsg_def (filter, first, last, 4418, "epsg", 4418, "NAD27 / BLM 18N (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-75 +k=0.9996 +x_0=500000.00"); add_proj4text (p, 1, "1016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / BLM 18N (ftUS)\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 7, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, "\",-75],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"f"); add_srs_wkt (p, 9, "alse_easting\",1640416.67],PARAMETER[\"false_northing\","); add_srs_wkt (p, 10, "0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY["); add_srs_wkt (p, 11, "\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"4418\"]]"); p = add_epsg_def (filter, first, last, 4419, "epsg", 4419, "NAD27 / BLM 19N (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-69 +k=0.9996 +x_0=500000.00"); add_proj4text (p, 1, "1016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / BLM 19N (ftUS)\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 7, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, "\",-69],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"f"); add_srs_wkt (p, 9, "alse_easting\",1640416.67],PARAMETER[\"false_northing\","); add_srs_wkt (p, 10, "0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY["); add_srs_wkt (p, 11, "\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"4419\"]]"); p = add_epsg_def (filter, first, last, 4420, "epsg", 4420, "NAD83 / BLM 60N (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=177 +k=0.9996 +x_0=500000.00"); add_proj4text (p, 1, "1016002 +y_0=0 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / BLM 60N (ftUS)\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 7, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 8, "ntral_meridian\",177],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 9, ",PARAMETER[\"false_easting\",1640416.67],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012"); add_srs_wkt (p, 11, "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS["); add_srs_wkt (p, 12, "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"4420\"]]"); p = add_epsg_def (filter, first, last, 4421, "epsg", 4421, "NAD83 / BLM 1N (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-177 +k=0.9996 +x_0=500000.0"); add_proj4text (p, 1, "01016002 +y_0=0 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / BLM 1N (ftUS)\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 8, "ral_meridian\",-177],PARAMETER[\"scale_factor\",0.9996],"); add_srs_wkt (p, 9, "PARAMETER[\"false_easting\",1640416.67],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_northing\",0],UNIT[\"US survey foot\",0.30480060960121"); add_srs_wkt (p, 11, "92,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Y\",NORTH],AUTHORITY[\"EPSG\",\"4421\"]]"); p = add_epsg_def (filter, first, last, 4422, "epsg", 4422, "NAD83 / BLM 2N (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-171 +k=0.9996 +x_0=500000.0"); add_proj4text (p, 1, "01016002 +y_0=0 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / BLM 2N (ftUS)\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 8, "ral_meridian\",-171],PARAMETER[\"scale_factor\",0.9996],"); add_srs_wkt (p, 9, "PARAMETER[\"false_easting\",1640416.67],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_northing\",0],UNIT[\"US survey foot\",0.30480060960121"); add_srs_wkt (p, 11, "92,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Y\",NORTH],AUTHORITY[\"EPSG\",\"4422\"]]"); p = add_epsg_def (filter, first, last, 4423, "epsg", 4423, "NAD83 / BLM 3N (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-165 +k=0.9996 +x_0=500000.0"); add_proj4text (p, 1, "01016002 +y_0=0 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / BLM 3N (ftUS)\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 8, "ral_meridian\",-165],PARAMETER[\"scale_factor\",0.9996],"); add_srs_wkt (p, 9, "PARAMETER[\"false_easting\",1640416.67],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_northing\",0],UNIT[\"US survey foot\",0.30480060960121"); add_srs_wkt (p, 11, "92,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Y\",NORTH],AUTHORITY[\"EPSG\",\"4423\"]]"); p = add_epsg_def (filter, first, last, 4424, "epsg", 4424, "NAD83 / BLM 4N (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-159 +k=0.9996 +x_0=500000.0"); add_proj4text (p, 1, "01016002 +y_0=0 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / BLM 4N (ftUS)\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 8, "ral_meridian\",-159],PARAMETER[\"scale_factor\",0.9996],"); add_srs_wkt (p, 9, "PARAMETER[\"false_easting\",1640416.67],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_northing\",0],UNIT[\"US survey foot\",0.30480060960121"); add_srs_wkt (p, 11, "92,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Y\",NORTH],AUTHORITY[\"EPSG\",\"4424\"]]"); p = add_epsg_def (filter, first, last, 4425, "epsg", 4425, "NAD83 / BLM 5N (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-153 +k=0.9996 +x_0=500000.0"); add_proj4text (p, 1, "01016002 +y_0=0 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / BLM 5N (ftUS)\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 8, "ral_meridian\",-153],PARAMETER[\"scale_factor\",0.9996],"); add_srs_wkt (p, 9, "PARAMETER[\"false_easting\",1640416.67],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_northing\",0],UNIT[\"US survey foot\",0.30480060960121"); add_srs_wkt (p, 11, "92,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Y\",NORTH],AUTHORITY[\"EPSG\",\"4425\"]]"); p = add_epsg_def (filter, first, last, 4426, "epsg", 4426, "NAD83 / BLM 6N (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-147 +k=0.9996 +x_0=500000.0"); add_proj4text (p, 1, "01016002 +y_0=0 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / BLM 6N (ftUS)\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 8, "ral_meridian\",-147],PARAMETER[\"scale_factor\",0.9996],"); add_srs_wkt (p, 9, "PARAMETER[\"false_easting\",1640416.67],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_northing\",0],UNIT[\"US survey foot\",0.30480060960121"); add_srs_wkt (p, 11, "92,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Y\",NORTH],AUTHORITY[\"EPSG\",\"4426\"]]"); p = add_epsg_def (filter, first, last, 4427, "epsg", 4427, "NAD83 / BLM 7N (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-141 +k=0.9996 +x_0=500000.0"); add_proj4text (p, 1, "01016002 +y_0=0 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / BLM 7N (ftUS)\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 8, "ral_meridian\",-141],PARAMETER[\"scale_factor\",0.9996],"); add_srs_wkt (p, 9, "PARAMETER[\"false_easting\",1640416.67],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_northing\",0],UNIT[\"US survey foot\",0.30480060960121"); add_srs_wkt (p, 11, "92,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Y\",NORTH],AUTHORITY[\"EPSG\",\"4427\"]]"); p = add_epsg_def (filter, first, last, 4428, "epsg", 4428, "NAD83 / BLM 8N (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-135 +k=0.9996 +x_0=500000.0"); add_proj4text (p, 1, "01016002 +y_0=0 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / BLM 8N (ftUS)\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 8, "ral_meridian\",-135],PARAMETER[\"scale_factor\",0.9996],"); add_srs_wkt (p, 9, "PARAMETER[\"false_easting\",1640416.67],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_northing\",0],UNIT[\"US survey foot\",0.30480060960121"); add_srs_wkt (p, 11, "92,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Y\",NORTH],AUTHORITY[\"EPSG\",\"4428\"]]"); p = add_epsg_def (filter, first, last, 4429, "epsg", 4429, "NAD83 / BLM 9N (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-129 +k=0.9996 +x_0=500000.0"); add_proj4text (p, 1, "01016002 +y_0=0 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / BLM 9N (ftUS)\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 8, "ral_meridian\",-129],PARAMETER[\"scale_factor\",0.9996],"); add_srs_wkt (p, 9, "PARAMETER[\"false_easting\",1640416.67],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_northing\",0],UNIT[\"US survey foot\",0.30480060960121"); add_srs_wkt (p, 11, "92,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Y\",NORTH],AUTHORITY[\"EPSG\",\"4429\"]]"); p = add_epsg_def (filter, first, last, 4430, "epsg", 4430, "NAD83 / BLM 10N (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-123 +k=0.9996 +x_0=500000.0"); add_proj4text (p, 1, "01016002 +y_0=0 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / BLM 10N (ftUS)\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 7, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 8, "ntral_meridian\",-123],PARAMETER[\"scale_factor\",0.9996"); add_srs_wkt (p, 9, "],PARAMETER[\"false_easting\",1640416.67],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_northing\",0],UNIT[\"US survey foot\",0.304800609601"); add_srs_wkt (p, 11, "2192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS"); add_srs_wkt (p, 12, "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"4430\"]]"); p = add_epsg_def (filter, first, last, 4431, "epsg", 4431, "NAD83 / BLM 11N (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-117 +k=0.9996 +x_0=500000.0"); add_proj4text (p, 1, "01016002 +y_0=0 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / BLM 11N (ftUS)\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 7, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 8, "ntral_meridian\",-117],PARAMETER[\"scale_factor\",0.9996"); add_srs_wkt (p, 9, "],PARAMETER[\"false_easting\",1640416.67],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_northing\",0],UNIT[\"US survey foot\",0.304800609601"); add_srs_wkt (p, 11, "2192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS"); add_srs_wkt (p, 12, "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"4431\"]]"); p = add_epsg_def (filter, first, last, 4432, "epsg", 4432, "NAD83 / BLM 12N (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-111 +k=0.9996 +x_0=500000.0"); add_proj4text (p, 1, "01016002 +y_0=0 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / BLM 12N (ftUS)\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 7, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 8, "ntral_meridian\",-111],PARAMETER[\"scale_factor\",0.9996"); add_srs_wkt (p, 9, "],PARAMETER[\"false_easting\",1640416.67],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_northing\",0],UNIT[\"US survey foot\",0.304800609601"); add_srs_wkt (p, 11, "2192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS"); add_srs_wkt (p, 12, "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"4432\"]]"); p = add_epsg_def (filter, first, last, 4433, "epsg", 4433, "NAD83 / BLM 13N (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-105 +k=0.9996 +x_0=500000.0"); add_proj4text (p, 1, "01016002 +y_0=0 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / BLM 13N (ftUS)\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 7, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 8, "ntral_meridian\",-105],PARAMETER[\"scale_factor\",0.9996"); add_srs_wkt (p, 9, "],PARAMETER[\"false_easting\",1640416.67],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_northing\",0],UNIT[\"US survey foot\",0.304800609601"); add_srs_wkt (p, 11, "2192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS"); add_srs_wkt (p, 12, "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"4433\"]]"); p = add_epsg_def (filter, first, last, 4434, "epsg", 4434, "Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 8"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=8500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=26,-121,-78,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 8"); add_srs_wkt (p, 1, "\",GEOGCS[\"Pulkovo 1942(83)\",DATUM[\"Pulkovo_1942_83\""); add_srs_wkt (p, 2, ",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7024\"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6178\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4178\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",24],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",85"); add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 12, "\",EAST],AUTHORITY[\"EPSG\",\"4434\"]]"); p = add_epsg_def (filter, first, last, 4437, "epsg", 4437, "NAD83(NSRS2007) / Puerto Rico and Virgin Is."); add_proj4text (p, 0, "+proj=lcc +lat_1=18.43333333333333 +lat_2=18.03333333333"); add_proj4text (p, 1, "333 +lat_0=17.83333333333333 +lon_0=-66.43333333333334 +"); add_proj4text (p, 2, "x_0=200000 +y_0=200000 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 3, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Puerto Rico and Virgin Is.\","); add_srs_wkt (p, 1, "GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatia"); add_srs_wkt (p, 2, "l_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137,"); add_srs_wkt (p, 3, "298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,"); add_srs_wkt (p, 4, "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 5, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 6, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Coni"); add_srs_wkt (p, 8, "c_2SP\"],PARAMETER[\"standard_parallel_1\",18.4333333333"); add_srs_wkt (p, 9, "3333],PARAMETER[\"standard_parallel_2\",18.0333333333333"); add_srs_wkt (p, 10, "3],PARAMETER[\"latitude_of_origin\",17.83333333333333],P"); add_srs_wkt (p, 11, "ARAMETER[\"central_meridian\",-66.43333333333334],PARAME"); add_srs_wkt (p, 12, "TER[\"false_easting\",200000],PARAMETER[\"false_northing"); add_srs_wkt (p, 13, "\",200000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 14, "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 15, "\"4437\"]]"); p = add_epsg_def (filter, first, last, 4438, "epsg", 4438, "NAD83 / BLM 18N (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-75 +k=0.9996 +x_0=500000.00"); add_proj4text (p, 1, "1016002 +y_0=0 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / BLM 18N (ftUS)\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 7, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 8, "ntral_meridian\",-75],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 9, ",PARAMETER[\"false_easting\",1640416.67],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012"); add_srs_wkt (p, 11, "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS["); add_srs_wkt (p, 12, "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"4438\"]]"); p = add_epsg_def (filter, first, last, 4439, "epsg", 4439, "NAD83 / BLM 19N (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-69 +k=0.9996 +x_0=500000.00"); add_proj4text (p, 1, "1016002 +y_0=0 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / BLM 19N (ftUS)\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 7, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 8, "ntral_meridian\",-69],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 9, ",PARAMETER[\"false_easting\",1640416.67],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012"); add_srs_wkt (p, 11, "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS["); add_srs_wkt (p, 12, "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"4439\"]]"); p = add_epsg_def (filter, first, last, 4455, "epsg", 4455, "NAD27 / Pennsylvania South"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.96666666666667 +lat_2=39.93333333333"); add_proj4text (p, 1, "333 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=609601.2"); add_proj4text (p, 2, "192024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Pennsylvania South\",GEOGCS[\"NAD27\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186"); add_srs_wkt (p, 2, "6\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"700"); add_srs_wkt (p, 3, "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 6, "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 7, "\"],PARAMETER[\"standard_parallel_1\",40.96666666666667]"); add_srs_wkt (p, 8, ",PARAMETER[\"standard_parallel_2\",39.93333333333333],PA"); add_srs_wkt (p, 9, "RAMETER[\"latitude_of_origin\",39.33333333333334],PARAME"); add_srs_wkt (p, 10, "TER[\"central_meridian\",-77.75],PARAMETER[\"false_easti"); add_srs_wkt (p, 11, "ng\",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US "); add_srs_wkt (p, 12, "survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "03\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP"); add_srs_wkt (p, 14, "SG\",\"4455\"]]"); p = add_epsg_def (filter, first, last, 4456, "epsg", 4456, "NAD27 / New York Long Island"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666"); add_proj4text (p, 1, "666 +lat_0=40.5 +lon_0=-74 +x_0=609601.2192024384 +y_0=3"); add_proj4text (p, 2, "0480.06096012192 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / New York Long Island\",GEOGCS[\"NAD27\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1"); add_srs_wkt (p, 2, "866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 4, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 5, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2"); add_srs_wkt (p, 7, "SP\"],PARAMETER[\"standard_parallel_1\",41.0333333333333"); add_srs_wkt (p, 8, "3],PARAMETER[\"standard_parallel_2\",40.66666666666666],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",40.5],PARAMETER[\"centr"); add_srs_wkt (p, 10, "al_meridian\",-74],PARAMETER[\"false_easting\",2000000],"); add_srs_wkt (p, 11, "PARAMETER[\"false_northing\",100000],UNIT[\"US survey fo"); add_srs_wkt (p, 12, "ot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AX"); add_srs_wkt (p, 13, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"44"); add_srs_wkt (p, 14, "56\"]]"); p = add_epsg_def (filter, first, last, 4457, "epsg", 4457, "NAD83 / South Dakota North (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.68333333333333 +lat_2=44.41666666666"); add_proj4text (p, 1, "666 +lat_0=43.83333333333334 +lon_0=-100 +x_0=600000 +y_"); add_proj4text (p, 2, "0=0 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / South Dakota North (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert"); add_srs_wkt (p, 7, "_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 8, ",45.68333333333333],PARAMETER[\"standard_parallel_2\",44"); add_srs_wkt (p, 9, ".41666666666666],PARAMETER[\"latitude_of_origin\",43.833"); add_srs_wkt (p, 10, "33333333334],PARAMETER[\"central_meridian\",-100],PARAME"); add_srs_wkt (p, 11, "TER[\"false_easting\",1968500],PARAMETER[\"false_northin"); add_srs_wkt (p, 12, "g\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); add_srs_wkt (p, 14, "H],AUTHORITY[\"EPSG\",\"4457\"]]"); p = add_epsg_def (filter, first, last, 4462, "epsg", 4462, "WGS 84 / Australian Centre for Remote Sensing Lambert"); add_proj4text (p, 0, "+proj=lcc +lat_1=-18 +lat_2=-36 +lat_0=-27 +lon_0=132 +x"); add_proj4text (p, 1, "_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / Australian Centre for Remote Sensing L"); add_srs_wkt (p, 1, "ambert\",GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4326\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 7, "],PARAMETER[\"standard_parallel_1\",-18],PARAMETER[\"sta"); add_srs_wkt (p, 8, "ndard_parallel_2\",-36],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 9, ",-27],PARAMETER[\"central_meridian\",132],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"446"); add_srs_wkt (p, 13, "2\"]]"); p = add_epsg_def (filter, first, last, 4463, "epsg", 4463, "RGSPM06"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"RGSPM06\",DATUM[\"Reseau_Geodesique_de_Saint_Pi"); add_srs_wkt (p, 1, "erre_et_Miquelon_2006\",SPHEROID[\"GRS 1980\",6378137,29"); add_srs_wkt (p, 2, "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,"); add_srs_wkt (p, 3, "0,0,0,0],AUTHORITY[\"EPSG\",\"1038\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 4, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 5, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"4463\"]]"); p = add_epsg_def (filter, first, last, 4467, "epsg", 4467, "RGSPM06 / UTM zone 21N"); add_proj4text (p, 0, "+proj=utm +zone=21 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGSPM06 / UTM zone 21N\",GEOGCS[\"RGSPM06\",DAT"); add_srs_wkt (p, 1, "UM[\"Reseau_Geodesique_de_Saint_Pierre_et_Miquelon_2006\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"1038\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4463\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",0],PARAMETER[\"central_meridian\",-57],PARAMETER"); add_srs_wkt (p, 9, "[\"scale_factor\",0.9996],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS"); add_srs_wkt (p, 12, "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"4467\"]]"); p = add_epsg_def (filter, first, last, 4470, "epsg", 4470, "RGM04"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"RGM04\",DATUM[\"Reseau_Geodesique_de_Mayotte_20"); add_srs_wkt (p, 1, "04\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"1036\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4470\"]]"); p = add_epsg_def (filter, first, last, 4471, "epsg", 4471, "RGM04 / UTM zone 38S"); add_proj4text (p, 0, "+proj=utm +zone=38 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGM04 / UTM zone 38S\",GEOGCS[\"RGM04\",DATUM[\""); add_srs_wkt (p, 1, "Reseau_Geodesique_de_Mayotte_2004\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1036\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4470\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 8, "\"central_meridian\",45],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 9, "96],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); add_srs_wkt (p, 12, "ORTH],AUTHORITY[\"EPSG\",\"4471\"]]"); p = add_epsg_def (filter, first, last, 4474, "epsg", 4474, "Cadastre 1997 / UTM zone 38S"); add_proj4text (p, 0, "+proj=utm +zone=38 +south +ellps=intl +towgs84=-382,-59,"); add_proj4text (p, 1, "-262,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Cadastre 1997 / UTM zone 38S\",GEOGCS[\"Combani"); add_srs_wkt (p, 1, " 1950\",DATUM[\"Combani_1950\",SPHEROID[\"International "); add_srs_wkt (p, 2, "1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84"); add_srs_wkt (p, 3, "[-382,-59,-262,0,0,0,0],AUTHORITY[\"EPSG\",\"6632\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AUTHORITY[\"EPSG\",\"4632\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",45],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"4474\"]]"); p = add_epsg_def (filter, first, last, 4475, "epsg", 4475, "Cadastre 1997"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-381.788,-57.501,-256"); add_proj4text (p, 1, ".673,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Cadastre 1997\",DATUM[\"Cadastre_1997\",SPHEROI"); add_srs_wkt (p, 1, "D[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 2, "\"7022\"]],TOWGS84[-381.788,-57.501,-256.673,0,0,0,0],AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1037\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 6, "475\"]]"); p = add_epsg_def (filter, first, last, 4483, "epsg", 4483, "Mexican Datum of 1993"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"Mexican Datum of 1993\",DATUM[\"Mexican_Datum_o"); add_srs_wkt (p, 1, "f_1993\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"1042\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4483\""); add_srs_wkt (p, 6, "]]"); p = add_epsg_def (filter, first, last, 4484, "epsg", 4484, "Mexican Datum of 1993 / UTM zone 11N"); add_proj4text (p, 0, "+proj=utm +zone=11 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Mexican Datum of 1993 / UTM zone 11N\",GEOGCS[\""); add_srs_wkt (p, 1, "Mexican Datum of 1993\",DATUM[\"Mexican_Datum_of_1993\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"1042\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4483\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",0],PARAMETER[\"central_meridian\",-117],PARAMETE"); add_srs_wkt (p, 9, "R[\"scale_factor\",0.9996],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI"); add_srs_wkt (p, 12, "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"4484\"]]"); p = add_epsg_def (filter, first, last, 4485, "epsg", 4485, "Mexican Datum of 1993 / UTM zone 12N"); add_proj4text (p, 0, "+proj=utm +zone=12 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Mexican Datum of 1993 / UTM zone 12N\",GEOGCS[\""); add_srs_wkt (p, 1, "Mexican Datum of 1993\",DATUM[\"Mexican_Datum_of_1993\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"1042\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4483\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",0],PARAMETER[\"central_meridian\",-111],PARAMETE"); add_srs_wkt (p, 9, "R[\"scale_factor\",0.9996],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI"); add_srs_wkt (p, 12, "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"4485\"]]"); p = add_epsg_def (filter, first, last, 4486, "epsg", 4486, "Mexican Datum of 1993 / UTM zone 13N"); add_proj4text (p, 0, "+proj=utm +zone=13 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Mexican Datum of 1993 / UTM zone 13N\",GEOGCS[\""); add_srs_wkt (p, 1, "Mexican Datum of 1993\",DATUM[\"Mexican_Datum_of_1993\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"1042\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4483\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",0],PARAMETER[\"central_meridian\",-105],PARAMETE"); add_srs_wkt (p, 9, "R[\"scale_factor\",0.9996],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI"); add_srs_wkt (p, 12, "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"4486\"]]"); p = add_epsg_def (filter, first, last, 4487, "epsg", 4487, "Mexican Datum of 1993 / UTM zone 14N"); add_proj4text (p, 0, "+proj=utm +zone=14 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Mexican Datum of 1993 / UTM zone 14N\",GEOGCS[\""); add_srs_wkt (p, 1, "Mexican Datum of 1993\",DATUM[\"Mexican_Datum_of_1993\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"1042\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4483\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",0],PARAMETER[\"central_meridian\",-99],PARAMETER"); add_srs_wkt (p, 9, "[\"scale_factor\",0.9996],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS"); add_srs_wkt (p, 12, "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"4487\"]]"); p = add_epsg_def (filter, first, last, 4488, "epsg", 4488, "Mexican Datum of 1993 / UTM zone 15N"); add_proj4text (p, 0, "+proj=utm +zone=15 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Mexican Datum of 1993 / UTM zone 15N\",GEOGCS[\""); add_srs_wkt (p, 1, "Mexican Datum of 1993\",DATUM[\"Mexican_Datum_of_1993\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"1042\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4483\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",0],PARAMETER[\"central_meridian\",-93],PARAMETER"); add_srs_wkt (p, 9, "[\"scale_factor\",0.9996],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS"); add_srs_wkt (p, 12, "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"4488\"]]"); p = add_epsg_def (filter, first, last, 4489, "epsg", 4489, "Mexican Datum of 1993 / UTM zone 16N"); add_proj4text (p, 0, "+proj=utm +zone=16 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Mexican Datum of 1993 / UTM zone 16N\",GEOGCS[\""); add_srs_wkt (p, 1, "Mexican Datum of 1993\",DATUM[\"Mexican_Datum_of_1993\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"1042\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4483\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",0],PARAMETER[\"central_meridian\",-87],PARAMETER"); add_srs_wkt (p, 9, "[\"scale_factor\",0.9996],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS"); add_srs_wkt (p, 12, "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"4489\"]]"); p = add_epsg_def (filter, first, last, 4490, "epsg", 4490, "China Geodetic Coordinate System 2000"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"China Geodetic Coordinate System 2000\",DATUM[\""); add_srs_wkt (p, 1, "China_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043"); add_srs_wkt (p, 3, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 4, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"9122\"]],AUTHORITY[\"EPSG\",\"4490\"]]"); p = add_epsg_def (filter, first, last, 4491, "epsg", 4491, "CGCS2000 / Gauss-Kruger zone 13"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=13500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / Gauss-Kruger zone 13\",GEOGCS[\"Chin"); add_srs_wkt (p, 1, "a Geodetic Coordinate System 2000\",DATUM[\"China_2000\""); add_srs_wkt (p, 2, ",SPHEROID[\"CGCS2000\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, "entral_meridian\",75],PARAMETER[\"scale_factor\",1],PARA"); add_srs_wkt (p, 9, "METER[\"false_easting\",13500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 10, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 11, ",AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "4491\"]]"); p = add_epsg_def (filter, first, last, 4492, "epsg", 4492, "CGCS2000 / Gauss-Kruger zone 14"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=14500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / Gauss-Kruger zone 14\",GEOGCS[\"Chin"); add_srs_wkt (p, 1, "a Geodetic Coordinate System 2000\",DATUM[\"China_2000\""); add_srs_wkt (p, 2, ",SPHEROID[\"CGCS2000\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, "entral_meridian\",81],PARAMETER[\"scale_factor\",1],PARA"); add_srs_wkt (p, 9, "METER[\"false_easting\",14500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 10, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 11, ",AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "4492\"]]"); p = add_epsg_def (filter, first, last, 4493, "epsg", 4493, "CGCS2000 / Gauss-Kruger zone 15"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=15500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / Gauss-Kruger zone 15\",GEOGCS[\"Chin"); add_srs_wkt (p, 1, "a Geodetic Coordinate System 2000\",DATUM[\"China_2000\""); add_srs_wkt (p, 2, ",SPHEROID[\"CGCS2000\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, "entral_meridian\",87],PARAMETER[\"scale_factor\",1],PARA"); add_srs_wkt (p, 9, "METER[\"false_easting\",15500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 10, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 11, ",AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "4493\"]]"); p = add_epsg_def (filter, first, last, 4494, "epsg", 4494, "CGCS2000 / Gauss-Kruger zone 16"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=16500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / Gauss-Kruger zone 16\",GEOGCS[\"Chin"); add_srs_wkt (p, 1, "a Geodetic Coordinate System 2000\",DATUM[\"China_2000\""); add_srs_wkt (p, 2, ",SPHEROID[\"CGCS2000\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, "entral_meridian\",93],PARAMETER[\"scale_factor\",1],PARA"); add_srs_wkt (p, 9, "METER[\"false_easting\",16500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 10, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 11, ",AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "4494\"]]"); p = add_epsg_def (filter, first, last, 4495, "epsg", 4495, "CGCS2000 / Gauss-Kruger zone 17"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=17500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / Gauss-Kruger zone 17\",GEOGCS[\"Chin"); add_srs_wkt (p, 1, "a Geodetic Coordinate System 2000\",DATUM[\"China_2000\""); add_srs_wkt (p, 2, ",SPHEROID[\"CGCS2000\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, "entral_meridian\",99],PARAMETER[\"scale_factor\",1],PARA"); add_srs_wkt (p, 9, "METER[\"false_easting\",17500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 10, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 11, ",AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "4495\"]]"); p = add_epsg_def (filter, first, last, 4496, "epsg", 4496, "CGCS2000 / Gauss-Kruger zone 18"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=18500000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / Gauss-Kruger zone 18\",GEOGCS[\"Chin"); add_srs_wkt (p, 1, "a Geodetic Coordinate System 2000\",DATUM[\"China_2000\""); add_srs_wkt (p, 2, ",SPHEROID[\"CGCS2000\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, "entral_meridian\",105],PARAMETER[\"scale_factor\",1],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",18500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 10, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 11, "],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"4496\"]]"); p = add_epsg_def (filter, first, last, 4497, "epsg", 4497, "CGCS2000 / Gauss-Kruger zone 19"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=19500000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / Gauss-Kruger zone 19\",GEOGCS[\"Chin"); add_srs_wkt (p, 1, "a Geodetic Coordinate System 2000\",DATUM[\"China_2000\""); add_srs_wkt (p, 2, ",SPHEROID[\"CGCS2000\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, "entral_meridian\",111],PARAMETER[\"scale_factor\",1],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",19500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 10, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 11, "],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"4497\"]]"); p = add_epsg_def (filter, first, last, 4498, "epsg", 4498, "CGCS2000 / Gauss-Kruger zone 20"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=20500000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / Gauss-Kruger zone 20\",GEOGCS[\"Chin"); add_srs_wkt (p, 1, "a Geodetic Coordinate System 2000\",DATUM[\"China_2000\""); add_srs_wkt (p, 2, ",SPHEROID[\"CGCS2000\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, "entral_meridian\",117],PARAMETER[\"scale_factor\",1],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",20500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 10, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 11, "],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"4498\"]]"); p = add_epsg_def (filter, first, last, 4499, "epsg", 4499, "CGCS2000 / Gauss-Kruger zone 21"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=21500000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / Gauss-Kruger zone 21\",GEOGCS[\"Chin"); add_srs_wkt (p, 1, "a Geodetic Coordinate System 2000\",DATUM[\"China_2000\""); add_srs_wkt (p, 2, ",SPHEROID[\"CGCS2000\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, "entral_meridian\",123],PARAMETER[\"scale_factor\",1],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",21500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 10, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 11, "],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"4499\"]]"); p = add_epsg_def (filter, first, last, 4500, "epsg", 4500, "CGCS2000 / Gauss-Kruger zone 22"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=22500000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / Gauss-Kruger zone 22\",GEOGCS[\"Chin"); add_srs_wkt (p, 1, "a Geodetic Coordinate System 2000\",DATUM[\"China_2000\""); add_srs_wkt (p, 2, ",SPHEROID[\"CGCS2000\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, "entral_meridian\",129],PARAMETER[\"scale_factor\",1],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",22500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 10, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 11, "],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"4500\"]]"); p = add_epsg_def (filter, first, last, 4501, "epsg", 4501, "CGCS2000 / Gauss-Kruger zone 23"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=23500000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / Gauss-Kruger zone 23\",GEOGCS[\"Chin"); add_srs_wkt (p, 1, "a Geodetic Coordinate System 2000\",DATUM[\"China_2000\""); add_srs_wkt (p, 2, ",SPHEROID[\"CGCS2000\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, "entral_meridian\",135],PARAMETER[\"scale_factor\",1],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",23500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 10, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 11, "],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"4501\"]]"); p = add_epsg_def (filter, first, last, 4502, "epsg", 4502, "CGCS2000 / Gauss-Kruger CM 75E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / Gauss-Kruger CM 75E\",GEOGCS[\"China"); add_srs_wkt (p, 1, " Geodetic Coordinate System 2000\",DATUM[\"China_2000\","); add_srs_wkt (p, 2, "SPHEROID[\"CGCS2000\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, "entral_meridian\",75],PARAMETER[\"scale_factor\",1],PARA"); add_srs_wkt (p, 9, "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); add_srs_wkt (p, 10, "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 11, "XIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 12, "502\"]]"); p = add_epsg_def (filter, first, last, 4503, "epsg", 4503, "CGCS2000 / Gauss-Kruger CM 81E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / Gauss-Kruger CM 81E\",GEOGCS[\"China"); add_srs_wkt (p, 1, " Geodetic Coordinate System 2000\",DATUM[\"China_2000\","); add_srs_wkt (p, 2, "SPHEROID[\"CGCS2000\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, "entral_meridian\",81],PARAMETER[\"scale_factor\",1],PARA"); add_srs_wkt (p, 9, "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); add_srs_wkt (p, 10, "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 11, "XIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 12, "503\"]]"); p = add_epsg_def (filter, first, last, 4504, "epsg", 4504, "CGCS2000 / Gauss-Kruger CM 87E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / Gauss-Kruger CM 87E\",GEOGCS[\"China"); add_srs_wkt (p, 1, " Geodetic Coordinate System 2000\",DATUM[\"China_2000\","); add_srs_wkt (p, 2, "SPHEROID[\"CGCS2000\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, "entral_meridian\",87],PARAMETER[\"scale_factor\",1],PARA"); add_srs_wkt (p, 9, "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); add_srs_wkt (p, 10, "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 11, "XIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 12, "504\"]]"); p = add_epsg_def (filter, first, last, 4505, "epsg", 4505, "CGCS2000 / Gauss-Kruger CM 93E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / Gauss-Kruger CM 93E\",GEOGCS[\"China"); add_srs_wkt (p, 1, " Geodetic Coordinate System 2000\",DATUM[\"China_2000\","); add_srs_wkt (p, 2, "SPHEROID[\"CGCS2000\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, "entral_meridian\",93],PARAMETER[\"scale_factor\",1],PARA"); add_srs_wkt (p, 9, "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); add_srs_wkt (p, 10, "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 11, "XIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 12, "505\"]]"); p = add_epsg_def (filter, first, last, 4506, "epsg", 4506, "CGCS2000 / Gauss-Kruger CM 99E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / Gauss-Kruger CM 99E\",GEOGCS[\"China"); add_srs_wkt (p, 1, " Geodetic Coordinate System 2000\",DATUM[\"China_2000\","); add_srs_wkt (p, 2, "SPHEROID[\"CGCS2000\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, "entral_meridian\",99],PARAMETER[\"scale_factor\",1],PARA"); add_srs_wkt (p, 9, "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); add_srs_wkt (p, 10, "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 11, "XIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 12, "506\"]]"); p = add_epsg_def (filter, first, last, 4507, "epsg", 4507, "CGCS2000 / Gauss-Kruger CM 105E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / Gauss-Kruger CM 105E\",GEOGCS[\"Chin"); add_srs_wkt (p, 1, "a Geodetic Coordinate System 2000\",DATUM[\"China_2000\""); add_srs_wkt (p, 2, ",SPHEROID[\"CGCS2000\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, "entral_meridian\",105],PARAMETER[\"scale_factor\",1],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, "AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "4507\"]]"); p = add_epsg_def (filter, first, last, 4508, "epsg", 4508, "CGCS2000 / Gauss-Kruger CM 111E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / Gauss-Kruger CM 111E\",GEOGCS[\"Chin"); add_srs_wkt (p, 1, "a Geodetic Coordinate System 2000\",DATUM[\"China_2000\""); add_srs_wkt (p, 2, ",SPHEROID[\"CGCS2000\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, "entral_meridian\",111],PARAMETER[\"scale_factor\",1],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, "AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "4508\"]]"); p = add_epsg_def (filter, first, last, 4509, "epsg", 4509, "CGCS2000 / Gauss-Kruger CM 117E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / Gauss-Kruger CM 117E\",GEOGCS[\"Chin"); add_srs_wkt (p, 1, "a Geodetic Coordinate System 2000\",DATUM[\"China_2000\""); add_srs_wkt (p, 2, ",SPHEROID[\"CGCS2000\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, "entral_meridian\",117],PARAMETER[\"scale_factor\",1],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, "AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "4509\"]]"); p = add_epsg_def (filter, first, last, 4510, "epsg", 4510, "CGCS2000 / Gauss-Kruger CM 123E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / Gauss-Kruger CM 123E\",GEOGCS[\"Chin"); add_srs_wkt (p, 1, "a Geodetic Coordinate System 2000\",DATUM[\"China_2000\""); add_srs_wkt (p, 2, ",SPHEROID[\"CGCS2000\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, "entral_meridian\",123],PARAMETER[\"scale_factor\",1],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, "AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "4510\"]]"); p = add_epsg_def (filter, first, last, 4511, "epsg", 4511, "CGCS2000 / Gauss-Kruger CM 129E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / Gauss-Kruger CM 129E\",GEOGCS[\"Chin"); add_srs_wkt (p, 1, "a Geodetic Coordinate System 2000\",DATUM[\"China_2000\""); add_srs_wkt (p, 2, ",SPHEROID[\"CGCS2000\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, "entral_meridian\",129],PARAMETER[\"scale_factor\",1],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, "AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "4511\"]]"); p = add_epsg_def (filter, first, last, 4512, "epsg", 4512, "CGCS2000 / Gauss-Kruger CM 135E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / Gauss-Kruger CM 135E\",GEOGCS[\"Chin"); add_srs_wkt (p, 1, "a Geodetic Coordinate System 2000\",DATUM[\"China_2000\""); add_srs_wkt (p, 2, ",SPHEROID[\"CGCS2000\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, "entral_meridian\",135],PARAMETER[\"scale_factor\",1],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, "AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "4512\"]]"); p = add_epsg_def (filter, first, last, 4513, "epsg", 4513, "CGCS2000 / 3-degree Gauss-Kruger zone 25"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=25500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger zone 25\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",75],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, "r\",1],PARAMETER[\"false_easting\",25500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"4513\"]]"); p = add_epsg_def (filter, first, last, 4514, "epsg", 4514, "CGCS2000 / 3-degree Gauss-Kruger zone 26"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=78 +k=1 +x_0=26500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger zone 26\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",78],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, "r\",1],PARAMETER[\"false_easting\",26500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"4514\"]]"); p = add_epsg_def (filter, first, last, 4515, "epsg", 4515, "CGCS2000 / 3-degree Gauss-Kruger zone 27"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=27500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger zone 27\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",81],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, "r\",1],PARAMETER[\"false_easting\",27500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"4515\"]]"); p = add_epsg_def (filter, first, last, 4516, "epsg", 4516, "CGCS2000 / 3-degree Gauss-Kruger zone 28"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=84 +k=1 +x_0=28500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger zone 28\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",84],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, "r\",1],PARAMETER[\"false_easting\",28500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"4516\"]]"); p = add_epsg_def (filter, first, last, 4517, "epsg", 4517, "CGCS2000 / 3-degree Gauss-Kruger zone 29"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=29500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger zone 29\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",87],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, "r\",1],PARAMETER[\"false_easting\",29500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"4517\"]]"); p = add_epsg_def (filter, first, last, 4518, "epsg", 4518, "CGCS2000 / 3-degree Gauss-Kruger zone 30"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=30500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger zone 30\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",90],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, "r\",1],PARAMETER[\"false_easting\",30500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"4518\"]]"); p = add_epsg_def (filter, first, last, 4519, "epsg", 4519, "CGCS2000 / 3-degree Gauss-Kruger zone 31"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=31500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger zone 31\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",93],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, "r\",1],PARAMETER[\"false_easting\",31500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"4519\"]]"); p = add_epsg_def (filter, first, last, 4520, "epsg", 4520, "CGCS2000 / 3-degree Gauss-Kruger zone 32"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=96 +k=1 +x_0=32500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger zone 32\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",96],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, "r\",1],PARAMETER[\"false_easting\",32500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"4520\"]]"); p = add_epsg_def (filter, first, last, 4521, "epsg", 4521, "CGCS2000 / 3-degree Gauss-Kruger zone 33"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=33500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger zone 33\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",99],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, "r\",1],PARAMETER[\"false_easting\",33500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"4521\"]]"); p = add_epsg_def (filter, first, last, 4522, "epsg", 4522, "CGCS2000 / 3-degree Gauss-Kruger zone 34"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=34500000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger zone 34\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",102],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",1],PARAMETER[\"false_easting\",34500000],PARAMETER["); add_srs_wkt (p, 10, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"4522\"]]"); p = add_epsg_def (filter, first, last, 4523, "epsg", 4523, "CGCS2000 / 3-degree Gauss-Kruger zone 35"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=35500000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger zone 35\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",105],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",1],PARAMETER[\"false_easting\",35500000],PARAMETER["); add_srs_wkt (p, 10, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"4523\"]]"); p = add_epsg_def (filter, first, last, 4524, "epsg", 4524, "CGCS2000 / 3-degree Gauss-Kruger zone 36"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=36500000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger zone 36\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",108],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",1],PARAMETER[\"false_easting\",36500000],PARAMETER["); add_srs_wkt (p, 10, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"4524\"]]"); p = add_epsg_def (filter, first, last, 4525, "epsg", 4525, "CGCS2000 / 3-degree Gauss-Kruger zone 37"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=37500000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger zone 37\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",111],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",1],PARAMETER[\"false_easting\",37500000],PARAMETER["); add_srs_wkt (p, 10, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"4525\"]]"); p = add_epsg_def (filter, first, last, 4526, "epsg", 4526, "CGCS2000 / 3-degree Gauss-Kruger zone 38"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=38500000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger zone 38\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",114],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",1],PARAMETER[\"false_easting\",38500000],PARAMETER["); add_srs_wkt (p, 10, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"4526\"]]"); p = add_epsg_def (filter, first, last, 4527, "epsg", 4527, "CGCS2000 / 3-degree Gauss-Kruger zone 39"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=39500000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger zone 39\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",117],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",1],PARAMETER[\"false_easting\",39500000],PARAMETER["); add_srs_wkt (p, 10, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"4527\"]]"); p = add_epsg_def (filter, first, last, 4528, "epsg", 4528, "CGCS2000 / 3-degree Gauss-Kruger zone 40"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=40500000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger zone 40\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",120],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",1],PARAMETER[\"false_easting\",40500000],PARAMETER["); add_srs_wkt (p, 10, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"4528\"]]"); p = add_epsg_def (filter, first, last, 4529, "epsg", 4529, "CGCS2000 / 3-degree Gauss-Kruger zone 41"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=41500000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger zone 41\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",123],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",1],PARAMETER[\"false_easting\",41500000],PARAMETER["); add_srs_wkt (p, 10, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"4529\"]]"); } #endif /* full EPSG initialization enabled/disabled */ libspatialite-4.1.1/src/srsinit/epsg_inlined_13.c0000664000175000017500000047140312163502133016664 00000000000000/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def (filter, first, last, 3346, "epsg", 3346, "LKS94 / Lithuania TM"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9998 +x_0=500000 +y_"); add_proj4text (p, 1, "0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_def"); add_proj4text (p, 2, "s"); add_srs_wkt (p, 0, "PROJCS[\"LKS94 / Lithuania TM\",GEOGCS[\"LKS94\",DATUM[\""); add_srs_wkt (p, 1, "Lithuania_1994_ETRS89\",SPHEROID[\"GRS 1980\",6378137,29"); add_srs_wkt (p, 2, "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,"); add_srs_wkt (p, 3, "0,0,0,0],AUTHORITY[\"EPSG\",\"6126\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 4, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 5, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"4669\"]],PROJECTION[\"Transverse_Mercator\"],PA"); add_srs_wkt (p, 7, "RAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_me"); add_srs_wkt (p, 8, "ridian\",24],PARAMETER[\"scale_factor\",0.9998],PARAMETE"); add_srs_wkt (p, 9, "R[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 10, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 11, "\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3346\""); add_srs_wkt (p, 12, "]]"); p = add_epsg_def (filter, first, last, 3347, "epsg", 3347, "NAD83 / Statistics Canada Lambert"); add_proj4text (p, 0, "+proj=lcc +lat_1=49 +lat_2=77 +lat_0=63.390675 +lon_0=-9"); add_proj4text (p, 1, "1.86666666666666 +x_0=6200000 +y_0=3000000 +datum=NAD83 "); add_proj4text (p, 2, "+units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Statistics Canada Lambert\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert"); add_srs_wkt (p, 7, "_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 8, ",49],PARAMETER[\"standard_parallel_2\",77],PARAMETER[\"l"); add_srs_wkt (p, 9, "atitude_of_origin\",63.390675],PARAMETER[\"central_merid"); add_srs_wkt (p, 10, "ian\",-91.86666666666666],PARAMETER[\"false_easting\",62"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",3000000],UNIT[\"metr"); add_srs_wkt (p, 12, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 13, "T],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3347\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def (filter, first, last, 3348, "epsg", 3348, "NAD83(CSRS) / Statistics Canada Lambert"); add_proj4text (p, 0, "+proj=lcc +lat_1=49 +lat_2=77 +lat_0=63.390675 +lon_0=-9"); add_proj4text (p, 1, "1.86666666666666 +x_0=6200000 +y_0=3000000 +ellps=GRS80 "); add_proj4text (p, 2, "+towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / Statistics Canada Lambert\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"46"); add_srs_wkt (p, 7, "17\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"standard_parallel_1\",49],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_2\",77],PARAMETER[\"latitude_of_origin\",63.39067"); add_srs_wkt (p, 10, "5],PARAMETER[\"central_meridian\",-91.86666666666666],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_easting\",6200000],PARAMETER[\"false_nor"); add_srs_wkt (p, 12, "thing\",3000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 13, "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 14, "AUTHORITY[\"EPSG\",\"3348\"]]"); p = add_epsg_def (filter, first, last, 3349, "epsg", 3349, "WGS 84 / PDC Mercator (deprecated)"); add_proj4text (p, 0, "+proj=merc +lon_0=-150 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / PDC Mercator (deprecated)\",GEOGCS[\"W"); add_srs_wkt (p, 1, "GS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,2"); add_srs_wkt (p, 2, "98.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PRO"); add_srs_wkt (p, 6, "JECTION[\"Mercator_1SP\"],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 7, ",-150],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_e"); add_srs_wkt (p, 8, "asting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 9, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST"); add_srs_wkt (p, 10, "],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3349\"]]"); p = add_epsg_def (filter, first, last, 3350, "epsg", 3350, "Pulkovo 1942 / CS63 zone C0"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0.1 +lon_0=21.95 +k=1 +x_0=250000 +y_"); add_proj4text (p, 1, "0=0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0."); add_proj4text (p, 2, "82,-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / CS63 zone C0\",GEOGCS[\"Pulkovo "); add_srs_wkt (p, 1, "1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassowsky 1940"); add_srs_wkt (p, 2, "\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[2"); add_srs_wkt (p, 3, "3.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0.1],PARAMETER[\"central_meridian\",21.95],PARAMETE"); add_srs_wkt (p, 9, "R[\"scale_factor\",1],PARAMETER[\"false_easting\",250000"); add_srs_wkt (p, 10, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA"); add_srs_wkt (p, 12, "ST],AUTHORITY[\"EPSG\",\"3350\"]]"); p = add_epsg_def (filter, first, last, 3351, "epsg", 3351, "Pulkovo 1942 / CS63 zone C1"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0.1 +lon_0=24.95 +k=1 +x_0=1250000 +y"); add_proj4text (p, 1, "_0=0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0"); add_proj4text (p, 2, ".82,-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / CS63 zone C1\",GEOGCS[\"Pulkovo "); add_srs_wkt (p, 1, "1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassowsky 1940"); add_srs_wkt (p, 2, "\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[2"); add_srs_wkt (p, 3, "3.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0.1],PARAMETER[\"central_meridian\",24.95],PARAMETE"); add_srs_wkt (p, 9, "R[\"scale_factor\",1],PARAMETER[\"false_easting\",125000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); add_srs_wkt (p, 12, "AST],AUTHORITY[\"EPSG\",\"3351\"]]"); p = add_epsg_def (filter, first, last, 3352, "epsg", 3352, "Pulkovo 1942 / CS63 zone C2"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0.1 +lon_0=27.95 +k=1 +x_0=2250000 +y"); add_proj4text (p, 1, "_0=0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0"); add_proj4text (p, 2, ".82,-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / CS63 zone C2\",GEOGCS[\"Pulkovo "); add_srs_wkt (p, 1, "1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassowsky 1940"); add_srs_wkt (p, 2, "\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[2"); add_srs_wkt (p, 3, "3.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0.1],PARAMETER[\"central_meridian\",27.95],PARAMETE"); add_srs_wkt (p, 9, "R[\"scale_factor\",1],PARAMETER[\"false_easting\",225000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); add_srs_wkt (p, 12, "AST],AUTHORITY[\"EPSG\",\"3352\"]]"); p = add_epsg_def (filter, first, last, 3353, "epsg", 3353, "Mhast (onshore) / UTM zone 32S"); add_proj4text (p, 0, "+proj=utm +zone=32 +south +ellps=intl +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Mhast (onshore) / UTM zone 32S\",GEOGCS[\"Mhast"); add_srs_wkt (p, 1, " (onshore)\",DATUM[\"Mhast_onshore\",SPHEROID[\"Internat"); add_srs_wkt (p, 2, "ional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6704\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4704\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",9"); add_srs_wkt (p, 8, "],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_e"); add_srs_wkt (p, 9, "asting\",500000],PARAMETER[\"false_northing\",10000000],"); add_srs_wkt (p, 10, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea"); add_srs_wkt (p, 11, "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"3353\"]]"); p = add_epsg_def (filter, first, last, 3354, "epsg", 3354, "Mhast (offshore) / UTM zone 32S"); add_proj4text (p, 0, "+proj=utm +zone=32 +south +ellps=intl +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Mhast (offshore) / UTM zone 32S\",GEOGCS[\"Mhas"); add_srs_wkt (p, 1, "t (offshore)\",DATUM[\"Mhast_offshore\",SPHEROID[\"Inter"); add_srs_wkt (p, 2, "national 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6705\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4705\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 7, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, "\",9],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",100000"); add_srs_wkt (p, 10, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 11, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"3354\"]]"); p = add_epsg_def (filter, first, last, 3355, "epsg", 3355, "Egypt Gulf of Suez S-650 TL / Red Belt"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30 +lon_0=31 +k=1 +x_0=615000 +y_0=81"); add_proj4text (p, 1, "0000 +ellps=helmert +towgs84=-146.21,112.63,4.05,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Egypt Gulf of Suez S-650 TL / Red Belt\",GEOGCS"); add_srs_wkt (p, 1, "[\"Egypt Gulf of Suez S-650 TL\",DATUM[\"Egypt_Gulf_of_S"); add_srs_wkt (p, 2, "uez_S_650_TL\",SPHEROID[\"Helmert 1906\",6378200,298.3,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7020\"]],TOWGS84[-146.21,112.63,4.05"); add_srs_wkt (p, 4, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6706\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 5, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 6, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4706\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 8, "PARAMETER[\"latitude_of_origin\",30],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",31],PARAMETER[\"scale_factor\",1],PARAMETER["); add_srs_wkt (p, 10, "\"false_easting\",615000],PARAMETER[\"false_northing\",8"); add_srs_wkt (p, 11, "10000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 12, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"3355\"]]"); p = add_epsg_def (filter, first, last, 3356, "epsg", 3356, "Grand Cayman 1959 / UTM zone 17N"); add_proj4text (p, 0, "+proj=utm +zone=17 +ellps=clrk66 +towgs84=67.8,106.1,138"); add_proj4text (p, 1, ".8,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Grand Cayman 1959 / UTM zone 17N\",GEOGCS[\"Gra"); add_srs_wkt (p, 1, "nd Cayman 1959\",DATUM[\"Grand_Cayman_1959\",SPHEROID[\""); add_srs_wkt (p, 2, "Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7008\"]],TOWGS84[67.8,106.1,138.8,0,0,0,0],AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"6723\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4723\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-81],P"); add_srs_wkt (p, 9, "ARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 12, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3356\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def (filter, first, last, 3357, "epsg", 3357, "Little Cayman 1961 / UTM zone 17N"); add_proj4text (p, 0, "+proj=utm +zone=17 +ellps=clrk66 +towgs84=42,124,147,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Little Cayman 1961 / UTM zone 17N\",GEOGCS[\"Li"); add_srs_wkt (p, 1, "ttle Cayman 1961\",DATUM[\"Little_Cayman_1961\",SPHEROID"); add_srs_wkt (p, 2, "[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7008\"]],TOWGS84[42,124,147,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6726\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4726\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",-81],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",0.9996],PARAMETER[\"false_easting"); add_srs_wkt (p, 10, "\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 12, "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3357\"]]"); p = add_epsg_def (filter, first, last, 3358, "epsg", 3358, "NAD83(HARN) / North Carolina"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333"); add_proj4text (p, 1, "334 +lat_0=33.75 +lon_0=-79 +x_0=609601.22 +y_0=0 +ellps"); add_proj4text (p, 2, "=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / North Carolina\",GEOGCS[\"NAD83(H"); add_srs_wkt (p, 1, "ARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standa"); add_srs_wkt (p, 8, "rd_parallel_1\",36.16666666666666],PARAMETER[\"standard_"); add_srs_wkt (p, 9, "parallel_2\",34.33333333333334],PARAMETER[\"latitude_of_"); add_srs_wkt (p, 10, "origin\",33.75],PARAMETER[\"central_meridian\",-79],PARA"); add_srs_wkt (p, 11, "METER[\"false_easting\",609601.22],PARAMETER[\"false_nor"); add_srs_wkt (p, 12, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 13, "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 14, "\"3358\"]]"); p = add_epsg_def (filter, first, last, 3359, "epsg", 3359, "NAD83(HARN) / North Carolina (ftUS) (deprecated)"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333"); add_proj4text (p, 1, "334 +lat_0=33.75 +lon_0=-79 +x_0=609601.2192024385 +y_0="); add_proj4text (p, 2, "0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / North Carolina (ftUS) (deprecated"); add_srs_wkt (p, 1, ")\",GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_R"); add_srs_wkt (p, 2, "eference_Network\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4152\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 8, "],PARAMETER[\"standard_parallel_1\",36.16666666666666],P"); add_srs_wkt (p, 9, "ARAMETER[\"standard_parallel_2\",34.33333333333334],PARA"); add_srs_wkt (p, 10, "METER[\"latitude_of_origin\",33.75],PARAMETER[\"central_"); add_srs_wkt (p, 11, "meridian\",-79],PARAMETER[\"false_easting\",2000004.0000"); add_srs_wkt (p, 12, "08],PARAMETER[\"false_northing\",0],UNIT[\"foot\",0.3048"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 14, "\",NORTH],AUTHORITY[\"EPSG\",\"3359\"]]"); p = add_epsg_def (filter, first, last, 3360, "epsg", 3360, "NAD83(HARN) / South Carolina"); add_proj4text (p, 0, "+proj=lcc +lat_1=34.83333333333334 +lat_2=32.5 +lat_0=31"); add_proj4text (p, 1, ".83333333333333 +lon_0=-81 +x_0=609600 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, "80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / South Carolina\",GEOGCS[\"NAD83(H"); add_srs_wkt (p, 1, "ARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standa"); add_srs_wkt (p, 8, "rd_parallel_1\",34.83333333333334],PARAMETER[\"standard_"); add_srs_wkt (p, 9, "parallel_2\",32.5],PARAMETER[\"latitude_of_origin\",31.8"); add_srs_wkt (p, 10, "3333333333333],PARAMETER[\"central_meridian\",-81],PARAM"); add_srs_wkt (p, 11, "ETER[\"false_easting\",609600],PARAMETER[\"false_northin"); add_srs_wkt (p, 12, "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 13, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"33"); add_srs_wkt (p, 14, "60\"]]"); p = add_epsg_def (filter, first, last, 3361, "epsg", 3361, "NAD83(HARN) / South Carolina (ft)"); add_proj4text (p, 0, "+proj=lcc +lat_1=34.83333333333334 +lat_2=32.5 +lat_0=31"); add_proj4text (p, 1, ".83333333333333 +lon_0=-81 +x_0=609600 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, "80 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / South Carolina (ft)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Networ"); add_srs_wkt (p, 2, "k\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"st"); add_srs_wkt (p, 8, "andard_parallel_1\",34.83333333333334],PARAMETER[\"stand"); add_srs_wkt (p, 9, "ard_parallel_2\",32.5],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 10, "31.83333333333333],PARAMETER[\"central_meridian\",-81],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_easting\",2000000],PARAMETER[\"false_no"); add_srs_wkt (p, 12, "rthing\",0],UNIT[\"foot\",0.3048,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "02\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP"); add_srs_wkt (p, 14, "SG\",\"3361\"]]"); p = add_epsg_def (filter, first, last, 3362, "epsg", 3362, "NAD83(HARN) / Pennsylvania North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.95 +lat_2=40.88333333333333 +lat_0=4"); add_proj4text (p, 1, "0.16666666666666 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps"); add_proj4text (p, 2, "=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Pennsylvania North\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network"); add_srs_wkt (p, 2, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"st"); add_srs_wkt (p, 8, "andard_parallel_1\",41.95],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 9, "_2\",40.88333333333333],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 10, ",40.16666666666666],PARAMETER[\"central_meridian\",-77.7"); add_srs_wkt (p, 11, "5],PARAMETER[\"false_easting\",600000],PARAMETER[\"false"); add_srs_wkt (p, 12, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 13, "1\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 14, "G\",\"3362\"]]"); p = add_epsg_def (filter, first, last, 3363, "epsg", 3363, "NAD83(HARN) / Pennsylvania North (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.95 +lat_2=40.88333333333333 +lat_0=4"); add_proj4text (p, 1, "0.16666666666666 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps"); add_proj4text (p, 2, "=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Pennsylvania North (ftUS)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_"); add_srs_wkt (p, 2, "Network\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMET"); add_srs_wkt (p, 8, "ER[\"standard_parallel_1\",41.95],PARAMETER[\"standard_p"); add_srs_wkt (p, 9, "arallel_2\",40.88333333333333],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 10, "rigin\",40.16666666666666],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 11, ",-77.75],PARAMETER[\"false_easting\",1968500],PARAMETER["); add_srs_wkt (p, 12, "\"false_northing\",0],UNIT[\"US survey foot\",0.30480060"); add_srs_wkt (p, 13, "96012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],"); add_srs_wkt (p, 14, "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3363\"]]"); p = add_epsg_def (filter, first, last, 3364, "epsg", 3364, "NAD83(HARN) / Pennsylvania South"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.96666666666667 +lat_2=39.93333333333"); add_proj4text (p, 1, "333 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=600000 +"); add_proj4text (p, 2, "y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 3, "efs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Pennsylvania South\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network"); add_srs_wkt (p, 2, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"st"); add_srs_wkt (p, 8, "andard_parallel_1\",40.96666666666667],PARAMETER[\"stand"); add_srs_wkt (p, 9, "ard_parallel_2\",39.93333333333333],PARAMETER[\"latitude"); add_srs_wkt (p, 10, "_of_origin\",39.33333333333334],PARAMETER[\"central_meri"); add_srs_wkt (p, 11, "dian\",-77.75],PARAMETER[\"false_easting\",600000],PARAM"); add_srs_wkt (p, 12, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 14, "HORITY[\"EPSG\",\"3364\"]]"); p = add_epsg_def (filter, first, last, 3365, "epsg", 3365, "NAD83(HARN) / Pennsylvania South (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.96666666666667 +lat_2=39.93333333333"); add_proj4text (p, 1, "333 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=600000 +"); add_proj4text (p, 2, "y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Pennsylvania South (ftUS)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_"); add_srs_wkt (p, 2, "Network\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMET"); add_srs_wkt (p, 8, "ER[\"standard_parallel_1\",40.96666666666667],PARAMETER["); add_srs_wkt (p, 9, "\"standard_parallel_2\",39.93333333333333],PARAMETER[\"l"); add_srs_wkt (p, 10, "atitude_of_origin\",39.33333333333334],PARAMETER[\"centr"); add_srs_wkt (p, 11, "al_meridian\",-77.75],PARAMETER[\"false_easting\",196850"); add_srs_wkt (p, 12, "0],PARAMETER[\"false_northing\",0],UNIT[\"US survey foot"); add_srs_wkt (p, 13, "\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS"); add_srs_wkt (p, 14, "[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3365"); add_srs_wkt (p, 15, "\"]]"); p = add_epsg_def (filter, first, last, 3366, "epsg", 3366, "Hong Kong 1963 Grid System (deprecated)"); add_proj4text (p, 0, "+proj=cass +lat_0=22.31213333333334 +lon_0=114.178555555"); add_proj4text (p, 1, "5556 +x_0=40243.57775604237 +y_0=19069.93351512578 +a=63"); add_proj4text (p, 2, "78293.645208759 +b=6356617.987679838 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Hong Kong 1963 Grid System (deprecated)\",GEOGC"); add_srs_wkt (p, 1, "S[\"Hong Kong 1963\",DATUM[\"Hong_Kong_1963\",SPHEROID[\""); add_srs_wkt (p, 2, "Clarke 1858\",6378293.645208759,294.2606763692654,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7007\"]],AUTHORITY[\"EPSG\",\"6738\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AUTHORITY[\"EPSG\",\"4738\"]],PROJECTION[\"Cassini_So"); add_srs_wkt (p, 7, "ldner\"],PARAMETER[\"latitude_of_origin\",22.31213333333"); add_srs_wkt (p, 8, "334],PARAMETER[\"central_meridian\",114.1785555555556],P"); add_srs_wkt (p, 9, "ARAMETER[\"false_easting\",40243.57775604237],PARAMETER["); add_srs_wkt (p, 10, "\"false_northing\",19069.93351512578],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3366\"]]"); p = add_epsg_def (filter, first, last, 3367, "epsg", 3367, "IGN Astro 1960 / UTM zone 28N"); add_proj4text (p, 0, "+proj=utm +zone=28 +ellps=clrk80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGN Astro 1960 / UTM zone 28N\",GEOGCS[\"IGN As"); add_srs_wkt (p, 1, "tro 1960\",DATUM[\"IGN_Astro_1960\",SPHEROID[\"Clarke 18"); add_srs_wkt (p, 2, "80 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"6700\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4700\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 7, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 8, "ian\",-15],PARAMETER[\"scale_factor\",0.9996],PARAMETER["); add_srs_wkt (p, 9, "\"false_easting\",500000],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 10, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 11, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"3367\"]]"); p = add_epsg_def (filter, first, last, 3368, "epsg", 3368, "IGN Astro 1960 / UTM zone 29N"); add_proj4text (p, 0, "+proj=utm +zone=29 +ellps=clrk80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGN Astro 1960 / UTM zone 29N\",GEOGCS[\"IGN As"); add_srs_wkt (p, 1, "tro 1960\",DATUM[\"IGN_Astro_1960\",SPHEROID[\"Clarke 18"); add_srs_wkt (p, 2, "80 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"6700\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4700\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 7, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 8, "ian\",-9],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 9, "false_easting\",500000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 10, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea"); add_srs_wkt (p, 11, "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"3368\"]]"); p = add_epsg_def (filter, first, last, 3369, "epsg", 3369, "IGN Astro 1960 / UTM zone 30N"); add_proj4text (p, 0, "+proj=utm +zone=30 +ellps=clrk80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGN Astro 1960 / UTM zone 30N\",GEOGCS[\"IGN As"); add_srs_wkt (p, 1, "tro 1960\",DATUM[\"IGN_Astro_1960\",SPHEROID[\"Clarke 18"); add_srs_wkt (p, 2, "80 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"6700\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4700\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 7, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 8, "ian\",-3],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 9, "false_easting\",500000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 10, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea"); add_srs_wkt (p, 11, "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"3369\"]]"); p = add_epsg_def (filter, first, last, 3370, "epsg", 3370, "NAD27 / UTM zone 59N"); add_proj4text (p, 0, "+proj=utm +zone=59 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / UTM zone 59N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 8, "71],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false"); add_srs_wkt (p, 9, "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 10, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 11, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 12, "370\"]]"); p = add_epsg_def (filter, first, last, 3371, "epsg", 3371, "NAD27 / UTM zone 60N"); add_proj4text (p, 0, "+proj=utm +zone=60 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / UTM zone 60N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 8, "77],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false"); add_srs_wkt (p, 9, "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 10, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 11, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 12, "371\"]]"); p = add_epsg_def (filter, first, last, 3372, "epsg", 3372, "NAD83 / UTM zone 59N"); add_proj4text (p, 0, "+proj=utm +zone=59 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / UTM zone 59N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",171],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"3372\"]]"); p = add_epsg_def (filter, first, last, 3373, "epsg", 3373, "NAD83 / UTM zone 60N"); add_proj4text (p, 0, "+proj=utm +zone=60 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / UTM zone 60N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",177],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"3373\"]]"); p = add_epsg_def (filter, first, last, 3374, "epsg", 3374, "FD54 / UTM zone 29N"); add_proj4text (p, 0, "+proj=utm +zone=29 +ellps=intl +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"FD54 / UTM zone 29N\",GEOGCS[\"FD54\",DATUM[\"F"); add_srs_wkt (p, 1, "aroe_Datum_1954\",SPHEROID[\"International 1924\",637838"); add_srs_wkt (p, 2, "8,297,AUTHORITY[\"EPSG\",\"7022\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "6741\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 4, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4741\"]],PROJECTION["); add_srs_wkt (p, 6, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 7, ",0],PARAMETER[\"central_meridian\",-9],PARAMETER[\"scale"); add_srs_wkt (p, 8, "_factor\",0.9996],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 9, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 10, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 11, "ing\",NORTH],AUTHORITY[\"EPSG\",\"3374\"]]"); p = add_epsg_def (filter, first, last, 3375, "epsg", 3375, "GDM2000 / Peninsula RSO"); add_proj4text (p, 0, "+proj=omerc +lat_0=4 +lonc=102.25 +alpha=323.02579646666"); add_proj4text (p, 1, "66 +k=0.99984 +x_0=804671 +y_0=0 +gamma=323.130102361111"); add_proj4text (p, 2, "1 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDM2000 / Peninsula RSO\",GEOGCS[\"GDM2000\",DA"); add_srs_wkt (p, 1, "TUM[\"Geodetic_Datum_of_Malaysia_2000\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6742\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4742\"]],PROJECTION[\"Hotine_Oblique_Mercator\"],PARA"); add_srs_wkt (p, 7, "METER[\"latitude_of_center\",4],PARAMETER[\"longitude_of"); add_srs_wkt (p, 8, "_center\",102.25],PARAMETER[\"azimuth\",323.025796466666"); add_srs_wkt (p, 9, "6],PARAMETER[\"rectified_grid_angle\",323.1301023611111]"); add_srs_wkt (p, 10, ",PARAMETER[\"scale_factor\",0.99984],PARAMETER[\"false_e"); add_srs_wkt (p, 11, "asting\",804671],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 12, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 13, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"337"); add_srs_wkt (p, 14, "5\"]]"); p = add_epsg_def (filter, first, last, 3376, "epsg", 3376, "GDM2000 / East Malaysia BRSO"); add_proj4text (p, 0, "+proj=omerc +lat_0=4 +lonc=115 +alpha=53.31580995 +k=0.9"); add_proj4text (p, 1, "9984 +x_0=0 +y_0=0 +gamma=53.13010236111111 +ellps=GRS80"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDM2000 / East Malaysia BRSO\",GEOGCS[\"GDM2000"); add_srs_wkt (p, 1, "\",DATUM[\"Geodetic_Datum_of_Malaysia_2000\",SPHEROID[\""); add_srs_wkt (p, 2, "GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "19\"]],AUTHORITY[\"EPSG\",\"6742\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 6, "SG\",\"4742\"]],PROJECTION[\"Hotine_Oblique_Mercator\"],"); add_srs_wkt (p, 7, "PARAMETER[\"latitude_of_center\",4],PARAMETER[\"longitud"); add_srs_wkt (p, 8, "e_of_center\",115],PARAMETER[\"azimuth\",53.31580995],PA"); add_srs_wkt (p, 9, "RAMETER[\"rectified_grid_angle\",53.13010236111111],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",0.99984],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, "g\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI"); add_srs_wkt (p, 13, "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3376\"]]"); p = add_epsg_def (filter, first, last, 3377, "epsg", 3377, "GDM2000 / Johor Grid"); add_proj4text (p, 0, "+proj=cass +lat_0=2.121679744444445 +lon_0=103.427936236"); add_proj4text (p, 1, "1111 +x_0=-14810.562 +y_0=8758.32 +ellps=GRS80 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDM2000 / Johor Grid\",GEOGCS[\"GDM2000\",DATUM"); add_srs_wkt (p, 1, "[\"Geodetic_Datum_of_Malaysia_2000\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6742\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4742\"]],PROJECTION[\"Cassini_Soldner\"],PARAMETER[\"lat"); add_srs_wkt (p, 7, "itude_of_origin\",2.121679744444445],PARAMETER[\"central"); add_srs_wkt (p, 8, "_meridian\",103.4279362361111],PARAMETER[\"false_easting"); add_srs_wkt (p, 9, "\",-14810.562],PARAMETER[\"false_northing\",8758.32],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 11, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "3377\"]]"); p = add_epsg_def (filter, first, last, 3378, "epsg", 3378, "GDM2000 / Sembilan and Melaka Grid"); add_proj4text (p, 0, "+proj=cass +lat_0=2.682347636111111 +lon_0=101.974905041"); add_proj4text (p, 1, "6667 +x_0=3673.785 +y_0=-4240.573 +ellps=GRS80 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDM2000 / Sembilan and Melaka Grid\",GEOGCS[\"G"); add_srs_wkt (p, 1, "DM2000\",DATUM[\"Geodetic_Datum_of_Malaysia_2000\",SPHER"); add_srs_wkt (p, 2, "OID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],AUTHORITY[\"EPSG\",\"6742\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4742\"]],PROJECTION[\"Cassini_Soldner\"],PA"); add_srs_wkt (p, 7, "RAMETER[\"latitude_of_origin\",2.682347636111111],PARAME"); add_srs_wkt (p, 8, "TER[\"central_meridian\",101.9749050416667],PARAMETER[\""); add_srs_wkt (p, 9, "false_easting\",3673.785],PARAMETER[\"false_northing\",-"); add_srs_wkt (p, 10, "4240.573],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 11, ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"3378\"]]"); p = add_epsg_def (filter, first, last, 3379, "epsg", 3379, "GDM2000 / PahangGrid"); add_proj4text (p, 0, "+proj=cass +lat_0=3.769388088888889 +lon_0=102.368298983"); add_proj4text (p, 1, "3333 +x_0=-7368.228 +y_0=6485.858 +ellps=GRS80 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDM2000 / PahangGrid\",GEOGCS[\"GDM2000\",DATUM"); add_srs_wkt (p, 1, "[\"Geodetic_Datum_of_Malaysia_2000\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6742\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4742\"]],PROJECTION[\"Cassini_Soldner\"],PARAMETER[\"lat"); add_srs_wkt (p, 7, "itude_of_origin\",3.769388088888889],PARAMETER[\"central"); add_srs_wkt (p, 8, "_meridian\",102.3682989833333],PARAMETER[\"false_easting"); add_srs_wkt (p, 9, "\",-7368.228],PARAMETER[\"false_northing\",6485.858],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 11, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "3379\"]]"); p = add_epsg_def (filter, first, last, 3380, "epsg", 3380, "GDM2000 / Selangor Grid"); add_proj4text (p, 0, "+proj=cass +lat_0=3.68464905 +lon_0=101.3891079138889 +x"); add_proj4text (p, 1, "_0=-34836.161 +y_0=56464.049 +ellps=GRS80 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"GDM2000 / Selangor Grid\",GEOGCS[\"GDM2000\",DA"); add_srs_wkt (p, 1, "TUM[\"Geodetic_Datum_of_Malaysia_2000\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6742\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4742\"]],PROJECTION[\"Cassini_Soldner\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",3.68464905],PARAMETER[\"central_mer"); add_srs_wkt (p, 8, "idian\",101.3891079138889],PARAMETER[\"false_easting\",-"); add_srs_wkt (p, 9, "34836.161],PARAMETER[\"false_northing\",56464.049],UNIT["); add_srs_wkt (p, 10, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 11, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 12, "380\"]]"); p = add_epsg_def (filter, first, last, 3381, "epsg", 3381, "GDM2000 / Terengganu Grid"); add_proj4text (p, 0, "+proj=cass +lat_0=4.9762852 +lon_0=103.070275625 +x_0=19"); add_proj4text (p, 1, "594.245 +y_0=3371.895 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDM2000 / Terengganu Grid\",GEOGCS[\"GDM2000\","); add_srs_wkt (p, 1, "DATUM[\"Geodetic_Datum_of_Malaysia_2000\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"6742\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4742\"]],PROJECTION[\"Cassini_Soldner\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",4.9762852],PARAMETER[\"central_meri"); add_srs_wkt (p, 8, "dian\",103.070275625],PARAMETER[\"false_easting\",19594."); add_srs_wkt (p, 9, "245],PARAMETER[\"false_northing\",3371.895],UNIT[\"metre"); add_srs_wkt (p, 10, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST"); add_srs_wkt (p, 11, "],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3381\"]]"); p = add_epsg_def (filter, first, last, 3382, "epsg", 3382, "GDM2000 / Pinang Grid"); add_proj4text (p, 0, "+proj=cass +lat_0=5.421517541666667 +lon_0=100.344376963"); add_proj4text (p, 1, "8889 +x_0=-23.414 +y_0=62.283 +ellps=GRS80 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"GDM2000 / Pinang Grid\",GEOGCS[\"GDM2000\",DATU"); add_srs_wkt (p, 1, "M[\"Geodetic_Datum_of_Malaysia_2000\",SPHEROID[\"GRS 198"); add_srs_wkt (p, 2, "0\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"6742\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 5, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4742\"]],PROJECTION[\"Cassini_Soldner\"],PARAMETER[\"lat"); add_srs_wkt (p, 7, "itude_of_origin\",5.421517541666667],PARAMETER[\"central"); add_srs_wkt (p, 8, "_meridian\",100.3443769638889],PARAMETER[\"false_easting"); add_srs_wkt (p, 9, "\",-23.414],PARAMETER[\"false_northing\",62.283],UNIT[\""); add_srs_wkt (p, 10, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 11, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"338"); add_srs_wkt (p, 12, "2\"]]"); p = add_epsg_def (filter, first, last, 3383, "epsg", 3383, "GDM2000 / Kedah and Perlis Grid"); add_proj4text (p, 0, "+proj=cass +lat_0=5.964672713888889 +lon_0=100.636371111"); add_proj4text (p, 1, "1111 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDM2000 / Kedah and Perlis Grid\",GEOGCS[\"GDM2"); add_srs_wkt (p, 1, "000\",DATUM[\"Geodetic_Datum_of_Malaysia_2000\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],AUTHORITY[\"EPSG\",\"6742\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 4, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 5, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"4742\"]],PROJECTION[\"Cassini_Soldner\"],PARAME"); add_srs_wkt (p, 7, "TER[\"latitude_of_origin\",5.964672713888889],PARAMETER["); add_srs_wkt (p, 8, "\"central_meridian\",100.6363711111111],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 10, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 11, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3383\""); add_srs_wkt (p, 12, "]]"); p = add_epsg_def (filter, first, last, 3384, "epsg", 3384, "GDM2000 / Perak Grid"); add_proj4text (p, 0, "+proj=cass +lat_0=4.859063022222222 +lon_0=100.815410586"); add_proj4text (p, 1, "1111 +x_0=-1.769 +y_0=133454.779 +ellps=GRS80 +units=m +"); add_proj4text (p, 2, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDM2000 / Perak Grid\",GEOGCS[\"GDM2000\",DATUM"); add_srs_wkt (p, 1, "[\"Geodetic_Datum_of_Malaysia_2000\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6742\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4742\"]],PROJECTION[\"Cassini_Soldner\"],PARAMETER[\"lat"); add_srs_wkt (p, 7, "itude_of_origin\",4.859063022222222],PARAMETER[\"central"); add_srs_wkt (p, 8, "_meridian\",100.8154105861111],PARAMETER[\"false_easting"); add_srs_wkt (p, 9, "\",-1.769],PARAMETER[\"false_northing\",133454.779],UNIT"); add_srs_wkt (p, 10, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 11, "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "3384\"]]"); p = add_epsg_def (filter, first, last, 3385, "epsg", 3385, "GDM2000 / Kelantan Grid"); add_proj4text (p, 0, "+proj=cass +lat_0=5.972543658333334 +lon_0=102.295241669"); add_proj4text (p, 1, "4444 +x_0=13227.851 +y_0=8739.894 +ellps=GRS80 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDM2000 / Kelantan Grid\",GEOGCS[\"GDM2000\",DA"); add_srs_wkt (p, 1, "TUM[\"Geodetic_Datum_of_Malaysia_2000\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6742\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4742\"]],PROJECTION[\"Cassini_Soldner\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",5.972543658333334],PARAMETER[\"cent"); add_srs_wkt (p, 8, "ral_meridian\",102.2952416694444],PARAMETER[\"false_east"); add_srs_wkt (p, 9, "ing\",13227.851],PARAMETER[\"false_northing\",8739.894],"); add_srs_wkt (p, 10, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea"); add_srs_wkt (p, 11, "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"3385\"]]"); p = add_epsg_def (filter, first, last, 3386, "epsg", 3386, "KKJ / Finland zone 0"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=intl +towgs84=-96.062,-82.428,-121.753,4.801,0.345"); add_proj4text (p, 2, ",-1.376,1.496 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"KKJ / Finland zone 0\",GEOGCS[\"KKJ\",DATUM[\"K"); add_srs_wkt (p, 1, "artastokoordinaattijarjestelma_1966\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, "TOWGS84[-96.062,-82.428,-121.753,4.801,0.345,-1.376,1.49"); add_srs_wkt (p, 4, "6],AUTHORITY[\"EPSG\",\"6123\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 6, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4123\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 8, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 9, "\",18],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_e"); add_srs_wkt (p, 10, "asting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); add_srs_wkt (p, 12, "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3386\"]]"); p = add_epsg_def (filter, first, last, 3387, "epsg", 3387, "KKJ / Finland zone 5"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=5500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=intl +towgs84=-96.062,-82.428,-121.753,4.801,0.34"); add_proj4text (p, 2, "5,-1.376,1.496 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"KKJ / Finland zone 5\",GEOGCS[\"KKJ\",DATUM[\"K"); add_srs_wkt (p, 1, "artastokoordinaattijarjestelma_1966\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, "TOWGS84[-96.062,-82.428,-121.753,4.801,0.345,-1.376,1.49"); add_srs_wkt (p, 4, "6],AUTHORITY[\"EPSG\",\"6123\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 6, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4123\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 8, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 9, "\",33],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_e"); add_srs_wkt (p, 10, "asting\",5500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); add_srs_wkt (p, 12, "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3387\"]]"); p = add_epsg_def (filter, first, last, 3388, "epsg", 3388, "Pulkovo 1942 / Caspian Sea Mercator"); add_proj4text (p, 0, "+proj=merc +lon_0=51 +lat_ts=42 +x_0=0 +y_0=0 +ellps=kra"); add_proj4text (p, 1, "ss +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0.12 +unit"); add_proj4text (p, 2, "s=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Caspian Sea Mercator\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Mercator_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 8, "lel_1\",42],PARAMETER[\"central_meridian\",51],PARAMETER"); add_srs_wkt (p, 9, "[\"false_easting\",0],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 10, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"none"); add_srs_wkt (p, 11, "\",NORTH],AXIS[\"none\",EAST],AUTHORITY[\"EPSG\",\"3388\""); add_srs_wkt (p, 12, "]]"); p = add_epsg_def (filter, first, last, 3389, "epsg", 3389, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 60"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=180 +k=1 +x_0=60500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); add_proj4text (p, 2, ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 60\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "80],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",60500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3389\"]]"); p = add_epsg_def (filter, first, last, 3390, "epsg", 3390, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 60"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=180 +k=1 +x_0=60500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); add_proj4text (p, 2, "-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 60\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "80],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",60500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3390\"]]"); p = add_epsg_def (filter, first, last, 3391, "epsg", 3391, "Karbala 1979 / UTM zone 37N"); add_proj4text (p, 0, "+proj=utm +zone=37 +ellps=clrk80 +towgs84=70.995,-335.91"); add_proj4text (p, 1, "6,262.898,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Karbala 1979 / UTM zone 37N\",GEOGCS[\"Karbala "); add_srs_wkt (p, 1, "1979\",DATUM[\"Karbala_1979\",SPHEROID[\"Clarke 1880 (RG"); add_srs_wkt (p, 2, "S)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],T"); add_srs_wkt (p, 3, "OWGS84[70.995,-335.916,262.898,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6743\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4743\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 8, "igin\",0],PARAMETER[\"central_meridian\",39],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"3391\"]]"); p = add_epsg_def (filter, first, last, 3392, "epsg", 3392, "Karbala 1979 / UTM zone 38N"); add_proj4text (p, 0, "+proj=utm +zone=38 +ellps=clrk80 +towgs84=70.995,-335.91"); add_proj4text (p, 1, "6,262.898,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Karbala 1979 / UTM zone 38N\",GEOGCS[\"Karbala "); add_srs_wkt (p, 1, "1979\",DATUM[\"Karbala_1979\",SPHEROID[\"Clarke 1880 (RG"); add_srs_wkt (p, 2, "S)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],T"); add_srs_wkt (p, 3, "OWGS84[70.995,-335.916,262.898,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6743\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4743\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 8, "igin\",0],PARAMETER[\"central_meridian\",45],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"3392\"]]"); p = add_epsg_def (filter, first, last, 3393, "epsg", 3393, "Karbala 1979 / UTM zone 39N"); add_proj4text (p, 0, "+proj=utm +zone=39 +ellps=clrk80 +towgs84=70.995,-335.91"); add_proj4text (p, 1, "6,262.898,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Karbala 1979 / UTM zone 39N\",GEOGCS[\"Karbala "); add_srs_wkt (p, 1, "1979\",DATUM[\"Karbala_1979\",SPHEROID[\"Clarke 1880 (RG"); add_srs_wkt (p, 2, "S)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],T"); add_srs_wkt (p, 3, "OWGS84[70.995,-335.916,262.898,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6743\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4743\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 8, "igin\",0],PARAMETER[\"central_meridian\",51],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"3393\"]]"); p = add_epsg_def (filter, first, last, 3394, "epsg", 3394, "Nahrwan 1934 / Iraq zone"); add_proj4text (p, 0, "+proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=45 +k_0=0.99878"); add_proj4text (p, 1, "64078000001 +x_0=1500000 +y_0=1166200 +ellps=clrk80 +uni"); add_proj4text (p, 2, "ts=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Nahrwan 1934 / Iraq zone\",GEOGCS[\"Nahrwan 193"); add_srs_wkt (p, 1, "4\",DATUM[\"Nahrwan_1934\",SPHEROID[\"Clarke 1880 (RGS)\""); add_srs_wkt (p, 2, ",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],AUTHO"); add_srs_wkt (p, 3, "RITY[\"EPSG\",\"6744\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 4, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4744"); add_srs_wkt (p, 6, "\"]],PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAMET"); add_srs_wkt (p, 7, "ER[\"latitude_of_origin\",32.5],PARAMETER[\"central_meri"); add_srs_wkt (p, 8, "dian\",45],PARAMETER[\"scale_factor\",0.9987864078],PARA"); add_srs_wkt (p, 9, "METER[\"false_easting\",1500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",1166200],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 11, "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"3394\"]]"); p = add_epsg_def (filter, first, last, 3395, "epsg", 3395, "WGS 84 / World Mercator"); add_proj4text (p, 0, "+proj=merc +lon_0=0 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +uni"); add_proj4text (p, 1, "ts=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / World Mercator\",GEOGCS[\"WGS 84\",DAT"); add_srs_wkt (p, 1, "UM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.25722356"); add_srs_wkt (p, 2, "3,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"632"); add_srs_wkt (p, 3, "6\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 4, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"M"); add_srs_wkt (p, 6, "ercator_1SP\"],PARAMETER[\"central_meridian\",0],PARAMET"); add_srs_wkt (p, 7, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 9, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 10, "ing\",NORTH],AUTHORITY[\"EPSG\",\"3395\"]]"); p = add_epsg_def (filter, first, last, 3396, "epsg", 3396, "PD/83 / 3-degree Gauss-Kruger zone 3"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PD/83 / 3-degree Gauss-Kruger zone 3\",GEOGCS[\""); add_srs_wkt (p, 1, "PD/83\",DATUM[\"Potsdam_Datum_83\",SPHEROID[\"Bessel 184"); add_srs_wkt (p, 2, "1\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6746\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4746\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 7, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, "\",9],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_ea"); add_srs_wkt (p, 9, "sting\",3500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 10, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); add_srs_wkt (p, 11, "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3396\"]]"); p = add_epsg_def (filter, first, last, 3397, "epsg", 3397, "PD/83 / 3-degree Gauss-Kruger zone 4"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PD/83 / 3-degree Gauss-Kruger zone 4\",GEOGCS[\""); add_srs_wkt (p, 1, "PD/83\",DATUM[\"Potsdam_Datum_83\",SPHEROID[\"Bessel 184"); add_srs_wkt (p, 2, "1\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6746\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4746\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 7, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, "\",12],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_e"); add_srs_wkt (p, 9, "asting\",4500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 10, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); add_srs_wkt (p, 11, "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3397\"]]"); p = add_epsg_def (filter, first, last, 3398, "epsg", 3398, "RD/83 / 3-degree Gauss-Kruger zone 4"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RD/83 / 3-degree Gauss-Kruger zone 4\",GEOGCS[\""); add_srs_wkt (p, 1, "RD/83\",DATUM[\"Rauenberg_Datum_83\",SPHEROID[\"Bessel 1"); add_srs_wkt (p, 2, "841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"6745\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4745\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 7, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, "\",12],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_e"); add_srs_wkt (p, 9, "asting\",4500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 10, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); add_srs_wkt (p, 11, "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3398\"]]"); p = add_epsg_def (filter, first, last, 3399, "epsg", 3399, "RD/83 / 3-degree Gauss-Kruger zone 5"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RD/83 / 3-degree Gauss-Kruger zone 5\",GEOGCS[\""); add_srs_wkt (p, 1, "RD/83\",DATUM[\"Rauenberg_Datum_83\",SPHEROID[\"Bessel 1"); add_srs_wkt (p, 2, "841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"6745\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4745\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 7, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, "\",15],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_e"); add_srs_wkt (p, 9, "asting\",5500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 10, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); add_srs_wkt (p, 11, "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3399\"]]"); p = add_epsg_def (filter, first, last, 3400, "epsg", 3400, "NAD83 / Alberta 10-TM (Forest)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-115 +k=0.9992 +x_0=500000 +"); add_proj4text (p, 1, "y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Alberta 10-TM (Forest)\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-115],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9992],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"3400\"]]"); p = add_epsg_def (filter, first, last, 3401, "epsg", 3401, "NAD83 / Alberta 10-TM (Resource)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-115 +k=0.9992 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Alberta 10-TM (Resource)\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS "); add_srs_wkt (p, 2, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",-115],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, "r\",0.9992],PARAMETER[\"false_easting\",0],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"3401\"]]"); p = add_epsg_def (filter, first, last, 3402, "epsg", 3402, "NAD83(CSRS) / Alberta 10-TM (Forest)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-115 +k=0.9992 +x_0=500000 +"); add_proj4text (p, 1, "y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / Alberta 10-TM (Forest)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-115],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9992],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3402\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def (filter, first, last, 3403, "epsg", 3403, "NAD83(CSRS) / Alberta 10-TM (Resource)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-115 +k=0.9992 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / Alberta 10-TM (Resource)\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Referenc"); add_srs_wkt (p, 2, "e_System\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"461"); add_srs_wkt (p, 7, "7\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 8, "titude_of_origin\",0],PARAMETER[\"central_meridian\",-11"); add_srs_wkt (p, 9, "5],PARAMETER[\"scale_factor\",0.9992],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 12, "T],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3403\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def (filter, first, last, 3404, "epsg", 3404, "NAD83(HARN) / North Carolina (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333"); add_proj4text (p, 1, "334 +lat_0=33.75 +lon_0=-79 +x_0=609601.2192024384 +y_0="); add_proj4text (p, 2, "0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_d"); add_proj4text (p, 3, "efs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / North Carolina (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netw"); add_srs_wkt (p, 2, "ork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 8, "standard_parallel_1\",36.16666666666666],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_2\",34.33333333333334],PARAMETER[\"latitu"); add_srs_wkt (p, 10, "de_of_origin\",33.75],PARAMETER[\"central_meridian\",-79"); add_srs_wkt (p, 11, "],PARAMETER[\"false_easting\",2000000],PARAMETER[\"false"); add_srs_wkt (p, 12, "_northing\",0],UNIT[\"US survey foot\",0.304800609601219"); add_srs_wkt (p, 13, "2,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 14, "Y\",NORTH],AUTHORITY[\"EPSG\",\"3404\"]]"); p = add_epsg_def (filter, first, last, 3405, "epsg", 3405, "VN-2000 / UTM zone 48N"); add_proj4text (p, 0, "+proj=utm +zone=48 +ellps=WGS84 +towgs84=-192.873,-39.38"); add_proj4text (p, 1, "2,-111.202,-0.00205,-0.0005,0.00335,0.0188 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"VN-2000 / UTM zone 48N\",GEOGCS[\"VN-2000\",DAT"); add_srs_wkt (p, 1, "UM[\"Vietnam_2000\",SPHEROID[\"WGS 84\",6378137,298.2572"); add_srs_wkt (p, 2, "23563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[-192.873,-39"); add_srs_wkt (p, 3, ".382,-111.202,-0.00205,-0.0005,0.00335,0.0188],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6756\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4756\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",105],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST"); add_srs_wkt (p, 12, "],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3405\"]]"); p = add_epsg_def (filter, first, last, 3406, "epsg", 3406, "VN-2000 / UTM zone 49N"); add_proj4text (p, 0, "+proj=utm +zone=49 +ellps=WGS84 +towgs84=-192.873,-39.38"); add_proj4text (p, 1, "2,-111.202,-0.00205,-0.0005,0.00335,0.0188 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"VN-2000 / UTM zone 49N\",GEOGCS[\"VN-2000\",DAT"); add_srs_wkt (p, 1, "UM[\"Vietnam_2000\",SPHEROID[\"WGS 84\",6378137,298.2572"); add_srs_wkt (p, 2, "23563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[-192.873,-39"); add_srs_wkt (p, 3, ".382,-111.202,-0.00205,-0.0005,0.00335,0.0188],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6756\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4756\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",111],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST"); add_srs_wkt (p, 12, "],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3406\"]]"); p = add_epsg_def (filter, first, last, 3407, "epsg", 3407, "Hong Kong 1963 Grid System"); add_proj4text (p, 0, "+proj=cass +lat_0=22.31213333333334 +lon_0=114.178555555"); add_proj4text (p, 1, "5556 +x_0=40243.57775604237 +y_0=19069.93351512578 +a=63"); add_proj4text (p, 2, "78293.645208759 +b=6356617.987679838 +to_meter=0.3047972"); add_proj4text (p, 3, "654 +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Hong Kong 1963 Grid System\",GEOGCS[\"Hong Kong"); add_srs_wkt (p, 1, " 1963\",DATUM[\"Hong_Kong_1963\",SPHEROID[\"Clarke 1858\""); add_srs_wkt (p, 2, ",6378293.645208759,294.2606763692654,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7007\"]],AUTHORITY[\"EPSG\",\"6738\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 4, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 5, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"4738\"]],PROJECTION[\"Cassini_Soldner\"],PAR"); add_srs_wkt (p, 7, "AMETER[\"latitude_of_origin\",22.31213333333334],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",114.1785555555556],PARAMETER[\"f"); add_srs_wkt (p, 9, "alse_easting\",132033.92],PARAMETER[\"false_northing\",6"); add_srs_wkt (p, 10, "2565.96],UNIT[\"Clarke's foot\",0.3047972654,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9005\"]],AXIS[\"Northing\",NORTH],AXIS[\"Eastin"); add_srs_wkt (p, 12, "g\",EAST],AUTHORITY[\"EPSG\",\"3407\"]]"); p = add_epsg_def (filter, first, last, 3408, "epsg", 3408, "NSIDC EASE-Grid North"); add_proj4text (p, 0, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=6371228 +"); add_proj4text (p, 1, "b=6371228 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NSIDC EASE-Grid North\",GEOGCS[\"Unspecified da"); add_srs_wkt (p, 1, "tum based upon the International 1924 Authalic Sphere\","); add_srs_wkt (p, 2, "DATUM[\"Not_specified_based_on_International_1924_Authal"); add_srs_wkt (p, 3, "ic_Sphere\",SPHEROID[\"International 1924 Authalic Spher"); add_srs_wkt (p, 4, "e\",6371228,0,AUTHORITY[\"EPSG\",\"7057\"]],AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"6053\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4053\"]],PR"); add_srs_wkt (p, 8, "OJECTION[\"Lambert_Azimuthal_Equal_Area\"],PARAMETER[\"l"); add_srs_wkt (p, 9, "atitude_of_center\",90],PARAMETER[\"longitude_of_center\""); add_srs_wkt (p, 10, ",0],PARAMETER[\"false_easting\",0],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 12, "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"3408\"]]"); p = add_epsg_def (filter, first, last, 3409, "epsg", 3409, "NSIDC EASE-Grid South"); add_proj4text (p, 0, "+proj=laea +lat_0=-90 +lon_0=0 +x_0=0 +y_0=0 +a=6371228 "); add_proj4text (p, 1, "+b=6371228 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NSIDC EASE-Grid South\",GEOGCS[\"Unspecified da"); add_srs_wkt (p, 1, "tum based upon the International 1924 Authalic Sphere\","); add_srs_wkt (p, 2, "DATUM[\"Not_specified_based_on_International_1924_Authal"); add_srs_wkt (p, 3, "ic_Sphere\",SPHEROID[\"International 1924 Authalic Spher"); add_srs_wkt (p, 4, "e\",6371228,0,AUTHORITY[\"EPSG\",\"7057\"]],AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"6053\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4053\"]],PR"); add_srs_wkt (p, 8, "OJECTION[\"Lambert_Azimuthal_Equal_Area\"],PARAMETER[\"l"); add_srs_wkt (p, 9, "atitude_of_center\",-90],PARAMETER[\"longitude_of_center"); add_srs_wkt (p, 10, "\",0],PARAMETER[\"false_easting\",0],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"3409\"]]"); p = add_epsg_def (filter, first, last, 3410, "epsg", 3410, "NSIDC EASE-Grid Global"); add_proj4text (p, 0, "+proj=cea +lon_0=0 +lat_ts=30 +x_0=0 +y_0=0 +a=6371228 +"); add_proj4text (p, 1, "b=6371228 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NSIDC EASE-Grid Global\",GEOGCS[\"Unspecified d"); add_srs_wkt (p, 1, "atum based upon the International 1924 Authalic Sphere\""); add_srs_wkt (p, 2, ",DATUM[\"Not_specified_based_on_International_1924_Autha"); add_srs_wkt (p, 3, "lic_Sphere\",SPHEROID[\"International 1924 Authalic Sphe"); add_srs_wkt (p, 4, "re\",6371228,0,AUTHORITY[\"EPSG\",\"7057\"]],AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"6053\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4053\"]],PR"); add_srs_wkt (p, 8, "OJECTION[\"Cylindrical_Equal_Area\"],PARAMETER[\"standar"); add_srs_wkt (p, 9, "d_parallel_1\",30],PARAMETER[\"central_meridian\",0],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3410\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def (filter, first, last, 3411, "epsg", 3411, "NSIDC Sea Ice Polar Stereographic North"); add_proj4text (p, 0, "+proj=stere +lat_0=90 +lat_ts=70 +lon_0=-45 +k=1 +x_0=0 "); add_proj4text (p, 1, "+y_0=0 +a=6378273 +b=6356889.449 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NSIDC Sea Ice Polar Stereographic North\",GEOGC"); add_srs_wkt (p, 1, "S[\"Unspecified datum based upon the Hughes 1980 ellipso"); add_srs_wkt (p, 2, "id\",DATUM[\"Not_specified_based_on_Hughes_1980_ellipsoi"); add_srs_wkt (p, 3, "d\",SPHEROID[\"Hughes 1980\",6378273,298.279411123064,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"7058\"]],AUTHORITY[\"EPSG\",\"6054\"]"); add_srs_wkt (p, 5, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 6, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 7, "122\"]],AUTHORITY[\"EPSG\",\"4054\"]],PROJECTION[\"Polar"); add_srs_wkt (p, 8, "_Stereographic\"],PARAMETER[\"latitude_of_origin\",70],P"); add_srs_wkt (p, 9, "ARAMETER[\"central_meridian\",-45],PARAMETER[\"scale_fac"); add_srs_wkt (p, 10, "tor\",1],PARAMETER[\"false_easting\",0],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"3411\"]]"); p = add_epsg_def (filter, first, last, 3412, "epsg", 3412, "NSIDC Sea Ice Polar Stereographic South"); add_proj4text (p, 0, "+proj=stere +lat_0=-90 +lat_ts=-70 +lon_0=0 +k=1 +x_0=0 "); add_proj4text (p, 1, "+y_0=0 +a=6378273 +b=6356889.449 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NSIDC Sea Ice Polar Stereographic South\",GEOGC"); add_srs_wkt (p, 1, "S[\"Unspecified datum based upon the Hughes 1980 ellipso"); add_srs_wkt (p, 2, "id\",DATUM[\"Not_specified_based_on_Hughes_1980_ellipsoi"); add_srs_wkt (p, 3, "d\",SPHEROID[\"Hughes 1980\",6378273,298.279411123064,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"7058\"]],AUTHORITY[\"EPSG\",\"6054\"]"); add_srs_wkt (p, 5, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 6, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 7, "122\"]],AUTHORITY[\"EPSG\",\"4054\"]],PROJECTION[\"Polar"); add_srs_wkt (p, 8, "_Stereographic\"],PARAMETER[\"latitude_of_origin\",-70],"); add_srs_wkt (p, 9, "PARAMETER[\"central_meridian\",0],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",1],PARAMETER[\"false_easting\",0],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, "1\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"3412\"]]"); p = add_epsg_def (filter, first, last, 3413, "epsg", 3413, "WGS 84 / NSIDC Sea Ice Polar Stereographic North"); add_proj4text (p, 0, "+proj=stere +lat_0=90 +lat_ts=70 +lon_0=-45 +k=1 +x_0=0 "); add_proj4text (p, 1, "+y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / NSIDC Sea Ice Polar Stereographic Nort"); add_srs_wkt (p, 1, "h\",GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS "); add_srs_wkt (p, 2, "84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4326\"]],PROJECTION[\"Polar_Stereographic\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",70],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, "\",-45],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_"); add_srs_wkt (p, 9, "easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 10, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI"); add_srs_wkt (p, 11, "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3413\"]]"); p = add_epsg_def (filter, first, last, 3414, "epsg", 3414, "SVY21 / Singapore TM"); add_proj4text (p, 0, "+proj=tmerc +lat_0=1.366666666666667 +lon_0=103.83333333"); add_proj4text (p, 1, "33333 +k=1 +x_0=28001.642 +y_0=38744.572 +ellps=WGS84 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SVY21 / Singapore TM\",GEOGCS[\"SVY21\",DATUM[\""); add_srs_wkt (p, 1, "SVY21\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHOR"); add_srs_wkt (p, 2, "ITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6757\"]],PR"); add_srs_wkt (p, 3, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 4, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 5, "]],AUTHORITY[\"EPSG\",\"4757\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 6, "_Mercator\"],PARAMETER[\"latitude_of_origin\",1.36666666"); add_srs_wkt (p, 7, "6666667],PARAMETER[\"central_meridian\",103.833333333333"); add_srs_wkt (p, 8, "3],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 9, "ng\",28001.642],PARAMETER[\"false_northing\",38744.572],"); add_srs_wkt (p, 10, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"No"); add_srs_wkt (p, 11, "rthing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"3414\"]]"); p = add_epsg_def (filter, first, last, 3415, "epsg", 3415, "WGS 72BE / South China Sea Lambert"); add_proj4text (p, 0, "+proj=lcc +lat_1=18 +lat_2=24 +lat_0=21 +lon_0=114 +x_0="); add_proj4text (p, 1, "500000 +y_0=500000 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 2, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / South China Sea Lambert\",GEOGCS[\"W"); add_srs_wkt (p, 1, "GS 72BE\",DATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\""); add_srs_wkt (p, 2, ",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7043\"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EP"); add_srs_wkt (p, 4, "SG\",\"6324\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 8, "ard_parallel_1\",18],PARAMETER[\"standard_parallel_2\",2"); add_srs_wkt (p, 9, "4],PARAMETER[\"latitude_of_origin\",21],PARAMETER[\"cent"); add_srs_wkt (p, 10, "ral_meridian\",114],PARAMETER[\"false_easting\",500000],"); add_srs_wkt (p, 11, "PARAMETER[\"false_northing\",500000],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS["); add_srs_wkt (p, 13, "\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3415\"]]"); p = add_epsg_def (filter, first, last, 3416, "epsg", 3416, "ETRS89 / Austria Lambert"); add_proj4text (p, 0, "+proj=lcc +lat_1=49 +lat_2=46 +lat_0=47.5 +lon_0=13.3333"); add_proj4text (p, 1, "3333333333 +x_0=400000 +y_0=400000 +ellps=GRS80 +towgs84"); add_proj4text (p, 2, "=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / Austria Lambert\",GEOGCS[\"ETRS89\",DA"); add_srs_wkt (p, 1, "TUM[\"European_Terrestrial_Reference_System_1989\",SPHER"); add_srs_wkt (p, 2, "OID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 8, "rallel_1\",49],PARAMETER[\"standard_parallel_2\",46],PAR"); add_srs_wkt (p, 9, "AMETER[\"latitude_of_origin\",47.5],PARAMETER[\"central_"); add_srs_wkt (p, 10, "meridian\",13.33333333333333],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",400000],PARAMETER[\"false_northing\",400000],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 13, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3416\"]]"); p = add_epsg_def (filter, first, last, 3417, "epsg", 3417, "NAD83 / Iowa North (ft US)"); add_proj4text (p, 0, "+proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666"); add_proj4text (p, 1, "667 +lat_0=41.5 +lon_0=-93.5 +x_0=1500000 +y_0=999999.99"); add_proj4text (p, 2, "99898402 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Iowa North (ft US)\",GEOGCS[\"NAD83\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 7, "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",43.2"); add_srs_wkt (p, 8, "6666666666667],PARAMETER[\"standard_parallel_2\",42.0666"); add_srs_wkt (p, 9, "6666666667],PARAMETER[\"latitude_of_origin\",41.5],PARAM"); add_srs_wkt (p, 10, "ETER[\"central_meridian\",-93.5],PARAMETER[\"false_easti"); add_srs_wkt (p, 11, "ng\",4921250],PARAMETER[\"false_northing\",3280833.33330"); add_srs_wkt (p, 12, "0001],UNIT[\"US survey foot\",0.3048006096012192,AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 14, "],AUTHORITY[\"EPSG\",\"3417\"]]"); p = add_epsg_def (filter, first, last, 3418, "epsg", 3418, "NAD83 / Iowa South (ft US)"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666"); add_proj4text (p, 1, "667 +lat_0=40 +lon_0=-93.5 +x_0=500000.00001016 +y_0=0 +"); add_proj4text (p, 2, "datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Iowa South (ft US)\",GEOGCS[\"NAD83\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 7, "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",41.7"); add_srs_wkt (p, 8, "8333333333333],PARAMETER[\"standard_parallel_2\",40.6166"); add_srs_wkt (p, 9, "6666666667],PARAMETER[\"latitude_of_origin\",40],PARAMET"); add_srs_wkt (p, 10, "ER[\"central_meridian\",-93.5],PARAMETER[\"false_easting"); add_srs_wkt (p, 11, "\",1640416.6667],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 12, "US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"3418\"]]"); p = add_epsg_def (filter, first, last, 3419, "epsg", 3419, "NAD83 / Kansas North (ft US)"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666"); add_proj4text (p, 1, "667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=399999.9999"); add_proj4text (p, 2, "8984 +y_0=0 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Kansas North (ft US)\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 7, "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",39"); add_srs_wkt (p, 8, ".78333333333333],PARAMETER[\"standard_parallel_2\",38.71"); add_srs_wkt (p, 9, "666666666667],PARAMETER[\"latitude_of_origin\",38.333333"); add_srs_wkt (p, 10, "33333334],PARAMETER[\"central_meridian\",-98],PARAMETER["); add_srs_wkt (p, 11, "\"false_easting\",1312333.3333],PARAMETER[\"false_northi"); add_srs_wkt (p, 12, "ng\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); add_srs_wkt (p, 14, "TH],AUTHORITY[\"EPSG\",\"3419\"]]"); p = add_epsg_def (filter, first, last, 3420, "epsg", 3420, "NAD83 / Kansas South (ft US)"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666"); add_proj4text (p, 1, "667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=399999.99"); add_proj4text (p, 2, "998984 +y_0=399999.99998984 +datum=NAD83 +units=us-ft +n"); add_proj4text (p, 3, "o_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Kansas South (ft US)\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 7, "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",38"); add_srs_wkt (p, 8, ".56666666666667],PARAMETER[\"standard_parallel_2\",37.26"); add_srs_wkt (p, 9, "666666666667],PARAMETER[\"latitude_of_origin\",36.666666"); add_srs_wkt (p, 10, "66666666],PARAMETER[\"central_meridian\",-98.5],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_easting\",1312333.3333],PARAMETER[\"false_nort"); add_srs_wkt (p, 12, "hing\",1312333.3333],UNIT[\"US survey foot\",0.304800609"); add_srs_wkt (p, 13, "6012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],A"); add_srs_wkt (p, 14, "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3420\"]]"); p = add_epsg_def (filter, first, last, 3421, "epsg", 3421, "NAD83 / Nevada East (ft US)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0."); add_proj4text (p, 1, "9999 +x_0=200000.00001016 +y_0=8000000.000010163 +datum="); add_proj4text (p, 2, "NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Nevada East (ft US)\",GEOGCS[\"NAD83\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, "rcator\"],PARAMETER[\"latitude_of_origin\",34.75],PARAME"); add_srs_wkt (p, 8, "TER[\"central_meridian\",-115.5833333333333],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9999],PARAMETER[\"false_easting\",65616"); add_srs_wkt (p, 10, "6.6667],PARAMETER[\"false_northing\",26246666.66670001],"); add_srs_wkt (p, 11, "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 13, "ORITY[\"EPSG\",\"3421\"]]"); p = add_epsg_def (filter, first, last, 3422, "epsg", 3422, "NAD83 / Nevada Central (ft US)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0."); add_proj4text (p, 1, "9999 +x_0=500000.00001016 +y_0=6000000 +datum=NAD83 +uni"); add_proj4text (p, 2, "ts=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Nevada Central (ft US)\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",34.75],PAR"); add_srs_wkt (p, 8, "AMETER[\"central_meridian\",-116.6666666666667],PARAMETE"); add_srs_wkt (p, 9, "R[\"scale_factor\",0.9999],PARAMETER[\"false_easting\",1"); add_srs_wkt (p, 10, "640416.6667],PARAMETER[\"false_northing\",19685000],UNIT"); add_srs_wkt (p, 11, "[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"3422\"]]"); p = add_epsg_def (filter, first, last, 3423, "epsg", 3423, "NAD83 / Nevada West (ft US)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0."); add_proj4text (p, 1, "9999 +x_0=800000.0000101599 +y_0=3999999.99998984 +datum"); add_proj4text (p, 2, "=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Nevada West (ft US)\",GEOGCS[\"NAD83\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, "rcator\"],PARAMETER[\"latitude_of_origin\",34.75],PARAME"); add_srs_wkt (p, 8, "TER[\"central_meridian\",-118.5833333333333],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9999],PARAMETER[\"false_easting\",26246"); add_srs_wkt (p, 10, "66.6667],PARAMETER[\"false_northing\",13123333.3333],UNI"); add_srs_wkt (p, 11, "T[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"3423\"]]"); p = add_epsg_def (filter, first, last, 3424, "epsg", 3424, "NAD83 / New Jersey (ft US)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9"); add_proj4text (p, 1, "999 +x_0=150000 +y_0=0 +datum=NAD83 +units=us-ft +no_def"); add_proj4text (p, 2, "s"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / New Jersey (ft US)\",GEOGCS[\"NAD83\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, "rcator\"],PARAMETER[\"latitude_of_origin\",38.8333333333"); add_srs_wkt (p, 8, "3334],PARAMETER[\"central_meridian\",-74.5],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9999],PARAMETER[\"false_easting\",49212"); add_srs_wkt (p, 10, "5],PARAMETER[\"false_northing\",0],UNIT[\"US survey foot"); add_srs_wkt (p, 11, "\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS"); add_srs_wkt (p, 12, "[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3424"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def (filter, first, last, 3425, "epsg", 3425, "NAD83(HARN) / Iowa North (ft US)"); add_proj4text (p, 0, "+proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666"); add_proj4text (p, 1, "667 +lat_0=41.5 +lon_0=-93.5 +x_0=1500000 +y_0=999999.99"); add_proj4text (p, 2, "99898402 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-f"); add_proj4text (p, 3, "t +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Iowa North (ft US)\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network"); add_srs_wkt (p, 2, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"st"); add_srs_wkt (p, 8, "andard_parallel_1\",43.26666666666667],PARAMETER[\"stand"); add_srs_wkt (p, 9, "ard_parallel_2\",42.06666666666667],PARAMETER[\"latitude"); add_srs_wkt (p, 10, "_of_origin\",41.5],PARAMETER[\"central_meridian\",-93.5]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_easting\",4921250],PARAMETER[\"false_"); add_srs_wkt (p, 12, "northing\",3280833.333300001],UNIT[\"US survey foot\",0."); add_srs_wkt (p, 13, "3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); add_srs_wkt (p, 14, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3425\"]]"); p = add_epsg_def (filter, first, last, 3426, "epsg", 3426, "NAD83(HARN) / Iowa South (ft US)"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666"); add_proj4text (p, 1, "667 +lat_0=40 +lon_0=-93.5 +x_0=500000.00001016 +y_0=0 +"); add_proj4text (p, 2, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Iowa South (ft US)\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network"); add_srs_wkt (p, 2, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"st"); add_srs_wkt (p, 8, "andard_parallel_1\",41.78333333333333],PARAMETER[\"stand"); add_srs_wkt (p, 9, "ard_parallel_2\",40.61666666666667],PARAMETER[\"latitude"); add_srs_wkt (p, 10, "_of_origin\",40],PARAMETER[\"central_meridian\",-93.5],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_easting\",1640416.6667],PARAMETER[\"fal"); add_srs_wkt (p, 12, "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012"); add_srs_wkt (p, 13, "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS["); add_srs_wkt (p, 14, "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3426\"]]"); p = add_epsg_def (filter, first, last, 3427, "epsg", 3427, "NAD83(HARN) / Kansas North (ft US)"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666"); add_proj4text (p, 1, "667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=399999.9999"); add_proj4text (p, 2, "8984 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=u"); add_proj4text (p, 3, "s-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Kansas North (ft US)\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netwo"); add_srs_wkt (p, 2, "rk\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 8, "standard_parallel_1\",39.78333333333333],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_2\",38.71666666666667],PARAMETER[\"latitu"); add_srs_wkt (p, 10, "de_of_origin\",38.33333333333334],PARAMETER[\"central_me"); add_srs_wkt (p, 11, "ridian\",-98],PARAMETER[\"false_easting\",1312333.3333],"); add_srs_wkt (p, 12, "PARAMETER[\"false_northing\",0],UNIT[\"US survey foot\","); add_srs_wkt (p, 13, "0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\""); add_srs_wkt (p, 14, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3427\"]"); add_srs_wkt (p, 15, "]"); p = add_epsg_def (filter, first, last, 3428, "epsg", 3428, "NAD83(HARN) / Kansas South (ft US)"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666"); add_proj4text (p, 1, "667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=399999.99"); add_proj4text (p, 2, "998984 +y_0=399999.99998984 +ellps=GRS80 +towgs84=0,0,0,"); add_proj4text (p, 3, "0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Kansas South (ft US)\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netwo"); add_srs_wkt (p, 2, "rk\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 8, "standard_parallel_1\",38.56666666666667],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_2\",37.26666666666667],PARAMETER[\"latitu"); add_srs_wkt (p, 10, "de_of_origin\",36.66666666666666],PARAMETER[\"central_me"); add_srs_wkt (p, 11, "ridian\",-98.5],PARAMETER[\"false_easting\",1312333.3333"); add_srs_wkt (p, 12, "],PARAMETER[\"false_northing\",1312333.3333],UNIT[\"US s"); add_srs_wkt (p, 13, "urvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 14, "3\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 15, "G\",\"3428\"]]"); p = add_epsg_def (filter, first, last, 3429, "epsg", 3429, "NAD83(HARN) / Nevada East (ft US)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0."); add_proj4text (p, 1, "9999 +x_0=200000.00001016 +y_0=8000000.000010163 +ellps="); add_proj4text (p, 2, "GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Nevada East (ft US)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Networ"); add_srs_wkt (p, 2, "k\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",34.75],PARAMETER[\"central_meridian\",-115.58"); add_srs_wkt (p, 9, "33333333333],PARAMETER[\"scale_factor\",0.9999],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",656166.6667],PARAMETER[\"false_north"); add_srs_wkt (p, 11, "ing\",26246666.66670001],UNIT[\"US survey foot\",0.30480"); add_srs_wkt (p, 12, "06096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAS"); add_srs_wkt (p, 13, "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3429\"]]"); p = add_epsg_def (filter, first, last, 3430, "epsg", 3430, "NAD83(HARN) / Nevada Central (ft US)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0."); add_proj4text (p, 1, "9999 +x_0=500000.00001016 +y_0=6000000 +ellps=GRS80 +tow"); add_proj4text (p, 2, "gs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Nevada Central (ft US)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netw"); add_srs_wkt (p, 2, "ork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",34.75],PARAMETER[\"central_meridian\",-116"); add_srs_wkt (p, 9, ".6666666666667],PARAMETER[\"scale_factor\",0.9999],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_easting\",1640416.6667],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",19685000],UNIT[\"US survey foot\",0.3048006096"); add_srs_wkt (p, 12, "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 13, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3430\"]]"); p = add_epsg_def (filter, first, last, 3431, "epsg", 3431, "NAD83(HARN) / Nevada West (ft US)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0."); add_proj4text (p, 1, "9999 +x_0=800000.0000101599 +y_0=3999999.99998984 +ellps"); add_proj4text (p, 2, "=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Nevada West (ft US)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Networ"); add_srs_wkt (p, 2, "k\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",34.75],PARAMETER[\"central_meridian\",-118.58"); add_srs_wkt (p, 9, "33333333333],PARAMETER[\"scale_factor\",0.9999],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",2624666.6667],PARAMETER[\"false_nort"); add_srs_wkt (p, 11, "hing\",13123333.3333],UNIT[\"US survey foot\",0.30480060"); add_srs_wkt (p, 12, "96012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],"); add_srs_wkt (p, 13, "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3431\"]]"); p = add_epsg_def (filter, first, last, 3432, "epsg", 3432, "NAD83(HARN) / New Jersey (ft US)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9"); add_proj4text (p, 1, "999 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 2, ",0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / New Jersey (ft US)\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network"); add_srs_wkt (p, 2, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",38.83333333333334],PARAMETER[\"central_meridi"); add_srs_wkt (p, 9, "an\",-74.5],PARAMETER[\"scale_factor\",0.9999],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",492125],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"3432\"]]"); p = add_epsg_def (filter, first, last, 3433, "epsg", 3433, "NAD83 / Arkansas North (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333"); add_proj4text (p, 1, "333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=399999.9999"); add_proj4text (p, 2, "8984 +y_0=0 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Arkansas North (ftUS)\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 7, "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",36"); add_srs_wkt (p, 8, ".23333333333333],PARAMETER[\"standard_parallel_2\",34.93"); add_srs_wkt (p, 9, "333333333333],PARAMETER[\"latitude_of_origin\",34.333333"); add_srs_wkt (p, 10, "33333334],PARAMETER[\"central_meridian\",-92],PARAMETER["); add_srs_wkt (p, 11, "\"false_easting\",1312333.3333],PARAMETER[\"false_northi"); add_srs_wkt (p, 12, "ng\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); add_srs_wkt (p, 14, "TH],AUTHORITY[\"EPSG\",\"3433\"]]"); p = add_epsg_def (filter, first, last, 3434, "epsg", 3434, "NAD83 / Arkansas South (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32"); add_proj4text (p, 1, ".66666666666666 +lon_0=-92 +x_0=399999.99998984 +y_0=399"); add_proj4text (p, 2, "999.99998984 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Arkansas South (ftUS)\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 7, "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",34"); add_srs_wkt (p, 8, ".76666666666667],PARAMETER[\"standard_parallel_2\",33.3]"); add_srs_wkt (p, 9, ",PARAMETER[\"latitude_of_origin\",32.66666666666666],PAR"); add_srs_wkt (p, 10, "AMETER[\"central_meridian\",-92],PARAMETER[\"false_easti"); add_srs_wkt (p, 11, "ng\",1312333.3333],PARAMETER[\"false_northing\",1312333."); add_srs_wkt (p, 12, "3333],UNIT[\"US survey foot\",0.3048006096012192,AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 14, "],AUTHORITY[\"EPSG\",\"3434\"]]"); p = add_epsg_def (filter, first, last, 3435, "epsg", 3435, "NAD83 / Illinois East (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333"); add_proj4text (p, 1, "333333 +k=0.9999749999999999 +x_0=300000.0000000001 +y_0"); add_proj4text (p, 2, "=0 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Illinois East (ftUS)\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, "Mercator\"],PARAMETER[\"latitude_of_origin\",36.66666666"); add_srs_wkt (p, 8, "666666],PARAMETER[\"central_meridian\",-88.3333333333333"); add_srs_wkt (p, 9, "3],PARAMETER[\"scale_factor\",0.999975],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_easting\",984250.0000000002],PARAMETER[\"false_northin"); add_srs_wkt (p, 11, "g\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"3435\"]]"); p = add_epsg_def (filter, first, last, 3436, "epsg", 3436, "NAD83 / Illinois West (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666"); add_proj4text (p, 1, "666667 +k=0.999941177 +x_0=699999.9999898402 +y_0=0 +dat"); add_proj4text (p, 2, "um=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Illinois West (ftUS)\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, "Mercator\"],PARAMETER[\"latitude_of_origin\",36.66666666"); add_srs_wkt (p, 8, "666666],PARAMETER[\"central_meridian\",-90.1666666666666"); add_srs_wkt (p, 9, "7],PARAMETER[\"scale_factor\",0.999941177],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_easting\",2296583.333300001],PARAMETER[\"false_nort"); add_srs_wkt (p, 11, "hing\",0],UNIT[\"US survey foot\",0.3048006096012192,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); add_srs_wkt (p, 13, "ORTH],AUTHORITY[\"EPSG\",\"3436\"]]"); p = add_epsg_def (filter, first, last, 3437, "epsg", 3437, "NAD83 / New Hampshire (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.9"); add_proj4text (p, 1, "99966667 +x_0=300000.0000000001 +y_0=0 +datum=NAD83 +uni"); add_proj4text (p, 2, "ts=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / New Hampshire (ftUS)\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, "Mercator\"],PARAMETER[\"latitude_of_origin\",42.5],PARAM"); add_srs_wkt (p, 8, "ETER[\"central_meridian\",-71.66666666666667],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",0.999966667],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, ",984250.0000000002],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 11, "[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"3437\"]]"); p = add_epsg_def (filter, first, last, 3438, "epsg", 3438, "NAD83 / Rhode Island (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.9"); add_proj4text (p, 1, "9999375 +x_0=99999.99998983997 +y_0=0 +datum=NAD83 +unit"); add_proj4text (p, 2, "s=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Rhode Island (ftUS)\",GEOGCS[\"NAD83\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, "rcator\"],PARAMETER[\"latitude_of_origin\",41.0833333333"); add_srs_wkt (p, 8, "3334],PARAMETER[\"central_meridian\",-71.5],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.99999375],PARAMETER[\"false_easting\",3"); add_srs_wkt (p, 10, "28083.3333],PARAMETER[\"false_northing\",0],UNIT[\"US su"); add_srs_wkt (p, 11, "rvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003"); add_srs_wkt (p, 12, "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"3438\"]]"); p = add_epsg_def (filter, first, last, 3439, "epsg", 3439, "PSD93 / UTM zone 39N"); add_proj4text (p, 0, "+proj=utm +zone=39 +ellps=clrk80 +towgs84=-180.624,-225."); add_proj4text (p, 1, "516,173.919,-0.81,-1.898,8.336,16.7101 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PSD93 / UTM zone 39N\",GEOGCS[\"PSD93\",DATUM[\""); add_srs_wkt (p, 1, "PDO_Survey_Datum_1993\",SPHEROID[\"Clarke 1880 (RGS)\",6"); add_srs_wkt (p, 2, "378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84"); add_srs_wkt (p, 3, "[-180.624,-225.516,173.919,-0.81,-1.898,8.336,16.7101],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6134\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4134\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",5"); add_srs_wkt (p, 9, "1],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"343"); add_srs_wkt (p, 13, "9\"]]"); p = add_epsg_def (filter, first, last, 3440, "epsg", 3440, "PSD93 / UTM zone 40N"); add_proj4text (p, 0, "+proj=utm +zone=40 +ellps=clrk80 +towgs84=-180.624,-225."); add_proj4text (p, 1, "516,173.919,-0.81,-1.898,8.336,16.7101 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PSD93 / UTM zone 40N\",GEOGCS[\"PSD93\",DATUM[\""); add_srs_wkt (p, 1, "PDO_Survey_Datum_1993\",SPHEROID[\"Clarke 1880 (RGS)\",6"); add_srs_wkt (p, 2, "378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84"); add_srs_wkt (p, 3, "[-180.624,-225.516,173.919,-0.81,-1.898,8.336,16.7101],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6134\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4134\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",5"); add_srs_wkt (p, 9, "7],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"344"); add_srs_wkt (p, 13, "0\"]]"); p = add_epsg_def (filter, first, last, 3441, "epsg", 3441, "NAD83(HARN) / Arkansas North (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333"); add_proj4text (p, 1, "333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=399999.9999"); add_proj4text (p, 2, "8984 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=u"); add_proj4text (p, 3, "s-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Arkansas North (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netw"); add_srs_wkt (p, 2, "ork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 8, "standard_parallel_1\",36.23333333333333],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_2\",34.93333333333333],PARAMETER[\"latitu"); add_srs_wkt (p, 10, "de_of_origin\",34.33333333333334],PARAMETER[\"central_me"); add_srs_wkt (p, 11, "ridian\",-92],PARAMETER[\"false_easting\",1312333.3333],"); add_srs_wkt (p, 12, "PARAMETER[\"false_northing\",0],UNIT[\"US survey foot\","); add_srs_wkt (p, 13, "0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\""); add_srs_wkt (p, 14, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3441\"]"); add_srs_wkt (p, 15, "]"); p = add_epsg_def (filter, first, last, 3442, "epsg", 3442, "NAD83(HARN) / Arkansas South (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32"); add_proj4text (p, 1, ".66666666666666 +lon_0=-92 +x_0=399999.99998984 +y_0=399"); add_proj4text (p, 2, "999.99998984 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 3, "us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Arkansas South (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netw"); add_srs_wkt (p, 2, "ork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 8, "standard_parallel_1\",34.76666666666667],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_2\",33.3],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 10, ",32.66666666666666],PARAMETER[\"central_meridian\",-92],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",1312333.3333],PARAMETER[\"fa"); add_srs_wkt (p, 12, "lse_northing\",1312333.3333],UNIT[\"US survey foot\",0.3"); add_srs_wkt (p, 13, "048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); add_srs_wkt (p, 14, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3442\"]]"); p = add_epsg_def (filter, first, last, 3443, "epsg", 3443, "NAD83(HARN) / Illinois East (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333"); add_proj4text (p, 1, "333333 +k=0.9999749999999999 +x_0=300000.0000000001 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_"); add_proj4text (p, 3, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Illinois East (ftUS)\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netwo"); add_srs_wkt (p, 2, "rk\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",36.66666666666666],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, "dian\",-88.33333333333333],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 10, "999975],PARAMETER[\"false_easting\",984250.0000000002],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0"); add_srs_wkt (p, 12, ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X"); add_srs_wkt (p, 13, "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3443\"]]"); p = add_epsg_def (filter, first, last, 3444, "epsg", 3444, "NAD83(HARN) / Illinois West (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666"); add_proj4text (p, 1, "666667 +k=0.999941177 +x_0=699999.9999898402 +y_0=0 +ell"); add_proj4text (p, 2, "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Illinois West (ftUS)\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netwo"); add_srs_wkt (p, 2, "rk\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",36.66666666666666],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, "dian\",-90.16666666666667],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 10, "999941177],PARAMETER[\"false_easting\",2296583.333300001"); add_srs_wkt (p, 11, "],PARAMETER[\"false_northing\",0],UNIT[\"US survey foot\""); add_srs_wkt (p, 12, ",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\""); add_srs_wkt (p, 13, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3444\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def (filter, first, last, 3445, "epsg", 3445, "NAD83(HARN) / New Hampshire (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.9"); add_proj4text (p, 1, "99966667 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +tow"); add_proj4text (p, 2, "gs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / New Hampshire (ftUS)\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netwo"); add_srs_wkt (p, 2, "rk\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",42.5],PARAMETER[\"central_meridian\",-71.66"); add_srs_wkt (p, 9, "666666666667],PARAMETER[\"scale_factor\",0.999966667],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_easting\",984250.0000000002],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"US survey foot\",0.3048006096"); add_srs_wkt (p, 12, "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 13, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3445\"]]"); p = add_epsg_def (filter, first, last, 3446, "epsg", 3446, "NAD83(HARN) / Rhode Island (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.9"); add_proj4text (p, 1, "9999375 +x_0=99999.99998983997 +y_0=0 +ellps=GRS80 +towg"); add_proj4text (p, 2, "s84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Rhode Island (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Networ"); add_srs_wkt (p, 2, "k\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",41.08333333333334],PARAMETER[\"central_meridi"); add_srs_wkt (p, 9, "an\",-71.5],PARAMETER[\"scale_factor\",0.99999375],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_easting\",328083.3333],PARAMETER[\"false_no"); add_srs_wkt (p, 11, "rthing\",0],UNIT[\"US survey foot\",0.3048006096012192,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"3446\"]]"); } #endif /* full EPSG initialization enabled/disabled */ libspatialite-4.1.1/src/srsinit/epsg_inlined_29.c0000664000175000017500000045540312163502133016675 00000000000000/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_29 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def (filter, first, last, 23034, "epsg", 23034, "ED50 / UTM zone 34N"); add_proj4text (p, 0, "+proj=utm +zone=34 +ellps=intl +towgs84=-87,-98,-121,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / UTM zone 34N\",GEOGCS[\"ED50\",DATUM[\"E"); add_srs_wkt (p, 1, "uropean_Datum_1950\",SPHEROID[\"International 1924\",637"); add_srs_wkt (p, 2, "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-"); add_srs_wkt (p, 3, "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",21],PARAMETER[\"scale_factor\",0.9996],PARA"); add_srs_wkt (p, 9, "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); add_srs_wkt (p, 10, "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 11, "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"23034\"]]"); p = add_epsg_def (filter, first, last, 23035, "epsg", 23035, "ED50 / UTM zone 35N"); add_proj4text (p, 0, "+proj=utm +zone=35 +ellps=intl +towgs84=-87,-98,-121,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / UTM zone 35N\",GEOGCS[\"ED50\",DATUM[\"E"); add_srs_wkt (p, 1, "uropean_Datum_1950\",SPHEROID[\"International 1924\",637"); add_srs_wkt (p, 2, "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-"); add_srs_wkt (p, 3, "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",27],PARAMETER[\"scale_factor\",0.9996],PARA"); add_srs_wkt (p, 9, "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); add_srs_wkt (p, 10, "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 11, "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"23035\"]]"); p = add_epsg_def (filter, first, last, 23036, "epsg", 23036, "ED50 / UTM zone 36N"); add_proj4text (p, 0, "+proj=utm +zone=36 +ellps=intl +towgs84=-87,-98,-121,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / UTM zone 36N\",GEOGCS[\"ED50\",DATUM[\"E"); add_srs_wkt (p, 1, "uropean_Datum_1950\",SPHEROID[\"International 1924\",637"); add_srs_wkt (p, 2, "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-"); add_srs_wkt (p, 3, "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",33],PARAMETER[\"scale_factor\",0.9996],PARA"); add_srs_wkt (p, 9, "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); add_srs_wkt (p, 10, "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 11, "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"23036\"]]"); p = add_epsg_def (filter, first, last, 23037, "epsg", 23037, "ED50 / UTM zone 37N"); add_proj4text (p, 0, "+proj=utm +zone=37 +ellps=intl +towgs84=-87,-98,-121,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / UTM zone 37N\",GEOGCS[\"ED50\",DATUM[\"E"); add_srs_wkt (p, 1, "uropean_Datum_1950\",SPHEROID[\"International 1924\",637"); add_srs_wkt (p, 2, "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-"); add_srs_wkt (p, 3, "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",39],PARAMETER[\"scale_factor\",0.9996],PARA"); add_srs_wkt (p, 9, "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); add_srs_wkt (p, 10, "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 11, "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"23037\"]]"); p = add_epsg_def (filter, first, last, 23038, "epsg", 23038, "ED50 / UTM zone 38N"); add_proj4text (p, 0, "+proj=utm +zone=38 +ellps=intl +towgs84=-87,-98,-121,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / UTM zone 38N\",GEOGCS[\"ED50\",DATUM[\"E"); add_srs_wkt (p, 1, "uropean_Datum_1950\",SPHEROID[\"International 1924\",637"); add_srs_wkt (p, 2, "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-"); add_srs_wkt (p, 3, "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",45],PARAMETER[\"scale_factor\",0.9996],PARA"); add_srs_wkt (p, 9, "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); add_srs_wkt (p, 10, "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 11, "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"23038\"]]"); p = add_epsg_def (filter, first, last, 23090, "epsg", 23090, "ED50 / TM 0 N"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=intl +towgs84=-87,-98,-121,0,0,0,0 +units=m +n"); add_proj4text (p, 2, "o_defs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / TM 0 N\",GEOGCS[\"ED50\",DATUM[\"Europea"); add_srs_wkt (p, 1, "n_Datum_1950\",SPHEROID[\"International 1924\",6378388,2"); add_srs_wkt (p, 2, "97,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-121,0,"); add_srs_wkt (p, 3, "0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 6, "SG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 7, "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 8, "dian\",0],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 9, "false_easting\",500000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 10, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea"); add_srs_wkt (p, 11, "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"23090\"]]"); p = add_epsg_def (filter, first, last, 23095, "epsg", 23095, "ED50 / TM 5 NE"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=5 +k=0.9996 +x_0=500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=intl +towgs84=-87,-98,-121,0,0,0,0 +units=m +n"); add_proj4text (p, 2, "o_defs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / TM 5 NE\",GEOGCS[\"ED50\",DATUM[\"Europe"); add_srs_wkt (p, 1, "an_Datum_1950\",SPHEROID[\"International 1924\",6378388,"); add_srs_wkt (p, 2, "297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-121,0"); add_srs_wkt (p, 3, ",0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 4, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 5, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\"],PA"); add_srs_wkt (p, 7, "RAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_me"); add_srs_wkt (p, 8, "ridian\",5],PARAMETER[\"scale_factor\",0.9996],PARAMETER"); add_srs_wkt (p, 9, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 10, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 11, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"23095\"]]"); p = add_epsg_def (filter, first, last, 23239, "epsg", 23239, "Fahud / UTM zone 39N"); add_proj4text (p, 0, "+proj=utm +zone=39 +ellps=clrk80 +towgs84=-346,-1,224,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Fahud / UTM zone 39N\",GEOGCS[\"Fahud\",DATUM[\""); add_srs_wkt (p, 1, "Fahud\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145,293.4"); add_srs_wkt (p, 2, "65,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-346,-1,224,0,0"); add_srs_wkt (p, 3, ",0,0],AUTHORITY[\"EPSG\",\"6232\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 6, "SG\",\"4232\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 7, "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 8, "dian\",51],PARAMETER[\"scale_factor\",0.9996],PARAMETER["); add_srs_wkt (p, 9, "\"false_easting\",500000],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 10, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 11, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"23239\"]]"); p = add_epsg_def (filter, first, last, 23240, "epsg", 23240, "Fahud / UTM zone 40N"); add_proj4text (p, 0, "+proj=utm +zone=40 +ellps=clrk80 +towgs84=-346,-1,224,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Fahud / UTM zone 40N\",GEOGCS[\"Fahud\",DATUM[\""); add_srs_wkt (p, 1, "Fahud\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145,293.4"); add_srs_wkt (p, 2, "65,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-346,-1,224,0,0"); add_srs_wkt (p, 3, ",0,0],AUTHORITY[\"EPSG\",\"6232\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 6, "SG\",\"4232\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 7, "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 8, "dian\",57],PARAMETER[\"scale_factor\",0.9996],PARAMETER["); add_srs_wkt (p, 9, "\"false_easting\",500000],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 10, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 11, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"23240\"]]"); p = add_epsg_def (filter, first, last, 23433, "epsg", 23433, "Garoua / UTM zone 33N (deprecated)"); add_proj4text (p, 0, "+proj=utm +zone=33 +a=6378249.2 +b=6356515 +units=m +no_"); add_proj4text (p, 1, "defs"); add_srs_wkt (p, 0, "PROJCS[\"Garoua / UTM zone 33N (deprecated)\",GEOGCS[\"G"); add_srs_wkt (p, 1, "aroua\",DATUM[\"Garoua\",SPHEROID[\"Clarke 1880 (IGN)\","); add_srs_wkt (p, 2, "6378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6234\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9108\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4234\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 7, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, "\",15],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa"); add_srs_wkt (p, 9, "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 10, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); add_srs_wkt (p, 11, "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"23433\"]]"); p = add_epsg_def (filter, first, last, 23700, "epsg", 23700, "HD72 / EOV"); add_proj4text (p, 0, "+proj=somerc +lat_0=47.14439372222222 +lon_0=19.04857177"); add_proj4text (p, 1, "777778 +k_0=0.99993 +x_0=650000 +y_0=200000 +ellps=GRS67"); add_proj4text (p, 2, " +towgs84=52.17,-71.82,-14.9,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"HD72 / EOV\",GEOGCS[\"HD72\",DATUM[\"Hungarian_"); add_srs_wkt (p, 1, "Datum_1972\",SPHEROID[\"GRS 1967\",6378160,298.247167427"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"7036\"]],TOWGS84[52.17,-71.82,-14."); add_srs_wkt (p, 3, "9,0,0,0,0],AUTHORITY[\"EPSG\",\"6237\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 4, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 5, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"4237\"]],PROJECTION[\"Hotine_Oblique_Mercato"); add_srs_wkt (p, 7, "r\"],PARAMETER[\"latitude_of_center\",47.14439372222222]"); add_srs_wkt (p, 8, ",PARAMETER[\"longitude_of_center\",19.04857177777778],PA"); add_srs_wkt (p, 9, "RAMETER[\"azimuth\",90],PARAMETER[\"rectified_grid_angle"); add_srs_wkt (p, 10, "\",90],PARAMETER[\"scale_factor\",0.99993],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_easting\",650000],PARAMETER[\"false_northing\",2000"); add_srs_wkt (p, 12, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AXIS[\"X\",NORTH],AUTHORITY[\"EPSG\",\"23700"); add_srs_wkt (p, 14, "\"]]"); p = add_epsg_def (filter, first, last, 23830, "epsg", 23830, "DGN95 / Indonesia TM-3 zone 46.2"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=94.5 +k=0.9999 +x_0=200000 +"); add_proj4text (p, 1, "y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / Indonesia TM-3 zone 46.2\",GEOGCS[\"DGN"); add_srs_wkt (p, 1, "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); add_srs_wkt (p, 2, "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",94.5],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, "r\",0.9999],PARAMETER[\"false_easting\",200000],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"23830\"]]"); p = add_epsg_def (filter, first, last, 23831, "epsg", 23831, "DGN95 / Indonesia TM-3 zone 47.1"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=97.5 +k=0.9999 +x_0=200000 +"); add_proj4text (p, 1, "y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / Indonesia TM-3 zone 47.1\",GEOGCS[\"DGN"); add_srs_wkt (p, 1, "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); add_srs_wkt (p, 2, "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",97.5],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, "r\",0.9999],PARAMETER[\"false_easting\",200000],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"23831\"]]"); p = add_epsg_def (filter, first, last, 23832, "epsg", 23832, "DGN95 / Indonesia TM-3 zone 47.2"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=100.5 +k=0.9999 +x_0=200000 "); add_proj4text (p, 1, "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / Indonesia TM-3 zone 47.2\",GEOGCS[\"DGN"); add_srs_wkt (p, 1, "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); add_srs_wkt (p, 2, "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",100.5],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"23832\"]]"); p = add_epsg_def (filter, first, last, 23833, "epsg", 23833, "DGN95 / Indonesia TM-3 zone 48.1"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=103.5 +k=0.9999 +x_0=200000 "); add_proj4text (p, 1, "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / Indonesia TM-3 zone 48.1\",GEOGCS[\"DGN"); add_srs_wkt (p, 1, "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); add_srs_wkt (p, 2, "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",103.5],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"23833\"]]"); p = add_epsg_def (filter, first, last, 23834, "epsg", 23834, "DGN95 / Indonesia TM-3 zone 48.2"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=106.5 +k=0.9999 +x_0=200000 "); add_proj4text (p, 1, "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / Indonesia TM-3 zone 48.2\",GEOGCS[\"DGN"); add_srs_wkt (p, 1, "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); add_srs_wkt (p, 2, "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",106.5],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"23834\"]]"); p = add_epsg_def (filter, first, last, 23835, "epsg", 23835, "DGN95 / Indonesia TM-3 zone 49.1"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=109.5 +k=0.9999 +x_0=200000 "); add_proj4text (p, 1, "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / Indonesia TM-3 zone 49.1\",GEOGCS[\"DGN"); add_srs_wkt (p, 1, "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); add_srs_wkt (p, 2, "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",109.5],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"23835\"]]"); p = add_epsg_def (filter, first, last, 23836, "epsg", 23836, "DGN95 / Indonesia TM-3 zone 49.2"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=112.5 +k=0.9999 +x_0=200000 "); add_proj4text (p, 1, "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / Indonesia TM-3 zone 49.2\",GEOGCS[\"DGN"); add_srs_wkt (p, 1, "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); add_srs_wkt (p, 2, "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",112.5],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"23836\"]]"); p = add_epsg_def (filter, first, last, 23837, "epsg", 23837, "DGN95 / Indonesia TM-3 zone 50.1"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=115.5 +k=0.9999 +x_0=200000 "); add_proj4text (p, 1, "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / Indonesia TM-3 zone 50.1\",GEOGCS[\"DGN"); add_srs_wkt (p, 1, "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); add_srs_wkt (p, 2, "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",115.5],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"23837\"]]"); p = add_epsg_def (filter, first, last, 23838, "epsg", 23838, "DGN95 / Indonesia TM-3 zone 50.2"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=118.5 +k=0.9999 +x_0=200000 "); add_proj4text (p, 1, "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / Indonesia TM-3 zone 50.2\",GEOGCS[\"DGN"); add_srs_wkt (p, 1, "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); add_srs_wkt (p, 2, "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",118.5],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"23838\"]]"); p = add_epsg_def (filter, first, last, 23839, "epsg", 23839, "DGN95 / Indonesia TM-3 zone 51.1"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=121.5 +k=0.9999 +x_0=200000 "); add_proj4text (p, 1, "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / Indonesia TM-3 zone 51.1\",GEOGCS[\"DGN"); add_srs_wkt (p, 1, "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); add_srs_wkt (p, 2, "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",121.5],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"23839\"]]"); p = add_epsg_def (filter, first, last, 23840, "epsg", 23840, "DGN95 / Indonesia TM-3 zone 51.2"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=124.5 +k=0.9999 +x_0=200000 "); add_proj4text (p, 1, "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / Indonesia TM-3 zone 51.2\",GEOGCS[\"DGN"); add_srs_wkt (p, 1, "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); add_srs_wkt (p, 2, "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",124.5],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"23840\"]]"); p = add_epsg_def (filter, first, last, 23841, "epsg", 23841, "DGN95 / Indonesia TM-3 zone 52.1"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=127.5 +k=0.9999 +x_0=200000 "); add_proj4text (p, 1, "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / Indonesia TM-3 zone 52.1\",GEOGCS[\"DGN"); add_srs_wkt (p, 1, "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); add_srs_wkt (p, 2, "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",127.5],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"23841\"]]"); p = add_epsg_def (filter, first, last, 23842, "epsg", 23842, "DGN95 / Indonesia TM-3 zone 52.2"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=130.5 +k=0.9999 +x_0=200000 "); add_proj4text (p, 1, "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / Indonesia TM-3 zone 52.2\",GEOGCS[\"DGN"); add_srs_wkt (p, 1, "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); add_srs_wkt (p, 2, "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",130.5],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"23842\"]]"); p = add_epsg_def (filter, first, last, 23843, "epsg", 23843, "DGN95 / Indonesia TM-3 zone 53.1"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=133.5 +k=0.9999 +x_0=200000 "); add_proj4text (p, 1, "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / Indonesia TM-3 zone 53.1\",GEOGCS[\"DGN"); add_srs_wkt (p, 1, "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); add_srs_wkt (p, 2, "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",133.5],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"23843\"]]"); p = add_epsg_def (filter, first, last, 23844, "epsg", 23844, "DGN95 / Indonesia TM-3 zone 53.2"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=136.5 +k=0.9999 +x_0=200000 "); add_proj4text (p, 1, "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / Indonesia TM-3 zone 53.2\",GEOGCS[\"DGN"); add_srs_wkt (p, 1, "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); add_srs_wkt (p, 2, "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",136.5],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"23844\"]]"); p = add_epsg_def (filter, first, last, 23845, "epsg", 23845, "DGN95 / Indonesia TM-3 zone 54.1"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=139.5 +k=0.9999 +x_0=200000 "); add_proj4text (p, 1, "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / Indonesia TM-3 zone 54.1\",GEOGCS[\"DGN"); add_srs_wkt (p, 1, "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); add_srs_wkt (p, 2, "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",139.5],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"23845\"]]"); p = add_epsg_def (filter, first, last, 23846, "epsg", 23846, "ID74 / UTM zone 46N"); add_proj4text (p, 0, "+proj=utm +zone=46 +a=6378160 +b=6356774.50408554 +towgs"); add_proj4text (p, 1, "84=-24,-15,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ID74 / UTM zone 46N\",GEOGCS[\"ID74\",DATUM[\"I"); add_srs_wkt (p, 1, "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); add_srs_wkt (p, 2, "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); add_srs_wkt (p, 3, "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",93],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"23846\"]]"); p = add_epsg_def (filter, first, last, 23847, "epsg", 23847, "ID74 / UTM zone 47N"); add_proj4text (p, 0, "+proj=utm +zone=47 +a=6378160 +b=6356774.50408554 +towgs"); add_proj4text (p, 1, "84=-24,-15,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ID74 / UTM zone 47N\",GEOGCS[\"ID74\",DATUM[\"I"); add_srs_wkt (p, 1, "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); add_srs_wkt (p, 2, "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); add_srs_wkt (p, 3, "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",99],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"23847\"]]"); p = add_epsg_def (filter, first, last, 23848, "epsg", 23848, "ID74 / UTM zone 48N"); add_proj4text (p, 0, "+proj=utm +zone=48 +a=6378160 +b=6356774.50408554 +towgs"); add_proj4text (p, 1, "84=-24,-15,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ID74 / UTM zone 48N\",GEOGCS[\"ID74\",DATUM[\"I"); add_srs_wkt (p, 1, "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); add_srs_wkt (p, 2, "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); add_srs_wkt (p, 3, "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",105],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); add_srs_wkt (p, 12, "ORTH],AUTHORITY[\"EPSG\",\"23848\"]]"); p = add_epsg_def (filter, first, last, 23849, "epsg", 23849, "ID74 / UTM zone 49N"); add_proj4text (p, 0, "+proj=utm +zone=49 +a=6378160 +b=6356774.50408554 +towgs"); add_proj4text (p, 1, "84=-24,-15,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ID74 / UTM zone 49N\",GEOGCS[\"ID74\",DATUM[\"I"); add_srs_wkt (p, 1, "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); add_srs_wkt (p, 2, "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); add_srs_wkt (p, 3, "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",111],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); add_srs_wkt (p, 12, "ORTH],AUTHORITY[\"EPSG\",\"23849\"]]"); p = add_epsg_def (filter, first, last, 23850, "epsg", 23850, "ID74 / UTM zone 50N"); add_proj4text (p, 0, "+proj=utm +zone=50 +a=6378160 +b=6356774.50408554 +towgs"); add_proj4text (p, 1, "84=-24,-15,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ID74 / UTM zone 50N\",GEOGCS[\"ID74\",DATUM[\"I"); add_srs_wkt (p, 1, "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); add_srs_wkt (p, 2, "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); add_srs_wkt (p, 3, "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",117],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); add_srs_wkt (p, 12, "ORTH],AUTHORITY[\"EPSG\",\"23850\"]]"); p = add_epsg_def (filter, first, last, 23851, "epsg", 23851, "ID74 / UTM zone 51N"); add_proj4text (p, 0, "+proj=utm +zone=51 +a=6378160 +b=6356774.50408554 +towgs"); add_proj4text (p, 1, "84=-24,-15,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ID74 / UTM zone 51N\",GEOGCS[\"ID74\",DATUM[\"I"); add_srs_wkt (p, 1, "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); add_srs_wkt (p, 2, "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); add_srs_wkt (p, 3, "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",123],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); add_srs_wkt (p, 12, "ORTH],AUTHORITY[\"EPSG\",\"23851\"]]"); p = add_epsg_def (filter, first, last, 23852, "epsg", 23852, "ID74 / UTM zone 52N"); add_proj4text (p, 0, "+proj=utm +zone=52 +a=6378160 +b=6356774.50408554 +towgs"); add_proj4text (p, 1, "84=-24,-15,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ID74 / UTM zone 52N\",GEOGCS[\"ID74\",DATUM[\"I"); add_srs_wkt (p, 1, "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); add_srs_wkt (p, 2, "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); add_srs_wkt (p, 3, "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",129],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); add_srs_wkt (p, 12, "ORTH],AUTHORITY[\"EPSG\",\"23852\"]]"); p = add_epsg_def (filter, first, last, 23853, "epsg", 23853, "ID74 / UTM zone 53N (deprecated)"); add_proj4text (p, 0, "+proj=utm +zone=53 +a=6378160 +b=6356774.50408554 +towgs"); add_proj4text (p, 1, "84=-24,-15,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ID74 / UTM zone 53N (deprecated)\",GEOGCS[\"ID7"); add_srs_wkt (p, 1, "4\",DATUM[\"Indonesian_Datum_1974\",SPHEROID[\"Indonesia"); add_srs_wkt (p, 2, "n National Spheroid\",6378160,298.247,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7021\"]],TOWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6238\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",135],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"23853\"]]"); p = add_epsg_def (filter, first, last, 23866, "epsg", 23866, "DGN95 / UTM zone 46N"); add_proj4text (p, 0, "+proj=utm +zone=46 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / UTM zone 46N\",GEOGCS[\"DGN95\",DATUM[\""); add_srs_wkt (p, 1, "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",93],PARAMETER[\"scale_factor\",0.9996],PARA"); add_srs_wkt (p, 9, "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); add_srs_wkt (p, 10, "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 11, "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"23866\"]]"); p = add_epsg_def (filter, first, last, 23867, "epsg", 23867, "DGN95 / UTM zone 47N"); add_proj4text (p, 0, "+proj=utm +zone=47 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / UTM zone 47N\",GEOGCS[\"DGN95\",DATUM[\""); add_srs_wkt (p, 1, "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",99],PARAMETER[\"scale_factor\",0.9996],PARA"); add_srs_wkt (p, 9, "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); add_srs_wkt (p, 10, "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 11, "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"23867\"]]"); p = add_epsg_def (filter, first, last, 23868, "epsg", 23868, "DGN95 / UTM zone 48N"); add_proj4text (p, 0, "+proj=utm +zone=48 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / UTM zone 48N\",GEOGCS[\"DGN95\",DATUM[\""); add_srs_wkt (p, 1, "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",105],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"23868\"]]"); p = add_epsg_def (filter, first, last, 23869, "epsg", 23869, "DGN95 / UTM zone 49N"); add_proj4text (p, 0, "+proj=utm +zone=49 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / UTM zone 49N\",GEOGCS[\"DGN95\",DATUM[\""); add_srs_wkt (p, 1, "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",111],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"23869\"]]"); p = add_epsg_def (filter, first, last, 23870, "epsg", 23870, "DGN95 / UTM zone 50N"); add_proj4text (p, 0, "+proj=utm +zone=50 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / UTM zone 50N\",GEOGCS[\"DGN95\",DATUM[\""); add_srs_wkt (p, 1, "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",117],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"23870\"]]"); p = add_epsg_def (filter, first, last, 23871, "epsg", 23871, "DGN95 / UTM zone 51N"); add_proj4text (p, 0, "+proj=utm +zone=51 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / UTM zone 51N\",GEOGCS[\"DGN95\",DATUM[\""); add_srs_wkt (p, 1, "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",123],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"23871\"]]"); p = add_epsg_def (filter, first, last, 23872, "epsg", 23872, "DGN95 / UTM zone 52N"); add_proj4text (p, 0, "+proj=utm +zone=52 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / UTM zone 52N\",GEOGCS[\"DGN95\",DATUM[\""); add_srs_wkt (p, 1, "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",129],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"23872\"]]"); p = add_epsg_def (filter, first, last, 23877, "epsg", 23877, "DGN95 / UTM zone 47S"); add_proj4text (p, 0, "+proj=utm +zone=47 +south +ellps=WGS84 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / UTM zone 47S\",GEOGCS[\"DGN95\",DATUM[\""); add_srs_wkt (p, 1, "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",99],PARAMETER[\"scale_factor\",0.9996],PARA"); add_srs_wkt (p, 9, "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); add_srs_wkt (p, 10, "ng\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 11, "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"23877\"]]"); p = add_epsg_def (filter, first, last, 23878, "epsg", 23878, "DGN95 / UTM zone 48S"); add_proj4text (p, 0, "+proj=utm +zone=48 +south +ellps=WGS84 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / UTM zone 48S\",GEOGCS[\"DGN95\",DATUM[\""); add_srs_wkt (p, 1, "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",105],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 11, "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"23878\"]]"); p = add_epsg_def (filter, first, last, 23879, "epsg", 23879, "DGN95 / UTM zone 49S"); add_proj4text (p, 0, "+proj=utm +zone=49 +south +ellps=WGS84 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / UTM zone 49S\",GEOGCS[\"DGN95\",DATUM[\""); add_srs_wkt (p, 1, "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",111],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 11, "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"23879\"]]"); p = add_epsg_def (filter, first, last, 23880, "epsg", 23880, "DGN95 / UTM zone 50S"); add_proj4text (p, 0, "+proj=utm +zone=50 +south +ellps=WGS84 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / UTM zone 50S\",GEOGCS[\"DGN95\",DATUM[\""); add_srs_wkt (p, 1, "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",117],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 11, "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"23880\"]]"); p = add_epsg_def (filter, first, last, 23881, "epsg", 23881, "DGN95 / UTM zone 51S"); add_proj4text (p, 0, "+proj=utm +zone=51 +south +ellps=WGS84 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / UTM zone 51S\",GEOGCS[\"DGN95\",DATUM[\""); add_srs_wkt (p, 1, "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",123],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 11, "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"23881\"]]"); p = add_epsg_def (filter, first, last, 23882, "epsg", 23882, "DGN95 / UTM zone 52S"); add_proj4text (p, 0, "+proj=utm +zone=52 +south +ellps=WGS84 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / UTM zone 52S\",GEOGCS[\"DGN95\",DATUM[\""); add_srs_wkt (p, 1, "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",129],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 11, "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"23882\"]]"); p = add_epsg_def (filter, first, last, 23883, "epsg", 23883, "DGN95 / UTM zone 53S"); add_proj4text (p, 0, "+proj=utm +zone=53 +south +ellps=WGS84 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / UTM zone 53S\",GEOGCS[\"DGN95\",DATUM[\""); add_srs_wkt (p, 1, "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",135],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 11, "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"23883\"]]"); p = add_epsg_def (filter, first, last, 23884, "epsg", 23884, "DGN95 / UTM zone 54S"); add_proj4text (p, 0, "+proj=utm +zone=54 +south +ellps=WGS84 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / UTM zone 54S\",GEOGCS[\"DGN95\",DATUM[\""); add_srs_wkt (p, 1, "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",141],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 11, "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"23884\"]]"); p = add_epsg_def (filter, first, last, 23886, "epsg", 23886, "ID74 / UTM zone 46S (deprecated)"); add_proj4text (p, 0, "+proj=utm +zone=46 +south +a=6378160 +b=6356774.50408554"); add_proj4text (p, 1, " +towgs84=-24,-15,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ID74 / UTM zone 46S (deprecated)\",GEOGCS[\"ID7"); add_srs_wkt (p, 1, "4\",DATUM[\"Indonesian_Datum_1974\",SPHEROID[\"Indonesia"); add_srs_wkt (p, 2, "n National Spheroid\",6378160,298.247,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7021\"]],TOWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6238\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",93],PARAMETER[\"s"); add_srs_wkt (p, 9, "cale_factor\",0.9996],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 10, "],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\","); add_srs_wkt (p, 11, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 12, "XIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"23886\"]]"); p = add_epsg_def (filter, first, last, 23887, "epsg", 23887, "ID74 / UTM zone 47S"); add_proj4text (p, 0, "+proj=utm +zone=47 +south +a=6378160 +b=6356774.50408554"); add_proj4text (p, 1, " +towgs84=-24,-15,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ID74 / UTM zone 47S\",GEOGCS[\"ID74\",DATUM[\"I"); add_srs_wkt (p, 1, "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); add_srs_wkt (p, 2, "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); add_srs_wkt (p, 3, "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",99],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"23887\"]]"); p = add_epsg_def (filter, first, last, 23888, "epsg", 23888, "ID74 / UTM zone 48S"); add_proj4text (p, 0, "+proj=utm +zone=48 +south +a=6378160 +b=6356774.50408554"); add_proj4text (p, 1, " +towgs84=-24,-15,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ID74 / UTM zone 48S\",GEOGCS[\"ID74\",DATUM[\"I"); add_srs_wkt (p, 1, "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); add_srs_wkt (p, 2, "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); add_srs_wkt (p, 3, "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",105],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 12, "ing\",NORTH],AUTHORITY[\"EPSG\",\"23888\"]]"); p = add_epsg_def (filter, first, last, 23889, "epsg", 23889, "ID74 / UTM zone 49S"); add_proj4text (p, 0, "+proj=utm +zone=49 +south +a=6378160 +b=6356774.50408554"); add_proj4text (p, 1, " +towgs84=-24,-15,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ID74 / UTM zone 49S\",GEOGCS[\"ID74\",DATUM[\"I"); add_srs_wkt (p, 1, "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); add_srs_wkt (p, 2, "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); add_srs_wkt (p, 3, "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",111],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 12, "ing\",NORTH],AUTHORITY[\"EPSG\",\"23889\"]]"); p = add_epsg_def (filter, first, last, 23890, "epsg", 23890, "ID74 / UTM zone 50S"); add_proj4text (p, 0, "+proj=utm +zone=50 +south +a=6378160 +b=6356774.50408554"); add_proj4text (p, 1, " +towgs84=-24,-15,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ID74 / UTM zone 50S\",GEOGCS[\"ID74\",DATUM[\"I"); add_srs_wkt (p, 1, "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); add_srs_wkt (p, 2, "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); add_srs_wkt (p, 3, "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",117],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 12, "ing\",NORTH],AUTHORITY[\"EPSG\",\"23890\"]]"); p = add_epsg_def (filter, first, last, 23891, "epsg", 23891, "ID74 / UTM zone 51S"); add_proj4text (p, 0, "+proj=utm +zone=51 +south +a=6378160 +b=6356774.50408554"); add_proj4text (p, 1, " +towgs84=-24,-15,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ID74 / UTM zone 51S\",GEOGCS[\"ID74\",DATUM[\"I"); add_srs_wkt (p, 1, "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); add_srs_wkt (p, 2, "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); add_srs_wkt (p, 3, "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",123],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 12, "ing\",NORTH],AUTHORITY[\"EPSG\",\"23891\"]]"); p = add_epsg_def (filter, first, last, 23892, "epsg", 23892, "ID74 / UTM zone 52S"); add_proj4text (p, 0, "+proj=utm +zone=52 +south +a=6378160 +b=6356774.50408554"); add_proj4text (p, 1, " +towgs84=-24,-15,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ID74 / UTM zone 52S\",GEOGCS[\"ID74\",DATUM[\"I"); add_srs_wkt (p, 1, "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); add_srs_wkt (p, 2, "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); add_srs_wkt (p, 3, "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",129],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 12, "ing\",NORTH],AUTHORITY[\"EPSG\",\"23892\"]]"); p = add_epsg_def (filter, first, last, 23893, "epsg", 23893, "ID74 / UTM zone 53S"); add_proj4text (p, 0, "+proj=utm +zone=53 +south +a=6378160 +b=6356774.50408554"); add_proj4text (p, 1, " +towgs84=-24,-15,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ID74 / UTM zone 53S\",GEOGCS[\"ID74\",DATUM[\"I"); add_srs_wkt (p, 1, "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); add_srs_wkt (p, 2, "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); add_srs_wkt (p, 3, "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",135],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 12, "ing\",NORTH],AUTHORITY[\"EPSG\",\"23893\"]]"); p = add_epsg_def (filter, first, last, 23894, "epsg", 23894, "ID74 / UTM zone 54S"); add_proj4text (p, 0, "+proj=utm +zone=54 +south +a=6378160 +b=6356774.50408554"); add_proj4text (p, 1, " +towgs84=-24,-15,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ID74 / UTM zone 54S\",GEOGCS[\"ID74\",DATUM[\"I"); add_srs_wkt (p, 1, "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); add_srs_wkt (p, 2, "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); add_srs_wkt (p, 3, "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",141],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 12, "ing\",NORTH],AUTHORITY[\"EPSG\",\"23894\"]]"); p = add_epsg_def (filter, first, last, 23946, "epsg", 23946, "Indian 1954 / UTM zone 46N"); add_proj4text (p, 0, "+proj=utm +zone=46 +a=6377276.345 +b=6356075.413140239 +"); add_proj4text (p, 1, "towgs84=217,823,299,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Indian 1954 / UTM zone 46N\",GEOGCS[\"Indian 19"); add_srs_wkt (p, 1, "54\",DATUM[\"Indian_1954\",SPHEROID[\"Everest 1830 (1937"); add_srs_wkt (p, 2, " Adjustment)\",6377276.345,300.8017,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7015\"]],TOWGS84[217,823,299,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6239\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4239\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",93],PARAMETER[\"s"); add_srs_wkt (p, 9, "cale_factor\",0.9996],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 10, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); add_srs_wkt (p, 12, "orthing\",NORTH],AUTHORITY[\"EPSG\",\"23946\"]]"); p = add_epsg_def (filter, first, last, 23947, "epsg", 23947, "Indian 1954 / UTM zone 47N"); add_proj4text (p, 0, "+proj=utm +zone=47 +a=6377276.345 +b=6356075.413140239 +"); add_proj4text (p, 1, "towgs84=217,823,299,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Indian 1954 / UTM zone 47N\",GEOGCS[\"Indian 19"); add_srs_wkt (p, 1, "54\",DATUM[\"Indian_1954\",SPHEROID[\"Everest 1830 (1937"); add_srs_wkt (p, 2, " Adjustment)\",6377276.345,300.8017,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7015\"]],TOWGS84[217,823,299,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6239\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4239\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",99],PARAMETER[\"s"); add_srs_wkt (p, 9, "cale_factor\",0.9996],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 10, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); add_srs_wkt (p, 12, "orthing\",NORTH],AUTHORITY[\"EPSG\",\"23947\"]]"); p = add_epsg_def (filter, first, last, 23948, "epsg", 23948, "Indian 1954 / UTM zone 48N"); add_proj4text (p, 0, "+proj=utm +zone=48 +a=6377276.345 +b=6356075.413140239 +"); add_proj4text (p, 1, "towgs84=217,823,299,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Indian 1954 / UTM zone 48N\",GEOGCS[\"Indian 19"); add_srs_wkt (p, 1, "54\",DATUM[\"Indian_1954\",SPHEROID[\"Everest 1830 (1937"); add_srs_wkt (p, 2, " Adjustment)\",6377276.345,300.8017,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7015\"]],TOWGS84[217,823,299,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6239\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4239\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",105],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"23948\"]]"); p = add_epsg_def (filter, first, last, 24047, "epsg", 24047, "Indian 1975 / UTM zone 47N"); add_proj4text (p, 0, "+proj=utm +zone=47 +a=6377276.345 +b=6356075.413140239 +"); add_proj4text (p, 1, "towgs84=210,814,289,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Indian 1975 / UTM zone 47N\",GEOGCS[\"Indian 19"); add_srs_wkt (p, 1, "75\",DATUM[\"Indian_1975\",SPHEROID[\"Everest 1830 (1937"); add_srs_wkt (p, 2, " Adjustment)\",6377276.345,300.8017,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7015\"]],TOWGS84[210,814,289,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6240\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4240\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",99],PARAMETER[\"s"); add_srs_wkt (p, 9, "cale_factor\",0.9996],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 10, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); add_srs_wkt (p, 12, "orthing\",NORTH],AUTHORITY[\"EPSG\",\"24047\"]]"); p = add_epsg_def (filter, first, last, 24048, "epsg", 24048, "Indian 1975 / UTM zone 48N"); add_proj4text (p, 0, "+proj=utm +zone=48 +a=6377276.345 +b=6356075.413140239 +"); add_proj4text (p, 1, "towgs84=210,814,289,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Indian 1975 / UTM zone 48N\",GEOGCS[\"Indian 19"); add_srs_wkt (p, 1, "75\",DATUM[\"Indian_1975\",SPHEROID[\"Everest 1830 (1937"); add_srs_wkt (p, 2, " Adjustment)\",6377276.345,300.8017,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7015\"]],TOWGS84[210,814,289,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6240\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4240\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",105],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"24048\"]]"); p = add_epsg_def (filter, first, last, 24100, "epsg", 24100, "Jamaica 1875 / Jamaica (Old Grid)"); add_proj4text (p, 0, "+proj=lcc +lat_1=18 +lat_0=18 +lon_0=-77 +k_0=1 +x_0=167"); add_proj4text (p, 1, "638.49597 +y_0=121918.90616 +a=6378249.144808011 +b=6356"); add_proj4text (p, 2, "514.966204134 +to_meter=0.3047972654 +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Jamaica 1875 / Jamaica (Old Grid)\",GEOGCS[\"Ja"); add_srs_wkt (p, 1, "maica 1875\",DATUM[\"Jamaica_1875\",SPHEROID[\"Clarke 18"); add_srs_wkt (p, 2, "80\",6378249.144808011,293.4663076556303,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7034\"]],AUTHORITY[\"EPSG\",\"6241\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4241\"]],PROJECTION[\"Lambert_Conformal_C"); add_srs_wkt (p, 7, "onic_1SP\"],PARAMETER[\"latitude_of_origin\",18],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-77],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "1],PARAMETER[\"false_easting\",550000],PARAMETER[\"false"); add_srs_wkt (p, 10, "_northing\",400000],UNIT[\"Clarke's foot\",0.3047972654,"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"9005\"]],AXIS[\"Easting\",EAST],AXI"); add_srs_wkt (p, 12, "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24100\"]]"); p = add_epsg_def (filter, first, last, 24200, "epsg", 24200, "JAD69 / Jamaica National Grid"); add_proj4text (p, 0, "+proj=lcc +lat_1=18 +lat_0=18 +lon_0=-77 +k_0=1 +x_0=250"); add_proj4text (p, 1, "000 +y_0=150000 +ellps=clrk66 +towgs84=70,207,389.5,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JAD69 / Jamaica National Grid\",GEOGCS[\"JAD69\""); add_srs_wkt (p, 1, ",DATUM[\"Jamaica_1969\",SPHEROID[\"Clarke 1866\",6378206"); add_srs_wkt (p, 2, ".4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS"); add_srs_wkt (p, 3, "84[70,207,389.5,0,0,0,0],AUTHORITY[\"EPSG\",\"6242\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AUTHORITY[\"EPSG\",\"4242\"]],PROJECTION[\"Lambert_"); add_srs_wkt (p, 7, "Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, "18],PARAMETER[\"central_meridian\",-77],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",1],PARAMETER[\"false_easting\",250000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",150000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 12, "hing\",NORTH],AUTHORITY[\"EPSG\",\"24200\"]]"); p = add_epsg_def (filter, first, last, 24305, "epsg", 24305, "Kalianpur 1937 / UTM zone 45N"); add_proj4text (p, 0, "+proj=utm +zone=45 +a=6377276.345 +b=6356075.413140239 +"); add_proj4text (p, 1, "towgs84=282,726,254,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kalianpur 1937 / UTM zone 45N\",GEOGCS[\"Kalian"); add_srs_wkt (p, 1, "pur 1937\",DATUM[\"Kalianpur_1937\",SPHEROID[\"Everest 1"); add_srs_wkt (p, 2, "830 (1937 Adjustment)\",6377276.345,300.8017,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7015\"]],TOWGS84[282,726,254,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6144\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4144\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",87],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",0.9996],PARAMETER[\"false_easting"); add_srs_wkt (p, 10, "\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 12, "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24305\"]]"); p = add_epsg_def (filter, first, last, 24306, "epsg", 24306, "Kalianpur 1937 / UTM zone 46N"); add_proj4text (p, 0, "+proj=utm +zone=46 +a=6377276.345 +b=6356075.413140239 +"); add_proj4text (p, 1, "towgs84=282,726,254,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kalianpur 1937 / UTM zone 46N\",GEOGCS[\"Kalian"); add_srs_wkt (p, 1, "pur 1937\",DATUM[\"Kalianpur_1937\",SPHEROID[\"Everest 1"); add_srs_wkt (p, 2, "830 (1937 Adjustment)\",6377276.345,300.8017,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7015\"]],TOWGS84[282,726,254,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6144\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4144\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",93],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",0.9996],PARAMETER[\"false_easting"); add_srs_wkt (p, 10, "\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 12, "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24306\"]]"); p = add_epsg_def (filter, first, last, 24311, "epsg", 24311, "Kalianpur 1962 / UTM zone 41N"); add_proj4text (p, 0, "+proj=utm +zone=41 +a=6377301.243 +b=6356100.230165385 +"); add_proj4text (p, 1, "towgs84=283,682,231,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kalianpur 1962 / UTM zone 41N\",GEOGCS[\"Kalian"); add_srs_wkt (p, 1, "pur 1962\",DATUM[\"Kalianpur_1962\",SPHEROID[\"Everest 1"); add_srs_wkt (p, 2, "830 (1962 Definition)\",6377301.243,300.8017255,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7044\"]],TOWGS84[283,682,231,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6145\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4145"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",63],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24311"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def (filter, first, last, 24312, "epsg", 24312, "Kalianpur 1962 / UTM zone 42N"); add_proj4text (p, 0, "+proj=utm +zone=42 +a=6377301.243 +b=6356100.230165385 +"); add_proj4text (p, 1, "towgs84=283,682,231,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kalianpur 1962 / UTM zone 42N\",GEOGCS[\"Kalian"); add_srs_wkt (p, 1, "pur 1962\",DATUM[\"Kalianpur_1962\",SPHEROID[\"Everest 1"); add_srs_wkt (p, 2, "830 (1962 Definition)\",6377301.243,300.8017255,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7044\"]],TOWGS84[283,682,231,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6145\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4145"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",69],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24312"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def (filter, first, last, 24313, "epsg", 24313, "Kalianpur 1962 / UTM zone 43N"); add_proj4text (p, 0, "+proj=utm +zone=43 +a=6377301.243 +b=6356100.230165385 +"); add_proj4text (p, 1, "towgs84=283,682,231,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kalianpur 1962 / UTM zone 43N\",GEOGCS[\"Kalian"); add_srs_wkt (p, 1, "pur 1962\",DATUM[\"Kalianpur_1962\",SPHEROID[\"Everest 1"); add_srs_wkt (p, 2, "830 (1962 Definition)\",6377301.243,300.8017255,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7044\"]],TOWGS84[283,682,231,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6145\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4145"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",75],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24313"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def (filter, first, last, 24342, "epsg", 24342, "Kalianpur 1975 / UTM zone 42N"); add_proj4text (p, 0, "+proj=utm +zone=42 +a=6377299.151 +b=6356098.145120132 +"); add_proj4text (p, 1, "towgs84=295,736,257,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kalianpur 1975 / UTM zone 42N\",GEOGCS[\"Kalian"); add_srs_wkt (p, 1, "pur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest 1"); add_srs_wkt (p, 2, "830 (1975 Definition)\",6377299.151,300.8017255,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4146"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",69],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24342"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def (filter, first, last, 24343, "epsg", 24343, "Kalianpur 1975 / UTM zone 43N"); add_proj4text (p, 0, "+proj=utm +zone=43 +a=6377299.151 +b=6356098.145120132 +"); add_proj4text (p, 1, "towgs84=295,736,257,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kalianpur 1975 / UTM zone 43N\",GEOGCS[\"Kalian"); add_srs_wkt (p, 1, "pur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest 1"); add_srs_wkt (p, 2, "830 (1975 Definition)\",6377299.151,300.8017255,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4146"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",75],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24343"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def (filter, first, last, 24344, "epsg", 24344, "Kalianpur 1975 / UTM zone 44N"); add_proj4text (p, 0, "+proj=utm +zone=44 +a=6377299.151 +b=6356098.145120132 +"); add_proj4text (p, 1, "towgs84=295,736,257,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kalianpur 1975 / UTM zone 44N\",GEOGCS[\"Kalian"); add_srs_wkt (p, 1, "pur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest 1"); add_srs_wkt (p, 2, "830 (1975 Definition)\",6377299.151,300.8017255,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4146"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",81],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24344"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def (filter, first, last, 24345, "epsg", 24345, "Kalianpur 1975 / UTM zone 45N"); add_proj4text (p, 0, "+proj=utm +zone=45 +a=6377299.151 +b=6356098.145120132 +"); add_proj4text (p, 1, "towgs84=295,736,257,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kalianpur 1975 / UTM zone 45N\",GEOGCS[\"Kalian"); add_srs_wkt (p, 1, "pur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest 1"); add_srs_wkt (p, 2, "830 (1975 Definition)\",6377299.151,300.8017255,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4146"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",87],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24345"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def (filter, first, last, 24346, "epsg", 24346, "Kalianpur 1975 / UTM zone 46N"); add_proj4text (p, 0, "+proj=utm +zone=46 +a=6377299.151 +b=6356098.145120132 +"); add_proj4text (p, 1, "towgs84=295,736,257,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kalianpur 1975 / UTM zone 46N\",GEOGCS[\"Kalian"); add_srs_wkt (p, 1, "pur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest 1"); add_srs_wkt (p, 2, "830 (1975 Definition)\",6377299.151,300.8017255,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4146"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",93],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24346"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def (filter, first, last, 24347, "epsg", 24347, "Kalianpur 1975 / UTM zone 47N"); add_proj4text (p, 0, "+proj=utm +zone=47 +a=6377299.151 +b=6356098.145120132 +"); add_proj4text (p, 1, "towgs84=295,736,257,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kalianpur 1975 / UTM zone 47N\",GEOGCS[\"Kalian"); add_srs_wkt (p, 1, "pur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest 1"); add_srs_wkt (p, 2, "830 (1975 Definition)\",6377299.151,300.8017255,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4146"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",99],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24347"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def (filter, first, last, 24370, "epsg", 24370, "Kalianpur 1880 / India zone 0"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.5 +lat_0=39.5 +lon_0=68 +k_0=0.99846"); add_proj4text (p, 1, "154 +x_0=2153865.73916853 +y_0=2368292.194628102 +a=6377"); add_proj4text (p, 2, "299.36559538 +b=6356098.359005156 +to_meter=0.9143985307"); add_proj4text (p, 3, "444408 +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kalianpur 1880 / India zone 0\",GEOGCS[\"Kalian"); add_srs_wkt (p, 1, "pur 1880\",DATUM[\"Kalianpur_1880\",SPHEROID[\"Everest ("); add_srs_wkt (p, 2, "1830 Definition)\",6377299.36559538,300.8017255433612,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7042\"]],AUTHORITY[\"EPSG\",\"6243\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4243\"]],PROJECTION[\"Lambe"); add_srs_wkt (p, 7, "rt_Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_origin"); add_srs_wkt (p, 8, "\",39.5],PARAMETER[\"central_meridian\",68],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.99846154],PARAMETER[\"false_easting\",2"); add_srs_wkt (p, 10, "355500],PARAMETER[\"false_northing\",2590000],UNIT[\"Ind"); add_srs_wkt (p, 11, "ian yard\",0.9143985307444408,AUTHORITY[\"EPSG\",\"9084\""); add_srs_wkt (p, 12, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"24370\"]]"); p = add_epsg_def (filter, first, last, 24371, "epsg", 24371, "Kalianpur 1880 / India zone I"); add_proj4text (p, 0, "+proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=68 +k_0=0.99878"); add_proj4text (p, 1, "641 +x_0=2743195.592233322 +y_0=914398.5307444407 +a=637"); add_proj4text (p, 2, "7299.36559538 +b=6356098.359005156 +to_meter=0.914398530"); add_proj4text (p, 3, "7444408 +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kalianpur 1880 / India zone I\",GEOGCS[\"Kalian"); add_srs_wkt (p, 1, "pur 1880\",DATUM[\"Kalianpur_1880\",SPHEROID[\"Everest ("); add_srs_wkt (p, 2, "1830 Definition)\",6377299.36559538,300.8017255433612,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7042\"]],AUTHORITY[\"EPSG\",\"6243\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4243\"]],PROJECTION[\"Lambe"); add_srs_wkt (p, 7, "rt_Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_origin"); add_srs_wkt (p, 8, "\",32.5],PARAMETER[\"central_meridian\",68],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.99878641],PARAMETER[\"false_easting\",3"); add_srs_wkt (p, 10, "000000],PARAMETER[\"false_northing\",1000000],UNIT[\"Ind"); add_srs_wkt (p, 11, "ian yard\",0.9143985307444408,AUTHORITY[\"EPSG\",\"9084\""); add_srs_wkt (p, 12, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"24371\"]]"); p = add_epsg_def (filter, first, last, 24372, "epsg", 24372, "Kalianpur 1880 / India zone IIa"); add_proj4text (p, 0, "+proj=lcc +lat_1=26 +lat_0=26 +lon_0=74 +k_0=0.99878641 "); add_proj4text (p, 1, "+x_0=2743195.592233322 +y_0=914398.5307444407 +a=6377299"); add_proj4text (p, 2, ".36559538 +b=6356098.359005156 +to_meter=0.9143985307444"); add_proj4text (p, 3, "408 +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kalianpur 1880 / India zone IIa\",GEOGCS[\"Kali"); add_srs_wkt (p, 1, "anpur 1880\",DATUM[\"Kalianpur_1880\",SPHEROID[\"Everest"); add_srs_wkt (p, 2, " (1830 Definition)\",6377299.36559538,300.8017255433612,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7042\"]],AUTHORITY[\"EPSG\",\"6243\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4243\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 7, "ert_Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 8, "n\",26],PARAMETER[\"central_meridian\",74],PARAMETER[\"s"); add_srs_wkt (p, 9, "cale_factor\",0.99878641],PARAMETER[\"false_easting\",30"); add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",1000000],UNIT[\"Indi"); add_srs_wkt (p, 11, "an yard\",0.9143985307444408,AUTHORITY[\"EPSG\",\"9084\""); add_srs_wkt (p, 12, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"24372\"]]"); p = add_epsg_def (filter, first, last, 24373, "epsg", 24373, "Kalianpur 1880 / India zone III"); add_proj4text (p, 0, "+proj=lcc +lat_1=19 +lat_0=19 +lon_0=80 +k_0=0.99878641 "); add_proj4text (p, 1, "+x_0=2743195.592233322 +y_0=914398.5307444407 +a=6377299"); add_proj4text (p, 2, ".36559538 +b=6356098.359005156 +to_meter=0.9143985307444"); add_proj4text (p, 3, "408 +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kalianpur 1880 / India zone III\",GEOGCS[\"Kali"); add_srs_wkt (p, 1, "anpur 1880\",DATUM[\"Kalianpur_1880\",SPHEROID[\"Everest"); add_srs_wkt (p, 2, " (1830 Definition)\",6377299.36559538,300.8017255433612,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7042\"]],AUTHORITY[\"EPSG\",\"6243\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4243\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 7, "ert_Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 8, "n\",19],PARAMETER[\"central_meridian\",80],PARAMETER[\"s"); add_srs_wkt (p, 9, "cale_factor\",0.99878641],PARAMETER[\"false_easting\",30"); add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",1000000],UNIT[\"Indi"); add_srs_wkt (p, 11, "an yard\",0.9143985307444408,AUTHORITY[\"EPSG\",\"9084\""); add_srs_wkt (p, 12, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"24373\"]]"); p = add_epsg_def (filter, first, last, 24374, "epsg", 24374, "Kalianpur 1880 / India zone IV"); add_proj4text (p, 0, "+proj=lcc +lat_1=12 +lat_0=12 +lon_0=80 +k_0=0.99878641 "); add_proj4text (p, 1, "+x_0=2743195.592233322 +y_0=914398.5307444407 +a=6377299"); add_proj4text (p, 2, ".36559538 +b=6356098.359005156 +to_meter=0.9143985307444"); add_proj4text (p, 3, "408 +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kalianpur 1880 / India zone IV\",GEOGCS[\"Kalia"); add_srs_wkt (p, 1, "npur 1880\",DATUM[\"Kalianpur_1880\",SPHEROID[\"Everest "); add_srs_wkt (p, 2, "(1830 Definition)\",6377299.36559538,300.8017255433612,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7042\"]],AUTHORITY[\"EPSG\",\"6243\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4243\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 7, "ert_Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 8, "n\",12],PARAMETER[\"central_meridian\",80],PARAMETER[\"s"); add_srs_wkt (p, 9, "cale_factor\",0.99878641],PARAMETER[\"false_easting\",30"); add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",1000000],UNIT[\"Indi"); add_srs_wkt (p, 11, "an yard\",0.9143985307444408,AUTHORITY[\"EPSG\",\"9084\""); add_srs_wkt (p, 12, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"24374\"]]"); p = add_epsg_def (filter, first, last, 24375, "epsg", 24375, "Kalianpur 1937 / India zone IIb"); add_proj4text (p, 0, "+proj=lcc +lat_1=26 +lat_0=26 +lon_0=90 +k_0=0.99878641 "); add_proj4text (p, 1, "+x_0=2743185.69 +y_0=914395.23 +a=6377276.345 +b=6356075"); add_proj4text (p, 2, ".413140239 +towgs84=282,726,254,0,0,0,0 +units=m +no_def"); add_proj4text (p, 3, "s"); add_srs_wkt (p, 0, "PROJCS[\"Kalianpur 1937 / India zone IIb\",GEOGCS[\"Kali"); add_srs_wkt (p, 1, "anpur 1937\",DATUM[\"Kalianpur_1937\",SPHEROID[\"Everest"); add_srs_wkt (p, 2, " 1830 (1937 Adjustment)\",6377276.345,300.8017,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7015\"]],TOWGS84[282,726,254,0,0,0,0],AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"6144\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4144\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",26],PARAMETER[\"central_meridian"); add_srs_wkt (p, 9, "\",90],PARAMETER[\"scale_factor\",0.99878641],PARAMETER["); add_srs_wkt (p, 10, "\"false_easting\",2743185.69],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, "\",914395.23],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"24375\"]]"); p = add_epsg_def (filter, first, last, 24376, "epsg", 24376, "Kalianpur 1962 / India zone I"); add_proj4text (p, 0, "+proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=68 +k_0=0.99878"); add_proj4text (p, 1, "641 +x_0=2743196.4 +y_0=914398.8 +a=6377301.243 +b=63561"); add_proj4text (p, 2, "00.230165385 +towgs84=283,682,231,0,0,0,0 +units=m +no_d"); add_proj4text (p, 3, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Kalianpur 1962 / India zone I\",GEOGCS[\"Kalian"); add_srs_wkt (p, 1, "pur 1962\",DATUM[\"Kalianpur_1962\",SPHEROID[\"Everest 1"); add_srs_wkt (p, 2, "830 (1962 Definition)\",6377301.243,300.8017255,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7044\"]],TOWGS84[283,682,231,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6145\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4145"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAMET"); add_srs_wkt (p, 8, "ER[\"latitude_of_origin\",32.5],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, "dian\",68],PARAMETER[\"scale_factor\",0.99878641],PARAME"); add_srs_wkt (p, 10, "TER[\"false_easting\",2743196.4],PARAMETER[\"false_north"); add_srs_wkt (p, 11, "ing\",914398.8],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"24376\"]]"); p = add_epsg_def (filter, first, last, 24377, "epsg", 24377, "Kalianpur 1962 / India zone IIa"); add_proj4text (p, 0, "+proj=lcc +lat_1=26 +lat_0=26 +lon_0=74 +k_0=0.99878641 "); add_proj4text (p, 1, "+x_0=2743196.4 +y_0=914398.8 +a=6377301.243 +b=6356100.2"); add_proj4text (p, 2, "30165385 +towgs84=283,682,231,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kalianpur 1962 / India zone IIa\",GEOGCS[\"Kali"); add_srs_wkt (p, 1, "anpur 1962\",DATUM[\"Kalianpur_1962\",SPHEROID[\"Everest"); add_srs_wkt (p, 2, " 1830 (1962 Definition)\",6377301.243,300.8017255,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7044\"]],TOWGS84[283,682,231,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6145\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"41"); add_srs_wkt (p, 7, "45\"]],PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"latitude_of_origin\",26],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, "dian\",74],PARAMETER[\"scale_factor\",0.99878641],PARAME"); add_srs_wkt (p, 10, "TER[\"false_easting\",2743196.4],PARAMETER[\"false_north"); add_srs_wkt (p, 11, "ing\",914398.8],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"24377\"]]"); p = add_epsg_def (filter, first, last, 24378, "epsg", 24378, "Kalianpur 1975 / India zone I"); add_proj4text (p, 0, "+proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=68 +k_0=0.99878"); add_proj4text (p, 1, "641 +x_0=2743195.5 +y_0=914398.5 +a=6377299.151 +b=63560"); add_proj4text (p, 2, "98.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_d"); add_proj4text (p, 3, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Kalianpur 1975 / India zone I\",GEOGCS[\"Kalian"); add_srs_wkt (p, 1, "pur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest 1"); add_srs_wkt (p, 2, "830 (1975 Definition)\",6377299.151,300.8017255,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4146"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAMET"); add_srs_wkt (p, 8, "ER[\"latitude_of_origin\",32.5],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, "dian\",68],PARAMETER[\"scale_factor\",0.99878641],PARAME"); add_srs_wkt (p, 10, "TER[\"false_easting\",2743195.5],PARAMETER[\"false_north"); add_srs_wkt (p, 11, "ing\",914398.5],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"24378\"]]"); p = add_epsg_def (filter, first, last, 24379, "epsg", 24379, "Kalianpur 1975 / India zone IIa"); add_proj4text (p, 0, "+proj=lcc +lat_1=26 +lat_0=26 +lon_0=74 +k_0=0.99878641 "); add_proj4text (p, 1, "+x_0=2743195.5 +y_0=914398.5 +a=6377299.151 +b=6356098.1"); add_proj4text (p, 2, "45120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kalianpur 1975 / India zone IIa\",GEOGCS[\"Kali"); add_srs_wkt (p, 1, "anpur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest"); add_srs_wkt (p, 2, " 1830 (1975 Definition)\",6377299.151,300.8017255,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"41"); add_srs_wkt (p, 7, "46\"]],PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"latitude_of_origin\",26],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, "dian\",74],PARAMETER[\"scale_factor\",0.99878641],PARAME"); add_srs_wkt (p, 10, "TER[\"false_easting\",2743195.5],PARAMETER[\"false_north"); add_srs_wkt (p, 11, "ing\",914398.5],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"24379\"]]"); p = add_epsg_def (filter, first, last, 24380, "epsg", 24380, "Kalianpur 1975 / India zone IIb"); add_proj4text (p, 0, "+proj=lcc +lat_1=26 +lat_0=26 +lon_0=90 +k_0=0.99878641 "); add_proj4text (p, 1, "+x_0=2743195.5 +y_0=914398.5 +a=6377299.151 +b=6356098.1"); add_proj4text (p, 2, "45120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kalianpur 1975 / India zone IIb\",GEOGCS[\"Kali"); add_srs_wkt (p, 1, "anpur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest"); add_srs_wkt (p, 2, " 1830 (1975 Definition)\",6377299.151,300.8017255,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"41"); add_srs_wkt (p, 7, "46\"]],PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"latitude_of_origin\",26],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, "dian\",90],PARAMETER[\"scale_factor\",0.99878641],PARAME"); add_srs_wkt (p, 10, "TER[\"false_easting\",2743195.5],PARAMETER[\"false_north"); add_srs_wkt (p, 11, "ing\",914398.5],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"24380\"]]"); p = add_epsg_def (filter, first, last, 24381, "epsg", 24381, "Kalianpur 1975 / India zone III"); add_proj4text (p, 0, "+proj=lcc +lat_1=19 +lat_0=19 +lon_0=80 +k_0=0.99878641 "); add_proj4text (p, 1, "+x_0=2743195.5 +y_0=914398.5 +a=6377299.151 +b=6356098.1"); add_proj4text (p, 2, "45120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kalianpur 1975 / India zone III\",GEOGCS[\"Kali"); add_srs_wkt (p, 1, "anpur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest"); add_srs_wkt (p, 2, " 1830 (1975 Definition)\",6377299.151,300.8017255,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"41"); add_srs_wkt (p, 7, "46\"]],PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"latitude_of_origin\",19],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, "dian\",80],PARAMETER[\"scale_factor\",0.99878641],PARAME"); add_srs_wkt (p, 10, "TER[\"false_easting\",2743195.5],PARAMETER[\"false_north"); add_srs_wkt (p, 11, "ing\",914398.5],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"24381\"]]"); p = add_epsg_def (filter, first, last, 24382, "epsg", 24382, "Kalianpur 1880 / India zone IIb"); add_proj4text (p, 0, "+proj=lcc +lat_1=26 +lat_0=26 +lon_0=90 +k_0=0.99878641 "); add_proj4text (p, 1, "+x_0=2743195.592233322 +y_0=914398.5307444407 +a=6377299"); add_proj4text (p, 2, ".36559538 +b=6356098.359005156 +to_meter=0.9143985307444"); add_proj4text (p, 3, "408 +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kalianpur 1880 / India zone IIb\",GEOGCS[\"Kali"); add_srs_wkt (p, 1, "anpur 1880\",DATUM[\"Kalianpur_1880\",SPHEROID[\"Everest"); add_srs_wkt (p, 2, " (1830 Definition)\",6377299.36559538,300.8017255433612,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7042\"]],AUTHORITY[\"EPSG\",\"6243\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4243\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 7, "ert_Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 8, "n\",26],PARAMETER[\"central_meridian\",90],PARAMETER[\"s"); add_srs_wkt (p, 9, "cale_factor\",0.99878641],PARAMETER[\"false_easting\",30"); add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",1000000],UNIT[\"Indi"); add_srs_wkt (p, 11, "an yard\",0.9143985307444408,AUTHORITY[\"EPSG\",\"9084\""); add_srs_wkt (p, 12, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"24382\"]]"); p = add_epsg_def (filter, first, last, 24383, "epsg", 24383, "Kalianpur 1975 / India zone IV"); add_proj4text (p, 0, "+proj=lcc +lat_1=12 +lat_0=12 +lon_0=80 +k_0=0.99878641 "); add_proj4text (p, 1, "+x_0=2743195.5 +y_0=914398.5 +a=6377299.151 +b=6356098.1"); add_proj4text (p, 2, "45120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kalianpur 1975 / India zone IV\",GEOGCS[\"Kalia"); add_srs_wkt (p, 1, "npur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest "); add_srs_wkt (p, 2, "1830 (1975 Definition)\",6377299.151,300.8017255,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"414"); add_srs_wkt (p, 7, "6\"]],PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAME"); add_srs_wkt (p, 8, "TER[\"latitude_of_origin\",12],PARAMETER[\"central_merid"); add_srs_wkt (p, 9, "ian\",80],PARAMETER[\"scale_factor\",0.99878641],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",2743195.5],PARAMETER[\"false_northi"); add_srs_wkt (p, 11, "ng\",914398.5],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU"); add_srs_wkt (p, 13, "THORITY[\"EPSG\",\"24383\"]]"); p = add_epsg_def (filter, first, last, 24500, "epsg", 24500, "Kertau 1968 / Singapore Grid"); add_proj4text (p, 0, "+proj=cass +lat_0=1.287646666666667 +lon_0=103.853002222"); add_proj4text (p, 1, "2222 +x_0=30000 +y_0=30000 +a=6377304.063 +b=6356103.038"); add_proj4text (p, 2, "993155 +towgs84=-11,851,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kertau 1968 / Singapore Grid\",GEOGCS[\"Kertau "); add_srs_wkt (p, 1, "1968\",DATUM[\"Kertau_1968\",SPHEROID[\"Everest 1830 Mod"); add_srs_wkt (p, 2, "ified\",6377304.063,300.8017,AUTHORITY[\"EPSG\",\"7018\""); add_srs_wkt (p, 3, "]],TOWGS84[-11,851,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6245\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4245\"]],PROJECTION[\"Cass"); add_srs_wkt (p, 7, "ini_Soldner\"],PARAMETER[\"latitude_of_origin\",1.287646"); add_srs_wkt (p, 8, "666666667],PARAMETER[\"central_meridian\",103.8530022222"); add_srs_wkt (p, 9, "222],PARAMETER[\"false_easting\",30000],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_northing\",30000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"24500\"]]"); p = add_epsg_def (filter, first, last, 24547, "epsg", 24547, "Kertau 1968 / UTM zone 47N"); add_proj4text (p, 0, "+proj=utm +zone=47 +a=6377304.063 +b=6356103.038993155 +"); add_proj4text (p, 1, "towgs84=-11,851,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kertau 1968 / UTM zone 47N\",GEOGCS[\"Kertau 19"); add_srs_wkt (p, 1, "68\",DATUM[\"Kertau_1968\",SPHEROID[\"Everest 1830 Modif"); add_srs_wkt (p, 2, "ied\",6377304.063,300.8017,AUTHORITY[\"EPSG\",\"7018\"]]"); add_srs_wkt (p, 3, ",TOWGS84[-11,851,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6245\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4245\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",99],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, "r\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 11, "G\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\","); add_srs_wkt (p, 12, "NORTH],AUTHORITY[\"EPSG\",\"24547\"]]"); p = add_epsg_def (filter, first, last, 24548, "epsg", 24548, "Kertau 1968 / UTM zone 48N"); add_proj4text (p, 0, "+proj=utm +zone=48 +a=6377304.063 +b=6356103.038993155 +"); add_proj4text (p, 1, "towgs84=-11,851,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kertau 1968 / UTM zone 48N\",GEOGCS[\"Kertau 19"); add_srs_wkt (p, 1, "68\",DATUM[\"Kertau_1968\",SPHEROID[\"Everest 1830 Modif"); add_srs_wkt (p, 2, "ied\",6377304.063,300.8017,AUTHORITY[\"EPSG\",\"7018\"]]"); add_srs_wkt (p, 3, ",TOWGS84[-11,851,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6245\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4245\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",105],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"24548\"]]"); p = add_epsg_def (filter, first, last, 24571, "epsg", 24571, "Kertau / R.S.O. Malaya (ch) (deprecated)"); add_proj4text (p, 0, "+proj=omerc +lat_0=4 +lonc=102.25 +alpha=323.0257905 +k="); add_proj4text (p, 1, "0.99984 +x_0=804671.2997750348 +y_0=0 +gamma=323.1301023"); add_proj4text (p, 2, "611111 +a=6377304.063 +b=6356103.038993155 +towgs84=-11,"); add_proj4text (p, 3, "851,5,0,0,0,0 +to_meter=20.11678249437587 +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kertau / R.S.O. Malaya (ch) (deprecated)\",GEOG"); add_srs_wkt (p, 1, "CS[\"Kertau 1968\",DATUM[\"Kertau_1968\",SPHEROID[\"Ever"); add_srs_wkt (p, 2, "est 1830 Modified\",6377304.063,300.8017,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7018\"]],TOWGS84[-11,851,5,0,0,0,0],AUTHORITY[\"EP"); add_srs_wkt (p, 4, "SG\",\"6245\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4245\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Hotine_Oblique_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 8, "of_center\",4],PARAMETER[\"longitude_of_center\",102.25]"); add_srs_wkt (p, 9, ",PARAMETER[\"azimuth\",323.0257905],PARAMETER[\"rectifie"); add_srs_wkt (p, 10, "d_grid_angle\",323.1301023611111],PARAMETER[\"scale_fact"); add_srs_wkt (p, 11, "or\",0.99984],PARAMETER[\"false_easting\",40000],PARAMET"); add_srs_wkt (p, 12, "ER[\"false_northing\",0],UNIT[\"British chain (Benoit 18"); add_srs_wkt (p, 13, "95 B)\",20.11678249437587,AUTHORITY[\"EPSG\",\"9062\"]],"); add_srs_wkt (p, 14, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 15, "Y[\"EPSG\",\"24571\"]]"); p = add_epsg_def (filter, first, last, 24600, "epsg", 24600, "KOC Lambert"); add_proj4text (p, 0, "+proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=45 +k_0=0.99878"); add_proj4text (p, 1, "64078000001 +x_0=1500000 +y_0=1166200 +ellps=clrk80 +tow"); add_proj4text (p, 2, "gs84=-294.7,-200.1,525.5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"KOC Lambert\",GEOGCS[\"KOC\",DATUM[\"Kuwait_Oil"); add_srs_wkt (p, 1, "_Company\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145,29"); add_srs_wkt (p, 2, "3.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-294.7,-200."); add_srs_wkt (p, 3, "1,525.5,0,0,0,0],AUTHORITY[\"EPSG\",\"6246\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4246\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 7, "l_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",32.5],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",45],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, "r\",0.9987864078],PARAMETER[\"false_easting\",1500000],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",1166200],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS["); add_srs_wkt (p, 12, "\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24600\"]]"); p = add_epsg_def (filter, first, last, 24718, "epsg", 24718, "La Canoa / UTM zone 18N"); add_proj4text (p, 0, "+proj=utm +zone=18 +ellps=intl +towgs84=-273.5,110.6,-35"); add_proj4text (p, 1, "7.9,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"La Canoa / UTM zone 18N\",GEOGCS[\"La Canoa\",D"); add_srs_wkt (p, 1, "ATUM[\"La_Canoa\",SPHEROID[\"International 1924\",637838"); add_srs_wkt (p, 2, "8,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-273.5,110.6"); add_srs_wkt (p, 3, ",-357.9,0,0,0,0],AUTHORITY[\"EPSG\",\"6247\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4247\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, "entral_meridian\",-75],PARAMETER[\"scale_factor\",0.9996"); add_srs_wkt (p, 9, "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); add_srs_wkt (p, 10, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 11, "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"24718\"]]"); p = add_epsg_def (filter, first, last, 24719, "epsg", 24719, "La Canoa / UTM zone 19N"); add_proj4text (p, 0, "+proj=utm +zone=19 +ellps=intl +towgs84=-273.5,110.6,-35"); add_proj4text (p, 1, "7.9,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"La Canoa / UTM zone 19N\",GEOGCS[\"La Canoa\",D"); add_srs_wkt (p, 1, "ATUM[\"La_Canoa\",SPHEROID[\"International 1924\",637838"); add_srs_wkt (p, 2, "8,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-273.5,110.6"); add_srs_wkt (p, 3, ",-357.9,0,0,0,0],AUTHORITY[\"EPSG\",\"6247\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4247\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, "entral_meridian\",-69],PARAMETER[\"scale_factor\",0.9996"); add_srs_wkt (p, 9, "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); add_srs_wkt (p, 10, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 11, "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"24719\"]]"); p = add_epsg_def (filter, first, last, 24720, "epsg", 24720, "La Canoa / UTM zone 20N"); add_proj4text (p, 0, "+proj=utm +zone=20 +ellps=intl +towgs84=-273.5,110.6,-35"); add_proj4text (p, 1, "7.9,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"La Canoa / UTM zone 20N\",GEOGCS[\"La Canoa\",D"); add_srs_wkt (p, 1, "ATUM[\"La_Canoa\",SPHEROID[\"International 1924\",637838"); add_srs_wkt (p, 2, "8,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-273.5,110.6"); add_srs_wkt (p, 3, ",-357.9,0,0,0,0],AUTHORITY[\"EPSG\",\"6247\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4247\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, "entral_meridian\",-63],PARAMETER[\"scale_factor\",0.9996"); add_srs_wkt (p, 9, "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); add_srs_wkt (p, 10, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 11, "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"24720\"]]"); p = add_epsg_def (filter, first, last, 24817, "epsg", 24817, "PSAD56 / UTM zone 17N"); add_proj4text (p, 0, "+proj=utm +zone=17 +ellps=intl +towgs84=-288,175,-376,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PSAD56 / UTM zone 17N\",GEOGCS[\"PSAD56\",DATUM"); add_srs_wkt (p, 1, "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In"); add_srs_wkt (p, 2, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",-81],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 12, "hing\",NORTH],AUTHORITY[\"EPSG\",\"24817\"]]"); p = add_epsg_def (filter, first, last, 24818, "epsg", 24818, "PSAD56 / UTM zone 18N"); add_proj4text (p, 0, "+proj=utm +zone=18 +ellps=intl +towgs84=-288,175,-376,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PSAD56 / UTM zone 18N\",GEOGCS[\"PSAD56\",DATUM"); add_srs_wkt (p, 1, "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In"); add_srs_wkt (p, 2, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",-75],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 12, "hing\",NORTH],AUTHORITY[\"EPSG\",\"24818\"]]"); } #endif /* full EPSG initialization enabled/disabled */ libspatialite-4.1.1/src/srsinit/epsg_inlined_33.c0000664000175000017500000047570112163502133016673 00000000000000/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_33 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def (filter, first, last, 27213, "epsg", 27213, "NZGD49 / Wellington Circuit"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-41.30131963888888 +lon_0=174.7766231"); add_proj4text (p, 1, "111111 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / Wellington Circuit\",GEOGCS[\"NZGD49\""); add_srs_wkt (p, 1, ",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"In"); add_srs_wkt (p, 2, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, "\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",-41.30131963888888],PARAMETER[\""); add_srs_wkt (p, 9, "central_meridian\",174.7766231111111],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",1],PARAMETER[\"false_easting\",300000],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_northing\",700000],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"East"); add_srs_wkt (p, 13, "ing\",EAST],AUTHORITY[\"EPSG\",\"27213\"]]"); p = add_epsg_def (filter, first, last, 27214, "epsg", 27214, "NZGD49 / Collingwood Circuit"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-40.71475905555556 +lon_0=172.6720465"); add_proj4text (p, 1, " +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / Collingwood Circuit\",GEOGCS[\"NZGD49\""); add_srs_wkt (p, 1, ",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"In"); add_srs_wkt (p, 2, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, "\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",-40.71475905555556],PARAMETER[\""); add_srs_wkt (p, 9, "central_meridian\",172.6720465],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\","); add_srs_wkt (p, 13, "EAST],AUTHORITY[\"EPSG\",\"27214\"]]"); p = add_epsg_def (filter, first, last, 27215, "epsg", 27215, "NZGD49 / Nelson Circuit"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-41.27454472222222 +lon_0=173.2993168"); add_proj4text (p, 1, "055555 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / Nelson Circuit\",GEOGCS[\"NZGD49\",DAT"); add_srs_wkt (p, 1, "UM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Intern"); add_srs_wkt (p, 2, "ational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]]"); add_srs_wkt (p, 3, ",TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "72\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",-41.27454472222222],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",173.2993168055555],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"27215\"]]"); p = add_epsg_def (filter, first, last, 27216, "epsg", 27216, "NZGD49 / Karamea Circuit"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-41.28991152777778 +lon_0=172.1090281"); add_proj4text (p, 1, "944444 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / Karamea Circuit\",GEOGCS[\"NZGD49\",DA"); add_srs_wkt (p, 1, "TUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Inter"); add_srs_wkt (p, 2, "national 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]"); add_srs_wkt (p, 3, "],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",-41.28991152777778],PARAMETER[\"cen"); add_srs_wkt (p, 9, "tral_meridian\",172.1090281944444],PARAMETER[\"scale_fac"); add_srs_wkt (p, 10, "tor\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"27216\"]]"); p = add_epsg_def (filter, first, last, 27217, "epsg", 27217, "NZGD49 / Buller Circuit"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-41.81080286111111 +lon_0=171.5812600"); add_proj4text (p, 1, "555556 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / Buller Circuit\",GEOGCS[\"NZGD49\",DAT"); add_srs_wkt (p, 1, "UM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Intern"); add_srs_wkt (p, 2, "ational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]]"); add_srs_wkt (p, 3, ",TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "72\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",-41.81080286111111],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",171.5812600555556],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"27217\"]]"); p = add_epsg_def (filter, first, last, 27218, "epsg", 27218, "NZGD49 / Grey Circuit"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-42.33369427777778 +lon_0=171.5497713"); add_proj4text (p, 1, "055556 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / Grey Circuit\",GEOGCS[\"NZGD49\",DATUM"); add_srs_wkt (p, 1, "[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Internat"); add_srs_wkt (p, 2, "ional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],T"); add_srs_wkt (p, 3, "OWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4272"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",-42.33369427777778],PARAMETER[\"centra"); add_srs_wkt (p, 9, "l_meridian\",171.5497713055556],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\","); add_srs_wkt (p, 13, "EAST],AUTHORITY[\"EPSG\",\"27218\"]]"); p = add_epsg_def (filter, first, last, 27219, "epsg", 27219, "NZGD49 / Amuri Circuit"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-42.68911658333333 +lon_0=173.0101333"); add_proj4text (p, 1, "888889 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / Amuri Circuit\",GEOGCS[\"NZGD49\",DATU"); add_srs_wkt (p, 1, "M[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, "TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"427"); add_srs_wkt (p, 7, "2\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 8, "titude_of_origin\",-42.68911658333333],PARAMETER[\"centr"); add_srs_wkt (p, 9, "al_meridian\",173.0101333888889],PARAMETER[\"scale_facto"); add_srs_wkt (p, 10, "r\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"27219\"]]"); p = add_epsg_def (filter, first, last, 27220, "epsg", 27220, "NZGD49 / Marlborough Circuit"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-41.54448666666666 +lon_0=173.8020741"); add_proj4text (p, 1, "111111 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / Marlborough Circuit\",GEOGCS[\"NZGD49\""); add_srs_wkt (p, 1, ",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"In"); add_srs_wkt (p, 2, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, "\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",-41.54448666666666],PARAMETER[\""); add_srs_wkt (p, 9, "central_meridian\",173.8020741111111],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",1],PARAMETER[\"false_easting\",300000],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_northing\",700000],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"East"); add_srs_wkt (p, 13, "ing\",EAST],AUTHORITY[\"EPSG\",\"27220\"]]"); p = add_epsg_def (filter, first, last, 27221, "epsg", 27221, "NZGD49 / Hokitika Circuit"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-42.88632236111111 +lon_0=170.9799935"); add_proj4text (p, 1, " +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / Hokitika Circuit\",GEOGCS[\"NZGD49\",D"); add_srs_wkt (p, 1, "ATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Inte"); add_srs_wkt (p, 2, "rnational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); add_srs_wkt (p, 3, "]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",-42.88632236111111],PARAMETER[\"cen"); add_srs_wkt (p, 9, "tral_meridian\",170.9799935],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 10, "1],PARAMETER[\"false_easting\",300000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 13, "T],AUTHORITY[\"EPSG\",\"27221\"]]"); p = add_epsg_def (filter, first, last, 27222, "epsg", 27222, "NZGD49 / Okarito Circuit"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-43.11012813888889 +lon_0=170.2609258"); add_proj4text (p, 1, "333333 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / Okarito Circuit\",GEOGCS[\"NZGD49\",DA"); add_srs_wkt (p, 1, "TUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Inter"); add_srs_wkt (p, 2, "national 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]"); add_srs_wkt (p, 3, "],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",-43.11012813888889],PARAMETER[\"cen"); add_srs_wkt (p, 9, "tral_meridian\",170.2609258333333],PARAMETER[\"scale_fac"); add_srs_wkt (p, 10, "tor\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"27222\"]]"); p = add_epsg_def (filter, first, last, 27223, "epsg", 27223, "NZGD49 / Jacksons Bay Circuit"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-43.97780288888889 +lon_0=168.606267 "); add_proj4text (p, 1, "+k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / Jacksons Bay Circuit\",GEOGCS[\"NZGD49"); add_srs_wkt (p, 1, "\",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\""); add_srs_wkt (p, 2, "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "22\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.599"); add_srs_wkt (p, 4, "3],AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 6, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 8, "R[\"latitude_of_origin\",-43.97780288888889],PARAMETER[\""); add_srs_wkt (p, 9, "central_meridian\",168.606267],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EA"); add_srs_wkt (p, 13, "ST],AUTHORITY[\"EPSG\",\"27223\"]]"); p = add_epsg_def (filter, first, last, 27224, "epsg", 27224, "NZGD49 / Mount Pleasant Circuit"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-43.59063758333333 +lon_0=172.7271935"); add_proj4text (p, 1, "833333 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / Mount Pleasant Circuit\",GEOGCS[\"NZGD"); add_srs_wkt (p, 1, "49\",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID["); add_srs_wkt (p, 2, "\"International 1924\",6378388,297,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7022\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5"); add_srs_wkt (p, 4, "993],AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, "G\",\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"latitude_of_origin\",-43.59063758333333],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",172.7271935833333],PARAMETER[\"sc"); add_srs_wkt (p, 10, "ale_factor\",1],PARAMETER[\"false_easting\",300000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",700000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Easting\",EAST],AUTHORITY[\"EPSG\",\"27224\"]]"); p = add_epsg_def (filter, first, last, 27225, "epsg", 27225, "NZGD49 / Gawler Circuit"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-43.74871155555556 +lon_0=171.3607484"); add_proj4text (p, 1, "722222 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / Gawler Circuit\",GEOGCS[\"NZGD49\",DAT"); add_srs_wkt (p, 1, "UM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Intern"); add_srs_wkt (p, 2, "ational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]]"); add_srs_wkt (p, 3, ",TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "72\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",-43.74871155555556],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",171.3607484722222],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"27225\"]]"); p = add_epsg_def (filter, first, last, 27226, "epsg", 27226, "NZGD49 / Timaru Circuit"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-44.40222036111111 +lon_0=171.0572508"); add_proj4text (p, 1, "333333 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / Timaru Circuit\",GEOGCS[\"NZGD49\",DAT"); add_srs_wkt (p, 1, "UM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Intern"); add_srs_wkt (p, 2, "ational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]]"); add_srs_wkt (p, 3, ",TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "72\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",-44.40222036111111],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",171.0572508333333],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"27226\"]]"); p = add_epsg_def (filter, first, last, 27227, "epsg", 27227, "NZGD49 / Lindis Peak Circuit"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-44.73526797222222 +lon_0=169.4677550"); add_proj4text (p, 1, "833333 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / Lindis Peak Circuit\",GEOGCS[\"NZGD49\""); add_srs_wkt (p, 1, ",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"In"); add_srs_wkt (p, 2, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, "\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",-44.73526797222222],PARAMETER[\""); add_srs_wkt (p, 9, "central_meridian\",169.4677550833333],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",1],PARAMETER[\"false_easting\",300000],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_northing\",700000],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"East"); add_srs_wkt (p, 13, "ing\",EAST],AUTHORITY[\"EPSG\",\"27227\"]]"); p = add_epsg_def (filter, first, last, 27228, "epsg", 27228, "NZGD49 / Mount Nicholas Circuit"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-45.13290258333333 +lon_0=168.3986411"); add_proj4text (p, 1, "944444 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / Mount Nicholas Circuit\",GEOGCS[\"NZGD"); add_srs_wkt (p, 1, "49\",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID["); add_srs_wkt (p, 2, "\"International 1924\",6378388,297,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7022\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5"); add_srs_wkt (p, 4, "993],AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, "G\",\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"latitude_of_origin\",-45.13290258333333],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",168.3986411944444],PARAMETER[\"sc"); add_srs_wkt (p, 10, "ale_factor\",1],PARAMETER[\"false_easting\",300000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",700000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Easting\",EAST],AUTHORITY[\"EPSG\",\"27228\"]]"); p = add_epsg_def (filter, first, last, 27229, "epsg", 27229, "NZGD49 / Mount York Circuit"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-45.56372616666666 +lon_0=167.7388617"); add_proj4text (p, 1, "777778 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / Mount York Circuit\",GEOGCS[\"NZGD49\""); add_srs_wkt (p, 1, ",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"In"); add_srs_wkt (p, 2, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, "\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",-45.56372616666666],PARAMETER[\""); add_srs_wkt (p, 9, "central_meridian\",167.7388617777778],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",1],PARAMETER[\"false_easting\",300000],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_northing\",700000],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"East"); add_srs_wkt (p, 13, "ing\",EAST],AUTHORITY[\"EPSG\",\"27229\"]]"); p = add_epsg_def (filter, first, last, 27230, "epsg", 27230, "NZGD49 / Observation Point Circuit"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-45.81619661111111 +lon_0=170.6285951"); add_proj4text (p, 1, "666667 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / Observation Point Circuit\",GEOGCS[\"N"); add_srs_wkt (p, 1, "ZGD49\",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHERO"); add_srs_wkt (p, 2, "ID[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7022\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-"); add_srs_wkt (p, 4, "4.5993],AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 5, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 6, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 7, "EPSG\",\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PA"); add_srs_wkt (p, 8, "RAMETER[\"latitude_of_origin\",-45.81619661111111],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",170.6285951666667],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",300000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",700000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Easting\",EAST],AUTHORITY[\"EPSG\",\"27230\"]]"); p = add_epsg_def (filter, first, last, 27231, "epsg", 27231, "NZGD49 / North Taieri Circuit"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-45.86151336111111 +lon_0=170.2825891"); add_proj4text (p, 1, "111111 +k=0.99996 +x_0=300000 +y_0=700000 +datum=nzgd49 "); add_proj4text (p, 2, "+units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / North Taieri Circuit\",GEOGCS[\"NZGD49"); add_srs_wkt (p, 1, "\",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\""); add_srs_wkt (p, 2, "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "22\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.599"); add_srs_wkt (p, 4, "3],AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 6, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 8, "R[\"latitude_of_origin\",-45.86151336111111],PARAMETER[\""); add_srs_wkt (p, 9, "central_meridian\",170.2825891111111],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.99996],PARAMETER[\"false_easting\",300000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",700000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Easting\",EAST],AUTHORITY[\"EPSG\",\"27231\"]]"); p = add_epsg_def (filter, first, last, 27232, "epsg", 27232, "NZGD49 / Bluff Circuit"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-46.60000961111111 +lon_0=168.342872 "); add_proj4text (p, 1, "+k=1 +x_0=300002.66 +y_0=699999.58 +datum=nzgd49 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / Bluff Circuit\",GEOGCS[\"NZGD49\",DATU"); add_srs_wkt (p, 1, "M[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, "TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"427"); add_srs_wkt (p, 7, "2\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 8, "titude_of_origin\",-46.60000961111111],PARAMETER[\"centr"); add_srs_wkt (p, 9, "al_meridian\",168.342872],PARAMETER[\"scale_factor\",1],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",300002.66],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",699999.58],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\","); add_srs_wkt (p, 13, "EAST],AUTHORITY[\"EPSG\",\"27232\"]]"); p = add_epsg_def (filter, first, last, 27258, "epsg", 27258, "NZGD49 / UTM zone 58S"); add_proj4text (p, 0, "+proj=utm +zone=58 +south +datum=nzgd49 +units=m +no_def"); add_proj4text (p, 1, "s"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / UTM zone 58S\",GEOGCS[\"NZGD49\",DATUM"); add_srs_wkt (p, 1, "[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Internat"); add_srs_wkt (p, 2, "ional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],T"); add_srs_wkt (p, 3, "OWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4272"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",165]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 11, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 12, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"27258\"]]"); p = add_epsg_def (filter, first, last, 27259, "epsg", 27259, "NZGD49 / UTM zone 59S"); add_proj4text (p, 0, "+proj=utm +zone=59 +south +datum=nzgd49 +units=m +no_def"); add_proj4text (p, 1, "s"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / UTM zone 59S\",GEOGCS[\"NZGD49\",DATUM"); add_srs_wkt (p, 1, "[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Internat"); add_srs_wkt (p, 2, "ional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],T"); add_srs_wkt (p, 3, "OWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4272"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",171]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 11, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 12, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"27259\"]]"); p = add_epsg_def (filter, first, last, 27260, "epsg", 27260, "NZGD49 / UTM zone 60S"); add_proj4text (p, 0, "+proj=utm +zone=60 +south +datum=nzgd49 +units=m +no_def"); add_proj4text (p, 1, "s"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / UTM zone 60S\",GEOGCS[\"NZGD49\",DATUM"); add_srs_wkt (p, 1, "[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Internat"); add_srs_wkt (p, 2, "ional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],T"); add_srs_wkt (p, 3, "OWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4272"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",177]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 11, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 12, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"27260\"]]"); p = add_epsg_def (filter, first, last, 27291, "epsg", 27291, "NZGD49 / North Island Grid"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-39 +lon_0=175.5 +k=1 +x_0=274319.524"); add_proj4text (p, 1, "3848086 +y_0=365759.3658464114 +datum=nzgd49 +to_meter=0"); add_proj4text (p, 2, ".9143984146160287 +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / North Island Grid\",GEOGCS[\"NZGD49\","); add_srs_wkt (p, 1, "DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Int"); add_srs_wkt (p, 2, "ernational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); add_srs_wkt (p, 3, "]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",-39],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",175.5],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",300000],PARAMETER[\"false_northing\",400000],U"); add_srs_wkt (p, 11, "NIT[\"British yard (Sears 1922)\",0.9143984146160287,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9040\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"27291\"]]"); p = add_epsg_def (filter, first, last, 27292, "epsg", 27292, "NZGD49 / South Island Grid"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-44 +lon_0=171.5 +k=1 +x_0=457199.207"); add_proj4text (p, 1, "3080143 +y_0=457199.2073080143 +datum=nzgd49 +to_meter=0"); add_proj4text (p, 2, ".9143984146160287 +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / South Island Grid\",GEOGCS[\"NZGD49\","); add_srs_wkt (p, 1, "DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Int"); add_srs_wkt (p, 2, "ernational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); add_srs_wkt (p, 3, "]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",-44],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",171.5],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",500000],PARAMETER[\"false_northing\",500000],U"); add_srs_wkt (p, 11, "NIT[\"British yard (Sears 1922)\",0.9143984146160287,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9040\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"27292\"]]"); p = add_epsg_def (filter, first, last, 27391, "epsg", 27391, "NGO 1948 (Oslo) / NGO zone I"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=-4.666666666666667 +k=1 +x_"); add_proj4text (p, 1, "0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84="); add_proj4text (p, 2, "278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NGO 1948 (Oslo) / NGO zone I\",GEOGCS[\"NGO 194"); add_srs_wkt (p, 1, "8 (Oslo)\",DATUM[\"NGO_1948_Oslo\",SPHEROID[\"Bessel Mod"); add_srs_wkt (p, 2, "ified\",6377492.018,299.1528128,AUTHORITY[\"EPSG\",\"700"); add_srs_wkt (p, 3, "5\"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"6817\"]],PRIMEM[\"Oslo\",10.72291666666"); add_srs_wkt (p, 5, "667,AUTHORITY[\"EPSG\",\"8913\"]],UNIT[\"degree\",0.0174"); add_srs_wkt (p, 6, "532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4817\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",58],PARAMETER[\"central_me"); add_srs_wkt (p, 9, "ridian\",-4.666666666666667],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 10, "1],PARAMETER[\"false_easting\",0],PARAMETER[\"false_nort"); add_srs_wkt (p, 11, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, ",AXIS[\"x\",NORTH],AXIS[\"y\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "27391\"]]"); p = add_epsg_def (filter, first, last, 27392, "epsg", 27392, "NGO 1948 (Oslo) / NGO zone II"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=-2.333333333333333 +k=1 +x_"); add_proj4text (p, 1, "0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84="); add_proj4text (p, 2, "278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NGO 1948 (Oslo) / NGO zone II\",GEOGCS[\"NGO 19"); add_srs_wkt (p, 1, "48 (Oslo)\",DATUM[\"NGO_1948_Oslo\",SPHEROID[\"Bessel Mo"); add_srs_wkt (p, 2, "dified\",6377492.018,299.1528128,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "05\"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6817\"]],PRIMEM[\"Oslo\",10.7229166666"); add_srs_wkt (p, 5, "6667,AUTHORITY[\"EPSG\",\"8913\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 6, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 7, "EPSG\",\"4817\"]],PROJECTION[\"Transverse_Mercator\"],PA"); add_srs_wkt (p, 8, "RAMETER[\"latitude_of_origin\",58],PARAMETER[\"central_m"); add_srs_wkt (p, 9, "eridian\",-2.333333333333333],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",1],PARAMETER[\"false_easting\",0],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 12, "],AXIS[\"x\",NORTH],AXIS[\"y\",EAST],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"27392\"]]"); p = add_epsg_def (filter, first, last, 27393, "epsg", 27393, "NGO 1948 (Oslo) / NGO zone III"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=637"); add_proj4text (p, 1, "7492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7."); add_proj4text (p, 2, "889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NGO 1948 (Oslo) / NGO zone III\",GEOGCS[\"NGO 1"); add_srs_wkt (p, 1, "948 (Oslo)\",DATUM[\"NGO_1948_Oslo\",SPHEROID[\"Bessel M"); add_srs_wkt (p, 2, "odified\",6377492.018,299.1528128,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "005\"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6817\"]],PRIMEM[\"Oslo\",10.722916666"); add_srs_wkt (p, 5, "66667,AUTHORITY[\"EPSG\",\"8913\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 6, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 7, "EPSG\",\"4817\"]],PROJECTION[\"Transverse_Mercator\"],PA"); add_srs_wkt (p, 8, "RAMETER[\"latitude_of_origin\",58],PARAMETER[\"central_m"); add_srs_wkt (p, 9, "eridian\",0],PARAMETER[\"scale_factor\",1],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"x\",NORTH"); add_srs_wkt (p, 12, "],AXIS[\"y\",EAST],AUTHORITY[\"EPSG\",\"27393\"]]"); p = add_epsg_def (filter, first, last, 27394, "epsg", 27394, "NGO 1948 (Oslo) / NGO zone IV"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=2.5 +k=1 +x_0=0 +y_0=0 +a=6"); add_proj4text (p, 1, "377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,"); add_proj4text (p, 2, "7.889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NGO 1948 (Oslo) / NGO zone IV\",GEOGCS[\"NGO 19"); add_srs_wkt (p, 1, "48 (Oslo)\",DATUM[\"NGO_1948_Oslo\",SPHEROID[\"Bessel Mo"); add_srs_wkt (p, 2, "dified\",6377492.018,299.1528128,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "05\"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6817\"]],PRIMEM[\"Oslo\",10.7229166666"); add_srs_wkt (p, 5, "6667,AUTHORITY[\"EPSG\",\"8913\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 6, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 7, "EPSG\",\"4817\"]],PROJECTION[\"Transverse_Mercator\"],PA"); add_srs_wkt (p, 8, "RAMETER[\"latitude_of_origin\",58],PARAMETER[\"central_m"); add_srs_wkt (p, 9, "eridian\",2.5],PARAMETER[\"scale_factor\",1],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"x\",NOR"); add_srs_wkt (p, 12, "TH],AXIS[\"y\",EAST],AUTHORITY[\"EPSG\",\"27394\"]]"); p = add_epsg_def (filter, first, last, 27395, "epsg", 27395, "NGO 1948 (Oslo) / NGO zone V"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=6.166666666666667 +k=1 +x_0"); add_proj4text (p, 1, "=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=2"); add_proj4text (p, 2, "78.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +n"); add_proj4text (p, 3, "o_defs"); add_srs_wkt (p, 0, "PROJCS[\"NGO 1948 (Oslo) / NGO zone V\",GEOGCS[\"NGO 194"); add_srs_wkt (p, 1, "8 (Oslo)\",DATUM[\"NGO_1948_Oslo\",SPHEROID[\"Bessel Mod"); add_srs_wkt (p, 2, "ified\",6377492.018,299.1528128,AUTHORITY[\"EPSG\",\"700"); add_srs_wkt (p, 3, "5\"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"6817\"]],PRIMEM[\"Oslo\",10.72291666666"); add_srs_wkt (p, 5, "667,AUTHORITY[\"EPSG\",\"8913\"]],UNIT[\"degree\",0.0174"); add_srs_wkt (p, 6, "532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4817\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",58],PARAMETER[\"central_me"); add_srs_wkt (p, 9, "ridian\",6.166666666666667],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",0],PARAMETER[\"false_north"); add_srs_wkt (p, 11, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 12, "AXIS[\"x\",NORTH],AXIS[\"y\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "27395\"]]"); p = add_epsg_def (filter, first, last, 27396, "epsg", 27396, "NGO 1948 (Oslo) / NGO zone VI"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=10.16666666666667 +k=1 +x_0"); add_proj4text (p, 1, "=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=2"); add_proj4text (p, 2, "78.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +n"); add_proj4text (p, 3, "o_defs"); add_srs_wkt (p, 0, "PROJCS[\"NGO 1948 (Oslo) / NGO zone VI\",GEOGCS[\"NGO 19"); add_srs_wkt (p, 1, "48 (Oslo)\",DATUM[\"NGO_1948_Oslo\",SPHEROID[\"Bessel Mo"); add_srs_wkt (p, 2, "dified\",6377492.018,299.1528128,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "05\"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6817\"]],PRIMEM[\"Oslo\",10.7229166666"); add_srs_wkt (p, 5, "6667,AUTHORITY[\"EPSG\",\"8913\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 6, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 7, "EPSG\",\"4817\"]],PROJECTION[\"Transverse_Mercator\"],PA"); add_srs_wkt (p, 8, "RAMETER[\"latitude_of_origin\",58],PARAMETER[\"central_m"); add_srs_wkt (p, 9, "eridian\",10.16666666666667],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 10, "1],PARAMETER[\"false_easting\",0],PARAMETER[\"false_nort"); add_srs_wkt (p, 11, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, ",AXIS[\"x\",NORTH],AXIS[\"y\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "27396\"]]"); p = add_epsg_def (filter, first, last, 27397, "epsg", 27397, "NGO 1948 (Oslo) / NGO zone VII"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=14.16666666666667 +k=1 +x_0"); add_proj4text (p, 1, "=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=2"); add_proj4text (p, 2, "78.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +n"); add_proj4text (p, 3, "o_defs"); add_srs_wkt (p, 0, "PROJCS[\"NGO 1948 (Oslo) / NGO zone VII\",GEOGCS[\"NGO 1"); add_srs_wkt (p, 1, "948 (Oslo)\",DATUM[\"NGO_1948_Oslo\",SPHEROID[\"Bessel M"); add_srs_wkt (p, 2, "odified\",6377492.018,299.1528128,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "005\"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6817\"]],PRIMEM[\"Oslo\",10.722916666"); add_srs_wkt (p, 5, "66667,AUTHORITY[\"EPSG\",\"8913\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 6, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 7, "EPSG\",\"4817\"]],PROJECTION[\"Transverse_Mercator\"],PA"); add_srs_wkt (p, 8, "RAMETER[\"latitude_of_origin\",58],PARAMETER[\"central_m"); add_srs_wkt (p, 9, "eridian\",14.16666666666667],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 10, "1],PARAMETER[\"false_easting\",0],PARAMETER[\"false_nort"); add_srs_wkt (p, 11, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, ",AXIS[\"x\",NORTH],AXIS[\"y\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "27397\"]]"); p = add_epsg_def (filter, first, last, 27398, "epsg", 27398, "NGO 1948 (Oslo) / NGO zone VIII"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=18.33333333333333 +k=1 +x_0"); add_proj4text (p, 1, "=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=2"); add_proj4text (p, 2, "78.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +n"); add_proj4text (p, 3, "o_defs"); add_srs_wkt (p, 0, "PROJCS[\"NGO 1948 (Oslo) / NGO zone VIII\",GEOGCS[\"NGO "); add_srs_wkt (p, 1, "1948 (Oslo)\",DATUM[\"NGO_1948_Oslo\",SPHEROID[\"Bessel "); add_srs_wkt (p, 2, "Modified\",6377492.018,299.1528128,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7005\"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6817\"]],PRIMEM[\"Oslo\",10.72291666"); add_srs_wkt (p, 5, "666667,AUTHORITY[\"EPSG\",\"8913\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 6, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4817\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 8, "PARAMETER[\"latitude_of_origin\",58],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",18.33333333333333],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",1],PARAMETER[\"false_easting\",0],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 12, "],AXIS[\"x\",NORTH],AXIS[\"y\",EAST],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"27398\"]]"); p = add_epsg_def (filter, first, last, 27429, "epsg", 27429, "Datum 73 / UTM zone 29N"); add_proj4text (p, 0, "+proj=utm +zone=29 +ellps=intl +towgs84=-223.237,110.193"); add_proj4text (p, 1, ",36.649,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Datum 73 / UTM zone 29N\",GEOGCS[\"Datum 73\",D"); add_srs_wkt (p, 1, "ATUM[\"Datum_73\",SPHEROID[\"International 1924\",637838"); add_srs_wkt (p, 2, "8,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-223.237,110"); add_srs_wkt (p, 3, ".193,36.649,0,0,0,0],AUTHORITY[\"EPSG\",\"6274\"]],PRIME"); add_srs_wkt (p, 4, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"4274\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 7, "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 8, "[\"central_meridian\",-9],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 9, "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 11, "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"27429\"]]"); p = add_epsg_def (filter, first, last, 27492, "epsg", 27492, "Datum 73 / Modified Portuguese Grid (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=39.66666666666666 +lon_0=-8.131906111"); add_proj4text (p, 1, "111112 +k=1 +x_0=180.598 +y_0=-86.98999999999999 +ellps="); add_proj4text (p, 2, "intl +towgs84=-223.237,110.193,36.649,0,0,0,0 +units=m +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Datum 73 / Modified Portuguese Grid (deprecated"); add_srs_wkt (p, 1, ")\",GEOGCS[\"Datum 73\",DATUM[\"Datum_73\",SPHEROID[\"In"); add_srs_wkt (p, 2, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, "\"]],TOWGS84[-223.237,110.193,36.649,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6274\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4274\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",39.66666666666666],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, "dian\",-8.131906111111112],PARAMETER[\"scale_factor\",1]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",180.598],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",-86.99],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"27492\"]]"); p = add_epsg_def (filter, first, last, 27493, "epsg", 27493, "Datum 73 / Modified Portuguese Grid"); add_proj4text (p, 0, "+proj=tmerc +lat_0=39.66666666666666 +lon_0=-8.131906111"); add_proj4text (p, 1, "111112 +k=1 +x_0=180.598 +y_0=-86.98999999999999 +ellps="); add_proj4text (p, 2, "intl +towgs84=-223.237,110.193,36.649,0,0,0,0 +units=m +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Datum 73 / Modified Portuguese Grid\",GEOGCS[\""); add_srs_wkt (p, 1, "Datum 73\",DATUM[\"Datum_73\",SPHEROID[\"International 1"); add_srs_wkt (p, 2, "924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84["); add_srs_wkt (p, 3, "-223.237,110.193,36.649,0,0,0,0],AUTHORITY[\"EPSG\",\"62"); add_srs_wkt (p, 4, "74\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4274\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",3"); add_srs_wkt (p, 8, "9.66666666666666],PARAMETER[\"central_meridian\",-8.1319"); add_srs_wkt (p, 9, "06111111112],PARAMETER[\"scale_factor\",1],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_easting\",180.598],PARAMETER[\"false_northing\",-86"); add_srs_wkt (p, 11, ".99],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS"); add_srs_wkt (p, 12, "[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2749"); add_srs_wkt (p, 13, "3\"]]"); p = add_epsg_def (filter, first, last, 27500, "epsg", 27500, "ATF (Paris) / Nord de Guerre"); add_proj4text (p, 0, "+proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000"); add_proj4text (p, 1, "001 +lon_0=5.4 +k_0=0.99950908 +x_0=500000 +y_0=300000 +"); add_proj4text (p, 2, "a=6376523 +b=6355862.933255573 +pm=2.337208333333333 +un"); add_proj4text (p, 3, "its=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ATF (Paris) / Nord de Guerre\",GEOGCS[\"ATF (Pa"); add_srs_wkt (p, 1, "ris)\",DATUM[\"Ancienne_Triangulation_Francaise_Paris\","); add_srs_wkt (p, 2, "SPHEROID[\"Plessis 1817\",6376523,308.64,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7027\"]],AUTHORITY[\"EPSG\",\"6901\"]],PRIMEM[\"Pa"); add_srs_wkt (p, 4, "ris RGS\",2.337208333333333,AUTHORITY[\"EPSG\",\"8914\"]"); add_srs_wkt (p, 5, "],UNIT[\"grad\",0.01570796326794897,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9105\"]],AUTHORITY[\"EPSG\",\"4901\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 7, "ert_Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 8, "n\",55],PARAMETER[\"central_meridian\",6],PARAMETER[\"sc"); add_srs_wkt (p, 9, "ale_factor\",0.99950908],PARAMETER[\"false_easting\",500"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",300000],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Y\",NORTH],AUTHORITY[\"EPSG\",\"27500\"]]"); p = add_epsg_def (filter, first, last, 27561, "epsg", 27561, "NTF (Paris) / Lambert Nord France"); add_proj4text (p, 0, "+proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000"); add_proj4text (p, 1, "001 +lon_0=0 +k_0=0.999877341 +x_0=600000 +y_0=200000 +a"); add_proj4text (p, 2, "=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm="); add_proj4text (p, 3, "paris +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NTF (Paris) / Lambert Nord France\",GEOGCS[\"NT"); add_srs_wkt (p, 1, "F (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise_Par"); add_srs_wkt (p, 2, "is\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.466021"); add_srs_wkt (p, 3, "2936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,3"); add_srs_wkt (p, 4, "20,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Paris"); add_srs_wkt (p, 5, "\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\""); add_srs_wkt (p, 6, ",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHO"); add_srs_wkt (p, 7, "RITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_"); add_srs_wkt (p, 8, "Conic_1SP\"],PARAMETER[\"latitude_of_origin\",55],PARAME"); add_srs_wkt (p, 9, "TER[\"central_meridian\",0],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".999877341],PARAMETER[\"false_easting\",600000],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_northing\",200000],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"27561\"]]"); p = add_epsg_def (filter, first, last, 27562, "epsg", 27562, "NTF (Paris) / Lambert Centre France"); add_proj4text (p, 0, "+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.999877"); add_proj4text (p, 1, "42 +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +towg"); add_proj4text (p, 2, "s84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NTF (Paris) / Lambert Centre France\",GEOGCS[\""); add_srs_wkt (p, 1, "NTF (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise_P"); add_srs_wkt (p, 2, "aris\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660"); add_srs_wkt (p, 3, "212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60"); add_srs_wkt (p, 4, ",320,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Par"); add_srs_wkt (p, 5, "is\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"gra"); add_srs_wkt (p, 6, "d\",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AU"); add_srs_wkt (p, 7, "THORITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conform"); add_srs_wkt (p, 8, "al_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",52],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",0],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.99987742],PARAMETER[\"false_easting\",600000],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",200000],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"27562\"]]"); p = add_epsg_def (filter, first, last, 27563, "epsg", 27563, "NTF (Paris) / Lambert Sud France"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000"); add_proj4text (p, 1, "001 +lon_0=0 +k_0=0.999877499 +x_0=600000 +y_0=200000 +a"); add_proj4text (p, 2, "=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm="); add_proj4text (p, 3, "paris +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NTF (Paris) / Lambert Sud France\",GEOGCS[\"NTF"); add_srs_wkt (p, 1, " (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise_Pari"); add_srs_wkt (p, 2, "s\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660212"); add_srs_wkt (p, 3, "936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,32"); add_srs_wkt (p, 4, "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Paris\""); add_srs_wkt (p, 5, ",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\","); add_srs_wkt (p, 6, "0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_C"); add_srs_wkt (p, 8, "onic_1SP\"],PARAMETER[\"latitude_of_origin\",49],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",0],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 10, "999877499],PARAMETER[\"false_easting\",600000],PARAMETER"); add_srs_wkt (p, 11, "[\"false_northing\",200000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"27563\"]]"); p = add_epsg_def (filter, first, last, 27564, "epsg", 27564, "NTF (Paris) / Lambert Corse"); add_proj4text (p, 0, "+proj=lcc +lat_1=42.16500000000001 +lat_0=42.16500000000"); add_proj4text (p, 1, "001 +lon_0=0 +k_0=0.99994471 +x_0=234.358 +y_0=185861.36"); add_proj4text (p, 2, "9 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 "); add_proj4text (p, 3, "+pm=paris +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NTF (Paris) / Lambert Corse\",GEOGCS[\"NTF (Par"); add_srs_wkt (p, 1, "is)\",DATUM[\"Nouvelle_Triangulation_Francaise_Paris\",S"); add_srs_wkt (p, 2, "PHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.466021293626"); add_srs_wkt (p, 3, "9,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,320,0,0"); add_srs_wkt (p, 4, ",0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Paris\",2.3"); add_srs_wkt (p, 5, "3722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\",0.01"); add_srs_wkt (p, 6, "570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_Conic"); add_srs_wkt (p, 8, "_1SP\"],PARAMETER[\"latitude_of_origin\",46.85],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",0],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 10, "9994471],PARAMETER[\"false_easting\",234.358],PARAMETER["); add_srs_wkt (p, 11, "\"false_northing\",185861.369],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"27564\"]]"); p = add_epsg_def (filter, first, last, 27571, "epsg", 27571, "NTF (Paris) / Lambert zone I"); add_proj4text (p, 0, "+proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000"); add_proj4text (p, 1, "001 +lon_0=0 +k_0=0.999877341 +x_0=600000 +y_0=1200000 +"); add_proj4text (p, 2, "a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm"); add_proj4text (p, 3, "=paris +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NTF (Paris) / Lambert zone I\",GEOGCS[\"NTF (Pa"); add_srs_wkt (p, 1, "ris)\",DATUM[\"Nouvelle_Triangulation_Francaise_Paris\","); add_srs_wkt (p, 2, "SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.46602129362"); add_srs_wkt (p, 3, "69,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,320,0,"); add_srs_wkt (p, 4, "0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Paris\",2."); add_srs_wkt (p, 5, "33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\",0.0"); add_srs_wkt (p, 6, "1570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_Coni"); add_srs_wkt (p, 8, "c_1SP\"],PARAMETER[\"latitude_of_origin\",55],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",0],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 10, "877341],PARAMETER[\"false_easting\",600000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",1200000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 13, "ORITY[\"EPSG\",\"27571\"]]"); p = add_epsg_def (filter, first, last, 27572, "epsg", 27572, "NTF (Paris) / Lambert zone II"); add_proj4text (p, 0, "+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.999877"); add_proj4text (p, 1, "42 +x_0=600000 +y_0=2200000 +a=6378249.2 +b=6356515 +tow"); add_proj4text (p, 2, "gs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NTF (Paris) / Lambert zone II\",GEOGCS[\"NTF (P"); add_srs_wkt (p, 1, "aris)\",DATUM[\"Nouvelle_Triangulation_Francaise_Paris\""); add_srs_wkt (p, 2, ",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660212936"); add_srs_wkt (p, 3, "269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,320,0"); add_srs_wkt (p, 4, ",0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Paris\",2"); add_srs_wkt (p, 5, ".33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\",0."); add_srs_wkt (p, 6, "01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHORIT"); add_srs_wkt (p, 7, "Y[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_Con"); add_srs_wkt (p, 8, "ic_1SP\"],PARAMETER[\"latitude_of_origin\",52],PARAMETER"); add_srs_wkt (p, 9, "[\"central_meridian\",0],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 10, "987742],PARAMETER[\"false_easting\",600000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",2200000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 13, "ORITY[\"EPSG\",\"27572\"]]"); p = add_epsg_def (filter, first, last, 27573, "epsg", 27573, "NTF (Paris) / Lambert zone III"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000"); add_proj4text (p, 1, "001 +lon_0=0 +k_0=0.999877499 +x_0=600000 +y_0=3200000 +"); add_proj4text (p, 2, "a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm"); add_proj4text (p, 3, "=paris +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NTF (Paris) / Lambert zone III\",GEOGCS[\"NTF ("); add_srs_wkt (p, 1, "Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise_Paris\""); add_srs_wkt (p, 2, ",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660212936"); add_srs_wkt (p, 3, "269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,320,0"); add_srs_wkt (p, 4, ",0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Paris\",2"); add_srs_wkt (p, 5, ".33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\",0."); add_srs_wkt (p, 6, "01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHORIT"); add_srs_wkt (p, 7, "Y[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_Con"); add_srs_wkt (p, 8, "ic_1SP\"],PARAMETER[\"latitude_of_origin\",49],PARAMETER"); add_srs_wkt (p, 9, "[\"central_meridian\",0],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 10, "9877499],PARAMETER[\"false_easting\",600000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",3200000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 13, "ORITY[\"EPSG\",\"27573\"]]"); p = add_epsg_def (filter, first, last, 27574, "epsg", 27574, "NTF (Paris) / Lambert zone IV"); add_proj4text (p, 0, "+proj=lcc +lat_1=42.16500000000001 +lat_0=42.16500000000"); add_proj4text (p, 1, "001 +lon_0=0 +k_0=0.99994471 +x_0=234.358 +y_0=4185861.3"); add_proj4text (p, 2, "69 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0"); add_proj4text (p, 3, " +pm=paris +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NTF (Paris) / Lambert zone IV\",GEOGCS[\"NTF (P"); add_srs_wkt (p, 1, "aris)\",DATUM[\"Nouvelle_Triangulation_Francaise_Paris\""); add_srs_wkt (p, 2, ",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660212936"); add_srs_wkt (p, 3, "269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,320,0"); add_srs_wkt (p, 4, ",0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Paris\",2"); add_srs_wkt (p, 5, ".33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\",0."); add_srs_wkt (p, 6, "01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHORIT"); add_srs_wkt (p, 7, "Y[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_Con"); add_srs_wkt (p, 8, "ic_1SP\"],PARAMETER[\"latitude_of_origin\",46.85],PARAME"); add_srs_wkt (p, 9, "TER[\"central_meridian\",0],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".99994471],PARAMETER[\"false_easting\",234.358],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_northing\",4185861.369],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 12, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); add_srs_wkt (p, 13, "TH],AUTHORITY[\"EPSG\",\"27574\"]]"); p = add_epsg_def (filter, first, last, 27581, "epsg", 27581, "NTF (Paris) / France I (deprecated)"); add_proj4text (p, 0, "+proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000"); add_proj4text (p, 1, "001 +lon_0=0 +k_0=0.999877341 +x_0=600000 +y_0=1200000 +"); add_proj4text (p, 2, "a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm"); add_proj4text (p, 3, "=paris +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NTF (Paris) / France I (deprecated)\",GEOGCS[\""); add_srs_wkt (p, 1, "NTF (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise_P"); add_srs_wkt (p, 2, "aris\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660"); add_srs_wkt (p, 3, "212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60"); add_srs_wkt (p, 4, ",320,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Par"); add_srs_wkt (p, 5, "is\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"gra"); add_srs_wkt (p, 6, "d\",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AU"); add_srs_wkt (p, 7, "THORITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conform"); add_srs_wkt (p, 8, "al_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",55],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",0],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.999877341],PARAMETER[\"false_easting\",600000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",1200000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"27581\"]]"); p = add_epsg_def (filter, first, last, 27582, "epsg", 27582, "NTF (Paris) / France II (deprecated)"); add_proj4text (p, 0, "+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.999877"); add_proj4text (p, 1, "42 +x_0=600000 +y_0=2200000 +a=6378249.2 +b=6356515 +tow"); add_proj4text (p, 2, "gs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NTF (Paris) / France II (deprecated)\",GEOGCS[\""); add_srs_wkt (p, 1, "NTF (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise_P"); add_srs_wkt (p, 2, "aris\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660"); add_srs_wkt (p, 3, "212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60"); add_srs_wkt (p, 4, ",320,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Par"); add_srs_wkt (p, 5, "is\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"gra"); add_srs_wkt (p, 6, "d\",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AU"); add_srs_wkt (p, 7, "THORITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conform"); add_srs_wkt (p, 8, "al_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",52],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",0],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.99987742],PARAMETER[\"false_easting\",600000],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",2200000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"27582\"]]"); p = add_epsg_def (filter, first, last, 27583, "epsg", 27583, "NTF (Paris) / France III (deprecated)"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000"); add_proj4text (p, 1, "001 +lon_0=0 +k_0=0.999877499 +x_0=600000 +y_0=3200000 +"); add_proj4text (p, 2, "a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm"); add_proj4text (p, 3, "=paris +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NTF (Paris) / France III (deprecated)\",GEOGCS["); add_srs_wkt (p, 1, "\"NTF (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise"); add_srs_wkt (p, 2, "_Paris\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.46"); add_srs_wkt (p, 3, "60212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-"); add_srs_wkt (p, 4, "60,320,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"P"); add_srs_wkt (p, 5, "aris\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"g"); add_srs_wkt (p, 6, "rad\",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 8, "rmal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",49],P"); add_srs_wkt (p, 9, "ARAMETER[\"central_meridian\",0],PARAMETER[\"scale_facto"); add_srs_wkt (p, 10, "r\",0.999877499],PARAMETER[\"false_easting\",600000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",3200000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 13, "RTH],AUTHORITY[\"EPSG\",\"27583\"]]"); p = add_epsg_def (filter, first, last, 27584, "epsg", 27584, "NTF (Paris) / France IV (deprecated)"); add_proj4text (p, 0, "+proj=lcc +lat_1=42.16500000000001 +lat_0=42.16500000000"); add_proj4text (p, 1, "001 +lon_0=0 +k_0=0.99994471 +x_0=234.358 +y_0=4185861.3"); add_proj4text (p, 2, "69 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0"); add_proj4text (p, 3, " +pm=paris +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NTF (Paris) / France IV (deprecated)\",GEOGCS[\""); add_srs_wkt (p, 1, "NTF (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise_P"); add_srs_wkt (p, 2, "aris\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660"); add_srs_wkt (p, 3, "212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60"); add_srs_wkt (p, 4, ",320,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Par"); add_srs_wkt (p, 5, "is\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"gra"); add_srs_wkt (p, 6, "d\",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AU"); add_srs_wkt (p, 7, "THORITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conform"); add_srs_wkt (p, 8, "al_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",46.85],"); add_srs_wkt (p, 9, "PARAMETER[\"central_meridian\",0],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",0.99994471],PARAMETER[\"false_easting\",234.358],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",4185861.369],UNIT[\"metre\",1"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"27584\"]]"); p = add_epsg_def (filter, first, last, 27591, "epsg", 27591, "NTF (Paris) / Nord France (deprecated)"); add_proj4text (p, 0, "+proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000"); add_proj4text (p, 1, "001 +lon_0=0 +k_0=0.999877341 +x_0=600000 +y_0=200000 +a"); add_proj4text (p, 2, "=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm="); add_proj4text (p, 3, "paris +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NTF (Paris) / Nord France (deprecated)\",GEOGCS"); add_srs_wkt (p, 1, "[\"NTF (Paris)\",DATUM[\"Nouvelle_Triangulation_Francais"); add_srs_wkt (p, 2, "e_Paris\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4"); add_srs_wkt (p, 3, "660212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,"); add_srs_wkt (p, 4, "-60,320,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\""); add_srs_wkt (p, 5, "Paris\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\""); add_srs_wkt (p, 6, "grad\",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conf"); add_srs_wkt (p, 8, "ormal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",55],"); add_srs_wkt (p, 9, "PARAMETER[\"central_meridian\",0],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",0.999877341],PARAMETER[\"false_easting\",600000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",200000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 13, "RTH],AUTHORITY[\"EPSG\",\"27591\"]]"); p = add_epsg_def (filter, first, last, 27592, "epsg", 27592, "NTF (Paris) / Centre France (deprecated)"); add_proj4text (p, 0, "+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.999877"); add_proj4text (p, 1, "42 +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +towg"); add_proj4text (p, 2, "s84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NTF (Paris) / Centre France (deprecated)\",GEOG"); add_srs_wkt (p, 1, "CS[\"NTF (Paris)\",DATUM[\"Nouvelle_Triangulation_Franca"); add_srs_wkt (p, 2, "ise_Paris\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293"); add_srs_wkt (p, 3, ".4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-16"); add_srs_wkt (p, 4, "8,-60,320,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM["); add_srs_wkt (p, 5, "\"Paris\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT["); add_srs_wkt (p, 6, "\"grad\",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\""); add_srs_wkt (p, 7, "]],AUTHORITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 8, "nformal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",52"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",0],PARAMETER[\"scale_fa"); add_srs_wkt (p, 10, "ctor\",0.99987742],PARAMETER[\"false_easting\",600000],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",200000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); add_srs_wkt (p, 13, "ORTH],AUTHORITY[\"EPSG\",\"27592\"]]"); p = add_epsg_def (filter, first, last, 27593, "epsg", 27593, "NTF (Paris) / Sud France (deprecated)"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000"); add_proj4text (p, 1, "001 +lon_0=0 +k_0=0.999877499 +x_0=600000 +y_0=200000 +a"); add_proj4text (p, 2, "=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm="); add_proj4text (p, 3, "paris +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NTF (Paris) / Sud France (deprecated)\",GEOGCS["); add_srs_wkt (p, 1, "\"NTF (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise"); add_srs_wkt (p, 2, "_Paris\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.46"); add_srs_wkt (p, 3, "60212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-"); add_srs_wkt (p, 4, "60,320,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"P"); add_srs_wkt (p, 5, "aris\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"g"); add_srs_wkt (p, 6, "rad\",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 8, "rmal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",49],P"); add_srs_wkt (p, 9, "ARAMETER[\"central_meridian\",0],PARAMETER[\"scale_facto"); add_srs_wkt (p, 10, "r\",0.999877499],PARAMETER[\"false_easting\",600000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",200000],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 12, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); add_srs_wkt (p, 13, "TH],AUTHORITY[\"EPSG\",\"27593\"]]"); p = add_epsg_def (filter, first, last, 27594, "epsg", 27594, "NTF (Paris) / Corse (deprecated)"); add_proj4text (p, 0, "+proj=lcc +lat_1=42.16500000000001 +lat_0=42.16500000000"); add_proj4text (p, 1, "001 +lon_0=0 +k_0=0.99994471 +x_0=234.358 +y_0=185861.36"); add_proj4text (p, 2, "9 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 "); add_proj4text (p, 3, "+pm=paris +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NTF (Paris) / Corse (deprecated)\",GEOGCS[\"NTF"); add_srs_wkt (p, 1, " (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise_Pari"); add_srs_wkt (p, 2, "s\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660212"); add_srs_wkt (p, 3, "936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,32"); add_srs_wkt (p, 4, "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Paris\""); add_srs_wkt (p, 5, ",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\","); add_srs_wkt (p, 6, "0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_C"); add_srs_wkt (p, 8, "onic_1SP\"],PARAMETER[\"latitude_of_origin\",46.85],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",0],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.99994471],PARAMETER[\"false_easting\",234.358],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",185861.369],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 13, "RTH],AUTHORITY[\"EPSG\",\"27594\"]]"); p = add_epsg_def (filter, first, last, 27700, "epsg", 27700, "OSGB 1936 / British National Grid"); add_proj4text (p, 0, "+proj=tmerc +lat_0=49 +lon_0=-2 +k=0.9996012717 +x_0=400"); add_proj4text (p, 1, "000 +y_0=-100000 +datum=OSGB36 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"OSGB 1936 / British National Grid\",GEOGCS[\"OS"); add_srs_wkt (p, 1, "GB 1936\",DATUM[\"OSGB_1936\",SPHEROID[\"Airy 1830\",637"); add_srs_wkt (p, 2, "7563.396,299.3249646,AUTHORITY[\"EPSG\",\"7001\"]],TOWGS"); add_srs_wkt (p, 3, "84[375,-111,431,0,0,0,0],AUTHORITY[\"EPSG\",\"6277\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AUTHORITY[\"EPSG\",\"4277\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 7, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",49],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",-2],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9996012717],PARAMETER[\"false_easting\",400000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",-100000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 11, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 12, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"27700\"]]"); p = add_epsg_def (filter, first, last, 28191, "epsg", 28191, "Palestine 1923 / Palestine Grid"); add_proj4text (p, 0, "+proj=cass +lat_0=31.73409694444445 +lon_0=35.2120805555"); add_proj4text (p, 1, "5556 +x_0=170251.555 +y_0=126867.909 +a=6378300.789 +b=6"); add_proj4text (p, 2, "356566.435 +towgs84=-275.722,94.7824,340.894,-8.001,-4.4"); add_proj4text (p, 3, "2,-11.821,1 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Palestine 1923 / Palestine Grid\",GEOGCS[\"Pale"); add_srs_wkt (p, 1, "stine 1923\",DATUM[\"Palestine_1923\",SPHEROID[\"Clarke "); add_srs_wkt (p, 2, "1880 (Benoit)\",6378300.789,293.4663155389811,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7010\"]],TOWGS84[-275.722,94.7824,340.894,-8."); add_srs_wkt (p, 4, "001,-4.42,-11.821,1],AUTHORITY[\"EPSG\",\"6281\"]],PRIME"); add_srs_wkt (p, 5, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 6, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"4281\"]],PROJECTION[\"Cassini_Sold"); add_srs_wkt (p, 8, "ner\"],PARAMETER[\"latitude_of_origin\",31.7340969444444"); add_srs_wkt (p, 9, "5],PARAMETER[\"central_meridian\",35.21208055555556],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_easting\",170251.555],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",126867.909],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); add_srs_wkt (p, 13, "TH],AUTHORITY[\"EPSG\",\"28191\"]]"); p = add_epsg_def (filter, first, last, 28192, "epsg", 28192, "Palestine 1923 / Palestine Belt"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31.73409694444445 +lon_0=35.212080555"); add_proj4text (p, 1, "55556 +k=1 +x_0=170251.555 +y_0=1126867.909 +a=6378300.7"); add_proj4text (p, 2, "89 +b=6356566.435 +towgs84=-275.722,94.7824,340.894,-8.0"); add_proj4text (p, 3, "01,-4.42,-11.821,1 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Palestine 1923 / Palestine Belt\",GEOGCS[\"Pale"); add_srs_wkt (p, 1, "stine 1923\",DATUM[\"Palestine_1923\",SPHEROID[\"Clarke "); add_srs_wkt (p, 2, "1880 (Benoit)\",6378300.789,293.4663155389811,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7010\"]],TOWGS84[-275.722,94.7824,340.894,-8."); add_srs_wkt (p, 4, "001,-4.42,-11.821,1],AUTHORITY[\"EPSG\",\"6281\"]],PRIME"); add_srs_wkt (p, 5, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 6, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"4281\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 8, "ercator\"],PARAMETER[\"latitude_of_origin\",31.734096944"); add_srs_wkt (p, 9, "44445],PARAMETER[\"central_meridian\",35.21208055555556]"); add_srs_wkt (p, 10, ",PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting"); add_srs_wkt (p, 11, "\",170251.555],PARAMETER[\"false_northing\",1126867.909]"); add_srs_wkt (p, 12, ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E"); add_srs_wkt (p, 13, "asting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 14, "\",\"28192\"]]"); p = add_epsg_def (filter, first, last, 28193, "epsg", 28193, "Palestine 1923 / Israeli CS Grid"); add_proj4text (p, 0, "+proj=cass +lat_0=31.73409694444445 +lon_0=35.2120805555"); add_proj4text (p, 1, "5556 +x_0=170251.555 +y_0=1126867.909 +a=6378300.789 +b="); add_proj4text (p, 2, "6356566.435 +towgs84=-275.722,94.7824,340.894,-8.001,-4."); add_proj4text (p, 3, "42,-11.821,1 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Palestine 1923 / Israeli CS Grid\",GEOGCS[\"Pal"); add_srs_wkt (p, 1, "estine 1923\",DATUM[\"Palestine_1923\",SPHEROID[\"Clarke"); add_srs_wkt (p, 2, " 1880 (Benoit)\",6378300.789,293.4663155389811,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7010\"]],TOWGS84[-275.722,94.7824,340.894,-8"); add_srs_wkt (p, 4, ".001,-4.42,-11.821,1],AUTHORITY[\"EPSG\",\"6281\"]],PRIM"); add_srs_wkt (p, 5, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 6, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4281\"]],PROJECTION[\"Cassini_Sol"); add_srs_wkt (p, 8, "dner\"],PARAMETER[\"latitude_of_origin\",31.734096944444"); add_srs_wkt (p, 9, "45],PARAMETER[\"central_meridian\",35.21208055555556],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_easting\",170251.555],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",1126867.909],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\","); add_srs_wkt (p, 13, "NORTH],AUTHORITY[\"EPSG\",\"28193\"]]"); p = add_epsg_def (filter, first, last, 28232, "epsg", 28232, "Pointe Noire / UTM zone 32S"); add_proj4text (p, 0, "+proj=utm +zone=32 +south +a=6378249.2 +b=6356515 +towgs"); add_proj4text (p, 1, "84=-148,51,-291,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pointe Noire / UTM zone 32S\",GEOGCS[\"Pointe N"); add_srs_wkt (p, 1, "oire\",DATUM[\"Congo_1960_Pointe_Noire\",SPHEROID[\"Clar"); add_srs_wkt (p, 2, "ke 1880 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7011\"]],TOWGS84[-148,51,-291,0,0,0,0],AUTHORIT"); add_srs_wkt (p, 4, "Y[\"EPSG\",\"6282\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4282\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",9],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",0.9996],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, ",500000],PARAMETER[\"false_northing\",10000000],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 12, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2823"); add_srs_wkt (p, 13, "2\"]]"); p = add_epsg_def (filter, first, last, 28348, "epsg", 28348, "GDA94 / MGA zone 48"); add_proj4text (p, 0, "+proj=utm +zone=48 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDA94 / MGA zone 48\",GEOGCS[\"GDA94\",DATUM[\""); add_srs_wkt (p, 1, "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, "R[\"central_meridian\",105],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"28348\"]]"); p = add_epsg_def (filter, first, last, 28349, "epsg", 28349, "GDA94 / MGA zone 49"); add_proj4text (p, 0, "+proj=utm +zone=49 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDA94 / MGA zone 49\",GEOGCS[\"GDA94\",DATUM[\""); add_srs_wkt (p, 1, "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, "R[\"central_meridian\",111],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"28349\"]]"); p = add_epsg_def (filter, first, last, 28350, "epsg", 28350, "GDA94 / MGA zone 50"); add_proj4text (p, 0, "+proj=utm +zone=50 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDA94 / MGA zone 50\",GEOGCS[\"GDA94\",DATUM[\""); add_srs_wkt (p, 1, "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, "R[\"central_meridian\",117],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"28350\"]]"); p = add_epsg_def (filter, first, last, 28351, "epsg", 28351, "GDA94 / MGA zone 51"); add_proj4text (p, 0, "+proj=utm +zone=51 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDA94 / MGA zone 51\",GEOGCS[\"GDA94\",DATUM[\""); add_srs_wkt (p, 1, "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, "R[\"central_meridian\",123],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"28351\"]]"); p = add_epsg_def (filter, first, last, 28352, "epsg", 28352, "GDA94 / MGA zone 52"); add_proj4text (p, 0, "+proj=utm +zone=52 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDA94 / MGA zone 52\",GEOGCS[\"GDA94\",DATUM[\""); add_srs_wkt (p, 1, "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, "R[\"central_meridian\",129],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"28352\"]]"); p = add_epsg_def (filter, first, last, 28353, "epsg", 28353, "GDA94 / MGA zone 53"); add_proj4text (p, 0, "+proj=utm +zone=53 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDA94 / MGA zone 53\",GEOGCS[\"GDA94\",DATUM[\""); add_srs_wkt (p, 1, "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, "R[\"central_meridian\",135],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"28353\"]]"); p = add_epsg_def (filter, first, last, 28354, "epsg", 28354, "GDA94 / MGA zone 54"); add_proj4text (p, 0, "+proj=utm +zone=54 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDA94 / MGA zone 54\",GEOGCS[\"GDA94\",DATUM[\""); add_srs_wkt (p, 1, "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, "R[\"central_meridian\",141],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"28354\"]]"); p = add_epsg_def (filter, first, last, 28355, "epsg", 28355, "GDA94 / MGA zone 55"); add_proj4text (p, 0, "+proj=utm +zone=55 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDA94 / MGA zone 55\",GEOGCS[\"GDA94\",DATUM[\""); add_srs_wkt (p, 1, "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, "R[\"central_meridian\",147],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"28355\"]]"); p = add_epsg_def (filter, first, last, 28356, "epsg", 28356, "GDA94 / MGA zone 56"); add_proj4text (p, 0, "+proj=utm +zone=56 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDA94 / MGA zone 56\",GEOGCS[\"GDA94\",DATUM[\""); add_srs_wkt (p, 1, "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, "R[\"central_meridian\",153],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"28356\"]]"); p = add_epsg_def (filter, first, last, 28357, "epsg", 28357, "GDA94 / MGA zone 57"); add_proj4text (p, 0, "+proj=utm +zone=57 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDA94 / MGA zone 57\",GEOGCS[\"GDA94\",DATUM[\""); add_srs_wkt (p, 1, "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, "R[\"central_meridian\",159],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"28357\"]]"); p = add_epsg_def (filter, first, last, 28358, "epsg", 28358, "GDA94 / MGA zone 58"); add_proj4text (p, 0, "+proj=utm +zone=58 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDA94 / MGA zone 58\",GEOGCS[\"GDA94\",DATUM[\""); add_srs_wkt (p, 1, "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, "R[\"central_meridian\",165],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"28358\"]]"); p = add_epsg_def (filter, first, last, 28402, "epsg", 28402, "Pulkovo 1942 / Gauss-Kruger zone 2 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=2500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 2 (deprecated)"); add_srs_wkt (p, 1, "\",GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHERO"); add_srs_wkt (p, 2, "ID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.1"); add_srs_wkt (p, 4, "2],AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 6, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 8, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 9, "\",9],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",2500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); add_srs_wkt (p, 12, "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28402\"]]"); p = add_epsg_def (filter, first, last, 28403, "epsg", 28403, "Pulkovo 1942 / Gauss-Kruger zone 3 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=3500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 3 (deprecated)"); add_srs_wkt (p, 1, "\",GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHERO"); add_srs_wkt (p, 2, "ID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.1"); add_srs_wkt (p, 4, "2],AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 6, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 8, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 9, "\",15],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_e"); add_srs_wkt (p, 10, "asting\",3500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); add_srs_wkt (p, 12, "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28403\"]]"); p = add_epsg_def (filter, first, last, 28404, "epsg", 28404, "Pulkovo 1942 / Gauss-Kruger zone 4"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=4500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 4\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",21],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",450"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"28404\"]]"); p = add_epsg_def (filter, first, last, 28405, "epsg", 28405, "Pulkovo 1942 / Gauss-Kruger zone 5"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=5500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 5\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",27],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",550"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"28405\"]]"); p = add_epsg_def (filter, first, last, 28406, "epsg", 28406, "Pulkovo 1942 / Gauss-Kruger zone 6"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=6500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 6\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",33],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",650"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"28406\"]]"); p = add_epsg_def (filter, first, last, 28407, "epsg", 28407, "Pulkovo 1942 / Gauss-Kruger zone 7"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=7500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 7\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",39],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",750"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"28407\"]]"); p = add_epsg_def (filter, first, last, 28408, "epsg", 28408, "Pulkovo 1942 / Gauss-Kruger zone 8"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=8500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 8\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",45],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",850"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"28408\"]]"); p = add_epsg_def (filter, first, last, 28409, "epsg", 28409, "Pulkovo 1942 / Gauss-Kruger zone 9"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=9500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 9\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",51],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",950"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"28409\"]]"); p = add_epsg_def (filter, first, last, 28410, "epsg", 28410, "Pulkovo 1942 / Gauss-Kruger zone 10"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=10500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 10\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",57],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",10"); add_srs_wkt (p, 10, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "Y\",EAST],AUTHORITY[\"EPSG\",\"28410\"]]"); p = add_epsg_def (filter, first, last, 28411, "epsg", 28411, "Pulkovo 1942 / Gauss-Kruger zone 11"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=11500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 11\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",63],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",11"); add_srs_wkt (p, 10, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "Y\",EAST],AUTHORITY[\"EPSG\",\"28411\"]]"); p = add_epsg_def (filter, first, last, 28412, "epsg", 28412, "Pulkovo 1942 / Gauss-Kruger zone 12"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=12500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 12\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",69],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",12"); add_srs_wkt (p, 10, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "Y\",EAST],AUTHORITY[\"EPSG\",\"28412\"]]"); p = add_epsg_def (filter, first, last, 28413, "epsg", 28413, "Pulkovo 1942 / Gauss-Kruger zone 13"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=13500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 13\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",75],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",13"); add_srs_wkt (p, 10, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "Y\",EAST],AUTHORITY[\"EPSG\",\"28413\"]]"); p = add_epsg_def (filter, first, last, 28414, "epsg", 28414, "Pulkovo 1942 / Gauss-Kruger zone 14"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=14500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 14\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",81],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",14"); add_srs_wkt (p, 10, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "Y\",EAST],AUTHORITY[\"EPSG\",\"28414\"]]"); p = add_epsg_def (filter, first, last, 28415, "epsg", 28415, "Pulkovo 1942 / Gauss-Kruger zone 15"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=15500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 15\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",87],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",15"); add_srs_wkt (p, 10, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "Y\",EAST],AUTHORITY[\"EPSG\",\"28415\"]]"); p = add_epsg_def (filter, first, last, 28416, "epsg", 28416, "Pulkovo 1942 / Gauss-Kruger zone 16"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=16500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 16\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",93],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",16"); add_srs_wkt (p, 10, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "Y\",EAST],AUTHORITY[\"EPSG\",\"28416\"]]"); p = add_epsg_def (filter, first, last, 28417, "epsg", 28417, "Pulkovo 1942 / Gauss-Kruger zone 17"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=17500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 17\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",99],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",17"); add_srs_wkt (p, 10, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "Y\",EAST],AUTHORITY[\"EPSG\",\"28417\"]]"); p = add_epsg_def (filter, first, last, 28418, "epsg", 28418, "Pulkovo 1942 / Gauss-Kruger zone 18"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=18500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); add_proj4text (p, 2, ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 18\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",105],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",1"); add_srs_wkt (p, 10, "8500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "Y\",EAST],AUTHORITY[\"EPSG\",\"28418\"]]"); p = add_epsg_def (filter, first, last, 28419, "epsg", 28419, "Pulkovo 1942 / Gauss-Kruger zone 19"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=19500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); add_proj4text (p, 2, ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 19\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",111],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",1"); add_srs_wkt (p, 10, "9500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "Y\",EAST],AUTHORITY[\"EPSG\",\"28419\"]]"); p = add_epsg_def (filter, first, last, 28420, "epsg", 28420, "Pulkovo 1942 / Gauss-Kruger zone 20"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=20500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); add_proj4text (p, 2, ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 20\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",117],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",2"); add_srs_wkt (p, 10, "0500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "Y\",EAST],AUTHORITY[\"EPSG\",\"28420\"]]"); p = add_epsg_def (filter, first, last, 28421, "epsg", 28421, "Pulkovo 1942 / Gauss-Kruger zone 21"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=21500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); add_proj4text (p, 2, ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 21\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",123],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",2"); add_srs_wkt (p, 10, "1500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "Y\",EAST],AUTHORITY[\"EPSG\",\"28421\"]]"); p = add_epsg_def (filter, first, last, 28422, "epsg", 28422, "Pulkovo 1942 / Gauss-Kruger zone 22"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=22500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); add_proj4text (p, 2, ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 22\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",129],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",2"); add_srs_wkt (p, 10, "2500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "Y\",EAST],AUTHORITY[\"EPSG\",\"28422\"]]"); p = add_epsg_def (filter, first, last, 28423, "epsg", 28423, "Pulkovo 1942 / Gauss-Kruger zone 23"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=23500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); add_proj4text (p, 2, ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 23\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",135],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",2"); add_srs_wkt (p, 10, "3500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "Y\",EAST],AUTHORITY[\"EPSG\",\"28423\"]]"); p = add_epsg_def (filter, first, last, 28424, "epsg", 28424, "Pulkovo 1942 / Gauss-Kruger zone 24"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=24500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); add_proj4text (p, 2, ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 24\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",141],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",2"); add_srs_wkt (p, 10, "4500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "Y\",EAST],AUTHORITY[\"EPSG\",\"28424\"]]"); p = add_epsg_def (filter, first, last, 28425, "epsg", 28425, "Pulkovo 1942 / Gauss-Kruger zone 25"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=25500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); add_proj4text (p, 2, ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 25\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",147],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",2"); add_srs_wkt (p, 10, "5500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "Y\",EAST],AUTHORITY[\"EPSG\",\"28425\"]]"); p = add_epsg_def (filter, first, last, 28426, "epsg", 28426, "Pulkovo 1942 / Gauss-Kruger zone 26"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=26500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); add_proj4text (p, 2, ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 26\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",153],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",2"); add_srs_wkt (p, 10, "6500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "Y\",EAST],AUTHORITY[\"EPSG\",\"28426\"]]"); p = add_epsg_def (filter, first, last, 28427, "epsg", 28427, "Pulkovo 1942 / Gauss-Kruger zone 27"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=27500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); add_proj4text (p, 2, ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 27\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",159],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",2"); add_srs_wkt (p, 10, "7500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "Y\",EAST],AUTHORITY[\"EPSG\",\"28427\"]]"); p = add_epsg_def (filter, first, last, 28428, "epsg", 28428, "Pulkovo 1942 / Gauss-Kruger zone 28"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=28500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); add_proj4text (p, 2, ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 28\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",165],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",2"); add_srs_wkt (p, 10, "8500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "Y\",EAST],AUTHORITY[\"EPSG\",\"28428\"]]"); p = add_epsg_def (filter, first, last, 28429, "epsg", 28429, "Pulkovo 1942 / Gauss-Kruger zone 29"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=29500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); add_proj4text (p, 2, ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 29\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",171],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",2"); add_srs_wkt (p, 10, "9500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "Y\",EAST],AUTHORITY[\"EPSG\",\"28429\"]]"); p = add_epsg_def (filter, first, last, 28430, "epsg", 28430, "Pulkovo 1942 / Gauss-Kruger zone 30"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=30500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); add_proj4text (p, 2, ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 30\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",177],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",3"); add_srs_wkt (p, 10, "0500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "Y\",EAST],AUTHORITY[\"EPSG\",\"28430\"]]"); p = add_epsg_def (filter, first, last, 28431, "epsg", 28431, "Pulkovo 1942 / Gauss-Kruger zone 31"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=31500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.8"); add_proj4text (p, 2, "2,-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 31\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",-177],PA"); add_srs_wkt (p, 9, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 10, "31500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 12, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"28431\"]]"); p = add_epsg_def (filter, first, last, 28432, "epsg", 28432, "Pulkovo 1942 / Gauss-Kruger zone 32"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=32500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.8"); add_proj4text (p, 2, "2,-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 32\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",-171],PA"); add_srs_wkt (p, 9, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 10, "32500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 12, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"28432\"]]"); p = add_epsg_def (filter, first, last, 28462, "epsg", 28462, "Pulkovo 1942 / Gauss-Kruger 2N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=500000 +y_0=0 +e"); add_proj4text (p, 1, "llps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 2N (deprecated)\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",9"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28462\"]]"); } #endif /* full EPSG initialization enabled/disabled */ libspatialite-4.1.1/src/srsinit/epsg_inlined_18.c0000664000175000017500000036323212163502133016671 00000000000000/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_18 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def (filter, first, last, 3890, "epsg", 3890, "IGRS / UTM zone 37N"); add_proj4text (p, 0, "+proj=utm +zone=37 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGRS / UTM zone 37N\",GEOGCS[\"IGRS\",DATUM[\"I"); add_srs_wkt (p, 1, "raqi_Geospatial_Reference_System\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1029\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"3889\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 8, "\"central_meridian\",39],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 9, "96],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 11, "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"3890\"]]"); p = add_epsg_def (filter, first, last, 3891, "epsg", 3891, "IGRS / UTM zone 38N"); add_proj4text (p, 0, "+proj=utm +zone=38 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGRS / UTM zone 38N\",GEOGCS[\"IGRS\",DATUM[\"I"); add_srs_wkt (p, 1, "raqi_Geospatial_Reference_System\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1029\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"3889\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 8, "\"central_meridian\",45],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 9, "96],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 11, "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"3891\"]]"); p = add_epsg_def (filter, first, last, 3892, "epsg", 3892, "IGRS / UTM zone 39N"); add_proj4text (p, 0, "+proj=utm +zone=39 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGRS / UTM zone 39N\",GEOGCS[\"IGRS\",DATUM[\"I"); add_srs_wkt (p, 1, "raqi_Geospatial_Reference_System\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1029\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"3889\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 8, "\"central_meridian\",51],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 9, "96],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 11, "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"3892\"]]"); p = add_epsg_def (filter, first, last, 3893, "epsg", 3893, "ED50 / Iraq National Grid"); add_proj4text (p, 0, "+proj=tmerc +lat_0=29.02626833333333 +lon_0=46.5 +k=0.99"); add_proj4text (p, 1, "94 +x_0=800000 +y_0=0 +ellps=intl +towgs84=-87,-98,-121,"); add_proj4text (p, 2, "0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / Iraq National Grid\",GEOGCS[\"ED50\",DAT"); add_srs_wkt (p, 1, "UM[\"European_Datum_1950\",SPHEROID[\"International 1924"); add_srs_wkt (p, 2, "\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87"); add_srs_wkt (p, 3, ",-98,-121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 7, "cator\"],PARAMETER[\"latitude_of_origin\",29.02626833333"); add_srs_wkt (p, 8, "333],PARAMETER[\"central_meridian\",46.5],PARAMETER[\"sc"); add_srs_wkt (p, 9, "ale_factor\",0.9994],PARAMETER[\"false_easting\",800000]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 11, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 12, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"3893\"]]"); p = add_epsg_def (filter, first, last, 3906, "epsg", 3906, "MGI 1901"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +towgs84=682,-203,480,0,0,0,"); add_proj4text (p, 1, "0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"MGI 1901\",DATUM[\"MGI_1901\",SPHEROID[\"Bessel"); add_srs_wkt (p, 1, " 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"700"); add_srs_wkt (p, 2, "4\"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "1031\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 4, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"3906\"]]"); p = add_epsg_def (filter, first, last, 3907, "epsg", 3907, "MGI 1901 / Balkans zone 5"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9999 +x_0=5500000 +y"); add_proj4text (p, 1, "_0=0 +ellps=bessel +towgs84=682,-203,480,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI 1901 / Balkans zone 5\",GEOGCS[\"MGI 1901\""); add_srs_wkt (p, 1, ",DATUM[\"MGI_1901\",SPHEROID[\"Bessel 1841\",6377397.155"); add_srs_wkt (p, 2, ",299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[682,-"); add_srs_wkt (p, 3, "203,480,0,0,0,0],AUTHORITY[\"EPSG\",\"1031\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"3906\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, "entral_meridian\",15],PARAMETER[\"scale_factor\",0.9999]"); add_srs_wkt (p, 9, ",PARAMETER[\"false_easting\",5500000],PARAMETER[\"false_"); add_srs_wkt (p, 10, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 11, "\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"3907\"]]"); p = add_epsg_def (filter, first, last, 3908, "epsg", 3908, "MGI 1901 / Balkans zone 6"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=18 +k=0.9999 +x_0=6500000 +y"); add_proj4text (p, 1, "_0=0 +ellps=bessel +towgs84=682,-203,480,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI 1901 / Balkans zone 6\",GEOGCS[\"MGI 1901\""); add_srs_wkt (p, 1, ",DATUM[\"MGI_1901\",SPHEROID[\"Bessel 1841\",6377397.155"); add_srs_wkt (p, 2, ",299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[682,-"); add_srs_wkt (p, 3, "203,480,0,0,0,0],AUTHORITY[\"EPSG\",\"1031\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"3906\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, "entral_meridian\",18],PARAMETER[\"scale_factor\",0.9999]"); add_srs_wkt (p, 9, ",PARAMETER[\"false_easting\",6500000],PARAMETER[\"false_"); add_srs_wkt (p, 10, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 11, "\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"3908\"]]"); p = add_epsg_def (filter, first, last, 3909, "epsg", 3909, "MGI 1901 / Balkans zone 7"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=0.9999 +x_0=7500000 +y"); add_proj4text (p, 1, "_0=0 +ellps=bessel +towgs84=682,-203,480,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI 1901 / Balkans zone 7\",GEOGCS[\"MGI 1901\""); add_srs_wkt (p, 1, ",DATUM[\"MGI_1901\",SPHEROID[\"Bessel 1841\",6377397.155"); add_srs_wkt (p, 2, ",299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[682,-"); add_srs_wkt (p, 3, "203,480,0,0,0,0],AUTHORITY[\"EPSG\",\"1031\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"3906\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, "entral_meridian\",21],PARAMETER[\"scale_factor\",0.9999]"); add_srs_wkt (p, 9, ",PARAMETER[\"false_easting\",7500000],PARAMETER[\"false_"); add_srs_wkt (p, 10, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 11, "\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"3909\"]]"); p = add_epsg_def (filter, first, last, 3910, "epsg", 3910, "MGI 1901 / Balkans zone 8"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9999 +x_0=8500000 +y"); add_proj4text (p, 1, "_0=0 +ellps=bessel +towgs84=682,-203,480,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI 1901 / Balkans zone 8\",GEOGCS[\"MGI 1901\""); add_srs_wkt (p, 1, ",DATUM[\"MGI_1901\",SPHEROID[\"Bessel 1841\",6377397.155"); add_srs_wkt (p, 2, ",299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[682,-"); add_srs_wkt (p, 3, "203,480,0,0,0,0],AUTHORITY[\"EPSG\",\"1031\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"3906\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, "entral_meridian\",24],PARAMETER[\"scale_factor\",0.9999]"); add_srs_wkt (p, 9, ",PARAMETER[\"false_easting\",8500000],PARAMETER[\"false_"); add_srs_wkt (p, 10, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 11, "\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"3910\"]]"); p = add_epsg_def (filter, first, last, 3911, "epsg", 3911, "MGI 1901 / Slovenia Grid"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=0 +ellps=bessel +towgs84=682,-203,480,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI 1901 / Slovenia Grid\",GEOGCS[\"MGI 1901\","); add_srs_wkt (p, 1, "DATUM[\"MGI_1901\",SPHEROID[\"Bessel 1841\",6377397.155,"); add_srs_wkt (p, 2, "299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[682,-2"); add_srs_wkt (p, 3, "03,480,0,0,0,0],AUTHORITY[\"EPSG\",\"1031\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"3906\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 7, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 8, "ntral_meridian\",15],PARAMETER[\"scale_factor\",0.9999],"); add_srs_wkt (p, 9, "PARAMETER[\"false_easting\",500000],PARAMETER[\"false_no"); add_srs_wkt (p, 10, "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 11, "]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"3911\"]]"); p = add_epsg_def (filter, first, last, 3912, "epsg", 3912, "MGI 1901 / Slovene National Grid"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=-5000000 +ellps=bessel +towgs84=682,-203,480,0,0,0,0 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI 1901 / Slovene National Grid\",GEOGCS[\"MGI"); add_srs_wkt (p, 1, " 1901\",DATUM[\"MGI_1901\",SPHEROID[\"Bessel 1841\",6377"); add_srs_wkt (p, 2, "397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS8"); add_srs_wkt (p, 3, "4[682,-203,480,0,0,0,0],AUTHORITY[\"EPSG\",\"1031\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AUTHORITY[\"EPSG\",\"3906\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",15],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9999],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",-5000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"Y\",EAST],AXIS[\"X\",NORTH],AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"3912\"]]"); p = add_epsg_def (filter, first, last, 3920, "epsg", 3920, "Puerto Rico / UTM zone 20N"); add_proj4text (p, 0, "+proj=utm +zone=20 +ellps=clrk66 +towgs84=11,72,-101,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Puerto Rico / UTM zone 20N\",GEOGCS[\"Puerto Ri"); add_srs_wkt (p, 1, "co\",DATUM[\"Puerto_Rico\",SPHEROID[\"Clarke 1866\",6378"); add_srs_wkt (p, 2, "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],TO"); add_srs_wkt (p, 3, "WGS84[11,72,-101,0,0,0,0],AUTHORITY[\"EPSG\",\"6139\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4139\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",-63],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); add_srs_wkt (p, 12, "ORTH],AUTHORITY[\"EPSG\",\"3920\"]]"); p = add_epsg_def (filter, first, last, 3942, "epsg", 3942, "RGF93 / CC42"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.25 +lat_2=42.75 +lat_0=42 +lon_0=3 +"); add_proj4text (p, 1, "x_0=1700000 +y_0=1200000 +ellps=GRS80 +towgs84=0,0,0,0,0"); add_proj4text (p, 2, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGF93 / CC42\",GEOGCS[\"RGF93\",DATUM[\"Reseau_"); add_srs_wkt (p, 1, "Geodesique_Francais_1993\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6171\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4171\"]],PROJECTION[\"Lambert_Conformal_Con"); add_srs_wkt (p, 7, "ic_2SP\"],PARAMETER[\"standard_parallel_1\",41.25],PARAM"); add_srs_wkt (p, 8, "ETER[\"standard_parallel_2\",42.75],PARAMETER[\"latitude"); add_srs_wkt (p, 9, "_of_origin\",42],PARAMETER[\"central_meridian\",3],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_easting\",1700000],PARAMETER[\"false_northi"); add_srs_wkt (p, 11, "ng\",1200000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"3942\"]]"); p = add_epsg_def (filter, first, last, 3943, "epsg", 3943, "RGF93 / CC43"); add_proj4text (p, 0, "+proj=lcc +lat_1=42.25 +lat_2=43.75 +lat_0=43 +lon_0=3 +"); add_proj4text (p, 1, "x_0=1700000 +y_0=2200000 +ellps=GRS80 +towgs84=0,0,0,0,0"); add_proj4text (p, 2, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGF93 / CC43\",GEOGCS[\"RGF93\",DATUM[\"Reseau_"); add_srs_wkt (p, 1, "Geodesique_Francais_1993\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6171\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4171\"]],PROJECTION[\"Lambert_Conformal_Con"); add_srs_wkt (p, 7, "ic_2SP\"],PARAMETER[\"standard_parallel_1\",42.25],PARAM"); add_srs_wkt (p, 8, "ETER[\"standard_parallel_2\",43.75],PARAMETER[\"latitude"); add_srs_wkt (p, 9, "_of_origin\",43],PARAMETER[\"central_meridian\",3],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_easting\",1700000],PARAMETER[\"false_northi"); add_srs_wkt (p, 11, "ng\",2200000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"3943\"]]"); p = add_epsg_def (filter, first, last, 3944, "epsg", 3944, "RGF93 / CC44"); add_proj4text (p, 0, "+proj=lcc +lat_1=43.25 +lat_2=44.75 +lat_0=44 +lon_0=3 +"); add_proj4text (p, 1, "x_0=1700000 +y_0=3200000 +ellps=GRS80 +towgs84=0,0,0,0,0"); add_proj4text (p, 2, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGF93 / CC44\",GEOGCS[\"RGF93\",DATUM[\"Reseau_"); add_srs_wkt (p, 1, "Geodesique_Francais_1993\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6171\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4171\"]],PROJECTION[\"Lambert_Conformal_Con"); add_srs_wkt (p, 7, "ic_2SP\"],PARAMETER[\"standard_parallel_1\",43.25],PARAM"); add_srs_wkt (p, 8, "ETER[\"standard_parallel_2\",44.75],PARAMETER[\"latitude"); add_srs_wkt (p, 9, "_of_origin\",44],PARAMETER[\"central_meridian\",3],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_easting\",1700000],PARAMETER[\"false_northi"); add_srs_wkt (p, 11, "ng\",3200000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"3944\"]]"); p = add_epsg_def (filter, first, last, 3945, "epsg", 3945, "RGF93 / CC45"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.25 +lat_2=45.75 +lat_0=45 +lon_0=3 +"); add_proj4text (p, 1, "x_0=1700000 +y_0=4200000 +ellps=GRS80 +towgs84=0,0,0,0,0"); add_proj4text (p, 2, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGF93 / CC45\",GEOGCS[\"RGF93\",DATUM[\"Reseau_"); add_srs_wkt (p, 1, "Geodesique_Francais_1993\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6171\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4171\"]],PROJECTION[\"Lambert_Conformal_Con"); add_srs_wkt (p, 7, "ic_2SP\"],PARAMETER[\"standard_parallel_1\",44.25],PARAM"); add_srs_wkt (p, 8, "ETER[\"standard_parallel_2\",45.75],PARAMETER[\"latitude"); add_srs_wkt (p, 9, "_of_origin\",45],PARAMETER[\"central_meridian\",3],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_easting\",1700000],PARAMETER[\"false_northi"); add_srs_wkt (p, 11, "ng\",4200000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"3945\"]]"); p = add_epsg_def (filter, first, last, 3946, "epsg", 3946, "RGF93 / CC46"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.25 +lat_2=46.75 +lat_0=46 +lon_0=3 +"); add_proj4text (p, 1, "x_0=1700000 +y_0=5200000 +ellps=GRS80 +towgs84=0,0,0,0,0"); add_proj4text (p, 2, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGF93 / CC46\",GEOGCS[\"RGF93\",DATUM[\"Reseau_"); add_srs_wkt (p, 1, "Geodesique_Francais_1993\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6171\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4171\"]],PROJECTION[\"Lambert_Conformal_Con"); add_srs_wkt (p, 7, "ic_2SP\"],PARAMETER[\"standard_parallel_1\",45.25],PARAM"); add_srs_wkt (p, 8, "ETER[\"standard_parallel_2\",46.75],PARAMETER[\"latitude"); add_srs_wkt (p, 9, "_of_origin\",46],PARAMETER[\"central_meridian\",3],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_easting\",1700000],PARAMETER[\"false_northi"); add_srs_wkt (p, 11, "ng\",5200000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"3946\"]]"); p = add_epsg_def (filter, first, last, 3947, "epsg", 3947, "RGF93 / CC47"); add_proj4text (p, 0, "+proj=lcc +lat_1=46.25 +lat_2=47.75 +lat_0=47 +lon_0=3 +"); add_proj4text (p, 1, "x_0=1700000 +y_0=6200000 +ellps=GRS80 +towgs84=0,0,0,0,0"); add_proj4text (p, 2, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGF93 / CC47\",GEOGCS[\"RGF93\",DATUM[\"Reseau_"); add_srs_wkt (p, 1, "Geodesique_Francais_1993\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6171\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4171\"]],PROJECTION[\"Lambert_Conformal_Con"); add_srs_wkt (p, 7, "ic_2SP\"],PARAMETER[\"standard_parallel_1\",46.25],PARAM"); add_srs_wkt (p, 8, "ETER[\"standard_parallel_2\",47.75],PARAMETER[\"latitude"); add_srs_wkt (p, 9, "_of_origin\",47],PARAMETER[\"central_meridian\",3],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_easting\",1700000],PARAMETER[\"false_northi"); add_srs_wkt (p, 11, "ng\",6200000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"3947\"]]"); p = add_epsg_def (filter, first, last, 3948, "epsg", 3948, "RGF93 / CC48"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.25 +lat_2=48.75 +lat_0=48 +lon_0=3 +"); add_proj4text (p, 1, "x_0=1700000 +y_0=7200000 +ellps=GRS80 +towgs84=0,0,0,0,0"); add_proj4text (p, 2, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGF93 / CC48\",GEOGCS[\"RGF93\",DATUM[\"Reseau_"); add_srs_wkt (p, 1, "Geodesique_Francais_1993\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6171\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4171\"]],PROJECTION[\"Lambert_Conformal_Con"); add_srs_wkt (p, 7, "ic_2SP\"],PARAMETER[\"standard_parallel_1\",47.25],PARAM"); add_srs_wkt (p, 8, "ETER[\"standard_parallel_2\",48.75],PARAMETER[\"latitude"); add_srs_wkt (p, 9, "_of_origin\",48],PARAMETER[\"central_meridian\",3],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_easting\",1700000],PARAMETER[\"false_northi"); add_srs_wkt (p, 11, "ng\",7200000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"3948\"]]"); p = add_epsg_def (filter, first, last, 3949, "epsg", 3949, "RGF93 / CC49"); add_proj4text (p, 0, "+proj=lcc +lat_1=48.25 +lat_2=49.75 +lat_0=49 +lon_0=3 +"); add_proj4text (p, 1, "x_0=1700000 +y_0=8200000 +ellps=GRS80 +towgs84=0,0,0,0,0"); add_proj4text (p, 2, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGF93 / CC49\",GEOGCS[\"RGF93\",DATUM[\"Reseau_"); add_srs_wkt (p, 1, "Geodesique_Francais_1993\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6171\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4171\"]],PROJECTION[\"Lambert_Conformal_Con"); add_srs_wkt (p, 7, "ic_2SP\"],PARAMETER[\"standard_parallel_1\",48.25],PARAM"); add_srs_wkt (p, 8, "ETER[\"standard_parallel_2\",49.75],PARAMETER[\"latitude"); add_srs_wkt (p, 9, "_of_origin\",49],PARAMETER[\"central_meridian\",3],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_easting\",1700000],PARAMETER[\"false_northi"); add_srs_wkt (p, 11, "ng\",8200000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"3949\"]]"); p = add_epsg_def (filter, first, last, 3950, "epsg", 3950, "RGF93 / CC50"); add_proj4text (p, 0, "+proj=lcc +lat_1=49.25 +lat_2=50.75 +lat_0=50 +lon_0=3 +"); add_proj4text (p, 1, "x_0=1700000 +y_0=9200000 +ellps=GRS80 +towgs84=0,0,0,0,0"); add_proj4text (p, 2, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGF93 / CC50\",GEOGCS[\"RGF93\",DATUM[\"Reseau_"); add_srs_wkt (p, 1, "Geodesique_Francais_1993\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6171\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4171\"]],PROJECTION[\"Lambert_Conformal_Con"); add_srs_wkt (p, 7, "ic_2SP\"],PARAMETER[\"standard_parallel_1\",49.25],PARAM"); add_srs_wkt (p, 8, "ETER[\"standard_parallel_2\",50.75],PARAMETER[\"latitude"); add_srs_wkt (p, 9, "_of_origin\",50],PARAMETER[\"central_meridian\",3],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_easting\",1700000],PARAMETER[\"false_northi"); add_srs_wkt (p, 11, "ng\",9200000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"3950\"]]"); p = add_epsg_def (filter, first, last, 3968, "epsg", 3968, "NAD83 / Virginia Lambert"); add_proj4text (p, 0, "+proj=lcc +lat_1=37 +lat_2=39.5 +lat_0=36 +lon_0=-79.5 +"); add_proj4text (p, 1, "x_0=0 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Virginia Lambert\",GEOGCS[\"NAD83\",DAT"); add_srs_wkt (p, 1, "UM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6"); add_srs_wkt (p, 2, "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS"); add_srs_wkt (p, 3, "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 7, "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",37],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_2\",39.5],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",36],PARAMETER[\"central_meridian\",-79.5],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northin"); add_srs_wkt (p, 11, "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 12, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"39"); add_srs_wkt (p, 13, "68\"]]"); p = add_epsg_def (filter, first, last, 3969, "epsg", 3969, "NAD83(HARN) / Virginia Lambert"); add_proj4text (p, 0, "+proj=lcc +lat_1=37 +lat_2=39.5 +lat_0=36 +lon_0=-79.5 +"); add_proj4text (p, 1, "x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Virginia Lambert\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 8, "ard_parallel_1\",37],PARAMETER[\"standard_parallel_2\",3"); add_srs_wkt (p, 9, "9.5],PARAMETER[\"latitude_of_origin\",36],PARAMETER[\"ce"); add_srs_wkt (p, 10, "ntral_meridian\",-79.5],PARAMETER[\"false_easting\",0],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"3969\"]]"); p = add_epsg_def (filter, first, last, 3970, "epsg", 3970, "NAD83(NSRS2007) / Virginia Lambert"); add_proj4text (p, 0, "+proj=lcc +lat_1=37 +lat_2=39.5 +lat_0=36 +lon_0=-79.5 +"); add_proj4text (p, 1, "x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Virginia Lambert\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referenc"); add_srs_wkt (p, 2, "e_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],P"); add_srs_wkt (p, 8, "ARAMETER[\"standard_parallel_1\",37],PARAMETER[\"standar"); add_srs_wkt (p, 9, "d_parallel_2\",39.5],PARAMETER[\"latitude_of_origin\",36"); add_srs_wkt (p, 10, "],PARAMETER[\"central_meridian\",-79.5],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 12, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A"); add_srs_wkt (p, 13, "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3970\"]]"); p = add_epsg_def (filter, first, last, 3973, "epsg", 3973, "WGS 84 / NSIDC EASE-Grid North"); add_proj4text (p, 0, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +datum=WGS84"); add_proj4text (p, 1, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / NSIDC EASE-Grid North\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI"); add_srs_wkt (p, 6, "ON[\"Lambert_Azimuthal_Equal_Area\"],PARAMETER[\"latitud"); add_srs_wkt (p, 7, "e_of_center\",90],PARAMETER[\"longitude_of_center\",0],P"); add_srs_wkt (p, 8, "ARAMETER[\"false_easting\",0],PARAMETER[\"false_northing"); add_srs_wkt (p, 9, "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 10, "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"397"); add_srs_wkt (p, 11, "3\"]]"); p = add_epsg_def (filter, first, last, 3974, "epsg", 3974, "WGS 84 / NSIDC EASE-Grid South"); add_proj4text (p, 0, "+proj=laea +lat_0=-90 +lon_0=0 +x_0=0 +y_0=0 +datum=WGS8"); add_proj4text (p, 1, "4 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / NSIDC EASE-Grid South\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI"); add_srs_wkt (p, 6, "ON[\"Lambert_Azimuthal_Equal_Area\"],PARAMETER[\"latitud"); add_srs_wkt (p, 7, "e_of_center\",-90],PARAMETER[\"longitude_of_center\",0],"); add_srs_wkt (p, 8, "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northin"); add_srs_wkt (p, 9, "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 10, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"39"); add_srs_wkt (p, 11, "74\"]]"); p = add_epsg_def (filter, first, last, 3975, "epsg", 3975, "WGS 84 / NSIDC EASE-Grid Global"); add_proj4text (p, 0, "+proj=cea +lon_0=0 +lat_ts=30 +x_0=0 +y_0=0 +datum=WGS84"); add_proj4text (p, 1, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / NSIDC EASE-Grid Global\",GEOGCS[\"WGS "); add_srs_wkt (p, 1, "84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298."); add_srs_wkt (p, 2, "257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJEC"); add_srs_wkt (p, 6, "TION[\"Cylindrical_Equal_Area\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 7, "rallel_1\",30],PARAMETER[\"central_meridian\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 9, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 10, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3975\"]]"); p = add_epsg_def (filter, first, last, 3976, "epsg", 3976, "WGS 84 / NSIDC Sea Ice Polar Stereographic South"); add_proj4text (p, 0, "+proj=stere +lat_0=-90 +lat_ts=-70 +lon_0=0 +k=1 +x_0=0 "); add_proj4text (p, 1, "+y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / NSIDC Sea Ice Polar Stereographic Sout"); add_srs_wkt (p, 1, "h\",GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS "); add_srs_wkt (p, 2, "84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4326\"]],PROJECTION[\"Polar_Stereographic\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",-70],PARAMETER[\"central_meridia"); add_srs_wkt (p, 8, "n\",0],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_e"); add_srs_wkt (p, 9, "asting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 10, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS"); add_srs_wkt (p, 11, "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3976\"]]"); p = add_epsg_def (filter, first, last, 3978, "epsg", 3978, "NAD83 / Canada Atlas Lambert"); add_proj4text (p, 0, "+proj=lcc +lat_1=49 +lat_2=77 +lat_0=49 +lon_0=-95 +x_0="); add_proj4text (p, 1, "0 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Canada Atlas Lambert\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 7, "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",49"); add_srs_wkt (p, 8, "],PARAMETER[\"standard_parallel_2\",77],PARAMETER[\"lati"); add_srs_wkt (p, 9, "tude_of_origin\",49],PARAMETER[\"central_meridian\",-95]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",0],PARAMETER[\"false_northi"); add_srs_wkt (p, 11, "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 12, "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"3978\"]]"); p = add_epsg_def (filter, first, last, 3979, "epsg", 3979, "NAD83(CSRS) / Canada Atlas Lambert"); add_proj4text (p, 0, "+proj=lcc +lat_1=49 +lat_2=77 +lat_0=49 +lon_0=-95 +x_0="); add_proj4text (p, 1, "0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +n"); add_proj4text (p, 2, "o_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / Canada Atlas Lambert\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHO"); add_srs_wkt (p, 3, "RITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORIT"); add_srs_wkt (p, 4, "Y[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 8, "standard_parallel_1\",49],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 9, "2\",77],PARAMETER[\"latitude_of_origin\",49],PARAMETER[\""); add_srs_wkt (p, 10, "central_meridian\",-95],PARAMETER[\"false_easting\",0],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 13, "hing\",NORTH],AUTHORITY[\"EPSG\",\"3979\"]]"); p = add_epsg_def (filter, first, last, 3985, "epsg", 3985, "Katanga 1955 / Katanga Lambert (deprecated)"); add_proj4text (p, 0, "+proj=lcc +lat_1=-6.5 +lat_2=-11.5 +lat_0=9 +lon_0=26 +x"); add_proj4text (p, 1, "_0=500000 +y_0=500000 +ellps=clrk66 +towgs84=-103.746,-9"); add_proj4text (p, 2, ".614,-255.95,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Katanga 1955 / Katanga Lambert (deprecated)\",G"); add_srs_wkt (p, 1, "EOGCS[\"Katanga 1955\",DATUM[\"Katanga_1955\",SPHEROID[\""); add_srs_wkt (p, 2, "Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7008\"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6695\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4695\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],P"); add_srs_wkt (p, 8, "ARAMETER[\"standard_parallel_1\",-6.5],PARAMETER[\"stand"); add_srs_wkt (p, 9, "ard_parallel_2\",-11.5],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 10, ",9],PARAMETER[\"central_meridian\",26],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",500000],PARAMETER[\"false_northing\",500000],"); add_srs_wkt (p, 12, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 13, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3985\"]]"); p = add_epsg_def (filter, first, last, 3986, "epsg", 3986, "Katanga 1955 / Katanga Gauss zone A"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-9 +lon_0=30 +k=1 +x_0=200000 +y_0=50"); add_proj4text (p, 1, "0000 +ellps=clrk66 +towgs84=-103.746,-9.614,-255.95,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Katanga 1955 / Katanga Gauss zone A\",GEOGCS[\""); add_srs_wkt (p, 1, "Katanga 1955\",DATUM[\"Katanga_1955\",SPHEROID[\"Clarke "); add_srs_wkt (p, 2, "1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7008\"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0],AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"6695\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4695\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",-9],PARAMETER[\"central_meridian\",30],P"); add_srs_wkt (p, 9, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, ",200000],PARAMETER[\"false_northing\",500000],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 12, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3986\"]]"); p = add_epsg_def (filter, first, last, 3987, "epsg", 3987, "Katanga 1955 / Katanga Gauss zone B"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-9 +lon_0=28 +k=1 +x_0=200000 +y_0=50"); add_proj4text (p, 1, "0000 +ellps=clrk66 +towgs84=-103.746,-9.614,-255.95,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Katanga 1955 / Katanga Gauss zone B\",GEOGCS[\""); add_srs_wkt (p, 1, "Katanga 1955\",DATUM[\"Katanga_1955\",SPHEROID[\"Clarke "); add_srs_wkt (p, 2, "1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7008\"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0],AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"6695\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4695\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",-9],PARAMETER[\"central_meridian\",28],P"); add_srs_wkt (p, 9, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, ",200000],PARAMETER[\"false_northing\",500000],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 12, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3987\"]]"); p = add_epsg_def (filter, first, last, 3988, "epsg", 3988, "Katanga 1955 / Katanga Gauss zone C"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-9 +lon_0=26 +k=1 +x_0=200000 +y_0=50"); add_proj4text (p, 1, "0000 +ellps=clrk66 +towgs84=-103.746,-9.614,-255.95,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Katanga 1955 / Katanga Gauss zone C\",GEOGCS[\""); add_srs_wkt (p, 1, "Katanga 1955\",DATUM[\"Katanga_1955\",SPHEROID[\"Clarke "); add_srs_wkt (p, 2, "1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7008\"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0],AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"6695\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4695\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",-9],PARAMETER[\"central_meridian\",26],P"); add_srs_wkt (p, 9, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, ",200000],PARAMETER[\"false_northing\",500000],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 12, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3988\"]]"); p = add_epsg_def (filter, first, last, 3989, "epsg", 3989, "Katanga 1955 / Katanga Gauss zone D"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-9 +lon_0=24 +k=1 +x_0=200000 +y_0=50"); add_proj4text (p, 1, "0000 +ellps=clrk66 +towgs84=-103.746,-9.614,-255.95,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Katanga 1955 / Katanga Gauss zone D\",GEOGCS[\""); add_srs_wkt (p, 1, "Katanga 1955\",DATUM[\"Katanga_1955\",SPHEROID[\"Clarke "); add_srs_wkt (p, 2, "1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7008\"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0],AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"6695\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4695\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",-9],PARAMETER[\"central_meridian\",24],P"); add_srs_wkt (p, 9, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, ",200000],PARAMETER[\"false_northing\",500000],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 12, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3989\"]]"); p = add_epsg_def (filter, first, last, 3991, "epsg", 3991, "Puerto Rico State Plane CS of 1927"); add_proj4text (p, 0, "+proj=lcc +lat_1=18.43333333333333 +lat_2=18.03333333333"); add_proj4text (p, 1, "333 +lat_0=17.83333333333333 +lon_0=-66.43333333333334 +"); add_proj4text (p, 2, "x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +towgs84=11,7"); add_proj4text (p, 3, "2,-101,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Puerto Rico State Plane CS of 1927\",GEOGCS[\"P"); add_srs_wkt (p, 1, "uerto Rico\",DATUM[\"Puerto_Rico\",SPHEROID[\"Clarke 186"); add_srs_wkt (p, 2, "6\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"700"); add_srs_wkt (p, 3, "8\"]],TOWGS84[11,72,-101,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "139\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4139\"]],PROJECTION[\""); add_srs_wkt (p, 7, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 8, "llel_1\",18.43333333333333],PARAMETER[\"standard_paralle"); add_srs_wkt (p, 9, "l_2\",18.03333333333333],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 10, ",17.83333333333333],PARAMETER[\"central_meridian\",-66.4"); add_srs_wkt (p, 11, "3333333333334],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 12, "ETER[\"false_northing\",0],UNIT[\"US survey foot\",0.304"); add_srs_wkt (p, 13, "8006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",E"); add_srs_wkt (p, 14, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3991\"]]"); p = add_epsg_def (filter, first, last, 3992, "epsg", 3992, "Puerto Rico / St. Croix"); add_proj4text (p, 0, "+proj=lcc +lat_1=18.43333333333333 +lat_2=18.03333333333"); add_proj4text (p, 1, "333 +lat_0=17.83333333333333 +lon_0=-66.43333333333334 +"); add_proj4text (p, 2, "x_0=152400.3048006096 +y_0=30480.06096012192 +ellps=clrk"); add_proj4text (p, 3, "66 +towgs84=11,72,-101,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Puerto Rico / St. Croix\",GEOGCS[\"Puerto Rico\""); add_srs_wkt (p, 1, ",DATUM[\"Puerto_Rico\",SPHEROID[\"Clarke 1866\",6378206."); add_srs_wkt (p, 2, "4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS8"); add_srs_wkt (p, 3, "4[11,72,-101,0,0,0,0],AUTHORITY[\"EPSG\",\"6139\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4139\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 7, "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",18"); add_srs_wkt (p, 8, ".43333333333333],PARAMETER[\"standard_parallel_2\",18.03"); add_srs_wkt (p, 9, "333333333333],PARAMETER[\"latitude_of_origin\",17.833333"); add_srs_wkt (p, 10, "33333333],PARAMETER[\"central_meridian\",-66.43333333333"); add_srs_wkt (p, 11, "334],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 12, "se_northing\",100000],UNIT[\"US survey foot\",0.30480060"); add_srs_wkt (p, 13, "96012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],"); add_srs_wkt (p, 14, "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3992\"]]"); p = add_epsg_def (filter, first, last, 3994, "epsg", 3994, "WGS 84 / Mercator 41"); add_proj4text (p, 0, "+proj=merc +lon_0=100 +lat_ts=-41 +x_0=0 +y_0=0 +datum=W"); add_proj4text (p, 1, "GS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / Mercator 41\",GEOGCS[\"WGS 84\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,A"); add_srs_wkt (p, 2, "UTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Merc"); add_srs_wkt (p, 6, "ator_2SP\"],PARAMETER[\"standard_parallel_1\",-41],PARAM"); add_srs_wkt (p, 7, "ETER[\"central_meridian\",100],PARAMETER[\"false_easting"); add_srs_wkt (p, 8, "\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 9, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 10, ",NORTH],AUTHORITY[\"EPSG\",\"3994\"]]"); p = add_epsg_def (filter, first, last, 3995, "epsg", 3995, "WGS 84 / Arctic Polar Stereographic"); add_proj4text (p, 0, "+proj=stere +lat_0=90 +lat_ts=71 +lon_0=0 +k=1 +x_0=0 +y"); add_proj4text (p, 1, "_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / Arctic Polar Stereographic\",GEOGCS[\""); add_srs_wkt (p, 1, "WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,"); add_srs_wkt (p, 2, "298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PR"); add_srs_wkt (p, 6, "OJECTION[\"Polar_Stereographic\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 7, "f_origin\",71],PARAMETER[\"central_meridian\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",0],PA"); add_srs_wkt (p, 9, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 10, "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"3995\"]]"); p = add_epsg_def (filter, first, last, 3996, "epsg", 3996, "WGS 84 / IBCAO Polar Stereographic"); add_proj4text (p, 0, "+proj=stere +lat_0=90 +lat_ts=75 +lon_0=0 +k=1 +x_0=0 +y"); add_proj4text (p, 1, "_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / IBCAO Polar Stereographic\",GEOGCS[\"W"); add_srs_wkt (p, 1, "GS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,2"); add_srs_wkt (p, 2, "98.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PRO"); add_srs_wkt (p, 6, "JECTION[\"Polar_Stereographic\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 7, "_origin\",75],PARAMETER[\"central_meridian\",0],PARAMETE"); add_srs_wkt (p, 8, "R[\"scale_factor\",1],PARAMETER[\"false_easting\",0],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 10, "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"3996\"]]"); p = add_epsg_def (filter, first, last, 3997, "epsg", 3997, "WGS 84 / Dubai Local TM"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=55.33333333333334 +k=1 +x_0="); add_proj4text (p, 1, "500000 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / Dubai Local TM\",GEOGCS[\"WGS 84\",DAT"); add_srs_wkt (p, 1, "UM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.25722356"); add_srs_wkt (p, 2, "3,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"632"); add_srs_wkt (p, 3, "6\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 4, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"T"); add_srs_wkt (p, 6, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 7, "],PARAMETER[\"central_meridian\",55.33333333333334],PARA"); add_srs_wkt (p, 8, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 9, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 10, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS"); add_srs_wkt (p, 11, "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3997\"]]"); p = add_epsg_def (filter, first, last, 4001, "epsg", 4001, "Unknown datum based upon the Airy 1830 ellipsoid"); add_proj4text (p, 0, "+proj=longlat +ellps=airy +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Airy 1830 ellipsoi"); add_srs_wkt (p, 1, "d\",DATUM[\"Not_specified_based_on_Airy_1830_ellipsoid\""); add_srs_wkt (p, 2, ",SPHEROID[\"Airy 1830\",6377563.396,299.3249646,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7001\"]],AUTHORITY[\"EPSG\",\"6001\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4001\"]]"); p = add_epsg_def (filter, first, last, 4002, "epsg", 4002, "Unknown datum based upon the Airy Modified 1849 ellipsoid"); add_proj4text (p, 0, "+proj=longlat +ellps=mod_airy +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Airy Modified 1849"); add_srs_wkt (p, 1, " ellipsoid\",DATUM[\"Not_specified_based_on_Airy_Modifie"); add_srs_wkt (p, 2, "d_1849_ellipsoid\",SPHEROID[\"Airy Modified 1849\",63773"); add_srs_wkt (p, 3, "40.189,299.3249646,AUTHORITY[\"EPSG\",\"7002\"]],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"6002\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4002\""); add_srs_wkt (p, 7, "]]"); p = add_epsg_def (filter, first, last, 4003, "epsg", 4003, "Unknown datum based upon the Australian National Spheroid"); add_proj4text (p, 0, "+proj=longlat +ellps=aust_SA +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Australian Nationa"); add_srs_wkt (p, 1, "l Spheroid\",DATUM[\"Not_specified_based_on_Australian_N"); add_srs_wkt (p, 2, "ational_Spheroid\",SPHEROID[\"Australian National Sphero"); add_srs_wkt (p, 3, "id\",6378160,298.25,AUTHORITY[\"EPSG\",\"7003\"]],AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"6003\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4003\""); add_srs_wkt (p, 7, "]]"); p = add_epsg_def (filter, first, last, 4004, "epsg", 4004, "Unknown datum based upon the Bessel 1841 ellipsoid"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Bessel 1841 ellips"); add_srs_wkt (p, 1, "oid\",DATUM[\"Not_specified_based_on_Bessel_1841_ellipso"); add_srs_wkt (p, 2, "id\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7004\"]],AUTHORITY[\"EPSG\",\"6004\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4004\"]]"); p = add_epsg_def (filter, first, last, 4005, "epsg", 4005, "Unknown datum based upon the Bessel Modified ellipsoid"); add_proj4text (p, 0, "+proj=longlat +a=6377492.018 +b=6356173.508712696 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Bessel Modified el"); add_srs_wkt (p, 1, "lipsoid\",DATUM[\"Not_specified_based_on_Bessel_Modified"); add_srs_wkt (p, 2, "_ellipsoid\",SPHEROID[\"Bessel Modified\",6377492.018,29"); add_srs_wkt (p, 3, "9.1528128,AUTHORITY[\"EPSG\",\"7005\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6005\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4005\"]]"); p = add_epsg_def (filter, first, last, 4006, "epsg", 4006, "Unknown datum based upon the Bessel Namibia ellipsoid"); add_proj4text (p, 0, "+proj=longlat +ellps=bess_nam +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Bessel Namibia ell"); add_srs_wkt (p, 1, "ipsoid\",DATUM[\"Not_specified_based_on_Bessel_Namibia_e"); add_srs_wkt (p, 2, "llipsoid\",SPHEROID[\"Bessel Namibia (GLM)\",6377483.865"); add_srs_wkt (p, 3, "280419,299.1528128,AUTHORITY[\"EPSG\",\"7046\"]],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"6006\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4006\""); add_srs_wkt (p, 7, "]]"); p = add_epsg_def (filter, first, last, 4007, "epsg", 4007, "Unknown datum based upon the Clarke 1858 ellipsoid"); add_proj4text (p, 0, "+proj=longlat +a=6378293.645208759 +b=6356617.987679838 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Clarke 1858 ellips"); add_srs_wkt (p, 1, "oid\",DATUM[\"Not_specified_based_on_Clarke_1858_ellipso"); add_srs_wkt (p, 2, "id\",SPHEROID[\"Clarke 1858\",6378293.645208759,294.2606"); add_srs_wkt (p, 3, "763692654,AUTHORITY[\"EPSG\",\"7007\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6007\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4007\"]]"); p = add_epsg_def (filter, first, last, 4008, "epsg", 4008, "Unknown datum based upon the Clarke 1866 ellipsoid"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk66 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Clarke 1866 ellips"); add_srs_wkt (p, 1, "oid\",DATUM[\"Not_specified_based_on_Clarke_1866_ellipso"); add_srs_wkt (p, 2, "id\",SPHEROID[\"Clarke 1866\",6378206.4,294.978698213898"); add_srs_wkt (p, 3, "2,AUTHORITY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"600"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4008\"]]"); p = add_epsg_def (filter, first, last, 4009, "epsg", 4009, "Unknown datum based upon the Clarke 1866 Michigan ellipsoid"); add_proj4text (p, 0, "+proj=longlat +a=6378450.047548896 +b=6356826.621488444 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Clarke 1866 Michig"); add_srs_wkt (p, 1, "an ellipsoid\",DATUM[\"Not_specified_based_on_Clarke_186"); add_srs_wkt (p, 2, "6_Michigan_ellipsoid\",SPHEROID[\"Clarke 1866 Michigan\""); add_srs_wkt (p, 3, ",6378450.047548896,294.9786971646747,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"7009\"]],AUTHORITY[\"EPSG\",\"6009\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 5, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 6, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4009\"]]"); p = add_epsg_def (filter, first, last, 4010, "epsg", 4010, "Unknown datum based upon the Clarke 1880 (Benoit) ellipsoid"); add_proj4text (p, 0, "+proj=longlat +a=6378300.789 +b=6356566.435 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Clarke 1880 (Benoi"); add_srs_wkt (p, 1, "t) ellipsoid\",DATUM[\"Not_specified_based_on_Clarke_188"); add_srs_wkt (p, 2, "0_Benoit_ellipsoid\",SPHEROID[\"Clarke 1880 (Benoit)\",6"); add_srs_wkt (p, 3, "378300.789,293.4663155389811,AUTHORITY[\"EPSG\",\"7010\""); add_srs_wkt (p, 4, "]],AUTHORITY[\"EPSG\",\"6010\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 6, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4010\"]]"); p = add_epsg_def (filter, first, last, 4011, "epsg", 4011, "Unknown datum based upon the Clarke 1880 (IGN) ellipsoid"); add_proj4text (p, 0, "+proj=longlat +a=6378249.2 +b=6356515 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Clarke 1880 (IGN) "); add_srs_wkt (p, 1, "ellipsoid\",DATUM[\"Not_specified_based_on_Clarke_1880_I"); add_srs_wkt (p, 2, "GN_ellipsoid\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,"); add_srs_wkt (p, 3, "293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],AUTHORIT"); add_srs_wkt (p, 4, "Y[\"EPSG\",\"6011\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4011\"]]"); p = add_epsg_def (filter, first, last, 4012, "epsg", 4012, "Unknown datum based upon the Clarke 1880 (RGS) ellipsoid"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Clarke 1880 (RGS) "); add_srs_wkt (p, 1, "ellipsoid\",DATUM[\"Not_specified_based_on_Clarke_1880_R"); add_srs_wkt (p, 2, "GS_ellipsoid\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.14"); add_srs_wkt (p, 3, "5,293.465,AUTHORITY[\"EPSG\",\"7012\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6012\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4012\"]]"); p = add_epsg_def (filter, first, last, 4013, "epsg", 4013, "Unknown datum based upon the Clarke 1880 (Arc) ellipsoid"); add_proj4text (p, 0, "+proj=longlat +a=6378249.145 +b=6356514.966398753 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Clarke 1880 (Arc) "); add_srs_wkt (p, 1, "ellipsoid\",DATUM[\"Not_specified_based_on_Clarke_1880_A"); add_srs_wkt (p, 2, "rc_ellipsoid\",SPHEROID[\"Clarke 1880 (Arc)\",6378249.14"); add_srs_wkt (p, 3, "5,293.4663077,AUTHORITY[\"EPSG\",\"7013\"]],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6013\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4013\"]]"); p = add_epsg_def (filter, first, last, 4014, "epsg", 4014, "Unknown datum based upon the Clarke 1880 (SGA 1922) ellipsoid"); add_proj4text (p, 0, "+proj=longlat +a=6378249.2 +b=6356514.996941779 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Clarke 1880 (SGA 1"); add_srs_wkt (p, 1, "922) ellipsoid\",DATUM[\"Not_specified_based_on_Clarke_1"); add_srs_wkt (p, 2, "880_SGA_1922_ellipsoid\",SPHEROID[\"Clarke 1880 (SGA 192"); add_srs_wkt (p, 3, "2)\",6378249.2,293.46598,AUTHORITY[\"EPSG\",\"7014\"]],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6014\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4014\"]]"); p = add_epsg_def (filter, first, last, 4015, "epsg", 4015, "Unknown datum based upon the Everest 1830 (1937 Adjustment) ellipsoid"); add_proj4text (p, 0, "+proj=longlat +a=6377276.345 +b=6356075.413140239 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Everest 1830 (1937"); add_srs_wkt (p, 1, " Adjustment) ellipsoid\",DATUM[\"Not_specified_based_on_"); add_srs_wkt (p, 2, "Everest_1830_1937_Adjustment_ellipsoid\",SPHEROID[\"Ever"); add_srs_wkt (p, 3, "est 1830 (1937 Adjustment)\",6377276.345,300.8017,AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"7015\"]],AUTHORITY[\"EPSG\",\"6015\"]],PR"); add_srs_wkt (p, 5, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 6, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 7, "]],AUTHORITY[\"EPSG\",\"4015\"]]"); p = add_epsg_def (filter, first, last, 4016, "epsg", 4016, "Unknown datum based upon the Everest 1830 (1967 Definition) ellipsoid"); add_proj4text (p, 0, "+proj=longlat +ellps=evrstSS +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Everest 1830 (1967"); add_srs_wkt (p, 1, " Definition) ellipsoid\",DATUM[\"Not_specified_based_on_"); add_srs_wkt (p, 2, "Everest_1830_1967_Definition_ellipsoid\",SPHEROID[\"Ever"); add_srs_wkt (p, 3, "est 1830 (1967 Definition)\",6377298.556,300.8017,AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"7016\"]],AUTHORITY[\"EPSG\",\"6016\"]],PR"); add_srs_wkt (p, 5, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 6, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 7, "]],AUTHORITY[\"EPSG\",\"4016\"]]"); p = add_epsg_def (filter, first, last, 4018, "epsg", 4018, "Unknown datum based upon the Everest 1830 Modified ellipsoid"); add_proj4text (p, 0, "+proj=longlat +a=6377304.063 +b=6356103.038993155 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Everest 1830 Modif"); add_srs_wkt (p, 1, "ied ellipsoid\",DATUM[\"Not_specified_based_on_Everest_1"); add_srs_wkt (p, 2, "830_Modified_ellipsoid\",SPHEROID[\"Everest 1830 Modifie"); add_srs_wkt (p, 3, "d\",6377304.063,300.8017,AUTHORITY[\"EPSG\",\"7018\"]],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6018\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4018\"]]"); p = add_epsg_def (filter, first, last, 4019, "epsg", 4019, "Unknown datum based upon the GRS 1980 ellipsoid"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the GRS 1980 ellipsoid"); add_srs_wkt (p, 1, "\",DATUM[\"Not_specified_based_on_GRS_1980_ellipsoid\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"6019\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4019\"]]"); p = add_epsg_def (filter, first, last, 4020, "epsg", 4020, "Unknown datum based upon the Helmert 1906 ellipsoid"); add_proj4text (p, 0, "+proj=longlat +ellps=helmert +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Helmert 1906 ellip"); add_srs_wkt (p, 1, "soid\",DATUM[\"Not_specified_based_on_Helmert_1906_ellip"); add_srs_wkt (p, 2, "soid\",SPHEROID[\"Helmert 1906\",6378200,298.3,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7020\"]],AUTHORITY[\"EPSG\",\"6020\"]],PRIME"); add_srs_wkt (p, 4, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"4020\"]]"); p = add_epsg_def (filter, first, last, 4021, "epsg", 4021, "Unknown datum based upon the Indonesian National Spheroid"); add_proj4text (p, 0, "+proj=longlat +a=6378160 +b=6356774.50408554 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Indonesian Nationa"); add_srs_wkt (p, 1, "l Spheroid\",DATUM[\"Not_specified_based_on_Indonesian_N"); add_srs_wkt (p, 2, "ational_Spheroid\",SPHEROID[\"Indonesian National Sphero"); add_srs_wkt (p, 3, "id\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6021\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4021"); add_srs_wkt (p, 7, "\"]]"); p = add_epsg_def (filter, first, last, 4022, "epsg", 4022, "Unknown datum based upon the International 1924 ellipsoid"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the International 1924"); add_srs_wkt (p, 1, " ellipsoid\",DATUM[\"Not_specified_based_on_Internationa"); add_srs_wkt (p, 2, "l_1924_ellipsoid\",SPHEROID[\"International 1924\",63783"); add_srs_wkt (p, 3, "88,297,AUTHORITY[\"EPSG\",\"7022\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6022\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4022\"]]"); p = add_epsg_def (filter, first, last, 4023, "epsg", 4023, "MOLDREF99"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"MOLDREF99\",DATUM[\"MOLDREF99\",SPHEROID[\"GRS "); add_srs_wkt (p, 1, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 2, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1032\"]],"); add_srs_wkt (p, 3, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 4, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 5, "2\"]],AUTHORITY[\"EPSG\",\"4023\"]]"); p = add_epsg_def (filter, first, last, 4024, "epsg", 4024, "Unknown datum based upon the Krassowsky 1940 ellipsoid"); add_proj4text (p, 0, "+proj=longlat +ellps=krass +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Krassowsky 1940 el"); add_srs_wkt (p, 1, "lipsoid\",DATUM[\"Not_specified_based_on_Krassowsky_1940"); add_srs_wkt (p, 2, "_ellipsoid\",SPHEROID[\"Krassowsky 1940\",6378245,298.3,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7024\"]],AUTHORITY[\"EPSG\",\"6024\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4024\"]]"); p = add_epsg_def (filter, first, last, 4025, "epsg", 4025, "Unknown datum based upon the NWL 9D ellipsoid"); add_proj4text (p, 0, "+proj=longlat +ellps=WGS66 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the NWL 9D ellipsoid\""); add_srs_wkt (p, 1, ",DATUM[\"Not_specified_based_on_NWL_9D_ellipsoid\",SPHER"); add_srs_wkt (p, 2, "OID[\"NWL 9D\",6378145,298.25,AUTHORITY[\"EPSG\",\"7025\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"6025\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4025\"]]"); p = add_epsg_def (filter, first, last, 4026, "epsg", 4026, "MOLDREF99 / Moldova TM"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=28.4 +k=0.9999400000000001 +"); add_proj4text (p, 1, "x_0=200000 +y_0=-5000000 +ellps=GRS80 +towgs84=0,0,0,0,0"); add_proj4text (p, 2, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MOLDREF99 / Moldova TM\",GEOGCS[\"MOLDREF99\",D"); add_srs_wkt (p, 1, "ATUM[\"MOLDREF99\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 2, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 3, ",0],AUTHORITY[\"EPSG\",\"1032\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 5, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"4023\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); add_srs_wkt (p, 7, "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); add_srs_wkt (p, 8, "an\",28.4],PARAMETER[\"scale_factor\",0.99994],PARAMETER"); add_srs_wkt (p, 9, "[\"false_easting\",200000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 10, "-5000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 11, ",AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "4026\"]]"); p = add_epsg_def (filter, first, last, 4027, "epsg", 4027, "Unknown datum based upon the Plessis 1817 ellipsoid"); add_proj4text (p, 0, "+proj=longlat +a=6376523 +b=6355862.933255573 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Plessis 1817 ellip"); add_srs_wkt (p, 1, "soid\",DATUM[\"Not_specified_based_on_Plessis_1817_ellip"); add_srs_wkt (p, 2, "soid\",SPHEROID[\"Plessis 1817\",6376523,308.64,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7027\"]],AUTHORITY[\"EPSG\",\"6027\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4027\"]]"); p = add_epsg_def (filter, first, last, 4028, "epsg", 4028, "Unknown datum based upon the Struve 1860 ellipsoid"); add_proj4text (p, 0, "+proj=longlat +a=6378298.3 +b=6356657.142669562 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Struve 1860 ellips"); add_srs_wkt (p, 1, "oid\",DATUM[\"Not_specified_based_on_Struve_1860_ellipso"); add_srs_wkt (p, 2, "id\",SPHEROID[\"Struve 1860\",6378298.3,294.73,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7028\"]],AUTHORITY[\"EPSG\",\"6028\"]],PRIME"); add_srs_wkt (p, 4, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"4028\"]]"); p = add_epsg_def (filter, first, last, 4029, "epsg", 4029, "Unknown datum based upon the War Office ellipsoid"); add_proj4text (p, 0, "+proj=longlat +a=6378300 +b=6356751.689189189 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the War Office ellipso"); add_srs_wkt (p, 1, "id\",DATUM[\"Not_specified_based_on_War_Office_ellipsoid"); add_srs_wkt (p, 2, "\",SPHEROID[\"War Office\",6378300,296,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7029\"]],AUTHORITY[\"EPSG\",\"6029\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4029\"]]"); p = add_epsg_def (filter, first, last, 4030, "epsg", 4030, "Unknown datum based upon the WGS 84 ellipsoid"); add_proj4text (p, 0, "+proj=longlat +ellps=WGS84 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the WGS 84 ellipsoid\""); add_srs_wkt (p, 1, ",DATUM[\"Not_specified_based_on_WGS_84_ellipsoid\",SPHER"); add_srs_wkt (p, 2, "OID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7030\"]],AUTHORITY[\"EPSG\",\"6030\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 4, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 5, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"4030\"]]"); p = add_epsg_def (filter, first, last, 4031, "epsg", 4031, "Unknown datum based upon the GEM 10C ellipsoid"); add_proj4text (p, 0, "+proj=longlat +ellps=WGS84 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the GEM 10C ellipsoid\""); add_srs_wkt (p, 1, ",DATUM[\"Not_specified_based_on_GEM_10C_ellipsoid\",SPHE"); add_srs_wkt (p, 2, "ROID[\"GEM 10C\",6378137,298.257223563,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7031\"]],AUTHORITY[\"EPSG\",\"6031\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4031\"]]"); p = add_epsg_def (filter, first, last, 4032, "epsg", 4032, "Unknown datum based upon the OSU86F ellipsoid"); add_proj4text (p, 0, "+proj=longlat +a=6378136.2 +b=6356751.516927429 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the OSU86F ellipsoid\""); add_srs_wkt (p, 1, ",DATUM[\"Not_specified_based_on_OSU86F_ellipsoid\",SPHER"); add_srs_wkt (p, 2, "OID[\"OSU86F\",6378136.2,298.257223563,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7032\"]],AUTHORITY[\"EPSG\",\"6032\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4032\"]]"); p = add_epsg_def (filter, first, last, 4033, "epsg", 4033, "Unknown datum based upon the OSU91A ellipsoid"); add_proj4text (p, 0, "+proj=longlat +a=6378136.3 +b=6356751.616592146 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the OSU91A ellipsoid\""); add_srs_wkt (p, 1, ",DATUM[\"Not_specified_based_on_OSU91A_ellipsoid\",SPHER"); add_srs_wkt (p, 2, "OID[\"OSU91A\",6378136.3,298.257223563,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7033\"]],AUTHORITY[\"EPSG\",\"6033\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4033\"]]"); p = add_epsg_def (filter, first, last, 4034, "epsg", 4034, "Unknown datum based upon the Clarke 1880 ellipsoid"); add_proj4text (p, 0, "+proj=longlat +a=6378249.144808011 +b=6356514.966204134 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Clarke 1880 ellips"); add_srs_wkt (p, 1, "oid\",DATUM[\"Not_specified_based_on_Clarke_1880_ellipso"); add_srs_wkt (p, 2, "id\",SPHEROID[\"Clarke 1880\",6378249.144808011,293.4663"); add_srs_wkt (p, 3, "076556303,AUTHORITY[\"EPSG\",\"7034\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6034\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4034\"]]"); p = add_epsg_def (filter, first, last, 4035, "epsg", 4035, "Unknown datum based upon the Authalic Sphere"); add_proj4text (p, 0, "+proj=longlat +a=6371000 +b=6371000 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Authalic Sphere\","); add_srs_wkt (p, 1, "DATUM[\"Not_specified_based_on_Authalic_Sphere\",SPHEROI"); add_srs_wkt (p, 2, "D[\"Sphere\",6371000,0,AUTHORITY[\"EPSG\",\"7035\"]],AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"6035\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 5, "33,AUTHORITY[\"EPSG\",\"9108\"]],AUTHORITY[\"EPSG\",\"40"); add_srs_wkt (p, 6, "35\"]]"); p = add_epsg_def (filter, first, last, 4036, "epsg", 4036, "Unknown datum based upon the GRS 1967 ellipsoid"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS67 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the GRS 1967 ellipsoid"); add_srs_wkt (p, 1, "\",DATUM[\"Not_specified_based_on_GRS_1967_ellipsoid\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1967\",6378160,298.247167427,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7036\"]],AUTHORITY[\"EPSG\",\"6036\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4036\"]]"); p = add_epsg_def (filter, first, last, 4037, "epsg", 4037, "WGS 84 / TMzn35N"); add_proj4text (p, 0, "+proj=utm +zone=35 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / TMzn35N\",GEOGCS[\"WGS 84\",DATUM[\"WG"); add_srs_wkt (p, 1, "S_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHO"); add_srs_wkt (p, 2, "RITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],P"); add_srs_wkt (p, 3, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 4, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 5, "\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 6, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 7, "ETER[\"central_meridian\",27],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 8, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 9, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 10, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 11, "T],AUTHORITY[\"EPSG\",\"4037\"]]"); p = add_epsg_def (filter, first, last, 4038, "epsg", 4038, "WGS 84 / TMzn36N"); add_proj4text (p, 0, "+proj=utm +zone=36 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / TMzn36N\",GEOGCS[\"WGS 84\",DATUM[\"WG"); add_srs_wkt (p, 1, "S_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHO"); add_srs_wkt (p, 2, "RITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],P"); add_srs_wkt (p, 3, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 4, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 5, "\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 6, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 7, "ETER[\"central_meridian\",33],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 8, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 9, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 10, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 11, "T],AUTHORITY[\"EPSG\",\"4038\"]]"); p = add_epsg_def (filter, first, last, 4041, "epsg", 4041, "Unknown datum based upon the Average Terrestrial System 1977 ellipsoid"); add_proj4text (p, 0, "+proj=longlat +a=6378135 +b=6356750.304921594 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Average Terrestria"); add_srs_wkt (p, 1, "l System 1977 ellipsoid\",DATUM[\"Not_specified_based_on"); add_srs_wkt (p, 2, "_Average_Terrestrial_System_1977_ellipsoid\",SPHEROID[\""); add_srs_wkt (p, 3, "Average Terrestrial System 1977\",6378135,298.257,AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"7041\"]],AUTHORITY[\"EPSG\",\"6041\"]],PR"); add_srs_wkt (p, 5, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 6, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 7, "]],AUTHORITY[\"EPSG\",\"4041\"]]"); p = add_epsg_def (filter, first, last, 4042, "epsg", 4042, "Unknown datum based upon the Everest (1830 Definition) ellipsoid"); add_proj4text (p, 0, "+proj=longlat +a=6377299.36559538 +b=6356098.359005156 +"); add_proj4text (p, 1, "no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Everest (1830 Defi"); add_srs_wkt (p, 1, "nition) ellipsoid\",DATUM[\"Not_specified_based_on_Evere"); add_srs_wkt (p, 2, "st_1830_Definition_ellipsoid\",SPHEROID[\"Everest (1830 "); add_srs_wkt (p, 3, "Definition)\",6377299.36559538,300.8017255433612,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"7042\"]],AUTHORITY[\"EPSG\",\"6042\"]],PRI"); add_srs_wkt (p, 5, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 6, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4042\"]]"); p = add_epsg_def (filter, first, last, 4043, "epsg", 4043, "Unknown datum based upon the WGS 72 ellipsoid"); add_proj4text (p, 0, "+proj=longlat +ellps=WGS72 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the WGS 72 ellipsoid\""); add_srs_wkt (p, 1, ",DATUM[\"Not_specified_based_on_WGS_72_ellipsoid\",SPHER"); add_srs_wkt (p, 2, "OID[\"WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"6043\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4043\"]]"); p = add_epsg_def (filter, first, last, 4044, "epsg", 4044, "Unknown datum based upon the Everest 1830 (1962 Definition) ellipsoid"); add_proj4text (p, 0, "+proj=longlat +a=6377301.243 +b=6356100.230165385 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Everest 1830 (1962"); add_srs_wkt (p, 1, " Definition) ellipsoid\",DATUM[\"Not_specified_based_on_"); add_srs_wkt (p, 2, "Everest_1830_1962_Definition_ellipsoid\",SPHEROID[\"Ever"); add_srs_wkt (p, 3, "est 1830 (1962 Definition)\",6377301.243,300.8017255,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"7044\"]],AUTHORITY[\"EPSG\",\"6044\"]]"); add_srs_wkt (p, 5, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 6, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 7, "22\"]],AUTHORITY[\"EPSG\",\"4044\"]]"); p = add_epsg_def (filter, first, last, 4045, "epsg", 4045, "Unknown datum based upon the Everest 1830 (1975 Definition) ellipsoid"); add_proj4text (p, 0, "+proj=longlat +a=6377299.151 +b=6356098.145120132 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Everest 1830 (1975"); add_srs_wkt (p, 1, " Definition) ellipsoid\",DATUM[\"Not_specified_based_on_"); add_srs_wkt (p, 2, "Everest_1830_1975_Definition_ellipsoid\",SPHEROID[\"Ever"); add_srs_wkt (p, 3, "est 1830 (1975 Definition)\",6377299.151,300.8017255,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"7045\"]],AUTHORITY[\"EPSG\",\"6045\"]]"); add_srs_wkt (p, 5, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 6, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 7, "22\"]],AUTHORITY[\"EPSG\",\"4045\"]]"); p = add_epsg_def (filter, first, last, 4046, "epsg", 4046, "RGRDC 2005"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"RGRDC 2005\",DATUM[\"Reseau_Geodesique_de_la_RD"); add_srs_wkt (p, 1, "C_2005\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"1033\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4046\""); add_srs_wkt (p, 6, "]]"); p = add_epsg_def (filter, first, last, 4047, "epsg", 4047, "Unspecified datum based upon the GRS 1980 Authalic Sphere"); add_proj4text (p, 0, "+proj=longlat +a=6371007 +b=6371007 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unspecified datum based upon the GRS 1980 Autha"); add_srs_wkt (p, 1, "lic Sphere\",DATUM[\"Not_specified_based_on_GRS_1980_Aut"); add_srs_wkt (p, 2, "halic_Sphere\",SPHEROID[\"GRS 1980 Authalic Sphere\",637"); add_srs_wkt (p, 3, "1007,0,AUTHORITY[\"EPSG\",\"7048\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6047\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4047\"]]"); p = add_epsg_def (filter, first, last, 4048, "epsg", 4048, "RGRDC 2005 / Congo TM zone 12"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=12 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGRDC 2005 / Congo TM zone 12\",GEOGCS[\"RGRDC "); add_srs_wkt (p, 1, "2005\",DATUM[\"Reseau_Geodesique_de_la_RDC_2005\",SPHERO"); add_srs_wkt (p, 2, "ID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "1033\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4046\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",12],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",0.9999],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 12, "NORTH],AUTHORITY[\"EPSG\",\"4048\"]]"); p = add_epsg_def (filter, first, last, 4049, "epsg", 4049, "RGRDC 2005 / Congo TM zone 14"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=14 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGRDC 2005 / Congo TM zone 14\",GEOGCS[\"RGRDC "); add_srs_wkt (p, 1, "2005\",DATUM[\"Reseau_Geodesique_de_la_RDC_2005\",SPHERO"); add_srs_wkt (p, 2, "ID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "1033\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4046\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",14],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",0.9999],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 12, "NORTH],AUTHORITY[\"EPSG\",\"4049\"]]"); p = add_epsg_def (filter, first, last, 4050, "epsg", 4050, "RGRDC 2005 / Congo TM zone 16"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=16 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGRDC 2005 / Congo TM zone 16\",GEOGCS[\"RGRDC "); add_srs_wkt (p, 1, "2005\",DATUM[\"Reseau_Geodesique_de_la_RDC_2005\",SPHERO"); add_srs_wkt (p, 2, "ID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "1033\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4046\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",16],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",0.9999],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 12, "NORTH],AUTHORITY[\"EPSG\",\"4050\"]]"); p = add_epsg_def (filter, first, last, 4051, "epsg", 4051, "RGRDC 2005 / Congo TM zone 18"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=18 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGRDC 2005 / Congo TM zone 18\",GEOGCS[\"RGRDC "); add_srs_wkt (p, 1, "2005\",DATUM[\"Reseau_Geodesique_de_la_RDC_2005\",SPHERO"); add_srs_wkt (p, 2, "ID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "1033\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4046\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",18],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",0.9999],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 12, "NORTH],AUTHORITY[\"EPSG\",\"4051\"]]"); p = add_epsg_def (filter, first, last, 4052, "epsg", 4052, "Unspecified datum based upon the Clarke 1866 Authalic Sphere"); add_proj4text (p, 0, "+proj=longlat +a=6370997 +b=6370997 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unspecified datum based upon the Clarke 1866 Au"); add_srs_wkt (p, 1, "thalic Sphere\",DATUM[\"Not_specified_based_on_Clarke_18"); add_srs_wkt (p, 2, "66_Authalic_Sphere\",SPHEROID[\"Clarke 1866 Authalic Sph"); add_srs_wkt (p, 3, "ere\",6370997,0,AUTHORITY[\"EPSG\",\"7052\"]],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6052\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4052\"]]"); p = add_epsg_def (filter, first, last, 4053, "epsg", 4053, "Unspecified datum based upon the International 1924 Authalic Sphere"); add_proj4text (p, 0, "+proj=longlat +a=6371228 +b=6371228 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unspecified datum based upon the International "); add_srs_wkt (p, 1, "1924 Authalic Sphere\",DATUM[\"Not_specified_based_on_In"); add_srs_wkt (p, 2, "ternational_1924_Authalic_Sphere\",SPHEROID[\"Internatio"); add_srs_wkt (p, 3, "nal 1924 Authalic Sphere\",6371228,0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"7057\"]],AUTHORITY[\"EPSG\",\"6053\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 5, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 6, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4053\"]]"); p = add_epsg_def (filter, first, last, 4054, "epsg", 4054, "Unspecified datum based upon the Hughes 1980 ellipsoid"); add_proj4text (p, 0, "+proj=longlat +a=6378273 +b=6356889.449 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unspecified datum based upon the Hughes 1980 el"); add_srs_wkt (p, 1, "lipsoid\",DATUM[\"Not_specified_based_on_Hughes_1980_ell"); add_srs_wkt (p, 2, "ipsoid\",SPHEROID[\"Hughes 1980\",6378273,298.2794111230"); add_srs_wkt (p, 3, "64,AUTHORITY[\"EPSG\",\"7058\"]],AUTHORITY[\"EPSG\",\"60"); add_srs_wkt (p, 4, "54\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4054\"]]"); p = add_epsg_def (filter, first, last, 4055, "epsg", 4055, "Popular Visualisation CRS"); add_proj4text (p, 0, "+proj=longlat +a=6378137 +b=6378137 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 1, ",0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Popular Visualisation CRS\",DATUM[\"Popular_Vis"); add_srs_wkt (p, 1, "ualisation_Datum\",SPHEROID[\"Popular Visualisation Sphe"); add_srs_wkt (p, 2, "re\",6378137,0,AUTHORITY[\"EPSG\",\"7059\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6055\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4055\"]]"); p = add_epsg_def (filter, first, last, 4056, "epsg", 4056, "RGRDC 2005 / Congo TM zone 20"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=20 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGRDC 2005 / Congo TM zone 20\",GEOGCS[\"RGRDC "); add_srs_wkt (p, 1, "2005\",DATUM[\"Reseau_Geodesique_de_la_RDC_2005\",SPHERO"); add_srs_wkt (p, 2, "ID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "1033\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4046\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",20],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",0.9999],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 12, "NORTH],AUTHORITY[\"EPSG\",\"4056\"]]"); p = add_epsg_def (filter, first, last, 4057, "epsg", 4057, "RGRDC 2005 / Congo TM zone 22"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=22 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGRDC 2005 / Congo TM zone 22\",GEOGCS[\"RGRDC "); add_srs_wkt (p, 1, "2005\",DATUM[\"Reseau_Geodesique_de_la_RDC_2005\",SPHERO"); add_srs_wkt (p, 2, "ID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "1033\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4046\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",22],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",0.9999],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 12, "NORTH],AUTHORITY[\"EPSG\",\"4057\"]]"); p = add_epsg_def (filter, first, last, 4058, "epsg", 4058, "RGRDC 2005 / Congo TM zone 24"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGRDC 2005 / Congo TM zone 24\",GEOGCS[\"RGRDC "); add_srs_wkt (p, 1, "2005\",DATUM[\"Reseau_Geodesique_de_la_RDC_2005\",SPHERO"); add_srs_wkt (p, 2, "ID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "1033\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4046\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",24],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",0.9999],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 12, "NORTH],AUTHORITY[\"EPSG\",\"4058\"]]"); p = add_epsg_def (filter, first, last, 4059, "epsg", 4059, "RGRDC 2005 / Congo TM zone 26"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=26 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGRDC 2005 / Congo TM zone 26\",GEOGCS[\"RGRDC "); add_srs_wkt (p, 1, "2005\",DATUM[\"Reseau_Geodesique_de_la_RDC_2005\",SPHERO"); add_srs_wkt (p, 2, "ID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "1033\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4046\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",26],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",0.9999],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 12, "NORTH],AUTHORITY[\"EPSG\",\"4059\"]]"); p = add_epsg_def (filter, first, last, 4060, "epsg", 4060, "RGRDC 2005 / Congo TM zone 28"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=28 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGRDC 2005 / Congo TM zone 28\",GEOGCS[\"RGRDC "); add_srs_wkt (p, 1, "2005\",DATUM[\"Reseau_Geodesique_de_la_RDC_2005\",SPHERO"); add_srs_wkt (p, 2, "ID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "1033\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4046\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",28],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",0.9999],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 12, "NORTH],AUTHORITY[\"EPSG\",\"4060\"]]"); p = add_epsg_def (filter, first, last, 4061, "epsg", 4061, "RGRDC 2005 / UTM zone 33S"); add_proj4text (p, 0, "+proj=utm +zone=33 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGRDC 2005 / UTM zone 33S\",GEOGCS[\"RGRDC 2005"); add_srs_wkt (p, 1, "\",DATUM[\"Reseau_Geodesique_de_la_RDC_2005\",SPHEROID[\""); add_srs_wkt (p, 2, "GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "19\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1033\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4046\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, "ARAMETER[\"central_meridian\",15],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 12, "],AUTHORITY[\"EPSG\",\"4061\"]]"); p = add_epsg_def (filter, first, last, 4062, "epsg", 4062, "RGRDC 2005 / UTM zone 34S"); add_proj4text (p, 0, "+proj=utm +zone=34 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGRDC 2005 / UTM zone 34S\",GEOGCS[\"RGRDC 2005"); add_srs_wkt (p, 1, "\",DATUM[\"Reseau_Geodesique_de_la_RDC_2005\",SPHEROID[\""); add_srs_wkt (p, 2, "GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "19\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1033\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4046\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, "ARAMETER[\"central_meridian\",21],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 12, "],AUTHORITY[\"EPSG\",\"4062\"]]"); p = add_epsg_def (filter, first, last, 4063, "epsg", 4063, "RGRDC 2005 / UTM zone 35S"); add_proj4text (p, 0, "+proj=utm +zone=35 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGRDC 2005 / UTM zone 35S\",GEOGCS[\"RGRDC 2005"); add_srs_wkt (p, 1, "\",DATUM[\"Reseau_Geodesique_de_la_RDC_2005\",SPHEROID[\""); add_srs_wkt (p, 2, "GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "19\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1033\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4046\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, "ARAMETER[\"central_meridian\",27],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 12, "],AUTHORITY[\"EPSG\",\"4063\"]]"); } #endif /* full EPSG initialization enabled/disabled */ libspatialite-4.1.1/src/srsinit/epsg_inlined_11.c0000664000175000017500000046421312163502133016663 00000000000000/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_11 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def (filter, first, last, 3140, "epsg", 3140, "Viti Levu 1912 / Viti Levu Grid"); add_proj4text (p, 0, "+proj=cass +lat_0=-18 +lon_0=178 +x_0=109435.392 +y_0=14"); add_proj4text (p, 1, "1622.272 +a=6378306.3696 +b=6356571.996 +towgs84=51,391,"); add_proj4text (p, 2, "-36,0,0,0,0 +to_meter=0.201168 +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Viti Levu 1912 / Viti Levu Grid\",GEOGCS[\"Viti"); add_srs_wkt (p, 1, " Levu 1912\",DATUM[\"Viti_Levu_1912\",SPHEROID[\"Clarke "); add_srs_wkt (p, 2, "1880 (international foot)\",6378306.3696,293.46630765563"); add_srs_wkt (p, 3, "61,AUTHORITY[\"EPSG\",\"7055\"]],TOWGS84[51,391,-36,0,0,"); add_srs_wkt (p, 4, "0,0],AUTHORITY[\"EPSG\",\"6752\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, "G\",\"4752\"]],PROJECTION[\"Cassini_Soldner\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",-18],PARAMETER[\"central_meridia"); add_srs_wkt (p, 9, "n\",178],PARAMETER[\"false_easting\",544000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",704000],UNIT[\"link\",0.201168,AUTHORIT"); add_srs_wkt (p, 11, "Y[\"EPSG\",\"9098\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"3140\"]]"); p = add_epsg_def (filter, first, last, 3141, "epsg", 3141, "Fiji 1956 / UTM zone 60S"); add_proj4text (p, 0, "+proj=utm +zone=60 +south +ellps=intl +towgs84=265.025,3"); add_proj4text (p, 1, "84.929,-194.046,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Fiji 1956 / UTM zone 60S\",GEOGCS[\"Fiji 1956\""); add_srs_wkt (p, 1, ",DATUM[\"Fiji_1956\",SPHEROID[\"International 1924\",637"); add_srs_wkt (p, 2, "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[265.025,3"); add_srs_wkt (p, 3, "84.929,-194.046,0,0,0,0],AUTHORITY[\"EPSG\",\"6721\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AUTHORITY[\"EPSG\",\"4721\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 7, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 8, "ETER[\"central_meridian\",177],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"3141\"]]"); p = add_epsg_def (filter, first, last, 3142, "epsg", 3142, "Fiji 1956 / UTM zone 1S"); add_proj4text (p, 0, "+proj=utm +zone=1 +south +ellps=intl +towgs84=265.025,38"); add_proj4text (p, 1, "4.929,-194.046,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Fiji 1956 / UTM zone 1S\",GEOGCS[\"Fiji 1956\","); add_srs_wkt (p, 1, "DATUM[\"Fiji_1956\",SPHEROID[\"International 1924\",6378"); add_srs_wkt (p, 2, "388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[265.025,38"); add_srs_wkt (p, 3, "4.929,-194.046,0,0,0,0],AUTHORITY[\"EPSG\",\"6721\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AUTHORITY[\"EPSG\",\"4721\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-177],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"3142\"]]"); p = add_epsg_def (filter, first, last, 3143, "epsg", 3143, "Fiji 1986 / Fiji Map Grid (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-17 +lon_0=178.75 +k=0.99985 +x_0=200"); add_proj4text (p, 1, "0000 +y_0=4000000 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55"); add_proj4text (p, 2, "4,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Fiji 1986 / Fiji Map Grid (deprecated)\",GEOGCS"); add_srs_wkt (p, 1, "[\"Fiji 1986\",DATUM[\"Fiji_Geodetic_Datum_1986\",SPHERO"); add_srs_wkt (p, 2, "ID[\"WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6720\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4720\"]],PROJECTIO"); add_srs_wkt (p, 7, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 8, "n\",-17],PARAMETER[\"central_meridian\",178.75],PARAMETE"); add_srs_wkt (p, 9, "R[\"scale_factor\",0.99985],PARAMETER[\"false_easting\","); add_srs_wkt (p, 10, "2000000],PARAMETER[\"false_northing\",4000000],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3143\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def (filter, first, last, 3146, "epsg", 3146, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 6"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=6500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 6\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "8],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",6500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3146\"]]"); p = add_epsg_def (filter, first, last, 3147, "epsg", 3147, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 18E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 18E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "8],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3147\"]]"); p = add_epsg_def (filter, first, last, 3148, "epsg", 3148, "Indian 1960 / UTM zone 48N"); add_proj4text (p, 0, "+proj=utm +zone=48 +a=6377276.345 +b=6356075.413140239 +"); add_proj4text (p, 1, "towgs84=198,881,317,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Indian 1960 / UTM zone 48N\",GEOGCS[\"Indian 19"); add_srs_wkt (p, 1, "60\",DATUM[\"Indian_1960\",SPHEROID[\"Everest 1830 (1937"); add_srs_wkt (p, 2, " Adjustment)\",6377276.345,300.8017,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7015\"]],TOWGS84[198,881,317,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6131\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4131\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",105],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"3148\"]]"); p = add_epsg_def (filter, first, last, 3149, "epsg", 3149, "Indian 1960 / UTM zone 49N"); add_proj4text (p, 0, "+proj=utm +zone=49 +a=6377276.345 +b=6356075.413140239 +"); add_proj4text (p, 1, "towgs84=198,881,317,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Indian 1960 / UTM zone 49N\",GEOGCS[\"Indian 19"); add_srs_wkt (p, 1, "60\",DATUM[\"Indian_1960\",SPHEROID[\"Everest 1830 (1937"); add_srs_wkt (p, 2, " Adjustment)\",6377276.345,300.8017,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7015\"]],TOWGS84[198,881,317,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6131\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4131\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",111],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"3149\"]]"); p = add_epsg_def (filter, first, last, 3150, "epsg", 3150, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 6"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=6500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 6\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",18"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",6500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3150\"]]"); p = add_epsg_def (filter, first, last, 3151, "epsg", 3151, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 18E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 18E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",18"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3151\"]]"); p = add_epsg_def (filter, first, last, 3152, "epsg", 3152, "ST74"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=18.05779 +k=0.99999425 +x_0="); add_proj4text (p, 1, "100178.1808 +y_0=-6500614.7836 +ellps=GRS80 +towgs84=0,0"); add_proj4text (p, 2, ",0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ST74\",GEOGCS[\"SWEREF99\",DATUM[\"SWEREF99\",S"); add_srs_wkt (p, 1, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 2, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"6619\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4619\"]],PROJEC"); add_srs_wkt (p, 6, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 7, "igin\",0],PARAMETER[\"central_meridian\",18.05779],PARAM"); add_srs_wkt (p, 8, "ETER[\"scale_factor\",0.99999425],PARAMETER[\"false_east"); add_srs_wkt (p, 9, "ing\",100178.1808],PARAMETER[\"false_northing\",-6500614"); add_srs_wkt (p, 10, ".7836],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 11, "IS[\"x\",NORTH],AXIS[\"y\",EAST],AUTHORITY[\"EPSG\",\"31"); add_srs_wkt (p, 12, "52\"]]"); p = add_epsg_def (filter, first, last, 3153, "epsg", 3153, "NAD83(CSRS) / BC Albers"); add_proj4text (p, 0, "+proj=aea +lat_1=50 +lat_2=58.5 +lat_0=45 +lon_0=-126 +x"); add_proj4text (p, 1, "_0=1000000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / BC Albers\",GEOGCS[\"NAD83(CSRS)\""); add_srs_wkt (p, 1, ",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SPHER"); add_srs_wkt (p, 2, "OID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Albers_Conic_Equal_Area\"],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_1\",50],PARAMETER[\"standard_parallel_2\",58.5],PARAM"); add_srs_wkt (p, 9, "ETER[\"latitude_of_center\",45],PARAMETER[\"longitude_of"); add_srs_wkt (p, 10, "_center\",-126],PARAMETER[\"false_easting\",1000000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 13, "ng\",NORTH],AUTHORITY[\"EPSG\",\"3153\"]]"); p = add_epsg_def (filter, first, last, 3154, "epsg", 3154, "NAD83(CSRS) / UTM zone 7N"); add_proj4text (p, 0, "+proj=utm +zone=7 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 1, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / UTM zone 7N\",GEOGCS[\"NAD83(CSRS"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",-141],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"3154\"]]"); p = add_epsg_def (filter, first, last, 3155, "epsg", 3155, "NAD83(CSRS) / UTM zone 8N"); add_proj4text (p, 0, "+proj=utm +zone=8 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 1, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / UTM zone 8N\",GEOGCS[\"NAD83(CSRS"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",-135],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"3155\"]]"); p = add_epsg_def (filter, first, last, 3156, "epsg", 3156, "NAD83(CSRS) / UTM zone 9N"); add_proj4text (p, 0, "+proj=utm +zone=9 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 1, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / UTM zone 9N\",GEOGCS[\"NAD83(CSRS"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",-129],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"3156\"]]"); p = add_epsg_def (filter, first, last, 3157, "epsg", 3157, "NAD83(CSRS) / UTM zone 10N"); add_proj4text (p, 0, "+proj=utm +zone=10 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / UTM zone 10N\",GEOGCS[\"NAD83(CSR"); add_srs_wkt (p, 1, "S)\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 8, "igin\",0],PARAMETER[\"central_meridian\",-123],PARAMETER"); add_srs_wkt (p, 9, "[\"scale_factor\",0.9996],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS"); add_srs_wkt (p, 12, "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3157\"]]"); p = add_epsg_def (filter, first, last, 3158, "epsg", 3158, "NAD83(CSRS) / UTM zone 14N"); add_proj4text (p, 0, "+proj=utm +zone=14 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / UTM zone 14N\",GEOGCS[\"NAD83(CSR"); add_srs_wkt (p, 1, "S)\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 8, "igin\",0],PARAMETER[\"central_meridian\",-99],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",0.9996],PARAMETER[\"false_easting\",500"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS["); add_srs_wkt (p, 12, "\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3158\"]]"); p = add_epsg_def (filter, first, last, 3159, "epsg", 3159, "NAD83(CSRS) / UTM zone 15N"); add_proj4text (p, 0, "+proj=utm +zone=15 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / UTM zone 15N\",GEOGCS[\"NAD83(CSR"); add_srs_wkt (p, 1, "S)\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 8, "igin\",0],PARAMETER[\"central_meridian\",-93],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",0.9996],PARAMETER[\"false_easting\",500"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS["); add_srs_wkt (p, 12, "\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3159\"]]"); p = add_epsg_def (filter, first, last, 3160, "epsg", 3160, "NAD83(CSRS) / UTM zone 16N"); add_proj4text (p, 0, "+proj=utm +zone=16 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / UTM zone 16N\",GEOGCS[\"NAD83(CSR"); add_srs_wkt (p, 1, "S)\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 8, "igin\",0],PARAMETER[\"central_meridian\",-87],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",0.9996],PARAMETER[\"false_easting\",500"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS["); add_srs_wkt (p, 12, "\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3160\"]]"); p = add_epsg_def (filter, first, last, 3161, "epsg", 3161, "NAD83 / Ontario MNR Lambert"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.5 +lat_2=53.5 +lat_0=0 +lon_0=-85 +x"); add_proj4text (p, 1, "_0=930000 +y_0=6430000 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Ontario MNR Lambert\",GEOGCS[\"NAD83\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 7, "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",44.5"); add_srs_wkt (p, 8, "],PARAMETER[\"standard_parallel_2\",53.5],PARAMETER[\"la"); add_srs_wkt (p, 9, "titude_of_origin\",0],PARAMETER[\"central_meridian\",-85"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",930000],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",6430000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"3161\"]]"); p = add_epsg_def (filter, first, last, 3162, "epsg", 3162, "NAD83(CSRS) / Ontario MNR Lambert"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.5 +lat_2=53.5 +lat_0=0 +lon_0=-85 +x"); add_proj4text (p, 1, "_0=930000 +y_0=6430000 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 2, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / Ontario MNR Lambert\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_Sys"); add_srs_wkt (p, 2, "tem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 8, "standard_parallel_1\",44.5],PARAMETER[\"standard_paralle"); add_srs_wkt (p, 9, "l_2\",53.5],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 10, "R[\"central_meridian\",-85],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "930000],PARAMETER[\"false_northing\",6430000],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3162\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def (filter, first, last, 3163, "epsg", 3163, "RGNC91-93 / Lambert New Caledonia"); add_proj4text (p, 0, "+proj=lcc +lat_1=-20.66666666666667 +lat_2=-22.333333333"); add_proj4text (p, 1, "33333 +lat_0=-21.5 +lon_0=166 +x_0=400000 +y_0=300000 +e"); add_proj4text (p, 2, "llps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGNC91-93 / Lambert New Caledonia\",GEOGCS[\"RG"); add_srs_wkt (p, 1, "NC91-93\",DATUM[\"Reseau_Geodesique_de_Nouvelle_Caledoni"); add_srs_wkt (p, 2, "e_91_93\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6749\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4749"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMET"); add_srs_wkt (p, 8, "ER[\"standard_parallel_1\",-20.66666666666667],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_2\",-22.33333333333333],PARAMETER[\""); add_srs_wkt (p, 10, "latitude_of_origin\",-21.5],PARAMETER[\"central_meridian"); add_srs_wkt (p, 11, "\",166],PARAMETER[\"false_easting\",400000],PARAMETER[\""); add_srs_wkt (p, 12, "false_northing\",300000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 14, "RITY[\"EPSG\",\"3163\"]]"); p = add_epsg_def (filter, first, last, 3164, "epsg", 3164, "ST87 Ouvea / UTM zone 58S"); add_proj4text (p, 0, "+proj=utm +zone=58 +south +ellps=WGS84 +towgs84=-56.263,"); add_proj4text (p, 1, "16.136,-22.856,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ST87 Ouvea / UTM zone 58S\",GEOGCS[\"ST87 Ouvea"); add_srs_wkt (p, 1, "\",DATUM[\"ST87_Ouvea\",SPHEROID[\"WGS 84\",6378137,298."); add_srs_wkt (p, 2, "257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[-56.263,"); add_srs_wkt (p, 3, "16.136,-22.856,0,0,0,0],AUTHORITY[\"EPSG\",\"6750\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AUTHORITY[\"EPSG\",\"4750\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",165],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"3164\"]]"); p = add_epsg_def (filter, first, last, 3165, "epsg", 3165, "NEA74 Noumea / Noumea Lambert"); add_proj4text (p, 0, "+proj=lcc +lat_1=-22.24469175 +lat_2=-22.29469175 +lat_0"); add_proj4text (p, 1, "=-22.26969175 +lon_0=166.44242575 +x_0=0.66 +y_0=1.02 +e"); add_proj4text (p, 2, "llps=intl +towgs84=-10.18,-350.43,291.37,0,0,0,0 +units="); add_proj4text (p, 3, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NEA74 Noumea / Noumea Lambert\",GEOGCS[\"NEA74 "); add_srs_wkt (p, 1, "Noumea\",DATUM[\"NEA74_Noumea\",SPHEROID[\"International"); add_srs_wkt (p, 2, " 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS8"); add_srs_wkt (p, 3, "4[-10.18,-350.43,291.37,0,0,0,0],AUTHORITY[\"EPSG\",\"66"); add_srs_wkt (p, 4, "44\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4644\"]],PROJECTION[\"L"); add_srs_wkt (p, 7, "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 8, "lel_1\",-22.24469175],PARAMETER[\"standard_parallel_2\","); add_srs_wkt (p, 9, "-22.29469175],PARAMETER[\"latitude_of_origin\",-22.26969"); add_srs_wkt (p, 10, "175],PARAMETER[\"central_meridian\",166.44242575],PARAME"); add_srs_wkt (p, 11, "TER[\"false_easting\",0.66],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, ",1.02],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 13, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"31"); add_srs_wkt (p, 14, "65\"]]"); p = add_epsg_def (filter, first, last, 3166, "epsg", 3166, "NEA74 Noumea / Noumea Lambert 2"); add_proj4text (p, 0, "+proj=lcc +lat_1=-22.24472222222222 +lat_2=-22.294722222"); add_proj4text (p, 1, "22222 +lat_0=-22.26972222222222 +lon_0=166.4425 +x_0=8.3"); add_proj4text (p, 2, "13000000000001 +y_0=-2.354 +ellps=intl +towgs84=-10.18,-"); add_proj4text (p, 3, "350.43,291.37,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NEA74 Noumea / Noumea Lambert 2\",GEOGCS[\"NEA7"); add_srs_wkt (p, 1, "4 Noumea\",DATUM[\"NEA74_Noumea\",SPHEROID[\"Internation"); add_srs_wkt (p, 2, "al 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWG"); add_srs_wkt (p, 3, "S84[-10.18,-350.43,291.37,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6644\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4644\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 8, "rallel_1\",-22.24472222222222],PARAMETER[\"standard_para"); add_srs_wkt (p, 9, "llel_2\",-22.29472222222222],PARAMETER[\"latitude_of_ori"); add_srs_wkt (p, 10, "gin\",-22.26972222222222],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 11, ",166.4425],PARAMETER[\"false_easting\",8.313],PARAMETER["); add_srs_wkt (p, 12, "\"false_northing\",-2.354],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 14, "HORITY[\"EPSG\",\"3166\"]]"); p = add_epsg_def (filter, first, last, 3167, "epsg", 3167, "Kertau (RSO) / RSO Malaya (ch)"); add_proj4text (p, 0, "+proj=omerc +lat_0=4 +lonc=102.25 +alpha=323.0257905 +k="); add_proj4text (p, 1, "0.99984 +x_0=40000 +y_0=0 +gamma=323.1301023611111 +a=63"); add_proj4text (p, 2, "77295.664 +b=6356094.667915204 +to_meter=20.116756 +no_d"); add_proj4text (p, 3, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Kertau (RSO) / RSO Malaya (ch)\",GEOGCS[\"Kerta"); add_srs_wkt (p, 1, "u (RSO)\",DATUM[\"Kertau_RSO\",SPHEROID[\"Everest 1830 ("); add_srs_wkt (p, 2, "RSO 1969)\",6377295.664,300.8017,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "56\"]],AUTHORITY[\"EPSG\",\"6751\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 6, "SG\",\"4751\"]],PROJECTION[\"Hotine_Oblique_Mercator\"],"); add_srs_wkt (p, 7, "PARAMETER[\"latitude_of_center\",4],PARAMETER[\"longitud"); add_srs_wkt (p, 8, "e_of_center\",102.25],PARAMETER[\"azimuth\",323.0257905]"); add_srs_wkt (p, 9, ",PARAMETER[\"rectified_grid_angle\",323.1301023611111],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",0.99984],PARAMETER[\"false_eas"); add_srs_wkt (p, 11, "ting\",1988.392164223695],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 12, "],UNIT[\"British chain (Sears 1922 truncated)\",20.11675"); add_srs_wkt (p, 13, "6,AUTHORITY[\"EPSG\",\"9301\"]],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 14, "XIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3167\"]]"); p = add_epsg_def (filter, first, last, 3168, "epsg", 3168, "Kertau (RSO) / RSO Malaya (m)"); add_proj4text (p, 0, "+proj=omerc +lat_0=4 +lonc=102.25 +alpha=323.0257905 +k="); add_proj4text (p, 1, "0.99984 +x_0=804670.24 +y_0=0 +gamma=323.1301023611111 +"); add_proj4text (p, 2, "a=6377295.664 +b=6356094.667915204 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kertau (RSO) / RSO Malaya (m)\",GEOGCS[\"Kertau"); add_srs_wkt (p, 1, " (RSO)\",DATUM[\"Kertau_RSO\",SPHEROID[\"Everest 1830 (R"); add_srs_wkt (p, 2, "SO 1969)\",6377295.664,300.8017,AUTHORITY[\"EPSG\",\"705"); add_srs_wkt (p, 3, "6\"]],AUTHORITY[\"EPSG\",\"6751\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 6, "SG\",\"4751\"]],PROJECTION[\"Hotine_Oblique_Mercator\"],"); add_srs_wkt (p, 7, "PARAMETER[\"latitude_of_center\",4],PARAMETER[\"longitud"); add_srs_wkt (p, 8, "e_of_center\",102.25],PARAMETER[\"azimuth\",323.0257905]"); add_srs_wkt (p, 9, ",PARAMETER[\"rectified_grid_angle\",323.1301023611111],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",0.99984],PARAMETER[\"false_eas"); add_srs_wkt (p, 11, "ting\",804670.24],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 12, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 13, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"316"); add_srs_wkt (p, 14, "8\"]]"); p = add_epsg_def (filter, first, last, 3169, "epsg", 3169, "RGNC91-93 / UTM zone 57S"); add_proj4text (p, 0, "+proj=utm +zone=57 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGNC91-93 / UTM zone 57S\",GEOGCS[\"RGNC91-93\""); add_srs_wkt (p, 1, ",DATUM[\"Reseau_Geodesique_de_Nouvelle_Caledonie_91_93\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6749\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4749\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",0],PARAMETER[\"central_meridian\",159],PARAMETER"); add_srs_wkt (p, 9, "[\"scale_factor\",0.9996],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",10000000],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 12, "T],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3169\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def (filter, first, last, 3170, "epsg", 3170, "RGNC91-93 / UTM zone 58S"); add_proj4text (p, 0, "+proj=utm +zone=58 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGNC91-93 / UTM zone 58S\",GEOGCS[\"RGNC91-93\""); add_srs_wkt (p, 1, ",DATUM[\"Reseau_Geodesique_de_Nouvelle_Caledonie_91_93\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6749\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4749\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",0],PARAMETER[\"central_meridian\",165],PARAMETER"); add_srs_wkt (p, 9, "[\"scale_factor\",0.9996],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",10000000],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 12, "T],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3170\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def (filter, first, last, 3171, "epsg", 3171, "RGNC91-93 / UTM zone 59S"); add_proj4text (p, 0, "+proj=utm +zone=59 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGNC91-93 / UTM zone 59S\",GEOGCS[\"RGNC91-93\""); add_srs_wkt (p, 1, ",DATUM[\"Reseau_Geodesique_de_Nouvelle_Caledonie_91_93\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6749\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4749\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",0],PARAMETER[\"central_meridian\",171],PARAMETER"); add_srs_wkt (p, 9, "[\"scale_factor\",0.9996],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",10000000],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 12, "T],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3171\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def (filter, first, last, 3172, "epsg", 3172, "IGN53 Mare / UTM zone 59S"); add_proj4text (p, 0, "+proj=utm +zone=59 +south +ellps=intl +towgs84=287.58,17"); add_proj4text (p, 1, "7.78,-135.41,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGN53 Mare / UTM zone 59S\",GEOGCS[\"IGN53 Mare"); add_srs_wkt (p, 1, "\",DATUM[\"IGN53_Mare\",SPHEROID[\"International 1924\","); add_srs_wkt (p, 2, "6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[287.58"); add_srs_wkt (p, 3, ",177.78,-135.41,0,0,0,0],AUTHORITY[\"EPSG\",\"6641\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AUTHORITY[\"EPSG\",\"4641\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 7, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 8, "ETER[\"central_meridian\",171],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"3172\"]]"); p = add_epsg_def (filter, first, last, 3174, "epsg", 3174, "NAD83 / Great Lakes Albers"); add_proj4text (p, 0, "+proj=aea +lat_1=42.122774 +lat_2=49.01518 +lat_0=45.568"); add_proj4text (p, 1, "977 +lon_0=-84.455955 +x_0=1000000 +y_0=1000000 +datum=N"); add_proj4text (p, 2, "AD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Great Lakes Albers\",GEOGCS[\"NAD83\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Albers_Conic_"); add_srs_wkt (p, 7, "Equal_Area\"],PARAMETER[\"standard_parallel_1\",42.12277"); add_srs_wkt (p, 8, "4],PARAMETER[\"standard_parallel_2\",49.01518],PARAMETER"); add_srs_wkt (p, 9, "[\"latitude_of_center\",45.568977],PARAMETER[\"longitude"); add_srs_wkt (p, 10, "_of_center\",-84.455955],PARAMETER[\"false_easting\",100"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre"); add_srs_wkt (p, 12, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS"); add_srs_wkt (p, 13, "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3174\"]]"); p = add_epsg_def (filter, first, last, 3175, "epsg", 3175, "NAD83 / Great Lakes and St Lawrence Albers"); add_proj4text (p, 0, "+proj=aea +lat_1=42.122774 +lat_2=49.01518 +lat_0=45.568"); add_proj4text (p, 1, "977 +lon_0=-83.248627 +x_0=1000000 +y_0=1000000 +datum=N"); add_proj4text (p, 2, "AD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Great Lakes and St Lawrence Albers\",GE"); add_srs_wkt (p, 1, "OGCS[\"NAD83\",DATUM[\"North_American_Datum_1983\",SPHER"); add_srs_wkt (p, 2, "OID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6269\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Albers_Conic_Equal_Area\"],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_1\",42.122774],PARAMETER[\"standard_parallel_2\",49.0"); add_srs_wkt (p, 9, "1518],PARAMETER[\"latitude_of_center\",45.568977],PARAME"); add_srs_wkt (p, 10, "TER[\"longitude_of_center\",-83.248627],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_easting\",1000000],PARAMETER[\"false_northing\",100000"); add_srs_wkt (p, 12, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 13, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3175\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def (filter, first, last, 3176, "epsg", 3176, "Indian 1960 / TM 106 NE"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=106 +k=0.9996 +x_0=500000 +y"); add_proj4text (p, 1, "_0=0 +a=6377276.345 +b=6356075.413140239 +towgs84=198,88"); add_proj4text (p, 2, "1,317,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Indian 1960 / TM 106 NE\",GEOGCS[\"Indian 1960\""); add_srs_wkt (p, 1, ",DATUM[\"Indian_1960\",SPHEROID[\"Everest 1830 (1937 Adj"); add_srs_wkt (p, 2, "ustment)\",6377276.345,300.8017,AUTHORITY[\"EPSG\",\"701"); add_srs_wkt (p, 3, "5\"]],TOWGS84[198,881,317,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6131\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4131\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",106],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 12, "hing\",NORTH],AUTHORITY[\"EPSG\",\"3176\"]]"); p = add_epsg_def (filter, first, last, 3177, "epsg", 3177, "LGD2006 / Libya TM"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=17 +k=0.9965000000000001 +x_"); add_proj4text (p, 1, "0=1000000 +y_0=0 +ellps=intl +towgs84=-208.406,-109.878,"); add_proj4text (p, 2, "-2.5764,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"LGD2006 / Libya TM\",GEOGCS[\"LGD2006\",DATUM[\""); add_srs_wkt (p, 1, "Libyan_Geodetic_Datum_2006\",SPHEROID[\"International 19"); add_srs_wkt (p, 2, "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-"); add_srs_wkt (p, 3, "208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "754\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4754\"]],PROJECTION[\""); add_srs_wkt (p, 7, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, "0],PARAMETER[\"central_meridian\",17],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",0.9965],PARAMETER[\"false_easting\",1000000],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"3177\"]]"); p = add_epsg_def (filter, first, last, 3178, "epsg", 3178, "GR96 / UTM zone 18N"); add_proj4text (p, 0, "+proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GR96 / UTM zone 18N\",GEOGCS[\"GR96\",DATUM[\"G"); add_srs_wkt (p, 1, "reenland_1996\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 2, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4747\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-75],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 11, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "3178\"]]"); p = add_epsg_def (filter, first, last, 3179, "epsg", 3179, "GR96 / UTM zone 19N"); add_proj4text (p, 0, "+proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GR96 / UTM zone 19N\",GEOGCS[\"GR96\",DATUM[\"G"); add_srs_wkt (p, 1, "reenland_1996\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 2, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4747\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-69],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 11, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "3179\"]]"); p = add_epsg_def (filter, first, last, 3180, "epsg", 3180, "GR96 / UTM zone 20N"); add_proj4text (p, 0, "+proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GR96 / UTM zone 20N\",GEOGCS[\"GR96\",DATUM[\"G"); add_srs_wkt (p, 1, "reenland_1996\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 2, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4747\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-63],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 11, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "3180\"]]"); p = add_epsg_def (filter, first, last, 3181, "epsg", 3181, "GR96 / UTM zone 21N"); add_proj4text (p, 0, "+proj=utm +zone=21 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GR96 / UTM zone 21N\",GEOGCS[\"GR96\",DATUM[\"G"); add_srs_wkt (p, 1, "reenland_1996\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 2, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4747\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-57],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 11, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "3181\"]]"); p = add_epsg_def (filter, first, last, 3182, "epsg", 3182, "GR96 / UTM zone 22N"); add_proj4text (p, 0, "+proj=utm +zone=22 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GR96 / UTM zone 22N\",GEOGCS[\"GR96\",DATUM[\"G"); add_srs_wkt (p, 1, "reenland_1996\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 2, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4747\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-51],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 11, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "3182\"]]"); p = add_epsg_def (filter, first, last, 3183, "epsg", 3183, "GR96 / UTM zone 23N"); add_proj4text (p, 0, "+proj=utm +zone=23 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GR96 / UTM zone 23N\",GEOGCS[\"GR96\",DATUM[\"G"); add_srs_wkt (p, 1, "reenland_1996\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 2, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4747\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-45],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 11, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "3183\"]]"); p = add_epsg_def (filter, first, last, 3184, "epsg", 3184, "GR96 / UTM zone 24N"); add_proj4text (p, 0, "+proj=utm +zone=24 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GR96 / UTM zone 24N\",GEOGCS[\"GR96\",DATUM[\"G"); add_srs_wkt (p, 1, "reenland_1996\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 2, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4747\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-39],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 11, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "3184\"]]"); p = add_epsg_def (filter, first, last, 3185, "epsg", 3185, "GR96 / UTM zone 25N"); add_proj4text (p, 0, "+proj=utm +zone=25 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GR96 / UTM zone 25N\",GEOGCS[\"GR96\",DATUM[\"G"); add_srs_wkt (p, 1, "reenland_1996\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 2, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4747\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-33],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 11, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "3185\"]]"); p = add_epsg_def (filter, first, last, 3186, "epsg", 3186, "GR96 / UTM zone 26N"); add_proj4text (p, 0, "+proj=utm +zone=26 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GR96 / UTM zone 26N\",GEOGCS[\"GR96\",DATUM[\"G"); add_srs_wkt (p, 1, "reenland_1996\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 2, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4747\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-27],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 11, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "3186\"]]"); p = add_epsg_def (filter, first, last, 3187, "epsg", 3187, "GR96 / UTM zone 27N"); add_proj4text (p, 0, "+proj=utm +zone=27 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GR96 / UTM zone 27N\",GEOGCS[\"GR96\",DATUM[\"G"); add_srs_wkt (p, 1, "reenland_1996\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 2, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4747\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-21],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 11, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "3187\"]]"); p = add_epsg_def (filter, first, last, 3188, "epsg", 3188, "GR96 / UTM zone 28N"); add_proj4text (p, 0, "+proj=utm +zone=28 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GR96 / UTM zone 28N\",GEOGCS[\"GR96\",DATUM[\"G"); add_srs_wkt (p, 1, "reenland_1996\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 2, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4747\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-15],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 11, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "3188\"]]"); p = add_epsg_def (filter, first, last, 3189, "epsg", 3189, "GR96 / UTM zone 29N"); add_proj4text (p, 0, "+proj=utm +zone=29 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GR96 / UTM zone 29N\",GEOGCS[\"GR96\",DATUM[\"G"); add_srs_wkt (p, 1, "reenland_1996\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 2, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4747\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-9],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 11, "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "3189\"]]"); p = add_epsg_def (filter, first, last, 3190, "epsg", 3190, "LGD2006 / Libya TM zone 5"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=9 +k=0.99995 +x_0=200000 +y_"); add_proj4text (p, 1, "0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0"); add_proj4text (p, 2, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"LGD2006 / Libya TM zone 5\",GEOGCS[\"LGD2006\","); add_srs_wkt (p, 1, "DATUM[\"Libyan_Geodetic_Datum_2006\",SPHEROID[\"Internat"); add_srs_wkt (p, 2, "ional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],T"); add_srs_wkt (p, 3, "OWGS84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY[\"EP"); add_srs_wkt (p, 4, "SG\",\"6754\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4754\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",0],PARAMETER[\"central_meridian\",9],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.99995],PARAMETER[\"false_easting\",2000"); add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); add_srs_wkt (p, 12, "ORTH],AUTHORITY[\"EPSG\",\"3190\"]]"); p = add_epsg_def (filter, first, last, 3191, "epsg", 3191, "LGD2006 / Libya TM zone 6"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=11 +k=0.99995 +x_0=200000 +y"); add_proj4text (p, 1, "_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"LGD2006 / Libya TM zone 6\",GEOGCS[\"LGD2006\","); add_srs_wkt (p, 1, "DATUM[\"Libyan_Geodetic_Datum_2006\",SPHEROID[\"Internat"); add_srs_wkt (p, 2, "ional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],T"); add_srs_wkt (p, 3, "OWGS84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY[\"EP"); add_srs_wkt (p, 4, "SG\",\"6754\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4754\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",0],PARAMETER[\"central_meridian\",11],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",0.99995],PARAMETER[\"false_easting\",20"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"3191\"]]"); p = add_epsg_def (filter, first, last, 3192, "epsg", 3192, "LGD2006 / Libya TM zone 7"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=13 +k=0.99995 +x_0=200000 +y"); add_proj4text (p, 1, "_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"LGD2006 / Libya TM zone 7\",GEOGCS[\"LGD2006\","); add_srs_wkt (p, 1, "DATUM[\"Libyan_Geodetic_Datum_2006\",SPHEROID[\"Internat"); add_srs_wkt (p, 2, "ional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],T"); add_srs_wkt (p, 3, "OWGS84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY[\"EP"); add_srs_wkt (p, 4, "SG\",\"6754\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4754\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",0],PARAMETER[\"central_meridian\",13],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",0.99995],PARAMETER[\"false_easting\",20"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"3192\"]]"); p = add_epsg_def (filter, first, last, 3193, "epsg", 3193, "LGD2006 / Libya TM zone 8"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=0.99995 +x_0=200000 +y"); add_proj4text (p, 1, "_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"LGD2006 / Libya TM zone 8\",GEOGCS[\"LGD2006\","); add_srs_wkt (p, 1, "DATUM[\"Libyan_Geodetic_Datum_2006\",SPHEROID[\"Internat"); add_srs_wkt (p, 2, "ional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],T"); add_srs_wkt (p, 3, "OWGS84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY[\"EP"); add_srs_wkt (p, 4, "SG\",\"6754\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4754\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",0],PARAMETER[\"central_meridian\",15],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",0.99995],PARAMETER[\"false_easting\",20"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"3193\"]]"); p = add_epsg_def (filter, first, last, 3194, "epsg", 3194, "LGD2006 / Libya TM zone 9"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=17 +k=0.99995 +x_0=200000 +y"); add_proj4text (p, 1, "_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"LGD2006 / Libya TM zone 9\",GEOGCS[\"LGD2006\","); add_srs_wkt (p, 1, "DATUM[\"Libyan_Geodetic_Datum_2006\",SPHEROID[\"Internat"); add_srs_wkt (p, 2, "ional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],T"); add_srs_wkt (p, 3, "OWGS84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY[\"EP"); add_srs_wkt (p, 4, "SG\",\"6754\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4754\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",0],PARAMETER[\"central_meridian\",17],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",0.99995],PARAMETER[\"false_easting\",20"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"3194\"]]"); p = add_epsg_def (filter, first, last, 3195, "epsg", 3195, "LGD2006 / Libya TM zone 10"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=19 +k=0.99995 +x_0=200000 +y"); add_proj4text (p, 1, "_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"LGD2006 / Libya TM zone 10\",GEOGCS[\"LGD2006\""); add_srs_wkt (p, 1, ",DATUM[\"Libyan_Geodetic_Datum_2006\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, "TOWGS84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6754\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4754\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",19],PARAMETE"); add_srs_wkt (p, 9, "R[\"scale_factor\",0.99995],PARAMETER[\"false_easting\","); add_srs_wkt (p, 10, "200000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"3195\"]]"); p = add_epsg_def (filter, first, last, 3196, "epsg", 3196, "LGD2006 / Libya TM zone 11"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=0.99995 +x_0=200000 +y"); add_proj4text (p, 1, "_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"LGD2006 / Libya TM zone 11\",GEOGCS[\"LGD2006\""); add_srs_wkt (p, 1, ",DATUM[\"Libyan_Geodetic_Datum_2006\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, "TOWGS84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6754\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4754\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",21],PARAMETE"); add_srs_wkt (p, 9, "R[\"scale_factor\",0.99995],PARAMETER[\"false_easting\","); add_srs_wkt (p, 10, "200000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"3196\"]]"); p = add_epsg_def (filter, first, last, 3197, "epsg", 3197, "LGD2006 / Libya TM zone 12"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=23 +k=0.99995 +x_0=200000 +y"); add_proj4text (p, 1, "_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"LGD2006 / Libya TM zone 12\",GEOGCS[\"LGD2006\""); add_srs_wkt (p, 1, ",DATUM[\"Libyan_Geodetic_Datum_2006\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, "TOWGS84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6754\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4754\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",23],PARAMETE"); add_srs_wkt (p, 9, "R[\"scale_factor\",0.99995],PARAMETER[\"false_easting\","); add_srs_wkt (p, 10, "200000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"3197\"]]"); p = add_epsg_def (filter, first, last, 3198, "epsg", 3198, "LGD2006 / Libya TM zone 13"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=25 +k=0.99995 +x_0=200000 +y"); add_proj4text (p, 1, "_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"LGD2006 / Libya TM zone 13\",GEOGCS[\"LGD2006\""); add_srs_wkt (p, 1, ",DATUM[\"Libyan_Geodetic_Datum_2006\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, "TOWGS84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6754\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4754\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",25],PARAMETE"); add_srs_wkt (p, 9, "R[\"scale_factor\",0.99995],PARAMETER[\"false_easting\","); add_srs_wkt (p, 10, "200000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"3198\"]]"); p = add_epsg_def (filter, first, last, 3199, "epsg", 3199, "LGD2006 / UTM zone 32N"); add_proj4text (p, 0, "+proj=utm +zone=32 +ellps=intl +towgs84=-208.406,-109.87"); add_proj4text (p, 1, "8,-2.5764,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"LGD2006 / UTM zone 32N\",GEOGCS[\"LGD2006\",DAT"); add_srs_wkt (p, 1, "UM[\"Libyan_Geodetic_Datum_2006\",SPHEROID[\"Internation"); add_srs_wkt (p, 2, "al 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWG"); add_srs_wkt (p, 3, "S84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6754\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4754\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",9],PARAMETER[\"sc"); add_srs_wkt (p, 9, "ale_factor\",0.9996],PARAMETER[\"false_easting\",500000]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 11, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 12, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"3199\"]]"); p = add_epsg_def (filter, first, last, 3200, "epsg", 3200, "FD58 / Iraq zone"); add_proj4text (p, 0, "+proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=45 +k_0=0.99878"); add_proj4text (p, 1, "64078000001 +x_0=1500000 +y_0=1166200 +ellps=clrk80 +tow"); add_proj4text (p, 2, "gs84=-239.1,-170.02,397.5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"FD58 / Iraq zone\",GEOGCS[\"FD58\",DATUM[\"Fina"); add_srs_wkt (p, 1, "l_Datum_1958\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.14"); add_srs_wkt (p, 2, "5,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-239.1,-"); add_srs_wkt (p, 3, "170.02,397.5,0,0,0,0],AUTHORITY[\"EPSG\",\"6132\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4132\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 7, "formal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",32."); add_srs_wkt (p, 8, "5],PARAMETER[\"central_meridian\",45],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",0.9987864078],PARAMETER[\"false_easting\",15000"); add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",1166200],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 12, "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3200\"]]"); p = add_epsg_def (filter, first, last, 3201, "epsg", 3201, "LGD2006 / UTM zone 33N"); add_proj4text (p, 0, "+proj=utm +zone=33 +ellps=intl +towgs84=-208.406,-109.87"); add_proj4text (p, 1, "8,-2.5764,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"LGD2006 / UTM zone 33N\",GEOGCS[\"LGD2006\",DAT"); add_srs_wkt (p, 1, "UM[\"Libyan_Geodetic_Datum_2006\",SPHEROID[\"Internation"); add_srs_wkt (p, 2, "al 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWG"); add_srs_wkt (p, 3, "S84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6754\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4754\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",15],PARAMETER[\"s"); add_srs_wkt (p, 9, "cale_factor\",0.9996],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 10, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); add_srs_wkt (p, 12, "orthing\",NORTH],AUTHORITY[\"EPSG\",\"3201\"]]"); p = add_epsg_def (filter, first, last, 3202, "epsg", 3202, "LGD2006 / UTM zone 34N"); add_proj4text (p, 0, "+proj=utm +zone=34 +ellps=intl +towgs84=-208.406,-109.87"); add_proj4text (p, 1, "8,-2.5764,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"LGD2006 / UTM zone 34N\",GEOGCS[\"LGD2006\",DAT"); add_srs_wkt (p, 1, "UM[\"Libyan_Geodetic_Datum_2006\",SPHEROID[\"Internation"); add_srs_wkt (p, 2, "al 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWG"); add_srs_wkt (p, 3, "S84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6754\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4754\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",21],PARAMETER[\"s"); add_srs_wkt (p, 9, "cale_factor\",0.9996],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 10, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); add_srs_wkt (p, 12, "orthing\",NORTH],AUTHORITY[\"EPSG\",\"3202\"]]"); p = add_epsg_def (filter, first, last, 3203, "epsg", 3203, "LGD2006 / UTM zone 35N"); add_proj4text (p, 0, "+proj=utm +zone=35 +ellps=intl +towgs84=-208.406,-109.87"); add_proj4text (p, 1, "8,-2.5764,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"LGD2006 / UTM zone 35N\",GEOGCS[\"LGD2006\",DAT"); add_srs_wkt (p, 1, "UM[\"Libyan_Geodetic_Datum_2006\",SPHEROID[\"Internation"); add_srs_wkt (p, 2, "al 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWG"); add_srs_wkt (p, 3, "S84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6754\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4754\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",27],PARAMETER[\"s"); add_srs_wkt (p, 9, "cale_factor\",0.9996],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 10, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); add_srs_wkt (p, 12, "orthing\",NORTH],AUTHORITY[\"EPSG\",\"3203\"]]"); p = add_epsg_def (filter, first, last, 3204, "epsg", 3204, "WGS 84 / SCAR IMW SP19-20"); add_proj4text (p, 0, "+proj=lcc +lat_1=-60.66666666666666 +lat_2=-63.333333333"); add_proj4text (p, 1, "33334 +lat_0=-90 +lon_0=-66 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SP19-20\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-60.66666666666666],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-63.33333333333334],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",-66],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "204\"]]"); p = add_epsg_def (filter, first, last, 3205, "epsg", 3205, "WGS 84 / SCAR IMW SP21-22"); add_proj4text (p, 0, "+proj=lcc +lat_1=-60.66666666666666 +lat_2=-63.333333333"); add_proj4text (p, 1, "33334 +lat_0=-90 +lon_0=-54 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SP21-22\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-60.66666666666666],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-63.33333333333334],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",-54],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "205\"]]"); p = add_epsg_def (filter, first, last, 3206, "epsg", 3206, "WGS 84 / SCAR IMW SP23-24"); add_proj4text (p, 0, "+proj=lcc +lat_1=-60.66666666666666 +lat_2=-63.333333333"); add_proj4text (p, 1, "33334 +lat_0=-90 +lon_0=-42 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SP23-24\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-60.66666666666666],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-63.33333333333334],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",-42],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "206\"]]"); p = add_epsg_def (filter, first, last, 3207, "epsg", 3207, "WGS 84 / SCAR IMW SQ01-02"); add_proj4text (p, 0, "+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=-174 +x_0=0 +y_0=0 +datum=WGS84 "); add_proj4text (p, 2, "+units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SQ01-02\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-64.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-67.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",-174],PARAMETER["); add_srs_wkt (p, 10, "\"false_easting\",0],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 12, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "3207\"]]"); p = add_epsg_def (filter, first, last, 3208, "epsg", 3208, "WGS 84 / SCAR IMW SQ19-20"); add_proj4text (p, 0, "+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=-66 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SQ19-20\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-64.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-67.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",-66],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "208\"]]"); p = add_epsg_def (filter, first, last, 3209, "epsg", 3209, "WGS 84 / SCAR IMW SQ21-22"); add_proj4text (p, 0, "+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=-54 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SQ21-22\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-64.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-67.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",-54],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "209\"]]"); p = add_epsg_def (filter, first, last, 3210, "epsg", 3210, "WGS 84 / SCAR IMW SQ37-38"); add_proj4text (p, 0, "+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=42 +x_0=0 +y_0=0 +datum=WGS84 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SQ37-38\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-64.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-67.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",42],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "210\"]]"); p = add_epsg_def (filter, first, last, 3211, "epsg", 3211, "WGS 84 / SCAR IMW SQ39-40"); add_proj4text (p, 0, "+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=54 +x_0=0 +y_0=0 +datum=WGS84 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SQ39-40\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-64.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-67.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",54],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "211\"]]"); p = add_epsg_def (filter, first, last, 3212, "epsg", 3212, "WGS 84 / SCAR IMW SQ41-42"); add_proj4text (p, 0, "+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=66 +x_0=0 +y_0=0 +datum=WGS84 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SQ41-42\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-64.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-67.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",66],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "212\"]]"); p = add_epsg_def (filter, first, last, 3213, "epsg", 3213, "WGS 84 / SCAR IMW SQ43-44"); add_proj4text (p, 0, "+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=78 +x_0=0 +y_0=0 +datum=WGS84 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SQ43-44\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-64.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-67.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",78],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "213\"]]"); p = add_epsg_def (filter, first, last, 3214, "epsg", 3214, "WGS 84 / SCAR IMW SQ45-46"); add_proj4text (p, 0, "+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=90 +x_0=0 +y_0=0 +datum=WGS84 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SQ45-46\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-64.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-67.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",90],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "214\"]]"); p = add_epsg_def (filter, first, last, 3215, "epsg", 3215, "WGS 84 / SCAR IMW SQ47-48"); add_proj4text (p, 0, "+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=102 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SQ47-48\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-64.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-67.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",102],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "215\"]]"); p = add_epsg_def (filter, first, last, 3216, "epsg", 3216, "WGS 84 / SCAR IMW SQ49-50"); add_proj4text (p, 0, "+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=114 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SQ49-50\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-64.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-67.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",114],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "216\"]]"); p = add_epsg_def (filter, first, last, 3217, "epsg", 3217, "WGS 84 / SCAR IMW SQ51-52"); add_proj4text (p, 0, "+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=126 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SQ51-52\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-64.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-67.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",126],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "217\"]]"); p = add_epsg_def (filter, first, last, 3218, "epsg", 3218, "WGS 84 / SCAR IMW SQ53-54"); add_proj4text (p, 0, "+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=138 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SQ53-54\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-64.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-67.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",138],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "218\"]]"); p = add_epsg_def (filter, first, last, 3219, "epsg", 3219, "WGS 84 / SCAR IMW SQ55-56"); add_proj4text (p, 0, "+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=150 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SQ55-56\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-64.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-67.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",150],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "219\"]]"); p = add_epsg_def (filter, first, last, 3220, "epsg", 3220, "WGS 84 / SCAR IMW SQ57-58"); add_proj4text (p, 0, "+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=162 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SQ57-58\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-64.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-67.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",162],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "220\"]]"); p = add_epsg_def (filter, first, last, 3221, "epsg", 3221, "WGS 84 / SCAR IMW SR13-14"); add_proj4text (p, 0, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=-102 +x_0=0 +y_0=0 +datum=WGS84 "); add_proj4text (p, 2, "+units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SR13-14\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-68.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-71.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",-102],PARAMETER["); add_srs_wkt (p, 10, "\"false_easting\",0],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 12, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "3221\"]]"); p = add_epsg_def (filter, first, last, 3222, "epsg", 3222, "WGS 84 / SCAR IMW SR15-16"); add_proj4text (p, 0, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=-90 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SR15-16\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-68.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-71.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",-90],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "222\"]]"); p = add_epsg_def (filter, first, last, 3223, "epsg", 3223, "WGS 84 / SCAR IMW SR17-18"); add_proj4text (p, 0, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=-78 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SR17-18\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-68.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-71.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",-78],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "223\"]]"); p = add_epsg_def (filter, first, last, 3224, "epsg", 3224, "WGS 84 / SCAR IMW SR19-20"); add_proj4text (p, 0, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=-66 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SR19-20\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-68.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-71.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",-66],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "224\"]]"); p = add_epsg_def (filter, first, last, 3225, "epsg", 3225, "WGS 84 / SCAR IMW SR27-28"); add_proj4text (p, 0, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=-18 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SR27-28\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-68.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-71.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",-18],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "225\"]]"); p = add_epsg_def (filter, first, last, 3226, "epsg", 3226, "WGS 84 / SCAR IMW SR29-30"); add_proj4text (p, 0, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=-6 +x_0=0 +y_0=0 +datum=WGS84 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SR29-30\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-68.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-71.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",-6],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "226\"]]"); p = add_epsg_def (filter, first, last, 3227, "epsg", 3227, "WGS 84 / SCAR IMW SR31-32"); add_proj4text (p, 0, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=6 +x_0=0 +y_0=0 +datum=WGS84 +un"); add_proj4text (p, 2, "its=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SR31-32\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-68.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-71.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",6],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"322"); add_srs_wkt (p, 13, "7\"]]"); p = add_epsg_def (filter, first, last, 3228, "epsg", 3228, "WGS 84 / SCAR IMW SR33-34"); add_proj4text (p, 0, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=18 +x_0=0 +y_0=0 +datum=WGS84 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SR33-34\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-68.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-71.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",18],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "228\"]]"); p = add_epsg_def (filter, first, last, 3229, "epsg", 3229, "WGS 84 / SCAR IMW SR35-36"); add_proj4text (p, 0, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=30 +x_0=0 +y_0=0 +datum=WGS84 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SR35-36\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-68.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-71.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",30],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "229\"]]"); p = add_epsg_def (filter, first, last, 3230, "epsg", 3230, "WGS 84 / SCAR IMW SR37-38"); add_proj4text (p, 0, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=42 +x_0=0 +y_0=0 +datum=WGS84 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SR37-38\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-68.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-71.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",42],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "230\"]]"); p = add_epsg_def (filter, first, last, 3231, "epsg", 3231, "WGS 84 / SCAR IMW SR39-40"); add_proj4text (p, 0, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=54 +x_0=0 +y_0=0 +datum=WGS84 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SR39-40\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-68.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-71.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",54],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "231\"]]"); p = add_epsg_def (filter, first, last, 3232, "epsg", 3232, "WGS 84 / SCAR IMW SR41-42"); add_proj4text (p, 0, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=66 +x_0=0 +y_0=0 +datum=WGS84 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SR41-42\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-68.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-71.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",66],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "232\"]]"); p = add_epsg_def (filter, first, last, 3233, "epsg", 3233, "WGS 84 / SCAR IMW SR43-44"); add_proj4text (p, 0, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=78 +x_0=0 +y_0=0 +datum=WGS84 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SR43-44\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-68.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-71.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",78],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "233\"]]"); p = add_epsg_def (filter, first, last, 3234, "epsg", 3234, "WGS 84 / SCAR IMW SR45-46"); add_proj4text (p, 0, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=90 +x_0=0 +y_0=0 +datum=WGS84 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SR45-46\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-68.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-71.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",90],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "234\"]]"); p = add_epsg_def (filter, first, last, 3235, "epsg", 3235, "WGS 84 / SCAR IMW SR47-48"); add_proj4text (p, 0, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=102 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SR47-48\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-68.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-71.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",102],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "235\"]]"); p = add_epsg_def (filter, first, last, 3236, "epsg", 3236, "WGS 84 / SCAR IMW SR49-50"); add_proj4text (p, 0, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=114 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SR49-50\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-68.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-71.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",114],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "236\"]]"); p = add_epsg_def (filter, first, last, 3237, "epsg", 3237, "WGS 84 / SCAR IMW SR51-52"); add_proj4text (p, 0, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=126 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SR51-52\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-68.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-71.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",126],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "237\"]]"); p = add_epsg_def (filter, first, last, 3238, "epsg", 3238, "WGS 84 / SCAR IMW SR53-54"); add_proj4text (p, 0, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=138 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SR53-54\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-68.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-71.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",138],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "238\"]]"); p = add_epsg_def (filter, first, last, 3239, "epsg", 3239, "WGS 84 / SCAR IMW SR55-56"); add_proj4text (p, 0, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=150 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SR55-56\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-68.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-71.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",150],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "239\"]]"); p = add_epsg_def (filter, first, last, 3240, "epsg", 3240, "WGS 84 / SCAR IMW SR57-58"); add_proj4text (p, 0, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=162 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SR57-58\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-68.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-71.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",162],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "240\"]]"); p = add_epsg_def (filter, first, last, 3241, "epsg", 3241, "WGS 84 / SCAR IMW SR59-60"); add_proj4text (p, 0, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=174 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SR59-60\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-68.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-71.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",174],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "241\"]]"); p = add_epsg_def (filter, first, last, 3242, "epsg", 3242, "WGS 84 / SCAR IMW SS04-06"); add_proj4text (p, 0, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=-153 +x_0=0 +y_0=0 +datum=WGS84 "); add_proj4text (p, 2, "+units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SS04-06\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-72.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-75.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",-153],PARAMETER["); add_srs_wkt (p, 10, "\"false_easting\",0],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 12, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "3242\"]]"); p = add_epsg_def (filter, first, last, 3243, "epsg", 3243, "WGS 84 / SCAR IMW SS07-09"); add_proj4text (p, 0, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=-135 +x_0=0 +y_0=0 +datum=WGS84 "); add_proj4text (p, 2, "+units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SS07-09\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-72.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-75.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",-135],PARAMETER["); add_srs_wkt (p, 10, "\"false_easting\",0],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 12, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "3243\"]]"); } #endif /* full EPSG initialization enabled/disabled */ libspatialite-4.1.1/src/srsinit/epsg_inlined_34.c0000664000175000017500000046333612163502133016675 00000000000000/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_34 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def (filter, first, last, 28463, "epsg", 28463, "Pulkovo 1942 / Gauss-Kruger 3N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 3N (deprecated)\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "5],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28463\"]]"); p = add_epsg_def (filter, first, last, 28464, "epsg", 28464, "Pulkovo 1942 / Gauss-Kruger 4N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 4N (deprecated)\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",2"); add_srs_wkt (p, 9, "1],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28464\"]]"); p = add_epsg_def (filter, first, last, 28465, "epsg", 28465, "Pulkovo 1942 / Gauss-Kruger 5N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 5N (deprecated)\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",2"); add_srs_wkt (p, 9, "7],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28465\"]]"); p = add_epsg_def (filter, first, last, 28466, "epsg", 28466, "Pulkovo 1942 / Gauss-Kruger 6N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 6N (deprecated)\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",3"); add_srs_wkt (p, 9, "3],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28466\"]]"); p = add_epsg_def (filter, first, last, 28467, "epsg", 28467, "Pulkovo 1942 / Gauss-Kruger 7N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 7N (deprecated)\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",3"); add_srs_wkt (p, 9, "9],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28467\"]]"); p = add_epsg_def (filter, first, last, 28468, "epsg", 28468, "Pulkovo 1942 / Gauss-Kruger 8N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 8N (deprecated)\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",4"); add_srs_wkt (p, 9, "5],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28468\"]]"); p = add_epsg_def (filter, first, last, 28469, "epsg", 28469, "Pulkovo 1942 / Gauss-Kruger 9N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 9N (deprecated)\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",5"); add_srs_wkt (p, 9, "1],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28469\"]]"); p = add_epsg_def (filter, first, last, 28470, "epsg", 28470, "Pulkovo 1942 / Gauss-Kruger 10N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 10N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",5"); add_srs_wkt (p, 9, "7],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28470\"]]"); p = add_epsg_def (filter, first, last, 28471, "epsg", 28471, "Pulkovo 1942 / Gauss-Kruger 11N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 11N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",6"); add_srs_wkt (p, 9, "3],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28471\"]]"); p = add_epsg_def (filter, first, last, 28472, "epsg", 28472, "Pulkovo 1942 / Gauss-Kruger 12N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 12N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",6"); add_srs_wkt (p, 9, "9],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28472\"]]"); p = add_epsg_def (filter, first, last, 28473, "epsg", 28473, "Pulkovo 1942 / Gauss-Kruger 13N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 13N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",7"); add_srs_wkt (p, 9, "5],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28473\"]]"); p = add_epsg_def (filter, first, last, 28474, "epsg", 28474, "Pulkovo 1942 / Gauss-Kruger 14N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 14N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",8"); add_srs_wkt (p, 9, "1],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28474\"]]"); p = add_epsg_def (filter, first, last, 28475, "epsg", 28475, "Pulkovo 1942 / Gauss-Kruger 15N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 15N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",8"); add_srs_wkt (p, 9, "7],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28475\"]]"); p = add_epsg_def (filter, first, last, 28476, "epsg", 28476, "Pulkovo 1942 / Gauss-Kruger 16N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 16N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",9"); add_srs_wkt (p, 9, "3],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28476\"]]"); p = add_epsg_def (filter, first, last, 28477, "epsg", 28477, "Pulkovo 1942 / Gauss-Kruger 17N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 17N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",9"); add_srs_wkt (p, 9, "9],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28477\"]]"); p = add_epsg_def (filter, first, last, 28478, "epsg", 28478, "Pulkovo 1942 / Gauss-Kruger 18N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 18N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "05],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28478\"]]"); p = add_epsg_def (filter, first, last, 28479, "epsg", 28479, "Pulkovo 1942 / Gauss-Kruger 19N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 19N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "11],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28479\"]]"); p = add_epsg_def (filter, first, last, 28480, "epsg", 28480, "Pulkovo 1942 / Gauss-Kruger 20N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 20N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "17],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28480\"]]"); p = add_epsg_def (filter, first, last, 28481, "epsg", 28481, "Pulkovo 1942 / Gauss-Kruger 21N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 21N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "23],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28481\"]]"); p = add_epsg_def (filter, first, last, 28482, "epsg", 28482, "Pulkovo 1942 / Gauss-Kruger 22N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 22N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "29],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28482\"]]"); p = add_epsg_def (filter, first, last, 28483, "epsg", 28483, "Pulkovo 1942 / Gauss-Kruger 23N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 23N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "35],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28483\"]]"); p = add_epsg_def (filter, first, last, 28484, "epsg", 28484, "Pulkovo 1942 / Gauss-Kruger 24N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 24N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "41],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28484\"]]"); p = add_epsg_def (filter, first, last, 28485, "epsg", 28485, "Pulkovo 1942 / Gauss-Kruger 25N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 25N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "47],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28485\"]]"); p = add_epsg_def (filter, first, last, 28486, "epsg", 28486, "Pulkovo 1942 / Gauss-Kruger 26N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 26N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "53],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28486\"]]"); p = add_epsg_def (filter, first, last, 28487, "epsg", 28487, "Pulkovo 1942 / Gauss-Kruger 27N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 27N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "59],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28487\"]]"); p = add_epsg_def (filter, first, last, 28488, "epsg", 28488, "Pulkovo 1942 / Gauss-Kruger 28N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 28N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "65],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28488\"]]"); p = add_epsg_def (filter, first, last, 28489, "epsg", 28489, "Pulkovo 1942 / Gauss-Kruger 29N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 29N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "71],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28489\"]]"); p = add_epsg_def (filter, first, last, 28490, "epsg", 28490, "Pulkovo 1942 / Gauss-Kruger 30N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 30N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "77],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28490\"]]"); p = add_epsg_def (filter, first, last, 28491, "epsg", 28491, "Pulkovo 1942 / Gauss-Kruger 31N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 31N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "177],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28491\"]]"); p = add_epsg_def (filter, first, last, 28492, "epsg", 28492, "Pulkovo 1942 / Gauss-Kruger 32N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 32N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "171],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28492\"]]"); p = add_epsg_def (filter, first, last, 28600, "epsg", 28600, "Qatar 1974 / Qatar National Grid"); add_proj4text (p, 0, "+proj=tmerc +lat_0=24.45 +lon_0=51.21666666666667 +k=0.9"); add_proj4text (p, 1, "9999 +x_0=200000 +y_0=300000 +ellps=intl +towgs84=-128.1"); add_proj4text (p, 2, "6,-282.42,21.93,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Qatar 1974 / Qatar National Grid\",GEOGCS[\"Qat"); add_srs_wkt (p, 1, "ar 1974\",DATUM[\"Qatar_1974\",SPHEROID[\"International "); add_srs_wkt (p, 2, "1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84"); add_srs_wkt (p, 3, "[-128.16,-282.42,21.93,0,0,0,0],AUTHORITY[\"EPSG\",\"628"); add_srs_wkt (p, 4, "5\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4285\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",2"); add_srs_wkt (p, 8, "4.45],PARAMETER[\"central_meridian\",51.21666666666667],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.99999],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",200000],PARAMETER[\"false_northing\",300000],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 12, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "28600\"]]"); p = add_epsg_def (filter, first, last, 28991, "epsg", 28991, "Amersfoort / RD Old"); add_proj4text (p, 0, "+proj=sterea +lat_0=52.15616055555555 +lon_0=5.387638888"); add_proj4text (p, 1, "88889 +k=0.9999079 +x_0=0 +y_0=0 +ellps=bessel +towgs84="); add_proj4text (p, 2, "565.417,50.3319,465.552,-0.398957,0.343988,-1.8774,4.072"); add_proj4text (p, 3, "5 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Amersfoort / RD Old\",GEOGCS[\"Amersfoort\",DAT"); add_srs_wkt (p, 1, "UM[\"Amersfoort\",SPHEROID[\"Bessel 1841\",6377397.155,2"); add_srs_wkt (p, 2, "99.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[565.417"); add_srs_wkt (p, 3, ",50.3319,465.552,-0.398957,0.343988,-1.8774,4.0725],AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"6289\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"428"); add_srs_wkt (p, 7, "9\"]],PROJECTION[\"Oblique_Stereographic\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",52.15616055555555],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",5.38763888888889],PARAMETER[\"scale_facto"); add_srs_wkt (p, 10, "r\",0.9999079],PARAMETER[\"false_easting\",0],PARAMETER["); add_srs_wkt (p, 11, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"28991\"]]"); p = add_epsg_def (filter, first, last, 28992, "epsg", 28992, "Amersfoort / RD New"); add_proj4text (p, 0, "+proj=sterea +lat_0=52.15616055555555 +lon_0=5.387638888"); add_proj4text (p, 1, "88889 +k=0.9999079 +x_0=155000 +y_0=463000 +ellps=bessel"); add_proj4text (p, 2, " +towgs84=565.417,50.3319,465.552,-0.398957,0.343988,-1."); add_proj4text (p, 3, "8774,4.0725 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Amersfoort / RD New\",GEOGCS[\"Amersfoort\",DAT"); add_srs_wkt (p, 1, "UM[\"Amersfoort\",SPHEROID[\"Bessel 1841\",6377397.155,2"); add_srs_wkt (p, 2, "99.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[565.417"); add_srs_wkt (p, 3, ",50.3319,465.552,-0.398957,0.343988,-1.8774,4.0725],AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"6289\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"428"); add_srs_wkt (p, 7, "9\"]],PROJECTION[\"Oblique_Stereographic\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",52.15616055555555],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",5.38763888888889],PARAMETER[\"scale_facto"); add_srs_wkt (p, 10, "r\",0.9999079],PARAMETER[\"false_easting\",155000],PARAM"); add_srs_wkt (p, 11, "ETER[\"false_northing\",463000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"28992\"]]"); p = add_epsg_def (filter, first, last, 29100, "epsg", 29100, "SAD69 / Brazil Polyconic (deprecated)"); add_proj4text (p, 0, "+proj=poly +lat_0=0 +lon_0=-54 +x_0=5000000 +y_0=1000000"); add_proj4text (p, 1, "0 +ellps=GRS67 +towgs84=-57,1,-41,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / Brazil Polyconic (deprecated)\",GEOGCS["); add_srs_wkt (p, 1, "\"SAD69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\""); add_srs_wkt (p, 2, "GRS 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "36\"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "291\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\""); add_srs_wkt (p, 7, "Polyconic\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-54],PARAMETER[\"false_easting\""); add_srs_wkt (p, 9, ",5000000],PARAMETER[\"false_northing\",10000000],UNIT[\""); add_srs_wkt (p, 10, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 11, ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"29100\"]]"); p = add_epsg_def (filter, first, last, 29101, "epsg", 29101, "SAD69 / Brazil Polyconic"); add_proj4text (p, 0, "+proj=poly +lat_0=0 +lon_0=-54 +x_0=5000000 +y_0=1000000"); add_proj4text (p, 1, "0 +ellps=aust_SA +towgs84=-57,1,-41,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / Brazil Polyconic\",GEOGCS[\"SAD69\",DAT"); add_srs_wkt (p, 1, "UM[\"South_American_Datum_1969\",SPHEROID[\"GRS 1967 Mod"); add_srs_wkt (p, 2, "ified\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOW"); add_srs_wkt (p, 3, "GS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AUTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Polyconic\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-54],PARAMETER[\"false_easting\",5000000],P"); add_srs_wkt (p, 9, "ARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,A"); add_srs_wkt (p, 10, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 11, ",NORTH],AUTHORITY[\"EPSG\",\"29101\"]]"); p = add_epsg_def (filter, first, last, 29118, "epsg", 29118, "SAD69 / UTM zone 18N (deprecated)"); add_proj4text (p, 0, "+proj=utm +zone=18 +ellps=GRS67 +towgs84=-57,1,-41,0,0,0"); add_proj4text (p, 1, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 18N (deprecated)\",GEOGCS[\"SA"); add_srs_wkt (p, 1, "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\""); add_srs_wkt (p, 3, "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, "ARAMETER[\"central_meridian\",-75],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"29118\"]]"); p = add_epsg_def (filter, first, last, 29119, "epsg", 29119, "SAD69 / UTM zone 19N (deprecated)"); add_proj4text (p, 0, "+proj=utm +zone=19 +ellps=GRS67 +towgs84=-57,1,-41,0,0,0"); add_proj4text (p, 1, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 19N (deprecated)\",GEOGCS[\"SA"); add_srs_wkt (p, 1, "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\""); add_srs_wkt (p, 3, "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, "ARAMETER[\"central_meridian\",-69],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"29119\"]]"); p = add_epsg_def (filter, first, last, 29120, "epsg", 29120, "SAD69 / UTM zone 20N (deprecated)"); add_proj4text (p, 0, "+proj=utm +zone=20 +ellps=GRS67 +towgs84=-57,1,-41,0,0,0"); add_proj4text (p, 1, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 20N (deprecated)\",GEOGCS[\"SA"); add_srs_wkt (p, 1, "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\""); add_srs_wkt (p, 3, "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, "ARAMETER[\"central_meridian\",-63],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"29120\"]]"); p = add_epsg_def (filter, first, last, 29121, "epsg", 29121, "SAD69 / UTM zone 21N (deprecated)"); add_proj4text (p, 0, "+proj=utm +zone=21 +ellps=GRS67 +towgs84=-57,1,-41,0,0,0"); add_proj4text (p, 1, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 21N (deprecated)\",GEOGCS[\"SA"); add_srs_wkt (p, 1, "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\""); add_srs_wkt (p, 3, "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, "ARAMETER[\"central_meridian\",-57],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"29121\"]]"); p = add_epsg_def (filter, first, last, 29122, "epsg", 29122, "SAD69 / UTM zone 22N (deprecated)"); add_proj4text (p, 0, "+proj=utm +zone=22 +ellps=GRS67 +towgs84=-57,1,-41,0,0,0"); add_proj4text (p, 1, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 22N (deprecated)\",GEOGCS[\"SA"); add_srs_wkt (p, 1, "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\""); add_srs_wkt (p, 3, "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, "ARAMETER[\"central_meridian\",-51],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"29122\"]]"); p = add_epsg_def (filter, first, last, 29168, "epsg", 29168, "SAD69 / UTM zone 18N"); add_proj4text (p, 0, "+proj=utm +zone=18 +ellps=aust_SA +towgs84=-57,1,-41,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 18N\",GEOGCS[\"SAD69\",DATUM[\""); add_srs_wkt (p, 1, "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); add_srs_wkt (p, 2, "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); add_srs_wkt (p, 3, "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 7, "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, "central_meridian\",-75],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 9, "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 10, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 11, "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"29168\"]]"); p = add_epsg_def (filter, first, last, 29169, "epsg", 29169, "SAD69 / UTM zone 19N"); add_proj4text (p, 0, "+proj=utm +zone=19 +ellps=aust_SA +towgs84=-57,1,-41,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 19N\",GEOGCS[\"SAD69\",DATUM[\""); add_srs_wkt (p, 1, "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); add_srs_wkt (p, 2, "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); add_srs_wkt (p, 3, "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 7, "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, "central_meridian\",-69],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 9, "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 10, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 11, "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"29169\"]]"); p = add_epsg_def (filter, first, last, 29170, "epsg", 29170, "SAD69 / UTM zone 20N"); add_proj4text (p, 0, "+proj=utm +zone=20 +ellps=aust_SA +towgs84=-57,1,-41,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 20N\",GEOGCS[\"SAD69\",DATUM[\""); add_srs_wkt (p, 1, "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); add_srs_wkt (p, 2, "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); add_srs_wkt (p, 3, "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 7, "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, "central_meridian\",-63],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 9, "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 10, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 11, "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"29170\"]]"); p = add_epsg_def (filter, first, last, 29171, "epsg", 29171, "SAD69 / UTM zone 21N"); add_proj4text (p, 0, "+proj=utm +zone=21 +ellps=aust_SA +towgs84=-57,1,-41,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 21N\",GEOGCS[\"SAD69\",DATUM[\""); add_srs_wkt (p, 1, "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); add_srs_wkt (p, 2, "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); add_srs_wkt (p, 3, "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 7, "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, "central_meridian\",-57],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 9, "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 10, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 11, "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"29171\"]]"); p = add_epsg_def (filter, first, last, 29172, "epsg", 29172, "SAD69 / UTM zone 22N"); add_proj4text (p, 0, "+proj=utm +zone=22 +ellps=aust_SA +towgs84=-57,1,-41,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 22N\",GEOGCS[\"SAD69\",DATUM[\""); add_srs_wkt (p, 1, "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); add_srs_wkt (p, 2, "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); add_srs_wkt (p, 3, "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 7, "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, "central_meridian\",-51],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 9, "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 10, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 11, "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"29172\"]]"); p = add_epsg_def (filter, first, last, 29177, "epsg", 29177, "SAD69 / UTM zone 17S (deprecated)"); add_proj4text (p, 0, "+proj=utm +zone=17 +south +ellps=GRS67 +towgs84=-57,1,-4"); add_proj4text (p, 1, "1,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 17S (deprecated)\",GEOGCS[\"SA"); add_srs_wkt (p, 1, "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\""); add_srs_wkt (p, 3, "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, "ARAMETER[\"central_meridian\",-81],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 11, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 12, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"29177\"]]"); p = add_epsg_def (filter, first, last, 29178, "epsg", 29178, "SAD69 / UTM zone 18S (deprecated)"); add_proj4text (p, 0, "+proj=utm +zone=18 +south +ellps=GRS67 +towgs84=-57,1,-4"); add_proj4text (p, 1, "1,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 18S (deprecated)\",GEOGCS[\"SA"); add_srs_wkt (p, 1, "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\""); add_srs_wkt (p, 3, "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, "ARAMETER[\"central_meridian\",-75],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 11, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 12, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"29178\"]]"); p = add_epsg_def (filter, first, last, 29179, "epsg", 29179, "SAD69 / UTM zone 19S (deprecated)"); add_proj4text (p, 0, "+proj=utm +zone=19 +south +ellps=GRS67 +towgs84=-57,1,-4"); add_proj4text (p, 1, "1,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 19S (deprecated)\",GEOGCS[\"SA"); add_srs_wkt (p, 1, "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\""); add_srs_wkt (p, 3, "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, "ARAMETER[\"central_meridian\",-69],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 11, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 12, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"29179\"]]"); p = add_epsg_def (filter, first, last, 29180, "epsg", 29180, "SAD69 / UTM zone 20S (deprecated)"); add_proj4text (p, 0, "+proj=utm +zone=20 +south +ellps=GRS67 +towgs84=-57,1,-4"); add_proj4text (p, 1, "1,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 20S (deprecated)\",GEOGCS[\"SA"); add_srs_wkt (p, 1, "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\""); add_srs_wkt (p, 3, "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, "ARAMETER[\"central_meridian\",-63],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 11, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 12, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"29180\"]]"); p = add_epsg_def (filter, first, last, 29181, "epsg", 29181, "SAD69 / UTM zone 21S (deprecated)"); add_proj4text (p, 0, "+proj=utm +zone=21 +south +ellps=GRS67 +towgs84=-57,1,-4"); add_proj4text (p, 1, "1,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 21S (deprecated)\",GEOGCS[\"SA"); add_srs_wkt (p, 1, "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\""); add_srs_wkt (p, 3, "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, "ARAMETER[\"central_meridian\",-57],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 11, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 12, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"29181\"]]"); p = add_epsg_def (filter, first, last, 29182, "epsg", 29182, "SAD69 / UTM zone 22S (deprecated)"); add_proj4text (p, 0, "+proj=utm +zone=22 +south +ellps=GRS67 +towgs84=-57,1,-4"); add_proj4text (p, 1, "1,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 22S (deprecated)\",GEOGCS[\"SA"); add_srs_wkt (p, 1, "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\""); add_srs_wkt (p, 3, "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, "ARAMETER[\"central_meridian\",-51],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 11, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 12, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"29182\"]]"); p = add_epsg_def (filter, first, last, 29183, "epsg", 29183, "SAD69 / UTM zone 23S (deprecated)"); add_proj4text (p, 0, "+proj=utm +zone=23 +south +ellps=GRS67 +towgs84=-57,1,-4"); add_proj4text (p, 1, "1,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 23S (deprecated)\",GEOGCS[\"SA"); add_srs_wkt (p, 1, "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\""); add_srs_wkt (p, 3, "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, "ARAMETER[\"central_meridian\",-45],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 11, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 12, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"29183\"]]"); p = add_epsg_def (filter, first, last, 29184, "epsg", 29184, "SAD69 / UTM zone 24S (deprecated)"); add_proj4text (p, 0, "+proj=utm +zone=24 +south +ellps=GRS67 +towgs84=-57,1,-4"); add_proj4text (p, 1, "1,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 24S (deprecated)\",GEOGCS[\"SA"); add_srs_wkt (p, 1, "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\""); add_srs_wkt (p, 3, "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, "ARAMETER[\"central_meridian\",-39],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 11, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 12, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"29184\"]]"); p = add_epsg_def (filter, first, last, 29185, "epsg", 29185, "SAD69 / UTM zone 25S (deprecated)"); add_proj4text (p, 0, "+proj=utm +zone=25 +south +ellps=GRS67 +towgs84=-57,1,-4"); add_proj4text (p, 1, "1,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 25S (deprecated)\",GEOGCS[\"SA"); add_srs_wkt (p, 1, "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\""); add_srs_wkt (p, 3, "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, "ARAMETER[\"central_meridian\",-33],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 11, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 12, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"29185\"]]"); p = add_epsg_def (filter, first, last, 29187, "epsg", 29187, "SAD69 / UTM zone 17S"); add_proj4text (p, 0, "+proj=utm +zone=17 +south +ellps=aust_SA +towgs84=-57,1,"); add_proj4text (p, 1, "-41,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 17S\",GEOGCS[\"SAD69\",DATUM[\""); add_srs_wkt (p, 1, "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); add_srs_wkt (p, 2, "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); add_srs_wkt (p, 3, "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 7, "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, "central_meridian\",-81],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 9, "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 10, "_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); add_srs_wkt (p, 12, "TH],AUTHORITY[\"EPSG\",\"29187\"]]"); p = add_epsg_def (filter, first, last, 29188, "epsg", 29188, "SAD69 / UTM zone 18S"); add_proj4text (p, 0, "+proj=utm +zone=18 +south +ellps=aust_SA +towgs84=-57,1,"); add_proj4text (p, 1, "-41,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 18S\",GEOGCS[\"SAD69\",DATUM[\""); add_srs_wkt (p, 1, "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); add_srs_wkt (p, 2, "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); add_srs_wkt (p, 3, "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 7, "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, "central_meridian\",-75],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 9, "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 10, "_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); add_srs_wkt (p, 12, "TH],AUTHORITY[\"EPSG\",\"29188\"]]"); p = add_epsg_def (filter, first, last, 29189, "epsg", 29189, "SAD69 / UTM zone 19S"); add_proj4text (p, 0, "+proj=utm +zone=19 +south +ellps=aust_SA +towgs84=-57,1,"); add_proj4text (p, 1, "-41,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 19S\",GEOGCS[\"SAD69\",DATUM[\""); add_srs_wkt (p, 1, "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); add_srs_wkt (p, 2, "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); add_srs_wkt (p, 3, "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 7, "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, "central_meridian\",-69],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 9, "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 10, "_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); add_srs_wkt (p, 12, "TH],AUTHORITY[\"EPSG\",\"29189\"]]"); p = add_epsg_def (filter, first, last, 29190, "epsg", 29190, "SAD69 / UTM zone 20S"); add_proj4text (p, 0, "+proj=utm +zone=20 +south +ellps=aust_SA +towgs84=-57,1,"); add_proj4text (p, 1, "-41,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 20S\",GEOGCS[\"SAD69\",DATUM[\""); add_srs_wkt (p, 1, "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); add_srs_wkt (p, 2, "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); add_srs_wkt (p, 3, "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 7, "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, "central_meridian\",-63],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 9, "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 10, "_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); add_srs_wkt (p, 12, "TH],AUTHORITY[\"EPSG\",\"29190\"]]"); p = add_epsg_def (filter, first, last, 29191, "epsg", 29191, "SAD69 / UTM zone 21S"); add_proj4text (p, 0, "+proj=utm +zone=21 +south +ellps=aust_SA +towgs84=-57,1,"); add_proj4text (p, 1, "-41,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 21S\",GEOGCS[\"SAD69\",DATUM[\""); add_srs_wkt (p, 1, "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); add_srs_wkt (p, 2, "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); add_srs_wkt (p, 3, "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 7, "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, "central_meridian\",-57],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 9, "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 10, "_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); add_srs_wkt (p, 12, "TH],AUTHORITY[\"EPSG\",\"29191\"]]"); p = add_epsg_def (filter, first, last, 29192, "epsg", 29192, "SAD69 / UTM zone 22S"); add_proj4text (p, 0, "+proj=utm +zone=22 +south +ellps=aust_SA +towgs84=-57,1,"); add_proj4text (p, 1, "-41,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 22S\",GEOGCS[\"SAD69\",DATUM[\""); add_srs_wkt (p, 1, "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); add_srs_wkt (p, 2, "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); add_srs_wkt (p, 3, "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 7, "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, "central_meridian\",-51],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 9, "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 10, "_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); add_srs_wkt (p, 12, "TH],AUTHORITY[\"EPSG\",\"29192\"]]"); p = add_epsg_def (filter, first, last, 29193, "epsg", 29193, "SAD69 / UTM zone 23S"); add_proj4text (p, 0, "+proj=utm +zone=23 +south +ellps=aust_SA +towgs84=-57,1,"); add_proj4text (p, 1, "-41,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 23S\",GEOGCS[\"SAD69\",DATUM[\""); add_srs_wkt (p, 1, "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); add_srs_wkt (p, 2, "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); add_srs_wkt (p, 3, "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 7, "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, "central_meridian\",-45],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 9, "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 10, "_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); add_srs_wkt (p, 12, "TH],AUTHORITY[\"EPSG\",\"29193\"]]"); p = add_epsg_def (filter, first, last, 29194, "epsg", 29194, "SAD69 / UTM zone 24S"); add_proj4text (p, 0, "+proj=utm +zone=24 +south +ellps=aust_SA +towgs84=-57,1,"); add_proj4text (p, 1, "-41,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 24S\",GEOGCS[\"SAD69\",DATUM[\""); add_srs_wkt (p, 1, "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); add_srs_wkt (p, 2, "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); add_srs_wkt (p, 3, "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 7, "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, "central_meridian\",-39],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 9, "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 10, "_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); add_srs_wkt (p, 12, "TH],AUTHORITY[\"EPSG\",\"29194\"]]"); p = add_epsg_def (filter, first, last, 29195, "epsg", 29195, "SAD69 / UTM zone 25S"); add_proj4text (p, 0, "+proj=utm +zone=25 +south +ellps=aust_SA +towgs84=-57,1,"); add_proj4text (p, 1, "-41,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 25S\",GEOGCS[\"SAD69\",DATUM[\""); add_srs_wkt (p, 1, "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); add_srs_wkt (p, 2, "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); add_srs_wkt (p, 3, "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 7, "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, "central_meridian\",-33],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 9, "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 10, "_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); add_srs_wkt (p, 12, "TH],AUTHORITY[\"EPSG\",\"29195\"]]"); p = add_epsg_def (filter, first, last, 29220, "epsg", 29220, "Sapper Hill 1943 / UTM zone 20S"); add_proj4text (p, 0, "+proj=utm +zone=20 +south +ellps=intl +towgs84=-355,21,7"); add_proj4text (p, 1, "2,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Sapper Hill 1943 / UTM zone 20S\",GEOGCS[\"Sapp"); add_srs_wkt (p, 1, "er Hill 1943\",DATUM[\"Sapper_Hill_1943\",SPHEROID[\"Int"); add_srs_wkt (p, 2, "ernational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); add_srs_wkt (p, 3, "]],TOWGS84[-355,21,72,0,0,0,0],AUTHORITY[\"EPSG\",\"6292"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4292\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-63],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"29220\"]]"); p = add_epsg_def (filter, first, last, 29221, "epsg", 29221, "Sapper Hill 1943 / UTM zone 21S"); add_proj4text (p, 0, "+proj=utm +zone=21 +south +ellps=intl +towgs84=-355,21,7"); add_proj4text (p, 1, "2,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Sapper Hill 1943 / UTM zone 21S\",GEOGCS[\"Sapp"); add_srs_wkt (p, 1, "er Hill 1943\",DATUM[\"Sapper_Hill_1943\",SPHEROID[\"Int"); add_srs_wkt (p, 2, "ernational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); add_srs_wkt (p, 3, "]],TOWGS84[-355,21,72,0,0,0,0],AUTHORITY[\"EPSG\",\"6292"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4292\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-57],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"29221\"]]"); p = add_epsg_def (filter, first, last, 29333, "epsg", 29333, "Schwarzeck / UTM zone 33S"); add_proj4text (p, 0, "+proj=utm +zone=33 +south +ellps=bess_nam +towgs84=616,9"); add_proj4text (p, 1, "7,-251,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Schwarzeck / UTM zone 33S\",GEOGCS[\"Schwarzeck"); add_srs_wkt (p, 1, "\",DATUM[\"Schwarzeck\",SPHEROID[\"Bessel Namibia (GLM)\""); add_srs_wkt (p, 2, ",6377483.865280419,299.1528128,AUTHORITY[\"EPSG\",\"7046"); add_srs_wkt (p, 3, "\"]],TOWGS84[616,97,-251,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "293\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4293\"]],PROJECTION[\""); add_srs_wkt (p, 7, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, "0],PARAMETER[\"central_meridian\",15],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"29333\"]]"); p = add_epsg_def (filter, first, last, 29371, "epsg", 29371, "Schwarzeck / Lo22/11"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-22 +lon_0=11 +k=1 +x_0=0 +y_0=0 +axi"); add_proj4text (p, 1, "s=wsu +ellps=bess_nam +towgs84=616,97,-251,0,0,0,0 +to_m"); add_proj4text (p, 2, "eter=1.0000135965 +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Schwarzeck / Lo22/11\",GEOGCS[\"Schwarzeck\",DA"); add_srs_wkt (p, 1, "TUM[\"Schwarzeck\",SPHEROID[\"Bessel Namibia (GLM)\",637"); add_srs_wkt (p, 2, "7483.865280419,299.1528128,AUTHORITY[\"EPSG\",\"7046\"]]"); add_srs_wkt (p, 3, ",TOWGS84[616,97,-251,0,0,0,0],AUTHORITY[\"EPSG\",\"6293\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4293\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator_South_Orientated\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",-22],PARAMETER[\"central_meridian\",11],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",0"); add_srs_wkt (p, 10, "],PARAMETER[\"false_northing\",0],UNIT[\"German legal me"); add_srs_wkt (p, 11, "tre\",1.0000135965,AUTHORITY[\"EPSG\",\"9031\"]],AXIS[\""); add_srs_wkt (p, 12, "Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"29371\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def (filter, first, last, 29373, "epsg", 29373, "Schwarzeck / Lo22/13"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-22 +lon_0=13 +k=1 +x_0=0 +y_0=0 +axi"); add_proj4text (p, 1, "s=wsu +ellps=bess_nam +towgs84=616,97,-251,0,0,0,0 +to_m"); add_proj4text (p, 2, "eter=1.0000135965 +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Schwarzeck / Lo22/13\",GEOGCS[\"Schwarzeck\",DA"); add_srs_wkt (p, 1, "TUM[\"Schwarzeck\",SPHEROID[\"Bessel Namibia (GLM)\",637"); add_srs_wkt (p, 2, "7483.865280419,299.1528128,AUTHORITY[\"EPSG\",\"7046\"]]"); add_srs_wkt (p, 3, ",TOWGS84[616,97,-251,0,0,0,0],AUTHORITY[\"EPSG\",\"6293\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4293\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator_South_Orientated\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",-22],PARAMETER[\"central_meridian\",13],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",0"); add_srs_wkt (p, 10, "],PARAMETER[\"false_northing\",0],UNIT[\"German legal me"); add_srs_wkt (p, 11, "tre\",1.0000135965,AUTHORITY[\"EPSG\",\"9031\"]],AXIS[\""); add_srs_wkt (p, 12, "Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"29373\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def (filter, first, last, 29375, "epsg", 29375, "Schwarzeck / Lo22/15"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-22 +lon_0=15 +k=1 +x_0=0 +y_0=0 +axi"); add_proj4text (p, 1, "s=wsu +ellps=bess_nam +towgs84=616,97,-251,0,0,0,0 +to_m"); add_proj4text (p, 2, "eter=1.0000135965 +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Schwarzeck / Lo22/15\",GEOGCS[\"Schwarzeck\",DA"); add_srs_wkt (p, 1, "TUM[\"Schwarzeck\",SPHEROID[\"Bessel Namibia (GLM)\",637"); add_srs_wkt (p, 2, "7483.865280419,299.1528128,AUTHORITY[\"EPSG\",\"7046\"]]"); add_srs_wkt (p, 3, ",TOWGS84[616,97,-251,0,0,0,0],AUTHORITY[\"EPSG\",\"6293\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4293\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator_South_Orientated\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",-22],PARAMETER[\"central_meridian\",15],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",0"); add_srs_wkt (p, 10, "],PARAMETER[\"false_northing\",0],UNIT[\"German legal me"); add_srs_wkt (p, 11, "tre\",1.0000135965,AUTHORITY[\"EPSG\",\"9031\"]],AXIS[\""); add_srs_wkt (p, 12, "Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"29375\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def (filter, first, last, 29377, "epsg", 29377, "Schwarzeck / Lo22/17"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-22 +lon_0=17 +k=1 +x_0=0 +y_0=0 +axi"); add_proj4text (p, 1, "s=wsu +ellps=bess_nam +towgs84=616,97,-251,0,0,0,0 +to_m"); add_proj4text (p, 2, "eter=1.0000135965 +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Schwarzeck / Lo22/17\",GEOGCS[\"Schwarzeck\",DA"); add_srs_wkt (p, 1, "TUM[\"Schwarzeck\",SPHEROID[\"Bessel Namibia (GLM)\",637"); add_srs_wkt (p, 2, "7483.865280419,299.1528128,AUTHORITY[\"EPSG\",\"7046\"]]"); add_srs_wkt (p, 3, ",TOWGS84[616,97,-251,0,0,0,0],AUTHORITY[\"EPSG\",\"6293\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4293\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator_South_Orientated\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",-22],PARAMETER[\"central_meridian\",17],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",0"); add_srs_wkt (p, 10, "],PARAMETER[\"false_northing\",0],UNIT[\"German legal me"); add_srs_wkt (p, 11, "tre\",1.0000135965,AUTHORITY[\"EPSG\",\"9031\"]],AXIS[\""); add_srs_wkt (p, 12, "Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"29377\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def (filter, first, last, 29379, "epsg", 29379, "Schwarzeck / Lo22/19"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-22 +lon_0=19 +k=1 +x_0=0 +y_0=0 +axi"); add_proj4text (p, 1, "s=wsu +ellps=bess_nam +towgs84=616,97,-251,0,0,0,0 +to_m"); add_proj4text (p, 2, "eter=1.0000135965 +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Schwarzeck / Lo22/19\",GEOGCS[\"Schwarzeck\",DA"); add_srs_wkt (p, 1, "TUM[\"Schwarzeck\",SPHEROID[\"Bessel Namibia (GLM)\",637"); add_srs_wkt (p, 2, "7483.865280419,299.1528128,AUTHORITY[\"EPSG\",\"7046\"]]"); add_srs_wkt (p, 3, ",TOWGS84[616,97,-251,0,0,0,0],AUTHORITY[\"EPSG\",\"6293\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4293\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator_South_Orientated\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",-22],PARAMETER[\"central_meridian\",19],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",0"); add_srs_wkt (p, 10, "],PARAMETER[\"false_northing\",0],UNIT[\"German legal me"); add_srs_wkt (p, 11, "tre\",1.0000135965,AUTHORITY[\"EPSG\",\"9031\"]],AXIS[\""); add_srs_wkt (p, 12, "Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"29379\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def (filter, first, last, 29381, "epsg", 29381, "Schwarzeck / Lo22/21"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-22 +lon_0=21 +k=1 +x_0=0 +y_0=0 +axi"); add_proj4text (p, 1, "s=wsu +ellps=bess_nam +towgs84=616,97,-251,0,0,0,0 +to_m"); add_proj4text (p, 2, "eter=1.0000135965 +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Schwarzeck / Lo22/21\",GEOGCS[\"Schwarzeck\",DA"); add_srs_wkt (p, 1, "TUM[\"Schwarzeck\",SPHEROID[\"Bessel Namibia (GLM)\",637"); add_srs_wkt (p, 2, "7483.865280419,299.1528128,AUTHORITY[\"EPSG\",\"7046\"]]"); add_srs_wkt (p, 3, ",TOWGS84[616,97,-251,0,0,0,0],AUTHORITY[\"EPSG\",\"6293\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4293\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator_South_Orientated\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",-22],PARAMETER[\"central_meridian\",21],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",0"); add_srs_wkt (p, 10, "],PARAMETER[\"false_northing\",0],UNIT[\"German legal me"); add_srs_wkt (p, 11, "tre\",1.0000135965,AUTHORITY[\"EPSG\",\"9031\"]],AXIS[\""); add_srs_wkt (p, 12, "Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"29381\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def (filter, first, last, 29383, "epsg", 29383, "Schwarzeck / Lo22/23"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-22 +lon_0=23 +k=1 +x_0=0 +y_0=0 +axi"); add_proj4text (p, 1, "s=wsu +ellps=bess_nam +towgs84=616,97,-251,0,0,0,0 +to_m"); add_proj4text (p, 2, "eter=1.0000135965 +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Schwarzeck / Lo22/23\",GEOGCS[\"Schwarzeck\",DA"); add_srs_wkt (p, 1, "TUM[\"Schwarzeck\",SPHEROID[\"Bessel Namibia (GLM)\",637"); add_srs_wkt (p, 2, "7483.865280419,299.1528128,AUTHORITY[\"EPSG\",\"7046\"]]"); add_srs_wkt (p, 3, ",TOWGS84[616,97,-251,0,0,0,0],AUTHORITY[\"EPSG\",\"6293\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4293\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator_South_Orientated\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",-22],PARAMETER[\"central_meridian\",23],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",0"); add_srs_wkt (p, 10, "],PARAMETER[\"false_northing\",0],UNIT[\"German legal me"); add_srs_wkt (p, 11, "tre\",1.0000135965,AUTHORITY[\"EPSG\",\"9031\"]],AXIS[\""); add_srs_wkt (p, 12, "Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"29383\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def (filter, first, last, 29385, "epsg", 29385, "Schwarzeck / Lo22/25"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-22 +lon_0=25 +k=1 +x_0=0 +y_0=0 +axi"); add_proj4text (p, 1, "s=wsu +ellps=bess_nam +towgs84=616,97,-251,0,0,0,0 +to_m"); add_proj4text (p, 2, "eter=1.0000135965 +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Schwarzeck / Lo22/25\",GEOGCS[\"Schwarzeck\",DA"); add_srs_wkt (p, 1, "TUM[\"Schwarzeck\",SPHEROID[\"Bessel Namibia (GLM)\",637"); add_srs_wkt (p, 2, "7483.865280419,299.1528128,AUTHORITY[\"EPSG\",\"7046\"]]"); add_srs_wkt (p, 3, ",TOWGS84[616,97,-251,0,0,0,0],AUTHORITY[\"EPSG\",\"6293\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4293\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator_South_Orientated\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",-22],PARAMETER[\"central_meridian\",25],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",0"); add_srs_wkt (p, 10, "],PARAMETER[\"false_northing\",0],UNIT[\"German legal me"); add_srs_wkt (p, 11, "tre\",1.0000135965,AUTHORITY[\"EPSG\",\"9031\"]],AXIS[\""); add_srs_wkt (p, 12, "Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"29385\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def (filter, first, last, 29635, "epsg", 29635, "Sudan / UTM zone 35N (deprecated)"); add_proj4text (p, 0, "+proj=utm +zone=35 +a=6378249.2 +b=6356515 +units=m +no_"); add_proj4text (p, 1, "defs"); add_srs_wkt (p, 0, "PROJCS[\"Sudan / UTM zone 35N (deprecated)\",GEOGCS[\"Su"); add_srs_wkt (p, 1, "dan\",DATUM[\"Sudan\",SPHEROID[\"Clarke 1880 (IGN)\",637"); add_srs_wkt (p, 2, "8249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6296\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9108\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4296\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",2"); add_srs_wkt (p, 8, "7],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 9, "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 10, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 11, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"296"); add_srs_wkt (p, 12, "35\"]]"); p = add_epsg_def (filter, first, last, 29636, "epsg", 29636, "Sudan / UTM zone 36N (deprecated)"); add_proj4text (p, 0, "+proj=utm +zone=36 +a=6378249.2 +b=6356515 +units=m +no_"); add_proj4text (p, 1, "defs"); add_srs_wkt (p, 0, "PROJCS[\"Sudan / UTM zone 36N (deprecated)\",GEOGCS[\"Su"); add_srs_wkt (p, 1, "dan\",DATUM[\"Sudan\",SPHEROID[\"Clarke 1880 (IGN)\",637"); add_srs_wkt (p, 2, "8249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6296\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9108\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4296\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",3"); add_srs_wkt (p, 8, "3],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 9, "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 10, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 11, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"296"); add_srs_wkt (p, 12, "36\"]]"); p = add_epsg_def (filter, first, last, 29700, "epsg", 29700, "Tananarive (Paris) / Laborde Grid (deprecated)"); add_proj4text (p, 0, "+proj=omerc +lat_0=-18.9 +lonc=44.10000000000001 +alpha="); add_proj4text (p, 1, "18.9 +k=0.9995000000000001 +x_0=400000 +y_0=800000 +gamm"); add_proj4text (p, 2, "a=18.9 +ellps=intl +towgs84=-189,-242,-91,0,0,0,0 +pm=pa"); add_proj4text (p, 3, "ris +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tananarive (Paris) / Laborde Grid (deprecated)\""); add_srs_wkt (p, 1, ",GEOGCS[\"Tananarive (Paris)\",DATUM[\"Tananarive_1925_P"); add_srs_wkt (p, 2, "aris\",SPHEROID[\"International 1924\",6378388,297,AUTHO"); add_srs_wkt (p, 3, "RITY[\"EPSG\",\"7022\"]],TOWGS84[-189,-242,-91,0,0,0,0],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6810\"]],PRIMEM[\"Paris\",2.3372291"); add_srs_wkt (p, 5, "7,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\",0.01570796"); add_srs_wkt (p, 6, "326794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4810\"]],PROJECTION[\"Hotine_Oblique_Mercator\"],PA"); add_srs_wkt (p, 8, "RAMETER[\"latitude_of_center\",-21],PARAMETER[\"longitud"); add_srs_wkt (p, 9, "e_of_center\",49],PARAMETER[\"azimuth\",21],PARAMETER[\""); add_srs_wkt (p, 10, "rectified_grid_angle\",21],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 11, "9995],PARAMETER[\"false_easting\",400000],PARAMETER[\"fa"); add_srs_wkt (p, 12, "lse_northing\",800000],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); add_srs_wkt (p, 14, "TY[\"EPSG\",\"29700\"]]"); p = add_epsg_def (filter, first, last, 29702, "epsg", 29702, "Tananarive (Paris) / Laborde Grid approximation"); add_proj4text (p, 0, "+proj=omerc +lat_0=-18.9 +lonc=44.10000000000001 +alpha="); add_proj4text (p, 1, "18.9 +k=0.9995000000000001 +x_0=400000 +y_0=800000 +gamm"); add_proj4text (p, 2, "a=18.9 +ellps=intl +towgs84=-189,-242,-91,0,0,0,0 +pm=pa"); add_proj4text (p, 3, "ris +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tananarive (Paris) / Laborde Grid approximation"); add_srs_wkt (p, 1, "\",GEOGCS[\"Tananarive (Paris)\",DATUM[\"Tananarive_1925"); add_srs_wkt (p, 2, "_Paris\",SPHEROID[\"International 1924\",6378388,297,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"7022\"]],TOWGS84[-189,-242,-91,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6810\"]],PRIMEM[\"Paris\",2.33722"); add_srs_wkt (p, 5, "917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\",0.015707"); add_srs_wkt (p, 6, "96326794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4810\"]],PROJECTION[\"Hotine_Oblique_Mercator\"],"); add_srs_wkt (p, 8, "PARAMETER[\"latitude_of_center\",-21],PARAMETER[\"longit"); add_srs_wkt (p, 9, "ude_of_center\",49],PARAMETER[\"azimuth\",21],PARAMETER["); add_srs_wkt (p, 10, "\"rectified_grid_angle\",21],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 11, "0.9995],PARAMETER[\"false_easting\",400000],PARAMETER[\""); add_srs_wkt (p, 12, "false_northing\",800000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHO"); add_srs_wkt (p, 14, "RITY[\"EPSG\",\"29702\"]]"); p = add_epsg_def (filter, first, last, 29738, "epsg", 29738, "Tananarive / UTM zone 38S"); add_proj4text (p, 0, "+proj=utm +zone=38 +south +ellps=intl +towgs84=-189,-242"); add_proj4text (p, 1, ",-91,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tananarive / UTM zone 38S\",GEOGCS[\"Tananarive"); add_srs_wkt (p, 1, "\",DATUM[\"Tananarive_1925\",SPHEROID[\"International 19"); add_srs_wkt (p, 2, "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-"); add_srs_wkt (p, 3, "189,-242,-91,0,0,0,0],AUTHORITY[\"EPSG\",\"6297\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4297\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, "R[\"central_meridian\",45],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 9, "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"29738\"]]"); p = add_epsg_def (filter, first, last, 29739, "epsg", 29739, "Tananarive / UTM zone 39S"); add_proj4text (p, 0, "+proj=utm +zone=39 +south +ellps=intl +towgs84=-189,-242"); add_proj4text (p, 1, ",-91,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tananarive / UTM zone 39S\",GEOGCS[\"Tananarive"); add_srs_wkt (p, 1, "\",DATUM[\"Tananarive_1925\",SPHEROID[\"International 19"); add_srs_wkt (p, 2, "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-"); add_srs_wkt (p, 3, "189,-242,-91,0,0,0,0],AUTHORITY[\"EPSG\",\"6297\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4297\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, "R[\"central_meridian\",51],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 9, "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"29739\"]]"); p = add_epsg_def (filter, first, last, 29849, "epsg", 29849, "Timbalai 1948 / UTM zone 49N"); add_proj4text (p, 0, "+proj=utm +zone=49 +ellps=evrstSS +towgs84=-533.4,669.2,"); add_proj4text (p, 1, "-52.5,0,0,4.28,9.4 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Timbalai 1948 / UTM zone 49N\",GEOGCS[\"Timbala"); add_srs_wkt (p, 1, "i 1948\",DATUM[\"Timbalai_1948\",SPHEROID[\"Everest 1830"); add_srs_wkt (p, 2, " (1967 Definition)\",6377298.556,300.8017,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7016\"]],TOWGS84[-533.4,669.2,-52.5,0,0,4.28,9.4]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6298\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4298\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",111],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 12, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "29849\"]]"); p = add_epsg_def (filter, first, last, 29850, "epsg", 29850, "Timbalai 1948 / UTM zone 50N"); add_proj4text (p, 0, "+proj=utm +zone=50 +ellps=evrstSS +towgs84=-533.4,669.2,"); add_proj4text (p, 1, "-52.5,0,0,4.28,9.4 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Timbalai 1948 / UTM zone 50N\",GEOGCS[\"Timbala"); add_srs_wkt (p, 1, "i 1948\",DATUM[\"Timbalai_1948\",SPHEROID[\"Everest 1830"); add_srs_wkt (p, 2, " (1967 Definition)\",6377298.556,300.8017,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7016\"]],TOWGS84[-533.4,669.2,-52.5,0,0,4.28,9.4]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6298\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4298\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",117],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 12, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "29850\"]]"); p = add_epsg_def (filter, first, last, 29871, "epsg", 29871, "Timbalai 1948 / RSO Borneo (ch)"); add_proj4text (p, 0, "+proj=omerc +lat_0=4 +lonc=115 +alpha=53.31582047222222 "); add_proj4text (p, 1, "+k=0.99984 +x_0=590476.8714630401 +y_0=442857.653094361 "); add_proj4text (p, 2, "+gamma=53.13010236111111 +ellps=evrstSS +towgs84=-533.4,"); add_proj4text (p, 3, "669.2,-52.5,0,0,4.28,9.4 +to_meter=20.11676512155263 +no"); add_proj4text (p, 4, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"Timbalai 1948 / RSO Borneo (ch)\",GEOGCS[\"Timb"); add_srs_wkt (p, 1, "alai 1948\",DATUM[\"Timbalai_1948\",SPHEROID[\"Everest 1"); add_srs_wkt (p, 2, "830 (1967 Definition)\",6377298.556,300.8017,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7016\"]],TOWGS84[-533.4,669.2,-52.5,0,0,4.28,9."); add_srs_wkt (p, 4, "4],AUTHORITY[\"EPSG\",\"6298\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 6, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4298\"]],PROJECTION[\"Hotine_Oblique_Mercator\"],PARA"); add_srs_wkt (p, 8, "METER[\"latitude_of_center\",4],PARAMETER[\"longitude_of"); add_srs_wkt (p, 9, "_center\",115],PARAMETER[\"azimuth\",53.31582047222222],"); add_srs_wkt (p, 10, "PARAMETER[\"rectified_grid_angle\",53.13010236111111],PA"); add_srs_wkt (p, 11, "RAMETER[\"scale_factor\",0.99984],PARAMETER[\"false_east"); add_srs_wkt (p, 12, "ing\",29352.4763],PARAMETER[\"false_northing\",22014.357"); add_srs_wkt (p, 13, "2],UNIT[\"British chain (Sears 1922)\",20.11676512155263"); add_srs_wkt (p, 14, ",AUTHORITY[\"EPSG\",\"9042\"]],AXIS[\"Easting\",EAST],AX"); add_srs_wkt (p, 15, "IS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"29871\"]]"); p = add_epsg_def (filter, first, last, 29872, "epsg", 29872, "Timbalai 1948 / RSO Borneo (ft)"); add_proj4text (p, 0, "+proj=omerc +lat_0=4 +lonc=115 +alpha=53.31582047222222 "); add_proj4text (p, 1, "+k=0.99984 +x_0=590476.8727431979 +y_0=442857.6545573985"); add_proj4text (p, 2, " +gamma=53.13010236111111 +ellps=evrstSS +towgs84=-533.4"); add_proj4text (p, 3, ",669.2,-52.5,0,0,4.28,9.4 +to_meter=0.3047994715386762 +"); add_proj4text (p, 4, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Timbalai 1948 / RSO Borneo (ft)\",GEOGCS[\"Timb"); add_srs_wkt (p, 1, "alai 1948\",DATUM[\"Timbalai_1948\",SPHEROID[\"Everest 1"); add_srs_wkt (p, 2, "830 (1967 Definition)\",6377298.556,300.8017,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7016\"]],TOWGS84[-533.4,669.2,-52.5,0,0,4.28,9."); add_srs_wkt (p, 4, "4],AUTHORITY[\"EPSG\",\"6298\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 6, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4298\"]],PROJECTION[\"Hotine_Oblique_Mercator\"],PARA"); add_srs_wkt (p, 8, "METER[\"latitude_of_center\",4],PARAMETER[\"longitude_of"); add_srs_wkt (p, 9, "_center\",115],PARAMETER[\"azimuth\",53.31582047222222],"); add_srs_wkt (p, 10, "PARAMETER[\"rectified_grid_angle\",53.13010236111111],PA"); add_srs_wkt (p, 11, "RAMETER[\"scale_factor\",0.99984],PARAMETER[\"false_east"); add_srs_wkt (p, 12, "ing\",1937263.44],PARAMETER[\"false_northing\",1452947.5"); add_srs_wkt (p, 13, "8],UNIT[\"British foot (Sears 1922)\",0.3047994715386762"); add_srs_wkt (p, 14, ",AUTHORITY[\"EPSG\",\"9041\"]],AXIS[\"Easting\",EAST],AX"); add_srs_wkt (p, 15, "IS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"29872\"]]"); p = add_epsg_def (filter, first, last, 29873, "epsg", 29873, "Timbalai 1948 / RSO Borneo (m)"); add_proj4text (p, 0, "+proj=omerc +lat_0=4 +lonc=115 +alpha=53.31582047222222 "); add_proj4text (p, 1, "+k=0.99984 +x_0=590476.87 +y_0=442857.65 +gamma=53.13010"); add_proj4text (p, 2, "236111111 +ellps=evrstSS +towgs84=-533.4,669.2,-52.5,0,0"); add_proj4text (p, 3, ",4.28,9.4 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Timbalai 1948 / RSO Borneo (m)\",GEOGCS[\"Timba"); add_srs_wkt (p, 1, "lai 1948\",DATUM[\"Timbalai_1948\",SPHEROID[\"Everest 18"); add_srs_wkt (p, 2, "30 (1967 Definition)\",6377298.556,300.8017,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7016\"]],TOWGS84[-533.4,669.2,-52.5,0,0,4.28,9."); add_srs_wkt (p, 4, "4],AUTHORITY[\"EPSG\",\"6298\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 6, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4298\"]],PROJECTION[\"Hotine_Oblique_Mercator\"],PARA"); add_srs_wkt (p, 8, "METER[\"latitude_of_center\",4],PARAMETER[\"longitude_of"); add_srs_wkt (p, 9, "_center\",115],PARAMETER[\"azimuth\",53.31582047222222],"); add_srs_wkt (p, 10, "PARAMETER[\"rectified_grid_angle\",53.13010236111111],PA"); add_srs_wkt (p, 11, "RAMETER[\"scale_factor\",0.99984],PARAMETER[\"false_east"); add_srs_wkt (p, 12, "ing\",590476.87],PARAMETER[\"false_northing\",442857.65]"); add_srs_wkt (p, 13, ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E"); add_srs_wkt (p, 14, "asting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 15, "\",\"29873\"]]"); p = add_epsg_def (filter, first, last, 29900, "epsg", 29900, "TM65 / Irish National Grid (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=53.5 +lon_0=-8 +k=1.000035 +x_0=20000"); add_proj4text (p, 1, "0 +y_0=250000 +datum=ire65 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"TM65 / Irish National Grid (deprecated)\",GEOGC"); add_srs_wkt (p, 1, "S[\"TM65\",DATUM[\"TM65\",SPHEROID[\"Airy Modified 1849\""); add_srs_wkt (p, 2, ",6377340.189,299.3249646,AUTHORITY[\"EPSG\",\"7002\"]],T"); add_srs_wkt (p, 3, "OWGS84[482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6299\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "99\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",53.5],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",-8],PARAMETER[\"scale_factor\",1.000035],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_easting\",200000],PARAMETER[\"false_northing\",25000"); add_srs_wkt (p, 11, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"29900\"]]"); p = add_epsg_def (filter, first, last, 29901, "epsg", 29901, "OSNI 1952 / Irish National Grid"); add_proj4text (p, 0, "+proj=tmerc +lat_0=53.5 +lon_0=-8 +k=1 +x_0=200000 +y_0="); add_proj4text (p, 1, "250000 +ellps=airy +towgs84=482.5,-130.6,564.6,-1.042,-0"); add_proj4text (p, 2, ".214,-0.631,8.15 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"OSNI 1952 / Irish National Grid\",GEOGCS[\"OSNI"); add_srs_wkt (p, 1, " 1952\",DATUM[\"OSNI_1952\",SPHEROID[\"Airy 1830\",63775"); add_srs_wkt (p, 2, "63.396,299.3249646,AUTHORITY[\"EPSG\",\"7001\"]],TOWGS84"); add_srs_wkt (p, 3, "[482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6188\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4188\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",53.5],PARAMETER[\"central_meridian\",-8],P"); add_srs_wkt (p, 9, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, ",200000],PARAMETER[\"false_northing\",250000],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 12, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"29901\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def (filter, first, last, 29902, "epsg", 29902, "TM65 / Irish Grid"); add_proj4text (p, 0, "+proj=tmerc +lat_0=53.5 +lon_0=-8 +k=1.000035 +x_0=20000"); add_proj4text (p, 1, "0 +y_0=250000 +datum=ire65 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"TM65 / Irish Grid\",GEOGCS[\"TM65\",DATUM[\"TM6"); add_srs_wkt (p, 1, "5\",SPHEROID[\"Airy Modified 1849\",6377340.189,299.3249"); add_srs_wkt (p, 2, "646,AUTHORITY[\"EPSG\",\"7002\"]],TOWGS84[482.5,-130.6,5"); add_srs_wkt (p, 3, "64.6,-1.042,-0.214,-0.631,8.15],AUTHORITY[\"EPSG\",\"629"); add_srs_wkt (p, 4, "9\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4299\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",5"); add_srs_wkt (p, 8, "3.5],PARAMETER[\"central_meridian\",-8],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",1.000035],PARAMETER[\"false_easting\",200000]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_northing\",250000],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS"); add_srs_wkt (p, 12, "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"29902\"]]"); p = add_epsg_def (filter, first, last, 29903, "epsg", 29903, "TM75 / Irish Grid"); add_proj4text (p, 0, "+proj=tmerc +lat_0=53.5 +lon_0=-8 +k=1.000035 +x_0=20000"); add_proj4text (p, 1, "0 +y_0=250000 +ellps=mod_airy +towgs84=482.5,-130.6,564."); add_proj4text (p, 2, "6,-1.042,-0.214,-0.631,8.15 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"TM75 / Irish Grid\",GEOGCS[\"TM75\",DATUM[\"Geo"); add_srs_wkt (p, 1, "detic_Datum_of_1965\",SPHEROID[\"Airy Modified 1849\",63"); add_srs_wkt (p, 2, "77340.189,299.3249646,AUTHORITY[\"EPSG\",\"7002\"]],TOWG"); add_srs_wkt (p, 3, "S84[482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15],AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"6300\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4300\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",53.5],PARAMETER[\"central_meridian\",-8]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",1.000035],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",200000],PARAMETER[\"false_northing\",250000],U"); add_srs_wkt (p, 11, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 12, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"29903\"]]"); p = add_epsg_def (filter, first, last, 30161, "epsg", 30161, "Tokyo / Japan Plane Rectangular CS I"); add_proj4text (p, 0, "+proj=tmerc +lat_0=33 +lon_0=129.5 +k=0.9999 +x_0=0 +y_0"); add_proj4text (p, 1, "=0 +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0"); add_proj4text (p, 2, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tokyo / Japan Plane Rectangular CS I\",GEOGCS[\""); add_srs_wkt (p, 1, "Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377397"); add_srs_wkt (p, 2, ".155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-"); add_srs_wkt (p, 3, "146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\"63"); add_srs_wkt (p, 4, "01\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",3"); add_srs_wkt (p, 8, "3],PARAMETER[\"central_meridian\",129.5],PARAMETER[\"sca"); add_srs_wkt (p, 9, "le_factor\",0.9999],PARAMETER[\"false_easting\",0],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"30161\"]]"); p = add_epsg_def (filter, first, last, 30162, "epsg", 30162, "Tokyo / Japan Plane Rectangular CS II"); add_proj4text (p, 0, "+proj=tmerc +lat_0=33 +lon_0=131 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tokyo / Japan Plane Rectangular CS II\",GEOGCS["); add_srs_wkt (p, 1, "\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",63773"); add_srs_wkt (p, 2, "97.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84"); add_srs_wkt (p, 3, "[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",33],PARAMETER[\"central_meridian\",131],PARAMETER[\"sca"); add_srs_wkt (p, 9, "le_factor\",0.9999],PARAMETER[\"false_easting\",0],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"30162\"]]"); p = add_epsg_def (filter, first, last, 30163, "epsg", 30163, "Tokyo / Japan Plane Rectangular CS III"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36 +lon_0=132.1666666666667 +k=0.9999"); add_proj4text (p, 1, " +x_0=0 +y_0=0 +ellps=bessel +towgs84=-146.414,507.337,6"); add_proj4text (p, 2, "80.507,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tokyo / Japan Plane Rectangular CS III\",GEOGCS"); add_srs_wkt (p, 1, "[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377"); add_srs_wkt (p, 2, "397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS8"); add_srs_wkt (p, 3, "4[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",36],PARAMETER[\"central_meridian\",132.1666666666667],P"); add_srs_wkt (p, 9, "ARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "Y\",EAST],AUTHORITY[\"EPSG\",\"30163\"]]"); p = add_epsg_def (filter, first, last, 30164, "epsg", 30164, "Tokyo / Japan Plane Rectangular CS IV"); add_proj4text (p, 0, "+proj=tmerc +lat_0=33 +lon_0=133.5 +k=0.9999 +x_0=0 +y_0"); add_proj4text (p, 1, "=0 +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0"); add_proj4text (p, 2, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tokyo / Japan Plane Rectangular CS IV\",GEOGCS["); add_srs_wkt (p, 1, "\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",63773"); add_srs_wkt (p, 2, "97.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84"); add_srs_wkt (p, 3, "[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",33],PARAMETER[\"central_meridian\",133.5],PARAMETER[\"s"); add_srs_wkt (p, 9, "cale_factor\",0.9999],PARAMETER[\"false_easting\",0],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 11, "\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"30164\"]]"); p = add_epsg_def (filter, first, last, 30165, "epsg", 30165, "Tokyo / Japan Plane Rectangular CS V"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36 +lon_0=134.3333333333333 +k=0.9999"); add_proj4text (p, 1, " +x_0=0 +y_0=0 +ellps=bessel +towgs84=-146.414,507.337,6"); add_proj4text (p, 2, "80.507,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tokyo / Japan Plane Rectangular CS V\",GEOGCS[\""); add_srs_wkt (p, 1, "Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377397"); add_srs_wkt (p, 2, ".155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-"); add_srs_wkt (p, 3, "146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\"63"); add_srs_wkt (p, 4, "01\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",3"); add_srs_wkt (p, 8, "6],PARAMETER[\"central_meridian\",134.3333333333333],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",0.9999],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 12, "\",EAST],AUTHORITY[\"EPSG\",\"30165\"]]"); p = add_epsg_def (filter, first, last, 30166, "epsg", 30166, "Tokyo / Japan Plane Rectangular CS VI"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36 +lon_0=136 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tokyo / Japan Plane Rectangular CS VI\",GEOGCS["); add_srs_wkt (p, 1, "\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",63773"); add_srs_wkt (p, 2, "97.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84"); add_srs_wkt (p, 3, "[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",36],PARAMETER[\"central_meridian\",136],PARAMETER[\"sca"); add_srs_wkt (p, 9, "le_factor\",0.9999],PARAMETER[\"false_easting\",0],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"30166\"]]"); p = add_epsg_def (filter, first, last, 30167, "epsg", 30167, "Tokyo / Japan Plane Rectangular CS VII"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36 +lon_0=137.1666666666667 +k=0.9999"); add_proj4text (p, 1, " +x_0=0 +y_0=0 +ellps=bessel +towgs84=-146.414,507.337,6"); add_proj4text (p, 2, "80.507,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tokyo / Japan Plane Rectangular CS VII\",GEOGCS"); add_srs_wkt (p, 1, "[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377"); add_srs_wkt (p, 2, "397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS8"); add_srs_wkt (p, 3, "4[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",36],PARAMETER[\"central_meridian\",137.1666666666667],P"); add_srs_wkt (p, 9, "ARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "Y\",EAST],AUTHORITY[\"EPSG\",\"30167\"]]"); p = add_epsg_def (filter, first, last, 30168, "epsg", 30168, "Tokyo / Japan Plane Rectangular CS VIII"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36 +lon_0=138.5 +k=0.9999 +x_0=0 +y_0"); add_proj4text (p, 1, "=0 +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0"); add_proj4text (p, 2, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tokyo / Japan Plane Rectangular CS VIII\",GEOGC"); add_srs_wkt (p, 1, "S[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",637"); add_srs_wkt (p, 2, "7397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS"); add_srs_wkt (p, 3, "84[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTIO"); add_srs_wkt (p, 7, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 8, "n\",36],PARAMETER[\"central_meridian\",138.5],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",0.9999],PARAMETER[\"false_easting\",0],"); add_srs_wkt (p, 10, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); add_srs_wkt (p, 12, "],AUTHORITY[\"EPSG\",\"30168\"]]"); p = add_epsg_def (filter, first, last, 30169, "epsg", 30169, "Tokyo / Japan Plane Rectangular CS IX"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36 +lon_0=139.8333333333333 +k=0.9999"); add_proj4text (p, 1, " +x_0=0 +y_0=0 +ellps=bessel +towgs84=-146.414,507.337,6"); add_proj4text (p, 2, "80.507,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tokyo / Japan Plane Rectangular CS IX\",GEOGCS["); add_srs_wkt (p, 1, "\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",63773"); add_srs_wkt (p, 2, "97.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84"); add_srs_wkt (p, 3, "[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",36],PARAMETER[\"central_meridian\",139.8333333333333],P"); add_srs_wkt (p, 9, "ARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "Y\",EAST],AUTHORITY[\"EPSG\",\"30169\"]]"); p = add_epsg_def (filter, first, last, 30170, "epsg", 30170, "Tokyo / Japan Plane Rectangular CS X"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40 +lon_0=140.8333333333333 +k=0.9999"); add_proj4text (p, 1, " +x_0=0 +y_0=0 +ellps=bessel +towgs84=-146.414,507.337,6"); add_proj4text (p, 2, "80.507,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tokyo / Japan Plane Rectangular CS X\",GEOGCS[\""); add_srs_wkt (p, 1, "Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377397"); add_srs_wkt (p, 2, ".155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-"); add_srs_wkt (p, 3, "146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\"63"); add_srs_wkt (p, 4, "01\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",4"); add_srs_wkt (p, 8, "0],PARAMETER[\"central_meridian\",140.8333333333333],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",0.9999],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 12, "\",EAST],AUTHORITY[\"EPSG\",\"30170\"]]"); p = add_epsg_def (filter, first, last, 30171, "epsg", 30171, "Tokyo / Japan Plane Rectangular CS XI"); add_proj4text (p, 0, "+proj=tmerc +lat_0=44 +lon_0=140.25 +k=0.9999 +x_0=0 +y_"); add_proj4text (p, 1, "0=0 +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tokyo / Japan Plane Rectangular CS XI\",GEOGCS["); add_srs_wkt (p, 1, "\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",63773"); add_srs_wkt (p, 2, "97.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84"); add_srs_wkt (p, 3, "[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",44],PARAMETER[\"central_meridian\",140.25],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9999],PARAMETER[\"false_easting\",0],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"30171\"]]"); p = add_epsg_def (filter, first, last, 30172, "epsg", 30172, "Tokyo / Japan Plane Rectangular CS XII"); add_proj4text (p, 0, "+proj=tmerc +lat_0=44 +lon_0=142.25 +k=0.9999 +x_0=0 +y_"); add_proj4text (p, 1, "0=0 +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tokyo / Japan Plane Rectangular CS XII\",GEOGCS"); add_srs_wkt (p, 1, "[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377"); add_srs_wkt (p, 2, "397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS8"); add_srs_wkt (p, 3, "4[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",44],PARAMETER[\"central_meridian\",142.25],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9999],PARAMETER[\"false_easting\",0],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"30172\"]]"); } #endif /* full EPSG initialization enabled/disabled */ libspatialite-4.1.1/src/srsinit/epsg_inlined_31.c0000664000175000017500000051237012163502133016663 00000000000000/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_31 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def (filter, first, last, 26759, "epsg", 26759, "NAD27 / Florida West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999"); add_proj4text (p, 1, "941177 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units"); add_proj4text (p, 2, "=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Florida West\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",24.33333333333333],PARAMETER[\"cent"); add_srs_wkt (p, 8, "ral_meridian\",-82],PARAMETER[\"scale_factor\",0.9999411"); add_srs_wkt (p, 9, "77],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_northing\",0],UNIT[\"US survey foot\",0.30480060960121"); add_srs_wkt (p, 11, "92,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Y\",NORTH],AUTHORITY[\"EPSG\",\"26759\"]]"); p = add_epsg_def (filter, first, last, 26760, "epsg", 26760, "NAD27 / Florida North"); add_proj4text (p, 0, "+proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=2"); add_proj4text (p, 1, "9 +lon_0=-84.5 +x_0=609601.2192024384 +y_0=0 +datum=NAD2"); add_proj4text (p, 2, "7 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Florida North\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],P"); add_srs_wkt (p, 7, "ARAMETER[\"standard_parallel_1\",30.75],PARAMETER[\"stan"); add_srs_wkt (p, 8, "dard_parallel_2\",29.58333333333333],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",29],PARAMETER[\"central_meridian\",-84.5],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",2000000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",0],UNIT[\"US survey foot\",0.3048006096012192,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"26760\"]]"); p = add_epsg_def (filter, first, last, 26766, "epsg", 26766, "NAD27 / Georgia East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=us-f"); add_proj4text (p, 2, "t +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Georgia East\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",30],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 8, "-82.16666666666667],PARAMETER[\"scale_factor\",0.9999],P"); add_srs_wkt (p, 9, "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 10, "thing\",0],UNIT[\"US survey foot\",0.3048006096012192,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 12, "NORTH],AUTHORITY[\"EPSG\",\"26766\"]]"); p = add_epsg_def (filter, first, last, 26767, "epsg", 26767, "NAD27 / Georgia West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=us-f"); add_proj4text (p, 2, "t +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Georgia West\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",30],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 8, "-84.16666666666667],PARAMETER[\"scale_factor\",0.9999],P"); add_srs_wkt (p, 9, "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 10, "thing\",0],UNIT[\"US survey foot\",0.3048006096012192,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 12, "NORTH],AUTHORITY[\"EPSG\",\"26767\"]]"); p = add_epsg_def (filter, first, last, 26768, "epsg", 26768, "NAD27 / Idaho East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666"); add_proj4text (p, 1, "666667 +k=0.9999473679999999 +x_0=152400.3048006096 +y_0"); add_proj4text (p, 2, "=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Idaho East\",GEOGCS[\"NAD27\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); add_srs_wkt (p, 2, "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 6, "267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",41.66666666666666],PARAMETER[\"cent"); add_srs_wkt (p, 8, "ral_meridian\",-112.1666666666667],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, "tor\",0.999947368],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0"); add_srs_wkt (p, 11, ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26768\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def (filter, first, last, 26769, "epsg", 26769, "NAD27 / Idaho Central"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.99"); add_proj4text (p, 1, "99473679999999 +x_0=152400.3048006096 +y_0=0 +datum=NAD2"); add_proj4text (p, 2, "7 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Idaho Central\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",41.66666666666666],PARAMETER[\"c"); add_srs_wkt (p, 8, "entral_meridian\",-114],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 9, "947368],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"US survey foot\",0.3048006096"); add_srs_wkt (p, 11, "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 12, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26769\"]]"); p = add_epsg_def (filter, first, last, 26770, "epsg", 26770, "NAD27 / Idaho West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0"); add_proj4text (p, 1, ".999933333 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +u"); add_proj4text (p, 2, "nits=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Idaho West\",GEOGCS[\"NAD27\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); add_srs_wkt (p, 2, "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 6, "267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",41.66666666666666],PARAMETER[\"cent"); add_srs_wkt (p, 8, "ral_meridian\",-115.75],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 9, "933333],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"US survey foot\",0.3048006096"); add_srs_wkt (p, 11, "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 12, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26770\"]]"); p = add_epsg_def (filter, first, last, 26771, "epsg", 26771, "NAD27 / Illinois East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333"); add_proj4text (p, 1, "333333 +k=0.9999749999999999 +x_0=152400.3048006096 +y_0"); add_proj4text (p, 2, "=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Illinois East\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",36.66666666666666],PARAMETER[\"c"); add_srs_wkt (p, 8, "entral_meridian\",-88.33333333333333],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",0.999975],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0"); add_srs_wkt (p, 11, ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26771\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def (filter, first, last, 26772, "epsg", 26772, "NAD27 / Illinois West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666"); add_proj4text (p, 1, "666667 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +dat"); add_proj4text (p, 2, "um=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Illinois West\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",36.66666666666666],PARAMETER[\"c"); add_srs_wkt (p, 8, "entral_meridian\",-90.16666666666667],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",0.999941177],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 10, "],PARAMETER[\"false_northing\",0],UNIT[\"US survey foot\""); add_srs_wkt (p, 11, ",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\""); add_srs_wkt (p, 12, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26772\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def (filter, first, last, 26773, "epsg", 26773, "NAD27 / Indiana East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.9"); add_proj4text (p, 1, "99966667 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +uni"); add_proj4text (p, 2, "ts=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Indiana East\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",37.5],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-85.66666666666667],PARAMETER[\"scale_factor\",0.999966"); add_srs_wkt (p, 9, "667],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012"); add_srs_wkt (p, 11, "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS["); add_srs_wkt (p, 12, "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26773\"]]"); p = add_epsg_def (filter, first, last, 26774, "epsg", 26774, "NAD27 / Indiana West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.9"); add_proj4text (p, 1, "99966667 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +uni"); add_proj4text (p, 2, "ts=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Indiana West\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",37.5],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-87.08333333333333],PARAMETER[\"scale_factor\",0.999966"); add_srs_wkt (p, 9, "667],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012"); add_srs_wkt (p, 11, "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS["); add_srs_wkt (p, 12, "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26774\"]]"); p = add_epsg_def (filter, first, last, 26775, "epsg", 26775, "NAD27 / Iowa North"); add_proj4text (p, 0, "+proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666"); add_proj4text (p, 1, "667 +lat_0=41.5 +lon_0=-93.5 +x_0=609601.2192024384 +y_0"); add_proj4text (p, 2, "=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Iowa North\",GEOGCS[\"NAD27\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); add_srs_wkt (p, 2, "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 6, "267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARA"); add_srs_wkt (p, 7, "METER[\"standard_parallel_1\",43.26666666666667],PARAMET"); add_srs_wkt (p, 8, "ER[\"standard_parallel_2\",42.06666666666667],PARAMETER["); add_srs_wkt (p, 9, "\"latitude_of_origin\",41.5],PARAMETER[\"central_meridia"); add_srs_wkt (p, 10, "n\",-93.5],PARAMETER[\"false_easting\",2000000],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_northing\",0],UNIT[\"US survey foot\",0.304800"); add_srs_wkt (p, 12, "6096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST"); add_srs_wkt (p, 13, "],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26775\"]]"); p = add_epsg_def (filter, first, last, 26776, "epsg", 26776, "NAD27 / Iowa South"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666"); add_proj4text (p, 1, "667 +lat_0=40 +lon_0=-93.5 +x_0=609601.2192024384 +y_0=0"); add_proj4text (p, 2, " +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Iowa South\",GEOGCS[\"NAD27\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); add_srs_wkt (p, 2, "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 6, "267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARA"); add_srs_wkt (p, 7, "METER[\"standard_parallel_1\",41.78333333333333],PARAMET"); add_srs_wkt (p, 8, "ER[\"standard_parallel_2\",40.61666666666667],PARAMETER["); add_srs_wkt (p, 9, "\"latitude_of_origin\",40],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 10, ",-93.5],PARAMETER[\"false_easting\",2000000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"US survey foot\",0.3048006096"); add_srs_wkt (p, 12, "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 13, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26776\"]]"); p = add_epsg_def (filter, first, last, 26777, "epsg", 26777, "NAD27 / Kansas North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666"); add_proj4text (p, 1, "667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=609601.2192"); add_proj4text (p, 2, "024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Kansas North\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 7, "AMETER[\"standard_parallel_1\",39.78333333333333],PARAME"); add_srs_wkt (p, 8, "TER[\"standard_parallel_2\",38.71666666666667],PARAMETER"); add_srs_wkt (p, 9, "[\"latitude_of_origin\",38.33333333333334],PARAMETER[\"c"); add_srs_wkt (p, 10, "entral_meridian\",-98],PARAMETER[\"false_easting\",20000"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",0],UNIT[\"US survey foo"); add_srs_wkt (p, 12, "t\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXI"); add_srs_wkt (p, 13, "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"267"); add_srs_wkt (p, 14, "77\"]]"); p = add_epsg_def (filter, first, last, 26778, "epsg", 26778, "NAD27 / Kansas South"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666"); add_proj4text (p, 1, "667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=609601.21"); add_proj4text (p, 2, "92024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Kansas South\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 7, "AMETER[\"standard_parallel_1\",38.56666666666667],PARAME"); add_srs_wkt (p, 8, "TER[\"standard_parallel_2\",37.26666666666667],PARAMETER"); add_srs_wkt (p, 9, "[\"latitude_of_origin\",36.66666666666666],PARAMETER[\"c"); add_srs_wkt (p, 10, "entral_meridian\",-98.5],PARAMETER[\"false_easting\",200"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",0],UNIT[\"US survey f"); add_srs_wkt (p, 12, "oot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],A"); add_srs_wkt (p, 13, "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2"); add_srs_wkt (p, 14, "6778\"]]"); p = add_epsg_def (filter, first, last, 26779, "epsg", 26779, "NAD27 / Kentucky North"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666"); add_proj4text (p, 1, "667 +lat_0=37.5 +lon_0=-84.25 +x_0=609601.2192024384 +y_"); add_proj4text (p, 2, "0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Kentucky North\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 7, "PARAMETER[\"standard_parallel_1\",37.96666666666667],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_2\",38.96666666666667],PARAME"); add_srs_wkt (p, 9, "TER[\"latitude_of_origin\",37.5],PARAMETER[\"central_mer"); add_srs_wkt (p, 10, "idian\",-84.25],PARAMETER[\"false_easting\",2000000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"US survey foot\",0.3"); add_srs_wkt (p, 12, "048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); add_srs_wkt (p, 13, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26779\"]]"); p = add_epsg_def (filter, first, last, 26780, "epsg", 26780, "NAD27 / Kentucky South"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.73333333333333 +lat_2=37.93333333333"); add_proj4text (p, 1, "333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=609601.2"); add_proj4text (p, 2, "192024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Kentucky South\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 7, "PARAMETER[\"standard_parallel_1\",36.73333333333333],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_2\",37.93333333333333],PARAME"); add_srs_wkt (p, 9, "TER[\"latitude_of_origin\",36.33333333333334],PARAMETER["); add_srs_wkt (p, 10, "\"central_meridian\",-85.75],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US surv"); add_srs_wkt (p, 12, "ey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\""); add_srs_wkt (p, 13, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"26780\"]]"); p = add_epsg_def (filter, first, last, 26781, "epsg", 26781, "NAD27 / Louisiana North"); add_proj4text (p, 0, "+proj=lcc +lat_1=31.16666666666667 +lat_2=32.66666666666"); add_proj4text (p, 1, "666 +lat_0=30.66666666666667 +lon_0=-92.5 +x_0=609601.21"); add_proj4text (p, 2, "92024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Louisiana North\",GEOGCS[\"NAD27\",DATU"); add_srs_wkt (p, 1, "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); add_srs_wkt (p, 2, ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 7, "PARAMETER[\"standard_parallel_1\",31.16666666666667],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_2\",32.66666666666666],PARAME"); add_srs_wkt (p, 9, "TER[\"latitude_of_origin\",30.66666666666667],PARAMETER["); add_srs_wkt (p, 10, "\"central_meridian\",-92.5],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "2000000],PARAMETER[\"false_northing\",0],UNIT[\"US surve"); add_srs_wkt (p, 12, "y foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]"); add_srs_wkt (p, 13, "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 14, "\"26781\"]]"); p = add_epsg_def (filter, first, last, 26782, "epsg", 26782, "NAD27 / Louisiana South"); add_proj4text (p, 0, "+proj=lcc +lat_1=29.3 +lat_2=30.7 +lat_0=28.666666666666"); add_proj4text (p, 1, "67 +lon_0=-91.33333333333333 +x_0=609601.2192024384 +y_0"); add_proj4text (p, 2, "=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Louisiana South\",GEOGCS[\"NAD27\",DATU"); add_srs_wkt (p, 1, "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); add_srs_wkt (p, 2, ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 7, "PARAMETER[\"standard_parallel_1\",29.3],PARAMETER[\"stan"); add_srs_wkt (p, 8, "dard_parallel_2\",30.7],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 9, ",28.66666666666667],PARAMETER[\"central_meridian\",-91.3"); add_srs_wkt (p, 10, "3333333333333],PARAMETER[\"false_easting\",2000000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"US survey foot\",0.30"); add_srs_wkt (p, 12, "48006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\","); add_srs_wkt (p, 13, "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26782\"]]"); p = add_epsg_def (filter, first, last, 26783, "epsg", 26783, "NAD27 / Maine East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=43.83333333333334 +lon_0=-68.5 +k=0.9"); add_proj4text (p, 1, "999 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=us"); add_proj4text (p, 2, "-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Maine East\",GEOGCS[\"NAD27\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); add_srs_wkt (p, 2, "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 6, "267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",43.83333333333334],PARAMETER[\"cent"); add_srs_wkt (p, 8, "ral_meridian\",-68.5],PARAMETER[\"scale_factor\",0.9999]"); add_srs_wkt (p, 9, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 10, "orthing\",0],UNIT[\"US survey foot\",0.3048006096012192,"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"26783\"]]"); p = add_epsg_def (filter, first, last, 26784, "epsg", 26784, "NAD27 / Maine West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666"); add_proj4text (p, 1, "666667 +k=0.999966667 +x_0=152400.3048006096 +y_0=0 +dat"); add_proj4text (p, 2, "um=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Maine West\",GEOGCS[\"NAD27\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); add_srs_wkt (p, 2, "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 6, "267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",42.83333333333334],PARAMETER[\"cent"); add_srs_wkt (p, 8, "ral_meridian\",-70.16666666666667],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, "tor\",0.999966667],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0"); add_srs_wkt (p, 11, ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26784\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def (filter, first, last, 26785, "epsg", 26785, "NAD27 / Maryland"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.3 +lat_2=39.45 +lat_0=37.83333333333"); add_proj4text (p, 1, "334 +lon_0=-77 +x_0=243840.4876809754 +y_0=0 +datum=NAD2"); add_proj4text (p, 2, "7 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Maryland\",GEOGCS[\"NAD27\",DATUM[\"Nor"); add_srs_wkt (p, 1, "th_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637820"); add_srs_wkt (p, 2, "6.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"426"); add_srs_wkt (p, 6, "7\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); add_srs_wkt (p, 7, "TER[\"standard_parallel_1\",38.3],PARAMETER[\"standard_p"); add_srs_wkt (p, 8, "arallel_2\",39.45],PARAMETER[\"latitude_of_origin\",37.8"); add_srs_wkt (p, 9, "3333333333334],PARAMETER[\"central_meridian\",-77],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_easting\",800000.0000000002],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_northing\",0],UNIT[\"US survey foot\",0.304800609601"); add_srs_wkt (p, 12, "2192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS"); add_srs_wkt (p, 13, "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26785\"]]"); p = add_epsg_def (filter, first, last, 26786, "epsg", 26786, "NAD27 / Massachusetts Mainland"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.71666666666667 +lat_2=42.68333333333"); add_proj4text (p, 1, "333 +lat_0=41 +lon_0=-71.5 +x_0=182880.3657607315 +y_0=0"); add_proj4text (p, 2, " +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Massachusetts Mainland\",GEOGCS[\"NAD27"); add_srs_wkt (p, 1, "\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke"); add_srs_wkt (p, 2, " 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 4, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 5, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2"); add_srs_wkt (p, 7, "SP\"],PARAMETER[\"standard_parallel_1\",41.7166666666666"); add_srs_wkt (p, 8, "7],PARAMETER[\"standard_parallel_2\",42.68333333333333],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",41],PARAMETER[\"central"); add_srs_wkt (p, 10, "_meridian\",-71.5],PARAMETER[\"false_easting\",600000],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0"); add_srs_wkt (p, 12, ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X"); add_srs_wkt (p, 13, "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26786\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def (filter, first, last, 26787, "epsg", 26787, "NAD27 / Massachusetts Island"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.28333333333333 +lat_2=41.48333333333"); add_proj4text (p, 1, "333 +lat_0=41 +lon_0=-70.5 +x_0=60960.12192024384 +y_0=0"); add_proj4text (p, 2, " +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Massachusetts Island\",GEOGCS[\"NAD27\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1"); add_srs_wkt (p, 2, "866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 4, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 5, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2"); add_srs_wkt (p, 7, "SP\"],PARAMETER[\"standard_parallel_1\",41.2833333333333"); add_srs_wkt (p, 8, "3],PARAMETER[\"standard_parallel_2\",41.48333333333333],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",41],PARAMETER[\"central"); add_srs_wkt (p, 10, "_meridian\",-70.5],PARAMETER[\"false_easting\",200000],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0"); add_srs_wkt (p, 12, ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X"); add_srs_wkt (p, 13, "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26787\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def (filter, first, last, 26791, "epsg", 26791, "NAD27 / Minnesota North"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.03333333333333 +lat_2=48.63333333333"); add_proj4text (p, 1, "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=609601.21"); add_proj4text (p, 2, "92024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Minnesota North\",GEOGCS[\"NAD27\",DATU"); add_srs_wkt (p, 1, "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); add_srs_wkt (p, 2, ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 7, "PARAMETER[\"standard_parallel_1\",47.03333333333333],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_2\",48.63333333333333],PARAME"); add_srs_wkt (p, 9, "TER[\"latitude_of_origin\",46.5],PARAMETER[\"central_mer"); add_srs_wkt (p, 10, "idian\",-93.1],PARAMETER[\"false_easting\",2000000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"US survey foot\",0.30"); add_srs_wkt (p, 12, "48006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\","); add_srs_wkt (p, 13, "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26791\"]]"); p = add_epsg_def (filter, first, last, 26792, "epsg", 26792, "NAD27 / Minnesota Central"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.61666666666667 +lat_2=47.05 +lat_0=4"); add_proj4text (p, 1, "5 +lon_0=-94.25 +x_0=609601.2192024384 +y_0=0 +datum=NAD"); add_proj4text (p, 2, "27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Minnesota Central\",GEOGCS[\"NAD27\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866"); add_srs_wkt (p, 2, "\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 7, "],PARAMETER[\"standard_parallel_1\",45.61666666666667],P"); add_srs_wkt (p, 8, "ARAMETER[\"standard_parallel_2\",47.05],PARAMETER[\"lati"); add_srs_wkt (p, 9, "tude_of_origin\",45],PARAMETER[\"central_meridian\",-94."); add_srs_wkt (p, 10, "25],PARAMETER[\"false_easting\",2000000],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012"); add_srs_wkt (p, 12, "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS["); add_srs_wkt (p, 13, "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26792\"]]"); p = add_epsg_def (filter, first, last, 26793, "epsg", 26793, "NAD27 / Minnesota South"); add_proj4text (p, 0, "+proj=lcc +lat_1=43.78333333333333 +lat_2=45.21666666666"); add_proj4text (p, 1, "667 +lat_0=43 +lon_0=-94 +x_0=609601.2192024384 +y_0=0 +"); add_proj4text (p, 2, "datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Minnesota South\",GEOGCS[\"NAD27\",DATU"); add_srs_wkt (p, 1, "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); add_srs_wkt (p, 2, ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 7, "PARAMETER[\"standard_parallel_1\",43.78333333333333],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_2\",45.21666666666667],PARAME"); add_srs_wkt (p, 9, "TER[\"latitude_of_origin\",43],PARAMETER[\"central_merid"); add_srs_wkt (p, 10, "ian\",-94],PARAMETER[\"false_easting\",2000000],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_northing\",0],UNIT[\"US survey foot\",0.304800"); add_srs_wkt (p, 12, "6096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST"); add_srs_wkt (p, 13, "],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26793\"]]"); p = add_epsg_def (filter, first, last, 26794, "epsg", 26794, "NAD27 / Mississippi East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=29.66666666666667 +lon_0=-88.83333333"); add_proj4text (p, 1, "333333 +k=0.99996 +x_0=152400.3048006096 +y_0=0 +datum=N"); add_proj4text (p, 2, "AD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Mississippi East\",GEOGCS[\"NAD27\",DAT"); add_srs_wkt (p, 1, "UM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); add_srs_wkt (p, 2, ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 7, "R[\"latitude_of_origin\",29.66666666666667],PARAMETER[\""); add_srs_wkt (p, 8, "central_meridian\",-88.83333333333333],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",0.99996],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0"); add_srs_wkt (p, 11, ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26794\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def (filter, first, last, 26795, "epsg", 26795, "NAD27 / Mississippi West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30.5 +lon_0=-90.33333333333333 +k=0.9"); add_proj4text (p, 1, "99941177 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +uni"); add_proj4text (p, 2, "ts=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Mississippi West\",GEOGCS[\"NAD27\",DAT"); add_srs_wkt (p, 1, "UM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); add_srs_wkt (p, 2, ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 7, "R[\"latitude_of_origin\",30.5],PARAMETER[\"central_merid"); add_srs_wkt (p, 8, "ian\",-90.33333333333333],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 9, "99941177],PARAMETER[\"false_easting\",500000],PARAMETER["); add_srs_wkt (p, 10, "\"false_northing\",0],UNIT[\"US survey foot\",0.30480060"); add_srs_wkt (p, 11, "96012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],"); add_srs_wkt (p, 12, "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26795\"]]"); p = add_epsg_def (filter, first, last, 26796, "epsg", 26796, "NAD27 / Missouri East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-90.5 +k=0.9"); add_proj4text (p, 1, "99933333 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +uni"); add_proj4text (p, 2, "ts=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Missouri East\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",35.83333333333334],PARAMETER[\"c"); add_srs_wkt (p, 8, "entral_meridian\",-90.5],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 9, "9933333],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"US survey foot\",0.3048006096"); add_srs_wkt (p, 11, "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 12, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26796\"]]"); p = add_epsg_def (filter, first, last, 26797, "epsg", 26797, "NAD27 / Missouri Central"); add_proj4text (p, 0, "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-92.5 +k=0.9"); add_proj4text (p, 1, "99933333 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +uni"); add_proj4text (p, 2, "ts=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Missouri Central\",GEOGCS[\"NAD27\",DAT"); add_srs_wkt (p, 1, "UM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); add_srs_wkt (p, 2, ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 7, "R[\"latitude_of_origin\",35.83333333333334],PARAMETER[\""); add_srs_wkt (p, 8, "central_meridian\",-92.5],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 9, "99933333],PARAMETER[\"false_easting\",500000],PARAMETER["); add_srs_wkt (p, 10, "\"false_northing\",0],UNIT[\"US survey foot\",0.30480060"); add_srs_wkt (p, 11, "96012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],"); add_srs_wkt (p, 12, "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26797\"]]"); p = add_epsg_def (filter, first, last, 26798, "epsg", 26798, "NAD27 / Missouri West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36.16666666666666 +lon_0=-94.5 +k=0.9"); add_proj4text (p, 1, "99941177 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +uni"); add_proj4text (p, 2, "ts=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Missouri West\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",36.16666666666666],PARAMETER[\"c"); add_srs_wkt (p, 8, "entral_meridian\",-94.5],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 9, "9941177],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"US survey foot\",0.3048006096"); add_srs_wkt (p, 11, "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 12, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26798\"]]"); p = add_epsg_def (filter, first, last, 26799, "epsg", 26799, "NAD27 / California zone VII"); add_proj4text (p, 0, "+proj=lcc +lat_1=34.41666666666666 +lat_2=33.86666666666"); add_proj4text (p, 1, "667 +lat_0=34.13333333333333 +lon_0=-118.3333333333333 +"); add_proj4text (p, 2, "x_0=1276106.450596901 +y_0=1268253.006858014 +datum=NAD2"); add_proj4text (p, 3, "7 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / California zone VII\",GEOGCS[\"NAD27\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 18"); add_srs_wkt (p, 2, "66\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "08\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 6, "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 7, "\"],PARAMETER[\"standard_parallel_1\",34.41666666666666]"); add_srs_wkt (p, 8, ",PARAMETER[\"standard_parallel_2\",33.86666666666667],PA"); add_srs_wkt (p, 9, "RAMETER[\"latitude_of_origin\",34.13333333333333],PARAME"); add_srs_wkt (p, 10, "TER[\"central_meridian\",-118.3333333333333],PARAMETER[\""); add_srs_wkt (p, 11, "false_easting\",4186692.58],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, ",4160926.74],UNIT[\"US survey foot\",0.3048006096012192,"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 14, ",NORTH],AUTHORITY[\"EPSG\",\"26799\"]]"); p = add_epsg_def (filter, first, last, 26801, "epsg", 26801, "NAD Michigan / Michigan East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.5 +lon_0=-83.66666666666667 +k=0.9"); add_proj4text (p, 1, "99942857 +x_0=152400.3048006096 +y_0=0 +a=6378450.047548"); add_proj4text (p, 2, "896 +b=6356826.621488444 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD Michigan / Michigan East\",GEOGCS[\"NAD27 M"); add_srs_wkt (p, 1, "ichigan\",DATUM[\"NAD27_Michigan\",SPHEROID[\"Clarke 186"); add_srs_wkt (p, 2, "6 Michigan\",6378450.047548896,294.9786971646747,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7009\"]],AUTHORITY[\"EPSG\",\"6268\"]],PRI"); add_srs_wkt (p, 4, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4268\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, "Mercator\"],PARAMETER[\"latitude_of_origin\",41.5],PARAM"); add_srs_wkt (p, 8, "ETER[\"central_meridian\",-83.66666666666667],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",0.999942857],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"US surve"); add_srs_wkt (p, 11, "y foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]"); add_srs_wkt (p, 12, "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"26801\"]]"); p = add_epsg_def (filter, first, last, 26802, "epsg", 26802, "NAD Michigan / Michigan Old Central"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.5 +lon_0=-85.75 +k=0.999909091 +x_"); add_proj4text (p, 1, "0=152400.3048006096 +y_0=0 +a=6378450.047548896 +b=63568"); add_proj4text (p, 2, "26.621488444 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD Michigan / Michigan Old Central\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD27 Michigan\",DATUM[\"NAD27_Michigan\",SPHEROID[\"Cla"); add_srs_wkt (p, 2, "rke 1866 Michigan\",6378450.047548896,294.9786971646747,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7009\"]],AUTHORITY[\"EPSG\",\"6268\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4268\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",41.5"); add_srs_wkt (p, 8, "],PARAMETER[\"central_meridian\",-85.75],PARAMETER[\"sca"); add_srs_wkt (p, 9, "le_factor\",0.999909091],PARAMETER[\"false_easting\",500"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"US survey fo"); add_srs_wkt (p, 11, "ot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AX"); add_srs_wkt (p, 12, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26"); add_srs_wkt (p, 13, "802\"]]"); p = add_epsg_def (filter, first, last, 26803, "epsg", 26803, "NAD Michigan / Michigan West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.5 +lon_0=-88.75 +k=0.999909091 +x_"); add_proj4text (p, 1, "0=152400.3048006096 +y_0=0 +a=6378450.047548896 +b=63568"); add_proj4text (p, 2, "26.621488444 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD Michigan / Michigan West\",GEOGCS[\"NAD27 M"); add_srs_wkt (p, 1, "ichigan\",DATUM[\"NAD27_Michigan\",SPHEROID[\"Clarke 186"); add_srs_wkt (p, 2, "6 Michigan\",6378450.047548896,294.9786971646747,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7009\"]],AUTHORITY[\"EPSG\",\"6268\"]],PRI"); add_srs_wkt (p, 4, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4268\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, "Mercator\"],PARAMETER[\"latitude_of_origin\",41.5],PARAM"); add_srs_wkt (p, 8, "ETER[\"central_meridian\",-88.75],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",0.999909091],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0."); add_srs_wkt (p, 11, "3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26803\"]]"); p = add_epsg_def (filter, first, last, 26811, "epsg", 26811, "NAD Michigan / Michigan North"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.48333333333333 +lat_2=47.08333333333"); add_proj4text (p, 1, "334 +lat_0=44.78333333333333 +lon_0=-87 +x_0=609601.2192"); add_proj4text (p, 2, "024384 +y_0=0 +a=6378450.047548896 +b=6356826.621488444 "); add_proj4text (p, 3, "+units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD Michigan / Michigan North\",GEOGCS[\"NAD27 "); add_srs_wkt (p, 1, "Michigan\",DATUM[\"NAD27_Michigan\",SPHEROID[\"Clarke 18"); add_srs_wkt (p, 2, "66 Michigan\",6378450.047548896,294.9786971646747,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7009\"]],AUTHORITY[\"EPSG\",\"6268\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AUTHORITY[\"EPSG\",\"4268\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 7, "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",4"); add_srs_wkt (p, 8, "5.48333333333333],PARAMETER[\"standard_parallel_2\",47.0"); add_srs_wkt (p, 9, "8333333333334],PARAMETER[\"latitude_of_origin\",44.78333"); add_srs_wkt (p, 10, "333333333],PARAMETER[\"central_meridian\",-87],PARAMETER"); add_srs_wkt (p, 11, "[\"false_easting\",2000000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, ",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 14, "AUTHORITY[\"EPSG\",\"26811\"]]"); p = add_epsg_def (filter, first, last, 26812, "epsg", 26812, "NAD Michigan / Michigan Central"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.18333333333333 +lat_2=45.7 +lat_0=43"); add_proj4text (p, 1, ".31666666666667 +lon_0=-84.33333333333333 +x_0=609601.21"); add_proj4text (p, 2, "92024384 +y_0=0 +a=6378450.047548896 +b=6356826.62148844"); add_proj4text (p, 3, "4 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD Michigan / Michigan Central\",GEOGCS[\"NAD2"); add_srs_wkt (p, 1, "7 Michigan\",DATUM[\"NAD27_Michigan\",SPHEROID[\"Clarke "); add_srs_wkt (p, 2, "1866 Michigan\",6378450.047548896,294.9786971646747,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7009\"]],AUTHORITY[\"EPSG\",\"6268\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4268\"]],PROJECTION[\"Lambert"); add_srs_wkt (p, 7, "_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 8, ",44.18333333333333],PARAMETER[\"standard_parallel_2\",45"); add_srs_wkt (p, 9, ".7],PARAMETER[\"latitude_of_origin\",43.31666666666667],"); add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",-84.33333333333333],PARAM"); add_srs_wkt (p, 11, "ETER[\"false_easting\",2000000],PARAMETER[\"false_northi"); add_srs_wkt (p, 12, "ng\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); add_srs_wkt (p, 14, "TH],AUTHORITY[\"EPSG\",\"26812\"]]"); p = add_epsg_def (filter, first, last, 26813, "epsg", 26813, "NAD Michigan / Michigan South"); add_proj4text (p, 0, "+proj=lcc +lat_1=42.1 +lat_2=43.66666666666666 +lat_0=41"); add_proj4text (p, 1, ".5 +lon_0=-84.33333333333333 +x_0=609601.2192024384 +y_0"); add_proj4text (p, 2, "=0 +a=6378450.047548896 +b=6356826.621488444 +units=us-f"); add_proj4text (p, 3, "t +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD Michigan / Michigan South\",GEOGCS[\"NAD27 "); add_srs_wkt (p, 1, "Michigan\",DATUM[\"NAD27_Michigan\",SPHEROID[\"Clarke 18"); add_srs_wkt (p, 2, "66 Michigan\",6378450.047548896,294.9786971646747,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7009\"]],AUTHORITY[\"EPSG\",\"6268\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AUTHORITY[\"EPSG\",\"4268\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 7, "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",4"); add_srs_wkt (p, 8, "2.1],PARAMETER[\"standard_parallel_2\",43.66666666666666"); add_srs_wkt (p, 9, "],PARAMETER[\"latitude_of_origin\",41.5],PARAMETER[\"cen"); add_srs_wkt (p, 10, "tral_meridian\",-84.33333333333333],PARAMETER[\"false_ea"); add_srs_wkt (p, 11, "sting\",2000000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 12, "US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"26813\"]]"); p = add_epsg_def (filter, first, last, 26814, "epsg", 26814, "NAD83 / Maine East (ftUS) (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9"); add_proj4text (p, 1, "999 +x_0=300000 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Maine East (ftUS) (deprecated)\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID["); add_srs_wkt (p, 2, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"626"); add_srs_wkt (p, 4, "9\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",4"); add_srs_wkt (p, 8, "3.66666666666666],PARAMETER[\"central_meridian\",-68.5],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",300000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A"); add_srs_wkt (p, 12, "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26814\"]]"); p = add_epsg_def (filter, first, last, 26815, "epsg", 26815, "NAD83 / Maine West (ftUS) (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666"); add_proj4text (p, 1, "666667 +k=0.999966667 +x_0=900000 +y_0=0 +datum=NAD83 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Maine West (ftUS) (deprecated)\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID["); add_srs_wkt (p, 2, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"626"); add_srs_wkt (p, 4, "9\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",4"); add_srs_wkt (p, 8, "2.83333333333334],PARAMETER[\"central_meridian\",-70.166"); add_srs_wkt (p, 9, "66666666667],PARAMETER[\"scale_factor\",0.999966667],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_easting\",900000],PARAMETER[\"false_north"); add_srs_wkt (p, 11, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 12, "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "26815\"]]"); p = add_epsg_def (filter, first, last, 26819, "epsg", 26819, "NAD83 / Minnesota North (ftUS) (deprecated)"); add_proj4text (p, 0, "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333"); add_proj4text (p, 1, "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.00"); add_proj4text (p, 2, "00101601 +y_0=99999.99998984 +datum=NAD83 +units=m +no_d"); add_proj4text (p, 3, "efs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Minnesota North (ftUS) (deprecated)\",G"); add_srs_wkt (p, 1, "EOGCS[\"NAD83\",DATUM[\"North_American_Datum_1983\",SPHE"); add_srs_wkt (p, 2, "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6269\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTIO"); add_srs_wkt (p, 7, "N[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_"); add_srs_wkt (p, 8, "parallel_1\",48.63333333333333],PARAMETER[\"standard_par"); add_srs_wkt (p, 9, "allel_2\",47.03333333333333],PARAMETER[\"latitude_of_ori"); add_srs_wkt (p, 10, "gin\",46.5],PARAMETER[\"central_meridian\",-93.1],PARAME"); add_srs_wkt (p, 11, "TER[\"false_easting\",800000.0000101601],PARAMETER[\"fal"); add_srs_wkt (p, 12, "se_northing\",99999.99998984],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 14, "AUTHORITY[\"EPSG\",\"26819\"]]"); p = add_epsg_def (filter, first, last, 26820, "epsg", 26820, "NAD83 / Minnesota Central (ftUS) (deprecated)"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=4"); add_proj4text (p, 1, "5 +lon_0=-94.25 +x_0=800000.0000101601 +y_0=99999.999989"); add_proj4text (p, 2, "84 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Minnesota Central (ftUS) (deprecated)\""); add_srs_wkt (p, 1, ",GEOGCS[\"NAD83\",DATUM[\"North_American_Datum_1983\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6269\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 8, "_parallel_1\",47.05],PARAMETER[\"standard_parallel_2\",4"); add_srs_wkt (p, 9, "5.61666666666667],PARAMETER[\"latitude_of_origin\",45],P"); add_srs_wkt (p, 10, "ARAMETER[\"central_meridian\",-94.25],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",800000.0000101601],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, ",99999.99998984],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 13, "001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 14, "PSG\",\"26820\"]]"); p = add_epsg_def (filter, first, last, 26821, "epsg", 26821, "NAD83 / Minnesota South (ftUS) (deprecated)"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333"); add_proj4text (p, 1, "333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101601 +y_0=999"); add_proj4text (p, 2, "99.99998984 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Minnesota South (ftUS) (deprecated)\",G"); add_srs_wkt (p, 1, "EOGCS[\"NAD83\",DATUM[\"North_American_Datum_1983\",SPHE"); add_srs_wkt (p, 2, "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6269\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTIO"); add_srs_wkt (p, 7, "N[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_"); add_srs_wkt (p, 8, "parallel_1\",45.21666666666667],PARAMETER[\"standard_par"); add_srs_wkt (p, 9, "allel_2\",43.78333333333333],PARAMETER[\"latitude_of_ori"); add_srs_wkt (p, 10, "gin\",43],PARAMETER[\"central_meridian\",-94],PARAMETER["); add_srs_wkt (p, 11, "\"false_easting\",800000.0000101601],PARAMETER[\"false_n"); add_srs_wkt (p, 12, "orthing\",99999.99998984],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 14, "ORITY[\"EPSG\",\"26821\"]]"); p = add_epsg_def (filter, first, last, 26822, "epsg", 26822, "NAD83 / Nebraska (ftUS) (deprecated)"); add_proj4text (p, 0, "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +"); add_proj4text (p, 1, "lon_0=-100 +x_0=500000.0000101601 +y_0=0 +datum=NAD83 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Nebraska (ftUS) (deprecated)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"G"); add_srs_wkt (p, 2, "RS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"701"); add_srs_wkt (p, 3, "9\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 7, "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 8, "_1\",43],PARAMETER[\"standard_parallel_2\",40],PARAMETER"); add_srs_wkt (p, 9, "[\"latitude_of_origin\",39.83333333333334],PARAMETER[\"c"); add_srs_wkt (p, 10, "entral_meridian\",-100],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 11, "00.0000101601],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 12, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A"); add_srs_wkt (p, 13, "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26822\"]]"); p = add_epsg_def (filter, first, last, 26823, "epsg", 26823, "NAD83 / West Virginia North (ftUS) (deprecated)"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79."); add_proj4text (p, 1, "5 +x_0=1968500 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / West Virginia North (ftUS) (deprecated)"); add_srs_wkt (p, 1, "\",GEOGCS[\"NAD83\",DATUM[\"North_American_Datum_1983\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6269\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 8, "ard_parallel_1\",40.25],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",39],PARAMETER[\"latitude_of_origin\",38.5],PARAMETER[\""); add_srs_wkt (p, 10, "central_meridian\",-79.5],PARAMETER[\"false_easting\",19"); add_srs_wkt (p, 11, "68500],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"26823\"]]"); p = add_epsg_def (filter, first, last, 26824, "epsg", 26824, "NAD83 / West Virginia South (ftUS) (deprecated)"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333"); add_proj4text (p, 1, "333 +lat_0=37 +lon_0=-81 +x_0=1968500 +y_0=0 +datum=NAD8"); add_proj4text (p, 2, "3 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / West Virginia South (ftUS) (deprecated)"); add_srs_wkt (p, 1, "\",GEOGCS[\"NAD83\",DATUM[\"North_American_Datum_1983\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6269\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 8, "ard_parallel_1\",38.88333333333333],PARAMETER[\"standard"); add_srs_wkt (p, 9, "_parallel_2\",37.48333333333333],PARAMETER[\"latitude_of"); add_srs_wkt (p, 10, "_origin\",37],PARAMETER[\"central_meridian\",-81],PARAME"); add_srs_wkt (p, 11, "TER[\"false_easting\",1968500],PARAMETER[\"false_northin"); add_srs_wkt (p, 12, "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 13, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26"); add_srs_wkt (p, 14, "824\"]]"); p = add_epsg_def (filter, first, last, 26825, "epsg", 26825, "NAD83(HARN) / Maine East (ftUS) (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9"); add_proj4text (p, 1, "999 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 2, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Maine East (ftUS) (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Refer"); add_srs_wkt (p, 2, "ence_Network\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, "01,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4152\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",43.66666666666666],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",-68.5],PARAMETER[\"scale_factor\",0.9999]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",300000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"26825\"]]"); p = add_epsg_def (filter, first, last, 26826, "epsg", 26826, "NAD83(HARN) / Maine West (ftUS) (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666"); add_proj4text (p, 1, "666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +t"); add_proj4text (p, 2, "owgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Maine West (ftUS) (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Refer"); add_srs_wkt (p, 2, "ence_Network\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, "01,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4152\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",42.83333333333334],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",-70.16666666666667],PARAMETER[\"scale_fac"); add_srs_wkt (p, 10, "tor\",0.999966667],PARAMETER[\"false_easting\",900000],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"26826\"]]"); p = add_epsg_def (filter, first, last, 26830, "epsg", 26830, "NAD83(HARN) / Minnesota North (ftUS) (deprecated)"); add_proj4text (p, 0, "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333"); add_proj4text (p, 1, "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.00"); add_proj4text (p, 2, "00101601 +y_0=99999.99998984 +ellps=GRS80 +towgs84=0,0,0"); add_proj4text (p, 3, ",0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Minnesota North (ftUS) (deprecate"); add_srs_wkt (p, 1, "d)\",GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_"); add_srs_wkt (p, 2, "Reference_Network\",SPHEROID[\"GRS 1980\",6378137,298.25"); add_srs_wkt (p, 3, "7222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,"); add_srs_wkt (p, 4, "0,0],AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, "G\",\"4152\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 8, "],PARAMETER[\"standard_parallel_1\",48.63333333333333],P"); add_srs_wkt (p, 9, "ARAMETER[\"standard_parallel_2\",47.03333333333333],PARA"); add_srs_wkt (p, 10, "METER[\"latitude_of_origin\",46.5],PARAMETER[\"central_m"); add_srs_wkt (p, 11, "eridian\",-93.1],PARAMETER[\"false_easting\",800000.0000"); add_srs_wkt (p, 12, "101601],PARAMETER[\"false_northing\",99999.99998984],UNI"); add_srs_wkt (p, 13, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",E"); add_srs_wkt (p, 14, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26830\"]]"); p = add_epsg_def (filter, first, last, 26831, "epsg", 26831, "NAD83(HARN) / Minnesota Central (ftUS) (deprecated)"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=4"); add_proj4text (p, 1, "5 +lon_0=-94.25 +x_0=800000.0000101601 +y_0=99999.999989"); add_proj4text (p, 2, "84 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Minnesota Central (ftUS) (depreca"); add_srs_wkt (p, 1, "ted)\",GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accurac"); add_srs_wkt (p, 2, "y_Reference_Network\",SPHEROID[\"GRS 1980\",6378137,298."); add_srs_wkt (p, 3, "257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,"); add_srs_wkt (p, 4, "0,0,0],AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4152\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 8, "\"],PARAMETER[\"standard_parallel_1\",47.05],PARAMETER[\""); add_srs_wkt (p, 9, "standard_parallel_2\",45.61666666666667],PARAMETER[\"lat"); add_srs_wkt (p, 10, "itude_of_origin\",45],PARAMETER[\"central_meridian\",-94"); add_srs_wkt (p, 11, ".25],PARAMETER[\"false_easting\",800000.0000101601],PARA"); add_srs_wkt (p, 12, "METER[\"false_northing\",99999.99998984],UNIT[\"metre\","); add_srs_wkt (p, 13, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 14, "Y\",NORTH],AUTHORITY[\"EPSG\",\"26831\"]]"); p = add_epsg_def (filter, first, last, 26832, "epsg", 26832, "NAD83(HARN) / Minnesota South (ftUS) (deprecated)"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333"); add_proj4text (p, 1, "333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101601 +y_0=999"); add_proj4text (p, 2, "99.99998984 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m"); add_proj4text (p, 3, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Minnesota South (ftUS) (deprecate"); add_srs_wkt (p, 1, "d)\",GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_"); add_srs_wkt (p, 2, "Reference_Network\",SPHEROID[\"GRS 1980\",6378137,298.25"); add_srs_wkt (p, 3, "7222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,"); add_srs_wkt (p, 4, "0,0],AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, "G\",\"4152\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 8, "],PARAMETER[\"standard_parallel_1\",45.21666666666667],P"); add_srs_wkt (p, 9, "ARAMETER[\"standard_parallel_2\",43.78333333333333],PARA"); add_srs_wkt (p, 10, "METER[\"latitude_of_origin\",43],PARAMETER[\"central_mer"); add_srs_wkt (p, 11, "idian\",-94],PARAMETER[\"false_easting\",800000.00001016"); add_srs_wkt (p, 12, "01],PARAMETER[\"false_northing\",99999.99998984],UNIT[\""); add_srs_wkt (p, 13, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 14, ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26832\"]]"); p = add_epsg_def (filter, first, last, 26833, "epsg", 26833, "NAD83(HARN) / Nebraska (ftUS) (deprecated)"); add_proj4text (p, 0, "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +"); add_proj4text (p, 1, "lon_0=-100 +x_0=500000.0000101601 +y_0=0 +ellps=GRS80 +t"); add_proj4text (p, 2, "owgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Nebraska (ftUS) (deprecated)\",GE"); add_srs_wkt (p, 1, "OGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Referen"); add_srs_wkt (p, 2, "ce_Network\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "152\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARA"); add_srs_wkt (p, 8, "METER[\"standard_parallel_1\",43],PARAMETER[\"standard_p"); add_srs_wkt (p, 9, "arallel_2\",40],PARAMETER[\"latitude_of_origin\",39.8333"); add_srs_wkt (p, 10, "3333333334],PARAMETER[\"central_meridian\",-100],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_easting\",500000.0000101601],PARAMETER[\"fals"); add_srs_wkt (p, 12, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "01\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP"); add_srs_wkt (p, 14, "SG\",\"26833\"]]"); p = add_epsg_def (filter, first, last, 26834, "epsg", 26834, "NAD83(HARN) / West Virginia North (ftUS) (deprecated)"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79."); add_proj4text (p, 1, "5 +x_0=1968500 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,"); add_proj4text (p, 2, "0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / West Virginia North (ftUS) (depre"); add_srs_wkt (p, 1, "cated)\",GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accur"); add_srs_wkt (p, 2, "acy_Reference_Network\",SPHEROID[\"GRS 1980\",6378137,29"); add_srs_wkt (p, 3, "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,"); add_srs_wkt (p, 4, "0,0,0,0],AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 5, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 6, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 7, "EPSG\",\"4152\"]],PROJECTION[\"Lambert_Conformal_Conic_2"); add_srs_wkt (p, 8, "SP\"],PARAMETER[\"standard_parallel_1\",40.25],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_2\",39],PARAMETER[\"latitude_of_ori"); add_srs_wkt (p, 10, "gin\",38.5],PARAMETER[\"central_meridian\",-79.5],PARAME"); add_srs_wkt (p, 11, "TER[\"false_easting\",1968500],PARAMETER[\"false_northin"); add_srs_wkt (p, 12, "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 13, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26"); add_srs_wkt (p, 14, "834\"]]"); p = add_epsg_def (filter, first, last, 26835, "epsg", 26835, "NAD83(HARN) / West Virginia South (ftUS) (deprecated)"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333"); add_proj4text (p, 1, "333 +lat_0=37 +lon_0=-81 +x_0=1968500 +y_0=0 +ellps=GRS8"); add_proj4text (p, 2, "0 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / West Virginia South (ftUS) (depre"); add_srs_wkt (p, 1, "cated)\",GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accur"); add_srs_wkt (p, 2, "acy_Reference_Network\",SPHEROID[\"GRS 1980\",6378137,29"); add_srs_wkt (p, 3, "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,"); add_srs_wkt (p, 4, "0,0,0,0],AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 5, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 6, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 7, "EPSG\",\"4152\"]],PROJECTION[\"Lambert_Conformal_Conic_2"); add_srs_wkt (p, 8, "SP\"],PARAMETER[\"standard_parallel_1\",38.8833333333333"); add_srs_wkt (p, 9, "3],PARAMETER[\"standard_parallel_2\",37.48333333333333],"); add_srs_wkt (p, 10, "PARAMETER[\"latitude_of_origin\",37],PARAMETER[\"central"); add_srs_wkt (p, 11, "_meridian\",-81],PARAMETER[\"false_easting\",1968500],PA"); add_srs_wkt (p, 12, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 14, "AUTHORITY[\"EPSG\",\"26835\"]]"); p = add_epsg_def (filter, first, last, 26836, "epsg", 26836, "NAD83(NSRS2007) / Maine East (ftUS) (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9"); add_proj4text (p, 1, "999 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 2, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Maine East (ftUS) (deprecated"); add_srs_wkt (p, 1, ")\",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Sp"); add_srs_wkt (p, 2, "atial_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 3, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 4, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 5, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 6, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4759\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",43.66666666666666],"); add_srs_wkt (p, 9, "PARAMETER[\"central_meridian\",-68.5],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9999],PARAMETER[\"false_easting\",300000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"26836\"]]"); p = add_epsg_def (filter, first, last, 26837, "epsg", 26837, "NAD83(NSRS2007) / Maine West (ftUS) (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666"); add_proj4text (p, 1, "666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +t"); add_proj4text (p, 2, "owgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Maine West (ftUS) (deprecated"); add_srs_wkt (p, 1, ")\",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Sp"); add_srs_wkt (p, 2, "atial_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 3, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 4, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 5, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 6, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4759\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",42.83333333333334],"); add_srs_wkt (p, 9, "PARAMETER[\"central_meridian\",-70.16666666666667],PARAM"); add_srs_wkt (p, 10, "ETER[\"scale_factor\",0.999966667],PARAMETER[\"false_eas"); add_srs_wkt (p, 11, "ting\",900000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 12, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A"); add_srs_wkt (p, 13, "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26837\"]]"); p = add_epsg_def (filter, first, last, 26841, "epsg", 26841, "NAD83(NSRS2007) / Minnesota North (ftUS) (deprecated)"); add_proj4text (p, 0, "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333"); add_proj4text (p, 1, "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.00"); add_proj4text (p, 2, "00101601 +y_0=99999.99998984 +ellps=GRS80 +towgs84=0,0,0"); add_proj4text (p, 3, ",0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Minnesota North (ftUS) (depre"); add_srs_wkt (p, 1, "cated)\",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_Nation"); add_srs_wkt (p, 2, "al_Spatial_Reference_System_2007\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 3, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 4, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM"); add_srs_wkt (p, 5, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 6, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 8, "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",48.6"); add_srs_wkt (p, 9, "3333333333333],PARAMETER[\"standard_parallel_2\",47.0333"); add_srs_wkt (p, 10, "3333333333],PARAMETER[\"latitude_of_origin\",46.5],PARAM"); add_srs_wkt (p, 11, "ETER[\"central_meridian\",-93.1],PARAMETER[\"false_easti"); add_srs_wkt (p, 12, "ng\",800000.0000101601],PARAMETER[\"false_northing\",999"); add_srs_wkt (p, 13, "99.99998984],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 14, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 15, ",\"26841\"]]"); p = add_epsg_def (filter, first, last, 26842, "epsg", 26842, "NAD83(NSRS2007) / Minnesota Central (ftUS) (deprecated)"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=4"); add_proj4text (p, 1, "5 +lon_0=-94.25 +x_0=800000.0000101601 +y_0=99999.999989"); add_proj4text (p, 2, "84 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Minnesota Central (ftUS) (dep"); add_srs_wkt (p, 1, "recated)\",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_Nati"); add_srs_wkt (p, 2, "onal_Spatial_Reference_System_2007\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 3, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 4, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIM"); add_srs_wkt (p, 5, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 6, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 8, "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",47"); add_srs_wkt (p, 9, ".05],PARAMETER[\"standard_parallel_2\",45.61666666666667"); add_srs_wkt (p, 10, "],PARAMETER[\"latitude_of_origin\",45],PARAMETER[\"centr"); add_srs_wkt (p, 11, "al_meridian\",-94.25],PARAMETER[\"false_easting\",800000"); add_srs_wkt (p, 12, ".0000101601],PARAMETER[\"false_northing\",99999.99998984"); add_srs_wkt (p, 13, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 14, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26842\""); add_srs_wkt (p, 15, "]]"); p = add_epsg_def (filter, first, last, 26843, "epsg", 26843, "NAD83(NSRS2007) / Minnesota South (ftUS) (deprecated)"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333"); add_proj4text (p, 1, "333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101601 +y_0=999"); add_proj4text (p, 2, "99.99998984 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m"); add_proj4text (p, 3, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Minnesota South (ftUS) (depre"); add_srs_wkt (p, 1, "cated)\",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_Nation"); add_srs_wkt (p, 2, "al_Spatial_Reference_System_2007\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 3, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 4, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM"); add_srs_wkt (p, 5, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 6, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 8, "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",45.2"); add_srs_wkt (p, 9, "1666666666667],PARAMETER[\"standard_parallel_2\",43.7833"); add_srs_wkt (p, 10, "3333333333],PARAMETER[\"latitude_of_origin\",43],PARAMET"); add_srs_wkt (p, 11, "ER[\"central_meridian\",-94],PARAMETER[\"false_easting\""); add_srs_wkt (p, 12, ",800000.0000101601],PARAMETER[\"false_northing\",99999.9"); add_srs_wkt (p, 13, "9998984],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 14, "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 15, "26843\"]]"); p = add_epsg_def (filter, first, last, 26844, "epsg", 26844, "NAD83(NSRS2007) / Nebraska (ftUS) (deprecated)"); add_proj4text (p, 0, "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +"); add_proj4text (p, 1, "lon_0=-100 +x_0=500000.0000101601 +y_0=0 +ellps=GRS80 +t"); add_proj4text (p, 2, "owgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Nebraska (ftUS) (deprecated)\""); add_srs_wkt (p, 1, ",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spati"); add_srs_wkt (p, 2, "al_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 3, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 4, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Green"); add_srs_wkt (p, 5, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 6, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 7, "Y[\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Con"); add_srs_wkt (p, 8, "ic_2SP\"],PARAMETER[\"standard_parallel_1\",43],PARAMETE"); add_srs_wkt (p, 9, "R[\"standard_parallel_2\",40],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 10, "igin\",39.83333333333334],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 11, ",-100],PARAMETER[\"false_easting\",500000.0000101601],PA"); add_srs_wkt (p, 12, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 14, "AUTHORITY[\"EPSG\",\"26844\"]]"); p = add_epsg_def (filter, first, last, 26845, "epsg", 26845, "NAD83(NSRS2007) / West Virginia North (ftUS) (deprecated)"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79."); add_proj4text (p, 1, "5 +x_0=1968500 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,"); add_proj4text (p, 2, "0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / West Virginia North (ftUS) (d"); add_srs_wkt (p, 1, "eprecated)\",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_Na"); add_srs_wkt (p, 2, "tional_Spatial_Reference_System_2007\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 3, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 4, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PR"); add_srs_wkt (p, 5, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 6, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 7, "]],AUTHORITY[\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 8, "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",4"); add_srs_wkt (p, 9, "0.25],PARAMETER[\"standard_parallel_2\",39],PARAMETER[\""); add_srs_wkt (p, 10, "latitude_of_origin\",38.5],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 11, ",-79.5],PARAMETER[\"false_easting\",1968500],PARAMETER[\""); add_srs_wkt (p, 12, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); add_srs_wkt (p, 14, "\"EPSG\",\"26845\"]]"); p = add_epsg_def (filter, first, last, 26846, "epsg", 26846, "NAD83(NSRS2007) / West Virginia South (ftUS) (deprecated)"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333"); add_proj4text (p, 1, "333 +lat_0=37 +lon_0=-81 +x_0=1968500 +y_0=0 +ellps=GRS8"); add_proj4text (p, 2, "0 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / West Virginia South (ftUS) (d"); add_srs_wkt (p, 1, "eprecated)\",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_Na"); add_srs_wkt (p, 2, "tional_Spatial_Reference_System_2007\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 3, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 4, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PR"); add_srs_wkt (p, 5, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 6, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 7, "]],AUTHORITY[\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 8, "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",3"); add_srs_wkt (p, 9, "8.88333333333333],PARAMETER[\"standard_parallel_2\",37.4"); add_srs_wkt (p, 10, "8333333333333],PARAMETER[\"latitude_of_origin\",37],PARA"); add_srs_wkt (p, 11, "METER[\"central_meridian\",-81],PARAMETER[\"false_eastin"); add_srs_wkt (p, 12, "g\",1968500],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 13, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI"); add_srs_wkt (p, 14, "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26846\"]]"); p = add_epsg_def (filter, first, last, 26847, "epsg", 26847, "NAD83 / Maine East (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9"); add_proj4text (p, 1, "999 +x_0=300000.0000000001 +y_0=0 +datum=NAD83 +units=us"); add_proj4text (p, 2, "-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Maine East (ftUS)\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 7, "cator\"],PARAMETER[\"latitude_of_origin\",43.66666666666"); add_srs_wkt (p, 8, "666],PARAMETER[\"central_meridian\",-68.5],PARAMETER[\"s"); add_srs_wkt (p, 9, "cale_factor\",0.9999],PARAMETER[\"false_easting\",984250"); add_srs_wkt (p, 10, ".0000000002],PARAMETER[\"false_northing\",0],UNIT[\"US s"); add_srs_wkt (p, 11, "urvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, "3\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"26847\"]]"); p = add_epsg_def (filter, first, last, 26848, "epsg", 26848, "NAD83 / Maine West (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666"); add_proj4text (p, 1, "666667 +k=0.999966667 +x_0=900000 +y_0=0 +datum=NAD83 +u"); add_proj4text (p, 2, "nits=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Maine West (ftUS)\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 7, "cator\"],PARAMETER[\"latitude_of_origin\",42.83333333333"); add_srs_wkt (p, 8, "334],PARAMETER[\"central_meridian\",-70.16666666666667],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.999966667],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_easting\",2952750],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"26848\"]]"); p = add_epsg_def (filter, first, last, 26849, "epsg", 26849, "NAD83 / Minnesota North (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333"); add_proj4text (p, 1, "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.00"); add_proj4text (p, 2, "00101599 +y_0=99999.99998983997 +datum=NAD83 +units=us-f"); add_proj4text (p, 3, "t +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Minnesota North (ftUS)\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 7, "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",4"); add_srs_wkt (p, 8, "8.63333333333333],PARAMETER[\"standard_parallel_2\",47.0"); add_srs_wkt (p, 9, "3333333333333],PARAMETER[\"latitude_of_origin\",46.5],PA"); add_srs_wkt (p, 10, "RAMETER[\"central_meridian\",-93.1],PARAMETER[\"false_ea"); add_srs_wkt (p, 11, "sting\",2624666.6667],PARAMETER[\"false_northing\",32808"); add_srs_wkt (p, 12, "3.3333],UNIT[\"US survey foot\",0.3048006096012192,AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); add_srs_wkt (p, 14, "TH],AUTHORITY[\"EPSG\",\"26849\"]]"); p = add_epsg_def (filter, first, last, 26850, "epsg", 26850, "NAD83 / Minnesota Central (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=4"); add_proj4text (p, 1, "5 +lon_0=-94.25 +x_0=800000.0000101599 +y_0=99999.999989"); add_proj4text (p, 2, "83997 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Minnesota Central (ftUS)\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS "); add_srs_wkt (p, 2, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert"); add_srs_wkt (p, 7, "_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 8, ",47.05],PARAMETER[\"standard_parallel_2\",45.61666666666"); add_srs_wkt (p, 9, "667],PARAMETER[\"latitude_of_origin\",45],PARAMETER[\"ce"); add_srs_wkt (p, 10, "ntral_meridian\",-94.25],PARAMETER[\"false_easting\",262"); add_srs_wkt (p, 11, "4666.6667],PARAMETER[\"false_northing\",328083.3333],UNI"); add_srs_wkt (p, 12, "T[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); add_srs_wkt (p, 14, "TY[\"EPSG\",\"26850\"]]"); p = add_epsg_def (filter, first, last, 26851, "epsg", 26851, "NAD83 / Minnesota South (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333"); add_proj4text (p, 1, "333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101599 +y_0=999"); add_proj4text (p, 2, "99.99998983997 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Minnesota South (ftUS)\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 7, "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",4"); add_srs_wkt (p, 8, "5.21666666666667],PARAMETER[\"standard_parallel_2\",43.7"); add_srs_wkt (p, 9, "8333333333333],PARAMETER[\"latitude_of_origin\",43],PARA"); add_srs_wkt (p, 10, "METER[\"central_meridian\",-94],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, "g\",2624666.6667],PARAMETER[\"false_northing\",328083.33"); add_srs_wkt (p, 12, "33],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 14, "AUTHORITY[\"EPSG\",\"26851\"]]"); p = add_epsg_def (filter, first, last, 26852, "epsg", 26852, "NAD83 / Nebraska (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +"); add_proj4text (p, 1, "lon_0=-100 +x_0=500000.00001016 +y_0=0 +datum=NAD83 +uni"); add_proj4text (p, 2, "ts=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Nebraska (ftUS)\",GEOGCS[\"NAD83\",DATU"); add_srs_wkt (p, 1, "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63"); add_srs_wkt (p, 2, "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8"); add_srs_wkt (p, 3, "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 7, "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",43],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_2\",40],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",39.83333333333334],PARAMETER[\"central_merid"); add_srs_wkt (p, 10, "ian\",-100],PARAMETER[\"false_easting\",1640416.6667],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0."); add_srs_wkt (p, 12, "3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); add_srs_wkt (p, 13, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26852\"]]"); p = add_epsg_def (filter, first, last, 26853, "epsg", 26853, "NAD83 / West Virginia North (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79."); add_proj4text (p, 1, "5 +x_0=600000 +y_0=0 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / West Virginia North (ftUS)\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambe"); add_srs_wkt (p, 7, "rt_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 8, "1\",40.25],PARAMETER[\"standard_parallel_2\",39],PARAMET"); add_srs_wkt (p, 9, "ER[\"latitude_of_origin\",38.5],PARAMETER[\"central_meri"); add_srs_wkt (p, 10, "dian\",-79.5],PARAMETER[\"false_easting\",1968500],PARAM"); add_srs_wkt (p, 11, "ETER[\"false_northing\",0],UNIT[\"US survey foot\",0.304"); add_srs_wkt (p, 12, "8006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",E"); add_srs_wkt (p, 13, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26853\"]]"); p = add_epsg_def (filter, first, last, 26854, "epsg", 26854, "NAD83 / West Virginia South (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333"); add_proj4text (p, 1, "333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +datum=NAD83"); add_proj4text (p, 2, " +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / West Virginia South (ftUS)\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambe"); add_srs_wkt (p, 7, "rt_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 8, "1\",38.88333333333333],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",37.48333333333333],PARAMETER[\"latitude_of_origin\",37]"); add_srs_wkt (p, 10, ",PARAMETER[\"central_meridian\",-81],PARAMETER[\"false_e"); add_srs_wkt (p, 11, "asting\",1968500],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 12, "US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"26854\"]]"); p = add_epsg_def (filter, first, last, 26855, "epsg", 26855, "NAD83(HARN) / Maine East (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9"); add_proj4text (p, 1, "999 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +towgs84="); add_proj4text (p, 2, "0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Maine East (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",43.66666666666666],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",-68.5],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_easting\",984250.0000000002],PARAMETER[\"false_nort"); add_srs_wkt (p, 11, "hing\",0],UNIT[\"US survey foot\",0.3048006096012192,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); add_srs_wkt (p, 13, "ORTH],AUTHORITY[\"EPSG\",\"26855\"]]"); p = add_epsg_def (filter, first, last, 26856, "epsg", 26856, "NAD83(HARN) / Maine West (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666"); add_proj4text (p, 1, "666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +t"); add_proj4text (p, 2, "owgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Maine West (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",42.83333333333334],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",-70.16666666666667],PARAMETER[\"scale_factor\",0.999966"); add_srs_wkt (p, 10, "667],PARAMETER[\"false_easting\",2952750],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_northing\",0],UNIT[\"US survey foot\",0.304800609601"); add_srs_wkt (p, 12, "2192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS"); add_srs_wkt (p, 13, "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26856\"]]"); p = add_epsg_def (filter, first, last, 26857, "epsg", 26857, "NAD83(HARN) / Minnesota North (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333"); add_proj4text (p, 1, "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.00"); add_proj4text (p, 2, "00101599 +y_0=99999.99998983997 +ellps=GRS80 +towgs84=0,"); add_proj4text (p, 3, "0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Minnesota North (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netw"); add_srs_wkt (p, 2, "ork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 8, "standard_parallel_1\",48.63333333333333],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_2\",47.03333333333333],PARAMETER[\"latitu"); add_srs_wkt (p, 10, "de_of_origin\",46.5],PARAMETER[\"central_meridian\",-93."); add_srs_wkt (p, 11, "1],PARAMETER[\"false_easting\",2624666.6667],PARAMETER[\""); add_srs_wkt (p, 12, "false_northing\",328083.3333],UNIT[\"US survey foot\",0."); add_srs_wkt (p, 13, "3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); add_srs_wkt (p, 14, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26857\"]]"); p = add_epsg_def (filter, first, last, 26858, "epsg", 26858, "NAD83(HARN) / Minnesota Central (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=4"); add_proj4text (p, 1, "5 +lon_0=-94.25 +x_0=800000.0000101599 +y_0=99999.999989"); add_proj4text (p, 2, "83997 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Minnesota Central (ftUS)\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_N"); add_srs_wkt (p, 2, "etwork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 8, "[\"standard_parallel_1\",47.05],PARAMETER[\"standard_par"); add_srs_wkt (p, 9, "allel_2\",45.61666666666667],PARAMETER[\"latitude_of_ori"); add_srs_wkt (p, 10, "gin\",45],PARAMETER[\"central_meridian\",-94.25],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_easting\",2624666.6667],PARAMETER[\"false_nor"); add_srs_wkt (p, 12, "thing\",328083.3333],UNIT[\"US survey foot\",0.304800609"); add_srs_wkt (p, 13, "6012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],A"); add_srs_wkt (p, 14, "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26858\"]]"); p = add_epsg_def (filter, first, last, 26859, "epsg", 26859, "NAD83(HARN) / Minnesota South (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333"); add_proj4text (p, 1, "333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101599 +y_0=999"); add_proj4text (p, 2, "99.99998983997 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 3, "s=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Minnesota South (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netw"); add_srs_wkt (p, 2, "ork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 8, "standard_parallel_1\",45.21666666666667],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_2\",43.78333333333333],PARAMETER[\"latitu"); add_srs_wkt (p, 10, "de_of_origin\",43],PARAMETER[\"central_meridian\",-94],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_easting\",2624666.6667],PARAMETER[\"fal"); add_srs_wkt (p, 12, "se_northing\",328083.3333],UNIT[\"US survey foot\",0.304"); add_srs_wkt (p, 13, "8006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",E"); add_srs_wkt (p, 14, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26859\"]]"); p = add_epsg_def (filter, first, last, 26860, "epsg", 26860, "NAD83(HARN) / Nebraska (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +"); add_proj4text (p, 1, "lon_0=-100 +x_0=500000.00001016 +y_0=0 +ellps=GRS80 +tow"); add_proj4text (p, 2, "gs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Nebraska (ftUS)\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 8, "ard_parallel_1\",43],PARAMETER[\"standard_parallel_2\",4"); add_srs_wkt (p, 9, "0],PARAMETER[\"latitude_of_origin\",39.83333333333334],P"); add_srs_wkt (p, 10, "ARAMETER[\"central_meridian\",-100],PARAMETER[\"false_ea"); add_srs_wkt (p, 11, "sting\",1640416.6667],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 12, "IT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR"); add_srs_wkt (p, 14, "ITY[\"EPSG\",\"26860\"]]"); p = add_epsg_def (filter, first, last, 26861, "epsg", 26861, "NAD83(HARN) / West Virginia North (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79."); add_proj4text (p, 1, "5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / West Virginia North (ftUS)\",GEOG"); add_srs_wkt (p, 1, "CS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference"); add_srs_wkt (p, 2, "_Network\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"415"); add_srs_wkt (p, 7, "2\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); add_srs_wkt (p, 8, "TER[\"standard_parallel_1\",40.25],PARAMETER[\"standard_"); add_srs_wkt (p, 9, "parallel_2\",39],PARAMETER[\"latitude_of_origin\",38.5],"); add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",-79.5],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",1968500],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 12, "\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 14, "[\"EPSG\",\"26861\"]]"); p = add_epsg_def (filter, first, last, 26862, "epsg", 26862, "NAD83(HARN) / West Virginia South (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333"); add_proj4text (p, 1, "333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +ellps=GRS80"); add_proj4text (p, 2, " +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / West Virginia South (ftUS)\",GEOG"); add_srs_wkt (p, 1, "CS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference"); add_srs_wkt (p, 2, "_Network\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"415"); add_srs_wkt (p, 7, "2\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); add_srs_wkt (p, 8, "TER[\"standard_parallel_1\",38.88333333333333],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_2\",37.48333333333333],PARAMETER[\""); add_srs_wkt (p, 10, "latitude_of_origin\",37],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 11, "-81],PARAMETER[\"false_easting\",1968500],PARAMETER[\"fa"); add_srs_wkt (p, 12, "lse_northing\",0],UNIT[\"US survey foot\",0.304800609601"); add_srs_wkt (p, 13, "2192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS"); add_srs_wkt (p, 14, "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26862\"]]"); p = add_epsg_def (filter, first, last, 26863, "epsg", 26863, "NAD83(NSRS2007) / Maine East (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9"); add_proj4text (p, 1, "999 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +towgs84="); add_proj4text (p, 2, "0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Maine East (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 8, "R[\"latitude_of_origin\",43.66666666666666],PARAMETER[\""); add_srs_wkt (p, 9, "central_meridian\",-68.5],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 10, "999],PARAMETER[\"false_easting\",984250.0000000002],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"US survey foot\",0.30"); add_srs_wkt (p, 12, "48006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\","); add_srs_wkt (p, 13, "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26863\"]]"); p = add_epsg_def (filter, first, last, 26864, "epsg", 26864, "NAD83(NSRS2007) / Maine West (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666"); add_proj4text (p, 1, "666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +t"); add_proj4text (p, 2, "owgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Maine West (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 8, "R[\"latitude_of_origin\",42.83333333333334],PARAMETER[\""); add_srs_wkt (p, 9, "central_meridian\",-70.16666666666667],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.999966667],PARAMETER[\"false_easting\",29527"); add_srs_wkt (p, 11, "50],PARAMETER[\"false_northing\",0],UNIT[\"US survey foo"); add_srs_wkt (p, 12, "t\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXI"); add_srs_wkt (p, 13, "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"268"); add_srs_wkt (p, 14, "64\"]]"); p = add_epsg_def (filter, first, last, 26865, "epsg", 26865, "NAD83(NSRS2007) / Minnesota North (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333"); add_proj4text (p, 1, "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.00"); add_proj4text (p, 2, "00101599 +y_0=99999.99998983997 +ellps=GRS80 +towgs84=0,"); add_proj4text (p, 3, "0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Minnesota North (ftUS)\",GEOG"); add_srs_wkt (p, 1, "CS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Re"); add_srs_wkt (p, 2, "ference_System_2007\",SPHEROID[\"GRS 1980\",6378137,298."); add_srs_wkt (p, 3, "257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,"); add_srs_wkt (p, 4, "0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 8, "\"],PARAMETER[\"standard_parallel_1\",48.63333333333333]"); add_srs_wkt (p, 9, ",PARAMETER[\"standard_parallel_2\",47.03333333333333],PA"); add_srs_wkt (p, 10, "RAMETER[\"latitude_of_origin\",46.5],PARAMETER[\"central"); add_srs_wkt (p, 11, "_meridian\",-93.1],PARAMETER[\"false_easting\",2624666.6"); add_srs_wkt (p, 12, "667],PARAMETER[\"false_northing\",328083.3333],UNIT[\"US"); add_srs_wkt (p, 13, " survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 14, "003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 15, "PSG\",\"26865\"]]"); p = add_epsg_def (filter, first, last, 26866, "epsg", 26866, "NAD83(NSRS2007) / Minnesota Central (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=4"); add_proj4text (p, 1, "5 +lon_0=-94.25 +x_0=800000.0000101599 +y_0=99999.999989"); add_proj4text (p, 2, "83997 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Minnesota Central (ftUS)\",GE"); add_srs_wkt (p, 1, "OGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_"); add_srs_wkt (p, 2, "Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137,29"); add_srs_wkt (p, 3, "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,"); add_srs_wkt (p, 4, "0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 5, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 6, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 7, "EPSG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2"); add_srs_wkt (p, 8, "SP\"],PARAMETER[\"standard_parallel_1\",47.05],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_2\",45.61666666666667],PARAMETER[\""); add_srs_wkt (p, 10, "latitude_of_origin\",45],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 11, "-94.25],PARAMETER[\"false_easting\",2624666.6667],PARAME"); add_srs_wkt (p, 12, "TER[\"false_northing\",328083.3333],UNIT[\"US survey foo"); add_srs_wkt (p, 13, "t\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXI"); add_srs_wkt (p, 14, "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"268"); add_srs_wkt (p, 15, "66\"]]"); p = add_epsg_def (filter, first, last, 26867, "epsg", 26867, "NAD83(NSRS2007) / Minnesota South (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333"); add_proj4text (p, 1, "333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101599 +y_0=999"); add_proj4text (p, 2, "99.99998983997 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 3, "s=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Minnesota South (ftUS)\",GEOG"); add_srs_wkt (p, 1, "CS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Re"); add_srs_wkt (p, 2, "ference_System_2007\",SPHEROID[\"GRS 1980\",6378137,298."); add_srs_wkt (p, 3, "257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,"); add_srs_wkt (p, 4, "0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 8, "\"],PARAMETER[\"standard_parallel_1\",45.21666666666667]"); add_srs_wkt (p, 9, ",PARAMETER[\"standard_parallel_2\",43.78333333333333],PA"); add_srs_wkt (p, 10, "RAMETER[\"latitude_of_origin\",43],PARAMETER[\"central_m"); add_srs_wkt (p, 11, "eridian\",-94],PARAMETER[\"false_easting\",2624666.6667]"); add_srs_wkt (p, 12, ",PARAMETER[\"false_northing\",328083.3333],UNIT[\"US sur"); add_srs_wkt (p, 13, "vey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\""); add_srs_wkt (p, 14, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 15, ",\"26867\"]]"); p = add_epsg_def (filter, first, last, 26868, "epsg", 26868, "NAD83(NSRS2007) / Nebraska (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +"); add_proj4text (p, 1, "lon_0=-100 +x_0=500000.00001016 +y_0=0 +ellps=GRS80 +tow"); add_proj4text (p, 2, "gs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Nebraska (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference"); add_srs_wkt (p, 2, "_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, "01,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_1\",43],PARAMETER[\"standard_"); add_srs_wkt (p, 9, "parallel_2\",40],PARAMETER[\"latitude_of_origin\",39.833"); add_srs_wkt (p, 10, "33333333334],PARAMETER[\"central_meridian\",-100],PARAME"); add_srs_wkt (p, 11, "TER[\"false_easting\",1640416.6667],PARAMETER[\"false_no"); add_srs_wkt (p, 12, "rthing\",0],UNIT[\"US survey foot\",0.3048006096012192,A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 14, ",NORTH],AUTHORITY[\"EPSG\",\"26868\"]]"); p = add_epsg_def (filter, first, last, 26869, "epsg", 26869, "NAD83(NSRS2007) / West Virginia North (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79."); add_proj4text (p, 1, "5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / West Virginia North (ftUS)\","); add_srs_wkt (p, 1, "GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatia"); add_srs_wkt (p, 2, "l_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137,"); add_srs_wkt (p, 3, "298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,"); add_srs_wkt (p, 4, "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 5, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 6, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Coni"); add_srs_wkt (p, 8, "c_2SP\"],PARAMETER[\"standard_parallel_1\",40.25],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_2\",39],PARAMETER[\"latitude_of_"); add_srs_wkt (p, 10, "origin\",38.5],PARAMETER[\"central_meridian\",-79.5],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_easting\",1968500],PARAMETER[\"false_nort"); add_srs_wkt (p, 12, "hing\",0],UNIT[\"US survey foot\",0.3048006096012192,AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); add_srs_wkt (p, 14, "ORTH],AUTHORITY[\"EPSG\",\"26869\"]]"); p = add_epsg_def (filter, first, last, 26870, "epsg", 26870, "NAD83(NSRS2007) / West Virginia South (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333"); add_proj4text (p, 1, "333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +ellps=GRS80"); add_proj4text (p, 2, " +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / West Virginia South (ftUS)\","); add_srs_wkt (p, 1, "GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatia"); add_srs_wkt (p, 2, "l_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137,"); add_srs_wkt (p, 3, "298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,"); add_srs_wkt (p, 4, "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 5, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 6, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Coni"); add_srs_wkt (p, 8, "c_2SP\"],PARAMETER[\"standard_parallel_1\",38.8833333333"); add_srs_wkt (p, 9, "3333],PARAMETER[\"standard_parallel_2\",37.4833333333333"); add_srs_wkt (p, 10, "3],PARAMETER[\"latitude_of_origin\",37],PARAMETER[\"cent"); add_srs_wkt (p, 11, "ral_meridian\",-81],PARAMETER[\"false_easting\",1968500]"); add_srs_wkt (p, 12, ",PARAMETER[\"false_northing\",0],UNIT[\"US survey foot\""); add_srs_wkt (p, 13, ",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\""); add_srs_wkt (p, 14, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26870\""); add_srs_wkt (p, 15, "]]"); p = add_epsg_def (filter, first, last, 26891, "epsg", 26891, "NAD83(CSRS) / MTM zone 11"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-82.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / MTM zone 11\",GEOGCS[\"NAD83(CSRS"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",-82.5],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",0.9999],PARAMETER[\"false_easting\",304"); add_srs_wkt (p, 10, "800],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS["); add_srs_wkt (p, 12, "\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"26891\"]]"); p = add_epsg_def (filter, first, last, 26892, "epsg", 26892, "NAD83(CSRS) / MTM zone 12"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9999 +x_0=304800 +y"); add_proj4text (p, 1, "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / MTM zone 12\",GEOGCS[\"NAD83(CSRS"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",-81],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9999],PARAMETER[\"false_easting\",30480"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"26892\"]]"); p = add_epsg_def (filter, first, last, 26893, "epsg", 26893, "NAD83(CSRS) / MTM zone 13"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-84 +k=0.9999 +x_0=304800 +y"); add_proj4text (p, 1, "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / MTM zone 13\",GEOGCS[\"NAD83(CSRS"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",-84],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9999],PARAMETER[\"false_easting\",30480"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"26893\"]]"); p = add_epsg_def (filter, first, last, 26894, "epsg", 26894, "NAD83(CSRS) / MTM zone 14"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9999 +x_0=304800 +y"); add_proj4text (p, 1, "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / MTM zone 14\",GEOGCS[\"NAD83(CSRS"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",-87],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9999],PARAMETER[\"false_easting\",30480"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"26894\"]]"); p = add_epsg_def (filter, first, last, 26895, "epsg", 26895, "NAD83(CSRS) / MTM zone 15"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-90 +k=0.9999 +x_0=304800 +y"); add_proj4text (p, 1, "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / MTM zone 15\",GEOGCS[\"NAD83(CSRS"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",-90],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9999],PARAMETER[\"false_easting\",30480"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"26895\"]]"); p = add_epsg_def (filter, first, last, 26896, "epsg", 26896, "NAD83(CSRS) / MTM zone 16"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9999 +x_0=304800 +y"); add_proj4text (p, 1, "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / MTM zone 16\",GEOGCS[\"NAD83(CSRS"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",-93],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9999],PARAMETER[\"false_easting\",30480"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"26896\"]]"); p = add_epsg_def (filter, first, last, 26897, "epsg", 26897, "NAD83(CSRS) / MTM zone 17"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-96 +k=0.9999 +x_0=304800 +y"); add_proj4text (p, 1, "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / MTM zone 17\",GEOGCS[\"NAD83(CSRS"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",-96],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9999],PARAMETER[\"false_easting\",30480"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"26897\"]]"); p = add_epsg_def (filter, first, last, 26898, "epsg", 26898, "NAD83(CSRS) / MTM zone 1"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-53 +k=0.9999 +x_0=304800 +y"); add_proj4text (p, 1, "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / MTM zone 1\",GEOGCS[\"NAD83(CSRS)"); add_srs_wkt (p, 1, "\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",-53],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9999],PARAMETER[\"false_easting\",30480"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"E(X)\",EAST],AXIS[\"N(Y"); add_srs_wkt (p, 12, ")\",NORTH],AUTHORITY[\"EPSG\",\"26898\"]]"); p = add_epsg_def (filter, first, last, 26899, "epsg", 26899, "NAD83(CSRS) / MTM zone 2"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-56 +k=0.9999 +x_0=304800 +y"); add_proj4text (p, 1, "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / MTM zone 2\",GEOGCS[\"NAD83(CSRS)"); add_srs_wkt (p, 1, "\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",-56],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9999],PARAMETER[\"false_easting\",30480"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"E(X)\",EAST],AXIS[\"N(Y"); add_srs_wkt (p, 12, ")\",NORTH],AUTHORITY[\"EPSG\",\"26899\"]]"); p = add_epsg_def (filter, first, last, 26901, "epsg", 26901, "NAD83 / UTM zone 1N"); add_proj4text (p, 0, "+proj=utm +zone=1 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / UTM zone 1N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-177],PARAMETER[\"scale_factor\",0.9996],PA"); add_srs_wkt (p, 9, "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 10, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 11, ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"26901\"]]"); p = add_epsg_def (filter, first, last, 26902, "epsg", 26902, "NAD83 / UTM zone 2N"); add_proj4text (p, 0, "+proj=utm +zone=2 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / UTM zone 2N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-171],PARAMETER[\"scale_factor\",0.9996],PA"); add_srs_wkt (p, 9, "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 10, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 11, ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"26902\"]]"); p = add_epsg_def (filter, first, last, 26903, "epsg", 26903, "NAD83 / UTM zone 3N"); add_proj4text (p, 0, "+proj=utm +zone=3 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / UTM zone 3N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-165],PARAMETER[\"scale_factor\",0.9996],PA"); add_srs_wkt (p, 9, "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 10, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 11, ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"26903\"]]"); p = add_epsg_def (filter, first, last, 26904, "epsg", 26904, "NAD83 / UTM zone 4N"); add_proj4text (p, 0, "+proj=utm +zone=4 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / UTM zone 4N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-159],PARAMETER[\"scale_factor\",0.9996],PA"); add_srs_wkt (p, 9, "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 10, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 11, ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"26904\"]]"); p = add_epsg_def (filter, first, last, 26905, "epsg", 26905, "NAD83 / UTM zone 5N"); add_proj4text (p, 0, "+proj=utm +zone=5 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / UTM zone 5N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-153],PARAMETER[\"scale_factor\",0.9996],PA"); add_srs_wkt (p, 9, "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 10, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 11, ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"26905\"]]"); } #endif /* full EPSG initialization enabled/disabled */ libspatialite-4.1.1/src/srsinit/epsg_inlined_03.c0000664000175000017500000044022212163502133016656 00000000000000/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def (filter, first, last, 2325, "epsg", 2325, "ED50 / TM45"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=intl +towgs84=-87,-98,-121,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / TM45\",GEOGCS[\"ED50\",DATUM[\"European_"); add_srs_wkt (p, 1, "Datum_1950\",SPHEROID[\"International 1924\",6378388,297"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-121,0,0,"); add_srs_wkt (p, 3, "0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4230\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 7, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 8, "ian\",45],PARAMETER[\"scale_factor\",1],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NO"); add_srs_wkt (p, 11, "RTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2325\"]]"); p = add_epsg_def (filter, first, last, 2326, "epsg", 2326, "Hong Kong 1980 Grid System"); add_proj4text (p, 0, "+proj=tmerc +lat_0=22.31213333333334 +lon_0=114.17855555"); add_proj4text (p, 1, "55556 +k=1 +x_0=836694.05 +y_0=819069.8 +ellps=intl +tow"); add_proj4text (p, 2, "gs84=-162.619,-276.959,-161.764,0.067753,-2.24365,-1.158"); add_proj4text (p, 3, "83,-1.09425 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Hong Kong 1980 Grid System\",GEOGCS[\"Hong Kong"); add_srs_wkt (p, 1, " 1980\",DATUM[\"Hong_Kong_1980\",SPHEROID[\"Internationa"); add_srs_wkt (p, 2, "l 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS"); add_srs_wkt (p, 3, "84[-162.619,-276.959,-161.764,0.067753,-2.24365,-1.15883"); add_srs_wkt (p, 4, ",-1.09425],AUTHORITY[\"EPSG\",\"6611\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 5, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 6, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4611\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",22.31213333333334],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",114.1785555555556],PARAMETER"); add_srs_wkt (p, 10, "[\"scale_factor\",1],PARAMETER[\"false_easting\",836694."); add_srs_wkt (p, 11, "05],PARAMETER[\"false_northing\",819069.8],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); add_srs_wkt (p, 13, "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"2326\"]]"); p = add_epsg_def (filter, first, last, 2327, "epsg", 2327, "Xian 1980 / Gauss-Kruger zone 13"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=13500000 +y_0=0"); add_proj4text (p, 1, " +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / Gauss-Kruger zone 13\",GEOGCS[\"Xia"); add_srs_wkt (p, 1, "n 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975\",63781"); add_srs_wkt (p, 2, "40,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\"]],PROJE"); add_srs_wkt (p, 6, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 7, "rigin\",0],PARAMETER[\"central_meridian\",75],PARAMETER["); add_srs_wkt (p, 8, "\"scale_factor\",1],PARAMETER[\"false_easting\",13500000"); add_srs_wkt (p, 9, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 10, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA"); add_srs_wkt (p, 11, "ST],AUTHORITY[\"EPSG\",\"2327\"]]"); p = add_epsg_def (filter, first, last, 2328, "epsg", 2328, "Xian 1980 / Gauss-Kruger zone 14"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=14500000 +y_0=0"); add_proj4text (p, 1, " +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / Gauss-Kruger zone 14\",GEOGCS[\"Xia"); add_srs_wkt (p, 1, "n 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975\",63781"); add_srs_wkt (p, 2, "40,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\"]],PROJE"); add_srs_wkt (p, 6, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 7, "rigin\",0],PARAMETER[\"central_meridian\",81],PARAMETER["); add_srs_wkt (p, 8, "\"scale_factor\",1],PARAMETER[\"false_easting\",14500000"); add_srs_wkt (p, 9, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 10, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA"); add_srs_wkt (p, 11, "ST],AUTHORITY[\"EPSG\",\"2328\"]]"); p = add_epsg_def (filter, first, last, 2329, "epsg", 2329, "Xian 1980 / Gauss-Kruger zone 15"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=15500000 +y_0=0"); add_proj4text (p, 1, " +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / Gauss-Kruger zone 15\",GEOGCS[\"Xia"); add_srs_wkt (p, 1, "n 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975\",63781"); add_srs_wkt (p, 2, "40,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\"]],PROJE"); add_srs_wkt (p, 6, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 7, "rigin\",0],PARAMETER[\"central_meridian\",87],PARAMETER["); add_srs_wkt (p, 8, "\"scale_factor\",1],PARAMETER[\"false_easting\",15500000"); add_srs_wkt (p, 9, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 10, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA"); add_srs_wkt (p, 11, "ST],AUTHORITY[\"EPSG\",\"2329\"]]"); p = add_epsg_def (filter, first, last, 2330, "epsg", 2330, "Xian 1980 / Gauss-Kruger zone 16"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=16500000 +y_0=0"); add_proj4text (p, 1, " +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / Gauss-Kruger zone 16\",GEOGCS[\"Xia"); add_srs_wkt (p, 1, "n 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975\",63781"); add_srs_wkt (p, 2, "40,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\"]],PROJE"); add_srs_wkt (p, 6, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 7, "rigin\",0],PARAMETER[\"central_meridian\",93],PARAMETER["); add_srs_wkt (p, 8, "\"scale_factor\",1],PARAMETER[\"false_easting\",16500000"); add_srs_wkt (p, 9, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 10, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA"); add_srs_wkt (p, 11, "ST],AUTHORITY[\"EPSG\",\"2330\"]]"); p = add_epsg_def (filter, first, last, 2331, "epsg", 2331, "Xian 1980 / Gauss-Kruger zone 17"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=17500000 +y_0=0"); add_proj4text (p, 1, " +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / Gauss-Kruger zone 17\",GEOGCS[\"Xia"); add_srs_wkt (p, 1, "n 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975\",63781"); add_srs_wkt (p, 2, "40,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\"]],PROJE"); add_srs_wkt (p, 6, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 7, "rigin\",0],PARAMETER[\"central_meridian\",99],PARAMETER["); add_srs_wkt (p, 8, "\"scale_factor\",1],PARAMETER[\"false_easting\",17500000"); add_srs_wkt (p, 9, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 10, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA"); add_srs_wkt (p, 11, "ST],AUTHORITY[\"EPSG\",\"2331\"]]"); p = add_epsg_def (filter, first, last, 2332, "epsg", 2332, "Xian 1980 / Gauss-Kruger zone 18"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=18500000 +y_0="); add_proj4text (p, 1, "0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / Gauss-Kruger zone 18\",GEOGCS[\"Xia"); add_srs_wkt (p, 1, "n 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975\",63781"); add_srs_wkt (p, 2, "40,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\"]],PROJE"); add_srs_wkt (p, 6, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 7, "rigin\",0],PARAMETER[\"central_meridian\",105],PARAMETER"); add_srs_wkt (p, 8, "[\"scale_factor\",1],PARAMETER[\"false_easting\",1850000"); add_srs_wkt (p, 9, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 10, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); add_srs_wkt (p, 11, "AST],AUTHORITY[\"EPSG\",\"2332\"]]"); p = add_epsg_def (filter, first, last, 2333, "epsg", 2333, "Xian 1980 / Gauss-Kruger zone 19"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=19500000 +y_0="); add_proj4text (p, 1, "0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / Gauss-Kruger zone 19\",GEOGCS[\"Xia"); add_srs_wkt (p, 1, "n 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975\",63781"); add_srs_wkt (p, 2, "40,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\"]],PROJE"); add_srs_wkt (p, 6, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 7, "rigin\",0],PARAMETER[\"central_meridian\",111],PARAMETER"); add_srs_wkt (p, 8, "[\"scale_factor\",1],PARAMETER[\"false_easting\",1950000"); add_srs_wkt (p, 9, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 10, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); add_srs_wkt (p, 11, "AST],AUTHORITY[\"EPSG\",\"2333\"]]"); p = add_epsg_def (filter, first, last, 2334, "epsg", 2334, "Xian 1980 / Gauss-Kruger zone 20"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=20500000 +y_0="); add_proj4text (p, 1, "0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / Gauss-Kruger zone 20\",GEOGCS[\"Xia"); add_srs_wkt (p, 1, "n 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975\",63781"); add_srs_wkt (p, 2, "40,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\"]],PROJE"); add_srs_wkt (p, 6, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 7, "rigin\",0],PARAMETER[\"central_meridian\",117],PARAMETER"); add_srs_wkt (p, 8, "[\"scale_factor\",1],PARAMETER[\"false_easting\",2050000"); add_srs_wkt (p, 9, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 10, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); add_srs_wkt (p, 11, "AST],AUTHORITY[\"EPSG\",\"2334\"]]"); p = add_epsg_def (filter, first, last, 2335, "epsg", 2335, "Xian 1980 / Gauss-Kruger zone 21"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=21500000 +y_0="); add_proj4text (p, 1, "0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / Gauss-Kruger zone 21\",GEOGCS[\"Xia"); add_srs_wkt (p, 1, "n 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975\",63781"); add_srs_wkt (p, 2, "40,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\"]],PROJE"); add_srs_wkt (p, 6, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 7, "rigin\",0],PARAMETER[\"central_meridian\",123],PARAMETER"); add_srs_wkt (p, 8, "[\"scale_factor\",1],PARAMETER[\"false_easting\",2150000"); add_srs_wkt (p, 9, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 10, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); add_srs_wkt (p, 11, "AST],AUTHORITY[\"EPSG\",\"2335\"]]"); p = add_epsg_def (filter, first, last, 2336, "epsg", 2336, "Xian 1980 / Gauss-Kruger zone 22"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=22500000 +y_0="); add_proj4text (p, 1, "0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / Gauss-Kruger zone 22\",GEOGCS[\"Xia"); add_srs_wkt (p, 1, "n 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975\",63781"); add_srs_wkt (p, 2, "40,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\"]],PROJE"); add_srs_wkt (p, 6, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 7, "rigin\",0],PARAMETER[\"central_meridian\",129],PARAMETER"); add_srs_wkt (p, 8, "[\"scale_factor\",1],PARAMETER[\"false_easting\",2250000"); add_srs_wkt (p, 9, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 10, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); add_srs_wkt (p, 11, "AST],AUTHORITY[\"EPSG\",\"2336\"]]"); p = add_epsg_def (filter, first, last, 2337, "epsg", 2337, "Xian 1980 / Gauss-Kruger zone 23"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=23500000 +y_0="); add_proj4text (p, 1, "0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / Gauss-Kruger zone 23\",GEOGCS[\"Xia"); add_srs_wkt (p, 1, "n 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975\",63781"); add_srs_wkt (p, 2, "40,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\"]],PROJE"); add_srs_wkt (p, 6, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 7, "rigin\",0],PARAMETER[\"central_meridian\",135],PARAMETER"); add_srs_wkt (p, 8, "[\"scale_factor\",1],PARAMETER[\"false_easting\",2350000"); add_srs_wkt (p, 9, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 10, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); add_srs_wkt (p, 11, "AST],AUTHORITY[\"EPSG\",\"2337\"]]"); p = add_epsg_def (filter, first, last, 2338, "epsg", 2338, "Xian 1980 / Gauss-Kruger CM 75E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / Gauss-Kruger CM 75E\",GEOGCS[\"Xian"); add_srs_wkt (p, 1, " 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975\",637814"); add_srs_wkt (p, 2, "0,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\"]],PROJEC"); add_srs_wkt (p, 6, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 7, "igin\",0],PARAMETER[\"central_meridian\",75],PARAMETER[\""); add_srs_wkt (p, 8, "scale_factor\",1],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 9, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 10, "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"2338\"]]"); p = add_epsg_def (filter, first, last, 2339, "epsg", 2339, "Xian 1980 / Gauss-Kruger CM 81E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / Gauss-Kruger CM 81E\",GEOGCS[\"Xian"); add_srs_wkt (p, 1, " 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975\",637814"); add_srs_wkt (p, 2, "0,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\"]],PROJEC"); add_srs_wkt (p, 6, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 7, "igin\",0],PARAMETER[\"central_meridian\",81],PARAMETER[\""); add_srs_wkt (p, 8, "scale_factor\",1],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 9, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 10, "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"2339\"]]"); p = add_epsg_def (filter, first, last, 2340, "epsg", 2340, "Xian 1980 / Gauss-Kruger CM 87E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / Gauss-Kruger CM 87E\",GEOGCS[\"Xian"); add_srs_wkt (p, 1, " 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975\",637814"); add_srs_wkt (p, 2, "0,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\"]],PROJEC"); add_srs_wkt (p, 6, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 7, "igin\",0],PARAMETER[\"central_meridian\",87],PARAMETER[\""); add_srs_wkt (p, 8, "scale_factor\",1],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 9, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 10, "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"2340\"]]"); p = add_epsg_def (filter, first, last, 2341, "epsg", 2341, "Xian 1980 / Gauss-Kruger CM 93E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / Gauss-Kruger CM 93E\",GEOGCS[\"Xian"); add_srs_wkt (p, 1, " 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975\",637814"); add_srs_wkt (p, 2, "0,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\"]],PROJEC"); add_srs_wkt (p, 6, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 7, "igin\",0],PARAMETER[\"central_meridian\",93],PARAMETER[\""); add_srs_wkt (p, 8, "scale_factor\",1],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 9, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 10, "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"2341\"]]"); p = add_epsg_def (filter, first, last, 2342, "epsg", 2342, "Xian 1980 / Gauss-Kruger CM 99E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / Gauss-Kruger CM 99E\",GEOGCS[\"Xian"); add_srs_wkt (p, 1, " 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975\",637814"); add_srs_wkt (p, 2, "0,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\"]],PROJEC"); add_srs_wkt (p, 6, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 7, "igin\",0],PARAMETER[\"central_meridian\",99],PARAMETER[\""); add_srs_wkt (p, 8, "scale_factor\",1],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 9, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 10, "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"2342\"]]"); p = add_epsg_def (filter, first, last, 2343, "epsg", 2343, "Xian 1980 / Gauss-Kruger CM 105E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / Gauss-Kruger CM 105E\",GEOGCS[\"Xia"); add_srs_wkt (p, 1, "n 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975\",63781"); add_srs_wkt (p, 2, "40,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\"]],PROJE"); add_srs_wkt (p, 6, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 7, "rigin\",0],PARAMETER[\"central_meridian\",105],PARAMETER"); add_srs_wkt (p, 8, "[\"scale_factor\",1],PARAMETER[\"false_easting\",500000]"); add_srs_wkt (p, 9, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 10, "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAS"); add_srs_wkt (p, 11, "T],AUTHORITY[\"EPSG\",\"2343\"]]"); p = add_epsg_def (filter, first, last, 2344, "epsg", 2344, "Xian 1980 / Gauss-Kruger CM 111E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / Gauss-Kruger CM 111E\",GEOGCS[\"Xia"); add_srs_wkt (p, 1, "n 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975\",63781"); add_srs_wkt (p, 2, "40,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\"]],PROJE"); add_srs_wkt (p, 6, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 7, "rigin\",0],PARAMETER[\"central_meridian\",111],PARAMETER"); add_srs_wkt (p, 8, "[\"scale_factor\",1],PARAMETER[\"false_easting\",500000]"); add_srs_wkt (p, 9, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 10, "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAS"); add_srs_wkt (p, 11, "T],AUTHORITY[\"EPSG\",\"2344\"]]"); p = add_epsg_def (filter, first, last, 2345, "epsg", 2345, "Xian 1980 / Gauss-Kruger CM 117E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / Gauss-Kruger CM 117E\",GEOGCS[\"Xia"); add_srs_wkt (p, 1, "n 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975\",63781"); add_srs_wkt (p, 2, "40,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\"]],PROJE"); add_srs_wkt (p, 6, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 7, "rigin\",0],PARAMETER[\"central_meridian\",117],PARAMETER"); add_srs_wkt (p, 8, "[\"scale_factor\",1],PARAMETER[\"false_easting\",500000]"); add_srs_wkt (p, 9, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 10, "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAS"); add_srs_wkt (p, 11, "T],AUTHORITY[\"EPSG\",\"2345\"]]"); p = add_epsg_def (filter, first, last, 2346, "epsg", 2346, "Xian 1980 / Gauss-Kruger CM 123E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / Gauss-Kruger CM 123E\",GEOGCS[\"Xia"); add_srs_wkt (p, 1, "n 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975\",63781"); add_srs_wkt (p, 2, "40,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\"]],PROJE"); add_srs_wkt (p, 6, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 7, "rigin\",0],PARAMETER[\"central_meridian\",123],PARAMETER"); add_srs_wkt (p, 8, "[\"scale_factor\",1],PARAMETER[\"false_easting\",500000]"); add_srs_wkt (p, 9, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 10, "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAS"); add_srs_wkt (p, 11, "T],AUTHORITY[\"EPSG\",\"2346\"]]"); p = add_epsg_def (filter, first, last, 2347, "epsg", 2347, "Xian 1980 / Gauss-Kruger CM 129E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / Gauss-Kruger CM 129E\",GEOGCS[\"Xia"); add_srs_wkt (p, 1, "n 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975\",63781"); add_srs_wkt (p, 2, "40,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\"]],PROJE"); add_srs_wkt (p, 6, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 7, "rigin\",0],PARAMETER[\"central_meridian\",129],PARAMETER"); add_srs_wkt (p, 8, "[\"scale_factor\",1],PARAMETER[\"false_easting\",500000]"); add_srs_wkt (p, 9, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 10, "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAS"); add_srs_wkt (p, 11, "T],AUTHORITY[\"EPSG\",\"2347\"]]"); p = add_epsg_def (filter, first, last, 2348, "epsg", 2348, "Xian 1980 / Gauss-Kruger CM 135E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / Gauss-Kruger CM 135E\",GEOGCS[\"Xia"); add_srs_wkt (p, 1, "n 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975\",63781"); add_srs_wkt (p, 2, "40,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\"]],PROJE"); add_srs_wkt (p, 6, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 7, "rigin\",0],PARAMETER[\"central_meridian\",135],PARAMETER"); add_srs_wkt (p, 8, "[\"scale_factor\",1],PARAMETER[\"false_easting\",500000]"); add_srs_wkt (p, 9, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 10, "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAS"); add_srs_wkt (p, 11, "T],AUTHORITY[\"EPSG\",\"2348\"]]"); p = add_epsg_def (filter, first, last, 2349, "epsg", 2349, "Xian 1980 / 3-degree Gauss-Kruger zone 25"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=25500000 +y_0=0"); add_proj4text (p, 1, " +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger zone 25\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",0],PARAMETER[\"central_meridian\",75],PA"); add_srs_wkt (p, 8, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 9, "25500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 11, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2349\"]]"); p = add_epsg_def (filter, first, last, 2350, "epsg", 2350, "Xian 1980 / 3-degree Gauss-Kruger zone 26"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=78 +k=1 +x_0=26500000 +y_0=0"); add_proj4text (p, 1, " +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger zone 26\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",0],PARAMETER[\"central_meridian\",78],PA"); add_srs_wkt (p, 8, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 9, "26500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 11, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2350\"]]"); p = add_epsg_def (filter, first, last, 2351, "epsg", 2351, "Xian 1980 / 3-degree Gauss-Kruger zone 27"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=27500000 +y_0=0"); add_proj4text (p, 1, " +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger zone 27\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",0],PARAMETER[\"central_meridian\",81],PA"); add_srs_wkt (p, 8, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 9, "27500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 11, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2351\"]]"); p = add_epsg_def (filter, first, last, 2352, "epsg", 2352, "Xian 1980 / 3-degree Gauss-Kruger zone 28"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=84 +k=1 +x_0=28500000 +y_0=0"); add_proj4text (p, 1, " +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger zone 28\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",0],PARAMETER[\"central_meridian\",84],PA"); add_srs_wkt (p, 8, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 9, "28500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 11, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2352\"]]"); p = add_epsg_def (filter, first, last, 2353, "epsg", 2353, "Xian 1980 / 3-degree Gauss-Kruger zone 29"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=29500000 +y_0=0"); add_proj4text (p, 1, " +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger zone 29\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",0],PARAMETER[\"central_meridian\",87],PA"); add_srs_wkt (p, 8, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 9, "29500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 11, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2353\"]]"); p = add_epsg_def (filter, first, last, 2354, "epsg", 2354, "Xian 1980 / 3-degree Gauss-Kruger zone 30"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=30500000 +y_0=0"); add_proj4text (p, 1, " +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger zone 30\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",0],PARAMETER[\"central_meridian\",90],PA"); add_srs_wkt (p, 8, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 9, "30500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 11, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2354\"]]"); p = add_epsg_def (filter, first, last, 2355, "epsg", 2355, "Xian 1980 / 3-degree Gauss-Kruger zone 31"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=31500000 +y_0=0"); add_proj4text (p, 1, " +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger zone 31\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",0],PARAMETER[\"central_meridian\",93],PA"); add_srs_wkt (p, 8, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 9, "31500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 11, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2355\"]]"); p = add_epsg_def (filter, first, last, 2356, "epsg", 2356, "Xian 1980 / 3-degree Gauss-Kruger zone 32"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=96 +k=1 +x_0=32500000 +y_0=0"); add_proj4text (p, 1, " +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger zone 32\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",0],PARAMETER[\"central_meridian\",96],PA"); add_srs_wkt (p, 8, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 9, "32500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 11, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2356\"]]"); p = add_epsg_def (filter, first, last, 2357, "epsg", 2357, "Xian 1980 / 3-degree Gauss-Kruger zone 33"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=33500000 +y_0=0"); add_proj4text (p, 1, " +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger zone 33\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",0],PARAMETER[\"central_meridian\",99],PA"); add_srs_wkt (p, 8, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 9, "33500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 11, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2357\"]]"); p = add_epsg_def (filter, first, last, 2358, "epsg", 2358, "Xian 1980 / 3-degree Gauss-Kruger zone 34"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=34500000 +y_0="); add_proj4text (p, 1, "0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger zone 34\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",0],PARAMETER[\"central_meridian\",102],P"); add_srs_wkt (p, 8, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 9, ",34500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 11, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2358\"]]"); p = add_epsg_def (filter, first, last, 2359, "epsg", 2359, "Xian 1980 / 3-degree Gauss-Kruger zone 35"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=35500000 +y_0="); add_proj4text (p, 1, "0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger zone 35\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",0],PARAMETER[\"central_meridian\",105],P"); add_srs_wkt (p, 8, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 9, ",35500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 11, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2359\"]]"); p = add_epsg_def (filter, first, last, 2360, "epsg", 2360, "Xian 1980 / 3-degree Gauss-Kruger zone 36"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=36500000 +y_0="); add_proj4text (p, 1, "0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger zone 36\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",0],PARAMETER[\"central_meridian\",108],P"); add_srs_wkt (p, 8, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 9, ",36500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 11, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2360\"]]"); p = add_epsg_def (filter, first, last, 2361, "epsg", 2361, "Xian 1980 / 3-degree Gauss-Kruger zone 37"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=37500000 +y_0="); add_proj4text (p, 1, "0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger zone 37\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",0],PARAMETER[\"central_meridian\",111],P"); add_srs_wkt (p, 8, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 9, ",37500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 11, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2361\"]]"); p = add_epsg_def (filter, first, last, 2362, "epsg", 2362, "Xian 1980 / 3-degree Gauss-Kruger zone 38"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=38500000 +y_0="); add_proj4text (p, 1, "0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger zone 38\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",0],PARAMETER[\"central_meridian\",114],P"); add_srs_wkt (p, 8, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 9, ",38500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 11, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2362\"]]"); p = add_epsg_def (filter, first, last, 2363, "epsg", 2363, "Xian 1980 / 3-degree Gauss-Kruger zone 39"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=39500000 +y_0="); add_proj4text (p, 1, "0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger zone 39\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",0],PARAMETER[\"central_meridian\",117],P"); add_srs_wkt (p, 8, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 9, ",39500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 11, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2363\"]]"); p = add_epsg_def (filter, first, last, 2364, "epsg", 2364, "Xian 1980 / 3-degree Gauss-Kruger zone 40"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=40500000 +y_0="); add_proj4text (p, 1, "0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger zone 40\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",0],PARAMETER[\"central_meridian\",120],P"); add_srs_wkt (p, 8, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 9, ",40500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 11, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2364\"]]"); p = add_epsg_def (filter, first, last, 2365, "epsg", 2365, "Xian 1980 / 3-degree Gauss-Kruger zone 41"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=41500000 +y_0="); add_proj4text (p, 1, "0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger zone 41\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",0],PARAMETER[\"central_meridian\",123],P"); add_srs_wkt (p, 8, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 9, ",41500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 11, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2365\"]]"); p = add_epsg_def (filter, first, last, 2366, "epsg", 2366, "Xian 1980 / 3-degree Gauss-Kruger zone 42"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=126 +k=1 +x_0=42500000 +y_0="); add_proj4text (p, 1, "0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger zone 42\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",0],PARAMETER[\"central_meridian\",126],P"); add_srs_wkt (p, 8, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 9, ",42500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 11, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2366\"]]"); p = add_epsg_def (filter, first, last, 2367, "epsg", 2367, "Xian 1980 / 3-degree Gauss-Kruger zone 43"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=43500000 +y_0="); add_proj4text (p, 1, "0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger zone 43\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",0],PARAMETER[\"central_meridian\",129],P"); add_srs_wkt (p, 8, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 9, ",43500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 11, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2367\"]]"); p = add_epsg_def (filter, first, last, 2368, "epsg", 2368, "Xian 1980 / 3-degree Gauss-Kruger zone 44"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=132 +k=1 +x_0=44500000 +y_0="); add_proj4text (p, 1, "0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger zone 44\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",0],PARAMETER[\"central_meridian\",132],P"); add_srs_wkt (p, 8, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 9, ",44500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 11, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2368\"]]"); p = add_epsg_def (filter, first, last, 2369, "epsg", 2369, "Xian 1980 / 3-degree Gauss-Kruger zone 45"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=45500000 +y_0="); add_proj4text (p, 1, "0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger zone 45\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",0],PARAMETER[\"central_meridian\",135],P"); add_srs_wkt (p, 8, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 9, ",45500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 10, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 11, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2369\"]]"); p = add_epsg_def (filter, first, last, 2370, "epsg", 2370, "Xian 1980 / 3-degree Gauss-Kruger CM 75E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger CM 75E\",GEOG"); add_srs_wkt (p, 1, "CS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975"); add_srs_wkt (p, 2, "\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",0],PARAMETER[\"central_meridian\",75],PA"); add_srs_wkt (p, 8, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 9, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 10, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 11, "Y\",EAST],AUTHORITY[\"EPSG\",\"2370\"]]"); p = add_epsg_def (filter, first, last, 2371, "epsg", 2371, "Xian 1980 / 3-degree Gauss-Kruger CM 78E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=78 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger CM 78E\",GEOG"); add_srs_wkt (p, 1, "CS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975"); add_srs_wkt (p, 2, "\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",0],PARAMETER[\"central_meridian\",78],PA"); add_srs_wkt (p, 8, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 9, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 10, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 11, "Y\",EAST],AUTHORITY[\"EPSG\",\"2371\"]]"); p = add_epsg_def (filter, first, last, 2372, "epsg", 2372, "Xian 1980 / 3-degree Gauss-Kruger CM 81E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger CM 81E\",GEOG"); add_srs_wkt (p, 1, "CS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975"); add_srs_wkt (p, 2, "\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",0],PARAMETER[\"central_meridian\",81],PA"); add_srs_wkt (p, 8, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 9, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 10, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 11, "Y\",EAST],AUTHORITY[\"EPSG\",\"2372\"]]"); p = add_epsg_def (filter, first, last, 2373, "epsg", 2373, "Xian 1980 / 3-degree Gauss-Kruger CM 84E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=84 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger CM 84E\",GEOG"); add_srs_wkt (p, 1, "CS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975"); add_srs_wkt (p, 2, "\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",0],PARAMETER[\"central_meridian\",84],PA"); add_srs_wkt (p, 8, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 9, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 10, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 11, "Y\",EAST],AUTHORITY[\"EPSG\",\"2373\"]]"); p = add_epsg_def (filter, first, last, 2374, "epsg", 2374, "Xian 1980 / 3-degree Gauss-Kruger CM 87E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger CM 87E\",GEOG"); add_srs_wkt (p, 1, "CS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975"); add_srs_wkt (p, 2, "\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",0],PARAMETER[\"central_meridian\",87],PA"); add_srs_wkt (p, 8, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 9, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 10, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 11, "Y\",EAST],AUTHORITY[\"EPSG\",\"2374\"]]"); p = add_epsg_def (filter, first, last, 2375, "epsg", 2375, "Xian 1980 / 3-degree Gauss-Kruger CM 90E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger CM 90E\",GEOG"); add_srs_wkt (p, 1, "CS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975"); add_srs_wkt (p, 2, "\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",0],PARAMETER[\"central_meridian\",90],PA"); add_srs_wkt (p, 8, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 9, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 10, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 11, "Y\",EAST],AUTHORITY[\"EPSG\",\"2375\"]]"); p = add_epsg_def (filter, first, last, 2376, "epsg", 2376, "Xian 1980 / 3-degree Gauss-Kruger CM 93E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger CM 93E\",GEOG"); add_srs_wkt (p, 1, "CS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975"); add_srs_wkt (p, 2, "\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",0],PARAMETER[\"central_meridian\",93],PA"); add_srs_wkt (p, 8, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 9, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 10, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 11, "Y\",EAST],AUTHORITY[\"EPSG\",\"2376\"]]"); p = add_epsg_def (filter, first, last, 2377, "epsg", 2377, "Xian 1980 / 3-degree Gauss-Kruger CM 96E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=96 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger CM 96E\",GEOG"); add_srs_wkt (p, 1, "CS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975"); add_srs_wkt (p, 2, "\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",0],PARAMETER[\"central_meridian\",96],PA"); add_srs_wkt (p, 8, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 9, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 10, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 11, "Y\",EAST],AUTHORITY[\"EPSG\",\"2377\"]]"); p = add_epsg_def (filter, first, last, 2378, "epsg", 2378, "Xian 1980 / 3-degree Gauss-Kruger CM 99E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger CM 99E\",GEOG"); add_srs_wkt (p, 1, "CS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975"); add_srs_wkt (p, 2, "\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",0],PARAMETER[\"central_meridian\",99],PA"); add_srs_wkt (p, 8, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 9, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 10, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 11, "Y\",EAST],AUTHORITY[\"EPSG\",\"2378\"]]"); p = add_epsg_def (filter, first, last, 2379, "epsg", 2379, "Xian 1980 / 3-degree Gauss-Kruger CM 102E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger CM 102E\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",0],PARAMETER[\"central_meridian\",102],P"); add_srs_wkt (p, 8, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 9, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 10, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 11, "Y\",EAST],AUTHORITY[\"EPSG\",\"2379\"]]"); p = add_epsg_def (filter, first, last, 2380, "epsg", 2380, "Xian 1980 / 3-degree Gauss-Kruger CM 105E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger CM 105E\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",0],PARAMETER[\"central_meridian\",105],P"); add_srs_wkt (p, 8, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 9, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 10, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 11, "Y\",EAST],AUTHORITY[\"EPSG\",\"2380\"]]"); p = add_epsg_def (filter, first, last, 2381, "epsg", 2381, "Xian 1980 / 3-degree Gauss-Kruger CM 108E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger CM 108E\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",0],PARAMETER[\"central_meridian\",108],P"); add_srs_wkt (p, 8, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 9, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 10, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 11, "Y\",EAST],AUTHORITY[\"EPSG\",\"2381\"]]"); p = add_epsg_def (filter, first, last, 2382, "epsg", 2382, "Xian 1980 / 3-degree Gauss-Kruger CM 111E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger CM 111E\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",0],PARAMETER[\"central_meridian\",111],P"); add_srs_wkt (p, 8, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 9, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 10, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 11, "Y\",EAST],AUTHORITY[\"EPSG\",\"2382\"]]"); p = add_epsg_def (filter, first, last, 2383, "epsg", 2383, "Xian 1980 / 3-degree Gauss-Kruger CM 114E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger CM 114E\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",0],PARAMETER[\"central_meridian\",114],P"); add_srs_wkt (p, 8, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 9, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 10, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 11, "Y\",EAST],AUTHORITY[\"EPSG\",\"2383\"]]"); p = add_epsg_def (filter, first, last, 2384, "epsg", 2384, "Xian 1980 / 3-degree Gauss-Kruger CM 117E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger CM 117E\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",0],PARAMETER[\"central_meridian\",117],P"); add_srs_wkt (p, 8, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 9, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 10, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 11, "Y\",EAST],AUTHORITY[\"EPSG\",\"2384\"]]"); p = add_epsg_def (filter, first, last, 2385, "epsg", 2385, "Xian 1980 / 3-degree Gauss-Kruger CM 120E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger CM 120E\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",0],PARAMETER[\"central_meridian\",120],P"); add_srs_wkt (p, 8, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 9, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 10, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 11, "Y\",EAST],AUTHORITY[\"EPSG\",\"2385\"]]"); p = add_epsg_def (filter, first, last, 2386, "epsg", 2386, "Xian 1980 / 3-degree Gauss-Kruger CM 123E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger CM 123E\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",0],PARAMETER[\"central_meridian\",123],P"); add_srs_wkt (p, 8, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 9, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 10, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 11, "Y\",EAST],AUTHORITY[\"EPSG\",\"2386\"]]"); p = add_epsg_def (filter, first, last, 2387, "epsg", 2387, "Xian 1980 / 3-degree Gauss-Kruger CM 126E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=126 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger CM 126E\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",0],PARAMETER[\"central_meridian\",126],P"); add_srs_wkt (p, 8, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 9, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 10, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 11, "Y\",EAST],AUTHORITY[\"EPSG\",\"2387\"]]"); p = add_epsg_def (filter, first, last, 2388, "epsg", 2388, "Xian 1980 / 3-degree Gauss-Kruger CM 129E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger CM 129E\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",0],PARAMETER[\"central_meridian\",129],P"); add_srs_wkt (p, 8, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 9, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 10, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 11, "Y\",EAST],AUTHORITY[\"EPSG\",\"2388\"]]"); p = add_epsg_def (filter, first, last, 2389, "epsg", 2389, "Xian 1980 / 3-degree Gauss-Kruger CM 132E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=132 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger CM 132E\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",0],PARAMETER[\"central_meridian\",132],P"); add_srs_wkt (p, 8, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 9, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 10, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 11, "Y\",EAST],AUTHORITY[\"EPSG\",\"2389\"]]"); p = add_epsg_def (filter, first, last, 2390, "epsg", 2390, "Xian 1980 / 3-degree Gauss-Kruger CM 135E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger CM 135E\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4610\""); add_srs_wkt (p, 6, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_origin\",0],PARAMETER[\"central_meridian\",135],P"); add_srs_wkt (p, 8, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 9, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 10, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 11, "Y\",EAST],AUTHORITY[\"EPSG\",\"2390\"]]"); p = add_epsg_def (filter, first, last, 2391, "epsg", 2391, "KKJ / Finland zone 1"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=1500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=intl +towgs84=-96.062,-82.428,-121.753,4.801,0.34"); add_proj4text (p, 2, "5,-1.376,1.496 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"KKJ / Finland zone 1\",GEOGCS[\"KKJ\",DATUM[\"K"); add_srs_wkt (p, 1, "artastokoordinaattijarjestelma_1966\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, "TOWGS84[-96.062,-82.428,-121.753,4.801,0.345,-1.376,1.49"); add_srs_wkt (p, 4, "6],AUTHORITY[\"EPSG\",\"6123\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 6, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4123\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 8, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 9, "\",21],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_e"); add_srs_wkt (p, 10, "asting\",1500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); add_srs_wkt (p, 12, "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2391\"]]"); p = add_epsg_def (filter, first, last, 2392, "epsg", 2392, "KKJ / Finland zone 2"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=2500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=intl +towgs84=-96.062,-82.428,-121.753,4.801,0.34"); add_proj4text (p, 2, "5,-1.376,1.496 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"KKJ / Finland zone 2\",GEOGCS[\"KKJ\",DATUM[\"K"); add_srs_wkt (p, 1, "artastokoordinaattijarjestelma_1966\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, "TOWGS84[-96.062,-82.428,-121.753,4.801,0.345,-1.376,1.49"); add_srs_wkt (p, 4, "6],AUTHORITY[\"EPSG\",\"6123\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 6, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4123\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 8, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 9, "\",24],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_e"); add_srs_wkt (p, 10, "asting\",2500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); add_srs_wkt (p, 12, "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2392\"]]"); p = add_epsg_def (filter, first, last, 2393, "epsg", 2393, "KKJ / Finland Uniform Coordinate System"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=3500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=intl +towgs84=-96.062,-82.428,-121.753,4.801,0.34"); add_proj4text (p, 2, "5,-1.376,1.496 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"KKJ / Finland Uniform Coordinate System\",GEOGC"); add_srs_wkt (p, 1, "S[\"KKJ\",DATUM[\"Kartastokoordinaattijarjestelma_1966\""); add_srs_wkt (p, 2, ",SPHEROID[\"International 1924\",6378388,297,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7022\"]],TOWGS84[-96.062,-82.428,-121.753,4.801"); add_srs_wkt (p, 4, ",0.345,-1.376,1.496],AUTHORITY[\"EPSG\",\"6123\"]],PRIME"); add_srs_wkt (p, 5, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 6, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"4123\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 8, "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 9, "[\"central_meridian\",27],PARAMETER[\"scale_factor\",1],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",3500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"2393\"]]"); p = add_epsg_def (filter, first, last, 2394, "epsg", 2394, "KKJ / Finland zone 4"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=4500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=intl +towgs84=-96.062,-82.428,-121.753,4.801,0.34"); add_proj4text (p, 2, "5,-1.376,1.496 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"KKJ / Finland zone 4\",GEOGCS[\"KKJ\",DATUM[\"K"); add_srs_wkt (p, 1, "artastokoordinaattijarjestelma_1966\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, "TOWGS84[-96.062,-82.428,-121.753,4.801,0.345,-1.376,1.49"); add_srs_wkt (p, 4, "6],AUTHORITY[\"EPSG\",\"6123\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 6, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4123\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 8, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 9, "\",30],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_e"); add_srs_wkt (p, 10, "asting\",4500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); add_srs_wkt (p, 12, "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2394\"]]"); p = add_epsg_def (filter, first, last, 2395, "epsg", 2395, "South Yemen / Gauss-Kruger zone 8"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=8500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=-76,-138,67,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"South Yemen / Gauss-Kruger zone 8\",GEOGCS[\"So"); add_srs_wkt (p, 1, "uth Yemen\",DATUM[\"South_Yemen\",SPHEROID[\"Krassowsky "); add_srs_wkt (p, 2, "1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS"); add_srs_wkt (p, 3, "84[-76,-138,67,0,0,0,0],AUTHORITY[\"EPSG\",\"6164\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AUTHORITY[\"EPSG\",\"4164\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",45],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 9, "],PARAMETER[\"false_easting\",8500000],PARAMETER[\"false"); add_srs_wkt (p, 10, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 11, "1\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"2395\"]]"); p = add_epsg_def (filter, first, last, 2396, "epsg", 2396, "South Yemen / Gauss-Kruger zone 9"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=9500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=-76,-138,67,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"South Yemen / Gauss-Kruger zone 9\",GEOGCS[\"So"); add_srs_wkt (p, 1, "uth Yemen\",DATUM[\"South_Yemen\",SPHEROID[\"Krassowsky "); add_srs_wkt (p, 2, "1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS"); add_srs_wkt (p, 3, "84[-76,-138,67,0,0,0,0],AUTHORITY[\"EPSG\",\"6164\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AUTHORITY[\"EPSG\",\"4164\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",51],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 9, "],PARAMETER[\"false_easting\",9500000],PARAMETER[\"false"); add_srs_wkt (p, 10, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 11, "1\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"2396\"]]"); p = add_epsg_def (filter, first, last, 2397, "epsg", 2397, "Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 3"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=26,-121,-78,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 3"); add_srs_wkt (p, 1, "\",GEOGCS[\"Pulkovo 1942(83)\",DATUM[\"Pulkovo_1942_83\""); add_srs_wkt (p, 2, ",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7024\"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6178\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4178\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",9],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",350"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2397\"]]"); p = add_epsg_def (filter, first, last, 2398, "epsg", 2398, "Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 4"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=26,-121,-78,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 4"); add_srs_wkt (p, 1, "\",GEOGCS[\"Pulkovo 1942(83)\",DATUM[\"Pulkovo_1942_83\""); add_srs_wkt (p, 2, ",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7024\"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6178\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4178\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",12],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",45"); add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 12, "\",EAST],AUTHORITY[\"EPSG\",\"2398\"]]"); p = add_epsg_def (filter, first, last, 2399, "epsg", 2399, "Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 5"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=26,-121,-78,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 5"); add_srs_wkt (p, 1, "\",GEOGCS[\"Pulkovo 1942(83)\",DATUM[\"Pulkovo_1942_83\""); add_srs_wkt (p, 2, ",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7024\"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6178\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4178\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",15],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",55"); add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 12, "\",EAST],AUTHORITY[\"EPSG\",\"2399\"]]"); p = add_epsg_def (filter, first, last, 2400, "epsg", 2400, "RT90 2.5 gon W (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15.80827777777778 +k=1 +x_0="); add_proj4text (p, 1, "1500000 +y_0=0 +ellps=bessel +towgs84=414.1,41.3,603.1,-"); add_proj4text (p, 2, "0.855,2.141,-7.023,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RT90 2.5 gon W (deprecated)\",GEOGCS[\"RT90\",D"); add_srs_wkt (p, 1, "ATUM[\"Rikets_koordinatsystem_1990\",SPHEROID[\"Bessel 1"); add_srs_wkt (p, 2, "841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\""); add_srs_wkt (p, 3, "]],TOWGS84[414.1,41.3,603.1,-0.855,2.141,-7.023,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6124\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4124"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",15.8"); add_srs_wkt (p, 9, "0827777777778],PARAMETER[\"scale_factor\",1],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",1500000],PARAMETER[\"false_northing\",0]"); add_srs_wkt (p, 11, ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X"); add_srs_wkt (p, 12, "\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2400\"]]"); p = add_epsg_def (filter, first, last, 2401, "epsg", 2401, "Beijing 1954 / 3-degree Gauss-Kruger zone 25"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=25500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger zone 25\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",75],PARAMETE"); add_srs_wkt (p, 9, "R[\"scale_factor\",1],PARAMETER[\"false_easting\",255000"); add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 12, "EAST],AUTHORITY[\"EPSG\",\"2401\"]]"); p = add_epsg_def (filter, first, last, 2402, "epsg", 2402, "Beijing 1954 / 3-degree Gauss-Kruger zone 26"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=78 +k=1 +x_0=26500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger zone 26\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",78],PARAMETE"); add_srs_wkt (p, 9, "R[\"scale_factor\",1],PARAMETER[\"false_easting\",265000"); add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 12, "EAST],AUTHORITY[\"EPSG\",\"2402\"]]"); p = add_epsg_def (filter, first, last, 2403, "epsg", 2403, "Beijing 1954 / 3-degree Gauss-Kruger zone 27"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=27500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger zone 27\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",81],PARAMETE"); add_srs_wkt (p, 9, "R[\"scale_factor\",1],PARAMETER[\"false_easting\",275000"); add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 12, "EAST],AUTHORITY[\"EPSG\",\"2403\"]]"); p = add_epsg_def (filter, first, last, 2404, "epsg", 2404, "Beijing 1954 / 3-degree Gauss-Kruger zone 28"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=84 +k=1 +x_0=28500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger zone 28\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",84],PARAMETE"); add_srs_wkt (p, 9, "R[\"scale_factor\",1],PARAMETER[\"false_easting\",285000"); add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 12, "EAST],AUTHORITY[\"EPSG\",\"2404\"]]"); p = add_epsg_def (filter, first, last, 2405, "epsg", 2405, "Beijing 1954 / 3-degree Gauss-Kruger zone 29"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=29500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger zone 29\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",87],PARAMETE"); add_srs_wkt (p, 9, "R[\"scale_factor\",1],PARAMETER[\"false_easting\",295000"); add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 12, "EAST],AUTHORITY[\"EPSG\",\"2405\"]]"); p = add_epsg_def (filter, first, last, 2406, "epsg", 2406, "Beijing 1954 / 3-degree Gauss-Kruger zone 30"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=30500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger zone 30\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",90],PARAMETE"); add_srs_wkt (p, 9, "R[\"scale_factor\",1],PARAMETER[\"false_easting\",305000"); add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 12, "EAST],AUTHORITY[\"EPSG\",\"2406\"]]"); p = add_epsg_def (filter, first, last, 2407, "epsg", 2407, "Beijing 1954 / 3-degree Gauss-Kruger zone 31"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=31500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger zone 31\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",93],PARAMETE"); add_srs_wkt (p, 9, "R[\"scale_factor\",1],PARAMETER[\"false_easting\",315000"); add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 12, "EAST],AUTHORITY[\"EPSG\",\"2407\"]]"); p = add_epsg_def (filter, first, last, 2408, "epsg", 2408, "Beijing 1954 / 3-degree Gauss-Kruger zone 32"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=96 +k=1 +x_0=32500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger zone 32\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",96],PARAMETE"); add_srs_wkt (p, 9, "R[\"scale_factor\",1],PARAMETER[\"false_easting\",325000"); add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 12, "EAST],AUTHORITY[\"EPSG\",\"2408\"]]"); p = add_epsg_def (filter, first, last, 2409, "epsg", 2409, "Beijing 1954 / 3-degree Gauss-Kruger zone 33"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=33500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger zone 33\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",99],PARAMETE"); add_srs_wkt (p, 9, "R[\"scale_factor\",1],PARAMETER[\"false_easting\",335000"); add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 12, "EAST],AUTHORITY[\"EPSG\",\"2409\"]]"); p = add_epsg_def (filter, first, last, 2410, "epsg", 2410, "Beijing 1954 / 3-degree Gauss-Kruger zone 34"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=34500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger zone 34\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",102],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",34500"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2410\"]]"); p = add_epsg_def (filter, first, last, 2411, "epsg", 2411, "Beijing 1954 / 3-degree Gauss-Kruger zone 35"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=35500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger zone 35\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",105],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",35500"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2411\"]]"); p = add_epsg_def (filter, first, last, 2412, "epsg", 2412, "Beijing 1954 / 3-degree Gauss-Kruger zone 36"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=36500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger zone 36\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",108],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",36500"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2412\"]]"); p = add_epsg_def (filter, first, last, 2413, "epsg", 2413, "Beijing 1954 / 3-degree Gauss-Kruger zone 37"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=37500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger zone 37\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",111],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",37500"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2413\"]]"); p = add_epsg_def (filter, first, last, 2414, "epsg", 2414, "Beijing 1954 / 3-degree Gauss-Kruger zone 38"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=38500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger zone 38\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",114],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",38500"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2414\"]]"); p = add_epsg_def (filter, first, last, 2415, "epsg", 2415, "Beijing 1954 / 3-degree Gauss-Kruger zone 39"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=39500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger zone 39\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",117],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",39500"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2415\"]]"); p = add_epsg_def (filter, first, last, 2416, "epsg", 2416, "Beijing 1954 / 3-degree Gauss-Kruger zone 40"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=40500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger zone 40\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",120],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",40500"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2416\"]]"); p = add_epsg_def (filter, first, last, 2417, "epsg", 2417, "Beijing 1954 / 3-degree Gauss-Kruger zone 41"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=41500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger zone 41\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",123],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",41500"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2417\"]]"); p = add_epsg_def (filter, first, last, 2418, "epsg", 2418, "Beijing 1954 / 3-degree Gauss-Kruger zone 42"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=126 +k=1 +x_0=42500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger zone 42\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",126],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",42500"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2418\"]]"); p = add_epsg_def (filter, first, last, 2419, "epsg", 2419, "Beijing 1954 / 3-degree Gauss-Kruger zone 43"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=43500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger zone 43\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",129],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",43500"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2419\"]]"); p = add_epsg_def (filter, first, last, 2420, "epsg", 2420, "Beijing 1954 / 3-degree Gauss-Kruger zone 44"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=132 +k=1 +x_0=44500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger zone 44\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",132],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",44500"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2420\"]]"); p = add_epsg_def (filter, first, last, 2421, "epsg", 2421, "Beijing 1954 / 3-degree Gauss-Kruger zone 45"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=45500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger zone 45\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",135],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",45500"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2421\"]]"); p = add_epsg_def (filter, first, last, 2422, "epsg", 2422, "Beijing 1954 / 3-degree Gauss-Kruger CM 75E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger CM 75E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",0],PARAMETER[\"central_meridian\",75],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",1],PARAMETER[\"false_easting\",500000],"); add_srs_wkt (p, 10, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); add_srs_wkt (p, 12, "],AUTHORITY[\"EPSG\",\"2422\"]]"); p = add_epsg_def (filter, first, last, 2423, "epsg", 2423, "Beijing 1954 / 3-degree Gauss-Kruger CM 78E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=78 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger CM 78E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",0],PARAMETER[\"central_meridian\",78],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",1],PARAMETER[\"false_easting\",500000],"); add_srs_wkt (p, 10, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); add_srs_wkt (p, 12, "],AUTHORITY[\"EPSG\",\"2423\"]]"); p = add_epsg_def (filter, first, last, 2424, "epsg", 2424, "Beijing 1954 / 3-degree Gauss-Kruger CM 81E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger CM 81E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",0],PARAMETER[\"central_meridian\",81],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",1],PARAMETER[\"false_easting\",500000],"); add_srs_wkt (p, 10, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); add_srs_wkt (p, 12, "],AUTHORITY[\"EPSG\",\"2424\"]]"); p = add_epsg_def (filter, first, last, 2425, "epsg", 2425, "Beijing 1954 / 3-degree Gauss-Kruger CM 84E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=84 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger CM 84E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",0],PARAMETER[\"central_meridian\",84],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",1],PARAMETER[\"false_easting\",500000],"); add_srs_wkt (p, 10, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); add_srs_wkt (p, 12, "],AUTHORITY[\"EPSG\",\"2425\"]]"); } #endif /* full EPSG initialization enabled/disabled */ libspatialite-4.1.1/src/srsinit/epsg_inlined_39.c0000664000175000017500000044237212163502133016677 00000000000000/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_39 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def (filter, first, last, 32418, "epsg", 32418, "WGS 72BE / UTM zone 18N"); add_proj4text (p, 0, "+proj=utm +zone=18 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 18N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-75],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32418\"]]"); p = add_epsg_def (filter, first, last, 32419, "epsg", 32419, "WGS 72BE / UTM zone 19N"); add_proj4text (p, 0, "+proj=utm +zone=19 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 19N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-69],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32419\"]]"); p = add_epsg_def (filter, first, last, 32420, "epsg", 32420, "WGS 72BE / UTM zone 20N"); add_proj4text (p, 0, "+proj=utm +zone=20 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 20N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-63],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32420\"]]"); p = add_epsg_def (filter, first, last, 32421, "epsg", 32421, "WGS 72BE / UTM zone 21N"); add_proj4text (p, 0, "+proj=utm +zone=21 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 21N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-57],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32421\"]]"); p = add_epsg_def (filter, first, last, 32422, "epsg", 32422, "WGS 72BE / UTM zone 22N"); add_proj4text (p, 0, "+proj=utm +zone=22 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 22N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-51],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32422\"]]"); p = add_epsg_def (filter, first, last, 32423, "epsg", 32423, "WGS 72BE / UTM zone 23N"); add_proj4text (p, 0, "+proj=utm +zone=23 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 23N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-45],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32423\"]]"); p = add_epsg_def (filter, first, last, 32424, "epsg", 32424, "WGS 72BE / UTM zone 24N"); add_proj4text (p, 0, "+proj=utm +zone=24 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 24N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-39],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32424\"]]"); p = add_epsg_def (filter, first, last, 32425, "epsg", 32425, "WGS 72BE / UTM zone 25N"); add_proj4text (p, 0, "+proj=utm +zone=25 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 25N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-33],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32425\"]]"); p = add_epsg_def (filter, first, last, 32426, "epsg", 32426, "WGS 72BE / UTM zone 26N"); add_proj4text (p, 0, "+proj=utm +zone=26 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 26N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-27],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32426\"]]"); p = add_epsg_def (filter, first, last, 32427, "epsg", 32427, "WGS 72BE / UTM zone 27N"); add_proj4text (p, 0, "+proj=utm +zone=27 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 27N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-21],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32427\"]]"); p = add_epsg_def (filter, first, last, 32428, "epsg", 32428, "WGS 72BE / UTM zone 28N"); add_proj4text (p, 0, "+proj=utm +zone=28 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 28N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-15],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32428\"]]"); p = add_epsg_def (filter, first, last, 32429, "epsg", 32429, "WGS 72BE / UTM zone 29N"); add_proj4text (p, 0, "+proj=utm +zone=29 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 29N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-9],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32429\"]]"); p = add_epsg_def (filter, first, last, 32430, "epsg", 32430, "WGS 72BE / UTM zone 30N"); add_proj4text (p, 0, "+proj=utm +zone=30 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 30N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-3],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32430\"]]"); p = add_epsg_def (filter, first, last, 32431, "epsg", 32431, "WGS 72BE / UTM zone 31N"); add_proj4text (p, 0, "+proj=utm +zone=31 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 31N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",3],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"32431\"]]"); p = add_epsg_def (filter, first, last, 32432, "epsg", 32432, "WGS 72BE / UTM zone 32N"); add_proj4text (p, 0, "+proj=utm +zone=32 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 32N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",9],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"32432\"]]"); p = add_epsg_def (filter, first, last, 32433, "epsg", 32433, "WGS 72BE / UTM zone 33N"); add_proj4text (p, 0, "+proj=utm +zone=33 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 33N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",15],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32433\"]]"); p = add_epsg_def (filter, first, last, 32434, "epsg", 32434, "WGS 72BE / UTM zone 34N"); add_proj4text (p, 0, "+proj=utm +zone=34 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 34N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",21],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32434\"]]"); p = add_epsg_def (filter, first, last, 32435, "epsg", 32435, "WGS 72BE / UTM zone 35N"); add_proj4text (p, 0, "+proj=utm +zone=35 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 35N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",27],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32435\"]]"); p = add_epsg_def (filter, first, last, 32436, "epsg", 32436, "WGS 72BE / UTM zone 36N"); add_proj4text (p, 0, "+proj=utm +zone=36 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 36N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",33],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32436\"]]"); p = add_epsg_def (filter, first, last, 32437, "epsg", 32437, "WGS 72BE / UTM zone 37N"); add_proj4text (p, 0, "+proj=utm +zone=37 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 37N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",39],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32437\"]]"); p = add_epsg_def (filter, first, last, 32438, "epsg", 32438, "WGS 72BE / UTM zone 38N"); add_proj4text (p, 0, "+proj=utm +zone=38 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 38N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",45],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32438\"]]"); p = add_epsg_def (filter, first, last, 32439, "epsg", 32439, "WGS 72BE / UTM zone 39N"); add_proj4text (p, 0, "+proj=utm +zone=39 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 39N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",51],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32439\"]]"); p = add_epsg_def (filter, first, last, 32440, "epsg", 32440, "WGS 72BE / UTM zone 40N"); add_proj4text (p, 0, "+proj=utm +zone=40 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 40N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",57],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32440\"]]"); p = add_epsg_def (filter, first, last, 32441, "epsg", 32441, "WGS 72BE / UTM zone 41N"); add_proj4text (p, 0, "+proj=utm +zone=41 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 41N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",63],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32441\"]]"); p = add_epsg_def (filter, first, last, 32442, "epsg", 32442, "WGS 72BE / UTM zone 42N"); add_proj4text (p, 0, "+proj=utm +zone=42 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 42N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",69],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32442\"]]"); p = add_epsg_def (filter, first, last, 32443, "epsg", 32443, "WGS 72BE / UTM zone 43N"); add_proj4text (p, 0, "+proj=utm +zone=43 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 43N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",75],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32443\"]]"); p = add_epsg_def (filter, first, last, 32444, "epsg", 32444, "WGS 72BE / UTM zone 44N"); add_proj4text (p, 0, "+proj=utm +zone=44 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 44N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",81],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32444\"]]"); p = add_epsg_def (filter, first, last, 32445, "epsg", 32445, "WGS 72BE / UTM zone 45N"); add_proj4text (p, 0, "+proj=utm +zone=45 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 45N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",87],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32445\"]]"); p = add_epsg_def (filter, first, last, 32446, "epsg", 32446, "WGS 72BE / UTM zone 46N"); add_proj4text (p, 0, "+proj=utm +zone=46 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 46N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",93],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32446\"]]"); p = add_epsg_def (filter, first, last, 32447, "epsg", 32447, "WGS 72BE / UTM zone 47N"); add_proj4text (p, 0, "+proj=utm +zone=47 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 47N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",99],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32447\"]]"); p = add_epsg_def (filter, first, last, 32448, "epsg", 32448, "WGS 72BE / UTM zone 48N"); add_proj4text (p, 0, "+proj=utm +zone=48 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 48N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",105],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32448\"]]"); p = add_epsg_def (filter, first, last, 32449, "epsg", 32449, "WGS 72BE / UTM zone 49N"); add_proj4text (p, 0, "+proj=utm +zone=49 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 49N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",111],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32449\"]]"); p = add_epsg_def (filter, first, last, 32450, "epsg", 32450, "WGS 72BE / UTM zone 50N"); add_proj4text (p, 0, "+proj=utm +zone=50 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 50N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",117],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32450\"]]"); p = add_epsg_def (filter, first, last, 32451, "epsg", 32451, "WGS 72BE / UTM zone 51N"); add_proj4text (p, 0, "+proj=utm +zone=51 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 51N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",123],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32451\"]]"); p = add_epsg_def (filter, first, last, 32452, "epsg", 32452, "WGS 72BE / UTM zone 52N"); add_proj4text (p, 0, "+proj=utm +zone=52 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 52N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",129],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32452\"]]"); p = add_epsg_def (filter, first, last, 32453, "epsg", 32453, "WGS 72BE / UTM zone 53N"); add_proj4text (p, 0, "+proj=utm +zone=53 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 53N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",135],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32453\"]]"); p = add_epsg_def (filter, first, last, 32454, "epsg", 32454, "WGS 72BE / UTM zone 54N"); add_proj4text (p, 0, "+proj=utm +zone=54 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 54N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",141],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32454\"]]"); p = add_epsg_def (filter, first, last, 32455, "epsg", 32455, "WGS 72BE / UTM zone 55N"); add_proj4text (p, 0, "+proj=utm +zone=55 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 55N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",147],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32455\"]]"); p = add_epsg_def (filter, first, last, 32456, "epsg", 32456, "WGS 72BE / UTM zone 56N"); add_proj4text (p, 0, "+proj=utm +zone=56 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 56N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",153],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32456\"]]"); p = add_epsg_def (filter, first, last, 32457, "epsg", 32457, "WGS 72BE / UTM zone 57N"); add_proj4text (p, 0, "+proj=utm +zone=57 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 57N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",159],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32457\"]]"); p = add_epsg_def (filter, first, last, 32458, "epsg", 32458, "WGS 72BE / UTM zone 58N"); add_proj4text (p, 0, "+proj=utm +zone=58 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 58N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",165],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32458\"]]"); p = add_epsg_def (filter, first, last, 32459, "epsg", 32459, "WGS 72BE / UTM zone 59N"); add_proj4text (p, 0, "+proj=utm +zone=59 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 59N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",171],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32459\"]]"); p = add_epsg_def (filter, first, last, 32460, "epsg", 32460, "WGS 72BE / UTM zone 60N"); add_proj4text (p, 0, "+proj=utm +zone=60 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 60N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",177],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32460\"]]"); p = add_epsg_def (filter, first, last, 32501, "epsg", 32501, "WGS 72BE / UTM zone 1S"); add_proj4text (p, 0, "+proj=utm +zone=1 +south +ellps=WGS72 +towgs84=0,0,1.9,0"); add_proj4text (p, 1, ",0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 1S\",GEOGCS[\"WGS 72BE\",DA"); add_srs_wkt (p, 1, "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-177],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32501\"]]"); p = add_epsg_def (filter, first, last, 32502, "epsg", 32502, "WGS 72BE / UTM zone 2S"); add_proj4text (p, 0, "+proj=utm +zone=2 +south +ellps=WGS72 +towgs84=0,0,1.9,0"); add_proj4text (p, 1, ",0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 2S\",GEOGCS[\"WGS 72BE\",DA"); add_srs_wkt (p, 1, "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-171],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32502\"]]"); p = add_epsg_def (filter, first, last, 32503, "epsg", 32503, "WGS 72BE / UTM zone 3S"); add_proj4text (p, 0, "+proj=utm +zone=3 +south +ellps=WGS72 +towgs84=0,0,1.9,0"); add_proj4text (p, 1, ",0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 3S\",GEOGCS[\"WGS 72BE\",DA"); add_srs_wkt (p, 1, "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-165],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32503\"]]"); p = add_epsg_def (filter, first, last, 32504, "epsg", 32504, "WGS 72BE / UTM zone 4S"); add_proj4text (p, 0, "+proj=utm +zone=4 +south +ellps=WGS72 +towgs84=0,0,1.9,0"); add_proj4text (p, 1, ",0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 4S\",GEOGCS[\"WGS 72BE\",DA"); add_srs_wkt (p, 1, "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-159],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32504\"]]"); p = add_epsg_def (filter, first, last, 32505, "epsg", 32505, "WGS 72BE / UTM zone 5S"); add_proj4text (p, 0, "+proj=utm +zone=5 +south +ellps=WGS72 +towgs84=0,0,1.9,0"); add_proj4text (p, 1, ",0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 5S\",GEOGCS[\"WGS 72BE\",DA"); add_srs_wkt (p, 1, "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-153],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32505\"]]"); p = add_epsg_def (filter, first, last, 32506, "epsg", 32506, "WGS 72BE / UTM zone 6S"); add_proj4text (p, 0, "+proj=utm +zone=6 +south +ellps=WGS72 +towgs84=0,0,1.9,0"); add_proj4text (p, 1, ",0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 6S\",GEOGCS[\"WGS 72BE\",DA"); add_srs_wkt (p, 1, "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-147],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32506\"]]"); p = add_epsg_def (filter, first, last, 32507, "epsg", 32507, "WGS 72BE / UTM zone 7S"); add_proj4text (p, 0, "+proj=utm +zone=7 +south +ellps=WGS72 +towgs84=0,0,1.9,0"); add_proj4text (p, 1, ",0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 7S\",GEOGCS[\"WGS 72BE\",DA"); add_srs_wkt (p, 1, "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-141],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32507\"]]"); p = add_epsg_def (filter, first, last, 32508, "epsg", 32508, "WGS 72BE / UTM zone 8S"); add_proj4text (p, 0, "+proj=utm +zone=8 +south +ellps=WGS72 +towgs84=0,0,1.9,0"); add_proj4text (p, 1, ",0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 8S\",GEOGCS[\"WGS 72BE\",DA"); add_srs_wkt (p, 1, "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-135],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32508\"]]"); p = add_epsg_def (filter, first, last, 32509, "epsg", 32509, "WGS 72BE / UTM zone 9S"); add_proj4text (p, 0, "+proj=utm +zone=9 +south +ellps=WGS72 +towgs84=0,0,1.9,0"); add_proj4text (p, 1, ",0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 9S\",GEOGCS[\"WGS 72BE\",DA"); add_srs_wkt (p, 1, "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-129],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32509\"]]"); p = add_epsg_def (filter, first, last, 32510, "epsg", 32510, "WGS 72BE / UTM zone 10S"); add_proj4text (p, 0, "+proj=utm +zone=10 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 10S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-123],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32510\"]]"); p = add_epsg_def (filter, first, last, 32511, "epsg", 32511, "WGS 72BE / UTM zone 11S"); add_proj4text (p, 0, "+proj=utm +zone=11 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 11S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-117],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32511\"]]"); p = add_epsg_def (filter, first, last, 32512, "epsg", 32512, "WGS 72BE / UTM zone 12S"); add_proj4text (p, 0, "+proj=utm +zone=12 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 12S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-111],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32512\"]]"); p = add_epsg_def (filter, first, last, 32513, "epsg", 32513, "WGS 72BE / UTM zone 13S"); add_proj4text (p, 0, "+proj=utm +zone=13 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 13S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-105],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32513\"]]"); p = add_epsg_def (filter, first, last, 32514, "epsg", 32514, "WGS 72BE / UTM zone 14S"); add_proj4text (p, 0, "+proj=utm +zone=14 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 14S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-99],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32514\"]]"); p = add_epsg_def (filter, first, last, 32515, "epsg", 32515, "WGS 72BE / UTM zone 15S"); add_proj4text (p, 0, "+proj=utm +zone=15 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 15S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-93],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32515\"]]"); p = add_epsg_def (filter, first, last, 32516, "epsg", 32516, "WGS 72BE / UTM zone 16S"); add_proj4text (p, 0, "+proj=utm +zone=16 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 16S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-87],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32516\"]]"); p = add_epsg_def (filter, first, last, 32517, "epsg", 32517, "WGS 72BE / UTM zone 17S"); add_proj4text (p, 0, "+proj=utm +zone=17 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 17S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-81],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32517\"]]"); p = add_epsg_def (filter, first, last, 32518, "epsg", 32518, "WGS 72BE / UTM zone 18S"); add_proj4text (p, 0, "+proj=utm +zone=18 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 18S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-75],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32518\"]]"); p = add_epsg_def (filter, first, last, 32519, "epsg", 32519, "WGS 72BE / UTM zone 19S"); add_proj4text (p, 0, "+proj=utm +zone=19 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 19S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-69],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32519\"]]"); p = add_epsg_def (filter, first, last, 32520, "epsg", 32520, "WGS 72BE / UTM zone 20S"); add_proj4text (p, 0, "+proj=utm +zone=20 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 20S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-63],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32520\"]]"); p = add_epsg_def (filter, first, last, 32521, "epsg", 32521, "WGS 72BE / UTM zone 21S"); add_proj4text (p, 0, "+proj=utm +zone=21 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 21S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-57],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32521\"]]"); p = add_epsg_def (filter, first, last, 32522, "epsg", 32522, "WGS 72BE / UTM zone 22S"); add_proj4text (p, 0, "+proj=utm +zone=22 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 22S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-51],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32522\"]]"); p = add_epsg_def (filter, first, last, 32523, "epsg", 32523, "WGS 72BE / UTM zone 23S"); add_proj4text (p, 0, "+proj=utm +zone=23 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 23S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-45],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32523\"]]"); p = add_epsg_def (filter, first, last, 32524, "epsg", 32524, "WGS 72BE / UTM zone 24S"); add_proj4text (p, 0, "+proj=utm +zone=24 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 24S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-39],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32524\"]]"); p = add_epsg_def (filter, first, last, 32525, "epsg", 32525, "WGS 72BE / UTM zone 25S"); add_proj4text (p, 0, "+proj=utm +zone=25 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 25S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-33],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32525\"]]"); p = add_epsg_def (filter, first, last, 32526, "epsg", 32526, "WGS 72BE / UTM zone 26S"); add_proj4text (p, 0, "+proj=utm +zone=26 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 26S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-27],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32526\"]]"); p = add_epsg_def (filter, first, last, 32527, "epsg", 32527, "WGS 72BE / UTM zone 27S"); add_proj4text (p, 0, "+proj=utm +zone=27 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 27S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-21],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32527\"]]"); p = add_epsg_def (filter, first, last, 32528, "epsg", 32528, "WGS 72BE / UTM zone 28S"); add_proj4text (p, 0, "+proj=utm +zone=28 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 28S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-15],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32528\"]]"); p = add_epsg_def (filter, first, last, 32529, "epsg", 32529, "WGS 72BE / UTM zone 29S"); add_proj4text (p, 0, "+proj=utm +zone=29 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 29S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-9],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); add_srs_wkt (p, 12, "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32529\"]]"); p = add_epsg_def (filter, first, last, 32530, "epsg", 32530, "WGS 72BE / UTM zone 30S"); add_proj4text (p, 0, "+proj=utm +zone=30 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 30S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-3],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); add_srs_wkt (p, 12, "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32530\"]]"); p = add_epsg_def (filter, first, last, 32531, "epsg", 32531, "WGS 72BE / UTM zone 31S"); add_proj4text (p, 0, "+proj=utm +zone=31 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 31S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",3],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 11, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 12, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"32531\"]]"); p = add_epsg_def (filter, first, last, 32532, "epsg", 32532, "WGS 72BE / UTM zone 32S"); add_proj4text (p, 0, "+proj=utm +zone=32 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 32S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",9],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 11, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 12, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"32532\"]]"); p = add_epsg_def (filter, first, last, 32533, "epsg", 32533, "WGS 72BE / UTM zone 33S"); add_proj4text (p, 0, "+proj=utm +zone=33 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 33S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",15],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); add_srs_wkt (p, 12, "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32533\"]]"); p = add_epsg_def (filter, first, last, 32534, "epsg", 32534, "WGS 72BE / UTM zone 34S"); add_proj4text (p, 0, "+proj=utm +zone=34 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 34S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",21],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); add_srs_wkt (p, 12, "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32534\"]]"); p = add_epsg_def (filter, first, last, 32535, "epsg", 32535, "WGS 72BE / UTM zone 35S"); add_proj4text (p, 0, "+proj=utm +zone=35 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 35S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",27],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); add_srs_wkt (p, 12, "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32535\"]]"); p = add_epsg_def (filter, first, last, 32536, "epsg", 32536, "WGS 72BE / UTM zone 36S"); add_proj4text (p, 0, "+proj=utm +zone=36 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 36S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",33],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); add_srs_wkt (p, 12, "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32536\"]]"); p = add_epsg_def (filter, first, last, 32537, "epsg", 32537, "WGS 72BE / UTM zone 37S"); add_proj4text (p, 0, "+proj=utm +zone=37 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 37S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",39],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); add_srs_wkt (p, 12, "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32537\"]]"); p = add_epsg_def (filter, first, last, 32538, "epsg", 32538, "WGS 72BE / UTM zone 38S"); add_proj4text (p, 0, "+proj=utm +zone=38 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 38S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",45],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); add_srs_wkt (p, 12, "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32538\"]]"); p = add_epsg_def (filter, first, last, 32539, "epsg", 32539, "WGS 72BE / UTM zone 39S"); add_proj4text (p, 0, "+proj=utm +zone=39 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 39S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",51],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); add_srs_wkt (p, 12, "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32539\"]]"); p = add_epsg_def (filter, first, last, 32540, "epsg", 32540, "WGS 72BE / UTM zone 40S"); add_proj4text (p, 0, "+proj=utm +zone=40 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 40S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",57],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); add_srs_wkt (p, 12, "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32540\"]]"); p = add_epsg_def (filter, first, last, 32541, "epsg", 32541, "WGS 72BE / UTM zone 41S"); add_proj4text (p, 0, "+proj=utm +zone=41 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 41S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",63],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); add_srs_wkt (p, 12, "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32541\"]]"); p = add_epsg_def (filter, first, last, 32542, "epsg", 32542, "WGS 72BE / UTM zone 42S"); add_proj4text (p, 0, "+proj=utm +zone=42 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 42S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",69],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); add_srs_wkt (p, 12, "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32542\"]]"); p = add_epsg_def (filter, first, last, 32543, "epsg", 32543, "WGS 72BE / UTM zone 43S"); add_proj4text (p, 0, "+proj=utm +zone=43 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 43S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",75],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); add_srs_wkt (p, 12, "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32543\"]]"); p = add_epsg_def (filter, first, last, 32544, "epsg", 32544, "WGS 72BE / UTM zone 44S"); add_proj4text (p, 0, "+proj=utm +zone=44 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 44S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",81],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); add_srs_wkt (p, 12, "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32544\"]]"); p = add_epsg_def (filter, first, last, 32545, "epsg", 32545, "WGS 72BE / UTM zone 45S"); add_proj4text (p, 0, "+proj=utm +zone=45 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 45S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",87],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); add_srs_wkt (p, 12, "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32545\"]]"); p = add_epsg_def (filter, first, last, 32546, "epsg", 32546, "WGS 72BE / UTM zone 46S"); add_proj4text (p, 0, "+proj=utm +zone=46 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 46S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",93],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); add_srs_wkt (p, 12, "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32546\"]]"); p = add_epsg_def (filter, first, last, 32547, "epsg", 32547, "WGS 72BE / UTM zone 47S"); add_proj4text (p, 0, "+proj=utm +zone=47 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 47S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",99],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); add_srs_wkt (p, 12, "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32547\"]]"); p = add_epsg_def (filter, first, last, 32548, "epsg", 32548, "WGS 72BE / UTM zone 48S"); add_proj4text (p, 0, "+proj=utm +zone=48 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 48S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",105],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32548\"]]"); p = add_epsg_def (filter, first, last, 32549, "epsg", 32549, "WGS 72BE / UTM zone 49S"); add_proj4text (p, 0, "+proj=utm +zone=49 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 49S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",111],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32549\"]]"); p = add_epsg_def (filter, first, last, 32550, "epsg", 32550, "WGS 72BE / UTM zone 50S"); add_proj4text (p, 0, "+proj=utm +zone=50 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 50S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",117],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32550\"]]"); p = add_epsg_def (filter, first, last, 32551, "epsg", 32551, "WGS 72BE / UTM zone 51S"); add_proj4text (p, 0, "+proj=utm +zone=51 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 51S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",123],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32551\"]]"); p = add_epsg_def (filter, first, last, 32552, "epsg", 32552, "WGS 72BE / UTM zone 52S"); add_proj4text (p, 0, "+proj=utm +zone=52 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 52S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",129],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32552\"]]"); p = add_epsg_def (filter, first, last, 32553, "epsg", 32553, "WGS 72BE / UTM zone 53S"); add_proj4text (p, 0, "+proj=utm +zone=53 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 53S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",135],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32553\"]]"); p = add_epsg_def (filter, first, last, 32554, "epsg", 32554, "WGS 72BE / UTM zone 54S"); add_proj4text (p, 0, "+proj=utm +zone=54 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 54S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",141],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32554\"]]"); p = add_epsg_def (filter, first, last, 32555, "epsg", 32555, "WGS 72BE / UTM zone 55S"); add_proj4text (p, 0, "+proj=utm +zone=55 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 55S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",147],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32555\"]]"); p = add_epsg_def (filter, first, last, 32556, "epsg", 32556, "WGS 72BE / UTM zone 56S"); add_proj4text (p, 0, "+proj=utm +zone=56 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 56S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",153],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32556\"]]"); p = add_epsg_def (filter, first, last, 32557, "epsg", 32557, "WGS 72BE / UTM zone 57S"); add_proj4text (p, 0, "+proj=utm +zone=57 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 57S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",159],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32557\"]]"); p = add_epsg_def (filter, first, last, 32558, "epsg", 32558, "WGS 72BE / UTM zone 58S"); add_proj4text (p, 0, "+proj=utm +zone=58 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 58S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",165],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32558\"]]"); } #endif /* full EPSG initialization enabled/disabled */ libspatialite-4.1.1/src/srsinit/epsg_inlined_38.c0000664000175000017500000043522212163502133016672 00000000000000/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_38 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def (filter, first, last, 32237, "epsg", 32237, "WGS 72 / UTM zone 37N"); add_proj4text (p, 0, "+proj=utm +zone=37 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 37N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",39],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 11, "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32237\"]]"); p = add_epsg_def (filter, first, last, 32238, "epsg", 32238, "WGS 72 / UTM zone 38N"); add_proj4text (p, 0, "+proj=utm +zone=38 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 38N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",45],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 11, "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32238\"]]"); p = add_epsg_def (filter, first, last, 32239, "epsg", 32239, "WGS 72 / UTM zone 39N"); add_proj4text (p, 0, "+proj=utm +zone=39 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 39N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",51],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 11, "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32239\"]]"); p = add_epsg_def (filter, first, last, 32240, "epsg", 32240, "WGS 72 / UTM zone 40N"); add_proj4text (p, 0, "+proj=utm +zone=40 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 40N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",57],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 11, "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32240\"]]"); p = add_epsg_def (filter, first, last, 32241, "epsg", 32241, "WGS 72 / UTM zone 41N"); add_proj4text (p, 0, "+proj=utm +zone=41 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 41N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",63],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 11, "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32241\"]]"); p = add_epsg_def (filter, first, last, 32242, "epsg", 32242, "WGS 72 / UTM zone 42N"); add_proj4text (p, 0, "+proj=utm +zone=42 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 42N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",69],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 11, "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32242\"]]"); p = add_epsg_def (filter, first, last, 32243, "epsg", 32243, "WGS 72 / UTM zone 43N"); add_proj4text (p, 0, "+proj=utm +zone=43 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 43N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",75],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 11, "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32243\"]]"); p = add_epsg_def (filter, first, last, 32244, "epsg", 32244, "WGS 72 / UTM zone 44N"); add_proj4text (p, 0, "+proj=utm +zone=44 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 44N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",81],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 11, "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32244\"]]"); p = add_epsg_def (filter, first, last, 32245, "epsg", 32245, "WGS 72 / UTM zone 45N"); add_proj4text (p, 0, "+proj=utm +zone=45 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 45N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",87],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 11, "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32245\"]]"); p = add_epsg_def (filter, first, last, 32246, "epsg", 32246, "WGS 72 / UTM zone 46N"); add_proj4text (p, 0, "+proj=utm +zone=46 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 46N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",93],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 11, "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32246\"]]"); p = add_epsg_def (filter, first, last, 32247, "epsg", 32247, "WGS 72 / UTM zone 47N"); add_proj4text (p, 0, "+proj=utm +zone=47 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 47N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",99],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 11, "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32247\"]]"); p = add_epsg_def (filter, first, last, 32248, "epsg", 32248, "WGS 72 / UTM zone 48N"); add_proj4text (p, 0, "+proj=utm +zone=48 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 48N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",105],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 11, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32248\"]]"); p = add_epsg_def (filter, first, last, 32249, "epsg", 32249, "WGS 72 / UTM zone 49N"); add_proj4text (p, 0, "+proj=utm +zone=49 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 49N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",111],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 11, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32249\"]]"); p = add_epsg_def (filter, first, last, 32250, "epsg", 32250, "WGS 72 / UTM zone 50N"); add_proj4text (p, 0, "+proj=utm +zone=50 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 50N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",117],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 11, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32250\"]]"); p = add_epsg_def (filter, first, last, 32251, "epsg", 32251, "WGS 72 / UTM zone 51N"); add_proj4text (p, 0, "+proj=utm +zone=51 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 51N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",123],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 11, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32251\"]]"); p = add_epsg_def (filter, first, last, 32252, "epsg", 32252, "WGS 72 / UTM zone 52N"); add_proj4text (p, 0, "+proj=utm +zone=52 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 52N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",129],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 11, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32252\"]]"); p = add_epsg_def (filter, first, last, 32253, "epsg", 32253, "WGS 72 / UTM zone 53N"); add_proj4text (p, 0, "+proj=utm +zone=53 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 53N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",135],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 11, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32253\"]]"); p = add_epsg_def (filter, first, last, 32254, "epsg", 32254, "WGS 72 / UTM zone 54N"); add_proj4text (p, 0, "+proj=utm +zone=54 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 54N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",141],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 11, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32254\"]]"); p = add_epsg_def (filter, first, last, 32255, "epsg", 32255, "WGS 72 / UTM zone 55N"); add_proj4text (p, 0, "+proj=utm +zone=55 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 55N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",147],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 11, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32255\"]]"); p = add_epsg_def (filter, first, last, 32256, "epsg", 32256, "WGS 72 / UTM zone 56N"); add_proj4text (p, 0, "+proj=utm +zone=56 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 56N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",153],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 11, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32256\"]]"); p = add_epsg_def (filter, first, last, 32257, "epsg", 32257, "WGS 72 / UTM zone 57N"); add_proj4text (p, 0, "+proj=utm +zone=57 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 57N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",159],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 11, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32257\"]]"); p = add_epsg_def (filter, first, last, 32258, "epsg", 32258, "WGS 72 / UTM zone 58N"); add_proj4text (p, 0, "+proj=utm +zone=58 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 58N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",165],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 11, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32258\"]]"); p = add_epsg_def (filter, first, last, 32259, "epsg", 32259, "WGS 72 / UTM zone 59N"); add_proj4text (p, 0, "+proj=utm +zone=59 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 59N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",171],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 11, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32259\"]]"); p = add_epsg_def (filter, first, last, 32260, "epsg", 32260, "WGS 72 / UTM zone 60N"); add_proj4text (p, 0, "+proj=utm +zone=60 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 60N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",177],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 11, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "32260\"]]"); p = add_epsg_def (filter, first, last, 32301, "epsg", 32301, "WGS 72 / UTM zone 1S"); add_proj4text (p, 0, "+proj=utm +zone=1 +south +ellps=WGS72 +towgs84=0,0,4.5,0"); add_proj4text (p, 1, ",0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 1S\",GEOGCS[\"WGS 72\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 5, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, "177],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); add_srs_wkt (p, 10, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 11, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"32301\"]]"); p = add_epsg_def (filter, first, last, 32302, "epsg", 32302, "WGS 72 / UTM zone 2S"); add_proj4text (p, 0, "+proj=utm +zone=2 +south +ellps=WGS72 +towgs84=0,0,4.5,0"); add_proj4text (p, 1, ",0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 2S\",GEOGCS[\"WGS 72\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 5, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, "171],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); add_srs_wkt (p, 10, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 11, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"32302\"]]"); p = add_epsg_def (filter, first, last, 32303, "epsg", 32303, "WGS 72 / UTM zone 3S"); add_proj4text (p, 0, "+proj=utm +zone=3 +south +ellps=WGS72 +towgs84=0,0,4.5,0"); add_proj4text (p, 1, ",0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 3S\",GEOGCS[\"WGS 72\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 5, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, "165],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); add_srs_wkt (p, 10, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 11, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"32303\"]]"); p = add_epsg_def (filter, first, last, 32304, "epsg", 32304, "WGS 72 / UTM zone 4S"); add_proj4text (p, 0, "+proj=utm +zone=4 +south +ellps=WGS72 +towgs84=0,0,4.5,0"); add_proj4text (p, 1, ",0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 4S\",GEOGCS[\"WGS 72\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 5, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, "159],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); add_srs_wkt (p, 10, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 11, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"32304\"]]"); p = add_epsg_def (filter, first, last, 32305, "epsg", 32305, "WGS 72 / UTM zone 5S"); add_proj4text (p, 0, "+proj=utm +zone=5 +south +ellps=WGS72 +towgs84=0,0,4.5,0"); add_proj4text (p, 1, ",0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 5S\",GEOGCS[\"WGS 72\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 5, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, "153],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); add_srs_wkt (p, 10, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 11, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"32305\"]]"); p = add_epsg_def (filter, first, last, 32306, "epsg", 32306, "WGS 72 / UTM zone 6S"); add_proj4text (p, 0, "+proj=utm +zone=6 +south +ellps=WGS72 +towgs84=0,0,4.5,0"); add_proj4text (p, 1, ",0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 6S\",GEOGCS[\"WGS 72\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 5, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, "147],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); add_srs_wkt (p, 10, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 11, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"32306\"]]"); p = add_epsg_def (filter, first, last, 32307, "epsg", 32307, "WGS 72 / UTM zone 7S"); add_proj4text (p, 0, "+proj=utm +zone=7 +south +ellps=WGS72 +towgs84=0,0,4.5,0"); add_proj4text (p, 1, ",0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 7S\",GEOGCS[\"WGS 72\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 5, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, "141],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); add_srs_wkt (p, 10, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 11, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"32307\"]]"); p = add_epsg_def (filter, first, last, 32308, "epsg", 32308, "WGS 72 / UTM zone 8S"); add_proj4text (p, 0, "+proj=utm +zone=8 +south +ellps=WGS72 +towgs84=0,0,4.5,0"); add_proj4text (p, 1, ",0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 8S\",GEOGCS[\"WGS 72\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 5, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, "135],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); add_srs_wkt (p, 10, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 11, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"32308\"]]"); p = add_epsg_def (filter, first, last, 32309, "epsg", 32309, "WGS 72 / UTM zone 9S"); add_proj4text (p, 0, "+proj=utm +zone=9 +south +ellps=WGS72 +towgs84=0,0,4.5,0"); add_proj4text (p, 1, ",0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 9S\",GEOGCS[\"WGS 72\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 5, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, "129],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); add_srs_wkt (p, 10, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 11, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"32309\"]]"); p = add_epsg_def (filter, first, last, 32310, "epsg", 32310, "WGS 72 / UTM zone 10S"); add_proj4text (p, 0, "+proj=utm +zone=10 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 10S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-123],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa"); add_srs_wkt (p, 9, "lse_easting\",500000],PARAMETER[\"false_northing\",10000"); add_srs_wkt (p, 10, "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS"); add_srs_wkt (p, 11, "[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"32310\"]]"); p = add_epsg_def (filter, first, last, 32311, "epsg", 32311, "WGS 72 / UTM zone 11S"); add_proj4text (p, 0, "+proj=utm +zone=11 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 11S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-117],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa"); add_srs_wkt (p, 9, "lse_easting\",500000],PARAMETER[\"false_northing\",10000"); add_srs_wkt (p, 10, "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS"); add_srs_wkt (p, 11, "[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"32311\"]]"); p = add_epsg_def (filter, first, last, 32312, "epsg", 32312, "WGS 72 / UTM zone 12S"); add_proj4text (p, 0, "+proj=utm +zone=12 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 12S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-111],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa"); add_srs_wkt (p, 9, "lse_easting\",500000],PARAMETER[\"false_northing\",10000"); add_srs_wkt (p, 10, "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS"); add_srs_wkt (p, 11, "[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"32312\"]]"); p = add_epsg_def (filter, first, last, 32313, "epsg", 32313, "WGS 72 / UTM zone 13S"); add_proj4text (p, 0, "+proj=utm +zone=13 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 13S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-105],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa"); add_srs_wkt (p, 9, "lse_easting\",500000],PARAMETER[\"false_northing\",10000"); add_srs_wkt (p, 10, "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS"); add_srs_wkt (p, 11, "[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"32313\"]]"); p = add_epsg_def (filter, first, last, 32314, "epsg", 32314, "WGS 72 / UTM zone 14S"); add_proj4text (p, 0, "+proj=utm +zone=14 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 14S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-99],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",100000"); add_srs_wkt (p, 10, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 11, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"32314\"]]"); p = add_epsg_def (filter, first, last, 32315, "epsg", 32315, "WGS 72 / UTM zone 15S"); add_proj4text (p, 0, "+proj=utm +zone=15 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 15S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-93],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",100000"); add_srs_wkt (p, 10, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 11, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"32315\"]]"); p = add_epsg_def (filter, first, last, 32316, "epsg", 32316, "WGS 72 / UTM zone 16S"); add_proj4text (p, 0, "+proj=utm +zone=16 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 16S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-87],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",100000"); add_srs_wkt (p, 10, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 11, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"32316\"]]"); p = add_epsg_def (filter, first, last, 32317, "epsg", 32317, "WGS 72 / UTM zone 17S"); add_proj4text (p, 0, "+proj=utm +zone=17 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 17S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-81],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",100000"); add_srs_wkt (p, 10, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 11, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"32317\"]]"); p = add_epsg_def (filter, first, last, 32318, "epsg", 32318, "WGS 72 / UTM zone 18S"); add_proj4text (p, 0, "+proj=utm +zone=18 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 18S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-75],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",100000"); add_srs_wkt (p, 10, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 11, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"32318\"]]"); p = add_epsg_def (filter, first, last, 32319, "epsg", 32319, "WGS 72 / UTM zone 19S"); add_proj4text (p, 0, "+proj=utm +zone=19 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 19S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-69],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",100000"); add_srs_wkt (p, 10, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 11, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"32319\"]]"); p = add_epsg_def (filter, first, last, 32320, "epsg", 32320, "WGS 72 / UTM zone 20S"); add_proj4text (p, 0, "+proj=utm +zone=20 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 20S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-63],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",100000"); add_srs_wkt (p, 10, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 11, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"32320\"]]"); p = add_epsg_def (filter, first, last, 32321, "epsg", 32321, "WGS 72 / UTM zone 21S"); add_proj4text (p, 0, "+proj=utm +zone=21 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 21S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-57],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",100000"); add_srs_wkt (p, 10, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 11, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"32321\"]]"); p = add_epsg_def (filter, first, last, 32322, "epsg", 32322, "WGS 72 / UTM zone 22S"); add_proj4text (p, 0, "+proj=utm +zone=22 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 22S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-51],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",100000"); add_srs_wkt (p, 10, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 11, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"32322\"]]"); p = add_epsg_def (filter, first, last, 32323, "epsg", 32323, "WGS 72 / UTM zone 23S"); add_proj4text (p, 0, "+proj=utm +zone=23 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 23S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-45],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",100000"); add_srs_wkt (p, 10, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 11, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"32323\"]]"); p = add_epsg_def (filter, first, last, 32324, "epsg", 32324, "WGS 72 / UTM zone 24S"); add_proj4text (p, 0, "+proj=utm +zone=24 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 24S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-39],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",100000"); add_srs_wkt (p, 10, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 11, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"32324\"]]"); p = add_epsg_def (filter, first, last, 32325, "epsg", 32325, "WGS 72 / UTM zone 25S"); add_proj4text (p, 0, "+proj=utm +zone=25 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 25S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-33],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",100000"); add_srs_wkt (p, 10, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 11, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"32325\"]]"); p = add_epsg_def (filter, first, last, 32326, "epsg", 32326, "WGS 72 / UTM zone 26S"); add_proj4text (p, 0, "+proj=utm +zone=26 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 26S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-27],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",100000"); add_srs_wkt (p, 10, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 11, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"32326\"]]"); p = add_epsg_def (filter, first, last, 32327, "epsg", 32327, "WGS 72 / UTM zone 27S"); add_proj4text (p, 0, "+proj=utm +zone=27 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 27S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-21],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",100000"); add_srs_wkt (p, 10, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 11, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"32327\"]]"); p = add_epsg_def (filter, first, last, 32328, "epsg", 32328, "WGS 72 / UTM zone 28S"); add_proj4text (p, 0, "+proj=utm +zone=28 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 28S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-15],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",100000"); add_srs_wkt (p, 10, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 11, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"32328\"]]"); p = add_epsg_def (filter, first, last, 32329, "epsg", 32329, "WGS 72 / UTM zone 29S"); add_proj4text (p, 0, "+proj=utm +zone=29 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 29S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-9],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); add_srs_wkt (p, 10, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 11, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"32329\"]]"); p = add_epsg_def (filter, first, last, 32330, "epsg", 32330, "WGS 72 / UTM zone 30S"); add_proj4text (p, 0, "+proj=utm +zone=30 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 30S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-3],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); add_srs_wkt (p, 10, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 11, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"32330\"]]"); p = add_epsg_def (filter, first, last, 32331, "epsg", 32331, "WGS 72 / UTM zone 31S"); add_proj4text (p, 0, "+proj=utm +zone=31 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 31S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",3],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false"); add_srs_wkt (p, 9, "_easting\",500000],PARAMETER[\"false_northing\",10000000"); add_srs_wkt (p, 10, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 11, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"32331\"]]"); p = add_epsg_def (filter, first, last, 32332, "epsg", 32332, "WGS 72 / UTM zone 32S"); add_proj4text (p, 0, "+proj=utm +zone=32 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 32S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",9],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false"); add_srs_wkt (p, 9, "_easting\",500000],PARAMETER[\"false_northing\",10000000"); add_srs_wkt (p, 10, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 11, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"32332\"]]"); p = add_epsg_def (filter, first, last, 32333, "epsg", 32333, "WGS 72 / UTM zone 33S"); add_proj4text (p, 0, "+proj=utm +zone=33 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 33S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",15],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); add_srs_wkt (p, 10, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 11, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"32333\"]]"); p = add_epsg_def (filter, first, last, 32334, "epsg", 32334, "WGS 72 / UTM zone 34S"); add_proj4text (p, 0, "+proj=utm +zone=34 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 34S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",21],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); add_srs_wkt (p, 10, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 11, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"32334\"]]"); p = add_epsg_def (filter, first, last, 32335, "epsg", 32335, "WGS 72 / UTM zone 35S"); add_proj4text (p, 0, "+proj=utm +zone=35 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 35S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",27],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); add_srs_wkt (p, 10, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 11, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"32335\"]]"); p = add_epsg_def (filter, first, last, 32336, "epsg", 32336, "WGS 72 / UTM zone 36S"); add_proj4text (p, 0, "+proj=utm +zone=36 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 36S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",33],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); add_srs_wkt (p, 10, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 11, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"32336\"]]"); p = add_epsg_def (filter, first, last, 32337, "epsg", 32337, "WGS 72 / UTM zone 37S"); add_proj4text (p, 0, "+proj=utm +zone=37 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 37S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",39],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); add_srs_wkt (p, 10, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 11, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"32337\"]]"); p = add_epsg_def (filter, first, last, 32338, "epsg", 32338, "WGS 72 / UTM zone 38S"); add_proj4text (p, 0, "+proj=utm +zone=38 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 38S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",45],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); add_srs_wkt (p, 10, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 11, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"32338\"]]"); p = add_epsg_def (filter, first, last, 32339, "epsg", 32339, "WGS 72 / UTM zone 39S"); add_proj4text (p, 0, "+proj=utm +zone=39 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 39S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",51],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); add_srs_wkt (p, 10, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 11, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"32339\"]]"); p = add_epsg_def (filter, first, last, 32340, "epsg", 32340, "WGS 72 / UTM zone 40S"); add_proj4text (p, 0, "+proj=utm +zone=40 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 40S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",57],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); add_srs_wkt (p, 10, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 11, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"32340\"]]"); p = add_epsg_def (filter, first, last, 32341, "epsg", 32341, "WGS 72 / UTM zone 41S"); add_proj4text (p, 0, "+proj=utm +zone=41 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 41S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",63],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); add_srs_wkt (p, 10, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 11, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"32341\"]]"); p = add_epsg_def (filter, first, last, 32342, "epsg", 32342, "WGS 72 / UTM zone 42S"); add_proj4text (p, 0, "+proj=utm +zone=42 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 42S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",69],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); add_srs_wkt (p, 10, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 11, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"32342\"]]"); p = add_epsg_def (filter, first, last, 32343, "epsg", 32343, "WGS 72 / UTM zone 43S"); add_proj4text (p, 0, "+proj=utm +zone=43 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 43S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",75],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); add_srs_wkt (p, 10, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 11, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"32343\"]]"); p = add_epsg_def (filter, first, last, 32344, "epsg", 32344, "WGS 72 / UTM zone 44S"); add_proj4text (p, 0, "+proj=utm +zone=44 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 44S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",81],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); add_srs_wkt (p, 10, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 11, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"32344\"]]"); p = add_epsg_def (filter, first, last, 32345, "epsg", 32345, "WGS 72 / UTM zone 45S"); add_proj4text (p, 0, "+proj=utm +zone=45 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 45S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",87],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); add_srs_wkt (p, 10, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 11, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"32345\"]]"); p = add_epsg_def (filter, first, last, 32346, "epsg", 32346, "WGS 72 / UTM zone 46S"); add_proj4text (p, 0, "+proj=utm +zone=46 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 46S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",93],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); add_srs_wkt (p, 10, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 11, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"32346\"]]"); p = add_epsg_def (filter, first, last, 32347, "epsg", 32347, "WGS 72 / UTM zone 47S"); add_proj4text (p, 0, "+proj=utm +zone=47 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 47S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",99],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); add_srs_wkt (p, 10, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 11, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"32347\"]]"); p = add_epsg_def (filter, first, last, 32348, "epsg", 32348, "WGS 72 / UTM zone 48S"); add_proj4text (p, 0, "+proj=utm +zone=48 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 48S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",105],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",100000"); add_srs_wkt (p, 10, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 11, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"32348\"]]"); p = add_epsg_def (filter, first, last, 32349, "epsg", 32349, "WGS 72 / UTM zone 49S"); add_proj4text (p, 0, "+proj=utm +zone=49 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 49S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",111],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",100000"); add_srs_wkt (p, 10, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 11, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"32349\"]]"); p = add_epsg_def (filter, first, last, 32350, "epsg", 32350, "WGS 72 / UTM zone 50S"); add_proj4text (p, 0, "+proj=utm +zone=50 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 50S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",117],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",100000"); add_srs_wkt (p, 10, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 11, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"32350\"]]"); p = add_epsg_def (filter, first, last, 32351, "epsg", 32351, "WGS 72 / UTM zone 51S"); add_proj4text (p, 0, "+proj=utm +zone=51 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 51S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",123],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",100000"); add_srs_wkt (p, 10, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 11, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"32351\"]]"); p = add_epsg_def (filter, first, last, 32352, "epsg", 32352, "WGS 72 / UTM zone 52S"); add_proj4text (p, 0, "+proj=utm +zone=52 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 52S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",129],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",100000"); add_srs_wkt (p, 10, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 11, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"32352\"]]"); p = add_epsg_def (filter, first, last, 32353, "epsg", 32353, "WGS 72 / UTM zone 53S"); add_proj4text (p, 0, "+proj=utm +zone=53 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 53S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",135],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",100000"); add_srs_wkt (p, 10, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 11, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"32353\"]]"); p = add_epsg_def (filter, first, last, 32354, "epsg", 32354, "WGS 72 / UTM zone 54S"); add_proj4text (p, 0, "+proj=utm +zone=54 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 54S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",141],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",100000"); add_srs_wkt (p, 10, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 11, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"32354\"]]"); p = add_epsg_def (filter, first, last, 32355, "epsg", 32355, "WGS 72 / UTM zone 55S"); add_proj4text (p, 0, "+proj=utm +zone=55 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 55S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",147],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",100000"); add_srs_wkt (p, 10, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 11, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"32355\"]]"); p = add_epsg_def (filter, first, last, 32356, "epsg", 32356, "WGS 72 / UTM zone 56S"); add_proj4text (p, 0, "+proj=utm +zone=56 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 56S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",153],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",100000"); add_srs_wkt (p, 10, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 11, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"32356\"]]"); p = add_epsg_def (filter, first, last, 32357, "epsg", 32357, "WGS 72 / UTM zone 57S"); add_proj4text (p, 0, "+proj=utm +zone=57 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 57S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",159],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",100000"); add_srs_wkt (p, 10, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 11, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"32357\"]]"); p = add_epsg_def (filter, first, last, 32358, "epsg", 32358, "WGS 72 / UTM zone 58S"); add_proj4text (p, 0, "+proj=utm +zone=58 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 58S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",165],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",100000"); add_srs_wkt (p, 10, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 11, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"32358\"]]"); p = add_epsg_def (filter, first, last, 32359, "epsg", 32359, "WGS 72 / UTM zone 59S"); add_proj4text (p, 0, "+proj=utm +zone=59 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 59S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",171],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",100000"); add_srs_wkt (p, 10, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 11, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"32359\"]]"); p = add_epsg_def (filter, first, last, 32360, "epsg", 32360, "WGS 72 / UTM zone 60S"); add_proj4text (p, 0, "+proj=utm +zone=60 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 60S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",177],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",100000"); add_srs_wkt (p, 10, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 11, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"32360\"]]"); p = add_epsg_def (filter, first, last, 32401, "epsg", 32401, "WGS 72BE / UTM zone 1N"); add_proj4text (p, 0, "+proj=utm +zone=1 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.81"); add_proj4text (p, 1, "4,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 1N\",GEOGCS[\"WGS 72BE\",DA"); add_srs_wkt (p, 1, "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-177],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 11, "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 12, "ng\",NORTH],AUTHORITY[\"EPSG\",\"32401\"]]"); p = add_epsg_def (filter, first, last, 32402, "epsg", 32402, "WGS 72BE / UTM zone 2N"); add_proj4text (p, 0, "+proj=utm +zone=2 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.81"); add_proj4text (p, 1, "4,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 2N\",GEOGCS[\"WGS 72BE\",DA"); add_srs_wkt (p, 1, "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-171],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 11, "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 12, "ng\",NORTH],AUTHORITY[\"EPSG\",\"32402\"]]"); p = add_epsg_def (filter, first, last, 32403, "epsg", 32403, "WGS 72BE / UTM zone 3N"); add_proj4text (p, 0, "+proj=utm +zone=3 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.81"); add_proj4text (p, 1, "4,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 3N\",GEOGCS[\"WGS 72BE\",DA"); add_srs_wkt (p, 1, "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-165],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 11, "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 12, "ng\",NORTH],AUTHORITY[\"EPSG\",\"32403\"]]"); p = add_epsg_def (filter, first, last, 32404, "epsg", 32404, "WGS 72BE / UTM zone 4N"); add_proj4text (p, 0, "+proj=utm +zone=4 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.81"); add_proj4text (p, 1, "4,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 4N\",GEOGCS[\"WGS 72BE\",DA"); add_srs_wkt (p, 1, "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-159],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 11, "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 12, "ng\",NORTH],AUTHORITY[\"EPSG\",\"32404\"]]"); p = add_epsg_def (filter, first, last, 32405, "epsg", 32405, "WGS 72BE / UTM zone 5N"); add_proj4text (p, 0, "+proj=utm +zone=5 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.81"); add_proj4text (p, 1, "4,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 5N\",GEOGCS[\"WGS 72BE\",DA"); add_srs_wkt (p, 1, "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-153],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 11, "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 12, "ng\",NORTH],AUTHORITY[\"EPSG\",\"32405\"]]"); p = add_epsg_def (filter, first, last, 32406, "epsg", 32406, "WGS 72BE / UTM zone 6N"); add_proj4text (p, 0, "+proj=utm +zone=6 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.81"); add_proj4text (p, 1, "4,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 6N\",GEOGCS[\"WGS 72BE\",DA"); add_srs_wkt (p, 1, "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-147],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 11, "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 12, "ng\",NORTH],AUTHORITY[\"EPSG\",\"32406\"]]"); p = add_epsg_def (filter, first, last, 32407, "epsg", 32407, "WGS 72BE / UTM zone 7N"); add_proj4text (p, 0, "+proj=utm +zone=7 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.81"); add_proj4text (p, 1, "4,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 7N\",GEOGCS[\"WGS 72BE\",DA"); add_srs_wkt (p, 1, "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-141],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 11, "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 12, "ng\",NORTH],AUTHORITY[\"EPSG\",\"32407\"]]"); p = add_epsg_def (filter, first, last, 32408, "epsg", 32408, "WGS 72BE / UTM zone 8N"); add_proj4text (p, 0, "+proj=utm +zone=8 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.81"); add_proj4text (p, 1, "4,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 8N\",GEOGCS[\"WGS 72BE\",DA"); add_srs_wkt (p, 1, "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-135],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 11, "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 12, "ng\",NORTH],AUTHORITY[\"EPSG\",\"32408\"]]"); p = add_epsg_def (filter, first, last, 32409, "epsg", 32409, "WGS 72BE / UTM zone 9N"); add_proj4text (p, 0, "+proj=utm +zone=9 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.81"); add_proj4text (p, 1, "4,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 9N\",GEOGCS[\"WGS 72BE\",DA"); add_srs_wkt (p, 1, "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-129],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 11, "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 12, "ng\",NORTH],AUTHORITY[\"EPSG\",\"32409\"]]"); p = add_epsg_def (filter, first, last, 32410, "epsg", 32410, "WGS 72BE / UTM zone 10N"); add_proj4text (p, 0, "+proj=utm +zone=10 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 10N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-123],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 11, "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 12, "ng\",NORTH],AUTHORITY[\"EPSG\",\"32410\"]]"); p = add_epsg_def (filter, first, last, 32411, "epsg", 32411, "WGS 72BE / UTM zone 11N"); add_proj4text (p, 0, "+proj=utm +zone=11 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 11N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-117],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 11, "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 12, "ng\",NORTH],AUTHORITY[\"EPSG\",\"32411\"]]"); p = add_epsg_def (filter, first, last, 32412, "epsg", 32412, "WGS 72BE / UTM zone 12N"); add_proj4text (p, 0, "+proj=utm +zone=12 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 12N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-111],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 11, "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 12, "ng\",NORTH],AUTHORITY[\"EPSG\",\"32412\"]]"); p = add_epsg_def (filter, first, last, 32413, "epsg", 32413, "WGS 72BE / UTM zone 13N"); add_proj4text (p, 0, "+proj=utm +zone=13 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 13N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-105],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 11, "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 12, "ng\",NORTH],AUTHORITY[\"EPSG\",\"32413\"]]"); p = add_epsg_def (filter, first, last, 32414, "epsg", 32414, "WGS 72BE / UTM zone 14N"); add_proj4text (p, 0, "+proj=utm +zone=14 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 14N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-99],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32414\"]]"); p = add_epsg_def (filter, first, last, 32415, "epsg", 32415, "WGS 72BE / UTM zone 15N"); add_proj4text (p, 0, "+proj=utm +zone=15 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 15N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-93],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32415\"]]"); p = add_epsg_def (filter, first, last, 32416, "epsg", 32416, "WGS 72BE / UTM zone 16N"); add_proj4text (p, 0, "+proj=utm +zone=16 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 16N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-87],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32416\"]]"); p = add_epsg_def (filter, first, last, 32417, "epsg", 32417, "WGS 72BE / UTM zone 17N"); add_proj4text (p, 0, "+proj=utm +zone=17 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 17N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-81],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32417\"]]"); } #endif /* full EPSG initialization enabled/disabled */ libspatialite-4.1.1/src/srsinit/epsg_inlined_27.c0000664000175000017500000045722212163502133016674 00000000000000/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_27 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def (filter, first, last, 20021, "epsg", 20021, "Pulkovo 1995 / Gauss-Kruger zone 21"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=21500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); add_proj4text (p, 2, "-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 21\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",123],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",21"); add_srs_wkt (p, 10, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "Y\",EAST],AUTHORITY[\"EPSG\",\"20021\"]]"); p = add_epsg_def (filter, first, last, 20022, "epsg", 20022, "Pulkovo 1995 / Gauss-Kruger zone 22"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=22500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); add_proj4text (p, 2, "-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 22\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",129],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",22"); add_srs_wkt (p, 10, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "Y\",EAST],AUTHORITY[\"EPSG\",\"20022\"]]"); p = add_epsg_def (filter, first, last, 20023, "epsg", 20023, "Pulkovo 1995 / Gauss-Kruger zone 23"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=23500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); add_proj4text (p, 2, "-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 23\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",135],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",23"); add_srs_wkt (p, 10, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "Y\",EAST],AUTHORITY[\"EPSG\",\"20023\"]]"); p = add_epsg_def (filter, first, last, 20024, "epsg", 20024, "Pulkovo 1995 / Gauss-Kruger zone 24"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=24500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); add_proj4text (p, 2, "-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 24\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",141],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",24"); add_srs_wkt (p, 10, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "Y\",EAST],AUTHORITY[\"EPSG\",\"20024\"]]"); p = add_epsg_def (filter, first, last, 20025, "epsg", 20025, "Pulkovo 1995 / Gauss-Kruger zone 25"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=25500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); add_proj4text (p, 2, "-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 25\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",147],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",25"); add_srs_wkt (p, 10, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "Y\",EAST],AUTHORITY[\"EPSG\",\"20025\"]]"); p = add_epsg_def (filter, first, last, 20026, "epsg", 20026, "Pulkovo 1995 / Gauss-Kruger zone 26"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=26500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); add_proj4text (p, 2, "-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 26\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",153],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",26"); add_srs_wkt (p, 10, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "Y\",EAST],AUTHORITY[\"EPSG\",\"20026\"]]"); p = add_epsg_def (filter, first, last, 20027, "epsg", 20027, "Pulkovo 1995 / Gauss-Kruger zone 27"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=27500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); add_proj4text (p, 2, "-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 27\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",159],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",27"); add_srs_wkt (p, 10, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "Y\",EAST],AUTHORITY[\"EPSG\",\"20027\"]]"); p = add_epsg_def (filter, first, last, 20028, "epsg", 20028, "Pulkovo 1995 / Gauss-Kruger zone 28"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=28500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); add_proj4text (p, 2, "-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 28\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",165],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",28"); add_srs_wkt (p, 10, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "Y\",EAST],AUTHORITY[\"EPSG\",\"20028\"]]"); p = add_epsg_def (filter, first, last, 20029, "epsg", 20029, "Pulkovo 1995 / Gauss-Kruger zone 29"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=29500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); add_proj4text (p, 2, "-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 29\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",171],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",29"); add_srs_wkt (p, 10, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "Y\",EAST],AUTHORITY[\"EPSG\",\"20029\"]]"); p = add_epsg_def (filter, first, last, 20030, "epsg", 20030, "Pulkovo 1995 / Gauss-Kruger zone 30"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=30500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); add_proj4text (p, 2, "-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 30\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",177],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",30"); add_srs_wkt (p, 10, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "Y\",EAST],AUTHORITY[\"EPSG\",\"20030\"]]"); p = add_epsg_def (filter, first, last, 20031, "epsg", 20031, "Pulkovo 1995 / Gauss-Kruger zone 31"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=31500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13"); add_proj4text (p, 2, ",-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 31\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",-177],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",3"); add_srs_wkt (p, 10, "1500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "Y\",EAST],AUTHORITY[\"EPSG\",\"20031\"]]"); p = add_epsg_def (filter, first, last, 20032, "epsg", 20032, "Pulkovo 1995 / Gauss-Kruger zone 32"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=32500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13"); add_proj4text (p, 2, ",-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 32\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",-171],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",3"); add_srs_wkt (p, 10, "2500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "Y\",EAST],AUTHORITY[\"EPSG\",\"20032\"]]"); p = add_epsg_def (filter, first, last, 20064, "epsg", 20064, "Pulkovo 1995 / Gauss-Kruger 4N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 4N (deprecated)\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",21"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20064\"]]"); p = add_epsg_def (filter, first, last, 20065, "epsg", 20065, "Pulkovo 1995 / Gauss-Kruger 5N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 5N (deprecated)\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",27"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20065\"]]"); p = add_epsg_def (filter, first, last, 20066, "epsg", 20066, "Pulkovo 1995 / Gauss-Kruger 6N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 6N (deprecated)\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",33"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20066\"]]"); p = add_epsg_def (filter, first, last, 20067, "epsg", 20067, "Pulkovo 1995 / Gauss-Kruger 7N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 7N (deprecated)\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",39"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20067\"]]"); p = add_epsg_def (filter, first, last, 20068, "epsg", 20068, "Pulkovo 1995 / Gauss-Kruger 8N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 8N (deprecated)\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",45"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20068\"]]"); p = add_epsg_def (filter, first, last, 20069, "epsg", 20069, "Pulkovo 1995 / Gauss-Kruger 9N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 9N (deprecated)\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",51"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20069\"]]"); p = add_epsg_def (filter, first, last, 20070, "epsg", 20070, "Pulkovo 1995 / Gauss-Kruger 10N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 10N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",5"); add_srs_wkt (p, 9, "7],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20070\"]]"); p = add_epsg_def (filter, first, last, 20071, "epsg", 20071, "Pulkovo 1995 / Gauss-Kruger 11N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 11N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",6"); add_srs_wkt (p, 9, "3],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20071\"]]"); p = add_epsg_def (filter, first, last, 20072, "epsg", 20072, "Pulkovo 1995 / Gauss-Kruger 12N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 12N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",6"); add_srs_wkt (p, 9, "9],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20072\"]]"); p = add_epsg_def (filter, first, last, 20073, "epsg", 20073, "Pulkovo 1995 / Gauss-Kruger 13N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 13N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",7"); add_srs_wkt (p, 9, "5],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20073\"]]"); p = add_epsg_def (filter, first, last, 20074, "epsg", 20074, "Pulkovo 1995 / Gauss-Kruger 14N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 14N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",8"); add_srs_wkt (p, 9, "1],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20074\"]]"); p = add_epsg_def (filter, first, last, 20075, "epsg", 20075, "Pulkovo 1995 / Gauss-Kruger 15N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 15N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",8"); add_srs_wkt (p, 9, "7],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20075\"]]"); p = add_epsg_def (filter, first, last, 20076, "epsg", 20076, "Pulkovo 1995 / Gauss-Kruger 16N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 16N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",9"); add_srs_wkt (p, 9, "3],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20076\"]]"); p = add_epsg_def (filter, first, last, 20077, "epsg", 20077, "Pulkovo 1995 / Gauss-Kruger 17N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 17N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",9"); add_srs_wkt (p, 9, "9],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20077\"]]"); p = add_epsg_def (filter, first, last, 20078, "epsg", 20078, "Pulkovo 1995 / Gauss-Kruger 18N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 18N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "05],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20078\"]]"); p = add_epsg_def (filter, first, last, 20079, "epsg", 20079, "Pulkovo 1995 / Gauss-Kruger 19N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 19N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "11],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20079\"]]"); p = add_epsg_def (filter, first, last, 20080, "epsg", 20080, "Pulkovo 1995 / Gauss-Kruger 20N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 20N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "17],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20080\"]]"); p = add_epsg_def (filter, first, last, 20081, "epsg", 20081, "Pulkovo 1995 / Gauss-Kruger 21N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 21N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "23],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20081\"]]"); p = add_epsg_def (filter, first, last, 20082, "epsg", 20082, "Pulkovo 1995 / Gauss-Kruger 22N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 22N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "29],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20082\"]]"); p = add_epsg_def (filter, first, last, 20083, "epsg", 20083, "Pulkovo 1995 / Gauss-Kruger 23N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 23N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "35],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20083\"]]"); p = add_epsg_def (filter, first, last, 20084, "epsg", 20084, "Pulkovo 1995 / Gauss-Kruger 24N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 24N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "41],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20084\"]]"); p = add_epsg_def (filter, first, last, 20085, "epsg", 20085, "Pulkovo 1995 / Gauss-Kruger 25N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 25N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "47],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20085\"]]"); p = add_epsg_def (filter, first, last, 20086, "epsg", 20086, "Pulkovo 1995 / Gauss-Kruger 26N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 26N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "53],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20086\"]]"); p = add_epsg_def (filter, first, last, 20087, "epsg", 20087, "Pulkovo 1995 / Gauss-Kruger 27N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 27N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "59],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20087\"]]"); p = add_epsg_def (filter, first, last, 20088, "epsg", 20088, "Pulkovo 1995 / Gauss-Kruger 28N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 28N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "65],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20088\"]]"); p = add_epsg_def (filter, first, last, 20089, "epsg", 20089, "Pulkovo 1995 / Gauss-Kruger 29N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 29N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "71],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20089\"]]"); p = add_epsg_def (filter, first, last, 20090, "epsg", 20090, "Pulkovo 1995 / Gauss-Kruger 30N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 30N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "77],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20090\"]]"); p = add_epsg_def (filter, first, last, 20091, "epsg", 20091, "Pulkovo 1995 / Gauss-Kruger 31N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); add_proj4text (p, 2, "0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 31N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "177],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20091\"]]"); p = add_epsg_def (filter, first, last, 20092, "epsg", 20092, "Pulkovo 1995 / Gauss-Kruger 32N (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); add_proj4text (p, 2, "0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 32N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "171],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20092\"]]"); p = add_epsg_def (filter, first, last, 20135, "epsg", 20135, "Adindan / UTM zone 35N"); add_proj4text (p, 0, "+proj=utm +zone=35 +ellps=clrk80 +towgs84=-166,-15,204,0"); add_proj4text (p, 1, ",0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Adindan / UTM zone 35N\",GEOGCS[\"Adindan\",DAT"); add_srs_wkt (p, 1, "UM[\"Adindan\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.14"); add_srs_wkt (p, 2, "5,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-166,-15"); add_srs_wkt (p, 3, ",204,0,0,0,0],AUTHORITY[\"EPSG\",\"6201\"]],PRIMEM[\"Gre"); add_srs_wkt (p, 4, "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4201\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 8, "ral_meridian\",27],PARAMETER[\"scale_factor\",0.9996],PA"); add_srs_wkt (p, 9, "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 10, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 11, ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"20135\"]]"); p = add_epsg_def (filter, first, last, 20136, "epsg", 20136, "Adindan / UTM zone 36N"); add_proj4text (p, 0, "+proj=utm +zone=36 +ellps=clrk80 +towgs84=-166,-15,204,0"); add_proj4text (p, 1, ",0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Adindan / UTM zone 36N\",GEOGCS[\"Adindan\",DAT"); add_srs_wkt (p, 1, "UM[\"Adindan\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.14"); add_srs_wkt (p, 2, "5,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-166,-15"); add_srs_wkt (p, 3, ",204,0,0,0,0],AUTHORITY[\"EPSG\",\"6201\"]],PRIMEM[\"Gre"); add_srs_wkt (p, 4, "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4201\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 8, "ral_meridian\",33],PARAMETER[\"scale_factor\",0.9996],PA"); add_srs_wkt (p, 9, "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 10, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 11, ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"20136\"]]"); p = add_epsg_def (filter, first, last, 20137, "epsg", 20137, "Adindan / UTM zone 37N"); add_proj4text (p, 0, "+proj=utm +zone=37 +ellps=clrk80 +towgs84=-166,-15,204,0"); add_proj4text (p, 1, ",0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Adindan / UTM zone 37N\",GEOGCS[\"Adindan\",DAT"); add_srs_wkt (p, 1, "UM[\"Adindan\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.14"); add_srs_wkt (p, 2, "5,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-166,-15"); add_srs_wkt (p, 3, ",204,0,0,0,0],AUTHORITY[\"EPSG\",\"6201\"]],PRIMEM[\"Gre"); add_srs_wkt (p, 4, "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4201\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 8, "ral_meridian\",39],PARAMETER[\"scale_factor\",0.9996],PA"); add_srs_wkt (p, 9, "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 10, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 11, ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"20137\"]]"); p = add_epsg_def (filter, first, last, 20138, "epsg", 20138, "Adindan / UTM zone 38N"); add_proj4text (p, 0, "+proj=utm +zone=38 +ellps=clrk80 +towgs84=-166,-15,204,0"); add_proj4text (p, 1, ",0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Adindan / UTM zone 38N\",GEOGCS[\"Adindan\",DAT"); add_srs_wkt (p, 1, "UM[\"Adindan\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.14"); add_srs_wkt (p, 2, "5,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-166,-15"); add_srs_wkt (p, 3, ",204,0,0,0,0],AUTHORITY[\"EPSG\",\"6201\"]],PRIMEM[\"Gre"); add_srs_wkt (p, 4, "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4201\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 8, "ral_meridian\",45],PARAMETER[\"scale_factor\",0.9996],PA"); add_srs_wkt (p, 9, "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 10, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 11, ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"20138\"]]"); p = add_epsg_def (filter, first, last, 20248, "epsg", 20248, "AGD66 / AMG zone 48"); add_proj4text (p, 0, "+proj=utm +zone=48 +south +ellps=aust_SA +towgs84=-117.8"); add_proj4text (p, 1, "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"AGD66 / AMG zone 48\",GEOGCS[\"AGD66\",DATUM[\""); add_srs_wkt (p, 1, "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2"); add_srs_wkt (p, 4, "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 5, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 6, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 8, "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); add_srs_wkt (p, 9, "meridian\",105],PARAMETER[\"scale_factor\",0.9996],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 11, "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"20248\"]]"); p = add_epsg_def (filter, first, last, 20249, "epsg", 20249, "AGD66 / AMG zone 49"); add_proj4text (p, 0, "+proj=utm +zone=49 +south +ellps=aust_SA +towgs84=-117.8"); add_proj4text (p, 1, "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"AGD66 / AMG zone 49\",GEOGCS[\"AGD66\",DATUM[\""); add_srs_wkt (p, 1, "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2"); add_srs_wkt (p, 4, "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 5, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 6, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 8, "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); add_srs_wkt (p, 9, "meridian\",111],PARAMETER[\"scale_factor\",0.9996],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 11, "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"20249\"]]"); p = add_epsg_def (filter, first, last, 20250, "epsg", 20250, "AGD66 / AMG zone 50"); add_proj4text (p, 0, "+proj=utm +zone=50 +south +ellps=aust_SA +towgs84=-117.8"); add_proj4text (p, 1, "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"AGD66 / AMG zone 50\",GEOGCS[\"AGD66\",DATUM[\""); add_srs_wkt (p, 1, "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2"); add_srs_wkt (p, 4, "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 5, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 6, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 8, "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); add_srs_wkt (p, 9, "meridian\",117],PARAMETER[\"scale_factor\",0.9996],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 11, "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"20250\"]]"); p = add_epsg_def (filter, first, last, 20251, "epsg", 20251, "AGD66 / AMG zone 51"); add_proj4text (p, 0, "+proj=utm +zone=51 +south +ellps=aust_SA +towgs84=-117.8"); add_proj4text (p, 1, "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"AGD66 / AMG zone 51\",GEOGCS[\"AGD66\",DATUM[\""); add_srs_wkt (p, 1, "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2"); add_srs_wkt (p, 4, "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 5, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 6, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 8, "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); add_srs_wkt (p, 9, "meridian\",123],PARAMETER[\"scale_factor\",0.9996],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 11, "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"20251\"]]"); p = add_epsg_def (filter, first, last, 20252, "epsg", 20252, "AGD66 / AMG zone 52"); add_proj4text (p, 0, "+proj=utm +zone=52 +south +ellps=aust_SA +towgs84=-117.8"); add_proj4text (p, 1, "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"AGD66 / AMG zone 52\",GEOGCS[\"AGD66\",DATUM[\""); add_srs_wkt (p, 1, "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2"); add_srs_wkt (p, 4, "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 5, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 6, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 8, "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); add_srs_wkt (p, 9, "meridian\",129],PARAMETER[\"scale_factor\",0.9996],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 11, "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"20252\"]]"); p = add_epsg_def (filter, first, last, 20253, "epsg", 20253, "AGD66 / AMG zone 53"); add_proj4text (p, 0, "+proj=utm +zone=53 +south +ellps=aust_SA +towgs84=-117.8"); add_proj4text (p, 1, "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"AGD66 / AMG zone 53\",GEOGCS[\"AGD66\",DATUM[\""); add_srs_wkt (p, 1, "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2"); add_srs_wkt (p, 4, "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 5, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 6, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 8, "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); add_srs_wkt (p, 9, "meridian\",135],PARAMETER[\"scale_factor\",0.9996],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 11, "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"20253\"]]"); p = add_epsg_def (filter, first, last, 20254, "epsg", 20254, "AGD66 / AMG zone 54"); add_proj4text (p, 0, "+proj=utm +zone=54 +south +ellps=aust_SA +towgs84=-117.8"); add_proj4text (p, 1, "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"AGD66 / AMG zone 54\",GEOGCS[\"AGD66\",DATUM[\""); add_srs_wkt (p, 1, "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2"); add_srs_wkt (p, 4, "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 5, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 6, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 8, "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); add_srs_wkt (p, 9, "meridian\",141],PARAMETER[\"scale_factor\",0.9996],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 11, "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"20254\"]]"); p = add_epsg_def (filter, first, last, 20255, "epsg", 20255, "AGD66 / AMG zone 55"); add_proj4text (p, 0, "+proj=utm +zone=55 +south +ellps=aust_SA +towgs84=-117.8"); add_proj4text (p, 1, "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"AGD66 / AMG zone 55\",GEOGCS[\"AGD66\",DATUM[\""); add_srs_wkt (p, 1, "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2"); add_srs_wkt (p, 4, "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 5, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 6, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 8, "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); add_srs_wkt (p, 9, "meridian\",147],PARAMETER[\"scale_factor\",0.9996],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 11, "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"20255\"]]"); p = add_epsg_def (filter, first, last, 20256, "epsg", 20256, "AGD66 / AMG zone 56"); add_proj4text (p, 0, "+proj=utm +zone=56 +south +ellps=aust_SA +towgs84=-117.8"); add_proj4text (p, 1, "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"AGD66 / AMG zone 56\",GEOGCS[\"AGD66\",DATUM[\""); add_srs_wkt (p, 1, "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2"); add_srs_wkt (p, 4, "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 5, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 6, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 8, "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); add_srs_wkt (p, 9, "meridian\",153],PARAMETER[\"scale_factor\",0.9996],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 11, "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"20256\"]]"); p = add_epsg_def (filter, first, last, 20257, "epsg", 20257, "AGD66 / AMG zone 57"); add_proj4text (p, 0, "+proj=utm +zone=57 +south +ellps=aust_SA +towgs84=-117.8"); add_proj4text (p, 1, "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"AGD66 / AMG zone 57\",GEOGCS[\"AGD66\",DATUM[\""); add_srs_wkt (p, 1, "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2"); add_srs_wkt (p, 4, "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 5, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 6, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 8, "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); add_srs_wkt (p, 9, "meridian\",159],PARAMETER[\"scale_factor\",0.9996],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 11, "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"20257\"]]"); p = add_epsg_def (filter, first, last, 20258, "epsg", 20258, "AGD66 / AMG zone 58"); add_proj4text (p, 0, "+proj=utm +zone=58 +south +ellps=aust_SA +towgs84=-117.8"); add_proj4text (p, 1, "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"AGD66 / AMG zone 58\",GEOGCS[\"AGD66\",DATUM[\""); add_srs_wkt (p, 1, "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2"); add_srs_wkt (p, 4, "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 5, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 6, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 8, "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); add_srs_wkt (p, 9, "meridian\",165],PARAMETER[\"scale_factor\",0.9996],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 11, "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"20258\"]]"); p = add_epsg_def (filter, first, last, 20348, "epsg", 20348, "AGD84 / AMG zone 48"); add_proj4text (p, 0, "+proj=utm +zone=48 +south +ellps=aust_SA +towgs84=-134,-"); add_proj4text (p, 1, "48,149,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"AGD84 / AMG zone 48\",GEOGCS[\"AGD84\",DATUM[\""); add_srs_wkt (p, 1, "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",105],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 12, "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"20348\"]]"); p = add_epsg_def (filter, first, last, 20349, "epsg", 20349, "AGD84 / AMG zone 49"); add_proj4text (p, 0, "+proj=utm +zone=49 +south +ellps=aust_SA +towgs84=-134,-"); add_proj4text (p, 1, "48,149,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"AGD84 / AMG zone 49\",GEOGCS[\"AGD84\",DATUM[\""); add_srs_wkt (p, 1, "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",111],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 12, "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"20349\"]]"); p = add_epsg_def (filter, first, last, 20350, "epsg", 20350, "AGD84 / AMG zone 50"); add_proj4text (p, 0, "+proj=utm +zone=50 +south +ellps=aust_SA +towgs84=-134,-"); add_proj4text (p, 1, "48,149,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"AGD84 / AMG zone 50\",GEOGCS[\"AGD84\",DATUM[\""); add_srs_wkt (p, 1, "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",117],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 12, "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"20350\"]]"); p = add_epsg_def (filter, first, last, 20351, "epsg", 20351, "AGD84 / AMG zone 51"); add_proj4text (p, 0, "+proj=utm +zone=51 +south +ellps=aust_SA +towgs84=-134,-"); add_proj4text (p, 1, "48,149,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"AGD84 / AMG zone 51\",GEOGCS[\"AGD84\",DATUM[\""); add_srs_wkt (p, 1, "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",123],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 12, "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"20351\"]]"); p = add_epsg_def (filter, first, last, 20352, "epsg", 20352, "AGD84 / AMG zone 52"); add_proj4text (p, 0, "+proj=utm +zone=52 +south +ellps=aust_SA +towgs84=-134,-"); add_proj4text (p, 1, "48,149,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"AGD84 / AMG zone 52\",GEOGCS[\"AGD84\",DATUM[\""); add_srs_wkt (p, 1, "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",129],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 12, "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"20352\"]]"); p = add_epsg_def (filter, first, last, 20353, "epsg", 20353, "AGD84 / AMG zone 53"); add_proj4text (p, 0, "+proj=utm +zone=53 +south +ellps=aust_SA +towgs84=-134,-"); add_proj4text (p, 1, "48,149,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"AGD84 / AMG zone 53\",GEOGCS[\"AGD84\",DATUM[\""); add_srs_wkt (p, 1, "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",135],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 12, "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"20353\"]]"); p = add_epsg_def (filter, first, last, 20354, "epsg", 20354, "AGD84 / AMG zone 54"); add_proj4text (p, 0, "+proj=utm +zone=54 +south +ellps=aust_SA +towgs84=-134,-"); add_proj4text (p, 1, "48,149,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"AGD84 / AMG zone 54\",GEOGCS[\"AGD84\",DATUM[\""); add_srs_wkt (p, 1, "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",141],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 12, "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"20354\"]]"); p = add_epsg_def (filter, first, last, 20355, "epsg", 20355, "AGD84 / AMG zone 55"); add_proj4text (p, 0, "+proj=utm +zone=55 +south +ellps=aust_SA +towgs84=-134,-"); add_proj4text (p, 1, "48,149,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"AGD84 / AMG zone 55\",GEOGCS[\"AGD84\",DATUM[\""); add_srs_wkt (p, 1, "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",147],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 12, "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"20355\"]]"); p = add_epsg_def (filter, first, last, 20356, "epsg", 20356, "AGD84 / AMG zone 56"); add_proj4text (p, 0, "+proj=utm +zone=56 +south +ellps=aust_SA +towgs84=-134,-"); add_proj4text (p, 1, "48,149,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"AGD84 / AMG zone 56\",GEOGCS[\"AGD84\",DATUM[\""); add_srs_wkt (p, 1, "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",153],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 12, "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"20356\"]]"); p = add_epsg_def (filter, first, last, 20357, "epsg", 20357, "AGD84 / AMG zone 57"); add_proj4text (p, 0, "+proj=utm +zone=57 +south +ellps=aust_SA +towgs84=-134,-"); add_proj4text (p, 1, "48,149,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"AGD84 / AMG zone 57\",GEOGCS[\"AGD84\",DATUM[\""); add_srs_wkt (p, 1, "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",159],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 12, "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"20357\"]]"); p = add_epsg_def (filter, first, last, 20358, "epsg", 20358, "AGD84 / AMG zone 58"); add_proj4text (p, 0, "+proj=utm +zone=58 +south +ellps=aust_SA +towgs84=-134,-"); add_proj4text (p, 1, "48,149,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"AGD84 / AMG zone 58\",GEOGCS[\"AGD84\",DATUM[\""); add_srs_wkt (p, 1, "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",165],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 12, "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"20358\"]]"); p = add_epsg_def (filter, first, last, 20436, "epsg", 20436, "Ain el Abd / UTM zone 36N"); add_proj4text (p, 0, "+proj=utm +zone=36 +ellps=intl +towgs84=-143,-236,7,0,0,"); add_proj4text (p, 1, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Ain el Abd / UTM zone 36N\",GEOGCS[\"Ain el Abd"); add_srs_wkt (p, 1, "\",DATUM[\"Ain_el_Abd_1970\",SPHEROID[\"International 19"); add_srs_wkt (p, 2, "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-"); add_srs_wkt (p, 3, "143,-236,7,0,0,0,0],AUTHORITY[\"EPSG\",\"6204\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4204\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 8, "\"central_meridian\",33],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 9, "96],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 11, "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"20436\"]]"); p = add_epsg_def (filter, first, last, 20437, "epsg", 20437, "Ain el Abd / UTM zone 37N"); add_proj4text (p, 0, "+proj=utm +zone=37 +ellps=intl +towgs84=-143,-236,7,0,0,"); add_proj4text (p, 1, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Ain el Abd / UTM zone 37N\",GEOGCS[\"Ain el Abd"); add_srs_wkt (p, 1, "\",DATUM[\"Ain_el_Abd_1970\",SPHEROID[\"International 19"); add_srs_wkt (p, 2, "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-"); add_srs_wkt (p, 3, "143,-236,7,0,0,0,0],AUTHORITY[\"EPSG\",\"6204\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4204\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 8, "\"central_meridian\",39],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 9, "96],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 11, "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"20437\"]]"); p = add_epsg_def (filter, first, last, 20438, "epsg", 20438, "Ain el Abd / UTM zone 38N"); add_proj4text (p, 0, "+proj=utm +zone=38 +ellps=intl +towgs84=-143,-236,7,0,0,"); add_proj4text (p, 1, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Ain el Abd / UTM zone 38N\",GEOGCS[\"Ain el Abd"); add_srs_wkt (p, 1, "\",DATUM[\"Ain_el_Abd_1970\",SPHEROID[\"International 19"); add_srs_wkt (p, 2, "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-"); add_srs_wkt (p, 3, "143,-236,7,0,0,0,0],AUTHORITY[\"EPSG\",\"6204\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4204\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 8, "\"central_meridian\",45],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 9, "96],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 11, "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"20438\"]]"); p = add_epsg_def (filter, first, last, 20439, "epsg", 20439, "Ain el Abd / UTM zone 39N"); add_proj4text (p, 0, "+proj=utm +zone=39 +ellps=intl +towgs84=-143,-236,7,0,0,"); add_proj4text (p, 1, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Ain el Abd / UTM zone 39N\",GEOGCS[\"Ain el Abd"); add_srs_wkt (p, 1, "\",DATUM[\"Ain_el_Abd_1970\",SPHEROID[\"International 19"); add_srs_wkt (p, 2, "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-"); add_srs_wkt (p, 3, "143,-236,7,0,0,0,0],AUTHORITY[\"EPSG\",\"6204\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4204\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 8, "\"central_meridian\",51],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 9, "96],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 11, "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"20439\"]]"); p = add_epsg_def (filter, first, last, 20440, "epsg", 20440, "Ain el Abd / UTM zone 40N"); add_proj4text (p, 0, "+proj=utm +zone=40 +ellps=intl +towgs84=-143,-236,7,0,0,"); add_proj4text (p, 1, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Ain el Abd / UTM zone 40N\",GEOGCS[\"Ain el Abd"); add_srs_wkt (p, 1, "\",DATUM[\"Ain_el_Abd_1970\",SPHEROID[\"International 19"); add_srs_wkt (p, 2, "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-"); add_srs_wkt (p, 3, "143,-236,7,0,0,0,0],AUTHORITY[\"EPSG\",\"6204\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4204\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 8, "\"central_meridian\",57],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 9, "96],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 11, "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"20440\"]]"); p = add_epsg_def (filter, first, last, 20499, "epsg", 20499, "Ain el Abd / Bahrain Grid"); add_proj4text (p, 0, "+proj=utm +zone=39 +ellps=intl +towgs84=-143,-236,7,0,0,"); add_proj4text (p, 1, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Ain el Abd / Bahrain Grid\",GEOGCS[\"Ain el Abd"); add_srs_wkt (p, 1, "\",DATUM[\"Ain_el_Abd_1970\",SPHEROID[\"International 19"); add_srs_wkt (p, 2, "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-"); add_srs_wkt (p, 3, "143,-236,7,0,0,0,0],AUTHORITY[\"EPSG\",\"6204\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4204\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 8, "\"central_meridian\",51],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 9, "96],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 11, "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"20499\"]]"); p = add_epsg_def (filter, first, last, 20538, "epsg", 20538, "Afgooye / UTM zone 38N"); add_proj4text (p, 0, "+proj=utm +zone=38 +ellps=krass +towgs84=-43,-163,45,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Afgooye / UTM zone 38N\",GEOGCS[\"Afgooye\",DAT"); add_srs_wkt (p, 1, "UM[\"Afgooye\",SPHEROID[\"Krassowsky 1940\",6378245,298."); add_srs_wkt (p, 2, "3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[-43,-163,45,0,0,"); add_srs_wkt (p, 3, "0,0],AUTHORITY[\"EPSG\",\"6205\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4205\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 7, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 8, "ian\",45],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 9, "false_easting\",500000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 10, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea"); add_srs_wkt (p, 11, "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"20538\"]]"); p = add_epsg_def (filter, first, last, 20539, "epsg", 20539, "Afgooye / UTM zone 39N"); add_proj4text (p, 0, "+proj=utm +zone=39 +ellps=krass +towgs84=-43,-163,45,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Afgooye / UTM zone 39N\",GEOGCS[\"Afgooye\",DAT"); add_srs_wkt (p, 1, "UM[\"Afgooye\",SPHEROID[\"Krassowsky 1940\",6378245,298."); add_srs_wkt (p, 2, "3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[-43,-163,45,0,0,"); add_srs_wkt (p, 3, "0,0],AUTHORITY[\"EPSG\",\"6205\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4205\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 7, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 8, "ian\",51],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 9, "false_easting\",500000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 10, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea"); add_srs_wkt (p, 11, "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"20539\"]]"); p = add_epsg_def (filter, first, last, 20790, "epsg", 20790, "Lisbon (Lisbon) / Portuguese National Grid"); add_proj4text (p, 0, "+proj=tmerc +lat_0=39.66666666666666 +lon_0=1 +k=1 +x_0="); add_proj4text (p, 1, "200000 +y_0=300000 +ellps=intl +towgs84=-304.046,-60.576"); add_proj4text (p, 2, ",103.64,0,0,0,0 +pm=lisbon +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Lisbon (Lisbon) / Portuguese National Grid\",GE"); add_srs_wkt (p, 1, "OGCS[\"Lisbon (Lisbon)\",DATUM[\"Lisbon_1937_Lisbon\",SP"); add_srs_wkt (p, 2, "HEROID[\"International 1924\",6378388,297,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7022\"]],TOWGS84[-304.046,-60.576,103.64,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6803\"]],PRIMEM[\"Lisbon\",-9.1319"); add_srs_wkt (p, 5, "06111111112,AUTHORITY[\"EPSG\",\"8902\"]],UNIT[\"degree\""); add_srs_wkt (p, 6, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4803\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",39.66666666666666],"); add_srs_wkt (p, 9, "PARAMETER[\"central_meridian\",1],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",1],PARAMETER[\"false_easting\",200000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",300000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"20790\"]]"); p = add_epsg_def (filter, first, last, 20791, "epsg", 20791, "Lisbon (Lisbon) / Portuguese Grid"); add_proj4text (p, 0, "+proj=tmerc +lat_0=39.66666666666666 +lon_0=1 +k=1 +x_0="); add_proj4text (p, 1, "0 +y_0=0 +ellps=intl +towgs84=-304.046,-60.576,103.64,0,"); add_proj4text (p, 2, "0,0,0 +pm=lisbon +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Lisbon (Lisbon) / Portuguese Grid\",GEOGCS[\"Li"); add_srs_wkt (p, 1, "sbon (Lisbon)\",DATUM[\"Lisbon_1937_Lisbon\",SPHEROID[\""); add_srs_wkt (p, 2, "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "22\"]],TOWGS84[-304.046,-60.576,103.64,0,0,0,0],AUTHORIT"); add_srs_wkt (p, 4, "Y[\"EPSG\",\"6803\"]],PRIMEM[\"Lisbon\",-9.1319061111111"); add_srs_wkt (p, 5, "12,AUTHORITY[\"EPSG\",\"8902\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4803\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 8, "METER[\"latitude_of_origin\",39.66666666666666],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",1],PARAMETER[\"scale_factor\",1],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northin"); add_srs_wkt (p, 11, "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 12, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"20"); add_srs_wkt (p, 13, "791\"]]"); p = add_epsg_def (filter, first, last, 20822, "epsg", 20822, "Aratu / UTM zone 22S"); add_proj4text (p, 0, "+proj=utm +zone=22 +south +ellps=intl +towgs84=-151.99,2"); add_proj4text (p, 1, "87.04,-147.45,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Aratu / UTM zone 22S\",GEOGCS[\"Aratu\",DATUM[\""); add_srs_wkt (p, 1, "Aratu\",SPHEROID[\"International 1924\",6378388,297,AUTH"); add_srs_wkt (p, 2, "ORITY[\"EPSG\",\"7022\"]],TOWGS84[-151.99,287.04,-147.45"); add_srs_wkt (p, 3, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6208\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"4208\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 7, "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); add_srs_wkt (p, 8, "meridian\",-51],PARAMETER[\"scale_factor\",0.9996],PARAM"); add_srs_wkt (p, 9, "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 10, "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 11, "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"20822\"]]"); p = add_epsg_def (filter, first, last, 20823, "epsg", 20823, "Aratu / UTM zone 23S"); add_proj4text (p, 0, "+proj=utm +zone=23 +south +ellps=intl +towgs84=-151.99,2"); add_proj4text (p, 1, "87.04,-147.45,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Aratu / UTM zone 23S\",GEOGCS[\"Aratu\",DATUM[\""); add_srs_wkt (p, 1, "Aratu\",SPHEROID[\"International 1924\",6378388,297,AUTH"); add_srs_wkt (p, 2, "ORITY[\"EPSG\",\"7022\"]],TOWGS84[-151.99,287.04,-147.45"); add_srs_wkt (p, 3, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6208\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"4208\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 7, "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); add_srs_wkt (p, 8, "meridian\",-45],PARAMETER[\"scale_factor\",0.9996],PARAM"); add_srs_wkt (p, 9, "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 10, "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 11, "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"20823\"]]"); p = add_epsg_def (filter, first, last, 20824, "epsg", 20824, "Aratu / UTM zone 24S"); add_proj4text (p, 0, "+proj=utm +zone=24 +south +ellps=intl +towgs84=-151.99,2"); add_proj4text (p, 1, "87.04,-147.45,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Aratu / UTM zone 24S\",GEOGCS[\"Aratu\",DATUM[\""); add_srs_wkt (p, 1, "Aratu\",SPHEROID[\"International 1924\",6378388,297,AUTH"); add_srs_wkt (p, 2, "ORITY[\"EPSG\",\"7022\"]],TOWGS84[-151.99,287.04,-147.45"); add_srs_wkt (p, 3, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6208\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"4208\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 7, "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); add_srs_wkt (p, 8, "meridian\",-39],PARAMETER[\"scale_factor\",0.9996],PARAM"); add_srs_wkt (p, 9, "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 10, "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 11, "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"20824\"]]"); p = add_epsg_def (filter, first, last, 20934, "epsg", 20934, "Arc 1950 / UTM zone 34S"); add_proj4text (p, 0, "+proj=utm +zone=34 +south +a=6378249.145 +b=6356514.9663"); add_proj4text (p, 1, "98753 +towgs84=-143,-90,-294,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Arc 1950 / UTM zone 34S\",GEOGCS[\"Arc 1950\",D"); add_srs_wkt (p, 1, "ATUM[\"Arc_1950\",SPHEROID[\"Clarke 1880 (Arc)\",6378249"); add_srs_wkt (p, 2, ".145,293.4663077,AUTHORITY[\"EPSG\",\"7013\"]],TOWGS84[-"); add_srs_wkt (p, 3, "143,-90,-294,0,0,0,0],AUTHORITY[\"EPSG\",\"6209\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4209\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, "R[\"central_meridian\",21],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 9, "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"20934\"]]"); p = add_epsg_def (filter, first, last, 20935, "epsg", 20935, "Arc 1950 / UTM zone 35S"); add_proj4text (p, 0, "+proj=utm +zone=35 +south +a=6378249.145 +b=6356514.9663"); add_proj4text (p, 1, "98753 +towgs84=-143,-90,-294,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Arc 1950 / UTM zone 35S\",GEOGCS[\"Arc 1950\",D"); add_srs_wkt (p, 1, "ATUM[\"Arc_1950\",SPHEROID[\"Clarke 1880 (Arc)\",6378249"); add_srs_wkt (p, 2, ".145,293.4663077,AUTHORITY[\"EPSG\",\"7013\"]],TOWGS84[-"); add_srs_wkt (p, 3, "143,-90,-294,0,0,0,0],AUTHORITY[\"EPSG\",\"6209\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4209\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, "R[\"central_meridian\",27],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 9, "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"20935\"]]"); p = add_epsg_def (filter, first, last, 20936, "epsg", 20936, "Arc 1950 / UTM zone 36S"); add_proj4text (p, 0, "+proj=utm +zone=36 +south +a=6378249.145 +b=6356514.9663"); add_proj4text (p, 1, "98753 +towgs84=-143,-90,-294,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Arc 1950 / UTM zone 36S\",GEOGCS[\"Arc 1950\",D"); add_srs_wkt (p, 1, "ATUM[\"Arc_1950\",SPHEROID[\"Clarke 1880 (Arc)\",6378249"); add_srs_wkt (p, 2, ".145,293.4663077,AUTHORITY[\"EPSG\",\"7013\"]],TOWGS84[-"); add_srs_wkt (p, 3, "143,-90,-294,0,0,0,0],AUTHORITY[\"EPSG\",\"6209\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4209\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, "R[\"central_meridian\",33],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 9, "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"20936\"]]"); p = add_epsg_def (filter, first, last, 21035, "epsg", 21035, "Arc 1960 / UTM zone 35S"); add_proj4text (p, 0, "+proj=utm +zone=35 +south +ellps=clrk80 +towgs84=-160,-6"); add_proj4text (p, 1, ",-302,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Arc 1960 / UTM zone 35S\",GEOGCS[\"Arc 1960\",D"); add_srs_wkt (p, 1, "ATUM[\"Arc_1960\",SPHEROID[\"Clarke 1880 (RGS)\",6378249"); add_srs_wkt (p, 2, ".145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-160,"); add_srs_wkt (p, 3, "-6,-302,0,0,0,0],AUTHORITY[\"EPSG\",\"6210\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4210\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, "entral_meridian\",27],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 9, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 10, "orthing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"21035\"]]"); p = add_epsg_def (filter, first, last, 21036, "epsg", 21036, "Arc 1960 / UTM zone 36S"); add_proj4text (p, 0, "+proj=utm +zone=36 +south +ellps=clrk80 +towgs84=-160,-6"); add_proj4text (p, 1, ",-302,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Arc 1960 / UTM zone 36S\",GEOGCS[\"Arc 1960\",D"); add_srs_wkt (p, 1, "ATUM[\"Arc_1960\",SPHEROID[\"Clarke 1880 (RGS)\",6378249"); add_srs_wkt (p, 2, ".145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-160,"); add_srs_wkt (p, 3, "-6,-302,0,0,0,0],AUTHORITY[\"EPSG\",\"6210\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4210\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, "entral_meridian\",33],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 9, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 10, "orthing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"21036\"]]"); p = add_epsg_def (filter, first, last, 21037, "epsg", 21037, "Arc 1960 / UTM zone 37S"); add_proj4text (p, 0, "+proj=utm +zone=37 +south +ellps=clrk80 +towgs84=-160,-6"); add_proj4text (p, 1, ",-302,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Arc 1960 / UTM zone 37S\",GEOGCS[\"Arc 1960\",D"); add_srs_wkt (p, 1, "ATUM[\"Arc_1960\",SPHEROID[\"Clarke 1880 (RGS)\",6378249"); add_srs_wkt (p, 2, ".145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-160,"); add_srs_wkt (p, 3, "-6,-302,0,0,0,0],AUTHORITY[\"EPSG\",\"6210\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4210\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, "entral_meridian\",39],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 9, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 10, "orthing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"21037\"]]"); p = add_epsg_def (filter, first, last, 21095, "epsg", 21095, "Arc 1960 / UTM zone 35N"); add_proj4text (p, 0, "+proj=utm +zone=35 +ellps=clrk80 +towgs84=-160,-6,-302,0"); add_proj4text (p, 1, ",0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Arc 1960 / UTM zone 35N\",GEOGCS[\"Arc 1960\",D"); add_srs_wkt (p, 1, "ATUM[\"Arc_1960\",SPHEROID[\"Clarke 1880 (RGS)\",6378249"); add_srs_wkt (p, 2, ".145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-160,"); add_srs_wkt (p, 3, "-6,-302,0,0,0,0],AUTHORITY[\"EPSG\",\"6210\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4210\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, "entral_meridian\",27],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 9, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 10, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 11, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 12, "RITY[\"EPSG\",\"21095\"]]"); p = add_epsg_def (filter, first, last, 21096, "epsg", 21096, "Arc 1960 / UTM zone 36N"); add_proj4text (p, 0, "+proj=utm +zone=36 +ellps=clrk80 +towgs84=-160,-6,-302,0"); add_proj4text (p, 1, ",0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Arc 1960 / UTM zone 36N\",GEOGCS[\"Arc 1960\",D"); add_srs_wkt (p, 1, "ATUM[\"Arc_1960\",SPHEROID[\"Clarke 1880 (RGS)\",6378249"); add_srs_wkt (p, 2, ".145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-160,"); add_srs_wkt (p, 3, "-6,-302,0,0,0,0],AUTHORITY[\"EPSG\",\"6210\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4210\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, "entral_meridian\",33],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 9, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 10, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 11, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 12, "RITY[\"EPSG\",\"21096\"]]"); p = add_epsg_def (filter, first, last, 21097, "epsg", 21097, "Arc 1960 / UTM zone 37N"); add_proj4text (p, 0, "+proj=utm +zone=37 +ellps=clrk80 +towgs84=-160,-6,-302,0"); add_proj4text (p, 1, ",0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Arc 1960 / UTM zone 37N\",GEOGCS[\"Arc 1960\",D"); add_srs_wkt (p, 1, "ATUM[\"Arc_1960\",SPHEROID[\"Clarke 1880 (RGS)\",6378249"); add_srs_wkt (p, 2, ".145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-160,"); add_srs_wkt (p, 3, "-6,-302,0,0,0,0],AUTHORITY[\"EPSG\",\"6210\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4210\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, "entral_meridian\",39],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 9, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 10, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 11, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 12, "RITY[\"EPSG\",\"21097\"]]"); p = add_epsg_def (filter, first, last, 21100, "epsg", 21100, "Batavia (Jakarta) / NEIEZ (deprecated)"); add_proj4text (p, 0, "+proj=merc +lon_0=110 +k=0.997 +x_0=3900000 +y_0=900000 "); add_proj4text (p, 1, "+ellps=bessel +towgs84=-377,681,-50,0,0,0,0 +pm=jakarta "); add_proj4text (p, 2, "+units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Batavia (Jakarta) / NEIEZ (deprecated)\",GEOGCS"); add_srs_wkt (p, 1, "[\"Batavia (Jakarta)\",DATUM[\"Batavia_Jakarta\",SPHEROI"); add_srs_wkt (p, 2, "D[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7004\"]],TOWGS84[-377,681,-50,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6813\"]],PRIMEM[\"Jakarta\",106.8077194444444"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8908\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4813\"]],PROJECTION[\"Mercator_1SP\"],PARAMETER[\"c"); add_srs_wkt (p, 8, "entral_meridian\",110],PARAMETER[\"scale_factor\",0.997]"); add_srs_wkt (p, 9, ",PARAMETER[\"false_easting\",3900000],PARAMETER[\"false_"); add_srs_wkt (p, 10, "northing\",900000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"21100\"]]"); p = add_epsg_def (filter, first, last, 21148, "epsg", 21148, "Batavia / UTM zone 48S"); add_proj4text (p, 0, "+proj=utm +zone=48 +south +ellps=bessel +towgs84=-377,68"); add_proj4text (p, 1, "1,-50,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Batavia / UTM zone 48S\",GEOGCS[\"Batavia\",DAT"); add_srs_wkt (p, 1, "UM[\"Batavia\",SPHEROID[\"Bessel 1841\",6377397.155,299."); add_srs_wkt (p, 2, "1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-377,681,-"); add_srs_wkt (p, 3, "50,0,0,0,0],AUTHORITY[\"EPSG\",\"6211\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4211\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",105],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 11, "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"21148\"]]"); p = add_epsg_def (filter, first, last, 21149, "epsg", 21149, "Batavia / UTM zone 49S"); add_proj4text (p, 0, "+proj=utm +zone=49 +south +ellps=bessel +towgs84=-377,68"); add_proj4text (p, 1, "1,-50,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Batavia / UTM zone 49S\",GEOGCS[\"Batavia\",DAT"); add_srs_wkt (p, 1, "UM[\"Batavia\",SPHEROID[\"Bessel 1841\",6377397.155,299."); add_srs_wkt (p, 2, "1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-377,681,-"); add_srs_wkt (p, 3, "50,0,0,0,0],AUTHORITY[\"EPSG\",\"6211\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4211\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",111],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 11, "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"21149\"]]"); p = add_epsg_def (filter, first, last, 21150, "epsg", 21150, "Batavia / UTM zone 50S"); add_proj4text (p, 0, "+proj=utm +zone=50 +south +ellps=bessel +towgs84=-377,68"); add_proj4text (p, 1, "1,-50,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Batavia / UTM zone 50S\",GEOGCS[\"Batavia\",DAT"); add_srs_wkt (p, 1, "UM[\"Batavia\",SPHEROID[\"Bessel 1841\",6377397.155,299."); add_srs_wkt (p, 2, "1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-377,681,-"); add_srs_wkt (p, 3, "50,0,0,0,0],AUTHORITY[\"EPSG\",\"6211\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4211\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",117],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 11, "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"21150\"]]"); p = add_epsg_def (filter, first, last, 21291, "epsg", 21291, "Barbados 1938 / British West Indies Grid"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x"); add_proj4text (p, 1, "_0=400000 +y_0=0 +ellps=clrk80 +towgs84=31.95,300.99,419"); add_proj4text (p, 2, ".19,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Barbados 1938 / British West Indies Grid\",GEOG"); add_srs_wkt (p, 1, "CS[\"Barbados 1938\",DATUM[\"Barbados_1938\",SPHEROID[\""); add_srs_wkt (p, 2, "Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7012\"]],TOWGS84[31.95,300.99,419.19,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6212\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4212"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-62]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9995],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",400000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 12, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2129"); add_srs_wkt (p, 13, "1\"]]"); p = add_epsg_def (filter, first, last, 21292, "epsg", 21292, "Barbados 1938 / Barbados National Grid"); add_proj4text (p, 0, "+proj=tmerc +lat_0=13.17638888888889 +lon_0=-59.55972222"); add_proj4text (p, 1, "222222 +k=0.9999986 +x_0=30000 +y_0=75000 +ellps=clrk80 "); add_proj4text (p, 2, "+towgs84=31.95,300.99,419.19,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Barbados 1938 / Barbados National Grid\",GEOGCS"); add_srs_wkt (p, 1, "[\"Barbados 1938\",DATUM[\"Barbados_1938\",SPHEROID[\"Cl"); add_srs_wkt (p, 2, "arke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7012\"]],TOWGS84[31.95,300.99,419.19,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"6212\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4212\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",13.17638888888889],PARAMETER[\"central_m"); add_srs_wkt (p, 9, "eridian\",-59.55972222222222],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9999986],PARAMETER[\"false_easting\",30000],PARAMETER"); add_srs_wkt (p, 11, "[\"false_northing\",75000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"21292\"]]"); p = add_epsg_def (filter, first, last, 21413, "epsg", 21413, "Beijing 1954 / Gauss-Kruger zone 13"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=13500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 13\",GEOGCS[\""); add_srs_wkt (p, 1, "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\""); add_srs_wkt (p, 7, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, "0],PARAMETER[\"central_meridian\",75],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",1],PARAMETER[\"false_easting\",13500000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"21413\"]]"); p = add_epsg_def (filter, first, last, 21414, "epsg", 21414, "Beijing 1954 / Gauss-Kruger zone 14"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=14500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 14\",GEOGCS[\""); add_srs_wkt (p, 1, "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\""); add_srs_wkt (p, 7, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, "0],PARAMETER[\"central_meridian\",81],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",1],PARAMETER[\"false_easting\",14500000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"21414\"]]"); p = add_epsg_def (filter, first, last, 21415, "epsg", 21415, "Beijing 1954 / Gauss-Kruger zone 15"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=15500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 15\",GEOGCS[\""); add_srs_wkt (p, 1, "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\""); add_srs_wkt (p, 7, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, "0],PARAMETER[\"central_meridian\",87],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",1],PARAMETER[\"false_easting\",15500000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"21415\"]]"); p = add_epsg_def (filter, first, last, 21416, "epsg", 21416, "Beijing 1954 / Gauss-Kruger zone 16"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=16500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 16\",GEOGCS[\""); add_srs_wkt (p, 1, "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\""); add_srs_wkt (p, 7, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, "0],PARAMETER[\"central_meridian\",93],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",1],PARAMETER[\"false_easting\",16500000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"21416\"]]"); p = add_epsg_def (filter, first, last, 21417, "epsg", 21417, "Beijing 1954 / Gauss-Kruger zone 17"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=17500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 17\",GEOGCS[\""); add_srs_wkt (p, 1, "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\""); add_srs_wkt (p, 7, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, "0],PARAMETER[\"central_meridian\",99],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",1],PARAMETER[\"false_easting\",17500000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"21417\"]]"); p = add_epsg_def (filter, first, last, 21418, "epsg", 21418, "Beijing 1954 / Gauss-Kruger zone 18"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=18500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 18\",GEOGCS[\""); add_srs_wkt (p, 1, "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\""); add_srs_wkt (p, 7, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, "0],PARAMETER[\"central_meridian\",105],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",1],PARAMETER[\"false_easting\",18500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"21418\"]]"); } #endif /* full EPSG initialization enabled/disabled */ libspatialite-4.1.1/src/srsinit/epsg_inlined_04.c0000664000175000017500000046157312163502133016673 00000000000000/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def (filter, first, last, 2426, "epsg", 2426, "Beijing 1954 / 3-degree Gauss-Kruger CM 87E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger CM 87E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",0],PARAMETER[\"central_meridian\",87],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",1],PARAMETER[\"false_easting\",500000],"); add_srs_wkt (p, 10, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); add_srs_wkt (p, 12, "],AUTHORITY[\"EPSG\",\"2426\"]]"); p = add_epsg_def (filter, first, last, 2427, "epsg", 2427, "Beijing 1954 / 3-degree Gauss-Kruger CM 90E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger CM 90E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",0],PARAMETER[\"central_meridian\",90],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",1],PARAMETER[\"false_easting\",500000],"); add_srs_wkt (p, 10, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); add_srs_wkt (p, 12, "],AUTHORITY[\"EPSG\",\"2427\"]]"); p = add_epsg_def (filter, first, last, 2428, "epsg", 2428, "Beijing 1954 / 3-degree Gauss-Kruger CM 93E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger CM 93E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",0],PARAMETER[\"central_meridian\",93],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",1],PARAMETER[\"false_easting\",500000],"); add_srs_wkt (p, 10, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); add_srs_wkt (p, 12, "],AUTHORITY[\"EPSG\",\"2428\"]]"); p = add_epsg_def (filter, first, last, 2429, "epsg", 2429, "Beijing 1954 / 3-degree Gauss-Kruger CM 96E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=96 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger CM 96E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",0],PARAMETER[\"central_meridian\",96],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",1],PARAMETER[\"false_easting\",500000],"); add_srs_wkt (p, 10, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); add_srs_wkt (p, 12, "],AUTHORITY[\"EPSG\",\"2429\"]]"); p = add_epsg_def (filter, first, last, 2430, "epsg", 2430, "Beijing 1954 / 3-degree Gauss-Kruger CM 99E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger CM 99E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",0],PARAMETER[\"central_meridian\",99],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",1],PARAMETER[\"false_easting\",500000],"); add_srs_wkt (p, 10, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); add_srs_wkt (p, 12, "],AUTHORITY[\"EPSG\",\"2430\"]]"); p = add_epsg_def (filter, first, last, 2431, "epsg", 2431, "Beijing 1954 / 3-degree Gauss-Kruger CM 102E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger CM 102E\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",102],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); add_srs_wkt (p, 12, "AST],AUTHORITY[\"EPSG\",\"2431\"]]"); p = add_epsg_def (filter, first, last, 2432, "epsg", 2432, "Beijing 1954 / 3-degree Gauss-Kruger CM 105E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger CM 105E\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",105],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); add_srs_wkt (p, 12, "AST],AUTHORITY[\"EPSG\",\"2432\"]]"); p = add_epsg_def (filter, first, last, 2433, "epsg", 2433, "Beijing 1954 / 3-degree Gauss-Kruger CM 108E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger CM 108E\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",108],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); add_srs_wkt (p, 12, "AST],AUTHORITY[\"EPSG\",\"2433\"]]"); p = add_epsg_def (filter, first, last, 2434, "epsg", 2434, "Beijing 1954 / 3-degree Gauss-Kruger CM 111E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger CM 111E\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",111],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); add_srs_wkt (p, 12, "AST],AUTHORITY[\"EPSG\",\"2434\"]]"); p = add_epsg_def (filter, first, last, 2435, "epsg", 2435, "Beijing 1954 / 3-degree Gauss-Kruger CM 114E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger CM 114E\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",114],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); add_srs_wkt (p, 12, "AST],AUTHORITY[\"EPSG\",\"2435\"]]"); p = add_epsg_def (filter, first, last, 2436, "epsg", 2436, "Beijing 1954 / 3-degree Gauss-Kruger CM 117E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger CM 117E\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",117],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); add_srs_wkt (p, 12, "AST],AUTHORITY[\"EPSG\",\"2436\"]]"); p = add_epsg_def (filter, first, last, 2437, "epsg", 2437, "Beijing 1954 / 3-degree Gauss-Kruger CM 120E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger CM 120E\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",120],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); add_srs_wkt (p, 12, "AST],AUTHORITY[\"EPSG\",\"2437\"]]"); p = add_epsg_def (filter, first, last, 2438, "epsg", 2438, "Beijing 1954 / 3-degree Gauss-Kruger CM 123E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger CM 123E\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",123],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); add_srs_wkt (p, 12, "AST],AUTHORITY[\"EPSG\",\"2438\"]]"); p = add_epsg_def (filter, first, last, 2439, "epsg", 2439, "Beijing 1954 / 3-degree Gauss-Kruger CM 126E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=126 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger CM 126E\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",126],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); add_srs_wkt (p, 12, "AST],AUTHORITY[\"EPSG\",\"2439\"]]"); p = add_epsg_def (filter, first, last, 2440, "epsg", 2440, "Beijing 1954 / 3-degree Gauss-Kruger CM 129E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger CM 129E\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",129],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); add_srs_wkt (p, 12, "AST],AUTHORITY[\"EPSG\",\"2440\"]]"); p = add_epsg_def (filter, first, last, 2441, "epsg", 2441, "Beijing 1954 / 3-degree Gauss-Kruger CM 132E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=132 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger CM 132E\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",132],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); add_srs_wkt (p, 12, "AST],AUTHORITY[\"EPSG\",\"2441\"]]"); p = add_epsg_def (filter, first, last, 2442, "epsg", 2442, "Beijing 1954 / 3-degree Gauss-Kruger CM 135E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger CM 135E\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",135],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); add_srs_wkt (p, 12, "AST],AUTHORITY[\"EPSG\",\"2442\"]]"); p = add_epsg_def (filter, first, last, 2443, "epsg", 2443, "JGD2000 / Japan Plane Rectangular CS I"); add_proj4text (p, 0, "+proj=tmerc +lat_0=33 +lon_0=129.5 +k=0.9999 +x_0=0 +y_0"); add_proj4text (p, 1, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2000 / Japan Plane Rectangular CS I\",GEOGCS"); add_srs_wkt (p, 1, "[\"JGD2000\",DATUM[\"Japanese_Geodetic_Datum_2000\",SPHE"); add_srs_wkt (p, 2, "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6612\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4612\"]],PROJECTIO"); add_srs_wkt (p, 7, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 8, "n\",33],PARAMETER[\"central_meridian\",129.5],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",0.9999],PARAMETER[\"false_easting\",0],"); add_srs_wkt (p, 10, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); add_srs_wkt (p, 12, "],AUTHORITY[\"EPSG\",\"2443\"]]"); p = add_epsg_def (filter, first, last, 2444, "epsg", 2444, "JGD2000 / Japan Plane Rectangular CS II"); add_proj4text (p, 0, "+proj=tmerc +lat_0=33 +lon_0=131 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2000 / Japan Plane Rectangular CS II\",GEOGC"); add_srs_wkt (p, 1, "S[\"JGD2000\",DATUM[\"Japanese_Geodetic_Datum_2000\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6612\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4612\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",33],PARAMETER[\"central_meridian\",131],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9999],PARAMETER[\"false_easting\",0],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"2444\"]]"); p = add_epsg_def (filter, first, last, 2445, "epsg", 2445, "JGD2000 / Japan Plane Rectangular CS III"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36 +lon_0=132.1666666666667 +k=0.9999"); add_proj4text (p, 1, " +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 2, "s=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2000 / Japan Plane Rectangular CS III\",GEOG"); add_srs_wkt (p, 1, "CS[\"JGD2000\",DATUM[\"Japanese_Geodetic_Datum_2000\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6612\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4612\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",36],PARAMETER[\"central_meridian\",132.166666666666"); add_srs_wkt (p, 9, "7],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2445\"]]"); p = add_epsg_def (filter, first, last, 2446, "epsg", 2446, "JGD2000 / Japan Plane Rectangular CS IV"); add_proj4text (p, 0, "+proj=tmerc +lat_0=33 +lon_0=133.5 +k=0.9999 +x_0=0 +y_0"); add_proj4text (p, 1, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2000 / Japan Plane Rectangular CS IV\",GEOGC"); add_srs_wkt (p, 1, "S[\"JGD2000\",DATUM[\"Japanese_Geodetic_Datum_2000\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6612\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4612\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",33],PARAMETER[\"central_meridian\",133.5],PARAMETER"); add_srs_wkt (p, 9, "[\"scale_factor\",0.9999],PARAMETER[\"false_easting\",0]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 11, "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAS"); add_srs_wkt (p, 12, "T],AUTHORITY[\"EPSG\",\"2446\"]]"); p = add_epsg_def (filter, first, last, 2447, "epsg", 2447, "JGD2000 / Japan Plane Rectangular CS V"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36 +lon_0=134.3333333333333 +k=0.9999"); add_proj4text (p, 1, " +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 2, "s=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2000 / Japan Plane Rectangular CS V\",GEOGCS"); add_srs_wkt (p, 1, "[\"JGD2000\",DATUM[\"Japanese_Geodetic_Datum_2000\",SPHE"); add_srs_wkt (p, 2, "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6612\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4612\"]],PROJECTIO"); add_srs_wkt (p, 7, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 8, "n\",36],PARAMETER[\"central_meridian\",134.3333333333333"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_e"); add_srs_wkt (p, 10, "asting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2447\"]]"); p = add_epsg_def (filter, first, last, 2448, "epsg", 2448, "JGD2000 / Japan Plane Rectangular CS VI"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36 +lon_0=136 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2000 / Japan Plane Rectangular CS VI\",GEOGC"); add_srs_wkt (p, 1, "S[\"JGD2000\",DATUM[\"Japanese_Geodetic_Datum_2000\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6612\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4612\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",36],PARAMETER[\"central_meridian\",136],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9999],PARAMETER[\"false_easting\",0],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"2448\"]]"); p = add_epsg_def (filter, first, last, 2449, "epsg", 2449, "JGD2000 / Japan Plane Rectangular CS VII"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36 +lon_0=137.1666666666667 +k=0.9999"); add_proj4text (p, 1, " +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 2, "s=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2000 / Japan Plane Rectangular CS VII\",GEOG"); add_srs_wkt (p, 1, "CS[\"JGD2000\",DATUM[\"Japanese_Geodetic_Datum_2000\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6612\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4612\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",36],PARAMETER[\"central_meridian\",137.166666666666"); add_srs_wkt (p, 9, "7],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2449\"]]"); p = add_epsg_def (filter, first, last, 2450, "epsg", 2450, "JGD2000 / Japan Plane Rectangular CS VIII"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36 +lon_0=138.5 +k=0.9999 +x_0=0 +y_0"); add_proj4text (p, 1, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2000 / Japan Plane Rectangular CS VIII\",GEO"); add_srs_wkt (p, 1, "GCS[\"JGD2000\",DATUM[\"Japanese_Geodetic_Datum_2000\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6612\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4612\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 8, "igin\",36],PARAMETER[\"central_meridian\",138.5],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",0.9999],PARAMETER[\"false_easting\","); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); add_srs_wkt (p, 12, "AST],AUTHORITY[\"EPSG\",\"2450\"]]"); p = add_epsg_def (filter, first, last, 2451, "epsg", 2451, "JGD2000 / Japan Plane Rectangular CS IX"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36 +lon_0=139.8333333333333 +k=0.9999"); add_proj4text (p, 1, " +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 2, "s=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2000 / Japan Plane Rectangular CS IX\",GEOGC"); add_srs_wkt (p, 1, "S[\"JGD2000\",DATUM[\"Japanese_Geodetic_Datum_2000\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6612\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4612\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",36],PARAMETER[\"central_meridian\",139.833333333333"); add_srs_wkt (p, 9, "3],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2451\"]]"); p = add_epsg_def (filter, first, last, 2452, "epsg", 2452, "JGD2000 / Japan Plane Rectangular CS X"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40 +lon_0=140.8333333333333 +k=0.9999"); add_proj4text (p, 1, " +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 2, "s=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2000 / Japan Plane Rectangular CS X\",GEOGCS"); add_srs_wkt (p, 1, "[\"JGD2000\",DATUM[\"Japanese_Geodetic_Datum_2000\",SPHE"); add_srs_wkt (p, 2, "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6612\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4612\"]],PROJECTIO"); add_srs_wkt (p, 7, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 8, "n\",40],PARAMETER[\"central_meridian\",140.8333333333333"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_e"); add_srs_wkt (p, 10, "asting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2452\"]]"); p = add_epsg_def (filter, first, last, 2453, "epsg", 2453, "JGD2000 / Japan Plane Rectangular CS XI"); add_proj4text (p, 0, "+proj=tmerc +lat_0=44 +lon_0=140.25 +k=0.9999 +x_0=0 +y_"); add_proj4text (p, 1, "0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_def"); add_proj4text (p, 2, "s"); add_srs_wkt (p, 0, "PROJCS[\"JGD2000 / Japan Plane Rectangular CS XI\",GEOGC"); add_srs_wkt (p, 1, "S[\"JGD2000\",DATUM[\"Japanese_Geodetic_Datum_2000\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6612\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4612\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",44],PARAMETER[\"central_meridian\",140.25],PARAMETE"); add_srs_wkt (p, 9, "R[\"scale_factor\",0.9999],PARAMETER[\"false_easting\",0"); add_srs_wkt (p, 10, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA"); add_srs_wkt (p, 12, "ST],AUTHORITY[\"EPSG\",\"2453\"]]"); p = add_epsg_def (filter, first, last, 2454, "epsg", 2454, "JGD2000 / Japan Plane Rectangular CS XII"); add_proj4text (p, 0, "+proj=tmerc +lat_0=44 +lon_0=142.25 +k=0.9999 +x_0=0 +y_"); add_proj4text (p, 1, "0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_def"); add_proj4text (p, 2, "s"); add_srs_wkt (p, 0, "PROJCS[\"JGD2000 / Japan Plane Rectangular CS XII\",GEOG"); add_srs_wkt (p, 1, "CS[\"JGD2000\",DATUM[\"Japanese_Geodetic_Datum_2000\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6612\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4612\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",44],PARAMETER[\"central_meridian\",142.25],PARAMETE"); add_srs_wkt (p, 9, "R[\"scale_factor\",0.9999],PARAMETER[\"false_easting\",0"); add_srs_wkt (p, 10, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA"); add_srs_wkt (p, 12, "ST],AUTHORITY[\"EPSG\",\"2454\"]]"); p = add_epsg_def (filter, first, last, 2455, "epsg", 2455, "JGD2000 / Japan Plane Rectangular CS XIII"); add_proj4text (p, 0, "+proj=tmerc +lat_0=44 +lon_0=144.25 +k=0.9999 +x_0=0 +y_"); add_proj4text (p, 1, "0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_def"); add_proj4text (p, 2, "s"); add_srs_wkt (p, 0, "PROJCS[\"JGD2000 / Japan Plane Rectangular CS XIII\",GEO"); add_srs_wkt (p, 1, "GCS[\"JGD2000\",DATUM[\"Japanese_Geodetic_Datum_2000\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6612\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4612\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 8, "igin\",44],PARAMETER[\"central_meridian\",144.25],PARAME"); add_srs_wkt (p, 9, "TER[\"scale_factor\",0.9999],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, ",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 12, "EAST],AUTHORITY[\"EPSG\",\"2455\"]]"); p = add_epsg_def (filter, first, last, 2456, "epsg", 2456, "JGD2000 / Japan Plane Rectangular CS XIV"); add_proj4text (p, 0, "+proj=tmerc +lat_0=26 +lon_0=142 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2000 / Japan Plane Rectangular CS XIV\",GEOG"); add_srs_wkt (p, 1, "CS[\"JGD2000\",DATUM[\"Japanese_Geodetic_Datum_2000\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6612\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4612\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",26],PARAMETER[\"central_meridian\",142],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9999],PARAMETER[\"false_easting\",0],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"2456\"]]"); p = add_epsg_def (filter, first, last, 2457, "epsg", 2457, "JGD2000 / Japan Plane Rectangular CS XV"); add_proj4text (p, 0, "+proj=tmerc +lat_0=26 +lon_0=127.5 +k=0.9999 +x_0=0 +y_0"); add_proj4text (p, 1, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2000 / Japan Plane Rectangular CS XV\",GEOGC"); add_srs_wkt (p, 1, "S[\"JGD2000\",DATUM[\"Japanese_Geodetic_Datum_2000\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6612\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4612\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",26],PARAMETER[\"central_meridian\",127.5],PARAMETER"); add_srs_wkt (p, 9, "[\"scale_factor\",0.9999],PARAMETER[\"false_easting\",0]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 11, "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAS"); add_srs_wkt (p, 12, "T],AUTHORITY[\"EPSG\",\"2457\"]]"); p = add_epsg_def (filter, first, last, 2458, "epsg", 2458, "JGD2000 / Japan Plane Rectangular CS XVI"); add_proj4text (p, 0, "+proj=tmerc +lat_0=26 +lon_0=124 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2000 / Japan Plane Rectangular CS XVI\",GEOG"); add_srs_wkt (p, 1, "CS[\"JGD2000\",DATUM[\"Japanese_Geodetic_Datum_2000\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6612\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4612\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",26],PARAMETER[\"central_meridian\",124],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9999],PARAMETER[\"false_easting\",0],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"2458\"]]"); p = add_epsg_def (filter, first, last, 2459, "epsg", 2459, "JGD2000 / Japan Plane Rectangular CS XVII"); add_proj4text (p, 0, "+proj=tmerc +lat_0=26 +lon_0=131 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2000 / Japan Plane Rectangular CS XVII\",GEO"); add_srs_wkt (p, 1, "GCS[\"JGD2000\",DATUM[\"Japanese_Geodetic_Datum_2000\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6612\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4612\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 8, "igin\",26],PARAMETER[\"central_meridian\",131],PARAMETER"); add_srs_wkt (p, 9, "[\"scale_factor\",0.9999],PARAMETER[\"false_easting\",0]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 11, "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAS"); add_srs_wkt (p, 12, "T],AUTHORITY[\"EPSG\",\"2459\"]]"); p = add_epsg_def (filter, first, last, 2460, "epsg", 2460, "JGD2000 / Japan Plane Rectangular CS XVIII"); add_proj4text (p, 0, "+proj=tmerc +lat_0=20 +lon_0=136 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2000 / Japan Plane Rectangular CS XVIII\",GE"); add_srs_wkt (p, 1, "OGCS[\"JGD2000\",DATUM[\"Japanese_Geodetic_Datum_2000\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6612\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4612\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",20],PARAMETER[\"central_meridian\",136],PARAMETE"); add_srs_wkt (p, 9, "R[\"scale_factor\",0.9999],PARAMETER[\"false_easting\",0"); add_srs_wkt (p, 10, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA"); add_srs_wkt (p, 12, "ST],AUTHORITY[\"EPSG\",\"2460\"]]"); p = add_epsg_def (filter, first, last, 2461, "epsg", 2461, "JGD2000 / Japan Plane Rectangular CS XIX"); add_proj4text (p, 0, "+proj=tmerc +lat_0=26 +lon_0=154 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2000 / Japan Plane Rectangular CS XIX\",GEOG"); add_srs_wkt (p, 1, "CS[\"JGD2000\",DATUM[\"Japanese_Geodetic_Datum_2000\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6612\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4612\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",26],PARAMETER[\"central_meridian\",154],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9999],PARAMETER[\"false_easting\",0],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"2461\"]]"); p = add_epsg_def (filter, first, last, 2462, "epsg", 2462, "Albanian 1987 / Gauss-Kruger zone 4"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=4500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Albanian 1987 / Gauss-Kruger zone 4\",GEOGCS[\""); add_srs_wkt (p, 1, "Albanian 1987\",DATUM[\"Albanian_1987\",SPHEROID[\"Krass"); add_srs_wkt (p, 2, "owsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6191\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4191\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",21],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eas"); add_srs_wkt (p, 9, "ting\",4500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 10, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 11, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2462\"]]"); p = add_epsg_def (filter, first, last, 2463, "epsg", 2463, "Pulkovo 1995 / Gauss-Kruger CM 21E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 21E\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",21],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); add_srs_wkt (p, 12, "AST],AUTHORITY[\"EPSG\",\"2463\"]]"); p = add_epsg_def (filter, first, last, 2464, "epsg", 2464, "Pulkovo 1995 / Gauss-Kruger CM 27E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 27E\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",27],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); add_srs_wkt (p, 12, "AST],AUTHORITY[\"EPSG\",\"2464\"]]"); p = add_epsg_def (filter, first, last, 2465, "epsg", 2465, "Pulkovo 1995 / Gauss-Kruger CM 33E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 33E\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",33],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); add_srs_wkt (p, 12, "AST],AUTHORITY[\"EPSG\",\"2465\"]]"); p = add_epsg_def (filter, first, last, 2466, "epsg", 2466, "Pulkovo 1995 / Gauss-Kruger CM 39E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 39E\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",39],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); add_srs_wkt (p, 12, "AST],AUTHORITY[\"EPSG\",\"2466\"]]"); p = add_epsg_def (filter, first, last, 2467, "epsg", 2467, "Pulkovo 1995 / Gauss-Kruger CM 45E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 45E\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",45],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); add_srs_wkt (p, 12, "AST],AUTHORITY[\"EPSG\",\"2467\"]]"); p = add_epsg_def (filter, first, last, 2468, "epsg", 2468, "Pulkovo 1995 / Gauss-Kruger CM 51E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 51E\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",51],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); add_srs_wkt (p, 12, "AST],AUTHORITY[\"EPSG\",\"2468\"]]"); p = add_epsg_def (filter, first, last, 2469, "epsg", 2469, "Pulkovo 1995 / Gauss-Kruger CM 57E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 57E\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",57],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); add_srs_wkt (p, 12, "AST],AUTHORITY[\"EPSG\",\"2469\"]]"); p = add_epsg_def (filter, first, last, 2470, "epsg", 2470, "Pulkovo 1995 / Gauss-Kruger CM 63E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 63E\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",63],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); add_srs_wkt (p, 12, "AST],AUTHORITY[\"EPSG\",\"2470\"]]"); p = add_epsg_def (filter, first, last, 2471, "epsg", 2471, "Pulkovo 1995 / Gauss-Kruger CM 69E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 69E\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",69],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); add_srs_wkt (p, 12, "AST],AUTHORITY[\"EPSG\",\"2471\"]]"); p = add_epsg_def (filter, first, last, 2472, "epsg", 2472, "Pulkovo 1995 / Gauss-Kruger CM 75E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 75E\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",75],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); add_srs_wkt (p, 12, "AST],AUTHORITY[\"EPSG\",\"2472\"]]"); p = add_epsg_def (filter, first, last, 2473, "epsg", 2473, "Pulkovo 1995 / Gauss-Kruger CM 81E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 81E\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",81],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); add_srs_wkt (p, 12, "AST],AUTHORITY[\"EPSG\",\"2473\"]]"); p = add_epsg_def (filter, first, last, 2474, "epsg", 2474, "Pulkovo 1995 / Gauss-Kruger CM 87E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 87E\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",87],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); add_srs_wkt (p, 12, "AST],AUTHORITY[\"EPSG\",\"2474\"]]"); p = add_epsg_def (filter, first, last, 2475, "epsg", 2475, "Pulkovo 1995 / Gauss-Kruger CM 93E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 93E\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",93],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); add_srs_wkt (p, 12, "AST],AUTHORITY[\"EPSG\",\"2475\"]]"); p = add_epsg_def (filter, first, last, 2476, "epsg", 2476, "Pulkovo 1995 / Gauss-Kruger CM 99E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 99E\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",99],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); add_srs_wkt (p, 12, "AST],AUTHORITY[\"EPSG\",\"2476\"]]"); p = add_epsg_def (filter, first, last, 2477, "epsg", 2477, "Pulkovo 1995 / Gauss-Kruger CM 105E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 105E\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",105],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2477\"]]"); p = add_epsg_def (filter, first, last, 2478, "epsg", 2478, "Pulkovo 1995 / Gauss-Kruger CM 111E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 111E\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",111],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2478\"]]"); p = add_epsg_def (filter, first, last, 2479, "epsg", 2479, "Pulkovo 1995 / Gauss-Kruger CM 117E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 117E\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",117],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2479\"]]"); p = add_epsg_def (filter, first, last, 2480, "epsg", 2480, "Pulkovo 1995 / Gauss-Kruger CM 123E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 123E\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",123],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2480\"]]"); p = add_epsg_def (filter, first, last, 2481, "epsg", 2481, "Pulkovo 1995 / Gauss-Kruger CM 129E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 129E\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",129],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2481\"]]"); p = add_epsg_def (filter, first, last, 2482, "epsg", 2482, "Pulkovo 1995 / Gauss-Kruger CM 135E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 135E\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",135],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2482\"]]"); p = add_epsg_def (filter, first, last, 2483, "epsg", 2483, "Pulkovo 1995 / Gauss-Kruger CM 141E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 141E\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",141],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2483\"]]"); p = add_epsg_def (filter, first, last, 2484, "epsg", 2484, "Pulkovo 1995 / Gauss-Kruger CM 147E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 147E\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",147],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2484\"]]"); p = add_epsg_def (filter, first, last, 2485, "epsg", 2485, "Pulkovo 1995 / Gauss-Kruger CM 153E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 153E\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",153],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2485\"]]"); p = add_epsg_def (filter, first, last, 2486, "epsg", 2486, "Pulkovo 1995 / Gauss-Kruger CM 159E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 159E\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",159],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2486\"]]"); p = add_epsg_def (filter, first, last, 2487, "epsg", 2487, "Pulkovo 1995 / Gauss-Kruger CM 165E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 165E\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",165],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2487\"]]"); p = add_epsg_def (filter, first, last, 2488, "epsg", 2488, "Pulkovo 1995 / Gauss-Kruger CM 171E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 171E\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",171],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2488\"]]"); p = add_epsg_def (filter, first, last, 2489, "epsg", 2489, "Pulkovo 1995 / Gauss-Kruger CM 177E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 177E\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",177],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2489\"]]"); p = add_epsg_def (filter, first, last, 2490, "epsg", 2490, "Pulkovo 1995 / Gauss-Kruger CM 177W"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); add_proj4text (p, 2, "0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 177W\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",-177],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 12, "\",EAST],AUTHORITY[\"EPSG\",\"2490\"]]"); p = add_epsg_def (filter, first, last, 2491, "epsg", 2491, "Pulkovo 1995 / Gauss-Kruger CM 171W"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); add_proj4text (p, 2, "0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 171W\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",-171],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 12, "\",EAST],AUTHORITY[\"EPSG\",\"2491\"]]"); p = add_epsg_def (filter, first, last, 2492, "epsg", 2492, "Pulkovo 1942 / Gauss-Kruger CM 9E (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=500000 +y_0=0 +e"); add_proj4text (p, 1, "llps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 9E (deprecated)\""); add_srs_wkt (p, 1, ",GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID"); add_srs_wkt (p, 2, "[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",9],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2492\"]]"); p = add_epsg_def (filter, first, last, 2493, "epsg", 2493, "Pulkovo 1942 / Gauss-Kruger CM 15E (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 15E (deprecated)"); add_srs_wkt (p, 1, "\",GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHERO"); add_srs_wkt (p, 2, "ID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.1"); add_srs_wkt (p, 4, "2],AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 6, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 8, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 9, "\",15],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_e"); add_srs_wkt (p, 10, "asting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); add_srs_wkt (p, 12, "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2493\"]]"); p = add_epsg_def (filter, first, last, 2494, "epsg", 2494, "Pulkovo 1942 / Gauss-Kruger CM 21E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 21E\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",21],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",500"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2494\"]]"); p = add_epsg_def (filter, first, last, 2495, "epsg", 2495, "Pulkovo 1942 / Gauss-Kruger CM 27E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 27E\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",27],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",500"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2495\"]]"); p = add_epsg_def (filter, first, last, 2496, "epsg", 2496, "Pulkovo 1942 / Gauss-Kruger CM 33E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 33E\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",33],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",500"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2496\"]]"); p = add_epsg_def (filter, first, last, 2497, "epsg", 2497, "Pulkovo 1942 / Gauss-Kruger CM 39E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 39E\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",39],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",500"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2497\"]]"); p = add_epsg_def (filter, first, last, 2498, "epsg", 2498, "Pulkovo 1942 / Gauss-Kruger CM 45E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 45E\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",45],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",500"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2498\"]]"); p = add_epsg_def (filter, first, last, 2499, "epsg", 2499, "Pulkovo 1942 / Gauss-Kruger CM 51E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 51E\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",51],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",500"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2499\"]]"); p = add_epsg_def (filter, first, last, 2500, "epsg", 2500, "Pulkovo 1942 / Gauss-Kruger CM 57E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 57E\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",57],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",500"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2500\"]]"); p = add_epsg_def (filter, first, last, 2501, "epsg", 2501, "Pulkovo 1942 / Gauss-Kruger CM 63E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 63E\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",63],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",500"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2501\"]]"); p = add_epsg_def (filter, first, last, 2502, "epsg", 2502, "Pulkovo 1942 / Gauss-Kruger CM 69E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 69E\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",69],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",500"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2502\"]]"); p = add_epsg_def (filter, first, last, 2503, "epsg", 2503, "Pulkovo 1942 / Gauss-Kruger CM 75E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 75E\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",75],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",500"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2503\"]]"); p = add_epsg_def (filter, first, last, 2504, "epsg", 2504, "Pulkovo 1942 / Gauss-Kruger CM 81E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 81E\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",81],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",500"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2504\"]]"); p = add_epsg_def (filter, first, last, 2505, "epsg", 2505, "Pulkovo 1942 / Gauss-Kruger CM 87E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 87E\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",87],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",500"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2505\"]]"); p = add_epsg_def (filter, first, last, 2506, "epsg", 2506, "Pulkovo 1942 / Gauss-Kruger CM 93E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 93E\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",93],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",500"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2506\"]]"); p = add_epsg_def (filter, first, last, 2507, "epsg", 2507, "Pulkovo 1942 / Gauss-Kruger CM 99E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 99E\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",99],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",500"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2507\"]]"); p = add_epsg_def (filter, first, last, 2508, "epsg", 2508, "Pulkovo 1942 / Gauss-Kruger CM 105E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 105E\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",105],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 12, "\",EAST],AUTHORITY[\"EPSG\",\"2508\"]]"); p = add_epsg_def (filter, first, last, 2509, "epsg", 2509, "Pulkovo 1942 / Gauss-Kruger CM 111E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 111E\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",111],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 12, "\",EAST],AUTHORITY[\"EPSG\",\"2509\"]]"); p = add_epsg_def (filter, first, last, 2510, "epsg", 2510, "Pulkovo 1942 / Gauss-Kruger CM 117E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 117E\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",117],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 12, "\",EAST],AUTHORITY[\"EPSG\",\"2510\"]]"); p = add_epsg_def (filter, first, last, 2511, "epsg", 2511, "Pulkovo 1942 / Gauss-Kruger CM 123E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 123E\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",123],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 12, "\",EAST],AUTHORITY[\"EPSG\",\"2511\"]]"); p = add_epsg_def (filter, first, last, 2512, "epsg", 2512, "Pulkovo 1942 / Gauss-Kruger CM 129E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 129E\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",129],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 12, "\",EAST],AUTHORITY[\"EPSG\",\"2512\"]]"); p = add_epsg_def (filter, first, last, 2513, "epsg", 2513, "Pulkovo 1942 / Gauss-Kruger CM 135E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 135E\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",135],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 12, "\",EAST],AUTHORITY[\"EPSG\",\"2513\"]]"); p = add_epsg_def (filter, first, last, 2514, "epsg", 2514, "Pulkovo 1942 / Gauss-Kruger CM 141E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 141E\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",141],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 12, "\",EAST],AUTHORITY[\"EPSG\",\"2514\"]]"); p = add_epsg_def (filter, first, last, 2515, "epsg", 2515, "Pulkovo 1942 / Gauss-Kruger CM 147E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 147E\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",147],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 12, "\",EAST],AUTHORITY[\"EPSG\",\"2515\"]]"); p = add_epsg_def (filter, first, last, 2516, "epsg", 2516, "Pulkovo 1942 / Gauss-Kruger CM 153E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 153E\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",153],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 12, "\",EAST],AUTHORITY[\"EPSG\",\"2516\"]]"); p = add_epsg_def (filter, first, last, 2517, "epsg", 2517, "Pulkovo 1942 / Gauss-Kruger CM 159E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 159E\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",159],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 12, "\",EAST],AUTHORITY[\"EPSG\",\"2517\"]]"); p = add_epsg_def (filter, first, last, 2518, "epsg", 2518, "Pulkovo 1942 / Gauss-Kruger CM 165E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 165E\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",165],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 12, "\",EAST],AUTHORITY[\"EPSG\",\"2518\"]]"); p = add_epsg_def (filter, first, last, 2519, "epsg", 2519, "Pulkovo 1942 / Gauss-Kruger CM 171E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 171E\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",171],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 12, "\",EAST],AUTHORITY[\"EPSG\",\"2519\"]]"); p = add_epsg_def (filter, first, last, 2520, "epsg", 2520, "Pulkovo 1942 / Gauss-Kruger CM 177E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 177E\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",177],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 12, "\",EAST],AUTHORITY[\"EPSG\",\"2520\"]]"); p = add_epsg_def (filter, first, last, 2521, "epsg", 2521, "Pulkovo 1942 / Gauss-Kruger CM 177W"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 177W\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",-177],PA"); add_srs_wkt (p, 9, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 10, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "Y\",EAST],AUTHORITY[\"EPSG\",\"2521\"]]"); p = add_epsg_def (filter, first, last, 2522, "epsg", 2522, "Pulkovo 1942 / Gauss-Kruger CM 171W"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 171W\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",-171],PA"); add_srs_wkt (p, 9, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 10, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "Y\",EAST],AUTHORITY[\"EPSG\",\"2522\"]]"); p = add_epsg_def (filter, first, last, 2523, "epsg", 2523, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 7"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=7500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 7\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",2"); add_srs_wkt (p, 9, "1],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",7500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2523\"]]"); p = add_epsg_def (filter, first, last, 2524, "epsg", 2524, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 8"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=8500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 8\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",2"); add_srs_wkt (p, 9, "4],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",8500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2524\"]]"); p = add_epsg_def (filter, first, last, 2525, "epsg", 2525, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 9"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=9500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 9\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",2"); add_srs_wkt (p, 9, "7],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",9500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2525\"]]"); p = add_epsg_def (filter, first, last, 2526, "epsg", 2526, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 10"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=10500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 10\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",3"); add_srs_wkt (p, 9, "0],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",10500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2526\"]]"); } #endif /* full EPSG initialization enabled/disabled */ libspatialite-4.1.1/src/srsinit/epsg_inlined_40.c0000664000175000017500000001166612163502133016665 00000000000000/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_40 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def (filter, first, last, 32559, "epsg", 32559, "WGS 72BE / UTM zone 59S"); add_proj4text (p, 0, "+proj=utm +zone=59 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 59S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",171],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32559\"]]"); p = add_epsg_def (filter, first, last, 32560, "epsg", 32560, "WGS 72BE / UTM zone 60S"); add_proj4text (p, 0, "+proj=utm +zone=60 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 60S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",177],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32560\"]]"); } #endif /* full EPSG initialization enabled/disabled */ libspatialite-4.1.1/src/srsinit/Makefile.in0000664000175000017500000023170312163502133015617 00000000000000# Makefile.in generated by automake 1.12.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/srsinit DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libsrsinit_la_LIBADD = am_libsrsinit_la_OBJECTS = libsrsinit_la-srs_init.lo \ libsrsinit_la-epsg_inlined_00.lo \ libsrsinit_la-epsg_inlined_01.lo \ libsrsinit_la-epsg_inlined_02.lo \ libsrsinit_la-epsg_inlined_03.lo \ libsrsinit_la-epsg_inlined_04.lo \ libsrsinit_la-epsg_inlined_05.lo \ libsrsinit_la-epsg_inlined_06.lo \ libsrsinit_la-epsg_inlined_07.lo \ libsrsinit_la-epsg_inlined_08.lo \ libsrsinit_la-epsg_inlined_09.lo \ libsrsinit_la-epsg_inlined_10.lo \ libsrsinit_la-epsg_inlined_11.lo \ libsrsinit_la-epsg_inlined_12.lo \ libsrsinit_la-epsg_inlined_13.lo \ libsrsinit_la-epsg_inlined_14.lo \ libsrsinit_la-epsg_inlined_15.lo \ libsrsinit_la-epsg_inlined_16.lo \ libsrsinit_la-epsg_inlined_17.lo \ libsrsinit_la-epsg_inlined_18.lo \ libsrsinit_la-epsg_inlined_19.lo \ libsrsinit_la-epsg_inlined_20.lo \ libsrsinit_la-epsg_inlined_21.lo \ libsrsinit_la-epsg_inlined_22.lo \ libsrsinit_la-epsg_inlined_23.lo \ libsrsinit_la-epsg_inlined_24.lo \ libsrsinit_la-epsg_inlined_25.lo \ libsrsinit_la-epsg_inlined_26.lo \ libsrsinit_la-epsg_inlined_27.lo \ libsrsinit_la-epsg_inlined_28.lo \ libsrsinit_la-epsg_inlined_29.lo \ libsrsinit_la-epsg_inlined_30.lo \ libsrsinit_la-epsg_inlined_31.lo \ libsrsinit_la-epsg_inlined_32.lo \ libsrsinit_la-epsg_inlined_33.lo \ libsrsinit_la-epsg_inlined_34.lo \ libsrsinit_la-epsg_inlined_35.lo \ libsrsinit_la-epsg_inlined_36.lo \ libsrsinit_la-epsg_inlined_37.lo \ libsrsinit_la-epsg_inlined_38.lo \ libsrsinit_la-epsg_inlined_39.lo \ libsrsinit_la-epsg_inlined_40.lo \ libsrsinit_la-epsg_inlined_wgs84_00.lo \ libsrsinit_la-epsg_inlined_wgs84_01.lo \ libsrsinit_la-epsg_inlined_prussian.lo \ libsrsinit_la-epsg_inlined_extra.lo libsrsinit_la_OBJECTS = $(am_libsrsinit_la_OBJECTS) libsrsinit_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libsrsinit_la_CFLAGS) \ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libsrsinit_la_SOURCES) DIST_SOURCES = $(libsrsinit_la_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = epsg_update INCLUDES = @CFLAGS@ -I$(top_srcdir)/src/headers noinst_LTLIBRARIES = libsrsinit.la libsrsinit_la_SOURCES = srs_init.c \ epsg_inlined_00.c \ epsg_inlined_01.c \ epsg_inlined_02.c \ epsg_inlined_03.c \ epsg_inlined_04.c \ epsg_inlined_05.c \ epsg_inlined_06.c \ epsg_inlined_07.c \ epsg_inlined_08.c \ epsg_inlined_09.c \ epsg_inlined_10.c \ epsg_inlined_11.c \ epsg_inlined_12.c \ epsg_inlined_13.c \ epsg_inlined_14.c \ epsg_inlined_15.c \ epsg_inlined_16.c \ epsg_inlined_17.c \ epsg_inlined_18.c \ epsg_inlined_19.c \ epsg_inlined_20.c \ epsg_inlined_21.c \ epsg_inlined_22.c \ epsg_inlined_23.c \ epsg_inlined_24.c \ epsg_inlined_25.c \ epsg_inlined_26.c \ epsg_inlined_27.c \ epsg_inlined_28.c \ epsg_inlined_29.c \ epsg_inlined_30.c \ epsg_inlined_31.c \ epsg_inlined_32.c \ epsg_inlined_33.c \ epsg_inlined_34.c \ epsg_inlined_35.c \ epsg_inlined_36.c \ epsg_inlined_37.c \ epsg_inlined_38.c \ epsg_inlined_39.c \ epsg_inlined_40.c \ epsg_inlined_wgs84_00.c \ epsg_inlined_wgs84_01.c \ epsg_inlined_prussian.c \ epsg_inlined_extra.c libsrsinit_la_CFLAGS = -fvisibility=hidden MOSTLYCLEANFILES = *.gcna *.gcno *.gcda all: all-recursive .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/srsinit/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/srsinit/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } libsrsinit.la: $(libsrsinit_la_OBJECTS) $(libsrsinit_la_DEPENDENCIES) $(EXTRA_libsrsinit_la_DEPENDENCIES) $(libsrsinit_la_LINK) $(libsrsinit_la_OBJECTS) $(libsrsinit_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_00.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_01.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_02.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_03.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_04.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_05.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_06.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_07.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_08.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_09.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_10.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_11.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_12.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_13.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_14.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_15.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_16.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_17.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_18.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_19.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_20.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_21.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_22.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_23.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_24.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_25.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_26.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_27.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_28.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_29.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_30.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_31.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_32.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_33.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_34.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_35.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_36.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_37.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_38.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_39.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_40.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_extra.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_prussian.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_wgs84_00.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_wgs84_01.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-srs_init.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< libsrsinit_la-srs_init.lo: srs_init.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-srs_init.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-srs_init.Tpo -c -o libsrsinit_la-srs_init.lo `test -f 'srs_init.c' || echo '$(srcdir)/'`srs_init.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-srs_init.Tpo $(DEPDIR)/libsrsinit_la-srs_init.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='srs_init.c' object='libsrsinit_la-srs_init.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-srs_init.lo `test -f 'srs_init.c' || echo '$(srcdir)/'`srs_init.c libsrsinit_la-epsg_inlined_00.lo: epsg_inlined_00.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_00.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_00.Tpo -c -o libsrsinit_la-epsg_inlined_00.lo `test -f 'epsg_inlined_00.c' || echo '$(srcdir)/'`epsg_inlined_00.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_00.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_00.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_00.c' object='libsrsinit_la-epsg_inlined_00.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_00.lo `test -f 'epsg_inlined_00.c' || echo '$(srcdir)/'`epsg_inlined_00.c libsrsinit_la-epsg_inlined_01.lo: epsg_inlined_01.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_01.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_01.Tpo -c -o libsrsinit_la-epsg_inlined_01.lo `test -f 'epsg_inlined_01.c' || echo '$(srcdir)/'`epsg_inlined_01.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_01.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_01.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_01.c' object='libsrsinit_la-epsg_inlined_01.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_01.lo `test -f 'epsg_inlined_01.c' || echo '$(srcdir)/'`epsg_inlined_01.c libsrsinit_la-epsg_inlined_02.lo: epsg_inlined_02.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_02.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_02.Tpo -c -o libsrsinit_la-epsg_inlined_02.lo `test -f 'epsg_inlined_02.c' || echo '$(srcdir)/'`epsg_inlined_02.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_02.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_02.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_02.c' object='libsrsinit_la-epsg_inlined_02.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_02.lo `test -f 'epsg_inlined_02.c' || echo '$(srcdir)/'`epsg_inlined_02.c libsrsinit_la-epsg_inlined_03.lo: epsg_inlined_03.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_03.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_03.Tpo -c -o libsrsinit_la-epsg_inlined_03.lo `test -f 'epsg_inlined_03.c' || echo '$(srcdir)/'`epsg_inlined_03.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_03.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_03.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_03.c' object='libsrsinit_la-epsg_inlined_03.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_03.lo `test -f 'epsg_inlined_03.c' || echo '$(srcdir)/'`epsg_inlined_03.c libsrsinit_la-epsg_inlined_04.lo: epsg_inlined_04.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_04.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_04.Tpo -c -o libsrsinit_la-epsg_inlined_04.lo `test -f 'epsg_inlined_04.c' || echo '$(srcdir)/'`epsg_inlined_04.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_04.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_04.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_04.c' object='libsrsinit_la-epsg_inlined_04.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_04.lo `test -f 'epsg_inlined_04.c' || echo '$(srcdir)/'`epsg_inlined_04.c libsrsinit_la-epsg_inlined_05.lo: epsg_inlined_05.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_05.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_05.Tpo -c -o libsrsinit_la-epsg_inlined_05.lo `test -f 'epsg_inlined_05.c' || echo '$(srcdir)/'`epsg_inlined_05.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_05.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_05.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_05.c' object='libsrsinit_la-epsg_inlined_05.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_05.lo `test -f 'epsg_inlined_05.c' || echo '$(srcdir)/'`epsg_inlined_05.c libsrsinit_la-epsg_inlined_06.lo: epsg_inlined_06.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_06.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_06.Tpo -c -o libsrsinit_la-epsg_inlined_06.lo `test -f 'epsg_inlined_06.c' || echo '$(srcdir)/'`epsg_inlined_06.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_06.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_06.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_06.c' object='libsrsinit_la-epsg_inlined_06.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_06.lo `test -f 'epsg_inlined_06.c' || echo '$(srcdir)/'`epsg_inlined_06.c libsrsinit_la-epsg_inlined_07.lo: epsg_inlined_07.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_07.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_07.Tpo -c -o libsrsinit_la-epsg_inlined_07.lo `test -f 'epsg_inlined_07.c' || echo '$(srcdir)/'`epsg_inlined_07.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_07.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_07.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_07.c' object='libsrsinit_la-epsg_inlined_07.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_07.lo `test -f 'epsg_inlined_07.c' || echo '$(srcdir)/'`epsg_inlined_07.c libsrsinit_la-epsg_inlined_08.lo: epsg_inlined_08.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_08.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_08.Tpo -c -o libsrsinit_la-epsg_inlined_08.lo `test -f 'epsg_inlined_08.c' || echo '$(srcdir)/'`epsg_inlined_08.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_08.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_08.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_08.c' object='libsrsinit_la-epsg_inlined_08.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_08.lo `test -f 'epsg_inlined_08.c' || echo '$(srcdir)/'`epsg_inlined_08.c libsrsinit_la-epsg_inlined_09.lo: epsg_inlined_09.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_09.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_09.Tpo -c -o libsrsinit_la-epsg_inlined_09.lo `test -f 'epsg_inlined_09.c' || echo '$(srcdir)/'`epsg_inlined_09.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_09.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_09.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_09.c' object='libsrsinit_la-epsg_inlined_09.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_09.lo `test -f 'epsg_inlined_09.c' || echo '$(srcdir)/'`epsg_inlined_09.c libsrsinit_la-epsg_inlined_10.lo: epsg_inlined_10.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_10.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_10.Tpo -c -o libsrsinit_la-epsg_inlined_10.lo `test -f 'epsg_inlined_10.c' || echo '$(srcdir)/'`epsg_inlined_10.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_10.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_10.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_10.c' object='libsrsinit_la-epsg_inlined_10.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_10.lo `test -f 'epsg_inlined_10.c' || echo '$(srcdir)/'`epsg_inlined_10.c libsrsinit_la-epsg_inlined_11.lo: epsg_inlined_11.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_11.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_11.Tpo -c -o libsrsinit_la-epsg_inlined_11.lo `test -f 'epsg_inlined_11.c' || echo '$(srcdir)/'`epsg_inlined_11.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_11.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_11.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_11.c' object='libsrsinit_la-epsg_inlined_11.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_11.lo `test -f 'epsg_inlined_11.c' || echo '$(srcdir)/'`epsg_inlined_11.c libsrsinit_la-epsg_inlined_12.lo: epsg_inlined_12.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_12.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_12.Tpo -c -o libsrsinit_la-epsg_inlined_12.lo `test -f 'epsg_inlined_12.c' || echo '$(srcdir)/'`epsg_inlined_12.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_12.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_12.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_12.c' object='libsrsinit_la-epsg_inlined_12.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_12.lo `test -f 'epsg_inlined_12.c' || echo '$(srcdir)/'`epsg_inlined_12.c libsrsinit_la-epsg_inlined_13.lo: epsg_inlined_13.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_13.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_13.Tpo -c -o libsrsinit_la-epsg_inlined_13.lo `test -f 'epsg_inlined_13.c' || echo '$(srcdir)/'`epsg_inlined_13.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_13.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_13.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_13.c' object='libsrsinit_la-epsg_inlined_13.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_13.lo `test -f 'epsg_inlined_13.c' || echo '$(srcdir)/'`epsg_inlined_13.c libsrsinit_la-epsg_inlined_14.lo: epsg_inlined_14.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_14.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_14.Tpo -c -o libsrsinit_la-epsg_inlined_14.lo `test -f 'epsg_inlined_14.c' || echo '$(srcdir)/'`epsg_inlined_14.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_14.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_14.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_14.c' object='libsrsinit_la-epsg_inlined_14.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_14.lo `test -f 'epsg_inlined_14.c' || echo '$(srcdir)/'`epsg_inlined_14.c libsrsinit_la-epsg_inlined_15.lo: epsg_inlined_15.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_15.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_15.Tpo -c -o libsrsinit_la-epsg_inlined_15.lo `test -f 'epsg_inlined_15.c' || echo '$(srcdir)/'`epsg_inlined_15.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_15.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_15.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_15.c' object='libsrsinit_la-epsg_inlined_15.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_15.lo `test -f 'epsg_inlined_15.c' || echo '$(srcdir)/'`epsg_inlined_15.c libsrsinit_la-epsg_inlined_16.lo: epsg_inlined_16.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_16.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_16.Tpo -c -o libsrsinit_la-epsg_inlined_16.lo `test -f 'epsg_inlined_16.c' || echo '$(srcdir)/'`epsg_inlined_16.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_16.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_16.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_16.c' object='libsrsinit_la-epsg_inlined_16.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_16.lo `test -f 'epsg_inlined_16.c' || echo '$(srcdir)/'`epsg_inlined_16.c libsrsinit_la-epsg_inlined_17.lo: epsg_inlined_17.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_17.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_17.Tpo -c -o libsrsinit_la-epsg_inlined_17.lo `test -f 'epsg_inlined_17.c' || echo '$(srcdir)/'`epsg_inlined_17.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_17.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_17.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_17.c' object='libsrsinit_la-epsg_inlined_17.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_17.lo `test -f 'epsg_inlined_17.c' || echo '$(srcdir)/'`epsg_inlined_17.c libsrsinit_la-epsg_inlined_18.lo: epsg_inlined_18.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_18.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_18.Tpo -c -o libsrsinit_la-epsg_inlined_18.lo `test -f 'epsg_inlined_18.c' || echo '$(srcdir)/'`epsg_inlined_18.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_18.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_18.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_18.c' object='libsrsinit_la-epsg_inlined_18.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_18.lo `test -f 'epsg_inlined_18.c' || echo '$(srcdir)/'`epsg_inlined_18.c libsrsinit_la-epsg_inlined_19.lo: epsg_inlined_19.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_19.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_19.Tpo -c -o libsrsinit_la-epsg_inlined_19.lo `test -f 'epsg_inlined_19.c' || echo '$(srcdir)/'`epsg_inlined_19.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_19.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_19.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_19.c' object='libsrsinit_la-epsg_inlined_19.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_19.lo `test -f 'epsg_inlined_19.c' || echo '$(srcdir)/'`epsg_inlined_19.c libsrsinit_la-epsg_inlined_20.lo: epsg_inlined_20.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_20.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_20.Tpo -c -o libsrsinit_la-epsg_inlined_20.lo `test -f 'epsg_inlined_20.c' || echo '$(srcdir)/'`epsg_inlined_20.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_20.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_20.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_20.c' object='libsrsinit_la-epsg_inlined_20.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_20.lo `test -f 'epsg_inlined_20.c' || echo '$(srcdir)/'`epsg_inlined_20.c libsrsinit_la-epsg_inlined_21.lo: epsg_inlined_21.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_21.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_21.Tpo -c -o libsrsinit_la-epsg_inlined_21.lo `test -f 'epsg_inlined_21.c' || echo '$(srcdir)/'`epsg_inlined_21.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_21.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_21.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_21.c' object='libsrsinit_la-epsg_inlined_21.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_21.lo `test -f 'epsg_inlined_21.c' || echo '$(srcdir)/'`epsg_inlined_21.c libsrsinit_la-epsg_inlined_22.lo: epsg_inlined_22.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_22.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_22.Tpo -c -o libsrsinit_la-epsg_inlined_22.lo `test -f 'epsg_inlined_22.c' || echo '$(srcdir)/'`epsg_inlined_22.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_22.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_22.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_22.c' object='libsrsinit_la-epsg_inlined_22.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_22.lo `test -f 'epsg_inlined_22.c' || echo '$(srcdir)/'`epsg_inlined_22.c libsrsinit_la-epsg_inlined_23.lo: epsg_inlined_23.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_23.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_23.Tpo -c -o libsrsinit_la-epsg_inlined_23.lo `test -f 'epsg_inlined_23.c' || echo '$(srcdir)/'`epsg_inlined_23.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_23.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_23.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_23.c' object='libsrsinit_la-epsg_inlined_23.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_23.lo `test -f 'epsg_inlined_23.c' || echo '$(srcdir)/'`epsg_inlined_23.c libsrsinit_la-epsg_inlined_24.lo: epsg_inlined_24.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_24.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_24.Tpo -c -o libsrsinit_la-epsg_inlined_24.lo `test -f 'epsg_inlined_24.c' || echo '$(srcdir)/'`epsg_inlined_24.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_24.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_24.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_24.c' object='libsrsinit_la-epsg_inlined_24.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_24.lo `test -f 'epsg_inlined_24.c' || echo '$(srcdir)/'`epsg_inlined_24.c libsrsinit_la-epsg_inlined_25.lo: epsg_inlined_25.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_25.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_25.Tpo -c -o libsrsinit_la-epsg_inlined_25.lo `test -f 'epsg_inlined_25.c' || echo '$(srcdir)/'`epsg_inlined_25.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_25.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_25.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_25.c' object='libsrsinit_la-epsg_inlined_25.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_25.lo `test -f 'epsg_inlined_25.c' || echo '$(srcdir)/'`epsg_inlined_25.c libsrsinit_la-epsg_inlined_26.lo: epsg_inlined_26.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_26.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_26.Tpo -c -o libsrsinit_la-epsg_inlined_26.lo `test -f 'epsg_inlined_26.c' || echo '$(srcdir)/'`epsg_inlined_26.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_26.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_26.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_26.c' object='libsrsinit_la-epsg_inlined_26.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_26.lo `test -f 'epsg_inlined_26.c' || echo '$(srcdir)/'`epsg_inlined_26.c libsrsinit_la-epsg_inlined_27.lo: epsg_inlined_27.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_27.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_27.Tpo -c -o libsrsinit_la-epsg_inlined_27.lo `test -f 'epsg_inlined_27.c' || echo '$(srcdir)/'`epsg_inlined_27.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_27.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_27.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_27.c' object='libsrsinit_la-epsg_inlined_27.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_27.lo `test -f 'epsg_inlined_27.c' || echo '$(srcdir)/'`epsg_inlined_27.c libsrsinit_la-epsg_inlined_28.lo: epsg_inlined_28.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_28.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_28.Tpo -c -o libsrsinit_la-epsg_inlined_28.lo `test -f 'epsg_inlined_28.c' || echo '$(srcdir)/'`epsg_inlined_28.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_28.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_28.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_28.c' object='libsrsinit_la-epsg_inlined_28.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_28.lo `test -f 'epsg_inlined_28.c' || echo '$(srcdir)/'`epsg_inlined_28.c libsrsinit_la-epsg_inlined_29.lo: epsg_inlined_29.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_29.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_29.Tpo -c -o libsrsinit_la-epsg_inlined_29.lo `test -f 'epsg_inlined_29.c' || echo '$(srcdir)/'`epsg_inlined_29.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_29.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_29.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_29.c' object='libsrsinit_la-epsg_inlined_29.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_29.lo `test -f 'epsg_inlined_29.c' || echo '$(srcdir)/'`epsg_inlined_29.c libsrsinit_la-epsg_inlined_30.lo: epsg_inlined_30.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_30.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_30.Tpo -c -o libsrsinit_la-epsg_inlined_30.lo `test -f 'epsg_inlined_30.c' || echo '$(srcdir)/'`epsg_inlined_30.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_30.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_30.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_30.c' object='libsrsinit_la-epsg_inlined_30.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_30.lo `test -f 'epsg_inlined_30.c' || echo '$(srcdir)/'`epsg_inlined_30.c libsrsinit_la-epsg_inlined_31.lo: epsg_inlined_31.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_31.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_31.Tpo -c -o libsrsinit_la-epsg_inlined_31.lo `test -f 'epsg_inlined_31.c' || echo '$(srcdir)/'`epsg_inlined_31.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_31.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_31.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_31.c' object='libsrsinit_la-epsg_inlined_31.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_31.lo `test -f 'epsg_inlined_31.c' || echo '$(srcdir)/'`epsg_inlined_31.c libsrsinit_la-epsg_inlined_32.lo: epsg_inlined_32.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_32.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_32.Tpo -c -o libsrsinit_la-epsg_inlined_32.lo `test -f 'epsg_inlined_32.c' || echo '$(srcdir)/'`epsg_inlined_32.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_32.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_32.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_32.c' object='libsrsinit_la-epsg_inlined_32.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_32.lo `test -f 'epsg_inlined_32.c' || echo '$(srcdir)/'`epsg_inlined_32.c libsrsinit_la-epsg_inlined_33.lo: epsg_inlined_33.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_33.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_33.Tpo -c -o libsrsinit_la-epsg_inlined_33.lo `test -f 'epsg_inlined_33.c' || echo '$(srcdir)/'`epsg_inlined_33.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_33.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_33.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_33.c' object='libsrsinit_la-epsg_inlined_33.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_33.lo `test -f 'epsg_inlined_33.c' || echo '$(srcdir)/'`epsg_inlined_33.c libsrsinit_la-epsg_inlined_34.lo: epsg_inlined_34.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_34.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_34.Tpo -c -o libsrsinit_la-epsg_inlined_34.lo `test -f 'epsg_inlined_34.c' || echo '$(srcdir)/'`epsg_inlined_34.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_34.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_34.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_34.c' object='libsrsinit_la-epsg_inlined_34.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_34.lo `test -f 'epsg_inlined_34.c' || echo '$(srcdir)/'`epsg_inlined_34.c libsrsinit_la-epsg_inlined_35.lo: epsg_inlined_35.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_35.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_35.Tpo -c -o libsrsinit_la-epsg_inlined_35.lo `test -f 'epsg_inlined_35.c' || echo '$(srcdir)/'`epsg_inlined_35.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_35.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_35.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_35.c' object='libsrsinit_la-epsg_inlined_35.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_35.lo `test -f 'epsg_inlined_35.c' || echo '$(srcdir)/'`epsg_inlined_35.c libsrsinit_la-epsg_inlined_36.lo: epsg_inlined_36.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_36.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_36.Tpo -c -o libsrsinit_la-epsg_inlined_36.lo `test -f 'epsg_inlined_36.c' || echo '$(srcdir)/'`epsg_inlined_36.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_36.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_36.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_36.c' object='libsrsinit_la-epsg_inlined_36.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_36.lo `test -f 'epsg_inlined_36.c' || echo '$(srcdir)/'`epsg_inlined_36.c libsrsinit_la-epsg_inlined_37.lo: epsg_inlined_37.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_37.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_37.Tpo -c -o libsrsinit_la-epsg_inlined_37.lo `test -f 'epsg_inlined_37.c' || echo '$(srcdir)/'`epsg_inlined_37.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_37.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_37.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_37.c' object='libsrsinit_la-epsg_inlined_37.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_37.lo `test -f 'epsg_inlined_37.c' || echo '$(srcdir)/'`epsg_inlined_37.c libsrsinit_la-epsg_inlined_38.lo: epsg_inlined_38.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_38.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_38.Tpo -c -o libsrsinit_la-epsg_inlined_38.lo `test -f 'epsg_inlined_38.c' || echo '$(srcdir)/'`epsg_inlined_38.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_38.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_38.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_38.c' object='libsrsinit_la-epsg_inlined_38.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_38.lo `test -f 'epsg_inlined_38.c' || echo '$(srcdir)/'`epsg_inlined_38.c libsrsinit_la-epsg_inlined_39.lo: epsg_inlined_39.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_39.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_39.Tpo -c -o libsrsinit_la-epsg_inlined_39.lo `test -f 'epsg_inlined_39.c' || echo '$(srcdir)/'`epsg_inlined_39.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_39.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_39.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_39.c' object='libsrsinit_la-epsg_inlined_39.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_39.lo `test -f 'epsg_inlined_39.c' || echo '$(srcdir)/'`epsg_inlined_39.c libsrsinit_la-epsg_inlined_40.lo: epsg_inlined_40.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_40.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_40.Tpo -c -o libsrsinit_la-epsg_inlined_40.lo `test -f 'epsg_inlined_40.c' || echo '$(srcdir)/'`epsg_inlined_40.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_40.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_40.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_40.c' object='libsrsinit_la-epsg_inlined_40.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_40.lo `test -f 'epsg_inlined_40.c' || echo '$(srcdir)/'`epsg_inlined_40.c libsrsinit_la-epsg_inlined_wgs84_00.lo: epsg_inlined_wgs84_00.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_wgs84_00.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_wgs84_00.Tpo -c -o libsrsinit_la-epsg_inlined_wgs84_00.lo `test -f 'epsg_inlined_wgs84_00.c' || echo '$(srcdir)/'`epsg_inlined_wgs84_00.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_wgs84_00.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_wgs84_00.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_wgs84_00.c' object='libsrsinit_la-epsg_inlined_wgs84_00.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_wgs84_00.lo `test -f 'epsg_inlined_wgs84_00.c' || echo '$(srcdir)/'`epsg_inlined_wgs84_00.c libsrsinit_la-epsg_inlined_wgs84_01.lo: epsg_inlined_wgs84_01.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_wgs84_01.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_wgs84_01.Tpo -c -o libsrsinit_la-epsg_inlined_wgs84_01.lo `test -f 'epsg_inlined_wgs84_01.c' || echo '$(srcdir)/'`epsg_inlined_wgs84_01.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_wgs84_01.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_wgs84_01.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_wgs84_01.c' object='libsrsinit_la-epsg_inlined_wgs84_01.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_wgs84_01.lo `test -f 'epsg_inlined_wgs84_01.c' || echo '$(srcdir)/'`epsg_inlined_wgs84_01.c libsrsinit_la-epsg_inlined_prussian.lo: epsg_inlined_prussian.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_prussian.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_prussian.Tpo -c -o libsrsinit_la-epsg_inlined_prussian.lo `test -f 'epsg_inlined_prussian.c' || echo '$(srcdir)/'`epsg_inlined_prussian.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_prussian.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_prussian.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_prussian.c' object='libsrsinit_la-epsg_inlined_prussian.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_prussian.lo `test -f 'epsg_inlined_prussian.c' || echo '$(srcdir)/'`epsg_inlined_prussian.c libsrsinit_la-epsg_inlined_extra.lo: epsg_inlined_extra.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_extra.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_extra.Tpo -c -o libsrsinit_la-epsg_inlined_extra.lo `test -f 'epsg_inlined_extra.c' || echo '$(srcdir)/'`epsg_inlined_extra.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_extra.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_extra.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epsg_inlined_extra.c' object='libsrsinit_la-epsg_inlined_extra.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_extra.lo `test -f 'epsg_inlined_extra.c' || echo '$(srcdir)/'`epsg_inlined_extra.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(RECURSIVE_TARGETS) $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done cscopelist-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) cscopelist); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive $(HEADERS) $(SOURCES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(LTLIBRARIES) installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) \ cscopelist-recursive ctags-recursive install-am install-strip \ tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ clean-noinstLTLIBRARIES cscopelist cscopelist-recursive ctags \ ctags-recursive distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-recursive uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libspatialite-4.1.1/src/srsinit/srs_init.c0000664000175000017500000003175312163502133015553 00000000000000/* srs_init.c -- populating the SPATIAL_REF_SYS table version 4.1, 2013 May 8 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #ifdef _WIN32 #define strcasecmp _stricmp #endif /* not WIN32 */ #include #include static void free_epsg_def (struct epsg_defs *ptr) { /* memory cleanup - destroying an EPSG def item */ if (ptr->auth_name) free (ptr->auth_name); if (ptr->ref_sys_name) free (ptr->ref_sys_name); if (ptr->proj4text) free (ptr->proj4text); if (ptr->srs_wkt) free (ptr->srs_wkt); free (ptr); } SPATIALITE_PRIVATE struct epsg_defs * add_epsg_def (int filter_srid, struct epsg_defs **first, struct epsg_defs **last, int srid, const char *auth_name, int auth_srid, const char *ref_sys_name) { /* appending an EPSG def to the list */ int len; struct epsg_defs *p; if (filter_srid == GAIA_EPSG_NONE) return NULL; if (filter_srid == GAIA_EPSG_ANY || filter_srid == GAIA_EPSG_WGS84_ONLY) ; else if (srid != filter_srid) return NULL; p = malloc (sizeof (struct epsg_defs)); if (!p) return NULL; p->srid = srid; p->auth_name = NULL; p->auth_srid = auth_srid; p->ref_sys_name = NULL; p->proj4text = NULL; p->srs_wkt = NULL; p->next = NULL; if (auth_name) { len = strlen (auth_name); if (len > 0) { p->auth_name = malloc (len + 1); if (p->auth_name == NULL) goto error; strcpy (p->auth_name, auth_name); } } if (ref_sys_name) { len = strlen (ref_sys_name); if (len > 0) { p->ref_sys_name = malloc (len + 1); if (p->ref_sys_name == NULL) goto error; strcpy (p->ref_sys_name, ref_sys_name); } } if (*first == NULL) *first = p; if (*last != NULL) (*last)->next = p; *last = p; return p; error: free_epsg_def (p); return NULL; } SPATIALITE_PRIVATE void add_proj4text (struct epsg_defs *p, int count, const char *text) { /* creating the PROJ4TEXT string */ int len; int olen; char *string; if (p == NULL || text == NULL) return; len = strlen (text); if (!count) { p->proj4text = malloc (len + 1); if (p->proj4text == NULL) return; strcpy (p->proj4text, text); return; } if (p->proj4text == NULL) return; olen = strlen (p->proj4text); string = malloc (len + olen + 1); if (string == NULL) return; strcpy (string, p->proj4text); free (p->proj4text); p->proj4text = string; strcat (p->proj4text, text); } SPATIALITE_PRIVATE void add_srs_wkt (struct epsg_defs *p, int count, const char *text) { /* creating the SRS_WKT string */ int len; int olen; char *string; if (p == NULL || text == NULL) return; len = strlen (text); if (!count) { p->srs_wkt = malloc (len + 1); if (p->srs_wkt == NULL) return; strcpy (p->srs_wkt, text); return; } if (p->srs_wkt == NULL) return; olen = strlen (p->srs_wkt); string = malloc (len + olen + 1); if (string == NULL) return; strcpy (string, p->srs_wkt); free (p->srs_wkt); p->srs_wkt = string; strcat (p->srs_wkt, text); } static void free_epsg (struct epsg_defs *first) { /* memory cleanup - destroying the EPSG list */ struct epsg_defs *p = first; struct epsg_defs *pn; while (p) { pn = p->next; free_epsg_def (p); p = pn; } } static int populate_spatial_ref_sys (sqlite3 * handle, int mode) { /* populating the EPSG dataset into the SPATIAL_REF_SYS table */ struct epsg_defs *first = NULL; struct epsg_defs *last = NULL; struct epsg_defs *p; char sql[1024]; int ret; sqlite3_stmt *stmt; /* initializing the EPSG defs list */ initialize_epsg (mode, &first, &last); /* preparing the SQL parameterized statement */ strcpy (sql, "INSERT INTO spatial_ref_sys "); strcat (sql, "(srid, auth_name, auth_srid, ref_sys_name, proj4text, srtext) "); strcat (sql, "VALUES (?, ?, ?, ?, ?, ?)"); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("%s\n", sqlite3_errmsg (handle)); goto error; } p = first; while (p) { if (p->auth_name == NULL) break; sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_int (stmt, 1, p->srid); sqlite3_bind_text (stmt, 2, p->auth_name, strlen (p->auth_name), SQLITE_STATIC); sqlite3_bind_int (stmt, 3, p->auth_srid); sqlite3_bind_text (stmt, 4, p->ref_sys_name, strlen (p->ref_sys_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 5, p->proj4text, strlen (p->proj4text), SQLITE_STATIC); if (strlen (p->srs_wkt) == 0) sqlite3_bind_text (stmt, 6, "Undefined", 9, SQLITE_STATIC); else sqlite3_bind_text (stmt, 6, p->srs_wkt, strlen (p->srs_wkt), SQLITE_STATIC); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("%s\n", sqlite3_errmsg (handle)); sqlite3_finalize (stmt); goto error; } p = p->next; } sqlite3_finalize (stmt); /* freeing the EPSG defs list */ free_epsg (first); return 1; error: /* freeing the EPSG defs list */ free_epsg (first); return 0; } static int exists_spatial_ref_sys (sqlite3 * handle) { /* checking if the SPATIAL_REF_SYS table exists */ int ret; int ok = 0; char sql[1024]; char **results; int n_rows; int n_columns; char *err_msg = NULL; strcpy (sql, "SELECT name FROM sqlite_master WHERE type = 'table' AND name LIKE 'spatial_ref_sys'"); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, &err_msg); if (ret != SQLITE_OK) { /* some error occurred */ spatialite_e ("XX %s\n", err_msg); sqlite3_free (err_msg); return 0; } if (n_rows > 0) ok = 1; sqlite3_free_table (results); return ok; } static int check_spatial_ref_sys (sqlite3 * handle) { /* checking if the SPATIAL_REF_SYS table has an appropriate layout */ int ret; int i; const char *name; char sql[1024]; char **results; int n_rows; int n_columns; char *err_msg = NULL; int rs_srid = 0; int auth_name = 0; int auth_srid = 0; int ref_sys_name = 0; int proj4text = 0; int srtext = 0; strcpy (sql, "PRAGMA table_info(spatial_ref_sys)"); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, &err_msg); if (ret != SQLITE_OK) { /* some error occurred */ spatialite_e ("%s\n", err_msg); sqlite3_free (err_msg); return 0; } if (n_rows > 0) { for (i = 1; i <= n_rows; i++) { name = results[(i * n_columns) + 1]; if (strcasecmp (name, "srid") == 0) rs_srid = 1; if (strcasecmp (name, "auth_name") == 0) auth_name = 1; if (strcasecmp (name, "auth_srid") == 0) auth_srid = 1; if (strcasecmp (name, "ref_sys_name") == 0) ref_sys_name = 1; if (strcasecmp (name, "proj4text") == 0) proj4text = 1; if (strcasecmp (name, "srtext") == 0) srtext = 1; } } sqlite3_free_table (results); if (rs_srid && auth_name && auth_srid && ref_sys_name && proj4text && srtext) ret = 1; else ret = 0; return ret; } static int spatial_ref_sys_count (sqlite3 * handle) { /* checking if the SPATIAL_REF_SYS table is empty */ int ret; int i; int count = 0; char sql[1024]; char **results; int n_rows; int n_columns; char *err_msg = NULL; strcpy (sql, "SELECT Count(*) FROM spatial_ref_sys"); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, &err_msg); if (ret != SQLITE_OK) { /* some error occurred */ spatialite_e ("%s\n", err_msg); sqlite3_free (err_msg); return 0; } if (n_rows > 0) { for (i = 1; i <= n_rows; i++) { count = atoi (results[(i * n_columns) + 0]); } } sqlite3_free_table (results); return count; } SPATIALITE_DECLARE int spatial_ref_sys_init (sqlite3 * handle, int verbose) { /* / deprecated function / [still supported simply not to break API-level back-compatibility] */ return spatial_ref_sys_init2 (handle, GAIA_EPSG_ANY, verbose); } SPATIALITE_DECLARE int spatial_ref_sys_init2 (sqlite3 * handle, int mode, int verbose) { /* populating the EPSG dataset into the SPATIAL_REF_SYS table */ if (!exists_spatial_ref_sys (handle)) { if (verbose) spatialite_e ("the SPATIAL_REF_SYS table doesn't exists\n"); return 0; } if (!check_spatial_ref_sys (handle)) { if (verbose) spatialite_e ("the SPATIAL_REF_SYS table has an unsupported layout\n"); return 0; } if (spatial_ref_sys_count (handle)) { if (verbose) spatialite_e ("the SPATIAL_REF_SYS table already contains some row(s)\n"); return 0; } if (mode == GAIA_EPSG_ANY || mode == GAIA_EPSG_NONE || mode == GAIA_EPSG_WGS84_ONLY) ; else mode = GAIA_EPSG_ANY; if (populate_spatial_ref_sys (handle, mode)) { if (verbose && mode != GAIA_EPSG_NONE) spatialite_e ("OK: the SPATIAL_REF_SYS table was successfully populated\n"); return 1; } return 0; } SPATIALITE_DECLARE int insert_epsg_srid (sqlite3 * handle, int srid) { /* inserting a single EPSG definition into the SPATIAL_REF_SYS table */ struct epsg_defs *first = NULL; struct epsg_defs *last = NULL; char sql[1024]; int ret; int error = 0; sqlite3_stmt *stmt; if (!exists_spatial_ref_sys (handle)) { spatialite_e ("the SPATIAL_REF_SYS table doesn't exists\n"); return 0; } if (!check_spatial_ref_sys (handle)) { spatialite_e ("the SPATIAL_REF_SYS table has an unsupported layout\n"); return 0; } /* initializing the EPSG defs list */ initialize_epsg (srid, &first, &last); if (first == NULL) { spatialite_e ("SRID=%d isn't defined in the EPSG inlined dataset\n", srid); return 0; } /* preparing the SQL parameterized statement */ strcpy (sql, "INSERT INTO spatial_ref_sys "); strcat (sql, "(srid, auth_name, auth_srid, ref_sys_name, proj4text, srtext) "); strcat (sql, "VALUES (?, ?, ?, ?, ?, ?)"); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("%s\n", sqlite3_errmsg (handle)); error = 1; goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_int (stmt, 1, first->srid); sqlite3_bind_text (stmt, 2, first->auth_name, strlen (first->auth_name), SQLITE_STATIC); sqlite3_bind_int (stmt, 3, first->auth_srid); sqlite3_bind_text (stmt, 4, first->ref_sys_name, strlen (first->ref_sys_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 5, first->proj4text, strlen (first->proj4text), SQLITE_STATIC); if (strlen (first->srs_wkt) == 0) sqlite3_bind_text (stmt, 6, "Undefined", 9, SQLITE_STATIC); else sqlite3_bind_text (stmt, 6, first->srs_wkt, strlen (first->srs_wkt), SQLITE_STATIC); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("%s\n", sqlite3_errmsg (handle)); error = 1; goto stop; } stop: if (stmt != NULL) sqlite3_finalize (stmt); /* freeing the EPSG defs list */ free_epsg (first); if (error) return 0; return 1; } libspatialite-4.1.1/src/srsinit/epsg_inlined_08.c0000664000175000017500000053327612163502133016677 00000000000000/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_08 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def (filter, first, last, 2830, "epsg", 2830, "NAD83(HARN) / New York West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.999"); add_proj4text (p, 1, "9375 +x_0=350000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / New York West\",GEOGCS[\"NAD83(HA"); add_srs_wkt (p, 1, "RN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",40],PARAMETER[\"central_meridian\",-78.583333333333"); add_srs_wkt (p, 9, "33],PARAMETER[\"scale_factor\",0.9999375],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_easting\",350000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); add_srs_wkt (p, 12, "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2830\"]]"); p = add_epsg_def (filter, first, last, 2831, "epsg", 2831, "NAD83(HARN) / New York Long Island"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666"); add_proj4text (p, 1, "666 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / New York Long Island\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netwo"); add_srs_wkt (p, 2, "rk\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 8, "standard_parallel_1\",41.03333333333333],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_2\",40.66666666666666],PARAMETER[\"latitu"); add_srs_wkt (p, 10, "de_of_origin\",40.16666666666666],PARAMETER[\"central_me"); add_srs_wkt (p, 11, "ridian\",-74],PARAMETER[\"false_easting\",300000],PARAME"); add_srs_wkt (p, 12, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 14, "ORITY[\"EPSG\",\"2831\"]]"); p = add_epsg_def (filter, first, last, 2832, "epsg", 2832, "NAD83(HARN) / North Dakota North"); add_proj4text (p, 0, "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.43333333333"); add_proj4text (p, 1, "333 +lat_0=47 +lon_0=-100.5 +x_0=600000 +y_0=0 +ellps=GR"); add_proj4text (p, 2, "S80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / North Dakota North\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network"); add_srs_wkt (p, 2, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"st"); add_srs_wkt (p, 8, "andard_parallel_1\",48.73333333333333],PARAMETER[\"stand"); add_srs_wkt (p, 9, "ard_parallel_2\",47.43333333333333],PARAMETER[\"latitude"); add_srs_wkt (p, 10, "_of_origin\",47],PARAMETER[\"central_meridian\",-100.5],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",600000],PARAMETER[\"false_no"); add_srs_wkt (p, 12, "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 13, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"2832\"]]"); p = add_epsg_def (filter, first, last, 2833, "epsg", 2833, "NAD83(HARN) / North Dakota South"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.48333333333333 +lat_2=46.18333333333"); add_proj4text (p, 1, "333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=600000 +"); add_proj4text (p, 2, "y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 3, "efs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / North Dakota South\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network"); add_srs_wkt (p, 2, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"st"); add_srs_wkt (p, 8, "andard_parallel_1\",47.48333333333333],PARAMETER[\"stand"); add_srs_wkt (p, 9, "ard_parallel_2\",46.18333333333333],PARAMETER[\"latitude"); add_srs_wkt (p, 10, "_of_origin\",45.66666666666666],PARAMETER[\"central_meri"); add_srs_wkt (p, 11, "dian\",-100.5],PARAMETER[\"false_easting\",600000],PARAM"); add_srs_wkt (p, 12, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 14, "HORITY[\"EPSG\",\"2833\"]]"); p = add_epsg_def (filter, first, last, 2834, "epsg", 2834, "NAD83(HARN) / Ohio North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.7 +lat_2=40.43333333333333 +lat_0=39"); add_proj4text (p, 1, ".66666666666666 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=G"); add_proj4text (p, 2, "RS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Ohio North\",GEOGCS[\"NAD83(HARN)"); add_srs_wkt (p, 1, "\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPHER"); add_srs_wkt (p, 2, "OID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 8, "rallel_1\",41.7],PARAMETER[\"standard_parallel_2\",40.43"); add_srs_wkt (p, 9, "333333333333],PARAMETER[\"latitude_of_origin\",39.666666"); add_srs_wkt (p, 10, "66666666],PARAMETER[\"central_meridian\",-82.5],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_easting\",600000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 13, "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2834\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def (filter, first, last, 2835, "epsg", 2835, "NAD83(HARN) / Ohio South"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.03333333333333 +lat_2=38.73333333333"); add_proj4text (p, 1, "333 +lat_0=38 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, "80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Ohio South\",GEOGCS[\"NAD83(HARN)"); add_srs_wkt (p, 1, "\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPHER"); add_srs_wkt (p, 2, "OID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 8, "rallel_1\",40.03333333333333],PARAMETER[\"standard_paral"); add_srs_wkt (p, 9, "lel_2\",38.73333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 10, "n\",38],PARAMETER[\"central_meridian\",-82.5],PARAMETER["); add_srs_wkt (p, 11, "\"false_easting\",600000],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 12, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 13, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2835\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def (filter, first, last, 2836, "epsg", 2836, "NAD83(HARN) / Oklahoma North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.76666666666667 +lat_2=35.56666666666"); add_proj4text (p, 1, "667 +lat_0=35 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80"); add_proj4text (p, 2, " +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Oklahoma North\",GEOGCS[\"NAD83(H"); add_srs_wkt (p, 1, "ARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standa"); add_srs_wkt (p, 8, "rd_parallel_1\",36.76666666666667],PARAMETER[\"standard_"); add_srs_wkt (p, 9, "parallel_2\",35.56666666666667],PARAMETER[\"latitude_of_"); add_srs_wkt (p, 10, "origin\",35],PARAMETER[\"central_meridian\",-98],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_easting\",600000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 13, "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2836\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def (filter, first, last, 2837, "epsg", 2837, "NAD83(HARN) / Oklahoma South"); add_proj4text (p, 0, "+proj=lcc +lat_1=35.23333333333333 +lat_2=33.93333333333"); add_proj4text (p, 1, "333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Oklahoma South\",GEOGCS[\"NAD83(H"); add_srs_wkt (p, 1, "ARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standa"); add_srs_wkt (p, 8, "rd_parallel_1\",35.23333333333333],PARAMETER[\"standard_"); add_srs_wkt (p, 9, "parallel_2\",33.93333333333333],PARAMETER[\"latitude_of_"); add_srs_wkt (p, 10, "origin\",33.33333333333334],PARAMETER[\"central_meridian"); add_srs_wkt (p, 11, "\",-98],PARAMETER[\"false_easting\",600000],PARAMETER[\""); add_srs_wkt (p, 12, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); add_srs_wkt (p, 14, "\"EPSG\",\"2837\"]]"); p = add_epsg_def (filter, first, last, 2838, "epsg", 2838, "NAD83(HARN) / Oregon North"); add_proj4text (p, 0, "+proj=lcc +lat_1=46 +lat_2=44.33333333333334 +lat_0=43.6"); add_proj4text (p, 1, "6666666666666 +lon_0=-120.5 +x_0=2500000 +y_0=0 +ellps=G"); add_proj4text (p, 2, "RS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Oregon North\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 8, "_parallel_1\",46],PARAMETER[\"standard_parallel_2\",44.3"); add_srs_wkt (p, 9, "3333333333334],PARAMETER[\"latitude_of_origin\",43.66666"); add_srs_wkt (p, 10, "666666666],PARAMETER[\"central_meridian\",-120.5],PARAME"); add_srs_wkt (p, 11, "TER[\"false_easting\",2500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 12, "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 13, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"28"); add_srs_wkt (p, 14, "38\"]]"); p = add_epsg_def (filter, first, last, 2839, "epsg", 2839, "NAD83(HARN) / Oregon South"); add_proj4text (p, 0, "+proj=lcc +lat_1=44 +lat_2=42.33333333333334 +lat_0=41.6"); add_proj4text (p, 1, "6666666666666 +lon_0=-120.5 +x_0=1500000 +y_0=0 +ellps=G"); add_proj4text (p, 2, "RS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Oregon South\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 8, "_parallel_1\",44],PARAMETER[\"standard_parallel_2\",42.3"); add_srs_wkt (p, 9, "3333333333334],PARAMETER[\"latitude_of_origin\",41.66666"); add_srs_wkt (p, 10, "666666666],PARAMETER[\"central_meridian\",-120.5],PARAME"); add_srs_wkt (p, 11, "TER[\"false_easting\",1500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 12, "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 13, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"28"); add_srs_wkt (p, 14, "39\"]]"); p = add_epsg_def (filter, first, last, 2840, "epsg", 2840, "NAD83(HARN) / Rhode Island"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.9"); add_proj4text (p, 1, "9999375 +x_0=100000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0"); add_proj4text (p, 2, ",0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Rhode Island\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",41.08333333333334],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "71.5],PARAMETER[\"scale_factor\",0.99999375],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",100000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 11, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2840\"]]"); p = add_epsg_def (filter, first, last, 2841, "epsg", 2841, "NAD83(HARN) / South Dakota North"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.68333333333333 +lat_2=44.41666666666"); add_proj4text (p, 1, "666 +lat_0=43.83333333333334 +lon_0=-100 +x_0=600000 +y_"); add_proj4text (p, 2, "0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_def"); add_proj4text (p, 3, "s"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / South Dakota North\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network"); add_srs_wkt (p, 2, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"st"); add_srs_wkt (p, 8, "andard_parallel_1\",45.68333333333333],PARAMETER[\"stand"); add_srs_wkt (p, 9, "ard_parallel_2\",44.41666666666666],PARAMETER[\"latitude"); add_srs_wkt (p, 10, "_of_origin\",43.83333333333334],PARAMETER[\"central_meri"); add_srs_wkt (p, 11, "dian\",-100],PARAMETER[\"false_easting\",600000],PARAMET"); add_srs_wkt (p, 12, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 14, "RITY[\"EPSG\",\"2841\"]]"); p = add_epsg_def (filter, first, last, 2842, "epsg", 2842, "NAD83(HARN) / South Dakota South"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.4 +lat_2=42.83333333333334 +lat_0=42"); add_proj4text (p, 1, ".33333333333334 +lon_0=-100.3333333333333 +x_0=600000 +y"); add_proj4text (p, 2, "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); add_proj4text (p, 3, "fs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / South Dakota South\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network"); add_srs_wkt (p, 2, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"st"); add_srs_wkt (p, 8, "andard_parallel_1\",44.4],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 9, "2\",42.83333333333334],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 10, "42.33333333333334],PARAMETER[\"central_meridian\",-100.3"); add_srs_wkt (p, 11, "333333333333],PARAMETER[\"false_easting\",600000],PARAME"); add_srs_wkt (p, 12, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 14, "ORITY[\"EPSG\",\"2842\"]]"); p = add_epsg_def (filter, first, last, 2843, "epsg", 2843, "NAD83(HARN) / Tennessee"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.41666666666666 +lat_2=35.25 +lat_0=3"); add_proj4text (p, 1, "4.33333333333334 +lon_0=-86 +x_0=600000 +y_0=0 +ellps=GR"); add_proj4text (p, 2, "S80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Tennessee\",GEOGCS[\"NAD83(HARN)\""); add_srs_wkt (p, 1, ",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPHEROI"); add_srs_wkt (p, 2, "D[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\""); add_srs_wkt (p, 7, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 8, "llel_1\",36.41666666666666],PARAMETER[\"standard_paralle"); add_srs_wkt (p, 9, "l_2\",35.25],PARAMETER[\"latitude_of_origin\",34.3333333"); add_srs_wkt (p, 10, "3333334],PARAMETER[\"central_meridian\",-86],PARAMETER[\""); add_srs_wkt (p, 11, "false_easting\",600000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 13, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2843\"]]"); p = add_epsg_def (filter, first, last, 2844, "epsg", 2844, "NAD83(HARN) / Texas North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.18333333333333 +lat_2=34.65 +lat_0=3"); add_proj4text (p, 1, "4 +lon_0=-101.5 +x_0=200000 +y_0=1000000 +ellps=GRS80 +t"); add_proj4text (p, 2, "owgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Texas North\",GEOGCS[\"NAD83(HARN"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPHE"); add_srs_wkt (p, 2, "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTIO"); add_srs_wkt (p, 7, "N[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_"); add_srs_wkt (p, 8, "parallel_1\",36.18333333333333],PARAMETER[\"standard_par"); add_srs_wkt (p, 9, "allel_2\",34.65],PARAMETER[\"latitude_of_origin\",34],PA"); add_srs_wkt (p, 10, "RAMETER[\"central_meridian\",-101.5],PARAMETER[\"false_e"); add_srs_wkt (p, 11, "asting\",200000],PARAMETER[\"false_northing\",1000000],U"); add_srs_wkt (p, 12, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 13, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2844\"]]"); p = add_epsg_def (filter, first, last, 2845, "epsg", 2845, "NAD83(HARN) / Texas North Central"); add_proj4text (p, 0, "+proj=lcc +lat_1=33.96666666666667 +lat_2=32.13333333333"); add_proj4text (p, 1, "333 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000 +y"); add_proj4text (p, 2, "_0=2000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 3, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Texas North Central\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Networ"); add_srs_wkt (p, 2, "k\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"st"); add_srs_wkt (p, 8, "andard_parallel_1\",33.96666666666667],PARAMETER[\"stand"); add_srs_wkt (p, 9, "ard_parallel_2\",32.13333333333333],PARAMETER[\"latitude"); add_srs_wkt (p, 10, "_of_origin\",31.66666666666667],PARAMETER[\"central_meri"); add_srs_wkt (p, 11, "dian\",-98.5],PARAMETER[\"false_easting\",600000],PARAME"); add_srs_wkt (p, 12, "TER[\"false_northing\",2000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 14, "],AUTHORITY[\"EPSG\",\"2845\"]]"); p = add_epsg_def (filter, first, last, 2846, "epsg", 2846, "NAD83(HARN) / Texas Central"); add_proj4text (p, 0, "+proj=lcc +lat_1=31.88333333333333 +lat_2=30.11666666666"); add_proj4text (p, 1, "667 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +"); add_proj4text (p, 2, "x_0=700000 +y_0=3000000 +ellps=GRS80 +towgs84=0,0,0,0,0,"); add_proj4text (p, 3, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Texas Central\",GEOGCS[\"NAD83(HA"); add_srs_wkt (p, 1, "RN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 8, "_parallel_1\",31.88333333333333],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_2\",30.11666666666667],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 10, "igin\",29.66666666666667],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 11, ",-100.3333333333333],PARAMETER[\"false_easting\",700000]"); add_srs_wkt (p, 12, ",PARAMETER[\"false_northing\",3000000],UNIT[\"metre\",1,"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 14, ",NORTH],AUTHORITY[\"EPSG\",\"2846\"]]"); p = add_epsg_def (filter, first, last, 2847, "epsg", 2847, "NAD83(HARN) / Texas South Central"); add_proj4text (p, 0, "+proj=lcc +lat_1=30.28333333333333 +lat_2=28.38333333333"); add_proj4text (p, 1, "333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0"); add_proj4text (p, 2, "=4000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +n"); add_proj4text (p, 3, "o_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Texas South Central\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Networ"); add_srs_wkt (p, 2, "k\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"st"); add_srs_wkt (p, 8, "andard_parallel_1\",30.28333333333333],PARAMETER[\"stand"); add_srs_wkt (p, 9, "ard_parallel_2\",28.38333333333333],PARAMETER[\"latitude"); add_srs_wkt (p, 10, "_of_origin\",27.83333333333333],PARAMETER[\"central_meri"); add_srs_wkt (p, 11, "dian\",-99],PARAMETER[\"false_easting\",600000],PARAMETE"); add_srs_wkt (p, 12, "R[\"false_northing\",4000000],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 14, "AUTHORITY[\"EPSG\",\"2847\"]]"); p = add_epsg_def (filter, first, last, 2848, "epsg", 2848, "NAD83(HARN) / Texas South"); add_proj4text (p, 0, "+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666"); add_proj4text (p, 1, "667 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=300000 +y"); add_proj4text (p, 2, "_0=5000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 3, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Texas South\",GEOGCS[\"NAD83(HARN"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPHE"); add_srs_wkt (p, 2, "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTIO"); add_srs_wkt (p, 7, "N[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_"); add_srs_wkt (p, 8, "parallel_1\",27.83333333333333],PARAMETER[\"standard_par"); add_srs_wkt (p, 9, "allel_2\",26.16666666666667],PARAMETER[\"latitude_of_ori"); add_srs_wkt (p, 10, "gin\",25.66666666666667],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 11, "-98.5],PARAMETER[\"false_easting\",300000],PARAMETER[\"f"); add_srs_wkt (p, 12, "alse_northing\",5000000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 14, "RITY[\"EPSG\",\"2848\"]]"); p = add_epsg_def (filter, first, last, 2849, "epsg", 2849, "NAD83(HARN) / Utah North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666"); add_proj4text (p, 1, "667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000 +"); add_proj4text (p, 2, "y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m"); add_proj4text (p, 3, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Utah North\",GEOGCS[\"NAD83(HARN)"); add_srs_wkt (p, 1, "\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPHER"); add_srs_wkt (p, 2, "OID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 8, "rallel_1\",41.78333333333333],PARAMETER[\"standard_paral"); add_srs_wkt (p, 9, "lel_2\",40.71666666666667],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 10, "n\",40.33333333333334],PARAMETER[\"central_meridian\",-1"); add_srs_wkt (p, 11, "11.5],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); add_srs_wkt (p, 12, "lse_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR"); add_srs_wkt (p, 14, "ITY[\"EPSG\",\"2849\"]]"); p = add_epsg_def (filter, first, last, 2850, "epsg", 2850, "NAD83(HARN) / Utah Central"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=3"); add_proj4text (p, 1, "8.33333333333334 +lon_0=-111.5 +x_0=500000 +y_0=2000000 "); add_proj4text (p, 2, "+ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Utah Central\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 8, "_parallel_1\",40.65],PARAMETER[\"standard_parallel_2\",3"); add_srs_wkt (p, 9, "9.01666666666667],PARAMETER[\"latitude_of_origin\",38.33"); add_srs_wkt (p, 10, "333333333334],PARAMETER[\"central_meridian\",-111.5],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 12, "ing\",2000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 13, "1\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 14, "G\",\"2850\"]]"); p = add_epsg_def (filter, first, last, 2851, "epsg", 2851, "NAD83(HARN) / Utah South"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=3"); add_proj4text (p, 1, "6.66666666666666 +lon_0=-111.5 +x_0=500000 +y_0=3000000 "); add_proj4text (p, 2, "+ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Utah South\",GEOGCS[\"NAD83(HARN)"); add_srs_wkt (p, 1, "\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPHER"); add_srs_wkt (p, 2, "OID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 8, "rallel_1\",38.35],PARAMETER[\"standard_parallel_2\",37.2"); add_srs_wkt (p, 9, "1666666666667],PARAMETER[\"latitude_of_origin\",36.66666"); add_srs_wkt (p, 10, "666666666],PARAMETER[\"central_meridian\",-111.5],PARAME"); add_srs_wkt (p, 11, "TER[\"false_easting\",500000],PARAMETER[\"false_northing"); add_srs_wkt (p, 12, "\",3000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 13, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"2851\"]]"); p = add_epsg_def (filter, first, last, 2852, "epsg", 2852, "NAD83(HARN) / Vermont"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964286 +x_0"); add_proj4text (p, 1, "=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 2, "s=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Vermont\",GEOGCS[\"NAD83(HARN)\","); add_srs_wkt (p, 1, "DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"615"); add_srs_wkt (p, 4, "2\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",4"); add_srs_wkt (p, 8, "2.5],PARAMETER[\"central_meridian\",-72.5],PARAMETER[\"s"); add_srs_wkt (p, 9, "cale_factor\",0.999964286],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"2852\"]]"); p = add_epsg_def (filter, first, last, 2853, "epsg", 2853, "NAD83(HARN) / Virginia North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.2 +lat_2=38.03333333333333 +lat_0=37"); add_proj4text (p, 1, ".66666666666666 +lon_0=-78.5 +x_0=3500000 +y_0=2000000 +"); add_proj4text (p, 2, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Virginia North\",GEOGCS[\"NAD83(H"); add_srs_wkt (p, 1, "ARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standa"); add_srs_wkt (p, 8, "rd_parallel_1\",39.2],PARAMETER[\"standard_parallel_2\","); add_srs_wkt (p, 9, "38.03333333333333],PARAMETER[\"latitude_of_origin\",37.6"); add_srs_wkt (p, 10, "6666666666666],PARAMETER[\"central_meridian\",-78.5],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_easting\",3500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 12, "hing\",2000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "01\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP"); add_srs_wkt (p, 14, "SG\",\"2853\"]]"); p = add_epsg_def (filter, first, last, 2854, "epsg", 2854, "NAD83(HARN) / Virginia South"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.96666666666667 +lat_2=36.76666666666"); add_proj4text (p, 1, "667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3500000 +"); add_proj4text (p, 2, "y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m"); add_proj4text (p, 3, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Virginia South\",GEOGCS[\"NAD83(H"); add_srs_wkt (p, 1, "ARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standa"); add_srs_wkt (p, 8, "rd_parallel_1\",37.96666666666667],PARAMETER[\"standard_"); add_srs_wkt (p, 9, "parallel_2\",36.76666666666667],PARAMETER[\"latitude_of_"); add_srs_wkt (p, 10, "origin\",36.33333333333334],PARAMETER[\"central_meridian"); add_srs_wkt (p, 11, "\",-78.5],PARAMETER[\"false_easting\",3500000],PARAMETER"); add_srs_wkt (p, 12, "[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 14, "UTHORITY[\"EPSG\",\"2854\"]]"); p = add_epsg_def (filter, first, last, 2855, "epsg", 2855, "NAD83(HARN) / Washington North"); add_proj4text (p, 0, "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.5 +lat_0=47"); add_proj4text (p, 1, " +lon_0=-120.8333333333333 +x_0=500000 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, "80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Washington North\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 8, "ard_parallel_1\",48.73333333333333],PARAMETER[\"standard"); add_srs_wkt (p, 9, "_parallel_2\",47.5],PARAMETER[\"latitude_of_origin\",47]"); add_srs_wkt (p, 10, ",PARAMETER[\"central_meridian\",-120.8333333333333],PARA"); add_srs_wkt (p, 11, "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); add_srs_wkt (p, 12, "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 13, "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2"); add_srs_wkt (p, 14, "855\"]]"); p = add_epsg_def (filter, first, last, 2856, "epsg", 2856, "NAD83(HARN) / Washington South"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.33333333333334 +lat_2=45.83333333333"); add_proj4text (p, 1, "334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000 +"); add_proj4text (p, 2, "y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 3, "efs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Washington South\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 8, "ard_parallel_1\",47.33333333333334],PARAMETER[\"standard"); add_srs_wkt (p, 9, "_parallel_2\",45.83333333333334],PARAMETER[\"latitude_of"); add_srs_wkt (p, 10, "_origin\",45.33333333333334],PARAMETER[\"central_meridia"); add_srs_wkt (p, 11, "n\",-120.5],PARAMETER[\"false_easting\",500000],PARAMETE"); add_srs_wkt (p, 12, "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR"); add_srs_wkt (p, 14, "ITY[\"EPSG\",\"2856\"]]"); p = add_epsg_def (filter, first, last, 2857, "epsg", 2857, "NAD83(HARN) / West Virginia North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79."); add_proj4text (p, 1, "5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / West Virginia North\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Networ"); add_srs_wkt (p, 2, "k\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"st"); add_srs_wkt (p, 8, "andard_parallel_1\",40.25],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 9, "_2\",39],PARAMETER[\"latitude_of_origin\",38.5],PARAMETE"); add_srs_wkt (p, 10, "R[\"central_meridian\",-79.5],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",600000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Y\",NORTH],AUTHORITY[\"EPSG\",\"2857\"]]"); p = add_epsg_def (filter, first, last, 2858, "epsg", 2858, "NAD83(HARN) / West Virginia South"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333"); add_proj4text (p, 1, "333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +ellps=GRS80"); add_proj4text (p, 2, " +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / West Virginia South\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Networ"); add_srs_wkt (p, 2, "k\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"st"); add_srs_wkt (p, 8, "andard_parallel_1\",38.88333333333333],PARAMETER[\"stand"); add_srs_wkt (p, 9, "ard_parallel_2\",37.48333333333333],PARAMETER[\"latitude"); add_srs_wkt (p, 10, "_of_origin\",37],PARAMETER[\"central_meridian\",-81],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_easting\",600000],PARAMETER[\"false_north"); add_srs_wkt (p, 12, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 13, "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "2858\"]]"); p = add_epsg_def (filter, first, last, 2859, "epsg", 2859, "NAD83(HARN) / Wisconsin North"); add_proj4text (p, 0, "+proj=lcc +lat_1=46.76666666666667 +lat_2=45.56666666666"); add_proj4text (p, 1, "667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Wisconsin North\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 8, "ard_parallel_1\",46.76666666666667],PARAMETER[\"standard"); add_srs_wkt (p, 9, "_parallel_2\",45.56666666666667],PARAMETER[\"latitude_of"); add_srs_wkt (p, 10, "_origin\",45.16666666666666],PARAMETER[\"central_meridia"); add_srs_wkt (p, 11, "n\",-90],PARAMETER[\"false_easting\",600000],PARAMETER[\""); add_srs_wkt (p, 12, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); add_srs_wkt (p, 14, "\"EPSG\",\"2859\"]]"); p = add_epsg_def (filter, first, last, 2860, "epsg", 2860, "NAD83(HARN) / Wisconsin Central"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.5 +lat_2=44.25 +lat_0=43.83333333333"); add_proj4text (p, 1, "334 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84="); add_proj4text (p, 2, "0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Wisconsin Central\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 8, "ard_parallel_1\",45.5],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",44.25],PARAMETER[\"latitude_of_origin\",43.833333333333"); add_srs_wkt (p, 10, "34],PARAMETER[\"central_meridian\",-90],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_easting\",600000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 12, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2860\"]]"); p = add_epsg_def (filter, first, last, 2861, "epsg", 2861, "NAD83(HARN) / Wisconsin South"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.06666666666667 +lat_2=42.73333333333"); add_proj4text (p, 1, "333 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80"); add_proj4text (p, 2, " +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Wisconsin South\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 8, "ard_parallel_1\",44.06666666666667],PARAMETER[\"standard"); add_srs_wkt (p, 9, "_parallel_2\",42.73333333333333],PARAMETER[\"latitude_of"); add_srs_wkt (p, 10, "_origin\",42],PARAMETER[\"central_meridian\",-90],PARAME"); add_srs_wkt (p, 11, "TER[\"false_easting\",600000],PARAMETER[\"false_northing"); add_srs_wkt (p, 12, "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 13, "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"286"); add_srs_wkt (p, 14, "1\"]]"); p = add_epsg_def (filter, first, last, 2862, "epsg", 2862, "NAD83(HARN) / Wyoming East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.9"); add_proj4text (p, 1, "999375 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Wyoming East\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",40.5],PARAMETER[\"central_meridian\",-105.166666666"); add_srs_wkt (p, 9, "6667],PARAMETER[\"scale_factor\",0.9999375],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",200000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 11, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2862\"]]"); p = add_epsg_def (filter, first, last, 2863, "epsg", 2863, "NAD83(HARN) / Wyoming East Central"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.9"); add_proj4text (p, 1, "999375 +x_0=400000 +y_0=100000 +ellps=GRS80 +towgs84=0,0"); add_proj4text (p, 2, ",0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Wyoming East Central\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netwo"); add_srs_wkt (p, 2, "rk\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",40.5],PARAMETER[\"central_meridian\",-107.3"); add_srs_wkt (p, 9, "333333333333],PARAMETER[\"scale_factor\",0.9999375],PARA"); add_srs_wkt (p, 10, "METER[\"false_easting\",400000],PARAMETER[\"false_northi"); add_srs_wkt (p, 11, "ng\",100000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"2863\"]]"); p = add_epsg_def (filter, first, last, 2864, "epsg", 2864, "NAD83(HARN) / Wyoming West Central"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.9999375 +x_0"); add_proj4text (p, 1, "=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 2, "s=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Wyoming West Central\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netwo"); add_srs_wkt (p, 2, "rk\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",40.5],PARAMETER[\"central_meridian\",-108.7"); add_srs_wkt (p, 9, "5],PARAMETER[\"scale_factor\",0.9999375],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",600000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2864\"]]"); p = add_epsg_def (filter, first, last, 2865, "epsg", 2865, "NAD83(HARN) / Wyoming West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.9"); add_proj4text (p, 1, "999375 +x_0=800000 +y_0=100000 +ellps=GRS80 +towgs84=0,0"); add_proj4text (p, 2, ",0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Wyoming West\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",40.5],PARAMETER[\"central_meridian\",-110.083333333"); add_srs_wkt (p, 9, "3333],PARAMETER[\"scale_factor\",0.9999375],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",800000],PARAMETER[\"false_northing\",100"); add_srs_wkt (p, 11, "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS"); add_srs_wkt (p, 12, "[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2865"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def (filter, first, last, 2866, "epsg", 2866, "NAD83(HARN) / Puerto Rico and Virgin Is."); add_proj4text (p, 0, "+proj=lcc +lat_1=18.43333333333333 +lat_2=18.03333333333"); add_proj4text (p, 1, "333 +lat_0=17.83333333333333 +lon_0=-66.43333333333334 +"); add_proj4text (p, 2, "x_0=200000 +y_0=200000 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 3, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Puerto Rico and Virgin Is.\",GEOG"); add_srs_wkt (p, 1, "CS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference"); add_srs_wkt (p, 2, "_Network\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"415"); add_srs_wkt (p, 7, "2\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); add_srs_wkt (p, 8, "TER[\"standard_parallel_1\",18.43333333333333],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_2\",18.03333333333333],PARAMETER[\""); add_srs_wkt (p, 10, "latitude_of_origin\",17.83333333333333],PARAMETER[\"cent"); add_srs_wkt (p, 11, "ral_meridian\",-66.43333333333334],PARAMETER[\"false_eas"); add_srs_wkt (p, 12, "ting\",200000],PARAMETER[\"false_northing\",200000],UNIT"); add_srs_wkt (p, 13, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EA"); add_srs_wkt (p, 14, "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2866\"]]"); p = add_epsg_def (filter, first, last, 2867, "epsg", 2867, "NAD83(HARN) / Arizona East (ft)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Arizona East (ft)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",31],PARAMETER[\"central_meridian\",-110.16666666"); add_srs_wkt (p, 9, "66667],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_easting\",700000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 11, "IT[\"foot\",0.3048,AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\""); add_srs_wkt (p, 12, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2867\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def (filter, first, last, 2868, "epsg", 2868, "NAD83(HARN) / Arizona Central (ft)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Arizona Central (ft)\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netwo"); add_srs_wkt (p, 2, "rk\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",31],PARAMETER[\"central_meridian\",-111.916"); add_srs_wkt (p, 9, "6666666667],PARAMETER[\"scale_factor\",0.9999],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",700000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "0],UNIT[\"foot\",0.3048,AUTHORITY[\"EPSG\",\"9002\"]],AX"); add_srs_wkt (p, 12, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"28"); add_srs_wkt (p, 13, "68\"]]"); p = add_epsg_def (filter, first, last, 2869, "epsg", 2869, "NAD83(HARN) / Arizona West (ft)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0"); add_proj4text (p, 1, "=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 2, "s=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Arizona West (ft)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",31],PARAMETER[\"central_meridian\",-113.75],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",0.999933333],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",700000],PARAMETER[\"false_northing\",0],UNIT[\"f"); add_srs_wkt (p, 11, "oot\",0.3048,AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\"X\",EA"); add_srs_wkt (p, 12, "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2869\"]]"); p = add_epsg_def (filter, first, last, 2870, "epsg", 2870, "NAD83(HARN) / California zone 1 (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.3"); add_proj4text (p, 1, "3333333333334 +lon_0=-122 +x_0=2000000.0001016 +y_0=5000"); add_proj4text (p, 2, "00.0001016001 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units"); add_proj4text (p, 3, "=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / California zone 1 (ftUS)\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_N"); add_srs_wkt (p, 2, "etwork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 8, "[\"standard_parallel_1\",41.66666666666666],PARAMETER[\""); add_srs_wkt (p, 9, "standard_parallel_2\",40],PARAMETER[\"latitude_of_origin"); add_srs_wkt (p, 10, "\",39.33333333333334],PARAMETER[\"central_meridian\",-12"); add_srs_wkt (p, 11, "2],PARAMETER[\"false_easting\",6561666.667],PARAMETER[\""); add_srs_wkt (p, 12, "false_northing\",1640416.667],UNIT[\"US survey foot\",0."); add_srs_wkt (p, 13, "3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); add_srs_wkt (p, 14, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2870\"]]"); p = add_epsg_def (filter, first, last, 2871, "epsg", 2871, "NAD83(HARN) / California zone 2 (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333"); add_proj4text (p, 1, "334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000.00"); add_proj4text (p, 2, "01016 +y_0=500000.0001016001 +ellps=GRS80 +towgs84=0,0,0"); add_proj4text (p, 3, ",0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / California zone 2 (ftUS)\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_N"); add_srs_wkt (p, 2, "etwork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 8, "[\"standard_parallel_1\",39.83333333333334],PARAMETER[\""); add_srs_wkt (p, 9, "standard_parallel_2\",38.33333333333334],PARAMETER[\"lat"); add_srs_wkt (p, 10, "itude_of_origin\",37.66666666666666],PARAMETER[\"central"); add_srs_wkt (p, 11, "_meridian\",-122],PARAMETER[\"false_easting\",6561666.66"); add_srs_wkt (p, 12, "7],PARAMETER[\"false_northing\",1640416.667],UNIT[\"US s"); add_srs_wkt (p, 13, "urvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 14, "3\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 15, "G\",\"2871\"]]"); p = add_epsg_def (filter, first, last, 2872, "epsg", 2872, "NAD83(HARN) / California zone 3 (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666"); add_proj4text (p, 1, "667 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000.0001016 +y_0="); add_proj4text (p, 2, "500000.0001016001 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 3, "nits=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / California zone 3 (ftUS)\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_N"); add_srs_wkt (p, 2, "etwork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 8, "[\"standard_parallel_1\",38.43333333333333],PARAMETER[\""); add_srs_wkt (p, 9, "standard_parallel_2\",37.06666666666667],PARAMETER[\"lat"); add_srs_wkt (p, 10, "itude_of_origin\",36.5],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 11, "120.5],PARAMETER[\"false_easting\",6561666.667],PARAMETE"); add_srs_wkt (p, 12, "R[\"false_northing\",1640416.667],UNIT[\"US survey foot\""); add_srs_wkt (p, 13, ",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\""); add_srs_wkt (p, 14, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2872\"]"); add_srs_wkt (p, 15, "]"); p = add_epsg_def (filter, first, last, 2873, "epsg", 2873, "NAD83(HARN) / California zone 4 (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.3333333333333"); add_proj4text (p, 1, "4 +lon_0=-119 +x_0=2000000.0001016 +y_0=500000.000101600"); add_proj4text (p, 2, "1 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_d"); add_proj4text (p, 3, "efs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / California zone 4 (ftUS)\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_N"); add_srs_wkt (p, 2, "etwork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 8, "[\"standard_parallel_1\",37.25],PARAMETER[\"standard_par"); add_srs_wkt (p, 9, "allel_2\",36],PARAMETER[\"latitude_of_origin\",35.333333"); add_srs_wkt (p, 10, "33333334],PARAMETER[\"central_meridian\",-119],PARAMETER"); add_srs_wkt (p, 11, "[\"false_easting\",6561666.667],PARAMETER[\"false_northi"); add_srs_wkt (p, 12, "ng\",1640416.667],UNIT[\"US survey foot\",0.304800609601"); add_srs_wkt (p, 13, "2192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS"); add_srs_wkt (p, 14, "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2873\"]]"); p = add_epsg_def (filter, first, last, 2874, "epsg", 2874, "NAD83(HARN) / California zone 5 (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333"); add_proj4text (p, 1, "333 +lat_0=33.5 +lon_0=-118 +x_0=2000000.0001016 +y_0=50"); add_proj4text (p, 2, "0000.0001016001 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +uni"); add_proj4text (p, 3, "ts=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / California zone 5 (ftUS)\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_N"); add_srs_wkt (p, 2, "etwork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 8, "[\"standard_parallel_1\",35.46666666666667],PARAMETER[\""); add_srs_wkt (p, 9, "standard_parallel_2\",34.03333333333333],PARAMETER[\"lat"); add_srs_wkt (p, 10, "itude_of_origin\",33.5],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 11, "118],PARAMETER[\"false_easting\",6561666.667],PARAMETER["); add_srs_wkt (p, 12, "\"false_northing\",1640416.667],UNIT[\"US survey foot\","); add_srs_wkt (p, 13, "0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\""); add_srs_wkt (p, 14, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2874\"]"); add_srs_wkt (p, 15, "]"); p = add_epsg_def (filter, first, last, 2875, "epsg", 2875, "NAD83(HARN) / California zone 6 (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333"); add_proj4text (p, 1, "333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000"); add_proj4text (p, 2, ".0001016 +y_0=500000.0001016001 +ellps=GRS80 +towgs84=0,"); add_proj4text (p, 3, "0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / California zone 6 (ftUS)\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_N"); add_srs_wkt (p, 2, "etwork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 8, "[\"standard_parallel_1\",33.88333333333333],PARAMETER[\""); add_srs_wkt (p, 9, "standard_parallel_2\",32.78333333333333],PARAMETER[\"lat"); add_srs_wkt (p, 10, "itude_of_origin\",32.16666666666666],PARAMETER[\"central"); add_srs_wkt (p, 11, "_meridian\",-116.25],PARAMETER[\"false_easting\",6561666"); add_srs_wkt (p, 12, ".667],PARAMETER[\"false_northing\",1640416.667],UNIT[\"U"); add_srs_wkt (p, 13, "S survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 15, "EPSG\",\"2875\"]]"); p = add_epsg_def (filter, first, last, 2876, "epsg", 2876, "NAD83(HARN) / Colorado North (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.78333333333333 +lat_2=39.71666666666"); add_proj4text (p, 1, "667 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8"); add_proj4text (p, 2, "288036576 +y_0=304800.6096012192 +ellps=GRS80 +towgs84=0"); add_proj4text (p, 3, ",0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Colorado North (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netw"); add_srs_wkt (p, 2, "ork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 8, "standard_parallel_1\",40.78333333333333],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_2\",39.71666666666667],PARAMETER[\"latitu"); add_srs_wkt (p, 10, "de_of_origin\",39.33333333333334],PARAMETER[\"central_me"); add_srs_wkt (p, 11, "ridian\",-105.5],PARAMETER[\"false_easting\",3000000],PA"); add_srs_wkt (p, 12, "RAMETER[\"false_northing\",1000000],UNIT[\"US survey foo"); add_srs_wkt (p, 13, "t\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXI"); add_srs_wkt (p, 14, "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"287"); add_srs_wkt (p, 15, "6\"]]"); p = add_epsg_def (filter, first, last, 2877, "epsg", 2877, "NAD83(HARN) / Colorado Central (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.8333333333"); add_proj4text (p, 1, "3334 +lon_0=-105.5 +x_0=914401.8288036576 +y_0=304800.60"); add_proj4text (p, 2, "96012192 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-f"); add_proj4text (p, 3, "t +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Colorado Central (ftUS)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Ne"); add_srs_wkt (p, 2, "twork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 8, "[\"standard_parallel_1\",39.75],PARAMETER[\"standard_par"); add_srs_wkt (p, 9, "allel_2\",38.45],PARAMETER[\"latitude_of_origin\",37.833"); add_srs_wkt (p, 10, "33333333334],PARAMETER[\"central_meridian\",-105.5],PARA"); add_srs_wkt (p, 11, "METER[\"false_easting\",3000000],PARAMETER[\"false_north"); add_srs_wkt (p, 12, "ing\",1000000],UNIT[\"US survey foot\",0.304800609601219"); add_srs_wkt (p, 13, "2,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 14, "Y\",NORTH],AUTHORITY[\"EPSG\",\"2877\"]]"); p = add_epsg_def (filter, first, last, 2878, "epsg", 2878, "NAD83(HARN) / Colorado South (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333"); add_proj4text (p, 1, "333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8"); add_proj4text (p, 2, "288036576 +y_0=304800.6096012192 +ellps=GRS80 +towgs84=0"); add_proj4text (p, 3, ",0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Colorado South (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netw"); add_srs_wkt (p, 2, "ork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 8, "standard_parallel_1\",38.43333333333333],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_2\",37.23333333333333],PARAMETER[\"latitu"); add_srs_wkt (p, 10, "de_of_origin\",36.66666666666666],PARAMETER[\"central_me"); add_srs_wkt (p, 11, "ridian\",-105.5],PARAMETER[\"false_easting\",3000000],PA"); add_srs_wkt (p, 12, "RAMETER[\"false_northing\",1000000],UNIT[\"US survey foo"); add_srs_wkt (p, 13, "t\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXI"); add_srs_wkt (p, 14, "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"287"); add_srs_wkt (p, 15, "8\"]]"); p = add_epsg_def (filter, first, last, 2879, "epsg", 2879, "NAD83(HARN) / Connecticut (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40"); add_proj4text (p, 1, ".83333333333334 +lon_0=-72.75 +x_0=304800.6096012192 +y_"); add_proj4text (p, 2, "0=152400.3048006096 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 "); add_proj4text (p, 3, "+units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Connecticut (ftUS)\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network"); add_srs_wkt (p, 2, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"st"); add_srs_wkt (p, 8, "andard_parallel_1\",41.86666666666667],PARAMETER[\"stand"); add_srs_wkt (p, 9, "ard_parallel_2\",41.2],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 10, "40.83333333333334],PARAMETER[\"central_meridian\",-72.75"); add_srs_wkt (p, 11, "],PARAMETER[\"false_easting\",1000000],PARAMETER[\"false"); add_srs_wkt (p, 12, "_northing\",500000],UNIT[\"US survey foot\",0.3048006096"); add_srs_wkt (p, 13, "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 14, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2879\"]]"); p = add_epsg_def (filter, first, last, 2880, "epsg", 2880, "NAD83(HARN) / Delaware (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999"); add_proj4text (p, 1, "995 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +towgs84="); add_proj4text (p, 2, "0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Delaware (ftUS)\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",38],PARAMETER[\"central_meridian\",-75.416666666"); add_srs_wkt (p, 9, "66667],PARAMETER[\"scale_factor\",0.999995],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",656166.667],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"2880\"]]"); p = add_epsg_def (filter, first, last, 2881, "epsg", 2881, "NAD83(HARN) / Florida East (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999"); add_proj4text (p, 1, "941177 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +towgs"); add_proj4text (p, 2, "84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Florida East (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Networ"); add_srs_wkt (p, 2, "k\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",24.33333333333333],PARAMETER[\"central_meridi"); add_srs_wkt (p, 9, "an\",-81],PARAMETER[\"scale_factor\",0.999941177],PARAME"); add_srs_wkt (p, 10, "TER[\"false_easting\",656166.667],PARAMETER[\"false_nort"); add_srs_wkt (p, 11, "hing\",0],UNIT[\"US survey foot\",0.3048006096012192,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); add_srs_wkt (p, 13, "ORTH],AUTHORITY[\"EPSG\",\"2881\"]]"); p = add_epsg_def (filter, first, last, 2882, "epsg", 2882, "NAD83(HARN) / Florida West (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999"); add_proj4text (p, 1, "941177 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +towgs"); add_proj4text (p, 2, "84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Florida West (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Networ"); add_srs_wkt (p, 2, "k\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",24.33333333333333],PARAMETER[\"central_meridi"); add_srs_wkt (p, 9, "an\",-82],PARAMETER[\"scale_factor\",0.999941177],PARAME"); add_srs_wkt (p, 10, "TER[\"false_easting\",656166.667],PARAMETER[\"false_nort"); add_srs_wkt (p, 11, "hing\",0],UNIT[\"US survey foot\",0.3048006096012192,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); add_srs_wkt (p, 13, "ORTH],AUTHORITY[\"EPSG\",\"2882\"]]"); p = add_epsg_def (filter, first, last, 2883, "epsg", 2883, "NAD83(HARN) / Florida North (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=2"); add_proj4text (p, 1, "9 +lon_0=-84.5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84="); add_proj4text (p, 2, "0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Florida North (ftUS)\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netwo"); add_srs_wkt (p, 2, "rk\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 8, "standard_parallel_1\",30.75],PARAMETER[\"standard_parall"); add_srs_wkt (p, 9, "el_2\",29.58333333333333],PARAMETER[\"latitude_of_origin"); add_srs_wkt (p, 10, "\",29],PARAMETER[\"central_meridian\",-84.5],PARAMETER[\""); add_srs_wkt (p, 11, "false_easting\",1968500],PARAMETER[\"false_northing\",0]"); add_srs_wkt (p, 12, ",UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 14, "HORITY[\"EPSG\",\"2883\"]]"); p = add_epsg_def (filter, first, last, 2884, "epsg", 2884, "NAD83(HARN) / Georgia East (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +towgs84=0,"); add_proj4text (p, 2, "0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Georgia East (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Networ"); add_srs_wkt (p, 2, "k\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",30],PARAMETER[\"central_meridian\",-82.166666"); add_srs_wkt (p, 9, "66666667],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",656166.667],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"2884\"]]"); p = add_epsg_def (filter, first, last, 2885, "epsg", 2885, "NAD83(HARN) / Georgia West (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=699999.9998983998 +y_0=0 +ellps=GRS80 +towgs84=0,"); add_proj4text (p, 2, "0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Georgia West (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Networ"); add_srs_wkt (p, 2, "k\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",30],PARAMETER[\"central_meridian\",-84.166666"); add_srs_wkt (p, 9, "66666667],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",2296583.333],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"2885\"]]"); p = add_epsg_def (filter, first, last, 2886, "epsg", 2886, "NAD83(HARN) / Idaho East (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666"); add_proj4text (p, 1, "666667 +k=0.9999473679999999 +x_0=200000.0001016002 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_"); add_proj4text (p, 3, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Idaho East (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",41.66666666666666],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",-112.1666666666667],PARAMETER[\"scale_factor\",0.999947"); add_srs_wkt (p, 10, "368],PARAMETER[\"false_easting\",656166.667],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"US survey foot\",0.3048006096"); add_srs_wkt (p, 12, "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 13, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2886\"]]"); p = add_epsg_def (filter, first, last, 2887, "epsg", 2887, "NAD83(HARN) / Idaho Central (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.99"); add_proj4text (p, 1, "99473679999999 +x_0=500000.0001016001 +y_0=0 +ellps=GRS8"); add_proj4text (p, 2, "0 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Idaho Central (ftUS)\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netwo"); add_srs_wkt (p, 2, "rk\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",41.66666666666666],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, "dian\",-114],PARAMETER[\"scale_factor\",0.999947368],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_easting\",1640416.667],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",0],UNIT[\"US survey foot\",0.3048006096012192"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"2887\"]]"); p = add_epsg_def (filter, first, last, 2888, "epsg", 2888, "NAD83(HARN) / Idaho West (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0"); add_proj4text (p, 1, ".999933333 +x_0=800000.0001016001 +y_0=0 +ellps=GRS80 +t"); add_proj4text (p, 2, "owgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Idaho West (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",41.66666666666666],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",-115.75],PARAMETER[\"scale_factor\",0.999933333],PARAME"); add_srs_wkt (p, 10, "TER[\"false_easting\",2624666.667],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, "thing\",0],UNIT[\"US survey foot\",0.3048006096012192,AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 13, "NORTH],AUTHORITY[\"EPSG\",\"2888\"]]"); p = add_epsg_def (filter, first, last, 2889, "epsg", 2889, "NAD83(HARN) / Indiana East (ftUS) (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.9"); add_proj4text (p, 1, "99966667 +x_0=99999.99989839978 +y_0=249364.9987299975 +"); add_proj4text (p, 2, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Indiana East (ftUS) (deprecated)\""); add_srs_wkt (p, 1, ",GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Refe"); add_srs_wkt (p, 2, "rence_Network\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4152\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",37.5],PARAMETER[\"central_meridi"); add_srs_wkt (p, 9, "an\",-85.66666666666667],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 10, "9966667],PARAMETER[\"false_easting\",328083.333],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",818125],UNIT[\"US survey foot\",0."); add_srs_wkt (p, 12, "3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); add_srs_wkt (p, 13, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2889\"]]"); p = add_epsg_def (filter, first, last, 2890, "epsg", 2890, "NAD83(HARN) / Indiana West (ftUS) (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.9"); add_proj4text (p, 1, "99966667 +x_0=900000 +y_0=249364.9987299975 +ellps=GRS80"); add_proj4text (p, 2, " +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Indiana West (ftUS) (deprecated)\""); add_srs_wkt (p, 1, ",GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Refe"); add_srs_wkt (p, 2, "rence_Network\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4152\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",37.5],PARAMETER[\"central_meridi"); add_srs_wkt (p, 9, "an\",-87.08333333333333],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 10, "9966667],PARAMETER[\"false_easting\",2952750],PARAMETER["); add_srs_wkt (p, 11, "\"false_northing\",818125],UNIT[\"US survey foot\",0.304"); add_srs_wkt (p, 12, "8006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",E"); add_srs_wkt (p, 13, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2890\"]]"); p = add_epsg_def (filter, first, last, 2891, "epsg", 2891, "NAD83(HARN) / Kentucky North (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666"); add_proj4text (p, 1, "667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000.0001016001 +y_"); add_proj4text (p, 2, "0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no"); add_proj4text (p, 3, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Kentucky North (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netw"); add_srs_wkt (p, 2, "ork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 8, "standard_parallel_1\",37.96666666666667],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_2\",38.96666666666667],PARAMETER[\"latitu"); add_srs_wkt (p, 10, "de_of_origin\",37.5],PARAMETER[\"central_meridian\",-84."); add_srs_wkt (p, 11, "25],PARAMETER[\"false_easting\",1640416.667],PARAMETER[\""); add_srs_wkt (p, 12, "false_northing\",0],UNIT[\"US survey foot\",0.3048006096"); add_srs_wkt (p, 13, "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 14, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2891\"]]"); p = add_epsg_def (filter, first, last, 2892, "epsg", 2892, "NAD83(HARN) / Kentucky South (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.93333333333333 +lat_2=36.73333333333"); add_proj4text (p, 1, "333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000.0"); add_proj4text (p, 2, "001016001 +y_0=500000.0001016001 +ellps=GRS80 +towgs84=0"); add_proj4text (p, 3, ",0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Kentucky South (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netw"); add_srs_wkt (p, 2, "ork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 8, "standard_parallel_1\",37.93333333333333],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_2\",36.73333333333333],PARAMETER[\"latitu"); add_srs_wkt (p, 10, "de_of_origin\",36.33333333333334],PARAMETER[\"central_me"); add_srs_wkt (p, 11, "ridian\",-85.75],PARAMETER[\"false_easting\",1640416.667"); add_srs_wkt (p, 12, "],PARAMETER[\"false_northing\",1640416.667],UNIT[\"US su"); add_srs_wkt (p, 13, "rvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003"); add_srs_wkt (p, 14, "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 15, "\",\"2892\"]]"); p = add_epsg_def (filter, first, last, 2893, "epsg", 2893, "NAD83(HARN) / Maryland (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.45 +lat_2=38.3 +lat_0=37.66666666666"); add_proj4text (p, 1, "666 +lon_0=-77 +x_0=399999.9998983998 +y_0=0 +ellps=GRS8"); add_proj4text (p, 2, "0 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Maryland (ftUS)\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 8, "ard_parallel_1\",39.45],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",38.3],PARAMETER[\"latitude_of_origin\",37.6666666666666"); add_srs_wkt (p, 10, "6],PARAMETER[\"central_meridian\",-77],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",1312333.333],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 14, "ORITY[\"EPSG\",\"2893\"]]"); p = add_epsg_def (filter, first, last, 2894, "epsg", 2894, "NAD83(HARN) / Massachusetts Mainland (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=42.68333333333333 +lat_2=41.71666666666"); add_proj4text (p, 1, "667 +lat_0=41 +lon_0=-71.5 +x_0=200000.0001016002 +y_0=7"); add_proj4text (p, 2, "50000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Massachusetts Mainland (ftUS)\",G"); add_srs_wkt (p, 1, "EOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Refere"); add_srs_wkt (p, 2, "nce_Network\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4152\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_1\",42.68333333333333],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_2\",41.71666666666667],PARAMETER"); add_srs_wkt (p, 10, "[\"latitude_of_origin\",41],PARAMETER[\"central_meridian"); add_srs_wkt (p, 11, "\",-71.5],PARAMETER[\"false_easting\",656166.667],PARAME"); add_srs_wkt (p, 12, "TER[\"false_northing\",2460625],UNIT[\"US survey foot\","); add_srs_wkt (p, 13, "0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\""); add_srs_wkt (p, 14, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2894\"]"); add_srs_wkt (p, 15, "]"); p = add_epsg_def (filter, first, last, 2895, "epsg", 2895, "NAD83(HARN) / Massachusetts Island (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.48333333333333 +lat_2=41.28333333333"); add_proj4text (p, 1, "333 +lat_0=41 +lon_0=-70.5 +x_0=500000.0001016001 +y_0=0"); add_proj4text (p, 2, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_de"); add_proj4text (p, 3, "fs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Massachusetts Island (ftUS)\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Referenc"); add_srs_wkt (p, 2, "e_Network\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"41"); add_srs_wkt (p, 7, "52\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"standard_parallel_1\",41.48333333333333],PARAMETE"); add_srs_wkt (p, 9, "R[\"standard_parallel_2\",41.28333333333333],PARAMETER[\""); add_srs_wkt (p, 10, "latitude_of_origin\",41],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 11, "-70.5],PARAMETER[\"false_easting\",1640416.667],PARAMETE"); add_srs_wkt (p, 12, "R[\"false_northing\",0],UNIT[\"US survey foot\",0.304800"); add_srs_wkt (p, 13, "6096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST"); add_srs_wkt (p, 14, "],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2895\"]]"); p = add_epsg_def (filter, first, last, 2896, "epsg", 2896, "NAD83(HARN) / Michigan North (ft)"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.08333333333334 +lat_2=45.48333333333"); add_proj4text (p, 1, "333 +lat_0=44.78333333333333 +lon_0=-87 +x_0=7999999.999"); add_proj4text (p, 2, "968001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units"); add_proj4text (p, 3, "=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Michigan North (ft)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Networ"); add_srs_wkt (p, 2, "k\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"st"); add_srs_wkt (p, 8, "andard_parallel_1\",47.08333333333334],PARAMETER[\"stand"); add_srs_wkt (p, 9, "ard_parallel_2\",45.48333333333333],PARAMETER[\"latitude"); add_srs_wkt (p, 10, "_of_origin\",44.78333333333333],PARAMETER[\"central_meri"); add_srs_wkt (p, 11, "dian\",-87],PARAMETER[\"false_easting\",26246719.16],PAR"); add_srs_wkt (p, 12, "AMETER[\"false_northing\",0],UNIT[\"foot\",0.3048,AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"9002\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); add_srs_wkt (p, 14, "H],AUTHORITY[\"EPSG\",\"2896\"]]"); p = add_epsg_def (filter, first, last, 2897, "epsg", 2897, "NAD83(HARN) / Michigan Central (ft)"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.7 +lat_2=44.18333333333333 +lat_0=43"); add_proj4text (p, 1, ".31666666666667 +lon_0=-84.36666666666666 +x_0=5999999.9"); add_proj4text (p, 2, "99976001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +uni"); add_proj4text (p, 3, "ts=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Michigan Central (ft)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netw"); add_srs_wkt (p, 2, "ork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 8, "standard_parallel_1\",45.7],PARAMETER[\"standard_paralle"); add_srs_wkt (p, 9, "l_2\",44.18333333333333],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 10, ",43.31666666666667],PARAMETER[\"central_meridian\",-84.3"); add_srs_wkt (p, 11, "6666666666666],PARAMETER[\"false_easting\",19685039.37],"); add_srs_wkt (p, 12, "PARAMETER[\"false_northing\",0],UNIT[\"foot\",0.3048,AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"9002\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); add_srs_wkt (p, 14, "ORTH],AUTHORITY[\"EPSG\",\"2897\"]]"); p = add_epsg_def (filter, first, last, 2898, "epsg", 2898, "NAD83(HARN) / Michigan South (ft)"); add_proj4text (p, 0, "+proj=lcc +lat_1=43.66666666666666 +lat_2=42.1 +lat_0=41"); add_proj4text (p, 1, ".5 +lon_0=-84.36666666666666 +x_0=3999999.999984 +y_0=0 "); add_proj4text (p, 2, "+ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Michigan South (ft)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Networ"); add_srs_wkt (p, 2, "k\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"st"); add_srs_wkt (p, 8, "andard_parallel_1\",43.66666666666666],PARAMETER[\"stand"); add_srs_wkt (p, 9, "ard_parallel_2\",42.1],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 10, "41.5],PARAMETER[\"central_meridian\",-84.36666666666666]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_easting\",13123359.58],PARAMETER[\"fa"); add_srs_wkt (p, 12, "lse_northing\",0],UNIT[\"foot\",0.3048,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"9002\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 14, "[\"EPSG\",\"2898\"]]"); p = add_epsg_def (filter, first, last, 2899, "epsg", 2899, "NAD83(HARN) / Mississippi East (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.9"); add_proj4text (p, 1, "9995 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +towgs84"); add_proj4text (p, 2, "=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Mississippi East (ftUS)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Ne"); add_srs_wkt (p, 2, "twork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",29.5],PARAMETER[\"central_meridian\",-88"); add_srs_wkt (p, 9, ".83333333333333],PARAMETER[\"scale_factor\",0.99995],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_easting\",984250.0000000002],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"US survey foot\",0.3048006096"); add_srs_wkt (p, 12, "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 13, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2899\"]]"); p = add_epsg_def (filter, first, last, 2900, "epsg", 2900, "NAD83(HARN) / Mississippi West (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.9"); add_proj4text (p, 1, "9995 +x_0=699999.9998983998 +y_0=0 +ellps=GRS80 +towgs84"); add_proj4text (p, 2, "=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Mississippi West (ftUS)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Ne"); add_srs_wkt (p, 2, "twork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",29.5],PARAMETER[\"central_meridian\",-90"); add_srs_wkt (p, 9, ".33333333333333],PARAMETER[\"scale_factor\",0.99995],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_easting\",2296583.333],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",0],UNIT[\"US survey foot\",0.3048006096012192"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"2900\"]]"); p = add_epsg_def (filter, first, last, 2901, "epsg", 2901, "NAD83(HARN) / Montana (ft)"); add_proj4text (p, 0, "+proj=lcc +lat_1=49 +lat_2=45 +lat_0=44.25 +lon_0=-109.5"); add_proj4text (p, 1, " +x_0=599999.9999976 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,"); add_proj4text (p, 2, "0,0,0,0 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Montana (ft)\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 8, "_parallel_1\",49],PARAMETER[\"standard_parallel_2\",45],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",44.25],PARAMETER[\"cent"); add_srs_wkt (p, 10, "ral_meridian\",-109.5],PARAMETER[\"false_easting\",19685"); add_srs_wkt (p, 11, "03.937],PARAMETER[\"false_northing\",0],UNIT[\"foot\",0."); add_srs_wkt (p, 12, "3048,AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\"X\",EAST],AXIS"); add_srs_wkt (p, 13, "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2901\"]]"); p = add_epsg_def (filter, first, last, 2902, "epsg", 2902, "NAD83(HARN) / New Mexico East (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999"); add_proj4text (p, 1, "909091 +x_0=165000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 2, "0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / New Mexico East (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netw"); add_srs_wkt (p, 2, "ork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",31],PARAMETER[\"central_meridian\",-104.33"); add_srs_wkt (p, 9, "33333333333],PARAMETER[\"scale_factor\",0.999909091],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_easting\",541337.5],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, "thing\",0],UNIT[\"US survey foot\",0.3048006096012192,AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 13, "NORTH],AUTHORITY[\"EPSG\",\"2902\"]]"); p = add_epsg_def (filter, first, last, 2903, "epsg", 2903, "NAD83(HARN) / New Mexico Central (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=5000"); add_proj4text (p, 1, "00.0001016001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / New Mexico Central (ftUS)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_"); add_srs_wkt (p, 2, "Network\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",31],PARAMETER[\"central_meridian\",-10"); add_srs_wkt (p, 9, "6.25],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",1640416.667],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 11, "],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"2903\"]]"); p = add_epsg_def (filter, first, last, 2904, "epsg", 2904, "NAD83(HARN) / New Mexico West (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999"); add_proj4text (p, 1, "916667 +x_0=830000.0001016001 +y_0=0 +ellps=GRS80 +towgs"); add_proj4text (p, 2, "84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / New Mexico West (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netw"); add_srs_wkt (p, 2, "ork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",31],PARAMETER[\"central_meridian\",-107.83"); add_srs_wkt (p, 9, "33333333333],PARAMETER[\"scale_factor\",0.999916667],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_easting\",2723091.667],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",0],UNIT[\"US survey foot\",0.3048006096012192"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"2904\"]]"); p = add_epsg_def (filter, first, last, 2905, "epsg", 2905, "NAD83(HARN) / New York East (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9"); add_proj4text (p, 1, "999 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 2, ",0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / New York East (ftUS)\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netwo"); add_srs_wkt (p, 2, "rk\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",38.83333333333334],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, "dian\",-74.5],PARAMETER[\"scale_factor\",0.9999],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",492125],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"2905\"]]"); p = add_epsg_def (filter, first, last, 2906, "epsg", 2906, "NAD83(HARN) / New York Central (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.999"); add_proj4text (p, 1, "9375 +x_0=249999.9998983998 +y_0=0 +ellps=GRS80 +towgs84"); add_proj4text (p, 2, "=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / New York Central (ftUS)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Ne"); add_srs_wkt (p, 2, "twork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",40],PARAMETER[\"central_meridian\",-76.5"); add_srs_wkt (p, 9, "8333333333333],PARAMETER[\"scale_factor\",0.9999375],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_easting\",820208.3330000002],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"US survey foot\",0.3048006096"); add_srs_wkt (p, 12, "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 13, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2906\"]]"); p = add_epsg_def (filter, first, last, 2907, "epsg", 2907, "NAD83(HARN) / New York West (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.999"); add_proj4text (p, 1, "9375 +x_0=350000.0001016001 +y_0=0 +ellps=GRS80 +towgs84"); add_proj4text (p, 2, "=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / New York West (ftUS)\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netwo"); add_srs_wkt (p, 2, "rk\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",40],PARAMETER[\"central_meridian\",-78.5833"); add_srs_wkt (p, 9, "3333333333],PARAMETER[\"scale_factor\",0.9999375],PARAME"); add_srs_wkt (p, 10, "TER[\"false_easting\",1148291.667],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, "thing\",0],UNIT[\"US survey foot\",0.3048006096012192,AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 13, "NORTH],AUTHORITY[\"EPSG\",\"2907\"]]"); p = add_epsg_def (filter, first, last, 2908, "epsg", 2908, "NAD83(HARN) / New York Long Island (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666"); add_proj4text (p, 1, "666 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000.0000"); add_proj4text (p, 2, "000001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units"); add_proj4text (p, 3, "=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / New York Long Island (ftUS)\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Referenc"); add_srs_wkt (p, 2, "e_Network\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"41"); add_srs_wkt (p, 7, "52\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"standard_parallel_1\",41.03333333333333],PARAMETE"); add_srs_wkt (p, 9, "R[\"standard_parallel_2\",40.66666666666666],PARAMETER[\""); add_srs_wkt (p, 10, "latitude_of_origin\",40.16666666666666],PARAMETER[\"cent"); add_srs_wkt (p, 11, "ral_meridian\",-74],PARAMETER[\"false_easting\",984250.0"); add_srs_wkt (p, 12, "000000002],PARAMETER[\"false_northing\",0],UNIT[\"US sur"); add_srs_wkt (p, 13, "vey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\""); add_srs_wkt (p, 14, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 15, ",\"2908\"]]"); p = add_epsg_def (filter, first, last, 2909, "epsg", 2909, "NAD83(HARN) / North Dakota North (ft)"); add_proj4text (p, 0, "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.43333333333"); add_proj4text (p, 1, "333 +lat_0=47 +lon_0=-100.5 +x_0=599999.9999976 +y_0=0 +"); add_proj4text (p, 2, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / North Dakota North (ft)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Ne"); add_srs_wkt (p, 2, "twork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 8, "[\"standard_parallel_1\",48.73333333333333],PARAMETER[\""); add_srs_wkt (p, 9, "standard_parallel_2\",47.43333333333333],PARAMETER[\"lat"); add_srs_wkt (p, 10, "itude_of_origin\",47],PARAMETER[\"central_meridian\",-10"); add_srs_wkt (p, 11, "0.5],PARAMETER[\"false_easting\",1968503.937],PARAMETER["); add_srs_wkt (p, 12, "\"false_northing\",0],UNIT[\"foot\",0.3048,AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"9002\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 14, "ORITY[\"EPSG\",\"2909\"]]"); p = add_epsg_def (filter, first, last, 2910, "epsg", 2910, "NAD83(HARN) / North Dakota South (ft)"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.48333333333333 +lat_2=46.18333333333"); add_proj4text (p, 1, "333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=599999.9"); add_proj4text (p, 2, "999976 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units"); add_proj4text (p, 3, "=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / North Dakota South (ft)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Ne"); add_srs_wkt (p, 2, "twork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 8, "[\"standard_parallel_1\",47.48333333333333],PARAMETER[\""); add_srs_wkt (p, 9, "standard_parallel_2\",46.18333333333333],PARAMETER[\"lat"); add_srs_wkt (p, 10, "itude_of_origin\",45.66666666666666],PARAMETER[\"central"); add_srs_wkt (p, 11, "_meridian\",-100.5],PARAMETER[\"false_easting\",1968503."); add_srs_wkt (p, 12, "937],PARAMETER[\"false_northing\",0],UNIT[\"foot\",0.304"); add_srs_wkt (p, 13, "8,AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 14, "Y\",NORTH],AUTHORITY[\"EPSG\",\"2910\"]]"); p = add_epsg_def (filter, first, last, 2911, "epsg", 2911, "NAD83(HARN) / Oklahoma North (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.76666666666667 +lat_2=35.56666666666"); add_proj4text (p, 1, "667 +lat_0=35 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80"); add_proj4text (p, 2, " +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Oklahoma North (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netw"); add_srs_wkt (p, 2, "ork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 8, "standard_parallel_1\",36.76666666666667],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_2\",35.56666666666667],PARAMETER[\"latitu"); add_srs_wkt (p, 10, "de_of_origin\",35],PARAMETER[\"central_meridian\",-98],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_easting\",1968500],PARAMETER[\"false_no"); add_srs_wkt (p, 12, "rthing\",0],UNIT[\"US survey foot\",0.3048006096012192,A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 14, ",NORTH],AUTHORITY[\"EPSG\",\"2911\"]]"); p = add_epsg_def (filter, first, last, 2912, "epsg", 2912, "NAD83(HARN) / Oklahoma South (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=35.23333333333333 +lat_2=33.93333333333"); add_proj4text (p, 1, "333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_"); add_proj4text (p, 3, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Oklahoma South (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netw"); add_srs_wkt (p, 2, "ork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 8, "standard_parallel_1\",35.23333333333333],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_2\",33.93333333333333],PARAMETER[\"latitu"); add_srs_wkt (p, 10, "de_of_origin\",33.33333333333334],PARAMETER[\"central_me"); add_srs_wkt (p, 11, "ridian\",-98],PARAMETER[\"false_easting\",1968500],PARAM"); add_srs_wkt (p, 12, "ETER[\"false_northing\",0],UNIT[\"US survey foot\",0.304"); add_srs_wkt (p, 13, "8006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",E"); add_srs_wkt (p, 14, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2912\"]]"); p = add_epsg_def (filter, first, last, 2913, "epsg", 2913, "NAD83(HARN) / Oregon North (ft)"); add_proj4text (p, 0, "+proj=lcc +lat_1=46 +lat_2=44.33333333333334 +lat_0=43.6"); add_proj4text (p, 1, "6666666666666 +lon_0=-120.5 +x_0=2500000.0001424 +y_0=0 "); add_proj4text (p, 2, "+ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Oregon North (ft)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 8, "ard_parallel_1\",46],PARAMETER[\"standard_parallel_2\",4"); add_srs_wkt (p, 9, "4.33333333333334],PARAMETER[\"latitude_of_origin\",43.66"); add_srs_wkt (p, 10, "666666666666],PARAMETER[\"central_meridian\",-120.5],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_easting\",8202099.738],PARAMETER[\"false_"); add_srs_wkt (p, 12, "northing\",0],UNIT[\"foot\",0.3048,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "9002\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"2913\"]]"); p = add_epsg_def (filter, first, last, 2914, "epsg", 2914, "NAD83(HARN) / Oregon South (ft)"); add_proj4text (p, 0, "+proj=lcc +lat_1=44 +lat_2=42.33333333333334 +lat_0=41.6"); add_proj4text (p, 1, "6666666666666 +lon_0=-120.5 +x_0=1500000.0001464 +y_0=0 "); add_proj4text (p, 2, "+ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Oregon South (ft)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 8, "ard_parallel_1\",44],PARAMETER[\"standard_parallel_2\",4"); add_srs_wkt (p, 9, "2.33333333333334],PARAMETER[\"latitude_of_origin\",41.66"); add_srs_wkt (p, 10, "666666666666],PARAMETER[\"central_meridian\",-120.5],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_easting\",4921259.843],PARAMETER[\"false_"); add_srs_wkt (p, 12, "northing\",0],UNIT[\"foot\",0.3048,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "9002\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"2914\"]]"); p = add_epsg_def (filter, first, last, 2915, "epsg", 2915, "NAD83(HARN) / Tennessee (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.41666666666666 +lat_2=35.25 +lat_0=3"); add_proj4text (p, 1, "4.33333333333334 +lon_0=-86 +x_0=600000 +y_0=0 +ellps=GR"); add_proj4text (p, 2, "S80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Tennessee (ftUS)\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 8, "ard_parallel_1\",36.41666666666666],PARAMETER[\"standard"); add_srs_wkt (p, 9, "_parallel_2\",35.25],PARAMETER[\"latitude_of_origin\",34"); add_srs_wkt (p, 10, ".33333333333334],PARAMETER[\"central_meridian\",-86],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_easting\",1968500],PARAMETER[\"false_nort"); add_srs_wkt (p, 12, "hing\",0],UNIT[\"US survey foot\",0.3048006096012192,AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); add_srs_wkt (p, 14, "ORTH],AUTHORITY[\"EPSG\",\"2915\"]]"); p = add_epsg_def (filter, first, last, 2916, "epsg", 2916, "NAD83(HARN) / Texas North (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.18333333333333 +lat_2=34.65 +lat_0=3"); add_proj4text (p, 1, "4 +lon_0=-101.5 +x_0=200000.0001016002 +y_0=999999.99989"); add_proj4text (p, 2, "83998 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Texas North (ftUS)\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network"); add_srs_wkt (p, 2, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"st"); add_srs_wkt (p, 8, "andard_parallel_1\",36.18333333333333],PARAMETER[\"stand"); add_srs_wkt (p, 9, "ard_parallel_2\",34.65],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 10, ",34],PARAMETER[\"central_meridian\",-101.5],PARAMETER[\""); add_srs_wkt (p, 11, "false_easting\",656166.667],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, ",3280833.333],UNIT[\"US survey foot\",0.3048006096012192"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 14, "\",NORTH],AUTHORITY[\"EPSG\",\"2916\"]]"); p = add_epsg_def (filter, first, last, 2917, "epsg", 2917, "NAD83(HARN) / Texas North Central (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=33.96666666666667 +lat_2=32.13333333333"); add_proj4text (p, 1, "333 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000 +y"); add_proj4text (p, 2, "_0=2000000.0001016 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 3, "units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Texas North Central (ftUS)\",GEOG"); add_srs_wkt (p, 1, "CS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference"); add_srs_wkt (p, 2, "_Network\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"415"); add_srs_wkt (p, 7, "2\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); add_srs_wkt (p, 8, "TER[\"standard_parallel_1\",33.96666666666667],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_2\",32.13333333333333],PARAMETER[\""); add_srs_wkt (p, 10, "latitude_of_origin\",31.66666666666667],PARAMETER[\"cent"); add_srs_wkt (p, 11, "ral_meridian\",-98.5],PARAMETER[\"false_easting\",196850"); add_srs_wkt (p, 12, "0],PARAMETER[\"false_northing\",6561666.667],UNIT[\"US s"); add_srs_wkt (p, 13, "urvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 14, "3\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 15, "G\",\"2917\"]]"); p = add_epsg_def (filter, first, last, 2918, "epsg", 2918, "NAD83(HARN) / Texas Central (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=31.88333333333333 +lat_2=30.11666666666"); add_proj4text (p, 1, "667 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +"); add_proj4text (p, 2, "x_0=699999.9998983998 +y_0=3000000 +ellps=GRS80 +towgs84"); add_proj4text (p, 3, "=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Texas Central (ftUS)\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netwo"); add_srs_wkt (p, 2, "rk\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 8, "standard_parallel_1\",31.88333333333333],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_2\",30.11666666666667],PARAMETER[\"latitu"); add_srs_wkt (p, 10, "de_of_origin\",29.66666666666667],PARAMETER[\"central_me"); add_srs_wkt (p, 11, "ridian\",-100.3333333333333],PARAMETER[\"false_easting\""); add_srs_wkt (p, 12, ",2296583.333],PARAMETER[\"false_northing\",9842500.00000"); add_srs_wkt (p, 13, "0002],UNIT[\"US survey foot\",0.3048006096012192,AUTHORI"); add_srs_wkt (p, 14, "TY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 15, "],AUTHORITY[\"EPSG\",\"2918\"]]"); p = add_epsg_def (filter, first, last, 2919, "epsg", 2919, "NAD83(HARN) / Texas South Central (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=30.28333333333333 +lat_2=28.38333333333"); add_proj4text (p, 1, "333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0"); add_proj4text (p, 2, "=3999999.9998984 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +un"); add_proj4text (p, 3, "its=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Texas South Central (ftUS)\",GEOG"); add_srs_wkt (p, 1, "CS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference"); add_srs_wkt (p, 2, "_Network\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"415"); add_srs_wkt (p, 7, "2\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); add_srs_wkt (p, 8, "TER[\"standard_parallel_1\",30.28333333333333],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_2\",28.38333333333333],PARAMETER[\""); add_srs_wkt (p, 10, "latitude_of_origin\",27.83333333333333],PARAMETER[\"cent"); add_srs_wkt (p, 11, "ral_meridian\",-99],PARAMETER[\"false_easting\",1968500]"); add_srs_wkt (p, 12, ",PARAMETER[\"false_northing\",13123333.333],UNIT[\"US su"); add_srs_wkt (p, 13, "rvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003"); add_srs_wkt (p, 14, "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 15, "\",\"2919\"]]"); p = add_epsg_def (filter, first, last, 2920, "epsg", 2920, "NAD83(HARN) / Texas South (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666"); add_proj4text (p, 1, "667 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=300000.00"); add_proj4text (p, 2, "00000001 +y_0=5000000.0001016 +ellps=GRS80 +towgs84=0,0,"); add_proj4text (p, 3, "0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Texas South (ftUS)\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network"); add_srs_wkt (p, 2, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"st"); add_srs_wkt (p, 8, "andard_parallel_1\",27.83333333333333],PARAMETER[\"stand"); add_srs_wkt (p, 9, "ard_parallel_2\",26.16666666666667],PARAMETER[\"latitude"); add_srs_wkt (p, 10, "_of_origin\",25.66666666666667],PARAMETER[\"central_meri"); add_srs_wkt (p, 11, "dian\",-98.5],PARAMETER[\"false_easting\",984250.0000000"); add_srs_wkt (p, 12, "002],PARAMETER[\"false_northing\",16404166.667],UNIT[\"U"); add_srs_wkt (p, 13, "S survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 15, "EPSG\",\"2920\"]]"); p = add_epsg_def (filter, first, last, 2921, "epsg", 2921, "NAD83(HARN) / Utah North (ft)"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666"); add_proj4text (p, 1, "667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000.0"); add_proj4text (p, 2, "001504 +y_0=999999.9999960001 +ellps=GRS80 +towgs84=0,0,"); add_proj4text (p, 3, "0,0,0,0,0 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Utah North (ft)\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 8, "ard_parallel_1\",41.78333333333333],PARAMETER[\"standard"); add_srs_wkt (p, 9, "_parallel_2\",40.71666666666667],PARAMETER[\"latitude_of"); add_srs_wkt (p, 10, "_origin\",40.33333333333334],PARAMETER[\"central_meridia"); add_srs_wkt (p, 11, "n\",-111.5],PARAMETER[\"false_easting\",1640419.948],PAR"); add_srs_wkt (p, 12, "AMETER[\"false_northing\",3280839.895],UNIT[\"foot\",0.3"); add_srs_wkt (p, 13, "048,AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\"X\",EAST],AXIS["); add_srs_wkt (p, 14, "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2921\"]]"); p = add_epsg_def (filter, first, last, 2922, "epsg", 2922, "NAD83(HARN) / Utah Central (ft)"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=3"); add_proj4text (p, 1, "8.33333333333334 +lon_0=-111.5 +x_0=500000.0001504 +y_0="); add_proj4text (p, 2, "1999999.999992 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 3, "s=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Utah Central (ft)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 8, "ard_parallel_1\",40.65],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",39.01666666666667],PARAMETER[\"latitude_of_origin\",38."); add_srs_wkt (p, 10, "33333333333334],PARAMETER[\"central_meridian\",-111.5],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_easting\",1640419.948],PARAMETER[\"fals"); add_srs_wkt (p, 12, "e_northing\",6561679.79],UNIT[\"foot\",0.3048,AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"9002\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 14, "UTHORITY[\"EPSG\",\"2922\"]]"); p = add_epsg_def (filter, first, last, 2923, "epsg", 2923, "NAD83(HARN) / Utah South (ft)"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=3"); add_proj4text (p, 1, "6.66666666666666 +lon_0=-111.5 +x_0=500000.0001504 +y_0="); add_proj4text (p, 2, "2999999.999988 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 3, "s=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Utah South (ft)\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 8, "ard_parallel_1\",38.35],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",37.21666666666667],PARAMETER[\"latitude_of_origin\",36."); add_srs_wkt (p, 10, "66666666666666],PARAMETER[\"central_meridian\",-111.5],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_easting\",1640419.948],PARAMETER[\"fals"); add_srs_wkt (p, 12, "e_northing\",9842519.685],UNIT[\"foot\",0.3048,AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"9002\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 14, "AUTHORITY[\"EPSG\",\"2923\"]]"); p = add_epsg_def (filter, first, last, 2924, "epsg", 2924, "NAD83(HARN) / Virginia North (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.2 +lat_2=38.03333333333333 +lat_0=37"); add_proj4text (p, 1, ".66666666666666 +lon_0=-78.5 +x_0=3500000.0001016 +y_0=2"); add_proj4text (p, 2, "000000.0001016 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 3, "s=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Virginia North (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netw"); add_srs_wkt (p, 2, "ork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 8, "standard_parallel_1\",39.2],PARAMETER[\"standard_paralle"); add_srs_wkt (p, 9, "l_2\",38.03333333333333],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 10, ",37.66666666666666],PARAMETER[\"central_meridian\",-78.5"); add_srs_wkt (p, 11, "],PARAMETER[\"false_easting\",11482916.667],PARAMETER[\""); add_srs_wkt (p, 12, "false_northing\",6561666.667],UNIT[\"US survey foot\",0."); add_srs_wkt (p, 13, "3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); add_srs_wkt (p, 14, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2924\"]]"); p = add_epsg_def (filter, first, last, 2925, "epsg", 2925, "NAD83(HARN) / Virginia South (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.96666666666667 +lat_2=36.76666666666"); add_proj4text (p, 1, "667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3500000.0"); add_proj4text (p, 2, "001016 +y_0=999999.9998983998 +ellps=GRS80 +towgs84=0,0,"); add_proj4text (p, 3, "0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Virginia South (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netw"); add_srs_wkt (p, 2, "ork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 8, "standard_parallel_1\",37.96666666666667],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_2\",36.76666666666667],PARAMETER[\"latitu"); add_srs_wkt (p, 10, "de_of_origin\",36.33333333333334],PARAMETER[\"central_me"); add_srs_wkt (p, 11, "ridian\",-78.5],PARAMETER[\"false_easting\",11482916.667"); add_srs_wkt (p, 12, "],PARAMETER[\"false_northing\",3280833.333],UNIT[\"US su"); add_srs_wkt (p, 13, "rvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003"); add_srs_wkt (p, 14, "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 15, "\",\"2925\"]]"); p = add_epsg_def (filter, first, last, 2926, "epsg", 2926, "NAD83(HARN) / Washington North (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.5 +lat_0=47"); add_proj4text (p, 1, " +lon_0=-120.8333333333333 +x_0=500000.0001016001 +y_0=0"); add_proj4text (p, 2, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_de"); add_proj4text (p, 3, "fs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Washington North (ftUS)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Ne"); add_srs_wkt (p, 2, "twork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 8, "[\"standard_parallel_1\",48.73333333333333],PARAMETER[\""); add_srs_wkt (p, 9, "standard_parallel_2\",47.5],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 10, "in\",47],PARAMETER[\"central_meridian\",-120.83333333333"); add_srs_wkt (p, 11, "33],PARAMETER[\"false_easting\",1640416.667],PARAMETER[\""); add_srs_wkt (p, 12, "false_northing\",0],UNIT[\"US survey foot\",0.3048006096"); add_srs_wkt (p, 13, "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 14, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2926\"]]"); p = add_epsg_def (filter, first, last, 2927, "epsg", 2927, "NAD83(HARN) / Washington South (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.33333333333334 +lat_2=45.83333333333"); add_proj4text (p, 1, "334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000.0"); add_proj4text (p, 2, "001016001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +un"); add_proj4text (p, 3, "its=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Washington South (ftUS)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Ne"); add_srs_wkt (p, 2, "twork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 8, "[\"standard_parallel_1\",47.33333333333334],PARAMETER[\""); add_srs_wkt (p, 9, "standard_parallel_2\",45.83333333333334],PARAMETER[\"lat"); add_srs_wkt (p, 10, "itude_of_origin\",45.33333333333334],PARAMETER[\"central"); add_srs_wkt (p, 11, "_meridian\",-120.5],PARAMETER[\"false_easting\",1640416."); add_srs_wkt (p, 12, "667],PARAMETER[\"false_northing\",0],UNIT[\"US survey fo"); add_srs_wkt (p, 13, "ot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AX"); add_srs_wkt (p, 14, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"29"); add_srs_wkt (p, 15, "27\"]]"); p = add_epsg_def (filter, first, last, 2928, "epsg", 2928, "NAD83(HARN) / Wisconsin North (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=46.76666666666667 +lat_2=45.56666666666"); add_proj4text (p, 1, "667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_"); add_proj4text (p, 3, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Wisconsin North (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netw"); add_srs_wkt (p, 2, "ork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 8, "standard_parallel_1\",46.76666666666667],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_2\",45.56666666666667],PARAMETER[\"latitu"); add_srs_wkt (p, 10, "de_of_origin\",45.16666666666666],PARAMETER[\"central_me"); add_srs_wkt (p, 11, "ridian\",-90],PARAMETER[\"false_easting\",1968500],PARAM"); add_srs_wkt (p, 12, "ETER[\"false_northing\",0],UNIT[\"US survey foot\",0.304"); add_srs_wkt (p, 13, "8006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",E"); add_srs_wkt (p, 14, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2928\"]]"); p = add_epsg_def (filter, first, last, 2929, "epsg", 2929, "NAD83(HARN) / Wisconsin Central (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.5 +lat_2=44.25 +lat_0=43.83333333333"); add_proj4text (p, 1, "334 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84="); add_proj4text (p, 2, "0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Wisconsin Central (ftUS)\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_N"); add_srs_wkt (p, 2, "etwork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 8, "[\"standard_parallel_1\",45.5],PARAMETER[\"standard_para"); add_srs_wkt (p, 9, "llel_2\",44.25],PARAMETER[\"latitude_of_origin\",43.8333"); add_srs_wkt (p, 10, "3333333334],PARAMETER[\"central_meridian\",-90],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_easting\",1968500],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, ",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 14, "AUTHORITY[\"EPSG\",\"2929\"]]"); p = add_epsg_def (filter, first, last, 2930, "epsg", 2930, "NAD83(HARN) / Wisconsin South (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.06666666666667 +lat_2=42.73333333333"); add_proj4text (p, 1, "333 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80"); add_proj4text (p, 2, " +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Wisconsin South (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netw"); add_srs_wkt (p, 2, "ork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 8, "standard_parallel_1\",44.06666666666667],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_2\",42.73333333333333],PARAMETER[\"latitu"); add_srs_wkt (p, 10, "de_of_origin\",42],PARAMETER[\"central_meridian\",-90],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_easting\",1968500],PARAMETER[\"false_no"); add_srs_wkt (p, 12, "rthing\",0],UNIT[\"US survey foot\",0.3048006096012192,A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 14, ",NORTH],AUTHORITY[\"EPSG\",\"2930\"]]"); } #endif /* full EPSG initialization enabled/disabled */ libspatialite-4.1.1/src/srsinit/epsg_inlined_35.c0000664000175000017500000046167112163502133016676 00000000000000/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_35 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def (filter, first, last, 30173, "epsg", 30173, "Tokyo / Japan Plane Rectangular CS XIII"); add_proj4text (p, 0, "+proj=tmerc +lat_0=44 +lon_0=144.25 +k=0.9999 +x_0=0 +y_"); add_proj4text (p, 1, "0=0 +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tokyo / Japan Plane Rectangular CS XIII\",GEOGC"); add_srs_wkt (p, 1, "S[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",637"); add_srs_wkt (p, 2, "7397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS"); add_srs_wkt (p, 3, "84[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTIO"); add_srs_wkt (p, 7, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 8, "n\",44],PARAMETER[\"central_meridian\",144.25],PARAMETER"); add_srs_wkt (p, 9, "[\"scale_factor\",0.9999],PARAMETER[\"false_easting\",0]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 11, "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAS"); add_srs_wkt (p, 12, "T],AUTHORITY[\"EPSG\",\"30173\"]]"); p = add_epsg_def (filter, first, last, 30174, "epsg", 30174, "Tokyo / Japan Plane Rectangular CS XIV"); add_proj4text (p, 0, "+proj=tmerc +lat_0=26 +lon_0=142 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tokyo / Japan Plane Rectangular CS XIV\",GEOGCS"); add_srs_wkt (p, 1, "[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377"); add_srs_wkt (p, 2, "397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS8"); add_srs_wkt (p, 3, "4[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",26],PARAMETER[\"central_meridian\",142],PARAMETER[\"sca"); add_srs_wkt (p, 9, "le_factor\",0.9999],PARAMETER[\"false_easting\",0],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"30174\"]]"); p = add_epsg_def (filter, first, last, 30175, "epsg", 30175, "Tokyo / Japan Plane Rectangular CS XV"); add_proj4text (p, 0, "+proj=tmerc +lat_0=26 +lon_0=127.5 +k=0.9999 +x_0=0 +y_0"); add_proj4text (p, 1, "=0 +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0"); add_proj4text (p, 2, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tokyo / Japan Plane Rectangular CS XV\",GEOGCS["); add_srs_wkt (p, 1, "\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",63773"); add_srs_wkt (p, 2, "97.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84"); add_srs_wkt (p, 3, "[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",26],PARAMETER[\"central_meridian\",127.5],PARAMETER[\"s"); add_srs_wkt (p, 9, "cale_factor\",0.9999],PARAMETER[\"false_easting\",0],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 11, "\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"30175\"]]"); p = add_epsg_def (filter, first, last, 30176, "epsg", 30176, "Tokyo / Japan Plane Rectangular CS XVI"); add_proj4text (p, 0, "+proj=tmerc +lat_0=26 +lon_0=124 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tokyo / Japan Plane Rectangular CS XVI\",GEOGCS"); add_srs_wkt (p, 1, "[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377"); add_srs_wkt (p, 2, "397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS8"); add_srs_wkt (p, 3, "4[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",26],PARAMETER[\"central_meridian\",124],PARAMETER[\"sca"); add_srs_wkt (p, 9, "le_factor\",0.9999],PARAMETER[\"false_easting\",0],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"30176\"]]"); p = add_epsg_def (filter, first, last, 30177, "epsg", 30177, "Tokyo / Japan Plane Rectangular CS XVII"); add_proj4text (p, 0, "+proj=tmerc +lat_0=26 +lon_0=131 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tokyo / Japan Plane Rectangular CS XVII\",GEOGC"); add_srs_wkt (p, 1, "S[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",637"); add_srs_wkt (p, 2, "7397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS"); add_srs_wkt (p, 3, "84[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTIO"); add_srs_wkt (p, 7, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 8, "n\",26],PARAMETER[\"central_meridian\",131],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9999],PARAMETER[\"false_easting\",0],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"30177\"]]"); p = add_epsg_def (filter, first, last, 30178, "epsg", 30178, "Tokyo / Japan Plane Rectangular CS XVIII"); add_proj4text (p, 0, "+proj=tmerc +lat_0=20 +lon_0=136 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tokyo / Japan Plane Rectangular CS XVIII\",GEOG"); add_srs_wkt (p, 1, "CS[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",63"); add_srs_wkt (p, 2, "77397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWG"); add_srs_wkt (p, 3, "S84[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",20],PARAMETER[\"central_meridian\",136],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9999],PARAMETER[\"false_easting\",0],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"30178\"]]"); p = add_epsg_def (filter, first, last, 30179, "epsg", 30179, "Tokyo / Japan Plane Rectangular CS XIX"); add_proj4text (p, 0, "+proj=tmerc +lat_0=26 +lon_0=154 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tokyo / Japan Plane Rectangular CS XIX\",GEOGCS"); add_srs_wkt (p, 1, "[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377"); add_srs_wkt (p, 2, "397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS8"); add_srs_wkt (p, 3, "4[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",26],PARAMETER[\"central_meridian\",154],PARAMETER[\"sca"); add_srs_wkt (p, 9, "le_factor\",0.9999],PARAMETER[\"false_easting\",0],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"30179\"]]"); p = add_epsg_def (filter, first, last, 30200, "epsg", 30200, "Trinidad 1903 / Trinidad Grid"); add_proj4text (p, 0, "+proj=cass +lat_0=10.44166666666667 +lon_0=-61.333333333"); add_proj4text (p, 1, "33334 +x_0=86501.46392051999 +y_0=65379.0134283 +a=63782"); add_proj4text (p, 2, "93.645208759 +b=6356617.987679838 +towgs84=-61.702,284.4"); add_proj4text (p, 3, "88,472.052,0,0,0,0 +to_meter=0.201166195164 +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Trinidad 1903 / Trinidad Grid\",GEOGCS[\"Trinid"); add_srs_wkt (p, 1, "ad 1903\",DATUM[\"Trinidad_1903\",SPHEROID[\"Clarke 1858"); add_srs_wkt (p, 2, "\",6378293.645208759,294.2606763692654,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7007\"]],TOWGS84[-61.702,284.488,472.052,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6302\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"43"); add_srs_wkt (p, 7, "02\"]],PROJECTION[\"Cassini_Soldner\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",10.44166666666667],PARAMETER[\"central_m"); add_srs_wkt (p, 9, "eridian\",-61.33333333333334],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, ",430000],PARAMETER[\"false_northing\",325000],UNIT[\"Cla"); add_srs_wkt (p, 11, "rke's link\",0.201166195164,AUTHORITY[\"EPSG\",\"9039\"]"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"30200\"]]"); p = add_epsg_def (filter, first, last, 30339, "epsg", 30339, "TC(1948) / UTM zone 39N"); add_proj4text (p, 0, "+proj=utm +zone=39 +ellps=helmert +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"TC(1948) / UTM zone 39N\",GEOGCS[\"TC(1948)\",D"); add_srs_wkt (p, 1, "ATUM[\"Trucial_Coast_1948\",SPHEROID[\"Helmert 1906\",63"); add_srs_wkt (p, 2, "78200,298.3,AUTHORITY[\"EPSG\",\"7020\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"6303\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4303\"]],PROJE"); add_srs_wkt (p, 6, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 7, "rigin\",0],PARAMETER[\"central_meridian\",51],PARAMETER["); add_srs_wkt (p, 8, "\"scale_factor\",0.9996],PARAMETER[\"false_easting\",500"); add_srs_wkt (p, 9, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 10, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS["); add_srs_wkt (p, 11, "\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"30339\"]]"); p = add_epsg_def (filter, first, last, 30340, "epsg", 30340, "TC(1948) / UTM zone 40N"); add_proj4text (p, 0, "+proj=utm +zone=40 +ellps=helmert +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"TC(1948) / UTM zone 40N\",GEOGCS[\"TC(1948)\",D"); add_srs_wkt (p, 1, "ATUM[\"Trucial_Coast_1948\",SPHEROID[\"Helmert 1906\",63"); add_srs_wkt (p, 2, "78200,298.3,AUTHORITY[\"EPSG\",\"7020\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"6303\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4303\"]],PROJE"); add_srs_wkt (p, 6, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 7, "rigin\",0],PARAMETER[\"central_meridian\",57],PARAMETER["); add_srs_wkt (p, 8, "\"scale_factor\",0.9996],PARAMETER[\"false_easting\",500"); add_srs_wkt (p, 9, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 10, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS["); add_srs_wkt (p, 11, "\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"30340\"]]"); p = add_epsg_def (filter, first, last, 30491, "epsg", 30491, "Voirol 1875 / Nord Algerie (ancienne)"); add_proj4text (p, 0, "+proj=lcc +lat_1=36 +lat_0=36 +lon_0=2.7 +k_0=0.99962554"); add_proj4text (p, 1, "4 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +towgs"); add_proj4text (p, 2, "84=-73,-247,227,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Voirol 1875 / Nord Algerie (ancienne)\",GEOGCS["); add_srs_wkt (p, 1, "\"Voirol 1875\",DATUM[\"Voirol_1875\",SPHEROID[\"Clarke "); add_srs_wkt (p, 2, "1880 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7011\"]],TOWGS84[-73,-247,227,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6304\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4304\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAMETER[\"la"); add_srs_wkt (p, 8, "titude_of_origin\",36],PARAMETER[\"central_meridian\",2."); add_srs_wkt (p, 9, "7],PARAMETER[\"scale_factor\",0.999625544],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_easting\",500000],PARAMETER[\"false_northing\",3000"); add_srs_wkt (p, 11, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"30491"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def (filter, first, last, 30492, "epsg", 30492, "Voirol 1875 / Sud Algerie (ancienne)"); add_proj4text (p, 0, "+proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=2.7 +k_0=0.9996"); add_proj4text (p, 1, "25769 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +t"); add_proj4text (p, 2, "owgs84=-73,-247,227,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Voirol 1875 / Sud Algerie (ancienne)\",GEOGCS[\""); add_srs_wkt (p, 1, "Voirol 1875\",DATUM[\"Voirol_1875\",SPHEROID[\"Clarke 18"); add_srs_wkt (p, 2, "80 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7011\"]],TOWGS84[-73,-247,227,0,0,0,0],AUTHORITY[\"EP"); add_srs_wkt (p, 4, "SG\",\"6304\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4304\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Lambert_Conformal_Conic_1SP\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",33.3],PARAMETER[\"central_meridian\",2.7"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",0.999625769],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_easting\",500000],PARAMETER[\"false_northing\",30000"); add_srs_wkt (p, 11, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"30492\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def (filter, first, last, 30493, "epsg", 30493, "Voirol 1879 / Nord Algerie (ancienne)"); add_proj4text (p, 0, "+proj=lcc +lat_1=36 +lat_0=36 +lon_0=2.7 +k_0=0.99962554"); add_proj4text (p, 1, "4 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Voirol 1879 / Nord Algerie (ancienne)\",GEOGCS["); add_srs_wkt (p, 1, "\"Voirol 1879\",DATUM[\"Voirol_1879\",SPHEROID[\"Clarke "); add_srs_wkt (p, 2, "1880 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7011\"]],AUTHORITY[\"EPSG\",\"6671\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4671\"]],PROJECTION[\"Lambert_Conformal_C"); add_srs_wkt (p, 7, "onic_1SP\"],PARAMETER[\"latitude_of_origin\",36],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",2.7],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.999625544],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_northing\",300000],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"30493\"]]"); p = add_epsg_def (filter, first, last, 30494, "epsg", 30494, "Voirol 1879 / Sud Algerie (ancienne)"); add_proj4text (p, 0, "+proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=2.7 +k_0=0.9996"); add_proj4text (p, 1, "25769 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Voirol 1879 / Sud Algerie (ancienne)\",GEOGCS[\""); add_srs_wkt (p, 1, "Voirol 1879\",DATUM[\"Voirol_1879\",SPHEROID[\"Clarke 18"); add_srs_wkt (p, 2, "80 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7011\"]],AUTHORITY[\"EPSG\",\"6671\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4671\"]],PROJECTION[\"Lambert_Conformal_Con"); add_srs_wkt (p, 7, "ic_1SP\"],PARAMETER[\"latitude_of_origin\",33.3],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",2.7],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.999625769],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_northing\",300000],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"30494\"]]"); p = add_epsg_def (filter, first, last, 30729, "epsg", 30729, "Nord Sahara 1959 / UTM zone 29N"); add_proj4text (p, 0, "+proj=utm +zone=29 +ellps=clrk80 +towgs84=-186,-93,310,0"); add_proj4text (p, 1, ",0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Nord Sahara 1959 / UTM zone 29N\",GEOGCS[\"Nord"); add_srs_wkt (p, 1, " Sahara 1959\",DATUM[\"Nord_Sahara_1959\",SPHEROID[\"Cla"); add_srs_wkt (p, 2, "rke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7012\"]],TOWGS84[-186,-93,310,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6307\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4307\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",0],PARAMETER[\"central_meridian\",-9],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",0.9996],PARAMETER[\"false_easting\",500"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS["); add_srs_wkt (p, 12, "\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"30729\"]]"); p = add_epsg_def (filter, first, last, 30730, "epsg", 30730, "Nord Sahara 1959 / UTM zone 30N"); add_proj4text (p, 0, "+proj=utm +zone=30 +ellps=clrk80 +towgs84=-186,-93,310,0"); add_proj4text (p, 1, ",0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Nord Sahara 1959 / UTM zone 30N\",GEOGCS[\"Nord"); add_srs_wkt (p, 1, " Sahara 1959\",DATUM[\"Nord_Sahara_1959\",SPHEROID[\"Cla"); add_srs_wkt (p, 2, "rke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7012\"]],TOWGS84[-186,-93,310,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6307\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4307\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",0],PARAMETER[\"central_meridian\",-3],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",0.9996],PARAMETER[\"false_easting\",500"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS["); add_srs_wkt (p, 12, "\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"30730\"]]"); p = add_epsg_def (filter, first, last, 30731, "epsg", 30731, "Nord Sahara 1959 / UTM zone 31N"); add_proj4text (p, 0, "+proj=utm +zone=31 +ellps=clrk80 +towgs84=-186,-93,310,0"); add_proj4text (p, 1, ",0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Nord Sahara 1959 / UTM zone 31N\",GEOGCS[\"Nord"); add_srs_wkt (p, 1, " Sahara 1959\",DATUM[\"Nord_Sahara_1959\",SPHEROID[\"Cla"); add_srs_wkt (p, 2, "rke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7012\"]],TOWGS84[-186,-93,310,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6307\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4307\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",0],PARAMETER[\"central_meridian\",3],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"30731\"]]"); p = add_epsg_def (filter, first, last, 30732, "epsg", 30732, "Nord Sahara 1959 / UTM zone 32N"); add_proj4text (p, 0, "+proj=utm +zone=32 +ellps=clrk80 +towgs84=-186,-93,310,0"); add_proj4text (p, 1, ",0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Nord Sahara 1959 / UTM zone 32N\",GEOGCS[\"Nord"); add_srs_wkt (p, 1, " Sahara 1959\",DATUM[\"Nord_Sahara_1959\",SPHEROID[\"Cla"); add_srs_wkt (p, 2, "rke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7012\"]],TOWGS84[-186,-93,310,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6307\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4307\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",0],PARAMETER[\"central_meridian\",9],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"30732\"]]"); p = add_epsg_def (filter, first, last, 30791, "epsg", 30791, "Nord Sahara 1959 / Voirol Unifie Nord"); add_proj4text (p, 0, "+proj=lcc +lat_1=36 +lat_0=36 +lon_0=2.7 +k_0=0.99962554"); add_proj4text (p, 1, "4 +x_0=500135 +y_0=300090 +ellps=clrk80 +towgs84=-186,-9"); add_proj4text (p, 2, "3,310,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Nord Sahara 1959 / Voirol Unifie Nord\",GEOGCS["); add_srs_wkt (p, 1, "\"Nord Sahara 1959\",DATUM[\"Nord_Sahara_1959\",SPHEROID"); add_srs_wkt (p, 2, "[\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7012\"]],TOWGS84[-186,-93,310,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6307\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4307\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",36],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 9, "2.7],PARAMETER[\"scale_factor\",0.999625544],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",500135],PARAMETER[\"false_northing\",300"); add_srs_wkt (p, 11, "090],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS"); add_srs_wkt (p, 12, "[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3079"); add_srs_wkt (p, 13, "1\"]]"); p = add_epsg_def (filter, first, last, 30792, "epsg", 30792, "Nord Sahara 1959 / Voirol Unifie Sud"); add_proj4text (p, 0, "+proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=2.7 +k_0=0.9996"); add_proj4text (p, 1, "25769 +x_0=500135 +y_0=300090 +ellps=clrk80 +towgs84=-18"); add_proj4text (p, 2, "6,-93,310,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Nord Sahara 1959 / Voirol Unifie Sud\",GEOGCS[\""); add_srs_wkt (p, 1, "Nord Sahara 1959\",DATUM[\"Nord_Sahara_1959\",SPHEROID[\""); add_srs_wkt (p, 2, "Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7012\"]],TOWGS84[-186,-93,310,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6307\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4307\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAMETER[\"la"); add_srs_wkt (p, 8, "titude_of_origin\",33.3],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 9, "2.7],PARAMETER[\"scale_factor\",0.999625769],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",500135],PARAMETER[\"false_northing\",300"); add_srs_wkt (p, 11, "090],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS"); add_srs_wkt (p, 12, "[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3079"); add_srs_wkt (p, 13, "2\"]]"); p = add_epsg_def (filter, first, last, 30800, "epsg", 30800, "RT38 2.5 gon W (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15.80827777777778 +k=1 +x_0="); add_proj4text (p, 1, "1500000 +y_0=0 +ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RT38 2.5 gon W (deprecated)\",GEOGCS[\"RT38\",D"); add_srs_wkt (p, 1, "ATUM[\"Stockholm_1938\",SPHEROID[\"Bessel 1841\",6377397"); add_srs_wkt (p, 2, ".155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"6308\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4308\"]]"); add_srs_wkt (p, 6, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 7, "e_of_origin\",0],PARAMETER[\"central_meridian\",15.80827"); add_srs_wkt (p, 8, "777777778],PARAMETER[\"scale_factor\",1],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",1500000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 10, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); add_srs_wkt (p, 11, "NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"30800\"]]"); p = add_epsg_def (filter, first, last, 31028, "epsg", 31028, "Yoff / UTM zone 28N"); add_proj4text (p, 0, "+proj=utm +zone=28 +a=6378249.2 +b=6356515 +units=m +no_"); add_proj4text (p, 1, "defs"); add_srs_wkt (p, 0, "PROJCS[\"Yoff / UTM zone 28N\",GEOGCS[\"Yoff\",DATUM[\"Y"); add_srs_wkt (p, 1, "off\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.46602"); add_srs_wkt (p, 2, "12936269,AUTHORITY[\"EPSG\",\"7011\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6310\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4310\"]],PROJECTI"); add_srs_wkt (p, 6, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 7, "in\",0],PARAMETER[\"central_meridian\",-15],PARAMETER[\""); add_srs_wkt (p, 8, "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 9, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 10, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 11, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"31028\"]]"); p = add_epsg_def (filter, first, last, 31121, "epsg", 31121, "Zanderij / UTM zone 21N"); add_proj4text (p, 0, "+proj=utm +zone=21 +ellps=intl +towgs84=-265,120,-358,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Zanderij / UTM zone 21N\",GEOGCS[\"Zanderij\",D"); add_srs_wkt (p, 1, "ATUM[\"Zanderij\",SPHEROID[\"International 1924\",637838"); add_srs_wkt (p, 2, "8,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-265,120,-35"); add_srs_wkt (p, 3, "8,0,0,0,0],AUTHORITY[\"EPSG\",\"6311\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 4, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 5, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"4311\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 7, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 8, "_meridian\",-57],PARAMETER[\"scale_factor\",0.9996],PARA"); add_srs_wkt (p, 9, "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); add_srs_wkt (p, 10, "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 11, "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"31121\"]]"); p = add_epsg_def (filter, first, last, 31154, "epsg", 31154, "Zanderij / TM 54 NW"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-54 +k=0.9996 +x_0=500000 +y"); add_proj4text (p, 1, "_0=0 +ellps=intl +towgs84=-265,120,-358,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Zanderij / TM 54 NW\",GEOGCS[\"Zanderij\",DATUM"); add_srs_wkt (p, 1, "[\"Zanderij\",SPHEROID[\"International 1924\",6378388,29"); add_srs_wkt (p, 2, "7,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-265,120,-358,0,"); add_srs_wkt (p, 3, "0,0,0],AUTHORITY[\"EPSG\",\"6311\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 6, "SG\",\"4311\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 7, "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 8, "dian\",-54],PARAMETER[\"scale_factor\",0.9996],PARAMETER"); add_srs_wkt (p, 9, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 10, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 11, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"31154\"]]"); p = add_epsg_def (filter, first, last, 31170, "epsg", 31170, "Zanderij / Suriname Old TM"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-55.68333333333333 +k=0.9996"); add_proj4text (p, 1, " +x_0=500000 +y_0=0 +ellps=intl +towgs84=-265,120,-358,0"); add_proj4text (p, 2, ",0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Zanderij / Suriname Old TM\",GEOGCS[\"Zanderij\""); add_srs_wkt (p, 1, ",DATUM[\"Zanderij\",SPHEROID[\"International 1924\",6378"); add_srs_wkt (p, 2, "388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-265,120,-"); add_srs_wkt (p, 3, "358,0,0,0,0],AUTHORITY[\"EPSG\",\"6311\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4311\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-55.68333333333333],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, "r\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 11, "G\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\","); add_srs_wkt (p, 12, "NORTH],AUTHORITY[\"EPSG\",\"31170\"]]"); p = add_epsg_def (filter, first, last, 31171, "epsg", 31171, "Zanderij / Suriname TM"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-55.68333333333333 +k=0.9999"); add_proj4text (p, 1, " +x_0=500000 +y_0=0 +ellps=intl +towgs84=-265,120,-358,0"); add_proj4text (p, 2, ",0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Zanderij / Suriname TM\",GEOGCS[\"Zanderij\",DA"); add_srs_wkt (p, 1, "TUM[\"Zanderij\",SPHEROID[\"International 1924\",6378388"); add_srs_wkt (p, 2, ",297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-265,120,-358"); add_srs_wkt (p, 3, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6311\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"4311\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 7, "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); add_srs_wkt (p, 8, "meridian\",-55.68333333333333],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9999],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"31171\"]]"); p = add_epsg_def (filter, first, last, 31251, "epsg", 31251, "MGI (Ferro) / Austria GK West Zone"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=28 +k=1 +x_0=0 +y_0=-5000000"); add_proj4text (p, 1, " +ellps=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI (Ferro) / Austria GK West Zone\",GEOGCS[\"M"); add_srs_wkt (p, 1, "GI (Ferro)\",DATUM[\"Militar_Geographische_Institut_Ferr"); add_srs_wkt (p, 2, "o\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"7004\"]],TOWGS84[682,-203,480,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6805\"]],PRIMEM[\"Ferro\",-17.6666"); add_srs_wkt (p, 5, "6666666667,AUTHORITY[\"EPSG\",\"8909\"]],UNIT[\"degree\""); add_srs_wkt (p, 6, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4805\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",28],PARAMETER[\"scale_factor\",1],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",0],PARAMETER[\"false_northing\",-50"); add_srs_wkt (p, 11, "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 12, "IS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31"); add_srs_wkt (p, 13, "251\"]]"); p = add_epsg_def (filter, first, last, 31252, "epsg", 31252, "MGI (Ferro) / Austria GK Central Zone"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=31 +k=1 +x_0=0 +y_0=-5000000"); add_proj4text (p, 1, " +ellps=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI (Ferro) / Austria GK Central Zone\",GEOGCS["); add_srs_wkt (p, 1, "\"MGI (Ferro)\",DATUM[\"Militar_Geographische_Institut_F"); add_srs_wkt (p, 2, "erro\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[682,-203,480,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6805\"]],PRIMEM[\"Ferro\",-17.6"); add_srs_wkt (p, 5, "6666666666667,AUTHORITY[\"EPSG\",\"8909\"]],UNIT[\"degre"); add_srs_wkt (p, 6, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"4805\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 8, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",31],PARAMETER[\"scale_factor\",1],PARA"); add_srs_wkt (p, 10, "METER[\"false_easting\",0],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "-5000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, ",AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "31252\"]]"); p = add_epsg_def (filter, first, last, 31253, "epsg", 31253, "MGI (Ferro) / Austria GK East Zone"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=34 +k=1 +x_0=0 +y_0=-5000000"); add_proj4text (p, 1, " +ellps=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI (Ferro) / Austria GK East Zone\",GEOGCS[\"M"); add_srs_wkt (p, 1, "GI (Ferro)\",DATUM[\"Militar_Geographische_Institut_Ferr"); add_srs_wkt (p, 2, "o\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"7004\"]],TOWGS84[682,-203,480,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6805\"]],PRIMEM[\"Ferro\",-17.6666"); add_srs_wkt (p, 5, "6666666667,AUTHORITY[\"EPSG\",\"8909\"]],UNIT[\"degree\""); add_srs_wkt (p, 6, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4805\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",34],PARAMETER[\"scale_factor\",1],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",0],PARAMETER[\"false_northing\",-50"); add_srs_wkt (p, 11, "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 12, "IS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31"); add_srs_wkt (p, 13, "253\"]]"); p = add_epsg_def (filter, first, last, 31254, "epsg", 31254, "MGI / Austria GK West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=10.33333333333333 +k=1 +x_0="); add_proj4text (p, 1, "0 +y_0=-5000000 +datum=hermannskogel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI / Austria GK West\",GEOGCS[\"MGI\",DATUM[\""); add_srs_wkt (p, 1, "Militar_Geographische_Institute\",SPHEROID[\"Bessel 1841"); add_srs_wkt (p, 2, "\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]]"); add_srs_wkt (p, 3, ",TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4312\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 8, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 9, "\",10.33333333333333],PARAMETER[\"scale_factor\",1],PARA"); add_srs_wkt (p, 10, "METER[\"false_easting\",0],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "-5000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, ",AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "31254\"]]"); p = add_epsg_def (filter, first, last, 31255, "epsg", 31255, "MGI / Austria GK Central"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=13.33333333333333 +k=1 +x_0="); add_proj4text (p, 1, "0 +y_0=-5000000 +datum=hermannskogel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI / Austria GK Central\",GEOGCS[\"MGI\",DATUM"); add_srs_wkt (p, 1, "[\"Militar_Geographische_Institute\",SPHEROID[\"Bessel 1"); add_srs_wkt (p, 2, "841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\""); add_srs_wkt (p, 3, "]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.42"); add_srs_wkt (p, 4, "32],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4312\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); add_srs_wkt (p, 8, "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); add_srs_wkt (p, 9, "an\",13.33333333333333],PARAMETER[\"scale_factor\",1],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_easting\",0],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",-5000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 12, "],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"31255\"]]"); p = add_epsg_def (filter, first, last, 31256, "epsg", 31256, "MGI / Austria GK East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=16.33333333333333 +k=1 +x_0="); add_proj4text (p, 1, "0 +y_0=-5000000 +datum=hermannskogel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI / Austria GK East\",GEOGCS[\"MGI\",DATUM[\""); add_srs_wkt (p, 1, "Militar_Geographische_Institute\",SPHEROID[\"Bessel 1841"); add_srs_wkt (p, 2, "\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]]"); add_srs_wkt (p, 3, ",TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4312\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 8, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 9, "\",16.33333333333333],PARAMETER[\"scale_factor\",1],PARA"); add_srs_wkt (p, 10, "METER[\"false_easting\",0],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "-5000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, ",AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "31256\"]]"); p = add_epsg_def (filter, first, last, 31257, "epsg", 31257, "MGI / Austria GK M28"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=10.33333333333333 +k=1 +x_0="); add_proj4text (p, 1, "150000 +y_0=-5000000 +datum=hermannskogel +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"MGI / Austria GK M28\",GEOGCS[\"MGI\",DATUM[\"M"); add_srs_wkt (p, 1, "ilitar_Geographische_Institute\",SPHEROID[\"Bessel 1841\""); add_srs_wkt (p, 2, ",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],T"); add_srs_wkt (p, 3, "OWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4312\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "0.33333333333333],PARAMETER[\"scale_factor\",1],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",150000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",-5000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 12, "],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"31257\"]]"); p = add_epsg_def (filter, first, last, 31258, "epsg", 31258, "MGI / Austria GK M31"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=13.33333333333333 +k=1 +x_0="); add_proj4text (p, 1, "450000 +y_0=-5000000 +datum=hermannskogel +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"MGI / Austria GK M31\",GEOGCS[\"MGI\",DATUM[\"M"); add_srs_wkt (p, 1, "ilitar_Geographische_Institute\",SPHEROID[\"Bessel 1841\""); add_srs_wkt (p, 2, ",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],T"); add_srs_wkt (p, 3, "OWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4312\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "3.33333333333333],PARAMETER[\"scale_factor\",1],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",450000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",-5000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 12, "],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"31258\"]]"); p = add_epsg_def (filter, first, last, 31259, "epsg", 31259, "MGI / Austria GK M34"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=16.33333333333333 +k=1 +x_0="); add_proj4text (p, 1, "750000 +y_0=-5000000 +datum=hermannskogel +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"MGI / Austria GK M34\",GEOGCS[\"MGI\",DATUM[\"M"); add_srs_wkt (p, 1, "ilitar_Geographische_Institute\",SPHEROID[\"Bessel 1841\""); add_srs_wkt (p, 2, ",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],T"); add_srs_wkt (p, 3, "OWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4312\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "6.33333333333333],PARAMETER[\"scale_factor\",1],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",750000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",-5000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 12, "],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"31259\"]]"); p = add_epsg_def (filter, first, last, 31265, "epsg", 31265, "MGI / 3-degree Gauss zone 5 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 "); add_proj4text (p, 1, "+datum=hermannskogel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI / 3-degree Gauss zone 5 (deprecated)\",GEOG"); add_srs_wkt (p, 1, "CS[\"MGI\",DATUM[\"Militar_Geographische_Institute\",SPH"); add_srs_wkt (p, 2, "EROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137"); add_srs_wkt (p, 4, ",1.474,5.297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIME"); add_srs_wkt (p, 5, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 6, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"4312\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 8, "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 9, "[\"central_meridian\",15],PARAMETER[\"scale_factor\",1],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",5500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"31265\"]]"); p = add_epsg_def (filter, first, last, 31266, "epsg", 31266, "MGI / 3-degree Gauss zone 6 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=6500000 +y_0=0 "); add_proj4text (p, 1, "+datum=hermannskogel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI / 3-degree Gauss zone 6 (deprecated)\",GEOG"); add_srs_wkt (p, 1, "CS[\"MGI\",DATUM[\"Militar_Geographische_Institute\",SPH"); add_srs_wkt (p, 2, "EROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137"); add_srs_wkt (p, 4, ",1.474,5.297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIME"); add_srs_wkt (p, 5, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 6, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"4312\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 8, "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 9, "[\"central_meridian\",18],PARAMETER[\"scale_factor\",1],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",6500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"31266\"]]"); p = add_epsg_def (filter, first, last, 31267, "epsg", 31267, "MGI / 3-degree Gauss zone 7 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=7500000 +y_0=0 "); add_proj4text (p, 1, "+datum=hermannskogel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI / 3-degree Gauss zone 7 (deprecated)\",GEOG"); add_srs_wkt (p, 1, "CS[\"MGI\",DATUM[\"Militar_Geographische_Institute\",SPH"); add_srs_wkt (p, 2, "EROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137"); add_srs_wkt (p, 4, ",1.474,5.297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIME"); add_srs_wkt (p, 5, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 6, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"4312\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 8, "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 9, "[\"central_meridian\",21],PARAMETER[\"scale_factor\",1],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",7500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"31267\"]]"); p = add_epsg_def (filter, first, last, 31268, "epsg", 31268, "MGI / 3-degree Gauss zone 8 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=8500000 +y_0=0 "); add_proj4text (p, 1, "+datum=hermannskogel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI / 3-degree Gauss zone 8 (deprecated)\",GEOG"); add_srs_wkt (p, 1, "CS[\"MGI\",DATUM[\"Militar_Geographische_Institute\",SPH"); add_srs_wkt (p, 2, "EROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137"); add_srs_wkt (p, 4, ",1.474,5.297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIME"); add_srs_wkt (p, 5, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 6, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"4312\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 8, "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 9, "[\"central_meridian\",24],PARAMETER[\"scale_factor\",1],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",8500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"31268\"]]"); p = add_epsg_def (filter, first, last, 31275, "epsg", 31275, "MGI / Balkans zone 5 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9999 +x_0=5500000 +y"); add_proj4text (p, 1, "_0=0 +datum=hermannskogel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI / Balkans zone 5 (deprecated)\",GEOGCS[\"MG"); add_srs_wkt (p, 1, "I\",DATUM[\"Militar_Geographische_Institute\",SPHEROID[\""); add_srs_wkt (p, 2, "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5"); add_srs_wkt (p, 4, ".297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 5, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 6, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 7, "TY[\"EPSG\",\"4312\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 8, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 9, "l_meridian\",15],PARAMETER[\"scale_factor\",0.9999],PARA"); add_srs_wkt (p, 10, "METER[\"false_easting\",5500000],PARAMETER[\"false_north"); add_srs_wkt (p, 11, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 12, "AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "31275\"]]"); p = add_epsg_def (filter, first, last, 31276, "epsg", 31276, "MGI / Balkans zone 6 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=18 +k=0.9999 +x_0=6500000 +y"); add_proj4text (p, 1, "_0=0 +datum=hermannskogel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI / Balkans zone 6 (deprecated)\",GEOGCS[\"MG"); add_srs_wkt (p, 1, "I\",DATUM[\"Militar_Geographische_Institute\",SPHEROID[\""); add_srs_wkt (p, 2, "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5"); add_srs_wkt (p, 4, ".297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 5, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 6, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 7, "TY[\"EPSG\",\"4312\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 8, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 9, "l_meridian\",18],PARAMETER[\"scale_factor\",0.9999],PARA"); add_srs_wkt (p, 10, "METER[\"false_easting\",6500000],PARAMETER[\"false_north"); add_srs_wkt (p, 11, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 12, "AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "31276\"]]"); p = add_epsg_def (filter, first, last, 31277, "epsg", 31277, "MGI / Balkans zone 7 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=0.9999 +x_0=7500000 +y"); add_proj4text (p, 1, "_0=0 +datum=hermannskogel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI / Balkans zone 7 (deprecated)\",GEOGCS[\"MG"); add_srs_wkt (p, 1, "I\",DATUM[\"Militar_Geographische_Institute\",SPHEROID[\""); add_srs_wkt (p, 2, "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5"); add_srs_wkt (p, 4, ".297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 5, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 6, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 7, "TY[\"EPSG\",\"4312\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 8, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 9, "l_meridian\",21],PARAMETER[\"scale_factor\",0.9999],PARA"); add_srs_wkt (p, 10, "METER[\"false_easting\",7500000],PARAMETER[\"false_north"); add_srs_wkt (p, 11, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 12, "AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "31277\"]]"); p = add_epsg_def (filter, first, last, 31278, "epsg", 31278, "MGI / Balkans zone 8 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=0.9999 +x_0=7500000 +y"); add_proj4text (p, 1, "_0=0 +datum=hermannskogel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI / Balkans zone 8 (deprecated)\",GEOGCS[\"MG"); add_srs_wkt (p, 1, "I\",DATUM[\"Militar_Geographische_Institute\",SPHEROID[\""); add_srs_wkt (p, 2, "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5"); add_srs_wkt (p, 4, ".297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 5, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 6, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 7, "TY[\"EPSG\",\"4312\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 8, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 9, "l_meridian\",21],PARAMETER[\"scale_factor\",0.9999],PARA"); add_srs_wkt (p, 10, "METER[\"false_easting\",7500000],PARAMETER[\"false_north"); add_srs_wkt (p, 11, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 12, "AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "31278\"]]"); p = add_epsg_def (filter, first, last, 31279, "epsg", 31279, "MGI / Balkans zone 8 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9999 +x_0=8500000 +y"); add_proj4text (p, 1, "_0=0 +datum=hermannskogel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI / Balkans zone 8 (deprecated)\",GEOGCS[\"MG"); add_srs_wkt (p, 1, "I\",DATUM[\"Militar_Geographische_Institute\",SPHEROID[\""); add_srs_wkt (p, 2, "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5"); add_srs_wkt (p, 4, ".297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 5, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 6, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 7, "TY[\"EPSG\",\"4312\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 8, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 9, "l_meridian\",24],PARAMETER[\"scale_factor\",0.9999],PARA"); add_srs_wkt (p, 10, "METER[\"false_easting\",8500000],PARAMETER[\"false_north"); add_srs_wkt (p, 11, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 12, "AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "31279\"]]"); p = add_epsg_def (filter, first, last, 31281, "epsg", 31281, "MGI (Ferro) / Austria West Zone"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=28 +k=1 +x_0=0 +y_0=0 +ellps"); add_proj4text (p, 1, "=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI (Ferro) / Austria West Zone\",GEOGCS[\"MGI "); add_srs_wkt (p, 1, "(Ferro)\",DATUM[\"Militar_Geographische_Institut_Ferro\""); add_srs_wkt (p, 2, ",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7004\"]],TOWGS84[682,-203,480,0,0,0,0],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6805\"]],PRIMEM[\"Ferro\",-17.6666666"); add_srs_wkt (p, 5, "6666667,AUTHORITY[\"EPSG\",\"8909\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 6, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4805\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",28],PARAMETER[\"scale_factor\",1],PARAMETER["); add_srs_wkt (p, 10, "\"false_easting\",0],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",N"); add_srs_wkt (p, 12, "ORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31281\"]]"); p = add_epsg_def (filter, first, last, 31282, "epsg", 31282, "MGI (Ferro) / Austria Central Zone"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=31 +k=1 +x_0=0 +y_0=0 +ellps"); add_proj4text (p, 1, "=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI (Ferro) / Austria Central Zone\",GEOGCS[\"M"); add_srs_wkt (p, 1, "GI (Ferro)\",DATUM[\"Militar_Geographische_Institut_Ferr"); add_srs_wkt (p, 2, "o\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"7004\"]],TOWGS84[682,-203,480,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6805\"]],PRIMEM[\"Ferro\",-17.6666"); add_srs_wkt (p, 5, "6666666667,AUTHORITY[\"EPSG\",\"8909\"]],UNIT[\"degree\""); add_srs_wkt (p, 6, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4805\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",31],PARAMETER[\"scale_factor\",1],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 11, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 12, ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31282\"]]"); p = add_epsg_def (filter, first, last, 31283, "epsg", 31283, "MGI (Ferro) / Austria East Zone"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=34 +k=1 +x_0=0 +y_0=0 +ellps"); add_proj4text (p, 1, "=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI (Ferro) / Austria East Zone\",GEOGCS[\"MGI "); add_srs_wkt (p, 1, "(Ferro)\",DATUM[\"Militar_Geographische_Institut_Ferro\""); add_srs_wkt (p, 2, ",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7004\"]],TOWGS84[682,-203,480,0,0,0,0],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6805\"]],PRIMEM[\"Ferro\",-17.6666666"); add_srs_wkt (p, 5, "6666667,AUTHORITY[\"EPSG\",\"8909\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 6, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4805\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",34],PARAMETER[\"scale_factor\",1],PARAMETER["); add_srs_wkt (p, 10, "\"false_easting\",0],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",N"); add_srs_wkt (p, 12, "ORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31283\"]]"); p = add_epsg_def (filter, first, last, 31284, "epsg", 31284, "MGI / Austria M28"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=10.33333333333333 +k=1 +x_0="); add_proj4text (p, 1, "150000 +y_0=0 +datum=hermannskogel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI / Austria M28\",GEOGCS[\"MGI\",DATUM[\"Mili"); add_srs_wkt (p, 1, "tar_Geographische_Institute\",SPHEROID[\"Bessel 1841\",6"); add_srs_wkt (p, 2, "377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOW"); add_srs_wkt (p, 3, "GS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "312\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "0.33333333333333],PARAMETER[\"scale_factor\",1],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",150000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31284"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def (filter, first, last, 31285, "epsg", 31285, "MGI / Austria M31"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=13.33333333333333 +k=1 +x_0="); add_proj4text (p, 1, "450000 +y_0=0 +datum=hermannskogel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI / Austria M31\",GEOGCS[\"MGI\",DATUM[\"Mili"); add_srs_wkt (p, 1, "tar_Geographische_Institute\",SPHEROID[\"Bessel 1841\",6"); add_srs_wkt (p, 2, "377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOW"); add_srs_wkt (p, 3, "GS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "312\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "3.33333333333333],PARAMETER[\"scale_factor\",1],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",450000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31285"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def (filter, first, last, 31286, "epsg", 31286, "MGI / Austria M34"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=16.33333333333333 +k=1 +x_0="); add_proj4text (p, 1, "750000 +y_0=0 +datum=hermannskogel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI / Austria M34\",GEOGCS[\"MGI\",DATUM[\"Mili"); add_srs_wkt (p, 1, "tar_Geographische_Institute\",SPHEROID[\"Bessel 1841\",6"); add_srs_wkt (p, 2, "377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOW"); add_srs_wkt (p, 3, "GS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "312\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "6.33333333333333],PARAMETER[\"scale_factor\",1],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",750000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31286"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def (filter, first, last, 31287, "epsg", 31287, "MGI / Austria Lambert"); add_proj4text (p, 0, "+proj=lcc +lat_1=49 +lat_2=46 +lat_0=47.5 +lon_0=13.3333"); add_proj4text (p, 1, "3333333333 +x_0=400000 +y_0=400000 +datum=hermannskogel "); add_proj4text (p, 2, "+units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI / Austria Lambert\",GEOGCS[\"MGI\",DATUM[\""); add_srs_wkt (p, 1, "Militar_Geographische_Institute\",SPHEROID[\"Bessel 1841"); add_srs_wkt (p, 2, "\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]]"); add_srs_wkt (p, 3, ",TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4312\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 8, "PARAMETER[\"standard_parallel_1\",49],PARAMETER[\"standa"); add_srs_wkt (p, 9, "rd_parallel_2\",46],PARAMETER[\"latitude_of_origin\",47."); add_srs_wkt (p, 10, "5],PARAMETER[\"central_meridian\",13.33333333333333],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_easting\",400000],PARAMETER[\"false_north"); add_srs_wkt (p, 12, "ing\",400000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 13, "\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 14, "\",\"31287\"]]"); p = add_epsg_def (filter, first, last, 31288, "epsg", 31288, "MGI (Ferro) / M28"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=28 +k=1 +x_0=150000 +y_0=0 +"); add_proj4text (p, 1, "ellps=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +un"); add_proj4text (p, 2, "its=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI (Ferro) / M28\",GEOGCS[\"MGI (Ferro)\",DATU"); add_srs_wkt (p, 1, "M[\"Militar_Geographische_Institut_Ferro\",SPHEROID[\"Be"); add_srs_wkt (p, 2, "ssel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7004\"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6805\"]],PRIMEM[\"Ferro\",-17.66666666666667,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8909\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4805"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",28],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, ",150000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "Y\",EAST],AUTHORITY[\"EPSG\",\"31288\"]]"); p = add_epsg_def (filter, first, last, 31289, "epsg", 31289, "MGI (Ferro) / M31"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=31 +k=1 +x_0=450000 +y_0=0 +"); add_proj4text (p, 1, "ellps=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +un"); add_proj4text (p, 2, "its=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI (Ferro) / M31\",GEOGCS[\"MGI (Ferro)\",DATU"); add_srs_wkt (p, 1, "M[\"Militar_Geographische_Institut_Ferro\",SPHEROID[\"Be"); add_srs_wkt (p, 2, "ssel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7004\"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6805\"]],PRIMEM[\"Ferro\",-17.66666666666667,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8909\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4805"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",31],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, ",450000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "Y\",EAST],AUTHORITY[\"EPSG\",\"31289\"]]"); p = add_epsg_def (filter, first, last, 31290, "epsg", 31290, "MGI (Ferro) / M34"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=34 +k=1 +x_0=750000 +y_0=0 +"); add_proj4text (p, 1, "ellps=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +un"); add_proj4text (p, 2, "its=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI (Ferro) / M34\",GEOGCS[\"MGI (Ferro)\",DATU"); add_srs_wkt (p, 1, "M[\"Militar_Geographische_Institut_Ferro\",SPHEROID[\"Be"); add_srs_wkt (p, 2, "ssel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7004\"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6805\"]],PRIMEM[\"Ferro\",-17.66666666666667,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8909\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4805"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",34],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, ",750000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "Y\",EAST],AUTHORITY[\"EPSG\",\"31290\"]]"); p = add_epsg_def (filter, first, last, 31291, "epsg", 31291, "MGI (Ferro) / Austria West Zone (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=28 +k=1 +x_0=0 +y_0=0 +ellps"); add_proj4text (p, 1, "=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI (Ferro) / Austria West Zone (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"MGI (Ferro)\",DATUM[\"Militar_Geographische_Ins"); add_srs_wkt (p, 2, "titut_Ferro\",SPHEROID[\"Bessel 1841\",6377397.155,299.1"); add_srs_wkt (p, 3, "528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[682,-203,48"); add_srs_wkt (p, 4, "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6805\"]],PRIMEM[\"Ferro\""); add_srs_wkt (p, 5, ",-17.66666666666667,AUTHORITY[\"EPSG\",\"8909\"]],UNIT[\""); add_srs_wkt (p, 6, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4805\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",28],PARAMETER[\"scale_factor\",1]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",0],PARAMETER[\"false_northi"); add_srs_wkt (p, 11, "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 12, "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "1291\"]]"); p = add_epsg_def (filter, first, last, 31292, "epsg", 31292, "MGI (Ferro) / Austria Central Zone (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=31 +k=1 +x_0=0 +y_0=0 +ellps"); add_proj4text (p, 1, "=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI (Ferro) / Austria Central Zone (deprecated)"); add_srs_wkt (p, 1, "\",GEOGCS[\"MGI (Ferro)\",DATUM[\"Militar_Geographische_"); add_srs_wkt (p, 2, "Institut_Ferro\",SPHEROID[\"Bessel 1841\",6377397.155,29"); add_srs_wkt (p, 3, "9.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[682,-203"); add_srs_wkt (p, 4, ",480,0,0,0,0],AUTHORITY[\"EPSG\",\"6805\"]],PRIMEM[\"Fer"); add_srs_wkt (p, 5, "ro\",-17.66666666666667,AUTHORITY[\"EPSG\",\"8909\"]],UN"); add_srs_wkt (p, 6, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 7, "22\"]],AUTHORITY[\"EPSG\",\"4805\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 8, "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",31],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",1],PARAMETER[\"false_easting\",0],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"31292\"]]"); p = add_epsg_def (filter, first, last, 31293, "epsg", 31293, "MGI (Ferro) / Austria East Zone (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=34 +k=1 +x_0=0 +y_0=0 +ellps"); add_proj4text (p, 1, "=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI (Ferro) / Austria East Zone (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"MGI (Ferro)\",DATUM[\"Militar_Geographische_Ins"); add_srs_wkt (p, 2, "titut_Ferro\",SPHEROID[\"Bessel 1841\",6377397.155,299.1"); add_srs_wkt (p, 3, "528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[682,-203,48"); add_srs_wkt (p, 4, "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6805\"]],PRIMEM[\"Ferro\""); add_srs_wkt (p, 5, ",-17.66666666666667,AUTHORITY[\"EPSG\",\"8909\"]],UNIT[\""); add_srs_wkt (p, 6, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4805\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",34],PARAMETER[\"scale_factor\",1]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",0],PARAMETER[\"false_northi"); add_srs_wkt (p, 11, "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 12, "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "1293\"]]"); p = add_epsg_def (filter, first, last, 31294, "epsg", 31294, "MGI / M28 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=10.33333333333333 +k=1 +x_0="); add_proj4text (p, 1, "150000 +y_0=0 +datum=hermannskogel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI / M28 (deprecated)\",GEOGCS[\"MGI\",DATUM[\""); add_srs_wkt (p, 1, "Militar_Geographische_Institute\",SPHEROID[\"Bessel 1841"); add_srs_wkt (p, 2, "\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]]"); add_srs_wkt (p, 3, ",TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4312\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 8, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 9, "\",10.33333333333333],PARAMETER[\"scale_factor\",1],PARA"); add_srs_wkt (p, 10, "METER[\"false_easting\",150000],PARAMETER[\"false_northi"); add_srs_wkt (p, 11, "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 12, "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "1294\"]]"); p = add_epsg_def (filter, first, last, 31295, "epsg", 31295, "MGI / M31 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=13.33333333333333 +k=1 +x_0="); add_proj4text (p, 1, "450000 +y_0=0 +datum=hermannskogel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI / M31 (deprecated)\",GEOGCS[\"MGI\",DATUM[\""); add_srs_wkt (p, 1, "Militar_Geographische_Institute\",SPHEROID[\"Bessel 1841"); add_srs_wkt (p, 2, "\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]]"); add_srs_wkt (p, 3, ",TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4312\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 8, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 9, "\",13.33333333333333],PARAMETER[\"scale_factor\",1],PARA"); add_srs_wkt (p, 10, "METER[\"false_easting\",450000],PARAMETER[\"false_northi"); add_srs_wkt (p, 11, "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 12, "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "1295\"]]"); p = add_epsg_def (filter, first, last, 31296, "epsg", 31296, "MGI / M34 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=16.33333333333333 +k=1 +x_0="); add_proj4text (p, 1, "750000 +y_0=0 +datum=hermannskogel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI / M34 (deprecated)\",GEOGCS[\"MGI\",DATUM[\""); add_srs_wkt (p, 1, "Militar_Geographische_Institute\",SPHEROID[\"Bessel 1841"); add_srs_wkt (p, 2, "\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]]"); add_srs_wkt (p, 3, ",TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4312\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 8, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 9, "\",16.33333333333333],PARAMETER[\"scale_factor\",1],PARA"); add_srs_wkt (p, 10, "METER[\"false_easting\",750000],PARAMETER[\"false_northi"); add_srs_wkt (p, 11, "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 12, "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "1296\"]]"); p = add_epsg_def (filter, first, last, 31297, "epsg", 31297, "MGI / Austria Lambert (deprecated)"); add_proj4text (p, 0, "+proj=lcc +lat_1=49 +lat_2=46 +lat_0=47.5 +lon_0=13.3333"); add_proj4text (p, 1, "3333333333 +x_0=400000 +y_0=400000 +datum=hermannskogel "); add_proj4text (p, 2, "+units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI / Austria Lambert (deprecated)\",GEOGCS[\"M"); add_srs_wkt (p, 1, "GI\",DATUM[\"Militar_Geographische_Institute\",SPHEROID["); add_srs_wkt (p, 2, "\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137,1.474"); add_srs_wkt (p, 4, ",5.297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 5, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 6, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4312\"]],PROJECTION[\"Lambert_Conformal_C"); add_srs_wkt (p, 8, "onic_2SP\"],PARAMETER[\"standard_parallel_1\",49],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_2\",46],PARAMETER[\"latitude_of_"); add_srs_wkt (p, 10, "origin\",47.5],PARAMETER[\"central_meridian\",13.3333333"); add_srs_wkt (p, 11, "3333333],PARAMETER[\"false_easting\",400000],PARAMETER[\""); add_srs_wkt (p, 12, "false_northing\",400000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 14, "RITY[\"EPSG\",\"31297\"]]"); p = add_epsg_def (filter, first, last, 31300, "epsg", 31300, "Belge 1972 / Belge Lambert 72"); add_proj4text (p, 0, "+proj=lcc +lat_1=49.83333333333334 +lat_2=51.16666666666"); add_proj4text (p, 1, "666 +lat_0=90 +lon_0=4.356939722222222 +x_0=150000.01256"); add_proj4text (p, 2, " +y_0=5400088.4378 +ellps=intl +towgs84=-106.869,52.2978"); add_proj4text (p, 3, ",-103.724,0.3366,-0.457,1.8422,-1.2747 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Belge 1972 / Belge Lambert 72\",GEOGCS[\"Belge "); add_srs_wkt (p, 1, "1972\",DATUM[\"Reseau_National_Belge_1972\",SPHEROID[\"I"); add_srs_wkt (p, 2, "nternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "2\"]],TOWGS84[-106.869,52.2978,-103.724,0.3366,-0.457,1."); add_srs_wkt (p, 4, "8422,-1.2747],AUTHORITY[\"EPSG\",\"6313\"]],PRIMEM[\"Gre"); add_srs_wkt (p, 5, "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 6, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4313\"]],PROJECTION[\"Lambert_Conformal_C"); add_srs_wkt (p, 8, "onic_2SP_Belgium\"],PARAMETER[\"standard_parallel_1\",49"); add_srs_wkt (p, 9, ".83333333333334],PARAMETER[\"standard_parallel_2\",51.16"); add_srs_wkt (p, 10, "666666666666],PARAMETER[\"latitude_of_origin\",90],PARAM"); add_srs_wkt (p, 11, "ETER[\"central_meridian\",4.356939722222222],PARAMETER[\""); add_srs_wkt (p, 12, "false_easting\",150000.01256],PARAMETER[\"false_northing"); add_srs_wkt (p, 13, "\",5400088.4378],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 14, "001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 15, "PSG\",\"31300\"]]"); p = add_epsg_def (filter, first, last, 31370, "epsg", 31370, "Belge 1972 / Belgian Lambert 72"); add_proj4text (p, 0, "+proj=lcc +lat_1=51.16666723333333 +lat_2=49.8333339 +la"); add_proj4text (p, 1, "t_0=90 +lon_0=4.367486666666666 +x_0=150000.013 +y_0=540"); add_proj4text (p, 2, "0088.438 +ellps=intl +towgs84=-106.869,52.2978,-103.724,"); add_proj4text (p, 3, "0.3366,-0.457,1.8422,-1.2747 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Belge 1972 / Belgian Lambert 72\",GEOGCS[\"Belg"); add_srs_wkt (p, 1, "e 1972\",DATUM[\"Reseau_National_Belge_1972\",SPHEROID[\""); add_srs_wkt (p, 2, "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "22\"]],TOWGS84[-106.869,52.2978,-103.724,0.3366,-0.457,1"); add_srs_wkt (p, 4, ".8422,-1.2747],AUTHORITY[\"EPSG\",\"6313\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 5, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 6, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4313\"]],PROJECTION[\"Lambert_Conformal_C"); add_srs_wkt (p, 8, "onic_2SP\"],PARAMETER[\"standard_parallel_1\",51.1666672"); add_srs_wkt (p, 9, "3333333],PARAMETER[\"standard_parallel_2\",49.8333339],P"); add_srs_wkt (p, 10, "ARAMETER[\"latitude_of_origin\",90],PARAMETER[\"central_"); add_srs_wkt (p, 11, "meridian\",4.367486666666666],PARAMETER[\"false_easting\""); add_srs_wkt (p, 12, ",150000.013],PARAMETER[\"false_northing\",5400088.438],U"); add_srs_wkt (p, 13, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 14, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"31370\"]]"); p = add_epsg_def (filter, first, last, 31461, "epsg", 31461, "DHDN / 3-degree Gauss zone 1 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=3 +k=1 +x_0=1500000 +y_0=0 +"); add_proj4text (p, 1, "datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / 3-degree Gauss zone 1 (deprecated)\",GEO"); add_srs_wkt (p, 1, "GCS[\"DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHER"); add_srs_wkt (p, 2, "OID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-"); add_srs_wkt (p, 4, "2.455,6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 5, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 6, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",3],PARAMETER[\"scale_factor\",1],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",1500000],PARAMETER[\"false_northing\",0]"); add_srs_wkt (p, 11, ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"31461\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def (filter, first, last, 31462, "epsg", 31462, "DHDN / 3-degree Gauss zone 2 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=6 +k=1 +x_0=2500000 +y_0=0 +"); add_proj4text (p, 1, "datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / 3-degree Gauss zone 2 (deprecated)\",GEO"); add_srs_wkt (p, 1, "GCS[\"DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHER"); add_srs_wkt (p, 2, "OID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-"); add_srs_wkt (p, 4, "2.455,6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 5, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 6, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",6],PARAMETER[\"scale_factor\",1],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",2500000],PARAMETER[\"false_northing\",0]"); add_srs_wkt (p, 11, ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"31462\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def (filter, first, last, 31463, "epsg", 31463, "DHDN / 3-degree Gauss zone 3 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +"); add_proj4text (p, 1, "datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / 3-degree Gauss zone 3 (deprecated)\",GEO"); add_srs_wkt (p, 1, "GCS[\"DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHER"); add_srs_wkt (p, 2, "OID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-"); add_srs_wkt (p, 4, "2.455,6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 5, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 6, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",9],PARAMETER[\"scale_factor\",1],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",3500000],PARAMETER[\"false_northing\",0]"); add_srs_wkt (p, 11, ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"31463\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def (filter, first, last, 31464, "epsg", 31464, "DHDN / 3-degree Gauss zone 4 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 "); add_proj4text (p, 1, "+datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / 3-degree Gauss zone 4 (deprecated)\",GEO"); add_srs_wkt (p, 1, "GCS[\"DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHER"); add_srs_wkt (p, 2, "OID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-"); add_srs_wkt (p, 4, "2.455,6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 5, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 6, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",12],PARAMETER[\"scale_factor\",1],PARAMETER["); add_srs_wkt (p, 10, "\"false_easting\",4500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"31464\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def (filter, first, last, 31465, "epsg", 31465, "DHDN / 3-degree Gauss zone 5 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 "); add_proj4text (p, 1, "+datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / 3-degree Gauss zone 5 (deprecated)\",GEO"); add_srs_wkt (p, 1, "GCS[\"DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHER"); add_srs_wkt (p, 2, "OID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-"); add_srs_wkt (p, 4, "2.455,6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 5, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 6, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",15],PARAMETER[\"scale_factor\",1],PARAMETER["); add_srs_wkt (p, 10, "\"false_easting\",5500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"31465\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def (filter, first, last, 31466, "epsg", 31466, "DHDN / 3-degree Gauss-Kruger zone 2"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=6 +k=1 +x_0=2500000 +y_0=0 +"); add_proj4text (p, 1, "datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / 3-degree Gauss-Kruger zone 2\",GEOGCS[\""); add_srs_wkt (p, 1, "DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\""); add_srs_wkt (p, 2, "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,"); add_srs_wkt (p, 4, "6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, "G\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 9, "ian\",6],PARAMETER[\"scale_factor\",1],PARAMETER[\"false"); add_srs_wkt (p, 10, "_easting\",2500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 11, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NO"); add_srs_wkt (p, 12, "RTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31466\"]]"); p = add_epsg_def (filter, first, last, 31467, "epsg", 31467, "DHDN / 3-degree Gauss-Kruger zone 3"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +"); add_proj4text (p, 1, "datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / 3-degree Gauss-Kruger zone 3\",GEOGCS[\""); add_srs_wkt (p, 1, "DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\""); add_srs_wkt (p, 2, "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,"); add_srs_wkt (p, 4, "6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, "G\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 9, "ian\",9],PARAMETER[\"scale_factor\",1],PARAMETER[\"false"); add_srs_wkt (p, 10, "_easting\",3500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 11, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NO"); add_srs_wkt (p, 12, "RTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31467\"]]"); p = add_epsg_def (filter, first, last, 31468, "epsg", 31468, "DHDN / 3-degree Gauss-Kruger zone 4"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 "); add_proj4text (p, 1, "+datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / 3-degree Gauss-Kruger zone 4\",GEOGCS[\""); add_srs_wkt (p, 1, "DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\""); add_srs_wkt (p, 2, "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,"); add_srs_wkt (p, 4, "6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, "G\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 9, "ian\",12],PARAMETER[\"scale_factor\",1],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_easting\",4500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",N"); add_srs_wkt (p, 12, "ORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31468\"]]"); p = add_epsg_def (filter, first, last, 31469, "epsg", 31469, "DHDN / 3-degree Gauss-Kruger zone 5"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 "); add_proj4text (p, 1, "+datum=potsdam +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / 3-degree Gauss-Kruger zone 5\",GEOGCS[\""); add_srs_wkt (p, 1, "DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\""); add_srs_wkt (p, 2, "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,"); add_srs_wkt (p, 4, "6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, "G\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 9, "ian\",15],PARAMETER[\"scale_factor\",1],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_easting\",5500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",N"); add_srs_wkt (p, 12, "ORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31469\"]]"); p = add_epsg_def (filter, first, last, 31528, "epsg", 31528, "Conakry 1905 / UTM zone 28N"); add_proj4text (p, 0, "+proj=utm +zone=28 +a=6378249.2 +b=6356515 +towgs84=-23,"); add_proj4text (p, 1, "259,-9,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Conakry 1905 / UTM zone 28N\",GEOGCS[\"Conakry "); add_srs_wkt (p, 1, "1905\",DATUM[\"Conakry_1905\",SPHEROID[\"Clarke 1880 (IG"); add_srs_wkt (p, 2, "N)\",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "11\"]],TOWGS84[-23,259,-9,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6315\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4315\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",-15],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 12, "hing\",NORTH],AUTHORITY[\"EPSG\",\"31528\"]]"); p = add_epsg_def (filter, first, last, 31529, "epsg", 31529, "Conakry 1905 / UTM zone 29N"); add_proj4text (p, 0, "+proj=utm +zone=29 +a=6378249.2 +b=6356515 +towgs84=-23,"); add_proj4text (p, 1, "259,-9,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Conakry 1905 / UTM zone 29N\",GEOGCS[\"Conakry "); add_srs_wkt (p, 1, "1905\",DATUM[\"Conakry_1905\",SPHEROID[\"Clarke 1880 (IG"); add_srs_wkt (p, 2, "N)\",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "11\"]],TOWGS84[-23,259,-9,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6315\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4315\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",-9],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",0.9996],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 12, "ing\",NORTH],AUTHORITY[\"EPSG\",\"31529\"]]"); p = add_epsg_def (filter, first, last, 31600, "epsg", 31600, "Dealul Piscului 1930 / Stereo 33"); add_proj4text (p, 0, "+proj=sterea +lat_0=45.9 +lon_0=25.39246588888889 +k=0.9"); add_proj4text (p, 1, "996667 +x_0=500000 +y_0=500000 +ellps=intl +towgs84=103."); add_proj4text (p, 2, "25,-100.4,-307.19,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Dealul Piscului 1930 / Stereo 33\",GEOGCS[\"Dea"); add_srs_wkt (p, 1, "lul Piscului 1930\",DATUM[\"Dealul_Piscului_1930\",SPHER"); add_srs_wkt (p, 2, "OID[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7022\"]],TOWGS84[103.25,-100.4,-307.19,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6316\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4316"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Oblique_Stereographic\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",45.9],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",25.39246588888889],PARAMETER[\"scale_factor\",0.9996667"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"31600\"]]"); p = add_epsg_def (filter, first, last, 31700, "epsg", 31700, "Dealul Piscului 1970/ Stereo 70 (deprecated)"); add_proj4text (p, 0, "+proj=sterea +lat_0=46 +lon_0=25 +k=0.99975 +x_0=500000 "); add_proj4text (p, 1, "+y_0=500000 +ellps=krass +towgs84=28,-121,-77,0,0,0,0 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Dealul Piscului 1970/ Stereo 70 (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Dealul Piscului 1970\",DATUM[\"Dealul_Piscului_"); add_srs_wkt (p, 2, "1970\",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7024\"]],TOWGS84[28,-121,-77,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6317\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"43"); add_srs_wkt (p, 7, "17\"]],PROJECTION[\"Oblique_Stereographic\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",46],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 9, "25],PARAMETER[\"scale_factor\",0.99975],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_easting\",500000],PARAMETER[\"false_northing\",500000]"); add_srs_wkt (p, 11, ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X"); add_srs_wkt (p, 12, "\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31700\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def (filter, first, last, 31838, "epsg", 31838, "NGN / UTM zone 38N"); add_proj4text (p, 0, "+proj=utm +zone=38 +ellps=WGS84 +towgs84=-3.2,-5.7,2.8,0"); add_proj4text (p, 1, ",0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NGN / UTM zone 38N\",GEOGCS[\"NGN\",DATUM[\"Nat"); add_srs_wkt (p, 1, "ional_Geodetic_Network\",SPHEROID[\"WGS 84\",6378137,298"); add_srs_wkt (p, 2, ".257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[-3.2,-5"); add_srs_wkt (p, 3, ".7,2.8,0,0,0,0],AUTHORITY[\"EPSG\",\"6318\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"4318\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 7, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 8, "ntral_meridian\",45],PARAMETER[\"scale_factor\",0.9996],"); add_srs_wkt (p, 9, "PARAMETER[\"false_easting\",500000],PARAMETER[\"false_no"); add_srs_wkt (p, 10, "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 11, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 12, "RITY[\"EPSG\",\"31838\"]]"); p = add_epsg_def (filter, first, last, 31839, "epsg", 31839, "NGN / UTM zone 39N"); add_proj4text (p, 0, "+proj=utm +zone=39 +ellps=WGS84 +towgs84=-3.2,-5.7,2.8,0"); add_proj4text (p, 1, ",0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NGN / UTM zone 39N\",GEOGCS[\"NGN\",DATUM[\"Nat"); add_srs_wkt (p, 1, "ional_Geodetic_Network\",SPHEROID[\"WGS 84\",6378137,298"); add_srs_wkt (p, 2, ".257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[-3.2,-5"); add_srs_wkt (p, 3, ".7,2.8,0,0,0,0],AUTHORITY[\"EPSG\",\"6318\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"4318\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 7, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 8, "ntral_meridian\",51],PARAMETER[\"scale_factor\",0.9996],"); add_srs_wkt (p, 9, "PARAMETER[\"false_easting\",500000],PARAMETER[\"false_no"); add_srs_wkt (p, 10, "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 11, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 12, "RITY[\"EPSG\",\"31839\"]]"); p = add_epsg_def (filter, first, last, 31900, "epsg", 31900, "KUDAMS / KTM (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=48 +k=0.9996 +x_0=500000 +y_"); add_proj4text (p, 1, "0=0 +ellps=GRS80 +towgs84=-20.8,11.3,2.4,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"KUDAMS / KTM (deprecated)\",GEOGCS[\"KUDAMS\",D"); add_srs_wkt (p, 1, "ATUM[\"Kuwait_Utility\",SPHEROID[\"GRS 1980\",6378137,29"); add_srs_wkt (p, 2, "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[-20.8,"); add_srs_wkt (p, 3, "11.3,2.4,0,0,0,0],AUTHORITY[\"EPSG\",\"6319\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4319\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, "entral_meridian\",48],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 9, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 10, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 11, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 12, "RITY[\"EPSG\",\"31900\"]]"); p = add_epsg_def (filter, first, last, 31901, "epsg", 31901, "KUDAMS / KTM"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=48 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=-20.8,11.3,2.4,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"KUDAMS / KTM\",GEOGCS[\"KUDAMS\",DATUM[\"Kuwait"); add_srs_wkt (p, 1, "_Utility\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 2, "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[-20.8,11.3,2.4,0,0,"); add_srs_wkt (p, 3, "0,0],AUTHORITY[\"EPSG\",\"6319\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4319\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 7, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 8, "ian\",48],PARAMETER[\"scale_factor\",1],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 11, "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "31901\"]]"); p = add_epsg_def (filter, first, last, 31965, "epsg", 31965, "SIRGAS 2000 / UTM zone 11N"); add_proj4text (p, 0, "+proj=utm +zone=11 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 2000 / UTM zone 11N\",GEOGCS[\"SIRGAS 20"); add_srs_wkt (p, 1, "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); add_srs_wkt (p, 2, "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",-117],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); add_srs_wkt (p, 12, "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"31965\"]]"); p = add_epsg_def (filter, first, last, 31966, "epsg", 31966, "SIRGAS 2000 / UTM zone 12N"); add_proj4text (p, 0, "+proj=utm +zone=12 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 2000 / UTM zone 12N\",GEOGCS[\"SIRGAS 20"); add_srs_wkt (p, 1, "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); add_srs_wkt (p, 2, "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",-111],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); add_srs_wkt (p, 12, "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"31966\"]]"); p = add_epsg_def (filter, first, last, 31967, "epsg", 31967, "SIRGAS 2000 / UTM zone 13N"); add_proj4text (p, 0, "+proj=utm +zone=13 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 2000 / UTM zone 13N\",GEOGCS[\"SIRGAS 20"); add_srs_wkt (p, 1, "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); add_srs_wkt (p, 2, "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",-105],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); add_srs_wkt (p, 12, "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"31967\"]]"); p = add_epsg_def (filter, first, last, 31968, "epsg", 31968, "SIRGAS 2000 / UTM zone 14N"); add_proj4text (p, 0, "+proj=utm +zone=14 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 2000 / UTM zone 14N\",GEOGCS[\"SIRGAS 20"); add_srs_wkt (p, 1, "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); add_srs_wkt (p, 2, "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",-99],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 12, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "31968\"]]"); p = add_epsg_def (filter, first, last, 31969, "epsg", 31969, "SIRGAS 2000 / UTM zone 15N"); add_proj4text (p, 0, "+proj=utm +zone=15 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 2000 / UTM zone 15N\",GEOGCS[\"SIRGAS 20"); add_srs_wkt (p, 1, "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); add_srs_wkt (p, 2, "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",-93],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 12, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "31969\"]]"); p = add_epsg_def (filter, first, last, 31970, "epsg", 31970, "SIRGAS 2000 / UTM zone 16N"); add_proj4text (p, 0, "+proj=utm +zone=16 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 2000 / UTM zone 16N\",GEOGCS[\"SIRGAS 20"); add_srs_wkt (p, 1, "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); add_srs_wkt (p, 2, "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",-87],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 12, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "31970\"]]"); p = add_epsg_def (filter, first, last, 31971, "epsg", 31971, "SIRGAS 2000 / UTM zone 17N"); add_proj4text (p, 0, "+proj=utm +zone=17 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 2000 / UTM zone 17N\",GEOGCS[\"SIRGAS 20"); add_srs_wkt (p, 1, "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); add_srs_wkt (p, 2, "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",-81],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 12, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "31971\"]]"); p = add_epsg_def (filter, first, last, 31972, "epsg", 31972, "SIRGAS 2000 / UTM zone 18N"); add_proj4text (p, 0, "+proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 2000 / UTM zone 18N\",GEOGCS[\"SIRGAS 20"); add_srs_wkt (p, 1, "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); add_srs_wkt (p, 2, "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",-75],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 12, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "31972\"]]"); p = add_epsg_def (filter, first, last, 31973, "epsg", 31973, "SIRGAS 2000 / UTM zone 19N"); add_proj4text (p, 0, "+proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 2000 / UTM zone 19N\",GEOGCS[\"SIRGAS 20"); add_srs_wkt (p, 1, "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); add_srs_wkt (p, 2, "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",-69],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 12, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "31973\"]]"); p = add_epsg_def (filter, first, last, 31974, "epsg", 31974, "SIRGAS 2000 / UTM zone 20N"); add_proj4text (p, 0, "+proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 2000 / UTM zone 20N\",GEOGCS[\"SIRGAS 20"); add_srs_wkt (p, 1, "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); add_srs_wkt (p, 2, "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",-63],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 12, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "31974\"]]"); p = add_epsg_def (filter, first, last, 31975, "epsg", 31975, "SIRGAS 2000 / UTM zone 21N"); add_proj4text (p, 0, "+proj=utm +zone=21 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 2000 / UTM zone 21N\",GEOGCS[\"SIRGAS 20"); add_srs_wkt (p, 1, "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); add_srs_wkt (p, 2, "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",-57],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 12, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "31975\"]]"); p = add_epsg_def (filter, first, last, 31976, "epsg", 31976, "SIRGAS 2000 / UTM zone 22N"); add_proj4text (p, 0, "+proj=utm +zone=22 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 2000 / UTM zone 22N\",GEOGCS[\"SIRGAS 20"); add_srs_wkt (p, 1, "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); add_srs_wkt (p, 2, "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",-51],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 12, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "31976\"]]"); p = add_epsg_def (filter, first, last, 31977, "epsg", 31977, "SIRGAS 2000 / UTM zone 17S"); add_proj4text (p, 0, "+proj=utm +zone=17 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 2000 / UTM zone 17S\",GEOGCS[\"SIRGAS 20"); add_srs_wkt (p, 1, "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); add_srs_wkt (p, 2, "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",-81],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",500000],PARAMETER[\"false_northing\",100000"); add_srs_wkt (p, 11, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"31977\"]]"); p = add_epsg_def (filter, first, last, 31978, "epsg", 31978, "SIRGAS 2000 / UTM zone 18S"); add_proj4text (p, 0, "+proj=utm +zone=18 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 2000 / UTM zone 18S\",GEOGCS[\"SIRGAS 20"); add_srs_wkt (p, 1, "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); add_srs_wkt (p, 2, "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",-75],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",500000],PARAMETER[\"false_northing\",100000"); add_srs_wkt (p, 11, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"31978\"]]"); p = add_epsg_def (filter, first, last, 31979, "epsg", 31979, "SIRGAS 2000 / UTM zone 19S"); add_proj4text (p, 0, "+proj=utm +zone=19 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 2000 / UTM zone 19S\",GEOGCS[\"SIRGAS 20"); add_srs_wkt (p, 1, "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); add_srs_wkt (p, 2, "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",-69],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",500000],PARAMETER[\"false_northing\",100000"); add_srs_wkt (p, 11, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"31979\"]]"); p = add_epsg_def (filter, first, last, 31980, "epsg", 31980, "SIRGAS 2000 / UTM zone 20S"); add_proj4text (p, 0, "+proj=utm +zone=20 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 2000 / UTM zone 20S\",GEOGCS[\"SIRGAS 20"); add_srs_wkt (p, 1, "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); add_srs_wkt (p, 2, "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",-63],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",500000],PARAMETER[\"false_northing\",100000"); add_srs_wkt (p, 11, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"31980\"]]"); p = add_epsg_def (filter, first, last, 31981, "epsg", 31981, "SIRGAS 2000 / UTM zone 21S"); add_proj4text (p, 0, "+proj=utm +zone=21 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 2000 / UTM zone 21S\",GEOGCS[\"SIRGAS 20"); add_srs_wkt (p, 1, "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); add_srs_wkt (p, 2, "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",-57],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",500000],PARAMETER[\"false_northing\",100000"); add_srs_wkt (p, 11, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"31981\"]]"); p = add_epsg_def (filter, first, last, 31982, "epsg", 31982, "SIRGAS 2000 / UTM zone 22S"); add_proj4text (p, 0, "+proj=utm +zone=22 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 2000 / UTM zone 22S\",GEOGCS[\"SIRGAS 20"); add_srs_wkt (p, 1, "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); add_srs_wkt (p, 2, "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",-51],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",500000],PARAMETER[\"false_northing\",100000"); add_srs_wkt (p, 11, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"31982\"]]"); p = add_epsg_def (filter, first, last, 31983, "epsg", 31983, "SIRGAS 2000 / UTM zone 23S"); add_proj4text (p, 0, "+proj=utm +zone=23 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 2000 / UTM zone 23S\",GEOGCS[\"SIRGAS 20"); add_srs_wkt (p, 1, "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); add_srs_wkt (p, 2, "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",-45],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",500000],PARAMETER[\"false_northing\",100000"); add_srs_wkt (p, 11, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"31983\"]]"); p = add_epsg_def (filter, first, last, 31984, "epsg", 31984, "SIRGAS 2000 / UTM zone 24S"); add_proj4text (p, 0, "+proj=utm +zone=24 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 2000 / UTM zone 24S\",GEOGCS[\"SIRGAS 20"); add_srs_wkt (p, 1, "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); add_srs_wkt (p, 2, "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",-39],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",500000],PARAMETER[\"false_northing\",100000"); add_srs_wkt (p, 11, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"31984\"]]"); p = add_epsg_def (filter, first, last, 31985, "epsg", 31985, "SIRGAS 2000 / UTM zone 25S"); add_proj4text (p, 0, "+proj=utm +zone=25 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 2000 / UTM zone 25S\",GEOGCS[\"SIRGAS 20"); add_srs_wkt (p, 1, "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); add_srs_wkt (p, 2, "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",-33],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",500000],PARAMETER[\"false_northing\",100000"); add_srs_wkt (p, 11, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"31985\"]]"); } #endif /* full EPSG initialization enabled/disabled */ libspatialite-4.1.1/src/srsinit/epsg_inlined_30.c0000664000175000017500000045064412163502133016667 00000000000000/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_30 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def (filter, first, last, 24819, "epsg", 24819, "PSAD56 / UTM zone 19N"); add_proj4text (p, 0, "+proj=utm +zone=19 +ellps=intl +towgs84=-288,175,-376,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PSAD56 / UTM zone 19N\",GEOGCS[\"PSAD56\",DATUM"); add_srs_wkt (p, 1, "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In"); add_srs_wkt (p, 2, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",-69],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 12, "hing\",NORTH],AUTHORITY[\"EPSG\",\"24819\"]]"); p = add_epsg_def (filter, first, last, 24820, "epsg", 24820, "PSAD56 / UTM zone 20N"); add_proj4text (p, 0, "+proj=utm +zone=20 +ellps=intl +towgs84=-288,175,-376,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PSAD56 / UTM zone 20N\",GEOGCS[\"PSAD56\",DATUM"); add_srs_wkt (p, 1, "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In"); add_srs_wkt (p, 2, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",-63],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 12, "hing\",NORTH],AUTHORITY[\"EPSG\",\"24820\"]]"); p = add_epsg_def (filter, first, last, 24821, "epsg", 24821, "PSAD56 / UTM zone 21N"); add_proj4text (p, 0, "+proj=utm +zone=21 +ellps=intl +towgs84=-288,175,-376,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PSAD56 / UTM zone 21N\",GEOGCS[\"PSAD56\",DATUM"); add_srs_wkt (p, 1, "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In"); add_srs_wkt (p, 2, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",-57],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 12, "hing\",NORTH],AUTHORITY[\"EPSG\",\"24821\"]]"); p = add_epsg_def (filter, first, last, 24877, "epsg", 24877, "PSAD56 / UTM zone 17S"); add_proj4text (p, 0, "+proj=utm +zone=17 +south +ellps=intl +towgs84=-288,175,"); add_proj4text (p, 1, "-376,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PSAD56 / UTM zone 17S\",GEOGCS[\"PSAD56\",DATUM"); add_srs_wkt (p, 1, "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In"); add_srs_wkt (p, 2, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",-81],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS"); add_srs_wkt (p, 12, "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24877\"]]"); p = add_epsg_def (filter, first, last, 24878, "epsg", 24878, "PSAD56 / UTM zone 18S"); add_proj4text (p, 0, "+proj=utm +zone=18 +south +ellps=intl +towgs84=-288,175,"); add_proj4text (p, 1, "-376,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PSAD56 / UTM zone 18S\",GEOGCS[\"PSAD56\",DATUM"); add_srs_wkt (p, 1, "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In"); add_srs_wkt (p, 2, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",-75],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS"); add_srs_wkt (p, 12, "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24878\"]]"); p = add_epsg_def (filter, first, last, 24879, "epsg", 24879, "PSAD56 / UTM zone 19S"); add_proj4text (p, 0, "+proj=utm +zone=19 +south +ellps=intl +towgs84=-288,175,"); add_proj4text (p, 1, "-376,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PSAD56 / UTM zone 19S\",GEOGCS[\"PSAD56\",DATUM"); add_srs_wkt (p, 1, "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In"); add_srs_wkt (p, 2, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",-69],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS"); add_srs_wkt (p, 12, "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24879\"]]"); p = add_epsg_def (filter, first, last, 24880, "epsg", 24880, "PSAD56 / UTM zone 20S"); add_proj4text (p, 0, "+proj=utm +zone=20 +south +ellps=intl +towgs84=-288,175,"); add_proj4text (p, 1, "-376,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PSAD56 / UTM zone 20S\",GEOGCS[\"PSAD56\",DATUM"); add_srs_wkt (p, 1, "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In"); add_srs_wkt (p, 2, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",-63],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS"); add_srs_wkt (p, 12, "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24880\"]]"); p = add_epsg_def (filter, first, last, 24881, "epsg", 24881, "PSAD56 / UTM zone 21S"); add_proj4text (p, 0, "+proj=utm +zone=21 +south +ellps=intl +towgs84=-288,175,"); add_proj4text (p, 1, "-376,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PSAD56 / UTM zone 21S\",GEOGCS[\"PSAD56\",DATUM"); add_srs_wkt (p, 1, "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In"); add_srs_wkt (p, 2, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",-57],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS"); add_srs_wkt (p, 12, "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24881\"]]"); p = add_epsg_def (filter, first, last, 24882, "epsg", 24882, "PSAD56 / UTM zone 22S"); add_proj4text (p, 0, "+proj=utm +zone=22 +south +ellps=intl +towgs84=-288,175,"); add_proj4text (p, 1, "-376,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PSAD56 / UTM zone 22S\",GEOGCS[\"PSAD56\",DATUM"); add_srs_wkt (p, 1, "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In"); add_srs_wkt (p, 2, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",-51],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS"); add_srs_wkt (p, 12, "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24882\"]]"); p = add_epsg_def (filter, first, last, 24891, "epsg", 24891, "PSAD56 / Peru west zone"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-6 +lon_0=-80.5 +k=0.99983008 +x_0=22"); add_proj4text (p, 1, "2000 +y_0=1426834.743 +ellps=intl +towgs84=-288,175,-376"); add_proj4text (p, 2, ",0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PSAD56 / Peru west zone\",GEOGCS[\"PSAD56\",DAT"); add_srs_wkt (p, 1, "UM[\"Provisional_South_American_Datum_1956\",SPHEROID[\""); add_srs_wkt (p, 2, "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "22\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",-6],PARAMETER[\"central_meridian\",-80.5],PARAMETER"); add_srs_wkt (p, 9, "[\"scale_factor\",0.99983008],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, ",222000],PARAMETER[\"false_northing\",1426834.743],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAS"); add_srs_wkt (p, 12, "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"24891\"]]"); p = add_epsg_def (filter, first, last, 24892, "epsg", 24892, "PSAD56 / Peru central zone"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-9.5 +lon_0=-76 +k=0.99932994 +x_0=72"); add_proj4text (p, 1, "0000 +y_0=1039979.159 +ellps=intl +towgs84=-288,175,-376"); add_proj4text (p, 2, ",0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PSAD56 / Peru central zone\",GEOGCS[\"PSAD56\","); add_srs_wkt (p, 1, "DATUM[\"Provisional_South_American_Datum_1956\",SPHEROID"); add_srs_wkt (p, 2, "[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7022\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 8, "igin\",-9.5],PARAMETER[\"central_meridian\",-76],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",0.99932994],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",720000],PARAMETER[\"false_northing\",1039979.159],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); add_srs_wkt (p, 12, "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"24892\"]]"); p = add_epsg_def (filter, first, last, 24893, "epsg", 24893, "PSAD56 / Peru east zone"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-9.5 +lon_0=-70.5 +k=0.99952992 +x_0="); add_proj4text (p, 1, "1324000 +y_0=1040084.558 +ellps=intl +towgs84=-288,175,-"); add_proj4text (p, 2, "376,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PSAD56 / Peru east zone\",GEOGCS[\"PSAD56\",DAT"); add_srs_wkt (p, 1, "UM[\"Provisional_South_American_Datum_1956\",SPHEROID[\""); add_srs_wkt (p, 2, "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "22\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",-9.5],PARAMETER[\"central_meridian\",-70.5],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",0.99952992],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",1324000],PARAMETER[\"false_northing\",1040084.558],U"); add_srs_wkt (p, 11, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"24893\"]]"); p = add_epsg_def (filter, first, last, 25000, "epsg", 25000, "Leigon / Ghana Metre Grid"); add_proj4text (p, 0, "+proj=tmerc +lat_0=4.666666666666667 +lon_0=-1 +k=0.9997"); add_proj4text (p, 1, "5 +x_0=274319.51 +y_0=0 +ellps=clrk80 +towgs84=-130,29,3"); add_proj4text (p, 2, "64,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Leigon / Ghana Metre Grid\",GEOGCS[\"Leigon\",D"); add_srs_wkt (p, 1, "ATUM[\"Leigon\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.1"); add_srs_wkt (p, 2, "45,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-130,29"); add_srs_wkt (p, 3, ",364,0,0,0,0],AUTHORITY[\"EPSG\",\"6250\"]],PRIMEM[\"Gre"); add_srs_wkt (p, 4, "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4250\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",4.666666666666667],"); add_srs_wkt (p, 8, "PARAMETER[\"central_meridian\",-1],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, "tor\",0.99975],PARAMETER[\"false_easting\",274319.51],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 12, "ing\",NORTH],AUTHORITY[\"EPSG\",\"25000\"]]"); p = add_epsg_def (filter, first, last, 25231, "epsg", 25231, "Lome / UTM zone 31N"); add_proj4text (p, 0, "+proj=utm +zone=31 +a=6378249.2 +b=6356515 +units=m +no_"); add_proj4text (p, 1, "defs"); add_srs_wkt (p, 0, "PROJCS[\"Lome / UTM zone 31N\",GEOGCS[\"Lome\",DATUM[\"L"); add_srs_wkt (p, 1, "ome\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.46602"); add_srs_wkt (p, 2, "12936269,AUTHORITY[\"EPSG\",\"7011\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6252\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4252\"]],PROJECTI"); add_srs_wkt (p, 6, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 7, "in\",0],PARAMETER[\"central_meridian\",3],PARAMETER[\"sc"); add_srs_wkt (p, 8, "ale_factor\",0.9996],PARAMETER[\"false_easting\",500000]"); add_srs_wkt (p, 9, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 10, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 11, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"25231\"]]"); p = add_epsg_def (filter, first, last, 25391, "epsg", 25391, "Luzon 1911 / Philippines zone I"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=0.99995 +x_0=500000 +"); add_proj4text (p, 1, "y_0=0 +ellps=clrk66 +towgs84=-133,-77,-51,0,0,0,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Luzon 1911 / Philippines zone I\",GEOGCS[\"Luzo"); add_srs_wkt (p, 1, "n 1911\",DATUM[\"Luzon_1911\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",TOWGS84[-133,-77,-51,0,0,0,0],AUTHORITY[\"EPSG\",\"6253"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4253\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",117],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.99995],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 11, "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"25391\"]]"); p = add_epsg_def (filter, first, last, 25392, "epsg", 25392, "Luzon 1911 / Philippines zone II"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=119 +k=0.99995 +x_0=500000 +"); add_proj4text (p, 1, "y_0=0 +ellps=clrk66 +towgs84=-133,-77,-51,0,0,0,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Luzon 1911 / Philippines zone II\",GEOGCS[\"Luz"); add_srs_wkt (p, 1, "on 1911\",DATUM[\"Luzon_1911\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],TOWGS84[-133,-77,-51,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "3\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4253\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, "],PARAMETER[\"central_meridian\",119],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",0.99995],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"25392\"]]"); p = add_epsg_def (filter, first, last, 25393, "epsg", 25393, "Luzon 1911 / Philippines zone III"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=121 +k=0.99995 +x_0=500000 +"); add_proj4text (p, 1, "y_0=0 +ellps=clrk66 +towgs84=-133,-77,-51,0,0,0,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Luzon 1911 / Philippines zone III\",GEOGCS[\"Lu"); add_srs_wkt (p, 1, "zon 1911\",DATUM[\"Luzon_1911\",SPHEROID[\"Clarke 1866\""); add_srs_wkt (p, 2, ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); add_srs_wkt (p, 3, "]],TOWGS84[-133,-77,-51,0,0,0,0],AUTHORITY[\"EPSG\",\"62"); add_srs_wkt (p, 4, "53\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4253\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, "],PARAMETER[\"central_meridian\",121],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",0.99995],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"25393\"]]"); p = add_epsg_def (filter, first, last, 25394, "epsg", 25394, "Luzon 1911 / Philippines zone IV"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=0.99995 +x_0=500000 +"); add_proj4text (p, 1, "y_0=0 +ellps=clrk66 +towgs84=-133,-77,-51,0,0,0,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Luzon 1911 / Philippines zone IV\",GEOGCS[\"Luz"); add_srs_wkt (p, 1, "on 1911\",DATUM[\"Luzon_1911\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],TOWGS84[-133,-77,-51,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "3\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4253\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, "],PARAMETER[\"central_meridian\",123],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",0.99995],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"25394\"]]"); p = add_epsg_def (filter, first, last, 25395, "epsg", 25395, "Luzon 1911 / Philippines zone V"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=125 +k=0.99995 +x_0=500000 +"); add_proj4text (p, 1, "y_0=0 +ellps=clrk66 +towgs84=-133,-77,-51,0,0,0,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Luzon 1911 / Philippines zone V\",GEOGCS[\"Luzo"); add_srs_wkt (p, 1, "n 1911\",DATUM[\"Luzon_1911\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",TOWGS84[-133,-77,-51,0,0,0,0],AUTHORITY[\"EPSG\",\"6253"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4253\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",125],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.99995],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 11, "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"25395\"]]"); p = add_epsg_def (filter, first, last, 25700, "epsg", 25700, "Makassar (Jakarta) / NEIEZ (deprecated)"); add_proj4text (p, 0, "+proj=merc +lon_0=110 +k=0.997 +x_0=3900000 +y_0=900000 "); add_proj4text (p, 1, "+ellps=bessel +towgs84=-587.8,519.75,145.76,0,0,0,0 +pm="); add_proj4text (p, 2, "jakarta +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Makassar (Jakarta) / NEIEZ (deprecated)\",GEOGC"); add_srs_wkt (p, 1, "S[\"Makassar (Jakarta)\",DATUM[\"Makassar_Jakarta\",SPHE"); add_srs_wkt (p, 2, "ROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7004\"]],TOWGS84[-587.8,519.75,145.76,0,0,0,0],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6804\"]],PRIMEM[\"Jakarta\",106.807"); add_srs_wkt (p, 5, "7194444444,AUTHORITY[\"EPSG\",\"8908\"]],UNIT[\"degree\""); add_srs_wkt (p, 6, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4804\"]],PROJECTION[\"Mercator_1SP\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"central_meridian\",110],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, "r\",0.997],PARAMETER[\"false_easting\",3900000],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_northing\",900000],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 11, "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"25700\"]]"); p = add_epsg_def (filter, first, last, 25828, "epsg", 25828, "ETRS89 / UTM zone 28N"); add_proj4text (p, 0, "+proj=utm +zone=28 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / UTM zone 28N\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, "],PARAMETER[\"central_meridian\",-15],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 11, "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 12, "ng\",NORTH],AUTHORITY[\"EPSG\",\"25828\"]]"); p = add_epsg_def (filter, first, last, 25829, "epsg", 25829, "ETRS89 / UTM zone 29N"); add_proj4text (p, 0, "+proj=utm +zone=29 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / UTM zone 29N\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, "],PARAMETER[\"central_meridian\",-9],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"25829\"]]"); p = add_epsg_def (filter, first, last, 25830, "epsg", 25830, "ETRS89 / UTM zone 30N"); add_proj4text (p, 0, "+proj=utm +zone=30 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / UTM zone 30N\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, "],PARAMETER[\"central_meridian\",-3],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"25830\"]]"); p = add_epsg_def (filter, first, last, 25831, "epsg", 25831, "ETRS89 / UTM zone 31N"); add_proj4text (p, 0, "+proj=utm +zone=31 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / UTM zone 31N\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, "],PARAMETER[\"central_meridian\",3],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"25831\"]]"); p = add_epsg_def (filter, first, last, 25832, "epsg", 25832, "ETRS89 / UTM zone 32N"); add_proj4text (p, 0, "+proj=utm +zone=32 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / UTM zone 32N\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, "],PARAMETER[\"central_meridian\",9],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"25832\"]]"); p = add_epsg_def (filter, first, last, 25833, "epsg", 25833, "ETRS89 / UTM zone 33N"); add_proj4text (p, 0, "+proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / UTM zone 33N\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, "],PARAMETER[\"central_meridian\",15],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"25833\"]]"); p = add_epsg_def (filter, first, last, 25834, "epsg", 25834, "ETRS89 / UTM zone 34N"); add_proj4text (p, 0, "+proj=utm +zone=34 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / UTM zone 34N\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, "],PARAMETER[\"central_meridian\",21],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"25834\"]]"); p = add_epsg_def (filter, first, last, 25835, "epsg", 25835, "ETRS89 / UTM zone 35N"); add_proj4text (p, 0, "+proj=utm +zone=35 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / UTM zone 35N\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, "],PARAMETER[\"central_meridian\",27],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"25835\"]]"); p = add_epsg_def (filter, first, last, 25836, "epsg", 25836, "ETRS89 / UTM zone 36N"); add_proj4text (p, 0, "+proj=utm +zone=36 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / UTM zone 36N\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, "],PARAMETER[\"central_meridian\",33],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"25836\"]]"); p = add_epsg_def (filter, first, last, 25837, "epsg", 25837, "ETRS89 / UTM zone 37N"); add_proj4text (p, 0, "+proj=utm +zone=37 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / UTM zone 37N\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, "],PARAMETER[\"central_meridian\",39],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"25837\"]]"); p = add_epsg_def (filter, first, last, 25838, "epsg", 25838, "ETRS89 / UTM zone 38N"); add_proj4text (p, 0, "+proj=utm +zone=38 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / UTM zone 38N\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, "],PARAMETER[\"central_meridian\",45],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"25838\"]]"); p = add_epsg_def (filter, first, last, 25884, "epsg", 25884, "ETRS89 / TM Baltic93"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9996 +x_0=500000 +y_"); add_proj4text (p, 1, "0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_def"); add_proj4text (p, 2, "s"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / TM Baltic93\",GEOGCS[\"ETRS89\",DATUM["); add_srs_wkt (p, 1, "\"European_Terrestrial_Reference_System_1989\",SPHEROID["); add_srs_wkt (p, 2, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, "],PARAMETER[\"central_meridian\",24],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"25884\"]]"); p = add_epsg_def (filter, first, last, 25932, "epsg", 25932, "Malongo 1987 / UTM zone 32S"); add_proj4text (p, 0, "+proj=utm +zone=32 +south +ellps=intl +towgs84=-254.1,-5"); add_proj4text (p, 1, ".36,-100.29,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Malongo 1987 / UTM zone 32S\",GEOGCS[\"Malongo "); add_srs_wkt (p, 1, "1987\",DATUM[\"Malongo_1987\",SPHEROID[\"International 1"); add_srs_wkt (p, 2, "924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84["); add_srs_wkt (p, 3, "-254.1,-5.36,-100.29,0,0,0,0],AUTHORITY[\"EPSG\",\"6259\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4259\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, "ARAMETER[\"central_meridian\",9],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, "r\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 12, "hing\",NORTH],AUTHORITY[\"EPSG\",\"25932\"]]"); p = add_epsg_def (filter, first, last, 26191, "epsg", 26191, "Merchich / Nord Maroc"); add_proj4text (p, 0, "+proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=-5.4 +k_0=0.999"); add_proj4text (p, 1, "625769 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +"); add_proj4text (p, 2, "towgs84=31,146,47,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Merchich / Nord Maroc\",GEOGCS[\"Merchich\",DAT"); add_srs_wkt (p, 1, "UM[\"Merchich\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2"); add_srs_wkt (p, 2, ",293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84"); add_srs_wkt (p, 3, "[31,146,47,0,0,0,0],AUTHORITY[\"EPSG\",\"6261\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4261\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 7, "rmal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",33.3]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-5.4],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",0.999625769],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 10, "],PARAMETER[\"false_northing\",300000],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"26191\"]]"); p = add_epsg_def (filter, first, last, 26192, "epsg", 26192, "Merchich / Sud Maroc"); add_proj4text (p, 0, "+proj=lcc +lat_1=29.7 +lat_0=29.7 +lon_0=-5.4 +k_0=0.999"); add_proj4text (p, 1, "6155960000001 +x_0=500000 +y_0=300000 +a=6378249.2 +b=63"); add_proj4text (p, 2, "56515 +towgs84=31,146,47,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Merchich / Sud Maroc\",GEOGCS[\"Merchich\",DATU"); add_srs_wkt (p, 1, "M[\"Merchich\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,"); add_srs_wkt (p, 2, "293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84["); add_srs_wkt (p, 3, "31,146,47,0,0,0,0],AUTHORITY[\"EPSG\",\"6261\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4261\"]],PROJECTION[\"Lambert_Confor"); add_srs_wkt (p, 7, "mal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",29.7],"); add_srs_wkt (p, 8, "PARAMETER[\"central_meridian\",-5.4],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.999615596],PARAMETER[\"false_easting\",500000]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_northing\",300000],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"26192\"]]"); p = add_epsg_def (filter, first, last, 26193, "epsg", 26193, "Merchich / Sahara (deprecated)"); add_proj4text (p, 0, "+proj=lcc +lat_1=26.1 +lat_0=26.1 +lon_0=-5.4 +k_0=0.999"); add_proj4text (p, 1, "6 +x_0=1200000 +y_0=400000 +a=6378249.2 +b=6356515 +towg"); add_proj4text (p, 2, "s84=31,146,47,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Merchich / Sahara (deprecated)\",GEOGCS[\"Merch"); add_srs_wkt (p, 1, "ich\",DATUM[\"Merchich\",SPHEROID[\"Clarke 1880 (IGN)\","); add_srs_wkt (p, 2, "6378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]"); add_srs_wkt (p, 3, "],TOWGS84[31,146,47,0,0,0,0],AUTHORITY[\"EPSG\",\"6261\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4261\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 7, "ert_Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 8, "n\",26.1],PARAMETER[\"central_meridian\",-5.4],PARAMETER"); add_srs_wkt (p, 9, "[\"scale_factor\",0.9996],PARAMETER[\"false_easting\",12"); add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",400000],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS"); add_srs_wkt (p, 12, "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26193\"]]"); p = add_epsg_def (filter, first, last, 26194, "epsg", 26194, "Merchich / Sahara Nord"); add_proj4text (p, 0, "+proj=lcc +lat_1=26.1 +lat_0=26.1 +lon_0=-5.4 +k_0=0.999"); add_proj4text (p, 1, "616304 +x_0=1200000 +y_0=400000 +a=6378249.2 +b=6356515 "); add_proj4text (p, 2, "+towgs84=31,146,47,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Merchich / Sahara Nord\",GEOGCS[\"Merchich\",DA"); add_srs_wkt (p, 1, "TUM[\"Merchich\",SPHEROID[\"Clarke 1880 (IGN)\",6378249."); add_srs_wkt (p, 2, "2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS8"); add_srs_wkt (p, 3, "4[31,146,47,0,0,0,0],AUTHORITY[\"EPSG\",\"6261\"]],PRIME"); add_srs_wkt (p, 4, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"4261\"]],PROJECTION[\"Lambert_Conf"); add_srs_wkt (p, 7, "ormal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",26.1"); add_srs_wkt (p, 8, "],PARAMETER[\"central_meridian\",-5.4],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",0.999616304],PARAMETER[\"false_easting\",12000"); add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",400000],UNIT[\"metre\","); add_srs_wkt (p, 11, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Y\",NORTH],AUTHORITY[\"EPSG\",\"26194\"]]"); p = add_epsg_def (filter, first, last, 26195, "epsg", 26195, "Merchich / Sahara Sud"); add_proj4text (p, 0, "+proj=lcc +lat_1=22.5 +lat_0=22.5 +lon_0=-5.4 +k_0=0.999"); add_proj4text (p, 1, "616437 +x_0=1500000 +y_0=400000 +a=6378249.2 +b=6356515 "); add_proj4text (p, 2, "+towgs84=31,146,47,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Merchich / Sahara Sud\",GEOGCS[\"Merchich\",DAT"); add_srs_wkt (p, 1, "UM[\"Merchich\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2"); add_srs_wkt (p, 2, ",293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84"); add_srs_wkt (p, 3, "[31,146,47,0,0,0,0],AUTHORITY[\"EPSG\",\"6261\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4261\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 7, "rmal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",22.5]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-5.4],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",0.999616437],PARAMETER[\"false_easting\",150000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",400000],UNIT[\"metre\",1"); add_srs_wkt (p, 11, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"26195\"]]"); p = add_epsg_def (filter, first, last, 26237, "epsg", 26237, "Massawa / UTM zone 37N"); add_proj4text (p, 0, "+proj=utm +zone=37 +ellps=bessel +towgs84=639,405,60,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Massawa / UTM zone 37N\",GEOGCS[\"Massawa\",DAT"); add_srs_wkt (p, 1, "UM[\"Massawa\",SPHEROID[\"Bessel 1841\",6377397.155,299."); add_srs_wkt (p, 2, "1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[639,405,60"); add_srs_wkt (p, 3, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6262\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"4262\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 7, "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); add_srs_wkt (p, 8, "meridian\",39],PARAMETER[\"scale_factor\",0.9996],PARAME"); add_srs_wkt (p, 9, "TER[\"false_easting\",500000],PARAMETER[\"false_northing"); add_srs_wkt (p, 10, "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 11, "S[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"26237\"]]"); p = add_epsg_def (filter, first, last, 26331, "epsg", 26331, "Minna / UTM zone 31N"); add_proj4text (p, 0, "+proj=utm +zone=31 +ellps=clrk80 +towgs84=-92,-93,122,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Minna / UTM zone 31N\",GEOGCS[\"Minna\",DATUM[\""); add_srs_wkt (p, 1, "Minna\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145,293.4"); add_srs_wkt (p, 2, "65,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-92,-93,122,0,0"); add_srs_wkt (p, 3, ",0,0],AUTHORITY[\"EPSG\",\"6263\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 6, "SG\",\"4263\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 7, "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 8, "dian\",3],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 9, "false_easting\",500000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 10, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea"); add_srs_wkt (p, 11, "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"26331\"]]"); p = add_epsg_def (filter, first, last, 26332, "epsg", 26332, "Minna / UTM zone 32N"); add_proj4text (p, 0, "+proj=utm +zone=32 +ellps=clrk80 +towgs84=-92,-93,122,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Minna / UTM zone 32N\",GEOGCS[\"Minna\",DATUM[\""); add_srs_wkt (p, 1, "Minna\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145,293.4"); add_srs_wkt (p, 2, "65,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-92,-93,122,0,0"); add_srs_wkt (p, 3, ",0,0],AUTHORITY[\"EPSG\",\"6263\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 6, "SG\",\"4263\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 7, "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 8, "dian\",9],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 9, "false_easting\",500000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 10, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea"); add_srs_wkt (p, 11, "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"26332\"]]"); p = add_epsg_def (filter, first, last, 26391, "epsg", 26391, "Minna / Nigeria West Belt"); add_proj4text (p, 0, "+proj=tmerc +lat_0=4 +lon_0=4.5 +k=0.99975 +x_0=230738.2"); add_proj4text (p, 1, "6 +y_0=0 +ellps=clrk80 +towgs84=-92,-93,122,0,0,0,0 +uni"); add_proj4text (p, 2, "ts=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Minna / Nigeria West Belt\",GEOGCS[\"Minna\",DA"); add_srs_wkt (p, 1, "TUM[\"Minna\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145"); add_srs_wkt (p, 2, ",293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-92,-93,1"); add_srs_wkt (p, 3, "22,0,0,0,0],AUTHORITY[\"EPSG\",\"6263\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4263\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",4],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",4.5],PARAMETER[\"scale_factor\",0.99975],PA"); add_srs_wkt (p, 9, "RAMETER[\"false_easting\",230738.26],PARAMETER[\"false_n"); add_srs_wkt (p, 10, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 11, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 12, "RITY[\"EPSG\",\"26391\"]]"); p = add_epsg_def (filter, first, last, 26392, "epsg", 26392, "Minna / Nigeria Mid Belt"); add_proj4text (p, 0, "+proj=tmerc +lat_0=4 +lon_0=8.5 +k=0.99975 +x_0=670553.9"); add_proj4text (p, 1, "8 +y_0=0 +ellps=clrk80 +towgs84=-92,-93,122,0,0,0,0 +uni"); add_proj4text (p, 2, "ts=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Minna / Nigeria Mid Belt\",GEOGCS[\"Minna\",DAT"); add_srs_wkt (p, 1, "UM[\"Minna\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145,"); add_srs_wkt (p, 2, "293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-92,-93,12"); add_srs_wkt (p, 3, "2,0,0,0,0],AUTHORITY[\"EPSG\",\"6263\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 4, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 5, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"4263\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 7, ",PARAMETER[\"latitude_of_origin\",4],PARAMETER[\"central"); add_srs_wkt (p, 8, "_meridian\",8.5],PARAMETER[\"scale_factor\",0.99975],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",670553.98],PARAMETER[\"false_no"); add_srs_wkt (p, 10, "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 11, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 12, "RITY[\"EPSG\",\"26392\"]]"); p = add_epsg_def (filter, first, last, 26393, "epsg", 26393, "Minna / Nigeria East Belt"); add_proj4text (p, 0, "+proj=tmerc +lat_0=4 +lon_0=12.5 +k=0.99975 +x_0=1110369"); add_proj4text (p, 1, ".7 +y_0=0 +ellps=clrk80 +towgs84=-92,-93,122,0,0,0,0 +un"); add_proj4text (p, 2, "its=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Minna / Nigeria East Belt\",GEOGCS[\"Minna\",DA"); add_srs_wkt (p, 1, "TUM[\"Minna\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145"); add_srs_wkt (p, 2, ",293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-92,-93,1"); add_srs_wkt (p, 3, "22,0,0,0,0],AUTHORITY[\"EPSG\",\"6263\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4263\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",4],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",12.5],PARAMETER[\"scale_factor\",0.99975],P"); add_srs_wkt (p, 9, "ARAMETER[\"false_easting\",1110369.7],PARAMETER[\"false_"); add_srs_wkt (p, 10, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 11, "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"26393\"]]"); p = add_epsg_def (filter, first, last, 26432, "epsg", 26432, "Mhast / UTM zone 32S (deprecated)"); add_proj4text (p, 0, "+proj=utm +zone=32 +south +ellps=intl +towgs84=-252.95,-"); add_proj4text (p, 1, "4.11,-96.38,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Mhast / UTM zone 32S (deprecated)\",GEOGCS[\"Mh"); add_srs_wkt (p, 1, "ast\",DATUM[\"Mhast\",SPHEROID[\"International 1924\",63"); add_srs_wkt (p, 2, "78388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-252.95,"); add_srs_wkt (p, 3, "-4.11,-96.38,0,0,0,0],AUTHORITY[\"EPSG\",\"6264\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4264\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, "R[\"central_meridian\",9],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 9, "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 11, "G\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\","); add_srs_wkt (p, 12, "NORTH],AUTHORITY[\"EPSG\",\"26432\"]]"); p = add_epsg_def (filter, first, last, 26591, "epsg", 26591, "Monte Mario (Rome) / Italy zone 1 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-3.45233333333333 +k=0.9996 "); add_proj4text (p, 1, "+x_0=1500000 +y_0=0 +ellps=intl +towgs84=-104.1,-49.1,-9"); add_proj4text (p, 2, ".9,0.971,-2.917,0.714,-11.68 +pm=rome +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Monte Mario (Rome) / Italy zone 1 (deprecated)\""); add_srs_wkt (p, 1, ",GEOGCS[\"Monte Mario (Rome)\",DATUM[\"Monte_Mario_Rome\""); add_srs_wkt (p, 2, ",SPHEROID[\"International 1924\",6378388,297,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7022\"]],TOWGS84[-104.1,-49.1,-9.9,0.971,-2.917"); add_srs_wkt (p, 4, ",0.714,-11.68],AUTHORITY[\"EPSG\",\"6806\"]],PRIMEM[\"Ro"); add_srs_wkt (p, 5, "me\",12.45233333333333,AUTHORITY[\"EPSG\",\"8906\"]],UNI"); add_srs_wkt (p, 6, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 7, "2\"]],AUTHORITY[\"EPSG\",\"4806\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",-3.45233333333333],PARAMETER["); add_srs_wkt (p, 10, "\"scale_factor\",0.9996],PARAMETER[\"false_easting\",150"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"26591\"]]"); p = add_epsg_def (filter, first, last, 26592, "epsg", 26592, "Monte Mario (Rome) / Italy zone 2 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=2.54766666666666 +k=0.9996 +"); add_proj4text (p, 1, "x_0=2520000 +y_0=0 +ellps=intl +towgs84=-104.1,-49.1,-9."); add_proj4text (p, 2, "9,0.971,-2.917,0.714,-11.68 +pm=rome +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Monte Mario (Rome) / Italy zone 2 (deprecated)\""); add_srs_wkt (p, 1, ",GEOGCS[\"Monte Mario (Rome)\",DATUM[\"Monte_Mario_Rome\""); add_srs_wkt (p, 2, ",SPHEROID[\"International 1924\",6378388,297,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7022\"]],TOWGS84[-104.1,-49.1,-9.9,0.971,-2.917"); add_srs_wkt (p, 4, ",0.714,-11.68],AUTHORITY[\"EPSG\",\"6806\"]],PRIMEM[\"Ro"); add_srs_wkt (p, 5, "me\",12.45233333333333,AUTHORITY[\"EPSG\",\"8906\"]],UNI"); add_srs_wkt (p, 6, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 7, "2\"]],AUTHORITY[\"EPSG\",\"4806\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",2.54766666666666],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",0.9996],PARAMETER[\"false_easting\",25200"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); add_srs_wkt (p, 13, "ORTH],AUTHORITY[\"EPSG\",\"26592\"]]"); p = add_epsg_def (filter, first, last, 26632, "epsg", 26632, "M'poraloko / UTM zone 32N"); add_proj4text (p, 0, "+proj=utm +zone=32 +a=6378249.2 +b=6356515 +towgs84=-74,"); add_proj4text (p, 1, "-130,42,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"M'poraloko / UTM zone 32N\",GEOGCS[\"M'poraloko"); add_srs_wkt (p, 1, "\",DATUM[\"M_poraloko\",SPHEROID[\"Clarke 1880 (IGN)\",6"); add_srs_wkt (p, 2, "378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]]"); add_srs_wkt (p, 3, ",TOWGS84[-74,-130,42,0,0,0,0],AUTHORITY[\"EPSG\",\"6266\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4266\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, "ARAMETER[\"central_meridian\",9],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, "r\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 11, "G\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\","); add_srs_wkt (p, 12, "NORTH],AUTHORITY[\"EPSG\",\"26632\"]]"); p = add_epsg_def (filter, first, last, 26692, "epsg", 26692, "M'poraloko / UTM zone 32S"); add_proj4text (p, 0, "+proj=utm +zone=32 +south +a=6378249.2 +b=6356515 +towgs"); add_proj4text (p, 1, "84=-74,-130,42,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"M'poraloko / UTM zone 32S\",GEOGCS[\"M'poraloko"); add_srs_wkt (p, 1, "\",DATUM[\"M_poraloko\",SPHEROID[\"Clarke 1880 (IGN)\",6"); add_srs_wkt (p, 2, "378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]]"); add_srs_wkt (p, 3, ",TOWGS84[-74,-130,42,0,0,0,0],AUTHORITY[\"EPSG\",\"6266\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4266\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, "ARAMETER[\"central_meridian\",9],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, "r\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 12, "hing\",NORTH],AUTHORITY[\"EPSG\",\"26692\"]]"); p = add_epsg_def (filter, first, last, 26701, "epsg", 26701, "NAD27 / UTM zone 1N"); add_proj4text (p, 0, "+proj=utm +zone=1 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / UTM zone 1N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, "177],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 11, "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "26701\"]]"); p = add_epsg_def (filter, first, last, 26702, "epsg", 26702, "NAD27 / UTM zone 2N"); add_proj4text (p, 0, "+proj=utm +zone=2 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / UTM zone 2N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, "171],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 11, "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "26702\"]]"); p = add_epsg_def (filter, first, last, 26703, "epsg", 26703, "NAD27 / UTM zone 3N"); add_proj4text (p, 0, "+proj=utm +zone=3 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / UTM zone 3N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, "165],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 11, "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "26703\"]]"); p = add_epsg_def (filter, first, last, 26704, "epsg", 26704, "NAD27 / UTM zone 4N"); add_proj4text (p, 0, "+proj=utm +zone=4 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / UTM zone 4N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, "159],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 11, "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "26704\"]]"); p = add_epsg_def (filter, first, last, 26705, "epsg", 26705, "NAD27 / UTM zone 5N"); add_proj4text (p, 0, "+proj=utm +zone=5 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / UTM zone 5N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, "153],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 11, "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "26705\"]]"); p = add_epsg_def (filter, first, last, 26706, "epsg", 26706, "NAD27 / UTM zone 6N"); add_proj4text (p, 0, "+proj=utm +zone=6 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / UTM zone 6N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, "147],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 11, "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "26706\"]]"); p = add_epsg_def (filter, first, last, 26707, "epsg", 26707, "NAD27 / UTM zone 7N"); add_proj4text (p, 0, "+proj=utm +zone=7 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / UTM zone 7N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, "141],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 11, "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "26707\"]]"); p = add_epsg_def (filter, first, last, 26708, "epsg", 26708, "NAD27 / UTM zone 8N"); add_proj4text (p, 0, "+proj=utm +zone=8 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / UTM zone 8N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, "135],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 11, "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "26708\"]]"); p = add_epsg_def (filter, first, last, 26709, "epsg", 26709, "NAD27 / UTM zone 9N"); add_proj4text (p, 0, "+proj=utm +zone=9 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / UTM zone 9N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, "129],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 11, "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "26709\"]]"); p = add_epsg_def (filter, first, last, 26710, "epsg", 26710, "NAD27 / UTM zone 10N"); add_proj4text (p, 0, "+proj=utm +zone=10 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / UTM zone 10N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, "123],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 11, "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "26710\"]]"); p = add_epsg_def (filter, first, last, 26711, "epsg", 26711, "NAD27 / UTM zone 11N"); add_proj4text (p, 0, "+proj=utm +zone=11 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / UTM zone 11N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, "117],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 11, "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "26711\"]]"); p = add_epsg_def (filter, first, last, 26712, "epsg", 26712, "NAD27 / UTM zone 12N"); add_proj4text (p, 0, "+proj=utm +zone=12 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / UTM zone 12N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, "111],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 11, "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "26712\"]]"); p = add_epsg_def (filter, first, last, 26713, "epsg", 26713, "NAD27 / UTM zone 13N"); add_proj4text (p, 0, "+proj=utm +zone=13 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / UTM zone 13N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, "105],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 11, "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "26713\"]]"); p = add_epsg_def (filter, first, last, 26714, "epsg", 26714, "NAD27 / UTM zone 14N"); add_proj4text (p, 0, "+proj=utm +zone=14 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / UTM zone 14N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, "99],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false"); add_srs_wkt (p, 9, "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 10, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 11, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2"); add_srs_wkt (p, 12, "6714\"]]"); p = add_epsg_def (filter, first, last, 26715, "epsg", 26715, "NAD27 / UTM zone 15N"); add_proj4text (p, 0, "+proj=utm +zone=15 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / UTM zone 15N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, "93],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false"); add_srs_wkt (p, 9, "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 10, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 11, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2"); add_srs_wkt (p, 12, "6715\"]]"); p = add_epsg_def (filter, first, last, 26716, "epsg", 26716, "NAD27 / UTM zone 16N"); add_proj4text (p, 0, "+proj=utm +zone=16 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / UTM zone 16N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, "87],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false"); add_srs_wkt (p, 9, "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 10, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 11, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2"); add_srs_wkt (p, 12, "6716\"]]"); p = add_epsg_def (filter, first, last, 26717, "epsg", 26717, "NAD27 / UTM zone 17N"); add_proj4text (p, 0, "+proj=utm +zone=17 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / UTM zone 17N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, "81],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false"); add_srs_wkt (p, 9, "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 10, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 11, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2"); add_srs_wkt (p, 12, "6717\"]]"); p = add_epsg_def (filter, first, last, 26718, "epsg", 26718, "NAD27 / UTM zone 18N"); add_proj4text (p, 0, "+proj=utm +zone=18 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / UTM zone 18N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, "75],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false"); add_srs_wkt (p, 9, "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 10, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 11, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2"); add_srs_wkt (p, 12, "6718\"]]"); p = add_epsg_def (filter, first, last, 26719, "epsg", 26719, "NAD27 / UTM zone 19N"); add_proj4text (p, 0, "+proj=utm +zone=19 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / UTM zone 19N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, "69],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false"); add_srs_wkt (p, 9, "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 10, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 11, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2"); add_srs_wkt (p, 12, "6719\"]]"); p = add_epsg_def (filter, first, last, 26720, "epsg", 26720, "NAD27 / UTM zone 20N"); add_proj4text (p, 0, "+proj=utm +zone=20 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / UTM zone 20N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, "63],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false"); add_srs_wkt (p, 9, "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 10, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 11, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2"); add_srs_wkt (p, 12, "6720\"]]"); p = add_epsg_def (filter, first, last, 26721, "epsg", 26721, "NAD27 / UTM zone 21N"); add_proj4text (p, 0, "+proj=utm +zone=21 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / UTM zone 21N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, "57],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false"); add_srs_wkt (p, 9, "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 10, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 11, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2"); add_srs_wkt (p, 12, "6721\"]]"); p = add_epsg_def (filter, first, last, 26722, "epsg", 26722, "NAD27 / UTM zone 22N"); add_proj4text (p, 0, "+proj=utm +zone=22 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / UTM zone 22N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, "51],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false"); add_srs_wkt (p, 9, "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 10, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 11, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2"); add_srs_wkt (p, 12, "6722\"]]"); p = add_epsg_def (filter, first, last, 26729, "epsg", 26729, "NAD27 / Alabama East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30.5 +lon_0=-85.83333333333333 +k=0.9"); add_proj4text (p, 1, "9996 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=u"); add_proj4text (p, 2, "s-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Alabama East\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",30.5],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-85.83333333333333],PARAMETER[\"scale_factor\",0.99996]"); add_srs_wkt (p, 9, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 10, "orthing\",0],UNIT[\"US survey foot\",0.3048006096012192,"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"26729\"]]"); p = add_epsg_def (filter, first, last, 26730, "epsg", 26730, "NAD27 / Alabama West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30 +lon_0=-87.5 +k=0.999933333 +x_0=1"); add_proj4text (p, 1, "52400.3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Alabama West\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",30],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 8, "-87.5],PARAMETER[\"scale_factor\",0.999933333],PARAMETER"); add_srs_wkt (p, 9, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 10, "0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY["); add_srs_wkt (p, 11, "\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"26730\"]]"); p = add_epsg_def (filter, first, last, 26731, "epsg", 26731, "NAD27 / Alaska zone 1"); add_proj4text (p, 0, "+proj=omerc +lat_0=57 +lonc=-133.6666666666667 +alpha=32"); add_proj4text (p, 1, "3.1301023611111 +k=0.9999 +x_0=5000000.001016002 +y_0=-5"); add_proj4text (p, 2, "000000.001016002 +gamma=323.1301023611111 +datum=NAD27 +"); add_proj4text (p, 3, "units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Alaska zone 1\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4267\"]],PROJECTION[\"Hotine_Oblique_Mercator\"],PARAM"); add_srs_wkt (p, 7, "ETER[\"latitude_of_center\",57],PARAMETER[\"longitude_of"); add_srs_wkt (p, 8, "_center\",-133.6666666666667],PARAMETER[\"azimuth\",323."); add_srs_wkt (p, 9, "1301023611111],PARAMETER[\"rectified_grid_angle\",323.13"); add_srs_wkt (p, 10, "01023611111],PARAMETER[\"scale_factor\",0.9999],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_easting\",16404166.67],PARAMETER[\"false_north"); add_srs_wkt (p, 12, "ing\",-16404166.67],UNIT[\"US survey foot\",0.3048006096"); add_srs_wkt (p, 13, "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 14, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26731\"]]"); p = add_epsg_def (filter, first, last, 26732, "epsg", 26732, "NAD27 / Alaska zone 2"); add_proj4text (p, 0, "+proj=tmerc +lat_0=54 +lon_0=-142 +k=0.9999 +x_0=152400."); add_proj4text (p, 1, "3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Alaska zone 2\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",54],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, "\",-142],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\""); add_srs_wkt (p, 9, "false_easting\",500000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 10, "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"26732\"]]"); p = add_epsg_def (filter, first, last, 26733, "epsg", 26733, "NAD27 / Alaska zone 3"); add_proj4text (p, 0, "+proj=tmerc +lat_0=54 +lon_0=-146 +k=0.9999 +x_0=152400."); add_proj4text (p, 1, "3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Alaska zone 3\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",54],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, "\",-146],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\""); add_srs_wkt (p, 9, "false_easting\",500000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 10, "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"26733\"]]"); p = add_epsg_def (filter, first, last, 26734, "epsg", 26734, "NAD27 / Alaska zone 4"); add_proj4text (p, 0, "+proj=tmerc +lat_0=54 +lon_0=-150 +k=0.9999 +x_0=152400."); add_proj4text (p, 1, "3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Alaska zone 4\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",54],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, "\",-150],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\""); add_srs_wkt (p, 9, "false_easting\",500000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 10, "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"26734\"]]"); p = add_epsg_def (filter, first, last, 26735, "epsg", 26735, "NAD27 / Alaska zone 5"); add_proj4text (p, 0, "+proj=tmerc +lat_0=54 +lon_0=-154 +k=0.9999 +x_0=152400."); add_proj4text (p, 1, "3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Alaska zone 5\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",54],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, "\",-154],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\""); add_srs_wkt (p, 9, "false_easting\",500000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 10, "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"26735\"]]"); p = add_epsg_def (filter, first, last, 26736, "epsg", 26736, "NAD27 / Alaska zone 6"); add_proj4text (p, 0, "+proj=tmerc +lat_0=54 +lon_0=-158 +k=0.9999 +x_0=152400."); add_proj4text (p, 1, "3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Alaska zone 6\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",54],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, "\",-158],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\""); add_srs_wkt (p, 9, "false_easting\",500000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 10, "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"26736\"]]"); p = add_epsg_def (filter, first, last, 26737, "epsg", 26737, "NAD27 / Alaska zone 7"); add_proj4text (p, 0, "+proj=tmerc +lat_0=54 +lon_0=-162 +k=0.9999 +x_0=213360."); add_proj4text (p, 1, "4267208534 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Alaska zone 7\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",54],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, "\",-162],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\""); add_srs_wkt (p, 9, "false_easting\",700000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 10, "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"26737\"]]"); p = add_epsg_def (filter, first, last, 26738, "epsg", 26738, "NAD27 / Alaska zone 8"); add_proj4text (p, 0, "+proj=tmerc +lat_0=54 +lon_0=-166 +k=0.9999 +x_0=152400."); add_proj4text (p, 1, "3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Alaska zone 8\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",54],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, "\",-166],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\""); add_srs_wkt (p, 9, "false_easting\",500000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 10, "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"26738\"]]"); p = add_epsg_def (filter, first, last, 26739, "epsg", 26739, "NAD27 / Alaska zone 9"); add_proj4text (p, 0, "+proj=tmerc +lat_0=54 +lon_0=-170 +k=0.9999 +x_0=182880."); add_proj4text (p, 1, "3657607315 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Alaska zone 9\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 7, "[\"latitude_of_origin\",54],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, "\",-170],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\""); add_srs_wkt (p, 9, "false_easting\",600000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 10, "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"26739\"]]"); p = add_epsg_def (filter, first, last, 26740, "epsg", 26740, "NAD27 / Alaska zone 10"); add_proj4text (p, 0, "+proj=lcc +lat_1=53.83333333333334 +lat_2=51.83333333333"); add_proj4text (p, 1, "334 +lat_0=51 +lon_0=-176 +x_0=914401.8288036576 +y_0=0 "); add_proj4text (p, 2, "+datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Alaska zone 10\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 7, "PARAMETER[\"standard_parallel_1\",53.83333333333334],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_2\",51.83333333333334],PARAME"); add_srs_wkt (p, 9, "TER[\"latitude_of_origin\",51],PARAMETER[\"central_merid"); add_srs_wkt (p, 10, "ian\",-176],PARAMETER[\"false_easting\",3000000],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",0],UNIT[\"US survey foot\",0.30480"); add_srs_wkt (p, 12, "06096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAS"); add_srs_wkt (p, 13, "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26740\"]]"); p = add_epsg_def (filter, first, last, 26741, "epsg", 26741, "NAD27 / California zone I"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.3"); add_proj4text (p, 1, "3333333333334 +lon_0=-122 +x_0=609601.2192024384 +y_0=0 "); add_proj4text (p, 2, "+datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / California zone I\",GEOGCS[\"NAD27\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866"); add_srs_wkt (p, 2, "\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 7, "],PARAMETER[\"standard_parallel_1\",41.66666666666666],P"); add_srs_wkt (p, 8, "ARAMETER[\"standard_parallel_2\",40],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",39.33333333333334],PARAMETER[\"central_mer"); add_srs_wkt (p, 10, "idian\",-122],PARAMETER[\"false_easting\",2000000],PARAM"); add_srs_wkt (p, 11, "ETER[\"false_northing\",0],UNIT[\"US survey foot\",0.304"); add_srs_wkt (p, 12, "8006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",E"); add_srs_wkt (p, 13, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26741\"]]"); p = add_epsg_def (filter, first, last, 26742, "epsg", 26742, "NAD27 / California zone II"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333"); add_proj4text (p, 1, "334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=609601.219"); add_proj4text (p, 2, "2024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / California zone II\",GEOGCS[\"NAD27\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186"); add_srs_wkt (p, 2, "6\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"700"); add_srs_wkt (p, 3, "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 6, "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 7, "\"],PARAMETER[\"standard_parallel_1\",39.83333333333334]"); add_srs_wkt (p, 8, ",PARAMETER[\"standard_parallel_2\",38.33333333333334],PA"); add_srs_wkt (p, 9, "RAMETER[\"latitude_of_origin\",37.66666666666666],PARAME"); add_srs_wkt (p, 10, "TER[\"central_meridian\",-122],PARAMETER[\"false_easting"); add_srs_wkt (p, 11, "\",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US su"); add_srs_wkt (p, 12, "rvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003"); add_srs_wkt (p, 13, "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 14, "\",\"26742\"]]"); p = add_epsg_def (filter, first, last, 26743, "epsg", 26743, "NAD27 / California zone III"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666"); add_proj4text (p, 1, "667 +lat_0=36.5 +lon_0=-120.5 +x_0=609601.2192024384 +y_"); add_proj4text (p, 2, "0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / California zone III\",GEOGCS[\"NAD27\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 18"); add_srs_wkt (p, 2, "66\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "08\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 6, "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 7, "\"],PARAMETER[\"standard_parallel_1\",38.43333333333333]"); add_srs_wkt (p, 8, ",PARAMETER[\"standard_parallel_2\",37.06666666666667],PA"); add_srs_wkt (p, 9, "RAMETER[\"latitude_of_origin\",36.5],PARAMETER[\"central"); add_srs_wkt (p, 10, "_meridian\",-120.5],PARAMETER[\"false_easting\",2000000]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_northing\",0],UNIT[\"US survey foot\""); add_srs_wkt (p, 12, ",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\""); add_srs_wkt (p, 13, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26743\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def (filter, first, last, 26744, "epsg", 26744, "NAD27 / California zone IV"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.3333333333333"); add_proj4text (p, 1, "4 +lon_0=-119 +x_0=609601.2192024384 +y_0=0 +datum=NAD27"); add_proj4text (p, 2, " +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / California zone IV\",GEOGCS[\"NAD27\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186"); add_srs_wkt (p, 2, "6\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"700"); add_srs_wkt (p, 3, "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 6, "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 7, "\"],PARAMETER[\"standard_parallel_1\",37.25],PARAMETER[\""); add_srs_wkt (p, 8, "standard_parallel_2\",36],PARAMETER[\"latitude_of_origin"); add_srs_wkt (p, 9, "\",35.33333333333334],PARAMETER[\"central_meridian\",-11"); add_srs_wkt (p, 10, "9],PARAMETER[\"false_easting\",2000000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"US survey foot\",0.30480060960121"); add_srs_wkt (p, 12, "92,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Y\",NORTH],AUTHORITY[\"EPSG\",\"26744\"]]"); p = add_epsg_def (filter, first, last, 26745, "epsg", 26745, "NAD27 / California zone V"); add_proj4text (p, 0, "+proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333"); add_proj4text (p, 1, "333 +lat_0=33.5 +lon_0=-118 +x_0=609601.2192024384 +y_0="); add_proj4text (p, 2, "0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / California zone V\",GEOGCS[\"NAD27\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866"); add_srs_wkt (p, 2, "\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 7, "],PARAMETER[\"standard_parallel_1\",35.46666666666667],P"); add_srs_wkt (p, 8, "ARAMETER[\"standard_parallel_2\",34.03333333333333],PARA"); add_srs_wkt (p, 9, "METER[\"latitude_of_origin\",33.5],PARAMETER[\"central_m"); add_srs_wkt (p, 10, "eridian\",-118],PARAMETER[\"false_easting\",2000000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"US survey foot\",0.3"); add_srs_wkt (p, 12, "048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); add_srs_wkt (p, 13, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26745\"]]"); p = add_epsg_def (filter, first, last, 26746, "epsg", 26746, "NAD27 / California zone VI"); add_proj4text (p, 0, "+proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333"); add_proj4text (p, 1, "333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=609601."); add_proj4text (p, 2, "2192024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / California zone VI\",GEOGCS[\"NAD27\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186"); add_srs_wkt (p, 2, "6\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"700"); add_srs_wkt (p, 3, "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 6, "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 7, "\"],PARAMETER[\"standard_parallel_1\",33.88333333333333]"); add_srs_wkt (p, 8, ",PARAMETER[\"standard_parallel_2\",32.78333333333333],PA"); add_srs_wkt (p, 9, "RAMETER[\"latitude_of_origin\",32.16666666666666],PARAME"); add_srs_wkt (p, 10, "TER[\"central_meridian\",-116.25],PARAMETER[\"false_east"); add_srs_wkt (p, 11, "ing\",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US"); add_srs_wkt (p, 12, " survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 13, "003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 14, "PSG\",\"26746\"]]"); p = add_epsg_def (filter, first, last, 26747, "epsg", 26747, "NAD27 / California zone VII (deprecated)"); add_proj4text (p, 0, "+proj=lcc +lat_1=34.41666666666666 +lat_2=33.86666666666"); add_proj4text (p, 1, "667 +lat_0=34.13333333333333 +lon_0=-118.3333333333333 +"); add_proj4text (p, 2, "x_0=1276106.450596901 +y_0=127079.524511049 +datum=NAD27"); add_proj4text (p, 3, " +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / California zone VII (deprecated)\",GEOG"); add_srs_wkt (p, 1, "CS[\"NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROI"); add_srs_wkt (p, 2, "D[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4267\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 7, "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",34.4"); add_srs_wkt (p, 8, "1666666666666],PARAMETER[\"standard_parallel_2\",33.8666"); add_srs_wkt (p, 9, "6666666667],PARAMETER[\"latitude_of_origin\",34.13333333"); add_srs_wkt (p, 10, "333333],PARAMETER[\"central_meridian\",-118.333333333333"); add_srs_wkt (p, 11, "3],PARAMETER[\"false_easting\",4186692.58],PARAMETER[\"f"); add_srs_wkt (p, 12, "alse_northing\",416926.74],UNIT[\"US survey foot\",0.304"); add_srs_wkt (p, 13, "8006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",E"); add_srs_wkt (p, 14, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26747\"]]"); p = add_epsg_def (filter, first, last, 26748, "epsg", 26748, "NAD27 / Arizona East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=us-f"); add_proj4text (p, 2, "t +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Arizona East\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",31],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 8, "-110.1666666666667],PARAMETER[\"scale_factor\",0.9999],P"); add_srs_wkt (p, 9, "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 10, "thing\",0],UNIT[\"US survey foot\",0.3048006096012192,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 12, "NORTH],AUTHORITY[\"EPSG\",\"26748\"]]"); p = add_epsg_def (filter, first, last, 26749, "epsg", 26749, "NAD27 / Arizona Central"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=us-f"); add_proj4text (p, 2, "t +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Arizona Central\",GEOGCS[\"NAD27\",DATU"); add_srs_wkt (p, 1, "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); add_srs_wkt (p, 2, ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 7, "R[\"latitude_of_origin\",31],PARAMETER[\"central_meridia"); add_srs_wkt (p, 8, "n\",-111.9166666666667],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 9, "9],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 10, "_northing\",0],UNIT[\"US survey foot\",0.304800609601219"); add_srs_wkt (p, 11, "2,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Y\",NORTH],AUTHORITY[\"EPSG\",\"26749\"]]"); p = add_epsg_def (filter, first, last, 26750, "epsg", 26750, "NAD27 / Arizona West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0"); add_proj4text (p, 1, "=152400.3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Arizona West\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",31],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 8, "-113.75],PARAMETER[\"scale_factor\",0.999933333],PARAMET"); add_srs_wkt (p, 9, "ER[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 10, ",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"26750\"]]"); p = add_epsg_def (filter, first, last, 26751, "epsg", 26751, "NAD27 / Arkansas North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333"); add_proj4text (p, 1, "333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=609601.2192"); add_proj4text (p, 2, "024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Arkansas North\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 7, "PARAMETER[\"standard_parallel_1\",36.23333333333333],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_2\",34.93333333333333],PARAME"); add_srs_wkt (p, 9, "TER[\"latitude_of_origin\",34.33333333333334],PARAMETER["); add_srs_wkt (p, 10, "\"central_meridian\",-92],PARAMETER[\"false_easting\",20"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"US survey "); add_srs_wkt (p, 12, "foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],"); add_srs_wkt (p, 13, "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "26751\"]]"); p = add_epsg_def (filter, first, last, 26752, "epsg", 26752, "NAD27 / Arkansas South"); add_proj4text (p, 0, "+proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32"); add_proj4text (p, 1, ".66666666666666 +lon_0=-92 +x_0=609601.2192024384 +y_0=0"); add_proj4text (p, 2, " +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Arkansas South\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 7, "PARAMETER[\"standard_parallel_1\",34.76666666666667],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_2\",33.3],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",32.66666666666666],PARAMETER[\"central_mer"); add_srs_wkt (p, 10, "idian\",-92],PARAMETER[\"false_easting\",2000000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",0],UNIT[\"US survey foot\",0.3048"); add_srs_wkt (p, 12, "006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26752\"]]"); p = add_epsg_def (filter, first, last, 26753, "epsg", 26753, "NAD27 / Colorado North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.71666666666667 +lat_2=40.78333333333"); add_proj4text (p, 1, "333 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=609601.2"); add_proj4text (p, 2, "192024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Colorado North\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 7, "PARAMETER[\"standard_parallel_1\",39.71666666666667],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_2\",40.78333333333333],PARAME"); add_srs_wkt (p, 9, "TER[\"latitude_of_origin\",39.33333333333334],PARAMETER["); add_srs_wkt (p, 10, "\"central_meridian\",-105.5],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US surv"); add_srs_wkt (p, 12, "ey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\""); add_srs_wkt (p, 13, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"26753\"]]"); p = add_epsg_def (filter, first, last, 26754, "epsg", 26754, "NAD27 / Colorado Central"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.8333333333"); add_proj4text (p, 1, "3334 +lon_0=-105.5 +x_0=609601.2192024384 +y_0=0 +datum="); add_proj4text (p, 2, "NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Colorado Central\",GEOGCS[\"NAD27\",DAT"); add_srs_wkt (p, 1, "UM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); add_srs_wkt (p, 2, ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 7, "PARAMETER[\"standard_parallel_1\",39.75],PARAMETER[\"sta"); add_srs_wkt (p, 8, "ndard_parallel_2\",38.45],PARAMETER[\"latitude_of_origin"); add_srs_wkt (p, 9, "\",37.83333333333334],PARAMETER[\"central_meridian\",-10"); add_srs_wkt (p, 10, "5.5],PARAMETER[\"false_easting\",2000000],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_northing\",0],UNIT[\"US survey foot\",0.304800609601"); add_srs_wkt (p, 12, "2192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS"); add_srs_wkt (p, 13, "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26754\"]]"); p = add_epsg_def (filter, first, last, 26755, "epsg", 26755, "NAD27 / Colorado South"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333"); add_proj4text (p, 1, "333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=609601.2"); add_proj4text (p, 2, "192024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Colorado South\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 7, "PARAMETER[\"standard_parallel_1\",38.43333333333333],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_2\",37.23333333333333],PARAME"); add_srs_wkt (p, 9, "TER[\"latitude_of_origin\",36.66666666666666],PARAMETER["); add_srs_wkt (p, 10, "\"central_meridian\",-105.5],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US surv"); add_srs_wkt (p, 12, "ey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\""); add_srs_wkt (p, 13, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"26755\"]]"); p = add_epsg_def (filter, first, last, 26756, "epsg", 26756, "NAD27 / Connecticut"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40"); add_proj4text (p, 1, ".83333333333334 +lon_0=-72.75 +x_0=182880.3657607315 +y_"); add_proj4text (p, 2, "0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Connecticut\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 7, "AMETER[\"standard_parallel_1\",41.86666666666667],PARAME"); add_srs_wkt (p, 8, "TER[\"standard_parallel_2\",41.2],PARAMETER[\"latitude_o"); add_srs_wkt (p, 9, "f_origin\",40.83333333333334],PARAMETER[\"central_meridi"); add_srs_wkt (p, 10, "an\",-72.75],PARAMETER[\"false_easting\",600000],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",0],UNIT[\"US survey foot\",0.30480"); add_srs_wkt (p, 12, "06096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAS"); add_srs_wkt (p, 13, "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26756\"]]"); p = add_epsg_def (filter, first, last, 26757, "epsg", 26757, "NAD27 / Delaware"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999"); add_proj4text (p, 1, "995 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=us"); add_proj4text (p, 2, "-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Delaware\",GEOGCS[\"NAD27\",DATUM[\"Nor"); add_srs_wkt (p, 1, "th_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637820"); add_srs_wkt (p, 2, "6.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"426"); add_srs_wkt (p, 6, "7\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 7, "titude_of_origin\",38],PARAMETER[\"central_meridian\",-7"); add_srs_wkt (p, 8, "5.41666666666667],PARAMETER[\"scale_factor\",0.999995],P"); add_srs_wkt (p, 9, "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 10, "thing\",0],UNIT[\"US survey foot\",0.3048006096012192,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 12, "NORTH],AUTHORITY[\"EPSG\",\"26757\"]]"); p = add_epsg_def (filter, first, last, 26758, "epsg", 26758, "NAD27 / Florida East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999"); add_proj4text (p, 1, "941177 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units"); add_proj4text (p, 2, "=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Florida East\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",24.33333333333333],PARAMETER[\"cent"); add_srs_wkt (p, 8, "ral_meridian\",-81],PARAMETER[\"scale_factor\",0.9999411"); add_srs_wkt (p, 9, "77],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_northing\",0],UNIT[\"US survey foot\",0.30480060960121"); add_srs_wkt (p, 11, "92,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Y\",NORTH],AUTHORITY[\"EPSG\",\"26758\"]]"); } #endif /* full EPSG initialization enabled/disabled */ libspatialite-4.1.1/src/srsinit/epsg_inlined_01.c0000664000175000017500000046725612163502133016674 00000000000000/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def (filter, first, last, 2101, "epsg", 2101, "Lake / Maracaibo Grid M1"); add_proj4text (p, 0, "+proj=lcc +lat_1=10.16666666666667 +lat_0=10.16666666666"); add_proj4text (p, 1, "667 +lon_0=-71.60561777777777 +k_0=1 +x_0=0 +y_0=-52684."); add_proj4text (p, 2, "972 +ellps=intl +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Lake / Maracaibo Grid M1\",GEOGCS[\"Lake\",DATU"); add_srs_wkt (p, 1, "M[\"Lake\",SPHEROID[\"International 1924\",6378388,297,A"); add_srs_wkt (p, 2, "UTHORITY[\"EPSG\",\"7022\"]],AUTHORITY[\"EPSG\",\"6249\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4249\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 6, "ert_Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 7, "n\",10.16666666666667],PARAMETER[\"central_meridian\",-7"); add_srs_wkt (p, 8, "1.60561777777777],PARAMETER[\"scale_factor\",1],PARAMETE"); add_srs_wkt (p, 9, "R[\"false_easting\",0],PARAMETER[\"false_northing\",-526"); add_srs_wkt (p, 10, "84.972],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 11, "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2"); add_srs_wkt (p, 12, "101\"]]"); p = add_epsg_def (filter, first, last, 2102, "epsg", 2102, "Lake / Maracaibo Grid"); add_proj4text (p, 0, "+proj=lcc +lat_1=10.16666666666667 +lat_0=10.16666666666"); add_proj4text (p, 1, "667 +lon_0=-71.60561777777777 +k_0=1 +x_0=200000 +y_0=14"); add_proj4text (p, 2, "7315.028 +ellps=intl +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Lake / Maracaibo Grid\",GEOGCS[\"Lake\",DATUM[\""); add_srs_wkt (p, 1, "Lake\",SPHEROID[\"International 1924\",6378388,297,AUTHO"); add_srs_wkt (p, 2, "RITY[\"EPSG\",\"7022\"]],AUTHORITY[\"EPSG\",\"6249\"]],P"); add_srs_wkt (p, 3, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 4, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 5, "\"]],AUTHORITY[\"EPSG\",\"4249\"]],PROJECTION[\"Lambert_"); add_srs_wkt (p, 6, "Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 7, "10.16666666666667],PARAMETER[\"central_meridian\",-71.60"); add_srs_wkt (p, 8, "561777777777],PARAMETER[\"scale_factor\",1],PARAMETER[\""); add_srs_wkt (p, 9, "false_easting\",200000],PARAMETER[\"false_northing\",147"); add_srs_wkt (p, 10, "315.028],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "2102\"]]"); p = add_epsg_def (filter, first, last, 2103, "epsg", 2103, "Lake / Maracaibo Grid M3"); add_proj4text (p, 0, "+proj=lcc +lat_1=10.16666666666667 +lat_0=10.16666666666"); add_proj4text (p, 1, "667 +lon_0=-71.60561777777777 +k_0=1 +x_0=500000 +y_0=44"); add_proj4text (p, 2, "7315.028 +ellps=intl +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Lake / Maracaibo Grid M3\",GEOGCS[\"Lake\",DATU"); add_srs_wkt (p, 1, "M[\"Lake\",SPHEROID[\"International 1924\",6378388,297,A"); add_srs_wkt (p, 2, "UTHORITY[\"EPSG\",\"7022\"]],AUTHORITY[\"EPSG\",\"6249\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4249\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 6, "ert_Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 7, "n\",10.16666666666667],PARAMETER[\"central_meridian\",-7"); add_srs_wkt (p, 8, "1.60561777777777],PARAMETER[\"scale_factor\",1],PARAMETE"); add_srs_wkt (p, 9, "R[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 10, ",447315.028],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 11, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"2103\"]]"); p = add_epsg_def (filter, first, last, 2104, "epsg", 2104, "Lake / Maracaibo La Rosa Grid"); add_proj4text (p, 0, "+proj=lcc +lat_1=10.16666666666667 +lat_0=10.16666666666"); add_proj4text (p, 1, "667 +lon_0=-71.60561777777777 +k_0=1 +x_0=-17044 +y_0=-2"); add_proj4text (p, 2, "3139.97 +ellps=intl +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Lake / Maracaibo La Rosa Grid\",GEOGCS[\"Lake\""); add_srs_wkt (p, 1, ",DATUM[\"Lake\",SPHEROID[\"International 1924\",6378388,"); add_srs_wkt (p, 2, "297,AUTHORITY[\"EPSG\",\"7022\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "249\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4249\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 7, "rigin\",10.16666666666667],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-71.60561777777777],PARAMETER[\"scale_factor\",1],PARAM"); add_srs_wkt (p, 9, "ETER[\"false_easting\",-17044],PARAMETER[\"false_northin"); add_srs_wkt (p, 10, "g\",-23139.97],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 11, "1\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"2104\"]]"); p = add_epsg_def (filter, first, last, 2105, "epsg", 2105, "NZGD2000 / Mount Eden 2000"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-36.87972222222222 +lon_0=174.7641666"); add_proj4text (p, 1, "666667 +k=0.9999 +x_0=400000 +y_0=800000 +ellps=GRS80 +t"); add_proj4text (p, 2, "owgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Mount Eden 2000\",GEOGCS[\"NZGD2000\""); add_srs_wkt (p, 1, ",DATUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",-36.8"); add_srs_wkt (p, 8, "7972222222222],PARAMETER[\"central_meridian\",174.764166"); add_srs_wkt (p, 9, "6666667],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",400000],PARAMETER[\"false_northing\",800"); add_srs_wkt (p, 11, "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS"); add_srs_wkt (p, 12, "[\"Northing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"2105\"]]"); p = add_epsg_def (filter, first, last, 2106, "epsg", 2106, "NZGD2000 / Bay of Plenty 2000"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-37.76111111111111 +lon_0=176.4661111"); add_proj4text (p, 1, "111111 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs8"); add_proj4text (p, 2, "4=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Bay of Plenty 2000\",GEOGCS[\"NZGD20"); add_srs_wkt (p, 1, "00\",DATUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID["); add_srs_wkt (p, 2, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"616"); add_srs_wkt (p, 4, "7\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-"); add_srs_wkt (p, 8, "37.76111111111111],PARAMETER[\"central_meridian\",176.46"); add_srs_wkt (p, 9, "61111111111],PARAMETER[\"scale_factor\",1],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_easting\",400000],PARAMETER[\"false_northing\",8000"); add_srs_wkt (p, 11, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Northing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"2106\"]]"); p = add_epsg_def (filter, first, last, 2107, "epsg", 2107, "NZGD2000 / Poverty Bay 2000"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-38.62444444444444 +lon_0=177.8855555"); add_proj4text (p, 1, "555556 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs8"); add_proj4text (p, 2, "4=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Poverty Bay 2000\",GEOGCS[\"NZGD2000"); add_srs_wkt (p, 1, "\",DATUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\""); add_srs_wkt (p, 2, "GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "19\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-38."); add_srs_wkt (p, 8, "62444444444444],PARAMETER[\"central_meridian\",177.88555"); add_srs_wkt (p, 9, "55555556],PARAMETER[\"scale_factor\",1],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_easting\",400000],PARAMETER[\"false_northing\",800000]"); add_srs_wkt (p, 11, ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"N"); add_srs_wkt (p, 12, "orthing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"2107\"]]"); p = add_epsg_def (filter, first, last, 2108, "epsg", 2108, "NZGD2000 / Hawkes Bay 2000"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-39.65083333333333 +lon_0=176.6736111"); add_proj4text (p, 1, "111111 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs8"); add_proj4text (p, 2, "4=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Hawkes Bay 2000\",GEOGCS[\"NZGD2000\""); add_srs_wkt (p, 1, ",DATUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",-39.6"); add_srs_wkt (p, 8, "5083333333333],PARAMETER[\"central_meridian\",176.673611"); add_srs_wkt (p, 9, "1111111],PARAMETER[\"scale_factor\",1],PARAMETER[\"false"); add_srs_wkt (p, 10, "_easting\",400000],PARAMETER[\"false_northing\",800000],"); add_srs_wkt (p, 11, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"No"); add_srs_wkt (p, 12, "rthing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"2108\"]]"); p = add_epsg_def (filter, first, last, 2109, "epsg", 2109, "NZGD2000 / Taranaki 2000"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-39.13555555555556 +lon_0=174.2277777"); add_proj4text (p, 1, "777778 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs8"); add_proj4text (p, 2, "4=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Taranaki 2000\",GEOGCS[\"NZGD2000\","); add_srs_wkt (p, 1, "DATUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",-39.135"); add_srs_wkt (p, 8, "55555555556],PARAMETER[\"central_meridian\",174.22777777"); add_srs_wkt (p, 9, "77778],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_e"); add_srs_wkt (p, 10, "asting\",400000],PARAMETER[\"false_northing\",800000],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Nort"); add_srs_wkt (p, 12, "hing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"2109\"]]"); p = add_epsg_def (filter, first, last, 2110, "epsg", 2110, "NZGD2000 / Tuhirangi 2000"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-39.51222222222222 +lon_0=175.64 +k=1"); add_proj4text (p, 1, " +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0"); add_proj4text (p, 2, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Tuhirangi 2000\",GEOGCS[\"NZGD2000\""); add_srs_wkt (p, 1, ",DATUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",-39.5"); add_srs_wkt (p, 8, "1222222222222],PARAMETER[\"central_meridian\",175.64],PA"); add_srs_wkt (p, 9, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 10, "400000],PARAMETER[\"false_northing\",800000],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NO"); add_srs_wkt (p, 12, "RTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"2110\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def (filter, first, last, 2111, "epsg", 2111, "NZGD2000 / Wanganui 2000"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-40.24194444444444 +lon_0=175.4880555"); add_proj4text (p, 1, "555555 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs8"); add_proj4text (p, 2, "4=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Wanganui 2000\",GEOGCS[\"NZGD2000\","); add_srs_wkt (p, 1, "DATUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",-40.241"); add_srs_wkt (p, 8, "94444444444],PARAMETER[\"central_meridian\",175.48805555"); add_srs_wkt (p, 9, "55555],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_e"); add_srs_wkt (p, 10, "asting\",400000],PARAMETER[\"false_northing\",800000],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Nort"); add_srs_wkt (p, 12, "hing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"2111\"]]"); p = add_epsg_def (filter, first, last, 2112, "epsg", 2112, "NZGD2000 / Wairarapa 2000"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-40.92527777777777 +lon_0=175.6472222"); add_proj4text (p, 1, "222222 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs8"); add_proj4text (p, 2, "4=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Wairarapa 2000\",GEOGCS[\"NZGD2000\""); add_srs_wkt (p, 1, ",DATUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",-40.9"); add_srs_wkt (p, 8, "2527777777777],PARAMETER[\"central_meridian\",175.647222"); add_srs_wkt (p, 9, "2222222],PARAMETER[\"scale_factor\",1],PARAMETER[\"false"); add_srs_wkt (p, 10, "_easting\",400000],PARAMETER[\"false_northing\",800000],"); add_srs_wkt (p, 11, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"No"); add_srs_wkt (p, 12, "rthing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"2112\"]]"); p = add_epsg_def (filter, first, last, 2113, "epsg", 2113, "NZGD2000 / Wellington 2000"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-41.3011111111111 +lon_0=174.77638888"); add_proj4text (p, 1, "88889 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84"); add_proj4text (p, 2, "=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Wellington 2000\",GEOGCS[\"NZGD2000\""); add_srs_wkt (p, 1, ",DATUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",-41.3"); add_srs_wkt (p, 8, "011111111111],PARAMETER[\"central_meridian\",174.7763888"); add_srs_wkt (p, 9, "888889],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",400000],PARAMETER[\"false_northing\",800000],U"); add_srs_wkt (p, 11, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Nor"); add_srs_wkt (p, 12, "thing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"2113\"]]"); p = add_epsg_def (filter, first, last, 2114, "epsg", 2114, "NZGD2000 / Collingwood 2000"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-40.71472222222223 +lon_0=172.6719444"); add_proj4text (p, 1, "444444 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs8"); add_proj4text (p, 2, "4=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Collingwood 2000\",GEOGCS[\"NZGD2000"); add_srs_wkt (p, 1, "\",DATUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\""); add_srs_wkt (p, 2, "GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "19\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-40."); add_srs_wkt (p, 8, "71472222222223],PARAMETER[\"central_meridian\",172.67194"); add_srs_wkt (p, 9, "44444444],PARAMETER[\"scale_factor\",1],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_easting\",400000],PARAMETER[\"false_northing\",800000]"); add_srs_wkt (p, 11, ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"N"); add_srs_wkt (p, 12, "orthing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"2114\"]]"); p = add_epsg_def (filter, first, last, 2115, "epsg", 2115, "NZGD2000 / Nelson 2000"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-41.27444444444444 +lon_0=173.2991666"); add_proj4text (p, 1, "666667 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs8"); add_proj4text (p, 2, "4=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Nelson 2000\",GEOGCS[\"NZGD2000\",DA"); add_srs_wkt (p, 1, "TUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 7, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",-41.2744"); add_srs_wkt (p, 8, "4444444444],PARAMETER[\"central_meridian\",173.299166666"); add_srs_wkt (p, 9, "6667],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",400000],PARAMETER[\"false_northing\",800000],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"North"); add_srs_wkt (p, 12, "ing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "2115\"]]"); p = add_epsg_def (filter, first, last, 2116, "epsg", 2116, "NZGD2000 / Karamea 2000"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-41.28972222222222 +lon_0=172.1088888"); add_proj4text (p, 1, "888889 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs8"); add_proj4text (p, 2, "4=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Karamea 2000\",GEOGCS[\"NZGD2000\",D"); add_srs_wkt (p, 1, "ATUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\"GRS "); add_srs_wkt (p, 2, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",-41.289"); add_srs_wkt (p, 8, "72222222222],PARAMETER[\"central_meridian\",172.10888888"); add_srs_wkt (p, 9, "88889],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_e"); add_srs_wkt (p, 10, "asting\",400000],PARAMETER[\"false_northing\",800000],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Nort"); add_srs_wkt (p, 12, "hing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"2116\"]]"); p = add_epsg_def (filter, first, last, 2117, "epsg", 2117, "NZGD2000 / Buller 2000"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-41.81055555555555 +lon_0=171.5811111"); add_proj4text (p, 1, "111111 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs8"); add_proj4text (p, 2, "4=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Buller 2000\",GEOGCS[\"NZGD2000\",DA"); add_srs_wkt (p, 1, "TUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 7, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",-41.8105"); add_srs_wkt (p, 8, "5555555555],PARAMETER[\"central_meridian\",171.581111111"); add_srs_wkt (p, 9, "1111],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",400000],PARAMETER[\"false_northing\",800000],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"North"); add_srs_wkt (p, 12, "ing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "2117\"]]"); p = add_epsg_def (filter, first, last, 2118, "epsg", 2118, "NZGD2000 / Grey 2000"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-42.33361111111111 +lon_0=171.5497222"); add_proj4text (p, 1, "222222 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs8"); add_proj4text (p, 2, "4=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Grey 2000\",GEOGCS[\"NZGD2000\",DATU"); add_srs_wkt (p, 1, "M[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\"GRS 198"); add_srs_wkt (p, 2, "0\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],"); add_srs_wkt (p, 3, "TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\"]],PRI"); add_srs_wkt (p, 4, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, "Mercator\"],PARAMETER[\"latitude_of_origin\",-42.3336111"); add_srs_wkt (p, 8, "1111111],PARAMETER[\"central_meridian\",171.549722222222"); add_srs_wkt (p, 9, "2],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",400000],PARAMETER[\"false_northing\",800000],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"2118"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def (filter, first, last, 2119, "epsg", 2119, "NZGD2000 / Amuri 2000"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-42.68888888888888 +lon_0=173.01 +k=1"); add_proj4text (p, 1, " +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0"); add_proj4text (p, 2, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Amuri 2000\",GEOGCS[\"NZGD2000\",DAT"); add_srs_wkt (p, 1, "UM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",-42.688888"); add_srs_wkt (p, 8, "88888888],PARAMETER[\"central_meridian\",173.01],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",40000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",800000],UNIT[\"metre\",1"); add_srs_wkt (p, 11, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"2119\"]]"); p = add_epsg_def (filter, first, last, 2120, "epsg", 2120, "NZGD2000 / Marlborough 2000"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-41.54444444444444 +lon_0=173.8019444"); add_proj4text (p, 1, "444444 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs8"); add_proj4text (p, 2, "4=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Marlborough 2000\",GEOGCS[\"NZGD2000"); add_srs_wkt (p, 1, "\",DATUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\""); add_srs_wkt (p, 2, "GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "19\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-41."); add_srs_wkt (p, 8, "54444444444444],PARAMETER[\"central_meridian\",173.80194"); add_srs_wkt (p, 9, "44444444],PARAMETER[\"scale_factor\",1],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_easting\",400000],PARAMETER[\"false_northing\",800000]"); add_srs_wkt (p, 11, ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"N"); add_srs_wkt (p, 12, "orthing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"2120\"]]"); p = add_epsg_def (filter, first, last, 2121, "epsg", 2121, "NZGD2000 / Hokitika 2000"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-42.88611111111111 +lon_0=170.9797222"); add_proj4text (p, 1, "222222 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs8"); add_proj4text (p, 2, "4=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Hokitika 2000\",GEOGCS[\"NZGD2000\","); add_srs_wkt (p, 1, "DATUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",-42.886"); add_srs_wkt (p, 8, "11111111111],PARAMETER[\"central_meridian\",170.97972222"); add_srs_wkt (p, 9, "22222],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_e"); add_srs_wkt (p, 10, "asting\",400000],PARAMETER[\"false_northing\",800000],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Nort"); add_srs_wkt (p, 12, "hing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"2121\"]]"); p = add_epsg_def (filter, first, last, 2122, "epsg", 2122, "NZGD2000 / Okarito 2000"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-43.11 +lon_0=170.2608333333333 +k=1 "); add_proj4text (p, 1, "+x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Okarito 2000\",GEOGCS[\"NZGD2000\",D"); add_srs_wkt (p, 1, "ATUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\"GRS "); add_srs_wkt (p, 2, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",-43.11]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",170.2608333333333],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",400"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",800000],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"2122\"]]"); p = add_epsg_def (filter, first, last, 2123, "epsg", 2123, "NZGD2000 / Jacksons Bay 2000"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-43.97777777777778 +lon_0=168.6061111"); add_proj4text (p, 1, "111111 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs8"); add_proj4text (p, 2, "4=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Jacksons Bay 2000\",GEOGCS[\"NZGD200"); add_srs_wkt (p, 1, "0\",DATUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\""); add_srs_wkt (p, 2, "GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "19\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-43."); add_srs_wkt (p, 8, "97777777777778],PARAMETER[\"central_meridian\",168.60611"); add_srs_wkt (p, 9, "11111111],PARAMETER[\"scale_factor\",1],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_easting\",400000],PARAMETER[\"false_northing\",800000]"); add_srs_wkt (p, 11, ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"N"); add_srs_wkt (p, 12, "orthing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"2123\"]]"); p = add_epsg_def (filter, first, last, 2124, "epsg", 2124, "NZGD2000 / Mount Pleasant 2000"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-43.59055555555556 +lon_0=172.7269444"); add_proj4text (p, 1, "444445 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs8"); add_proj4text (p, 2, "4=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Mount Pleasant 2000\",GEOGCS[\"NZGD2"); add_srs_wkt (p, 1, "000\",DATUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"616"); add_srs_wkt (p, 4, "7\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-"); add_srs_wkt (p, 8, "43.59055555555556],PARAMETER[\"central_meridian\",172.72"); add_srs_wkt (p, 9, "69444444445],PARAMETER[\"scale_factor\",1],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_easting\",400000],PARAMETER[\"false_northing\",8000"); add_srs_wkt (p, 11, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Northing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"2124\"]]"); p = add_epsg_def (filter, first, last, 2125, "epsg", 2125, "NZGD2000 / Gawler 2000"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-43.74861111111111 +lon_0=171.3605555"); add_proj4text (p, 1, "555555 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs8"); add_proj4text (p, 2, "4=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Gawler 2000\",GEOGCS[\"NZGD2000\",DA"); add_srs_wkt (p, 1, "TUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 7, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",-43.7486"); add_srs_wkt (p, 8, "1111111111],PARAMETER[\"central_meridian\",171.360555555"); add_srs_wkt (p, 9, "5555],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",400000],PARAMETER[\"false_northing\",800000],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"North"); add_srs_wkt (p, 12, "ing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "2125\"]]"); p = add_epsg_def (filter, first, last, 2126, "epsg", 2126, "NZGD2000 / Timaru 2000"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-44.40194444444445 +lon_0=171.0572222"); add_proj4text (p, 1, "222222 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs8"); add_proj4text (p, 2, "4=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Timaru 2000\",GEOGCS[\"NZGD2000\",DA"); add_srs_wkt (p, 1, "TUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 7, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",-44.4019"); add_srs_wkt (p, 8, "4444444445],PARAMETER[\"central_meridian\",171.057222222"); add_srs_wkt (p, 9, "2222],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",400000],PARAMETER[\"false_northing\",800000],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"North"); add_srs_wkt (p, 12, "ing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "2126\"]]"); p = add_epsg_def (filter, first, last, 2127, "epsg", 2127, "NZGD2000 / Lindis Peak 2000"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-44.735 +lon_0=169.4675 +k=1 +x_0=400"); add_proj4text (p, 1, "000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +uni"); add_proj4text (p, 2, "ts=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Lindis Peak 2000\",GEOGCS[\"NZGD2000"); add_srs_wkt (p, 1, "\",DATUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\""); add_srs_wkt (p, 2, "GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "19\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-44."); add_srs_wkt (p, 8, "735],PARAMETER[\"central_meridian\",169.4675],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",1],PARAMETER[\"false_easting\",400000],"); add_srs_wkt (p, 10, "PARAMETER[\"false_northing\",800000],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"2127\"]]"); p = add_epsg_def (filter, first, last, 2128, "epsg", 2128, "NZGD2000 / Mount Nicholas 2000"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-45.13277777777778 +lon_0=168.3986111"); add_proj4text (p, 1, "111111 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs8"); add_proj4text (p, 2, "4=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Mount Nicholas 2000\",GEOGCS[\"NZGD2"); add_srs_wkt (p, 1, "000\",DATUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"616"); add_srs_wkt (p, 4, "7\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-"); add_srs_wkt (p, 8, "45.13277777777778],PARAMETER[\"central_meridian\",168.39"); add_srs_wkt (p, 9, "86111111111],PARAMETER[\"scale_factor\",1],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_easting\",400000],PARAMETER[\"false_northing\",8000"); add_srs_wkt (p, 11, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Northing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"2128\"]]"); p = add_epsg_def (filter, first, last, 2129, "epsg", 2129, "NZGD2000 / Mount York 2000"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-45.56361111111111 +lon_0=167.7386111"); add_proj4text (p, 1, "111111 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs8"); add_proj4text (p, 2, "4=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Mount York 2000\",GEOGCS[\"NZGD2000\""); add_srs_wkt (p, 1, ",DATUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",-45.5"); add_srs_wkt (p, 8, "6361111111111],PARAMETER[\"central_meridian\",167.738611"); add_srs_wkt (p, 9, "1111111],PARAMETER[\"scale_factor\",1],PARAMETER[\"false"); add_srs_wkt (p, 10, "_easting\",400000],PARAMETER[\"false_northing\",800000],"); add_srs_wkt (p, 11, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"No"); add_srs_wkt (p, 12, "rthing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"2129\"]]"); p = add_epsg_def (filter, first, last, 2130, "epsg", 2130, "NZGD2000 / Observation Point 2000"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-45.81611111111111 +lon_0=170.6283333"); add_proj4text (p, 1, "333333 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs8"); add_proj4text (p, 2, "4=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Observation Point 2000\",GEOGCS[\"NZ"); add_srs_wkt (p, 1, "GD2000\",DATUM[\"New_Zealand_Geodetic_Datum_2000\",SPHER"); add_srs_wkt (p, 2, "OID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6167\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",-45.81611111111111],PARAMETER[\"central_meridian\",170."); add_srs_wkt (p, 9, "6283333333333],PARAMETER[\"scale_factor\",1],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",400000],PARAMETER[\"false_northing\",800"); add_srs_wkt (p, 11, "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS"); add_srs_wkt (p, 12, "[\"Northing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"2130\"]]"); p = add_epsg_def (filter, first, last, 2131, "epsg", 2131, "NZGD2000 / North Taieri 2000"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-45.86138888888889 +lon_0=170.2825 +k"); add_proj4text (p, 1, "=0.99996 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0"); add_proj4text (p, 2, ",0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / North Taieri 2000\",GEOGCS[\"NZGD200"); add_srs_wkt (p, 1, "0\",DATUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\""); add_srs_wkt (p, 2, "GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "19\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-45."); add_srs_wkt (p, 8, "86138888888889],PARAMETER[\"central_meridian\",170.2825]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.99996],PARAMETER[\"false_e"); add_srs_wkt (p, 10, "asting\",400000],PARAMETER[\"false_northing\",800000],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Nort"); add_srs_wkt (p, 12, "hing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"2131\"]]"); p = add_epsg_def (filter, first, last, 2132, "epsg", 2132, "NZGD2000 / Bluff 2000"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-46.6 +lon_0=168.3427777777778 +k=1 +"); add_proj4text (p, 1, "x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 2, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Bluff 2000\",GEOGCS[\"NZGD2000\",DAT"); add_srs_wkt (p, 1, "UM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",-46.6],PAR"); add_srs_wkt (p, 8, "AMETER[\"central_meridian\",168.3427777777778],PARAMETER"); add_srs_wkt (p, 9, "[\"scale_factor\",1],PARAMETER[\"false_easting\",400000]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_northing\",800000],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"2132\"]]"); p = add_epsg_def (filter, first, last, 2133, "epsg", 2133, "NZGD2000 / UTM zone 58S"); add_proj4text (p, 0, "+proj=utm +zone=58 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / UTM zone 58S\",GEOGCS[\"NZGD2000\",D"); add_srs_wkt (p, 1, "ATUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\"GRS "); add_srs_wkt (p, 2, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",165],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 12, "ing\",NORTH],AUTHORITY[\"EPSG\",\"2133\"]]"); p = add_epsg_def (filter, first, last, 2134, "epsg", 2134, "NZGD2000 / UTM zone 59S"); add_proj4text (p, 0, "+proj=utm +zone=59 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / UTM zone 59S\",GEOGCS[\"NZGD2000\",D"); add_srs_wkt (p, 1, "ATUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\"GRS "); add_srs_wkt (p, 2, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",171],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 12, "ing\",NORTH],AUTHORITY[\"EPSG\",\"2134\"]]"); p = add_epsg_def (filter, first, last, 2135, "epsg", 2135, "NZGD2000 / UTM zone 60S"); add_proj4text (p, 0, "+proj=utm +zone=60 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / UTM zone 60S\",GEOGCS[\"NZGD2000\",D"); add_srs_wkt (p, 1, "ATUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\"GRS "); add_srs_wkt (p, 2, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",177],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 12, "ing\",NORTH],AUTHORITY[\"EPSG\",\"2135\"]]"); p = add_epsg_def (filter, first, last, 2136, "epsg", 2136, "Accra / Ghana National Grid"); add_proj4text (p, 0, "+proj=tmerc +lat_0=4.666666666666667 +lon_0=-1 +k=0.9997"); add_proj4text (p, 1, "5 +x_0=274319.7391633579 +y_0=0 +a=6378300 +b=6356751.68"); add_proj4text (p, 2, "9189189 +towgs84=-199,32,322,0,0,0,0 +to_meter=0.3047997"); add_proj4text (p, 3, "101815088 +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Accra / Ghana National Grid\",GEOGCS[\"Accra\","); add_srs_wkt (p, 1, "DATUM[\"Accra\",SPHEROID[\"War Office\",6378300,296,AUTH"); add_srs_wkt (p, 2, "ORITY[\"EPSG\",\"7029\"]],TOWGS84[-199,32,322,0,0,0,0],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6168\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4168\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",4.666666666666667],PARAMETER[\"cent"); add_srs_wkt (p, 8, "ral_meridian\",-1],PARAMETER[\"scale_factor\",0.99975],P"); add_srs_wkt (p, 9, "ARAMETER[\"false_easting\",900000],PARAMETER[\"false_nor"); add_srs_wkt (p, 10, "thing\",0],UNIT[\"Gold Coast foot\",0.3047997101815088,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9094\"]],AXIS[\"Easting\",EAST],AXIS"); add_srs_wkt (p, 12, "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2136\"]]"); p = add_epsg_def (filter, first, last, 2137, "epsg", 2137, "Accra / TM 1 NW"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-1 +k=0.9996 +x_0=500000 +y_"); add_proj4text (p, 1, "0=0 +a=6378300 +b=6356751.689189189 +towgs84=-199,32,322"); add_proj4text (p, 2, ",0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Accra / TM 1 NW\",GEOGCS[\"Accra\",DATUM[\"Accr"); add_srs_wkt (p, 1, "a\",SPHEROID[\"War Office\",6378300,296,AUTHORITY[\"EPSG"); add_srs_wkt (p, 2, "\",\"7029\"]],TOWGS84[-199,32,322,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"6168\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4168\"]],PRO"); add_srs_wkt (p, 6, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 7, "_origin\",0],PARAMETER[\"central_meridian\",-1],PARAMETE"); add_srs_wkt (p, 8, "R[\"scale_factor\",0.9996],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 9, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 10, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI"); add_srs_wkt (p, 11, "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2137\"]]"); p = add_epsg_def (filter, first, last, 2138, "epsg", 2138, "NAD27(CGQ77) / Quebec Lambert"); add_proj4text (p, 0, "+proj=lcc +lat_1=60 +lat_2=46 +lat_0=44 +lon_0=-68.5 +x_"); add_proj4text (p, 1, "0=0 +y_0=0 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(CGQ77) / Quebec Lambert\",GEOGCS[\"NAD27("); add_srs_wkt (p, 1, "CGQ77)\",DATUM[\"North_American_Datum_1927_CGQ77\",SPHER"); add_srs_wkt (p, 2, "OID[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6609\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4609\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 7, "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",60"); add_srs_wkt (p, 8, "],PARAMETER[\"standard_parallel_2\",46],PARAMETER[\"lati"); add_srs_wkt (p, 9, "tude_of_origin\",44],PARAMETER[\"central_meridian\",-68."); add_srs_wkt (p, 10, "5],PARAMETER[\"false_easting\",0],PARAMETER[\"false_nort"); add_srs_wkt (p, 11, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, ",AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "2138\"]]"); p = add_epsg_def (filter, first, last, 2139, "epsg", 2139, "NAD83(CSRS98) / SCoPQ zone 2 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-55.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS98) / SCoPQ zone 2 (deprecated)\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(CSRS98)\",DATUM[\"NAD83_Canadian_Spatial_Ref"); add_srs_wkt (p, 2, "erence_System\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9108\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4140\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",-55.5],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_easting\",304800],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 11, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2139\"]]"); p = add_epsg_def (filter, first, last, 2140, "epsg", 2140, "NAD83(CSRS98) / MTM zone 3 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-58.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS98) / MTM zone 3 (deprecated)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(CSRS98)\",DATUM[\"NAD83_Canadian_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9108\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4140\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "58.5],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",304800],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E(X)\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"EPSG\",\"2140\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def (filter, first, last, 2141, "epsg", 2141, "NAD83(CSRS98) / MTM zone 4 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-61.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS98) / MTM zone 4 (deprecated)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(CSRS98)\",DATUM[\"NAD83_Canadian_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9108\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4140\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "61.5],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",304800],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E(X)\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"EPSG\",\"2141\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def (filter, first, last, 2142, "epsg", 2142, "NAD83(CSRS98) / MTM zone 5 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-64.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS98) / MTM zone 5 (deprecated)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(CSRS98)\",DATUM[\"NAD83_Canadian_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9108\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4140\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "64.5],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",304800],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E(X)\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"EPSG\",\"2142\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def (filter, first, last, 2143, "epsg", 2143, "NAD83(CSRS98) / MTM zone 6 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-67.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS98) / MTM zone 6 (deprecated)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(CSRS98)\",DATUM[\"NAD83_Canadian_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9108\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4140\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "67.5],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",304800],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E(X)\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"EPSG\",\"2143\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def (filter, first, last, 2144, "epsg", 2144, "NAD83(CSRS98) / MTM zone 7 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-70.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS98) / MTM zone 7 (deprecated)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(CSRS98)\",DATUM[\"NAD83_Canadian_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9108\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4140\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "70.5],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",304800],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E(X)\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"EPSG\",\"2144\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def (filter, first, last, 2145, "epsg", 2145, "NAD83(CSRS98) / MTM zone 8 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-73.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS98) / MTM zone 8 (deprecated)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(CSRS98)\",DATUM[\"NAD83_Canadian_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9108\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4140\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "73.5],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",304800],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E(X)\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"EPSG\",\"2145\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def (filter, first, last, 2146, "epsg", 2146, "NAD83(CSRS98) / MTM zone 9 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-76.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS98) / MTM zone 9 (deprecated)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(CSRS98)\",DATUM[\"NAD83_Canadian_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9108\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4140\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "76.5],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",304800],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E(X)\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"EPSG\",\"2146\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def (filter, first, last, 2147, "epsg", 2147, "NAD83(CSRS98) / MTM zone 10 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-79.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS98) / MTM zone 10 (deprecated)\",GEOG"); add_srs_wkt (p, 1, "CS[\"NAD83(CSRS98)\",DATUM[\"NAD83_Canadian_Spatial_Refe"); add_srs_wkt (p, 2, "rence_System\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, "01,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9108\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4140\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "79.5],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",304800],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E(X)\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"EPSG\",\"2147\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def (filter, first, last, 2148, "epsg", 2148, "NAD83(CSRS98) / UTM zone 21N (deprecated)"); add_proj4text (p, 0, "+proj=utm +zone=21 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS98) / UTM zone 21N (deprecated)\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(CSRS98)\",DATUM[\"NAD83_Canadian_Spatial_Ref"); add_srs_wkt (p, 2, "erence_System\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9108\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4140\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",-57],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 12, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "2148\"]]"); p = add_epsg_def (filter, first, last, 2149, "epsg", 2149, "NAD83(CSRS98) / UTM zone 18N (deprecated)"); add_proj4text (p, 0, "+proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS98) / UTM zone 18N (deprecated)\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(CSRS98)\",DATUM[\"NAD83_Canadian_Spatial_Ref"); add_srs_wkt (p, 2, "erence_System\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9108\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4140\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",-75],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 12, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "2149\"]]"); p = add_epsg_def (filter, first, last, 2150, "epsg", 2150, "NAD83(CSRS98) / UTM zone 17N (deprecated)"); add_proj4text (p, 0, "+proj=utm +zone=17 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS98) / UTM zone 17N (deprecated)\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(CSRS98)\",DATUM[\"NAD83_Canadian_Spatial_Ref"); add_srs_wkt (p, 2, "erence_System\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9108\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4140\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",-81],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 12, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "2150\"]]"); p = add_epsg_def (filter, first, last, 2151, "epsg", 2151, "NAD83(CSRS98) / UTM zone 13N (deprecated)"); add_proj4text (p, 0, "+proj=utm +zone=13 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS98) / UTM zone 13N (deprecated)\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(CSRS98)\",DATUM[\"NAD83_Canadian_Spatial_Ref"); add_srs_wkt (p, 2, "erence_System\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9108\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4140\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",-105],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); add_srs_wkt (p, 12, "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"2151\"]]"); p = add_epsg_def (filter, first, last, 2152, "epsg", 2152, "NAD83(CSRS98) / UTM zone 12N (deprecated)"); add_proj4text (p, 0, "+proj=utm +zone=12 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS98) / UTM zone 12N (deprecated)\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(CSRS98)\",DATUM[\"NAD83_Canadian_Spatial_Ref"); add_srs_wkt (p, 2, "erence_System\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9108\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4140\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",-111],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); add_srs_wkt (p, 12, "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"2152\"]]"); p = add_epsg_def (filter, first, last, 2153, "epsg", 2153, "NAD83(CSRS98) / UTM zone 11N (deprecated)"); add_proj4text (p, 0, "+proj=utm +zone=11 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS98) / UTM zone 11N (deprecated)\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(CSRS98)\",DATUM[\"NAD83_Canadian_Spatial_Ref"); add_srs_wkt (p, 2, "erence_System\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9108\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4140\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",-117],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); add_srs_wkt (p, 12, "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"2153\"]]"); p = add_epsg_def (filter, first, last, 2154, "epsg", 2154, "RGF93 / Lambert-93"); add_proj4text (p, 0, "+proj=lcc +lat_1=49 +lat_2=44 +lat_0=46.5 +lon_0=3 +x_0="); add_proj4text (p, 1, "700000 +y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 "); add_proj4text (p, 2, "+units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGF93 / Lambert-93\",GEOGCS[\"RGF93\",DATUM[\"R"); add_srs_wkt (p, 1, "eseau_Geodesique_Francais_1993\",SPHEROID[\"GRS 1980\",6"); add_srs_wkt (p, 2, "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS"); add_srs_wkt (p, 3, "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6171\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4171\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 7, "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",49],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_2\",44],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",46.5],PARAMETER[\"central_meridian\",3],PARA"); add_srs_wkt (p, 10, "METER[\"false_easting\",700000],PARAMETER[\"false_northi"); add_srs_wkt (p, 11, "ng\",6600000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"2154\"]]"); p = add_epsg_def (filter, first, last, 2155, "epsg", 2155, "American Samoa 1962 / American Samoa Lambert (deprecated)"); add_proj4text (p, 0, "+proj=lcc +lat_1=-14.26666666666667 +lat_0=-14.266666666"); add_proj4text (p, 1, "66667 +lon_0=170 +k_0=1 +x_0=152400.3048006096 +y_0=0 +e"); add_proj4text (p, 2, "llps=clrk66 +towgs84=-115,118,426,0,0,0,0 +units=us-ft +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"American Samoa 1962 / American Samoa Lambert (d"); add_srs_wkt (p, 1, "eprecated)\",GEOGCS[\"American Samoa 1962\",DATUM[\"Amer"); add_srs_wkt (p, 2, "ican_Samoa_1962\",SPHEROID[\"Clarke 1866\",6378206.4,294"); add_srs_wkt (p, 3, ".9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS84[-11"); add_srs_wkt (p, 4, "5,118,426,0,0,0,0],AUTHORITY[\"EPSG\",\"6169\"]],PRIMEM["); add_srs_wkt (p, 5, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 6, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 7, "UTHORITY[\"EPSG\",\"4169\"]],PROJECTION[\"Lambert_Confor"); add_srs_wkt (p, 8, "mal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",-14.26"); add_srs_wkt (p, 9, "666666666667],PARAMETER[\"central_meridian\",170],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",0],UNIT[\"US survey foo"); add_srs_wkt (p, 12, "t\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXI"); add_srs_wkt (p, 13, "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"215"); add_srs_wkt (p, 14, "5\"]]"); p = add_epsg_def (filter, first, last, 2156, "epsg", 2156, "NAD83(HARN) / UTM zone 59S (deprecated)"); add_proj4text (p, 0, "+proj=utm +zone=59 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / UTM zone 59S (deprecated)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_"); add_srs_wkt (p, 2, "Network\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",171]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 11, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 12, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"2156\"]]"); p = add_epsg_def (filter, first, last, 2157, "epsg", 2157, "IRENET95 / Irish Transverse Mercator"); add_proj4text (p, 0, "+proj=tmerc +lat_0=53.5 +lon_0=-8 +k=0.99982 +x_0=600000"); add_proj4text (p, 1, " +y_0=750000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IRENET95 / Irish Transverse Mercator\",GEOGCS[\""); add_srs_wkt (p, 1, "IRENET95\",DATUM[\"IRENET95\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6173\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4173\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",53.5],PARAMETER[\"c"); add_srs_wkt (p, 8, "entral_meridian\",-8],PARAMETER[\"scale_factor\",0.99982"); add_srs_wkt (p, 9, "],PARAMETER[\"false_easting\",600000],PARAMETER[\"false_"); add_srs_wkt (p, 10, "northing\",750000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"2157\"]]"); p = add_epsg_def (filter, first, last, 2158, "epsg", 2158, "IRENET95 / UTM zone 29N"); add_proj4text (p, 0, "+proj=utm +zone=29 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IRENET95 / UTM zone 29N\",GEOGCS[\"IRENET95\",D"); add_srs_wkt (p, 1, "ATUM[\"IRENET95\",SPHEROID[\"GRS 1980\",6378137,298.2572"); add_srs_wkt (p, 2, "22101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,"); add_srs_wkt (p, 3, "0],AUTHORITY[\"EPSG\",\"6173\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4173\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 7, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, "\",-9],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa"); add_srs_wkt (p, 9, "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 10, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); add_srs_wkt (p, 11, "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"2158\"]]"); p = add_epsg_def (filter, first, last, 2159, "epsg", 2159, "Sierra Leone 1924 / New Colony Grid"); add_proj4text (p, 0, "+proj=tmerc +lat_0=6.666666666666667 +lon_0=-12 +k=1 +x_"); add_proj4text (p, 1, "0=152399.8550907544 +y_0=0 +a=6378300 +b=6356751.6891891"); add_proj4text (p, 2, "89 +to_meter=0.3047997101815088 +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Sierra Leone 1924 / New Colony Grid\",GEOGCS[\""); add_srs_wkt (p, 1, "Sierra Leone 1924\",DATUM[\"Sierra_Leone_Colony_1924\",S"); add_srs_wkt (p, 2, "PHEROID[\"War Office\",6378300,296,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7029\"]],AUTHORITY[\"EPSG\",\"6174\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 4, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 5, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"4174\"]],PROJECTION[\"Transverse_Mercator\"],PA"); add_srs_wkt (p, 7, "RAMETER[\"latitude_of_origin\",6.666666666666667],PARAME"); add_srs_wkt (p, 8, "TER[\"central_meridian\",-12],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",1],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_northing\",0],UNIT[\"Gold Coast foot\",0.3047997101815"); add_srs_wkt (p, 11, "088,AUTHORITY[\"EPSG\",\"9094\"]],AXIS[\"Easting\",EAST]"); add_srs_wkt (p, 12, ",AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2159\"]]"); p = add_epsg_def (filter, first, last, 2160, "epsg", 2160, "Sierra Leone 1924 / New War Office Grid"); add_proj4text (p, 0, "+proj=tmerc +lat_0=6.666666666666667 +lon_0=-12 +k=1 +x_"); add_proj4text (p, 1, "0=243839.7681452071 +y_0=182879.8261089053 +a=6378300 +b"); add_proj4text (p, 2, "=6356751.689189189 +to_meter=0.3047997101815088 +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Sierra Leone 1924 / New War Office Grid\",GEOGC"); add_srs_wkt (p, 1, "S[\"Sierra Leone 1924\",DATUM[\"Sierra_Leone_Colony_1924"); add_srs_wkt (p, 2, "\",SPHEROID[\"War Office\",6378300,296,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7029\"]],AUTHORITY[\"EPSG\",\"6174\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4174\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",6.666666666666667],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",-12],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",1],PARAMETER[\"false_easting\",800000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",600000],UNIT[\"Gold Coast foot\",0.3047"); add_srs_wkt (p, 11, "997101815088,AUTHORITY[\"EPSG\",\"9094\"]],AXIS[\"Eastin"); add_srs_wkt (p, 12, "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "2160\"]]"); p = add_epsg_def (filter, first, last, 2161, "epsg", 2161, "Sierra Leone 1968 / UTM zone 28N"); add_proj4text (p, 0, "+proj=utm +zone=28 +ellps=clrk80 +towgs84=-88,4,101,0,0,"); add_proj4text (p, 1, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Sierra Leone 1968 / UTM zone 28N\",GEOGCS[\"Sie"); add_srs_wkt (p, 1, "rra Leone 1968\",DATUM[\"Sierra_Leone_1968\",SPHEROID[\""); add_srs_wkt (p, 2, "Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7012\"]],TOWGS84[-88,4,101,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6175\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4175\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",0],PARAMETER[\"central_meridian\",-15],PARAMETER"); add_srs_wkt (p, 9, "[\"scale_factor\",0.9996],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS"); add_srs_wkt (p, 12, "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2161\"]]"); p = add_epsg_def (filter, first, last, 2162, "epsg", 2162, "Sierra Leone 1968 / UTM zone 29N"); add_proj4text (p, 0, "+proj=utm +zone=29 +ellps=clrk80 +towgs84=-88,4,101,0,0,"); add_proj4text (p, 1, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Sierra Leone 1968 / UTM zone 29N\",GEOGCS[\"Sie"); add_srs_wkt (p, 1, "rra Leone 1968\",DATUM[\"Sierra_Leone_1968\",SPHEROID[\""); add_srs_wkt (p, 2, "Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7012\"]],TOWGS84[-88,4,101,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6175\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4175\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",0],PARAMETER[\"central_meridian\",-9],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",0.9996],PARAMETER[\"false_easting\",500"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS["); add_srs_wkt (p, 12, "\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2162\"]]"); p = add_epsg_def (filter, first, last, 2163, "epsg", 2163, "US National Atlas Equal Area"); add_proj4text (p, 0, "+proj=laea +lat_0=45 +lon_0=-100 +x_0=0 +y_0=0 +a=637099"); add_proj4text (p, 1, "7 +b=6370997 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"US National Atlas Equal Area\",GEOGCS[\"Unspeci"); add_srs_wkt (p, 1, "fied datum based upon the Clarke 1866 Authalic Sphere\","); add_srs_wkt (p, 2, "DATUM[\"Not_specified_based_on_Clarke_1866_Authalic_Sphe"); add_srs_wkt (p, 3, "re\",SPHEROID[\"Clarke 1866 Authalic Sphere\",6370997,0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"7052\"]],AUTHORITY[\"EPSG\",\"6052\""); add_srs_wkt (p, 5, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 6, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "9122\"]],AUTHORITY[\"EPSG\",\"4052\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 8, "ert_Azimuthal_Equal_Area\"],PARAMETER[\"latitude_of_cent"); add_srs_wkt (p, 9, "er\",45],PARAMETER[\"longitude_of_center\",-100],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 11, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2163\"]]"); p = add_epsg_def (filter, first, last, 2164, "epsg", 2164, "Locodjo 1965 / TM 5 NW"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-5 +k=0.9996 +x_0=500000 +y_"); add_proj4text (p, 1, "0=0 +ellps=clrk80 +towgs84=-125,53,467,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Locodjo 1965 / TM 5 NW\",GEOGCS[\"Locodjo 1965\""); add_srs_wkt (p, 1, ",DATUM[\"Locodjo_1965\",SPHEROID[\"Clarke 1880 (RGS)\",6"); add_srs_wkt (p, 2, "378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84"); add_srs_wkt (p, 3, "[-125,53,467,0,0,0,0],AUTHORITY[\"EPSG\",\"6142\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4142\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, "R[\"central_meridian\",-5],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 9, "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"2164\"]]"); p = add_epsg_def (filter, first, last, 2165, "epsg", 2165, "Abidjan 1987 / TM 5 NW"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-5 +k=0.9996 +x_0=500000 +y_"); add_proj4text (p, 1, "0=0 +ellps=clrk80 +towgs84=-124.76,53,466.79,0,0,0,0 +un"); add_proj4text (p, 2, "its=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Abidjan 1987 / TM 5 NW\",GEOGCS[\"Abidjan 1987\""); add_srs_wkt (p, 1, ",DATUM[\"Abidjan_1987\",SPHEROID[\"Clarke 1880 (RGS)\",6"); add_srs_wkt (p, 2, "378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84"); add_srs_wkt (p, 3, "[-124.76,53,466.79,0,0,0,0],AUTHORITY[\"EPSG\",\"6143\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4143\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",-5],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, "r\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 11, "G\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\","); add_srs_wkt (p, 12, "NORTH],AUTHORITY[\"EPSG\",\"2165\"]]"); p = add_epsg_def (filter, first, last, 2166, "epsg", 2166, "Pulkovo 1942(83) / Gauss Kruger zone 3 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=26,-121,-78,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(83) / Gauss Kruger zone 3 (depreca"); add_srs_wkt (p, 1, "ted)\",GEOGCS[\"Pulkovo 1942(83)\",DATUM[\"Pulkovo_1942_"); add_srs_wkt (p, 2, "83\",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7024\"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6178\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4178"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",9],P"); add_srs_wkt (p, 9, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, ",3500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 12, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2166\"]]"); p = add_epsg_def (filter, first, last, 2167, "epsg", 2167, "Pulkovo 1942(83) / Gauss Kruger zone 4 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=26,-121,-78,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(83) / Gauss Kruger zone 4 (depreca"); add_srs_wkt (p, 1, "ted)\",GEOGCS[\"Pulkovo 1942(83)\",DATUM[\"Pulkovo_1942_"); add_srs_wkt (p, 2, "83\",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7024\"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6178\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4178"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",12],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, ",4500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 12, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2167\"]]"); p = add_epsg_def (filter, first, last, 2168, "epsg", 2168, "Pulkovo 1942(83) / Gauss Kruger zone 5 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=26,-121,-78,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(83) / Gauss Kruger zone 5 (depreca"); add_srs_wkt (p, 1, "ted)\",GEOGCS[\"Pulkovo 1942(83)\",DATUM[\"Pulkovo_1942_"); add_srs_wkt (p, 2, "83\",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7024\"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6178\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4178"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",15],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, ",5500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 12, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2168\"]]"); p = add_epsg_def (filter, first, last, 2169, "epsg", 2169, "Luxembourg 1930 / Gauss"); add_proj4text (p, 0, "+proj=tmerc +lat_0=49.83333333333334 +lon_0=6.1666666666"); add_proj4text (p, 1, "66667 +k=1 +x_0=80000 +y_0=100000 +ellps=intl +towgs84=-"); add_proj4text (p, 2, "189.681,18.3463,-42.7695,-0.33746,-3.09264,2.53861,0.459"); add_proj4text (p, 3, "8 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Luxembourg 1930 / Gauss\",GEOGCS[\"Luxembourg 1"); add_srs_wkt (p, 1, "930\",DATUM[\"Luxembourg_1930\",SPHEROID[\"International"); add_srs_wkt (p, 2, " 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS8"); add_srs_wkt (p, 3, "4[-189.681,18.3463,-42.7695,-0.33746,-3.09264,2.53861,0."); add_srs_wkt (p, 4, "4598],AUTHORITY[\"EPSG\",\"6181\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4181\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 8, "METER[\"latitude_of_origin\",49.83333333333334],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",6.166666666666667],PARAMETER[\"sc"); add_srs_wkt (p, 10, "ale_factor\",1],PARAMETER[\"false_easting\",80000],PARAM"); add_srs_wkt (p, 11, "ETER[\"false_northing\",100000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"2169\"]]"); p = add_epsg_def (filter, first, last, 2170, "epsg", 2170, "MGI / Slovenia Grid (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=0 +datum=hermannskogel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI / Slovenia Grid (deprecated)\",GEOGCS[\"MGI"); add_srs_wkt (p, 1, "\",DATUM[\"Militar_Geographische_Institute\",SPHEROID[\""); add_srs_wkt (p, 2, "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5"); add_srs_wkt (p, 4, ".297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 5, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 6, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 7, "TY[\"EPSG\",\"4312\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 8, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 9, "l_meridian\",15],PARAMETER[\"scale_factor\",0.9999],PARA"); add_srs_wkt (p, 10, "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); add_srs_wkt (p, 11, "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 12, "XIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2"); add_srs_wkt (p, 13, "170\"]]"); p = add_epsg_def (filter, first, last, 2171, "epsg", 2171, "Pulkovo 1942(58) / Poland zone I (deprecated)"); add_proj4text (p, 0, "+proj=sterea +lat_0=50.625 +lon_0=21.08333333333333 +k=0"); add_proj4text (p, 1, ".9998 +x_0=4637000 +y_0=5647000 +ellps=krass +towgs84=33"); add_proj4text (p, 2, ".4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_d"); add_proj4text (p, 3, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(58) / Poland zone I (deprecated)\""); add_srs_wkt (p, 1, ",GEOGCS[\"Pulkovo 1942(58)\",DATUM[\"Pulkovo_1942_58\",S"); add_srs_wkt (p, 2, "PHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7024\"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,"); add_srs_wkt (p, 4, "0.844,-0.84],AUTHORITY[\"EPSG\",\"6179\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 5, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 6, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 7, "TY[\"EPSG\",\"4179\"]],PROJECTION[\"Oblique_Stereographi"); add_srs_wkt (p, 8, "c\"],PARAMETER[\"latitude_of_origin\",50.625],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",21.08333333333333],PARAMETER[\"scal"); add_srs_wkt (p, 10, "e_factor\",0.9998],PARAMETER[\"false_easting\",4637000],"); add_srs_wkt (p, 11, "PARAMETER[\"false_northing\",5647000],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"2171\"]]"); p = add_epsg_def (filter, first, last, 2172, "epsg", 2172, "Pulkovo 1942(58) / Poland zone II"); add_proj4text (p, 0, "+proj=sterea +lat_0=53.00194444444445 +lon_0=21.50277777"); add_proj4text (p, 1, "777778 +k=0.9998 +x_0=4603000 +y_0=5806000 +ellps=krass "); add_proj4text (p, 2, "+towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +un"); add_proj4text (p, 3, "its=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(58) / Poland zone II\",GEOGCS[\"Pu"); add_srs_wkt (p, 1, "lkovo 1942(58)\",DATUM[\"Pulkovo_1942_58\",SPHEROID[\"Kr"); add_srs_wkt (p, 2, "assowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\""); add_srs_wkt (p, 3, "]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6179\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4179\"]],PROJECTION[\"Oblique_Stereographic\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",53.00194444444445],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",21.50277777777778],PARAMETER[\"scale_f"); add_srs_wkt (p, 10, "actor\",0.9998],PARAMETER[\"false_easting\",4603000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",5806000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); add_srs_wkt (p, 13, "AST],AUTHORITY[\"EPSG\",\"2172\"]]"); p = add_epsg_def (filter, first, last, 2173, "epsg", 2173, "Pulkovo 1942(58) / Poland zone III"); add_proj4text (p, 0, "+proj=sterea +lat_0=53.58333333333334 +lon_0=17.00833333"); add_proj4text (p, 1, "333333 +k=0.9998 +x_0=3501000 +y_0=5999000 +ellps=krass "); add_proj4text (p, 2, "+towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +un"); add_proj4text (p, 3, "its=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(58) / Poland zone III\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1942(58)\",DATUM[\"Pulkovo_1942_58\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6179\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4179\"]],PROJECTION[\"Oblique_Stereographic\"],PARAME"); add_srs_wkt (p, 8, "TER[\"latitude_of_origin\",53.58333333333334],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",17.00833333333333],PARAMETER[\"scal"); add_srs_wkt (p, 10, "e_factor\",0.9998],PARAMETER[\"false_easting\",3501000],"); add_srs_wkt (p, 11, "PARAMETER[\"false_northing\",5999000],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"2173\"]]"); p = add_epsg_def (filter, first, last, 2174, "epsg", 2174, "Pulkovo 1942(58) / Poland zone IV"); add_proj4text (p, 0, "+proj=sterea +lat_0=51.67083333333333 +lon_0=16.67222222"); add_proj4text (p, 1, "222222 +k=0.9998 +x_0=3703000 +y_0=5627000 +ellps=krass "); add_proj4text (p, 2, "+towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +un"); add_proj4text (p, 3, "its=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(58) / Poland zone IV\",GEOGCS[\"Pu"); add_srs_wkt (p, 1, "lkovo 1942(58)\",DATUM[\"Pulkovo_1942_58\",SPHEROID[\"Kr"); add_srs_wkt (p, 2, "assowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\""); add_srs_wkt (p, 3, "]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6179\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4179\"]],PROJECTION[\"Oblique_Stereographic\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",51.67083333333333],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",16.67222222222222],PARAMETER[\"scale_f"); add_srs_wkt (p, 10, "actor\",0.9998],PARAMETER[\"false_easting\",3703000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",5627000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); add_srs_wkt (p, 13, "AST],AUTHORITY[\"EPSG\",\"2174\"]]"); p = add_epsg_def (filter, first, last, 2175, "epsg", 2175, "Pulkovo 1942(58) / Poland zone V"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=18.95833333333333 +k=0.99998"); add_proj4text (p, 1, "3 +x_0=237000 +y_0=-4700000 +ellps=krass +towgs84=33.4,-"); add_proj4text (p, 2, "146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(58) / Poland zone V\",GEOGCS[\"Pul"); add_srs_wkt (p, 1, "kovo 1942(58)\",DATUM[\"Pulkovo_1942_58\",SPHEROID[\"Kra"); add_srs_wkt (p, 2, "ssowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\""); add_srs_wkt (p, 3, "]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6179\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4179\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "8.95833333333333],PARAMETER[\"scale_factor\",0.999983],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_easting\",237000],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, "thing\",-4700000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"2175\"]]"); p = add_epsg_def (filter, first, last, 2176, "epsg", 2176, "ETRS89 / Poland CS2000 zone 5"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=0.999923 +x_0=5500000 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / Poland CS2000 zone 5\",GEOGCS[\"ETRS89"); add_srs_wkt (p, 1, "\",DATUM[\"European_Terrestrial_Reference_System_1989\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",0],PARAMETER[\"central_meridian\",15],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",0.999923],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 10, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"x\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "y\",EAST],AUTHORITY[\"EPSG\",\"2176\"]]"); p = add_epsg_def (filter, first, last, 2177, "epsg", 2177, "ETRS89 / Poland CS2000 zone 6"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=18 +k=0.999923 +x_0=6500000 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / Poland CS2000 zone 6\",GEOGCS[\"ETRS89"); add_srs_wkt (p, 1, "\",DATUM[\"European_Terrestrial_Reference_System_1989\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",0],PARAMETER[\"central_meridian\",18],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",0.999923],PARAMETER[\"false_easting\",6"); add_srs_wkt (p, 10, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"x\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "y\",EAST],AUTHORITY[\"EPSG\",\"2177\"]]"); p = add_epsg_def (filter, first, last, 2178, "epsg", 2178, "ETRS89 / Poland CS2000 zone 7"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=0.999923 +x_0=7500000 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / Poland CS2000 zone 7\",GEOGCS[\"ETRS89"); add_srs_wkt (p, 1, "\",DATUM[\"European_Terrestrial_Reference_System_1989\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",0],PARAMETER[\"central_meridian\",21],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",0.999923],PARAMETER[\"false_easting\",7"); add_srs_wkt (p, 10, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"x\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "y\",EAST],AUTHORITY[\"EPSG\",\"2178\"]]"); p = add_epsg_def (filter, first, last, 2179, "epsg", 2179, "ETRS89 / Poland CS2000 zone 8"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=24 +k=0.999923 +x_0=8500000 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / Poland CS2000 zone 8\",GEOGCS[\"ETRS89"); add_srs_wkt (p, 1, "\",DATUM[\"European_Terrestrial_Reference_System_1989\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",0],PARAMETER[\"central_meridian\",24],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",0.999923],PARAMETER[\"false_easting\",8"); add_srs_wkt (p, 10, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"x\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "y\",EAST],AUTHORITY[\"EPSG\",\"2179\"]]"); p = add_epsg_def (filter, first, last, 2180, "epsg", 2180, "ETRS89 / Poland CS92"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=19 +k=0.9993 +x_0=500000 +y_"); add_proj4text (p, 1, "0=-5300000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / Poland CS92\",GEOGCS[\"ETRS89\",DATUM["); add_srs_wkt (p, 1, "\"European_Terrestrial_Reference_System_1989\",SPHEROID["); add_srs_wkt (p, 2, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, "],PARAMETER[\"central_meridian\",19],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9993],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",-5300000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"x\",NORTH],AXIS[\"y\",E"); add_srs_wkt (p, 12, "AST],AUTHORITY[\"EPSG\",\"2180\"]]"); p = add_epsg_def (filter, first, last, 2188, "epsg", 2188, "Azores Occidental 1939 / UTM zone 25N"); add_proj4text (p, 0, "+proj=utm +zone=25 +ellps=intl +towgs84=-425,-169,81,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Azores Occidental 1939 / UTM zone 25N\",GEOGCS["); add_srs_wkt (p, 1, "\"Azores Occidental 1939\",DATUM[\"Azores_Occidental_Isl"); add_srs_wkt (p, 2, "ands_1939\",SPHEROID[\"International 1924\",6378388,297,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-425,-169,81,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6182\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4182\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); add_srs_wkt (p, 8, "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); add_srs_wkt (p, 9, "an\",-33],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",500000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 11, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea"); add_srs_wkt (p, 12, "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"2188\"]]"); p = add_epsg_def (filter, first, last, 2189, "epsg", 2189, "Azores Central 1948 / UTM zone 26N"); add_proj4text (p, 0, "+proj=utm +zone=26 +ellps=intl +towgs84=-104,167,-38,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Azores Central 1948 / UTM zone 26N\",GEOGCS[\"A"); add_srs_wkt (p, 1, "zores Central 1948\",DATUM[\"Azores_Central_Islands_1948"); add_srs_wkt (p, 2, "\",SPHEROID[\"International 1924\",6378388,297,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7022\"]],TOWGS84[-104,167,-38,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6183\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4183"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-27]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 12, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2189"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def (filter, first, last, 2190, "epsg", 2190, "Azores Oriental 1940 / UTM zone 26N"); add_proj4text (p, 0, "+proj=utm +zone=26 +ellps=intl +towgs84=-203,141,53,0,0,"); add_proj4text (p, 1, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Azores Oriental 1940 / UTM zone 26N\",GEOGCS[\""); add_srs_wkt (p, 1, "Azores Oriental 1940\",DATUM[\"Azores_Oriental_Islands_1"); add_srs_wkt (p, 2, "940\",SPHEROID[\"International 1924\",6378388,297,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7022\"]],TOWGS84[-203,141,53,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6184\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"41"); add_srs_wkt (p, 7, "84\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",-2"); add_srs_wkt (p, 9, "7],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"219"); add_srs_wkt (p, 13, "0\"]]"); p = add_epsg_def (filter, first, last, 2191, "epsg", 2191, "Madeira 1936 / UTM zone 28N (deprecated)"); add_proj4text (p, 0, "+proj=utm +zone=28 +ellps=intl +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Madeira 1936 / UTM zone 28N (deprecated)\",GEOG"); add_srs_wkt (p, 1, "CS[\"Madeira 1936\",DATUM[\"Madeira_1936\",SPHEROID[\"In"); add_srs_wkt (p, 2, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"6185\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9108\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4185\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 7, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 8, "ian\",-15],PARAMETER[\"scale_factor\",0.9996],PARAMETER["); add_srs_wkt (p, 9, "\"false_easting\",500000],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 10, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 11, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"2191\"]]"); p = add_epsg_def (filter, first, last, 2192, "epsg", 2192, "ED50 / France EuroLambert"); add_proj4text (p, 0, "+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=2.3372291666666"); add_proj4text (p, 1, "67 +k_0=0.99987742 +x_0=600000 +y_0=2200000 +ellps=intl "); add_proj4text (p, 2, "+towgs84=-87,-98,-121,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / France EuroLambert\",GEOGCS[\"ED50\",DAT"); add_srs_wkt (p, 1, "UM[\"European_Datum_1950\",SPHEROID[\"International 1924"); add_srs_wkt (p, 2, "\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87"); add_srs_wkt (p, 3, ",-98,-121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4230\"]],PROJECTION[\"Lambert_Confor"); add_srs_wkt (p, 7, "mal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",46.8],"); add_srs_wkt (p, 8, "PARAMETER[\"central_meridian\",2.337229166666667],PARAME"); add_srs_wkt (p, 9, "TER[\"scale_factor\",0.99987742],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",600000],PARAMETER[\"false_northing\",2200000],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAS"); add_srs_wkt (p, 12, "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2192\"]]"); p = add_epsg_def (filter, first, last, 2193, "epsg", 2193, "NZGD2000 / New Zealand Transverse Mercator 2000"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=173 +k=0.9996 +x_0=1600000 +"); add_proj4text (p, 1, "y_0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / New Zealand Transverse Mercator 2000"); add_srs_wkt (p, 1, "\",GEOGCS[\"NZGD2000\",DATUM[\"New_Zealand_Geodetic_Datu"); add_srs_wkt (p, 2, "m_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"6167\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4167\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",0],PARAMETER[\"central_meridian\",173],P"); add_srs_wkt (p, 9, "ARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",1600000],PARAMETER[\"false_northing\",10000000],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Nort"); add_srs_wkt (p, 12, "hing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"2193\"]]"); p = add_epsg_def (filter, first, last, 2194, "epsg", 2194, "American Samoa 1962 / American Samoa Lambert (deprecated)"); add_proj4text (p, 0, "+proj=lcc +lat_1=-14.26666666666667 +lat_0=-14.266666666"); add_proj4text (p, 1, "66667 +lon_0=-170 +k_0=1 +x_0=152400.3048006096 +y_0=0 +"); add_proj4text (p, 2, "ellps=clrk66 +towgs84=-115,118,426,0,0,0,0 +units=us-ft "); add_proj4text (p, 3, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"American Samoa 1962 / American Samoa Lambert (d"); add_srs_wkt (p, 1, "eprecated)\",GEOGCS[\"American Samoa 1962\",DATUM[\"Amer"); add_srs_wkt (p, 2, "ican_Samoa_1962\",SPHEROID[\"Clarke 1866\",6378206.4,294"); add_srs_wkt (p, 3, ".9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS84[-11"); add_srs_wkt (p, 4, "5,118,426,0,0,0,0],AUTHORITY[\"EPSG\",\"6169\"]],PRIMEM["); add_srs_wkt (p, 5, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 6, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 7, "UTHORITY[\"EPSG\",\"4169\"]],PROJECTION[\"Lambert_Confor"); add_srs_wkt (p, 8, "mal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",-14.26"); add_srs_wkt (p, 9, "666666666667],PARAMETER[\"central_meridian\",-170],PARAM"); add_srs_wkt (p, 10, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",500"); add_srs_wkt (p, 11, "000],PARAMETER[\"false_northing\",0],UNIT[\"US survey fo"); add_srs_wkt (p, 12, "ot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AX"); add_srs_wkt (p, 13, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"21"); add_srs_wkt (p, 14, "94\"]]"); p = add_epsg_def (filter, first, last, 2195, "epsg", 2195, "NAD83(HARN) / UTM zone 2S"); add_proj4text (p, 0, "+proj=utm +zone=2 +south +ellps=GRS80 +towgs84=0,0,0,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / UTM zone 2S\",GEOGCS[\"NAD83(HARN"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPHE"); add_srs_wkt (p, 2, "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTIO"); add_srs_wkt (p, 7, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 8, "n\",0],PARAMETER[\"central_meridian\",-171],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 12, "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2195\"]]"); p = add_epsg_def (filter, first, last, 2196, "epsg", 2196, "ETRS89 / Kp2000 Jutland"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=9.5 +k=0.99995 +x_0=200000 +"); add_proj4text (p, 1, "y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / Kp2000 Jutland\",GEOGCS[\"ETRS89\",DAT"); add_srs_wkt (p, 1, "UM[\"European_Terrestrial_Reference_System_1989\",SPHERO"); add_srs_wkt (p, 2, "ID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",9.5],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",0.99995],PARAMETER[\"false_easting\",200000],"); add_srs_wkt (p, 10, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, "TY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nor"); add_srs_wkt (p, 12, "thing\",NORTH],AUTHORITY[\"EPSG\",\"2196\"]]"); p = add_epsg_def (filter, first, last, 2197, "epsg", 2197, "ETRS89 / Kp2000 Zealand"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=12 +k=0.99995 +x_0=500000 +y"); add_proj4text (p, 1, "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / Kp2000 Zealand\",GEOGCS[\"ETRS89\",DAT"); add_srs_wkt (p, 1, "UM[\"European_Terrestrial_Reference_System_1989\",SPHERO"); add_srs_wkt (p, 2, "ID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",12],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",0.99995],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 12, "hing\",NORTH],AUTHORITY[\"EPSG\",\"2197\"]]"); p = add_epsg_def (filter, first, last, 2198, "epsg", 2198, "ETRS89 / Kp2000 Bornholm"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=900000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / Kp2000 Bornholm\",GEOGCS[\"ETRS89\",DA"); add_srs_wkt (p, 1, "TUM[\"European_Terrestrial_Reference_System_1989\",SPHER"); add_srs_wkt (p, 2, "OID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",15],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",1],PARAMETER[\"false_easting\",900000],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"2198\"]]"); p = add_epsg_def (filter, first, last, 2199, "epsg", 2199, "Albanian 1987 / Gauss Kruger zone 4 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=4500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Albanian 1987 / Gauss Kruger zone 4 (deprecated"); add_srs_wkt (p, 1, ")\",GEOGCS[\"Albanian 1987\",DATUM[\"Albanian_1987\",SPH"); add_srs_wkt (p, 2, "EROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7024\"]],AUTHORITY[\"EPSG\",\"6191\"]],PRIMEM[\"Gre"); add_srs_wkt (p, 4, "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4191\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 8, "ral_meridian\",21],PARAMETER[\"scale_factor\",1],PARAMET"); add_srs_wkt (p, 9, "ER[\"false_easting\",4500000],PARAMETER[\"false_northing"); add_srs_wkt (p, 10, "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 11, "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"219"); add_srs_wkt (p, 12, "9\"]]"); p = add_epsg_def (filter, first, last, 2200, "epsg", 2200, "ATS77 / New Brunswick Stereographic (ATS77)"); add_proj4text (p, 0, "+proj=sterea +lat_0=46.5 +lon_0=-66.5 +k=0.999912 +x_0=3"); add_proj4text (p, 1, "00000 +y_0=800000 +a=6378135 +b=6356750.304921594 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ATS77 / New Brunswick Stereographic (ATS77)\",G"); add_srs_wkt (p, 1, "EOGCS[\"ATS77\",DATUM[\"Average_Terrestrial_System_1977\""); add_srs_wkt (p, 2, ",SPHEROID[\"Average Terrestrial System 1977\",6378135,29"); add_srs_wkt (p, 3, "8.257,AUTHORITY[\"EPSG\",\"7041\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6122\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4122\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Oblique_Stereographic\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 8, "n\",46.5],PARAMETER[\"central_meridian\",-66.5],PARAMETE"); add_srs_wkt (p, 9, "R[\"scale_factor\",0.999912],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, ",300000],PARAMETER[\"false_northing\",800000],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",N"); add_srs_wkt (p, 12, "ORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"2200\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def (filter, first, last, 2201, "epsg", 2201, "REGVEN / UTM zone 18N"); add_proj4text (p, 0, "+proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"REGVEN / UTM zone 18N\",GEOGCS[\"REGVEN\",DATUM"); add_srs_wkt (p, 1, "[\"Red_Geodesica_Venezolana\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6189\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4189\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 8, "ral_meridian\",-75],PARAMETER[\"scale_factor\",0.9996],P"); add_srs_wkt (p, 9, "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 10, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 11, "],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"2201\"]]"); p = add_epsg_def (filter, first, last, 2202, "epsg", 2202, "REGVEN / UTM zone 19N"); add_proj4text (p, 0, "+proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"REGVEN / UTM zone 19N\",GEOGCS[\"REGVEN\",DATUM"); add_srs_wkt (p, 1, "[\"Red_Geodesica_Venezolana\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6189\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4189\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 8, "ral_meridian\",-69],PARAMETER[\"scale_factor\",0.9996],P"); add_srs_wkt (p, 9, "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 10, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 11, "],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"2202\"]]"); p = add_epsg_def (filter, first, last, 2203, "epsg", 2203, "REGVEN / UTM zone 20N"); add_proj4text (p, 0, "+proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"REGVEN / UTM zone 20N\",GEOGCS[\"REGVEN\",DATUM"); add_srs_wkt (p, 1, "[\"Red_Geodesica_Venezolana\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6189\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4189\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 8, "ral_meridian\",-63],PARAMETER[\"scale_factor\",0.9996],P"); add_srs_wkt (p, 9, "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 10, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 11, "],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"2203\"]]"); p = add_epsg_def (filter, first, last, 2204, "epsg", 2204, "NAD27 / Tennessee"); add_proj4text (p, 0, "+proj=lcc +lat_1=35.25 +lat_2=36.41666666666666 +lat_0=3"); add_proj4text (p, 1, "4.66666666666666 +lon_0=-86 +x_0=609601.2192024384 +y_0="); add_proj4text (p, 2, "30480.06096012192 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Tennessee\",GEOGCS[\"NAD27\",DATUM[\"No"); add_srs_wkt (p, 1, "rth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",63782"); add_srs_wkt (p, 2, "06.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 5, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 6, "67\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAM"); add_srs_wkt (p, 7, "ETER[\"standard_parallel_1\",35.25],PARAMETER[\"standard"); add_srs_wkt (p, 8, "_parallel_2\",36.41666666666666],PARAMETER[\"latitude_of"); add_srs_wkt (p, 9, "_origin\",34.66666666666666],PARAMETER[\"central_meridia"); add_srs_wkt (p, 10, "n\",-86],PARAMETER[\"false_easting\",2000000],PARAMETER["); add_srs_wkt (p, 11, "\"false_northing\",100000],UNIT[\"US survey foot\",0.304"); add_srs_wkt (p, 12, "8006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",E"); add_srs_wkt (p, 13, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2204\"]]"); p = add_epsg_def (filter, first, last, 2205, "epsg", 2205, "NAD83 / Kentucky North"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666"); add_proj4text (p, 1, "667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000 +y_0=0 +datum="); add_proj4text (p, 2, "NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Kentucky North\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 7, "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",37.96666"); add_srs_wkt (p, 8, "666666667],PARAMETER[\"standard_parallel_2\",38.96666666"); add_srs_wkt (p, 9, "666667],PARAMETER[\"latitude_of_origin\",37.5],PARAMETER"); add_srs_wkt (p, 10, "[\"central_meridian\",-84.25],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Y\",NORTH],AUTHORITY[\"EPSG\",\"2205\"]]"); p = add_epsg_def (filter, first, last, 2206, "epsg", 2206, "ED50 / 3-degree Gauss-Kruger zone 9"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=9500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=intl +towgs84=-87,-98,-121,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / 3-degree Gauss-Kruger zone 9\",GEOGCS[\""); add_srs_wkt (p, 1, "ED50\",DATUM[\"European_Datum_1950\",SPHEROID[\"Internat"); add_srs_wkt (p, 2, "ional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],T"); add_srs_wkt (p, 3, "OWGS84[-87,-98,-121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4230\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, "ARAMETER[\"central_meridian\",27],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",1],PARAMETER[\"false_easting\",9500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"2206\"]]"); p = add_epsg_def (filter, first, last, 2207, "epsg", 2207, "ED50 / 3-degree Gauss-Kruger zone 10"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=10500000 +y_0=0"); add_proj4text (p, 1, " +ellps=intl +towgs84=-87,-98,-121,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / 3-degree Gauss-Kruger zone 10\",GEOGCS[\""); add_srs_wkt (p, 1, "ED50\",DATUM[\"European_Datum_1950\",SPHEROID[\"Internat"); add_srs_wkt (p, 2, "ional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],T"); add_srs_wkt (p, 3, "OWGS84[-87,-98,-121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4230\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, "ARAMETER[\"central_meridian\",30],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",1],PARAMETER[\"false_easting\",10500000],PARAMETER["); add_srs_wkt (p, 10, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"2207\"]]"); p = add_epsg_def (filter, first, last, 2208, "epsg", 2208, "ED50 / 3-degree Gauss-Kruger zone 11"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=11500000 +y_0=0"); add_proj4text (p, 1, " +ellps=intl +towgs84=-87,-98,-121,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / 3-degree Gauss-Kruger zone 11\",GEOGCS[\""); add_srs_wkt (p, 1, "ED50\",DATUM[\"European_Datum_1950\",SPHEROID[\"Internat"); add_srs_wkt (p, 2, "ional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],T"); add_srs_wkt (p, 3, "OWGS84[-87,-98,-121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4230\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, "ARAMETER[\"central_meridian\",33],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",1],PARAMETER[\"false_easting\",11500000],PARAMETER["); add_srs_wkt (p, 10, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"2208\"]]"); } #endif /* full EPSG initialization enabled/disabled */ libspatialite-4.1.1/src/srsinit/epsg_inlined_32.c0000664000175000017500000045716012163502133016671 00000000000000/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_32 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def (filter, first, last, 26906, "epsg", 26906, "NAD83 / UTM zone 6N"); add_proj4text (p, 0, "+proj=utm +zone=6 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / UTM zone 6N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-147],PARAMETER[\"scale_factor\",0.9996],PA"); add_srs_wkt (p, 9, "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 10, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 11, ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"26906\"]]"); p = add_epsg_def (filter, first, last, 26907, "epsg", 26907, "NAD83 / UTM zone 7N"); add_proj4text (p, 0, "+proj=utm +zone=7 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / UTM zone 7N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-141],PARAMETER[\"scale_factor\",0.9996],PA"); add_srs_wkt (p, 9, "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 10, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 11, ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"26907\"]]"); p = add_epsg_def (filter, first, last, 26908, "epsg", 26908, "NAD83 / UTM zone 8N"); add_proj4text (p, 0, "+proj=utm +zone=8 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / UTM zone 8N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-135],PARAMETER[\"scale_factor\",0.9996],PA"); add_srs_wkt (p, 9, "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 10, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 11, ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"26908\"]]"); p = add_epsg_def (filter, first, last, 26909, "epsg", 26909, "NAD83 / UTM zone 9N"); add_proj4text (p, 0, "+proj=utm +zone=9 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / UTM zone 9N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-129],PARAMETER[\"scale_factor\",0.9996],PA"); add_srs_wkt (p, 9, "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 10, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 11, ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"26909\"]]"); p = add_epsg_def (filter, first, last, 26910, "epsg", 26910, "NAD83 / UTM zone 10N"); add_proj4text (p, 0, "+proj=utm +zone=10 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / UTM zone 10N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-123],PARAMETER[\"scale_factor\",0.9996],PA"); add_srs_wkt (p, 9, "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 10, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 11, ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"26910\"]]"); p = add_epsg_def (filter, first, last, 26911, "epsg", 26911, "NAD83 / UTM zone 11N"); add_proj4text (p, 0, "+proj=utm +zone=11 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / UTM zone 11N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-117],PARAMETER[\"scale_factor\",0.9996],PA"); add_srs_wkt (p, 9, "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 10, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 11, ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"26911\"]]"); p = add_epsg_def (filter, first, last, 26912, "epsg", 26912, "NAD83 / UTM zone 12N"); add_proj4text (p, 0, "+proj=utm +zone=12 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / UTM zone 12N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-111],PARAMETER[\"scale_factor\",0.9996],PA"); add_srs_wkt (p, 9, "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 10, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 11, ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"26912\"]]"); p = add_epsg_def (filter, first, last, 26913, "epsg", 26913, "NAD83 / UTM zone 13N"); add_proj4text (p, 0, "+proj=utm +zone=13 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / UTM zone 13N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-105],PARAMETER[\"scale_factor\",0.9996],PA"); add_srs_wkt (p, 9, "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 10, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 11, ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"26913\"]]"); p = add_epsg_def (filter, first, last, 26914, "epsg", 26914, "NAD83 / UTM zone 14N"); add_proj4text (p, 0, "+proj=utm +zone=14 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / UTM zone 14N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-99],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"26914\"]]"); p = add_epsg_def (filter, first, last, 26915, "epsg", 26915, "NAD83 / UTM zone 15N"); add_proj4text (p, 0, "+proj=utm +zone=15 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / UTM zone 15N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-93],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"26915\"]]"); p = add_epsg_def (filter, first, last, 26916, "epsg", 26916, "NAD83 / UTM zone 16N"); add_proj4text (p, 0, "+proj=utm +zone=16 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / UTM zone 16N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-87],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"26916\"]]"); p = add_epsg_def (filter, first, last, 26917, "epsg", 26917, "NAD83 / UTM zone 17N"); add_proj4text (p, 0, "+proj=utm +zone=17 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / UTM zone 17N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-81],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"26917\"]]"); p = add_epsg_def (filter, first, last, 26918, "epsg", 26918, "NAD83 / UTM zone 18N"); add_proj4text (p, 0, "+proj=utm +zone=18 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / UTM zone 18N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-75],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"26918\"]]"); p = add_epsg_def (filter, first, last, 26919, "epsg", 26919, "NAD83 / UTM zone 19N"); add_proj4text (p, 0, "+proj=utm +zone=19 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / UTM zone 19N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-69],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"26919\"]]"); p = add_epsg_def (filter, first, last, 26920, "epsg", 26920, "NAD83 / UTM zone 20N"); add_proj4text (p, 0, "+proj=utm +zone=20 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / UTM zone 20N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-63],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"26920\"]]"); p = add_epsg_def (filter, first, last, 26921, "epsg", 26921, "NAD83 / UTM zone 21N"); add_proj4text (p, 0, "+proj=utm +zone=21 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / UTM zone 21N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-57],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"26921\"]]"); p = add_epsg_def (filter, first, last, 26922, "epsg", 26922, "NAD83 / UTM zone 22N"); add_proj4text (p, 0, "+proj=utm +zone=22 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / UTM zone 22N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-51],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"26922\"]]"); p = add_epsg_def (filter, first, last, 26923, "epsg", 26923, "NAD83 / UTM zone 23N"); add_proj4text (p, 0, "+proj=utm +zone=23 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / UTM zone 23N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-45],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"26923\"]]"); p = add_epsg_def (filter, first, last, 26929, "epsg", 26929, "NAD83 / Alabama East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30.5 +lon_0=-85.83333333333333 +k=0.9"); add_proj4text (p, 1, "9996 +x_0=200000 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Alabama East\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",30.5],PARAMETER[\"cen"); add_srs_wkt (p, 8, "tral_meridian\",-85.83333333333333],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",0.99996],PARAMETER[\"false_easting\",200000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"26929\"]]"); p = add_epsg_def (filter, first, last, 26930, "epsg", 26930, "NAD83 / Alabama West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30 +lon_0=-87.5 +k=0.999933333 +x_0=6"); add_proj4text (p, 1, "00000 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Alabama West\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",30],PARAMETER[\"centr"); add_srs_wkt (p, 8, "al_meridian\",-87.5],PARAMETER[\"scale_factor\",0.999933"); add_srs_wkt (p, 9, "333],PARAMETER[\"false_easting\",600000],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 11, "001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"26930\"]]"); p = add_epsg_def (filter, first, last, 26931, "epsg", 26931, "NAD83 / Alaska zone 1"); add_proj4text (p, 0, "+proj=omerc +lat_0=57 +lonc=-133.6666666666667 +alpha=32"); add_proj4text (p, 1, "3.1301023611111 +k=0.9999 +x_0=5000000 +y_0=-5000000 +ga"); add_proj4text (p, 2, "mma=323.1301023611111 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Alaska zone 1\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Hotine_Oblique_Merc"); add_srs_wkt (p, 7, "ator\"],PARAMETER[\"latitude_of_center\",57],PARAMETER[\""); add_srs_wkt (p, 8, "longitude_of_center\",-133.6666666666667],PARAMETER[\"az"); add_srs_wkt (p, 9, "imuth\",323.1301023611111],PARAMETER[\"rectified_grid_an"); add_srs_wkt (p, 10, "gle\",323.1301023611111],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 11, "99],PARAMETER[\"false_easting\",5000000],PARAMETER[\"fal"); add_srs_wkt (p, 12, "se_northing\",-5000000],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR"); add_srs_wkt (p, 14, "ITY[\"EPSG\",\"26931\"]]"); p = add_epsg_def (filter, first, last, 26932, "epsg", 26932, "NAD83 / Alaska zone 2"); add_proj4text (p, 0, "+proj=tmerc +lat_0=54 +lon_0=-142 +k=0.9999 +x_0=500000 "); add_proj4text (p, 1, "+y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Alaska zone 2\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",54],PARAMETER[\"cen"); add_srs_wkt (p, 8, "tral_meridian\",-142],PARAMETER[\"scale_factor\",0.9999]"); add_srs_wkt (p, 9, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 10, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 11, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"26932\"]]"); p = add_epsg_def (filter, first, last, 26933, "epsg", 26933, "NAD83 / Alaska zone 3"); add_proj4text (p, 0, "+proj=tmerc +lat_0=54 +lon_0=-146 +k=0.9999 +x_0=500000 "); add_proj4text (p, 1, "+y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Alaska zone 3\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",54],PARAMETER[\"cen"); add_srs_wkt (p, 8, "tral_meridian\",-146],PARAMETER[\"scale_factor\",0.9999]"); add_srs_wkt (p, 9, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 10, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 11, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"26933\"]]"); p = add_epsg_def (filter, first, last, 26934, "epsg", 26934, "NAD83 / Alaska zone 4"); add_proj4text (p, 0, "+proj=tmerc +lat_0=54 +lon_0=-150 +k=0.9999 +x_0=500000 "); add_proj4text (p, 1, "+y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Alaska zone 4\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",54],PARAMETER[\"cen"); add_srs_wkt (p, 8, "tral_meridian\",-150],PARAMETER[\"scale_factor\",0.9999]"); add_srs_wkt (p, 9, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 10, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 11, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"26934\"]]"); p = add_epsg_def (filter, first, last, 26935, "epsg", 26935, "NAD83 / Alaska zone 5"); add_proj4text (p, 0, "+proj=tmerc +lat_0=54 +lon_0=-154 +k=0.9999 +x_0=500000 "); add_proj4text (p, 1, "+y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Alaska zone 5\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",54],PARAMETER[\"cen"); add_srs_wkt (p, 8, "tral_meridian\",-154],PARAMETER[\"scale_factor\",0.9999]"); add_srs_wkt (p, 9, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 10, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 11, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"26935\"]]"); p = add_epsg_def (filter, first, last, 26936, "epsg", 26936, "NAD83 / Alaska zone 6"); add_proj4text (p, 0, "+proj=tmerc +lat_0=54 +lon_0=-158 +k=0.9999 +x_0=500000 "); add_proj4text (p, 1, "+y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Alaska zone 6\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",54],PARAMETER[\"cen"); add_srs_wkt (p, 8, "tral_meridian\",-158],PARAMETER[\"scale_factor\",0.9999]"); add_srs_wkt (p, 9, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 10, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 11, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"26936\"]]"); p = add_epsg_def (filter, first, last, 26937, "epsg", 26937, "NAD83 / Alaska zone 7"); add_proj4text (p, 0, "+proj=tmerc +lat_0=54 +lon_0=-162 +k=0.9999 +x_0=500000 "); add_proj4text (p, 1, "+y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Alaska zone 7\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",54],PARAMETER[\"cen"); add_srs_wkt (p, 8, "tral_meridian\",-162],PARAMETER[\"scale_factor\",0.9999]"); add_srs_wkt (p, 9, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 10, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 11, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"26937\"]]"); p = add_epsg_def (filter, first, last, 26938, "epsg", 26938, "NAD83 / Alaska zone 8"); add_proj4text (p, 0, "+proj=tmerc +lat_0=54 +lon_0=-166 +k=0.9999 +x_0=500000 "); add_proj4text (p, 1, "+y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Alaska zone 8\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",54],PARAMETER[\"cen"); add_srs_wkt (p, 8, "tral_meridian\",-166],PARAMETER[\"scale_factor\",0.9999]"); add_srs_wkt (p, 9, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 10, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 11, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"26938\"]]"); p = add_epsg_def (filter, first, last, 26939, "epsg", 26939, "NAD83 / Alaska zone 9"); add_proj4text (p, 0, "+proj=tmerc +lat_0=54 +lon_0=-170 +k=0.9999 +x_0=500000 "); add_proj4text (p, 1, "+y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Alaska zone 9\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",54],PARAMETER[\"cen"); add_srs_wkt (p, 8, "tral_meridian\",-170],PARAMETER[\"scale_factor\",0.9999]"); add_srs_wkt (p, 9, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 10, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 11, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"26939\"]]"); p = add_epsg_def (filter, first, last, 26940, "epsg", 26940, "NAD83 / Alaska zone 10"); add_proj4text (p, 0, "+proj=lcc +lat_1=53.83333333333334 +lat_2=51.83333333333"); add_proj4text (p, 1, "334 +lat_0=51 +lon_0=-176 +x_0=1000000 +y_0=0 +datum=NAD"); add_proj4text (p, 2, "83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Alaska zone 10\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 7, "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",53.83333"); add_srs_wkt (p, 8, "333333334],PARAMETER[\"standard_parallel_2\",51.83333333"); add_srs_wkt (p, 9, "333334],PARAMETER[\"latitude_of_origin\",51],PARAMETER[\""); add_srs_wkt (p, 10, "central_meridian\",-176],PARAMETER[\"false_easting\",100"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"26940\"]]"); p = add_epsg_def (filter, first, last, 26941, "epsg", 26941, "NAD83 / California zone 1"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.3"); add_proj4text (p, 1, "3333333333334 +lon_0=-122 +x_0=2000000 +y_0=500000 +datu"); add_proj4text (p, 2, "m=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / California zone 1\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor"); add_srs_wkt (p, 7, "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",41.66"); add_srs_wkt (p, 8, "666666666666],PARAMETER[\"standard_parallel_2\",40],PARA"); add_srs_wkt (p, 9, "METER[\"latitude_of_origin\",39.33333333333334],PARAMETE"); add_srs_wkt (p, 10, "R[\"central_meridian\",-122],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",2000000],PARAMETER[\"false_northing\",500000],UNIT[\"me"); add_srs_wkt (p, 12, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A"); add_srs_wkt (p, 13, "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26941\"]]"); p = add_epsg_def (filter, first, last, 26942, "epsg", 26942, "NAD83 / California zone 2"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333"); add_proj4text (p, 1, "334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000 +y"); add_proj4text (p, 2, "_0=500000 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / California zone 2\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor"); add_srs_wkt (p, 7, "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",39.83"); add_srs_wkt (p, 8, "333333333334],PARAMETER[\"standard_parallel_2\",38.33333"); add_srs_wkt (p, 9, "333333334],PARAMETER[\"latitude_of_origin\",37.666666666"); add_srs_wkt (p, 10, "66666],PARAMETER[\"central_meridian\",-122],PARAMETER[\""); add_srs_wkt (p, 11, "false_easting\",2000000],PARAMETER[\"false_northing\",50"); add_srs_wkt (p, 12, "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 13, "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"269"); add_srs_wkt (p, 14, "42\"]]"); p = add_epsg_def (filter, first, last, 26943, "epsg", 26943, "NAD83 / California zone 3"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666"); add_proj4text (p, 1, "667 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000 +y_0=500000 +"); add_proj4text (p, 2, "datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / California zone 3\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor"); add_srs_wkt (p, 7, "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",38.43"); add_srs_wkt (p, 8, "333333333333],PARAMETER[\"standard_parallel_2\",37.06666"); add_srs_wkt (p, 9, "666666667],PARAMETER[\"latitude_of_origin\",36.5],PARAME"); add_srs_wkt (p, 10, "TER[\"central_meridian\",-120.5],PARAMETER[\"false_easti"); add_srs_wkt (p, 11, "ng\",2000000],PARAMETER[\"false_northing\",500000],UNIT["); add_srs_wkt (p, 12, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAS"); add_srs_wkt (p, 13, "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26943\"]]"); p = add_epsg_def (filter, first, last, 26944, "epsg", 26944, "NAD83 / California zone 4"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.3333333333333"); add_proj4text (p, 1, "4 +lon_0=-119 +x_0=2000000 +y_0=500000 +datum=NAD83 +uni"); add_proj4text (p, 2, "ts=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / California zone 4\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor"); add_srs_wkt (p, 7, "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",37.25"); add_srs_wkt (p, 8, "],PARAMETER[\"standard_parallel_2\",36],PARAMETER[\"lati"); add_srs_wkt (p, 9, "tude_of_origin\",35.33333333333334],PARAMETER[\"central_"); add_srs_wkt (p, 10, "meridian\",-119],PARAMETER[\"false_easting\",2000000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",500000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 13, "RTH],AUTHORITY[\"EPSG\",\"26944\"]]"); p = add_epsg_def (filter, first, last, 26945, "epsg", 26945, "NAD83 / California zone 5"); add_proj4text (p, 0, "+proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333"); add_proj4text (p, 1, "333 +lat_0=33.5 +lon_0=-118 +x_0=2000000 +y_0=500000 +da"); add_proj4text (p, 2, "tum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / California zone 5\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor"); add_srs_wkt (p, 7, "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",35.46"); add_srs_wkt (p, 8, "666666666667],PARAMETER[\"standard_parallel_2\",34.03333"); add_srs_wkt (p, 9, "333333333],PARAMETER[\"latitude_of_origin\",33.5],PARAME"); add_srs_wkt (p, 10, "TER[\"central_meridian\",-118],PARAMETER[\"false_easting"); add_srs_wkt (p, 11, "\",2000000],PARAMETER[\"false_northing\",500000],UNIT[\""); add_srs_wkt (p, 12, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 13, ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26945\"]]"); p = add_epsg_def (filter, first, last, 26946, "epsg", 26946, "NAD83 / California zone 6"); add_proj4text (p, 0, "+proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333"); add_proj4text (p, 1, "333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000"); add_proj4text (p, 2, " +y_0=500000 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / California zone 6\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor"); add_srs_wkt (p, 7, "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",33.88"); add_srs_wkt (p, 8, "333333333333],PARAMETER[\"standard_parallel_2\",32.78333"); add_srs_wkt (p, 9, "333333333],PARAMETER[\"latitude_of_origin\",32.166666666"); add_srs_wkt (p, 10, "66666],PARAMETER[\"central_meridian\",-116.25],PARAMETER"); add_srs_wkt (p, 11, "[\"false_easting\",2000000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, ",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 13, "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "26946\"]]"); p = add_epsg_def (filter, first, last, 26948, "epsg", 26948, "NAD83 / Arizona East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=213360 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Arizona East\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",31],PARAMETER[\"centr"); add_srs_wkt (p, 8, "al_meridian\",-110.1666666666667],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",0.9999],PARAMETER[\"false_easting\",213360],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 12, "RITY[\"EPSG\",\"26948\"]]"); p = add_epsg_def (filter, first, last, 26949, "epsg", 26949, "NAD83 / Arizona Central"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=213360 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Arizona Central\",GEOGCS[\"NAD83\",DATU"); add_srs_wkt (p, 1, "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63"); add_srs_wkt (p, 2, "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8"); add_srs_wkt (p, 3, "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor\"],PARAMETER[\"latitude_of_origin\",31],PARAMETER[\""); add_srs_wkt (p, 8, "central_meridian\",-111.9166666666667],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",0.9999],PARAMETER[\"false_easting\",213360],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"26949\"]]"); p = add_epsg_def (filter, first, last, 26950, "epsg", 26950, "NAD83 / Arizona West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0"); add_proj4text (p, 1, "=213360 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Arizona West\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",31],PARAMETER[\"centr"); add_srs_wkt (p, 8, "al_meridian\",-113.75],PARAMETER[\"scale_factor\",0.9999"); add_srs_wkt (p, 9, "33333],PARAMETER[\"false_easting\",213360],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"26950\"]]"); p = add_epsg_def (filter, first, last, 26951, "epsg", 26951, "NAD83 / Arkansas North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333"); add_proj4text (p, 1, "333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=400000 +y_0"); add_proj4text (p, 2, "=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Arkansas North\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 7, "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",36.23333"); add_srs_wkt (p, 8, "333333333],PARAMETER[\"standard_parallel_2\",34.93333333"); add_srs_wkt (p, 9, "333333],PARAMETER[\"latitude_of_origin\",34.333333333333"); add_srs_wkt (p, 10, "34],PARAMETER[\"central_meridian\",-92],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_easting\",400000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 12, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26951\"]]"); p = add_epsg_def (filter, first, last, 26952, "epsg", 26952, "NAD83 / Arkansas South"); add_proj4text (p, 0, "+proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32"); add_proj4text (p, 1, ".66666666666666 +lon_0=-92 +x_0=400000 +y_0=400000 +datu"); add_proj4text (p, 2, "m=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Arkansas South\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 7, "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",34.76666"); add_srs_wkt (p, 8, "666666667],PARAMETER[\"standard_parallel_2\",33.3],PARAM"); add_srs_wkt (p, 9, "ETER[\"latitude_of_origin\",32.66666666666666],PARAMETER"); add_srs_wkt (p, 10, "[\"central_meridian\",-92],PARAMETER[\"false_easting\",4"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",400000],UNIT[\"metre"); add_srs_wkt (p, 12, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS"); add_srs_wkt (p, 13, "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26952\"]]"); p = add_epsg_def (filter, first, last, 26953, "epsg", 26953, "NAD83 / Colorado North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.78333333333333 +lat_2=39.71666666666"); add_proj4text (p, 1, "667 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8"); add_proj4text (p, 2, "289 +y_0=304800.6096 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Colorado North\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 7, "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",40.78333"); add_srs_wkt (p, 8, "333333333],PARAMETER[\"standard_parallel_2\",39.71666666"); add_srs_wkt (p, 9, "666667],PARAMETER[\"latitude_of_origin\",39.333333333333"); add_srs_wkt (p, 10, "34],PARAMETER[\"central_meridian\",-105.5],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_easting\",914401.8289],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, ",304800.6096],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 13, "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 14, "\",\"26953\"]]"); p = add_epsg_def (filter, first, last, 26954, "epsg", 26954, "NAD83 / Colorado Central"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.8333333333"); add_proj4text (p, 1, "3334 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +da"); add_proj4text (p, 2, "tum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Colorado Central\",GEOGCS[\"NAD83\",DAT"); add_srs_wkt (p, 1, "UM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6"); add_srs_wkt (p, 2, "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS"); add_srs_wkt (p, 3, "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 7, "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",39.75],"); add_srs_wkt (p, 8, "PARAMETER[\"standard_parallel_2\",38.45],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",37.83333333333334],PARAMETER[\"central"); add_srs_wkt (p, 10, "_meridian\",-105.5],PARAMETER[\"false_easting\",914401.8"); add_srs_wkt (p, 11, "289],PARAMETER[\"false_northing\",304800.6096],UNIT[\"me"); add_srs_wkt (p, 12, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A"); add_srs_wkt (p, 13, "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26954\"]]"); p = add_epsg_def (filter, first, last, 26955, "epsg", 26955, "NAD83 / Colorado South"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333"); add_proj4text (p, 1, "333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8"); add_proj4text (p, 2, "289 +y_0=304800.6096 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Colorado South\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 7, "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",38.43333"); add_srs_wkt (p, 8, "333333333],PARAMETER[\"standard_parallel_2\",37.23333333"); add_srs_wkt (p, 9, "333333],PARAMETER[\"latitude_of_origin\",36.666666666666"); add_srs_wkt (p, 10, "66],PARAMETER[\"central_meridian\",-105.5],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_easting\",914401.8289],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, ",304800.6096],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 13, "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 14, "\",\"26955\"]]"); p = add_epsg_def (filter, first, last, 26956, "epsg", 26956, "NAD83 / Connecticut"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40"); add_proj4text (p, 1, ".83333333333334 +lon_0=-72.75 +x_0=304800.6096 +y_0=1524"); add_proj4text (p, 2, "00.3048 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Connecticut\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co"); add_srs_wkt (p, 7, "nic_2SP\"],PARAMETER[\"standard_parallel_1\",41.86666666"); add_srs_wkt (p, 8, "666667],PARAMETER[\"standard_parallel_2\",41.2],PARAMETE"); add_srs_wkt (p, 9, "R[\"latitude_of_origin\",40.83333333333334],PARAMETER[\""); add_srs_wkt (p, 10, "central_meridian\",-72.75],PARAMETER[\"false_easting\",3"); add_srs_wkt (p, 11, "04800.6096],PARAMETER[\"false_northing\",152400.3048],UN"); add_srs_wkt (p, 12, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); add_srs_wkt (p, 13, "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26956\"]]"); p = add_epsg_def (filter, first, last, 26957, "epsg", 26957, "NAD83 / Delaware"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999"); add_proj4text (p, 1, "995 +x_0=200000 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Delaware\",GEOGCS[\"NAD83\",DATUM[\"Nor"); add_srs_wkt (p, 1, "th_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 2, "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 3, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 7, "PARAMETER[\"latitude_of_origin\",38],PARAMETER[\"central"); add_srs_wkt (p, 8, "_meridian\",-75.41666666666667],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, "\",0.999995],PARAMETER[\"false_easting\",200000],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 12, "RITY[\"EPSG\",\"26957\"]]"); p = add_epsg_def (filter, first, last, 26958, "epsg", 26958, "NAD83 / Florida East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999"); add_proj4text (p, 1, "941177 +x_0=200000 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Florida East\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",24.33333333333333],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",-81],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",0.999941177],PARAMETER[\"false_easting\",200000],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"26958\"]]"); p = add_epsg_def (filter, first, last, 26959, "epsg", 26959, "NAD83 / Florida West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999"); add_proj4text (p, 1, "941177 +x_0=200000 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Florida West\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",24.33333333333333],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",-82],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",0.999941177],PARAMETER[\"false_easting\",200000],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"26959\"]]"); p = add_epsg_def (filter, first, last, 26960, "epsg", 26960, "NAD83 / Florida North"); add_proj4text (p, 0, "+proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=2"); add_proj4text (p, 1, "9 +lon_0=-84.5 +x_0=600000 +y_0=0 +datum=NAD83 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Florida North\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_C"); add_srs_wkt (p, 7, "onic_2SP\"],PARAMETER[\"standard_parallel_1\",30.75],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_2\",29.58333333333333],PARAME"); add_srs_wkt (p, 9, "TER[\"latitude_of_origin\",29],PARAMETER[\"central_merid"); add_srs_wkt (p, 10, "ian\",-84.5],PARAMETER[\"false_easting\",600000],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"26960\"]]"); p = add_epsg_def (filter, first, last, 26961, "epsg", 26961, "NAD83 / Hawaii zone 1"); add_proj4text (p, 0, "+proj=tmerc +lat_0=18.83333333333333 +lon_0=-155.5 +k=0."); add_proj4text (p, 1, "999966667 +x_0=500000 +y_0=0 +datum=NAD83 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Hawaii zone 1\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",18.83333333333333],"); add_srs_wkt (p, 8, "PARAMETER[\"central_meridian\",-155.5],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",0.999966667],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 12, "RTH],AUTHORITY[\"EPSG\",\"26961\"]]"); p = add_epsg_def (filter, first, last, 26962, "epsg", 26962, "NAD83 / Hawaii zone 2"); add_proj4text (p, 0, "+proj=tmerc +lat_0=20.33333333333333 +lon_0=-156.6666666"); add_proj4text (p, 1, "666667 +k=0.999966667 +x_0=500000 +y_0=0 +datum=NAD83 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Hawaii zone 2\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",20.33333333333333],"); add_srs_wkt (p, 8, "PARAMETER[\"central_meridian\",-156.6666666666667],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",0.999966667],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A"); add_srs_wkt (p, 12, "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26962\"]]"); p = add_epsg_def (filter, first, last, 26963, "epsg", 26963, "NAD83 / Hawaii zone 3"); add_proj4text (p, 0, "+proj=tmerc +lat_0=21.16666666666667 +lon_0=-158 +k=0.99"); add_proj4text (p, 1, "999 +x_0=500000 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Hawaii zone 3\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",21.16666666666667],"); add_srs_wkt (p, 8, "PARAMETER[\"central_meridian\",-158],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.99999],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 11, "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"26963\"]]"); p = add_epsg_def (filter, first, last, 26964, "epsg", 26964, "NAD83 / Hawaii zone 4"); add_proj4text (p, 0, "+proj=tmerc +lat_0=21.83333333333333 +lon_0=-159.5 +k=0."); add_proj4text (p, 1, "99999 +x_0=500000 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Hawaii zone 4\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",21.83333333333333],"); add_srs_wkt (p, 8, "PARAMETER[\"central_meridian\",-159.5],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",0.99999],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"26964\"]]"); p = add_epsg_def (filter, first, last, 26965, "epsg", 26965, "NAD83 / Hawaii zone 5"); add_proj4text (p, 0, "+proj=tmerc +lat_0=21.66666666666667 +lon_0=-160.1666666"); add_proj4text (p, 1, "666667 +k=1 +x_0=500000 +y_0=0 +datum=NAD83 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Hawaii zone 5\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",21.66666666666667],"); add_srs_wkt (p, 8, "PARAMETER[\"central_meridian\",-160.1666666666667],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",500"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 12, "NORTH],AUTHORITY[\"EPSG\",\"26965\"]]"); p = add_epsg_def (filter, first, last, 26966, "epsg", 26966, "NAD83 / Georgia East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=200000 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Georgia East\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",30],PARAMETER[\"centr"); add_srs_wkt (p, 8, "al_meridian\",-82.16666666666667],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 12, "RITY[\"EPSG\",\"26966\"]]"); p = add_epsg_def (filter, first, last, 26967, "epsg", 26967, "NAD83 / Georgia West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=700000 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Georgia West\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",30],PARAMETER[\"centr"); add_srs_wkt (p, 8, "al_meridian\",-84.16666666666667],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",0.9999],PARAMETER[\"false_easting\",700000],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 12, "RITY[\"EPSG\",\"26967\"]]"); p = add_epsg_def (filter, first, last, 26968, "epsg", 26968, "NAD83 / Idaho East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666"); add_proj4text (p, 1, "666667 +k=0.9999473679999999 +x_0=200000 +y_0=0 +datum=N"); add_proj4text (p, 2, "AD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Idaho East\",GEOGCS[\"NAD83\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",41.66666666666666],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",-112.1666666666667],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",0.999947368],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",200000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI"); add_srs_wkt (p, 12, "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26968\"]]"); p = add_epsg_def (filter, first, last, 26969, "epsg", 26969, "NAD83 / Idaho Central"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.99"); add_proj4text (p, 1, "99473679999999 +x_0=500000 +y_0=0 +datum=NAD83 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Idaho Central\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",41.66666666666666],"); add_srs_wkt (p, 8, "PARAMETER[\"central_meridian\",-114],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.999947368],PARAMETER[\"false_easting\",500000]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 11, "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"26969\"]]"); p = add_epsg_def (filter, first, last, 26970, "epsg", 26970, "NAD83 / Idaho West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0"); add_proj4text (p, 1, ".999933333 +x_0=800000 +y_0=0 +datum=NAD83 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Idaho West\",GEOGCS[\"NAD83\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",41.66666666666666],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",-115.75],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",0.999933333],PARAMETER[\"false_easting\",800000"); add_srs_wkt (p, 10, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); add_srs_wkt (p, 12, "TH],AUTHORITY[\"EPSG\",\"26970\"]]"); p = add_epsg_def (filter, first, last, 26971, "epsg", 26971, "NAD83 / Illinois East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333"); add_proj4text (p, 1, "333333 +k=0.9999749999999999 +x_0=300000 +y_0=0 +datum=N"); add_proj4text (p, 2, "AD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Illinois East\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",36.66666666666666],"); add_srs_wkt (p, 8, "PARAMETER[\"central_meridian\",-88.33333333333333],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",0.999975],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",300000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS"); add_srs_wkt (p, 12, "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26971\"]]"); p = add_epsg_def (filter, first, last, 26972, "epsg", 26972, "NAD83 / Illinois West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666"); add_proj4text (p, 1, "666667 +k=0.999941177 +x_0=700000 +y_0=0 +datum=NAD83 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Illinois West\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",36.66666666666666],"); add_srs_wkt (p, 8, "PARAMETER[\"central_meridian\",-90.16666666666667],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",0.999941177],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",700000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A"); add_srs_wkt (p, 12, "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26972\"]]"); p = add_epsg_def (filter, first, last, 26973, "epsg", 26973, "NAD83 / Indiana East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.9"); add_proj4text (p, 1, "99966667 +x_0=100000 +y_0=250000 +datum=NAD83 +units=m +"); add_proj4text (p, 2, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Indiana East\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",37.5],PARAMETER[\"cen"); add_srs_wkt (p, 8, "tral_meridian\",-85.66666666666667],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",0.999966667],PARAMETER[\"false_easting\",100000],"); add_srs_wkt (p, 10, "PARAMETER[\"false_northing\",250000],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 12, "NORTH],AUTHORITY[\"EPSG\",\"26973\"]]"); p = add_epsg_def (filter, first, last, 26974, "epsg", 26974, "NAD83 / Indiana West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.9"); add_proj4text (p, 1, "99966667 +x_0=900000 +y_0=250000 +datum=NAD83 +units=m +"); add_proj4text (p, 2, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Indiana West\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",37.5],PARAMETER[\"cen"); add_srs_wkt (p, 8, "tral_meridian\",-87.08333333333333],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",0.999966667],PARAMETER[\"false_easting\",900000],"); add_srs_wkt (p, 10, "PARAMETER[\"false_northing\",250000],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 12, "NORTH],AUTHORITY[\"EPSG\",\"26974\"]]"); p = add_epsg_def (filter, first, last, 26975, "epsg", 26975, "NAD83 / Iowa North"); add_proj4text (p, 0, "+proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666"); add_proj4text (p, 1, "667 +lat_0=41.5 +lon_0=-93.5 +x_0=1500000 +y_0=1000000 +"); add_proj4text (p, 2, "datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Iowa North\",GEOGCS[\"NAD83\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Con"); add_srs_wkt (p, 7, "ic_2SP\"],PARAMETER[\"standard_parallel_1\",43.266666666"); add_srs_wkt (p, 8, "66667],PARAMETER[\"standard_parallel_2\",42.066666666666"); add_srs_wkt (p, 9, "67],PARAMETER[\"latitude_of_origin\",41.5],PARAMETER[\"c"); add_srs_wkt (p, 10, "entral_meridian\",-93.5],PARAMETER[\"false_easting\",150"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre"); add_srs_wkt (p, 12, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS"); add_srs_wkt (p, 13, "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26975\"]]"); p = add_epsg_def (filter, first, last, 26976, "epsg", 26976, "NAD83 / Iowa South"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666"); add_proj4text (p, 1, "667 +lat_0=40 +lon_0=-93.5 +x_0=500000 +y_0=0 +datum=NAD"); add_proj4text (p, 2, "83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Iowa South\",GEOGCS[\"NAD83\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Con"); add_srs_wkt (p, 7, "ic_2SP\"],PARAMETER[\"standard_parallel_1\",41.783333333"); add_srs_wkt (p, 8, "33333],PARAMETER[\"standard_parallel_2\",40.616666666666"); add_srs_wkt (p, 9, "67],PARAMETER[\"latitude_of_origin\",40],PARAMETER[\"cen"); add_srs_wkt (p, 10, "tral_meridian\",-93.5],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 11, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 13, "RTH],AUTHORITY[\"EPSG\",\"26976\"]]"); p = add_epsg_def (filter, first, last, 26977, "epsg", 26977, "NAD83 / Kansas North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666"); add_proj4text (p, 1, "667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=400000 +y_0"); add_proj4text (p, 2, "=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Kansas North\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co"); add_srs_wkt (p, 7, "nic_2SP\"],PARAMETER[\"standard_parallel_1\",39.78333333"); add_srs_wkt (p, 8, "333333],PARAMETER[\"standard_parallel_2\",38.71666666666"); add_srs_wkt (p, 9, "667],PARAMETER[\"latitude_of_origin\",38.33333333333334]"); add_srs_wkt (p, 10, ",PARAMETER[\"central_meridian\",-98],PARAMETER[\"false_e"); add_srs_wkt (p, 11, "asting\",400000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 12, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 13, ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26977\"]]"); p = add_epsg_def (filter, first, last, 26978, "epsg", 26978, "NAD83 / Kansas South"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666"); add_proj4text (p, 1, "667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=400000 +y"); add_proj4text (p, 2, "_0=400000 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Kansas South\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co"); add_srs_wkt (p, 7, "nic_2SP\"],PARAMETER[\"standard_parallel_1\",38.56666666"); add_srs_wkt (p, 8, "666667],PARAMETER[\"standard_parallel_2\",37.26666666666"); add_srs_wkt (p, 9, "667],PARAMETER[\"latitude_of_origin\",36.66666666666666]"); add_srs_wkt (p, 10, ",PARAMETER[\"central_meridian\",-98.5],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",400000],PARAMETER[\"false_northing\",400000],"); add_srs_wkt (p, 12, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 13, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26978\"]]"); p = add_epsg_def (filter, first, last, 26979, "epsg", 26979, "NAD83 / Kentucky North (deprecated)"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.96666666666667 +lat_2=37.96666666666"); add_proj4text (p, 1, "667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000 +y_0=0 +datum="); add_proj4text (p, 2, "NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Kentucky North (deprecated)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"G"); add_srs_wkt (p, 2, "RS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"701"); add_srs_wkt (p, 3, "9\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 7, "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 8, "_1\",37.96666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",37.96666666666667],PARAMETER[\"latitude_of_origin\",37."); add_srs_wkt (p, 10, "5],PARAMETER[\"central_meridian\",-84.25],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 12, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); add_srs_wkt (p, 13, "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26979\"]]"); p = add_epsg_def (filter, first, last, 26980, "epsg", 26980, "NAD83 / Kentucky South"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.93333333333333 +lat_2=36.73333333333"); add_proj4text (p, 1, "333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000 +"); add_proj4text (p, 2, "y_0=500000 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Kentucky South\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 7, "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",37.93333"); add_srs_wkt (p, 8, "333333333],PARAMETER[\"standard_parallel_2\",36.73333333"); add_srs_wkt (p, 9, "333333],PARAMETER[\"latitude_of_origin\",36.333333333333"); add_srs_wkt (p, 10, "34],PARAMETER[\"central_meridian\",-85.75],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_easting\",500000],PARAMETER[\"false_northing\",5000"); add_srs_wkt (p, 12, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 13, "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26980"); add_srs_wkt (p, 14, "\"]]"); p = add_epsg_def (filter, first, last, 26981, "epsg", 26981, "NAD83 / Louisiana North"); add_proj4text (p, 0, "+proj=lcc +lat_1=32.66666666666666 +lat_2=31.16666666666"); add_proj4text (p, 1, "667 +lat_0=30.5 +lon_0=-92.5 +x_0=1000000 +y_0=0 +datum="); add_proj4text (p, 2, "NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Louisiana North\",GEOGCS[\"NAD83\",DATU"); add_srs_wkt (p, 1, "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63"); add_srs_wkt (p, 2, "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8"); add_srs_wkt (p, 3, "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 7, "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",32.6666"); add_srs_wkt (p, 8, "6666666666],PARAMETER[\"standard_parallel_2\",31.1666666"); add_srs_wkt (p, 9, "6666667],PARAMETER[\"latitude_of_origin\",30.5],PARAMETE"); add_srs_wkt (p, 10, "R[\"central_meridian\",-92.5],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",1000000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Y\",NORTH],AUTHORITY[\"EPSG\",\"26981\"]]"); p = add_epsg_def (filter, first, last, 26982, "epsg", 26982, "NAD83 / Louisiana South"); add_proj4text (p, 0, "+proj=lcc +lat_1=30.7 +lat_2=29.3 +lat_0=28.5 +lon_0=-91"); add_proj4text (p, 1, ".33333333333333 +x_0=1000000 +y_0=0 +datum=NAD83 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Louisiana South\",GEOGCS[\"NAD83\",DATU"); add_srs_wkt (p, 1, "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63"); add_srs_wkt (p, 2, "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8"); add_srs_wkt (p, 3, "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 7, "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",30.7],P"); add_srs_wkt (p, 8, "ARAMETER[\"standard_parallel_2\",29.3],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",28.5],PARAMETER[\"central_meridian\",-91"); add_srs_wkt (p, 10, ".33333333333333],PARAMETER[\"false_easting\",1000000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"26982\"]]"); p = add_epsg_def (filter, first, last, 26983, "epsg", 26983, "NAD83 / Maine East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9"); add_proj4text (p, 1, "999 +x_0=300000 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Maine East\",GEOGCS[\"NAD83\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",43.66666666666666],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",-68.5],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",0.9999],PARAMETER[\"false_easting\",300000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"26983\"]]"); p = add_epsg_def (filter, first, last, 26984, "epsg", 26984, "NAD83 / Maine West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666"); add_proj4text (p, 1, "666667 +k=0.999966667 +x_0=900000 +y_0=0 +datum=NAD83 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Maine West\",GEOGCS[\"NAD83\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",42.83333333333334],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",-70.16666666666667],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",0.999966667],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",900000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI"); add_srs_wkt (p, 12, "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26984\"]]"); p = add_epsg_def (filter, first, last, 26985, "epsg", 26985, "NAD83 / Maryland"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.45 +lat_2=38.3 +lat_0=37.66666666666"); add_proj4text (p, 1, "666 +lon_0=-77 +x_0=400000 +y_0=0 +datum=NAD83 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Maryland\",GEOGCS[\"NAD83\",DATUM[\"Nor"); add_srs_wkt (p, 1, "th_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 2, "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 3, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Conic"); add_srs_wkt (p, 7, "_2SP\"],PARAMETER[\"standard_parallel_1\",39.45],PARAMET"); add_srs_wkt (p, 8, "ER[\"standard_parallel_2\",38.3],PARAMETER[\"latitude_of"); add_srs_wkt (p, 9, "_origin\",37.66666666666666],PARAMETER[\"central_meridia"); add_srs_wkt (p, 10, "n\",-77],PARAMETER[\"false_easting\",400000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"26985\"]]"); p = add_epsg_def (filter, first, last, 26986, "epsg", 26986, "NAD83 / Massachusetts Mainland"); add_proj4text (p, 0, "+proj=lcc +lat_1=42.68333333333333 +lat_2=41.71666666666"); add_proj4text (p, 1, "667 +lat_0=41 +lon_0=-71.5 +x_0=200000 +y_0=750000 +datu"); add_proj4text (p, 2, "m=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Massachusetts Mainland\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 7, "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",4"); add_srs_wkt (p, 8, "2.68333333333333],PARAMETER[\"standard_parallel_2\",41.7"); add_srs_wkt (p, 9, "1666666666667],PARAMETER[\"latitude_of_origin\",41],PARA"); add_srs_wkt (p, 10, "METER[\"central_meridian\",-71.5],PARAMETER[\"false_east"); add_srs_wkt (p, 11, "ing\",200000],PARAMETER[\"false_northing\",750000],UNIT["); add_srs_wkt (p, 12, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAS"); add_srs_wkt (p, 13, "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26986\"]]"); p = add_epsg_def (filter, first, last, 26987, "epsg", 26987, "NAD83 / Massachusetts Island"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.48333333333333 +lat_2=41.28333333333"); add_proj4text (p, 1, "333 +lat_0=41 +lon_0=-70.5 +x_0=500000 +y_0=0 +datum=NAD"); add_proj4text (p, 2, "83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Massachusetts Island\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 7, "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",41"); add_srs_wkt (p, 8, ".48333333333333],PARAMETER[\"standard_parallel_2\",41.28"); add_srs_wkt (p, 9, "333333333333],PARAMETER[\"latitude_of_origin\",41],PARAM"); add_srs_wkt (p, 10, "ETER[\"central_meridian\",-70.5],PARAMETER[\"false_easti"); add_srs_wkt (p, 11, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 12, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI"); add_srs_wkt (p, 13, "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26987\"]]"); p = add_epsg_def (filter, first, last, 26988, "epsg", 26988, "NAD83 / Michigan North"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.08333333333334 +lat_2=45.48333333333"); add_proj4text (p, 1, "333 +lat_0=44.78333333333333 +lon_0=-87 +x_0=8000000 +y_"); add_proj4text (p, 2, "0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Michigan North\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 7, "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",47.08333"); add_srs_wkt (p, 8, "333333334],PARAMETER[\"standard_parallel_2\",45.48333333"); add_srs_wkt (p, 9, "333333],PARAMETER[\"latitude_of_origin\",44.783333333333"); add_srs_wkt (p, 10, "33],PARAMETER[\"central_meridian\",-87],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_easting\",8000000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 12, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",E"); add_srs_wkt (p, 13, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26988\"]]"); p = add_epsg_def (filter, first, last, 26989, "epsg", 26989, "NAD83 / Michigan Central"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.7 +lat_2=44.18333333333333 +lat_0=43"); add_proj4text (p, 1, ".31666666666667 +lon_0=-84.36666666666666 +x_0=6000000 +"); add_proj4text (p, 2, "y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Michigan Central\",GEOGCS[\"NAD83\",DAT"); add_srs_wkt (p, 1, "UM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6"); add_srs_wkt (p, 2, "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS"); add_srs_wkt (p, 3, "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 7, "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",45.7],P"); add_srs_wkt (p, 8, "ARAMETER[\"standard_parallel_2\",44.18333333333333],PARA"); add_srs_wkt (p, 9, "METER[\"latitude_of_origin\",43.31666666666667],PARAMETE"); add_srs_wkt (p, 10, "R[\"central_meridian\",-84.36666666666666],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_easting\",6000000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 13, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26989\"]]"); p = add_epsg_def (filter, first, last, 26990, "epsg", 26990, "NAD83 / Michigan South"); add_proj4text (p, 0, "+proj=lcc +lat_1=43.66666666666666 +lat_2=42.1 +lat_0=41"); add_proj4text (p, 1, ".5 +lon_0=-84.36666666666666 +x_0=4000000 +y_0=0 +datum="); add_proj4text (p, 2, "NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Michigan South\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 7, "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",43.66666"); add_srs_wkt (p, 8, "666666666],PARAMETER[\"standard_parallel_2\",42.1],PARAM"); add_srs_wkt (p, 9, "ETER[\"latitude_of_origin\",41.5],PARAMETER[\"central_me"); add_srs_wkt (p, 10, "ridian\",-84.36666666666666],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",4000000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Y\",NORTH],AUTHORITY[\"EPSG\",\"26990\"]]"); p = add_epsg_def (filter, first, last, 26991, "epsg", 26991, "NAD83 / Minnesota North"); add_proj4text (p, 0, "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333"); add_proj4text (p, 1, "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000 +y"); add_proj4text (p, 2, "_0=100000 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Minnesota North\",GEOGCS[\"NAD83\",DATU"); add_srs_wkt (p, 1, "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63"); add_srs_wkt (p, 2, "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8"); add_srs_wkt (p, 3, "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 7, "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",48.6333"); add_srs_wkt (p, 8, "3333333333],PARAMETER[\"standard_parallel_2\",47.0333333"); add_srs_wkt (p, 9, "3333333],PARAMETER[\"latitude_of_origin\",46.5],PARAMETE"); add_srs_wkt (p, 10, "R[\"central_meridian\",-93.1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",800000],PARAMETER[\"false_northing\",100000],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 13, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26991\"]]"); p = add_epsg_def (filter, first, last, 26992, "epsg", 26992, "NAD83 / Minnesota Central"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=4"); add_proj4text (p, 1, "5 +lon_0=-94.25 +x_0=800000 +y_0=100000 +datum=NAD83 +un"); add_proj4text (p, 2, "its=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Minnesota Central\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor"); add_srs_wkt (p, 7, "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",47.05"); add_srs_wkt (p, 8, "],PARAMETER[\"standard_parallel_2\",45.61666666666667],P"); add_srs_wkt (p, 9, "ARAMETER[\"latitude_of_origin\",45],PARAMETER[\"central_"); add_srs_wkt (p, 10, "meridian\",-94.25],PARAMETER[\"false_easting\",800000],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",100000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); add_srs_wkt (p, 13, "ORTH],AUTHORITY[\"EPSG\",\"26992\"]]"); p = add_epsg_def (filter, first, last, 26993, "epsg", 26993, "NAD83 / Minnesota South"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333"); add_proj4text (p, 1, "333 +lat_0=43 +lon_0=-94 +x_0=800000 +y_0=100000 +datum="); add_proj4text (p, 2, "NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Minnesota South\",GEOGCS[\"NAD83\",DATU"); add_srs_wkt (p, 1, "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63"); add_srs_wkt (p, 2, "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8"); add_srs_wkt (p, 3, "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 7, "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",45.2166"); add_srs_wkt (p, 8, "6666666667],PARAMETER[\"standard_parallel_2\",43.7833333"); add_srs_wkt (p, 9, "3333333],PARAMETER[\"latitude_of_origin\",43],PARAMETER["); add_srs_wkt (p, 10, "\"central_meridian\",-94],PARAMETER[\"false_easting\",80"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",100000],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Y\",NORTH],AUTHORITY[\"EPSG\",\"26993\"]]"); p = add_epsg_def (filter, first, last, 26994, "epsg", 26994, "NAD83 / Mississippi East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.9"); add_proj4text (p, 1, "9995 +x_0=300000 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Mississippi East\",GEOGCS[\"NAD83\",DAT"); add_srs_wkt (p, 1, "UM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6"); add_srs_wkt (p, 2, "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS"); add_srs_wkt (p, 3, "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor\"],PARAMETER[\"latitude_of_origin\",29.5],PARAMETER["); add_srs_wkt (p, 8, "\"central_meridian\",-88.83333333333333],PARAMETER[\"sca"); add_srs_wkt (p, 9, "le_factor\",0.99995],PARAMETER[\"false_easting\",300000]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 11, "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"26994\"]]"); p = add_epsg_def (filter, first, last, 26995, "epsg", 26995, "NAD83 / Mississippi West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.9"); add_proj4text (p, 1, "9995 +x_0=700000 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Mississippi West\",GEOGCS[\"NAD83\",DAT"); add_srs_wkt (p, 1, "UM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6"); add_srs_wkt (p, 2, "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS"); add_srs_wkt (p, 3, "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor\"],PARAMETER[\"latitude_of_origin\",29.5],PARAMETER["); add_srs_wkt (p, 8, "\"central_meridian\",-90.33333333333333],PARAMETER[\"sca"); add_srs_wkt (p, 9, "le_factor\",0.99995],PARAMETER[\"false_easting\",700000]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 11, "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"26995\"]]"); p = add_epsg_def (filter, first, last, 26996, "epsg", 26996, "NAD83 / Missouri East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-90.5 +k=0.9"); add_proj4text (p, 1, "99933333 +x_0=250000 +y_0=0 +datum=NAD83 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Missouri East\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",35.83333333333334],"); add_srs_wkt (p, 8, "PARAMETER[\"central_meridian\",-90.5],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",0.999933333],PARAMETER[\"false_easting\",250000"); add_srs_wkt (p, 10, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); add_srs_wkt (p, 12, "TH],AUTHORITY[\"EPSG\",\"26996\"]]"); p = add_epsg_def (filter, first, last, 26997, "epsg", 26997, "NAD83 / Missouri Central"); add_proj4text (p, 0, "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-92.5 +k=0.9"); add_proj4text (p, 1, "99933333 +x_0=500000 +y_0=0 +datum=NAD83 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Missouri Central\",GEOGCS[\"NAD83\",DAT"); add_srs_wkt (p, 1, "UM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6"); add_srs_wkt (p, 2, "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS"); add_srs_wkt (p, 3, "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor\"],PARAMETER[\"latitude_of_origin\",35.8333333333333"); add_srs_wkt (p, 8, "4],PARAMETER[\"central_meridian\",-92.5],PARAMETER[\"sca"); add_srs_wkt (p, 9, "le_factor\",0.999933333],PARAMETER[\"false_easting\",500"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 12, "NORTH],AUTHORITY[\"EPSG\",\"26997\"]]"); p = add_epsg_def (filter, first, last, 26998, "epsg", 26998, "NAD83 / Missouri West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36.16666666666666 +lon_0=-94.5 +k=0.9"); add_proj4text (p, 1, "99941177 +x_0=850000 +y_0=0 +datum=NAD83 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Missouri West\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",36.16666666666666],"); add_srs_wkt (p, 8, "PARAMETER[\"central_meridian\",-94.5],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",0.999941177],PARAMETER[\"false_easting\",850000"); add_srs_wkt (p, 10, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); add_srs_wkt (p, 12, "TH],AUTHORITY[\"EPSG\",\"26998\"]]"); p = add_epsg_def (filter, first, last, 27037, "epsg", 27037, "Nahrwan 1967 / UTM zone 37N"); add_proj4text (p, 0, "+proj=utm +zone=37 +ellps=clrk80 +towgs84=-243,-192,477,"); add_proj4text (p, 1, "0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Nahrwan 1967 / UTM zone 37N\",GEOGCS[\"Nahrwan "); add_srs_wkt (p, 1, "1967\",DATUM[\"Nahrwan_1967\",SPHEROID[\"Clarke 1880 (RG"); add_srs_wkt (p, 2, "S)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],T"); add_srs_wkt (p, 3, "OWGS84[-243,-192,477,0,0,0,0],AUTHORITY[\"EPSG\",\"6270\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4270\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, "ARAMETER[\"central_meridian\",39],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"27037\"]]"); p = add_epsg_def (filter, first, last, 27038, "epsg", 27038, "Nahrwan 1967 / UTM zone 38N"); add_proj4text (p, 0, "+proj=utm +zone=38 +ellps=clrk80 +towgs84=-243,-192,477,"); add_proj4text (p, 1, "0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Nahrwan 1967 / UTM zone 38N\",GEOGCS[\"Nahrwan "); add_srs_wkt (p, 1, "1967\",DATUM[\"Nahrwan_1967\",SPHEROID[\"Clarke 1880 (RG"); add_srs_wkt (p, 2, "S)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],T"); add_srs_wkt (p, 3, "OWGS84[-243,-192,477,0,0,0,0],AUTHORITY[\"EPSG\",\"6270\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4270\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, "ARAMETER[\"central_meridian\",45],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"27038\"]]"); p = add_epsg_def (filter, first, last, 27039, "epsg", 27039, "Nahrwan 1967 / UTM zone 39N"); add_proj4text (p, 0, "+proj=utm +zone=39 +ellps=clrk80 +towgs84=-243,-192,477,"); add_proj4text (p, 1, "0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Nahrwan 1967 / UTM zone 39N\",GEOGCS[\"Nahrwan "); add_srs_wkt (p, 1, "1967\",DATUM[\"Nahrwan_1967\",SPHEROID[\"Clarke 1880 (RG"); add_srs_wkt (p, 2, "S)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],T"); add_srs_wkt (p, 3, "OWGS84[-243,-192,477,0,0,0,0],AUTHORITY[\"EPSG\",\"6270\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4270\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, "ARAMETER[\"central_meridian\",51],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"27039\"]]"); p = add_epsg_def (filter, first, last, 27040, "epsg", 27040, "Nahrwan 1967 / UTM zone 40N"); add_proj4text (p, 0, "+proj=utm +zone=40 +ellps=clrk80 +towgs84=-243,-192,477,"); add_proj4text (p, 1, "0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Nahrwan 1967 / UTM zone 40N\",GEOGCS[\"Nahrwan "); add_srs_wkt (p, 1, "1967\",DATUM[\"Nahrwan_1967\",SPHEROID[\"Clarke 1880 (RG"); add_srs_wkt (p, 2, "S)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],T"); add_srs_wkt (p, 3, "OWGS84[-243,-192,477,0,0,0,0],AUTHORITY[\"EPSG\",\"6270\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4270\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, "ARAMETER[\"central_meridian\",57],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"27040\"]]"); p = add_epsg_def (filter, first, last, 27120, "epsg", 27120, "Naparima 1972 / UTM zone 20N"); add_proj4text (p, 0, "+proj=utm +zone=20 +ellps=intl +towgs84=-10,375,165,0,0,"); add_proj4text (p, 1, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Naparima 1972 / UTM zone 20N\",GEOGCS[\"Naparim"); add_srs_wkt (p, 1, "a 1972\",DATUM[\"Naparima_1972\",SPHEROID[\"Internationa"); add_srs_wkt (p, 2, "l 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS"); add_srs_wkt (p, 3, "84[-10,375,165,0,0,0,0],AUTHORITY[\"EPSG\",\"6271\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AUTHORITY[\"EPSG\",\"4271\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-63],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"27120\"]]"); p = add_epsg_def (filter, first, last, 27200, "epsg", 27200, "NZGD49 / New Zealand Map Grid"); add_proj4text (p, 0, "+proj=nzmg +lat_0=-41 +lon_0=173 +x_0=2510000 +y_0=60231"); add_proj4text (p, 1, "50 +datum=nzgd49 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / New Zealand Map Grid\",GEOGCS[\"NZGD49"); add_srs_wkt (p, 1, "\",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\""); add_srs_wkt (p, 2, "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "22\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.599"); add_srs_wkt (p, 4, "3],AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 6, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4272\"]],PROJECTION[\"New_Zealand_Map_Grid\"],PARAMET"); add_srs_wkt (p, 8, "ER[\"latitude_of_origin\",-41],PARAMETER[\"central_merid"); add_srs_wkt (p, 9, "ian\",173],PARAMETER[\"false_easting\",2510000],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_northing\",6023150],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 12, "ing\",NORTH],AUTHORITY[\"EPSG\",\"27200\"]]"); p = add_epsg_def (filter, first, last, 27205, "epsg", 27205, "NZGD49 / Mount Eden Circuit"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-36.87986527777778 +lon_0=174.7643393"); add_proj4text (p, 1, "611111 +k=0.9999 +x_0=300000 +y_0=700000 +datum=nzgd49 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / Mount Eden Circuit\",GEOGCS[\"NZGD49\""); add_srs_wkt (p, 1, ",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"In"); add_srs_wkt (p, 2, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, "\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",-36.87986527777778],PARAMETER[\""); add_srs_wkt (p, 9, "central_meridian\",174.7643393611111],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9999],PARAMETER[\"false_easting\",300000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",700000],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 12, "RITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Easting\",EAST],AUTHORITY[\"EPSG\",\"27205\"]]"); p = add_epsg_def (filter, first, last, 27206, "epsg", 27206, "NZGD49 / Bay of Plenty Circuit"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-37.76124980555556 +lon_0=176.4661972"); add_proj4text (p, 1, "5 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units=m +n"); add_proj4text (p, 2, "o_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / Bay of Plenty Circuit\",GEOGCS[\"NZGD4"); add_srs_wkt (p, 1, "9\",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\""); add_srs_wkt (p, 2, "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "22\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.599"); add_srs_wkt (p, 4, "3],AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 6, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 8, "R[\"latitude_of_origin\",-37.76124980555556],PARAMETER[\""); add_srs_wkt (p, 9, "central_meridian\",176.46619725],PARAMETER[\"scale_facto"); add_srs_wkt (p, 10, "r\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"27206\"]]"); p = add_epsg_def (filter, first, last, 27207, "epsg", 27207, "NZGD49 / Poverty Bay Circuit"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-38.62470277777778 +lon_0=177.8856362"); add_proj4text (p, 1, "777778 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / Poverty Bay Circuit\",GEOGCS[\"NZGD49\""); add_srs_wkt (p, 1, ",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"In"); add_srs_wkt (p, 2, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, "\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",-38.62470277777778],PARAMETER[\""); add_srs_wkt (p, 9, "central_meridian\",177.8856362777778],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",1],PARAMETER[\"false_easting\",300000],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_northing\",700000],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"East"); add_srs_wkt (p, 13, "ing\",EAST],AUTHORITY[\"EPSG\",\"27207\"]]"); p = add_epsg_def (filter, first, last, 27208, "epsg", 27208, "NZGD49 / Hawkes Bay Circuit"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-39.65092930555556 +lon_0=176.6736805"); add_proj4text (p, 1, "277778 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / Hawkes Bay Circuit\",GEOGCS[\"NZGD49\""); add_srs_wkt (p, 1, ",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"In"); add_srs_wkt (p, 2, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, "\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",-39.65092930555556],PARAMETER[\""); add_srs_wkt (p, 9, "central_meridian\",176.6736805277778],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",1],PARAMETER[\"false_easting\",300000],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_northing\",700000],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"East"); add_srs_wkt (p, 13, "ing\",EAST],AUTHORITY[\"EPSG\",\"27208\"]]"); p = add_epsg_def (filter, first, last, 27209, "epsg", 27209, "NZGD49 / Taranaki Circuit"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-39.13575830555556 +lon_0=174.2280117"); add_proj4text (p, 1, "5 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units=m +n"); add_proj4text (p, 2, "o_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / Taranaki Circuit\",GEOGCS[\"NZGD49\",D"); add_srs_wkt (p, 1, "ATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Inte"); add_srs_wkt (p, 2, "rnational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); add_srs_wkt (p, 3, "]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",-39.13575830555556],PARAMETER[\"cen"); add_srs_wkt (p, 9, "tral_meridian\",174.22801175],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EA"); add_srs_wkt (p, 13, "ST],AUTHORITY[\"EPSG\",\"27209\"]]"); p = add_epsg_def (filter, first, last, 27210, "epsg", 27210, "NZGD49 / Tuhirangi Circuit"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-39.51247038888889 +lon_0=175.6400368"); add_proj4text (p, 1, "055556 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / Tuhirangi Circuit\",GEOGCS[\"NZGD49\","); add_srs_wkt (p, 1, "DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Int"); add_srs_wkt (p, 2, "ernational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); add_srs_wkt (p, 3, "]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",-39.51247038888889],PARAMETER[\"cen"); add_srs_wkt (p, 9, "tral_meridian\",175.6400368055556],PARAMETER[\"scale_fac"); add_srs_wkt (p, 10, "tor\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"27210\"]]"); p = add_epsg_def (filter, first, last, 27211, "epsg", 27211, "NZGD49 / Wanganui Circuit"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-40.24194713888889 +lon_0=175.4880996"); add_proj4text (p, 1, "111111 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / Wanganui Circuit\",GEOGCS[\"NZGD49\",D"); add_srs_wkt (p, 1, "ATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Inte"); add_srs_wkt (p, 2, "rnational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); add_srs_wkt (p, 3, "]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",-40.24194713888889],PARAMETER[\"cen"); add_srs_wkt (p, 9, "tral_meridian\",175.4880996111111],PARAMETER[\"scale_fac"); add_srs_wkt (p, 10, "tor\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"27211\"]]"); p = add_epsg_def (filter, first, last, 27212, "epsg", 27212, "NZGD49 / Wairarapa Circuit"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-40.92553263888889 +lon_0=175.6473496"); add_proj4text (p, 1, "666667 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / Wairarapa Circuit\",GEOGCS[\"NZGD49\","); add_srs_wkt (p, 1, "DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Int"); add_srs_wkt (p, 2, "ernational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); add_srs_wkt (p, 3, "]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",-40.92553263888889],PARAMETER[\"cen"); add_srs_wkt (p, 9, "tral_meridian\",175.6473496666667],PARAMETER[\"scale_fac"); add_srs_wkt (p, 10, "tor\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"27212\"]]"); } #endif /* full EPSG initialization enabled/disabled */ libspatialite-4.1.1/src/srsinit/epsg_inlined_19.c0000664000175000017500000025235012163502133016670 00000000000000/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_19 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def (filter, first, last, 4071, "epsg", 4071, "Chua / UTM zone 23S"); add_proj4text (p, 0, "+proj=utm +zone=23 +south +ellps=intl +towgs84=-134,229,"); add_proj4text (p, 1, "-29,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Chua / UTM zone 23S\",GEOGCS[\"Chua\",DATUM[\"C"); add_srs_wkt (p, 1, "hua\",SPHEROID[\"International 1924\",6378388,297,AUTHOR"); add_srs_wkt (p, 2, "ITY[\"EPSG\",\"7022\"]],TOWGS84[-134,229,-29,0,0,0,0],AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"6224\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 6, "224\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 8, "45],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false"); add_srs_wkt (p, 9, "_easting\",500000],PARAMETER[\"false_northing\",10000000"); add_srs_wkt (p, 10, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 11, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"4071\"]]"); p = add_epsg_def (filter, first, last, 4075, "epsg", 4075, "SREF98"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"SREF98\",DATUM[\"Serbian_Reference_Network_1998"); add_srs_wkt (p, 1, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 2, "[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"1034\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4075\"]]"); p = add_epsg_def (filter, first, last, 4081, "epsg", 4081, "REGCAN95"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"REGCAN95\",DATUM[\"Red_Geodesica_de_Canarias_19"); add_srs_wkt (p, 1, "95\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"1035\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4081\"]]"); p = add_epsg_def (filter, first, last, 4082, "epsg", 4082, "REGCAN95 / UTM zone 27N"); add_proj4text (p, 0, "+proj=utm +zone=27 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"REGCAN95 / UTM zone 27N\",GEOGCS[\"REGCAN95\",D"); add_srs_wkt (p, 1, "ATUM[\"Red_Geodesica_de_Canarias_1995\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1035\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AUTHORITY[\"EPSG\",\"4081\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 7, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 8, "ETER[\"central_meridian\",-21],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"4082\"]]"); p = add_epsg_def (filter, first, last, 4083, "epsg", 4083, "REGCAN95 / UTM zone 28N"); add_proj4text (p, 0, "+proj=utm +zone=28 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"REGCAN95 / UTM zone 28N\",GEOGCS[\"REGCAN95\",D"); add_srs_wkt (p, 1, "ATUM[\"Red_Geodesica_de_Canarias_1995\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1035\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AUTHORITY[\"EPSG\",\"4081\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 7, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 8, "ETER[\"central_meridian\",-15],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"4083\"]]"); p = add_epsg_def (filter, first, last, 4087, "epsg", 4087, "WGS 84 / World Equidistant Cylindrical"); add_proj4text (p, 0, "+proj=eqc +lat_ts=0 +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +dat"); add_proj4text (p, 1, "um=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / World Equidistant Cylindrical\",GEOGCS"); add_srs_wkt (p, 1, "[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",63781"); add_srs_wkt (p, 2, "37,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]]"); add_srs_wkt (p, 6, ",PROJECTION[\"Equirectangular\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 7, "_origin\",0],PARAMETER[\"central_meridian\",0],PARAMETER"); add_srs_wkt (p, 8, "[\"false_easting\",0],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 9, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); add_srs_wkt (p, 10, "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"4087\"]]"); p = add_epsg_def (filter, first, last, 4088, "epsg", 4088, "World Equidistant Cylindrical (Sphere)"); add_proj4text (p, 0, "+proj=eqc +lat_ts=0 +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +a=6"); add_proj4text (p, 1, "371007 +b=6371007 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"World Equidistant Cylindrical (Sphere)\",GEOGCS"); add_srs_wkt (p, 1, "[\"Unspecified datum based upon the GRS 1980 Authalic Sp"); add_srs_wkt (p, 2, "here\",DATUM[\"Not_specified_based_on_GRS_1980_Authalic_"); add_srs_wkt (p, 3, "Sphere\",SPHEROID[\"GRS 1980 Authalic Sphere\",6371007,0"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"7048\"]],AUTHORITY[\"EPSG\",\"6047"); add_srs_wkt (p, 5, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 6, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"9122\"]],AUTHORITY[\"EPSG\",\"4047\"]],PROJECTION[\"Eq"); add_srs_wkt (p, 8, "uirectangular\"],PARAMETER[\"latitude_of_origin\",0],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",0],PARAMETER[\"false_easting"); add_srs_wkt (p, 10, "\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"4088\"]]"); p = add_epsg_def (filter, first, last, 4093, "epsg", 4093, "ETRS89 / DKTM1"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=9 +k=0.99998 +x_0=200000 +y_"); add_proj4text (p, 1, "0=-5000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / DKTM1\",GEOGCS[\"ETRS89\",DATUM[\"Euro"); add_srs_wkt (p, 1, "pean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS "); add_srs_wkt (p, 2, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",9],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.99998],PARAMETER[\"false_easting\",200000],PARAMETER["); add_srs_wkt (p, 10, "\"false_northing\",-5000000],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 11, "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 12, "ng\",NORTH],AUTHORITY[\"EPSG\",\"4093\"]]"); p = add_epsg_def (filter, first, last, 4094, "epsg", 4094, "ETRS89 / DKTM2"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=10 +k=0.99998 +x_0=400000 +y"); add_proj4text (p, 1, "_0=-5000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / DKTM2\",GEOGCS[\"ETRS89\",DATUM[\"Euro"); add_srs_wkt (p, 1, "pean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS "); add_srs_wkt (p, 2, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",10],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.99998],PARAMETER[\"false_easting\",400000],PARAMETER["); add_srs_wkt (p, 10, "\"false_northing\",-5000000],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 11, "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 12, "ng\",NORTH],AUTHORITY[\"EPSG\",\"4094\"]]"); p = add_epsg_def (filter, first, last, 4095, "epsg", 4095, "ETRS89 / DKTM3"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=11.75 +k=0.99998 +x_0=600000"); add_proj4text (p, 1, " +y_0=-5000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 2, "s=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / DKTM3\",GEOGCS[\"ETRS89\",DATUM[\"Euro"); add_srs_wkt (p, 1, "pean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS "); add_srs_wkt (p, 2, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",11.75],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",0.99998],PARAMETER[\"false_easting\",600000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",-5000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 11, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 12, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"4095\"]]"); p = add_epsg_def (filter, first, last, 4096, "epsg", 4096, "ETRS89 / DKTM4"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=800000 +y_0=-50"); add_proj4text (p, 1, "00000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / DKTM4\",GEOGCS[\"ETRS89\",DATUM[\"Euro"); add_srs_wkt (p, 1, "pean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS "); add_srs_wkt (p, 2, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",15],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",1],PARAMETER[\"false_easting\",800000],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_northing\",-5000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); add_srs_wkt (p, 12, "ORTH],AUTHORITY[\"EPSG\",\"4096\"]]"); p = add_epsg_def (filter, first, last, 4120, "epsg", 4120, "Greek"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Greek\",DATUM[\"Greek\",SPHEROID[\"Bessel 1841\""); add_srs_wkt (p, 1, ",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],A"); add_srs_wkt (p, 2, "UTHORITY[\"EPSG\",\"6120\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 4, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "4120\"]]"); p = add_epsg_def (filter, first, last, 4121, "epsg", 4121, "GGRS87"); add_proj4text (p, 0, "+proj=longlat +datum=GGRS87 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"GGRS87\",DATUM[\"Greek_Geodetic_Reference_Syste"); add_srs_wkt (p, 1, "m_1987\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7019\"]],TOWGS84[-199.87,74.79,246.62,"); add_srs_wkt (p, 3, "0,0,0,0],AUTHORITY[\"EPSG\",\"6121\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 4, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 5, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"4121\"]]"); p = add_epsg_def (filter, first, last, 4122, "epsg", 4122, "ATS77"); add_proj4text (p, 0, "+proj=longlat +a=6378135 +b=6356750.304921594 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"ATS77\",DATUM[\"Average_Terrestrial_System_1977"); add_srs_wkt (p, 1, "\",SPHEROID[\"Average Terrestrial System 1977\",6378135,"); add_srs_wkt (p, 2, "298.257,AUTHORITY[\"EPSG\",\"7041\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6122\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4122\"]]"); p = add_epsg_def (filter, first, last, 4123, "epsg", 4123, "KKJ"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-96.062,-82.428,-121."); add_proj4text (p, 1, "753,4.801,0.345,-1.376,1.496 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"KKJ\",DATUM[\"Kartastokoordinaattijarjestelma_1"); add_srs_wkt (p, 1, "966\",SPHEROID[\"International 1924\",6378388,297,AUTHOR"); add_srs_wkt (p, 2, "ITY[\"EPSG\",\"7022\"]],TOWGS84[-96.062,-82.428,-121.753"); add_srs_wkt (p, 3, ",4.801,0.345,-1.376,1.496],AUTHORITY[\"EPSG\",\"6123\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AUTHORITY[\"EPSG\",\"4123\"]]"); p = add_epsg_def (filter, first, last, 4124, "epsg", 4124, "RT90"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +towgs84=414.1,41.3,603.1,-0"); add_proj4text (p, 1, ".855,2.141,-7.023,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"RT90\",DATUM[\"Rikets_koordinatsystem_1990\",SP"); add_srs_wkt (p, 1, "HEROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY"); add_srs_wkt (p, 2, "[\"EPSG\",\"7004\"]],TOWGS84[414.1,41.3,603.1,-0.855,2.1"); add_srs_wkt (p, 3, "41,-7.023,0],AUTHORITY[\"EPSG\",\"6124\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4124\"]]"); p = add_epsg_def (filter, first, last, 4125, "epsg", 4125, "Samboja"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +towgs84=-404.78,685.68,45.4"); add_proj4text (p, 1, "7,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Samboja\",DATUM[\"Samboja\",SPHEROID[\"Bessel 1"); add_srs_wkt (p, 1, "841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\""); add_srs_wkt (p, 2, "]],TOWGS84[-404.78,685.68,45.47,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"6125\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9108\"]],AUTHORITY[\"EPSG\",\"4125\"]]"); p = add_epsg_def (filter, first, last, 4126, "epsg", 4126, "LKS94 (ETRS89)"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"LKS94 (ETRS89)\",DATUM[\"Lithuania_1994_ETRS89\""); add_srs_wkt (p, 1, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"6126\"]],PRIMEM[\""); add_srs_wkt (p, 3, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 4, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9108\"]],AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"4126\"]]"); p = add_epsg_def (filter, first, last, 4127, "epsg", 4127, "Tete"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk66 +towgs84=219.315,168.975,-16"); add_proj4text (p, 1, "6.145,0.198,5.926,-2.356,-57.104 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Tete\",DATUM[\"Tete\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 1, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 2, "],TOWGS84[219.315,168.975,-166.145,0.198,5.926,-2.356,-5"); add_srs_wkt (p, 3, "7.104],AUTHORITY[\"EPSG\",\"6127\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 6, "SG\",\"4127\"]]"); p = add_epsg_def (filter, first, last, 4128, "epsg", 4128, "Madzansua"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk66 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Madzansua\",DATUM[\"Madzansua\",SPHEROID[\"Clar"); add_srs_wkt (p, 1, "ke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 2, ",\"7008\"]],AUTHORITY[\"EPSG\",\"6128\"]],PRIMEM[\"Green"); add_srs_wkt (p, 3, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 4, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"4128\"]]"); p = add_epsg_def (filter, first, last, 4129, "epsg", 4129, "Observatario"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk66 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Observatario\",DATUM[\"Observatario\",SPHEROID["); add_srs_wkt (p, 1, "\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6129\"]],PRIMEM[\""); add_srs_wkt (p, 3, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 4, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"4129\"]]"); p = add_epsg_def (filter, first, last, 4130, "epsg", 4130, "Moznet"); add_proj4text (p, 0, "+proj=longlat +ellps=WGS84 +towgs84=0,0,0,-0,-0,-0,0 +no"); add_proj4text (p, 1, "_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Moznet\",DATUM[\"Moznet_ITRF94\",SPHEROID[\"WGS"); add_srs_wkt (p, 1, " 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]"); add_srs_wkt (p, 2, "],TOWGS84[0,0,0,-0,-0,-0,0],AUTHORITY[\"EPSG\",\"6130\"]"); add_srs_wkt (p, 3, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 4, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 5, "122\"]],AUTHORITY[\"EPSG\",\"4130\"]]"); p = add_epsg_def (filter, first, last, 4131, "epsg", 4131, "Indian 1960"); add_proj4text (p, 0, "+proj=longlat +a=6377276.345 +b=6356075.413140239 +towgs"); add_proj4text (p, 1, "84=198,881,317,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Indian 1960\",DATUM[\"Indian_1960\",SPHEROID[\""); add_srs_wkt (p, 1, "Everest 1830 (1937 Adjustment)\",6377276.345,300.8017,AU"); add_srs_wkt (p, 2, "THORITY[\"EPSG\",\"7015\"]],TOWGS84[198,881,317,0,0,0,0]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6131\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4131\"]]"); p = add_epsg_def (filter, first, last, 4132, "epsg", 4132, "FD58"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=-239.1,-170.02,397."); add_proj4text (p, 1, "5,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"FD58\",DATUM[\"Final_Datum_1958\",SPHEROID[\"Cl"); add_srs_wkt (p, 1, "arke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 2, ",\"7012\"]],TOWGS84[-239.1,-170.02,397.5,0,0,0,0],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6132\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4132\""); add_srs_wkt (p, 6, "]]"); p = add_epsg_def (filter, first, last, 4133, "epsg", 4133, "EST92"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0.055,-0.541,-0.185,"); add_proj4text (p, 1, "0.0183,-0.0003,-0.007,-0.014 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"EST92\",DATUM[\"Estonia_1992\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 1, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 2, "],TOWGS84[0.055,-0.541,-0.185,0.0183,-0.0003,-0.007,-0.0"); add_srs_wkt (p, 3, "14],AUTHORITY[\"EPSG\",\"6133\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 5, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"4133\"]]"); p = add_epsg_def (filter, first, last, 4134, "epsg", 4134, "PSD93"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=-180.624,-225.516,1"); add_proj4text (p, 1, "73.919,-0.81,-1.898,8.336,16.7101 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"PSD93\",DATUM[\"PDO_Survey_Datum_1993\",SPHEROI"); add_srs_wkt (p, 1, "D[\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7012\"]],TOWGS84[-180.624,-225.516,173.919,-0.8"); add_srs_wkt (p, 3, "1,-1.898,8.336,16.7101],AUTHORITY[\"EPSG\",\"6134\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AUTHORITY[\"EPSG\",\"4134\"]]"); p = add_epsg_def (filter, first, last, 4135, "epsg", 4135, "Old Hawaiian"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk66 +towgs84=61,-285,-181,0,0,0,"); add_proj4text (p, 1, "0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Old Hawaiian\",DATUM[\"Old_Hawaiian\",SPHEROID["); add_srs_wkt (p, 1, "\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7008\"]],TOWGS84[61,-285,-181,0,0,0,0],AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"6135\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4135\"]]"); p = add_epsg_def (filter, first, last, 4136, "epsg", 4136, "St. Lawrence Island"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk66 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"St. Lawrence Island\",DATUM[\"St_Lawrence_Islan"); add_srs_wkt (p, 1, "d\",SPHEROID[\"Clarke 1866\",6378206.4,294.9786982138982"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6136"); add_srs_wkt (p, 3, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 4, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"9122\"]],AUTHORITY[\"EPSG\",\"4136\"]]"); p = add_epsg_def (filter, first, last, 4137, "epsg", 4137, "St. Paul Island"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk66 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"St. Paul Island\",DATUM[\"St_Paul_Island\",SPHE"); add_srs_wkt (p, 1, "ROID[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6137\"]],PRI"); add_srs_wkt (p, 3, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 4, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 5, "],AUTHORITY[\"EPSG\",\"4137\"]]"); p = add_epsg_def (filter, first, last, 4138, "epsg", 4138, "St. George Island"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk66 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"St. George Island\",DATUM[\"St_George_Island\","); add_srs_wkt (p, 1, "SPHEROID[\"Clarke 1866\",6378206.4,294.9786982138982,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6138\"]]"); add_srs_wkt (p, 3, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 4, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 5, "22\"]],AUTHORITY[\"EPSG\",\"4138\"]]"); p = add_epsg_def (filter, first, last, 4139, "epsg", 4139, "Puerto Rico"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk66 +towgs84=11,72,-101,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Puerto Rico\",DATUM[\"Puerto_Rico\",SPHEROID[\""); add_srs_wkt (p, 1, "Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EP"); add_srs_wkt (p, 2, "SG\",\"7008\"]],TOWGS84[11,72,-101,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6139\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4139\"]]"); p = add_epsg_def (filter, first, last, 4140, "epsg", 4140, "NAD83(CSRS98)"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"NAD83(CSRS98)\",DATUM[\"NAD83_Canadian_Spatial_"); add_srs_wkt (p, 1, "Reference_System\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 2, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 3, ",0],AUTHORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 5, "925199433,AUTHORITY[\"EPSG\",\"9108\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"4140\"]]"); p = add_epsg_def (filter, first, last, 4141, "epsg", 4141, "Israel"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=-48,55,52,0,0,0,0 +n"); add_proj4text (p, 1, "o_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Israel\",DATUM[\"Israel\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 1, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 2, "GS84[-48,55,52,0,0,0,0],AUTHORITY[\"EPSG\",\"6141\"]],PR"); add_srs_wkt (p, 3, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 4, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 5, "]],AUTHORITY[\"EPSG\",\"4141\"]]"); p = add_epsg_def (filter, first, last, 4142, "epsg", 4142, "Locodjo 1965"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=-125,53,467,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Locodjo 1965\",DATUM[\"Locodjo_1965\",SPHEROID["); add_srs_wkt (p, 1, "\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EP"); add_srs_wkt (p, 2, "SG\",\"7012\"]],TOWGS84[-125,53,467,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6142\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4142\"]]"); p = add_epsg_def (filter, first, last, 4143, "epsg", 4143, "Abidjan 1987"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=-124.76,53,466.79,0"); add_proj4text (p, 1, ",0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Abidjan 1987\",DATUM[\"Abidjan_1987\",SPHEROID["); add_srs_wkt (p, 1, "\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EP"); add_srs_wkt (p, 2, "SG\",\"7012\"]],TOWGS84[-124.76,53,466.79,0,0,0,0],AUTHO"); add_srs_wkt (p, 3, "RITY[\"EPSG\",\"6143\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 4, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4143"); add_srs_wkt (p, 6, "\"]]"); p = add_epsg_def (filter, first, last, 4144, "epsg", 4144, "Kalianpur 1937"); add_proj4text (p, 0, "+proj=longlat +a=6377276.345 +b=6356075.413140239 +towgs"); add_proj4text (p, 1, "84=282,726,254,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Kalianpur 1937\",DATUM[\"Kalianpur_1937\",SPHER"); add_srs_wkt (p, 1, "OID[\"Everest 1830 (1937 Adjustment)\",6377276.345,300.8"); add_srs_wkt (p, 2, "017,AUTHORITY[\"EPSG\",\"7015\"]],TOWGS84[282,726,254,0,"); add_srs_wkt (p, 3, "0,0,0],AUTHORITY[\"EPSG\",\"6144\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 6, "SG\",\"4144\"]]"); p = add_epsg_def (filter, first, last, 4145, "epsg", 4145, "Kalianpur 1962"); add_proj4text (p, 0, "+proj=longlat +a=6377301.243 +b=6356100.230165385 +towgs"); add_proj4text (p, 1, "84=283,682,231,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Kalianpur 1962\",DATUM[\"Kalianpur_1962\",SPHER"); add_srs_wkt (p, 1, "OID[\"Everest 1830 (1962 Definition)\",6377301.243,300.8"); add_srs_wkt (p, 2, "017255,AUTHORITY[\"EPSG\",\"7044\"]],TOWGS84[283,682,231"); add_srs_wkt (p, 3, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6145\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"4145\"]]"); p = add_epsg_def (filter, first, last, 4146, "epsg", 4146, "Kalianpur 1975"); add_proj4text (p, 0, "+proj=longlat +a=6377299.151 +b=6356098.145120132 +towgs"); add_proj4text (p, 1, "84=295,736,257,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Kalianpur 1975\",DATUM[\"Kalianpur_1975\",SPHER"); add_srs_wkt (p, 1, "OID[\"Everest 1830 (1975 Definition)\",6377299.151,300.8"); add_srs_wkt (p, 2, "017255,AUTHORITY[\"EPSG\",\"7045\"]],TOWGS84[295,736,257"); add_srs_wkt (p, 3, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"4146\"]]"); p = add_epsg_def (filter, first, last, 4147, "epsg", 4147, "Hanoi 1972"); add_proj4text (p, 0, "+proj=longlat +ellps=krass +towgs84=-17.51,-108.32,-62.3"); add_proj4text (p, 1, "9,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Hanoi 1972\",DATUM[\"Hanoi_1972\",SPHEROID[\"Kr"); add_srs_wkt (p, 1, "assowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\""); add_srs_wkt (p, 2, "]],TOWGS84[-17.51,-108.32,-62.39,0,0,0,0],AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"6147\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4147\"]]"); p = add_epsg_def (filter, first, last, 4148, "epsg", 4148, "Hartebeesthoek94"); add_proj4text (p, 0, "+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"Hartebeesthoek94\",DATUM[\"Hartebeesthoek94\",S"); add_srs_wkt (p, 1, "PHEROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPS"); add_srs_wkt (p, 2, "G\",\"7030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6148\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4148\"]]"); p = add_epsg_def (filter, first, last, 4149, "epsg", 4149, "CH1903"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +towgs84=674.4,15.1,405.3,0,"); add_proj4text (p, 1, "0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"CH1903\",DATUM[\"CH1903\",SPHEROID[\"Bessel 184"); add_srs_wkt (p, 1, "1\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]"); add_srs_wkt (p, 2, "],TOWGS84[674.4,15.1,405.3,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "6149\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 4, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4149\"]]"); p = add_epsg_def (filter, first, last, 4150, "epsg", 4150, "CH1903+"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +towgs84=674.374,15.056,405."); add_proj4text (p, 1, "346,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"CH1903+\",DATUM[\"CH1903+\",SPHEROID[\"Bessel 1"); add_srs_wkt (p, 1, "841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\""); add_srs_wkt (p, 2, "]],TOWGS84[674.374,15.056,405.346,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"6150\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4150\"]]"); p = add_epsg_def (filter, first, last, 4151, "epsg", 4151, "CHTRF95"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"CHTRF95\",DATUM[\"Swiss_Terrestrial_Reference_F"); add_srs_wkt (p, 1, "rame_1995\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"6151\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 5, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"41"); add_srs_wkt (p, 6, "51\"]]"); p = add_epsg_def (filter, first, last, 4152, "epsg", 4152, "NAD83(HARN)"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Refer"); add_srs_wkt (p, 1, "ence_Network\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 2, "01,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 5, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4152\"]]"); p = add_epsg_def (filter, first, last, 4153, "epsg", 4153, "Rassadiran"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-133.63,-157.5,-158.6"); add_proj4text (p, 1, "2,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Rassadiran\",DATUM[\"Rassadiran\",SPHEROID[\"In"); add_srs_wkt (p, 1, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 2, "\"]],TOWGS84[-133.63,-157.5,-158.62,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6153\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4153\"]]"); p = add_epsg_def (filter, first, last, 4154, "epsg", 4154, "ED50(ED77)"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-117,-132,-164,0,0,0,"); add_proj4text (p, 1, "0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"ED50(ED77)\",DATUM[\"European_Datum_1950_1977\""); add_srs_wkt (p, 1, ",SPHEROID[\"International 1924\",6378388,297,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7022\"]],TOWGS84[-117,-132,-164,0,0,0,0],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6154\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4154\""); add_srs_wkt (p, 6, "]]"); p = add_epsg_def (filter, first, last, 4155, "epsg", 4155, "Dabola 1981"); add_proj4text (p, 0, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-83,37,12"); add_proj4text (p, 1, "4,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Dabola 1981\",DATUM[\"Dabola_1981\",SPHEROID[\""); add_srs_wkt (p, 1, "Clarke 1880 (IGN)\",6378249.2,293.4660212936269,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7011\"]],TOWGS84[-83,37,124,0,0,0,0],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6155\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4155\""); add_srs_wkt (p, 6, "]]"); p = add_epsg_def (filter, first, last, 4156, "epsg", 4156, "S-JTSK"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +towgs84=589,76,480,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"S-JTSK\",DATUM[\"System_Jednotne_Trigonometrick"); add_srs_wkt (p, 1, "e_Site_Katastralni\",SPHEROID[\"Bessel 1841\",6377397.15"); add_srs_wkt (p, 2, "5,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[589,"); add_srs_wkt (p, 3, "76,480,0,0,0,0],AUTHORITY[\"EPSG\",\"6156\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"4156\"]]"); p = add_epsg_def (filter, first, last, 4157, "epsg", 4157, "Mount Dillon"); add_proj4text (p, 0, "+proj=longlat +a=6378293.645208759 +b=6356617.987679838 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Mount Dillon\",DATUM[\"Mount_Dillon\",SPHEROID["); add_srs_wkt (p, 1, "\"Clarke 1858\",6378293.645208759,294.2606763692654,AUTH"); add_srs_wkt (p, 2, "ORITY[\"EPSG\",\"7007\"]],AUTHORITY[\"EPSG\",\"6157\"]],"); add_srs_wkt (p, 3, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 4, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 5, "2\"]],AUTHORITY[\"EPSG\",\"4157\"]]"); p = add_epsg_def (filter, first, last, 4158, "epsg", 4158, "Naparima 1955"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-0.465,372.095,171.73"); add_proj4text (p, 1, "6,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Naparima 1955\",DATUM[\"Naparima_1955\",SPHEROI"); add_srs_wkt (p, 1, "D[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 2, "\"7022\"]],TOWGS84[-0.465,372.095,171.736,0,0,0,0],AUTHO"); add_srs_wkt (p, 3, "RITY[\"EPSG\",\"6158\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 4, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4158"); add_srs_wkt (p, 6, "\"]]"); p = add_epsg_def (filter, first, last, 4159, "epsg", 4159, "ELD79"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-115.854,-99.0583,-15"); add_proj4text (p, 1, "2.462,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"ELD79\",DATUM[\"European_Libyan_Datum_1979\",SP"); add_srs_wkt (p, 1, "HEROID[\"International 1924\",6378388,297,AUTHORITY[\"EP"); add_srs_wkt (p, 2, "SG\",\"7022\"]],TOWGS84[-115.854,-99.0583,-152.462,0,0,0"); add_srs_wkt (p, 3, ",0],AUTHORITY[\"EPSG\",\"6159\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 5, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"4159\"]]"); p = add_epsg_def (filter, first, last, 4160, "epsg", 4160, "Chos Malal 1914"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Chos Malal 1914\",DATUM[\"Chos_Malal_1914\",SPH"); add_srs_wkt (p, 1, "EROID[\"International 1924\",6378388,297,AUTHORITY[\"EPS"); add_srs_wkt (p, 2, "G\",\"7022\"]],AUTHORITY[\"EPSG\",\"6160\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 3, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 4, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"4160\"]]"); p = add_epsg_def (filter, first, last, 4161, "epsg", 4161, "Pampa del Castillo"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=27.5,14,186.4,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Pampa del Castillo\",DATUM[\"Pampa_del_Castillo"); add_srs_wkt (p, 1, "\",SPHEROID[\"International 1924\",6378388,297,AUTHORITY"); add_srs_wkt (p, 2, "[\"EPSG\",\"7022\"]],TOWGS84[27.5,14,186.4,0,0,0,0],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"6161\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"416"); add_srs_wkt (p, 6, "1\"]]"); p = add_epsg_def (filter, first, last, 4162, "epsg", 4162, "Korean 1985"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Korean 1985\",DATUM[\"Korean_Datum_1985\",SPHER"); add_srs_wkt (p, 1, "OID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7004\"]],AUTHORITY[\"EPSG\",\"6162\"]],PRIMEM[\""); add_srs_wkt (p, 3, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 4, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"4162\"]]"); p = add_epsg_def (filter, first, last, 4163, "epsg", 4163, "Yemen NGN96"); add_proj4text (p, 0, "+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"Yemen NGN96\",DATUM[\"Yemen_National_Geodetic_N"); add_srs_wkt (p, 1, "etwork_1996\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"6163\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 5, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"41"); add_srs_wkt (p, 6, "63\"]]"); p = add_epsg_def (filter, first, last, 4164, "epsg", 4164, "South Yemen"); add_proj4text (p, 0, "+proj=longlat +ellps=krass +towgs84=-76,-138,67,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"South Yemen\",DATUM[\"South_Yemen\",SPHEROID[\""); add_srs_wkt (p, 1, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 2, "4\"]],TOWGS84[-76,-138,67,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "6164\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 4, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4164\"]]"); p = add_epsg_def (filter, first, last, 4165, "epsg", 4165, "Bissau"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-173,253,27,0,0,0,0 +"); add_proj4text (p, 1, "no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Bissau\",DATUM[\"Bissau\",SPHEROID[\"Internatio"); add_srs_wkt (p, 1, "nal 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOW"); add_srs_wkt (p, 2, "GS84[-173,253,27,0,0,0,0],AUTHORITY[\"EPSG\",\"6165\"]],"); add_srs_wkt (p, 3, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 4, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 5, "2\"]],AUTHORITY[\"EPSG\",\"4165\"]]"); p = add_epsg_def (filter, first, last, 4166, "epsg", 4166, "Korean 1995"); add_proj4text (p, 0, "+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"Korean 1995\",DATUM[\"Korean_Datum_1995\",SPHER"); add_srs_wkt (p, 1, "OID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 2, "\"7030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "166\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4166\"]]"); p = add_epsg_def (filter, first, last, 4167, "epsg", 4167, "NZGD2000"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"NZGD2000\",DATUM[\"New_Zealand_Geodetic_Datum_2"); add_srs_wkt (p, 1, "000\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 2, "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"6167\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4167\"]]"); p = add_epsg_def (filter, first, last, 4168, "epsg", 4168, "Accra"); add_proj4text (p, 0, "+proj=longlat +a=6378300 +b=6356751.689189189 +towgs84=-"); add_proj4text (p, 1, "199,32,322,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Accra\",DATUM[\"Accra\",SPHEROID[\"War Office\""); add_srs_wkt (p, 1, ",6378300,296,AUTHORITY[\"EPSG\",\"7029\"]],TOWGS84[-199,"); add_srs_wkt (p, 2, "32,322,0,0,0,0],AUTHORITY[\"EPSG\",\"6168\"]],PRIMEM[\"G"); add_srs_wkt (p, 3, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 4, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"4168\"]]"); p = add_epsg_def (filter, first, last, 4169, "epsg", 4169, "American Samoa 1962"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk66 +towgs84=-115,118,426,0,0,0,"); add_proj4text (p, 1, "0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"American Samoa 1962\",DATUM[\"American_Samoa_19"); add_srs_wkt (p, 1, "62\",SPHEROID[\"Clarke 1866\",6378206.4,294.978698213898"); add_srs_wkt (p, 2, "2,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS84[-115,118,426,0,0"); add_srs_wkt (p, 3, ",0,0],AUTHORITY[\"EPSG\",\"6169\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 6, "SG\",\"4169\"]]"); p = add_epsg_def (filter, first, last, 4170, "epsg", 4170, "SIRGAS 1995"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"SIRGAS 1995\",DATUM[\"Sistema_de_Referencia_Geo"); add_srs_wkt (p, 1, "centrico_para_America_del_Sur_1995\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6170\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4170\"]]"); p = add_epsg_def (filter, first, last, 4171, "epsg", 4171, "RGF93"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"RGF93\",DATUM[\"Reseau_Geodesique_Francais_1993"); add_srs_wkt (p, 1, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 2, "[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6171\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4171\"]]"); p = add_epsg_def (filter, first, last, 4172, "epsg", 4172, "POSGAR"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"POSGAR\",DATUM[\"Posiciones_Geodesicas_Argentin"); add_srs_wkt (p, 1, "as\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"6172\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"9108\"]],AUTHORITY[\"EPSG\",\"4172\"]]"); p = add_epsg_def (filter, first, last, 4173, "epsg", 4173, "IRENET95"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"IRENET95\",DATUM[\"IRENET95\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 1, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 2, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6173\"]],PR"); add_srs_wkt (p, 3, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 4, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 5, "]],AUTHORITY[\"EPSG\",\"4173\"]]"); p = add_epsg_def (filter, first, last, 4174, "epsg", 4174, "Sierra Leone 1924"); add_proj4text (p, 0, "+proj=longlat +a=6378300 +b=6356751.689189189 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Sierra Leone 1924\",DATUM[\"Sierra_Leone_Colony"); add_srs_wkt (p, 1, "_1924\",SPHEROID[\"War Office\",6378300,296,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7029\"]],AUTHORITY[\"EPSG\",\"6174\"]],PRIMEM[\""); add_srs_wkt (p, 3, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 4, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"4174\"]]"); p = add_epsg_def (filter, first, last, 4175, "epsg", 4175, "Sierra Leone 1968"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=-88,4,101,0,0,0,0 +"); add_proj4text (p, 1, "no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Sierra Leone 1968\",DATUM[\"Sierra_Leone_1968\""); add_srs_wkt (p, 1, ",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTH"); add_srs_wkt (p, 2, "ORITY[\"EPSG\",\"7012\"]],TOWGS84[-88,4,101,0,0,0,0],AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"6175\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 5, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"41"); add_srs_wkt (p, 6, "75\"]]"); p = add_epsg_def (filter, first, last, 4176, "epsg", 4176, "Australian Antarctic"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"Australian Antarctic\",DATUM[\"Australian_Antar"); add_srs_wkt (p, 1, "ctic_Datum_1998\",SPHEROID[\"GRS 1980\",6378137,298.2572"); add_srs_wkt (p, 2, "22101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,"); add_srs_wkt (p, 3, "0],AUTHORITY[\"EPSG\",\"6176\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4176\"]]"); p = add_epsg_def (filter, first, last, 4178, "epsg", 4178, "Pulkovo 1942(83)"); add_proj4text (p, 0, "+proj=longlat +ellps=krass +towgs84=26,-121,-78,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Pulkovo 1942(83)\",DATUM[\"Pulkovo_1942_83\",SP"); add_srs_wkt (p, 1, "HEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPS"); add_srs_wkt (p, 2, "G\",\"7024\"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6178\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4178\"]]"); p = add_epsg_def (filter, first, last, 4179, "epsg", 4179, "Pulkovo 1942(58)"); add_proj4text (p, 0, "+proj=longlat +ellps=krass +towgs84=33.4,-146.6,-76.3,-0"); add_proj4text (p, 1, ".359,-0.053,0.844,-0.84 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Pulkovo 1942(58)\",DATUM[\"Pulkovo_1942_58\",SP"); add_srs_wkt (p, 1, "HEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPS"); add_srs_wkt (p, 2, "G\",\"7024\"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0"); add_srs_wkt (p, 3, ".844,-0.84],AUTHORITY[\"EPSG\",\"6179\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4179\"]]"); p = add_epsg_def (filter, first, last, 4180, "epsg", 4180, "EST97"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"EST97\",DATUM[\"Estonia_1997\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 1, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 2, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6180\"]],P"); add_srs_wkt (p, 3, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 4, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 5, "\"]],AUTHORITY[\"EPSG\",\"4180\"]]"); p = add_epsg_def (filter, first, last, 4181, "epsg", 4181, "Luxembourg 1930"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-189.681,18.3463,-42."); add_proj4text (p, 1, "7695,-0.33746,-3.09264,2.53861,0.4598 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Luxembourg 1930\",DATUM[\"Luxembourg_1930\",SPH"); add_srs_wkt (p, 1, "EROID[\"International 1924\",6378388,297,AUTHORITY[\"EPS"); add_srs_wkt (p, 2, "G\",\"7022\"]],TOWGS84[-189.681,18.3463,-42.7695,-0.3374"); add_srs_wkt (p, 3, "6,-3.09264,2.53861,0.4598],AUTHORITY[\"EPSG\",\"6181\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AUTHORITY[\"EPSG\",\"4181\"]]"); p = add_epsg_def (filter, first, last, 4182, "epsg", 4182, "Azores Occidental 1939"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-425,-169,81,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Azores Occidental 1939\",DATUM[\"Azores_Occiden"); add_srs_wkt (p, 1, "tal_Islands_1939\",SPHEROID[\"International 1924\",63783"); add_srs_wkt (p, 2, "88,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-425,-169,8"); add_srs_wkt (p, 3, "1,0,0,0,0],AUTHORITY[\"EPSG\",\"6182\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 4, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 5, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"4182\"]]"); p = add_epsg_def (filter, first, last, 4183, "epsg", 4183, "Azores Central 1948"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-104,167,-38,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Azores Central 1948\",DATUM[\"Azores_Central_Is"); add_srs_wkt (p, 1, "lands_1948\",SPHEROID[\"International 1924\",6378388,297"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-104,167,-38,0,0,"); add_srs_wkt (p, 3, "0,0],AUTHORITY[\"EPSG\",\"6183\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4183\"]]"); p = add_epsg_def (filter, first, last, 4184, "epsg", 4184, "Azores Oriental 1940"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-203,141,53,0,0,0,0 +"); add_proj4text (p, 1, "no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Azores Oriental 1940\",DATUM[\"Azores_Oriental_"); add_srs_wkt (p, 1, "Islands_1940\",SPHEROID[\"International 1924\",6378388,2"); add_srs_wkt (p, 2, "97,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-203,141,53,0,0"); add_srs_wkt (p, 3, ",0,0],AUTHORITY[\"EPSG\",\"6184\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 6, "SG\",\"4184\"]]"); p = add_epsg_def (filter, first, last, 4185, "epsg", 4185, "Madeira 1936"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Madeira 1936\",DATUM[\"Madeira_1936\",SPHEROID["); add_srs_wkt (p, 1, "\"International 1924\",6378388,297,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 2, "7022\"]],AUTHORITY[\"EPSG\",\"6185\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 3, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 4, "74532925199433,AUTHORITY[\"EPSG\",\"9108\"]],AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"4185\"]]"); p = add_epsg_def (filter, first, last, 4188, "epsg", 4188, "OSNI 1952"); add_proj4text (p, 0, "+proj=longlat +ellps=airy +towgs84=482.5,-130.6,564.6,-1"); add_proj4text (p, 1, ".042,-0.214,-0.631,8.15 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"OSNI 1952\",DATUM[\"OSNI_1952\",SPHEROID[\"Airy"); add_srs_wkt (p, 1, " 1830\",6377563.396,299.3249646,AUTHORITY[\"EPSG\",\"700"); add_srs_wkt (p, 2, "1\"]],TOWGS84[482.5,-130.6,564.6,-1.042,-0.214,-0.631,8."); add_srs_wkt (p, 3, "15],AUTHORITY[\"EPSG\",\"6188\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 5, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"4188\"]]"); p = add_epsg_def (filter, first, last, 4189, "epsg", 4189, "REGVEN"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"REGVEN\",DATUM[\"Red_Geodesica_Venezolana\",SPH"); add_srs_wkt (p, 1, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 2, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6189\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4189\"]]"); p = add_epsg_def (filter, first, last, 4190, "epsg", 4190, "POSGAR 98"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"POSGAR 98\",DATUM[\"Posiciones_Geodesicas_Argen"); add_srs_wkt (p, 1, "tinas_1998\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"6190\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 6, "190\"]]"); p = add_epsg_def (filter, first, last, 4191, "epsg", 4191, "Albanian 1987"); add_proj4text (p, 0, "+proj=longlat +ellps=krass +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Albanian 1987\",DATUM[\"Albanian_1987\",SPHEROI"); add_srs_wkt (p, 1, "D[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 2, "7024\"]],AUTHORITY[\"EPSG\",\"6191\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 3, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 4, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"4191\"]]"); p = add_epsg_def (filter, first, last, 4192, "epsg", 4192, "Douala 1948"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-206.1,-174.7,-87.7,0"); add_proj4text (p, 1, ",0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Douala 1948\",DATUM[\"Douala_1948\",SPHEROID[\""); add_srs_wkt (p, 1, "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 2, "22\"]],TOWGS84[-206.1,-174.7,-87.7,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6192\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4192\"]]"); p = add_epsg_def (filter, first, last, 4193, "epsg", 4193, "Manoca 1962"); add_proj4text (p, 0, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-70.9,-15"); add_proj4text (p, 1, "1.8,-41.4,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Manoca 1962\",DATUM[\"Manoca_1962\",SPHEROID[\""); add_srs_wkt (p, 1, "Clarke 1880 (IGN)\",6378249.2,293.4660212936269,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7011\"]],TOWGS84[-70.9,-151.8,-41.4,0,0,0,0"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6193\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4193\"]]"); p = add_epsg_def (filter, first, last, 4194, "epsg", 4194, "Qornoq 1927"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=164,138,-189,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Qornoq 1927\",DATUM[\"Qornoq_1927\",SPHEROID[\""); add_srs_wkt (p, 1, "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 2, "22\"]],TOWGS84[164,138,-189,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"6194\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 4, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4194\"]]"); p = add_epsg_def (filter, first, last, 4195, "epsg", 4195, "Scoresbysund 1952"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=105,326,-102.5,0,0,0."); add_proj4text (p, 1, "814,-0.6 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Scoresbysund 1952\",DATUM[\"Scoresbysund_1952\""); add_srs_wkt (p, 1, ",SPHEROID[\"International 1924\",6378388,297,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7022\"]],TOWGS84[105,326,-102.5,0,0,0.814,-0.6]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6195\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4195\"]]"); p = add_epsg_def (filter, first, last, 4196, "epsg", 4196, "Ammassalik 1958"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-45,417,-3.5,0,0,0.81"); add_proj4text (p, 1, "4,-0.6 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Ammassalik 1958\",DATUM[\"Ammassalik_1958\",SPH"); add_srs_wkt (p, 1, "EROID[\"International 1924\",6378388,297,AUTHORITY[\"EPS"); add_srs_wkt (p, 2, "G\",\"7022\"]],TOWGS84[-45,417,-3.5,0,0,0.814,-0.6],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"6196\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"419"); add_srs_wkt (p, 6, "6\"]]"); p = add_epsg_def (filter, first, last, 4197, "epsg", 4197, "Garoua"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Garoua\",DATUM[\"Garoua\",SPHEROID[\"Clarke 188"); add_srs_wkt (p, 1, "0 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\""); add_srs_wkt (p, 2, "]],AUTHORITY[\"EPSG\",\"6197\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 4, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"4197\"]]"); p = add_epsg_def (filter, first, last, 4198, "epsg", 4198, "Kousseri"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Kousseri\",DATUM[\"Kousseri\",SPHEROID[\"Clarke"); add_srs_wkt (p, 1, " 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 2, "012\"]],AUTHORITY[\"EPSG\",\"6198\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 3, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 4, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"4198\"]]"); p = add_epsg_def (filter, first, last, 4199, "epsg", 4199, "Egypt 1930"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Egypt 1930\",DATUM[\"Egypt_1930\",SPHEROID[\"In"); add_srs_wkt (p, 1, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 2, "\"]],AUTHORITY[\"EPSG\",\"6199\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 3, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 4, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"4199\"]]"); p = add_epsg_def (filter, first, last, 4200, "epsg", 4200, "Pulkovo 1995"); add_proj4text (p, 0, "+proj=longlat +ellps=krass +towgs84=24.47,-130.89,-81.56"); add_proj4text (p, 1, ",-0,-0,0.13,-0.22 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 1, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 2, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4200\"]]"); p = add_epsg_def (filter, first, last, 4201, "epsg", 4201, "Adindan"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=-166,-15,204,0,0,0,"); add_proj4text (p, 1, "0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Adindan\",DATUM[\"Adindan\",SPHEROID[\"Clarke 1"); add_srs_wkt (p, 1, "880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"701"); add_srs_wkt (p, 2, "2\"]],TOWGS84[-166,-15,204,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "6201\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 4, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4201\"]]"); p = add_epsg_def (filter, first, last, 4202, "epsg", 4202, "AGD66"); add_proj4text (p, 0, "+proj=longlat +ellps=aust_SA +towgs84=-117.808,-51.536,1"); add_proj4text (p, 1, "37.784,0.303,0.446,0.234,-0.29 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"AGD66\",DATUM[\"Australian_Geodetic_Datum_1966\""); add_srs_wkt (p, 1, ",SPHEROID[\"Australian National Spheroid\",6378160,298.2"); add_srs_wkt (p, 2, "5,AUTHORITY[\"EPSG\",\"7003\"]],TOWGS84[-117.808,-51.536"); add_srs_wkt (p, 3, ",137.784,0.303,0.446,0.234,-0.29],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "202\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4202\"]]"); p = add_epsg_def (filter, first, last, 4203, "epsg", 4203, "AGD84"); add_proj4text (p, 0, "+proj=longlat +ellps=aust_SA +towgs84=-134,-48,149,0,0,0"); add_proj4text (p, 1, ",0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"AGD84\",DATUM[\"Australian_Geodetic_Datum_1984\""); add_srs_wkt (p, 1, ",SPHEROID[\"Australian National Spheroid\",6378160,298.2"); add_srs_wkt (p, 2, "5,AUTHORITY[\"EPSG\",\"7003\"]],TOWGS84[-134,-48,149,0,0"); add_srs_wkt (p, 3, ",0,0],AUTHORITY[\"EPSG\",\"6203\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 6, "SG\",\"4203\"]]"); p = add_epsg_def (filter, first, last, 4204, "epsg", 4204, "Ain el Abd"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-143,-236,7,0,0,0,0 +"); add_proj4text (p, 1, "no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Ain el Abd\",DATUM[\"Ain_el_Abd_1970\",SPHEROID"); add_srs_wkt (p, 1, "[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 2, "7022\"]],TOWGS84[-143,-236,7,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6204\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4204\"]]"); p = add_epsg_def (filter, first, last, 4205, "epsg", 4205, "Afgooye"); add_proj4text (p, 0, "+proj=longlat +ellps=krass +towgs84=-43,-163,45,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Afgooye\",DATUM[\"Afgooye\",SPHEROID[\"Krassows"); add_srs_wkt (p, 1, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 2, "WGS84[-43,-163,45,0,0,0,0],AUTHORITY[\"EPSG\",\"6205\"]]"); add_srs_wkt (p, 3, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 4, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 5, "22\"]],AUTHORITY[\"EPSG\",\"4205\"]]"); p = add_epsg_def (filter, first, last, 4206, "epsg", 4206, "Agadez"); add_proj4text (p, 0, "+proj=longlat +a=6378249.2 +b=6356515 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Agadez\",DATUM[\"Agadez\",SPHEROID[\"Clarke 188"); add_srs_wkt (p, 1, "0 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 2, ",\"7011\"]],AUTHORITY[\"EPSG\",\"6206\"]],PRIMEM[\"Green"); add_srs_wkt (p, 3, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 4, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"4206\"]]"); p = add_epsg_def (filter, first, last, 4207, "epsg", 4207, "Lisbon"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-304.046,-60.576,103."); add_proj4text (p, 1, "64,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Lisbon\",DATUM[\"Lisbon_1937\",SPHEROID[\"Inter"); add_srs_wkt (p, 1, "national 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]"); add_srs_wkt (p, 2, "],TOWGS84[-304.046,-60.576,103.64,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"6207\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4207\"]]"); p = add_epsg_def (filter, first, last, 4208, "epsg", 4208, "Aratu"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-151.99,287.04,-147.4"); add_proj4text (p, 1, "5,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Aratu\",DATUM[\"Aratu\",SPHEROID[\"Internationa"); add_srs_wkt (p, 1, "l 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS"); add_srs_wkt (p, 2, "84[-151.99,287.04,-147.45,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "6208\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 4, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4208\"]]"); p = add_epsg_def (filter, first, last, 4209, "epsg", 4209, "Arc 1950"); add_proj4text (p, 0, "+proj=longlat +a=6378249.145 +b=6356514.966398753 +towgs"); add_proj4text (p, 1, "84=-143,-90,-294,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Arc 1950\",DATUM[\"Arc_1950\",SPHEROID[\"Clarke"); add_srs_wkt (p, 1, " 1880 (Arc)\",6378249.145,293.4663077,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 2, ",\"7013\"]],TOWGS84[-143,-90,-294,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"6209\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4209\"]]"); p = add_epsg_def (filter, first, last, 4210, "epsg", 4210, "Arc 1960"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=-160,-6,-302,0,0,0,"); add_proj4text (p, 1, "0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Arc 1960\",DATUM[\"Arc_1960\",SPHEROID[\"Clarke"); add_srs_wkt (p, 1, " 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 2, "012\"]],TOWGS84[-160,-6,-302,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6210\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4210\"]]"); p = add_epsg_def (filter, first, last, 4211, "epsg", 4211, "Batavia"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +towgs84=-377,681,-50,0,0,0,"); add_proj4text (p, 1, "0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Batavia\",DATUM[\"Batavia\",SPHEROID[\"Bessel 1"); add_srs_wkt (p, 1, "841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\""); add_srs_wkt (p, 2, "]],TOWGS84[-377,681,-50,0,0,0,0],AUTHORITY[\"EPSG\",\"62"); add_srs_wkt (p, 3, "11\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 4, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4211\"]]"); p = add_epsg_def (filter, first, last, 4212, "epsg", 4212, "Barbados 1938"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=31.95,300.99,419.19"); add_proj4text (p, 1, ",0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Barbados 1938\",DATUM[\"Barbados_1938\",SPHEROI"); add_srs_wkt (p, 1, "D[\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7012\"]],TOWGS84[31.95,300.99,419.19,0,0,0,0],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6212\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4212\"]]"); } #endif /* full EPSG initialization enabled/disabled */ libspatialite-4.1.1/src/srsinit/epsg_inlined_14.c0000664000175000017500000052414012163502133016662 00000000000000/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_14 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def (filter, first, last, 3447, "epsg", 3447, "ETRS89 / Belgian Lambert 2005"); add_proj4text (p, 0, "+proj=lcc +lat_1=49.83333333333334 +lat_2=51.16666666666"); add_proj4text (p, 1, "666 +lat_0=50.797815 +lon_0=4.359215833333333 +x_0=15032"); add_proj4text (p, 2, "8 +y_0=166262 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units"); add_proj4text (p, 3, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / Belgian Lambert 2005\",GEOGCS[\"ETRS89"); add_srs_wkt (p, 1, "\",DATUM[\"European_Terrestrial_Reference_System_1989\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 8, "ard_parallel_1\",49.83333333333334],PARAMETER[\"standard"); add_srs_wkt (p, 9, "_parallel_2\",51.16666666666666],PARAMETER[\"latitude_of"); add_srs_wkt (p, 10, "_origin\",50.797815],PARAMETER[\"central_meridian\",4.35"); add_srs_wkt (p, 11, "9215833333333],PARAMETER[\"false_easting\",150328],PARAM"); add_srs_wkt (p, 12, "ETER[\"false_northing\",166262],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 14, "],AUTHORITY[\"EPSG\",\"3447\"]]"); p = add_epsg_def (filter, first, last, 3448, "epsg", 3448, "JAD2001 / Jamaica Metric Grid"); add_proj4text (p, 0, "+proj=lcc +lat_1=18 +lat_0=18 +lon_0=-77 +k_0=1 +x_0=750"); add_proj4text (p, 1, "000 +y_0=650000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +uni"); add_proj4text (p, 2, "ts=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JAD2001 / Jamaica Metric Grid\",GEOGCS[\"JAD200"); add_srs_wkt (p, 1, "1\",DATUM[\"Jamaica_2001\",SPHEROID[\"WGS 84\",6378137,2"); add_srs_wkt (p, 2, "98.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 3, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6758\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"4758\"]],PROJECTION[\"Lambert_Conformal_Conic"); add_srs_wkt (p, 7, "_1SP\"],PARAMETER[\"latitude_of_origin\",18],PARAMETER[\""); add_srs_wkt (p, 8, "central_meridian\",-77],PARAMETER[\"scale_factor\",1],PA"); add_srs_wkt (p, 9, "RAMETER[\"false_easting\",750000],PARAMETER[\"false_nort"); add_srs_wkt (p, 10, "hing\",650000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 11, "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"3448\"]]"); p = add_epsg_def (filter, first, last, 3449, "epsg", 3449, "JAD2001 / UTM zone 17N"); add_proj4text (p, 0, "+proj=utm +zone=17 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JAD2001 / UTM zone 17N\",GEOGCS[\"JAD2001\",DAT"); add_srs_wkt (p, 1, "UM[\"Jamaica_2001\",SPHEROID[\"WGS 84\",6378137,298.2572"); add_srs_wkt (p, 2, "23563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,0,0,0,0,0,"); add_srs_wkt (p, 3, "0],AUTHORITY[\"EPSG\",\"6758\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4758\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 7, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, "\",-81],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"f"); add_srs_wkt (p, 9, "alse_easting\",500000],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 10, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 11, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"3449\"]]"); p = add_epsg_def (filter, first, last, 3450, "epsg", 3450, "JAD2001 / UTM zone 18N"); add_proj4text (p, 0, "+proj=utm +zone=18 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JAD2001 / UTM zone 18N\",GEOGCS[\"JAD2001\",DAT"); add_srs_wkt (p, 1, "UM[\"Jamaica_2001\",SPHEROID[\"WGS 84\",6378137,298.2572"); add_srs_wkt (p, 2, "23563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,0,0,0,0,0,"); add_srs_wkt (p, 3, "0],AUTHORITY[\"EPSG\",\"6758\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4758\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 7, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, "\",-75],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"f"); add_srs_wkt (p, 9, "alse_easting\",500000],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 10, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 11, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"3450\"]]"); p = add_epsg_def (filter, first, last, 3451, "epsg", 3451, "NAD83 / Louisiana North (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=32.66666666666666 +lat_2=31.16666666666"); add_proj4text (p, 1, "667 +lat_0=30.5 +lon_0=-92.5 +x_0=999999.9999898402 +y_0"); add_proj4text (p, 2, "=0 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Louisiana North (ftUS)\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 7, "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",3"); add_srs_wkt (p, 8, "2.66666666666666],PARAMETER[\"standard_parallel_2\",31.1"); add_srs_wkt (p, 9, "6666666666667],PARAMETER[\"latitude_of_origin\",30.5],PA"); add_srs_wkt (p, 10, "RAMETER[\"central_meridian\",-92.5],PARAMETER[\"false_ea"); add_srs_wkt (p, 11, "sting\",3280833.333300001],PARAMETER[\"false_northing\","); add_srs_wkt (p, 12, "0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 14, "UTHORITY[\"EPSG\",\"3451\"]]"); p = add_epsg_def (filter, first, last, 3452, "epsg", 3452, "NAD83 / Louisiana South (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=30.7 +lat_2=29.3 +lat_0=28.5 +lon_0=-91"); add_proj4text (p, 1, ".33333333333333 +x_0=999999.9999898402 +y_0=0 +datum=NAD"); add_proj4text (p, 2, "83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Louisiana South (ftUS)\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 7, "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",3"); add_srs_wkt (p, 8, "0.7],PARAMETER[\"standard_parallel_2\",29.3],PARAMETER[\""); add_srs_wkt (p, 9, "latitude_of_origin\",28.5],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 10, ",-91.33333333333333],PARAMETER[\"false_easting\",3280833"); add_srs_wkt (p, 11, ".333300001],PARAMETER[\"false_northing\",0],UNIT[\"US su"); add_srs_wkt (p, 12, "rvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003"); add_srs_wkt (p, 13, "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 14, "\",\"3452\"]]"); p = add_epsg_def (filter, first, last, 3453, "epsg", 3453, "NAD83 / Louisiana Offshore (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666"); add_proj4text (p, 1, "667 +lat_0=25.5 +lon_0=-91.33333333333333 +x_0=999999.99"); add_proj4text (p, 2, "99898402 +y_0=0 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Louisiana Offshore (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert"); add_srs_wkt (p, 7, "_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 8, ",27.83333333333333],PARAMETER[\"standard_parallel_2\",26"); add_srs_wkt (p, 9, ".16666666666667],PARAMETER[\"latitude_of_origin\",25.5],"); add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",-91.33333333333333],PARAM"); add_srs_wkt (p, 11, "ETER[\"false_easting\",3280833.333300001],PARAMETER[\"fa"); add_srs_wkt (p, 12, "lse_northing\",0],UNIT[\"US survey foot\",0.304800609601"); add_srs_wkt (p, 13, "2192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS"); add_srs_wkt (p, 14, "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3453\"]]"); p = add_epsg_def (filter, first, last, 3454, "epsg", 3454, "NAD83 / South Dakota North (ftUS) (deprecated)"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.4 +lat_2=42.83333333333334 +lat_0=42"); add_proj4text (p, 1, ".33333333333334 +lon_0=-100.3333333333333 +x_0=600000 +y"); add_proj4text (p, 2, "_0=0 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / South Dakota North (ftUS) (deprecated)\""); add_srs_wkt (p, 1, ",GEOGCS[\"NAD83\",DATUM[\"North_American_Datum_1983\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6269\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 8, "_parallel_1\",44.4],PARAMETER[\"standard_parallel_2\",42"); add_srs_wkt (p, 9, ".83333333333334],PARAMETER[\"latitude_of_origin\",42.333"); add_srs_wkt (p, 10, "33333333334],PARAMETER[\"central_meridian\",-100.3333333"); add_srs_wkt (p, 11, "333333],PARAMETER[\"false_easting\",1968500],PARAMETER[\""); add_srs_wkt (p, 12, "false_northing\",0],UNIT[\"US survey foot\",0.3048006096"); add_srs_wkt (p, 13, "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 14, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3454\"]]"); p = add_epsg_def (filter, first, last, 3455, "epsg", 3455, "NAD83 / South Dakota South (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.4 +lat_2=42.83333333333334 +lat_0=42"); add_proj4text (p, 1, ".33333333333334 +lon_0=-100.3333333333333 +x_0=600000 +y"); add_proj4text (p, 2, "_0=0 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / South Dakota South (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert"); add_srs_wkt (p, 7, "_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 8, ",44.4],PARAMETER[\"standard_parallel_2\",42.833333333333"); add_srs_wkt (p, 9, "34],PARAMETER[\"latitude_of_origin\",42.33333333333334],"); add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",-100.3333333333333],PARAM"); add_srs_wkt (p, 11, "ETER[\"false_easting\",1968500],PARAMETER[\"false_northi"); add_srs_wkt (p, 12, "ng\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); add_srs_wkt (p, 14, "TH],AUTHORITY[\"EPSG\",\"3455\"]]"); p = add_epsg_def (filter, first, last, 3456, "epsg", 3456, "NAD83(HARN) / Louisiana North (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=32.66666666666666 +lat_2=31.16666666666"); add_proj4text (p, 1, "667 +lat_0=30.5 +lon_0=-92.5 +x_0=999999.9999898402 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_"); add_proj4text (p, 3, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Louisiana North (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netw"); add_srs_wkt (p, 2, "ork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 8, "standard_parallel_1\",32.66666666666666],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_2\",31.16666666666667],PARAMETER[\"latitu"); add_srs_wkt (p, 10, "de_of_origin\",30.5],PARAMETER[\"central_meridian\",-92."); add_srs_wkt (p, 11, "5],PARAMETER[\"false_easting\",3280833.333300001],PARAME"); add_srs_wkt (p, 12, "TER[\"false_northing\",0],UNIT[\"US survey foot\",0.3048"); add_srs_wkt (p, 13, "006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EA"); add_srs_wkt (p, 14, "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3456\"]]"); p = add_epsg_def (filter, first, last, 3457, "epsg", 3457, "NAD83(HARN) / Louisiana South (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=30.7 +lat_2=29.3 +lat_0=28.5 +lon_0=-91"); add_proj4text (p, 1, ".33333333333333 +x_0=999999.9999898402 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, "80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Louisiana South (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netw"); add_srs_wkt (p, 2, "ork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 8, "standard_parallel_1\",30.7],PARAMETER[\"standard_paralle"); add_srs_wkt (p, 9, "l_2\",29.3],PARAMETER[\"latitude_of_origin\",28.5],PARAM"); add_srs_wkt (p, 10, "ETER[\"central_meridian\",-91.33333333333333],PARAMETER["); add_srs_wkt (p, 11, "\"false_easting\",3280833.333300001],PARAMETER[\"false_n"); add_srs_wkt (p, 12, "orthing\",0],UNIT[\"US survey foot\",0.3048006096012192,"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 14, ",NORTH],AUTHORITY[\"EPSG\",\"3457\"]]"); p = add_epsg_def (filter, first, last, 3458, "epsg", 3458, "NAD83(HARN) / South Dakota North (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.68333333333333 +lat_2=44.41666666666"); add_proj4text (p, 1, "666 +lat_0=43.83333333333334 +lon_0=-100 +x_0=600000 +y_"); add_proj4text (p, 2, "0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no"); add_proj4text (p, 3, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / South Dakota North (ftUS)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_"); add_srs_wkt (p, 2, "Network\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMET"); add_srs_wkt (p, 8, "ER[\"standard_parallel_1\",45.68333333333333],PARAMETER["); add_srs_wkt (p, 9, "\"standard_parallel_2\",44.41666666666666],PARAMETER[\"l"); add_srs_wkt (p, 10, "atitude_of_origin\",43.83333333333334],PARAMETER[\"centr"); add_srs_wkt (p, 11, "al_meridian\",-100],PARAMETER[\"false_easting\",1968500]"); add_srs_wkt (p, 12, ",PARAMETER[\"false_northing\",0],UNIT[\"US survey foot\""); add_srs_wkt (p, 13, ",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\""); add_srs_wkt (p, 14, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3458\"]"); add_srs_wkt (p, 15, "]"); p = add_epsg_def (filter, first, last, 3459, "epsg", 3459, "NAD83(HARN) / South Dakota South (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.4 +lat_2=42.83333333333334 +lat_0=42"); add_proj4text (p, 1, ".33333333333334 +lon_0=-100.3333333333333 +x_0=600000 +y"); add_proj4text (p, 2, "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +n"); add_proj4text (p, 3, "o_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / South Dakota South (ftUS)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_"); add_srs_wkt (p, 2, "Network\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMET"); add_srs_wkt (p, 8, "ER[\"standard_parallel_1\",44.4],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_2\",42.83333333333334],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 10, "igin\",42.33333333333334],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 11, ",-100.3333333333333],PARAMETER[\"false_easting\",1968500"); add_srs_wkt (p, 12, "],PARAMETER[\"false_northing\",0],UNIT[\"US survey foot\""); add_srs_wkt (p, 13, ",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\""); add_srs_wkt (p, 14, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3459\"]"); add_srs_wkt (p, 15, "]"); p = add_epsg_def (filter, first, last, 3460, "epsg", 3460, "Fiji 1986 / Fiji Map Grid"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-17 +lon_0=178.75 +k=0.99985 +x_0=200"); add_proj4text (p, 1, "0000 +y_0=4000000 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55"); add_proj4text (p, 2, "4,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Fiji 1986 / Fiji Map Grid\",GEOGCS[\"Fiji 1986\""); add_srs_wkt (p, 1, ",DATUM[\"Fiji_Geodetic_Datum_1986\",SPHEROID[\"WGS 72\","); add_srs_wkt (p, 2, "6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",4.5,0,0,0.554,0.2263],AUTHORITY[\"EPSG\",\"6720\"]],PRI"); add_srs_wkt (p, 4, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4720\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, "Mercator\"],PARAMETER[\"latitude_of_origin\",-17],PARAME"); add_srs_wkt (p, 8, "TER[\"central_meridian\",178.75],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, "r\",0.99985],PARAMETER[\"false_easting\",2000000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",4000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, "TY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nor"); add_srs_wkt (p, 12, "thing\",NORTH],AUTHORITY[\"EPSG\",\"3460\"]]"); p = add_epsg_def (filter, first, last, 3461, "epsg", 3461, "Dabola 1981 / UTM zone 28N"); add_proj4text (p, 0, "+proj=utm +zone=28 +a=6378249.2 +b=6356515 +towgs84=-83,"); add_proj4text (p, 1, "37,124,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Dabola 1981 / UTM zone 28N\",GEOGCS[\"Dabola 19"); add_srs_wkt (p, 1, "81\",DATUM[\"Dabola_1981\",SPHEROID[\"Clarke 1880 (IGN)\""); add_srs_wkt (p, 2, ",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\""); add_srs_wkt (p, 3, "]],TOWGS84[-83,37,124,0,0,0,0],AUTHORITY[\"EPSG\",\"6155"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4155\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-15],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"3461\"]]"); p = add_epsg_def (filter, first, last, 3462, "epsg", 3462, "Dabola 1981 / UTM zone 29N"); add_proj4text (p, 0, "+proj=utm +zone=29 +a=6378249.2 +b=6356515 +towgs84=-83,"); add_proj4text (p, 1, "37,124,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Dabola 1981 / UTM zone 29N\",GEOGCS[\"Dabola 19"); add_srs_wkt (p, 1, "81\",DATUM[\"Dabola_1981\",SPHEROID[\"Clarke 1880 (IGN)\""); add_srs_wkt (p, 2, ",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\""); add_srs_wkt (p, 3, "]],TOWGS84[-83,37,124,0,0,0,0],AUTHORITY[\"EPSG\",\"6155"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4155\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",-9],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"3462\"]]"); p = add_epsg_def (filter, first, last, 3463, "epsg", 3463, "NAD83 / Maine CS2000 Central"); add_proj4text (p, 0, "+proj=tmerc +lat_0=43.5 +lon_0=-69.125 +k=0.99998 +x_0=5"); add_proj4text (p, 1, "00000 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Maine CS2000 Central\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, "Mercator\"],PARAMETER[\"latitude_of_origin\",43.5],PARAM"); add_srs_wkt (p, 8, "ETER[\"central_meridian\",-69.125],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, "tor\",0.99998],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"3463\"]]"); p = add_epsg_def (filter, first, last, 3464, "epsg", 3464, "NAD83(HARN) / Maine CS2000 Central"); add_proj4text (p, 0, "+proj=tmerc +lat_0=43.5 +lon_0=-69.125 +k=0.99998 +x_0=5"); add_proj4text (p, 1, "00000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Maine CS2000 Central\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netwo"); add_srs_wkt (p, 2, "rk\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",43.5],PARAMETER[\"central_meridian\",-69.12"); add_srs_wkt (p, 9, "5],PARAMETER[\"scale_factor\",0.99998],PARAMETER[\"false"); add_srs_wkt (p, 10, "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAS"); add_srs_wkt (p, 12, "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3464\"]]"); p = add_epsg_def (filter, first, last, 3465, "epsg", 3465, "NAD83(NSRS2007) / Alabama East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30.5 +lon_0=-85.83333333333333 +k=0.9"); add_proj4text (p, 1, "9996 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Alabama East\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 7, "59\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",30.5],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",-85.83333333333333],PARAMETER[\"scale_factor\",0.99996]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",200000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"3465\"]]"); p = add_epsg_def (filter, first, last, 3466, "epsg", 3466, "NAD83(NSRS2007) / Alabama West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30 +lon_0=-87.5 +k=0.999933333 +x_0=6"); add_proj4text (p, 1, "00000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Alabama West\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 7, "59\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",30],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "87.5],PARAMETER[\"scale_factor\",0.999933333],PARAMETER["); add_srs_wkt (p, 10, "\"false_easting\",600000],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 11, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3466\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def (filter, first, last, 3467, "epsg", 3467, "NAD83(NSRS2007) / Alaska Albers"); add_proj4text (p, 0, "+proj=aea +lat_1=55 +lat_2=65 +lat_0=50 +lon_0=-154 +x_0"); add_proj4text (p, 1, "=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +"); add_proj4text (p, 2, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Alaska Albers\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "759\"]],PROJECTION[\"Albers_Conic_Equal_Area\"],PARAMETE"); add_srs_wkt (p, 8, "R[\"standard_parallel_1\",55],PARAMETER[\"standard_paral"); add_srs_wkt (p, 9, "lel_2\",65],PARAMETER[\"latitude_of_center\",50],PARAMET"); add_srs_wkt (p, 10, "ER[\"longitude_of_center\",-154],PARAMETER[\"false_easti"); add_srs_wkt (p, 11, "ng\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"3467\"]]"); p = add_epsg_def (filter, first, last, 3468, "epsg", 3468, "NAD83(NSRS2007) / Alaska zone 1"); add_proj4text (p, 0, "+proj=omerc +lat_0=57 +lonc=-133.6666666666667 +alpha=32"); add_proj4text (p, 1, "3.1301023611111 +k=0.9999 +x_0=5000000 +y_0=-5000000 +ga"); add_proj4text (p, 2, "mma=323.1301023611111 +ellps=GRS80 +towgs84=0,0,0,0,0,0,"); add_proj4text (p, 3, "0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Alaska zone 1\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "759\"]],PROJECTION[\"Hotine_Oblique_Mercator\"],PARAMETE"); add_srs_wkt (p, 8, "R[\"latitude_of_center\",57],PARAMETER[\"longitude_of_ce"); add_srs_wkt (p, 9, "nter\",-133.6666666666667],PARAMETER[\"azimuth\",323.130"); add_srs_wkt (p, 10, "1023611111],PARAMETER[\"rectified_grid_angle\",323.13010"); add_srs_wkt (p, 11, "23611111],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\""); add_srs_wkt (p, 12, "false_easting\",5000000],PARAMETER[\"false_northing\",-5"); add_srs_wkt (p, 13, "000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 14, "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 15, "468\"]]"); p = add_epsg_def (filter, first, last, 3469, "epsg", 3469, "NAD83(NSRS2007) / Alaska zone 2"); add_proj4text (p, 0, "+proj=tmerc +lat_0=54 +lon_0=-142 +k=0.9999 +x_0=500000 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Alaska zone 2\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",54],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 9, "-142],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3469\"]]"); p = add_epsg_def (filter, first, last, 3470, "epsg", 3470, "NAD83(NSRS2007) / Alaska zone 3"); add_proj4text (p, 0, "+proj=tmerc +lat_0=54 +lon_0=-146 +k=0.9999 +x_0=500000 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Alaska zone 3\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",54],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 9, "-146],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3470\"]]"); p = add_epsg_def (filter, first, last, 3471, "epsg", 3471, "NAD83(NSRS2007) / Alaska zone 4"); add_proj4text (p, 0, "+proj=tmerc +lat_0=54 +lon_0=-150 +k=0.9999 +x_0=500000 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Alaska zone 4\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",54],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 9, "-150],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3471\"]]"); p = add_epsg_def (filter, first, last, 3472, "epsg", 3472, "NAD83(NSRS2007) / Alaska zone 5"); add_proj4text (p, 0, "+proj=tmerc +lat_0=54 +lon_0=-154 +k=0.9999 +x_0=500000 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Alaska zone 5\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",54],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 9, "-154],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3472\"]]"); p = add_epsg_def (filter, first, last, 3473, "epsg", 3473, "NAD83(NSRS2007) / Alaska zone 6"); add_proj4text (p, 0, "+proj=tmerc +lat_0=54 +lon_0=-158 +k=0.9999 +x_0=500000 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Alaska zone 6\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",54],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 9, "-158],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3473\"]]"); p = add_epsg_def (filter, first, last, 3474, "epsg", 3474, "NAD83(NSRS2007) / Alaska zone 7"); add_proj4text (p, 0, "+proj=tmerc +lat_0=54 +lon_0=-162 +k=0.9999 +x_0=500000 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Alaska zone 7\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",54],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 9, "-162],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3474\"]]"); p = add_epsg_def (filter, first, last, 3475, "epsg", 3475, "NAD83(NSRS2007) / Alaska zone 8"); add_proj4text (p, 0, "+proj=tmerc +lat_0=54 +lon_0=-166 +k=0.9999 +x_0=500000 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Alaska zone 8\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",54],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 9, "-166],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3475\"]]"); p = add_epsg_def (filter, first, last, 3476, "epsg", 3476, "NAD83(NSRS2007) / Alaska zone 9"); add_proj4text (p, 0, "+proj=tmerc +lat_0=54 +lon_0=-170 +k=0.9999 +x_0=500000 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Alaska zone 9\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",54],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 9, "-170],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3476\"]]"); p = add_epsg_def (filter, first, last, 3477, "epsg", 3477, "NAD83(NSRS2007) / Alaska zone 10"); add_proj4text (p, 0, "+proj=lcc +lat_1=53.83333333333334 +lat_2=51.83333333333"); add_proj4text (p, 1, "334 +lat_0=51 +lon_0=-176 +x_0=1000000 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, "80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Alaska zone 10\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_"); add_srs_wkt (p, 2, "System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_1\",53.83333333333334],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_2\",51.83333333333334],PARAMETER"); add_srs_wkt (p, 10, "[\"latitude_of_origin\",51],PARAMETER[\"central_meridian"); add_srs_wkt (p, 11, "\",-176],PARAMETER[\"false_easting\",1000000],PARAMETER["); add_srs_wkt (p, 12, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 14, "[\"EPSG\",\"3477\"]]"); p = add_epsg_def (filter, first, last, 3478, "epsg", 3478, "NAD83(NSRS2007) / Arizona Central"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Arizona Central\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference"); add_srs_wkt (p, 2, "_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, "01,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",31],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 9, "-111.9166666666667],PARAMETER[\"scale_factor\",0.9999],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_easting\",213360],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 12, "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"3478\"]]"); p = add_epsg_def (filter, first, last, 3479, "epsg", 3479, "NAD83(NSRS2007) / Arizona Central (ft)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Arizona Central (ft)\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refe"); add_srs_wkt (p, 2, "rence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25"); add_srs_wkt (p, 3, "7222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,"); add_srs_wkt (p, 4, "0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, "G\",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"latitude_of_origin\",31],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, "dian\",-111.9166666666667],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 10, "9999],PARAMETER[\"false_easting\",700000],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_northing\",0],UNIT[\"foot\",0.3048,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"9002\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"3479\"]]"); p = add_epsg_def (filter, first, last, 3480, "epsg", 3480, "NAD83(NSRS2007) / Arizona East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Arizona East\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 7, "59\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",31],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "110.1666666666667],PARAMETER[\"scale_factor\",0.9999],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_easting\",213360],PARAMETER[\"false_nort"); add_srs_wkt (p, 11, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, ",AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "3480\"]]"); p = add_epsg_def (filter, first, last, 3481, "epsg", 3481, "NAD83(NSRS2007) / Arizona East (ft)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Arizona East (ft)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 8, "R[\"latitude_of_origin\",31],PARAMETER[\"central_meridia"); add_srs_wkt (p, 9, "n\",-110.1666666666667],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 10, "9],PARAMETER[\"false_easting\",700000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",0],UNIT[\"foot\",0.3048,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9002\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"3481\"]]"); p = add_epsg_def (filter, first, last, 3482, "epsg", 3482, "NAD83(NSRS2007) / Arizona West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0"); add_proj4text (p, 1, "=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 2, "s=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Arizona West\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 7, "59\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",31],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "113.75],PARAMETER[\"scale_factor\",0.999933333],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",213360],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3482\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def (filter, first, last, 3483, "epsg", 3483, "NAD83(NSRS2007) / Arizona West (ft)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0"); add_proj4text (p, 1, "=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 2, "s=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Arizona West (ft)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 8, "R[\"latitude_of_origin\",31],PARAMETER[\"central_meridia"); add_srs_wkt (p, 9, "n\",-113.75],PARAMETER[\"scale_factor\",0.999933333],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_easting\",700000],PARAMETER[\"false_north"); add_srs_wkt (p, 11, "ing\",0],UNIT[\"foot\",0.3048,AUTHORITY[\"EPSG\",\"9002\""); add_srs_wkt (p, 12, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"3483\"]]"); p = add_epsg_def (filter, first, last, 3484, "epsg", 3484, "NAD83(NSRS2007) / Arkansas North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333"); add_proj4text (p, 1, "333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=400000 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Arkansas North\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_"); add_srs_wkt (p, 2, "System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_1\",36.23333333333333],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_2\",34.93333333333333],PARAMETER"); add_srs_wkt (p, 10, "[\"latitude_of_origin\",34.33333333333334],PARAMETER[\"c"); add_srs_wkt (p, 11, "entral_meridian\",-92],PARAMETER[\"false_easting\",40000"); add_srs_wkt (p, 12, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 13, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 14, "RTH],AUTHORITY[\"EPSG\",\"3484\"]]"); p = add_epsg_def (filter, first, last, 3485, "epsg", 3485, "NAD83(NSRS2007) / Arkansas North (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333"); add_proj4text (p, 1, "333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=399999.9999"); add_proj4text (p, 2, "8984 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=u"); add_proj4text (p, 3, "s-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Arkansas North (ftUS)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Ref"); add_srs_wkt (p, 2, "erence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2"); add_srs_wkt (p, 3, "57222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0"); add_srs_wkt (p, 4, ",0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 8, "\"],PARAMETER[\"standard_parallel_1\",36.23333333333333]"); add_srs_wkt (p, 9, ",PARAMETER[\"standard_parallel_2\",34.93333333333333],PA"); add_srs_wkt (p, 10, "RAMETER[\"latitude_of_origin\",34.33333333333334],PARAME"); add_srs_wkt (p, 11, "TER[\"central_meridian\",-92],PARAMETER[\"false_easting\""); add_srs_wkt (p, 12, ",1312333.3333],PARAMETER[\"false_northing\",0],UNIT[\"US"); add_srs_wkt (p, 13, " survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 14, "003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 15, "PSG\",\"3485\"]]"); p = add_epsg_def (filter, first, last, 3486, "epsg", 3486, "NAD83(NSRS2007) / Arkansas South"); add_proj4text (p, 0, "+proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32"); add_proj4text (p, 1, ".66666666666666 +lon_0=-92 +x_0=400000 +y_0=400000 +ellp"); add_proj4text (p, 2, "s=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Arkansas South\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_"); add_srs_wkt (p, 2, "System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_1\",34.76666666666667],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_2\",33.3],PARAMETER[\"latitude_o"); add_srs_wkt (p, 10, "f_origin\",32.66666666666666],PARAMETER[\"central_meridi"); add_srs_wkt (p, 11, "an\",-92],PARAMETER[\"false_easting\",400000],PARAMETER["); add_srs_wkt (p, 12, "\"false_northing\",400000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 14, "HORITY[\"EPSG\",\"3486\"]]"); p = add_epsg_def (filter, first, last, 3487, "epsg", 3487, "NAD83(NSRS2007) / Arkansas South (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32"); add_proj4text (p, 1, ".66666666666666 +lon_0=-92 +x_0=399999.99998984 +y_0=399"); add_proj4text (p, 2, "999.99998984 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 3, "us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Arkansas South (ftUS)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Ref"); add_srs_wkt (p, 2, "erence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2"); add_srs_wkt (p, 3, "57222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0"); add_srs_wkt (p, 4, ",0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 8, "\"],PARAMETER[\"standard_parallel_1\",34.76666666666667]"); add_srs_wkt (p, 9, ",PARAMETER[\"standard_parallel_2\",33.3],PARAMETER[\"lat"); add_srs_wkt (p, 10, "itude_of_origin\",32.66666666666666],PARAMETER[\"central"); add_srs_wkt (p, 11, "_meridian\",-92],PARAMETER[\"false_easting\",1312333.333"); add_srs_wkt (p, 12, "3],PARAMETER[\"false_northing\",1312333.3333],UNIT[\"US "); add_srs_wkt (p, 13, "survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 14, "03\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP"); add_srs_wkt (p, 15, "SG\",\"3487\"]]"); p = add_epsg_def (filter, first, last, 3488, "epsg", 3488, "NAD83(NSRS2007) / California Albers"); add_proj4text (p, 0, "+proj=aea +lat_1=34 +lat_2=40.5 +lat_0=0 +lon_0=-120 +x_"); add_proj4text (p, 1, "0=0 +y_0=-4000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / California Albers\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4759\"]],PROJECTION[\"Albers_Conic_Equal_Area\"],PARA"); add_srs_wkt (p, 8, "METER[\"standard_parallel_1\",34],PARAMETER[\"standard_p"); add_srs_wkt (p, 9, "arallel_2\",40.5],PARAMETER[\"latitude_of_center\",0],PA"); add_srs_wkt (p, 10, "RAMETER[\"longitude_of_center\",-120],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",0],PARAMETER[\"false_northing\",-4000000],UNIT"); add_srs_wkt (p, 12, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3488\"]]"); p = add_epsg_def (filter, first, last, 3489, "epsg", 3489, "NAD83(NSRS2007) / California zone 1"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.3"); add_proj4text (p, 1, "3333333333334 +lon_0=-122 +x_0=2000000 +y_0=500000 +ellp"); add_proj4text (p, 2, "s=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / California zone 1\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 8, "PARAMETER[\"standard_parallel_1\",41.66666666666666],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_2\",40],PARAMETER[\"latitude_"); add_srs_wkt (p, 10, "of_origin\",39.33333333333334],PARAMETER[\"central_merid"); add_srs_wkt (p, 11, "ian\",-122],PARAMETER[\"false_easting\",2000000],PARAMET"); add_srs_wkt (p, 12, "ER[\"false_northing\",500000],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 14, "AUTHORITY[\"EPSG\",\"3489\"]]"); p = add_epsg_def (filter, first, last, 3490, "epsg", 3490, "NAD83(NSRS2007) / California zone 1 (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.3"); add_proj4text (p, 1, "3333333333334 +lon_0=-122 +x_0=2000000.0001016 +y_0=5000"); add_proj4text (p, 2, "00.0001016001 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units"); add_proj4text (p, 3, "=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / California zone 1 (ftUS)\",GE"); add_srs_wkt (p, 1, "OGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_"); add_srs_wkt (p, 2, "Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137,29"); add_srs_wkt (p, 3, "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,"); add_srs_wkt (p, 4, "0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 5, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 6, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 7, "EPSG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2"); add_srs_wkt (p, 8, "SP\"],PARAMETER[\"standard_parallel_1\",41.6666666666666"); add_srs_wkt (p, 9, "6],PARAMETER[\"standard_parallel_2\",40],PARAMETER[\"lat"); add_srs_wkt (p, 10, "itude_of_origin\",39.33333333333334],PARAMETER[\"central"); add_srs_wkt (p, 11, "_meridian\",-122],PARAMETER[\"false_easting\",6561666.66"); add_srs_wkt (p, 12, "7],PARAMETER[\"false_northing\",1640416.667],UNIT[\"US s"); add_srs_wkt (p, 13, "urvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 14, "3\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 15, "G\",\"3490\"]]"); p = add_epsg_def (filter, first, last, 3491, "epsg", 3491, "NAD83(NSRS2007) / California zone 2"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333"); add_proj4text (p, 1, "334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000 +y"); add_proj4text (p, 2, "_0=500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / California zone 2\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 8, "PARAMETER[\"standard_parallel_1\",39.83333333333334],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_2\",38.33333333333334],PARAME"); add_srs_wkt (p, 10, "TER[\"latitude_of_origin\",37.66666666666666],PARAMETER["); add_srs_wkt (p, 11, "\"central_meridian\",-122],PARAMETER[\"false_easting\",2"); add_srs_wkt (p, 12, "000000],PARAMETER[\"false_northing\",500000],UNIT[\"metr"); add_srs_wkt (p, 13, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI"); add_srs_wkt (p, 14, "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3491\"]]"); p = add_epsg_def (filter, first, last, 3492, "epsg", 3492, "NAD83(NSRS2007) / California zone 2 (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333"); add_proj4text (p, 1, "334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000.00"); add_proj4text (p, 2, "01016 +y_0=500000.0001016001 +ellps=GRS80 +towgs84=0,0,0"); add_proj4text (p, 3, ",0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / California zone 2 (ftUS)\",GE"); add_srs_wkt (p, 1, "OGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_"); add_srs_wkt (p, 2, "Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137,29"); add_srs_wkt (p, 3, "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,"); add_srs_wkt (p, 4, "0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 5, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 6, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 7, "EPSG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2"); add_srs_wkt (p, 8, "SP\"],PARAMETER[\"standard_parallel_1\",39.8333333333333"); add_srs_wkt (p, 9, "4],PARAMETER[\"standard_parallel_2\",38.33333333333334],"); add_srs_wkt (p, 10, "PARAMETER[\"latitude_of_origin\",37.66666666666666],PARA"); add_srs_wkt (p, 11, "METER[\"central_meridian\",-122],PARAMETER[\"false_easti"); add_srs_wkt (p, 12, "ng\",6561666.667],PARAMETER[\"false_northing\",1640416.6"); add_srs_wkt (p, 13, "67],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY"); add_srs_wkt (p, 14, "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 15, "AUTHORITY[\"EPSG\",\"3492\"]]"); p = add_epsg_def (filter, first, last, 3493, "epsg", 3493, "NAD83(NSRS2007) / California zone 3"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666"); add_proj4text (p, 1, "667 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000 +y_0=500000 +"); add_proj4text (p, 2, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / California zone 3\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 8, "PARAMETER[\"standard_parallel_1\",38.43333333333333],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_2\",37.06666666666667],PARAME"); add_srs_wkt (p, 10, "TER[\"latitude_of_origin\",36.5],PARAMETER[\"central_mer"); add_srs_wkt (p, 11, "idian\",-120.5],PARAMETER[\"false_easting\",2000000],PAR"); add_srs_wkt (p, 12, "AMETER[\"false_northing\",500000],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); add_srs_wkt (p, 14, "TH],AUTHORITY[\"EPSG\",\"3493\"]]"); p = add_epsg_def (filter, first, last, 3494, "epsg", 3494, "NAD83(NSRS2007) / California zone 3 (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666"); add_proj4text (p, 1, "667 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000.0001016 +y_0="); add_proj4text (p, 2, "500000.0001016001 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 3, "nits=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / California zone 3 (ftUS)\",GE"); add_srs_wkt (p, 1, "OGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_"); add_srs_wkt (p, 2, "Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137,29"); add_srs_wkt (p, 3, "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,"); add_srs_wkt (p, 4, "0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 5, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 6, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 7, "EPSG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2"); add_srs_wkt (p, 8, "SP\"],PARAMETER[\"standard_parallel_1\",38.4333333333333"); add_srs_wkt (p, 9, "3],PARAMETER[\"standard_parallel_2\",37.06666666666667],"); add_srs_wkt (p, 10, "PARAMETER[\"latitude_of_origin\",36.5],PARAMETER[\"centr"); add_srs_wkt (p, 11, "al_meridian\",-120.5],PARAMETER[\"false_easting\",656166"); add_srs_wkt (p, 12, "6.667],PARAMETER[\"false_northing\",1640416.667],UNIT[\""); add_srs_wkt (p, 13, "US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 15, "EPSG\",\"3494\"]]"); p = add_epsg_def (filter, first, last, 3495, "epsg", 3495, "NAD83(NSRS2007) / California zone 4"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.3333333333333"); add_proj4text (p, 1, "4 +lon_0=-119 +x_0=2000000 +y_0=500000 +ellps=GRS80 +tow"); add_proj4text (p, 2, "gs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / California zone 4\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 8, "PARAMETER[\"standard_parallel_1\",37.25],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_2\",36],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 10, "35.33333333333334],PARAMETER[\"central_meridian\",-119],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",2000000],PARAMETER[\"false_n"); add_srs_wkt (p, 12, "orthing\",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"3495\"]]"); p = add_epsg_def (filter, first, last, 3496, "epsg", 3496, "NAD83(NSRS2007) / California zone 4 (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.3333333333333"); add_proj4text (p, 1, "4 +lon_0=-119 +x_0=2000000.0001016 +y_0=500000.000101600"); add_proj4text (p, 2, "1 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_d"); add_proj4text (p, 3, "efs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / California zone 4 (ftUS)\",GE"); add_srs_wkt (p, 1, "OGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_"); add_srs_wkt (p, 2, "Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137,29"); add_srs_wkt (p, 3, "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,"); add_srs_wkt (p, 4, "0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 5, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 6, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 7, "EPSG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2"); add_srs_wkt (p, 8, "SP\"],PARAMETER[\"standard_parallel_1\",37.25],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_2\",36],PARAMETER[\"latitude_of_ori"); add_srs_wkt (p, 10, "gin\",35.33333333333334],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 11, "-119],PARAMETER[\"false_easting\",6561666.667],PARAMETER"); add_srs_wkt (p, 12, "[\"false_northing\",1640416.667],UNIT[\"US survey foot\""); add_srs_wkt (p, 13, ",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\""); add_srs_wkt (p, 14, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3496\"]"); add_srs_wkt (p, 15, "]"); p = add_epsg_def (filter, first, last, 3497, "epsg", 3497, "NAD83(NSRS2007) / California zone 5"); add_proj4text (p, 0, "+proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333"); add_proj4text (p, 1, "333 +lat_0=33.5 +lon_0=-118 +x_0=2000000 +y_0=500000 +el"); add_proj4text (p, 2, "lps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / California zone 5\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 8, "PARAMETER[\"standard_parallel_1\",35.46666666666667],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_2\",34.03333333333333],PARAME"); add_srs_wkt (p, 10, "TER[\"latitude_of_origin\",33.5],PARAMETER[\"central_mer"); add_srs_wkt (p, 11, "idian\",-118],PARAMETER[\"false_easting\",2000000],PARAM"); add_srs_wkt (p, 12, "ETER[\"false_northing\",500000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 14, "],AUTHORITY[\"EPSG\",\"3497\"]]"); p = add_epsg_def (filter, first, last, 3498, "epsg", 3498, "NAD83(NSRS2007) / California zone 5 (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333"); add_proj4text (p, 1, "333 +lat_0=33.5 +lon_0=-118 +x_0=2000000.0001016 +y_0=50"); add_proj4text (p, 2, "0000.0001016001 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +uni"); add_proj4text (p, 3, "ts=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / California zone 5 (ftUS)\",GE"); add_srs_wkt (p, 1, "OGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_"); add_srs_wkt (p, 2, "Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137,29"); add_srs_wkt (p, 3, "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,"); add_srs_wkt (p, 4, "0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 5, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 6, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 7, "EPSG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2"); add_srs_wkt (p, 8, "SP\"],PARAMETER[\"standard_parallel_1\",35.4666666666666"); add_srs_wkt (p, 9, "7],PARAMETER[\"standard_parallel_2\",34.03333333333333],"); add_srs_wkt (p, 10, "PARAMETER[\"latitude_of_origin\",33.5],PARAMETER[\"centr"); add_srs_wkt (p, 11, "al_meridian\",-118],PARAMETER[\"false_easting\",6561666."); add_srs_wkt (p, 12, "667],PARAMETER[\"false_northing\",1640416.667],UNIT[\"US"); add_srs_wkt (p, 13, " survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 14, "003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 15, "PSG\",\"3498\"]]"); p = add_epsg_def (filter, first, last, 3499, "epsg", 3499, "NAD83(NSRS2007) / California zone 6"); add_proj4text (p, 0, "+proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333"); add_proj4text (p, 1, "333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000"); add_proj4text (p, 2, " +y_0=500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 3, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / California zone 6\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 8, "PARAMETER[\"standard_parallel_1\",33.88333333333333],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_2\",32.78333333333333],PARAME"); add_srs_wkt (p, 10, "TER[\"latitude_of_origin\",32.16666666666666],PARAMETER["); add_srs_wkt (p, 11, "\"central_meridian\",-116.25],PARAMETER[\"false_easting\""); add_srs_wkt (p, 12, ",2000000],PARAMETER[\"false_northing\",500000],UNIT[\"me"); add_srs_wkt (p, 13, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A"); add_srs_wkt (p, 14, "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3499\"]]"); p = add_epsg_def (filter, first, last, 3500, "epsg", 3500, "NAD83(NSRS2007) / California zone 6 (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333"); add_proj4text (p, 1, "333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000"); add_proj4text (p, 2, ".0001016 +y_0=500000.0001016001 +ellps=GRS80 +towgs84=0,"); add_proj4text (p, 3, "0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / California zone 6 (ftUS)\",GE"); add_srs_wkt (p, 1, "OGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_"); add_srs_wkt (p, 2, "Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137,29"); add_srs_wkt (p, 3, "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,"); add_srs_wkt (p, 4, "0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 5, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 6, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 7, "EPSG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2"); add_srs_wkt (p, 8, "SP\"],PARAMETER[\"standard_parallel_1\",33.8833333333333"); add_srs_wkt (p, 9, "3],PARAMETER[\"standard_parallel_2\",32.78333333333333],"); add_srs_wkt (p, 10, "PARAMETER[\"latitude_of_origin\",32.16666666666666],PARA"); add_srs_wkt (p, 11, "METER[\"central_meridian\",-116.25],PARAMETER[\"false_ea"); add_srs_wkt (p, 12, "sting\",6561666.667],PARAMETER[\"false_northing\",164041"); add_srs_wkt (p, 13, "6.667],UNIT[\"US survey foot\",0.3048006096012192,AUTHOR"); add_srs_wkt (p, 14, "ITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); add_srs_wkt (p, 15, "H],AUTHORITY[\"EPSG\",\"3500\"]]"); p = add_epsg_def (filter, first, last, 3501, "epsg", 3501, "NAD83(NSRS2007) / Colorado Central"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.8333333333"); add_proj4text (p, 1, "3334 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +el"); add_proj4text (p, 2, "lps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Colorado Central\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referenc"); add_srs_wkt (p, 2, "e_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],P"); add_srs_wkt (p, 8, "ARAMETER[\"standard_parallel_1\",39.75],PARAMETER[\"stan"); add_srs_wkt (p, 9, "dard_parallel_2\",38.45],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 10, ",37.83333333333334],PARAMETER[\"central_meridian\",-105."); add_srs_wkt (p, 11, "5],PARAMETER[\"false_easting\",914401.8289],PARAMETER[\""); add_srs_wkt (p, 12, "false_northing\",304800.6096],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 14, "AUTHORITY[\"EPSG\",\"3501\"]]"); p = add_epsg_def (filter, first, last, 3502, "epsg", 3502, "NAD83(NSRS2007) / Colorado Central (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.8333333333"); add_proj4text (p, 1, "3334 +lon_0=-105.5 +x_0=914401.8288036576 +y_0=304800.60"); add_proj4text (p, 2, "96012192 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-f"); add_proj4text (p, 3, "t +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Colorado Central (ftUS)\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_R"); add_srs_wkt (p, 2, "eference_System_2007\",SPHEROID[\"GRS 1980\",6378137,298"); add_srs_wkt (p, 3, ".257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0"); add_srs_wkt (p, 4, ",0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 5, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 6, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 7, "EPSG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2"); add_srs_wkt (p, 8, "SP\"],PARAMETER[\"standard_parallel_1\",39.75],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_2\",38.45],PARAMETER[\"latitude_of_"); add_srs_wkt (p, 10, "origin\",37.83333333333334],PARAMETER[\"central_meridian"); add_srs_wkt (p, 11, "\",-105.5],PARAMETER[\"false_easting\",3000000],PARAMETE"); add_srs_wkt (p, 12, "R[\"false_northing\",1000000],UNIT[\"US survey foot\",0."); add_srs_wkt (p, 13, "3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); add_srs_wkt (p, 14, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3502\"]]"); p = add_epsg_def (filter, first, last, 3503, "epsg", 3503, "NAD83(NSRS2007) / Colorado North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.78333333333333 +lat_2=39.71666666666"); add_proj4text (p, 1, "667 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8"); add_proj4text (p, 2, "289 +y_0=304800.6096 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 3, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Colorado North\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_"); add_srs_wkt (p, 2, "System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_1\",40.78333333333333],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_2\",39.71666666666667],PARAMETER"); add_srs_wkt (p, 10, "[\"latitude_of_origin\",39.33333333333334],PARAMETER[\"c"); add_srs_wkt (p, 11, "entral_meridian\",-105.5],PARAMETER[\"false_easting\",91"); add_srs_wkt (p, 12, "4401.8289],PARAMETER[\"false_northing\",304800.6096],UNI"); add_srs_wkt (p, 13, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",E"); add_srs_wkt (p, 14, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3503\"]]"); p = add_epsg_def (filter, first, last, 3504, "epsg", 3504, "NAD83(NSRS2007) / Colorado North (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.78333333333333 +lat_2=39.71666666666"); add_proj4text (p, 1, "667 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8"); add_proj4text (p, 2, "288036576 +y_0=304800.6096012192 +ellps=GRS80 +towgs84=0"); add_proj4text (p, 3, ",0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Colorado North (ftUS)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Ref"); add_srs_wkt (p, 2, "erence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2"); add_srs_wkt (p, 3, "57222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0"); add_srs_wkt (p, 4, ",0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 8, "\"],PARAMETER[\"standard_parallel_1\",40.78333333333333]"); add_srs_wkt (p, 9, ",PARAMETER[\"standard_parallel_2\",39.71666666666667],PA"); add_srs_wkt (p, 10, "RAMETER[\"latitude_of_origin\",39.33333333333334],PARAME"); add_srs_wkt (p, 11, "TER[\"central_meridian\",-105.5],PARAMETER[\"false_easti"); add_srs_wkt (p, 12, "ng\",3000000],PARAMETER[\"false_northing\",1000000],UNIT"); add_srs_wkt (p, 13, "[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 15, "[\"EPSG\",\"3504\"]]"); p = add_epsg_def (filter, first, last, 3505, "epsg", 3505, "NAD83(NSRS2007) / Colorado South"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333"); add_proj4text (p, 1, "333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8"); add_proj4text (p, 2, "289 +y_0=304800.6096 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 3, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Colorado South\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_"); add_srs_wkt (p, 2, "System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_1\",38.43333333333333],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_2\",37.23333333333333],PARAMETER"); add_srs_wkt (p, 10, "[\"latitude_of_origin\",36.66666666666666],PARAMETER[\"c"); add_srs_wkt (p, 11, "entral_meridian\",-105.5],PARAMETER[\"false_easting\",91"); add_srs_wkt (p, 12, "4401.8289],PARAMETER[\"false_northing\",304800.6096],UNI"); add_srs_wkt (p, 13, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",E"); add_srs_wkt (p, 14, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3505\"]]"); p = add_epsg_def (filter, first, last, 3506, "epsg", 3506, "NAD83(NSRS2007) / Colorado South (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333"); add_proj4text (p, 1, "333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8"); add_proj4text (p, 2, "288036576 +y_0=304800.6096012192 +ellps=GRS80 +towgs84=0"); add_proj4text (p, 3, ",0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Colorado South (ftUS)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Ref"); add_srs_wkt (p, 2, "erence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2"); add_srs_wkt (p, 3, "57222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0"); add_srs_wkt (p, 4, ",0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 8, "\"],PARAMETER[\"standard_parallel_1\",38.43333333333333]"); add_srs_wkt (p, 9, ",PARAMETER[\"standard_parallel_2\",37.23333333333333],PA"); add_srs_wkt (p, 10, "RAMETER[\"latitude_of_origin\",36.66666666666666],PARAME"); add_srs_wkt (p, 11, "TER[\"central_meridian\",-105.5],PARAMETER[\"false_easti"); add_srs_wkt (p, 12, "ng\",3000000],PARAMETER[\"false_northing\",1000000],UNIT"); add_srs_wkt (p, 13, "[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 15, "[\"EPSG\",\"3506\"]]"); p = add_epsg_def (filter, first, last, 3507, "epsg", 3507, "NAD83(NSRS2007) / Connecticut"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40"); add_proj4text (p, 1, ".83333333333334 +lon_0=-72.75 +x_0=304800.6096 +y_0=1524"); add_proj4text (p, 2, "00.3048 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no"); add_proj4text (p, 3, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Connecticut\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, "tem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"475"); add_srs_wkt (p, 7, "9\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); add_srs_wkt (p, 8, "TER[\"standard_parallel_1\",41.86666666666667],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_2\",41.2],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 10, "rigin\",40.83333333333334],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 11, ",-72.75],PARAMETER[\"false_easting\",304800.6096],PARAME"); add_srs_wkt (p, 12, "TER[\"false_northing\",152400.3048],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); add_srs_wkt (p, 14, "ORTH],AUTHORITY[\"EPSG\",\"3507\"]]"); p = add_epsg_def (filter, first, last, 3508, "epsg", 3508, "NAD83(NSRS2007) / Connecticut (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40"); add_proj4text (p, 1, ".83333333333334 +lon_0=-72.75 +x_0=304800.6096012192 +y_"); add_proj4text (p, 2, "0=152400.3048006096 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 "); add_proj4text (p, 3, "+units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Connecticut (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 8, "PARAMETER[\"standard_parallel_1\",41.86666666666667],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_2\",41.2],PARAMETER[\"latitud"); add_srs_wkt (p, 10, "e_of_origin\",40.83333333333334],PARAMETER[\"central_mer"); add_srs_wkt (p, 11, "idian\",-72.75],PARAMETER[\"false_easting\",1000000],PAR"); add_srs_wkt (p, 12, "AMETER[\"false_northing\",500000],UNIT[\"US survey foot\""); add_srs_wkt (p, 13, ",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\""); add_srs_wkt (p, 14, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3508\"]"); add_srs_wkt (p, 15, "]"); p = add_epsg_def (filter, first, last, 3509, "epsg", 3509, "NAD83(NSRS2007) / Delaware"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999"); add_proj4text (p, 1, "995 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 2, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Delaware\",GEOGCS[\"NAD83(NSR"); add_srs_wkt (p, 1, "S2007)\",DATUM[\"NAD83_National_Spatial_Reference_System"); add_srs_wkt (p, 2, "_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4759\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",38],PARAMETER[\"central_meridian\",-75.4"); add_srs_wkt (p, 9, "1666666666667],PARAMETER[\"scale_factor\",0.999995],PARA"); add_srs_wkt (p, 10, "METER[\"false_easting\",200000],PARAMETER[\"false_northi"); add_srs_wkt (p, 11, "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 12, "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "509\"]]"); p = add_epsg_def (filter, first, last, 3510, "epsg", 3510, "NAD83(NSRS2007) / Delaware (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999"); add_proj4text (p, 1, "995 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +towgs84="); add_proj4text (p, 2, "0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Delaware (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference"); add_srs_wkt (p, 2, "_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, "01,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",38],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 9, "-75.41666666666667],PARAMETER[\"scale_factor\",0.999995]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",656166.667],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012"); add_srs_wkt (p, 12, "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS["); add_srs_wkt (p, 13, "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3510\"]]"); p = add_epsg_def (filter, first, last, 3511, "epsg", 3511, "NAD83(NSRS2007) / Florida East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999"); add_proj4text (p, 1, "941177 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Florida East\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 7, "59\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",24.33333333333333],PARAMETER[\"centr"); add_srs_wkt (p, 9, "al_meridian\",-81],PARAMETER[\"scale_factor\",0.99994117"); add_srs_wkt (p, 10, "7],PARAMETER[\"false_easting\",200000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, "1\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"3511\"]]"); p = add_epsg_def (filter, first, last, 3512, "epsg", 3512, "NAD83(NSRS2007) / Florida East (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999"); add_proj4text (p, 1, "941177 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +towgs"); add_proj4text (p, 2, "84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Florida East (ftUS)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); add_srs_wkt (p, 8, "TER[\"latitude_of_origin\",24.33333333333333],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",-81],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 10, "99941177],PARAMETER[\"false_easting\",656166.667],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",0],UNIT[\"US survey foot\",0.3048"); add_srs_wkt (p, 12, "006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3512\"]]"); p = add_epsg_def (filter, first, last, 3513, "epsg", 3513, "NAD83(NSRS2007) / Florida GDL Albers"); add_proj4text (p, 0, "+proj=aea +lat_1=24 +lat_2=31.5 +lat_0=24 +lon_0=-84 +x_"); add_proj4text (p, 1, "0=400000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +uni"); add_proj4text (p, 2, "ts=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Florida GDL Albers\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4759\"]],PROJECTION[\"Albers_Conic_Equal_Area\"],PARA"); add_srs_wkt (p, 8, "METER[\"standard_parallel_1\",24],PARAMETER[\"standard_p"); add_srs_wkt (p, 9, "arallel_2\",31.5],PARAMETER[\"latitude_of_center\",24],P"); add_srs_wkt (p, 10, "ARAMETER[\"longitude_of_center\",-84],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",400000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 12, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 13, ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3513\"]]"); p = add_epsg_def (filter, first, last, 3514, "epsg", 3514, "NAD83(NSRS2007) / Florida North"); add_proj4text (p, 0, "+proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=2"); add_proj4text (p, 1, "9 +lon_0=-84.5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84="); add_proj4text (p, 2, "0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Florida North\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARA"); add_srs_wkt (p, 8, "METER[\"standard_parallel_1\",30.75],PARAMETER[\"standar"); add_srs_wkt (p, 9, "d_parallel_2\",29.58333333333333],PARAMETER[\"latitude_o"); add_srs_wkt (p, 10, "f_origin\",29],PARAMETER[\"central_meridian\",-84.5],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_easting\",600000],PARAMETER[\"false_north"); add_srs_wkt (p, 12, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 13, "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "3514\"]]"); p = add_epsg_def (filter, first, last, 3515, "epsg", 3515, "NAD83(NSRS2007) / Florida North (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=2"); add_proj4text (p, 1, "9 +lon_0=-84.5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84="); add_proj4text (p, 2, "0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Florida North (ftUS)\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refe"); add_srs_wkt (p, 2, "rence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25"); add_srs_wkt (p, 3, "7222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,"); add_srs_wkt (p, 4, "0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, "G\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 8, "],PARAMETER[\"standard_parallel_1\",30.75],PARAMETER[\"s"); add_srs_wkt (p, 9, "tandard_parallel_2\",29.58333333333333],PARAMETER[\"lati"); add_srs_wkt (p, 10, "tude_of_origin\",29],PARAMETER[\"central_meridian\",-84."); add_srs_wkt (p, 11, "5],PARAMETER[\"false_easting\",1968500],PARAMETER[\"fals"); add_srs_wkt (p, 12, "e_northing\",0],UNIT[\"US survey foot\",0.30480060960121"); add_srs_wkt (p, 13, "92,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 14, "Y\",NORTH],AUTHORITY[\"EPSG\",\"3515\"]]"); p = add_epsg_def (filter, first, last, 3516, "epsg", 3516, "NAD83(NSRS2007) / Florida West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999"); add_proj4text (p, 1, "941177 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Florida West\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 7, "59\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",24.33333333333333],PARAMETER[\"centr"); add_srs_wkt (p, 9, "al_meridian\",-82],PARAMETER[\"scale_factor\",0.99994117"); add_srs_wkt (p, 10, "7],PARAMETER[\"false_easting\",200000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, "1\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"3516\"]]"); p = add_epsg_def (filter, first, last, 3517, "epsg", 3517, "NAD83(NSRS2007) / Florida West (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999"); add_proj4text (p, 1, "941177 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +towgs"); add_proj4text (p, 2, "84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Florida West (ftUS)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); add_srs_wkt (p, 8, "TER[\"latitude_of_origin\",24.33333333333333],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",-82],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 10, "99941177],PARAMETER[\"false_easting\",656166.667],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",0],UNIT[\"US survey foot\",0.3048"); add_srs_wkt (p, 12, "006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3517\"]]"); p = add_epsg_def (filter, first, last, 3518, "epsg", 3518, "NAD83(NSRS2007) / Georgia East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Georgia East\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 7, "59\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",30],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "82.16666666666667],PARAMETER[\"scale_factor\",0.9999],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_easting\",200000],PARAMETER[\"false_nort"); add_srs_wkt (p, 11, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, ",AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "3518\"]]"); p = add_epsg_def (filter, first, last, 3519, "epsg", 3519, "NAD83(NSRS2007) / Georgia East (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +towgs84=0,"); add_proj4text (p, 2, "0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Georgia East (ftUS)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); add_srs_wkt (p, 8, "TER[\"latitude_of_origin\",30],PARAMETER[\"central_merid"); add_srs_wkt (p, 9, "ian\",-82.16666666666667],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 10, "999],PARAMETER[\"false_easting\",656166.667],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"US survey foot\",0.3048006096"); add_srs_wkt (p, 12, "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 13, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3519\"]]"); p = add_epsg_def (filter, first, last, 3520, "epsg", 3520, "NAD83(NSRS2007) / Georgia West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=700000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Georgia West\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 7, "59\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",30],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "84.16666666666667],PARAMETER[\"scale_factor\",0.9999],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_easting\",700000],PARAMETER[\"false_nort"); add_srs_wkt (p, 11, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, ",AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "3520\"]]"); p = add_epsg_def (filter, first, last, 3521, "epsg", 3521, "NAD83(NSRS2007) / Georgia West (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=699999.9998983998 +y_0=0 +ellps=GRS80 +towgs84=0,"); add_proj4text (p, 2, "0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Georgia West (ftUS)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); add_srs_wkt (p, 8, "TER[\"latitude_of_origin\",30],PARAMETER[\"central_merid"); add_srs_wkt (p, 9, "ian\",-84.16666666666667],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 10, "999],PARAMETER[\"false_easting\",2296583.333],PARAMETER["); add_srs_wkt (p, 11, "\"false_northing\",0],UNIT[\"US survey foot\",0.30480060"); add_srs_wkt (p, 12, "96012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],"); add_srs_wkt (p, 13, "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3521\"]]"); p = add_epsg_def (filter, first, last, 3522, "epsg", 3522, "NAD83(NSRS2007) / Idaho Central"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.99"); add_proj4text (p, 1, "99473679999999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84="); add_proj4text (p, 2, "0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Idaho Central\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",41.66666666666666],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",-114],PARAMETER[\"scale_factor\",0.999947"); add_srs_wkt (p, 10, "368],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 12, "001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"3522\"]]"); p = add_epsg_def (filter, first, last, 3523, "epsg", 3523, "NAD83(NSRS2007) / Idaho Central (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.99"); add_proj4text (p, 1, "99473679999999 +x_0=500000.0001016001 +y_0=0 +ellps=GRS8"); add_proj4text (p, 2, "0 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Idaho Central (ftUS)\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refe"); add_srs_wkt (p, 2, "rence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25"); add_srs_wkt (p, 3, "7222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,"); add_srs_wkt (p, 4, "0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, "G\",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"latitude_of_origin\",41.66666666666666],PARAMETER"); add_srs_wkt (p, 9, "[\"central_meridian\",-114],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".999947368],PARAMETER[\"false_easting\",1640416.667],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"US survey foot\",0.3"); add_srs_wkt (p, 12, "048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); add_srs_wkt (p, 13, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3523\"]]"); p = add_epsg_def (filter, first, last, 3524, "epsg", 3524, "NAD83(NSRS2007) / Idaho East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666"); add_proj4text (p, 1, "666667 +k=0.9999473679999999 +x_0=200000 +y_0=0 +ellps=G"); add_proj4text (p, 2, "RS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Idaho East\",GEOGCS[\"NAD83(N"); add_srs_wkt (p, 1, "SRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Syst"); add_srs_wkt (p, 2, "em_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4759"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",41.66666666666666],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",-112.1666666666667],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",0.999947368],PARAMETER[\"false_easting\",200000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"3524\"]]"); p = add_epsg_def (filter, first, last, 3525, "epsg", 3525, "NAD83(NSRS2007) / Idaho East (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666"); add_proj4text (p, 1, "666667 +k=0.9999473679999999 +x_0=200000.0001016002 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_"); add_proj4text (p, 3, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Idaho East (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 8, "R[\"latitude_of_origin\",41.66666666666666],PARAMETER[\""); add_srs_wkt (p, 9, "central_meridian\",-112.1666666666667],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.999947368],PARAMETER[\"false_easting\",65616"); add_srs_wkt (p, 11, "6.667],PARAMETER[\"false_northing\",0],UNIT[\"US survey "); add_srs_wkt (p, 12, "foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],"); add_srs_wkt (p, 13, "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "3525\"]]"); p = add_epsg_def (filter, first, last, 3526, "epsg", 3526, "NAD83(NSRS2007) / Idaho West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0"); add_proj4text (p, 1, ".999933333 +x_0=800000 +y_0=0 +ellps=GRS80 +towgs84=0,0,"); add_proj4text (p, 2, "0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Idaho West\",GEOGCS[\"NAD83(N"); add_srs_wkt (p, 1, "SRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Syst"); add_srs_wkt (p, 2, "em_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4759"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",41.66666666666666],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",-115.75],PARAMETER[\"scale_factor\",0.999933"); add_srs_wkt (p, 10, "333],PARAMETER[\"false_easting\",800000],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 12, "001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"3526\"]]"); p = add_epsg_def (filter, first, last, 3527, "epsg", 3527, "NAD83(NSRS2007) / Idaho West (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0"); add_proj4text (p, 1, ".999933333 +x_0=800000.0001016001 +y_0=0 +ellps=GRS80 +t"); add_proj4text (p, 2, "owgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Idaho West (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 8, "R[\"latitude_of_origin\",41.66666666666666],PARAMETER[\""); add_srs_wkt (p, 9, "central_meridian\",-115.75],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".999933333],PARAMETER[\"false_easting\",2624666.667],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"US survey foot\",0.3"); add_srs_wkt (p, 12, "048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); add_srs_wkt (p, 13, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3527\"]]"); p = add_epsg_def (filter, first, last, 3528, "epsg", 3528, "NAD83(NSRS2007) / Illinois East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333"); add_proj4text (p, 1, "333333 +k=0.9999749999999999 +x_0=300000 +y_0=0 +ellps=G"); add_proj4text (p, 2, "RS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Illinois East\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",36.66666666666666],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",-88.33333333333333],PARAMETER[\"scale_fac"); add_srs_wkt (p, 10, "tor\",0.999975],PARAMETER[\"false_easting\",300000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"3528\"]]"); p = add_epsg_def (filter, first, last, 3529, "epsg", 3529, "NAD83(NSRS2007) / Illinois East (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333"); add_proj4text (p, 1, "333333 +k=0.9999749999999999 +x_0=300000.0000000001 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_"); add_proj4text (p, 3, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Illinois East (ftUS)\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refe"); add_srs_wkt (p, 2, "rence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25"); add_srs_wkt (p, 3, "7222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,"); add_srs_wkt (p, 4, "0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, "G\",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"latitude_of_origin\",36.66666666666666],PARAMETER"); add_srs_wkt (p, 9, "[\"central_meridian\",-88.33333333333333],PARAMETER[\"sc"); add_srs_wkt (p, 10, "ale_factor\",0.999975],PARAMETER[\"false_easting\",98425"); add_srs_wkt (p, 11, "0.0000000002],PARAMETER[\"false_northing\",0],UNIT[\"US "); add_srs_wkt (p, 12, "survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "03\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP"); add_srs_wkt (p, 14, "SG\",\"3529\"]]"); p = add_epsg_def (filter, first, last, 3530, "epsg", 3530, "NAD83(NSRS2007) / Illinois West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666"); add_proj4text (p, 1, "666667 +k=0.999941177 +x_0=700000 +y_0=0 +ellps=GRS80 +t"); add_proj4text (p, 2, "owgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Illinois West\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",36.66666666666666],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",-90.16666666666667],PARAMETER[\"scale_fac"); add_srs_wkt (p, 10, "tor\",0.999941177],PARAMETER[\"false_easting\",700000],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"3530\"]]"); p = add_epsg_def (filter, first, last, 3531, "epsg", 3531, "NAD83(NSRS2007) / Illinois West (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666"); add_proj4text (p, 1, "666667 +k=0.999941177 +x_0=699999.9999898402 +y_0=0 +ell"); add_proj4text (p, 2, "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Illinois West (ftUS)\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refe"); add_srs_wkt (p, 2, "rence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25"); add_srs_wkt (p, 3, "7222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,"); add_srs_wkt (p, 4, "0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, "G\",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"latitude_of_origin\",36.66666666666666],PARAMETER"); add_srs_wkt (p, 9, "[\"central_meridian\",-90.16666666666667],PARAMETER[\"sc"); add_srs_wkt (p, 10, "ale_factor\",0.999941177],PARAMETER[\"false_easting\",22"); add_srs_wkt (p, 11, "96583.333300001],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 12, "US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"3531\"]]"); p = add_epsg_def (filter, first, last, 3532, "epsg", 3532, "NAD83(NSRS2007) / Indiana East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.9"); add_proj4text (p, 1, "99966667 +x_0=100000 +y_0=250000 +ellps=GRS80 +towgs84=0"); add_proj4text (p, 2, ",0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Indiana East\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 7, "59\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",37.5],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",-85.66666666666667],PARAMETER[\"scale_factor\",0.999966"); add_srs_wkt (p, 10, "667],PARAMETER[\"false_easting\",100000],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_northing\",250000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"3532\"]]"); p = add_epsg_def (filter, first, last, 3533, "epsg", 3533, "NAD83(NSRS2007) / Indiana East (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.9"); add_proj4text (p, 1, "99966667 +x_0=99999.99989839978 +y_0=249999.9998983998 +"); add_proj4text (p, 2, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Indiana East (ftUS)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); add_srs_wkt (p, 8, "TER[\"latitude_of_origin\",37.5],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-85.66666666666667],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".999966667],PARAMETER[\"false_easting\",328083.333],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",820208.3330000002],UNIT[\"US su"); add_srs_wkt (p, 12, "rvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003"); add_srs_wkt (p, 13, "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 14, "\",\"3533\"]]"); p = add_epsg_def (filter, first, last, 3534, "epsg", 3534, "NAD83(NSRS2007) / Indiana West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.9"); add_proj4text (p, 1, "99966667 +x_0=900000 +y_0=250000 +ellps=GRS80 +towgs84=0"); add_proj4text (p, 2, ",0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Indiana West\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 7, "59\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",37.5],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",-87.08333333333333],PARAMETER[\"scale_factor\",0.999966"); add_srs_wkt (p, 10, "667],PARAMETER[\"false_easting\",900000],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_northing\",250000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"3534\"]]"); p = add_epsg_def (filter, first, last, 3535, "epsg", 3535, "NAD83(NSRS2007) / Indiana West (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.9"); add_proj4text (p, 1, "99966667 +x_0=900000 +y_0=249999.9998983998 +ellps=GRS80"); add_proj4text (p, 2, " +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Indiana West (ftUS)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); add_srs_wkt (p, 8, "TER[\"latitude_of_origin\",37.5],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-87.08333333333333],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".999966667],PARAMETER[\"false_easting\",2952750],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",820208.3330000002],UNIT[\"US surve"); add_srs_wkt (p, 12, "y foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]"); add_srs_wkt (p, 13, "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 14, "\"3535\"]]"); p = add_epsg_def (filter, first, last, 3536, "epsg", 3536, "NAD83(NSRS2007) / Iowa North"); add_proj4text (p, 0, "+proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666"); add_proj4text (p, 1, "667 +lat_0=41.5 +lon_0=-93.5 +x_0=1500000 +y_0=1000000 +"); add_proj4text (p, 2, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Iowa North\",GEOGCS[\"NAD83(N"); add_srs_wkt (p, 1, "SRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Syst"); add_srs_wkt (p, 2, "em_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4759"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMET"); add_srs_wkt (p, 8, "ER[\"standard_parallel_1\",43.26666666666667],PARAMETER["); add_srs_wkt (p, 9, "\"standard_parallel_2\",42.06666666666667],PARAMETER[\"l"); add_srs_wkt (p, 10, "atitude_of_origin\",41.5],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 11, ",-93.5],PARAMETER[\"false_easting\",1500000],PARAMETER[\""); add_srs_wkt (p, 12, "false_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 14, "ORITY[\"EPSG\",\"3536\"]]"); p = add_epsg_def (filter, first, last, 3537, "epsg", 3537, "NAD83(NSRS2007) / Iowa North (ft US)"); add_proj4text (p, 0, "+proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666"); add_proj4text (p, 1, "667 +lat_0=41.5 +lon_0=-93.5 +x_0=1500000 +y_0=999999.99"); add_proj4text (p, 2, "99898402 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-f"); add_proj4text (p, 3, "t +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Iowa North (ft US)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 8, "PARAMETER[\"standard_parallel_1\",43.26666666666667],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_2\",42.06666666666667],PARAME"); add_srs_wkt (p, 10, "TER[\"latitude_of_origin\",41.5],PARAMETER[\"central_mer"); add_srs_wkt (p, 11, "idian\",-93.5],PARAMETER[\"false_easting\",4921250],PARA"); add_srs_wkt (p, 12, "METER[\"false_northing\",3280833.333300001],UNIT[\"US su"); add_srs_wkt (p, 13, "rvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003"); add_srs_wkt (p, 14, "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 15, "\",\"3537\"]]"); p = add_epsg_def (filter, first, last, 3538, "epsg", 3538, "NAD83(NSRS2007) / Iowa South"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666"); add_proj4text (p, 1, "667 +lat_0=40 +lon_0=-93.5 +x_0=500000 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, "80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Iowa South\",GEOGCS[\"NAD83(N"); add_srs_wkt (p, 1, "SRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Syst"); add_srs_wkt (p, 2, "em_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4759"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMET"); add_srs_wkt (p, 8, "ER[\"standard_parallel_1\",41.78333333333333],PARAMETER["); add_srs_wkt (p, 9, "\"standard_parallel_2\",40.61666666666667],PARAMETER[\"l"); add_srs_wkt (p, 10, "atitude_of_origin\",40],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 11, "93.5],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); add_srs_wkt (p, 12, "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"3538\"]]"); p = add_epsg_def (filter, first, last, 3539, "epsg", 3539, "NAD83(NSRS2007) / Iowa South (ft US)"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666"); add_proj4text (p, 1, "667 +lat_0=40 +lon_0=-93.5 +x_0=500000.00001016 +y_0=0 +"); add_proj4text (p, 2, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Iowa South (ft US)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 8, "PARAMETER[\"standard_parallel_1\",41.78333333333333],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_2\",40.61666666666667],PARAME"); add_srs_wkt (p, 10, "TER[\"latitude_of_origin\",40],PARAMETER[\"central_merid"); add_srs_wkt (p, 11, "ian\",-93.5],PARAMETER[\"false_easting\",1640416.6667],P"); add_srs_wkt (p, 12, "ARAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0"); add_srs_wkt (p, 13, ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X"); add_srs_wkt (p, 14, "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3539\"]]"); p = add_epsg_def (filter, first, last, 3540, "epsg", 3540, "NAD83(NSRS2007) / Kansas North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666"); add_proj4text (p, 1, "667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=400000 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Kansas North\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 7, "59\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"standard_parallel_1\",39.78333333333333],PARAMETE"); add_srs_wkt (p, 9, "R[\"standard_parallel_2\",38.71666666666667],PARAMETER[\""); add_srs_wkt (p, 10, "latitude_of_origin\",38.33333333333334],PARAMETER[\"cent"); add_srs_wkt (p, 11, "ral_meridian\",-98],PARAMETER[\"false_easting\",400000],"); add_srs_wkt (p, 12, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 14, "],AUTHORITY[\"EPSG\",\"3540\"]]"); p = add_epsg_def (filter, first, last, 3541, "epsg", 3541, "NAD83(NSRS2007) / Kansas North (ft US)"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666"); add_proj4text (p, 1, "667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=399999.9999"); add_proj4text (p, 2, "8984 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=u"); add_proj4text (p, 3, "s-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Kansas North (ft US)\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refe"); add_srs_wkt (p, 2, "rence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25"); add_srs_wkt (p, 3, "7222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,"); add_srs_wkt (p, 4, "0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, "G\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 8, "],PARAMETER[\"standard_parallel_1\",39.78333333333333],P"); add_srs_wkt (p, 9, "ARAMETER[\"standard_parallel_2\",38.71666666666667],PARA"); add_srs_wkt (p, 10, "METER[\"latitude_of_origin\",38.33333333333334],PARAMETE"); add_srs_wkt (p, 11, "R[\"central_meridian\",-98],PARAMETER[\"false_easting\","); add_srs_wkt (p, 12, "1312333.3333],PARAMETER[\"false_northing\",0],UNIT[\"US "); add_srs_wkt (p, 13, "survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 14, "03\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP"); add_srs_wkt (p, 15, "SG\",\"3541\"]]"); p = add_epsg_def (filter, first, last, 3542, "epsg", 3542, "NAD83(NSRS2007) / Kansas South"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666"); add_proj4text (p, 1, "667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=400000 +y"); add_proj4text (p, 2, "_0=400000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Kansas South\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 7, "59\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"standard_parallel_1\",38.56666666666667],PARAMETE"); add_srs_wkt (p, 9, "R[\"standard_parallel_2\",37.26666666666667],PARAMETER[\""); add_srs_wkt (p, 10, "latitude_of_origin\",36.66666666666666],PARAMETER[\"cent"); add_srs_wkt (p, 11, "ral_meridian\",-98.5],PARAMETER[\"false_easting\",400000"); add_srs_wkt (p, 12, "],PARAMETER[\"false_northing\",400000],UNIT[\"metre\",1,"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 14, ",NORTH],AUTHORITY[\"EPSG\",\"3542\"]]"); p = add_epsg_def (filter, first, last, 3543, "epsg", 3543, "NAD83(NSRS2007) / Kansas South (ft US)"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666"); add_proj4text (p, 1, "667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=399999.99"); add_proj4text (p, 2, "998984 +y_0=399999.99998984 +ellps=GRS80 +towgs84=0,0,0,"); add_proj4text (p, 3, "0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Kansas South (ft US)\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refe"); add_srs_wkt (p, 2, "rence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25"); add_srs_wkt (p, 3, "7222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,"); add_srs_wkt (p, 4, "0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, "G\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 8, "],PARAMETER[\"standard_parallel_1\",38.56666666666667],P"); add_srs_wkt (p, 9, "ARAMETER[\"standard_parallel_2\",37.26666666666667],PARA"); add_srs_wkt (p, 10, "METER[\"latitude_of_origin\",36.66666666666666],PARAMETE"); add_srs_wkt (p, 11, "R[\"central_meridian\",-98.5],PARAMETER[\"false_easting\""); add_srs_wkt (p, 12, ",1312333.3333],PARAMETER[\"false_northing\",1312333.3333"); add_srs_wkt (p, 13, "],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 15, "HORITY[\"EPSG\",\"3543\"]]"); p = add_epsg_def (filter, first, last, 3544, "epsg", 3544, "NAD83(NSRS2007) / Kentucky North"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666"); add_proj4text (p, 1, "667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000 +y_0=0 +ellps="); add_proj4text (p, 2, "GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Kentucky North\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_"); add_srs_wkt (p, 2, "System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_1\",37.96666666666667],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_2\",38.96666666666667],PARAMETER"); add_srs_wkt (p, 10, "[\"latitude_of_origin\",37.5],PARAMETER[\"central_meridi"); add_srs_wkt (p, 11, "an\",-84.25],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 12, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 14, "RITY[\"EPSG\",\"3544\"]]"); p = add_epsg_def (filter, first, last, 3545, "epsg", 3545, "NAD83(NSRS2007) / Kentucky North (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666"); add_proj4text (p, 1, "667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000.0001016001 +y_"); add_proj4text (p, 2, "0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no"); add_proj4text (p, 3, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Kentucky North (ftUS)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Ref"); add_srs_wkt (p, 2, "erence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2"); add_srs_wkt (p, 3, "57222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0"); add_srs_wkt (p, 4, ",0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 8, "\"],PARAMETER[\"standard_parallel_1\",37.96666666666667]"); add_srs_wkt (p, 9, ",PARAMETER[\"standard_parallel_2\",38.96666666666667],PA"); add_srs_wkt (p, 10, "RAMETER[\"latitude_of_origin\",37.5],PARAMETER[\"central"); add_srs_wkt (p, 11, "_meridian\",-84.25],PARAMETER[\"false_easting\",1640416."); add_srs_wkt (p, 12, "667],PARAMETER[\"false_northing\",0],UNIT[\"US survey fo"); add_srs_wkt (p, 13, "ot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AX"); add_srs_wkt (p, 14, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"35"); add_srs_wkt (p, 15, "45\"]]"); p = add_epsg_def (filter, first, last, 3546, "epsg", 3546, "NAD83(NSRS2007) / Kentucky Single Zone"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.08333333333334 +lat_2=38.66666666666"); add_proj4text (p, 1, "666 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=1500000 "); add_proj4text (p, 2, "+y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 3, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Kentucky Single Zone\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refe"); add_srs_wkt (p, 2, "rence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25"); add_srs_wkt (p, 3, "7222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,"); add_srs_wkt (p, 4, "0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, "G\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 8, "],PARAMETER[\"standard_parallel_1\",37.08333333333334],P"); add_srs_wkt (p, 9, "ARAMETER[\"standard_parallel_2\",38.66666666666666],PARA"); add_srs_wkt (p, 10, "METER[\"latitude_of_origin\",36.33333333333334],PARAMETE"); add_srs_wkt (p, 11, "R[\"central_meridian\",-85.75],PARAMETER[\"false_easting"); add_srs_wkt (p, 12, "\",1500000],PARAMETER[\"false_northing\",1000000],UNIT[\""); add_srs_wkt (p, 13, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 14, ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3546\"]]"); p = add_epsg_def (filter, first, last, 3547, "epsg", 3547, "NAD83(NSRS2007) / Kentucky Single Zone (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.08333333333334 +lat_2=38.66666666666"); add_proj4text (p, 1, "666 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=1500000 "); add_proj4text (p, 2, "+y_0=999999.9998983998 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 3, ",0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Kentucky Single Zone (ftUS)\""); add_srs_wkt (p, 1, ",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spati"); add_srs_wkt (p, 2, "al_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 3, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 4, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Green"); add_srs_wkt (p, 5, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 6, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 7, "Y[\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Con"); add_srs_wkt (p, 8, "ic_2SP\"],PARAMETER[\"standard_parallel_1\",37.083333333"); add_srs_wkt (p, 9, "33334],PARAMETER[\"standard_parallel_2\",38.666666666666"); add_srs_wkt (p, 10, "66],PARAMETER[\"latitude_of_origin\",36.33333333333334],"); add_srs_wkt (p, 11, "PARAMETER[\"central_meridian\",-85.75],PARAMETER[\"false"); add_srs_wkt (p, 12, "_easting\",4921250],PARAMETER[\"false_northing\",3280833"); add_srs_wkt (p, 13, ".333],UNIT[\"US survey foot\",0.3048006096012192,AUTHORI"); add_srs_wkt (p, 14, "TY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 15, "],AUTHORITY[\"EPSG\",\"3547\"]]"); } #endif /* full EPSG initialization enabled/disabled */ libspatialite-4.1.1/src/srsinit/epsg_update/0000775000175000017500000000000012163503225016127 500000000000000libspatialite-4.1.1/src/srsinit/epsg_update/Makefile.am0000664000175000017500000000004612163502133020100 00000000000000 EXTRA_DIST = README.txt auto_epsg.c libspatialite-4.1.1/src/srsinit/epsg_update/README.txt0000664000175000017500000000307412163502133017546 00000000000000HOW-TO: UPDATE spatial_ref_sys SELF-INITIALIZING C CODE ============================================================================ When updating is required: each time a new GDAL version will be released. ============================================================================ STEP #1: getting the basic EPSG files -------- - download the latest GDAL sources - build and install be sure to set: ./configure --with-python=yes # cd {gdal-sources}/data # rm epsg # epsg_tr.py --config OVERRIDE_PROJ_DATUM_WITH_TOWGS84 FALSE \ # -proj4 -skip -list gcs.csv > epsg # epsg_tr.py --config OVERRIDE_PROJ_DATUM_WITH_TOWGS84 FALSE \ # -proj4 -skip -list pcs.csv >> epsg # rm wkt # epsg_tr.py -wkt -skip -list gcs.csv > wkt # epsg_tr.py -wkt -skip -list pcs.csv >> wkt all right: these "epsg" and "wkt" files will be used as "seeds" into the next step: - copy both "epsg" and "wkt" files into: {libspatialite-source}/src/srcinit/epsg_update STEP #2: compiling the C generator tool -------- # cd {libspatialite-source}/src/srsinit/epsg_update Linux: # gcc auto_epsg.c -o auto_epsg Windows [MinGW]: # gcc auto_epsg.c -o auto_epsg.exe STEP #3: generating the C code [inlined EPSG dataset] -------- # rm epsg_inlined_*.c # ./auto_epsg at the end of this step several "epsg_inlined_*.c" files will be generated STEP #4: final setup -------- - copy the generated file into the parent dir: rm ../epsg_inlined_*.c cp epsg_inlined.c .. - be sure to update as required the repository (ADD/DEL) - be sure to update as required Makefile.am - and finally commit into the repository libspatialite-4.1.1/src/srsinit/epsg_update/Makefile.in0000664000175000017500000002473112163502133020120 00000000000000# Makefile.in generated by automake 1.12.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/srsinit/epsg_update DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = README.txt auto_epsg.c all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/srsinit/epsg_update/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/srsinit/epsg_update/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags: TAGS TAGS: ctags: CTAGS CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libspatialite-4.1.1/src/srsinit/epsg_update/auto_epsg.c0000664000175000017500000032105612163502133020205 00000000000000/* / auto_epsg / / a tool autogenerating C code for SpatiaLite / [spatial_ref_sys self-initialization routines] / / version 1.0, 2012 January 18 / / Author: Sandro Furieri a.furieri@lqt.it / / Copyright (C) 2011 Alessandro Furieri / / This program is free software: you can redistribute it and/or modify / it under the terms of the GNU General Public License as published by / the Free Software Foundation, either version 3 of the License, or / (at your option) any later version. / / This program is distributed in the hope that it will be useful, / but WITHOUT ANY WARRANTY; without even the implied warranty of / MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the / GNU General Public License for more details. / / You should have received a copy of the GNU General Public License / along with this program. If not, see . / */ #include #include #include #include struct epsg_entry { /* a struct wrapping an EPSG entry */ int srid; char *ref_sys_name; char *proj4text; char *srs_wkt; struct epsg_entry *next; }; struct epsg_dict { /* the EPSG dictionary */ struct epsg_entry *first; struct epsg_entry *last; struct epsg_entry **sorted; int count; }; static void free_epsg_entry (struct epsg_entry *p) { /* destroying an epsg_entry */ if (p->ref_sys_name) free (p->ref_sys_name); if (p->proj4text) free (p->proj4text); if (p->srs_wkt) free (p->srs_wkt); free (p); } static void free_epsg (struct epsg_dict *epsg) { /* destroying the EPSG dictionary */ struct epsg_entry *pE; struct epsg_entry *pEn; pE = epsg->first; while (pE) { pEn = pE->next; free_epsg_entry (pE); pE = pEn; } if (epsg->sorted) free (epsg->sorted); } static void epsg_insert (struct epsg_dict *epsg, int srid, const char *name, const char *proj4text) { /* inserting an entry into the EPSG dictionary */ int len; struct epsg_entry *p = malloc (sizeof (struct epsg_entry)); p->srid = srid; len = strlen (name); p->ref_sys_name = malloc (len + 1); strcpy (p->ref_sys_name, name); len = strlen (proj4text); p->proj4text = malloc (len + 1); strcpy (p->proj4text, proj4text); p->srs_wkt = NULL; p->next = NULL; /* updating the linked list */ if (epsg->first == NULL) epsg->first = p; if (epsg->last != NULL) epsg->last->next = p; epsg->last = p; } static void add_wkt (struct epsg_dict *epsg, int srid, const char *wkt) { /* adding the WKT def to some EPSG entry */ struct epsg_entry *p = epsg->first; while (p) { if (p->srid == srid) { int len = strlen (wkt); if (p->srs_wkt) free (p->srs_wkt); p->srs_wkt = malloc (len + 1); strcpy (p->srs_wkt, wkt); return; } p = p->next; } } static int parse_epsg (FILE * fl_epsg, struct epsg_dict *epsg) { /* parsing the EPSG input file */ char line[1024]; char name[512]; char *out = line; int odd_even = 0; int c; while ((c = getc (fl_epsg)) != EOF) { if (c == '\r') continue; if (c == '\n') { *out = '\0'; if (odd_even) { int i; int len = strlen (line); char srid[16]; char *p = srid; const char *proj4text = NULL; if (odd_even == 2) { if (*line == '#') { /* closing a pending invalid EPSG def */ odd_even = 0; *name = '\0'; out = line; continue; } return 0; } if (*name == '\0') return 0; if (strncmp (line, "# ", 2) == 0) { /* probably an invalid EPSG def: skipping */ odd_even = 2; *name = '\0'; out = line; continue; } if (*line != '<') return 0; if (strcmp (line + len - 2, "<>") != 0) return 0; line[len - 2] = '\0'; for (i = 1; i < 10; i++) { if (line[i] == '>') { *p = '\0'; proj4text = line + i + 2; } *p++ = line[i]; } if (!proj4text) return 0; len = strlen (line); for (i = len - 1; i > 1; i--) { if (line[i] == ' ') line[i] = '\0'; else break; } epsg_insert (epsg, atoi (srid), name, proj4text); odd_even = 0; *name = '\0'; } else { if (strncmp (line, "# ", 2) != 0) return 0; strcpy (name, line + 2); odd_even = 1; } out = line; continue; } *out++ = c; } return 1; } static int fetch_srid (const char *line) { /* attempting to retrieve the WKT own SRID */ int len = strlen (line); int i; int cnt = 0; for (i = len - 1; i > 1; i--) { if (line[i] == ']') cnt++; if (cnt == 3) { if (strncmp (line + i, "],AUTHORITY[\"EPSG\",\"", 20) == 0) return atoi (line + i + 20); return -1; } } return -1; } static int parse_wkt (FILE * fl_wkt, struct epsg_dict *epsg) { /* parsing the WKT input file */ char line[8192]; int srid; char *out = line; int c; while ((c = getc (fl_wkt)) != EOF) { if (c == '\r') continue; if (c == '\n') { *out = '\0'; srid = fetch_srid (line); if (srid >= 0) add_wkt (epsg, srid, line); out = line; continue; } *out++ = c; } return 1; } static int cmp_sort (const void *p1, const void *p2) { /* comparison function for QSORT */ struct epsg_entry *e1 = *(struct epsg_entry **) p1; struct epsg_entry *e2 = *(struct epsg_entry **) p2; if (e1->srid == e2->srid) return 0; if (e1->srid < e2->srid) return -1; return 1; } static int sort_epsg (struct epsg_dict *epsg) { /* sorting the EPSG defs by ascending SRID */ int count = 0; int i; struct epsg_entry *p = epsg->first; while (p) { /* counting how many entries are there */ count++; p = p->next; } if (count == 0) return 0; if (epsg->sorted) free (epsg->sorted); epsg->sorted = malloc (sizeof (struct epsg_dict *) * count); epsg->count = count; i = 0; p = epsg->first; while (p) { /* feeding the pointer array */ *(epsg->sorted + i) = p; i++; p = p->next; } /* sorting the pointer array by ascending SRID */ qsort (epsg->sorted, count, sizeof (struct epsg_dict *), cmp_sort); return 1; } static FILE * open_file (int file_no) { /* opening an output file */ char path[1024]; FILE *out = NULL; sprintf (path, "epsg_inlined_%02d.c", file_no); out = fopen (path, "wb"); if (out == NULL) { fprintf (stderr, "ERROR: unable to open the \"%s\" output file\n", path); return NULL; } return out; } static FILE * open_file2 () { /* opening the "extra" output file */ FILE *out = NULL; out = fopen ("epsg_inlined_extra.c", "wb"); if (out == NULL) { fprintf (stderr, "ERROR: unable to open the \"epsg_inlined_extra.c\" output file\n"); return NULL; } return out; } static FILE * open_file3 () { /* opening the "prussian" output file */ FILE *out = NULL; out = fopen ("epsg_inlined_prussian.c", "wb"); if (out == NULL) { fprintf (stderr, "ERROR: unable to open the \"epsg_inlined_prussian.c\" output file\n"); return NULL; } return out; } static FILE * open_file_wgs84 (int file_no) { /* opening an output file "wgs84" */ char path[1024]; FILE *out = NULL; sprintf (path, "epsg_inlined_wgs84_%02d.c", file_no); out = fopen (path, "wb"); if (out == NULL) { fprintf (stderr, "ERROR: unable to open the \"%s\" output file\n", path); return NULL; } return out; } static void do_prussian (FILE * out) { /* writing the "prussian" body */ fprintf (out, "SPATIALITE_PRIVATE void\ninitialize_epsg_prussian(int filter,struct epsg_defs **first, struct epsg_defs **last)\n"); fprintf (out, "{\n/* old Prussian based on Cassini-Soldner - kindly contributed by Mark Johnson */\n"); fprintf (out, " struct epsg_defs *p;\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187900,\"mj10777.de\",187900,\"DHDN / Soldner Rathausnetz 660\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=52.41864827777778 +lon_0=13.62720366666667 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=14741.77 +y_0=-11288.28 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner Rathausnetz 660\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",52.41864827777778],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",13.62720366666667],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",14741.77],PARAMETER[\\\"false_northing\\\",-11288.28],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187900\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187901,\"mj10777.de\",187901,\"DHDN / Soldner 1 Kucklinsberg\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=54.46022375 +lon_0=21.95509736 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 1 Kucklinsberg\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",54.46022375],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",21.95509736],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187901\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187902,\"mj10777.de\",187902,\"DHDN / Soldner 2 Paulinen\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=54.28921067 +lon_0=20.73315431 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 2 Paulinen\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",54.28921067],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",20.73315431],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187902\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187903,\"mj10777.de\",187903,\"DHDN / Soldner 3 Markushof I\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=54.05881333 +lon_0=19.37343583 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 3 Markushof I\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",54.05881333],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",19.37343583],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187903\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187904,\"mj10777.de\",187904,\"DHDN / Soldner 4 Thurmberg\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=54.22552092 +lon_0=18.12569375 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 4 Thurmberg\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",54.22552092],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",18.12569375],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187904\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187905,\"mj10777.de\",187905,\"DHDN / Soldner 5 Kauernick I\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=53.38933197 +lon_0=19.59810438 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 5 Kauernick I\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",53.38933197],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",19.59810438],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187905\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187906,\"mj10777.de\",187906,\"DHDN / Soldner 6 Thorn, Rathausturm\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=53.01181586 +lon_0=18.60725428 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 6 Thorn, Rathausturm\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",53.01181586],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",18.60725428],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187906\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187907,\"mj10777.de\",187907,\"DHDN / Soldner 7 Heinrichsthal\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=53.71289217 +lon_0=17.49676781 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 7 Heinrichsthal\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",53.71289217],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",17.49676781],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187907\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187908,\"mj10777.de\",187908,\"DHDN / Soldner 8 Gollenberg, Denkmal\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=54.20857178 +lon_0=16.22956781 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 8 Gollenberg, Denkmal\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",54.20857178],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",16.22956781],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187908\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187909,\"mj10777.de\",187909,\"DHDN / Soldner 9 Gnesen\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=52.53820406 +lon_0=17.59450500 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 9 Gnesen\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",52.53820406],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",17.59450500],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187909\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187910,\"mj10777.de\",187910,\"DHDN / Soldner 10 Josefsberg\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=51.98768806 +lon_0=16.20044389 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 10 Josefsberg\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",51.98768806],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",16.20044389],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187910\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187911,\"mj10777.de\",187911,\"DHDN / Soldner 11 Schroda\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=52.23137372 +lon_0=17.27795372 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 11 Schroda\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",52.23137372],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",17.27795372],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187911\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187912,\"mj10777.de\",187912,\"DHDN / Soldner 12 Pschow\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=50.04206544 +lon_0=18.39610692 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 12 Pschow\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",50.04206544],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",18.39610692],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187912\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187913,\"mj10777.de\",187913,\"DHDN / Soldner 13 Rummelsberg\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=50.70352314 +lon_0=17.11233917 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 13 Rummelsberg\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",50.70352314],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",17.11233917],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187913\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187914,\"mj10777.de\",187914,\"DHDN / Soldner 14 Gröditzberg I\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=51.17819342 +lon_0=15.76127086 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 14 Gröditzberg I\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",51.17819342],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",15.76127086],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187914\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187915,\"mj10777.de\",187915,\"DHDN / Soldner 15 Kaltenborn\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=51.92903708 +lon_0=14.66212942 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 15 Kaltenborn\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",51.92903708],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",14.66212942],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187915\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187917,\"mj10777.de\",187917,\"DHDN / Soldner 17 Greifswald, Nikolaikirche\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=54.09698872 +lon_0=13.37880703 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 17 Greifswald, Nikolaikirche\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",54.09698872],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",13.37880703],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187917\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187916,\"mj10777.de\",187916,\"DHDN / Soldner 16 Bahn I\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=53.10184583 +lon_0=14.70144539 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 16 Bahn I\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",53.10184583],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",14.70144539],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187916\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187918,\"mj10777.de\",187918,\"DHDN / Soldner 18 Müggelberg 600\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=52.41864827777778 +lon_0=13.62720366666667 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 18 Müggelberg 600\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",52.41864827777778],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",13.62720366666667],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187918\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187919,\"mj10777.de\",187919,\"DHDN / Soldner 19 Götzer Berg 650\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=52.43725961111112 +lon_0=12.72882972222223 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 19 Götzer Berg 650\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",52.43725961111112],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",12.72882972222223],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187919\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187920,\"mj10777.de\",187920,\"DHDN / Soldner 20 Torgau, Stadtkirche\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=51.56136217 +lon_0=13.00760264 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 20 Torgau, Stadtkirche\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",51.56136217],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",13.00760264],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187920\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187921,\"mj10777.de\",187921,\"DHDN / Soldner 21 Burkersroda, Kirchturm\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=51.17656322 +lon_0=11.64139367 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 21 Burkersroda, Kirchturm\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",51.17656322],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",11.64139367],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187921\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187922,\"mj10777.de\",187922,\"DHDN / Soldner 22 Inselsberg\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=50.85237983 +lon_0=10.46776506 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 22 Inselsberg\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",50.85237983],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",10.46776506],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187922\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187923,\"mj10777.de\",187923,\"DHDN / Soldner 23 Magdeburg\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=52.12625311 +lon_0=11.63550325 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 23 Magdeburg\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",52.12625311],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",11.63550325],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187923\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187924,\"mj10777.de\",187924,\"DHDN / Soldner 24 Ostenfeld I\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=54.47018733 +lon_0=9.23411097 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 24 Ostenfeld I\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",54.47018733],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",9.23411097],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187924\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187925,\"mj10777.de\",187925,\"DHDN / Soldner 25 Rathkrügen\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=53.81839364 +lon_0=10.04220189 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 25 Rathkrügen\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",53.81839364],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",10.04220189],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187925\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187926,\"mj10777.de\",187926,\"DHDN / Soldner 26 Bungsberg, Aussichtsturm\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=54.21110653 +lon_0=10.72636431 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 26 Bungsberg, Aussichtsturm\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",54.21110653],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",10.72636431],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187926\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187927,\"mj10777.de\",187927,\"DHDN / Soldner 27 Celle, Stadtkirche\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=52.62574192 +lon_0=10.08190214 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 27 Celle, Stadtkirche\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",52.62574192],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",10.08190214],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187927\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187928,\"mj10777.de\",187928,\"DHDN / Soldner 28 Kaltenborn\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=51.79646722 +lon_0=10.27322494 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 28 Kaltenborn\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",51.79646722],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",10.27322494],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187928\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187929,\"mj10777.de\",187929,\"DHDN / Soldner 29 Silberberg\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=53.73123461 +lon_0=9.05774925 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 29 Silberberg\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",53.73123461],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",9.05774925],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187929\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187930,\"mj10777.de\",187930,\"DHDN / Soldner 30 Windberg\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=52.88088372 +lon_0=7.53062114 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 30 Windberg\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",52.88088372],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",7.53062114],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187930\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187931,\"mj10777.de\",187931,\"DHDN / Soldner 31 Hermannsdenkmal\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=51.91301647 +lon_0=8.84051853 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 31 Hermannsdenkmal\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",51.91301647],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",8.84051853],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187931\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187932,\"mj10777.de\",187932,\"DHDN / Soldner 32 Münster\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=51.96547642 +lon_0=7.62334994 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 32 Münster\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",51.96547642],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",7.62334994],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187932\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187933,\"mj10777.de\",187933,\"DHDN / Soldner 33 Bochum, Peter-Paul-Kirche\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=51.48373533 +lon_0=7.22115822 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 33 Bochum, Peter-Paul-Kirche\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",51.48373533],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",7.22115822],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187933\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187934,\"mj10777.de\",187934,\"DHDN / Soldner 34 Homert\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=51.26480147 +lon_0=8.10687050 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 34 Homert\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",51.26480147],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",8.10687050],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187934\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187935,\"mj10777.de\",187935,\"DHDN / Soldner 35 Kassel, Martinskirche\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=51.31846489 +lon_0=9.50203072 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 35 Kassel, Martinskirche\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",51.31846489],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",9.50203072],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187935\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187936,\"mj10777.de\",187936,\"DHDN / Soldner 36 Schaumburg, Schloßturm\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=50.34048964 +lon_0=7.97808156 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 36 Schaumburg, Schloßturm\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",50.34048964],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",7.97808156],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187936\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187937,\"mj10777.de\",187937,\"DHDN / Soldner 37 Fleckert\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=50.18762544 +lon_0=7.60594289 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 37 Fleckert\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",50.18762544],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",7.60594289],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187937\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187938,\"mj10777.de\",187938,\"DHDN / Soldner 38 Cöln, Dom\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=50.94257242 +lon_0=6.95897600 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 38 Cöln, Dom\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",50.94257242],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",6.95897600],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187938\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187939,\"mj10777.de\",187939,\"DHDN / Soldner 39 Langschoß\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=50.66738711 +lon_0=6.28935703 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 39 Langschoß\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",50.66738711],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",6.28935703],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187939\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187940,\"mj10777.de\",187940,\"DHDN / Soldner 40 Rissenthal\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=49.47801819 +lon_0=6.75864339 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 40 Rissenthal\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",49.47801819],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",6.75864339],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187940\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187941,\"mj10777.de\",187941,\"DHDN / Soldner Bayern\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=48.13959111 +lon_0=11.57437083 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner Bayern\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",48.13959111],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",11.57437083],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187941\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def (filter,first, last, 187998, \"mj10777.de\", 187998,\"DHDN / Ferro / Deutsches_Hauptdreiecksnetz\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=longlat +ellps=bessel +datum=potsdam +pm=ferro +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Ferro / Deutsches_Hauptdreiecksnetz\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"SPHEROID[\\\"Bessel 1841\\\",6377397.155,299.1528128,\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]], AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,5,\"PRIMEM[\\\"ferro\\\",-17.66666666666667],UNIT[\\\"Degree\\\",0.017453292519943295,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187998\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]]\");\n"); fprintf (out, "/* mj10777: Not exsiting System, used for testing purposes. */\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187999,\"mj10777.de\",187999,\"DHDN / Brandenburger Tor\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=52.41864827777778 +lon_0=13.62720366666667 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=16819.76033675660074 +y_0=-11046.08218553455117 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner Brandenburger Tor\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",52.41864827777778],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",13.62720366666667],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",16819.76033675660074],PARAMETER[\\\"false_northing\\\",-11046.08218553455117],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187999\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def (filter,first, last, 325833, \"mj10777.de\", 325833,\"ETRS89 / UTM zone 33N (Brandenburg)\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=utm +zone=33 +ellps=GRS80 +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"ETRS89 / UTM zone 33N (Brandenburg)\\\",GEOGCS[\\\"ETRS89\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"DATUM[\\\"European_Terrestrial_Reference_System_1989\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"SPHEROID[\\\"GRS 1980\\\",6378137,298.257222101,\");\n"); fprintf (out, " add_srs_wkt(p,3,\"AUTHORITY[\\\"EPSG\\\",\\\"7019\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"6258\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"PRIMEM[\\\"Greenwich\\\",0,AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,5,\"UNIT[\\\"degree\\\",0.01745329251994328,AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"4258\\\"]],UNIT[\\\"metre\\\",1,\");\n"); fprintf (out, " add_srs_wkt(p,7,\"AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],PROJECTION[\\\"Transverse_Mercator\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PARAMETER[\\\"latitude_of_origin\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"central_meridian\\\",15],PARAMETER[\\\"scale_factor\\\",0.9996],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"false_easting\\\",3500000],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"AUTHORITY[\\\"EPSG\\\",\\\"325833\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AXIS[\\\"Easting\\\",EAST],AXIS[\\\"Northing\\\",NORTH]]\");\n"); } static void do_header (FILE * out, int macro) { /* writing a file header */ time_t tm; time (&tm); fprintf (out, "/*\n\n"); fprintf (out, " helper function for srs_init.c -- populating the SPATIAL_REF_SYS table\n\n"); fprintf (out, " this code was autogenerated by \"auto_epsg\" on %s\n", ctime (&tm)); fprintf (out, " Author: Sandro Furieri a.furieri@lqt.it\n\n"); fprintf (out, " -----------------------------------------------------------------------------\n\n"); fprintf (out, " Version: MPL 1.1/GPL 2.0/LGPL 2.1\n\n"); fprintf (out, " The contents of this file are subject to the Mozilla Public License Version\n"); fprintf (out, " 1.1 (the \"License\"); you may not use this file except in compliance with\n"); fprintf (out, " the License. You may obtain a copy of the License at\n"); fprintf (out, " http://www.mozilla.org/MPL/\n\n"); fprintf (out, "Software distributed under the License is distributed on an \"AS IS\" basis,\n"); fprintf (out, "WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License\n"); fprintf (out, "for the specific language governing rights and limitations under the\n"); fprintf (out, "License.\n\nThe Original Code is the SpatiaLite library\n\n"); fprintf (out, "The Initial Developer of the Original Code is Alessandro Furieri\n\n"); fprintf (out, "Portions created by the Initial Developer are Copyright (C) 2008\n"); fprintf (out, "the Initial Developer. All Rights Reserved.\n\nContributor(s):\n\n"); fprintf (out, "Alternatively, the contents of this file may be used under the terms of\n"); fprintf (out, "either the GNU General Public License Version 2 or later (the \"GPL\"), or\n"); fprintf (out, "the GNU Lesser General Public License Version 2.1 or later (the \"LGPL\"),\n"); fprintf (out, "in which case the provisions of the GPL or the LGPL are applicable instead\n"); fprintf (out, "of those above. If you wish to allow use of your version of this file only\n"); fprintf (out, "under the terms of either the GPL or the LGPL, and not to allow others to\n"); fprintf (out, "use your version of this file under the terms of the MPL, indicate your\n"); fprintf (out, "decision by deleting the provisions above and replace them with the notice\n"); fprintf (out, "and other provisions required by the GPL or the LGPL. If you do not delete\n"); fprintf (out, "the provisions above, a recipient may use your version of this file under\n"); fprintf (out, "the terms of any one of the MPL, the GPL or the LGPL.\n\n*/\n\n"); fprintf (out, "#include \n\n"); if (macro) fprintf (out, "#ifndef OMIT_EPSG /* full EPSG initialization enabled */\n\n"); } static void do_footer (FILE * out, int macro) { /* writing a file footer */ fprintf (out, "}\n\n"); if (macro) fprintf (out, "#endif /* full EPSG initialization enabled/disabled */\n\n"); } static void output_c_code (FILE * out, struct epsg_dict *epsg) { /* generating the C code supporting spatial_ref_sys self-initialization */ struct epsg_entry *p = epsg->first; int n; int sect = 0; int wgs84_sect = 0; int def_cnt = 1000; int out_cnt; const char *in; int i; int pending_footer = 0; for (i = 0; i < epsg->count; i++) { p = *(epsg->sorted + i); if (p->srid == 4326 || (p->srid >= 32601 && p->srid <= 32766)) { /* skipping WGS84 defs */ continue; } if (def_cnt > 100) { if (out != NULL) { if (pending_footer) { do_footer (out, 1); pending_footer = 0; } /* closing the output file */ fclose (out); out = NULL; } /* opening the next output file */ out = open_file (sect); if (out == NULL) return; /* function header */ do_header (out, 1); fprintf (out, "SPATIALITE_PRIVATE void\n"); fprintf (out, "initialize_epsg_%02d (int filter, struct epsg_defs **first, struct epsg_defs **last)\n", sect++); fprintf (out, "{\n/* initializing the EPSG defs list */\n"); fprintf (out, " struct epsg_defs *p;\n"); def_cnt = 0; } pending_footer = 1; /* inserting the main EPSG def */ def_cnt++; fprintf (out, " p = add_epsg_def (filter, first, last, %d, \"epsg\", %d,\n", p->srid, p->srid); fprintf (out, " \"%s\");\n", p->ref_sys_name); /* inserting the proj4text string */ n = 0; in = p->proj4text; while (*in != '\0') { fprintf (out, " add_proj4text (p, %d,\n \"", n); out_cnt = 0; while (*in != '\0') { if (*in == '"') { fprintf (out, "\\%c", *in++); out_cnt += 2; } else { fprintf (out, "%c", *in++); out_cnt++; } if (out_cnt >= 56) break; } fprintf (out, "\");\n"); n++; } if (p->srs_wkt != NULL) { /* inserting the srs_wkt string */ n = 0; n = 0; in = p->srs_wkt; while (*in != '\0') { fprintf (out, " add_srs_wkt (p, %d,\n \"", n); out_cnt = 0; while (*in != '\0') { if (*in == '"') { fprintf (out, "\\%c", *in++); out_cnt += 2; } else { fprintf (out, "%c", *in++); out_cnt++; } if (out_cnt >= 56) break; } fprintf (out, "\");\n"); n++; } } else fprintf (out, " add_srs_wkt (p, 0, \"\");\n"); } if (out != NULL) { /* closing the output file */ if (pending_footer) { do_footer (out, 1); pending_footer = 0; } /* closing the output file */ fclose (out); out = NULL; } def_cnt = 1000; pending_footer = 0; for (i = 0; i < epsg->count; i++) { p = *(epsg->sorted + i); if (p->srid == 4326 || (p->srid >= 32601 && p->srid <= 32766)) ; else { /* skipping not-WGS84 defs */ continue; } if (def_cnt > 100) { if (out != NULL) { if (pending_footer) { do_footer (out, 0); pending_footer = 0; } /* closing the output file */ fclose (out); out = NULL; } /* opening the next output file */ out = open_file_wgs84 (wgs84_sect); if (out == NULL) return; /* function header */ do_header (out, 0); fprintf (out, "SPATIALITE_PRIVATE void\n"); fprintf (out, "initialize_epsg_wgs84_%02d (int filter, struct epsg_defs **first, struct epsg_defs **last)\n", wgs84_sect++); fprintf (out, "{\n/* initializing the EPSG defs list [WGS84] */\n"); fprintf (out, " struct epsg_defs *p;\n"); def_cnt = 0; } pending_footer = 1; /* inserting the main EPSG def */ def_cnt++; fprintf (out, " p = add_epsg_def (filter, first, last, %d, \"epsg\", %d,\n", p->srid, p->srid); fprintf (out, " \"%s\");\n", p->ref_sys_name); /* inserting the proj4text string */ n = 0; in = p->proj4text; while (*in != '\0') { fprintf (out, " add_proj4text (p, %d,\n \"", n); out_cnt = 0; while (*in != '\0') { if (*in == '"') { fprintf (out, "\\%c", *in++); out_cnt += 2; } else { fprintf (out, "%c", *in++); out_cnt++; } if (out_cnt >= 56) break; } fprintf (out, "\");\n"); n++; } if (p->srs_wkt != NULL) { /* inserting the srs_wkt string */ n = 0; in = p->srs_wkt; while (*in != '\0') { fprintf (out, " add_srs_wkt (p, %d,\n \"", n); out_cnt = 0; while (*in != '\0') { if (*in == '"') { fprintf (out, "\\%c", *in++); out_cnt += 2; } else { fprintf (out, "%c", *in++); out_cnt++; } if (out_cnt >= 56) break; } fprintf (out, "\");\n"); n++; } } else fprintf (out, " add_srs_wkt (p, 0, \"\");\n"); } if (out != NULL) { /* closing the output file */ if (pending_footer) { do_footer (out, 0); pending_footer = 0; } /* closing the output file */ fclose (out); out = NULL; } /* opening the "prussian" output file */ out = open_file3 (); if (out == NULL) return; /* function header */ do_header (out, 1); do_prussian (out); /* function footer */ do_footer (out, 1); /* closing the "prussian" output file */ fclose (out); out = NULL; /* opening the "extra" output file */ out = open_file2 (); if (out == NULL) return; /* function header */ do_header (out, 0); fprintf (out, "/* declaring prototypes */\n"); for (i = 0; i < sect; i++) fprintf (out, "SPATIALITE_PRIVATE void initialize_epsg_%02d (\n\tint filter, struct epsg_defs **first, struct epsg_defs **last);\n", i); for (i = 0; i < wgs84_sect; i++) fprintf (out, "SPATIALITE_PRIVATE void initialize_epsg_wgs84_%02d (\n\tint filter, struct epsg_defs **first, struct epsg_defs **last);\n", i); fprintf (out, "SPATIALITE_PRIVATE void initialize_epsg_prussian (\n\tint filter, struct epsg_defs **first, struct epsg_defs **last);\n"); fprintf (out, "SPATIALITE_PRIVATE void initialize_epsg_extra (\n\tint filter, struct epsg_defs **first, struct epsg_defs **last);\n\n"); fprintf (out, "SPATIALITE_PRIVATE void\n"); fprintf (out, "initialize_epsg_extra (int filter, struct epsg_defs **first, struct epsg_defs **last)\n\n"); fprintf (out, "{\n/* initializing the EPSG defs list [EXTRA] */\n"); fprintf (out, " struct epsg_defs *p;\n"); fprintf (out, " p = add_epsg_def (filter, first, last, 40000, \"gfoss.it\", 1,\n"); fprintf (out, " \"Italy mainland zone 1 GB Roma40\");\n"); fprintf (out, " add_proj4text (p, 0,\n"); fprintf (out, " \"+proj=tmerc+lat_0=0 +lon_0=9 +k=0.9996 +x_0=1500000 +y_\");\n"); fprintf (out, " add_proj4text (p, 1,\n"); fprintf (out, " \"0=0 +ellps=intl +units=m +towgs84=-104.1,-49.1,-9.9,0.97\");\n"); fprintf (out, " add_proj4text (p, 2, \"1,-2.917,0.714,-11.68 +no_defs\");\n"); fprintf (out, " add_srs_wkt (p, 0, \"\");\n"); fprintf (out, " p = add_epsg_def (filter, first, last, 40001, \"gfoss.it\", 2,\n"); fprintf (out, " \"Italy mainland zone 2 GB Roma40\");\n"); fprintf (out, " add_proj4text (p, 0,\n"); fprintf (out, " \"+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9996 +x_0=2520000 +y\");\n"); fprintf (out, " add_proj4text (p, 1,\n"); fprintf (out, " \"_0=0 +ellps=intl +units=m +towgs84=-104.1,-49.1,-9.9,0.9\");\n"); fprintf (out, " add_proj4text (p, 2, \"71,-2.917,0.714,-11.68 +no_defs\");\n"); fprintf (out, " add_srs_wkt (p, 0, \"\");\n"); fprintf (out, " p = add_epsg_def (filter, first, last, 40002, \"gfoss.it\", 3,\n"); fprintf (out, " \"Italy Sardinia GB Roma40\");\n"); fprintf (out, " add_proj4text (p, 0,\n"); fprintf (out, " \"+proj=tmerc +lat_0=0 +lon_0=9 +k=0.9996 +x_0=1500000 +y\");\n"); fprintf (out, " add_proj4text (p, 1,\n"); fprintf (out, " \"_0=0 +ellps=intl +units=m +towgs84=-168.6,-34.0,38.6,-0.\");\n"); fprintf (out, " add_proj4text (p, 2, \"374,-0.679,-1.379,-9.48 +no_defs\");\n"); fprintf (out, " add_srs_wkt (p, 0, \"\");\n"); fprintf (out, " p = add_epsg_def (filter, first, last, 40003, \"gfoss.it\", 4,\n"); fprintf (out, " \"Italy Sicily GB Roma40\");\n"); fprintf (out, " add_proj4text (p, 0,\n"); fprintf (out, " \"+proj=tmerc +lat_0=0 +lon_0=9 +k=0.9996 +x_0=1500000 +y\");\n"); fprintf (out, " add_proj4text (p, 1,\n"); fprintf (out, " \"_0=0 +ellps=intl +units=m +towgs84=-50.2,-50.4,84.8,-0.6\");\n"); fprintf (out, " add_proj4text (p, 2, \"90,-2.012,0.459,-28.08 +no_defs\");\n"); fprintf (out, " add_srs_wkt (p, 0, \"\");\n"); /* function footer */ do_footer (out, 0); /* inserting the pilot function */ fprintf (out, "SPATIALITE_PRIVATE void\n"); fprintf (out, "initialize_epsg (int filter, struct epsg_defs **first, struct epsg_defs **last)\n"); fprintf (out, "{\n/* initializing the EPSG defs list */\n"); fprintf (out, " struct epsg_defs *p;\n "); fprintf (out, "/* initializing the EPSG UNKNOWN def [-1] */\n"); fprintf (out, " p = add_epsg_def (filter, first, last, -1, \"NONE\", -1, \"Undefined - Cartesian\");\n"); fprintf (out, " add_proj4text (p, 0, \"\");\n"); fprintf (out, " add_srs_wkt (p, 0, \"\");\n"); fprintf (out, " p = add_epsg_def (filter, first, last, 0, \"NONE\", 0, \"Undefined - Geographic Long/Lat\");\n"); fprintf (out, " add_proj4text (p, 0, \"\");\n"); fprintf (out, " add_srs_wkt (p, 0, \"\");\n\n"); fprintf (out, " if (filter != GAIA_EPSG_WGS84_ONLY)\n {\n"); fprintf (out, "#ifndef OMIT_EPSG /* full EPSG initialization enabled */\n"); for (i = 0; i < sect; i++) fprintf (out, " initialize_epsg_%02d (filter, first, last);\n", i); fprintf (out, " initialize_epsg_prussian (filter, first, last);\n"); fprintf (out, " initialize_epsg_extra (filter, first, last);\n"); fprintf (out, "#endif /* full EPSG initialization enabled/disabled */\n"); fprintf (out, " }\n"); for (i = 0; i < wgs84_sect; i++) fprintf (out, " initialize_epsg_wgs84_%02d (filter, first, last);\n", i); fprintf (out, "}\n"); /* closing the "extra" output file */ fclose (out); out = NULL; } int main (int argc, char *argv[]) { /* / / Please note: no args are supported !!! / / we'll expect to find two input files respectively named: / - epsg / - wkt / / the C code will be generated into: epsg_inlined.c / */ FILE *fl_epsg = NULL; FILE *fl_wkt = NULL; FILE *fl_out = NULL; struct epsg_dict epsg; /* initializing the EPSG dictionary */ epsg.first = NULL; epsg.last = NULL; epsg.sorted = NULL; epsg.count = 0; /* opening the EPSG input file */ fl_epsg = fopen ("epsg", "rb"); if (fl_epsg == NULL) { fprintf (stderr, "ERROR: unable to open the \"epsg\" input file\n"); goto stop; } /* opening the WKT input file */ fl_wkt = fopen ("wkt", "rb"); if (fl_wkt == NULL) { fprintf (stderr, "ERROR: unable to open the \"wkt\" input file\n"); goto stop; } if (!parse_epsg (fl_epsg, &epsg)) { fprintf (stderr, "ERROR: malformed EPSG input file\n"); goto stop; } if (!parse_wkt (fl_wkt, &epsg)) { fprintf (stderr, "ERROR: malformed WKT input file\n"); goto stop; } if (!sort_epsg (&epsg)) { fprintf (stderr, "ERROR: unable to sort EPSG entries\n"); goto stop; } output_c_code (fl_out, &epsg); stop: free_epsg (&epsg); if (fl_epsg) fclose (fl_epsg); if (fl_wkt) fclose (fl_wkt); if (fl_out) fclose (fl_out); return 0; } libspatialite-4.1.1/src/srsinit/epsg_inlined_22.c0000664000175000017500000033622012163502133016661 00000000000000/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def (filter, first, last, 4530, "epsg", 4530, "CGCS2000 / 3-degree Gauss-Kruger zone 42"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=126 +k=1 +x_0=42500000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger zone 42\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",126],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",1],PARAMETER[\"false_easting\",42500000],PARAMETER["); add_srs_wkt (p, 10, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"4530\"]]"); p = add_epsg_def (filter, first, last, 4531, "epsg", 4531, "CGCS2000 / 3-degree Gauss-Kruger zone 43"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=43500000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger zone 43\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",129],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",1],PARAMETER[\"false_easting\",43500000],PARAMETER["); add_srs_wkt (p, 10, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"4531\"]]"); p = add_epsg_def (filter, first, last, 4532, "epsg", 4532, "CGCS2000 / 3-degree Gauss-Kruger zone 44"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=132 +k=1 +x_0=44500000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger zone 44\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",132],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",1],PARAMETER[\"false_easting\",44500000],PARAMETER["); add_srs_wkt (p, 10, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"4532\"]]"); p = add_epsg_def (filter, first, last, 4533, "epsg", 4533, "CGCS2000 / 3-degree Gauss-Kruger zone 45"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=45500000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger zone 45\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",135],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",1],PARAMETER[\"false_easting\",45500000],PARAMETER["); add_srs_wkt (p, 10, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"4533\"]]"); p = add_epsg_def (filter, first, last, 4534, "epsg", 4534, "CGCS2000 / 3-degree Gauss-Kruger CM 75E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger CM 75E\",GEOGC"); add_srs_wkt (p, 1, "S[\"China Geodetic Coordinate System 2000\",DATUM[\"Chin"); add_srs_wkt (p, 2, "a_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 7, "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PAR"); add_srs_wkt (p, 8, "AMETER[\"central_meridian\",75],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, "\",1],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"4534\"]]"); p = add_epsg_def (filter, first, last, 4535, "epsg", 4535, "CGCS2000 / 3-degree Gauss-Kruger CM 78E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=78 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger CM 78E\",GEOGC"); add_srs_wkt (p, 1, "S[\"China Geodetic Coordinate System 2000\",DATUM[\"Chin"); add_srs_wkt (p, 2, "a_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 7, "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PAR"); add_srs_wkt (p, 8, "AMETER[\"central_meridian\",78],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, "\",1],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"4535\"]]"); p = add_epsg_def (filter, first, last, 4536, "epsg", 4536, "CGCS2000 / 3-degree Gauss-Kruger CM 81E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger CM 81E\",GEOGC"); add_srs_wkt (p, 1, "S[\"China Geodetic Coordinate System 2000\",DATUM[\"Chin"); add_srs_wkt (p, 2, "a_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 7, "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PAR"); add_srs_wkt (p, 8, "AMETER[\"central_meridian\",81],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, "\",1],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"4536\"]]"); p = add_epsg_def (filter, first, last, 4537, "epsg", 4537, "CGCS2000 / 3-degree Gauss-Kruger CM 84E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=84 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger CM 84E\",GEOGC"); add_srs_wkt (p, 1, "S[\"China Geodetic Coordinate System 2000\",DATUM[\"Chin"); add_srs_wkt (p, 2, "a_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 7, "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PAR"); add_srs_wkt (p, 8, "AMETER[\"central_meridian\",84],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, "\",1],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"4537\"]]"); p = add_epsg_def (filter, first, last, 4538, "epsg", 4538, "CGCS2000 / 3-degree Gauss-Kruger CM 87E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger CM 87E\",GEOGC"); add_srs_wkt (p, 1, "S[\"China Geodetic Coordinate System 2000\",DATUM[\"Chin"); add_srs_wkt (p, 2, "a_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 7, "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PAR"); add_srs_wkt (p, 8, "AMETER[\"central_meridian\",87],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, "\",1],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"4538\"]]"); p = add_epsg_def (filter, first, last, 4539, "epsg", 4539, "CGCS2000 / 3-degree Gauss-Kruger CM 90E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger CM 90E\",GEOGC"); add_srs_wkt (p, 1, "S[\"China Geodetic Coordinate System 2000\",DATUM[\"Chin"); add_srs_wkt (p, 2, "a_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 7, "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PAR"); add_srs_wkt (p, 8, "AMETER[\"central_meridian\",90],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, "\",1],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"4539\"]]"); p = add_epsg_def (filter, first, last, 4540, "epsg", 4540, "CGCS2000 / 3-degree Gauss-Kruger CM 93E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger CM 93E\",GEOGC"); add_srs_wkt (p, 1, "S[\"China Geodetic Coordinate System 2000\",DATUM[\"Chin"); add_srs_wkt (p, 2, "a_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 7, "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PAR"); add_srs_wkt (p, 8, "AMETER[\"central_meridian\",93],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, "\",1],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"4540\"]]"); p = add_epsg_def (filter, first, last, 4541, "epsg", 4541, "CGCS2000 / 3-degree Gauss-Kruger CM 96E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=96 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger CM 96E\",GEOGC"); add_srs_wkt (p, 1, "S[\"China Geodetic Coordinate System 2000\",DATUM[\"Chin"); add_srs_wkt (p, 2, "a_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 7, "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PAR"); add_srs_wkt (p, 8, "AMETER[\"central_meridian\",96],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, "\",1],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"4541\"]]"); p = add_epsg_def (filter, first, last, 4542, "epsg", 4542, "CGCS2000 / 3-degree Gauss-Kruger CM 99E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger CM 99E\",GEOGC"); add_srs_wkt (p, 1, "S[\"China Geodetic Coordinate System 2000\",DATUM[\"Chin"); add_srs_wkt (p, 2, "a_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 7, "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PAR"); add_srs_wkt (p, 8, "AMETER[\"central_meridian\",99],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, "\",1],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"4542\"]]"); p = add_epsg_def (filter, first, last, 4543, "epsg", 4543, "CGCS2000 / 3-degree Gauss-Kruger CM 102E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger CM 102E\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",102],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",1],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"4543\"]]"); p = add_epsg_def (filter, first, last, 4544, "epsg", 4544, "CGCS2000 / 3-degree Gauss-Kruger CM 105E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger CM 105E\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",105],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",1],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"4544\"]]"); p = add_epsg_def (filter, first, last, 4545, "epsg", 4545, "CGCS2000 / 3-degree Gauss-Kruger CM 108E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger CM 108E\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",108],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",1],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"4545\"]]"); p = add_epsg_def (filter, first, last, 4546, "epsg", 4546, "CGCS2000 / 3-degree Gauss-Kruger CM 111E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger CM 111E\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",111],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",1],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"4546\"]]"); p = add_epsg_def (filter, first, last, 4547, "epsg", 4547, "CGCS2000 / 3-degree Gauss-Kruger CM 114E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger CM 114E\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",114],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",1],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"4547\"]]"); p = add_epsg_def (filter, first, last, 4548, "epsg", 4548, "CGCS2000 / 3-degree Gauss-Kruger CM 117E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger CM 117E\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",117],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",1],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"4548\"]]"); p = add_epsg_def (filter, first, last, 4549, "epsg", 4549, "CGCS2000 / 3-degree Gauss-Kruger CM 120E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger CM 120E\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",120],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",1],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"4549\"]]"); p = add_epsg_def (filter, first, last, 4550, "epsg", 4550, "CGCS2000 / 3-degree Gauss-Kruger CM 123E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger CM 123E\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",123],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",1],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"4550\"]]"); p = add_epsg_def (filter, first, last, 4551, "epsg", 4551, "CGCS2000 / 3-degree Gauss-Kruger CM 126E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=126 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger CM 126E\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",126],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",1],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"4551\"]]"); p = add_epsg_def (filter, first, last, 4552, "epsg", 4552, "CGCS2000 / 3-degree Gauss-Kruger CM 129E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger CM 129E\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",129],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",1],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"4552\"]]"); p = add_epsg_def (filter, first, last, 4553, "epsg", 4553, "CGCS2000 / 3-degree Gauss-Kruger CM 132E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=132 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger CM 132E\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",132],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",1],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"4553\"]]"); p = add_epsg_def (filter, first, last, 4554, "epsg", 4554, "CGCS2000 / 3-degree Gauss-Kruger CM 135E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger CM 135E\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",135],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",1],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"4554\"]]"); p = add_epsg_def (filter, first, last, 4555, "epsg", 4555, "New Beijing"); add_proj4text (p, 0, "+proj=longlat +ellps=krass +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\""); add_srs_wkt (p, 1, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 2, "4\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 3, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 4, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 5, "SG\",\"4555\"]]"); p = add_epsg_def (filter, first, last, 4558, "epsg", 4558, "RRAF 1991"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"RRAF 1991\",DATUM[\"Reseau_de_Reference_des_Ant"); add_srs_wkt (p, 1, "illes_Francaises_1991\",SPHEROID[\"GRS 1980\",6378137,29"); add_srs_wkt (p, 2, "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,"); add_srs_wkt (p, 3, "0,0,0,0],AUTHORITY[\"EPSG\",\"1047\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 4, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 5, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"4558\"]]"); p = add_epsg_def (filter, first, last, 4559, "epsg", 4559, "RRAF 1991 / UTM zone 20N"); add_proj4text (p, 0, "+proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RRAF 1991 / UTM zone 20N\",GEOGCS[\"RRAF 1991\""); add_srs_wkt (p, 1, ",DATUM[\"Reseau_de_Reference_des_Antilles_Francaises_199"); add_srs_wkt (p, 2, "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"1047\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4558\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",-63],PARAME"); add_srs_wkt (p, 9, "TER[\"scale_factor\",0.9996],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 12, "XIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"4559\"]]"); p = add_epsg_def (filter, first, last, 4568, "epsg", 4568, "New Beijing / Gauss-Kruger zone 13"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=13500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / Gauss-Kruger zone 13\",GEOGCS[\"N"); add_srs_wkt (p, 1, "ew Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Krassowsky"); add_srs_wkt (p, 2, " 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"455"); add_srs_wkt (p, 6, "5\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 7, "titude_of_origin\",0],PARAMETER[\"central_meridian\",75]"); add_srs_wkt (p, 8, ",PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting"); add_srs_wkt (p, 9, "\",13500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 10, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 11, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4568\"]]"); p = add_epsg_def (filter, first, last, 4569, "epsg", 4569, "New Beijing / Gauss-Kruger zone 14"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=14500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / Gauss-Kruger zone 14\",GEOGCS[\"N"); add_srs_wkt (p, 1, "ew Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Krassowsky"); add_srs_wkt (p, 2, " 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"455"); add_srs_wkt (p, 6, "5\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 7, "titude_of_origin\",0],PARAMETER[\"central_meridian\",81]"); add_srs_wkt (p, 8, ",PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting"); add_srs_wkt (p, 9, "\",14500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 10, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 11, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4569\"]]"); p = add_epsg_def (filter, first, last, 4570, "epsg", 4570, "New Beijing / Gauss-Kruger zone 15"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=15500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / Gauss-Kruger zone 15\",GEOGCS[\"N"); add_srs_wkt (p, 1, "ew Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Krassowsky"); add_srs_wkt (p, 2, " 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"455"); add_srs_wkt (p, 6, "5\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 7, "titude_of_origin\",0],PARAMETER[\"central_meridian\",87]"); add_srs_wkt (p, 8, ",PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting"); add_srs_wkt (p, 9, "\",15500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 10, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 11, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4570\"]]"); p = add_epsg_def (filter, first, last, 4571, "epsg", 4571, "New Beijing / Gauss-Kruger zone 16"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=16500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / Gauss-Kruger zone 16\",GEOGCS[\"N"); add_srs_wkt (p, 1, "ew Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Krassowsky"); add_srs_wkt (p, 2, " 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"455"); add_srs_wkt (p, 6, "5\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 7, "titude_of_origin\",0],PARAMETER[\"central_meridian\",93]"); add_srs_wkt (p, 8, ",PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting"); add_srs_wkt (p, 9, "\",16500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 10, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 11, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4571\"]]"); p = add_epsg_def (filter, first, last, 4572, "epsg", 4572, "New Beijing / Gauss-Kruger zone 17"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=17500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / Gauss-Kruger zone 17\",GEOGCS[\"N"); add_srs_wkt (p, 1, "ew Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Krassowsky"); add_srs_wkt (p, 2, " 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"455"); add_srs_wkt (p, 6, "5\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 7, "titude_of_origin\",0],PARAMETER[\"central_meridian\",99]"); add_srs_wkt (p, 8, ",PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting"); add_srs_wkt (p, 9, "\",17500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 10, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 11, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4572\"]]"); p = add_epsg_def (filter, first, last, 4573, "epsg", 4573, "New Beijing / Gauss-Kruger zone 18"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=18500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / Gauss-Kruger zone 18\",GEOGCS[\"N"); add_srs_wkt (p, 1, "ew Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Krassowsky"); add_srs_wkt (p, 2, " 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"455"); add_srs_wkt (p, 6, "5\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 7, "titude_of_origin\",0],PARAMETER[\"central_meridian\",105"); add_srs_wkt (p, 8, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 9, "g\",18500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 10, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 11, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4573\"]]"); p = add_epsg_def (filter, first, last, 4574, "epsg", 4574, "New Beijing / Gauss-Kruger zone 19"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=19500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / Gauss-Kruger zone 19\",GEOGCS[\"N"); add_srs_wkt (p, 1, "ew Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Krassowsky"); add_srs_wkt (p, 2, " 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"455"); add_srs_wkt (p, 6, "5\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 7, "titude_of_origin\",0],PARAMETER[\"central_meridian\",111"); add_srs_wkt (p, 8, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 9, "g\",19500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 10, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 11, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4574\"]]"); p = add_epsg_def (filter, first, last, 4575, "epsg", 4575, "New Beijing / Gauss-Kruger zone 20"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=20500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / Gauss-Kruger zone 20\",GEOGCS[\"N"); add_srs_wkt (p, 1, "ew Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Krassowsky"); add_srs_wkt (p, 2, " 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"455"); add_srs_wkt (p, 6, "5\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 7, "titude_of_origin\",0],PARAMETER[\"central_meridian\",117"); add_srs_wkt (p, 8, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 9, "g\",20500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 10, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 11, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4575\"]]"); p = add_epsg_def (filter, first, last, 4576, "epsg", 4576, "New Beijing / Gauss-Kruger zone 21"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=21500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / Gauss-Kruger zone 21\",GEOGCS[\"N"); add_srs_wkt (p, 1, "ew Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Krassowsky"); add_srs_wkt (p, 2, " 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"455"); add_srs_wkt (p, 6, "5\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 7, "titude_of_origin\",0],PARAMETER[\"central_meridian\",123"); add_srs_wkt (p, 8, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 9, "g\",21500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 10, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 11, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4576\"]]"); p = add_epsg_def (filter, first, last, 4577, "epsg", 4577, "New Beijing / Gauss-Kruger zone 22"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=22500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / Gauss-Kruger zone 22\",GEOGCS[\"N"); add_srs_wkt (p, 1, "ew Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Krassowsky"); add_srs_wkt (p, 2, " 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"455"); add_srs_wkt (p, 6, "5\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 7, "titude_of_origin\",0],PARAMETER[\"central_meridian\",129"); add_srs_wkt (p, 8, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 9, "g\",22500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 10, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 11, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4577\"]]"); p = add_epsg_def (filter, first, last, 4578, "epsg", 4578, "New Beijing / Gauss-Kruger zone 23"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=23500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / Gauss-Kruger zone 23\",GEOGCS[\"N"); add_srs_wkt (p, 1, "ew Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Krassowsky"); add_srs_wkt (p, 2, " 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"455"); add_srs_wkt (p, 6, "5\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 7, "titude_of_origin\",0],PARAMETER[\"central_meridian\",135"); add_srs_wkt (p, 8, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 9, "g\",23500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 10, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 11, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4578\"]]"); p = add_epsg_def (filter, first, last, 4579, "epsg", 4579, "New Beijing / Gauss-Kruger CM 75E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / Gauss-Kruger CM 75E\",GEOGCS[\"Ne"); add_srs_wkt (p, 1, "w Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Krassowsky "); add_srs_wkt (p, 2, "1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],AUTHO"); add_srs_wkt (p, 3, "RITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 4, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4555"); add_srs_wkt (p, 6, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 7, "itude_of_origin\",0],PARAMETER[\"central_meridian\",75],"); add_srs_wkt (p, 8, "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 9, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 10, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 11, "Y\",EAST],AUTHORITY[\"EPSG\",\"4579\"]]"); p = add_epsg_def (filter, first, last, 4580, "epsg", 4580, "New Beijing / Gauss-Kruger CM 81E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / Gauss-Kruger CM 81E\",GEOGCS[\"Ne"); add_srs_wkt (p, 1, "w Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Krassowsky "); add_srs_wkt (p, 2, "1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],AUTHO"); add_srs_wkt (p, 3, "RITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 4, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4555"); add_srs_wkt (p, 6, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 7, "itude_of_origin\",0],PARAMETER[\"central_meridian\",81],"); add_srs_wkt (p, 8, "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 9, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 10, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 11, "Y\",EAST],AUTHORITY[\"EPSG\",\"4580\"]]"); p = add_epsg_def (filter, first, last, 4581, "epsg", 4581, "New Beijing / Gauss-Kruger CM 87E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / Gauss-Kruger CM 87E\",GEOGCS[\"Ne"); add_srs_wkt (p, 1, "w Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Krassowsky "); add_srs_wkt (p, 2, "1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],AUTHO"); add_srs_wkt (p, 3, "RITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 4, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4555"); add_srs_wkt (p, 6, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 7, "itude_of_origin\",0],PARAMETER[\"central_meridian\",87],"); add_srs_wkt (p, 8, "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 9, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 10, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 11, "Y\",EAST],AUTHORITY[\"EPSG\",\"4581\"]]"); p = add_epsg_def (filter, first, last, 4582, "epsg", 4582, "New Beijing / Gauss-Kruger CM 93E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / Gauss-Kruger CM 93E\",GEOGCS[\"Ne"); add_srs_wkt (p, 1, "w Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Krassowsky "); add_srs_wkt (p, 2, "1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],AUTHO"); add_srs_wkt (p, 3, "RITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 4, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4555"); add_srs_wkt (p, 6, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 7, "itude_of_origin\",0],PARAMETER[\"central_meridian\",93],"); add_srs_wkt (p, 8, "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 9, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 10, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 11, "Y\",EAST],AUTHORITY[\"EPSG\",\"4582\"]]"); p = add_epsg_def (filter, first, last, 4583, "epsg", 4583, "New Beijing / Gauss-Kruger CM 99E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / Gauss-Kruger CM 99E\",GEOGCS[\"Ne"); add_srs_wkt (p, 1, "w Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Krassowsky "); add_srs_wkt (p, 2, "1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],AUTHO"); add_srs_wkt (p, 3, "RITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 4, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4555"); add_srs_wkt (p, 6, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 7, "itude_of_origin\",0],PARAMETER[\"central_meridian\",99],"); add_srs_wkt (p, 8, "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 9, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 10, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 11, "Y\",EAST],AUTHORITY[\"EPSG\",\"4583\"]]"); p = add_epsg_def (filter, first, last, 4584, "epsg", 4584, "New Beijing / Gauss-Kruger CM 105E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / Gauss-Kruger CM 105E\",GEOGCS[\"N"); add_srs_wkt (p, 1, "ew Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Krassowsky"); add_srs_wkt (p, 2, " 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"455"); add_srs_wkt (p, 6, "5\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 7, "titude_of_origin\",0],PARAMETER[\"central_meridian\",105"); add_srs_wkt (p, 8, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 9, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 10, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 11, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4584\"]]"); p = add_epsg_def (filter, first, last, 4585, "epsg", 4585, "New Beijing / Gauss-Kruger CM 111E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / Gauss-Kruger CM 111E\",GEOGCS[\"N"); add_srs_wkt (p, 1, "ew Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Krassowsky"); add_srs_wkt (p, 2, " 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"455"); add_srs_wkt (p, 6, "5\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 7, "titude_of_origin\",0],PARAMETER[\"central_meridian\",111"); add_srs_wkt (p, 8, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 9, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 10, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 11, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4585\"]]"); p = add_epsg_def (filter, first, last, 4586, "epsg", 4586, "New Beijing / Gauss-Kruger CM 117E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / Gauss-Kruger CM 117E\",GEOGCS[\"N"); add_srs_wkt (p, 1, "ew Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Krassowsky"); add_srs_wkt (p, 2, " 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"455"); add_srs_wkt (p, 6, "5\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 7, "titude_of_origin\",0],PARAMETER[\"central_meridian\",117"); add_srs_wkt (p, 8, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 9, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 10, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 11, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4586\"]]"); p = add_epsg_def (filter, first, last, 4587, "epsg", 4587, "New Beijing / Gauss-Kruger CM 123E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / Gauss-Kruger CM 123E\",GEOGCS[\"N"); add_srs_wkt (p, 1, "ew Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Krassowsky"); add_srs_wkt (p, 2, " 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"455"); add_srs_wkt (p, 6, "5\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 7, "titude_of_origin\",0],PARAMETER[\"central_meridian\",123"); add_srs_wkt (p, 8, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 9, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 10, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 11, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4587\"]]"); p = add_epsg_def (filter, first, last, 4588, "epsg", 4588, "New Beijing / Gauss-Kruger CM 129E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / Gauss-Kruger CM 129E\",GEOGCS[\"N"); add_srs_wkt (p, 1, "ew Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Krassowsky"); add_srs_wkt (p, 2, " 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"455"); add_srs_wkt (p, 6, "5\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 7, "titude_of_origin\",0],PARAMETER[\"central_meridian\",129"); add_srs_wkt (p, 8, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 9, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 10, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 11, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4588\"]]"); p = add_epsg_def (filter, first, last, 4589, "epsg", 4589, "New Beijing / Gauss-Kruger CM 135E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / Gauss-Kruger CM 135E\",GEOGCS[\"N"); add_srs_wkt (p, 1, "ew Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Krassowsky"); add_srs_wkt (p, 2, " 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"455"); add_srs_wkt (p, 6, "5\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 7, "titude_of_origin\",0],PARAMETER[\"central_meridian\",135"); add_srs_wkt (p, 8, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 9, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 10, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 11, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4589\"]]"); p = add_epsg_def (filter, first, last, 4600, "epsg", 4600, "Anguilla 1957"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Anguilla 1957\",DATUM[\"Anguilla_1957\",SPHEROI"); add_srs_wkt (p, 1, "D[\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7012\"]],AUTHORITY[\"EPSG\",\"6600\"]],PRIMEM[\""); add_srs_wkt (p, 3, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 4, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"4600\"]]"); p = add_epsg_def (filter, first, last, 4601, "epsg", 4601, "Antigua 1943"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=-255,-15,71,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Antigua 1943\",DATUM[\"Antigua_1943\",SPHEROID["); add_srs_wkt (p, 1, "\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EP"); add_srs_wkt (p, 2, "SG\",\"7012\"]],TOWGS84[-255,-15,71,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6601\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4601\"]]"); p = add_epsg_def (filter, first, last, 4602, "epsg", 4602, "Dominica 1945"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=725,685,536,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Dominica 1945\",DATUM[\"Dominica_1945\",SPHEROI"); add_srs_wkt (p, 1, "D[\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7012\"]],TOWGS84[725,685,536,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"6602\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4602\"]]"); p = add_epsg_def (filter, first, last, 4603, "epsg", 4603, "Grenada 1953"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=72,213.7,93,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Grenada 1953\",DATUM[\"Grenada_1953\",SPHEROID["); add_srs_wkt (p, 1, "\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EP"); add_srs_wkt (p, 2, "SG\",\"7012\"]],TOWGS84[72,213.7,93,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6603\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4603\"]]"); p = add_epsg_def (filter, first, last, 4604, "epsg", 4604, "Montserrat 1958"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=174,359,365,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Montserrat 1958\",DATUM[\"Montserrat_1958\",SPH"); add_srs_wkt (p, 1, "EROID[\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7012\"]],TOWGS84[174,359,365,0,0,0,0],AUTHO"); add_srs_wkt (p, 3, "RITY[\"EPSG\",\"6604\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 4, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4604"); add_srs_wkt (p, 6, "\"]]"); p = add_epsg_def (filter, first, last, 4605, "epsg", 4605, "St. Kitts 1955"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=9,183,236,0,0,0,0 +"); add_proj4text (p, 1, "no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"St. Kitts 1955\",DATUM[\"St_Kitts_1955\",SPHERO"); add_srs_wkt (p, 1, "ID[\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7012\"]],TOWGS84[9,183,236,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6605\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4605\"]]"); p = add_epsg_def (filter, first, last, 4606, "epsg", 4606, "St. Lucia 1955"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=-149,128,296,0,0,0,"); add_proj4text (p, 1, "0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"St. Lucia 1955\",DATUM[\"St_Lucia_1955\",SPHERO"); add_srs_wkt (p, 1, "ID[\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7012\"]],TOWGS84[-149,128,296,0,0,0,0],AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"6606\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4606\"]]"); p = add_epsg_def (filter, first, last, 4607, "epsg", 4607, "St. Vincent 1945"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=195.671,332.517,274"); add_proj4text (p, 1, ".607,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"St. Vincent 1945\",DATUM[\"St_Vincent_1945\",SP"); add_srs_wkt (p, 1, "HEROID[\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7012\"]],TOWGS84[195.671,332.517,274.607,0"); add_srs_wkt (p, 3, ",0,0,0],AUTHORITY[\"EPSG\",\"6607\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 4, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 5, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"4607\"]]"); p = add_epsg_def (filter, first, last, 4608, "epsg", 4608, "NAD27(76)"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk66 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"NAD27(76)\",DATUM[\"North_American_Datum_1927_1"); add_srs_wkt (p, 1, "976\",SPHEROID[\"Clarke 1866\",6378206.4,294.97869821389"); add_srs_wkt (p, 2, "82,AUTHORITY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"66"); add_srs_wkt (p, 3, "08\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 4, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4608\"]]"); p = add_epsg_def (filter, first, last, 4609, "epsg", 4609, "NAD27(CGQ77)"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk66 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"NAD27(CGQ77)\",DATUM[\"North_American_Datum_192"); add_srs_wkt (p, 1, "7_CGQ77\",SPHEROID[\"Clarke 1866\",6378206.4,294.9786982"); add_srs_wkt (p, 2, "138982,AUTHORITY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"6609\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 4, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4609\"]]"); p = add_epsg_def (filter, first, last, 4610, "epsg", 4610, "Xian 1980"); add_proj4text (p, 0, "+proj=longlat +a=6378140 +b=6356755.288157528 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG "); add_srs_wkt (p, 1, "1975\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 4, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"46"); add_srs_wkt (p, 5, "10\"]]"); p = add_epsg_def (filter, first, last, 4611, "epsg", 4611, "Hong Kong 1980"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-162.619,-276.959,-16"); add_proj4text (p, 1, "1.764,0.067753,-2.24365,-1.15883,-1.09425 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Hong Kong 1980\",DATUM[\"Hong_Kong_1980\",SPHER"); add_srs_wkt (p, 1, "OID[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 2, ",\"7022\"]],TOWGS84[-162.619,-276.959,-161.764,0.067753,"); add_srs_wkt (p, 3, "-2.24365,-1.15883,-1.09425],AUTHORITY[\"EPSG\",\"6611\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4611\"]]"); p = add_epsg_def (filter, first, last, 4612, "epsg", 4612, "JGD2000"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"JGD2000\",DATUM[\"Japanese_Geodetic_Datum_2000\""); add_srs_wkt (p, 1, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"6612\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4612\"]]"); p = add_epsg_def (filter, first, last, 4613, "epsg", 4613, "Segara"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +towgs84=-403,684,41,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Segara\",DATUM[\"Gunung_Segara\",SPHEROID[\"Bes"); add_srs_wkt (p, 1, "sel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 2, "7004\"]],TOWGS84[-403,684,41,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6613\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4613\"]]"); p = add_epsg_def (filter, first, last, 4614, "epsg", 4614, "QND95"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-119.425,-303.659,-11"); add_proj4text (p, 1, ".0006,1.1643,0.174458,1.09626,3.65706 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"QND95\",DATUM[\"Qatar_National_Datum_1995\",SPH"); add_srs_wkt (p, 1, "EROID[\"International 1924\",6378388,297,AUTHORITY[\"EPS"); add_srs_wkt (p, 2, "G\",\"7022\"]],TOWGS84[-119.425,-303.659,-11.0006,1.1643"); add_srs_wkt (p, 3, ",0.174458,1.09626,3.65706],AUTHORITY[\"EPSG\",\"6614\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AUTHORITY[\"EPSG\",\"4614\"]]"); p = add_epsg_def (filter, first, last, 4615, "epsg", 4615, "Porto Santo"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-499,-249,314,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Porto Santo\",DATUM[\"Porto_Santo_1936\",SPHERO"); add_srs_wkt (p, 1, "ID[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 2, ",\"7022\"]],TOWGS84[-499,-249,314,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"6615\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4615\"]]"); p = add_epsg_def (filter, first, last, 4616, "epsg", 4616, "Selvagem Grande"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-289,-124,60,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Selvagem Grande\",DATUM[\"Selvagem_Grande\",SPH"); add_srs_wkt (p, 1, "EROID[\"International 1924\",6378388,297,AUTHORITY[\"EPS"); add_srs_wkt (p, 2, "G\",\"7022\"]],TOWGS84[-289,-124,60,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6616\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4616\"]]"); p = add_epsg_def (filter, first, last, 4617, "epsg", 4617, "NAD83(CSRS)"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Re"); add_srs_wkt (p, 1, "ference_System\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 2, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4617\"]]"); p = add_epsg_def (filter, first, last, 4618, "epsg", 4618, "SAD69"); add_proj4text (p, 0, "+proj=longlat +ellps=aust_SA +towgs84=-57,1,-41,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"SAD69\",DATUM[\"South_American_Datum_1969\",SPH"); add_srs_wkt (p, 1, "EROID[\"GRS 1967 Modified\",6378160,298.25,AUTHORITY[\"E"); add_srs_wkt (p, 2, "PSG\",\"7050\"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6618\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4618\"]]"); p = add_epsg_def (filter, first, last, 4619, "epsg", 4619, "SWEREF99"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"SWEREF99\",DATUM[\"SWEREF99\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 1, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 2, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6619\"]],PR"); add_srs_wkt (p, 3, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 4, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 5, "]],AUTHORITY[\"EPSG\",\"4619\"]]"); p = add_epsg_def (filter, first, last, 4620, "epsg", 4620, "Point 58"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=-106,-129,165,0,0,0"); add_proj4text (p, 1, ",0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Point 58\",DATUM[\"Point_58\",SPHEROID[\"Clarke"); add_srs_wkt (p, 1, " 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 2, "012\"]],TOWGS84[-106,-129,165,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6620\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4620\"]]"); p = add_epsg_def (filter, first, last, 4621, "epsg", 4621, "Fort Marigot"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=137,248,-430,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Fort Marigot\",DATUM[\"Fort_Marigot\",SPHEROID["); add_srs_wkt (p, 1, "\"International 1924\",6378388,297,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 2, "7022\"]],TOWGS84[137,248,-430,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6621\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4621\"]]"); p = add_epsg_def (filter, first, last, 4622, "epsg", 4622, "Guadeloupe 1948"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-467,-16,-300,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Guadeloupe 1948\",DATUM[\"Guadeloupe_1948\",SPH"); add_srs_wkt (p, 1, "EROID[\"International 1924\",6378388,297,AUTHORITY[\"EPS"); add_srs_wkt (p, 2, "G\",\"7022\"]],TOWGS84[-467,-16,-300,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"6622\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4622\"]]"); p = add_epsg_def (filter, first, last, 4623, "epsg", 4623, "CSG67"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-186,230,110,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"CSG67\",DATUM[\"Centre_Spatial_Guyanais_1967\","); add_srs_wkt (p, 1, "SPHEROID[\"International 1924\",6378388,297,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7022\"]],TOWGS84[-186,230,110,0,0,0,0],AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"6623\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4623\"]]"); p = add_epsg_def (filter, first, last, 4624, "epsg", 4624, "RGFG95"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"RGFG95\",DATUM[\"Reseau_Geodesique_Francais_Guy"); add_srs_wkt (p, 1, "ane_1995\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 2, "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"6624\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"462"); add_srs_wkt (p, 6, "4\"]]"); p = add_epsg_def (filter, first, last, 4625, "epsg", 4625, "Martinique 1938"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=186,482,151,0,0,0,0 +"); add_proj4text (p, 1, "no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Martinique 1938\",DATUM[\"Martinique_1938\",SPH"); add_srs_wkt (p, 1, "EROID[\"International 1924\",6378388,297,AUTHORITY[\"EPS"); add_srs_wkt (p, 2, "G\",\"7022\"]],TOWGS84[186,482,151,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6625\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4625\"]]"); p = add_epsg_def (filter, first, last, 4626, "epsg", 4626, "Reunion 1947"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=94,-948,-1262,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Reunion 1947\",DATUM[\"Reunion_1947\",SPHEROID["); add_srs_wkt (p, 1, "\"International 1924\",6378388,297,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 2, "7022\"]],TOWGS84[94,-948,-1262,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"6626\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4626\"]]"); p = add_epsg_def (filter, first, last, 4627, "epsg", 4627, "RGR92"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"RGR92\",DATUM[\"Reseau_Geodesique_de_la_Reunion"); add_srs_wkt (p, 1, "_1992\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 2, "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"6627\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4627\""); add_srs_wkt (p, 6, "]]"); p = add_epsg_def (filter, first, last, 4628, "epsg", 4628, "Tahiti 52"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=162,117,154,0,0,0,0 +"); add_proj4text (p, 1, "no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Tahiti 52\",DATUM[\"Tahiti_52\",SPHEROID[\"Inte"); add_srs_wkt (p, 1, "rnational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); add_srs_wkt (p, 2, "]],TOWGS84[162,117,154,0,0,0,0],AUTHORITY[\"EPSG\",\"662"); add_srs_wkt (p, 3, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 4, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4628\"]]"); p = add_epsg_def (filter, first, last, 4629, "epsg", 4629, "Tahaa 54"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=72.438,345.918,79.486"); add_proj4text (p, 1, ",1.6045,0.8823,0.5565,1.3746 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Tahaa 54\",DATUM[\"Tahaa_54\",SPHEROID[\"Intern"); add_srs_wkt (p, 1, "ational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]]"); add_srs_wkt (p, 2, ",TOWGS84[72.438,345.918,79.486,1.6045,0.8823,0.5565,1.37"); add_srs_wkt (p, 3, "46],AUTHORITY[\"EPSG\",\"6629\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 5, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"4629\"]]"); p = add_epsg_def (filter, first, last, 4630, "epsg", 4630, "IGN72 Nuku Hiva"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=84,274,65,0,0,0,0 +no"); add_proj4text (p, 1, "_defs"); add_srs_wkt (p, 0, "GEOGCS[\"IGN72 Nuku Hiva\",DATUM[\"IGN72_Nuku_Hiva\",SPH"); add_srs_wkt (p, 1, "EROID[\"International 1924\",6378388,297,AUTHORITY[\"EPS"); add_srs_wkt (p, 2, "G\",\"7022\"]],TOWGS84[84,274,65,0,0,0,0],AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"6630\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4630\"]]"); p = add_epsg_def (filter, first, last, 4631, "epsg", 4631, "K0 1949"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=145,-187,103,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"K0 1949\",DATUM[\"K0_1949\",SPHEROID[\"Internat"); add_srs_wkt (p, 1, "ional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],T"); add_srs_wkt (p, 2, "OWGS84[145,-187,103,0,0,0,0],AUTHORITY[\"EPSG\",\"6631\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4631\"]]"); p = add_epsg_def (filter, first, last, 4632, "epsg", 4632, "Combani 1950"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-382,-59,-262,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Combani 1950\",DATUM[\"Combani_1950\",SPHEROID["); add_srs_wkt (p, 1, "\"International 1924\",6378388,297,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 2, "7022\"]],TOWGS84[-382,-59,-262,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"6632\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4632\"]]"); p = add_epsg_def (filter, first, last, 4633, "epsg", 4633, "IGN56 Lifou"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=335.47,222.58,-230.94"); add_proj4text (p, 1, ",0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"IGN56 Lifou\",DATUM[\"IGN56_Lifou\",SPHEROID[\""); add_srs_wkt (p, 1, "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 2, "22\"]],TOWGS84[335.47,222.58,-230.94,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"6633\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4633\"]]"); p = add_epsg_def (filter, first, last, 4634, "epsg", 4634, "IGN72 Grand Terre"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-13,-348,292,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"IGN72 Grand Terre\",DATUM[\"IGN72_Grande_Terre\""); add_srs_wkt (p, 1, ",SPHEROID[\"International 1924\",6378388,297,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7022\"]],TOWGS84[-13,-348,292,0,0,0,0],AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"6634\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"9108\"]],AUTHORITY[\"EPSG\",\"4634\"]]"); p = add_epsg_def (filter, first, last, 4635, "epsg", 4635, "ST87 Ouvea"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-122.383,-188.696,103"); add_proj4text (p, 1, ".344,3.5107,-4.9668,-5.7047,4.4798 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"ST87 Ouvea\",DATUM[\"ST87_Ouvea\",SPHEROID[\"In"); add_srs_wkt (p, 1, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 2, "\"]],TOWGS84[-122.383,-188.696,103.344,3.5107,-4.9668,-5"); add_srs_wkt (p, 3, ".7047,4.4798],AUTHORITY[\"EPSG\",\"6635\"]],PRIMEM[\"Gre"); add_srs_wkt (p, 4, "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4635\"]]"); p = add_epsg_def (filter, first, last, 4636, "epsg", 4636, "Petrels 1972"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=365,194,166,0,0,0,0 +"); add_proj4text (p, 1, "no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Petrels 1972\",DATUM[\"Petrels_1972\",SPHEROID["); add_srs_wkt (p, 1, "\"International 1924\",6378388,297,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 2, "7022\"]],TOWGS84[365,194,166,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6636\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4636\"]]"); p = add_epsg_def (filter, first, last, 4637, "epsg", 4637, "Perroud 1950"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=325,154,172,0,0,0,0 +"); add_proj4text (p, 1, "no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Perroud 1950\",DATUM[\"Pointe_Geologie_Perroud_"); add_srs_wkt (p, 1, "1950\",SPHEROID[\"International 1924\",6378388,297,AUTHO"); add_srs_wkt (p, 2, "RITY[\"EPSG\",\"7022\"]],TOWGS84[325,154,172,0,0,0,0],AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"6637\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 6, "637\"]]"); p = add_epsg_def (filter, first, last, 4638, "epsg", 4638, "Saint Pierre et Miquelon 1950"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk66 +towgs84=30,430,368,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Saint Pierre et Miquelon 1950\",DATUM[\"Saint_P"); add_srs_wkt (p, 1, "ierre_et_Miquelon_1950\",SPHEROID[\"Clarke 1866\",637820"); add_srs_wkt (p, 2, "6.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],TOWG"); add_srs_wkt (p, 3, "S84[30,430,368,0,0,0,0],AUTHORITY[\"EPSG\",\"6638\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AUTHORITY[\"EPSG\",\"4638\"]]"); p = add_epsg_def (filter, first, last, 4639, "epsg", 4639, "MOP78"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=253,-132,-127,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"MOP78\",DATUM[\"MOP78\",SPHEROID[\"Internationa"); add_srs_wkt (p, 1, "l 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS"); add_srs_wkt (p, 2, "84[253,-132,-127,0,0,0,0],AUTHORITY[\"EPSG\",\"6639\"]],"); add_srs_wkt (p, 3, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 4, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 5, "2\"]],AUTHORITY[\"EPSG\",\"4639\"]]"); p = add_epsg_def (filter, first, last, 4640, "epsg", 4640, "RRAF 1991"); add_proj4text (p, 0, "+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"RRAF 1991\",DATUM[\"Reseau_de_Reference_des_Ant"); add_srs_wkt (p, 1, "illes_Francaises_1991\",SPHEROID[\"WGS 84\",6378137,298."); add_srs_wkt (p, 2, "257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,0,0,0,"); add_srs_wkt (p, 3, "0,0,0],AUTHORITY[\"EPSG\",\"6640\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 6, "SG\",\"4640\"]]"); p = add_epsg_def (filter, first, last, 4641, "epsg", 4641, "IGN53 Mare"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=287.58,177.78,-135.41"); add_proj4text (p, 1, ",0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"IGN53 Mare\",DATUM[\"IGN53_Mare\",SPHEROID[\"In"); add_srs_wkt (p, 1, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 2, "\"]],TOWGS84[287.58,177.78,-135.41,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6641\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4641\"]]"); p = add_epsg_def (filter, first, last, 4642, "epsg", 4642, "ST84 Ile des Pins"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-13,-348,292,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"ST84 Ile des Pins\",DATUM[\"ST84_Ile_des_Pins\""); add_srs_wkt (p, 1, ",SPHEROID[\"International 1924\",6378388,297,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7022\"]],TOWGS84[-13,-348,292,0,0,0,0],AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"6642\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4642\"]]"); p = add_epsg_def (filter, first, last, 4643, "epsg", 4643, "ST71 Belep"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-480.26,-438.32,-643."); add_proj4text (p, 1, "429,16.3119,20.1721,-4.0349,-111.7 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"ST71 Belep\",DATUM[\"ST71_Belep\",SPHEROID[\"In"); add_srs_wkt (p, 1, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 2, "\"]],TOWGS84[-480.26,-438.32,-643.429,16.3119,20.1721,-4"); add_srs_wkt (p, 3, ".0349,-111.7],AUTHORITY[\"EPSG\",\"6643\"]],PRIMEM[\"Gre"); add_srs_wkt (p, 4, "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4643\"]]"); p = add_epsg_def (filter, first, last, 4644, "epsg", 4644, "NEA74 Noumea"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-10.18,-350.43,291.37"); add_proj4text (p, 1, ",0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"NEA74 Noumea\",DATUM[\"NEA74_Noumea\",SPHEROID["); add_srs_wkt (p, 1, "\"International 1924\",6378388,297,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 2, "7022\"]],TOWGS84[-10.18,-350.43,291.37,0,0,0,0],AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"6644\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4644\"]]"); p = add_epsg_def (filter, first, last, 4645, "epsg", 4645, "RGNC 1991"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=0,0,0,0,0,0,0 +no_def"); add_proj4text (p, 1, "s"); add_srs_wkt (p, 0, "GEOGCS[\"RGNC 1991\",DATUM[\"Reseau_Geodesique_Nouvelle_"); add_srs_wkt (p, 1, "Caledonie_1991\",SPHEROID[\"International 1924\",6378388"); add_srs_wkt (p, 2, ",297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6645\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4645\"]]"); p = add_epsg_def (filter, first, last, 4646, "epsg", 4646, "Grand Comoros"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-963,510,-359,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Grand Comoros\",DATUM[\"Grand_Comoros\",SPHEROI"); add_srs_wkt (p, 1, "D[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 2, "\"7022\"]],TOWGS84[-963,510,-359,0,0,0,0],AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"6646\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4646\"]]"); p = add_epsg_def (filter, first, last, 4647, "epsg", 4647, "ETRS89 / UTM zone N32"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=9 +k=0.9996 +x_0=32500000 +y"); add_proj4text (p, 1, "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / UTM zone N32\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, "],PARAMETER[\"central_meridian\",9],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",0.9996],PARAMETER[\"false_easting\",32500000],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 11, "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 12, "ng\",NORTH],AUTHORITY[\"EPSG\",\"4647\"]]"); p = add_epsg_def (filter, first, last, 4652, "epsg", 4652, "New Beijing / 3-degree Gauss-Kruger zone 25"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=25500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger zone 25\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 7, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 8, "ian\",75],PARAMETER[\"scale_factor\",1],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",25500000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 10, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); add_srs_wkt (p, 11, "NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4652\"]]"); p = add_epsg_def (filter, first, last, 4653, "epsg", 4653, "New Beijing / 3-degree Gauss-Kruger zone 26"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=78 +k=1 +x_0=26500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger zone 26\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 7, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 8, "ian\",78],PARAMETER[\"scale_factor\",1],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",26500000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 10, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); add_srs_wkt (p, 11, "NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4653\"]]"); p = add_epsg_def (filter, first, last, 4654, "epsg", 4654, "New Beijing / 3-degree Gauss-Kruger zone 27"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=27500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger zone 27\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 7, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 8, "ian\",81],PARAMETER[\"scale_factor\",1],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",27500000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 10, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); add_srs_wkt (p, 11, "NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4654\"]]"); } #endif /* full EPSG initialization enabled/disabled */ libspatialite-4.1.1/src/srsinit/epsg_inlined_20.c0000664000175000017500000023544212163502133016663 00000000000000/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def (filter, first, last, 4213, "epsg", 4213, "Beduaram"); add_proj4text (p, 0, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-106,-87,"); add_proj4text (p, 1, "188,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Beduaram\",DATUM[\"Beduaram\",SPHEROID[\"Clarke"); add_srs_wkt (p, 1, " 1880 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[\"EP"); add_srs_wkt (p, 2, "SG\",\"7011\"]],TOWGS84[-106,-87,188,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"6213\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4213\"]]"); p = add_epsg_def (filter, first, last, 4214, "epsg", 4214, "Beijing 1954"); add_proj4text (p, 0, "+proj=longlat +ellps=krass +towgs84=15.8,-154.4,-82.3,0,"); add_proj4text (p, 1, "0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 1, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 2, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]]"); p = add_epsg_def (filter, first, last, 4215, "epsg", 4215, "Belge 1950"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Belge 1950\",DATUM[\"Reseau_National_Belge_1950"); add_srs_wkt (p, 1, "\",SPHEROID[\"International 1924\",6378388,297,AUTHORITY"); add_srs_wkt (p, 2, "[\"EPSG\",\"7022\"]],AUTHORITY[\"EPSG\",\"6215\"]],PRIME"); add_srs_wkt (p, 3, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 4, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"4215\"]]"); p = add_epsg_def (filter, first, last, 4216, "epsg", 4216, "Bermuda 1957"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk66 +towgs84=-73,213,296,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Bermuda 1957\",DATUM[\"Bermuda_1957\",SPHEROID["); add_srs_wkt (p, 1, "\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7008\"]],TOWGS84[-73,213,296,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"6216\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4216\"]]"); p = add_epsg_def (filter, first, last, 4217, "epsg", 4217, "NAD83 / BLM 59N (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=171 +k=0.9996 +x_0=500000.00"); add_proj4text (p, 1, "1016002 +y_0=0 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / BLM 59N (ftUS)\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 7, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 8, "ntral_meridian\",171],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 9, ",PARAMETER[\"false_easting\",1640416.67],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012"); add_srs_wkt (p, 11, "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS["); add_srs_wkt (p, 12, "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"4217\"]]"); p = add_epsg_def (filter, first, last, 4218, "epsg", 4218, "Bogota 1975"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=307,304,-318,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Bogota 1975\",DATUM[\"Bogota_1975\",SPHEROID[\""); add_srs_wkt (p, 1, "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 2, "22\"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"6218\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 4, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4218\"]]"); p = add_epsg_def (filter, first, last, 4219, "epsg", 4219, "Bukit Rimpah"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +towgs84=-384,664,-48,0,0,0,"); add_proj4text (p, 1, "0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Bukit Rimpah\",DATUM[\"Bukit_Rimpah\",SPHEROID["); add_srs_wkt (p, 1, "\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG"); add_srs_wkt (p, 2, "\",\"7004\"]],TOWGS84[-384,664,-48,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6219\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4219\"]]"); p = add_epsg_def (filter, first, last, 4220, "epsg", 4220, "Camacupa"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=-50.9,-347.6,-231,0"); add_proj4text (p, 1, ",0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Camacupa\",DATUM[\"Camacupa\",SPHEROID[\"Clarke"); add_srs_wkt (p, 1, " 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 2, "012\"]],TOWGS84[-50.9,-347.6,-231,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"6220\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4220\"]]"); p = add_epsg_def (filter, first, last, 4221, "epsg", 4221, "Campo Inchauspe"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-148,136,90,0,0,0,0 +"); add_proj4text (p, 1, "no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Campo Inchauspe\",DATUM[\"Campo_Inchauspe\",SPH"); add_srs_wkt (p, 1, "EROID[\"International 1924\",6378388,297,AUTHORITY[\"EPS"); add_srs_wkt (p, 2, "G\",\"7022\"]],TOWGS84[-148,136,90,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6221\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4221\"]]"); p = add_epsg_def (filter, first, last, 4222, "epsg", 4222, "Cape"); add_proj4text (p, 0, "+proj=longlat +a=6378249.145 +b=6356514.966398753 +towgs"); add_proj4text (p, 1, "84=-136,-108,-292,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Cape\",DATUM[\"Cape\",SPHEROID[\"Clarke 1880 (A"); add_srs_wkt (p, 1, "rc)\",6378249.145,293.4663077,AUTHORITY[\"EPSG\",\"7013\""); add_srs_wkt (p, 2, "]],TOWGS84[-136,-108,-292,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "6222\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 4, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4222\"]]"); p = add_epsg_def (filter, first, last, 4223, "epsg", 4223, "Carthage"); add_proj4text (p, 0, "+proj=longlat +datum=carthage +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Carthage\",DATUM[\"Carthage\",SPHEROID[\"Clarke"); add_srs_wkt (p, 1, " 1880 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[\"EP"); add_srs_wkt (p, 2, "SG\",\"7011\"]],TOWGS84[-263,6,431,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6223\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4223\"]]"); p = add_epsg_def (filter, first, last, 4224, "epsg", 4224, "Chua"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-134,229,-29,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Chua\",DATUM[\"Chua\",SPHEROID[\"International "); add_srs_wkt (p, 1, "1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84"); add_srs_wkt (p, 2, "[-134,229,-29,0,0,0,0],AUTHORITY[\"EPSG\",\"6224\"]],PRI"); add_srs_wkt (p, 3, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 4, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 5, "],AUTHORITY[\"EPSG\",\"4224\"]]"); p = add_epsg_def (filter, first, last, 4225, "epsg", 4225, "Corrego Alegre 1970-72"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-206,172,-6,0,0,0,0 +"); add_proj4text (p, 1, "no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Corrego Alegre 1970-72\",DATUM[\"Corrego_Alegre"); add_srs_wkt (p, 1, "_1970_72\",SPHEROID[\"International 1924\",6378388,297,A"); add_srs_wkt (p, 2, "UTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-206,172,-6,0,0,0,0"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6225\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4225\"]]"); p = add_epsg_def (filter, first, last, 4226, "epsg", 4226, "Cote d'Ivoire"); add_proj4text (p, 0, "+proj=longlat +a=6378249.2 +b=6356515 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Cote d'Ivoire\",DATUM[\"Cote_d_Ivoire\",SPHEROI"); add_srs_wkt (p, 1, "D[\"Clarke 1880 (IGN)\",6378249.2,293.4660212936269,AUTH"); add_srs_wkt (p, 2, "ORITY[\"EPSG\",\"7011\"]],AUTHORITY[\"EPSG\",\"6226\"]],"); add_srs_wkt (p, 3, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 4, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"910"); add_srs_wkt (p, 5, "8\"]],AUTHORITY[\"EPSG\",\"4226\"]]"); p = add_epsg_def (filter, first, last, 4227, "epsg", 4227, "Deir ez Zor"); add_proj4text (p, 0, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-190.421,"); add_proj4text (p, 1, "8.532,238.69,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Deir ez Zor\",DATUM[\"Deir_ez_Zor\",SPHEROID[\""); add_srs_wkt (p, 1, "Clarke 1880 (IGN)\",6378249.2,293.4660212936269,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7011\"]],TOWGS84[-190.421,8.532,238.69,0,0,"); add_srs_wkt (p, 3, "0,0],AUTHORITY[\"EPSG\",\"6227\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4227\"]]"); p = add_epsg_def (filter, first, last, 4228, "epsg", 4228, "Douala"); add_proj4text (p, 0, "+proj=longlat +a=6378249.2 +b=6356515 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Douala\",DATUM[\"Douala\",SPHEROID[\"Clarke 188"); add_srs_wkt (p, 1, "0 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 2, ",\"7011\"]],AUTHORITY[\"EPSG\",\"6228\"]],PRIMEM[\"Green"); add_srs_wkt (p, 3, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 4, ".0174532925199433,AUTHORITY[\"EPSG\",\"9108\"]],AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"4228\"]]"); p = add_epsg_def (filter, first, last, 4229, "epsg", 4229, "Egypt 1907"); add_proj4text (p, 0, "+proj=longlat +ellps=helmert +towgs84=-130,110,-13,0,0,0"); add_proj4text (p, 1, ",0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Egypt 1907\",DATUM[\"Egypt_1907\",SPHEROID[\"He"); add_srs_wkt (p, 1, "lmert 1906\",6378200,298.3,AUTHORITY[\"EPSG\",\"7020\"]]"); add_srs_wkt (p, 2, ",TOWGS84[-130,110,-13,0,0,0,0],AUTHORITY[\"EPSG\",\"6229"); add_srs_wkt (p, 3, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 4, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"9122\"]],AUTHORITY[\"EPSG\",\"4229\"]]"); p = add_epsg_def (filter, first, last, 4230, "epsg", 4230, "ED50"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-87,-98,-121,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"ED50\",DATUM[\"European_Datum_1950\",SPHEROID[\""); add_srs_wkt (p, 1, "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 2, "22\"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"6230\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 4, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4230\"]]"); p = add_epsg_def (filter, first, last, 4231, "epsg", 4231, "ED87"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-83.11,-97.38,-117.22"); add_proj4text (p, 1, ",0.00569291,-0.0446976,0.0442851,0.1218 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"ED87\",DATUM[\"European_Datum_1987\",SPHEROID[\""); add_srs_wkt (p, 1, "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 2, "22\"]],TOWGS84[-83.11,-97.38,-117.22,0.00569291,-0.04469"); add_srs_wkt (p, 3, "76,0.0442851,0.1218],AUTHORITY[\"EPSG\",\"6231\"]],PRIME"); add_srs_wkt (p, 4, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"4231\"]]"); p = add_epsg_def (filter, first, last, 4232, "epsg", 4232, "Fahud"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=-346,-1,224,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Fahud\",DATUM[\"Fahud\",SPHEROID[\"Clarke 1880 "); add_srs_wkt (p, 1, "(RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]"); add_srs_wkt (p, 2, "],TOWGS84[-346,-1,224,0,0,0,0],AUTHORITY[\"EPSG\",\"6232"); add_srs_wkt (p, 3, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 4, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"9122\"]],AUTHORITY[\"EPSG\",\"4232\"]]"); p = add_epsg_def (filter, first, last, 4233, "epsg", 4233, "Gandajika 1970"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-133,-321,50,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Gandajika 1970\",DATUM[\"Gandajika_1970\",SPHER"); add_srs_wkt (p, 1, "OID[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 2, ",\"7022\"]],TOWGS84[-133,-321,50,0,0,0,0],AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"6233\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4233\"]]"); p = add_epsg_def (filter, first, last, 4234, "epsg", 4234, "Garoua"); add_proj4text (p, 0, "+proj=longlat +a=6378249.2 +b=6356515 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Garoua\",DATUM[\"Garoua\",SPHEROID[\"Clarke 188"); add_srs_wkt (p, 1, "0 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 2, ",\"7011\"]],AUTHORITY[\"EPSG\",\"6234\"]],PRIMEM[\"Green"); add_srs_wkt (p, 3, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 4, ".0174532925199433,AUTHORITY[\"EPSG\",\"9108\"]],AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"4234\"]]"); p = add_epsg_def (filter, first, last, 4235, "epsg", 4235, "Guyane Francaise"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Guyane Francaise\",DATUM[\"Guyane_Francaise\",S"); add_srs_wkt (p, 1, "PHEROID[\"International 1924\",6378388,297,AUTHORITY[\"E"); add_srs_wkt (p, 2, "PSG\",\"7022\"]],AUTHORITY[\"EPSG\",\"6235\"]],PRIMEM[\""); add_srs_wkt (p, 3, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 4, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9108\"]],AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"4235\"]]"); p = add_epsg_def (filter, first, last, 4236, "epsg", 4236, "Hu Tzu Shan 1950"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-637,-549,-203,0,0,0,"); add_proj4text (p, 1, "0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Hu Tzu Shan 1950\",DATUM[\"Hu_Tzu_Shan_1950\",S"); add_srs_wkt (p, 1, "PHEROID[\"International 1924\",6378388,297,AUTHORITY[\"E"); add_srs_wkt (p, 2, "PSG\",\"7022\"]],TOWGS84[-637,-549,-203,0,0,0,0],AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"6236\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4236\""); add_srs_wkt (p, 6, "]]"); p = add_epsg_def (filter, first, last, 4237, "epsg", 4237, "HD72"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS67 +towgs84=52.17,-71.82,-14.9,0"); add_proj4text (p, 1, ",0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"HD72\",DATUM[\"Hungarian_Datum_1972\",SPHEROID["); add_srs_wkt (p, 1, "\"GRS 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 2, "7036\"]],TOWGS84[52.17,-71.82,-14.9,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6237\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4237\"]]"); p = add_epsg_def (filter, first, last, 4238, "epsg", 4238, "ID74"); add_proj4text (p, 0, "+proj=longlat +a=6378160 +b=6356774.50408554 +towgs84=-2"); add_proj4text (p, 1, "4,-15,5,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"ID74\",DATUM[\"Indonesian_Datum_1974\",SPHEROID"); add_srs_wkt (p, 1, "[\"Indonesian National Spheroid\",6378160,298.247,AUTHOR"); add_srs_wkt (p, 2, "ITY[\"EPSG\",\"7021\"]],TOWGS84[-24,-15,5,0,0,0,0],AUTHO"); add_srs_wkt (p, 3, "RITY[\"EPSG\",\"6238\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 4, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4238"); add_srs_wkt (p, 6, "\"]]"); p = add_epsg_def (filter, first, last, 4239, "epsg", 4239, "Indian 1954"); add_proj4text (p, 0, "+proj=longlat +a=6377276.345 +b=6356075.413140239 +towgs"); add_proj4text (p, 1, "84=217,823,299,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Indian 1954\",DATUM[\"Indian_1954\",SPHEROID[\""); add_srs_wkt (p, 1, "Everest 1830 (1937 Adjustment)\",6377276.345,300.8017,AU"); add_srs_wkt (p, 2, "THORITY[\"EPSG\",\"7015\"]],TOWGS84[217,823,299,0,0,0,0]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6239\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4239\"]]"); p = add_epsg_def (filter, first, last, 4240, "epsg", 4240, "Indian 1975"); add_proj4text (p, 0, "+proj=longlat +a=6377276.345 +b=6356075.413140239 +towgs"); add_proj4text (p, 1, "84=210,814,289,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Indian 1975\",DATUM[\"Indian_1975\",SPHEROID[\""); add_srs_wkt (p, 1, "Everest 1830 (1937 Adjustment)\",6377276.345,300.8017,AU"); add_srs_wkt (p, 2, "THORITY[\"EPSG\",\"7015\"]],TOWGS84[210,814,289,0,0,0,0]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6240\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"4240\"]]"); p = add_epsg_def (filter, first, last, 4241, "epsg", 4241, "Jamaica 1875"); add_proj4text (p, 0, "+proj=longlat +a=6378249.144808011 +b=6356514.966204134 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Jamaica 1875\",DATUM[\"Jamaica_1875\",SPHEROID["); add_srs_wkt (p, 1, "\"Clarke 1880\",6378249.144808011,293.4663076556303,AUTH"); add_srs_wkt (p, 2, "ORITY[\"EPSG\",\"7034\"]],AUTHORITY[\"EPSG\",\"6241\"]],"); add_srs_wkt (p, 3, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 4, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 5, "2\"]],AUTHORITY[\"EPSG\",\"4241\"]]"); p = add_epsg_def (filter, first, last, 4242, "epsg", 4242, "JAD69"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk66 +towgs84=70,207,389.5,0,0,0,"); add_proj4text (p, 1, "0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"JAD69\",DATUM[\"Jamaica_1969\",SPHEROID[\"Clark"); add_srs_wkt (p, 1, "e 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 2, "\"7008\"]],TOWGS84[70,207,389.5,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"6242\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4242\"]]"); p = add_epsg_def (filter, first, last, 4243, "epsg", 4243, "Kalianpur 1880"); add_proj4text (p, 0, "+proj=longlat +a=6377299.36559538 +b=6356098.359005156 +"); add_proj4text (p, 1, "no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Kalianpur 1880\",DATUM[\"Kalianpur_1880\",SPHER"); add_srs_wkt (p, 1, "OID[\"Everest (1830 Definition)\",6377299.36559538,300.8"); add_srs_wkt (p, 2, "017255433612,AUTHORITY[\"EPSG\",\"7042\"]],AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"6243\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4243\"]]"); p = add_epsg_def (filter, first, last, 4244, "epsg", 4244, "Kandawala"); add_proj4text (p, 0, "+proj=longlat +a=6377276.345 +b=6356075.413140239 +towgs"); add_proj4text (p, 1, "84=-97,787,86,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Kandawala\",DATUM[\"Kandawala\",SPHEROID[\"Ever"); add_srs_wkt (p, 1, "est 1830 (1937 Adjustment)\",6377276.345,300.8017,AUTHOR"); add_srs_wkt (p, 2, "ITY[\"EPSG\",\"7015\"]],TOWGS84[-97,787,86,0,0,0,0],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"6244\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"424"); add_srs_wkt (p, 6, "4\"]]"); p = add_epsg_def (filter, first, last, 4245, "epsg", 4245, "Kertau 1968"); add_proj4text (p, 0, "+proj=longlat +a=6377304.063 +b=6356103.038993155 +towgs"); add_proj4text (p, 1, "84=-11,851,5,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Kertau 1968\",DATUM[\"Kertau_1968\",SPHEROID[\""); add_srs_wkt (p, 1, "Everest 1830 Modified\",6377304.063,300.8017,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7018\"]],TOWGS84[-11,851,5,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6245\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4245\"]]"); p = add_epsg_def (filter, first, last, 4246, "epsg", 4246, "KOC"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=-294.7,-200.1,525.5"); add_proj4text (p, 1, ",0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"KOC\",DATUM[\"Kuwait_Oil_Company\",SPHEROID[\"C"); add_srs_wkt (p, 1, "larke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 2, ",\"7012\"]],TOWGS84[-294.7,-200.1,525.5,0,0,0,0],AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"6246\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4246\""); add_srs_wkt (p, 6, "]]"); p = add_epsg_def (filter, first, last, 4247, "epsg", 4247, "La Canoa"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-273.5,110.6,-357.9,0"); add_proj4text (p, 1, ",0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"La Canoa\",DATUM[\"La_Canoa\",SPHEROID[\"Intern"); add_srs_wkt (p, 1, "ational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]]"); add_srs_wkt (p, 2, ",TOWGS84[-273.5,110.6,-357.9,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6247\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4247\"]]"); p = add_epsg_def (filter, first, last, 4248, "epsg", 4248, "PSAD56"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-288,175,-376,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"PSAD56\",DATUM[\"Provisional_South_American_Dat"); add_srs_wkt (p, 1, "um_1956\",SPHEROID[\"International 1924\",6378388,297,AU"); add_srs_wkt (p, 2, "THORITY[\"EPSG\",\"7022\"]],TOWGS84[-288,175,-376,0,0,0,"); add_srs_wkt (p, 3, "0],AUTHORITY[\"EPSG\",\"6248\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4248\"]]"); p = add_epsg_def (filter, first, last, 4249, "epsg", 4249, "Lake"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Lake\",DATUM[\"Lake\",SPHEROID[\"International "); add_srs_wkt (p, 1, "1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"6249\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4249\""); add_srs_wkt (p, 5, "]]"); p = add_epsg_def (filter, first, last, 4250, "epsg", 4250, "Leigon"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=-130,29,364,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Leigon\",DATUM[\"Leigon\",SPHEROID[\"Clarke 188"); add_srs_wkt (p, 1, "0 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\""); add_srs_wkt (p, 2, "]],TOWGS84[-130,29,364,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 3, "0\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 4, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4250\"]]"); p = add_epsg_def (filter, first, last, 4251, "epsg", 4251, "Liberia 1964"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=-90,40,88,0,0,0,0 +"); add_proj4text (p, 1, "no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Liberia 1964\",DATUM[\"Liberia_1964\",SPHEROID["); add_srs_wkt (p, 1, "\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EP"); add_srs_wkt (p, 2, "SG\",\"7012\"]],TOWGS84[-90,40,88,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"6251\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4251\"]]"); p = add_epsg_def (filter, first, last, 4252, "epsg", 4252, "Lome"); add_proj4text (p, 0, "+proj=longlat +a=6378249.2 +b=6356515 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Lome\",DATUM[\"Lome\",SPHEROID[\"Clarke 1880 (I"); add_srs_wkt (p, 1, "GN)\",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 2, "011\"]],AUTHORITY[\"EPSG\",\"6252\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 3, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 4, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"4252\"]]"); p = add_epsg_def (filter, first, last, 4253, "epsg", 4253, "Luzon 1911"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk66 +towgs84=-133,-77,-51,0,0,0,"); add_proj4text (p, 1, "0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Luzon 1911\",DATUM[\"Luzon_1911\",SPHEROID[\"Cl"); add_srs_wkt (p, 1, "arke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG"); add_srs_wkt (p, 2, "\",\"7008\"]],TOWGS84[-133,-77,-51,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6253\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4253\"]]"); p = add_epsg_def (filter, first, last, 4254, "epsg", 4254, "Hito XVIII 1963"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=16,196,93,0,0,0,0 +no"); add_proj4text (p, 1, "_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Hito XVIII 1963\",DATUM[\"Hito_XVIII_1963\",SPH"); add_srs_wkt (p, 1, "EROID[\"International 1924\",6378388,297,AUTHORITY[\"EPS"); add_srs_wkt (p, 2, "G\",\"7022\"]],TOWGS84[16,196,93,0,0,0,0],AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"6254\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4254\"]]"); p = add_epsg_def (filter, first, last, 4255, "epsg", 4255, "Herat North"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-333,-222,114,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Herat North\",DATUM[\"Herat_North\",SPHEROID[\""); add_srs_wkt (p, 1, "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 2, "22\"]],TOWGS84[-333,-222,114,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6255\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4255\"]]"); p = add_epsg_def (filter, first, last, 4256, "epsg", 4256, "Mahe 1971"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=41,-220,-134,0,0,0,"); add_proj4text (p, 1, "0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Mahe 1971\",DATUM[\"Mahe_1971\",SPHEROID[\"Clar"); add_srs_wkt (p, 1, "ke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 2, "7012\"]],TOWGS84[41,-220,-134,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6256\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4256\"]]"); p = add_epsg_def (filter, first, last, 4257, "epsg", 4257, "Makassar"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +towgs84=-587.8,519.75,145.7"); add_proj4text (p, 1, "6,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Makassar\",DATUM[\"Makassar\",SPHEROID[\"Bessel"); add_srs_wkt (p, 1, " 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"700"); add_srs_wkt (p, 2, "4\"]],TOWGS84[-587.8,519.75,145.76,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6257\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4257\"]]"); p = add_epsg_def (filter, first, last, 4258, "epsg", 4258, "ETRS89"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"ETRS89\",DATUM[\"European_Terrestrial_Reference"); add_srs_wkt (p, 1, "_System_1989\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 2, "01,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 5, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4258\"]]"); p = add_epsg_def (filter, first, last, 4259, "epsg", 4259, "Malongo 1987"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-254.1,-5.36,-100.29,"); add_proj4text (p, 1, "0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Malongo 1987\",DATUM[\"Malongo_1987\",SPHEROID["); add_srs_wkt (p, 1, "\"International 1924\",6378388,297,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 2, "7022\"]],TOWGS84[-254.1,-5.36,-100.29,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"6259\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4259\"]]"); p = add_epsg_def (filter, first, last, 4260, "epsg", 4260, "Manoca"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=-70.9,-151.8,-41.4,"); add_proj4text (p, 1, "0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Manoca\",DATUM[\"Manoca\",SPHEROID[\"Clarke 188"); add_srs_wkt (p, 1, "0 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\""); add_srs_wkt (p, 2, "]],TOWGS84[-70.9,-151.8,-41.4,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6260\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9108\"]],AUTHORITY[\"EPSG\",\"4260\"]]"); p = add_epsg_def (filter, first, last, 4261, "epsg", 4261, "Merchich"); add_proj4text (p, 0, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=31,146,47"); add_proj4text (p, 1, ",0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Merchich\",DATUM[\"Merchich\",SPHEROID[\"Clarke"); add_srs_wkt (p, 1, " 1880 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[\"EP"); add_srs_wkt (p, 2, "SG\",\"7011\"]],TOWGS84[31,146,47,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"6261\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4261\"]]"); p = add_epsg_def (filter, first, last, 4262, "epsg", 4262, "Massawa"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +towgs84=639,405,60,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Massawa\",DATUM[\"Massawa\",SPHEROID[\"Bessel 1"); add_srs_wkt (p, 1, "841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\""); add_srs_wkt (p, 2, "]],TOWGS84[639,405,60,0,0,0,0],AUTHORITY[\"EPSG\",\"6262"); add_srs_wkt (p, 3, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 4, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"9122\"]],AUTHORITY[\"EPSG\",\"4262\"]]"); p = add_epsg_def (filter, first, last, 4263, "epsg", 4263, "Minna"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=-92,-93,122,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Minna\",DATUM[\"Minna\",SPHEROID[\"Clarke 1880 "); add_srs_wkt (p, 1, "(RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]"); add_srs_wkt (p, 2, "],TOWGS84[-92,-93,122,0,0,0,0],AUTHORITY[\"EPSG\",\"6263"); add_srs_wkt (p, 3, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 4, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"9122\"]],AUTHORITY[\"EPSG\",\"4263\"]]"); p = add_epsg_def (filter, first, last, 4264, "epsg", 4264, "Mhast"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-252.95,-4.11,-96.38,"); add_proj4text (p, 1, "0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Mhast\",DATUM[\"Mhast\",SPHEROID[\"Internationa"); add_srs_wkt (p, 1, "l 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS"); add_srs_wkt (p, 2, "84[-252.95,-4.11,-96.38,0,0,0,0],AUTHORITY[\"EPSG\",\"62"); add_srs_wkt (p, 3, "64\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 4, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4264\"]]"); p = add_epsg_def (filter, first, last, 4265, "epsg", 4265, "Monte Mario"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-104.1,-49.1,-9.9,0.9"); add_proj4text (p, 1, "71,-2.917,0.714,-11.68 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Monte Mario\",DATUM[\"Monte_Mario\",SPHEROID[\""); add_srs_wkt (p, 1, "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 2, "22\"]],TOWGS84[-104.1,-49.1,-9.9,0.971,-2.917,0.714,-11."); add_srs_wkt (p, 3, "68],AUTHORITY[\"EPSG\",\"6265\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 5, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"4265\"]]"); p = add_epsg_def (filter, first, last, 4266, "epsg", 4266, "M'poraloko"); add_proj4text (p, 0, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-74,-130,"); add_proj4text (p, 1, "42,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"M'poraloko\",DATUM[\"M_poraloko\",SPHEROID[\"Cl"); add_srs_wkt (p, 1, "arke 1880 (IGN)\",6378249.2,293.4660212936269,AUTHORITY["); add_srs_wkt (p, 2, "\"EPSG\",\"7011\"]],TOWGS84[-74,-130,42,0,0,0,0],AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"6266\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4266\""); add_srs_wkt (p, 6, "]]"); p = add_epsg_def (filter, first, last, 4267, "epsg", 4267, "NAD27"); add_proj4text (p, 0, "+proj=longlat +datum=NAD27 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"NAD27\",DATUM[\"North_American_Datum_1927\",SPH"); add_srs_wkt (p, 1, "EROID[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHOR"); add_srs_wkt (p, 2, "ITY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PR"); add_srs_wkt (p, 3, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 4, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 5, "]],AUTHORITY[\"EPSG\",\"4267\"]]"); p = add_epsg_def (filter, first, last, 4268, "epsg", 4268, "NAD27 Michigan"); add_proj4text (p, 0, "+proj=longlat +a=6378450.047548896 +b=6356826.621488444 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"NAD27 Michigan\",DATUM[\"NAD27_Michigan\",SPHER"); add_srs_wkt (p, 1, "OID[\"Clarke 1866 Michigan\",6378450.047548896,294.97869"); add_srs_wkt (p, 2, "71646747,AUTHORITY[\"EPSG\",\"7009\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6268\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4268\"]]"); p = add_epsg_def (filter, first, last, 4269, "epsg", 4269, "NAD83"); add_proj4text (p, 0, "+proj=longlat +datum=NAD83 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"NAD83\",DATUM[\"North_American_Datum_1983\",SPH"); add_srs_wkt (p, 1, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 2, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6269\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4269\"]]"); p = add_epsg_def (filter, first, last, 4270, "epsg", 4270, "Nahrwan 1967"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=-243,-192,477,0,0,0"); add_proj4text (p, 1, ",0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Nahrwan 1967\",DATUM[\"Nahrwan_1967\",SPHEROID["); add_srs_wkt (p, 1, "\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EP"); add_srs_wkt (p, 2, "SG\",\"7012\"]],TOWGS84[-243,-192,477,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"6270\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4270\"]]"); p = add_epsg_def (filter, first, last, 4271, "epsg", 4271, "Naparima 1972"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-10,375,165,0,0,0,0 +"); add_proj4text (p, 1, "no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Naparima 1972\",DATUM[\"Naparima_1972\",SPHEROI"); add_srs_wkt (p, 1, "D[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 2, "\"7022\"]],TOWGS84[-10,375,165,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"6271\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4271\"]]"); p = add_epsg_def (filter, first, last, 4272, "epsg", 4272, "NZGD49"); add_proj4text (p, 0, "+proj=longlat +datum=nzgd49 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"NZGD49\",DATUM[\"New_Zealand_Geodetic_Datum_194"); add_srs_wkt (p, 1, "9\",SPHEROID[\"International 1924\",6378388,297,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7022\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0"); add_srs_wkt (p, 3, ".1,1.024,-4.5993],AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4272\"]]"); p = add_epsg_def (filter, first, last, 4273, "epsg", 4273, "NGO 1948"); add_proj4text (p, 0, "+proj=longlat +a=6377492.018 +b=6356173.508712696 +towgs"); add_proj4text (p, 1, "84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"NGO 1948\",DATUM[\"NGO_1948\",SPHEROID[\"Bessel"); add_srs_wkt (p, 1, " Modified\",6377492.018,299.1528128,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 2, "7005\"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6273\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4273\"]]"); p = add_epsg_def (filter, first, last, 4274, "epsg", 4274, "Datum 73"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-223.237,110.193,36.6"); add_proj4text (p, 1, "49,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Datum 73\",DATUM[\"Datum_73\",SPHEROID[\"Intern"); add_srs_wkt (p, 1, "ational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]]"); add_srs_wkt (p, 2, ",TOWGS84[-223.237,110.193,36.649,0,0,0,0],AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"6274\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4274\"]]"); p = add_epsg_def (filter, first, last, 4275, "epsg", 4275, "NTF"); add_proj4text (p, 0, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-168,-60,"); add_proj4text (p, 1, "320,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"NTF\",DATUM[\"Nouvelle_Triangulation_Francaise\""); add_srs_wkt (p, 1, ",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660212936"); add_srs_wkt (p, 2, "269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,320,0"); add_srs_wkt (p, 3, ",0,0,0],AUTHORITY[\"EPSG\",\"6275\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 4, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 5, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"4275\"]]"); p = add_epsg_def (filter, first, last, 4276, "epsg", 4276, "NSWC 9Z-2"); add_proj4text (p, 0, "+proj=longlat +ellps=WGS66 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"NSWC 9Z-2\",DATUM[\"NSWC_9Z_2\",SPHEROID[\"NWL "); add_srs_wkt (p, 1, "9D\",6378145,298.25,AUTHORITY[\"EPSG\",\"7025\"]],AUTHOR"); add_srs_wkt (p, 2, "ITY[\"EPSG\",\"6276\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4276\""); add_srs_wkt (p, 5, "]]"); p = add_epsg_def (filter, first, last, 4277, "epsg", 4277, "OSGB 1936"); add_proj4text (p, 0, "+proj=longlat +datum=OSGB36 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"OSGB 1936\",DATUM[\"OSGB_1936\",SPHEROID[\"Airy"); add_srs_wkt (p, 1, " 1830\",6377563.396,299.3249646,AUTHORITY[\"EPSG\",\"700"); add_srs_wkt (p, 2, "1\"]],TOWGS84[375,-111,431,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "6277\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 4, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4277\"]]"); p = add_epsg_def (filter, first, last, 4278, "epsg", 4278, "OSGB70"); add_proj4text (p, 0, "+proj=longlat +ellps=airy +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"OSGB70\",DATUM[\"OSGB_1970_SN\",SPHEROID[\"Airy"); add_srs_wkt (p, 1, " 1830\",6377563.396,299.3249646,AUTHORITY[\"EPSG\",\"700"); add_srs_wkt (p, 2, "1\"]],AUTHORITY[\"EPSG\",\"6278\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 3, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 4, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 5, "SG\",\"4278\"]]"); p = add_epsg_def (filter, first, last, 4279, "epsg", 4279, "OS(SN)80"); add_proj4text (p, 0, "+proj=longlat +ellps=airy +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"OS(SN)80\",DATUM[\"OS_SN_1980\",SPHEROID[\"Airy"); add_srs_wkt (p, 1, " 1830\",6377563.396,299.3249646,AUTHORITY[\"EPSG\",\"700"); add_srs_wkt (p, 2, "1\"]],AUTHORITY[\"EPSG\",\"6279\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 3, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 4, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 5, "SG\",\"4279\"]]"); p = add_epsg_def (filter, first, last, 4280, "epsg", 4280, "Padang"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Padang\",DATUM[\"Padang_1884\",SPHEROID[\"Besse"); add_srs_wkt (p, 1, "l 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 2, "04\"]],AUTHORITY[\"EPSG\",\"6280\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 3, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 4, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 5, "SG\",\"4280\"]]"); p = add_epsg_def (filter, first, last, 4281, "epsg", 4281, "Palestine 1923"); add_proj4text (p, 0, "+proj=longlat +a=6378300.789 +b=6356566.435 +towgs84=-27"); add_proj4text (p, 1, "5.722,94.7824,340.894,-8.001,-4.42,-11.821,1 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Palestine 1923\",DATUM[\"Palestine_1923\",SPHER"); add_srs_wkt (p, 1, "OID[\"Clarke 1880 (Benoit)\",6378300.789,293.46631553898"); add_srs_wkt (p, 2, "11,AUTHORITY[\"EPSG\",\"7010\"]],TOWGS84[-275.722,94.782"); add_srs_wkt (p, 3, "4,340.894,-8.001,-4.42,-11.821,1],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "281\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4281\"]]"); p = add_epsg_def (filter, first, last, 4282, "epsg", 4282, "Pointe Noire"); add_proj4text (p, 0, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-148,51,-"); add_proj4text (p, 1, "291,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Pointe Noire\",DATUM[\"Congo_1960_Pointe_Noire\""); add_srs_wkt (p, 1, ",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660212936"); add_srs_wkt (p, 2, "269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-148,51,-291,0"); add_srs_wkt (p, 3, ",0,0,0],AUTHORITY[\"EPSG\",\"6282\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 4, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 5, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"4282\"]]"); p = add_epsg_def (filter, first, last, 4283, "epsg", 4283, "GDA94"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"GDA94\",DATUM[\"Geocentric_Datum_of_Australia_1"); add_srs_wkt (p, 1, "994\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 2, "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"6283\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4283\"]]"); p = add_epsg_def (filter, first, last, 4284, "epsg", 4284, "Pulkovo 1942"); add_proj4text (p, 0, "+proj=longlat +ellps=krass +towgs84=23.92,-141.27,-80.9,"); add_proj4text (p, 1, "-0,0.35,0.82,-0.12 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 1, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 2, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 5, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4284\"]]"); p = add_epsg_def (filter, first, last, 4285, "epsg", 4285, "Qatar 1974"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-128.16,-282.42,21.93"); add_proj4text (p, 1, ",0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Qatar 1974\",DATUM[\"Qatar_1974\",SPHEROID[\"In"); add_srs_wkt (p, 1, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 2, "\"]],TOWGS84[-128.16,-282.42,21.93,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6285\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4285\"]]"); p = add_epsg_def (filter, first, last, 4286, "epsg", 4286, "Qatar 1948"); add_proj4text (p, 0, "+proj=longlat +ellps=helmert +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Qatar 1948\",DATUM[\"Qatar_1948\",SPHEROID[\"He"); add_srs_wkt (p, 1, "lmert 1906\",6378200,298.3,AUTHORITY[\"EPSG\",\"7020\"]]"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"6286\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 4, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"4286\"]]"); p = add_epsg_def (filter, first, last, 4287, "epsg", 4287, "Qornoq"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=164,138,-189,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Qornoq\",DATUM[\"Qornoq\",SPHEROID[\"Internatio"); add_srs_wkt (p, 1, "nal 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOW"); add_srs_wkt (p, 2, "GS84[164,138,-189,0,0,0,0],AUTHORITY[\"EPSG\",\"6287\"]]"); add_srs_wkt (p, 3, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 4, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 5, "08\"]],AUTHORITY[\"EPSG\",\"4287\"]]"); p = add_epsg_def (filter, first, last, 4288, "epsg", 4288, "Loma Quintana"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Loma Quintana\",DATUM[\"Loma_Quintana\",SPHEROI"); add_srs_wkt (p, 1, "D[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 2, "\"7022\"]],AUTHORITY[\"EPSG\",\"6288\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 3, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 4, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"4288\"]]"); p = add_epsg_def (filter, first, last, 4289, "epsg", 4289, "Amersfoort"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +towgs84=565.417,50.3319,465"); add_proj4text (p, 1, ".552,-0.398957,0.343988,-1.8774,4.0725 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Amersfoort\",DATUM[\"Amersfoort\",SPHEROID[\"Be"); add_srs_wkt (p, 1, "ssel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 2, "7004\"]],TOWGS84[565.417,50.3319,465.552,-0.398957,0.343"); add_srs_wkt (p, 3, "988,-1.8774,4.0725],AUTHORITY[\"EPSG\",\"6289\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4289\"]]"); p = add_epsg_def (filter, first, last, 4291, "epsg", 4291, "SAD69"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS67 +towgs84=-57,1,-41,0,0,0,0 +n"); add_proj4text (p, 1, "o_defs"); add_srs_wkt (p, 0, "GEOGCS[\"SAD69\",DATUM[\"South_American_Datum_1969\",SPH"); add_srs_wkt (p, 1, "EROID[\"GRS 1967\",6378160,298.247167427,AUTHORITY[\"EPS"); add_srs_wkt (p, 2, "G\",\"7036\"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"6291\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9108\"]],AUTHORITY[\"EPSG\",\"4291\"]]"); p = add_epsg_def (filter, first, last, 4292, "epsg", 4292, "Sapper Hill 1943"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-355,21,72,0,0,0,0 +n"); add_proj4text (p, 1, "o_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Sapper Hill 1943\",DATUM[\"Sapper_Hill_1943\",S"); add_srs_wkt (p, 1, "PHEROID[\"International 1924\",6378388,297,AUTHORITY[\"E"); add_srs_wkt (p, 2, "PSG\",\"7022\"]],TOWGS84[-355,21,72,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6292\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4292\"]]"); p = add_epsg_def (filter, first, last, 4293, "epsg", 4293, "Schwarzeck"); add_proj4text (p, 0, "+proj=longlat +ellps=bess_nam +towgs84=616,97,-251,0,0,0"); add_proj4text (p, 1, ",0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Schwarzeck\",DATUM[\"Schwarzeck\",SPHEROID[\"Be"); add_srs_wkt (p, 1, "ssel Namibia (GLM)\",6377483.865280419,299.1528128,AUTHO"); add_srs_wkt (p, 2, "RITY[\"EPSG\",\"7046\"]],TOWGS84[616,97,-251,0,0,0,0],AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"6293\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 6, "293\"]]"); p = add_epsg_def (filter, first, last, 4294, "epsg", 4294, "Segora"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +towgs84=-403,684,41,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Segora\",DATUM[\"Segora\",SPHEROID[\"Bessel 184"); add_srs_wkt (p, 1, "1\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]"); add_srs_wkt (p, 2, "],TOWGS84[-403,684,41,0,0,0,0],AUTHORITY[\"EPSG\",\"6294"); add_srs_wkt (p, 3, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 4, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"9108\"]],AUTHORITY[\"EPSG\",\"4294\"]]"); p = add_epsg_def (filter, first, last, 4295, "epsg", 4295, "Serindung"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Serindung\",DATUM[\"Serindung\",SPHEROID[\"Bess"); add_srs_wkt (p, 1, "el 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 2, "004\"]],AUTHORITY[\"EPSG\",\"6295\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 3, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 4, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"4295\"]]"); p = add_epsg_def (filter, first, last, 4296, "epsg", 4296, "Sudan"); add_proj4text (p, 0, "+proj=longlat +a=6378249.2 +b=6356515 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Sudan\",DATUM[\"Sudan\",SPHEROID[\"Clarke 1880 "); add_srs_wkt (p, 1, "(IGN)\",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 2, "7011\"]],AUTHORITY[\"EPSG\",\"6296\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 3, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 4, "74532925199433,AUTHORITY[\"EPSG\",\"9108\"]],AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"4296\"]]"); p = add_epsg_def (filter, first, last, 4297, "epsg", 4297, "Tananarive"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-189,-242,-91,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Tananarive\",DATUM[\"Tananarive_1925\",SPHEROID"); add_srs_wkt (p, 1, "[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 2, "7022\"]],TOWGS84[-189,-242,-91,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"6297\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4297\"]]"); p = add_epsg_def (filter, first, last, 4298, "epsg", 4298, "Timbalai 1948"); add_proj4text (p, 0, "+proj=longlat +ellps=evrstSS +towgs84=-533.4,669.2,-52.5"); add_proj4text (p, 1, ",0,0,4.28,9.4 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Timbalai 1948\",DATUM[\"Timbalai_1948\",SPHEROI"); add_srs_wkt (p, 1, "D[\"Everest 1830 (1967 Definition)\",6377298.556,300.801"); add_srs_wkt (p, 2, "7,AUTHORITY[\"EPSG\",\"7016\"]],TOWGS84[-533.4,669.2,-52"); add_srs_wkt (p, 3, ".5,0,0,4.28,9.4],AUTHORITY[\"EPSG\",\"6298\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4298\"]]"); p = add_epsg_def (filter, first, last, 4299, "epsg", 4299, "TM65"); add_proj4text (p, 0, "+proj=longlat +datum=ire65 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"TM65\",DATUM[\"TM65\",SPHEROID[\"Airy Modified "); add_srs_wkt (p, 1, "1849\",6377340.189,299.3249646,AUTHORITY[\"EPSG\",\"7002"); add_srs_wkt (p, 2, "\"]],TOWGS84[482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.1"); add_srs_wkt (p, 3, "5],AUTHORITY[\"EPSG\",\"6299\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4299\"]]"); p = add_epsg_def (filter, first, last, 4300, "epsg", 4300, "TM75"); add_proj4text (p, 0, "+proj=longlat +ellps=mod_airy +towgs84=482.5,-130.6,564."); add_proj4text (p, 1, "6,-1.042,-0.214,-0.631,8.15 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"TM75\",DATUM[\"Geodetic_Datum_of_1965\",SPHEROI"); add_srs_wkt (p, 1, "D[\"Airy Modified 1849\",6377340.189,299.3249646,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7002\"]],TOWGS84[482.5,-130.6,564.6,-1.042"); add_srs_wkt (p, 3, ",-0.214,-0.631,8.15],AUTHORITY[\"EPSG\",\"6300\"]],PRIME"); add_srs_wkt (p, 4, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"4300\"]]"); p = add_epsg_def (filter, first, last, 4301, "epsg", 4301, "Tokyo"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +towgs84=-146.414,507.337,68"); add_proj4text (p, 1, "0.507,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\""); add_srs_wkt (p, 1, ",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],T"); add_srs_wkt (p, 2, "OWGS84[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]]"); p = add_epsg_def (filter, first, last, 4302, "epsg", 4302, "Trinidad 1903"); add_proj4text (p, 0, "+proj=longlat +a=6378293.645208759 +b=6356617.987679838 "); add_proj4text (p, 1, "+towgs84=-61.702,284.488,472.052,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Trinidad 1903\",DATUM[\"Trinidad_1903\",SPHEROI"); add_srs_wkt (p, 1, "D[\"Clarke 1858\",6378293.645208759,294.2606763692654,AU"); add_srs_wkt (p, 2, "THORITY[\"EPSG\",\"7007\"]],TOWGS84[-61.702,284.488,472."); add_srs_wkt (p, 3, "052,0,0,0,0],AUTHORITY[\"EPSG\",\"6302\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4302\"]]"); p = add_epsg_def (filter, first, last, 4303, "epsg", 4303, "TC(1948)"); add_proj4text (p, 0, "+proj=longlat +ellps=helmert +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"TC(1948)\",DATUM[\"Trucial_Coast_1948\",SPHEROI"); add_srs_wkt (p, 1, "D[\"Helmert 1906\",6378200,298.3,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 2, "20\"]],AUTHORITY[\"EPSG\",\"6303\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 3, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 4, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 5, "SG\",\"4303\"]]"); p = add_epsg_def (filter, first, last, 4304, "epsg", 4304, "Voirol 1875"); add_proj4text (p, 0, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-73,-247,"); add_proj4text (p, 1, "227,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Voirol 1875\",DATUM[\"Voirol_1875\",SPHEROID[\""); add_srs_wkt (p, 1, "Clarke 1880 (IGN)\",6378249.2,293.4660212936269,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7011\"]],TOWGS84[-73,-247,227,0,0,0,0],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"6304\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"430"); add_srs_wkt (p, 6, "4\"]]"); p = add_epsg_def (filter, first, last, 4306, "epsg", 4306, "Bern 1938"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Bern 1938\",DATUM[\"Bern_1938\",SPHEROID[\"Bess"); add_srs_wkt (p, 1, "el 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 2, "004\"]],AUTHORITY[\"EPSG\",\"6306\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 3, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 4, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"4306\"]]"); p = add_epsg_def (filter, first, last, 4307, "epsg", 4307, "Nord Sahara 1959"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=-186,-93,310,0,0,0,"); add_proj4text (p, 1, "0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Nord Sahara 1959\",DATUM[\"Nord_Sahara_1959\",S"); add_srs_wkt (p, 1, "PHEROID[\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHOR"); add_srs_wkt (p, 2, "ITY[\"EPSG\",\"7012\"]],TOWGS84[-186,-93,310,0,0,0,0],AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"6307\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 6, "307\"]]"); p = add_epsg_def (filter, first, last, 4308, "epsg", 4308, "RT38"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"RT38\",DATUM[\"Stockholm_1938\",SPHEROID[\"Bess"); add_srs_wkt (p, 1, "el 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 2, "004\"]],AUTHORITY[\"EPSG\",\"6308\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 3, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 4, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"4308\"]]"); p = add_epsg_def (filter, first, last, 4309, "epsg", 4309, "Yacare"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-155,171,37,0,0,0,0 +"); add_proj4text (p, 1, "no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Yacare\",DATUM[\"Yacare\",SPHEROID[\"Internatio"); add_srs_wkt (p, 1, "nal 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOW"); add_srs_wkt (p, 2, "GS84[-155,171,37,0,0,0,0],AUTHORITY[\"EPSG\",\"6309\"]],"); add_srs_wkt (p, 3, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 4, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 5, "2\"]],AUTHORITY[\"EPSG\",\"4309\"]]"); p = add_epsg_def (filter, first, last, 4310, "epsg", 4310, "Yoff"); add_proj4text (p, 0, "+proj=longlat +a=6378249.2 +b=6356515 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Yoff\",DATUM[\"Yoff\",SPHEROID[\"Clarke 1880 (I"); add_srs_wkt (p, 1, "GN)\",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 2, "011\"]],AUTHORITY[\"EPSG\",\"6310\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 3, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 4, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"4310\"]]"); p = add_epsg_def (filter, first, last, 4311, "epsg", 4311, "Zanderij"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-265,120,-358,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Zanderij\",DATUM[\"Zanderij\",SPHEROID[\"Intern"); add_srs_wkt (p, 1, "ational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]]"); add_srs_wkt (p, 2, ",TOWGS84[-265,120,-358,0,0,0,0],AUTHORITY[\"EPSG\",\"631"); add_srs_wkt (p, 3, "1\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 4, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4311\"]]"); p = add_epsg_def (filter, first, last, 4312, "epsg", 4312, "MGI"); add_proj4text (p, 0, "+proj=longlat +datum=hermannskogel +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"MGI\",DATUM[\"Militar_Geographische_Institute\""); add_srs_wkt (p, 1, ",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHOR"); add_srs_wkt (p, 2, "ITY[\"EPSG\",\"7004\"]],TOWGS84[577.326,90.129,463.919,5"); add_srs_wkt (p, 3, ".137,1.474,5.297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AUTHORITY[\"EPSG\",\"4312\"]]"); p = add_epsg_def (filter, first, last, 4313, "epsg", 4313, "Belge 1972"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-106.869,52.2978,-103"); add_proj4text (p, 1, ".724,0.3366,-0.457,1.8422,-1.2747 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Belge 1972\",DATUM[\"Reseau_National_Belge_1972"); add_srs_wkt (p, 1, "\",SPHEROID[\"International 1924\",6378388,297,AUTHORITY"); add_srs_wkt (p, 2, "[\"EPSG\",\"7022\"]],TOWGS84[-106.869,52.2978,-103.724,0"); add_srs_wkt (p, 3, ".3366,-0.457,1.8422,-1.2747],AUTHORITY[\"EPSG\",\"6313\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4313\"]]"); p = add_epsg_def (filter, first, last, 4314, "epsg", 4314, "DHDN"); add_proj4text (p, 0, "+proj=longlat +datum=potsdam +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SP"); add_srs_wkt (p, 1, "HEROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY"); add_srs_wkt (p, 2, "[\"EPSG\",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.04"); add_srs_wkt (p, 3, "5,-2.455,6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Gre"); add_srs_wkt (p, 4, "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4314\"]]"); p = add_epsg_def (filter, first, last, 4315, "epsg", 4315, "Conakry 1905"); add_proj4text (p, 0, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-23,259,-"); add_proj4text (p, 1, "9,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Conakry 1905\",DATUM[\"Conakry_1905\",SPHEROID["); add_srs_wkt (p, 1, "\"Clarke 1880 (IGN)\",6378249.2,293.4660212936269,AUTHOR"); add_srs_wkt (p, 2, "ITY[\"EPSG\",\"7011\"]],TOWGS84[-23,259,-9,0,0,0,0],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"6315\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"431"); add_srs_wkt (p, 6, "5\"]]"); } #endif /* full EPSG initialization enabled/disabled */ libspatialite-4.1.1/src/srsinit/epsg_inlined_00.c0000664000175000017500000044754112163502133016666 00000000000000/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def (filter, first, last, 2000, "epsg", 2000, "Anguilla 1957 / British West Indies Grid"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x"); add_proj4text (p, 1, "_0=400000 +y_0=0 +ellps=clrk80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Anguilla 1957 / British West Indies Grid\",GEOG"); add_srs_wkt (p, 1, "CS[\"Anguilla 1957\",DATUM[\"Anguilla_1957\",SPHEROID[\""); add_srs_wkt (p, 2, "Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7012\"]],AUTHORITY[\"EPSG\",\"6600\"]],PRIMEM[\"Gre"); add_srs_wkt (p, 4, "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4600\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 8, "ral_meridian\",-62],PARAMETER[\"scale_factor\",0.9995],P"); add_srs_wkt (p, 9, "ARAMETER[\"false_easting\",400000],PARAMETER[\"false_nor"); add_srs_wkt (p, 10, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 11, "],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"2000\"]]"); p = add_epsg_def (filter, first, last, 2001, "epsg", 2001, "Antigua 1943 / British West Indies Grid"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x"); add_proj4text (p, 1, "_0=400000 +y_0=0 +ellps=clrk80 +towgs84=-255,-15,71,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Antigua 1943 / British West Indies Grid\",GEOGC"); add_srs_wkt (p, 1, "S[\"Antigua 1943\",DATUM[\"Antigua_1943\",SPHEROID[\"Cla"); add_srs_wkt (p, 2, "rke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7012\"]],TOWGS84[-255,-15,71,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6601\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4601\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 8, "igin\",0],PARAMETER[\"central_meridian\",-62],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",0.9995],PARAMETER[\"false_easting\",400"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS["); add_srs_wkt (p, 12, "\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2001\"]]"); p = add_epsg_def (filter, first, last, 2002, "epsg", 2002, "Dominica 1945 / British West Indies Grid"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x"); add_proj4text (p, 1, "_0=400000 +y_0=0 +ellps=clrk80 +towgs84=725,685,536,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Dominica 1945 / British West Indies Grid\",GEOG"); add_srs_wkt (p, 1, "CS[\"Dominica 1945\",DATUM[\"Dominica_1945\",SPHEROID[\""); add_srs_wkt (p, 2, "Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7012\"]],TOWGS84[725,685,536,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6602\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4602\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",-62],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",0.9995],PARAMETER[\"false_easting\","); add_srs_wkt (p, 10, "400000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AX"); add_srs_wkt (p, 12, "IS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2002\"]]"); p = add_epsg_def (filter, first, last, 2003, "epsg", 2003, "Grenada 1953 / British West Indies Grid"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x"); add_proj4text (p, 1, "_0=400000 +y_0=0 +ellps=clrk80 +towgs84=72,213.7,93,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Grenada 1953 / British West Indies Grid\",GEOGC"); add_srs_wkt (p, 1, "S[\"Grenada 1953\",DATUM[\"Grenada_1953\",SPHEROID[\"Cla"); add_srs_wkt (p, 2, "rke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7012\"]],TOWGS84[72,213.7,93,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6603\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4603\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 8, "igin\",0],PARAMETER[\"central_meridian\",-62],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",0.9995],PARAMETER[\"false_easting\",400"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS["); add_srs_wkt (p, 12, "\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2003\"]]"); p = add_epsg_def (filter, first, last, 2004, "epsg", 2004, "Montserrat 1958 / British West Indies Grid"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x"); add_proj4text (p, 1, "_0=400000 +y_0=0 +ellps=clrk80 +towgs84=174,359,365,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Montserrat 1958 / British West Indies Grid\",GE"); add_srs_wkt (p, 1, "OGCS[\"Montserrat 1958\",DATUM[\"Montserrat_1958\",SPHER"); add_srs_wkt (p, 2, "OID[\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7012\"]],TOWGS84[174,359,365,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"6604\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4604\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-62],P"); add_srs_wkt (p, 9, "ARAMETER[\"scale_factor\",0.9995],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",400000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 12, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2004\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def (filter, first, last, 2005, "epsg", 2005, "St. Kitts 1955 / British West Indies Grid"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x"); add_proj4text (p, 1, "_0=400000 +y_0=0 +ellps=clrk80 +towgs84=9,183,236,0,0,0,"); add_proj4text (p, 2, "0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"St. Kitts 1955 / British West Indies Grid\",GEO"); add_srs_wkt (p, 1, "GCS[\"St. Kitts 1955\",DATUM[\"St_Kitts_1955\",SPHEROID["); add_srs_wkt (p, 2, "\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7012\"]],TOWGS84[9,183,236,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6605\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4605\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",-62],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",0.9995],PARAMETER[\"false_easting\","); add_srs_wkt (p, 10, "400000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AX"); add_srs_wkt (p, 12, "IS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2005\"]]"); p = add_epsg_def (filter, first, last, 2006, "epsg", 2006, "St. Lucia 1955 / British West Indies Grid"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x"); add_proj4text (p, 1, "_0=400000 +y_0=0 +ellps=clrk80 +towgs84=-149,128,296,0,0"); add_proj4text (p, 2, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"St. Lucia 1955 / British West Indies Grid\",GEO"); add_srs_wkt (p, 1, "GCS[\"St. Lucia 1955\",DATUM[\"St_Lucia_1955\",SPHEROID["); add_srs_wkt (p, 2, "\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7012\"]],TOWGS84[-149,128,296,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6606\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4606\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",-62],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",0.9995],PARAMETER[\"false_easting"); add_srs_wkt (p, 10, "\",400000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 12, "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2006\"]]"); p = add_epsg_def (filter, first, last, 2007, "epsg", 2007, "St. Vincent 45 / British West Indies Grid"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x"); add_proj4text (p, 1, "_0=400000 +y_0=0 +ellps=clrk80 +towgs84=195.671,332.517,"); add_proj4text (p, 2, "274.607,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"St. Vincent 45 / British West Indies Grid\",GEO"); add_srs_wkt (p, 1, "GCS[\"St. Vincent 1945\",DATUM[\"St_Vincent_1945\",SPHER"); add_srs_wkt (p, 2, "OID[\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7012\"]],TOWGS84[195.671,332.517,274.607,0,0,"); add_srs_wkt (p, 4, "0,0],AUTHORITY[\"EPSG\",\"6607\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, "G\",\"4607\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 9, "ian\",-62],PARAMETER[\"scale_factor\",0.9995],PARAMETER["); add_srs_wkt (p, 10, "\"false_easting\",400000],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 11, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"2007\"]]"); p = add_epsg_def (filter, first, last, 2008, "epsg", 2008, "NAD27(CGQ77) / SCoPQ zone 2 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-55.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(CGQ77) / SCoPQ zone 2 (deprecated)\",GEOG"); add_srs_wkt (p, 1, "CS[\"NAD27(CGQ77)\",DATUM[\"North_American_Datum_1927_CG"); add_srs_wkt (p, 2, "Q77\",SPHEROID[\"Clarke 1866\",6378206.4,294.97869821389"); add_srs_wkt (p, 3, "82,AUTHORITY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"66"); add_srs_wkt (p, 4, "09\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4609\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, "],PARAMETER[\"central_meridian\",-55.5],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",0.9999],PARAMETER[\"false_easting\",304800],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"2008\"]]"); p = add_epsg_def (filter, first, last, 2009, "epsg", 2009, "NAD27(CGQ77) / SCoPQ zone 3"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-58.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(CGQ77) / SCoPQ zone 3\",GEOGCS[\"NAD27(CG"); add_srs_wkt (p, 1, "Q77)\",DATUM[\"North_American_Datum_1927_CGQ77\",SPHEROI"); add_srs_wkt (p, 2, "D[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6609\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4609\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 8, "\"central_meridian\",-58.5],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9999],PARAMETER[\"false_easting\",304800],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"2009\"]]"); p = add_epsg_def (filter, first, last, 2010, "epsg", 2010, "NAD27(CGQ77) / SCoPQ zone 4"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-61.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(CGQ77) / SCoPQ zone 4\",GEOGCS[\"NAD27(CG"); add_srs_wkt (p, 1, "Q77)\",DATUM[\"North_American_Datum_1927_CGQ77\",SPHEROI"); add_srs_wkt (p, 2, "D[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6609\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4609\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 8, "\"central_meridian\",-61.5],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9999],PARAMETER[\"false_easting\",304800],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"2010\"]]"); p = add_epsg_def (filter, first, last, 2011, "epsg", 2011, "NAD27(CGQ77) / SCoPQ zone 5"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-64.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(CGQ77) / SCoPQ zone 5\",GEOGCS[\"NAD27(CG"); add_srs_wkt (p, 1, "Q77)\",DATUM[\"North_American_Datum_1927_CGQ77\",SPHEROI"); add_srs_wkt (p, 2, "D[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6609\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4609\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 8, "\"central_meridian\",-64.5],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9999],PARAMETER[\"false_easting\",304800],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"2011\"]]"); p = add_epsg_def (filter, first, last, 2012, "epsg", 2012, "NAD27(CGQ77) / SCoPQ zone 6"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-67.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(CGQ77) / SCoPQ zone 6\",GEOGCS[\"NAD27(CG"); add_srs_wkt (p, 1, "Q77)\",DATUM[\"North_American_Datum_1927_CGQ77\",SPHEROI"); add_srs_wkt (p, 2, "D[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6609\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4609\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 8, "\"central_meridian\",-67.5],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9999],PARAMETER[\"false_easting\",304800],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"2012\"]]"); p = add_epsg_def (filter, first, last, 2013, "epsg", 2013, "NAD27(CGQ77) / SCoPQ zone 7"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-70.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(CGQ77) / SCoPQ zone 7\",GEOGCS[\"NAD27(CG"); add_srs_wkt (p, 1, "Q77)\",DATUM[\"North_American_Datum_1927_CGQ77\",SPHEROI"); add_srs_wkt (p, 2, "D[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6609\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4609\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 8, "\"central_meridian\",-70.5],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9999],PARAMETER[\"false_easting\",304800],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"2013\"]]"); p = add_epsg_def (filter, first, last, 2014, "epsg", 2014, "NAD27(CGQ77) / SCoPQ zone 8"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-73.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(CGQ77) / SCoPQ zone 8\",GEOGCS[\"NAD27(CG"); add_srs_wkt (p, 1, "Q77)\",DATUM[\"North_American_Datum_1927_CGQ77\",SPHEROI"); add_srs_wkt (p, 2, "D[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6609\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4609\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 8, "\"central_meridian\",-73.5],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9999],PARAMETER[\"false_easting\",304800],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"2014\"]]"); p = add_epsg_def (filter, first, last, 2015, "epsg", 2015, "NAD27(CGQ77) / SCoPQ zone 9"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-76.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(CGQ77) / SCoPQ zone 9\",GEOGCS[\"NAD27(CG"); add_srs_wkt (p, 1, "Q77)\",DATUM[\"North_American_Datum_1927_CGQ77\",SPHEROI"); add_srs_wkt (p, 2, "D[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6609\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4609\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 8, "\"central_meridian\",-76.5],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9999],PARAMETER[\"false_easting\",304800],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"2015\"]]"); p = add_epsg_def (filter, first, last, 2016, "epsg", 2016, "NAD27(CGQ77) / SCoPQ zone 10"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-79.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(CGQ77) / SCoPQ zone 10\",GEOGCS[\"NAD27(C"); add_srs_wkt (p, 1, "GQ77)\",DATUM[\"North_American_Datum_1927_CGQ77\",SPHERO"); add_srs_wkt (p, 2, "ID[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6609\"]],PRIME"); add_srs_wkt (p, 4, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"4609\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 7, "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 8, "[\"central_meridian\",-79.5],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9999],PARAMETER[\"false_easting\",304800],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"2016\"]]"); p = add_epsg_def (filter, first, last, 2017, "epsg", 2017, "NAD27(76) / MTM zone 8"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-73.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(76) / MTM zone 8\",GEOGCS[\"NAD27(76)\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1927_1976\",SPHEROID[\"Clark"); add_srs_wkt (p, 2, "e 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7008\"]],AUTHORITY[\"EPSG\",\"6608\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 4, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 5, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"4608\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 7, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 8, "_meridian\",-73.5],PARAMETER[\"scale_factor\",0.9999],PA"); add_srs_wkt (p, 9, "RAMETER[\"false_easting\",304800],PARAMETER[\"false_nort"); add_srs_wkt (p, 10, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 11, ",AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "2017\"]]"); p = add_epsg_def (filter, first, last, 2018, "epsg", 2018, "NAD27(76) / MTM zone 9"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-76.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(76) / MTM zone 9\",GEOGCS[\"NAD27(76)\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1927_1976\",SPHEROID[\"Clark"); add_srs_wkt (p, 2, "e 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7008\"]],AUTHORITY[\"EPSG\",\"6608\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 4, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 5, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"4608\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 7, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 8, "_meridian\",-76.5],PARAMETER[\"scale_factor\",0.9999],PA"); add_srs_wkt (p, 9, "RAMETER[\"false_easting\",304800],PARAMETER[\"false_nort"); add_srs_wkt (p, 10, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 11, ",AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "2018\"]]"); p = add_epsg_def (filter, first, last, 2019, "epsg", 2019, "NAD27(76) / MTM zone 10"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-79.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(76) / MTM zone 10\",GEOGCS[\"NAD27(76)\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1927_1976\",SPHEROID[\"Clar"); add_srs_wkt (p, 2, "ke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],AUTHORITY[\"EPSG\",\"6608\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4608\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-79.5],PARAMETER[\"scale_factor\",0.9999],P"); add_srs_wkt (p, 9, "ARAMETER[\"false_easting\",304800],PARAMETER[\"false_nor"); add_srs_wkt (p, 10, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 11, "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"2019\"]]"); p = add_epsg_def (filter, first, last, 2020, "epsg", 2020, "NAD27(76) / MTM zone 11"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-82.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(76) / MTM zone 11\",GEOGCS[\"NAD27(76)\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1927_1976\",SPHEROID[\"Clar"); add_srs_wkt (p, 2, "ke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],AUTHORITY[\"EPSG\",\"6608\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4608\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-82.5],PARAMETER[\"scale_factor\",0.9999],P"); add_srs_wkt (p, 9, "ARAMETER[\"false_easting\",304800],PARAMETER[\"false_nor"); add_srs_wkt (p, 10, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 11, "],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"2020\"]]"); p = add_epsg_def (filter, first, last, 2021, "epsg", 2021, "NAD27(76) / MTM zone 12"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9999 +x_0=304800 +y"); add_proj4text (p, 1, "_0=0 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(76) / MTM zone 12\",GEOGCS[\"NAD27(76)\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1927_1976\",SPHEROID[\"Clar"); add_srs_wkt (p, 2, "ke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],AUTHORITY[\"EPSG\",\"6608\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4608\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-81],PARAMETER[\"scale_factor\",0.9999],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",304800],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"2021\"]]"); p = add_epsg_def (filter, first, last, 2022, "epsg", 2022, "NAD27(76) / MTM zone 13"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-84 +k=0.9999 +x_0=304800 +y"); add_proj4text (p, 1, "_0=0 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(76) / MTM zone 13\",GEOGCS[\"NAD27(76)\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1927_1976\",SPHEROID[\"Clar"); add_srs_wkt (p, 2, "ke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],AUTHORITY[\"EPSG\",\"6608\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4608\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-84],PARAMETER[\"scale_factor\",0.9999],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",304800],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"2022\"]]"); p = add_epsg_def (filter, first, last, 2023, "epsg", 2023, "NAD27(76) / MTM zone 14"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9999 +x_0=304800 +y"); add_proj4text (p, 1, "_0=0 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(76) / MTM zone 14\",GEOGCS[\"NAD27(76)\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1927_1976\",SPHEROID[\"Clar"); add_srs_wkt (p, 2, "ke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],AUTHORITY[\"EPSG\",\"6608\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4608\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-87],PARAMETER[\"scale_factor\",0.9999],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",304800],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"2023\"]]"); p = add_epsg_def (filter, first, last, 2024, "epsg", 2024, "NAD27(76) / MTM zone 15"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-90 +k=0.9999 +x_0=304800 +y"); add_proj4text (p, 1, "_0=0 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(76) / MTM zone 15\",GEOGCS[\"NAD27(76)\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1927_1976\",SPHEROID[\"Clar"); add_srs_wkt (p, 2, "ke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],AUTHORITY[\"EPSG\",\"6608\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4608\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-90],PARAMETER[\"scale_factor\",0.9999],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",304800],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"2024\"]]"); p = add_epsg_def (filter, first, last, 2025, "epsg", 2025, "NAD27(76) / MTM zone 16"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9999 +x_0=304800 +y"); add_proj4text (p, 1, "_0=0 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(76) / MTM zone 16\",GEOGCS[\"NAD27(76)\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1927_1976\",SPHEROID[\"Clar"); add_srs_wkt (p, 2, "ke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],AUTHORITY[\"EPSG\",\"6608\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4608\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-93],PARAMETER[\"scale_factor\",0.9999],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",304800],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"2025\"]]"); p = add_epsg_def (filter, first, last, 2026, "epsg", 2026, "NAD27(76) / MTM zone 17"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-96 +k=0.9999 +x_0=304800 +y"); add_proj4text (p, 1, "_0=0 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(76) / MTM zone 17\",GEOGCS[\"NAD27(76)\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1927_1976\",SPHEROID[\"Clar"); add_srs_wkt (p, 2, "ke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],AUTHORITY[\"EPSG\",\"6608\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4608\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-96],PARAMETER[\"scale_factor\",0.9999],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",304800],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"2026\"]]"); p = add_epsg_def (filter, first, last, 2027, "epsg", 2027, "NAD27(76) / UTM zone 15N"); add_proj4text (p, 0, "+proj=utm +zone=15 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(76) / UTM zone 15N\",GEOGCS[\"NAD27(76)\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1927_1976\",SPHEROID[\"Cla"); add_srs_wkt (p, 2, "rke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],AUTHORITY[\"EPSG\",\"6608\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4608\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-93],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"2027\"]]"); p = add_epsg_def (filter, first, last, 2028, "epsg", 2028, "NAD27(76) / UTM zone 16N"); add_proj4text (p, 0, "+proj=utm +zone=16 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(76) / UTM zone 16N\",GEOGCS[\"NAD27(76)\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1927_1976\",SPHEROID[\"Cla"); add_srs_wkt (p, 2, "rke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],AUTHORITY[\"EPSG\",\"6608\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4608\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-87],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"2028\"]]"); p = add_epsg_def (filter, first, last, 2029, "epsg", 2029, "NAD27(76) / UTM zone 17N"); add_proj4text (p, 0, "+proj=utm +zone=17 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(76) / UTM zone 17N\",GEOGCS[\"NAD27(76)\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1927_1976\",SPHEROID[\"Cla"); add_srs_wkt (p, 2, "rke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],AUTHORITY[\"EPSG\",\"6608\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4608\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-81],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"2029\"]]"); p = add_epsg_def (filter, first, last, 2030, "epsg", 2030, "NAD27(76) / UTM zone 18N"); add_proj4text (p, 0, "+proj=utm +zone=18 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(76) / UTM zone 18N\",GEOGCS[\"NAD27(76)\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1927_1976\",SPHEROID[\"Cla"); add_srs_wkt (p, 2, "rke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],AUTHORITY[\"EPSG\",\"6608\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4608\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-75],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"2030\"]]"); p = add_epsg_def (filter, first, last, 2031, "epsg", 2031, "NAD27(CGQ77) / UTM zone 17N"); add_proj4text (p, 0, "+proj=utm +zone=17 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(CGQ77) / UTM zone 17N\",GEOGCS[\"NAD27(CG"); add_srs_wkt (p, 1, "Q77)\",DATUM[\"North_American_Datum_1927_CGQ77\",SPHEROI"); add_srs_wkt (p, 2, "D[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6609\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4609\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 8, "\"central_meridian\",-81],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 9, "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 11, "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"2031\"]]"); p = add_epsg_def (filter, first, last, 2032, "epsg", 2032, "NAD27(CGQ77) / UTM zone 18N"); add_proj4text (p, 0, "+proj=utm +zone=18 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(CGQ77) / UTM zone 18N\",GEOGCS[\"NAD27(CG"); add_srs_wkt (p, 1, "Q77)\",DATUM[\"North_American_Datum_1927_CGQ77\",SPHEROI"); add_srs_wkt (p, 2, "D[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6609\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4609\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 8, "\"central_meridian\",-75],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 9, "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 11, "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"2032\"]]"); p = add_epsg_def (filter, first, last, 2033, "epsg", 2033, "NAD27(CGQ77) / UTM zone 19N"); add_proj4text (p, 0, "+proj=utm +zone=19 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(CGQ77) / UTM zone 19N\",GEOGCS[\"NAD27(CG"); add_srs_wkt (p, 1, "Q77)\",DATUM[\"North_American_Datum_1927_CGQ77\",SPHEROI"); add_srs_wkt (p, 2, "D[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6609\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4609\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 8, "\"central_meridian\",-69],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 9, "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 11, "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"2033\"]]"); p = add_epsg_def (filter, first, last, 2034, "epsg", 2034, "NAD27(CGQ77) / UTM zone 20N"); add_proj4text (p, 0, "+proj=utm +zone=20 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(CGQ77) / UTM zone 20N\",GEOGCS[\"NAD27(CG"); add_srs_wkt (p, 1, "Q77)\",DATUM[\"North_American_Datum_1927_CGQ77\",SPHEROI"); add_srs_wkt (p, 2, "D[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6609\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4609\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 8, "\"central_meridian\",-63],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 9, "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 11, "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"2034\"]]"); p = add_epsg_def (filter, first, last, 2035, "epsg", 2035, "NAD27(CGQ77) / UTM zone 21N"); add_proj4text (p, 0, "+proj=utm +zone=21 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(CGQ77) / UTM zone 21N\",GEOGCS[\"NAD27(CG"); add_srs_wkt (p, 1, "Q77)\",DATUM[\"North_American_Datum_1927_CGQ77\",SPHEROI"); add_srs_wkt (p, 2, "D[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6609\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4609\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 8, "\"central_meridian\",-57],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 9, "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 11, "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"2035\"]]"); p = add_epsg_def (filter, first, last, 2036, "epsg", 2036, "NAD83(CSRS98) / New Brunswick Stereo (deprecated)"); add_proj4text (p, 0, "+proj=sterea +lat_0=46.5 +lon_0=-66.5 +k=0.999912 +x_0=2"); add_proj4text (p, 1, "500000 +y_0=7500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 "); add_proj4text (p, 2, "+units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS98) / New Brunswick Stereo (deprecate"); add_srs_wkt (p, 1, "d)\",GEOGCS[\"NAD83(CSRS98)\",DATUM[\"NAD83_Canadian_Spa"); add_srs_wkt (p, 2, "tial_Reference_System\",SPHEROID[\"GRS 1980\",6378137,29"); add_srs_wkt (p, 3, "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,"); add_srs_wkt (p, 4, "0,0,0,0],AUTHORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 5, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 6, "74532925199433,AUTHORITY[\"EPSG\",\"9108\"]],AUTHORITY[\""); add_srs_wkt (p, 7, "EPSG\",\"4140\"]],PROJECTION[\"Oblique_Stereographic\"],"); add_srs_wkt (p, 8, "PARAMETER[\"latitude_of_origin\",46.5],PARAMETER[\"centr"); add_srs_wkt (p, 9, "al_meridian\",-66.5],PARAMETER[\"scale_factor\",0.999912"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",2500000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",7500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EA"); add_srs_wkt (p, 13, "ST],AUTHORITY[\"EPSG\",\"2036\"]]"); p = add_epsg_def (filter, first, last, 2037, "epsg", 2037, "NAD83(CSRS98) / UTM zone 19N (deprecated)"); add_proj4text (p, 0, "+proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS98) / UTM zone 19N (deprecated)\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(CSRS98)\",DATUM[\"NAD83_Canadian_Spatial_Ref"); add_srs_wkt (p, 2, "erence_System\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9108\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4140\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",-69],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 12, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "2037\"]]"); p = add_epsg_def (filter, first, last, 2038, "epsg", 2038, "NAD83(CSRS98) / UTM zone 20N (deprecated)"); add_proj4text (p, 0, "+proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS98) / UTM zone 20N (deprecated)\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(CSRS98)\",DATUM[\"NAD83_Canadian_Spatial_Ref"); add_srs_wkt (p, 2, "erence_System\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9108\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4140\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",-63],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 12, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "2038\"]]"); p = add_epsg_def (filter, first, last, 2039, "epsg", 2039, "Israel / Israeli TM Grid"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31.73439361111111 +lon_0=35.204516944"); add_proj4text (p, 1, "44445 +k=1.0000067 +x_0=219529.584 +y_0=626907.39 +ellps"); add_proj4text (p, 2, "=GRS80 +towgs84=-48,55,52,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Israel / Israeli TM Grid\",GEOGCS[\"Israel\",DA"); add_srs_wkt (p, 1, "TUM[\"Israel\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 2, "01,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[-48,55,52,0,0,0"); add_srs_wkt (p, 3, ",0],AUTHORITY[\"EPSG\",\"6141\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 5, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"4141\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); add_srs_wkt (p, 7, "TER[\"latitude_of_origin\",31.73439361111111],PARAMETER["); add_srs_wkt (p, 8, "\"central_meridian\",35.20451694444445],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",1.0000067],PARAMETER[\"false_easting\",219529"); add_srs_wkt (p, 10, ".584],PARAMETER[\"false_northing\",626907.39],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 12, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2039\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def (filter, first, last, 2040, "epsg", 2040, "Locodjo 1965 / UTM zone 30N"); add_proj4text (p, 0, "+proj=utm +zone=30 +ellps=clrk80 +towgs84=-125,53,467,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Locodjo 1965 / UTM zone 30N\",GEOGCS[\"Locodjo "); add_srs_wkt (p, 1, "1965\",DATUM[\"Locodjo_1965\",SPHEROID[\"Clarke 1880 (RG"); add_srs_wkt (p, 2, "S)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],T"); add_srs_wkt (p, 3, "OWGS84[-125,53,467,0,0,0,0],AUTHORITY[\"EPSG\",\"6142\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4142\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",-3],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, "r\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 11, "G\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\","); add_srs_wkt (p, 12, "NORTH],AUTHORITY[\"EPSG\",\"2040\"]]"); p = add_epsg_def (filter, first, last, 2041, "epsg", 2041, "Abidjan 1987 / UTM zone 30N"); add_proj4text (p, 0, "+proj=utm +zone=30 +ellps=clrk80 +towgs84=-124.76,53,466"); add_proj4text (p, 1, ".79,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Abidjan 1987 / UTM zone 30N\",GEOGCS[\"Abidjan "); add_srs_wkt (p, 1, "1987\",DATUM[\"Abidjan_1987\",SPHEROID[\"Clarke 1880 (RG"); add_srs_wkt (p, 2, "S)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],T"); add_srs_wkt (p, 3, "OWGS84[-124.76,53,466.79,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "143\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4143\"]],PROJECTION[\""); add_srs_wkt (p, 7, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, "0],PARAMETER[\"central_meridian\",-3],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 11, "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 12, "ng\",NORTH],AUTHORITY[\"EPSG\",\"2041\"]]"); p = add_epsg_def (filter, first, last, 2042, "epsg", 2042, "Locodjo 1965 / UTM zone 29N"); add_proj4text (p, 0, "+proj=utm +zone=29 +ellps=clrk80 +towgs84=-125,53,467,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Locodjo 1965 / UTM zone 29N\",GEOGCS[\"Locodjo "); add_srs_wkt (p, 1, "1965\",DATUM[\"Locodjo_1965\",SPHEROID[\"Clarke 1880 (RG"); add_srs_wkt (p, 2, "S)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],T"); add_srs_wkt (p, 3, "OWGS84[-125,53,467,0,0,0,0],AUTHORITY[\"EPSG\",\"6142\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4142\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",-9],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, "r\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 11, "G\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\","); add_srs_wkt (p, 12, "NORTH],AUTHORITY[\"EPSG\",\"2042\"]]"); p = add_epsg_def (filter, first, last, 2043, "epsg", 2043, "Abidjan 1987 / UTM zone 29N"); add_proj4text (p, 0, "+proj=utm +zone=29 +ellps=clrk80 +towgs84=-124.76,53,466"); add_proj4text (p, 1, ".79,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Abidjan 1987 / UTM zone 29N\",GEOGCS[\"Abidjan "); add_srs_wkt (p, 1, "1987\",DATUM[\"Abidjan_1987\",SPHEROID[\"Clarke 1880 (RG"); add_srs_wkt (p, 2, "S)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],T"); add_srs_wkt (p, 3, "OWGS84[-124.76,53,466.79,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "143\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4143\"]],PROJECTION[\""); add_srs_wkt (p, 7, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, "0],PARAMETER[\"central_meridian\",-9],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 11, "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 12, "ng\",NORTH],AUTHORITY[\"EPSG\",\"2043\"]]"); p = add_epsg_def (filter, first, last, 2044, "epsg", 2044, "Hanoi 1972 / Gauss-Kruger zone 18"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=18500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=-17.51,-108.32,-62.39,0,0,0,0 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Hanoi 1972 / Gauss-Kruger zone 18\",GEOGCS[\"Ha"); add_srs_wkt (p, 1, "noi 1972\",DATUM[\"Hanoi_1972\",SPHEROID[\"Krassowsky 19"); add_srs_wkt (p, 2, "40\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84"); add_srs_wkt (p, 3, "[-17.51,-108.32,-62.39,0,0,0,0],AUTHORITY[\"EPSG\",\"614"); add_srs_wkt (p, 4, "7\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4147\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, "],PARAMETER[\"central_meridian\",105],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",1],PARAMETER[\"false_easting\",18500000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"2044\"]]"); p = add_epsg_def (filter, first, last, 2045, "epsg", 2045, "Hanoi 1972 / Gauss-Kruger zone 19"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=19500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=-17.51,-108.32,-62.39,0,0,0,0 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Hanoi 1972 / Gauss-Kruger zone 19\",GEOGCS[\"Ha"); add_srs_wkt (p, 1, "noi 1972\",DATUM[\"Hanoi_1972\",SPHEROID[\"Krassowsky 19"); add_srs_wkt (p, 2, "40\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84"); add_srs_wkt (p, 3, "[-17.51,-108.32,-62.39,0,0,0,0],AUTHORITY[\"EPSG\",\"614"); add_srs_wkt (p, 4, "7\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4147\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, "],PARAMETER[\"central_meridian\",111],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",1],PARAMETER[\"false_easting\",19500000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"2045\"]]"); p = add_epsg_def (filter, first, last, 2046, "epsg", 2046, "Hartebeesthoek94 / Lo15"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=0 +y_0=0 +axis="); add_proj4text (p, 1, "wsu +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_def"); add_proj4text (p, 2, "s"); add_srs_wkt (p, 0, "PROJCS[\"Hartebeesthoek94 / Lo15\",GEOGCS[\"Hartebeestho"); add_srs_wkt (p, 1, "ek94\",DATUM[\"Hartebeesthoek94\",SPHEROID[\"WGS 84\",63"); add_srs_wkt (p, 2, "78137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS8"); add_srs_wkt (p, 3, "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6148\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4148\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor_South_Orientated\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",15],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",1],PARAMETER[\"false_easting\",0],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"2046\"]]"); p = add_epsg_def (filter, first, last, 2047, "epsg", 2047, "Hartebeesthoek94 / Lo17"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=17 +k=1 +x_0=0 +y_0=0 +axis="); add_proj4text (p, 1, "wsu +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_def"); add_proj4text (p, 2, "s"); add_srs_wkt (p, 0, "PROJCS[\"Hartebeesthoek94 / Lo17\",GEOGCS[\"Hartebeestho"); add_srs_wkt (p, 1, "ek94\",DATUM[\"Hartebeesthoek94\",SPHEROID[\"WGS 84\",63"); add_srs_wkt (p, 2, "78137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS8"); add_srs_wkt (p, 3, "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6148\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4148\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor_South_Orientated\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",17],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",1],PARAMETER[\"false_easting\",0],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"2047\"]]"); p = add_epsg_def (filter, first, last, 2048, "epsg", 2048, "Hartebeesthoek94 / Lo19"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=19 +k=1 +x_0=0 +y_0=0 +axis="); add_proj4text (p, 1, "wsu +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_def"); add_proj4text (p, 2, "s"); add_srs_wkt (p, 0, "PROJCS[\"Hartebeesthoek94 / Lo19\",GEOGCS[\"Hartebeestho"); add_srs_wkt (p, 1, "ek94\",DATUM[\"Hartebeesthoek94\",SPHEROID[\"WGS 84\",63"); add_srs_wkt (p, 2, "78137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS8"); add_srs_wkt (p, 3, "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6148\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4148\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor_South_Orientated\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",19],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",1],PARAMETER[\"false_easting\",0],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"2048\"]]"); p = add_epsg_def (filter, first, last, 2049, "epsg", 2049, "Hartebeesthoek94 / Lo21"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=0 +y_0=0 +axis="); add_proj4text (p, 1, "wsu +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_def"); add_proj4text (p, 2, "s"); add_srs_wkt (p, 0, "PROJCS[\"Hartebeesthoek94 / Lo21\",GEOGCS[\"Hartebeestho"); add_srs_wkt (p, 1, "ek94\",DATUM[\"Hartebeesthoek94\",SPHEROID[\"WGS 84\",63"); add_srs_wkt (p, 2, "78137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS8"); add_srs_wkt (p, 3, "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6148\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4148\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor_South_Orientated\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",21],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",1],PARAMETER[\"false_easting\",0],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"2049\"]]"); p = add_epsg_def (filter, first, last, 2050, "epsg", 2050, "Hartebeesthoek94 / Lo23"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=23 +k=1 +x_0=0 +y_0=0 +axis="); add_proj4text (p, 1, "wsu +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_def"); add_proj4text (p, 2, "s"); add_srs_wkt (p, 0, "PROJCS[\"Hartebeesthoek94 / Lo23\",GEOGCS[\"Hartebeestho"); add_srs_wkt (p, 1, "ek94\",DATUM[\"Hartebeesthoek94\",SPHEROID[\"WGS 84\",63"); add_srs_wkt (p, 2, "78137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS8"); add_srs_wkt (p, 3, "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6148\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4148\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor_South_Orientated\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",23],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",1],PARAMETER[\"false_easting\",0],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"2050\"]]"); p = add_epsg_def (filter, first, last, 2051, "epsg", 2051, "Hartebeesthoek94 / Lo25"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=25 +k=1 +x_0=0 +y_0=0 +axis="); add_proj4text (p, 1, "wsu +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_def"); add_proj4text (p, 2, "s"); add_srs_wkt (p, 0, "PROJCS[\"Hartebeesthoek94 / Lo25\",GEOGCS[\"Hartebeestho"); add_srs_wkt (p, 1, "ek94\",DATUM[\"Hartebeesthoek94\",SPHEROID[\"WGS 84\",63"); add_srs_wkt (p, 2, "78137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS8"); add_srs_wkt (p, 3, "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6148\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4148\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor_South_Orientated\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",25],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",1],PARAMETER[\"false_easting\",0],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"2051\"]]"); p = add_epsg_def (filter, first, last, 2052, "epsg", 2052, "Hartebeesthoek94 / Lo27"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=0 +y_0=0 +axis="); add_proj4text (p, 1, "wsu +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_def"); add_proj4text (p, 2, "s"); add_srs_wkt (p, 0, "PROJCS[\"Hartebeesthoek94 / Lo27\",GEOGCS[\"Hartebeestho"); add_srs_wkt (p, 1, "ek94\",DATUM[\"Hartebeesthoek94\",SPHEROID[\"WGS 84\",63"); add_srs_wkt (p, 2, "78137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS8"); add_srs_wkt (p, 3, "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6148\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4148\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor_South_Orientated\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",27],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",1],PARAMETER[\"false_easting\",0],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"2052\"]]"); p = add_epsg_def (filter, first, last, 2053, "epsg", 2053, "Hartebeesthoek94 / Lo29"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=29 +k=1 +x_0=0 +y_0=0 +axis="); add_proj4text (p, 1, "wsu +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_def"); add_proj4text (p, 2, "s"); add_srs_wkt (p, 0, "PROJCS[\"Hartebeesthoek94 / Lo29\",GEOGCS[\"Hartebeestho"); add_srs_wkt (p, 1, "ek94\",DATUM[\"Hartebeesthoek94\",SPHEROID[\"WGS 84\",63"); add_srs_wkt (p, 2, "78137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS8"); add_srs_wkt (p, 3, "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6148\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4148\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor_South_Orientated\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",29],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",1],PARAMETER[\"false_easting\",0],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"2053\"]]"); p = add_epsg_def (filter, first, last, 2054, "epsg", 2054, "Hartebeesthoek94 / Lo31"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=31 +k=1 +x_0=0 +y_0=0 +axis="); add_proj4text (p, 1, "wsu +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_def"); add_proj4text (p, 2, "s"); add_srs_wkt (p, 0, "PROJCS[\"Hartebeesthoek94 / Lo31\",GEOGCS[\"Hartebeestho"); add_srs_wkt (p, 1, "ek94\",DATUM[\"Hartebeesthoek94\",SPHEROID[\"WGS 84\",63"); add_srs_wkt (p, 2, "78137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS8"); add_srs_wkt (p, 3, "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6148\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4148\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor_South_Orientated\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",31],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",1],PARAMETER[\"false_easting\",0],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"2054\"]]"); p = add_epsg_def (filter, first, last, 2055, "epsg", 2055, "Hartebeesthoek94 / Lo33"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=0 +y_0=0 +axis="); add_proj4text (p, 1, "wsu +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_def"); add_proj4text (p, 2, "s"); add_srs_wkt (p, 0, "PROJCS[\"Hartebeesthoek94 / Lo33\",GEOGCS[\"Hartebeestho"); add_srs_wkt (p, 1, "ek94\",DATUM[\"Hartebeesthoek94\",SPHEROID[\"WGS 84\",63"); add_srs_wkt (p, 2, "78137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS8"); add_srs_wkt (p, 3, "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6148\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4148\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor_South_Orientated\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",33],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",1],PARAMETER[\"false_easting\",0],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"2055\"]]"); p = add_epsg_def (filter, first, last, 2056, "epsg", 2056, "CH1903+ / LV95"); add_proj4text (p, 0, "+proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333"); add_proj4text (p, 1, "333333 +k_0=1 +x_0=2600000 +y_0=1200000 +ellps=bessel +t"); add_proj4text (p, 2, "owgs84=674.374,15.056,405.346,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CH1903+ / LV95\",GEOGCS[\"CH1903+\",DATUM[\"CH1"); add_srs_wkt (p, 1, "903+\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[674.374,15.056,405"); add_srs_wkt (p, 3, ".346,0,0,0,0],AUTHORITY[\"EPSG\",\"6150\"]],PRIMEM[\"Gre"); add_srs_wkt (p, 4, "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4150\"]],PROJECTION[\"Hotine_Oblique_Merc"); add_srs_wkt (p, 7, "ator\"],PARAMETER[\"latitude_of_center\",46.952405555555"); add_srs_wkt (p, 8, "56],PARAMETER[\"longitude_of_center\",7.439583333333333]"); add_srs_wkt (p, 9, ",PARAMETER[\"azimuth\",90],PARAMETER[\"rectified_grid_an"); add_srs_wkt (p, 10, "gle\",90],PARAMETER[\"scale_factor\",1],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_easting\",2600000],PARAMETER[\"false_northing\",120000"); add_srs_wkt (p, 12, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AXIS[\"X\",NORTH],AUTHORITY[\"EPSG\",\"2056\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def (filter, first, last, 2057, "epsg", 2057, "Rassadiran / Nakhl e Taqi"); add_proj4text (p, 0, "+proj=omerc +lat_0=27.51882880555555 +lonc=52.6035391666"); add_proj4text (p, 1, "6667 +alpha=0.5716611944444444 +k=0.999895934 +x_0=65837"); add_proj4text (p, 2, "7.437 +y_0=3044969.194 +gamma=0.5716611944444444 +ellps="); add_proj4text (p, 3, "intl +towgs84=-133.63,-157.5,-158.62,0,0,0,0 +units=m +n"); add_proj4text (p, 4, "o_defs"); add_srs_wkt (p, 0, "PROJCS[\"Rassadiran / Nakhl e Taqi\",GEOGCS[\"Rassadiran"); add_srs_wkt (p, 1, "\",DATUM[\"Rassadiran\",SPHEROID[\"International 1924\","); add_srs_wkt (p, 2, "6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-133.6"); add_srs_wkt (p, 3, "3,-157.5,-158.62,0,0,0,0],AUTHORITY[\"EPSG\",\"6153\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4153\"]],PROJECTION[\"Hotine_"); add_srs_wkt (p, 7, "Oblique_Mercator\"],PARAMETER[\"latitude_of_center\",27."); add_srs_wkt (p, 8, "51882880555555],PARAMETER[\"longitude_of_center\",52.603"); add_srs_wkt (p, 9, "53916666667],PARAMETER[\"azimuth\",0.5716611944444444],P"); add_srs_wkt (p, 10, "ARAMETER[\"rectified_grid_angle\",0.5716611944444444],PA"); add_srs_wkt (p, 11, "RAMETER[\"scale_factor\",0.999895934],PARAMETER[\"false_"); add_srs_wkt (p, 12, "easting\",658377.437],PARAMETER[\"false_northing\",30449"); add_srs_wkt (p, 13, "69.194],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 14, "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY"); add_srs_wkt (p, 15, "[\"EPSG\",\"2057\"]]"); p = add_epsg_def (filter, first, last, 2058, "epsg", 2058, "ED50(ED77) / UTM zone 38N"); add_proj4text (p, 0, "+proj=utm +zone=38 +ellps=intl +towgs84=-117,-132,-164,0"); add_proj4text (p, 1, ",0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ED50(ED77) / UTM zone 38N\",GEOGCS[\"ED50(ED77)"); add_srs_wkt (p, 1, "\",DATUM[\"European_Datum_1950_1977\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, "TOWGS84[-117,-132,-164,0,0,0,0],AUTHORITY[\"EPSG\",\"615"); add_srs_wkt (p, 4, "4\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4154\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, "],PARAMETER[\"central_meridian\",45],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"2058\"]]"); p = add_epsg_def (filter, first, last, 2059, "epsg", 2059, "ED50(ED77) / UTM zone 39N"); add_proj4text (p, 0, "+proj=utm +zone=39 +ellps=intl +towgs84=-117,-132,-164,0"); add_proj4text (p, 1, ",0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ED50(ED77) / UTM zone 39N\",GEOGCS[\"ED50(ED77)"); add_srs_wkt (p, 1, "\",DATUM[\"European_Datum_1950_1977\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, "TOWGS84[-117,-132,-164,0,0,0,0],AUTHORITY[\"EPSG\",\"615"); add_srs_wkt (p, 4, "4\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4154\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, "],PARAMETER[\"central_meridian\",51],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"2059\"]]"); p = add_epsg_def (filter, first, last, 2060, "epsg", 2060, "ED50(ED77) / UTM zone 40N"); add_proj4text (p, 0, "+proj=utm +zone=40 +ellps=intl +towgs84=-117,-132,-164,0"); add_proj4text (p, 1, ",0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ED50(ED77) / UTM zone 40N\",GEOGCS[\"ED50(ED77)"); add_srs_wkt (p, 1, "\",DATUM[\"European_Datum_1950_1977\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, "TOWGS84[-117,-132,-164,0,0,0,0],AUTHORITY[\"EPSG\",\"615"); add_srs_wkt (p, 4, "4\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4154\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, "],PARAMETER[\"central_meridian\",57],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"2060\"]]"); p = add_epsg_def (filter, first, last, 2061, "epsg", 2061, "ED50(ED77) / UTM zone 41N"); add_proj4text (p, 0, "+proj=utm +zone=41 +ellps=intl +towgs84=-117,-132,-164,0"); add_proj4text (p, 1, ",0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ED50(ED77) / UTM zone 41N\",GEOGCS[\"ED50(ED77)"); add_srs_wkt (p, 1, "\",DATUM[\"European_Datum_1950_1977\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, "TOWGS84[-117,-132,-164,0,0,0,0],AUTHORITY[\"EPSG\",\"615"); add_srs_wkt (p, 4, "4\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4154\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, "],PARAMETER[\"central_meridian\",63],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"2061\"]]"); p = add_epsg_def (filter, first, last, 2062, "epsg", 2062, "Madrid 1870 (Madrid) / Spain"); add_proj4text (p, 0, "+proj=lcc +lat_1=40 +lat_0=40 +lon_0=0 +k_0=0.9988085293"); add_proj4text (p, 1, " +x_0=600000 +y_0=600000 +a=6378298.3 +b=6356657.1426695"); add_proj4text (p, 2, "62 +pm=madrid +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Madrid 1870 (Madrid) / Spain\",GEOGCS[\"Madrid "); add_srs_wkt (p, 1, "1870 (Madrid)\",DATUM[\"Madrid_1870_Madrid\",SPHEROID[\""); add_srs_wkt (p, 2, "Struve 1860\",6378298.3,294.73,AUTHORITY[\"EPSG\",\"7028"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"6903\"]],PRIMEM[\"Madrid\",-3."); add_srs_wkt (p, 4, "687938888888889,AUTHORITY[\"EPSG\",\"8905\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4903\"]],PROJECTION[\"Lambert_Confor"); add_srs_wkt (p, 7, "mal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",40],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",0],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, "\",0.9988085293],PARAMETER[\"false_easting\",600000],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_northing\",600000],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); add_srs_wkt (p, 12, "TH],AUTHORITY[\"EPSG\",\"2062\"]]"); p = add_epsg_def (filter, first, last, 2063, "epsg", 2063, "Dabola 1981 / UTM zone 28N (deprecated)"); add_proj4text (p, 0, "+proj=utm +zone=28 +a=6378249.2 +b=6356515 +towgs84=-23,"); add_proj4text (p, 1, "259,-9,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Dabola 1981 / UTM zone 28N (deprecated)\",GEOGC"); add_srs_wkt (p, 1, "S[\"Conakry 1905\",DATUM[\"Conakry_1905\",SPHEROID[\"Cla"); add_srs_wkt (p, 2, "rke 1880 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7011\"]],TOWGS84[-23,259,-9,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6315\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4315\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",-15],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",0.9996],PARAMETER[\"false_easting"); add_srs_wkt (p, 10, "\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 12, "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2063\"]]"); p = add_epsg_def (filter, first, last, 2064, "epsg", 2064, "Dabola 1981 / UTM zone 29N (deprecated)"); add_proj4text (p, 0, "+proj=utm +zone=29 +a=6378249.2 +b=6356515 +towgs84=-23,"); add_proj4text (p, 1, "259,-9,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Dabola 1981 / UTM zone 29N (deprecated)\",GEOGC"); add_srs_wkt (p, 1, "S[\"Conakry 1905\",DATUM[\"Conakry_1905\",SPHEROID[\"Cla"); add_srs_wkt (p, 2, "rke 1880 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7011\"]],TOWGS84[-23,259,-9,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6315\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4315\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",-9],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",0.9996],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 12, "XIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2064\"]]"); p = add_epsg_def (filter, first, last, 2065, "epsg", 2065, "S-JTSK (Ferro) / Krovak"); add_proj4text (p, 0, "+proj=krovak +lat_0=49.5 +lon_0=42.5 +alpha=30.288139722"); add_proj4text (p, 1, "22222 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +towgs84=589"); add_proj4text (p, 2, ",76,480,0,0,0,0 +pm=ferro +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"S-JTSK (Ferro) / Krovak\",GEOGCS[\"S-JTSK (Ferr"); add_srs_wkt (p, 1, "o)\",DATUM[\"System_Jednotne_Trigonometricke_Site_Katast"); add_srs_wkt (p, 2, "ralni_Ferro\",SPHEROID[\"Bessel 1841\",6377397.155,299.1"); add_srs_wkt (p, 3, "528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[589,76,480,"); add_srs_wkt (p, 4, "0,0,0,0],AUTHORITY[\"EPSG\",\"6818\"]],PRIMEM[\"Ferro\","); add_srs_wkt (p, 5, "-17.66666666666667,AUTHORITY[\"EPSG\",\"8909\"]],UNIT[\""); add_srs_wkt (p, 6, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4818\"]],PROJECTION[\"Krovak\"],P"); add_srs_wkt (p, 8, "ARAMETER[\"latitude_of_center\",49.5],PARAMETER[\"longit"); add_srs_wkt (p, 9, "ude_of_center\",42.5],PARAMETER[\"azimuth\",30.288139722"); add_srs_wkt (p, 10, "22222],PARAMETER[\"pseudo_standard_parallel_1\",78.5],PA"); add_srs_wkt (p, 11, "RAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_easti"); add_srs_wkt (p, 12, "ng\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",SOUTH],AXIS[\""); add_srs_wkt (p, 14, "Y\",WEST],AUTHORITY[\"EPSG\",\"2065\"]]"); p = add_epsg_def (filter, first, last, 2066, "epsg", 2066, "Mount Dillon / Tobago Grid"); add_proj4text (p, 0, "+proj=cass +lat_0=11.25217861111111 +lon_0=-60.686008888"); add_proj4text (p, 1, "88889 +x_0=37718.66159325 +y_0=36209.91512952 +a=6378293"); add_proj4text (p, 2, ".645208759 +b=6356617.987679838 +to_meter=0.201166195164"); add_proj4text (p, 3, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Mount Dillon / Tobago Grid\",GEOGCS[\"Mount Dil"); add_srs_wkt (p, 1, "lon\",DATUM[\"Mount_Dillon\",SPHEROID[\"Clarke 1858\",63"); add_srs_wkt (p, 2, "78293.645208759,294.2606763692654,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "007\"]],AUTHORITY[\"EPSG\",\"6157\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 4, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 5, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"4157\"]],PROJECTION[\"Cassini_Soldner\"],PARAME"); add_srs_wkt (p, 7, "TER[\"latitude_of_origin\",11.25217861111111],PARAMETER["); add_srs_wkt (p, 8, "\"central_meridian\",-60.68600888888889],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",187500],PARAMETER[\"false_northing\",180000"); add_srs_wkt (p, 10, "],UNIT[\"Clarke's link\",0.201166195164,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, "\",\"9039\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); add_srs_wkt (p, 12, "ORTH],AUTHORITY[\"EPSG\",\"2066\"]]"); p = add_epsg_def (filter, first, last, 2067, "epsg", 2067, "Naparima 1955 / UTM zone 20N"); add_proj4text (p, 0, "+proj=utm +zone=20 +ellps=intl +towgs84=-0.465,372.095,1"); add_proj4text (p, 1, "71.736,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Naparima 1955 / UTM zone 20N\",GEOGCS[\"Naparim"); add_srs_wkt (p, 1, "a 1955\",DATUM[\"Naparima_1955\",SPHEROID[\"Internationa"); add_srs_wkt (p, 2, "l 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS"); add_srs_wkt (p, 3, "84[-0.465,372.095,171.736,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6158\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4158\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",-63],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 12, "hing\",NORTH],AUTHORITY[\"EPSG\",\"2067\"]]"); p = add_epsg_def (filter, first, last, 2068, "epsg", 2068, "ELD79 / Libya zone 5"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=9 +k=0.9999 +x_0=200000 +y_0"); add_proj4text (p, 1, "=0 +ellps=intl +towgs84=-115.854,-99.0583,-152.462,0,0,0"); add_proj4text (p, 2, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ELD79 / Libya zone 5\",GEOGCS[\"ELD79\",DATUM[\""); add_srs_wkt (p, 1, "European_Libyan_Datum_1979\",SPHEROID[\"International 19"); add_srs_wkt (p, 2, "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-"); add_srs_wkt (p, 3, "115.854,-99.0583,-152.462,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6159\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4159\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",9],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",0.9999],PARAMETER[\"false_easting\",200000],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 11, "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"2068\"]]"); p = add_epsg_def (filter, first, last, 2069, "epsg", 2069, "ELD79 / Libya zone 6"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=11 +k=0.9999 +x_0=200000 +y_"); add_proj4text (p, 1, "0=0 +ellps=intl +towgs84=-115.854,-99.0583,-152.462,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ELD79 / Libya zone 6\",GEOGCS[\"ELD79\",DATUM[\""); add_srs_wkt (p, 1, "European_Libyan_Datum_1979\",SPHEROID[\"International 19"); add_srs_wkt (p, 2, "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-"); add_srs_wkt (p, 3, "115.854,-99.0583,-152.462,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6159\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4159\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",11],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",0.9999],PARAMETER[\"false_easting\",200000],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"2069\"]]"); p = add_epsg_def (filter, first, last, 2070, "epsg", 2070, "ELD79 / Libya zone 7"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=13 +k=0.9999 +x_0=200000 +y_"); add_proj4text (p, 1, "0=0 +ellps=intl +towgs84=-115.854,-99.0583,-152.462,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ELD79 / Libya zone 7\",GEOGCS[\"ELD79\",DATUM[\""); add_srs_wkt (p, 1, "European_Libyan_Datum_1979\",SPHEROID[\"International 19"); add_srs_wkt (p, 2, "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-"); add_srs_wkt (p, 3, "115.854,-99.0583,-152.462,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6159\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4159\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",13],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",0.9999],PARAMETER[\"false_easting\",200000],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"2070\"]]"); p = add_epsg_def (filter, first, last, 2071, "epsg", 2071, "ELD79 / Libya zone 8"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9999 +x_0=200000 +y_"); add_proj4text (p, 1, "0=0 +ellps=intl +towgs84=-115.854,-99.0583,-152.462,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ELD79 / Libya zone 8\",GEOGCS[\"ELD79\",DATUM[\""); add_srs_wkt (p, 1, "European_Libyan_Datum_1979\",SPHEROID[\"International 19"); add_srs_wkt (p, 2, "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-"); add_srs_wkt (p, 3, "115.854,-99.0583,-152.462,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6159\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4159\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",15],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",0.9999],PARAMETER[\"false_easting\",200000],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"2071\"]]"); p = add_epsg_def (filter, first, last, 2072, "epsg", 2072, "ELD79 / Libya zone 9"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=17 +k=0.9999 +x_0=200000 +y_"); add_proj4text (p, 1, "0=0 +ellps=intl +towgs84=-115.854,-99.0583,-152.462,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ELD79 / Libya zone 9\",GEOGCS[\"ELD79\",DATUM[\""); add_srs_wkt (p, 1, "European_Libyan_Datum_1979\",SPHEROID[\"International 19"); add_srs_wkt (p, 2, "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-"); add_srs_wkt (p, 3, "115.854,-99.0583,-152.462,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6159\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4159\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",17],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",0.9999],PARAMETER[\"false_easting\",200000],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"2072\"]]"); p = add_epsg_def (filter, first, last, 2073, "epsg", 2073, "ELD79 / Libya zone 10"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=19 +k=0.9999 +x_0=200000 +y_"); add_proj4text (p, 1, "0=0 +ellps=intl +towgs84=-115.854,-99.0583,-152.462,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ELD79 / Libya zone 10\",GEOGCS[\"ELD79\",DATUM["); add_srs_wkt (p, 1, "\"European_Libyan_Datum_1979\",SPHEROID[\"International "); add_srs_wkt (p, 2, "1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84"); add_srs_wkt (p, 3, "[-115.854,-99.0583,-152.462,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6159\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4159\"]],PROJECTIO"); add_srs_wkt (p, 7, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 8, "n\",0],PARAMETER[\"central_meridian\",19],PARAMETER[\"sc"); add_srs_wkt (p, 9, "ale_factor\",0.9999],PARAMETER[\"false_easting\",200000]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 11, "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"2073\"]]"); p = add_epsg_def (filter, first, last, 2074, "epsg", 2074, "ELD79 / Libya zone 11"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=0.9999 +x_0=200000 +y_"); add_proj4text (p, 1, "0=0 +ellps=intl +towgs84=-115.854,-99.0583,-152.462,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ELD79 / Libya zone 11\",GEOGCS[\"ELD79\",DATUM["); add_srs_wkt (p, 1, "\"European_Libyan_Datum_1979\",SPHEROID[\"International "); add_srs_wkt (p, 2, "1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84"); add_srs_wkt (p, 3, "[-115.854,-99.0583,-152.462,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6159\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4159\"]],PROJECTIO"); add_srs_wkt (p, 7, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 8, "n\",0],PARAMETER[\"central_meridian\",21],PARAMETER[\"sc"); add_srs_wkt (p, 9, "ale_factor\",0.9999],PARAMETER[\"false_easting\",200000]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 11, "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"2074\"]]"); p = add_epsg_def (filter, first, last, 2075, "epsg", 2075, "ELD79 / Libya zone 12"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=23 +k=0.9999 +x_0=200000 +y_"); add_proj4text (p, 1, "0=0 +ellps=intl +towgs84=-115.854,-99.0583,-152.462,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ELD79 / Libya zone 12\",GEOGCS[\"ELD79\",DATUM["); add_srs_wkt (p, 1, "\"European_Libyan_Datum_1979\",SPHEROID[\"International "); add_srs_wkt (p, 2, "1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84"); add_srs_wkt (p, 3, "[-115.854,-99.0583,-152.462,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6159\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4159\"]],PROJECTIO"); add_srs_wkt (p, 7, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 8, "n\",0],PARAMETER[\"central_meridian\",23],PARAMETER[\"sc"); add_srs_wkt (p, 9, "ale_factor\",0.9999],PARAMETER[\"false_easting\",200000]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 11, "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"2075\"]]"); p = add_epsg_def (filter, first, last, 2076, "epsg", 2076, "ELD79 / Libya zone 13"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=25 +k=0.9999 +x_0=200000 +y_"); add_proj4text (p, 1, "0=0 +ellps=intl +towgs84=-115.854,-99.0583,-152.462,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ELD79 / Libya zone 13\",GEOGCS[\"ELD79\",DATUM["); add_srs_wkt (p, 1, "\"European_Libyan_Datum_1979\",SPHEROID[\"International "); add_srs_wkt (p, 2, "1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84"); add_srs_wkt (p, 3, "[-115.854,-99.0583,-152.462,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6159\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4159\"]],PROJECTIO"); add_srs_wkt (p, 7, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 8, "n\",0],PARAMETER[\"central_meridian\",25],PARAMETER[\"sc"); add_srs_wkt (p, 9, "ale_factor\",0.9999],PARAMETER[\"false_easting\",200000]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 11, "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"2076\"]]"); p = add_epsg_def (filter, first, last, 2077, "epsg", 2077, "ELD79 / UTM zone 32N"); add_proj4text (p, 0, "+proj=utm +zone=32 +ellps=intl +towgs84=-115.854,-99.058"); add_proj4text (p, 1, "3,-152.462,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ELD79 / UTM zone 32N\",GEOGCS[\"ELD79\",DATUM[\""); add_srs_wkt (p, 1, "European_Libyan_Datum_1979\",SPHEROID[\"International 19"); add_srs_wkt (p, 2, "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-"); add_srs_wkt (p, 3, "115.854,-99.0583,-152.462,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6159\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4159\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",9],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 11, "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 12, "ng\",NORTH],AUTHORITY[\"EPSG\",\"2077\"]]"); p = add_epsg_def (filter, first, last, 2078, "epsg", 2078, "ELD79 / UTM zone 33N"); add_proj4text (p, 0, "+proj=utm +zone=33 +ellps=intl +towgs84=-115.854,-99.058"); add_proj4text (p, 1, "3,-152.462,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ELD79 / UTM zone 33N\",GEOGCS[\"ELD79\",DATUM[\""); add_srs_wkt (p, 1, "European_Libyan_Datum_1979\",SPHEROID[\"International 19"); add_srs_wkt (p, 2, "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-"); add_srs_wkt (p, 3, "115.854,-99.0583,-152.462,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6159\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4159\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",15],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",0.9996],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 12, "ing\",NORTH],AUTHORITY[\"EPSG\",\"2078\"]]"); p = add_epsg_def (filter, first, last, 2079, "epsg", 2079, "ELD79 / UTM zone 34N"); add_proj4text (p, 0, "+proj=utm +zone=34 +ellps=intl +towgs84=-115.854,-99.058"); add_proj4text (p, 1, "3,-152.462,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ELD79 / UTM zone 34N\",GEOGCS[\"ELD79\",DATUM[\""); add_srs_wkt (p, 1, "European_Libyan_Datum_1979\",SPHEROID[\"International 19"); add_srs_wkt (p, 2, "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-"); add_srs_wkt (p, 3, "115.854,-99.0583,-152.462,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6159\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4159\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",21],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",0.9996],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 12, "ing\",NORTH],AUTHORITY[\"EPSG\",\"2079\"]]"); p = add_epsg_def (filter, first, last, 2080, "epsg", 2080, "ELD79 / UTM zone 35N"); add_proj4text (p, 0, "+proj=utm +zone=35 +ellps=intl +towgs84=-115.854,-99.058"); add_proj4text (p, 1, "3,-152.462,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ELD79 / UTM zone 35N\",GEOGCS[\"ELD79\",DATUM[\""); add_srs_wkt (p, 1, "European_Libyan_Datum_1979\",SPHEROID[\"International 19"); add_srs_wkt (p, 2, "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-"); add_srs_wkt (p, 3, "115.854,-99.0583,-152.462,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6159\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4159\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",27],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",0.9996],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 12, "ing\",NORTH],AUTHORITY[\"EPSG\",\"2080\"]]"); p = add_epsg_def (filter, first, last, 2081, "epsg", 2081, "Chos Malal 1914 / Argentina 2"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-69 +k=1 +x_0=2500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=intl +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Chos Malal 1914 / Argentina 2\",GEOGCS[\"Chos M"); add_srs_wkt (p, 1, "alal 1914\",DATUM[\"Chos_Malal_1914\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"6160\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 5, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4160\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",-90],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 8, ",-69],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_ea"); add_srs_wkt (p, 9, "sting\",2500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 10, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); add_srs_wkt (p, 11, "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2081\"]]"); p = add_epsg_def (filter, first, last, 2082, "epsg", 2082, "Pampa del Castillo / Argentina 2"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-69 +k=1 +x_0=2500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=intl +towgs84=27.5,14,186.4,0,0,0,0 +units=m +"); add_proj4text (p, 2, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pampa del Castillo / Argentina 2\",GEOGCS[\"Pam"); add_srs_wkt (p, 1, "pa del Castillo\",DATUM[\"Pampa_del_Castillo\",SPHEROID["); add_srs_wkt (p, 2, "\"International 1924\",6378388,297,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7022\"]],TOWGS84[27.5,14,186.4,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6161\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4161\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 8, "igin\",-90],PARAMETER[\"central_meridian\",-69],PARAMETE"); add_srs_wkt (p, 9, "R[\"scale_factor\",1],PARAMETER[\"false_easting\",250000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); add_srs_wkt (p, 12, "AST],AUTHORITY[\"EPSG\",\"2082\"]]"); p = add_epsg_def (filter, first, last, 2083, "epsg", 2083, "Hito XVIII 1963 / Argentina 2"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-69 +k=1 +x_0=2500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=intl +towgs84=16,196,93,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Hito XVIII 1963 / Argentina 2\",GEOGCS[\"Hito X"); add_srs_wkt (p, 1, "VIII 1963\",DATUM[\"Hito_XVIII_1963\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, "TOWGS84[16,196,93,0,0,0,0],AUTHORITY[\"EPSG\",\"6254\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AUTHORITY[\"EPSG\",\"4254\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 7, "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",-90],P"); add_srs_wkt (p, 8, "ARAMETER[\"central_meridian\",-69],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, "tor\",1],PARAMETER[\"false_easting\",2500000],PARAMETER["); add_srs_wkt (p, 10, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"2083\"]]"); p = add_epsg_def (filter, first, last, 2084, "epsg", 2084, "Hito XVIII 1963 / UTM zone 19S"); add_proj4text (p, 0, "+proj=utm +zone=19 +south +ellps=intl +towgs84=16,196,93"); add_proj4text (p, 1, ",0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Hito XVIII 1963 / UTM zone 19S\",GEOGCS[\"Hito "); add_srs_wkt (p, 1, "XVIII 1963\",DATUM[\"Hito_XVIII_1963\",SPHEROID[\"Intern"); add_srs_wkt (p, 2, "ational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]]"); add_srs_wkt (p, 3, ",TOWGS84[16,196,93,0,0,0,0],AUTHORITY[\"EPSG\",\"6254\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4254\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",-69],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, "TY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nor"); add_srs_wkt (p, 12, "thing\",NORTH],AUTHORITY[\"EPSG\",\"2084\"]]"); p = add_epsg_def (filter, first, last, 2085, "epsg", 2085, "NAD27 / Cuba Norte (deprecated)"); add_proj4text (p, 0, "+proj=lcc +lat_1=22.35 +lat_0=22.35 +lon_0=-81 +k_0=0.99"); add_proj4text (p, 1, "993602 +x_0=500000 +y_0=280296.016 +datum=NAD27 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Cuba Norte (deprecated)\",GEOGCS[\"NAD2"); add_srs_wkt (p, 1, "7\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clark"); add_srs_wkt (p, 2, "e 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 4, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 5, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Coni"); add_srs_wkt (p, 7, "c_1SP\"],PARAMETER[\"latitude_of_origin\",22.35],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-81],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.99993602],PARAMETER[\"false_easting\",500000],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_northing\",280296.016],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 11, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Y\",NORTH],AXIS[\"X\",EAS"); add_srs_wkt (p, 12, "T],AUTHORITY[\"EPSG\",\"2085\"]]"); p = add_epsg_def (filter, first, last, 2086, "epsg", 2086, "NAD27 / Cuba Sur (deprecated)"); add_proj4text (p, 0, "+proj=lcc +lat_1=20.71666666666667 +lat_0=20.71666666666"); add_proj4text (p, 1, "667 +lon_0=-76.83333333333333 +k_0=0.99994848 +x_0=50000"); add_proj4text (p, 2, "0 +y_0=229126.939 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Cuba Sur (deprecated)\",GEOGCS[\"NAD27\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1"); add_srs_wkt (p, 2, "866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 4, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 5, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_1"); add_srs_wkt (p, 7, "SP\"],PARAMETER[\"latitude_of_origin\",20.71666666666667"); add_srs_wkt (p, 8, "],PARAMETER[\"central_meridian\",-76.83333333333333],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",0.99994848],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",229126.939]"); add_srs_wkt (p, 11, ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Y"); add_srs_wkt (p, 12, "\",NORTH],AXIS[\"X\",EAST],AUTHORITY[\"EPSG\",\"2086\"]]"); p = add_epsg_def (filter, first, last, 2087, "epsg", 2087, "ELD79 / TM 12 NE"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=12 +k=0.9996 +x_0=500000 +y_"); add_proj4text (p, 1, "0=0 +ellps=intl +towgs84=-115.854,-99.0583,-152.462,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ELD79 / TM 12 NE\",GEOGCS[\"ELD79\",DATUM[\"Eur"); add_srs_wkt (p, 1, "opean_Libyan_Datum_1979\",SPHEROID[\"International 1924\""); add_srs_wkt (p, 2, ",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-115."); add_srs_wkt (p, 3, "854,-99.0583,-152.462,0,0,0,0],AUTHORITY[\"EPSG\",\"6159"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AUTHORITY[\"EPSG\",\"4159\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",12],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"2087\"]]"); p = add_epsg_def (filter, first, last, 2088, "epsg", 2088, "Carthage / TM 11 NE"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=11 +k=0.9996 +x_0=500000 +y_"); add_proj4text (p, 1, "0=0 +datum=carthage +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Carthage / TM 11 NE\",GEOGCS[\"Carthage\",DATUM"); add_srs_wkt (p, 1, "[\"Carthage\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,2"); add_srs_wkt (p, 2, "93.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-"); add_srs_wkt (p, 3, "263,6,431,0,0,0,0],AUTHORITY[\"EPSG\",\"6223\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4223\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 7, "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, "central_meridian\",11],PARAMETER[\"scale_factor\",0.9996"); add_srs_wkt (p, 9, "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); add_srs_wkt (p, 10, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 11, "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"2088\"]]"); p = add_epsg_def (filter, first, last, 2089, "epsg", 2089, "Yemen NGN96 / UTM zone 38N"); add_proj4text (p, 0, "+proj=utm +zone=38 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Yemen NGN96 / UTM zone 38N\",GEOGCS[\"Yemen NGN"); add_srs_wkt (p, 1, "96\",DATUM[\"Yemen_National_Geodetic_Network_1996\",SPHE"); add_srs_wkt (p, 2, "ROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6163\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4163\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",45],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",0.9996],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 12, "ing\",NORTH],AUTHORITY[\"EPSG\",\"2089\"]]"); p = add_epsg_def (filter, first, last, 2090, "epsg", 2090, "Yemen NGN96 / UTM zone 39N"); add_proj4text (p, 0, "+proj=utm +zone=39 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Yemen NGN96 / UTM zone 39N\",GEOGCS[\"Yemen NGN"); add_srs_wkt (p, 1, "96\",DATUM[\"Yemen_National_Geodetic_Network_1996\",SPHE"); add_srs_wkt (p, 2, "ROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6163\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4163\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",51],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",0.9996],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 12, "ing\",NORTH],AUTHORITY[\"EPSG\",\"2090\"]]"); p = add_epsg_def (filter, first, last, 2091, "epsg", 2091, "South Yemen / Gauss Kruger zone 8 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=8500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=-76,-138,67,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"South Yemen / Gauss Kruger zone 8 (deprecated)\""); add_srs_wkt (p, 1, ",GEOGCS[\"South Yemen\",DATUM[\"South_Yemen\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[-76,-138,67,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6164\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4164\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",45],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",1],PARAMETER[\"false_easting\",8500000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"2091\"]]"); p = add_epsg_def (filter, first, last, 2092, "epsg", 2092, "South Yemen / Gauss Kruger zone 9 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=9500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=-76,-138,67,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"South Yemen / Gauss Kruger zone 9 (deprecated)\""); add_srs_wkt (p, 1, ",GEOGCS[\"South Yemen\",DATUM[\"South_Yemen\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[-76,-138,67,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6164\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4164\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",51],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",1],PARAMETER[\"false_easting\",9500000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"2092\"]]"); p = add_epsg_def (filter, first, last, 2093, "epsg", 2093, "Hanoi 1972 / GK 106 NE"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=106 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=-17.51,-108.32,-62.39,0,0,0,0 +uni"); add_proj4text (p, 2, "ts=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Hanoi 1972 / GK 106 NE\",GEOGCS[\"Hanoi 1972\","); add_srs_wkt (p, 1, "DATUM[\"Hanoi_1972\",SPHEROID[\"Krassowsky 1940\",637824"); add_srs_wkt (p, 2, "5,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[-17.51,-10"); add_srs_wkt (p, 3, "8.32,-62.39,0,0,0,0],AUTHORITY[\"EPSG\",\"6147\"]],PRIME"); add_srs_wkt (p, 4, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"4147\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 7, "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 8, "[\"central_meridian\",106],PARAMETER[\"scale_factor\",1]"); add_srs_wkt (p, 9, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 10, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 11, "]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"2093\"]]"); p = add_epsg_def (filter, first, last, 2094, "epsg", 2094, "WGS 72BE / TM 106 NE"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=106 +k=0.9996 +x_0=500000 +y"); add_proj4text (p, 1, "_0=0 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +unit"); add_proj4text (p, 2, "s=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / TM 106 NE\",GEOGCS[\"WGS 72BE\",DATU"); add_srs_wkt (p, 1, "M[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"WG"); add_srs_wkt (p, 2, "S 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, "ARAMETER[\"central_meridian\",106],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"2094\"]]"); p = add_epsg_def (filter, first, last, 2095, "epsg", 2095, "Bissau / UTM zone 28N"); add_proj4text (p, 0, "+proj=utm +zone=28 +ellps=intl +towgs84=-173,253,27,0,0,"); add_proj4text (p, 1, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Bissau / UTM zone 28N\",GEOGCS[\"Bissau\",DATUM"); add_srs_wkt (p, 1, "[\"Bissau\",SPHEROID[\"International 1924\",6378388,297,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-173,253,27,0,0,0,"); add_srs_wkt (p, 3, "0],AUTHORITY[\"EPSG\",\"6165\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4165\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 7, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, "\",-15],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"f"); add_srs_wkt (p, 9, "alse_easting\",500000],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 10, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 11, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"2095\"]]"); p = add_epsg_def (filter, first, last, 2096, "epsg", 2096, "Korean 1985 / East Belt"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=129 +k=1 +x_0=200000 +y_0=5"); add_proj4text (p, 1, "00000 +ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Korean 1985 / East Belt\",GEOGCS[\"Korean 1985\""); add_srs_wkt (p, 1, ",DATUM[\"Korean_Datum_1985\",SPHEROID[\"Bessel 1841\",63"); add_srs_wkt (p, 2, "77397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"6162\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"416"); add_srs_wkt (p, 6, "2\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 7, "titude_of_origin\",38],PARAMETER[\"central_meridian\",12"); add_srs_wkt (p, 8, "9],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 9, "ng\",200000],PARAMETER[\"false_northing\",500000],UNIT[\""); add_srs_wkt (p, 10, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); add_srs_wkt (p, 11, "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2096\"]]"); p = add_epsg_def (filter, first, last, 2097, "epsg", 2097, "Korean 1985 / Central Belt"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=127 +k=1 +x_0=200000 +y_0=5"); add_proj4text (p, 1, "00000 +ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Korean 1985 / Central Belt\",GEOGCS[\"Korean 19"); add_srs_wkt (p, 1, "85\",DATUM[\"Korean_Datum_1985\",SPHEROID[\"Bessel 1841\""); add_srs_wkt (p, 2, ",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6162\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4162\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 7, "latitude_of_origin\",38],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 8, "127],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eas"); add_srs_wkt (p, 9, "ting\",200000],PARAMETER[\"false_northing\",500000],UNIT"); add_srs_wkt (p, 10, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NO"); add_srs_wkt (p, 11, "RTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2097\"]]"); p = add_epsg_def (filter, first, last, 2098, "epsg", 2098, "Korean 1985 / West Belt"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=125 +k=1 +x_0=200000 +y_0=5"); add_proj4text (p, 1, "00000 +ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Korean 1985 / West Belt\",GEOGCS[\"Korean 1985\""); add_srs_wkt (p, 1, ",DATUM[\"Korean_Datum_1985\",SPHEROID[\"Bessel 1841\",63"); add_srs_wkt (p, 2, "77397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"6162\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"416"); add_srs_wkt (p, 6, "2\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 7, "titude_of_origin\",38],PARAMETER[\"central_meridian\",12"); add_srs_wkt (p, 8, "5],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 9, "ng\",200000],PARAMETER[\"false_northing\",500000],UNIT[\""); add_srs_wkt (p, 10, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); add_srs_wkt (p, 11, "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2098\"]]"); p = add_epsg_def (filter, first, last, 2099, "epsg", 2099, "Qatar 1948 / Qatar Grid"); add_proj4text (p, 0, "+proj=cass +lat_0=25.38236111111111 +lon_0=50.7613888888"); add_proj4text (p, 1, "8889 +x_0=100000 +y_0=100000 +ellps=helmert +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"Qatar 1948 / Qatar Grid\",GEOGCS[\"Qatar 1948\""); add_srs_wkt (p, 1, ",DATUM[\"Qatar_1948\",SPHEROID[\"Helmert 1906\",6378200,"); add_srs_wkt (p, 2, "298.3,AUTHORITY[\"EPSG\",\"7020\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "6286\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 4, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4286\"]],PROJECTION["); add_srs_wkt (p, 6, "\"Cassini_Soldner\"],PARAMETER[\"latitude_of_origin\",25"); add_srs_wkt (p, 7, ".38236111111111],PARAMETER[\"central_meridian\",50.76138"); add_srs_wkt (p, 8, "888888889],PARAMETER[\"false_easting\",100000],PARAMETER"); add_srs_wkt (p, 9, "[\"false_northing\",100000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 10, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 11, "\",NORTH],AUTHORITY[\"EPSG\",\"2099\"]]"); p = add_epsg_def (filter, first, last, 2100, "epsg", 2100, "GGRS87 / Greek Grid"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9996 +x_0=500000 +y_"); add_proj4text (p, 1, "0=0 +datum=GGRS87 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GGRS87 / Greek Grid\",GEOGCS[\"GGRS87\",DATUM[\""); add_srs_wkt (p, 1, "Greek_Geodetic_Reference_System_1987\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, ",TOWGS84[-199.87,74.79,246.62,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6121\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4121\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",24],PARAMETER[\"s"); add_srs_wkt (p, 9, "cale_factor\",0.9996],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 10, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); add_srs_wkt (p, 12, "orthing\",NORTH],AUTHORITY[\"EPSG\",\"2100\"]]"); } #endif /* full EPSG initialization enabled/disabled */ libspatialite-4.1.1/src/srsinit/epsg_inlined_07.c0000664000175000017500000050247512163502133016673 00000000000000/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def (filter, first, last, 2729, "epsg", 2729, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 111E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 111E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "11],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2729\"]]"); p = add_epsg_def (filter, first, last, 2730, "epsg", 2730, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 114E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 114E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "14],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2730\"]]"); p = add_epsg_def (filter, first, last, 2731, "epsg", 2731, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 117E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 117E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "17],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2731\"]]"); p = add_epsg_def (filter, first, last, 2732, "epsg", 2732, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 120E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 120E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "20],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2732\"]]"); p = add_epsg_def (filter, first, last, 2733, "epsg", 2733, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 123E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 123E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "23],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2733\"]]"); p = add_epsg_def (filter, first, last, 2734, "epsg", 2734, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 126E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=126 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 126E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "26],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2734\"]]"); p = add_epsg_def (filter, first, last, 2735, "epsg", 2735, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 129E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 129E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "29],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2735\"]]"); p = add_epsg_def (filter, first, last, 2736, "epsg", 2736, "Tete / UTM zone 36S"); add_proj4text (p, 0, "+proj=utm +zone=36 +south +ellps=clrk66 +towgs84=219.315"); add_proj4text (p, 1, ",168.975,-166.145,0.198,5.926,-2.356,-57.104 +units=m +n"); add_proj4text (p, 2, "o_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tete / UTM zone 36S\",GEOGCS[\"Tete\",DATUM[\"T"); add_srs_wkt (p, 1, "ete\",SPHEROID[\"Clarke 1866\",6378206.4,294.97869821389"); add_srs_wkt (p, 2, "82,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS84[219.315,168.975"); add_srs_wkt (p, 3, ",-166.145,0.198,5.926,-2.356,-57.104],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6127\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4127\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",33],PARAMETER[\"s"); add_srs_wkt (p, 9, "cale_factor\",0.9996],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 10, "],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\","); add_srs_wkt (p, 11, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 12, "XIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2736\"]]"); p = add_epsg_def (filter, first, last, 2737, "epsg", 2737, "Tete / UTM zone 37S"); add_proj4text (p, 0, "+proj=utm +zone=37 +south +ellps=clrk66 +towgs84=219.315"); add_proj4text (p, 1, ",168.975,-166.145,0.198,5.926,-2.356,-57.104 +units=m +n"); add_proj4text (p, 2, "o_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tete / UTM zone 37S\",GEOGCS[\"Tete\",DATUM[\"T"); add_srs_wkt (p, 1, "ete\",SPHEROID[\"Clarke 1866\",6378206.4,294.97869821389"); add_srs_wkt (p, 2, "82,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS84[219.315,168.975"); add_srs_wkt (p, 3, ",-166.145,0.198,5.926,-2.356,-57.104],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6127\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4127\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",39],PARAMETER[\"s"); add_srs_wkt (p, 9, "cale_factor\",0.9996],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 10, "],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\","); add_srs_wkt (p, 11, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 12, "XIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2737\"]]"); p = add_epsg_def (filter, first, last, 2738, "epsg", 2738, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 132E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=132 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 132E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "32],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2738\"]]"); p = add_epsg_def (filter, first, last, 2739, "epsg", 2739, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 135E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 135E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "35],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2739\"]]"); p = add_epsg_def (filter, first, last, 2740, "epsg", 2740, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 138E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=138 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 138E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "38],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2740\"]]"); p = add_epsg_def (filter, first, last, 2741, "epsg", 2741, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 141E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 141E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "41],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2741\"]]"); p = add_epsg_def (filter, first, last, 2742, "epsg", 2742, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 144E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=144 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 144E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "44],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2742\"]]"); p = add_epsg_def (filter, first, last, 2743, "epsg", 2743, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 147E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 147E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "47],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2743\"]]"); p = add_epsg_def (filter, first, last, 2744, "epsg", 2744, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 150E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=150 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 150E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "50],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2744\"]]"); p = add_epsg_def (filter, first, last, 2745, "epsg", 2745, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 153E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 153E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "53],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2745\"]]"); p = add_epsg_def (filter, first, last, 2746, "epsg", 2746, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 156E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=156 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 156E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "56],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2746\"]]"); p = add_epsg_def (filter, first, last, 2747, "epsg", 2747, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 159E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 159E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "59],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2747\"]]"); p = add_epsg_def (filter, first, last, 2748, "epsg", 2748, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 162E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=162 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 162E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "62],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2748\"]]"); p = add_epsg_def (filter, first, last, 2749, "epsg", 2749, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 165E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 165E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "65],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2749\"]]"); p = add_epsg_def (filter, first, last, 2750, "epsg", 2750, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 168E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=168 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 168E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "68],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2750\"]]"); p = add_epsg_def (filter, first, last, 2751, "epsg", 2751, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 171E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 171E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "71],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2751\"]]"); p = add_epsg_def (filter, first, last, 2752, "epsg", 2752, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 174E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=174 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 174E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "74],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2752\"]]"); p = add_epsg_def (filter, first, last, 2753, "epsg", 2753, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 177E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 177E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "77],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2753\"]]"); p = add_epsg_def (filter, first, last, 2754, "epsg", 2754, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 180E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=180 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 180E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "80],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2754\"]]"); p = add_epsg_def (filter, first, last, 2755, "epsg", 2755, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 177W"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); add_proj4text (p, 2, "0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 177W\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "177],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2755\"]]"); p = add_epsg_def (filter, first, last, 2756, "epsg", 2756, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 174W"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-174 +k=1 +x_0=500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); add_proj4text (p, 2, "0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 174W\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "174],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2756\"]]"); p = add_epsg_def (filter, first, last, 2757, "epsg", 2757, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 171W"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); add_proj4text (p, 2, "0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 171W\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "171],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2757\"]]"); p = add_epsg_def (filter, first, last, 2758, "epsg", 2758, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 168W"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-168 +k=1 +x_0=500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); add_proj4text (p, 2, "0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 168W\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "168],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2758\"]]"); p = add_epsg_def (filter, first, last, 2759, "epsg", 2759, "NAD83(HARN) / Alabama East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30.5 +lon_0=-85.83333333333333 +k=0.9"); add_proj4text (p, 1, "9996 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Alabama East\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",30.5],PARAMETER[\"central_meridian\",-85.8333333333"); add_srs_wkt (p, 9, "3333],PARAMETER[\"scale_factor\",0.99996],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_easting\",200000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); add_srs_wkt (p, 12, "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2759\"]]"); p = add_epsg_def (filter, first, last, 2760, "epsg", 2760, "NAD83(HARN) / Alabama West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30 +lon_0=-87.5 +k=0.999933333 +x_0=6"); add_proj4text (p, 1, "00000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Alabama West\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",30],PARAMETER[\"central_meridian\",-87.5],PARAMETER"); add_srs_wkt (p, 9, "[\"scale_factor\",0.999933333],PARAMETER[\"false_easting"); add_srs_wkt (p, 10, "\",600000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Y\",NORTH],AUTHORITY[\"EPSG\",\"2760\"]]"); p = add_epsg_def (filter, first, last, 2761, "epsg", 2761, "NAD83(HARN) / Arizona East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Arizona East\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",31],PARAMETER[\"central_meridian\",-110.16666666666"); add_srs_wkt (p, 9, "67],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false"); add_srs_wkt (p, 10, "_easting\",213360],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAS"); add_srs_wkt (p, 12, "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2761\"]]"); p = add_epsg_def (filter, first, last, 2762, "epsg", 2762, "NAD83(HARN) / Arizona Central"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Arizona Central\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",31],PARAMETER[\"central_meridian\",-111.91666666"); add_srs_wkt (p, 9, "66667],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_easting\",213360],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); add_srs_wkt (p, 12, "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2762\"]]"); p = add_epsg_def (filter, first, last, 2763, "epsg", 2763, "NAD83(HARN) / Arizona West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0"); add_proj4text (p, 1, "=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 2, "s=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Arizona West\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",31],PARAMETER[\"central_meridian\",-113.75],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",0.999933333],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",213360],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI"); add_srs_wkt (p, 12, "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2763\"]]"); p = add_epsg_def (filter, first, last, 2764, "epsg", 2764, "NAD83(HARN) / Arkansas North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333"); add_proj4text (p, 1, "333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=400000 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Arkansas North\",GEOGCS[\"NAD83(H"); add_srs_wkt (p, 1, "ARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standa"); add_srs_wkt (p, 8, "rd_parallel_1\",36.23333333333333],PARAMETER[\"standard_"); add_srs_wkt (p, 9, "parallel_2\",34.93333333333333],PARAMETER[\"latitude_of_"); add_srs_wkt (p, 10, "origin\",34.33333333333334],PARAMETER[\"central_meridian"); add_srs_wkt (p, 11, "\",-92],PARAMETER[\"false_easting\",400000],PARAMETER[\""); add_srs_wkt (p, 12, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); add_srs_wkt (p, 14, "\"EPSG\",\"2764\"]]"); p = add_epsg_def (filter, first, last, 2765, "epsg", 2765, "NAD83(HARN) / Arkansas South"); add_proj4text (p, 0, "+proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32"); add_proj4text (p, 1, ".66666666666666 +lon_0=-92 +x_0=400000 +y_0=400000 +ellp"); add_proj4text (p, 2, "s=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Arkansas South\",GEOGCS[\"NAD83(H"); add_srs_wkt (p, 1, "ARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standa"); add_srs_wkt (p, 8, "rd_parallel_1\",34.76666666666667],PARAMETER[\"standard_"); add_srs_wkt (p, 9, "parallel_2\",33.3],PARAMETER[\"latitude_of_origin\",32.6"); add_srs_wkt (p, 10, "6666666666666],PARAMETER[\"central_meridian\",-92],PARAM"); add_srs_wkt (p, 11, "ETER[\"false_easting\",400000],PARAMETER[\"false_northin"); add_srs_wkt (p, 12, "g\",400000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 13, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"2765\"]]"); p = add_epsg_def (filter, first, last, 2766, "epsg", 2766, "NAD83(HARN) / California zone 1"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.3"); add_proj4text (p, 1, "3333333333334 +lon_0=-122 +x_0=2000000 +y_0=500000 +ellp"); add_proj4text (p, 2, "s=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / California zone 1\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 8, "ard_parallel_1\",41.66666666666666],PARAMETER[\"standard"); add_srs_wkt (p, 9, "_parallel_2\",40],PARAMETER[\"latitude_of_origin\",39.33"); add_srs_wkt (p, 10, "333333333334],PARAMETER[\"central_meridian\",-122],PARAM"); add_srs_wkt (p, 11, "ETER[\"false_easting\",2000000],PARAMETER[\"false_northi"); add_srs_wkt (p, 12, "ng\",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 13, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"2766\"]]"); p = add_epsg_def (filter, first, last, 2767, "epsg", 2767, "NAD83(HARN) / California zone 2"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333"); add_proj4text (p, 1, "334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000 +y"); add_proj4text (p, 2, "_0=500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / California zone 2\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 8, "ard_parallel_1\",39.83333333333334],PARAMETER[\"standard"); add_srs_wkt (p, 9, "_parallel_2\",38.33333333333334],PARAMETER[\"latitude_of"); add_srs_wkt (p, 10, "_origin\",37.66666666666666],PARAMETER[\"central_meridia"); add_srs_wkt (p, 11, "n\",-122],PARAMETER[\"false_easting\",2000000],PARAMETER"); add_srs_wkt (p, 12, "[\"false_northing\",500000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 14, "HORITY[\"EPSG\",\"2767\"]]"); p = add_epsg_def (filter, first, last, 2768, "epsg", 2768, "NAD83(HARN) / California zone 3"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666"); add_proj4text (p, 1, "667 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000 +y_0=500000 +"); add_proj4text (p, 2, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / California zone 3\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 8, "ard_parallel_1\",38.43333333333333],PARAMETER[\"standard"); add_srs_wkt (p, 9, "_parallel_2\",37.06666666666667],PARAMETER[\"latitude_of"); add_srs_wkt (p, 10, "_origin\",36.5],PARAMETER[\"central_meridian\",-120.5],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_easting\",2000000],PARAMETER[\"false_no"); add_srs_wkt (p, 12, "rthing\",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 13, "001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 14, "PSG\",\"2768\"]]"); p = add_epsg_def (filter, first, last, 2769, "epsg", 2769, "NAD83(HARN) / California zone 4"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.3333333333333"); add_proj4text (p, 1, "4 +lon_0=-119 +x_0=2000000 +y_0=500000 +ellps=GRS80 +tow"); add_proj4text (p, 2, "gs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / California zone 4\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 8, "ard_parallel_1\",37.25],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",36],PARAMETER[\"latitude_of_origin\",35.33333333333334]"); add_srs_wkt (p, 10, ",PARAMETER[\"central_meridian\",-119],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",2000000],PARAMETER[\"false_northing\",500000],"); add_srs_wkt (p, 12, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 13, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2769\"]]"); p = add_epsg_def (filter, first, last, 2770, "epsg", 2770, "NAD83(HARN) / California zone 5"); add_proj4text (p, 0, "+proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333"); add_proj4text (p, 1, "333 +lat_0=33.5 +lon_0=-118 +x_0=2000000 +y_0=500000 +el"); add_proj4text (p, 2, "lps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / California zone 5\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 8, "ard_parallel_1\",35.46666666666667],PARAMETER[\"standard"); add_srs_wkt (p, 9, "_parallel_2\",34.03333333333333],PARAMETER[\"latitude_of"); add_srs_wkt (p, 10, "_origin\",33.5],PARAMETER[\"central_meridian\",-118],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_easting\",2000000],PARAMETER[\"false_nort"); add_srs_wkt (p, 12, "hing\",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 13, "1\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 14, "G\",\"2770\"]]"); p = add_epsg_def (filter, first, last, 2771, "epsg", 2771, "NAD83(HARN) / California zone 6"); add_proj4text (p, 0, "+proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333"); add_proj4text (p, 1, "333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000"); add_proj4text (p, 2, " +y_0=500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 3, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / California zone 6\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 8, "ard_parallel_1\",33.88333333333333],PARAMETER[\"standard"); add_srs_wkt (p, 9, "_parallel_2\",32.78333333333333],PARAMETER[\"latitude_of"); add_srs_wkt (p, 10, "_origin\",32.16666666666666],PARAMETER[\"central_meridia"); add_srs_wkt (p, 11, "n\",-116.25],PARAMETER[\"false_easting\",2000000],PARAME"); add_srs_wkt (p, 12, "TER[\"false_northing\",500000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 13, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 14, ",AUTHORITY[\"EPSG\",\"2771\"]]"); p = add_epsg_def (filter, first, last, 2772, "epsg", 2772, "NAD83(HARN) / Colorado North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.78333333333333 +lat_2=39.71666666666"); add_proj4text (p, 1, "667 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8"); add_proj4text (p, 2, "289 +y_0=304800.6096 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 3, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Colorado North\",GEOGCS[\"NAD83(H"); add_srs_wkt (p, 1, "ARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standa"); add_srs_wkt (p, 8, "rd_parallel_1\",40.78333333333333],PARAMETER[\"standard_"); add_srs_wkt (p, 9, "parallel_2\",39.71666666666667],PARAMETER[\"latitude_of_"); add_srs_wkt (p, 10, "origin\",39.33333333333334],PARAMETER[\"central_meridian"); add_srs_wkt (p, 11, "\",-105.5],PARAMETER[\"false_easting\",914401.8289],PARA"); add_srs_wkt (p, 12, "METER[\"false_northing\",304800.6096],UNIT[\"metre\",1,A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 14, ",NORTH],AUTHORITY[\"EPSG\",\"2772\"]]"); p = add_epsg_def (filter, first, last, 2773, "epsg", 2773, "NAD83(HARN) / Colorado Central"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.8333333333"); add_proj4text (p, 1, "3334 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +el"); add_proj4text (p, 2, "lps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Colorado Central\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 8, "ard_parallel_1\",39.75],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",38.45],PARAMETER[\"latitude_of_origin\",37.833333333333"); add_srs_wkt (p, 10, "34],PARAMETER[\"central_meridian\",-105.5],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_easting\",914401.8289],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, ",304800.6096],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 13, "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 14, "\",\"2773\"]]"); p = add_epsg_def (filter, first, last, 2774, "epsg", 2774, "NAD83(HARN) / Colorado South"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333"); add_proj4text (p, 1, "333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8"); add_proj4text (p, 2, "289 +y_0=304800.6096 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 3, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Colorado South\",GEOGCS[\"NAD83(H"); add_srs_wkt (p, 1, "ARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standa"); add_srs_wkt (p, 8, "rd_parallel_1\",38.43333333333333],PARAMETER[\"standard_"); add_srs_wkt (p, 9, "parallel_2\",37.23333333333333],PARAMETER[\"latitude_of_"); add_srs_wkt (p, 10, "origin\",36.66666666666666],PARAMETER[\"central_meridian"); add_srs_wkt (p, 11, "\",-105.5],PARAMETER[\"false_easting\",914401.8289],PARA"); add_srs_wkt (p, 12, "METER[\"false_northing\",304800.6096],UNIT[\"metre\",1,A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 14, ",NORTH],AUTHORITY[\"EPSG\",\"2774\"]]"); p = add_epsg_def (filter, first, last, 2775, "epsg", 2775, "NAD83(HARN) / Connecticut"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40"); add_proj4text (p, 1, ".83333333333334 +lon_0=-72.75 +x_0=304800.6096 +y_0=1524"); add_proj4text (p, 2, "00.3048 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no"); add_proj4text (p, 3, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Connecticut\",GEOGCS[\"NAD83(HARN"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPHE"); add_srs_wkt (p, 2, "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTIO"); add_srs_wkt (p, 7, "N[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_"); add_srs_wkt (p, 8, "parallel_1\",41.86666666666667],PARAMETER[\"standard_par"); add_srs_wkt (p, 9, "allel_2\",41.2],PARAMETER[\"latitude_of_origin\",40.8333"); add_srs_wkt (p, 10, "3333333334],PARAMETER[\"central_meridian\",-72.75],PARAM"); add_srs_wkt (p, 11, "ETER[\"false_easting\",304800.6096],PARAMETER[\"false_no"); add_srs_wkt (p, 12, "rthing\",152400.3048],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 14, "[\"EPSG\",\"2775\"]]"); p = add_epsg_def (filter, first, last, 2776, "epsg", 2776, "NAD83(HARN) / Delaware"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999"); add_proj4text (p, 1, "995 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 2, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Delaware\",GEOGCS[\"NAD83(HARN)\""); add_srs_wkt (p, 1, ",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPHEROI"); add_srs_wkt (p, 2, "D[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\""); add_srs_wkt (p, 7, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, "38],PARAMETER[\"central_meridian\",-75.41666666666667],P"); add_srs_wkt (p, 9, "ARAMETER[\"scale_factor\",0.999995],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",200000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],"); add_srs_wkt (p, 12, "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2776\"]]"); p = add_epsg_def (filter, first, last, 2777, "epsg", 2777, "NAD83(HARN) / Florida East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999"); add_proj4text (p, 1, "941177 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Florida East\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",24.33333333333333],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "81],PARAMETER[\"scale_factor\",0.999941177],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",200000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 11, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2777\"]]"); p = add_epsg_def (filter, first, last, 2778, "epsg", 2778, "NAD83(HARN) / Florida West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999"); add_proj4text (p, 1, "941177 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Florida West\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",24.33333333333333],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "82],PARAMETER[\"scale_factor\",0.999941177],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",200000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 11, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2778\"]]"); p = add_epsg_def (filter, first, last, 2779, "epsg", 2779, "NAD83(HARN) / Florida North"); add_proj4text (p, 0, "+proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=2"); add_proj4text (p, 1, "9 +lon_0=-84.5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84="); add_proj4text (p, 2, "0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Florida North\",GEOGCS[\"NAD83(HA"); add_srs_wkt (p, 1, "RN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 8, "_parallel_1\",30.75],PARAMETER[\"standard_parallel_2\",2"); add_srs_wkt (p, 9, "9.58333333333333],PARAMETER[\"latitude_of_origin\",29],P"); add_srs_wkt (p, 10, "ARAMETER[\"central_meridian\",-84.5],PARAMETER[\"false_e"); add_srs_wkt (p, 11, "asting\",600000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 12, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 13, ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2779\"]]"); p = add_epsg_def (filter, first, last, 2780, "epsg", 2780, "NAD83(HARN) / Georgia East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Georgia East\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",30],PARAMETER[\"central_meridian\",-82.166666666666"); add_srs_wkt (p, 9, "67],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false"); add_srs_wkt (p, 10, "_easting\",200000],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAS"); add_srs_wkt (p, 12, "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2780\"]]"); p = add_epsg_def (filter, first, last, 2781, "epsg", 2781, "NAD83(HARN) / Georgia West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=700000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Georgia West\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",30],PARAMETER[\"central_meridian\",-84.166666666666"); add_srs_wkt (p, 9, "67],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false"); add_srs_wkt (p, 10, "_easting\",700000],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAS"); add_srs_wkt (p, 12, "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2781\"]]"); p = add_epsg_def (filter, first, last, 2782, "epsg", 2782, "NAD83(HARN) / Hawaii zone 1"); add_proj4text (p, 0, "+proj=tmerc +lat_0=18.83333333333333 +lon_0=-155.5 +k=0."); add_proj4text (p, 1, "999966667 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0"); add_proj4text (p, 2, ",0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Hawaii zone 1\",GEOGCS[\"NAD83(HA"); add_srs_wkt (p, 1, "RN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",18.83333333333333],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "155.5],PARAMETER[\"scale_factor\",0.999966667],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2782\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def (filter, first, last, 2783, "epsg", 2783, "NAD83(HARN) / Hawaii zone 2"); add_proj4text (p, 0, "+proj=tmerc +lat_0=20.33333333333333 +lon_0=-156.6666666"); add_proj4text (p, 1, "666667 +k=0.999966667 +x_0=500000 +y_0=0 +ellps=GRS80 +t"); add_proj4text (p, 2, "owgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Hawaii zone 2\",GEOGCS[\"NAD83(HA"); add_srs_wkt (p, 1, "RN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",20.33333333333333],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "156.6666666666667],PARAMETER[\"scale_factor\",0.99996666"); add_srs_wkt (p, 10, "7],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, "1\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"2783\"]]"); p = add_epsg_def (filter, first, last, 2784, "epsg", 2784, "NAD83(HARN) / Hawaii zone 3"); add_proj4text (p, 0, "+proj=tmerc +lat_0=21.16666666666667 +lon_0=-158 +k=0.99"); add_proj4text (p, 1, "999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 2, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Hawaii zone 3\",GEOGCS[\"NAD83(HA"); add_srs_wkt (p, 1, "RN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",21.16666666666667],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "158],PARAMETER[\"scale_factor\",0.99999],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2784\"]]"); p = add_epsg_def (filter, first, last, 2785, "epsg", 2785, "NAD83(HARN) / Hawaii zone 4"); add_proj4text (p, 0, "+proj=tmerc +lat_0=21.83333333333333 +lon_0=-159.5 +k=0."); add_proj4text (p, 1, "99999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0"); add_proj4text (p, 2, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Hawaii zone 4\",GEOGCS[\"NAD83(HA"); add_srs_wkt (p, 1, "RN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",21.83333333333333],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "159.5],PARAMETER[\"scale_factor\",0.99999],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_easting\",500000],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 11, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2785\"]]"); p = add_epsg_def (filter, first, last, 2786, "epsg", 2786, "NAD83(HARN) / Hawaii zone 5"); add_proj4text (p, 0, "+proj=tmerc +lat_0=21.66666666666667 +lon_0=-160.1666666"); add_proj4text (p, 1, "666667 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0"); add_proj4text (p, 2, ",0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Hawaii zone 5\",GEOGCS[\"NAD83(HA"); add_srs_wkt (p, 1, "RN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",21.66666666666667],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "160.1666666666667],PARAMETER[\"scale_factor\",1],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2786\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def (filter, first, last, 2787, "epsg", 2787, "NAD83(HARN) / Idaho East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666"); add_proj4text (p, 1, "666667 +k=0.9999473679999999 +x_0=200000 +y_0=0 +ellps=G"); add_proj4text (p, 2, "RS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Idaho East\",GEOGCS[\"NAD83(HARN)"); add_srs_wkt (p, 1, "\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPHER"); add_srs_wkt (p, 2, "OID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",41.66666666666666],PARAMETER[\"central_meridian\",-112."); add_srs_wkt (p, 9, "1666666666667],PARAMETER[\"scale_factor\",0.999947368],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_easting\",200000],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 12, "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"2787\"]]"); p = add_epsg_def (filter, first, last, 2788, "epsg", 2788, "NAD83(HARN) / Idaho Central"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.99"); add_proj4text (p, 1, "99473679999999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84="); add_proj4text (p, 2, "0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Idaho Central\",GEOGCS[\"NAD83(HA"); add_srs_wkt (p, 1, "RN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",41.66666666666666],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "114],PARAMETER[\"scale_factor\",0.999947368],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",500000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 11, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2788\"]]"); p = add_epsg_def (filter, first, last, 2789, "epsg", 2789, "NAD83(HARN) / Idaho West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0"); add_proj4text (p, 1, ".999933333 +x_0=800000 +y_0=0 +ellps=GRS80 +towgs84=0,0,"); add_proj4text (p, 2, "0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Idaho West\",GEOGCS[\"NAD83(HARN)"); add_srs_wkt (p, 1, "\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPHER"); add_srs_wkt (p, 2, "OID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",41.66666666666666],PARAMETER[\"central_meridian\",-115."); add_srs_wkt (p, 9, "75],PARAMETER[\"scale_factor\",0.999933333],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",800000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 11, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2789\"]]"); p = add_epsg_def (filter, first, last, 2790, "epsg", 2790, "NAD83(HARN) / Illinois East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333"); add_proj4text (p, 1, "333333 +k=0.9999749999999999 +x_0=300000 +y_0=0 +ellps=G"); add_proj4text (p, 2, "RS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Illinois East\",GEOGCS[\"NAD83(HA"); add_srs_wkt (p, 1, "RN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",36.66666666666666],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "88.33333333333333],PARAMETER[\"scale_factor\",0.999975],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",300000],PARAMETER[\"false_no"); add_srs_wkt (p, 11, "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"2790\"]]"); p = add_epsg_def (filter, first, last, 2791, "epsg", 2791, "NAD83(HARN) / Illinois West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666"); add_proj4text (p, 1, "666667 +k=0.999941177 +x_0=700000 +y_0=0 +ellps=GRS80 +t"); add_proj4text (p, 2, "owgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Illinois West\",GEOGCS[\"NAD83(HA"); add_srs_wkt (p, 1, "RN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",36.66666666666666],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "90.16666666666667],PARAMETER[\"scale_factor\",0.99994117"); add_srs_wkt (p, 10, "7],PARAMETER[\"false_easting\",700000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, "1\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"2791\"]]"); p = add_epsg_def (filter, first, last, 2792, "epsg", 2792, "NAD83(HARN) / Indiana East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.9"); add_proj4text (p, 1, "99966667 +x_0=100000 +y_0=250000 +ellps=GRS80 +towgs84=0"); add_proj4text (p, 2, ",0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Indiana East\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",37.5],PARAMETER[\"central_meridian\",-85.6666666666"); add_srs_wkt (p, 9, "6667],PARAMETER[\"scale_factor\",0.999966667],PARAMETER["); add_srs_wkt (p, 10, "\"false_easting\",100000],PARAMETER[\"false_northing\",2"); add_srs_wkt (p, 11, "50000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 12, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"27"); add_srs_wkt (p, 13, "92\"]]"); p = add_epsg_def (filter, first, last, 2793, "epsg", 2793, "NAD83(HARN) / Indiana West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.9"); add_proj4text (p, 1, "99966667 +x_0=900000 +y_0=250000 +ellps=GRS80 +towgs84=0"); add_proj4text (p, 2, ",0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Indiana West\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",37.5],PARAMETER[\"central_meridian\",-87.0833333333"); add_srs_wkt (p, 9, "3333],PARAMETER[\"scale_factor\",0.999966667],PARAMETER["); add_srs_wkt (p, 10, "\"false_easting\",900000],PARAMETER[\"false_northing\",2"); add_srs_wkt (p, 11, "50000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 12, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"27"); add_srs_wkt (p, 13, "93\"]]"); p = add_epsg_def (filter, first, last, 2794, "epsg", 2794, "NAD83(HARN) / Iowa North"); add_proj4text (p, 0, "+proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666"); add_proj4text (p, 1, "667 +lat_0=41.5 +lon_0=-93.5 +x_0=1500000 +y_0=1000000 +"); add_proj4text (p, 2, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Iowa North\",GEOGCS[\"NAD83(HARN)"); add_srs_wkt (p, 1, "\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPHER"); add_srs_wkt (p, 2, "OID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 8, "rallel_1\",43.26666666666667],PARAMETER[\"standard_paral"); add_srs_wkt (p, 9, "lel_2\",42.06666666666667],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 10, "n\",41.5],PARAMETER[\"central_meridian\",-93.5],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_easting\",1500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, ",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 13, ",AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "2794\"]]"); p = add_epsg_def (filter, first, last, 2795, "epsg", 2795, "NAD83(HARN) / Iowa South"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666"); add_proj4text (p, 1, "667 +lat_0=40 +lon_0=-93.5 +x_0=500000 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, "80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Iowa South\",GEOGCS[\"NAD83(HARN)"); add_srs_wkt (p, 1, "\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPHER"); add_srs_wkt (p, 2, "OID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 8, "rallel_1\",41.78333333333333],PARAMETER[\"standard_paral"); add_srs_wkt (p, 9, "lel_2\",40.61666666666667],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 10, "n\",40],PARAMETER[\"central_meridian\",-93.5],PARAMETER["); add_srs_wkt (p, 11, "\"false_easting\",500000],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 12, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 13, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2795\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def (filter, first, last, 2796, "epsg", 2796, "NAD83(HARN) / Kansas North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666"); add_proj4text (p, 1, "667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=400000 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Kansas North\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 8, "_parallel_1\",39.78333333333333],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_2\",38.71666666666667],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 10, "igin\",38.33333333333334],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 11, ",-98],PARAMETER[\"false_easting\",400000],PARAMETER[\"fa"); add_srs_wkt (p, 12, "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"2796\"]]"); p = add_epsg_def (filter, first, last, 2797, "epsg", 2797, "NAD83(HARN) / Kansas South"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666"); add_proj4text (p, 1, "667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=400000 +y"); add_proj4text (p, 2, "_0=400000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Kansas South\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 8, "_parallel_1\",38.56666666666667],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_2\",37.26666666666667],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 10, "igin\",36.66666666666666],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 11, ",-98.5],PARAMETER[\"false_easting\",400000],PARAMETER[\""); add_srs_wkt (p, 12, "false_northing\",400000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 14, "RITY[\"EPSG\",\"2797\"]]"); p = add_epsg_def (filter, first, last, 2798, "epsg", 2798, "NAD83(HARN) / Kentucky North"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666"); add_proj4text (p, 1, "667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000 +y_0=0 +ellps="); add_proj4text (p, 2, "GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Kentucky North\",GEOGCS[\"NAD83(H"); add_srs_wkt (p, 1, "ARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standa"); add_srs_wkt (p, 8, "rd_parallel_1\",37.96666666666667],PARAMETER[\"standard_"); add_srs_wkt (p, 9, "parallel_2\",38.96666666666667],PARAMETER[\"latitude_of_"); add_srs_wkt (p, 10, "origin\",37.5],PARAMETER[\"central_meridian\",-84.25],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 12, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 13, ",AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "2798\"]]"); p = add_epsg_def (filter, first, last, 2799, "epsg", 2799, "NAD83(HARN) / Kentucky South"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.93333333333333 +lat_2=36.73333333333"); add_proj4text (p, 1, "333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000 +"); add_proj4text (p, 2, "y_0=500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 3, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Kentucky South\",GEOGCS[\"NAD83(H"); add_srs_wkt (p, 1, "ARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standa"); add_srs_wkt (p, 8, "rd_parallel_1\",37.93333333333333],PARAMETER[\"standard_"); add_srs_wkt (p, 9, "parallel_2\",36.73333333333333],PARAMETER[\"latitude_of_"); add_srs_wkt (p, 10, "origin\",36.33333333333334],PARAMETER[\"central_meridian"); add_srs_wkt (p, 11, "\",-85.75],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 12, "[\"false_northing\",500000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 14, "HORITY[\"EPSG\",\"2799\"]]"); p = add_epsg_def (filter, first, last, 2800, "epsg", 2800, "NAD83(HARN) / Louisiana North"); add_proj4text (p, 0, "+proj=lcc +lat_1=32.66666666666666 +lat_2=31.16666666666"); add_proj4text (p, 1, "667 +lat_0=30.5 +lon_0=-92.5 +x_0=1000000 +y_0=0 +ellps="); add_proj4text (p, 2, "GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Louisiana North\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 8, "ard_parallel_1\",32.66666666666666],PARAMETER[\"standard"); add_srs_wkt (p, 9, "_parallel_2\",31.16666666666667],PARAMETER[\"latitude_of"); add_srs_wkt (p, 10, "_origin\",30.5],PARAMETER[\"central_meridian\",-92.5],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_easting\",1000000],PARAMETER[\"false_nor"); add_srs_wkt (p, 12, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 13, "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 14, "\"2800\"]]"); p = add_epsg_def (filter, first, last, 2801, "epsg", 2801, "NAD83(HARN) / Louisiana South"); add_proj4text (p, 0, "+proj=lcc +lat_1=30.7 +lat_2=29.3 +lat_0=28.5 +lon_0=-91"); add_proj4text (p, 1, ".33333333333333 +x_0=1000000 +y_0=0 +ellps=GRS80 +towgs8"); add_proj4text (p, 2, "4=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Louisiana South\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 8, "ard_parallel_1\",30.7],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",29.3],PARAMETER[\"latitude_of_origin\",28.5],PARAMETER["); add_srs_wkt (p, 10, "\"central_meridian\",-91.33333333333333],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_easting\",1000000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 12, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); add_srs_wkt (p, 13, "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2801\"]]"); p = add_epsg_def (filter, first, last, 2802, "epsg", 2802, "NAD83(HARN) / Maine East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9"); add_proj4text (p, 1, "999 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 2, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Maine East\",GEOGCS[\"NAD83(HARN)"); add_srs_wkt (p, 1, "\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPHER"); add_srs_wkt (p, 2, "OID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",43.66666666666666],PARAMETER[\"central_meridian\",-68.5"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_e"); add_srs_wkt (p, 10, "asting\",300000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2802\"]]"); p = add_epsg_def (filter, first, last, 2803, "epsg", 2803, "NAD83(HARN) / Maine West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666"); add_proj4text (p, 1, "666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +t"); add_proj4text (p, 2, "owgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Maine West\",GEOGCS[\"NAD83(HARN)"); add_srs_wkt (p, 1, "\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPHER"); add_srs_wkt (p, 2, "OID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",42.83333333333334],PARAMETER[\"central_meridian\",-70.1"); add_srs_wkt (p, 9, "6666666666667],PARAMETER[\"scale_factor\",0.999966667],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_easting\",900000],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 12, "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"2803\"]]"); p = add_epsg_def (filter, first, last, 2804, "epsg", 2804, "NAD83(HARN) / Maryland"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.45 +lat_2=38.3 +lat_0=37.66666666666"); add_proj4text (p, 1, "666 +lon_0=-77 +x_0=400000 +y_0=0 +ellps=GRS80 +towgs84="); add_proj4text (p, 2, "0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Maryland\",GEOGCS[\"NAD83(HARN)\""); add_srs_wkt (p, 1, ",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPHEROI"); add_srs_wkt (p, 2, "D[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\""); add_srs_wkt (p, 7, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 8, "llel_1\",39.45],PARAMETER[\"standard_parallel_2\",38.3],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",37.66666666666666],PARA"); add_srs_wkt (p, 10, "METER[\"central_meridian\",-77],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, "g\",400000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 12, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS"); add_srs_wkt (p, 13, "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2804\"]]"); p = add_epsg_def (filter, first, last, 2805, "epsg", 2805, "NAD83(HARN) / Massachusetts Mainland"); add_proj4text (p, 0, "+proj=lcc +lat_1=42.68333333333333 +lat_2=41.71666666666"); add_proj4text (p, 1, "667 +lat_0=41 +lon_0=-71.5 +x_0=200000 +y_0=750000 +ellp"); add_proj4text (p, 2, "s=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Massachusetts Mainland\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netw"); add_srs_wkt (p, 2, "ork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 8, "standard_parallel_1\",42.68333333333333],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_2\",41.71666666666667],PARAMETER[\"latitu"); add_srs_wkt (p, 10, "de_of_origin\",41],PARAMETER[\"central_meridian\",-71.5]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_easting\",200000],PARAMETER[\"false_n"); add_srs_wkt (p, 12, "orthing\",750000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"2805\"]]"); p = add_epsg_def (filter, first, last, 2806, "epsg", 2806, "NAD83(HARN) / Massachusetts Island"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.48333333333333 +lat_2=41.28333333333"); add_proj4text (p, 1, "333 +lat_0=41 +lon_0=-70.5 +x_0=500000 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, "80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Massachusetts Island\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netwo"); add_srs_wkt (p, 2, "rk\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 8, "standard_parallel_1\",41.48333333333333],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_2\",41.28333333333333],PARAMETER[\"latitu"); add_srs_wkt (p, 10, "de_of_origin\",41],PARAMETER[\"central_meridian\",-70.5]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 12, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 13, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"2806\"]]"); p = add_epsg_def (filter, first, last, 2807, "epsg", 2807, "NAD83(HARN) / Michigan North"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.08333333333334 +lat_2=45.48333333333"); add_proj4text (p, 1, "333 +lat_0=44.78333333333333 +lon_0=-87 +x_0=8000000 +y_"); add_proj4text (p, 2, "0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_def"); add_proj4text (p, 3, "s"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Michigan North\",GEOGCS[\"NAD83(H"); add_srs_wkt (p, 1, "ARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standa"); add_srs_wkt (p, 8, "rd_parallel_1\",47.08333333333334],PARAMETER[\"standard_"); add_srs_wkt (p, 9, "parallel_2\",45.48333333333333],PARAMETER[\"latitude_of_"); add_srs_wkt (p, 10, "origin\",44.78333333333333],PARAMETER[\"central_meridian"); add_srs_wkt (p, 11, "\",-87],PARAMETER[\"false_easting\",8000000],PARAMETER[\""); add_srs_wkt (p, 12, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); add_srs_wkt (p, 14, "\"EPSG\",\"2807\"]]"); p = add_epsg_def (filter, first, last, 2808, "epsg", 2808, "NAD83(HARN) / Michigan Central"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.7 +lat_2=44.18333333333333 +lat_0=43"); add_proj4text (p, 1, ".31666666666667 +lon_0=-84.36666666666666 +x_0=6000000 +"); add_proj4text (p, 2, "y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 3, "efs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Michigan Central\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 8, "ard_parallel_1\",45.7],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",44.18333333333333],PARAMETER[\"latitude_of_origin\",43."); add_srs_wkt (p, 10, "31666666666667],PARAMETER[\"central_meridian\",-84.36666"); add_srs_wkt (p, 11, "666666666],PARAMETER[\"false_easting\",6000000],PARAMETE"); add_srs_wkt (p, 12, "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR"); add_srs_wkt (p, 14, "ITY[\"EPSG\",\"2808\"]]"); p = add_epsg_def (filter, first, last, 2809, "epsg", 2809, "NAD83(HARN) / Michigan South"); add_proj4text (p, 0, "+proj=lcc +lat_1=43.66666666666666 +lat_2=42.1 +lat_0=41"); add_proj4text (p, 1, ".5 +lon_0=-84.36666666666666 +x_0=4000000 +y_0=0 +ellps="); add_proj4text (p, 2, "GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Michigan South\",GEOGCS[\"NAD83(H"); add_srs_wkt (p, 1, "ARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standa"); add_srs_wkt (p, 8, "rd_parallel_1\",43.66666666666666],PARAMETER[\"standard_"); add_srs_wkt (p, 9, "parallel_2\",42.1],PARAMETER[\"latitude_of_origin\",41.5"); add_srs_wkt (p, 10, "],PARAMETER[\"central_meridian\",-84.36666666666666],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_easting\",4000000],PARAMETER[\"false_nort"); add_srs_wkt (p, 12, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 13, ",AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "2809\"]]"); p = add_epsg_def (filter, first, last, 2810, "epsg", 2810, "NAD83(HARN) / Minnesota North"); add_proj4text (p, 0, "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333"); add_proj4text (p, 1, "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000 +y"); add_proj4text (p, 2, "_0=100000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Minnesota North\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 8, "ard_parallel_1\",48.63333333333333],PARAMETER[\"standard"); add_srs_wkt (p, 9, "_parallel_2\",47.03333333333333],PARAMETER[\"latitude_of"); add_srs_wkt (p, 10, "_origin\",46.5],PARAMETER[\"central_meridian\",-93.1],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_easting\",800000],PARAMETER[\"false_nort"); add_srs_wkt (p, 12, "hing\",100000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 13, "1\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 14, "G\",\"2810\"]]"); p = add_epsg_def (filter, first, last, 2811, "epsg", 2811, "NAD83(HARN) / Minnesota Central"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=4"); add_proj4text (p, 1, "5 +lon_0=-94.25 +x_0=800000 +y_0=100000 +ellps=GRS80 +to"); add_proj4text (p, 2, "wgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Minnesota Central\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 8, "ard_parallel_1\",47.05],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",45.61666666666667],PARAMETER[\"latitude_of_origin\",45]"); add_srs_wkt (p, 10, ",PARAMETER[\"central_meridian\",-94.25],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_easting\",800000],PARAMETER[\"false_northing\",100000]"); add_srs_wkt (p, 12, ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X"); add_srs_wkt (p, 13, "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2811\"]]"); p = add_epsg_def (filter, first, last, 2812, "epsg", 2812, "NAD83(HARN) / Minnesota South"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333"); add_proj4text (p, 1, "333 +lat_0=43 +lon_0=-94 +x_0=800000 +y_0=100000 +ellps="); add_proj4text (p, 2, "GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Minnesota South\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 8, "ard_parallel_1\",45.21666666666667],PARAMETER[\"standard"); add_srs_wkt (p, 9, "_parallel_2\",43.78333333333333],PARAMETER[\"latitude_of"); add_srs_wkt (p, 10, "_origin\",43],PARAMETER[\"central_meridian\",-94],PARAME"); add_srs_wkt (p, 11, "TER[\"false_easting\",800000],PARAMETER[\"false_northing"); add_srs_wkt (p, 12, "\",100000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 13, "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 14, "\"2812\"]]"); p = add_epsg_def (filter, first, last, 2813, "epsg", 2813, "NAD83(HARN) / Mississippi East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.9"); add_proj4text (p, 1, "9995 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Mississippi East\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",29.5],PARAMETER[\"central_meridian\",-88.8333333"); add_srs_wkt (p, 9, "3333333],PARAMETER[\"scale_factor\",0.99995],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",300000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 11, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2813\"]]"); p = add_epsg_def (filter, first, last, 2814, "epsg", 2814, "NAD83(HARN) / Mississippi West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.9"); add_proj4text (p, 1, "9995 +x_0=700000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Mississippi West\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",29.5],PARAMETER[\"central_meridian\",-90.3333333"); add_srs_wkt (p, 9, "3333333],PARAMETER[\"scale_factor\",0.99995],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",700000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 11, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2814\"]]"); p = add_epsg_def (filter, first, last, 2815, "epsg", 2815, "NAD83(HARN) / Missouri East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-90.5 +k=0.9"); add_proj4text (p, 1, "99933333 +x_0=250000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,"); add_proj4text (p, 2, "0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Missouri East\",GEOGCS[\"NAD83(HA"); add_srs_wkt (p, 1, "RN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",35.83333333333334],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "90.5],PARAMETER[\"scale_factor\",0.999933333],PARAMETER["); add_srs_wkt (p, 10, "\"false_easting\",250000],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 11, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2815\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def (filter, first, last, 2816, "epsg", 2816, "NAD83(HARN) / Missouri Central"); add_proj4text (p, 0, "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-92.5 +k=0.9"); add_proj4text (p, 1, "99933333 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,"); add_proj4text (p, 2, "0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Missouri Central\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",35.83333333333334],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",-92.5],PARAMETER[\"scale_factor\",0.999933333],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2816\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def (filter, first, last, 2817, "epsg", 2817, "NAD83(HARN) / Missouri West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36.16666666666666 +lon_0=-94.5 +k=0.9"); add_proj4text (p, 1, "99941177 +x_0=850000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,"); add_proj4text (p, 2, "0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Missouri West\",GEOGCS[\"NAD83(HA"); add_srs_wkt (p, 1, "RN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",36.16666666666666],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "94.5],PARAMETER[\"scale_factor\",0.999941177],PARAMETER["); add_srs_wkt (p, 10, "\"false_easting\",850000],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 11, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2817\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def (filter, first, last, 2818, "epsg", 2818, "NAD83(HARN) / Montana"); add_proj4text (p, 0, "+proj=lcc +lat_1=49 +lat_2=45 +lat_0=44.25 +lon_0=-109.5"); add_proj4text (p, 1, " +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 "); add_proj4text (p, 2, "+units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Montana\",GEOGCS[\"NAD83(HARN)\","); add_srs_wkt (p, 1, "DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"615"); add_srs_wkt (p, 4, "2\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"L"); add_srs_wkt (p, 7, "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 8, "lel_1\",49],PARAMETER[\"standard_parallel_2\",45],PARAME"); add_srs_wkt (p, 9, "TER[\"latitude_of_origin\",44.25],PARAMETER[\"central_me"); add_srs_wkt (p, 10, "ridian\",-109.5],PARAMETER[\"false_easting\",600000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"2818\"]]"); p = add_epsg_def (filter, first, last, 2819, "epsg", 2819, "NAD83(HARN) / Nebraska"); add_proj4text (p, 0, "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +"); add_proj4text (p, 1, "lon_0=-100 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,"); add_proj4text (p, 2, "0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Nebraska\",GEOGCS[\"NAD83(HARN)\""); add_srs_wkt (p, 1, ",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPHEROI"); add_srs_wkt (p, 2, "D[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\""); add_srs_wkt (p, 7, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 8, "llel_1\",43],PARAMETER[\"standard_parallel_2\",40],PARAM"); add_srs_wkt (p, 9, "ETER[\"latitude_of_origin\",39.83333333333334],PARAMETER"); add_srs_wkt (p, 10, "[\"central_meridian\",-100],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"2819\"]]"); p = add_epsg_def (filter, first, last, 2820, "epsg", 2820, "NAD83(HARN) / Nevada East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0."); add_proj4text (p, 1, "9999 +x_0=200000 +y_0=8000000 +ellps=GRS80 +towgs84=0,0,"); add_proj4text (p, 2, "0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Nevada East\",GEOGCS[\"NAD83(HARN"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPHE"); add_srs_wkt (p, 2, "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTIO"); add_srs_wkt (p, 7, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 8, "n\",34.75],PARAMETER[\"central_meridian\",-115.583333333"); add_srs_wkt (p, 9, "3333],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",200000],PARAMETER[\"false_northing\",800000"); add_srs_wkt (p, 11, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2820\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def (filter, first, last, 2821, "epsg", 2821, "NAD83(HARN) / Nevada Central"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0."); add_proj4text (p, 1, "9999 +x_0=500000 +y_0=6000000 +ellps=GRS80 +towgs84=0,0,"); add_proj4text (p, 2, "0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Nevada Central\",GEOGCS[\"NAD83(H"); add_srs_wkt (p, 1, "ARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 8, "igin\",34.75],PARAMETER[\"central_meridian\",-116.666666"); add_srs_wkt (p, 9, "6666667],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",500000],PARAMETER[\"false_northing\",600"); add_srs_wkt (p, 11, "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 12, "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"282"); add_srs_wkt (p, 13, "1\"]]"); p = add_epsg_def (filter, first, last, 2822, "epsg", 2822, "NAD83(HARN) / Nevada West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0."); add_proj4text (p, 1, "9999 +x_0=800000 +y_0=4000000 +ellps=GRS80 +towgs84=0,0,"); add_proj4text (p, 2, "0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Nevada West\",GEOGCS[\"NAD83(HARN"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPHE"); add_srs_wkt (p, 2, "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTIO"); add_srs_wkt (p, 7, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 8, "n\",34.75],PARAMETER[\"central_meridian\",-118.583333333"); add_srs_wkt (p, 9, "3333],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",800000],PARAMETER[\"false_northing\",400000"); add_srs_wkt (p, 11, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2822\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def (filter, first, last, 2823, "epsg", 2823, "NAD83(HARN) / New Hampshire"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.9"); add_proj4text (p, 1, "99966667 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,"); add_proj4text (p, 2, "0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / New Hampshire\",GEOGCS[\"NAD83(HA"); add_srs_wkt (p, 1, "RN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",42.5],PARAMETER[\"central_meridian\",-71.6666666666"); add_srs_wkt (p, 9, "6667],PARAMETER[\"scale_factor\",0.999966667],PARAMETER["); add_srs_wkt (p, 10, "\"false_easting\",300000],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 11, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2823\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def (filter, first, last, 2824, "epsg", 2824, "NAD83(HARN) / New Jersey"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9"); add_proj4text (p, 1, "999 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 2, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / New Jersey\",GEOGCS[\"NAD83(HARN)"); add_srs_wkt (p, 1, "\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPHER"); add_srs_wkt (p, 2, "OID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",38.83333333333334],PARAMETER[\"central_meridian\",-74.5"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_e"); add_srs_wkt (p, 10, "asting\",150000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2824\"]]"); p = add_epsg_def (filter, first, last, 2825, "epsg", 2825, "NAD83(HARN) / New Mexico East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999"); add_proj4text (p, 1, "909091 +x_0=165000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / New Mexico East\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",31],PARAMETER[\"central_meridian\",-104.33333333"); add_srs_wkt (p, 9, "33333],PARAMETER[\"scale_factor\",0.999909091],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",165000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2825\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def (filter, first, last, 2826, "epsg", 2826, "NAD83(HARN) / New Mexico Central"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=5000"); add_proj4text (p, 1, "00 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +"); add_proj4text (p, 2, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / New Mexico Central\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network"); add_srs_wkt (p, 2, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",31],PARAMETER[\"central_meridian\",-106.25],P"); add_srs_wkt (p, 9, "ARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 12, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2826\"]]"); p = add_epsg_def (filter, first, last, 2827, "epsg", 2827, "NAD83(HARN) / New Mexico West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999"); add_proj4text (p, 1, "916667 +x_0=830000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / New Mexico West\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",31],PARAMETER[\"central_meridian\",-107.83333333"); add_srs_wkt (p, 9, "33333],PARAMETER[\"scale_factor\",0.999916667],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",830000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2827\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def (filter, first, last, 2828, "epsg", 2828, "NAD83(HARN) / New York East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9"); add_proj4text (p, 1, "999 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 2, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / New York East\",GEOGCS[\"NAD83(HA"); add_srs_wkt (p, 1, "RN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",38.83333333333334],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "74.5],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",150000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2828\"]]"); p = add_epsg_def (filter, first, last, 2829, "epsg", 2829, "NAD83(HARN) / New York Central"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.999"); add_proj4text (p, 1, "9375 +x_0=250000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / New York Central\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",40],PARAMETER[\"central_meridian\",-76.583333333"); add_srs_wkt (p, 9, "33333],PARAMETER[\"scale_factor\",0.9999375],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",250000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 11, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2829\"]]"); } #endif /* full EPSG initialization enabled/disabled */ libspatialite-4.1.1/src/srsinit/epsg_inlined_12.c0000664000175000017500000046147212163502133016670 00000000000000/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_12 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def (filter, first, last, 3244, "epsg", 3244, "WGS 84 / SCAR IMW SS10-12"); add_proj4text (p, 0, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=-117 +x_0=0 +y_0=0 +datum=WGS84 "); add_proj4text (p, 2, "+units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SS10-12\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-72.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-75.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",-117],PARAMETER["); add_srs_wkt (p, 10, "\"false_easting\",0],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 12, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "3244\"]]"); p = add_epsg_def (filter, first, last, 3245, "epsg", 3245, "WGS 84 / SCAR IMW SS13-15"); add_proj4text (p, 0, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=-99 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SS13-15\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-72.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-75.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",-99],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "245\"]]"); p = add_epsg_def (filter, first, last, 3246, "epsg", 3246, "WGS 84 / SCAR IMW SS16-18"); add_proj4text (p, 0, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=-81 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SS16-18\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-72.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-75.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",-81],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "246\"]]"); p = add_epsg_def (filter, first, last, 3247, "epsg", 3247, "WGS 84 / SCAR IMW SS19-21"); add_proj4text (p, 0, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=-63 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SS19-21\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-72.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-75.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",-63],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "247\"]]"); p = add_epsg_def (filter, first, last, 3248, "epsg", 3248, "WGS 84 / SCAR IMW SS25-27"); add_proj4text (p, 0, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=-27 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SS25-27\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-72.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-75.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",-27],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "248\"]]"); p = add_epsg_def (filter, first, last, 3249, "epsg", 3249, "WGS 84 / SCAR IMW SS28-30"); add_proj4text (p, 0, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=-9 +x_0=0 +y_0=0 +datum=WGS84 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SS28-30\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-72.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-75.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",-9],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "249\"]]"); p = add_epsg_def (filter, first, last, 3250, "epsg", 3250, "WGS 84 / SCAR IMW SS31-33"); add_proj4text (p, 0, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=9 +x_0=0 +y_0=0 +datum=WGS84 +un"); add_proj4text (p, 2, "its=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SS31-33\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-72.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-75.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",9],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"325"); add_srs_wkt (p, 13, "0\"]]"); p = add_epsg_def (filter, first, last, 3251, "epsg", 3251, "WGS 84 / SCAR IMW SS34-36"); add_proj4text (p, 0, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=27 +x_0=0 +y_0=0 +datum=WGS84 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SS34-36\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-72.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-75.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",27],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "251\"]]"); p = add_epsg_def (filter, first, last, 3252, "epsg", 3252, "WGS 84 / SCAR IMW SS37-39"); add_proj4text (p, 0, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=45 +x_0=0 +y_0=0 +datum=WGS84 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SS37-39\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-72.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-75.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",45],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "252\"]]"); p = add_epsg_def (filter, first, last, 3253, "epsg", 3253, "WGS 84 / SCAR IMW SS40-42"); add_proj4text (p, 0, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=63 +x_0=0 +y_0=0 +datum=WGS84 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SS40-42\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-72.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-75.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",63],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "253\"]]"); p = add_epsg_def (filter, first, last, 3254, "epsg", 3254, "WGS 84 / SCAR IMW SS43-45"); add_proj4text (p, 0, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=81 +x_0=0 +y_0=0 +datum=WGS84 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SS43-45\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-72.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-75.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",81],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "254\"]]"); p = add_epsg_def (filter, first, last, 3255, "epsg", 3255, "WGS 84 / SCAR IMW SS46-48"); add_proj4text (p, 0, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=99 +x_0=0 +y_0=0 +datum=WGS84 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SS46-48\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-72.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-75.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",99],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "255\"]]"); p = add_epsg_def (filter, first, last, 3256, "epsg", 3256, "WGS 84 / SCAR IMW SS49-51"); add_proj4text (p, 0, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=117 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SS49-51\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-72.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-75.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",117],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "256\"]]"); p = add_epsg_def (filter, first, last, 3257, "epsg", 3257, "WGS 84 / SCAR IMW SS52-54"); add_proj4text (p, 0, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=135 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SS52-54\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-72.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-75.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",135],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "257\"]]"); p = add_epsg_def (filter, first, last, 3258, "epsg", 3258, "WGS 84 / SCAR IMW SS55-57"); add_proj4text (p, 0, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=153 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SS55-57\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-72.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-75.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",153],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "258\"]]"); p = add_epsg_def (filter, first, last, 3259, "epsg", 3259, "WGS 84 / SCAR IMW SS58-60"); add_proj4text (p, 0, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=171 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SS58-60\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-72.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-75.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",171],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "259\"]]"); p = add_epsg_def (filter, first, last, 3260, "epsg", 3260, "WGS 84 / SCAR IMW ST01-04"); add_proj4text (p, 0, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=-168 +x_0=0 +y_0=0 +datum=WGS84 "); add_proj4text (p, 2, "+units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW ST01-04\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-76.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-79.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",-168],PARAMETER["); add_srs_wkt (p, 10, "\"false_easting\",0],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 12, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "3260\"]]"); p = add_epsg_def (filter, first, last, 3261, "epsg", 3261, "WGS 84 / SCAR IMW ST05-08"); add_proj4text (p, 0, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=-144 +x_0=0 +y_0=0 +datum=WGS84 "); add_proj4text (p, 2, "+units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW ST05-08\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-76.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-79.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",-144],PARAMETER["); add_srs_wkt (p, 10, "\"false_easting\",0],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 12, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "3261\"]]"); p = add_epsg_def (filter, first, last, 3262, "epsg", 3262, "WGS 84 / SCAR IMW ST09-12"); add_proj4text (p, 0, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=-120 +x_0=0 +y_0=0 +datum=WGS84 "); add_proj4text (p, 2, "+units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW ST09-12\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-76.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-79.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",-120],PARAMETER["); add_srs_wkt (p, 10, "\"false_easting\",0],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 12, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "3262\"]]"); p = add_epsg_def (filter, first, last, 3263, "epsg", 3263, "WGS 84 / SCAR IMW ST13-16"); add_proj4text (p, 0, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=-96 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW ST13-16\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-76.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-79.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",-96],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "263\"]]"); p = add_epsg_def (filter, first, last, 3264, "epsg", 3264, "WGS 84 / SCAR IMW ST17-20"); add_proj4text (p, 0, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=-72 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW ST17-20\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-76.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-79.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",-72],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "264\"]]"); p = add_epsg_def (filter, first, last, 3265, "epsg", 3265, "WGS 84 / SCAR IMW ST21-24"); add_proj4text (p, 0, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=-48 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW ST21-24\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-76.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-79.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",-48],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "265\"]]"); p = add_epsg_def (filter, first, last, 3266, "epsg", 3266, "WGS 84 / SCAR IMW ST25-28"); add_proj4text (p, 0, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=-24 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW ST25-28\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-76.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-79.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",-24],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "266\"]]"); p = add_epsg_def (filter, first, last, 3267, "epsg", 3267, "WGS 84 / SCAR IMW ST29-32"); add_proj4text (p, 0, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=0 +x_0=0 +y_0=0 +datum=WGS84 +un"); add_proj4text (p, 2, "its=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW ST29-32\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-76.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-79.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",0],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"326"); add_srs_wkt (p, 13, "7\"]]"); p = add_epsg_def (filter, first, last, 3268, "epsg", 3268, "WGS 84 / SCAR IMW ST33-36"); add_proj4text (p, 0, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=24 +x_0=0 +y_0=0 +datum=WGS84 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW ST33-36\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-76.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-79.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",24],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "268\"]]"); p = add_epsg_def (filter, first, last, 3269, "epsg", 3269, "WGS 84 / SCAR IMW ST37-40"); add_proj4text (p, 0, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=48 +x_0=0 +y_0=0 +datum=WGS84 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW ST37-40\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-76.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-79.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",48],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "269\"]]"); p = add_epsg_def (filter, first, last, 3270, "epsg", 3270, "WGS 84 / SCAR IMW ST41-44"); add_proj4text (p, 0, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=72 +x_0=0 +y_0=0 +datum=WGS84 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW ST41-44\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-76.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-79.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",72],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "270\"]]"); p = add_epsg_def (filter, first, last, 3271, "epsg", 3271, "WGS 84 / SCAR IMW ST45-48"); add_proj4text (p, 0, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=96 +x_0=0 +y_0=0 +datum=WGS84 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW ST45-48\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-76.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-79.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",96],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "271\"]]"); p = add_epsg_def (filter, first, last, 3272, "epsg", 3272, "WGS 84 / SCAR IMW ST49-52"); add_proj4text (p, 0, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=120 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW ST49-52\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-76.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-79.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",120],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "272\"]]"); p = add_epsg_def (filter, first, last, 3273, "epsg", 3273, "WGS 84 / SCAR IMW ST53-56"); add_proj4text (p, 0, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=144 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW ST53-56\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-76.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-79.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",144],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "273\"]]"); p = add_epsg_def (filter, first, last, 3274, "epsg", 3274, "WGS 84 / SCAR IMW ST57-60"); add_proj4text (p, 0, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=168 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW ST57-60\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 7, "llel_1\",-76.66666666666667],PARAMETER[\"standard_parall"); add_srs_wkt (p, 8, "el_2\",-79.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",-90],PARAMETER[\"central_meridian\",168],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "274\"]]"); p = add_epsg_def (filter, first, last, 3275, "epsg", 3275, "WGS 84 / SCAR IMW SU01-05"); add_proj4text (p, 0, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0"); add_proj4text (p, 1, "=-165 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SU01-05\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Polar_Stereographic\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 7, "-80.23861111111111],PARAMETER[\"central_meridian\",-165]"); add_srs_wkt (p, 8, ",PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting"); add_srs_wkt (p, 9, "\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 10, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS"); add_srs_wkt (p, 11, "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3275\"]]"); p = add_epsg_def (filter, first, last, 3276, "epsg", 3276, "WGS 84 / SCAR IMW SU06-10"); add_proj4text (p, 0, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0"); add_proj4text (p, 1, "=-135 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SU06-10\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Polar_Stereographic\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 7, "-80.23861111111111],PARAMETER[\"central_meridian\",-135]"); add_srs_wkt (p, 8, ",PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting"); add_srs_wkt (p, 9, "\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 10, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS"); add_srs_wkt (p, 11, "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3276\"]]"); p = add_epsg_def (filter, first, last, 3277, "epsg", 3277, "WGS 84 / SCAR IMW SU11-15"); add_proj4text (p, 0, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0"); add_proj4text (p, 1, "=-105 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SU11-15\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Polar_Stereographic\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 7, "-80.23861111111111],PARAMETER[\"central_meridian\",-105]"); add_srs_wkt (p, 8, ",PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting"); add_srs_wkt (p, 9, "\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 10, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS"); add_srs_wkt (p, 11, "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3277\"]]"); p = add_epsg_def (filter, first, last, 3278, "epsg", 3278, "WGS 84 / SCAR IMW SU16-20"); add_proj4text (p, 0, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0"); add_proj4text (p, 1, "=-75 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SU16-20\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Polar_Stereographic\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 7, "-80.23861111111111],PARAMETER[\"central_meridian\",-75],"); add_srs_wkt (p, 8, "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 9, ",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 10, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 11, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"3278\"]]"); p = add_epsg_def (filter, first, last, 3279, "epsg", 3279, "WGS 84 / SCAR IMW SU21-25"); add_proj4text (p, 0, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0"); add_proj4text (p, 1, "=-45 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SU21-25\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Polar_Stereographic\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 7, "-80.23861111111111],PARAMETER[\"central_meridian\",-45],"); add_srs_wkt (p, 8, "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 9, ",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 10, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 11, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"3279\"]]"); p = add_epsg_def (filter, first, last, 3280, "epsg", 3280, "WGS 84 / SCAR IMW SU26-30"); add_proj4text (p, 0, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0"); add_proj4text (p, 1, "=-15 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SU26-30\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Polar_Stereographic\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 7, "-80.23861111111111],PARAMETER[\"central_meridian\",-15],"); add_srs_wkt (p, 8, "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 9, ",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 10, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 11, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"3280\"]]"); p = add_epsg_def (filter, first, last, 3281, "epsg", 3281, "WGS 84 / SCAR IMW SU31-35"); add_proj4text (p, 0, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0"); add_proj4text (p, 1, "=15 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SU31-35\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Polar_Stereographic\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 7, "-80.23861111111111],PARAMETER[\"central_meridian\",15],P"); add_srs_wkt (p, 8, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 9, ",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 10, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 11, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"3281\"]]"); p = add_epsg_def (filter, first, last, 3282, "epsg", 3282, "WGS 84 / SCAR IMW SU36-40"); add_proj4text (p, 0, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0"); add_proj4text (p, 1, "=45 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SU36-40\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Polar_Stereographic\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 7, "-80.23861111111111],PARAMETER[\"central_meridian\",45],P"); add_srs_wkt (p, 8, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 9, ",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 10, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 11, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"3282\"]]"); p = add_epsg_def (filter, first, last, 3283, "epsg", 3283, "WGS 84 / SCAR IMW SU41-45"); add_proj4text (p, 0, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0"); add_proj4text (p, 1, "=75 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SU41-45\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Polar_Stereographic\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 7, "-80.23861111111111],PARAMETER[\"central_meridian\",75],P"); add_srs_wkt (p, 8, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 9, ",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 10, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 11, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"3283\"]]"); p = add_epsg_def (filter, first, last, 3284, "epsg", 3284, "WGS 84 / SCAR IMW SU46-50"); add_proj4text (p, 0, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0"); add_proj4text (p, 1, "=105 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SU46-50\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Polar_Stereographic\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 7, "-80.23861111111111],PARAMETER[\"central_meridian\",105],"); add_srs_wkt (p, 8, "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 9, ",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 10, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 11, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"3284\"]]"); p = add_epsg_def (filter, first, last, 3285, "epsg", 3285, "WGS 84 / SCAR IMW SU51-55"); add_proj4text (p, 0, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0"); add_proj4text (p, 1, "=135 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SU51-55\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Polar_Stereographic\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 7, "-80.23861111111111],PARAMETER[\"central_meridian\",135],"); add_srs_wkt (p, 8, "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 9, ",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 10, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 11, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"3285\"]]"); p = add_epsg_def (filter, first, last, 3286, "epsg", 3286, "WGS 84 / SCAR IMW SU56-60"); add_proj4text (p, 0, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0"); add_proj4text (p, 1, "=165 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SU56-60\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Polar_Stereographic\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 7, "-80.23861111111111],PARAMETER[\"central_meridian\",165],"); add_srs_wkt (p, 8, "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 9, ",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 10, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 11, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"3286\"]]"); p = add_epsg_def (filter, first, last, 3287, "epsg", 3287, "WGS 84 / SCAR IMW SV01-10"); add_proj4text (p, 0, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0"); add_proj4text (p, 1, "=-150 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SV01-10\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Polar_Stereographic\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 7, "-80.23861111111111],PARAMETER[\"central_meridian\",-150]"); add_srs_wkt (p, 8, ",PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting"); add_srs_wkt (p, 9, "\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 10, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS"); add_srs_wkt (p, 11, "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3287\"]]"); p = add_epsg_def (filter, first, last, 3288, "epsg", 3288, "WGS 84 / SCAR IMW SV11-20"); add_proj4text (p, 0, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0"); add_proj4text (p, 1, "=-90 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SV11-20\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Polar_Stereographic\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 7, "-80.23861111111111],PARAMETER[\"central_meridian\",-90],"); add_srs_wkt (p, 8, "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 9, ",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 10, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 11, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"3288\"]]"); p = add_epsg_def (filter, first, last, 3289, "epsg", 3289, "WGS 84 / SCAR IMW SV21-30"); add_proj4text (p, 0, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0"); add_proj4text (p, 1, "=-30 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SV21-30\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Polar_Stereographic\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 7, "-80.23861111111111],PARAMETER[\"central_meridian\",-30],"); add_srs_wkt (p, 8, "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 9, ",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 10, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 11, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"3289\"]]"); p = add_epsg_def (filter, first, last, 3290, "epsg", 3290, "WGS 84 / SCAR IMW SV31-40"); add_proj4text (p, 0, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0"); add_proj4text (p, 1, "=30 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SV31-40\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Polar_Stereographic\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 7, "-80.23861111111111],PARAMETER[\"central_meridian\",30],P"); add_srs_wkt (p, 8, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 9, ",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 10, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 11, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"3290\"]]"); p = add_epsg_def (filter, first, last, 3291, "epsg", 3291, "WGS 84 / SCAR IMW SV41-50"); add_proj4text (p, 0, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0"); add_proj4text (p, 1, "=90 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SV41-50\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Polar_Stereographic\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 7, "-80.23861111111111],PARAMETER[\"central_meridian\",90],P"); add_srs_wkt (p, 8, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 9, ",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 10, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 11, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"3291\"]]"); p = add_epsg_def (filter, first, last, 3292, "epsg", 3292, "WGS 84 / SCAR IMW SV51-60"); add_proj4text (p, 0, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0"); add_proj4text (p, 1, "=150 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SV51-60\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Polar_Stereographic\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 7, "-80.23861111111111],PARAMETER[\"central_meridian\",150],"); add_srs_wkt (p, 8, "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 9, ",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 10, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 11, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"3292\"]]"); p = add_epsg_def (filter, first, last, 3293, "epsg", 3293, "WGS 84 / SCAR IMW SW01-60"); add_proj4text (p, 0, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0"); add_proj4text (p, 1, "=0 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SW01-60\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 6, "Polar_Stereographic\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 7, "-80.23861111111111],PARAMETER[\"central_meridian\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 9, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 10, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 11, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"3293\"]]"); p = add_epsg_def (filter, first, last, 3294, "epsg", 3294, "WGS 84 / USGS Transantarctic Mountains"); add_proj4text (p, 0, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.333333333"); add_proj4text (p, 1, "33333 +lat_0=-78 +lon_0=162 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / USGS Transantarctic Mountains\",GEOGCS"); add_srs_wkt (p, 1, "[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",63781"); add_srs_wkt (p, 2, "37,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]]"); add_srs_wkt (p, 6, ",PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 7, "standard_parallel_1\",-76.66666666666667],PARAMETER[\"st"); add_srs_wkt (p, 8, "andard_parallel_2\",-79.33333333333333],PARAMETER[\"lati"); add_srs_wkt (p, 9, "tude_of_origin\",-78],PARAMETER[\"central_meridian\",162"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",0],PARAMETER[\"false_north"); add_srs_wkt (p, 11, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 12, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 13, "Y[\"EPSG\",\"3294\"]]"); p = add_epsg_def (filter, first, last, 3296, "epsg", 3296, "RGPF / UTM zone 5S"); add_proj4text (p, 0, "+proj=utm +zone=5 +south +ellps=GRS80 +towgs84=0.072,-0."); add_proj4text (p, 1, "507,-0.245,-0.0183,0.0003,-0.007,-0.0093 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"RGPF / UTM zone 5S\",GEOGCS[\"RGPF\",DATUM[\"Re"); add_srs_wkt (p, 1, "seau_Geodesique_de_la_Polynesie_Francaise\",SPHEROID[\"G"); add_srs_wkt (p, 2, "RS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"701"); add_srs_wkt (p, 3, "9\"]],TOWGS84[0.072,-0.507,-0.245,-0.0183,0.0003,-0.007,"); add_srs_wkt (p, 4, "-0.0093],AUTHORITY[\"EPSG\",\"6687\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 5, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 6, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 7, "EPSG\",\"4687\"]],PROJECTION[\"Transverse_Mercator\"],PA"); add_srs_wkt (p, 8, "RAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_me"); add_srs_wkt (p, 9, "ridian\",-153],PARAMETER[\"scale_factor\",0.9996],PARAME"); add_srs_wkt (p, 10, "TER[\"false_easting\",500000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, "\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"3296\"]]"); p = add_epsg_def (filter, first, last, 3297, "epsg", 3297, "RGPF / UTM zone 6S"); add_proj4text (p, 0, "+proj=utm +zone=6 +south +ellps=GRS80 +towgs84=0.072,-0."); add_proj4text (p, 1, "507,-0.245,-0.0183,0.0003,-0.007,-0.0093 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"RGPF / UTM zone 6S\",GEOGCS[\"RGPF\",DATUM[\"Re"); add_srs_wkt (p, 1, "seau_Geodesique_de_la_Polynesie_Francaise\",SPHEROID[\"G"); add_srs_wkt (p, 2, "RS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"701"); add_srs_wkt (p, 3, "9\"]],TOWGS84[0.072,-0.507,-0.245,-0.0183,0.0003,-0.007,"); add_srs_wkt (p, 4, "-0.0093],AUTHORITY[\"EPSG\",\"6687\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 5, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 6, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 7, "EPSG\",\"4687\"]],PROJECTION[\"Transverse_Mercator\"],PA"); add_srs_wkt (p, 8, "RAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_me"); add_srs_wkt (p, 9, "ridian\",-147],PARAMETER[\"scale_factor\",0.9996],PARAME"); add_srs_wkt (p, 10, "TER[\"false_easting\",500000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, "\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"3297\"]]"); p = add_epsg_def (filter, first, last, 3298, "epsg", 3298, "RGPF / UTM zone 7S"); add_proj4text (p, 0, "+proj=utm +zone=7 +south +ellps=GRS80 +towgs84=0.072,-0."); add_proj4text (p, 1, "507,-0.245,-0.0183,0.0003,-0.007,-0.0093 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"RGPF / UTM zone 7S\",GEOGCS[\"RGPF\",DATUM[\"Re"); add_srs_wkt (p, 1, "seau_Geodesique_de_la_Polynesie_Francaise\",SPHEROID[\"G"); add_srs_wkt (p, 2, "RS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"701"); add_srs_wkt (p, 3, "9\"]],TOWGS84[0.072,-0.507,-0.245,-0.0183,0.0003,-0.007,"); add_srs_wkt (p, 4, "-0.0093],AUTHORITY[\"EPSG\",\"6687\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 5, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 6, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 7, "EPSG\",\"4687\"]],PROJECTION[\"Transverse_Mercator\"],PA"); add_srs_wkt (p, 8, "RAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_me"); add_srs_wkt (p, 9, "ridian\",-141],PARAMETER[\"scale_factor\",0.9996],PARAME"); add_srs_wkt (p, 10, "TER[\"false_easting\",500000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, "\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"3298\"]]"); p = add_epsg_def (filter, first, last, 3299, "epsg", 3299, "RGPF / UTM zone 8S"); add_proj4text (p, 0, "+proj=utm +zone=8 +south +ellps=GRS80 +towgs84=0.072,-0."); add_proj4text (p, 1, "507,-0.245,-0.0183,0.0003,-0.007,-0.0093 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"RGPF / UTM zone 8S\",GEOGCS[\"RGPF\",DATUM[\"Re"); add_srs_wkt (p, 1, "seau_Geodesique_de_la_Polynesie_Francaise\",SPHEROID[\"G"); add_srs_wkt (p, 2, "RS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"701"); add_srs_wkt (p, 3, "9\"]],TOWGS84[0.072,-0.507,-0.245,-0.0183,0.0003,-0.007,"); add_srs_wkt (p, 4, "-0.0093],AUTHORITY[\"EPSG\",\"6687\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 5, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 6, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 7, "EPSG\",\"4687\"]],PROJECTION[\"Transverse_Mercator\"],PA"); add_srs_wkt (p, 8, "RAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_me"); add_srs_wkt (p, 9, "ridian\",-135],PARAMETER[\"scale_factor\",0.9996],PARAME"); add_srs_wkt (p, 10, "TER[\"false_easting\",500000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, "\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"3299\"]]"); p = add_epsg_def (filter, first, last, 3300, "epsg", 3300, "Estonian Coordinate System of 1992"); add_proj4text (p, 0, "+proj=lcc +lat_1=59.33333333333334 +lat_2=58 +lat_0=57.5"); add_proj4text (p, 1, "1755393055556 +lon_0=24 +x_0=500000 +y_0=6375000 +ellps="); add_proj4text (p, 2, "GRS80 +towgs84=0.055,-0.541,-0.185,0.0183,-0.0003,-0.007"); add_proj4text (p, 3, ",-0.014 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Estonian Coordinate System of 1992\",GEOGCS[\"E"); add_srs_wkt (p, 1, "ST92\",DATUM[\"Estonia_1992\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0.055,-0.541,-0.185,0.0183,-0.0003,-0.007,-0.014],AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"6133\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4133\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 8, "[\"standard_parallel_1\",59.33333333333334],PARAMETER[\""); add_srs_wkt (p, 9, "standard_parallel_2\",58],PARAMETER[\"latitude_of_origin"); add_srs_wkt (p, 10, "\",57.51755393055556],PARAMETER[\"central_meridian\",24]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 12, "orthing\",6375000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"3300\"]]"); p = add_epsg_def (filter, first, last, 3301, "epsg", 3301, "Estonian Coordinate System of 1997"); add_proj4text (p, 0, "+proj=lcc +lat_1=59.33333333333334 +lat_2=58 +lat_0=57.5"); add_proj4text (p, 1, "1755393055556 +lon_0=24 +x_0=500000 +y_0=6375000 +ellps="); add_proj4text (p, 2, "GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Estonian Coordinate System of 1997\",GEOGCS[\"E"); add_srs_wkt (p, 1, "ST97\",DATUM[\"Estonia_1997\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6180\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4180\"]],PROJECTION[\"Lambert_Conformal_C"); add_srs_wkt (p, 7, "onic_2SP\"],PARAMETER[\"standard_parallel_1\",59.3333333"); add_srs_wkt (p, 8, "3333334],PARAMETER[\"standard_parallel_2\",58],PARAMETER"); add_srs_wkt (p, 9, "[\"latitude_of_origin\",57.51755393055556],PARAMETER[\"c"); add_srs_wkt (p, 10, "entral_meridian\",24],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 11, "],PARAMETER[\"false_northing\",6375000],UNIT[\"metre\",1"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"3301\"]]"); p = add_epsg_def (filter, first, last, 3302, "epsg", 3302, "IGN63 Hiva Oa / UTM zone 7S"); add_proj4text (p, 0, "+proj=utm +zone=7 +south +ellps=intl +towgs84=410.721,55"); add_proj4text (p, 1, ".049,80.746,2.5779,2.3514,0.6664,17.3311 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"IGN63 Hiva Oa / UTM zone 7S\",GEOGCS[\"IGN63 Hi"); add_srs_wkt (p, 1, "va Oa\",DATUM[\"IGN63_Hiva_Oa\",SPHEROID[\"International"); add_srs_wkt (p, 2, " 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS8"); add_srs_wkt (p, 3, "4[410.721,55.049,80.746,2.5779,2.3514,0.6664,17.3311],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6689\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "689\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "141],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); add_srs_wkt (p, 11, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"3302\"]]"); p = add_epsg_def (filter, first, last, 3303, "epsg", 3303, "Fatu Iva 72 / UTM zone 7S"); add_proj4text (p, 0, "+proj=utm +zone=7 +south +ellps=intl +towgs84=347.103,10"); add_proj4text (p, 1, "78.12,2623.92,-33.8875,70.6773,-9.3943,186.074 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Fatu Iva 72 / UTM zone 7S\",GEOGCS[\"Fatu Iva 7"); add_srs_wkt (p, 1, "2\",DATUM[\"Fatu_Iva_72\",SPHEROID[\"International 1924\""); add_srs_wkt (p, 2, ",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[347.1"); add_srs_wkt (p, 3, "03,1078.12,2623.92,-33.8875,70.6773,-9.3943,186.074],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6688\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"46"); add_srs_wkt (p, 7, "88\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",-1"); add_srs_wkt (p, 9, "41],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false"); add_srs_wkt (p, 10, "_easting\",500000],PARAMETER[\"false_northing\",10000000"); add_srs_wkt (p, 11, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"3303\"]]"); p = add_epsg_def (filter, first, last, 3304, "epsg", 3304, "Tahiti 79 / UTM zone 6S"); add_proj4text (p, 0, "+proj=utm +zone=6 +south +ellps=intl +towgs84=221.525,15"); add_proj4text (p, 1, "2.948,176.768,-2.3847,-1.3896,-0.877,11.4741 +units=m +n"); add_proj4text (p, 2, "o_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tahiti 79 / UTM zone 6S\",GEOGCS[\"Tahiti 79\","); add_srs_wkt (p, 1, "DATUM[\"Tahiti_79\",SPHEROID[\"International 1924\",6378"); add_srs_wkt (p, 2, "388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[221.525,15"); add_srs_wkt (p, 3, "2.948,176.768,-2.3847,-1.3896,-0.877,11.4741],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6690\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4690\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",-147],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",10000000],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "304\"]]"); p = add_epsg_def (filter, first, last, 3305, "epsg", 3305, "Moorea 87 / UTM zone 6S"); add_proj4text (p, 0, "+proj=utm +zone=6 +south +ellps=intl +towgs84=215.525,14"); add_proj4text (p, 1, "9.593,176.229,-3.2624,-1.692,-1.1571,10.4773 +units=m +n"); add_proj4text (p, 2, "o_defs"); add_srs_wkt (p, 0, "PROJCS[\"Moorea 87 / UTM zone 6S\",GEOGCS[\"Moorea 87\","); add_srs_wkt (p, 1, "DATUM[\"Moorea_87\",SPHEROID[\"International 1924\",6378"); add_srs_wkt (p, 2, "388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[215.525,14"); add_srs_wkt (p, 3, "9.593,176.229,-3.2624,-1.692,-1.1571,10.4773],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6691\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4691\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",-147],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",10000000],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "305\"]]"); p = add_epsg_def (filter, first, last, 3306, "epsg", 3306, "Maupiti 83 / UTM zone 5S"); add_proj4text (p, 0, "+proj=utm +zone=5 +south +ellps=intl +towgs84=217.037,86"); add_proj4text (p, 1, ".959,23.956,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Maupiti 83 / UTM zone 5S\",GEOGCS[\"Maupiti 83\""); add_srs_wkt (p, 1, ",DATUM[\"Maupiti_83\",SPHEROID[\"International 1924\",63"); add_srs_wkt (p, 2, "78388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[217.037,"); add_srs_wkt (p, 3, "86.959,23.956,0,0,0,0],AUTHORITY[\"EPSG\",\"6692\"]],PRI"); add_srs_wkt (p, 4, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4692\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, "R[\"central_meridian\",-153],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"3306\"]]"); p = add_epsg_def (filter, first, last, 3307, "epsg", 3307, "Nakhl-e Ghanem / UTM zone 39N"); add_proj4text (p, 0, "+proj=utm +zone=39 +ellps=WGS84 +towgs84=0,-0.15,0.68,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Nakhl-e Ghanem / UTM zone 39N\",GEOGCS[\"Nakhl-"); add_srs_wkt (p, 1, "e Ghanem\",DATUM[\"Nakhl_e_Ghanem\",SPHEROID[\"WGS 84\","); add_srs_wkt (p, 2, "6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,-0.15,0.68,0,0,0,0],AUTHORITY[\"EPSG\",\"6693\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4693\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",51],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"3307\"]]"); p = add_epsg_def (filter, first, last, 3308, "epsg", 3308, "GDA94 / NSW Lambert"); add_proj4text (p, 0, "+proj=lcc +lat_1=-30.75 +lat_2=-35.75 +lat_0=-33.25 +lon"); add_proj4text (p, 1, "_0=147 +x_0=9300000 +y_0=4500000 +ellps=GRS80 +towgs84=0"); add_proj4text (p, 2, ",0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDA94 / NSW Lambert\",GEOGCS[\"GDA94\",DATUM[\""); add_srs_wkt (p, 1, "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 7, "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",-3"); add_srs_wkt (p, 8, "0.75],PARAMETER[\"standard_parallel_2\",-35.75],PARAMETE"); add_srs_wkt (p, 9, "R[\"latitude_of_origin\",-33.25],PARAMETER[\"central_mer"); add_srs_wkt (p, 10, "idian\",147],PARAMETER[\"false_easting\",9300000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",4500000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nor"); add_srs_wkt (p, 13, "thing\",NORTH],AUTHORITY[\"EPSG\",\"3308\"]]"); p = add_epsg_def (filter, first, last, 3309, "epsg", 3309, "NAD27 / California Albers"); add_proj4text (p, 0, "+proj=aea +lat_1=34 +lat_2=40.5 +lat_0=0 +lon_0=-120 +x_"); add_proj4text (p, 1, "0=0 +y_0=-4000000 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / California Albers\",GEOGCS[\"NAD27\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866"); add_srs_wkt (p, 2, "\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4267\"]],PROJECTION[\"Albers_Conic_Equal_Area\"],P"); add_srs_wkt (p, 7, "ARAMETER[\"standard_parallel_1\",34],PARAMETER[\"standar"); add_srs_wkt (p, 8, "d_parallel_2\",40.5],PARAMETER[\"latitude_of_center\",0]"); add_srs_wkt (p, 9, ",PARAMETER[\"longitude_of_center\",-120],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",0],PARAMETER[\"false_northing\",-4000000],U"); add_srs_wkt (p, 11, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3309\"]]"); p = add_epsg_def (filter, first, last, 3310, "epsg", 3310, "NAD83 / California Albers"); add_proj4text (p, 0, "+proj=aea +lat_1=34 +lat_2=40.5 +lat_0=0 +lon_0=-120 +x_"); add_proj4text (p, 1, "0=0 +y_0=-4000000 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / California Albers\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Albers_Conic_E"); add_srs_wkt (p, 7, "qual_Area\"],PARAMETER[\"standard_parallel_1\",34],PARAM"); add_srs_wkt (p, 8, "ETER[\"standard_parallel_2\",40.5],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_center\",0],PARAMETER[\"longitude_of_center\",-120],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_easting\",0],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, "\",-4000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"3310\"]]"); p = add_epsg_def (filter, first, last, 3311, "epsg", 3311, "NAD83(HARN) / California Albers"); add_proj4text (p, 0, "+proj=aea +lat_1=34 +lat_2=40.5 +lat_0=0 +lon_0=-120 +x_"); add_proj4text (p, 1, "0=0 +y_0=-4000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / California Albers\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Albers_Conic_Equal_Area\"],PARAMETER[\"standard_"); add_srs_wkt (p, 8, "parallel_1\",34],PARAMETER[\"standard_parallel_2\",40.5]"); add_srs_wkt (p, 9, ",PARAMETER[\"latitude_of_center\",0],PARAMETER[\"longitu"); add_srs_wkt (p, 10, "de_of_center\",-120],PARAMETER[\"false_easting\",0],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",-4000000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 13, "RTH],AUTHORITY[\"EPSG\",\"3311\"]]"); p = add_epsg_def (filter, first, last, 3312, "epsg", 3312, "CSG67 / UTM zone 21N"); add_proj4text (p, 0, "+proj=utm +zone=21 +ellps=intl +towgs84=-186,230,110,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CSG67 / UTM zone 21N\",GEOGCS[\"CSG67\",DATUM[\""); add_srs_wkt (p, 1, "Centre_Spatial_Guyanais_1967\",SPHEROID[\"International "); add_srs_wkt (p, 2, "1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84"); add_srs_wkt (p, 3, "[-186,230,110,0,0,0,0],AUTHORITY[\"EPSG\",\"6623\"]],PRI"); add_srs_wkt (p, 4, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4623\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, "R[\"central_meridian\",-57],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"3312\"]]"); p = add_epsg_def (filter, first, last, 3313, "epsg", 3313, "RGFG95 / UTM zone 21N"); add_proj4text (p, 0, "+proj=utm +zone=21 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGFG95 / UTM zone 21N\",GEOGCS[\"RGFG95\",DATUM"); add_srs_wkt (p, 1, "[\"Reseau_Geodesique_Francais_Guyane_1995\",SPHEROID[\"G"); add_srs_wkt (p, 2, "RS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"701"); add_srs_wkt (p, 3, "9\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6624\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4624\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, "ARAMETER[\"central_meridian\",-57],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"3313\"]]"); p = add_epsg_def (filter, first, last, 3314, "epsg", 3314, "Katanga 1955 / Katanga Lambert (deprecated)"); add_proj4text (p, 0, "+proj=lcc +lat_1=-6.5 +lat_2=-11.5 +lat_0=0 +lon_0=26 +x"); add_proj4text (p, 1, "_0=0 +y_0=0 +ellps=clrk66 +towgs84=-103.746,-9.614,-255."); add_proj4text (p, 2, "95,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Katanga 1955 / Katanga Lambert (deprecated)\",G"); add_srs_wkt (p, 1, "EOGCS[\"Katanga 1955\",DATUM[\"Katanga_1955\",SPHEROID[\""); add_srs_wkt (p, 2, "Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7008\"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6695\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4695\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],P"); add_srs_wkt (p, 8, "ARAMETER[\"standard_parallel_1\",-6.5],PARAMETER[\"stand"); add_srs_wkt (p, 9, "ard_parallel_2\",-11.5],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 10, ",0],PARAMETER[\"central_meridian\",26],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3314\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def (filter, first, last, 3315, "epsg", 3315, "Katanga 1955 / Katanga TM (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-9 +lon_0=26 +k=0.9998 +x_0=0 +y_0=0 "); add_proj4text (p, 1, "+ellps=clrk66 +towgs84=-103.746,-9.614,-255.95,0,0,0,0 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Katanga 1955 / Katanga TM (deprecated)\",GEOGCS"); add_srs_wkt (p, 1, "[\"Katanga 1955\",DATUM[\"Katanga_1955\",SPHEROID[\"Clar"); add_srs_wkt (p, 2, "ke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6695\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"46"); add_srs_wkt (p, 7, "95\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",-9],PARAMETER[\"central_meridian\",2"); add_srs_wkt (p, 9, "6],PARAMETER[\"scale_factor\",0.9998],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 12, "T],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3315\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def (filter, first, last, 3316, "epsg", 3316, "Kasai 1953 / Congo TM zone 22"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=22 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=10000000 +ellps=clrk80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kasai 1953 / Congo TM zone 22\",GEOGCS[\"Kasai "); add_srs_wkt (p, 1, "1953\",DATUM[\"Kasai_1953\",SPHEROID[\"Clarke 1880 (RGS)"); add_srs_wkt (p, 2, "\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"6696\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 5, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"46"); add_srs_wkt (p, 6, "96\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 7, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",22"); add_srs_wkt (p, 8, "],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_e"); add_srs_wkt (p, 9, "asting\",500000],PARAMETER[\"false_northing\",10000000],"); add_srs_wkt (p, 10, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea"); add_srs_wkt (p, 11, "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"3316\"]]"); p = add_epsg_def (filter, first, last, 3317, "epsg", 3317, "Kasai 1953 / Congo TM zone 24"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=10000000 +ellps=clrk80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kasai 1953 / Congo TM zone 24\",GEOGCS[\"Kasai "); add_srs_wkt (p, 1, "1953\",DATUM[\"Kasai_1953\",SPHEROID[\"Clarke 1880 (RGS)"); add_srs_wkt (p, 2, "\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"6696\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 5, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"46"); add_srs_wkt (p, 6, "96\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 7, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",24"); add_srs_wkt (p, 8, "],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_e"); add_srs_wkt (p, 9, "asting\",500000],PARAMETER[\"false_northing\",10000000],"); add_srs_wkt (p, 10, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea"); add_srs_wkt (p, 11, "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"3317\"]]"); p = add_epsg_def (filter, first, last, 3318, "epsg", 3318, "IGC 1962 / Congo TM zone 12"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=12 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=10000000 +ellps=clrk80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGC 1962 / Congo TM zone 12\",GEOGCS[\"IGC 1962"); add_srs_wkt (p, 1, " 6th Parallel South\",DATUM[\"IGC_1962_Arc_of_the_6th_Pa"); add_srs_wkt (p, 2, "rallel_South\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.14"); add_srs_wkt (p, 3, "5,293.465,AUTHORITY[\"EPSG\",\"7012\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6697\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4697\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 8, "igin\",0],PARAMETER[\"central_meridian\",12],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9999],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 12, "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3318\"]]"); p = add_epsg_def (filter, first, last, 3319, "epsg", 3319, "IGC 1962 / Congo TM zone 14"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=14 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=10000000 +ellps=clrk80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGC 1962 / Congo TM zone 14\",GEOGCS[\"IGC 1962"); add_srs_wkt (p, 1, " 6th Parallel South\",DATUM[\"IGC_1962_Arc_of_the_6th_Pa"); add_srs_wkt (p, 2, "rallel_South\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.14"); add_srs_wkt (p, 3, "5,293.465,AUTHORITY[\"EPSG\",\"7012\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6697\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4697\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 8, "igin\",0],PARAMETER[\"central_meridian\",14],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9999],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 12, "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3319\"]]"); p = add_epsg_def (filter, first, last, 3320, "epsg", 3320, "IGC 1962 / Congo TM zone 16"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=16 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=10000000 +ellps=clrk80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGC 1962 / Congo TM zone 16\",GEOGCS[\"IGC 1962"); add_srs_wkt (p, 1, " 6th Parallel South\",DATUM[\"IGC_1962_Arc_of_the_6th_Pa"); add_srs_wkt (p, 2, "rallel_South\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.14"); add_srs_wkt (p, 3, "5,293.465,AUTHORITY[\"EPSG\",\"7012\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6697\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4697\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 8, "igin\",0],PARAMETER[\"central_meridian\",16],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9999],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 12, "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3320\"]]"); p = add_epsg_def (filter, first, last, 3321, "epsg", 3321, "IGC 1962 / Congo TM zone 18"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=18 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=10000000 +ellps=clrk80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGC 1962 / Congo TM zone 18\",GEOGCS[\"IGC 1962"); add_srs_wkt (p, 1, " 6th Parallel South\",DATUM[\"IGC_1962_Arc_of_the_6th_Pa"); add_srs_wkt (p, 2, "rallel_South\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.14"); add_srs_wkt (p, 3, "5,293.465,AUTHORITY[\"EPSG\",\"7012\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6697\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4697\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 8, "igin\",0],PARAMETER[\"central_meridian\",18],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9999],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 12, "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3321\"]]"); p = add_epsg_def (filter, first, last, 3322, "epsg", 3322, "IGC 1962 / Congo TM zone 20"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=20 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=10000000 +ellps=clrk80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGC 1962 / Congo TM zone 20\",GEOGCS[\"IGC 1962"); add_srs_wkt (p, 1, " 6th Parallel South\",DATUM[\"IGC_1962_Arc_of_the_6th_Pa"); add_srs_wkt (p, 2, "rallel_South\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.14"); add_srs_wkt (p, 3, "5,293.465,AUTHORITY[\"EPSG\",\"7012\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6697\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4697\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 8, "igin\",0],PARAMETER[\"central_meridian\",20],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9999],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 12, "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3322\"]]"); p = add_epsg_def (filter, first, last, 3323, "epsg", 3323, "IGC 1962 / Congo TM zone 22"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=22 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=10000000 +ellps=clrk80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGC 1962 / Congo TM zone 22\",GEOGCS[\"IGC 1962"); add_srs_wkt (p, 1, " 6th Parallel South\",DATUM[\"IGC_1962_Arc_of_the_6th_Pa"); add_srs_wkt (p, 2, "rallel_South\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.14"); add_srs_wkt (p, 3, "5,293.465,AUTHORITY[\"EPSG\",\"7012\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6697\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4697\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 8, "igin\",0],PARAMETER[\"central_meridian\",22],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9999],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 12, "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3323\"]]"); p = add_epsg_def (filter, first, last, 3324, "epsg", 3324, "IGC 1962 / Congo TM zone 24"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=10000000 +ellps=clrk80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGC 1962 / Congo TM zone 24\",GEOGCS[\"IGC 1962"); add_srs_wkt (p, 1, " 6th Parallel South\",DATUM[\"IGC_1962_Arc_of_the_6th_Pa"); add_srs_wkt (p, 2, "rallel_South\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.14"); add_srs_wkt (p, 3, "5,293.465,AUTHORITY[\"EPSG\",\"7012\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6697\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4697\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 8, "igin\",0],PARAMETER[\"central_meridian\",24],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9999],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 12, "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3324\"]]"); p = add_epsg_def (filter, first, last, 3325, "epsg", 3325, "IGC 1962 / Congo TM zone 26"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=26 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=10000000 +ellps=clrk80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGC 1962 / Congo TM zone 26\",GEOGCS[\"IGC 1962"); add_srs_wkt (p, 1, " 6th Parallel South\",DATUM[\"IGC_1962_Arc_of_the_6th_Pa"); add_srs_wkt (p, 2, "rallel_South\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.14"); add_srs_wkt (p, 3, "5,293.465,AUTHORITY[\"EPSG\",\"7012\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6697\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4697\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 8, "igin\",0],PARAMETER[\"central_meridian\",26],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9999],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 12, "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3325\"]]"); p = add_epsg_def (filter, first, last, 3326, "epsg", 3326, "IGC 1962 / Congo TM zone 28"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=28 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=10000000 +ellps=clrk80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGC 1962 / Congo TM zone 28\",GEOGCS[\"IGC 1962"); add_srs_wkt (p, 1, " 6th Parallel South\",DATUM[\"IGC_1962_Arc_of_the_6th_Pa"); add_srs_wkt (p, 2, "rallel_South\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.14"); add_srs_wkt (p, 3, "5,293.465,AUTHORITY[\"EPSG\",\"7012\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6697\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4697\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 8, "igin\",0],PARAMETER[\"central_meridian\",28],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9999],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 12, "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3326\"]]"); p = add_epsg_def (filter, first, last, 3327, "epsg", 3327, "IGC 1962 / Congo TM zone 30"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=30 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=10000000 +ellps=clrk80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGC 1962 / Congo TM zone 30\",GEOGCS[\"IGC 1962"); add_srs_wkt (p, 1, " 6th Parallel South\",DATUM[\"IGC_1962_Arc_of_the_6th_Pa"); add_srs_wkt (p, 2, "rallel_South\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.14"); add_srs_wkt (p, 3, "5,293.465,AUTHORITY[\"EPSG\",\"7012\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6697\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4697\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 8, "igin\",0],PARAMETER[\"central_meridian\",30],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9999],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 12, "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3327\"]]"); p = add_epsg_def (filter, first, last, 3328, "epsg", 3328, "Pulkovo 1942(58) / GUGiK-80"); add_proj4text (p, 0, "+proj=sterea +lat_0=52.16666666666666 +lon_0=19.16666666"); add_proj4text (p, 1, "666667 +k=0.999714 +x_0=500000 +y_0=500000 +ellps=krass "); add_proj4text (p, 2, "+towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +un"); add_proj4text (p, 3, "its=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(58) / GUGiK-80\",GEOGCS[\"Pulkovo "); add_srs_wkt (p, 1, "1942(58)\",DATUM[\"Pulkovo_1942_58\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6179\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4179"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Oblique_Stereographic\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",52.16666666666666],PARAMETER[\"centr"); add_srs_wkt (p, 9, "al_meridian\",19.16666666666667],PARAMETER[\"scale_facto"); add_srs_wkt (p, 10, "r\",0.999714],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",500000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"3328\"]]"); p = add_epsg_def (filter, first, last, 3329, "epsg", 3329, "Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 5"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0."); add_proj4text (p, 2, "844,-0.84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 5"); add_srs_wkt (p, 1, "\",GEOGCS[\"Pulkovo 1942(58)\",DATUM[\"Pulkovo_1942_58\""); add_srs_wkt (p, 2, ",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7024\"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.05"); add_srs_wkt (p, 4, "3,0.844,-0.84],AUTHORITY[\"EPSG\",\"6179\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 5, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 6, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4179\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",15],PARAMETER[\"scale_factor\",1],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",5500000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 12, "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"332"); add_srs_wkt (p, 13, "9\"]]"); p = add_epsg_def (filter, first, last, 3330, "epsg", 3330, "Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 6"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=6500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0."); add_proj4text (p, 2, "844,-0.84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 6"); add_srs_wkt (p, 1, "\",GEOGCS[\"Pulkovo 1942(58)\",DATUM[\"Pulkovo_1942_58\""); add_srs_wkt (p, 2, ",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7024\"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.05"); add_srs_wkt (p, 4, "3,0.844,-0.84],AUTHORITY[\"EPSG\",\"6179\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 5, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 6, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4179\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",18],PARAMETER[\"scale_factor\",1],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",6500000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 12, "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"333"); add_srs_wkt (p, 13, "0\"]]"); p = add_epsg_def (filter, first, last, 3331, "epsg", 3331, "Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 7"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=7500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0."); add_proj4text (p, 2, "844,-0.84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 7"); add_srs_wkt (p, 1, "\",GEOGCS[\"Pulkovo 1942(58)\",DATUM[\"Pulkovo_1942_58\""); add_srs_wkt (p, 2, ",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7024\"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.05"); add_srs_wkt (p, 4, "3,0.844,-0.84],AUTHORITY[\"EPSG\",\"6179\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 5, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 6, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4179\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",21],PARAMETER[\"scale_factor\",1],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",7500000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 12, "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"333"); add_srs_wkt (p, 13, "1\"]]"); p = add_epsg_def (filter, first, last, 3332, "epsg", 3332, "Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 8"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=8500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0."); add_proj4text (p, 2, "844,-0.84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 8"); add_srs_wkt (p, 1, "\",GEOGCS[\"Pulkovo 1942(58)\",DATUM[\"Pulkovo_1942_58\""); add_srs_wkt (p, 2, ",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7024\"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.05"); add_srs_wkt (p, 4, "3,0.844,-0.84],AUTHORITY[\"EPSG\",\"6179\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 5, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 6, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4179\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",24],PARAMETER[\"scale_factor\",1],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",8500000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 12, "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"333"); add_srs_wkt (p, 13, "2\"]]"); p = add_epsg_def (filter, first, last, 3333, "epsg", 3333, "Pulkovo 1942(58) / Gauss-Kruger zone 3"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=3500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0."); add_proj4text (p, 2, "844,-0.84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(58) / Gauss-Kruger zone 3\",GEOGCS"); add_srs_wkt (p, 1, "[\"Pulkovo 1942(58)\",DATUM[\"Pulkovo_1942_58\",SPHEROID"); add_srs_wkt (p, 2, "[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7024\"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-"); add_srs_wkt (p, 4, "0.84],AUTHORITY[\"EPSG\",\"6179\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4179\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 8, "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, "dian\",15],PARAMETER[\"scale_factor\",1],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",3500000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); add_srs_wkt (p, 12, "NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3333\"]]"); p = add_epsg_def (filter, first, last, 3334, "epsg", 3334, "Pulkovo 1942(58) / Gauss-Kruger zone 4"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=4500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0."); add_proj4text (p, 2, "844,-0.84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(58) / Gauss-Kruger zone 4\",GEOGCS"); add_srs_wkt (p, 1, "[\"Pulkovo 1942(58)\",DATUM[\"Pulkovo_1942_58\",SPHEROID"); add_srs_wkt (p, 2, "[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7024\"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-"); add_srs_wkt (p, 4, "0.84],AUTHORITY[\"EPSG\",\"6179\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4179\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 8, "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, "dian\",21],PARAMETER[\"scale_factor\",1],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",4500000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); add_srs_wkt (p, 12, "NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3334\"]]"); p = add_epsg_def (filter, first, last, 3335, "epsg", 3335, "Pulkovo 1942(58) / Gauss-Kruger zone 5"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=5500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0."); add_proj4text (p, 2, "844,-0.84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(58) / Gauss-Kruger zone 5\",GEOGCS"); add_srs_wkt (p, 1, "[\"Pulkovo 1942(58)\",DATUM[\"Pulkovo_1942_58\",SPHEROID"); add_srs_wkt (p, 2, "[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7024\"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-"); add_srs_wkt (p, 4, "0.84],AUTHORITY[\"EPSG\",\"6179\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4179\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 8, "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, "dian\",27],PARAMETER[\"scale_factor\",1],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",5500000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); add_srs_wkt (p, 12, "NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3335\"]]"); p = add_epsg_def (filter, first, last, 3336, "epsg", 3336, "IGN 1962 Kerguelen / UTM zone 42S"); add_proj4text (p, 0, "+proj=utm +zone=42 +south +ellps=intl +towgs84=145,-187,"); add_proj4text (p, 1, "103,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGN 1962 Kerguelen / UTM zone 42S\",GEOGCS[\"IG"); add_srs_wkt (p, 1, "N 1962 Kerguelen\",DATUM[\"IGN_1962_Kerguelen\",SPHEROID"); add_srs_wkt (p, 2, "[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7022\"]],TOWGS84[145,-187,103,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6698\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4698\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",69],PARAMETER[\"s"); add_srs_wkt (p, 9, "cale_factor\",0.9996],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 10, "],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\","); add_srs_wkt (p, 11, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 12, "XIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3336\"]]"); p = add_epsg_def (filter, first, last, 3337, "epsg", 3337, "Le Pouce 1934 / Mauritius Grid"); add_proj4text (p, 0, "+proj=lcc +lat_1=-20.19506944444445 +lat_0=-20.195069444"); add_proj4text (p, 1, "44445 +lon_0=57.52182777777778 +k_0=1 +x_0=1000000 +y_0="); add_proj4text (p, 2, "1000000 +ellps=clrk80 +towgs84=-770.1,158.4,-498.2,0,0,0"); add_proj4text (p, 3, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Le Pouce 1934 / Mauritius Grid\",GEOGCS[\"Le Po"); add_srs_wkt (p, 1, "uce 1934\",DATUM[\"Le_Pouce_1934\",SPHEROID[\"Clarke 188"); add_srs_wkt (p, 2, "0 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\""); add_srs_wkt (p, 3, "]],TOWGS84[-770.1,158.4,-498.2,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6699\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4699\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Lambert_Conformal_Conic_1SP\"],PARAMETER[\"latitu"); add_srs_wkt (p, 8, "de_of_origin\",-20.19506944444445],PARAMETER[\"central_m"); add_srs_wkt (p, 9, "eridian\",57.52182777777778],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 10, "1],PARAMETER[\"false_easting\",1000000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); add_srs_wkt (p, 13, "TH],AUTHORITY[\"EPSG\",\"3337\"]]"); p = add_epsg_def (filter, first, last, 3338, "epsg", 3338, "NAD83 / Alaska Albers"); add_proj4text (p, 0, "+proj=aea +lat_1=55 +lat_2=65 +lat_0=50 +lon_0=-154 +x_0"); add_proj4text (p, 1, "=0 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Alaska Albers\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Albers_Conic_Equal_"); add_srs_wkt (p, 7, "Area\"],PARAMETER[\"standard_parallel_1\",55],PARAMETER["); add_srs_wkt (p, 8, "\"standard_parallel_2\",65],PARAMETER[\"latitude_of_cent"); add_srs_wkt (p, 9, "er\",50],PARAMETER[\"longitude_of_center\",-154],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 11, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3338\"]]"); p = add_epsg_def (filter, first, last, 3339, "epsg", 3339, "IGCB 1955 / Congo TM zone 12"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=12 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=10000000 +ellps=clrk80 +towgs84=-79.9,-158,-168.9,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGCB 1955 / Congo TM zone 12\",GEOGCS[\"IGCB 19"); add_srs_wkt (p, 1, "55\",DATUM[\"Institut_Geographique_du_Congo_Belge_1955\""); add_srs_wkt (p, 2, ",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7012\"]],TOWGS84[-79.9,-158,-168.9,0,0,"); add_srs_wkt (p, 4, "0,0],AUTHORITY[\"EPSG\",\"6701\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, "G\",\"4701\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 9, "ian\",12],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",500000],PARAMETER[\"false_northing\",100"); add_srs_wkt (p, 11, "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 12, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"3339\"]]"); p = add_epsg_def (filter, first, last, 3340, "epsg", 3340, "IGCB 1955 / Congo TM zone 14"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=14 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=10000000 +ellps=clrk80 +towgs84=-79.9,-158,-168.9,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGCB 1955 / Congo TM zone 14\",GEOGCS[\"IGCB 19"); add_srs_wkt (p, 1, "55\",DATUM[\"Institut_Geographique_du_Congo_Belge_1955\""); add_srs_wkt (p, 2, ",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7012\"]],TOWGS84[-79.9,-158,-168.9,0,0,"); add_srs_wkt (p, 4, "0,0],AUTHORITY[\"EPSG\",\"6701\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, "G\",\"4701\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 9, "ian\",14],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",500000],PARAMETER[\"false_northing\",100"); add_srs_wkt (p, 11, "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 12, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"3340\"]]"); p = add_epsg_def (filter, first, last, 3341, "epsg", 3341, "IGCB 1955 / Congo TM zone 16"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=16 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=10000000 +ellps=clrk80 +towgs84=-79.9,-158,-168.9,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGCB 1955 / Congo TM zone 16\",GEOGCS[\"IGCB 19"); add_srs_wkt (p, 1, "55\",DATUM[\"Institut_Geographique_du_Congo_Belge_1955\""); add_srs_wkt (p, 2, ",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7012\"]],TOWGS84[-79.9,-158,-168.9,0,0,"); add_srs_wkt (p, 4, "0,0],AUTHORITY[\"EPSG\",\"6701\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, "G\",\"4701\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 9, "ian\",16],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",500000],PARAMETER[\"false_northing\",100"); add_srs_wkt (p, 11, "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 12, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"3341\"]]"); p = add_epsg_def (filter, first, last, 3342, "epsg", 3342, "IGCB 1955 / UTM zone 33S"); add_proj4text (p, 0, "+proj=utm +zone=33 +south +ellps=clrk80 +towgs84=-79.9,-"); add_proj4text (p, 1, "158,-168.9,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGCB 1955 / UTM zone 33S\",GEOGCS[\"IGCB 1955\""); add_srs_wkt (p, 1, ",DATUM[\"Institut_Geographique_du_Congo_Belge_1955\",SPH"); add_srs_wkt (p, 2, "EROID[\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7012\"]],TOWGS84[-79.9,-158,-168.9,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6701\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4701\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",15],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_easting\",500000],PARAMETER[\"false_northing\",1000000"); add_srs_wkt (p, 11, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"3342\"]]"); p = add_epsg_def (filter, first, last, 3343, "epsg", 3343, "Mauritania 1999 / UTM zone 28N"); add_proj4text (p, 0, "+proj=utm +zone=28 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Mauritania 1999 / UTM zone 28N\",GEOGCS[\"Mauri"); add_srs_wkt (p, 1, "tania 1999\",DATUM[\"Mauritania_1999\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6702\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AUTHORITY[\"EPSG\",\"4702\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-15],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"3343\"]]"); p = add_epsg_def (filter, first, last, 3344, "epsg", 3344, "Mauritania 1999 / UTM zone 29N"); add_proj4text (p, 0, "+proj=utm +zone=29 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Mauritania 1999 / UTM zone 29N\",GEOGCS[\"Mauri"); add_srs_wkt (p, 1, "tania 1999\",DATUM[\"Mauritania_1999\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6702\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AUTHORITY[\"EPSG\",\"4702\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-9],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"3344\"]]"); p = add_epsg_def (filter, first, last, 3345, "epsg", 3345, "Mauritania 1999 / UTM zone 30N"); add_proj4text (p, 0, "+proj=utm +zone=30 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Mauritania 1999 / UTM zone 30N\",GEOGCS[\"Mauri"); add_srs_wkt (p, 1, "tania 1999\",DATUM[\"Mauritania_1999\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6702\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AUTHORITY[\"EPSG\",\"4702\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-3],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"3345\"]]"); } #endif /* full EPSG initialization enabled/disabled */ libspatialite-4.1.1/src/srsinit/epsg_inlined_15.c0000664000175000017500000052071412163502133016666 00000000000000/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_15 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def (filter, first, last, 3548, "epsg", 3548, "NAD83(NSRS2007) / Kentucky South"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.93333333333333 +lat_2=36.73333333333"); add_proj4text (p, 1, "333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000 +"); add_proj4text (p, 2, "y_0=500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 3, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Kentucky South\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_"); add_srs_wkt (p, 2, "System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_1\",37.93333333333333],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_2\",36.73333333333333],PARAMETER"); add_srs_wkt (p, 10, "[\"latitude_of_origin\",36.33333333333334],PARAMETER[\"c"); add_srs_wkt (p, 11, "entral_meridian\",-85.75],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 12, "0000],PARAMETER[\"false_northing\",500000],UNIT[\"metre\""); add_srs_wkt (p, 13, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 14, "Y\",NORTH],AUTHORITY[\"EPSG\",\"3548\"]]"); p = add_epsg_def (filter, first, last, 3549, "epsg", 3549, "NAD83(NSRS2007) / Kentucky South (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.93333333333333 +lat_2=36.73333333333"); add_proj4text (p, 1, "333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000.0"); add_proj4text (p, 2, "001016001 +y_0=500000.0001016001 +ellps=GRS80 +towgs84=0"); add_proj4text (p, 3, ",0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Kentucky South (ftUS)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Ref"); add_srs_wkt (p, 2, "erence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2"); add_srs_wkt (p, 3, "57222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0"); add_srs_wkt (p, 4, ",0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 8, "\"],PARAMETER[\"standard_parallel_1\",37.93333333333333]"); add_srs_wkt (p, 9, ",PARAMETER[\"standard_parallel_2\",36.73333333333333],PA"); add_srs_wkt (p, 10, "RAMETER[\"latitude_of_origin\",36.33333333333334],PARAME"); add_srs_wkt (p, 11, "TER[\"central_meridian\",-85.75],PARAMETER[\"false_easti"); add_srs_wkt (p, 12, "ng\",1640416.667],PARAMETER[\"false_northing\",1640416.6"); add_srs_wkt (p, 13, "67],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY"); add_srs_wkt (p, 14, "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 15, "AUTHORITY[\"EPSG\",\"3549\"]]"); p = add_epsg_def (filter, first, last, 3550, "epsg", 3550, "NAD83(NSRS2007) / Louisiana North"); add_proj4text (p, 0, "+proj=lcc +lat_1=32.66666666666666 +lat_2=31.16666666666"); add_proj4text (p, 1, "667 +lat_0=30.5 +lon_0=-92.5 +x_0=1000000 +y_0=0 +ellps="); add_proj4text (p, 2, "GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Louisiana North\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference"); add_srs_wkt (p, 2, "_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, "01,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_1\",32.66666666666666],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_2\",31.16666666666667],PARAMETER"); add_srs_wkt (p, 10, "[\"latitude_of_origin\",30.5],PARAMETER[\"central_meridi"); add_srs_wkt (p, 11, "an\",-92.5],PARAMETER[\"false_easting\",1000000],PARAMET"); add_srs_wkt (p, 12, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 14, "RITY[\"EPSG\",\"3550\"]]"); p = add_epsg_def (filter, first, last, 3551, "epsg", 3551, "NAD83(NSRS2007) / Louisiana North (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=32.66666666666666 +lat_2=31.16666666666"); add_proj4text (p, 1, "667 +lat_0=30.5 +lon_0=-92.5 +x_0=999999.9999898402 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_"); add_proj4text (p, 3, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Louisiana North (ftUS)\",GEOG"); add_srs_wkt (p, 1, "CS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Re"); add_srs_wkt (p, 2, "ference_System_2007\",SPHEROID[\"GRS 1980\",6378137,298."); add_srs_wkt (p, 3, "257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,"); add_srs_wkt (p, 4, "0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 8, "\"],PARAMETER[\"standard_parallel_1\",32.66666666666666]"); add_srs_wkt (p, 9, ",PARAMETER[\"standard_parallel_2\",31.16666666666667],PA"); add_srs_wkt (p, 10, "RAMETER[\"latitude_of_origin\",30.5],PARAMETER[\"central"); add_srs_wkt (p, 11, "_meridian\",-92.5],PARAMETER[\"false_easting\",3280833.3"); add_srs_wkt (p, 12, "33300001],PARAMETER[\"false_northing\",0],UNIT[\"US surv"); add_srs_wkt (p, 13, "ey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\""); add_srs_wkt (p, 14, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 15, ",\"3551\"]]"); p = add_epsg_def (filter, first, last, 3552, "epsg", 3552, "NAD83(NSRS2007) / Louisiana South"); add_proj4text (p, 0, "+proj=lcc +lat_1=30.7 +lat_2=29.3 +lat_0=28.5 +lon_0=-91"); add_proj4text (p, 1, ".33333333333333 +x_0=1000000 +y_0=0 +ellps=GRS80 +towgs8"); add_proj4text (p, 2, "4=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Louisiana South\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference"); add_srs_wkt (p, 2, "_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, "01,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_1\",30.7],PARAMETER[\"standar"); add_srs_wkt (p, 9, "d_parallel_2\",29.3],PARAMETER[\"latitude_of_origin\",28"); add_srs_wkt (p, 10, ".5],PARAMETER[\"central_meridian\",-91.33333333333333],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_easting\",1000000],PARAMETER[\"false_no"); add_srs_wkt (p, 12, "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 13, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"3552\"]]"); p = add_epsg_def (filter, first, last, 3553, "epsg", 3553, "NAD83(NSRS2007) / Louisiana South (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=30.7 +lat_2=29.3 +lat_0=28.5 +lon_0=-91"); add_proj4text (p, 1, ".33333333333333 +x_0=999999.9999898402 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, "80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Louisiana South (ftUS)\",GEOG"); add_srs_wkt (p, 1, "CS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Re"); add_srs_wkt (p, 2, "ference_System_2007\",SPHEROID[\"GRS 1980\",6378137,298."); add_srs_wkt (p, 3, "257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,"); add_srs_wkt (p, 4, "0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 8, "\"],PARAMETER[\"standard_parallel_1\",30.7],PARAMETER[\""); add_srs_wkt (p, 9, "standard_parallel_2\",29.3],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 10, "in\",28.5],PARAMETER[\"central_meridian\",-91.3333333333"); add_srs_wkt (p, 11, "3333],PARAMETER[\"false_easting\",3280833.333300001],PAR"); add_srs_wkt (p, 12, "AMETER[\"false_northing\",0],UNIT[\"US survey foot\",0.3"); add_srs_wkt (p, 13, "048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); add_srs_wkt (p, 14, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3553\"]]"); p = add_epsg_def (filter, first, last, 3554, "epsg", 3554, "NAD83(NSRS2007) / Maine CS2000 Central"); add_proj4text (p, 0, "+proj=tmerc +lat_0=43.5 +lon_0=-69.125 +k=0.99998 +x_0=5"); add_proj4text (p, 1, "00000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Maine CS2000 Central\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refe"); add_srs_wkt (p, 2, "rence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25"); add_srs_wkt (p, 3, "7222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,"); add_srs_wkt (p, 4, "0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, "G\",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"latitude_of_origin\",43.5],PARAMETER[\"central_me"); add_srs_wkt (p, 9, "ridian\",-69.125],PARAMETER[\"scale_factor\",0.99998],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 11, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, ",AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "3554\"]]"); p = add_epsg_def (filter, first, last, 3555, "epsg", 3555, "NAD83(NSRS2007) / Maine CS2000 East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=43.83333333333334 +lon_0=-67.875 +k=0"); add_proj4text (p, 1, ".99998 +x_0=700000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Maine CS2000 East\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 8, "R[\"latitude_of_origin\",43.83333333333334],PARAMETER[\""); add_srs_wkt (p, 9, "central_meridian\",-67.875],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".99998],PARAMETER[\"false_easting\",700000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"3555\"]]"); p = add_epsg_def (filter, first, last, 3556, "epsg", 3556, "NAD83(NSRS2007) / Maine CS2000 West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.375 +k=0"); add_proj4text (p, 1, ".99998 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Maine CS2000 West\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 8, "R[\"latitude_of_origin\",42.83333333333334],PARAMETER[\""); add_srs_wkt (p, 9, "central_meridian\",-70.375],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".99998],PARAMETER[\"false_easting\",300000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"3556\"]]"); p = add_epsg_def (filter, first, last, 3557, "epsg", 3557, "NAD83(NSRS2007) / Maine East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9"); add_proj4text (p, 1, "999 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 2, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Maine East\",GEOGCS[\"NAD83(N"); add_srs_wkt (p, 1, "SRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Syst"); add_srs_wkt (p, 2, "em_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4759"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",43.66666666666666],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",-68.5],PARAMETER[\"scale_factor\",0.9999],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_easting\",300000],PARAMETER[\"false_nort"); add_srs_wkt (p, 11, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, ",AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "3557\"]]"); p = add_epsg_def (filter, first, last, 3558, "epsg", 3558, "NAD83(NSRS2007) / Maine West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666"); add_proj4text (p, 1, "666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +t"); add_proj4text (p, 2, "owgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Maine West\",GEOGCS[\"NAD83(N"); add_srs_wkt (p, 1, "SRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Syst"); add_srs_wkt (p, 2, "em_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4759"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",42.83333333333334],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",-70.16666666666667],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",0.999966667],PARAMETER[\"false_easting\",900000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"3558\"]]"); p = add_epsg_def (filter, first, last, 3559, "epsg", 3559, "NAD83(NSRS2007) / Maryland"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.45 +lat_2=38.3 +lat_0=37.66666666666"); add_proj4text (p, 1, "666 +lon_0=-77 +x_0=400000 +y_0=0 +ellps=GRS80 +towgs84="); add_proj4text (p, 2, "0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Maryland\",GEOGCS[\"NAD83(NSR"); add_srs_wkt (p, 1, "S2007)\",DATUM[\"NAD83_National_Spatial_Reference_System"); add_srs_wkt (p, 2, "_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4759\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 8, "[\"standard_parallel_1\",39.45],PARAMETER[\"standard_par"); add_srs_wkt (p, 9, "allel_2\",38.3],PARAMETER[\"latitude_of_origin\",37.6666"); add_srs_wkt (p, 10, "6666666666],PARAMETER[\"central_meridian\",-77],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_easting\",400000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 13, "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3559\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def (filter, first, last, 3560, "epsg", 3560, "NAD83 / Utah North (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666"); add_proj4text (p, 1, "667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000.0"); add_proj4text (p, 2, "0001016 +y_0=999999.9999898402 +datum=NAD83 +units=us-ft"); add_proj4text (p, 3, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Utah North (ftUS)\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor"); add_srs_wkt (p, 7, "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",41.78"); add_srs_wkt (p, 8, "333333333333],PARAMETER[\"standard_parallel_2\",40.71666"); add_srs_wkt (p, 9, "666666667],PARAMETER[\"latitude_of_origin\",40.333333333"); add_srs_wkt (p, 10, "33334],PARAMETER[\"central_meridian\",-111.5],PARAMETER["); add_srs_wkt (p, 11, "\"false_easting\",1640416.6667],PARAMETER[\"false_northi"); add_srs_wkt (p, 12, "ng\",3280833.333300001],UNIT[\"US survey foot\",0.304800"); add_srs_wkt (p, 13, "6096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST"); add_srs_wkt (p, 14, "],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3560\"]]"); p = add_epsg_def (filter, first, last, 3561, "epsg", 3561, "Old Hawaiian / Hawaii zone 1"); add_proj4text (p, 0, "+proj=tmerc +lat_0=18.83333333333333 +lon_0=-155.5 +k=0."); add_proj4text (p, 1, "999966667 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +t"); add_proj4text (p, 2, "owgs84=61,-285,-181,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Old Hawaiian / Hawaii zone 1\",GEOGCS[\"Old Haw"); add_srs_wkt (p, 1, "aiian\",DATUM[\"Old_Hawaiian\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],TOWGS84[61,-285,-181,0,0,0,0],AUTHORITY[\"EPSG\",\"613"); add_srs_wkt (p, 4, "5\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4135\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",1"); add_srs_wkt (p, 8, "8.83333333333333],PARAMETER[\"central_meridian\",-155.5]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.999966667],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"3561\"]]"); p = add_epsg_def (filter, first, last, 3562, "epsg", 3562, "Old Hawaiian / Hawaii zone 2"); add_proj4text (p, 0, "+proj=tmerc +lat_0=20.33333333333333 +lon_0=-156.6666666"); add_proj4text (p, 1, "666667 +k=0.999966667 +x_0=152400.3048006096 +y_0=0 +ell"); add_proj4text (p, 2, "ps=clrk66 +towgs84=61,-285,-181,0,0,0,0 +units=us-ft +no"); add_proj4text (p, 3, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"Old Hawaiian / Hawaii zone 2\",GEOGCS[\"Old Haw"); add_srs_wkt (p, 1, "aiian\",DATUM[\"Old_Hawaiian\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],TOWGS84[61,-285,-181,0,0,0,0],AUTHORITY[\"EPSG\",\"613"); add_srs_wkt (p, 4, "5\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4135\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",2"); add_srs_wkt (p, 8, "0.33333333333333],PARAMETER[\"central_meridian\",-156.66"); add_srs_wkt (p, 9, "66666666667],PARAMETER[\"scale_factor\",0.999966667],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 11, "ing\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 13, "RTH],AUTHORITY[\"EPSG\",\"3562\"]]"); p = add_epsg_def (filter, first, last, 3563, "epsg", 3563, "Old Hawaiian / Hawaii zone 3"); add_proj4text (p, 0, "+proj=tmerc +lat_0=21.16666666666667 +lon_0=-158 +k=0.99"); add_proj4text (p, 1, "999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +towgs84"); add_proj4text (p, 2, "=61,-285,-181,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Old Hawaiian / Hawaii zone 3\",GEOGCS[\"Old Haw"); add_srs_wkt (p, 1, "aiian\",DATUM[\"Old_Hawaiian\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],TOWGS84[61,-285,-181,0,0,0,0],AUTHORITY[\"EPSG\",\"613"); add_srs_wkt (p, 4, "5\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4135\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",2"); add_srs_wkt (p, 8, "1.16666666666667],PARAMETER[\"central_meridian\",-158],P"); add_srs_wkt (p, 9, "ARAMETER[\"scale_factor\",0.99999],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"US"); add_srs_wkt (p, 11, " survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 12, "003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"3563\"]]"); p = add_epsg_def (filter, first, last, 3564, "epsg", 3564, "Old Hawaiian / Hawaii zone 4"); add_proj4text (p, 0, "+proj=tmerc +lat_0=21.83333333333333 +lon_0=-159.5 +k=0."); add_proj4text (p, 1, "99999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +towgs"); add_proj4text (p, 2, "84=61,-285,-181,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Old Hawaiian / Hawaii zone 4\",GEOGCS[\"Old Haw"); add_srs_wkt (p, 1, "aiian\",DATUM[\"Old_Hawaiian\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],TOWGS84[61,-285,-181,0,0,0,0],AUTHORITY[\"EPSG\",\"613"); add_srs_wkt (p, 4, "5\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4135\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",2"); add_srs_wkt (p, 8, "1.83333333333333],PARAMETER[\"central_meridian\",-159.5]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.99999],PARAMETER[\"false_e"); add_srs_wkt (p, 10, "asting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"3564\"]]"); p = add_epsg_def (filter, first, last, 3565, "epsg", 3565, "Old Hawaiian / Hawaii zone 5"); add_proj4text (p, 0, "+proj=tmerc +lat_0=21.66666666666667 +lon_0=-160.1666666"); add_proj4text (p, 1, "666667 +k=1 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 "); add_proj4text (p, 2, "+towgs84=61,-285,-181,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Old Hawaiian / Hawaii zone 5\",GEOGCS[\"Old Haw"); add_srs_wkt (p, 1, "aiian\",DATUM[\"Old_Hawaiian\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],TOWGS84[61,-285,-181,0,0,0,0],AUTHORITY[\"EPSG\",\"613"); add_srs_wkt (p, 4, "5\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4135\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",2"); add_srs_wkt (p, 8, "1.66666666666667],PARAMETER[\"central_meridian\",-160.16"); add_srs_wkt (p, 9, "66666666667],PARAMETER[\"scale_factor\",1],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_easting\",500000],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 11, "NIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"3565\"]]"); p = add_epsg_def (filter, first, last, 3566, "epsg", 3566, "NAD83 / Utah Central (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=3"); add_proj4text (p, 1, "8.33333333333334 +lon_0=-111.5 +x_0=500000.00001016 +y_0"); add_proj4text (p, 2, "=2000000.00001016 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Utah Central (ftUS)\",GEOGCS[\"NAD83\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 7, "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",40.6"); add_srs_wkt (p, 8, "5],PARAMETER[\"standard_parallel_2\",39.01666666666667],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",38.33333333333334],PARA"); add_srs_wkt (p, 10, "METER[\"central_meridian\",-111.5],PARAMETER[\"false_eas"); add_srs_wkt (p, 11, "ting\",1640416.6667],PARAMETER[\"false_northing\",656166"); add_srs_wkt (p, 12, "6.666700001],UNIT[\"US survey foot\",0.3048006096012192,"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 14, ",NORTH],AUTHORITY[\"EPSG\",\"3566\"]]"); p = add_epsg_def (filter, first, last, 3567, "epsg", 3567, "NAD83 / Utah South (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=3"); add_proj4text (p, 1, "6.66666666666666 +lon_0=-111.5 +x_0=500000.00001016 +y_0"); add_proj4text (p, 2, "=3000000 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Utah South (ftUS)\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor"); add_srs_wkt (p, 7, "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",38.35"); add_srs_wkt (p, 8, "],PARAMETER[\"standard_parallel_2\",37.21666666666667],P"); add_srs_wkt (p, 9, "ARAMETER[\"latitude_of_origin\",36.66666666666666],PARAM"); add_srs_wkt (p, 10, "ETER[\"central_meridian\",-111.5],PARAMETER[\"false_east"); add_srs_wkt (p, 11, "ing\",1640416.6667],PARAMETER[\"false_northing\",9842500"); add_srs_wkt (p, 12, ".000000002],UNIT[\"US survey foot\",0.3048006096012192,A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 14, ",NORTH],AUTHORITY[\"EPSG\",\"3567\"]]"); p = add_epsg_def (filter, first, last, 3568, "epsg", 3568, "NAD83(HARN) / Utah North (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666"); add_proj4text (p, 1, "667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000.0"); add_proj4text (p, 2, "0001016 +y_0=999999.9999898402 +ellps=GRS80 +towgs84=0,0"); add_proj4text (p, 3, ",0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Utah North (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 8, "ard_parallel_1\",41.78333333333333],PARAMETER[\"standard"); add_srs_wkt (p, 9, "_parallel_2\",40.71666666666667],PARAMETER[\"latitude_of"); add_srs_wkt (p, 10, "_origin\",40.33333333333334],PARAMETER[\"central_meridia"); add_srs_wkt (p, 11, "n\",-111.5],PARAMETER[\"false_easting\",1640416.6667],PA"); add_srs_wkt (p, 12, "RAMETER[\"false_northing\",3280833.333300001],UNIT[\"US "); add_srs_wkt (p, 13, "survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 14, "03\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP"); add_srs_wkt (p, 15, "SG\",\"3568\"]]"); p = add_epsg_def (filter, first, last, 3569, "epsg", 3569, "NAD83(HARN) / Utah Central (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=3"); add_proj4text (p, 1, "8.33333333333334 +lon_0=-111.5 +x_0=500000.00001016 +y_0"); add_proj4text (p, 2, "=2000000.00001016 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 3, "nits=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Utah Central (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Networ"); add_srs_wkt (p, 2, "k\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"st"); add_srs_wkt (p, 8, "andard_parallel_1\",40.65],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 9, "_2\",39.01666666666667],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 10, ",38.33333333333334],PARAMETER[\"central_meridian\",-111."); add_srs_wkt (p, 11, "5],PARAMETER[\"false_easting\",1640416.6667],PARAMETER[\""); add_srs_wkt (p, 12, "false_northing\",6561666.666700001],UNIT[\"US survey foo"); add_srs_wkt (p, 13, "t\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXI"); add_srs_wkt (p, 14, "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"356"); add_srs_wkt (p, 15, "9\"]]"); p = add_epsg_def (filter, first, last, 3570, "epsg", 3570, "NAD83(HARN) / Utah South (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=3"); add_proj4text (p, 1, "6.66666666666666 +lon_0=-111.5 +x_0=500000.00001016 +y_0"); add_proj4text (p, 2, "=3000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-f"); add_proj4text (p, 3, "t +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Utah South (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 8, "ard_parallel_1\",38.35],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",37.21666666666667],PARAMETER[\"latitude_of_origin\",36."); add_srs_wkt (p, 10, "66666666666666],PARAMETER[\"central_meridian\",-111.5],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_easting\",1640416.6667],PARAMETER[\"fal"); add_srs_wkt (p, 12, "se_northing\",9842500.000000002],UNIT[\"US survey foot\""); add_srs_wkt (p, 13, ",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\""); add_srs_wkt (p, 14, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3570\"]"); add_srs_wkt (p, 15, "]"); p = add_epsg_def (filter, first, last, 3571, "epsg", 3571, "WGS 84 / North Pole LAEA Bering Sea"); add_proj4text (p, 0, "+proj=laea +lat_0=90 +lon_0=180 +x_0=0 +y_0=0 +datum=WGS"); add_proj4text (p, 1, "84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / North Pole LAEA Bering Sea\",GEOGCS[\""); add_srs_wkt (p, 1, "WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,"); add_srs_wkt (p, 2, "298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PR"); add_srs_wkt (p, 6, "OJECTION[\"Lambert_Azimuthal_Equal_Area\"],PARAMETER[\"l"); add_srs_wkt (p, 7, "atitude_of_center\",90],PARAMETER[\"longitude_of_center\""); add_srs_wkt (p, 8, ",180],PARAMETER[\"false_easting\",0],PARAMETER[\"false_n"); add_srs_wkt (p, 9, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 10, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, ",\"3571\"]]"); p = add_epsg_def (filter, first, last, 3572, "epsg", 3572, "WGS 84 / North Pole LAEA Alaska"); add_proj4text (p, 0, "+proj=laea +lat_0=90 +lon_0=-150 +x_0=0 +y_0=0 +datum=WG"); add_proj4text (p, 1, "S84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / North Pole LAEA Alaska\",GEOGCS[\"WGS "); add_srs_wkt (p, 1, "84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298."); add_srs_wkt (p, 2, "257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJEC"); add_srs_wkt (p, 6, "TION[\"Lambert_Azimuthal_Equal_Area\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_center\",90],PARAMETER[\"longitude_of_center\",-1"); add_srs_wkt (p, 8, "50],PARAMETER[\"false_easting\",0],PARAMETER[\"false_nor"); add_srs_wkt (p, 9, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 10, "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"3572\"]]"); p = add_epsg_def (filter, first, last, 3573, "epsg", 3573, "WGS 84 / North Pole LAEA Canada"); add_proj4text (p, 0, "+proj=laea +lat_0=90 +lon_0=-100 +x_0=0 +y_0=0 +datum=WG"); add_proj4text (p, 1, "S84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / North Pole LAEA Canada\",GEOGCS[\"WGS "); add_srs_wkt (p, 1, "84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298."); add_srs_wkt (p, 2, "257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJEC"); add_srs_wkt (p, 6, "TION[\"Lambert_Azimuthal_Equal_Area\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_center\",90],PARAMETER[\"longitude_of_center\",-1"); add_srs_wkt (p, 8, "00],PARAMETER[\"false_easting\",0],PARAMETER[\"false_nor"); add_srs_wkt (p, 9, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 10, "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"3573\"]]"); p = add_epsg_def (filter, first, last, 3574, "epsg", 3574, "WGS 84 / North Pole LAEA Atlantic"); add_proj4text (p, 0, "+proj=laea +lat_0=90 +lon_0=-40 +x_0=0 +y_0=0 +datum=WGS"); add_proj4text (p, 1, "84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / North Pole LAEA Atlantic\",GEOGCS[\"WG"); add_srs_wkt (p, 1, "S 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,29"); add_srs_wkt (p, 2, "8.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJE"); add_srs_wkt (p, 6, "CTION[\"Lambert_Azimuthal_Equal_Area\"],PARAMETER[\"lati"); add_srs_wkt (p, 7, "tude_of_center\",90],PARAMETER[\"longitude_of_center\",-"); add_srs_wkt (p, 8, "40],PARAMETER[\"false_easting\",0],PARAMETER[\"false_nor"); add_srs_wkt (p, 9, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 10, "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"3574\"]]"); p = add_epsg_def (filter, first, last, 3575, "epsg", 3575, "WGS 84 / North Pole LAEA Europe"); add_proj4text (p, 0, "+proj=laea +lat_0=90 +lon_0=10 +x_0=0 +y_0=0 +datum=WGS8"); add_proj4text (p, 1, "4 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / North Pole LAEA Europe\",GEOGCS[\"WGS "); add_srs_wkt (p, 1, "84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298."); add_srs_wkt (p, 2, "257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJEC"); add_srs_wkt (p, 6, "TION[\"Lambert_Azimuthal_Equal_Area\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_center\",90],PARAMETER[\"longitude_of_center\",10"); add_srs_wkt (p, 8, "],PARAMETER[\"false_easting\",0],PARAMETER[\"false_north"); add_srs_wkt (p, 9, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 10, "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "3575\"]]"); p = add_epsg_def (filter, first, last, 3576, "epsg", 3576, "WGS 84 / North Pole LAEA Russia"); add_proj4text (p, 0, "+proj=laea +lat_0=90 +lon_0=90 +x_0=0 +y_0=0 +datum=WGS8"); add_proj4text (p, 1, "4 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / North Pole LAEA Russia\",GEOGCS[\"WGS "); add_srs_wkt (p, 1, "84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298."); add_srs_wkt (p, 2, "257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJEC"); add_srs_wkt (p, 6, "TION[\"Lambert_Azimuthal_Equal_Area\"],PARAMETER[\"latit"); add_srs_wkt (p, 7, "ude_of_center\",90],PARAMETER[\"longitude_of_center\",90"); add_srs_wkt (p, 8, "],PARAMETER[\"false_easting\",0],PARAMETER[\"false_north"); add_srs_wkt (p, 9, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 10, "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "3576\"]]"); p = add_epsg_def (filter, first, last, 3577, "epsg", 3577, "GDA94 / Australian Albers"); add_proj4text (p, 0, "+proj=aea +lat_1=-18 +lat_2=-36 +lat_0=0 +lon_0=132 +x_0"); add_proj4text (p, 1, "=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +"); add_proj4text (p, 2, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDA94 / Australian Albers\",GEOGCS[\"GDA94\",DA"); add_srs_wkt (p, 1, "TUM[\"Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Alber"); add_srs_wkt (p, 7, "s_Conic_Equal_Area\"],PARAMETER[\"standard_parallel_1\","); add_srs_wkt (p, 8, "-18],PARAMETER[\"standard_parallel_2\",-36],PARAMETER[\""); add_srs_wkt (p, 9, "latitude_of_center\",0],PARAMETER[\"longitude_of_center\""); add_srs_wkt (p, 10, ",132],PARAMETER[\"false_easting\",0],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"3577\"]]"); p = add_epsg_def (filter, first, last, 3578, "epsg", 3578, "NAD83 / Yukon Albers"); add_proj4text (p, 0, "+proj=aea +lat_1=61.66666666666666 +lat_2=68 +lat_0=59 +"); add_proj4text (p, 1, "lon_0=-132.5 +x_0=500000 +y_0=500000 +datum=NAD83 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Yukon Albers\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Albers_Conic_Equal_A"); add_srs_wkt (p, 7, "rea\"],PARAMETER[\"standard_parallel_1\",61.666666666666"); add_srs_wkt (p, 8, "66],PARAMETER[\"standard_parallel_2\",68],PARAMETER[\"la"); add_srs_wkt (p, 9, "titude_of_center\",59],PARAMETER[\"longitude_of_center\""); add_srs_wkt (p, 10, ",-132.5],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",500000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"3578\"]]"); p = add_epsg_def (filter, first, last, 3579, "epsg", 3579, "NAD83(CSRS) / Yukon Albers"); add_proj4text (p, 0, "+proj=aea +lat_1=61.66666666666666 +lat_2=68 +lat_0=59 +"); add_proj4text (p, 1, "lon_0=-132.5 +x_0=500000 +y_0=500000 +ellps=GRS80 +towgs"); add_proj4text (p, 2, "84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / Yukon Albers\",GEOGCS[\"NAD83(CSR"); add_srs_wkt (p, 1, "S)\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Albers_Conic_Equal_Area\"],PARAMETER[\"standard_p"); add_srs_wkt (p, 8, "arallel_1\",61.66666666666666],PARAMETER[\"standard_para"); add_srs_wkt (p, 9, "llel_2\",68],PARAMETER[\"latitude_of_center\",59],PARAME"); add_srs_wkt (p, 10, "TER[\"longitude_of_center\",-132.5],PARAMETER[\"false_ea"); add_srs_wkt (p, 11, "sting\",500000],PARAMETER[\"false_northing\",500000],UNI"); add_srs_wkt (p, 12, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 13, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "3579\"]]"); p = add_epsg_def (filter, first, last, 3580, "epsg", 3580, "NAD83 / NWT Lambert"); add_proj4text (p, 0, "+proj=lcc +lat_1=62 +lat_2=70 +lat_0=0 +lon_0=-112 +x_0="); add_proj4text (p, 1, "0 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / NWT Lambert\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co"); add_srs_wkt (p, 7, "nic_2SP\"],PARAMETER[\"standard_parallel_1\",62],PARAMET"); add_srs_wkt (p, 8, "ER[\"standard_parallel_2\",70],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 9, "rigin\",0],PARAMETER[\"central_meridian\",-112],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",0],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 11, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 12, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"3580\"]]"); p = add_epsg_def (filter, first, last, 3581, "epsg", 3581, "NAD83(CSRS) / NWT Lambert"); add_proj4text (p, 0, "+proj=lcc +lat_1=62 +lat_2=70 +lat_0=0 +lon_0=-112 +x_0="); add_proj4text (p, 1, "0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +n"); add_proj4text (p, 2, "o_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / NWT Lambert\",GEOGCS[\"NAD83(CSRS"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 8, "_parallel_1\",62],PARAMETER[\"standard_parallel_2\",70],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); add_srs_wkt (p, 10, "meridian\",-112],PARAMETER[\"false_easting\",0],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\","); add_srs_wkt (p, 13, "NORTH],AUTHORITY[\"EPSG\",\"3581\"]]"); p = add_epsg_def (filter, first, last, 3582, "epsg", 3582, "NAD83(NSRS2007) / Maryland (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.45 +lat_2=38.3 +lat_0=37.66666666666"); add_proj4text (p, 1, "666 +lon_0=-77 +x_0=399999.9998983998 +y_0=0 +ellps=GRS8"); add_proj4text (p, 2, "0 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Maryland (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference"); add_srs_wkt (p, 2, "_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, "01,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_1\",39.45],PARAMETER[\"standa"); add_srs_wkt (p, 9, "rd_parallel_2\",38.3],PARAMETER[\"latitude_of_origin\",3"); add_srs_wkt (p, 10, "7.66666666666666],PARAMETER[\"central_meridian\",-77],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_easting\",1312333.333],PARAMETER[\"false"); add_srs_wkt (p, 12, "_northing\",0],UNIT[\"US survey foot\",0.304800609601219"); add_srs_wkt (p, 13, "2,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 14, "Y\",NORTH],AUTHORITY[\"EPSG\",\"3582\"]]"); p = add_epsg_def (filter, first, last, 3583, "epsg", 3583, "NAD83(NSRS2007) / Massachusetts Island"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.48333333333333 +lat_2=41.28333333333"); add_proj4text (p, 1, "333 +lat_0=41 +lon_0=-70.5 +x_0=500000 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, "80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Massachusetts Island\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refe"); add_srs_wkt (p, 2, "rence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25"); add_srs_wkt (p, 3, "7222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,"); add_srs_wkt (p, 4, "0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, "G\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 8, "],PARAMETER[\"standard_parallel_1\",41.48333333333333],P"); add_srs_wkt (p, 9, "ARAMETER[\"standard_parallel_2\",41.28333333333333],PARA"); add_srs_wkt (p, 10, "METER[\"latitude_of_origin\",41],PARAMETER[\"central_mer"); add_srs_wkt (p, 11, "idian\",-70.5],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 12, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 14, "HORITY[\"EPSG\",\"3583\"]]"); p = add_epsg_def (filter, first, last, 3584, "epsg", 3584, "NAD83(NSRS2007) / Massachusetts Island (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.48333333333333 +lat_2=41.28333333333"); add_proj4text (p, 1, "333 +lat_0=41 +lon_0=-70.5 +x_0=500000.0001016001 +y_0=0"); add_proj4text (p, 2, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_de"); add_proj4text (p, 3, "fs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Massachusetts Island (ftUS)\""); add_srs_wkt (p, 1, ",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spati"); add_srs_wkt (p, 2, "al_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 3, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 4, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Green"); add_srs_wkt (p, 5, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 6, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 7, "Y[\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Con"); add_srs_wkt (p, 8, "ic_2SP\"],PARAMETER[\"standard_parallel_1\",41.483333333"); add_srs_wkt (p, 9, "33333],PARAMETER[\"standard_parallel_2\",41.283333333333"); add_srs_wkt (p, 10, "33],PARAMETER[\"latitude_of_origin\",41],PARAMETER[\"cen"); add_srs_wkt (p, 11, "tral_meridian\",-70.5],PARAMETER[\"false_easting\",16404"); add_srs_wkt (p, 12, "16.667],PARAMETER[\"false_northing\",0],UNIT[\"US survey"); add_srs_wkt (p, 13, " foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]]"); add_srs_wkt (p, 14, ",AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 15, "3584\"]]"); p = add_epsg_def (filter, first, last, 3585, "epsg", 3585, "NAD83(NSRS2007) / Massachusetts Mainland"); add_proj4text (p, 0, "+proj=lcc +lat_1=42.68333333333333 +lat_2=41.71666666666"); add_proj4text (p, 1, "667 +lat_0=41 +lon_0=-71.5 +x_0=200000 +y_0=750000 +ellp"); add_proj4text (p, 2, "s=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Massachusetts Mainland\",GEOG"); add_srs_wkt (p, 1, "CS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Re"); add_srs_wkt (p, 2, "ference_System_2007\",SPHEROID[\"GRS 1980\",6378137,298."); add_srs_wkt (p, 3, "257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,"); add_srs_wkt (p, 4, "0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 8, "\"],PARAMETER[\"standard_parallel_1\",42.68333333333333]"); add_srs_wkt (p, 9, ",PARAMETER[\"standard_parallel_2\",41.71666666666667],PA"); add_srs_wkt (p, 10, "RAMETER[\"latitude_of_origin\",41],PARAMETER[\"central_m"); add_srs_wkt (p, 11, "eridian\",-71.5],PARAMETER[\"false_easting\",200000],PAR"); add_srs_wkt (p, 12, "AMETER[\"false_northing\",750000],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); add_srs_wkt (p, 14, "TH],AUTHORITY[\"EPSG\",\"3585\"]]"); p = add_epsg_def (filter, first, last, 3586, "epsg", 3586, "NAD83(NSRS2007) / Massachusetts Mainland (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=42.68333333333333 +lat_2=41.71666666666"); add_proj4text (p, 1, "667 +lat_0=41 +lon_0=-71.5 +x_0=200000.0001016002 +y_0=7"); add_proj4text (p, 2, "50000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Massachusetts Mainland (ftUS)"); add_srs_wkt (p, 1, "\",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spa"); add_srs_wkt (p, 2, "tial_Reference_System_2007\",SPHEROID[\"GRS 1980\",63781"); add_srs_wkt (p, 3, "37,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0"); add_srs_wkt (p, 4, ",0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Gre"); add_srs_wkt (p, 5, "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 6, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_C"); add_srs_wkt (p, 8, "onic_2SP\"],PARAMETER[\"standard_parallel_1\",42.6833333"); add_srs_wkt (p, 9, "3333333],PARAMETER[\"standard_parallel_2\",41.7166666666"); add_srs_wkt (p, 10, "6667],PARAMETER[\"latitude_of_origin\",41],PARAMETER[\"c"); add_srs_wkt (p, 11, "entral_meridian\",-71.5],PARAMETER[\"false_easting\",656"); add_srs_wkt (p, 12, "166.667],PARAMETER[\"false_northing\",2460625],UNIT[\"US"); add_srs_wkt (p, 13, " survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 14, "003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 15, "PSG\",\"3586\"]]"); p = add_epsg_def (filter, first, last, 3587, "epsg", 3587, "NAD83(NSRS2007) / Michigan Central"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.7 +lat_2=44.18333333333333 +lat_0=43"); add_proj4text (p, 1, ".31666666666667 +lon_0=-84.36666666666666 +x_0=6000000 +"); add_proj4text (p, 2, "y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 3, "efs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Michigan Central\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referenc"); add_srs_wkt (p, 2, "e_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],P"); add_srs_wkt (p, 8, "ARAMETER[\"standard_parallel_1\",45.7],PARAMETER[\"stand"); add_srs_wkt (p, 9, "ard_parallel_2\",44.18333333333333],PARAMETER[\"latitude"); add_srs_wkt (p, 10, "_of_origin\",43.31666666666667],PARAMETER[\"central_meri"); add_srs_wkt (p, 11, "dian\",-84.36666666666666],PARAMETER[\"false_easting\",6"); add_srs_wkt (p, 12, "000000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 14, "\",NORTH],AUTHORITY[\"EPSG\",\"3587\"]]"); p = add_epsg_def (filter, first, last, 3588, "epsg", 3588, "NAD83(NSRS2007) / Michigan Central (ft)"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.7 +lat_2=44.18333333333333 +lat_0=43"); add_proj4text (p, 1, ".31666666666667 +lon_0=-84.36666666666666 +x_0=5999999.9"); add_proj4text (p, 2, "99976001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +uni"); add_proj4text (p, 3, "ts=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Michigan Central (ft)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Ref"); add_srs_wkt (p, 2, "erence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2"); add_srs_wkt (p, 3, "57222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0"); add_srs_wkt (p, 4, ",0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 8, "\"],PARAMETER[\"standard_parallel_1\",45.7],PARAMETER[\""); add_srs_wkt (p, 9, "standard_parallel_2\",44.18333333333333],PARAMETER[\"lat"); add_srs_wkt (p, 10, "itude_of_origin\",43.31666666666667],PARAMETER[\"central"); add_srs_wkt (p, 11, "_meridian\",-84.36666666666666],PARAMETER[\"false_eastin"); add_srs_wkt (p, 12, "g\",19685039.37],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 13, "foot\",0.3048,AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\"X\",E"); add_srs_wkt (p, 14, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3588\"]]"); p = add_epsg_def (filter, first, last, 3589, "epsg", 3589, "NAD83(NSRS2007) / Michigan North"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.08333333333334 +lat_2=45.48333333333"); add_proj4text (p, 1, "333 +lat_0=44.78333333333333 +lon_0=-87 +x_0=8000000 +y_"); add_proj4text (p, 2, "0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_def"); add_proj4text (p, 3, "s"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Michigan North\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_"); add_srs_wkt (p, 2, "System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_1\",47.08333333333334],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_2\",45.48333333333333],PARAMETER"); add_srs_wkt (p, 10, "[\"latitude_of_origin\",44.78333333333333],PARAMETER[\"c"); add_srs_wkt (p, 11, "entral_meridian\",-87],PARAMETER[\"false_easting\",80000"); add_srs_wkt (p, 12, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); add_srs_wkt (p, 14, "ORTH],AUTHORITY[\"EPSG\",\"3589\"]]"); p = add_epsg_def (filter, first, last, 3590, "epsg", 3590, "NAD83(NSRS2007) / Michigan North (ft)"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.08333333333334 +lat_2=45.48333333333"); add_proj4text (p, 1, "333 +lat_0=44.78333333333333 +lon_0=-87 +x_0=7999999.999"); add_proj4text (p, 2, "968001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units"); add_proj4text (p, 3, "=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Michigan North (ft)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 8, "],PARAMETER[\"standard_parallel_1\",47.08333333333334],P"); add_srs_wkt (p, 9, "ARAMETER[\"standard_parallel_2\",45.48333333333333],PARA"); add_srs_wkt (p, 10, "METER[\"latitude_of_origin\",44.78333333333333],PARAMETE"); add_srs_wkt (p, 11, "R[\"central_meridian\",-87],PARAMETER[\"false_easting\","); add_srs_wkt (p, 12, "26246719.16],PARAMETER[\"false_northing\",0],UNIT[\"foot"); add_srs_wkt (p, 13, "\",0.3048,AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 14, ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3590\"]]"); p = add_epsg_def (filter, first, last, 3591, "epsg", 3591, "NAD83(NSRS2007) / Michigan Oblique Mercator"); add_proj4text (p, 0, "+proj=omerc +lat_0=45.30916666666666 +lonc=-86 +alpha=33"); add_proj4text (p, 1, "7.25556 +k=0.9996 +x_0=2546731.496 +y_0=-4354009.816 +ga"); add_proj4text (p, 2, "mma=337.25556 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units"); add_proj4text (p, 3, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Michigan Oblique Mercator\",G"); add_srs_wkt (p, 1, "EOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial"); add_srs_wkt (p, 2, "_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 3, "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 4, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 5, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 6, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4759\"]],PROJECTION[\"Hotine_Oblique_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_center\",45.30916666666666],"); add_srs_wkt (p, 9, "PARAMETER[\"longitude_of_center\",-86],PARAMETER[\"azimu"); add_srs_wkt (p, 10, "th\",337.25556],PARAMETER[\"rectified_grid_angle\",337.2"); add_srs_wkt (p, 11, "5556],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 12, "se_easting\",2546731.496],PARAMETER[\"false_northing\",-"); add_srs_wkt (p, 13, "4354009.816],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 14, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 15, ",\"3591\"]]"); p = add_epsg_def (filter, first, last, 3592, "epsg", 3592, "NAD83(NSRS2007) / Michigan South"); add_proj4text (p, 0, "+proj=lcc +lat_1=43.66666666666666 +lat_2=42.1 +lat_0=41"); add_proj4text (p, 1, ".5 +lon_0=-84.36666666666666 +x_0=4000000 +y_0=0 +ellps="); add_proj4text (p, 2, "GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Michigan South\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_"); add_srs_wkt (p, 2, "System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_1\",43.66666666666666],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_2\",42.1],PARAMETER[\"latitude_o"); add_srs_wkt (p, 10, "f_origin\",41.5],PARAMETER[\"central_meridian\",-84.3666"); add_srs_wkt (p, 11, "6666666666],PARAMETER[\"false_easting\",4000000],PARAMET"); add_srs_wkt (p, 12, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 14, "RITY[\"EPSG\",\"3592\"]]"); p = add_epsg_def (filter, first, last, 3593, "epsg", 3593, "NAD83(NSRS2007) / Michigan South (ft)"); add_proj4text (p, 0, "+proj=lcc +lat_1=43.66666666666666 +lat_2=42.1 +lat_0=41"); add_proj4text (p, 1, ".5 +lon_0=-84.36666666666666 +x_0=3999999.999984 +y_0=0 "); add_proj4text (p, 2, "+ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Michigan South (ft)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 8, "],PARAMETER[\"standard_parallel_1\",43.66666666666666],P"); add_srs_wkt (p, 9, "ARAMETER[\"standard_parallel_2\",42.1],PARAMETER[\"latit"); add_srs_wkt (p, 10, "ude_of_origin\",41.5],PARAMETER[\"central_meridian\",-84"); add_srs_wkt (p, 11, ".36666666666666],PARAMETER[\"false_easting\",13123359.58"); add_srs_wkt (p, 12, "],PARAMETER[\"false_northing\",0],UNIT[\"foot\",0.3048,A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"9002\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 14, ",NORTH],AUTHORITY[\"EPSG\",\"3593\"]]"); p = add_epsg_def (filter, first, last, 3594, "epsg", 3594, "NAD83(NSRS2007) / Minnesota Central"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=4"); add_proj4text (p, 1, "5 +lon_0=-94.25 +x_0=800000 +y_0=100000 +ellps=GRS80 +to"); add_proj4text (p, 2, "wgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Minnesota Central\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 8, "PARAMETER[\"standard_parallel_1\",47.05],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_2\",45.61666666666667],PARAMETER[\"latitu"); add_srs_wkt (p, 10, "de_of_origin\",45],PARAMETER[\"central_meridian\",-94.25"); add_srs_wkt (p, 11, "],PARAMETER[\"false_easting\",800000],PARAMETER[\"false_"); add_srs_wkt (p, 12, "northing\",100000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"3594\"]]"); p = add_epsg_def (filter, first, last, 3595, "epsg", 3595, "NAD83(NSRS2007) / Minnesota North"); add_proj4text (p, 0, "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333"); add_proj4text (p, 1, "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000 +y"); add_proj4text (p, 2, "_0=100000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Minnesota North\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference"); add_srs_wkt (p, 2, "_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, "01,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_1\",48.63333333333333],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_2\",47.03333333333333],PARAMETER"); add_srs_wkt (p, 10, "[\"latitude_of_origin\",46.5],PARAMETER[\"central_meridi"); add_srs_wkt (p, 11, "an\",-93.1],PARAMETER[\"false_easting\",800000],PARAMETE"); add_srs_wkt (p, 12, "R[\"false_northing\",100000],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 14, "UTHORITY[\"EPSG\",\"3595\"]]"); p = add_epsg_def (filter, first, last, 3596, "epsg", 3596, "NAD83(NSRS2007) / Minnesota South"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333"); add_proj4text (p, 1, "333 +lat_0=43 +lon_0=-94 +x_0=800000 +y_0=100000 +ellps="); add_proj4text (p, 2, "GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Minnesota South\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference"); add_srs_wkt (p, 2, "_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, "01,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_1\",45.21666666666667],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_2\",43.78333333333333],PARAMETER"); add_srs_wkt (p, 10, "[\"latitude_of_origin\",43],PARAMETER[\"central_meridian"); add_srs_wkt (p, 11, "\",-94],PARAMETER[\"false_easting\",800000],PARAMETER[\""); add_srs_wkt (p, 12, "false_northing\",100000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 14, "RITY[\"EPSG\",\"3596\"]]"); p = add_epsg_def (filter, first, last, 3597, "epsg", 3597, "NAD83(NSRS2007) / Mississippi East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.9"); add_proj4text (p, 1, "9995 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Mississippi East\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referenc"); add_srs_wkt (p, 2, "e_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",29.5],PARAMETER[\"central_meridi"); add_srs_wkt (p, 9, "an\",-88.83333333333333],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 10, "995],PARAMETER[\"false_easting\",300000],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 12, "001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"3597\"]]"); p = add_epsg_def (filter, first, last, 3598, "epsg", 3598, "NAD83(NSRS2007) / Mississippi East (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.9"); add_proj4text (p, 1, "9995 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +towgs84"); add_proj4text (p, 2, "=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Mississippi East (ftUS)\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_R"); add_srs_wkt (p, 2, "eference_System_2007\",SPHEROID[\"GRS 1980\",6378137,298"); add_srs_wkt (p, 3, ".257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0"); add_srs_wkt (p, 4, ",0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 5, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 6, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 7, "EPSG\",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PA"); add_srs_wkt (p, 8, "RAMETER[\"latitude_of_origin\",29.5],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",-88.83333333333333],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",0.99995],PARAMETER[\"false_easting\",984250.000000000"); add_srs_wkt (p, 11, "2],PARAMETER[\"false_northing\",0],UNIT[\"US survey foot"); add_srs_wkt (p, 12, "\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS"); add_srs_wkt (p, 13, "[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3598"); add_srs_wkt (p, 14, "\"]]"); p = add_epsg_def (filter, first, last, 3599, "epsg", 3599, "NAD83(NSRS2007) / Mississippi West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.9"); add_proj4text (p, 1, "9995 +x_0=700000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Mississippi West\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referenc"); add_srs_wkt (p, 2, "e_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",29.5],PARAMETER[\"central_meridi"); add_srs_wkt (p, 9, "an\",-90.33333333333333],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 10, "995],PARAMETER[\"false_easting\",700000],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 12, "001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"3599\"]]"); p = add_epsg_def (filter, first, last, 3600, "epsg", 3600, "NAD83(NSRS2007) / Mississippi West (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.9"); add_proj4text (p, 1, "9995 +x_0=699999.9998983998 +y_0=0 +ellps=GRS80 +towgs84"); add_proj4text (p, 2, "=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Mississippi West (ftUS)\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_R"); add_srs_wkt (p, 2, "eference_System_2007\",SPHEROID[\"GRS 1980\",6378137,298"); add_srs_wkt (p, 3, ".257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0"); add_srs_wkt (p, 4, ",0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 5, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 6, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 7, "EPSG\",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PA"); add_srs_wkt (p, 8, "RAMETER[\"latitude_of_origin\",29.5],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",-90.33333333333333],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",0.99995],PARAMETER[\"false_easting\",2296583.333],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"US survey foot\",0.3"); add_srs_wkt (p, 12, "048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); add_srs_wkt (p, 13, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3600\"]]"); p = add_epsg_def (filter, first, last, 3601, "epsg", 3601, "NAD83(NSRS2007) / Missouri Central"); add_proj4text (p, 0, "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-92.5 +k=0.9"); add_proj4text (p, 1, "99933333 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,"); add_proj4text (p, 2, "0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Missouri Central\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referenc"); add_srs_wkt (p, 2, "e_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",35.83333333333334],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",-92.5],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 10, "9933333],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"3601\"]]"); p = add_epsg_def (filter, first, last, 3602, "epsg", 3602, "NAD83(NSRS2007) / Missouri East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-90.5 +k=0.9"); add_proj4text (p, 1, "99933333 +x_0=250000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,"); add_proj4text (p, 2, "0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Missouri East\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",35.83333333333334],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",-90.5],PARAMETER[\"scale_factor\",0.99993"); add_srs_wkt (p, 10, "3333],PARAMETER[\"false_easting\",250000],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"3602\"]]"); p = add_epsg_def (filter, first, last, 3603, "epsg", 3603, "NAD83(NSRS2007) / Missouri West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36.16666666666666 +lon_0=-94.5 +k=0.9"); add_proj4text (p, 1, "99941177 +x_0=850000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,"); add_proj4text (p, 2, "0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Missouri West\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",36.16666666666666],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",-94.5],PARAMETER[\"scale_factor\",0.99994"); add_srs_wkt (p, 10, "1177],PARAMETER[\"false_easting\",850000],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"3603\"]]"); p = add_epsg_def (filter, first, last, 3604, "epsg", 3604, "NAD83(NSRS2007) / Montana"); add_proj4text (p, 0, "+proj=lcc +lat_1=49 +lat_2=45 +lat_0=44.25 +lon_0=-109.5"); add_proj4text (p, 1, " +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 "); add_proj4text (p, 2, "+units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Montana\",GEOGCS[\"NAD83(NSRS"); add_srs_wkt (p, 1, "2007)\",DATUM[\"NAD83_National_Spatial_Reference_System_"); add_srs_wkt (p, 2, "2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHO"); add_srs_wkt (p, 3, "RITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORIT"); add_srs_wkt (p, 4, "Y[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4759\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 8, "standard_parallel_1\",49],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 9, "2\",45],PARAMETER[\"latitude_of_origin\",44.25],PARAMETE"); add_srs_wkt (p, 10, "R[\"central_meridian\",-109.5],PARAMETER[\"false_easting"); add_srs_wkt (p, 11, "\",600000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Y\",NORTH],AUTHORITY[\"EPSG\",\"3604\"]]"); p = add_epsg_def (filter, first, last, 3605, "epsg", 3605, "NAD83(NSRS2007) / Montana (ft)"); add_proj4text (p, 0, "+proj=lcc +lat_1=49 +lat_2=45 +lat_0=44.25 +lon_0=-109.5"); add_proj4text (p, 1, " +x_0=599999.9999976 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,"); add_proj4text (p, 2, "0,0,0,0 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Montana (ft)\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 7, "59\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"standard_parallel_1\",49],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_2\",45],PARAMETER[\"latitude_of_origin\",44.25],P"); add_srs_wkt (p, 10, "ARAMETER[\"central_meridian\",-109.5],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",1968503.937],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 12, "NIT[\"foot\",0.3048,AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\""); add_srs_wkt (p, 13, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3605\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def (filter, first, last, 3606, "epsg", 3606, "NAD83(NSRS2007) / Nebraska"); add_proj4text (p, 0, "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +"); add_proj4text (p, 1, "lon_0=-100 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,"); add_proj4text (p, 2, "0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Nebraska\",GEOGCS[\"NAD83(NSR"); add_srs_wkt (p, 1, "S2007)\",DATUM[\"NAD83_National_Spatial_Reference_System"); add_srs_wkt (p, 2, "_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4759\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 8, "[\"standard_parallel_1\",43],PARAMETER[\"standard_parall"); add_srs_wkt (p, 9, "el_2\",40],PARAMETER[\"latitude_of_origin\",39.833333333"); add_srs_wkt (p, 10, "33334],PARAMETER[\"central_meridian\",-100],PARAMETER[\""); add_srs_wkt (p, 11, "false_easting\",500000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 13, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3606\"]]"); p = add_epsg_def (filter, first, last, 3607, "epsg", 3607, "NAD83(NSRS2007) / Nevada Central"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0."); add_proj4text (p, 1, "9999 +x_0=500000 +y_0=6000000 +ellps=GRS80 +towgs84=0,0,"); add_proj4text (p, 2, "0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Nevada Central\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_"); add_srs_wkt (p, 2, "System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",34.75],PARAMETER[\"central_meridian"); add_srs_wkt (p, 9, "\",-116.6666666666667],PARAMETER[\"scale_factor\",0.9999"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",6000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"3607\"]]"); p = add_epsg_def (filter, first, last, 3608, "epsg", 3608, "NAD83(NSRS2007) / Nevada Central (ft US)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0."); add_proj4text (p, 1, "9999 +x_0=500000.00001016 +y_0=6000000 +ellps=GRS80 +tow"); add_proj4text (p, 2, "gs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Nevada Central (ft US)\",GEOG"); add_srs_wkt (p, 1, "CS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Re"); add_srs_wkt (p, 2, "ference_System_2007\",SPHEROID[\"GRS 1980\",6378137,298."); add_srs_wkt (p, 3, "257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,"); add_srs_wkt (p, 4, "0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 8, "METER[\"latitude_of_origin\",34.75],PARAMETER[\"central_"); add_srs_wkt (p, 9, "meridian\",-116.6666666666667],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9999],PARAMETER[\"false_easting\",1640416.6667],PARAM"); add_srs_wkt (p, 11, "ETER[\"false_northing\",19685000],UNIT[\"US survey foot\""); add_srs_wkt (p, 12, ",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\""); add_srs_wkt (p, 13, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3608\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def (filter, first, last, 3609, "epsg", 3609, "NAD83(NSRS2007) / Nevada East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0."); add_proj4text (p, 1, "9999 +x_0=200000 +y_0=8000000 +ellps=GRS80 +towgs84=0,0,"); add_proj4text (p, 2, "0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Nevada East\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, "tem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"475"); add_srs_wkt (p, 7, "9\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 8, "titude_of_origin\",34.75],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",-115.5833333333333],PARAMETER[\"scale_factor\",0.9999],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",200000],PARAMETER[\"false_no"); add_srs_wkt (p, 11, "rthing\",8000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"3609\"]]"); p = add_epsg_def (filter, first, last, 3610, "epsg", 3610, "NAD83(NSRS2007) / Nevada East (ft US)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0."); add_proj4text (p, 1, "9999 +x_0=200000.00001016 +y_0=8000000.000010163 +ellps="); add_proj4text (p, 2, "GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Nevada East (ft US)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); add_srs_wkt (p, 8, "TER[\"latitude_of_origin\",34.75],PARAMETER[\"central_me"); add_srs_wkt (p, 9, "ridian\",-115.5833333333333],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 10, "0.9999],PARAMETER[\"false_easting\",656166.6667],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",26246666.66670001],UNIT[\"US surve"); add_srs_wkt (p, 12, "y foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]"); add_srs_wkt (p, 13, "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 14, "\"3610\"]]"); p = add_epsg_def (filter, first, last, 3611, "epsg", 3611, "NAD83(NSRS2007) / Nevada West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0."); add_proj4text (p, 1, "9999 +x_0=800000 +y_0=4000000 +ellps=GRS80 +towgs84=0,0,"); add_proj4text (p, 2, "0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Nevada West\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, "tem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"475"); add_srs_wkt (p, 7, "9\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 8, "titude_of_origin\",34.75],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",-118.5833333333333],PARAMETER[\"scale_factor\",0.9999],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",800000],PARAMETER[\"false_no"); add_srs_wkt (p, 11, "rthing\",4000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"3611\"]]"); p = add_epsg_def (filter, first, last, 3612, "epsg", 3612, "NAD83(NSRS2007) / Nevada West (ft US)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0."); add_proj4text (p, 1, "9999 +x_0=800000.0000101599 +y_0=3999999.99998984 +ellps"); add_proj4text (p, 2, "=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Nevada West (ft US)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); add_srs_wkt (p, 8, "TER[\"latitude_of_origin\",34.75],PARAMETER[\"central_me"); add_srs_wkt (p, 9, "ridian\",-118.5833333333333],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 10, "0.9999],PARAMETER[\"false_easting\",2624666.6667],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",13123333.3333],UNIT[\"US survey f"); add_srs_wkt (p, 12, "oot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],A"); add_srs_wkt (p, 13, "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 14, "612\"]]"); p = add_epsg_def (filter, first, last, 3613, "epsg", 3613, "NAD83(NSRS2007) / New Hampshire"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.9"); add_proj4text (p, 1, "99966667 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,"); add_proj4text (p, 2, "0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / New Hampshire\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",42.5],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",-71.66666666666667],PARAMETER[\"scale_factor\",0.999966"); add_srs_wkt (p, 10, "667],PARAMETER[\"false_easting\",300000],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 12, "001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"3613\"]]"); p = add_epsg_def (filter, first, last, 3614, "epsg", 3614, "NAD83(NSRS2007) / New Hampshire (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.9"); add_proj4text (p, 1, "99966667 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +tow"); add_proj4text (p, 2, "gs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / New Hampshire (ftUS)\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refe"); add_srs_wkt (p, 2, "rence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25"); add_srs_wkt (p, 3, "7222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,"); add_srs_wkt (p, 4, "0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, "G\",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"latitude_of_origin\",42.5],PARAMETER[\"central_me"); add_srs_wkt (p, 9, "ridian\",-71.66666666666667],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 10, "0.999966667],PARAMETER[\"false_easting\",984250.00000000"); add_srs_wkt (p, 11, "02],PARAMETER[\"false_northing\",0],UNIT[\"US survey foo"); add_srs_wkt (p, 12, "t\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXI"); add_srs_wkt (p, 13, "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"361"); add_srs_wkt (p, 14, "4\"]]"); p = add_epsg_def (filter, first, last, 3615, "epsg", 3615, "NAD83(NSRS2007) / New Jersey"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9"); add_proj4text (p, 1, "999 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 2, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / New Jersey\",GEOGCS[\"NAD83(N"); add_srs_wkt (p, 1, "SRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Syst"); add_srs_wkt (p, 2, "em_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4759"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",38.83333333333334],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",-74.5],PARAMETER[\"scale_factor\",0.9999],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_easting\",150000],PARAMETER[\"false_nort"); add_srs_wkt (p, 11, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, ",AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "3615\"]]"); p = add_epsg_def (filter, first, last, 3616, "epsg", 3616, "NAD83(NSRS2007) / New Jersey (ft US)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9"); add_proj4text (p, 1, "999 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 2, ",0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / New Jersey (ft US)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 8, "R[\"latitude_of_origin\",38.83333333333334],PARAMETER[\""); add_srs_wkt (p, 9, "central_meridian\",-74.5],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 10, "999],PARAMETER[\"false_easting\",492125],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012"); add_srs_wkt (p, 12, "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS["); add_srs_wkt (p, 13, "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3616\"]]"); p = add_epsg_def (filter, first, last, 3617, "epsg", 3617, "NAD83(NSRS2007) / New Mexico Central"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=5000"); add_proj4text (p, 1, "00 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +"); add_proj4text (p, 2, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / New Mexico Central\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 8, "R[\"latitude_of_origin\",31],PARAMETER[\"central_meridia"); add_srs_wkt (p, 9, "n\",-106.25],PARAMETER[\"scale_factor\",0.9999],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3617\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def (filter, first, last, 3618, "epsg", 3618, "NAD83(NSRS2007) / New Mexico Central (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=5000"); add_proj4text (p, 1, "00.0001016001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / New Mexico Central (ftUS)\",G"); add_srs_wkt (p, 1, "EOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial"); add_srs_wkt (p, 2, "_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 3, "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 4, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 5, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 6, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 8, "PARAMETER[\"latitude_of_origin\",31],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",-106.25],PARAMETER[\"scale_factor\",0.9999],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",1640416.667],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012"); add_srs_wkt (p, 12, "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS["); add_srs_wkt (p, 13, "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3618\"]]"); p = add_epsg_def (filter, first, last, 3619, "epsg", 3619, "NAD83(NSRS2007) / New Mexico East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999"); add_proj4text (p, 1, "909091 +x_0=165000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / New Mexico East\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference"); add_srs_wkt (p, 2, "_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, "01,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",31],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 9, "-104.3333333333333],PARAMETER[\"scale_factor\",0.9999090"); add_srs_wkt (p, 10, "91],PARAMETER[\"false_easting\",165000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"3619\"]]"); p = add_epsg_def (filter, first, last, 3620, "epsg", 3620, "NAD83(NSRS2007) / New Mexico East (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999"); add_proj4text (p, 1, "909091 +x_0=165000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 2, "0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / New Mexico East (ftUS)\",GEOG"); add_srs_wkt (p, 1, "CS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Re"); add_srs_wkt (p, 2, "ference_System_2007\",SPHEROID[\"GRS 1980\",6378137,298."); add_srs_wkt (p, 3, "257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,"); add_srs_wkt (p, 4, "0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 8, "METER[\"latitude_of_origin\",31],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-104.3333333333333],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".999909091],PARAMETER[\"false_easting\",541337.5],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",0],UNIT[\"US survey foot\",0.3048"); add_srs_wkt (p, 12, "006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3620\"]]"); p = add_epsg_def (filter, first, last, 3621, "epsg", 3621, "NAD83(NSRS2007) / New Mexico West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999"); add_proj4text (p, 1, "916667 +x_0=830000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / New Mexico West\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference"); add_srs_wkt (p, 2, "_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, "01,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",31],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 9, "-107.8333333333333],PARAMETER[\"scale_factor\",0.9999166"); add_srs_wkt (p, 10, "67],PARAMETER[\"false_easting\",830000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"3621\"]]"); p = add_epsg_def (filter, first, last, 3622, "epsg", 3622, "NAD83(NSRS2007) / New Mexico West (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999"); add_proj4text (p, 1, "916667 +x_0=830000.0001016001 +y_0=0 +ellps=GRS80 +towgs"); add_proj4text (p, 2, "84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / New Mexico West (ftUS)\",GEOG"); add_srs_wkt (p, 1, "CS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Re"); add_srs_wkt (p, 2, "ference_System_2007\",SPHEROID[\"GRS 1980\",6378137,298."); add_srs_wkt (p, 3, "257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,"); add_srs_wkt (p, 4, "0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 8, "METER[\"latitude_of_origin\",31],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-107.8333333333333],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".999916667],PARAMETER[\"false_easting\",2723091.667],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"US survey foot\",0.3"); add_srs_wkt (p, 12, "048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); add_srs_wkt (p, 13, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3622\"]]"); p = add_epsg_def (filter, first, last, 3623, "epsg", 3623, "NAD83(NSRS2007) / New York Central"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.999"); add_proj4text (p, 1, "9375 +x_0=250000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / New York Central\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referenc"); add_srs_wkt (p, 2, "e_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",40],PARAMETER[\"central_meridian"); add_srs_wkt (p, 9, "\",-76.58333333333333],PARAMETER[\"scale_factor\",0.9999"); add_srs_wkt (p, 10, "375],PARAMETER[\"false_easting\",250000],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 12, "001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"3623\"]]"); p = add_epsg_def (filter, first, last, 3624, "epsg", 3624, "NAD83(NSRS2007) / New York Central (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.999"); add_proj4text (p, 1, "9375 +x_0=249999.9998983998 +y_0=0 +ellps=GRS80 +towgs84"); add_proj4text (p, 2, "=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / New York Central (ftUS)\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_R"); add_srs_wkt (p, 2, "eference_System_2007\",SPHEROID[\"GRS 1980\",6378137,298"); add_srs_wkt (p, 3, ".257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0"); add_srs_wkt (p, 4, ",0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 5, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 6, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 7, "EPSG\",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PA"); add_srs_wkt (p, 8, "RAMETER[\"latitude_of_origin\",40],PARAMETER[\"central_m"); add_srs_wkt (p, 9, "eridian\",-76.58333333333333],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9999375],PARAMETER[\"false_easting\",820208.333000000"); add_srs_wkt (p, 11, "2],PARAMETER[\"false_northing\",0],UNIT[\"US survey foot"); add_srs_wkt (p, 12, "\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS"); add_srs_wkt (p, 13, "[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3624"); add_srs_wkt (p, 14, "\"]]"); p = add_epsg_def (filter, first, last, 3625, "epsg", 3625, "NAD83(NSRS2007) / New York East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9"); add_proj4text (p, 1, "999 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 2, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / New York East\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",38.83333333333334],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",-74.5],PARAMETER[\"scale_factor\",0.9999]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",150000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"3625\"]]"); p = add_epsg_def (filter, first, last, 3626, "epsg", 3626, "NAD83(NSRS2007) / New York East (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9"); add_proj4text (p, 1, "999 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 2, ",0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / New York East (ftUS)\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refe"); add_srs_wkt (p, 2, "rence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25"); add_srs_wkt (p, 3, "7222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,"); add_srs_wkt (p, 4, "0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, "G\",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"latitude_of_origin\",38.83333333333334],PARAMETER"); add_srs_wkt (p, 9, "[\"central_meridian\",-74.5],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 10, "0.9999],PARAMETER[\"false_easting\",492125],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"US survey foot\",0.3048006096"); add_srs_wkt (p, 12, "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 13, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3626\"]]"); p = add_epsg_def (filter, first, last, 3627, "epsg", 3627, "NAD83(NSRS2007) / New York Long Island"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666"); add_proj4text (p, 1, "666 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / New York Long Island\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refe"); add_srs_wkt (p, 2, "rence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25"); add_srs_wkt (p, 3, "7222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,"); add_srs_wkt (p, 4, "0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, "G\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 8, "],PARAMETER[\"standard_parallel_1\",41.03333333333333],P"); add_srs_wkt (p, 9, "ARAMETER[\"standard_parallel_2\",40.66666666666666],PARA"); add_srs_wkt (p, 10, "METER[\"latitude_of_origin\",40.16666666666666],PARAMETE"); add_srs_wkt (p, 11, "R[\"central_meridian\",-74],PARAMETER[\"false_easting\","); add_srs_wkt (p, 12, "300000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 14, "\",NORTH],AUTHORITY[\"EPSG\",\"3627\"]]"); p = add_epsg_def (filter, first, last, 3628, "epsg", 3628, "NAD83(NSRS2007) / New York Long Island (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666"); add_proj4text (p, 1, "666 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000.0000"); add_proj4text (p, 2, "000001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units"); add_proj4text (p, 3, "=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / New York Long Island (ftUS)\""); add_srs_wkt (p, 1, ",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spati"); add_srs_wkt (p, 2, "al_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 3, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 4, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Green"); add_srs_wkt (p, 5, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 6, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 7, "Y[\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Con"); add_srs_wkt (p, 8, "ic_2SP\"],PARAMETER[\"standard_parallel_1\",41.033333333"); add_srs_wkt (p, 9, "33333],PARAMETER[\"standard_parallel_2\",40.666666666666"); add_srs_wkt (p, 10, "66],PARAMETER[\"latitude_of_origin\",40.16666666666666],"); add_srs_wkt (p, 11, "PARAMETER[\"central_meridian\",-74],PARAMETER[\"false_ea"); add_srs_wkt (p, 12, "sting\",984250.0000000002],PARAMETER[\"false_northing\","); add_srs_wkt (p, 13, "0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY["); add_srs_wkt (p, 14, "\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 15, "UTHORITY[\"EPSG\",\"3628\"]]"); p = add_epsg_def (filter, first, last, 3629, "epsg", 3629, "NAD83(NSRS2007) / New York West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.999"); add_proj4text (p, 1, "9375 +x_0=350000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / New York West\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",40],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 9, "-78.58333333333333],PARAMETER[\"scale_factor\",0.9999375"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",350000],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"3629\"]]"); p = add_epsg_def (filter, first, last, 3630, "epsg", 3630, "NAD83(NSRS2007) / New York West (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.999"); add_proj4text (p, 1, "9375 +x_0=350000.0001016001 +y_0=0 +ellps=GRS80 +towgs84"); add_proj4text (p, 2, "=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / New York West (ftUS)\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refe"); add_srs_wkt (p, 2, "rence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25"); add_srs_wkt (p, 3, "7222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,"); add_srs_wkt (p, 4, "0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, "G\",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"latitude_of_origin\",40],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, "dian\",-78.58333333333333],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 10, "9999375],PARAMETER[\"false_easting\",1148291.667],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",0],UNIT[\"US survey foot\",0.3048"); add_srs_wkt (p, 12, "006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3630\"]]"); p = add_epsg_def (filter, first, last, 3631, "epsg", 3631, "NAD83(NSRS2007) / North Carolina"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333"); add_proj4text (p, 1, "334 +lat_0=33.75 +lon_0=-79 +x_0=609601.22 +y_0=0 +ellps"); add_proj4text (p, 2, "=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / North Carolina\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_"); add_srs_wkt (p, 2, "System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_1\",36.16666666666666],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_2\",34.33333333333334],PARAMETER"); add_srs_wkt (p, 10, "[\"latitude_of_origin\",33.75],PARAMETER[\"central_merid"); add_srs_wkt (p, 11, "ian\",-79],PARAMETER[\"false_easting\",609601.22],PARAME"); add_srs_wkt (p, 12, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 14, "ORITY[\"EPSG\",\"3631\"]]"); p = add_epsg_def (filter, first, last, 3632, "epsg", 3632, "NAD83(NSRS2007) / North Carolina (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333"); add_proj4text (p, 1, "334 +lat_0=33.75 +lon_0=-79 +x_0=609601.2192024384 +y_0="); add_proj4text (p, 2, "0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_d"); add_proj4text (p, 3, "efs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / North Carolina (ftUS)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Ref"); add_srs_wkt (p, 2, "erence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2"); add_srs_wkt (p, 3, "57222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0"); add_srs_wkt (p, 4, ",0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 8, "\"],PARAMETER[\"standard_parallel_1\",36.16666666666666]"); add_srs_wkt (p, 9, ",PARAMETER[\"standard_parallel_2\",34.33333333333334],PA"); add_srs_wkt (p, 10, "RAMETER[\"latitude_of_origin\",33.75],PARAMETER[\"centra"); add_srs_wkt (p, 11, "l_meridian\",-79],PARAMETER[\"false_easting\",2000000],P"); add_srs_wkt (p, 12, "ARAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0"); add_srs_wkt (p, 13, ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X"); add_srs_wkt (p, 14, "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3632\"]]"); p = add_epsg_def (filter, first, last, 3633, "epsg", 3633, "NAD83(NSRS2007) / North Dakota North"); add_proj4text (p, 0, "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.43333333333"); add_proj4text (p, 1, "333 +lat_0=47 +lon_0=-100.5 +x_0=600000 +y_0=0 +ellps=GR"); add_proj4text (p, 2, "S80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / North Dakota North\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 8, "PARAMETER[\"standard_parallel_1\",48.73333333333333],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_2\",47.43333333333333],PARAME"); add_srs_wkt (p, 10, "TER[\"latitude_of_origin\",47],PARAMETER[\"central_merid"); add_srs_wkt (p, 11, "ian\",-100.5],PARAMETER[\"false_easting\",600000],PARAME"); add_srs_wkt (p, 12, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 14, "ORITY[\"EPSG\",\"3633\"]]"); p = add_epsg_def (filter, first, last, 3634, "epsg", 3634, "NAD83(NSRS2007) / North Dakota North (ft)"); add_proj4text (p, 0, "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.43333333333"); add_proj4text (p, 1, "333 +lat_0=47 +lon_0=-100.5 +x_0=599999.9999976 +y_0=0 +"); add_proj4text (p, 2, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / North Dakota North (ft)\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_R"); add_srs_wkt (p, 2, "eference_System_2007\",SPHEROID[\"GRS 1980\",6378137,298"); add_srs_wkt (p, 3, ".257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0"); add_srs_wkt (p, 4, ",0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 5, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 6, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 7, "EPSG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2"); add_srs_wkt (p, 8, "SP\"],PARAMETER[\"standard_parallel_1\",48.7333333333333"); add_srs_wkt (p, 9, "3],PARAMETER[\"standard_parallel_2\",47.43333333333333],"); add_srs_wkt (p, 10, "PARAMETER[\"latitude_of_origin\",47],PARAMETER[\"central"); add_srs_wkt (p, 11, "_meridian\",-100.5],PARAMETER[\"false_easting\",1968503."); add_srs_wkt (p, 12, "937],PARAMETER[\"false_northing\",0],UNIT[\"foot\",0.304"); add_srs_wkt (p, 13, "8,AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 14, "Y\",NORTH],AUTHORITY[\"EPSG\",\"3634\"]]"); p = add_epsg_def (filter, first, last, 3635, "epsg", 3635, "NAD83(NSRS2007) / North Dakota South"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.48333333333333 +lat_2=46.18333333333"); add_proj4text (p, 1, "333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=600000 +"); add_proj4text (p, 2, "y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 3, "efs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / North Dakota South\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 8, "PARAMETER[\"standard_parallel_1\",47.48333333333333],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_2\",46.18333333333333],PARAME"); add_srs_wkt (p, 10, "TER[\"latitude_of_origin\",45.66666666666666],PARAMETER["); add_srs_wkt (p, 11, "\"central_meridian\",-100.5],PARAMETER[\"false_easting\""); add_srs_wkt (p, 12, ",600000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 13, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 14, "Y\",NORTH],AUTHORITY[\"EPSG\",\"3635\"]]"); p = add_epsg_def (filter, first, last, 3636, "epsg", 3636, "NAD83(NSRS2007) / North Dakota South (ft)"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.48333333333333 +lat_2=46.18333333333"); add_proj4text (p, 1, "333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=599999.9"); add_proj4text (p, 2, "999976 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units"); add_proj4text (p, 3, "=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / North Dakota South (ft)\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_R"); add_srs_wkt (p, 2, "eference_System_2007\",SPHEROID[\"GRS 1980\",6378137,298"); add_srs_wkt (p, 3, ".257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0"); add_srs_wkt (p, 4, ",0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 5, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 6, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 7, "EPSG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2"); add_srs_wkt (p, 8, "SP\"],PARAMETER[\"standard_parallel_1\",47.4833333333333"); add_srs_wkt (p, 9, "3],PARAMETER[\"standard_parallel_2\",46.18333333333333],"); add_srs_wkt (p, 10, "PARAMETER[\"latitude_of_origin\",45.66666666666666],PARA"); add_srs_wkt (p, 11, "METER[\"central_meridian\",-100.5],PARAMETER[\"false_eas"); add_srs_wkt (p, 12, "ting\",1968503.937],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 13, "[\"foot\",0.3048,AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\"X\""); add_srs_wkt (p, 14, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3636\"]]"); p = add_epsg_def (filter, first, last, 3637, "epsg", 3637, "NAD83(NSRS2007) / Ohio North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.7 +lat_2=40.43333333333333 +lat_0=39"); add_proj4text (p, 1, ".66666666666666 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=G"); add_proj4text (p, 2, "RS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Ohio North\",GEOGCS[\"NAD83(N"); add_srs_wkt (p, 1, "SRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Syst"); add_srs_wkt (p, 2, "em_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4759"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMET"); add_srs_wkt (p, 8, "ER[\"standard_parallel_1\",41.7],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_2\",40.43333333333333],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 10, "igin\",39.66666666666666],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 11, ",-82.5],PARAMETER[\"false_easting\",600000],PARAMETER[\""); add_srs_wkt (p, 12, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); add_srs_wkt (p, 14, "\"EPSG\",\"3637\"]]"); p = add_epsg_def (filter, first, last, 3638, "epsg", 3638, "NAD83(NSRS2007) / Ohio South"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.03333333333333 +lat_2=38.73333333333"); add_proj4text (p, 1, "333 +lat_0=38 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, "80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Ohio South\",GEOGCS[\"NAD83(N"); add_srs_wkt (p, 1, "SRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Syst"); add_srs_wkt (p, 2, "em_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4759"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMET"); add_srs_wkt (p, 8, "ER[\"standard_parallel_1\",40.03333333333333],PARAMETER["); add_srs_wkt (p, 9, "\"standard_parallel_2\",38.73333333333333],PARAMETER[\"l"); add_srs_wkt (p, 10, "atitude_of_origin\",38],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 11, "82.5],PARAMETER[\"false_easting\",600000],PARAMETER[\"fa"); add_srs_wkt (p, 12, "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"3638\"]]"); p = add_epsg_def (filter, first, last, 3639, "epsg", 3639, "NAD83(NSRS2007) / Oklahoma North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.76666666666667 +lat_2=35.56666666666"); add_proj4text (p, 1, "667 +lat_0=35 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80"); add_proj4text (p, 2, " +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Oklahoma North\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_"); add_srs_wkt (p, 2, "System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_1\",36.76666666666667],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_2\",35.56666666666667],PARAMETER"); add_srs_wkt (p, 10, "[\"latitude_of_origin\",35],PARAMETER[\"central_meridian"); add_srs_wkt (p, 11, "\",-98],PARAMETER[\"false_easting\",600000],PARAMETER[\""); add_srs_wkt (p, 12, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); add_srs_wkt (p, 14, "\"EPSG\",\"3639\"]]"); p = add_epsg_def (filter, first, last, 3640, "epsg", 3640, "NAD83(NSRS2007) / Oklahoma North (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.76666666666667 +lat_2=35.56666666666"); add_proj4text (p, 1, "667 +lat_0=35 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80"); add_proj4text (p, 2, " +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Oklahoma North (ftUS)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Ref"); add_srs_wkt (p, 2, "erence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2"); add_srs_wkt (p, 3, "57222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0"); add_srs_wkt (p, 4, ",0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 8, "\"],PARAMETER[\"standard_parallel_1\",36.76666666666667]"); add_srs_wkt (p, 9, ",PARAMETER[\"standard_parallel_2\",35.56666666666667],PA"); add_srs_wkt (p, 10, "RAMETER[\"latitude_of_origin\",35],PARAMETER[\"central_m"); add_srs_wkt (p, 11, "eridian\",-98],PARAMETER[\"false_easting\",1968500],PARA"); add_srs_wkt (p, 12, "METER[\"false_northing\",0],UNIT[\"US survey foot\",0.30"); add_srs_wkt (p, 13, "48006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\","); add_srs_wkt (p, 14, "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3640\"]]"); p = add_epsg_def (filter, first, last, 3641, "epsg", 3641, "NAD83(NSRS2007) / Oklahoma South"); add_proj4text (p, 0, "+proj=lcc +lat_1=35.23333333333333 +lat_2=33.93333333333"); add_proj4text (p, 1, "333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Oklahoma South\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_"); add_srs_wkt (p, 2, "System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_1\",35.23333333333333],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_2\",33.93333333333333],PARAMETER"); add_srs_wkt (p, 10, "[\"latitude_of_origin\",33.33333333333334],PARAMETER[\"c"); add_srs_wkt (p, 11, "entral_meridian\",-98],PARAMETER[\"false_easting\",60000"); add_srs_wkt (p, 12, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 13, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 14, "RTH],AUTHORITY[\"EPSG\",\"3641\"]]"); p = add_epsg_def (filter, first, last, 3642, "epsg", 3642, "NAD83(NSRS2007) / Oklahoma South (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=35.23333333333333 +lat_2=33.93333333333"); add_proj4text (p, 1, "333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_"); add_proj4text (p, 3, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Oklahoma South (ftUS)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Ref"); add_srs_wkt (p, 2, "erence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2"); add_srs_wkt (p, 3, "57222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0"); add_srs_wkt (p, 4, ",0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 8, "\"],PARAMETER[\"standard_parallel_1\",35.23333333333333]"); add_srs_wkt (p, 9, ",PARAMETER[\"standard_parallel_2\",33.93333333333333],PA"); add_srs_wkt (p, 10, "RAMETER[\"latitude_of_origin\",33.33333333333334],PARAME"); add_srs_wkt (p, 11, "TER[\"central_meridian\",-98],PARAMETER[\"false_easting\""); add_srs_wkt (p, 12, ",1968500],PARAMETER[\"false_northing\",0],UNIT[\"US surv"); add_srs_wkt (p, 13, "ey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\""); add_srs_wkt (p, 14, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 15, ",\"3642\"]]"); p = add_epsg_def (filter, first, last, 3643, "epsg", 3643, "NAD83(NSRS2007) / Oregon Lambert"); add_proj4text (p, 0, "+proj=lcc +lat_1=43 +lat_2=45.5 +lat_0=41.75 +lon_0=-120"); add_proj4text (p, 1, ".5 +x_0=400000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,"); add_proj4text (p, 2, "0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Oregon Lambert\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_"); add_srs_wkt (p, 2, "System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_1\",43],PARAMETER[\"standard_"); add_srs_wkt (p, 9, "parallel_2\",45.5],PARAMETER[\"latitude_of_origin\",41.7"); add_srs_wkt (p, 10, "5],PARAMETER[\"central_meridian\",-120.5],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_easting\",400000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 12, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); add_srs_wkt (p, 13, "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3643\"]]"); p = add_epsg_def (filter, first, last, 3644, "epsg", 3644, "NAD83(NSRS2007) / Oregon Lambert (ft)"); add_proj4text (p, 0, "+proj=lcc +lat_1=43 +lat_2=45.5 +lat_0=41.75 +lon_0=-120"); add_proj4text (p, 1, ".5 +x_0=399999.9999984 +y_0=0 +ellps=GRS80 +towgs84=0,0,"); add_proj4text (p, 2, "0,0,0,0,0 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Oregon Lambert (ft)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 8, "],PARAMETER[\"standard_parallel_1\",43],PARAMETER[\"stan"); add_srs_wkt (p, 9, "dard_parallel_2\",45.5],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 10, ",41.75],PARAMETER[\"central_meridian\",-120.5],PARAMETER"); add_srs_wkt (p, 11, "[\"false_easting\",1312335.958],PARAMETER[\"false_northi"); add_srs_wkt (p, 12, "ng\",0],UNIT[\"foot\",0.3048,AUTHORITY[\"EPSG\",\"9002\""); add_srs_wkt (p, 13, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"3644\"]]"); p = add_epsg_def (filter, first, last, 3645, "epsg", 3645, "NAD83(NSRS2007) / Oregon North"); add_proj4text (p, 0, "+proj=lcc +lat_1=46 +lat_2=44.33333333333334 +lat_0=43.6"); add_proj4text (p, 1, "6666666666666 +lon_0=-120.5 +x_0=2500000 +y_0=0 +ellps=G"); add_proj4text (p, 2, "RS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Oregon North\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 7, "59\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"standard_parallel_1\",46],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_2\",44.33333333333334],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 10, "igin\",43.66666666666666],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 11, ",-120.5],PARAMETER[\"false_easting\",2500000],PARAMETER["); add_srs_wkt (p, 12, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 14, "[\"EPSG\",\"3645\"]]"); p = add_epsg_def (filter, first, last, 3646, "epsg", 3646, "NAD83(NSRS2007) / Oregon North (ft)"); add_proj4text (p, 0, "+proj=lcc +lat_1=46 +lat_2=44.33333333333334 +lat_0=43.6"); add_proj4text (p, 1, "6666666666666 +lon_0=-120.5 +x_0=2500000.0001424 +y_0=0 "); add_proj4text (p, 2, "+ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Oregon North (ft)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 8, "PARAMETER[\"standard_parallel_1\",46],PARAMETER[\"standa"); add_srs_wkt (p, 9, "rd_parallel_2\",44.33333333333334],PARAMETER[\"latitude_"); add_srs_wkt (p, 10, "of_origin\",43.66666666666666],PARAMETER[\"central_merid"); add_srs_wkt (p, 11, "ian\",-120.5],PARAMETER[\"false_easting\",8202099.738],P"); add_srs_wkt (p, 12, "ARAMETER[\"false_northing\",0],UNIT[\"foot\",0.3048,AUTH"); add_srs_wkt (p, 13, "ORITY[\"EPSG\",\"9002\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 14, "RTH],AUTHORITY[\"EPSG\",\"3646\"]]"); p = add_epsg_def (filter, first, last, 3647, "epsg", 3647, "NAD83(NSRS2007) / Oregon South"); add_proj4text (p, 0, "+proj=lcc +lat_1=44 +lat_2=42.33333333333334 +lat_0=41.6"); add_proj4text (p, 1, "6666666666666 +lon_0=-120.5 +x_0=1500000 +y_0=0 +ellps=G"); add_proj4text (p, 2, "RS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Oregon South\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 7, "59\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"standard_parallel_1\",44],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_2\",42.33333333333334],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 10, "igin\",41.66666666666666],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 11, ",-120.5],PARAMETER[\"false_easting\",1500000],PARAMETER["); add_srs_wkt (p, 12, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 14, "[\"EPSG\",\"3647\"]]"); p = add_epsg_def (filter, first, last, 3648, "epsg", 3648, "NAD83(NSRS2007) / Oregon South (ft)"); add_proj4text (p, 0, "+proj=lcc +lat_1=44 +lat_2=42.33333333333334 +lat_0=41.6"); add_proj4text (p, 1, "6666666666666 +lon_0=-120.5 +x_0=1500000.0001464 +y_0=0 "); add_proj4text (p, 2, "+ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Oregon South (ft)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 8, "PARAMETER[\"standard_parallel_1\",44],PARAMETER[\"standa"); add_srs_wkt (p, 9, "rd_parallel_2\",42.33333333333334],PARAMETER[\"latitude_"); add_srs_wkt (p, 10, "of_origin\",41.66666666666666],PARAMETER[\"central_merid"); add_srs_wkt (p, 11, "ian\",-120.5],PARAMETER[\"false_easting\",4921259.843],P"); add_srs_wkt (p, 12, "ARAMETER[\"false_northing\",0],UNIT[\"foot\",0.3048,AUTH"); add_srs_wkt (p, 13, "ORITY[\"EPSG\",\"9002\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 14, "RTH],AUTHORITY[\"EPSG\",\"3648\"]]"); } #endif /* full EPSG initialization enabled/disabled */ libspatialite-4.1.1/src/srsinit/epsg_inlined_17.c0000664000175000017500000045240312163502133016667 00000000000000/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def (filter, first, last, 3750, "epsg", 3750, "NAD83(HARN) / UTM zone 4N"); add_proj4text (p, 0, "+proj=utm +zone=4 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 1, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / UTM zone 4N\",GEOGCS[\"NAD83(HARN"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPHE"); add_srs_wkt (p, 2, "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTIO"); add_srs_wkt (p, 7, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 8, "n\",0],PARAMETER[\"central_meridian\",-159],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"3750\"]]"); p = add_epsg_def (filter, first, last, 3751, "epsg", 3751, "NAD83(HARN) / UTM zone 5N"); add_proj4text (p, 0, "+proj=utm +zone=5 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 1, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / UTM zone 5N\",GEOGCS[\"NAD83(HARN"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPHE"); add_srs_wkt (p, 2, "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTIO"); add_srs_wkt (p, 7, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 8, "n\",0],PARAMETER[\"central_meridian\",-153],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"3751\"]]"); p = add_epsg_def (filter, first, last, 3752, "epsg", 3752, "WGS 84 / Mercator 41 (deprecated)"); add_proj4text (p, 0, "+proj=merc +lon_0=100 +lat_ts=-41 +x_0=0 +y_0=0 +datum=W"); add_proj4text (p, 1, "GS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / Mercator 41 (deprecated)\",GEOGCS[\"WG"); add_srs_wkt (p, 1, "S 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,29"); add_srs_wkt (p, 2, "8.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJE"); add_srs_wkt (p, 6, "CTION[\"Mercator_1SP\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 7, ",-41],PARAMETER[\"central_meridian\",100],PARAMETER[\"sc"); add_srs_wkt (p, 8, "ale_factor\",1],PARAMETER[\"false_easting\",0],PARAMETER"); add_srs_wkt (p, 9, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 10, "\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); add_srs_wkt (p, 11, "TY[\"EPSG\",\"3752\"]]"); p = add_epsg_def (filter, first, last, 3753, "epsg", 3753, "NAD83(HARN) / Ohio North (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.7 +lat_2=40.43333333333333 +lat_0=39"); add_proj4text (p, 1, ".66666666666666 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=G"); add_proj4text (p, 2, "RS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Ohio North (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 8, "ard_parallel_1\",41.7],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",40.43333333333333],PARAMETER[\"latitude_of_origin\",39."); add_srs_wkt (p, 10, "66666666666666],PARAMETER[\"central_meridian\",-82.5],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_easting\",1968500],PARAMETER[\"false_nor"); add_srs_wkt (p, 12, "thing\",0],UNIT[\"US survey foot\",0.3048006096012192,AU"); add_srs_wkt (p, 13, "THORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 14, "NORTH],AUTHORITY[\"EPSG\",\"3753\"]]"); p = add_epsg_def (filter, first, last, 3754, "epsg", 3754, "NAD83(HARN) / Ohio South (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.03333333333333 +lat_2=38.73333333333"); add_proj4text (p, 1, "333 +lat_0=38 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, "80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Ohio South (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 8, "ard_parallel_1\",40.03333333333333],PARAMETER[\"standard"); add_srs_wkt (p, 9, "_parallel_2\",38.73333333333333],PARAMETER[\"latitude_of"); add_srs_wkt (p, 10, "_origin\",38],PARAMETER[\"central_meridian\",-82.5],PARA"); add_srs_wkt (p, 11, "METER[\"false_easting\",1968500],PARAMETER[\"false_north"); add_srs_wkt (p, 12, "ing\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTH"); add_srs_wkt (p, 13, "ORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 14, "RTH],AUTHORITY[\"EPSG\",\"3754\"]]"); p = add_epsg_def (filter, first, last, 3755, "epsg", 3755, "NAD83(HARN) / Wyoming East (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.9"); add_proj4text (p, 1, "999375 +x_0=200000.00001016 +y_0=0 +ellps=GRS80 +towgs84"); add_proj4text (p, 2, "=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Wyoming East (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Networ"); add_srs_wkt (p, 2, "k\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",40.5],PARAMETER[\"central_meridian\",-105.166"); add_srs_wkt (p, 9, "6666666667],PARAMETER[\"scale_factor\",0.9999375],PARAME"); add_srs_wkt (p, 10, "TER[\"false_easting\",656166.6667],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, "thing\",0],UNIT[\"US survey foot\",0.3048006096012192,AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 13, "NORTH],AUTHORITY[\"EPSG\",\"3755\"]]"); p = add_epsg_def (filter, first, last, 3756, "epsg", 3756, "NAD83(HARN) / Wyoming East Central (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.9"); add_proj4text (p, 1, "999375 +x_0=399999.99998984 +y_0=99999.99998983997 +ellp"); add_proj4text (p, 2, "s=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Wyoming East Central (ftUS)\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Referenc"); add_srs_wkt (p, 2, "e_Network\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"41"); add_srs_wkt (p, 7, "52\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",40.5],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",-107.3333333333333],PARAMETER[\"scale_factor\",0.999937"); add_srs_wkt (p, 10, "5],PARAMETER[\"false_easting\",1312333.3333],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",328083.3333],UNIT[\"US survey foot\",0."); add_srs_wkt (p, 12, "3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); add_srs_wkt (p, 13, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3756\"]]"); p = add_epsg_def (filter, first, last, 3757, "epsg", 3757, "NAD83(HARN) / Wyoming West Central (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.9999375 +x_0"); add_proj4text (p, 1, "=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 2, "s=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Wyoming West Central (ftUS)\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Referenc"); add_srs_wkt (p, 2, "e_Network\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"41"); add_srs_wkt (p, 7, "52\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",40.5],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",-108.75],PARAMETER[\"scale_factor\",0.9999375],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",1968500],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"3757\"]]"); p = add_epsg_def (filter, first, last, 3758, "epsg", 3758, "NAD83(HARN) / Wyoming West (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.9"); add_proj4text (p, 1, "999375 +x_0=800000.0000101599 +y_0=99999.99998983997 +el"); add_proj4text (p, 2, "lps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Wyoming West (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Networ"); add_srs_wkt (p, 2, "k\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",40.5],PARAMETER[\"central_meridian\",-110.083"); add_srs_wkt (p, 9, "3333333333],PARAMETER[\"scale_factor\",0.9999375],PARAME"); add_srs_wkt (p, 10, "TER[\"false_easting\",2624666.6667],PARAMETER[\"false_no"); add_srs_wkt (p, 11, "rthing\",328083.3333],UNIT[\"US survey foot\",0.30480060"); add_srs_wkt (p, 12, "96012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],"); add_srs_wkt (p, 13, "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3758\"]]"); p = add_epsg_def (filter, first, last, 3759, "epsg", 3759, "NAD83 / Hawaii zone 3 (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=21.16666666666667 +lon_0=-158 +k=0.99"); add_proj4text (p, 1, "999 +x_0=500000.00001016 +y_0=0 +datum=NAD83 +units=us-f"); add_proj4text (p, 2, "t +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Hawaii zone 3 (ftUS)\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, "Mercator\"],PARAMETER[\"latitude_of_origin\",21.16666666"); add_srs_wkt (p, 8, "666667],PARAMETER[\"central_meridian\",-158],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.99999],PARAMETER[\"false_easting\",1640"); add_srs_wkt (p, 10, "416.6667],PARAMETER[\"false_northing\",0],UNIT[\"US surv"); add_srs_wkt (p, 11, "ey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\""); add_srs_wkt (p, 12, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"3759\"]]"); p = add_epsg_def (filter, first, last, 3760, "epsg", 3760, "NAD83(HARN) / Hawaii zone 3 (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=21.16666666666667 +lon_0=-158 +k=0.99"); add_proj4text (p, 1, "999 +x_0=500000.00001016 +y_0=0 +ellps=GRS80 +towgs84=0,"); add_proj4text (p, 2, "0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Hawaii zone 3 (ftUS)\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netwo"); add_srs_wkt (p, 2, "rk\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",21.16666666666667],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, "dian\",-158],PARAMETER[\"scale_factor\",0.99999],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",1640416.6667],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, "thing\",0],UNIT[\"US survey foot\",0.3048006096012192,AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 13, "NORTH],AUTHORITY[\"EPSG\",\"3760\"]]"); p = add_epsg_def (filter, first, last, 3761, "epsg", 3761, "NAD83(CSRS) / UTM zone 22N"); add_proj4text (p, 0, "+proj=utm +zone=22 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / UTM zone 22N\",GEOGCS[\"NAD83(CSR"); add_srs_wkt (p, 1, "S)\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 8, "igin\",0],PARAMETER[\"central_meridian\",-51],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",0.9996],PARAMETER[\"false_easting\",500"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS["); add_srs_wkt (p, 12, "\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3761\"]]"); p = add_epsg_def (filter, first, last, 3762, "epsg", 3762, "WGS 84 / South Georgia Lambert"); add_proj4text (p, 0, "+proj=lcc +lat_1=-54 +lat_2=-54.75 +lat_0=-55 +lon_0=-37"); add_proj4text (p, 1, " +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / South Georgia Lambert\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI"); add_srs_wkt (p, 6, "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 7, "_parallel_1\",-54],PARAMETER[\"standard_parallel_2\",-54"); add_srs_wkt (p, 8, ".75],PARAMETER[\"latitude_of_origin\",-55],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",-37],PARAMETER[\"false_easting\",0],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 12, "ing\",NORTH],AUTHORITY[\"EPSG\",\"3762\"]]"); p = add_epsg_def (filter, first, last, 3763, "epsg", 3763, "ETRS89 / Portugal TM06"); add_proj4text (p, 0, "+proj=tmerc +lat_0=39.66825833333333 +lon_0=-8.133108333"); add_proj4text (p, 1, "333334 +k=1 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / Portugal TM06\",GEOGCS[\"ETRS89\",DATU"); add_srs_wkt (p, 1, "M[\"European_Terrestrial_Reference_System_1989\",SPHEROI"); add_srs_wkt (p, 2, "D[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\""); add_srs_wkt (p, 7, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, "39.66825833333333],PARAMETER[\"central_meridian\",-8.133"); add_srs_wkt (p, 9, "108333333334],PARAMETER[\"scale_factor\",1],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAS"); add_srs_wkt (p, 12, "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3763\"]]"); p = add_epsg_def (filter, first, last, 3764, "epsg", 3764, "NZGD2000 / Chatham Island Circuit 2000"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-44 +lon_0=-176.5 +k=1 +x_0=400000 +y"); add_proj4text (p, 1, "_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +"); add_proj4text (p, 2, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Chatham Island Circuit 2000\",GEOGCS"); add_srs_wkt (p, 1, "[\"NZGD2000\",DATUM[\"New_Zealand_Geodetic_Datum_2000\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6167\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4167\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",-44],PARAMETER[\"central_meridian\",-176.5],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",40"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",800000],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3764\"]]"); p = add_epsg_def (filter, first, last, 3765, "epsg", 3765, "HTRS96 / Croatia TM"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=16.5 +k=0.9999 +x_0=500000 +"); add_proj4text (p, 1, "y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"HTRS96 / Croatia TM\",GEOGCS[\"HTRS96\",DATUM[\""); add_srs_wkt (p, 1, "Croatian_Terrestrial_Reference_System\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6761\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AUTHORITY[\"EPSG\",\"4761\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 7, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 8, "ETER[\"central_meridian\",16.5],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, "\",0.9999],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 10, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); add_srs_wkt (p, 12, "ORTH],AUTHORITY[\"EPSG\",\"3765\"]]"); p = add_epsg_def (filter, first, last, 3766, "epsg", 3766, "HTRS96 / Croatia LCC"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.91666666666666 +lat_2=43.08333333333"); add_proj4text (p, 1, "334 +lat_0=0 +lon_0=16.5 +x_0=0 +y_0=0 +ellps=GRS80 +tow"); add_proj4text (p, 2, "gs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"HTRS96 / Croatia LCC\",GEOGCS[\"HTRS96\",DATUM["); add_srs_wkt (p, 1, "\"Croatian_Terrestrial_Reference_System\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6761\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4761\"]],PROJECTION[\"Lambert"); add_srs_wkt (p, 7, "_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 8, ",45.91666666666666],PARAMETER[\"standard_parallel_2\",43"); add_srs_wkt (p, 9, ".08333333333334],PARAMETER[\"latitude_of_origin\",0],PAR"); add_srs_wkt (p, 10, "AMETER[\"central_meridian\",16.5],PARAMETER[\"false_east"); add_srs_wkt (p, 11, "ing\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 13, "XIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3766\"]]"); p = add_epsg_def (filter, first, last, 3767, "epsg", 3767, "HTRS96 / UTM zone 33N"); add_proj4text (p, 0, "+proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"HTRS96 / UTM zone 33N\",GEOGCS[\"HTRS96\",DATUM"); add_srs_wkt (p, 1, "[\"Croatian_Terrestrial_Reference_System\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6761\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4761\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",15],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, "r\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 11, "G\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\","); add_srs_wkt (p, 12, "NORTH],AUTHORITY[\"EPSG\",\"3767\"]]"); p = add_epsg_def (filter, first, last, 3768, "epsg", 3768, "HTRS96 / UTM zone 34N"); add_proj4text (p, 0, "+proj=utm +zone=34 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"HTRS96 / UTM zone 34N\",GEOGCS[\"HTRS96\",DATUM"); add_srs_wkt (p, 1, "[\"Croatian_Terrestrial_Reference_System\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6761\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4761\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",21],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, "r\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 11, "G\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\","); add_srs_wkt (p, 12, "NORTH],AUTHORITY[\"EPSG\",\"3768\"]]"); p = add_epsg_def (filter, first, last, 3769, "epsg", 3769, "Bermuda 1957 / UTM zone 20N"); add_proj4text (p, 0, "+proj=utm +zone=20 +ellps=clrk66 +towgs84=-73,213,296,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Bermuda 1957 / UTM zone 20N\",GEOGCS[\"Bermuda "); add_srs_wkt (p, 1, "1957\",DATUM[\"Bermuda_1957\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",TOWGS84[-73,213,296,0,0,0,0],AUTHORITY[\"EPSG\",\"6216\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4216\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, "ARAMETER[\"central_meridian\",-63],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"3769\"]]"); p = add_epsg_def (filter, first, last, 3770, "epsg", 3770, "BDA2000 / Bermuda 2000 National Grid"); add_proj4text (p, 0, "+proj=tmerc +lat_0=32 +lon_0=-64.75 +k=1 +x_0=550000 +y_"); add_proj4text (p, 1, "0=100000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +n"); add_proj4text (p, 2, "o_defs"); add_srs_wkt (p, 0, "PROJCS[\"BDA2000 / Bermuda 2000 National Grid\",GEOGCS[\""); add_srs_wkt (p, 1, "BDA2000\",DATUM[\"Bermuda_2000\",SPHEROID[\"WGS 84\",637"); add_srs_wkt (p, 2, "8137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6762\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"4762\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 7, "or\"],PARAMETER[\"latitude_of_origin\",32],PARAMETER[\"c"); add_srs_wkt (p, 8, "entral_meridian\",-64.75],PARAMETER[\"scale_factor\",1],"); add_srs_wkt (p, 9, "PARAMETER[\"false_easting\",550000],PARAMETER[\"false_no"); add_srs_wkt (p, 10, "rthing\",100000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 11, "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"3770\"]]"); p = add_epsg_def (filter, first, last, 3771, "epsg", 3771, "NAD27 / Alberta 3TM ref merid 111 W"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-111 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Alberta 3TM ref merid 111 W\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"C"); add_srs_wkt (p, 2, "larke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4267\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 8, "ral_meridian\",-111],PARAMETER[\"scale_factor\",0.9999],"); add_srs_wkt (p, 9, "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northin"); add_srs_wkt (p, 10, "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 11, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"3771\"]]"); p = add_epsg_def (filter, first, last, 3772, "epsg", 3772, "NAD27 / Alberta 3TM ref merid 114 W"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-114 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Alberta 3TM ref merid 114 W\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"C"); add_srs_wkt (p, 2, "larke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4267\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 8, "ral_meridian\",-114],PARAMETER[\"scale_factor\",0.9999],"); add_srs_wkt (p, 9, "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northin"); add_srs_wkt (p, 10, "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 11, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"3772\"]]"); p = add_epsg_def (filter, first, last, 3773, "epsg", 3773, "NAD27 / Alberta 3TM ref merid 117 W"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-117 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Alberta 3TM ref merid 117 W\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"C"); add_srs_wkt (p, 2, "larke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4267\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 8, "ral_meridian\",-117],PARAMETER[\"scale_factor\",0.9999],"); add_srs_wkt (p, 9, "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northin"); add_srs_wkt (p, 10, "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 11, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"3773\"]]"); p = add_epsg_def (filter, first, last, 3774, "epsg", 3774, "NAD27 / Alberta 3TM ref merid 120 W (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-120 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Alberta 3TM ref merid 120 W (deprecated"); add_srs_wkt (p, 1, ")\",GEOGCS[\"NAD27\",DATUM[\"North_American_Datum_1927\""); add_srs_wkt (p, 2, ",SPHEROID[\"Clarke 1866\",6378206.4,294.9786982138982,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4267\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",-120],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, "tor\",0.9999],PARAMETER[\"false_easting\",0],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"3774\"]]"); p = add_epsg_def (filter, first, last, 3775, "epsg", 3775, "NAD83 / Alberta 3TM ref merid 111 W"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-111 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Alberta 3TM ref merid 111 W\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"G"); add_srs_wkt (p, 2, "RS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"701"); add_srs_wkt (p, 3, "9\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, "ARAMETER[\"central_meridian\",-111],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",0.9999],PARAMETER[\"false_easting\",0],PARAMETER["); add_srs_wkt (p, 10, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); add_srs_wkt (p, 12, "TH],AUTHORITY[\"EPSG\",\"3775\"]]"); p = add_epsg_def (filter, first, last, 3776, "epsg", 3776, "NAD83 / Alberta 3TM ref merid 114 W"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-114 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Alberta 3TM ref merid 114 W\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"G"); add_srs_wkt (p, 2, "RS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"701"); add_srs_wkt (p, 3, "9\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, "ARAMETER[\"central_meridian\",-114],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",0.9999],PARAMETER[\"false_easting\",0],PARAMETER["); add_srs_wkt (p, 10, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); add_srs_wkt (p, 12, "TH],AUTHORITY[\"EPSG\",\"3776\"]]"); p = add_epsg_def (filter, first, last, 3777, "epsg", 3777, "NAD83 / Alberta 3TM ref merid 117 W"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-117 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Alberta 3TM ref merid 117 W\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"G"); add_srs_wkt (p, 2, "RS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"701"); add_srs_wkt (p, 3, "9\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, "ARAMETER[\"central_meridian\",-117],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",0.9999],PARAMETER[\"false_easting\",0],PARAMETER["); add_srs_wkt (p, 10, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); add_srs_wkt (p, 12, "TH],AUTHORITY[\"EPSG\",\"3777\"]]"); p = add_epsg_def (filter, first, last, 3778, "epsg", 3778, "NAD83 / Alberta 3TM ref merid 120 W (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-120 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Alberta 3TM ref merid 120 W (deprecated"); add_srs_wkt (p, 1, ")\",GEOGCS[\"NAD83\",DATUM[\"North_American_Datum_1983\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6269\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",0],PARAMETER[\"central_meridian\",-120],PARAMETE"); add_srs_wkt (p, 9, "R[\"scale_factor\",0.9999],PARAMETER[\"false_easting\",0"); add_srs_wkt (p, 10, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); add_srs_wkt (p, 12, "orthing\",NORTH],AUTHORITY[\"EPSG\",\"3778\"]]"); p = add_epsg_def (filter, first, last, 3779, "epsg", 3779, "NAD83(CSRS) / Alberta 3TM ref merid 111 W"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-111 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / Alberta 3TM ref merid 111 W\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4617\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "111],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3779\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def (filter, first, last, 3780, "epsg", 3780, "NAD83(CSRS) / Alberta 3TM ref merid 114 W"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-114 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / Alberta 3TM ref merid 114 W\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4617\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "114],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3780\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def (filter, first, last, 3781, "epsg", 3781, "NAD83(CSRS) / Alberta 3TM ref merid 117 W"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-117 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / Alberta 3TM ref merid 117 W\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4617\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "117],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3781\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def (filter, first, last, 3782, "epsg", 3782, "NAD83(CSRS) / Alberta 3TM ref merid 120 W (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-120 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / Alberta 3TM ref merid 120 W (depr"); add_srs_wkt (p, 1, "ecated)\",GEOGCS[\"NAD83(CSRS)\",DATUM[\"NAD83_Canadian_"); add_srs_wkt (p, 2, "Spatial_Reference_System\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 3, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 4, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Green"); add_srs_wkt (p, 5, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 6, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 7, "Y[\"EPSG\",\"4617\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 8, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 9, "l_meridian\",-120],PARAMETER[\"scale_factor\",0.9999],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_easting\",0],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"3782\"]]"); p = add_epsg_def (filter, first, last, 3783, "epsg", 3783, "Pitcairn 2006 / Pitcairn TM 2006"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-25.06855261111111 +lon_0=-130.112967"); add_proj4text (p, 1, "1111111 +k=1 +x_0=14200 +y_0=15500 +ellps=WGS84 +towgs84"); add_proj4text (p, 2, "=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pitcairn 2006 / Pitcairn TM 2006\",GEOGCS[\"Pit"); add_srs_wkt (p, 1, "cairn 2006\",DATUM[\"Pitcairn_2006\",SPHEROID[\"WGS 84\""); add_srs_wkt (p, 2, ",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6763\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4763\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, "rcator\"],PARAMETER[\"latitude_of_origin\",-25.068552611"); add_srs_wkt (p, 8, "11111],PARAMETER[\"central_meridian\",-130.1129671111111"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",14200],PARAMETER[\"false_northing\",15500],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3783\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def (filter, first, last, 3784, "epsg", 3784, "Pitcairn 1967 / UTM zone 9S"); add_proj4text (p, 0, "+proj=utm +zone=9 +south +ellps=intl +towgs84=185,165,42"); add_proj4text (p, 1, ",0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pitcairn 1967 / UTM zone 9S\",GEOGCS[\"Pitcairn"); add_srs_wkt (p, 1, " 1967\",DATUM[\"Pitcairn_1967\",SPHEROID[\"International"); add_srs_wkt (p, 2, " 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS8"); add_srs_wkt (p, 3, "4[185,165,42,0,0,0,0],AUTHORITY[\"EPSG\",\"6729\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4729\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 8, "R[\"central_meridian\",-129],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"3784\"]]"); p = add_epsg_def (filter, first, last, 3785, "epsg", 3785, "Popular Visualisation CRS / Mercator (deprecated)"); add_proj4text (p, 0, "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 "); add_proj4text (p, 1, "+x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext "); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Popular Visualisation CRS / Mercator (deprecate"); add_srs_wkt (p, 1, "d)\",GEOGCS[\"Popular Visualisation CRS\",DATUM[\"Popula"); add_srs_wkt (p, 2, "r_Visualisation_Datum\",SPHEROID[\"Popular Visualisation"); add_srs_wkt (p, 3, " Sphere\",6378137,0,AUTHORITY[\"EPSG\",\"7059\"]],TOWGS8"); add_srs_wkt (p, 4, "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6055\"]],PRIMEM[\""); add_srs_wkt (p, 5, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 6, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"4055\"]],PROJECTION[\"Mercator_1SP\"],"); add_srs_wkt (p, 8, "PARAMETER[\"central_meridian\",0],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",1],PARAMETER[\"false_easting\",0],PARAMETER[\"false"); add_srs_wkt (p, 10, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 11, "1\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],EXTENSION[\"PRO"); add_srs_wkt (p, 12, "J4\",\"+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon"); add_srs_wkt (p, 13, "_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +"); add_srs_wkt (p, 14, "wktext +no_defs\"],AUTHORITY[\"EPSG\",\"3785\"]]"); p = add_epsg_def (filter, first, last, 3786, "epsg", 3786, "World Equidistant Cylindrical (Sphere) (deprecated)"); add_proj4text (p, 0, "+proj=eqc +lat_ts=0 +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +a=6"); add_proj4text (p, 1, "371007 +b=6371007 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"World Equidistant Cylindrical (Sphere) (depreca"); add_srs_wkt (p, 1, "ted)\",GEOGCS[\"Unspecified datum based upon the GRS 198"); add_srs_wkt (p, 2, "0 Authalic Sphere\",DATUM[\"Not_specified_based_on_GRS_1"); add_srs_wkt (p, 3, "980_Authalic_Sphere\",SPHEROID[\"GRS 1980 Authalic Spher"); add_srs_wkt (p, 4, "e\",6371007,0,AUTHORITY[\"EPSG\",\"7048\"]],AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"6047\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4047\"]],PR"); add_srs_wkt (p, 8, "OJECTION[\"Equirectangular\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",0],PARAMETER[\"central_meridian\",0],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAS"); add_srs_wkt (p, 12, "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3786\"]]"); p = add_epsg_def (filter, first, last, 3787, "epsg", 3787, "MGI / Slovene National Grid (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=-5000000 +datum=hermannskogel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI / Slovene National Grid (deprecated)\",GEOG"); add_srs_wkt (p, 1, "CS[\"MGI\",DATUM[\"Militar_Geographische_Institute\",SPH"); add_srs_wkt (p, 2, "EROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137"); add_srs_wkt (p, 4, ",1.474,5.297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIME"); add_srs_wkt (p, 5, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 6, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"4312\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 8, "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 9, "[\"central_meridian\",15],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 10, "999],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_northing\",-5000000],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"9001\"]],AXIS[\"Y\",EAST],AXIS[\"X\",NORTH],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"3787\"]]"); p = add_epsg_def (filter, first, last, 3788, "epsg", 3788, "NZGD2000 / Auckland Islands TM 2000"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=166 +k=1 +x_0=3500000 +y_0=1"); add_proj4text (p, 1, "0000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Auckland Islands TM 2000\",GEOGCS[\""); add_srs_wkt (p, 1, "NZGD2000\",DATUM[\"New_Zealand_Geodetic_Datum_2000\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6167\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",166],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",1],PARAMETER[\"false_easting\",3500000],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3788\"]]"); p = add_epsg_def (filter, first, last, 3789, "epsg", 3789, "NZGD2000 / Campbell Island TM 2000"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=169 +k=1 +x_0=3500000 +y_0=1"); add_proj4text (p, 1, "0000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Campbell Island TM 2000\",GEOGCS[\"N"); add_srs_wkt (p, 1, "ZGD2000\",DATUM[\"New_Zealand_Geodetic_Datum_2000\",SPHE"); add_srs_wkt (p, 2, "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6167\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTIO"); add_srs_wkt (p, 7, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 8, "n\",0],PARAMETER[\"central_meridian\",169],PARAMETER[\"s"); add_srs_wkt (p, 9, "cale_factor\",1],PARAMETER[\"false_easting\",3500000],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3789\"]]"); p = add_epsg_def (filter, first, last, 3790, "epsg", 3790, "NZGD2000 / Antipodes Islands TM 2000"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=179 +k=1 +x_0=3500000 +y_0=1"); add_proj4text (p, 1, "0000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Antipodes Islands TM 2000\",GEOGCS[\""); add_srs_wkt (p, 1, "NZGD2000\",DATUM[\"New_Zealand_Geodetic_Datum_2000\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6167\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",179],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",1],PARAMETER[\"false_easting\",3500000],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3790\"]]"); p = add_epsg_def (filter, first, last, 3791, "epsg", 3791, "NZGD2000 / Raoul Island TM 2000"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-178 +k=1 +x_0=3500000 +y_0="); add_proj4text (p, 1, "10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +n"); add_proj4text (p, 2, "o_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Raoul Island TM 2000\",GEOGCS[\"NZGD"); add_srs_wkt (p, 1, "2000\",DATUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROI"); add_srs_wkt (p, 2, "D[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "167\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\""); add_srs_wkt (p, 7, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, "0],PARAMETER[\"central_meridian\",-178],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",1],PARAMETER[\"false_easting\",3500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "Easting\",EAST],AUTHORITY[\"EPSG\",\"3791\"]]"); p = add_epsg_def (filter, first, last, 3793, "epsg", 3793, "NZGD2000 / Chatham Islands TM 2000"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-176.5 +k=1 +x_0=3500000 +y_"); add_proj4text (p, 1, "0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Chatham Islands TM 2000\",GEOGCS[\"N"); add_srs_wkt (p, 1, "ZGD2000\",DATUM[\"New_Zealand_Geodetic_Datum_2000\",SPHE"); add_srs_wkt (p, 2, "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6167\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTIO"); add_srs_wkt (p, 7, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 8, "n\",0],PARAMETER[\"central_meridian\",-176.5],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",1],PARAMETER[\"false_easting\",3500000]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1"); add_srs_wkt (p, 11, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3793\"]]"); p = add_epsg_def (filter, first, last, 3794, "epsg", 3794, "Slovenia 1996 / Slovene National Grid"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=-5000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Slovenia 1996 / Slovene National Grid\",GEOGCS["); add_srs_wkt (p, 1, "\"Slovenia 1996\",DATUM[\"Slovenia_Geodetic_Datum_1996\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6765\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4765\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",0],PARAMETER[\"central_meridian\",15],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",0.9999],PARAMETER[\"false_easting\",500"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",-5000000],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST"); add_srs_wkt (p, 12, "],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3794\"]]"); p = add_epsg_def (filter, first, last, 3795, "epsg", 3795, "NAD27 / Cuba Norte"); add_proj4text (p, 0, "+proj=lcc +lat_1=23 +lat_2=21.7 +lat_0=22.35 +lon_0=-81 "); add_proj4text (p, 1, "+x_0=500000 +y_0=280296.016 +datum=NAD27 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Cuba Norte\",GEOGCS[\"NAD27\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); add_srs_wkt (p, 2, "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 6, "267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARA"); add_srs_wkt (p, 7, "METER[\"standard_parallel_1\",23],PARAMETER[\"standard_p"); add_srs_wkt (p, 8, "arallel_2\",21.7],PARAMETER[\"latitude_of_origin\",22.35"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-81],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",500000],PARAMETER[\"false_northing\",280296.01"); add_srs_wkt (p, 11, "6],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "Y\",NORTH],AXIS[\"X\",EAST],AUTHORITY[\"EPSG\",\"3795\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def (filter, first, last, 3796, "epsg", 3796, "NAD27 / Cuba Sur"); add_proj4text (p, 0, "+proj=lcc +lat_1=21.3 +lat_2=20.13333333333333 +lat_0=20"); add_proj4text (p, 1, ".71666666666667 +lon_0=-76.83333333333333 +x_0=500000 +y"); add_proj4text (p, 2, "_0=229126.939 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Cuba Sur\",GEOGCS[\"NAD27\",DATUM[\"Nor"); add_srs_wkt (p, 1, "th_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637820"); add_srs_wkt (p, 2, "6.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"426"); add_srs_wkt (p, 6, "7\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); add_srs_wkt (p, 7, "TER[\"standard_parallel_1\",21.3],PARAMETER[\"standard_p"); add_srs_wkt (p, 8, "arallel_2\",20.13333333333333],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 9, "rigin\",20.71666666666667],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 10, ",-76.83333333333333],PARAMETER[\"false_easting\",500000]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_northing\",229126.939],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Y\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"X\",EAST],AUTHORITY[\"EPSG\",\"3796\"]]"); p = add_epsg_def (filter, first, last, 3797, "epsg", 3797, "NAD27 / MTQ Lambert"); add_proj4text (p, 0, "+proj=lcc +lat_1=50 +lat_2=46 +lat_0=44 +lon_0=-70 +x_0="); add_proj4text (p, 1, "800000 +y_0=0 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / MTQ Lambert\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 7, "AMETER[\"standard_parallel_1\",50],PARAMETER[\"standard_"); add_srs_wkt (p, 8, "parallel_2\",46],PARAMETER[\"latitude_of_origin\",44],PA"); add_srs_wkt (p, 9, "RAMETER[\"central_meridian\",-70],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",800000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 12, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3797\"]]"); p = add_epsg_def (filter, first, last, 3798, "epsg", 3798, "NAD83 / MTQ Lambert"); add_proj4text (p, 0, "+proj=lcc +lat_1=50 +lat_2=46 +lat_0=44 +lon_0=-70 +x_0="); add_proj4text (p, 1, "800000 +y_0=0 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / MTQ Lambert\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co"); add_srs_wkt (p, 7, "nic_2SP\"],PARAMETER[\"standard_parallel_1\",50],PARAMET"); add_srs_wkt (p, 8, "ER[\"standard_parallel_2\",46],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 9, "rigin\",44],PARAMETER[\"central_meridian\",-70],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",800000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3798\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def (filter, first, last, 3799, "epsg", 3799, "NAD83(CSRS) / MTQ Lambert"); add_proj4text (p, 0, "+proj=lcc +lat_1=50 +lat_2=46 +lat_0=44 +lon_0=-70 +x_0="); add_proj4text (p, 1, "800000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / MTQ Lambert\",GEOGCS[\"NAD83(CSRS"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 8, "_parallel_1\",50],PARAMETER[\"standard_parallel_2\",46],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",44],PARAMETER[\"central"); add_srs_wkt (p, 10, "_meridian\",-70],PARAMETER[\"false_easting\",800000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"3799\"]]"); p = add_epsg_def (filter, first, last, 3800, "epsg", 3800, "NAD27 / Alberta 3TM ref merid 120 W"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-120 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Alberta 3TM ref merid 120 W\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"C"); add_srs_wkt (p, 2, "larke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4267\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 8, "ral_meridian\",-120],PARAMETER[\"scale_factor\",0.9999],"); add_srs_wkt (p, 9, "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northin"); add_srs_wkt (p, 10, "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 11, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"3800\"]]"); p = add_epsg_def (filter, first, last, 3801, "epsg", 3801, "NAD83 / Alberta 3TM ref merid 120 W"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-120 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Alberta 3TM ref merid 120 W\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"G"); add_srs_wkt (p, 2, "RS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"701"); add_srs_wkt (p, 3, "9\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, "ARAMETER[\"central_meridian\",-120],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",0.9999],PARAMETER[\"false_easting\",0],PARAMETER["); add_srs_wkt (p, 10, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); add_srs_wkt (p, 12, "TH],AUTHORITY[\"EPSG\",\"3801\"]]"); p = add_epsg_def (filter, first, last, 3802, "epsg", 3802, "NAD83(CSRS) / Alberta 3TM ref merid 120 W"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-120 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / Alberta 3TM ref merid 120 W\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4617\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "120],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3802\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def (filter, first, last, 3812, "epsg", 3812, "ETRS89 / Belgian Lambert 2008"); add_proj4text (p, 0, "+proj=lcc +lat_1=49.83333333333334 +lat_2=51.16666666666"); add_proj4text (p, 1, "666 +lat_0=50.797815 +lon_0=4.359215833333333 +x_0=64932"); add_proj4text (p, 2, "8 +y_0=665262 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units"); add_proj4text (p, 3, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / Belgian Lambert 2008\",GEOGCS[\"ETRS89"); add_srs_wkt (p, 1, "\",DATUM[\"European_Terrestrial_Reference_System_1989\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 8, "ard_parallel_1\",49.83333333333334],PARAMETER[\"standard"); add_srs_wkt (p, 9, "_parallel_2\",51.16666666666666],PARAMETER[\"latitude_of"); add_srs_wkt (p, 10, "_origin\",50.797815],PARAMETER[\"central_meridian\",4.35"); add_srs_wkt (p, 11, "9215833333333],PARAMETER[\"false_easting\",649328],PARAM"); add_srs_wkt (p, 12, "ETER[\"false_northing\",665262],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 14, "],AUTHORITY[\"EPSG\",\"3812\"]]"); p = add_epsg_def (filter, first, last, 3814, "epsg", 3814, "NAD83 / Mississippi TM"); add_proj4text (p, 0, "+proj=tmerc +lat_0=32.5 +lon_0=-89.75 +k=0.9998335 +x_0="); add_proj4text (p, 1, "500000 +y_0=1300000 +datum=NAD83 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Mississippi TM\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 7, "or\"],PARAMETER[\"latitude_of_origin\",32.5],PARAMETER[\""); add_srs_wkt (p, 8, "central_meridian\",-89.75],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 9, "9998335],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",1300000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"3814\"]]"); p = add_epsg_def (filter, first, last, 3815, "epsg", 3815, "NAD83(HARN) / Mississippi TM"); add_proj4text (p, 0, "+proj=tmerc +lat_0=32.5 +lon_0=-89.75 +k=0.9998335 +x_0="); add_proj4text (p, 1, "500000 +y_0=1300000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 "); add_proj4text (p, 2, "+units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Mississippi TM\",GEOGCS[\"NAD83(H"); add_srs_wkt (p, 1, "ARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 8, "igin\",32.5],PARAMETER[\"central_meridian\",-89.75],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",0.9998335],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",1300000],UNIT"); add_srs_wkt (p, 11, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EA"); add_srs_wkt (p, 12, "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3815\"]]"); p = add_epsg_def (filter, first, last, 3816, "epsg", 3816, "NAD83(NSRS2007) / Mississippi TM"); add_proj4text (p, 0, "+proj=tmerc +lat_0=32.5 +lon_0=-89.75 +k=0.9998335 +x_0="); add_proj4text (p, 1, "500000 +y_0=1300000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 "); add_proj4text (p, 2, "+units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Mississippi TM\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_"); add_srs_wkt (p, 2, "System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",32.5],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",-89.75],PARAMETER[\"scale_factor\",0.9998335],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "1300000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 12, "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "3816\"]]"); p = add_epsg_def (filter, first, last, 3819, "epsg", 3819, "HD1909"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +towgs84=595.48,121.69,515.3"); add_proj4text (p, 1, "5,4.115,-2.9383,0.853,-3.408 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"HD1909\",DATUM[\"Hungarian_Datum_1909\",SPHEROI"); add_srs_wkt (p, 1, "D[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EP"); add_srs_wkt (p, 2, "SG\",\"7004\"]],TOWGS84[595.48,121.69,515.35,4.115,-2.93"); add_srs_wkt (p, 3, "83,0.853,-3.408],AUTHORITY[\"EPSG\",\"1024\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"3819\"]]"); p = add_epsg_def (filter, first, last, 3821, "epsg", 3821, "TWD67"); add_proj4text (p, 0, "+proj=longlat +ellps=aust_SA +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"TWD67\",DATUM[\"Taiwan_Datum_1967\",SPHEROID[\""); add_srs_wkt (p, 1, "GRS 1967 Modified\",6378160,298.25,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 2, "7050\"]],AUTHORITY[\"EPSG\",\"1025\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 3, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 4, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"3821\"]]"); p = add_epsg_def (filter, first, last, 3824, "epsg", 3824, "TWD97"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"TWD97\",DATUM[\"Taiwan_Datum_1997\",SPHEROID[\""); add_srs_wkt (p, 1, "GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 2, "19\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1026\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"3824\"]]"); p = add_epsg_def (filter, first, last, 3825, "epsg", 3825, "TWD97 / TM2 zone 119"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=119 +k=0.9999 +x_0=250000 +y"); add_proj4text (p, 1, "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"TWD97 / TM2 zone 119\",GEOGCS[\"TWD97\",DATUM[\""); add_srs_wkt (p, 1, "Taiwan_Datum_1997\",SPHEROID[\"GRS 1980\",6378137,298.25"); add_srs_wkt (p, 2, "7222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,"); add_srs_wkt (p, 3, "0,0],AUTHORITY[\"EPSG\",\"1026\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"3824\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 7, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 8, "ian\",119],PARAMETER[\"scale_factor\",0.9999],PARAMETER["); add_srs_wkt (p, 9, "\"false_easting\",250000],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 10, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 11, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3825\"]"); add_srs_wkt (p, 12, "]"); p = add_epsg_def (filter, first, last, 3826, "epsg", 3826, "TWD97 / TM2 zone 121"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=121 +k=0.9999 +x_0=250000 +y"); add_proj4text (p, 1, "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"TWD97 / TM2 zone 121\",GEOGCS[\"TWD97\",DATUM[\""); add_srs_wkt (p, 1, "Taiwan_Datum_1997\",SPHEROID[\"GRS 1980\",6378137,298.25"); add_srs_wkt (p, 2, "7222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,"); add_srs_wkt (p, 3, "0,0],AUTHORITY[\"EPSG\",\"1026\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"3824\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 7, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 8, "ian\",121],PARAMETER[\"scale_factor\",0.9999],PARAMETER["); add_srs_wkt (p, 9, "\"false_easting\",250000],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 10, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 11, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3826\"]"); add_srs_wkt (p, 12, "]"); p = add_epsg_def (filter, first, last, 3827, "epsg", 3827, "TWD67 / TM2 zone 119"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=119 +k=0.9999 +x_0=250000 +y"); add_proj4text (p, 1, "_0=0 +ellps=aust_SA +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"TWD67 / TM2 zone 119\",GEOGCS[\"TWD67\",DATUM[\""); add_srs_wkt (p, 1, "Taiwan_Datum_1967\",SPHEROID[\"GRS 1967 Modified\",63781"); add_srs_wkt (p, 2, "60,298.25,AUTHORITY[\"EPSG\",\"7050\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"1025\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"3821\"]],PROJEC"); add_srs_wkt (p, 6, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 7, "igin\",0],PARAMETER[\"central_meridian\",119],PARAMETER["); add_srs_wkt (p, 8, "\"scale_factor\",0.9999],PARAMETER[\"false_easting\",250"); add_srs_wkt (p, 9, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 10, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 11, "NORTH],AUTHORITY[\"EPSG\",\"3827\"]]"); p = add_epsg_def (filter, first, last, 3828, "epsg", 3828, "TWD67 / TM2 zone 121"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=121 +k=0.9999 +x_0=250000 +y"); add_proj4text (p, 1, "_0=0 +ellps=aust_SA +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"TWD67 / TM2 zone 121\",GEOGCS[\"TWD67\",DATUM[\""); add_srs_wkt (p, 1, "Taiwan_Datum_1967\",SPHEROID[\"GRS 1967 Modified\",63781"); add_srs_wkt (p, 2, "60,298.25,AUTHORITY[\"EPSG\",\"7050\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"1025\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"3821\"]],PROJEC"); add_srs_wkt (p, 6, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 7, "igin\",0],PARAMETER[\"central_meridian\",121],PARAMETER["); add_srs_wkt (p, 8, "\"scale_factor\",0.9999],PARAMETER[\"false_easting\",250"); add_srs_wkt (p, 9, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 10, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 11, "NORTH],AUTHORITY[\"EPSG\",\"3828\"]]"); p = add_epsg_def (filter, first, last, 3829, "epsg", 3829, "Hu Tzu Shan 1950 / UTM zone 51N"); add_proj4text (p, 0, "+proj=utm +zone=51 +ellps=intl +towgs84=-637,-549,-203,0"); add_proj4text (p, 1, ",0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Hu Tzu Shan 1950 / UTM zone 51N\",GEOGCS[\"Hu T"); add_srs_wkt (p, 1, "zu Shan 1950\",DATUM[\"Hu_Tzu_Shan_1950\",SPHEROID[\"Int"); add_srs_wkt (p, 2, "ernational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); add_srs_wkt (p, 3, "]],TOWGS84[-637,-549,-203,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6236\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4236\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",123],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 12, "hing\",NORTH],AUTHORITY[\"EPSG\",\"3829\"]]"); p = add_epsg_def (filter, first, last, 3832, "epsg", 3832, "WGS 84 / PDC Mercator"); add_proj4text (p, 0, "+proj=merc +lon_0=150 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +u"); add_proj4text (p, 1, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / PDC Mercator\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Merc"); add_srs_wkt (p, 6, "ator_1SP\"],PARAMETER[\"central_meridian\",150],PARAMETE"); add_srs_wkt (p, 7, "R[\"scale_factor\",1],PARAMETER[\"false_easting\",0],PAR"); add_srs_wkt (p, 8, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 9, "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 10, "ng\",NORTH],AUTHORITY[\"EPSG\",\"3832\"]]"); p = add_epsg_def (filter, first, last, 3833, "epsg", 3833, "Pulkovo 1942(58) / Gauss-Kruger zone 2"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=2500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.8"); add_proj4text (p, 2, "44,-0.84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(58) / Gauss-Kruger zone 2\",GEOGCS"); add_srs_wkt (p, 1, "[\"Pulkovo 1942(58)\",DATUM[\"Pulkovo_1942_58\",SPHEROID"); add_srs_wkt (p, 2, "[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7024\"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-"); add_srs_wkt (p, 4, "0.84],AUTHORITY[\"EPSG\",\"6179\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4179\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 8, "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, "dian\",9],PARAMETER[\"scale_factor\",1],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_easting\",2500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",N"); add_srs_wkt (p, 12, "ORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3833\"]]"); p = add_epsg_def (filter, first, last, 3834, "epsg", 3834, "Pulkovo 1942(83) / Gauss-Kruger zone 2"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=2500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=26,-121,-78,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(83) / Gauss-Kruger zone 2\",GEOGCS"); add_srs_wkt (p, 1, "[\"Pulkovo 1942(83)\",DATUM[\"Pulkovo_1942_83\",SPHEROID"); add_srs_wkt (p, 2, "[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7024\"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6178\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4178\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",9],PARAMETER[\"sc"); add_srs_wkt (p, 9, "ale_factor\",1],PARAMETER[\"false_easting\",2500000],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 11, "\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"3834\"]]"); p = add_epsg_def (filter, first, last, 3835, "epsg", 3835, "Pulkovo 1942(83) / Gauss-Kruger zone 3"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=3500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=26,-121,-78,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(83) / Gauss-Kruger zone 3\",GEOGCS"); add_srs_wkt (p, 1, "[\"Pulkovo 1942(83)\",DATUM[\"Pulkovo_1942_83\",SPHEROID"); add_srs_wkt (p, 2, "[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7024\"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6178\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4178\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",15],PARAMETER[\"s"); add_srs_wkt (p, 9, "cale_factor\",1],PARAMETER[\"false_easting\",3500000],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"3835\"]]"); p = add_epsg_def (filter, first, last, 3836, "epsg", 3836, "Pulkovo 1942(83) / Gauss-Kruger zone 4"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=4500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=26,-121,-78,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(83) / Gauss-Kruger zone 4\",GEOGCS"); add_srs_wkt (p, 1, "[\"Pulkovo 1942(83)\",DATUM[\"Pulkovo_1942_83\",SPHEROID"); add_srs_wkt (p, 2, "[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7024\"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6178\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4178\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",21],PARAMETER[\"s"); add_srs_wkt (p, 9, "cale_factor\",1],PARAMETER[\"false_easting\",4500000],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"3836\"]]"); p = add_epsg_def (filter, first, last, 3837, "epsg", 3837, "Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 3"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.8"); add_proj4text (p, 2, "44,-0.84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 3"); add_srs_wkt (p, 1, "\",GEOGCS[\"Pulkovo 1942(58)\",DATUM[\"Pulkovo_1942_58\""); add_srs_wkt (p, 2, ",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7024\"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.05"); add_srs_wkt (p, 4, "3,0.844,-0.84],AUTHORITY[\"EPSG\",\"6179\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 5, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 6, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4179\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",9],PARAMETER[\"scale_factor\",1],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",3500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3837\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def (filter, first, last, 3838, "epsg", 3838, "Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 4"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0."); add_proj4text (p, 2, "844,-0.84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 4"); add_srs_wkt (p, 1, "\",GEOGCS[\"Pulkovo 1942(58)\",DATUM[\"Pulkovo_1942_58\""); add_srs_wkt (p, 2, ",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7024\"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.05"); add_srs_wkt (p, 4, "3,0.844,-0.84],AUTHORITY[\"EPSG\",\"6179\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 5, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 6, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4179\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",12],PARAMETER[\"scale_factor\",1],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",4500000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 12, "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"383"); add_srs_wkt (p, 13, "8\"]]"); p = add_epsg_def (filter, first, last, 3839, "epsg", 3839, "Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 9"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=9500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0."); add_proj4text (p, 2, "844,-0.84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 9"); add_srs_wkt (p, 1, "\",GEOGCS[\"Pulkovo 1942(58)\",DATUM[\"Pulkovo_1942_58\""); add_srs_wkt (p, 2, ",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7024\"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.05"); add_srs_wkt (p, 4, "3,0.844,-0.84],AUTHORITY[\"EPSG\",\"6179\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 5, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 6, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4179\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",27],PARAMETER[\"scale_factor\",1],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",9500000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 12, "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"383"); add_srs_wkt (p, 13, "9\"]]"); p = add_epsg_def (filter, first, last, 3840, "epsg", 3840, "Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 10"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=10500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0"); add_proj4text (p, 2, ".844,-0.84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 1"); add_srs_wkt (p, 1, "0\",GEOGCS[\"Pulkovo 1942(58)\",DATUM[\"Pulkovo_1942_58\""); add_srs_wkt (p, 2, ",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7024\"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.05"); add_srs_wkt (p, 4, "3,0.844,-0.84],AUTHORITY[\"EPSG\",\"6179\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 5, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 6, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4179\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",30],PARAMETER[\"scale_factor\",1],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",10500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 11, "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 12, "IS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"38"); add_srs_wkt (p, 13, "40\"]]"); p = add_epsg_def (filter, first, last, 3841, "epsg", 3841, "Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 6"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=6500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=26,-121,-78,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 6"); add_srs_wkt (p, 1, "\",GEOGCS[\"Pulkovo 1942(83)\",DATUM[\"Pulkovo_1942_83\""); add_srs_wkt (p, 2, ",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7024\"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6178\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4178\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",18],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",65"); add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 12, "\",EAST],AUTHORITY[\"EPSG\",\"3841\"]]"); p = add_epsg_def (filter, first, last, 3842, "epsg", 3842, "Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 7 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=6500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=26,-121,-78,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 7"); add_srs_wkt (p, 1, " (deprecated)\",GEOGCS[\"Pulkovo 1942(83)\",DATUM[\"Pulk"); add_srs_wkt (p, 2, "ovo_1942_83\",SPHEROID[\"Krassowsky 1940\",6378245,298.3"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[26,-121,-78,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6178\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4178\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); add_srs_wkt (p, 8, "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); add_srs_wkt (p, 9, "an\",18],PARAMETER[\"scale_factor\",1],PARAMETER[\"false"); add_srs_wkt (p, 10, "_easting\",6500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 11, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NO"); add_srs_wkt (p, 12, "RTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3842\"]]"); p = add_epsg_def (filter, first, last, 3843, "epsg", 3843, "Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 8 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=6500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=26,-121,-78,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 8"); add_srs_wkt (p, 1, " (deprecated)\",GEOGCS[\"Pulkovo 1942(83)\",DATUM[\"Pulk"); add_srs_wkt (p, 2, "ovo_1942_83\",SPHEROID[\"Krassowsky 1940\",6378245,298.3"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[26,-121,-78,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6178\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4178\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); add_srs_wkt (p, 8, "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); add_srs_wkt (p, 9, "an\",18],PARAMETER[\"scale_factor\",1],PARAMETER[\"false"); add_srs_wkt (p, 10, "_easting\",6500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 11, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NO"); add_srs_wkt (p, 12, "RTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3843\"]]"); p = add_epsg_def (filter, first, last, 3844, "epsg", 3844, "Pulkovo 1942(58) / Stereo70"); add_proj4text (p, 0, "+proj=sterea +lat_0=46 +lon_0=25 +k=0.99975 +x_0=500000 "); add_proj4text (p, 1, "+y_0=500000 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.3"); add_proj4text (p, 2, "59,-0.053,0.844,-0.84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(58) / Stereo70\",GEOGCS[\"Pulkovo "); add_srs_wkt (p, 1, "1942(58)\",DATUM[\"Pulkovo_1942_58\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6179\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4179"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Oblique_Stereographic\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",46],PARAMETER[\"central_meridian\",2"); add_srs_wkt (p, 9, "5],PARAMETER[\"scale_factor\",0.99975],PARAMETER[\"false"); add_srs_wkt (p, 10, "_easting\",500000],PARAMETER[\"false_northing\",500000],"); add_srs_wkt (p, 11, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 12, ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3844\"]]"); p = add_epsg_def (filter, first, last, 3845, "epsg", 3845, "SWEREF99 / RT90 7.5 gon V emulation"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=11.30625 +k=1.000006 +x_0=15"); add_proj4text (p, 1, "00025.141 +y_0=-667.282 +ellps=GRS80 +towgs84=0,0,0,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SWEREF99 / RT90 7.5 gon V emulation\",GEOGCS[\""); add_srs_wkt (p, 1, "SWEREF99\",DATUM[\"SWEREF99\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6619\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4619\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 8, "ral_meridian\",11.30625],PARAMETER[\"scale_factor\",1.00"); add_srs_wkt (p, 9, "0006],PARAMETER[\"false_easting\",1500025.141],PARAMETER"); add_srs_wkt (p, 10, "[\"false_northing\",-667.282],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"3845\"]]"); p = add_epsg_def (filter, first, last, 3846, "epsg", 3846, "SWEREF99 / RT90 5 gon V emulation"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=13.55626666666667 +k=1.00000"); add_proj4text (p, 1, "58 +x_0=1500044.695 +y_0=-667.13 +ellps=GRS80 +towgs84=0"); add_proj4text (p, 2, ",0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SWEREF99 / RT90 5 gon V emulation\",GEOGCS[\"SW"); add_srs_wkt (p, 1, "EREF99\",DATUM[\"SWEREF99\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6619\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4619\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",13.55626666666667],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, "\",1.0000058],PARAMETER[\"false_easting\",1500044.695],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",-667.13],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"3846\"]]"); p = add_epsg_def (filter, first, last, 3847, "epsg", 3847, "SWEREF99 / RT90 2.5 gon V emulation"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15.80628452944445 +k=1.00000"); add_proj4text (p, 1, "561024 +x_0=1500064.274 +y_0=-667.711 +ellps=GRS80 +towg"); add_proj4text (p, 2, "s84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SWEREF99 / RT90 2.5 gon V emulation\",GEOGCS[\""); add_srs_wkt (p, 1, "SWEREF99\",DATUM[\"SWEREF99\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6619\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4619\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 8, "ral_meridian\",15.80628452944445],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",1.00000561024],PARAMETER[\"false_easting\",1500064."); add_srs_wkt (p, 10, "274],PARAMETER[\"false_northing\",-667.711],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3847\"]]"); p = add_epsg_def (filter, first, last, 3848, "epsg", 3848, "SWEREF99 / RT90 0 gon emulation"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=18.0563 +k=1.0000054 +x_0=15"); add_proj4text (p, 1, "00083.521 +y_0=-668.8440000000001 +ellps=GRS80 +towgs84="); add_proj4text (p, 2, "0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SWEREF99 / RT90 0 gon emulation\",GEOGCS[\"SWER"); add_srs_wkt (p, 1, "EF99\",DATUM[\"SWEREF99\",SPHEROID[\"GRS 1980\",6378137,"); add_srs_wkt (p, 2, "298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,"); add_srs_wkt (p, 3, "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6619\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 4, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 5, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"4619\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 7, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 8, "_meridian\",18.0563],PARAMETER[\"scale_factor\",1.000005"); add_srs_wkt (p, 9, "4],PARAMETER[\"false_easting\",1500083.521],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",-668.844],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"3848\"]]"); p = add_epsg_def (filter, first, last, 3849, "epsg", 3849, "SWEREF99 / RT90 2.5 gon O emulation"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=20.30631666666667 +k=1.00000"); add_proj4text (p, 1, "52 +x_0=1500102.765 +y_0=-670.706 +ellps=GRS80 +towgs84="); add_proj4text (p, 2, "0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SWEREF99 / RT90 2.5 gon O emulation\",GEOGCS[\""); add_srs_wkt (p, 1, "SWEREF99\",DATUM[\"SWEREF99\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6619\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4619\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 7, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 8, "ral_meridian\",20.30631666666667],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",1.0000052],PARAMETER[\"false_easting\",1500102.765]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_northing\",-670.706],UNIT[\"metre\",1"); add_srs_wkt (p, 11, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "Y\",EAST],AUTHORITY[\"EPSG\",\"3849\"]]"); p = add_epsg_def (filter, first, last, 3850, "epsg", 3850, "SWEREF99 / RT90 5 gon O emulation"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=22.55633333333333 +k=1.00000"); add_proj4text (p, 1, "49 +x_0=1500121.846 +y_0=-672.557 +ellps=GRS80 +towgs84="); add_proj4text (p, 2, "0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SWEREF99 / RT90 5 gon O emulation\",GEOGCS[\"SW"); add_srs_wkt (p, 1, "EREF99\",DATUM[\"SWEREF99\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6619\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4619\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",22.55633333333333],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, "\",1.0000049],PARAMETER[\"false_easting\",1500121.846],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",-672.557],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"3850\"]]"); p = add_epsg_def (filter, first, last, 3851, "epsg", 3851, "NZGD2000 / NZCS2000"); add_proj4text (p, 0, "+proj=lcc +lat_1=-37.5 +lat_2=-44.5 +lat_0=-41 +lon_0=17"); add_proj4text (p, 1, "3 +x_0=3000000 +y_0=7000000 +ellps=GRS80 +towgs84=0,0,0,"); add_proj4text (p, 2, "0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / NZCS2000\",GEOGCS[\"NZGD2000\",DATUM"); add_srs_wkt (p, 1, "[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 7, "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",-3"); add_srs_wkt (p, 8, "7.5],PARAMETER[\"standard_parallel_2\",-44.5],PARAMETER["); add_srs_wkt (p, 9, "\"latitude_of_origin\",-41],PARAMETER[\"central_meridian"); add_srs_wkt (p, 10, "\",173],PARAMETER[\"false_easting\",3000000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",7000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"3851\"]]"); p = add_epsg_def (filter, first, last, 3852, "epsg", 3852, "RSRGD2000 / DGLC2000"); add_proj4text (p, 0, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=157 +x_0=500000 +y_0=0 +ellps=GR"); add_proj4text (p, 2, "S80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RSRGD2000 / DGLC2000\",GEOGCS[\"RSRGD2000\",DAT"); add_srs_wkt (p, 1, "UM[\"Ross_Sea_Region_Geodetic_Datum_2000\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6764\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4764\"]],PROJECTION[\"Lambe"); add_srs_wkt (p, 7, "rt_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 8, "1\",-76.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-79.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",157],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 12, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northin"); add_srs_wkt (p, 13, "g\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 14, "852\"]]"); p = add_epsg_def (filter, first, last, 3854, "epsg", 3854, "County ST74"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=18.05787 +k=0.99999506 +x_0="); add_proj4text (p, 1, "100182.7406 +y_0=-6500620.1207 +ellps=GRS80 +towgs84=0,0"); add_proj4text (p, 2, ",0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"County ST74\",GEOGCS[\"SWEREF99\",DATUM[\"SWERE"); add_srs_wkt (p, 1, "F99\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 2, "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"6619\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4619\"]]"); add_srs_wkt (p, 6, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 7, "e_of_origin\",0],PARAMETER[\"central_meridian\",18.05787"); add_srs_wkt (p, 8, "],PARAMETER[\"scale_factor\",0.99999506],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",100182.7406],PARAMETER[\"false_northing\",-"); add_srs_wkt (p, 10, "6500620.1207],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 11, "\"]],AXIS[\"x\",NORTH],AXIS[\"y\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"3854\"]]"); p = add_epsg_def (filter, first, last, 3857, "epsg", 3857, "WGS 84 / Pseudo-Mercator"); add_proj4text (p, 0, "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 "); add_proj4text (p, 1, "+x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext "); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / Pseudo-Mercator\",GEOGCS[\"WGS 84\",DA"); add_srs_wkt (p, 1, "TUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2572235"); add_srs_wkt (p, 2, "63,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"63"); add_srs_wkt (p, 3, "26\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 4, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"M"); add_srs_wkt (p, 6, "ercator_1SP\"],PARAMETER[\"central_meridian\",0],PARAMET"); add_srs_wkt (p, 7, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 9, "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 10, "EXTENSION[\"PROJ4\",\"+proj=merc +a=6378137 +b=6378137 +"); add_srs_wkt (p, 11, "lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +n"); add_srs_wkt (p, 12, "adgrids=@null +wktext +no_defs\"],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "3857\"]]"); p = add_epsg_def (filter, first, last, 3873, "epsg", 3873, "ETRS89 / GK19FIN"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=19 +k=1 +x_0=19500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / GK19FIN\",GEOGCS[\"ETRS89\",DATUM[\"Eu"); add_srs_wkt (p, 1, "ropean_Terrestrial_Reference_System_1989\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",19],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, "r\",1],PARAMETER[\"false_easting\",19500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 12, "T],AUTHORITY[\"EPSG\",\"3873\"]]"); p = add_epsg_def (filter, first, last, 3874, "epsg", 3874, "ETRS89 / GK20FIN"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=20 +k=1 +x_0=20500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / GK20FIN\",GEOGCS[\"ETRS89\",DATUM[\"Eu"); add_srs_wkt (p, 1, "ropean_Terrestrial_Reference_System_1989\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",20],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, "r\",1],PARAMETER[\"false_easting\",20500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 12, "T],AUTHORITY[\"EPSG\",\"3874\"]]"); p = add_epsg_def (filter, first, last, 3875, "epsg", 3875, "ETRS89 / GK21FIN"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=21500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / GK21FIN\",GEOGCS[\"ETRS89\",DATUM[\"Eu"); add_srs_wkt (p, 1, "ropean_Terrestrial_Reference_System_1989\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",21],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, "r\",1],PARAMETER[\"false_easting\",21500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 12, "T],AUTHORITY[\"EPSG\",\"3875\"]]"); p = add_epsg_def (filter, first, last, 3876, "epsg", 3876, "ETRS89 / GK22FIN"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=22 +k=1 +x_0=22500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / GK22FIN\",GEOGCS[\"ETRS89\",DATUM[\"Eu"); add_srs_wkt (p, 1, "ropean_Terrestrial_Reference_System_1989\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",22],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, "r\",1],PARAMETER[\"false_easting\",22500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 12, "T],AUTHORITY[\"EPSG\",\"3876\"]]"); p = add_epsg_def (filter, first, last, 3877, "epsg", 3877, "ETRS89 / GK23FIN"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=23 +k=1 +x_0=23500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / GK23FIN\",GEOGCS[\"ETRS89\",DATUM[\"Eu"); add_srs_wkt (p, 1, "ropean_Terrestrial_Reference_System_1989\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",23],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, "r\",1],PARAMETER[\"false_easting\",23500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 12, "T],AUTHORITY[\"EPSG\",\"3877\"]]"); p = add_epsg_def (filter, first, last, 3878, "epsg", 3878, "ETRS89 / GK24FIN"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=24500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / GK24FIN\",GEOGCS[\"ETRS89\",DATUM[\"Eu"); add_srs_wkt (p, 1, "ropean_Terrestrial_Reference_System_1989\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",24],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, "r\",1],PARAMETER[\"false_easting\",24500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 12, "T],AUTHORITY[\"EPSG\",\"3878\"]]"); p = add_epsg_def (filter, first, last, 3879, "epsg", 3879, "ETRS89 / GK25FIN"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=25 +k=1 +x_0=25500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / GK25FIN\",GEOGCS[\"ETRS89\",DATUM[\"Eu"); add_srs_wkt (p, 1, "ropean_Terrestrial_Reference_System_1989\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",25],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, "r\",1],PARAMETER[\"false_easting\",25500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 12, "T],AUTHORITY[\"EPSG\",\"3879\"]]"); p = add_epsg_def (filter, first, last, 3880, "epsg", 3880, "ETRS89 / GK26FIN"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=26 +k=1 +x_0=26500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / GK26FIN\",GEOGCS[\"ETRS89\",DATUM[\"Eu"); add_srs_wkt (p, 1, "ropean_Terrestrial_Reference_System_1989\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",26],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, "r\",1],PARAMETER[\"false_easting\",26500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 12, "T],AUTHORITY[\"EPSG\",\"3880\"]]"); p = add_epsg_def (filter, first, last, 3881, "epsg", 3881, "ETRS89 / GK27FIN"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=27500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / GK27FIN\",GEOGCS[\"ETRS89\",DATUM[\"Eu"); add_srs_wkt (p, 1, "ropean_Terrestrial_Reference_System_1989\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",27],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, "r\",1],PARAMETER[\"false_easting\",27500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 12, "T],AUTHORITY[\"EPSG\",\"3881\"]]"); p = add_epsg_def (filter, first, last, 3882, "epsg", 3882, "ETRS89 / GK28FIN"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=28 +k=1 +x_0=28500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / GK28FIN\",GEOGCS[\"ETRS89\",DATUM[\"Eu"); add_srs_wkt (p, 1, "ropean_Terrestrial_Reference_System_1989\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",28],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, "r\",1],PARAMETER[\"false_easting\",28500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 12, "T],AUTHORITY[\"EPSG\",\"3882\"]]"); p = add_epsg_def (filter, first, last, 3883, "epsg", 3883, "ETRS89 / GK29FIN"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=29 +k=1 +x_0=29500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / GK29FIN\",GEOGCS[\"ETRS89\",DATUM[\"Eu"); add_srs_wkt (p, 1, "ropean_Terrestrial_Reference_System_1989\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",29],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, "r\",1],PARAMETER[\"false_easting\",29500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 12, "T],AUTHORITY[\"EPSG\",\"3883\"]]"); p = add_epsg_def (filter, first, last, 3884, "epsg", 3884, "ETRS89 / GK30FIN"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=30500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / GK30FIN\",GEOGCS[\"ETRS89\",DATUM[\"Eu"); add_srs_wkt (p, 1, "ropean_Terrestrial_Reference_System_1989\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",30],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, "r\",1],PARAMETER[\"false_easting\",30500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 12, "T],AUTHORITY[\"EPSG\",\"3884\"]]"); p = add_epsg_def (filter, first, last, 3885, "epsg", 3885, "ETRS89 / GK31FIN"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=31 +k=1 +x_0=31500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / GK31FIN\",GEOGCS[\"ETRS89\",DATUM[\"Eu"); add_srs_wkt (p, 1, "ropean_Terrestrial_Reference_System_1989\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Trans"); add_srs_wkt (p, 7, "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",31],PARAMETER[\"scale_facto"); add_srs_wkt (p, 9, "r\",1],PARAMETER[\"false_easting\",31500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 12, "T],AUTHORITY[\"EPSG\",\"3885\"]]"); p = add_epsg_def (filter, first, last, 3889, "epsg", 3889, "IGRS"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"IGRS\",DATUM[\"Iraqi_Geospatial_Reference_Syste"); add_srs_wkt (p, 1, "m\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"1029\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"3889\"]]"); } #endif /* full EPSG initialization enabled/disabled */ libspatialite-4.1.1/src/srsinit/epsg_inlined_16.c0000664000175000017500000051600412163502133016664 00000000000000/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_16 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def (filter, first, last, 3649, "epsg", 3649, "NAD83(NSRS2007) / Pennsylvania North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.95 +lat_2=40.88333333333333 +lat_0=4"); add_proj4text (p, 1, "0.16666666666666 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps"); add_proj4text (p, 2, "=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Pennsylvania North\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 8, "PARAMETER[\"standard_parallel_1\",41.95],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_2\",40.88333333333333],PARAMETER[\"latitu"); add_srs_wkt (p, 10, "de_of_origin\",40.16666666666666],PARAMETER[\"central_me"); add_srs_wkt (p, 11, "ridian\",-77.75],PARAMETER[\"false_easting\",600000],PAR"); add_srs_wkt (p, 12, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 14, "UTHORITY[\"EPSG\",\"3649\"]]"); p = add_epsg_def (filter, first, last, 3650, "epsg", 3650, "NAD83(NSRS2007) / Pennsylvania North (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.95 +lat_2=40.88333333333333 +lat_0=4"); add_proj4text (p, 1, "0.16666666666666 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps"); add_proj4text (p, 2, "=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Pennsylvania North (ftUS)\",G"); add_srs_wkt (p, 1, "EOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial"); add_srs_wkt (p, 2, "_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 3, "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 4, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 5, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 6, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic"); add_srs_wkt (p, 8, "_2SP\"],PARAMETER[\"standard_parallel_1\",41.95],PARAMET"); add_srs_wkt (p, 9, "ER[\"standard_parallel_2\",40.88333333333333],PARAMETER["); add_srs_wkt (p, 10, "\"latitude_of_origin\",40.16666666666666],PARAMETER[\"ce"); add_srs_wkt (p, 11, "ntral_meridian\",-77.75],PARAMETER[\"false_easting\",196"); add_srs_wkt (p, 12, "8500],PARAMETER[\"false_northing\",0],UNIT[\"US survey f"); add_srs_wkt (p, 13, "oot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],A"); add_srs_wkt (p, 14, "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 15, "650\"]]"); p = add_epsg_def (filter, first, last, 3651, "epsg", 3651, "NAD83(NSRS2007) / Pennsylvania South"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.96666666666667 +lat_2=39.93333333333"); add_proj4text (p, 1, "333 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=600000 +"); add_proj4text (p, 2, "y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 3, "efs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Pennsylvania South\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 8, "PARAMETER[\"standard_parallel_1\",40.96666666666667],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_2\",39.93333333333333],PARAME"); add_srs_wkt (p, 10, "TER[\"latitude_of_origin\",39.33333333333334],PARAMETER["); add_srs_wkt (p, 11, "\"central_meridian\",-77.75],PARAMETER[\"false_easting\""); add_srs_wkt (p, 12, ",600000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 13, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 14, "Y\",NORTH],AUTHORITY[\"EPSG\",\"3651\"]]"); p = add_epsg_def (filter, first, last, 3652, "epsg", 3652, "NAD83(NSRS2007) / Pennsylvania South (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.96666666666667 +lat_2=39.93333333333"); add_proj4text (p, 1, "333 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=600000 +"); add_proj4text (p, 2, "y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Pennsylvania South (ftUS)\",G"); add_srs_wkt (p, 1, "EOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial"); add_srs_wkt (p, 2, "_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 3, "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 4, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 5, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 6, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic"); add_srs_wkt (p, 8, "_2SP\"],PARAMETER[\"standard_parallel_1\",40.96666666666"); add_srs_wkt (p, 9, "667],PARAMETER[\"standard_parallel_2\",39.93333333333333"); add_srs_wkt (p, 10, "],PARAMETER[\"latitude_of_origin\",39.33333333333334],PA"); add_srs_wkt (p, 11, "RAMETER[\"central_meridian\",-77.75],PARAMETER[\"false_e"); add_srs_wkt (p, 12, "asting\",1968500],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 13, "US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 15, "EPSG\",\"3652\"]]"); p = add_epsg_def (filter, first, last, 3653, "epsg", 3653, "NAD83(NSRS2007) / Rhode Island"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.9"); add_proj4text (p, 1, "9999375 +x_0=100000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0"); add_proj4text (p, 2, ",0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Rhode Island\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 7, "59\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",41.08333333333334],PARAMETER[\"centr"); add_srs_wkt (p, 9, "al_meridian\",-71.5],PARAMETER[\"scale_factor\",0.999993"); add_srs_wkt (p, 10, "75],PARAMETER[\"false_easting\",100000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"3653\"]]"); p = add_epsg_def (filter, first, last, 3654, "epsg", 3654, "NAD83(NSRS2007) / Rhode Island (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.9"); add_proj4text (p, 1, "9999375 +x_0=99999.99998983997 +y_0=0 +ellps=GRS80 +towg"); add_proj4text (p, 2, "s84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Rhode Island (ftUS)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); add_srs_wkt (p, 8, "TER[\"latitude_of_origin\",41.08333333333334],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",-71.5],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".99999375],PARAMETER[\"false_easting\",328083.3333],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"US survey foot\",0.30"); add_srs_wkt (p, 12, "48006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\","); add_srs_wkt (p, 13, "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3654\"]]"); p = add_epsg_def (filter, first, last, 3655, "epsg", 3655, "NAD83(NSRS2007) / South Carolina"); add_proj4text (p, 0, "+proj=lcc +lat_1=34.83333333333334 +lat_2=32.5 +lat_0=31"); add_proj4text (p, 1, ".83333333333333 +lon_0=-81 +x_0=609600 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, "80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / South Carolina\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_"); add_srs_wkt (p, 2, "System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_1\",34.83333333333334],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_2\",32.5],PARAMETER[\"latitude_o"); add_srs_wkt (p, 10, "f_origin\",31.83333333333333],PARAMETER[\"central_meridi"); add_srs_wkt (p, 11, "an\",-81],PARAMETER[\"false_easting\",609600],PARAMETER["); add_srs_wkt (p, 12, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 14, "[\"EPSG\",\"3655\"]]"); p = add_epsg_def (filter, first, last, 3656, "epsg", 3656, "NAD83(NSRS2007) / South Carolina (ft)"); add_proj4text (p, 0, "+proj=lcc +lat_1=34.83333333333334 +lat_2=32.5 +lat_0=31"); add_proj4text (p, 1, ".83333333333333 +lon_0=-81 +x_0=609600 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, "80 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / South Carolina (ft)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 8, "],PARAMETER[\"standard_parallel_1\",34.83333333333334],P"); add_srs_wkt (p, 9, "ARAMETER[\"standard_parallel_2\",32.5],PARAMETER[\"latit"); add_srs_wkt (p, 10, "ude_of_origin\",31.83333333333333],PARAMETER[\"central_m"); add_srs_wkt (p, 11, "eridian\",-81],PARAMETER[\"false_easting\",2000000],PARA"); add_srs_wkt (p, 12, "METER[\"false_northing\",0],UNIT[\"foot\",0.3048,AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"9002\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 14, "],AUTHORITY[\"EPSG\",\"3656\"]]"); p = add_epsg_def (filter, first, last, 3657, "epsg", 3657, "NAD83(NSRS2007) / South Dakota North"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.68333333333333 +lat_2=44.41666666666"); add_proj4text (p, 1, "666 +lat_0=43.83333333333334 +lon_0=-100 +x_0=600000 +y_"); add_proj4text (p, 2, "0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_def"); add_proj4text (p, 3, "s"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / South Dakota North\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 8, "PARAMETER[\"standard_parallel_1\",45.68333333333333],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_2\",44.41666666666666],PARAME"); add_srs_wkt (p, 10, "TER[\"latitude_of_origin\",43.83333333333334],PARAMETER["); add_srs_wkt (p, 11, "\"central_meridian\",-100],PARAMETER[\"false_easting\",6"); add_srs_wkt (p, 12, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 14, ",NORTH],AUTHORITY[\"EPSG\",\"3657\"]]"); p = add_epsg_def (filter, first, last, 3658, "epsg", 3658, "NAD83(NSRS2007) / South Dakota North (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.68333333333333 +lat_2=44.41666666666"); add_proj4text (p, 1, "666 +lat_0=43.83333333333334 +lon_0=-100 +x_0=600000 +y_"); add_proj4text (p, 2, "0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no"); add_proj4text (p, 3, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / South Dakota North (ftUS)\",G"); add_srs_wkt (p, 1, "EOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial"); add_srs_wkt (p, 2, "_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 3, "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 4, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 5, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 6, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic"); add_srs_wkt (p, 8, "_2SP\"],PARAMETER[\"standard_parallel_1\",45.68333333333"); add_srs_wkt (p, 9, "333],PARAMETER[\"standard_parallel_2\",44.41666666666666"); add_srs_wkt (p, 10, "],PARAMETER[\"latitude_of_origin\",43.83333333333334],PA"); add_srs_wkt (p, 11, "RAMETER[\"central_meridian\",-100],PARAMETER[\"false_eas"); add_srs_wkt (p, 12, "ting\",1968500],PARAMETER[\"false_northing\",0],UNIT[\"U"); add_srs_wkt (p, 13, "S survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 15, "EPSG\",\"3658\"]]"); p = add_epsg_def (filter, first, last, 3659, "epsg", 3659, "NAD83(NSRS2007) / South Dakota South"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.4 +lat_2=42.83333333333334 +lat_0=42"); add_proj4text (p, 1, ".33333333333334 +lon_0=-100.3333333333333 +x_0=600000 +y"); add_proj4text (p, 2, "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); add_proj4text (p, 3, "fs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / South Dakota South\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 8, "PARAMETER[\"standard_parallel_1\",44.4],PARAMETER[\"stan"); add_srs_wkt (p, 9, "dard_parallel_2\",42.83333333333334],PARAMETER[\"latitud"); add_srs_wkt (p, 10, "e_of_origin\",42.33333333333334],PARAMETER[\"central_mer"); add_srs_wkt (p, 11, "idian\",-100.3333333333333],PARAMETER[\"false_easting\","); add_srs_wkt (p, 12, "600000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 14, "\",NORTH],AUTHORITY[\"EPSG\",\"3659\"]]"); p = add_epsg_def (filter, first, last, 3660, "epsg", 3660, "NAD83(NSRS2007) / South Dakota South (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.4 +lat_2=42.83333333333334 +lat_0=42"); add_proj4text (p, 1, ".33333333333334 +lon_0=-100.3333333333333 +x_0=600000 +y"); add_proj4text (p, 2, "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +n"); add_proj4text (p, 3, "o_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / South Dakota South (ftUS)\",G"); add_srs_wkt (p, 1, "EOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial"); add_srs_wkt (p, 2, "_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 3, "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 4, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 5, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 6, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic"); add_srs_wkt (p, 8, "_2SP\"],PARAMETER[\"standard_parallel_1\",44.4],PARAMETE"); add_srs_wkt (p, 9, "R[\"standard_parallel_2\",42.83333333333334],PARAMETER[\""); add_srs_wkt (p, 10, "latitude_of_origin\",42.33333333333334],PARAMETER[\"cent"); add_srs_wkt (p, 11, "ral_meridian\",-100.3333333333333],PARAMETER[\"false_eas"); add_srs_wkt (p, 12, "ting\",1968500],PARAMETER[\"false_northing\",0],UNIT[\"U"); add_srs_wkt (p, 13, "S survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 15, "EPSG\",\"3660\"]]"); p = add_epsg_def (filter, first, last, 3661, "epsg", 3661, "NAD83(NSRS2007) / Tennessee"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.41666666666666 +lat_2=35.25 +lat_0=3"); add_proj4text (p, 1, "4.33333333333334 +lon_0=-86 +x_0=600000 +y_0=0 +ellps=GR"); add_proj4text (p, 2, "S80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Tennessee\",GEOGCS[\"NAD83(NS"); add_srs_wkt (p, 1, "RS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Syste"); add_srs_wkt (p, 2, "m_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4759\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 8, "[\"standard_parallel_1\",36.41666666666666],PARAMETER[\""); add_srs_wkt (p, 9, "standard_parallel_2\",35.25],PARAMETER[\"latitude_of_ori"); add_srs_wkt (p, 10, "gin\",34.33333333333334],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 11, "-86],PARAMETER[\"false_easting\",600000],PARAMETER[\"fal"); add_srs_wkt (p, 12, "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 13, "001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 14, "PSG\",\"3661\"]]"); p = add_epsg_def (filter, first, last, 3662, "epsg", 3662, "NAD83(NSRS2007) / Tennessee (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.41666666666666 +lat_2=35.25 +lat_0=3"); add_proj4text (p, 1, "4.33333333333334 +lon_0=-86 +x_0=600000 +y_0=0 +ellps=GR"); add_proj4text (p, 2, "S80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Tennessee (ftUS)\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referenc"); add_srs_wkt (p, 2, "e_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],P"); add_srs_wkt (p, 8, "ARAMETER[\"standard_parallel_1\",36.41666666666666],PARA"); add_srs_wkt (p, 9, "METER[\"standard_parallel_2\",35.25],PARAMETER[\"latitud"); add_srs_wkt (p, 10, "e_of_origin\",34.33333333333334],PARAMETER[\"central_mer"); add_srs_wkt (p, 11, "idian\",-86],PARAMETER[\"false_easting\",1968500],PARAME"); add_srs_wkt (p, 12, "TER[\"false_northing\",0],UNIT[\"US survey foot\",0.3048"); add_srs_wkt (p, 13, "006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EA"); add_srs_wkt (p, 14, "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3662\"]]"); p = add_epsg_def (filter, first, last, 3663, "epsg", 3663, "NAD83(NSRS2007) / Texas Central"); add_proj4text (p, 0, "+proj=lcc +lat_1=31.88333333333333 +lat_2=30.11666666666"); add_proj4text (p, 1, "667 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +"); add_proj4text (p, 2, "x_0=700000 +y_0=3000000 +ellps=GRS80 +towgs84=0,0,0,0,0,"); add_proj4text (p, 3, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Texas Central\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARA"); add_srs_wkt (p, 8, "METER[\"standard_parallel_1\",31.88333333333333],PARAMET"); add_srs_wkt (p, 9, "ER[\"standard_parallel_2\",30.11666666666667],PARAMETER["); add_srs_wkt (p, 10, "\"latitude_of_origin\",29.66666666666667],PARAMETER[\"ce"); add_srs_wkt (p, 11, "ntral_meridian\",-100.3333333333333],PARAMETER[\"false_e"); add_srs_wkt (p, 12, "asting\",700000],PARAMETER[\"false_northing\",3000000],U"); add_srs_wkt (p, 13, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 14, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3663\"]]"); p = add_epsg_def (filter, first, last, 3664, "epsg", 3664, "NAD83(NSRS2007) / Texas Central (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=31.88333333333333 +lat_2=30.11666666666"); add_proj4text (p, 1, "667 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +"); add_proj4text (p, 2, "x_0=699999.9998983998 +y_0=3000000 +ellps=GRS80 +towgs84"); add_proj4text (p, 3, "=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Texas Central (ftUS)\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refe"); add_srs_wkt (p, 2, "rence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25"); add_srs_wkt (p, 3, "7222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,"); add_srs_wkt (p, 4, "0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, "G\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 8, "],PARAMETER[\"standard_parallel_1\",31.88333333333333],P"); add_srs_wkt (p, 9, "ARAMETER[\"standard_parallel_2\",30.11666666666667],PARA"); add_srs_wkt (p, 10, "METER[\"latitude_of_origin\",29.66666666666667],PARAMETE"); add_srs_wkt (p, 11, "R[\"central_meridian\",-100.3333333333333],PARAMETER[\"f"); add_srs_wkt (p, 12, "alse_easting\",2296583.333],PARAMETER[\"false_northing\""); add_srs_wkt (p, 13, ",9842500.000000002],UNIT[\"US survey foot\",0.3048006096"); add_srs_wkt (p, 14, "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 15, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3664\"]]"); p = add_epsg_def (filter, first, last, 3665, "epsg", 3665, "NAD83(NSRS2007) / Texas Centric Albers Equal Area"); add_proj4text (p, 0, "+proj=aea +lat_1=27.5 +lat_2=35 +lat_0=18 +lon_0=-100 +x"); add_proj4text (p, 1, "_0=1500000 +y_0=6000000 +ellps=GRS80 +towgs84=0,0,0,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Texas Centric Albers Equal Ar"); add_srs_wkt (p, 1, "ea\",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_S"); add_srs_wkt (p, 2, "patial_Reference_System_2007\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 3, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 4, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"G"); add_srs_wkt (p, 5, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 6, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4759\"]],PROJECTION[\"Albers_Conic_Equa"); add_srs_wkt (p, 8, "l_Area\"],PARAMETER[\"standard_parallel_1\",27.5],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_2\",35],PARAMETER[\"latitude_of_"); add_srs_wkt (p, 10, "center\",18],PARAMETER[\"longitude_of_center\",-100],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_easting\",1500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 12, "hing\",6000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "01\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP"); add_srs_wkt (p, 14, "SG\",\"3665\"]]"); p = add_epsg_def (filter, first, last, 3666, "epsg", 3666, "NAD83(NSRS2007) / Texas Centric Lambert Conformal"); add_proj4text (p, 0, "+proj=lcc +lat_1=27.5 +lat_2=35 +lat_0=18 +lon_0=-100 +x"); add_proj4text (p, 1, "_0=1500000 +y_0=5000000 +ellps=GRS80 +towgs84=0,0,0,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Texas Centric Lambert Conform"); add_srs_wkt (p, 1, "al\",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_S"); add_srs_wkt (p, 2, "patial_Reference_System_2007\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 3, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 4, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"G"); add_srs_wkt (p, 5, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 6, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 8, "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",27.5],PA"); add_srs_wkt (p, 9, "RAMETER[\"standard_parallel_2\",35],PARAMETER[\"latitude"); add_srs_wkt (p, 10, "_of_origin\",18],PARAMETER[\"central_meridian\",-100],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_easting\",1500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 12, "thing\",5000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 13, "001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 14, "PSG\",\"3666\"]]"); p = add_epsg_def (filter, first, last, 3667, "epsg", 3667, "NAD83(NSRS2007) / Texas North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.18333333333333 +lat_2=34.65 +lat_0=3"); add_proj4text (p, 1, "4 +lon_0=-101.5 +x_0=200000 +y_0=1000000 +ellps=GRS80 +t"); add_proj4text (p, 2, "owgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Texas North\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, "tem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"475"); add_srs_wkt (p, 7, "9\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); add_srs_wkt (p, 8, "TER[\"standard_parallel_1\",36.18333333333333],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_2\",34.65],PARAMETER[\"latitude_of_"); add_srs_wkt (p, 10, "origin\",34],PARAMETER[\"central_meridian\",-101.5],PARA"); add_srs_wkt (p, 11, "METER[\"false_easting\",200000],PARAMETER[\"false_northi"); add_srs_wkt (p, 12, "ng\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 13, "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 14, "\",\"3667\"]]"); p = add_epsg_def (filter, first, last, 3668, "epsg", 3668, "NAD83(NSRS2007) / Texas North (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.18333333333333 +lat_2=34.65 +lat_0=3"); add_proj4text (p, 1, "4 +lon_0=-101.5 +x_0=200000.0001016002 +y_0=999999.99989"); add_proj4text (p, 2, "83998 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Texas North (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 8, "PARAMETER[\"standard_parallel_1\",36.18333333333333],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_2\",34.65],PARAMETER[\"latitu"); add_srs_wkt (p, 10, "de_of_origin\",34],PARAMETER[\"central_meridian\",-101.5"); add_srs_wkt (p, 11, "],PARAMETER[\"false_easting\",656166.667],PARAMETER[\"fa"); add_srs_wkt (p, 12, "lse_northing\",3280833.333],UNIT[\"US survey foot\",0.30"); add_srs_wkt (p, 13, "48006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\","); add_srs_wkt (p, 14, "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3668\"]]"); p = add_epsg_def (filter, first, last, 3669, "epsg", 3669, "NAD83(NSRS2007) / Texas North Central"); add_proj4text (p, 0, "+proj=lcc +lat_1=33.96666666666667 +lat_2=32.13333333333"); add_proj4text (p, 1, "333 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000 +y"); add_proj4text (p, 2, "_0=2000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 3, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Texas North Central\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 8, "],PARAMETER[\"standard_parallel_1\",33.96666666666667],P"); add_srs_wkt (p, 9, "ARAMETER[\"standard_parallel_2\",32.13333333333333],PARA"); add_srs_wkt (p, 10, "METER[\"latitude_of_origin\",31.66666666666667],PARAMETE"); add_srs_wkt (p, 11, "R[\"central_meridian\",-98.5],PARAMETER[\"false_easting\""); add_srs_wkt (p, 12, ",600000],PARAMETER[\"false_northing\",2000000],UNIT[\"me"); add_srs_wkt (p, 13, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A"); add_srs_wkt (p, 14, "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3669\"]]"); p = add_epsg_def (filter, first, last, 3670, "epsg", 3670, "NAD83(NSRS2007) / Texas North Central (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=33.96666666666667 +lat_2=32.13333333333"); add_proj4text (p, 1, "333 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000 +y"); add_proj4text (p, 2, "_0=2000000.0001016 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 3, "units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Texas North Central (ftUS)\","); add_srs_wkt (p, 1, "GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatia"); add_srs_wkt (p, 2, "l_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137,"); add_srs_wkt (p, 3, "298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,"); add_srs_wkt (p, 4, "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 5, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 6, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Coni"); add_srs_wkt (p, 8, "c_2SP\"],PARAMETER[\"standard_parallel_1\",33.9666666666"); add_srs_wkt (p, 9, "6667],PARAMETER[\"standard_parallel_2\",32.1333333333333"); add_srs_wkt (p, 10, "3],PARAMETER[\"latitude_of_origin\",31.66666666666667],P"); add_srs_wkt (p, 11, "ARAMETER[\"central_meridian\",-98.5],PARAMETER[\"false_e"); add_srs_wkt (p, 12, "asting\",1968500],PARAMETER[\"false_northing\",6561666.6"); add_srs_wkt (p, 13, "67],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY"); add_srs_wkt (p, 14, "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 15, "AUTHORITY[\"EPSG\",\"3670\"]]"); p = add_epsg_def (filter, first, last, 3671, "epsg", 3671, "NAD83(NSRS2007) / Texas South"); add_proj4text (p, 0, "+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666"); add_proj4text (p, 1, "667 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=300000 +y"); add_proj4text (p, 2, "_0=5000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 3, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Texas South\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, "tem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"475"); add_srs_wkt (p, 7, "9\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); add_srs_wkt (p, 8, "TER[\"standard_parallel_1\",27.83333333333333],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_2\",26.16666666666667],PARAMETER[\""); add_srs_wkt (p, 10, "latitude_of_origin\",25.66666666666667],PARAMETER[\"cent"); add_srs_wkt (p, 11, "ral_meridian\",-98.5],PARAMETER[\"false_easting\",300000"); add_srs_wkt (p, 12, "],PARAMETER[\"false_northing\",5000000],UNIT[\"metre\",1"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 14, "\",NORTH],AUTHORITY[\"EPSG\",\"3671\"]]"); p = add_epsg_def (filter, first, last, 3672, "epsg", 3672, "NAD83(NSRS2007) / Texas South (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666"); add_proj4text (p, 1, "667 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=300000.00"); add_proj4text (p, 2, "00000001 +y_0=5000000.0001016 +ellps=GRS80 +towgs84=0,0,"); add_proj4text (p, 3, "0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Texas South (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 8, "PARAMETER[\"standard_parallel_1\",27.83333333333333],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_2\",26.16666666666667],PARAME"); add_srs_wkt (p, 10, "TER[\"latitude_of_origin\",25.66666666666667],PARAMETER["); add_srs_wkt (p, 11, "\"central_meridian\",-98.5],PARAMETER[\"false_easting\","); add_srs_wkt (p, 12, "984250.0000000002],PARAMETER[\"false_northing\",16404166"); add_srs_wkt (p, 13, ".667],UNIT[\"US survey foot\",0.3048006096012192,AUTHORI"); add_srs_wkt (p, 14, "TY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 15, "],AUTHORITY[\"EPSG\",\"3672\"]]"); p = add_epsg_def (filter, first, last, 3673, "epsg", 3673, "NAD83(NSRS2007) / Texas South Central"); add_proj4text (p, 0, "+proj=lcc +lat_1=30.28333333333333 +lat_2=28.38333333333"); add_proj4text (p, 1, "333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0"); add_proj4text (p, 2, "=4000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +n"); add_proj4text (p, 3, "o_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Texas South Central\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 8, "],PARAMETER[\"standard_parallel_1\",30.28333333333333],P"); add_srs_wkt (p, 9, "ARAMETER[\"standard_parallel_2\",28.38333333333333],PARA"); add_srs_wkt (p, 10, "METER[\"latitude_of_origin\",27.83333333333333],PARAMETE"); add_srs_wkt (p, 11, "R[\"central_meridian\",-99],PARAMETER[\"false_easting\","); add_srs_wkt (p, 12, "600000],PARAMETER[\"false_northing\",4000000],UNIT[\"met"); add_srs_wkt (p, 13, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 14, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3673\"]]"); p = add_epsg_def (filter, first, last, 3674, "epsg", 3674, "NAD83(NSRS2007) / Texas South Central (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=30.28333333333333 +lat_2=28.38333333333"); add_proj4text (p, 1, "333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0"); add_proj4text (p, 2, "=3999999.9998984 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +un"); add_proj4text (p, 3, "its=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Texas South Central (ftUS)\","); add_srs_wkt (p, 1, "GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatia"); add_srs_wkt (p, 2, "l_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137,"); add_srs_wkt (p, 3, "298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,"); add_srs_wkt (p, 4, "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 5, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 6, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Coni"); add_srs_wkt (p, 8, "c_2SP\"],PARAMETER[\"standard_parallel_1\",30.2833333333"); add_srs_wkt (p, 9, "3333],PARAMETER[\"standard_parallel_2\",28.3833333333333"); add_srs_wkt (p, 10, "3],PARAMETER[\"latitude_of_origin\",27.83333333333333],P"); add_srs_wkt (p, 11, "ARAMETER[\"central_meridian\",-99],PARAMETER[\"false_eas"); add_srs_wkt (p, 12, "ting\",1968500],PARAMETER[\"false_northing\",13123333.33"); add_srs_wkt (p, 13, "3],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY["); add_srs_wkt (p, 14, "\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 15, "UTHORITY[\"EPSG\",\"3674\"]]"); p = add_epsg_def (filter, first, last, 3675, "epsg", 3675, "NAD83(NSRS2007) / Utah Central"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=3"); add_proj4text (p, 1, "8.33333333333334 +lon_0=-111.5 +x_0=500000 +y_0=2000000 "); add_proj4text (p, 2, "+ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Utah Central\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 7, "59\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"standard_parallel_1\",40.65],PARAMETER[\"standard"); add_srs_wkt (p, 9, "_parallel_2\",39.01666666666667],PARAMETER[\"latitude_of"); add_srs_wkt (p, 10, "_origin\",38.33333333333334],PARAMETER[\"central_meridia"); add_srs_wkt (p, 11, "n\",-111.5],PARAMETER[\"false_easting\",500000],PARAMETE"); add_srs_wkt (p, 12, "R[\"false_northing\",2000000],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 14, "AUTHORITY[\"EPSG\",\"3675\"]]"); p = add_epsg_def (filter, first, last, 3676, "epsg", 3676, "NAD83(NSRS2007) / Utah Central (ft)"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=3"); add_proj4text (p, 1, "8.33333333333334 +lon_0=-111.5 +x_0=500000.0001504 +y_0="); add_proj4text (p, 2, "1999999.999992 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 3, "s=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Utah Central (ft)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 8, "PARAMETER[\"standard_parallel_1\",40.65],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_2\",39.01666666666667],PARAMETER[\"latitu"); add_srs_wkt (p, 10, "de_of_origin\",38.33333333333334],PARAMETER[\"central_me"); add_srs_wkt (p, 11, "ridian\",-111.5],PARAMETER[\"false_easting\",1640419.948"); add_srs_wkt (p, 12, "],PARAMETER[\"false_northing\",6561679.79],UNIT[\"foot\""); add_srs_wkt (p, 13, ",0.3048,AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\"X\",EAST],A"); add_srs_wkt (p, 14, "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3676\"]]"); p = add_epsg_def (filter, first, last, 3677, "epsg", 3677, "NAD83(NSRS2007) / Utah Central (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=3"); add_proj4text (p, 1, "8.33333333333334 +lon_0=-111.5 +x_0=500000.00001016 +y_0"); add_proj4text (p, 2, "=2000000.00001016 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 3, "nits=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Utah Central (ftUS)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 8, "],PARAMETER[\"standard_parallel_1\",40.65],PARAMETER[\"s"); add_srs_wkt (p, 9, "tandard_parallel_2\",39.01666666666667],PARAMETER[\"lati"); add_srs_wkt (p, 10, "tude_of_origin\",38.33333333333334],PARAMETER[\"central_"); add_srs_wkt (p, 11, "meridian\",-111.5],PARAMETER[\"false_easting\",1640416.6"); add_srs_wkt (p, 12, "667],PARAMETER[\"false_northing\",6561666.666700001],UNI"); add_srs_wkt (p, 13, "T[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG"); add_srs_wkt (p, 14, "\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); add_srs_wkt (p, 15, "TY[\"EPSG\",\"3677\"]]"); p = add_epsg_def (filter, first, last, 3678, "epsg", 3678, "NAD83(NSRS2007) / Utah North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666"); add_proj4text (p, 1, "667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000 +"); add_proj4text (p, 2, "y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m"); add_proj4text (p, 3, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Utah North\",GEOGCS[\"NAD83(N"); add_srs_wkt (p, 1, "SRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Syst"); add_srs_wkt (p, 2, "em_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4759"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMET"); add_srs_wkt (p, 8, "ER[\"standard_parallel_1\",41.78333333333333],PARAMETER["); add_srs_wkt (p, 9, "\"standard_parallel_2\",40.71666666666667],PARAMETER[\"l"); add_srs_wkt (p, 10, "atitude_of_origin\",40.33333333333334],PARAMETER[\"centr"); add_srs_wkt (p, 11, "al_meridian\",-111.5],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 12, "],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\",1"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 14, "\",NORTH],AUTHORITY[\"EPSG\",\"3678\"]]"); p = add_epsg_def (filter, first, last, 3679, "epsg", 3679, "NAD83(NSRS2007) / Utah North (ft)"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666"); add_proj4text (p, 1, "667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000.0"); add_proj4text (p, 2, "001504 +y_0=999999.9999960001 +ellps=GRS80 +towgs84=0,0,"); add_proj4text (p, 3, "0,0,0,0,0 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Utah North (ft)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference"); add_srs_wkt (p, 2, "_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, "01,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_1\",41.78333333333333],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_2\",40.71666666666667],PARAMETER"); add_srs_wkt (p, 10, "[\"latitude_of_origin\",40.33333333333334],PARAMETER[\"c"); add_srs_wkt (p, 11, "entral_meridian\",-111.5],PARAMETER[\"false_easting\",16"); add_srs_wkt (p, 12, "40419.948],PARAMETER[\"false_northing\",3280839.895],UNI"); add_srs_wkt (p, 13, "T[\"foot\",0.3048,AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\"X"); add_srs_wkt (p, 14, "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3679\"]]"); p = add_epsg_def (filter, first, last, 3680, "epsg", 3680, "NAD83(NSRS2007) / Utah North (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666"); add_proj4text (p, 1, "667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000.0"); add_proj4text (p, 2, "0001016 +y_0=999999.9999898402 +ellps=GRS80 +towgs84=0,0"); add_proj4text (p, 3, ",0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Utah North (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 8, "PARAMETER[\"standard_parallel_1\",41.78333333333333],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_2\",40.71666666666667],PARAME"); add_srs_wkt (p, 10, "TER[\"latitude_of_origin\",40.33333333333334],PARAMETER["); add_srs_wkt (p, 11, "\"central_meridian\",-111.5],PARAMETER[\"false_easting\""); add_srs_wkt (p, 12, ",1640416.6667],PARAMETER[\"false_northing\",3280833.3333"); add_srs_wkt (p, 13, "00001],UNIT[\"US survey foot\",0.3048006096012192,AUTHOR"); add_srs_wkt (p, 14, "ITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); add_srs_wkt (p, 15, "H],AUTHORITY[\"EPSG\",\"3680\"]]"); p = add_epsg_def (filter, first, last, 3681, "epsg", 3681, "NAD83(NSRS2007) / Utah South"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=3"); add_proj4text (p, 1, "6.66666666666666 +lon_0=-111.5 +x_0=500000 +y_0=3000000 "); add_proj4text (p, 2, "+ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Utah South\",GEOGCS[\"NAD83(N"); add_srs_wkt (p, 1, "SRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Syst"); add_srs_wkt (p, 2, "em_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4759"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMET"); add_srs_wkt (p, 8, "ER[\"standard_parallel_1\",38.35],PARAMETER[\"standard_p"); add_srs_wkt (p, 9, "arallel_2\",37.21666666666667],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 10, "rigin\",36.66666666666666],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 11, ",-111.5],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 12, "false_northing\",3000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 14, "ORITY[\"EPSG\",\"3681\"]]"); p = add_epsg_def (filter, first, last, 3682, "epsg", 3682, "NAD83(NSRS2007) / Utah South (ft)"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=3"); add_proj4text (p, 1, "6.66666666666666 +lon_0=-111.5 +x_0=500000.0001504 +y_0="); add_proj4text (p, 2, "2999999.999988 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 3, "s=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Utah South (ft)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference"); add_srs_wkt (p, 2, "_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, "01,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_1\",38.35],PARAMETER[\"standa"); add_srs_wkt (p, 9, "rd_parallel_2\",37.21666666666667],PARAMETER[\"latitude_"); add_srs_wkt (p, 10, "of_origin\",36.66666666666666],PARAMETER[\"central_merid"); add_srs_wkt (p, 11, "ian\",-111.5],PARAMETER[\"false_easting\",1640419.948],P"); add_srs_wkt (p, 12, "ARAMETER[\"false_northing\",9842519.685],UNIT[\"foot\",0"); add_srs_wkt (p, 13, ".3048,AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\"X\",EAST],AXI"); add_srs_wkt (p, 14, "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3682\"]]"); p = add_epsg_def (filter, first, last, 3683, "epsg", 3683, "NAD83(NSRS2007) / Utah South (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=3"); add_proj4text (p, 1, "6.66666666666666 +lon_0=-111.5 +x_0=500000.00001016 +y_0"); add_proj4text (p, 2, "=3000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-f"); add_proj4text (p, 3, "t +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Utah South (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 8, "PARAMETER[\"standard_parallel_1\",38.35],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_2\",37.21666666666667],PARAMETER[\"latitu"); add_srs_wkt (p, 10, "de_of_origin\",36.66666666666666],PARAMETER[\"central_me"); add_srs_wkt (p, 11, "ridian\",-111.5],PARAMETER[\"false_easting\",1640416.666"); add_srs_wkt (p, 12, "7],PARAMETER[\"false_northing\",9842500.000000002],UNIT["); add_srs_wkt (p, 13, "\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 15, "[\"EPSG\",\"3683\"]]"); p = add_epsg_def (filter, first, last, 3684, "epsg", 3684, "NAD83(NSRS2007) / Vermont"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964286 +x_0"); add_proj4text (p, 1, "=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 2, "s=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Vermont\",GEOGCS[\"NAD83(NSRS"); add_srs_wkt (p, 1, "2007)\",DATUM[\"NAD83_National_Spatial_Reference_System_"); add_srs_wkt (p, 2, "2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHO"); add_srs_wkt (p, 3, "RITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORIT"); add_srs_wkt (p, 4, "Y[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4759\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",42.5],PARAMETER[\"central_meridian\",-72.5"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",0.999964286],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); add_srs_wkt (p, 12, "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3684\"]]"); p = add_epsg_def (filter, first, last, 3685, "epsg", 3685, "NAD83(NSRS2007) / Virginia North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.2 +lat_2=38.03333333333333 +lat_0=37"); add_proj4text (p, 1, ".66666666666666 +lon_0=-78.5 +x_0=3500000 +y_0=2000000 +"); add_proj4text (p, 2, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Virginia North\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_"); add_srs_wkt (p, 2, "System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_1\",39.2],PARAMETER[\"standar"); add_srs_wkt (p, 9, "d_parallel_2\",38.03333333333333],PARAMETER[\"latitude_o"); add_srs_wkt (p, 10, "f_origin\",37.66666666666666],PARAMETER[\"central_meridi"); add_srs_wkt (p, 11, "an\",-78.5],PARAMETER[\"false_easting\",3500000],PARAMET"); add_srs_wkt (p, 12, "ER[\"false_northing\",2000000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 13, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 14, ",AUTHORITY[\"EPSG\",\"3685\"]]"); p = add_epsg_def (filter, first, last, 3686, "epsg", 3686, "NAD83(NSRS2007) / Virginia North (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.2 +lat_2=38.03333333333333 +lat_0=37"); add_proj4text (p, 1, ".66666666666666 +lon_0=-78.5 +x_0=3500000.0001016 +y_0=2"); add_proj4text (p, 2, "000000.0001016 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 3, "s=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Virginia North (ftUS)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Ref"); add_srs_wkt (p, 2, "erence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2"); add_srs_wkt (p, 3, "57222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0"); add_srs_wkt (p, 4, ",0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 8, "\"],PARAMETER[\"standard_parallel_1\",39.2],PARAMETER[\""); add_srs_wkt (p, 9, "standard_parallel_2\",38.03333333333333],PARAMETER[\"lat"); add_srs_wkt (p, 10, "itude_of_origin\",37.66666666666666],PARAMETER[\"central"); add_srs_wkt (p, 11, "_meridian\",-78.5],PARAMETER[\"false_easting\",11482916."); add_srs_wkt (p, 12, "667],PARAMETER[\"false_northing\",6561666.667],UNIT[\"US"); add_srs_wkt (p, 13, " survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 14, "003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 15, "PSG\",\"3686\"]]"); p = add_epsg_def (filter, first, last, 3687, "epsg", 3687, "NAD83(NSRS2007) / Virginia South"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.96666666666667 +lat_2=36.76666666666"); add_proj4text (p, 1, "667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3500000 +"); add_proj4text (p, 2, "y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m"); add_proj4text (p, 3, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Virginia South\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_"); add_srs_wkt (p, 2, "System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_1\",37.96666666666667],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_2\",36.76666666666667],PARAMETER"); add_srs_wkt (p, 10, "[\"latitude_of_origin\",36.33333333333334],PARAMETER[\"c"); add_srs_wkt (p, 11, "entral_meridian\",-78.5],PARAMETER[\"false_easting\",350"); add_srs_wkt (p, 12, "0000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre"); add_srs_wkt (p, 13, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS"); add_srs_wkt (p, 14, "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3687\"]]"); p = add_epsg_def (filter, first, last, 3688, "epsg", 3688, "NAD83(NSRS2007) / Virginia South (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.96666666666667 +lat_2=36.76666666666"); add_proj4text (p, 1, "667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3500000.0"); add_proj4text (p, 2, "001016 +y_0=999999.9998983998 +ellps=GRS80 +towgs84=0,0,"); add_proj4text (p, 3, "0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Virginia South (ftUS)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Ref"); add_srs_wkt (p, 2, "erence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2"); add_srs_wkt (p, 3, "57222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0"); add_srs_wkt (p, 4, ",0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 8, "\"],PARAMETER[\"standard_parallel_1\",37.96666666666667]"); add_srs_wkt (p, 9, ",PARAMETER[\"standard_parallel_2\",36.76666666666667],PA"); add_srs_wkt (p, 10, "RAMETER[\"latitude_of_origin\",36.33333333333334],PARAME"); add_srs_wkt (p, 11, "TER[\"central_meridian\",-78.5],PARAMETER[\"false_eastin"); add_srs_wkt (p, 12, "g\",11482916.667],PARAMETER[\"false_northing\",3280833.3"); add_srs_wkt (p, 13, "33],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY"); add_srs_wkt (p, 14, "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 15, "AUTHORITY[\"EPSG\",\"3688\"]]"); p = add_epsg_def (filter, first, last, 3689, "epsg", 3689, "NAD83(NSRS2007) / Washington North"); add_proj4text (p, 0, "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.5 +lat_0=47"); add_proj4text (p, 1, " +lon_0=-120.8333333333333 +x_0=500000 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, "80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Washington North\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referenc"); add_srs_wkt (p, 2, "e_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],P"); add_srs_wkt (p, 8, "ARAMETER[\"standard_parallel_1\",48.73333333333333],PARA"); add_srs_wkt (p, 9, "METER[\"standard_parallel_2\",47.5],PARAMETER[\"latitude"); add_srs_wkt (p, 10, "_of_origin\",47],PARAMETER[\"central_meridian\",-120.833"); add_srs_wkt (p, 11, "3333333333],PARAMETER[\"false_easting\",500000],PARAMETE"); add_srs_wkt (p, 12, "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR"); add_srs_wkt (p, 14, "ITY[\"EPSG\",\"3689\"]]"); p = add_epsg_def (filter, first, last, 3690, "epsg", 3690, "NAD83(NSRS2007) / Washington North (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.5 +lat_0=47"); add_proj4text (p, 1, " +lon_0=-120.8333333333333 +x_0=500000.0001016001 +y_0=0"); add_proj4text (p, 2, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_de"); add_proj4text (p, 3, "fs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Washington North (ftUS)\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_R"); add_srs_wkt (p, 2, "eference_System_2007\",SPHEROID[\"GRS 1980\",6378137,298"); add_srs_wkt (p, 3, ".257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0"); add_srs_wkt (p, 4, ",0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 5, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 6, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 7, "EPSG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2"); add_srs_wkt (p, 8, "SP\"],PARAMETER[\"standard_parallel_1\",48.7333333333333"); add_srs_wkt (p, 9, "3],PARAMETER[\"standard_parallel_2\",47.5],PARAMETER[\"l"); add_srs_wkt (p, 10, "atitude_of_origin\",47],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 11, "120.8333333333333],PARAMETER[\"false_easting\",1640416.6"); add_srs_wkt (p, 12, "67],PARAMETER[\"false_northing\",0],UNIT[\"US survey foo"); add_srs_wkt (p, 13, "t\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXI"); add_srs_wkt (p, 14, "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"369"); add_srs_wkt (p, 15, "0\"]]"); p = add_epsg_def (filter, first, last, 3691, "epsg", 3691, "NAD83(NSRS2007) / Washington South"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.33333333333334 +lat_2=45.83333333333"); add_proj4text (p, 1, "334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000 +"); add_proj4text (p, 2, "y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 3, "efs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Washington South\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referenc"); add_srs_wkt (p, 2, "e_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],P"); add_srs_wkt (p, 8, "ARAMETER[\"standard_parallel_1\",47.33333333333334],PARA"); add_srs_wkt (p, 9, "METER[\"standard_parallel_2\",45.83333333333334],PARAMET"); add_srs_wkt (p, 10, "ER[\"latitude_of_origin\",45.33333333333334],PARAMETER[\""); add_srs_wkt (p, 11, "central_meridian\",-120.5],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 12, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 14, ",NORTH],AUTHORITY[\"EPSG\",\"3691\"]]"); p = add_epsg_def (filter, first, last, 3692, "epsg", 3692, "NAD83(NSRS2007) / Washington South (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.33333333333334 +lat_2=45.83333333333"); add_proj4text (p, 1, "334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000.0"); add_proj4text (p, 2, "001016001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +un"); add_proj4text (p, 3, "its=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Washington South (ftUS)\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_R"); add_srs_wkt (p, 2, "eference_System_2007\",SPHEROID[\"GRS 1980\",6378137,298"); add_srs_wkt (p, 3, ".257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0"); add_srs_wkt (p, 4, ",0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 5, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 6, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 7, "EPSG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2"); add_srs_wkt (p, 8, "SP\"],PARAMETER[\"standard_parallel_1\",47.3333333333333"); add_srs_wkt (p, 9, "4],PARAMETER[\"standard_parallel_2\",45.83333333333334],"); add_srs_wkt (p, 10, "PARAMETER[\"latitude_of_origin\",45.33333333333334],PARA"); add_srs_wkt (p, 11, "METER[\"central_meridian\",-120.5],PARAMETER[\"false_eas"); add_srs_wkt (p, 12, "ting\",1640416.667],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 13, "[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 15, "[\"EPSG\",\"3692\"]]"); p = add_epsg_def (filter, first, last, 3693, "epsg", 3693, "NAD83(NSRS2007) / West Virginia North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79."); add_proj4text (p, 1, "5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / West Virginia North\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 8, "],PARAMETER[\"standard_parallel_1\",40.25],PARAMETER[\"s"); add_srs_wkt (p, 9, "tandard_parallel_2\",39],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 10, ",38.5],PARAMETER[\"central_meridian\",-79.5],PARAMETER[\""); add_srs_wkt (p, 11, "false_easting\",600000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 13, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3693\"]]"); p = add_epsg_def (filter, first, last, 3694, "epsg", 3694, "NAD83(NSRS2007) / West Virginia South"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333"); add_proj4text (p, 1, "333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +ellps=GRS80"); add_proj4text (p, 2, " +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / West Virginia South\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 8, "],PARAMETER[\"standard_parallel_1\",38.88333333333333],P"); add_srs_wkt (p, 9, "ARAMETER[\"standard_parallel_2\",37.48333333333333],PARA"); add_srs_wkt (p, 10, "METER[\"latitude_of_origin\",37],PARAMETER[\"central_mer"); add_srs_wkt (p, 11, "idian\",-81],PARAMETER[\"false_easting\",600000],PARAMET"); add_srs_wkt (p, 12, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 14, "RITY[\"EPSG\",\"3694\"]]"); p = add_epsg_def (filter, first, last, 3695, "epsg", 3695, "NAD83(NSRS2007) / Wisconsin Central"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.5 +lat_2=44.25 +lat_0=43.83333333333"); add_proj4text (p, 1, "334 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84="); add_proj4text (p, 2, "0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Wisconsin Central\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 8, "PARAMETER[\"standard_parallel_1\",45.5],PARAMETER[\"stan"); add_srs_wkt (p, 9, "dard_parallel_2\",44.25],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 10, ",43.83333333333334],PARAMETER[\"central_meridian\",-90],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",600000],PARAMETER[\"false_no"); add_srs_wkt (p, 12, "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 13, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"3695\"]]"); p = add_epsg_def (filter, first, last, 3696, "epsg", 3696, "NAD83(NSRS2007) / Wisconsin Central (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.5 +lat_2=44.25 +lat_0=43.83333333333"); add_proj4text (p, 1, "334 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84="); add_proj4text (p, 2, "0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Wisconsin Central (ftUS)\",GE"); add_srs_wkt (p, 1, "OGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_"); add_srs_wkt (p, 2, "Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137,29"); add_srs_wkt (p, 3, "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,"); add_srs_wkt (p, 4, "0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 5, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 6, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 7, "EPSG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2"); add_srs_wkt (p, 8, "SP\"],PARAMETER[\"standard_parallel_1\",45.5],PARAMETER["); add_srs_wkt (p, 9, "\"standard_parallel_2\",44.25],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 10, "rigin\",43.83333333333334],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 11, ",-90],PARAMETER[\"false_easting\",1968500],PARAMETER[\"f"); add_srs_wkt (p, 12, "alse_northing\",0],UNIT[\"US survey foot\",0.30480060960"); add_srs_wkt (p, 13, "12192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXI"); add_srs_wkt (p, 14, "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3696\"]]"); p = add_epsg_def (filter, first, last, 3697, "epsg", 3697, "NAD83(NSRS2007) / Wisconsin North"); add_proj4text (p, 0, "+proj=lcc +lat_1=46.76666666666667 +lat_2=45.56666666666"); add_proj4text (p, 1, "667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Wisconsin North\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference"); add_srs_wkt (p, 2, "_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, "01,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_1\",46.76666666666667],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_2\",45.56666666666667],PARAMETER"); add_srs_wkt (p, 10, "[\"latitude_of_origin\",45.16666666666666],PARAMETER[\"c"); add_srs_wkt (p, 11, "entral_meridian\",-90],PARAMETER[\"false_easting\",60000"); add_srs_wkt (p, 12, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 13, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 14, "RTH],AUTHORITY[\"EPSG\",\"3697\"]]"); p = add_epsg_def (filter, first, last, 3698, "epsg", 3698, "NAD83(NSRS2007) / Wisconsin North (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=46.76666666666667 +lat_2=45.56666666666"); add_proj4text (p, 1, "667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_"); add_proj4text (p, 3, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Wisconsin North (ftUS)\",GEOG"); add_srs_wkt (p, 1, "CS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Re"); add_srs_wkt (p, 2, "ference_System_2007\",SPHEROID[\"GRS 1980\",6378137,298."); add_srs_wkt (p, 3, "257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,"); add_srs_wkt (p, 4, "0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 8, "\"],PARAMETER[\"standard_parallel_1\",46.76666666666667]"); add_srs_wkt (p, 9, ",PARAMETER[\"standard_parallel_2\",45.56666666666667],PA"); add_srs_wkt (p, 10, "RAMETER[\"latitude_of_origin\",45.16666666666666],PARAME"); add_srs_wkt (p, 11, "TER[\"central_meridian\",-90],PARAMETER[\"false_easting\""); add_srs_wkt (p, 12, ",1968500],PARAMETER[\"false_northing\",0],UNIT[\"US surv"); add_srs_wkt (p, 13, "ey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\""); add_srs_wkt (p, 14, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 15, ",\"3698\"]]"); p = add_epsg_def (filter, first, last, 3699, "epsg", 3699, "NAD83(NSRS2007) / Wisconsin South"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.06666666666667 +lat_2=42.73333333333"); add_proj4text (p, 1, "333 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80"); add_proj4text (p, 2, " +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Wisconsin South\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference"); add_srs_wkt (p, 2, "_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, "01,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_1\",44.06666666666667],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_2\",42.73333333333333],PARAMETER"); add_srs_wkt (p, 10, "[\"latitude_of_origin\",42],PARAMETER[\"central_meridian"); add_srs_wkt (p, 11, "\",-90],PARAMETER[\"false_easting\",600000],PARAMETER[\""); add_srs_wkt (p, 12, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); add_srs_wkt (p, 14, "\"EPSG\",\"3699\"]]"); p = add_epsg_def (filter, first, last, 3700, "epsg", 3700, "NAD83(NSRS2007) / Wisconsin South (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.06666666666667 +lat_2=42.73333333333"); add_proj4text (p, 1, "333 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80"); add_proj4text (p, 2, " +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Wisconsin South (ftUS)\",GEOG"); add_srs_wkt (p, 1, "CS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Re"); add_srs_wkt (p, 2, "ference_System_2007\",SPHEROID[\"GRS 1980\",6378137,298."); add_srs_wkt (p, 3, "257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,"); add_srs_wkt (p, 4, "0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 8, "\"],PARAMETER[\"standard_parallel_1\",44.06666666666667]"); add_srs_wkt (p, 9, ",PARAMETER[\"standard_parallel_2\",42.73333333333333],PA"); add_srs_wkt (p, 10, "RAMETER[\"latitude_of_origin\",42],PARAMETER[\"central_m"); add_srs_wkt (p, 11, "eridian\",-90],PARAMETER[\"false_easting\",1968500],PARA"); add_srs_wkt (p, 12, "METER[\"false_northing\",0],UNIT[\"US survey foot\",0.30"); add_srs_wkt (p, 13, "48006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\","); add_srs_wkt (p, 14, "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3700\"]]"); p = add_epsg_def (filter, first, last, 3701, "epsg", 3701, "NAD83(NSRS2007) / Wisconsin Transverse Mercator"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-90 +k=0.9996 +x_0=520000 +y"); add_proj4text (p, 1, "_0=-4480000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Wisconsin Transverse Mercator"); add_srs_wkt (p, 1, "\",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spa"); add_srs_wkt (p, 2, "tial_Reference_System_2007\",SPHEROID[\"GRS 1980\",63781"); add_srs_wkt (p, 3, "37,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0"); add_srs_wkt (p, 4, ",0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Gre"); add_srs_wkt (p, 5, "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 6, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4759\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",-90],PARAMETER[\"scale_factor\",0.9996],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_easting\",520000],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, "thing\",-4480000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"3701\"]]"); p = add_epsg_def (filter, first, last, 3702, "epsg", 3702, "NAD83(NSRS2007) / Wyoming East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.9"); add_proj4text (p, 1, "999375 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Wyoming East\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 7, "59\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",40.5],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",-105.1666666666667],PARAMETER[\"scale_factor\",0.999937"); add_srs_wkt (p, 10, "5],PARAMETER[\"false_easting\",200000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, "1\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"3702\"]]"); p = add_epsg_def (filter, first, last, 3703, "epsg", 3703, "NAD83(NSRS2007) / Wyoming East Central"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.9"); add_proj4text (p, 1, "999375 +x_0=400000 +y_0=100000 +ellps=GRS80 +towgs84=0,0"); add_proj4text (p, 2, ",0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Wyoming East Central\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refe"); add_srs_wkt (p, 2, "rence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25"); add_srs_wkt (p, 3, "7222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,"); add_srs_wkt (p, 4, "0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, "G\",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"latitude_of_origin\",40.5],PARAMETER[\"central_me"); add_srs_wkt (p, 9, "ridian\",-107.3333333333333],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 10, "0.9999375],PARAMETER[\"false_easting\",400000],PARAMETER"); add_srs_wkt (p, 11, "[\"false_northing\",100000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"3703\"]]"); p = add_epsg_def (filter, first, last, 3704, "epsg", 3704, "NAD83(NSRS2007) / Wyoming West Central"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.9999375 +x_0"); add_proj4text (p, 1, "=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 2, "s=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Wyoming West Central\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refe"); add_srs_wkt (p, 2, "rence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25"); add_srs_wkt (p, 3, "7222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,"); add_srs_wkt (p, 4, "0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, "G\",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"latitude_of_origin\",40.5],PARAMETER[\"central_me"); add_srs_wkt (p, 9, "ridian\",-108.75],PARAMETER[\"scale_factor\",0.9999375],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",600000],PARAMETER[\"false_no"); add_srs_wkt (p, 11, "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"3704\"]]"); p = add_epsg_def (filter, first, last, 3705, "epsg", 3705, "NAD83(NSRS2007) / Wyoming West"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.9"); add_proj4text (p, 1, "999375 +x_0=800000 +y_0=100000 +ellps=GRS80 +towgs84=0,0"); add_proj4text (p, 2, ",0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Wyoming West\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 7, "59\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",40.5],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",-110.0833333333333],PARAMETER[\"scale_factor\",0.999937"); add_srs_wkt (p, 10, "5],PARAMETER[\"false_easting\",800000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",100000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"3705\"]]"); p = add_epsg_def (filter, first, last, 3706, "epsg", 3706, "NAD83(NSRS2007) / UTM zone 59N"); add_proj4text (p, 0, "+proj=utm +zone=59 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / UTM zone 59N\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 7, "59\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",17"); add_srs_wkt (p, 9, "1],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"370"); add_srs_wkt (p, 13, "6\"]]"); p = add_epsg_def (filter, first, last, 3707, "epsg", 3707, "NAD83(NSRS2007) / UTM zone 60N"); add_proj4text (p, 0, "+proj=utm +zone=60 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / UTM zone 60N\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 7, "59\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",17"); add_srs_wkt (p, 9, "7],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"370"); add_srs_wkt (p, 13, "7\"]]"); p = add_epsg_def (filter, first, last, 3708, "epsg", 3708, "NAD83(NSRS2007) / UTM zone 1N"); add_proj4text (p, 0, "+proj=utm +zone=1 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 1, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / UTM zone 1N\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, "tem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"475"); add_srs_wkt (p, 7, "9\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 8, "titude_of_origin\",0],PARAMETER[\"central_meridian\",-17"); add_srs_wkt (p, 9, "7],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"370"); add_srs_wkt (p, 13, "8\"]]"); p = add_epsg_def (filter, first, last, 3709, "epsg", 3709, "NAD83(NSRS2007) / UTM zone 2N"); add_proj4text (p, 0, "+proj=utm +zone=2 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 1, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / UTM zone 2N\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, "tem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"475"); add_srs_wkt (p, 7, "9\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 8, "titude_of_origin\",0],PARAMETER[\"central_meridian\",-17"); add_srs_wkt (p, 9, "1],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"370"); add_srs_wkt (p, 13, "9\"]]"); p = add_epsg_def (filter, first, last, 3710, "epsg", 3710, "NAD83(NSRS2007) / UTM zone 3N"); add_proj4text (p, 0, "+proj=utm +zone=3 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 1, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / UTM zone 3N\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, "tem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"475"); add_srs_wkt (p, 7, "9\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 8, "titude_of_origin\",0],PARAMETER[\"central_meridian\",-16"); add_srs_wkt (p, 9, "5],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"371"); add_srs_wkt (p, 13, "0\"]]"); p = add_epsg_def (filter, first, last, 3711, "epsg", 3711, "NAD83(NSRS2007) / UTM zone 4N"); add_proj4text (p, 0, "+proj=utm +zone=4 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 1, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / UTM zone 4N\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, "tem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"475"); add_srs_wkt (p, 7, "9\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 8, "titude_of_origin\",0],PARAMETER[\"central_meridian\",-15"); add_srs_wkt (p, 9, "9],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"371"); add_srs_wkt (p, 13, "1\"]]"); p = add_epsg_def (filter, first, last, 3712, "epsg", 3712, "NAD83(NSRS2007) / UTM zone 5N"); add_proj4text (p, 0, "+proj=utm +zone=5 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 1, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / UTM zone 5N\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, "tem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"475"); add_srs_wkt (p, 7, "9\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 8, "titude_of_origin\",0],PARAMETER[\"central_meridian\",-15"); add_srs_wkt (p, 9, "3],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"371"); add_srs_wkt (p, 13, "2\"]]"); p = add_epsg_def (filter, first, last, 3713, "epsg", 3713, "NAD83(NSRS2007) / UTM zone 6N"); add_proj4text (p, 0, "+proj=utm +zone=6 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 1, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / UTM zone 6N\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, "tem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"475"); add_srs_wkt (p, 7, "9\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 8, "titude_of_origin\",0],PARAMETER[\"central_meridian\",-14"); add_srs_wkt (p, 9, "7],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"371"); add_srs_wkt (p, 13, "3\"]]"); p = add_epsg_def (filter, first, last, 3714, "epsg", 3714, "NAD83(NSRS2007) / UTM zone 7N"); add_proj4text (p, 0, "+proj=utm +zone=7 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 1, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / UTM zone 7N\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, "tem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"475"); add_srs_wkt (p, 7, "9\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 8, "titude_of_origin\",0],PARAMETER[\"central_meridian\",-14"); add_srs_wkt (p, 9, "1],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"371"); add_srs_wkt (p, 13, "4\"]]"); p = add_epsg_def (filter, first, last, 3715, "epsg", 3715, "NAD83(NSRS2007) / UTM zone 8N"); add_proj4text (p, 0, "+proj=utm +zone=8 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 1, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / UTM zone 8N\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, "tem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"475"); add_srs_wkt (p, 7, "9\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 8, "titude_of_origin\",0],PARAMETER[\"central_meridian\",-13"); add_srs_wkt (p, 9, "5],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"371"); add_srs_wkt (p, 13, "5\"]]"); p = add_epsg_def (filter, first, last, 3716, "epsg", 3716, "NAD83(NSRS2007) / UTM zone 9N"); add_proj4text (p, 0, "+proj=utm +zone=9 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 1, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / UTM zone 9N\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, "tem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"475"); add_srs_wkt (p, 7, "9\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 8, "titude_of_origin\",0],PARAMETER[\"central_meridian\",-12"); add_srs_wkt (p, 9, "9],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"371"); add_srs_wkt (p, 13, "6\"]]"); p = add_epsg_def (filter, first, last, 3717, "epsg", 3717, "NAD83(NSRS2007) / UTM zone 10N"); add_proj4text (p, 0, "+proj=utm +zone=10 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / UTM zone 10N\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 7, "59\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",-1"); add_srs_wkt (p, 9, "23],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false"); add_srs_wkt (p, 10, "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "717\"]]"); p = add_epsg_def (filter, first, last, 3718, "epsg", 3718, "NAD83(NSRS2007) / UTM zone 11N"); add_proj4text (p, 0, "+proj=utm +zone=11 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / UTM zone 11N\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 7, "59\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",-1"); add_srs_wkt (p, 9, "17],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false"); add_srs_wkt (p, 10, "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "718\"]]"); p = add_epsg_def (filter, first, last, 3719, "epsg", 3719, "NAD83(NSRS2007) / UTM zone 12N"); add_proj4text (p, 0, "+proj=utm +zone=12 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / UTM zone 12N\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 7, "59\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",-1"); add_srs_wkt (p, 9, "11],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false"); add_srs_wkt (p, 10, "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "719\"]]"); p = add_epsg_def (filter, first, last, 3720, "epsg", 3720, "NAD83(NSRS2007) / UTM zone 13N"); add_proj4text (p, 0, "+proj=utm +zone=13 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / UTM zone 13N\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 7, "59\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",-1"); add_srs_wkt (p, 9, "05],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false"); add_srs_wkt (p, 10, "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "720\"]]"); p = add_epsg_def (filter, first, last, 3721, "epsg", 3721, "NAD83(NSRS2007) / UTM zone 14N"); add_proj4text (p, 0, "+proj=utm +zone=14 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / UTM zone 14N\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 7, "59\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",-9"); add_srs_wkt (p, 9, "9],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"372"); add_srs_wkt (p, 13, "1\"]]"); p = add_epsg_def (filter, first, last, 3722, "epsg", 3722, "NAD83(NSRS2007) / UTM zone 15N"); add_proj4text (p, 0, "+proj=utm +zone=15 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / UTM zone 15N\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 7, "59\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",-9"); add_srs_wkt (p, 9, "3],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"372"); add_srs_wkt (p, 13, "2\"]]"); p = add_epsg_def (filter, first, last, 3723, "epsg", 3723, "NAD83(NSRS2007) / UTM zone 16N"); add_proj4text (p, 0, "+proj=utm +zone=16 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / UTM zone 16N\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 7, "59\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",-8"); add_srs_wkt (p, 9, "7],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"372"); add_srs_wkt (p, 13, "3\"]]"); p = add_epsg_def (filter, first, last, 3724, "epsg", 3724, "NAD83(NSRS2007) / UTM zone 17N"); add_proj4text (p, 0, "+proj=utm +zone=17 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / UTM zone 17N\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 7, "59\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",-8"); add_srs_wkt (p, 9, "1],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"372"); add_srs_wkt (p, 13, "4\"]]"); p = add_epsg_def (filter, first, last, 3725, "epsg", 3725, "NAD83(NSRS2007) / UTM zone 18N"); add_proj4text (p, 0, "+proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / UTM zone 18N\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 7, "59\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",-7"); add_srs_wkt (p, 9, "5],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"372"); add_srs_wkt (p, 13, "5\"]]"); p = add_epsg_def (filter, first, last, 3726, "epsg", 3726, "NAD83(NSRS2007) / UTM zone 19N"); add_proj4text (p, 0, "+proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / UTM zone 19N\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 7, "59\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",-6"); add_srs_wkt (p, 9, "9],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"372"); add_srs_wkt (p, 13, "6\"]]"); p = add_epsg_def (filter, first, last, 3727, "epsg", 3727, "Reunion 1947 / TM Reunion"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-21.11666666666667 +lon_0=55.53333333"); add_proj4text (p, 1, "333333 +k=1 +x_0=160000 +y_0=50000 +ellps=intl +towgs84="); add_proj4text (p, 2, "94,-948,-1262,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Reunion 1947 / TM Reunion\",GEOGCS[\"Reunion 19"); add_srs_wkt (p, 1, "47\",DATUM[\"Reunion_1947\",SPHEROID[\"International 192"); add_srs_wkt (p, 2, "4\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[94"); add_srs_wkt (p, 3, ",-948,-1262,0,0,0,0],AUTHORITY[\"EPSG\",\"6626\"]],PRIME"); add_srs_wkt (p, 4, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"4626\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 7, "ercator\"],PARAMETER[\"latitude_of_origin\",-21.11666666"); add_srs_wkt (p, 8, "666667],PARAMETER[\"central_meridian\",55.53333333333333"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",160000],PARAMETER[\"false_northing\",50000],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],"); add_srs_wkt (p, 12, "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3727\"]]"); p = add_epsg_def (filter, first, last, 3728, "epsg", 3728, "NAD83(NSRS2007) / Ohio North (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.7 +lat_2=40.43333333333333 +lat_0=39"); add_proj4text (p, 1, ".66666666666666 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=G"); add_proj4text (p, 2, "RS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Ohio North (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 8, "PARAMETER[\"standard_parallel_1\",41.7],PARAMETER[\"stan"); add_srs_wkt (p, 9, "dard_parallel_2\",40.43333333333333],PARAMETER[\"latitud"); add_srs_wkt (p, 10, "e_of_origin\",39.66666666666666],PARAMETER[\"central_mer"); add_srs_wkt (p, 11, "idian\",-82.5],PARAMETER[\"false_easting\",1968500],PARA"); add_srs_wkt (p, 12, "METER[\"false_northing\",0],UNIT[\"US survey foot\",0.30"); add_srs_wkt (p, 13, "48006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\","); add_srs_wkt (p, 14, "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3728\"]]"); p = add_epsg_def (filter, first, last, 3729, "epsg", 3729, "NAD83(NSRS2007) / Ohio South (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.03333333333333 +lat_2=38.73333333333"); add_proj4text (p, 1, "333 +lat_0=38 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, "80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Ohio South (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 8, "PARAMETER[\"standard_parallel_1\",40.03333333333333],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_2\",38.73333333333333],PARAME"); add_srs_wkt (p, 10, "TER[\"latitude_of_origin\",38],PARAMETER[\"central_merid"); add_srs_wkt (p, 11, "ian\",-82.5],PARAMETER[\"false_easting\",1968500],PARAME"); add_srs_wkt (p, 12, "TER[\"false_northing\",0],UNIT[\"US survey foot\",0.3048"); add_srs_wkt (p, 13, "006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EA"); add_srs_wkt (p, 14, "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3729\"]]"); p = add_epsg_def (filter, first, last, 3730, "epsg", 3730, "NAD83(NSRS2007) / Wyoming East (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.9"); add_proj4text (p, 1, "999375 +x_0=200000.00001016 +y_0=0 +ellps=GRS80 +towgs84"); add_proj4text (p, 2, "=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Wyoming East (ftUS)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); add_srs_wkt (p, 8, "TER[\"latitude_of_origin\",40.5],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-105.1666666666667],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".9999375],PARAMETER[\"false_easting\",656166.6667],PARAM"); add_srs_wkt (p, 11, "ETER[\"false_northing\",0],UNIT[\"US survey foot\",0.304"); add_srs_wkt (p, 12, "8006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",E"); add_srs_wkt (p, 13, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3730\"]]"); p = add_epsg_def (filter, first, last, 3731, "epsg", 3731, "NAD83(NSRS2007) / Wyoming East Central (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.9"); add_proj4text (p, 1, "999375 +x_0=399999.99998984 +y_0=99999.99998983997 +ellp"); add_proj4text (p, 2, "s=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Wyoming East Central (ftUS)\""); add_srs_wkt (p, 1, ",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spati"); add_srs_wkt (p, 2, "al_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 3, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 4, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Green"); add_srs_wkt (p, 5, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 6, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 7, "Y[\"EPSG\",\"4759\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 8, "],PARAMETER[\"latitude_of_origin\",40.5],PARAMETER[\"cen"); add_srs_wkt (p, 9, "tral_meridian\",-107.3333333333333],PARAMETER[\"scale_fa"); add_srs_wkt (p, 10, "ctor\",0.9999375],PARAMETER[\"false_easting\",1312333.33"); add_srs_wkt (p, 11, "33],PARAMETER[\"false_northing\",328083.3333],UNIT[\"US "); add_srs_wkt (p, 12, "survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "03\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP"); add_srs_wkt (p, 14, "SG\",\"3731\"]]"); p = add_epsg_def (filter, first, last, 3732, "epsg", 3732, "NAD83(NSRS2007) / Wyoming West Central (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.9999375 +x_0"); add_proj4text (p, 1, "=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 2, "s=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Wyoming West Central (ftUS)\""); add_srs_wkt (p, 1, ",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spati"); add_srs_wkt (p, 2, "al_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 3, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 4, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Green"); add_srs_wkt (p, 5, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 6, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 7, "Y[\"EPSG\",\"4759\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 8, "],PARAMETER[\"latitude_of_origin\",40.5],PARAMETER[\"cen"); add_srs_wkt (p, 9, "tral_meridian\",-108.75],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 10, "99375],PARAMETER[\"false_easting\",1968500],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"US survey foot\",0.3048006096"); add_srs_wkt (p, 12, "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 13, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3732\"]]"); p = add_epsg_def (filter, first, last, 3733, "epsg", 3733, "NAD83(NSRS2007) / Wyoming West (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.9"); add_proj4text (p, 1, "999375 +x_0=800000.0000101599 +y_0=99999.99998983997 +el"); add_proj4text (p, 2, "lps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Wyoming West (ftUS)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); add_srs_wkt (p, 8, "TER[\"latitude_of_origin\",40.5],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-110.0833333333333],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".9999375],PARAMETER[\"false_easting\",2624666.6667],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",328083.3333],UNIT[\"US survey f"); add_srs_wkt (p, 12, "oot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],A"); add_srs_wkt (p, 13, "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 14, "733\"]]"); p = add_epsg_def (filter, first, last, 3734, "epsg", 3734, "NAD83 / Ohio North (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.7 +lat_2=40.43333333333333 +lat_0=39"); add_proj4text (p, 1, ".66666666666666 +lon_0=-82.5 +x_0=600000 +y_0=0 +datum=N"); add_proj4text (p, 2, "AD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Ohio North (ftUS)\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor"); add_srs_wkt (p, 7, "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",41.7]"); add_srs_wkt (p, 8, ",PARAMETER[\"standard_parallel_2\",40.43333333333333],PA"); add_srs_wkt (p, 9, "RAMETER[\"latitude_of_origin\",39.66666666666666],PARAME"); add_srs_wkt (p, 10, "TER[\"central_meridian\",-82.5],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, "g\",1968500],PARAMETER[\"false_northing\",0],UNIT[\"US s"); add_srs_wkt (p, 12, "urvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 13, "3\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 14, "G\",\"3734\"]]"); p = add_epsg_def (filter, first, last, 3735, "epsg", 3735, "NAD83 / Ohio South (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.03333333333333 +lat_2=38.73333333333"); add_proj4text (p, 1, "333 +lat_0=38 +lon_0=-82.5 +x_0=600000 +y_0=0 +datum=NAD"); add_proj4text (p, 2, "83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Ohio South (ftUS)\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor"); add_srs_wkt (p, 7, "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",40.03"); add_srs_wkt (p, 8, "333333333333],PARAMETER[\"standard_parallel_2\",38.73333"); add_srs_wkt (p, 9, "333333333],PARAMETER[\"latitude_of_origin\",38],PARAMETE"); add_srs_wkt (p, 10, "R[\"central_meridian\",-82.5],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",1968500],PARAMETER[\"false_northing\",0],UNIT[\"US surv"); add_srs_wkt (p, 12, "ey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\""); add_srs_wkt (p, 13, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"3735\"]]"); p = add_epsg_def (filter, first, last, 3736, "epsg", 3736, "NAD83 / Wyoming East (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.9"); add_proj4text (p, 1, "999375 +x_0=200000.00001016 +y_0=0 +datum=NAD83 +units=u"); add_proj4text (p, 2, "s-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Wyoming East (ftUS)\",GEOGCS[\"NAD83\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, "rcator\"],PARAMETER[\"latitude_of_origin\",40.5],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-105.1666666666667],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9999375],PARAMETER[\"false_easting\",65"); add_srs_wkt (p, 10, "6166.6667],PARAMETER[\"false_northing\",0],UNIT[\"US sur"); add_srs_wkt (p, 11, "vey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\""); add_srs_wkt (p, 12, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"3736\"]]"); p = add_epsg_def (filter, first, last, 3737, "epsg", 3737, "NAD83 / Wyoming East Central (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.9"); add_proj4text (p, 1, "999375 +x_0=399999.99998984 +y_0=99999.99998983997 +datu"); add_proj4text (p, 2, "m=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Wyoming East Central (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"G"); add_srs_wkt (p, 2, "RS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"701"); add_srs_wkt (p, 3, "9\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",40.5"); add_srs_wkt (p, 8, "],PARAMETER[\"central_meridian\",-107.3333333333333],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",0.9999375],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",1312333.3333],PARAMETER[\"false_northing\",328083"); add_srs_wkt (p, 11, ".3333],UNIT[\"US survey foot\",0.3048006096012192,AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"3737\"]]"); p = add_epsg_def (filter, first, last, 3738, "epsg", 3738, "NAD83 / Wyoming West Central (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.9999375 +x_0"); add_proj4text (p, 1, "=600000 +y_0=0 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Wyoming West Central (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"G"); add_srs_wkt (p, 2, "RS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"701"); add_srs_wkt (p, 3, "9\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",40.5"); add_srs_wkt (p, 8, "],PARAMETER[\"central_meridian\",-108.75],PARAMETER[\"sc"); add_srs_wkt (p, 9, "ale_factor\",0.9999375],PARAMETER[\"false_easting\",1968"); add_srs_wkt (p, 10, "500],PARAMETER[\"false_northing\",0],UNIT[\"US survey fo"); add_srs_wkt (p, 11, "ot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AX"); add_srs_wkt (p, 12, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"37"); add_srs_wkt (p, 13, "38\"]]"); p = add_epsg_def (filter, first, last, 3739, "epsg", 3739, "NAD83 / Wyoming West (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.9"); add_proj4text (p, 1, "999375 +x_0=800000.0000101599 +y_0=99999.99998983997 +da"); add_proj4text (p, 2, "tum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Wyoming West (ftUS)\",GEOGCS[\"NAD83\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, "rcator\"],PARAMETER[\"latitude_of_origin\",40.5],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-110.0833333333333],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9999375],PARAMETER[\"false_easting\",26"); add_srs_wkt (p, 10, "24666.6667],PARAMETER[\"false_northing\",328083.3333],UN"); add_srs_wkt (p, 11, "IT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"3739\"]]"); p = add_epsg_def (filter, first, last, 3740, "epsg", 3740, "NAD83(HARN) / UTM zone 10N"); add_proj4text (p, 0, "+proj=utm +zone=10 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / UTM zone 10N\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",-123],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"3740\"]]"); p = add_epsg_def (filter, first, last, 3741, "epsg", 3741, "NAD83(HARN) / UTM zone 11N"); add_proj4text (p, 0, "+proj=utm +zone=11 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / UTM zone 11N\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",-117],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"3741\"]]"); p = add_epsg_def (filter, first, last, 3742, "epsg", 3742, "NAD83(HARN) / UTM zone 12N"); add_proj4text (p, 0, "+proj=utm +zone=12 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / UTM zone 12N\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",-111],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"3742\"]]"); p = add_epsg_def (filter, first, last, 3743, "epsg", 3743, "NAD83(HARN) / UTM zone 13N"); add_proj4text (p, 0, "+proj=utm +zone=13 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / UTM zone 13N\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",-105],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"3743\"]]"); p = add_epsg_def (filter, first, last, 3744, "epsg", 3744, "NAD83(HARN) / UTM zone 14N"); add_proj4text (p, 0, "+proj=utm +zone=14 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / UTM zone 14N\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",-99],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"3744\"]]"); p = add_epsg_def (filter, first, last, 3745, "epsg", 3745, "NAD83(HARN) / UTM zone 15N"); add_proj4text (p, 0, "+proj=utm +zone=15 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / UTM zone 15N\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",-93],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"3745\"]]"); p = add_epsg_def (filter, first, last, 3746, "epsg", 3746, "NAD83(HARN) / UTM zone 16N"); add_proj4text (p, 0, "+proj=utm +zone=16 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / UTM zone 16N\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",-87],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"3746\"]]"); p = add_epsg_def (filter, first, last, 3747, "epsg", 3747, "NAD83(HARN) / UTM zone 17N"); add_proj4text (p, 0, "+proj=utm +zone=17 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / UTM zone 17N\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",-81],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"3747\"]]"); p = add_epsg_def (filter, first, last, 3748, "epsg", 3748, "NAD83(HARN) / UTM zone 18N"); add_proj4text (p, 0, "+proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / UTM zone 18N\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",-75],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"3748\"]]"); p = add_epsg_def (filter, first, last, 3749, "epsg", 3749, "NAD83(HARN) / UTM zone 19N"); add_proj4text (p, 0, "+proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / UTM zone 19N\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",-69],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"3749\"]]"); } #endif /* full EPSG initialization enabled/disabled */ libspatialite-4.1.1/src/srsinit/epsg_inlined_05.c0000664000175000017500000046741412163502133016674 00000000000000/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def (filter, first, last, 2527, "epsg", 2527, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 11"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=11500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 11\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",3"); add_srs_wkt (p, 9, "3],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",11500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2527\"]]"); p = add_epsg_def (filter, first, last, 2528, "epsg", 2528, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 12"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=36 +k=1 +x_0=12500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 12\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",3"); add_srs_wkt (p, 9, "6],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",12500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2528\"]]"); p = add_epsg_def (filter, first, last, 2529, "epsg", 2529, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 13"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=13500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 13\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",3"); add_srs_wkt (p, 9, "9],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",13500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2529\"]]"); p = add_epsg_def (filter, first, last, 2530, "epsg", 2530, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 14"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=42 +k=1 +x_0=14500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 14\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",4"); add_srs_wkt (p, 9, "2],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",14500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2530\"]]"); p = add_epsg_def (filter, first, last, 2531, "epsg", 2531, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 15"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=15500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 15\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",4"); add_srs_wkt (p, 9, "5],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",15500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2531\"]]"); p = add_epsg_def (filter, first, last, 2532, "epsg", 2532, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 16"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=48 +k=1 +x_0=16500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 16\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",4"); add_srs_wkt (p, 9, "8],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",16500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2532\"]]"); p = add_epsg_def (filter, first, last, 2533, "epsg", 2533, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 17"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=17500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 17\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",5"); add_srs_wkt (p, 9, "1],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",17500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2533\"]]"); p = add_epsg_def (filter, first, last, 2534, "epsg", 2534, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 18"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=54 +k=1 +x_0=18500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 18\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",5"); add_srs_wkt (p, 9, "4],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",18500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2534\"]]"); p = add_epsg_def (filter, first, last, 2535, "epsg", 2535, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 19"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=19500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 19\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",5"); add_srs_wkt (p, 9, "7],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",19500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2535\"]]"); p = add_epsg_def (filter, first, last, 2536, "epsg", 2536, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 20"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=60 +k=1 +x_0=20500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 20\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",6"); add_srs_wkt (p, 9, "0],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",20500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2536\"]]"); p = add_epsg_def (filter, first, last, 2537, "epsg", 2537, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 21"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=21500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 21\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",6"); add_srs_wkt (p, 9, "3],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",21500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2537\"]]"); p = add_epsg_def (filter, first, last, 2538, "epsg", 2538, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 22"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=66 +k=1 +x_0=22500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 22\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",6"); add_srs_wkt (p, 9, "6],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",22500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2538\"]]"); p = add_epsg_def (filter, first, last, 2539, "epsg", 2539, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 23"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=23500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 23\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",6"); add_srs_wkt (p, 9, "9],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",23500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2539\"]]"); p = add_epsg_def (filter, first, last, 2540, "epsg", 2540, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 24"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=72 +k=1 +x_0=24500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 24\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",7"); add_srs_wkt (p, 9, "2],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",24500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2540\"]]"); p = add_epsg_def (filter, first, last, 2541, "epsg", 2541, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 25"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=25500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 25\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",7"); add_srs_wkt (p, 9, "5],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",25500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2541\"]]"); p = add_epsg_def (filter, first, last, 2542, "epsg", 2542, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 26"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=78 +k=1 +x_0=26500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 26\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",7"); add_srs_wkt (p, 9, "8],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",26500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2542\"]]"); p = add_epsg_def (filter, first, last, 2543, "epsg", 2543, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 27"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=27500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 27\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",8"); add_srs_wkt (p, 9, "1],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",27500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2543\"]]"); p = add_epsg_def (filter, first, last, 2544, "epsg", 2544, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 28"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=84 +k=1 +x_0=28500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 28\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",8"); add_srs_wkt (p, 9, "4],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",28500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2544\"]]"); p = add_epsg_def (filter, first, last, 2545, "epsg", 2545, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 29"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=29500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 29\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",8"); add_srs_wkt (p, 9, "7],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",29500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2545\"]]"); p = add_epsg_def (filter, first, last, 2546, "epsg", 2546, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 30"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=30500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 30\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",9"); add_srs_wkt (p, 9, "0],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",30500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2546\"]]"); p = add_epsg_def (filter, first, last, 2547, "epsg", 2547, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 31"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=31500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 31\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",9"); add_srs_wkt (p, 9, "3],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",31500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2547\"]]"); p = add_epsg_def (filter, first, last, 2548, "epsg", 2548, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 32"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=96 +k=1 +x_0=32500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 32\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",9"); add_srs_wkt (p, 9, "6],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",32500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2548\"]]"); p = add_epsg_def (filter, first, last, 2549, "epsg", 2549, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 33"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=33500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 33\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",9"); add_srs_wkt (p, 9, "9],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",33500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2549\"]]"); p = add_epsg_def (filter, first, last, 2550, "epsg", 2550, "Samboja / UTM zone 50S (deprecated)"); add_proj4text (p, 0, "+proj=utm +zone=50 +south +ellps=bessel +towgs84=-404.78"); add_proj4text (p, 1, ",685.68,45.47,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Samboja / UTM zone 50S (deprecated)\",GEOGCS[\""); add_srs_wkt (p, 1, "Samboja\",DATUM[\"Samboja\",SPHEROID[\"Bessel 1841\",637"); add_srs_wkt (p, 2, "7397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS"); add_srs_wkt (p, 3, "84[-404.78,685.68,45.47,0,0,0,0],AUTHORITY[\"EPSG\",\"61"); add_srs_wkt (p, 4, "25\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9108\"]],AUTHORITY[\"EPSG\",\"4125\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, "],PARAMETER[\"central_meridian\",117],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"2550\"]]"); p = add_epsg_def (filter, first, last, 2551, "epsg", 2551, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 34"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=34500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); add_proj4text (p, 2, ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 34\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "02],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",34500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2551\"]]"); p = add_epsg_def (filter, first, last, 2552, "epsg", 2552, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 35"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=35500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); add_proj4text (p, 2, ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 35\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "05],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",35500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2552\"]]"); p = add_epsg_def (filter, first, last, 2553, "epsg", 2553, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 36"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=36500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); add_proj4text (p, 2, ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 36\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "08],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",36500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2553\"]]"); p = add_epsg_def (filter, first, last, 2554, "epsg", 2554, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 37"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=37500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); add_proj4text (p, 2, ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 37\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "11],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",37500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2554\"]]"); p = add_epsg_def (filter, first, last, 2555, "epsg", 2555, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 38"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=38500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); add_proj4text (p, 2, ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 38\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "14],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",38500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2555\"]]"); p = add_epsg_def (filter, first, last, 2556, "epsg", 2556, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 39"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=39500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); add_proj4text (p, 2, ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 39\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "17],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",39500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2556\"]]"); p = add_epsg_def (filter, first, last, 2557, "epsg", 2557, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 40"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=40500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); add_proj4text (p, 2, ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 40\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "20],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",40500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2557\"]]"); p = add_epsg_def (filter, first, last, 2558, "epsg", 2558, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 41"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=41500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); add_proj4text (p, 2, ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 41\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "23],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",41500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2558\"]]"); p = add_epsg_def (filter, first, last, 2559, "epsg", 2559, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 42"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=126 +k=1 +x_0=42500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); add_proj4text (p, 2, ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 42\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "26],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",42500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2559\"]]"); p = add_epsg_def (filter, first, last, 2560, "epsg", 2560, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 43"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=43500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); add_proj4text (p, 2, ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 43\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "29],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",43500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2560\"]]"); p = add_epsg_def (filter, first, last, 2561, "epsg", 2561, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 44"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=132 +k=1 +x_0=44500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); add_proj4text (p, 2, ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 44\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "32],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",44500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2561\"]]"); p = add_epsg_def (filter, first, last, 2562, "epsg", 2562, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 45"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=45500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); add_proj4text (p, 2, ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 45\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "35],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",45500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2562\"]]"); p = add_epsg_def (filter, first, last, 2563, "epsg", 2563, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 46"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=138 +k=1 +x_0=46500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); add_proj4text (p, 2, ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 46\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "38],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",46500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2563\"]]"); p = add_epsg_def (filter, first, last, 2564, "epsg", 2564, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 47"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=47500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); add_proj4text (p, 2, ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 47\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "41],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",47500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2564\"]]"); p = add_epsg_def (filter, first, last, 2565, "epsg", 2565, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 48"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=144 +k=1 +x_0=48500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); add_proj4text (p, 2, ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 48\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "44],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",48500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2565\"]]"); p = add_epsg_def (filter, first, last, 2566, "epsg", 2566, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 49"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=49500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); add_proj4text (p, 2, ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 49\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "47],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",49500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2566\"]]"); p = add_epsg_def (filter, first, last, 2567, "epsg", 2567, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 50"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=150 +k=1 +x_0=50500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); add_proj4text (p, 2, ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 50\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "50],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",50500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2567\"]]"); p = add_epsg_def (filter, first, last, 2568, "epsg", 2568, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 51"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=51500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); add_proj4text (p, 2, ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 51\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "53],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",51500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2568\"]]"); p = add_epsg_def (filter, first, last, 2569, "epsg", 2569, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 52"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=156 +k=1 +x_0=52500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); add_proj4text (p, 2, ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 52\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "56],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",52500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2569\"]]"); p = add_epsg_def (filter, first, last, 2570, "epsg", 2570, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 53"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=53500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); add_proj4text (p, 2, ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 53\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "59],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",53500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2570\"]]"); p = add_epsg_def (filter, first, last, 2571, "epsg", 2571, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 54"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=162 +k=1 +x_0=54500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); add_proj4text (p, 2, ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 54\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "62],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",54500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2571\"]]"); p = add_epsg_def (filter, first, last, 2572, "epsg", 2572, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 55"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=55500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); add_proj4text (p, 2, ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 55\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "65],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",55500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2572\"]]"); p = add_epsg_def (filter, first, last, 2573, "epsg", 2573, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 56"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=168 +k=1 +x_0=56500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); add_proj4text (p, 2, ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 56\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "68],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",56500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2573\"]]"); p = add_epsg_def (filter, first, last, 2574, "epsg", 2574, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 57"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=57500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); add_proj4text (p, 2, ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 57\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "71],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",57500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2574\"]]"); p = add_epsg_def (filter, first, last, 2575, "epsg", 2575, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 58"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=174 +k=1 +x_0=58500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); add_proj4text (p, 2, ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 58\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "74],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",58500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2575\"]]"); p = add_epsg_def (filter, first, last, 2576, "epsg", 2576, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 59"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=59500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); add_proj4text (p, 2, ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 59\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "77],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",59500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2576\"]]"); p = add_epsg_def (filter, first, last, 2577, "epsg", 2577, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 60 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=180 +k=1 +x_0=60000000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82"); add_proj4text (p, 2, ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 60 (d"); add_srs_wkt (p, 1, "eprecated)\",GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_194"); add_srs_wkt (p, 2, "2\",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35"); add_srs_wkt (p, 4, ",0.82,-0.12],AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 5, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 6, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 7, "TY[\"EPSG\",\"4284\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 8, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 9, "l_meridian\",180],PARAMETER[\"scale_factor\",1],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",60000000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 12, "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"257"); add_srs_wkt (p, 13, "7\"]]"); p = add_epsg_def (filter, first, last, 2578, "epsg", 2578, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 61"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=61500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.8"); add_proj4text (p, 2, "2,-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 61\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "177],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",61500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); add_srs_wkt (p, 12, "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2578\"]]"); p = add_epsg_def (filter, first, last, 2579, "epsg", 2579, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 62"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-174 +k=1 +x_0=62500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.8"); add_proj4text (p, 2, "2,-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 62\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "174],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",62500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); add_srs_wkt (p, 12, "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2579\"]]"); p = add_epsg_def (filter, first, last, 2580, "epsg", 2580, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 63"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=63500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.8"); add_proj4text (p, 2, "2,-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 63\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "171],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",63500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); add_srs_wkt (p, 12, "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2580\"]]"); p = add_epsg_def (filter, first, last, 2581, "epsg", 2581, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 64"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-168 +k=1 +x_0=64500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.8"); add_proj4text (p, 2, "2,-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 64\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "168],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",64500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); add_srs_wkt (p, 12, "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2581\"]]"); p = add_epsg_def (filter, first, last, 2582, "epsg", 2582, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 21E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 21E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",2"); add_srs_wkt (p, 9, "1],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2582\"]]"); p = add_epsg_def (filter, first, last, 2583, "epsg", 2583, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 24E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 24E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",2"); add_srs_wkt (p, 9, "4],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2583\"]]"); p = add_epsg_def (filter, first, last, 2584, "epsg", 2584, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 27E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 27E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",2"); add_srs_wkt (p, 9, "7],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2584\"]]"); p = add_epsg_def (filter, first, last, 2585, "epsg", 2585, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 30E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 30E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",3"); add_srs_wkt (p, 9, "0],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2585\"]]"); p = add_epsg_def (filter, first, last, 2586, "epsg", 2586, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 33E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 33E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",3"); add_srs_wkt (p, 9, "3],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2586\"]]"); p = add_epsg_def (filter, first, last, 2587, "epsg", 2587, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 36E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=36 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 36E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",3"); add_srs_wkt (p, 9, "6],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2587\"]]"); p = add_epsg_def (filter, first, last, 2588, "epsg", 2588, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 39E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 39E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",3"); add_srs_wkt (p, 9, "9],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2588\"]]"); p = add_epsg_def (filter, first, last, 2589, "epsg", 2589, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 42E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=42 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 42E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",4"); add_srs_wkt (p, 9, "2],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2589\"]]"); p = add_epsg_def (filter, first, last, 2590, "epsg", 2590, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 45E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 45E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",4"); add_srs_wkt (p, 9, "5],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2590\"]]"); p = add_epsg_def (filter, first, last, 2591, "epsg", 2591, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 48E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=48 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 48E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",4"); add_srs_wkt (p, 9, "8],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2591\"]]"); p = add_epsg_def (filter, first, last, 2592, "epsg", 2592, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 51E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 51E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",5"); add_srs_wkt (p, 9, "1],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2592\"]]"); p = add_epsg_def (filter, first, last, 2593, "epsg", 2593, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 54E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=54 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 54E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",5"); add_srs_wkt (p, 9, "4],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2593\"]]"); p = add_epsg_def (filter, first, last, 2594, "epsg", 2594, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 57E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 57E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",5"); add_srs_wkt (p, 9, "7],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2594\"]]"); p = add_epsg_def (filter, first, last, 2595, "epsg", 2595, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 60E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=60 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 60E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",6"); add_srs_wkt (p, 9, "0],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2595\"]]"); p = add_epsg_def (filter, first, last, 2596, "epsg", 2596, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 63E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 63E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",6"); add_srs_wkt (p, 9, "3],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2596\"]]"); p = add_epsg_def (filter, first, last, 2597, "epsg", 2597, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 66E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=66 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 66E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",6"); add_srs_wkt (p, 9, "6],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2597\"]]"); p = add_epsg_def (filter, first, last, 2598, "epsg", 2598, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 69E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 69E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",6"); add_srs_wkt (p, 9, "9],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2598\"]]"); p = add_epsg_def (filter, first, last, 2599, "epsg", 2599, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 72E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=72 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 72E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",7"); add_srs_wkt (p, 9, "2],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2599\"]]"); p = add_epsg_def (filter, first, last, 2600, "epsg", 2600, "Lietuvos Koordinoei Sistema 1994 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9998 +x_0=500000 +y_"); add_proj4text (p, 1, "0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_def"); add_proj4text (p, 2, "s"); add_srs_wkt (p, 0, "PROJCS[\"Lietuvos Koordinoei Sistema 1994 (deprecated)\""); add_srs_wkt (p, 1, ",GEOGCS[\"LKS94\",DATUM[\"Lithuania_1994_ETRS89\",SPHERO"); add_srs_wkt (p, 2, "ID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6126\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4669\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",24],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",0.9998],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"2600\"]]"); p = add_epsg_def (filter, first, last, 2601, "epsg", 2601, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 75E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 75E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",7"); add_srs_wkt (p, 9, "5],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2601\"]]"); p = add_epsg_def (filter, first, last, 2602, "epsg", 2602, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 78E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=78 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 78E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",7"); add_srs_wkt (p, 9, "8],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2602\"]]"); p = add_epsg_def (filter, first, last, 2603, "epsg", 2603, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 81E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 81E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",8"); add_srs_wkt (p, 9, "1],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2603\"]]"); p = add_epsg_def (filter, first, last, 2604, "epsg", 2604, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 84E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=84 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 84E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",8"); add_srs_wkt (p, 9, "4],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2604\"]]"); p = add_epsg_def (filter, first, last, 2605, "epsg", 2605, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 87E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 87E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",8"); add_srs_wkt (p, 9, "7],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2605\"]]"); p = add_epsg_def (filter, first, last, 2606, "epsg", 2606, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 90E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 90E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",9"); add_srs_wkt (p, 9, "0],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2606\"]]"); p = add_epsg_def (filter, first, last, 2607, "epsg", 2607, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 93E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 93E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",9"); add_srs_wkt (p, 9, "3],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2607\"]]"); p = add_epsg_def (filter, first, last, 2608, "epsg", 2608, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 96E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=96 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 96E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",9"); add_srs_wkt (p, 9, "6],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2608\"]]"); p = add_epsg_def (filter, first, last, 2609, "epsg", 2609, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 99E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 99E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4"); add_srs_wkt (p, 7, "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",9"); add_srs_wkt (p, 9, "9],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2609\"]]"); p = add_epsg_def (filter, first, last, 2610, "epsg", 2610, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 102E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 102E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "02],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2610\"]]"); p = add_epsg_def (filter, first, last, 2611, "epsg", 2611, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 105E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 105E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "05],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2611\"]]"); p = add_epsg_def (filter, first, last, 2612, "epsg", 2612, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 108E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 108E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "08],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2612\"]]"); p = add_epsg_def (filter, first, last, 2613, "epsg", 2613, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 111E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 111E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "11],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2613\"]]"); p = add_epsg_def (filter, first, last, 2614, "epsg", 2614, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 114E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 114E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "14],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2614\"]]"); p = add_epsg_def (filter, first, last, 2615, "epsg", 2615, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 117E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 117E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "17],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2615\"]]"); p = add_epsg_def (filter, first, last, 2616, "epsg", 2616, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 120E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 120E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "20],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2616\"]]"); p = add_epsg_def (filter, first, last, 2617, "epsg", 2617, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 123E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 123E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "23],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2617\"]]"); p = add_epsg_def (filter, first, last, 2618, "epsg", 2618, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 126E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=126 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 126E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "26],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2618\"]]"); p = add_epsg_def (filter, first, last, 2619, "epsg", 2619, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 129E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 129E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "29],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2619\"]]"); p = add_epsg_def (filter, first, last, 2620, "epsg", 2620, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 132E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=132 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 132E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "32],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2620\"]]"); p = add_epsg_def (filter, first, last, 2621, "epsg", 2621, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 135E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 135E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "35],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2621\"]]"); p = add_epsg_def (filter, first, last, 2622, "epsg", 2622, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 138E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=138 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 138E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "38],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2622\"]]"); p = add_epsg_def (filter, first, last, 2623, "epsg", 2623, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 141E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 141E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "41],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2623\"]]"); p = add_epsg_def (filter, first, last, 2624, "epsg", 2624, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 144E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=144 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 144E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "44],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2624\"]]"); p = add_epsg_def (filter, first, last, 2625, "epsg", 2625, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 147E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 147E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "47],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2625\"]]"); p = add_epsg_def (filter, first, last, 2626, "epsg", 2626, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 150E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=150 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 150E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "50],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2626\"]]"); p = add_epsg_def (filter, first, last, 2627, "epsg", 2627, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 153E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 153E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "53],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2627\"]]"); } #endif /* full EPSG initialization enabled/disabled */ libspatialite-4.1.1/src/srsinit/epsg_inlined_extra.c0000664000175000017500000002634712163502133017567 00000000000000/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include /* declaring prototypes */ SPATIALITE_PRIVATE void initialize_epsg_00 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_01 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_02 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_03 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_04 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_05 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_06 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_07 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_08 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_09 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_10 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_11 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_12 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_13 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_14 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_15 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_16 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_17 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_18 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_19 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_20 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_21 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_22 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_23 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_24 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_25 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_26 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_27 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_28 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_29 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_30 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_31 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_32 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_33 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_34 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_35 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_36 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_37 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_38 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_39 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_40 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_wgs84_00 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_wgs84_01 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_prussian ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_extra ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_extra (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list [EXTRA] */ struct epsg_defs *p; p = add_epsg_def (filter, first, last, 40000, "gfoss.it", 1, "Italy mainland zone 1 GB Roma40"); add_proj4text (p, 0, "+proj=tmerc+lat_0=0 +lon_0=9 +k=0.9996 +x_0=1500000 +y_"); add_proj4text (p, 1, "0=0 +ellps=intl +units=m +towgs84=-104.1,-49.1,-9.9,0.97"); add_proj4text (p, 2, "1,-2.917,0.714,-11.68 +no_defs"); add_srs_wkt (p, 0, ""); p = add_epsg_def (filter, first, last, 40001, "gfoss.it", 2, "Italy mainland zone 2 GB Roma40"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9996 +x_0=2520000 +y"); add_proj4text (p, 1, "_0=0 +ellps=intl +units=m +towgs84=-104.1,-49.1,-9.9,0.9"); add_proj4text (p, 2, "71,-2.917,0.714,-11.68 +no_defs"); add_srs_wkt (p, 0, ""); p = add_epsg_def (filter, first, last, 40002, "gfoss.it", 3, "Italy Sardinia GB Roma40"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=9 +k=0.9996 +x_0=1500000 +y"); add_proj4text (p, 1, "_0=0 +ellps=intl +units=m +towgs84=-168.6,-34.0,38.6,-0."); add_proj4text (p, 2, "374,-0.679,-1.379,-9.48 +no_defs"); add_srs_wkt (p, 0, ""); p = add_epsg_def (filter, first, last, 40003, "gfoss.it", 4, "Italy Sicily GB Roma40"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=9 +k=0.9996 +x_0=1500000 +y"); add_proj4text (p, 1, "_0=0 +ellps=intl +units=m +towgs84=-50.2,-50.4,84.8,-0.6"); add_proj4text (p, 2, "90,-2.012,0.459,-28.08 +no_defs"); add_srs_wkt (p, 0, ""); } SPATIALITE_PRIVATE void initialize_epsg (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; /* initializing the EPSG UNKNOWN def [-1] */ p = add_epsg_def (filter, first, last, -1, "NONE", -1, "Undefined - Cartesian"); add_proj4text (p, 0, ""); add_srs_wkt (p, 0, ""); p = add_epsg_def (filter, first, last, 0, "NONE", 0, "Undefined - Geographic Long/Lat"); add_proj4text (p, 0, ""); add_srs_wkt (p, 0, ""); if (filter != GAIA_EPSG_WGS84_ONLY) { #ifndef OMIT_EPSG /* full EPSG initialization enabled */ initialize_epsg_00 (filter, first, last); initialize_epsg_01 (filter, first, last); initialize_epsg_02 (filter, first, last); initialize_epsg_03 (filter, first, last); initialize_epsg_04 (filter, first, last); initialize_epsg_05 (filter, first, last); initialize_epsg_06 (filter, first, last); initialize_epsg_07 (filter, first, last); initialize_epsg_08 (filter, first, last); initialize_epsg_09 (filter, first, last); initialize_epsg_10 (filter, first, last); initialize_epsg_11 (filter, first, last); initialize_epsg_12 (filter, first, last); initialize_epsg_13 (filter, first, last); initialize_epsg_14 (filter, first, last); initialize_epsg_15 (filter, first, last); initialize_epsg_16 (filter, first, last); initialize_epsg_17 (filter, first, last); initialize_epsg_18 (filter, first, last); initialize_epsg_19 (filter, first, last); initialize_epsg_20 (filter, first, last); initialize_epsg_21 (filter, first, last); initialize_epsg_22 (filter, first, last); initialize_epsg_23 (filter, first, last); initialize_epsg_24 (filter, first, last); initialize_epsg_25 (filter, first, last); initialize_epsg_26 (filter, first, last); initialize_epsg_27 (filter, first, last); initialize_epsg_28 (filter, first, last); initialize_epsg_29 (filter, first, last); initialize_epsg_30 (filter, first, last); initialize_epsg_31 (filter, first, last); initialize_epsg_32 (filter, first, last); initialize_epsg_33 (filter, first, last); initialize_epsg_34 (filter, first, last); initialize_epsg_35 (filter, first, last); initialize_epsg_36 (filter, first, last); initialize_epsg_37 (filter, first, last); initialize_epsg_38 (filter, first, last); initialize_epsg_39 (filter, first, last); initialize_epsg_40 (filter, first, last); initialize_epsg_prussian (filter, first, last); initialize_epsg_extra (filter, first, last); #endif /* full EPSG initialization enabled/disabled */ } initialize_epsg_wgs84_00 (filter, first, last); initialize_epsg_wgs84_01 (filter, first, last); } libspatialite-4.1.1/src/srsinit/epsg_inlined_24.c0000664000175000017500000036506612163502133016675 00000000000000/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def (filter, first, last, 4756, "epsg", 4756, "VN-2000"); add_proj4text (p, 0, "+proj=longlat +ellps=WGS84 +towgs84=-192.873,-39.382,-11"); add_proj4text (p, 1, "1.202,-0.00205,-0.0005,0.00335,0.0188 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"VN-2000\",DATUM[\"Vietnam_2000\",SPHEROID[\"WGS"); add_srs_wkt (p, 1, " 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]"); add_srs_wkt (p, 2, "],TOWGS84[-192.873,-39.382,-111.202,-0.00205,-0.0005,0.0"); add_srs_wkt (p, 3, "0335,0.0188],AUTHORITY[\"EPSG\",\"6756\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4756\"]]"); p = add_epsg_def (filter, first, last, 4757, "epsg", 4757, "SVY21"); add_proj4text (p, 0, "+proj=longlat +ellps=WGS84 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"SVY21\",DATUM[\"SVY21\",SPHEROID[\"WGS 84\",637"); add_srs_wkt (p, 1, "8137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"6757\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4757\""); add_srs_wkt (p, 5, "]]"); p = add_epsg_def (filter, first, last, 4758, "epsg", 4758, "JAD2001"); add_proj4text (p, 0, "+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"JAD2001\",DATUM[\"Jamaica_2001\",SPHEROID[\"WGS"); add_srs_wkt (p, 1, " 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]"); add_srs_wkt (p, 2, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6758\"]],P"); add_srs_wkt (p, 3, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 4, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 5, "\"]],AUTHORITY[\"EPSG\",\"4758\"]]"); p = add_epsg_def (filter, first, last, 4759, "epsg", 4759, "NAD83(NSRS2007)"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatia"); add_srs_wkt (p, 1, "l_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137,"); add_srs_wkt (p, 2, "298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,"); add_srs_wkt (p, 3, "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 4, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 5, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"4759\"]]"); p = add_epsg_def (filter, first, last, 4760, "epsg", 4760, "WGS 66"); add_proj4text (p, 0, "+proj=longlat +ellps=WGS66 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"WGS 66\",DATUM[\"World_Geodetic_System_1966\",S"); add_srs_wkt (p, 1, "PHEROID[\"NWL 9D\",6378145,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 2, "025\"]],AUTHORITY[\"EPSG\",\"6760\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 3, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 4, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"4760\"]]"); p = add_epsg_def (filter, first, last, 4761, "epsg", 4761, "HTRS96"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"HTRS96\",DATUM[\"Croatian_Terrestrial_Reference"); add_srs_wkt (p, 1, "_System\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 2, "THORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHO"); add_srs_wkt (p, 3, "RITY[\"EPSG\",\"6761\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 4, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4761"); add_srs_wkt (p, 6, "\"]]"); p = add_epsg_def (filter, first, last, 4762, "epsg", 4762, "BDA2000"); add_proj4text (p, 0, "+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"BDA2000\",DATUM[\"Bermuda_2000\",SPHEROID[\"WGS"); add_srs_wkt (p, 1, " 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]"); add_srs_wkt (p, 2, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6762\"]],P"); add_srs_wkt (p, 3, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 4, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 5, "\"]],AUTHORITY[\"EPSG\",\"4762\"]]"); p = add_epsg_def (filter, first, last, 4763, "epsg", 4763, "Pitcairn 2006"); add_proj4text (p, 0, "+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"Pitcairn 2006\",DATUM[\"Pitcairn_2006\",SPHEROI"); add_srs_wkt (p, 1, "D[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 2, "7030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"676"); add_srs_wkt (p, 3, "3\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 4, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4763\"]]"); p = add_epsg_def (filter, first, last, 4764, "epsg", 4764, "RSRGD2000"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"RSRGD2000\",DATUM[\"Ross_Sea_Region_Geodetic_Da"); add_srs_wkt (p, 1, "tum_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 2, "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"6764\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"476"); add_srs_wkt (p, 6, "4\"]]"); p = add_epsg_def (filter, first, last, 4765, "epsg", 4765, "Slovenia 1996"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"Slovenia 1996\",DATUM[\"Slovenia_Geodetic_Datum"); add_srs_wkt (p, 1, "_1996\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 2, "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"6765\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4765\""); add_srs_wkt (p, 6, "]]"); p = add_epsg_def (filter, first, last, 4766, "epsg", 4766, "New Beijing / 3-degree Gauss-Kruger zone 30"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=30500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger zone 30\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 7, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 8, "ian\",90],PARAMETER[\"scale_factor\",1],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",30500000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 10, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); add_srs_wkt (p, 11, "NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4766\"]]"); p = add_epsg_def (filter, first, last, 4767, "epsg", 4767, "New Beijing / 3-degree Gauss-Kruger zone 31"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=31500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger zone 31\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 7, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 8, "ian\",93],PARAMETER[\"scale_factor\",1],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",31500000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 10, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); add_srs_wkt (p, 11, "NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4767\"]]"); p = add_epsg_def (filter, first, last, 4768, "epsg", 4768, "New Beijing / 3-degree Gauss-Kruger zone 32"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=96 +k=1 +x_0=32500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger zone 32\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 7, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 8, "ian\",96],PARAMETER[\"scale_factor\",1],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",32500000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 10, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); add_srs_wkt (p, 11, "NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4768\"]]"); p = add_epsg_def (filter, first, last, 4769, "epsg", 4769, "New Beijing / 3-degree Gauss-Kruger zone 33"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=33500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger zone 33\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 7, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 8, "ian\",99],PARAMETER[\"scale_factor\",1],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",33500000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 10, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); add_srs_wkt (p, 11, "NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4769\"]]"); p = add_epsg_def (filter, first, last, 4770, "epsg", 4770, "New Beijing / 3-degree Gauss-Kruger zone 34"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=34500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger zone 34\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 7, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 8, "ian\",102],PARAMETER[\"scale_factor\",1],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",34500000],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 10, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 11, ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4770\"]]"); p = add_epsg_def (filter, first, last, 4771, "epsg", 4771, "New Beijing / 3-degree Gauss-Kruger zone 35"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=35500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger zone 35\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 7, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 8, "ian\",105],PARAMETER[\"scale_factor\",1],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",35500000],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 10, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 11, ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4771\"]]"); p = add_epsg_def (filter, first, last, 4772, "epsg", 4772, "New Beijing / 3-degree Gauss-Kruger zone 36"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=36500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger zone 36\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 7, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 8, "ian\",108],PARAMETER[\"scale_factor\",1],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",36500000],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 10, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 11, ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4772\"]]"); p = add_epsg_def (filter, first, last, 4773, "epsg", 4773, "New Beijing / 3-degree Gauss-Kruger zone 37"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=37500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger zone 37\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 7, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 8, "ian\",111],PARAMETER[\"scale_factor\",1],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",37500000],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 10, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 11, ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4773\"]]"); p = add_epsg_def (filter, first, last, 4774, "epsg", 4774, "New Beijing / 3-degree Gauss-Kruger zone 38"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=38500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger zone 38\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 7, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 8, "ian\",114],PARAMETER[\"scale_factor\",1],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",38500000],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 10, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 11, ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4774\"]]"); p = add_epsg_def (filter, first, last, 4775, "epsg", 4775, "New Beijing / 3-degree Gauss-Kruger zone 39"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=39500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger zone 39\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 7, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 8, "ian\",117],PARAMETER[\"scale_factor\",1],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",39500000],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 10, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 11, ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4775\"]]"); p = add_epsg_def (filter, first, last, 4776, "epsg", 4776, "New Beijing / 3-degree Gauss-Kruger zone 40"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=40500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger zone 40\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 7, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 8, "ian\",120],PARAMETER[\"scale_factor\",1],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",40500000],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 10, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 11, ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4776\"]]"); p = add_epsg_def (filter, first, last, 4777, "epsg", 4777, "New Beijing / 3-degree Gauss-Kruger zone 41"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=41500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger zone 41\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 7, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 8, "ian\",123],PARAMETER[\"scale_factor\",1],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",41500000],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 10, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 11, ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4777\"]]"); p = add_epsg_def (filter, first, last, 4778, "epsg", 4778, "New Beijing / 3-degree Gauss-Kruger zone 42"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=126 +k=1 +x_0=42500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger zone 42\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 7, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 8, "ian\",126],PARAMETER[\"scale_factor\",1],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",42500000],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 10, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 11, ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4778\"]]"); p = add_epsg_def (filter, first, last, 4779, "epsg", 4779, "New Beijing / 3-degree Gauss-Kruger zone 43"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=43500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger zone 43\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 7, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 8, "ian\",129],PARAMETER[\"scale_factor\",1],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",43500000],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 10, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 11, ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4779\"]]"); p = add_epsg_def (filter, first, last, 4780, "epsg", 4780, "New Beijing / 3-degree Gauss-Kruger zone 44"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=132 +k=1 +x_0=44500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger zone 44\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 7, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 8, "ian\",132],PARAMETER[\"scale_factor\",1],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",44500000],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 10, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 11, ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4780\"]]"); p = add_epsg_def (filter, first, last, 4781, "epsg", 4781, "New Beijing / 3-degree Gauss-Kruger zone 45"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=45500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger zone 45\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 7, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 8, "ian\",135],PARAMETER[\"scale_factor\",1],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",45500000],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 10, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 11, ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4781\"]]"); p = add_epsg_def (filter, first, last, 4782, "epsg", 4782, "New Beijing / 3-degree Gauss-Kruger CM 75E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger CM 75E\",GE"); add_srs_wkt (p, 1, "OGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Kr"); add_srs_wkt (p, 2, "assowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 7, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, "\",75],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_e"); add_srs_wkt (p, 9, "asting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 10, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); add_srs_wkt (p, 11, "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4782\"]]"); p = add_epsg_def (filter, first, last, 4783, "epsg", 4783, "New Beijing / 3-degree Gauss-Kruger CM 78E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=78 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger CM 78E\",GE"); add_srs_wkt (p, 1, "OGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Kr"); add_srs_wkt (p, 2, "assowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 7, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, "\",78],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_e"); add_srs_wkt (p, 9, "asting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 10, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); add_srs_wkt (p, 11, "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4783\"]]"); p = add_epsg_def (filter, first, last, 4784, "epsg", 4784, "New Beijing / 3-degree Gauss-Kruger CM 81E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger CM 81E\",GE"); add_srs_wkt (p, 1, "OGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Kr"); add_srs_wkt (p, 2, "assowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 7, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, "\",81],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_e"); add_srs_wkt (p, 9, "asting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 10, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); add_srs_wkt (p, 11, "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4784\"]]"); p = add_epsg_def (filter, first, last, 4785, "epsg", 4785, "New Beijing / 3-degree Gauss-Kruger CM 84E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=84 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger CM 84E\",GE"); add_srs_wkt (p, 1, "OGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Kr"); add_srs_wkt (p, 2, "assowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 7, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, "\",84],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_e"); add_srs_wkt (p, 9, "asting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 10, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); add_srs_wkt (p, 11, "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4785\"]]"); p = add_epsg_def (filter, first, last, 4786, "epsg", 4786, "New Beijing / 3-degree Gauss-Kruger CM 87E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger CM 87E\",GE"); add_srs_wkt (p, 1, "OGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Kr"); add_srs_wkt (p, 2, "assowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 7, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, "\",87],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_e"); add_srs_wkt (p, 9, "asting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 10, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); add_srs_wkt (p, 11, "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4786\"]]"); p = add_epsg_def (filter, first, last, 4787, "epsg", 4787, "New Beijing / 3-degree Gauss-Kruger CM 90E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger CM 90E\",GE"); add_srs_wkt (p, 1, "OGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Kr"); add_srs_wkt (p, 2, "assowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 7, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, "\",90],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_e"); add_srs_wkt (p, 9, "asting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 10, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); add_srs_wkt (p, 11, "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4787\"]]"); p = add_epsg_def (filter, first, last, 4788, "epsg", 4788, "New Beijing / 3-degree Gauss-Kruger CM 93E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger CM 93E\",GE"); add_srs_wkt (p, 1, "OGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Kr"); add_srs_wkt (p, 2, "assowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 7, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, "\",93],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_e"); add_srs_wkt (p, 9, "asting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 10, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); add_srs_wkt (p, 11, "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4788\"]]"); p = add_epsg_def (filter, first, last, 4789, "epsg", 4789, "New Beijing / 3-degree Gauss-Kruger CM 96E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=96 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger CM 96E\",GE"); add_srs_wkt (p, 1, "OGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Kr"); add_srs_wkt (p, 2, "assowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 7, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, "\",96],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_e"); add_srs_wkt (p, 9, "asting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 10, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); add_srs_wkt (p, 11, "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4789\"]]"); p = add_epsg_def (filter, first, last, 4790, "epsg", 4790, "New Beijing / 3-degree Gauss-Kruger CM 99E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger CM 99E\",GE"); add_srs_wkt (p, 1, "OGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Kr"); add_srs_wkt (p, 2, "assowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 7, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 8, "\",99],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_e"); add_srs_wkt (p, 9, "asting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 10, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); add_srs_wkt (p, 11, "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4790\"]]"); p = add_epsg_def (filter, first, last, 4791, "epsg", 4791, "New Beijing / 3-degree Gauss-Kruger CM 102E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger CM 102E\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 7, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 8, "ian\",102],PARAMETER[\"scale_factor\",1],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",N"); add_srs_wkt (p, 11, "ORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4791\"]]"); p = add_epsg_def (filter, first, last, 4792, "epsg", 4792, "New Beijing / 3-degree Gauss-Kruger CM 105E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger CM 105E\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 7, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 8, "ian\",105],PARAMETER[\"scale_factor\",1],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",N"); add_srs_wkt (p, 11, "ORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4792\"]]"); p = add_epsg_def (filter, first, last, 4793, "epsg", 4793, "New Beijing / 3-degree Gauss-Kruger CM 108E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger CM 108E\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 7, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 8, "ian\",108],PARAMETER[\"scale_factor\",1],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",N"); add_srs_wkt (p, 11, "ORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4793\"]]"); p = add_epsg_def (filter, first, last, 4794, "epsg", 4794, "New Beijing / 3-degree Gauss-Kruger CM 111E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger CM 111E\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 7, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 8, "ian\",111],PARAMETER[\"scale_factor\",1],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",N"); add_srs_wkt (p, 11, "ORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4794\"]]"); p = add_epsg_def (filter, first, last, 4795, "epsg", 4795, "New Beijing / 3-degree Gauss-Kruger CM 114E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger CM 114E\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 7, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 8, "ian\",114],PARAMETER[\"scale_factor\",1],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",N"); add_srs_wkt (p, 11, "ORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4795\"]]"); p = add_epsg_def (filter, first, last, 4796, "epsg", 4796, "New Beijing / 3-degree Gauss-Kruger CM 117E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger CM 117E\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 7, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 8, "ian\",117],PARAMETER[\"scale_factor\",1],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",N"); add_srs_wkt (p, 11, "ORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4796\"]]"); p = add_epsg_def (filter, first, last, 4797, "epsg", 4797, "New Beijing / 3-degree Gauss-Kruger CM 120E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger CM 120E\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 7, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 8, "ian\",120],PARAMETER[\"scale_factor\",1],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",N"); add_srs_wkt (p, 11, "ORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4797\"]]"); p = add_epsg_def (filter, first, last, 4798, "epsg", 4798, "New Beijing / 3-degree Gauss-Kruger CM 123E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger CM 123E\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 7, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 8, "ian\",123],PARAMETER[\"scale_factor\",1],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",N"); add_srs_wkt (p, 11, "ORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4798\"]]"); p = add_epsg_def (filter, first, last, 4799, "epsg", 4799, "New Beijing / 3-degree Gauss-Kruger CM 126E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=126 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger CM 126E\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 7, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 8, "ian\",126],PARAMETER[\"scale_factor\",1],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",N"); add_srs_wkt (p, 11, "ORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4799\"]]"); p = add_epsg_def (filter, first, last, 4800, "epsg", 4800, "New Beijing / 3-degree Gauss-Kruger CM 129E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger CM 129E\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 7, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 8, "ian\",129],PARAMETER[\"scale_factor\",1],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",N"); add_srs_wkt (p, 11, "ORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4800\"]]"); p = add_epsg_def (filter, first, last, 4801, "epsg", 4801, "Bern 1898 (Bern)"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +towgs84=674.4,15.1,405.3,0,"); add_proj4text (p, 1, "0,0,0 +pm=bern +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Bern 1898 (Bern)\",DATUM[\"CH1903_Bern\",SPHERO"); add_srs_wkt (p, 1, "ID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"E"); add_srs_wkt (p, 2, "PSG\",\"7004\"]],TOWGS84[674.4,15.1,405.3,0,0,0,0],AUTHO"); add_srs_wkt (p, 3, "RITY[\"EPSG\",\"6801\"]],PRIMEM[\"Bern\",7.4395833333333"); add_srs_wkt (p, 4, "33,AUTHORITY[\"EPSG\",\"8907\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 6, "SG\",\"4801\"]]"); p = add_epsg_def (filter, first, last, 4802, "epsg", 4802, "Bogota 1975 (Bogota)"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=307,304,-318,0,0,0,0 "); add_proj4text (p, 1, "+pm=bogota +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Bogota 1975 (Bogota)\",DATUM[\"Bogota_1975_Bogo"); add_srs_wkt (p, 1, "ta\",SPHEROID[\"International 1924\",6378388,297,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7022\"]],TOWGS84[307,304,-318,0,0,0,0],AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"6802\"]],PRIMEM[\"Bogota\",-74.0809166"); add_srs_wkt (p, 4, "6666667,AUTHORITY[\"EPSG\",\"8904\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 5, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"4802\"]]"); p = add_epsg_def (filter, first, last, 4803, "epsg", 4803, "Lisbon (Lisbon)"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-304.046,-60.576,103."); add_proj4text (p, 1, "64,0,0,0,0 +pm=lisbon +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Lisbon (Lisbon)\",DATUM[\"Lisbon_1937_Lisbon\","); add_srs_wkt (p, 1, "SPHEROID[\"International 1924\",6378388,297,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7022\"]],TOWGS84[-304.046,-60.576,103.64,0,0,0,"); add_srs_wkt (p, 3, "0],AUTHORITY[\"EPSG\",\"6803\"]],PRIMEM[\"Lisbon\",-9.13"); add_srs_wkt (p, 4, "1906111111112,AUTHORITY[\"EPSG\",\"8902\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4803\"]]"); p = add_epsg_def (filter, first, last, 4804, "epsg", 4804, "Makassar (Jakarta)"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +towgs84=-587.8,519.75,145.7"); add_proj4text (p, 1, "6,0,0,0,0 +pm=jakarta +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Makassar (Jakarta)\",DATUM[\"Makassar_Jakarta\""); add_srs_wkt (p, 1, ",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHOR"); add_srs_wkt (p, 2, "ITY[\"EPSG\",\"7004\"]],TOWGS84[-587.8,519.75,145.76,0,0"); add_srs_wkt (p, 3, ",0,0],AUTHORITY[\"EPSG\",\"6804\"]],PRIMEM[\"Jakarta\",1"); add_srs_wkt (p, 4, "06.8077194444444,AUTHORITY[\"EPSG\",\"8908\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4804\"]]"); p = add_epsg_def (filter, first, last, 4805, "epsg", 4805, "MGI (Ferro)"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +towgs84=682,-203,480,0,0,0,"); add_proj4text (p, 1, "0 +pm=ferro +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"MGI (Ferro)\",DATUM[\"Militar_Geographische_Ins"); add_srs_wkt (p, 1, "titut_Ferro\",SPHEROID[\"Bessel 1841\",6377397.155,299.1"); add_srs_wkt (p, 2, "528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[682,-203,48"); add_srs_wkt (p, 3, "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6805\"]],PRIMEM[\"Ferro\""); add_srs_wkt (p, 4, ",-17.66666666666667,AUTHORITY[\"EPSG\",\"8909\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4805\"]]"); p = add_epsg_def (filter, first, last, 4806, "epsg", 4806, "Monte Mario (Rome)"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-104.1,-49.1,-9.9,0.9"); add_proj4text (p, 1, "71,-2.917,0.714,-11.68 +pm=rome +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Monte Mario (Rome)\",DATUM[\"Monte_Mario_Rome\""); add_srs_wkt (p, 1, ",SPHEROID[\"International 1924\",6378388,297,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7022\"]],TOWGS84[-104.1,-49.1,-9.9,0.971,-2.917"); add_srs_wkt (p, 3, ",0.714,-11.68],AUTHORITY[\"EPSG\",\"6806\"]],PRIMEM[\"Ro"); add_srs_wkt (p, 4, "me\",12.45233333333333,AUTHORITY[\"EPSG\",\"8906\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4806\"]]"); p = add_epsg_def (filter, first, last, 4807, "epsg", 4807, "NTF (Paris)"); add_proj4text (p, 0, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-168,-60,"); add_proj4text (p, 1, "320,0,0,0,0 +pm=paris +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"NTF (Paris)\",DATUM[\"Nouvelle_Triangulation_Fr"); add_srs_wkt (p, 1, "ancaise_Paris\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2"); add_srs_wkt (p, 2, ",293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84"); add_srs_wkt (p, 3, "[-168,-60,320,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRI"); add_srs_wkt (p, 4, "MEM[\"Paris\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],U"); add_srs_wkt (p, 5, "NIT[\"grad\",0.01570796326794897,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "05\"]],AUTHORITY[\"EPSG\",\"4807\"]]"); p = add_epsg_def (filter, first, last, 4808, "epsg", 4808, "Padang (Jakarta)"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +pm=jakarta +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Padang (Jakarta)\",DATUM[\"Padang_1884_Jakarta\""); add_srs_wkt (p, 1, ",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHOR"); add_srs_wkt (p, 2, "ITY[\"EPSG\",\"7004\"]],AUTHORITY[\"EPSG\",\"6808\"]],PR"); add_srs_wkt (p, 3, "IMEM[\"Jakarta\",106.8077194444444,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8908\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4808\"]]"); p = add_epsg_def (filter, first, last, 4809, "epsg", 4809, "Belge 1950 (Brussels)"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +pm=brussels +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Belge 1950 (Brussels)\",DATUM[\"Reseau_National"); add_srs_wkt (p, 1, "_Belge_1950_Brussels\",SPHEROID[\"International 1924\",6"); add_srs_wkt (p, 2, "378388,297,AUTHORITY[\"EPSG\",\"7022\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"6809\"]],PRIMEM[\"Brussels\",4.367975,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"8910\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4809\"]]"); p = add_epsg_def (filter, first, last, 4810, "epsg", 4810, "Tananarive (Paris)"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-189,-242,-91,0,0,0,0"); add_proj4text (p, 1, " +pm=paris +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Tananarive (Paris)\",DATUM[\"Tananarive_1925_Pa"); add_srs_wkt (p, 1, "ris\",SPHEROID[\"International 1924\",6378388,297,AUTHOR"); add_srs_wkt (p, 2, "ITY[\"EPSG\",\"7022\"]],TOWGS84[-189,-242,-91,0,0,0,0],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6810\"]],PRIMEM[\"Paris\",2.33722917"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\",0.015707963"); add_srs_wkt (p, 5, "26794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4810\"]]"); p = add_epsg_def (filter, first, last, 4811, "epsg", 4811, "Voirol 1875 (Paris)"); add_proj4text (p, 0, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-73,-247,"); add_proj4text (p, 1, "227,0,0,0,0 +pm=paris +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Voirol 1875 (Paris)\",DATUM[\"Voirol_1875_Paris"); add_srs_wkt (p, 1, "\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.46602129"); add_srs_wkt (p, 2, "36269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-73,-247,227"); add_srs_wkt (p, 3, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6811\"]],PRIMEM[\"Paris\""); add_srs_wkt (p, 4, ",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\","); add_srs_wkt (p, 5, "0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4811\"]]"); p = add_epsg_def (filter, first, last, 4812, "epsg", 4812, "New Beijing / 3-degree Gauss-Kruger CM 132E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=132 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger CM 132E\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 7, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 8, "ian\",132],PARAMETER[\"scale_factor\",1],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",N"); add_srs_wkt (p, 11, "ORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4812\"]]"); p = add_epsg_def (filter, first, last, 4813, "epsg", 4813, "Batavia (Jakarta)"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +towgs84=-377,681,-50,0,0,0,"); add_proj4text (p, 1, "0 +pm=jakarta +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Batavia (Jakarta)\",DATUM[\"Batavia_Jakarta\",S"); add_srs_wkt (p, 1, "PHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7004\"]],TOWGS84[-377,681,-50,0,0,0,0],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"6813\"]],PRIMEM[\"Jakarta\",106.8077194"); add_srs_wkt (p, 4, "444444,AUTHORITY[\"EPSG\",\"8908\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"4813\"]]"); p = add_epsg_def (filter, first, last, 4814, "epsg", 4814, "RT38 (Stockholm)"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +pm=stockholm +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"RT38 (Stockholm)\",DATUM[\"Stockholm_1938_Stock"); add_srs_wkt (p, 1, "holm\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7004\"]],AUTHORITY[\"EPSG\",\"6814\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Stockholm\",18.05827777777778,AUTHORITY[\"EP"); add_srs_wkt (p, 4, "SG\",\"8911\"]],UNIT[\"degree\",0.0174532925199433,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4814\"]]"); p = add_epsg_def (filter, first, last, 4815, "epsg", 4815, "Greek (Athens)"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +pm=athens +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Greek (Athens)\",DATUM[\"Greek_Athens\",SPHEROI"); add_srs_wkt (p, 1, "D[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EP"); add_srs_wkt (p, 2, "SG\",\"7004\"]],AUTHORITY[\"EPSG\",\"6815\"]],PRIMEM[\"A"); add_srs_wkt (p, 3, "thens\",23.7163375,AUTHORITY[\"EPSG\",\"8912\"]],UNIT[\""); add_srs_wkt (p, 4, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 5, "],AUTHORITY[\"EPSG\",\"4815\"]]"); p = add_epsg_def (filter, first, last, 4816, "epsg", 4816, "Carthage (Paris)"); add_proj4text (p, 0, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-263,6,43"); add_proj4text (p, 1, "1,0,0,0,0 +pm=paris +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Carthage (Paris)\",DATUM[\"Carthage_Paris\",SPH"); add_srs_wkt (p, 1, "EROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660212936269,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-263,6,431,0,0,0,0"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6816\"]],PRIMEM[\"Paris\",2.33722"); add_srs_wkt (p, 4, "917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\",0.015707"); add_srs_wkt (p, 5, "96326794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 6, "SG\",\"4816\"]]"); p = add_epsg_def (filter, first, last, 4817, "epsg", 4817, "NGO 1948 (Oslo)"); add_proj4text (p, 0, "+proj=longlat +a=6377492.018 +b=6356173.508712696 +towgs"); add_proj4text (p, 1, "84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +no_def"); add_proj4text (p, 2, "s"); add_srs_wkt (p, 0, "GEOGCS[\"NGO 1948 (Oslo)\",DATUM[\"NGO_1948_Oslo\",SPHER"); add_srs_wkt (p, 1, "OID[\"Bessel Modified\",6377492.018,299.1528128,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7005\"]],TOWGS84[278.3,93,474.5,7.889,0.05,"); add_srs_wkt (p, 3, "-6.61,6.21],AUTHORITY[\"EPSG\",\"6817\"]],PRIMEM[\"Oslo\""); add_srs_wkt (p, 4, ",10.72291666666667,AUTHORITY[\"EPSG\",\"8913\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4817\"]]"); p = add_epsg_def (filter, first, last, 4818, "epsg", 4818, "S-JTSK (Ferro)"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +towgs84=589,76,480,0,0,0,0 "); add_proj4text (p, 1, "+pm=ferro +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"S-JTSK (Ferro)\",DATUM[\"System_Jednotne_Trigon"); add_srs_wkt (p, 1, "ometricke_Site_Katastralni_Ferro\",SPHEROID[\"Bessel 184"); add_srs_wkt (p, 2, "1\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]"); add_srs_wkt (p, 3, "],TOWGS84[589,76,480,0,0,0,0],AUTHORITY[\"EPSG\",\"6818\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Ferro\",-17.66666666666667,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8909\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4818\"]]"); p = add_epsg_def (filter, first, last, 4819, "epsg", 4819, "Nord Sahara 1959 (Paris)"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=-186,-93,310,0,0,0,"); add_proj4text (p, 1, "0 +pm=paris +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Nord Sahara 1959 (Paris)\",DATUM[\"Nord_Sahara_"); add_srs_wkt (p, 1, "1959_Paris\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145,"); add_srs_wkt (p, 2, "293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-186,-93,3"); add_srs_wkt (p, 3, "10,0,0,0,0],AUTHORITY[\"EPSG\",\"6819\"]],PRIMEM[\"Paris"); add_srs_wkt (p, 4, "\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\""); add_srs_wkt (p, 5, ",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHO"); add_srs_wkt (p, 6, "RITY[\"EPSG\",\"4819\"]]"); p = add_epsg_def (filter, first, last, 4820, "epsg", 4820, "Segara (Jakarta)"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +towgs84=-403,684,41,0,0,0,0"); add_proj4text (p, 1, " +pm=jakarta +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Segara (Jakarta)\",DATUM[\"Gunung_Segara_Jakart"); add_srs_wkt (p, 1, "a\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7004\"]],TOWGS84[-403,684,41,0,0,0,0],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"6820\"]],PRIMEM[\"Jakarta\",106.807"); add_srs_wkt (p, 4, "7194444444,AUTHORITY[\"EPSG\",\"8908\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4820\"]]"); p = add_epsg_def (filter, first, last, 4821, "epsg", 4821, "Voirol 1879 (Paris)"); add_proj4text (p, 0, "+proj=longlat +a=6378249.2 +b=6356515 +pm=paris +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Voirol 1879 (Paris)\",DATUM[\"Voirol_1879_Paris"); add_srs_wkt (p, 1, "\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.46602129"); add_srs_wkt (p, 2, "36269,AUTHORITY[\"EPSG\",\"7011\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "6821\"]],PRIMEM[\"Paris\",2.33722917,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"8903\"]],UNIT[\"grad\",0.01570796326794897,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9105\"]],AUTHORITY[\"EPSG\",\"4821\"]]"); p = add_epsg_def (filter, first, last, 4822, "epsg", 4822, "New Beijing / 3-degree Gauss-Kruger CM 135E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger CM 135E\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 7, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 8, "ian\",135],PARAMETER[\"scale_factor\",1],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 10, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",N"); add_srs_wkt (p, 11, "ORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4822\"]]"); p = add_epsg_def (filter, first, last, 4823, "epsg", 4823, "Sao Tome"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Sao Tome\",DATUM[\"Sao_Tome\",SPHEROID[\"Intern"); add_srs_wkt (p, 1, "ational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]]"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"1044\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 4, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"4823\"]]"); p = add_epsg_def (filter, first, last, 4824, "epsg", 4824, "Principe"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Principe\",DATUM[\"Principe\",SPHEROID[\"Intern"); add_srs_wkt (p, 1, "ational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]]"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"1046\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 4, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"4824\"]]"); p = add_epsg_def (filter, first, last, 4826, "epsg", 4826, "WGS 84 / Cape Verde National"); add_proj4text (p, 0, "+proj=lcc +lat_1=15 +lat_2=16.66666666666667 +lat_0=15.8"); add_proj4text (p, 1, "3333333333333 +lon_0=-24 +x_0=161587.83 +y_0=128511.202 "); add_proj4text (p, 2, "+datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / Cape Verde National\",GEOGCS[\"WGS 84\""); add_srs_wkt (p, 1, ",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2572"); add_srs_wkt (p, 2, "23563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 4, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION["); add_srs_wkt (p, 6, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 7, "rallel_1\",15],PARAMETER[\"standard_parallel_2\",16.6666"); add_srs_wkt (p, 8, "6666666667],PARAMETER[\"latitude_of_origin\",15.83333333"); add_srs_wkt (p, 9, "333333],PARAMETER[\"central_meridian\",-24],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",161587.83],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "128511.202],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"M\",EAST],AXIS[\"P\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"4826\"]]"); p = add_epsg_def (filter, first, last, 4839, "epsg", 4839, "ETRS89 / LCC Germany (N-E)"); add_proj4text (p, 0, "+proj=lcc +lat_1=48.66666666666666 +lat_2=53.66666666666"); add_proj4text (p, 1, "666 +lat_0=51 +lon_0=10.5 +x_0=0 +y_0=0 +ellps=GRS80 +to"); add_proj4text (p, 2, "wgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / LCC Germany (N-E)\",GEOGCS[\"ETRS89\","); add_srs_wkt (p, 1, "DATUM[\"European_Terrestrial_Reference_System_1989\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 8, "_parallel_1\",48.66666666666666],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_2\",53.66666666666666],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 10, "igin\",51],PARAMETER[\"central_meridian\",10.5],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_easting\",0],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 12, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Nor"); add_srs_wkt (p, 13, "thing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"4839\"]]"); p = add_epsg_def (filter, first, last, 4855, "epsg", 4855, "ETRS89 / NTM zone 5 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=5.5 +k=1 +x_0=100000 +y_0=10"); add_proj4text (p, 1, "00000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 5 (deprecated)\",GEOGCS[\"ETR"); add_srs_wkt (p, 1, "S89\",DATUM[\"European_Terrestrial_Reference_System_1989"); add_srs_wkt (p, 2, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",5.5],PARAME"); add_srs_wkt (p, 9, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",1000"); add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4855\"]]"); p = add_epsg_def (filter, first, last, 4856, "epsg", 4856, "ETRS89 / NTM zone 6 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=6.5 +k=1 +x_0=100000 +y_0=10"); add_proj4text (p, 1, "00000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 6 (deprecated)\",GEOGCS[\"ETR"); add_srs_wkt (p, 1, "S89\",DATUM[\"European_Terrestrial_Reference_System_1989"); add_srs_wkt (p, 2, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",6.5],PARAME"); add_srs_wkt (p, 9, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",1000"); add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4856\"]]"); p = add_epsg_def (filter, first, last, 4857, "epsg", 4857, "ETRS89 / NTM zone 7 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=7.5 +k=1 +x_0=100000 +y_0=10"); add_proj4text (p, 1, "00000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 7 (deprecated)\",GEOGCS[\"ETR"); add_srs_wkt (p, 1, "S89\",DATUM[\"European_Terrestrial_Reference_System_1989"); add_srs_wkt (p, 2, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",7.5],PARAME"); add_srs_wkt (p, 9, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",1000"); add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4857\"]]"); p = add_epsg_def (filter, first, last, 4858, "epsg", 4858, "ETRS89 / NTM zone 8 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=8.5 +k=1 +x_0=100000 +y_0=10"); add_proj4text (p, 1, "00000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 8 (deprecated)\",GEOGCS[\"ETR"); add_srs_wkt (p, 1, "S89\",DATUM[\"European_Terrestrial_Reference_System_1989"); add_srs_wkt (p, 2, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",8.5],PARAME"); add_srs_wkt (p, 9, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",1000"); add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4858\"]]"); p = add_epsg_def (filter, first, last, 4859, "epsg", 4859, "ETRS89 / NTM zone 9 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=9.5 +k=1 +x_0=100000 +y_0=10"); add_proj4text (p, 1, "00000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 9 (deprecated)\",GEOGCS[\"ETR"); add_srs_wkt (p, 1, "S89\",DATUM[\"European_Terrestrial_Reference_System_1989"); add_srs_wkt (p, 2, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",9.5],PARAME"); add_srs_wkt (p, 9, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",1000"); add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4859\"]]"); p = add_epsg_def (filter, first, last, 4860, "epsg", 4860, "ETRS89 / NTM zone 10 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=10.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 10 (deprecated)\",GEOGCS[\"ET"); add_srs_wkt (p, 1, "RS89\",DATUM[\"European_Terrestrial_Reference_System_198"); add_srs_wkt (p, 2, "9\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",10.5],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",100"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4860\"]]"); p = add_epsg_def (filter, first, last, 4861, "epsg", 4861, "ETRS89 / NTM zone 11 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=11.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 11 (deprecated)\",GEOGCS[\"ET"); add_srs_wkt (p, 1, "RS89\",DATUM[\"European_Terrestrial_Reference_System_198"); add_srs_wkt (p, 2, "9\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",11.5],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",100"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4861\"]]"); p = add_epsg_def (filter, first, last, 4862, "epsg", 4862, "ETRS89 / NTM zone 12 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=12.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 12 (deprecated)\",GEOGCS[\"ET"); add_srs_wkt (p, 1, "RS89\",DATUM[\"European_Terrestrial_Reference_System_198"); add_srs_wkt (p, 2, "9\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",12.5],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",100"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4862\"]]"); p = add_epsg_def (filter, first, last, 4863, "epsg", 4863, "ETRS89 / NTM zone 13 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=13.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 13 (deprecated)\",GEOGCS[\"ET"); add_srs_wkt (p, 1, "RS89\",DATUM[\"European_Terrestrial_Reference_System_198"); add_srs_wkt (p, 2, "9\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",13.5],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",100"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4863\"]]"); p = add_epsg_def (filter, first, last, 4864, "epsg", 4864, "ETRS89 / NTM zone 14 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=14.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 14 (deprecated)\",GEOGCS[\"ET"); add_srs_wkt (p, 1, "RS89\",DATUM[\"European_Terrestrial_Reference_System_198"); add_srs_wkt (p, 2, "9\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",14.5],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",100"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4864\"]]"); p = add_epsg_def (filter, first, last, 4865, "epsg", 4865, "ETRS89 / NTM zone 15 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 15 (deprecated)\",GEOGCS[\"ET"); add_srs_wkt (p, 1, "RS89\",DATUM[\"European_Terrestrial_Reference_System_198"); add_srs_wkt (p, 2, "9\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",15.5],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",100"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4865\"]]"); p = add_epsg_def (filter, first, last, 4866, "epsg", 4866, "ETRS89 / NTM zone 16 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=16.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 16 (deprecated)\",GEOGCS[\"ET"); add_srs_wkt (p, 1, "RS89\",DATUM[\"European_Terrestrial_Reference_System_198"); add_srs_wkt (p, 2, "9\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",16.5],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",100"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4866\"]]"); p = add_epsg_def (filter, first, last, 4867, "epsg", 4867, "ETRS89 / NTM zone 17 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=17.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 17 (deprecated)\",GEOGCS[\"ET"); add_srs_wkt (p, 1, "RS89\",DATUM[\"European_Terrestrial_Reference_System_198"); add_srs_wkt (p, 2, "9\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",17.5],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",100"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4867\"]]"); p = add_epsg_def (filter, first, last, 4868, "epsg", 4868, "ETRS89 / NTM zone 18 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=18.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 18 (deprecated)\",GEOGCS[\"ET"); add_srs_wkt (p, 1, "RS89\",DATUM[\"European_Terrestrial_Reference_System_198"); add_srs_wkt (p, 2, "9\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",18.5],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",100"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4868\"]]"); p = add_epsg_def (filter, first, last, 4869, "epsg", 4869, "ETRS89 / NTM zone 19 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=19.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 19 (deprecated)\",GEOGCS[\"ET"); add_srs_wkt (p, 1, "RS89\",DATUM[\"European_Terrestrial_Reference_System_198"); add_srs_wkt (p, 2, "9\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",19.5],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",100"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4869\"]]"); p = add_epsg_def (filter, first, last, 4870, "epsg", 4870, "ETRS89 / NTM zone 20 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=20.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 20 (deprecated)\",GEOGCS[\"ET"); add_srs_wkt (p, 1, "RS89\",DATUM[\"European_Terrestrial_Reference_System_198"); add_srs_wkt (p, 2, "9\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",20.5],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",100"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4870\"]]"); p = add_epsg_def (filter, first, last, 4871, "epsg", 4871, "ETRS89 / NTM zone 21 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 21 (deprecated)\",GEOGCS[\"ET"); add_srs_wkt (p, 1, "RS89\",DATUM[\"European_Terrestrial_Reference_System_198"); add_srs_wkt (p, 2, "9\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",21.5],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",100"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4871\"]]"); p = add_epsg_def (filter, first, last, 4872, "epsg", 4872, "ETRS89 / NTM zone 22 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=22.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 22 (deprecated)\",GEOGCS[\"ET"); add_srs_wkt (p, 1, "RS89\",DATUM[\"European_Terrestrial_Reference_System_198"); add_srs_wkt (p, 2, "9\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",22.5],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",100"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4872\"]]"); p = add_epsg_def (filter, first, last, 4873, "epsg", 4873, "ETRS89 / NTM zone 23 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=23.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 23 (deprecated)\",GEOGCS[\"ET"); add_srs_wkt (p, 1, "RS89\",DATUM[\"European_Terrestrial_Reference_System_198"); add_srs_wkt (p, 2, "9\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",23.5],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",100"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4873\"]]"); p = add_epsg_def (filter, first, last, 4874, "epsg", 4874, "ETRS89 / NTM zone 24 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=24.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 24 (deprecated)\",GEOGCS[\"ET"); add_srs_wkt (p, 1, "RS89\",DATUM[\"European_Terrestrial_Reference_System_198"); add_srs_wkt (p, 2, "9\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",24.5],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",100"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4874\"]]"); p = add_epsg_def (filter, first, last, 4875, "epsg", 4875, "ETRS89 / NTM zone 25 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=25.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 25 (deprecated)\",GEOGCS[\"ET"); add_srs_wkt (p, 1, "RS89\",DATUM[\"European_Terrestrial_Reference_System_198"); add_srs_wkt (p, 2, "9\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",25.5],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",100"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4875\"]]"); p = add_epsg_def (filter, first, last, 4876, "epsg", 4876, "ETRS89 / NTM zone 26 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=26.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 26 (deprecated)\",GEOGCS[\"ET"); add_srs_wkt (p, 1, "RS89\",DATUM[\"European_Terrestrial_Reference_System_198"); add_srs_wkt (p, 2, "9\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",26.5],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",100"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4876\"]]"); p = add_epsg_def (filter, first, last, 4877, "epsg", 4877, "ETRS89 / NTM zone 27 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=27.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 27 (deprecated)\",GEOGCS[\"ET"); add_srs_wkt (p, 1, "RS89\",DATUM[\"European_Terrestrial_Reference_System_198"); add_srs_wkt (p, 2, "9\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",27.5],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",100"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4877\"]]"); p = add_epsg_def (filter, first, last, 4878, "epsg", 4878, "ETRS89 / NTM zone 28 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=28.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 28 (deprecated)\",GEOGCS[\"ET"); add_srs_wkt (p, 1, "RS89\",DATUM[\"European_Terrestrial_Reference_System_198"); add_srs_wkt (p, 2, "9\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",28.5],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",100"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4878\"]]"); p = add_epsg_def (filter, first, last, 4879, "epsg", 4879, "ETRS89 / NTM zone 29 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=29.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 29 (deprecated)\",GEOGCS[\"ET"); add_srs_wkt (p, 1, "RS89\",DATUM[\"European_Terrestrial_Reference_System_198"); add_srs_wkt (p, 2, "9\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",29.5],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",100"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4879\"]]"); p = add_epsg_def (filter, first, last, 4880, "epsg", 4880, "ETRS89 / NTM zone 30 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=30.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 30 (deprecated)\",GEOGCS[\"ET"); add_srs_wkt (p, 1, "RS89\",DATUM[\"European_Terrestrial_Reference_System_198"); add_srs_wkt (p, 2, "9\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",30.5],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",100"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4880\"]]"); p = add_epsg_def (filter, first, last, 4901, "epsg", 4901, "ATF (Paris)"); add_proj4text (p, 0, "+proj=longlat +a=6376523 +b=6355862.933255573 +pm=2.3372"); add_proj4text (p, 1, "08333333333 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"ATF (Paris)\",DATUM[\"Ancienne_Triangulation_Fr"); add_srs_wkt (p, 1, "ancaise_Paris\",SPHEROID[\"Plessis 1817\",6376523,308.64"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"7027\"]],AUTHORITY[\"EPSG\",\"6901"); add_srs_wkt (p, 3, "\"]],PRIMEM[\"Paris RGS\",2.337208333333333,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"8914\"]],UNIT[\"grad\",0.01570796326794897,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"9105\"]],AUTHORITY[\"EPSG\",\"4901\"]]"); p = add_epsg_def (filter, first, last, 4902, "epsg", 4902, "NDG (Paris)"); add_proj4text (p, 0, "+proj=longlat +a=6376523 +b=6355862.933255573 +pm=paris "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"NDG (Paris)\",DATUM[\"Nord_de_Guerre_Paris\",SP"); add_srs_wkt (p, 1, "HEROID[\"Plessis 1817\",6376523,308.64,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 2, ",\"7027\"]],AUTHORITY[\"EPSG\",\"6902\"]],PRIMEM[\"Paris"); add_srs_wkt (p, 3, "\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\""); add_srs_wkt (p, 4, ",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"4902\"]]"); p = add_epsg_def (filter, first, last, 4903, "epsg", 4903, "Madrid 1870 (Madrid)"); add_proj4text (p, 0, "+proj=longlat +a=6378298.3 +b=6356657.142669562 +pm=madr"); add_proj4text (p, 1, "id +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Madrid 1870 (Madrid)\",DATUM[\"Madrid_1870_Madr"); add_srs_wkt (p, 1, "id\",SPHEROID[\"Struve 1860\",6378298.3,294.73,AUTHORITY"); add_srs_wkt (p, 2, "[\"EPSG\",\"7028\"]],AUTHORITY[\"EPSG\",\"6903\"]],PRIME"); add_srs_wkt (p, 3, "M[\"Madrid\",-3.687938888888889,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 4, "5\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4903\"]]"); p = add_epsg_def (filter, first, last, 4904, "epsg", 4904, "Lisbon 1890 (Lisbon)"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +towgs84=508.088,-191.042,56"); add_proj4text (p, 1, "5.223,0,0,0,0 +pm=lisbon +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Lisbon 1890 (Lisbon)\",DATUM[\"Lisbon_1890_Lisb"); add_srs_wkt (p, 1, "on\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AU"); add_srs_wkt (p, 2, "THORITY[\"EPSG\",\"7004\"]],TOWGS84[508.088,-191.042,565"); add_srs_wkt (p, 3, ".223,0,0,0,0],AUTHORITY[\"EPSG\",\"6904\"]],PRIMEM[\"Lis"); add_srs_wkt (p, 4, "bon\",-9.131906111111112,AUTHORITY[\"EPSG\",\"8902\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4904\"]]"); } #endif /* full EPSG initialization enabled/disabled */ libspatialite-4.1.1/src/srsinit/epsg_inlined_02.c0000664000175000017500000050235412163502133016662 00000000000000/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_02 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def (filter, first, last, 2209, "epsg", 2209, "ED50 / 3-degree Gauss-Kruger zone 12"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=36 +k=1 +x_0=12500000 +y_0=0"); add_proj4text (p, 1, " +ellps=intl +towgs84=-87,-98,-121,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / 3-degree Gauss-Kruger zone 12\",GEOGCS[\""); add_srs_wkt (p, 1, "ED50\",DATUM[\"European_Datum_1950\",SPHEROID[\"Internat"); add_srs_wkt (p, 2, "ional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],T"); add_srs_wkt (p, 3, "OWGS84[-87,-98,-121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4230\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, "ARAMETER[\"central_meridian\",36],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",1],PARAMETER[\"false_easting\",12500000],PARAMETER["); add_srs_wkt (p, 10, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"2209\"]]"); p = add_epsg_def (filter, first, last, 2210, "epsg", 2210, "ED50 / 3-degree Gauss-Kruger zone 13"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=13500000 +y_0=0"); add_proj4text (p, 1, " +ellps=intl +towgs84=-87,-98,-121,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / 3-degree Gauss-Kruger zone 13\",GEOGCS[\""); add_srs_wkt (p, 1, "ED50\",DATUM[\"European_Datum_1950\",SPHEROID[\"Internat"); add_srs_wkt (p, 2, "ional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],T"); add_srs_wkt (p, 3, "OWGS84[-87,-98,-121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4230\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, "ARAMETER[\"central_meridian\",39],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",1],PARAMETER[\"false_easting\",13500000],PARAMETER["); add_srs_wkt (p, 10, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"2210\"]]"); p = add_epsg_def (filter, first, last, 2211, "epsg", 2211, "ED50 / 3-degree Gauss-Kruger zone 14"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=42 +k=1 +x_0=14500000 +y_0=0"); add_proj4text (p, 1, " +ellps=intl +towgs84=-87,-98,-121,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / 3-degree Gauss-Kruger zone 14\",GEOGCS[\""); add_srs_wkt (p, 1, "ED50\",DATUM[\"European_Datum_1950\",SPHEROID[\"Internat"); add_srs_wkt (p, 2, "ional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],T"); add_srs_wkt (p, 3, "OWGS84[-87,-98,-121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4230\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, "ARAMETER[\"central_meridian\",42],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",1],PARAMETER[\"false_easting\",14500000],PARAMETER["); add_srs_wkt (p, 10, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"2211\"]]"); p = add_epsg_def (filter, first, last, 2212, "epsg", 2212, "ED50 / 3-degree Gauss-Kruger zone 15"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=15500000 +y_0=0"); add_proj4text (p, 1, " +ellps=intl +towgs84=-87,-98,-121,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / 3-degree Gauss-Kruger zone 15\",GEOGCS[\""); add_srs_wkt (p, 1, "ED50\",DATUM[\"European_Datum_1950\",SPHEROID[\"Internat"); add_srs_wkt (p, 2, "ional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],T"); add_srs_wkt (p, 3, "OWGS84[-87,-98,-121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4230\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, "ARAMETER[\"central_meridian\",45],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",1],PARAMETER[\"false_easting\",15500000],PARAMETER["); add_srs_wkt (p, 10, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"2212\"]]"); p = add_epsg_def (filter, first, last, 2213, "epsg", 2213, "ETRS89 / TM 30 NE"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=30 +k=0.9996 +x_0=500000 +y_"); add_proj4text (p, 1, "0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_def"); add_proj4text (p, 2, "s"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / TM 30 NE\",GEOGCS[\"ETRS89\",DATUM[\"E"); add_srs_wkt (p, 1, "uropean_Terrestrial_Reference_System_1989\",SPHEROID[\"G"); add_srs_wkt (p, 2, "RS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"701"); add_srs_wkt (p, 3, "9\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, "ARAMETER[\"central_meridian\",30],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"2213\"]]"); p = add_epsg_def (filter, first, last, 2214, "epsg", 2214, "Douala 1948 / AOF west (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=10.5 +k=0.999 +x_0=1000000 +"); add_proj4text (p, 1, "y_0=1000000 +ellps=intl +towgs84=-206.1,-174.7,-87.7,0,0"); add_proj4text (p, 2, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Douala 1948 / AOF west (deprecated)\",GEOGCS[\""); add_srs_wkt (p, 1, "Douala 1948\",DATUM[\"Douala_1948\",SPHEROID[\"Internati"); add_srs_wkt (p, 2, "onal 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TO"); add_srs_wkt (p, 3, "WGS84[-206.1,-174.7,-87.7,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6192\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4192\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",10.5],PARAMETER[\"sca"); add_srs_wkt (p, 9, "le_factor\",0.999],PARAMETER[\"false_easting\",1000000],"); add_srs_wkt (p, 10, "PARAMETER[\"false_northing\",1000000],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS"); add_srs_wkt (p, 12, "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2214\"]]"); p = add_epsg_def (filter, first, last, 2215, "epsg", 2215, "Manoca 1962 / UTM zone 32N"); add_proj4text (p, 0, "+proj=utm +zone=32 +a=6378249.2 +b=6356515 +towgs84=-70."); add_proj4text (p, 1, "9,-151.8,-41.4,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Manoca 1962 / UTM zone 32N\",GEOGCS[\"Manoca 19"); add_srs_wkt (p, 1, "62\",DATUM[\"Manoca_1962\",SPHEROID[\"Clarke 1880 (IGN)\""); add_srs_wkt (p, 2, ",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\""); add_srs_wkt (p, 3, "]],TOWGS84[-70.9,-151.8,-41.4,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6193\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4193\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",0],PARAMETER[\"central_meridian\",9],PARAMETER[\"sc"); add_srs_wkt (p, 9, "ale_factor\",0.9996],PARAMETER[\"false_easting\",500000]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 11, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 12, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"2215\"]]"); p = add_epsg_def (filter, first, last, 2216, "epsg", 2216, "Qornoq 1927 / UTM zone 22N"); add_proj4text (p, 0, "+proj=utm +zone=22 +ellps=intl +towgs84=164,138,-189,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Qornoq 1927 / UTM zone 22N\",GEOGCS[\"Qornoq 19"); add_srs_wkt (p, 1, "27\",DATUM[\"Qornoq_1927\",SPHEROID[\"International 1924"); add_srs_wkt (p, 2, "\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[164"); add_srs_wkt (p, 3, ",138,-189,0,0,0,0],AUTHORITY[\"EPSG\",\"6194\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4194\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 7, "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, "central_meridian\",-51],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 9, "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 10, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 11, "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"2216\"]]"); p = add_epsg_def (filter, first, last, 2217, "epsg", 2217, "Qornoq 1927 / UTM zone 23N"); add_proj4text (p, 0, "+proj=utm +zone=23 +ellps=intl +towgs84=164,138,-189,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Qornoq 1927 / UTM zone 23N\",GEOGCS[\"Qornoq 19"); add_srs_wkt (p, 1, "27\",DATUM[\"Qornoq_1927\",SPHEROID[\"International 1924"); add_srs_wkt (p, 2, "\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[164"); add_srs_wkt (p, 3, ",138,-189,0,0,0,0],AUTHORITY[\"EPSG\",\"6194\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4194\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 7, "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, "central_meridian\",-45],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 9, "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 10, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 11, "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"2217\"]]"); p = add_epsg_def (filter, first, last, 2219, "epsg", 2219, "ATS77 / UTM zone 19N"); add_proj4text (p, 0, "+proj=utm +zone=19 +a=6378135 +b=6356750.304921594 +unit"); add_proj4text (p, 1, "s=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ATS77 / UTM zone 19N\",GEOGCS[\"ATS77\",DATUM[\""); add_srs_wkt (p, 1, "Average_Terrestrial_System_1977\",SPHEROID[\"Average Ter"); add_srs_wkt (p, 2, "restrial System 1977\",6378135,298.257,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7041\"]],AUTHORITY[\"EPSG\",\"6122\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4122\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-69],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"2219\"]]"); p = add_epsg_def (filter, first, last, 2220, "epsg", 2220, "ATS77 / UTM zone 20N"); add_proj4text (p, 0, "+proj=utm +zone=20 +a=6378135 +b=6356750.304921594 +unit"); add_proj4text (p, 1, "s=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ATS77 / UTM zone 20N\",GEOGCS[\"ATS77\",DATUM[\""); add_srs_wkt (p, 1, "Average_Terrestrial_System_1977\",SPHEROID[\"Average Ter"); add_srs_wkt (p, 2, "restrial System 1977\",6378135,298.257,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7041\"]],AUTHORITY[\"EPSG\",\"6122\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 6, "Y[\"EPSG\",\"4122\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 7, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",-63],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 11, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"2220\"]]"); p = add_epsg_def (filter, first, last, 2222, "epsg", 2222, "NAD83 / Arizona East (ft)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=213360 +y_0=0 +datum=NAD83 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Arizona East (ft)\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 7, "cator\"],PARAMETER[\"latitude_of_origin\",31],PARAMETER["); add_srs_wkt (p, 8, "\"central_meridian\",-110.1666666666667],PARAMETER[\"sca"); add_srs_wkt (p, 9, "le_factor\",0.9999],PARAMETER[\"false_easting\",700000],"); add_srs_wkt (p, 10, "PARAMETER[\"false_northing\",0],UNIT[\"foot\",0.3048,AUT"); add_srs_wkt (p, 11, "HORITY[\"EPSG\",\"9002\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); add_srs_wkt (p, 12, "ORTH],AUTHORITY[\"EPSG\",\"2222\"]]"); p = add_epsg_def (filter, first, last, 2223, "epsg", 2223, "NAD83 / Arizona Central (ft)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=213360 +y_0=0 +datum=NAD83 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Arizona Central (ft)\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, "Mercator\"],PARAMETER[\"latitude_of_origin\",31],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-111.9166666666667],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9999],PARAMETER[\"false_easting\",70000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"foot\",0.3048,"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"2223\"]]"); p = add_epsg_def (filter, first, last, 2224, "epsg", 2224, "NAD83 / Arizona West (ft)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0"); add_proj4text (p, 1, "=213360 +y_0=0 +datum=NAD83 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Arizona West (ft)\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 7, "cator\"],PARAMETER[\"latitude_of_origin\",31],PARAMETER["); add_srs_wkt (p, 8, "\"central_meridian\",-113.75],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.999933333],PARAMETER[\"false_easting\",700000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",0],UNIT[\"foot\",0.3048,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9002\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"2224\"]]"); p = add_epsg_def (filter, first, last, 2225, "epsg", 2225, "NAD83 / California zone 1 (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.3"); add_proj4text (p, 1, "3333333333334 +lon_0=-122 +x_0=2000000.0001016 +y_0=5000"); add_proj4text (p, 2, "00.0001016001 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / California zone 1 (ftUS)\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS "); add_srs_wkt (p, 2, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert"); add_srs_wkt (p, 7, "_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 8, ",41.66666666666666],PARAMETER[\"standard_parallel_2\",40"); add_srs_wkt (p, 9, "],PARAMETER[\"latitude_of_origin\",39.33333333333334],PA"); add_srs_wkt (p, 10, "RAMETER[\"central_meridian\",-122],PARAMETER[\"false_eas"); add_srs_wkt (p, 11, "ting\",6561666.667],PARAMETER[\"false_northing\",1640416"); add_srs_wkt (p, 12, ".667],UNIT[\"US survey foot\",0.3048006096012192,AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 14, "],AUTHORITY[\"EPSG\",\"2225\"]]"); p = add_epsg_def (filter, first, last, 2226, "epsg", 2226, "NAD83 / California zone 2 (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333"); add_proj4text (p, 1, "334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000.00"); add_proj4text (p, 2, "01016 +y_0=500000.0001016001 +datum=NAD83 +units=us-ft +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / California zone 2 (ftUS)\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS "); add_srs_wkt (p, 2, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert"); add_srs_wkt (p, 7, "_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 8, ",39.83333333333334],PARAMETER[\"standard_parallel_2\",38"); add_srs_wkt (p, 9, ".33333333333334],PARAMETER[\"latitude_of_origin\",37.666"); add_srs_wkt (p, 10, "66666666666],PARAMETER[\"central_meridian\",-122],PARAME"); add_srs_wkt (p, 11, "TER[\"false_easting\",6561666.667],PARAMETER[\"false_nor"); add_srs_wkt (p, 12, "thing\",1640416.667],UNIT[\"US survey foot\",0.304800609"); add_srs_wkt (p, 13, "6012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],A"); add_srs_wkt (p, 14, "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2226\"]]"); p = add_epsg_def (filter, first, last, 2227, "epsg", 2227, "NAD83 / California zone 3 (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666"); add_proj4text (p, 1, "667 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000.0001016 +y_0="); add_proj4text (p, 2, "500000.0001016001 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / California zone 3 (ftUS)\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS "); add_srs_wkt (p, 2, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert"); add_srs_wkt (p, 7, "_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 8, ",38.43333333333333],PARAMETER[\"standard_parallel_2\",37"); add_srs_wkt (p, 9, ".06666666666667],PARAMETER[\"latitude_of_origin\",36.5],"); add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",-120.5],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",6561666.667],PARAMETER[\"false_northing\",164"); add_srs_wkt (p, 12, "0416.667],UNIT[\"US survey foot\",0.3048006096012192,AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); add_srs_wkt (p, 14, "ORTH],AUTHORITY[\"EPSG\",\"2227\"]]"); p = add_epsg_def (filter, first, last, 2228, "epsg", 2228, "NAD83 / California zone 4 (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.3333333333333"); add_proj4text (p, 1, "4 +lon_0=-119 +x_0=2000000.0001016 +y_0=500000.000101600"); add_proj4text (p, 2, "1 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / California zone 4 (ftUS)\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS "); add_srs_wkt (p, 2, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert"); add_srs_wkt (p, 7, "_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 8, ",37.25],PARAMETER[\"standard_parallel_2\",36],PARAMETER["); add_srs_wkt (p, 9, "\"latitude_of_origin\",35.33333333333334],PARAMETER[\"ce"); add_srs_wkt (p, 10, "ntral_meridian\",-119],PARAMETER[\"false_easting\",65616"); add_srs_wkt (p, 11, "66.667],PARAMETER[\"false_northing\",1640416.667],UNIT[\""); add_srs_wkt (p, 12, "US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"2228\"]]"); p = add_epsg_def (filter, first, last, 2229, "epsg", 2229, "NAD83 / California zone 5 (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333"); add_proj4text (p, 1, "333 +lat_0=33.5 +lon_0=-118 +x_0=2000000.0001016 +y_0=50"); add_proj4text (p, 2, "0000.0001016001 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / California zone 5 (ftUS)\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS "); add_srs_wkt (p, 2, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert"); add_srs_wkt (p, 7, "_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 8, ",35.46666666666667],PARAMETER[\"standard_parallel_2\",34"); add_srs_wkt (p, 9, ".03333333333333],PARAMETER[\"latitude_of_origin\",33.5],"); add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",-118],PARAMETER[\"false_e"); add_srs_wkt (p, 11, "asting\",6561666.667],PARAMETER[\"false_northing\",16404"); add_srs_wkt (p, 12, "16.667],UNIT[\"US survey foot\",0.3048006096012192,AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); add_srs_wkt (p, 14, "TH],AUTHORITY[\"EPSG\",\"2229\"]]"); p = add_epsg_def (filter, first, last, 2230, "epsg", 2230, "NAD83 / California zone 6 (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333"); add_proj4text (p, 1, "333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000"); add_proj4text (p, 2, ".0001016 +y_0=500000.0001016001 +datum=NAD83 +units=us-f"); add_proj4text (p, 3, "t +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / California zone 6 (ftUS)\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS "); add_srs_wkt (p, 2, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert"); add_srs_wkt (p, 7, "_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 8, ",33.88333333333333],PARAMETER[\"standard_parallel_2\",32"); add_srs_wkt (p, 9, ".78333333333333],PARAMETER[\"latitude_of_origin\",32.166"); add_srs_wkt (p, 10, "66666666666],PARAMETER[\"central_meridian\",-116.25],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_easting\",6561666.667],PARAMETER[\"false_"); add_srs_wkt (p, 12, "northing\",1640416.667],UNIT[\"US survey foot\",0.304800"); add_srs_wkt (p, 13, "6096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST"); add_srs_wkt (p, 14, "],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2230\"]]"); p = add_epsg_def (filter, first, last, 2231, "epsg", 2231, "NAD83 / Colorado North (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.78333333333333 +lat_2=39.71666666666"); add_proj4text (p, 1, "667 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8"); add_proj4text (p, 2, "288036576 +y_0=304800.6096012192 +datum=NAD83 +units=us-"); add_proj4text (p, 3, "ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Colorado North (ftUS)\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 7, "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",40"); add_srs_wkt (p, 8, ".78333333333333],PARAMETER[\"standard_parallel_2\",39.71"); add_srs_wkt (p, 9, "666666666667],PARAMETER[\"latitude_of_origin\",39.333333"); add_srs_wkt (p, 10, "33333334],PARAMETER[\"central_meridian\",-105.5],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_easting\",3000000],PARAMETER[\"false_northing"); add_srs_wkt (p, 12, "\",1000000],UNIT[\"US survey foot\",0.3048006096012192,A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 14, ",NORTH],AUTHORITY[\"EPSG\",\"2231\"]]"); p = add_epsg_def (filter, first, last, 2232, "epsg", 2232, "NAD83 / Colorado Central (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.8333333333"); add_proj4text (p, 1, "3334 +lon_0=-105.5 +x_0=914401.8288036576 +y_0=304800.60"); add_proj4text (p, 2, "96012192 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Colorado Central (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_"); add_srs_wkt (p, 7, "Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 8, ",39.75],PARAMETER[\"standard_parallel_2\",38.45],PARAMET"); add_srs_wkt (p, 9, "ER[\"latitude_of_origin\",37.83333333333334],PARAMETER[\""); add_srs_wkt (p, 10, "central_meridian\",-105.5],PARAMETER[\"false_easting\",3"); add_srs_wkt (p, 11, "000000],PARAMETER[\"false_northing\",1000000],UNIT[\"US "); add_srs_wkt (p, 12, "survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "03\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP"); add_srs_wkt (p, 14, "SG\",\"2232\"]]"); p = add_epsg_def (filter, first, last, 2233, "epsg", 2233, "NAD83 / Colorado South (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333"); add_proj4text (p, 1, "333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8"); add_proj4text (p, 2, "288036576 +y_0=304800.6096012192 +datum=NAD83 +units=us-"); add_proj4text (p, 3, "ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Colorado South (ftUS)\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 7, "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",38"); add_srs_wkt (p, 8, ".43333333333333],PARAMETER[\"standard_parallel_2\",37.23"); add_srs_wkt (p, 9, "333333333333],PARAMETER[\"latitude_of_origin\",36.666666"); add_srs_wkt (p, 10, "66666666],PARAMETER[\"central_meridian\",-105.5],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_easting\",3000000],PARAMETER[\"false_northing"); add_srs_wkt (p, 12, "\",1000000],UNIT[\"US survey foot\",0.3048006096012192,A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 14, ",NORTH],AUTHORITY[\"EPSG\",\"2233\"]]"); p = add_epsg_def (filter, first, last, 2234, "epsg", 2234, "NAD83 / Connecticut (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40"); add_proj4text (p, 1, ".83333333333334 +lon_0=-72.75 +x_0=304800.6096012192 +y_"); add_proj4text (p, 2, "0=152400.3048006096 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Connecticut (ftUS)\",GEOGCS[\"NAD83\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 7, "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",41.8"); add_srs_wkt (p, 8, "6666666666667],PARAMETER[\"standard_parallel_2\",41.2],P"); add_srs_wkt (p, 9, "ARAMETER[\"latitude_of_origin\",40.83333333333334],PARAM"); add_srs_wkt (p, 10, "ETER[\"central_meridian\",-72.75],PARAMETER[\"false_east"); add_srs_wkt (p, 11, "ing\",1000000],PARAMETER[\"false_northing\",500000],UNIT"); add_srs_wkt (p, 12, "[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 14, "[\"EPSG\",\"2234\"]]"); p = add_epsg_def (filter, first, last, 2235, "epsg", 2235, "NAD83 / Delaware (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999"); add_proj4text (p, 1, "995 +x_0=200000.0001016002 +y_0=0 +datum=NAD83 +units=us"); add_proj4text (p, 2, "-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Delaware (ftUS)\",GEOGCS[\"NAD83\",DATU"); add_srs_wkt (p, 1, "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63"); add_srs_wkt (p, 2, "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8"); add_srs_wkt (p, 3, "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor\"],PARAMETER[\"latitude_of_origin\",38],PARAMETER[\""); add_srs_wkt (p, 8, "central_meridian\",-75.41666666666667],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",0.999995],PARAMETER[\"false_easting\",656166.6"); add_srs_wkt (p, 10, "67],PARAMETER[\"false_northing\",0],UNIT[\"US survey foo"); add_srs_wkt (p, 11, "t\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXI"); add_srs_wkt (p, 12, "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"223"); add_srs_wkt (p, 13, "5\"]]"); p = add_epsg_def (filter, first, last, 2236, "epsg", 2236, "NAD83 / Florida East (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999"); add_proj4text (p, 1, "941177 +x_0=200000.0001016002 +y_0=0 +datum=NAD83 +units"); add_proj4text (p, 2, "=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Florida East (ftUS)\",GEOGCS[\"NAD83\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, "rcator\"],PARAMETER[\"latitude_of_origin\",24.3333333333"); add_srs_wkt (p, 8, "3333],PARAMETER[\"central_meridian\",-81],PARAMETER[\"sc"); add_srs_wkt (p, 9, "ale_factor\",0.999941177],PARAMETER[\"false_easting\",65"); add_srs_wkt (p, 10, "6166.667],PARAMETER[\"false_northing\",0],UNIT[\"US surv"); add_srs_wkt (p, 11, "ey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\""); add_srs_wkt (p, 12, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"2236\"]]"); p = add_epsg_def (filter, first, last, 2237, "epsg", 2237, "NAD83 / Florida West (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999"); add_proj4text (p, 1, "941177 +x_0=200000.0001016002 +y_0=0 +datum=NAD83 +units"); add_proj4text (p, 2, "=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Florida West (ftUS)\",GEOGCS[\"NAD83\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, "rcator\"],PARAMETER[\"latitude_of_origin\",24.3333333333"); add_srs_wkt (p, 8, "3333],PARAMETER[\"central_meridian\",-82],PARAMETER[\"sc"); add_srs_wkt (p, 9, "ale_factor\",0.999941177],PARAMETER[\"false_easting\",65"); add_srs_wkt (p, 10, "6166.667],PARAMETER[\"false_northing\",0],UNIT[\"US surv"); add_srs_wkt (p, 11, "ey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\""); add_srs_wkt (p, 12, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"2237\"]]"); p = add_epsg_def (filter, first, last, 2238, "epsg", 2238, "NAD83 / Florida North (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=2"); add_proj4text (p, 1, "9 +lon_0=-84.5 +x_0=600000 +y_0=0 +datum=NAD83 +units=us"); add_proj4text (p, 2, "-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Florida North (ftUS)\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 7, "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",30"); add_srs_wkt (p, 8, ".75],PARAMETER[\"standard_parallel_2\",29.58333333333333"); add_srs_wkt (p, 9, "],PARAMETER[\"latitude_of_origin\",29],PARAMETER[\"centr"); add_srs_wkt (p, 10, "al_meridian\",-84.5],PARAMETER[\"false_easting\",1968500"); add_srs_wkt (p, 11, "],PARAMETER[\"false_northing\",0],UNIT[\"US survey foot\""); add_srs_wkt (p, 12, ",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\""); add_srs_wkt (p, 13, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2238\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def (filter, first, last, 2239, "epsg", 2239, "NAD83 / Georgia East (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=200000.0001016002 +y_0=0 +datum=NAD83 +units=us-f"); add_proj4text (p, 2, "t +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Georgia East (ftUS)\",GEOGCS[\"NAD83\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, "rcator\"],PARAMETER[\"latitude_of_origin\",30],PARAMETER"); add_srs_wkt (p, 8, "[\"central_meridian\",-82.16666666666667],PARAMETER[\"sc"); add_srs_wkt (p, 9, "ale_factor\",0.9999],PARAMETER[\"false_easting\",656166."); add_srs_wkt (p, 10, "667],PARAMETER[\"false_northing\",0],UNIT[\"US survey fo"); add_srs_wkt (p, 11, "ot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AX"); add_srs_wkt (p, 12, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"22"); add_srs_wkt (p, 13, "39\"]]"); p = add_epsg_def (filter, first, last, 2240, "epsg", 2240, "NAD83 / Georgia West (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=699999.9998983998 +y_0=0 +datum=NAD83 +units=us-f"); add_proj4text (p, 2, "t +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Georgia West (ftUS)\",GEOGCS[\"NAD83\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, "rcator\"],PARAMETER[\"latitude_of_origin\",30],PARAMETER"); add_srs_wkt (p, 8, "[\"central_meridian\",-84.16666666666667],PARAMETER[\"sc"); add_srs_wkt (p, 9, "ale_factor\",0.9999],PARAMETER[\"false_easting\",2296583"); add_srs_wkt (p, 10, ".333],PARAMETER[\"false_northing\",0],UNIT[\"US survey f"); add_srs_wkt (p, 11, "oot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],A"); add_srs_wkt (p, 12, "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2"); add_srs_wkt (p, 13, "240\"]]"); p = add_epsg_def (filter, first, last, 2241, "epsg", 2241, "NAD83 / Idaho East (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666"); add_proj4text (p, 1, "666667 +k=0.9999473679999999 +x_0=200000.0001016002 +y_0"); add_proj4text (p, 2, "=0 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Idaho East (ftUS)\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 7, "cator\"],PARAMETER[\"latitude_of_origin\",41.66666666666"); add_srs_wkt (p, 8, "666],PARAMETER[\"central_meridian\",-112.1666666666667],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.999947368],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_easting\",656166.667],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 11, "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 13, "ORITY[\"EPSG\",\"2241\"]]"); p = add_epsg_def (filter, first, last, 2242, "epsg", 2242, "NAD83 / Idaho Central (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.99"); add_proj4text (p, 1, "99473679999999 +x_0=500000.0001016001 +y_0=0 +datum=NAD8"); add_proj4text (p, 2, "3 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Idaho Central (ftUS)\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, "Mercator\"],PARAMETER[\"latitude_of_origin\",41.66666666"); add_srs_wkt (p, 8, "666666],PARAMETER[\"central_meridian\",-114],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.999947368],PARAMETER[\"false_easting\","); add_srs_wkt (p, 10, "1640416.667],PARAMETER[\"false_northing\",0],UNIT[\"US s"); add_srs_wkt (p, 11, "urvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, "3\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"2242\"]]"); p = add_epsg_def (filter, first, last, 2243, "epsg", 2243, "NAD83 / Idaho West (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0"); add_proj4text (p, 1, ".999933333 +x_0=800000.0001016001 +y_0=0 +datum=NAD83 +u"); add_proj4text (p, 2, "nits=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Idaho West (ftUS)\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 7, "cator\"],PARAMETER[\"latitude_of_origin\",41.66666666666"); add_srs_wkt (p, 8, "666],PARAMETER[\"central_meridian\",-115.75],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.999933333],PARAMETER[\"false_easting\","); add_srs_wkt (p, 10, "2624666.667],PARAMETER[\"false_northing\",0],UNIT[\"US s"); add_srs_wkt (p, 11, "urvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, "3\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"2243\"]]"); p = add_epsg_def (filter, first, last, 2244, "epsg", 2244, "NAD83 / Indiana East (ftUS) (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.9"); add_proj4text (p, 1, "99966667 +x_0=99999.99989839978 +y_0=249364.9987299975 +"); add_proj4text (p, 2, "datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Indiana East (ftUS) (deprecated)\",GEOG"); add_srs_wkt (p, 1, "CS[\"NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROI"); add_srs_wkt (p, 2, "D[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "269\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\""); add_srs_wkt (p, 7, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, "37.5],PARAMETER[\"central_meridian\",-85.66666666666667]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.999966667],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",328083.333],PARAMETER[\"false_northing\",81"); add_srs_wkt (p, 11, "8125],UNIT[\"US survey foot\",0.3048006096012192,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"2244\"]]"); p = add_epsg_def (filter, first, last, 2245, "epsg", 2245, "NAD83 / Indiana West (ftUS) (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.9"); add_proj4text (p, 1, "99966667 +x_0=900000 +y_0=249364.9987299975 +datum=NAD83"); add_proj4text (p, 2, " +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Indiana West (ftUS) (deprecated)\",GEOG"); add_srs_wkt (p, 1, "CS[\"NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROI"); add_srs_wkt (p, 2, "D[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "269\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\""); add_srs_wkt (p, 7, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, "37.5],PARAMETER[\"central_meridian\",-87.08333333333333]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.999966667],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",2952750],PARAMETER[\"false_northing\",81812"); add_srs_wkt (p, 11, "5],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"2245\"]]"); p = add_epsg_def (filter, first, last, 2246, "epsg", 2246, "NAD83 / Kentucky North (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666"); add_proj4text (p, 1, "667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000.0001016001 +y_"); add_proj4text (p, 2, "0=0 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Kentucky North (ftUS)\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 7, "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",37"); add_srs_wkt (p, 8, ".96666666666667],PARAMETER[\"standard_parallel_2\",38.96"); add_srs_wkt (p, 9, "666666666667],PARAMETER[\"latitude_of_origin\",37.5],PAR"); add_srs_wkt (p, 10, "AMETER[\"central_meridian\",-84.25],PARAMETER[\"false_ea"); add_srs_wkt (p, 11, "sting\",1640416.667],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 12, "T[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); add_srs_wkt (p, 14, "TY[\"EPSG\",\"2246\"]]"); p = add_epsg_def (filter, first, last, 2247, "epsg", 2247, "NAD83 / Kentucky South (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.93333333333333 +lat_2=36.73333333333"); add_proj4text (p, 1, "333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000.0"); add_proj4text (p, 2, "001016001 +y_0=500000.0001016001 +datum=NAD83 +units=us-"); add_proj4text (p, 3, "ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Kentucky South (ftUS)\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 7, "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",37"); add_srs_wkt (p, 8, ".93333333333333],PARAMETER[\"standard_parallel_2\",36.73"); add_srs_wkt (p, 9, "333333333333],PARAMETER[\"latitude_of_origin\",36.333333"); add_srs_wkt (p, 10, "33333334],PARAMETER[\"central_meridian\",-85.75],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_easting\",1640416.667],PARAMETER[\"false_nort"); add_srs_wkt (p, 12, "hing\",1640416.667],UNIT[\"US survey foot\",0.3048006096"); add_srs_wkt (p, 13, "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 14, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2247\"]]"); p = add_epsg_def (filter, first, last, 2248, "epsg", 2248, "NAD83 / Maryland (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.45 +lat_2=38.3 +lat_0=37.66666666666"); add_proj4text (p, 1, "666 +lon_0=-77 +x_0=399999.9998983998 +y_0=0 +datum=NAD8"); add_proj4text (p, 2, "3 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Maryland (ftUS)\",GEOGCS[\"NAD83\",DATU"); add_srs_wkt (p, 1, "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63"); add_srs_wkt (p, 2, "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8"); add_srs_wkt (p, 3, "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 7, "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",39.45],"); add_srs_wkt (p, 8, "PARAMETER[\"standard_parallel_2\",38.3],PARAMETER[\"lati"); add_srs_wkt (p, 9, "tude_of_origin\",37.66666666666666],PARAMETER[\"central_"); add_srs_wkt (p, 10, "meridian\",-77],PARAMETER[\"false_easting\",1312333.333]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_northing\",0],UNIT[\"US survey foot\""); add_srs_wkt (p, 12, ",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\""); add_srs_wkt (p, 13, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2248\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def (filter, first, last, 2249, "epsg", 2249, "NAD83 / Massachusetts Mainland (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=42.68333333333333 +lat_2=41.71666666666"); add_proj4text (p, 1, "667 +lat_0=41 +lon_0=-71.5 +x_0=200000.0001016002 +y_0=7"); add_proj4text (p, 2, "50000 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Massachusetts Mainland (ftUS)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\""); add_srs_wkt (p, 2, "GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "19\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 7, "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 8, "_1\",42.68333333333333],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",41.71666666666667],PARAMETER[\"latitude_of_origin\",41]"); add_srs_wkt (p, 10, ",PARAMETER[\"central_meridian\",-71.5],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",656166.667],PARAMETER[\"false_northing\",2460"); add_srs_wkt (p, 12, "625],UNIT[\"US survey foot\",0.3048006096012192,AUTHORIT"); add_srs_wkt (p, 13, "Y[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 14, ",AUTHORITY[\"EPSG\",\"2249\"]]"); p = add_epsg_def (filter, first, last, 2250, "epsg", 2250, "NAD83 / Massachusetts Island (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.48333333333333 +lat_2=41.28333333333"); add_proj4text (p, 1, "333 +lat_0=41 +lon_0=-70.5 +x_0=500000.0001016001 +y_0=0"); add_proj4text (p, 2, " +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Massachusetts Island (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"G"); add_srs_wkt (p, 2, "RS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"701"); add_srs_wkt (p, 3, "9\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 7, "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 8, "_1\",41.48333333333333],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",41.28333333333333],PARAMETER[\"latitude_of_origin\",41]"); add_srs_wkt (p, 10, ",PARAMETER[\"central_meridian\",-70.5],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",1640416.667],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 14, "ORITY[\"EPSG\",\"2250\"]]"); p = add_epsg_def (filter, first, last, 2251, "epsg", 2251, "NAD83 / Michigan North (ft)"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.08333333333334 +lat_2=45.48333333333"); add_proj4text (p, 1, "333 +lat_0=44.78333333333333 +lon_0=-87 +x_0=7999999.999"); add_proj4text (p, 2, "968001 +y_0=0 +datum=NAD83 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Michigan North (ft)\",GEOGCS[\"NAD83\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 7, "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",47.0"); add_srs_wkt (p, 8, "8333333333334],PARAMETER[\"standard_parallel_2\",45.4833"); add_srs_wkt (p, 9, "3333333333],PARAMETER[\"latitude_of_origin\",44.78333333"); add_srs_wkt (p, 10, "333333],PARAMETER[\"central_meridian\",-87],PARAMETER[\""); add_srs_wkt (p, 11, "false_easting\",26246719.16],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, ",0],UNIT[\"foot\",0.3048,AUTHORITY[\"EPSG\",\"9002\"]],A"); add_srs_wkt (p, 13, "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2"); add_srs_wkt (p, 14, "251\"]]"); p = add_epsg_def (filter, first, last, 2252, "epsg", 2252, "NAD83 / Michigan Central (ft)"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.7 +lat_2=44.18333333333333 +lat_0=43"); add_proj4text (p, 1, ".31666666666667 +lon_0=-84.36666666666666 +x_0=5999999.9"); add_proj4text (p, 2, "99976001 +y_0=0 +datum=NAD83 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Michigan Central (ft)\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 7, "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",45"); add_srs_wkt (p, 8, ".7],PARAMETER[\"standard_parallel_2\",44.18333333333333]"); add_srs_wkt (p, 9, ",PARAMETER[\"latitude_of_origin\",43.31666666666667],PAR"); add_srs_wkt (p, 10, "AMETER[\"central_meridian\",-84.36666666666666],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_easting\",19685039.37],PARAMETER[\"false_north"); add_srs_wkt (p, 12, "ing\",0],UNIT[\"foot\",0.3048,AUTHORITY[\"EPSG\",\"9002\""); add_srs_wkt (p, 13, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"2252\"]]"); p = add_epsg_def (filter, first, last, 2253, "epsg", 2253, "NAD83 / Michigan South (ft)"); add_proj4text (p, 0, "+proj=lcc +lat_1=43.66666666666666 +lat_2=42.1 +lat_0=41"); add_proj4text (p, 1, ".5 +lon_0=-84.36666666666666 +x_0=3999999.999984 +y_0=0 "); add_proj4text (p, 2, "+datum=NAD83 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Michigan South (ft)\",GEOGCS[\"NAD83\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 7, "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",43.6"); add_srs_wkt (p, 8, "6666666666666],PARAMETER[\"standard_parallel_2\",42.1],P"); add_srs_wkt (p, 9, "ARAMETER[\"latitude_of_origin\",41.5],PARAMETER[\"centra"); add_srs_wkt (p, 10, "l_meridian\",-84.36666666666666],PARAMETER[\"false_easti"); add_srs_wkt (p, 11, "ng\",13123359.58],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 12, "foot\",0.3048,AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\"X\",E"); add_srs_wkt (p, 13, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2253\"]]"); p = add_epsg_def (filter, first, last, 2254, "epsg", 2254, "NAD83 / Mississippi East (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.9"); add_proj4text (p, 1, "9995 +x_0=300000.0000000001 +y_0=0 +datum=NAD83 +units=u"); add_proj4text (p, 2, "s-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Mississippi East (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 7, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",29.5],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",-88.83333333333333],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",0.99995],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, ",984250.0000000002],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 11, "[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"2254\"]]"); p = add_epsg_def (filter, first, last, 2255, "epsg", 2255, "NAD83 / Mississippi West (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.9"); add_proj4text (p, 1, "9995 +x_0=699999.9998983998 +y_0=0 +datum=NAD83 +units=u"); add_proj4text (p, 2, "s-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Mississippi West (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 7, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",29.5],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",-90.33333333333333],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",0.99995],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, ",2296583.333],PARAMETER[\"false_northing\",0],UNIT[\"US "); add_srs_wkt (p, 11, "survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "03\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"2255\"]]"); p = add_epsg_def (filter, first, last, 2256, "epsg", 2256, "NAD83 / Montana (ft)"); add_proj4text (p, 0, "+proj=lcc +lat_1=49 +lat_2=45 +lat_0=44.25 +lon_0=-109.5"); add_proj4text (p, 1, " +x_0=599999.9999976 +y_0=0 +datum=NAD83 +units=ft +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Montana (ft)\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co"); add_srs_wkt (p, 7, "nic_2SP\"],PARAMETER[\"standard_parallel_1\",49],PARAMET"); add_srs_wkt (p, 8, "ER[\"standard_parallel_2\",45],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 9, "rigin\",44.25],PARAMETER[\"central_meridian\",-109.5],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_easting\",1968503.937],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",0],UNIT[\"foot\",0.3048,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9002\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"2256\"]]"); p = add_epsg_def (filter, first, last, 2257, "epsg", 2257, "NAD83 / New Mexico East (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999"); add_proj4text (p, 1, "909091 +x_0=165000 +y_0=0 +datum=NAD83 +units=us-ft +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / New Mexico East (ftUS)\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",31],PARAME"); add_srs_wkt (p, 8, "TER[\"central_meridian\",-104.3333333333333],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.999909091],PARAMETER[\"false_easting\","); add_srs_wkt (p, 10, "541337.5],PARAMETER[\"false_northing\",0],UNIT[\"US surv"); add_srs_wkt (p, 11, "ey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\""); add_srs_wkt (p, 12, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"2257\"]]"); p = add_epsg_def (filter, first, last, 2258, "epsg", 2258, "NAD83 / New Mexico Central (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=5000"); add_proj4text (p, 1, "00.0001016001 +y_0=0 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / New Mexico Central (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",31],PAR"); add_srs_wkt (p, 8, "AMETER[\"central_meridian\",-106.25],PARAMETER[\"scale_f"); add_srs_wkt (p, 9, "actor\",0.9999],PARAMETER[\"false_easting\",1640416.667]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_northing\",0],UNIT[\"US survey foot\""); add_srs_wkt (p, 11, ",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\""); add_srs_wkt (p, 12, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2258\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def (filter, first, last, 2259, "epsg", 2259, "NAD83 / New Mexico West (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999"); add_proj4text (p, 1, "916667 +x_0=830000.0001016001 +y_0=0 +datum=NAD83 +units"); add_proj4text (p, 2, "=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / New Mexico West (ftUS)\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",31],PARAME"); add_srs_wkt (p, 8, "TER[\"central_meridian\",-107.8333333333333],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.999916667],PARAMETER[\"false_easting\","); add_srs_wkt (p, 10, "2723091.667],PARAMETER[\"false_northing\",0],UNIT[\"US s"); add_srs_wkt (p, 11, "urvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, "3\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"2259\"]]"); p = add_epsg_def (filter, first, last, 2260, "epsg", 2260, "NAD83 / New York East (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9"); add_proj4text (p, 1, "999 +x_0=150000 +y_0=0 +datum=NAD83 +units=us-ft +no_def"); add_proj4text (p, 2, "s"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / New York East (ftUS)\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, "Mercator\"],PARAMETER[\"latitude_of_origin\",38.83333333"); add_srs_wkt (p, 8, "333334],PARAMETER[\"central_meridian\",-74.5],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",0.9999],PARAMETER[\"false_easting\",492"); add_srs_wkt (p, 10, "125],PARAMETER[\"false_northing\",0],UNIT[\"US survey fo"); add_srs_wkt (p, 11, "ot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AX"); add_srs_wkt (p, 12, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"22"); add_srs_wkt (p, 13, "60\"]]"); p = add_epsg_def (filter, first, last, 2261, "epsg", 2261, "NAD83 / New York Central (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.999"); add_proj4text (p, 1, "9375 +x_0=249999.9998983998 +y_0=0 +datum=NAD83 +units=u"); add_proj4text (p, 2, "s-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / New York Central (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 7, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",40],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",-76.58333333333333],PARAMETER"); add_srs_wkt (p, 9, "[\"scale_factor\",0.9999375],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, ",820208.3330000002],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 11, "[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"2261\"]]"); p = add_epsg_def (filter, first, last, 2262, "epsg", 2262, "NAD83 / New York West (ftUS)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.999"); add_proj4text (p, 1, "9375 +x_0=350000.0001016001 +y_0=0 +datum=NAD83 +units=u"); add_proj4text (p, 2, "s-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / New York West (ftUS)\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 7, "Mercator\"],PARAMETER[\"latitude_of_origin\",40],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-78.58333333333333],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.9999375],PARAMETER[\"false_easting\",11"); add_srs_wkt (p, 10, "48291.667],PARAMETER[\"false_northing\",0],UNIT[\"US sur"); add_srs_wkt (p, 11, "vey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\""); add_srs_wkt (p, 12, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"2262\"]]"); p = add_epsg_def (filter, first, last, 2263, "epsg", 2263, "NAD83 / New York Long Island (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666"); add_proj4text (p, 1, "666 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000.0000"); add_proj4text (p, 2, "000001 +y_0=0 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / New York Long Island (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"G"); add_srs_wkt (p, 2, "RS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"701"); add_srs_wkt (p, 3, "9\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 7, "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 8, "_1\",41.03333333333333],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",40.66666666666666],PARAMETER[\"latitude_of_origin\",40."); add_srs_wkt (p, 10, "16666666666666],PARAMETER[\"central_meridian\",-74],PARA"); add_srs_wkt (p, 11, "METER[\"false_easting\",984250.0000000002],PARAMETER[\"f"); add_srs_wkt (p, 12, "alse_northing\",0],UNIT[\"US survey foot\",0.30480060960"); add_srs_wkt (p, 13, "12192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXI"); add_srs_wkt (p, 14, "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2263\"]]"); p = add_epsg_def (filter, first, last, 2264, "epsg", 2264, "NAD83 / North Carolina (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333"); add_proj4text (p, 1, "334 +lat_0=33.75 +lon_0=-79 +x_0=609601.2192024384 +y_0="); add_proj4text (p, 2, "0 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / North Carolina (ftUS)\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 7, "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",36"); add_srs_wkt (p, 8, ".16666666666666],PARAMETER[\"standard_parallel_2\",34.33"); add_srs_wkt (p, 9, "333333333334],PARAMETER[\"latitude_of_origin\",33.75],PA"); add_srs_wkt (p, 10, "RAMETER[\"central_meridian\",-79],PARAMETER[\"false_east"); add_srs_wkt (p, 11, "ing\",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US"); add_srs_wkt (p, 12, " survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 13, "003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 14, "PSG\",\"2264\"]]"); p = add_epsg_def (filter, first, last, 2265, "epsg", 2265, "NAD83 / North Dakota North (ft)"); add_proj4text (p, 0, "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.43333333333"); add_proj4text (p, 1, "333 +lat_0=47 +lon_0=-100.5 +x_0=599999.9999976 +y_0=0 +"); add_proj4text (p, 2, "datum=NAD83 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / North Dakota North (ft)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_"); add_srs_wkt (p, 7, "Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 8, ",48.73333333333333],PARAMETER[\"standard_parallel_2\",47"); add_srs_wkt (p, 9, ".43333333333333],PARAMETER[\"latitude_of_origin\",47],PA"); add_srs_wkt (p, 10, "RAMETER[\"central_meridian\",-100.5],PARAMETER[\"false_e"); add_srs_wkt (p, 11, "asting\",1968503.937],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 12, "IT[\"foot\",0.3048,AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\""); add_srs_wkt (p, 13, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2265\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def (filter, first, last, 2266, "epsg", 2266, "NAD83 / North Dakota South (ft)"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.48333333333333 +lat_2=46.18333333333"); add_proj4text (p, 1, "333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=599999.9"); add_proj4text (p, 2, "999976 +y_0=0 +datum=NAD83 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / North Dakota South (ft)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_"); add_srs_wkt (p, 7, "Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 8, ",47.48333333333333],PARAMETER[\"standard_parallel_2\",46"); add_srs_wkt (p, 9, ".18333333333333],PARAMETER[\"latitude_of_origin\",45.666"); add_srs_wkt (p, 10, "66666666666],PARAMETER[\"central_meridian\",-100.5],PARA"); add_srs_wkt (p, 11, "METER[\"false_easting\",1968503.937],PARAMETER[\"false_n"); add_srs_wkt (p, 12, "orthing\",0],UNIT[\"foot\",0.3048,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 13, "002\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 14, "PSG\",\"2266\"]]"); p = add_epsg_def (filter, first, last, 2267, "epsg", 2267, "NAD83 / Oklahoma North (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.76666666666667 +lat_2=35.56666666666"); add_proj4text (p, 1, "667 +lat_0=35 +lon_0=-98 +x_0=600000 +y_0=0 +datum=NAD83"); add_proj4text (p, 2, " +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Oklahoma North (ftUS)\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 7, "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",36"); add_srs_wkt (p, 8, ".76666666666667],PARAMETER[\"standard_parallel_2\",35.56"); add_srs_wkt (p, 9, "666666666667],PARAMETER[\"latitude_of_origin\",35],PARAM"); add_srs_wkt (p, 10, "ETER[\"central_meridian\",-98],PARAMETER[\"false_easting"); add_srs_wkt (p, 11, "\",1968500],PARAMETER[\"false_northing\",0],UNIT[\"US su"); add_srs_wkt (p, 12, "rvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003"); add_srs_wkt (p, 13, "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 14, "\",\"2267\"]]"); p = add_epsg_def (filter, first, last, 2268, "epsg", 2268, "NAD83 / Oklahoma South (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=35.23333333333333 +lat_2=33.93333333333"); add_proj4text (p, 1, "333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000 +y_0"); add_proj4text (p, 2, "=0 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Oklahoma South (ftUS)\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 7, "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",35"); add_srs_wkt (p, 8, ".23333333333333],PARAMETER[\"standard_parallel_2\",33.93"); add_srs_wkt (p, 9, "333333333333],PARAMETER[\"latitude_of_origin\",33.333333"); add_srs_wkt (p, 10, "33333334],PARAMETER[\"central_meridian\",-98],PARAMETER["); add_srs_wkt (p, 11, "\"false_easting\",1968500],PARAMETER[\"false_northing\","); add_srs_wkt (p, 12, "0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 14, "UTHORITY[\"EPSG\",\"2268\"]]"); p = add_epsg_def (filter, first, last, 2269, "epsg", 2269, "NAD83 / Oregon North (ft)"); add_proj4text (p, 0, "+proj=lcc +lat_1=46 +lat_2=44.33333333333334 +lat_0=43.6"); add_proj4text (p, 1, "6666666666666 +lon_0=-120.5 +x_0=2500000.0001424 +y_0=0 "); add_proj4text (p, 2, "+datum=NAD83 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Oregon North (ft)\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor"); add_srs_wkt (p, 7, "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",46],P"); add_srs_wkt (p, 8, "ARAMETER[\"standard_parallel_2\",44.33333333333334],PARA"); add_srs_wkt (p, 9, "METER[\"latitude_of_origin\",43.66666666666666],PARAMETE"); add_srs_wkt (p, 10, "R[\"central_meridian\",-120.5],PARAMETER[\"false_easting"); add_srs_wkt (p, 11, "\",8202099.738],PARAMETER[\"false_northing\",0],UNIT[\"f"); add_srs_wkt (p, 12, "oot\",0.3048,AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\"X\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2269\"]]"); p = add_epsg_def (filter, first, last, 2270, "epsg", 2270, "NAD83 / Oregon South (ft)"); add_proj4text (p, 0, "+proj=lcc +lat_1=44 +lat_2=42.33333333333334 +lat_0=41.6"); add_proj4text (p, 1, "6666666666666 +lon_0=-120.5 +x_0=1500000.0001464 +y_0=0 "); add_proj4text (p, 2, "+datum=NAD83 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Oregon South (ft)\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor"); add_srs_wkt (p, 7, "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",44],P"); add_srs_wkt (p, 8, "ARAMETER[\"standard_parallel_2\",42.33333333333334],PARA"); add_srs_wkt (p, 9, "METER[\"latitude_of_origin\",41.66666666666666],PARAMETE"); add_srs_wkt (p, 10, "R[\"central_meridian\",-120.5],PARAMETER[\"false_easting"); add_srs_wkt (p, 11, "\",4921259.843],PARAMETER[\"false_northing\",0],UNIT[\"f"); add_srs_wkt (p, 12, "oot\",0.3048,AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\"X\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2270\"]]"); p = add_epsg_def (filter, first, last, 2271, "epsg", 2271, "NAD83 / Pennsylvania North (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.95 +lat_2=40.88333333333333 +lat_0=4"); add_proj4text (p, 1, "0.16666666666666 +lon_0=-77.75 +x_0=600000 +y_0=0 +datum"); add_proj4text (p, 2, "=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Pennsylvania North (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert"); add_srs_wkt (p, 7, "_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 8, ",41.95],PARAMETER[\"standard_parallel_2\",40.88333333333"); add_srs_wkt (p, 9, "333],PARAMETER[\"latitude_of_origin\",40.16666666666666]"); add_srs_wkt (p, 10, ",PARAMETER[\"central_meridian\",-77.75],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_easting\",1968500],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 12, "T[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); add_srs_wkt (p, 14, "TY[\"EPSG\",\"2271\"]]"); p = add_epsg_def (filter, first, last, 2272, "epsg", 2272, "NAD83 / Pennsylvania South (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.96666666666667 +lat_2=39.93333333333"); add_proj4text (p, 1, "333 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=600000 +"); add_proj4text (p, 2, "y_0=0 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Pennsylvania South (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert"); add_srs_wkt (p, 7, "_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 8, ",40.96666666666667],PARAMETER[\"standard_parallel_2\",39"); add_srs_wkt (p, 9, ".93333333333333],PARAMETER[\"latitude_of_origin\",39.333"); add_srs_wkt (p, 10, "33333333334],PARAMETER[\"central_meridian\",-77.75],PARA"); add_srs_wkt (p, 11, "METER[\"false_easting\",1968500],PARAMETER[\"false_north"); add_srs_wkt (p, 12, "ing\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTH"); add_srs_wkt (p, 13, "ORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 14, "RTH],AUTHORITY[\"EPSG\",\"2272\"]]"); p = add_epsg_def (filter, first, last, 2273, "epsg", 2273, "NAD83 / South Carolina (ft)"); add_proj4text (p, 0, "+proj=lcc +lat_1=34.83333333333334 +lat_2=32.5 +lat_0=31"); add_proj4text (p, 1, ".83333333333333 +lon_0=-81 +x_0=609600 +y_0=0 +datum=NAD"); add_proj4text (p, 2, "83 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / South Carolina (ft)\",GEOGCS[\"NAD83\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 7, "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",34.8"); add_srs_wkt (p, 8, "3333333333334],PARAMETER[\"standard_parallel_2\",32.5],P"); add_srs_wkt (p, 9, "ARAMETER[\"latitude_of_origin\",31.83333333333333],PARAM"); add_srs_wkt (p, 10, "ETER[\"central_meridian\",-81],PARAMETER[\"false_easting"); add_srs_wkt (p, 11, "\",2000000],PARAMETER[\"false_northing\",0],UNIT[\"foot\""); add_srs_wkt (p, 12, ",0.3048,AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\"X\",EAST],A"); add_srs_wkt (p, 13, "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2273\"]]"); p = add_epsg_def (filter, first, last, 2274, "epsg", 2274, "NAD83 / Tennessee (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.41666666666666 +lat_2=35.25 +lat_0=3"); add_proj4text (p, 1, "4.33333333333334 +lon_0=-86 +x_0=600000 +y_0=0 +datum=NA"); add_proj4text (p, 2, "D83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Tennessee (ftUS)\",GEOGCS[\"NAD83\",DAT"); add_srs_wkt (p, 1, "UM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6"); add_srs_wkt (p, 2, "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS"); add_srs_wkt (p, 3, "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 7, "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",36.4166"); add_srs_wkt (p, 8, "6666666666],PARAMETER[\"standard_parallel_2\",35.25],PAR"); add_srs_wkt (p, 9, "AMETER[\"latitude_of_origin\",34.33333333333334],PARAMET"); add_srs_wkt (p, 10, "ER[\"central_meridian\",-86],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",1968500],PARAMETER[\"false_northing\",0],UNIT[\"US surv"); add_srs_wkt (p, 12, "ey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\""); add_srs_wkt (p, 13, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"2274\"]]"); p = add_epsg_def (filter, first, last, 2275, "epsg", 2275, "NAD83 / Texas North (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.18333333333333 +lat_2=34.65 +lat_0=3"); add_proj4text (p, 1, "4 +lon_0=-101.5 +x_0=200000.0001016002 +y_0=999999.99989"); add_proj4text (p, 2, "83998 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Texas North (ftUS)\",GEOGCS[\"NAD83\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 7, "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",36.1"); add_srs_wkt (p, 8, "8333333333333],PARAMETER[\"standard_parallel_2\",34.65],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",34],PARAMETER[\"central"); add_srs_wkt (p, 10, "_meridian\",-101.5],PARAMETER[\"false_easting\",656166.6"); add_srs_wkt (p, 11, "67],PARAMETER[\"false_northing\",3280833.333],UNIT[\"US "); add_srs_wkt (p, 12, "survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "03\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP"); add_srs_wkt (p, 14, "SG\",\"2275\"]]"); p = add_epsg_def (filter, first, last, 2276, "epsg", 2276, "NAD83 / Texas North Central (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=33.96666666666667 +lat_2=32.13333333333"); add_proj4text (p, 1, "333 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000 +y"); add_proj4text (p, 2, "_0=2000000.0001016 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Texas North Central (ftUS)\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambe"); add_srs_wkt (p, 7, "rt_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 8, "1\",33.96666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",32.13333333333333],PARAMETER[\"latitude_of_origin\",31."); add_srs_wkt (p, 10, "66666666666667],PARAMETER[\"central_meridian\",-98.5],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_easting\",1968500],PARAMETER[\"false_nor"); add_srs_wkt (p, 12, "thing\",6561666.667],UNIT[\"US survey foot\",0.304800609"); add_srs_wkt (p, 13, "6012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],A"); add_srs_wkt (p, 14, "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2276\"]]"); p = add_epsg_def (filter, first, last, 2277, "epsg", 2277, "NAD83 / Texas Central (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=31.88333333333333 +lat_2=30.11666666666"); add_proj4text (p, 1, "667 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +"); add_proj4text (p, 2, "x_0=699999.9998983998 +y_0=3000000 +datum=NAD83 +units=u"); add_proj4text (p, 3, "s-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Texas Central (ftUS)\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 7, "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",31"); add_srs_wkt (p, 8, ".88333333333333],PARAMETER[\"standard_parallel_2\",30.11"); add_srs_wkt (p, 9, "666666666667],PARAMETER[\"latitude_of_origin\",29.666666"); add_srs_wkt (p, 10, "66666667],PARAMETER[\"central_meridian\",-100.3333333333"); add_srs_wkt (p, 11, "333],PARAMETER[\"false_easting\",2296583.333],PARAMETER["); add_srs_wkt (p, 12, "\"false_northing\",9842500.000000002],UNIT[\"US survey f"); add_srs_wkt (p, 13, "oot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],A"); add_srs_wkt (p, 14, "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2"); add_srs_wkt (p, 15, "277\"]]"); p = add_epsg_def (filter, first, last, 2278, "epsg", 2278, "NAD83 / Texas South Central (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=30.28333333333333 +lat_2=28.38333333333"); add_proj4text (p, 1, "333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0"); add_proj4text (p, 2, "=3999999.9998984 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Texas South Central (ftUS)\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambe"); add_srs_wkt (p, 7, "rt_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 8, "1\",30.28333333333333],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",28.38333333333333],PARAMETER[\"latitude_of_origin\",27."); add_srs_wkt (p, 10, "83333333333333],PARAMETER[\"central_meridian\",-99],PARA"); add_srs_wkt (p, 11, "METER[\"false_easting\",1968500],PARAMETER[\"false_north"); add_srs_wkt (p, 12, "ing\",13123333.333],UNIT[\"US survey foot\",0.3048006096"); add_srs_wkt (p, 13, "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 14, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2278\"]]"); p = add_epsg_def (filter, first, last, 2279, "epsg", 2279, "NAD83 / Texas South (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666"); add_proj4text (p, 1, "667 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=300000.00"); add_proj4text (p, 2, "00000001 +y_0=5000000.0001016 +datum=NAD83 +units=us-ft "); add_proj4text (p, 3, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Texas South (ftUS)\",GEOGCS[\"NAD83\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 7, "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",27.8"); add_srs_wkt (p, 8, "3333333333333],PARAMETER[\"standard_parallel_2\",26.1666"); add_srs_wkt (p, 9, "6666666667],PARAMETER[\"latitude_of_origin\",25.66666666"); add_srs_wkt (p, 10, "666667],PARAMETER[\"central_meridian\",-98.5],PARAMETER["); add_srs_wkt (p, 11, "\"false_easting\",984250.0000000002],PARAMETER[\"false_n"); add_srs_wkt (p, 12, "orthing\",16404166.667],UNIT[\"US survey foot\",0.304800"); add_srs_wkt (p, 13, "6096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST"); add_srs_wkt (p, 14, "],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2279\"]]"); p = add_epsg_def (filter, first, last, 2280, "epsg", 2280, "NAD83 / Utah North (ft)"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666"); add_proj4text (p, 1, "667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000.0"); add_proj4text (p, 2, "001504 +y_0=999999.9999960001 +datum=NAD83 +units=ft +no"); add_proj4text (p, 3, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Utah North (ft)\",GEOGCS[\"NAD83\",DATU"); add_srs_wkt (p, 1, "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63"); add_srs_wkt (p, 2, "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8"); add_srs_wkt (p, 3, "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 7, "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",41.7833"); add_srs_wkt (p, 8, "3333333333],PARAMETER[\"standard_parallel_2\",40.7166666"); add_srs_wkt (p, 9, "6666667],PARAMETER[\"latitude_of_origin\",40.33333333333"); add_srs_wkt (p, 10, "334],PARAMETER[\"central_meridian\",-111.5],PARAMETER[\""); add_srs_wkt (p, 11, "false_easting\",1640419.948],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, ",3280839.895],UNIT[\"foot\",0.3048,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "9002\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"2280\"]]"); p = add_epsg_def (filter, first, last, 2281, "epsg", 2281, "NAD83 / Utah Central (ft)"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=3"); add_proj4text (p, 1, "8.33333333333334 +lon_0=-111.5 +x_0=500000.0001504 +y_0="); add_proj4text (p, 2, "1999999.999992 +datum=NAD83 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Utah Central (ft)\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor"); add_srs_wkt (p, 7, "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",40.65"); add_srs_wkt (p, 8, "],PARAMETER[\"standard_parallel_2\",39.01666666666667],P"); add_srs_wkt (p, 9, "ARAMETER[\"latitude_of_origin\",38.33333333333334],PARAM"); add_srs_wkt (p, 10, "ETER[\"central_meridian\",-111.5],PARAMETER[\"false_east"); add_srs_wkt (p, 11, "ing\",1640419.948],PARAMETER[\"false_northing\",6561679."); add_srs_wkt (p, 12, "79],UNIT[\"foot\",0.3048,AUTHORITY[\"EPSG\",\"9002\"]],A"); add_srs_wkt (p, 13, "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2"); add_srs_wkt (p, 14, "281\"]]"); p = add_epsg_def (filter, first, last, 2282, "epsg", 2282, "NAD83 / Utah South (ft)"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=3"); add_proj4text (p, 1, "6.66666666666666 +lon_0=-111.5 +x_0=500000.0001504 +y_0="); add_proj4text (p, 2, "2999999.999988 +datum=NAD83 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Utah South (ft)\",GEOGCS[\"NAD83\",DATU"); add_srs_wkt (p, 1, "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63"); add_srs_wkt (p, 2, "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8"); add_srs_wkt (p, 3, "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 7, "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",38.35],"); add_srs_wkt (p, 8, "PARAMETER[\"standard_parallel_2\",37.21666666666667],PAR"); add_srs_wkt (p, 9, "AMETER[\"latitude_of_origin\",36.66666666666666],PARAMET"); add_srs_wkt (p, 10, "ER[\"central_meridian\",-111.5],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, "g\",1640419.948],PARAMETER[\"false_northing\",9842519.68"); add_srs_wkt (p, 12, "5],UNIT[\"foot\",0.3048,AUTHORITY[\"EPSG\",\"9002\"]],AX"); add_srs_wkt (p, 13, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"22"); add_srs_wkt (p, 14, "82\"]]"); p = add_epsg_def (filter, first, last, 2283, "epsg", 2283, "NAD83 / Virginia North (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.2 +lat_2=38.03333333333333 +lat_0=37"); add_proj4text (p, 1, ".66666666666666 +lon_0=-78.5 +x_0=3500000.0001016 +y_0=2"); add_proj4text (p, 2, "000000.0001016 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Virginia North (ftUS)\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 7, "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",39"); add_srs_wkt (p, 8, ".2],PARAMETER[\"standard_parallel_2\",38.03333333333333]"); add_srs_wkt (p, 9, ",PARAMETER[\"latitude_of_origin\",37.66666666666666],PAR"); add_srs_wkt (p, 10, "AMETER[\"central_meridian\",-78.5],PARAMETER[\"false_eas"); add_srs_wkt (p, 11, "ting\",11482916.667],PARAMETER[\"false_northing\",656166"); add_srs_wkt (p, 12, "6.667],UNIT[\"US survey foot\",0.3048006096012192,AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); add_srs_wkt (p, 14, "H],AUTHORITY[\"EPSG\",\"2283\"]]"); p = add_epsg_def (filter, first, last, 2284, "epsg", 2284, "NAD83 / Virginia South (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.96666666666667 +lat_2=36.76666666666"); add_proj4text (p, 1, "667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3500000.0"); add_proj4text (p, 2, "001016 +y_0=999999.9998983998 +datum=NAD83 +units=us-ft "); add_proj4text (p, 3, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Virginia South (ftUS)\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 7, "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",37"); add_srs_wkt (p, 8, ".96666666666667],PARAMETER[\"standard_parallel_2\",36.76"); add_srs_wkt (p, 9, "666666666667],PARAMETER[\"latitude_of_origin\",36.333333"); add_srs_wkt (p, 10, "33333334],PARAMETER[\"central_meridian\",-78.5],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_easting\",11482916.667],PARAMETER[\"false_nort"); add_srs_wkt (p, 12, "hing\",3280833.333],UNIT[\"US survey foot\",0.3048006096"); add_srs_wkt (p, 13, "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 14, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2284\"]]"); p = add_epsg_def (filter, first, last, 2285, "epsg", 2285, "NAD83 / Washington North (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.5 +lat_0=47"); add_proj4text (p, 1, " +lon_0=-120.8333333333333 +x_0=500000.0001016001 +y_0=0"); add_proj4text (p, 2, " +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Washington North (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_"); add_srs_wkt (p, 7, "Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 8, ",48.73333333333333],PARAMETER[\"standard_parallel_2\",47"); add_srs_wkt (p, 9, ".5],PARAMETER[\"latitude_of_origin\",47],PARAMETER[\"cen"); add_srs_wkt (p, 10, "tral_meridian\",-120.8333333333333],PARAMETER[\"false_ea"); add_srs_wkt (p, 11, "sting\",1640416.667],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 12, "T[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); add_srs_wkt (p, 14, "TY[\"EPSG\",\"2285\"]]"); p = add_epsg_def (filter, first, last, 2286, "epsg", 2286, "NAD83 / Washington South (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.33333333333334 +lat_2=45.83333333333"); add_proj4text (p, 1, "334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000.0"); add_proj4text (p, 2, "001016001 +y_0=0 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Washington South (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_"); add_srs_wkt (p, 7, "Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 8, ",47.33333333333334],PARAMETER[\"standard_parallel_2\",45"); add_srs_wkt (p, 9, ".83333333333334],PARAMETER[\"latitude_of_origin\",45.333"); add_srs_wkt (p, 10, "33333333334],PARAMETER[\"central_meridian\",-120.5],PARA"); add_srs_wkt (p, 11, "METER[\"false_easting\",1640416.667],PARAMETER[\"false_n"); add_srs_wkt (p, 12, "orthing\",0],UNIT[\"US survey foot\",0.3048006096012192,"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 14, ",NORTH],AUTHORITY[\"EPSG\",\"2286\"]]"); p = add_epsg_def (filter, first, last, 2287, "epsg", 2287, "NAD83 / Wisconsin North (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=46.76666666666667 +lat_2=45.56666666666"); add_proj4text (p, 1, "667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000 +y_0"); add_proj4text (p, 2, "=0 +datum=NAD83 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Wisconsin North (ftUS)\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 7, "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",4"); add_srs_wkt (p, 8, "6.76666666666667],PARAMETER[\"standard_parallel_2\",45.5"); add_srs_wkt (p, 9, "6666666666667],PARAMETER[\"latitude_of_origin\",45.16666"); add_srs_wkt (p, 10, "666666666],PARAMETER[\"central_meridian\",-90],PARAMETER"); add_srs_wkt (p, 11, "[\"false_easting\",1968500],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, ",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 14, "AUTHORITY[\"EPSG\",\"2287\"]]"); p = add_epsg_def (filter, first, last, 2288, "epsg", 2288, "NAD83 / Wisconsin Central (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.5 +lat_2=44.25 +lat_0=43.83333333333"); add_proj4text (p, 1, "334 +lon_0=-90 +x_0=600000 +y_0=0 +datum=NAD83 +units=us"); add_proj4text (p, 2, "-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Wisconsin Central (ftUS)\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS "); add_srs_wkt (p, 2, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert"); add_srs_wkt (p, 7, "_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 8, ",45.5],PARAMETER[\"standard_parallel_2\",44.25],PARAMETE"); add_srs_wkt (p, 9, "R[\"latitude_of_origin\",43.83333333333334],PARAMETER[\""); add_srs_wkt (p, 10, "central_meridian\",-90],PARAMETER[\"false_easting\",1968"); add_srs_wkt (p, 11, "500],PARAMETER[\"false_northing\",0],UNIT[\"US survey fo"); add_srs_wkt (p, 12, "ot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AX"); add_srs_wkt (p, 13, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"22"); add_srs_wkt (p, 14, "88\"]]"); p = add_epsg_def (filter, first, last, 2289, "epsg", 2289, "NAD83 / Wisconsin South (ftUS)"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.06666666666667 +lat_2=42.73333333333"); add_proj4text (p, 1, "333 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +datum=NAD83"); add_proj4text (p, 2, " +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Wisconsin South (ftUS)\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 7, "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",4"); add_srs_wkt (p, 8, "4.06666666666667],PARAMETER[\"standard_parallel_2\",42.7"); add_srs_wkt (p, 9, "3333333333333],PARAMETER[\"latitude_of_origin\",42],PARA"); add_srs_wkt (p, 10, "METER[\"central_meridian\",-90],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, "g\",1968500],PARAMETER[\"false_northing\",0],UNIT[\"US s"); add_srs_wkt (p, 12, "urvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 13, "3\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 14, "G\",\"2289\"]]"); p = add_epsg_def (filter, first, last, 2290, "epsg", 2290, "ATS77 / Prince Edward Isl. Stereographic (ATS77)"); add_proj4text (p, 0, "+proj=sterea +lat_0=47.25 +lon_0=-63 +k=0.999912 +x_0=70"); add_proj4text (p, 1, "0000 +y_0=400000 +a=6378135 +b=6356750.304921594 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ATS77 / Prince Edward Isl. Stereographic (ATS77"); add_srs_wkt (p, 1, ")\",GEOGCS[\"ATS77\",DATUM[\"Average_Terrestrial_System_"); add_srs_wkt (p, 2, "1977\",SPHEROID[\"Average Terrestrial System 1977\",6378"); add_srs_wkt (p, 3, "135,298.257,AUTHORITY[\"EPSG\",\"7041\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 4, "SG\",\"6122\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4122\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Oblique_Stereographic\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",47.25],PARAMETER[\"central_meridian\",-63],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",0.999912],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",700000],PARAMETER[\"false_northing\",400000],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E(X)\","); add_srs_wkt (p, 12, "EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"EPSG\",\"2290\"]]"); p = add_epsg_def (filter, first, last, 2291, "epsg", 2291, "NAD83(CSRS98) / Prince Edward Isl. Stereographic (NAD83) (deprecated)"); add_proj4text (p, 0, "+proj=sterea +lat_0=47.25 +lon_0=-63 +k=0.999912 +x_0=40"); add_proj4text (p, 1, "0000 +y_0=800000 +a=6378135 +b=6356750.304921594 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS98) / Prince Edward Isl. Stereographi"); add_srs_wkt (p, 1, "c (NAD83) (deprecated)\",GEOGCS[\"ATS77\",DATUM[\"Averag"); add_srs_wkt (p, 2, "e_Terrestrial_System_1977\",SPHEROID[\"Average Terrestri"); add_srs_wkt (p, 3, "al System 1977\",6378135,298.257,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 4, "41\"]],AUTHORITY[\"EPSG\",\"6122\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4122\"]],PROJECTION[\"Oblique_Stereographic\"],PA"); add_srs_wkt (p, 8, "RAMETER[\"latitude_of_origin\",47.25],PARAMETER[\"centra"); add_srs_wkt (p, 9, "l_meridian\",-63],PARAMETER[\"scale_factor\",0.999912],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_easting\",400000],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, "thing\",800000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORIT"); add_srs_wkt (p, 13, "Y[\"EPSG\",\"2291\"]]"); p = add_epsg_def (filter, first, last, 2292, "epsg", 2292, "NAD83(CSRS98) / Prince Edward Isl. Stereographic (NAD83) (deprecated)"); add_proj4text (p, 0, "+proj=sterea +lat_0=47.25 +lon_0=-63 +k=0.999912 +x_0=40"); add_proj4text (p, 1, "0000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +un"); add_proj4text (p, 2, "its=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS98) / Prince Edward Isl. Stereographi"); add_srs_wkt (p, 1, "c (NAD83) (deprecated)\",GEOGCS[\"NAD83(CSRS98)\",DATUM["); add_srs_wkt (p, 2, "\"NAD83_Canadian_Spatial_Reference_System\",SPHEROID[\"G"); add_srs_wkt (p, 3, "RS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"701"); add_srs_wkt (p, 4, "9\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6140\""); add_srs_wkt (p, 5, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 6, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "9108\"]],AUTHORITY[\"EPSG\",\"4140\"]],PROJECTION[\"Obli"); add_srs_wkt (p, 8, "que_Stereographic\"],PARAMETER[\"latitude_of_origin\",47"); add_srs_wkt (p, 9, ".25],PARAMETER[\"central_meridian\",-63],PARAMETER[\"sca"); add_srs_wkt (p, 10, "le_factor\",0.999912],PARAMETER[\"false_easting\",400000"); add_srs_wkt (p, 11, "],PARAMETER[\"false_northing\",800000],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E(X)\",EAST],AXIS[\""); add_srs_wkt (p, 13, "N(Y)\",NORTH],AUTHORITY[\"EPSG\",\"2292\"]]"); p = add_epsg_def (filter, first, last, 2294, "epsg", 2294, "ATS77 / MTM Nova Scotia zone 4"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-61.5 +k=0.9999 +x_0=4500000"); add_proj4text (p, 1, " +y_0=0 +a=6378135 +b=6356750.304921594 +units=m +no_def"); add_proj4text (p, 2, "s"); add_srs_wkt (p, 0, "PROJCS[\"ATS77 / MTM Nova Scotia zone 4\",GEOGCS[\"ATS77"); add_srs_wkt (p, 1, "\",DATUM[\"Average_Terrestrial_System_1977\",SPHEROID[\""); add_srs_wkt (p, 2, "Average Terrestrial System 1977\",6378135,298.257,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7041\"]],AUTHORITY[\"EPSG\",\"6122\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AUTHORITY[\"EPSG\",\"4122\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-61.5],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9999],PARAMETER[\"false_easting\",4500000],PARAMETER["); add_srs_wkt (p, 10, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); add_srs_wkt (p, 12, "TH],AUTHORITY[\"EPSG\",\"2294\"]]"); p = add_epsg_def (filter, first, last, 2295, "epsg", 2295, "ATS77 / MTM Nova Scotia zone 5"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-64.5 +k=0.9999 +x_0=5500000"); add_proj4text (p, 1, " +y_0=0 +a=6378135 +b=6356750.304921594 +units=m +no_def"); add_proj4text (p, 2, "s"); add_srs_wkt (p, 0, "PROJCS[\"ATS77 / MTM Nova Scotia zone 5\",GEOGCS[\"ATS77"); add_srs_wkt (p, 1, "\",DATUM[\"Average_Terrestrial_System_1977\",SPHEROID[\""); add_srs_wkt (p, 2, "Average Terrestrial System 1977\",6378135,298.257,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7041\"]],AUTHORITY[\"EPSG\",\"6122\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AUTHORITY[\"EPSG\",\"4122\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-64.5],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9999],PARAMETER[\"false_easting\",5500000],PARAMETER["); add_srs_wkt (p, 10, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); add_srs_wkt (p, 12, "TH],AUTHORITY[\"EPSG\",\"2295\"]]"); p = add_epsg_def (filter, first, last, 2308, "epsg", 2308, "Batavia / TM 109 SE"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=109 +k=0.9996 +x_0=500000 +y"); add_proj4text (p, 1, "_0=10000000 +ellps=bessel +towgs84=-377,681,-50,0,0,0,0 "); add_proj4text (p, 2, "+units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Batavia / TM 109 SE\",GEOGCS[\"Batavia\",DATUM["); add_srs_wkt (p, 1, "\"Batavia\",SPHEROID[\"Bessel 1841\",6377397.155,299.152"); add_srs_wkt (p, 2, "8128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-377,681,-50,"); add_srs_wkt (p, 3, "0,0,0,0],AUTHORITY[\"EPSG\",\"6211\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 4, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 5, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"4211\"]],PROJECTION[\"Transverse_Mercator\"],PA"); add_srs_wkt (p, 7, "RAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_me"); add_srs_wkt (p, 8, "ridian\",109],PARAMETER[\"scale_factor\",0.9996],PARAMET"); add_srs_wkt (p, 9, "ER[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 10, ",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 11, "],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"2308\"]]"); p = add_epsg_def (filter, first, last, 2309, "epsg", 2309, "WGS 84 / TM 116 SE"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=116 +k=0.9996 +x_0=500000 +y"); add_proj4text (p, 1, "_0=10000000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / TM 116 SE\",GEOGCS[\"WGS 84\",DATUM[\""); add_srs_wkt (p, 1, "WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]]"); add_srs_wkt (p, 3, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 4, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 5, "22\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 6, "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PAR"); add_srs_wkt (p, 7, "AMETER[\"central_meridian\",116],PARAMETER[\"scale_facto"); add_srs_wkt (p, 8, "r\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETE"); add_srs_wkt (p, 9, "R[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 10, "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 11, "hing\",NORTH],AUTHORITY[\"EPSG\",\"2309\"]]"); p = add_epsg_def (filter, first, last, 2310, "epsg", 2310, "WGS 84 / TM 132 SE"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=132 +k=0.9996 +x_0=500000 +y"); add_proj4text (p, 1, "_0=10000000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / TM 132 SE\",GEOGCS[\"WGS 84\",DATUM[\""); add_srs_wkt (p, 1, "WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]]"); add_srs_wkt (p, 3, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 4, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 5, "22\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 6, "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PAR"); add_srs_wkt (p, 7, "AMETER[\"central_meridian\",132],PARAMETER[\"scale_facto"); add_srs_wkt (p, 8, "r\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETE"); add_srs_wkt (p, 9, "R[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 10, "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 11, "hing\",NORTH],AUTHORITY[\"EPSG\",\"2310\"]]"); p = add_epsg_def (filter, first, last, 2311, "epsg", 2311, "WGS 84 / TM 6 NE"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=6 +k=0.9996 +x_0=500000 +y_0"); add_proj4text (p, 1, "=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / TM 6 NE\",GEOGCS[\"WGS 84\",DATUM[\"WG"); add_srs_wkt (p, 1, "S_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHO"); add_srs_wkt (p, 2, "RITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],P"); add_srs_wkt (p, 3, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 4, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 5, "\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 6, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 7, "ETER[\"central_meridian\",6],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 8, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 9, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 10, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 11, "H],AUTHORITY[\"EPSG\",\"2311\"]]"); p = add_epsg_def (filter, first, last, 2312, "epsg", 2312, "Garoua / UTM zone 33N"); add_proj4text (p, 0, "+proj=utm +zone=33 +ellps=clrk80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Garoua / UTM zone 33N\",GEOGCS[\"Garoua\",DATUM"); add_srs_wkt (p, 1, "[\"Garoua\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145,2"); add_srs_wkt (p, 2, "93.465,AUTHORITY[\"EPSG\",\"7012\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"6197\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 4, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4197\"]],PROJECTIO"); add_srs_wkt (p, 6, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 7, "n\",0],PARAMETER[\"central_meridian\",15],PARAMETER[\"sc"); add_srs_wkt (p, 8, "ale_factor\",0.9996],PARAMETER[\"false_easting\",500000]"); add_srs_wkt (p, 9, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 10, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 11, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"2312\"]]"); p = add_epsg_def (filter, first, last, 2313, "epsg", 2313, "Kousseri / UTM zone 33N"); add_proj4text (p, 0, "+proj=utm +zone=33 +ellps=clrk80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kousseri / UTM zone 33N\",GEOGCS[\"Kousseri\",D"); add_srs_wkt (p, 1, "ATUM[\"Kousseri\",SPHEROID[\"Clarke 1880 (RGS)\",6378249"); add_srs_wkt (p, 2, ".145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"6198\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4198\"]],PRO"); add_srs_wkt (p, 6, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 7, "_origin\",0],PARAMETER[\"central_meridian\",15],PARAMETE"); add_srs_wkt (p, 8, "R[\"scale_factor\",0.9996],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 9, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 10, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI"); add_srs_wkt (p, 11, "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2313\"]]"); p = add_epsg_def (filter, first, last, 2314, "epsg", 2314, "Trinidad 1903 / Trinidad Grid (ftCla)"); add_proj4text (p, 0, "+proj=cass +lat_0=10.44166666666667 +lon_0=-61.333333333"); add_proj4text (p, 1, "33334 +x_0=86501.46392052001 +y_0=65379.0134283 +a=63782"); add_proj4text (p, 2, "93.645208759 +b=6356617.987679838 +towgs84=-61.702,284.4"); add_proj4text (p, 3, "88,472.052,0,0,0,0 +to_meter=0.3047972654 +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Trinidad 1903 / Trinidad Grid (ftCla)\",GEOGCS["); add_srs_wkt (p, 1, "\"Trinidad 1903\",DATUM[\"Trinidad_1903\",SPHEROID[\"Cla"); add_srs_wkt (p, 2, "rke 1858\",6378293.645208759,294.2606763692654,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7007\"]],TOWGS84[-61.702,284.488,472.052,0,0"); add_srs_wkt (p, 4, ",0,0],AUTHORITY[\"EPSG\",\"6302\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4302\"]],PROJECTION[\"Cassini_Soldner\"],PARAMETE"); add_srs_wkt (p, 8, "R[\"latitude_of_origin\",10.44166666666667],PARAMETER[\""); add_srs_wkt (p, 9, "central_meridian\",-61.33333333333334],PARAMETER[\"false"); add_srs_wkt (p, 10, "_easting\",283800],PARAMETER[\"false_northing\",214500],"); add_srs_wkt (p, 11, "UNIT[\"Clarke's foot\",0.3047972654,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9005\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"2314\"]]"); p = add_epsg_def (filter, first, last, 2315, "epsg", 2315, "Campo Inchauspe / UTM zone 19S"); add_proj4text (p, 0, "+proj=utm +zone=19 +south +ellps=intl +towgs84=-148,136,"); add_proj4text (p, 1, "90,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Campo Inchauspe / UTM zone 19S\",GEOGCS[\"Campo"); add_srs_wkt (p, 1, " Inchauspe\",DATUM[\"Campo_Inchauspe\",SPHEROID[\"Intern"); add_srs_wkt (p, 2, "ational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]]"); add_srs_wkt (p, 3, ",TOWGS84[-148,136,90,0,0,0,0],AUTHORITY[\"EPSG\",\"6221\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4221\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, "ARAMETER[\"central_meridian\",-69],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 11, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 12, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"2315\"]]"); p = add_epsg_def (filter, first, last, 2316, "epsg", 2316, "Campo Inchauspe / UTM zone 20S"); add_proj4text (p, 0, "+proj=utm +zone=20 +south +ellps=intl +towgs84=-148,136,"); add_proj4text (p, 1, "90,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Campo Inchauspe / UTM zone 20S\",GEOGCS[\"Campo"); add_srs_wkt (p, 1, " Inchauspe\",DATUM[\"Campo_Inchauspe\",SPHEROID[\"Intern"); add_srs_wkt (p, 2, "ational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]]"); add_srs_wkt (p, 3, ",TOWGS84[-148,136,90,0,0,0,0],AUTHORITY[\"EPSG\",\"6221\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AUTHORITY[\"EPSG\",\"4221\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, "ARAMETER[\"central_meridian\",-63],PARAMETER[\"scale_fac"); add_srs_wkt (p, 9, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 11, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 12, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"2316\"]]"); p = add_epsg_def (filter, first, last, 2317, "epsg", 2317, "PSAD56 / ICN Regional"); add_proj4text (p, 0, "+proj=lcc +lat_1=9 +lat_2=3 +lat_0=6 +lon_0=-66 +x_0=100"); add_proj4text (p, 1, "0000 +y_0=1000000 +ellps=intl +towgs84=-288,175,-376,0,0"); add_proj4text (p, 2, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PSAD56 / ICN Regional\",GEOGCS[\"PSAD56\",DATUM"); add_srs_wkt (p, 1, "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In"); add_srs_wkt (p, 2, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 8, "rallel_1\",9],PARAMETER[\"standard_parallel_2\",3],PARAM"); add_srs_wkt (p, 9, "ETER[\"latitude_of_origin\",6],PARAMETER[\"central_merid"); add_srs_wkt (p, 10, "ian\",-66],PARAMETER[\"false_easting\",1000000],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"2317\"]]"); p = add_epsg_def (filter, first, last, 2318, "epsg", 2318, "Ain el Abd / Aramco Lambert"); add_proj4text (p, 0, "+proj=lcc +lat_1=17 +lat_2=33 +lat_0=25.08951 +lon_0=48 "); add_proj4text (p, 1, "+x_0=0 +y_0=0 +ellps=intl +towgs84=-143,-236,7,0,0,0,0 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Ain el Abd / Aramco Lambert\",GEOGCS[\"Ain el A"); add_srs_wkt (p, 1, "bd\",DATUM[\"Ain_el_Abd_1970\",SPHEROID[\"International "); add_srs_wkt (p, 2, "1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84"); add_srs_wkt (p, 3, "[-143,-236,7,0,0,0,0],AUTHORITY[\"EPSG\",\"6204\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"4204\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 7, "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",17"); add_srs_wkt (p, 8, "],PARAMETER[\"standard_parallel_2\",33],PARAMETER[\"lati"); add_srs_wkt (p, 9, "tude_of_origin\",25.08951],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 10, ",48],PARAMETER[\"false_easting\",0],PARAMETER[\"false_no"); add_srs_wkt (p, 11, "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"2318\"]]"); p = add_epsg_def (filter, first, last, 2319, "epsg", 2319, "ED50 / TM27"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=intl +towgs84=-87,-98,-121,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / TM27\",GEOGCS[\"ED50\",DATUM[\"European_"); add_srs_wkt (p, 1, "Datum_1950\",SPHEROID[\"International 1924\",6378388,297"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-121,0,0,"); add_srs_wkt (p, 3, "0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4230\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 7, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 8, "ian\",27],PARAMETER[\"scale_factor\",1],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NO"); add_srs_wkt (p, 11, "RTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2319\"]]"); p = add_epsg_def (filter, first, last, 2320, "epsg", 2320, "ED50 / TM30"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=intl +towgs84=-87,-98,-121,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / TM30\",GEOGCS[\"ED50\",DATUM[\"European_"); add_srs_wkt (p, 1, "Datum_1950\",SPHEROID[\"International 1924\",6378388,297"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-121,0,0,"); add_srs_wkt (p, 3, "0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4230\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 7, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 8, "ian\",30],PARAMETER[\"scale_factor\",1],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NO"); add_srs_wkt (p, 11, "RTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2320\"]]"); p = add_epsg_def (filter, first, last, 2321, "epsg", 2321, "ED50 / TM33"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=intl +towgs84=-87,-98,-121,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / TM33\",GEOGCS[\"ED50\",DATUM[\"European_"); add_srs_wkt (p, 1, "Datum_1950\",SPHEROID[\"International 1924\",6378388,297"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-121,0,0,"); add_srs_wkt (p, 3, "0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4230\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 7, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 8, "ian\",33],PARAMETER[\"scale_factor\",1],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NO"); add_srs_wkt (p, 11, "RTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2321\"]]"); p = add_epsg_def (filter, first, last, 2322, "epsg", 2322, "ED50 / TM36"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=36 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=intl +towgs84=-87,-98,-121,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / TM36\",GEOGCS[\"ED50\",DATUM[\"European_"); add_srs_wkt (p, 1, "Datum_1950\",SPHEROID[\"International 1924\",6378388,297"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-121,0,0,"); add_srs_wkt (p, 3, "0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4230\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 7, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 8, "ian\",36],PARAMETER[\"scale_factor\",1],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NO"); add_srs_wkt (p, 11, "RTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2322\"]]"); p = add_epsg_def (filter, first, last, 2323, "epsg", 2323, "ED50 / TM39"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=intl +towgs84=-87,-98,-121,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / TM39\",GEOGCS[\"ED50\",DATUM[\"European_"); add_srs_wkt (p, 1, "Datum_1950\",SPHEROID[\"International 1924\",6378388,297"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-121,0,0,"); add_srs_wkt (p, 3, "0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4230\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 7, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 8, "ian\",39],PARAMETER[\"scale_factor\",1],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NO"); add_srs_wkt (p, 11, "RTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2323\"]]"); p = add_epsg_def (filter, first, last, 2324, "epsg", 2324, "ED50 / TM42"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=42 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=intl +towgs84=-87,-98,-121,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / TM42\",GEOGCS[\"ED50\",DATUM[\"European_"); add_srs_wkt (p, 1, "Datum_1950\",SPHEROID[\"International 1924\",6378388,297"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-121,0,0,"); add_srs_wkt (p, 3, "0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4230\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 7, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 8, "ian\",42],PARAMETER[\"scale_factor\",1],PARAMETER[\"fals"); add_srs_wkt (p, 9, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 10, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NO"); add_srs_wkt (p, 11, "RTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2324\"]]"); } #endif /* full EPSG initialization enabled/disabled */ libspatialite-4.1.1/src/srsinit/epsg_inlined_wgs84_01.c0000664000175000017500000011263412163502133017713 00000000000000/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include SPATIALITE_PRIVATE void initialize_epsg_wgs84_01 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list [WGS84] */ struct epsg_defs *p; p = add_epsg_def (filter, first, last, 32735, "epsg", 32735, "WGS 84 / UTM zone 35S"); add_proj4text (p, 0, "+proj=utm +zone=35 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 35S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",27],PARAMETER[\"scale_fact"); add_srs_wkt (p, 8, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 9, "ER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 10, "TY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nor"); add_srs_wkt (p, 11, "thing\",NORTH],AUTHORITY[\"EPSG\",\"32735\"]]"); p = add_epsg_def (filter, first, last, 32736, "epsg", 32736, "WGS 84 / UTM zone 36S"); add_proj4text (p, 0, "+proj=utm +zone=36 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 36S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",33],PARAMETER[\"scale_fact"); add_srs_wkt (p, 8, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 9, "ER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 10, "TY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nor"); add_srs_wkt (p, 11, "thing\",NORTH],AUTHORITY[\"EPSG\",\"32736\"]]"); p = add_epsg_def (filter, first, last, 32737, "epsg", 32737, "WGS 84 / UTM zone 37S"); add_proj4text (p, 0, "+proj=utm +zone=37 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 37S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",39],PARAMETER[\"scale_fact"); add_srs_wkt (p, 8, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 9, "ER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 10, "TY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nor"); add_srs_wkt (p, 11, "thing\",NORTH],AUTHORITY[\"EPSG\",\"32737\"]]"); p = add_epsg_def (filter, first, last, 32738, "epsg", 32738, "WGS 84 / UTM zone 38S"); add_proj4text (p, 0, "+proj=utm +zone=38 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 38S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",45],PARAMETER[\"scale_fact"); add_srs_wkt (p, 8, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 9, "ER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 10, "TY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nor"); add_srs_wkt (p, 11, "thing\",NORTH],AUTHORITY[\"EPSG\",\"32738\"]]"); p = add_epsg_def (filter, first, last, 32739, "epsg", 32739, "WGS 84 / UTM zone 39S"); add_proj4text (p, 0, "+proj=utm +zone=39 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 39S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",51],PARAMETER[\"scale_fact"); add_srs_wkt (p, 8, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 9, "ER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 10, "TY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nor"); add_srs_wkt (p, 11, "thing\",NORTH],AUTHORITY[\"EPSG\",\"32739\"]]"); p = add_epsg_def (filter, first, last, 32740, "epsg", 32740, "WGS 84 / UTM zone 40S"); add_proj4text (p, 0, "+proj=utm +zone=40 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 40S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",57],PARAMETER[\"scale_fact"); add_srs_wkt (p, 8, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 9, "ER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 10, "TY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nor"); add_srs_wkt (p, 11, "thing\",NORTH],AUTHORITY[\"EPSG\",\"32740\"]]"); p = add_epsg_def (filter, first, last, 32741, "epsg", 32741, "WGS 84 / UTM zone 41S"); add_proj4text (p, 0, "+proj=utm +zone=41 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 41S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",63],PARAMETER[\"scale_fact"); add_srs_wkt (p, 8, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 9, "ER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 10, "TY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nor"); add_srs_wkt (p, 11, "thing\",NORTH],AUTHORITY[\"EPSG\",\"32741\"]]"); p = add_epsg_def (filter, first, last, 32742, "epsg", 32742, "WGS 84 / UTM zone 42S"); add_proj4text (p, 0, "+proj=utm +zone=42 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 42S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",69],PARAMETER[\"scale_fact"); add_srs_wkt (p, 8, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 9, "ER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 10, "TY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nor"); add_srs_wkt (p, 11, "thing\",NORTH],AUTHORITY[\"EPSG\",\"32742\"]]"); p = add_epsg_def (filter, first, last, 32743, "epsg", 32743, "WGS 84 / UTM zone 43S"); add_proj4text (p, 0, "+proj=utm +zone=43 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 43S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",75],PARAMETER[\"scale_fact"); add_srs_wkt (p, 8, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 9, "ER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 10, "TY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nor"); add_srs_wkt (p, 11, "thing\",NORTH],AUTHORITY[\"EPSG\",\"32743\"]]"); p = add_epsg_def (filter, first, last, 32744, "epsg", 32744, "WGS 84 / UTM zone 44S"); add_proj4text (p, 0, "+proj=utm +zone=44 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 44S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",81],PARAMETER[\"scale_fact"); add_srs_wkt (p, 8, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 9, "ER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 10, "TY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nor"); add_srs_wkt (p, 11, "thing\",NORTH],AUTHORITY[\"EPSG\",\"32744\"]]"); p = add_epsg_def (filter, first, last, 32745, "epsg", 32745, "WGS 84 / UTM zone 45S"); add_proj4text (p, 0, "+proj=utm +zone=45 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 45S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",87],PARAMETER[\"scale_fact"); add_srs_wkt (p, 8, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 9, "ER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 10, "TY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nor"); add_srs_wkt (p, 11, "thing\",NORTH],AUTHORITY[\"EPSG\",\"32745\"]]"); p = add_epsg_def (filter, first, last, 32746, "epsg", 32746, "WGS 84 / UTM zone 46S"); add_proj4text (p, 0, "+proj=utm +zone=46 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 46S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",93],PARAMETER[\"scale_fact"); add_srs_wkt (p, 8, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 9, "ER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 10, "TY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nor"); add_srs_wkt (p, 11, "thing\",NORTH],AUTHORITY[\"EPSG\",\"32746\"]]"); p = add_epsg_def (filter, first, last, 32747, "epsg", 32747, "WGS 84 / UTM zone 47S"); add_proj4text (p, 0, "+proj=utm +zone=47 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 47S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",99],PARAMETER[\"scale_fact"); add_srs_wkt (p, 8, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 9, "ER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 10, "TY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nor"); add_srs_wkt (p, 11, "thing\",NORTH],AUTHORITY[\"EPSG\",\"32747\"]]"); p = add_epsg_def (filter, first, last, 32748, "epsg", 32748, "WGS 84 / UTM zone 48S"); add_proj4text (p, 0, "+proj=utm +zone=48 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 48S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",105],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 10, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 11, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"32748\"]]"); p = add_epsg_def (filter, first, last, 32749, "epsg", 32749, "WGS 84 / UTM zone 49S"); add_proj4text (p, 0, "+proj=utm +zone=49 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 49S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",111],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 10, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 11, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"32749\"]]"); p = add_epsg_def (filter, first, last, 32750, "epsg", 32750, "WGS 84 / UTM zone 50S"); add_proj4text (p, 0, "+proj=utm +zone=50 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 50S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",117],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 10, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 11, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"32750\"]]"); p = add_epsg_def (filter, first, last, 32751, "epsg", 32751, "WGS 84 / UTM zone 51S"); add_proj4text (p, 0, "+proj=utm +zone=51 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 51S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",123],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 10, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 11, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"32751\"]]"); p = add_epsg_def (filter, first, last, 32752, "epsg", 32752, "WGS 84 / UTM zone 52S"); add_proj4text (p, 0, "+proj=utm +zone=52 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 52S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",129],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 10, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 11, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"32752\"]]"); p = add_epsg_def (filter, first, last, 32753, "epsg", 32753, "WGS 84 / UTM zone 53S"); add_proj4text (p, 0, "+proj=utm +zone=53 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 53S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",135],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 10, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 11, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"32753\"]]"); p = add_epsg_def (filter, first, last, 32754, "epsg", 32754, "WGS 84 / UTM zone 54S"); add_proj4text (p, 0, "+proj=utm +zone=54 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 54S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",141],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 10, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 11, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"32754\"]]"); p = add_epsg_def (filter, first, last, 32755, "epsg", 32755, "WGS 84 / UTM zone 55S"); add_proj4text (p, 0, "+proj=utm +zone=55 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 55S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",147],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 10, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 11, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"32755\"]]"); p = add_epsg_def (filter, first, last, 32756, "epsg", 32756, "WGS 84 / UTM zone 56S"); add_proj4text (p, 0, "+proj=utm +zone=56 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 56S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",153],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 10, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 11, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"32756\"]]"); p = add_epsg_def (filter, first, last, 32757, "epsg", 32757, "WGS 84 / UTM zone 57S"); add_proj4text (p, 0, "+proj=utm +zone=57 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 57S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",159],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 10, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 11, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"32757\"]]"); p = add_epsg_def (filter, first, last, 32758, "epsg", 32758, "WGS 84 / UTM zone 58S"); add_proj4text (p, 0, "+proj=utm +zone=58 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 58S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",165],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 10, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 11, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"32758\"]]"); p = add_epsg_def (filter, first, last, 32759, "epsg", 32759, "WGS 84 / UTM zone 59S"); add_proj4text (p, 0, "+proj=utm +zone=59 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 59S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",171],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 10, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 11, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"32759\"]]"); p = add_epsg_def (filter, first, last, 32760, "epsg", 32760, "WGS 84 / UTM zone 60S"); add_proj4text (p, 0, "+proj=utm +zone=60 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 60S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 6, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 7, "ARAMETER[\"central_meridian\",177],PARAMETER[\"scale_fac"); add_srs_wkt (p, 8, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 9, "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 10, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 11, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"32760\"]]"); p = add_epsg_def (filter, first, last, 32761, "epsg", 32761, "WGS 84 / UPS South (N,E)"); add_proj4text (p, 0, "+proj=stere +lat_0=-90 +lat_ts=-90 +lon_0=0 +k=0.994 +x_"); add_proj4text (p, 1, "0=2000000 +y_0=2000000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UPS South (N,E)\",GEOGCS[\"WGS 84\",DA"); add_srs_wkt (p, 1, "TUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2572235"); add_srs_wkt (p, 2, "63,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"63"); add_srs_wkt (p, 3, "26\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 4, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"P"); add_srs_wkt (p, 6, "olar_Stereographic\"],PARAMETER[\"latitude_of_origin\",-"); add_srs_wkt (p, 7, "90],PARAMETER[\"central_meridian\",0],PARAMETER[\"scale_"); add_srs_wkt (p, 8, "factor\",0.994],PARAMETER[\"false_easting\",2000000],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_northing\",2000000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 10, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS["); add_srs_wkt (p, 11, "\"Easting\",EAST],AUTHORITY[\"EPSG\",\"32761\"]]"); p = add_epsg_def (filter, first, last, 32766, "epsg", 32766, "WGS 84 / TM 36 SE"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=36 +k=0.9996 +x_0=500000 +y_"); add_proj4text (p, 1, "0=10000000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / TM 36 SE\",GEOGCS[\"WGS 84\",DATUM[\"W"); add_srs_wkt (p, 1, "GS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTH"); add_srs_wkt (p, 2, "ORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],"); add_srs_wkt (p, 3, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 4, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 5, "2\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 6, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 7, "METER[\"central_meridian\",36],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 8, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 9, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 10, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 11, "\",NORTH],AUTHORITY[\"EPSG\",\"32766\"]]"); } libspatialite-4.1.1/src/srsinit/epsg_inlined_06.c0000664000175000017500000046733112163502133016673 00000000000000/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg" on Wed Aug 1 15:15:05 2012 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def (filter, first, last, 2628, "epsg", 2628, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 156E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=156 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 156E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "56],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2628\"]]"); p = add_epsg_def (filter, first, last, 2629, "epsg", 2629, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 159E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 159E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "59],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2629\"]]"); p = add_epsg_def (filter, first, last, 2630, "epsg", 2630, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 162E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=162 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 162E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "62],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2630\"]]"); p = add_epsg_def (filter, first, last, 2631, "epsg", 2631, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 165E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 165E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "65],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2631\"]]"); p = add_epsg_def (filter, first, last, 2632, "epsg", 2632, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 168E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=168 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 168E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "68],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2632\"]]"); p = add_epsg_def (filter, first, last, 2633, "epsg", 2633, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 171E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 171E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "71],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2633\"]]"); p = add_epsg_def (filter, first, last, 2634, "epsg", 2634, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 174E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=174 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 174E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "74],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2634\"]]"); p = add_epsg_def (filter, first, last, 2635, "epsg", 2635, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 177E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 177E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "77],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2635\"]]"); p = add_epsg_def (filter, first, last, 2636, "epsg", 2636, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 180E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=180 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 180E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "80],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2636\"]]"); p = add_epsg_def (filter, first, last, 2637, "epsg", 2637, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 177W"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 177W\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "177],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2637\"]]"); p = add_epsg_def (filter, first, last, 2638, "epsg", 2638, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 174W"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-174 +k=1 +x_0=500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 174W\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "174],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2638\"]]"); p = add_epsg_def (filter, first, last, 2639, "epsg", 2639, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 171W"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 171W\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "171],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2639\"]]"); p = add_epsg_def (filter, first, last, 2640, "epsg", 2640, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 168W"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-168 +k=1 +x_0=500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 168W\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "168],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2640\"]]"); p = add_epsg_def (filter, first, last, 2641, "epsg", 2641, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 7"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=7500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 7\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",21"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",7500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2641\"]]"); p = add_epsg_def (filter, first, last, 2642, "epsg", 2642, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 8"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=8500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 8\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",24"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",8500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2642\"]]"); p = add_epsg_def (filter, first, last, 2643, "epsg", 2643, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 9"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=9500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 9\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",27"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",9500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2643\"]]"); p = add_epsg_def (filter, first, last, 2644, "epsg", 2644, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 10"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=10500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); add_proj4text (p, 2, "0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 10\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",3"); add_srs_wkt (p, 9, "0],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",10500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2644\"]]"); p = add_epsg_def (filter, first, last, 2645, "epsg", 2645, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 11"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=11500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); add_proj4text (p, 2, "0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 11\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",3"); add_srs_wkt (p, 9, "3],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",11500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2645\"]]"); p = add_epsg_def (filter, first, last, 2646, "epsg", 2646, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 12"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=36 +k=1 +x_0=12500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); add_proj4text (p, 2, "0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 12\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",3"); add_srs_wkt (p, 9, "6],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",12500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2646\"]]"); p = add_epsg_def (filter, first, last, 2647, "epsg", 2647, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 13"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=13500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); add_proj4text (p, 2, "0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 13\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",3"); add_srs_wkt (p, 9, "9],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",13500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2647\"]]"); p = add_epsg_def (filter, first, last, 2648, "epsg", 2648, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 14"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=42 +k=1 +x_0=14500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); add_proj4text (p, 2, "0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 14\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",4"); add_srs_wkt (p, 9, "2],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",14500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2648\"]]"); p = add_epsg_def (filter, first, last, 2649, "epsg", 2649, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 15"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=15500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); add_proj4text (p, 2, "0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 15\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",4"); add_srs_wkt (p, 9, "5],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",15500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2649\"]]"); p = add_epsg_def (filter, first, last, 2650, "epsg", 2650, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 16"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=48 +k=1 +x_0=16500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); add_proj4text (p, 2, "0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 16\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",4"); add_srs_wkt (p, 9, "8],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",16500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2650\"]]"); p = add_epsg_def (filter, first, last, 2651, "epsg", 2651, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 17"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=17500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); add_proj4text (p, 2, "0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 17\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",5"); add_srs_wkt (p, 9, "1],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",17500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2651\"]]"); p = add_epsg_def (filter, first, last, 2652, "epsg", 2652, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 18"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=54 +k=1 +x_0=18500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); add_proj4text (p, 2, "0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 18\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",5"); add_srs_wkt (p, 9, "4],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",18500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2652\"]]"); p = add_epsg_def (filter, first, last, 2653, "epsg", 2653, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 19"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=19500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); add_proj4text (p, 2, "0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 19\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",5"); add_srs_wkt (p, 9, "7],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",19500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2653\"]]"); p = add_epsg_def (filter, first, last, 2654, "epsg", 2654, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 20"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=60 +k=1 +x_0=20500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); add_proj4text (p, 2, "0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 20\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",6"); add_srs_wkt (p, 9, "0],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",20500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2654\"]]"); p = add_epsg_def (filter, first, last, 2655, "epsg", 2655, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 21"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=21500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); add_proj4text (p, 2, "0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 21\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",6"); add_srs_wkt (p, 9, "3],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",21500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2655\"]]"); p = add_epsg_def (filter, first, last, 2656, "epsg", 2656, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 22"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=66 +k=1 +x_0=22500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); add_proj4text (p, 2, "0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 22\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",6"); add_srs_wkt (p, 9, "6],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",22500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2656\"]]"); p = add_epsg_def (filter, first, last, 2657, "epsg", 2657, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 23"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=23500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); add_proj4text (p, 2, "0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 23\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",6"); add_srs_wkt (p, 9, "9],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",23500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2657\"]]"); p = add_epsg_def (filter, first, last, 2658, "epsg", 2658, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 24"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=72 +k=1 +x_0=24500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); add_proj4text (p, 2, "0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 24\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",7"); add_srs_wkt (p, 9, "2],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",24500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2658\"]]"); p = add_epsg_def (filter, first, last, 2659, "epsg", 2659, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 25"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=25500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); add_proj4text (p, 2, "0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 25\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",7"); add_srs_wkt (p, 9, "5],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",25500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2659\"]]"); p = add_epsg_def (filter, first, last, 2660, "epsg", 2660, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 26"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=78 +k=1 +x_0=26500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); add_proj4text (p, 2, "0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 26\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",7"); add_srs_wkt (p, 9, "8],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",26500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2660\"]]"); p = add_epsg_def (filter, first, last, 2661, "epsg", 2661, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 27"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=27500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); add_proj4text (p, 2, "0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 27\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",8"); add_srs_wkt (p, 9, "1],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",27500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2661\"]]"); p = add_epsg_def (filter, first, last, 2662, "epsg", 2662, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 28"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=84 +k=1 +x_0=28500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); add_proj4text (p, 2, "0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 28\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",8"); add_srs_wkt (p, 9, "4],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",28500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2662\"]]"); p = add_epsg_def (filter, first, last, 2663, "epsg", 2663, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 29"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=29500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); add_proj4text (p, 2, "0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 29\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",8"); add_srs_wkt (p, 9, "7],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",29500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2663\"]]"); p = add_epsg_def (filter, first, last, 2664, "epsg", 2664, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 30"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=30500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); add_proj4text (p, 2, "0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 30\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",9"); add_srs_wkt (p, 9, "0],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",30500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2664\"]]"); p = add_epsg_def (filter, first, last, 2665, "epsg", 2665, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 31"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=31500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); add_proj4text (p, 2, "0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 31\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",9"); add_srs_wkt (p, 9, "3],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",31500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2665\"]]"); p = add_epsg_def (filter, first, last, 2666, "epsg", 2666, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 32"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=96 +k=1 +x_0=32500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); add_proj4text (p, 2, "0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 32\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",9"); add_srs_wkt (p, 9, "6],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",32500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2666\"]]"); p = add_epsg_def (filter, first, last, 2667, "epsg", 2667, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 33"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=33500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-"); add_proj4text (p, 2, "0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 33\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",9"); add_srs_wkt (p, 9, "9],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",33500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2667\"]]"); p = add_epsg_def (filter, first, last, 2668, "epsg", 2668, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 34"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=34500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); add_proj4text (p, 2, "-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 34\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "02],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",34500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2668\"]]"); p = add_epsg_def (filter, first, last, 2669, "epsg", 2669, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 35"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=35500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); add_proj4text (p, 2, "-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 35\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "05],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",35500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2669\"]]"); p = add_epsg_def (filter, first, last, 2670, "epsg", 2670, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 36"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=36500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); add_proj4text (p, 2, "-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 36\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "08],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",36500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2670\"]]"); p = add_epsg_def (filter, first, last, 2671, "epsg", 2671, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 37"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=37500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); add_proj4text (p, 2, "-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 37\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "11],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",37500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2671\"]]"); p = add_epsg_def (filter, first, last, 2672, "epsg", 2672, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 38"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=38500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); add_proj4text (p, 2, "-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 38\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "14],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",38500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2672\"]]"); p = add_epsg_def (filter, first, last, 2673, "epsg", 2673, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 39"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=39500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); add_proj4text (p, 2, "-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 39\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "17],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",39500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2673\"]]"); p = add_epsg_def (filter, first, last, 2674, "epsg", 2674, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 40"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=40500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); add_proj4text (p, 2, "-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 40\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "20],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",40500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2674\"]]"); p = add_epsg_def (filter, first, last, 2675, "epsg", 2675, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 41"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=41500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); add_proj4text (p, 2, "-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 41\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "23],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",41500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2675\"]]"); p = add_epsg_def (filter, first, last, 2676, "epsg", 2676, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 42"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=126 +k=1 +x_0=42500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); add_proj4text (p, 2, "-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 42\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "26],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",42500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2676\"]]"); p = add_epsg_def (filter, first, last, 2677, "epsg", 2677, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 43"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=43500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); add_proj4text (p, 2, "-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 43\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "29],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",43500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2677\"]]"); p = add_epsg_def (filter, first, last, 2678, "epsg", 2678, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 44"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=132 +k=1 +x_0=44500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); add_proj4text (p, 2, "-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 44\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "32],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",44500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2678\"]]"); p = add_epsg_def (filter, first, last, 2679, "epsg", 2679, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 45"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=45500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); add_proj4text (p, 2, "-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 45\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "35],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",45500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2679\"]]"); p = add_epsg_def (filter, first, last, 2680, "epsg", 2680, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 46"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=138 +k=1 +x_0=46500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); add_proj4text (p, 2, "-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 46\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "38],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",46500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2680\"]]"); p = add_epsg_def (filter, first, last, 2681, "epsg", 2681, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 47"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=47500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); add_proj4text (p, 2, "-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 47\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "41],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",47500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2681\"]]"); p = add_epsg_def (filter, first, last, 2682, "epsg", 2682, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 48"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=144 +k=1 +x_0=48500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); add_proj4text (p, 2, "-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 48\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "44],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",48500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2682\"]]"); p = add_epsg_def (filter, first, last, 2683, "epsg", 2683, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 49"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=49500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); add_proj4text (p, 2, "-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 49\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "47],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",49500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2683\"]]"); p = add_epsg_def (filter, first, last, 2684, "epsg", 2684, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 50"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=150 +k=1 +x_0=50500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); add_proj4text (p, 2, "-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 50\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "50],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",50500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2684\"]]"); p = add_epsg_def (filter, first, last, 2685, "epsg", 2685, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 51"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=51500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); add_proj4text (p, 2, "-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 51\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "53],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",51500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2685\"]]"); p = add_epsg_def (filter, first, last, 2686, "epsg", 2686, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 52"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=156 +k=1 +x_0=52500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); add_proj4text (p, 2, "-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 52\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "56],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",52500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2686\"]]"); p = add_epsg_def (filter, first, last, 2687, "epsg", 2687, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 53"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=53500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); add_proj4text (p, 2, "-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 53\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "59],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",53500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2687\"]]"); p = add_epsg_def (filter, first, last, 2688, "epsg", 2688, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 54"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=162 +k=1 +x_0=54500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); add_proj4text (p, 2, "-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 54\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "62],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",54500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2688\"]]"); p = add_epsg_def (filter, first, last, 2689, "epsg", 2689, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 55"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=55500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); add_proj4text (p, 2, "-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 55\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "65],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",55500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2689\"]]"); p = add_epsg_def (filter, first, last, 2690, "epsg", 2690, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 56"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=168 +k=1 +x_0=56500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); add_proj4text (p, 2, "-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 56\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "68],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",56500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2690\"]]"); p = add_epsg_def (filter, first, last, 2691, "epsg", 2691, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 57"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=57500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); add_proj4text (p, 2, "-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 57\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "71],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",57500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2691\"]]"); p = add_epsg_def (filter, first, last, 2692, "epsg", 2692, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 58"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=174 +k=1 +x_0=58500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); add_proj4text (p, 2, "-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 58\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "74],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",58500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2692\"]]"); p = add_epsg_def (filter, first, last, 2693, "epsg", 2693, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 59"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=59500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); add_proj4text (p, 2, "-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 59\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "77],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",59500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2693\"]]"); p = add_epsg_def (filter, first, last, 2694, "epsg", 2694, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 60 (deprecated)"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=180 +k=1 +x_0=60000000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,"); add_proj4text (p, 2, "-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 60 (d"); add_srs_wkt (p, 1, "eprecated)\",GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_199"); add_srs_wkt (p, 2, "5\",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,"); add_srs_wkt (p, 4, "0.13,-0.22],AUTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Green"); add_srs_wkt (p, 5, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 6, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT"); add_srs_wkt (p, 7, "Y[\"EPSG\",\"4200\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 8, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 9, "l_meridian\",180],PARAMETER[\"scale_factor\",1],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",60000000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 12, "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"269"); add_srs_wkt (p, 13, "4\"]]"); p = add_epsg_def (filter, first, last, 2695, "epsg", 2695, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 61"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=61500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13"); add_proj4text (p, 2, ",-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 61\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "177],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",61500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); add_srs_wkt (p, 12, "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2695\"]]"); p = add_epsg_def (filter, first, last, 2696, "epsg", 2696, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 62"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-174 +k=1 +x_0=62500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13"); add_proj4text (p, 2, ",-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 62\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "174],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",62500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); add_srs_wkt (p, 12, "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2696\"]]"); p = add_epsg_def (filter, first, last, 2697, "epsg", 2697, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 63"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=63500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13"); add_proj4text (p, 2, ",-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 63\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "171],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",63500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); add_srs_wkt (p, 12, "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2697\"]]"); p = add_epsg_def (filter, first, last, 2698, "epsg", 2698, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 64"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-168 +k=1 +x_0=64500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13"); add_proj4text (p, 2, ",-0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 64\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "168],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",64500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); add_srs_wkt (p, 12, "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2698\"]]"); p = add_epsg_def (filter, first, last, 2699, "epsg", 2699, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 21E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 21E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",21"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2699\"]]"); p = add_epsg_def (filter, first, last, 2700, "epsg", 2700, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 24E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 24E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",24"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2700\"]]"); p = add_epsg_def (filter, first, last, 2701, "epsg", 2701, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 27E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 27E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",27"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2701\"]]"); p = add_epsg_def (filter, first, last, 2702, "epsg", 2702, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 30E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 30E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",30"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2702\"]]"); p = add_epsg_def (filter, first, last, 2703, "epsg", 2703, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 33E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 33E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",33"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2703\"]]"); p = add_epsg_def (filter, first, last, 2704, "epsg", 2704, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 36E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=36 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 36E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",36"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2704\"]]"); p = add_epsg_def (filter, first, last, 2705, "epsg", 2705, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 39E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 39E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",39"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2705\"]]"); p = add_epsg_def (filter, first, last, 2706, "epsg", 2706, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 42E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=42 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 42E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",42"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2706\"]]"); p = add_epsg_def (filter, first, last, 2707, "epsg", 2707, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 45E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 45E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",45"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2707\"]]"); p = add_epsg_def (filter, first, last, 2708, "epsg", 2708, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 48E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=48 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 48E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",48"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2708\"]]"); p = add_epsg_def (filter, first, last, 2709, "epsg", 2709, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 51E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 51E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",51"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2709\"]]"); p = add_epsg_def (filter, first, last, 2710, "epsg", 2710, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 54E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=54 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 54E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",54"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2710\"]]"); p = add_epsg_def (filter, first, last, 2711, "epsg", 2711, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 57E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 57E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",57"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2711\"]]"); p = add_epsg_def (filter, first, last, 2712, "epsg", 2712, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 60E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=60 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 60E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",60"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2712\"]]"); p = add_epsg_def (filter, first, last, 2713, "epsg", 2713, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 63E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 63E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",63"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2713\"]]"); p = add_epsg_def (filter, first, last, 2714, "epsg", 2714, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 66E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=66 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 66E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",66"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2714\"]]"); p = add_epsg_def (filter, first, last, 2715, "epsg", 2715, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 69E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 69E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",69"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2715\"]]"); p = add_epsg_def (filter, first, last, 2716, "epsg", 2716, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 72E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=72 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 72E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",72"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2716\"]]"); p = add_epsg_def (filter, first, last, 2717, "epsg", 2717, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 75E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 75E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",75"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2717\"]]"); p = add_epsg_def (filter, first, last, 2718, "epsg", 2718, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 78E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=78 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 78E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",78"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2718\"]]"); p = add_epsg_def (filter, first, last, 2719, "epsg", 2719, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 81E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 81E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",81"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2719\"]]"); p = add_epsg_def (filter, first, last, 2720, "epsg", 2720, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 84E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=84 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 84E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",84"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2720\"]]"); p = add_epsg_def (filter, first, last, 2721, "epsg", 2721, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 87E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 87E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",87"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2721\"]]"); p = add_epsg_def (filter, first, last, 2722, "epsg", 2722, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 90E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 90E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",90"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2722\"]]"); p = add_epsg_def (filter, first, last, 2723, "epsg", 2723, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 93E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 93E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",93"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2723\"]]"); p = add_epsg_def (filter, first, last, 2724, "epsg", 2724, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 96E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=96 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 96E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",96"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2724\"]]"); p = add_epsg_def (filter, first, last, 2725, "epsg", 2725, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 99E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 99E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",99"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2725\"]]"); p = add_epsg_def (filter, first, last, 2726, "epsg", 2726, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 102E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 102E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "02],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2726\"]]"); p = add_epsg_def (filter, first, last, 2727, "epsg", 2727, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 105E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 105E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "05],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2727\"]]"); p = add_epsg_def (filter, first, last, 2728, "epsg", 2728, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 108E"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 108E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "08],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2728\"]]"); } #endif /* full EPSG initialization enabled/disabled */ libspatialite-4.1.1/src/versioninfo/0000775000175000017500000000000012163503225014475 500000000000000libspatialite-4.1.1/src/versioninfo/version.c0000664000175000017500000000376612163502133016257 00000000000000/* version.c -- Gaia spatial support for SQLite version 4.1, 2013 May 8 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include const char spatialiteversion[] = VERSION; SPATIALITE_DECLARE const char * spatialite_version (void) { return spatialiteversion; } libspatialite-4.1.1/src/virtualtext/0000775000175000017500000000000012163503225014527 500000000000000libspatialite-4.1.1/src/virtualtext/Makefile.am0000664000175000017500000000027112163502133016500 00000000000000 INCLUDES = @CFLAGS@ INCLUDES += -I$(top_srcdir)/src/headers noinst_LTLIBRARIES = libvirtualtext.la libvirtualtext_la_SOURCES = virtualtext.c MOSTLYCLEANFILES = *.gcna *.gcno *.gcda libspatialite-4.1.1/src/virtualtext/virtualtext.c0000664000175000017500000012463712163502133017220 00000000000000/* virtualtext.c -- SQLite3 extension [VIRTUAL TABLE accessing CSV/TXT] version 4.1, 2013 May 8 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) /* MSVC strictly requires this include [off_t] */ #include #endif #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include #include #include #include #ifdef _WIN32 #define strcasecmp _stricmp #endif /* not WIN32 */ #if OMIT_ICONV == 0 /* if ICONV is disabled no TXT support is available */ struct sqlite3_module virtualtext_module; typedef struct VirtualTextStruct { /* extends the sqlite3_vtab struct */ const sqlite3_module *pModule; /* ptr to sqlite module: USED INTERNALLY BY SQLITE */ int nRef; /* # references: USED INTERNALLY BY SQLITE */ char *zErrMsg; /* error message: USED INTERNALLY BY SQLITE */ sqlite3 *db; /* the sqlite db holding the virtual table */ gaiaTextReaderPtr reader; /* the TextReader object */ } VirtualText; typedef VirtualText *VirtualTextPtr; typedef struct VirtualTextConstraintStruct { /* a constraint to be verified for xFilter */ int iColumn; /* Column on left-hand side of constraint */ int op; /* Constraint operator */ char valueType; /* value Type ('I'=int,'D'=double,'T'=text) */ sqlite3_int64 intValue; /* Int64 comparison value */ double dblValue; /* Double comparison value */ char *txtValue; /* Text comparison value */ struct VirtualTextConstraintStruct *next; } VirtualTextConstraint; typedef VirtualTextConstraint *VirtualTextConstraintPtr; typedef struct VirtualTextCursortStruct { /* extends the sqlite3_vtab_cursor struct */ VirtualTextPtr pVtab; /* Virtual table of this cursor */ long current_row; /* the current row ID */ int eof; /* the EOF marker */ VirtualTextConstraintPtr firstConstraint; VirtualTextConstraintPtr lastConstraint; } VirtualTextCursor; typedef VirtualTextCursor *VirtualTextCursorPtr; static void text_clean_integer (char *value) { /* cleaning an integer value */ char last; char buffer[35536]; int len = strlen (value); last = value[len - 1]; if (last == '-' || last == '+') { /* trailing sign; transforming into a leading sign */ *buffer = last; strcpy (buffer + 1, value); buffer[len - 1] = '\0'; strcpy (value, buffer); } } static void text_clean_double (char *value) { /* cleaning an integer value */ char *p; char last; char buffer[35536]; int len = strlen (value); last = value[len - 1]; if (last == '-' || last == '+') { /* trailing sign; transforming into a leading sign */ *buffer = last; strcpy (buffer + 1, value); buffer[len - 1] = '\0'; strcpy (value, buffer); } p = value; while (*p != '\0') { /* transforming COMMAs into POINTs */ if (*p == ',') *p = '.'; p++; } } static int vtxt_create (sqlite3 * db, void *pAux, int argc, const char *const *argv, sqlite3_vtab ** ppVTab, char **pzErr) { /* creates the virtual table connected to some TEXT file */ char path[2048]; char encoding[128]; const char *vtable; const char *pEncoding = NULL; int len; gaiaTextReaderPtr text = NULL; const char *pPath = NULL; char field_separator = '\t'; char text_separator = '"'; char decimal_separator = '.'; char first_line_titles = 1; int i; char sql[65535]; int seed; int dup; int idup; char dummyName[4096]; char **col_name = NULL; VirtualTextPtr p_vt; if (pAux) pAux = pAux; /* unused arg warning suppression */ /* checking for TEXTfile PATH */ if (argc >= 5 && argc <= 9) { vtable = argv[1]; pPath = argv[3]; len = strlen (pPath); if ((*(pPath + 0) == '\'' || *(pPath + 0) == '"') && (*(pPath + len - 1) == '\'' || *(pPath + len - 1) == '"')) { /* the path is enclosed between quotes - we need to dequote it */ strcpy (path, pPath + 1); len = strlen (path); *(path + len - 1) = '\0'; } else strcpy (path, pPath); pEncoding = argv[4]; len = strlen (pEncoding); if ((*(pEncoding + 0) == '\'' || *(pEncoding + 0) == '"') && (*(pEncoding + len - 1) == '\'' || *(pEncoding + len - 1) == '"')) { /* the charset-name is enclosed between quotes - we need to dequote it */ strcpy (encoding, pEncoding + 1); len = strlen (encoding); *(encoding + len - 1) = '\0'; } else strcpy (encoding, pEncoding); if (argc >= 6) { if (*(argv[5]) == '0' || *(argv[5]) == 'n' || *(argv[5]) == 'N') first_line_titles = 0; } if (argc >= 7) { if (strcasecmp (argv[6], "COMMA") == 0) decimal_separator = ','; if (strcasecmp (argv[6], "POINT") == 0) decimal_separator = '.'; } if (argc >= 8) { if (strcasecmp (argv[7], "SINGLEQUOTE") == 0) text_separator = '\''; if (strcasecmp (argv[7], "DOUBLEQUOTE") == 0) text_separator = '"'; if (strcasecmp (argv[7], "NONE") == 0) text_separator = '\0'; } if (argc == 9) { if (strlen (argv[8]) == 3) { if (strcasecmp (argv[8], "TAB") == 0) field_separator = '\t'; if (*(argv[8] + 0) == '\'' && *(argv[8] + 2) == '\'') field_separator = *(argv[8] + 1); } } } else { *pzErr = sqlite3_mprintf ("[VirtualText module] CREATE VIRTUAL: illegal arg list\n" "\t\t{ text_path, encoding [, first_row_as_titles [, [decimal_separator [, text_separator, [field_separator] ] ] ] }\n"); return SQLITE_ERROR; } p_vt = (VirtualTextPtr) sqlite3_malloc (sizeof (VirtualText)); if (!p_vt) return SQLITE_NOMEM; p_vt->pModule = &virtualtext_module; p_vt->nRef = 0; p_vt->zErrMsg = NULL; p_vt->db = db; text = gaiaTextReaderAlloc (path, field_separator, text_separator, decimal_separator, first_line_titles, encoding); if (text) { if (gaiaTextReaderParse (text) == 0) { gaiaTextReaderDestroy (text); text = NULL; } } if (!text) { /* something is going the wrong way; creating a stupid default table */ spatialite_e ("VirtualText: invalid data source\n"); sprintf (sql, "CREATE TABLE %s (ROWNO INTEGER)", vtable); if (sqlite3_declare_vtab (db, sql) != SQLITE_OK) { *pzErr = sqlite3_mprintf ("[VirtualText module] cannot build a table from TEXT file\n"); return SQLITE_ERROR; } p_vt->reader = NULL; *ppVTab = (sqlite3_vtab *) p_vt; return SQLITE_OK; } p_vt->reader = text; /* preparing the COLUMNs for this VIRTUAL TABLE */ sprintf (sql, "CREATE TABLE %s (ROWNO INTEGER", vtable); col_name = malloc (sizeof (char *) * text->max_fields); seed = 0; for (i = 0; i < text->max_fields; i++) { strcat (sql, ", "); sprintf (dummyName, "\"%s\"", text->columns[i].name); dup = 0; for (idup = 0; idup < i; idup++) { if (strcasecmp (dummyName, *(col_name + idup)) == 0) dup = 1; } if (strcasecmp (dummyName, "ROWNO") == 0) dup = 1; if (dup) sprintf (dummyName, "DUPCOL_%d", seed++); len = strlen (dummyName); *(col_name + i) = malloc (len + 1); strcpy (*(col_name + i), dummyName); strcat (sql, dummyName); if (text->columns[i].type == VRTTXT_INTEGER) strcat (sql, " INTEGER"); else if (text->columns[i].type == VRTTXT_DOUBLE) strcat (sql, " DOUBLE"); else strcat (sql, " TEXT"); } strcat (sql, ")"); if (col_name) { /* releasing memory allocation for column names */ for (i = 0; i < text->max_fields; i++) free (*(col_name + i)); free (col_name); } if (sqlite3_declare_vtab (db, sql) != SQLITE_OK) { *pzErr = sqlite3_mprintf ("[VirtualText module] CREATE VIRTUAL: invalid SQL statement \"%s\"", sql); return SQLITE_ERROR; } *ppVTab = (sqlite3_vtab *) p_vt; return SQLITE_OK; } static int vtxt_connect (sqlite3 * db, void *pAux, int argc, const char *const *argv, sqlite3_vtab ** ppVTab, char **pzErr) { /* connects the virtual table to some shapefile - simply aliases vshp_create() */ return vtxt_create (db, pAux, argc, argv, ppVTab, pzErr); } static int vtxt_best_index (sqlite3_vtab * pVTab, sqlite3_index_info * pIndex) { /* best index selection */ int i; int iArg = 0; char str[2048]; char buf[64]; if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ *str = '\0'; for (i = 0; i < pIndex->nConstraint; i++) { if (pIndex->aConstraint[i].usable) { iArg++; pIndex->aConstraintUsage[i].argvIndex = iArg; pIndex->aConstraintUsage[i].omit = 1; sprintf (buf, "%d:%d,", pIndex->aConstraint[i].iColumn, pIndex->aConstraint[i].op); strcat (str, buf); } } if (*str != '\0') { pIndex->idxStr = sqlite3_mprintf ("%s", str); pIndex->needToFreeIdxStr = 1; } return SQLITE_OK; } static int vtxt_disconnect (sqlite3_vtab * pVTab) { /* disconnects the virtual table */ VirtualTextPtr p_vt = (VirtualTextPtr) pVTab; if (p_vt->reader) gaiaTextReaderDestroy (p_vt->reader); sqlite3_free (p_vt); return SQLITE_OK; } static int vtxt_destroy (sqlite3_vtab * pVTab) { /* destroys the virtual table - simply aliases vtxt_disconnect() */ return vtxt_disconnect (pVTab); } static int vtxt_open (sqlite3_vtab * pVTab, sqlite3_vtab_cursor ** ppCursor) { /* opening a new cursor */ gaiaTextReaderPtr text; VirtualTextCursorPtr cursor = (VirtualTextCursorPtr) sqlite3_malloc (sizeof (VirtualTextCursor)); if (cursor == NULL) return SQLITE_NOMEM; cursor->pVtab = (VirtualTextPtr) pVTab; cursor->current_row = 0; cursor->eof = 0; cursor->firstConstraint = NULL; cursor->lastConstraint = NULL; *ppCursor = (sqlite3_vtab_cursor *) cursor; text = cursor->pVtab->reader; if (!text) cursor->eof = 1; else { if (!gaiaTextReaderGetRow (text, cursor->current_row)) cursor->eof = 1; } return SQLITE_OK; } static void vtxt_free_constraints (VirtualTextCursorPtr cursor) { /* memory cleanup - cursor constraints */ VirtualTextConstraintPtr pC; VirtualTextConstraintPtr pCn; pC = cursor->firstConstraint; while (pC) { pCn = pC->next; if (pC->txtValue) sqlite3_free (pC->txtValue); sqlite3_free (pC); pC = pCn; } cursor->firstConstraint = NULL; cursor->lastConstraint = NULL; } static int vtxt_close (sqlite3_vtab_cursor * pCursor) { /* closing the cursor */ VirtualTextCursorPtr cursor = (VirtualTextCursorPtr) pCursor; vtxt_free_constraints (cursor); sqlite3_free (cursor); return SQLITE_OK; } static int vtxt_parse_constraint (const char *str, int index, int *iColumn, int *op) { /* parsing a constraint string */ char buf[64]; const char *in = str; char *out = buf; int i = 0; int found = 0; *out = '\0'; while (*in != '\0') { if (*in == ',') { if (index == i) { *out = '\0'; found = 1; break; } i++; in++; continue; } if (index == i) *out++ = *in; in++; } if (!found) return 0; in = buf; for (i = 0; i < (int) strlen (buf); i++) { if (buf[i] == ':') { buf[i] = '\0'; *iColumn = atoi (buf); *op = atoi (buf + i + 1); return 1; } in++; } return 0; } static int vtxt_eval_constraints (VirtualTextCursorPtr cursor) { /* evaluating Filter constraints */ int nCol; int i; char buf[4096]; int type; const char *value = NULL; sqlite3_int64 int_value; double dbl_value; char *txt_value = NULL; int is_int = 0; int is_dbl = 0; int is_txt = 0; gaiaTextReaderPtr text = cursor->pVtab->reader; VirtualTextConstraintPtr pC; if (text->current_line_ready == 0) return SQLITE_ERROR; pC = cursor->firstConstraint; while (pC) { int ok = 0; if (pC->iColumn == 0) { /* the ROWNO column */ int_value = cursor->current_row; is_int = 1; goto eval; } nCol = 1; for (i = 0; i < text->max_fields; i++) { is_int = 0; is_dbl = 0; is_txt = 0; if (nCol == pC->iColumn) { if (!gaiaTextReaderFetchField (text, i, &type, &value)) ; else { if (type == VRTTXT_INTEGER) { strcpy (buf, value); text_clean_integer (buf); #if defined(_WIN32) || defined(__MINGW32__) /* CAVEAT - M$ runtime has non-standard functions for 64 bits */ int_value = _atoi64 (buf); #else int_value = atoll (buf); #endif is_int = 1; } else if (type == VRTTXT_DOUBLE) { strcpy (buf, value); text_clean_double (buf); dbl_value = atof (buf); is_dbl = 1; } else if (type == VRTTXT_TEXT) { txt_value = (char *) value; is_txt = 1; } } goto eval; } nCol++; } return 0; eval: ok = 0; if (pC->valueType == 'I') { if (is_int) { switch (pC->op) { case SQLITE_INDEX_CONSTRAINT_EQ: if (int_value == pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GT: if (int_value > pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LE: if (int_value <= pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LT: if (int_value < pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GE: if (int_value >= pC->intValue) ok = 1; break; }; } if (is_dbl) { switch (pC->op) { case SQLITE_INDEX_CONSTRAINT_EQ: if (dbl_value == pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GT: if (dbl_value > pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LE: if (dbl_value <= pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LT: if (dbl_value < pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GE: if (dbl_value >= pC->intValue) ok = 1; break; }; } } if (pC->valueType == 'D') { if (is_int) { switch (pC->op) { case SQLITE_INDEX_CONSTRAINT_EQ: if (int_value == pC->dblValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GT: if (int_value > pC->dblValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LE: if (int_value <= pC->dblValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LT: if (int_value < pC->dblValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GE: if (int_value >= pC->dblValue) ok = 1; break; }; } if (is_dbl) { switch (pC->op) { case SQLITE_INDEX_CONSTRAINT_EQ: if (dbl_value == pC->dblValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GT: if (dbl_value > pC->dblValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LE: if (dbl_value <= pC->dblValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LT: if (dbl_value < pC->dblValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GE: if (dbl_value >= pC->dblValue) ok = 1; break; }; } } if (pC->valueType == 'T') { if (is_txt) { int ret = strcmp (txt_value, pC->txtValue); switch (pC->op) { case SQLITE_INDEX_CONSTRAINT_EQ: if (ret == 0) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GT: if (ret > 0) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LE: if (ret <= 0) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LT: if (ret < 0) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GE: if (ret >= 0) ok = 1; break; }; } } if (txt_value) { free (txt_value); txt_value = NULL; } if (!ok) return 0; pC = pC->next; } if (txt_value) free (txt_value); return 1; } static int vtxt_filter (sqlite3_vtab_cursor * pCursor, int idxNum, const char *idxStr, int argc, sqlite3_value ** argv) { /* setting up a cursor filter */ int i; int iColumn; int op; int len; VirtualTextConstraintPtr pC; VirtualTextCursorPtr cursor = (VirtualTextCursorPtr) pCursor; gaiaTextReaderPtr text = cursor->pVtab->reader; if (idxNum) idxNum = idxNum; /* unused arg warning suppression */ /* resetting any previously set filter constraint */ vtxt_free_constraints (cursor); for (i = 0; i < argc; i++) { if (!vtxt_parse_constraint (idxStr, i, &iColumn, &op)) continue; pC = sqlite3_malloc (sizeof (VirtualTextConstraint)); if (!pC) continue; pC->iColumn = iColumn; pC->op = op; pC->valueType = '\0'; pC->txtValue = NULL; pC->next = NULL; if (sqlite3_value_type (argv[i]) == SQLITE_INTEGER) { pC->valueType = 'I'; pC->intValue = sqlite3_value_int64 (argv[i]); } if (sqlite3_value_type (argv[i]) == SQLITE_FLOAT) { pC->valueType = 'D'; pC->dblValue = sqlite3_value_double (argv[i]); } if (sqlite3_value_type (argv[i]) == SQLITE_TEXT) { pC->valueType = 'T'; len = sqlite3_value_bytes (argv[i]) + 1; pC->txtValue = (char *) sqlite3_malloc (len); if (pC->txtValue) strcpy (pC->txtValue, (char *) sqlite3_value_text (argv[i])); } if (cursor->firstConstraint == NULL) cursor->firstConstraint = pC; if (cursor->lastConstraint != NULL) cursor->lastConstraint->next = pC; cursor->lastConstraint = pC; } cursor->current_row = 0; cursor->eof = 0; while (1) { if (!gaiaTextReaderGetRow (text, cursor->current_row)) { cursor->eof = 1; break; } if (vtxt_eval_constraints (cursor)) break; cursor->current_row++; } return SQLITE_OK; } static int vtxt_next (sqlite3_vtab_cursor * pCursor) { /* fetching next row from cursor */ VirtualTextCursorPtr cursor = (VirtualTextCursorPtr) pCursor; gaiaTextReaderPtr text = cursor->pVtab->reader; if (!text) cursor->eof = 1; else { while (1) { cursor->current_row++; if (!gaiaTextReaderGetRow (text, cursor->current_row)) { cursor->eof = 1; break; } if (vtxt_eval_constraints (cursor)) break; } } return SQLITE_OK; } static int vtxt_eof (sqlite3_vtab_cursor * pCursor) { /* cursor EOF */ VirtualTextCursorPtr cursor = (VirtualTextCursorPtr) pCursor; return cursor->eof; } static int vtxt_column (sqlite3_vtab_cursor * pCursor, sqlite3_context * pContext, int column) { /* fetching value for the Nth column */ int nCol = 1; int i; char buf[4096]; int type; const char *value; VirtualTextCursorPtr cursor = (VirtualTextCursorPtr) pCursor; gaiaTextReaderPtr text = cursor->pVtab->reader; if (column == 0) { /* the ROWNO column */ sqlite3_result_int (pContext, cursor->current_row); return SQLITE_OK; } if (text->current_line_ready == 0) return SQLITE_ERROR; for (i = 0; i < text->max_fields; i++) { if (nCol == column) { if (!gaiaTextReaderFetchField (text, i, &type, &value)) sqlite3_result_null (pContext); else { if (type == VRTTXT_INTEGER) { strcpy (buf, value); text_clean_integer (buf); #if defined(_WIN32) || defined(__MINGW32__) /* CAVEAT - M$ runtime has non-standard functions for 64 bits */ sqlite3_result_int64 (pContext, _atoi64 (buf)); #else sqlite3_result_int64 (pContext, atoll (buf)); #endif } else if (type == VRTTXT_DOUBLE) { strcpy (buf, value); text_clean_double (buf); sqlite3_result_double (pContext, atof (buf)); } else if (type == VRTTXT_TEXT) sqlite3_result_text (pContext, value, strlen (value), free); else sqlite3_result_null (pContext); } } nCol++; } return SQLITE_OK; } static int vtxt_rowid (sqlite3_vtab_cursor * pCursor, sqlite_int64 * pRowid) { /* fetching the ROWID */ VirtualTextCursorPtr cursor = (VirtualTextCursorPtr) pCursor; *pRowid = cursor->current_row; return SQLITE_OK; } static int vtxt_update (sqlite3_vtab * pVTab, int argc, sqlite3_value ** argv, sqlite_int64 * pRowid) { /* generic update [INSERT / UPDATE / DELETE */ if (pVTab || argc || argv || pRowid) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_READONLY; } static int vtxt_begin (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vtxt_sync (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vtxt_commit (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vtxt_rollback (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } int sqlite3VirtualTextInit (sqlite3 * db) { int rc = SQLITE_OK; virtualtext_module.iVersion = 1; virtualtext_module.xCreate = &vtxt_create; virtualtext_module.xConnect = &vtxt_connect; virtualtext_module.xBestIndex = &vtxt_best_index; virtualtext_module.xDisconnect = &vtxt_disconnect; virtualtext_module.xDestroy = &vtxt_destroy; virtualtext_module.xOpen = &vtxt_open; virtualtext_module.xClose = &vtxt_close; virtualtext_module.xFilter = &vtxt_filter; virtualtext_module.xNext = &vtxt_next; virtualtext_module.xEof = &vtxt_eof; virtualtext_module.xColumn = &vtxt_column; virtualtext_module.xRowid = &vtxt_rowid; virtualtext_module.xUpdate = &vtxt_update; virtualtext_module.xBegin = &vtxt_begin; virtualtext_module.xSync = &vtxt_sync; virtualtext_module.xCommit = &vtxt_commit; virtualtext_module.xRollback = &vtxt_rollback; virtualtext_module.xFindFunction = NULL; sqlite3_create_module_v2 (db, "VirtualText", &virtualtext_module, NULL, 0); return rc; } int virtualtext_extension_init (sqlite3 * db) { return sqlite3VirtualTextInit (db); } /* ** ** TextReader implementation ** */ static struct vrttxt_row_block * vrttxt_block_alloc () { /* allocating a rows Block */ struct vrttxt_row_block *p = malloc (sizeof (struct vrttxt_row_block)); if (!p) return NULL; p->num_rows = 0; p->min_line_no = -1; p->max_line_no = -1; p->next = NULL; return p; } static void vrttxt_block_destroy (struct vrttxt_row_block *p) { /* destroying a rows Block */ if (p) free (p); } GAIAGEO_DECLARE void gaiaTextReaderDestroy (gaiaTextReaderPtr reader) { /* destroying the main TXT-Reader */ int col; struct vrttxt_row_block *blk; struct vrttxt_row_block *blkN; if (reader) { blk = reader->first; while (blk) { /* destroying the row offset Blocks */ blkN = blk->next; vrttxt_block_destroy (blk); blk = blkN; } /* freeing the input buffers */ if (reader->line_buffer) free (reader->line_buffer); if (reader->field_buffer) free (reader->field_buffer); /* freeing the row offsets array */ if (reader->rows) free (reader->rows); /* closing the input file */ fclose (reader->text_file); for (col = 0; col < VRTTXT_FIELDS_MAX; col++) { /* destroying column headers */ if (reader->columns[col].name != NULL) free (reader->columns[col].name); } gaiaFreeUTF8Converter (reader->toUtf8); free (reader); } } GAIAGEO_DECLARE gaiaTextReaderPtr gaiaTextReaderAlloc (const char *path, char field_separator, char text_separator, char decimal_separator, int first_line_titles, const char *encoding) { /* allocating the main TXT-Reader */ int col; gaiaTextReaderPtr reader; FILE *in = fopen (path, "rb"); /* opening the input file */ if (in == NULL) return NULL; /* allocating and initializing the struct */ reader = malloc (sizeof (gaiaTextReader)); if (!reader) { fclose (in); return NULL; } reader->text_file = in; reader->field_separator = field_separator; reader->text_separator = text_separator; reader->decimal_separator = decimal_separator; reader->first_line_titles = first_line_titles; reader->toUtf8 = gaiaCreateUTF8Converter (encoding); if (reader->toUtf8 == (void *) 0) { fclose (in); return NULL; } reader->error = 0; reader->first = NULL; reader->last = NULL; reader->rows = NULL; reader->num_rows = 0; reader->line_no = 0; reader->max_fields = 0; reader->max_current_field = 0; reader->current_line_ready = 0; reader->current_buf_sz = 1024; reader->line_buffer = malloc (1024); reader->field_buffer = malloc (1024); if (reader->line_buffer == NULL || reader->field_buffer == NULL) { /* insufficient memory: no input buffers */ gaiaTextReaderDestroy (reader); return NULL; } for (col = 0; col < VRTTXT_FIELDS_MAX; col++) { /* initializing column headers */ reader->columns[col].name = NULL; reader->columns[col].type = VRTTXT_NULL; } return reader; } static void vrttxt_line_init (struct vrttxt_line *line, off_t offset) { /* initializing a LINE struct */ line->offset = offset; line->len = 0; line->num_fields = 0; line->error = 0; } static void vrttxt_line_end (struct vrttxt_line *line, off_t offset) { /* completing a Line struct (EndOfLine encountered) */ line->len = offset - line->offset; } static void vrttxt_add_field (struct vrttxt_line *line, off_t offset) { /* adding a Field offset to the current Line */ if (line->num_fields >= VRTTXT_FIELDS_MAX) { line->error = 1; return; } line->field_offsets[line->num_fields] = offset - line->offset; line->num_fields++; } static int vrttxt_is_integer (const char *value) { /* checking if this value can be an INTEGER */ int invalids = 0; int digits = 0; int signs = 0; char last = '\0'; const char *p = value; while (*p != '\0') { last = *p; if (*p >= '0' && *p <= '9') digits++; else if (*p == '+' || *p == '-') signs++; else invalids++; p++; } if (invalids) return 0; /* invalid chars where found */ if (signs > 1) return 0; /* more than a single sign */ if (signs) { if (*value == '+' || *value == '-' || last == '+' || last == '-') ; else return 0; /* sign is not the first/last string char */ } return 1; /* ok, can be a valid INTEGER value */ } static int vrttxt_is_double (const char *value, char decimal_separator) { /* checking if this value can be a DOUBLE */ int invalids = 0; int digits = 0; int signs = 0; int points = 0; char last = '\0'; const char *p = value; while (*p != '\0') { last = *p; if (*p >= '0' && *p <= '9') digits++; else if (*p == '+' || *p == '-') signs++; else { if (decimal_separator == ',') { if (*p == ',') points++; else invalids++; } else { if (*p == '.') points++; else invalids++; } } p++; } if (invalids) return 0; /* invalid chars where found */ if (points > 1) return 0; /* more than a single decimal separator */ if (signs > 1) return 0; /* more than a single sign */ if (signs) { if (*value == '+' || *value == '-' || last == '+' || last == '-') ; else return 0; /* sign is not the first/last string char */ } return 1; /* ok, can be a valid DOUBLE value */ } static int vrttxt_check_type (const char *value, char decimal_separator) { /* checking the Field type */ if (*value == '\0') return VRTTXT_NULL; if (vrttxt_is_integer (value)) return VRTTXT_INTEGER; if (vrttxt_is_double (value, decimal_separator)) return VRTTXT_DOUBLE; return VRTTXT_TEXT; } static int vrttxt_set_column_title (gaiaTextReaderPtr txt, int col_no, const char *name) { /* setting a Column header name */ int err; int ind; char *utf8text; char *str = (char *) name; int len = strlen (str); if (str[0] == txt->text_separator && str[len - 1] == txt->text_separator) { /* cleaning the enclosing quotes */ str[len - 1] = '\0'; str = (char *) (name + 1); len -= 2; if (len <= 0) return 0; } utf8text = gaiaConvertToUTF8 (txt->toUtf8, str, len, &err); if (err) { if (utf8text) free (utf8text); return 0; } else str = utf8text; len = strlen (str); for (ind = 0; ind < len; ind++) { /* masking spaces and so on within the column name */ switch (str[ind]) { case ' ': case '\t': case '-': case '+': case '*': case '/': case '(': case ')': case '[': case ']': case '{': case '}': str[ind] = '_'; break; } } if (txt->columns[col_no].name) free (txt->columns[col_no].name); txt->columns[col_no].name = malloc (len + 1); if (txt->columns[col_no].name == NULL) return 0; strcpy (txt->columns[col_no].name, utf8text); free (utf8text); return 1; } static void vrttxt_add_line (gaiaTextReaderPtr txt, struct vrttxt_line *line) { /* appending a Line offset to the main TXT-Reader */ struct vrttxt_row_block *p_block; struct vrttxt_row *p_row; int ind; int off; int len; int value_type; int column_type; int first_line = 0; if (txt->line_no == 0) first_line = 1; if (line->error) { txt->error = 1; txt->line_no++; return; } if (line->num_fields == 0) { txt->line_no++; return; } p_block = txt->last; if (p_block == NULL) { /* the offset Blocks list is empty: allocating the first Block */ p_block = vrttxt_block_alloc (); if (!p_block) { txt->error = 1; txt->line_no++; return; } if (txt->first == NULL) txt->first = p_block; if (txt->last != NULL) txt->last->next = p_block; txt->last = p_block; } else if (p_block->num_rows >= VRTTXT_BLOCK_MAX) { /* the current offset Block is full: expanding the list */ p_block = vrttxt_block_alloc (); if (!p_block) { txt->error = 1; txt->line_no++; return; } if (txt->first == NULL) txt->first = p_block; if (txt->last != NULL) txt->last->next = p_block; txt->last = p_block; } /* inserting the Row offset into the offset Block */ p_row = p_block->rows + p_block->num_rows; p_block->num_rows++; p_row->line_no = txt->line_no; if (p_block->min_line_no < 0) p_block->min_line_no = p_row->line_no; if (p_block->max_line_no < p_row->line_no) p_block->max_line_no = p_row->line_no; txt->line_no++; p_row->offset = line->offset; p_row->len = line->len; p_row->num_fields = line->num_fields; if (line->num_fields > txt->max_fields) txt->max_fields = line->num_fields; off = 0; for (ind = 0; ind < p_row->num_fields; ind++) { /* setting the corresponding Column (aka Field) header */ len = line->field_offsets[ind] - off; if (len == 0) *(txt->field_buffer) = '\0'; else { /* retrieving the current Field Value */ memcpy (txt->field_buffer, txt->line_buffer + off, len); *(txt->field_buffer + len) = '\0'; } if (txt->first_line_titles && first_line) { /* first line: the current value is the Column Name */ if (!vrttxt_set_column_title (txt, ind, txt->field_buffer)) txt->error = 1; } else { /* plain Field Value */ value_type = vrttxt_check_type (txt->field_buffer, txt->decimal_separator); column_type = txt->columns[ind].type; switch (value_type) { /* checking the Column type */ case VRTTXT_INTEGER: if (column_type == VRTTXT_NULL) txt->columns[ind].type = VRTTXT_INTEGER; break; case VRTTXT_DOUBLE: if (column_type == VRTTXT_NULL || column_type == VRTTXT_INTEGER) txt->columns[ind].type = VRTTXT_DOUBLE; break; case VRTTXT_TEXT: txt->columns[ind].type = VRTTXT_TEXT; break; default: break; }; } off = line->field_offsets[ind] + 1; } } static void vrttxt_line_push (gaiaTextReaderPtr txt, char c) { /* inserting a single char into the dynamically growing buffer */ if (txt->error) return; if ((txt->current_buf_off + 1) >= txt->current_buf_sz) { /* expanding the input buffer */ int new_sz; char *new_buf; /* / allocation strategy: / - the input buffer has an initial size of 1024 bytes / (good for short lines) / - the second step allocates 4196 bytes / - the third step allocates 65536 bytes / (good for medium sized lines) / - after this the buffer allocation will be increased / be 1MB at each step (good for huge sized lines) */ if (txt->current_buf_sz < 4196) new_sz = 4196; else if (txt->current_buf_sz < 65536) new_sz = 65536; else new_sz = txt->current_buf_sz + (1024 * 1024); new_buf = malloc (new_sz); if (!new_buf) { txt->error = 1; return; } txt->current_buf_sz = new_sz; memcpy (new_buf, txt->line_buffer, txt->current_buf_off); free (txt->line_buffer); txt->line_buffer = new_buf; free (txt->field_buffer); txt->field_buffer = malloc (new_sz); if (txt->field_buffer == NULL) { txt->error = 1; return; } } *(txt->line_buffer + txt->current_buf_off) = c; txt->current_buf_off++; /* ensuring that input buffer will be null terminated anyway */ *(txt->line_buffer + txt->current_buf_off) = '\0'; } static void vrttxt_build_line_array (gaiaTextReaderPtr txt) { /* creating the final Line offsets array */ struct vrttxt_row_block *p_block; int i; int cnt = 0; int first_line = 1; if (txt->rows) free (txt->rows); txt->rows = NULL; txt->num_rows = 0; p_block = txt->first; while (p_block) { /* counting how many lines are there */ if (p_block == txt->first && txt->first_line_titles) txt->num_rows += p_block->num_rows - 1; else txt->num_rows += p_block->num_rows; p_block = p_block->next; } txt->rows = malloc (sizeof (struct vrttxt_row *) * txt->num_rows); if (txt->rows == NULL) { /* insufficient memory */ txt->error = 1; return; } p_block = txt->first; while (p_block) { for (i = 0; i < p_block->num_rows; i++) { /* setting Line references into the array */ if (first_line && txt->first_line_titles) { first_line = 0; continue; /* skipping the first line (column names) */ } *(txt->rows + cnt++) = p_block->rows + i; } p_block = p_block->next; } } GAIAGEO_DECLARE int gaiaTextReaderParse (gaiaTextReaderPtr txt) { /* / preliminary parsing / - reading the input file until EOF / - then feeding the Row offsets structs / to be used for any subsequent access */ char name[64]; int ind; int i2; int c; int masked = 0; int token_start = 1; int row_offset = 0; off_t offset = 0; struct vrttxt_line line; vrttxt_line_init (&line, 0); txt->current_buf_off = 0; while ((c = getc (txt->text_file)) != EOF) { if (c == txt->text_separator) { if (masked) masked = 0; else { if (token_start) masked = 1; } vrttxt_line_push (txt, c); if (txt->error) return 0; row_offset++; offset++; continue; } token_start = 0; if (c == '\r') { if (masked) { vrttxt_line_push (txt, c); if (txt->error) return 0; row_offset++; } offset++; continue; } if (c == '\n') { if (masked) { vrttxt_line_push (txt, c); if (txt->error) return 0; row_offset++; offset++; continue; } vrttxt_add_field (&line, offset); vrttxt_line_end (&line, offset); vrttxt_add_line (txt, &line); if (txt->error) return 0; vrttxt_line_init (&line, offset + 1); txt->current_buf_off = 0; token_start = 1; row_offset = 0; offset++; continue; } if (c == txt->field_separator) { if (masked) { vrttxt_line_push (txt, c); if (txt->error) return 0; row_offset++; offset++; continue; } vrttxt_line_push (txt, c); if (txt->error) return 0; row_offset++; vrttxt_add_field (&line, offset); token_start = 1; offset++; continue; } vrttxt_line_push (txt, c); if (txt->error) return 0; row_offset++; offset++; } if (txt->error) return 0; if (txt->first_line_titles) { /* checking for duplicate column names */ for (ind = 0; ind < txt->max_fields; ind++) { for (i2 = 0; i2 < ind; i2++) { if (strcasecmp (txt->columns[i2].name, txt->columns[ind].name) == 0) { sprintf (name, "COL%03d", ind + 1); if (!vrttxt_set_column_title (txt, ind, name)) { txt->error = 1; return 0; } } } } } else { /* setting convenience column names */ for (ind = 0; ind < txt->max_fields; ind++) { sprintf (name, "COL%03d", ind + 1); if (!vrttxt_set_column_title (txt, ind, name)) { txt->error = 1; return 0; } } } if (txt->error) return 0; vrttxt_build_line_array (txt); if (txt->error) return 0; return 1; } GAIAGEO_DECLARE int gaiaTextReaderGetRow (gaiaTextReaderPtr txt, int line_no) { /* reading a Line (identified by relative number */ int i; char c; int masked = 0; int token_start = 1; int fld = 0; int offset = 0; struct vrttxt_row *p_row; txt->current_line_ready = 0; txt->max_current_field = 0; if (line_no < 0 || line_no >= txt->num_rows || txt->rows == NULL) return 0; p_row = *(txt->rows + line_no); if (fseek (txt->text_file, p_row->offset, SEEK_SET) != 0) return 0; if (fread (txt->line_buffer, 1, p_row->len, txt->text_file) != (unsigned int) (p_row->len)) return 0; txt->field_offsets[0] = 0; for (i = 0; i < p_row->len; i++) { /* parsing Fields */ c = *(txt->line_buffer + i); if (c == txt->text_separator) { if (masked) masked = 0; else { if (token_start) masked = 1; } offset++; continue; } token_start = 0; if (c == '\r') { offset++; continue; } if (c == txt->field_separator) { if (masked) { offset++; continue; } txt->field_offsets[fld + 1] = offset + 1; txt->field_lens[fld] = -1; txt->field_lens[fld] = offset - txt->field_offsets[fld]; fld++; txt->max_current_field = fld; token_start = 1; offset++; continue; } offset++; } if (offset > 0) { txt->field_lens[fld] = offset - txt->field_offsets[fld]; fld++; txt->max_current_field = fld; } txt->current_line_ready = 1; return 1; } GAIAGEO_DECLARE int gaiaTextReaderFetchField (gaiaTextReaderPtr txt, int field_idx, int *type, const char **value) { /* fetching a field value */ char *utf8text = NULL; int err; int len; char *str; if (txt->current_line_ready == 0) { *type = VRTTXT_NULL; *value = NULL; return 0; } if (field_idx < 0 || field_idx >= txt->max_fields) { *type = VRTTXT_NULL; *value = NULL; return 0; } if (field_idx < 0 || field_idx >= txt->max_current_field) { *type = VRTTXT_NULL; *value = NULL; return 0; } *type = txt->columns[field_idx].type; if (txt->field_lens[field_idx] == 0) *(txt->field_buffer) = '\0'; memcpy (txt->field_buffer, txt->line_buffer + txt->field_offsets[field_idx], txt->field_lens[field_idx]); *(txt->field_buffer + txt->field_lens[field_idx]) = '\0'; *value = txt->field_buffer; /* sandro 2012-02-01: fixing CR handling for last column [windows] */ if (*(txt->field_buffer) == '\r' && txt->field_lens[field_idx] == 1 && (field_idx + 1) == txt->max_fields) *(txt->field_buffer) = '\0'; if (*(txt->field_buffer) == '\0') *type = VRTTXT_NULL; else if (*type == VRTTXT_TEXT) { /* converting to UTF-8 */ str = (char *) *value; len = strlen (str); if (str[len - 1] == '\r') { /* skipping trailing CR, if any */ str[len - 1] = '\0'; len--; } if (str[0] == txt->text_separator && str[len - 1] == txt->text_separator) { /* cleaning the enclosing quotes */ str[len - 1] = '\0'; str = (char *) (*value + 1); len -= 2; if (len <= 0) { *type = VRTTXT_NULL; *value = NULL; return 1; } } utf8text = gaiaConvertToUTF8 (txt->toUtf8, str, len, &err); if (err) { /* memory cleanup: Kashif Rasul 14 Jan 2010 */ if (utf8text) free (utf8text); *type = VRTTXT_NULL; *value = NULL; return 0; } *value = utf8text; } return 1; } #endif /* ICONV enabled/disabled */ libspatialite-4.1.1/src/virtualtext/Makefile.in0000664000175000017500000003705312163502133016521 00000000000000# Makefile.in generated by automake 1.12.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/virtualtext DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libvirtualtext_la_LIBADD = am_libvirtualtext_la_OBJECTS = virtualtext.lo libvirtualtext_la_OBJECTS = $(am_libvirtualtext_la_OBJECTS) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libvirtualtext_la_SOURCES) DIST_SOURCES = $(libvirtualtext_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ INCLUDES = @CFLAGS@ -I$(top_srcdir)/src/headers noinst_LTLIBRARIES = libvirtualtext.la libvirtualtext_la_SOURCES = virtualtext.c MOSTLYCLEANFILES = *.gcna *.gcno *.gcda all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/virtualtext/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/virtualtext/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } libvirtualtext.la: $(libvirtualtext_la_OBJECTS) $(libvirtualtext_la_DEPENDENCIES) $(EXTRA_libvirtualtext_la_DEPENDENCIES) $(LINK) $(libvirtualtext_la_OBJECTS) $(libvirtualtext_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/virtualtext.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: $(HEADERS) $(SOURCES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES cscopelist ctags \ distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libspatialite-4.1.1/src/gaiageo/0000775000175000017500000000000012163503225013530 500000000000000libspatialite-4.1.1/src/gaiageo/gg_geometries.c0000664000175000017500000034145712163502133016447 00000000000000/* gg_geometries.c -- Gaia geometric objects version 4.1, 2013 May 8 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include GAIAGEO_DECLARE gaiaPointPtr gaiaAllocPoint (double x, double y) { /* POINT object constructor */ gaiaPointPtr p = malloc (sizeof (gaiaPoint)); p->X = x; p->Y = y; p->Z = 0.0; p->M = 0.0; p->DimensionModel = GAIA_XY; p->Next = NULL; p->Prev = NULL; return p; } GAIAGEO_DECLARE gaiaPointPtr gaiaAllocPointXYZ (double x, double y, double z) { /* POINT object constructor */ gaiaPointPtr p = malloc (sizeof (gaiaPoint)); p->X = x; p->Y = y; p->Z = z; p->M = 0.0; p->DimensionModel = GAIA_XY_Z; p->Next = NULL; p->Prev = NULL; return p; } GAIAGEO_DECLARE gaiaPointPtr gaiaAllocPointXYM (double x, double y, double m) { /* POINT object constructor */ gaiaPointPtr p = malloc (sizeof (gaiaPoint)); p->X = x; p->Y = y; p->Z = 0.0; p->M = m; p->DimensionModel = GAIA_XY_M; p->Next = NULL; p->Prev = NULL; return p; } GAIAGEO_DECLARE gaiaPointPtr gaiaAllocPointXYZM (double x, double y, double z, double m) { /* POINT object constructor */ gaiaPointPtr p = malloc (sizeof (gaiaPoint)); p->X = x; p->Y = y; p->Z = z; p->M = m; p->DimensionModel = GAIA_XY_Z_M; p->Next = NULL; p->Prev = NULL; return p; } GAIAGEO_DECLARE void gaiaFreePoint (gaiaPointPtr ptr) { /* POINT object destructor */ if (ptr != NULL) free (ptr); } GAIAGEO_DECLARE gaiaLinestringPtr gaiaAllocLinestring (int vert) { /* LINESTRING object constructor */ gaiaLinestringPtr p = malloc (sizeof (gaiaLinestring)); p->Coords = malloc (sizeof (double) * (vert * 2)); p->Points = vert; p->MinX = DBL_MAX; p->MinY = DBL_MAX; p->MaxX = -DBL_MAX; p->MaxY = -DBL_MAX; p->DimensionModel = GAIA_XY; p->Next = NULL; return p; } GAIAGEO_DECLARE gaiaLinestringPtr gaiaAllocLinestringXYZ (int vert) { /* LINESTRING object constructor */ gaiaLinestringPtr p = malloc (sizeof (gaiaLinestring)); p->Coords = malloc (sizeof (double) * (vert * 3)); p->Points = vert; p->MinX = DBL_MAX; p->MinY = DBL_MAX; p->MaxX = -DBL_MAX; p->MaxY = -DBL_MAX; p->DimensionModel = GAIA_XY_Z; p->Next = NULL; return p; } GAIAGEO_DECLARE gaiaLinestringPtr gaiaAllocLinestringXYM (int vert) { /* LINESTRING object constructor */ gaiaLinestringPtr p = malloc (sizeof (gaiaLinestring)); p->Coords = malloc (sizeof (double) * (vert * 3)); p->Points = vert; p->MinX = DBL_MAX; p->MinY = DBL_MAX; p->MaxX = -DBL_MAX; p->MaxY = -DBL_MAX; p->DimensionModel = GAIA_XY_M; p->Next = NULL; return p; } GAIAGEO_DECLARE gaiaLinestringPtr gaiaAllocLinestringXYZM (int vert) { /* LINESTRING object constructor */ gaiaLinestringPtr p = malloc (sizeof (gaiaLinestring)); p->Coords = malloc (sizeof (double) * (vert * 4)); p->Points = vert; p->MinX = DBL_MAX; p->MinY = DBL_MAX; p->MaxX = -DBL_MAX; p->MaxY = -DBL_MAX; p->DimensionModel = GAIA_XY_Z_M; p->Next = NULL; return p; } GAIAGEO_DECLARE void gaiaFreeLinestring (gaiaLinestringPtr ptr) { /* LINESTRING object desctructror */ if (ptr) { if (ptr->Coords) free (ptr->Coords); free (ptr); } } GAIAGEO_DECLARE int gaiaLineGetPoint (gaiaLinestringPtr ln, int v, double *x, double *y, double *z, double *m) { /* SAFE - getting coords for a vertex in LINESTRING */ double vx; double vy; double vz; double vm; *x = 0.0; *y = 0.0; *z = 0.0; *m = 0.0; if (!ln) return 0; if (v < 0 || v >= ln->Points) return 0; switch (ln->DimensionModel) { case GAIA_XY: gaiaGetPoint (ln->Coords, v, &vx, &vy); *x = vx; *y = vy; break; case GAIA_XY_Z: gaiaGetPointXYZ (ln->Coords, v, &vx, &vy, &vz); *x = vx; *y = vy; *z = vz; break; case GAIA_XY_M: gaiaGetPointXYM (ln->Coords, v, &vx, &vy, &vm); *x = vx; *y = vy; *m = vm; break; case GAIA_XY_Z_M: gaiaGetPointXYZM (ln->Coords, v, &vx, &vy, &vz, &vm); *x = vx; *y = vy; *z = vz; *m = vm; break; default: return 0; }; return 1; } GAIAGEO_DECLARE int gaiaLineSetPoint (gaiaLinestringPtr ln, int v, double x, double y, double z, double m) { /* SAFE - setting coords for a vertex in RING */ if (!ln) return 0; if (v < 0 || v >= ln->Points) return 0; switch (ln->DimensionModel) { case GAIA_XY: gaiaSetPoint (ln->Coords, v, x, y); break; case GAIA_XY_Z: gaiaSetPointXYZ (ln->Coords, v, x, y, z); break; case GAIA_XY_M: gaiaSetPointXYM (ln->Coords, v, x, y, m); break; case GAIA_XY_Z_M: gaiaSetPointXYZM (ln->Coords, v, x, y, z, m); break; default: return 0; }; return 1; } GAIAGEO_DECLARE void gaiaCopyLinestringCoords (gaiaLinestringPtr dst, gaiaLinestringPtr src) { /* / copying coords from one Linestring to another / maybe, converting from one Dimension Model to a different one */ int iv; double x; double y; double z; double m; if (!src) return; if (!dst) return; if (src->Points != dst->Points) return; for (iv = 0; iv < dst->Points; iv++) { z = 0.0; m = 0.0; if (src->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (src->Coords, iv, &x, &y, &z); } else if (src->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (src->Coords, iv, &x, &y, &m); } else if (src->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (src->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (src->Coords, iv, &x, &y); } if (dst->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (dst->Coords, iv, x, y, z); } else if (dst->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (dst->Coords, iv, x, y, m); } else if (dst->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (dst->Coords, iv, x, y, z, m); } else { gaiaSetPoint (dst->Coords, iv, x, y); } } } GAIAGEO_DECLARE gaiaLinestringPtr gaiaCloneLinestring (gaiaLinestringPtr line) { /* clones a LINESTRING */ gaiaLinestringPtr new_line; if (!line) return NULL; if (line->DimensionModel == GAIA_XY_Z) new_line = gaiaAllocLinestringXYZ (line->Points); else if (line->DimensionModel == GAIA_XY_M) new_line = gaiaAllocLinestringXYM (line->Points); else if (line->DimensionModel == GAIA_XY_Z_M) new_line = gaiaAllocLinestringXYZM (line->Points); else new_line = gaiaAllocLinestring (line->Points); gaiaCopyLinestringCoords (new_line, line); return new_line; } GAIAGEO_DECLARE void gaiaCopyLinestringCoordsReverse (gaiaLinestringPtr dst, gaiaLinestringPtr src) { /* / copying coords from one Linestring to another in reverse order / maybe, converting from one Dimension Model to a different one */ int iv; int iv2 = 0; double x; double y; double z; double m; if (!src) return; if (!dst) return; if (src->Points != dst->Points) return; for (iv = src->Points - 1; iv >= 0; iv--) { z = 0.0; m = 0.0; if (src->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (src->Coords, iv, &x, &y, &z); } else if (src->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (src->Coords, iv, &x, &y, &m); } else if (src->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (src->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (src->Coords, iv, &x, &y); } if (dst->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (dst->Coords, iv2, x, y, z); } else if (dst->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (dst->Coords, iv2, x, y, m); } else if (dst->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (dst->Coords, iv2, x, y, z, m); } else { gaiaSetPoint (dst->Coords, iv2, x, y); } iv2++; } } GAIAGEO_DECLARE gaiaLinestringPtr gaiaCloneLinestringSpecial (gaiaLinestringPtr line, int mode) { /* clones a LINESTRING (special) */ gaiaLinestringPtr new_line; if (!line) return NULL; if (mode != GAIA_REVERSE_ORDER) return gaiaCloneLinestring (line); if (line->DimensionModel == GAIA_XY_Z) new_line = gaiaAllocLinestringXYZ (line->Points); else if (line->DimensionModel == GAIA_XY_M) new_line = gaiaAllocLinestringXYM (line->Points); else if (line->DimensionModel == GAIA_XY_Z_M) new_line = gaiaAllocLinestringXYZM (line->Points); else new_line = gaiaAllocLinestring (line->Points); gaiaCopyLinestringCoordsReverse (new_line, line); return new_line; } GAIAGEO_DECLARE gaiaRingPtr gaiaAllocRing (int vert) { /* ring object constructor */ gaiaRingPtr p = malloc (sizeof (gaiaRing)); p->Coords = malloc (sizeof (double) * (vert * 2)); p->Points = vert; p->Link = NULL; p->Clockwise = 0; p->MinX = DBL_MAX; p->MinY = DBL_MAX; p->MaxX = -DBL_MAX; p->MaxY = -DBL_MAX; p->DimensionModel = GAIA_XY; p->Next = NULL; return p; } GAIAGEO_DECLARE gaiaRingPtr gaiaAllocRingXYZ (int vert) { /* ring object constructor */ gaiaRingPtr p = malloc (sizeof (gaiaRing)); p->Coords = malloc (sizeof (double) * (vert * 3)); p->Points = vert; p->Link = NULL; p->Clockwise = 0; p->MinX = DBL_MAX; p->MinY = DBL_MAX; p->MaxX = -DBL_MAX; p->MaxY = -DBL_MAX; p->DimensionModel = GAIA_XY_Z; p->Next = NULL; return p; } GAIAGEO_DECLARE gaiaRingPtr gaiaAllocRingXYM (int vert) { /* ring object constructor */ gaiaRingPtr p = malloc (sizeof (gaiaRing)); p->Coords = malloc (sizeof (double) * (vert * 3)); p->Points = vert; p->Link = NULL; p->Clockwise = 0; p->MinX = DBL_MAX; p->MinY = DBL_MAX; p->MaxX = -DBL_MAX; p->MaxY = -DBL_MAX; p->DimensionModel = GAIA_XY_M; p->Next = NULL; return p; } GAIAGEO_DECLARE gaiaRingPtr gaiaAllocRingXYZM (int vert) { /* ring object constructor */ gaiaRingPtr p = malloc (sizeof (gaiaRing)); p->Coords = malloc (sizeof (double) * (vert * 4)); p->Points = vert; p->Link = NULL; p->Clockwise = 0; p->MinX = DBL_MAX; p->MinY = DBL_MAX; p->MaxX = -DBL_MAX; p->MaxY = -DBL_MAX; p->DimensionModel = GAIA_XY_Z_M; p->Next = NULL; return p; } GAIAGEO_DECLARE void gaiaFreeRing (gaiaRingPtr ptr) { /* ring object destructor */ if (ptr) { if (ptr->Coords) free (ptr->Coords); free (ptr); } } GAIAGEO_DECLARE int gaiaRingGetPoint (gaiaRingPtr rng, int v, double *x, double *y, double *z, double *m) { /* SAFE - getting coords for a vertex in RING */ double vx; double vy; double vz; double vm; *x = 0.0; *y = 0.0; *z = 0.0; *m = 0.0; if (!rng) return 0; if (v < 0 || v >= rng->Points) return 0; switch (rng->DimensionModel) { case GAIA_XY: gaiaGetPoint (rng->Coords, v, &vx, &vy); *x = vx; *y = vy; break; case GAIA_XY_Z: gaiaGetPointXYZ (rng->Coords, v, &vx, &vy, &vz); *x = vx; *y = vy; *z = vz; break; case GAIA_XY_M: gaiaGetPointXYM (rng->Coords, v, &vx, &vy, &vm); *x = vx; *y = vy; *m = vm; break; case GAIA_XY_Z_M: gaiaGetPointXYZM (rng->Coords, v, &vx, &vy, &vz, &vm); *x = vx; *y = vy; *z = vz; *m = vm; break; default: return 0; }; return 1; } GAIAGEO_DECLARE int gaiaRingSetPoint (gaiaRingPtr rng, int v, double x, double y, double z, double m) { /* SAFE - getting coords for a vertex in RING */ if (!rng) return 0; if (v < 0 || v >= rng->Points) return 0; switch (rng->DimensionModel) { case GAIA_XY: gaiaSetPoint (rng->Coords, v, x, y); break; case GAIA_XY_Z: gaiaSetPointXYZ (rng->Coords, v, x, y, z); break; case GAIA_XY_M: gaiaSetPointXYM (rng->Coords, v, x, y, m); break; case GAIA_XY_Z_M: gaiaSetPointXYZM (rng->Coords, v, x, y, z, m); break; default: return 0; }; return 1; } GAIAGEO_DECLARE void gaiaCopyRingCoords (gaiaRingPtr dst, gaiaRingPtr src) { /* / copying coords from one Ring to another / maybe, converting from one Dimension Model to a different one */ int iv; double x; double y; double z; double m; if (!src) return; if (!dst) return; if (src->Points != dst->Points) return; for (iv = 0; iv < dst->Points; iv++) { z = 0.0; m = 0.0; if (src->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (src->Coords, iv, &x, &y, &z); } else if (src->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (src->Coords, iv, &x, &y, &m); } else if (src->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (src->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (src->Coords, iv, &x, &y); } if (dst->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (dst->Coords, iv, x, y, z); } else if (dst->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (dst->Coords, iv, x, y, m); } else if (dst->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (dst->Coords, iv, x, y, z, m); } else { gaiaSetPoint (dst->Coords, iv, x, y); } } } GAIAGEO_DECLARE gaiaRingPtr gaiaCloneRing (gaiaRingPtr ring) { /* clones a RING */ gaiaRingPtr new_ring; if (!ring) return NULL; if (ring->DimensionModel == GAIA_XY_Z) new_ring = gaiaAllocRingXYZ (ring->Points); else if (ring->DimensionModel == GAIA_XY_M) new_ring = gaiaAllocRingXYM (ring->Points); else if (ring->DimensionModel == GAIA_XY_Z_M) new_ring = gaiaAllocRingXYZM (ring->Points); else new_ring = gaiaAllocRing (ring->Points); gaiaCopyRingCoords (new_ring, ring); return new_ring; } GAIAGEO_DECLARE void gaiaCopyRingCoordsReverse (gaiaRingPtr dst, gaiaRingPtr src) { /* / copying coords from one Ring to another in reverse order / maybe, converting from one Dimension Model to a different one */ int iv; int iv2 = 0; double x; double y; double z; double m; if (!src) return; if (!dst) return; if (src->Points != dst->Points) return; for (iv = src->Points - 1; iv >= 0; iv--) { z = 0.0; m = 0.0; if (src->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (src->Coords, iv, &x, &y, &z); } else if (src->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (src->Coords, iv, &x, &y, &m); } else if (src->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (src->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (src->Coords, iv, &x, &y); } if (dst->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (dst->Coords, iv2, x, y, z); } else if (dst->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (dst->Coords, iv2, x, y, m); } else if (dst->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (dst->Coords, iv2, x, y, z, m); } else { gaiaSetPoint (dst->Coords, iv2, x, y); } iv2++; } } GAIAGEO_DECLARE gaiaRingPtr gaiaCloneRingSpecial (gaiaRingPtr ring, int mode) { /* clones a RING (special) */ gaiaRingPtr new_ring; if (!ring) return NULL; if (mode != GAIA_REVERSE_ORDER) return gaiaCloneRing (ring); if (ring->DimensionModel == GAIA_XY_Z) new_ring = gaiaAllocRingXYZ (ring->Points); else if (ring->DimensionModel == GAIA_XY_M) new_ring = gaiaAllocRingXYM (ring->Points); else if (ring->DimensionModel == GAIA_XY_Z_M) new_ring = gaiaAllocRingXYZM (ring->Points); else new_ring = gaiaAllocRing (ring->Points); gaiaCopyRingCoordsReverse (new_ring, ring); return new_ring; } GAIAGEO_DECLARE gaiaPolygonPtr gaiaClonePolygon (gaiaPolygonPtr polyg) { /* clones a POLYGON */ int ib; gaiaPolygonPtr new_polyg; gaiaRingPtr i_ring; gaiaRingPtr o_ring; if (!polyg) return NULL; i_ring = polyg->Exterior; if (polyg->DimensionModel == GAIA_XY_Z) new_polyg = gaiaAllocPolygonXYZ (i_ring->Points, polyg->NumInteriors); else if (polyg->DimensionModel == GAIA_XY_M) new_polyg = gaiaAllocPolygonXYM (i_ring->Points, polyg->NumInteriors); else if (polyg->DimensionModel == GAIA_XY_Z_M) new_polyg = gaiaAllocPolygonXYZM (i_ring->Points, polyg->NumInteriors); else new_polyg = gaiaAllocPolygon (i_ring->Points, polyg->NumInteriors); o_ring = new_polyg->Exterior; /* copying points for the EXTERIOR RING */ gaiaCopyRingCoords (o_ring, i_ring); for (ib = 0; ib < new_polyg->NumInteriors; ib++) { /* copying each INTERIOR RING [if any] */ i_ring = polyg->Interiors + ib; o_ring = gaiaAddInteriorRing (new_polyg, ib, i_ring->Points); gaiaCopyRingCoords (o_ring, i_ring); } return new_polyg; } GAIAGEO_DECLARE gaiaPolygonPtr gaiaClonePolygonSpecial (gaiaPolygonPtr polyg, int mode) { /* clones a POLYGON (special) */ int ib; gaiaPolygonPtr new_polyg; gaiaRingPtr i_ring; gaiaRingPtr o_ring; if (!polyg) return NULL; if (mode == GAIA_REVERSE_ORDER || mode == GAIA_LHR_ORDER) ; else return gaiaClonePolygon (polyg); i_ring = polyg->Exterior; if (polyg->DimensionModel == GAIA_XY_Z) new_polyg = gaiaAllocPolygonXYZ (i_ring->Points, polyg->NumInteriors); else if (polyg->DimensionModel == GAIA_XY_M) new_polyg = gaiaAllocPolygonXYM (i_ring->Points, polyg->NumInteriors); else if (polyg->DimensionModel == GAIA_XY_Z_M) new_polyg = gaiaAllocPolygonXYZM (i_ring->Points, polyg->NumInteriors); else new_polyg = gaiaAllocPolygon (i_ring->Points, polyg->NumInteriors); o_ring = new_polyg->Exterior; /* copying points for the EXTERIOR RING */ if (mode == GAIA_REVERSE_ORDER) gaiaCopyRingCoordsReverse (o_ring, i_ring); else { gaiaClockwise (i_ring); if (i_ring->Clockwise) gaiaCopyRingCoords (o_ring, i_ring); else gaiaCopyRingCoordsReverse (o_ring, i_ring); } for (ib = 0; ib < new_polyg->NumInteriors; ib++) { /* copying each INTERIOR RING [if any] */ i_ring = polyg->Interiors + ib; o_ring = gaiaAddInteriorRing (new_polyg, ib, i_ring->Points); if (mode == GAIA_REVERSE_ORDER) gaiaCopyRingCoordsReverse (o_ring, i_ring); else { gaiaClockwise (i_ring); if (i_ring->Clockwise) gaiaCopyRingCoordsReverse (o_ring, i_ring); else gaiaCopyRingCoords (o_ring, i_ring); } } return new_polyg; } GAIAGEO_DECLARE gaiaPolygonPtr gaiaAllocPolygon (int vert, int excl) { /* POLYGON object constructor */ gaiaPolygonPtr p; gaiaRingPtr pP; int ind; p = malloc (sizeof (gaiaPolygon)); p->Exterior = gaiaAllocRing (vert); p->NumInteriors = excl; p->NextInterior = 0; p->Next = NULL; if (excl == 0) p->Interiors = NULL; else p->Interiors = malloc (sizeof (gaiaRing) * excl); for (ind = 0; ind < p->NumInteriors; ind++) { pP = p->Interiors + ind; pP->Points = 0; pP->Coords = NULL; pP->Next = NULL; pP->Link = 0; } p->MinX = DBL_MAX; p->MinY = DBL_MAX; p->MaxX = -DBL_MAX; p->MaxY = -DBL_MAX; p->DimensionModel = GAIA_XY; return p; } GAIAGEO_DECLARE gaiaPolygonPtr gaiaAllocPolygonXYZ (int vert, int excl) { /* POLYGON object constructor */ gaiaPolygonPtr p; gaiaRingPtr pP; int ind; p = malloc (sizeof (gaiaPolygon)); p->Exterior = gaiaAllocRingXYZ (vert); p->NumInteriors = excl; p->NextInterior = 0; p->Next = NULL; if (excl == 0) p->Interiors = NULL; else p->Interiors = malloc (sizeof (gaiaRing) * excl); for (ind = 0; ind < p->NumInteriors; ind++) { pP = p->Interiors + ind; pP->Points = 0; pP->Coords = NULL; pP->Next = NULL; pP->Link = 0; } p->MinX = DBL_MAX; p->MinY = DBL_MAX; p->MaxX = -DBL_MAX; p->MaxY = -DBL_MAX; p->DimensionModel = GAIA_XY_Z; return p; } GAIAGEO_DECLARE gaiaPolygonPtr gaiaAllocPolygonXYM (int vert, int excl) { /* POLYGON object constructor */ gaiaPolygonPtr p; gaiaRingPtr pP; int ind; p = malloc (sizeof (gaiaPolygon)); p->Exterior = gaiaAllocRingXYM (vert); p->NumInteriors = excl; p->NextInterior = 0; p->Next = NULL; if (excl == 0) p->Interiors = NULL; else p->Interiors = malloc (sizeof (gaiaRing) * excl); for (ind = 0; ind < p->NumInteriors; ind++) { pP = p->Interiors + ind; pP->Points = 0; pP->Coords = NULL; pP->Next = NULL; pP->Link = 0; } p->MinX = DBL_MAX; p->MinY = DBL_MAX; p->MaxX = -DBL_MAX; p->MaxY = -DBL_MAX; p->DimensionModel = GAIA_XY_M; return p; } GAIAGEO_DECLARE gaiaPolygonPtr gaiaAllocPolygonXYZM (int vert, int excl) { /* POLYGON object constructor */ gaiaPolygonPtr p; gaiaRingPtr pP; int ind; p = malloc (sizeof (gaiaPolygon)); p->Exterior = gaiaAllocRingXYZM (vert); p->NumInteriors = excl; p->NextInterior = 0; p->Next = NULL; if (excl == 0) p->Interiors = NULL; else p->Interiors = malloc (sizeof (gaiaRing) * excl); for (ind = 0; ind < p->NumInteriors; ind++) { pP = p->Interiors + ind; pP->Points = 0; pP->Coords = NULL; pP->Next = NULL; pP->Link = 0; } p->MinX = DBL_MAX; p->MinY = DBL_MAX; p->MaxX = -DBL_MAX; p->MaxY = -DBL_MAX; p->DimensionModel = GAIA_XY_Z_M; return p; } GAIAGEO_DECLARE gaiaPolygonPtr gaiaCreatePolygon (gaiaRingPtr ring) { /* POLYGON object constructor */ gaiaPolygonPtr p; p = malloc (sizeof (gaiaPolygon)); p->DimensionModel = ring->DimensionModel; if (ring->DimensionModel == GAIA_XY_Z) p->Exterior = gaiaAllocRingXYZ (ring->Points); else if (ring->DimensionModel == GAIA_XY_M) p->Exterior = gaiaAllocRingXYM (ring->Points); else if (ring->DimensionModel == GAIA_XY_Z_M) p->Exterior = gaiaAllocRingXYZM (ring->Points); else p->Exterior = gaiaAllocRing (ring->Points); p->NumInteriors = 0; p->NextInterior = 0; p->Next = NULL; p->Interiors = NULL; gaiaCopyRingCoords (p->Exterior, ring); p->MinX = DBL_MAX; p->MinY = DBL_MAX; p->MaxX = -DBL_MAX; p->MaxY = -DBL_MAX; return p; } GAIAGEO_DECLARE void gaiaFreePolygon (gaiaPolygonPtr p) { /* POLYGON object destructor */ gaiaRingPtr pP; int ind; if (p->Exterior) gaiaFreeRing (p->Exterior); for (ind = 0; ind < p->NumInteriors; ind++) { pP = p->Interiors + ind; if (pP->Coords) free (pP->Coords); } if (p->Interiors) free (p->Interiors); free (p); } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCloneGeomColl (gaiaGeomCollPtr geom) { /* clones a GEOMETRYCOLLECTION */ int ib; gaiaPointPtr point; gaiaLinestringPtr line; gaiaLinestringPtr new_line; gaiaPolygonPtr polyg; gaiaPolygonPtr new_polyg; gaiaGeomCollPtr new_geom; gaiaRingPtr i_ring; gaiaRingPtr o_ring; if (!geom) return NULL; if (geom->DimensionModel == GAIA_XY_Z) new_geom = gaiaAllocGeomCollXYZ (); else if (geom->DimensionModel == GAIA_XY_M) new_geom = gaiaAllocGeomCollXYM (); else if (geom->DimensionModel == GAIA_XY_Z_M) new_geom = gaiaAllocGeomCollXYZM (); else new_geom = gaiaAllocGeomColl (); new_geom->Srid = geom->Srid; new_geom->DeclaredType = geom->DeclaredType; point = geom->FirstPoint; while (point) { /* copying POINTs */ if (geom->DimensionModel == GAIA_XY_Z) gaiaAddPointToGeomCollXYZ (new_geom, point->X, point->Y, point->Z); else if (geom->DimensionModel == GAIA_XY_M) gaiaAddPointToGeomCollXYM (new_geom, point->X, point->Y, point->M); else if (geom->DimensionModel == GAIA_XY_Z_M) gaiaAddPointToGeomCollXYZM (new_geom, point->X, point->Y, point->Z, point->M); else gaiaAddPointToGeomColl (new_geom, point->X, point->Y); point = point->Next; } line = geom->FirstLinestring; while (line) { /* copying LINESTRINGs */ new_line = gaiaAddLinestringToGeomColl (new_geom, line->Points); gaiaCopyLinestringCoords (new_line, line); line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* copying POLYGONs */ i_ring = polyg->Exterior; new_polyg = gaiaAddPolygonToGeomColl (new_geom, i_ring->Points, polyg->NumInteriors); o_ring = new_polyg->Exterior; /* copying points for the EXTERIOR RING */ gaiaCopyRingCoords (o_ring, i_ring); for (ib = 0; ib < new_polyg->NumInteriors; ib++) { /* copying each INTERIOR RING [if any] */ i_ring = polyg->Interiors + ib; o_ring = gaiaAddInteriorRing (new_polyg, ib, i_ring->Points); gaiaCopyRingCoords (o_ring, i_ring); } polyg = polyg->Next; } return new_geom; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCloneGeomCollSpecial (gaiaGeomCollPtr geom, int mode) { /* clones a GEOMETRYCOLLECTION (special) */ int ib; gaiaPointPtr point; gaiaLinestringPtr line; gaiaLinestringPtr new_line; gaiaPolygonPtr polyg; gaiaPolygonPtr new_polyg; gaiaGeomCollPtr new_geom; gaiaRingPtr i_ring; gaiaRingPtr o_ring; if (!geom) return NULL; if (mode == GAIA_REVERSE_ORDER || mode == GAIA_LHR_ORDER) ; else return gaiaCloneGeomColl (geom); if (geom->DimensionModel == GAIA_XY_Z) new_geom = gaiaAllocGeomCollXYZ (); else if (geom->DimensionModel == GAIA_XY_M) new_geom = gaiaAllocGeomCollXYM (); else if (geom->DimensionModel == GAIA_XY_Z_M) new_geom = gaiaAllocGeomCollXYZM (); else new_geom = gaiaAllocGeomColl (); new_geom->Srid = geom->Srid; new_geom->DeclaredType = geom->DeclaredType; point = geom->FirstPoint; while (point) { /* copying POINTs */ if (geom->DimensionModel == GAIA_XY_Z) gaiaAddPointToGeomCollXYZ (new_geom, point->X, point->Y, point->Z); else if (geom->DimensionModel == GAIA_XY_M) gaiaAddPointToGeomCollXYM (new_geom, point->X, point->Y, point->M); else if (geom->DimensionModel == GAIA_XY_Z_M) gaiaAddPointToGeomCollXYZM (new_geom, point->X, point->Y, point->Z, point->M); else gaiaAddPointToGeomColl (new_geom, point->X, point->Y); point = point->Next; } line = geom->FirstLinestring; while (line) { /* copying LINESTRINGs */ new_line = gaiaAddLinestringToGeomColl (new_geom, line->Points); if (mode == GAIA_REVERSE_ORDER) gaiaCopyLinestringCoordsReverse (new_line, line); else gaiaCopyLinestringCoords (new_line, line); line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* copying POLYGONs */ i_ring = polyg->Exterior; new_polyg = gaiaAddPolygonToGeomColl (new_geom, i_ring->Points, polyg->NumInteriors); o_ring = new_polyg->Exterior; /* copying points for the EXTERIOR RING */ if (mode == GAIA_REVERSE_ORDER) gaiaCopyRingCoordsReverse (o_ring, i_ring); else { gaiaClockwise (i_ring); if (i_ring->Clockwise) gaiaCopyRingCoords (o_ring, i_ring); else gaiaCopyRingCoordsReverse (o_ring, i_ring); } for (ib = 0; ib < new_polyg->NumInteriors; ib++) { /* copying each INTERIOR RING [if any] */ i_ring = polyg->Interiors + ib; o_ring = gaiaAddInteriorRing (new_polyg, ib, i_ring->Points); if (mode == GAIA_REVERSE_ORDER) gaiaCopyRingCoordsReverse (o_ring, i_ring); else { gaiaClockwise (i_ring); if (i_ring->Clockwise) gaiaCopyRingCoordsReverse (o_ring, i_ring); else gaiaCopyRingCoords (o_ring, i_ring); } } polyg = polyg->Next; } return new_geom; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCloneGeomCollPoints (gaiaGeomCollPtr geom) { /* clones a GEOMETRYCOLLECTION (Points only) */ gaiaPointPtr point; gaiaGeomCollPtr new_geom; if (!geom) return NULL; if (geom->DimensionModel == GAIA_XY_Z) new_geom = gaiaAllocGeomCollXYZ (); else if (geom->DimensionModel == GAIA_XY_M) new_geom = gaiaAllocGeomCollXYM (); else if (geom->DimensionModel == GAIA_XY_Z_M) new_geom = gaiaAllocGeomCollXYZM (); else new_geom = gaiaAllocGeomColl (); new_geom->Srid = geom->Srid; new_geom->DeclaredType = GAIA_MULTIPOINT; point = geom->FirstPoint; while (point) { /* copying POINTs */ if (geom->DimensionModel == GAIA_XY_Z) gaiaAddPointToGeomCollXYZ (new_geom, point->X, point->Y, point->Z); else if (geom->DimensionModel == GAIA_XY_M) gaiaAddPointToGeomCollXYM (new_geom, point->X, point->Y, point->M); else if (geom->DimensionModel == GAIA_XY_Z_M) gaiaAddPointToGeomCollXYZM (new_geom, point->X, point->Y, point->Z, point->M); else gaiaAddPointToGeomColl (new_geom, point->X, point->Y); point = point->Next; } return new_geom; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCloneGeomCollLinestrings (gaiaGeomCollPtr geom) { /* clones a GEOMETRYCOLLECTION (Linestrings only) */ gaiaLinestringPtr line; gaiaLinestringPtr new_line; gaiaGeomCollPtr new_geom; if (!geom) return NULL; if (geom->DimensionModel == GAIA_XY_Z) new_geom = gaiaAllocGeomCollXYZ (); else if (geom->DimensionModel == GAIA_XY_M) new_geom = gaiaAllocGeomCollXYM (); else if (geom->DimensionModel == GAIA_XY_Z_M) new_geom = gaiaAllocGeomCollXYZM (); else new_geom = gaiaAllocGeomColl (); new_geom->Srid = geom->Srid; new_geom->DeclaredType = GAIA_MULTILINESTRING; line = geom->FirstLinestring; while (line) { /* copying LINESTRINGs */ new_line = gaiaAddLinestringToGeomColl (new_geom, line->Points); gaiaCopyLinestringCoords (new_line, line); line = line->Next; } return new_geom; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCloneGeomCollPolygons (gaiaGeomCollPtr geom) { /* clones a GEOMETRYCOLLECTION (Polygons only) */ int ib; gaiaPolygonPtr polyg; gaiaPolygonPtr new_polyg; gaiaGeomCollPtr new_geom; gaiaRingPtr i_ring; gaiaRingPtr o_ring; if (!geom) return NULL; if (geom->DimensionModel == GAIA_XY_Z) new_geom = gaiaAllocGeomCollXYZ (); else if (geom->DimensionModel == GAIA_XY_M) new_geom = gaiaAllocGeomCollXYM (); else if (geom->DimensionModel == GAIA_XY_Z_M) new_geom = gaiaAllocGeomCollXYZM (); else new_geom = gaiaAllocGeomColl (); new_geom->Srid = geom->Srid; new_geom->DeclaredType = GAIA_MULTIPOLYGON; polyg = geom->FirstPolygon; while (polyg) { /* copying POLYGONs */ i_ring = polyg->Exterior; new_polyg = gaiaAddPolygonToGeomColl (new_geom, i_ring->Points, polyg->NumInteriors); o_ring = new_polyg->Exterior; /* copying points for the EXTERIOR RING */ gaiaCopyRingCoords (o_ring, i_ring); for (ib = 0; ib < new_polyg->NumInteriors; ib++) { /* copying each INTERIOR RING [if any] */ i_ring = polyg->Interiors + ib; o_ring = gaiaAddInteriorRing (new_polyg, ib, i_ring->Points); gaiaCopyRingCoords (o_ring, i_ring); } polyg = polyg->Next; } return new_geom; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCastGeomCollToXY (gaiaGeomCollPtr geom) { /* clones a GEOMETRYCOLLECTION converting to XY-dimensions */ int ib; gaiaPointPtr point; gaiaLinestringPtr line; gaiaLinestringPtr new_line; gaiaPolygonPtr polyg; gaiaPolygonPtr new_polyg; gaiaGeomCollPtr new_geom; gaiaRingPtr i_ring; gaiaRingPtr o_ring; if (!geom) return NULL; new_geom = gaiaAllocGeomColl (); new_geom->Srid = geom->Srid; new_geom->DeclaredType = geom->DeclaredType; point = geom->FirstPoint; while (point) { /* copying POINTs */ gaiaAddPointToGeomColl (new_geom, point->X, point->Y); point = point->Next; } line = geom->FirstLinestring; while (line) { /* copying LINESTRINGs */ new_line = gaiaAddLinestringToGeomColl (new_geom, line->Points); gaiaCopyLinestringCoords (new_line, line); line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* copying POLYGONs */ i_ring = polyg->Exterior; new_polyg = gaiaAddPolygonToGeomColl (new_geom, i_ring->Points, polyg->NumInteriors); o_ring = new_polyg->Exterior; /* copying points for the EXTERIOR RING */ gaiaCopyRingCoords (o_ring, i_ring); for (ib = 0; ib < new_polyg->NumInteriors; ib++) { /* copying each INTERIOR RING [if any] */ i_ring = polyg->Interiors + ib; o_ring = gaiaAddInteriorRing (new_polyg, ib, i_ring->Points); gaiaCopyRingCoords (o_ring, i_ring); } polyg = polyg->Next; } return new_geom; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCastGeomCollToXYZ (gaiaGeomCollPtr geom) { /* clones a GEOMETRYCOLLECTION converting to XYZ-dimensions */ int ib; gaiaPointPtr point; gaiaLinestringPtr line; gaiaLinestringPtr new_line; gaiaPolygonPtr polyg; gaiaPolygonPtr new_polyg; gaiaGeomCollPtr new_geom; gaiaRingPtr i_ring; gaiaRingPtr o_ring; if (!geom) return NULL; new_geom = gaiaAllocGeomCollXYZ (); new_geom->Srid = geom->Srid; new_geom->DeclaredType = geom->DeclaredType; point = geom->FirstPoint; while (point) { /* copying POINTs */ gaiaAddPointToGeomCollXYZ (new_geom, point->X, point->Y, point->Z); point = point->Next; } line = geom->FirstLinestring; while (line) { /* copying LINESTRINGs */ new_line = gaiaAddLinestringToGeomColl (new_geom, line->Points); gaiaCopyLinestringCoords (new_line, line); line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* copying POLYGONs */ i_ring = polyg->Exterior; new_polyg = gaiaAddPolygonToGeomColl (new_geom, i_ring->Points, polyg->NumInteriors); o_ring = new_polyg->Exterior; /* copying points for the EXTERIOR RING */ gaiaCopyRingCoords (o_ring, i_ring); for (ib = 0; ib < new_polyg->NumInteriors; ib++) { /* copying each INTERIOR RING [if any] */ i_ring = polyg->Interiors + ib; o_ring = gaiaAddInteriorRing (new_polyg, ib, i_ring->Points); gaiaCopyRingCoords (o_ring, i_ring); } polyg = polyg->Next; } return new_geom; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCastGeomCollToXYM (gaiaGeomCollPtr geom) { /* clones a GEOMETRYCOLLECTION converting to XYM-dimensions */ int ib; gaiaPointPtr point; gaiaLinestringPtr line; gaiaLinestringPtr new_line; gaiaPolygonPtr polyg; gaiaPolygonPtr new_polyg; gaiaGeomCollPtr new_geom; gaiaRingPtr i_ring; gaiaRingPtr o_ring; if (!geom) return NULL; new_geom = gaiaAllocGeomCollXYM (); new_geom->Srid = geom->Srid; new_geom->DeclaredType = geom->DeclaredType; point = geom->FirstPoint; while (point) { /* copying POINTs */ gaiaAddPointToGeomCollXYM (new_geom, point->X, point->Y, point->M); point = point->Next; } line = geom->FirstLinestring; while (line) { /* copying LINESTRINGs */ new_line = gaiaAddLinestringToGeomColl (new_geom, line->Points); gaiaCopyLinestringCoords (new_line, line); line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* copying POLYGONs */ i_ring = polyg->Exterior; new_polyg = gaiaAddPolygonToGeomColl (new_geom, i_ring->Points, polyg->NumInteriors); o_ring = new_polyg->Exterior; /* copying points for the EXTERIOR RING */ gaiaCopyRingCoords (o_ring, i_ring); for (ib = 0; ib < new_polyg->NumInteriors; ib++) { /* copying each INTERIOR RING [if any] */ i_ring = polyg->Interiors + ib; o_ring = gaiaAddInteriorRing (new_polyg, ib, i_ring->Points); gaiaCopyRingCoords (o_ring, i_ring); } polyg = polyg->Next; } return new_geom; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCastGeomCollToXYZM (gaiaGeomCollPtr geom) { /* clones a GEOMETRYCOLLECTION converting to XYZM-dimensions */ int ib; gaiaPointPtr point; gaiaLinestringPtr line; gaiaLinestringPtr new_line; gaiaPolygonPtr polyg; gaiaPolygonPtr new_polyg; gaiaGeomCollPtr new_geom; gaiaRingPtr i_ring; gaiaRingPtr o_ring; if (!geom) return NULL; new_geom = gaiaAllocGeomCollXYZM (); new_geom->Srid = geom->Srid; new_geom->DeclaredType = geom->DeclaredType; point = geom->FirstPoint; while (point) { /* copying POINTs */ gaiaAddPointToGeomCollXYZM (new_geom, point->X, point->Y, point->Z, point->M); point = point->Next; } line = geom->FirstLinestring; while (line) { /* copying LINESTRINGs */ new_line = gaiaAddLinestringToGeomColl (new_geom, line->Points); gaiaCopyLinestringCoords (new_line, line); line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* copying POLYGONs */ i_ring = polyg->Exterior; new_polyg = gaiaAddPolygonToGeomColl (new_geom, i_ring->Points, polyg->NumInteriors); o_ring = new_polyg->Exterior; /* copying points for the EXTERIOR RING */ gaiaCopyRingCoords (o_ring, i_ring); for (ib = 0; ib < new_polyg->NumInteriors; ib++) { /* copying each INTERIOR RING [if any] */ i_ring = polyg->Interiors + ib; o_ring = gaiaAddInteriorRing (new_polyg, ib, i_ring->Points); gaiaCopyRingCoords (o_ring, i_ring); } polyg = polyg->Next; } return new_geom; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaAllocGeomColl () { /* GEOMETRYCOLLECTION object constructor */ gaiaGeomCollPtr p = malloc (sizeof (gaiaGeomColl)); p->Srid = 0; p->endian = ' '; p->offset = 0; p->FirstPoint = NULL; p->LastPoint = NULL; p->FirstLinestring = NULL; p->LastLinestring = NULL; p->FirstPolygon = NULL; p->LastPolygon = NULL; p->MinX = DBL_MAX; p->MinY = DBL_MAX; p->MaxX = -DBL_MAX; p->MaxY = -DBL_MAX; p->DimensionModel = GAIA_XY; p->DeclaredType = GAIA_UNKNOWN; p->Next = NULL; return p; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaAllocGeomCollXYZ () { /* GEOMETRYCOLLECTION object constructor */ gaiaGeomCollPtr p = malloc (sizeof (gaiaGeomColl)); p->Srid = 0; p->endian = ' '; p->offset = 0; p->FirstPoint = NULL; p->LastPoint = NULL; p->FirstLinestring = NULL; p->LastLinestring = NULL; p->FirstPolygon = NULL; p->LastPolygon = NULL; p->MinX = DBL_MAX; p->MinY = DBL_MAX; p->MaxX = -DBL_MAX; p->MaxY = -DBL_MAX; p->DimensionModel = GAIA_XY_Z; p->DeclaredType = GAIA_UNKNOWN; p->Next = NULL; return p; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaAllocGeomCollXYM () { /* GEOMETRYCOLLECTION object constructor */ gaiaGeomCollPtr p = malloc (sizeof (gaiaGeomColl)); p->Srid = 0; p->endian = ' '; p->offset = 0; p->FirstPoint = NULL; p->LastPoint = NULL; p->FirstLinestring = NULL; p->LastLinestring = NULL; p->FirstPolygon = NULL; p->LastPolygon = NULL; p->MinX = DBL_MAX; p->MinY = DBL_MAX; p->MaxX = -DBL_MAX; p->MaxY = -DBL_MAX; p->DimensionModel = GAIA_XY_M; p->DeclaredType = GAIA_UNKNOWN; p->Next = NULL; return p; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaAllocGeomCollXYZM () { /* GEOMETRYCOLLECTION object constructor */ gaiaGeomCollPtr p = malloc (sizeof (gaiaGeomColl)); p->Srid = 0; p->endian = ' '; p->offset = 0; p->FirstPoint = NULL; p->LastPoint = NULL; p->FirstLinestring = NULL; p->LastLinestring = NULL; p->FirstPolygon = NULL; p->LastPolygon = NULL; p->MinX = DBL_MAX; p->MinY = DBL_MAX; p->MaxX = -DBL_MAX; p->MaxY = -DBL_MAX; p->DimensionModel = GAIA_XY_Z_M; p->DeclaredType = GAIA_UNKNOWN; p->Next = NULL; return p; } GAIAGEO_DECLARE void gaiaFreeGeomColl (gaiaGeomCollPtr p) { /* GEOMETRYCOLLECTION object destructor */ gaiaPointPtr pP; gaiaPointPtr pPn; gaiaLinestringPtr pL; gaiaLinestringPtr pLn; gaiaPolygonPtr pA; gaiaPolygonPtr pAn; if (!p) return; pP = p->FirstPoint; while (pP != NULL) { pPn = pP->Next; gaiaFreePoint (pP); pP = pPn; } pL = p->FirstLinestring; while (pL != NULL) { pLn = pL->Next; gaiaFreeLinestring (pL); pL = pLn; } pA = p->FirstPolygon; while (pA != NULL) { pAn = pA->Next; gaiaFreePolygon (pA); pA = pAn; } free (p); } GAIAGEO_DECLARE void gaiaAddPointToGeomColl (gaiaGeomCollPtr p, double x, double y) { /* adding a POINT to this GEOMETRYCOLLECTION */ gaiaPointPtr point = gaiaAllocPoint (x, y); if (p->FirstPoint == NULL) p->FirstPoint = point; if (p->LastPoint != NULL) p->LastPoint->Next = point; p->LastPoint = point; } GAIAGEO_DECLARE void gaiaAddPointToGeomCollXYZ (gaiaGeomCollPtr p, double x, double y, double z) { /* adding a POINT to this GEOMETRYCOLLECTION */ gaiaPointPtr point = gaiaAllocPointXYZ (x, y, z); if (p->FirstPoint == NULL) p->FirstPoint = point; if (p->LastPoint != NULL) p->LastPoint->Next = point; p->LastPoint = point; } GAIAGEO_DECLARE void gaiaAddPointToGeomCollXYM (gaiaGeomCollPtr p, double x, double y, double m) { /* adding a POINT to this GEOMETRYCOLLECTION */ gaiaPointPtr point = gaiaAllocPointXYM (x, y, m); if (p->FirstPoint == NULL) p->FirstPoint = point; if (p->LastPoint != NULL) p->LastPoint->Next = point; p->LastPoint = point; } GAIAGEO_DECLARE void gaiaAddPointToGeomCollXYZM (gaiaGeomCollPtr p, double x, double y, double z, double m) { /* adding a POINT to this GEOMETRYCOLLECTION */ gaiaPointPtr point = gaiaAllocPointXYZM (x, y, z, m); if (p->FirstPoint == NULL) p->FirstPoint = point; if (p->LastPoint != NULL) p->LastPoint->Next = point; p->LastPoint = point; } GAIAGEO_DECLARE gaiaLinestringPtr gaiaAddLinestringToGeomColl (gaiaGeomCollPtr p, int vert) { /* adding a LINESTRING to this GEOMETRYCOLLECTION */ gaiaLinestringPtr line; if (p->DimensionModel == GAIA_XY_Z) line = gaiaAllocLinestringXYZ (vert); else if (p->DimensionModel == GAIA_XY_M) line = gaiaAllocLinestringXYM (vert); else if (p->DimensionModel == GAIA_XY_Z_M) line = gaiaAllocLinestringXYZM (vert); else line = gaiaAllocLinestring (vert); if (p->FirstLinestring == NULL) p->FirstLinestring = line; if (p->LastLinestring != NULL) p->LastLinestring->Next = line; p->LastLinestring = line; return line; } GAIAGEO_DECLARE void gaiaInsertLinestringInGeomColl (gaiaGeomCollPtr p, gaiaLinestringPtr line) { /* adding an existing LINESTRING to this GEOMETRYCOLLECTION */ if (p->FirstLinestring == NULL) p->FirstLinestring = line; if (p->LastLinestring != NULL) p->LastLinestring->Next = line; p->LastLinestring = line; } GAIAGEO_DECLARE gaiaPolygonPtr gaiaAddPolygonToGeomColl (gaiaGeomCollPtr p, int vert, int interiors) { /* adding a POLYGON to this GEOMETRYCOLLECTION */ gaiaPolygonPtr polyg; if (p->DimensionModel == GAIA_XY_Z) polyg = gaiaAllocPolygonXYZ (vert, interiors); else if (p->DimensionModel == GAIA_XY_M) polyg = gaiaAllocPolygonXYM (vert, interiors); else if (p->DimensionModel == GAIA_XY_Z_M) polyg = gaiaAllocPolygonXYZM (vert, interiors); else polyg = gaiaAllocPolygon (vert, interiors); if (p->FirstPolygon == NULL) p->FirstPolygon = polyg; if (p->LastPolygon != NULL) p->LastPolygon->Next = polyg; p->LastPolygon = polyg; return polyg; } GAIAGEO_DECLARE gaiaPolygonPtr gaiaInsertPolygonInGeomColl (gaiaGeomCollPtr p, gaiaRingPtr ring) { /* adding a POLYGON to this GEOMETRYCOLLECTION */ gaiaPolygonPtr polyg; polyg = malloc (sizeof (gaiaPolygon)); polyg->Exterior = ring; polyg->NumInteriors = 0; polyg->NextInterior = 0; polyg->DimensionModel = ring->DimensionModel; polyg->Next = NULL; polyg->Interiors = NULL; polyg->MinX = DBL_MAX; polyg->MinY = DBL_MAX; polyg->MaxX = -DBL_MAX; polyg->MaxY = -DBL_MAX; if (p->FirstPolygon == NULL) p->FirstPolygon = polyg; if (p->LastPolygon != NULL) p->LastPolygon->Next = polyg; p->LastPolygon = polyg; return polyg; } GAIAGEO_DECLARE gaiaRingPtr gaiaAddInteriorRing (gaiaPolygonPtr p, int pos, int vert) { /* adding an interior ring to some polygon */ gaiaRingPtr pP = p->Interiors + pos; pP->Points = vert; pP->DimensionModel = p->DimensionModel; if (pP->DimensionModel == GAIA_XY_Z) pP->Coords = malloc (sizeof (double) * (vert * 3)); else if (pP->DimensionModel == GAIA_XY_M) pP->Coords = malloc (sizeof (double) * (vert * 3)); else if (pP->DimensionModel == GAIA_XY_Z_M) pP->Coords = malloc (sizeof (double) * (vert * 4)); else pP->Coords = malloc (sizeof (double) * (vert * 2)); return pP; } GAIAGEO_DECLARE void gaiaInsertInteriorRing (gaiaPolygonPtr p, gaiaRingPtr ring) { /* adding an interior ring to some polygon */ gaiaRingPtr hole; if (p->NumInteriors == 0) { /* this one is the first interior ring */ p->NumInteriors++; p->Interiors = malloc (sizeof (gaiaRing)); hole = p->Interiors; } else { /* some interior ring is already defined */ gaiaRingPtr save = p->Interiors; p->Interiors = malloc (sizeof (gaiaRing) * (p->NumInteriors + 1)); memcpy (p->Interiors, save, (sizeof (gaiaRing) * p->NumInteriors)); free (save); hole = p->Interiors + p->NumInteriors; p->NumInteriors++; } hole->Points = ring->Points; hole->DimensionModel = p->DimensionModel; if (hole->DimensionModel == GAIA_XY_Z) hole->Coords = malloc (sizeof (double) * (hole->Points * 3)); else if (hole->DimensionModel == GAIA_XY_M) hole->Coords = malloc (sizeof (double) * (hole->Points * 3)); else if (hole->DimensionModel == GAIA_XY_Z_M) hole->Coords = malloc (sizeof (double) * (hole->Points * 4)); else hole->Coords = malloc (sizeof (double) * (hole->Points * 2)); gaiaCopyRingCoords (hole, ring); } GAIAGEO_DECLARE void gaiaAddRingToPolyg (gaiaPolygonPtr polyg, gaiaRingPtr ring) { /* adds an interior ring to this POLYGON */ gaiaRingPtr old_interiors = NULL; if (!(polyg->Interiors)) { /* this one is the first interior ring */ polyg->Interiors = ring; polyg->NumInteriors = 1; } else { /* adding another interior ring */ old_interiors = polyg->Interiors; polyg->Interiors = malloc (sizeof (gaiaRing) * (polyg->NumInteriors + 1)); memcpy (polyg->Interiors, old_interiors, (sizeof (gaiaRing) * polyg->NumInteriors)); memcpy (polyg->Interiors + polyg->NumInteriors, ring, sizeof (gaiaRing)); (polyg->NumInteriors)++; free (old_interiors); free (ring); } } GAIAGEO_DECLARE gaiaDynamicLinePtr gaiaAllocDynamicLine () { /* DYNAMIC LINE object constructor */ gaiaDynamicLinePtr p = malloc (sizeof (gaiaDynamicLine)); p->Error = 0; p->Srid = 0; p->First = NULL; p->Last = NULL; return p; } GAIAGEO_DECLARE void gaiaFreeDynamicLine (gaiaDynamicLinePtr p) { /* DYNAMIC LINE object destructor */ gaiaPointPtr pP; gaiaPointPtr pPn; pP = p->First; while (pP != NULL) { pPn = pP->Next; gaiaFreePoint (pP); pP = pPn; } free (p); } GAIAGEO_DECLARE gaiaPointPtr gaiaAppendPointToDynamicLine (gaiaDynamicLinePtr p, double x, double y) { /* inserts a new POINT to this DYNAMIC LINE after the last one */ gaiaPointPtr point = gaiaAllocPoint (x, y); point->Prev = p->Last; if (p->First == NULL) p->First = point; if (p->Last != NULL) p->Last->Next = point; p->Last = point; return point; } GAIAGEO_DECLARE gaiaPointPtr gaiaAppendPointZToDynamicLine (gaiaDynamicLinePtr p, double x, double y, double z) { /* inserts a new POINT to this DYNAMIC LINE after the last one */ gaiaPointPtr point = gaiaAllocPointXYZ (x, y, z); point->Prev = p->Last; if (p->First == NULL) p->First = point; if (p->Last != NULL) p->Last->Next = point; p->Last = point; return point; } GAIAGEO_DECLARE gaiaPointPtr gaiaAppendPointMToDynamicLine (gaiaDynamicLinePtr p, double x, double y, double m) { /* inserts a new POINT to this DYNAMIC LINE after the last one */ gaiaPointPtr point = gaiaAllocPointXYM (x, y, m); point->Prev = p->Last; if (p->First == NULL) p->First = point; if (p->Last != NULL) p->Last->Next = point; p->Last = point; return point; } GAIAGEO_DECLARE gaiaPointPtr gaiaAppendPointZMToDynamicLine (gaiaDynamicLinePtr p, double x, double y, double z, double m) { /* inserts a new POINT to this DYNAMIC LINE after the last one */ gaiaPointPtr point = gaiaAllocPointXYZM (x, y, z, m); point->Prev = p->Last; if (p->First == NULL) p->First = point; if (p->Last != NULL) p->Last->Next = point; p->Last = point; return point; } GAIAGEO_DECLARE gaiaPointPtr gaiaPrependPointToDynamicLine (gaiaDynamicLinePtr p, double x, double y) { /* inserts a new POINT to this DYNAMIC LINE before the first one */ gaiaPointPtr point = gaiaAllocPoint (x, y); point->Next = p->First; if (p->Last == NULL) p->Last = point; if (p->First != NULL) p->First->Prev = point; p->First = point; return point; } GAIAGEO_DECLARE gaiaPointPtr gaiaPrependPointZToDynamicLine (gaiaDynamicLinePtr p, double x, double y, double z) { /* inserts a new POINT to this DYNAMIC LINE before the first one */ gaiaPointPtr point = gaiaAllocPointXYZ (x, y, z); point->Next = p->First; if (p->Last == NULL) p->Last = point; if (p->First != NULL) p->First->Prev = point; p->First = point; return point; } GAIAGEO_DECLARE gaiaPointPtr gaiaPrependPointMToDynamicLine (gaiaDynamicLinePtr p, double x, double y, double m) { /* inserts a new POINT to this DYNAMIC LINE before the first one */ gaiaPointPtr point = gaiaAllocPointXYM (x, y, m); point->Next = p->First; if (p->Last == NULL) p->Last = point; if (p->First != NULL) p->First->Prev = point; p->First = point; return point; } GAIAGEO_DECLARE gaiaPointPtr gaiaPrependPointZMToDynamicLine (gaiaDynamicLinePtr p, double x, double y, double z, double m) { /* inserts a new POINT to this DYNAMIC LINE before the first one */ gaiaPointPtr point = gaiaAllocPointXYZM (x, y, z, m); point->Next = p->First; if (p->Last == NULL) p->Last = point; if (p->First != NULL) p->First->Prev = point; p->First = point; return point; } GAIAGEO_DECLARE gaiaPointPtr gaiaDynamicLineInsertAfter (gaiaDynamicLinePtr p, gaiaPointPtr pt, double x, double y) { /* inserts a new POINT to this DYNAMIC LINE after the referenced POINT */ gaiaPointPtr point = gaiaAllocPoint (x, y); point->Prev = pt; point->Next = pt->Next; if (pt->Next) pt->Next->Prev = point; pt->Next = point; if (pt == p->Last) p->Last = point; return point; } GAIAGEO_DECLARE gaiaPointPtr gaiaDynamicLineInsertBefore (gaiaDynamicLinePtr p, gaiaPointPtr pt, double x, double y) { /* inserts a new POINT to this DYNAMIC LINE before the referenced POINT */ gaiaPointPtr point = gaiaAllocPoint (x, y); point->Next = pt; point->Prev = pt->Prev; if (pt->Prev) pt->Prev->Next = point; pt->Prev = point; if (pt == p->First) p->First = point; return point; } GAIAGEO_DECLARE void gaiaDynamicLineDeletePoint (gaiaDynamicLinePtr p, gaiaPointPtr pt) { /* deletes a POINT from this DYNAMIC LINE */ if (pt->Prev) pt->Prev->Next = pt->Next; if (pt->Next) pt->Next->Prev = pt->Prev; if (pt == p->First) p->First = pt->Next; if (pt == p->Last) p->Last = pt->Prev; gaiaFreePoint (pt); } GAIAGEO_DECLARE gaiaDynamicLinePtr gaiaCloneDynamicLine (gaiaDynamicLinePtr org) { /* creates a new line obtained by simply copying the current one */ gaiaPointPtr pt; gaiaDynamicLinePtr dst = gaiaAllocDynamicLine (); pt = org->First; while (pt) { gaiaAppendPointToDynamicLine (dst, pt->X, pt->Y); pt = pt->Next; } return dst; } GAIAGEO_DECLARE gaiaDynamicLinePtr gaiaReverseDynamicLine (gaiaDynamicLinePtr org) { /* creates a new line obtained by inverting the current one */ gaiaPointPtr pt; gaiaDynamicLinePtr dst = gaiaAllocDynamicLine (); pt = org->Last; while (pt) { gaiaAppendPointToDynamicLine (dst, pt->X, pt->Y); pt = pt->Prev; } return dst; } GAIAGEO_DECLARE gaiaDynamicLinePtr gaiaDynamicLineSplitBefore (gaiaDynamicLinePtr org, gaiaPointPtr point) { /* creates a new line obtained by cutting the current one in two */ gaiaDynamicLinePtr dst = gaiaAllocDynamicLine (); dst->First = org->First; dst->Last = point->Prev; point->Prev->Next = NULL; org->First = point; point->Prev = NULL; return dst; } GAIAGEO_DECLARE gaiaDynamicLinePtr gaiaDynamicLineSplitAfter (gaiaDynamicLinePtr org, gaiaPointPtr point) { /* creates a new line obtained by cutting the current one in two */ gaiaDynamicLinePtr dst = gaiaAllocDynamicLine (); dst->First = point->Next; dst->Last = org->Last; point->Next->Prev = NULL; org->Last = point; point->Next = NULL; return dst; } GAIAGEO_DECLARE gaiaDynamicLinePtr gaiaDynamicLineJoinAfter (gaiaDynamicLinePtr org, gaiaPointPtr point, gaiaDynamicLinePtr toJoin) { /* creates a new line obtained by joining the current one with another one */ gaiaPointPtr pt; gaiaDynamicLinePtr dst = gaiaAllocDynamicLine (); pt = org->First; while (pt) { /* inserting the first slice since the delimiting POINT included */ gaiaAppendPointToDynamicLine (dst, pt->X, pt->Y); if (pt == point) break; pt = pt->Next; } pt = toJoin->First; while (pt) { /* inserting the other line */ gaiaAppendPointToDynamicLine (dst, pt->X, pt->Y); pt = pt->Next; } pt = point->Next; while (pt) { /* inserting the second slice after the delimiting POINT */ gaiaAppendPointToDynamicLine (dst, pt->X, pt->Y); pt = pt->Next; } return dst; } GAIAGEO_DECLARE gaiaDynamicLinePtr gaiaDynamicLineJoinBefore (gaiaDynamicLinePtr org, gaiaPointPtr point, gaiaDynamicLinePtr toJoin) { /* creates a new line obtained by joining the current one with another one */ gaiaPointPtr pt; gaiaDynamicLinePtr dst = gaiaAllocDynamicLine (); pt = org->First; while (pt) { /* inserting the first slice since the delimiting POINT excluded */ if (pt == point) break; gaiaAppendPointToDynamicLine (dst, pt->X, pt->Y); pt = pt->Next; } pt = toJoin->First; while (pt) { /* inserting the other line */ gaiaAppendPointToDynamicLine (dst, pt->X, pt->Y); pt = pt->Next; } pt = point; while (pt) { /* inserting the second slice beginning from the delimiting POINT */ gaiaAppendPointToDynamicLine (dst, pt->X, pt->Y); pt = pt->Next; } return dst; } GAIAGEO_DECLARE gaiaPointPtr gaiaDynamicLineFindByCoords (gaiaDynamicLinePtr p, double x, double y) { /* finds a POINT inside this DYNAMIC LINE */ gaiaPointPtr pP; pP = p->First; while (pP != NULL) { if (pP->X == x && pP->Y == y) return pP; pP = pP->Next; } return NULL; } GAIAGEO_DECLARE gaiaPointPtr gaiaDynamicLineFindByPos (gaiaDynamicLinePtr p, int pos) { /* finds a POINT inside this DYNAMIC LINE */ int n = 0; gaiaPointPtr pP; pP = p->First; while (pP != NULL) { if (pos == n) return pP; n++; pP = pP->Next; } return NULL; } GAIAGEO_DECLARE gaiaDynamicLinePtr gaiaCreateDynamicLine (double *coords, int points) { /* creates a DynamicLine from an array of coordinates */ int iv; double x; double y; gaiaDynamicLinePtr line = gaiaAllocDynamicLine (); for (iv = 0; iv < points; iv++) { gaiaGetPoint (coords, iv, &x, &y); gaiaAppendPointToDynamicLine (line, x, y); } return line; } GAIAGEO_DECLARE void gaiaMbrLinestring (gaiaLinestringPtr line) { /* computes the MBR for this linestring */ int iv; double x; double y; double z; double m; line->MinX = DBL_MAX; line->MinY = DBL_MAX; line->MaxX = -DBL_MAX; line->MaxY = -DBL_MAX; for (iv = 0; iv < line->Points; iv++) { if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } if (x < line->MinX) line->MinX = x; if (y < line->MinY) line->MinY = y; if (x > line->MaxX) line->MaxX = x; if (y > line->MaxY) line->MaxY = y; } } GAIAGEO_DECLARE void gaiaMbrRing (gaiaRingPtr rng) { /* computes the MBR for this ring */ int iv; double x; double y; double z; double m; rng->MinX = DBL_MAX; rng->MinY = DBL_MAX; rng->MaxX = -DBL_MAX; rng->MaxY = -DBL_MAX; for (iv = 0; iv < rng->Points; iv++) { if (rng->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); } else if (rng->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); } else if (rng->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); } if (x < rng->MinX) rng->MinX = x; if (y < rng->MinY) rng->MinY = y; if (x > rng->MaxX) rng->MaxX = x; if (y > rng->MaxY) rng->MaxY = y; } } GAIAGEO_DECLARE void gaiaMbrPolygon (gaiaPolygonPtr polyg) { /* computes the MBR for this polygon */ gaiaRingPtr rng; polyg->MinX = DBL_MAX; polyg->MinY = DBL_MAX; polyg->MaxX = -DBL_MAX; polyg->MaxY = -DBL_MAX; rng = polyg->Exterior; gaiaMbrRing (rng); if (rng->MinX < polyg->MinX) polyg->MinX = rng->MinX; if (rng->MinY < polyg->MinY) polyg->MinY = rng->MinY; if (rng->MaxX > polyg->MaxX) polyg->MaxX = rng->MaxX; if (rng->MaxY > polyg->MaxY) polyg->MaxY = rng->MaxY; } GAIAGEO_DECLARE void gaiaMbrGeometry (gaiaGeomCollPtr geom) { /* computes the MBR for this geometry */ gaiaPointPtr point = NULL; gaiaLinestringPtr line = NULL; gaiaPolygonPtr polyg = NULL; geom->MinX = DBL_MAX; geom->MinY = DBL_MAX; geom->MaxX = -DBL_MAX; geom->MaxY = -DBL_MAX; point = geom->FirstPoint; while (point) { if (point->X < geom->MinX) geom->MinX = point->X; if (point->Y < geom->MinY) geom->MinY = point->Y; if (point->X > geom->MaxX) geom->MaxX = point->X; if (point->Y > geom->MaxY) geom->MaxY = point->Y; point = point->Next; } line = geom->FirstLinestring; while (line) { gaiaMbrLinestring (line); if (line->MinX < geom->MinX) geom->MinX = line->MinX; if (line->MinY < geom->MinY) geom->MinY = line->MinY; if (line->MaxX > geom->MaxX) geom->MaxX = line->MaxX; if (line->MaxY > geom->MaxY) geom->MaxY = line->MaxY; line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { gaiaMbrPolygon (polyg); if (polyg->MinX < geom->MinX) geom->MinX = polyg->MinX; if (polyg->MinY < geom->MinY) geom->MinY = polyg->MinY; if (polyg->MaxX > geom->MaxX) geom->MaxX = polyg->MaxX; if (polyg->MaxY > geom->MaxY) geom->MaxY = polyg->MaxY; polyg = polyg->Next; } } GAIAGEO_DECLARE void gaiaMRangeLinestring (gaiaLinestringPtr line, double *min, double *max) { /* computes the M-range [min/max] for this linestring */ int iv; double x; double y; double z; double m; *min = DBL_MAX; *max = -DBL_MAX; for (iv = 0; iv < line->Points; iv++) { m = 0.0; if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } if (m < *min) *min = m; if (m > *max) *max = m; } } GAIAGEO_DECLARE void gaiaMRangeRing (gaiaRingPtr rng, double *min, double *max) { /* computes the M-range [min/max] for this ring */ int iv; double x; double y; double z; double m; *min = DBL_MAX; *max = -DBL_MAX; for (iv = 0; iv < rng->Points; iv++) { m = 0.0; if (rng->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); } else if (rng->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); } else if (rng->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); } if (m < *min) *min = m; if (m > *max) *max = m; } } GAIAGEO_DECLARE void gaiaMRangePolygon (gaiaPolygonPtr polyg, double *min, double *max) { /* computes the M-range [min/max] for this polygon */ gaiaRingPtr rng; int ib; double r_min; double r_max; *min = DBL_MAX; *max = -DBL_MAX; rng = polyg->Exterior; gaiaMRangeRing (rng, &r_min, &r_max); if (r_min < *min) *min = r_min; if (r_max > *max) *max = r_max; for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; gaiaMRangeRing (rng, &r_min, &r_max); if (r_min < *min) *min = r_min; if (r_max > *max) *max = r_max; } } GAIAGEO_DECLARE void gaiaMRangeGeometry (gaiaGeomCollPtr geom, double *min, double *max) { /* computes the M-range [min/max] for this geometry */ gaiaPointPtr point = NULL; gaiaLinestringPtr line = NULL; gaiaPolygonPtr polyg = NULL; double m; double r_min; double r_max; *min = DBL_MAX; *max = -DBL_MAX; point = geom->FirstPoint; while (point) { m = 0.0; if (point->DimensionModel == GAIA_XY_M || point->DimensionModel == GAIA_XY_Z_M) m = point->M; if (m < *min) *min = m; if (m > *max) *max = m; point = point->Next; } line = geom->FirstLinestring; while (line) { gaiaMRangeLinestring (line, &r_min, &r_max); if (r_min < *min) *min = r_min; if (r_max > *max) *max = r_max; line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { gaiaMRangePolygon (polyg, &r_min, &r_max); if (r_min < *min) *min = r_min; if (r_max > *max) *max = r_max; polyg = polyg->Next; } } GAIAGEO_DECLARE void gaiaZRangeLinestring (gaiaLinestringPtr line, double *min, double *max) { /* computes the Z-range [min/max] for this linestring */ int iv; double x; double y; double z; double m; *min = DBL_MAX; *max = -DBL_MAX; for (iv = 0; iv < line->Points; iv++) { z = 0.0; m = 0.0; if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } if (z < *min) *min = z; if (z > *max) *max = z; } } GAIAGEO_DECLARE void gaiaZRangeRing (gaiaRingPtr rng, double *min, double *max) { /* computes the Z-range [min/max] for this ring */ int iv; double x; double y; double z; double m; *min = DBL_MAX; *max = -DBL_MAX; for (iv = 0; iv < rng->Points; iv++) { z = 0.0; m = 0.0; if (rng->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); } else if (rng->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); } else if (rng->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); } if (z < *min) *min = z; if (z > *max) *max = z; } } GAIAGEO_DECLARE void gaiaZRangePolygon (gaiaPolygonPtr polyg, double *min, double *max) { /* computes the Z-range [min/max] for this polygon */ gaiaRingPtr rng; int ib; double r_min; double r_max; *min = DBL_MAX; *max = -DBL_MAX; rng = polyg->Exterior; gaiaZRangeRing (rng, &r_min, &r_max); if (r_min < *min) *min = r_min; if (r_max > *max) *max = r_max; for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; gaiaZRangeRing (rng, &r_min, &r_max); if (r_min < *min) *min = r_min; if (r_max > *max) *max = r_max; } } GAIAGEO_DECLARE void gaiaZRangeGeometry (gaiaGeomCollPtr geom, double *min, double *max) { /* computes the Z-range [min/max] for this geometry */ gaiaPointPtr point = NULL; gaiaLinestringPtr line = NULL; gaiaPolygonPtr polyg = NULL; double z; double r_min; double r_max; *min = DBL_MAX; *max = -DBL_MAX; point = geom->FirstPoint; while (point) { z = 0.0; if (point->DimensionModel == GAIA_XY_Z || point->DimensionModel == GAIA_XY_Z_M) z = point->Z; if (z < *min) *min = z; if (z > *max) *max = z; point = point->Next; } line = geom->FirstLinestring; while (line) { gaiaZRangeLinestring (line, &r_min, &r_max); if (r_min < *min) *min = r_min; if (r_max > *max) *max = r_max; line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { gaiaZRangePolygon (polyg, &r_min, &r_max); if (r_min < *min) *min = r_min; if (r_max > *max) *max = r_max; polyg = polyg->Next; } } GAIAGEO_DECLARE int gaiaDimension (gaiaGeomCollPtr geom) { /* determines the Dimension for this geometry */ gaiaPointPtr point; gaiaLinestringPtr line; gaiaPolygonPtr polyg; int n_points = 0; int n_linestrings = 0; int n_polygons = 0; if (!geom) return -1; point = geom->FirstPoint; while (point) { /* counts how many points are there */ n_points++; point = point->Next; } line = geom->FirstLinestring; while (line) { /* counts how many linestrings are there */ n_linestrings++; line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* counts how many polygons are there */ n_polygons++; polyg = polyg->Next; } if (n_points == 0 && n_linestrings == 0 && n_polygons == 0) return -1; if (n_points > 0 && n_linestrings == 0 && n_polygons == 0) return 0; if (n_linestrings > 0 && n_polygons == 0) return 1; return 2; } GAIAGEO_DECLARE int gaiaGeometryType (gaiaGeomCollPtr geom) { /* determines the Class for this geometry */ gaiaPointPtr point; gaiaLinestringPtr line; gaiaPolygonPtr polyg; gaiaRingPtr ring; int ib; int n_points = 0; int n_linestrings = 0; int n_polygons = 0; int dm = GAIA_XY; if (!geom) return GAIA_UNKNOWN; point = geom->FirstPoint; while (point) { /* counts how many points are there */ n_points++; if (point->DimensionModel == GAIA_XY_Z) { if (dm == GAIA_XY) dm = GAIA_XY_Z; else if (dm == GAIA_XY_M) dm = GAIA_XY_Z_M; } else if (point->DimensionModel == GAIA_XY_M) { if (dm == GAIA_XY) dm = GAIA_XY_M; else if (dm == GAIA_XY_Z) dm = GAIA_XY_Z_M; } else if (point->DimensionModel == GAIA_XY_Z_M) dm = GAIA_XY_Z_M; point = point->Next; } line = geom->FirstLinestring; while (line) { /* counts how many linestrings are there */ n_linestrings++; if (line->DimensionModel == GAIA_XY_Z) { if (dm == GAIA_XY) dm = GAIA_XY_Z; else if (dm == GAIA_XY_M) dm = GAIA_XY_Z_M; } else if (line->DimensionModel == GAIA_XY_M) { if (dm == GAIA_XY) dm = GAIA_XY_M; else if (dm == GAIA_XY_Z) dm = GAIA_XY_Z_M; } else if (line->DimensionModel == GAIA_XY_Z_M) dm = GAIA_XY_Z_M; line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* counts how many polygons are there */ n_polygons++; ring = polyg->Exterior; if (ring->DimensionModel == GAIA_XY_Z) { if (dm == GAIA_XY) dm = GAIA_XY_Z; else if (dm == GAIA_XY_M) dm = GAIA_XY_Z_M; } else if (ring->DimensionModel == GAIA_XY_M) { if (dm == GAIA_XY) dm = GAIA_XY_M; else if (dm == GAIA_XY_Z) dm = GAIA_XY_Z_M; } else if (ring->DimensionModel == GAIA_XY_Z_M) dm = GAIA_XY_Z_M; for (ib = 0; ib < polyg->NumInteriors; ib++) { ring = polyg->Interiors + ib; if (ring->DimensionModel == GAIA_XY_Z) { if (dm == GAIA_XY) dm = GAIA_XY_Z; else if (dm == GAIA_XY_M) dm = GAIA_XY_Z_M; } else if (ring->DimensionModel == GAIA_XY_M) { if (dm == GAIA_XY) dm = GAIA_XY_M; else if (dm == GAIA_XY_Z) dm = GAIA_XY_Z_M; } else if (ring->DimensionModel == GAIA_XY_Z_M) dm = GAIA_XY_Z_M; } polyg = polyg->Next; } if (n_points == 0 && n_linestrings == 0 && n_polygons == 0) return GAIA_UNKNOWN; if (n_points == 1 && n_linestrings == 0 && n_polygons == 0) { if (geom->DeclaredType == GAIA_MULTIPOINT) { if (dm == GAIA_XY_Z) return GAIA_MULTIPOINTZ; if (dm == GAIA_XY_M) return GAIA_MULTIPOINTM; if (dm == GAIA_XY_Z_M) return GAIA_MULTIPOINTZM; else return GAIA_MULTIPOINT; } else if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) { if (dm == GAIA_XY_Z) return GAIA_GEOMETRYCOLLECTIONZ; if (dm == GAIA_XY_M) return GAIA_GEOMETRYCOLLECTIONM; if (dm == GAIA_XY_Z_M) return GAIA_GEOMETRYCOLLECTIONZM; else return GAIA_GEOMETRYCOLLECTION; } else { if (dm == GAIA_XY_Z) return GAIA_POINTZ; if (dm == GAIA_XY_M) return GAIA_POINTM; if (dm == GAIA_XY_Z_M) return GAIA_POINTZM; else return GAIA_POINT; } } if (n_points > 0 && n_linestrings == 0 && n_polygons == 0) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) { if (dm == GAIA_XY_Z) return GAIA_GEOMETRYCOLLECTIONZ; if (dm == GAIA_XY_M) return GAIA_GEOMETRYCOLLECTIONM; if (dm == GAIA_XY_Z_M) return GAIA_GEOMETRYCOLLECTIONZM; else return GAIA_GEOMETRYCOLLECTION; } else { if (dm == GAIA_XY_Z) return GAIA_MULTIPOINTZ; if (dm == GAIA_XY_M) return GAIA_MULTIPOINTM; if (dm == GAIA_XY_Z_M) return GAIA_MULTIPOINTZM; else return GAIA_MULTIPOINT; } } if (n_points == 0 && n_linestrings == 1 && n_polygons == 0) { if (geom->DeclaredType == GAIA_MULTILINESTRING) { if (dm == GAIA_XY_Z) return GAIA_MULTILINESTRINGZ; if (dm == GAIA_XY_M) return GAIA_MULTILINESTRINGM; if (dm == GAIA_XY_Z_M) return GAIA_MULTILINESTRINGZM; else return GAIA_MULTILINESTRING; } else if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) { if (dm == GAIA_XY_Z) return GAIA_GEOMETRYCOLLECTIONZ; if (dm == GAIA_XY_M) return GAIA_GEOMETRYCOLLECTIONM; if (dm == GAIA_XY_Z_M) return GAIA_GEOMETRYCOLLECTIONZM; else return GAIA_GEOMETRYCOLLECTION; } else { if (dm == GAIA_XY_Z) return GAIA_LINESTRINGZ; if (dm == GAIA_XY_M) return GAIA_LINESTRINGM; if (dm == GAIA_XY_Z_M) return GAIA_LINESTRINGZM; else return GAIA_LINESTRING; } } if (n_points == 0 && n_linestrings > 0 && n_polygons == 0) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) { if (dm == GAIA_XY_Z) return GAIA_GEOMETRYCOLLECTIONZ; if (dm == GAIA_XY_M) return GAIA_GEOMETRYCOLLECTIONM; if (dm == GAIA_XY_Z_M) return GAIA_GEOMETRYCOLLECTIONZM; else return GAIA_GEOMETRYCOLLECTION; } else { if (dm == GAIA_XY_Z) return GAIA_MULTILINESTRINGZ; if (dm == GAIA_XY_M) return GAIA_MULTILINESTRINGM; if (dm == GAIA_XY_Z_M) return GAIA_MULTILINESTRINGZM; else return GAIA_MULTILINESTRING; } } if (n_points == 0 && n_linestrings == 0 && n_polygons == 1) { if (geom->DeclaredType == GAIA_MULTIPOLYGON) { if (dm == GAIA_XY_Z) return GAIA_MULTIPOLYGONZ; if (dm == GAIA_XY_M) return GAIA_MULTIPOLYGONM; if (dm == GAIA_XY_Z_M) return GAIA_MULTIPOLYGONZM; else return GAIA_MULTIPOLYGON; } else if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) { if (dm == GAIA_XY_Z) return GAIA_GEOMETRYCOLLECTIONZ; if (dm == GAIA_XY_M) return GAIA_GEOMETRYCOLLECTIONM; if (dm == GAIA_XY_Z_M) return GAIA_GEOMETRYCOLLECTIONZM; else return GAIA_GEOMETRYCOLLECTION; } else { if (dm == GAIA_XY_Z) return GAIA_POLYGONZ; if (dm == GAIA_XY_M) return GAIA_POLYGONM; if (dm == GAIA_XY_Z_M) return GAIA_POLYGONZM; else return GAIA_POLYGON; } } if (n_points == 0 && n_linestrings == 0 && n_polygons > 0) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) { if (dm == GAIA_XY_Z) return GAIA_GEOMETRYCOLLECTIONZ; if (dm == GAIA_XY_M) return GAIA_GEOMETRYCOLLECTIONM; if (dm == GAIA_XY_Z_M) return GAIA_GEOMETRYCOLLECTIONZM; else return GAIA_GEOMETRYCOLLECTION; } else { if (dm == GAIA_XY_Z) return GAIA_MULTIPOLYGONZ; if (dm == GAIA_XY_M) return GAIA_MULTIPOLYGONM; if (dm == GAIA_XY_Z_M) return GAIA_MULTIPOLYGONZM; else return GAIA_MULTIPOLYGON; } } if (dm == GAIA_XY_Z) return GAIA_GEOMETRYCOLLECTIONZ; if (dm == GAIA_XY_M) return GAIA_GEOMETRYCOLLECTIONM; if (dm == GAIA_XY_Z_M) return GAIA_GEOMETRYCOLLECTIONZM; else return GAIA_GEOMETRYCOLLECTION; } GAIAGEO_DECLARE int gaiaGeometryAliasType (gaiaGeomCollPtr geom) { /* determines the AliasClass for this geometry */ gaiaPointPtr point; gaiaLinestringPtr line; gaiaPolygonPtr polyg; int n_points = 0; int n_linestrings = 0; int n_polygons = 0; if (!geom) return GAIA_UNKNOWN; point = geom->FirstPoint; while (point) { /* counts how many points are there */ n_points++; point = point->Next; } line = geom->FirstLinestring; while (line) { /* counts how many linestrings are there */ n_linestrings++; line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* counts how many polygons are there */ n_polygons++; polyg = polyg->Next; } if (n_points == 0 && n_linestrings == 0 && n_polygons == 0) return GAIA_UNKNOWN; if (n_points == 1 && n_linestrings == 0 && n_polygons == 0) { if (geom->DeclaredType == GAIA_MULTIPOINT) return GAIA_MULTIPOINT; else if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) return GAIA_GEOMETRYCOLLECTION; else return GAIA_POINT; } if (n_points >= 1 && n_linestrings == 0 && n_polygons == 0) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) return GAIA_GEOMETRYCOLLECTION; else return GAIA_MULTIPOINT; } if (n_points == 0 && n_linestrings == 1 && n_polygons == 0) { if (geom->DeclaredType == GAIA_MULTILINESTRING) return GAIA_MULTILINESTRING; else if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) return GAIA_GEOMETRYCOLLECTION; else return GAIA_LINESTRING; } if (n_points == 0 && n_linestrings >= 1 && n_polygons == 0) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) return GAIA_GEOMETRYCOLLECTION; else return GAIA_MULTILINESTRING; } if (n_points == 0 && n_linestrings == 0 && n_polygons == 1) { if (geom->DeclaredType == GAIA_MULTIPOLYGON) return GAIA_MULTIPOLYGON; else if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) return GAIA_GEOMETRYCOLLECTION; else return GAIA_POLYGON; } if (n_points == 0 && n_linestrings == 0 && n_polygons >= 1) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) return GAIA_GEOMETRYCOLLECTION; else return GAIA_MULTIPOLYGON; } return GAIA_GEOMETRYCOLLECTION; } GAIAGEO_DECLARE int gaiaIsEmpty (gaiaGeomCollPtr geom) { /* checks if this GEOMETRYCOLLECTION is an empty one */ if (!geom) return 1; if (geom->FirstPoint != NULL) { /* there is at least one point */ return 0; } if (geom->FirstLinestring != NULL) { /* there is at least one linestring */ return 0; } if (geom->FirstPolygon != NULL) { /* there is at least one polygon */ return 0; } return 1; } GAIAGEO_DECLARE int gaiaIsClosed (gaiaLinestringPtr line) { /* checks if this linestring is a closed one */ double x0; double y0; double x1; double y1; double z; double m; if (!line) return 0; if (line->Points < 3) return 0; if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, 0, &x0, &y0, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, 0, &x0, &y0, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, 0, &x0, &y0, &z, &m); } else { gaiaGetPoint (line->Coords, 0, &x0, &y0); } if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, (line->Points - 1), &x1, &y1, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, (line->Points - 1), &x1, &y1, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, (line->Points - 1), &x1, &y1, &z, &m); } else { gaiaGetPoint (line->Coords, (line->Points - 1), &x1, &y1); } if (x0 == x1 && y0 == y1) return 1; return 0; } GAIAGEO_DECLARE int gaiaMbrsEqual (gaiaGeomCollPtr mbr1, gaiaGeomCollPtr mbr2) { /* / checks if two MBRs are identical / / returns 1 if TRUE / 0 if FALSE */ if (mbr1->MinX != mbr2->MinX) return 0; if (mbr1->MinY != mbr2->MinY) return 0; if (mbr1->MaxX != mbr2->MaxX) return 0; if (mbr1->MaxY != mbr2->MaxY) return 0; return 1; } GAIAGEO_DECLARE int gaiaMbrsDisjoint (gaiaGeomCollPtr mbr1, gaiaGeomCollPtr mbr2) { /* / checks if two MBRs are disjoint / / returns 1 if TRUE / 0 if FALSE */ if (mbr1->MinX > mbr2->MaxX) return 1; if (mbr1->MinY > mbr2->MaxY) return 1; if (mbr1->MaxX < mbr2->MinX) return 1; if (mbr1->MaxY < mbr2->MinY) return 1; if (mbr2->MinX > mbr1->MaxX) return 1; if (mbr2->MinY > mbr1->MaxY) return 1; if (mbr2->MaxX < mbr1->MinX) return 1; if (mbr2->MaxY < mbr1->MinY) return 1; return 0; } GAIAGEO_DECLARE int gaiaMbrsTouches (gaiaGeomCollPtr mbr1, gaiaGeomCollPtr mbr2) { /* / checks if two MBRs touches / / returns 1 if TRUE / 0 if FALSE */ if (mbr1->MinX == mbr2->MinX) return 1; if (mbr1->MinY == mbr2->MinY) return 1; if (mbr1->MaxX == mbr2->MaxX) return 1; if (mbr1->MaxY == mbr2->MaxY) return 1; return 0; } GAIAGEO_DECLARE int gaiaMbrsIntersects (gaiaGeomCollPtr mbr1, gaiaGeomCollPtr mbr2) { /* / checks if two MBRs intersect / / returns 1 if TRUE / 0 if FALSE */ if (gaiaMbrsDisjoint (mbr1, mbr2)) return 0; return 1; } GAIAGEO_DECLARE int gaiaMbrsOverlaps (gaiaGeomCollPtr mbr1, gaiaGeomCollPtr mbr2) { /* / checks if two MBRs overlap / / returns 1 if TRUE / 0 if FALSE */ if (gaiaMbrsDisjoint (mbr1, mbr2)) return 0; if (mbr1->MinX >= mbr2->MinX && mbr1->MinX <= mbr2->MaxX) return 1; if (mbr1->MaxX >= mbr2->MinX && mbr1->MaxX <= mbr2->MaxX) return 1; if (mbr1->MinY >= mbr2->MinY && mbr1->MinY <= mbr2->MaxY) return 1; if (mbr1->MaxY >= mbr2->MinY && mbr1->MaxY <= mbr2->MaxY) return 1; return 0; } GAIAGEO_DECLARE int gaiaMbrsContains (gaiaGeomCollPtr mbr1, gaiaGeomCollPtr mbr2) { /* / checks if MBR-1 completely contains MBR-2 / / returns 1 if TRUE / 0 if FALSE */ int ok_1 = 0; int ok_2 = 0; int ok_3 = 0; int ok_4 = 0; if (mbr2->MinX >= mbr1->MinX && mbr2->MinX <= mbr1->MaxX) ok_1 = 1; if (mbr2->MaxX >= mbr1->MinX && mbr2->MaxX <= mbr1->MaxX) ok_2 = 1; if (mbr2->MinY >= mbr1->MinY && mbr2->MinY <= mbr1->MaxY) ok_3 = 1; if (mbr2->MaxY >= mbr1->MinY && mbr2->MaxY <= mbr1->MaxY) ok_4 = 1; if (ok_1 && ok_2 && ok_3 && ok_4) return 1; return 0; } GAIAGEO_DECLARE int gaiaMbrsWithin (gaiaGeomCollPtr mbr1, gaiaGeomCollPtr mbr2) { /* / checks if MBR-2 completely contains MBR-1 / / returns 1 if TRUE / 0 if FALSE */ int ok_1 = 0; int ok_2 = 0; int ok_3 = 0; int ok_4 = 0; if (mbr1->MinX >= mbr2->MinX && mbr1->MinX <= mbr2->MaxX) ok_1 = 1; if (mbr1->MaxX >= mbr2->MinX && mbr1->MaxX <= mbr2->MaxX) ok_2 = 1; if (mbr1->MinY >= mbr2->MinY && mbr1->MinY <= mbr2->MaxY) ok_3 = 1; if (mbr1->MaxY >= mbr2->MinY && mbr1->MaxY <= mbr2->MaxY) ok_4 = 1; if (ok_1 && ok_2 && ok_3 && ok_4) return 1; return 0; } GAIAGEO_DECLARE void gaiaMakePoint (double x, double y, int srid, unsigned char **result, int *size) { /* build a Blob encoded Geometry representing a POINT */ unsigned char *ptr; int endian_arch = gaiaEndianArch (); /* computing the Blob size and then allocating it */ *size = 44; /* header size */ *size += (sizeof (double) * 2); /* [x,y] coords */ *result = malloc (*size); ptr = *result; /* setting the Blob value */ *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, x, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, y, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, x, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, y, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_POINT, 1, endian_arch); /* class POINT */ gaiaExport64 (ptr + 43, x, 1, endian_arch); /* X */ gaiaExport64 (ptr + 51, y, 1, endian_arch); /* Y */ *(ptr + 59) = GAIA_MARK_END; /* END signature */ } GAIAGEO_DECLARE void gaiaMakePointZ (double x, double y, double z, int srid, unsigned char **result, int *size) { /* build a Blob encoded Geometry representing a POINT Z */ unsigned char *ptr; int endian_arch = gaiaEndianArch (); /* computing the Blob size and then allocating it */ *size = 44; /* header size */ *size += (sizeof (double) * 3); /* [x,y,z] coords */ *result = malloc (*size); ptr = *result; /* setting the Blob value */ *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, x, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, y, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, x, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, y, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_POINTZ, 1, endian_arch); /* class POINT */ gaiaExport64 (ptr + 43, x, 1, endian_arch); /* X */ gaiaExport64 (ptr + 51, y, 1, endian_arch); /* Y */ gaiaExport64 (ptr + 59, z, 1, endian_arch); /* Z */ *(ptr + 67) = GAIA_MARK_END; /* END signature */ } GAIAGEO_DECLARE void gaiaMakePointM (double x, double y, double m, int srid, unsigned char **result, int *size) { /* build a Blob encoded Geometry representing a POINT M */ unsigned char *ptr; int endian_arch = gaiaEndianArch (); /* computing the Blob size and then allocating it */ *size = 44; /* header size */ *size += (sizeof (double) * 3); /* [x,y,z] coords */ *result = malloc (*size); ptr = *result; /* setting the Blob value */ *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, x, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, y, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, x, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, y, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_POINTM, 1, endian_arch); /* class POINT */ gaiaExport64 (ptr + 43, x, 1, endian_arch); /* X */ gaiaExport64 (ptr + 51, y, 1, endian_arch); /* Y */ gaiaExport64 (ptr + 59, m, 1, endian_arch); /* M */ *(ptr + 67) = GAIA_MARK_END; /* END signature */ } GAIAGEO_DECLARE void gaiaMakePointZM (double x, double y, double z, double m, int srid, unsigned char **result, int *size) { /* build a Blob encoded Geometry representing a POINT ZM */ unsigned char *ptr; int endian_arch = gaiaEndianArch (); /* computing the Blob size and then allocating it */ *size = 44; /* header size */ *size += (sizeof (double) * 4); /* [x,y,z,m] coords */ *result = malloc (*size); ptr = *result; /* setting the Blob value */ *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, x, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, y, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, x, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, y, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_POINTZM, 1, endian_arch); /* class POINT */ gaiaExport64 (ptr + 43, x, 1, endian_arch); /* X */ gaiaExport64 (ptr + 51, y, 1, endian_arch); /* Y */ gaiaExport64 (ptr + 59, z, 1, endian_arch); /* Z */ gaiaExport64 (ptr + 67, m, 1, endian_arch); /* M */ *(ptr + 75) = GAIA_MARK_END; /* END signature */ } GAIAGEO_DECLARE void gaiaMakeLine (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, unsigned char **result, int *size) { /* build a Blob encoded Geometry representing a LINESTRING (segment) */ int pts; int lns; int pgs; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; gaiaGeomCollPtr g; int dims0; int dims1; int dims; double x0; double y0; double z0; double m0; double x1; double y1; double z1; double m1; /* checking if GEOM-1 simply is a POINT */ if (geom1 == NULL) { *result = NULL; *size = 0; return; } pts = 0; lns = 0; pgs = 0; pt = geom1->FirstPoint; while (pt) { pts++; x0 = pt->X; y0 = pt->Y; z0 = pt->Z; m0 = pt->M; dims0 = pt->DimensionModel; pt = pt->Next; } ln = geom1->FirstLinestring; while (ln) { lns++; ln = ln->Next; } pg = geom1->FirstPolygon; while (pg) { pgs++; pg = pg->Next; } if (pts == 1 && lns == 0 && pgs == 0) ; else { /* failure: not a simple POINT */ *result = NULL; *size = 0; return; } /* checking if GEOM-2 simply is a POINT */ if (geom2 == NULL) { *result = NULL; *size = 0; return; } pts = 0; lns = 0; pgs = 0; pt = geom2->FirstPoint; while (pt) { pts++; x1 = pt->X; y1 = pt->Y; z1 = pt->Z; m1 = pt->M; dims1 = pt->DimensionModel; pt = pt->Next; } ln = geom2->FirstLinestring; while (ln) { lns++; ln = ln->Next; } pg = geom2->FirstPolygon; while (pg) { pgs++; pg = pg->Next; } if (pts == 1 && lns == 0 && pgs == 0) ; else { /* failure: not a simple POINT */ *result = NULL; *size = 0; return; } /* building a new Geometry */ if (dims0 == dims1) dims = dims0; else { if (dims0 == GAIA_XY_Z_M || dims1 == GAIA_XY_Z_M) dims = GAIA_XY_Z_M; else if (dims0 == GAIA_XY_Z && dims1 == GAIA_XY_M) dims = GAIA_XY_Z_M; else if (dims0 == GAIA_XY_M && dims1 == GAIA_XY_Z) dims = GAIA_XY_Z_M; else if (dims0 == GAIA_XY_Z) dims = GAIA_XY_Z; else if (dims1 == GAIA_XY_Z) dims = GAIA_XY_Z; else if (dims0 == GAIA_XY_M) dims = GAIA_XY_M; else if (dims1 == GAIA_XY_M) dims = GAIA_XY_M; else dims = GAIA_XY; } if (dims == GAIA_XY_Z_M) g = gaiaAllocGeomCollXYZM (); else if (dims == GAIA_XY_Z) g = gaiaAllocGeomCollXYZ (); else if (dims == GAIA_XY_M) g = gaiaAllocGeomCollXYM (); else g = gaiaAllocGeomColl (); g->Srid = geom1->Srid; g->DeclaredType = GAIA_LINESTRING; ln = gaiaAddLinestringToGeomColl (g, 2); if (dims == GAIA_XY_Z_M) { gaiaSetPointXYZM (ln->Coords, 0, x0, y0, z0, m0); gaiaSetPointXYZM (ln->Coords, 1, x1, y1, z1, m1); } else if (dims == GAIA_XY_Z) { gaiaSetPointXYZ (ln->Coords, 0, x0, y0, z0); gaiaSetPointXYZ (ln->Coords, 1, x1, y1, z1); } else if (dims == GAIA_XY_M) { gaiaSetPointXYM (ln->Coords, 0, x0, y0, m0); gaiaSetPointXYM (ln->Coords, 1, x1, y1, m1); } else { gaiaSetPoint (ln->Coords, 0, x0, y0); gaiaSetPoint (ln->Coords, 1, x1, y1); } /* converting to Binary Blob */ gaiaToSpatiaLiteBlobWkb (g, result, size); gaiaFreeGeomColl (g); } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMergeGeometries (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { /* mergine two generic Geometries into a single one */ gaiaGeomCollPtr result; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaLinestringPtr new_ln; gaiaPolygonPtr pg; gaiaPolygonPtr new_pg; gaiaRingPtr rng; gaiaRingPtr new_rng; int dims1; int dims2; int dims; double x; double y; double z; double m; int iv; int ib; if (geom1 == NULL || geom2 == NULL) return NULL; if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) return NULL; dims1 = geom1->DimensionModel; dims2 = geom2->DimensionModel; /* building a new Geometry */ if (dims1 == dims2) dims = dims1; else { if (dims1 == GAIA_XY_Z_M || dims2 == GAIA_XY_Z_M) dims = GAIA_XY_Z_M; else if (dims1 == GAIA_XY_Z && dims2 == GAIA_XY_M) dims = GAIA_XY_Z_M; else if (dims1 == GAIA_XY_M && dims2 == GAIA_XY_Z) dims = GAIA_XY_Z_M; else if (dims1 == GAIA_XY_Z) dims = GAIA_XY_Z; else if (dims2 == GAIA_XY_Z) dims = GAIA_XY_Z; else if (dims1 == GAIA_XY_M) dims = GAIA_XY_M; else if (dims2 == GAIA_XY_M) dims = GAIA_XY_M; else dims = GAIA_XY; } if (dims == GAIA_XY_Z_M) result = gaiaAllocGeomCollXYZM (); else if (dims == GAIA_XY_Z) result = gaiaAllocGeomCollXYZ (); else if (dims == GAIA_XY_M) result = gaiaAllocGeomCollXYM (); else result = gaiaAllocGeomColl (); result->Srid = geom1->Srid; pt = geom1->FirstPoint; while (pt) { /* copying POINTs from GEOM-1 */ z = 0.0; m = 0.0; if (pt->DimensionModel == GAIA_XY_Z_M) { x = pt->X; y = pt->Y; z = pt->Z; m = pt->M; } else if (pt->DimensionModel == GAIA_XY_Z) { x = pt->X; y = pt->Y; z = pt->Z; } else if (pt->DimensionModel == GAIA_XY_M) { x = pt->X; y = pt->Y; m = pt->M; } else { x = pt->X; y = pt->Y; } if (result->DimensionModel == GAIA_XY_Z_M) { gaiaAddPointToGeomCollXYZM (result, x, y, z, m); } else if (result->DimensionModel == GAIA_XY_Z) { gaiaAddPointToGeomCollXYZ (result, x, y, z); } else if (result->DimensionModel == GAIA_XY_M) { gaiaAddPointToGeomCollXYM (result, x, y, m); } else { gaiaAddPointToGeomColl (result, x, y); } pt = pt->Next; } pt = geom2->FirstPoint; while (pt) { /* copying POINTs from GEOM-2 */ z = 0.0; m = 0.0; if (pt->DimensionModel == GAIA_XY_Z_M) { x = pt->X; y = pt->Y; z = pt->Z; m = pt->M; } else if (pt->DimensionModel == GAIA_XY_Z) { x = pt->X; y = pt->Y; z = pt->Z; } else if (pt->DimensionModel == GAIA_XY_M) { x = pt->X; y = pt->Y; m = pt->M; } else { x = pt->X; y = pt->Y; } if (result->DimensionModel == GAIA_XY_Z_M) { gaiaAddPointToGeomCollXYZM (result, x, y, z, m); } else if (result->DimensionModel == GAIA_XY_Z) { gaiaAddPointToGeomCollXYZ (result, x, y, z); } else if (result->DimensionModel == GAIA_XY_M) { gaiaAddPointToGeomCollXYM (result, x, y, m); } else { gaiaAddPointToGeomColl (result, x, y); } pt = pt->Next; } ln = geom1->FirstLinestring; while (ln) { /* copying LINESTRINGs from GEOM-1 */ new_ln = gaiaAddLinestringToGeomColl (result, ln->Points); for (iv = 0; iv < ln->Points; iv++) { z = 0.0; m = 0.0; if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); } else if (ln->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); } if (new_ln->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (new_ln->Coords, iv, x, y, z, m); } else if (new_ln->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (new_ln->Coords, iv, x, y, z); } else if (new_ln->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (new_ln->Coords, iv, x, y, m); } else { gaiaSetPoint (new_ln->Coords, iv, x, y); } } ln = ln->Next; } ln = geom2->FirstLinestring; while (ln) { /* copying LINESTRINGs from GEOM-2 */ new_ln = gaiaAddLinestringToGeomColl (result, ln->Points); for (iv = 0; iv < ln->Points; iv++) { z = 0.0; m = 0.0; if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); } else if (ln->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); } if (new_ln->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (new_ln->Coords, iv, x, y, z, m); } else if (new_ln->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (new_ln->Coords, iv, x, y, z); } else if (new_ln->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (new_ln->Coords, iv, x, y, m); } else { gaiaSetPoint (new_ln->Coords, iv, x, y); } } ln = ln->Next; } pg = geom1->FirstPolygon; while (pg) { /* copying POLYGONs from GEOM-1 */ rng = pg->Exterior; new_pg = gaiaAddPolygonToGeomColl (result, rng->Points, pg->NumInteriors); new_rng = new_pg->Exterior; for (iv = 0; iv < rng->Points; iv++) { /* Exterior Ring */ z = 0.0; m = 0.0; if (rng->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); } else if (rng->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); } else if (rng->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); } if (new_rng->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (new_rng->Coords, iv, x, y, z, m); } else if (new_rng->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (new_rng->Coords, iv, x, y, z); } else if (new_rng->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (new_rng->Coords, iv, x, y, m); } else { gaiaSetPoint (new_rng->Coords, iv, x, y); } } for (ib = 0; ib < pg->NumInteriors; ib++) { /* Interior Rings */ rng = pg->Interiors + ib; new_rng = gaiaAddInteriorRing (new_pg, ib, rng->Points); for (iv = 0; iv < rng->Points; iv++) { z = 0.0; m = 0.0; if (rng->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); } else if (rng->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); } else if (rng->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); } if (new_rng->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (new_rng->Coords, iv, x, y, z, m); } else if (new_rng->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (new_rng->Coords, iv, x, y, z); } else if (new_rng->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (new_rng->Coords, iv, x, y, m); } else { gaiaSetPoint (new_rng->Coords, iv, x, y); } } } pg = pg->Next; } pg = geom2->FirstPolygon; while (pg) { /* copying POLYGONs from GEOM-2 */ rng = pg->Exterior; new_pg = gaiaAddPolygonToGeomColl (result, rng->Points, pg->NumInteriors); new_rng = new_pg->Exterior; for (iv = 0; iv < rng->Points; iv++) { /* Exterior Ring */ z = 0.0; m = 0.0; if (rng->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); } else if (rng->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); } else if (rng->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); } if (new_rng->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (new_rng->Coords, iv, x, y, z, m); } else if (new_rng->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (new_rng->Coords, iv, x, y, z); } else if (new_rng->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (new_rng->Coords, iv, x, y, m); } else { gaiaSetPoint (new_rng->Coords, iv, x, y); } } for (ib = 0; ib < pg->NumInteriors; ib++) { /* Interior Rings */ rng = pg->Interiors + ib; new_rng = gaiaAddInteriorRing (new_pg, ib, rng->Points); for (iv = 0; iv < rng->Points; iv++) { z = 0.0; m = 0.0; if (rng->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); } else if (rng->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); } else if (rng->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); } if (new_rng->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (new_rng->Coords, iv, x, y, z, m); } else if (new_rng->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (new_rng->Coords, iv, x, y, z); } else if (new_rng->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (new_rng->Coords, iv, x, y, m); } else { gaiaSetPoint (new_rng->Coords, iv, x, y); } } } pg = pg->Next; } return result; } GAIAGEO_DECLARE void gaiaBuildMbr (double x1, double y1, double x2, double y2, int srid, unsigned char **result, int *size) { /* build a Blob encoded Geometry representing an MBR */ unsigned char *ptr; double minx; double maxx; double miny; double maxy; int endian_arch = gaiaEndianArch (); /* computing MinMax coords */ if (x1 > x2) { maxx = x1; minx = x2; } else { minx = x1; maxx = x2; } if (y1 > y2) { maxy = y1; miny = y2; } else { miny = y1; maxy = y2; } /* computing the Blob size and then allocating it */ *size = 44; /* header size */ *size += (8 + ((sizeof (double) * 2) * 5)); /* # rings + # points + [x.y] array - exterior ring */ *result = malloc (*size); ptr = *result; /* setting the Blob value */ *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, minx, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, miny, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, maxx, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, maxy, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_POLYGON, 1, endian_arch); /* class POLYGON */ gaiaExport32 (ptr + 43, 1, 1, endian_arch); /* # rings */ gaiaExport32 (ptr + 47, 5, 1, endian_arch); /* # points - exterior ring */ ptr += 51; /* setting Envelope points */ gaiaExport64 (ptr, minx, 1, endian_arch); gaiaExport64 (ptr + 8, miny, 1, endian_arch); ptr += 16; gaiaExport64 (ptr, maxx, 1, endian_arch); gaiaExport64 (ptr + 8, miny, 1, endian_arch); ptr += 16; gaiaExport64 (ptr, maxx, 1, endian_arch); gaiaExport64 (ptr + 8, maxy, 1, endian_arch); ptr += 16; gaiaExport64 (ptr, minx, 1, endian_arch); gaiaExport64 (ptr + 8, maxy, 1, endian_arch); ptr += 16; gaiaExport64 (ptr, minx, 1, endian_arch); gaiaExport64 (ptr + 8, miny, 1, endian_arch); ptr += 16; *ptr = GAIA_MARK_END; /* END signature */ } GAIAGEO_DECLARE void gaiaBuildCircleMbr (double x, double y, double radius, int srid, unsigned char **result, int *size) { /* build a Blob encoded Geometry representing an MBR */ int sz; unsigned char *res = NULL; double minx = x - radius; double maxx = x + radius; double miny = y - radius; double maxy = y + radius; gaiaBuildMbr (minx, miny, maxx, maxy, srid, &res, &sz); if (!res) { *result = NULL; *size = 0; } else { *result = res; *size = sz; } } GAIAGEO_DECLARE void gaiaBuildFilterMbr (double x1, double y1, double x2, double y2, int mode, unsigned char **result, int *size) { /* build a filter for an MBR */ unsigned char *ptr; double minx; double maxx; double miny; double maxy; int endian_arch = gaiaEndianArch (); char filter = GAIA_FILTER_MBR_WITHIN; if (mode == GAIA_FILTER_MBR_CONTAINS) filter = GAIA_FILTER_MBR_CONTAINS; if (mode == GAIA_FILTER_MBR_INTERSECTS) filter = GAIA_FILTER_MBR_INTERSECTS; if (mode == GAIA_FILTER_MBR_DECLARE) filter = GAIA_FILTER_MBR_DECLARE; /* computing MinMax coords */ if (x1 > x2) { maxx = x1; minx = x2; } else { minx = x1; maxx = x2; } if (y1 > y2) { maxy = y1; miny = y2; } else { miny = y1; maxy = y2; } /* computing the Blob size and then allocating it */ *size = 37; /* MBR filter size */ *result = malloc (*size); ptr = *result; /* setting the Blob value */ *ptr = filter; /* signature */ ptr++; gaiaExport64 (ptr, minx, 1, endian_arch); /* MBR - minimum X */ ptr += 8; *ptr = filter; /* signature */ ptr++; gaiaExport64 (ptr, miny, 1, endian_arch); /* MBR - minimum Y */ ptr += 8; *ptr = filter; /* signature */ ptr++; gaiaExport64 (ptr, maxx, 1, endian_arch); /* MBR - maximum X */ ptr += 8; *ptr = filter; /* signature */ ptr++; gaiaExport64 (ptr, maxy, 1, endian_arch); /* MBR - maximum Y */ ptr += 8; *ptr = filter; /* signature */ } GAIAGEO_DECLARE int gaiaParseFilterMbr (unsigned char *ptr, int size, double *minx, double *miny, double *maxx, double *maxy, int *mode) { /* parsing a filter for an MBR */ char decl_mode; int endian_arch = gaiaEndianArch (); if (size != 37) return 0; /* cannot be an MBR Filter */ if (!ptr) return 0; /* cannot be an MBR Filter */ decl_mode = *(ptr + 0); if (decl_mode == GAIA_FILTER_MBR_WITHIN) ; else if (decl_mode == GAIA_FILTER_MBR_CONTAINS) ; else if (decl_mode == GAIA_FILTER_MBR_INTERSECTS) ; else if (decl_mode == GAIA_FILTER_MBR_DECLARE) ; else return 0; /* cannot be an MBR Filter */ if (*(ptr + 9) == decl_mode && *(ptr + 18) == decl_mode && *(ptr + 27) == decl_mode && *(ptr + 36) == decl_mode) ; else return 0; /* cannot be an MBR Filter */ *mode = decl_mode; *minx = gaiaImport64 (ptr + 1, 1, endian_arch); *miny = gaiaImport64 (ptr + 10, 1, endian_arch); *maxx = gaiaImport64 (ptr + 19, 1, endian_arch); *maxy = gaiaImport64 (ptr + 28, 1, endian_arch); return 1; } GAIAGEO_DECLARE int gaiaGetMbrMinX (const unsigned char *blob, unsigned int size, double *minx) { /* returns the MinX coordinate value for a Blob encoded Geometry */ int little_endian; int endian_arch = gaiaEndianArch (); if (size < 45) return 0; /* cannot be an internal BLOB WKB geometry */ if (*(blob + 0) != GAIA_MARK_START) return 0; /* failed to recognize START signature */ if (*(blob + (size - 1)) != GAIA_MARK_END) return 0; /* failed to recognize END signature */ if (*(blob + 38) != GAIA_MARK_MBR) return 0; /* failed to recognize MBR signature */ if (*(blob + 1) == GAIA_LITTLE_ENDIAN) little_endian = 1; else if (*(blob + 1) == GAIA_BIG_ENDIAN) little_endian = 0; else return 0; /* unknown encoding; neither little-endian nor big-endian */ *minx = gaiaImport64 (blob + 6, little_endian, endian_arch); return 1; } GAIAGEO_DECLARE int gaiaGetMbrMaxX (const unsigned char *blob, unsigned int size, double *maxx) { /* returns the MaxX coordinate value for a Blob encoded Geometry */ int little_endian; int endian_arch = gaiaEndianArch (); if (size < 45) return 0; /* cannot be an internal BLOB WKB geometry */ if (*(blob + 0) != GAIA_MARK_START) return 0; /* failed to recognize START signature */ if (*(blob + (size - 1)) != GAIA_MARK_END) return 0; /* failed to recognize END signature */ if (*(blob + 38) != GAIA_MARK_MBR) return 0; /* failed to recognize MBR signature */ if (*(blob + 1) == GAIA_LITTLE_ENDIAN) little_endian = 1; else if (*(blob + 1) == GAIA_BIG_ENDIAN) little_endian = 0; else return 0; /* unknown encoding; neither little-endian nor big-endian */ *maxx = gaiaImport64 (blob + 22, little_endian, endian_arch); return 1; } GAIAGEO_DECLARE int gaiaGetMbrMinY (const unsigned char *blob, unsigned int size, double *miny) { /* returns the MinY coordinate value for a Blob encoded Geometry */ int little_endian; int endian_arch = gaiaEndianArch (); if (size < 45) return 0; /* cannot be an internal BLOB WKB geometry */ if (*(blob + 0) != GAIA_MARK_START) return 0; /* failed to recognize START signature */ if (*(blob + (size - 1)) != GAIA_MARK_END) return 0; /* failed to recognize END signature */ if (*(blob + 38) != GAIA_MARK_MBR) return 0; /* failed to recognize MBR signature */ if (*(blob + 1) == GAIA_LITTLE_ENDIAN) little_endian = 1; else if (*(blob + 1) == GAIA_BIG_ENDIAN) little_endian = 0; else return 0; /* unknown encoding; neither little-endian nor big-endian */ *miny = gaiaImport64 (blob + 14, little_endian, endian_arch); return 1; } GAIAGEO_DECLARE int gaiaGetMbrMaxY (const unsigned char *blob, unsigned int size, double *maxy) { /* returns the MaxY coordinate value for a Blob encoded Geometry */ int little_endian; int endian_arch = gaiaEndianArch (); if (size < 45) return 0; /* cannot be an internal BLOB WKB geometry */ if (*(blob + 0) != GAIA_MARK_START) return 0; /* failed to recognize START signature */ if (*(blob + (size - 1)) != GAIA_MARK_END) return 0; /* failed to recognize END signature */ if (*(blob + 38) != GAIA_MARK_MBR) return 0; /* failed to recognize MBR signature */ if (*(blob + 1) == GAIA_LITTLE_ENDIAN) little_endian = 1; else if (*(blob + 1) == GAIA_BIG_ENDIAN) little_endian = 0; else return 0; /* unknown encoding; neither little-endian nor big-endian */ *maxy = gaiaImport64 (blob + 30, little_endian, endian_arch); return 1; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLocateBetweenMeasures (gaiaGeomCollPtr geom, double m_start, double m_end) { /* extracts points/linestrings accordingly to a range of measures */ gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaLinestringPtr new_line; gaiaGeomCollPtr new_geom = NULL; gaiaDynamicLinePtr dyn = NULL; int iv; double x; double y; double z; double m; if (!geom) return NULL; if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) return NULL; if (geom->FirstPolygon != NULL) return NULL; if (geom->DimensionModel == GAIA_XY_M) new_geom = gaiaAllocGeomCollXYM (); else if (geom->DimensionModel == GAIA_XY_Z_M) new_geom = gaiaAllocGeomCollXYZM (); else return NULL; new_geom->Srid = geom->Srid; new_geom->DeclaredType = geom->DeclaredType; pt = geom->FirstPoint; while (pt) { /* extracting POINTs */ if (pt->M >= m_start && pt->M <= m_end) { if (geom->DimensionModel == GAIA_XY_M) gaiaAddPointToGeomCollXYM (new_geom, pt->X, pt->Y, pt->M); else if (geom->DimensionModel == GAIA_XY_Z_M) gaiaAddPointToGeomCollXYZM (new_geom, pt->X, pt->Y, pt->Z, pt->M); } pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { /* extracting LINESTRINGs */ for (iv = 0; iv < ln->Points; iv++) { z = 0.0; if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); } if (m >= m_start && m <= m_end) { /* found a valid vertex */ if (dyn == NULL) dyn = gaiaAllocDynamicLine (); if (ln->DimensionModel == GAIA_XY_Z_M) gaiaAppendPointZMToDynamicLine (dyn, x, y, z, m); else gaiaAppendPointMToDynamicLine (dyn, x, y, m); } else { if (dyn != NULL) { /* evaluting the latest sequence found */ int cnt = 0; pt = dyn->First; while (pt) { /* counting how many points are there */ cnt++; pt = pt->Next; } if (cnt > 1) { /* creating a Linestring */ new_line = gaiaAddLinestringToGeomColl (new_geom, cnt); cnt = 0; pt = dyn->First; while (pt) { if (new_line->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (new_line->Coords, cnt, pt->X, pt->Y, pt->Z, pt->M); } else { gaiaSetPointXYM (new_line->Coords, cnt, pt->X, pt->Y, pt->M); } cnt++; pt = pt->Next; } } else if (cnt == 1) { /* creating a Point */ pt = dyn->First; if (geom->DimensionModel == GAIA_XY_M) gaiaAddPointToGeomCollXYM (new_geom, pt->X, pt->Y, pt->M); else if (geom->DimensionModel == GAIA_XY_Z_M) gaiaAddPointToGeomCollXYZM (new_geom, pt->X, pt->Y, pt->Z, pt->M); } gaiaFreeDynamicLine (dyn); dyn = NULL; } } } if (dyn != NULL) { /* evaluting the latest sequence found */ int cnt = 0; pt = dyn->First; while (pt) { /* counting how many points are there */ cnt++; pt = pt->Next; } if (cnt > 1) { /* creating a Linestring */ new_line = gaiaAddLinestringToGeomColl (new_geom, cnt); cnt = 0; pt = dyn->First; while (pt) { if (new_line->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (new_line->Coords, cnt, pt->X, pt->Y, pt->Z, pt->M); } else { gaiaSetPointXYM (new_line->Coords, cnt, pt->X, pt->Y, pt->M); } cnt++; pt = pt->Next; } } else if (cnt == 1) { /* creating a Point */ pt = dyn->First; if (geom->DimensionModel == GAIA_XY_M) gaiaAddPointToGeomCollXYM (new_geom, pt->X, pt->Y, pt->M); else if (geom->DimensionModel == GAIA_XY_Z_M) gaiaAddPointToGeomCollXYZM (new_geom, pt->X, pt->Y, pt->Z, pt->M); } gaiaFreeDynamicLine (dyn); dyn = NULL; } ln = ln->Next; } if (new_geom->FirstPoint == NULL && new_geom->FirstLinestring == NULL) { /* empty result: returning NULL */ gaiaFreeGeomColl (new_geom); return NULL; } return new_geom; } libspatialite-4.1.1/src/gaiageo/Makefile.am0000664000175000017500000000123712163502133015504 00000000000000 SUBDIRS = flex lemon INCLUDES = @CFLAGS@ @GEOS_CFLAGS@ @LIBXML2_CFLAGS@ INCLUDES += -I$(top_srcdir)/src/headers noinst_LTLIBRARIES = libgaiageo.la libgaiageo_la_SOURCES = gg_advanced.c \ gg_endian.c \ gg_geodesic.c \ gg_geometries.c \ gg_geoscvt.c \ gg_relations.c \ gg_lwgeom.c \ gg_extras.c \ gg_shape.c \ gg_transform.c \ gg_wkb.c \ gg_wkt.c \ gg_vanuatu.c \ gg_ewkt.c \ gg_geoJSON.c \ gg_kml.c \ gg_gml.c \ gg_voronoj.c \ gg_xml.c MOSTLYCLEANFILES = *.gcna *.gcno *.gcda EXTRA_DIST = Ewkt.h Ewkt.c lex.Ewkt.c \ geoJSON.h geoJSON.c lex.GeoJson.c \ Gml.h Gml.c lex.Gml.c \ Kml.h Kml.c lex.Kml.c \ vanuatuWkt.h vanuatuWkt.c lex.VanuatuWkt.c libspatialite-4.1.1/src/gaiageo/gg_ewkt.c0000664000175000017500000016500112163502133015243 00000000000000/* gg_ewkt.c -- EWKT parser/lexer version 4.1, 2013 May 8 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011-2013 the Initial Developer. All Rights Reserved. Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include #include #ifdef _WIN32 #define strcasecmp _stricmp #define strncasecmp _strnicmp #define atoll _atoi64 #endif /* not WIN32 */ #if defined(_WIN32) || defined(WIN32) #include #ifndef isatty #define isatty _isatty #endif #ifndef fileno #define fileno _fileno #endif #endif #define EWKT_DYN_NONE 0 #define EWKT_DYN_POINT 1 #define EWKT_DYN_LINESTRING 2 #define EWKT_DYN_POLYGON 3 #define EWKT_DYN_RING 4 #define EWKT_DYN_GEOMETRY 5 #define EWKT_DYN_BLOCK 1024 /* ** CAVEAT: we must redefine any Lemon/Flex own macro */ #define YYMINORTYPE EWKT_MINORTYPE #define YY_CHAR EWKT_YY_CHAR #define input ewkt_input #define ParseAlloc ewktParseAlloc #define ParseFree ewktParseFree #define ParseStackPeak ewktParseStackPeak #define Parse ewktParse #define yyStackEntry ewkt_yyStackEntry #define yyzerominor ewkt_yyzerominor #define yy_accept ewkt_yy_accept #define yy_action ewkt_yy_action #define yy_base ewkt_yy_base #define yy_buffer_stack ewkt_yy_buffer_stack #define yy_buffer_stack_max ewkt_yy_buffer_stack_max #define yy_buffer_stack_top ewkt_yy_buffer_stack_top #define yy_c_buf_p ewkt_yy_c_buf_p #define yy_chk ewkt_yy_chk #define yy_def ewkt_yy_def #define yy_default ewkt_yy_default #define yy_destructor ewkt_yy_destructor #define yy_ec ewkt_yy_ec #define yy_fatal_error ewkt_yy_fatal_error #define yy_find_reduce_action ewkt_yy_find_reduce_action #define yy_find_shift_action ewkt_yy_find_shift_action #define yy_get_next_buffer ewkt_yy_get_next_buffer #define yy_get_previous_state ewkt_yy_get_previous_state #define yy_init ewkt_yy_init #define yy_init_globals ewkt_yy_init_globals #define yy_lookahead ewkt_yy_lookahead #define yy_meta ewkt_yy_meta #define yy_nxt ewkt_yy_nxt #define yy_parse_failed ewkt_yy_parse_failed #define yy_pop_parser_stack ewkt_yy_pop_parser_stack #define yy_reduce ewkt_yy_reduce #define yy_reduce_ofst ewkt_yy_reduce_ofst #define yy_shift ewkt_yy_shift #define yy_shift_ofst ewkt_yy_shift_ofst #define yy_start ewkt_yy_start #define yy_state_type ewkt_yy_state_type #define yy_syntax_error ewkt_yy_syntax_error #define yy_trans_info ewkt_yy_trans_info #define yy_try_NUL_trans ewkt_yy_try_NUL_trans #define yyParser ewkt_yyParser #define yyStackEntry ewkt_yyStackEntry #define yyStackOverflow ewkt_yyStackOverflow #define yyRuleInfo ewkt_yyRuleInfo #define yyunput ewkt_yyunput #define yyzerominor ewkt_yyzerominor #define yyTraceFILE ewkt_yyTraceFILE #define yyTracePrompt ewkt_yyTracePrompt #define yyTokenName ewkt_yyTokenName #define yyRuleName ewkt_yyRuleName #define ParseTrace ewkt_ParseTrace #define yylex ewky_yylex #define YY_DECL int yylex (yyscan_t yyscanner) /* including LEMON generated header */ #include "Ewkt.h" typedef union { double dval; struct symtab *symp; } ewkt_yystype; #define YYSTYPE ewkt_yystype struct ewkt_dyn_block { /* a struct taking trace of dynamic allocations */ int type[EWKT_DYN_BLOCK]; void *ptr[EWKT_DYN_BLOCK]; int index; struct ewkt_dyn_block *next; }; struct ewkt_data { /* a struct used to make the lexer-parser reentrant and thread-safe */ int ewkt_parse_error; int ewkt_line; int ewkt_col; struct ewkt_dyn_block *ewkt_first_dyn_block; struct ewkt_dyn_block *ewkt_last_dyn_block; gaiaGeomCollPtr result; YYSTYPE EwktLval; }; static struct ewkt_dyn_block * ewktCreateDynBlock (void) { /* allocating a new block to trace dynamic allocations */ int i; struct ewkt_dyn_block *p = malloc (sizeof (struct ewkt_dyn_block)); for (i = 0; i < EWKT_DYN_BLOCK; i++) { /* initializing map entries */ p->type[i] = EWKT_DYN_NONE; p->ptr[i] = NULL; } p->index = 0; p->next = NULL; return p; } static void ewktMapDynAlloc (struct ewkt_data *p_data, int type, void *ptr) { /* appending a dynamic allocation into the map */ struct ewkt_dyn_block *p; if (p_data->ewkt_first_dyn_block == NULL) { /* inserting the first block of the map */ p = ewktCreateDynBlock (); p_data->ewkt_first_dyn_block = p; p_data->ewkt_last_dyn_block = p; } if (p_data->ewkt_last_dyn_block->index >= EWKT_DYN_BLOCK) { /* adding a further block to the map */ p = ewktCreateDynBlock (); p_data->ewkt_last_dyn_block->next = p; p_data->ewkt_last_dyn_block = p; } p_data->ewkt_last_dyn_block->type[p_data->ewkt_last_dyn_block->index] = type; p_data->ewkt_last_dyn_block->ptr[p_data->ewkt_last_dyn_block->index] = ptr; p_data->ewkt_last_dyn_block->index++; } static void ewktMapDynClean (struct ewkt_data *p_data, void *ptr) { /* deleting a dynamic allocation from the map */ int i; struct ewkt_dyn_block *p = p_data->ewkt_first_dyn_block; while (p) { for (i = 0; i < EWKT_DYN_BLOCK; i++) { switch (p->type[i]) { case EWKT_DYN_POINT: case EWKT_DYN_LINESTRING: case EWKT_DYN_POLYGON: case EWKT_DYN_RING: case EWKT_DYN_GEOMETRY: if (p->ptr[i] == ptr) { p->type[i] = EWKT_DYN_NONE; return; } break; }; } p = p->next; } } static void ewktCleanMapDynAlloc (struct ewkt_data *p_data, int clean_all) { /* cleaning the dynamic allocations map */ int i; struct ewkt_dyn_block *pn; struct ewkt_dyn_block *p = p_data->ewkt_first_dyn_block; while (p) { if (clean_all) { for (i = 0; i < EWKT_DYN_BLOCK; i++) { /* deleting Geometry objects */ switch (p->type[i]) { case EWKT_DYN_POINT: gaiaFreePoint ((gaiaPointPtr) (p->ptr[i])); break; case EWKT_DYN_LINESTRING: gaiaFreeLinestring ((gaiaLinestringPtr) (p->ptr[i])); break; case EWKT_DYN_POLYGON: gaiaFreePolygon ((gaiaPolygonPtr) (p->ptr[i])); break; case EWKT_DYN_RING: gaiaFreeRing ((gaiaRingPtr) (p->ptr[i])); break; case EWKT_DYN_GEOMETRY: gaiaFreeGeomColl ((gaiaGeomCollPtr) (p->ptr[i])); break; }; } } /* deleting the map block */ pn = p->next; free (p); p = pn; } } static int ewktCheckValidity (gaiaGeomCollPtr geom) { /* checks if this one is a degenerated geometry */ gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; gaiaRingPtr rng; int ib; int entities = 0; pt = geom->FirstPoint; while (pt) { /* checking points */ entities++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { /* checking linestrings */ if (ln->Points < 2) return 0; entities++; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { /* checking polygons */ rng = pg->Exterior; if (rng->Points < 4) return 0; for (ib = 0; ib < pg->NumInteriors; ib++) { rng = pg->Interiors + ib; if (rng->Points < 4) return 0; } entities++; pg = pg->Next; } if (!entities) return 0; return 1; } static gaiaGeomCollPtr gaiaEwktGeometryFromPoint (struct ewkt_data *p_data, gaiaPointPtr point) { /* builds a GEOMETRY containing a POINT */ gaiaGeomCollPtr geom = NULL; geom = gaiaAllocGeomColl (); ewktMapDynAlloc (p_data, EWKT_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_POINT; gaiaAddPointToGeomColl (geom, point->X, point->Y); ewktMapDynClean (p_data, point); gaiaFreePoint (point); return geom; } static gaiaGeomCollPtr gaiaEwktGeometryFromPointZ (struct ewkt_data *p_data, gaiaPointPtr point) { /* builds a GEOMETRY containing a POINTZ */ gaiaGeomCollPtr geom = NULL; geom = gaiaAllocGeomCollXYZ (); ewktMapDynAlloc (p_data, EWKT_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_POINTZ; gaiaAddPointToGeomCollXYZ (geom, point->X, point->Y, point->Z); ewktMapDynClean (p_data, point); gaiaFreePoint (point); return geom; } static gaiaGeomCollPtr gaiaEwktGeometryFromPointM (struct ewkt_data *p_data, gaiaPointPtr point) { /* builds a GEOMETRY containing a POINTM */ gaiaGeomCollPtr geom = NULL; geom = gaiaAllocGeomCollXYM (); ewktMapDynAlloc (p_data, EWKT_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_POINTM; gaiaAddPointToGeomCollXYM (geom, point->X, point->Y, point->M); ewktMapDynClean (p_data, point); gaiaFreePoint (point); return geom; } static gaiaGeomCollPtr gaiaEwktGeometryFromPointZM (struct ewkt_data *p_data, gaiaPointPtr point) { /* builds a GEOMETRY containing a POINTZM */ gaiaGeomCollPtr geom = NULL; geom = gaiaAllocGeomCollXYZM (); ewktMapDynAlloc (p_data, EWKT_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_POINTZM; gaiaAddPointToGeomCollXYZM (geom, point->X, point->Y, point->Z, point->M); ewktMapDynClean (p_data, point); gaiaFreePoint (point); return geom; } static gaiaGeomCollPtr gaiaEwktGeometryFromLinestring (struct ewkt_data *p_data, gaiaLinestringPtr line) { /* builds a GEOMETRY containing a LINESTRING */ gaiaGeomCollPtr geom = NULL; gaiaLinestringPtr line2; int iv; double x; double y; geom = gaiaAllocGeomColl (); ewktMapDynAlloc (p_data, EWKT_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_LINESTRING; line2 = gaiaAddLinestringToGeomColl (geom, line->Points); for (iv = 0; iv < line2->Points; iv++) { /* sets the POINTS for the exterior ring */ gaiaGetPoint (line->Coords, iv, &x, &y); gaiaSetPoint (line2->Coords, iv, x, y); } ewktMapDynClean (p_data, line); gaiaFreeLinestring (line); return geom; } static gaiaGeomCollPtr gaiaEwktGeometryFromLinestringZ (struct ewkt_data *p_data, gaiaLinestringPtr line) { /* builds a GEOMETRY containing a LINESTRINGZ */ gaiaGeomCollPtr geom = NULL; gaiaLinestringPtr line2; int iv; double x; double y; double z; geom = gaiaAllocGeomCollXYZ (); ewktMapDynAlloc (p_data, EWKT_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_LINESTRING; line2 = gaiaAddLinestringToGeomColl (geom, line->Points); for (iv = 0; iv < line2->Points; iv++) { /* sets the POINTS for the exterior ring */ gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (line2->Coords, iv, x, y, z); } ewktMapDynClean (p_data, line); gaiaFreeLinestring (line); return geom; } static gaiaGeomCollPtr gaiaEwktGeometryFromLinestringM (struct ewkt_data *p_data, gaiaLinestringPtr line) { /* builds a GEOMETRY containing a LINESTRINGM */ gaiaGeomCollPtr geom = NULL; gaiaLinestringPtr line2; int iv; double x; double y; double m; geom = gaiaAllocGeomCollXYM (); ewktMapDynAlloc (p_data, EWKT_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_LINESTRING; line2 = gaiaAddLinestringToGeomColl (geom, line->Points); for (iv = 0; iv < line2->Points; iv++) { /* sets the POINTS for the exterior ring */ gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); gaiaSetPointXYM (line2->Coords, iv, x, y, m); } ewktMapDynClean (p_data, line); gaiaFreeLinestring (line); return geom; } static gaiaGeomCollPtr gaiaEwktGeometryFromLinestringZM (struct ewkt_data *p_data, gaiaLinestringPtr line) { /* builds a GEOMETRY containing a LINESTRINGZM */ gaiaGeomCollPtr geom = NULL; gaiaLinestringPtr line2; int iv; double x; double y; double z; double m; geom = gaiaAllocGeomCollXYZM (); ewktMapDynAlloc (p_data, EWKT_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_LINESTRING; line2 = gaiaAddLinestringToGeomColl (geom, line->Points); for (iv = 0; iv < line2->Points; iv++) { /* sets the POINTS for the exterior ring */ gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (line2->Coords, iv, x, y, z, m); } ewktMapDynClean (p_data, line); gaiaFreeLinestring (line); return geom; } static gaiaPointPtr ewkt_point_xy (struct ewkt_data *p_data, double *x, double *y) { gaiaPointPtr pt = gaiaAllocPoint (*x, *y); ewktMapDynAlloc (p_data, EWKT_DYN_POINT, pt); return pt; } /* * Creates a 3D (xyz) point in SpatiaLite * x, y, and z are pointers to doubles which represent the x, y, and z coordinates of the point to be created. * Returns a gaiaPointPtr representing the created point. * * Creates a 3D (xyz) point. This is a parser helper function which is called when 3D coordinates are encountered. * Parameters x, y, and z are pointers to doubles which represent the x, y, and z coordinates of the point to be created. * Returns a gaiaPointPtr pointing to the 3D created point. */ static gaiaPointPtr ewkt_point_xyz (struct ewkt_data *p_data, double *x, double *y, double *z) { gaiaPointPtr pt = gaiaAllocPointXYZ (*x, *y, *z); ewktMapDynAlloc (p_data, EWKT_DYN_POINT, pt); return pt; } /* * Creates a 2D (xy) point with an m value which is a part of the linear reference system. This is a parser helper * function which is called when 2D *coordinates with an m value are encountered. * Parameters x and y are pointers to doubles which represent the x and y coordinates of the point to be created. * Parameter m is a pointer to a double which represents the part of the linear reference system. * Returns a gaiaPointPtr pointing to the created 2D point with an m value. */ static gaiaPointPtr ewkt_point_xym (struct ewkt_data *p_data, double *x, double *y, double *m) { gaiaPointPtr pt = gaiaAllocPointXYM (*x, *y, *m); ewktMapDynAlloc (p_data, EWKT_DYN_POINT, pt); return pt; } /* * Creates a 4D (xyz) point with an m value which is a part of the linear reference system. This is a parser helper * function which is called when *4Dcoordinates with an m value are encountered * Parameters x, y, and z are pointers to doubles which represent the x, y, and z coordinates of the point to be created. * Parameter m is a pointer to a double which represents the part of the linear reference system. * Returns a gaiaPointPtr pointing the created 4D point with an m value. */ gaiaPointPtr ewkt_point_xyzm (struct ewkt_data * p_data, double *x, double *y, double *z, double *m) { gaiaPointPtr pt = gaiaAllocPointXYZM (*x, *y, *z, *m); ewktMapDynAlloc (p_data, EWKT_DYN_POINT, pt); return pt; } /* * Builds a geometry collection from a point. The geometry collection should contain only one element ? the point. * The correct geometry type must be *decided based on the point type. The parser should call this function when the * ?POINT? WKT expression is encountered. * Parameter point is a pointer to a 2D, 3D, 2D with an m value, or 4D with an m value point. * Returns a geometry collection containing the point. The geometry must have FirstPoint and LastPoint pointing to the * same place as point. *DimensionModel must be the same as the model of the point and DimensionType must be GAIA_TYPE_POINT. */ static gaiaGeomCollPtr ewkt_buildGeomFromPoint (struct ewkt_data *p_data, gaiaPointPtr point) { switch (point->DimensionModel) { case GAIA_XY: return gaiaEwktGeometryFromPoint (p_data, point); case GAIA_XY_Z: return gaiaEwktGeometryFromPointZ (p_data, point); case GAIA_XY_M: return gaiaEwktGeometryFromPointM (p_data, point); case GAIA_XY_Z_M: return gaiaEwktGeometryFromPointZM (p_data, point); } return NULL; } /* * Creates a 2D (xy) linestring from a list of 2D points. * * Parameter first is a gaiaPointPtr to the first point in a linked list of points which define the linestring. * All of the points in the list must be 2D (xy) points. There must be at least 2 points in the list. * * Returns a pointer to linestring containing all of the points in the list. */ static gaiaLinestringPtr ewkt_linestring_xy (struct ewkt_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; int points = 0; int i = 0; gaiaLinestringPtr linestring; while (p != NULL) { p = p->Next; points++; } linestring = gaiaAllocLinestring (points); ewktMapDynAlloc (p_data, EWKT_DYN_LINESTRING, linestring); p = first; while (p != NULL) { gaiaSetPoint (linestring->Coords, i, p->X, p->Y); p_n = p->Next; ewktMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; i++; } return linestring; } /* * Creates a 3D (xyz) linestring from a list of 3D points. * * Parameter first is a gaiaPointPtr to the first point in a linked list of points which define the linestring. * All of the points in the list must be 3D (xyz) points. There must be at least 2 points in the list. * * Returns a pointer to linestring containing all of the points in the list. */ static gaiaLinestringPtr ewkt_linestring_xyz (struct ewkt_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; int points = 0; int i = 0; gaiaLinestringPtr linestring; while (p != NULL) { p = p->Next; points++; } linestring = gaiaAllocLinestringXYZ (points); ewktMapDynAlloc (p_data, EWKT_DYN_LINESTRING, linestring); p = first; while (p != NULL) { gaiaSetPointXYZ (linestring->Coords, i, p->X, p->Y, p->Z); p_n = p->Next; ewktMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; i++; } return linestring; } /* * Creates a 2D (xy) with m value linestring from a list of 2D with m value points. * * Parameter first is a gaiaPointPtr to the first point in a linked list of points which define the linestring. * All of the points in the list must be 2D (xy) with m value points. There must be at least 2 points in the list. * * Returns a pointer to linestring containing all of the points in the list. */ static gaiaLinestringPtr ewkt_linestring_xym (struct ewkt_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; int points = 0; int i = 0; gaiaLinestringPtr linestring; while (p != NULL) { p = p->Next; points++; } linestring = gaiaAllocLinestringXYM (points); ewktMapDynAlloc (p_data, EWKT_DYN_LINESTRING, linestring); p = first; while (p != NULL) { gaiaSetPointXYM (linestring->Coords, i, p->X, p->Y, p->M); p_n = p->Next; ewktMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; i++; } return linestring; } /* * Creates a 4D (xyz) with m value linestring from a list of 4D with m value points. * * Parameter first is a gaiaPointPtr to the first point in a linked list of points which define the linestring. * All of the points in the list must be 4D (xyz) with m value points. There must be at least 2 points in the list. * * Returns a pointer to linestring containing all of the points in the list. */ static gaiaLinestringPtr ewkt_linestring_xyzm (struct ewkt_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; int points = 0; int i = 0; gaiaLinestringPtr linestring; while (p != NULL) { p = p->Next; points++; } linestring = gaiaAllocLinestringXYZM (points); ewktMapDynAlloc (p_data, EWKT_DYN_LINESTRING, linestring); p = first; while (p != NULL) { gaiaSetPointXYZM (linestring->Coords, i, p->X, p->Y, p->Z, p->M); p_n = p->Next; ewktMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; i++; } return linestring; } /* * Builds a geometry collection from a linestring. */ static gaiaGeomCollPtr ewkt_buildGeomFromLinestring (struct ewkt_data *p_data, gaiaLinestringPtr line) { switch (line->DimensionModel) { case GAIA_XY: return gaiaEwktGeometryFromLinestring (p_data, line); case GAIA_XY_Z: return gaiaEwktGeometryFromLinestringZ (p_data, line); case GAIA_XY_M: return gaiaEwktGeometryFromLinestringM (p_data, line); case GAIA_XY_Z_M: return gaiaEwktGeometryFromLinestringZM (p_data, line); } return NULL; } /* * Helper function that determines the number of points in the linked list. */ static int ewkt_count_points (gaiaPointPtr first) { /* Counts the number of points in the ring. */ gaiaPointPtr p = first; int numpoints = 0; while (p != NULL) { numpoints++; p = p->Next; } return numpoints; } /* * Creates a 2D (xy) ring in SpatiaLite * * first is a gaiaPointPtr to the first point in a linked list of points which define the polygon. * All of the points given to the function are 2D (xy) points. There will be at least 4 points in the list. * * Returns the ring defined by the points given to the function. */ static gaiaRingPtr ewkt_ring_xy (struct ewkt_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; gaiaRingPtr ring = NULL; int numpoints; int index; /* If no pointers are given, return. */ if (first == NULL) return NULL; /* Counts the number of points in the ring. */ numpoints = ewkt_count_points (first); if (numpoints < 4) return NULL; /* Creates and allocates a ring structure. */ ring = gaiaAllocRing (numpoints); if (ring == NULL) return NULL; ewktMapDynAlloc (p_data, EWKT_DYN_RING, ring); /* Adds every point into the ring structure. */ p = first; for (index = 0; index < numpoints; index++) { gaiaSetPoint (ring->Coords, index, p->X, p->Y); p_n = p->Next; ewktMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; } return ring; } /* * Creates a 3D (xyz) ring in SpatiaLite * * first is a gaiaPointPtr to the first point in a linked list of points which define the polygon. * All of the points given to the function are 3D (xyz) points. There will be at least 4 points in the list. * * Returns the ring defined by the points given to the function. */ static gaiaRingPtr ewkt_ring_xyz (struct ewkt_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; gaiaRingPtr ring = NULL; int numpoints; int index; /* If no pointers are given, return. */ if (first == NULL) return NULL; /* Counts the number of points in the ring. */ numpoints = ewkt_count_points (first); if (numpoints < 4) return NULL; /* Creates and allocates a ring structure. */ ring = gaiaAllocRingXYZ (numpoints); if (ring == NULL) return NULL; ewktMapDynAlloc (p_data, EWKT_DYN_RING, ring); /* Adds every point into the ring structure. */ p = first; for (index = 0; index < numpoints; index++) { gaiaSetPointXYZ (ring->Coords, index, p->X, p->Y, p->Z); p_n = p->Next; ewktMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; } return ring; } /* * Creates a 2D (xym) ring in SpatiaLite * * first is a gaiaPointPtr to the first point in a linked list of points which define the polygon. * All of the points given to the function are 2D (xym) points. There will be at least 4 points in the list. * * Returns the ring defined by the points given to the function. */ static gaiaRingPtr ewkt_ring_xym (struct ewkt_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; gaiaRingPtr ring = NULL; int numpoints; int index; /* If no pointers are given, return. */ if (first == NULL) return NULL; /* Counts the number of points in the ring. */ numpoints = ewkt_count_points (first); if (numpoints < 4) return NULL; /* Creates and allocates a ring structure. */ ring = gaiaAllocRingXYM (numpoints); if (ring == NULL) return NULL; ewktMapDynAlloc (p_data, EWKT_DYN_RING, ring); /* Adds every point into the ring structure. */ p = first; for (index = 0; index < numpoints; index++) { gaiaSetPointXYM (ring->Coords, index, p->X, p->Y, p->M); p_n = p->Next; ewktMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; } return ring; } /* * Creates a 3D (xyzm) ring in SpatiaLite * * first is a gaiaPointPtr to the first point in a linked list of points which define the polygon. * All of the points given to the function are 3D (xyzm) points. There will be at least 4 points in the list. * * Returns the ring defined by the points given to the function. */ static gaiaRingPtr ewkt_ring_xyzm (struct ewkt_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; gaiaRingPtr ring = NULL; int numpoints; int index; /* If no pointers are given, return. */ if (first == NULL) return NULL; /* Counts the number of points in the ring. */ numpoints = ewkt_count_points (first); if (numpoints < 4) return NULL; /* Creates and allocates a ring structure. */ ring = gaiaAllocRingXYZM (numpoints); if (ring == NULL) return NULL; ewktMapDynAlloc (p_data, EWKT_DYN_RING, ring); /* Adds every point into the ring structure. */ p = first; for (index = 0; index < numpoints; index++) { gaiaSetPointXYZM (ring->Coords, index, p->X, p->Y, p->Z, p->M); p_n = p->Next; ewktMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; } return ring; } /* * Helper function that will create any type of polygon (xy, xym, xyz, xyzm) in SpatiaLite. * * first is a gaiaRingPtr to the first ring in a linked list of rings which define the polygon. * The first ring in the linked list is the external ring while the rest (if any) are internal rings. * All of the rings given to the function are of the same type. There will be at least 1 ring in the list. * * Returns the polygon defined by the rings given to the function. */ static gaiaPolygonPtr ewkt_polygon_any_type (struct ewkt_data *p_data, gaiaRingPtr first) { gaiaRingPtr p; gaiaRingPtr p_n; gaiaPolygonPtr polygon; /* If no pointers are given, return. */ if (first == NULL) return NULL; /* Creates and allocates a polygon structure with the exterior ring. */ polygon = gaiaCreatePolygon (first); if (polygon == NULL) return NULL; ewktMapDynAlloc (p_data, EWKT_DYN_POLYGON, polygon); /* Adds all interior rings into the polygon structure. */ p = first; while (p != NULL) { p_n = p->Next; ewktMapDynClean (p_data, p); if (p == first) gaiaFreeRing (p); else gaiaAddRingToPolyg (polygon, p); p = p_n; } return polygon; } /* * Creates a 2D (xy) polygon in SpatiaLite * * first is a gaiaRingPtr to the first ring in a linked list of rings which define the polygon. * The first ring in the linked list is the external ring while the rest (if any) are internal rings. * All of the rings given to the function are 2D (xy) rings. There will be at least 1 ring in the list. * * Returns the polygon defined by the rings given to the function. */ static gaiaPolygonPtr ewkt_polygon_xy (struct ewkt_data *p_data, gaiaRingPtr first) { return ewkt_polygon_any_type (p_data, first); } /* * Creates a 3D (xyz) polygon in SpatiaLite * * first is a gaiaRingPtr to the first ring in a linked list of rings which define the polygon. * The first ring in the linked list is the external ring while the rest (if any) are internal rings. * All of the rings given to the function are 3D (xyz) rings. There will be at least 1 ring in the list. * * Returns the polygon defined by the rings given to the function. */ static gaiaPolygonPtr ewkt_polygon_xyz (struct ewkt_data *p_data, gaiaRingPtr first) { return ewkt_polygon_any_type (p_data, first); } /* * Creates a 2D (xym) polygon in SpatiaLite * * first is a gaiaRingPtr to the first ring in a linked list of rings which define the polygon. * The first ring in the linked list is the external ring while the rest (if any) are internal rings. * All of the rings given to the function are 2D (xym) rings. There will be at least 1 ring in the list. * * Returns the polygon defined by the rings given to the function. */ static gaiaPolygonPtr ewkt_polygon_xym (struct ewkt_data *p_data, gaiaRingPtr first) { return ewkt_polygon_any_type (p_data, first); } /* * Creates a 3D (xyzm) polygon in SpatiaLite * * first is a gaiaRingPtr to the first ring in a linked list of rings which define the polygon. * The first ring in the linked list is the external ring while the rest (if any) are internal rings. * All of the rings given to the function are 3D (xyzm) rings. There will be at least 1 ring in the list. * * Returns the polygon defined by the rings given to the function. */ static gaiaPolygonPtr ewkt_polygon_xyzm (struct ewkt_data *p_data, gaiaRingPtr first) { return ewkt_polygon_any_type (p_data, first); } /* * Builds a geometry collection from a polygon. * NOTE: This function may already be implemented in the SpatiaLite code base. If it is, make sure that we * can use it (ie. it doesn't use any other variables or anything else set by Sandro's parser). If you find * that we can use an existing function then ignore this one. */ static gaiaGeomCollPtr ewkt_buildGeomFromPolygon (struct ewkt_data *p_data, gaiaPolygonPtr polygon) { gaiaGeomCollPtr geom = NULL; /* If no pointers are given, return. */ if (polygon == NULL) { return NULL; } /* Creates and allocates a geometry collection containing a multipoint. */ switch (polygon->DimensionModel) { case GAIA_XY: geom = gaiaAllocGeomColl (); break; case GAIA_XY_Z: geom = gaiaAllocGeomCollXYZ (); break; case GAIA_XY_M: geom = gaiaAllocGeomCollXYM (); break; case GAIA_XY_Z_M: geom = gaiaAllocGeomCollXYZM (); break; } if (geom == NULL) { return NULL; } ewktMapDynAlloc (p_data, EWKT_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_POLYGON; /* Stores the location of the first and last polygons in the linked list. */ geom->FirstPolygon = polygon; while (polygon != NULL) { ewktMapDynClean (p_data, polygon); geom->LastPolygon = polygon; polygon = polygon->Next; } return geom; } /* * Creates a 2D (xy) multipoint object in SpatiaLite * * first is a gaiaPointPtr to the first point in a linked list of points. * All of the points given to the function are 2D (xy) points. There will be at least 1 point in the list. * * Returns a geometry collection containing the created multipoint object. */ static gaiaGeomCollPtr ewkt_multipoint_xy (struct ewkt_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; gaiaGeomCollPtr geom = NULL; /* If no pointers are given, return. */ if (first == NULL) return NULL; /* Creates and allocates a geometry collection containing a multipoint. */ geom = gaiaAllocGeomColl (); if (geom == NULL) return NULL; ewktMapDynAlloc (p_data, EWKT_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_MULTIPOINT; /* For every 2D (xy) point, add it to the geometry collection. */ while (p != NULL) { gaiaAddPointToGeomColl (geom, p->X, p->Y); p_n = p->Next; ewktMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; } return geom; } /* * Creates a 3D (xyz) multipoint object in SpatiaLite * * first is a gaiaPointPtr to the first point in a linked list of points. * All of the points given to the function are 3D (xyz) points. There will be at least 1 point in the list. * * Returns a geometry collection containing the created multipoint object. */ static gaiaGeomCollPtr ewkt_multipoint_xyz (struct ewkt_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; gaiaGeomCollPtr geom = NULL; /* If no pointers are given, return. */ if (first == NULL) return NULL; /* Creates and allocates a geometry collection containing a multipoint. */ geom = gaiaAllocGeomCollXYZ (); if (geom == NULL) return NULL; ewktMapDynAlloc (p_data, EWKT_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_MULTIPOINT; /* For every 3D (xyz) point, add it to the geometry collection. */ while (p != NULL) { gaiaAddPointToGeomCollXYZ (geom, p->X, p->Y, p->Z); p_n = p->Next; ewktMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; } return geom; } /* * Creates a 2D (xym) multipoint object in SpatiaLite * * first is a gaiaPointPtr to the first point in a linked list of points. * All of the points given to the function are 2D (xym) points. There will be at least 1 point in the list. * * Returns a geometry collection containing the created multipoint object. */ static gaiaGeomCollPtr ewkt_multipoint_xym (struct ewkt_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; gaiaGeomCollPtr geom = NULL; /* If no pointers are given, return. */ if (first == NULL) return NULL; /* Creates and allocates a geometry collection containing a multipoint. */ geom = gaiaAllocGeomCollXYM (); if (geom == NULL) return NULL; ewktMapDynAlloc (p_data, EWKT_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_MULTIPOINT; /* For every 2D (xym) point, add it to the geometry collection. */ while (p != NULL) { gaiaAddPointToGeomCollXYM (geom, p->X, p->Y, p->M); p_n = p->Next; ewktMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; } return geom; } /* * Creates a 3D (xyzm) multipoint object in SpatiaLite * * first is a gaiaPointPtr to the first point in a linked list of points which define the linestring. * All of the points given to the function are 3D (xyzm) points. There will be at least 1 point in the list. * * Returns a geometry collection containing the created multipoint object. */ static gaiaGeomCollPtr ewkt_multipoint_xyzm (struct ewkt_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; gaiaGeomCollPtr geom = NULL; /* If no pointers are given, return. */ if (first == NULL) return NULL; /* Creates and allocates a geometry collection containing a multipoint. */ geom = gaiaAllocGeomCollXYZM (); if (geom == NULL) return NULL; ewktMapDynAlloc (p_data, EWKT_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_MULTIPOINT; /* For every 3D (xyzm) point, add it to the geometry collection. */ while (p != NULL) { gaiaAddPointToGeomCollXYZM (geom, p->X, p->Y, p->Z, p->M); p_n = p->Next; ewktMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; } return geom; } /* * Creates a geometry collection containing 2D (xy) linestrings. * Parameter first is a gaiaLinestringPtr to the first linestring in a linked list of linestrings which should be added to the * collection. All of the *linestrings in the list must be 2D (xy) linestrings. There must be at least 1 linestring in the list. * Returns a pointer to the created geometry collection of 2D linestrings. The geometry must have FirstLinestring pointing to the * first linestring in the list pointed by first and LastLinestring pointing to the last element of the same list. DimensionModel * must be GAIA_XY and DimensionType must be *GAIA_TYPE_LINESTRING. */ static gaiaGeomCollPtr ewkt_multilinestring_xy (struct ewkt_data *p_data, gaiaLinestringPtr first) { gaiaLinestringPtr p = first; gaiaLinestringPtr p_n; gaiaLinestringPtr new_line; gaiaGeomCollPtr a = gaiaAllocGeomColl (); ewktMapDynAlloc (p_data, EWKT_DYN_GEOMETRY, a); a->DeclaredType = GAIA_MULTILINESTRING; a->DimensionModel = GAIA_XY; while (p) { new_line = gaiaAddLinestringToGeomColl (a, p->Points); gaiaCopyLinestringCoords (new_line, p); p_n = p->Next; ewktMapDynClean (p_data, p); gaiaFreeLinestring (p); p = p_n; } return a; } /* * Returns a geometry collection containing the created multilinestring object (?). * Creates a geometry collection containing 3D (xyz) linestrings. * Parameter first is a gaiaLinestringPtr to the first linestring in a linked list of linestrings which should be added to the * collection. All of the *linestrings in the list must be 3D (xyz) linestrings. There must be at least 1 linestring in the list. * Returns a pointer to the created geometry collection of 3D linestrings. The geometry must have FirstLinestring pointing to the * first linestring in the *list pointed by first and LastLinestring pointing to the last element of the same list. DimensionModel * must be GAIA_XYZ and DimensionType must be *GAIA_TYPE_LINESTRING. */ static gaiaGeomCollPtr ewkt_multilinestring_xyz (struct ewkt_data *p_data, gaiaLinestringPtr first) { gaiaLinestringPtr p = first; gaiaLinestringPtr p_n; gaiaLinestringPtr new_line; gaiaGeomCollPtr a = gaiaAllocGeomCollXYZ (); ewktMapDynAlloc (p_data, EWKT_DYN_GEOMETRY, a); a->DeclaredType = GAIA_MULTILINESTRING; a->DimensionModel = GAIA_XY_Z; while (p) { new_line = gaiaAddLinestringToGeomColl (a, p->Points); gaiaCopyLinestringCoords (new_line, p); p_n = p->Next; ewktMapDynClean (p_data, p); gaiaFreeLinestring (p); p = p_n; } return a; } /* * Creates a geometry collection containing 2D (xy) with m value linestrings. * Parameter first is a gaiaLinestringPtr to the first linestring in a linked list of linestrings which should be added to the * collection. All of the *linestrings in the list must be 2D (xy) with m value linestrings. There must be at least 1 linestring * in the list. * Returns a pointer to the created geometry collection of 2D with m value linestrings. The geometry must have FirstLinestring * pointing to the first *linestring in the list pointed by first and LastLinestring pointing to the last element of the same list. * DimensionModel must be GAIA_XYM and *DimensionType must be GAIA_TYPE_LINESTRING. */ static gaiaGeomCollPtr ewkt_multilinestring_xym (struct ewkt_data *p_data, gaiaLinestringPtr first) { gaiaLinestringPtr p = first; gaiaLinestringPtr p_n; gaiaLinestringPtr new_line; gaiaGeomCollPtr a = gaiaAllocGeomCollXYM (); ewktMapDynAlloc (p_data, EWKT_DYN_GEOMETRY, a); a->DeclaredType = GAIA_MULTILINESTRING; a->DimensionModel = GAIA_XY_M; while (p) { new_line = gaiaAddLinestringToGeomColl (a, p->Points); gaiaCopyLinestringCoords (new_line, p); p_n = p->Next; ewktMapDynClean (p_data, p); gaiaFreeLinestring (p); p = p_n; } return a; } /* * Creates a geometry collection containing 4D (xyz) with m value linestrings. * Parameter first is a gaiaLinestringPtr to the first linestring in a linked list of linestrings which should be added to the * collection. All of the *linestrings in the list must be 4D (xyz) with m value linestrings. There must be at least 1 linestring * in the list. * Returns a pointer to the created geometry collection of 4D with m value linestrings. The geometry must have FirstLinestring * pointing to the first *linestring in the list pointed by first and LastLinestring pointing to the last element of the same list. * DimensionModel must be GAIA_XYZM and *DimensionType must be GAIA_TYPE_LINESTRING. */ static gaiaGeomCollPtr ewkt_multilinestring_xyzm (struct ewkt_data *p_data, gaiaLinestringPtr first) { gaiaLinestringPtr p = first; gaiaLinestringPtr p_n; gaiaLinestringPtr new_line; gaiaGeomCollPtr a = gaiaAllocGeomCollXYZM (); ewktMapDynAlloc (p_data, EWKT_DYN_GEOMETRY, a); a->DeclaredType = GAIA_MULTILINESTRING; a->DimensionModel = GAIA_XY_Z_M; while (p) { new_line = gaiaAddLinestringToGeomColl (a, p->Points); gaiaCopyLinestringCoords (new_line, p); p_n = p->Next; ewktMapDynClean (p_data, p); gaiaFreeLinestring (p); p = p_n; } return a; } /* * Creates a geometry collection containing 2D (xy) polygons. * * Parameter first is a gaiaPolygonPtr to the first polygon in a linked list of polygons which should * be added to the collection. All of the polygons in the list must be 2D (xy) polygons. There must be * at least 1 polygon in the list. * * Returns a pointer to the created geometry collection of 2D polygons. The geometry must have * FirstPolygon pointing to the first polygon in the list pointed by first and LastPolygon pointing * to the last element of the same list. DimensionModel must be GAIA_XY and DimensionType must * be GAIA_TYPE_POLYGON. * */ static gaiaGeomCollPtr ewkt_multipolygon_xy (struct ewkt_data *p_data, gaiaPolygonPtr first) { gaiaPolygonPtr p = first; gaiaPolygonPtr p_n; int i = 0; gaiaPolygonPtr new_polyg; gaiaRingPtr i_ring; gaiaRingPtr o_ring; gaiaGeomCollPtr geom = gaiaAllocGeomColl (); ewktMapDynAlloc (p_data, EWKT_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_MULTIPOLYGON; while (p) { i_ring = p->Exterior; new_polyg = gaiaAddPolygonToGeomColl (geom, i_ring->Points, p->NumInteriors); o_ring = new_polyg->Exterior; gaiaCopyRingCoords (o_ring, i_ring); for (i = 0; i < new_polyg->NumInteriors; i++) { i_ring = p->Interiors + i; o_ring = gaiaAddInteriorRing (new_polyg, i, i_ring->Points); gaiaCopyRingCoords (o_ring, i_ring); } p_n = p->Next; ewktMapDynClean (p_data, p); gaiaFreePolygon (p); p = p_n; } return geom; } /* * Creates a geometry collection containing 3D (xyz) polygons. * * Parameter first is a gaiaPolygonPtr to the first polygon in a linked list of polygons which should be * added to the collection. All of the polygons in the list must be 3D (xyz) polygons. There must be at * least 1 polygon in the list. * * Returns a pointer to the created geometry collection of 3D polygons. The geometry must have * FirstPolygon pointing to the first polygon in the list pointed by first and LastPolygon pointing to * the last element of the same list. DimensionModel must be GAIA_XYZ and DimensionType must * be GAIA_TYPE_POLYGON. * */ static gaiaGeomCollPtr ewkt_multipolygon_xyz (struct ewkt_data *p_data, gaiaPolygonPtr first) { gaiaPolygonPtr p = first; gaiaPolygonPtr p_n; int i = 0; gaiaPolygonPtr new_polyg; gaiaRingPtr i_ring; gaiaRingPtr o_ring; gaiaGeomCollPtr geom = gaiaAllocGeomCollXYZ (); ewktMapDynAlloc (p_data, EWKT_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_MULTIPOLYGON; while (p) { i_ring = p->Exterior; new_polyg = gaiaAddPolygonToGeomColl (geom, i_ring->Points, p->NumInteriors); o_ring = new_polyg->Exterior; gaiaCopyRingCoords (o_ring, i_ring); for (i = 0; i < new_polyg->NumInteriors; i++) { i_ring = p->Interiors + i; o_ring = gaiaAddInteriorRing (new_polyg, i, i_ring->Points); gaiaCopyRingCoords (o_ring, i_ring); } p_n = p->Next; ewktMapDynClean (p_data, p); gaiaFreePolygon (p); p = p_n; } return geom; } /* * Creates a geometry collection containing 2D (xy) with m value polygons. * * Parameter first is a gaiaPolygonPtr to the first polygon in a linked list of polygons which should * be added to the collection. All of the polygons in the list must be 2D (xy) with m value polygons. * There must be at least 1 polygon in the list. * * Returns a pointer to the created geometry collection of 2D with m value polygons. The geometry * must have FirstPolygon pointing to the first polygon in the list pointed by first and LastPolygon * pointing to the last element of the same list. DimensionModel must be GAIA_XYM and DimensionType * must be GAIA_TYPE_POLYGON. * */ static gaiaGeomCollPtr ewkt_multipolygon_xym (struct ewkt_data *p_data, gaiaPolygonPtr first) { gaiaPolygonPtr p = first; gaiaPolygonPtr p_n; int i = 0; gaiaPolygonPtr new_polyg; gaiaRingPtr i_ring; gaiaRingPtr o_ring; gaiaGeomCollPtr geom = gaiaAllocGeomCollXYM (); ewktMapDynAlloc (p_data, EWKT_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_MULTIPOLYGON; while (p) { i_ring = p->Exterior; new_polyg = gaiaAddPolygonToGeomColl (geom, i_ring->Points, p->NumInteriors); o_ring = new_polyg->Exterior; gaiaCopyRingCoords (o_ring, i_ring); for (i = 0; i < new_polyg->NumInteriors; i++) { i_ring = p->Interiors + i; o_ring = gaiaAddInteriorRing (new_polyg, i, i_ring->Points); gaiaCopyRingCoords (o_ring, i_ring); } p_n = p->Next; ewktMapDynClean (p_data, p); gaiaFreePolygon (p); p = p_n; } return geom; } /* * Creates a geometry collection containing 4D (xyz) with m value polygons. * * Parameter first is a gaiaPolygonPtr to the first polygon in a linked list of polygons which should be * added to the collection. All of the polygons in the list must be 4D (xyz) with m value polygons. * There must be at least 1 polygon in the list. * * Returns a pointer to the created geometry collection of 4D with m value polygons. The geometry must * have FirstPolygon pointing to the first polygon in the list pointed by first and LastPolygon pointing // * to the last element of the same list. DimensionModel must be GAIA_XYZM and DimensionType must * be GAIA_TYPE_POLYGON. * */ static gaiaGeomCollPtr ewkt_multipolygon_xyzm (struct ewkt_data *p_data, gaiaPolygonPtr first) { gaiaPolygonPtr p = first; gaiaPolygonPtr p_n; int i = 0; gaiaPolygonPtr new_polyg; gaiaRingPtr i_ring; gaiaRingPtr o_ring; gaiaGeomCollPtr geom = gaiaAllocGeomCollXYZM (); ewktMapDynAlloc (p_data, EWKT_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_MULTIPOLYGON; while (p) { i_ring = p->Exterior; new_polyg = gaiaAddPolygonToGeomColl (geom, i_ring->Points, p->NumInteriors); o_ring = new_polyg->Exterior; gaiaCopyRingCoords (o_ring, i_ring); for (i = 0; i < new_polyg->NumInteriors; i++) { i_ring = p->Interiors + i; o_ring = gaiaAddInteriorRing (new_polyg, i, i_ring->Points); gaiaCopyRingCoords (o_ring, i_ring); } p_n = p->Next; ewktMapDynClean (p_data, p); gaiaFreePolygon (p); p = p_n; } return geom; } static void ewkt_geomColl_common (struct ewkt_data *p_data, gaiaGeomCollPtr org, gaiaGeomCollPtr dst) { /* / helper function: xfers entities between the Origin and Destination / Sandro Furieri: 2010 October 12 */ gaiaGeomCollPtr p = org; gaiaGeomCollPtr p_n; gaiaPointPtr pt; gaiaPointPtr pt_n; gaiaLinestringPtr ln; gaiaLinestringPtr ln_n; gaiaPolygonPtr pg; gaiaPolygonPtr pg_n; while (p) { pt = p->FirstPoint; while (pt) { pt_n = pt->Next; pt->Next = NULL; if (dst->FirstPoint == NULL) dst->FirstPoint = pt; if (dst->LastPoint != NULL) dst->LastPoint->Next = pt; dst->LastPoint = pt; pt = pt_n; } ln = p->FirstLinestring; while (ln) { ln_n = ln->Next; ln->Next = NULL; if (dst->FirstLinestring == NULL) dst->FirstLinestring = ln; if (dst->LastLinestring != NULL) dst->LastLinestring->Next = ln; dst->LastLinestring = ln; ln = ln_n; } pg = p->FirstPolygon; while (pg) { pg_n = pg->Next; pg->Next = NULL; if (dst->FirstPolygon == NULL) dst->FirstPolygon = pg; if (dst->LastPolygon != NULL) dst->LastPolygon->Next = pg; dst->LastPolygon = pg; pg = pg_n; } p_n = p->Next; p->FirstPoint = NULL; p->LastPoint = NULL; p->FirstLinestring = NULL; p->LastLinestring = NULL; p->FirstPolygon = NULL; p->LastPolygon = NULL; ewktMapDynClean (p_data, p); gaiaFreeGeomColl (p); p = p_n; } } /* Creates a 2D (xy) geometry collection in SpatiaLite * * first is the first geometry collection in a linked list of geometry collections. * Each geometry collection represents a single type of object (eg. one could be a POINT, * another could be a LINESTRING, another could be a MULTILINESTRING, etc.). * * The type of object represented by any geometry collection is stored in the declaredType * field of its struct. For example, if first->declaredType = GAIA_POINT, then first represents a point. * If first->declaredType = GAIA_MULTIPOINT, then first represents a multipoint. * * NOTE: geometry collections cannot contain other geometry collections (have to confirm this * with Sandro). * * The goal of this function is to take the information from all of the structs in the linked list and * return one geomColl struct containing all of that information. * * The integers used for 'declaredType' are defined in gaiageo.h. In this function, the only values * contained in 'declaredType' that will be encountered will be: * * GAIA_POINT, GAIA_LINESTRING, GAIA_POLYGON, * GAIA_MULTIPOINT, GAIA_MULTILINESTRING, GAIA_MULTIPOLYGON */ static gaiaGeomCollPtr ewkt_geomColl_xy (struct ewkt_data *p_data, gaiaGeomCollPtr first) { gaiaGeomCollPtr geom = gaiaAllocGeomColl (); if (geom == NULL) return NULL; ewktMapDynAlloc (p_data, EWKT_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_GEOMETRYCOLLECTION; geom->DimensionModel = GAIA_XY; ewkt_geomColl_common (p_data, first, geom); return geom; } /* * See geomColl_xy for description. * * The only difference between this function and geomColl_xy is that the 'declaredType' field of the structs * in the linked list for this function will only contain the following types: * * GAIA_POINTZ, GAIA_LINESTRINGZ, GAIA_POLYGONZ, * GAIA_MULTIPOINTZ, GAIA_MULTILINESTRINGZ, GAIA_MULTIPOLYGONZ */ static gaiaGeomCollPtr ewkt_geomColl_xyz (struct ewkt_data *p_data, gaiaGeomCollPtr first) { gaiaGeomCollPtr geom = gaiaAllocGeomColl (); if (geom == NULL) return NULL; ewktMapDynAlloc (p_data, EWKT_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_GEOMETRYCOLLECTION; geom->DimensionModel = GAIA_XY_Z; ewkt_geomColl_common (p_data, first, geom); return geom; } /* * See geomColl_xy for description. * * The only difference between this function and geomColl_xy is that the 'declaredType' field of the structs * in the linked list for this function will only contain the following types: * * GAIA_POINTM, GAIA_LINESTRINGM, GAIA_POLYGONM, * GAIA_MULTIPOINTM, GAIA_MULTILINESTRINGM, GAIA_MULTIPOLYGONM */ static gaiaGeomCollPtr ewkt_geomColl_xym (struct ewkt_data *p_data, gaiaGeomCollPtr first) { gaiaGeomCollPtr geom = gaiaAllocGeomColl (); if (geom == NULL) return NULL; ewktMapDynAlloc (p_data, EWKT_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_GEOMETRYCOLLECTION; geom->DimensionModel = GAIA_XY_M; ewkt_geomColl_common (p_data, first, geom); return geom; } /* * See geomColl_xy for description. * * The only difference between this function and geomColl_xy is that the 'declaredType' field of the structs * in the linked list for this function will only contain the following types: * * GAIA_POINTZM, GAIA_LINESTRINGZM, GAIA_POLYGONZM, * GAIA_MULTIPOINTZM, GAIA_MULTILINESTRINGZM, GAIA_MULTIPOLYGONZM */ static gaiaGeomCollPtr ewkt_geomColl_xyzm (struct ewkt_data *p_data, gaiaGeomCollPtr first) { gaiaGeomCollPtr geom = gaiaAllocGeomColl (); if (geom == NULL) return NULL; ewktMapDynAlloc (p_data, EWKT_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_GEOMETRYCOLLECTION; geom->DimensionModel = GAIA_XY_Z_M; ewkt_geomColl_common (p_data, first, geom); return geom; } /* including LEMON generated code */ #include "Ewkt.c" /* ** CAVEAT: there is an incompatibility between LEMON and FLEX ** this macro resolves the issue */ #undef yy_accept #define yy_accept yy_ewkt_flex_accept /* including FLEX generated code */ #include "lex.Ewkt.c" #line 3 "lex.Ewkt.c" #define YY_INT_ALIGNED short int /* ** This is a linked-list struct to store all the values for each token. ** All tokens will have a value of 0, except tokens denoted as NUM. ** NUM tokens are geometry coordinates and will contain the floating ** point number. */ typedef struct ewktFlexTokenStruct { double value; struct ewktFlexTokenStruct *Next; } ewktFlexToken; /* ** Function to clean up the linked-list of token values. */ static int ewkt_cleanup (ewktFlexToken * token) { ewktFlexToken *ptok; ewktFlexToken *ptok_n; if (token == NULL) return 0; ptok = token; while (ptok) { ptok_n = ptok->Next; free (ptok); ptok = ptok_n; } return 0; } static int findEwktSrid (const char *buffer, int *base_offset) { /* attempting to identify the EWKT SRID */ char dummy[1024]; char *out; const char *in = buffer; int end = -1; int i; *base_offset = 0; while (*in != '\0') { /* searching the first semi-colon [srid delimiter] */ if (*in == ';') { end = in - buffer; break; } in++; } if (end < 0) return -1; in = buffer; out = dummy; for (i = 0; i < end; i++) { /* normalizing whitespaces */ char c = *in; if (c == ' ' || c == '\t' || c == '\n') { in++; continue; } *out++ = *in++; } *out = '\0'; if (strncasecmp (dummy, "SRID=", 5) != 0) return -1; for (i = 5; i < (int) strlen (dummy); i++) { if (i == 5) { if (dummy[i] == '-' || dummy[i] == '+') continue; } if (dummy[i] >= '0' && dummy[i] <= '9') continue; return -1; } *base_offset = end + 1; return atoi (dummy + 5); } gaiaGeomCollPtr gaiaParseEWKT (const unsigned char *dirty_buffer) { void *pParser = ParseAlloc (malloc); /* Linked-list of token values */ ewktFlexToken *tokens = malloc (sizeof (ewktFlexToken)); /* Pointer to the head of the list */ ewktFlexToken *head = tokens; int yv; int srid; int base_offset; yyscan_t scanner; struct ewkt_data str_data; /* initializing the helper structs */ str_data.ewkt_line = 1; str_data.ewkt_col = 1; str_data.ewkt_parse_error = 0; str_data.ewkt_first_dyn_block = NULL; str_data.ewkt_last_dyn_block = NULL; str_data.result = NULL; /* initializing the scanner state */ Ewktlex_init_extra (&str_data, &scanner); tokens->Next = NULL; srid = findEwktSrid ((char *) dirty_buffer, &base_offset); Ewkt_scan_string ((char *) dirty_buffer + base_offset, scanner); /* / Keep tokenizing until we reach the end / yylex() will return the next matching Token for us. */ while ((yv = yylex (scanner)) != 0) { if (yv == -1) { str_data.ewkt_parse_error = 1; break; } tokens->Next = malloc (sizeof (ewktFlexToken)); tokens->Next->Next = NULL; tokens->Next->value = str_data.EwktLval.dval; /* Pass the token to the wkt parser created from lemon */ Parse (pParser, yv, &(tokens->Next->value), &str_data); tokens = tokens->Next; } /* This denotes the end of a line as well as the end of the parser */ Parse (pParser, EWKT_NEWLINE, 0, &str_data); ParseFree (pParser, free); Ewktlex_destroy (scanner); /* Assigning the token as the end to avoid seg faults while cleaning */ tokens->Next = NULL; ewkt_cleanup (head); if (str_data.ewkt_parse_error) { if (str_data.result) { /* if a Geometry-result has been produced, the stack is already cleaned */ gaiaFreeGeomColl (str_data.result); ewktCleanMapDynAlloc (&str_data, 0); } else { /* otherwise we are required to clean the stack */ ewktCleanMapDynAlloc (&str_data, 1); } return NULL; } ewktCleanMapDynAlloc (&str_data, 0); if (str_data.result == NULL) return NULL; if (!ewktCheckValidity (str_data.result)) { gaiaFreeGeomColl (str_data.result); return NULL; } gaiaMbrGeometry (str_data.result); str_data.result->Srid = srid; return str_data.result; } /* ** CAVEAT: we must now undefine any Lemon/Flex own macro */ #undef YYNOCODE #undef YYNSTATE #undef YYNRULE #undef YY_SHIFT_MAX #undef YY_SHIFT_USE_DFLT #undef YY_REDUCE_USE_DFLT #undef YY_REDUCE_MAX #undef YY_FLUSH_BUFFER #undef YY_DO_BEFORE_ACTION #undef YY_NUM_RULES #undef YY_END_OF_BUFFER #undef YY_END_FILE #undef YYACTIONTYPE #undef YY_SZ_ACTTAB #undef YY_NEW_FILE #undef BEGIN #undef YY_START #undef YY_CURRENT_BUFFER #undef YY_CURRENT_BUFFER_LVALUE #undef YY_STATE_BUF_SIZE #undef YY_DECL #undef YY_FATAL_ERROR #undef YYMINORTYPE #undef YY_CHAR #undef YYSTYPE #undef input #undef ParseAlloc #undef ParseFree #undef ParseStackPeak #undef Parse #undef yyalloc #undef yyfree #undef yyin #undef yyleng #undef yyless #undef yylex #undef yylineno #undef yyout #undef yyrealloc #undef yyrestart #undef yyStackEntry #undef yytext #undef yywrap #undef yyzerominor #undef yy_accept #undef yy_action #undef yy_base #undef yy_buffer_stack #undef yy_buffer_stack_max #undef yy_buffer_stack_top #undef yy_c_buf_p #undef yy_chk #undef yy_create_buffer #undef yy_def #undef yy_default #undef yy_delete_buffer #undef yy_destructor #undef yy_ec #undef yy_fatal_error #undef yy_find_reduce_action #undef yy_find_shift_action #undef yy_flex_debug #undef yy_flush_buffer #undef yy_get_next_buffer #undef yy_get_previous_state #undef yy_init #undef yy_init_buffer #undef yy_init_globals #undef yy_load_buffer #undef yy_load_buffer_state #undef yy_lookahead #undef yy_meta #undef yy_new_buffer #undef yy_nxt #undef yy_parse_failed #undef yy_pop_parser_stack #undef yy_reduce #undef yy_reduce_ofst #undef yy_set_bol #undef yy_set_interactive #undef yy_shift #undef yy_shift_ofst #undef yy_start #undef yy_state_type #undef yy_switch_to_buffer #undef yy_syntax_error #undef yy_trans_info #undef yy_try_NUL_trans #undef yyParser #undef yyStackEntry #undef yyStackOverflow #undef yyRuleInfo #undef yytext_ptr #undef yyunput #undef yyzerominor #undef ParseARG_SDECL #undef ParseARG_PDECL #undef ParseARG_FETCH #undef ParseARG_STORE #undef REJECT #undef yymore #undef YY_MORE_ADJ #undef YY_RESTORE_YY_MORE_OFFSET #undef YY_LESS_LINENO #undef yyTracePrompt #undef yyTraceFILE #undef yyTokenName #undef yyRuleName #undef ParseTrace #undef yylex #undef YY_DECL libspatialite-4.1.1/src/gaiageo/geoJSON.c0000664000175000017500000035236712163502133015075 00000000000000/* Driver template for the LEMON parser generator. ** The author disclaims copyright to this source code. */ /* First off, code is included that follows the "include" declaration ** in the input grammar file. */ #include /* Next is all token values, in a form suitable for use by makeheaders. ** This section will be null unless lemon is run with the -m switch. */ /* ** These constants (all generated automatically by the parser generator) ** specify the various kinds of tokens (terminals) that the parser ** understands. ** ** Each symbol here is a terminal symbol in the grammar. */ /* Make sure the INTERFACE macro is defined. */ #ifndef INTERFACE #define INTERFACE 1 #endif /* The next thing included is series of defines which control ** various aspects of the generated parser. ** YYCODETYPE is the data type used for storing terminal ** and nonterminal numbers. "unsigned char" is ** used if there are fewer than 250 terminals ** and nonterminals. "int" is used otherwise. ** YYNOCODE is a number of type YYCODETYPE which corresponds ** to no legal terminal or nonterminal number. This ** number is used to fill in empty slots of the hash ** table. ** YYFALLBACK If defined, this indicates that one or more tokens ** have fall-back values which should be used if the ** original value of the token will not parse. ** YYACTIONTYPE is the data type used for storing terminal ** and nonterminal numbers. "unsigned char" is ** used if there are fewer than 250 rules and ** states combined. "int" is used otherwise. ** ParseTOKENTYPE is the data type used for minor tokens given ** directly to the parser from the tokenizer. ** YYMINORTYPE is the data type used for all minor tokens. ** This is typically a union of many types, one of ** which is ParseTOKENTYPE. The entry in the union ** for base tokens is called "yy0". ** YYSTACKDEPTH is the maximum depth of the parser's stack. If ** zero the stack is dynamically sized using realloc() ** ParseARG_SDECL A static variable declaration for the %extra_argument ** ParseARG_PDECL A parameter declaration for the %extra_argument ** ParseARG_STORE Code to store %extra_argument into yypParser ** ParseARG_FETCH Code to extract %extra_argument from yypParser ** YYNSTATE the combined number of states. ** YYNRULE the number of rules in the grammar ** YYERRORSYMBOL is the code number of the error symbol. If not ** defined, then do no error processing. */ #define YYCODETYPE unsigned char #define YYNOCODE 84 #define YYACTIONTYPE unsigned short int #define ParseTOKENTYPE void * typedef union { int yyinit; ParseTOKENTYPE yy0; } YYMINORTYPE; #ifndef YYSTACKDEPTH #define YYSTACKDEPTH 1000000 #endif #define ParseARG_SDECL struct geoJson_data *p_data ; #define ParseARG_PDECL , struct geoJson_data *p_data #define ParseARG_FETCH struct geoJson_data *p_data = yypParser->p_data #define ParseARG_STORE yypParser->p_data = p_data #define YYNSTATE 679 #define YYNRULE 159 #define YY_NO_ACTION (YYNSTATE+YYNRULE+2) #define YY_ACCEPT_ACTION (YYNSTATE+YYNRULE+1) #define YY_ERROR_ACTION (YYNSTATE+YYNRULE) /* The yyzerominor constant is used to initialize instances of ** YYMINORTYPE objects to zero. */ static const YYMINORTYPE yyzerominor = { 0 }; /* Define the yytestcase() macro to be a no-op if is not already defined ** otherwise. ** ** Applications can choose to define yytestcase() in the %include section ** to a macro that can assist in verifying code coverage. For production ** code the yytestcase() macro should be turned off. But it is useful ** for testing. */ #ifndef yytestcase #define yytestcase(X) #endif /* Next are the tables used to determine what action to take based on the ** current state and lookahead token. These tables are used to implement ** functions that take a state number and lookahead value and return an ** action integer. ** ** Suppose the action integer is N. Then the action is determined as ** follows ** ** 0 <= N < YYNSTATE Shift N. That is, push the lookahead ** token onto the stack and goto state N. ** ** YYNSTATE <= N < YYNSTATE+YYNRULE Reduce by rule N-YYNSTATE. ** ** N == YYNSTATE+YYNRULE A syntax error has occurred. ** ** N == YYNSTATE+YYNRULE+1 The parser accepts its input. ** ** N == YYNSTATE+YYNRULE+2 No such action. Denotes unused ** slots in the yy_action[] table. ** ** The action table is constructed as a single large table named yy_action[]. ** Given state S and lookahead X, the action is computed as ** ** yy_action[ yy_shift_ofst[S] + X ] ** ** If the index value yy_shift_ofst[S]+X is out of range or if the value ** yy_lookahead[yy_shift_ofst[S]+X] is not equal to X or if yy_shift_ofst[S] ** is equal to YY_SHIFT_USE_DFLT, it means that the action is not in the table ** and that yy_default[S] should be used instead. ** ** The formula above is for computing the action when the lookahead is ** a terminal symbol. If the lookahead is a non-terminal (as occurs after ** a reduce action) then the yy_reduce_ofst[] array is used in place of ** the yy_shift_ofst[] array and YY_REDUCE_USE_DFLT is used in place of ** YY_SHIFT_USE_DFLT. ** ** The following are the tables generated in this section: ** ** yy_action[] A single table containing all actions. ** yy_lookahead[] A table containing the lookahead for each entry in ** yy_action. Used to detect hash collisions. ** yy_shift_ofst[] For each state, the offset into yy_action for ** shifting terminals. ** yy_reduce_ofst[] For each state, the offset into yy_action for ** shifting non-terminals after a reduce. ** yy_default[] Default action for each state. */ static const YYACTIONTYPE yy_action[] = { /* 0 */ 184, 533, 534, 535, 536, 537, 538, 539, 540, 541, /* 10 */ 542, 543, 544, 545, 546, 547, 548, 187, 139, 189, /* 20 */ 146, 147, 148, 190, 155, 156, 679, 104, 185, 112, /* 30 */ 242, 287, 334, 373, 412, 451, 139, 195, 146, 147, /* 40 */ 140, 201, 141, 142, 512, 149, 88, 150, 151, 157, /* 50 */ 148, 551, 155, 156, 496, 188, 243, 193, 254, 509, /* 60 */ 204, 262, 455, 288, 335, 301, 340, 471, 309, 348, /* 70 */ 507, 374, 413, 379, 418, 457, 387, 426, 482, 191, /* 80 */ 498, 480, 452, 567, 568, 839, 1, 169, 461, 465, /* 90 */ 93, 486, 490, 501, 504, 238, 240, 211, 199, 207, /* 100 */ 86, 201, 200, 208, 101, 244, 245, 215, 205, 217, /* 110 */ 553, 216, 223, 219, 227, 99, 201, 220, 228, 246, /* 120 */ 229, 19, 256, 250, 263, 275, 201, 260, 261, 95, /* 130 */ 30, 269, 31, 265, 266, 201, 273, 274, 277, 278, /* 140 */ 281, 285, 286, 42, 201, 292, 289, 290, 303, 297, /* 150 */ 307, 308, 201, 310, 322, 312, 313, 96, 316, 328, /* 160 */ 320, 321, 201, 201, 324, 325, 332, 333, 206, 120, /* 170 */ 209, 336, 337, 121, 342, 192, 349, 361, 201, 53, /* 180 */ 346, 347, 351, 352, 355, 64, 359, 360, 201, 363, /* 190 */ 364, 367, 375, 376, 2, 201, 381, 371, 372, 394, /* 200 */ 201, 122, 126, 201, 385, 386, 388, 400, 390, 391, /* 210 */ 414, 415, 398, 399, 402, 403, 406, 410, 411, 420, /* 220 */ 201, 130, 134, 201, 424, 425, 427, 439, 433, 429, /* 230 */ 430, 218, 201, 221, 437, 438, 441, 442, 445, 477, /* 240 */ 478, 202, 201, 449, 450, 473, 460, 468, 493, 201, /* 250 */ 485, 464, 489, 508, 520, 514, 510, 511, 524, 201, /* 260 */ 518, 519, 522, 523, 526, 203, 530, 531, 201, 264, /* 270 */ 276, 267, 279, 521, 311, 323, 314, 326, 350, 362, /* 280 */ 353, 365, 389, 401, 392, 404, 428, 440, 431, 443, /* 290 */ 556, 247, 248, 97, 99, 251, 249, 571, 102, 105, /* 300 */ 252, 253, 103, 292, 106, 573, 291, 295, 113, 293, /* 310 */ 294, 111, 123, 114, 110, 589, 125, 124, 296, 297, /* 320 */ 119, 127, 298, 299, 377, 840, 118, 620, 592, 128, /* 330 */ 246, 131, 300, 132, 338, 135, 339, 250, 136, 4, /* 340 */ 3, 5, 129, 532, 6, 158, 186, 133, 8, 552, /* 350 */ 104, 378, 159, 549, 460, 622, 137, 550, 112, 87, /* 360 */ 416, 194, 9, 10, 197, 464, 636, 196, 417, 468, /* 370 */ 485, 638, 198, 453, 554, 555, 489, 454, 89, 90, /* 380 */ 651, 652, 493, 91, 653, 11, 170, 469, 12, 470, /* 390 */ 557, 558, 210, 213, 479, 13, 662, 663, 664, 214, /* 400 */ 212, 14, 494, 559, 560, 678, 171, 495, 15, 561, /* 410 */ 562, 222, 225, 16, 17, 226, 224, 563, 230, 564, /* 420 */ 231, 236, 235, 233, 20, 232, 7, 234, 456, 239, /* 430 */ 840, 565, 241, 237, 566, 569, 160, 18, 840, 551, /* 440 */ 570, 92, 94, 98, 100, 572, 88, 255, 840, 21, /* 450 */ 258, 840, 574, 257, 259, 22, 575, 270, 576, 172, /* 460 */ 23, 268, 577, 578, 271, 25, 840, 272, 26, 24, /* 470 */ 579, 580, 173, 581, 280, 840, 582, 840, 283, 27, /* 480 */ 284, 28, 282, 583, 32, 29, 161, 584, 840, 840, /* 490 */ 585, 586, 107, 108, 109, 587, 304, 840, 840, 115, /* 500 */ 116, 117, 588, 590, 302, 33, 840, 591, 305, 840, /* 510 */ 306, 840, 593, 594, 174, 34, 36, 35, 840, 39, /* 520 */ 315, 476, 595, 596, 318, 37, 75, 840, 317, 840, /* 530 */ 319, 329, 597, 598, 599, 175, 40, 38, 327, 600, /* 540 */ 840, 330, 840, 331, 41, 601, 602, 603, 162, 840, /* 550 */ 840, 341, 604, 840, 840, 840, 605, 606, 43, 344, /* 560 */ 343, 840, 44, 356, 345, 45, 840, 607, 608, 176, /* 570 */ 46, 358, 840, 609, 354, 840, 610, 357, 48, 47, /* 580 */ 611, 49, 840, 612, 177, 366, 840, 613, 614, 840, /* 590 */ 840, 369, 50, 370, 163, 368, 51, 615, 52, 840, /* 600 */ 840, 616, 840, 617, 618, 840, 380, 840, 619, 621, /* 610 */ 382, 383, 840, 178, 54, 55, 384, 840, 623, 56, /* 620 */ 624, 57, 625, 393, 626, 840, 840, 59, 396, 840, /* 630 */ 58, 397, 395, 627, 840, 179, 628, 60, 405, 629, /* 640 */ 630, 840, 840, 62, 408, 840, 61, 409, 407, 631, /* 650 */ 840, 164, 632, 63, 840, 633, 634, 419, 840, 840, /* 660 */ 481, 635, 840, 637, 65, 423, 840, 421, 422, 66, /* 670 */ 840, 81, 639, 67, 640, 840, 180, 68, 69, 840, /* 680 */ 840, 432, 641, 642, 840, 435, 70, 840, 840, 434, /* 690 */ 436, 840, 643, 181, 644, 71, 517, 840, 645, 444, /* 700 */ 840, 646, 840, 183, 72, 447, 840, 446, 647, 448, /* 710 */ 73, 840, 674, 648, 165, 138, 840, 649, 166, 143, /* 720 */ 840, 650, 458, 84, 840, 459, 462, 654, 840, 463, /* 730 */ 144, 655, 840, 466, 145, 467, 840, 840, 840, 656, /* 740 */ 472, 840, 840, 657, 840, 658, 474, 475, 529, 840, /* 750 */ 74, 840, 659, 85, 660, 167, 665, 840, 661, 483, /* 760 */ 152, 840, 484, 487, 153, 840, 488, 154, 840, 666, /* 770 */ 491, 840, 492, 840, 497, 667, 840, 168, 840, 668, /* 780 */ 840, 669, 499, 670, 76, 500, 840, 840, 502, 77, /* 790 */ 503, 840, 505, 840, 78, 79, 506, 840, 840, 182, /* 800 */ 80, 513, 840, 671, 840, 840, 82, 516, 840, 840, /* 810 */ 840, 515, 672, 840, 840, 673, 83, 840, 840, 527, /* 820 */ 525, 675, 840, 528, 840, 840, 840, 840, 676, 677, }; static const YYCODETYPE yy_lookahead[] = { /* 0 */ 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, /* 10 */ 38, 39, 40, 41, 42, 43, 44, 5, 75, 45, /* 20 */ 77, 78, 79, 49, 81, 82, 0, 59, 2, 61, /* 30 */ 18, 19, 20, 21, 22, 23, 75, 46, 77, 78, /* 40 */ 75, 50, 77, 78, 9, 79, 6, 81, 82, 23, /* 50 */ 79, 11, 81, 82, 2, 7, 7, 9, 9, 24, /* 60 */ 12, 12, 2, 7, 7, 9, 9, 9, 12, 12, /* 70 */ 12, 7, 7, 9, 9, 5, 12, 12, 5, 50, /* 80 */ 5, 2, 24, 16, 17, 26, 27, 50, 18, 19, /* 90 */ 10, 18, 19, 18, 19, 51, 52, 46, 45, 45, /* 100 */ 10, 50, 49, 49, 49, 55, 56, 45, 47, 48, /* 110 */ 15, 49, 46, 45, 45, 10, 50, 49, 49, 45, /* 120 */ 2, 10, 46, 49, 47, 48, 50, 55, 56, 45, /* 130 */ 10, 46, 10, 55, 56, 50, 55, 56, 55, 56, /* 140 */ 46, 55, 56, 10, 50, 45, 57, 58, 46, 49, /* 150 */ 57, 58, 50, 47, 48, 57, 58, 6, 46, 46, /* 160 */ 57, 58, 50, 50, 57, 58, 57, 58, 7, 45, /* 170 */ 9, 63, 64, 49, 46, 50, 47, 48, 50, 10, /* 180 */ 63, 64, 63, 64, 46, 10, 63, 64, 50, 63, /* 190 */ 64, 46, 65, 66, 10, 50, 46, 63, 64, 46, /* 200 */ 50, 55, 56, 50, 65, 66, 47, 48, 65, 66, /* 210 */ 69, 70, 65, 66, 65, 66, 46, 65, 66, 46, /* 220 */ 50, 57, 58, 50, 69, 70, 47, 48, 46, 69, /* 230 */ 70, 7, 50, 9, 69, 70, 69, 70, 46, 73, /* 240 */ 74, 50, 50, 69, 70, 46, 45, 57, 58, 50, /* 250 */ 49, 55, 56, 47, 48, 46, 73, 74, 9, 50, /* 260 */ 73, 74, 73, 74, 46, 50, 73, 74, 50, 7, /* 270 */ 7, 9, 9, 24, 7, 7, 9, 9, 7, 7, /* 280 */ 9, 9, 7, 7, 9, 9, 7, 7, 9, 9, /* 290 */ 50, 50, 50, 45, 10, 50, 53, 53, 6, 6, /* 300 */ 50, 54, 49, 45, 10, 54, 60, 53, 6, 45, /* 310 */ 45, 59, 6, 10, 45, 60, 55, 10, 62, 49, /* 320 */ 61, 6, 49, 49, 67, 83, 49, 67, 62, 10, /* 330 */ 45, 6, 54, 10, 53, 6, 54, 49, 10, 6, /* 340 */ 10, 6, 56, 1, 10, 4, 3, 57, 4, 11, /* 350 */ 59, 68, 6, 8, 45, 68, 58, 8, 61, 6, /* 360 */ 71, 4, 10, 4, 6, 55, 71, 11, 72, 57, /* 370 */ 49, 72, 7, 73, 8, 8, 56, 76, 6, 6, /* 380 */ 76, 76, 58, 6, 76, 4, 6, 76, 4, 76, /* 390 */ 8, 8, 4, 6, 80, 10, 80, 80, 80, 7, /* 400 */ 11, 4, 80, 8, 8, 74, 6, 80, 4, 8, /* 410 */ 8, 4, 6, 10, 4, 7, 11, 8, 3, 8, /* 420 */ 4, 2, 4, 6, 10, 13, 4, 14, 3, 8, /* 430 */ 83, 8, 8, 13, 8, 8, 6, 4, 83, 11, /* 440 */ 8, 6, 6, 6, 6, 11, 6, 4, 83, 4, /* 450 */ 6, 83, 11, 11, 7, 4, 8, 11, 8, 6, /* 460 */ 4, 4, 8, 8, 6, 4, 83, 7, 4, 10, /* 470 */ 8, 8, 6, 8, 4, 83, 8, 83, 6, 10, /* 480 */ 7, 4, 11, 8, 10, 4, 6, 8, 83, 83, /* 490 */ 8, 8, 6, 6, 6, 11, 11, 83, 83, 6, /* 500 */ 6, 6, 11, 11, 4, 4, 83, 11, 6, 83, /* 510 */ 7, 83, 8, 8, 6, 4, 10, 4, 83, 10, /* 520 */ 4, 24, 8, 8, 6, 4, 4, 83, 11, 83, /* 530 */ 7, 11, 8, 8, 8, 6, 4, 4, 4, 8, /* 540 */ 83, 6, 83, 7, 4, 8, 8, 8, 6, 83, /* 550 */ 83, 4, 8, 83, 83, 83, 11, 11, 10, 6, /* 560 */ 11, 83, 4, 11, 7, 4, 83, 8, 8, 6, /* 570 */ 4, 7, 83, 8, 4, 83, 8, 6, 4, 10, /* 580 */ 8, 4, 83, 8, 6, 4, 83, 8, 8, 83, /* 590 */ 83, 6, 10, 7, 6, 11, 4, 8, 4, 83, /* 600 */ 83, 8, 83, 8, 8, 83, 4, 83, 11, 11, /* 610 */ 11, 6, 83, 6, 10, 4, 7, 83, 8, 4, /* 620 */ 8, 4, 8, 4, 8, 83, 83, 4, 6, 83, /* 630 */ 10, 7, 11, 8, 83, 6, 8, 4, 4, 8, /* 640 */ 8, 83, 83, 4, 6, 83, 10, 7, 11, 8, /* 650 */ 83, 6, 8, 4, 83, 8, 8, 4, 83, 83, /* 660 */ 3, 11, 83, 11, 10, 7, 83, 11, 6, 4, /* 670 */ 83, 10, 8, 4, 8, 83, 6, 4, 10, 83, /* 680 */ 83, 4, 8, 8, 83, 6, 4, 83, 83, 11, /* 690 */ 7, 83, 8, 6, 8, 4, 24, 83, 8, 4, /* 700 */ 83, 8, 83, 6, 10, 6, 83, 11, 8, 7, /* 710 */ 4, 83, 8, 8, 6, 4, 83, 8, 4, 4, /* 720 */ 83, 11, 6, 10, 83, 7, 6, 8, 83, 7, /* 730 */ 4, 8, 83, 6, 4, 7, 83, 83, 83, 8, /* 740 */ 4, 83, 83, 11, 83, 11, 11, 6, 24, 83, /* 750 */ 10, 83, 8, 4, 8, 4, 8, 83, 11, 6, /* 760 */ 4, 83, 7, 6, 4, 83, 7, 4, 83, 8, /* 770 */ 6, 83, 7, 83, 3, 8, 83, 4, 83, 11, /* 780 */ 83, 11, 6, 8, 4, 7, 83, 83, 6, 4, /* 790 */ 7, 83, 6, 83, 4, 4, 7, 83, 83, 6, /* 800 */ 4, 4, 83, 8, 83, 83, 4, 6, 83, 83, /* 810 */ 83, 11, 8, 83, 83, 8, 4, 83, 83, 11, /* 820 */ 4, 8, 83, 6, 83, 83, 83, 83, 8, 8, }; #define YY_SHIFT_USE_DFLT (-1) #define YY_SHIFT_MAX 531 static const short yy_shift_ofst[] = { /* 0 */ -1, 26, 52, 60, 60, 79, 79, 67, 90, 95, /* 10 */ 90, 118, 90, 95, 90, 90, 95, 90, 111, 90, /* 20 */ 95, 111, 118, 111, 95, 111, 111, 95, 111, 120, /* 30 */ 122, 90, 95, 120, 118, 120, 95, 120, 120, 95, /* 40 */ 120, 133, 90, 95, 133, 118, 133, 95, 133, 133, /* 50 */ 95, 133, 169, 111, 95, 169, 118, 169, 95, 169, /* 60 */ 169, 95, 169, 175, 120, 95, 175, 118, 175, 95, /* 70 */ 175, 175, 95, 175, 95, 184, 90, 111, 120, 118, /* 80 */ 184, 95, 184, 184, 95, 184, 95, 95, 95, 95, /* 90 */ 95, 95, 80, 95, 95, 151, 80, 151, 284, 95, /* 100 */ 95, 292, 105, 292, 293, 294, 80, 80, 80, 80, /* 110 */ 151, 293, 302, 303, 105, 105, 105, 105, 292, 302, /* 120 */ 151, 292, 306, 307, 80, 306, 315, 319, 105, 315, /* 130 */ 325, 323, 294, 325, 329, 328, 303, 329, 330, 333, /* 140 */ 333, 333, 333, 80, 307, 323, 333, 333, 335, 335, /* 150 */ 335, 335, 105, 319, 328, 335, 335, 334, 12, 48, /* 160 */ 49, 56, 57, 64, 65, 58, 70, 73, 75, 40, /* 170 */ 161, 224, 262, 263, 267, 268, 271, 272, 275, 276, /* 180 */ 279, 280, 35, 249, 342, 343, 341, 346, 344, 345, /* 190 */ 349, 353, 338, 357, 352, 356, 358, 365, 359, 366, /* 200 */ 367, 372, 373, 377, 381, 380, 384, 382, 383, 388, /* 210 */ 385, 389, 387, 392, 397, 395, 396, 400, 404, 401, /* 220 */ 402, 407, 403, 405, 406, 408, 410, 409, 411, 415, /* 230 */ 416, 412, 417, 413, 418, 419, 420, 422, 421, 423, /* 240 */ 424, 426, 430, 433, 427, 432, 435, 436, 428, 434, /* 250 */ 437, 438, 440, 441, 443, 414, 442, 444, 447, 445, /* 260 */ 448, 450, 451, 453, 456, 454, 455, 457, 459, 446, /* 270 */ 458, 460, 461, 462, 463, 466, 464, 465, 468, 470, /* 280 */ 469, 471, 472, 473, 477, 475, 479, 480, 481, 482, /* 290 */ 483, 484, 486, 487, 488, 491, 492, 493, 494, 495, /* 300 */ 496, 500, 474, 485, 502, 503, 501, 504, 505, 511, /* 310 */ 508, 513, 514, 515, 516, 506, 517, 518, 523, 521, /* 320 */ 524, 525, 529, 533, 526, 531, 534, 509, 520, 535, /* 330 */ 536, 532, 537, 538, 542, 540, 539, 544, 545, 546, /* 340 */ 547, 548, 549, 553, 557, 558, 559, 560, 561, 563, /* 350 */ 566, 565, 568, 570, 569, 552, 571, 564, 574, 572, /* 360 */ 575, 578, 577, 579, 580, 581, 582, 584, 585, 586, /* 370 */ 592, 589, 593, 588, 594, 595, 596, 597, 598, 602, /* 380 */ 604, 599, 605, 609, 611, 610, 612, 615, 607, 617, /* 390 */ 614, 616, 619, 620, 621, 622, 624, 623, 625, 628, /* 400 */ 629, 633, 631, 632, 634, 636, 637, 638, 640, 639, /* 410 */ 641, 644, 645, 649, 647, 648, 650, 652, 653, 654, /* 420 */ 656, 662, 658, 665, 664, 666, 669, 670, 673, 674, /* 430 */ 675, 677, 668, 678, 679, 683, 682, 684, 686, 687, /* 440 */ 691, 690, 693, 695, 694, 696, 699, 702, 706, 700, /* 450 */ 705, 708, 711, 709, 710, 425, 714, 716, 718, 715, /* 460 */ 719, 720, 722, 726, 723, 727, 728, 730, 731, 732, /* 470 */ 734, 736, 740, 735, 741, 497, 522, 744, 746, 747, /* 480 */ 657, 751, 753, 755, 756, 748, 757, 759, 760, 761, /* 490 */ 764, 765, 763, 767, 768, 770, 771, 773, 776, 778, /* 500 */ 780, 782, 783, 785, 786, 789, 790, 791, 793, 796, /* 510 */ 775, 795, 797, 661, 800, 801, 672, 802, 804, 807, /* 520 */ 697, 812, 704, 813, 816, 713, 808, 817, 724, 749, /* 530 */ 820, 821, }; #define YY_REDUCE_USE_DFLT (-58) #define YY_REDUCE_MAX 157 static const short yy_reduce_ofst[] = { /* 0 */ 59, -28, -57, -39, -35, -34, -29, 44, -26, -9, /* 10 */ 53, 61, 54, 51, 62, 68, 66, 69, 50, 74, /* 20 */ 76, 72, 77, 78, 85, 81, 83, 94, 86, 89, /* 30 */ -32, 100, 102, 93, 106, 98, 112, 103, 107, 113, /* 40 */ 109, 108, 124, 128, 117, 129, 119, 138, 123, 126, /* 50 */ 145, 134, 127, 146, 150, 139, 159, 143, 153, 147, /* 60 */ 149, 170, 152, 141, 164, 173, 155, 179, 160, 182, /* 70 */ 165, 167, 192, 174, 199, 166, 201, 196, 190, 206, /* 80 */ 183, 209, 187, 189, 218, 193, 29, 37, 125, 191, /* 90 */ 215, 240, 84, 241, 242, 243, 248, 244, 55, 245, /* 100 */ 250, 247, 253, 251, 246, 252, 258, 264, 265, 269, /* 110 */ 254, 255, 256, 259, 270, 273, 274, 277, 278, 266, /* 120 */ 281, 282, 257, 261, 285, 260, 283, 286, 288, 287, /* 130 */ 289, 290, 291, 295, 296, 298, 297, 299, 300, 301, /* 140 */ 304, 305, 308, 309, 310, 312, 311, 313, 314, 316, /* 150 */ 317, 318, 321, 320, 324, 322, 327, 331, }; static const YYACTIONTYPE yy_default[] = { /* 0 */ 680, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 10 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 20 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 30 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 40 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 50 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 60 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 70 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 80 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 90 */ 838, 838, 838, 838, 838, 718, 838, 718, 838, 838, /* 100 */ 838, 720, 838, 720, 751, 838, 838, 838, 838, 838, /* 110 */ 718, 751, 754, 838, 838, 838, 838, 838, 720, 754, /* 120 */ 718, 720, 783, 838, 838, 783, 786, 838, 838, 786, /* 130 */ 801, 838, 838, 801, 804, 838, 838, 804, 838, 821, /* 140 */ 821, 821, 821, 838, 838, 838, 821, 821, 828, 828, /* 150 */ 828, 828, 838, 838, 838, 828, 828, 838, 838, 838, /* 160 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 170 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 180 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 190 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 200 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 210 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 220 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 230 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 240 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 250 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 260 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 270 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 280 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 290 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 300 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 310 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 320 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 330 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 340 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 350 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 360 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 370 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 380 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 390 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 400 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 410 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 420 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 430 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 440 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 450 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 460 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 470 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 480 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 490 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 500 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 510 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 520 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 530 */ 838, 838, 681, 682, 683, 684, 685, 686, 687, 688, /* 540 */ 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, /* 550 */ 704, 713, 714, 715, 699, 705, 710, 700, 706, 702, /* 560 */ 708, 701, 707, 703, 709, 711, 712, 716, 717, 722, /* 570 */ 728, 719, 734, 721, 735, 723, 729, 724, 730, 726, /* 580 */ 732, 725, 731, 727, 733, 736, 742, 748, 750, 752, /* 590 */ 749, 753, 755, 737, 743, 738, 744, 740, 746, 739, /* 600 */ 745, 741, 747, 756, 762, 768, 769, 757, 763, 758, /* 610 */ 764, 760, 766, 759, 765, 761, 767, 770, 776, 782, /* 620 */ 784, 785, 787, 771, 777, 772, 778, 774, 780, 773, /* 630 */ 779, 775, 781, 788, 794, 800, 802, 803, 805, 789, /* 640 */ 795, 790, 796, 792, 798, 791, 797, 793, 799, 806, /* 650 */ 818, 822, 823, 824, 832, 834, 836, 819, 820, 807, /* 660 */ 813, 825, 829, 830, 831, 833, 835, 837, 826, 827, /* 670 */ 808, 814, 810, 816, 809, 815, 811, 817, 812, }; #define YY_SZ_ACTTAB (int)(sizeof(yy_action)/sizeof(yy_action[0])) /* The next table maps tokens into fallback tokens. If a construct ** like the following: ** ** %fallback ID X Y Z. ** ** appears in the grammar, then ID becomes a fallback token for X, Y, ** and Z. Whenever one of the tokens X, Y, or Z is input to the parser ** but it does not parse, the type of the token is changed to ID and ** the parse is retried before an error is thrown. */ #ifdef YYFALLBACK static const YYCODETYPE yyFallback[] = { }; #endif /* YYFALLBACK */ /* The following structure represents a single element of the ** parser's stack. Information stored includes: ** ** + The state number for the parser at this level of the stack. ** ** + The value of the token stored at this level of the stack. ** (In other words, the "major" token.) ** ** + The semantic value stored at this level of the stack. This is ** the information used by the action routines in the grammar. ** It is sometimes called the "minor" token. */ struct yyStackEntry { YYACTIONTYPE stateno; /* The state-number */ YYCODETYPE major; /* The major token value. This is the code ** number for the token at this stack level */ YYMINORTYPE minor; /* The user-supplied minor token value. This ** is the value of the token */ }; typedef struct yyStackEntry yyStackEntry; /* The state of the parser is completely contained in an instance of ** the following structure */ struct yyParser { int yyidx; /* Index of top element in stack */ #ifdef YYTRACKMAXSTACKDEPTH int yyidxMax; /* Maximum value of yyidx */ #endif int yyerrcnt; /* Shifts left before out of the error */ ParseARG_SDECL /* A place to hold %extra_argument */ #if YYSTACKDEPTH<=0 int yystksz; /* Current side of the stack */ yyStackEntry *yystack; /* The parser's stack */ #else yyStackEntry yystack[YYSTACKDEPTH]; /* The parser's stack */ #endif }; typedef struct yyParser yyParser; #ifndef NDEBUG #include static FILE *yyTraceFILE = 0; static char *yyTracePrompt = 0; #endif /* NDEBUG */ #ifndef NDEBUG /* ** Turn parser tracing on by giving a stream to which to write the trace ** and a prompt to preface each trace message. Tracing is turned off ** by making either argument NULL ** ** Inputs: **
    **
  • A FILE* to which trace output should be written. ** If NULL, then tracing is turned off. **
  • A prefix string written at the beginning of every ** line of trace output. If NULL, then tracing is ** turned off. **
** ** Outputs: ** None. */ void ParseTrace (FILE * TraceFILE, char *zTracePrompt) { yyTraceFILE = TraceFILE; yyTracePrompt = zTracePrompt; if (yyTraceFILE == 0) yyTracePrompt = 0; else if (yyTracePrompt == 0) yyTraceFILE = 0; } #endif /* NDEBUG */ #ifndef NDEBUG /* For tracing shifts, the names of all terminals and nonterminals ** are required. The following table supplies these names */ static const char *const yyTokenName[] = { "$", "GEOJSON_NEWLINE", "GEOJSON_OPEN_BRACE", "GEOJSON_TYPE", "GEOJSON_COLON", "GEOJSON_POINT", "GEOJSON_COMMA", "GEOJSON_COORDS", "GEOJSON_CLOSE_BRACE", "GEOJSON_BBOX", "GEOJSON_OPEN_BRACKET", "GEOJSON_CLOSE_BRACKET", "GEOJSON_CRS", "GEOJSON_NAME", "GEOJSON_PROPS", "GEOJSON_NUM", "GEOJSON_SHORT_SRID", "GEOJSON_LONG_SRID", "GEOJSON_LINESTRING", "GEOJSON_POLYGON", "GEOJSON_MULTIPOINT", "GEOJSON_MULTILINESTRING", "GEOJSON_MULTIPOLYGON", "GEOJSON_GEOMETRYCOLLECTION", "GEOJSON_GEOMS", "error", "main", "in", "state", "program", "geo_text", "point", "pointz", "linestring", "linestringz", "polygon", "polygonz", "multipoint", "multipointz", "multilinestring", "multilinestringz", "multipolygon", "multipolygonz", "geocoll", "geocollz", "point_coordxy", "bbox", "short_crs", "long_crs", "point_coordxyz", "coord", "short_srid", "long_srid", "extra_pointsxy", "extra_pointsxyz", "linestring_text", "linestring_textz", "polygon_text", "polygon_textz", "ring", "extra_rings", "ringz", "extra_ringsz", "multipoint_text", "multipoint_textz", "multilinestring_text", "multilinestring_textz", "multilinestring_text2", "multilinestring_textz2", "multipolygon_text", "multipolygon_textz", "multipolygon_text2", "multipolygon_textz2", "geocoll_text", "geocoll_textz", "coll_point", "geocoll_text2", "coll_linestring", "coll_polygon", "coll_pointz", "geocoll_textz2", "coll_linestringz", "coll_polygonz", }; #endif /* NDEBUG */ #ifndef NDEBUG /* For tracing reduce actions, the names of all rules are required. */ static const char *const yyRuleName[] = { /* 0 */ "main ::= in", /* 1 */ "in ::=", /* 2 */ "in ::= in state GEOJSON_NEWLINE", /* 3 */ "state ::= program", /* 4 */ "program ::= geo_text", /* 5 */ "geo_text ::= point", /* 6 */ "geo_text ::= pointz", /* 7 */ "geo_text ::= linestring", /* 8 */ "geo_text ::= linestringz", /* 9 */ "geo_text ::= polygon", /* 10 */ "geo_text ::= polygonz", /* 11 */ "geo_text ::= multipoint", /* 12 */ "geo_text ::= multipointz", /* 13 */ "geo_text ::= multilinestring", /* 14 */ "geo_text ::= multilinestringz", /* 15 */ "geo_text ::= multipolygon", /* 16 */ "geo_text ::= multipolygonz", /* 17 */ "geo_text ::= geocoll", /* 18 */ "geo_text ::= geocollz", /* 19 */ "point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE", /* 20 */ "point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE", /* 21 */ "point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE", /* 22 */ "point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE", /* 23 */ "point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE", /* 24 */ "point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE", /* 25 */ "pointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE", /* 26 */ "pointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE", /* 27 */ "pointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE", /* 28 */ "pointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE", /* 29 */ "point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE", /* 30 */ "point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE", /* 31 */ "bbox ::= coord GEOJSON_COMMA coord GEOJSON_COMMA coord GEOJSON_COMMA coord", /* 32 */ "short_crs ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_NAME GEOJSON_COMMA GEOJSON_PROPS GEOJSON_COLON GEOJSON_OPEN_BRACE GEOJSON_NAME GEOJSON_COLON short_srid GEOJSON_CLOSE_BRACE GEOJSON_CLOSE_BRACE", /* 33 */ "long_crs ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_NAME GEOJSON_COMMA GEOJSON_PROPS GEOJSON_COLON GEOJSON_OPEN_BRACE GEOJSON_NAME GEOJSON_COLON long_srid GEOJSON_CLOSE_BRACE GEOJSON_CLOSE_BRACE", /* 34 */ "point_coordxy ::= GEOJSON_OPEN_BRACKET coord GEOJSON_COMMA coord GEOJSON_CLOSE_BRACKET", /* 35 */ "point_coordxyz ::= GEOJSON_OPEN_BRACKET coord GEOJSON_COMMA coord GEOJSON_COMMA coord GEOJSON_CLOSE_BRACKET", /* 36 */ "coord ::= GEOJSON_NUM", /* 37 */ "short_srid ::= GEOJSON_SHORT_SRID", /* 38 */ "long_srid ::= GEOJSON_LONG_SRID", /* 39 */ "extra_pointsxy ::=", /* 40 */ "extra_pointsxy ::= GEOJSON_COMMA point_coordxy extra_pointsxy", /* 41 */ "extra_pointsxyz ::=", /* 42 */ "extra_pointsxyz ::= GEOJSON_COMMA point_coordxyz extra_pointsxyz", /* 43 */ "linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE", /* 44 */ "linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE", /* 45 */ "linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE", /* 46 */ "linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE", /* 47 */ "linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE", /* 48 */ "linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE", /* 49 */ "linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE", /* 50 */ "linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE", /* 51 */ "linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE", /* 52 */ "linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE", /* 53 */ "linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE", /* 54 */ "linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE", /* 55 */ "linestring_text ::= GEOJSON_OPEN_BRACKET point_coordxy GEOJSON_COMMA point_coordxy extra_pointsxy GEOJSON_CLOSE_BRACKET", /* 56 */ "linestring_textz ::= GEOJSON_OPEN_BRACKET point_coordxyz GEOJSON_COMMA point_coordxyz extra_pointsxyz GEOJSON_CLOSE_BRACKET", /* 57 */ "polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE", /* 58 */ "polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE", /* 59 */ "polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE", /* 60 */ "polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE", /* 61 */ "polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE", /* 62 */ "polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE", /* 63 */ "polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE", /* 64 */ "polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE", /* 65 */ "polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE", /* 66 */ "polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE", /* 67 */ "polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE", /* 68 */ "polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE", /* 69 */ "polygon_text ::= GEOJSON_OPEN_BRACKET ring extra_rings GEOJSON_CLOSE_BRACKET", /* 70 */ "polygon_textz ::= GEOJSON_OPEN_BRACKET ringz extra_ringsz GEOJSON_CLOSE_BRACKET", /* 71 */ "ring ::= GEOJSON_OPEN_BRACKET point_coordxy GEOJSON_COMMA point_coordxy GEOJSON_COMMA point_coordxy GEOJSON_COMMA point_coordxy extra_pointsxy GEOJSON_CLOSE_BRACKET", /* 72 */ "extra_rings ::=", /* 73 */ "extra_rings ::= GEOJSON_COMMA ring extra_rings", /* 74 */ "ringz ::= GEOJSON_OPEN_BRACKET point_coordxyz GEOJSON_COMMA point_coordxyz GEOJSON_COMMA point_coordxyz GEOJSON_COMMA point_coordxyz extra_pointsxyz GEOJSON_CLOSE_BRACKET", /* 75 */ "extra_ringsz ::=", /* 76 */ "extra_ringsz ::= GEOJSON_COMMA ringz extra_ringsz", /* 77 */ "multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE", /* 78 */ "multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE", /* 79 */ "multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE", /* 80 */ "multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE", /* 81 */ "multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE", /* 82 */ "multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE", /* 83 */ "multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE", /* 84 */ "multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE", /* 85 */ "multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE", /* 86 */ "multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE", /* 87 */ "multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE", /* 88 */ "multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE", /* 89 */ "multipoint_text ::= GEOJSON_OPEN_BRACKET point_coordxy extra_pointsxy GEOJSON_CLOSE_BRACKET", /* 90 */ "multipoint_textz ::= GEOJSON_OPEN_BRACKET point_coordxyz extra_pointsxyz GEOJSON_CLOSE_BRACKET", /* 91 */ "multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE", /* 92 */ "multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE", /* 93 */ "multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE", /* 94 */ "multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE", /* 95 */ "multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE", /* 96 */ "multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE", /* 97 */ "multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE", /* 98 */ "multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE", /* 99 */ "multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE", /* 100 */ "multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE", /* 101 */ "multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE", /* 102 */ "multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE", /* 103 */ "multilinestring_text ::= GEOJSON_OPEN_BRACKET linestring_text multilinestring_text2 GEOJSON_CLOSE_BRACKET", /* 104 */ "multilinestring_text2 ::=", /* 105 */ "multilinestring_text2 ::= GEOJSON_COMMA linestring_text multilinestring_text2", /* 106 */ "multilinestring_textz ::= GEOJSON_OPEN_BRACKET linestring_textz multilinestring_textz2 GEOJSON_CLOSE_BRACKET", /* 107 */ "multilinestring_textz2 ::=", /* 108 */ "multilinestring_textz2 ::= GEOJSON_COMMA linestring_textz multilinestring_textz2", /* 109 */ "multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE", /* 110 */ "multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE", /* 111 */ "multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE", /* 112 */ "multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE", /* 113 */ "multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE", /* 114 */ "multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE", /* 115 */ "multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE", /* 116 */ "multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE", /* 117 */ "multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE", /* 118 */ "multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE", /* 119 */ "multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE", /* 120 */ "multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE", /* 121 */ "multipolygon_text ::= GEOJSON_OPEN_BRACKET polygon_text multipolygon_text2 GEOJSON_CLOSE_BRACKET", /* 122 */ "multipolygon_text2 ::=", /* 123 */ "multipolygon_text2 ::= GEOJSON_COMMA polygon_text multipolygon_text2", /* 124 */ "multipolygon_textz ::= GEOJSON_OPEN_BRACKET polygon_textz multipolygon_textz2 GEOJSON_CLOSE_BRACKET", /* 125 */ "multipolygon_textz2 ::=", /* 126 */ "multipolygon_textz2 ::= GEOJSON_COMMA polygon_textz multipolygon_textz2", /* 127 */ "geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE", /* 128 */ "geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE", /* 129 */ "geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE", /* 130 */ "geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE", /* 131 */ "geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE", /* 132 */ "geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE", /* 133 */ "geocollz ::= GEOJSON_GEOMETRYCOLLECTION geocoll_textz", /* 134 */ "geocollz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz GEOJSON_CLOSE_BRACE", /* 135 */ "geocollz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz GEOJSON_CLOSE_BRACE", /* 136 */ "geocollz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz GEOJSON_CLOSE_BRACE", /* 137 */ "geocollz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz GEOJSON_CLOSE_BRACE", /* 138 */ "geocollz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz GEOJSON_CLOSE_BRACE", /* 139 */ "geocoll_text ::= GEOJSON_OPEN_BRACKET coll_point geocoll_text2 GEOJSON_CLOSE_BRACKET", /* 140 */ "geocoll_text ::= GEOJSON_OPEN_BRACKET coll_linestring geocoll_text2 GEOJSON_CLOSE_BRACKET", /* 141 */ "geocoll_text ::= GEOJSON_OPEN_BRACKET coll_polygon geocoll_text2 GEOJSON_CLOSE_BRACKET", /* 142 */ "geocoll_text2 ::=", /* 143 */ "geocoll_text2 ::= GEOJSON_COMMA coll_point geocoll_text2", /* 144 */ "geocoll_text2 ::= GEOJSON_COMMA coll_linestring geocoll_text2", /* 145 */ "geocoll_text2 ::= GEOJSON_COMMA coll_polygon geocoll_text2", /* 146 */ "geocoll_textz ::= GEOJSON_OPEN_BRACKET coll_pointz geocoll_textz2 GEOJSON_CLOSE_BRACKET", /* 147 */ "geocoll_textz ::= GEOJSON_OPEN_BRACKET coll_linestringz geocoll_textz2 GEOJSON_CLOSE_BRACKET", /* 148 */ "geocoll_textz ::= GEOJSON_OPEN_BRACKET coll_polygonz geocoll_textz2 GEOJSON_CLOSE_BRACKET", /* 149 */ "geocoll_textz2 ::=", /* 150 */ "geocoll_textz2 ::= GEOJSON_COMMA coll_pointz geocoll_textz2", /* 151 */ "geocoll_textz2 ::= GEOJSON_COMMA coll_linestringz geocoll_textz2", /* 152 */ "geocoll_textz2 ::= GEOJSON_COMMA coll_polygonz geocoll_textz2", /* 153 */ "coll_point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE", /* 154 */ "coll_pointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE", /* 155 */ "coll_linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE", /* 156 */ "coll_linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE", /* 157 */ "coll_polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE", /* 158 */ "coll_polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE", }; #endif /* NDEBUG */ #if YYSTACKDEPTH<=0 /* ** Try to increase the size of the parser stack. */ static void yyGrowStack (yyParser * p) { int newSize; yyStackEntry *pNew; newSize = p->yystksz * 2 + 100; pNew = realloc (p->yystack, newSize * sizeof (pNew[0])); if (pNew) { p->yystack = pNew; p->yystksz = newSize; #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sStack grows to %d entries!\n", yyTracePrompt, p->yystksz); } #endif } } #endif /* ** This function allocates a new parser. ** The only argument is a pointer to a function which works like ** malloc. ** ** Inputs: ** A pointer to the function used to allocate memory. ** ** Outputs: ** A pointer to a parser. This pointer is used in subsequent calls ** to Parse and ParseFree. */ void * ParseAlloc (void *(*mallocProc) (size_t)) { yyParser *pParser; pParser = (yyParser *) (*mallocProc) ((size_t) sizeof (yyParser)); if (pParser) { pParser->yyidx = -1; #ifdef YYTRACKMAXSTACKDEPTH pParser->yyidxMax = 0; #endif #if YYSTACKDEPTH<=0 pParser->yystack = NULL; pParser->yystksz = 0; yyGrowStack (pParser); #endif } return pParser; } /* The following function deletes the value associated with a ** symbol. The symbol can be either a terminal or nonterminal. ** "yymajor" is the symbol code, and "yypminor" is a pointer to ** the value. */ static void yy_destructor (yyParser * yypParser, /* The parser */ YYCODETYPE yymajor, /* Type code for object to destroy */ YYMINORTYPE * yypminor /* The object to be destroyed */ ) { switch (yymajor) { /* Here is inserted the actions which take place when a ** terminal or non-terminal is destroyed. This can happen ** when the symbol is popped from the stack during a ** reduce or during error processing or when a parser is ** being destroyed before it is finished parsing. ** ** Note: during a reduce, the only symbols destroyed are those ** which appear on the RHS of the rule, but which are not used ** inside the C code. */ default: break; /* If no destructor action specified: do nothing */ } } /* ** Pop the parser's stack once. ** ** If there is a destructor routine associated with the token which ** is popped from the stack, then call it. ** ** Return the major token number for the symbol popped. */ static int yy_pop_parser_stack (yyParser * pParser) { YYCODETYPE yymajor; yyStackEntry *yytos = &pParser->yystack[pParser->yyidx]; if (pParser->yyidx < 0) return 0; #ifndef NDEBUG if (yyTraceFILE && pParser->yyidx >= 0) { fprintf (yyTraceFILE, "%sPopping %s\n", yyTracePrompt, yyTokenName[yytos->major]); } #endif yymajor = yytos->major; yy_destructor (pParser, yymajor, &yytos->minor); pParser->yyidx--; return yymajor; } /* ** Deallocate and destroy a parser. Destructors are all called for ** all stack elements before shutting the parser down. ** ** Inputs: **
    **
  • A pointer to the parser. This should be a pointer ** obtained from ParseAlloc. **
  • A pointer to a function used to reclaim memory obtained ** from malloc. **
*/ void ParseFree (void *p, /* The parser to be deleted */ void (*freeProc) (void *) /* Function used to reclaim memory */ ) { yyParser *pParser = (yyParser *) p; if (pParser == 0) return; while (pParser->yyidx >= 0) yy_pop_parser_stack (pParser); #if YYSTACKDEPTH<=0 free (pParser->yystack); #endif (*freeProc) ((void *) pParser); } /* ** Return the peak depth of the stack for a parser. */ #ifdef YYTRACKMAXSTACKDEPTH int ParseStackPeak (void *p) { yyParser *pParser = (yyParser *) p; return pParser->yyidxMax; } #endif /* ** Find the appropriate action for a parser given the terminal ** look-ahead token iLookAhead. ** ** If the look-ahead token is YYNOCODE, then check to see if the action is ** independent of the look-ahead. If it is, return the action, otherwise ** return YY_NO_ACTION. */ static int yy_find_shift_action (yyParser * pParser, /* The parser */ YYCODETYPE iLookAhead /* The look-ahead token */ ) { int i; int stateno = pParser->yystack[pParser->yyidx].stateno; if (stateno > YY_SHIFT_MAX || (i = yy_shift_ofst[stateno]) == YY_SHIFT_USE_DFLT) { return yy_default[stateno]; } assert (iLookAhead != YYNOCODE); i += iLookAhead; if (i < 0 || i >= YY_SZ_ACTTAB || yy_lookahead[i] != iLookAhead) { if (iLookAhead > 0) { #ifdef YYFALLBACK YYCODETYPE iFallback; /* Fallback token */ if (iLookAhead < sizeof (yyFallback) / sizeof (yyFallback[0]) && (iFallback = yyFallback[iLookAhead]) != 0) { #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sFALLBACK %s => %s\n", yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[iFallback]); } #endif return yy_find_shift_action (pParser, iFallback); } #endif #ifdef YYWILDCARD { int j = i - iLookAhead + YYWILDCARD; if (j >= 0 && j < YY_SZ_ACTTAB && yy_lookahead[j] == YYWILDCARD) { #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sWILDCARD %s => %s\n", yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[YYWILDCARD]); } #endif /* NDEBUG */ return yy_action[j]; } } #endif /* YYWILDCARD */ } return yy_default[stateno]; } else { return yy_action[i]; } } /* ** Find the appropriate action for a parser given the non-terminal ** look-ahead token iLookAhead. ** ** If the look-ahead token is YYNOCODE, then check to see if the action is ** independent of the look-ahead. If it is, return the action, otherwise ** return YY_NO_ACTION. */ static int yy_find_reduce_action (int stateno, /* Current state number */ YYCODETYPE iLookAhead /* The look-ahead token */ ) { int i; #ifdef YYERRORSYMBOL if (stateno > YY_REDUCE_MAX) { return yy_default[stateno]; } #else assert (stateno <= YY_REDUCE_MAX); #endif i = yy_reduce_ofst[stateno]; assert (i != YY_REDUCE_USE_DFLT); assert (iLookAhead != YYNOCODE); i += iLookAhead; #ifdef YYERRORSYMBOL if (i < 0 || i >= YY_SZ_ACTTAB || yy_lookahead[i] != iLookAhead) { return yy_default[stateno]; } #else assert (i >= 0 && i < YY_SZ_ACTTAB); assert (yy_lookahead[i] == iLookAhead); #endif return yy_action[i]; } /* ** The following routine is called if the stack overflows. */ static void yyStackOverflow (yyParser * yypParser, YYMINORTYPE * yypMinor) { ParseARG_FETCH; yypParser->yyidx--; #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sStack Overflow!\n", yyTracePrompt); } #endif while (yypParser->yyidx >= 0) yy_pop_parser_stack (yypParser); /* Here code is inserted which will execute if the parser ** stack every overflows */ spatialite_e ("Giving up. Parser stack overflow\n"); ParseARG_STORE; /* Suppress warning about unused %extra_argument var */ } /* ** Perform a shift action. */ static void yy_shift (yyParser * yypParser, /* The parser to be shifted */ int yyNewState, /* The new state to shift in */ int yyMajor, /* The major token to shift in */ YYMINORTYPE * yypMinor /* Pointer to the minor token to shift in */ ) { yyStackEntry *yytos; yypParser->yyidx++; #ifdef YYTRACKMAXSTACKDEPTH if (yypParser->yyidx > yypParser->yyidxMax) { yypParser->yyidxMax = yypParser->yyidx; } #endif #if YYSTACKDEPTH>0 if (yypParser->yyidx >= YYSTACKDEPTH) { yyStackOverflow (yypParser, yypMinor); return; } #else if (yypParser->yyidx >= yypParser->yystksz) { yyGrowStack (yypParser); if (yypParser->yyidx >= yypParser->yystksz) { yyStackOverflow (yypParser, yypMinor); return; } } #endif yytos = &yypParser->yystack[yypParser->yyidx]; yytos->stateno = (YYACTIONTYPE) yyNewState; yytos->major = (YYCODETYPE) yyMajor; yytos->minor = *yypMinor; #ifndef NDEBUG if (yyTraceFILE && yypParser->yyidx > 0) { int i; fprintf (yyTraceFILE, "%sShift %d\n", yyTracePrompt, yyNewState); fprintf (yyTraceFILE, "%sStack:", yyTracePrompt); for (i = 1; i <= yypParser->yyidx; i++) fprintf (yyTraceFILE, " %s", yyTokenName[yypParser->yystack[i].major]); fprintf (yyTraceFILE, "\n"); } #endif } /* The following table contains information about every rule that ** is used during the reduce. */ static const struct { YYCODETYPE lhs; /* Symbol on the left-hand side of the rule */ unsigned char nrhs; /* Number of right-hand side symbols in the rule */ } yyRuleInfo[] = { { 26, 1}, { 27, 0}, { 27, 3}, { 28, 1}, { 29, 1}, { 30, 1}, { 30, 1}, { 30, 1}, { 30, 1}, { 30, 1}, { 30, 1}, { 30, 1}, { 30, 1}, { 30, 1}, { 30, 1}, { 30, 1}, { 30, 1}, { 30, 1}, { 30, 1}, { 31, 9}, { 31, 15}, { 31, 13}, { 31, 13}, { 31, 19}, { 31, 19}, { 32, 9}, { 32, 15}, { 32, 13}, { 32, 13}, { 31, 19}, { 31, 19}, { 46, 7}, { 47, 13}, { 48, 13}, { 45, 5}, { 49, 7}, { 50, 1}, { 51, 1}, { 52, 1}, { 53, 0}, { 53, 3}, { 54, 0}, { 54, 3}, { 33, 9}, { 33, 15}, { 33, 13}, { 33, 13}, { 33, 19}, { 33, 19}, { 34, 9}, { 34, 15}, { 34, 13}, { 34, 13}, { 34, 19}, { 34, 19}, { 55, 6}, { 56, 6}, { 35, 9}, { 35, 15}, { 35, 13}, { 35, 13}, { 35, 19}, { 35, 19}, { 36, 9}, { 36, 15}, { 36, 13}, { 36, 13}, { 36, 19}, { 36, 19}, { 57, 4}, { 58, 4}, { 59, 10}, { 60, 0}, { 60, 3}, { 61, 10}, { 62, 0}, { 62, 3}, { 37, 9}, { 37, 15}, { 37, 13}, { 37, 13}, { 37, 19}, { 37, 19}, { 38, 9}, { 38, 15}, { 38, 13}, { 38, 13}, { 38, 19}, { 38, 19}, { 63, 4}, { 64, 4}, { 39, 9}, { 39, 15}, { 39, 13}, { 39, 13}, { 39, 19}, { 39, 19}, { 40, 9}, { 40, 15}, { 40, 13}, { 40, 13}, { 40, 19}, { 40, 19}, { 65, 4}, { 67, 0}, { 67, 3}, { 66, 4}, { 68, 0}, { 68, 3}, { 41, 9}, { 41, 15}, { 41, 13}, { 41, 13}, { 41, 19}, { 41, 19}, { 42, 9}, { 42, 15}, { 42, 13}, { 42, 13}, { 42, 19}, { 42, 19}, { 69, 4}, { 71, 0}, { 71, 3}, { 70, 4}, { 72, 0}, { 72, 3}, { 43, 9}, { 43, 15}, { 43, 13}, { 43, 13}, { 43, 19}, { 43, 19}, { 44, 2}, { 44, 15}, { 44, 13}, { 44, 13}, { 44, 19}, { 44, 19}, { 73, 4}, { 73, 4}, { 73, 4}, { 76, 0}, { 76, 3}, { 76, 3}, { 76, 3}, { 74, 4}, { 74, 4}, { 74, 4}, { 80, 0}, { 80, 3}, { 80, 3}, { 80, 3}, { 75, 9}, { 79, 9}, { 77, 9}, { 81, 9}, { 78, 9}, { 82, 9},}; static void yy_accept (yyParser *); /* Forward Declaration */ /* ** Perform a reduce action and the shift that must immediately ** follow the reduce. */ static void yy_reduce (yyParser * yypParser, /* The parser */ int yyruleno /* Number of the rule by which to reduce */ ) { int yygoto; /* The next state */ int yyact; /* The next action */ YYMINORTYPE yygotominor; /* The LHS of the rule reduced */ yyStackEntry *yymsp; /* The top of the parser's stack */ int yysize; /* Amount to pop the stack */ ParseARG_FETCH; yymsp = &yypParser->yystack[yypParser->yyidx]; #ifndef NDEBUG if (yyTraceFILE && yyruleno >= 0 && yyruleno < (int) (sizeof (yyRuleName) / sizeof (yyRuleName[0]))) { fprintf (yyTraceFILE, "%sReduce [%s].\n", yyTracePrompt, yyRuleName[yyruleno]); } #endif /* NDEBUG */ /* Silence complaints from purify about yygotominor being uninitialized ** in some cases when it is copied into the stack after the following ** switch. yygotominor is uninitialized when a rule reduces that does ** not set the value of its left-hand side nonterminal. Leaving the ** value of the nonterminal uninitialized is utterly harmless as long ** as the value is never used. So really the only thing this code ** accomplishes is to quieten purify. ** ** 2007-01-16: The wireshark project (www.wireshark.org) reports that ** without this code, their parser segfaults. I'm not sure what there ** parser is doing to make this happen. This is the second bug report ** from wireshark this week. Clearly they are stressing Lemon in ways ** that it has not been previously stressed... (SQLite ticket #2172) */ /*memset(&yygotominor, 0, sizeof(yygotominor)); */ yygotominor = yyzerominor; switch (yyruleno) { /* Beginning here are the reduction cases. A typical example ** follows: ** case 0: ** #line ** { ... } // User supplied code ** #line ** break; */ case 5: /* geo_text ::= point */ case 6: /* geo_text ::= pointz */ yytestcase (yyruleno == 6); case 7: /* geo_text ::= linestring */ yytestcase (yyruleno == 7); case 8: /* geo_text ::= linestringz */ yytestcase (yyruleno == 8); case 9: /* geo_text ::= polygon */ yytestcase (yyruleno == 9); case 10: /* geo_text ::= polygonz */ yytestcase (yyruleno == 10); case 11: /* geo_text ::= multipoint */ yytestcase (yyruleno == 11); case 12: /* geo_text ::= multipointz */ yytestcase (yyruleno == 12); case 13: /* geo_text ::= multilinestring */ yytestcase (yyruleno == 13); case 14: /* geo_text ::= multilinestringz */ yytestcase (yyruleno == 14); case 15: /* geo_text ::= multipolygon */ yytestcase (yyruleno == 15); case 16: /* geo_text ::= multipolygonz */ yytestcase (yyruleno == 16); case 17: /* geo_text ::= geocoll */ yytestcase (yyruleno == 17); case 18: /* geo_text ::= geocollz */ yytestcase (yyruleno == 18); { p_data->result = yymsp[0].minor.yy0; } break; case 19: /* point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE */ case 20: /* point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 20); case 25: /* pointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 25); case 26: /* pointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 26); { yygotominor.yy0 = geoJSON_buildGeomFromPoint (p_data, (gaiaPointPtr) yymsp[-1].minor. yy0); } break; case 21: /* point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE */ case 22: /* point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 22); case 27: /* pointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 27); case 28: /* pointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 28); { yygotominor.yy0 = geoJSON_buildGeomFromPointSrid (p_data, (gaiaPointPtr) yymsp[-1]. minor.yy0, (int *) yymsp[-5].minor.yy0); } break; case 23: /* point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE */ case 24: /* point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 24); case 29: /* point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 29); case 30: /* point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 30); { yygotominor.yy0 = geoJSON_buildGeomFromPointSrid (p_data, (gaiaPointPtr) yymsp[-1]. minor.yy0, (int *) yymsp[-11].minor.yy0); } break; case 32: /* short_crs ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_NAME GEOJSON_COMMA GEOJSON_PROPS GEOJSON_COLON GEOJSON_OPEN_BRACE GEOJSON_NAME GEOJSON_COLON short_srid GEOJSON_CLOSE_BRACE GEOJSON_CLOSE_BRACE */ case 33: /* long_crs ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_NAME GEOJSON_COMMA GEOJSON_PROPS GEOJSON_COLON GEOJSON_OPEN_BRACE GEOJSON_NAME GEOJSON_COLON long_srid GEOJSON_CLOSE_BRACE GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 33); { yygotominor.yy0 = yymsp[-2].minor.yy0; } break; case 34: /* point_coordxy ::= GEOJSON_OPEN_BRACKET coord GEOJSON_COMMA coord GEOJSON_CLOSE_BRACKET */ { yygotominor.yy0 = (void *) geoJSON_point_xy (p_data, (double *) yymsp[-3].minor.yy0, (double *) yymsp[-1].minor.yy0); } break; case 35: /* point_coordxyz ::= GEOJSON_OPEN_BRACKET coord GEOJSON_COMMA coord GEOJSON_COMMA coord GEOJSON_CLOSE_BRACKET */ { yygotominor.yy0 = (void *) geoJSON_point_xyz (p_data, (double *) yymsp[-5].minor.yy0, (double *) yymsp[-3].minor.yy0, (double *) yymsp[-1].minor.yy0); } break; case 36: /* coord ::= GEOJSON_NUM */ case 37: /* short_srid ::= GEOJSON_SHORT_SRID */ yytestcase (yyruleno == 37); case 38: /* long_srid ::= GEOJSON_LONG_SRID */ yytestcase (yyruleno == 38); case 133: /* geocollz ::= GEOJSON_GEOMETRYCOLLECTION geocoll_textz */ yytestcase (yyruleno == 133); { yygotominor.yy0 = yymsp[0].minor.yy0; } break; case 39: /* extra_pointsxy ::= */ case 41: /* extra_pointsxyz ::= */ yytestcase (yyruleno == 41); case 72: /* extra_rings ::= */ yytestcase (yyruleno == 72); case 75: /* extra_ringsz ::= */ yytestcase (yyruleno == 75); case 104: /* multilinestring_text2 ::= */ yytestcase (yyruleno == 104); case 107: /* multilinestring_textz2 ::= */ yytestcase (yyruleno == 107); case 122: /* multipolygon_text2 ::= */ yytestcase (yyruleno == 122); case 125: /* multipolygon_textz2 ::= */ yytestcase (yyruleno == 125); case 142: /* geocoll_text2 ::= */ yytestcase (yyruleno == 142); case 149: /* geocoll_textz2 ::= */ yytestcase (yyruleno == 149); { yygotominor.yy0 = NULL; } break; case 40: /* extra_pointsxy ::= GEOJSON_COMMA point_coordxy extra_pointsxy */ case 42: /* extra_pointsxyz ::= GEOJSON_COMMA point_coordxyz extra_pointsxyz */ yytestcase (yyruleno == 42); { ((gaiaPointPtr) yymsp[-1].minor.yy0)->Next = (gaiaPointPtr) yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } break; case 43: /* linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE */ case 44: /* linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 44); case 49: /* linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 49); case 50: /* linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 50); { yygotominor.yy0 = geoJSON_buildGeomFromLinestring (p_data, (gaiaLinestringPtr) yymsp[-1].minor.yy0); } break; case 45: /* linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE */ case 46: /* linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 46); case 51: /* linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 51); case 52: /* linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 52); { yygotominor.yy0 = geoJSON_buildGeomFromLinestringSrid (p_data, (gaiaLinestringPtr) yymsp[-1].minor.yy0, (int *) yymsp[-5].minor. yy0); } break; case 47: /* linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE */ case 48: /* linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 48); case 53: /* linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 53); case 54: /* linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 54); { yygotominor.yy0 = geoJSON_buildGeomFromLinestringSrid (p_data, (gaiaLinestringPtr) yymsp[-1].minor.yy0, (int *) yymsp[-11].minor. yy0); } break; case 55: /* linestring_text ::= GEOJSON_OPEN_BRACKET point_coordxy GEOJSON_COMMA point_coordxy extra_pointsxy GEOJSON_CLOSE_BRACKET */ { ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = (gaiaPointPtr) yymsp[-2].minor.yy0; yygotominor.yy0 = (void *) geoJSON_linestring_xy (p_data, (gaiaPointPtr) yymsp[-4]. minor.yy0); } break; case 56: /* linestring_textz ::= GEOJSON_OPEN_BRACKET point_coordxyz GEOJSON_COMMA point_coordxyz extra_pointsxyz GEOJSON_CLOSE_BRACKET */ { ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = (gaiaPointPtr) yymsp[-2].minor.yy0; yygotominor.yy0 = (void *) geoJSON_linestring_xyz (p_data, (gaiaPointPtr) yymsp[-4]. minor.yy0); } break; case 57: /* polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE */ case 58: /* polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 58); case 63: /* polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 63); case 64: /* polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 64); { yygotominor.yy0 = geoJSON_buildGeomFromPolygon (p_data, (gaiaPolygonPtr) yymsp[-1]. minor.yy0); } break; case 59: /* polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE */ case 60: /* polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 60); case 65: /* polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 65); case 66: /* polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 66); { yygotominor.yy0 = geoJSON_buildGeomFromPolygonSrid (p_data, (gaiaPolygonPtr) yymsp[-1]. minor.yy0, (int *) yymsp[-5].minor. yy0); } break; case 61: /* polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE */ case 62: /* polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 62); case 67: /* polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 67); case 68: /* polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 68); { yygotominor.yy0 = geoJSON_buildGeomFromPolygonSrid (p_data, (gaiaPolygonPtr) yymsp[-1]. minor.yy0, (int *) yymsp[-11].minor. yy0); } break; case 69: /* polygon_text ::= GEOJSON_OPEN_BRACKET ring extra_rings GEOJSON_CLOSE_BRACKET */ { ((gaiaRingPtr) yymsp[-2].minor.yy0)->Next = (gaiaRingPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) geoJSON_polygon_xy (p_data, (gaiaRingPtr) yymsp[-2].minor. yy0); } break; case 70: /* polygon_textz ::= GEOJSON_OPEN_BRACKET ringz extra_ringsz GEOJSON_CLOSE_BRACKET */ { ((gaiaRingPtr) yymsp[-2].minor.yy0)->Next = (gaiaRingPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) geoJSON_polygon_xyz (p_data, (gaiaRingPtr) yymsp[-2].minor. yy0); } break; case 71: /* ring ::= GEOJSON_OPEN_BRACKET point_coordxy GEOJSON_COMMA point_coordxy GEOJSON_COMMA point_coordxy GEOJSON_COMMA point_coordxy extra_pointsxy GEOJSON_CLOSE_BRACKET */ { ((gaiaPointPtr) yymsp[-8].minor.yy0)->Next = (gaiaPointPtr) yymsp[-6].minor.yy0; ((gaiaPointPtr) yymsp[-6].minor.yy0)->Next = (gaiaPointPtr) yymsp[-4].minor.yy0; ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = (gaiaPointPtr) yymsp[-2].minor.yy0; ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) geoJSON_ring_xy (p_data, (gaiaPointPtr) yymsp[-8].minor.yy0); } break; case 73: /* extra_rings ::= GEOJSON_COMMA ring extra_rings */ case 76: /* extra_ringsz ::= GEOJSON_COMMA ringz extra_ringsz */ yytestcase (yyruleno == 76); { ((gaiaRingPtr) yymsp[-1].minor.yy0)->Next = (gaiaRingPtr) yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } break; case 74: /* ringz ::= GEOJSON_OPEN_BRACKET point_coordxyz GEOJSON_COMMA point_coordxyz GEOJSON_COMMA point_coordxyz GEOJSON_COMMA point_coordxyz extra_pointsxyz GEOJSON_CLOSE_BRACKET */ { ((gaiaPointPtr) yymsp[-8].minor.yy0)->Next = (gaiaPointPtr) yymsp[-6].minor.yy0; ((gaiaPointPtr) yymsp[-6].minor.yy0)->Next = (gaiaPointPtr) yymsp[-4].minor.yy0; ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = (gaiaPointPtr) yymsp[-2].minor.yy0; ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) geoJSON_ring_xyz (p_data, (gaiaPointPtr) yymsp[-8].minor. yy0); } break; case 77: /* multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE */ case 78: /* multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 78); case 83: /* multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 83); case 84: /* multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 84); case 91: /* multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 91); case 92: /* multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 92); case 97: /* multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 97); case 98: /* multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 98); case 109: /* multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 109); case 110: /* multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 110); case 115: /* multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 115); case 116: /* multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 116); case 127: /* geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 127); case 128: /* geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 128); case 134: /* geocollz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 134); { yygotominor.yy0 = yymsp[-1].minor.yy0; } break; case 79: /* multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE */ case 80: /* multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 80); case 85: /* multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 85); case 86: /* multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 86); case 93: /* multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 93); case 94: /* multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 94); case 99: /* multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 99); case 100: /* multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 100); case 111: /* multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 111); case 112: /* multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 112); case 117: /* multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 117); case 118: /* multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 118); case 129: /* geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 129); case 130: /* geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 130); case 135: /* geocollz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 135); case 136: /* geocollz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 136); { yygotominor.yy0 = (void *) geoJSON_setSrid ((gaiaGeomCollPtr) yymsp[-1].minor. yy0, (int *) yymsp[-5].minor.yy0); } break; case 81: /* multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE */ case 82: /* multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 82); case 87: /* multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 87); case 88: /* multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 88); case 95: /* multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 95); case 96: /* multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 96); case 101: /* multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 101); case 102: /* multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 102); case 113: /* multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 113); case 114: /* multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 114); case 119: /* multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 119); case 120: /* multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 120); case 131: /* geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 131); case 132: /* geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 132); case 137: /* geocollz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 137); case 138: /* geocollz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 138); { yygotominor.yy0 = (void *) geoJSON_setSrid ((gaiaGeomCollPtr) yymsp[-1].minor. yy0, (int *) yymsp[-11].minor.yy0); } break; case 89: /* multipoint_text ::= GEOJSON_OPEN_BRACKET point_coordxy extra_pointsxy GEOJSON_CLOSE_BRACKET */ { ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) geoJSON_multipoint_xy (p_data, (gaiaPointPtr) yymsp[-2]. minor.yy0); } break; case 90: /* multipoint_textz ::= GEOJSON_OPEN_BRACKET point_coordxyz extra_pointsxyz GEOJSON_CLOSE_BRACKET */ { ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) geoJSON_multipoint_xyz (p_data, (gaiaPointPtr) yymsp[-2]. minor.yy0); } break; case 103: /* multilinestring_text ::= GEOJSON_OPEN_BRACKET linestring_text multilinestring_text2 GEOJSON_CLOSE_BRACKET */ { ((gaiaLinestringPtr) yymsp[-2].minor.yy0)->Next = (gaiaLinestringPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) geoJSON_multilinestring_xy (p_data, (gaiaLinestringPtr) yymsp[-2].minor.yy0); } break; case 105: /* multilinestring_text2 ::= GEOJSON_COMMA linestring_text multilinestring_text2 */ case 108: /* multilinestring_textz2 ::= GEOJSON_COMMA linestring_textz multilinestring_textz2 */ yytestcase (yyruleno == 108); { ((gaiaLinestringPtr) yymsp[-1].minor.yy0)->Next = (gaiaLinestringPtr) yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } break; case 106: /* multilinestring_textz ::= GEOJSON_OPEN_BRACKET linestring_textz multilinestring_textz2 GEOJSON_CLOSE_BRACKET */ { ((gaiaLinestringPtr) yymsp[-2].minor.yy0)->Next = (gaiaLinestringPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) geoJSON_multilinestring_xyz (p_data, (gaiaLinestringPtr) yymsp[-2].minor.yy0); } break; case 121: /* multipolygon_text ::= GEOJSON_OPEN_BRACKET polygon_text multipolygon_text2 GEOJSON_CLOSE_BRACKET */ { ((gaiaPolygonPtr) yymsp[-2].minor.yy0)->Next = (gaiaPolygonPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) geoJSON_multipolygon_xy (p_data, (gaiaPolygonPtr) yymsp[-2]. minor.yy0); } break; case 123: /* multipolygon_text2 ::= GEOJSON_COMMA polygon_text multipolygon_text2 */ case 126: /* multipolygon_textz2 ::= GEOJSON_COMMA polygon_textz multipolygon_textz2 */ yytestcase (yyruleno == 126); { ((gaiaPolygonPtr) yymsp[-1].minor.yy0)->Next = (gaiaPolygonPtr) yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } break; case 124: /* multipolygon_textz ::= GEOJSON_OPEN_BRACKET polygon_textz multipolygon_textz2 GEOJSON_CLOSE_BRACKET */ { ((gaiaPolygonPtr) yymsp[-2].minor.yy0)->Next = (gaiaPolygonPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) geoJSON_multipolygon_xyz (p_data, (gaiaPolygonPtr) yymsp[-2]. minor.yy0); } break; case 139: /* geocoll_text ::= GEOJSON_OPEN_BRACKET coll_point geocoll_text2 GEOJSON_CLOSE_BRACKET */ case 140: /* geocoll_text ::= GEOJSON_OPEN_BRACKET coll_linestring geocoll_text2 GEOJSON_CLOSE_BRACKET */ yytestcase (yyruleno == 140); case 141: /* geocoll_text ::= GEOJSON_OPEN_BRACKET coll_polygon geocoll_text2 GEOJSON_CLOSE_BRACKET */ yytestcase (yyruleno == 141); { ((gaiaGeomCollPtr) yymsp[-2].minor.yy0)->Next = (gaiaGeomCollPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) geoJSON_geomColl_xy (p_data, (gaiaGeomCollPtr) yymsp[-2]. minor.yy0); } break; case 143: /* geocoll_text2 ::= GEOJSON_COMMA coll_point geocoll_text2 */ case 144: /* geocoll_text2 ::= GEOJSON_COMMA coll_linestring geocoll_text2 */ yytestcase (yyruleno == 144); case 145: /* geocoll_text2 ::= GEOJSON_COMMA coll_polygon geocoll_text2 */ yytestcase (yyruleno == 145); case 150: /* geocoll_textz2 ::= GEOJSON_COMMA coll_pointz geocoll_textz2 */ yytestcase (yyruleno == 150); case 151: /* geocoll_textz2 ::= GEOJSON_COMMA coll_linestringz geocoll_textz2 */ yytestcase (yyruleno == 151); case 152: /* geocoll_textz2 ::= GEOJSON_COMMA coll_polygonz geocoll_textz2 */ yytestcase (yyruleno == 152); { ((gaiaGeomCollPtr) yymsp[-1].minor.yy0)->Next = (gaiaGeomCollPtr) yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } break; case 146: /* geocoll_textz ::= GEOJSON_OPEN_BRACKET coll_pointz geocoll_textz2 GEOJSON_CLOSE_BRACKET */ case 147: /* geocoll_textz ::= GEOJSON_OPEN_BRACKET coll_linestringz geocoll_textz2 GEOJSON_CLOSE_BRACKET */ yytestcase (yyruleno == 147); case 148: /* geocoll_textz ::= GEOJSON_OPEN_BRACKET coll_polygonz geocoll_textz2 GEOJSON_CLOSE_BRACKET */ yytestcase (yyruleno == 148); { ((gaiaGeomCollPtr) yymsp[-2].minor.yy0)->Next = (gaiaGeomCollPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) geoJSON_geomColl_xyz (p_data, (gaiaGeomCollPtr) yymsp[-2]. minor.yy0); } break; case 153: /* coll_point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE */ case 154: /* coll_pointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 154); { yygotominor.yy0 = geoJSON_buildGeomFromPoint (p_data, (gaiaPointPtr) yymsp[-1].minor. yy0); } break; case 155: /* coll_linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE */ case 156: /* coll_linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 156); { yygotominor.yy0 = geoJSON_buildGeomFromLinestring (p_data, (gaiaLinestringPtr) yymsp[-1].minor.yy0); } break; case 157: /* coll_polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE */ case 158: /* coll_polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 158); { yygotominor.yy0 = geoJSON_buildGeomFromPolygon (p_data, (gaiaPolygonPtr) yymsp[-1]. minor.yy0); } break; default: /* (0) main ::= in */ yytestcase (yyruleno == 0); /* (1) in ::= */ yytestcase (yyruleno == 1); /* (2) in ::= in state GEOJSON_NEWLINE */ yytestcase (yyruleno == 2); /* (3) state ::= program */ yytestcase (yyruleno == 3); /* (4) program ::= geo_text */ yytestcase (yyruleno == 4); /* (31) bbox ::= coord GEOJSON_COMMA coord GEOJSON_COMMA coord GEOJSON_COMMA coord */ yytestcase (yyruleno == 31); break; }; yygoto = yyRuleInfo[yyruleno].lhs; yysize = yyRuleInfo[yyruleno].nrhs; yypParser->yyidx -= yysize; yyact = yy_find_reduce_action (yymsp[-yysize].stateno, (YYCODETYPE) yygoto); if (yyact < YYNSTATE) { #ifdef NDEBUG /* If we are not debugging and the reduce action popped at least ** one element off the stack, then we can push the new element back ** onto the stack here, and skip the stack overflow test in yy_shift(). ** That gives a significant speed improvement. */ if (yysize) { yypParser->yyidx++; yymsp -= yysize - 1; yymsp->stateno = (YYACTIONTYPE) yyact; yymsp->major = (YYCODETYPE) yygoto; yymsp->minor = yygotominor; } else #endif { yy_shift (yypParser, yyact, yygoto, &yygotominor); } } else { assert (yyact == YYNSTATE + YYNRULE + 1); yy_accept (yypParser); } } /* ** The following code executes when the parse fails */ #ifndef YYNOERRORRECOVERY static void yy_parse_failed (yyParser * yypParser /* The parser */ ) { ParseARG_FETCH; #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sFail!\n", yyTracePrompt); } #endif while (yypParser->yyidx >= 0) yy_pop_parser_stack (yypParser); /* Here code is inserted which will be executed whenever the ** parser fails */ ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ } #endif /* YYNOERRORRECOVERY */ /* ** The following code executes when a syntax error first occurs. */ static void yy_syntax_error (yyParser * yypParser, /* The parser */ int yymajor, /* The major type of the error token */ YYMINORTYPE yyminor /* The minor type of the error token */ ) { ParseARG_FETCH; #define TOKEN (yyminor.yy0) /* ** when the LEMON parser encounters an error ** then this global variable is set */ p_data->geoJson_parse_error = 1; p_data->result = NULL; ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ } /* ** The following is executed when the parser accepts */ static void yy_accept (yyParser * yypParser /* The parser */ ) { ParseARG_FETCH; #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sAccept!\n", yyTracePrompt); } #endif while (yypParser->yyidx >= 0) yy_pop_parser_stack (yypParser); /* Here code is inserted which will be executed whenever the ** parser accepts */ ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ } /* The main parser program. ** The first argument is a pointer to a structure obtained from ** "ParseAlloc" which describes the current state of the parser. ** The second argument is the major token number. The third is ** the minor token. The fourth optional argument is whatever the ** user wants (and specified in the grammar) and is available for ** use by the action routines. ** ** Inputs: **
    **
  • A pointer to the parser (an opaque structure.) **
  • The major token number. **
  • The minor token number. **
  • An option argument of a grammar-specified type. **
** ** Outputs: ** None. */ void Parse (void *yyp, /* The parser */ int yymajor, /* The major token code number */ ParseTOKENTYPE yyminor /* The value for the token */ ParseARG_PDECL /* Optional %extra_argument parameter */ ) { YYMINORTYPE yyminorunion; int yyact; /* The parser action. */ int yyendofinput; /* True if we are at the end of input */ #ifdef YYERRORSYMBOL int yyerrorhit = 0; /* True if yymajor has invoked an error */ #endif yyParser *yypParser; /* The parser */ /* (re)initialize the parser, if necessary */ yypParser = (yyParser *) yyp; if (yypParser->yyidx < 0) { #if YYSTACKDEPTH<=0 if (yypParser->yystksz <= 0) { /*memset(&yyminorunion, 0, sizeof(yyminorunion)); */ yyminorunion = yyzerominor; yyStackOverflow (yypParser, &yyminorunion); return; } #endif yypParser->yyidx = 0; yypParser->yyerrcnt = -1; yypParser->yystack[0].stateno = 0; yypParser->yystack[0].major = 0; } yyminorunion.yy0 = yyminor; yyendofinput = (yymajor == 0); ParseARG_STORE; #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sInput %s\n", yyTracePrompt, yyTokenName[yymajor]); } #endif do { yyact = yy_find_shift_action (yypParser, (YYCODETYPE) yymajor); if (yyact < YYNSTATE) { assert (!yyendofinput); /* Impossible to shift the $ token */ yy_shift (yypParser, yyact, yymajor, &yyminorunion); yypParser->yyerrcnt--; yymajor = YYNOCODE; } else if (yyact < YYNSTATE + YYNRULE) { yy_reduce (yypParser, yyact - YYNSTATE); } else { assert (yyact == YY_ERROR_ACTION); #ifdef YYERRORSYMBOL int yymx; #endif #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sSyntax Error!\n", yyTracePrompt); } #endif #ifdef YYERRORSYMBOL /* A syntax error has occurred. ** The response to an error depends upon whether or not the ** grammar defines an error token "ERROR". ** ** This is what we do if the grammar does define ERROR: ** ** * Call the %syntax_error function. ** ** * Begin popping the stack until we enter a state where ** it is legal to shift the error symbol, then shift ** the error symbol. ** ** * Set the error count to three. ** ** * Begin accepting and shifting new tokens. No new error ** processing will occur until three tokens have been ** shifted successfully. ** */ if (yypParser->yyerrcnt < 0) { yy_syntax_error (yypParser, yymajor, yyminorunion); } yymx = yypParser->yystack[yypParser->yyidx].major; if (yymx == YYERRORSYMBOL || yyerrorhit) { #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sDiscard input token %s\n", yyTracePrompt, yyTokenName[yymajor]); } #endif yy_destructor (yypParser, (YYCODETYPE) yymajor, &yyminorunion); yymajor = YYNOCODE; } else { while (yypParser->yyidx >= 0 && yymx != YYERRORSYMBOL && (yyact = yy_find_reduce_action (yypParser-> yystack[yypParser->yyidx]. stateno, YYERRORSYMBOL)) >= YYNSTATE) { yy_pop_parser_stack (yypParser); } if (yypParser->yyidx < 0 || yymajor == 0) { yy_destructor (yypParser, (YYCODETYPE) yymajor, &yyminorunion); yy_parse_failed (yypParser); yymajor = YYNOCODE; } else if (yymx != YYERRORSYMBOL) { YYMINORTYPE u2; u2.YYERRSYMDT = 0; yy_shift (yypParser, yyact, YYERRORSYMBOL, &u2); } } yypParser->yyerrcnt = 3; yyerrorhit = 1; #elif defined(YYNOERRORRECOVERY) /* If the YYNOERRORRECOVERY macro is defined, then do not attempt to ** do any kind of error recovery. Instead, simply invoke the syntax ** error routine and continue going as if nothing had happened. ** ** Applications can set this macro (for example inside %include) if ** they intend to abandon the parse upon the first syntax error seen. */ yy_syntax_error (yypParser, yymajor, yyminorunion); yy_destructor (yypParser, (YYCODETYPE) yymajor, &yyminorunion); yymajor = YYNOCODE; #else /* YYERRORSYMBOL is not defined */ /* This is what we do if the grammar does not define ERROR: ** ** * Report an error message, and throw away the input token. ** ** * If the input token is $, then fail the parse. ** ** As before, subsequent error messages are suppressed until ** three input tokens have been successfully shifted. */ if (yypParser->yyerrcnt <= 0) { yy_syntax_error (yypParser, yymajor, yyminorunion); } yypParser->yyerrcnt = 3; yy_destructor (yypParser, (YYCODETYPE) yymajor, &yyminorunion); if (yyendofinput) { yy_parse_failed (yypParser); } yymajor = YYNOCODE; #endif } } while (yymajor != YYNOCODE && yypParser->yyidx >= 0); return; } libspatialite-4.1.1/src/gaiageo/Gml.c0000664000175000017500000011120512163502133014330 00000000000000/* Driver template for the LEMON parser generator. ** The author disclaims copyright to this source code. */ /* First off, code is included that follows the "include" declaration ** in the input grammar file. */ #include /* Next is all token values, in a form suitable for use by makeheaders. ** This section will be null unless lemon is run with the -m switch. */ /* ** These constants (all generated automatically by the parser generator) ** specify the various kinds of tokens (terminals) that the parser ** understands. ** ** Each symbol here is a terminal symbol in the grammar. */ /* Make sure the INTERFACE macro is defined. */ #ifndef INTERFACE #define INTERFACE 1 #endif /* The next thing included is series of defines which control ** various aspects of the generated parser. ** YYCODETYPE is the data type used for storing terminal ** and nonterminal numbers. "unsigned char" is ** used if there are fewer than 250 terminals ** and nonterminals. "int" is used otherwise. ** YYNOCODE is a number of type YYCODETYPE which corresponds ** to no legal terminal or nonterminal number. This ** number is used to fill in empty slots of the hash ** table. ** YYFALLBACK If defined, this indicates that one or more tokens ** have fall-back values which should be used if the ** original value of the token will not parse. ** YYACTIONTYPE is the data type used for storing terminal ** and nonterminal numbers. "unsigned char" is ** used if there are fewer than 250 rules and ** states combined. "int" is used otherwise. ** ParseTOKENTYPE is the data type used for minor tokens given ** directly to the parser from the tokenizer. ** YYMINORTYPE is the data type used for all minor tokens. ** This is typically a union of many types, one of ** which is ParseTOKENTYPE. The entry in the union ** for base tokens is called "yy0". ** YYSTACKDEPTH is the maximum depth of the parser's stack. If ** zero the stack is dynamically sized using realloc() ** ParseARG_SDECL A static variable declaration for the %extra_argument ** ParseARG_PDECL A parameter declaration for the %extra_argument ** ParseARG_STORE Code to store %extra_argument into yypParser ** ParseARG_FETCH Code to extract %extra_argument from yypParser ** YYNSTATE the combined number of states. ** YYNRULE the number of rules in the grammar ** YYERRORSYMBOL is the code number of the error symbol. If not ** defined, then do no error processing. */ #define YYCODETYPE unsigned char #define YYNOCODE 28 #define YYACTIONTYPE unsigned char #define ParseTOKENTYPE void * typedef union { int yyinit; ParseTOKENTYPE yy0; } YYMINORTYPE; #ifndef YYSTACKDEPTH #define YYSTACKDEPTH 1000000 #endif #define ParseARG_SDECL struct gml_data *p_data ; #define ParseARG_PDECL , struct gml_data *p_data #define ParseARG_FETCH struct gml_data *p_data = yypParser->p_data #define ParseARG_STORE yypParser->p_data = p_data #define YYNSTATE 49 #define YYNRULE 34 #define YY_NO_ACTION (YYNSTATE+YYNRULE+2) #define YY_ACCEPT_ACTION (YYNSTATE+YYNRULE+1) #define YY_ERROR_ACTION (YYNSTATE+YYNRULE) /* The yyzerominor constant is used to initialize instances of ** YYMINORTYPE objects to zero. */ static const YYMINORTYPE yyzerominor = { 0 }; /* Define the yytestcase() macro to be a no-op if is not already defined ** otherwise. ** ** Applications can choose to define yytestcase() in the %include section ** to a macro that can assist in verifying code coverage. For production ** code the yytestcase() macro should be turned off. But it is useful ** for testing. */ #ifndef yytestcase #define yytestcase(X) #endif /* Next are the tables used to determine what action to take based on the ** current state and lookahead token. These tables are used to implement ** functions that take a state number and lookahead value and return an ** action integer. ** ** Suppose the action integer is N. Then the action is determined as ** follows ** ** 0 <= N < YYNSTATE Shift N. That is, push the lookahead ** token onto the stack and goto state N. ** ** YYNSTATE <= N < YYNSTATE+YYNRULE Reduce by rule N-YYNSTATE. ** ** N == YYNSTATE+YYNRULE A syntax error has occurred. ** ** N == YYNSTATE+YYNRULE+1 The parser accepts its input. ** ** N == YYNSTATE+YYNRULE+2 No such action. Denotes unused ** slots in the yy_action[] table. ** ** The action table is constructed as a single large table named yy_action[]. ** Given state S and lookahead X, the action is computed as ** ** yy_action[ yy_shift_ofst[S] + X ] ** ** If the index value yy_shift_ofst[S]+X is out of range or if the value ** yy_lookahead[yy_shift_ofst[S]+X] is not equal to X or if yy_shift_ofst[S] ** is equal to YY_SHIFT_USE_DFLT, it means that the action is not in the table ** and that yy_default[S] should be used instead. ** ** The formula above is for computing the action when the lookahead is ** a terminal symbol. If the lookahead is a non-terminal (as occurs after ** a reduce action) then the yy_reduce_ofst[] array is used in place of ** the yy_shift_ofst[] array and YY_REDUCE_USE_DFLT is used in place of ** YY_SHIFT_USE_DFLT. ** ** The following are the tables generated in this section: ** ** yy_action[] A single table containing all actions. ** yy_lookahead[] A table containing the lookahead for each entry in ** yy_action. Used to detect hash collisions. ** yy_shift_ofst[] For each state, the offset into yy_action for ** shifting terminals. ** yy_reduce_ofst[] For each state, the offset into yy_action for ** shifting non-terminals after a reduce. ** yy_default[] Default action for each state. */ static const YYACTIONTYPE yy_action[] = { /* 0 */ 20, 28, 29, 4, 48, 5, 3, 3, 5, 5, /* 10 */ 42, 84, 1, 42, 42, 47, 46, 2, 10, 5, /* 20 */ 21, 12, 32, 23, 42, 38, 22, 6, 49, 23, /* 30 */ 13, 19, 14, 15, 35, 8, 8, 10, 25, 11, /* 40 */ 18, 34, 33, 45, 37, 16, 40, 17, 41, 14, /* 50 */ 9, 23, 43, 7, 45, 27, 30, 26, 31, 36, /* 60 */ 39, 44, 24, }; static const YYCODETYPE yy_lookahead[] = { /* 0 */ 12, 13, 14, 15, 16, 17, 15, 15, 17, 17, /* 10 */ 22, 10, 11, 22, 22, 24, 24, 15, 18, 17, /* 20 */ 2, 3, 8, 5, 22, 25, 2, 3, 0, 5, /* 30 */ 18, 19, 4, 20, 21, 20, 20, 18, 2, 3, /* 40 */ 2, 26, 26, 5, 25, 20, 21, 20, 21, 4, /* 50 */ 18, 5, 23, 20, 5, 1, 3, 23, 3, 7, /* 60 */ 3, 3, 6, }; #define YY_SHIFT_USE_DFLT (-1) #define YY_SHIFT_MAX 26 static const signed char yy_shift_ofst[] = { /* 0 */ -1, 28, 45, 45, 45, 18, 14, 14, 14, 46, /* 10 */ 46, 14, 14, 24, 38, 14, 14, 14, 49, 36, /* 20 */ 54, 53, 55, 56, 52, 57, 58, }; #define YY_REDUCE_USE_DFLT (-13) #define YY_REDUCE_MAX 18 static const signed char yy_reduce_ofst[] = { /* 0 */ 1, -12, -9, -8, 2, 12, 13, 15, 16, 0, /* 10 */ 19, 25, 27, 32, 29, 33, 33, 33, 34, }; static const YYACTIONTYPE yy_default[] = { /* 0 */ 50, 83, 72, 72, 54, 83, 60, 80, 80, 76, /* 10 */ 76, 61, 59, 83, 83, 64, 66, 62, 83, 83, /* 20 */ 83, 83, 83, 83, 83, 83, 83, 51, 52, 53, /* 30 */ 56, 57, 79, 81, 82, 65, 75, 77, 78, 58, /* 40 */ 67, 63, 68, 69, 70, 71, 73, 74, 55, }; #define YY_SZ_ACTTAB (int)(sizeof(yy_action)/sizeof(yy_action[0])) /* The next table maps tokens into fallback tokens. If a construct ** like the following: ** ** %fallback ID X Y Z. ** ** appears in the grammar, then ID becomes a fallback token for X, Y, ** and Z. Whenever one of the tokens X, Y, or Z is input to the parser ** but it does not parse, the type of the token is changed to ID and ** the parse is retried before an error is thrown. */ #ifdef YYFALLBACK static const YYCODETYPE yyFallback[] = { }; #endif /* YYFALLBACK */ /* The following structure represents a single element of the ** parser's stack. Information stored includes: ** ** + The state number for the parser at this level of the stack. ** ** + The value of the token stored at this level of the stack. ** (In other words, the "major" token.) ** ** + The semantic value stored at this level of the stack. This is ** the information used by the action routines in the grammar. ** It is sometimes called the "minor" token. */ struct yyStackEntry { YYACTIONTYPE stateno; /* The state-number */ YYCODETYPE major; /* The major token value. This is the code ** number for the token at this stack level */ YYMINORTYPE minor; /* The user-supplied minor token value. This ** is the value of the token */ }; typedef struct yyStackEntry yyStackEntry; /* The state of the parser is completely contained in an instance of ** the following structure */ struct yyParser { int yyidx; /* Index of top element in stack */ #ifdef YYTRACKMAXSTACKDEPTH int yyidxMax; /* Maximum value of yyidx */ #endif int yyerrcnt; /* Shifts left before out of the error */ ParseARG_SDECL /* A place to hold %extra_argument */ #if YYSTACKDEPTH<=0 int yystksz; /* Current side of the stack */ yyStackEntry *yystack; /* The parser's stack */ #else yyStackEntry yystack[YYSTACKDEPTH]; /* The parser's stack */ #endif }; typedef struct yyParser yyParser; #ifndef NDEBUG #include static FILE *yyTraceFILE = 0; static char *yyTracePrompt = 0; #endif /* NDEBUG */ #ifndef NDEBUG /* ** Turn parser tracing on by giving a stream to which to write the trace ** and a prompt to preface each trace message. Tracing is turned off ** by making either argument NULL ** ** Inputs: **
    **
  • A FILE* to which trace output should be written. ** If NULL, then tracing is turned off. **
  • A prefix string written at the beginning of every ** line of trace output. If NULL, then tracing is ** turned off. **
** ** Outputs: ** None. */ void ParseTrace (FILE * TraceFILE, char *zTracePrompt) { yyTraceFILE = TraceFILE; yyTracePrompt = zTracePrompt; if (yyTraceFILE == 0) yyTracePrompt = 0; else if (yyTracePrompt == 0) yyTraceFILE = 0; } #endif /* NDEBUG */ #ifndef NDEBUG /* For tracing shifts, the names of all terminals and nonterminals ** are required. The following table supplies these names */ static const char *const yyTokenName[] = { "$", "GML_NEWLINE", "GML_END", "GML_CLOSE", "GML_OPEN", "GML_KEYWORD", "GML_EQ", "GML_VALUE", "GML_COORD", "error", "main", "in", "state", "program", "gml_tree", "node", "node_chain", "open_tag", "attr", "attributes", "coord", "coord_chain", "close_tag", "keyword", "extra_nodes", "extra_attr", "extra_coord", }; #endif /* NDEBUG */ #ifndef NDEBUG /* For tracing reduce actions, the names of all rules are required. */ static const char *const yyRuleName[] = { /* 0 */ "main ::= in", /* 1 */ "in ::=", /* 2 */ "in ::= in state GML_NEWLINE", /* 3 */ "state ::= program", /* 4 */ "program ::= gml_tree", /* 5 */ "gml_tree ::= node", /* 6 */ "gml_tree ::= node_chain", /* 7 */ "node ::= open_tag GML_END GML_CLOSE", /* 8 */ "node ::= open_tag attr GML_END GML_CLOSE", /* 9 */ "node ::= open_tag attributes GML_END GML_CLOSE", /* 10 */ "node ::= open_tag GML_CLOSE", /* 11 */ "node ::= open_tag attr GML_CLOSE", /* 12 */ "node ::= open_tag attributes GML_CLOSE", /* 13 */ "node ::= open_tag GML_CLOSE coord", /* 14 */ "node ::= open_tag GML_CLOSE coord_chain", /* 15 */ "node ::= open_tag attr GML_CLOSE coord", /* 16 */ "node ::= open_tag attr GML_CLOSE coord_chain", /* 17 */ "node ::= open_tag attributes GML_CLOSE coord", /* 18 */ "node ::= open_tag attributes GML_CLOSE coord_chain", /* 19 */ "node ::= close_tag", /* 20 */ "open_tag ::= GML_OPEN keyword", /* 21 */ "close_tag ::= GML_OPEN GML_END keyword GML_CLOSE", /* 22 */ "keyword ::= GML_KEYWORD", /* 23 */ "extra_nodes ::=", /* 24 */ "extra_nodes ::= node extra_nodes", /* 25 */ "node_chain ::= node node extra_nodes", /* 26 */ "attr ::= GML_KEYWORD GML_EQ GML_VALUE", /* 27 */ "extra_attr ::=", /* 28 */ "extra_attr ::= attr extra_attr", /* 29 */ "attributes ::= attr attr extra_attr", /* 30 */ "coord ::= GML_COORD", /* 31 */ "extra_coord ::=", /* 32 */ "extra_coord ::= coord extra_coord", /* 33 */ "coord_chain ::= coord coord extra_coord", }; #endif /* NDEBUG */ #if YYSTACKDEPTH<=0 /* ** Try to increase the size of the parser stack. */ static void yyGrowStack (yyParser * p) { int newSize; yyStackEntry *pNew; newSize = p->yystksz * 2 + 100; pNew = realloc (p->yystack, newSize * sizeof (pNew[0])); if (pNew) { p->yystack = pNew; p->yystksz = newSize; #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sStack grows to %d entries!\n", yyTracePrompt, p->yystksz); } #endif } } #endif /* ** This function allocates a new parser. ** The only argument is a pointer to a function which works like ** malloc. ** ** Inputs: ** A pointer to the function used to allocate memory. ** ** Outputs: ** A pointer to a parser. This pointer is used in subsequent calls ** to Parse and ParseFree. */ void * ParseAlloc (void *(*mallocProc) (size_t)) { yyParser *pParser; pParser = (yyParser *) (*mallocProc) ((size_t) sizeof (yyParser)); if (pParser) { pParser->yyidx = -1; #ifdef YYTRACKMAXSTACKDEPTH pParser->yyidxMax = 0; #endif #if YYSTACKDEPTH<=0 pParser->yystack = NULL; pParser->yystksz = 0; yyGrowStack (pParser); #endif } return pParser; } /* The following function deletes the value associated with a ** symbol. The symbol can be either a terminal or nonterminal. ** "yymajor" is the symbol code, and "yypminor" is a pointer to ** the value. */ static void yy_destructor (yyParser * yypParser, /* The parser */ YYCODETYPE yymajor, /* Type code for object to destroy */ YYMINORTYPE * yypminor /* The object to be destroyed */ ) { switch (yymajor) { /* Here is inserted the actions which take place when a ** terminal or non-terminal is destroyed. This can happen ** when the symbol is popped from the stack during a ** reduce or during error processing or when a parser is ** being destroyed before it is finished parsing. ** ** Note: during a reduce, the only symbols destroyed are those ** which appear on the RHS of the rule, but which are not used ** inside the C code. */ default: break; /* If no destructor action specified: do nothing */ } } /* ** Pop the parser's stack once. ** ** If there is a destructor routine associated with the token which ** is popped from the stack, then call it. ** ** Return the major token number for the symbol popped. */ static int yy_pop_parser_stack (yyParser * pParser) { YYCODETYPE yymajor; yyStackEntry *yytos = &pParser->yystack[pParser->yyidx]; if (pParser->yyidx < 0) return 0; #ifndef NDEBUG if (yyTraceFILE && pParser->yyidx >= 0) { fprintf (yyTraceFILE, "%sPopping %s\n", yyTracePrompt, yyTokenName[yytos->major]); } #endif yymajor = yytos->major; yy_destructor (pParser, yymajor, &yytos->minor); pParser->yyidx--; return yymajor; } /* ** Deallocate and destroy a parser. Destructors are all called for ** all stack elements before shutting the parser down. ** ** Inputs: **
    **
  • A pointer to the parser. This should be a pointer ** obtained from ParseAlloc. **
  • A pointer to a function used to reclaim memory obtained ** from malloc. **
*/ void ParseFree (void *p, /* The parser to be deleted */ void (*freeProc) (void *) /* Function used to reclaim memory */ ) { yyParser *pParser = (yyParser *) p; if (pParser == 0) return; while (pParser->yyidx >= 0) yy_pop_parser_stack (pParser); #if YYSTACKDEPTH<=0 free (pParser->yystack); #endif (*freeProc) ((void *) pParser); } /* ** Return the peak depth of the stack for a parser. */ #ifdef YYTRACKMAXSTACKDEPTH int ParseStackPeak (void *p) { yyParser *pParser = (yyParser *) p; return pParser->yyidxMax; } #endif /* ** Find the appropriate action for a parser given the terminal ** look-ahead token iLookAhead. ** ** If the look-ahead token is YYNOCODE, then check to see if the action is ** independent of the look-ahead. If it is, return the action, otherwise ** return YY_NO_ACTION. */ static int yy_find_shift_action (yyParser * pParser, /* The parser */ YYCODETYPE iLookAhead /* The look-ahead token */ ) { int i; int stateno = pParser->yystack[pParser->yyidx].stateno; if (stateno > YY_SHIFT_MAX || (i = yy_shift_ofst[stateno]) == YY_SHIFT_USE_DFLT) { return yy_default[stateno]; } assert (iLookAhead != YYNOCODE); i += iLookAhead; if (i < 0 || i >= YY_SZ_ACTTAB || yy_lookahead[i] != iLookAhead) { if (iLookAhead > 0) { #ifdef YYFALLBACK YYCODETYPE iFallback; /* Fallback token */ if (iLookAhead < sizeof (yyFallback) / sizeof (yyFallback[0]) && (iFallback = yyFallback[iLookAhead]) != 0) { #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sFALLBACK %s => %s\n", yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[iFallback]); } #endif return yy_find_shift_action (pParser, iFallback); } #endif #ifdef YYWILDCARD { int j = i - iLookAhead + YYWILDCARD; if (j >= 0 && j < YY_SZ_ACTTAB && yy_lookahead[j] == YYWILDCARD) { #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sWILDCARD %s => %s\n", yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[YYWILDCARD]); } #endif /* NDEBUG */ return yy_action[j]; } } #endif /* YYWILDCARD */ } return yy_default[stateno]; } else { return yy_action[i]; } } /* ** Find the appropriate action for a parser given the non-terminal ** look-ahead token iLookAhead. ** ** If the look-ahead token is YYNOCODE, then check to see if the action is ** independent of the look-ahead. If it is, return the action, otherwise ** return YY_NO_ACTION. */ static int yy_find_reduce_action (int stateno, /* Current state number */ YYCODETYPE iLookAhead /* The look-ahead token */ ) { int i; #ifdef YYERRORSYMBOL if (stateno > YY_REDUCE_MAX) { return yy_default[stateno]; } #else assert (stateno <= YY_REDUCE_MAX); #endif i = yy_reduce_ofst[stateno]; assert (i != YY_REDUCE_USE_DFLT); assert (iLookAhead != YYNOCODE); i += iLookAhead; #ifdef YYERRORSYMBOL if (i < 0 || i >= YY_SZ_ACTTAB || yy_lookahead[i] != iLookAhead) { return yy_default[stateno]; } #else assert (i >= 0 && i < YY_SZ_ACTTAB); assert (yy_lookahead[i] == iLookAhead); #endif return yy_action[i]; } /* ** The following routine is called if the stack overflows. */ static void yyStackOverflow (yyParser * yypParser, YYMINORTYPE * yypMinor) { ParseARG_FETCH; yypParser->yyidx--; #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sStack Overflow!\n", yyTracePrompt); } #endif while (yypParser->yyidx >= 0) yy_pop_parser_stack (yypParser); /* Here code is inserted which will execute if the parser ** stack every overflows */ spatialite_e ("Giving up. Parser stack overflow\n"); ParseARG_STORE; /* Suppress warning about unused %extra_argument var */ } /* ** Perform a shift action. */ static void yy_shift (yyParser * yypParser, /* The parser to be shifted */ int yyNewState, /* The new state to shift in */ int yyMajor, /* The major token to shift in */ YYMINORTYPE * yypMinor /* Pointer to the minor token to shift in */ ) { yyStackEntry *yytos; yypParser->yyidx++; #ifdef YYTRACKMAXSTACKDEPTH if (yypParser->yyidx > yypParser->yyidxMax) { yypParser->yyidxMax = yypParser->yyidx; } #endif #if YYSTACKDEPTH>0 if (yypParser->yyidx >= YYSTACKDEPTH) { yyStackOverflow (yypParser, yypMinor); return; } #else if (yypParser->yyidx >= yypParser->yystksz) { yyGrowStack (yypParser); if (yypParser->yyidx >= yypParser->yystksz) { yyStackOverflow (yypParser, yypMinor); return; } } #endif yytos = &yypParser->yystack[yypParser->yyidx]; yytos->stateno = (YYACTIONTYPE) yyNewState; yytos->major = (YYCODETYPE) yyMajor; yytos->minor = *yypMinor; #ifndef NDEBUG if (yyTraceFILE && yypParser->yyidx > 0) { int i; fprintf (yyTraceFILE, "%sShift %d\n", yyTracePrompt, yyNewState); fprintf (yyTraceFILE, "%sStack:", yyTracePrompt); for (i = 1; i <= yypParser->yyidx; i++) fprintf (yyTraceFILE, " %s", yyTokenName[yypParser->yystack[i].major]); fprintf (yyTraceFILE, "\n"); } #endif } /* The following table contains information about every rule that ** is used during the reduce. */ static const struct { YYCODETYPE lhs; /* Symbol on the left-hand side of the rule */ unsigned char nrhs; /* Number of right-hand side symbols in the rule */ } yyRuleInfo[] = { { 10, 1}, { 11, 0}, { 11, 3}, { 12, 1}, { 13, 1}, { 14, 1}, { 14, 1}, { 15, 3}, { 15, 4}, { 15, 4}, { 15, 2}, { 15, 3}, { 15, 3}, { 15, 3}, { 15, 3}, { 15, 4}, { 15, 4}, { 15, 4}, { 15, 4}, { 15, 1}, { 17, 2}, { 22, 4}, { 23, 1}, { 24, 0}, { 24, 2}, { 16, 3}, { 18, 3}, { 25, 0}, { 25, 2}, { 19, 3}, { 20, 1}, { 26, 0}, { 26, 2}, { 21, 3},}; static void yy_accept (yyParser *); /* Forward Declaration */ /* ** Perform a reduce action and the shift that must immediately ** follow the reduce. */ static void yy_reduce (yyParser * yypParser, /* The parser */ int yyruleno /* Number of the rule by which to reduce */ ) { int yygoto; /* The next state */ int yyact; /* The next action */ YYMINORTYPE yygotominor; /* The LHS of the rule reduced */ yyStackEntry *yymsp; /* The top of the parser's stack */ int yysize; /* Amount to pop the stack */ ParseARG_FETCH; yymsp = &yypParser->yystack[yypParser->yyidx]; #ifndef NDEBUG if (yyTraceFILE && yyruleno >= 0 && yyruleno < (int) (sizeof (yyRuleName) / sizeof (yyRuleName[0]))) { fprintf (yyTraceFILE, "%sReduce [%s].\n", yyTracePrompt, yyRuleName[yyruleno]); } #endif /* NDEBUG */ /* Silence complaints from purify about yygotominor being uninitialized ** in some cases when it is copied into the stack after the following ** switch. yygotominor is uninitialized when a rule reduces that does ** not set the value of its left-hand side nonterminal. Leaving the ** value of the nonterminal uninitialized is utterly harmless as long ** as the value is never used. So really the only thing this code ** accomplishes is to quieten purify. ** ** 2007-01-16: The wireshark project (www.wireshark.org) reports that ** without this code, their parser segfaults. I'm not sure what there ** parser is doing to make this happen. This is the second bug report ** from wireshark this week. Clearly they are stressing Lemon in ways ** that it has not been previously stressed... (SQLite ticket #2172) */ /*memset(&yygotominor, 0, sizeof(yygotominor)); */ yygotominor = yyzerominor; switch (yyruleno) { /* Beginning here are the reduction cases. A typical example ** follows: ** case 0: ** #line ** { ... } // User supplied code ** #line ** break; */ case 5: /* gml_tree ::= node */ case 6: /* gml_tree ::= node_chain */ yytestcase (yyruleno == 6); { p_data->result = yymsp[0].minor.yy0; } break; case 7: /* node ::= open_tag GML_END GML_CLOSE */ { yygotominor.yy0 = gml_createSelfClosedNode (p_data, (void *) yymsp[-2].minor.yy0, NULL); } break; case 8: /* node ::= open_tag attr GML_END GML_CLOSE */ case 9: /* node ::= open_tag attributes GML_END GML_CLOSE */ yytestcase (yyruleno == 9); { yygotominor.yy0 = gml_createSelfClosedNode (p_data, (void *) yymsp[-3].minor.yy0, (void *) yymsp[-2].minor.yy0); } break; case 10: /* node ::= open_tag GML_CLOSE */ { yygotominor.yy0 = gml_createNode (p_data, (void *) yymsp[-1].minor.yy0, NULL, NULL); } break; case 11: /* node ::= open_tag attr GML_CLOSE */ case 12: /* node ::= open_tag attributes GML_CLOSE */ yytestcase (yyruleno == 12); { yygotominor.yy0 = gml_createNode (p_data, (void *) yymsp[-2].minor.yy0, (void *) yymsp[-1].minor.yy0, NULL); } break; case 13: /* node ::= open_tag GML_CLOSE coord */ case 14: /* node ::= open_tag GML_CLOSE coord_chain */ yytestcase (yyruleno == 14); { yygotominor.yy0 = gml_createNode (p_data, (void *) yymsp[-2].minor.yy0, NULL, (void *) yymsp[0].minor.yy0); } break; case 15: /* node ::= open_tag attr GML_CLOSE coord */ case 16: /* node ::= open_tag attr GML_CLOSE coord_chain */ yytestcase (yyruleno == 16); case 17: /* node ::= open_tag attributes GML_CLOSE coord */ yytestcase (yyruleno == 17); case 18: /* node ::= open_tag attributes GML_CLOSE coord_chain */ yytestcase (yyruleno == 18); { yygotominor.yy0 = gml_createNode (p_data, (void *) yymsp[-3].minor.yy0, (void *) yymsp[-2].minor.yy0, (void *) yymsp[0].minor.yy0); } break; case 19: /* node ::= close_tag */ { yygotominor.yy0 = gml_closingNode (p_data, (void *) yymsp[0].minor.yy0); } break; case 20: /* open_tag ::= GML_OPEN keyword */ case 22: /* keyword ::= GML_KEYWORD */ yytestcase (yyruleno == 22); { yygotominor.yy0 = yymsp[0].minor.yy0; } break; case 21: /* close_tag ::= GML_OPEN GML_END keyword GML_CLOSE */ { yygotominor.yy0 = yymsp[-1].minor.yy0; } break; case 23: /* extra_nodes ::= */ case 27: /* extra_attr ::= */ yytestcase (yyruleno == 27); case 31: /* extra_coord ::= */ yytestcase (yyruleno == 31); { yygotominor.yy0 = NULL; } break; case 24: /* extra_nodes ::= node extra_nodes */ { ((gmlNodePtr) yymsp[-1].minor.yy0)->Next = (gmlNodePtr) yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } break; case 25: /* node_chain ::= node node extra_nodes */ { ((gmlNodePtr) yymsp[-1].minor.yy0)->Next = (gmlNodePtr) yymsp[0].minor.yy0; ((gmlNodePtr) yymsp[-2].minor.yy0)->Next = (gmlNodePtr) yymsp[-1].minor.yy0; yygotominor.yy0 = yymsp[-2].minor.yy0; } break; case 26: /* attr ::= GML_KEYWORD GML_EQ GML_VALUE */ { yygotominor.yy0 = gml_attribute (p_data, (void *) yymsp[-2].minor.yy0, (void *) yymsp[0].minor.yy0); } break; case 28: /* extra_attr ::= attr extra_attr */ { ((gmlAttrPtr) yymsp[-1].minor.yy0)->Next = (gmlAttrPtr) yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } break; case 29: /* attributes ::= attr attr extra_attr */ { ((gmlAttrPtr) yymsp[-1].minor.yy0)->Next = (gmlAttrPtr) yymsp[0].minor.yy0; ((gmlAttrPtr) yymsp[-2].minor.yy0)->Next = (gmlAttrPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = yymsp[-2].minor.yy0; } break; case 30: /* coord ::= GML_COORD */ { yygotominor.yy0 = gml_coord (p_data, (void *) yymsp[0].minor.yy0); } break; case 32: /* extra_coord ::= coord extra_coord */ { ((gmlCoordPtr) yymsp[-1].minor.yy0)->Next = (gmlCoordPtr) yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } break; case 33: /* coord_chain ::= coord coord extra_coord */ { ((gmlCoordPtr) yymsp[-1].minor.yy0)->Next = (gmlCoordPtr) yymsp[0].minor.yy0; ((gmlCoordPtr) yymsp[-2].minor.yy0)->Next = (gmlCoordPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = yymsp[-2].minor.yy0; } break; default: /* (0) main ::= in */ yytestcase (yyruleno == 0); /* (1) in ::= */ yytestcase (yyruleno == 1); /* (2) in ::= in state GML_NEWLINE */ yytestcase (yyruleno == 2); /* (3) state ::= program */ yytestcase (yyruleno == 3); /* (4) program ::= gml_tree */ yytestcase (yyruleno == 4); break; }; yygoto = yyRuleInfo[yyruleno].lhs; yysize = yyRuleInfo[yyruleno].nrhs; yypParser->yyidx -= yysize; yyact = yy_find_reduce_action (yymsp[-yysize].stateno, (YYCODETYPE) yygoto); if (yyact < YYNSTATE) { #ifdef NDEBUG /* If we are not debugging and the reduce action popped at least ** one element off the stack, then we can push the new element back ** onto the stack here, and skip the stack overflow test in yy_shift(). ** That gives a significant speed improvement. */ if (yysize) { yypParser->yyidx++; yymsp -= yysize - 1; yymsp->stateno = (YYACTIONTYPE) yyact; yymsp->major = (YYCODETYPE) yygoto; yymsp->minor = yygotominor; } else #endif { yy_shift (yypParser, yyact, yygoto, &yygotominor); } } else { assert (yyact == YYNSTATE + YYNRULE + 1); yy_accept (yypParser); } } /* ** The following code executes when the parse fails */ #ifndef YYNOERRORRECOVERY static void yy_parse_failed (yyParser * yypParser /* The parser */ ) { ParseARG_FETCH; #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sFail!\n", yyTracePrompt); } #endif while (yypParser->yyidx >= 0) yy_pop_parser_stack (yypParser); /* Here code is inserted which will be executed whenever the ** parser fails */ ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ } #endif /* YYNOERRORRECOVERY */ /* ** The following code executes when a syntax error first occurs. */ static void yy_syntax_error (yyParser * yypParser, /* The parser */ int yymajor, /* The major type of the error token */ YYMINORTYPE yyminor /* The minor type of the error token */ ) { ParseARG_FETCH; #define TOKEN (yyminor.yy0) /* ** when the LEMON parser encounters an error ** then this global variable is set */ p_data->gml_parse_error = 1; p_data->result = NULL; ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ } /* ** The following is executed when the parser accepts */ static void yy_accept (yyParser * yypParser /* The parser */ ) { ParseARG_FETCH; #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sAccept!\n", yyTracePrompt); } #endif while (yypParser->yyidx >= 0) yy_pop_parser_stack (yypParser); /* Here code is inserted which will be executed whenever the ** parser accepts */ ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ } /* The main parser program. ** The first argument is a pointer to a structure obtained from ** "ParseAlloc" which describes the current state of the parser. ** The second argument is the major token number. The third is ** the minor token. The fourth optional argument is whatever the ** user wants (and specified in the grammar) and is available for ** use by the action routines. ** ** Inputs: **
    **
  • A pointer to the parser (an opaque structure.) **
  • The major token number. **
  • The minor token number. **
  • An option argument of a grammar-specified type. **
** ** Outputs: ** None. */ void Parse (void *yyp, /* The parser */ int yymajor, /* The major token code number */ ParseTOKENTYPE yyminor /* The value for the token */ ParseARG_PDECL /* Optional %extra_argument parameter */ ) { YYMINORTYPE yyminorunion; int yyact; /* The parser action. */ int yyendofinput; /* True if we are at the end of input */ #ifdef YYERRORSYMBOL int yyerrorhit = 0; /* True if yymajor has invoked an error */ #endif yyParser *yypParser; /* The parser */ /* (re)initialize the parser, if necessary */ yypParser = (yyParser *) yyp; if (yypParser->yyidx < 0) { #if YYSTACKDEPTH<=0 if (yypParser->yystksz <= 0) { /*memset(&yyminorunion, 0, sizeof(yyminorunion)); */ yyminorunion = yyzerominor; yyStackOverflow (yypParser, &yyminorunion); return; } #endif yypParser->yyidx = 0; yypParser->yyerrcnt = -1; yypParser->yystack[0].stateno = 0; yypParser->yystack[0].major = 0; } yyminorunion.yy0 = yyminor; yyendofinput = (yymajor == 0); ParseARG_STORE; #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sInput %s\n", yyTracePrompt, yyTokenName[yymajor]); } #endif do { yyact = yy_find_shift_action (yypParser, (YYCODETYPE) yymajor); if (yyact < YYNSTATE) { assert (!yyendofinput); /* Impossible to shift the $ token */ yy_shift (yypParser, yyact, yymajor, &yyminorunion); yypParser->yyerrcnt--; yymajor = YYNOCODE; } else if (yyact < YYNSTATE + YYNRULE) { yy_reduce (yypParser, yyact - YYNSTATE); } else { assert (yyact == YY_ERROR_ACTION); #ifdef YYERRORSYMBOL int yymx; #endif #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sSyntax Error!\n", yyTracePrompt); } #endif #ifdef YYERRORSYMBOL /* A syntax error has occurred. ** The response to an error depends upon whether or not the ** grammar defines an error token "ERROR". ** ** This is what we do if the grammar does define ERROR: ** ** * Call the %syntax_error function. ** ** * Begin popping the stack until we enter a state where ** it is legal to shift the error symbol, then shift ** the error symbol. ** ** * Set the error count to three. ** ** * Begin accepting and shifting new tokens. No new error ** processing will occur until three tokens have been ** shifted successfully. ** */ if (yypParser->yyerrcnt < 0) { yy_syntax_error (yypParser, yymajor, yyminorunion); } yymx = yypParser->yystack[yypParser->yyidx].major; if (yymx == YYERRORSYMBOL || yyerrorhit) { #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sDiscard input token %s\n", yyTracePrompt, yyTokenName[yymajor]); } #endif yy_destructor (yypParser, (YYCODETYPE) yymajor, &yyminorunion); yymajor = YYNOCODE; } else { while (yypParser->yyidx >= 0 && yymx != YYERRORSYMBOL && (yyact = yy_find_reduce_action (yypParser-> yystack[yypParser->yyidx]. stateno, YYERRORSYMBOL)) >= YYNSTATE) { yy_pop_parser_stack (yypParser); } if (yypParser->yyidx < 0 || yymajor == 0) { yy_destructor (yypParser, (YYCODETYPE) yymajor, &yyminorunion); yy_parse_failed (yypParser); yymajor = YYNOCODE; } else if (yymx != YYERRORSYMBOL) { YYMINORTYPE u2; u2.YYERRSYMDT = 0; yy_shift (yypParser, yyact, YYERRORSYMBOL, &u2); } } yypParser->yyerrcnt = 3; yyerrorhit = 1; #elif defined(YYNOERRORRECOVERY) /* If the YYNOERRORRECOVERY macro is defined, then do not attempt to ** do any kind of error recovery. Instead, simply invoke the syntax ** error routine and continue going as if nothing had happened. ** ** Applications can set this macro (for example inside %include) if ** they intend to abandon the parse upon the first syntax error seen. */ yy_syntax_error (yypParser, yymajor, yyminorunion); yy_destructor (yypParser, (YYCODETYPE) yymajor, &yyminorunion); yymajor = YYNOCODE; #else /* YYERRORSYMBOL is not defined */ /* This is what we do if the grammar does not define ERROR: ** ** * Report an error message, and throw away the input token. ** ** * If the input token is $, then fail the parse. ** ** As before, subsequent error messages are suppressed until ** three input tokens have been successfully shifted. */ if (yypParser->yyerrcnt <= 0) { yy_syntax_error (yypParser, yymajor, yyminorunion); } yypParser->yyerrcnt = 3; yy_destructor (yypParser, (YYCODETYPE) yymajor, &yyminorunion); if (yyendofinput) { yy_parse_failed (yypParser); } yymajor = YYNOCODE; #endif } } while (yymajor != YYNOCODE && yypParser->yyidx >= 0); return; } libspatialite-4.1.1/src/gaiageo/gg_extras.c0000664000175000017500000007341412163502133015605 00000000000000/* gg_extras.c -- Gaia extra functions support version 4.1, 2013 May 8 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2012-2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include #if defined(_WIN32) && !defined(__MINGW32__) static double rint (double x) { return floor (x + 0.5); } #endif static void auxGridSnapPoint (int dimension_model, gaiaPointPtr pt, gaiaGeomCollPtr result, double origin_x, double origin_y, double origin_z, double origin_m, double size_x, double size_y, double size_z, double size_m) { /* snapping a Point to a regular Grid */ double x = pt->X; double y = pt->Y; double z = 0.0; double m = 0.0; int has_z = 0; int has_m = 0; gaiaPointPtr ptx; if (pt == NULL || result == NULL) return; if (dimension_model == GAIA_XY_Z || dimension_model == GAIA_XY_Z_M) has_z = 1; if (dimension_model == GAIA_XY_M || dimension_model == GAIA_XY_Z_M) has_m = 1; if (has_z) z = pt->Z; if (has_m) m = pt->M; /* snapping coords to the given grid */ if (size_x > 0.0) x = rint ((x - origin_x) / size_x) * size_x + origin_x; if (size_y > 0.0) y = rint ((y - origin_y) / size_y) * size_y + origin_y; if (has_z && size_z > 0.0) z = rint ((z - origin_z) / size_z) * size_z + origin_z; if (has_m && size_m > 0.0) m = rint ((m - origin_m) / size_m) * size_m + origin_m; ptx = result->FirstPoint; while (ptx) { /* checking if already defined */ if (has_z && has_m) { if (ptx->X == x && ptx->Y == y && ptx->Z == z && ptx->M == m) return; } else if (has_z) { if (ptx->X == x && ptx->Y == y && ptx->Z == z) return; } else if (has_m) { if (ptx->X == x && ptx->Y == y && ptx->M == m) return; } else { if (ptx->X == x && ptx->Y == y) return; } ptx = ptx->Next; } /* inserting the snapped Point into the result Geometry */ if (has_z && has_m) gaiaAddPointToGeomCollXYZM (result, x, y, z, m); else if (has_z) gaiaAddPointToGeomCollXYZ (result, x, y, z); else if (has_m) gaiaAddPointToGeomCollXYM (result, x, y, m); else gaiaAddPointToGeomColl (result, x, y); } static void auxGridSnapLinestring (gaiaLinestringPtr ln, gaiaGeomCollPtr result, double origin_x, double origin_y, double origin_z, double origin_m, double size_x, double size_y, double size_z, double size_m) { /* snapping a Linestring to a regular Grid */ double x; double y; double z; double m; int has_z = 0; int has_m = 0; int iv; gaiaDynamicLinePtr dyn; gaiaPointPtr pt; gaiaLinestringPtr lnx; int count = 0; if (ln == NULL || result == NULL) return; if (ln->DimensionModel == GAIA_XY_Z || ln->DimensionModel == GAIA_XY_Z_M) has_z = 1; if (ln->DimensionModel == GAIA_XY_M || ln->DimensionModel == GAIA_XY_Z_M) has_m = 1; dyn = gaiaAllocDynamicLine (); for (iv = 0; iv < ln->Points; iv++) { /* snapping each Vertex to the given grid */ int to_be_inserted = 0; z = 0.0; m = 0.0; if (has_z && has_m) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); } else if (has_z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); } else if (has_m) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); } /* snapping coords to the given grid */ if (size_x > 0.0) x = rint ((x - origin_x) / size_x) * size_x + origin_x; if (size_y > 0.0) y = rint ((y - origin_y) / size_y) * size_y + origin_y; if (has_z && size_z > 0.0) z = rint ((z - origin_z) / size_z) * size_z + origin_z; if (has_m && size_m > 0.0) m = rint ((m - origin_m) / size_m) * size_m + origin_m; if (dyn->Last == NULL) to_be_inserted = 1; else { /* skipping repeated points */ pt = dyn->Last; if (has_z && has_m) { if (pt->X == x && pt->Y == y && pt->Z == z && pt->M == m) ; else to_be_inserted = 1; } else if (has_z) { if (pt->X == x && pt->Y == y && pt->Z == z) ; else to_be_inserted = 1; } else if (has_m) { if (pt->X == x && pt->Y == y && pt->M == m) ; else to_be_inserted = 1; } else { if (pt->X == x && pt->Y == y) ; else to_be_inserted = 1; } } if (to_be_inserted) { if (has_z && has_m) gaiaAppendPointZMToDynamicLine (dyn, x, y, z, m); else if (has_z) gaiaAppendPointZToDynamicLine (dyn, x, y, z); else if (has_m) gaiaAppendPointMToDynamicLine (dyn, x, y, m); else gaiaAppendPointToDynamicLine (dyn, x, y); } } /* checking for validity */ pt = dyn->First; while (pt) { /* counting how many points are there */ count++; pt = pt->Next; } if (count < 2) { /* skipping any collapsed line */ gaiaFreeDynamicLine (dyn); return; } /* inserting into the result Geometry */ lnx = gaiaAddLinestringToGeomColl (result, count); iv = 0; pt = dyn->First; while (pt) { /* copying points */ if (lnx->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (lnx->Coords, iv, pt->X, pt->Y, pt->Z); } else if (lnx->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (lnx->Coords, iv, pt->X, pt->Y, pt->M); } else if (lnx->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (lnx->Coords, iv, pt->X, pt->Y, pt->Z, pt->M); } else { gaiaSetPoint (lnx->Coords, iv, pt->X, pt->Y); } iv++; pt = pt->Next; } gaiaFreeDynamicLine (dyn); } static gaiaDynamicLinePtr auxGridSnapRing (gaiaRingPtr rng, double origin_x, double origin_y, double origin_z, double origin_m, double size_x, double size_y, double size_z, double size_m) { /* snapping a Ring to a regular Grid */ double x; double y; double z; double m; int has_z = 0; int has_m = 0; int iv; gaiaDynamicLinePtr dyn; gaiaPointPtr pt0; gaiaPointPtr pt; int count = 0; if (rng == NULL) return NULL; if (rng->DimensionModel == GAIA_XY_Z || rng->DimensionModel == GAIA_XY_Z_M) has_z = 1; if (rng->DimensionModel == GAIA_XY_M || rng->DimensionModel == GAIA_XY_Z_M) has_m = 1; dyn = gaiaAllocDynamicLine (); for (iv = 0; iv < rng->Points; iv++) { /* snapping each Vertex to the given grid */ int to_be_inserted = 0; z = 0.0; m = 0.0; if (has_z && has_m) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); } else if (has_z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); } else if (has_m) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); } /* snapping coords to the given grid */ if (size_x > 0.0) x = rint ((x - origin_x) / size_x) * size_x + origin_x; if (size_y > 0.0) y = rint ((y - origin_y) / size_y) * size_y + origin_y; if (has_z && size_z > 0.0) z = rint ((z - origin_z) / size_z) * size_z + origin_z; if (has_m && size_m > 0.0) m = rint ((m - origin_m) / size_m) * size_m + origin_m; if (dyn->Last == NULL) to_be_inserted = 1; else { /* skipping repeated points */ pt = dyn->Last; if (has_z && has_m) { if (pt->X == x && pt->Y == y && pt->Z == z && pt->M == m) ; else to_be_inserted = 1; } else if (has_z) { if (pt->X == x && pt->Y == y && pt->Z == z) ; else to_be_inserted = 1; } else if (has_m) { if (pt->X == x && pt->Y == y && pt->M == m) ; else to_be_inserted = 1; } else { if (pt->X == x && pt->Y == y) ; else to_be_inserted = 1; } } if (to_be_inserted) { if (has_z && has_m) gaiaAppendPointZMToDynamicLine (dyn, x, y, z, m); else if (has_z) gaiaAppendPointZToDynamicLine (dyn, x, y, z); else if (has_m) gaiaAppendPointMToDynamicLine (dyn, x, y, m); else gaiaAppendPointToDynamicLine (dyn, x, y); } } /* ensuring for Ring closure */ pt0 = dyn->First; pt = dyn->Last; if (has_z && has_m) { if (pt0->X == pt->X && pt0->Y == pt->Y && pt0->Z == pt->Z && pt0->M == pt->M) ; else gaiaAppendPointZMToDynamicLine (dyn, pt->X, pt->Y, pt->Z, pt->M); } else if (has_z) { if (pt0->X == pt->X && pt0->Y == pt->Y && pt0->Z == pt->Z) ; else gaiaAppendPointZToDynamicLine (dyn, pt->X, pt->Y, pt->Z); } else if (has_m) { if (pt0->X == pt->X && pt0->Y == pt->Y && pt0->M == pt->M) ; else gaiaAppendPointMToDynamicLine (dyn, pt->X, pt->Y, pt->M); } else { if (pt0->X == pt->X && pt0->Y == pt->Y) ; else gaiaAppendPointToDynamicLine (dyn, pt->X, pt->Y); } /* checking for validity */ pt = dyn->First; while (pt) { /* counting how many points are there */ count++; pt = pt->Next; } if (count < 4) { /* skipping any collapsed ring */ gaiaFreeDynamicLine (dyn); return NULL; } return dyn; } static void auxGridSnapPolygon (gaiaPolygonPtr pg, gaiaGeomCollPtr result, double origin_x, double origin_y, double origin_z, double origin_m, double size_x, double size_y, double size_z, double size_m) { /* snapping a Polygon to a regular Grid */ int ib; int holes = 0; int count; int next_hole = 0; int iv; gaiaRingPtr rng; gaiaPolygonPtr pgx; gaiaPointPtr pt; gaiaDynamicLinePtr rng_ext; gaiaDynamicLinePtr dyn; gaiaDynamicLinePtr *rng_ints = NULL; if (pg == NULL || result == NULL) return; /* snapping the Exterior Ring */ rng = pg->Exterior; rng_ext = auxGridSnapRing (rng, origin_x, origin_y, origin_z, origin_m, size_x, size_y, size_z, size_m); if (rng_ext == NULL) /* skipping any collaped Polygon */ return; if (pg->NumInteriors) { /* snapping any Interior Ring */ rng_ints = malloc (sizeof (gaiaRingPtr *) * pg->NumInteriors); for (ib = 0; ib < pg->NumInteriors; ib++) { rng = pg->Interiors + ib; *(rng_ints + ib) = auxGridSnapRing (rng, origin_x, origin_y, origin_z, origin_m, size_x, size_y, size_z, size_m); if (*(rng_ints + ib) != NULL) holes++; } } /* inserting into the result Geometry */ pt = rng_ext->First; count = 0; while (pt) { /* counting how many points are in the Exterior Ring */ count++; pt = pt->Next; } pgx = gaiaAddPolygonToGeomColl (result, count, holes); rng = pgx->Exterior; iv = 0; pt = rng_ext->First; while (pt) { /* copying Exterior Ring points */ if (rng->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (rng->Coords, iv, pt->X, pt->Y, pt->Z); } else if (rng->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (rng->Coords, iv, pt->X, pt->Y, pt->M); } else if (rng->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (rng->Coords, iv, pt->X, pt->Y, pt->Z, pt->M); } else { gaiaSetPoint (rng->Coords, iv, pt->X, pt->Y); } iv++; pt = pt->Next; } if (holes > 0) { /* setting up any not-collapsed Hole */ for (ib = 0; ib < pg->NumInteriors; ib++) { if (*(rng_ints + ib) == NULL) continue; dyn = *(rng_ints + ib); pt = dyn->First; count = 0; while (pt) { /* counting how many points are in the Exterior Ring */ count++; pt = pt->Next; } rng = gaiaAddInteriorRing (pgx, next_hole++, count); iv = 0; pt = dyn->First; while (pt) { /* copying Interior Ring points */ if (rng->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (rng->Coords, iv, pt->X, pt->Y, pt->Z); } else if (rng->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (rng->Coords, iv, pt->X, pt->Y, pt->M); } else if (rng->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (rng->Coords, iv, pt->X, pt->Y, pt->Z, pt->M); } else { gaiaSetPoint (rng->Coords, iv, pt->X, pt->Y); } iv++; pt = pt->Next; } } } /* memory clean-up */ gaiaFreeDynamicLine (rng_ext); if (rng_ints) { for (ib = 0; ib < pg->NumInteriors; ib++) { dyn = *(rng_ints + ib); if (dyn) gaiaFreeDynamicLine (dyn); } free (rng_ints); } } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSnapToGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y, double origin_z, double origin_m, double size_x, double size_y, double size_z, double size_m) { /* creating a Geometry snapped to a regular Grid */ gaiaGeomCollPtr result; int pts = 0; int lns = 0; int pgs = 0; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; if (!geom) return NULL; /* creating the output Geometry */ if (geom->DimensionModel == GAIA_XY_Z) result = gaiaAllocGeomCollXYZ (); else if (geom->DimensionModel == GAIA_XY_M) result = gaiaAllocGeomCollXYM (); else if (geom->DimensionModel == GAIA_XY_Z_M) result = gaiaAllocGeomCollXYZM (); else result = gaiaAllocGeomColl (); /* snapping elementary Geometries to the given Grid */ pt = geom->FirstPoint; while (pt) { /* snapping POINTs */ auxGridSnapPoint (geom->DimensionModel, pt, result, origin_x, origin_y, origin_z, origin_m, size_x, size_y, size_z, size_m); pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { /* snapping LINESTRINGs */ auxGridSnapLinestring (ln, result, origin_x, origin_y, origin_z, origin_m, size_x, size_y, size_z, size_m); ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { /* snapping POLYGONs */ auxGridSnapPolygon (pg, result, origin_x, origin_y, origin_z, origin_m, size_x, size_y, size_z, size_m); pg = pg->Next; } /* validating the output Geometry */ pt = result->FirstPoint; while (pt) { /* counting how many POINTs are there */ pts++; pt = pt->Next; } ln = result->FirstLinestring; while (ln) { /* counting how many LINESTRINGs are there */ lns++; ln = ln->Next; } pg = result->FirstPolygon; while (pg) { /* counting how many POLYGONs are there */ pgs++; pg = pg->Next; } if (pts == 0 && lns == 0 && pgs == 0) { /* empty result */ gaiaFreeGeomColl (result); return NULL; } /* final adjustment */ result->Srid = geom->Srid; if (pts == 1 && lns == 0 && pgs == 0) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) result->DeclaredType = GAIA_GEOMETRYCOLLECTION; else if (geom->DeclaredType == GAIA_MULTIPOINT) result->DeclaredType = GAIA_MULTIPOINT; else result->DeclaredType = GAIA_POINT; } else if (pts == 0 && lns == 1 && pgs == 0) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) result->DeclaredType = GAIA_GEOMETRYCOLLECTION; else if (geom->DeclaredType == GAIA_MULTILINESTRING) result->DeclaredType = GAIA_MULTILINESTRING; else result->DeclaredType = GAIA_LINESTRING; } else if (pts == 0 && lns == 0 && pgs == 1) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) result->DeclaredType = GAIA_GEOMETRYCOLLECTION; else if (geom->DeclaredType == GAIA_MULTIPOLYGON) result->DeclaredType = GAIA_MULTIPOLYGON; else result->DeclaredType = GAIA_POLYGON; } else if (pts > 1 && lns == 0 && pgs == 0) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) result->DeclaredType = GAIA_GEOMETRYCOLLECTION; else result->DeclaredType = GAIA_MULTIPOINT; } else if (pts == 0 && lns > 1 && pgs == 0) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) result->DeclaredType = GAIA_GEOMETRYCOLLECTION; else result->DeclaredType = GAIA_MULTILINESTRING; } else if (pts == 0 && lns == 0 && pgs > 1) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) result->DeclaredType = GAIA_GEOMETRYCOLLECTION; else result->DeclaredType = GAIA_MULTIPOLYGON; } else result->DeclaredType = GAIA_GEOMETRYCOLLECTION; return result; } #ifdef GEOS_ADVANCED /* GEOS advanced features */ static void get_grid_bbox (gaiaGeomCollPtr geom, double *min_x, double *min_y, double *max_x, double *max_y) { /* extracting the BBOX representing the input geometry */ gaiaMbrGeometry (geom); *min_x = geom->MinX; *min_y = geom->MinY; *max_x = geom->MaxX; *max_y = geom->MaxY; } static void get_grid_base (double min_x, double min_y, double origin_x, double origin_y, double size, double *base_x, double *base_y) { /* determining the grid base-point [MinX/MinY] */ double x = rint ((min_x - origin_x) / size) * size + origin_x; double y = rint ((min_y - origin_y) / size) * size + origin_y; if (x > min_x) *base_x = x - size; else *base_x = x; if (y > min_y) *base_y = y - size; else *base_y = y; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSquareGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y, double size, int edges_only) { /* creating a regular grid [Square cells] */ double min_x; double min_y; double max_x; double max_y; double base_x; double base_y; double x1; double y1; double x2; double y2; double x3; double y3; double x4; double y4; int count = 0; gaiaPolygonPtr pg; gaiaRingPtr rng; gaiaLinestringPtr ln; gaiaGeomCollPtr result = NULL; gaiaGeomCollPtr item = NULL; if (size <= 0.0) return NULL; result = gaiaAllocGeomColl (); result->Srid = geom->Srid; get_grid_bbox (geom, &min_x, &min_y, &max_x, &max_y); get_grid_base (min_x, min_y, origin_x, origin_y, size, &base_x, &base_y); while (base_y < max_y) { /* looping on grid rows */ x1 = base_x; y1 = base_y; x2 = x1 + size; y2 = y1; x3 = x2; y3 = y1 + size; x4 = x1; y4 = y3; while (x1 < max_x) { /* looping on grid columns */ item = gaiaAllocGeomColl (); pg = gaiaAddPolygonToGeomColl (item, 5, 0); rng = pg->Exterior; gaiaSetPoint (rng->Coords, 0, x1, y1); gaiaSetPoint (rng->Coords, 1, x2, y2); gaiaSetPoint (rng->Coords, 2, x3, y3); gaiaSetPoint (rng->Coords, 3, x4, y4); gaiaSetPoint (rng->Coords, 4, x1, y1); gaiaMbrGeometry (item); if (gaiaGeomCollIntersects (geom, item) == 1) { /* ok, inserting a valid cell */ count++; if (edges_only) { /* multilinestring */ ln = gaiaAddLinestringToGeomColl (result, 2); gaiaSetPoint (ln->Coords, 0, x1, y1); gaiaSetPoint (ln->Coords, 1, x2, y2); ln = gaiaAddLinestringToGeomColl (result, 2); gaiaSetPoint (ln->Coords, 0, x2, y2); gaiaSetPoint (ln->Coords, 1, x3, y3); ln = gaiaAddLinestringToGeomColl (result, 2); gaiaSetPoint (ln->Coords, 0, x3, y3); gaiaSetPoint (ln->Coords, 1, x4, y4); ln = gaiaAddLinestringToGeomColl (result, 2); gaiaSetPoint (ln->Coords, 0, x4, y4); gaiaSetPoint (ln->Coords, 1, x1, y1); } else { /* polygon */ pg = gaiaAddPolygonToGeomColl (result, 5, 0); rng = pg->Exterior; gaiaSetPoint (rng->Coords, 0, x1, y1); gaiaSetPoint (rng->Coords, 1, x2, y2); gaiaSetPoint (rng->Coords, 2, x3, y3); gaiaSetPoint (rng->Coords, 3, x4, y4); gaiaSetPoint (rng->Coords, 4, x1, y1); } } gaiaFreeGeomColl (item); x1 += size; x2 += size; x3 += size; x4 += size; } base_y += size; } /* final check */ if (!count) { /* empty grid */ gaiaFreeGeomColl (result); return NULL; } if (!edges_only) { result->DeclaredType = GAIA_MULTIPOLYGON; return result; } item = result; result = gaiaUnaryUnion (item); gaiaFreeGeomColl (item); result->Srid = geom->Srid; result->DeclaredType = GAIA_LINESTRING; return result; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTriangularGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y, double size, int edges_only) { /* creating a regular grid [Triangular cells] */ double min_x; double min_y; double max_x; double max_y; double base_x; double base_y; double x1; double y1; double x2; double y2; double x3; double y3; double x4; double y4; int count = 0; int odd_even = 0; gaiaPolygonPtr pg; gaiaRingPtr rng; gaiaLinestringPtr ln; gaiaGeomCollPtr result = NULL; gaiaGeomCollPtr item = NULL; if (size <= 0.0) return NULL; result = gaiaAllocGeomColl (); result->Srid = geom->Srid; get_grid_bbox (geom, &min_x, &min_y, &max_x, &max_y); get_grid_base (min_x, min_y, origin_x, origin_y, size, &base_x, &base_y); while (base_y < max_y) { /* looping on grid rows */ if (odd_even) x1 = base_x - (size / 2.0); else x1 = base_x; y1 = base_y; x2 = x1 + size; y2 = y1; x3 = x1 + (size / 2.0); y3 = y1 + (size * sin (3.14159265358979323846 / 3.0)); x4 = x3 + size; y4 = y3; while (x1 < max_x) { /* looping on grid columns */ item = gaiaAllocGeomColl (); pg = gaiaAddPolygonToGeomColl (item, 4, 0); rng = pg->Exterior; gaiaSetPoint (rng->Coords, 0, x1, y1); gaiaSetPoint (rng->Coords, 1, x2, y2); gaiaSetPoint (rng->Coords, 2, x3, y3); gaiaSetPoint (rng->Coords, 3, x1, y1); gaiaMbrGeometry (item); if (gaiaGeomCollIntersects (geom, item) == 1) { /* ok, inserting a valid cell [pointing upside] */ count++; if (edges_only) { /* multilinestring */ ln = gaiaAddLinestringToGeomColl (result, 2); gaiaSetPoint (ln->Coords, 0, x1, y1); gaiaSetPoint (ln->Coords, 1, x2, y2); ln = gaiaAddLinestringToGeomColl (result, 2); gaiaSetPoint (ln->Coords, 0, x2, y2); gaiaSetPoint (ln->Coords, 1, x3, y3); ln = gaiaAddLinestringToGeomColl (result, 2); gaiaSetPoint (ln->Coords, 0, x3, y3); gaiaSetPoint (ln->Coords, 1, x1, y1); } else { /* polygon */ pg = gaiaAddPolygonToGeomColl (result, 4, 0); rng = pg->Exterior; gaiaSetPoint (rng->Coords, 0, x1, y1); gaiaSetPoint (rng->Coords, 1, x2, y2); gaiaSetPoint (rng->Coords, 2, x3, y3); gaiaSetPoint (rng->Coords, 3, x1, y1); } } gaiaFreeGeomColl (item); item = gaiaAllocGeomColl (); pg = gaiaAddPolygonToGeomColl (item, 4, 0); rng = pg->Exterior; gaiaSetPoint (rng->Coords, 0, x3, y3); gaiaSetPoint (rng->Coords, 1, x2, y2); gaiaSetPoint (rng->Coords, 2, x4, y4); gaiaSetPoint (rng->Coords, 3, x3, y3); gaiaMbrGeometry (item); if (gaiaGeomCollIntersects (geom, item) == 1) { /* ok, inserting a valid cell [pointing downside] */ count++; if (edges_only) { /* multilinestring */ ln = gaiaAddLinestringToGeomColl (result, 2); gaiaSetPoint (ln->Coords, 0, x1, y1); gaiaSetPoint (ln->Coords, 1, x2, y2); ln = gaiaAddLinestringToGeomColl (result, 2); gaiaSetPoint (ln->Coords, 0, x2, y2); gaiaSetPoint (ln->Coords, 1, x3, y3); ln = gaiaAddLinestringToGeomColl (result, 2); gaiaSetPoint (ln->Coords, 0, x3, y3); gaiaSetPoint (ln->Coords, 1, x1, y1); } else { /* polygon */ pg = gaiaAddPolygonToGeomColl (result, 4, 0); rng = pg->Exterior; gaiaSetPoint (rng->Coords, 0, x3, y3); gaiaSetPoint (rng->Coords, 1, x2, y2); gaiaSetPoint (rng->Coords, 2, x4, y4); gaiaSetPoint (rng->Coords, 3, x3, y3); } } gaiaFreeGeomColl (item); x1 += size; x2 += size; x3 += size; x4 += size; } base_y += (size * sin (3.14159265358979323846 / 3.0)); if (odd_even) odd_even = 0; else odd_even = 1; } /* final check */ if (!count) { /* empty grid */ gaiaFreeGeomColl (result); return NULL; } if (!edges_only) { result->DeclaredType = GAIA_MULTIPOLYGON; return result; } item = result; result = gaiaUnaryUnion (item); gaiaFreeGeomColl (item); result->Srid = geom->Srid; result->DeclaredType = GAIA_LINESTRING; return result; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaHexagonalGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y, double size, int edges_only) { /* creating a regular grid [Hexagonal cells] */ double min_x; double min_y; double max_x; double max_y; double base_x; double base_y; double x1; double y1; double x2; double y2; double x3; double y3; double x4; double y4; double x5; double y5; double x6; double y6; int count = 0; int odd_even = 0; gaiaPolygonPtr pg; gaiaRingPtr rng; gaiaLinestringPtr ln; gaiaGeomCollPtr result = NULL; gaiaGeomCollPtr item = NULL; double shift; if (size <= 0.0) return NULL; shift = size * sin (3.14159265358979323846 / 3.0); result = gaiaAllocGeomColl (); result->Srid = geom->Srid; get_grid_bbox (geom, &min_x, &min_y, &max_x, &max_y); get_grid_base (min_x, min_y, origin_x, origin_y, size, &base_x, &base_y); while ((base_y - shift) < max_y) { /* looping on grid rows */ if (odd_even) x1 = base_x - (size + (size / 2.0)); else x1 = base_x; y1 = base_y; x2 = x1 + (size / 2.0); y2 = y1 - shift; x3 = x2 + size; y3 = y2; x4 = x1 + (size * 2.0); y4 = y1; x5 = x3; y5 = y1 + shift; x6 = x2; y6 = y5; while (x1 < max_x) { /* looping on grid columns */ item = gaiaAllocGeomColl (); pg = gaiaAddPolygonToGeomColl (item, 7, 0); rng = pg->Exterior; gaiaSetPoint (rng->Coords, 0, x1, y1); gaiaSetPoint (rng->Coords, 1, x2, y2); gaiaSetPoint (rng->Coords, 2, x3, y3); gaiaSetPoint (rng->Coords, 3, x4, y4); gaiaSetPoint (rng->Coords, 4, x5, y5); gaiaSetPoint (rng->Coords, 5, x6, y6); gaiaSetPoint (rng->Coords, 6, x1, y1); gaiaMbrGeometry (item); if (gaiaGeomCollIntersects (geom, item) == 1) { /* ok, inserting a valid cell */ count++; if (edges_only) { /* multilinestring */ ln = gaiaAddLinestringToGeomColl (result, 2); gaiaSetPoint (ln->Coords, 0, x1, y1); gaiaSetPoint (ln->Coords, 1, x2, y2); ln = gaiaAddLinestringToGeomColl (result, 2); gaiaSetPoint (ln->Coords, 0, x2, y2); gaiaSetPoint (ln->Coords, 1, x3, y3); ln = gaiaAddLinestringToGeomColl (result, 2); gaiaSetPoint (ln->Coords, 0, x3, y3); gaiaSetPoint (ln->Coords, 1, x4, y4); ln = gaiaAddLinestringToGeomColl (result, 2); gaiaSetPoint (ln->Coords, 0, x4, y4); gaiaSetPoint (ln->Coords, 1, x5, y5); ln = gaiaAddLinestringToGeomColl (result, 2); gaiaSetPoint (ln->Coords, 0, x5, y5); gaiaSetPoint (ln->Coords, 1, x6, y6); ln = gaiaAddLinestringToGeomColl (result, 2); gaiaSetPoint (ln->Coords, 0, x6, y6); gaiaSetPoint (ln->Coords, 1, x1, y1); } else { /* polygon */ pg = gaiaAddPolygonToGeomColl (result, 7, 0); rng = pg->Exterior; gaiaSetPoint (rng->Coords, 0, x1, y1); gaiaSetPoint (rng->Coords, 1, x2, y2); gaiaSetPoint (rng->Coords, 2, x3, y3); gaiaSetPoint (rng->Coords, 3, x4, y4); gaiaSetPoint (rng->Coords, 4, x5, y5); gaiaSetPoint (rng->Coords, 5, x6, y6); gaiaSetPoint (rng->Coords, 6, x1, y1); } } gaiaFreeGeomColl (item); x1 += size * 3.0; x2 += size * 3.0; x3 += size * 3.0; x4 += size * 3.0; x5 += size * 3.0; x6 += size * 3.0; } base_y += (size * sin (3.14159265358979323846 / 3.0)); if (odd_even) odd_even = 0; else odd_even = 1; } /* final check */ if (!count) { /* empty grid */ gaiaFreeGeomColl (result); return NULL; } if (!edges_only) { result->DeclaredType = GAIA_MULTIPOLYGON; return result; } item = result; result = gaiaUnaryUnion (item); gaiaFreeGeomColl (item); result->Srid = geom->Srid; result->DeclaredType = GAIA_LINESTRING; return result; } #endif /* end including GEOS */ libspatialite-4.1.1/src/gaiageo/Kml.c0000664000175000017500000011120512163502133014334 00000000000000/* Driver template for the LEMON parser generator. ** The author disclaims copyright to this source code. */ /* First off, code is included that follows the "include" declaration ** in the input grammar file. */ #include /* Next is all token values, in a form suitable for use by makeheaders. ** This section will be null unless lemon is run with the -m switch. */ /* ** These constants (all generated automatically by the parser generator) ** specify the various kinds of tokens (terminals) that the parser ** understands. ** ** Each symbol here is a terminal symbol in the grammar. */ /* Make sure the INTERFACE macro is defined. */ #ifndef INTERFACE #define INTERFACE 1 #endif /* The next thing included is series of defines which control ** various aspects of the generated parser. ** YYCODETYPE is the data type used for storing terminal ** and nonterminal numbers. "unsigned char" is ** used if there are fewer than 250 terminals ** and nonterminals. "int" is used otherwise. ** YYNOCODE is a number of type YYCODETYPE which corresponds ** to no legal terminal or nonterminal number. This ** number is used to fill in empty slots of the hash ** table. ** YYFALLBACK If defined, this indicates that one or more tokens ** have fall-back values which should be used if the ** original value of the token will not parse. ** YYACTIONTYPE is the data type used for storing terminal ** and nonterminal numbers. "unsigned char" is ** used if there are fewer than 250 rules and ** states combined. "int" is used otherwise. ** ParseTOKENTYPE is the data type used for minor tokens given ** directly to the parser from the tokenizer. ** YYMINORTYPE is the data type used for all minor tokens. ** This is typically a union of many types, one of ** which is ParseTOKENTYPE. The entry in the union ** for base tokens is called "yy0". ** YYSTACKDEPTH is the maximum depth of the parser's stack. If ** zero the stack is dynamically sized using realloc() ** ParseARG_SDECL A static variable declaration for the %extra_argument ** ParseARG_PDECL A parameter declaration for the %extra_argument ** ParseARG_STORE Code to store %extra_argument into yypParser ** ParseARG_FETCH Code to extract %extra_argument from yypParser ** YYNSTATE the combined number of states. ** YYNRULE the number of rules in the grammar ** YYERRORSYMBOL is the code number of the error symbol. If not ** defined, then do no error processing. */ #define YYCODETYPE unsigned char #define YYNOCODE 28 #define YYACTIONTYPE unsigned char #define ParseTOKENTYPE void * typedef union { int yyinit; ParseTOKENTYPE yy0; } YYMINORTYPE; #ifndef YYSTACKDEPTH #define YYSTACKDEPTH 1000000 #endif #define ParseARG_SDECL struct kml_data *p_data ; #define ParseARG_PDECL , struct kml_data *p_data #define ParseARG_FETCH struct kml_data *p_data = yypParser->p_data #define ParseARG_STORE yypParser->p_data = p_data #define YYNSTATE 49 #define YYNRULE 34 #define YY_NO_ACTION (YYNSTATE+YYNRULE+2) #define YY_ACCEPT_ACTION (YYNSTATE+YYNRULE+1) #define YY_ERROR_ACTION (YYNSTATE+YYNRULE) /* The yyzerominor constant is used to initialize instances of ** YYMINORTYPE objects to zero. */ static const YYMINORTYPE yyzerominor = { 0 }; /* Define the yytestcase() macro to be a no-op if is not already defined ** otherwise. ** ** Applications can choose to define yytestcase() in the %include section ** to a macro that can assist in verifying code coverage. For production ** code the yytestcase() macro should be turned off. But it is useful ** for testing. */ #ifndef yytestcase #define yytestcase(X) #endif /* Next are the tables used to determine what action to take based on the ** current state and lookahead token. These tables are used to implement ** functions that take a state number and lookahead value and return an ** action integer. ** ** Suppose the action integer is N. Then the action is determined as ** follows ** ** 0 <= N < YYNSTATE Shift N. That is, push the lookahead ** token onto the stack and goto state N. ** ** YYNSTATE <= N < YYNSTATE+YYNRULE Reduce by rule N-YYNSTATE. ** ** N == YYNSTATE+YYNRULE A syntax error has occurred. ** ** N == YYNSTATE+YYNRULE+1 The parser accepts its input. ** ** N == YYNSTATE+YYNRULE+2 No such action. Denotes unused ** slots in the yy_action[] table. ** ** The action table is constructed as a single large table named yy_action[]. ** Given state S and lookahead X, the action is computed as ** ** yy_action[ yy_shift_ofst[S] + X ] ** ** If the index value yy_shift_ofst[S]+X is out of range or if the value ** yy_lookahead[yy_shift_ofst[S]+X] is not equal to X or if yy_shift_ofst[S] ** is equal to YY_SHIFT_USE_DFLT, it means that the action is not in the table ** and that yy_default[S] should be used instead. ** ** The formula above is for computing the action when the lookahead is ** a terminal symbol. If the lookahead is a non-terminal (as occurs after ** a reduce action) then the yy_reduce_ofst[] array is used in place of ** the yy_shift_ofst[] array and YY_REDUCE_USE_DFLT is used in place of ** YY_SHIFT_USE_DFLT. ** ** The following are the tables generated in this section: ** ** yy_action[] A single table containing all actions. ** yy_lookahead[] A table containing the lookahead for each entry in ** yy_action. Used to detect hash collisions. ** yy_shift_ofst[] For each state, the offset into yy_action for ** shifting terminals. ** yy_reduce_ofst[] For each state, the offset into yy_action for ** shifting non-terminals after a reduce. ** yy_default[] Default action for each state. */ static const YYACTIONTYPE yy_action[] = { /* 0 */ 20, 28, 29, 4, 48, 5, 3, 3, 5, 5, /* 10 */ 42, 84, 1, 42, 42, 47, 46, 2, 10, 5, /* 20 */ 21, 12, 32, 23, 42, 38, 22, 6, 49, 23, /* 30 */ 13, 19, 14, 15, 35, 8, 8, 10, 25, 11, /* 40 */ 18, 34, 33, 45, 37, 16, 40, 17, 41, 14, /* 50 */ 9, 23, 43, 7, 45, 27, 30, 26, 31, 36, /* 60 */ 39, 44, 24, }; static const YYCODETYPE yy_lookahead[] = { /* 0 */ 12, 13, 14, 15, 16, 17, 15, 15, 17, 17, /* 10 */ 22, 10, 11, 22, 22, 24, 24, 15, 18, 17, /* 20 */ 2, 3, 8, 5, 22, 25, 2, 3, 0, 5, /* 30 */ 18, 19, 4, 20, 21, 20, 20, 18, 2, 3, /* 40 */ 2, 26, 26, 5, 25, 20, 21, 20, 21, 4, /* 50 */ 18, 5, 23, 20, 5, 1, 3, 23, 3, 7, /* 60 */ 3, 3, 6, }; #define YY_SHIFT_USE_DFLT (-1) #define YY_SHIFT_MAX 26 static const signed char yy_shift_ofst[] = { /* 0 */ -1, 28, 45, 45, 45, 18, 14, 14, 14, 46, /* 10 */ 46, 14, 14, 24, 38, 14, 14, 14, 49, 36, /* 20 */ 54, 53, 55, 56, 52, 57, 58, }; #define YY_REDUCE_USE_DFLT (-13) #define YY_REDUCE_MAX 18 static const signed char yy_reduce_ofst[] = { /* 0 */ 1, -12, -9, -8, 2, 12, 13, 15, 16, 0, /* 10 */ 19, 25, 27, 32, 29, 33, 33, 33, 34, }; static const YYACTIONTYPE yy_default[] = { /* 0 */ 50, 83, 72, 72, 54, 83, 60, 80, 80, 76, /* 10 */ 76, 61, 59, 83, 83, 64, 66, 62, 83, 83, /* 20 */ 83, 83, 83, 83, 83, 83, 83, 51, 52, 53, /* 30 */ 56, 57, 79, 81, 82, 65, 75, 77, 78, 58, /* 40 */ 67, 63, 68, 69, 70, 71, 73, 74, 55, }; #define YY_SZ_ACTTAB (int)(sizeof(yy_action)/sizeof(yy_action[0])) /* The next table maps tokens into fallback tokens. If a construct ** like the following: ** ** %fallback ID X Y Z. ** ** appears in the grammar, then ID becomes a fallback token for X, Y, ** and Z. Whenever one of the tokens X, Y, or Z is input to the parser ** but it does not parse, the type of the token is changed to ID and ** the parse is retried before an error is thrown. */ #ifdef YYFALLBACK static const YYCODETYPE yyFallback[] = { }; #endif /* YYFALLBACK */ /* The following structure represents a single element of the ** parser's stack. Information stored includes: ** ** + The state number for the parser at this level of the stack. ** ** + The value of the token stored at this level of the stack. ** (In other words, the "major" token.) ** ** + The semantic value stored at this level of the stack. This is ** the information used by the action routines in the grammar. ** It is sometimes called the "minor" token. */ struct yyStackEntry { YYACTIONTYPE stateno; /* The state-number */ YYCODETYPE major; /* The major token value. This is the code ** number for the token at this stack level */ YYMINORTYPE minor; /* The user-supplied minor token value. This ** is the value of the token */ }; typedef struct yyStackEntry yyStackEntry; /* The state of the parser is completely contained in an instance of ** the following structure */ struct yyParser { int yyidx; /* Index of top element in stack */ #ifdef YYTRACKMAXSTACKDEPTH int yyidxMax; /* Maximum value of yyidx */ #endif int yyerrcnt; /* Shifts left before out of the error */ ParseARG_SDECL /* A place to hold %extra_argument */ #if YYSTACKDEPTH<=0 int yystksz; /* Current side of the stack */ yyStackEntry *yystack; /* The parser's stack */ #else yyStackEntry yystack[YYSTACKDEPTH]; /* The parser's stack */ #endif }; typedef struct yyParser yyParser; #ifndef NDEBUG #include static FILE *yyTraceFILE = 0; static char *yyTracePrompt = 0; #endif /* NDEBUG */ #ifndef NDEBUG /* ** Turn parser tracing on by giving a stream to which to write the trace ** and a prompt to preface each trace message. Tracing is turned off ** by making either argument NULL ** ** Inputs: **
    **
  • A FILE* to which trace output should be written. ** If NULL, then tracing is turned off. **
  • A prefix string written at the beginning of every ** line of trace output. If NULL, then tracing is ** turned off. **
** ** Outputs: ** None. */ void ParseTrace (FILE * TraceFILE, char *zTracePrompt) { yyTraceFILE = TraceFILE; yyTracePrompt = zTracePrompt; if (yyTraceFILE == 0) yyTracePrompt = 0; else if (yyTracePrompt == 0) yyTraceFILE = 0; } #endif /* NDEBUG */ #ifndef NDEBUG /* For tracing shifts, the names of all terminals and nonterminals ** are required. The following table supplies these names */ static const char *const yyTokenName[] = { "$", "KML_NEWLINE", "KML_END", "KML_CLOSE", "KML_OPEN", "KML_KEYWORD", "KML_EQ", "KML_VALUE", "KML_COORD", "error", "main", "in", "state", "program", "kml_tree", "node", "node_chain", "open_tag", "attr", "attributes", "coord", "coord_chain", "close_tag", "keyword", "extra_nodes", "extra_attr", "extra_coord", }; #endif /* NDEBUG */ #ifndef NDEBUG /* For tracing reduce actions, the names of all rules are required. */ static const char *const yyRuleName[] = { /* 0 */ "main ::= in", /* 1 */ "in ::=", /* 2 */ "in ::= in state KML_NEWLINE", /* 3 */ "state ::= program", /* 4 */ "program ::= kml_tree", /* 5 */ "kml_tree ::= node", /* 6 */ "kml_tree ::= node_chain", /* 7 */ "node ::= open_tag KML_END KML_CLOSE", /* 8 */ "node ::= open_tag attr KML_END KML_CLOSE", /* 9 */ "node ::= open_tag attributes KML_END KML_CLOSE", /* 10 */ "node ::= open_tag KML_CLOSE", /* 11 */ "node ::= open_tag attr KML_CLOSE", /* 12 */ "node ::= open_tag attributes KML_CLOSE", /* 13 */ "node ::= open_tag KML_CLOSE coord", /* 14 */ "node ::= open_tag KML_CLOSE coord_chain", /* 15 */ "node ::= open_tag attr KML_CLOSE coord", /* 16 */ "node ::= open_tag attr KML_CLOSE coord_chain", /* 17 */ "node ::= open_tag attributes KML_CLOSE coord", /* 18 */ "node ::= open_tag attributes KML_CLOSE coord_chain", /* 19 */ "node ::= close_tag", /* 20 */ "open_tag ::= KML_OPEN keyword", /* 21 */ "close_tag ::= KML_OPEN KML_END keyword KML_CLOSE", /* 22 */ "keyword ::= KML_KEYWORD", /* 23 */ "extra_nodes ::=", /* 24 */ "extra_nodes ::= node extra_nodes", /* 25 */ "node_chain ::= node node extra_nodes", /* 26 */ "attr ::= KML_KEYWORD KML_EQ KML_VALUE", /* 27 */ "extra_attr ::=", /* 28 */ "extra_attr ::= attr extra_attr", /* 29 */ "attributes ::= attr attr extra_attr", /* 30 */ "coord ::= KML_COORD", /* 31 */ "extra_coord ::=", /* 32 */ "extra_coord ::= coord extra_coord", /* 33 */ "coord_chain ::= coord coord extra_coord", }; #endif /* NDEBUG */ #if YYSTACKDEPTH<=0 /* ** Try to increase the size of the parser stack. */ static void yyGrowStack (yyParser * p) { int newSize; yyStackEntry *pNew; newSize = p->yystksz * 2 + 100; pNew = realloc (p->yystack, newSize * sizeof (pNew[0])); if (pNew) { p->yystack = pNew; p->yystksz = newSize; #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sStack grows to %d entries!\n", yyTracePrompt, p->yystksz); } #endif } } #endif /* ** This function allocates a new parser. ** The only argument is a pointer to a function which works like ** malloc. ** ** Inputs: ** A pointer to the function used to allocate memory. ** ** Outputs: ** A pointer to a parser. This pointer is used in subsequent calls ** to Parse and ParseFree. */ void * ParseAlloc (void *(*mallocProc) (size_t)) { yyParser *pParser; pParser = (yyParser *) (*mallocProc) ((size_t) sizeof (yyParser)); if (pParser) { pParser->yyidx = -1; #ifdef YYTRACKMAXSTACKDEPTH pParser->yyidxMax = 0; #endif #if YYSTACKDEPTH<=0 pParser->yystack = NULL; pParser->yystksz = 0; yyGrowStack (pParser); #endif } return pParser; } /* The following function deletes the value associated with a ** symbol. The symbol can be either a terminal or nonterminal. ** "yymajor" is the symbol code, and "yypminor" is a pointer to ** the value. */ static void yy_destructor (yyParser * yypParser, /* The parser */ YYCODETYPE yymajor, /* Type code for object to destroy */ YYMINORTYPE * yypminor /* The object to be destroyed */ ) { switch (yymajor) { /* Here is inserted the actions which take place when a ** terminal or non-terminal is destroyed. This can happen ** when the symbol is popped from the stack during a ** reduce or during error processing or when a parser is ** being destroyed before it is finished parsing. ** ** Note: during a reduce, the only symbols destroyed are those ** which appear on the RHS of the rule, but which are not used ** inside the C code. */ default: break; /* If no destructor action specified: do nothing */ } } /* ** Pop the parser's stack once. ** ** If there is a destructor routine associated with the token which ** is popped from the stack, then call it. ** ** Return the major token number for the symbol popped. */ static int yy_pop_parser_stack (yyParser * pParser) { YYCODETYPE yymajor; yyStackEntry *yytos = &pParser->yystack[pParser->yyidx]; if (pParser->yyidx < 0) return 0; #ifndef NDEBUG if (yyTraceFILE && pParser->yyidx >= 0) { fprintf (yyTraceFILE, "%sPopping %s\n", yyTracePrompt, yyTokenName[yytos->major]); } #endif yymajor = yytos->major; yy_destructor (pParser, yymajor, &yytos->minor); pParser->yyidx--; return yymajor; } /* ** Deallocate and destroy a parser. Destructors are all called for ** all stack elements before shutting the parser down. ** ** Inputs: **
    **
  • A pointer to the parser. This should be a pointer ** obtained from ParseAlloc. **
  • A pointer to a function used to reclaim memory obtained ** from malloc. **
*/ void ParseFree (void *p, /* The parser to be deleted */ void (*freeProc) (void *) /* Function used to reclaim memory */ ) { yyParser *pParser = (yyParser *) p; if (pParser == 0) return; while (pParser->yyidx >= 0) yy_pop_parser_stack (pParser); #if YYSTACKDEPTH<=0 free (pParser->yystack); #endif (*freeProc) ((void *) pParser); } /* ** Return the peak depth of the stack for a parser. */ #ifdef YYTRACKMAXSTACKDEPTH int ParseStackPeak (void *p) { yyParser *pParser = (yyParser *) p; return pParser->yyidxMax; } #endif /* ** Find the appropriate action for a parser given the terminal ** look-ahead token iLookAhead. ** ** If the look-ahead token is YYNOCODE, then check to see if the action is ** independent of the look-ahead. If it is, return the action, otherwise ** return YY_NO_ACTION. */ static int yy_find_shift_action (yyParser * pParser, /* The parser */ YYCODETYPE iLookAhead /* The look-ahead token */ ) { int i; int stateno = pParser->yystack[pParser->yyidx].stateno; if (stateno > YY_SHIFT_MAX || (i = yy_shift_ofst[stateno]) == YY_SHIFT_USE_DFLT) { return yy_default[stateno]; } assert (iLookAhead != YYNOCODE); i += iLookAhead; if (i < 0 || i >= YY_SZ_ACTTAB || yy_lookahead[i] != iLookAhead) { if (iLookAhead > 0) { #ifdef YYFALLBACK YYCODETYPE iFallback; /* Fallback token */ if (iLookAhead < sizeof (yyFallback) / sizeof (yyFallback[0]) && (iFallback = yyFallback[iLookAhead]) != 0) { #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sFALLBACK %s => %s\n", yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[iFallback]); } #endif return yy_find_shift_action (pParser, iFallback); } #endif #ifdef YYWILDCARD { int j = i - iLookAhead + YYWILDCARD; if (j >= 0 && j < YY_SZ_ACTTAB && yy_lookahead[j] == YYWILDCARD) { #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sWILDCARD %s => %s\n", yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[YYWILDCARD]); } #endif /* NDEBUG */ return yy_action[j]; } } #endif /* YYWILDCARD */ } return yy_default[stateno]; } else { return yy_action[i]; } } /* ** Find the appropriate action for a parser given the non-terminal ** look-ahead token iLookAhead. ** ** If the look-ahead token is YYNOCODE, then check to see if the action is ** independent of the look-ahead. If it is, return the action, otherwise ** return YY_NO_ACTION. */ static int yy_find_reduce_action (int stateno, /* Current state number */ YYCODETYPE iLookAhead /* The look-ahead token */ ) { int i; #ifdef YYERRORSYMBOL if (stateno > YY_REDUCE_MAX) { return yy_default[stateno]; } #else assert (stateno <= YY_REDUCE_MAX); #endif i = yy_reduce_ofst[stateno]; assert (i != YY_REDUCE_USE_DFLT); assert (iLookAhead != YYNOCODE); i += iLookAhead; #ifdef YYERRORSYMBOL if (i < 0 || i >= YY_SZ_ACTTAB || yy_lookahead[i] != iLookAhead) { return yy_default[stateno]; } #else assert (i >= 0 && i < YY_SZ_ACTTAB); assert (yy_lookahead[i] == iLookAhead); #endif return yy_action[i]; } /* ** The following routine is called if the stack overflows. */ static void yyStackOverflow (yyParser * yypParser, YYMINORTYPE * yypMinor) { ParseARG_FETCH; yypParser->yyidx--; #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sStack Overflow!\n", yyTracePrompt); } #endif while (yypParser->yyidx >= 0) yy_pop_parser_stack (yypParser); /* Here code is inserted which will execute if the parser ** stack every overflows */ spatialite_e ("Giving up. Parser stack overflow\n"); ParseARG_STORE; /* Suppress warning about unused %extra_argument var */ } /* ** Perform a shift action. */ static void yy_shift (yyParser * yypParser, /* The parser to be shifted */ int yyNewState, /* The new state to shift in */ int yyMajor, /* The major token to shift in */ YYMINORTYPE * yypMinor /* Pointer to the minor token to shift in */ ) { yyStackEntry *yytos; yypParser->yyidx++; #ifdef YYTRACKMAXSTACKDEPTH if (yypParser->yyidx > yypParser->yyidxMax) { yypParser->yyidxMax = yypParser->yyidx; } #endif #if YYSTACKDEPTH>0 if (yypParser->yyidx >= YYSTACKDEPTH) { yyStackOverflow (yypParser, yypMinor); return; } #else if (yypParser->yyidx >= yypParser->yystksz) { yyGrowStack (yypParser); if (yypParser->yyidx >= yypParser->yystksz) { yyStackOverflow (yypParser, yypMinor); return; } } #endif yytos = &yypParser->yystack[yypParser->yyidx]; yytos->stateno = (YYACTIONTYPE) yyNewState; yytos->major = (YYCODETYPE) yyMajor; yytos->minor = *yypMinor; #ifndef NDEBUG if (yyTraceFILE && yypParser->yyidx > 0) { int i; fprintf (yyTraceFILE, "%sShift %d\n", yyTracePrompt, yyNewState); fprintf (yyTraceFILE, "%sStack:", yyTracePrompt); for (i = 1; i <= yypParser->yyidx; i++) fprintf (yyTraceFILE, " %s", yyTokenName[yypParser->yystack[i].major]); fprintf (yyTraceFILE, "\n"); } #endif } /* The following table contains information about every rule that ** is used during the reduce. */ static const struct { YYCODETYPE lhs; /* Symbol on the left-hand side of the rule */ unsigned char nrhs; /* Number of right-hand side symbols in the rule */ } yyRuleInfo[] = { { 10, 1}, { 11, 0}, { 11, 3}, { 12, 1}, { 13, 1}, { 14, 1}, { 14, 1}, { 15, 3}, { 15, 4}, { 15, 4}, { 15, 2}, { 15, 3}, { 15, 3}, { 15, 3}, { 15, 3}, { 15, 4}, { 15, 4}, { 15, 4}, { 15, 4}, { 15, 1}, { 17, 2}, { 22, 4}, { 23, 1}, { 24, 0}, { 24, 2}, { 16, 3}, { 18, 3}, { 25, 0}, { 25, 2}, { 19, 3}, { 20, 1}, { 26, 0}, { 26, 2}, { 21, 3},}; static void yy_accept (yyParser *); /* Forward Declaration */ /* ** Perform a reduce action and the shift that must immediately ** follow the reduce. */ static void yy_reduce (yyParser * yypParser, /* The parser */ int yyruleno /* Number of the rule by which to reduce */ ) { int yygoto; /* The next state */ int yyact; /* The next action */ YYMINORTYPE yygotominor; /* The LHS of the rule reduced */ yyStackEntry *yymsp; /* The top of the parser's stack */ int yysize; /* Amount to pop the stack */ ParseARG_FETCH; yymsp = &yypParser->yystack[yypParser->yyidx]; #ifndef NDEBUG if (yyTraceFILE && yyruleno >= 0 && yyruleno < (int) (sizeof (yyRuleName) / sizeof (yyRuleName[0]))) { fprintf (yyTraceFILE, "%sReduce [%s].\n", yyTracePrompt, yyRuleName[yyruleno]); } #endif /* NDEBUG */ /* Silence complaints from purify about yygotominor being uninitialized ** in some cases when it is copied into the stack after the following ** switch. yygotominor is uninitialized when a rule reduces that does ** not set the value of its left-hand side nonterminal. Leaving the ** value of the nonterminal uninitialized is utterly harmless as long ** as the value is never used. So really the only thing this code ** accomplishes is to quieten purify. ** ** 2007-01-16: The wireshark project (www.wireshark.org) reports that ** without this code, their parser segfaults. I'm not sure what there ** parser is doing to make this happen. This is the second bug report ** from wireshark this week. Clearly they are stressing Lemon in ways ** that it has not been previously stressed... (SQLite ticket #2172) */ /*memset(&yygotominor, 0, sizeof(yygotominor)); */ yygotominor = yyzerominor; switch (yyruleno) { /* Beginning here are the reduction cases. A typical example ** follows: ** case 0: ** #line ** { ... } // User supplied code ** #line ** break; */ case 5: /* kml_tree ::= node */ case 6: /* kml_tree ::= node_chain */ yytestcase (yyruleno == 6); { p_data->result = yymsp[0].minor.yy0; } break; case 7: /* node ::= open_tag KML_END KML_CLOSE */ { yygotominor.yy0 = kml_createSelfClosedNode (p_data, (void *) yymsp[-2].minor.yy0, NULL); } break; case 8: /* node ::= open_tag attr KML_END KML_CLOSE */ case 9: /* node ::= open_tag attributes KML_END KML_CLOSE */ yytestcase (yyruleno == 9); { yygotominor.yy0 = kml_createSelfClosedNode (p_data, (void *) yymsp[-3].minor.yy0, (void *) yymsp[-2].minor.yy0); } break; case 10: /* node ::= open_tag KML_CLOSE */ { yygotominor.yy0 = kml_createNode (p_data, (void *) yymsp[-1].minor.yy0, NULL, NULL); } break; case 11: /* node ::= open_tag attr KML_CLOSE */ case 12: /* node ::= open_tag attributes KML_CLOSE */ yytestcase (yyruleno == 12); { yygotominor.yy0 = kml_createNode (p_data, (void *) yymsp[-2].minor.yy0, (void *) yymsp[-1].minor.yy0, NULL); } break; case 13: /* node ::= open_tag KML_CLOSE coord */ case 14: /* node ::= open_tag KML_CLOSE coord_chain */ yytestcase (yyruleno == 14); { yygotominor.yy0 = kml_createNode (p_data, (void *) yymsp[-2].minor.yy0, NULL, (void *) yymsp[0].minor.yy0); } break; case 15: /* node ::= open_tag attr KML_CLOSE coord */ case 16: /* node ::= open_tag attr KML_CLOSE coord_chain */ yytestcase (yyruleno == 16); case 17: /* node ::= open_tag attributes KML_CLOSE coord */ yytestcase (yyruleno == 17); case 18: /* node ::= open_tag attributes KML_CLOSE coord_chain */ yytestcase (yyruleno == 18); { yygotominor.yy0 = kml_createNode (p_data, (void *) yymsp[-3].minor.yy0, (void *) yymsp[-2].minor.yy0, (void *) yymsp[0].minor.yy0); } break; case 19: /* node ::= close_tag */ { yygotominor.yy0 = kml_closingNode (p_data, (void *) yymsp[0].minor.yy0); } break; case 20: /* open_tag ::= KML_OPEN keyword */ case 22: /* keyword ::= KML_KEYWORD */ yytestcase (yyruleno == 22); { yygotominor.yy0 = yymsp[0].minor.yy0; } break; case 21: /* close_tag ::= KML_OPEN KML_END keyword KML_CLOSE */ { yygotominor.yy0 = yymsp[-1].minor.yy0; } break; case 23: /* extra_nodes ::= */ case 27: /* extra_attr ::= */ yytestcase (yyruleno == 27); case 31: /* extra_coord ::= */ yytestcase (yyruleno == 31); { yygotominor.yy0 = NULL; } break; case 24: /* extra_nodes ::= node extra_nodes */ { ((kmlNodePtr) yymsp[-1].minor.yy0)->Next = (kmlNodePtr) yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } break; case 25: /* node_chain ::= node node extra_nodes */ { ((kmlNodePtr) yymsp[-1].minor.yy0)->Next = (kmlNodePtr) yymsp[0].minor.yy0; ((kmlNodePtr) yymsp[-2].minor.yy0)->Next = (kmlNodePtr) yymsp[-1].minor.yy0; yygotominor.yy0 = yymsp[-2].minor.yy0; } break; case 26: /* attr ::= KML_KEYWORD KML_EQ KML_VALUE */ { yygotominor.yy0 = kml_attribute (p_data, (void *) yymsp[-2].minor.yy0, (void *) yymsp[0].minor.yy0); } break; case 28: /* extra_attr ::= attr extra_attr */ { ((kmlAttrPtr) yymsp[-1].minor.yy0)->Next = (kmlAttrPtr) yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } break; case 29: /* attributes ::= attr attr extra_attr */ { ((kmlAttrPtr) yymsp[-1].minor.yy0)->Next = (kmlAttrPtr) yymsp[0].minor.yy0; ((kmlAttrPtr) yymsp[-2].minor.yy0)->Next = (kmlAttrPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = yymsp[-2].minor.yy0; } break; case 30: /* coord ::= KML_COORD */ { yygotominor.yy0 = kml_coord (p_data, (void *) yymsp[0].minor.yy0); } break; case 32: /* extra_coord ::= coord extra_coord */ { ((kmlCoordPtr) yymsp[-1].minor.yy0)->Next = (kmlCoordPtr) yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } break; case 33: /* coord_chain ::= coord coord extra_coord */ { ((kmlCoordPtr) yymsp[-1].minor.yy0)->Next = (kmlCoordPtr) yymsp[0].minor.yy0; ((kmlCoordPtr) yymsp[-2].minor.yy0)->Next = (kmlCoordPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = yymsp[-2].minor.yy0; } break; default: /* (0) main ::= in */ yytestcase (yyruleno == 0); /* (1) in ::= */ yytestcase (yyruleno == 1); /* (2) in ::= in state KML_NEWLINE */ yytestcase (yyruleno == 2); /* (3) state ::= program */ yytestcase (yyruleno == 3); /* (4) program ::= kml_tree */ yytestcase (yyruleno == 4); break; }; yygoto = yyRuleInfo[yyruleno].lhs; yysize = yyRuleInfo[yyruleno].nrhs; yypParser->yyidx -= yysize; yyact = yy_find_reduce_action (yymsp[-yysize].stateno, (YYCODETYPE) yygoto); if (yyact < YYNSTATE) { #ifdef NDEBUG /* If we are not debugging and the reduce action popped at least ** one element off the stack, then we can push the new element back ** onto the stack here, and skip the stack overflow test in yy_shift(). ** That gives a significant speed improvement. */ if (yysize) { yypParser->yyidx++; yymsp -= yysize - 1; yymsp->stateno = (YYACTIONTYPE) yyact; yymsp->major = (YYCODETYPE) yygoto; yymsp->minor = yygotominor; } else #endif { yy_shift (yypParser, yyact, yygoto, &yygotominor); } } else { assert (yyact == YYNSTATE + YYNRULE + 1); yy_accept (yypParser); } } /* ** The following code executes when the parse fails */ #ifndef YYNOERRORRECOVERY static void yy_parse_failed (yyParser * yypParser /* The parser */ ) { ParseARG_FETCH; #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sFail!\n", yyTracePrompt); } #endif while (yypParser->yyidx >= 0) yy_pop_parser_stack (yypParser); /* Here code is inserted which will be executed whenever the ** parser fails */ ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ } #endif /* YYNOERRORRECOVERY */ /* ** The following code executes when a syntax error first occurs. */ static void yy_syntax_error (yyParser * yypParser, /* The parser */ int yymajor, /* The major type of the error token */ YYMINORTYPE yyminor /* The minor type of the error token */ ) { ParseARG_FETCH; #define TOKEN (yyminor.yy0) /* ** when the LEMON parser encounters an error ** then this global variable is set */ p_data->kml_parse_error = 1; p_data->result = NULL; ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ } /* ** The following is executed when the parser accepts */ static void yy_accept (yyParser * yypParser /* The parser */ ) { ParseARG_FETCH; #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sAccept!\n", yyTracePrompt); } #endif while (yypParser->yyidx >= 0) yy_pop_parser_stack (yypParser); /* Here code is inserted which will be executed whenever the ** parser accepts */ ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ } /* The main parser program. ** The first argument is a pointer to a structure obtained from ** "ParseAlloc" which describes the current state of the parser. ** The second argument is the major token number. The third is ** the minor token. The fourth optional argument is whatever the ** user wants (and specified in the grammar) and is available for ** use by the action routines. ** ** Inputs: **
    **
  • A pointer to the parser (an opaque structure.) **
  • The major token number. **
  • The minor token number. **
  • An option argument of a grammar-specified type. **
** ** Outputs: ** None. */ void Parse (void *yyp, /* The parser */ int yymajor, /* The major token code number */ ParseTOKENTYPE yyminor /* The value for the token */ ParseARG_PDECL /* Optional %extra_argument parameter */ ) { YYMINORTYPE yyminorunion; int yyact; /* The parser action. */ int yyendofinput; /* True if we are at the end of input */ #ifdef YYERRORSYMBOL int yyerrorhit = 0; /* True if yymajor has invoked an error */ #endif yyParser *yypParser; /* The parser */ /* (re)initialize the parser, if necessary */ yypParser = (yyParser *) yyp; if (yypParser->yyidx < 0) { #if YYSTACKDEPTH<=0 if (yypParser->yystksz <= 0) { /*memset(&yyminorunion, 0, sizeof(yyminorunion)); */ yyminorunion = yyzerominor; yyStackOverflow (yypParser, &yyminorunion); return; } #endif yypParser->yyidx = 0; yypParser->yyerrcnt = -1; yypParser->yystack[0].stateno = 0; yypParser->yystack[0].major = 0; } yyminorunion.yy0 = yyminor; yyendofinput = (yymajor == 0); ParseARG_STORE; #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sInput %s\n", yyTracePrompt, yyTokenName[yymajor]); } #endif do { yyact = yy_find_shift_action (yypParser, (YYCODETYPE) yymajor); if (yyact < YYNSTATE) { assert (!yyendofinput); /* Impossible to shift the $ token */ yy_shift (yypParser, yyact, yymajor, &yyminorunion); yypParser->yyerrcnt--; yymajor = YYNOCODE; } else if (yyact < YYNSTATE + YYNRULE) { yy_reduce (yypParser, yyact - YYNSTATE); } else { assert (yyact == YY_ERROR_ACTION); #ifdef YYERRORSYMBOL int yymx; #endif #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sSyntax Error!\n", yyTracePrompt); } #endif #ifdef YYERRORSYMBOL /* A syntax error has occurred. ** The response to an error depends upon whether or not the ** grammar defines an error token "ERROR". ** ** This is what we do if the grammar does define ERROR: ** ** * Call the %syntax_error function. ** ** * Begin popping the stack until we enter a state where ** it is legal to shift the error symbol, then shift ** the error symbol. ** ** * Set the error count to three. ** ** * Begin accepting and shifting new tokens. No new error ** processing will occur until three tokens have been ** shifted successfully. ** */ if (yypParser->yyerrcnt < 0) { yy_syntax_error (yypParser, yymajor, yyminorunion); } yymx = yypParser->yystack[yypParser->yyidx].major; if (yymx == YYERRORSYMBOL || yyerrorhit) { #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sDiscard input token %s\n", yyTracePrompt, yyTokenName[yymajor]); } #endif yy_destructor (yypParser, (YYCODETYPE) yymajor, &yyminorunion); yymajor = YYNOCODE; } else { while (yypParser->yyidx >= 0 && yymx != YYERRORSYMBOL && (yyact = yy_find_reduce_action (yypParser-> yystack[yypParser->yyidx]. stateno, YYERRORSYMBOL)) >= YYNSTATE) { yy_pop_parser_stack (yypParser); } if (yypParser->yyidx < 0 || yymajor == 0) { yy_destructor (yypParser, (YYCODETYPE) yymajor, &yyminorunion); yy_parse_failed (yypParser); yymajor = YYNOCODE; } else if (yymx != YYERRORSYMBOL) { YYMINORTYPE u2; u2.YYERRSYMDT = 0; yy_shift (yypParser, yyact, YYERRORSYMBOL, &u2); } } yypParser->yyerrcnt = 3; yyerrorhit = 1; #elif defined(YYNOERRORRECOVERY) /* If the YYNOERRORRECOVERY macro is defined, then do not attempt to ** do any kind of error recovery. Instead, simply invoke the syntax ** error routine and continue going as if nothing had happened. ** ** Applications can set this macro (for example inside %include) if ** they intend to abandon the parse upon the first syntax error seen. */ yy_syntax_error (yypParser, yymajor, yyminorunion); yy_destructor (yypParser, (YYCODETYPE) yymajor, &yyminorunion); yymajor = YYNOCODE; #else /* YYERRORSYMBOL is not defined */ /* This is what we do if the grammar does not define ERROR: ** ** * Report an error message, and throw away the input token. ** ** * If the input token is $, then fail the parse. ** ** As before, subsequent error messages are suppressed until ** three input tokens have been successfully shifted. */ if (yypParser->yyerrcnt <= 0) { yy_syntax_error (yypParser, yymajor, yyminorunion); } yypParser->yyerrcnt = 3; yy_destructor (yypParser, (YYCODETYPE) yymajor, &yyminorunion); if (yyendofinput) { yy_parse_failed (yypParser); } yymajor = YYNOCODE; #endif } } while (yymajor != YYNOCODE && yypParser->yyidx >= 0); return; } libspatialite-4.1.1/src/gaiageo/gg_advanced.c0000664000175000017500000014015412163502133016040 00000000000000/* gg_advanced.c -- Gaia advanced geometric operations version 4.1, 2013 May 8 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include GAIAGEO_DECLARE double gaiaMeasureLength (int dims, double *coords, int vert) { /* computes the total length */ double lung = 0.0; double xx1; double xx2; double yy1; double yy2; double x; double y; double z; double m; double dist; int ind; if (vert <= 0) return lung; if (dims == GAIA_XY_Z) { gaiaGetPointXYZ (coords, 0, &xx1, &yy1, &z); } else if (dims == GAIA_XY_M) { gaiaGetPointXYM (coords, 0, &xx1, &yy1, &m); } else if (dims == GAIA_XY_Z_M) { gaiaGetPointXYZM (coords, 0, &xx1, &yy1, &z, &m); } else { gaiaGetPoint (coords, 0, &xx1, &yy1); } for (ind = 1; ind < vert; ind++) { if (dims == GAIA_XY_Z) { gaiaGetPointXYZ (coords, ind, &xx2, &yy2, &z); } else if (dims == GAIA_XY_M) { gaiaGetPointXYM (coords, ind, &xx2, &yy2, &m); } else if (dims == GAIA_XY_Z_M) { gaiaGetPointXYZM (coords, ind, &xx2, &yy2, &z, &m); } else { gaiaGetPoint (coords, ind, &xx2, &yy2); } x = xx1 - xx2; y = yy1 - yy2; dist = sqrt ((x * x) + (y * y)); lung += dist; xx1 = xx2; yy1 = yy2; } return lung; } GAIAGEO_DECLARE double gaiaMeasureArea (gaiaRingPtr ring) { /* computes the area */ int iv; double xx; double yy; double x; double y; double z; double m; double area = 0.0; if (!ring) return 0.0; if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, 0, &xx, &yy, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, 0, &xx, &yy, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, 0, &xx, &yy, &z, &m); } else { gaiaGetPoint (ring->Coords, 0, &xx, &yy); } for (iv = 1; iv < ring->Points; iv++) { if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } area += ((xx * y) - (x * yy)); xx = x; yy = y; } area /= 2.0; return fabs (area); } GAIAGEO_DECLARE void gaiaRingCentroid (gaiaRingPtr ring, double *rx, double *ry) { /* computes the simple ring centroid */ double cx = 0.0; double cy = 0.0; double xx; double yy; double x; double y; double z; double m; double coeff; double area; double term; int iv; if (!ring) { *rx = -DBL_MAX; *ry = -DBL_MAX; return; } area = gaiaMeasureArea (ring); coeff = 1.0 / (area * 6.0); if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, 0, &xx, &yy, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, 0, &xx, &yy, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, 0, &xx, &yy, &z, &m); } else { gaiaGetPoint (ring->Coords, 0, &xx, &yy); } for (iv = 1; iv < ring->Points; iv++) { if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } term = (xx * y) - (x * yy); cx += (xx + x) * term; cy += (yy + y) * term; xx = x; yy = y; } *rx = fabs (cx * coeff); *ry = fabs (cy * coeff); } GAIAGEO_DECLARE void gaiaClockwise (gaiaRingPtr p) { /* determines clockwise or anticlockwise direction */ int ind; int ix; double xx; double yy; double x; double y; double z; double m; double area = 0.0; for (ind = 0; ind < p->Points; ind++) { if (p->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (p->Coords, ind, &xx, &yy, &z); } else if (p->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (p->Coords, ind, &xx, &yy, &m); } else if (p->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (p->Coords, ind, &xx, &yy, &z, &m); } else { gaiaGetPoint (p->Coords, ind, &xx, &yy); } ix = (ind + 1) % p->Points; if (p->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (p->Coords, ix, &x, &y, &z); } else if (p->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (p->Coords, ix, &x, &y, &m); } else if (p->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (p->Coords, ix, &x, &y, &z, &m); } else { gaiaGetPoint (p->Coords, ix, &x, &y); } area += ((xx * y) - (x * yy)); } area /= 2.0; if (area >= 0.0) p->Clockwise = 0; else p->Clockwise = 1; } GAIAGEO_DECLARE int gaiaIsPointOnRingSurface (gaiaRingPtr ring, double pt_x, double pt_y) { /* tests if a POINT falls inside a RING */ int isInternal = 0; int cnt; int i; int j; double x; double y; double z; double m; double *vert_x; double *vert_y; double minx = DBL_MAX; double miny = DBL_MAX; double maxx = -DBL_MAX; double maxy = -DBL_MAX; cnt = ring->Points; cnt--; /* ignoring last vertex because surely identical to the first one */ if (cnt < 2) return 0; /* allocating and loading an array of vertices */ vert_x = malloc (sizeof (double) * (cnt)); vert_y = malloc (sizeof (double) * (cnt)); for (i = 0; i < cnt; i++) { if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, i, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, i, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, i, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, i, &x, &y); } vert_x[i] = x; vert_y[i] = y; if (x < minx) minx = x; if (x > maxx) maxx = x; if (y < miny) miny = y; if (y > maxy) maxy = y; } if (pt_x < minx || pt_x > maxx) goto end; /* outside the bounding box (x axis) */ if (pt_y < miny || pt_y > maxy) goto end; /* outside the bounding box (y axis) */ for (i = 0, j = cnt - 1; i < cnt; j = i++) { /* The definitive reference is "Point in Polyon Strategies" by / Eric Haines [Gems IV] pp. 24-46. / The code in the Sedgewick book Algorithms (2nd Edition, p.354) is / incorrect. */ if ((((vert_y[i] <= pt_y) && (pt_y < vert_y[j])) || ((vert_y[j] <= pt_y) && (pt_y < vert_y[i]))) && (pt_x < (vert_x[j] - vert_x[i]) * (pt_y - vert_y[i]) / (vert_y[j] - vert_y[i]) + vert_x[i])) isInternal = !isInternal; } end: free (vert_x); free (vert_y); return isInternal; } GAIAGEO_DECLARE double gaiaMinDistance (double x0, double y0, int dims, double *coords, int n_vert) { /* computing minimal distance between a POINT and a linestring/ring */ double x; double y; double z; double m; double ox; double oy; double lineMag; double u; double px; double py; double dist; double min_dist = DBL_MAX; int iv; if (n_vert < 2) return min_dist; /* not a valid linestring */ /* computing distance from first vertex */ ox = *(coords + 0); oy = *(coords + 1); min_dist = sqrt (((x0 - ox) * (x0 - ox)) + ((y0 - oy) * (y0 - oy))); for (iv = 1; iv < n_vert; iv++) { /* segment start-end coordinates */ if (dims == GAIA_XY_Z) { gaiaGetPointXYZ (coords, iv - 1, &ox, &oy, &z); gaiaGetPointXYZ (coords, iv, &x, &y, &z); } else if (dims == GAIA_XY_M) { gaiaGetPointXYM (coords, iv - 1, &ox, &oy, &m); gaiaGetPointXYM (coords, iv, &x, &y, &m); } else if (dims == GAIA_XY_Z_M) { gaiaGetPointXYZM (coords, iv - 1, &ox, &oy, &z, &m); gaiaGetPointXYZM (coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (coords, iv - 1, &ox, &oy); gaiaGetPoint (coords, iv, &x, &y); } /* computing distance from vertex */ dist = sqrt (((x0 - x) * (x0 - x)) + ((y0 - y) * (y0 - y))); if (dist < min_dist) min_dist = dist; /* computing a projection */ lineMag = ((x - ox) * (x - ox)) + ((y - oy) * (y - oy)); u = (((x0 - ox) * (x - ox)) + ((y0 - oy) * (y - oy))) / lineMag; if (u < 0.0 || u > 1.0) ; /* closest point does not fall within the line segment */ else { px = ox + u * (x - ox); py = oy + u * (y - oy); dist = sqrt (((x0 - px) * (x0 - px)) + ((y0 - py) * (y0 - py))); if (dist < min_dist) min_dist = dist; } } return min_dist; } GAIAGEO_DECLARE int gaiaIsPointOnPolygonSurface (gaiaPolygonPtr polyg, double x, double y) { /* tests if a POINT falls inside a POLYGON */ int ib; gaiaRingPtr ring = polyg->Exterior; if (gaiaIsPointOnRingSurface (ring, x, y)) { /* ok, the POINT falls inside the polygon */ for (ib = 0; ib < polyg->NumInteriors; ib++) { ring = polyg->Interiors + ib; if (gaiaIsPointOnRingSurface (ring, x, y)) { /* no, the POINT fall inside some hole */ return 0; } } return 1; } return 0; } GAIAGEO_DECLARE int gaiaIntersect (double *x0, double *y0, double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4) { /* computes intersection [if any] between two line segments / the intersection POINT has coordinates (x0, y0) / first line is identified by(x1, y1) and (x2, y2) / second line is identified by (x3, y3) and (x4, y4) */ double x; double y; double a1; double b1; double c1; double a2; double b2; double c2; double m1; double m2; double p; double det_inv; double minx1; double miny1; double maxx1; double maxy1; double minx2; double miny2; double maxx2; double maxy2; int ok1 = 0; int ok2 = 0; /* building line segment's MBRs */ if (x2 < x1) { minx1 = x2; maxx1 = x1; } else { minx1 = x1; maxx1 = x2; } if (y2 < y1) { miny1 = y2; maxy1 = y1; } else { miny1 = y1; maxy1 = y2; } if (x4 < x3) { minx2 = x4; maxx2 = x3; } else { minx2 = x3; maxx2 = x4; } if (y4 < y3) { miny2 = y4; maxy2 = y3; } else { miny2 = y3; maxy2 = y4; } /* checking MBRs first */ if (minx1 > maxx2) return 0; if (miny1 > maxy2) return 0; if (maxx1 < minx2) return 0; if (maxy1 < miny2) return 0; if (minx2 > maxx1) return 0; if (miny2 > maxy1) return 0; if (maxx2 < minx1) return 0; if (maxy2 < miny1) return 0; /* there is an MBRs intersection - proceeding */ if ((x2 - x1) != 0.0) m1 = (y2 - y1) / (x2 - x1); else m1 = DBL_MAX; if ((x4 - x3) != 0) m2 = (y4 - y3) / (x4 - x3); else m2 = DBL_MAX; if (m1 == m2) /* parallel lines */ return 0; if (m1 == DBL_MAX) c1 = y1; else c1 = (y1 - m1 * x1); if (m2 == DBL_MAX) c2 = y3; else c2 = (y3 - m2 * x3); if (m1 == DBL_MAX) { x = x1; p = m2 * x1; y = p + c2; /* first line is vertical */ goto check_bbox; } if (m2 == DBL_MAX) { x = x3; p = m1 * x3; y = p + c1; /* second line is vertical */ goto check_bbox; } a1 = m1; a2 = m2; b1 = -1; b2 = -1; det_inv = 1 / (a1 * b2 - a2 * b1); x = ((b1 * c2 - b2 * c1) * det_inv); y = ((a2 * c1 - a1 * c2) * det_inv); /* now checking if intersection falls within both segment boundaries */ check_bbox: if (x >= minx1 && x <= maxx1 && y >= miny1 && y <= maxy1) ok1 = 1; if (x >= minx2 && x <= maxx2 && y >= miny2 && y <= maxy2) ok2 = 1; if (ok1 && ok2) { /* intersection point falls within the segments */ *x0 = x; *y0 = y; return 1; } return 0; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSanitize (gaiaGeomCollPtr geom) { /* / sanitizes a GEOMETRYCOLLECTION: / - repeated vertices are omitted / - ring closure is enforced anyway */ int iv; int ib; double x = 0.0; double y = 0.0; double z = 0.0; double m = 0.0; double last_x = 0.0; double last_y = 0.0; double last_z = 0.0; int points; gaiaPointPtr point; gaiaLinestringPtr line; gaiaLinestringPtr new_line; gaiaPolygonPtr polyg; gaiaPolygonPtr new_polyg; gaiaGeomCollPtr new_geom; gaiaRingPtr i_ring; gaiaRingPtr o_ring; if (!geom) return NULL; if (geom->DimensionModel == GAIA_XY_Z) new_geom = gaiaAllocGeomCollXYZ (); else if (geom->DimensionModel == GAIA_XY_M) new_geom = gaiaAllocGeomCollXYM (); else if (geom->DimensionModel == GAIA_XY_Z_M) new_geom = gaiaAllocGeomCollXYZM (); else new_geom = gaiaAllocGeomColl (); new_geom->Srid = geom->Srid; new_geom->DeclaredType = geom->DeclaredType; point = geom->FirstPoint; while (point) { /* copying POINTs */ gaiaAddPointToGeomCollXYZM (new_geom, point->X, point->Y, point->Z, point->M); point = point->Next; } line = geom->FirstLinestring; while (line) { /* sanitizing LINESTRINGs */ points = 0; for (iv = 0; iv < line->Points; iv++) { /* PASS I - checking points */ z = 0.0; m = 0.0; if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } if (iv > 0) { if (last_x == x && last_y == y && last_z == z) ; else points++; } else points++; last_x = x; last_y = y; last_z = z; } if (points < 2) { /* illegal LINESTRING - copying the original one */ new_line = gaiaAddLinestringToGeomColl (new_geom, line->Points); gaiaCopyLinestringCoords (new_line, line); } else { /* valid LINESTRING - sanitizing */ new_line = gaiaAddLinestringToGeomColl (new_geom, points); points = 0; for (iv = 0; iv < line->Points; iv++) { /* PASS II - inserting points */ z = 0.0; m = 0.0; if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } if (iv > 0) { if (last_x == x && last_y == y && last_z == z) ; else { if (new_line->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (new_line->Coords, points, x, y, z); } else if (new_line->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (new_line->Coords, points, x, y, m); } else if (new_line->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (new_line->Coords, points, x, y, z, m); } else { gaiaSetPoint (new_line->Coords, points, x, y); } points++; } } else { if (new_line->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (new_line->Coords, points, x, y, z); } else if (new_line->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (new_line->Coords, points, x, y, m); } else if (new_line->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (new_line->Coords, points, x, y, z, m); } else { gaiaSetPoint (new_line->Coords, points, x, y); } points++; } last_x = x; last_y = y; last_z = z; } } line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* copying POLYGONs */ i_ring = polyg->Exterior; /* sanitizing EXTERIOR RING */ points = 0; for (iv = 0; iv < i_ring->Points; iv++) { /* PASS I - checking points */ z = 0.0; m = 0.0; if (i_ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (i_ring->Coords, iv, &x, &y, &z); } else if (i_ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (i_ring->Coords, iv, &x, &y, &m); } else if (i_ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (i_ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (i_ring->Coords, iv, &x, &y); } if (iv > 0) { if (last_x == x && last_y == y && last_z == z) ; else points++; } else points++; last_x = x; last_y = y; last_z = z; } if (last_x == x && last_y == y && last_z == z) ; else { /* forcing RING closure */ points++; } if (points < 4) { /* illegal RING - copying the original one */ new_polyg = gaiaAddPolygonToGeomColl (new_geom, i_ring->Points, polyg->NumInteriors); o_ring = new_polyg->Exterior; gaiaCopyRingCoords (o_ring, i_ring); } else { /* valid RING - sanitizing */ new_polyg = gaiaAddPolygonToGeomColl (new_geom, points, polyg->NumInteriors); o_ring = new_polyg->Exterior; points = 0; for (iv = 0; iv < i_ring->Points; iv++) { /* PASS II - inserting points */ z = 0.0; m = 0.0; if (i_ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (i_ring->Coords, iv, &x, &y, &z); } else if (i_ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (i_ring->Coords, iv, &x, &y, &m); } else if (i_ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (i_ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (i_ring->Coords, iv, &x, &y); } if (iv > 0) { if (last_x == x && last_y == y && last_z == z) ; else { if (o_ring->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (o_ring->Coords, points, x, y, z); } else if (o_ring->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (o_ring->Coords, points, x, y, m); } else if (o_ring->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (o_ring->Coords, points, x, y, z, m); } else { gaiaSetPoint (o_ring->Coords, points, x, y); } points++; } } else { if (o_ring->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (o_ring->Coords, points, x, y, z); } else if (o_ring->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (o_ring->Coords, points, x, y, m); } else if (o_ring->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (o_ring->Coords, points, x, y, z, m); } else { gaiaSetPoint (o_ring->Coords, points, x, y); } points++; } last_x = x; last_y = y; last_z = z; } } /* PASS III - forcing RING closure */ z = 0.0; m = 0.0; if (i_ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (i_ring->Coords, 0, &x, &y, &z); } else if (i_ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (i_ring->Coords, 0, &x, &y, &m); } else if (i_ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (i_ring->Coords, 0, &x, &y, &z, &m); } else { gaiaGetPoint (i_ring->Coords, 0, &x, &y); } points = o_ring->Points - 1; if (o_ring->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (o_ring->Coords, points, x, y, z); } else if (o_ring->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (o_ring->Coords, points, x, y, m); } else if (o_ring->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (o_ring->Coords, points, x, y, z, m); } else { gaiaSetPoint (o_ring->Coords, points, x, y); } for (ib = 0; ib < new_polyg->NumInteriors; ib++) { /* copying each INTERIOR RING [if any] */ i_ring = polyg->Interiors + ib; /* sanitizing an INTERIOR RING */ points = 0; for (iv = 0; iv < i_ring->Points; iv++) { /* PASS I - checking points */ z = 0.0; m = 0.0; if (i_ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (i_ring->Coords, iv, &x, &y, &z); } else if (i_ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (i_ring->Coords, iv, &x, &y, &m); } else if (i_ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (i_ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (i_ring->Coords, iv, &x, &y); } if (iv > 0) { if (last_x == x && last_y == y && last_z == z) ; else points++; } else points++; last_x = x; last_y = y; last_z = z; } if (last_x == x && last_y == y && last_z == z) ; else { /* forcing RING closure */ points++; } if (points < 4) { /* illegal RING - copying the original one */ o_ring = gaiaAddInteriorRing (new_polyg, ib, i_ring->Points); gaiaCopyRingCoords (o_ring, i_ring); } else { /* valid RING - sanitizing */ o_ring = gaiaAddInteriorRing (new_polyg, ib, points); points = 0; for (iv = 0; iv < i_ring->Points; iv++) { /* PASS II - inserting points */ z = 0.0; m = 0.0; if (i_ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (i_ring->Coords, iv, &x, &y, &z); } else if (i_ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (i_ring->Coords, iv, &x, &y, &m); } else if (i_ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (i_ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (i_ring->Coords, iv, &x, &y); } if (iv > 0) { if (last_x == x && last_y == y && last_z == z) ; else { if (o_ring->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (o_ring->Coords, points, x, y, z); } else if (o_ring->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (o_ring->Coords, points, x, y, m); } else if (o_ring->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (o_ring->Coords, points, x, y, z, m); } else { gaiaSetPoint (o_ring->Coords, points, x, y); } points++; } } else { if (o_ring->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (o_ring->Coords, points, x, y, z); } else if (o_ring->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (o_ring->Coords, points, x, y, m); } else if (o_ring->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (o_ring->Coords, points, x, y, z, m); } else { gaiaSetPoint (o_ring->Coords, points, x, y); } points++; } last_x = x; last_y = y; last_z = z; } /* PASS III - forcing RING closure */ z = 0.0; m = 0.0; if (i_ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (i_ring->Coords, 0, &x, &y, &z); } else if (i_ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (i_ring->Coords, 0, &x, &y, &m); } else if (i_ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (i_ring->Coords, 0, &x, &y, &z, &m); } else { gaiaGetPoint (i_ring->Coords, 0, &x, &y); } points = o_ring->Points - 1; if (o_ring->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (o_ring->Coords, points, x, y, z); } else if (o_ring->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (o_ring->Coords, points, x, y, m); } else if (o_ring->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (o_ring->Coords, points, x, y, z, m); } else { gaiaSetPoint (o_ring->Coords, points, x, y); } } } polyg = polyg->Next; } return new_geom; } static int gaiaIsToxicLinestring (gaiaLinestringPtr line) { /* checking a Linestring */ if (line->Points < 2) return 1; return 0; /* not a valid Linestring, simply a degenerated Point */ return 1; } static int gaiaIsToxicRing (gaiaRingPtr ring) { /* checking a Ring */ if (ring->Points < 4) return 1; return 0; } GAIAGEO_DECLARE int gaiaIsToxic (gaiaGeomCollPtr geom) { /* / identifying toxic geometries / i.e. geoms making GEOS to crash !!! */ int ib; gaiaPointPtr point; gaiaLinestringPtr line; gaiaPolygonPtr polyg; gaiaRingPtr ring; if (!geom) return 0; if (gaiaIsEmpty (geom)) return 1; point = geom->FirstPoint; while (point) { /* checking POINTs */ point = point->Next; } line = geom->FirstLinestring; while (line) { /* checking LINESTRINGs */ if (gaiaIsToxicLinestring (line)) { gaiaSetGeosAuxErrorMsg ("gaiaIsToxic detected a toxic Linestring: < 2 pts"); return 1; } line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* checking POLYGONs */ ring = polyg->Exterior; if (gaiaIsToxicRing (ring)) { gaiaSetGeosAuxErrorMsg ("gaiaIsToxic detected a toxic Ring: < 4 pts"); return 1; } for (ib = 0; ib < polyg->NumInteriors; ib++) { ring = polyg->Interiors + ib; if (gaiaIsToxicRing (ring)) { gaiaSetGeosAuxErrorMsg ("gaiaIsToxic detected a toxic Ring: < 4 pts"); return 1; } } polyg = polyg->Next; } return 0; } GAIAGEO_DECLARE int gaiaIsNotClosedRing (gaiaRingPtr ring) { /* checking a Ring for closure */ double x0; double y0; double z0; double m0; double x1; double y1; double z1; double m1; gaiaRingGetPoint (ring, 0, &x0, &y0, &z0, &m0); gaiaRingGetPoint (ring, ring->Points - 1, &x1, &y1, &z1, &m1); if (x0 == x1 && y0 == y1 && z0 == z1 && m0 == m1) return 0; else { gaiaSetGeosAuxErrorMsg ("gaia detected a not-closed Ring"); return 1; } } GAIAGEO_DECLARE int gaiaIsNotClosedGeomColl (gaiaGeomCollPtr geom) { /* / identifying not properly closed Rings / i.e. geoms making GEOS to crash !!! */ int ib; gaiaPolygonPtr polyg; gaiaRingPtr ring; if (!geom) return 0; polyg = geom->FirstPolygon; while (polyg) { /* checking POLYGONs */ ring = polyg->Exterior; if (gaiaIsNotClosedRing (ring)) return 1; for (ib = 0; ib < polyg->NumInteriors; ib++) { ring = polyg->Interiors + ib; if (gaiaIsNotClosedRing (ring)) return 1; } polyg = polyg->Next; } return 0; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLinearize (gaiaGeomCollPtr geom, int force_multi) { /* attempts to rearrange a generic Geometry into a (multi)linestring */ int pts = 0; int lns = 0; gaiaGeomCollPtr result; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaLinestringPtr new_ln; gaiaPolygonPtr pg; gaiaRingPtr rng; int iv; int ib; double x; double y; double m; double z; if (!geom) return NULL; pt = geom->FirstPoint; while (pt) { pts++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { lns++; ln = ln->Next; } if (pts || lns) return NULL; if (geom->DimensionModel == GAIA_XY_Z_M) result = gaiaAllocGeomCollXYZM (); else if (geom->DimensionModel == GAIA_XY_Z) result = gaiaAllocGeomCollXYZ (); else if (geom->DimensionModel == GAIA_XY_M) result = gaiaAllocGeomCollXYM (); else result = gaiaAllocGeomColl (); result->Srid = geom->Srid; if (force_multi) result->DeclaredType = GAIA_MULTILINESTRING; pg = geom->FirstPolygon; while (pg) { /* dissolving any POLYGON as simple LINESTRINGs (rings) */ rng = pg->Exterior; new_ln = gaiaAddLinestringToGeomColl (result, rng->Points); for (iv = 0; iv < rng->Points; iv++) { /* copying the EXTERIOR RING as LINESTRING */ if (geom->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (new_ln->Coords, iv, x, y, z, m); } else if (geom->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (new_ln->Coords, iv, x, y, z); } else if (geom->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); gaiaSetPointXYM (new_ln->Coords, iv, x, y, m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); gaiaSetPoint (new_ln->Coords, iv, x, y); } } for (ib = 0; ib < pg->NumInteriors; ib++) { rng = pg->Interiors + ib; new_ln = gaiaAddLinestringToGeomColl (result, rng->Points); for (iv = 0; iv < rng->Points; iv++) { /* copying an INTERIOR RING as LINESTRING */ if (geom->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (new_ln->Coords, iv, x, y, z, m); } else if (geom->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (new_ln->Coords, iv, x, y, z); } else if (geom->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); gaiaSetPointXYM (new_ln->Coords, iv, x, y, m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); gaiaSetPoint (new_ln->Coords, iv, x, y); } } } pg = pg->Next; } if (result->FirstLinestring == NULL) { gaiaFreeGeomColl (result); return NULL; } return result; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaDissolveSegments (gaiaGeomCollPtr geom) { /* attempts to dissolve a Geometry into segments */ gaiaGeomCollPtr result; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaLinestringPtr segment; gaiaPolygonPtr pg; gaiaRingPtr rng; int iv; int ib; double x; double y; double z; double m; double x0; double y0; double z0; double m0; if (!geom) return NULL; if (geom->DimensionModel == GAIA_XY_Z_M) result = gaiaAllocGeomCollXYZM (); else if (geom->DimensionModel == GAIA_XY_Z) result = gaiaAllocGeomCollXYZ (); else if (geom->DimensionModel == GAIA_XY_M) result = gaiaAllocGeomCollXYM (); else result = gaiaAllocGeomColl (); pt = geom->FirstPoint; while (pt) { if (geom->DimensionModel == GAIA_XY_Z_M) gaiaAddPointToGeomCollXYZM (result, pt->X, pt->Y, pt->Z, pt->M); else if (geom->DimensionModel == GAIA_XY_Z) gaiaAddPointToGeomCollXYZ (result, pt->X, pt->Y, pt->Z); else if (geom->DimensionModel == GAIA_XY_M) gaiaAddPointToGeomCollXYM (result, pt->X, pt->Y, pt->M); else gaiaAddPointToGeomColl (result, pt->X, pt->Y); pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { for (iv = 0; iv < ln->Points; iv++) { if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); } else if (ln->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); } if (iv > 0) { if (geom->DimensionModel == GAIA_XY_Z_M) { if (x != x0 || y != y0 || z != z0 || m != m0) { segment = gaiaAddLinestringToGeomColl (result, 2); gaiaSetPointXYZM (segment->Coords, 0, x0, y0, z0, m0); gaiaSetPointXYZM (segment->Coords, 1, x, y, z, m); } } else if (geom->DimensionModel == GAIA_XY_Z) { if (x != x0 || y != y0 || z != z0) { segment = gaiaAddLinestringToGeomColl (result, 2); gaiaSetPointXYZ (segment->Coords, 0, x0, y0, z0); gaiaSetPointXYZ (segment->Coords, 1, x, y, z); } } else if (geom->DimensionModel == GAIA_XY_M) { if (x != x0 || y != y0 || m != m0) { segment = gaiaAddLinestringToGeomColl (result, 2); gaiaSetPointXYM (segment->Coords, 0, x0, y0, m0); gaiaSetPointXYM (segment->Coords, 1, x, y, m); } } else { if (x != x0 || y != y0) { segment = gaiaAddLinestringToGeomColl (result, 2); gaiaSetPoint (segment->Coords, 0, x0, y0); gaiaSetPoint (segment->Coords, 1, x, y); } } } x0 = x; y0 = y; z0 = z; m0 = m; } ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { rng = pg->Exterior; for (iv = 0; iv < rng->Points; iv++) { /* exterior Ring */ if (rng->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); } else if (rng->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); } else if (rng->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); } if (iv > 0) { if (geom->DimensionModel == GAIA_XY_Z_M) { if (x != x0 || y != y0 || z != z0 || m != m0) { segment = gaiaAddLinestringToGeomColl (result, 2); gaiaSetPointXYZM (segment->Coords, 0, x0, y0, z0, m0); gaiaSetPointXYZM (segment->Coords, 1, x, y, z, m); } } else if (geom->DimensionModel == GAIA_XY_Z) { if (x != x0 || y != y0 || z != z0) { segment = gaiaAddLinestringToGeomColl (result, 2); gaiaSetPointXYZ (segment->Coords, 0, x0, y0, z0); gaiaSetPointXYZ (segment->Coords, 1, x, y, z); } } else if (geom->DimensionModel == GAIA_XY_M) { if (x != x0 || y != y0 || m != m0) { segment = gaiaAddLinestringToGeomColl (result, 2); gaiaSetPointXYM (segment->Coords, 0, x0, y0, m0); gaiaSetPointXYM (segment->Coords, 1, x, y, m); } } else { if (x != x0 || y != y0) { segment = gaiaAddLinestringToGeomColl (result, 2); gaiaSetPoint (segment->Coords, 0, x0, y0); gaiaSetPoint (segment->Coords, 1, x, y); } } } x0 = x; y0 = y; z0 = z; m0 = m; } for (ib = 0; ib < pg->NumInteriors; ib++) { rng = pg->Interiors + ib; for (iv = 0; iv < rng->Points; iv++) { /* interior Ring */ if (rng->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); } else if (rng->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); } else if (rng->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); } if (iv > 0) { if (geom->DimensionModel == GAIA_XY_Z_M) { if (x != x0 || y != y0 || z != z0 || m != m0) { segment = gaiaAddLinestringToGeomColl (result, 2); gaiaSetPointXYZM (segment->Coords, 0, x0, y0, z0, m0); gaiaSetPointXYZM (segment->Coords, 1, x, y, z, m); } } else if (geom->DimensionModel == GAIA_XY_Z) { if (x != x0 || y != y0 || z != z0) { segment = gaiaAddLinestringToGeomColl (result, 2); gaiaSetPointXYZ (segment->Coords, 0, x0, y0, z0); gaiaSetPointXYZ (segment->Coords, 1, x, y, z); } } else if (geom->DimensionModel == GAIA_XY_M) { if (x != x0 || y != y0 || m != m0) { segment = gaiaAddLinestringToGeomColl (result, 2); gaiaSetPointXYM (segment->Coords, 0, x0, y0, m0); gaiaSetPointXYM (segment->Coords, 1, x, y, m); } } else { if (x != x0 || y != y0) { segment = gaiaAddLinestringToGeomColl (result, 2); gaiaSetPoint (segment->Coords, 0, x0, y0); gaiaSetPoint (segment->Coords, 1, x, y); } } } x0 = x; y0 = y; z0 = z; m0 = m; } } pg = pg->Next; } result->Srid = geom->Srid; return result; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaDissolvePoints (gaiaGeomCollPtr geom) { /* attempts to dissolve a Geometry into points */ gaiaGeomCollPtr result; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; gaiaRingPtr rng; int iv; int ib; double x; double y; double z; double m; if (!geom) return NULL; if (geom->DimensionModel == GAIA_XY_Z_M) result = gaiaAllocGeomCollXYZM (); else if (geom->DimensionModel == GAIA_XY_Z) result = gaiaAllocGeomCollXYZ (); else if (geom->DimensionModel == GAIA_XY_M) result = gaiaAllocGeomCollXYM (); else result = gaiaAllocGeomColl (); pt = geom->FirstPoint; while (pt) { if (geom->DimensionModel == GAIA_XY_Z_M) gaiaAddPointToGeomCollXYZM (result, pt->X, pt->Y, pt->Z, pt->M); else if (geom->DimensionModel == GAIA_XY_Z) gaiaAddPointToGeomCollXYZ (result, pt->X, pt->Y, pt->Z); else if (geom->DimensionModel == GAIA_XY_M) gaiaAddPointToGeomCollXYM (result, pt->X, pt->Y, pt->M); else gaiaAddPointToGeomColl (result, pt->X, pt->Y); pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { for (iv = 0; iv < ln->Points; iv++) { if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); } else if (ln->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); } if (geom->DimensionModel == GAIA_XY_Z_M) gaiaAddPointToGeomCollXYZM (result, x, y, z, m); else if (geom->DimensionModel == GAIA_XY_Z) gaiaAddPointToGeomCollXYZ (result, x, y, z); else if (geom->DimensionModel == GAIA_XY_M) gaiaAddPointToGeomCollXYM (result, x, y, m); else gaiaAddPointToGeomColl (result, x, y); } ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { rng = pg->Exterior; for (iv = 0; iv < rng->Points; iv++) { /* exterior Ring */ if (rng->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); } else if (rng->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); } else if (rng->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); } if (geom->DimensionModel == GAIA_XY_Z_M) gaiaAddPointToGeomCollXYZM (result, x, y, z, m); else if (geom->DimensionModel == GAIA_XY_Z) gaiaAddPointToGeomCollXYZ (result, x, y, z); else if (geom->DimensionModel == GAIA_XY_M) gaiaAddPointToGeomCollXYM (result, x, y, m); else gaiaAddPointToGeomColl (result, x, y); } for (ib = 0; ib < pg->NumInteriors; ib++) { rng = pg->Interiors + ib; for (iv = 0; iv < rng->Points; iv++) { /* interior Ring */ if (rng->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); } else if (rng->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); } else if (rng->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); } if (geom->DimensionModel == GAIA_XY_Z_M) gaiaAddPointToGeomCollXYZM (result, x, y, z, m); else if (geom->DimensionModel == GAIA_XY_Z) gaiaAddPointToGeomCollXYZ (result, x, y, z); else if (geom->DimensionModel == GAIA_XY_M) gaiaAddPointToGeomCollXYM (result, x, y, m); else gaiaAddPointToGeomColl (result, x, y); } } pg = pg->Next; } result->Srid = geom->Srid; return result; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaExtractPointsFromGeomColl (gaiaGeomCollPtr geom) { /* extracts any POINT from a GeometryCollection */ gaiaGeomCollPtr result; gaiaPointPtr pt; int pts = 0; if (!geom) return NULL; pt = geom->FirstPoint; while (pt) { pts++; pt = pt->Next; } if (!pts) return NULL; if (geom->DimensionModel == GAIA_XY_Z_M) result = gaiaAllocGeomCollXYZM (); else if (geom->DimensionModel == GAIA_XY_Z) result = gaiaAllocGeomCollXYZ (); else if (geom->DimensionModel == GAIA_XY_M) result = gaiaAllocGeomCollXYM (); else result = gaiaAllocGeomColl (); pt = geom->FirstPoint; while (pt) { if (geom->DimensionModel == GAIA_XY_Z_M) gaiaAddPointToGeomCollXYZM (result, pt->X, pt->Y, pt->Z, pt->M); else if (geom->DimensionModel == GAIA_XY_Z) gaiaAddPointToGeomCollXYZ (result, pt->X, pt->Y, pt->Z); else if (geom->DimensionModel == GAIA_XY_M) gaiaAddPointToGeomCollXYM (result, pt->X, pt->Y, pt->M); else gaiaAddPointToGeomColl (result, pt->X, pt->Y); pt = pt->Next; } result->Srid = geom->Srid; result->DeclaredType = GAIA_MULTIPOINT; return result; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaExtractLinestringsFromGeomColl (gaiaGeomCollPtr geom) { /* extracts any LINESTRING from a GeometryCollection */ gaiaGeomCollPtr result; gaiaLinestringPtr ln; gaiaLinestringPtr new_ln; int lns = 0; int iv; double x; double y; double z; double m; if (!geom) return NULL; ln = geom->FirstLinestring; while (ln) { lns++; ln = ln->Next; } if (!lns) return NULL; if (geom->DimensionModel == GAIA_XY_Z_M) result = gaiaAllocGeomCollXYZM (); else if (geom->DimensionModel == GAIA_XY_Z) result = gaiaAllocGeomCollXYZ (); else if (geom->DimensionModel == GAIA_XY_M) result = gaiaAllocGeomCollXYM (); else result = gaiaAllocGeomColl (); ln = geom->FirstLinestring; while (ln) { new_ln = gaiaAddLinestringToGeomColl (result, ln->Points); for (iv = 0; iv < ln->Points; iv++) { if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (new_ln->Coords, iv, x, y, z, m); } else if (ln->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (new_ln->Coords, iv, x, y, z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); gaiaSetPointXYM (new_ln->Coords, iv, x, y, m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); gaiaSetPoint (new_ln->Coords, iv, x, y); } } ln = ln->Next; } result->Srid = geom->Srid; result->DeclaredType = GAIA_MULTILINESTRING; return result; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaExtractPolygonsFromGeomColl (gaiaGeomCollPtr geom) { /* extracts any POLYGON from a GeometryCollection */ gaiaGeomCollPtr result; gaiaPolygonPtr pg; gaiaPolygonPtr new_pg; gaiaRingPtr rng; gaiaRingPtr new_rng; int pgs = 0; int iv; int ib; double x; double y; double z; double m; if (!geom) return NULL; pg = geom->FirstPolygon; while (pg) { pgs++; pg = pg->Next; } if (!pgs) return NULL; if (geom->DimensionModel == GAIA_XY_Z_M) result = gaiaAllocGeomCollXYZM (); else if (geom->DimensionModel == GAIA_XY_Z) result = gaiaAllocGeomCollXYZ (); else if (geom->DimensionModel == GAIA_XY_M) result = gaiaAllocGeomCollXYM (); else result = gaiaAllocGeomColl (); pg = geom->FirstPolygon; while (pg) { rng = pg->Exterior; new_pg = gaiaAddPolygonToGeomColl (result, rng->Points, pg->NumInteriors); new_rng = new_pg->Exterior; for (iv = 0; iv < rng->Points; iv++) { if (rng->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (new_rng->Coords, iv, x, y, z, m); } else if (rng->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (new_rng->Coords, iv, x, y, z); } else if (rng->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); gaiaSetPointXYM (new_rng->Coords, iv, x, y, m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); gaiaSetPoint (new_rng->Coords, iv, x, y); } } for (ib = 0; ib < pg->NumInteriors; ib++) { rng = pg->Interiors + ib; new_rng = gaiaAddInteriorRing (new_pg, ib, rng->Points); for (iv = 0; iv < rng->Points; iv++) { if (rng->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (new_rng->Coords, iv, x, y, z, m); } else if (rng->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (new_rng->Coords, iv, x, y, z); } else if (rng->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); gaiaSetPointXYM (new_rng->Coords, iv, x, y, m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); gaiaSetPoint (new_rng->Coords, iv, x, y); } } } pg = pg->Next; } result->Srid = geom->Srid; result->DeclaredType = GAIA_MULTIPOLYGON; return result; } libspatialite-4.1.1/src/gaiageo/geoJSON.h0000664000175000017500000000176012163502133015066 00000000000000#define GEOJSON_NEWLINE 1 #define GEOJSON_OPEN_BRACE 2 #define GEOJSON_TYPE 3 #define GEOJSON_COLON 4 #define GEOJSON_POINT 5 #define GEOJSON_COMMA 6 #define GEOJSON_COORDS 7 #define GEOJSON_CLOSE_BRACE 8 #define GEOJSON_BBOX 9 #define GEOJSON_OPEN_BRACKET 10 #define GEOJSON_CLOSE_BRACKET 11 #define GEOJSON_CRS 12 #define GEOJSON_NAME 13 #define GEOJSON_PROPS 14 #define GEOJSON_NUM 15 #define GEOJSON_SHORT_SRID 16 #define GEOJSON_LONG_SRID 17 #define GEOJSON_LINESTRING 18 #define GEOJSON_POLYGON 19 #define GEOJSON_MULTIPOINT 20 #define GEOJSON_MULTILINESTRING 21 #define GEOJSON_MULTIPOLYGON 22 #define GEOJSON_GEOMETRYCOLLECTION 23 #define GEOJSON_GEOMS 24 libspatialite-4.1.1/src/gaiageo/Kml.h0000664000175000017500000000052012163502133014336 00000000000000#define KML_NEWLINE 1 #define KML_END 2 #define KML_CLOSE 3 #define KML_OPEN 4 #define KML_KEYWORD 5 #define KML_EQ 6 #define KML_VALUE 7 #define KML_COORD 8 libspatialite-4.1.1/src/gaiageo/gg_endian.c0000664000175000017500000004225012163502133015527 00000000000000/* gg_endian.c -- Gaia functions for litte/big endian values handling version 4.1, 2013 May 8 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include GAIAGEO_DECLARE int gaiaEndianArch () { /* checking if target CPU is a little-endian one */ union cvt { unsigned char byte[4]; int int_value; } convert; convert.int_value = 1; if (convert.byte[0] == 0) return 0; return 1; } GAIAGEO_DECLARE short gaiaImport16 (const unsigned char *p, int little_endian, int little_endian_arch) { /* fetches a 16bit int from BLOB respecting declared endiannes */ union cvt { unsigned char byte[2]; short short_value; } convert; if (little_endian_arch) { /* Litte-Endian architecture [e.g. x86] */ if (!little_endian) { /* Big Endian data */ convert.byte[0] = *(p + 1); convert.byte[1] = *(p + 0); } else { /* Little Endian data */ convert.byte[0] = *(p + 0); convert.byte[1] = *(p + 1); } } else { /* Big Endian architecture [e.g. PPC] */ if (!little_endian) { /* Big Endian data */ convert.byte[0] = *(p + 0); convert.byte[1] = *(p + 1); } else { /* Little Endian data */ convert.byte[0] = *(p + 1); convert.byte[1] = *(p + 0); } } return convert.short_value; } GAIAGEO_DECLARE int gaiaImport32 (const unsigned char *p, int little_endian, int little_endian_arch) { /* fetches a 32bit int from BLOB respecting declared endiannes */ union cvt { unsigned char byte[4]; int int_value; } convert; if (little_endian_arch) { /* Litte-Endian architecture [e.g. x86] */ if (!little_endian) { /* Big Endian data */ convert.byte[0] = *(p + 3); convert.byte[1] = *(p + 2); convert.byte[2] = *(p + 1); convert.byte[3] = *(p + 0); } else { /* Little Endian data */ convert.byte[0] = *(p + 0); convert.byte[1] = *(p + 1); convert.byte[2] = *(p + 2); convert.byte[3] = *(p + 3); } } else { /* Big Endian architecture [e.g. PPC] */ if (!little_endian) { /* Big Endian data */ convert.byte[0] = *(p + 0); convert.byte[1] = *(p + 1); convert.byte[2] = *(p + 2); convert.byte[3] = *(p + 3); } else { /* Little Endian data */ convert.byte[0] = *(p + 3); convert.byte[1] = *(p + 2); convert.byte[2] = *(p + 1); convert.byte[3] = *(p + 0); } } return convert.int_value; } GAIAGEO_DECLARE unsigned int gaiaImportU32 (const unsigned char *p, int little_endian, int little_endian_arch) { /* fetches a 32bit uint from BLOB respecting declared endiannes */ union cvt { unsigned char byte[4]; unsigned int int_value; } convert; if (little_endian_arch) { /* Litte-Endian architecture [e.g. x86] */ if (!little_endian) { /* Big Endian data */ convert.byte[0] = *(p + 3); convert.byte[1] = *(p + 2); convert.byte[2] = *(p + 1); convert.byte[3] = *(p + 0); } else { /* Little Endian data */ convert.byte[0] = *(p + 0); convert.byte[1] = *(p + 1); convert.byte[2] = *(p + 2); convert.byte[3] = *(p + 3); } } else { /* Big Endian architecture [e.g. PPC] */ if (!little_endian) { /* Big Endian data */ convert.byte[0] = *(p + 0); convert.byte[1] = *(p + 1); convert.byte[2] = *(p + 2); convert.byte[3] = *(p + 3); } else { /* Little Endian data */ convert.byte[0] = *(p + 3); convert.byte[1] = *(p + 2); convert.byte[2] = *(p + 1); convert.byte[3] = *(p + 0); } } return convert.int_value; } GAIAGEO_DECLARE float gaiaImportF32 (const unsigned char *p, int little_endian, int little_endian_arch) { /* fetches a 32bit float from BLOB respecting declared endiannes */ union cvt { unsigned char byte[4]; float flt_value; } convert; if (little_endian_arch) { /* Litte-Endian architecture [e.g. x86] */ if (!little_endian) { /* Big Endian data */ convert.byte[0] = *(p + 3); convert.byte[1] = *(p + 2); convert.byte[2] = *(p + 1); convert.byte[3] = *(p + 0); } else { /* Little Endian data */ convert.byte[0] = *(p + 0); convert.byte[1] = *(p + 1); convert.byte[2] = *(p + 2); convert.byte[3] = *(p + 3); } } else { /* Big Endian architecture [e.g. PPC] */ if (!little_endian) { /* Big Endian data */ convert.byte[0] = *(p + 0); convert.byte[1] = *(p + 1); convert.byte[2] = *(p + 2); convert.byte[3] = *(p + 3); } else { /* Little Endian data */ convert.byte[0] = *(p + 3); convert.byte[1] = *(p + 2); convert.byte[2] = *(p + 1); convert.byte[3] = *(p + 0); } } return convert.flt_value; } GAIAGEO_DECLARE double gaiaImport64 (const unsigned char *p, int little_endian, int little_endian_arch) { /* fetches a 64bit double from BLOB respecting declared endiannes */ union cvt { unsigned char byte[8]; double double_value; } convert; if (little_endian_arch) { /* Litte-Endian architecture [e.g. x86] */ if (!little_endian) { /* Big Endian data */ convert.byte[0] = *(p + 7); convert.byte[1] = *(p + 6); convert.byte[2] = *(p + 5); convert.byte[3] = *(p + 4); convert.byte[4] = *(p + 3); convert.byte[5] = *(p + 2); convert.byte[6] = *(p + 1); convert.byte[7] = *(p + 0); } else { /* Little Endian data */ convert.byte[0] = *(p + 0); convert.byte[1] = *(p + 1); convert.byte[2] = *(p + 2); convert.byte[3] = *(p + 3); convert.byte[4] = *(p + 4); convert.byte[5] = *(p + 5); convert.byte[6] = *(p + 6); convert.byte[7] = *(p + 7); } } else { /* Big Endian architecture [e.g. PPC] */ if (!little_endian) { /* Big Endian data */ convert.byte[0] = *(p + 0); convert.byte[1] = *(p + 1); convert.byte[2] = *(p + 2); convert.byte[3] = *(p + 3); convert.byte[4] = *(p + 4); convert.byte[5] = *(p + 5); convert.byte[6] = *(p + 6); convert.byte[7] = *(p + 7); } else { /* Little Endian data */ convert.byte[0] = *(p + 7); convert.byte[1] = *(p + 6); convert.byte[2] = *(p + 5); convert.byte[3] = *(p + 4); convert.byte[4] = *(p + 3); convert.byte[5] = *(p + 2); convert.byte[6] = *(p + 1); convert.byte[7] = *(p + 0); } } return convert.double_value; } GAIAGEO_DECLARE sqlite3_int64 gaiaImportI64 (const unsigned char *p, int little_endian, int little_endian_arch) { /* fetches a 64bit INT from BLOB respecting declared endiannes */ union cvt { unsigned char byte[8]; sqlite3_int64 int64_value; } convert; if (little_endian_arch) { /* Litte-Endian architecture [e.g. x86] */ if (!little_endian) { /* Big Endian data */ convert.byte[0] = *(p + 7); convert.byte[1] = *(p + 6); convert.byte[2] = *(p + 5); convert.byte[3] = *(p + 4); convert.byte[4] = *(p + 3); convert.byte[5] = *(p + 2); convert.byte[6] = *(p + 1); convert.byte[7] = *(p + 0); } else { /* Little Endian data */ convert.byte[0] = *(p + 0); convert.byte[1] = *(p + 1); convert.byte[2] = *(p + 2); convert.byte[3] = *(p + 3); convert.byte[4] = *(p + 4); convert.byte[5] = *(p + 5); convert.byte[6] = *(p + 6); convert.byte[7] = *(p + 7); } } else { /* Big Endian architecture [e.g. PPC] */ if (!little_endian) { /* Big Endian data */ convert.byte[0] = *(p + 0); convert.byte[1] = *(p + 1); convert.byte[2] = *(p + 2); convert.byte[3] = *(p + 3); convert.byte[4] = *(p + 4); convert.byte[5] = *(p + 5); convert.byte[6] = *(p + 6); convert.byte[7] = *(p + 7); } else { /* Little Endian data */ convert.byte[0] = *(p + 7); convert.byte[1] = *(p + 6); convert.byte[2] = *(p + 5); convert.byte[3] = *(p + 4); convert.byte[4] = *(p + 3); convert.byte[5] = *(p + 2); convert.byte[6] = *(p + 1); convert.byte[7] = *(p + 0); } } return convert.int64_value; } GAIAGEO_DECLARE void gaiaExport16 (unsigned char *p, short value, int little_endian, int little_endian_arch) { /* stores a 16bit int into a BLOB respecting declared endiannes */ union cvt { unsigned char byte[2]; short short_value; } convert; convert.short_value = value; if (little_endian_arch) { /* Litte-Endian architecture [e.g. x86] */ if (!little_endian) { /* Big Endian data */ *(p + 1) = convert.byte[1]; *(p + 0) = convert.byte[0]; } else { /* Little Endian data */ *(p + 0) = convert.byte[0]; *(p + 1) = convert.byte[1]; } } else { /* Big Endian architecture [e.g. PPC] */ if (!little_endian) { /* Big Endian data */ *(p + 0) = convert.byte[0]; *(p + 1) = convert.byte[1]; } else { /* Little Endian data */ *(p + 1) = convert.byte[0]; *(p + 0) = convert.byte[1]; } } } GAIAGEO_DECLARE void gaiaExport32 (unsigned char *p, int value, int little_endian, int little_endian_arch) { /* stores a 32bit int into a BLOB respecting declared endiannes */ union cvt { unsigned char byte[4]; int int_value; } convert; convert.int_value = value; if (little_endian_arch) { /* Litte-Endian architecture [e.g. x86] */ if (!little_endian) { /* Big Endian data */ *(p + 3) = convert.byte[0]; *(p + 2) = convert.byte[1]; *(p + 1) = convert.byte[2]; *(p + 0) = convert.byte[3]; } else { /* Little Endian data */ *(p + 0) = convert.byte[0]; *(p + 1) = convert.byte[1]; *(p + 2) = convert.byte[2]; *(p + 3) = convert.byte[3]; } } else { /* Big Endian architecture [e.g. PPC] */ if (!little_endian) { /* Big Endian data */ *(p + 0) = convert.byte[0]; *(p + 1) = convert.byte[1]; *(p + 2) = convert.byte[2]; *(p + 3) = convert.byte[3]; } else { /* Little Endian data */ *(p + 3) = convert.byte[0]; *(p + 2) = convert.byte[1]; *(p + 1) = convert.byte[2]; *(p + 0) = convert.byte[3]; } } } GAIAGEO_DECLARE void gaiaExportU32 (unsigned char *p, unsigned int value, int little_endian, int little_endian_arch) { /* stores a 32bit int into a BLOB respecting declared endiannes */ union cvt { unsigned char byte[4]; unsigned int int_value; } convert; convert.int_value = value; if (little_endian_arch) { /* Litte-Endian architecture [e.g. x86] */ if (!little_endian) { /* Big Endian data */ *(p + 3) = convert.byte[0]; *(p + 2) = convert.byte[1]; *(p + 1) = convert.byte[2]; *(p + 0) = convert.byte[3]; } else { /* Little Endian data */ *(p + 0) = convert.byte[0]; *(p + 1) = convert.byte[1]; *(p + 2) = convert.byte[2]; *(p + 3) = convert.byte[3]; } } else { /* Big Endian architecture [e.g. PPC] */ if (!little_endian) { /* Big Endian data */ *(p + 0) = convert.byte[0]; *(p + 1) = convert.byte[1]; *(p + 2) = convert.byte[2]; *(p + 3) = convert.byte[3]; } else { /* Little Endian data */ *(p + 3) = convert.byte[0]; *(p + 2) = convert.byte[1]; *(p + 1) = convert.byte[2]; *(p + 0) = convert.byte[3]; } } } GAIAGEO_DECLARE void gaiaExportF32 (unsigned char *p, float value, int little_endian, int little_endian_arch) { /* stores a 32bit float into a BLOB respecting declared endiannes */ union cvt { unsigned char byte[4]; float flt_value; } convert; convert.flt_value = value; if (little_endian_arch) { /* Litte-Endian architecture [e.g. x86] */ if (!little_endian) { /* Big Endian data */ *(p + 3) = convert.byte[0]; *(p + 2) = convert.byte[1]; *(p + 1) = convert.byte[2]; *(p + 0) = convert.byte[3]; } else { /* Little Endian data */ *(p + 0) = convert.byte[0]; *(p + 1) = convert.byte[1]; *(p + 2) = convert.byte[2]; *(p + 3) = convert.byte[3]; } } else { /* Big Endian architecture [e.g. PPC] */ if (!little_endian) { /* Big Endian data */ *(p + 0) = convert.byte[0]; *(p + 1) = convert.byte[1]; *(p + 2) = convert.byte[2]; *(p + 3) = convert.byte[3]; } else { /* Little Endian data */ *(p + 3) = convert.byte[0]; *(p + 2) = convert.byte[1]; *(p + 1) = convert.byte[2]; *(p + 0) = convert.byte[3]; } } } GAIAGEO_DECLARE void gaiaExport64 (unsigned char *p, double value, int little_endian, int little_endian_arch) { /* stores a 64bit double into a BLOB respecting declared endiannes */ union cvt { unsigned char byte[8]; double double_value; } convert; convert.double_value = value; if (little_endian_arch) { /* Litte-Endian architecture [e.g. x86] */ if (!little_endian) { /* Big Endian data */ *(p + 7) = convert.byte[0]; *(p + 6) = convert.byte[1]; *(p + 5) = convert.byte[2]; *(p + 4) = convert.byte[3]; *(p + 3) = convert.byte[4]; *(p + 2) = convert.byte[5]; *(p + 1) = convert.byte[6]; *(p + 0) = convert.byte[7]; } else { /* Little Endian data */ *(p + 0) = convert.byte[0]; *(p + 1) = convert.byte[1]; *(p + 2) = convert.byte[2]; *(p + 3) = convert.byte[3]; *(p + 4) = convert.byte[4]; *(p + 5) = convert.byte[5]; *(p + 6) = convert.byte[6]; *(p + 7) = convert.byte[7]; } } else { /* Big Endian architecture [e.g. PPC] */ if (!little_endian) { /* Big Endian data */ *(p + 0) = convert.byte[0]; *(p + 1) = convert.byte[1]; *(p + 2) = convert.byte[2]; *(p + 3) = convert.byte[3]; *(p + 4) = convert.byte[4]; *(p + 5) = convert.byte[5]; *(p + 6) = convert.byte[6]; *(p + 7) = convert.byte[7]; } else { /* Little Endian data */ *(p + 7) = convert.byte[0]; *(p + 6) = convert.byte[1]; *(p + 5) = convert.byte[2]; *(p + 4) = convert.byte[3]; *(p + 3) = convert.byte[4]; *(p + 2) = convert.byte[5]; *(p + 1) = convert.byte[6]; *(p + 0) = convert.byte[7]; } } } GAIAGEO_DECLARE void gaiaExportI64 (unsigned char *p, sqlite3_int64 value, int little_endian, int little_endian_arch) { /* stores a 64bit INT into a BLOB respecting declared endiannes */ union cvt { unsigned char byte[8]; sqlite3_int64 int64_value; } convert; convert.int64_value = value; if (little_endian_arch) { /* Litte-Endian architecture [e.g. x86] */ if (!little_endian) { /* Big Endian data */ *(p + 7) = convert.byte[0]; *(p + 6) = convert.byte[1]; *(p + 5) = convert.byte[2]; *(p + 4) = convert.byte[3]; *(p + 3) = convert.byte[4]; *(p + 2) = convert.byte[5]; *(p + 1) = convert.byte[6]; *(p + 0) = convert.byte[7]; } else { /* Little Endian data */ *(p + 0) = convert.byte[0]; *(p + 1) = convert.byte[1]; *(p + 2) = convert.byte[2]; *(p + 3) = convert.byte[3]; *(p + 4) = convert.byte[4]; *(p + 5) = convert.byte[5]; *(p + 6) = convert.byte[6]; *(p + 7) = convert.byte[7]; } } else { /* Big Endian architecture [e.g. PPC] */ if (!little_endian) { /* Big Endian data */ *(p + 0) = convert.byte[0]; *(p + 1) = convert.byte[1]; *(p + 2) = convert.byte[2]; *(p + 3) = convert.byte[3]; *(p + 4) = convert.byte[4]; *(p + 5) = convert.byte[5]; *(p + 6) = convert.byte[6]; *(p + 7) = convert.byte[7]; } else { /* Little Endian data */ *(p + 7) = convert.byte[0]; *(p + 6) = convert.byte[1]; *(p + 5) = convert.byte[2]; *(p + 4) = convert.byte[3]; *(p + 3) = convert.byte[4]; *(p + 2) = convert.byte[5]; *(p + 1) = convert.byte[6]; *(p + 0) = convert.byte[7]; } } } libspatialite-4.1.1/src/gaiageo/lex.Ewkt.c0000664000175000017500000016451112163502133015322 00000000000000 #line 3 "lex.Ewkt.c" #define YY_INT_ALIGNED short int /* A lexical scanner generated by flex */ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 5 #define YY_FLEX_SUBMINOR_VERSION 35 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ #include #include #include #include /* end standard C headers. */ /* flex integer type definitions */ #ifndef FLEXINT_H #define FLEXINT_H /* C99 systems have . Non-C99 systems may or may not. */ #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, * if you want the limit (max/min) macros for int types. */ #ifndef __STDC_LIMIT_MACROS #define __STDC_LIMIT_MACROS 1 #endif #include typedef int8_t flex_int8_t; typedef uint8_t flex_uint8_t; typedef int16_t flex_int16_t; typedef uint16_t flex_uint16_t; typedef int32_t flex_int32_t; typedef uint32_t flex_uint32_t; #else typedef signed char flex_int8_t; typedef short int flex_int16_t; typedef int flex_int32_t; typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; #endif /* ! C99 */ /* Limits of integral types. */ #ifndef INT8_MIN #define INT8_MIN (-128) #endif #ifndef INT16_MIN #define INT16_MIN (-32767-1) #endif #ifndef INT32_MIN #define INT32_MIN (-2147483647-1) #endif #ifndef INT8_MAX #define INT8_MAX (127) #endif #ifndef INT16_MAX #define INT16_MAX (32767) #endif #ifndef INT32_MAX #define INT32_MAX (2147483647) #endif #ifndef UINT8_MAX #define UINT8_MAX (255U) #endif #ifndef UINT16_MAX #define UINT16_MAX (65535U) #endif #ifndef UINT32_MAX #define UINT32_MAX (4294967295U) #endif #endif /* ! FLEXINT_H */ #ifdef __cplusplus /* The "const" storage-class-modifier is valid. */ #define YY_USE_CONST #else /* ! __cplusplus */ /* C99 requires __STDC__ to be defined as 1. */ #if defined (__STDC__) #define YY_USE_CONST #endif /* defined (__STDC__) */ #endif /* ! __cplusplus */ #ifdef YY_USE_CONST #define yyconst const #else #define yyconst #endif /* Returned upon end-of-file. */ #define YY_NULL 0 /* Promotes a possibly negative, possibly signed char to an unsigned * integer for use as an array index. If the signed char is negative, * we want to instead treat it as an 8-bit unsigned char, hence the * double cast. */ #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) /* An opaque pointer. */ #ifndef YY_TYPEDEF_YY_SCANNER_T #define YY_TYPEDEF_YY_SCANNER_T typedef void *yyscan_t; #endif /* For convenience, these vars (plus the bison vars far below) are macros in the reentrant scanner. */ #define yyin yyg->yyin_r #define yyout yyg->yyout_r #define yyextra yyg->yyextra_r #define yyleng yyg->yyleng_r #define yytext yyg->yytext_r #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno) #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column) #define yy_flex_debug yyg->yy_flex_debug_r /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN yyg->yy_start = 1 + 2 * /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START ((yyg->yy_start - 1) / 2) #define YYSTATE YY_START /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) /* Special action meaning "start processing a new file". */ #define YY_NEW_FILE Ewktrestart(yyin ,yyscanner ) #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #ifndef YY_BUF_SIZE #define YY_BUF_SIZE 16384 #endif /* The state buf must be large enough to hold one state per character in the main buffer. */ #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) #ifndef YY_TYPEDEF_YY_BUFFER_STATE #define YY_TYPEDEF_YY_BUFFER_STATE typedef struct yy_buffer_state *YY_BUFFER_STATE; #endif #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 #define YY_LESS_LINENO(n) /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ *yy_cp = yyg->yy_hold_char; \ YY_RESTORE_YY_MORE_OFFSET \ yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner ) #ifndef YY_TYPEDEF_YY_SIZE_T #define YY_TYPEDEF_YY_SIZE_T typedef size_t yy_size_t; #endif #ifndef YY_STRUCT_YY_BUFFER_STATE #define YY_STRUCT_YY_BUFFER_STATE struct yy_buffer_state { FILE *yy_input_file; char *yy_ch_buf; /* input buffer */ char *yy_buf_pos; /* current position in input buffer */ /* Size of input buffer in bytes, not including room for EOB * characters. */ yy_size_t yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. */ int yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to * delete it. */ int yy_is_our_buffer; /* Whether this is an "interactive" input source; if so, and * if we're using stdio for input, then we want to use getc() * instead of fread(), to make sure we stop fetching input after * each newline. */ int yy_is_interactive; /* Whether we're considered to be at the beginning of a line. * If so, '^' rules will be active on the next match, otherwise * not. */ int yy_at_bol; int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ /* Whether to try to fill the input buffer when we reach the * end of it. */ int yy_fill_buffer; int yy_buffer_status; #define YY_BUFFER_NEW 0 #define YY_BUFFER_NORMAL 1 /* When an EOF's been seen but there's still some text to process * then we mark the buffer as YY_EOF_PENDING, to indicate that we * shouldn't try reading from the input source any more. We might * still have a bunch of tokens to match, though, because of * possible backing-up. * * When we actually see the EOF, we change the status to "new" * (via Ewktrestart()), so that the user can continue scanning by * just pointing yyin at a new input file. */ #define YY_BUFFER_EOF_PENDING 2 }; #endif /* !YY_STRUCT_YY_BUFFER_STATE */ /* We provide macros for accessing buffer states in case in the * future we want to put the buffer states in a more general * "scanner state". * * Returns the top of the stack, or NULL. */ #define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \ ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \ : NULL) /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] void Ewktrestart (FILE * input_file, yyscan_t yyscanner); void Ewkt_switch_to_buffer (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner); YY_BUFFER_STATE Ewkt_create_buffer (FILE * file, int size, yyscan_t yyscanner); void Ewkt_delete_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner); void Ewkt_flush_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner); void Ewktpush_buffer_state (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner); void Ewktpop_buffer_state (yyscan_t yyscanner); static void Ewktensure_buffer_stack (yyscan_t yyscanner); static void Ewkt_load_buffer_state (yyscan_t yyscanner); static void Ewkt_init_buffer (YY_BUFFER_STATE b, FILE * file, yyscan_t yyscanner); #define YY_FLUSH_BUFFER Ewkt_flush_buffer(YY_CURRENT_BUFFER ,yyscanner) YY_BUFFER_STATE Ewkt_scan_buffer (char *base, yy_size_t size, yyscan_t yyscanner); YY_BUFFER_STATE Ewkt_scan_string (yyconst char *yy_str, yyscan_t yyscanner); YY_BUFFER_STATE Ewkt_scan_bytes (yyconst char *bytes, int len, yyscan_t yyscanner); void *Ewktalloc (yy_size_t, yyscan_t yyscanner); void *Ewktrealloc (void *, yy_size_t, yyscan_t yyscanner); void Ewktfree (void *, yyscan_t yyscanner); #define yy_new_buffer Ewkt_create_buffer #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ Ewktensure_buffer_stack (yyscanner); \ YY_CURRENT_BUFFER_LVALUE = \ Ewkt_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ Ewktensure_buffer_stack (yyscanner); \ YY_CURRENT_BUFFER_LVALUE = \ Ewkt_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* Begin user sect3 */ typedef unsigned char YY_CHAR; typedef int yy_state_type; #define yytext_ptr yytext_r static yy_state_type yy_get_previous_state (yyscan_t yyscanner); static yy_state_type yy_try_NUL_trans (yy_state_type current_state, yyscan_t yyscanner); static int yy_get_next_buffer (yyscan_t yyscanner); static void yy_fatal_error (yyconst char msg[], yyscan_t yyscanner); /* Done after the current pattern has been matched and before the * corresponding action - sets up yytext. */ #define YY_DO_BEFORE_ACTION \ yyg->yytext_ptr = yy_bp; \ yyleng = (size_t) (yy_cp - yy_bp); \ yyg->yy_hold_char = *yy_cp; \ *yy_cp = '\0'; \ yyg->yy_c_buf_p = yy_cp; #define YY_NUM_RULES 22 #define YY_END_OF_BUFFER 23 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info { flex_int32_t yy_verify; flex_int32_t yy_nxt; }; static yyconst flex_int16_t yy_accept[93] = { 0, 0, 0, 23, 21, 19, 20, 3, 4, 21, 2, 21, 1, 21, 21, 21, 21, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 7, 0, 11, 0, 0, 8, 0, 12, 0, 0, 0, 15, 0, 0, 16, 0, 0, 0, 13, 0, 14, 0, 17, 18, 0 }; static yyconst flex_int32_t yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 4, 5, 1, 6, 7, 8, 9, 1, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 1, 1, 1, 1, 1, 1, 1, 1, 1, 11, 1, 12, 1, 13, 1, 14, 1, 1, 15, 16, 17, 18, 19, 1, 20, 21, 22, 23, 1, 1, 1, 24, 1, 1, 1, 1, 1, 1, 1, 1, 1, 25, 1, 26, 1, 27, 1, 28, 1, 1, 29, 30, 31, 32, 33, 1, 34, 35, 36, 37, 1, 1, 1, 38, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }; static yyconst flex_int32_t yy_meta[39] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }; static yyconst flex_int16_t yy_base[93] = { 0, 0, 0, 187, 188, 188, 188, 188, 188, 174, 188, 173, 30, 29, 28, 20, 26, 36, 38, 172, 40, 33, 35, 38, 45, 171, 166, 165, 38, 49, 40, 46, 40, 164, 163, 57, 49, 57, 50, 66, 58, 59, 72, 66, 70, 69, 70, 78, 79, 188, 81, 75, 86, 90, 94, 94, 104, 99, 105, 101, 95, 188, 102, 112, 105, 105, 115, 120, 120, 115, 122, 125, 129, 188, 125, 188, 129, 135, 134, 137, 143, 138, 188, 134, 150, 150, 149, 148, 188, 154, 156, 188, 188 }; static yyconst flex_int16_t yy_def[93] = { 0, 92, 1, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 0 }; static yyconst flex_int16_t yy_nxt[227] = { 0, 4, 5, 6, 7, 8, 9, 10, 11, 4, 12, 4, 4, 13, 4, 14, 15, 4, 4, 16, 4, 4, 4, 4, 4, 4, 4, 13, 4, 14, 15, 4, 4, 16, 4, 4, 4, 4, 4, 19, 20, 21, 22, 23, 24, 25, 17, 26, 18, 19, 20, 28, 29, 30, 35, 21, 22, 23, 24, 31, 32, 36, 37, 38, 39, 28, 29, 30, 35, 40, 41, 42, 43, 31, 32, 36, 37, 38, 39, 44, 45, 46, 49, 40, 41, 42, 43, 47, 50, 51, 52, 48, 53, 44, 45, 46, 49, 54, 55, 56, 57, 47, 50, 51, 52, 48, 53, 58, 59, 60, 61, 54, 55, 56, 57, 62, 63, 64, 65, 66, 67, 58, 59, 60, 61, 68, 69, 70, 71, 62, 63, 64, 65, 66, 67, 72, 73, 74, 75, 68, 69, 70, 71, 76, 77, 78, 79, 80, 81, 72, 73, 74, 75, 82, 83, 84, 85, 76, 77, 78, 79, 80, 81, 86, 87, 88, 89, 82, 83, 84, 85, 90, 91, 34, 33, 27, 34, 86, 87, 88, 89, 33, 27, 18, 17, 90, 91, 92, 3, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92 }; static yyconst flex_int16_t yy_chk[227] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 12, 12, 13, 14, 15, 16, 17, 17, 18, 18, 20, 20, 21, 22, 23, 28, 13, 14, 15, 16, 24, 24, 29, 30, 31, 32, 21, 22, 23, 28, 35, 36, 37, 38, 24, 24, 29, 30, 31, 32, 39, 40, 41, 43, 35, 36, 37, 38, 42, 44, 45, 46, 42, 47, 39, 40, 41, 43, 48, 50, 51, 52, 42, 44, 45, 46, 42, 47, 53, 54, 54, 55, 48, 50, 51, 52, 56, 57, 58, 59, 60, 62, 53, 54, 54, 55, 63, 64, 65, 66, 56, 57, 58, 59, 60, 62, 67, 68, 69, 70, 63, 64, 65, 66, 71, 72, 74, 76, 77, 78, 67, 68, 69, 70, 79, 80, 81, 83, 71, 72, 74, 76, 77, 78, 84, 85, 86, 87, 79, 80, 81, 83, 89, 90, 34, 33, 27, 26, 84, 85, 86, 87, 25, 19, 11, 9, 89, 90, 3, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92 }; /* The intent behind this definition is that it'll catch * any uses of REJECT which flex missed. */ #define REJECT reject_used_but_not_detected #define yymore() yymore_used_but_not_detected #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET /* EwktLexer.l -- EWKT parser - FLEX config version 2.4, 2011 May 14 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #define YY_NO_INPUT 1 /** * The main string-token matcher. * The lower case part is probably not needed. We should really be converting * The string to all uppercase/lowercase to make it case iNsEnSiTiVe. * What Flex will do is, For the input string, beginning from the front, Flex * will try to match with any of the defined tokens from below. Flex will * then match the string of longest length. Suppose the string is: POINTM, * Flex would match both POINT and POINTM, but since POINTM is the longer * of the two tokens, FLEX will match POINTM. */ #define INITIAL 0 #ifndef YY_NO_UNISTD_H /* Special case for "unistd.h", since it is non-ANSI. We include it way * down here because we want the user's section 1 to have been scanned first. * The user has a chance to override it with an option. */ #include #endif #define YY_EXTRA_TYPE struct ewkt_data * /* Holds the entire state of the reentrant scanner. */ struct yyguts_t { /* User-defined. Not touched by flex. */ YY_EXTRA_TYPE yyextra_r; /* The rest are the same as the globals declared in the non-reentrant scanner. */ FILE *yyin_r, *yyout_r; size_t yy_buffer_stack_top; /**< index of top of stack. */ size_t yy_buffer_stack_max; /**< capacity of stack. */ YY_BUFFER_STATE *yy_buffer_stack; /**< Stack as an array. */ char yy_hold_char; int yy_n_chars; int yyleng_r; char *yy_c_buf_p; int yy_init; int yy_start; int yy_did_buffer_switch_on_eof; int yy_start_stack_ptr; int yy_start_stack_depth; int *yy_start_stack; yy_state_type yy_last_accepting_state; char *yy_last_accepting_cpos; int yylineno_r; int yy_flex_debug_r; char *yytext_r; int yy_more_flag; int yy_more_len; }; /* end struct yyguts_t */ static int yy_init_globals (yyscan_t yyscanner); int Ewktlex_init (yyscan_t * scanner); int Ewktlex_init_extra (YY_EXTRA_TYPE user_defined, yyscan_t * scanner); /* Accessor methods to globals. These are made visible to non-reentrant scanners for convenience. */ int Ewktlex_destroy (yyscan_t yyscanner); int Ewktget_debug (yyscan_t yyscanner); void Ewktset_debug (int debug_flag, yyscan_t yyscanner); YY_EXTRA_TYPE Ewktget_extra (yyscan_t yyscanner); void Ewktset_extra (YY_EXTRA_TYPE user_defined, yyscan_t yyscanner); FILE *Ewktget_in (yyscan_t yyscanner); void Ewktset_in (FILE * in_str, yyscan_t yyscanner); FILE *Ewktget_out (yyscan_t yyscanner); void Ewktset_out (FILE * out_str, yyscan_t yyscanner); int Ewktget_leng (yyscan_t yyscanner); char *Ewktget_text (yyscan_t yyscanner); int Ewktget_lineno (yyscan_t yyscanner); void Ewktset_lineno (int line_number, yyscan_t yyscanner); int Ewktget_column (yyscan_t yyscanner); void Ewktset_column (int column_no, yyscan_t yyscanner); /* Macros after this point can all be overridden by user definitions in * section 1. */ #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus extern "C" int Ewktwrap (yyscan_t yyscanner); #else extern int Ewktwrap (yyscan_t yyscanner); #endif #endif #ifndef yytext_ptr static void yy_flex_strncpy (char *, yyconst char *, int, yyscan_t yyscanner); #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen (yyconst char *, yyscan_t yyscanner); #endif #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput (yyscan_t yyscanner); #else static int input (yyscan_t yyscanner); #endif #endif /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE #define YY_READ_BUF_SIZE 8192 #endif /* Copy whatever the last rule matched to the standard output. */ #ifndef ECHO /* This used to be an fputs(), but since the string might contain NUL's, * we now use fwrite(). */ #define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0) #endif /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, * is returned in "result". */ #ifndef YY_INPUT #define YY_INPUT(buf,result,max_size) \ if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ { \ int c = '*'; \ unsigned n; \ for ( n = 0; n < max_size && \ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ if ( c == '\n' ) \ buf[n++] = (char) c; \ if ( c == EOF && ferror( yyin ) ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ result = n; \ } \ else \ { \ errno=0; \ while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \ { \ if( errno != EINTR) \ { \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ break; \ } \ errno=0; \ clearerr(yyin); \ } \ }\ \ #endif /* No semi-colon after return; correct usage is to write "yyterminate();" - * we don't want an extra ';' after the "return" because that will cause * some compilers to complain about unreachable statements. */ #ifndef yyterminate #define yyterminate() return YY_NULL #endif /* Number of entries by which start-condition stack grows. */ #ifndef YY_START_STACK_INCR #define YY_START_STACK_INCR 25 #endif /* Report a fatal error. */ #ifndef YY_FATAL_ERROR #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner) #endif /* end tables serialization structures and prototypes */ /* Default declaration of generated scanner - a define so the user can * easily add parameters. */ #ifndef YY_DECL #define YY_DECL_IS_OURS 1 extern int Ewktlex (yyscan_t yyscanner); #define YY_DECL int Ewktlex (yyscan_t yyscanner) #endif /* !YY_DECL */ /* Code executed at the beginning of each rule, after yytext and yyleng * have been set up. */ #ifndef YY_USER_ACTION #define YY_USER_ACTION #endif /* Code executed at the end of each rule. */ #ifndef YY_BREAK #define YY_BREAK break; #endif #define YY_RULE_SETUP \ YY_USER_ACTION /** The main scanner function which does all the work. */ YY_DECL { register yy_state_type yy_current_state; register char *yy_cp, *yy_bp; register int yy_act; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!yyg->yy_init) { yyg->yy_init = 1; #ifdef YY_USER_INIT YY_USER_INIT; #endif if (!yyg->yy_start) yyg->yy_start = 1; /* first start state */ if (!yyin) yyin = stdin; if (!yyout) yyout = stdout; if (!YY_CURRENT_BUFFER) { Ewktensure_buffer_stack (yyscanner); YY_CURRENT_BUFFER_LVALUE = Ewkt_create_buffer (yyin, YY_BUF_SIZE, yyscanner); } Ewkt_load_buffer_state (yyscanner); } while (1) /* loops until end-of-file is reached */ { yy_cp = yyg->yy_c_buf_p; /* Support of yytext. */ *yy_cp = yyg->yy_hold_char; /* yy_bp points to the position in yy_ch_buf of the start of * the current run. */ yy_bp = yy_cp; yy_current_state = yyg->yy_start; yy_match: do { register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI (*yy_cp)]; if (yy_accept[yy_current_state]) { yyg->yy_last_accepting_state = yy_current_state; yyg->yy_last_accepting_cpos = yy_cp; } while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state) { yy_current_state = (int) yy_def[yy_current_state]; if (yy_current_state >= 93) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } while (yy_base[yy_current_state] != 188); yy_find_action: yy_act = yy_accept[yy_current_state]; if (yy_act == 0) { /* have to back up */ yy_cp = yyg->yy_last_accepting_cpos; yy_current_state = yyg->yy_last_accepting_state; yy_act = yy_accept[yy_current_state]; } YY_DO_BEFORE_ACTION; do_action: /* This label is used only to access EOF actions. */ switch (yy_act) { /* beginning of action switch */ case 0: /* must back up */ /* undo the effects of YY_DO_BEFORE_ACTION */ *yy_cp = yyg->yy_hold_char; yy_cp = yyg->yy_last_accepting_cpos; yy_current_state = yyg->yy_last_accepting_state; goto yy_find_action; case 1: YY_RULE_SETUP { Ewktget_extra (yyscanner)->ewkt_col += (int) strlen (yytext); Ewktget_extra (yyscanner)->EwktLval.dval = atof (yytext); return EWKT_NUM; } YY_BREAK case 2: YY_RULE_SETUP { Ewktget_extra (yyscanner)->EwktLval.dval = 0; return EWKT_COMMA; } YY_BREAK case 3: YY_RULE_SETUP { Ewktget_extra (yyscanner)->EwktLval.dval = 0; return EWKT_OPEN_BRACKET; } YY_BREAK case 4: YY_RULE_SETUP { Ewktget_extra (yyscanner)->EwktLval.dval = 0; return EWKT_CLOSE_BRACKET; } YY_BREAK case 5: YY_RULE_SETUP { Ewktget_extra (yyscanner)->EwktLval.dval = 0; return EWKT_POINT; } YY_BREAK case 6: YY_RULE_SETUP { Ewktget_extra (yyscanner)->EwktLval.dval = 0; return EWKT_POINT_M; } YY_BREAK case 7: YY_RULE_SETUP { Ewktget_extra (yyscanner)->EwktLval.dval = 0; return EWKT_LINESTRING; } YY_BREAK case 8: YY_RULE_SETUP { Ewktget_extra (yyscanner)->EwktLval.dval = 0; return EWKT_LINESTRING_M; } YY_BREAK case 9: YY_RULE_SETUP { Ewktget_extra (yyscanner)->EwktLval.dval = 0; return EWKT_POLYGON; } YY_BREAK case 10: YY_RULE_SETUP { Ewktget_extra (yyscanner)->EwktLval.dval = 0; return EWKT_POLYGON_M; } YY_BREAK case 11: YY_RULE_SETUP { Ewktget_extra (yyscanner)->EwktLval.dval = 0; return EWKT_MULTIPOINT; } YY_BREAK case 12: YY_RULE_SETUP { Ewktget_extra (yyscanner)->EwktLval.dval = 0; return EWKT_MULTIPOINT_M; } YY_BREAK case 13: YY_RULE_SETUP { Ewktget_extra (yyscanner)->EwktLval.dval = 0; return EWKT_MULTILINESTRING; } YY_BREAK case 14: YY_RULE_SETUP { Ewktget_extra (yyscanner)->EwktLval.dval = 0; return EWKT_MULTILINESTRING_M; } YY_BREAK case 15: YY_RULE_SETUP { Ewktget_extra (yyscanner)->EwktLval.dval = 0; return EWKT_MULTIPOLYGON; } YY_BREAK case 16: YY_RULE_SETUP { Ewktget_extra (yyscanner)->EwktLval.dval = 0; return EWKT_MULTIPOLYGON_M; } YY_BREAK case 17: YY_RULE_SETUP { Ewktget_extra (yyscanner)->EwktLval.dval = 0; return EWKT_GEOMETRYCOLLECTION; } YY_BREAK case 18: YY_RULE_SETUP { Ewktget_extra (yyscanner)->EwktLval.dval = 0; return EWKT_GEOMETRYCOLLECTION_M; } YY_BREAK case 19: YY_RULE_SETUP { Ewktget_extra (yyscanner)->ewkt_col += (int) strlen (yytext); } /* ignore but count white space */ YY_BREAK case 20: /* rule 20 can match eol */ YY_RULE_SETUP { Ewktget_extra (yyscanner)->ewkt_col = 0; Ewktget_extra (yyscanner)->ewkt_line++; } YY_BREAK case 21: YY_RULE_SETUP { Ewktget_extra (yyscanner)->ewkt_col += (int) strlen (yytext); return -1; } YY_BREAK case 22: YY_RULE_SETUP ECHO; YY_BREAK case YY_STATE_EOF (INITIAL): yyterminate (); case YY_END_OF_BUFFER: { /* Amount of text matched not including the EOB char. */ int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1; /* Undo the effects of YY_DO_BEFORE_ACTION. */ *yy_cp = yyg->yy_hold_char; YY_RESTORE_YY_MORE_OFFSET if (YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW) { /* We're scanning a new file or input source. It's * possible that this happened because the user * just pointed yyin at a new source and called * Ewktlex(). If so, then we have to assure * consistency between YY_CURRENT_BUFFER and our * globals. Here is the right place to do so, because * this is the first action (other than possibly a * back-up) that will match for the new input source. */ yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; } /* Note that here we test for yy_c_buf_p "<=" to the position * of the first EOB in the buffer, since yy_c_buf_p will * already have been incremented past the NUL character * (since all states make transitions on EOB to the * end-of-buffer state). Contrast this with the test * in input(). */ if (yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars]) { /* This was really a NUL. */ yy_state_type yy_next_state; yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state (yyscanner); /* Okay, we're now positioned to make the NUL * transition. We couldn't have * yy_get_previous_state() go ahead and do it * for us because it doesn't know how to deal * with the possibility of jamming (and we don't * want to build jamming into it because then it * will run more slowly). */ yy_next_state = yy_try_NUL_trans (yy_current_state, yyscanner); yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; if (yy_next_state) { /* Consume the NUL. */ yy_cp = ++yyg->yy_c_buf_p; yy_current_state = yy_next_state; goto yy_match; } else { yy_cp = yyg->yy_c_buf_p; goto yy_find_action; } } else switch (yy_get_next_buffer (yyscanner)) { case EOB_ACT_END_OF_FILE: { yyg->yy_did_buffer_switch_on_eof = 0; if (Ewktwrap (yyscanner)) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up * yytext, we can now set up * yy_c_buf_p so that if some total * hoser (like flex itself) wants to * call the scanner after we return the * YY_NULL, it'll still work - another * YY_NULL will get returned. */ yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ; yy_act = YY_STATE_EOF (YY_START); goto do_action; } else { if (!yyg->yy_did_buffer_switch_on_eof) YY_NEW_FILE; } break; } case EOB_ACT_CONTINUE_SCAN: yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state (yyscanner); yy_cp = yyg->yy_c_buf_p; yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; goto yy_match; case EOB_ACT_LAST_MATCH: yyg->yy_c_buf_p = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg-> yy_n_chars]; yy_current_state = yy_get_previous_state (yyscanner); yy_cp = yyg->yy_c_buf_p; yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; goto yy_find_action; } break; } default: YY_FATAL_ERROR ("fatal flex scanner internal error--no action found"); } /* end of action switch */ } /* end of scanning one token */ } /* end of Ewktlex */ /* yy_get_next_buffer - try to read in a new buffer * * Returns a code representing an action: * EOB_ACT_LAST_MATCH - * EOB_ACT_CONTINUE_SCAN - continue scanning from current position * EOB_ACT_END_OF_FILE - end of file */ static int yy_get_next_buffer (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; register char *source = yyg->yytext_ptr; register int number_to_move, i; int ret_val; if (yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1]) YY_FATAL_ERROR ("fatal flex scanner internal error--end of buffer missed"); if (YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0) { /* Don't try to fill the buffer, so this is an EOF. */ if (yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1) { /* We matched a single character, the EOB, so * treat this as a final EOF. */ return EOB_ACT_END_OF_FILE; } else { /* We matched some text prior to the EOB, first * process it. */ return EOB_ACT_LAST_MATCH; } } /* Try to read more data. */ /* First move last chars to start of buffer. */ number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1; for (i = 0; i < number_to_move; ++i) *(dest++) = *(source++); if (YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING) /* don't do the read, it's not guaranteed to return an EOF, * just force an EOF */ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0; else { int num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; while (num_to_read <= 0) { /* Not enough room in the buffer - grow it. */ /* just a shorter name for the current buffer */ YY_BUFFER_STATE b = YY_CURRENT_BUFFER; int yy_c_buf_p_offset = (int) (yyg->yy_c_buf_p - b->yy_ch_buf); if (b->yy_is_our_buffer) { int new_size = b->yy_buf_size * 2; if (new_size <= 0) b->yy_buf_size += b->yy_buf_size / 8; else b->yy_buf_size *= 2; b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ Ewktrealloc ((void *) b->yy_ch_buf, b->yy_buf_size + 2, yyscanner); } else /* Can't grow it, we don't own it. */ b->yy_ch_buf = 0; if (!b->yy_ch_buf) YY_FATAL_ERROR ("fatal error - scanner input buffer overflow"); yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset]; num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; } if (num_to_read > YY_READ_BUF_SIZE) num_to_read = YY_READ_BUF_SIZE; /* Read in more data. */ YY_INPUT ((&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), yyg->yy_n_chars, (size_t) num_to_read); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; } if (yyg->yy_n_chars == 0) { if (number_to_move == YY_MORE_ADJ) { ret_val = EOB_ACT_END_OF_FILE; Ewktrestart (yyin, yyscanner); } else { ret_val = EOB_ACT_LAST_MATCH; YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_EOF_PENDING; } } else ret_val = EOB_ACT_CONTINUE_SCAN; if ((yy_size_t) (yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ yy_size_t new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1); YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) Ewktrealloc ((void *) YY_CURRENT_BUFFER_LVALUE-> yy_ch_buf, new_size, yyscanner); if (!YY_CURRENT_BUFFER_LVALUE->yy_ch_buf) YY_FATAL_ERROR ("out of dynamic memory in yy_get_next_buffer()"); } yyg->yy_n_chars += number_to_move; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR; yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; return ret_val; } /* yy_get_previous_state - get the state just before the EOB char was reached */ static yy_state_type yy_get_previous_state (yyscan_t yyscanner) { register yy_state_type yy_current_state; register char *yy_cp; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yy_current_state = yyg->yy_start; for (yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp) { register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI (*yy_cp)] : 1); if (yy_accept[yy_current_state]) { yyg->yy_last_accepting_state = yy_current_state; yyg->yy_last_accepting_cpos = yy_cp; } while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state) { yy_current_state = (int) yy_def[yy_current_state]; if (yy_current_state >= 93) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; } return yy_current_state; } /* yy_try_NUL_trans - try to make a transition on the NUL character * * synopsis * next_state = yy_try_NUL_trans( current_state ); */ static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state, yyscan_t yyscanner) { register int yy_is_jam; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* This var may be unused depending upon options. */ register char *yy_cp = yyg->yy_c_buf_p; register YY_CHAR yy_c = 1; if (yy_accept[yy_current_state]) { yyg->yy_last_accepting_state = yy_current_state; yyg->yy_last_accepting_cpos = yy_cp; } while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state) { yy_current_state = (int) yy_def[yy_current_state]; if (yy_current_state >= 93) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; yy_is_jam = (yy_current_state == 92); return yy_is_jam ? 0 : yy_current_state; } #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput (yyscan_t yyscanner) #else static int input (yyscan_t yyscanner) #endif { int c; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; *yyg->yy_c_buf_p = yyg->yy_hold_char; if (*yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR) { /* yy_c_buf_p now points to the character we want to return. * If this occurs *before* the EOB characters, then it's a * valid NUL; if not, then we've hit the end of the buffer. */ if (yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars]) /* This was really a NUL. */ *yyg->yy_c_buf_p = '\0'; else { /* need more input */ int offset = yyg->yy_c_buf_p - yyg->yytext_ptr; ++yyg->yy_c_buf_p; switch (yy_get_next_buffer (yyscanner)) { case EOB_ACT_LAST_MATCH: /* This happens because yy_g_n_b() * sees that we've accumulated a * token and flags that we need to * try matching the token before * proceeding. But for input(), * there's no matching to consider. * So convert the EOB_ACT_LAST_MATCH * to EOB_ACT_END_OF_FILE. */ /* Reset buffer status. */ Ewktrestart (yyin, yyscanner); /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE: { if (Ewktwrap (yyscanner)) return EOF; if (!yyg->yy_did_buffer_switch_on_eof) YY_NEW_FILE; #ifdef __cplusplus return yyinput (yyscanner); #else return input (yyscanner); #endif } case EOB_ACT_CONTINUE_SCAN: yyg->yy_c_buf_p = yyg->yytext_ptr + offset; break; } } } c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */ *yyg->yy_c_buf_p = '\0'; /* preserve yytext */ yyg->yy_hold_char = *++yyg->yy_c_buf_p; return c; } #endif /* ifndef YY_NO_INPUT */ /** Immediately switch to a different input stream. * @param input_file A readable stream. * @param yyscanner The scanner object. * @note This function does not reset the start condition to @c INITIAL . */ void Ewktrestart (FILE * input_file, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!YY_CURRENT_BUFFER) { Ewktensure_buffer_stack (yyscanner); YY_CURRENT_BUFFER_LVALUE = Ewkt_create_buffer (yyin, YY_BUF_SIZE, yyscanner); } Ewkt_init_buffer (YY_CURRENT_BUFFER, input_file, yyscanner); Ewkt_load_buffer_state (yyscanner); } /** Switch to a different input buffer. * @param new_buffer The new input buffer. * @param yyscanner The scanner object. */ void Ewkt_switch_to_buffer (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* TODO. We should be able to replace this entire function body * with * Ewktpop_buffer_state(); * Ewktpush_buffer_state(new_buffer); */ Ewktensure_buffer_stack (yyscanner); if (YY_CURRENT_BUFFER == new_buffer) return; if (YY_CURRENT_BUFFER) { /* Flush out information for old buffer. */ *yyg->yy_c_buf_p = yyg->yy_hold_char; YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; } YY_CURRENT_BUFFER_LVALUE = new_buffer; Ewkt_load_buffer_state (yyscanner); /* We don't actually know whether we did this switch during * EOF (Ewktwrap()) processing, but the only time this flag * is looked at is after Ewktwrap() is called, so it's safe * to go ahead and always set it. */ yyg->yy_did_buffer_switch_on_eof = 1; } static void Ewkt_load_buffer_state (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; yyg->yy_hold_char = *yyg->yy_c_buf_p; } /** Allocate and initialize an input buffer state. * @param file A readable stream. * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. * @param yyscanner The scanner object. * @return the allocated buffer state. */ YY_BUFFER_STATE Ewkt_create_buffer (FILE * file, int size, yyscan_t yyscanner) { YY_BUFFER_STATE b; b = (YY_BUFFER_STATE) Ewktalloc (sizeof (struct yy_buffer_state), yyscanner); if (!b) YY_FATAL_ERROR ("out of dynamic memory in Ewkt_create_buffer()"); b->yy_buf_size = size; /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ b->yy_ch_buf = (char *) Ewktalloc (b->yy_buf_size + 2, yyscanner); if (!b->yy_ch_buf) YY_FATAL_ERROR ("out of dynamic memory in Ewkt_create_buffer()"); b->yy_is_our_buffer = 1; Ewkt_init_buffer (b, file, yyscanner); return b; } /** Destroy the buffer. * @param b a buffer created with Ewkt_create_buffer() * @param yyscanner The scanner object. */ void Ewkt_delete_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!b) return; if (b == YY_CURRENT_BUFFER) /* Not sure if we should pop here. */ YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if (b->yy_is_our_buffer) Ewktfree ((void *) b->yy_ch_buf, yyscanner); Ewktfree ((void *) b, yyscanner); } #ifndef __cplusplus extern int isatty (int); #endif /* __cplusplus */ /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a Ewktrestart() or at EOF. */ static void Ewkt_init_buffer (YY_BUFFER_STATE b, FILE * file, yyscan_t yyscanner) { int oerrno = errno; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; Ewkt_flush_buffer (b, yyscanner); b->yy_input_file = file; b->yy_fill_buffer = 1; /* If b is the current buffer, then Ewkt_init_buffer was _probably_ * called from Ewktrestart() or through yy_get_next_buffer. * In that case, we don't want to reset the lineno or column. */ if (b != YY_CURRENT_BUFFER) { b->yy_bs_lineno = 1; b->yy_bs_column = 0; } b->yy_is_interactive = file ? (isatty (fileno (file)) > 0) : 0; errno = oerrno; } /** Discard all buffered characters. On the next scan, YY_INPUT will be called. * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. * @param yyscanner The scanner object. */ void Ewkt_flush_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!b) return; b->yy_n_chars = 0; /* We always need two end-of-buffer characters. The first causes * a transition to the end-of-buffer state. The second causes * a jam in that state. */ b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; b->yy_buf_pos = &b->yy_ch_buf[0]; b->yy_at_bol = 1; b->yy_buffer_status = YY_BUFFER_NEW; if (b == YY_CURRENT_BUFFER) Ewkt_load_buffer_state (yyscanner); } /** Pushes the new state onto the stack. The new state becomes * the current state. This function will allocate the stack * if necessary. * @param new_buffer The new state. * @param yyscanner The scanner object. */ void Ewktpush_buffer_state (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (new_buffer == NULL) return; Ewktensure_buffer_stack (yyscanner); /* This block is copied from Ewkt_switch_to_buffer. */ if (YY_CURRENT_BUFFER) { /* Flush out information for old buffer. */ *yyg->yy_c_buf_p = yyg->yy_hold_char; YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; } /* Only push if top exists. Otherwise, replace top. */ if (YY_CURRENT_BUFFER) yyg->yy_buffer_stack_top++; YY_CURRENT_BUFFER_LVALUE = new_buffer; /* copied from Ewkt_switch_to_buffer. */ Ewkt_load_buffer_state (yyscanner); yyg->yy_did_buffer_switch_on_eof = 1; } /** Removes and deletes the top of the stack, if present. * The next element becomes the new top. * @param yyscanner The scanner object. */ void Ewktpop_buffer_state (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!YY_CURRENT_BUFFER) return; Ewkt_delete_buffer (YY_CURRENT_BUFFER, yyscanner); YY_CURRENT_BUFFER_LVALUE = NULL; if (yyg->yy_buffer_stack_top > 0) --yyg->yy_buffer_stack_top; if (YY_CURRENT_BUFFER) { Ewkt_load_buffer_state (yyscanner); yyg->yy_did_buffer_switch_on_eof = 1; } } /* Allocates the stack if it does not exist. * Guarantees space for at least one push. */ static void Ewktensure_buffer_stack (yyscan_t yyscanner) { int num_to_alloc; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!yyg->yy_buffer_stack) { /* First allocation is just for 2 elements, since we don't know if this * scanner will even need a stack. We use 2 instead of 1 to avoid an * immediate realloc on the next call. */ num_to_alloc = 1; yyg->yy_buffer_stack = (struct yy_buffer_state **) Ewktalloc (num_to_alloc * sizeof (struct yy_buffer_state *), yyscanner); if (!yyg->yy_buffer_stack) YY_FATAL_ERROR ("out of dynamic memory in Ewktensure_buffer_stack()"); memset (yyg->yy_buffer_stack, 0, num_to_alloc * sizeof (struct yy_buffer_state *)); yyg->yy_buffer_stack_max = num_to_alloc; yyg->yy_buffer_stack_top = 0; return; } if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1) { /* Increase the buffer to prepare for a possible push. */ int grow_size = 8 /* arbitrary grow size */ ; num_to_alloc = yyg->yy_buffer_stack_max + grow_size; yyg->yy_buffer_stack = (struct yy_buffer_state **) Ewktrealloc (yyg->yy_buffer_stack, num_to_alloc * sizeof (struct yy_buffer_state *), yyscanner); if (!yyg->yy_buffer_stack) YY_FATAL_ERROR ("out of dynamic memory in Ewktensure_buffer_stack()"); /* zero only the new slots. */ memset (yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof (struct yy_buffer_state *)); yyg->yy_buffer_stack_max = num_to_alloc; } } /** Setup the input buffer state to scan directly from a user-specified character buffer. * @param base the character buffer * @param size the size in bytes of the character buffer * @param yyscanner The scanner object. * @return the newly allocated buffer state object. */ YY_BUFFER_STATE Ewkt_scan_buffer (char *base, yy_size_t size, yyscan_t yyscanner) { YY_BUFFER_STATE b; if (size < 2 || base[size - 2] != YY_END_OF_BUFFER_CHAR || base[size - 1] != YY_END_OF_BUFFER_CHAR) /* They forgot to leave room for the EOB's. */ return 0; b = (YY_BUFFER_STATE) Ewktalloc (sizeof (struct yy_buffer_state), yyscanner); if (!b) YY_FATAL_ERROR ("out of dynamic memory in Ewkt_scan_buffer()"); b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ b->yy_buf_pos = b->yy_ch_buf = base; b->yy_is_our_buffer = 0; b->yy_input_file = 0; b->yy_n_chars = b->yy_buf_size; b->yy_is_interactive = 0; b->yy_at_bol = 1; b->yy_fill_buffer = 0; b->yy_buffer_status = YY_BUFFER_NEW; Ewkt_switch_to_buffer (b, yyscanner); return b; } /** Setup the input buffer state to scan a string. The next call to Ewktlex() will * scan from a @e copy of @a str. * @param yystr a NUL-terminated string to scan * @param yyscanner The scanner object. * @return the newly allocated buffer state object. * @note If you want to scan bytes that may contain NUL values, then use * Ewkt_scan_bytes() instead. */ YY_BUFFER_STATE Ewkt_scan_string (yyconst char *yystr, yyscan_t yyscanner) { return Ewkt_scan_bytes (yystr, strlen (yystr), yyscanner); } /** Setup the input buffer state to scan the given bytes. The next call to Ewktlex() will * scan from a @e copy of @a bytes. * @param bytes the byte buffer to scan * @param len the number of bytes in the buffer pointed to by @a bytes. * @param yyscanner The scanner object. * @return the newly allocated buffer state object. */ YY_BUFFER_STATE Ewkt_scan_bytes (yyconst char *yybytes, int _yybytes_len, yyscan_t yyscanner) { YY_BUFFER_STATE b; char *buf; yy_size_t n; int i; /* Get memory for full buffer, including space for trailing EOB's. */ n = _yybytes_len + 2; buf = (char *) Ewktalloc (n, yyscanner); if (!buf) YY_FATAL_ERROR ("out of dynamic memory in Ewkt_scan_bytes()"); for (i = 0; i < _yybytes_len; ++i) buf[i] = yybytes[i]; buf[_yybytes_len] = buf[_yybytes_len + 1] = YY_END_OF_BUFFER_CHAR; b = Ewkt_scan_buffer (buf, n, yyscanner); if (!b) YY_FATAL_ERROR ("bad buffer in Ewkt_scan_bytes()"); /* It's okay to grow etc. this buffer, and we should throw it * away when we're done. */ b->yy_is_our_buffer = 1; return b; } #ifndef YY_EXIT_FAILURE #define YY_EXIT_FAILURE 2 #endif static void yy_fatal_error (yyconst char *msg, yyscan_t yyscanner) { (void) fprintf (stderr, "%s\n", msg); exit (YY_EXIT_FAILURE); } /* Redefine yyless() so it works in section 3 code. */ #undef yyless #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ yytext[yyleng] = yyg->yy_hold_char; \ yyg->yy_c_buf_p = yytext + yyless_macro_arg; \ yyg->yy_hold_char = *yyg->yy_c_buf_p; \ *yyg->yy_c_buf_p = '\0'; \ yyleng = yyless_macro_arg; \ } \ while ( 0 ) /* Accessor methods (get/set functions) to struct members. */ /** Get the user-defined data for this scanner. * @param yyscanner The scanner object. */ YY_EXTRA_TYPE Ewktget_extra (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyextra; } /** Get the current line number. * @param yyscanner The scanner object. */ int Ewktget_lineno (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!YY_CURRENT_BUFFER) return 0; return yylineno; } /** Get the current column number. * @param yyscanner The scanner object. */ int Ewktget_column (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!YY_CURRENT_BUFFER) return 0; return yycolumn; } /** Get the input stream. * @param yyscanner The scanner object. */ FILE * Ewktget_in (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyin; } /** Get the output stream. * @param yyscanner The scanner object. */ FILE * Ewktget_out (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyout; } /** Get the length of the current token. * @param yyscanner The scanner object. */ int Ewktget_leng (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyleng; } /** Get the current token. * @param yyscanner The scanner object. */ char * Ewktget_text (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yytext; } /** Set the user-defined data. This data is never touched by the scanner. * @param user_defined The data to be associated with this scanner. * @param yyscanner The scanner object. */ void Ewktset_extra (YY_EXTRA_TYPE user_defined, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yyextra = user_defined; } /** Set the current line number. * @param line_number * @param yyscanner The scanner object. */ void Ewktset_lineno (int line_number, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* lineno is only valid if an input buffer exists. */ if (!YY_CURRENT_BUFFER) yy_fatal_error ("Ewktset_lineno called with no buffer", yyscanner); yylineno = line_number; } /** Set the current column. * @param line_number * @param yyscanner The scanner object. */ void Ewktset_column (int column_no, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* column is only valid if an input buffer exists. */ if (!YY_CURRENT_BUFFER) yy_fatal_error ("Ewktset_column called with no buffer", yyscanner); yycolumn = column_no; } /** Set the input stream. This does not discard the current * input buffer. * @param in_str A readable stream. * @param yyscanner The scanner object. * @see Ewkt_switch_to_buffer */ void Ewktset_in (FILE * in_str, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yyin = in_str; } void Ewktset_out (FILE * out_str, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yyout = out_str; } int Ewktget_debug (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yy_flex_debug; } void Ewktset_debug (int bdebug, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yy_flex_debug = bdebug; } /* Accessor methods for yylval and yylloc */ /* User-visible API */ /* Ewktlex_init is special because it creates the scanner itself, so it is * the ONLY reentrant function that doesn't take the scanner as the last argument. * That's why we explicitly handle the declaration, instead of using our macros. */ int Ewktlex_init (yyscan_t * ptr_yy_globals) { if (ptr_yy_globals == NULL) { errno = EINVAL; return 1; } *ptr_yy_globals = (yyscan_t) Ewktalloc (sizeof (struct yyguts_t), NULL); if (*ptr_yy_globals == NULL) { errno = ENOMEM; return 1; } /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */ memset (*ptr_yy_globals, 0x00, sizeof (struct yyguts_t)); return yy_init_globals (*ptr_yy_globals); } /* Ewktlex_init_extra has the same functionality as Ewktlex_init, but follows the * convention of taking the scanner as the last argument. Note however, that * this is a *pointer* to a scanner, as it will be allocated by this call (and * is the reason, too, why this function also must handle its own declaration). * The user defined value in the first argument will be available to Ewktalloc in * the yyextra field. */ int Ewktlex_init_extra (YY_EXTRA_TYPE yy_user_defined, yyscan_t * ptr_yy_globals) { struct yyguts_t dummy_yyguts; Ewktset_extra (yy_user_defined, &dummy_yyguts); if (ptr_yy_globals == NULL) { errno = EINVAL; return 1; } *ptr_yy_globals = (yyscan_t) Ewktalloc (sizeof (struct yyguts_t), &dummy_yyguts); if (*ptr_yy_globals == NULL) { errno = ENOMEM; return 1; } /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */ memset (*ptr_yy_globals, 0x00, sizeof (struct yyguts_t)); Ewktset_extra (yy_user_defined, *ptr_yy_globals); return yy_init_globals (*ptr_yy_globals); } static int yy_init_globals (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* Initialization is the same as for the non-reentrant scanner. * This function is called from Ewktlex_destroy(), so don't allocate here. */ yyg->yy_buffer_stack = 0; yyg->yy_buffer_stack_top = 0; yyg->yy_buffer_stack_max = 0; yyg->yy_c_buf_p = (char *) 0; yyg->yy_init = 0; yyg->yy_start = 0; yyg->yy_start_stack_ptr = 0; yyg->yy_start_stack_depth = 0; yyg->yy_start_stack = NULL; /* Defined in main.c */ #ifdef YY_STDINIT yyin = stdin; yyout = stdout; #else yyin = (FILE *) 0; yyout = (FILE *) 0; #endif /* For future reference: Set errno on error, since we are called by * Ewktlex_init() */ return 0; } /* Ewktlex_destroy is for both reentrant and non-reentrant scanners. */ int Ewktlex_destroy (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* Pop the buffer stack, destroying each element. */ while (YY_CURRENT_BUFFER) { Ewkt_delete_buffer (YY_CURRENT_BUFFER, yyscanner); YY_CURRENT_BUFFER_LVALUE = NULL; Ewktpop_buffer_state (yyscanner); } /* Destroy the stack itself. */ Ewktfree (yyg->yy_buffer_stack, yyscanner); yyg->yy_buffer_stack = NULL; /* Destroy the start condition stack. */ Ewktfree (yyg->yy_start_stack, yyscanner); yyg->yy_start_stack = NULL; /* Reset the globals. This is important in a non-reentrant scanner so the next time * Ewktlex() is called, initialization will occur. */ yy_init_globals (yyscanner); /* Destroy the main struct (reentrant only). */ Ewktfree (yyscanner, yyscanner); yyscanner = NULL; return 0; } /* * Internal utility routines. */ #ifndef yytext_ptr static void yy_flex_strncpy (char *s1, yyconst char *s2, int n, yyscan_t yyscanner) { register int i; for (i = 0; i < n; ++i) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen (yyconst char *s, yyscan_t yyscanner) { register int n; for (n = 0; s[n]; ++n) ; return n; } #endif void * Ewktalloc (yy_size_t size, yyscan_t yyscanner) { return (void *) malloc (size); } void * Ewktrealloc (void *ptr, yy_size_t size, yyscan_t yyscanner) { /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter * because both ANSI C and C++ allow castless assignment from * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ return (void *) realloc ((char *) ptr, size); } void Ewktfree (void *ptr, yyscan_t yyscanner) { free ((char *) ptr); /* see Ewktrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" int Ewktwrap (yyscan_t yyscanner) { return 1; } libspatialite-4.1.1/src/gaiageo/gg_geoJSON.c0000664000175000017500000012145012163502133015535 00000000000000/* gg_geoJSON.c -- GeoJSON parser/lexer version 4.1, 2013 May 8 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011-2013 the Initial Developer. All Rights Reserved. Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include #include #define GEOJSON_DYN_NONE 0 #define GEOJSON_DYN_POINT 1 #define GEOJSON_DYN_LINESTRING 2 #define GEOJSON_DYN_POLYGON 3 #define GEOJSON_DYN_RING 4 #define GEOJSON_DYN_GEOMETRY 5 #define GEOJSON_DYN_BLOCK 1024 /* ** CAVEAT: we must redefine any Lemon/Flex own macro */ #define YYMINORTYPE GEO_JSON_MINORTYPE #define YY_CHAR GEO_JSON_YY_CHAR #define input geoJSON_input #define ParseAlloc geoJSONParseAlloc #define ParseFree geoJSONParseFree #define ParseStackPeak geoJSONParseStackPeak #define Parse geoJSONParse #define yyStackEntry geoJSON_yyStackEntry #define yyzerominor geoJSON_yyzerominor #define yy_accept geoJSON_yy_accept #define yy_action geoJSON_yy_action #define yy_base geoJSON_yy_base #define yy_buffer_stack geoJSON_yy_buffer_stack #define yy_buffer_stack_max geoJSON_yy_buffer_stack_max #define yy_buffer_stack_top geoJSON_yy_buffer_stack_top #define yy_c_buf_p geoJSON_yy_c_buf_p #define yy_chk geoJSON_yy_chk #define yy_def geoJSON_yy_def #define yy_default geoJSON_yy_default #define yy_destructor geoJSON_yy_destructor #define yy_ec geoJSON_yy_ec #define yy_fatal_error geoJSON_yy_fatal_error #define yy_find_reduce_action geoJSON_yy_find_reduce_action #define yy_find_shift_action geoJSON_yy_find_shift_action #define yy_get_next_buffer geoJSON_yy_get_next_buffer #define yy_get_previous_state geoJSON_yy_get_previous_state #define yy_init geoJSON_yy_init #define yy_init_globals geoJSON_yy_init_globals #define yy_lookahead geoJSON_yy_lookahead #define yy_meta geoJSON_yy_meta #define yy_nxt geoJSON_yy_nxt #define yy_parse_failed geoJSON_yy_parse_failed #define yy_pop_parser_stack geoJSON_yy_pop_parser_stack #define yy_reduce geoJSON_yy_reduce #define yy_reduce_ofst geoJSON_yy_reduce_ofst #define yy_shift geoJSON_yy_shift #define yy_shift_ofst geoJSON_yy_shift_ofst #define yy_start geoJSON_yy_start #define yy_state_type geoJSON_yy_state_type #define yy_syntax_error geoJSON_yy_syntax_error #define yy_trans_info geoJSON_yy_trans_info #define yy_try_NUL_trans geoJSON_yy_try_NUL_trans #define yyParser geoJSON_yyParser #define yyStackEntry geoJSON_yyStackEntry #define yyStackOverflow geoJSON_yyStackOverflow #define yyRuleInfo geoJSON_yyRuleInfo #define yyunput geoJSON_yyunput #define yyzerominor geoJSON_yyzerominor #define yyTraceFILE geoJSON_yyTraceFILE #define yyTracePrompt geoJSON_yyTracePrompt #define yyTokenName geoJSON_yyTokenName #define yyRuleName geoJSON_yyRuleName #define ParseTrace geoJSON_ParseTrace #define yylex geoJSON_yylex #define YY_DECL int yylex (yyscan_t yyscanner) /* including LEMON generated header */ #include "geoJSON.h" typedef union { double dval; int ival; struct symtab *symp; } geoJSON_yystype; #define YYSTYPE geoJSON_yystype struct geoJson_dyn_block { /* a struct taking trace of dynamic allocations */ int type[GEOJSON_DYN_BLOCK]; void *ptr[GEOJSON_DYN_BLOCK]; int index; struct geoJson_dyn_block *next; }; struct geoJson_data { /* a struct used to make the lexer-parser reentrant and thread-safe */ int geoJson_parse_error; int geoJson_line; int geoJson_col; struct geoJson_dyn_block *geoJson_first_dyn_block; struct geoJson_dyn_block *geoJson_last_dyn_block; gaiaGeomCollPtr result; YYSTYPE GeoJsonLval; }; static struct geoJson_dyn_block * geoJsonCreateDynBlock (void) { /* allocating a new block to trace dynamic allocations */ int i; struct geoJson_dyn_block *p = malloc (sizeof (struct geoJson_dyn_block)); for (i = 0; i < GEOJSON_DYN_BLOCK; i++) { /* initializing map entries */ p->type[i] = GEOJSON_DYN_NONE; p->ptr[i] = NULL; } p->index = 0; p->next = NULL; return p; } static void geoJsonMapDynAlloc (struct geoJson_data *p_data, int type, void *ptr) { /* appending a dynamic allocation into the map */ struct geoJson_dyn_block *p; if (p_data->geoJson_first_dyn_block == NULL) { /* inserting the first block of the map */ p = geoJsonCreateDynBlock (); p_data->geoJson_first_dyn_block = p; p_data->geoJson_last_dyn_block = p; } if (p_data->geoJson_last_dyn_block->index >= GEOJSON_DYN_BLOCK) { /* adding a further block to the map */ p = geoJsonCreateDynBlock (); p_data->geoJson_last_dyn_block->next = p; p_data->geoJson_last_dyn_block = p; } p_data->geoJson_last_dyn_block->type[p_data-> geoJson_last_dyn_block->index] = type; p_data->geoJson_last_dyn_block->ptr[p_data->geoJson_last_dyn_block->index] = ptr; p_data->geoJson_last_dyn_block->index++; } static void geoJsonMapDynClean (struct geoJson_data *p_data, void *ptr) { /* deleting a dynamic allocation from the map */ int i; struct geoJson_dyn_block *p = p_data->geoJson_first_dyn_block; while (p) { for (i = 0; i < GEOJSON_DYN_BLOCK; i++) { switch (p->type[i]) { case GEOJSON_DYN_POINT: case GEOJSON_DYN_LINESTRING: case GEOJSON_DYN_POLYGON: case GEOJSON_DYN_RING: case GEOJSON_DYN_GEOMETRY: if (p->ptr[i] == ptr) { p->type[i] = GEOJSON_DYN_NONE; return; } break; }; } p = p->next; } } static void geoJsonCleanMapDynAlloc (struct geoJson_data *p_data, int clean_all) { /* cleaning the dynamic allocations map */ int i; struct geoJson_dyn_block *pn; struct geoJson_dyn_block *p = p_data->geoJson_first_dyn_block; while (p) { if (clean_all) { for (i = 0; i < GEOJSON_DYN_BLOCK; i++) { /* deleting Geometry objects */ switch (p->type[i]) { case GEOJSON_DYN_POINT: gaiaFreePoint ((gaiaPointPtr) (p->ptr[i])); break; case GEOJSON_DYN_LINESTRING: gaiaFreeLinestring ((gaiaLinestringPtr) (p->ptr[i])); break; case GEOJSON_DYN_POLYGON: gaiaFreePolygon ((gaiaPolygonPtr) (p->ptr[i])); break; case GEOJSON_DYN_RING: gaiaFreeRing ((gaiaRingPtr) (p->ptr[i])); break; case GEOJSON_DYN_GEOMETRY: gaiaFreeGeomColl ((gaiaGeomCollPtr) (p->ptr[i])); break; }; } } /* deleting the map block */ pn = p->next; free (p); p = pn; } } static int geoJsonCheckValidity (gaiaGeomCollPtr geom) { /* checks if this one is a degenerated geometry */ gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; gaiaRingPtr rng; int ib; int entities = 0; pt = geom->FirstPoint; while (pt) { /* checking points */ entities++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { /* checking linestrings */ if (ln->Points < 2) return 0; entities++; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { /* checking polygons */ rng = pg->Exterior; if (rng->Points < 4) return 0; for (ib = 0; ib < pg->NumInteriors; ib++) { rng = pg->Interiors + ib; if (rng->Points < 4) return 0; } entities++; pg = pg->Next; } if (!entities) return 0; return 1; } static gaiaGeomCollPtr geoJSON_setSrid (gaiaGeomCollPtr geom, int *srid) { /* setting up the SRID */ if (!geom) return NULL; geom->Srid = *srid; return geom; } static gaiaGeomCollPtr gaiaGeoJsonGeometryFromPoint (struct geoJson_data *p_data, gaiaPointPtr point, int srid) { /* builds a GEOMETRY containing a POINT */ gaiaGeomCollPtr geom = NULL; geom = gaiaAllocGeomColl (); geoJsonMapDynAlloc (p_data, GEOJSON_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_POINT; geom->Srid = srid; gaiaAddPointToGeomColl (geom, point->X, point->Y); geoJsonMapDynClean (p_data, point); gaiaFreePoint (point); return geom; } static gaiaGeomCollPtr gaiaGeoJsonGeometryFromPointZ (struct geoJson_data *p_data, gaiaPointPtr point, int srid) { /* builds a GEOMETRY containing a POINTZ */ gaiaGeomCollPtr geom = NULL; geom = gaiaAllocGeomCollXYZ (); geoJsonMapDynAlloc (p_data, GEOJSON_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_POINTZ; geom->Srid = srid; gaiaAddPointToGeomCollXYZ (geom, point->X, point->Y, point->Z); geoJsonMapDynClean (p_data, point); gaiaFreePoint (point); return geom; } static gaiaGeomCollPtr gaiaGeoJsonGeometryFromLinestring (struct geoJson_data *p_data, gaiaLinestringPtr line, int srid) { /* builds a GEOMETRY containing a LINESTRING */ gaiaGeomCollPtr geom = NULL; gaiaLinestringPtr line2; int iv; double x; double y; geom = gaiaAllocGeomColl (); geoJsonMapDynAlloc (p_data, GEOJSON_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_LINESTRING; geom->Srid = srid; line2 = gaiaAddLinestringToGeomColl (geom, line->Points); for (iv = 0; iv < line2->Points; iv++) { /* sets the POINTS for the exterior ring */ gaiaGetPoint (line->Coords, iv, &x, &y); gaiaSetPoint (line2->Coords, iv, x, y); } geoJsonMapDynClean (p_data, line); gaiaFreeLinestring (line); return geom; } static gaiaGeomCollPtr gaiaGeoJsonGeometryFromLinestringZ (struct geoJson_data *p_data, gaiaLinestringPtr line, int srid) { /* builds a GEOMETRY containing a LINESTRINGZ */ gaiaGeomCollPtr geom = NULL; gaiaLinestringPtr line2; int iv; double x; double y; double z; geom = gaiaAllocGeomCollXYZ (); geoJsonMapDynAlloc (p_data, GEOJSON_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_LINESTRING; geom->Srid = srid; line2 = gaiaAddLinestringToGeomColl (geom, line->Points); for (iv = 0; iv < line2->Points; iv++) { /* sets the POINTS for the exterior ring */ gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (line2->Coords, iv, x, y, z); } geoJsonMapDynClean (p_data, line); gaiaFreeLinestring (line); return geom; } static gaiaPointPtr geoJSON_point_xy (struct geoJson_data *p_data, double *x, double *y) { gaiaPointPtr pt = gaiaAllocPoint (*x, *y); geoJsonMapDynAlloc (p_data, GEOJSON_DYN_POINT, pt); return pt; } /* * Creates a 3D (xyz) point in SpatiaLite * x, y, and z are pointers to doubles which represent the x, y, and z coordinates of the point to be created. * Returns a gaiaPointPtr representing the created point. * * Creates a 3D (xyz) point. This is a parser helper function which is called when 3D coordinates are encountered. * Parameters x, y, and z are pointers to doubles which represent the x, y, and z coordinates of the point to be created. * Returns a gaiaPointPtr pointing to the 3D created point. */ static gaiaPointPtr geoJSON_point_xyz (struct geoJson_data *p_data, double *x, double *y, double *z) { gaiaPointPtr pt = gaiaAllocPointXYZ (*x, *y, *z); geoJsonMapDynAlloc (p_data, GEOJSON_DYN_POINT, pt); return pt; } /* * Builds a geometry collection from a point. The geometry collection should contain only one element ? the point. * The correct geometry type must be *decided based on the point type. The parser should call this function when the * ?POINT? WKT expression is encountered. * Parameter point is a pointer to a 2D, 3D, 2D with an m value, or 4D with an m value point. * Returns a geometry collection containing the point. The geometry must have FirstPoint and LastPoint pointing to the * same place as point. *DimensionModel must be the same as the model of the point and DimensionType must be GAIA_TYPE_POINT. */ static gaiaGeomCollPtr geoJSON_buildGeomFromPoint (struct geoJson_data *p_data, gaiaPointPtr point) { switch (point->DimensionModel) { case GAIA_XY: return gaiaGeoJsonGeometryFromPoint (p_data, point, -1); case GAIA_XY_Z: return gaiaGeoJsonGeometryFromPointZ (p_data, point, -1); } return NULL; } static gaiaGeomCollPtr geoJSON_buildGeomFromPointSrid (struct geoJson_data *p_data, gaiaPointPtr point, int *srid) { switch (point->DimensionModel) { case GAIA_XY: return gaiaGeoJsonGeometryFromPoint (p_data, point, *srid); case GAIA_XY_Z: return gaiaGeoJsonGeometryFromPointZ (p_data, point, *srid); } return NULL; } /* * Creates a 2D (xy) linestring from a list of 2D points. * * Parameter first is a gaiaPointPtr to the first point in a linked list of points which define the linestring. * All of the points in the list must be 2D (xy) points. There must be at least 2 points in the list. * * Returns a pointer to linestring containing all of the points in the list. */ static gaiaLinestringPtr geoJSON_linestring_xy (struct geoJson_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; int points = 0; int i = 0; gaiaLinestringPtr linestring; while (p != NULL) { p = p->Next; points++; } linestring = gaiaAllocLinestring (points); geoJsonMapDynAlloc (p_data, GEOJSON_DYN_LINESTRING, linestring); p = first; while (p != NULL) { gaiaSetPoint (linestring->Coords, i, p->X, p->Y); p_n = p->Next; geoJsonMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; i++; } return linestring; } /* * Creates a 3D (xyz) linestring from a list of 3D points. * * Parameter first is a gaiaPointPtr to the first point in a linked list of points which define the linestring. * All of the points in the list must be 3D (xyz) points. There must be at least 2 points in the list. * * Returns a pointer to linestring containing all of the points in the list. */ static gaiaLinestringPtr geoJSON_linestring_xyz (struct geoJson_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; int points = 0; int i = 0; gaiaLinestringPtr linestring; while (p != NULL) { p = p->Next; points++; } linestring = gaiaAllocLinestringXYZ (points); geoJsonMapDynAlloc (p_data, GEOJSON_DYN_LINESTRING, linestring); p = first; while (p != NULL) { gaiaSetPointXYZ (linestring->Coords, i, p->X, p->Y, p->Z); p_n = p->Next; geoJsonMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; i++; } return linestring; } /* * Builds a geometry collection from a linestring. */ static gaiaGeomCollPtr geoJSON_buildGeomFromLinestring (struct geoJson_data *p_data, gaiaLinestringPtr line) { switch (line->DimensionModel) { case GAIA_XY: return gaiaGeoJsonGeometryFromLinestring (p_data, line, -1); case GAIA_XY_Z: return gaiaGeoJsonGeometryFromLinestringZ (p_data, line, -1); } return NULL; } static gaiaGeomCollPtr geoJSON_buildGeomFromLinestringSrid (struct geoJson_data *p_data, gaiaLinestringPtr line, int *srid) { switch (line->DimensionModel) { case GAIA_XY: return gaiaGeoJsonGeometryFromLinestring (p_data, line, *srid); case GAIA_XY_Z: return gaiaGeoJsonGeometryFromLinestringZ (p_data, line, *srid); } return NULL; } /* * Helper function that determines the number of points in the linked list. */ static int geoJSON_count_points (gaiaPointPtr first) { /* Counts the number of points in the ring. */ gaiaPointPtr p = first; int numpoints = 0; while (p != NULL) { numpoints++; p = p->Next; } return numpoints; } /* * Creates a 2D (xy) ring in SpatiaLite * * first is a gaiaPointPtr to the first point in a linked list of points which define the polygon. * All of the points given to the function are 2D (xy) points. There will be at least 4 points in the list. * * Returns the ring defined by the points given to the function. */ static gaiaRingPtr geoJSON_ring_xy (struct geoJson_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; gaiaRingPtr ring = NULL; int numpoints; int index; /* If no pointers are given, return. */ if (first == NULL) return NULL; /* Counts the number of points in the ring. */ numpoints = geoJSON_count_points (first); if (numpoints < 4) return NULL; /* Creates and allocates a ring structure. */ ring = gaiaAllocRing (numpoints); if (ring == NULL) return NULL; geoJsonMapDynAlloc (p_data, GEOJSON_DYN_RING, ring); /* Adds every point into the ring structure. */ p = first; for (index = 0; index < numpoints; index++) { gaiaSetPoint (ring->Coords, index, p->X, p->Y); p_n = p->Next; geoJsonMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; } return ring; } /* * Creates a 3D (xyz) ring in SpatiaLite * * first is a gaiaPointPtr to the first point in a linked list of points which define the polygon. * All of the points given to the function are 3D (xyz) points. There will be at least 4 points in the list. * * Returns the ring defined by the points given to the function. */ static gaiaRingPtr geoJSON_ring_xyz (struct geoJson_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; gaiaRingPtr ring = NULL; int numpoints; int index; /* If no pointers are given, return. */ if (first == NULL) return NULL; /* Counts the number of points in the ring. */ numpoints = geoJSON_count_points (first); if (numpoints < 4) return NULL; /* Creates and allocates a ring structure. */ ring = gaiaAllocRingXYZ (numpoints); if (ring == NULL) return NULL; geoJsonMapDynAlloc (p_data, GEOJSON_DYN_RING, ring); /* Adds every point into the ring structure. */ p = first; for (index = 0; index < numpoints; index++) { gaiaSetPointXYZ (ring->Coords, index, p->X, p->Y, p->Z); p_n = p->Next; geoJsonMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; } return ring; } /* * Helper function that will create any type of polygon (xy, xyz) in SpatiaLite. * * first is a gaiaRingPtr to the first ring in a linked list of rings which define the polygon. * The first ring in the linked list is the external ring while the rest (if any) are internal rings. * All of the rings given to the function are of the same type. There will be at least 1 ring in the list. * * Returns the polygon defined by the rings given to the function. */ static gaiaPolygonPtr geoJSON_polygon_any_type (struct geoJson_data *p_data, gaiaRingPtr first) { gaiaRingPtr p; gaiaRingPtr p_n; gaiaPolygonPtr polygon; /* If no pointers are given, return. */ if (first == NULL) return NULL; /* Creates and allocates a polygon structure with the exterior ring. */ polygon = gaiaCreatePolygon (first); if (polygon == NULL) return NULL; geoJsonMapDynAlloc (p_data, GEOJSON_DYN_POLYGON, polygon); /* Adds all interior rings into the polygon structure. */ p = first; while (p != NULL) { p_n = p->Next; geoJsonMapDynClean (p_data, p); if (p == first) gaiaFreeRing (p); else gaiaAddRingToPolyg (polygon, p); p = p_n; } return polygon; } /* * Creates a 2D (xy) polygon in SpatiaLite * * first is a gaiaRingPtr to the first ring in a linked list of rings which define the polygon. * The first ring in the linked list is the external ring while the rest (if any) are internal rings. * All of the rings given to the function are 2D (xy) rings. There will be at least 1 ring in the list. * * Returns the polygon defined by the rings given to the function. */ static gaiaPolygonPtr geoJSON_polygon_xy (struct geoJson_data *p_data, gaiaRingPtr first) { return geoJSON_polygon_any_type (p_data, first); } /* * Creates a 3D (xyz) polygon in SpatiaLite * * first is a gaiaRingPtr to the first ring in a linked list of rings which define the polygon. * The first ring in the linked list is the external ring while the rest (if any) are internal rings. * All of the rings given to the function are 3D (xyz) rings. There will be at least 1 ring in the list. * * Returns the polygon defined by the rings given to the function. */ static gaiaPolygonPtr geoJSON_polygon_xyz (struct geoJson_data *p_data, gaiaRingPtr first) { return geoJSON_polygon_any_type (p_data, first); } /* * Builds a geometry collection from a polygon. * NOTE: This function may already be implemented in the SpatiaLite code base. If it is, make sure that we * can use it (ie. it doesn't use any other variables or anything else set by Sandro's parser). If you find * that we can use an existing function then ignore this one. */ static gaiaGeomCollPtr geoJSON_buildGeomFromPolygon (struct geoJson_data *p_data, gaiaPolygonPtr polygon) { gaiaGeomCollPtr geom = NULL; /* If no pointers are given, return. */ if (polygon == NULL) { return NULL; } /* Creates and allocates a geometry collection containing a multipoint. */ switch (polygon->DimensionModel) { case GAIA_XY: geom = gaiaAllocGeomColl (); break; case GAIA_XY_Z: geom = gaiaAllocGeomCollXYZ (); break; } if (geom == NULL) { return NULL; } geoJsonMapDynAlloc (p_data, GEOJSON_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_POLYGON; /* Stores the location of the first and last polygons in the linked list. */ geom->FirstPolygon = polygon; while (polygon != NULL) { geoJsonMapDynClean (p_data, polygon); geom->LastPolygon = polygon; polygon = polygon->Next; } return geom; } static gaiaGeomCollPtr geoJSON_buildGeomFromPolygonSrid (struct geoJson_data *p_data, gaiaPolygonPtr polygon, int *srid) { gaiaGeomCollPtr geom = NULL; /* If no pointers are given, return. */ if (polygon == NULL) { return NULL; } /* Creates and allocates a geometry collection containing a multipoint. */ switch (polygon->DimensionModel) { case GAIA_XY: geom = gaiaAllocGeomColl (); break; case GAIA_XY_Z: geom = gaiaAllocGeomCollXYZ (); break; } if (geom == NULL) { return NULL; } geoJsonMapDynAlloc (p_data, GEOJSON_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_POLYGON; geom->Srid = *srid; /* Stores the location of the first and last polygons in the linked list. */ geom->FirstPolygon = polygon; while (polygon != NULL) { geoJsonMapDynClean (p_data, polygon); geom->LastPolygon = polygon; polygon = polygon->Next; } return geom; } /* * Creates a 2D (xy) multipoint object in SpatiaLite * * first is a gaiaPointPtr to the first point in a linked list of points. * All of the points given to the function are 2D (xy) points. There will be at least 1 point in the list. * * Returns a geometry collection containing the created multipoint object. */ static gaiaGeomCollPtr geoJSON_multipoint_xy (struct geoJson_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; gaiaGeomCollPtr geom = NULL; /* If no pointers are given, return. */ if (first == NULL) return NULL; /* Creates and allocates a geometry collection containing a multipoint. */ geom = gaiaAllocGeomColl (); if (geom == NULL) return NULL; geoJsonMapDynAlloc (p_data, GEOJSON_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_MULTIPOINT; /* For every 2D (xy) point, add it to the geometry collection. */ while (p != NULL) { gaiaAddPointToGeomColl (geom, p->X, p->Y); p_n = p->Next; geoJsonMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; } return geom; } /* * Creates a 3D (xyz) multipoint object in SpatiaLite * * first is a gaiaPointPtr to the first point in a linked list of points. * All of the points given to the function are 3D (xyz) points. There will be at least 1 point in the list. * * Returns a geometry collection containing the created multipoint object. */ static gaiaGeomCollPtr geoJSON_multipoint_xyz (struct geoJson_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; gaiaGeomCollPtr geom = NULL; /* If no pointers are given, return. */ if (first == NULL) return NULL; /* Creates and allocates a geometry collection containing a multipoint. */ geom = gaiaAllocGeomCollXYZ (); if (geom == NULL) return NULL; geoJsonMapDynAlloc (p_data, GEOJSON_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_MULTIPOINT; /* For every 3D (xyz) point, add it to the geometry collection. */ while (p != NULL) { gaiaAddPointToGeomCollXYZ (geom, p->X, p->Y, p->Z); p_n = p->Next; geoJsonMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; } return geom; } /* * Creates a geometry collection containing 2D (xy) linestrings. * Parameter first is a gaiaLinestringPtr to the first linestring in a linked list of linestrings which should be added to the * collection. All of the *linestrings in the list must be 2D (xy) linestrings. There must be at least 1 linestring in the list. * Returns a pointer to the created geometry collection of 2D linestrings. The geometry must have FirstLinestring pointing to the * first linestring in the list pointed by first and LastLinestring pointing to the last element of the same list. DimensionModel * must be GAIA_XY and DimensionType must be *GAIA_TYPE_LINESTRING. */ static gaiaGeomCollPtr geoJSON_multilinestring_xy (struct geoJson_data *p_data, gaiaLinestringPtr first) { gaiaLinestringPtr p = first; gaiaLinestringPtr p_n; gaiaLinestringPtr new_line; gaiaGeomCollPtr a = gaiaAllocGeomColl (); geoJsonMapDynAlloc (p_data, GEOJSON_DYN_GEOMETRY, a); a->DeclaredType = GAIA_MULTILINESTRING; a->DimensionModel = GAIA_XY; while (p) { new_line = gaiaAddLinestringToGeomColl (a, p->Points); gaiaCopyLinestringCoords (new_line, p); p_n = p->Next; geoJsonMapDynClean (p_data, p); gaiaFreeLinestring (p); p = p_n; } return a; } /* * Returns a geometry collection containing the created multilinestring object (?). * Creates a geometry collection containing 3D (xyz) linestrings. * Parameter first is a gaiaLinestringPtr to the first linestring in a linked list of linestrings which should be added to the * collection. All of the *linestrings in the list must be 3D (xyz) linestrings. There must be at least 1 linestring in the list. * Returns a pointer to the created geometry collection of 3D linestrings. The geometry must have FirstLinestring pointing to the * first linestring in the *list pointed by first and LastLinestring pointing to the last element of the same list. DimensionModel * must be GAIA_XYZ and DimensionType must be *GAIA_TYPE_LINESTRING. */ static gaiaGeomCollPtr geoJSON_multilinestring_xyz (struct geoJson_data *p_data, gaiaLinestringPtr first) { gaiaLinestringPtr p = first; gaiaLinestringPtr p_n; gaiaLinestringPtr new_line; gaiaGeomCollPtr a = gaiaAllocGeomCollXYZ (); geoJsonMapDynAlloc (p_data, GEOJSON_DYN_GEOMETRY, a); a->DeclaredType = GAIA_MULTILINESTRING; a->DimensionModel = GAIA_XY_Z; while (p) { new_line = gaiaAddLinestringToGeomColl (a, p->Points); gaiaCopyLinestringCoords (new_line, p); p_n = p->Next; geoJsonMapDynClean (p_data, p); gaiaFreeLinestring (p); p = p_n; } return a; } /* * Creates a geometry collection containing 2D (xy) polygons. * * Parameter first is a gaiaPolygonPtr to the first polygon in a linked list of polygons which should * be added to the collection. All of the polygons in the list must be 2D (xy) polygons. There must be * at least 1 polygon in the list. * * Returns a pointer to the created geometry collection of 2D polygons. The geometry must have * FirstPolygon pointing to the first polygon in the list pointed by first and LastPolygon pointing * to the last element of the same list. DimensionModel must be GAIA_XY and DimensionType must * be GAIA_TYPE_POLYGON. * */ static gaiaGeomCollPtr geoJSON_multipolygon_xy (struct geoJson_data *p_data, gaiaPolygonPtr first) { gaiaPolygonPtr p = first; gaiaPolygonPtr p_n; int i = 0; gaiaPolygonPtr new_polyg; gaiaRingPtr i_ring; gaiaRingPtr o_ring; gaiaGeomCollPtr geom = gaiaAllocGeomColl (); geoJsonMapDynAlloc (p_data, GEOJSON_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_MULTIPOLYGON; while (p) { i_ring = p->Exterior; new_polyg = gaiaAddPolygonToGeomColl (geom, i_ring->Points, p->NumInteriors); o_ring = new_polyg->Exterior; gaiaCopyRingCoords (o_ring, i_ring); for (i = 0; i < new_polyg->NumInteriors; i++) { i_ring = p->Interiors + i; o_ring = gaiaAddInteriorRing (new_polyg, i, i_ring->Points); gaiaCopyRingCoords (o_ring, i_ring); } p_n = p->Next; geoJsonMapDynClean (p_data, p); gaiaFreePolygon (p); p = p_n; } return geom; } /* * Creates a geometry collection containing 3D (xyz) polygons. * * Parameter first is a gaiaPolygonPtr to the first polygon in a linked list of polygons which should be * added to the collection. All of the polygons in the list must be 3D (xyz) polygons. There must be at * least 1 polygon in the list. * * Returns a pointer to the created geometry collection of 3D polygons. The geometry must have * FirstPolygon pointing to the first polygon in the list pointed by first and LastPolygon pointing to * the last element of the same list. DimensionModel must be GAIA_XYZ and DimensionType must * be GAIA_TYPE_POLYGON. * */ static gaiaGeomCollPtr geoJSON_multipolygon_xyz (struct geoJson_data *p_data, gaiaPolygonPtr first) { gaiaPolygonPtr p = first; gaiaPolygonPtr p_n; int i = 0; gaiaPolygonPtr new_polyg; gaiaRingPtr i_ring; gaiaRingPtr o_ring; gaiaGeomCollPtr geom = gaiaAllocGeomCollXYZ (); geoJsonMapDynAlloc (p_data, GEOJSON_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_MULTIPOLYGON; while (p) { i_ring = p->Exterior; new_polyg = gaiaAddPolygonToGeomColl (geom, i_ring->Points, p->NumInteriors); o_ring = new_polyg->Exterior; gaiaCopyRingCoords (o_ring, i_ring); for (i = 0; i < new_polyg->NumInteriors; i++) { i_ring = p->Interiors + i; o_ring = gaiaAddInteriorRing (new_polyg, i, i_ring->Points); gaiaCopyRingCoords (o_ring, i_ring); } p_n = p->Next; geoJsonMapDynClean (p_data, p); gaiaFreePolygon (p); p = p_n; } return geom; } static void geoJSON_geomColl_common (struct geoJson_data *p_data, gaiaGeomCollPtr org, gaiaGeomCollPtr dst) { /* / helper function: xfers entities between the Origin and Destination / Sandro Furieri: 2010 October 12 */ gaiaGeomCollPtr p = org; gaiaGeomCollPtr p_n; gaiaPointPtr pt; gaiaPointPtr pt_n; gaiaLinestringPtr ln; gaiaLinestringPtr ln_n; gaiaPolygonPtr pg; gaiaPolygonPtr pg_n; while (p) { pt = p->FirstPoint; while (pt) { pt_n = pt->Next; pt->Next = NULL; if (dst->FirstPoint == NULL) dst->FirstPoint = pt; if (dst->LastPoint != NULL) dst->LastPoint->Next = pt; dst->LastPoint = pt; pt = pt_n; } ln = p->FirstLinestring; while (ln) { ln_n = ln->Next; ln->Next = NULL; if (dst->FirstLinestring == NULL) dst->FirstLinestring = ln; if (dst->LastLinestring != NULL) dst->LastLinestring->Next = ln; dst->LastLinestring = ln; ln = ln_n; } pg = p->FirstPolygon; while (pg) { pg_n = pg->Next; pg->Next = NULL; if (dst->FirstPolygon == NULL) dst->FirstPolygon = pg; if (dst->LastPolygon != NULL) dst->LastPolygon->Next = pg; dst->LastPolygon = pg; pg = pg_n; } p_n = p->Next; p->FirstPoint = NULL; p->LastPoint = NULL; p->FirstLinestring = NULL; p->LastLinestring = NULL; p->FirstPolygon = NULL; p->LastPolygon = NULL; geoJsonMapDynClean (p_data, p); gaiaFreeGeomColl (p); p = p_n; } } /* Creates a 2D (xy) geometry collection in SpatiaLite * * first is the first geometry collection in a linked list of geometry collections. * Each geometry collection represents a single type of object (eg. one could be a POINT, * another could be a LINESTRING, another could be a MULTILINESTRING, etc.). * * The type of object represented by any geometry collection is stored in the declaredType * field of its struct. For example, if first->declaredType = GAIA_POINT, then first represents a point. * If first->declaredType = GAIA_MULTIPOINT, then first represents a multipoint. * * NOTE: geometry collections cannot contain other geometry collections (have to confirm this * with Sandro). * * The goal of this function is to take the information from all of the structs in the linked list and * return one geomColl struct containing all of that information. * * The integers used for 'declaredType' are defined in gaiageo.h. In this function, the only values * contained in 'declaredType' that will be encountered will be: * * GAIA_POINT, GAIA_LINESTRING, GAIA_POLYGON, * GAIA_MULTIPOINT, GAIA_MULTILINESTRING, GAIA_MULTIPOLYGON */ static gaiaGeomCollPtr geoJSON_geomColl_xy (struct geoJson_data *p_data, gaiaGeomCollPtr first) { gaiaGeomCollPtr geom = gaiaAllocGeomColl (); if (geom == NULL) return NULL; geoJsonMapDynAlloc (p_data, GEOJSON_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_GEOMETRYCOLLECTION; geom->DimensionModel = GAIA_XY; geoJSON_geomColl_common (p_data, first, geom); return geom; } /* * See geomColl_xy for description. * * The only difference between this function and geomColl_xy is that the 'declaredType' field of the structs * in the linked list for this function will only contain the following types: * * GAIA_POINTZ, GAIA_LINESTRINGZ, GAIA_POLYGONZ, * GAIA_MULTIPOINTZ, GAIA_MULTILINESTRINGZ, GAIA_MULTIPOLYGONZ */ static gaiaGeomCollPtr geoJSON_geomColl_xyz (struct geoJson_data *p_data, gaiaGeomCollPtr first) { gaiaGeomCollPtr geom = gaiaAllocGeomColl (); if (geom == NULL) return NULL; geoJsonMapDynAlloc (p_data, GEOJSON_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_GEOMETRYCOLLECTION; geom->DimensionModel = GAIA_XY_Z; geoJSON_geomColl_common (p_data, first, geom); return geom; } /* including LEMON generated code */ #include "geoJSON.c" /* ** CAVEAT: there is an incompatibility between LEMON and FLEX ** this macro resolves the issue */ #undef yy_accept #define yy_accept yy_geo_json_flex_accept /* including FLEX generated code */ #include "lex.GeoJson.c" /* ** This is a linked-list struct to store all the values for each token. ** All tokens will have a value of 0, except tokens denoted as NUM. ** NUM tokens are geometry coordinates and will contain the floating ** point number. */ typedef struct geoJsonFlexTokenStruct { double value; struct geoJsonFlexTokenStruct *Next; } geoJsonFlexToken; /* ** Function to clean up the linked-list of token values. */ static int geoJSON_cleanup (geoJsonFlexToken * token) { geoJsonFlexToken *ptok; geoJsonFlexToken *ptok_n; if (token == NULL) return 0; ptok = token; while (ptok) { ptok_n = ptok->Next; free (ptok); ptok = ptok_n; } return 0; } gaiaGeomCollPtr gaiaParseGeoJSON (const unsigned char *dirty_buffer) { void *pParser = ParseAlloc (malloc); /* Linked-list of token values */ geoJsonFlexToken *tokens = malloc (sizeof (geoJsonFlexToken)); /* Pointer to the head of the list */ geoJsonFlexToken *head = tokens; int yv; yyscan_t scanner; struct geoJson_data str_data; /* initializing the helper structs */ str_data.geoJson_line = 1; str_data.geoJson_col = 1; str_data.geoJson_parse_error = 0; str_data.geoJson_first_dyn_block = NULL; str_data.geoJson_last_dyn_block = NULL; str_data.result = NULL; /* initializing the scanner state */ GeoJsonlex_init_extra (&str_data, &scanner); tokens->Next = NULL; GeoJson_scan_string ((char *) dirty_buffer, scanner); /* / Keep tokenizing until we reach the end / yylex() will return the next matching Token for us. */ while ((yv = yylex (scanner)) != 0) { if (yv == -1) { str_data.geoJson_parse_error = 1; break; } tokens->Next = malloc (sizeof (geoJsonFlexToken)); tokens->Next->Next = NULL; tokens->Next->value = str_data.GeoJsonLval.dval; /* Pass the token to the wkt parser created from lemon */ Parse (pParser, yv, &(tokens->Next->value), &str_data); tokens = tokens->Next; } /* This denotes the end of a line as well as the end of the parser */ Parse (pParser, GEOJSON_NEWLINE, 0, &str_data); ParseFree (pParser, free); GeoJsonlex_destroy (scanner); /* Assigning the token as the end to avoid seg faults while cleaning */ tokens->Next = NULL; geoJSON_cleanup (head); if (str_data.geoJson_parse_error) { if (str_data.result) { /* if a Geometry-result has been produced, the stack is already cleaned */ gaiaFreeGeomColl (str_data.result); geoJsonCleanMapDynAlloc (&str_data, 0); } else { /* otherwise we are required to clean the stack */ geoJsonCleanMapDynAlloc (&str_data, 1); } return NULL; } geoJsonCleanMapDynAlloc (&str_data, 0); if (str_data.result == NULL) return NULL; if (!geoJsonCheckValidity (str_data.result)) { gaiaFreeGeomColl (str_data.result); return NULL; } gaiaMbrGeometry (str_data.result); return str_data.result; } /* ** CAVEAT: we must now undefine any Lemon/Flex own macro */ #undef YYNOCODE #undef YYNSTATE #undef YYNRULE #undef YY_SHIFT_MAX #undef YY_SHIFT_USE_DFLT #undef YY_REDUCE_USE_DFLT #undef YY_REDUCE_MAX #undef YY_FLUSH_BUFFER #undef YY_DO_BEFORE_ACTION #undef YY_NUM_RULES #undef YY_END_OF_BUFFER #undef YY_END_FILE #undef YYACTIONTYPE #undef YY_SZ_ACTTAB #undef YY_NEW_FILE #undef BEGIN #undef YY_START #undef YY_CURRENT_BUFFER #undef YY_CURRENT_BUFFER_LVALUE #undef YY_STATE_BUF_SIZE #undef YY_DECL #undef YY_FATAL_ERROR #undef YYMINORTYPE #undef YY_CHAR #undef YYSTYPE #undef input #undef ParseAlloc #undef ParseFree #undef ParseStackPeak #undef Parse #undef yyalloc #undef yyfree #undef yyin #undef yyleng #undef yyless #undef yylex #undef yylineno #undef yyout #undef yyrealloc #undef yyrestart #undef yyStackEntry #undef yytext #undef yywrap #undef yyzerominor #undef yy_accept #undef yy_action #undef yy_base #undef yy_buffer_stack #undef yy_buffer_stack_max #undef yy_buffer_stack_top #undef yy_c_buf_p #undef yy_chk #undef yy_create_buffer #undef yy_def #undef yy_default #undef yy_delete_buffer #undef yy_destructor #undef yy_ec #undef yy_fatal_error #undef yy_find_reduce_action #undef yy_find_shift_action #undef yy_flex_debug #undef yy_flush_buffer #undef yy_get_next_buffer #undef yy_get_previous_state #undef yy_init #undef yy_init_buffer #undef yy_init_globals #undef yy_load_buffer #undef yy_load_buffer_state #undef yy_lookahead #undef yy_meta #undef yy_new_buffer #undef yy_nxt #undef yy_parse_failed #undef yy_pop_parser_stack #undef yy_reduce #undef yy_reduce_ofst #undef yy_set_bol #undef yy_set_interactive #undef yy_shift #undef yy_shift_ofst #undef yy_start #undef yy_state_type #undef yy_switch_to_buffer #undef yy_syntax_error #undef yy_trans_info #undef yy_try_NUL_trans #undef yyParser #undef yyStackEntry #undef yyStackOverflow #undef yyRuleInfo #undef yytext_ptr #undef yyunput #undef yyzerominor #undef ParseARG_SDECL #undef ParseARG_PDECL #undef ParseARG_FETCH #undef ParseARG_STORE #undef REJECT #undef yymore #undef YY_MORE_ADJ #undef YY_RESTORE_YY_MORE_OFFSET #undef YY_LESS_LINENO #undef yyTracePrompt #undef yyTraceFILE #undef yyTokenName #undef yyRuleName #undef ParseTrace #undef yylex #undef YY_DECL libspatialite-4.1.1/src/gaiageo/gg_shape.c0000664000175000017500000045560512163502133015405 00000000000000/* gg_shape.c -- Gaia shapefile handling version 4.1, 2013 May 8 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #if OMIT_ICONV == 0 /* if ICONV is disabled no SHP support is available */ #if defined(__MINGW32__) || defined(_WIN32) #define LIBICONV_STATIC #include #define LIBCHARSET_STATIC #ifdef _MSC_VER /* isn't supported on OSGeo4W */ /* applying a tricky workaround to fix this issue */ extern const char *locale_charset (void); #else /* sane Windows - not OSGeo4W */ #include #endif /* end localcharset */ #else /* not MINGW32 */ #if defined(__APPLE__) || defined(__ANDROID__) #include #include #else /* neither Mac OsX nor Android */ #include #include #endif #endif #include #include #ifdef _WIN32 #define atoll _atoi64 #endif /* not WIN32 */ /* 64 bit integer: portable format for printf() */ #if defined(_WIN32) && !defined(__MINGW32__) #define FRMT64 "%I64d" #else #define FRMT64 "%lld" #endif #define SHAPEFILE_NO_DATA 1e-38 #ifdef _WIN32 #define strcasecmp _stricmp #endif /* not WIN32 */ struct auxdbf_fld { /* auxiliary DBF field struct */ char *name; struct auxdbf_fld *next; }; struct auxdbf_list { /* auxiliary DBF struct */ struct auxdbf_fld *first; struct auxdbf_fld *last; }; GAIAGEO_DECLARE void gaiaFreeValue (gaiaValuePtr p) { /* frees all memory allocations for this DBF Field value */ if (!p) return; if (p->TxtValue) free (p->TxtValue); free (p); } GAIAGEO_DECLARE void gaiaSetNullValue (gaiaDbfFieldPtr field) { /* assignes a NULL value to some DBF field */ if (field->Value) gaiaFreeValue (field->Value); field->Value = malloc (sizeof (gaiaValue)); field->Value->Type = GAIA_NULL_VALUE; field->Value->TxtValue = NULL; } GAIAGEO_DECLARE void gaiaSetIntValue (gaiaDbfFieldPtr field, sqlite3_int64 value) { /* assignes an INTEGER value to some DBF field */ if (field->Value) gaiaFreeValue (field->Value); field->Value = malloc (sizeof (gaiaValue)); field->Value->Type = GAIA_INT_VALUE; field->Value->TxtValue = NULL; field->Value->IntValue = value; } GAIAGEO_DECLARE void gaiaSetDoubleValue (gaiaDbfFieldPtr field, double value) { /* assignes a DOUBLE value to some DBF field */ if (field->Value) gaiaFreeValue (field->Value); field->Value = malloc (sizeof (gaiaValue)); field->Value->Type = GAIA_DOUBLE_VALUE; field->Value->TxtValue = NULL; field->Value->DblValue = value; } GAIAGEO_DECLARE void gaiaSetStrValue (gaiaDbfFieldPtr field, char *str) { /* assignes a STRING value to some DBF field */ int len = strlen (str); if (field->Value) gaiaFreeValue (field->Value); field->Value = malloc (sizeof (gaiaValue)); field->Value->Type = GAIA_TEXT_VALUE; field->Value->TxtValue = malloc (len + 1); strcpy (field->Value->TxtValue, str); } GAIAGEO_DECLARE gaiaDbfFieldPtr gaiaAllocDbfField (char *name, unsigned char type, int offset, unsigned char length, unsigned char decimals) { /* allocates and initializes a DBF Field definition */ gaiaDbfFieldPtr p = malloc (sizeof (gaiaDbfField)); int len = strlen (name); p->Name = malloc (len + 1); strcpy (p->Name, name); p->Type = type; p->Offset = offset; p->Length = length; p->Decimals = decimals; p->Value = NULL; p->Next = NULL; return p; } GAIAGEO_DECLARE void gaiaFreeDbfField (gaiaDbfFieldPtr p) { /* frees all memory allocations for this DBF Field definition */ if (!p) return; if (p->Name) free (p->Name); if (p->Value) gaiaFreeValue (p->Value); free (p); } GAIAGEO_DECLARE gaiaDbfFieldPtr gaiaCloneDbfField (gaiaDbfFieldPtr org) { /* creating a new DBF LIST copied from the original one */ gaiaDbfFieldPtr p = malloc (sizeof (gaiaDbfField)); int len = strlen (org->Name); p->Name = malloc (len + 1); strcpy (p->Name, org->Name); p->Type = org->Type; p->Offset = org->Offset; p->Length = org->Length; p->Decimals = org->Decimals; p->Value = gaiaCloneValue (org->Value); p->Next = NULL; return p; } GAIAGEO_DECLARE gaiaDbfListPtr gaiaAllocDbfList () { /* allocates and initializes the DBF Fields list */ gaiaDbfListPtr list = malloc (sizeof (gaiaDbfList)); list->RowId = 0; list->Geometry = NULL; list->First = NULL; list->Last = NULL; return list; } GAIAGEO_DECLARE void gaiaFreeDbfList (gaiaDbfListPtr list) { /* frees all memory allocations related to DBF Fields list */ gaiaDbfFieldPtr p; gaiaDbfFieldPtr pn; if (!list) return; p = list->First; while (p) { pn = p->Next; gaiaFreeDbfField (p); p = pn; } if (list->Geometry) gaiaFreeGeomColl (list->Geometry); free (list); } GAIAGEO_DECLARE int gaiaIsValidDbfList (gaiaDbfListPtr list) { /* checks if the DBF fields list contains any invalid data type */ gaiaDbfFieldPtr p; if (!list) return 0; p = list->First; while (p) { if (p->Type == 'N' || p->Type == 'C' || p->Type == 'L' || p->Type == 'D' || p->Type == 'F') ; else return 0; p = p->Next; } return 1; } GAIAGEO_DECLARE gaiaDbfFieldPtr gaiaAddDbfField (gaiaDbfListPtr list, char *name, unsigned char type, int offset, unsigned char length, unsigned char decimals) { /* inserts a Field in the DBF Fields list */ gaiaDbfFieldPtr p; if (!list) return NULL; p = gaiaAllocDbfField (name, type, offset, length, decimals); if (!(list->First)) list->First = p; if (list->Last) list->Last->Next = p; list->Last = p; return p; } GAIAGEO_DECLARE void gaiaResetDbfEntity (gaiaDbfListPtr list) { /* resets data values */ gaiaDbfFieldPtr p; if (!list) return; p = list->First; while (p) { if (p->Value) gaiaFreeValue (p->Value); p->Value = NULL; p = p->Next; } if (list->Geometry) gaiaFreeGeomColl (list->Geometry); list->Geometry = NULL; } GAIAGEO_DECLARE gaiaValuePtr gaiaCloneValue (gaiaValuePtr org) { /* creating a new VARIANT value copied from the original one */ gaiaValuePtr value; int len; value = malloc (sizeof (gaiaValue)); value->Type = GAIA_NULL_VALUE; value->TxtValue = NULL; switch (org->Type) { case GAIA_INT_VALUE: value->Type = GAIA_INT_VALUE; value->IntValue = org->IntValue; break; case GAIA_DOUBLE_VALUE: value->Type = GAIA_DOUBLE_VALUE; value->DblValue = org->DblValue; break; case GAIA_TEXT_VALUE: value->Type = GAIA_TEXT_VALUE; len = strlen (org->TxtValue); value->TxtValue = malloc (len + 1); strcpy (value->TxtValue, org->TxtValue); }; return value; } GAIAGEO_DECLARE gaiaDbfListPtr gaiaCloneDbfEntity (gaiaDbfListPtr org) { /* creating a new DBF LIST copied from the original one */ gaiaDbfFieldPtr p; gaiaDbfFieldPtr newFld; gaiaDbfListPtr entity = gaiaAllocDbfList (); entity->RowId = org->RowId; if (org->Geometry) entity->Geometry = gaiaCloneGeomColl (org->Geometry); p = org->First; while (p) { newFld = gaiaAddDbfField (entity, p->Name, p->Type, p->Offset, p->Length, p->Decimals); if (p->Value) newFld->Value = gaiaCloneValue (p->Value); p = p->Next; } return entity; } GAIAGEO_DECLARE gaiaShapefilePtr gaiaAllocShapefile () { /* allocates and initializes the Shapefile object */ gaiaShapefilePtr shp = malloc (sizeof (gaiaShapefile)); shp->endian_arch = 1; shp->Path = NULL; shp->Shape = -1; shp->EffectiveType = GAIA_UNKNOWN; shp->EffectiveDims = GAIA_XY; shp->flShp = NULL; shp->flShx = NULL; shp->flDbf = NULL; shp->Dbf = NULL; shp->BufShp = NULL; shp->ShpBfsz = 0; shp->BufDbf = NULL; shp->DbfHdsz = 0; shp->DbfReclen = 0; shp->DbfSize = 0; shp->DbfRecno = 0; shp->ShpSize = 0; shp->ShxSize = 0; shp->MinX = DBL_MAX; shp->MinY = DBL_MAX; shp->MaxX = -DBL_MAX; shp->MaxY = -DBL_MAX; shp->Valid = 0; shp->IconvObj = NULL; shp->LastError = NULL; return shp; } GAIAGEO_DECLARE void gaiaFreeShapefile (gaiaShapefilePtr shp) { /* frees all memory allocations related to the Shapefile object */ if (shp->Path) free (shp->Path); if (shp->flShp) fclose (shp->flShp); if (shp->flShx) fclose (shp->flShx); if (shp->flDbf) fclose (shp->flDbf); if (shp->Dbf) gaiaFreeDbfList (shp->Dbf); if (shp->BufShp) free (shp->BufShp); if (shp->BufDbf) free (shp->BufDbf); if (shp->IconvObj) iconv_close ((iconv_t) shp->IconvObj); if (shp->LastError) free (shp->LastError); free (shp); } GAIAGEO_DECLARE void gaiaOpenShpRead (gaiaShapefilePtr shp, const char *path, const char *charFrom, const char *charTo) { /* trying to open the shapefile and initial checkings */ FILE *fl_shx = NULL; FILE *fl_shp = NULL; FILE *fl_dbf = NULL; char xpath[1024]; int rd; unsigned char buf_shx[256]; unsigned char *buf_shp = NULL; int buf_size = 1024; int shape; unsigned char bf[1024]; int dbf_size; int dbf_reclen = 0; int off_dbf; int ind; char field_name[2048]; char *sys_err; char errMsg[1024]; iconv_t iconv_ret; char utf8buf[2048]; #if !defined(__MINGW32__) && defined(_WIN32) const char *pBuf; #else /* not WIN32 */ char *pBuf; #endif size_t len; size_t utf8len; char *pUtf8buf; int endian_arch = gaiaEndianArch (); gaiaDbfListPtr dbf_list = NULL; if (charFrom && charTo) { iconv_ret = iconv_open (charTo, charFrom); if (iconv_ret == (iconv_t) (-1)) { sprintf (errMsg, "conversion from '%s' to '%s' not available\n", charFrom, charTo); goto unsupported_conversion; } shp->IconvObj = iconv_ret; } else { sprintf (errMsg, "a NULL charset-name was passed\n"); goto unsupported_conversion; } if (shp->flShp != NULL || shp->flShx != NULL || shp->flDbf != NULL) { sprintf (errMsg, "attempting to reopen an already opened Shapefile\n"); goto unsupported_conversion; } sprintf (xpath, "%s.shx", path); fl_shx = fopen (xpath, "rb"); if (!fl_shx) { sys_err = strerror (errno); sprintf (errMsg, "unable to open '%s' for reading: %s", xpath, sys_err); goto no_file; } sprintf (xpath, "%s.shp", path); fl_shp = fopen (xpath, "rb"); if (!fl_shp) { sys_err = strerror (errno); sprintf (errMsg, "unable to open '%s' for reading: %s", xpath, sys_err); goto no_file; } sprintf (xpath, "%s.dbf", path); fl_dbf = fopen (xpath, "rb"); if (!fl_dbf) { sys_err = strerror (errno); sprintf (errMsg, "unable to open '%s' for reading: %s", xpath, sys_err); goto no_file; } /* reading SHX file header */ rd = fread (buf_shx, sizeof (unsigned char), 100, fl_shx); if (rd != 100) goto error; if (gaiaImport32 (buf_shx + 0, GAIA_BIG_ENDIAN, endian_arch) != 9994) /* checks the SHX magic number */ goto error; /* reading SHP file header */ buf_shp = malloc (sizeof (unsigned char) * buf_size); rd = fread (buf_shp, sizeof (unsigned char), 100, fl_shp); if (rd != 100) goto error; if (gaiaImport32 (buf_shp + 0, GAIA_BIG_ENDIAN, endian_arch) != 9994) /* checks the SHP magic number */ goto error; shape = gaiaImport32 (buf_shp + 32, GAIA_LITTLE_ENDIAN, endian_arch); if (shape == GAIA_SHP_POINT || shape == GAIA_SHP_POINTZ || shape == GAIA_SHP_POINTM || shape == GAIA_SHP_POLYLINE || shape == GAIA_SHP_POLYLINEZ || shape == GAIA_SHP_POLYLINEM || shape == GAIA_SHP_POLYGON || shape == GAIA_SHP_POLYGONZ || shape == GAIA_SHP_POLYGONM || shape == GAIA_SHP_MULTIPOINT || shape == GAIA_SHP_MULTIPOINTZ || shape == GAIA_SHP_MULTIPOINTM) ; else goto unsupported; /* reading DBF file header */ rd = fread (bf, sizeof (unsigned char), 32, fl_dbf); if (rd != 32) goto error; if (*bf != 0x03) /* checks the DBF magic number */ goto error; dbf_size = gaiaImport16 (bf + 8, GAIA_LITTLE_ENDIAN, endian_arch); dbf_reclen = gaiaImport16 (bf + 10, GAIA_LITTLE_ENDIAN, endian_arch); dbf_size--; off_dbf = 0; dbf_list = gaiaAllocDbfList (); for (ind = 32; ind < dbf_size; ind += 32) { /* fetches DBF fields definitions */ rd = fread (bf, sizeof (unsigned char), 32, fl_dbf); if (rd != 32) goto error; memcpy (field_name, bf, 11); field_name[11] = '\0'; len = strlen ((char *) field_name); utf8len = 2048; pBuf = (char *) field_name; pUtf8buf = utf8buf; if (iconv ((iconv_t) (shp->IconvObj), &pBuf, &len, &pUtf8buf, &utf8len) == (size_t) (-1)) goto conversion_error; memcpy (field_name, utf8buf, 2048 - utf8len); field_name[2048 - utf8len] = '\0'; gaiaAddDbfField (dbf_list, field_name, *(bf + 11), off_dbf, *(bf + 16), *(bf + 17)); off_dbf += *(bf + 16); } if (!gaiaIsValidDbfList (dbf_list)) { /* invalid DBF */ goto illegal_dbf; } len = strlen (path); shp->Path = malloc (len + 1); strcpy (shp->Path, path); shp->ReadOnly = 1; shp->Shape = shape; switch (shape) { /* setting up a prudential geometry type */ case GAIA_SHP_POINT: case GAIA_SHP_POINTZ: case GAIA_SHP_POINTM: shp->EffectiveType = GAIA_POINT; break; case GAIA_SHP_POLYLINE: case GAIA_SHP_POLYLINEZ: case GAIA_SHP_POLYLINEM: shp->EffectiveType = GAIA_MULTILINESTRING; break; case GAIA_SHP_POLYGON: case GAIA_SHP_POLYGONZ: case GAIA_SHP_POLYGONM: shp->EffectiveType = GAIA_MULTIPOLYGON; break; case GAIA_SHP_MULTIPOINT: case GAIA_SHP_MULTIPOINTZ: case GAIA_SHP_MULTIPOINTM: shp->EffectiveType = GAIA_MULTIPOINT; break; } switch (shape) { /* setting up a prudential dimension model */ case GAIA_SHP_POINTZ: case GAIA_SHP_POLYLINEZ: case GAIA_SHP_POLYGONZ: case GAIA_SHP_MULTIPOINTZ: shp->EffectiveDims = GAIA_XY_Z_M; break; case GAIA_SHP_POINTM: case GAIA_SHP_POLYLINEM: case GAIA_SHP_POLYGONM: case GAIA_SHP_MULTIPOINTM: shp->EffectiveDims = GAIA_XY_M; break; default: shp->EffectiveDims = GAIA_XY; break; } shp->flShp = fl_shp; shp->flShx = fl_shx; shp->flDbf = fl_dbf; shp->Dbf = dbf_list; /* saving the SHP buffer */ shp->BufShp = buf_shp; shp->ShpBfsz = buf_size; /* allocating DBF buffer */ shp->BufDbf = malloc (sizeof (unsigned char) * dbf_reclen); shp->DbfHdsz = dbf_size + 1; shp->DbfReclen = dbf_reclen; shp->Valid = 1; shp->endian_arch = endian_arch; return; unsupported_conversion: /* illegal charset */ if (shp->LastError) free (shp->LastError); len = strlen (errMsg); shp->LastError = malloc (len + 1); strcpy (shp->LastError, errMsg); return; no_file: /* one of shapefile's files can't be accessed */ if (shp->LastError) free (shp->LastError); len = strlen (errMsg); shp->LastError = malloc (len + 1); strcpy (shp->LastError, errMsg); if (fl_shx) fclose (fl_shx); if (fl_shp) fclose (fl_shp); if (fl_dbf) fclose (fl_dbf); return; error: /* the shapefile is invalid or corrupted */ if (shp->LastError) free (shp->LastError); sprintf (errMsg, "'%s' is corrupted / has invalid format", path); len = strlen (errMsg); shp->LastError = malloc (len + 1); strcpy (shp->LastError, errMsg); gaiaFreeDbfList (dbf_list); if (buf_shp) free (buf_shp); fclose (fl_shx); fclose (fl_shp); fclose (fl_dbf); return; unsupported: /* the shapefile has an unrecognized shape type */ if (shp->LastError) free (shp->LastError); sprintf (errMsg, "'%s' shape=%d is not supported", path, shape); len = strlen (errMsg); shp->LastError = malloc (len + 1); strcpy (shp->LastError, errMsg); gaiaFreeDbfList (dbf_list); if (buf_shp) free (buf_shp); fclose (fl_shx); fclose (fl_shp); if (fl_dbf) fclose (fl_dbf); return; illegal_dbf: /* the DBF-file contains unsupported data types */ if (shp->LastError) free (shp->LastError); sprintf (errMsg, "'%s.dbf' contains unsupported data types", path); len = strlen (errMsg); shp->LastError = malloc (len + 1); strcpy (shp->LastError, errMsg); gaiaFreeDbfList (dbf_list); if (buf_shp) free (buf_shp); fclose (fl_shx); fclose (fl_shp); if (fl_dbf) fclose (fl_dbf); return; conversion_error: /* libiconv error */ if (shp->LastError) free (shp->LastError); sprintf (errMsg, "'%s.dbf' field name: invalid character sequence", path); len = strlen (errMsg); shp->LastError = malloc (len + 1); strcpy (shp->LastError, errMsg); gaiaFreeDbfList (dbf_list); if (buf_shp) free (buf_shp); fclose (fl_shx); fclose (fl_shp); if (fl_dbf) fclose (fl_dbf); return; } static struct auxdbf_list * alloc_auxdbf (gaiaDbfListPtr dbf_list) { /* allocating the auxiliary DBF struct */ int len; gaiaDbfFieldPtr fld; struct auxdbf_fld *fld_ex; struct auxdbf_list *auxdbf = malloc (sizeof (struct auxdbf_list)); auxdbf->first = NULL; auxdbf->last = NULL; fld = dbf_list->First; while (fld) { fld_ex = malloc (sizeof (struct auxdbf_fld)); len = strlen (fld->Name); fld_ex->name = malloc (len + 1); strcpy (fld_ex->name, fld->Name); fld_ex->next = NULL; if (auxdbf->first == NULL) auxdbf->first = fld_ex; if (auxdbf->last != NULL) auxdbf->last->next = fld_ex; auxdbf->last = fld_ex; fld = fld->Next; } return auxdbf; } static void free_auxdbf (struct auxdbf_list *auxdbf) { /* freeing an auxiliary DBF struct */ struct auxdbf_fld *n_fld; struct auxdbf_fld *fld = auxdbf->first; while (fld != NULL) { n_fld = fld->next; if (fld->name != NULL) free (fld->name); free (fld); fld = n_fld; } free (auxdbf); } static void truncate_long_name (struct auxdbf_list *list, gaiaDbfFieldPtr xfld) { /* attempting to create a unique short name <= 10 bytes */ char suffix; char buf[16]; struct auxdbf_fld *fld; struct auxdbf_fld *base = NULL; memcpy (buf, xfld->Name, 9); buf[10] = '\0'; fld = list->first; while (fld) { /* identifying the base aux Field */ if (strcmp (xfld->Name, fld->name) == 0) { base = fld; break; } fld = fld->next; } suffix = '0'; while (1) { /* attempting to find a numeric suffix ensuring uniqueness */ int ok = 1; buf[9] = suffix; fld = list->first; while (fld) { if (base != fld) { if (strcasecmp (buf, fld->name) == 0) { /* invalid: already defined */ ok = 0; break; } } fld = fld->next; } if (ok) { strcpy (xfld->Name, buf); if (base != NULL) strcpy (base->name, buf); return; } if (suffix == '9') break; else suffix++; } suffix = 'A'; while (1) { /* attempting to find a letter suffix ensuring uniqueness */ int ok = 1; buf[9] = suffix; fld = list->first; while (fld) { if (base != fld) { if (strcasecmp (buf, fld->name) == 0) { /* invalid: already defined */ ok = 0; break; } } fld = fld->next; } if (ok) { strcpy (xfld->Name, buf); if (base != NULL) strcpy (base->name, buf); return; } if (suffix == 'Z') break; else suffix++; } } GAIAGEO_DECLARE void gaiaOpenShpWrite (gaiaShapefilePtr shp, const char *path, int shape, gaiaDbfListPtr dbf_list, const char *charFrom, const char *charTo) { /* trying to create the shapefile */ FILE *fl_shx = NULL; FILE *fl_shp = NULL; FILE *fl_dbf = NULL; char xpath[1024]; unsigned char *buf_shp = NULL; int buf_size = 1024; unsigned char *dbf_buf = NULL; gaiaDbfFieldPtr fld; char *sys_err; char errMsg[1024]; short dbf_reclen = 0; int shp_size = 0; int shx_size = 0; unsigned short dbf_size = 0; iconv_t iconv_ret; int endian_arch = gaiaEndianArch (); char buf[2048]; char utf8buf[2048]; #if !defined(__MINGW32__) && defined(_WIN32) const char *pBuf; #else /* not WIN32 */ char *pBuf; #endif size_t len; size_t utf8len; char *pUtf8buf; int defaultId = 1; struct auxdbf_list *auxdbf = NULL; if (charFrom && charTo) { iconv_ret = iconv_open (charTo, charFrom); if (iconv_ret == (iconv_t) (-1)) { sprintf (errMsg, "conversion from '%s' to '%s' not available\n", charFrom, charTo); goto unsupported_conversion; } shp->IconvObj = iconv_ret; } else { sprintf (errMsg, "a NULL charset-name was passed\n"); goto unsupported_conversion; } if (shp->flShp != NULL || shp->flShx != NULL || shp->flDbf != NULL) { sprintf (errMsg, "attempting to reopen an already opened Shapefile\n"); goto unsupported_conversion; } buf_shp = malloc (buf_size); /* trying to open shapefile files */ sprintf (xpath, "%s.shx", path); fl_shx = fopen (xpath, "wb"); if (!fl_shx) { sys_err = strerror (errno); sprintf (errMsg, "unable to open '%s' for writing: %s", xpath, sys_err); goto no_file; } sprintf (xpath, "%s.shp", path); fl_shp = fopen (xpath, "wb"); if (!fl_shp) { sys_err = strerror (errno); sprintf (errMsg, "unable to open '%s' for writing: %s", xpath, sys_err); goto no_file; } sprintf (xpath, "%s.dbf", path); fl_dbf = fopen (xpath, "wb"); if (!fl_dbf) { sys_err = strerror (errno); sprintf (errMsg, "unable to open '%s' for writing: %s", xpath, sys_err); goto no_file; } /* allocating DBF buffer */ dbf_reclen = 1; /* an extra byte is needed because in DBF rows first byte is a marker for deletion */ fld = dbf_list->First; while (fld) { /* computing the DBF record length */ dbf_reclen += fld->Length; fld = fld->Next; } dbf_buf = malloc (dbf_reclen); /* writing an empty SHP file header */ memset (buf_shp, 0, 100); fwrite (buf_shp, 1, 100, fl_shp); shp_size = 50; /* note: shapefile [SHP and SHX] counts sizes in WORDS of 16 bits, not in bytes of 8 bits !!!! */ /* writing an empty SHX file header */ memset (buf_shp, 0, 100); fwrite (buf_shp, 1, 100, fl_shx); shx_size = 50; /* writing the DBF file header */ memset (buf_shp, '\0', 32); fwrite (buf_shp, 1, 32, fl_dbf); dbf_size = 32; /* note: DBF counts sizes in bytes */ auxdbf = alloc_auxdbf (dbf_list); fld = dbf_list->First; while (fld) { /* exporting DBF Fields specifications */ memset (buf_shp, 0, 32); if (strlen (fld->Name) > 10) { /* long name: attempting to safely truncate */ truncate_long_name (auxdbf, fld); } strcpy (buf, fld->Name); len = strlen (buf); utf8len = 2048; pBuf = buf; pUtf8buf = utf8buf; if (iconv ((iconv_t) (shp->IconvObj), &pBuf, &len, &pUtf8buf, &utf8len) == (size_t) (-1)) sprintf (buf, "FLD#%d", defaultId++); else { memcpy (buf, utf8buf, 2048 - utf8len); buf[2048 - utf8len] = '\0'; if (strlen (buf) > 10) sprintf (buf, "FLD#%d", defaultId++); } memcpy (buf_shp, buf, strlen (buf)); *(buf_shp + 11) = fld->Type; *(buf_shp + 16) = fld->Length; *(buf_shp + 17) = fld->Decimals; fwrite (buf_shp, 1, 32, fl_dbf); dbf_size += 32; fld = fld->Next; } free_auxdbf (auxdbf); fwrite ("\r", 1, 1, fl_dbf); /* this one is a special DBF delimiter that closes file header */ dbf_size++; /* setting up the SHP struct */ len = strlen (path); shp->Path = malloc (len + 1); strcpy (shp->Path, path); shp->ReadOnly = 0; switch (shape) { /* setting up SHAPE and dimensions */ case GAIA_POINT: shp->Shape = GAIA_SHP_POINT; shp->EffectiveType = GAIA_POINT; shp->EffectiveDims = GAIA_XY; break; case GAIA_POINTZ: shp->Shape = GAIA_SHP_POINTZ; shp->EffectiveType = GAIA_POINT; shp->EffectiveDims = GAIA_XY_Z; break; case GAIA_POINTM: shp->Shape = GAIA_SHP_POINTM; shp->EffectiveType = GAIA_POINT; shp->EffectiveDims = GAIA_XY_M; break; case GAIA_POINTZM: shp->Shape = GAIA_SHP_POINTZ; shp->EffectiveType = GAIA_POINT; shp->EffectiveDims = GAIA_XY_Z_M; break; case GAIA_MULTIPOINT: shp->Shape = GAIA_SHP_MULTIPOINT; shp->EffectiveType = GAIA_MULTIPOINT; shp->EffectiveDims = GAIA_XY; break; case GAIA_MULTIPOINTZ: shp->Shape = GAIA_SHP_MULTIPOINTZ; shp->EffectiveType = GAIA_MULTIPOINT; shp->EffectiveDims = GAIA_XY_Z; break; case GAIA_MULTIPOINTM: shp->Shape = GAIA_SHP_MULTIPOINTM; shp->EffectiveType = GAIA_MULTIPOINT; shp->EffectiveDims = GAIA_XY_M; break; case GAIA_MULTIPOINTZM: shp->Shape = GAIA_SHP_MULTIPOINTZ; shp->EffectiveType = GAIA_MULTIPOINT; shp->EffectiveDims = GAIA_XY_Z_M; break; case GAIA_LINESTRING: shp->Shape = GAIA_SHP_POLYLINE; shp->EffectiveType = GAIA_LINESTRING; shp->EffectiveDims = GAIA_XY; break; case GAIA_LINESTRINGZ: shp->Shape = GAIA_SHP_POLYLINEZ; shp->EffectiveType = GAIA_LINESTRING; shp->EffectiveDims = GAIA_XY_Z; break; case GAIA_LINESTRINGM: shp->Shape = GAIA_SHP_POLYLINEM; shp->EffectiveType = GAIA_LINESTRING; shp->EffectiveDims = GAIA_XY_M; break; case GAIA_LINESTRINGZM: shp->Shape = GAIA_SHP_POLYLINEZ; shp->EffectiveType = GAIA_LINESTRING; shp->EffectiveDims = GAIA_XY_Z_M; break; case GAIA_MULTILINESTRING: shp->Shape = GAIA_SHP_POLYLINE; shp->EffectiveType = GAIA_MULTILINESTRING; shp->EffectiveDims = GAIA_XY; break; case GAIA_MULTILINESTRINGZ: shp->Shape = GAIA_SHP_POLYLINEZ; shp->EffectiveType = GAIA_MULTILINESTRING; shp->EffectiveDims = GAIA_XY_Z; break; case GAIA_MULTILINESTRINGM: shp->Shape = GAIA_SHP_POLYLINEM; shp->EffectiveType = GAIA_MULTILINESTRING; shp->EffectiveDims = GAIA_XY_M; break; case GAIA_MULTILINESTRINGZM: shp->Shape = GAIA_SHP_POLYLINEZ; shp->EffectiveType = GAIA_MULTILINESTRING; shp->EffectiveDims = GAIA_XY_Z_M; break; case GAIA_POLYGON: shp->Shape = GAIA_SHP_POLYGON; shp->EffectiveType = GAIA_POLYGON; shp->EffectiveDims = GAIA_XY; break; case GAIA_POLYGONZ: shp->Shape = GAIA_SHP_POLYGONZ; shp->EffectiveType = GAIA_POLYGON; shp->EffectiveDims = GAIA_XY_Z; break; case GAIA_POLYGONM: shp->Shape = GAIA_SHP_POLYGONM; shp->EffectiveType = GAIA_POLYGON; shp->EffectiveDims = GAIA_XY_M; break; case GAIA_POLYGONZM: shp->Shape = GAIA_SHP_POLYGONZ; shp->EffectiveType = GAIA_POLYGON; shp->EffectiveDims = GAIA_XY_Z_M; break; case GAIA_MULTIPOLYGON: shp->Shape = GAIA_SHP_POLYGON; shp->EffectiveType = GAIA_MULTIPOLYGON; shp->EffectiveDims = GAIA_XY; break; case GAIA_MULTIPOLYGONZ: shp->Shape = GAIA_SHP_POLYGONZ; shp->EffectiveType = GAIA_MULTIPOLYGON; shp->EffectiveDims = GAIA_XY_Z; break; case GAIA_MULTIPOLYGONM: shp->Shape = GAIA_SHP_POLYGONM; shp->EffectiveType = GAIA_MULTIPOLYGON; shp->EffectiveDims = GAIA_XY_M; break; case GAIA_MULTIPOLYGONZM: shp->Shape = GAIA_SHP_POLYGONZ; shp->EffectiveType = GAIA_MULTIPOLYGON; shp->EffectiveDims = GAIA_XY_Z_M; break; }; shp->flShp = fl_shp; shp->flShx = fl_shx; shp->flDbf = fl_dbf; shp->Dbf = dbf_list; shp->BufShp = buf_shp; shp->ShpBfsz = buf_size; shp->BufDbf = dbf_buf; shp->DbfHdsz = dbf_size + 1; shp->DbfReclen = dbf_reclen; shp->DbfSize = dbf_size; shp->DbfRecno = 0; shp->ShpSize = shp_size; shp->ShxSize = shx_size; shp->MinX = DBL_MAX; shp->MinY = DBL_MAX; shp->MaxX = -DBL_MAX; shp->MaxY = -DBL_MAX; shp->Valid = 1; shp->endian_arch = endian_arch; return; unsupported_conversion: /* illegal charset */ if (shp->LastError) free (shp->LastError); len = strlen (errMsg); shp->LastError = malloc (len + 1); strcpy (shp->LastError, errMsg); return; no_file: /* one of shapefile's files can't be created/opened */ if (shp->LastError) free (shp->LastError); len = strlen (errMsg); shp->LastError = malloc (len + 1); strcpy (shp->LastError, errMsg); if (buf_shp) free (buf_shp); if (fl_shx) fclose (fl_shx); if (fl_shp) fclose (fl_shp); if (fl_dbf) fclose (fl_dbf); return; } static double to_sqlite_julian_date (int year, int month, int day, double *julian) { /* trying to convert an 'YYYY-MM-DD' date into a JulianDate [double] */ int Y; int M; int D; int A; int B; int X1; int X2; if (year < 1900 || year > 2400) return 0; if (month < 1 || month > 12) return 0; if (day < 1) return 0; switch (month) { case 2: if ((year / 4) == 0) { if (day > 29) return 0; } else { if (day > 28) return 0; } break; case 4: case 6: case 9: case 11: if (day > 30) return 0; break; default: if (day > 31) return 0; }; /* computing the Julian date */ Y = year; M = month; D = day; if (M <= 2) { Y--; M += 12; } A = Y / 100; B = 2 - A + (A / 4); X1 = 36525 * (Y + 4716) / 100; X2 = 306001 * (M + 1) / 10000; *julian = (double) (X1 + X2 + D + B - 1524.5); return 1; } static int parseDbfField (unsigned char *buf_dbf, void *iconv_obj, gaiaDbfFieldPtr pFld) { /* parsing a generic DBF field */ unsigned char buf[512]; char utf8buf[2048]; #if !defined(__MINGW32__) && defined(_WIN32) const char *pBuf; #else /* not WIN32 */ char *pBuf; #endif size_t len; size_t utf8len; char *pUtf8buf; int i; memcpy (buf, buf_dbf + pFld->Offset + 1, pFld->Length); buf[pFld->Length] = '\0'; if (*buf == '\0') gaiaSetNullValue (pFld); else { if (pFld->Type == 'N') { /* NUMERIC value */ if (pFld->Decimals > 0 || pFld->Length > 18) gaiaSetDoubleValue (pFld, atof ((char *) buf)); else gaiaSetIntValue (pFld, atoll ((char *) buf)); } else if (pFld->Type == 'F') { /* FLOAT value */ gaiaSetDoubleValue (pFld, atof ((char *) buf)); } else if (pFld->Type == 'D') { /* DATE value */ if (strlen ((char *) buf) != 8) gaiaSetNullValue (pFld); else { /* converting into a Julian Date */ double julian; char date[5]; int year = 0; int month = 0; int day = 0; date[0] = buf[0]; date[1] = buf[1]; date[2] = buf[2]; date[3] = buf[3]; date[4] = '\0'; year = atoi (date); date[0] = buf[4]; date[1] = buf[5]; date[2] = '\0'; month = atoi (date); date[0] = buf[6]; date[1] = buf[7]; date[2] = '\0'; day = atoi (date); if (to_sqlite_julian_date (year, month, day, &julian)) gaiaSetDoubleValue (pFld, julian); else gaiaSetNullValue (pFld); } } else if (pFld->Type == 'L') { /* LOGICAL [aka Boolean] value */ if (*buf == '1' || *buf == 't' || *buf == 'T' || *buf == 'Y' || *buf == 'y') gaiaSetIntValue (pFld, 1); else gaiaSetIntValue (pFld, 0); } else { /* CHARACTER [aka String, Text] value */ /* Sandro 2013-01-07 / fixing an issue reported by Filip Arlet for (i = strlen ((char *) buf) - 1; i > 1; i--) */ for (i = strlen ((char *) buf) - 1; i >= 0; i--) { /* cleaning up trailing spaces */ if (buf[i] == ' ') buf[i] = '\0'; else break; } len = strlen ((char *) buf); utf8len = 2048; pBuf = (char *) buf; pUtf8buf = utf8buf; if (iconv ((iconv_t) (iconv_obj), &pBuf, &len, &pUtf8buf, &utf8len) == (size_t) (-1)) return 0; memcpy (buf, utf8buf, 2048 - utf8len); buf[2048 - utf8len] = '\0'; gaiaSetStrValue (pFld, (char *) buf); } } return 1; } struct shp_ring_item { /* a RING item [to be reassembled into a (Multi)Polygon] */ gaiaRingPtr Ring; int IsExterior; gaiaRingPtr Mother; struct shp_ring_item *Next; }; struct shp_ring_collection { /* a collection of RING items */ struct shp_ring_item *First; struct shp_ring_item *Last; }; static void shp_free_rings (struct shp_ring_collection *ringsColl) { /* memory cleanup: rings collection */ struct shp_ring_item *p; struct shp_ring_item *pN; p = ringsColl->First; while (p) { pN = p->Next; if (p->Ring) gaiaFreeRing (p->Ring); free (p); p = pN; } } static void shp_add_ring (struct shp_ring_collection *ringsColl, gaiaRingPtr ring) { /* inserting a ring into the rings collection */ struct shp_ring_item *p = malloc (sizeof (struct shp_ring_item)); p->Ring = ring; gaiaMbrRing (ring); gaiaClockwise (ring); /* accordingly to SHP rules interior/exterior depends on direction */ p->IsExterior = ring->Clockwise; p->Mother = NULL; p->Next = NULL; /* updating the linked list */ if (ringsColl->First == NULL) ringsColl->First = p; if (ringsColl->Last != NULL) ringsColl->Last->Next = p; ringsColl->Last = p; } static int shp_check_rings (gaiaRingPtr exterior, gaiaRingPtr candidate) { /* / speditively checks if the candidate could be an interior Ring / contained into the exterior Ring */ double z; double m; double x0; double y0; double x1; double y1; int mid; int ret0; int ret1; if (candidate->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (candidate->Coords, 0, &x0, &y0, &z); } else if (candidate->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (candidate->Coords, 0, &x0, &y0, &m); } else if (candidate->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (candidate->Coords, 0, &x0, &y0, &z, &m); } else { gaiaGetPoint (candidate->Coords, 0, &x0, &y0); } mid = candidate->Points / 2; if (candidate->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (candidate->Coords, mid, &x1, &y1, &z); } else if (candidate->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (candidate->Coords, mid, &x1, &y1, &m); } else if (candidate->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (candidate->Coords, mid, &x1, &y1, &z, &m); } else { gaiaGetPoint (candidate->Coords, mid, &x1, &y1); } /* testing if the first point falls on the exterior ring surface */ ret0 = gaiaIsPointOnRingSurface (exterior, x0, y0); /* testing if the second point falls on the exterior ring surface */ ret1 = gaiaIsPointOnRingSurface (exterior, x1, y1); if (ret0 || ret1) return 1; return 0; } static int shp_mbr_contains (gaiaRingPtr r1, gaiaRingPtr r2) { /* checks if the first Ring contains the second one - MBR based */ int ok_1 = 0; int ok_2 = 0; int ok_3 = 0; int ok_4 = 0; if (r2->MinX >= r1->MinX && r2->MinX <= r1->MaxX) ok_1 = 1; if (r2->MaxX >= r1->MinX && r2->MaxX <= r1->MaxX) ok_2 = 1; if (r2->MinY >= r1->MinY && r2->MinY <= r1->MaxY) ok_3 = 1; if (r2->MaxY >= r1->MinY && r2->MaxY <= r1->MaxY) ok_4 = 1; if (ok_1 && ok_2 && ok_3 && ok_4) return 1; return 0; } static void shp_arrange_rings (struct shp_ring_collection *ringsColl) { /* / arranging Rings so to associate any interior ring / to the containing exterior ring */ struct shp_ring_item *pInt; struct shp_ring_item *pExt; pExt = ringsColl->First; while (pExt != NULL) { /* looping on Exterior Rings */ if (pExt->IsExterior) { pInt = ringsColl->First; while (pInt != NULL) { /* looping on Interior Rings */ if (pInt->IsExterior == 0 && pInt->Mother == NULL && shp_mbr_contains (pExt->Ring, pInt->Ring)) { /* ok, matches */ if (shp_check_rings (pExt->Ring, pInt->Ring)) pInt->Mother = pExt->Ring; } pInt = pInt->Next; } } pExt = pExt->Next; } pExt = ringsColl->First; while (pExt != NULL) { if (pExt->IsExterior == 0 && pExt->Mother == NULL) { /* orphan ring: promoting to Exterior */ pExt->IsExterior = 1; } pExt = pExt->Next; } } static void shp_build_area (struct shp_ring_collection *ringsColl, gaiaGeomCollPtr geom) { /* building the final (Multi)Polygon Geometry */ gaiaPolygonPtr polyg; struct shp_ring_item *pExt; struct shp_ring_item *pInt; pExt = ringsColl->First; while (pExt != NULL) { if (pExt->IsExterior) { /* creating a new Polygon */ polyg = gaiaInsertPolygonInGeomColl (geom, pExt->Ring); pInt = ringsColl->First; while (pInt != NULL) { if (pExt->Ring == pInt->Mother) { /* adding an interior ring to current POLYGON */ gaiaAddRingToPolyg (polyg, pInt->Ring); /* releasing Ring ownership */ pInt->Ring = NULL; } pInt = pInt->Next; } /* releasing Ring ownership */ pExt->Ring = NULL; } pExt = pExt->Next; } } GAIAGEO_DECLARE int gaiaReadShpEntity (gaiaShapefilePtr shp, int current_row, int srid) { /* trying to read an entity from shapefile */ unsigned char buf[512]; int len; int rd; int skpos; int offset; int off_shp; int sz; int shape; double x; double y; double z; double m; int points; int n; int n1; int base; int baseZ; int baseM; int start; int end; int iv; int ind; int max_size; int min_size; int hasM; char errMsg[1024]; gaiaGeomCollPtr geom = NULL; gaiaLinestringPtr line = NULL; gaiaRingPtr ring = NULL; gaiaDbfFieldPtr pFld; struct shp_ring_collection ringsColl; /* initializing the RING collection */ ringsColl.First = NULL; ringsColl.Last = NULL; /* positioning and reading the SHX file */ offset = 100 + (current_row * 8); /* 100 bytes for the header + current row displacement; each SHX row = 8 bytes */ skpos = fseek (shp->flShx, offset, SEEK_SET); if (skpos != 0) goto eof; rd = fread (buf, sizeof (unsigned char), 8, shp->flShx); if (rd != 8) goto eof; off_shp = gaiaImport32 (buf, GAIA_BIG_ENDIAN, shp->endian_arch); /* positioning and reading the DBF file */ offset = shp->DbfHdsz + (current_row * shp->DbfReclen); skpos = fseek (shp->flDbf, offset, SEEK_SET); if (skpos != 0) goto error; rd = fread (shp->BufDbf, sizeof (unsigned char), shp->DbfReclen, shp->flDbf); if (rd != shp->DbfReclen) goto error; /* positioning and reading corresponding SHP entity - geometry */ offset = off_shp * 2; skpos = fseek (shp->flShp, offset, SEEK_SET); if (skpos != 0) goto error; rd = fread (buf, sizeof (unsigned char), 12, shp->flShp); if (rd != 12) goto error; sz = gaiaImport32 (buf + 4, GAIA_BIG_ENDIAN, shp->endian_arch); shape = gaiaImport32 (buf + 8, GAIA_LITTLE_ENDIAN, shp->endian_arch); if (shape == GAIA_SHP_NULL) { /* handling a NULL shape */ goto null_shape; } else if (shape != shp->Shape) goto error; if ((sz * 2) > shp->ShpBfsz) { /* current buffer is too small; we need to allocate a bigger buffer */ free (shp->BufShp); shp->ShpBfsz = sz * 2; shp->BufShp = malloc (sizeof (unsigned char) * shp->ShpBfsz); } if (shape == GAIA_SHP_POINT) { /* shape point */ rd = fread (shp->BufShp, sizeof (unsigned char), 16, shp->flShp); if (rd != 16) goto error; x = gaiaImport64 (shp->BufShp, GAIA_LITTLE_ENDIAN, shp->endian_arch); y = gaiaImport64 (shp->BufShp + 8, GAIA_LITTLE_ENDIAN, shp->endian_arch); if (shp->EffectiveDims == GAIA_XY_Z) { geom = gaiaAllocGeomCollXYZ (); gaiaAddPointToGeomCollXYZ (geom, x, y, 0.0); } else if (shp->EffectiveDims == GAIA_XY_M) { geom = gaiaAllocGeomCollXYM (); gaiaAddPointToGeomCollXYM (geom, x, y, 0.0); } else if (shp->EffectiveDims == GAIA_XY_Z_M) { geom = gaiaAllocGeomCollXYZM (); gaiaAddPointToGeomCollXYZM (geom, x, y, 0.0, 0.0); } else { geom = gaiaAllocGeomColl (); gaiaAddPointToGeomColl (geom, x, y); } geom->DeclaredType = GAIA_POINT; geom->Srid = srid; } if (shape == GAIA_SHP_POINTZ) { /* shape point Z */ rd = fread (shp->BufShp, sizeof (unsigned char), 32, shp->flShp); if (rd != 32) { /* required by some buggish SHP (e.g. the GDAL/OGR ones) */ if (rd != 24) goto error; } x = gaiaImport64 (shp->BufShp, GAIA_LITTLE_ENDIAN, shp->endian_arch); y = gaiaImport64 (shp->BufShp + 8, GAIA_LITTLE_ENDIAN, shp->endian_arch); z = gaiaImport64 (shp->BufShp + 16, GAIA_LITTLE_ENDIAN, shp->endian_arch); if (rd == 24) m = 0.0; else m = gaiaImport64 (shp->BufShp + 24, GAIA_LITTLE_ENDIAN, shp->endian_arch); if (shp->EffectiveDims == GAIA_XY_Z) { geom = gaiaAllocGeomCollXYZ (); gaiaAddPointToGeomCollXYZ (geom, x, y, z); } else if (shp->EffectiveDims == GAIA_XY_M) { geom = gaiaAllocGeomCollXYM (); gaiaAddPointToGeomCollXYM (geom, x, y, m); } else if (shp->EffectiveDims == GAIA_XY_Z_M) { geom = gaiaAllocGeomCollXYZM (); gaiaAddPointToGeomCollXYZM (geom, x, y, z, m); } else { geom = gaiaAllocGeomColl (); gaiaAddPointToGeomColl (geom, x, y); } geom->DeclaredType = GAIA_POINT; geom->Srid = srid; } if (shape == GAIA_SHP_POINTM) { /* shape point M */ rd = fread (shp->BufShp, sizeof (unsigned char), 24, shp->flShp); if (rd != 24) goto error; x = gaiaImport64 (shp->BufShp, GAIA_LITTLE_ENDIAN, shp->endian_arch); y = gaiaImport64 (shp->BufShp + 8, GAIA_LITTLE_ENDIAN, shp->endian_arch); m = gaiaImport64 (shp->BufShp + 16, GAIA_LITTLE_ENDIAN, shp->endian_arch); if (shp->EffectiveDims == GAIA_XY_Z) { geom = gaiaAllocGeomCollXYZ (); gaiaAddPointToGeomCollXYZ (geom, x, y, 0.0); } else if (shp->EffectiveDims == GAIA_XY_M) { geom = gaiaAllocGeomCollXYM (); gaiaAddPointToGeomCollXYM (geom, x, y, m); } else if (shp->EffectiveDims == GAIA_XY_Z_M) { geom = gaiaAllocGeomCollXYZM (); gaiaAddPointToGeomCollXYZM (geom, x, y, 0.0, m); } else { geom = gaiaAllocGeomColl (); gaiaAddPointToGeomColl (geom, x, y); } geom->DeclaredType = GAIA_POINT; geom->Srid = srid; } if (shape == GAIA_SHP_POLYLINE) { /* shape polyline */ rd = fread (shp->BufShp, sizeof (unsigned char), 32, shp->flShp); if (rd != 32) goto error; rd = fread (shp->BufShp, sizeof (unsigned char), (sz * 2) - 36, shp->flShp); if (rd != (sz * 2) - 36) goto error; n = gaiaImport32 (shp->BufShp, GAIA_LITTLE_ENDIAN, shp->endian_arch); n1 = gaiaImport32 (shp->BufShp + 4, GAIA_LITTLE_ENDIAN, shp->endian_arch); base = 8 + (n * 4); start = 0; for (ind = 0; ind < n; ind++) { if (ind < (n - 1)) end = gaiaImport32 (shp->BufShp + 8 + ((ind + 1) * 4), GAIA_LITTLE_ENDIAN, shp->endian_arch); else end = n1; points = end - start; if (shp->EffectiveDims == GAIA_XY_Z) line = gaiaAllocLinestringXYZ (points); else if (shp->EffectiveDims == GAIA_XY_M) line = gaiaAllocLinestringXYM (points); else if (shp->EffectiveDims == GAIA_XY_Z_M) line = gaiaAllocLinestringXYZM (points); else line = gaiaAllocLinestring (points); points = 0; for (iv = start; iv < end; iv++) { x = gaiaImport64 (shp->BufShp + base + (iv * 16), GAIA_LITTLE_ENDIAN, shp->endian_arch); y = gaiaImport64 (shp->BufShp + base + (iv * 16) + 8, GAIA_LITTLE_ENDIAN, shp->endian_arch); if (shp->EffectiveDims == GAIA_XY_Z) { gaiaSetPointXYZ (line->Coords, points, x, y, 0.0); } else if (shp->EffectiveDims == GAIA_XY_M) { gaiaSetPointXYM (line->Coords, points, x, y, 0.0); } else if (shp->EffectiveDims == GAIA_XY_Z_M) { gaiaSetPointXYZM (line->Coords, points, x, y, 0.0, 0.0); } else { gaiaSetPoint (line->Coords, points, x, y); } start++; points++; } if (!geom) { if (shp->EffectiveDims == GAIA_XY_Z) geom = gaiaAllocGeomCollXYZ (); else if (shp->EffectiveDims == GAIA_XY_M) geom = gaiaAllocGeomCollXYM (); else if (shp->EffectiveDims == GAIA_XY_Z_M) geom = gaiaAllocGeomCollXYZM (); else geom = gaiaAllocGeomColl (); if (shp->EffectiveType == GAIA_LINESTRING) geom->DeclaredType = GAIA_LINESTRING; else geom->DeclaredType = GAIA_MULTILINESTRING; geom->Srid = srid; } gaiaInsertLinestringInGeomColl (geom, line); } } if (shape == GAIA_SHP_POLYLINEZ) { /* shape polyline Z */ rd = fread (shp->BufShp, sizeof (unsigned char), 32, shp->flShp); if (rd != 32) goto error; rd = fread (shp->BufShp, sizeof (unsigned char), (sz * 2) - 36, shp->flShp); if (rd != (sz * 2) - 36) goto error; n = gaiaImport32 (shp->BufShp, GAIA_LITTLE_ENDIAN, shp->endian_arch); n1 = gaiaImport32 (shp->BufShp + 4, GAIA_LITTLE_ENDIAN, shp->endian_arch); hasM = 0; max_size = 38 + (2 * n) + (n1 * 16); /* size [in 16 bits words !!!] ZM */ min_size = 30 + (2 * n) + (n1 * 12); /* size [in 16 bits words !!!] Z-only */ if (sz < min_size) goto error; if (sz == max_size) hasM = 1; base = 8 + (n * 4); baseZ = base + (n1 * 16) + 16; baseM = baseZ + (n1 * 8) + 16; start = 0; for (ind = 0; ind < n; ind++) { if (ind < (n - 1)) end = gaiaImport32 (shp->BufShp + 8 + ((ind + 1) * 4), GAIA_LITTLE_ENDIAN, shp->endian_arch); else end = n1; points = end - start; if (shp->EffectiveDims == GAIA_XY_Z) line = gaiaAllocLinestringXYZ (points); else if (shp->EffectiveDims == GAIA_XY_M) line = gaiaAllocLinestringXYM (points); else if (shp->EffectiveDims == GAIA_XY_Z_M) line = gaiaAllocLinestringXYZM (points); else line = gaiaAllocLinestring (points); points = 0; for (iv = start; iv < end; iv++) { x = gaiaImport64 (shp->BufShp + base + (iv * 16), GAIA_LITTLE_ENDIAN, shp->endian_arch); y = gaiaImport64 (shp->BufShp + base + (iv * 16) + 8, GAIA_LITTLE_ENDIAN, shp->endian_arch); z = gaiaImport64 (shp->BufShp + baseZ + (iv * 8), GAIA_LITTLE_ENDIAN, shp->endian_arch); if (hasM) m = gaiaImport64 (shp->BufShp + baseM + (iv * 8), GAIA_LITTLE_ENDIAN, shp->endian_arch); else m = 0.0; if (m < SHAPEFILE_NO_DATA) m = 0.0; if (shp->EffectiveDims == GAIA_XY_Z) { gaiaSetPointXYZ (line->Coords, points, x, y, z); } else if (shp->EffectiveDims == GAIA_XY_M) { gaiaSetPointXYM (line->Coords, points, x, y, m); } else if (shp->EffectiveDims == GAIA_XY_Z_M) { gaiaSetPointXYZM (line->Coords, points, x, y, z, m); } else { gaiaSetPoint (line->Coords, points, x, y); } start++; points++; } if (!geom) { if (shp->EffectiveDims == GAIA_XY_Z) geom = gaiaAllocGeomCollXYZ (); else if (shp->EffectiveDims == GAIA_XY_M) geom = gaiaAllocGeomCollXYM (); else if (shp->EffectiveDims == GAIA_XY_Z_M) geom = gaiaAllocGeomCollXYZM (); else geom = gaiaAllocGeomColl (); if (shp->EffectiveType == GAIA_LINESTRING) geom->DeclaredType = GAIA_LINESTRING; else geom->DeclaredType = GAIA_MULTILINESTRING; geom->Srid = srid; } gaiaInsertLinestringInGeomColl (geom, line); } } if (shape == GAIA_SHP_POLYLINEM) { /* shape polyline M */ rd = fread (shp->BufShp, sizeof (unsigned char), 32, shp->flShp); if (rd != 32) goto error; rd = fread (shp->BufShp, sizeof (unsigned char), (sz * 2) - 36, shp->flShp); if (rd != (sz * 2) - 36) goto error; n = gaiaImport32 (shp->BufShp, GAIA_LITTLE_ENDIAN, shp->endian_arch); n1 = gaiaImport32 (shp->BufShp + 4, GAIA_LITTLE_ENDIAN, shp->endian_arch); hasM = 0; max_size = 30 + (2 * n) + (n1 * 12); /* size [in 16 bits words !!!] M */ min_size = 22 + (2 * n) + (n1 * 8); /* size [in 16 bits words !!!] no-M */ if (sz < min_size) goto error; if (sz == max_size) hasM = 1; base = 8 + (n * 4); baseM = base + (n1 * 16) + 16; start = 0; for (ind = 0; ind < n; ind++) { if (ind < (n - 1)) end = gaiaImport32 (shp->BufShp + 8 + ((ind + 1) * 4), GAIA_LITTLE_ENDIAN, shp->endian_arch); else end = n1; points = end - start; if (shp->EffectiveDims == GAIA_XY_Z) line = gaiaAllocLinestringXYZ (points); else if (shp->EffectiveDims == GAIA_XY_M) line = gaiaAllocLinestringXYM (points); else if (shp->EffectiveDims == GAIA_XY_Z_M) line = gaiaAllocLinestringXYZM (points); else line = gaiaAllocLinestring (points); points = 0; for (iv = start; iv < end; iv++) { x = gaiaImport64 (shp->BufShp + base + (iv * 16), GAIA_LITTLE_ENDIAN, shp->endian_arch); y = gaiaImport64 (shp->BufShp + base + (iv * 16) + 8, GAIA_LITTLE_ENDIAN, shp->endian_arch); if (hasM) m = gaiaImport64 (shp->BufShp + baseM + (iv * 8), GAIA_LITTLE_ENDIAN, shp->endian_arch); else m = 0.0; if (m < SHAPEFILE_NO_DATA) m = 0.0; if (shp->EffectiveDims == GAIA_XY_Z) { gaiaSetPointXYZ (line->Coords, points, x, y, 0.0); } else if (shp->EffectiveDims == GAIA_XY_M) { gaiaSetPointXYM (line->Coords, points, x, y, m); } else if (shp->EffectiveDims == GAIA_XY_Z_M) { gaiaSetPointXYZM (line->Coords, points, x, y, 0.0, m); } else { gaiaSetPoint (line->Coords, points, x, y); } start++; points++; } if (!geom) { if (shp->EffectiveDims == GAIA_XY_Z) geom = gaiaAllocGeomCollXYZ (); else if (shp->EffectiveDims == GAIA_XY_M) geom = gaiaAllocGeomCollXYM (); else if (shp->EffectiveDims == GAIA_XY_Z_M) geom = gaiaAllocGeomCollXYZM (); else geom = gaiaAllocGeomColl (); if (shp->EffectiveType == GAIA_LINESTRING) geom->DeclaredType = GAIA_LINESTRING; else geom->DeclaredType = GAIA_MULTILINESTRING; geom->Srid = srid; } gaiaInsertLinestringInGeomColl (geom, line); } } if (shape == GAIA_SHP_POLYGON) { /* shape polygon */ rd = fread (shp->BufShp, sizeof (unsigned char), 32, shp->flShp); if (rd != 32) goto error; rd = fread (shp->BufShp, sizeof (unsigned char), (sz * 2) - 36, shp->flShp); if (rd != (sz * 2) - 36) goto error; n = gaiaImport32 (shp->BufShp, GAIA_LITTLE_ENDIAN, shp->endian_arch); n1 = gaiaImport32 (shp->BufShp + 4, GAIA_LITTLE_ENDIAN, shp->endian_arch); base = 8 + (n * 4); start = 0; for (ind = 0; ind < n; ind++) { if (ind < (n - 1)) end = gaiaImport32 (shp->BufShp + 8 + ((ind + 1) * 4), GAIA_LITTLE_ENDIAN, shp->endian_arch); else end = n1; points = end - start; if (shp->EffectiveDims == GAIA_XY_Z) ring = gaiaAllocRingXYZ (points); else if (shp->EffectiveDims == GAIA_XY_M) ring = gaiaAllocRingXYM (points); else if (shp->EffectiveDims == GAIA_XY_Z_M) ring = gaiaAllocRingXYZM (points); else ring = gaiaAllocRing (points); points = 0; for (iv = start; iv < end; iv++) { x = gaiaImport64 (shp->BufShp + base + (iv * 16), GAIA_LITTLE_ENDIAN, shp->endian_arch); y = gaiaImport64 (shp->BufShp + base + (iv * 16) + 8, GAIA_LITTLE_ENDIAN, shp->endian_arch); if (shp->EffectiveDims == GAIA_XY_Z) { gaiaSetPointXYZ (ring->Coords, points, x, y, 0.0); } else if (shp->EffectiveDims == GAIA_XY_M) { gaiaSetPointXYM (ring->Coords, points, x, y, 0.0); } else if (shp->EffectiveDims == GAIA_XY_Z_M) { gaiaSetPointXYZM (ring->Coords, points, x, y, 0.0, 0.0); } else { gaiaSetPoint (ring->Coords, points, x, y); } start++; points++; } shp_add_ring (&ringsColl, ring); } shp_arrange_rings (&ringsColl); /* allocating the final geometry */ if (shp->EffectiveDims == GAIA_XY_Z) geom = gaiaAllocGeomCollXYZ (); else if (shp->EffectiveDims == GAIA_XY_M) geom = gaiaAllocGeomCollXYM (); else if (shp->EffectiveDims == GAIA_XY_Z_M) geom = gaiaAllocGeomCollXYZM (); else geom = gaiaAllocGeomColl (); if (shp->EffectiveType == GAIA_POLYGON) geom->DeclaredType = GAIA_POLYGON; else geom->DeclaredType = GAIA_MULTIPOLYGON; geom->Srid = srid; shp_build_area (&ringsColl, geom); } if (shape == GAIA_SHP_POLYGONZ) { /* shape polygon Z */ rd = fread (shp->BufShp, sizeof (unsigned char), 32, shp->flShp); if (rd != 32) goto error; rd = fread (shp->BufShp, sizeof (unsigned char), (sz * 2) - 36, shp->flShp); if (rd != (sz * 2) - 36) goto error; n = gaiaImport32 (shp->BufShp, GAIA_LITTLE_ENDIAN, shp->endian_arch); n1 = gaiaImport32 (shp->BufShp + 4, GAIA_LITTLE_ENDIAN, shp->endian_arch); hasM = 0; max_size = 38 + (2 * n) + (n1 * 16); /* size [in 16 bits words !!!] ZM */ min_size = 30 + (2 * n) + (n1 * 12); /* size [in 16 bits words !!!] Z-only */ if (sz < min_size) goto error; if (sz == max_size) hasM = 1; base = 8 + (n * 4); baseZ = base + (n1 * 16) + 16; baseM = baseZ + (n1 * 8) + 16; start = 0; for (ind = 0; ind < n; ind++) { if (ind < (n - 1)) end = gaiaImport32 (shp->BufShp + 8 + ((ind + 1) * 4), GAIA_LITTLE_ENDIAN, shp->endian_arch); else end = n1; points = end - start; if (shp->EffectiveDims == GAIA_XY_Z) ring = gaiaAllocRingXYZ (points); else if (shp->EffectiveDims == GAIA_XY_M) ring = gaiaAllocRingXYM (points); else if (shp->EffectiveDims == GAIA_XY_Z_M) ring = gaiaAllocRingXYZM (points); else ring = gaiaAllocRing (points); points = 0; for (iv = start; iv < end; iv++) { x = gaiaImport64 (shp->BufShp + base + (iv * 16), GAIA_LITTLE_ENDIAN, shp->endian_arch); y = gaiaImport64 (shp->BufShp + base + (iv * 16) + 8, GAIA_LITTLE_ENDIAN, shp->endian_arch); z = gaiaImport64 (shp->BufShp + baseZ + (iv * 8), GAIA_LITTLE_ENDIAN, shp->endian_arch); if (hasM) m = gaiaImport64 (shp->BufShp + baseM + (iv * 8), GAIA_LITTLE_ENDIAN, shp->endian_arch); else m = 0.0; if (m < SHAPEFILE_NO_DATA) m = 0.0; if (shp->EffectiveDims == GAIA_XY_Z) { gaiaSetPointXYZ (ring->Coords, points, x, y, z); } else if (shp->EffectiveDims == GAIA_XY_M) { gaiaSetPointXYM (ring->Coords, points, x, y, m); } else if (shp->EffectiveDims == GAIA_XY_Z_M) { gaiaSetPointXYZM (ring->Coords, points, x, y, z, m); } else { gaiaSetPoint (ring->Coords, points, x, y); } start++; points++; } shp_add_ring (&ringsColl, ring); } shp_arrange_rings (&ringsColl); /* allocating the final geometry */ if (shp->EffectiveDims == GAIA_XY_Z) geom = gaiaAllocGeomCollXYZ (); else if (shp->EffectiveDims == GAIA_XY_M) geom = gaiaAllocGeomCollXYM (); else if (shp->EffectiveDims == GAIA_XY_Z_M) geom = gaiaAllocGeomCollXYZM (); else geom = gaiaAllocGeomColl (); if (shp->EffectiveType == GAIA_POLYGON) geom->DeclaredType = GAIA_POLYGON; else geom->DeclaredType = GAIA_MULTIPOLYGON; geom->Srid = srid; shp_build_area (&ringsColl, geom); } if (shape == GAIA_SHP_POLYGONM) { /* shape polygon M */ rd = fread (shp->BufShp, sizeof (unsigned char), 32, shp->flShp); if (rd != 32) goto error; rd = fread (shp->BufShp, sizeof (unsigned char), (sz * 2) - 36, shp->flShp); if (rd != (sz * 2) - 36) goto error; n = gaiaImport32 (shp->BufShp, GAIA_LITTLE_ENDIAN, shp->endian_arch); n1 = gaiaImport32 (shp->BufShp + 4, GAIA_LITTLE_ENDIAN, shp->endian_arch); hasM = 0; max_size = 30 + (2 * n) + (n1 * 12); /* size [in 16 bits words !!!] M */ min_size = 22 + (2 * n) + (n1 * 8); /* size [in 16 bits words !!!] no-M */ if (sz < min_size) goto error; if (sz == max_size) hasM = 1; base = 8 + (n * 4); baseM = base + (n1 * 16) + 16; start = 0; for (ind = 0; ind < n; ind++) { if (ind < (n - 1)) end = gaiaImport32 (shp->BufShp + 8 + ((ind + 1) * 4), GAIA_LITTLE_ENDIAN, shp->endian_arch); else end = n1; points = end - start; if (shp->EffectiveDims == GAIA_XY_Z) ring = gaiaAllocRingXYZ (points); else if (shp->EffectiveDims == GAIA_XY_M) ring = gaiaAllocRingXYM (points); else if (shp->EffectiveDims == GAIA_XY_Z_M) ring = gaiaAllocRingXYZM (points); else ring = gaiaAllocRing (points); points = 0; for (iv = start; iv < end; iv++) { x = gaiaImport64 (shp->BufShp + base + (iv * 16), GAIA_LITTLE_ENDIAN, shp->endian_arch); y = gaiaImport64 (shp->BufShp + base + (iv * 16) + 8, GAIA_LITTLE_ENDIAN, shp->endian_arch); if (hasM) m = gaiaImport64 (shp->BufShp + baseM + (iv * 8), GAIA_LITTLE_ENDIAN, shp->endian_arch); m = 0.0; if (m < SHAPEFILE_NO_DATA) m = 0.0; if (shp->EffectiveDims == GAIA_XY_Z) { gaiaSetPointXYZ (ring->Coords, points, x, y, 0.0); } else if (shp->EffectiveDims == GAIA_XY_M) { gaiaSetPointXYM (ring->Coords, points, x, y, m); } else if (shp->EffectiveDims == GAIA_XY_Z_M) { gaiaSetPointXYZM (ring->Coords, points, x, y, 0.0, m); } else { gaiaSetPoint (ring->Coords, points, x, y); } start++; points++; } shp_add_ring (&ringsColl, ring); } shp_arrange_rings (&ringsColl); /* allocating the final geometry */ if (shp->EffectiveDims == GAIA_XY_Z) geom = gaiaAllocGeomCollXYZ (); else if (shp->EffectiveDims == GAIA_XY_M) geom = gaiaAllocGeomCollXYM (); else if (shp->EffectiveDims == GAIA_XY_Z_M) geom = gaiaAllocGeomCollXYZM (); else geom = gaiaAllocGeomColl (); if (shp->EffectiveType == GAIA_POLYGON) geom->DeclaredType = GAIA_POLYGON; else geom->DeclaredType = GAIA_MULTIPOLYGON; geom->Srid = srid; shp_build_area (&ringsColl, geom); } if (shape == GAIA_SHP_MULTIPOINT) { /* shape multipoint */ rd = fread (shp->BufShp, sizeof (unsigned char), 32, shp->flShp); if (rd != 32) goto error; rd = fread (shp->BufShp, sizeof (unsigned char), (sz * 2) - 36, shp->flShp); if (rd != (sz * 2) - 36) goto error; n = gaiaImport32 (shp->BufShp, GAIA_LITTLE_ENDIAN, shp->endian_arch); if (shp->EffectiveDims == GAIA_XY_Z) geom = gaiaAllocGeomCollXYZ (); else if (shp->EffectiveDims == GAIA_XY_M) geom = gaiaAllocGeomCollXYM (); else if (shp->EffectiveDims == GAIA_XY_Z_M) geom = gaiaAllocGeomCollXYZM (); else geom = gaiaAllocGeomColl (); geom->DeclaredType = GAIA_MULTIPOINT; geom->Srid = srid; for (iv = 0; iv < n; iv++) { x = gaiaImport64 (shp->BufShp + 4 + (iv * 16), GAIA_LITTLE_ENDIAN, shp->endian_arch); y = gaiaImport64 (shp->BufShp + 4 + (iv * 16) + 8, GAIA_LITTLE_ENDIAN, shp->endian_arch); if (shp->EffectiveDims == GAIA_XY_Z) gaiaAddPointToGeomCollXYZ (geom, x, y, 0.0); else if (shp->EffectiveDims == GAIA_XY_M) gaiaAddPointToGeomCollXYM (geom, x, y, 0.0); else if (shp->EffectiveDims == GAIA_XY_Z_M) gaiaAddPointToGeomCollXYZM (geom, x, y, 0.0, 0.0); else gaiaAddPointToGeomColl (geom, x, y); } } if (shape == GAIA_SHP_MULTIPOINTZ) { /* shape multipoint Z */ rd = fread (shp->BufShp, sizeof (unsigned char), 32, shp->flShp); if (rd != 32) goto error; rd = fread (shp->BufShp, sizeof (unsigned char), (sz * 2) - 36, shp->flShp); if (rd != (sz * 2) - 36) goto error; n = gaiaImport32 (shp->BufShp, GAIA_LITTLE_ENDIAN, shp->endian_arch); hasM = 0; max_size = 38 + (n * 16); /* size [in 16 bits words !!!] ZM */ min_size = 30 + (n * 12); /* size [in 16 bits words !!!] Z-only */ if (sz < min_size) goto error; if (sz == max_size) hasM = 1; baseZ = 4 + (n * 16) + 16; baseM = baseZ + (n * 8) + 16; if (shp->EffectiveDims == GAIA_XY_Z) geom = gaiaAllocGeomCollXYZ (); else if (shp->EffectiveDims == GAIA_XY_M) geom = gaiaAllocGeomCollXYM (); else if (shp->EffectiveDims == GAIA_XY_Z_M) geom = gaiaAllocGeomCollXYZM (); else geom = gaiaAllocGeomColl (); geom->DeclaredType = GAIA_MULTIPOINT; geom->Srid = srid; for (iv = 0; iv < n; iv++) { x = gaiaImport64 (shp->BufShp + 4 + (iv * 16), GAIA_LITTLE_ENDIAN, shp->endian_arch); y = gaiaImport64 (shp->BufShp + 4 + (iv * 16) + 8, GAIA_LITTLE_ENDIAN, shp->endian_arch); z = gaiaImport64 (shp->BufShp + baseZ + (iv * 8), GAIA_LITTLE_ENDIAN, shp->endian_arch); if (hasM) m = gaiaImport64 (shp->BufShp + baseM + (iv * 8), GAIA_LITTLE_ENDIAN, shp->endian_arch); else m = 0.0; if (m < SHAPEFILE_NO_DATA) m = 0.0; if (shp->EffectiveDims == GAIA_XY_Z) gaiaAddPointToGeomCollXYZ (geom, x, y, z); else if (shp->EffectiveDims == GAIA_XY_M) gaiaAddPointToGeomCollXYM (geom, x, y, m); else if (shp->EffectiveDims == GAIA_XY_Z_M) gaiaAddPointToGeomCollXYZM (geom, x, y, z, m); else gaiaAddPointToGeomColl (geom, x, y); } } if (shape == GAIA_SHP_MULTIPOINTM) { /* shape multipoint M */ rd = fread (shp->BufShp, sizeof (unsigned char), 32, shp->flShp); if (rd != 32) goto error; rd = fread (shp->BufShp, sizeof (unsigned char), (sz * 2) - 36, shp->flShp); if (rd != (sz * 2) - 36) goto error; n = gaiaImport32 (shp->BufShp, GAIA_LITTLE_ENDIAN, shp->endian_arch); hasM = 0; max_size = 30 + (n * 12); /* size [in 16 bits words !!!] M */ min_size = 22 + (n * 8); /* size [in 16 bits words !!!] no-M */ if (sz < min_size) goto error; if (sz == max_size) hasM = 1; baseM = 4 + (n * 16) + 16; if (shp->EffectiveDims == GAIA_XY_Z) geom = gaiaAllocGeomCollXYZ (); else if (shp->EffectiveDims == GAIA_XY_M) geom = gaiaAllocGeomCollXYM (); else if (shp->EffectiveDims == GAIA_XY_Z_M) geom = gaiaAllocGeomCollXYZM (); else geom = gaiaAllocGeomColl (); geom->DeclaredType = GAIA_MULTIPOINT; geom->Srid = srid; for (iv = 0; iv < n; iv++) { x = gaiaImport64 (shp->BufShp + 4 + (iv * 16), GAIA_LITTLE_ENDIAN, shp->endian_arch); y = gaiaImport64 (shp->BufShp + 4 + (iv * 16) + 8, GAIA_LITTLE_ENDIAN, shp->endian_arch); if (hasM) m = gaiaImport64 (shp->BufShp + baseM + (iv * 8), GAIA_LITTLE_ENDIAN, shp->endian_arch); else m = 0.0; if (m < SHAPEFILE_NO_DATA) m = 0.0; if (shp->EffectiveDims == GAIA_XY_Z) gaiaAddPointToGeomCollXYZ (geom, x, y, 0.0); else if (shp->EffectiveDims == GAIA_XY_M) gaiaAddPointToGeomCollXYM (geom, x, y, m); else if (shp->EffectiveDims == GAIA_XY_Z_M) gaiaAddPointToGeomCollXYZM (geom, x, y, 0.0, m); else gaiaAddPointToGeomColl (geom, x, y); } } /* setting up the current SHP ENTITY */ null_shape: gaiaResetDbfEntity (shp->Dbf); shp->Dbf->RowId = current_row; shp->Dbf->Geometry = geom; /* fetching the DBF values */ pFld = shp->Dbf->First; while (pFld) { if (!parseDbfField (shp->BufDbf, shp->IconvObj, pFld)) goto conversion_error; pFld = pFld->Next; } if (shp->LastError) free (shp->LastError); shp->LastError = NULL; shp_free_rings (&ringsColl); return 1; eof: if (shp->LastError) free (shp->LastError); shp->LastError = NULL; shp_free_rings (&ringsColl); return 0; error: if (shp->LastError) free (shp->LastError); sprintf (errMsg, "'%s' is corrupted / has invalid format", shp->Path); len = strlen (errMsg); shp->LastError = malloc (len + 1); strcpy (shp->LastError, errMsg); shp_free_rings (&ringsColl); return 0; conversion_error: if (shp->LastError) free (shp->LastError); sprintf (errMsg, "Invalid character sequence"); len = strlen (errMsg); shp->LastError = malloc (len + 1); strcpy (shp->LastError, errMsg); shp_free_rings (&ringsColl); return 0; } static void gaiaSaneClockwise (gaiaPolygonPtr polyg) { /* / when exporting POLYGONs to SHAPEFILE, we must guarantee that: / - all EXTERIOR RING must be clockwise / - all INTERIOR RING must be anti-clockwise / / this function checks for the above conditions, / and if needed inverts the rings */ int ib; int iv; int iv2; double x; double y; double z; double m; gaiaRingPtr new_ring; gaiaRingPtr ring = polyg->Exterior; gaiaClockwise (ring); if (!(ring->Clockwise)) { /* exterior ring needs inversion */ if (ring->DimensionModel == GAIA_XY_Z) new_ring = gaiaAllocRingXYZ (ring->Points); else if (ring->DimensionModel == GAIA_XY_M) new_ring = gaiaAllocRingXYM (ring->Points); else if (ring->DimensionModel == GAIA_XY_Z_M) new_ring = gaiaAllocRingXYZM (ring->Points); else new_ring = gaiaAllocRing (ring->Points); iv2 = 0; for (iv = ring->Points - 1; iv >= 0; iv--) { if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (new_ring->Coords, iv2, x, y, z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); gaiaSetPointXYM (new_ring->Coords, iv2, x, y, m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (new_ring->Coords, iv2, x, y, z, m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); gaiaSetPoint (new_ring->Coords, iv2, x, y); } iv2++; } polyg->Exterior = new_ring; gaiaFreeRing (ring); } for (ib = 0; ib < polyg->NumInteriors; ib++) { ring = polyg->Interiors + ib; gaiaClockwise (ring); if (ring->Clockwise) { /* interior ring needs inversion */ if (ring->DimensionModel == GAIA_XY_Z) new_ring = gaiaAllocRingXYZ (ring->Points); else if (ring->DimensionModel == GAIA_XY_M) new_ring = gaiaAllocRingXYM (ring->Points); else if (ring->DimensionModel == GAIA_XY_Z_M) new_ring = gaiaAllocRingXYZM (ring->Points); else new_ring = gaiaAllocRing (ring->Points); iv2 = 0; for (iv = ring->Points - 1; iv >= 0; iv--) { if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (new_ring->Coords, iv2, x, y, z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); gaiaSetPointXYM (new_ring->Coords, iv2, x, y, m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (new_ring->Coords, iv2, x, y, z, m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); gaiaSetPoint (new_ring->Coords, iv2, x, y); } iv2++; } for (iv = 0; iv < ring->Points; iv++) { if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (new_ring->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (ring->Coords, iv, x, y, z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (new_ring->Coords, iv, &x, &y, &m); gaiaSetPointXYM (ring->Coords, iv, x, y, m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (new_ring->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (ring->Coords, iv, x, y, z, m); } else { gaiaGetPoint (new_ring->Coords, iv, &x, &y); gaiaSetPoint (ring->Coords, iv, x, y); } } gaiaFreeRing (new_ring); } } } GAIAGEO_DECLARE int gaiaWriteShpEntity (gaiaShapefilePtr shp, gaiaDbfListPtr entity) { /* trying to write an entity into shapefile */ char dummy[128]; char fmt[16]; int endian_arch = shp->endian_arch; gaiaDbfFieldPtr fld; int iv; int tot_ln; int tot_v; int tot_pts; int this_size; int ix; double x; double y; double z; double m; int hasM; double minZ; double maxZ; double minM; double maxM; #if !defined(__MINGW32__) && defined(_WIN32) const char *pBuf; #else /* not WIN32 */ char *pBuf; #endif size_t len; size_t utf8len; char *pUtf8buf; char buf[512]; char utf8buf[2048]; /* writing the DBF record */ memset (shp->BufDbf, '\0', shp->DbfReclen); *(shp->BufDbf) = ' '; /* in DBF first byte of each row marks for validity or deletion */ fld = entity->First; while (fld) { /* transferring field values */ switch (fld->Type) { case 'L': if (!(fld->Value)) *(shp->BufDbf + fld->Offset) = '?'; else if (fld->Value->Type != GAIA_INT_VALUE) *(shp->BufDbf + fld->Offset + 1) = '?'; else { if (fld->Value->IntValue == 0) *(shp->BufDbf + fld->Offset + 1) = 'N'; else *(shp->BufDbf + fld->Offset + 1) = 'Y'; } break; case 'D': memset (shp->BufDbf + fld->Offset + 1, '0', 8); if (fld->Value) { if (fld->Value->Type == GAIA_TEXT_VALUE) { if (strlen (fld->Value->TxtValue) == 8) memcpy (shp->BufDbf + fld->Offset + 1, fld->Value->TxtValue, 8); } } break; case 'C': memset (shp->BufDbf + fld->Offset + 1, ' ', fld->Length); if (fld->Value) { if (fld->Value->Type == GAIA_TEXT_VALUE) { strcpy (buf, fld->Value->TxtValue); len = strlen (buf); utf8len = 2048; pBuf = buf; pUtf8buf = utf8buf; if (iconv ((iconv_t) (shp->IconvObj), &pBuf, &len, &pUtf8buf, &utf8len) == (size_t) (-1)) goto conversion_error; memcpy (buf, utf8buf, 2048 - utf8len); buf[2048 - utf8len] = '\0'; if (strlen (buf) < fld->Length) memcpy (shp->BufDbf + fld->Offset + 1, buf, strlen (buf)); else memcpy (shp->BufDbf + fld->Offset + 1, buf, fld->Length); } } break; case 'N': memset (shp->BufDbf + fld->Offset + 1, '\0', fld->Length); if (fld->Value) { if (fld->Value->Type == GAIA_INT_VALUE) { sprintf (dummy, FRMT64, fld->Value->IntValue); if (strlen (dummy) <= fld->Length) memcpy (shp->BufDbf + fld->Offset + 1, dummy, strlen (dummy)); } if (fld->Value->Type == GAIA_DOUBLE_VALUE) { sprintf (fmt, "%%1.%df", fld->Decimals); sprintf (dummy, fmt, fld->Value->DblValue); if (strlen (dummy) <= fld->Length) memcpy (shp->BufDbf + fld->Offset + 1, dummy, strlen (dummy)); } } break; }; fld = fld->Next; } if (!(entity->Geometry)) { /* exporting a NULL Shape */ gaiaExport32 (shp->BufShp, shp->ShpSize, GAIA_BIG_ENDIAN, endian_arch); /* exports current SHP file position */ gaiaExport32 (shp->BufShp + 4, 2, GAIA_BIG_ENDIAN, endian_arch); /* exports entitiy size [in 16 bits words !!!] */ fwrite (shp->BufShp, 1, 8, shp->flShx); (shp->ShxSize) += 4; /* updating current SHX file position [in 16 bits words !!!] */ gaiaExport32 (shp->BufShp, shp->DbfRecno + 1, GAIA_BIG_ENDIAN, endian_arch); /* exports entity ID */ gaiaExport32 (shp->BufShp + 4, 2, GAIA_BIG_ENDIAN, endian_arch); /* exports entity size [in 16 bits words !!!] */ gaiaExport32 (shp->BufShp + 8, GAIA_SHP_NULL, GAIA_LITTLE_ENDIAN, endian_arch); /* exports geometry type = NULL */ fwrite (shp->BufShp, 1, 12, shp->flShp); (shp->ShpSize) += 6; /* updating current SHP file position [in 16 bits words !!!] */ } else { /* updates the shapefile main MBR-BBOX */ gaiaMbrGeometry (entity->Geometry); if (entity->Geometry->MinX < shp->MinX) shp->MinX = entity->Geometry->MinX; if (entity->Geometry->MaxX > shp->MaxX) shp->MaxX = entity->Geometry->MaxX; if (entity->Geometry->MinY < shp->MinY) shp->MinY = entity->Geometry->MinY; if (entity->Geometry->MaxY > shp->MaxY) shp->MaxY = entity->Geometry->MaxY; if (shp->Shape == GAIA_SHP_POINT) { /* this one is expected to be a POINT */ gaiaPointPtr pt = entity->Geometry->FirstPoint; if (!pt) { strcpy (dummy, "a POINT is expected, but there is no POINT in geometry"); if (shp->LastError) free (shp->LastError); len = strlen (dummy); shp->LastError = malloc (len + 1); strcpy (shp->LastError, dummy); return 0; } /* inserting POINT entity into SHX file */ gaiaExport32 (shp->BufShp, shp->ShpSize, GAIA_BIG_ENDIAN, endian_arch); /* exports current SHP file position */ gaiaExport32 (shp->BufShp + 4, 10, GAIA_BIG_ENDIAN, endian_arch); /* exports entitiy size [in 16 bits words !!!] */ fwrite (shp->BufShp, 1, 8, shp->flShx); (shp->ShxSize) += 4; /* updating current SHX file position [in 16 bits words !!!] */ /* inserting POINT into SHP file */ gaiaExport32 (shp->BufShp, shp->DbfRecno + 1, GAIA_BIG_ENDIAN, endian_arch); /* exports entity ID */ gaiaExport32 (shp->BufShp + 4, 10, GAIA_BIG_ENDIAN, endian_arch); /* exports entity size [in 16 bits words !!!] */ gaiaExport32 (shp->BufShp + 8, GAIA_SHP_POINT, GAIA_LITTLE_ENDIAN, endian_arch); /* exports geometry type = POINT */ gaiaExport64 (shp->BufShp + 12, pt->X, GAIA_LITTLE_ENDIAN, endian_arch); /* exports X coordinate */ gaiaExport64 (shp->BufShp + 20, pt->Y, GAIA_LITTLE_ENDIAN, endian_arch); /* exports Y coordinate */ fwrite (shp->BufShp, 1, 28, shp->flShp); (shp->ShpSize) += 14; /* updating current SHP file position [in 16 bits words !!!] */ } if (shp->Shape == GAIA_SHP_POINTZ) { /* this one is expected to be a POINT Z */ gaiaPointPtr pt = entity->Geometry->FirstPoint; if (!pt) { strcpy (dummy, "a POINT is expected, but there is no POINT in geometry"); if (shp->LastError) free (shp->LastError); len = strlen (dummy); shp->LastError = malloc (len + 1); strcpy (shp->LastError, dummy); return 0; } /* inserting POINT Z entity into SHX file */ gaiaExport32 (shp->BufShp, shp->ShpSize, GAIA_BIG_ENDIAN, endian_arch); /* exports current SHP file position */ gaiaExport32 (shp->BufShp + 4, 18, GAIA_BIG_ENDIAN, endian_arch); /* exports entitiy size [in 16 bits words !!!] */ fwrite (shp->BufShp, 1, 8, shp->flShx); (shp->ShxSize) += 4; /* updating current SHX file position [in 16 bits words !!!] */ /* inserting POINT into SHP file */ gaiaExport32 (shp->BufShp, shp->DbfRecno + 1, GAIA_BIG_ENDIAN, endian_arch); /* exports entity ID */ gaiaExport32 (shp->BufShp + 4, 18, GAIA_BIG_ENDIAN, endian_arch); /* exports entity size [in 16 bits words !!!] */ gaiaExport32 (shp->BufShp + 8, GAIA_SHP_POINTZ, GAIA_LITTLE_ENDIAN, endian_arch); /* exports geometry type = POINT Z */ gaiaExport64 (shp->BufShp + 12, pt->X, GAIA_LITTLE_ENDIAN, endian_arch); /* exports X coordinate */ gaiaExport64 (shp->BufShp + 20, pt->Y, GAIA_LITTLE_ENDIAN, endian_arch); /* exports Y coordinate */ gaiaExport64 (shp->BufShp + 28, pt->Z, GAIA_LITTLE_ENDIAN, endian_arch); /* exports Z coordinate */ gaiaExport64 (shp->BufShp + 36, pt->M, GAIA_LITTLE_ENDIAN, endian_arch); /* exports M coordinate */ fwrite (shp->BufShp, 1, 44, shp->flShp); (shp->ShpSize) += 22; /* updating current SHP file position [in 16 bits words !!!] */ } if (shp->Shape == GAIA_SHP_POINTM) { /* this one is expected to be a POINT M */ gaiaPointPtr pt = entity->Geometry->FirstPoint; if (!pt) { strcpy (dummy, "a POINT is expected, but there is no POINT in geometry"); if (shp->LastError) free (shp->LastError); len = strlen (dummy); shp->LastError = malloc (len + 1); strcpy (shp->LastError, dummy); return 0; } /* inserting POINT entity into SHX file */ gaiaExport32 (shp->BufShp, shp->ShpSize, GAIA_BIG_ENDIAN, endian_arch); /* exports current SHP file position */ gaiaExport32 (shp->BufShp + 4, 14, GAIA_BIG_ENDIAN, endian_arch); /* exports entitiy size [in 16 bits words !!!] */ fwrite (shp->BufShp, 1, 8, shp->flShx); (shp->ShxSize) += 4; /* updating current SHX file position [in 16 bits words !!!] */ /* inserting POINT into SHP file */ gaiaExport32 (shp->BufShp, shp->DbfRecno + 1, GAIA_BIG_ENDIAN, endian_arch); /* exports entity ID */ gaiaExport32 (shp->BufShp + 4, 14, GAIA_BIG_ENDIAN, endian_arch); /* exports entity size [in 16 bits words !!!] */ gaiaExport32 (shp->BufShp + 8, GAIA_SHP_POINTM, GAIA_LITTLE_ENDIAN, endian_arch); /* exports geometry type = POINT M */ gaiaExport64 (shp->BufShp + 12, pt->X, GAIA_LITTLE_ENDIAN, endian_arch); /* exports X coordinate */ gaiaExport64 (shp->BufShp + 20, pt->Y, GAIA_LITTLE_ENDIAN, endian_arch); /* exports Y coordinate */ gaiaExport64 (shp->BufShp + 28, pt->Y, GAIA_LITTLE_ENDIAN, endian_arch); /* exports M coordinate */ fwrite (shp->BufShp, 1, 36, shp->flShp); (shp->ShpSize) += 18; /* updating current SHP file position [in 16 bits words !!!] */ } if (shp->Shape == GAIA_SHP_POLYLINE) { /* this one is expected to be a LINESTRING / MULTILINESTRING */ gaiaLinestringPtr line; tot_ln = 0; tot_v = 0; line = entity->Geometry->FirstLinestring; while (line) { /* computes # lines and total # points */ tot_v += line->Points; tot_ln++; line = line->Next; } if (!tot_ln) { strcpy (dummy, "a LINESTRING is expected, but there is no LINESTRING in geometry"); if (shp->LastError) free (shp->LastError); len = strlen (dummy); shp->LastError = malloc (len + 1); strcpy (shp->LastError, dummy); return 0; } this_size = 22 + (2 * tot_ln) + (tot_v * 8); /* size [in 16 bits words !!!] for this SHP entity */ if ((this_size * 2) + 1024 > shp->ShpBfsz) { /* current buffer is too small; we need to allocate a bigger one */ free (shp->BufShp); shp->ShpBfsz = (this_size * 2) + 1024; shp->BufShp = malloc (shp->ShpBfsz); } /* inserting LINESTRING or MULTILINESTRING in SHX file */ gaiaExport32 (shp->BufShp, shp->ShpSize, GAIA_BIG_ENDIAN, endian_arch); /* exports current SHP file position */ gaiaExport32 (shp->BufShp + 4, this_size, GAIA_BIG_ENDIAN, endian_arch); /* exports entitiy size [in 16 bits words !!!] */ fwrite (shp->BufShp, 1, 8, shp->flShx); (shp->ShxSize) += 4; /* inserting LINESTRING or MULTILINESTRING in SHP file */ gaiaExport32 (shp->BufShp, shp->DbfRecno + 1, GAIA_BIG_ENDIAN, endian_arch); /* exports entity ID */ gaiaExport32 (shp->BufShp + 4, this_size, GAIA_BIG_ENDIAN, endian_arch); /* exports entity size [in 16 bits words !!!] */ gaiaExport32 (shp->BufShp + 8, GAIA_SHP_POLYLINE, GAIA_LITTLE_ENDIAN, endian_arch); /* exports geometry type = POLYLINE */ gaiaExport64 (shp->BufShp + 12, entity->Geometry->MinX, GAIA_LITTLE_ENDIAN, endian_arch); /* exports the MBR for this geometry */ gaiaExport64 (shp->BufShp + 20, entity->Geometry->MinY, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (shp->BufShp + 28, entity->Geometry->MaxX, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (shp->BufShp + 36, entity->Geometry->MaxY, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport32 (shp->BufShp + 44, tot_ln, GAIA_LITTLE_ENDIAN, endian_arch); /* exports # lines in this polyline */ gaiaExport32 (shp->BufShp + 48, tot_v, GAIA_LITTLE_ENDIAN, endian_arch); /* exports total # points */ tot_v = 0; /* resets points counter */ ix = 52; /* sets current buffer offset */ line = entity->Geometry->FirstLinestring; while (line) { /* exports start point index for each line */ gaiaExport32 (shp->BufShp + ix, tot_v, GAIA_LITTLE_ENDIAN, endian_arch); tot_v += line->Points; ix += 4; line = line->Next; } line = entity->Geometry->FirstLinestring; while (line) { /* exports points for each line */ for (iv = 0; iv < line->Points; iv++) { /* exports a POINT [x,y] */ if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } gaiaExport64 (shp->BufShp + ix, x, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; gaiaExport64 (shp->BufShp + ix, y, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; } line = line->Next; } fwrite (shp->BufShp, 1, ix, shp->flShp); (shp->ShpSize) += (ix / 2); /* updating current SHP file position [in 16 bits words !!!] */ } if (shp->Shape == GAIA_SHP_POLYLINEZ) { /* this one is expected to be a LINESTRING / MULTILINESTRING Z */ gaiaLinestringPtr line; gaiaZRangeGeometry (entity->Geometry, &minZ, &maxZ); gaiaMRangeGeometry (entity->Geometry, &minM, &maxM); tot_ln = 0; tot_v = 0; line = entity->Geometry->FirstLinestring; while (line) { /* computes # lines and total # points */ tot_v += line->Points; tot_ln++; line = line->Next; } if (!tot_ln) { strcpy (dummy, "a LINESTRING is expected, but there is no LINESTRING in geometry"); if (shp->LastError) free (shp->LastError); len = strlen (dummy); shp->LastError = malloc (len + 1); strcpy (shp->LastError, dummy); return 0; } hasM = 0; if (shp->EffectiveDims == GAIA_XY_M || shp->EffectiveDims == GAIA_XY_Z_M) hasM = 1; if (hasM) this_size = 38 + (2 * tot_ln) + (tot_v * 16); /* size [in 16 bits words !!!] ZM */ else this_size = 30 + (2 * tot_ln) + (tot_v * 12); /* size [in 16 bits words !!!] Z-only */ if ((this_size * 2) + 1024 > shp->ShpBfsz) { /* current buffer is too small; we need to allocate a bigger one */ free (shp->BufShp); shp->ShpBfsz = (this_size * 2) + 1024; shp->BufShp = malloc (shp->ShpBfsz); } /* inserting LINESTRING or MULTILINESTRING in SHX file */ gaiaExport32 (shp->BufShp, shp->ShpSize, GAIA_BIG_ENDIAN, endian_arch); /* exports current SHP file position */ gaiaExport32 (shp->BufShp + 4, this_size, GAIA_BIG_ENDIAN, endian_arch); /* exports entitiy size [in 16 bits words !!!] */ fwrite (shp->BufShp, 1, 8, shp->flShx); (shp->ShxSize) += 4; /* inserting LINESTRING or MULTILINESTRING in SHP file */ gaiaExport32 (shp->BufShp, shp->DbfRecno + 1, GAIA_BIG_ENDIAN, endian_arch); /* exports entity ID */ gaiaExport32 (shp->BufShp + 4, this_size, GAIA_BIG_ENDIAN, endian_arch); /* exports entity size [in 16 bits words !!!] */ gaiaExport32 (shp->BufShp + 8, GAIA_SHP_POLYLINEZ, GAIA_LITTLE_ENDIAN, endian_arch); /* exports geometry type = POLYLINE Z */ gaiaExport64 (shp->BufShp + 12, entity->Geometry->MinX, GAIA_LITTLE_ENDIAN, endian_arch); /* exports the MBR for this geometry */ gaiaExport64 (shp->BufShp + 20, entity->Geometry->MinY, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (shp->BufShp + 28, entity->Geometry->MaxX, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (shp->BufShp + 36, entity->Geometry->MaxY, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport32 (shp->BufShp + 44, tot_ln, GAIA_LITTLE_ENDIAN, endian_arch); /* exports # lines in this polyline */ gaiaExport32 (shp->BufShp + 48, tot_v, GAIA_LITTLE_ENDIAN, endian_arch); /* exports total # points */ tot_v = 0; /* resets points counter */ ix = 52; /* sets current buffer offset */ line = entity->Geometry->FirstLinestring; while (line) { /* exports start point index for each line */ gaiaExport32 (shp->BufShp + ix, tot_v, GAIA_LITTLE_ENDIAN, endian_arch); tot_v += line->Points; ix += 4; line = line->Next; } line = entity->Geometry->FirstLinestring; while (line) { /* exports points for each line */ for (iv = 0; iv < line->Points; iv++) { /* exports a POINT [x,y] */ if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } gaiaExport64 (shp->BufShp + ix, x, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; gaiaExport64 (shp->BufShp + ix, y, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; } line = line->Next; } /* exporting the Z-range [min/max] */ gaiaExport64 (shp->BufShp + ix, minZ, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; gaiaExport64 (shp->BufShp + ix, maxZ, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; line = entity->Geometry->FirstLinestring; while (line) { /* exports Z-values for each line */ for (iv = 0; iv < line->Points; iv++) { /* exports Z-value */ z = 0.0; if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } gaiaExport64 (shp->BufShp + ix, z, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; } line = line->Next; } if (hasM) { /* exporting the M-range [min/max] */ gaiaExport64 (shp->BufShp + ix, minM, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; gaiaExport64 (shp->BufShp + ix, maxM, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; line = entity->Geometry->FirstLinestring; while (line) { /* exports M-values for each line */ for (iv = 0; iv < line->Points; iv++) { /* exports M-value */ m = 0.0; if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } gaiaExport64 (shp->BufShp + ix, m, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; } line = line->Next; } } fwrite (shp->BufShp, 1, ix, shp->flShp); (shp->ShpSize) += (ix / 2); /* updating current SHP file position [in 16 bits words !!!] */ } if (shp->Shape == GAIA_SHP_POLYLINEM) { /* this one is expected to be a LINESTRING / MULTILINESTRING M */ gaiaLinestringPtr line; gaiaMRangeGeometry (entity->Geometry, &minM, &maxM); tot_ln = 0; tot_v = 0; line = entity->Geometry->FirstLinestring; while (line) { /* computes # lines and total # points */ tot_v += line->Points; tot_ln++; line = line->Next; } if (!tot_ln) { strcpy (dummy, "a LINESTRING is expected, but there is no LINESTRING in geometry"); if (shp->LastError) free (shp->LastError); len = strlen (dummy); shp->LastError = malloc (len + 1); strcpy (shp->LastError, dummy); return 0; } this_size = 30 + (2 * tot_ln) + (tot_v * 12); /* size [in 16 bits words !!!] for this SHP entity */ if ((this_size * 2) + 1024 > shp->ShpBfsz) { /* current buffer is too small; we need to allocate a bigger one */ free (shp->BufShp); shp->ShpBfsz = (this_size * 2) + 1024; shp->BufShp = malloc (shp->ShpBfsz); } /* inserting LINESTRING or MULTILINESTRING in SHX file */ gaiaExport32 (shp->BufShp, shp->ShpSize, GAIA_BIG_ENDIAN, endian_arch); /* exports current SHP file position */ gaiaExport32 (shp->BufShp + 4, this_size, GAIA_BIG_ENDIAN, endian_arch); /* exports entitiy size [in 16 bits words !!!] */ fwrite (shp->BufShp, 1, 8, shp->flShx); (shp->ShxSize) += 4; /* inserting LINESTRING or MULTILINESTRING in SHP file */ gaiaExport32 (shp->BufShp, shp->DbfRecno + 1, GAIA_BIG_ENDIAN, endian_arch); /* exports entity ID */ gaiaExport32 (shp->BufShp + 4, this_size, GAIA_BIG_ENDIAN, endian_arch); /* exports entity size [in 16 bits words !!!] */ gaiaExport32 (shp->BufShp + 8, GAIA_SHP_POLYLINEM, GAIA_LITTLE_ENDIAN, endian_arch); /* exports geometry type = POLYLINE M */ gaiaExport64 (shp->BufShp + 12, entity->Geometry->MinX, GAIA_LITTLE_ENDIAN, endian_arch); /* exports the MBR for this geometry */ gaiaExport64 (shp->BufShp + 20, entity->Geometry->MinY, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (shp->BufShp + 28, entity->Geometry->MaxX, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (shp->BufShp + 36, entity->Geometry->MaxY, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport32 (shp->BufShp + 44, tot_ln, GAIA_LITTLE_ENDIAN, endian_arch); /* exports # lines in this polyline */ gaiaExport32 (shp->BufShp + 48, tot_v, GAIA_LITTLE_ENDIAN, endian_arch); /* exports total # points */ tot_v = 0; /* resets points counter */ ix = 52; /* sets current buffer offset */ line = entity->Geometry->FirstLinestring; while (line) { /* exports start point index for each line */ gaiaExport32 (shp->BufShp + ix, tot_v, GAIA_LITTLE_ENDIAN, endian_arch); tot_v += line->Points; ix += 4; line = line->Next; } line = entity->Geometry->FirstLinestring; while (line) { /* exports points for each line */ for (iv = 0; iv < line->Points; iv++) { /* exports a POINT [x,y] */ if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } gaiaExport64 (shp->BufShp + ix, x, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; gaiaExport64 (shp->BufShp + ix, y, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; } line = line->Next; } /* exporting the M-range [min/max] */ gaiaExport64 (shp->BufShp + ix, minM, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; gaiaExport64 (shp->BufShp + ix, maxM, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; line = entity->Geometry->FirstLinestring; while (line) { /* exports M-values for each line */ for (iv = 0; iv < line->Points; iv++) { /* exports M-value */ m = 0.0; if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } gaiaExport64 (shp->BufShp + ix, m, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; } line = line->Next; } fwrite (shp->BufShp, 1, ix, shp->flShp); (shp->ShpSize) += (ix / 2); /* updating current SHP file position [in 16 bits words !!!] */ } if (shp->Shape == GAIA_SHP_POLYGON) { /* this one is expected to be a POLYGON or a MULTIPOLYGON */ gaiaPolygonPtr polyg; gaiaRingPtr ring; int ib; tot_ln = 0; tot_v = 0; polyg = entity->Geometry->FirstPolygon; while (polyg) { /* computes # rings and total # points */ gaiaSaneClockwise (polyg); /* we must assure that exterior ring is clockwise, and interior rings are anti-clockwise */ ring = polyg->Exterior; /* this one is the exterior ring */ tot_v += ring->Points; tot_ln++; for (ib = 0; ib < polyg->NumInteriors; ib++) { /* that ones are the interior rings */ ring = polyg->Interiors + ib; tot_v += ring->Points; tot_ln++; } polyg = polyg->Next; } if (!tot_ln) { strcpy (dummy, "a POLYGON is expected, but there is no POLYGON in geometry"); if (shp->LastError) free (shp->LastError); len = strlen (dummy); shp->LastError = malloc (len + 1); strcpy (shp->LastError, dummy); return 0; } this_size = 22 + (2 * tot_ln) + (tot_v * 8); /* size [in 16 bits words !!!] for this SHP entity */ if ((this_size * 2) + 1024 > shp->ShpBfsz) { /* current buffer is too small; we need to allocate a bigger one */ free (shp->BufShp); shp->ShpBfsz = (this_size * 2) + 1024; shp->BufShp = malloc (shp->ShpBfsz); } /* inserting POLYGON or MULTIPOLYGON in SHX file */ gaiaExport32 (shp->BufShp, shp->ShpSize, GAIA_BIG_ENDIAN, endian_arch); /* exports current SHP file position */ gaiaExport32 (shp->BufShp + 4, this_size, GAIA_BIG_ENDIAN, endian_arch); /* exports entitiy size [in 16 bits words !!!] */ fwrite (shp->BufShp, 1, 8, shp->flShx); (shp->ShxSize) += 4; /* inserting POLYGON or MULTIPOLYGON in SHP file */ gaiaExport32 (shp->BufShp, shp->DbfRecno + 1, GAIA_BIG_ENDIAN, endian_arch); /* exports entity ID */ gaiaExport32 (shp->BufShp + 4, this_size, GAIA_BIG_ENDIAN, endian_arch); /* exports entity size [in 16 bits words !!!] */ gaiaExport32 (shp->BufShp + 8, GAIA_SHP_POLYGON, GAIA_LITTLE_ENDIAN, endian_arch); /* exports geometry type = POLYGON */ gaiaExport64 (shp->BufShp + 12, entity->Geometry->MinX, GAIA_LITTLE_ENDIAN, endian_arch); /* exports the MBR for this geometry */ gaiaExport64 (shp->BufShp + 20, entity->Geometry->MinY, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (shp->BufShp + 28, entity->Geometry->MaxX, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (shp->BufShp + 36, entity->Geometry->MaxY, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport32 (shp->BufShp + 44, tot_ln, GAIA_LITTLE_ENDIAN, endian_arch); /* exports # rings in this polygon */ gaiaExport32 (shp->BufShp + 48, tot_v, GAIA_LITTLE_ENDIAN, endian_arch); /* exports total # points */ tot_v = 0; /* resets points counter */ ix = 52; /* sets current buffer offset */ polyg = entity->Geometry->FirstPolygon; while (polyg) { /* exports start point index for each line */ ring = polyg->Exterior; /* this one is the exterior ring */ gaiaExport32 (shp->BufShp + ix, tot_v, GAIA_LITTLE_ENDIAN, endian_arch); tot_v += ring->Points; ix += 4; for (ib = 0; ib < polyg->NumInteriors; ib++) { /* that ones are the interior rings */ ring = polyg->Interiors + ib; gaiaExport32 (shp->BufShp + ix, tot_v, GAIA_LITTLE_ENDIAN, endian_arch); tot_v += ring->Points; ix += 4; } polyg = polyg->Next; } polyg = entity->Geometry->FirstPolygon; while (polyg) { /* exports points for each ring */ ring = polyg->Exterior; /* this one is the exterior ring */ for (iv = 0; iv < ring->Points; iv++) { /* exports a POINT [x,y] - exterior ring */ if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } gaiaExport64 (shp->BufShp + ix, x, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; gaiaExport64 (shp->BufShp + ix, y, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; } for (ib = 0; ib < polyg->NumInteriors; ib++) { /* that ones are the interior rings */ ring = polyg->Interiors + ib; for (iv = 0; iv < ring->Points; iv++) { /* exports a POINT [x,y] - interior ring */ if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } gaiaExport64 (shp->BufShp + ix, x, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; gaiaExport64 (shp->BufShp + ix, y, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; } } polyg = polyg->Next; } fwrite (shp->BufShp, 1, ix, shp->flShp); (shp->ShpSize) += (ix / 2); } if (shp->Shape == GAIA_SHP_POLYGONZ) { /* this one is expected to be a POLYGON or a MULTIPOLYGON Z */ gaiaPolygonPtr polyg; gaiaRingPtr ring; int ib; gaiaZRangeGeometry (entity->Geometry, &minZ, &maxZ); gaiaMRangeGeometry (entity->Geometry, &minM, &maxM); tot_ln = 0; tot_v = 0; polyg = entity->Geometry->FirstPolygon; while (polyg) { /* computes # rings and total # points */ gaiaSaneClockwise (polyg); /* we must assure that exterior ring is clockwise, and interior rings are anti-clockwise */ ring = polyg->Exterior; /* this one is the exterior ring */ tot_v += ring->Points; tot_ln++; for (ib = 0; ib < polyg->NumInteriors; ib++) { /* that ones are the interior rings */ ring = polyg->Interiors + ib; tot_v += ring->Points; tot_ln++; } polyg = polyg->Next; } if (!tot_ln) { strcpy (dummy, "a POLYGON is expected, but there is no POLYGON in geometry"); if (shp->LastError) free (shp->LastError); len = strlen (dummy); shp->LastError = malloc (len + 1); strcpy (shp->LastError, dummy); return 0; } hasM = 0; if (shp->EffectiveDims == GAIA_XY_M || shp->EffectiveDims == GAIA_XY_Z_M) hasM = 1; if (hasM) this_size = 38 + (2 * tot_ln) + (tot_v * 16); /* size [in 16 bits words !!!] ZM */ else this_size = 30 + (2 * tot_ln) + (tot_v * 12); /* size [in 16 bits words !!!] Z-only */ if ((this_size * 2) + 1024 > shp->ShpBfsz) { /* current buffer is too small; we need to allocate a bigger one */ free (shp->BufShp); shp->ShpBfsz = (this_size * 2) + 1024; shp->BufShp = malloc (shp->ShpBfsz); } /* inserting POLYGON or MULTIPOLYGON in SHX file */ gaiaExport32 (shp->BufShp, shp->ShpSize, GAIA_BIG_ENDIAN, endian_arch); /* exports current SHP file position */ gaiaExport32 (shp->BufShp + 4, this_size, GAIA_BIG_ENDIAN, endian_arch); /* exports entitiy size [in 16 bits words !!!] */ fwrite (shp->BufShp, 1, 8, shp->flShx); (shp->ShxSize) += 4; /* inserting POLYGON or MULTIPOLYGON in SHP file */ gaiaExport32 (shp->BufShp, shp->DbfRecno + 1, GAIA_BIG_ENDIAN, endian_arch); /* exports entity ID */ gaiaExport32 (shp->BufShp + 4, this_size, GAIA_BIG_ENDIAN, endian_arch); /* exports entity size [in 16 bits words !!!] */ gaiaExport32 (shp->BufShp + 8, GAIA_SHP_POLYGONZ, GAIA_LITTLE_ENDIAN, endian_arch); /* exports geometry type = POLYGON Z */ gaiaExport64 (shp->BufShp + 12, entity->Geometry->MinX, GAIA_LITTLE_ENDIAN, endian_arch); /* exports the MBR for this geometry */ gaiaExport64 (shp->BufShp + 20, entity->Geometry->MinY, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (shp->BufShp + 28, entity->Geometry->MaxX, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (shp->BufShp + 36, entity->Geometry->MaxY, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport32 (shp->BufShp + 44, tot_ln, GAIA_LITTLE_ENDIAN, endian_arch); /* exports # rings in this polygon */ gaiaExport32 (shp->BufShp + 48, tot_v, GAIA_LITTLE_ENDIAN, endian_arch); /* exports total # points */ tot_v = 0; /* resets points counter */ ix = 52; /* sets current buffer offset */ polyg = entity->Geometry->FirstPolygon; while (polyg) { /* exports start point index for each line */ ring = polyg->Exterior; /* this one is the exterior ring */ gaiaExport32 (shp->BufShp + ix, tot_v, GAIA_LITTLE_ENDIAN, endian_arch); tot_v += ring->Points; ix += 4; for (ib = 0; ib < polyg->NumInteriors; ib++) { /* that ones are the interior rings */ ring = polyg->Interiors + ib; gaiaExport32 (shp->BufShp + ix, tot_v, GAIA_LITTLE_ENDIAN, endian_arch); tot_v += ring->Points; ix += 4; } polyg = polyg->Next; } polyg = entity->Geometry->FirstPolygon; while (polyg) { /* exports points for each ring */ ring = polyg->Exterior; /* this one is the exterior ring */ for (iv = 0; iv < ring->Points; iv++) { /* exports a POINT [x,y] - exterior ring */ if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } gaiaExport64 (shp->BufShp + ix, x, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; gaiaExport64 (shp->BufShp + ix, y, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; } for (ib = 0; ib < polyg->NumInteriors; ib++) { /* that ones are the interior rings */ ring = polyg->Interiors + ib; for (iv = 0; iv < ring->Points; iv++) { /* exports a POINT [x,y] - interior ring */ if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } gaiaExport64 (shp->BufShp + ix, x, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; gaiaExport64 (shp->BufShp + ix, y, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; } } polyg = polyg->Next; } /* exporting the Z-range [min/max] */ gaiaExport64 (shp->BufShp + ix, minZ, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; gaiaExport64 (shp->BufShp + ix, maxZ, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; polyg = entity->Geometry->FirstPolygon; while (polyg) { /* exports Z-values for each ring */ ring = polyg->Exterior; /* this one is the exterior ring */ for (iv = 0; iv < ring->Points; iv++) { /* exports Z-values - exterior ring */ z = 0.0; if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } gaiaExport64 (shp->BufShp + ix, z, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; } for (ib = 0; ib < polyg->NumInteriors; ib++) { /* that ones are the interior rings */ ring = polyg->Interiors + ib; for (iv = 0; iv < ring->Points; iv++) { /* exports Z-values - interior ring */ z = 0.0; if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } gaiaExport64 (shp->BufShp + ix, z, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; } } polyg = polyg->Next; } if (hasM) { /* exporting the M-range [min/max] */ gaiaExport64 (shp->BufShp + ix, minM, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; gaiaExport64 (shp->BufShp + ix, maxM, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; polyg = entity->Geometry->FirstPolygon; while (polyg) { /* exports M-values for each ring */ ring = polyg->Exterior; /* this one is the exterior ring */ for (iv = 0; iv < ring->Points; iv++) { /* exports M-values - exterior ring */ m = 0.0; if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } gaiaExport64 (shp->BufShp + ix, m, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; } for (ib = 0; ib < polyg->NumInteriors; ib++) { /* that ones are the interior rings */ ring = polyg->Interiors + ib; for (iv = 0; iv < ring->Points; iv++) { /* exports M-values - interior ring */ m = 0.0; if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } gaiaExport64 (shp->BufShp + ix, m, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; } } polyg = polyg->Next; } } fwrite (shp->BufShp, 1, ix, shp->flShp); (shp->ShpSize) += (ix / 2); } if (shp->Shape == GAIA_SHP_POLYGONM) { /* this one is expected to be a POLYGON or a MULTIPOLYGON M */ gaiaPolygonPtr polyg; gaiaRingPtr ring; int ib; gaiaMRangeGeometry (entity->Geometry, &minM, &maxM); tot_ln = 0; tot_v = 0; polyg = entity->Geometry->FirstPolygon; while (polyg) { /* computes # rings and total # points */ gaiaSaneClockwise (polyg); /* we must assure that exterior ring is clockwise, and interior rings are anti-clockwise */ ring = polyg->Exterior; /* this one is the exterior ring */ tot_v += ring->Points; tot_ln++; for (ib = 0; ib < polyg->NumInteriors; ib++) { /* that ones are the interior rings */ ring = polyg->Interiors + ib; tot_v += ring->Points; tot_ln++; } polyg = polyg->Next; } if (!tot_ln) { strcpy (dummy, "a POLYGON is expected, but there is no POLYGON in geometry"); if (shp->LastError) free (shp->LastError); len = strlen (dummy); shp->LastError = malloc (len + 1); strcpy (shp->LastError, dummy); return 0; } this_size = 30 + (2 * tot_ln) + (tot_v * 12); /* size [in 16 bits words !!!] for this SHP entity */ if ((this_size * 2) + 1024 > shp->ShpBfsz) { /* current buffer is too small; we need to allocate a bigger one */ free (shp->BufShp); shp->ShpBfsz = (this_size * 2) + 1024; shp->BufShp = malloc (shp->ShpBfsz); } /* inserting POLYGON or MULTIPOLYGON in SHX file */ gaiaExport32 (shp->BufShp, shp->ShpSize, GAIA_BIG_ENDIAN, endian_arch); /* exports current SHP file position */ gaiaExport32 (shp->BufShp + 4, this_size, GAIA_BIG_ENDIAN, endian_arch); /* exports entitiy size [in 16 bits words !!!] */ fwrite (shp->BufShp, 1, 8, shp->flShx); (shp->ShxSize) += 4; /* inserting POLYGON or MULTIPOLYGON in SHP file */ gaiaExport32 (shp->BufShp, shp->DbfRecno + 1, GAIA_BIG_ENDIAN, endian_arch); /* exports entity ID */ gaiaExport32 (shp->BufShp + 4, this_size, GAIA_BIG_ENDIAN, endian_arch); /* exports entity size [in 16 bits words !!!] */ gaiaExport32 (shp->BufShp + 8, GAIA_SHP_POLYGONM, GAIA_LITTLE_ENDIAN, endian_arch); /* exports geometry type = POLYGON M */ gaiaExport64 (shp->BufShp + 12, entity->Geometry->MinX, GAIA_LITTLE_ENDIAN, endian_arch); /* exports the MBR for this geometry */ gaiaExport64 (shp->BufShp + 20, entity->Geometry->MinY, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (shp->BufShp + 28, entity->Geometry->MaxX, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (shp->BufShp + 36, entity->Geometry->MaxY, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport32 (shp->BufShp + 44, tot_ln, GAIA_LITTLE_ENDIAN, endian_arch); /* exports # rings in this polygon */ gaiaExport32 (shp->BufShp + 48, tot_v, GAIA_LITTLE_ENDIAN, endian_arch); /* exports total # points */ tot_v = 0; /* resets points counter */ ix = 52; /* sets current buffer offset */ polyg = entity->Geometry->FirstPolygon; while (polyg) { /* exports start point index for each line */ ring = polyg->Exterior; /* this one is the exterior ring */ gaiaExport32 (shp->BufShp + ix, tot_v, GAIA_LITTLE_ENDIAN, endian_arch); tot_v += ring->Points; ix += 4; for (ib = 0; ib < polyg->NumInteriors; ib++) { /* that ones are the interior rings */ ring = polyg->Interiors + ib; gaiaExport32 (shp->BufShp + ix, tot_v, GAIA_LITTLE_ENDIAN, endian_arch); tot_v += ring->Points; ix += 4; } polyg = polyg->Next; } polyg = entity->Geometry->FirstPolygon; while (polyg) { /* exports points for each ring */ ring = polyg->Exterior; /* this one is the exterior ring */ for (iv = 0; iv < ring->Points; iv++) { /* exports a POINT [x,y] - exterior ring */ if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } gaiaExport64 (shp->BufShp + ix, x, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; gaiaExport64 (shp->BufShp + ix, y, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; } for (ib = 0; ib < polyg->NumInteriors; ib++) { /* that ones are the interior rings */ ring = polyg->Interiors + ib; for (iv = 0; iv < ring->Points; iv++) { /* exports a POINT [x,y] - interior ring */ if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } gaiaExport64 (shp->BufShp + ix, x, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; gaiaExport64 (shp->BufShp + ix, y, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; } } polyg = polyg->Next; } /* exporting the M-range [min/max] */ gaiaExport64 (shp->BufShp + ix, minM, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; gaiaExport64 (shp->BufShp + ix, maxM, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; polyg = entity->Geometry->FirstPolygon; while (polyg) { /* exports M-values for each ring */ ring = polyg->Exterior; /* this one is the exterior ring */ for (iv = 0; iv < ring->Points; iv++) { /* exports M-values - exterior ring */ m = 0.0; if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } gaiaExport64 (shp->BufShp + ix, m, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; } for (ib = 0; ib < polyg->NumInteriors; ib++) { /* that ones are the interior rings */ ring = polyg->Interiors + ib; for (iv = 0; iv < ring->Points; iv++) { /* exports M-values - interior ring */ m = 0.0; if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } gaiaExport64 (shp->BufShp + ix, m, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; } } polyg = polyg->Next; } fwrite (shp->BufShp, 1, ix, shp->flShp); (shp->ShpSize) += (ix / 2); } if (shp->Shape == GAIA_SHP_MULTIPOINT) { /* this one is expected to be a MULTIPOINT */ gaiaPointPtr pt; tot_pts = 0; pt = entity->Geometry->FirstPoint; while (pt) { /* computes # points */ tot_pts++; pt = pt->Next; } if (!tot_pts) { strcpy (dummy, "a MULTIPOINT is expected, but there is no POINT/MULTIPOINT in geometry"); if (shp->LastError) free (shp->LastError); len = strlen (dummy); shp->LastError = malloc (len + 1); strcpy (shp->LastError, dummy); return 0; } this_size = 20 + (tot_pts * 8); /* size [in 16 bits words !!!] for this SHP entity */ if ((this_size * 2) + 1024 > shp->ShpBfsz) { /* current buffer is too small; we need to allocate a bigger one */ free (shp->BufShp); shp->ShpBfsz = (this_size * 2) + 1024; shp->BufShp = malloc (shp->ShpBfsz); } /* inserting MULTIPOINT in SHX file */ gaiaExport32 (shp->BufShp, shp->ShpSize, GAIA_BIG_ENDIAN, endian_arch); /* exports current SHP file position */ gaiaExport32 (shp->BufShp + 4, this_size, GAIA_BIG_ENDIAN, endian_arch); /* exports entitiy size [in 16 bits words !!!] */ fwrite (shp->BufShp, 1, 8, shp->flShx); (shp->ShxSize) += 4; /* inserting MULTIPOINT in SHP file */ gaiaExport32 (shp->BufShp, shp->DbfRecno + 1, GAIA_BIG_ENDIAN, endian_arch); /* exports entity ID */ gaiaExport32 (shp->BufShp + 4, this_size, GAIA_BIG_ENDIAN, endian_arch); /* exports entity size [in 16 bits words !!!] */ gaiaExport32 (shp->BufShp + 8, GAIA_SHP_MULTIPOINT, GAIA_LITTLE_ENDIAN, endian_arch); /* exports geometry type = MULTIPOINT */ gaiaExport64 (shp->BufShp + 12, entity->Geometry->MinX, GAIA_LITTLE_ENDIAN, endian_arch); /* exports the MBR for this geometry */ gaiaExport64 (shp->BufShp + 20, entity->Geometry->MinY, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (shp->BufShp + 28, entity->Geometry->MaxX, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (shp->BufShp + 36, entity->Geometry->MaxY, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport32 (shp->BufShp + 44, tot_pts, GAIA_LITTLE_ENDIAN, endian_arch); /* exports total # points */ ix = 48; /* sets current buffer offset */ pt = entity->Geometry->FirstPoint; while (pt) { /* exports each point */ gaiaExport64 (shp->BufShp + ix, pt->X, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; gaiaExport64 (shp->BufShp + ix, pt->Y, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; pt = pt->Next; } fwrite (shp->BufShp, 1, ix, shp->flShp); (shp->ShpSize) += (ix / 2); /* updating current SHP file position [in 16 bits words !!!] */ } if (shp->Shape == GAIA_SHP_MULTIPOINTZ) { /* this one is expected to be a MULTIPOINT Z */ gaiaPointPtr pt; gaiaZRangeGeometry (entity->Geometry, &minZ, &maxZ); gaiaMRangeGeometry (entity->Geometry, &minM, &maxM); tot_pts = 0; pt = entity->Geometry->FirstPoint; while (pt) { /* computes # points */ tot_pts++; pt = pt->Next; } if (!tot_pts) { strcpy (dummy, "a MULTIPOINT is expected, but there is no POINT/MULTIPOINT in geometry"); if (shp->LastError) free (shp->LastError); len = strlen (dummy); shp->LastError = malloc (len + 1); strcpy (shp->LastError, dummy); return 0; } hasM = 0; if (shp->EffectiveDims == GAIA_XY_M || shp->EffectiveDims == GAIA_XY_Z_M) hasM = 1; if (hasM) this_size = 36 + (tot_pts * 16); /* size [in 16 bits words !!!] ZM */ else this_size = 28 + (tot_pts * 12); /* size [in 16 bits words !!!] Z-only */ if ((this_size * 2) + 1024 > shp->ShpBfsz) { /* current buffer is too small; we need to allocate a bigger one */ free (shp->BufShp); shp->ShpBfsz = (this_size * 2) + 1024; shp->BufShp = malloc (shp->ShpBfsz); } /* inserting MULTIPOINT in SHX file */ gaiaExport32 (shp->BufShp, shp->ShpSize, GAIA_BIG_ENDIAN, endian_arch); /* exports current SHP file position */ gaiaExport32 (shp->BufShp + 4, this_size, GAIA_BIG_ENDIAN, endian_arch); /* exports entitiy size [in 16 bits words !!!] */ fwrite (shp->BufShp, 1, 8, shp->flShx); (shp->ShxSize) += 4; /* inserting MULTIPOINT in SHP file */ gaiaExport32 (shp->BufShp, shp->DbfRecno + 1, GAIA_BIG_ENDIAN, endian_arch); /* exports entity ID */ gaiaExport32 (shp->BufShp + 4, this_size, GAIA_BIG_ENDIAN, endian_arch); /* exports entity size [in 16 bits words !!!] */ gaiaExport32 (shp->BufShp + 8, GAIA_SHP_MULTIPOINTZ, GAIA_LITTLE_ENDIAN, endian_arch); /* exports geometry type = MULTIPOINT Z */ gaiaExport64 (shp->BufShp + 12, entity->Geometry->MinX, GAIA_LITTLE_ENDIAN, endian_arch); /* exports the MBR for this geometry */ gaiaExport64 (shp->BufShp + 20, entity->Geometry->MinY, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (shp->BufShp + 28, entity->Geometry->MaxX, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (shp->BufShp + 36, entity->Geometry->MaxY, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport32 (shp->BufShp + 44, tot_pts, GAIA_LITTLE_ENDIAN, endian_arch); /* exports total # points */ ix = 48; /* sets current buffer offset */ pt = entity->Geometry->FirstPoint; while (pt) { /* exports each point */ gaiaExport64 (shp->BufShp + ix, pt->X, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; gaiaExport64 (shp->BufShp + ix, pt->Y, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; pt = pt->Next; } /* exporting the Z-range [min/max] */ gaiaExport64 (shp->BufShp + ix, minZ, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; gaiaExport64 (shp->BufShp + ix, maxZ, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; pt = entity->Geometry->FirstPoint; while (pt) { /* exports Z-values */ gaiaExport64 (shp->BufShp + ix, pt->Z, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; pt = pt->Next; } if (hasM) { /* exporting the M-range [min/max] */ gaiaExport64 (shp->BufShp + ix, minM, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; gaiaExport64 (shp->BufShp + ix, maxM, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; pt = entity->Geometry->FirstPoint; while (pt) { /* exports M-values */ gaiaExport64 (shp->BufShp + ix, pt->M, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; pt = pt->Next; } } fwrite (shp->BufShp, 1, ix, shp->flShp); (shp->ShpSize) += (ix / 2); /* updating current SHP file position [in 16 bits words !!!] */ } if (shp->Shape == GAIA_SHP_MULTIPOINTM) { /* this one is expected to be a MULTIPOINT M */ gaiaPointPtr pt; gaiaMRangeGeometry (entity->Geometry, &minM, &maxM); tot_pts = 0; pt = entity->Geometry->FirstPoint; while (pt) { /* computes # points */ tot_pts++; pt = pt->Next; } if (!tot_pts) { strcpy (dummy, "a MULTIPOINT is expected, but there is no POINT/MULTIPOINT in geometry"); if (shp->LastError) free (shp->LastError); len = strlen (dummy); shp->LastError = malloc (len + 1); strcpy (shp->LastError, dummy); return 0; } this_size = 28 + (tot_pts * 12); /* size [in 16 bits words !!!] for this SHP entity */ if ((this_size * 2) + 1024 > shp->ShpBfsz) { /* current buffer is too small; we need to allocate a bigger one */ free (shp->BufShp); shp->ShpBfsz = (this_size * 2) + 1024; shp->BufShp = malloc (shp->ShpBfsz); } /* inserting MULTIPOINT in SHX file */ gaiaExport32 (shp->BufShp, shp->ShpSize, GAIA_BIG_ENDIAN, endian_arch); /* exports current SHP file position */ gaiaExport32 (shp->BufShp + 4, this_size, GAIA_BIG_ENDIAN, endian_arch); /* exports entitiy size [in 16 bits words !!!] */ fwrite (shp->BufShp, 1, 8, shp->flShx); (shp->ShxSize) += 4; /* inserting MULTIPOINT in SHP file */ gaiaExport32 (shp->BufShp, shp->DbfRecno + 1, GAIA_BIG_ENDIAN, endian_arch); /* exports entity ID */ gaiaExport32 (shp->BufShp + 4, this_size, GAIA_BIG_ENDIAN, endian_arch); /* exports entity size [in 16 bits words !!!] */ gaiaExport32 (shp->BufShp + 8, GAIA_SHP_MULTIPOINTM, GAIA_LITTLE_ENDIAN, endian_arch); /* exports geometry type = MULTIPOINT M */ gaiaExport64 (shp->BufShp + 12, entity->Geometry->MinX, GAIA_LITTLE_ENDIAN, endian_arch); /* exports the MBR for this geometry */ gaiaExport64 (shp->BufShp + 20, entity->Geometry->MinY, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (shp->BufShp + 28, entity->Geometry->MaxX, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (shp->BufShp + 36, entity->Geometry->MaxY, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport32 (shp->BufShp + 44, tot_pts, GAIA_LITTLE_ENDIAN, endian_arch); /* exports total # points */ ix = 48; /* sets current buffer offset */ pt = entity->Geometry->FirstPoint; while (pt) { /* exports each point */ gaiaExport64 (shp->BufShp + ix, pt->X, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; gaiaExport64 (shp->BufShp + ix, pt->Y, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; pt = pt->Next; } /* exporting the M-range [min/max] */ gaiaExport64 (shp->BufShp + ix, minM, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; gaiaExport64 (shp->BufShp + ix, maxM, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; pt = entity->Geometry->FirstPoint; while (pt) { /* exports M-values */ gaiaExport64 (shp->BufShp + ix, pt->M, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; pt = pt->Next; } fwrite (shp->BufShp, 1, ix, shp->flShp); (shp->ShpSize) += (ix / 2); /* updating current SHP file position [in 16 bits words !!!] */ } } /* inserting entity in DBF file */ fwrite (shp->BufDbf, 1, shp->DbfReclen, shp->flDbf); (shp->DbfRecno)++; return 1; conversion_error: if (shp->LastError) free (shp->LastError); sprintf (dummy, "Invalid character sequence"); len = strlen (dummy); shp->LastError = malloc (len + 1); strcpy (shp->LastError, dummy); return 0; } GAIAGEO_DECLARE void gaiaFlushShpHeaders (gaiaShapefilePtr shp) { /* updates the various file headers */ FILE *fl_shp = shp->flShp; FILE *fl_shx = shp->flShx; FILE *fl_dbf = shp->flDbf; int shp_size = shp->ShpSize; int shx_size = shp->ShxSize; int dbf_size = shp->DbfSize; int dbf_reclen = shp->DbfReclen; int dbf_recno = shp->DbfRecno; int endian_arch = shp->endian_arch; double minx = shp->MinX; double miny = shp->MinY; double maxx = shp->MaxX; double maxy = shp->MaxY; unsigned char *buf_shp = shp->BufShp; /* writing the SHP file header */ fseek (fl_shp, 0, SEEK_SET); /* repositioning at SHP file start */ gaiaExport32 (buf_shp, 9994, GAIA_BIG_ENDIAN, endian_arch); /* SHP magic number */ gaiaExport32 (buf_shp + 4, 0, GAIA_BIG_ENDIAN, endian_arch); gaiaExport32 (buf_shp + 8, 0, GAIA_BIG_ENDIAN, endian_arch); gaiaExport32 (buf_shp + 12, 0, GAIA_BIG_ENDIAN, endian_arch); gaiaExport32 (buf_shp + 16, 0, GAIA_BIG_ENDIAN, endian_arch); gaiaExport32 (buf_shp + 20, 0, GAIA_BIG_ENDIAN, endian_arch); gaiaExport32 (buf_shp + 24, shp_size, GAIA_BIG_ENDIAN, endian_arch); /* SHP file size - measured in 16 bits words !!! */ gaiaExport32 (buf_shp + 28, 1000, GAIA_LITTLE_ENDIAN, endian_arch); /* version */ gaiaExport32 (buf_shp + 32, shp->Shape, GAIA_LITTLE_ENDIAN, endian_arch); /* ESRI shape */ gaiaExport64 (buf_shp + 36, minx, GAIA_LITTLE_ENDIAN, endian_arch); /* the MBR/BBOX for the whole shapefile */ gaiaExport64 (buf_shp + 44, miny, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (buf_shp + 52, maxx, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (buf_shp + 60, maxy, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (buf_shp + 68, 0.0, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (buf_shp + 76, 0.0, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (buf_shp + 84, 0.0, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (buf_shp + 92, 0.0, GAIA_LITTLE_ENDIAN, endian_arch); fwrite (buf_shp, 1, 100, fl_shp); /* writing the SHX file header */ fseek (fl_shx, 0, SEEK_SET); /* repositioning at SHX file start */ gaiaExport32 (buf_shp, 9994, GAIA_BIG_ENDIAN, endian_arch); /* SHP magic number */ gaiaExport32 (buf_shp + 4, 0, GAIA_BIG_ENDIAN, endian_arch); gaiaExport32 (buf_shp + 8, 0, GAIA_BIG_ENDIAN, endian_arch); gaiaExport32 (buf_shp + 12, 0, GAIA_BIG_ENDIAN, endian_arch); gaiaExport32 (buf_shp + 16, 0, GAIA_BIG_ENDIAN, endian_arch); gaiaExport32 (buf_shp + 20, 0, GAIA_BIG_ENDIAN, endian_arch); gaiaExport32 (buf_shp + 24, shx_size, GAIA_BIG_ENDIAN, endian_arch); /* SHXfile size - measured in 16 bits words !!! */ gaiaExport32 (buf_shp + 28, 1000, GAIA_LITTLE_ENDIAN, endian_arch); /* version */ gaiaExport32 (buf_shp + 32, shp->Shape, GAIA_LITTLE_ENDIAN, endian_arch); /* ESRI shape */ gaiaExport64 (buf_shp + 36, minx, GAIA_LITTLE_ENDIAN, endian_arch); /* the MBR for the whole shapefile */ gaiaExport64 (buf_shp + 44, miny, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (buf_shp + 52, maxx, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (buf_shp + 60, maxy, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (buf_shp + 68, 0.0, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (buf_shp + 76, 0.0, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (buf_shp + 84, 0.0, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (buf_shp + 92, 0.0, GAIA_LITTLE_ENDIAN, endian_arch); fwrite (buf_shp, 1, 100, fl_shx); /* writing the DBF file header */ *buf_shp = 0x1a; /* DBF - this is theEOF marker */ fwrite (buf_shp, 1, 1, fl_dbf); fseek (fl_dbf, 0, SEEK_SET); /* repositioning at DBF file start */ memset (buf_shp, '\0', 32); *buf_shp = 0x03; /* DBF magic number */ *(buf_shp + 1) = 1; /* this is supposed to be the last update date [Year, Month, Day], but we ignore it at all */ *(buf_shp + 2) = 1; *(buf_shp + 3) = 1; gaiaExport32 (buf_shp + 4, dbf_recno, GAIA_LITTLE_ENDIAN, endian_arch); /* exports # records in this DBF */ gaiaExport16 (buf_shp + 8, (short) dbf_size, GAIA_LITTLE_ENDIAN, endian_arch); /* exports the file header size */ gaiaExport16 (buf_shp + 10, (short) dbf_reclen, GAIA_LITTLE_ENDIAN, endian_arch); /* exports the record length */ fwrite (buf_shp, 1, 32, fl_dbf); } GAIAGEO_DECLARE void gaiaShpAnalyze (gaiaShapefilePtr shp) { /* analyzing the SHP content, in order to detect if there are LINESTRINGS or MULTILINESTRINGS / the same check is needed in order to detect if there are POLYGONS or MULTIPOLYGONS */ unsigned char buf[512]; int rd; int skpos; int offset; int off_shp; int sz; int shape; int points; int n; int n1; int base; int start; int end; int iv; int ind; double x; double y; int polygons; int ZM_size; int multi = 0; int hasM = 0; int current_row = 0; gaiaRingPtr ring = NULL; while (1) { /* positioning and reading the SHX file */ offset = 100 + (current_row * 8); /* 100 bytes for the header + current row displacement; each SHX row = 8 bytes */ skpos = fseek (shp->flShx, offset, SEEK_SET); if (skpos != 0) goto exit; rd = fread (buf, sizeof (unsigned char), 8, shp->flShx); if (rd != 8) goto exit; off_shp = gaiaImport32 (buf, GAIA_BIG_ENDIAN, shp->endian_arch); /* positioning and reading corresponding SHP entity - geometry */ offset = off_shp * 2; skpos = fseek (shp->flShp, offset, SEEK_SET); if (skpos != 0) goto exit; rd = fread (buf, sizeof (unsigned char), 12, shp->flShp); if (rd != 12) goto exit; sz = gaiaImport32 (buf + 4, GAIA_BIG_ENDIAN, shp->endian_arch); shape = gaiaImport32 (buf + 8, GAIA_LITTLE_ENDIAN, shp->endian_arch); if ((sz * 2) > shp->ShpBfsz) { /* current buffer is too small; we need to allocate a bigger buffer */ free (shp->BufShp); shp->ShpBfsz = sz * 2; shp->BufShp = malloc (sizeof (unsigned char) * shp->ShpBfsz); } if (shape == GAIA_SHP_POLYLINE || shape == GAIA_SHP_POLYLINEZ || shape == GAIA_SHP_POLYLINEM) { /* shape polyline */ rd = fread (shp->BufShp, sizeof (unsigned char), 32, shp->flShp); if (rd != 32) goto exit; rd = fread (shp->BufShp, sizeof (unsigned char), (sz * 2) - 36, shp->flShp); if (rd != (sz * 2) - 36) goto exit; n = gaiaImport32 (shp->BufShp, GAIA_LITTLE_ENDIAN, shp->endian_arch); n1 = gaiaImport32 (shp->BufShp + 4, GAIA_LITTLE_ENDIAN, shp->endian_arch); if (n > 1) multi++; if (shape == GAIA_SHP_POLYLINEZ) { ZM_size = 38 + (2 * n) + (n1 * 16); /* size [in 16 bits words !!!] ZM */ if (sz == ZM_size) hasM = 1; } } if (shape == GAIA_SHP_POLYGON || shape == GAIA_SHP_POLYGONZ || shape == GAIA_SHP_POLYGONM) { /* shape polygon */ struct shp_ring_item *pExt; struct shp_ring_collection ringsColl; /* initializing the RING collection */ ringsColl.First = NULL; ringsColl.Last = NULL; rd = fread (shp->BufShp, sizeof (unsigned char), 32, shp->flShp); if (rd != 32) goto exit; rd = fread (shp->BufShp, sizeof (unsigned char), (sz * 2) - 36, shp->flShp); if (rd != (sz * 2) - 36) goto exit; n = gaiaImport32 (shp->BufShp, GAIA_LITTLE_ENDIAN, shp->endian_arch); n1 = gaiaImport32 (shp->BufShp + 4, GAIA_LITTLE_ENDIAN, shp->endian_arch); base = 8 + (n * 4); start = 0; for (ind = 0; ind < n; ind++) { if (ind < (n - 1)) end = gaiaImport32 (shp->BufShp + 8 + ((ind + 1) * 4), GAIA_LITTLE_ENDIAN, shp->endian_arch); else end = n1; points = end - start; ring = gaiaAllocRing (points); points = 0; for (iv = start; iv < end; iv++) { x = gaiaImport64 (shp->BufShp + base + (iv * 16), GAIA_LITTLE_ENDIAN, shp->endian_arch); y = gaiaImport64 (shp->BufShp + base + (iv * 16) + 8, GAIA_LITTLE_ENDIAN, shp->endian_arch); gaiaSetPoint (ring->Coords, points, x, y); start++; points++; } shp_add_ring (&ringsColl, ring); ring = NULL; } shp_arrange_rings (&ringsColl); pExt = ringsColl.First; polygons = 0; while (pExt != NULL) { if (pExt->IsExterior) polygons++; pExt = pExt->Next; } shp_free_rings (&ringsColl); if (polygons > 1) multi++; if (shape == GAIA_SHP_POLYGONZ) { ZM_size = 38 + (2 * n) + (n1 * 16); /* size [in 16 bits words !!!] ZM */ if (sz == ZM_size) hasM = 1; } } if (shape == GAIA_SHP_MULTIPOINTZ) { /* shape multipoint Z */ rd = fread (shp->BufShp, sizeof (unsigned char), 32, shp->flShp); if (rd != 32) goto exit; rd = fread (shp->BufShp, sizeof (unsigned char), (sz * 2) - 36, shp->flShp); if (rd != (sz * 2) - 36) goto exit; n = gaiaImport32 (shp->BufShp, GAIA_LITTLE_ENDIAN, shp->endian_arch); ZM_size = 38 + (n * 16); /* size [in 16 bits words !!!] ZM */ if (sz == ZM_size) hasM = 1; } current_row++; } exit: if (ring) gaiaFreeRing (ring); if (shp->LastError) free (shp->LastError); shp->LastError = NULL; /* setting the EffectiveType, as determined by this analysis */ if (shp->Shape == GAIA_SHP_POLYLINE || shp->Shape == GAIA_SHP_POLYLINEZ || shp->Shape == GAIA_SHP_POLYLINEM) { /* SHAPE polyline */ if (multi) shp->EffectiveType = GAIA_MULTILINESTRING; else shp->EffectiveType = GAIA_LINESTRING; } if (shp->Shape == GAIA_SHP_POLYGON || shp->Shape == GAIA_SHP_POLYGONZ || shp->Shape == GAIA_SHP_POLYGONM) { /* SHAPE polygon */ if (multi) shp->EffectiveType = GAIA_MULTIPOLYGON; else shp->EffectiveType = GAIA_POLYGON; } if (shp->Shape == GAIA_SHP_POLYLINEZ || shp->Shape == GAIA_SHP_POLYGONZ || shp->Shape == GAIA_SHP_MULTIPOINTZ) { if (hasM) shp->EffectiveDims = GAIA_XY_Z_M; else shp->EffectiveDims = GAIA_XY_Z; } } GAIAGEO_DECLARE gaiaDbfPtr gaiaAllocDbf () { /* allocates and initializes the DBF object */ gaiaDbfPtr dbf = malloc (sizeof (gaiaDbf)); dbf->endian_arch = 1; dbf->Path = NULL; dbf->flDbf = NULL; dbf->Dbf = NULL; dbf->BufDbf = NULL; dbf->DbfHdsz = 0; dbf->DbfReclen = 0; dbf->DbfSize = 0; dbf->DbfRecno = 0; dbf->Valid = 0; dbf->IconvObj = NULL; dbf->LastError = NULL; return dbf; } GAIAGEO_DECLARE void gaiaFreeDbf (gaiaDbfPtr dbf) { /* frees all memory allocations related to the DBF object */ if (dbf->Path) free (dbf->Path); if (dbf->flDbf) fclose (dbf->flDbf); if (dbf->Dbf) gaiaFreeDbfList (dbf->Dbf); if (dbf->BufDbf) free (dbf->BufDbf); if (dbf->IconvObj) iconv_close ((iconv_t) dbf->IconvObj); if (dbf->LastError) free (dbf->LastError); free (dbf); } GAIAGEO_DECLARE void gaiaOpenDbfRead (gaiaDbfPtr dbf, const char *path, const char *charFrom, const char *charTo) { /* trying to open the DBF and initial checkings */ FILE *fl_dbf = NULL; int rd; unsigned char bf[1024]; int dbf_size; int dbf_reclen = 0; int off_dbf; int ind; char field_name[2048]; char *sys_err; char errMsg[1024]; iconv_t iconv_ret; char utf8buf[2048]; #if !defined(__MINGW32__) && defined(_WIN32) const char *pBuf; #else /* not WIN32 */ char *pBuf; #endif size_t len; size_t utf8len; char *pUtf8buf; int endian_arch = gaiaEndianArch (); gaiaDbfListPtr dbf_list = NULL; if (charFrom && charTo) { iconv_ret = iconv_open (charTo, charFrom); if (iconv_ret == (iconv_t) (-1)) { sprintf (errMsg, "conversion from '%s' to '%s' not available\n", charFrom, charTo); goto unsupported_conversion; } dbf->IconvObj = iconv_ret; } else { sprintf (errMsg, "a NULL charset-name was passed\n"); goto unsupported_conversion; } if (dbf->flDbf != NULL) { sprintf (errMsg, "attempting to reopen an already opened DBF\n"); goto unsupported_conversion; } fl_dbf = fopen (path, "rb"); if (!fl_dbf) { sys_err = strerror (errno); sprintf (errMsg, "unable to open '%s' for reading: %s", path, sys_err); goto no_file; } /* reading DBF file header */ rd = fread (bf, sizeof (unsigned char), 32, fl_dbf); if (rd != 32) goto error; if (*bf != 0x03) /* checks the DBF magic number */ goto error; dbf_size = gaiaImport16 (bf + 8, GAIA_LITTLE_ENDIAN, endian_arch); dbf_reclen = gaiaImport16 (bf + 10, GAIA_LITTLE_ENDIAN, endian_arch); dbf_size--; off_dbf = 0; dbf_list = gaiaAllocDbfList (); for (ind = 32; ind < dbf_size; ind += 32) { /* fetches DBF fields definitions */ rd = fread (bf, sizeof (unsigned char), 32, fl_dbf); if (rd != 32) goto error; memcpy (field_name, bf, 11); field_name[11] = '\0'; len = strlen ((char *) field_name); utf8len = 2048; pBuf = (char *) field_name; pUtf8buf = utf8buf; if (iconv ((iconv_t) (dbf->IconvObj), &pBuf, &len, &pUtf8buf, &utf8len) == (size_t) (-1)) goto conversion_error; memcpy (field_name, utf8buf, 2048 - utf8len); field_name[2048 - utf8len] = '\0'; gaiaAddDbfField (dbf_list, field_name, *(bf + 11), off_dbf, *(bf + 16), *(bf + 17)); off_dbf += *(bf + 16); } if (!gaiaIsValidDbfList (dbf_list)) { /* invalid DBF */ goto illegal_dbf; } len = strlen (path); dbf->Path = malloc (len + 1); strcpy (dbf->Path, path); dbf->flDbf = fl_dbf; dbf->Dbf = dbf_list; /* allocating DBF buffer */ dbf->BufDbf = malloc (sizeof (unsigned char) * dbf_reclen); dbf->DbfHdsz = dbf_size + 1; dbf->DbfReclen = dbf_reclen; dbf->Valid = 1; dbf->endian_arch = endian_arch; return; unsupported_conversion: /* illegal charset */ if (dbf->LastError) free (dbf->LastError); len = strlen (errMsg); dbf->LastError = malloc (len + 1); strcpy (dbf->LastError, errMsg); return; no_file: /* the DBF file can't be accessed */ if (dbf->LastError) free (dbf->LastError); len = strlen (errMsg); dbf->LastError = malloc (len + 1); strcpy (dbf->LastError, errMsg); if (fl_dbf) fclose (fl_dbf); return; error: /* the DBF is invalid or corrupted */ if (dbf->LastError) free (dbf->LastError); sprintf (errMsg, "'%s' is corrupted / has invalid format", path); len = strlen (errMsg); dbf->LastError = malloc (len + 1); strcpy (dbf->LastError, errMsg); gaiaFreeDbfList (dbf_list); fclose (fl_dbf); return; illegal_dbf: /* the DBF-file contains unsupported data types */ if (dbf->LastError) free (dbf->LastError); sprintf (errMsg, "'%s' contains unsupported data types", path); len = strlen (errMsg); dbf->LastError = malloc (len + 1); strcpy (dbf->LastError, errMsg); gaiaFreeDbfList (dbf_list); if (fl_dbf) fclose (fl_dbf); return; conversion_error: /* libiconv error */ if (dbf->LastError) free (dbf->LastError); sprintf (errMsg, "'%s' field name: invalid character sequence", path); len = strlen (errMsg); dbf->LastError = malloc (len + 1); strcpy (dbf->LastError, errMsg); gaiaFreeDbfList (dbf_list); if (fl_dbf) fclose (fl_dbf); return; } GAIAGEO_DECLARE void gaiaOpenDbfWrite (gaiaDbfPtr dbf, const char *path, const char *charFrom, const char *charTo) { /* trying to create the DBF file */ FILE *fl_dbf = NULL; unsigned char bf[1024]; unsigned char *dbf_buf = NULL; gaiaDbfFieldPtr fld; char *sys_err; char errMsg[1024]; short dbf_reclen = 0; unsigned short dbf_size = 0; iconv_t iconv_ret; char buf[2048]; char utf8buf[2048]; #if !defined(__MINGW32__) && defined(_WIN32) const char *pBuf; #else /* not WIN32 */ char *pBuf; #endif size_t len; size_t utf8len; char *pUtf8buf; int defaultId = 1; struct auxdbf_list *auxdbf = NULL; if (charFrom && charTo) { iconv_ret = iconv_open (charTo, charFrom); if (iconv_ret == (iconv_t) (-1)) { sprintf (errMsg, "conversion from '%s' to '%s' not available\n", charFrom, charTo); goto unsupported_conversion; } dbf->IconvObj = iconv_ret; } else { sprintf (errMsg, "a NULL charset-name was passed\n"); goto unsupported_conversion; } if (dbf->flDbf != NULL) { sprintf (errMsg, "attempting to reopen an already opened DBF file\n"); goto unsupported_conversion; } /* trying to open the DBF file */ fl_dbf = fopen (path, "wb"); if (!fl_dbf) { sys_err = strerror (errno); sprintf (errMsg, "unable to open '%s' for writing: %s", path, sys_err); goto no_file; } /* allocating DBF buffer */ dbf_reclen = 1; /* an extra byte is needed because in DBF rows first byte is a marker for deletion */ fld = dbf->Dbf->First; while (fld) { /* computing the DBF record length */ dbf_reclen += fld->Length; fld = fld->Next; } dbf_buf = malloc (dbf_reclen); /* writing the DBF file header */ memset (bf, '\0', 32); fwrite (bf, 1, 32, fl_dbf); dbf_size = 32; /* note: DBF counts sizes in bytes */ auxdbf = alloc_auxdbf (dbf->Dbf); fld = dbf->Dbf->First; while (fld) { /* exporting DBF Fields specifications */ memset (bf, 0, 32); if (strlen (fld->Name) > 10) { /* long name: attempting to safely truncate */ truncate_long_name (auxdbf, fld); } strcpy (buf, fld->Name); len = strlen (buf); utf8len = 2048; pBuf = buf; pUtf8buf = utf8buf; if (iconv ((iconv_t) (dbf->IconvObj), &pBuf, &len, &pUtf8buf, &utf8len) == (size_t) (-1)) sprintf (buf, "FLD#%d", defaultId++); else { memcpy (buf, utf8buf, 2048 - utf8len); buf[2048 - utf8len] = '\0'; if (strlen (buf) > 10) sprintf (buf, "FLD#%d", defaultId++); } memcpy (bf, buf, strlen (buf)); *(bf + 11) = fld->Type; *(bf + 16) = fld->Length; *(bf + 17) = fld->Decimals; fwrite (bf, 1, 32, fl_dbf); dbf_size += 32; fld = fld->Next; } free_auxdbf (auxdbf); fwrite ("\r", 1, 1, fl_dbf); /* this one is a special DBF delimiter that closes file header */ dbf_size++; dbf->Valid = 1; dbf->flDbf = fl_dbf; dbf->BufDbf = dbf_buf; dbf->DbfHdsz = dbf_size + 1; dbf->DbfReclen = dbf_reclen; dbf->DbfSize = dbf_size; dbf->DbfRecno = 0; return; unsupported_conversion: /* illegal charset */ if (dbf->LastError) free (dbf->LastError); len = strlen (errMsg); dbf->LastError = malloc (len + 1); strcpy (dbf->LastError, errMsg); return; no_file: /* the DBF file can't be created/opened */ if (dbf->LastError) free (dbf->LastError); len = strlen (errMsg); dbf->LastError = malloc (len + 1); strcpy (dbf->LastError, errMsg); if (dbf_buf) free (dbf_buf); if (fl_dbf) fclose (fl_dbf); return; } GAIAGEO_DECLARE int gaiaWriteDbfEntity (gaiaDbfPtr dbf, gaiaDbfListPtr entity) { /* trying to write an entity into some DBF file */ char dummy[128]; char fmt[16]; gaiaDbfFieldPtr fld; #if !defined(__MINGW32__) && defined(_WIN32) const char *pBuf; #else /* not WIN32 */ char *pBuf; #endif size_t len; size_t utf8len; char *pUtf8buf; char *dynbuf; char utf8buf[2048]; /* writing the DBF record */ memset (dbf->BufDbf, '\0', dbf->DbfReclen); *(dbf->BufDbf) = ' '; /* in DBF first byte of each row marks for validity or deletion */ fld = entity->First; while (fld) { /* transferring field values */ switch (fld->Type) { case 'L': if (!(fld->Value)) *(dbf->BufDbf + fld->Offset) = '?'; else if (fld->Value->Type != GAIA_INT_VALUE) *(dbf->BufDbf + fld->Offset + 1) = '?'; else { if (fld->Value->IntValue == 0) *(dbf->BufDbf + fld->Offset + 1) = 'N'; else *(dbf->BufDbf + fld->Offset + 1) = 'Y'; } break; case 'D': memset (dbf->BufDbf + fld->Offset + 1, '0', 8); if (fld->Value) { if (fld->Value->Type == GAIA_TEXT_VALUE) { if (strlen (fld->Value->TxtValue) == 8) memcpy (dbf->BufDbf + fld->Offset + 1, fld->Value->TxtValue, 8); } } break; case 'C': memset (dbf->BufDbf + fld->Offset + 1, ' ', fld->Length); if (fld->Value) { if (fld->Value->Type == GAIA_TEXT_VALUE) { len = strlen (fld->Value->TxtValue); dynbuf = malloc (len + 1); strcpy (dynbuf, fld->Value->TxtValue); if (len > 512) { dynbuf[512] = '\0'; len = strlen (dynbuf); } utf8len = 2048; pBuf = dynbuf; pUtf8buf = utf8buf; if (iconv ((iconv_t) (dbf->IconvObj), &pBuf, &len, &pUtf8buf, &utf8len) == (size_t) (-1)) { free (dynbuf); goto conversion_error; } memcpy (dynbuf, utf8buf, 2048 - utf8len); dynbuf[2048 - utf8len] = '\0'; if (strlen (dynbuf) < fld->Length) memcpy (dbf->BufDbf + fld->Offset + 1, dynbuf, strlen (dynbuf)); else memcpy (dbf->BufDbf + fld->Offset + 1, dynbuf, fld->Length); free (dynbuf); } } break; case 'N': memset (dbf->BufDbf + fld->Offset + 1, '\0', fld->Length); if (fld->Value) { if (fld->Value->Type == GAIA_INT_VALUE) { sprintf (dummy, FRMT64, fld->Value->IntValue); if (strlen (dummy) <= fld->Length) memcpy (dbf->BufDbf + fld->Offset + 1, dummy, strlen (dummy)); } if (fld->Value->Type == GAIA_DOUBLE_VALUE) { sprintf (fmt, "%%1.%df", fld->Decimals); sprintf (dummy, fmt, fld->Value->DblValue); if (strlen (dummy) <= fld->Length) memcpy (dbf->BufDbf + fld->Offset + 1, dummy, strlen (dummy)); } } break; }; fld = fld->Next; } /* inserting entity in DBF file */ fwrite (dbf->BufDbf, 1, dbf->DbfReclen, dbf->flDbf); (dbf->DbfRecno)++; return 1; conversion_error: if (dbf->LastError) free (dbf->LastError); sprintf (dummy, "Invalid character sequence"); len = strlen (dummy); dbf->LastError = malloc (len + 1); strcpy (dbf->LastError, dummy); return 0; } GAIAGEO_DECLARE void gaiaFlushDbfHeader (gaiaDbfPtr dbf) { /* updates the DBF file header */ FILE *fl_dbf = dbf->flDbf; int dbf_size = dbf->DbfSize; int dbf_reclen = dbf->DbfReclen; int dbf_recno = dbf->DbfRecno; int endian_arch = dbf->endian_arch; unsigned char bf[64]; /* writing the DBF file header */ *bf = 0x1a; /* DBF - this is theEOF marker */ fwrite (bf, 1, 1, fl_dbf); fseek (fl_dbf, 0, SEEK_SET); /* repositioning at DBF file start */ memset (bf, '\0', 32); *bf = 0x03; /* DBF magic number */ *(bf + 1) = 1; /* this is supposed to be the last update date [Year, Month, Day], but we ignore it at all */ *(bf + 2) = 1; *(bf + 3) = 1; gaiaExport32 (bf + 4, dbf_recno, GAIA_LITTLE_ENDIAN, endian_arch); /* exports # records in this DBF */ gaiaExport16 (bf + 8, (short) dbf_size, GAIA_LITTLE_ENDIAN, endian_arch); /* exports the file header size */ gaiaExport16 (bf + 10, (short) dbf_reclen, GAIA_LITTLE_ENDIAN, endian_arch); /* exports the record length */ fwrite (bf, 1, 32, fl_dbf); } GAIAGEO_DECLARE int gaiaReadDbfEntity (gaiaDbfPtr dbf, int current_row, int *deleted) { /* trying to read an entity from DBF */ int rd; int skpos; int offset; int len; char errMsg[1024]; gaiaDbfFieldPtr pFld; /* positioning and reading the DBF file */ offset = dbf->DbfHdsz + (current_row * dbf->DbfReclen); skpos = fseek (dbf->flDbf, offset, SEEK_SET); if (skpos != 0) goto eof; rd = fread (dbf->BufDbf, sizeof (unsigned char), dbf->DbfReclen, dbf->flDbf); if (rd != dbf->DbfReclen) goto eof; /* setting up the current DBF ENTITY */ gaiaResetDbfEntity (dbf->Dbf); dbf->Dbf->RowId = current_row; if (*(dbf->BufDbf) == '*') { /* deleted row */ *deleted = 1; if (dbf->LastError) free (dbf->LastError); dbf->LastError = NULL; return 1; } /* fetching the DBF values */ pFld = dbf->Dbf->First; while (pFld) { if (!parseDbfField (dbf->BufDbf, dbf->IconvObj, pFld)) goto conversion_error; pFld = pFld->Next; } if (dbf->LastError) free (dbf->LastError); dbf->LastError = NULL; *deleted = 0; return 1; eof: if (dbf->LastError) free (dbf->LastError); dbf->LastError = NULL; return 0; conversion_error: if (dbf->LastError) free (dbf->LastError); sprintf (errMsg, "Invalid character sequence"); len = strlen (errMsg); dbf->LastError = malloc (len + 1); strcpy (dbf->LastError, errMsg); return 0; } #endif /* ICONV enabled/disabled */ libspatialite-4.1.1/src/gaiageo/Gml.h0000664000175000017500000000052012163502133014332 00000000000000#define GML_NEWLINE 1 #define GML_END 2 #define GML_CLOSE 3 #define GML_OPEN 4 #define GML_KEYWORD 5 #define GML_EQ 6 #define GML_VALUE 7 #define GML_COORD 8 libspatialite-4.1.1/src/gaiageo/Ewkt.h0000664000175000017500000000156212163502133014534 00000000000000#define EWKT_NEWLINE 1 #define EWKT_POINT 2 #define EWKT_OPEN_BRACKET 3 #define EWKT_CLOSE_BRACKET 4 #define EWKT_POINT_M 5 #define EWKT_NUM 6 #define EWKT_COMMA 7 #define EWKT_LINESTRING 8 #define EWKT_LINESTRING_M 9 #define EWKT_POLYGON 10 #define EWKT_POLYGON_M 11 #define EWKT_MULTIPOINT 12 #define EWKT_MULTIPOINT_M 13 #define EWKT_MULTILINESTRING 14 #define EWKT_MULTILINESTRING_M 15 #define EWKT_MULTIPOLYGON 16 #define EWKT_MULTIPOLYGON_M 17 #define EWKT_GEOMETRYCOLLECTION 18 #define EWKT_GEOMETRYCOLLECTION_M 19 #define EWKT_GEOMETRYCOLLECTION_Z 20 #define EWKT_GEOMETRYCOLLECTION_ZM 21 libspatialite-4.1.1/src/gaiageo/gg_wkt.c0000664000175000017500000032622712163502133015107 00000000000000/* gg_wkt.c -- Gaia common support for WKT encoded geometries version 4.1, 2013 May 8 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Klaus Foerster klaus.foerster@svg.cc Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include static void gaiaOutClean (char *buffer) { /* cleans unneeded trailing zeros */ int i; for (i = strlen (buffer) - 1; i > 0; i--) { if (buffer[i] == '0') buffer[i] = '\0'; else break; } if (buffer[i] == '.') buffer[i] = '\0'; if (strcmp (buffer, "-0") == 0) { /* avoiding to return embarassing NEGATIVE ZEROes */ strcpy (buffer, "0"); } if (strcmp (buffer, "-1.#QNAN") == 0 || strcmp (buffer, "NaN") == 0 || strcmp (buffer, "1.#QNAN") == 0 || strcmp (buffer, "-1.#IND") == 0 || strcmp (buffer, "1.#IND") == 0) { /* on Windows a NaN could be represented in "odd" ways */ /* this is intended to restore a consistent behaviour */ strcpy (buffer, "nan"); } } GAIAGEO_DECLARE void gaiaOutBufferInitialize (gaiaOutBufferPtr buf) { /* initializing a dynamically growing output buffer */ buf->Buffer = NULL; buf->WriteOffset = 0; buf->BufferSize = 0; buf->Error = 0; } GAIAGEO_DECLARE void gaiaOutBufferReset (gaiaOutBufferPtr buf) { /* cleaning a dynamically growing output buffer */ if (buf->Buffer) free (buf->Buffer); buf->Buffer = NULL; buf->WriteOffset = 0; buf->BufferSize = 0; buf->Error = 0; } GAIAGEO_DECLARE void gaiaAppendToOutBuffer (gaiaOutBufferPtr buf, const char *text) { /* appending a text string */ int len = strlen (text); int free_size = buf->BufferSize - buf->WriteOffset; if ((len + 1) > free_size) { /* we must allocate a bigger buffer */ int new_size; char *new_buf; if (buf->BufferSize == 0) new_size = (len + 1) + 1024; else if (buf->BufferSize <= 4196) new_size = buf->BufferSize + (len + 1) + 4196; else if (buf->BufferSize <= 65536) new_size = buf->BufferSize + (len + 1) + 65536; else new_size = buf->BufferSize + (len + 1) + (1024 * 1024); new_buf = malloc (new_size); if (!new_buf) { buf->Error = 1; return; } memcpy (new_buf, buf->Buffer, buf->WriteOffset); if (buf->Buffer) free (buf->Buffer); buf->Buffer = new_buf; buf->BufferSize = new_size; } strcpy (buf->Buffer + buf->WriteOffset, text); buf->WriteOffset += len; } static void gaiaOutPointStrict (gaiaOutBufferPtr out_buf, gaiaPointPtr point, int precision) { /* formats a WKT POINT [Strict 2D] */ char *buf_x; char *buf_y; char *buf; buf_x = sqlite3_mprintf ("%.*f", precision, point->X); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%.*f", precision, point->Y); gaiaOutClean (buf_y); buf = sqlite3_mprintf ("%s %s", buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } static void gaiaOutPoint (gaiaOutBufferPtr out_buf, gaiaPointPtr point) { /* formats a WKT POINT */ char *buf_x; char *buf_y; char *buf; buf_x = sqlite3_mprintf ("%1.6f", point->X); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%1.6f", point->Y); gaiaOutClean (buf_y); buf = sqlite3_mprintf ("%s %s", buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } GAIAGEO_DECLARE void gaiaOutPointZ (gaiaOutBufferPtr out_buf, gaiaPointPtr point) { /* formats a WKT POINTZ */ char *buf_x; char *buf_y; char *buf_z; char *buf; buf_x = sqlite3_mprintf ("%1.6f", point->X); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%1.6f", point->Y); gaiaOutClean (buf_y); buf_z = sqlite3_mprintf ("%1.6f", point->Z); gaiaOutClean (buf_z); buf = sqlite3_mprintf ("%s %s %s", buf_x, buf_y, buf_z); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } static void gaiaOutPointM (gaiaOutBufferPtr out_buf, gaiaPointPtr point) { /* formats a WKT POINTM */ char *buf_x; char *buf_y; char *buf_m; char *buf; buf_x = sqlite3_mprintf ("%1.6f", point->X); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%1.6f", point->Y); gaiaOutClean (buf_y); buf_m = sqlite3_mprintf ("%1.6f", point->M); gaiaOutClean (buf_m); buf = sqlite3_mprintf ("%s %s %s", buf_x, buf_y, buf_m); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_m); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } static void gaiaOutPointZM (gaiaOutBufferPtr out_buf, gaiaPointPtr point) { /* formats a WKT POINTZM */ char *buf_x; char *buf_y; char *buf_z; char *buf_m; char *buf; buf_x = sqlite3_mprintf ("%1.6f", point->X); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%1.6f", point->Y); gaiaOutClean (buf_y); buf_z = sqlite3_mprintf ("%1.6f", point->Z); gaiaOutClean (buf_z); buf_m = sqlite3_mprintf ("%1.6f", point->M); gaiaOutClean (buf_m); buf = sqlite3_mprintf ("%s %s %s %s", buf_x, buf_y, buf_z, buf_m); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); sqlite3_free (buf_m); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } static void gaiaOutEwktPoint (gaiaOutBufferPtr out_buf, gaiaPointPtr point) { /* formats an EWKT POINT */ char *buf_x; char *buf_y; char *buf; buf_x = sqlite3_mprintf ("%1.15f", point->X); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%1.15f", point->Y); gaiaOutClean (buf_y); buf = sqlite3_mprintf ("%s %s", buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } GAIAGEO_DECLARE void gaiaOutEwktPointZ (gaiaOutBufferPtr out_buf, gaiaPointPtr point) { /* formats an EWKT POINTZ */ char *buf_x; char *buf_y; char *buf_z; char *buf; buf_x = sqlite3_mprintf ("%1.15f", point->X); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%1.15f", point->Y); gaiaOutClean (buf_y); buf_z = sqlite3_mprintf ("%1.15f", point->Z); gaiaOutClean (buf_z); buf = sqlite3_mprintf ("%s %s %s", buf_x, buf_y, buf_z); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } static void gaiaOutEwktPointM (gaiaOutBufferPtr out_buf, gaiaPointPtr point) { /* formats an EWKT POINTM */ char *buf_x; char *buf_y; char *buf_m; char *buf; buf_x = sqlite3_mprintf ("%1.15f", point->X); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%1.15f", point->Y); gaiaOutClean (buf_y); buf_m = sqlite3_mprintf ("%1.15f", point->M); gaiaOutClean (buf_m); buf = sqlite3_mprintf ("%s %s %s", buf_x, buf_y, buf_m); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_m); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } static void gaiaOutEwktPointZM (gaiaOutBufferPtr out_buf, gaiaPointPtr point) { /* formats an EWKT POINTZM */ char *buf_x; char *buf_y; char *buf_z; char *buf_m; char *buf; buf_x = sqlite3_mprintf ("%1.15f", point->X); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%1.15f", point->Y); gaiaOutClean (buf_y); buf_z = sqlite3_mprintf ("%1.15f", point->Z); gaiaOutClean (buf_z); buf_m = sqlite3_mprintf ("%1.15f", point->M); gaiaOutClean (buf_m); buf = sqlite3_mprintf ("%s %s %s %s", buf_x, buf_y, buf_z, buf_m); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); sqlite3_free (buf_m); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } static void gaiaOutLinestringStrict (gaiaOutBufferPtr out_buf, gaiaLinestringPtr line, int precision) { /* formats a WKT LINESTRING [Strict 2D] */ char *buf_x; char *buf_y; char *buf; double x; double y; double z; double m; int iv; for (iv = 0; iv < line->Points; iv++) { if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } buf_x = sqlite3_mprintf ("%.*f", precision, x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%.*f", precision, y); gaiaOutClean (buf_y); if (iv > 0) buf = sqlite3_mprintf (",%s %s", buf_x, buf_y); else buf = sqlite3_mprintf ("%s %s", buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } } static void gaiaOutLinestring (gaiaOutBufferPtr out_buf, gaiaLinestringPtr line) { /* formats a WKT LINESTRING */ char *buf_x; char *buf_y; char *buf; double x; double y; int iv; for (iv = 0; iv < line->Points; iv++) { gaiaGetPoint (line->Coords, iv, &x, &y); buf_x = sqlite3_mprintf ("%1.6f", x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%1.6f", y); gaiaOutClean (buf_y); if (iv > 0) buf = sqlite3_mprintf (", %s %s", buf_x, buf_y); else buf = sqlite3_mprintf ("%s %s", buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } } GAIAGEO_DECLARE void gaiaOutLinestringZ (gaiaOutBufferPtr out_buf, gaiaLinestringPtr line) { /* formats a WKT LINESTRINGZ */ char *buf_x; char *buf_y; char *buf_z; char *buf; double x; double y; double z; int iv; for (iv = 0; iv < line->Points; iv++) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); buf_x = sqlite3_mprintf ("%1.6f", x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%1.6f", y); gaiaOutClean (buf_y); buf_z = sqlite3_mprintf ("%1.6f", z); gaiaOutClean (buf_z); if (iv > 0) buf = sqlite3_mprintf (", %s %s %s", buf_x, buf_y, buf_z); else buf = sqlite3_mprintf ("%s %s %s", buf_x, buf_y, buf_z); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } } static void gaiaOutLinestringM (gaiaOutBufferPtr out_buf, gaiaLinestringPtr line) { /* formats a WKT LINESTRINGM */ char *buf_x; char *buf_y; char *buf_m; char *buf; double x; double y; double m; int iv; for (iv = 0; iv < line->Points; iv++) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); buf_x = sqlite3_mprintf ("%1.6f", x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%1.6f", y); gaiaOutClean (buf_y); buf_m = sqlite3_mprintf ("%1.6f", m); gaiaOutClean (buf_m); if (iv > 0) buf = sqlite3_mprintf (", %s %s %s", buf_x, buf_y, buf_m); else buf = sqlite3_mprintf ("%s %s %s", buf_x, buf_y, buf_m); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_m); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } } static void gaiaOutLinestringZM (gaiaOutBufferPtr out_buf, gaiaLinestringPtr line) { /* formats a WKT LINESTRINGZM */ char *buf_x; char *buf_y; char *buf_z; char *buf_m; char *buf; double x; double y; double z; double m; int iv; for (iv = 0; iv < line->Points; iv++) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); buf_x = sqlite3_mprintf ("%1.6f", x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%1.6f", y); gaiaOutClean (buf_y); buf_z = sqlite3_mprintf ("%1.6f", z); gaiaOutClean (buf_z); buf_m = sqlite3_mprintf ("%1.6f", m); gaiaOutClean (buf_m); if (iv > 0) buf = sqlite3_mprintf (", %s %s %s %s", buf_x, buf_y, buf_z, buf_m); else buf = sqlite3_mprintf ("%s %s %s %s", buf_x, buf_y, buf_z, buf_m); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); sqlite3_free (buf_m); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } } static void gaiaOutEwktLinestring (gaiaOutBufferPtr out_buf, gaiaLinestringPtr line) { /* formats an EWKT LINESTRING */ char *buf_x; char *buf_y; char *buf; double x; double y; int iv; for (iv = 0; iv < line->Points; iv++) { gaiaGetPoint (line->Coords, iv, &x, &y); buf_x = sqlite3_mprintf ("%1.15f", x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%1.15f", y); gaiaOutClean (buf_y); if (iv > 0) buf = sqlite3_mprintf (",%s %s", buf_x, buf_y); else buf = sqlite3_mprintf ("%s %s", buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } } GAIAGEO_DECLARE void gaiaOutEwktLinestringZ (gaiaOutBufferPtr out_buf, gaiaLinestringPtr line) { /* formats an EWKT LINESTRINGZ */ char *buf_x; char *buf_y; char *buf_z; char *buf; double x; double y; double z; int iv; for (iv = 0; iv < line->Points; iv++) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); buf_x = sqlite3_mprintf ("%1.15f", x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%1.15f", y); gaiaOutClean (buf_y); buf_z = sqlite3_mprintf ("%1.15f", z); gaiaOutClean (buf_z); if (iv > 0) buf = sqlite3_mprintf (",%s %s %s", buf_x, buf_y, buf_z); else buf = sqlite3_mprintf ("%s %s %s", buf_x, buf_y, buf_z); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } } static void gaiaOutEwktLinestringM (gaiaOutBufferPtr out_buf, gaiaLinestringPtr line) { /* formats an EWKT LINESTRINGM */ char *buf_x; char *buf_y; char *buf_m; char *buf; double x; double y; double m; int iv; for (iv = 0; iv < line->Points; iv++) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); buf_x = sqlite3_mprintf ("%1.15f", x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%1.15f", y); gaiaOutClean (buf_y); buf_m = sqlite3_mprintf ("%1.15f", m); gaiaOutClean (buf_m); if (iv > 0) buf = sqlite3_mprintf (",%s %s %s", buf_x, buf_y, buf_m); else buf = sqlite3_mprintf ("%s %s %s", buf_x, buf_y, buf_m); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_m); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } } static void gaiaOutEwktLinestringZM (gaiaOutBufferPtr out_buf, gaiaLinestringPtr line) { /* formats an EWKT LINESTRINGZM */ char *buf_x; char *buf_y; char *buf_z; char *buf_m; char *buf; double x; double y; double z; double m; int iv; for (iv = 0; iv < line->Points; iv++) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); buf_x = sqlite3_mprintf ("%1.15f", x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%1.15f", y); gaiaOutClean (buf_y); buf_z = sqlite3_mprintf ("%1.15f", z); gaiaOutClean (buf_z); buf_m = sqlite3_mprintf ("%1.15f", m); gaiaOutClean (buf_m); if (iv > 0) buf = sqlite3_mprintf (",%s %s %s %s", buf_x, buf_y, buf_z, buf_m); else buf = sqlite3_mprintf ("%s %s %s %s", buf_x, buf_y, buf_z, buf_m); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); sqlite3_free (buf_m); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } } static void gaiaOutPolygonStrict (gaiaOutBufferPtr out_buf, gaiaPolygonPtr polyg, int precision) { /* formats a WKT POLYGON [Strict 2D] */ char *buf_x; char *buf_y; char *buf; int ib; int iv; double x; double y; double z; double m; gaiaRingPtr ring = polyg->Exterior; for (iv = 0; iv < ring->Points; iv++) { if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } buf_x = sqlite3_mprintf ("%.*f", precision, x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%.*f", precision, y); gaiaOutClean (buf_y); if (iv == 0) buf = sqlite3_mprintf ("(%s %s", buf_x, buf_y); else if (iv == (ring->Points - 1)) buf = sqlite3_mprintf (",%s %s)", buf_x, buf_y); else buf = sqlite3_mprintf (",%s %s", buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } for (ib = 0; ib < polyg->NumInteriors; ib++) { ring = polyg->Interiors + ib; for (iv = 0; iv < ring->Points; iv++) { if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } buf_x = sqlite3_mprintf ("%.*f", precision, x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%.*f", precision, y); gaiaOutClean (buf_y); if (iv == 0) buf = sqlite3_mprintf (",(%s %s", buf_x, buf_y); else if (iv == (ring->Points - 1)) buf = sqlite3_mprintf (",%s %s)", buf_x, buf_y); else buf = sqlite3_mprintf (",%s %s", buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } } } static void gaiaOutPolygon (gaiaOutBufferPtr out_buf, gaiaPolygonPtr polyg) { /* formats a WKT POLYGON */ char *buf_x; char *buf_y; char *buf; int ib; int iv; double x; double y; gaiaRingPtr ring = polyg->Exterior; for (iv = 0; iv < ring->Points; iv++) { gaiaGetPoint (ring->Coords, iv, &x, &y); buf_x = sqlite3_mprintf ("%1.6f", x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%1.6f", y); gaiaOutClean (buf_y); if (iv == 0) buf = sqlite3_mprintf ("(%s %s", buf_x, buf_y); else if (iv == (ring->Points - 1)) buf = sqlite3_mprintf (", %s %s)", buf_x, buf_y); else buf = sqlite3_mprintf (", %s %s", buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } for (ib = 0; ib < polyg->NumInteriors; ib++) { ring = polyg->Interiors + ib; for (iv = 0; iv < ring->Points; iv++) { gaiaGetPoint (ring->Coords, iv, &x, &y); buf_x = sqlite3_mprintf ("%1.6f", x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%1.6f", y); gaiaOutClean (buf_y); if (iv == 0) buf = sqlite3_mprintf (", (%s %s", buf_x, buf_y); else if (iv == (ring->Points - 1)) buf = sqlite3_mprintf (", %s %s)", buf_x, buf_y); else buf = sqlite3_mprintf (", %s %s", buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } } } GAIAGEO_DECLARE void gaiaOutPolygonZ (gaiaOutBufferPtr out_buf, gaiaPolygonPtr polyg) { /* formats a WKT POLYGONZ */ char *buf_x; char *buf_y; char *buf_z; char *buf; int ib; int iv; double x; double y; double z; gaiaRingPtr ring = polyg->Exterior; for (iv = 0; iv < ring->Points; iv++) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); buf_x = sqlite3_mprintf ("%1.6f", x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%1.6f", y); gaiaOutClean (buf_y); buf_z = sqlite3_mprintf ("%1.6f", z); gaiaOutClean (buf_z); if (iv == 0) buf = sqlite3_mprintf ("(%s %s %s", buf_x, buf_y, buf_z); else if (iv == (ring->Points - 1)) buf = sqlite3_mprintf (", %s %s %s)", buf_x, buf_y, buf_z); else buf = sqlite3_mprintf (", %s %s %s", buf_x, buf_y, buf_z); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } for (ib = 0; ib < polyg->NumInteriors; ib++) { ring = polyg->Interiors + ib; for (iv = 0; iv < ring->Points; iv++) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); buf_x = sqlite3_mprintf ("%1.6f", x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%1.6f", y); gaiaOutClean (buf_y); buf_z = sqlite3_mprintf ("%1.6f", z); gaiaOutClean (buf_z); if (iv == 0) buf = sqlite3_mprintf (", (%s %s %s", buf_x, buf_y, buf_z); else if (iv == (ring->Points - 1)) buf = sqlite3_mprintf (", %s %s %s)", buf_x, buf_y, buf_z); else buf = sqlite3_mprintf (", %s %s %s", buf_x, buf_y, buf_z); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } } } static void gaiaOutPolygonM (gaiaOutBufferPtr out_buf, gaiaPolygonPtr polyg) { /* formats a WKT POLYGONM */ char *buf_x; char *buf_y; char *buf_m; char *buf; int ib; int iv; double x; double y; double m; gaiaRingPtr ring = polyg->Exterior; for (iv = 0; iv < ring->Points; iv++) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); buf_x = sqlite3_mprintf ("%1.6f", x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%1.6f", y); gaiaOutClean (buf_y); buf_m = sqlite3_mprintf ("%1.6f", m); gaiaOutClean (buf_m); if (iv == 0) buf = sqlite3_mprintf ("(%s %s %s", buf_x, buf_y, buf_m); else if (iv == (ring->Points - 1)) buf = sqlite3_mprintf (", %s %s %s)", buf_x, buf_y, buf_m); else buf = sqlite3_mprintf (", %s %s %s", buf_x, buf_y, buf_m); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_m); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } for (ib = 0; ib < polyg->NumInteriors; ib++) { ring = polyg->Interiors + ib; for (iv = 0; iv < ring->Points; iv++) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); buf_x = sqlite3_mprintf ("%1.6f", x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%1.6f", y); gaiaOutClean (buf_y); buf_m = sqlite3_mprintf ("%1.6f", m); gaiaOutClean (buf_m); if (iv == 0) buf = sqlite3_mprintf (", (%s %s %s", buf_x, buf_y, buf_m); else if (iv == (ring->Points - 1)) buf = sqlite3_mprintf (", %s %s %s)", buf_x, buf_y, buf_m); else buf = sqlite3_mprintf (", %s %s %s", buf_x, buf_y, buf_m); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_m); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } } } static void gaiaOutPolygonZM (gaiaOutBufferPtr out_buf, gaiaPolygonPtr polyg) { /* formats a WKT POLYGONZM */ char *buf_x; char *buf_y; char *buf_z; char *buf_m; char *buf; int ib; int iv; double x; double y; double z; double m; gaiaRingPtr ring = polyg->Exterior; for (iv = 0; iv < ring->Points; iv++) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); buf_x = sqlite3_mprintf ("%1.6f", x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%1.6f", y); gaiaOutClean (buf_y); buf_z = sqlite3_mprintf ("%1.6f", z); gaiaOutClean (buf_z); buf_m = sqlite3_mprintf ("%1.6f", m); gaiaOutClean (buf_m); if (iv == 0) buf = sqlite3_mprintf ("(%s %s %s %s", buf_x, buf_y, buf_z, buf_m); else if (iv == (ring->Points - 1)) buf = sqlite3_mprintf (", %s %s %s %s)", buf_x, buf_y, buf_z, buf_m); else buf = sqlite3_mprintf (", %s %s %s %s", buf_x, buf_y, buf_z, buf_m); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); sqlite3_free (buf_m); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } for (ib = 0; ib < polyg->NumInteriors; ib++) { ring = polyg->Interiors + ib; for (iv = 0; iv < ring->Points; iv++) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); buf_x = sqlite3_mprintf ("%1.6f", x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%1.6f", y); gaiaOutClean (buf_y); buf_z = sqlite3_mprintf ("%1.6f", z); gaiaOutClean (buf_z); buf_m = sqlite3_mprintf ("%1.6f", m); gaiaOutClean (buf_m); if (iv == 0) buf = sqlite3_mprintf (", (%s %s %s %s", buf_x, buf_y, buf_z, buf_m); else if (iv == (ring->Points - 1)) buf = sqlite3_mprintf (", %s %s %s %s)", buf_x, buf_y, buf_z, buf_m); else buf = sqlite3_mprintf (", %s %s %s %s", buf_x, buf_y, buf_z, buf_m); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); sqlite3_free (buf_m); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } } } static void gaiaOutEwktPolygon (gaiaOutBufferPtr out_buf, gaiaPolygonPtr polyg) { /* formats an EWKT POLYGON */ char *buf_x; char *buf_y; char *buf; int ib; int iv; double x; double y; gaiaRingPtr ring = polyg->Exterior; for (iv = 0; iv < ring->Points; iv++) { gaiaGetPoint (ring->Coords, iv, &x, &y); buf_x = sqlite3_mprintf ("%1.15f", x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%1.15f", y); gaiaOutClean (buf_y); if (iv == 0) buf = sqlite3_mprintf ("(%s %s", buf_x, buf_y); else if (iv == (ring->Points - 1)) buf = sqlite3_mprintf (",%s %s)", buf_x, buf_y); else buf = sqlite3_mprintf (",%s %s", buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } for (ib = 0; ib < polyg->NumInteriors; ib++) { ring = polyg->Interiors + ib; for (iv = 0; iv < ring->Points; iv++) { gaiaGetPoint (ring->Coords, iv, &x, &y); buf_x = sqlite3_mprintf ("%1.15f", x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%1.15f", y); gaiaOutClean (buf_y); if (iv == 0) buf = sqlite3_mprintf (",(%s %s", buf_x, buf_y); else if (iv == (ring->Points - 1)) buf = sqlite3_mprintf (",%s %s)", buf_x, buf_y); else buf = sqlite3_mprintf (",%s %s", buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } } } GAIAGEO_DECLARE void gaiaOutEwktPolygonZ (gaiaOutBufferPtr out_buf, gaiaPolygonPtr polyg) { /* formats an EWKT POLYGONZ */ char *buf_x; char *buf_y; char *buf_z; char *buf; int ib; int iv; double x; double y; double z; gaiaRingPtr ring = polyg->Exterior; for (iv = 0; iv < ring->Points; iv++) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); buf_x = sqlite3_mprintf ("%1.15f", x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%1.15f", y); gaiaOutClean (buf_y); buf_z = sqlite3_mprintf ("%1.15f", z); gaiaOutClean (buf_z); if (iv == 0) buf = sqlite3_mprintf ("(%s %s %s", buf_x, buf_y, buf_z); else if (iv == (ring->Points - 1)) buf = sqlite3_mprintf (",%s %s %s)", buf_x, buf_y, buf_z); else buf = sqlite3_mprintf (",%s %s %s", buf_x, buf_y, buf_z); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } for (ib = 0; ib < polyg->NumInteriors; ib++) { ring = polyg->Interiors + ib; for (iv = 0; iv < ring->Points; iv++) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); buf_x = sqlite3_mprintf ("%1.15f", x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%1.15f", y); gaiaOutClean (buf_y); buf_z = sqlite3_mprintf ("%1.15f", z); gaiaOutClean (buf_z); if (iv == 0) buf = sqlite3_mprintf (",(%s %s %s", buf_x, buf_y, buf_z); else if (iv == (ring->Points - 1)) buf = sqlite3_mprintf (",%s %s %s)", buf_x, buf_y, buf_z); else buf = sqlite3_mprintf (",%s %s %s", buf_x, buf_y, buf_z); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } } } static void gaiaOutEwktPolygonM (gaiaOutBufferPtr out_buf, gaiaPolygonPtr polyg) { /* formats an EWKT POLYGONM */ char *buf_x; char *buf_y; char *buf_m; char *buf; int ib; int iv; double x; double y; double m; gaiaRingPtr ring = polyg->Exterior; for (iv = 0; iv < ring->Points; iv++) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); buf_x = sqlite3_mprintf ("%1.15f", x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%1.15f", y); gaiaOutClean (buf_y); buf_m = sqlite3_mprintf ("%1.15f", m); gaiaOutClean (buf_m); if (iv == 0) buf = sqlite3_mprintf ("(%s %s %s", buf_x, buf_y, buf_m); else if (iv == (ring->Points - 1)) buf = sqlite3_mprintf (",%s %s %s)", buf_x, buf_y, buf_m); else buf = sqlite3_mprintf (",%s %s %s", buf_x, buf_y, buf_m); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_m); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } for (ib = 0; ib < polyg->NumInteriors; ib++) { ring = polyg->Interiors + ib; for (iv = 0; iv < ring->Points; iv++) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); buf_x = sqlite3_mprintf ("%1.15f", x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%1.15f", y); gaiaOutClean (buf_y); buf_m = sqlite3_mprintf ("%1.15f", m); gaiaOutClean (buf_m); if (iv == 0) buf = sqlite3_mprintf (",(%s %s %s", buf_x, buf_y, buf_m); else if (iv == (ring->Points - 1)) buf = sqlite3_mprintf (",%s %s %s)", buf_x, buf_y, buf_m); else buf = sqlite3_mprintf (",%s %s %s", buf_x, buf_y, buf_m); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_m); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } } } static void gaiaOutEwktPolygonZM (gaiaOutBufferPtr out_buf, gaiaPolygonPtr polyg) { /* formats an EWKT POLYGONZM */ char *buf_x; char *buf_y; char *buf_z; char *buf_m; char *buf; int ib; int iv; double x; double y; double z; double m; gaiaRingPtr ring = polyg->Exterior; for (iv = 0; iv < ring->Points; iv++) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); buf_x = sqlite3_mprintf ("%1.15f", x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%1.15f", y); gaiaOutClean (buf_y); buf_z = sqlite3_mprintf ("%1.15f", z); gaiaOutClean (buf_z); buf_m = sqlite3_mprintf ("%1.15f", m); gaiaOutClean (buf_m); if (iv == 0) buf = sqlite3_mprintf ("(%s %s %s %s", buf_x, buf_y, buf_z, buf_m); else if (iv == (ring->Points - 1)) buf = sqlite3_mprintf (",%s %s %s %s)", buf_x, buf_y, buf_z, buf_m); else buf = sqlite3_mprintf (",%s %s %s %s", buf_x, buf_y, buf_z, buf_m); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); sqlite3_free (buf_m); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } for (ib = 0; ib < polyg->NumInteriors; ib++) { ring = polyg->Interiors + ib; for (iv = 0; iv < ring->Points; iv++) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); buf_x = sqlite3_mprintf ("%1.15f", x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%1.15f", y); gaiaOutClean (buf_y); buf_z = sqlite3_mprintf ("%1.15f", z); gaiaOutClean (buf_z); buf_m = sqlite3_mprintf ("%1.15f", m); gaiaOutClean (buf_m); if (iv == 0) buf = sqlite3_mprintf (",(%s %s %s %s", buf_x, buf_y, buf_z, buf_m); else if (iv == (ring->Points - 1)) buf = sqlite3_mprintf (",%s %s %s %s)", buf_x, buf_y, buf_z, buf_m); else buf = sqlite3_mprintf (",%s %s %s %s", buf_x, buf_y, buf_z, buf_m); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); sqlite3_free (buf_m); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } } } GAIAGEO_DECLARE void gaiaOutWkt (gaiaOutBufferPtr out_buf, gaiaGeomCollPtr geom) { /* prints the WKT representation of current geometry */ int pts = 0; int lns = 0; int pgs = 0; gaiaPointPtr point; gaiaLinestringPtr line; gaiaPolygonPtr polyg; if (!geom) return; point = geom->FirstPoint; while (point) { /* counting how many POINTs are there */ pts++; point = point->Next; } line = geom->FirstLinestring; while (line) { /* counting how many LINESTRINGs are there */ lns++; line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* counting how many POLYGONs are there */ pgs++; polyg = polyg->Next; } if ((pts + lns + pgs) == 1 && (geom->DeclaredType == GAIA_POINT || geom->DeclaredType == GAIA_LINESTRING || geom->DeclaredType == GAIA_POLYGON)) { /* we have only one elementary geometry */ point = geom->FirstPoint; while (point) { if (point->DimensionModel == GAIA_XY_Z) { /* processing POINTZ */ gaiaAppendToOutBuffer (out_buf, "POINT Z("); gaiaOutPointZ (out_buf, point); } else if (point->DimensionModel == GAIA_XY_M) { /* processing POINTM */ gaiaAppendToOutBuffer (out_buf, "POINT M("); gaiaOutPointM (out_buf, point); } else if (point->DimensionModel == GAIA_XY_Z_M) { /* processing POINTZM */ gaiaAppendToOutBuffer (out_buf, "POINT ZM("); gaiaOutPointZM (out_buf, point); } else { /* processing POINT */ gaiaAppendToOutBuffer (out_buf, "POINT("); gaiaOutPoint (out_buf, point); } gaiaAppendToOutBuffer (out_buf, ")"); point = point->Next; } line = geom->FirstLinestring; while (line) { if (line->DimensionModel == GAIA_XY_Z) { /* processing LINESTRINGZ */ gaiaAppendToOutBuffer (out_buf, "LINESTRING Z("); gaiaOutLinestringZ (out_buf, line); } else if (line->DimensionModel == GAIA_XY_M) { /* processing LINESTRINGM */ gaiaAppendToOutBuffer (out_buf, "LINESTRING M("); gaiaOutLinestringM (out_buf, line); } else if (line->DimensionModel == GAIA_XY_Z_M) { /* processing LINESTRINGZM */ gaiaAppendToOutBuffer (out_buf, "LINESTRING ZM("); gaiaOutLinestringZM (out_buf, line); } else { /* processing LINESTRING */ gaiaAppendToOutBuffer (out_buf, "LINESTRING("); gaiaOutLinestring (out_buf, line); } gaiaAppendToOutBuffer (out_buf, ")"); line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { if (polyg->DimensionModel == GAIA_XY_Z) { /* processing POLYGONZ */ gaiaAppendToOutBuffer (out_buf, "POLYGON Z("); gaiaOutPolygonZ (out_buf, polyg); } else if (polyg->DimensionModel == GAIA_XY_M) { /* processing POLYGONM */ gaiaAppendToOutBuffer (out_buf, "POLYGON M("); gaiaOutPolygonM (out_buf, polyg); } else if (polyg->DimensionModel == GAIA_XY_Z_M) { /* processing POLYGONZM */ gaiaAppendToOutBuffer (out_buf, "POLYGON ZM("); gaiaOutPolygonZM (out_buf, polyg); } else { /* processing POLYGON */ gaiaAppendToOutBuffer (out_buf, "POLYGON("); gaiaOutPolygon (out_buf, polyg); } gaiaAppendToOutBuffer (out_buf, ")"); polyg = polyg->Next; } } else { /* we have some kind of complex geometry */ if (pts > 0 && lns == 0 && pgs == 0 && geom->DeclaredType == GAIA_MULTIPOINT) { /* some kind of MULTIPOINT */ if (geom->DimensionModel == GAIA_XY_Z) gaiaAppendToOutBuffer (out_buf, "MULTIPOINT Z("); else if (geom->DimensionModel == GAIA_XY_M) gaiaAppendToOutBuffer (out_buf, "MULTIPOINT M("); else if (geom->DimensionModel == GAIA_XY_Z_M) gaiaAppendToOutBuffer (out_buf, "MULTIPOINT ZM("); else gaiaAppendToOutBuffer (out_buf, "MULTIPOINT("); point = geom->FirstPoint; while (point) { if (point->DimensionModel == GAIA_XY_Z) { if (point != geom->FirstPoint) gaiaAppendToOutBuffer (out_buf, ", "); gaiaOutPointZ (out_buf, point); } else if (point->DimensionModel == GAIA_XY_M) { if (point != geom->FirstPoint) gaiaAppendToOutBuffer (out_buf, ", "); gaiaOutPointM (out_buf, point); } else if (point->DimensionModel == GAIA_XY_Z_M) { if (point != geom->FirstPoint) gaiaAppendToOutBuffer (out_buf, ", "); gaiaOutPointZM (out_buf, point); } else { if (point != geom->FirstPoint) gaiaAppendToOutBuffer (out_buf, ", "); gaiaOutPoint (out_buf, point); } point = point->Next; } gaiaAppendToOutBuffer (out_buf, ")"); } else if (pts == 0 && lns > 0 && pgs == 0 && geom->DeclaredType == GAIA_MULTILINESTRING) { /* some kind of MULTILINESTRING */ if (geom->DimensionModel == GAIA_XY_Z) gaiaAppendToOutBuffer (out_buf, "MULTILINESTRING Z("); else if (geom->DimensionModel == GAIA_XY_M) gaiaAppendToOutBuffer (out_buf, "MULTILINESTRING M("); else if (geom->DimensionModel == GAIA_XY_Z_M) gaiaAppendToOutBuffer (out_buf, "MULTILINESTRING ZM("); else gaiaAppendToOutBuffer (out_buf, "MULTILINESTRING("); line = geom->FirstLinestring; while (line) { if (line != geom->FirstLinestring) gaiaAppendToOutBuffer (out_buf, ", ("); else gaiaAppendToOutBuffer (out_buf, "("); if (line->DimensionModel == GAIA_XY_Z) { gaiaOutLinestringZ (out_buf, line); gaiaAppendToOutBuffer (out_buf, ")"); } else if (line->DimensionModel == GAIA_XY_M) { gaiaOutLinestringM (out_buf, line); gaiaAppendToOutBuffer (out_buf, ")"); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaOutLinestringZM (out_buf, line); gaiaAppendToOutBuffer (out_buf, ")"); } else { gaiaOutLinestring (out_buf, line); gaiaAppendToOutBuffer (out_buf, ")"); } line = line->Next; } gaiaAppendToOutBuffer (out_buf, ")"); } else if (pts == 0 && lns == 0 && pgs > 0 && geom->DeclaredType == GAIA_MULTIPOLYGON) { /* some kind of MULTIPOLYGON */ if (geom->DimensionModel == GAIA_XY_Z) gaiaAppendToOutBuffer (out_buf, "MULTIPOLYGON Z("); else if (geom->DimensionModel == GAIA_XY_M) gaiaAppendToOutBuffer (out_buf, "MULTIPOLYGON M("); else if (geom->DimensionModel == GAIA_XY_Z_M) gaiaAppendToOutBuffer (out_buf, "MULTIPOLYGON ZM("); else gaiaAppendToOutBuffer (out_buf, "MULTIPOLYGON("); polyg = geom->FirstPolygon; while (polyg) { if (polyg != geom->FirstPolygon) gaiaAppendToOutBuffer (out_buf, ", ("); else gaiaAppendToOutBuffer (out_buf, "("); if (polyg->DimensionModel == GAIA_XY_Z) { gaiaOutPolygonZ (out_buf, polyg); gaiaAppendToOutBuffer (out_buf, ")"); } else if (polyg->DimensionModel == GAIA_XY_M) { gaiaOutPolygonM (out_buf, polyg); gaiaAppendToOutBuffer (out_buf, ")"); } else if (polyg->DimensionModel == GAIA_XY_Z_M) { gaiaOutPolygonZM (out_buf, polyg); gaiaAppendToOutBuffer (out_buf, ")"); } else { gaiaOutPolygon (out_buf, polyg); gaiaAppendToOutBuffer (out_buf, ")"); } polyg = polyg->Next; } gaiaAppendToOutBuffer (out_buf, ")"); } else { /* some kind of GEOMETRYCOLLECTION */ int ie = 0; if (geom->DimensionModel == GAIA_XY_Z) gaiaAppendToOutBuffer (out_buf, "GEOMETRYCOLLECTION Z("); else if (geom->DimensionModel == GAIA_XY_M) gaiaAppendToOutBuffer (out_buf, "GEOMETRYCOLLECTION M("); else if (geom->DimensionModel == GAIA_XY_Z_M) gaiaAppendToOutBuffer (out_buf, "GEOMETRYCOLLECTION ZM("); else gaiaAppendToOutBuffer (out_buf, "GEOMETRYCOLLECTION("); point = geom->FirstPoint; while (point) { /* processing POINTs */ if (ie > 0) gaiaAppendToOutBuffer (out_buf, ", "); ie++; if (point->DimensionModel == GAIA_XY_Z) { gaiaAppendToOutBuffer (out_buf, "POINT Z("); gaiaOutPointZ (out_buf, point); } else if (point->DimensionModel == GAIA_XY_M) { gaiaAppendToOutBuffer (out_buf, "POINT M("); gaiaOutPointM (out_buf, point); } else if (point->DimensionModel == GAIA_XY_Z_M) { gaiaAppendToOutBuffer (out_buf, "POINT ZM("); gaiaOutPointZM (out_buf, point); } else { gaiaAppendToOutBuffer (out_buf, "POINT("); gaiaOutPoint (out_buf, point); } gaiaAppendToOutBuffer (out_buf, ")"); point = point->Next; } line = geom->FirstLinestring; while (line) { /* processing LINESTRINGs */ if (ie > 0) gaiaAppendToOutBuffer (out_buf, ", "); ie++; if (line->DimensionModel == GAIA_XY_Z) { gaiaAppendToOutBuffer (out_buf, "LINESTRING Z("); gaiaOutLinestringZ (out_buf, line); } else if (line->DimensionModel == GAIA_XY_M) { gaiaAppendToOutBuffer (out_buf, "LINESTRING M("); gaiaOutLinestringM (out_buf, line); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaAppendToOutBuffer (out_buf, "LINESTRING ZM("); gaiaOutLinestringZM (out_buf, line); } else { gaiaAppendToOutBuffer (out_buf, "LINESTRING("); gaiaOutLinestring (out_buf, line); } gaiaAppendToOutBuffer (out_buf, ")"); line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* processing POLYGONs */ if (ie > 0) gaiaAppendToOutBuffer (out_buf, ", "); ie++; if (polyg->DimensionModel == GAIA_XY_Z) { gaiaAppendToOutBuffer (out_buf, "POLYGON Z("); gaiaOutPolygonZ (out_buf, polyg); } else if (polyg->DimensionModel == GAIA_XY_M) { gaiaAppendToOutBuffer (out_buf, "POLYGON M("); gaiaOutPolygonM (out_buf, polyg); } else if (polyg->DimensionModel == GAIA_XY_Z_M) { gaiaAppendToOutBuffer (out_buf, "POLYGON ZM("); gaiaOutPolygonZM (out_buf, polyg); } else { gaiaAppendToOutBuffer (out_buf, "POLYGON("); gaiaOutPolygon (out_buf, polyg); } gaiaAppendToOutBuffer (out_buf, ")"); polyg = polyg->Next; } gaiaAppendToOutBuffer (out_buf, ")"); } } } GAIAGEO_DECLARE void gaiaOutWktStrict (gaiaOutBufferPtr out_buf, gaiaGeomCollPtr geom, int precision) { /* * prints the WKT representation of current geometry * strictly conformant 2D WKT implementation */ int pts = 0; int lns = 0; int pgs = 0; gaiaPointPtr point; gaiaLinestringPtr line; gaiaPolygonPtr polyg; if (precision > 18) precision = 18; if (!geom) return; point = geom->FirstPoint; while (point) { /* counting how many POINTs are there */ pts++; point = point->Next; } line = geom->FirstLinestring; while (line) { /* counting how many LINESTRINGs are there */ lns++; line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* counting how many POLYGONs are there */ pgs++; polyg = polyg->Next; } if ((pts + lns + pgs) == 1 && (geom->DeclaredType == GAIA_POINT || geom->DeclaredType == GAIA_LINESTRING || geom->DeclaredType == GAIA_POLYGON)) { /* we have only one elementary geometry */ point = geom->FirstPoint; while (point) { /* processing POINT */ gaiaAppendToOutBuffer (out_buf, "POINT("); gaiaOutPointStrict (out_buf, point, precision); gaiaAppendToOutBuffer (out_buf, ")"); point = point->Next; } line = geom->FirstLinestring; while (line) { /* processing LINESTRING */ gaiaAppendToOutBuffer (out_buf, "LINESTRING("); gaiaOutLinestringStrict (out_buf, line, precision); gaiaAppendToOutBuffer (out_buf, ")"); line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* processing POLYGON */ gaiaAppendToOutBuffer (out_buf, "POLYGON("); gaiaOutPolygonStrict (out_buf, polyg, precision); gaiaAppendToOutBuffer (out_buf, ")"); polyg = polyg->Next; } } else { /* we have some kind of complex geometry */ if (pts > 0 && lns == 0 && pgs == 0 && geom->DeclaredType == GAIA_MULTIPOINT) { /* some kind of MULTIPOINT */ gaiaAppendToOutBuffer (out_buf, "MULTIPOINT("); point = geom->FirstPoint; while (point) { if (point != geom->FirstPoint) gaiaAppendToOutBuffer (out_buf, ","); gaiaOutPointStrict (out_buf, point, precision); point = point->Next; } gaiaAppendToOutBuffer (out_buf, ")"); } else if (pts == 0 && lns > 0 && pgs == 0 && geom->DeclaredType == GAIA_MULTILINESTRING) { /* some kind of MULTILINESTRING */ gaiaAppendToOutBuffer (out_buf, "MULTILINESTRING("); line = geom->FirstLinestring; while (line) { if (line != geom->FirstLinestring) gaiaAppendToOutBuffer (out_buf, ",("); else gaiaAppendToOutBuffer (out_buf, "("); gaiaOutLinestringStrict (out_buf, line, precision); gaiaAppendToOutBuffer (out_buf, ")"); line = line->Next; } gaiaAppendToOutBuffer (out_buf, ")"); } else if (pts == 0 && lns == 0 && pgs > 0 && geom->DeclaredType == GAIA_MULTIPOLYGON) { /* some kind of MULTIPOLYGON */ gaiaAppendToOutBuffer (out_buf, "MULTIPOLYGON("); polyg = geom->FirstPolygon; while (polyg) { if (polyg != geom->FirstPolygon) gaiaAppendToOutBuffer (out_buf, ",("); else gaiaAppendToOutBuffer (out_buf, "("); gaiaOutPolygonStrict (out_buf, polyg, precision); gaiaAppendToOutBuffer (out_buf, ")"); polyg = polyg->Next; } gaiaAppendToOutBuffer (out_buf, ")"); } else { /* some kind of GEOMETRYCOLLECTION */ int ie = 0; gaiaAppendToOutBuffer (out_buf, "GEOMETRYCOLLECTION("); point = geom->FirstPoint; while (point) { /* processing POINTs */ if (ie > 0) gaiaAppendToOutBuffer (out_buf, ","); ie++; gaiaAppendToOutBuffer (out_buf, "POINT("); gaiaOutPointStrict (out_buf, point, precision); gaiaAppendToOutBuffer (out_buf, ")"); point = point->Next; } line = geom->FirstLinestring; while (line) { /* processing LINESTRINGs */ if (ie > 0) gaiaAppendToOutBuffer (out_buf, ","); ie++; gaiaAppendToOutBuffer (out_buf, "LINESTRING("); gaiaOutLinestringStrict (out_buf, line, precision); gaiaAppendToOutBuffer (out_buf, ")"); line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* processing POLYGONs */ if (ie > 0) gaiaAppendToOutBuffer (out_buf, ","); ie++; gaiaAppendToOutBuffer (out_buf, "POLYGON("); gaiaOutPolygonStrict (out_buf, polyg, precision); gaiaAppendToOutBuffer (out_buf, ")"); polyg = polyg->Next; } gaiaAppendToOutBuffer (out_buf, ")"); } } } GAIAGEO_DECLARE void gaiaToEWKT (gaiaOutBufferPtr out_buf, gaiaGeomCollPtr geom) { /* prints the EWKT representation of current geometry */ char buf[128]; int pts = 0; int lns = 0; int pgs = 0; gaiaPointPtr point; gaiaLinestringPtr line; gaiaPolygonPtr polyg; if (!geom) return; sprintf (buf, "SRID=%d;", geom->Srid); gaiaAppendToOutBuffer (out_buf, buf); point = geom->FirstPoint; while (point) { /* counting how many POINTs are there */ pts++; point = point->Next; } line = geom->FirstLinestring; while (line) { /* counting how many LINESTRINGs are there */ lns++; line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* counting how many POLYGONs are there */ pgs++; polyg = polyg->Next; } if ((pts + lns + pgs) == 1 && (geom->DeclaredType == GAIA_POINT || geom->DeclaredType == GAIA_LINESTRING || geom->DeclaredType == GAIA_POLYGON)) { /* we have only one elementary geometry */ point = geom->FirstPoint; while (point) { if (point->DimensionModel == GAIA_XY_Z) { /* processing POINTZ */ gaiaAppendToOutBuffer (out_buf, "POINT("); gaiaOutEwktPointZ (out_buf, point); } else if (point->DimensionModel == GAIA_XY_M) { /* processing POINTM */ gaiaAppendToOutBuffer (out_buf, "POINTM("); gaiaOutEwktPointM (out_buf, point); } else if (point->DimensionModel == GAIA_XY_Z_M) { /* processing POINTZM */ gaiaAppendToOutBuffer (out_buf, "POINT("); gaiaOutEwktPointZM (out_buf, point); } else { /* processing POINT */ gaiaAppendToOutBuffer (out_buf, "POINT("); gaiaOutEwktPoint (out_buf, point); } gaiaAppendToOutBuffer (out_buf, ")"); point = point->Next; } line = geom->FirstLinestring; while (line) { if (line->DimensionModel == GAIA_XY_Z) { /* processing LINESTRINGZ */ gaiaAppendToOutBuffer (out_buf, "LINESTRING("); gaiaOutEwktLinestringZ (out_buf, line); } else if (line->DimensionModel == GAIA_XY_M) { /* processing LINESTRINGM */ gaiaAppendToOutBuffer (out_buf, "LINESTRINGM("); gaiaOutEwktLinestringM (out_buf, line); } else if (line->DimensionModel == GAIA_XY_Z_M) { /* processing LINESTRINGZM */ gaiaAppendToOutBuffer (out_buf, "LINESTRING("); gaiaOutEwktLinestringZM (out_buf, line); } else { /* processing LINESTRING */ gaiaAppendToOutBuffer (out_buf, "LINESTRING("); gaiaOutEwktLinestring (out_buf, line); } gaiaAppendToOutBuffer (out_buf, ")"); line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { if (polyg->DimensionModel == GAIA_XY_Z) { /* processing POLYGONZ */ gaiaAppendToOutBuffer (out_buf, "POLYGON("); gaiaOutEwktPolygonZ (out_buf, polyg); } else if (polyg->DimensionModel == GAIA_XY_M) { /* processing POLYGONM */ gaiaAppendToOutBuffer (out_buf, "POLYGONM("); gaiaOutEwktPolygonM (out_buf, polyg); } else if (polyg->DimensionModel == GAIA_XY_Z_M) { /* processing POLYGONZM */ gaiaAppendToOutBuffer (out_buf, "POLYGON("); gaiaOutEwktPolygonZM (out_buf, polyg); } else { /* processing POLYGON */ gaiaAppendToOutBuffer (out_buf, "POLYGON("); gaiaOutEwktPolygon (out_buf, polyg); } gaiaAppendToOutBuffer (out_buf, ")"); polyg = polyg->Next; } } else { /* we have some kind of complex geometry */ if (pts > 0 && lns == 0 && pgs == 0 && geom->DeclaredType == GAIA_MULTIPOINT) { /* some kind of MULTIPOINT */ if (geom->DimensionModel == GAIA_XY_M) gaiaAppendToOutBuffer (out_buf, "MULTIPOINTM("); else gaiaAppendToOutBuffer (out_buf, "MULTIPOINT("); point = geom->FirstPoint; while (point) { if (point->DimensionModel == GAIA_XY_Z) { if (point != geom->FirstPoint) gaiaAppendToOutBuffer (out_buf, ","); gaiaOutEwktPointZ (out_buf, point); } else if (point->DimensionModel == GAIA_XY_M) { if (point != geom->FirstPoint) gaiaAppendToOutBuffer (out_buf, ","); gaiaOutEwktPointM (out_buf, point); } else if (point->DimensionModel == GAIA_XY_Z_M) { if (point != geom->FirstPoint) gaiaAppendToOutBuffer (out_buf, ","); gaiaOutEwktPointZM (out_buf, point); } else { if (point != geom->FirstPoint) gaiaAppendToOutBuffer (out_buf, ","); gaiaOutEwktPoint (out_buf, point); } point = point->Next; } gaiaAppendToOutBuffer (out_buf, ")"); } else if (pts == 0 && lns > 0 && pgs == 0 && geom->DeclaredType == GAIA_MULTILINESTRING) { /* some kind of MULTILINESTRING */ if (geom->DimensionModel == GAIA_XY_M) gaiaAppendToOutBuffer (out_buf, "MULTILINESTRINGM("); else gaiaAppendToOutBuffer (out_buf, "MULTILINESTRING("); line = geom->FirstLinestring; while (line) { if (line != geom->FirstLinestring) gaiaAppendToOutBuffer (out_buf, ",("); else gaiaAppendToOutBuffer (out_buf, "("); if (line->DimensionModel == GAIA_XY_Z) { gaiaOutEwktLinestringZ (out_buf, line); gaiaAppendToOutBuffer (out_buf, ")"); } else if (line->DimensionModel == GAIA_XY_M) { gaiaOutEwktLinestringM (out_buf, line); gaiaAppendToOutBuffer (out_buf, ")"); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaOutEwktLinestringZM (out_buf, line); gaiaAppendToOutBuffer (out_buf, ")"); } else { gaiaOutEwktLinestring (out_buf, line); gaiaAppendToOutBuffer (out_buf, ")"); } line = line->Next; } gaiaAppendToOutBuffer (out_buf, ")"); } else if (pts == 0 && lns == 0 && pgs > 0 && geom->DeclaredType == GAIA_MULTIPOLYGON) { /* some kind of MULTIPOLYGON */ if (geom->DimensionModel == GAIA_XY_M) gaiaAppendToOutBuffer (out_buf, "MULTIPOLYGONM("); else gaiaAppendToOutBuffer (out_buf, "MULTIPOLYGON("); polyg = geom->FirstPolygon; while (polyg) { if (polyg != geom->FirstPolygon) gaiaAppendToOutBuffer (out_buf, ",("); else gaiaAppendToOutBuffer (out_buf, "("); if (polyg->DimensionModel == GAIA_XY_Z) { gaiaOutEwktPolygonZ (out_buf, polyg); gaiaAppendToOutBuffer (out_buf, ")"); } else if (polyg->DimensionModel == GAIA_XY_M) { gaiaOutEwktPolygonM (out_buf, polyg); gaiaAppendToOutBuffer (out_buf, ")"); } else if (polyg->DimensionModel == GAIA_XY_Z_M) { gaiaOutEwktPolygonZM (out_buf, polyg); gaiaAppendToOutBuffer (out_buf, ")"); } else { gaiaOutEwktPolygon (out_buf, polyg); gaiaAppendToOutBuffer (out_buf, ")"); } polyg = polyg->Next; } gaiaAppendToOutBuffer (out_buf, ")"); } else { /* some kind of GEOMETRYCOLLECTION */ int ie = 0; if (geom->DimensionModel == GAIA_XY_M) gaiaAppendToOutBuffer (out_buf, "GEOMETRYCOLLECTIONM("); else gaiaAppendToOutBuffer (out_buf, "GEOMETRYCOLLECTION("); point = geom->FirstPoint; while (point) { /* processing POINTs */ if (ie > 0) gaiaAppendToOutBuffer (out_buf, ","); ie++; if (point->DimensionModel == GAIA_XY_Z) { gaiaAppendToOutBuffer (out_buf, "POINT("); gaiaOutEwktPointZ (out_buf, point); } else if (point->DimensionModel == GAIA_XY_M) { gaiaAppendToOutBuffer (out_buf, "POINTM("); gaiaOutEwktPointM (out_buf, point); } else if (point->DimensionModel == GAIA_XY_Z_M) { gaiaAppendToOutBuffer (out_buf, "POINT("); gaiaOutEwktPointZM (out_buf, point); } else { gaiaAppendToOutBuffer (out_buf, "POINT("); gaiaOutEwktPoint (out_buf, point); } gaiaAppendToOutBuffer (out_buf, ")"); point = point->Next; } line = geom->FirstLinestring; while (line) { /* processing LINESTRINGs */ if (ie > 0) gaiaAppendToOutBuffer (out_buf, ","); ie++; if (line->DimensionModel == GAIA_XY_Z) { gaiaAppendToOutBuffer (out_buf, "LINESTRING("); gaiaOutEwktLinestringZ (out_buf, line); } else if (line->DimensionModel == GAIA_XY_M) { gaiaAppendToOutBuffer (out_buf, "LINESTRINGM("); gaiaOutEwktLinestringM (out_buf, line); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaAppendToOutBuffer (out_buf, "LINESTRING("); gaiaOutEwktLinestringZM (out_buf, line); } else { gaiaAppendToOutBuffer (out_buf, "LINESTRING("); gaiaOutEwktLinestring (out_buf, line); } gaiaAppendToOutBuffer (out_buf, ")"); line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* processing POLYGONs */ if (ie > 0) gaiaAppendToOutBuffer (out_buf, ","); ie++; if (polyg->DimensionModel == GAIA_XY_Z) { gaiaAppendToOutBuffer (out_buf, "POLYGON("); gaiaOutEwktPolygonZ (out_buf, polyg); } else if (polyg->DimensionModel == GAIA_XY_M) { gaiaAppendToOutBuffer (out_buf, "POLYGONM("); gaiaOutEwktPolygonM (out_buf, polyg); } else if (polyg->DimensionModel == GAIA_XY_Z_M) { gaiaAppendToOutBuffer (out_buf, "POLYGON("); gaiaOutEwktPolygonZM (out_buf, polyg); } else { gaiaAppendToOutBuffer (out_buf, "POLYGON("); gaiaOutEwktPolygon (out_buf, polyg); } gaiaAppendToOutBuffer (out_buf, ")"); polyg = polyg->Next; } gaiaAppendToOutBuffer (out_buf, ")"); } } } /* / / Gaia common support for SVG encoded geometries / //////////////////////////////////////////////////////////// / / Author: Klaus Foerster klaus.foerster@svg.cc / version 0.9. 2008 September 21 / */ static void SvgCoords (gaiaOutBufferPtr out_buf, gaiaPointPtr point, int precision) { /* formats POINT as SVG-attributes x,y */ char *buf_x; char *buf_y; char *buf; buf_x = sqlite3_mprintf ("%.*f", precision, point->X); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%.*f", precision, point->Y * -1); gaiaOutClean (buf_y); buf = sqlite3_mprintf ("x=\"%s\" y=\"%s\"", buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } static void SvgCircle (gaiaOutBufferPtr out_buf, gaiaPointPtr point, int precision) { /* formats POINT as SVG-attributes cx,cy */ char *buf_x; char *buf_y; char *buf; buf_x = sqlite3_mprintf ("%.*f", precision, point->X); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%.*f", precision, point->Y * -1); gaiaOutClean (buf_y); buf = sqlite3_mprintf ("cx=\"%s\" cy=\"%s\"", buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } static void SvgPathRelative (gaiaOutBufferPtr out_buf, int dims, int points, double *coords, int precision, int closePath) { /* formats LINESTRING as SVG-path d-attribute with relative coordinate moves */ char *buf_x; char *buf_y; char *buf; double x; double y; double z; double m; double lastX = 0.0; double lastY = 0.0; int iv; for (iv = 0; iv < points; iv++) { if (dims == GAIA_XY_Z) { gaiaGetPointXYZ (coords, iv, &x, &y, &z); } else if (dims == GAIA_XY_M) { gaiaGetPointXYM (coords, iv, &x, &y, &m); } else if (dims == GAIA_XY_Z_M) { gaiaGetPointXYZM (coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (coords, iv, &x, &y); } buf_x = sqlite3_mprintf ("%.*f", precision, x - lastX); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%.*f", precision, (y - lastY) * -1); gaiaOutClean (buf_y); if (iv == 0) buf = sqlite3_mprintf ("M %s %s l ", buf_x, buf_y); else buf = sqlite3_mprintf ("%s %s ", buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); lastX = x; lastY = y; if (iv == points - 1 && closePath == 1) gaiaAppendToOutBuffer (out_buf, "z "); else gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } } static void SvgPathAbsolute (gaiaOutBufferPtr out_buf, int dims, int points, double *coords, int precision, int closePath) { /* formats LINESTRING as SVG-path d-attribute with relative coordinate moves */ char *buf_x; char *buf_y; char *buf; double x; double y; double z; double m; int iv; for (iv = 0; iv < points; iv++) { if (dims == GAIA_XY_Z) { gaiaGetPointXYZ (coords, iv, &x, &y, &z); } else if (dims == GAIA_XY_M) { gaiaGetPointXYM (coords, iv, &x, &y, &m); } else if (dims == GAIA_XY_Z_M) { gaiaGetPointXYZM (coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (coords, iv, &x, &y); } buf_x = sqlite3_mprintf ("%.*f", precision, x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%.*f", precision, y * -1); gaiaOutClean (buf_y); if (iv == 0) buf = sqlite3_mprintf ("M %s %s L ", buf_x, buf_y); else buf = sqlite3_mprintf ("%s %s ", buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); if (iv == points - 1 && closePath == 1) gaiaAppendToOutBuffer (out_buf, "z "); else gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } } GAIAGEO_DECLARE void gaiaOutSvg (gaiaOutBufferPtr out_buf, gaiaGeomCollPtr geom, int relative, int precision) { /* prints the SVG representation of current geometry */ int pts = 0; int lns = 0; int pgs = 0; int ib; gaiaPointPtr point; gaiaLinestringPtr line; gaiaPolygonPtr polyg; gaiaRingPtr ring; if (precision > 18) precision = 18; if (!geom) return; point = geom->FirstPoint; while (point) { /* counting how many POINTs are there */ pts++; point = point->Next; } line = geom->FirstLinestring; while (line) { /* counting how many LINESTRINGs are there */ lns++; line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* counting how many POLYGONs are there */ pgs++; polyg = polyg->Next; } if ((pts + lns + pgs) == 1) { /* we have only one elementary geometry */ point = geom->FirstPoint; while (point) { /* processing POINT */ if (relative == 1) SvgCoords (out_buf, point, precision); else SvgCircle (out_buf, point, precision); point = point->Next; } line = geom->FirstLinestring; while (line) { /* processing LINESTRING */ if (relative == 1) SvgPathRelative (out_buf, line->DimensionModel, line->Points, line->Coords, precision, 0); else SvgPathAbsolute (out_buf, line->DimensionModel, line->Points, line->Coords, precision, 0); line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* process exterior and interior rings */ ring = polyg->Exterior; if (relative == 1) { SvgPathRelative (out_buf, ring->DimensionModel, ring->Points, ring->Coords, precision, 1); for (ib = 0; ib < polyg->NumInteriors; ib++) { ring = polyg->Interiors + ib; SvgPathRelative (out_buf, ring->DimensionModel, ring->Points, ring->Coords, precision, 1); } } else { SvgPathAbsolute (out_buf, ring->DimensionModel, ring->Points, ring->Coords, precision, 1); for (ib = 0; ib < polyg->NumInteriors; ib++) { ring = polyg->Interiors + ib; SvgPathAbsolute (out_buf, ring->DimensionModel, ring->Points, ring->Coords, precision, 1); } } polyg = polyg->Next; } } else { /* we have some kind of complex geometry */ if (pts > 0 && lns == 0 && pgs == 0) { /* this one is a MULTIPOINT */ point = geom->FirstPoint; while (point) { /* processing POINTs */ if (point != geom->FirstPoint) gaiaAppendToOutBuffer (out_buf, ","); if (relative == 1) SvgCoords (out_buf, point, precision); else SvgCircle (out_buf, point, precision); point = point->Next; } } else if (pts == 0 && lns > 0 && pgs == 0) { /* this one is a MULTILINESTRING */ line = geom->FirstLinestring; while (line) { /* processing LINESTRINGs */ if (relative == 1) SvgPathRelative (out_buf, line->DimensionModel, line->Points, line->Coords, precision, 0); else SvgPathAbsolute (out_buf, line->DimensionModel, line->Points, line->Coords, precision, 0); line = line->Next; } } else if (pts == 0 && lns == 0 && pgs > 0) { /* this one is a MULTIPOLYGON */ polyg = geom->FirstPolygon; while (polyg) { /* processing POLYGONs */ ring = polyg->Exterior; if (relative == 1) { SvgPathRelative (out_buf, ring->DimensionModel, ring->Points, ring->Coords, precision, 1); for (ib = 0; ib < polyg->NumInteriors; ib++) { ring = polyg->Interiors + ib; SvgPathRelative (out_buf, ring->DimensionModel, ring->Points, ring->Coords, precision, 1); } } else { SvgPathAbsolute (out_buf, ring->DimensionModel, ring->Points, ring->Coords, precision, 1); for (ib = 0; ib < polyg->NumInteriors; ib++) { ring = polyg->Interiors + ib; SvgPathAbsolute (out_buf, ring->DimensionModel, ring->Points, ring->Coords, precision, 1); } } polyg = polyg->Next; } } else { /* this one is a GEOMETRYCOLLECTION */ int ie = 0; point = geom->FirstPoint; while (point) { /* processing POINTs */ if (ie > 0) { gaiaAppendToOutBuffer (out_buf, ";"); } ie++; if (relative == 1) SvgCoords (out_buf, point, precision); else SvgCircle (out_buf, point, precision); point = point->Next; } line = geom->FirstLinestring; while (line) { /* processing LINESTRINGs */ if (ie > 0) gaiaAppendToOutBuffer (out_buf, ";"); ie++; if (relative == 1) SvgPathRelative (out_buf, line->DimensionModel, line->Points, line->Coords, precision, 0); else SvgPathAbsolute (out_buf, line->DimensionModel, line->Points, line->Coords, precision, 0); line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* processing POLYGONs */ ie++; /* process exterior and interior rings */ ring = polyg->Exterior; if (relative == 1) { SvgPathRelative (out_buf, ring->DimensionModel, ring->Points, ring->Coords, precision, 1); for (ib = 0; ib < polyg->NumInteriors; ib++) { ring = polyg->Interiors + ib; SvgPathRelative (out_buf, ring->DimensionModel, ring->Points, ring->Coords, precision, 1); } } else { SvgPathAbsolute (out_buf, ring->DimensionModel, ring->Points, ring->Coords, precision, 1); for (ib = 0; ib < polyg->NumInteriors; ib++) { ring = polyg->Interiors + ib; SvgPathAbsolute (out_buf, ring->DimensionModel, ring->Points, ring->Coords, precision, 1); } } polyg = polyg->Next; } } } if (out_buf->Error == 0 && out_buf->WriteOffset > 0) { /* sandro 2012-02-23 cleaning extra trailing spaces */ int i; for (i = out_buf->WriteOffset - 1; i >= 0; i--) { if (*(out_buf->Buffer + i) == ' ') { *(out_buf->Buffer + i) = '\0'; out_buf->WriteOffset -= 1; } else break; } } } /* END of Klaus Foerster SVG implementation */ static char * XmlClean (const char *string) { /* well formatting a text string for XML */ int ind; char *clean; char *p_out; int len = strlen (string); clean = malloc (len * 3); if (!clean) return NULL; p_out = clean; for (ind = 0; ind < len; ind++) { /* masking XML special chars */ switch (string[ind]) { case '&': *p_out++ = '&'; *p_out++ = 'a'; *p_out++ = 'm'; *p_out++ = 'p'; *p_out++ = ';'; break; case '<': *p_out++ = '&'; *p_out++ = 'l'; *p_out++ = 't'; *p_out++ = ';'; break; case '>': *p_out++ = '&'; *p_out++ = 'g'; *p_out++ = 't'; *p_out++ = ';'; break; case '"': *p_out++ = '&'; *p_out++ = 'q'; *p_out++ = 'u'; *p_out++ = 'o'; *p_out++ = 't'; *p_out++ = ';'; break; default: *p_out++ = string[ind]; break; }; } *p_out = '\0'; return clean; } static void out_kml_point (gaiaOutBufferPtr out_buf, gaiaPointPtr point, int precision) { /* formats POINT as KML [x,y] */ char *buf_x; char *buf_y; char *buf_z; char *buf; buf_x = sqlite3_mprintf ("%.*f", precision, point->X); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%.*f", precision, point->Y); gaiaOutClean (buf_y); if (point->DimensionModel == GAIA_XY_Z || point->DimensionModel == GAIA_XY_Z_M) { buf_z = sqlite3_mprintf ("%.*f", precision, point->Z); gaiaOutClean (buf_z); } gaiaAppendToOutBuffer (out_buf, ""); if (point->DimensionModel == GAIA_XY_Z || point->DimensionModel == GAIA_XY_Z_M) { buf = sqlite3_mprintf ("%s,%s,%s", buf_x, buf_y, buf_z); sqlite3_free (buf_z); } else buf = sqlite3_mprintf ("%s,%s", buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); gaiaAppendToOutBuffer (out_buf, ""); } static void out_kml_linestring (gaiaOutBuffer * out_buf, int dims, int points, double *coords, int precision) { /* formats LINESTRING as KML [x,y] */ char *buf_x; char *buf_y; char *buf_z; char *buf; int iv; double x; double y; double z; double m; gaiaAppendToOutBuffer (out_buf, ""); for (iv = 0; iv < points; iv++) { /* exporting vertices */ if (dims == GAIA_XY_Z) { gaiaGetPointXYZ (coords, iv, &x, &y, &z); } else if (dims == GAIA_XY_M) { gaiaGetPointXYM (coords, iv, &x, &y, &m); } else if (dims == GAIA_XY_Z_M) { gaiaGetPointXYZM (coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (coords, iv, &x, &y); } buf_x = sqlite3_mprintf ("%.*f", precision, x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%.*f", precision, y); gaiaOutClean (buf_y); if (dims == GAIA_XY_Z || dims == GAIA_XY_Z_M) { buf_z = sqlite3_mprintf ("%.*f", precision, z); gaiaOutClean (buf_z); if (iv == 0) buf = sqlite3_mprintf ("%s,%s,%s", buf_x, buf_y, buf_z); else buf = sqlite3_mprintf (" %s,%s,%s", buf_x, buf_y, buf_z); sqlite3_free (buf_z); } else { if (iv == 0) buf = sqlite3_mprintf ("%s,%s", buf_x, buf_y); else buf = sqlite3_mprintf (" %s,%s", buf_x, buf_y); } sqlite3_free (buf_x); sqlite3_free (buf_y); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } gaiaAppendToOutBuffer (out_buf, ""); } static void out_kml_polygon (gaiaOutBufferPtr out_buf, gaiaPolygonPtr polygon, int precision) { /* formats POLYGON as KML [x,y] */ char *buf_x; char *buf_y; char *buf_z; char *buf; gaiaRingPtr ring; int iv; int ib; double x; double y; double z; double m; gaiaAppendToOutBuffer (out_buf, ""); gaiaAppendToOutBuffer (out_buf, ""); ring = polygon->Exterior; for (iv = 0; iv < ring->Points; iv++) { /* exporting vertices [Exterior Ring] */ if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } buf_x = sqlite3_mprintf ("%.*f", precision, x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%.*f", precision, y); gaiaOutClean (buf_y); if (ring->DimensionModel == GAIA_XY_Z || ring->DimensionModel == GAIA_XY_Z_M) { buf_z = sqlite3_mprintf ("%.*f", precision, z); gaiaOutClean (buf_z); if (iv == 0) buf = sqlite3_mprintf ("%s,%s,%s", buf_x, buf_y, buf_z); else buf = sqlite3_mprintf (" %s,%s,%s", buf_x, buf_y, buf_z); sqlite3_free (buf_z); } else { if (iv == 0) buf = sqlite3_mprintf ("%s,%s", buf_x, buf_y); else buf = sqlite3_mprintf (" %s,%s", buf_x, buf_y); } sqlite3_free (buf_x); sqlite3_free (buf_y); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } gaiaAppendToOutBuffer (out_buf, ""); for (ib = 0; ib < polygon->NumInteriors; ib++) { /* interior rings */ ring = polygon->Interiors + ib; gaiaAppendToOutBuffer (out_buf, ""); for (iv = 0; iv < ring->Points; iv++) { /* exporting vertices [Interior Ring] */ if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } buf_x = sqlite3_mprintf ("%.*f", precision, x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%.*f", precision, y); gaiaOutClean (buf_y); if (ring->DimensionModel == GAIA_XY_Z || ring->DimensionModel == GAIA_XY_Z_M) { buf_z = sqlite3_mprintf ("%.*f", precision, z); gaiaOutClean (buf_z); if (iv == 0) buf = sqlite3_mprintf ("%s,%s,%s", buf_x, buf_y, buf_z); else buf = sqlite3_mprintf (" %s,%s,%s", buf_x, buf_y, buf_z); sqlite3_free (buf_z); } else { if (iv == 0) buf = sqlite3_mprintf ("%s,%s", buf_x, buf_y); else buf = sqlite3_mprintf (" %s,%s", buf_x, buf_y); } sqlite3_free (buf_x); sqlite3_free (buf_y); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } gaiaAppendToOutBuffer (out_buf, ""); } gaiaAppendToOutBuffer (out_buf, ""); } GAIAGEO_DECLARE void gaiaOutFullKml (gaiaOutBufferPtr out_buf, const char *name, const char *desc, gaiaGeomCollPtr geom, int precision) { /* prints the 'full' KML representation of current geometry */ gaiaPointPtr point; gaiaLinestringPtr line; gaiaPolygonPtr polyg; int count = 0; char *xml_clean; if (!geom) return; if (precision > 18) precision = 18; /* counting how many elementary geometries are there */ point = geom->FirstPoint; while (point) { count++; point = point->Next; } line = geom->FirstLinestring; while (line) { count++; line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { count++; polyg = polyg->Next; } if (count == 1) { if (geom->DeclaredType == GAIA_MULTIPOINT || geom->DeclaredType == GAIA_MULTILINESTRING || geom->DeclaredType == GAIA_MULTIPOLYGON || geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) count = 2; } gaiaAppendToOutBuffer (out_buf, ""); xml_clean = XmlClean (name); if (xml_clean) { gaiaAppendToOutBuffer (out_buf, xml_clean); free (xml_clean); } else gaiaAppendToOutBuffer (out_buf, " "); gaiaAppendToOutBuffer (out_buf, ""); xml_clean = XmlClean (desc); if (xml_clean) { gaiaAppendToOutBuffer (out_buf, xml_clean); free (xml_clean); } else gaiaAppendToOutBuffer (out_buf, " "); gaiaAppendToOutBuffer (out_buf, ""); if (count > 1) { /* MultiGeometry start */ gaiaAppendToOutBuffer (out_buf, ""); } point = geom->FirstPoint; while (point) { /* processing POINT */ out_kml_point (out_buf, point, precision); point = point->Next; } line = geom->FirstLinestring; while (line) { /* processing LINESTRING */ out_kml_linestring (out_buf, line->DimensionModel, line->Points, line->Coords, precision); line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* processing POLYGON */ out_kml_polygon (out_buf, polyg, precision); polyg = polyg->Next; } if (count > 1) { /* MultiGeometry end */ gaiaAppendToOutBuffer (out_buf, ""); } gaiaAppendToOutBuffer (out_buf, ""); } GAIAGEO_DECLARE void gaiaOutBareKml (gaiaOutBufferPtr out_buf, gaiaGeomCollPtr geom, int precision) { /* prints the 'bare' KML representation of current geometry */ gaiaPointPtr point; gaiaLinestringPtr line; gaiaPolygonPtr polyg; int count = 0; if (!geom) return; if (precision > 18) precision = 18; /* counting how many elementary geometries are there */ point = geom->FirstPoint; while (point) { count++; point = point->Next; } line = geom->FirstLinestring; while (line) { count++; line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { count++; polyg = polyg->Next; } if (count == 1) { if (geom->DeclaredType == GAIA_MULTIPOINT || geom->DeclaredType == GAIA_MULTILINESTRING || geom->DeclaredType == GAIA_MULTIPOLYGON || geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) count = 2; } if (count > 1) { /* MultiGeometry start */ gaiaAppendToOutBuffer (out_buf, ""); } point = geom->FirstPoint; while (point) { /* processing POINT */ out_kml_point (out_buf, point, precision); point = point->Next; } line = geom->FirstLinestring; while (line) { /* processing LINESTRING */ out_kml_linestring (out_buf, line->DimensionModel, line->Points, line->Coords, precision); line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* processing POLYGON */ out_kml_polygon (out_buf, polyg, precision); polyg = polyg->Next; } if (count > 1) { /* MultiGeometry end */ gaiaAppendToOutBuffer (out_buf, ""); } } GAIAGEO_DECLARE void gaiaOutGml (gaiaOutBufferPtr out_buf, int version, int precision, gaiaGeomCollPtr geom) { /* / prints the GML representation of current geometry / *result* returns the encoded GML or NULL if any error is encountered */ gaiaPointPtr point; gaiaLinestringPtr line; gaiaPolygonPtr polyg; gaiaRingPtr ring; int iv; int ib; double x; double y; double z; double m; int has_z; int is_multi = 1; int is_coll = 0; char buf[2048]; char *xbuf; char *buf_x; char *buf_y; char *buf_z; if (!geom) return; if (precision > 18) precision = 18; switch (geom->DeclaredType) { case GAIA_POINT: case GAIA_LINESTRING: case GAIA_POLYGON: *buf = '\0'; is_multi = 0; break; case GAIA_MULTIPOINT: if (geom->Srid <= 0) strcpy (buf, ""); else sprintf (buf, "", geom->Srid); break; case GAIA_MULTILINESTRING: if (version == 3) { if (geom->Srid <= 0) strcpy (buf, ""); else sprintf (buf, "", geom->Srid); } else { if (geom->Srid <= 0) strcpy (buf, ""); else sprintf (buf, "", geom->Srid); } break; case GAIA_MULTIPOLYGON: if (version == 3) { if (geom->Srid <= 0) strcpy (buf, ""); else sprintf (buf, "", geom->Srid); } else { if (geom->Srid <= 0) strcpy (buf, ""); else sprintf (buf, "", geom->Srid); } break; default: if (geom->Srid <= 0) strcpy (buf, ""); else sprintf (buf, "", geom->Srid); is_coll = 1; break; }; gaiaAppendToOutBuffer (out_buf, buf); point = geom->FirstPoint; while (point) { /* processing POINT */ if (is_multi) { if (is_coll) strcpy (buf, ""); else strcpy (buf, ""); strcat (buf, ""); } else { if (geom->Srid <= 0) strcpy (buf, ""); else sprintf (buf, "", geom->Srid); } if (version == 3) { if (point->DimensionModel == GAIA_XY_Z || point->DimensionModel == GAIA_XY_Z_M) strcat (buf, ""); else strcat (buf, ""); } else strcat (buf, ""); gaiaAppendToOutBuffer (out_buf, buf); buf_x = sqlite3_mprintf ("%.*f", precision, point->X); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%.*f", precision, point->Y); gaiaOutClean (buf_y); if (point->DimensionModel == GAIA_XY_Z || point->DimensionModel == GAIA_XY_Z_M) { buf_z = sqlite3_mprintf ("%.*f", precision, point->Z); gaiaOutClean (buf_z); if (version == 3) { xbuf = sqlite3_mprintf ("%s %s %s", buf_x, buf_y, buf_z); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); } else { xbuf = sqlite3_mprintf ("%s,%s,%s", buf_x, buf_y, buf_z); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); } } else { if (version == 3) { xbuf = sqlite3_mprintf ("%s %s", buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); } else { xbuf = sqlite3_mprintf ("%s,%s", buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); } } gaiaAppendToOutBuffer (out_buf, xbuf); sqlite3_free (xbuf); if (version == 3) strcpy (buf, ""); else strcpy (buf, ""); if (is_multi) { strcat (buf, ""); if (is_coll) strcat (buf, ""); else strcat (buf, ""); } else strcat (buf, ""); gaiaAppendToOutBuffer (out_buf, buf); point = point->Next; } line = geom->FirstLinestring; while (line) { /* processing LINESTRING */ if (is_multi) { if (version == 3) { if (is_coll) strcpy (buf, ""); else strcpy (buf, ""); strcat (buf, ""); strcat (buf, ""); strcat (buf, ""); if (line->DimensionModel == GAIA_XY_Z || line->DimensionModel == GAIA_XY_Z_M) strcat (buf, ""); else strcat (buf, ""); } else { if (is_coll) strcpy (buf, ""); else strcpy (buf, ""); strcat (buf, ""); strcat (buf, ""); } } else { if (version == 3) { if (geom->Srid <= 0) strcpy (buf, ""); else sprintf (buf, "", geom->Srid); strcat (buf, ""); strcat (buf, ""); if (line->DimensionModel == GAIA_XY_Z || line->DimensionModel == GAIA_XY_Z_M) strcat (buf, ""); else strcat (buf, ""); } else { if (geom->Srid <= 0) strcpy (buf, ""); else sprintf (buf, "", geom->Srid); strcat (buf, ""); } } gaiaAppendToOutBuffer (out_buf, buf); for (iv = 0; iv < line->Points; iv++) { /* exporting vertices */ has_z = 0; if (line->DimensionModel == GAIA_XY_Z) { has_z = 1; gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { has_z = 1; gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } if (iv == 0) *buf = '\0'; else strcpy (buf, " "); if (has_z) { buf_x = sqlite3_mprintf ("%.*f", precision, x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%.*f", precision, y); gaiaOutClean (buf_y); buf_z = sqlite3_mprintf ("%.*f", precision, z); gaiaOutClean (buf_z); if (version == 3) { xbuf = sqlite3_mprintf ("%s%s %s %s", buf, buf_x, buf_y, buf_z); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); } else { xbuf = sqlite3_mprintf ("%s%s,%s,%s", buf, buf_x, buf_y, buf_z); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); } } else { buf_x = sqlite3_mprintf ("%.*f", precision, x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%.*f", precision, y); gaiaOutClean (buf_y); if (version == 3) { xbuf = sqlite3_mprintf ("%s%s %s", buf, buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); } else { xbuf = sqlite3_mprintf ("%s%s,%s", buf, buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); } } gaiaAppendToOutBuffer (out_buf, xbuf); sqlite3_free (xbuf); } if (is_multi) { if (version == 3) { strcpy (buf, ""); strcat (buf, ""); strcat (buf, ""); strcat (buf, ""); if (is_coll) strcat (buf, ""); else strcat (buf, ""); } else { strcpy (buf, ""); strcat (buf, ""); if (is_coll) strcat (buf, ""); else strcat (buf, ""); } } else { if (version == 3) { strcpy (buf, ""); strcat (buf, ""); strcat (buf, ""); strcat (buf, ""); } else { strcpy (buf, ""); strcat (buf, ""); } } gaiaAppendToOutBuffer (out_buf, buf); line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* processing POLYGON */ ring = polyg->Exterior; if (is_multi) { if (version == 3) { if (is_coll) strcpy (buf, ""); else strcpy (buf, ""); strcat (buf, ""); strcat (buf, ""); strcat (buf, ""); if (ring->DimensionModel == GAIA_XY_Z || ring->DimensionModel == GAIA_XY_Z_M) strcat (buf, ""); else strcat (buf, ""); } else { if (is_coll) strcpy (buf, ""); else strcpy (buf, ""); strcat (buf, ""); strcat (buf, ""); strcat (buf, ""); strcat (buf, ""); } } else { if (geom->Srid <= 0) strcpy (buf, ""); else sprintf (buf, "", geom->Srid); if (version == 3) { strcat (buf, ""); strcat (buf, ""); if (ring->DimensionModel == GAIA_XY_Z || ring->DimensionModel == GAIA_XY_Z_M) strcat (buf, ""); else strcat (buf, ""); } else { strcat (buf, ""); strcat (buf, ""); strcat (buf, ""); } } gaiaAppendToOutBuffer (out_buf, buf); for (iv = 0; iv < ring->Points; iv++) { /* exporting vertices [Interior Ring] */ has_z = 0; if (ring->DimensionModel == GAIA_XY_Z) { has_z = 1; gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { has_z = 1; gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } if (iv == 0) *buf = '\0'; else strcpy (buf, " "); if (has_z) { buf_x = sqlite3_mprintf ("%.*f", precision, x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%.*f", precision, y); gaiaOutClean (buf_y); buf_z = sqlite3_mprintf ("%.*f", precision, z); gaiaOutClean (buf_z); if (version == 3) { xbuf = sqlite3_mprintf ("%s%s %s %s", buf, buf_x, buf_y, buf_z); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); } else { xbuf = sqlite3_mprintf ("%s%s,%s,%s", buf, buf_x, buf_y, buf_z); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); } } else { buf_x = sqlite3_mprintf ("%.*f", precision, x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%.*f", precision, y); gaiaOutClean (buf_y); if (version == 3) { xbuf = sqlite3_mprintf ("%s%s %s", buf, buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); } else { xbuf = sqlite3_mprintf ("%s%s,%s", buf, buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); } } gaiaAppendToOutBuffer (out_buf, xbuf); sqlite3_free (xbuf); } /* closing the Exterior Ring */ if (version == 3) { strcpy (buf, ""); strcat (buf, ""); strcat (buf, ""); } else { strcpy (buf, ""); strcat (buf, ""); strcat (buf, ""); } gaiaAppendToOutBuffer (out_buf, buf); for (ib = 0; ib < polyg->NumInteriors; ib++) { /* interior rings */ ring = polyg->Interiors + ib; if (version == 3) { strcpy (buf, ""); strcat (buf, ""); if (ring->DimensionModel == GAIA_XY_Z || ring->DimensionModel == GAIA_XY_Z_M) strcat (buf, ""); else strcat (buf, ""); } else { strcpy (buf, ""); strcat (buf, ""); strcat (buf, ""); } gaiaAppendToOutBuffer (out_buf, buf); for (iv = 0; iv < ring->Points; iv++) { /* exporting vertices [Interior Ring] */ has_z = 0; if (ring->DimensionModel == GAIA_XY_Z) { has_z = 1; gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { has_z = 1; gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } if (iv == 0) *buf = '\0'; else strcpy (buf, " "); if (has_z) { buf_x = sqlite3_mprintf ("%.*f", precision, x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%.*f", precision, y); gaiaOutClean (buf_y); buf_z = sqlite3_mprintf ("%.*f", precision, z); gaiaOutClean (buf_z); if (version == 3) { xbuf = sqlite3_mprintf ("%s%s %s %s", buf, buf_x, buf_y, buf_z); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); } else { xbuf = sqlite3_mprintf ("%s%s,%s,%s", buf, buf_x, buf_y, buf_z); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); } } else { buf_x = sqlite3_mprintf ("%.*f", precision, x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%.*f", precision, y); gaiaOutClean (buf_y); if (version == 3) { xbuf = sqlite3_mprintf ("%s%s %s", buf, buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); } else { xbuf = sqlite3_mprintf ("%s%s,%s", buf, buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); } } gaiaAppendToOutBuffer (out_buf, xbuf); sqlite3_free (xbuf); } /* closing the Interior Ring */ if (version == 3) { strcpy (buf, ""); strcat (buf, ""); strcat (buf, ""); } else { strcpy (buf, ""); strcat (buf, ""); strcat (buf, ""); } gaiaAppendToOutBuffer (out_buf, buf); } /* closing the Polygon */ if (is_multi) { if (version == 3) { strcpy (buf, ""); if (is_coll) strcat (buf, ""); else strcat (buf, ""); } else { strcpy (buf, ""); if (is_coll) strcat (buf, ""); else strcat (buf, ""); } } else strcpy (buf, ""); gaiaAppendToOutBuffer (out_buf, buf); polyg = polyg->Next; } switch (geom->DeclaredType) { case GAIA_POINT: case GAIA_LINESTRING: case GAIA_POLYGON: *buf = '\0'; break; case GAIA_MULTIPOINT: sprintf (buf, ""); break; case GAIA_MULTILINESTRING: if (version == 3) sprintf (buf, ""); else sprintf (buf, ""); break; case GAIA_MULTIPOLYGON: if (version == 3) sprintf (buf, ""); else sprintf (buf, ""); break; default: sprintf (buf, ""); break; }; gaiaAppendToOutBuffer (out_buf, buf); } GAIAGEO_DECLARE void gaiaOutGeoJSON (gaiaOutBufferPtr out_buf, gaiaGeomCollPtr geom, int precision, int options) { /* / prints the GeoJSON representation of current geometry / *result* returns the encoded GeoJSON or NULL if any error is encountered */ gaiaPointPtr point; gaiaLinestringPtr line; gaiaPolygonPtr polyg; gaiaRingPtr ring; int iv; int ib; double x; double y; double z; double m; int has_z; int is_multi = 0; int multi_count = 0; char *bbox; char crs[2048]; char *buf; char *buf_x; char *buf_y; char *buf_m; char *buf_z; char endJson[16]; if (!geom) return; if (precision > 18) precision = 18; if (options != 0) { bbox = NULL; *crs = '\0'; if (geom->Srid > 0) { if (options == 2 || options == 3) { /* including short CRS */ sprintf (crs, ",\"crs\":{\"type\":\"name\",\"properties\":{\"name\":\"EPSG:%d\"}}", geom->Srid); } if (options == 4 || options == 5) { /* including long CRS */ sprintf (crs, ",\"crs\":{\"type\":\"name\",\"properties\":{\"name\":\"urn:ogc:def:crs:EPSG:%d\"}}", geom->Srid); } } if (options == 1 || options == 3 || options == 5) { /* including BBOX */ gaiaMbrGeometry (geom); buf_x = sqlite3_mprintf ("%.*f", precision, geom->MinX); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%.*f", precision, geom->MinY); gaiaOutClean (buf_y); buf_z = sqlite3_mprintf ("%.*f", precision, geom->MaxX); gaiaOutClean (buf_z); buf_m = sqlite3_mprintf ("%.*f", precision, geom->MaxY); gaiaOutClean (buf_m); bbox = sqlite3_mprintf (",\"bbox\":[%s,%s,%s,%s]", buf_x, buf_y, buf_z, buf_m); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); sqlite3_free (buf_m); } switch (geom->DeclaredType) { case GAIA_POINT: buf = sqlite3_mprintf ("{\"type\":\"Point\"%s%s,\"coordinates\":", crs, bbox); strcpy (endJson, "}"); break; case GAIA_LINESTRING: buf = sqlite3_mprintf ("{\"type\":\"LineString\"%s%s,\"coordinates\":[", crs, bbox); strcpy (endJson, "}"); break; case GAIA_POLYGON: buf = sqlite3_mprintf ("{\"type\":\"Polygon\"%s%s,\"coordinates\":[", crs, bbox); strcpy (endJson, "}"); break; case GAIA_MULTIPOINT: buf = sqlite3_mprintf ("{\"type\":\"MultiPoint\"%s%s,\"coordinates\":[", crs, bbox); strcpy (endJson, "]}"); break; case GAIA_MULTILINESTRING: buf = sqlite3_mprintf ("{\"type\":\"MultiLineString\"%s%s,\"coordinates\":[[", crs, bbox); strcpy (endJson, "]}"); break; case GAIA_MULTIPOLYGON: buf = sqlite3_mprintf ("{\"type\":\"MultiPolygon\"%s%s,\"coordinates\":[[", crs, bbox); strcpy (endJson, "]}"); break; default: buf = sqlite3_mprintf ("{\"type\":\"GeometryCollection\"%s%s,\"geometries\":[", crs, bbox); strcpy (endJson, "]}"); is_multi = 1; break; }; if (bbox) sqlite3_free (bbox); } else { /* omitting BBOX */ switch (geom->DeclaredType) { case GAIA_POINT: buf = sqlite3_mprintf ("{\"type\":\"Point\",\"coordinates\":"); strcpy (endJson, "}"); break; case GAIA_LINESTRING: buf = sqlite3_mprintf ("{\"type\":\"LineString\",\"coordinates\":["); strcpy (endJson, "}"); break; case GAIA_POLYGON: buf = sqlite3_mprintf ("{\"type\":\"Polygon\",\"coordinates\":["); strcpy (endJson, "}"); break; case GAIA_MULTIPOINT: buf = sqlite3_mprintf ("{\"type\":\"MultiPoint\",\"coordinates\":["); strcpy (endJson, "]}"); break; case GAIA_MULTILINESTRING: buf = sqlite3_mprintf ("{\"type\":\"MultiLineString\",\"coordinates\":[["); strcpy (endJson, "]}"); break; case GAIA_MULTIPOLYGON: buf = sqlite3_mprintf ("{\"type\":\"MultiPolygon\",\"coordinates\":[["); strcpy (endJson, "]}"); break; default: buf = sqlite3_mprintf ("{\"type\":\"GeometryCollection\",\"geometries\":["); strcpy (endJson, "]}"); is_multi = 1; break; }; } gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); point = geom->FirstPoint; while (point) { /* processing POINT */ if (is_multi) { if (multi_count > 0) buf = ",{\"type\":\"Point\",\"coordinates\":"; else buf = "{\"type\":\"Point\",\"coordinates\":"; gaiaAppendToOutBuffer (out_buf, buf); } else if (point != geom->FirstPoint) { /* adding a further Point */ gaiaAppendToOutBuffer (out_buf, ","); } buf_x = sqlite3_mprintf ("%.*f", precision, point->X); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%.*f", precision, point->Y); gaiaOutClean (buf_y); has_z = 0; if (point->DimensionModel == GAIA_XY_Z || point->DimensionModel == GAIA_XY_Z_M) { buf_z = sqlite3_mprintf ("%.*f", precision, point->Z); gaiaOutClean (buf_z); has_z = 1; } if (has_z) { buf = sqlite3_mprintf ("[%s,%s,%s]", buf_x, buf_y, buf_z); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); } else { buf = sqlite3_mprintf ("[%s,%s]", buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); } gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); if (is_multi) { gaiaAppendToOutBuffer (out_buf, "}"); multi_count++; } point = point->Next; } line = geom->FirstLinestring; while (line) { /* processing LINESTRING */ if (is_multi) { if (multi_count > 0) buf = ",{\"type\":\"LineString\",\"coordinates\":["; else buf = "{\"type\":\"LineString\",\"coordinates\":["; gaiaAppendToOutBuffer (out_buf, buf); } else if (line != geom->FirstLinestring) { /* opening a further LineString */ gaiaAppendToOutBuffer (out_buf, ",["); } for (iv = 0; iv < line->Points; iv++) { /* exporting vertices */ has_z = 0; if (line->DimensionModel == GAIA_XY_Z) { has_z = 1; gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { has_z = 1; gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } if (has_z) { buf_x = sqlite3_mprintf ("%.*f", precision, x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%.*f", precision, y); gaiaOutClean (buf_y); buf_z = sqlite3_mprintf ("%.*f", precision, z); gaiaOutClean (buf_z); if (iv == 0) buf = sqlite3_mprintf ("[%s,%s,%s]", buf_x, buf_y, buf_z); else buf = sqlite3_mprintf (",[%s,%s,%s]", buf_x, buf_y, buf_z); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); } else { buf_x = sqlite3_mprintf ("%.*f", precision, x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%.*f", precision, y); gaiaOutClean (buf_y); if (iv == 0) buf = sqlite3_mprintf ("[%s,%s]", buf_x, buf_y); else buf = sqlite3_mprintf (",[%s,%s]", buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); } gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } /* closing the LineString */ gaiaAppendToOutBuffer (out_buf, "]"); if (is_multi) { gaiaAppendToOutBuffer (out_buf, "}"); multi_count++; } line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* processing POLYGON */ if (is_multi) { if (multi_count > 0) buf = ",{\"type\":\"Polygon\",\"coordinates\":["; else buf = "{\"type\":\"Polygon\",\"coordinates\":["; gaiaAppendToOutBuffer (out_buf, buf); } else if (polyg != geom->FirstPolygon) { /* opening a further Polygon */ gaiaAppendToOutBuffer (out_buf, ",["); } ring = polyg->Exterior; for (iv = 0; iv < ring->Points; iv++) { /* exporting vertices [Interior Ring] */ has_z = 0; if (ring->DimensionModel == GAIA_XY_Z) { has_z = 1; gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { has_z = 1; gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } if (has_z) { buf_x = sqlite3_mprintf ("%.*f", precision, x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%.*f", precision, y); gaiaOutClean (buf_y); buf_z = sqlite3_mprintf ("%.*f", precision, z); gaiaOutClean (buf_z); if (iv == 0) buf = sqlite3_mprintf ("[[%s,%s,%s]", buf_x, buf_y, buf_z); else buf = sqlite3_mprintf (",[%s,%s,%s]", buf_x, buf_y, buf_z); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); } else { buf_x = sqlite3_mprintf ("%.*f", precision, x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%.*f", precision, y); gaiaOutClean (buf_y); if (iv == 0) buf = sqlite3_mprintf ("[[%s,%s]", buf_x, buf_y); else buf = sqlite3_mprintf (",[%s,%s]", buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); } gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } /* closing the Exterior Ring */ gaiaAppendToOutBuffer (out_buf, "]"); for (ib = 0; ib < polyg->NumInteriors; ib++) { /* interior rings */ ring = polyg->Interiors + ib; for (iv = 0; iv < ring->Points; iv++) { /* exporting vertices [Interior Ring] */ has_z = 0; if (ring->DimensionModel == GAIA_XY_Z) { has_z = 1; gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { has_z = 1; gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } if (has_z) { buf_x = sqlite3_mprintf ("%.*f", precision, x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%.*f", precision, y); gaiaOutClean (buf_y); buf_z = sqlite3_mprintf ("%.*f", precision, z); gaiaOutClean (buf_z); if (iv == 0) buf = sqlite3_mprintf (",[[%s,%s,%s]", buf_x, buf_y, buf_z); else buf = sqlite3_mprintf (",[%s,%s,%s]", buf_x, buf_y, buf_z); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); } else { buf_x = sqlite3_mprintf ("%.*f", precision, x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%.*f", precision, y); gaiaOutClean (buf_y); if (iv == 0) buf = sqlite3_mprintf (",[[%s,%s]", buf_x, buf_y); else buf = sqlite3_mprintf (",[%s,%s]", buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); } gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } /* closing the Interior Ring */ gaiaAppendToOutBuffer (out_buf, "]"); } /* closing the Polygon */ gaiaAppendToOutBuffer (out_buf, "]"); if (is_multi) { gaiaAppendToOutBuffer (out_buf, "}"); multi_count++; } polyg = polyg->Next; } gaiaAppendToOutBuffer (out_buf, endJson); } libspatialite-4.1.1/src/gaiageo/gg_vanuatu.c0000664000175000017500000017123412163502133015761 00000000000000/* gg_vanuatu.c -- WKT parser/lexer version 4.1, 2013 May 8 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. The Vanuatu Team - University of Toronto - Supervisor: Greg Wilson gvwilson@cs.toronto.ca Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include #include #if defined(_WIN32) || defined(WIN32) #include #ifndef isatty #define isatty _isatty #endif #ifndef fileno #define fileno _fileno #endif #endif #define VANUATU_DYN_NONE 0 #define VANUATU_DYN_POINT 1 #define VANUATU_DYN_LINESTRING 2 #define VANUATU_DYN_POLYGON 3 #define VANUATU_DYN_RING 4 #define VANUATU_DYN_GEOMETRY 5 #define VANUATU_DYN_BLOCK 1024 /* ** CAVEAT: we must redefine any Lemon/Flex own macro */ #define YYMINORTYPE VANUATU_MINORTYPE #define YY_CHAR VANUATU_YY_CHAR #define input vanuatu_input #define ParseAlloc vanuatuParseAlloc #define ParseFree vanuatuParseFree #define ParseStackPeak vanuatuParseStackPeak #define Parse vanuatuParse #define yyStackEntry vanuatu_yyStackEntry #define yyzerominor vanuatu_yyzerominor #define yy_accept vanuatu_yy_accept #define yy_action vanuatu_yy_action #define yy_base vanuatu_yy_base #define yy_buffer_stack vanuatu_yy_buffer_stack #define yy_buffer_stack_max vanuatu_yy_buffer_stack_max #define yy_buffer_stack_top vanuatu_yy_buffer_stack_top #define yy_c_buf_p vanuatu_yy_c_buf_p #define yy_chk vanuatu_yy_chk #define yy_def vanuatu_yy_def #define yy_default vanuatu_yy_default #define yy_destructor vanuatu_yy_destructor #define yy_ec vanuatu_yy_ec #define yy_fatal_error vanuatu_yy_fatal_error #define yy_find_reduce_action vanuatu_yy_find_reduce_action #define yy_find_shift_action vanuatu_yy_find_shift_action #define yy_get_next_buffer vanuatu_yy_get_next_buffer #define yy_get_previous_state vanuatu_yy_get_previous_state #define yy_init vanuatu_yy_init #define yy_init_globals vanuatu_yy_init_globals #define yy_lookahead vanuatu_yy_lookahead #define yy_meta vanuatu_yy_meta #define yy_nxt vanuatu_yy_nxt #define yy_parse_failed vanuatu_yy_parse_failed #define yy_pop_parser_stack vanuatu_yy_pop_parser_stack #define yy_reduce vanuatu_yy_reduce #define yy_reduce_ofst vanuatu_yy_reduce_ofst #define yy_shift vanuatu_yy_shift #define yy_shift_ofst vanuatu_yy_shift_ofst #define yy_start vanuatu_yy_start #define yy_state_type vanuatu_yy_state_type #define yy_syntax_error vanuatu_yy_syntax_error #define yy_trans_info vanuatu_yy_trans_info #define yy_try_NUL_trans vanuatu_yy_try_NUL_trans #define yyParser vanuatu_yyParser #define yyStackEntry vanuatu_yyStackEntry #define yyStackOverflow vanuatu_yyStackOverflow #define yyRuleInfo vanuatu_yyRuleInfo #define yyunput vanuatu_yyunput #define yyzerominor vanuatu_yyzerominor #define yyTraceFILE vanuatu_yyTraceFILE #define yyTracePrompt vanuatu_yyTracePrompt #define yyTokenName vanuatu_yyTokenName #define yyRuleName vanuatu_yyRuleName #define ParseTrace vanuatu_ParseTrace #define yylex vanuatu_yylex #define YY_DECL int yylex (yyscan_t yyscanner) /* including LEMON generated header */ #include "vanuatuWkt.h" typedef union { double dval; struct symtab *symp; } vanuatu_yystype; #define YYSTYPE vanuatu_yystype struct vanuatu_dyn_block { /* a struct taking trace of dynamic allocations */ int type[VANUATU_DYN_BLOCK]; void *ptr[VANUATU_DYN_BLOCK]; int index; struct vanuatu_dyn_block *next; }; struct vanuatu_data { /* a struct used to make the lexer-parser reentrant and thread-safe */ int vanuatu_parse_error; int vanuatu_line; int vanuatu_col; struct vanuatu_dyn_block *vanuatu_first_dyn_block; struct vanuatu_dyn_block *vanuatu_last_dyn_block; gaiaGeomCollPtr result; YYSTYPE VanuatuWktlval; }; static struct vanuatu_dyn_block * vanuatuCreateDynBlock (void) { /* allocating a new block to trace dynamic allocations */ int i; struct vanuatu_dyn_block *p = malloc (sizeof (struct vanuatu_dyn_block)); for (i = 0; i < VANUATU_DYN_BLOCK; i++) { /* initializing map entries */ p->type[i] = VANUATU_DYN_NONE; p->ptr[i] = NULL; } p->index = 0; p->next = NULL; return p; } static void vanuatuMapDynAlloc (struct vanuatu_data *p_data, int type, void *ptr) { /* appending a dynamic allocation into the map */ struct vanuatu_dyn_block *p; if (p_data->vanuatu_first_dyn_block == NULL) { /* inserting the first block of the map */ p = vanuatuCreateDynBlock (); p_data->vanuatu_first_dyn_block = p; p_data->vanuatu_last_dyn_block = p; } if (p_data->vanuatu_last_dyn_block->index >= VANUATU_DYN_BLOCK) { /* adding a further block to the map */ p = vanuatuCreateDynBlock (); p_data->vanuatu_last_dyn_block->next = p; p_data->vanuatu_last_dyn_block = p; } p_data->vanuatu_last_dyn_block->type[p_data->vanuatu_last_dyn_block-> index] = type; p_data->vanuatu_last_dyn_block->ptr[p_data->vanuatu_last_dyn_block->index] = ptr; p_data->vanuatu_last_dyn_block->index++; } static void vanuatuMapDynClean (struct vanuatu_data *p_data, void *ptr) { /* deleting a dynamic allocation from the map */ int i; struct vanuatu_dyn_block *p = p_data->vanuatu_first_dyn_block; while (p) { for (i = 0; i < VANUATU_DYN_BLOCK; i++) { switch (p->type[i]) { case VANUATU_DYN_POINT: case VANUATU_DYN_LINESTRING: case VANUATU_DYN_POLYGON: case VANUATU_DYN_RING: case VANUATU_DYN_GEOMETRY: if (p->ptr[i] == ptr) { p->type[i] = VANUATU_DYN_NONE; return; } break; }; } p = p->next; } } static void vanuatuCleanMapDynAlloc (struct vanuatu_data *p_data, int clean_all) { /* cleaning the dynamic allocations map */ int i; struct vanuatu_dyn_block *pn; struct vanuatu_dyn_block *p = p_data->vanuatu_first_dyn_block; while (p) { if (clean_all) { for (i = 0; i < VANUATU_DYN_BLOCK; i++) { /* deleting Geometry objects */ switch (p->type[i]) { case VANUATU_DYN_POINT: gaiaFreePoint ((gaiaPointPtr) (p->ptr[i])); break; case VANUATU_DYN_LINESTRING: gaiaFreeLinestring ((gaiaLinestringPtr) (p->ptr[i])); break; case VANUATU_DYN_POLYGON: gaiaFreePolygon ((gaiaPolygonPtr) (p->ptr[i])); break; case VANUATU_DYN_RING: gaiaFreeRing ((gaiaRingPtr) (p->ptr[i])); break; case VANUATU_DYN_GEOMETRY: gaiaFreeGeomColl ((gaiaGeomCollPtr) (p->ptr[i])); break; }; } } /* deleting the map block */ pn = p->next; free (p); p = pn; } } static int vanuatuCheckValidity (gaiaGeomCollPtr geom) { /* checks if this one is a degenerated geometry */ gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; gaiaRingPtr rng; int ib; int entities = 0; pt = geom->FirstPoint; while (pt) { /* checking points */ entities++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { /* checking linestrings */ if (ln->Points < 2) return 0; entities++; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { /* checking polygons */ rng = pg->Exterior; if (rng->Points < 4) return 0; for (ib = 0; ib < pg->NumInteriors; ib++) { rng = pg->Interiors + ib; if (rng->Points < 4) return 0; } entities++; pg = pg->Next; } if (!entities) return 0; return 1; } static gaiaGeomCollPtr gaiaGeometryFromPoint (struct vanuatu_data *p_data, gaiaPointPtr point) { /* builds a GEOMETRY containing a POINT */ gaiaGeomCollPtr geom = NULL; geom = gaiaAllocGeomColl (); vanuatuMapDynAlloc (p_data, VANUATU_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_POINT; gaiaAddPointToGeomColl (geom, point->X, point->Y); vanuatuMapDynClean (p_data, point); gaiaFreePoint (point); return geom; } static gaiaGeomCollPtr gaiaGeometryFromPointZ (struct vanuatu_data *p_data, gaiaPointPtr point) { /* builds a GEOMETRY containing a POINTZ */ gaiaGeomCollPtr geom = NULL; geom = gaiaAllocGeomCollXYZ (); vanuatuMapDynAlloc (p_data, VANUATU_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_POINTZ; gaiaAddPointToGeomCollXYZ (geom, point->X, point->Y, point->Z); vanuatuMapDynClean (p_data, point); gaiaFreePoint (point); return geom; } static gaiaGeomCollPtr gaiaGeometryFromPointM (struct vanuatu_data *p_data, gaiaPointPtr point) { /* builds a GEOMETRY containing a POINTM */ gaiaGeomCollPtr geom = NULL; geom = gaiaAllocGeomCollXYM (); vanuatuMapDynAlloc (p_data, VANUATU_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_POINTM; gaiaAddPointToGeomCollXYM (geom, point->X, point->Y, point->M); vanuatuMapDynClean (p_data, point); gaiaFreePoint (point); return geom; } static gaiaGeomCollPtr gaiaGeometryFromPointZM (struct vanuatu_data *p_data, gaiaPointPtr point) { /* builds a GEOMETRY containing a POINTZM */ gaiaGeomCollPtr geom = NULL; geom = gaiaAllocGeomCollXYZM (); vanuatuMapDynAlloc (p_data, VANUATU_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_POINTZM; gaiaAddPointToGeomCollXYZM (geom, point->X, point->Y, point->Z, point->M); vanuatuMapDynClean (p_data, point); gaiaFreePoint (point); return geom; } static gaiaGeomCollPtr gaiaGeometryFromLinestring (struct vanuatu_data *p_data, gaiaLinestringPtr line) { /* builds a GEOMETRY containing a LINESTRING */ gaiaGeomCollPtr geom = NULL; gaiaLinestringPtr line2; int iv; double x; double y; geom = gaiaAllocGeomColl (); vanuatuMapDynAlloc (p_data, VANUATU_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_LINESTRING; line2 = gaiaAddLinestringToGeomColl (geom, line->Points); for (iv = 0; iv < line2->Points; iv++) { /* sets the POINTS for the exterior ring */ gaiaGetPoint (line->Coords, iv, &x, &y); gaiaSetPoint (line2->Coords, iv, x, y); } vanuatuMapDynClean (p_data, line); gaiaFreeLinestring (line); return geom; } static gaiaGeomCollPtr gaiaGeometryFromLinestringZ (struct vanuatu_data *p_data, gaiaLinestringPtr line) { /* builds a GEOMETRY containing a LINESTRINGZ */ gaiaGeomCollPtr geom = NULL; gaiaLinestringPtr line2; int iv; double x; double y; double z; geom = gaiaAllocGeomCollXYZ (); vanuatuMapDynAlloc (p_data, VANUATU_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_LINESTRING; line2 = gaiaAddLinestringToGeomColl (geom, line->Points); for (iv = 0; iv < line2->Points; iv++) { /* sets the POINTS for the exterior ring */ gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (line2->Coords, iv, x, y, z); } vanuatuMapDynClean (p_data, line); gaiaFreeLinestring (line); return geom; } static gaiaGeomCollPtr gaiaGeometryFromLinestringM (struct vanuatu_data *p_data, gaiaLinestringPtr line) { /* builds a GEOMETRY containing a LINESTRINGM */ gaiaGeomCollPtr geom = NULL; gaiaLinestringPtr line2; int iv; double x; double y; double m; geom = gaiaAllocGeomCollXYM (); vanuatuMapDynAlloc (p_data, VANUATU_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_LINESTRING; line2 = gaiaAddLinestringToGeomColl (geom, line->Points); for (iv = 0; iv < line2->Points; iv++) { /* sets the POINTS for the exterior ring */ gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); gaiaSetPointXYM (line2->Coords, iv, x, y, m); } vanuatuMapDynClean (p_data, line); gaiaFreeLinestring (line); return geom; } static gaiaGeomCollPtr gaiaGeometryFromLinestringZM (struct vanuatu_data *p_data, gaiaLinestringPtr line) { /* builds a GEOMETRY containing a LINESTRINGZM */ gaiaGeomCollPtr geom = NULL; gaiaLinestringPtr line2; int iv; double x; double y; double z; double m; geom = gaiaAllocGeomCollXYZM (); vanuatuMapDynAlloc (p_data, VANUATU_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_LINESTRING; line2 = gaiaAddLinestringToGeomColl (geom, line->Points); for (iv = 0; iv < line2->Points; iv++) { /* sets the POINTS for the exterior ring */ gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (line2->Coords, iv, x, y, z, m); } vanuatuMapDynClean (p_data, line); gaiaFreeLinestring (line); return geom; } /****************************************************************************** ** The following code was created by Team Vanuatu of The University of Toronto. ** It is responsible for handling the parsing of wkt expressions. The parser ** is built using LEMON and the cooresponding methods were written by the ** students. Authors: Ruppi Rana ruppi.rana@gmail.com Dev Tanna dev.tanna@gmail.com Elias Adum elias.adum@gmail.com Benton Hui benton.hui@gmail.com Abhayan Sundararajan abhayan@gmail.com Chee-Lun Michael Stephen Cho cheelun.cho@gmail.com Nikola Banovic nikola.banovic@gmail.com Yong Jian yong.jian@utoronto.ca Supervisor: Greg Wilson gvwilson@cs.toronto.ca ------------------------------------------------------------------------------- */ /* * Creates a 2D (xy) point in SpatiaLite * x and y are pointers to doubles which represent the x and y coordinates of the point to be created. * Returns a gaiaPointPtr representing the created point. * * Creates a 2D (xy) point. This is a parser helper function which is called when 2D coordinates are encountered. * Parameters x and y are pointers to doubles which represent the x and y coordinates of the point to be created. * Returns a gaiaPointPtr pointing to the created 2D point. */ static gaiaPointPtr vanuatu_point_xy (struct vanuatu_data *p_data, double *x, double *y) { gaiaPointPtr pt = gaiaAllocPoint (*x, *y); vanuatuMapDynAlloc (p_data, VANUATU_DYN_POINT, pt); return pt; } /* * Creates a 3D (xyz) point in SpatiaLite * x, y, and z are pointers to doubles which represent the x, y, and z coordinates of the point to be created. * Returns a gaiaPointPtr representing the created point. * * Creates a 3D (xyz) point. This is a parser helper function which is called when 3D coordinates are encountered. * Parameters x, y, and z are pointers to doubles which represent the x, y, and z coordinates of the point to be created. * Returns a gaiaPointPtr pointing to the 3D created point. */ static gaiaPointPtr vanuatu_point_xyz (struct vanuatu_data *p_data, double *x, double *y, double *z) { gaiaPointPtr pt = gaiaAllocPointXYZ (*x, *y, *z); vanuatuMapDynAlloc (p_data, VANUATU_DYN_POINT, pt); return pt; } /* * Creates a 2D (xy) point with an m value which is a part of the linear reference system. This is a parser helper * function which is called when 2D *coordinates with an m value are encountered. * Parameters x and y are pointers to doubles which represent the x and y coordinates of the point to be created. * Parameter m is a pointer to a double which represents the part of the linear reference system. * Returns a gaiaPointPtr pointing to the created 2D point with an m value. */ static gaiaPointPtr vanuatu_point_xym (struct vanuatu_data *p_data, double *x, double *y, double *m) { gaiaPointPtr pt = gaiaAllocPointXYM (*x, *y, *m); vanuatuMapDynAlloc (p_data, VANUATU_DYN_POINT, pt); return pt; } /* * Creates a 4D (xyz) point with an m value which is a part of the linear reference system. This is a parser helper * function which is called when *4Dcoordinates with an m value are encountered * Parameters x, y, and z are pointers to doubles which represent the x, y, and z coordinates of the point to be created. * Parameter m is a pointer to a double which represents the part of the linear reference system. * Returns a gaiaPointPtr pointing the created 4D point with an m value. */ gaiaPointPtr vanuatu_point_xyzm (struct vanuatu_data * p_data, double *x, double *y, double *z, double *m) { gaiaPointPtr pt = gaiaAllocPointXYZM (*x, *y, *z, *m); vanuatuMapDynAlloc (p_data, VANUATU_DYN_POINT, pt); return pt; } /* * Builds a geometry collection from a point. The geometry collection should contain only one element ? the point. * The correct geometry type must be *decided based on the point type. The parser should call this function when the * ?POINT? WKT expression is encountered. * Parameter point is a pointer to a 2D, 3D, 2D with an m value, or 4D with an m value point. * Returns a geometry collection containing the point. The geometry must have FirstPoint and LastPoint pointing to the * same place as point. *DimensionModel must be the same as the model of the point and DimensionType must be GAIA_TYPE_POINT. */ static gaiaGeomCollPtr vanuatu_buildGeomFromPoint (struct vanuatu_data *p_data, gaiaPointPtr point) { switch (point->DimensionModel) { case GAIA_XY: return gaiaGeometryFromPoint (p_data, point); case GAIA_XY_Z: return gaiaGeometryFromPointZ (p_data, point); case GAIA_XY_M: return gaiaGeometryFromPointM (p_data, point); case GAIA_XY_Z_M: return gaiaGeometryFromPointZM (p_data, point); } return NULL; } /* * Creates a 2D (xy) linestring from a list of 2D points. * * Parameter first is a gaiaPointPtr to the first point in a linked list of points which define the linestring. * All of the points in the list must be 2D (xy) points. There must be at least 2 points in the list. * * Returns a pointer to linestring containing all of the points in the list. */ static gaiaLinestringPtr vanuatu_linestring_xy (struct vanuatu_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; int points = 0; int i = 0; gaiaLinestringPtr linestring; while (p != NULL) { p = p->Next; points++; } linestring = gaiaAllocLinestring (points); vanuatuMapDynAlloc (p_data, VANUATU_DYN_LINESTRING, linestring); p = first; while (p != NULL) { gaiaSetPoint (linestring->Coords, i, p->X, p->Y); p_n = p->Next; vanuatuMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; i++; } return linestring; } /* * Creates a 3D (xyz) linestring from a list of 3D points. * * Parameter first is a gaiaPointPtr to the first point in a linked list of points which define the linestring. * All of the points in the list must be 3D (xyz) points. There must be at least 2 points in the list. * * Returns a pointer to linestring containing all of the points in the list. */ static gaiaLinestringPtr vanuatu_linestring_xyz (struct vanuatu_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; int points = 0; int i = 0; gaiaLinestringPtr linestring; while (p != NULL) { p = p->Next; points++; } linestring = gaiaAllocLinestringXYZ (points); vanuatuMapDynAlloc (p_data, VANUATU_DYN_LINESTRING, linestring); p = first; while (p != NULL) { gaiaSetPointXYZ (linestring->Coords, i, p->X, p->Y, p->Z); p_n = p->Next; vanuatuMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; i++; } return linestring; } /* * Creates a 2D (xy) with m value linestring from a list of 2D with m value points. * * Parameter first is a gaiaPointPtr to the first point in a linked list of points which define the linestring. * All of the points in the list must be 2D (xy) with m value points. There must be at least 2 points in the list. * * Returns a pointer to linestring containing all of the points in the list. */ static gaiaLinestringPtr vanuatu_linestring_xym (struct vanuatu_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; int points = 0; int i = 0; gaiaLinestringPtr linestring; while (p != NULL) { p = p->Next; points++; } linestring = gaiaAllocLinestringXYM (points); vanuatuMapDynAlloc (p_data, VANUATU_DYN_LINESTRING, linestring); p = first; while (p != NULL) { gaiaSetPointXYM (linestring->Coords, i, p->X, p->Y, p->M); p_n = p->Next; vanuatuMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; i++; } return linestring; } /* * Creates a 4D (xyz) with m value linestring from a list of 4D with m value points. * * Parameter first is a gaiaPointPtr to the first point in a linked list of points which define the linestring. * All of the points in the list must be 4D (xyz) with m value points. There must be at least 2 points in the list. * * Returns a pointer to linestring containing all of the points in the list. */ static gaiaLinestringPtr vanuatu_linestring_xyzm (struct vanuatu_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; int points = 0; int i = 0; gaiaLinestringPtr linestring; while (p != NULL) { p = p->Next; points++; } linestring = gaiaAllocLinestringXYZM (points); vanuatuMapDynAlloc (p_data, VANUATU_DYN_LINESTRING, linestring); p = first; while (p != NULL) { gaiaSetPointXYZM (linestring->Coords, i, p->X, p->Y, p->Z, p->M); p_n = p->Next; vanuatuMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; i++; } return linestring; } /* * Builds a geometry collection from a linestring. */ static gaiaGeomCollPtr vanuatu_buildGeomFromLinestring (struct vanuatu_data *p_data, gaiaLinestringPtr line) { switch (line->DimensionModel) { case GAIA_XY: return gaiaGeometryFromLinestring (p_data, line); case GAIA_XY_Z: return gaiaGeometryFromLinestringZ (p_data, line); case GAIA_XY_M: return gaiaGeometryFromLinestringM (p_data, line); case GAIA_XY_Z_M: return gaiaGeometryFromLinestringZM (p_data, line); } return NULL; } /* * Helper function that determines the number of points in the linked list. */ static int vanuatu_count_points (gaiaPointPtr first) { /* Counts the number of points in the ring. */ gaiaPointPtr p = first; int numpoints = 0; while (p != NULL) { numpoints++; p = p->Next; } return numpoints; } /* * Creates a 2D (xy) ring in SpatiaLite * * first is a gaiaPointPtr to the first point in a linked list of points which define the polygon. * All of the points given to the function are 2D (xy) points. There will be at least 4 points in the list. * * Returns the ring defined by the points given to the function. */ static gaiaRingPtr vanuatu_ring_xy (struct vanuatu_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; gaiaRingPtr ring = NULL; int numpoints; int index; /* If no pointers are given, return. */ if (first == NULL) return NULL; /* Counts the number of points in the ring. */ numpoints = vanuatu_count_points (first); if (numpoints < 4) return NULL; /* Creates and allocates a ring structure. */ ring = gaiaAllocRing (numpoints); if (ring == NULL) return NULL; vanuatuMapDynAlloc (p_data, VANUATU_DYN_RING, ring); /* Adds every point into the ring structure. */ p = first; for (index = 0; index < numpoints; index++) { gaiaSetPoint (ring->Coords, index, p->X, p->Y); p_n = p->Next; vanuatuMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; } return ring; } /* * Creates a 3D (xyz) ring in SpatiaLite * * first is a gaiaPointPtr to the first point in a linked list of points which define the polygon. * All of the points given to the function are 3D (xyz) points. There will be at least 4 points in the list. * * Returns the ring defined by the points given to the function. */ static gaiaRingPtr vanuatu_ring_xyz (struct vanuatu_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; gaiaRingPtr ring = NULL; int numpoints; int index; /* If no pointers are given, return. */ if (first == NULL) return NULL; /* Counts the number of points in the ring. */ numpoints = vanuatu_count_points (first); if (numpoints < 4) return NULL; /* Creates and allocates a ring structure. */ ring = gaiaAllocRingXYZ (numpoints); if (ring == NULL) return NULL; vanuatuMapDynAlloc (p_data, VANUATU_DYN_RING, ring); /* Adds every point into the ring structure. */ p = first; for (index = 0; index < numpoints; index++) { gaiaSetPointXYZ (ring->Coords, index, p->X, p->Y, p->Z); p_n = p->Next; vanuatuMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; } return ring; } /* * Creates a 2D (xym) ring in SpatiaLite * * first is a gaiaPointPtr to the first point in a linked list of points which define the polygon. * All of the points given to the function are 2D (xym) points. There will be at least 4 points in the list. * * Returns the ring defined by the points given to the function. */ static gaiaRingPtr vanuatu_ring_xym (struct vanuatu_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; gaiaRingPtr ring = NULL; int numpoints; int index; /* If no pointers are given, return. */ if (first == NULL) return NULL; /* Counts the number of points in the ring. */ numpoints = vanuatu_count_points (first); if (numpoints < 4) return NULL; /* Creates and allocates a ring structure. */ ring = gaiaAllocRingXYM (numpoints); if (ring == NULL) return NULL; vanuatuMapDynAlloc (p_data, VANUATU_DYN_RING, ring); /* Adds every point into the ring structure. */ p = first; for (index = 0; index < numpoints; index++) { gaiaSetPointXYM (ring->Coords, index, p->X, p->Y, p->M); p_n = p->Next; vanuatuMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; } return ring; } /* * Creates a 3D (xyzm) ring in SpatiaLite * * first is a gaiaPointPtr to the first point in a linked list of points which define the polygon. * All of the points given to the function are 3D (xyzm) points. There will be at least 4 points in the list. * * Returns the ring defined by the points given to the function. */ static gaiaRingPtr vanuatu_ring_xyzm (struct vanuatu_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; gaiaRingPtr ring = NULL; int numpoints; int index; /* If no pointers are given, return. */ if (first == NULL) return NULL; /* Counts the number of points in the ring. */ numpoints = vanuatu_count_points (first); if (numpoints < 4) return NULL; /* Creates and allocates a ring structure. */ ring = gaiaAllocRingXYZM (numpoints); if (ring == NULL) return NULL; vanuatuMapDynAlloc (p_data, VANUATU_DYN_RING, ring); /* Adds every point into the ring structure. */ p = first; for (index = 0; index < numpoints; index++) { gaiaSetPointXYZM (ring->Coords, index, p->X, p->Y, p->Z, p->M); p_n = p->Next; vanuatuMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; } return ring; } /* * Helper function that will create any type of polygon (xy, xym, xyz, xyzm) in SpatiaLite. * * first is a gaiaRingPtr to the first ring in a linked list of rings which define the polygon. * The first ring in the linked list is the external ring while the rest (if any) are internal rings. * All of the rings given to the function are of the same type. There will be at least 1 ring in the list. * * Returns the polygon defined by the rings given to the function. */ static gaiaPolygonPtr vanuatu_polygon_any_type (struct vanuatu_data *p_data, gaiaRingPtr first) { gaiaRingPtr p; gaiaRingPtr p_n; gaiaPolygonPtr polygon; /* If no pointers are given, return. */ if (first == NULL) return NULL; /* Creates and allocates a polygon structure with the exterior ring. */ polygon = gaiaCreatePolygon (first); if (polygon == NULL) return NULL; vanuatuMapDynAlloc (p_data, VANUATU_DYN_POLYGON, polygon); /* Adds all interior rings into the polygon structure. */ p = first; while (p != NULL) { p_n = p->Next; vanuatuMapDynClean (p_data, p); if (p == first) gaiaFreeRing (p); else gaiaAddRingToPolyg (polygon, p); p = p_n; } return polygon; } /* * Creates a 2D (xy) polygon in SpatiaLite * * first is a gaiaRingPtr to the first ring in a linked list of rings which define the polygon. * The first ring in the linked list is the external ring while the rest (if any) are internal rings. * All of the rings given to the function are 2D (xy) rings. There will be at least 1 ring in the list. * * Returns the polygon defined by the rings given to the function. */ static gaiaPolygonPtr vanuatu_polygon_xy (struct vanuatu_data *p_data, gaiaRingPtr first) { return vanuatu_polygon_any_type (p_data, first); } /* * Creates a 3D (xyz) polygon in SpatiaLite * * first is a gaiaRingPtr to the first ring in a linked list of rings which define the polygon. * The first ring in the linked list is the external ring while the rest (if any) are internal rings. * All of the rings given to the function are 3D (xyz) rings. There will be at least 1 ring in the list. * * Returns the polygon defined by the rings given to the function. */ static gaiaPolygonPtr vanuatu_polygon_xyz (struct vanuatu_data *p_data, gaiaRingPtr first) { return vanuatu_polygon_any_type (p_data, first); } /* * Creates a 2D (xym) polygon in SpatiaLite * * first is a gaiaRingPtr to the first ring in a linked list of rings which define the polygon. * The first ring in the linked list is the external ring while the rest (if any) are internal rings. * All of the rings given to the function are 2D (xym) rings. There will be at least 1 ring in the list. * * Returns the polygon defined by the rings given to the function. */ static gaiaPolygonPtr vanuatu_polygon_xym (struct vanuatu_data *p_data, gaiaRingPtr first) { return vanuatu_polygon_any_type (p_data, first); } /* * Creates a 3D (xyzm) polygon in SpatiaLite * * first is a gaiaRingPtr to the first ring in a linked list of rings which define the polygon. * The first ring in the linked list is the external ring while the rest (if any) are internal rings. * All of the rings given to the function are 3D (xyzm) rings. There will be at least 1 ring in the list. * * Returns the polygon defined by the rings given to the function. */ static gaiaPolygonPtr vanuatu_polygon_xyzm (struct vanuatu_data *p_data, gaiaRingPtr first) { return vanuatu_polygon_any_type (p_data, first); } /* * Builds a geometry collection from a polygon. * NOTE: This function may already be implemented in the SpatiaLite code base. If it is, make sure that we * can use it (ie. it doesn't use any other variables or anything else set by Sandro's parser). If you find * that we can use an existing function then ignore this one. */ static gaiaGeomCollPtr vanuatu_buildGeomFromPolygon (struct vanuatu_data *p_data, gaiaPolygonPtr polygon) { gaiaGeomCollPtr geom = NULL; /* If no pointers are given, return. */ if (polygon == NULL) { return NULL; } /* Creates and allocates a geometry collection containing a multipoint. */ switch (polygon->DimensionModel) { case GAIA_XY: geom = gaiaAllocGeomColl (); break; case GAIA_XY_Z: geom = gaiaAllocGeomCollXYZ (); break; case GAIA_XY_M: geom = gaiaAllocGeomCollXYM (); break; case GAIA_XY_Z_M: geom = gaiaAllocGeomCollXYZM (); break; } if (geom == NULL) { return NULL; } vanuatuMapDynAlloc (p_data, VANUATU_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_POLYGON; /* Stores the location of the first and last polygons in the linked list. */ geom->FirstPolygon = polygon; while (polygon != NULL) { vanuatuMapDynClean (p_data, polygon); geom->LastPolygon = polygon; polygon = polygon->Next; } return geom; } /* * Creates a 2D (xy) multipoint object in SpatiaLite * * first is a gaiaPointPtr to the first point in a linked list of points. * All of the points given to the function are 2D (xy) points. There will be at least 1 point in the list. * * Returns a geometry collection containing the created multipoint object. */ static gaiaGeomCollPtr vanuatu_multipoint_xy (struct vanuatu_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; gaiaGeomCollPtr geom = NULL; /* If no pointers are given, return. */ if (first == NULL) return NULL; /* Creates and allocates a geometry collection containing a multipoint. */ geom = gaiaAllocGeomColl (); if (geom == NULL) return NULL; vanuatuMapDynAlloc (p_data, VANUATU_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_MULTIPOINT; /* For every 2D (xy) point, add it to the geometry collection. */ while (p != NULL) { gaiaAddPointToGeomColl (geom, p->X, p->Y); p_n = p->Next; vanuatuMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; } return geom; } /* * Creates a 3D (xyz) multipoint object in SpatiaLite * * first is a gaiaPointPtr to the first point in a linked list of points. * All of the points given to the function are 3D (xyz) points. There will be at least 1 point in the list. * * Returns a geometry collection containing the created multipoint object. */ static gaiaGeomCollPtr vanuatu_multipoint_xyz (struct vanuatu_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; gaiaGeomCollPtr geom = NULL; /* If no pointers are given, return. */ if (first == NULL) return NULL; /* Creates and allocates a geometry collection containing a multipoint. */ geom = gaiaAllocGeomCollXYZ (); if (geom == NULL) return NULL; vanuatuMapDynAlloc (p_data, VANUATU_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_MULTIPOINT; /* For every 3D (xyz) point, add it to the geometry collection. */ while (p != NULL) { gaiaAddPointToGeomCollXYZ (geom, p->X, p->Y, p->Z); p_n = p->Next; vanuatuMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; } return geom; } /* * Creates a 2D (xym) multipoint object in SpatiaLite * * first is a gaiaPointPtr to the first point in a linked list of points. * All of the points given to the function are 2D (xym) points. There will be at least 1 point in the list. * * Returns a geometry collection containing the created multipoint object. */ static gaiaGeomCollPtr vanuatu_multipoint_xym (struct vanuatu_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; gaiaGeomCollPtr geom = NULL; /* If no pointers are given, return. */ if (first == NULL) return NULL; /* Creates and allocates a geometry collection containing a multipoint. */ geom = gaiaAllocGeomCollXYM (); if (geom == NULL) return NULL; vanuatuMapDynAlloc (p_data, VANUATU_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_MULTIPOINT; /* For every 2D (xym) point, add it to the geometry collection. */ while (p != NULL) { gaiaAddPointToGeomCollXYM (geom, p->X, p->Y, p->M); p_n = p->Next; vanuatuMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; } return geom; } /* * Creates a 3D (xyzm) multipoint object in SpatiaLite * * first is a gaiaPointPtr to the first point in a linked list of points which define the linestring. * All of the points given to the function are 3D (xyzm) points. There will be at least 1 point in the list. * * Returns a geometry collection containing the created multipoint object. */ static gaiaGeomCollPtr vanuatu_multipoint_xyzm (struct vanuatu_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; gaiaGeomCollPtr geom = NULL; /* If no pointers are given, return. */ if (first == NULL) return NULL; /* Creates and allocates a geometry collection containing a multipoint. */ geom = gaiaAllocGeomCollXYZM (); if (geom == NULL) return NULL; vanuatuMapDynAlloc (p_data, VANUATU_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_MULTIPOINT; /* For every 3D (xyzm) point, add it to the geometry collection. */ while (p != NULL) { gaiaAddPointToGeomCollXYZM (geom, p->X, p->Y, p->Z, p->M); p_n = p->Next; vanuatuMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; } return geom; } /* * Creates a geometry collection containing 2D (xy) linestrings. * Parameter first is a gaiaLinestringPtr to the first linestring in a linked list of linestrings which should be added to the * collection. All of the *linestrings in the list must be 2D (xy) linestrings. There must be at least 1 linestring in the list. * Returns a pointer to the created geometry collection of 2D linestrings. The geometry must have FirstLinestring pointing to the * first linestring in the list pointed by first and LastLinestring pointing to the last element of the same list. DimensionModel * must be GAIA_XY and DimensionType must be *GAIA_TYPE_LINESTRING. */ static gaiaGeomCollPtr vanuatu_multilinestring_xy (struct vanuatu_data *p_data, gaiaLinestringPtr first) { gaiaLinestringPtr p = first; gaiaLinestringPtr p_n; gaiaLinestringPtr new_line; gaiaGeomCollPtr a = gaiaAllocGeomColl (); vanuatuMapDynAlloc (p_data, VANUATU_DYN_GEOMETRY, a); a->DeclaredType = GAIA_MULTILINESTRING; a->DimensionModel = GAIA_XY; while (p) { new_line = gaiaAddLinestringToGeomColl (a, p->Points); gaiaCopyLinestringCoords (new_line, p); p_n = p->Next; vanuatuMapDynClean (p_data, p); gaiaFreeLinestring (p); p = p_n; } return a; } /* * Returns a geometry collection containing the created multilinestring object (?). * Creates a geometry collection containing 3D (xyz) linestrings. * Parameter first is a gaiaLinestringPtr to the first linestring in a linked list of linestrings which should be added to the * collection. All of the *linestrings in the list must be 3D (xyz) linestrings. There must be at least 1 linestring in the list. * Returns a pointer to the created geometry collection of 3D linestrings. The geometry must have FirstLinestring pointing to the * first linestring in the *list pointed by first and LastLinestring pointing to the last element of the same list. DimensionModel * must be GAIA_XYZ and DimensionType must be *GAIA_TYPE_LINESTRING. */ static gaiaGeomCollPtr vanuatu_multilinestring_xyz (struct vanuatu_data *p_data, gaiaLinestringPtr first) { gaiaLinestringPtr p = first; gaiaLinestringPtr p_n; gaiaLinestringPtr new_line; gaiaGeomCollPtr a = gaiaAllocGeomCollXYZ (); vanuatuMapDynAlloc (p_data, VANUATU_DYN_GEOMETRY, a); a->DeclaredType = GAIA_MULTILINESTRING; a->DimensionModel = GAIA_XY_Z; while (p) { new_line = gaiaAddLinestringToGeomColl (a, p->Points); gaiaCopyLinestringCoords (new_line, p); p_n = p->Next; vanuatuMapDynClean (p_data, p); gaiaFreeLinestring (p); p = p_n; } return a; } /* * Creates a geometry collection containing 2D (xy) with m value linestrings. * Parameter first is a gaiaLinestringPtr to the first linestring in a linked list of linestrings which should be added to the * collection. All of the *linestrings in the list must be 2D (xy) with m value linestrings. There must be at least 1 linestring * in the list. * Returns a pointer to the created geometry collection of 2D with m value linestrings. The geometry must have FirstLinestring * pointing to the first *linestring in the list pointed by first and LastLinestring pointing to the last element of the same list. * DimensionModel must be GAIA_XYM and *DimensionType must be GAIA_TYPE_LINESTRING. */ static gaiaGeomCollPtr vanuatu_multilinestring_xym (struct vanuatu_data *p_data, gaiaLinestringPtr first) { gaiaLinestringPtr p = first; gaiaLinestringPtr p_n; gaiaLinestringPtr new_line; gaiaGeomCollPtr a = gaiaAllocGeomCollXYM (); vanuatuMapDynAlloc (p_data, VANUATU_DYN_GEOMETRY, a); a->DeclaredType = GAIA_MULTILINESTRING; a->DimensionModel = GAIA_XY_M; while (p) { new_line = gaiaAddLinestringToGeomColl (a, p->Points); gaiaCopyLinestringCoords (new_line, p); p_n = p->Next; vanuatuMapDynClean (p_data, p); gaiaFreeLinestring (p); p = p_n; } return a; } /* * Creates a geometry collection containing 4D (xyz) with m value linestrings. * Parameter first is a gaiaLinestringPtr to the first linestring in a linked list of linestrings which should be added to the * collection. All of the *linestrings in the list must be 4D (xyz) with m value linestrings. There must be at least 1 linestring * in the list. * Returns a pointer to the created geometry collection of 4D with m value linestrings. The geometry must have FirstLinestring * pointing to the first *linestring in the list pointed by first and LastLinestring pointing to the last element of the same list. * DimensionModel must be GAIA_XYZM and *DimensionType must be GAIA_TYPE_LINESTRING. */ static gaiaGeomCollPtr vanuatu_multilinestring_xyzm (struct vanuatu_data *p_data, gaiaLinestringPtr first) { gaiaLinestringPtr p = first; gaiaLinestringPtr p_n; gaiaLinestringPtr new_line; gaiaGeomCollPtr a = gaiaAllocGeomCollXYZM (); vanuatuMapDynAlloc (p_data, VANUATU_DYN_GEOMETRY, a); a->DeclaredType = GAIA_MULTILINESTRING; a->DimensionModel = GAIA_XY_Z_M; while (p) { new_line = gaiaAddLinestringToGeomColl (a, p->Points); gaiaCopyLinestringCoords (new_line, p); p_n = p->Next; vanuatuMapDynClean (p_data, p); gaiaFreeLinestring (p); p = p_n; } return a; } /* * Creates a geometry collection containing 2D (xy) polygons. * * Parameter first is a gaiaPolygonPtr to the first polygon in a linked list of polygons which should * be added to the collection. All of the polygons in the list must be 2D (xy) polygons. There must be * at least 1 polygon in the list. * * Returns a pointer to the created geometry collection of 2D polygons. The geometry must have * FirstPolygon pointing to the first polygon in the list pointed by first and LastPolygon pointing * to the last element of the same list. DimensionModel must be GAIA_XY and DimensionType must * be GAIA_TYPE_POLYGON. * */ static gaiaGeomCollPtr vanuatu_multipolygon_xy (struct vanuatu_data *p_data, gaiaPolygonPtr first) { gaiaPolygonPtr p = first; gaiaPolygonPtr p_n; int i = 0; gaiaPolygonPtr new_polyg; gaiaRingPtr i_ring; gaiaRingPtr o_ring; gaiaGeomCollPtr geom = gaiaAllocGeomColl (); vanuatuMapDynAlloc (p_data, VANUATU_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_MULTIPOLYGON; while (p) { i_ring = p->Exterior; new_polyg = gaiaAddPolygonToGeomColl (geom, i_ring->Points, p->NumInteriors); o_ring = new_polyg->Exterior; gaiaCopyRingCoords (o_ring, i_ring); for (i = 0; i < new_polyg->NumInteriors; i++) { i_ring = p->Interiors + i; o_ring = gaiaAddInteriorRing (new_polyg, i, i_ring->Points); gaiaCopyRingCoords (o_ring, i_ring); } p_n = p->Next; vanuatuMapDynClean (p_data, p); gaiaFreePolygon (p); p = p_n; } return geom; } /* * Creates a geometry collection containing 3D (xyz) polygons. * * Parameter first is a gaiaPolygonPtr to the first polygon in a linked list of polygons which should be * added to the collection. All of the polygons in the list must be 3D (xyz) polygons. There must be at * least 1 polygon in the list. * * Returns a pointer to the created geometry collection of 3D polygons. The geometry must have * FirstPolygon pointing to the first polygon in the list pointed by first and LastPolygon pointing to * the last element of the same list. DimensionModel must be GAIA_XYZ and DimensionType must * be GAIA_TYPE_POLYGON. * */ static gaiaGeomCollPtr vanuatu_multipolygon_xyz (struct vanuatu_data *p_data, gaiaPolygonPtr first) { gaiaPolygonPtr p = first; gaiaPolygonPtr p_n; int i = 0; gaiaPolygonPtr new_polyg; gaiaRingPtr i_ring; gaiaRingPtr o_ring; gaiaGeomCollPtr geom = gaiaAllocGeomCollXYZ (); vanuatuMapDynAlloc (p_data, VANUATU_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_MULTIPOLYGON; while (p) { i_ring = p->Exterior; new_polyg = gaiaAddPolygonToGeomColl (geom, i_ring->Points, p->NumInteriors); o_ring = new_polyg->Exterior; gaiaCopyRingCoords (o_ring, i_ring); for (i = 0; i < new_polyg->NumInteriors; i++) { i_ring = p->Interiors + i; o_ring = gaiaAddInteriorRing (new_polyg, i, i_ring->Points); gaiaCopyRingCoords (o_ring, i_ring); } p_n = p->Next; vanuatuMapDynClean (p_data, p); gaiaFreePolygon (p); p = p_n; } return geom; } /* * Creates a geometry collection containing 2D (xy) with m value polygons. * * Parameter first is a gaiaPolygonPtr to the first polygon in a linked list of polygons which should * be added to the collection. All of the polygons in the list must be 2D (xy) with m value polygons. * There must be at least 1 polygon in the list. * * Returns a pointer to the created geometry collection of 2D with m value polygons. The geometry * must have FirstPolygon pointing to the first polygon in the list pointed by first and LastPolygon * pointing to the last element of the same list. DimensionModel must be GAIA_XYM and DimensionType * must be GAIA_TYPE_POLYGON. * */ static gaiaGeomCollPtr vanuatu_multipolygon_xym (struct vanuatu_data *p_data, gaiaPolygonPtr first) { gaiaPolygonPtr p = first; gaiaPolygonPtr p_n; int i = 0; gaiaPolygonPtr new_polyg; gaiaRingPtr i_ring; gaiaRingPtr o_ring; gaiaGeomCollPtr geom = gaiaAllocGeomCollXYM (); vanuatuMapDynAlloc (p_data, VANUATU_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_MULTIPOLYGON; while (p) { i_ring = p->Exterior; new_polyg = gaiaAddPolygonToGeomColl (geom, i_ring->Points, p->NumInteriors); o_ring = new_polyg->Exterior; gaiaCopyRingCoords (o_ring, i_ring); for (i = 0; i < new_polyg->NumInteriors; i++) { i_ring = p->Interiors + i; o_ring = gaiaAddInteriorRing (new_polyg, i, i_ring->Points); gaiaCopyRingCoords (o_ring, i_ring); } p_n = p->Next; vanuatuMapDynClean (p_data, p); gaiaFreePolygon (p); p = p_n; } return geom; } /* * Creates a geometry collection containing 4D (xyz) with m value polygons. * * Parameter first is a gaiaPolygonPtr to the first polygon in a linked list of polygons which should be * added to the collection. All of the polygons in the list must be 4D (xyz) with m value polygons. * There must be at least 1 polygon in the list. * * Returns a pointer to the created geometry collection of 4D with m value polygons. The geometry must * have FirstPolygon pointing to the first polygon in the list pointed by first and LastPolygon pointing // * to the last element of the same list. DimensionModel must be GAIA_XYZM and DimensionType must * be GAIA_TYPE_POLYGON. * */ static gaiaGeomCollPtr vanuatu_multipolygon_xyzm (struct vanuatu_data *p_data, gaiaPolygonPtr first) { gaiaPolygonPtr p = first; gaiaPolygonPtr p_n; int i = 0; gaiaPolygonPtr new_polyg; gaiaRingPtr i_ring; gaiaRingPtr o_ring; gaiaGeomCollPtr geom = gaiaAllocGeomCollXYZM (); vanuatuMapDynAlloc (p_data, VANUATU_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_MULTIPOLYGON; while (p) { i_ring = p->Exterior; new_polyg = gaiaAddPolygonToGeomColl (geom, i_ring->Points, p->NumInteriors); o_ring = new_polyg->Exterior; gaiaCopyRingCoords (o_ring, i_ring); for (i = 0; i < new_polyg->NumInteriors; i++) { i_ring = p->Interiors + i; o_ring = gaiaAddInteriorRing (new_polyg, i, i_ring->Points); gaiaCopyRingCoords (o_ring, i_ring); } p_n = p->Next; vanuatuMapDynClean (p_data, p); gaiaFreePolygon (p); p = p_n; } return geom; } static void vanuatu_geomColl_common (struct vanuatu_data *p_data, gaiaGeomCollPtr org, gaiaGeomCollPtr dst) { /* / helper function: xfers entities between the Origin and Destination / Sandro Furieri: 2010 October 12 */ gaiaGeomCollPtr p = org; gaiaGeomCollPtr p_n; gaiaPointPtr pt; gaiaPointPtr pt_n; gaiaLinestringPtr ln; gaiaLinestringPtr ln_n; gaiaPolygonPtr pg; gaiaPolygonPtr pg_n; while (p) { pt = p->FirstPoint; while (pt) { pt_n = pt->Next; pt->Next = NULL; if (dst->FirstPoint == NULL) dst->FirstPoint = pt; if (dst->LastPoint != NULL) dst->LastPoint->Next = pt; dst->LastPoint = pt; pt = pt_n; } ln = p->FirstLinestring; while (ln) { ln_n = ln->Next; ln->Next = NULL; if (dst->FirstLinestring == NULL) dst->FirstLinestring = ln; if (dst->LastLinestring != NULL) dst->LastLinestring->Next = ln; dst->LastLinestring = ln; ln = ln_n; } pg = p->FirstPolygon; while (pg) { pg_n = pg->Next; pg->Next = NULL; if (dst->FirstPolygon == NULL) dst->FirstPolygon = pg; if (dst->LastPolygon != NULL) dst->LastPolygon->Next = pg; dst->LastPolygon = pg; pg = pg_n; } p_n = p->Next; p->FirstPoint = NULL; p->LastPoint = NULL; p->FirstLinestring = NULL; p->LastLinestring = NULL; p->FirstPolygon = NULL; p->LastPolygon = NULL; vanuatuMapDynClean (p_data, p); gaiaFreeGeomColl (p); p = p_n; } } /* Creates a 2D (xy) geometry collection in SpatiaLite * * first is the first geometry collection in a linked list of geometry collections. * Each geometry collection represents a single type of object (eg. one could be a POINT, * another could be a LINESTRING, another could be a MULTILINESTRING, etc.). * * The type of object represented by any geometry collection is stored in the declaredType * field of its struct. For example, if first->declaredType = GAIA_POINT, then first represents a point. * If first->declaredType = GAIA_MULTIPOINT, then first represents a multipoint. * * NOTE: geometry collections cannot contain other geometry collections (have to confirm this * with Sandro). * * The goal of this function is to take the information from all of the structs in the linked list and * return one geomColl struct containing all of that information. * * The integers used for 'declaredType' are defined in gaiageo.h. In this function, the only values * contained in 'declaredType' that will be encountered will be: * * GAIA_POINT, GAIA_LINESTRING, GAIA_POLYGON, * GAIA_MULTIPOINT, GAIA_MULTILINESTRING, GAIA_MULTIPOLYGON */ static gaiaGeomCollPtr vanuatu_geomColl_xy (struct vanuatu_data *p_data, gaiaGeomCollPtr first) { gaiaGeomCollPtr geom = gaiaAllocGeomColl (); if (geom == NULL) return NULL; vanuatuMapDynAlloc (p_data, VANUATU_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_GEOMETRYCOLLECTION; geom->DimensionModel = GAIA_XY; vanuatu_geomColl_common (p_data, first, geom); return geom; } /* * See geomColl_xy for description. * * The only difference between this function and geomColl_xy is that the 'declaredType' field of the structs * in the linked list for this function will only contain the following types: * * GAIA_POINTZ, GAIA_LINESTRINGZ, GAIA_POLYGONZ, * GAIA_MULTIPOINTZ, GAIA_MULTILINESTRINGZ, GAIA_MULTIPOLYGONZ */ static gaiaGeomCollPtr vanuatu_geomColl_xyz (struct vanuatu_data *p_data, gaiaGeomCollPtr first) { gaiaGeomCollPtr geom = gaiaAllocGeomColl (); if (geom == NULL) return NULL; vanuatuMapDynAlloc (p_data, VANUATU_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_GEOMETRYCOLLECTION; geom->DimensionModel = GAIA_XY_Z; vanuatu_geomColl_common (p_data, first, geom); return geom; } /* * See geomColl_xy for description. * * The only difference between this function and geomColl_xy is that the 'declaredType' field of the structs * in the linked list for this function will only contain the following types: * * GAIA_POINTM, GAIA_LINESTRINGM, GAIA_POLYGONM, * GAIA_MULTIPOINTM, GAIA_MULTILINESTRINGM, GAIA_MULTIPOLYGONM */ static gaiaGeomCollPtr vanuatu_geomColl_xym (struct vanuatu_data *p_data, gaiaGeomCollPtr first) { gaiaGeomCollPtr geom = gaiaAllocGeomColl (); if (geom == NULL) return NULL; vanuatuMapDynAlloc (p_data, VANUATU_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_GEOMETRYCOLLECTION; geom->DimensionModel = GAIA_XY_M; vanuatu_geomColl_common (p_data, first, geom); return geom; } /* * See geomColl_xy for description. * * The only difference between this function and geomColl_xy is that the 'declaredType' field of the structs * in the linked list for this function will only contain the following types: * * GAIA_POINTZM, GAIA_LINESTRINGZM, GAIA_POLYGONZM, * GAIA_MULTIPOINTZM, GAIA_MULTILINESTRINGZM, GAIA_MULTIPOLYGONZM */ static gaiaGeomCollPtr vanuatu_geomColl_xyzm (struct vanuatu_data *p_data, gaiaGeomCollPtr first) { gaiaGeomCollPtr geom = gaiaAllocGeomColl (); if (geom == NULL) return NULL; vanuatuMapDynAlloc (p_data, VANUATU_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_GEOMETRYCOLLECTION; geom->DimensionModel = GAIA_XY_Z_M; vanuatu_geomColl_common (p_data, first, geom); return geom; } /* including LEMON generated code */ #include "vanuatuWkt.c" /* ** CAVEAT: there is an incompatibility between LEMON and FLEX ** this macro resolves the issue */ #undef yy_accept #define yy_accept yy_vanuatu_flex_accept /* including FLEX generated code */ #include "lex.VanuatuWkt.c" /* ** This is a linked-list struct to store all the values for each token. ** All tokens will have a value of 0, except tokens denoted as NUM. ** NUM tokens are geometry coordinates and will contain the floating ** point number. */ typedef struct vanuatuFlexTokenStruct { double value; struct vanuatuFlexTokenStruct *Next; } vanuatuFlexToken; /* ** Function to clean up the linked-list of token values. */ static int vanuatu_cleanup (vanuatuFlexToken * token) { vanuatuFlexToken *ptok; vanuatuFlexToken *ptok_n; if (token == NULL) return 0; ptok = token; while (ptok) { ptok_n = ptok->Next; free (ptok); ptok = ptok_n; } return 0; } gaiaGeomCollPtr gaiaParseWkt (const unsigned char *dirty_buffer, short type) { void *pParser = ParseAlloc (malloc); /* Linked-list of token values */ vanuatuFlexToken *tokens = malloc (sizeof (vanuatuFlexToken)); /* Pointer to the head of the list */ vanuatuFlexToken *head = tokens; int yv; yyscan_t scanner; struct vanuatu_data str_data; /* initializing the helper structs */ str_data.vanuatu_line = 1; str_data.vanuatu_col = 1; str_data.vanuatu_parse_error = 0; str_data.vanuatu_first_dyn_block = NULL; str_data.vanuatu_last_dyn_block = NULL; str_data.result = NULL; /* initializing the scanner state */ VanuatuWktlex_init_extra (&str_data, &scanner); tokens->Next = NULL; VanuatuWkt_scan_string ((char *) dirty_buffer, scanner); /* / Keep tokenizing until we reach the end / yylex() will return the next matching Token for us. */ while ((yv = yylex (scanner)) != 0) { if (yv == -1) { str_data.vanuatu_parse_error = 1; break; } tokens->Next = malloc (sizeof (vanuatuFlexToken)); tokens->Next->Next = NULL; tokens->Next->value = str_data.VanuatuWktlval.dval; /* Pass the token to the wkt parser created from lemon */ Parse (pParser, yv, &(tokens->Next->value), &str_data); tokens = tokens->Next; } /* This denotes the end of a line as well as the end of the parser */ Parse (pParser, VANUATU_NEWLINE, 0, &str_data); ParseFree (pParser, free); VanuatuWktlex_destroy (scanner); /* Assigning the token as the end to avoid seg faults while cleaning */ tokens->Next = NULL; vanuatu_cleanup (head); /* ** Sandro Furieri 2010 Apr 4 ** checking if any parsing error was encountered */ if (str_data.vanuatu_parse_error) { if (str_data.result != NULL) { /* if a Geometry-result has been produced, the stack is already cleaned */ gaiaFreeGeomColl (str_data.result); vanuatuCleanMapDynAlloc (&str_data, 0); } else { /* otherwise we are required to clean the stack */ vanuatuCleanMapDynAlloc (&str_data, 1); } return NULL; } vanuatuCleanMapDynAlloc (&str_data, 0); /* ** Sandro Furieri 2010 Apr 4 ** final checkup for validity */ if (str_data.result == NULL) return NULL; if (!vanuatuCheckValidity (str_data.result)) { gaiaFreeGeomColl (str_data.result); return NULL; } if (type < 0) ; /* no restrinction about GEOMETRY CLASS TYPE */ else { if (str_data.result->DeclaredType != type) { /* invalid CLASS TYPE for request */ gaiaFreeGeomColl (str_data.result); return NULL; } } gaiaMbrGeometry (str_data.result); return str_data.result; } /****************************************************************************** ** This is the end of the code that was created by Team Vanuatu ** of The University of Toronto. Authors: Ruppi Rana ruppi.rana@gmail.com Dev Tanna dev.tanna@gmail.com Elias Adum elias.adum@gmail.com Benton Hui benton.hui@gmail.com Abhayan Sundararajan abhayan@gmail.com Chee-Lun Michael Stephen Cho cheelun.cho@gmail.com Nikola Banovic nikola.banovic@gmail.com Yong Jian yong.jian@utoronto.ca Supervisor: Greg Wilson gvwilson@cs.toronto.ca ------------------------------------------------------------------------------- */ /* ** CAVEAT: we must now undefine any Lemon/Flex own macro */ #undef YYNOCODE #undef YYNSTATE #undef YYNRULE #undef YY_SHIFT_MAX #undef YY_SHIFT_USE_DFLT #undef YY_REDUCE_USE_DFLT #undef YY_REDUCE_MAX #undef YY_FLUSH_BUFFER #undef YY_DO_BEFORE_ACTION #undef YY_NUM_RULES #undef YY_END_OF_BUFFER #undef YY_END_FILE #undef YYACTIONTYPE #undef YY_SZ_ACTTAB #undef YY_NEW_FILE #undef BEGIN #undef YY_START #undef YY_CURRENT_BUFFER #undef YY_CURRENT_BUFFER_LVALUE #undef YY_STATE_BUF_SIZE #undef YY_DECL #undef YY_FATAL_ERROR #undef YYMINORTYPE #undef YY_CHAR #undef YYSTYPE #undef input #undef ParseAlloc #undef ParseFree #undef ParseStackPeak #undef Parse #undef yyalloc #undef yyfree #undef yyin #undef yyleng #undef yyless #undef yylex #undef yylineno #undef yyout #undef yyrealloc #undef yyrestart #undef yyStackEntry #undef yytext #undef yywrap #undef yyzerominor #undef yy_accept #undef yy_action #undef yy_base #undef yy_buffer_stack #undef yy_buffer_stack_max #undef yy_buffer_stack_top #undef yy_c_buf_p #undef yy_chk #undef yy_create_buffer #undef yy_def #undef yy_default #undef yy_delete_buffer #undef yy_destructor #undef yy_ec #undef yy_fatal_error #undef yy_find_reduce_action #undef yy_find_shift_action #undef yy_flex_debug #undef yy_flush_buffer #undef yy_get_next_buffer #undef yy_get_previous_state #undef yy_init #undef yy_init_buffer #undef yy_init_globals #undef yy_load_buffer #undef yy_load_buffer_state #undef yy_lookahead #undef yy_meta #undef yy_new_buffer #undef yy_nxt #undef yy_parse_failed #undef yy_pop_parser_stack #undef yy_reduce #undef yy_reduce_ofst #undef yy_set_bol #undef yy_set_interactive #undef yy_shift #undef yy_shift_ofst #undef yy_start #undef yy_state_type #undef yy_switch_to_buffer #undef yy_syntax_error #undef yy_trans_info #undef yy_try_NUL_trans #undef yyParser #undef yyStackEntry #undef yyStackOverflow #undef yyRuleInfo #undef yytext_ptr #undef yyunput #undef yyzerominor #undef ParseARG_SDECL #undef ParseARG_PDECL #undef ParseARG_FETCH #undef ParseARG_STORE #undef REJECT #undef yymore #undef YY_MORE_ADJ #undef YY_RESTORE_YY_MORE_OFFSET #undef YY_LESS_LINENO #undef yyTracePrompt #undef yyTraceFILE #undef yyTokenName #undef yyRuleName #undef ParseTrace #undef yylex #undef YY_DECL libspatialite-4.1.1/src/gaiageo/gg_transform.c0000664000175000017500000014206412163502133016310 00000000000000/* gg_transform.c -- Gaia PROJ.4 wrapping version 4.1, 2013 May 8 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #ifndef OMIT_PROJ /* including PROJ.4 */ #include #endif #include #include GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMakeCircle (double cx, double cy, double radius, double step) { /* return a Linestring approximating a Circle */ return gaiaMakeEllipse (cx, cy, radius, radius, step); } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMakeArc (double cx, double cy, double radius, double start, double stop, double step) { /* return a Linestring approximating a Circular Arc */ return gaiaMakeEllipticArc (cx, cy, radius, radius, start, stop, step); } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMakeEllipse (double cx, double cy, double x_axis, double y_axis, double step) { /* return a Linestring approximating an Ellipse */ gaiaDynamicLinePtr dyn; double x; double y; double angle = 0.0; int points = 0; gaiaPointPtr pt; gaiaGeomCollPtr geom; gaiaLinestringPtr ln; int iv = 0; if (step < 0.0) step *= -1.0; if (step == 0.0) step = 10.0; if (step < 0.1) step = 0.1; if (step > 45.0) step = 45.0; if (x_axis < 0.0) x_axis *= -1.0; if (y_axis < 0.0) y_axis *= -1.0; dyn = gaiaAllocDynamicLine (); while (angle < 360.0) { double rads = angle * .0174532925199432958; x = cx + (x_axis * cos (rads)); y = cy + (y_axis * sin (rads)); gaiaAppendPointToDynamicLine (dyn, x, y); angle += step; } /* closing the ellipse */ gaiaAppendPointToDynamicLine (dyn, dyn->First->X, dyn->First->Y); pt = dyn->First; while (pt) { /* counting how many points */ points++; pt = pt->Next; } if (points == 0) { gaiaFreeDynamicLine (dyn); return NULL; } geom = gaiaAllocGeomColl (); ln = gaiaAddLinestringToGeomColl (geom, points); pt = dyn->First; while (pt) { /* setting Vertices */ gaiaSetPoint (ln->Coords, iv, pt->X, pt->Y); iv++; pt = pt->Next; } gaiaFreeDynamicLine (dyn); return geom; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMakeEllipticArc (double cx, double cy, double x_axis, double y_axis, double start, double stop, double step) { /* return a Linestring approximating an Elliptic Arc */ gaiaDynamicLinePtr dyn; double x; double y; double angle; double rads; int points = 0; gaiaPointPtr pt; gaiaGeomCollPtr geom; gaiaLinestringPtr ln; int iv = 0; if (step < 0.0) step *= -1.0; if (step == 0.0) step = 10.0; if (step < 0.1) step = 0.1; if (step > 45.0) step = 45.0; if (x_axis < 0.0) x_axis *= -1.0; if (y_axis < 0.0) y_axis *= -1.0; /* normalizing Start/Stop angles */ while (start >= 360.0) start -= 360.0; while (start <= -720.0) start += 360; while (stop >= 360.0) stop -= 360.0; while (stop <= -720.0) stop += 360; if (start < 0.0) start = 360.0 + start; if (stop < 0.0) stop = 360.0 + stop; if (start > stop) stop += 360.0; dyn = gaiaAllocDynamicLine (); angle = start; while (angle < stop) { rads = angle * .0174532925199432958; x = cx + (x_axis * cos (rads)); y = cy + (y_axis * sin (rads)); gaiaAppendPointToDynamicLine (dyn, x, y); angle += step; } /* closing the arc */ rads = stop * .0174532925199432958; x = cx + (x_axis * cos (rads)); y = cy + (y_axis * sin (rads)); if (x != dyn->Last->X || y != dyn->Last->Y) gaiaAppendPointToDynamicLine (dyn, x, y); pt = dyn->First; while (pt) { /* counting how many points */ points++; pt = pt->Next; } if (points == 0) { gaiaFreeDynamicLine (dyn); return NULL; } geom = gaiaAllocGeomColl (); ln = gaiaAddLinestringToGeomColl (geom, points); pt = dyn->First; while (pt) { /* setting Vertices */ gaiaSetPoint (ln->Coords, iv, pt->X, pt->Y); iv++; pt = pt->Next; } gaiaFreeDynamicLine (dyn); return geom; } GAIAGEO_DECLARE void gaiaShiftCoords (gaiaGeomCollPtr geom, double shift_x, double shift_y) { /* returns a geometry that is the old geometry with required shifting applied to coordinates */ int ib; int iv; double x; double y; double z; double m; gaiaPointPtr point; gaiaPolygonPtr polyg; gaiaLinestringPtr line; gaiaRingPtr ring; if (!geom) return; point = geom->FirstPoint; while (point) { /* shifting POINTs */ point->X += shift_x; point->Y += shift_y; point = point->Next; } line = geom->FirstLinestring; while (line) { /* shifting LINESTRINGs */ for (iv = 0; iv < line->Points; iv++) { if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } x += shift_x; y += shift_y; if (line->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (line->Coords, iv, x, y, z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (line->Coords, iv, x, y, m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (line->Coords, iv, x, y, z, m); } else { gaiaSetPoint (line->Coords, iv, x, y); } } line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* shifting POLYGONs */ ring = polyg->Exterior; for (iv = 0; iv < ring->Points; iv++) { /* shifting the EXTERIOR RING */ if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } x += shift_x; y += shift_y; if (ring->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ring->Coords, iv, x, y, z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ring->Coords, iv, x, y, m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ring->Coords, iv, x, y, z, m); } else { gaiaSetPoint (ring->Coords, iv, x, y); } } for (ib = 0; ib < polyg->NumInteriors; ib++) { /* shifting the INTERIOR RINGs */ ring = polyg->Interiors + ib; for (iv = 0; iv < ring->Points; iv++) { if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } x += shift_x; y += shift_y; if (ring->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ring->Coords, iv, x, y, z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ring->Coords, iv, x, y, m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ring->Coords, iv, x, y, z, m); } else { gaiaSetPoint (ring->Coords, iv, x, y); } } } polyg = polyg->Next; } gaiaMbrGeometry (geom); } GAIAGEO_DECLARE void gaiaShiftCoords3D (gaiaGeomCollPtr geom, double shift_x, double shift_y, double shift_z) { /* returns a geometry that is the old geometry with required shifting applied to coordinates */ int ib; int iv; double x; double y; double z; double m; gaiaPointPtr point; gaiaPolygonPtr polyg; gaiaLinestringPtr line; gaiaRingPtr ring; if (!geom) return; point = geom->FirstPoint; while (point) { /* shifting POINTs */ point->X += shift_x; point->Y += shift_y; if (point->DimensionModel == GAIA_XY_Z || point->DimensionModel == GAIA_XY_Z_M) point->Z += shift_z; point = point->Next; } line = geom->FirstLinestring; while (line) { /* shifting LINESTRINGs */ for (iv = 0; iv < line->Points; iv++) { if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } x += shift_x; y += shift_y; z += shift_z; if (line->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (line->Coords, iv, x, y, z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (line->Coords, iv, x, y, m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (line->Coords, iv, x, y, z, m); } else { gaiaSetPoint (line->Coords, iv, x, y); } } line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* shifting POLYGONs */ ring = polyg->Exterior; for (iv = 0; iv < ring->Points; iv++) { /* shifting the EXTERIOR RING */ if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } x += shift_x; y += shift_y; z += shift_z; if (ring->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ring->Coords, iv, x, y, z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ring->Coords, iv, x, y, m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ring->Coords, iv, x, y, z, m); } else { gaiaSetPoint (ring->Coords, iv, x, y); } } for (ib = 0; ib < polyg->NumInteriors; ib++) { /* shifting the INTERIOR RINGs */ ring = polyg->Interiors + ib; for (iv = 0; iv < ring->Points; iv++) { if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } x += shift_x; y += shift_y; z += shift_z; if (ring->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ring->Coords, iv, x, y, z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ring->Coords, iv, x, y, m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ring->Coords, iv, x, y, z, m); } else { gaiaSetPoint (ring->Coords, iv, x, y); } } } polyg = polyg->Next; } gaiaMbrGeometry (geom); } GAIAGEO_DECLARE void gaiaShiftLongitude (gaiaGeomCollPtr geom) { /* returns a geometry that is the old geometry with negative longitudes shift by 360 */ int ib; int iv; double x; double y; double z; double m; gaiaPointPtr point; gaiaPolygonPtr polyg; gaiaLinestringPtr line; gaiaRingPtr ring; if (!geom) return; point = geom->FirstPoint; while (point) { /* shifting POINTs */ if (point->X < 0) { point->X += 360.0; } point = point->Next; } line = geom->FirstLinestring; while (line) { /* shifting LINESTRINGs */ for (iv = 0; iv < line->Points; iv++) { if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } if (x < 0) { x += 360.0; } if (line->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (line->Coords, iv, x, y, z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (line->Coords, iv, x, y, m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (line->Coords, iv, x, y, z, m); } else { gaiaSetPoint (line->Coords, iv, x, y); } } line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* shifting POLYGONs */ ring = polyg->Exterior; for (iv = 0; iv < ring->Points; iv++) { /* shifting the EXTERIOR RING */ if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } if (x < 0) { x += 360.0; } if (ring->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ring->Coords, iv, x, y, z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ring->Coords, iv, x, y, m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ring->Coords, iv, x, y, z, m); } else { gaiaSetPoint (ring->Coords, iv, x, y); } } for (ib = 0; ib < polyg->NumInteriors; ib++) { /* shifting the INTERIOR RINGs */ ring = polyg->Interiors + ib; for (iv = 0; iv < ring->Points; iv++) { if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } if (x < 0) { x += 360.0; } if (ring->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ring->Coords, iv, x, y, z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ring->Coords, iv, x, y, m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ring->Coords, iv, x, y, z, m); } else { gaiaSetPoint (ring->Coords, iv, x, y); } } } polyg = polyg->Next; } gaiaMbrGeometry (geom); } static void normalizePoint (double *x, double *y) { if ((-180.0 <= *x) && (*x <= 180.0) && (-90.0 <= *y) && (*y <= 90.0)) { /* then this point is already OK */ return; } if ((*x > 180.0) || (*x < -180.0)) { int numCycles = (int) (*x / 360.0); *x -= numCycles * 360.0; } if (*x > 180.0) { *x -= 360.0; } if (*x < -180.0) { *x += 360.0; } if ((*y > 90.0) || (*y < -90.0)) { int numCycles = (int) (*y / 360.0); *y -= numCycles * 360.0; } if (*y > 180.0) { *y = -1.0 * (*y - 180.0); } if (*y < -180.0) { *y = -1.0 * (*y + 180.0); } if (*y > 90.0) { *y = 180 - *y; } if (*y < -90.0) { *y = -180.0 - *y; } } GAIAGEO_DECLARE void gaiaNormalizeLonLat (gaiaGeomCollPtr geom) { /* returns a geometry that is the old geometry with all latitudes shifted into the range -90 to 90, and all longitudes shifted into the range -180 to 180. */ int ib; int iv; double x; double y; double z; double m; gaiaPointPtr point; gaiaPolygonPtr polyg; gaiaLinestringPtr line; gaiaRingPtr ring; if (!geom) return; point = geom->FirstPoint; while (point) { normalizePoint (&(point->X), &(point->Y)); point = point->Next; } line = geom->FirstLinestring; while (line) { /* shifting LINESTRINGs */ for (iv = 0; iv < line->Points; iv++) { if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } normalizePoint (&x, &y); if (line->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (line->Coords, iv, x, y, z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (line->Coords, iv, x, y, m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (line->Coords, iv, x, y, z, m); } else { gaiaSetPoint (line->Coords, iv, x, y); } } line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* shifting POLYGONs */ ring = polyg->Exterior; for (iv = 0; iv < ring->Points; iv++) { /* shifting the EXTERIOR RING */ if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } normalizePoint (&x, &y); if (ring->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ring->Coords, iv, x, y, z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ring->Coords, iv, x, y, m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ring->Coords, iv, x, y, z, m); } else { gaiaSetPoint (ring->Coords, iv, x, y); } } for (ib = 0; ib < polyg->NumInteriors; ib++) { /* shifting the INTERIOR RINGs */ ring = polyg->Interiors + ib; for (iv = 0; iv < ring->Points; iv++) { if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } normalizePoint (&x, &y); if (ring->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ring->Coords, iv, x, y, z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ring->Coords, iv, x, y, m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ring->Coords, iv, x, y, z, m); } else { gaiaSetPoint (ring->Coords, iv, x, y); } } } polyg = polyg->Next; } gaiaMbrGeometry (geom); } GAIAGEO_DECLARE void gaiaScaleCoords (gaiaGeomCollPtr geom, double scale_x, double scale_y) { /* returns a geometry that is the old geometry with required scaling applied to coordinates */ int ib; int iv; double x; double y; double z; double m; gaiaPointPtr point; gaiaPolygonPtr polyg; gaiaLinestringPtr line; gaiaRingPtr ring; if (!geom) return; point = geom->FirstPoint; while (point) { /* scaling POINTs */ point->X *= scale_x; point->Y *= scale_y; point = point->Next; } line = geom->FirstLinestring; while (line) { /* scaling LINESTRINGs */ for (iv = 0; iv < line->Points; iv++) { if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } x *= scale_x; y *= scale_y; if (line->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (line->Coords, iv, x, y, z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (line->Coords, iv, x, y, m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (line->Coords, iv, x, y, z, m); } else { gaiaSetPoint (line->Coords, iv, x, y); } } line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* scaling POLYGONs */ ring = polyg->Exterior; for (iv = 0; iv < ring->Points; iv++) { /* scaling the EXTERIOR RING */ if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } x *= scale_x; y *= scale_y; if (ring->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ring->Coords, iv, x, y, z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ring->Coords, iv, x, y, m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ring->Coords, iv, x, y, z, m); } else { gaiaSetPoint (ring->Coords, iv, x, y); } } for (ib = 0; ib < polyg->NumInteriors; ib++) { /* scaling the INTERIOR RINGs */ ring = polyg->Interiors + ib; for (iv = 0; iv < ring->Points; iv++) { if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } x *= scale_x; y *= scale_y; if (ring->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ring->Coords, iv, x, y, z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ring->Coords, iv, x, y, m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ring->Coords, iv, x, y, z, m); } else { gaiaSetPoint (ring->Coords, iv, x, y); } } } polyg = polyg->Next; } gaiaMbrGeometry (geom); } GAIAGEO_DECLARE void gaiaRotateCoords (gaiaGeomCollPtr geom, double angle) { /* returns a geometry that is the old geometry with required rotation applied to coordinates */ int ib; int iv; double x; double y; double z; double m; double nx; double ny; double rad = angle * 0.0174532925199432958; double cosine = cos (rad); double sine = sin (rad); gaiaPointPtr point; gaiaPolygonPtr polyg; gaiaLinestringPtr line; gaiaRingPtr ring; if (!geom) return; point = geom->FirstPoint; while (point) { /* shifting POINTs */ x = point->X; y = point->Y; point->X = (x * cosine) + (y * sine); point->Y = (y * cosine) - (x * sine); point = point->Next; } line = geom->FirstLinestring; while (line) { /* rotating LINESTRINGs */ for (iv = 0; iv < line->Points; iv++) { if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } nx = (x * cosine) + (y * sine); ny = (y * cosine) - (x * sine); if (line->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (line->Coords, iv, nx, ny, z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (line->Coords, iv, nx, ny, m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (line->Coords, iv, nx, ny, z, m); } else { gaiaSetPoint (line->Coords, iv, nx, ny); } } line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* rotating POLYGONs */ ring = polyg->Exterior; for (iv = 0; iv < ring->Points; iv++) { /* rotating the EXTERIOR RING */ if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } nx = (x * cosine) + (y * sine); ny = (y * cosine) - (x * sine); if (ring->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ring->Coords, iv, nx, ny, z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ring->Coords, iv, nx, ny, m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ring->Coords, iv, nx, ny, z, m); } else { gaiaSetPoint (ring->Coords, iv, nx, ny); } } for (ib = 0; ib < polyg->NumInteriors; ib++) { /* rotating the INTERIOR RINGs */ ring = polyg->Interiors + ib; for (iv = 0; iv < ring->Points; iv++) { if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } nx = (x * cosine) + (y * sine); ny = (y * cosine) - (x * sine); if (ring->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ring->Coords, iv, nx, ny, z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ring->Coords, iv, nx, ny, m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ring->Coords, iv, nx, ny, z, m); } else { gaiaSetPoint (ring->Coords, iv, nx, ny); } } } polyg = polyg->Next; } gaiaMbrGeometry (geom); } GAIAGEO_DECLARE void gaiaReflectCoords (gaiaGeomCollPtr geom, int x_axis, int y_axis) { /* returns a geometry that is the old geometry with required reflection applied to coordinates */ int ib; int iv; double x; double y; double z = 0.0; double m = 0.0; gaiaPointPtr point; gaiaPolygonPtr polyg; gaiaLinestringPtr line; gaiaRingPtr ring; if (!geom) return; point = geom->FirstPoint; while (point) { /* reflecting POINTs */ if (x_axis) point->X *= -1.0; if (y_axis) point->Y *= -1.0; point = point->Next; } line = geom->FirstLinestring; while (line) { /* reflecting LINESTRINGs */ for (iv = 0; iv < line->Points; iv++) { if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } if (x_axis) x *= -1.0; if (y_axis) y *= -1.0; if (line->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (line->Coords, iv, x, y, z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (line->Coords, iv, x, y, m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (line->Coords, iv, x, y, z, m); } else { gaiaSetPoint (line->Coords, iv, x, y); } } line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* reflecting POLYGONs */ ring = polyg->Exterior; for (iv = 0; iv < ring->Points; iv++) { /* reflecting the EXTERIOR RING */ if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } if (x_axis) x *= -1.0; if (y_axis) y *= -1.0; if (ring->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ring->Coords, iv, x, y, z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ring->Coords, iv, x, y, m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ring->Coords, iv, x, y, z, m); } else { gaiaSetPoint (ring->Coords, iv, x, y); } } for (ib = 0; ib < polyg->NumInteriors; ib++) { /* reflecting the INTERIOR RINGs */ ring = polyg->Interiors + ib; for (iv = 0; iv < ring->Points; iv++) { if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } if (x_axis) x *= -1.0; if (y_axis) y *= -1.0; if (ring->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ring->Coords, iv, x, y, z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ring->Coords, iv, x, y, m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ring->Coords, iv, x, y, z, m); } else { gaiaSetPoint (ring->Coords, iv, x, y); } } } polyg = polyg->Next; } gaiaMbrGeometry (geom); } GAIAGEO_DECLARE void gaiaSwapCoords (gaiaGeomCollPtr geom) { /* returns a geometry that is the old geometry with swapped x- and y-coordinates */ int ib; int iv; double x; double y; double z; double m; double sv; gaiaPointPtr point; gaiaPolygonPtr polyg; gaiaLinestringPtr line; gaiaRingPtr ring; if (!geom) return; point = geom->FirstPoint; while (point) { /* swapping POINTs */ sv = point->X; point->X = point->Y; point->Y = sv; point = point->Next; } line = geom->FirstLinestring; while (line) { /* swapping LINESTRINGs */ for (iv = 0; iv < line->Points; iv++) { if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } sv = x; x = y; y = sv; if (line->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (line->Coords, iv, x, y, z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (line->Coords, iv, x, y, m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (line->Coords, iv, x, y, z, m); } else { gaiaSetPoint (line->Coords, iv, x, y); } } line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* swapping POLYGONs */ ring = polyg->Exterior; for (iv = 0; iv < ring->Points; iv++) { /* shifting the EXTERIOR RING */ if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } sv = x; x = y; y = sv; if (ring->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ring->Coords, iv, x, y, z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ring->Coords, iv, x, y, m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ring->Coords, iv, x, y, z, m); } else { gaiaSetPoint (ring->Coords, iv, x, y); } } for (ib = 0; ib < polyg->NumInteriors; ib++) { /* swapping the INTERIOR RINGs */ ring = polyg->Interiors + ib; for (iv = 0; iv < ring->Points; iv++) { if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } sv = x; x = y; y = sv; if (ring->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ring->Coords, iv, x, y, z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ring->Coords, iv, x, y, m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ring->Coords, iv, x, y, z, m); } else { gaiaSetPoint (ring->Coords, iv, x, y); } } } polyg = polyg->Next; } gaiaMbrGeometry (geom); } #ifndef OMIT_PROJ /* including PROJ.4 */ static int gaiaIsLongLat (char *str) { /* checks if we have to do with ANGLES if +proj=longlat is defined */ if (strstr (str, "+proj=longlat") != NULL) return 1; return 0; } GAIAGEO_DECLARE double gaiaRadsToDegs (double rads) { /* converts an ANGLE from radians to degrees */ return rads * RAD_TO_DEG; } GAIAGEO_DECLARE double gaiaDegsToRads (double degs) { /* converts an ANGLE from degrees to radians */ return degs * DEG_TO_RAD; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTransform (gaiaGeomCollPtr org, char *proj_from, char *proj_to) { /* creates a new GEOMETRY reprojecting coordinates from the original one */ int ib; int cnt; int i; double *xx; double *yy; double *zz; double *mm = NULL; double x; double y; double z = 0.0; double m = 0.0; int error = 0; int from_angle; int to_angle; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaLinestringPtr dst_ln; gaiaPolygonPtr pg; gaiaPolygonPtr dst_pg; gaiaRingPtr rng; gaiaRingPtr dst_rng; projPJ from_cs = pj_init_plus (proj_from); projPJ to_cs = pj_init_plus (proj_to); gaiaGeomCollPtr dst; if (!from_cs) { if (to_cs) pj_free (to_cs); return NULL; } if (!to_cs) { pj_free (from_cs); return NULL; } if (org->DimensionModel == GAIA_XY_Z) dst = gaiaAllocGeomCollXYZ (); else if (org->DimensionModel == GAIA_XY_M) dst = gaiaAllocGeomCollXYM (); else if (org->DimensionModel == GAIA_XY_Z_M) dst = gaiaAllocGeomCollXYZM (); else dst = gaiaAllocGeomColl (); /* setting up projection parameters */ from_angle = gaiaIsLongLat (proj_from); to_angle = gaiaIsLongLat (proj_to); cnt = 0; pt = org->FirstPoint; while (pt) { /* counting POINTs */ cnt++; pt = pt->Next; } if (cnt) { /* reprojecting POINTs */ xx = malloc (sizeof (double) * cnt); yy = malloc (sizeof (double) * cnt); zz = malloc (sizeof (double) * cnt); if (org->DimensionModel == GAIA_XY_M || org->DimensionModel == GAIA_XY_Z_M) mm = malloc (sizeof (double) * cnt); i = 0; pt = org->FirstPoint; while (pt) { /* inserting points to be converted in temporary arrays */ if (from_angle) { xx[i] = gaiaDegsToRads (pt->X); yy[i] = gaiaDegsToRads (pt->Y); } else { xx[i] = pt->X; yy[i] = pt->Y; } if (org->DimensionModel == GAIA_XY_Z || org->DimensionModel == GAIA_XY_Z_M) zz[i] = pt->Z; else zz[i] = 0.0; if (org->DimensionModel == GAIA_XY_M || org->DimensionModel == GAIA_XY_Z_M) mm[i] = pt->M; i++; pt = pt->Next; } /* applying reprojection */ if (pj_transform (from_cs, to_cs, cnt, 0, xx, yy, zz) == 0) { /* inserting the reprojected POINTs in the new GEOMETRY */ for (i = 0; i < cnt; i++) { if (to_angle) { x = gaiaRadsToDegs (xx[i]); y = gaiaRadsToDegs (yy[i]); } else { x = xx[i]; y = yy[i]; } if (org->DimensionModel == GAIA_XY_Z || org->DimensionModel == GAIA_XY_Z_M) z = zz[i]; else z = 0.0; if (org->DimensionModel == GAIA_XY_M || org->DimensionModel == GAIA_XY_Z_M) m = mm[i]; else m = 0.0; if (dst->DimensionModel == GAIA_XY_Z) gaiaAddPointToGeomCollXYZ (dst, x, y, z); else if (dst->DimensionModel == GAIA_XY_M) gaiaAddPointToGeomCollXYM (dst, x, y, m); else if (dst->DimensionModel == GAIA_XY_Z_M) gaiaAddPointToGeomCollXYZM (dst, x, y, z, m); else gaiaAddPointToGeomColl (dst, x, y); } } else error = 1; free (xx); free (yy); free (zz); if (org->DimensionModel == GAIA_XY_M || org->DimensionModel == GAIA_XY_Z_M) free (mm); } if (error) goto stop; ln = org->FirstLinestring; while (ln) { /* reprojecting LINESTRINGs */ cnt = ln->Points; xx = malloc (sizeof (double) * cnt); yy = malloc (sizeof (double) * cnt); zz = malloc (sizeof (double) * cnt); if (ln->DimensionModel == GAIA_XY_M || ln->DimensionModel == GAIA_XY_Z_M) mm = malloc (sizeof (double) * cnt); for (i = 0; i < cnt; i++) { /* inserting points to be converted in temporary arrays */ if (ln->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, i, &x, &y, &z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, i, &x, &y, &m); } else if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, i, &x, &y, &z, &m); } else { gaiaGetPoint (ln->Coords, i, &x, &y); } if (from_angle) { xx[i] = gaiaDegsToRads (x); yy[i] = gaiaDegsToRads (y); } else { xx[i] = x; yy[i] = y; } if (ln->DimensionModel == GAIA_XY_Z || ln->DimensionModel == GAIA_XY_Z_M) zz[i] = z; else zz[i] = 0.0; if (ln->DimensionModel == GAIA_XY_M || ln->DimensionModel == GAIA_XY_Z_M) mm[i] = m; } /* applying reprojection */ if (pj_transform (from_cs, to_cs, cnt, 0, xx, yy, zz) == 0) { /* inserting the reprojected LINESTRING in the new GEOMETRY */ dst_ln = gaiaAddLinestringToGeomColl (dst, cnt); for (i = 0; i < cnt; i++) { /* setting LINESTRING points */ if (to_angle) { x = gaiaRadsToDegs (xx[i]); y = gaiaRadsToDegs (yy[i]); } else { x = xx[i]; y = yy[i]; } if (ln->DimensionModel == GAIA_XY_Z || ln->DimensionModel == GAIA_XY_Z_M) z = zz[i]; else z = 0.0; if (ln->DimensionModel == GAIA_XY_M || ln->DimensionModel == GAIA_XY_Z_M) m = mm[i]; else m = 0.0; if (dst_ln->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (dst_ln->Coords, i, x, y, z); } else if (dst_ln->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (dst_ln->Coords, i, x, y, m); } else if (dst_ln->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (dst_ln->Coords, i, x, y, z, m); } else { gaiaSetPoint (dst_ln->Coords, i, x, y); } } } else error = 1; free (xx); free (yy); free (zz); if (ln->DimensionModel == GAIA_XY_M || ln->DimensionModel == GAIA_XY_Z_M) free (mm); if (error) goto stop; ln = ln->Next; } pg = org->FirstPolygon; while (pg) { /* reprojecting POLYGONs */ rng = pg->Exterior; cnt = rng->Points; dst_pg = gaiaAddPolygonToGeomColl (dst, cnt, pg->NumInteriors); xx = malloc (sizeof (double) * cnt); yy = malloc (sizeof (double) * cnt); zz = malloc (sizeof (double) * cnt); if (rng->DimensionModel == GAIA_XY_M || rng->DimensionModel == GAIA_XY_Z_M) mm = malloc (sizeof (double) * cnt); for (i = 0; i < cnt; i++) { /* inserting points to be converted in temporary arrays [EXTERIOR RING] */ if (rng->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, i, &x, &y, &z); } else if (rng->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, i, &x, &y, &m); } else if (rng->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, i, &x, &y, &z, &m); } else { gaiaGetPoint (rng->Coords, i, &x, &y); } if (from_angle) { xx[i] = gaiaDegsToRads (x); yy[i] = gaiaDegsToRads (y); } else { xx[i] = x; yy[i] = y; } if (rng->DimensionModel == GAIA_XY_Z || rng->DimensionModel == GAIA_XY_Z_M) zz[i] = z; else zz[i] = 0.0; if (rng->DimensionModel == GAIA_XY_M || rng->DimensionModel == GAIA_XY_Z_M) mm[i] = m; } /* applying reprojection */ if (pj_transform (from_cs, to_cs, cnt, 0, xx, yy, zz) == 0) { /* inserting the reprojected POLYGON in the new GEOMETRY */ dst_rng = dst_pg->Exterior; for (i = 0; i < cnt; i++) { /* setting EXTERIOR RING points */ if (to_angle) { x = gaiaRadsToDegs (xx[i]); y = gaiaRadsToDegs (yy[i]); } else { x = xx[i]; y = yy[i]; } if (rng->DimensionModel == GAIA_XY_Z || rng->DimensionModel == GAIA_XY_Z_M) z = zz[i]; else z = 0.0; if (rng->DimensionModel == GAIA_XY_M || rng->DimensionModel == GAIA_XY_Z_M) m = mm[i]; else m = 0.0; if (dst_rng->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (dst_rng->Coords, i, x, y, z); } else if (dst_rng->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (dst_rng->Coords, i, x, y, m); } else if (dst_rng->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (dst_rng->Coords, i, x, y, z, m); } else { gaiaSetPoint (dst_rng->Coords, i, x, y); } } } else error = 1; free (xx); free (yy); free (zz); if (rng->DimensionModel == GAIA_XY_M || rng->DimensionModel == GAIA_XY_Z_M) free (mm); if (error) goto stop; for (ib = 0; ib < pg->NumInteriors; ib++) { /* processing INTERIOR RINGS */ rng = pg->Interiors + ib; cnt = rng->Points; xx = malloc (sizeof (double) * cnt); yy = malloc (sizeof (double) * cnt); zz = malloc (sizeof (double) * cnt); if (rng->DimensionModel == GAIA_XY_M || rng->DimensionModel == GAIA_XY_Z_M) mm = malloc (sizeof (double) * cnt); for (i = 0; i < cnt; i++) { /* inserting points to be converted in temporary arrays [INTERIOR RING] */ if (rng->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, i, &x, &y, &z); } else if (rng->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, i, &x, &y, &m); } else if (rng->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, i, &x, &y, &z, &m); } else { gaiaGetPoint (rng->Coords, i, &x, &y); } if (from_angle) { xx[i] = gaiaDegsToRads (x); yy[i] = gaiaDegsToRads (y); } else { xx[i] = x; yy[i] = y; } if (rng->DimensionModel == GAIA_XY_Z || rng->DimensionModel == GAIA_XY_Z_M) zz[i] = z; else zz[i] = 0.0; if (rng->DimensionModel == GAIA_XY_M || rng->DimensionModel == GAIA_XY_Z_M) mm[i] = m; } /* applying reprojection */ if (pj_transform (from_cs, to_cs, cnt, 0, xx, yy, zz) == 0) { /* inserting the reprojected POLYGON in the new GEOMETRY */ dst_rng = gaiaAddInteriorRing (dst_pg, ib, cnt); for (i = 0; i < cnt; i++) { /* setting INTERIOR RING points */ if (to_angle) { x = gaiaRadsToDegs (xx[i]); y = gaiaRadsToDegs (yy[i]); } else { x = xx[i]; y = yy[i]; } if (rng->DimensionModel == GAIA_XY_Z || rng->DimensionModel == GAIA_XY_Z_M) z = zz[i]; else z = 0.0; if (rng->DimensionModel == GAIA_XY_M || rng->DimensionModel == GAIA_XY_Z_M) m = mm[i]; else m = 0.0; if (dst_rng->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (dst_rng->Coords, i, x, y, z); } else if (dst_rng->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (dst_rng->Coords, i, x, y, m); } else if (dst_rng->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (dst_rng->Coords, i, x, y, z, m); } else { gaiaSetPoint (dst_rng->Coords, i, x, y); } } } else error = 1; free (xx); free (yy); free (zz); if (rng->DimensionModel == GAIA_XY_M || rng->DimensionModel == GAIA_XY_Z_M) free (mm); if (error) goto stop; } pg = pg->Next; } /* destroying the PROJ4 params */ stop: pj_free (from_cs); pj_free (to_cs); if (error) { /* some error occurred */ gaiaPointPtr pP; gaiaPointPtr pPn; gaiaLinestringPtr pL; gaiaLinestringPtr pLn; gaiaPolygonPtr pA; gaiaPolygonPtr pAn; pP = dst->FirstPoint; while (pP != NULL) { pPn = pP->Next; gaiaFreePoint (pP); pP = pPn; } pL = dst->FirstLinestring; while (pL != NULL) { pLn = pL->Next; gaiaFreeLinestring (pL); pL = pLn; } pA = dst->FirstPolygon; while (pA != NULL) { pAn = pA->Next; gaiaFreePolygon (pA); pA = pAn; } dst->FirstPoint = NULL; dst->LastPoint = NULL; dst->FirstLinestring = NULL; dst->LastLinestring = NULL; dst->FirstPolygon = NULL; dst->LastPolygon = NULL; } if (dst) { gaiaMbrGeometry (dst); dst->DeclaredType = org->DeclaredType; } return dst; } #endif /* end including PROJ.4 */ libspatialite-4.1.1/src/gaiageo/Ewkt.c0000664000175000017500000027671412163502133014544 00000000000000/* Driver template for the LEMON parser generator. ** The author disclaims copyright to this source code. */ /* First off, code is included that follows the "include" declaration ** in the input grammar file. */ #include /* Next is all token values, in a form suitable for use by makeheaders. ** This section will be null unless lemon is run with the -m switch. */ /* ** These constants (all generated automatically by the parser generator) ** specify the various kinds of tokens (terminals) that the parser ** understands. ** ** Each symbol here is a terminal symbol in the grammar. */ /* Make sure the INTERFACE macro is defined. */ #ifndef INTERFACE #define INTERFACE 1 #endif /* The next thing included is series of defines which control ** various aspects of the generated parser. ** YYCODETYPE is the data type used for storing terminal ** and nonterminal numbers. "unsigned char" is ** used if there are fewer than 250 terminals ** and nonterminals. "int" is used otherwise. ** YYNOCODE is a number of type YYCODETYPE which corresponds ** to no legal terminal or nonterminal number. This ** number is used to fill in empty slots of the hash ** table. ** YYFALLBACK If defined, this indicates that one or more tokens ** have fall-back values which should be used if the ** original value of the token will not parse. ** YYACTIONTYPE is the data type used for storing terminal ** and nonterminal numbers. "unsigned char" is ** used if there are fewer than 250 rules and ** states combined. "int" is used otherwise. ** ParseTOKENTYPE is the data type used for minor tokens given ** directly to the parser from the tokenizer. ** YYMINORTYPE is the data type used for all minor tokens. ** This is typically a union of many types, one of ** which is ParseTOKENTYPE. The entry in the union ** for base tokens is called "yy0". ** YYSTACKDEPTH is the maximum depth of the parser's stack. If ** zero the stack is dynamically sized using realloc() ** ParseARG_SDECL A static variable declaration for the %extra_argument ** ParseARG_PDECL A parameter declaration for the %extra_argument ** ParseARG_STORE Code to store %extra_argument into yypParser ** ParseARG_FETCH Code to extract %extra_argument from yypParser ** YYNSTATE the combined number of states. ** YYNRULE the number of rules in the grammar ** YYERRORSYMBOL is the code number of the error symbol. If not ** defined, then do no error processing. */ #define YYCODETYPE unsigned char #define YYNOCODE 117 #define YYACTIONTYPE unsigned short int #define ParseTOKENTYPE void * typedef union { int yyinit; ParseTOKENTYPE yy0; } YYMINORTYPE; #ifndef YYSTACKDEPTH #define YYSTACKDEPTH 1000000 #endif #define ParseARG_SDECL struct ewkt_data *p_data ; #define ParseARG_PDECL , struct ewkt_data *p_data #define ParseARG_FETCH struct ewkt_data *p_data = yypParser->p_data #define ParseARG_STORE yypParser->p_data = p_data #define YYNSTATE 508 #define YYNRULE 199 #define YY_NO_ACTION (YYNSTATE+YYNRULE+2) #define YY_ACCEPT_ACTION (YYNSTATE+YYNRULE+1) #define YY_ERROR_ACTION (YYNSTATE+YYNRULE) /* The yyzerominor constant is used to initialize instances of ** YYMINORTYPE objects to zero. */ static const YYMINORTYPE yyzerominor = { 0 }; /* Define the yytestcase() macro to be a no-op if is not already defined ** otherwise. ** ** Applications can choose to define yytestcase() in the %include section ** to a macro that can assist in verifying code coverage. For production ** code the yytestcase() macro should be turned off. But it is useful ** for testing. */ #ifndef yytestcase #define yytestcase(X) #endif /* Next are the tables used to determine what action to take based on the ** current state and lookahead token. These tables are used to implement ** functions that take a state number and lookahead value and return an ** action integer. ** ** Suppose the action integer is N. Then the action is determined as ** follows ** ** 0 <= N < YYNSTATE Shift N. That is, push the lookahead ** token onto the stack and goto state N. ** ** YYNSTATE <= N < YYNSTATE+YYNRULE Reduce by rule N-YYNSTATE. ** ** N == YYNSTATE+YYNRULE A syntax error has occurred. ** ** N == YYNSTATE+YYNRULE+1 The parser accepts its input. ** ** N == YYNSTATE+YYNRULE+2 No such action. Denotes unused ** slots in the yy_action[] table. ** ** The action table is constructed as a single large table named yy_action[]. ** Given state S and lookahead X, the action is computed as ** ** yy_action[ yy_shift_ofst[S] + X ] ** ** If the index value yy_shift_ofst[S]+X is out of range or if the value ** yy_lookahead[yy_shift_ofst[S]+X] is not equal to X or if yy_shift_ofst[S] ** is equal to YY_SHIFT_USE_DFLT, it means that the action is not in the table ** and that yy_default[S] should be used instead. ** ** The formula above is for computing the action when the lookahead is ** a terminal symbol. If the lookahead is a non-terminal (as occurs after ** a reduce action) then the yy_reduce_ofst[] array is used in place of ** the yy_shift_ofst[] array and YY_REDUCE_USE_DFLT is used in place of ** YY_SHIFT_USE_DFLT. ** ** The following are the tables generated in this section: ** ** yy_action[] A single table containing all actions. ** yy_lookahead[] A table containing the lookahead for each entry in ** yy_action. Used to detect hash collisions. ** yy_shift_ofst[] For each state, the offset into yy_action for ** shifting terminals. ** yy_reduce_ofst[] For each state, the offset into yy_action for ** shifting non-terminals after a reduce. ** yy_default[] Default action for each state. */ static const YYACTIONTYPE yy_action[] = { /* 0 */ 249, 336, 337, 338, 339, 340, 341, 342, 343, 344, /* 10 */ 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, /* 20 */ 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, /* 30 */ 365, 366, 163, 201, 224, 178, 202, 225, 179, 203, /* 40 */ 226, 180, 204, 227, 181, 205, 228, 182, 206, 229, /* 50 */ 508, 101, 250, 128, 371, 254, 66, 129, 19, 80, /* 60 */ 20, 95, 22, 124, 23, 141, 25, 158, 27, 232, /* 70 */ 250, 254, 708, 1, 13, 80, 19, 95, 20, 124, /* 80 */ 22, 141, 23, 158, 25, 247, 28, 103, 104, 371, /* 90 */ 105, 106, 63, 305, 111, 117, 305, 255, 21, 164, /* 100 */ 66, 165, 164, 166, 165, 167, 166, 169, 167, 177, /* 110 */ 169, 313, 183, 374, 313, 375, 376, 187, 14, 188, /* 120 */ 187, 189, 188, 190, 189, 192, 190, 200, 192, 321, /* 130 */ 207, 404, 321, 405, 406, 210, 62, 211, 210, 212, /* 140 */ 211, 213, 212, 215, 213, 223, 215, 254, 230, 3, /* 150 */ 24, 80, 104, 95, 26, 124, 71, 141, 111, 158, /* 160 */ 171, 240, 2, 172, 194, 163, 173, 195, 178, 174, /* 170 */ 196, 179, 175, 197, 180, 176, 198, 181, 217, 199, /* 180 */ 182, 218, 201, 125, 219, 202, 371, 220, 203, 224, /* 190 */ 221, 204, 225, 222, 205, 226, 108, 206, 227, 371, /* 200 */ 388, 228, 389, 390, 229, 284, 233, 242, 243, 244, /* 210 */ 245, 246, 234, 235, 236, 237, 238, 239, 31, 113, /* 220 */ 251, 252, 371, 253, 83, 63, 256, 258, 87, 260, /* 230 */ 91, 63, 265, 270, 103, 275, 257, 63, 106, 68, /* 240 */ 105, 78, 75, 75, 424, 117, 425, 426, 132, 119, /* 250 */ 135, 138, 371, 436, 64, 437, 438, 146, 69, 150, /* 260 */ 154, 65, 370, 68, 448, 70, 449, 450, 67, 184, /* 270 */ 68, 186, 209, 73, 74, 373, 33, 71, 71, 79, /* 280 */ 262, 75, 81, 66, 82, 66, 265, 66, 266, 267, /* 290 */ 85, 68, 270, 68, 68, 68, 71, 271, 272, 89, /* 300 */ 258, 71, 71, 71, 71, 275, 276, 75, 75, 277, /* 310 */ 93, 75, 75, 280, 281, 282, 66, 66, 66, 377, /* 320 */ 256, 99, 251, 378, 66, 68, 260, 68, 75, 252, /* 330 */ 253, 72, 75, 71, 407, 408, 371, 371, 380, 76, /* 340 */ 259, 77, 35, 36, 381, 38, 261, 383, 84, 263, /* 350 */ 385, 386, 39, 88, 268, 43, 47, 92, 96, 273, /* 360 */ 51, 98, 102, 278, 264, 86, 61, 283, 393, 269, /* 370 */ 287, 285, 90, 400, 286, 396, 107, 97, 274, 94, /* 380 */ 279, 399, 100, 289, 403, 108, 110, 413, 109, 288, /* 390 */ 112, 291, 113, 114, 116, 118, 115, 290, 119, 15, /* 400 */ 415, 419, 125, 120, 121, 123, 292, 122, 126, 130, /* 410 */ 133, 127, 417, 296, 55, 136, 293, 428, 297, 56, /* 420 */ 430, 131, 139, 298, 295, 57, 422, 294, 142, 148, /* 430 */ 144, 147, 301, 152, 134, 151, 155, 137, 156, 140, /* 440 */ 143, 159, 709, 145, 161, 16, 4, 168, 170, 149, /* 450 */ 5, 17, 709, 6, 83, 153, 709, 191, 193, 433, /* 460 */ 87, 709, 160, 157, 432, 299, 91, 162, 435, 374, /* 470 */ 388, 7, 132, 709, 709, 709, 300, 709, 8, 440, /* 480 */ 146, 404, 709, 18, 442, 214, 302, 445, 444, 216, /* 490 */ 424, 709, 303, 709, 709, 709, 447, 709, 709, 709, /* 500 */ 709, 436, 709, 709, 304, 709, 709, 375, 9, 709, /* 510 */ 135, 709, 389, 709, 709, 709, 709, 452, 453, 454, /* 520 */ 709, 455, 456, 709, 457, 185, 306, 312, 709, 150, /* 530 */ 307, 308, 309, 310, 425, 184, 10, 11, 709, 405, /* 540 */ 709, 709, 709, 311, 464, 709, 709, 709, 709, 709, /* 550 */ 709, 709, 437, 709, 376, 466, 390, 709, 335, 709, /* 560 */ 138, 709, 12, 709, 709, 367, 467, 154, 709, 29, /* 570 */ 468, 208, 469, 470, 471, 406, 426, 314, 315, 316, /* 580 */ 317, 318, 186, 319, 478, 368, 369, 372, 320, 379, /* 590 */ 438, 30, 382, 32, 34, 384, 37, 387, 391, 40, /* 600 */ 709, 392, 41, 42, 480, 481, 482, 394, 483, 44, /* 610 */ 58, 45, 484, 46, 395, 48, 397, 485, 59, 231, /* 620 */ 49, 50, 398, 52, 322, 401, 323, 53, 324, 54, /* 630 */ 402, 409, 493, 325, 326, 327, 209, 492, 410, 328, /* 640 */ 495, 496, 411, 412, 497, 498, 241, 499, 500, 501, /* 650 */ 407, 329, 414, 330, 408, 416, 418, 331, 332, 420, /* 660 */ 421, 423, 427, 429, 248, 431, 333, 434, 439, 334, /* 670 */ 441, 443, 446, 451, 458, 459, 460, 461, 462, 463, /* 680 */ 465, 472, 473, 474, 475, 476, 477, 479, 60, 709, /* 690 */ 486, 487, 488, 489, 709, 490, 491, 494, 502, 709, /* 700 */ 503, 504, 505, 506, 709, 507, }; static const YYCODETYPE yy_lookahead[] = { /* 0 */ 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, /* 10 */ 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, /* 20 */ 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, /* 30 */ 53, 54, 27, 28, 29, 30, 31, 32, 33, 34, /* 40 */ 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, /* 50 */ 0, 3, 2, 57, 6, 5, 60, 61, 8, 9, /* 60 */ 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, /* 70 */ 2, 5, 21, 22, 3, 9, 8, 11, 10, 13, /* 80 */ 12, 15, 14, 17, 16, 19, 18, 55, 56, 6, /* 90 */ 58, 59, 60, 2, 62, 63, 2, 57, 3, 8, /* 100 */ 60, 10, 8, 12, 10, 14, 12, 16, 14, 18, /* 110 */ 16, 2, 18, 72, 2, 74, 75, 8, 3, 10, /* 120 */ 8, 12, 10, 14, 12, 16, 14, 18, 16, 2, /* 130 */ 18, 88, 2, 90, 91, 8, 60, 10, 8, 12, /* 140 */ 10, 14, 12, 16, 14, 18, 16, 5, 18, 3, /* 150 */ 3, 9, 56, 11, 3, 13, 60, 15, 62, 17, /* 160 */ 27, 19, 3, 30, 28, 27, 33, 31, 30, 36, /* 170 */ 34, 33, 39, 37, 36, 42, 40, 39, 29, 43, /* 180 */ 42, 32, 28, 3, 35, 31, 6, 38, 34, 29, /* 190 */ 41, 37, 32, 44, 40, 35, 3, 43, 38, 6, /* 200 */ 76, 41, 78, 79, 44, 60, 48, 49, 50, 51, /* 210 */ 52, 53, 48, 49, 50, 51, 52, 53, 7, 3, /* 220 */ 55, 56, 6, 58, 80, 60, 55, 56, 84, 58, /* 230 */ 86, 60, 55, 56, 55, 58, 68, 60, 59, 60, /* 240 */ 58, 58, 60, 60, 92, 63, 94, 95, 72, 3, /* 250 */ 74, 75, 6, 100, 60, 102, 103, 76, 55, 78, /* 260 */ 79, 60, 60, 60, 108, 55, 110, 111, 60, 108, /* 270 */ 60, 110, 111, 56, 56, 60, 7, 60, 60, 58, /* 280 */ 57, 60, 57, 60, 57, 60, 55, 60, 55, 55, /* 290 */ 55, 60, 56, 60, 60, 60, 60, 56, 56, 56, /* 300 */ 56, 60, 60, 60, 60, 58, 58, 60, 60, 58, /* 310 */ 58, 60, 60, 57, 57, 57, 60, 60, 60, 60, /* 320 */ 55, 57, 55, 68, 60, 60, 58, 60, 60, 56, /* 330 */ 58, 60, 60, 60, 4, 4, 6, 6, 60, 60, /* 340 */ 70, 60, 7, 3, 70, 7, 71, 71, 7, 69, /* 350 */ 73, 69, 3, 7, 68, 3, 3, 7, 3, 70, /* 360 */ 3, 7, 60, 71, 81, 80, 60, 69, 81, 85, /* 370 */ 71, 68, 84, 77, 70, 85, 7, 82, 87, 86, /* 380 */ 83, 87, 82, 64, 83, 3, 59, 64, 60, 60, /* 390 */ 7, 66, 3, 60, 62, 7, 60, 60, 3, 3, /* 400 */ 66, 89, 3, 60, 60, 63, 67, 60, 60, 7, /* 410 */ 7, 60, 67, 96, 3, 7, 60, 96, 98, 3, /* 420 */ 98, 61, 7, 99, 65, 3, 65, 69, 3, 3, /* 430 */ 7, 7, 106, 3, 72, 7, 7, 74, 3, 75, /* 440 */ 73, 3, 116, 73, 7, 3, 7, 3, 3, 76, /* 450 */ 3, 3, 116, 7, 80, 78, 116, 3, 3, 93, /* 460 */ 84, 116, 77, 79, 99, 97, 86, 77, 97, 72, /* 470 */ 76, 3, 72, 116, 116, 116, 104, 116, 7, 104, /* 480 */ 76, 88, 116, 3, 106, 3, 107, 101, 107, 3, /* 490 */ 92, 116, 105, 116, 116, 116, 105, 116, 116, 116, /* 500 */ 116, 100, 116, 116, 112, 116, 116, 74, 3, 116, /* 510 */ 74, 116, 78, 116, 116, 116, 116, 112, 112, 112, /* 520 */ 116, 112, 112, 116, 112, 108, 112, 114, 116, 78, /* 530 */ 112, 112, 112, 112, 94, 108, 3, 7, 116, 90, /* 540 */ 116, 116, 116, 112, 112, 116, 116, 116, 116, 116, /* 550 */ 116, 116, 102, 116, 75, 114, 79, 116, 1, 116, /* 560 */ 75, 116, 3, 116, 116, 4, 114, 79, 116, 3, /* 570 */ 114, 110, 114, 114, 114, 91, 95, 114, 114, 114, /* 580 */ 114, 114, 110, 114, 114, 4, 4, 4, 115, 4, /* 590 */ 103, 7, 4, 7, 7, 4, 7, 4, 4, 7, /* 600 */ 116, 4, 7, 7, 115, 115, 115, 4, 115, 7, /* 610 */ 3, 7, 115, 7, 4, 7, 4, 115, 3, 111, /* 620 */ 7, 7, 4, 7, 115, 4, 115, 7, 115, 7, /* 630 */ 4, 4, 109, 115, 115, 115, 111, 115, 4, 113, /* 640 */ 113, 113, 4, 4, 113, 113, 109, 113, 113, 113, /* 650 */ 4, 113, 4, 113, 4, 4, 4, 113, 113, 4, /* 660 */ 4, 4, 4, 4, 109, 4, 113, 4, 4, 113, /* 670 */ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, /* 680 */ 4, 4, 4, 4, 4, 4, 4, 4, 3, 116, /* 690 */ 4, 4, 4, 4, 116, 4, 4, 4, 4, 116, /* 700 */ 4, 4, 4, 4, 116, 4, }; #define YY_SHIFT_USE_DFLT (-1) #define YY_SHIFT_MAX 334 static const short yy_shift_ofst[] = { /* 0 */ -1, 50, 68, 48, 91, 94, 109, 112, 127, 130, /* 10 */ 66, 142, 83, 83, 83, 180, 193, 216, 246, 71, /* 20 */ 95, 115, 146, 147, 71, 151, 95, 159, 159, 83, /* 30 */ 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, /* 40 */ 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, /* 50 */ 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, /* 60 */ 83, 330, 331, 83, 83, 83, 83, 83, 83, 211, /* 70 */ 211, 83, 83, 269, 269, 83, 83, 83, 335, 335, /* 80 */ 340, 338, 338, 341, 349, 211, 341, 346, 352, 269, /* 90 */ 346, 350, 353, 335, 350, 355, 357, 354, 357, 338, /* 100 */ 354, 83, 83, 211, 269, 335, 369, 382, 83, 83, /* 110 */ 369, 383, 389, 83, 83, 83, 383, 388, 395, 83, /* 120 */ 83, 83, 83, 388, 396, 83, 83, 83, 338, 402, /* 130 */ 399, 402, 403, 411, 403, 408, 416, 408, 415, 422, /* 140 */ 415, 425, 340, 423, 340, 423, 424, 426, 349, 424, /* 150 */ 428, 430, 352, 428, 429, 435, 353, 429, 438, 355, /* 160 */ 437, 355, 437, 439, 411, 426, 442, 444, 411, 445, /* 170 */ 426, 439, 439, 439, 439, 439, 439, 447, 439, 439, /* 180 */ 439, 439, 439, 447, 439, 439, 446, 416, 430, 448, /* 190 */ 454, 416, 455, 430, 446, 446, 446, 446, 446, 446, /* 200 */ 468, 446, 446, 446, 446, 446, 446, 468, 446, 471, /* 210 */ 422, 435, 480, 482, 422, 486, 435, 471, 471, 471, /* 220 */ 471, 471, 471, 505, 471, 471, 471, 471, 471, 471, /* 230 */ 505, 471, 533, 530, 530, 530, 530, 530, 530, 530, /* 240 */ 533, 530, 530, 530, 530, 530, 530, 533, 530, 557, /* 250 */ 559, 561, 581, 582, 566, 583, 584, 585, 586, 588, /* 260 */ 587, 591, 589, 593, 594, 592, 595, 596, 597, 603, /* 270 */ 602, 604, 606, 610, 612, 608, 613, 614, 618, 621, /* 280 */ 616, 620, 622, 626, 627, 634, 638, 639, 646, 648, /* 290 */ 650, 651, 652, 655, 656, 657, 658, 659, 661, 663, /* 300 */ 664, 666, 667, 668, 669, 607, 670, 671, 672, 673, /* 310 */ 674, 675, 676, 615, 677, 678, 679, 680, 681, 682, /* 320 */ 683, 685, 686, 687, 688, 689, 691, 692, 693, 694, /* 330 */ 696, 697, 698, 699, 701, }; #define YY_REDUCE_USE_DFLT (-24) #define YY_REDUCE_MAX 248 static const short yy_reduce_ofst[] = { /* 0 */ 51, -23, 5, 32, 133, 138, 136, 154, 149, 160, /* 10 */ 158, 164, 165, 171, 177, -4, 179, 96, 182, 41, /* 20 */ 124, 144, 43, 152, 176, 153, 181, 156, 161, 40, /* 30 */ 203, 210, 217, 218, 183, 221, 223, 225, 227, 231, /* 40 */ 233, 234, 235, 236, 241, 242, 243, 247, 248, 251, /* 50 */ 252, 256, 257, 258, 264, 265, 244, 268, 267, 273, /* 60 */ 272, 76, 145, 194, 201, 202, 208, 215, 259, 168, /* 70 */ 255, 271, 278, 270, 274, 279, 281, 202, 275, 276, /* 80 */ 277, 280, 282, 283, 285, 286, 287, 284, 288, 289, /* 90 */ 290, 291, 293, 292, 294, 296, 295, 297, 300, 298, /* 100 */ 301, 302, 306, 303, 304, 299, 319, 327, 328, 329, /* 110 */ 323, 325, 332, 333, 336, 337, 334, 339, 342, 343, /* 120 */ 344, 347, 145, 345, 312, 348, 351, 356, 358, 359, /* 130 */ 360, 361, 317, 362, 321, 320, 363, 322, 324, 364, /* 140 */ 365, 366, 367, 368, 370, 371, 372, 373, 374, 375, /* 150 */ 326, 377, 376, 378, 379, 384, 380, 381, 386, 385, /* 160 */ 387, 390, 391, 392, 397, 394, 393, 398, 400, 401, /* 170 */ 404, 405, 406, 407, 409, 410, 412, 417, 414, 418, /* 180 */ 419, 420, 421, 427, 431, 432, 413, 433, 434, 449, /* 190 */ 440, 436, 450, 451, 441, 452, 456, 458, 459, 460, /* 200 */ 461, 463, 464, 465, 466, 467, 469, 472, 470, 473, /* 210 */ 479, 477, 484, 481, 485, 487, 488, 489, 490, 491, /* 220 */ 493, 497, 502, 508, 509, 511, 513, 518, 519, 520, /* 230 */ 525, 522, 523, 526, 527, 528, 531, 532, 534, 535, /* 240 */ 537, 536, 538, 540, 544, 545, 553, 555, 556, }; static const YYACTIONTYPE yy_default[] = { /* 0 */ 509, 707, 707, 707, 707, 707, 707, 707, 707, 707, /* 10 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, /* 20 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, /* 30 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, /* 40 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, /* 50 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, /* 60 */ 707, 707, 707, 707, 550, 552, 707, 707, 707, 563, /* 70 */ 563, 707, 707, 567, 567, 707, 707, 707, 569, 569, /* 80 */ 707, 565, 565, 588, 707, 563, 588, 594, 707, 567, /* 90 */ 594, 597, 707, 569, 597, 707, 707, 591, 707, 565, /* 100 */ 591, 707, 707, 563, 567, 569, 555, 707, 707, 707, /* 110 */ 555, 559, 707, 707, 707, 707, 559, 561, 707, 707, /* 120 */ 707, 707, 707, 561, 707, 707, 707, 707, 565, 557, /* 130 */ 707, 557, 616, 707, 616, 622, 707, 622, 625, 707, /* 140 */ 625, 707, 707, 619, 707, 619, 632, 707, 707, 632, /* 150 */ 638, 707, 707, 638, 641, 707, 707, 641, 707, 707, /* 160 */ 635, 707, 635, 654, 707, 707, 707, 707, 707, 707, /* 170 */ 707, 654, 654, 654, 654, 654, 654, 707, 654, 654, /* 180 */ 654, 654, 654, 707, 654, 654, 684, 707, 707, 707, /* 190 */ 707, 707, 707, 707, 684, 684, 684, 684, 684, 684, /* 200 */ 707, 684, 684, 684, 684, 684, 684, 707, 684, 699, /* 210 */ 707, 707, 707, 707, 707, 707, 707, 699, 699, 699, /* 220 */ 699, 699, 699, 707, 699, 699, 699, 699, 699, 699, /* 230 */ 707, 699, 707, 669, 669, 669, 669, 669, 669, 669, /* 240 */ 707, 669, 669, 669, 669, 669, 669, 707, 669, 707, /* 250 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, /* 260 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, /* 270 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, /* 280 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, /* 290 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, /* 300 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, /* 310 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, /* 320 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, /* 330 */ 707, 707, 707, 707, 707, 510, 511, 512, 513, 514, /* 340 */ 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, /* 350 */ 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, /* 360 */ 535, 536, 537, 538, 539, 540, 541, 542, 543, 545, /* 370 */ 553, 554, 544, 551, 571, 573, 574, 550, 564, 575, /* 380 */ 552, 568, 577, 570, 578, 572, 566, 576, 579, 581, /* 390 */ 582, 583, 587, 589, 585, 593, 595, 586, 596, 598, /* 400 */ 580, 584, 590, 592, 599, 601, 602, 546, 548, 549, /* 410 */ 603, 605, 606, 556, 607, 560, 609, 562, 610, 600, /* 420 */ 547, 604, 558, 608, 611, 613, 614, 615, 617, 621, /* 430 */ 623, 624, 626, 612, 618, 620, 627, 629, 630, 631, /* 440 */ 633, 637, 639, 640, 642, 628, 634, 636, 643, 645, /* 450 */ 646, 647, 655, 656, 657, 658, 659, 660, 648, 649, /* 460 */ 650, 651, 652, 653, 661, 683, 685, 686, 687, 688, /* 470 */ 689, 690, 677, 678, 679, 680, 681, 682, 691, 698, /* 480 */ 700, 701, 702, 703, 704, 705, 692, 693, 694, 695, /* 490 */ 696, 697, 706, 644, 662, 670, 671, 672, 673, 674, /* 500 */ 675, 676, 663, 664, 665, 666, 667, 668, }; #define YY_SZ_ACTTAB (int)(sizeof(yy_action)/sizeof(yy_action[0])) /* The next table maps tokens into fallback tokens. If a construct ** like the following: ** ** %fallback ID X Y Z. ** ** appears in the grammar, then ID becomes a fallback token for X, Y, ** and Z. Whenever one of the tokens X, Y, or Z is input to the parser ** but it does not parse, the type of the token is changed to ID and ** the parse is retried before an error is thrown. */ #ifdef YYFALLBACK static const YYCODETYPE yyFallback[] = { }; #endif /* YYFALLBACK */ /* The following structure represents a single element of the ** parser's stack. Information stored includes: ** ** + The state number for the parser at this level of the stack. ** ** + The value of the token stored at this level of the stack. ** (In other words, the "major" token.) ** ** + The semantic value stored at this level of the stack. This is ** the information used by the action routines in the grammar. ** It is sometimes called the "minor" token. */ struct yyStackEntry { YYACTIONTYPE stateno; /* The state-number */ YYCODETYPE major; /* The major token value. This is the code ** number for the token at this stack level */ YYMINORTYPE minor; /* The user-supplied minor token value. This ** is the value of the token */ }; typedef struct yyStackEntry yyStackEntry; /* The state of the parser is completely contained in an instance of ** the following structure */ struct yyParser { int yyidx; /* Index of top element in stack */ #ifdef YYTRACKMAXSTACKDEPTH int yyidxMax; /* Maximum value of yyidx */ #endif int yyerrcnt; /* Shifts left before out of the error */ ParseARG_SDECL /* A place to hold %extra_argument */ #if YYSTACKDEPTH<=0 int yystksz; /* Current side of the stack */ yyStackEntry *yystack; /* The parser's stack */ #else yyStackEntry yystack[YYSTACKDEPTH]; /* The parser's stack */ #endif }; typedef struct yyParser yyParser; #ifndef NDEBUG #include static FILE *yyTraceFILE = 0; static char *yyTracePrompt = 0; #endif /* NDEBUG */ #ifndef NDEBUG /* ** Turn parser tracing on by giving a stream to which to write the trace ** and a prompt to preface each trace message. Tracing is turned off ** by making either argument NULL ** ** Inputs: **
    **
  • A FILE* to which trace output should be written. ** If NULL, then tracing is turned off. **
  • A prefix string written at the beginning of every ** line of trace output. If NULL, then tracing is ** turned off. **
** ** Outputs: ** None. */ void ParseTrace (FILE * TraceFILE, char *zTracePrompt) { yyTraceFILE = TraceFILE; yyTracePrompt = zTracePrompt; if (yyTraceFILE == 0) yyTracePrompt = 0; else if (yyTracePrompt == 0) yyTraceFILE = 0; } #endif /* NDEBUG */ #ifndef NDEBUG /* For tracing shifts, the names of all terminals and nonterminals ** are required. The following table supplies these names */ static const char *const yyTokenName[] = { "$", "EWKT_NEWLINE", "EWKT_POINT", "EWKT_OPEN_BRACKET", "EWKT_CLOSE_BRACKET", "EWKT_POINT_M", "EWKT_NUM", "EWKT_COMMA", "EWKT_LINESTRING", "EWKT_LINESTRING_M", "EWKT_POLYGON", "EWKT_POLYGON_M", "EWKT_MULTIPOINT", "EWKT_MULTIPOINT_M", "EWKT_MULTILINESTRING", "EWKT_MULTILINESTRING_M", "EWKT_MULTIPOLYGON", "EWKT_MULTIPOLYGON_M", "EWKT_GEOMETRYCOLLECTION", "EWKT_GEOMETRYCOLLECTION_M", "error", "main", "in", "state", "program", "geo_text", "geo_textm", "point", "pointz", "pointzm", "linestring", "linestringz", "linestringzm", "polygon", "polygonz", "polygonzm", "multipoint", "multipointz", "multipointzm", "multilinestring", "multilinestringz", "multilinestringzm", "multipolygon", "multipolygonz", "multipolygonzm", "geocoll", "geocollz", "geocollzm", "pointm", "linestringm", "polygonm", "multipointm", "multilinestringm", "multipolygonm", "geocollm", "point_coordxy", "point_coordxyz", "point_coordxym", "point_coordxyzm", "point_brkt_coordxy", "coord", "point_brkt_coordxym", "point_brkt_coordxyz", "point_brkt_coordxyzm", "extra_brkt_pointsxy", "extra_brkt_pointsxym", "extra_brkt_pointsxyz", "extra_brkt_pointsxyzm", "extra_pointsxy", "extra_pointsxym", "extra_pointsxyz", "extra_pointsxyzm", "linestring_text", "linestring_textm", "linestring_textz", "linestring_textzm", "polygon_text", "polygon_textm", "polygon_textz", "polygon_textzm", "ring", "extra_rings", "ringm", "extra_ringsm", "ringz", "extra_ringsz", "ringzm", "extra_ringszm", "multipoint_text", "multipoint_textm", "multipoint_textz", "multipoint_textzm", "multilinestring_text", "multilinestring_textm", "multilinestring_textz", "multilinestring_textzm", "multilinestring_text2", "multilinestring_textm2", "multilinestring_textz2", "multilinestring_textzm2", "multipolygon_text", "multipolygon_textm", "multipolygon_textz", "multipolygon_textzm", "multipolygon_text2", "multipolygon_textm2", "multipolygon_textz2", "multipolygon_textzm2", "geocoll_text", "geocoll_textm", "geocoll_textz", "geocoll_textzm", "geocoll_text2", "geocoll_textm2", "geocoll_textz2", "geocoll_textzm2", }; #endif /* NDEBUG */ #ifndef NDEBUG /* For tracing reduce actions, the names of all rules are required. */ static const char *const yyRuleName[] = { /* 0 */ "main ::= in", /* 1 */ "in ::=", /* 2 */ "in ::= in state EWKT_NEWLINE", /* 3 */ "state ::= program", /* 4 */ "program ::= geo_text", /* 5 */ "program ::= geo_textm", /* 6 */ "geo_text ::= point", /* 7 */ "geo_text ::= pointz", /* 8 */ "geo_text ::= pointzm", /* 9 */ "geo_text ::= linestring", /* 10 */ "geo_text ::= linestringz", /* 11 */ "geo_text ::= linestringzm", /* 12 */ "geo_text ::= polygon", /* 13 */ "geo_text ::= polygonz", /* 14 */ "geo_text ::= polygonzm", /* 15 */ "geo_text ::= multipoint", /* 16 */ "geo_text ::= multipointz", /* 17 */ "geo_text ::= multipointzm", /* 18 */ "geo_text ::= multilinestring", /* 19 */ "geo_text ::= multilinestringz", /* 20 */ "geo_text ::= multilinestringzm", /* 21 */ "geo_text ::= multipolygon", /* 22 */ "geo_text ::= multipolygonz", /* 23 */ "geo_text ::= multipolygonzm", /* 24 */ "geo_text ::= geocoll", /* 25 */ "geo_text ::= geocollz", /* 26 */ "geo_text ::= geocollzm", /* 27 */ "geo_textm ::= pointm", /* 28 */ "geo_textm ::= linestringm", /* 29 */ "geo_textm ::= polygonm", /* 30 */ "geo_textm ::= multipointm", /* 31 */ "geo_textm ::= multilinestringm", /* 32 */ "geo_textm ::= multipolygonm", /* 33 */ "geo_textm ::= geocollm", /* 34 */ "point ::= EWKT_POINT EWKT_OPEN_BRACKET point_coordxy EWKT_CLOSE_BRACKET", /* 35 */ "pointz ::= EWKT_POINT EWKT_OPEN_BRACKET point_coordxyz EWKT_CLOSE_BRACKET", /* 36 */ "pointm ::= EWKT_POINT_M EWKT_OPEN_BRACKET point_coordxym EWKT_CLOSE_BRACKET", /* 37 */ "pointzm ::= EWKT_POINT EWKT_OPEN_BRACKET point_coordxyzm EWKT_CLOSE_BRACKET", /* 38 */ "point_brkt_coordxy ::= EWKT_OPEN_BRACKET coord coord EWKT_CLOSE_BRACKET", /* 39 */ "point_brkt_coordxym ::= EWKT_OPEN_BRACKET coord coord coord EWKT_CLOSE_BRACKET", /* 40 */ "point_brkt_coordxyz ::= EWKT_OPEN_BRACKET coord coord coord EWKT_CLOSE_BRACKET", /* 41 */ "point_brkt_coordxyzm ::= EWKT_OPEN_BRACKET coord coord coord coord EWKT_CLOSE_BRACKET", /* 42 */ "point_coordxy ::= coord coord", /* 43 */ "point_coordxym ::= coord coord coord", /* 44 */ "point_coordxyz ::= coord coord coord", /* 45 */ "point_coordxyzm ::= coord coord coord coord", /* 46 */ "coord ::= EWKT_NUM", /* 47 */ "extra_brkt_pointsxy ::=", /* 48 */ "extra_brkt_pointsxy ::= EWKT_COMMA point_brkt_coordxy extra_brkt_pointsxy", /* 49 */ "extra_brkt_pointsxym ::=", /* 50 */ "extra_brkt_pointsxym ::= EWKT_COMMA point_brkt_coordxym extra_brkt_pointsxym", /* 51 */ "extra_brkt_pointsxyz ::=", /* 52 */ "extra_brkt_pointsxyz ::= EWKT_COMMA point_brkt_coordxyz extra_brkt_pointsxyz", /* 53 */ "extra_brkt_pointsxyzm ::=", /* 54 */ "extra_brkt_pointsxyzm ::= EWKT_COMMA point_brkt_coordxyzm extra_brkt_pointsxyzm", /* 55 */ "extra_pointsxy ::=", /* 56 */ "extra_pointsxy ::= EWKT_COMMA point_coordxy extra_pointsxy", /* 57 */ "extra_pointsxym ::=", /* 58 */ "extra_pointsxym ::= EWKT_COMMA point_coordxym extra_pointsxym", /* 59 */ "extra_pointsxyz ::=", /* 60 */ "extra_pointsxyz ::= EWKT_COMMA point_coordxyz extra_pointsxyz", /* 61 */ "extra_pointsxyzm ::=", /* 62 */ "extra_pointsxyzm ::= EWKT_COMMA point_coordxyzm extra_pointsxyzm", /* 63 */ "linestring ::= EWKT_LINESTRING linestring_text", /* 64 */ "linestringm ::= EWKT_LINESTRING_M linestring_textm", /* 65 */ "linestringz ::= EWKT_LINESTRING linestring_textz", /* 66 */ "linestringzm ::= EWKT_LINESTRING linestring_textzm", /* 67 */ "linestring_text ::= EWKT_OPEN_BRACKET point_coordxy EWKT_COMMA point_coordxy extra_pointsxy EWKT_CLOSE_BRACKET", /* 68 */ "linestring_textm ::= EWKT_OPEN_BRACKET point_coordxym EWKT_COMMA point_coordxym extra_pointsxym EWKT_CLOSE_BRACKET", /* 69 */ "linestring_textz ::= EWKT_OPEN_BRACKET point_coordxyz EWKT_COMMA point_coordxyz extra_pointsxyz EWKT_CLOSE_BRACKET", /* 70 */ "linestring_textzm ::= EWKT_OPEN_BRACKET point_coordxyzm EWKT_COMMA point_coordxyzm extra_pointsxyzm EWKT_CLOSE_BRACKET", /* 71 */ "polygon ::= EWKT_POLYGON polygon_text", /* 72 */ "polygonm ::= EWKT_POLYGON_M polygon_textm", /* 73 */ "polygonz ::= EWKT_POLYGON polygon_textz", /* 74 */ "polygonzm ::= EWKT_POLYGON polygon_textzm", /* 75 */ "polygon_text ::= EWKT_OPEN_BRACKET ring extra_rings EWKT_CLOSE_BRACKET", /* 76 */ "polygon_textm ::= EWKT_OPEN_BRACKET ringm extra_ringsm EWKT_CLOSE_BRACKET", /* 77 */ "polygon_textz ::= EWKT_OPEN_BRACKET ringz extra_ringsz EWKT_CLOSE_BRACKET", /* 78 */ "polygon_textzm ::= EWKT_OPEN_BRACKET ringzm extra_ringszm EWKT_CLOSE_BRACKET", /* 79 */ "ring ::= EWKT_OPEN_BRACKET point_coordxy EWKT_COMMA point_coordxy EWKT_COMMA point_coordxy EWKT_COMMA point_coordxy extra_pointsxy EWKT_CLOSE_BRACKET", /* 80 */ "extra_rings ::=", /* 81 */ "extra_rings ::= EWKT_COMMA ring extra_rings", /* 82 */ "ringm ::= EWKT_OPEN_BRACKET point_coordxym EWKT_COMMA point_coordxym EWKT_COMMA point_coordxym EWKT_COMMA point_coordxym extra_pointsxym EWKT_CLOSE_BRACKET", /* 83 */ "extra_ringsm ::=", /* 84 */ "extra_ringsm ::= EWKT_COMMA ringm extra_ringsm", /* 85 */ "ringz ::= EWKT_OPEN_BRACKET point_coordxyz EWKT_COMMA point_coordxyz EWKT_COMMA point_coordxyz EWKT_COMMA point_coordxyz extra_pointsxyz EWKT_CLOSE_BRACKET", /* 86 */ "extra_ringsz ::=", /* 87 */ "extra_ringsz ::= EWKT_COMMA ringz extra_ringsz", /* 88 */ "ringzm ::= EWKT_OPEN_BRACKET point_coordxyzm EWKT_COMMA point_coordxyzm EWKT_COMMA point_coordxyzm EWKT_COMMA point_coordxyzm extra_pointsxyzm EWKT_CLOSE_BRACKET", /* 89 */ "extra_ringszm ::=", /* 90 */ "extra_ringszm ::= EWKT_COMMA ringzm extra_ringszm", /* 91 */ "multipoint ::= EWKT_MULTIPOINT multipoint_text", /* 92 */ "multipointm ::= EWKT_MULTIPOINT_M multipoint_textm", /* 93 */ "multipointz ::= EWKT_MULTIPOINT multipoint_textz", /* 94 */ "multipointzm ::= EWKT_MULTIPOINT multipoint_textzm", /* 95 */ "multipoint_text ::= EWKT_OPEN_BRACKET point_coordxy extra_pointsxy EWKT_CLOSE_BRACKET", /* 96 */ "multipoint_textm ::= EWKT_OPEN_BRACKET point_coordxym extra_pointsxym EWKT_CLOSE_BRACKET", /* 97 */ "multipoint_textz ::= EWKT_OPEN_BRACKET point_coordxyz extra_pointsxyz EWKT_CLOSE_BRACKET", /* 98 */ "multipoint_textzm ::= EWKT_OPEN_BRACKET point_coordxyzm extra_pointsxyzm EWKT_CLOSE_BRACKET", /* 99 */ "multipoint_text ::= EWKT_OPEN_BRACKET point_brkt_coordxy extra_brkt_pointsxy EWKT_CLOSE_BRACKET", /* 100 */ "multipoint_textm ::= EWKT_OPEN_BRACKET point_brkt_coordxym extra_brkt_pointsxym EWKT_CLOSE_BRACKET", /* 101 */ "multipoint_textz ::= EWKT_OPEN_BRACKET point_brkt_coordxyz extra_brkt_pointsxyz EWKT_CLOSE_BRACKET", /* 102 */ "multipoint_textzm ::= EWKT_OPEN_BRACKET point_brkt_coordxyzm extra_brkt_pointsxyzm EWKT_CLOSE_BRACKET", /* 103 */ "multilinestring ::= EWKT_MULTILINESTRING multilinestring_text", /* 104 */ "multilinestringm ::= EWKT_MULTILINESTRING_M multilinestring_textm", /* 105 */ "multilinestringz ::= EWKT_MULTILINESTRING multilinestring_textz", /* 106 */ "multilinestringzm ::= EWKT_MULTILINESTRING multilinestring_textzm", /* 107 */ "multilinestring_text ::= EWKT_OPEN_BRACKET linestring_text multilinestring_text2 EWKT_CLOSE_BRACKET", /* 108 */ "multilinestring_text2 ::=", /* 109 */ "multilinestring_text2 ::= EWKT_COMMA linestring_text multilinestring_text2", /* 110 */ "multilinestring_textm ::= EWKT_OPEN_BRACKET linestring_textm multilinestring_textm2 EWKT_CLOSE_BRACKET", /* 111 */ "multilinestring_textm2 ::=", /* 112 */ "multilinestring_textm2 ::= EWKT_COMMA linestring_textm multilinestring_textm2", /* 113 */ "multilinestring_textz ::= EWKT_OPEN_BRACKET linestring_textz multilinestring_textz2 EWKT_CLOSE_BRACKET", /* 114 */ "multilinestring_textz2 ::=", /* 115 */ "multilinestring_textz2 ::= EWKT_COMMA linestring_textz multilinestring_textz2", /* 116 */ "multilinestring_textzm ::= EWKT_OPEN_BRACKET linestring_textzm multilinestring_textzm2 EWKT_CLOSE_BRACKET", /* 117 */ "multilinestring_textzm2 ::=", /* 118 */ "multilinestring_textzm2 ::= EWKT_COMMA linestring_textzm multilinestring_textzm2", /* 119 */ "multipolygon ::= EWKT_MULTIPOLYGON multipolygon_text", /* 120 */ "multipolygonm ::= EWKT_MULTIPOLYGON_M multipolygon_textm", /* 121 */ "multipolygonz ::= EWKT_MULTIPOLYGON multipolygon_textz", /* 122 */ "multipolygonzm ::= EWKT_MULTIPOLYGON multipolygon_textzm", /* 123 */ "multipolygon_text ::= EWKT_OPEN_BRACKET polygon_text multipolygon_text2 EWKT_CLOSE_BRACKET", /* 124 */ "multipolygon_text2 ::=", /* 125 */ "multipolygon_text2 ::= EWKT_COMMA polygon_text multipolygon_text2", /* 126 */ "multipolygon_textm ::= EWKT_OPEN_BRACKET polygon_textm multipolygon_textm2 EWKT_CLOSE_BRACKET", /* 127 */ "multipolygon_textm2 ::=", /* 128 */ "multipolygon_textm2 ::= EWKT_COMMA polygon_textm multipolygon_textm2", /* 129 */ "multipolygon_textz ::= EWKT_OPEN_BRACKET polygon_textz multipolygon_textz2 EWKT_CLOSE_BRACKET", /* 130 */ "multipolygon_textz2 ::=", /* 131 */ "multipolygon_textz2 ::= EWKT_COMMA polygon_textz multipolygon_textz2", /* 132 */ "multipolygon_textzm ::= EWKT_OPEN_BRACKET polygon_textzm multipolygon_textzm2 EWKT_CLOSE_BRACKET", /* 133 */ "multipolygon_textzm2 ::=", /* 134 */ "multipolygon_textzm2 ::= EWKT_COMMA polygon_textzm multipolygon_textzm2", /* 135 */ "geocoll ::= EWKT_GEOMETRYCOLLECTION geocoll_text", /* 136 */ "geocollm ::= EWKT_GEOMETRYCOLLECTION_M geocoll_textm", /* 137 */ "geocollz ::= EWKT_GEOMETRYCOLLECTION geocoll_textz", /* 138 */ "geocollzm ::= EWKT_GEOMETRYCOLLECTION geocoll_textzm", /* 139 */ "geocoll_text ::= EWKT_OPEN_BRACKET point geocoll_text2 EWKT_CLOSE_BRACKET", /* 140 */ "geocoll_text ::= EWKT_OPEN_BRACKET linestring geocoll_text2 EWKT_CLOSE_BRACKET", /* 141 */ "geocoll_text ::= EWKT_OPEN_BRACKET polygon geocoll_text2 EWKT_CLOSE_BRACKET", /* 142 */ "geocoll_text ::= EWKT_OPEN_BRACKET multipoint geocoll_text2 EWKT_CLOSE_BRACKET", /* 143 */ "geocoll_text ::= EWKT_OPEN_BRACKET multilinestring geocoll_text2 EWKT_CLOSE_BRACKET", /* 144 */ "geocoll_text ::= EWKT_OPEN_BRACKET multipolygon geocoll_text2 EWKT_CLOSE_BRACKET", /* 145 */ "geocoll_text ::= EWKT_OPEN_BRACKET EWKT_GEOMETRYCOLLECTION geocoll_text geocoll_text2 EWKT_CLOSE_BRACKET", /* 146 */ "geocoll_text2 ::=", /* 147 */ "geocoll_text2 ::= EWKT_COMMA point geocoll_text2", /* 148 */ "geocoll_text2 ::= EWKT_COMMA linestring geocoll_text2", /* 149 */ "geocoll_text2 ::= EWKT_COMMA polygon geocoll_text2", /* 150 */ "geocoll_text2 ::= EWKT_COMMA multipoint geocoll_text2", /* 151 */ "geocoll_text2 ::= EWKT_COMMA multilinestring geocoll_text2", /* 152 */ "geocoll_text2 ::= EWKT_COMMA multipolygon geocoll_text2", /* 153 */ "geocoll_text2 ::= EWKT_COMMA EWKT_GEOMETRYCOLLECTION geocoll_text geocoll_text2", /* 154 */ "geocoll_textm ::= EWKT_OPEN_BRACKET pointm geocoll_textm2 EWKT_CLOSE_BRACKET", /* 155 */ "geocoll_textm ::= EWKT_OPEN_BRACKET linestringm geocoll_textm2 EWKT_CLOSE_BRACKET", /* 156 */ "geocoll_textm ::= EWKT_OPEN_BRACKET polygonm geocoll_textm2 EWKT_CLOSE_BRACKET", /* 157 */ "geocoll_textm ::= EWKT_OPEN_BRACKET multipointm geocoll_textm2 EWKT_CLOSE_BRACKET", /* 158 */ "geocoll_textm ::= EWKT_OPEN_BRACKET multilinestringm geocoll_textm2 EWKT_CLOSE_BRACKET", /* 159 */ "geocoll_textm ::= EWKT_OPEN_BRACKET multipolygonm geocoll_textm2 EWKT_CLOSE_BRACKET", /* 160 */ "geocoll_textm ::= EWKT_OPEN_BRACKET EWKT_GEOMETRYCOLLECTION_M geocoll_textm geocoll_textm2 EWKT_CLOSE_BRACKET", /* 161 */ "geocoll_textm2 ::=", /* 162 */ "geocoll_textm2 ::= EWKT_COMMA pointm geocoll_textm2", /* 163 */ "geocoll_textm2 ::= EWKT_COMMA linestringm geocoll_textm2", /* 164 */ "geocoll_textm2 ::= EWKT_COMMA polygonm geocoll_textm2", /* 165 */ "geocoll_textm2 ::= EWKT_COMMA multipointm geocoll_textm2", /* 166 */ "geocoll_textm2 ::= EWKT_COMMA multilinestringm geocoll_textm2", /* 167 */ "geocoll_textm2 ::= EWKT_COMMA multipolygonm geocoll_textm2", /* 168 */ "geocoll_textm2 ::= EWKT_COMMA EWKT_GEOMETRYCOLLECTION_M geocoll_textm geocoll_textm2", /* 169 */ "geocoll_textz ::= EWKT_OPEN_BRACKET pointz geocoll_textz2 EWKT_CLOSE_BRACKET", /* 170 */ "geocoll_textz ::= EWKT_OPEN_BRACKET linestringz geocoll_textz2 EWKT_CLOSE_BRACKET", /* 171 */ "geocoll_textz ::= EWKT_OPEN_BRACKET polygonz geocoll_textz2 EWKT_CLOSE_BRACKET", /* 172 */ "geocoll_textz ::= EWKT_OPEN_BRACKET multipointz geocoll_textz2 EWKT_CLOSE_BRACKET", /* 173 */ "geocoll_textz ::= EWKT_OPEN_BRACKET multilinestringz geocoll_textz2 EWKT_CLOSE_BRACKET", /* 174 */ "geocoll_textz ::= EWKT_OPEN_BRACKET multipolygonz geocoll_textz2 EWKT_CLOSE_BRACKET", /* 175 */ "geocoll_textz ::= EWKT_OPEN_BRACKET EWKT_GEOMETRYCOLLECTION geocoll_textz geocoll_textz2 EWKT_CLOSE_BRACKET", /* 176 */ "geocoll_textz2 ::=", /* 177 */ "geocoll_textz2 ::= EWKT_COMMA pointz geocoll_textz2", /* 178 */ "geocoll_textz2 ::= EWKT_COMMA linestringz geocoll_textz2", /* 179 */ "geocoll_textz2 ::= EWKT_COMMA polygonz geocoll_textz2", /* 180 */ "geocoll_textz2 ::= EWKT_COMMA multipointz geocoll_textz2", /* 181 */ "geocoll_textz2 ::= EWKT_COMMA multilinestringz geocoll_textz2", /* 182 */ "geocoll_textz2 ::= EWKT_COMMA multipolygonz geocoll_textz2", /* 183 */ "geocoll_textz2 ::= EWKT_COMMA EWKT_GEOMETRYCOLLECTION geocoll_textz geocoll_textz2", /* 184 */ "geocoll_textzm ::= EWKT_OPEN_BRACKET pointzm geocoll_textzm2 EWKT_CLOSE_BRACKET", /* 185 */ "geocoll_textzm ::= EWKT_OPEN_BRACKET linestringzm geocoll_textzm2 EWKT_CLOSE_BRACKET", /* 186 */ "geocoll_textzm ::= EWKT_OPEN_BRACKET polygonzm geocoll_textzm2 EWKT_CLOSE_BRACKET", /* 187 */ "geocoll_textzm ::= EWKT_OPEN_BRACKET multipointzm geocoll_textzm2 EWKT_CLOSE_BRACKET", /* 188 */ "geocoll_textzm ::= EWKT_OPEN_BRACKET multilinestringzm geocoll_textzm2 EWKT_CLOSE_BRACKET", /* 189 */ "geocoll_textzm ::= EWKT_OPEN_BRACKET multipolygonzm geocoll_textzm2 EWKT_CLOSE_BRACKET", /* 190 */ "geocoll_textzm ::= EWKT_OPEN_BRACKET EWKT_GEOMETRYCOLLECTION geocoll_textzm geocoll_textzm2 EWKT_CLOSE_BRACKET", /* 191 */ "geocoll_textzm2 ::=", /* 192 */ "geocoll_textzm2 ::= EWKT_COMMA pointzm geocoll_textzm2", /* 193 */ "geocoll_textzm2 ::= EWKT_COMMA linestringzm geocoll_textzm2", /* 194 */ "geocoll_textzm2 ::= EWKT_COMMA polygonzm geocoll_textzm2", /* 195 */ "geocoll_textzm2 ::= EWKT_COMMA multipointzm geocoll_textzm2", /* 196 */ "geocoll_textzm2 ::= EWKT_COMMA multilinestringzm geocoll_textzm2", /* 197 */ "geocoll_textzm2 ::= EWKT_COMMA multipolygonzm geocoll_textzm2", /* 198 */ "geocoll_textzm2 ::= EWKT_COMMA EWKT_GEOMETRYCOLLECTION geocoll_textzm geocoll_textzm2", }; #endif /* NDEBUG */ #if YYSTACKDEPTH<=0 /* ** Try to increase the size of the parser stack. */ static void yyGrowStack (yyParser * p) { int newSize; yyStackEntry *pNew; newSize = p->yystksz * 2 + 100; pNew = realloc (p->yystack, newSize * sizeof (pNew[0])); if (pNew) { p->yystack = pNew; p->yystksz = newSize; #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sStack grows to %d entries!\n", yyTracePrompt, p->yystksz); } #endif } } #endif /* ** This function allocates a new parser. ** The only argument is a pointer to a function which works like ** malloc. ** ** Inputs: ** A pointer to the function used to allocate memory. ** ** Outputs: ** A pointer to a parser. This pointer is used in subsequent calls ** to Parse and ParseFree. */ void * ParseAlloc (void *(*mallocProc) (size_t)) { yyParser *pParser; pParser = (yyParser *) (*mallocProc) ((size_t) sizeof (yyParser)); if (pParser) { pParser->yyidx = -1; #ifdef YYTRACKMAXSTACKDEPTH pParser->yyidxMax = 0; #endif #if YYSTACKDEPTH<=0 pParser->yystack = NULL; pParser->yystksz = 0; yyGrowStack (pParser); #endif } return pParser; } /* The following function deletes the value associated with a ** symbol. The symbol can be either a terminal or nonterminal. ** "yymajor" is the symbol code, and "yypminor" is a pointer to ** the value. */ static void yy_destructor (yyParser * yypParser, /* The parser */ YYCODETYPE yymajor, /* Type code for object to destroy */ YYMINORTYPE * yypminor /* The object to be destroyed */ ) { ParseARG_FETCH; switch (yymajor) { /* Here is inserted the actions which take place when a ** terminal or non-terminal is destroyed. This can happen ** when the symbol is popped from the stack during a ** reduce or during error processing or when a parser is ** being destroyed before it is finished parsing. ** ** Note: during a reduce, the only symbols destroyed are those ** which appear on the RHS of the rule, but which are not used ** inside the C code. */ default: break; /* If no destructor action specified: do nothing */ } } /* ** Pop the parser's stack once. ** ** If there is a destructor routine associated with the token which ** is popped from the stack, then call it. ** ** Return the major token number for the symbol popped. */ static int yy_pop_parser_stack (yyParser * pParser) { YYCODETYPE yymajor; yyStackEntry *yytos = &pParser->yystack[pParser->yyidx]; if (pParser->yyidx < 0) return 0; #ifndef NDEBUG if (yyTraceFILE && pParser->yyidx >= 0) { fprintf (yyTraceFILE, "%sPopping %s\n", yyTracePrompt, yyTokenName[yytos->major]); } #endif yymajor = yytos->major; yy_destructor (pParser, yymajor, &yytos->minor); pParser->yyidx--; return yymajor; } /* ** Deallocate and destroy a parser. Destructors are all called for ** all stack elements before shutting the parser down. ** ** Inputs: **
    **
  • A pointer to the parser. This should be a pointer ** obtained from ParseAlloc. **
  • A pointer to a function used to reclaim memory obtained ** from malloc. **
*/ void ParseFree (void *p, /* The parser to be deleted */ void (*freeProc) (void *) /* Function used to reclaim memory */ ) { yyParser *pParser = (yyParser *) p; if (pParser == 0) return; while (pParser->yyidx >= 0) yy_pop_parser_stack (pParser); #if YYSTACKDEPTH<=0 free (pParser->yystack); #endif (*freeProc) ((void *) pParser); } /* ** Return the peak depth of the stack for a parser. */ #ifdef YYTRACKMAXSTACKDEPTH int ParseStackPeak (void *p) { yyParser *pParser = (yyParser *) p; return pParser->yyidxMax; } #endif /* ** Find the appropriate action for a parser given the terminal ** look-ahead token iLookAhead. ** ** If the look-ahead token is YYNOCODE, then check to see if the action is ** independent of the look-ahead. If it is, return the action, otherwise ** return YY_NO_ACTION. */ static int yy_find_shift_action (yyParser * pParser, /* The parser */ YYCODETYPE iLookAhead /* The look-ahead token */ ) { int i; int stateno = pParser->yystack[pParser->yyidx].stateno; if (stateno > YY_SHIFT_MAX || (i = yy_shift_ofst[stateno]) == YY_SHIFT_USE_DFLT) { return yy_default[stateno]; } assert (iLookAhead != YYNOCODE); i += iLookAhead; if (i < 0 || i >= YY_SZ_ACTTAB || yy_lookahead[i] != iLookAhead) { if (iLookAhead > 0) { #ifdef YYFALLBACK YYCODETYPE iFallback; /* Fallback token */ if (iLookAhead < sizeof (yyFallback) / sizeof (yyFallback[0]) && (iFallback = yyFallback[iLookAhead]) != 0) { #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sFALLBACK %s => %s\n", yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[iFallback]); } #endif return yy_find_shift_action (pParser, iFallback); } #endif #ifdef YYWILDCARD { int j = i - iLookAhead + YYWILDCARD; if (j >= 0 && j < YY_SZ_ACTTAB && yy_lookahead[j] == YYWILDCARD) { #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sWILDCARD %s => %s\n", yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[YYWILDCARD]); } #endif /* NDEBUG */ return yy_action[j]; } } #endif /* YYWILDCARD */ } return yy_default[stateno]; } else { return yy_action[i]; } } /* ** Find the appropriate action for a parser given the non-terminal ** look-ahead token iLookAhead. ** ** If the look-ahead token is YYNOCODE, then check to see if the action is ** independent of the look-ahead. If it is, return the action, otherwise ** return YY_NO_ACTION. */ static int yy_find_reduce_action (int stateno, /* Current state number */ YYCODETYPE iLookAhead /* The look-ahead token */ ) { int i; #ifdef YYERRORSYMBOL if (stateno > YY_REDUCE_MAX) { return yy_default[stateno]; } #else assert (stateno <= YY_REDUCE_MAX); #endif i = yy_reduce_ofst[stateno]; assert (i != YY_REDUCE_USE_DFLT); assert (iLookAhead != YYNOCODE); i += iLookAhead; #ifdef YYERRORSYMBOL if (i < 0 || i >= YY_SZ_ACTTAB || yy_lookahead[i] != iLookAhead) { return yy_default[stateno]; } #else assert (i >= 0 && i < YY_SZ_ACTTAB); assert (yy_lookahead[i] == iLookAhead); #endif return yy_action[i]; } /* ** The following routine is called if the stack overflows. */ static void yyStackOverflow (yyParser * yypParser, YYMINORTYPE * yypMinor) { ParseARG_FETCH; yypParser->yyidx--; #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sStack Overflow!\n", yyTracePrompt); } #endif while (yypParser->yyidx >= 0) yy_pop_parser_stack (yypParser); /* Here code is inserted which will execute if the parser ** stack every overflows */ spatialite_e ("Giving up. Parser stack overflow\n"); ParseARG_STORE; /* Suppress warning about unused %extra_argument var */ } /* ** Perform a shift action. */ static void yy_shift (yyParser * yypParser, /* The parser to be shifted */ int yyNewState, /* The new state to shift in */ int yyMajor, /* The major token to shift in */ YYMINORTYPE * yypMinor /* Pointer to the minor token to shift in */ ) { yyStackEntry *yytos; yypParser->yyidx++; #ifdef YYTRACKMAXSTACKDEPTH if (yypParser->yyidx > yypParser->yyidxMax) { yypParser->yyidxMax = yypParser->yyidx; } #endif #if YYSTACKDEPTH>0 if (yypParser->yyidx >= YYSTACKDEPTH) { yyStackOverflow (yypParser, yypMinor); return; } #else if (yypParser->yyidx >= yypParser->yystksz) { yyGrowStack (yypParser); if (yypParser->yyidx >= yypParser->yystksz) { yyStackOverflow (yypParser, yypMinor); return; } } #endif yytos = &yypParser->yystack[yypParser->yyidx]; yytos->stateno = (YYACTIONTYPE) yyNewState; yytos->major = (YYCODETYPE) yyMajor; yytos->minor = *yypMinor; #ifndef NDEBUG if (yyTraceFILE && yypParser->yyidx > 0) { int i; fprintf (yyTraceFILE, "%sShift %d\n", yyTracePrompt, yyNewState); fprintf (yyTraceFILE, "%sStack:", yyTracePrompt); for (i = 1; i <= yypParser->yyidx; i++) fprintf (yyTraceFILE, " %s", yyTokenName[yypParser->yystack[i].major]); fprintf (yyTraceFILE, "\n"); } #endif } /* The following table contains information about every rule that ** is used during the reduce. */ static const struct { YYCODETYPE lhs; /* Symbol on the left-hand side of the rule */ unsigned char nrhs; /* Number of right-hand side symbols in the rule */ } yyRuleInfo[] = { { 21, 1}, { 22, 0}, { 22, 3}, { 23, 1}, { 24, 1}, { 24, 1}, { 25, 1}, { 25, 1}, { 25, 1}, { 25, 1}, { 25, 1}, { 25, 1}, { 25, 1}, { 25, 1}, { 25, 1}, { 25, 1}, { 25, 1}, { 25, 1}, { 25, 1}, { 25, 1}, { 25, 1}, { 25, 1}, { 25, 1}, { 25, 1}, { 25, 1}, { 25, 1}, { 25, 1}, { 26, 1}, { 26, 1}, { 26, 1}, { 26, 1}, { 26, 1}, { 26, 1}, { 26, 1}, { 27, 4}, { 28, 4}, { 48, 4}, { 29, 4}, { 59, 4}, { 61, 5}, { 62, 5}, { 63, 6}, { 55, 2}, { 57, 3}, { 56, 3}, { 58, 4}, { 60, 1}, { 64, 0}, { 64, 3}, { 65, 0}, { 65, 3}, { 66, 0}, { 66, 3}, { 67, 0}, { 67, 3}, { 68, 0}, { 68, 3}, { 69, 0}, { 69, 3}, { 70, 0}, { 70, 3}, { 71, 0}, { 71, 3}, { 30, 2}, { 49, 2}, { 31, 2}, { 32, 2}, { 72, 6}, { 73, 6}, { 74, 6}, { 75, 6}, { 33, 2}, { 50, 2}, { 34, 2}, { 35, 2}, { 76, 4}, { 77, 4}, { 78, 4}, { 79, 4}, { 80, 10}, { 81, 0}, { 81, 3}, { 82, 10}, { 83, 0}, { 83, 3}, { 84, 10}, { 85, 0}, { 85, 3}, { 86, 10}, { 87, 0}, { 87, 3}, { 36, 2}, { 51, 2}, { 37, 2}, { 38, 2}, { 88, 4}, { 89, 4}, { 90, 4}, { 91, 4}, { 88, 4}, { 89, 4}, { 90, 4}, { 91, 4}, { 39, 2}, { 52, 2}, { 40, 2}, { 41, 2}, { 92, 4}, { 96, 0}, { 96, 3}, { 93, 4}, { 97, 0}, { 97, 3}, { 94, 4}, { 98, 0}, { 98, 3}, { 95, 4}, { 99, 0}, { 99, 3}, { 42, 2}, { 53, 2}, { 43, 2}, { 44, 2}, { 100, 4}, { 104, 0}, { 104, 3}, { 101, 4}, { 105, 0}, { 105, 3}, { 102, 4}, { 106, 0}, { 106, 3}, { 103, 4}, { 107, 0}, { 107, 3}, { 45, 2}, { 54, 2}, { 46, 2}, { 47, 2}, { 108, 4}, { 108, 4}, { 108, 4}, { 108, 4}, { 108, 4}, { 108, 4}, { 108, 5}, { 112, 0}, { 112, 3}, { 112, 3}, { 112, 3}, { 112, 3}, { 112, 3}, { 112, 3}, { 112, 4}, { 109, 4}, { 109, 4}, { 109, 4}, { 109, 4}, { 109, 4}, { 109, 4}, { 109, 5}, { 113, 0}, { 113, 3}, { 113, 3}, { 113, 3}, { 113, 3}, { 113, 3}, { 113, 3}, { 113, 4}, { 110, 4}, { 110, 4}, { 110, 4}, { 110, 4}, { 110, 4}, { 110, 4}, { 110, 5}, { 114, 0}, { 114, 3}, { 114, 3}, { 114, 3}, { 114, 3}, { 114, 3}, { 114, 3}, { 114, 4}, { 111, 4}, { 111, 4}, { 111, 4}, { 111, 4}, { 111, 4}, { 111, 4}, { 111, 5}, { 115, 0}, { 115, 3}, { 115, 3}, { 115, 3}, { 115, 3}, { 115, 3}, { 115, 3}, { 115, 4},}; static void yy_accept (yyParser *); /* Forward Declaration */ /* ** Perform a reduce action and the shift that must immediately ** follow the reduce. */ static void yy_reduce (yyParser * yypParser, /* The parser */ int yyruleno /* Number of the rule by which to reduce */ ) { int yygoto; /* The next state */ int yyact; /* The next action */ YYMINORTYPE yygotominor; /* The LHS of the rule reduced */ yyStackEntry *yymsp; /* The top of the parser's stack */ int yysize; /* Amount to pop the stack */ ParseARG_FETCH; yymsp = &yypParser->yystack[yypParser->yyidx]; #ifndef NDEBUG if (yyTraceFILE && yyruleno >= 0 && yyruleno < (int) (sizeof (yyRuleName) / sizeof (yyRuleName[0]))) { fprintf (yyTraceFILE, "%sReduce [%s].\n", yyTracePrompt, yyRuleName[yyruleno]); } #endif /* NDEBUG */ /* Silence complaints from purify about yygotominor being uninitialized ** in some cases when it is copied into the stack after the following ** switch. yygotominor is uninitialized when a rule reduces that does ** not set the value of its left-hand side nonterminal. Leaving the ** value of the nonterminal uninitialized is utterly harmless as long ** as the value is never used. So really the only thing this code ** accomplishes is to quieten purify. ** ** 2007-01-16: The wireshark project (www.wireshark.org) reports that ** without this code, their parser segfaults. I'm not sure what there ** parser is doing to make this happen. This is the second bug report ** from wireshark this week. Clearly they are stressing Lemon in ways ** that it has not been previously stressed... (SQLite ticket #2172) */ /*memset(&yygotominor, 0, sizeof(yygotominor)); */ yygotominor = yyzerominor; switch (yyruleno) { /* Beginning here are the reduction cases. A typical example ** follows: ** case 0: ** #line ** { ... } // User supplied code ** #line ** break; */ case 6: /* geo_text ::= point */ case 7: /* geo_text ::= pointz */ yytestcase (yyruleno == 7); case 8: /* geo_text ::= pointzm */ yytestcase (yyruleno == 8); case 9: /* geo_text ::= linestring */ yytestcase (yyruleno == 9); case 10: /* geo_text ::= linestringz */ yytestcase (yyruleno == 10); case 11: /* geo_text ::= linestringzm */ yytestcase (yyruleno == 11); case 12: /* geo_text ::= polygon */ yytestcase (yyruleno == 12); case 13: /* geo_text ::= polygonz */ yytestcase (yyruleno == 13); case 14: /* geo_text ::= polygonzm */ yytestcase (yyruleno == 14); case 15: /* geo_text ::= multipoint */ yytestcase (yyruleno == 15); case 16: /* geo_text ::= multipointz */ yytestcase (yyruleno == 16); case 17: /* geo_text ::= multipointzm */ yytestcase (yyruleno == 17); case 18: /* geo_text ::= multilinestring */ yytestcase (yyruleno == 18); case 19: /* geo_text ::= multilinestringz */ yytestcase (yyruleno == 19); case 20: /* geo_text ::= multilinestringzm */ yytestcase (yyruleno == 20); case 21: /* geo_text ::= multipolygon */ yytestcase (yyruleno == 21); case 22: /* geo_text ::= multipolygonz */ yytestcase (yyruleno == 22); case 23: /* geo_text ::= multipolygonzm */ yytestcase (yyruleno == 23); case 24: /* geo_text ::= geocoll */ yytestcase (yyruleno == 24); case 25: /* geo_text ::= geocollz */ yytestcase (yyruleno == 25); case 26: /* geo_text ::= geocollzm */ yytestcase (yyruleno == 26); case 27: /* geo_textm ::= pointm */ yytestcase (yyruleno == 27); case 28: /* geo_textm ::= linestringm */ yytestcase (yyruleno == 28); case 29: /* geo_textm ::= polygonm */ yytestcase (yyruleno == 29); case 30: /* geo_textm ::= multipointm */ yytestcase (yyruleno == 30); case 31: /* geo_textm ::= multilinestringm */ yytestcase (yyruleno == 31); case 32: /* geo_textm ::= multipolygonm */ yytestcase (yyruleno == 32); case 33: /* geo_textm ::= geocollm */ yytestcase (yyruleno == 33); { p_data->result = yymsp[0].minor.yy0; } break; case 34: /* point ::= EWKT_POINT EWKT_OPEN_BRACKET point_coordxy EWKT_CLOSE_BRACKET */ case 35: /* pointz ::= EWKT_POINT EWKT_OPEN_BRACKET point_coordxyz EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 35); case 37: /* pointzm ::= EWKT_POINT EWKT_OPEN_BRACKET point_coordxyzm EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 37); { yygotominor.yy0 = ewkt_buildGeomFromPoint (p_data, (gaiaPointPtr) yymsp[-1].minor.yy0); } break; case 36: /* pointm ::= EWKT_POINT_M EWKT_OPEN_BRACKET point_coordxym EWKT_CLOSE_BRACKET */ { yygotominor.yy0 = ewkt_buildGeomFromPoint (p_data, (gaiaPointPtr) yymsp[-1].minor.yy0); } break; case 38: /* point_brkt_coordxy ::= EWKT_OPEN_BRACKET coord coord EWKT_CLOSE_BRACKET */ { yygotominor.yy0 = (void *) ewkt_point_xy (p_data, (double *) yymsp[-2].minor.yy0, (double *) yymsp[-1].minor.yy0); } break; case 39: /* point_brkt_coordxym ::= EWKT_OPEN_BRACKET coord coord coord EWKT_CLOSE_BRACKET */ { yygotominor.yy0 = (void *) ewkt_point_xym (p_data, (double *) yymsp[-3].minor.yy0, (double *) yymsp[-2].minor.yy0, (double *) yymsp[-1].minor.yy0); } break; case 40: /* point_brkt_coordxyz ::= EWKT_OPEN_BRACKET coord coord coord EWKT_CLOSE_BRACKET */ { yygotominor.yy0 = (void *) ewkt_point_xyz (p_data, (double *) yymsp[-3].minor.yy0, (double *) yymsp[-2].minor.yy0, (double *) yymsp[-1].minor.yy0); } break; case 41: /* point_brkt_coordxyzm ::= EWKT_OPEN_BRACKET coord coord coord coord EWKT_CLOSE_BRACKET */ { yygotominor.yy0 = (void *) ewkt_point_xyzm (p_data, (double *) yymsp[-4].minor.yy0, (double *) yymsp[-3].minor.yy0, (double *) yymsp[-2].minor.yy0, (double *) yymsp[-1].minor.yy0); } break; case 42: /* point_coordxy ::= coord coord */ { yygotominor.yy0 = (void *) ewkt_point_xy (p_data, (double *) yymsp[-1].minor.yy0, (double *) yymsp[0].minor.yy0); } break; case 43: /* point_coordxym ::= coord coord coord */ { yygotominor.yy0 = (void *) ewkt_point_xym (p_data, (double *) yymsp[-2].minor.yy0, (double *) yymsp[-1].minor.yy0, (double *) yymsp[0].minor.yy0); } break; case 44: /* point_coordxyz ::= coord coord coord */ { yygotominor.yy0 = (void *) ewkt_point_xyz (p_data, (double *) yymsp[-2].minor.yy0, (double *) yymsp[-1].minor.yy0, (double *) yymsp[0].minor.yy0); } break; case 45: /* point_coordxyzm ::= coord coord coord coord */ { yygotominor.yy0 = (void *) ewkt_point_xyzm (p_data, (double *) yymsp[-3].minor.yy0, (double *) yymsp[-2].minor.yy0, (double *) yymsp[-1].minor.yy0, (double *) yymsp[0].minor.yy0); } break; case 46: /* coord ::= EWKT_NUM */ case 91: /* multipoint ::= EWKT_MULTIPOINT multipoint_text */ yytestcase (yyruleno == 91); case 92: /* multipointm ::= EWKT_MULTIPOINT_M multipoint_textm */ yytestcase (yyruleno == 92); case 93: /* multipointz ::= EWKT_MULTIPOINT multipoint_textz */ yytestcase (yyruleno == 93); case 94: /* multipointzm ::= EWKT_MULTIPOINT multipoint_textzm */ yytestcase (yyruleno == 94); case 103: /* multilinestring ::= EWKT_MULTILINESTRING multilinestring_text */ yytestcase (yyruleno == 103); case 104: /* multilinestringm ::= EWKT_MULTILINESTRING_M multilinestring_textm */ yytestcase (yyruleno == 104); case 105: /* multilinestringz ::= EWKT_MULTILINESTRING multilinestring_textz */ yytestcase (yyruleno == 105); case 106: /* multilinestringzm ::= EWKT_MULTILINESTRING multilinestring_textzm */ yytestcase (yyruleno == 106); case 119: /* multipolygon ::= EWKT_MULTIPOLYGON multipolygon_text */ yytestcase (yyruleno == 119); case 120: /* multipolygonm ::= EWKT_MULTIPOLYGON_M multipolygon_textm */ yytestcase (yyruleno == 120); case 121: /* multipolygonz ::= EWKT_MULTIPOLYGON multipolygon_textz */ yytestcase (yyruleno == 121); case 122: /* multipolygonzm ::= EWKT_MULTIPOLYGON multipolygon_textzm */ yytestcase (yyruleno == 122); case 135: /* geocoll ::= EWKT_GEOMETRYCOLLECTION geocoll_text */ yytestcase (yyruleno == 135); case 136: /* geocollm ::= EWKT_GEOMETRYCOLLECTION_M geocoll_textm */ yytestcase (yyruleno == 136); case 137: /* geocollz ::= EWKT_GEOMETRYCOLLECTION geocoll_textz */ yytestcase (yyruleno == 137); case 138: /* geocollzm ::= EWKT_GEOMETRYCOLLECTION geocoll_textzm */ yytestcase (yyruleno == 138); { yygotominor.yy0 = yymsp[0].minor.yy0; } break; case 47: /* extra_brkt_pointsxy ::= */ case 49: /* extra_brkt_pointsxym ::= */ yytestcase (yyruleno == 49); case 51: /* extra_brkt_pointsxyz ::= */ yytestcase (yyruleno == 51); case 53: /* extra_brkt_pointsxyzm ::= */ yytestcase (yyruleno == 53); case 55: /* extra_pointsxy ::= */ yytestcase (yyruleno == 55); case 57: /* extra_pointsxym ::= */ yytestcase (yyruleno == 57); case 59: /* extra_pointsxyz ::= */ yytestcase (yyruleno == 59); case 61: /* extra_pointsxyzm ::= */ yytestcase (yyruleno == 61); case 80: /* extra_rings ::= */ yytestcase (yyruleno == 80); case 83: /* extra_ringsm ::= */ yytestcase (yyruleno == 83); case 86: /* extra_ringsz ::= */ yytestcase (yyruleno == 86); case 89: /* extra_ringszm ::= */ yytestcase (yyruleno == 89); case 108: /* multilinestring_text2 ::= */ yytestcase (yyruleno == 108); case 111: /* multilinestring_textm2 ::= */ yytestcase (yyruleno == 111); case 114: /* multilinestring_textz2 ::= */ yytestcase (yyruleno == 114); case 117: /* multilinestring_textzm2 ::= */ yytestcase (yyruleno == 117); case 124: /* multipolygon_text2 ::= */ yytestcase (yyruleno == 124); case 127: /* multipolygon_textm2 ::= */ yytestcase (yyruleno == 127); case 130: /* multipolygon_textz2 ::= */ yytestcase (yyruleno == 130); case 133: /* multipolygon_textzm2 ::= */ yytestcase (yyruleno == 133); case 146: /* geocoll_text2 ::= */ yytestcase (yyruleno == 146); case 161: /* geocoll_textm2 ::= */ yytestcase (yyruleno == 161); case 176: /* geocoll_textz2 ::= */ yytestcase (yyruleno == 176); case 191: /* geocoll_textzm2 ::= */ yytestcase (yyruleno == 191); { yygotominor.yy0 = NULL; } break; case 48: /* extra_brkt_pointsxy ::= EWKT_COMMA point_brkt_coordxy extra_brkt_pointsxy */ case 50: /* extra_brkt_pointsxym ::= EWKT_COMMA point_brkt_coordxym extra_brkt_pointsxym */ yytestcase (yyruleno == 50); case 52: /* extra_brkt_pointsxyz ::= EWKT_COMMA point_brkt_coordxyz extra_brkt_pointsxyz */ yytestcase (yyruleno == 52); case 54: /* extra_brkt_pointsxyzm ::= EWKT_COMMA point_brkt_coordxyzm extra_brkt_pointsxyzm */ yytestcase (yyruleno == 54); case 56: /* extra_pointsxy ::= EWKT_COMMA point_coordxy extra_pointsxy */ yytestcase (yyruleno == 56); case 58: /* extra_pointsxym ::= EWKT_COMMA point_coordxym extra_pointsxym */ yytestcase (yyruleno == 58); case 60: /* extra_pointsxyz ::= EWKT_COMMA point_coordxyz extra_pointsxyz */ yytestcase (yyruleno == 60); case 62: /* extra_pointsxyzm ::= EWKT_COMMA point_coordxyzm extra_pointsxyzm */ yytestcase (yyruleno == 62); { ((gaiaPointPtr) yymsp[-1].minor.yy0)->Next = (gaiaPointPtr) yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } break; case 63: /* linestring ::= EWKT_LINESTRING linestring_text */ case 64: /* linestringm ::= EWKT_LINESTRING_M linestring_textm */ yytestcase (yyruleno == 64); case 65: /* linestringz ::= EWKT_LINESTRING linestring_textz */ yytestcase (yyruleno == 65); case 66: /* linestringzm ::= EWKT_LINESTRING linestring_textzm */ yytestcase (yyruleno == 66); { yygotominor.yy0 = ewkt_buildGeomFromLinestring (p_data, (gaiaLinestringPtr) yymsp[0]. minor.yy0); } break; case 67: /* linestring_text ::= EWKT_OPEN_BRACKET point_coordxy EWKT_COMMA point_coordxy extra_pointsxy EWKT_CLOSE_BRACKET */ { ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = (gaiaPointPtr) yymsp[-2].minor.yy0; yygotominor.yy0 = (void *) ewkt_linestring_xy (p_data, (gaiaPointPtr) yymsp[-4].minor. yy0); } break; case 68: /* linestring_textm ::= EWKT_OPEN_BRACKET point_coordxym EWKT_COMMA point_coordxym extra_pointsxym EWKT_CLOSE_BRACKET */ { ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = (gaiaPointPtr) yymsp[-2].minor.yy0; yygotominor.yy0 = (void *) ewkt_linestring_xym (p_data, (gaiaPointPtr) yymsp[-4].minor. yy0); } break; case 69: /* linestring_textz ::= EWKT_OPEN_BRACKET point_coordxyz EWKT_COMMA point_coordxyz extra_pointsxyz EWKT_CLOSE_BRACKET */ { ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = (gaiaPointPtr) yymsp[-2].minor.yy0; yygotominor.yy0 = (void *) ewkt_linestring_xyz (p_data, (gaiaPointPtr) yymsp[-4].minor. yy0); } break; case 70: /* linestring_textzm ::= EWKT_OPEN_BRACKET point_coordxyzm EWKT_COMMA point_coordxyzm extra_pointsxyzm EWKT_CLOSE_BRACKET */ { ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = (gaiaPointPtr) yymsp[-2].minor.yy0; yygotominor.yy0 = (void *) ewkt_linestring_xyzm (p_data, (gaiaPointPtr) yymsp[-4].minor. yy0); } break; case 71: /* polygon ::= EWKT_POLYGON polygon_text */ case 72: /* polygonm ::= EWKT_POLYGON_M polygon_textm */ yytestcase (yyruleno == 72); case 73: /* polygonz ::= EWKT_POLYGON polygon_textz */ yytestcase (yyruleno == 73); case 74: /* polygonzm ::= EWKT_POLYGON polygon_textzm */ yytestcase (yyruleno == 74); { yygotominor.yy0 = ewkt_buildGeomFromPolygon (p_data, (gaiaPolygonPtr) yymsp[0].minor. yy0); } break; case 75: /* polygon_text ::= EWKT_OPEN_BRACKET ring extra_rings EWKT_CLOSE_BRACKET */ { ((gaiaRingPtr) yymsp[-2].minor.yy0)->Next = (gaiaRingPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) ewkt_polygon_xy (p_data, (gaiaRingPtr) yymsp[-2].minor.yy0); } break; case 76: /* polygon_textm ::= EWKT_OPEN_BRACKET ringm extra_ringsm EWKT_CLOSE_BRACKET */ { ((gaiaRingPtr) yymsp[-2].minor.yy0)->Next = (gaiaRingPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) ewkt_polygon_xym (p_data, (gaiaRingPtr) yymsp[-2].minor.yy0); } break; case 77: /* polygon_textz ::= EWKT_OPEN_BRACKET ringz extra_ringsz EWKT_CLOSE_BRACKET */ { ((gaiaRingPtr) yymsp[-2].minor.yy0)->Next = (gaiaRingPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) ewkt_polygon_xyz (p_data, (gaiaRingPtr) yymsp[-2].minor.yy0); } break; case 78: /* polygon_textzm ::= EWKT_OPEN_BRACKET ringzm extra_ringszm EWKT_CLOSE_BRACKET */ { ((gaiaRingPtr) yymsp[-2].minor.yy0)->Next = (gaiaRingPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) ewkt_polygon_xyzm (p_data, (gaiaRingPtr) yymsp[-2].minor. yy0); } break; case 79: /* ring ::= EWKT_OPEN_BRACKET point_coordxy EWKT_COMMA point_coordxy EWKT_COMMA point_coordxy EWKT_COMMA point_coordxy extra_pointsxy EWKT_CLOSE_BRACKET */ { ((gaiaPointPtr) yymsp[-8].minor.yy0)->Next = (gaiaPointPtr) yymsp[-6].minor.yy0; ((gaiaPointPtr) yymsp[-6].minor.yy0)->Next = (gaiaPointPtr) yymsp[-4].minor.yy0; ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = (gaiaPointPtr) yymsp[-2].minor.yy0; ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) ewkt_ring_xy (p_data, (gaiaPointPtr) yymsp[-8].minor.yy0); } break; case 81: /* extra_rings ::= EWKT_COMMA ring extra_rings */ case 84: /* extra_ringsm ::= EWKT_COMMA ringm extra_ringsm */ yytestcase (yyruleno == 84); case 87: /* extra_ringsz ::= EWKT_COMMA ringz extra_ringsz */ yytestcase (yyruleno == 87); case 90: /* extra_ringszm ::= EWKT_COMMA ringzm extra_ringszm */ yytestcase (yyruleno == 90); { ((gaiaRingPtr) yymsp[-1].minor.yy0)->Next = (gaiaRingPtr) yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } break; case 82: /* ringm ::= EWKT_OPEN_BRACKET point_coordxym EWKT_COMMA point_coordxym EWKT_COMMA point_coordxym EWKT_COMMA point_coordxym extra_pointsxym EWKT_CLOSE_BRACKET */ { ((gaiaPointPtr) yymsp[-8].minor.yy0)->Next = (gaiaPointPtr) yymsp[-6].minor.yy0; ((gaiaPointPtr) yymsp[-6].minor.yy0)->Next = (gaiaPointPtr) yymsp[-4].minor.yy0; ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = (gaiaPointPtr) yymsp[-2].minor.yy0; ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) ewkt_ring_xym (p_data, (gaiaPointPtr) yymsp[-8].minor.yy0); } break; case 85: /* ringz ::= EWKT_OPEN_BRACKET point_coordxyz EWKT_COMMA point_coordxyz EWKT_COMMA point_coordxyz EWKT_COMMA point_coordxyz extra_pointsxyz EWKT_CLOSE_BRACKET */ { ((gaiaPointPtr) yymsp[-8].minor.yy0)->Next = (gaiaPointPtr) yymsp[-6].minor.yy0; ((gaiaPointPtr) yymsp[-6].minor.yy0)->Next = (gaiaPointPtr) yymsp[-4].minor.yy0; ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = (gaiaPointPtr) yymsp[-2].minor.yy0; ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) ewkt_ring_xyz (p_data, (gaiaPointPtr) yymsp[-8].minor.yy0); } break; case 88: /* ringzm ::= EWKT_OPEN_BRACKET point_coordxyzm EWKT_COMMA point_coordxyzm EWKT_COMMA point_coordxyzm EWKT_COMMA point_coordxyzm extra_pointsxyzm EWKT_CLOSE_BRACKET */ { ((gaiaPointPtr) yymsp[-8].minor.yy0)->Next = (gaiaPointPtr) yymsp[-6].minor.yy0; ((gaiaPointPtr) yymsp[-6].minor.yy0)->Next = (gaiaPointPtr) yymsp[-4].minor.yy0; ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = (gaiaPointPtr) yymsp[-2].minor.yy0; ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) ewkt_ring_xyzm (p_data, (gaiaPointPtr) yymsp[-8].minor.yy0); } break; case 95: /* multipoint_text ::= EWKT_OPEN_BRACKET point_coordxy extra_pointsxy EWKT_CLOSE_BRACKET */ case 99: /* multipoint_text ::= EWKT_OPEN_BRACKET point_brkt_coordxy extra_brkt_pointsxy EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 99); { ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) ewkt_multipoint_xy (p_data, (gaiaPointPtr) yymsp[-2].minor. yy0); } break; case 96: /* multipoint_textm ::= EWKT_OPEN_BRACKET point_coordxym extra_pointsxym EWKT_CLOSE_BRACKET */ case 100: /* multipoint_textm ::= EWKT_OPEN_BRACKET point_brkt_coordxym extra_brkt_pointsxym EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 100); { ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) ewkt_multipoint_xym (p_data, (gaiaPointPtr) yymsp[-2].minor. yy0); } break; case 97: /* multipoint_textz ::= EWKT_OPEN_BRACKET point_coordxyz extra_pointsxyz EWKT_CLOSE_BRACKET */ case 101: /* multipoint_textz ::= EWKT_OPEN_BRACKET point_brkt_coordxyz extra_brkt_pointsxyz EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 101); { ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) ewkt_multipoint_xyz (p_data, (gaiaPointPtr) yymsp[-2].minor. yy0); } break; case 98: /* multipoint_textzm ::= EWKT_OPEN_BRACKET point_coordxyzm extra_pointsxyzm EWKT_CLOSE_BRACKET */ case 102: /* multipoint_textzm ::= EWKT_OPEN_BRACKET point_brkt_coordxyzm extra_brkt_pointsxyzm EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 102); { ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) ewkt_multipoint_xyzm (p_data, (gaiaPointPtr) yymsp[-2].minor. yy0); } break; case 107: /* multilinestring_text ::= EWKT_OPEN_BRACKET linestring_text multilinestring_text2 EWKT_CLOSE_BRACKET */ { ((gaiaLinestringPtr) yymsp[-2].minor.yy0)->Next = (gaiaLinestringPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) ewkt_multilinestring_xy (p_data, (gaiaLinestringPtr) yymsp[-2].minor.yy0); } break; case 109: /* multilinestring_text2 ::= EWKT_COMMA linestring_text multilinestring_text2 */ case 112: /* multilinestring_textm2 ::= EWKT_COMMA linestring_textm multilinestring_textm2 */ yytestcase (yyruleno == 112); case 115: /* multilinestring_textz2 ::= EWKT_COMMA linestring_textz multilinestring_textz2 */ yytestcase (yyruleno == 115); case 118: /* multilinestring_textzm2 ::= EWKT_COMMA linestring_textzm multilinestring_textzm2 */ yytestcase (yyruleno == 118); { ((gaiaLinestringPtr) yymsp[-1].minor.yy0)->Next = (gaiaLinestringPtr) yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } break; case 110: /* multilinestring_textm ::= EWKT_OPEN_BRACKET linestring_textm multilinestring_textm2 EWKT_CLOSE_BRACKET */ { ((gaiaLinestringPtr) yymsp[-2].minor.yy0)->Next = (gaiaLinestringPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) ewkt_multilinestring_xym (p_data, (gaiaLinestringPtr) yymsp[-2].minor.yy0); } break; case 113: /* multilinestring_textz ::= EWKT_OPEN_BRACKET linestring_textz multilinestring_textz2 EWKT_CLOSE_BRACKET */ { ((gaiaLinestringPtr) yymsp[-2].minor.yy0)->Next = (gaiaLinestringPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) ewkt_multilinestring_xyz (p_data, (gaiaLinestringPtr) yymsp[-2].minor.yy0); } break; case 116: /* multilinestring_textzm ::= EWKT_OPEN_BRACKET linestring_textzm multilinestring_textzm2 EWKT_CLOSE_BRACKET */ { ((gaiaLinestringPtr) yymsp[-2].minor.yy0)->Next = (gaiaLinestringPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) ewkt_multilinestring_xyzm (p_data, (gaiaLinestringPtr) yymsp[-2].minor.yy0); } break; case 123: /* multipolygon_text ::= EWKT_OPEN_BRACKET polygon_text multipolygon_text2 EWKT_CLOSE_BRACKET */ { ((gaiaPolygonPtr) yymsp[-2].minor.yy0)->Next = (gaiaPolygonPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) ewkt_multipolygon_xy (p_data, (gaiaPolygonPtr) yymsp[-2]. minor.yy0); } break; case 125: /* multipolygon_text2 ::= EWKT_COMMA polygon_text multipolygon_text2 */ case 128: /* multipolygon_textm2 ::= EWKT_COMMA polygon_textm multipolygon_textm2 */ yytestcase (yyruleno == 128); case 131: /* multipolygon_textz2 ::= EWKT_COMMA polygon_textz multipolygon_textz2 */ yytestcase (yyruleno == 131); case 134: /* multipolygon_textzm2 ::= EWKT_COMMA polygon_textzm multipolygon_textzm2 */ yytestcase (yyruleno == 134); { ((gaiaPolygonPtr) yymsp[-1].minor.yy0)->Next = (gaiaPolygonPtr) yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } break; case 126: /* multipolygon_textm ::= EWKT_OPEN_BRACKET polygon_textm multipolygon_textm2 EWKT_CLOSE_BRACKET */ { ((gaiaPolygonPtr) yymsp[-2].minor.yy0)->Next = (gaiaPolygonPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) ewkt_multipolygon_xym (p_data, (gaiaPolygonPtr) yymsp[-2]. minor.yy0); } break; case 129: /* multipolygon_textz ::= EWKT_OPEN_BRACKET polygon_textz multipolygon_textz2 EWKT_CLOSE_BRACKET */ { ((gaiaPolygonPtr) yymsp[-2].minor.yy0)->Next = (gaiaPolygonPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) ewkt_multipolygon_xyz (p_data, (gaiaPolygonPtr) yymsp[-2]. minor.yy0); } break; case 132: /* multipolygon_textzm ::= EWKT_OPEN_BRACKET polygon_textzm multipolygon_textzm2 EWKT_CLOSE_BRACKET */ { ((gaiaPolygonPtr) yymsp[-2].minor.yy0)->Next = (gaiaPolygonPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) ewkt_multipolygon_xyzm (p_data, (gaiaPolygonPtr) yymsp[-2]. minor.yy0); } break; case 139: /* geocoll_text ::= EWKT_OPEN_BRACKET point geocoll_text2 EWKT_CLOSE_BRACKET */ case 140: /* geocoll_text ::= EWKT_OPEN_BRACKET linestring geocoll_text2 EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 140); case 141: /* geocoll_text ::= EWKT_OPEN_BRACKET polygon geocoll_text2 EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 141); case 142: /* geocoll_text ::= EWKT_OPEN_BRACKET multipoint geocoll_text2 EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 142); case 143: /* geocoll_text ::= EWKT_OPEN_BRACKET multilinestring geocoll_text2 EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 143); case 144: /* geocoll_text ::= EWKT_OPEN_BRACKET multipolygon geocoll_text2 EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 144); case 145: /* geocoll_text ::= EWKT_OPEN_BRACKET EWKT_GEOMETRYCOLLECTION geocoll_text geocoll_text2 EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 145); { ((gaiaGeomCollPtr) yymsp[-2].minor.yy0)->Next = (gaiaGeomCollPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) ewkt_geomColl_xy (p_data, (gaiaGeomCollPtr) yymsp[-2].minor. yy0); } break; case 147: /* geocoll_text2 ::= EWKT_COMMA point geocoll_text2 */ case 148: /* geocoll_text2 ::= EWKT_COMMA linestring geocoll_text2 */ yytestcase (yyruleno == 148); case 149: /* geocoll_text2 ::= EWKT_COMMA polygon geocoll_text2 */ yytestcase (yyruleno == 149); case 150: /* geocoll_text2 ::= EWKT_COMMA multipoint geocoll_text2 */ yytestcase (yyruleno == 150); case 151: /* geocoll_text2 ::= EWKT_COMMA multilinestring geocoll_text2 */ yytestcase (yyruleno == 151); case 152: /* geocoll_text2 ::= EWKT_COMMA multipolygon geocoll_text2 */ yytestcase (yyruleno == 152); case 153: /* geocoll_text2 ::= EWKT_COMMA EWKT_GEOMETRYCOLLECTION geocoll_text geocoll_text2 */ yytestcase (yyruleno == 153); case 162: /* geocoll_textm2 ::= EWKT_COMMA pointm geocoll_textm2 */ yytestcase (yyruleno == 162); case 163: /* geocoll_textm2 ::= EWKT_COMMA linestringm geocoll_textm2 */ yytestcase (yyruleno == 163); case 164: /* geocoll_textm2 ::= EWKT_COMMA polygonm geocoll_textm2 */ yytestcase (yyruleno == 164); case 165: /* geocoll_textm2 ::= EWKT_COMMA multipointm geocoll_textm2 */ yytestcase (yyruleno == 165); case 166: /* geocoll_textm2 ::= EWKT_COMMA multilinestringm geocoll_textm2 */ yytestcase (yyruleno == 166); case 167: /* geocoll_textm2 ::= EWKT_COMMA multipolygonm geocoll_textm2 */ yytestcase (yyruleno == 167); case 168: /* geocoll_textm2 ::= EWKT_COMMA EWKT_GEOMETRYCOLLECTION_M geocoll_textm geocoll_textm2 */ yytestcase (yyruleno == 168); case 177: /* geocoll_textz2 ::= EWKT_COMMA pointz geocoll_textz2 */ yytestcase (yyruleno == 177); case 178: /* geocoll_textz2 ::= EWKT_COMMA linestringz geocoll_textz2 */ yytestcase (yyruleno == 178); case 179: /* geocoll_textz2 ::= EWKT_COMMA polygonz geocoll_textz2 */ yytestcase (yyruleno == 179); case 180: /* geocoll_textz2 ::= EWKT_COMMA multipointz geocoll_textz2 */ yytestcase (yyruleno == 180); case 181: /* geocoll_textz2 ::= EWKT_COMMA multilinestringz geocoll_textz2 */ yytestcase (yyruleno == 181); case 182: /* geocoll_textz2 ::= EWKT_COMMA multipolygonz geocoll_textz2 */ yytestcase (yyruleno == 182); case 183: /* geocoll_textz2 ::= EWKT_COMMA EWKT_GEOMETRYCOLLECTION geocoll_textz geocoll_textz2 */ yytestcase (yyruleno == 183); case 192: /* geocoll_textzm2 ::= EWKT_COMMA pointzm geocoll_textzm2 */ yytestcase (yyruleno == 192); case 193: /* geocoll_textzm2 ::= EWKT_COMMA linestringzm geocoll_textzm2 */ yytestcase (yyruleno == 193); case 194: /* geocoll_textzm2 ::= EWKT_COMMA polygonzm geocoll_textzm2 */ yytestcase (yyruleno == 194); case 195: /* geocoll_textzm2 ::= EWKT_COMMA multipointzm geocoll_textzm2 */ yytestcase (yyruleno == 195); case 196: /* geocoll_textzm2 ::= EWKT_COMMA multilinestringzm geocoll_textzm2 */ yytestcase (yyruleno == 196); case 197: /* geocoll_textzm2 ::= EWKT_COMMA multipolygonzm geocoll_textzm2 */ yytestcase (yyruleno == 197); case 198: /* geocoll_textzm2 ::= EWKT_COMMA EWKT_GEOMETRYCOLLECTION geocoll_textzm geocoll_textzm2 */ yytestcase (yyruleno == 198); { ((gaiaGeomCollPtr) yymsp[-1].minor.yy0)->Next = (gaiaGeomCollPtr) yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } break; case 154: /* geocoll_textm ::= EWKT_OPEN_BRACKET pointm geocoll_textm2 EWKT_CLOSE_BRACKET */ case 155: /* geocoll_textm ::= EWKT_OPEN_BRACKET linestringm geocoll_textm2 EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 155); case 156: /* geocoll_textm ::= EWKT_OPEN_BRACKET polygonm geocoll_textm2 EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 156); case 157: /* geocoll_textm ::= EWKT_OPEN_BRACKET multipointm geocoll_textm2 EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 157); case 158: /* geocoll_textm ::= EWKT_OPEN_BRACKET multilinestringm geocoll_textm2 EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 158); case 159: /* geocoll_textm ::= EWKT_OPEN_BRACKET multipolygonm geocoll_textm2 EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 159); case 160: /* geocoll_textm ::= EWKT_OPEN_BRACKET EWKT_GEOMETRYCOLLECTION_M geocoll_textm geocoll_textm2 EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 160); { ((gaiaGeomCollPtr) yymsp[-2].minor.yy0)->Next = (gaiaGeomCollPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) ewkt_geomColl_xym (p_data, (gaiaGeomCollPtr) yymsp[-2].minor. yy0); } break; case 169: /* geocoll_textz ::= EWKT_OPEN_BRACKET pointz geocoll_textz2 EWKT_CLOSE_BRACKET */ case 170: /* geocoll_textz ::= EWKT_OPEN_BRACKET linestringz geocoll_textz2 EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 170); case 171: /* geocoll_textz ::= EWKT_OPEN_BRACKET polygonz geocoll_textz2 EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 171); case 172: /* geocoll_textz ::= EWKT_OPEN_BRACKET multipointz geocoll_textz2 EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 172); case 173: /* geocoll_textz ::= EWKT_OPEN_BRACKET multilinestringz geocoll_textz2 EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 173); case 174: /* geocoll_textz ::= EWKT_OPEN_BRACKET multipolygonz geocoll_textz2 EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 174); case 175: /* geocoll_textz ::= EWKT_OPEN_BRACKET EWKT_GEOMETRYCOLLECTION geocoll_textz geocoll_textz2 EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 175); { ((gaiaGeomCollPtr) yymsp[-2].minor.yy0)->Next = (gaiaGeomCollPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) ewkt_geomColl_xyz (p_data, (gaiaGeomCollPtr) yymsp[-2].minor. yy0); } break; case 184: /* geocoll_textzm ::= EWKT_OPEN_BRACKET pointzm geocoll_textzm2 EWKT_CLOSE_BRACKET */ case 185: /* geocoll_textzm ::= EWKT_OPEN_BRACKET linestringzm geocoll_textzm2 EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 185); case 186: /* geocoll_textzm ::= EWKT_OPEN_BRACKET polygonzm geocoll_textzm2 EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 186); case 187: /* geocoll_textzm ::= EWKT_OPEN_BRACKET multipointzm geocoll_textzm2 EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 187); case 188: /* geocoll_textzm ::= EWKT_OPEN_BRACKET multilinestringzm geocoll_textzm2 EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 188); case 189: /* geocoll_textzm ::= EWKT_OPEN_BRACKET multipolygonzm geocoll_textzm2 EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 189); case 190: /* geocoll_textzm ::= EWKT_OPEN_BRACKET EWKT_GEOMETRYCOLLECTION geocoll_textzm geocoll_textzm2 EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 190); { ((gaiaGeomCollPtr) yymsp[-2].minor.yy0)->Next = (gaiaGeomCollPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) ewkt_geomColl_xyzm (p_data, (gaiaGeomCollPtr) yymsp[-2]. minor.yy0); } break; default: /* (0) main ::= in */ yytestcase (yyruleno == 0); /* (1) in ::= */ yytestcase (yyruleno == 1); /* (2) in ::= in state EWKT_NEWLINE */ yytestcase (yyruleno == 2); /* (3) state ::= program */ yytestcase (yyruleno == 3); /* (4) program ::= geo_text */ yytestcase (yyruleno == 4); /* (5) program ::= geo_textm */ yytestcase (yyruleno == 5); break; }; yygoto = yyRuleInfo[yyruleno].lhs; yysize = yyRuleInfo[yyruleno].nrhs; yypParser->yyidx -= yysize; yyact = yy_find_reduce_action (yymsp[-yysize].stateno, (YYCODETYPE) yygoto); if (yyact < YYNSTATE) { #ifdef NDEBUG /* If we are not debugging and the reduce action popped at least ** one element off the stack, then we can push the new element back ** onto the stack here, and skip the stack overflow test in yy_shift(). ** That gives a significant speed improvement. */ if (yysize) { yypParser->yyidx++; yymsp -= yysize - 1; yymsp->stateno = (YYACTIONTYPE) yyact; yymsp->major = (YYCODETYPE) yygoto; yymsp->minor = yygotominor; } else #endif { yy_shift (yypParser, yyact, yygoto, &yygotominor); } } else { assert (yyact == YYNSTATE + YYNRULE + 1); yy_accept (yypParser); } } /* ** The following code executes when the parse fails */ #ifndef YYNOERRORRECOVERY static void yy_parse_failed (yyParser * yypParser /* The parser */ ) { ParseARG_FETCH; #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sFail!\n", yyTracePrompt); } #endif while (yypParser->yyidx >= 0) yy_pop_parser_stack (yypParser); /* Here code is inserted which will be executed whenever the ** parser fails */ ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ } #endif /* YYNOERRORRECOVERY */ /* ** The following code executes when a syntax error first occurs. */ static void yy_syntax_error (yyParser * yypParser, /* The parser */ int yymajor, /* The major type of the error token */ YYMINORTYPE yyminor /* The minor type of the error token */ ) { ParseARG_FETCH; #define TOKEN (yyminor.yy0) /* ** when the LEMON parser encounters an error ** then this global variable is set */ p_data->ewkt_parse_error = 1; p_data->result = NULL; ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ } /* ** The following is executed when the parser accepts */ static void yy_accept (yyParser * yypParser /* The parser */ ) { ParseARG_FETCH; #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sAccept!\n", yyTracePrompt); } #endif while (yypParser->yyidx >= 0) yy_pop_parser_stack (yypParser); /* Here code is inserted which will be executed whenever the ** parser accepts */ ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ } /* The main parser program. ** The first argument is a pointer to a structure obtained from ** "ParseAlloc" which describes the current state of the parser. ** The second argument is the major token number. The third is ** the minor token. The fourth optional argument is whatever the ** user wants (and specified in the grammar) and is available for ** use by the action routines. ** ** Inputs: **
    **
  • A pointer to the parser (an opaque structure.) **
  • The major token number. **
  • The minor token number. **
  • An option argument of a grammar-specified type. **
** ** Outputs: ** None. */ void Parse (void *yyp, /* The parser */ int yymajor, /* The major token code number */ ParseTOKENTYPE yyminor /* The value for the token */ ParseARG_PDECL /* Optional %extra_argument parameter */ ) { YYMINORTYPE yyminorunion; int yyact; /* The parser action. */ int yyendofinput; /* True if we are at the end of input */ #ifdef YYERRORSYMBOL int yyerrorhit = 0; /* True if yymajor has invoked an error */ #endif yyParser *yypParser; /* The parser */ /* (re)initialize the parser, if necessary */ yypParser = (yyParser *) yyp; if (yypParser->yyidx < 0) { #if YYSTACKDEPTH<=0 if (yypParser->yystksz <= 0) { /*memset(&yyminorunion, 0, sizeof(yyminorunion)); */ yyminorunion = yyzerominor; yyStackOverflow (yypParser, &yyminorunion); return; } #endif yypParser->yyidx = 0; yypParser->yyerrcnt = -1; yypParser->yystack[0].stateno = 0; yypParser->yystack[0].major = 0; } yyminorunion.yy0 = yyminor; yyendofinput = (yymajor == 0); ParseARG_STORE; #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sInput %s\n", yyTracePrompt, yyTokenName[yymajor]); } #endif do { yyact = yy_find_shift_action (yypParser, (YYCODETYPE) yymajor); if (yyact < YYNSTATE) { assert (!yyendofinput); /* Impossible to shift the $ token */ yy_shift (yypParser, yyact, yymajor, &yyminorunion); yypParser->yyerrcnt--; yymajor = YYNOCODE; } else if (yyact < YYNSTATE + YYNRULE) { yy_reduce (yypParser, yyact - YYNSTATE); } else { assert (yyact == YY_ERROR_ACTION); #ifdef YYERRORSYMBOL int yymx; #endif #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sSyntax Error!\n", yyTracePrompt); } #endif #ifdef YYERRORSYMBOL /* A syntax error has occurred. ** The response to an error depends upon whether or not the ** grammar defines an error token "ERROR". ** ** This is what we do if the grammar does define ERROR: ** ** * Call the %syntax_error function. ** ** * Begin popping the stack until we enter a state where ** it is legal to shift the error symbol, then shift ** the error symbol. ** ** * Set the error count to three. ** ** * Begin accepting and shifting new tokens. No new error ** processing will occur until three tokens have been ** shifted successfully. ** */ if (yypParser->yyerrcnt < 0) { yy_syntax_error (yypParser, yymajor, yyminorunion); } yymx = yypParser->yystack[yypParser->yyidx].major; if (yymx == YYERRORSYMBOL || yyerrorhit) { #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sDiscard input token %s\n", yyTracePrompt, yyTokenName[yymajor]); } #endif yy_destructor (yypParser, (YYCODETYPE) yymajor, &yyminorunion); yymajor = YYNOCODE; } else { while (yypParser->yyidx >= 0 && yymx != YYERRORSYMBOL && (yyact = yy_find_reduce_action (yypParser-> yystack[yypParser->yyidx]. stateno, YYERRORSYMBOL)) >= YYNSTATE) { yy_pop_parser_stack (yypParser); } if (yypParser->yyidx < 0 || yymajor == 0) { yy_destructor (yypParser, (YYCODETYPE) yymajor, &yyminorunion); yy_parse_failed (yypParser); yymajor = YYNOCODE; } else if (yymx != YYERRORSYMBOL) { YYMINORTYPE u2; u2.YYERRSYMDT = 0; yy_shift (yypParser, yyact, YYERRORSYMBOL, &u2); } } yypParser->yyerrcnt = 3; yyerrorhit = 1; #elif defined(YYNOERRORRECOVERY) /* If the YYNOERRORRECOVERY macro is defined, then do not attempt to ** do any kind of error recovery. Instead, simply invoke the syntax ** error routine and continue going as if nothing had happened. ** ** Applications can set this macro (for example inside %include) if ** they intend to abandon the parse upon the first syntax error seen. */ yy_syntax_error (yypParser, yymajor, yyminorunion); yy_destructor (yypParser, (YYCODETYPE) yymajor, &yyminorunion); yymajor = YYNOCODE; #else /* YYERRORSYMBOL is not defined */ /* This is what we do if the grammar does not define ERROR: ** ** * Report an error message, and throw away the input token. ** ** * If the input token is $, then fail the parse. ** ** As before, subsequent error messages are suppressed until ** three input tokens have been successfully shifted. */ if (yypParser->yyerrcnt <= 0) { yy_syntax_error (yypParser, yymajor, yyminorunion); } yypParser->yyerrcnt = 3; yy_destructor (yypParser, (YYCODETYPE) yymajor, &yyminorunion); if (yyendofinput) { yy_parse_failed (yypParser); } yymajor = YYNOCODE; #endif } } while (yymajor != YYNOCODE && yypParser->yyidx >= 0); return; } libspatialite-4.1.1/src/gaiageo/gg_gml.c0000664000175000017500000024002412163502133015047 00000000000000/* gg_gml.c -- GML parser/lexer version 4.1, 2013 May 8 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011-2013 the Initial Developer. All Rights Reserved. Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include #include #include #if defined(_WIN32) || defined(WIN32) #include #ifndef isatty #define isatty _isatty #endif #ifndef fileno #define fileno _fileno #endif #endif #define GML_PARSER_OPEN_NODE 1 #define GML_PARSER_SELF_CLOSED_NODE 2 #define GML_PARSER_CLOSED_NODE 3 #define GAIA_GML_UNKNOWN 0 #define GAIA_GML_POINT 1 #define GAIA_GML_LINESTRING 2 #define GAIA_GML_CURVE 3 #define GAIA_GML_POLYGON 4 #define GAIA_GML_MULTIPOINT 5 #define GAIA_GML_MULTILINESTRING 6 #define GAIA_GML_MULTICURVE 7 #define GAIA_GML_MULTIPOLYGON 8 #define GAIA_GML_MULTISURFACE 9 #define GAIA_GML_MULTIGEOMETRY 10 #define GML_DYN_NONE 0 #define GML_DYN_DYNLINE 1 #define GML_DYN_GEOM 2 #define GML_DYN_DYNPG 3 #define GML_DYN_NODE 4 #define GML_DYN_COORD 5 #define GML_DYN_ATTRIB 6 #define GML_DYN_BLOCK 1024 /* ** CAVEAT: we must redefine any Lemon/Flex own macro */ #define YYMINORTYPE GML_MINORTYPE #define YY_CHAR GML_YY_CHAR #define input gml_input #define ParseAlloc gmlParseAlloc #define ParseFree gmlParseFree #define ParseStackPeak gmlParseStackPeak #define Parse gmlParse #define yyStackEntry gml_yyStackEntry #define yyzerominor gml_yyzerominor #define yy_accept gml_yy_accept #define yy_action gml_yy_action #define yy_base gml_yy_base #define yy_buffer_stack gml_yy_buffer_stack #define yy_buffer_stack_max gml_yy_buffer_stack_max #define yy_buffer_stack_top gml_yy_buffer_stack_top #define yy_c_buf_p gml_yy_c_buf_p #define yy_chk gml_yy_chk #define yy_def gml_yy_def #define yy_default gml_yy_default #define yy_destructor gml_yy_destructor #define yy_ec gml_yy_ec #define yy_fatal_error gml_yy_fatal_error #define yy_find_reduce_action gml_yy_find_reduce_action #define yy_find_shift_action gml_yy_find_shift_action #define yy_get_next_buffer gml_yy_get_next_buffer #define yy_get_previous_state gml_yy_get_previous_state #define yy_init gml_yy_init #define yy_init_globals gml_yy_init_globals #define yy_lookahead gml_yy_lookahead #define yy_meta gml_yy_meta #define yy_nxt gml_yy_nxt #define yy_parse_failed gml_yy_parse_failed #define yy_pop_parser_stack gml_yy_pop_parser_stack #define yy_reduce gml_yy_reduce #define yy_reduce_ofst gml_yy_reduce_ofst #define yy_shift gml_yy_shift #define yy_shift_ofst gml_yy_shift_ofst #define yy_start gml_yy_start #define yy_state_type gml_yy_state_type #define yy_syntax_error gml_yy_syntax_error #define yy_trans_info gml_yy_trans_info #define yy_try_NUL_trans gml_yy_try_NUL_trans #define yyParser gml_yyParser #define yyStackEntry gml_yyStackEntry #define yyStackOverflow gml_yyStackOverflow #define yyRuleInfo gml_yyRuleInfo #define yyunput gml_yyunput #define yyzerominor gml_yyzerominor #define yyTraceFILE gml_yyTraceFILE #define yyTracePrompt gml_yyTracePrompt #define yyTokenName gml_yyTokenName #define yyRuleName gml_yyRuleName #define ParseTrace gml_ParseTrace #define yylex gml_yylex #define YY_DECL int yylex (yyscan_t yyscanner) /* include LEMON generated header */ #include "Gml.h" typedef union { char *pval; struct symtab *symp; } gml_yystype; #define YYSTYPE gml_yystype /* ** This is a linked-list struct to store all the values for each token. */ typedef struct gmlFlexTokenStruct { char *value; struct gmlFlexTokenStruct *Next; } gmlFlexToken; typedef struct gml_coord { char *Value; struct gml_coord *Next; } gmlCoord; typedef gmlCoord *gmlCoordPtr; typedef struct gml_attr { char *Key; char *Value; struct gml_attr *Next; } gmlAttr; typedef gmlAttr *gmlAttrPtr; typedef struct gml_node { char *Tag; int Type; int Error; struct gml_attr *Attributes; struct gml_coord *Coordinates; struct gml_node *Next; } gmlNode; typedef gmlNode *gmlNodePtr; typedef struct gml_dynamic_ring { gaiaDynamicLinePtr ring; int interior; int has_z; struct gml_dynamic_ring *next; } gmlDynamicRing; typedef gmlDynamicRing *gmlDynamicRingPtr; typedef struct gml_dynamic_polygon { struct gml_dynamic_ring *first; struct gml_dynamic_ring *last; } gmlDynamicPolygon; typedef gmlDynamicPolygon *gmlDynamicPolygonPtr; struct gml_dyn_block { /* a struct taking trace of dynamic allocations */ int type[GML_DYN_BLOCK]; void *ptr[GML_DYN_BLOCK]; int index; struct gml_dyn_block *next; }; struct gml_data { /* a struct used to make the lexer-parser reentrant and thread-safe */ int gml_parse_error; int gml_line; int gml_col; struct gml_dyn_block *gml_first_dyn_block; struct gml_dyn_block *gml_last_dyn_block; gmlNodePtr result; YYSTYPE GmlLval; }; static struct gml_dyn_block * gmlCreateDynBlock (void) { /* allocating a new block to trace dynamic allocations */ int i; struct gml_dyn_block *p = malloc (sizeof (struct gml_dyn_block)); for (i = 0; i < GML_DYN_BLOCK; i++) { /* initializing map entries */ p->type[i] = GML_DYN_NONE; p->ptr[i] = NULL; } p->index = 0; p->next = NULL; return p; } static void gmlMapDynAlloc (struct gml_data *p_data, int type, void *ptr) { /* appending a dynamic allocation into the map */ struct gml_dyn_block *p; if (p_data->gml_first_dyn_block == NULL) { /* inserting the first block of the map */ p = gmlCreateDynBlock (); p_data->gml_first_dyn_block = p; p_data->gml_last_dyn_block = p; } if (p_data->gml_last_dyn_block->index >= GML_DYN_BLOCK) { /* adding a further block to the map */ p = gmlCreateDynBlock (); p_data->gml_last_dyn_block->next = p; p_data->gml_last_dyn_block = p; } p_data->gml_last_dyn_block->type[p_data->gml_last_dyn_block->index] = type; p_data->gml_last_dyn_block->ptr[p_data->gml_last_dyn_block->index] = ptr; p_data->gml_last_dyn_block->index++; } static void gmlMapDynClean (struct gml_data *p_data, void *ptr) { /* deleting a dynamic allocation from the map */ int i; struct gml_dyn_block *p = p_data->gml_first_dyn_block; while (p) { for (i = 0; i < GML_DYN_BLOCK; i++) { switch (p->type[i]) { case GML_DYN_DYNLINE: case GML_DYN_GEOM: case GML_DYN_DYNPG: case GML_DYN_NODE: case GML_DYN_COORD: case GML_DYN_ATTRIB: if (p->ptr[i] == ptr) { p->type[i] = GML_DYN_NONE; return; } break; }; } p = p->next; } } static void gml_free_dyn_polygon (gmlDynamicPolygonPtr dyn) { /* deleting a dynamic polygon (ring collection) */ gmlDynamicRingPtr r; gmlDynamicRingPtr rn; if (!dyn) return; r = dyn->first; while (r) { rn = r->next; if (r->ring) gaiaFreeDynamicLine (r->ring); free (r); r = rn; } free (dyn); } static void gml_free_coord (gmlCoordPtr c) { /* deleting a GML coordinate */ if (c == NULL) return; if (c->Value) free (c->Value); free (c); } static void gml_free_attrib (gmlAttrPtr a) { /* deleting a GML attribute */ if (a == NULL) return; if (a->Key) free (a->Key); if (a->Value) free (a->Value); free (a); } static void gml_free_node (gmlNodePtr n) { /* deleting a GML node */ gmlAttrPtr a; gmlAttrPtr an; gmlCoordPtr c; gmlCoordPtr cn; if (n == NULL) return; a = n->Attributes; while (a) { an = a->Next; gml_free_attrib (a); a = an; } c = n->Coordinates; while (c) { cn = c->Next; gml_free_coord (c); c = cn; } if (n->Tag) free (n->Tag); free (n); } static void gmlCleanMapDynAlloc (struct gml_data *p_data, int clean_all) { /* cleaning the dynamic allocations map */ int i; struct gml_dyn_block *pn; struct gml_dyn_block *p = p_data->gml_first_dyn_block; while (p) { if (clean_all) { for (i = 0; i < GML_DYN_BLOCK; i++) { /* deleting Geometry objects */ switch (p->type[i]) { case GML_DYN_DYNLINE: gaiaFreeDynamicLine ((gaiaDynamicLinePtr) (p->ptr[i])); break; case GML_DYN_GEOM: gaiaFreeGeomColl ((gaiaGeomCollPtr) (p->ptr[i])); break; case GML_DYN_DYNPG: gml_free_dyn_polygon ((gmlDynamicPolygonPtr) (p->ptr[i])); break; case GML_DYN_NODE: gml_free_node ((gmlNodePtr) (p->ptr[i])); break; case GML_DYN_COORD: gml_free_coord ((gmlCoordPtr) (p->ptr[i])); break; case GML_DYN_ATTRIB: gml_free_attrib ((gmlAttrPtr) (p->ptr[i])); break; }; } } /* deleting the map block */ pn = p->next; free (p); p = pn; } } static gmlDynamicPolygonPtr gml_alloc_dyn_polygon (struct gml_data *p_data) { /* creating a dynamic polygon (ring collection) */ gmlDynamicPolygonPtr p = malloc (sizeof (gmlDynamicPolygon)); gmlMapDynAlloc (p_data, GML_DYN_DYNPG, p); p->first = NULL; p->last = NULL; return p; } static void gml_add_polygon_ring (struct gml_data *p_data, gmlDynamicPolygonPtr dyn_pg, gaiaDynamicLinePtr dyn, int interior, int has_z) { /* inserting a further ring into the collection (dynamic polygon) */ gmlDynamicRingPtr p = malloc (sizeof (gmlDynamicRing)); p->ring = dyn; p->interior = interior; p->has_z = has_z; p->next = NULL; if (dyn_pg->first == NULL) dyn_pg->first = p; if (dyn_pg->last != NULL) dyn_pg->last->next = p; dyn_pg->last = p; gmlMapDynClean (p_data, p); } static void gml_freeString (char **ptr) { /* releasing a string from the lexer */ if (*ptr != NULL) free (*ptr); *ptr = NULL; } static void gml_saveString (char **ptr, const char *str) { /* saving a string from the lexer */ int len = strlen (str); gml_freeString (ptr); *ptr = malloc (len + 1); strcpy (*ptr, str); } static gmlCoordPtr gml_coord (struct gml_data *p_data, void *value) { /* creating a coord Item */ int len; gmlFlexToken *tok = (gmlFlexToken *) value; gmlCoordPtr c = malloc (sizeof (gmlCoord)); gmlMapDynAlloc (p_data, GML_DYN_COORD, c); len = strlen (tok->value); c->Value = malloc (len + 1); strcpy (c->Value, tok->value); c->Next = NULL; return c; } static gmlAttrPtr gml_attribute (struct gml_data *p_data, void *key, void *value) { /* creating an attribute */ int len; gmlFlexToken *k_tok = (gmlFlexToken *) key; gmlFlexToken *v_tok = (gmlFlexToken *) value; gmlAttrPtr a = malloc (sizeof (gmlAttr)); gmlMapDynAlloc (p_data, GML_DYN_ATTRIB, a); len = strlen (k_tok->value); a->Key = malloc (len + 1); strcpy (a->Key, k_tok->value); len = strlen (v_tok->value); /* we need to de-quote the string, removing first and last ".." */ if (*(v_tok->value + 0) == '"' && *(v_tok->value + len - 1) == '"') { int bytesToCopy = len - 2; char *startingPointForCopy = v_tok->value + 1; a->Value = malloc (bytesToCopy + 1); memcpy (a->Value, startingPointForCopy, bytesToCopy); *(a->Value + bytesToCopy) = '\0'; } else { a->Value = malloc (len + 1); strcpy (a->Value, v_tok->value); } a->Next = NULL; return a; } static void gml_freeTree (struct gml_data *p_data, gmlNodePtr t) { /* deleting a GML tree */ gmlNodePtr n; gmlNodePtr nn; n = t; while (n) { nn = n->Next; gmlMapDynClean (p_data, n); gml_free_node (n); n = nn; } } static gmlNodePtr gml_createNode (struct gml_data *p_data, void *tag, void *attributes, void *coords) { /* creating a node */ gmlAttrPtr a; gmlCoordPtr c; int len; gmlFlexToken *tok = (gmlFlexToken *) tag; gmlNodePtr n = malloc (sizeof (gmlNode)); gmlMapDynAlloc (p_data, GML_DYN_NODE, n); len = strlen (tok->value); n->Tag = malloc (len + 1); strcpy (n->Tag, tok->value); n->Type = GML_PARSER_OPEN_NODE; n->Error = 0; a = (gmlAttrPtr) attributes; while (a) { /* transferring ownership of attributes */ gmlMapDynClean (p_data, a); a = a->Next; } n->Attributes = attributes; c = (gmlCoordPtr) coords; while (c) { /* transferring ownership of attributes */ gmlMapDynClean (p_data, c); c = c->Next; } n->Coordinates = coords; n->Next = NULL; return n; } static gmlNodePtr gml_createSelfClosedNode (struct gml_data *p_data, void *tag, void *attributes) { /* creating a self-closed node */ gmlAttrPtr a; int len; gmlFlexToken *tok = (gmlFlexToken *) tag; gmlNodePtr n = malloc (sizeof (gmlNode)); gmlMapDynAlloc (p_data, GML_DYN_NODE, n); len = strlen (tok->value); n->Tag = malloc (len + 1); strcpy (n->Tag, tok->value); n->Type = GML_PARSER_SELF_CLOSED_NODE; n->Error = 0; a = (gmlAttrPtr) attributes; while (a) { /* transferring ownership of attributes */ gmlMapDynClean (p_data, a); a = a->Next; } n->Attributes = attributes; n->Coordinates = NULL; n->Next = NULL; return n; } static gmlNodePtr gml_closingNode (struct gml_data *p_data, void *tag) { /* creating a closing node */ int len; gmlFlexToken *tok = (gmlFlexToken *) tag; gmlNodePtr n = malloc (sizeof (gmlNode)); gmlMapDynAlloc (p_data, GML_DYN_NODE, n); len = strlen (tok->value); n->Tag = malloc (len + 1); strcpy (n->Tag, tok->value); n->Type = GML_PARSER_CLOSED_NODE; n->Error = 0; n->Attributes = NULL; n->Coordinates = NULL; n->Next = NULL; return n; } static int gml_cleanup (gmlFlexToken * token) { gmlFlexToken *ptok; gmlFlexToken *ptok_n; if (token == NULL) return 0; ptok = token; while (ptok) { ptok_n = ptok->Next; if (ptok->value != NULL) free (ptok->value); free (ptok); ptok = ptok_n; } return 0; } static void gml_xferString (char **p, const char *str) { /* saving some token */ int len; if (str == NULL) { *p = NULL; return; } len = strlen (str); *p = malloc (len + 1); strcpy (*p, str); } static int guessGmlSrid (gmlNodePtr node) { /* attempting to guess the SRID */ int len; gmlAttrPtr attr = node->Attributes; while (attr) { if (strcmp (attr->Key, "srsName") == 0) { len = strlen (attr->Value); if (len > 5) { if (strncmp (attr->Value, "EPSG:", 5) == 0) return atoi (attr->Value + 5); } if (len > 21) { if (strncmp (attr->Value, "urn:ogc:def:crs:EPSG:", 21) == 0) { int i = strlen (attr->Value) - 1; for (; i >= 0; i--) { if (*(attr->Value + i) == ':') return atoi (attr->Value + i + 1); } } } } attr = attr->Next; } return -1; } static int gml_get_srsDimension (gmlNodePtr node) { /* attempting to establis if there is a Z coordinate */ gmlAttrPtr attr = node->Attributes; while (attr) { if (strcmp (attr->Key, "srsDimension") == 0) { if (atoi (attr->Value) == 3) return 1; else return 0; } attr = attr->Next; } return 0; } static int guessGmlGeometryType (gmlNodePtr node) { /* attempting to guess the Geometry Type for a GML node */ int type = GAIA_GML_UNKNOWN; if (strcmp (node->Tag, "gml:Point") == 0 || strcmp (node->Tag, "Point") == 0) type = GAIA_GML_POINT; if (strcmp (node->Tag, "gml:LineString") == 0 || strcmp (node->Tag, "LineString") == 0) type = GAIA_GML_LINESTRING; if (strcmp (node->Tag, "gml:Curve") == 0 || strcmp (node->Tag, "Curve") == 0) type = GAIA_GML_CURVE; if (strcmp (node->Tag, "gml:Polygon") == 0 || strcmp (node->Tag, "Polygon") == 0) type = GAIA_GML_POLYGON; if (strcmp (node->Tag, "gml:MultiPoint") == 0 || strcmp (node->Tag, "MultiPoint") == 0) type = GAIA_GML_MULTIPOINT; if (strcmp (node->Tag, "gml:MultiLineString") == 0 || strcmp (node->Tag, "MultiLineString") == 0) type = GAIA_GML_MULTILINESTRING; if (strcmp (node->Tag, "gml:MultiCurve") == 0 || strcmp (node->Tag, "MultiCurve") == 0) type = GAIA_GML_MULTICURVE; if (strcmp (node->Tag, "gml:MultiPolygon") == 0 || strcmp (node->Tag, "MultiPolygon") == 0) type = GAIA_GML_MULTIPOLYGON; if (strcmp (node->Tag, "gml:MultiSurface") == 0 || strcmp (node->Tag, "MultiSurface") == 0) type = GAIA_GML_MULTISURFACE; if (strcmp (node->Tag, "gml:MultiGeometry") == 0 || strcmp (node->Tag, "MultiGeometry") == 0) type = GAIA_GML_MULTIGEOMETRY; return type; } static int gml_check_coord (const char *value) { /* checking a GML coordinate */ int decimal = 0; const char *p = value; if (*p == '+' || *p == '-') p++; while (*p != '\0') { if (*p == '.') { if (!decimal) decimal = 1; else return 0; } else if (*p >= '0' && *p <= '9') ; else return 0; p++; } return 1; } static int gml_extract_coords (const char *value, double *x, double *y, double *z, int *count) { /* extracting GML v2.x coords from a comma-separated string */ const char *in = value; char buf[1024]; char *out = buf; *out = '\0'; while (*in != '\0') { if (*in == ',') { *out = '\0'; if (*buf != '\0') { if (!gml_check_coord (buf)) return 0; switch (*count) { case 0: *x = atof (buf); *count += 1; break; case 1: *y = atof (buf); *count += 1; break; case 2: *z = atof (buf); *count += 1; break; default: *count += 1; break; }; } in++; out = buf; *out = '\0'; continue; } *out++ = *in++; } *out = '\0'; /* parsing the last item */ if (*buf != '\0') { if (!gml_check_coord (buf)) return 0; switch (*count) { case 0: *x = atof (buf); *count += 1; break; case 1: *y = atof (buf); *count += 1; break; case 2: *z = atof (buf); *count += 1; break; default: *count += 1; break; }; } return 1; } static int gml_parse_point_v2 (gmlCoordPtr coord, double *x, double *y, double *z, int *has_z) { /* parsing GML v2.x [Point] */ int count = 0; gmlCoordPtr c = coord; while (c) { if (!gml_extract_coords (c->Value, x, y, z, &count)) return 0; c = c->Next; } if (count == 2) { *has_z = 0; return 1; } if (count == 3) { *has_z = 1; return 1; } return 0; } static int gml_parse_point_v3 (gmlCoordPtr coord, double *x, double *y, double *z, int *has_z) { /* parsing GML v2.x [Point] */ int count = 0; gmlCoordPtr c = coord; while (c) { if (!gml_check_coord (c->Value)) return 0; switch (count) { case 0: *x = atof (c->Value); count++; break; case 1: *y = atof (c->Value); count++; break; case 2: *z = atof (c->Value); count++; break; default: count++; break; }; c = c->Next; } if (count == 2) { *has_z = 0; return 1; } if (count == 3) { *has_z = 1; return 1; } return 0; } static int gml_parse_point (struct gml_data *p_data, gaiaGeomCollPtr geom, gmlNodePtr node, int srid, gmlNodePtr * next) { /* parsing a */ double x; double y; double z; int has_z; gaiaGeomCollPtr pt; gaiaGeomCollPtr last; if (strcmp (node->Tag, "gml:coordinates") == 0 || strcmp (node->Tag, "coordinates") == 0) { /* parsing a GML v.2.x */ if (!gml_parse_point_v2 (node->Coordinates, &x, &y, &z, &has_z)) return 0; node = node->Next; if (node == NULL) return 0; if (strcmp (node->Tag, "gml:coordinates") == 0 || strcmp (node->Tag, "coordinates") == 0) ; else return 0; node = node->Next; if (node == NULL) return 0; if (strcmp (node->Tag, "gml:Point") == 0 || strcmp (node->Tag, "Point") == 0) ; else return 0; *next = node->Next; goto ok; } if (strcmp (node->Tag, "gml:pos") == 0 || strcmp (node->Tag, "pos") == 0) { /* parsing a GML v.3.x */ if (!gml_parse_point_v3 (node->Coordinates, &x, &y, &z, &has_z)) return 0; node = node->Next; if (node == NULL) return 0; if (strcmp (node->Tag, "gml:pos") == 0 || strcmp (node->Tag, "pos") == 0) ; else return 0; node = node->Next; if (node == NULL) return 0; if (strcmp (node->Tag, "gml:Point") == 0 || strcmp (node->Tag, "Point") == 0) ; else return 0; *next = node->Next; goto ok; } return 0; ok: /* ok, GML nodes match as expected */ if (has_z) { pt = gaiaAllocGeomCollXYZ (); gmlMapDynAlloc (p_data, GML_DYN_GEOM, pt); pt->Srid = srid; gaiaAddPointToGeomCollXYZ (pt, x, y, z); } else { pt = gaiaAllocGeomColl (); gmlMapDynAlloc (p_data, GML_DYN_GEOM, pt); pt->Srid = srid; gaiaAddPointToGeomColl (pt, x, y); } last = geom; while (1) { /* searching the last Geometry within chain */ if (last->Next == NULL) break; last = last->Next; } last->Next = pt; return 1; } static int gml_extract_multi_coord (const char *value, double *x, double *y, double *z, int *count, int *follow) { /* extracting GML v2.x coords from a comma-separated string */ const char *in = value; char buf[1024]; char *out = buf; int last; *out = '\0'; while (*in != '\0') { last = *in; if (*in == ',') { *out = '\0'; if (*buf != '\0') { if (!gml_check_coord (buf)) return 0; switch (*count) { case 0: *x = atof (buf); *count += 1; break; case 1: *y = atof (buf); *count += 1; break; case 2: *z = atof (buf); *count += 1; break; default: *count += 1; break; }; } in++; out = buf; *out = '\0'; continue; } *out++ = *in++; } *out = '\0'; /* parsing the last item */ if (*buf != '\0') { if (!gml_check_coord (buf)) return 0; switch (*count) { case 0: *x = atof (buf); *count += 1; break; case 1: *y = atof (buf); *count += 1; break; case 2: *z = atof (buf); *count += 1; break; default: *count += 1; break; }; } if (last == ',') *follow = 1; else *follow = 0; return 1; } static int gml_extract_multi_coords (gmlCoordPtr coord, double *x, double *y, double *z, int *count, gmlCoordPtr * next) { /* extracting GML v2.x coords from a comma-separated string */ int follow; gmlCoordPtr c = coord; while (c) { if (!gml_extract_multi_coord (c->Value, x, y, z, count, &follow)) return 0; if (!follow && c->Next != NULL) { if (*(c->Next->Value) == ',') follow = 1; } if (follow) c = c->Next; else { *next = c->Next; break; } } return 1; } static void gml_add_point_to_line (gaiaDynamicLinePtr dyn, double x, double y) { /* appending a point */ gaiaAppendPointToDynamicLine (dyn, x, y); } static void gml_add_point_to_lineZ (gaiaDynamicLinePtr dyn, double x, double y, double z) { /* appending a point */ gaiaAppendPointZToDynamicLine (dyn, x, y, z); } static int gml_parse_coordinates (gmlCoordPtr coord, gaiaDynamicLinePtr dyn, int *has_z) { /* parsing GML v2.x [Linestring or Ring] */ int count = 0; double x; double y; double z; gmlCoordPtr next; gmlCoordPtr c = coord; while (c) { if (!gml_extract_multi_coords (c, &x, &y, &z, &count, &next)) return 0; if (count == 2) { *has_z = 0; gml_add_point_to_line (dyn, x, y); count = 0; } else if (count == 3) { gml_add_point_to_lineZ (dyn, x, y, z); count = 0; } else return 0; c = next; } return 1; } static int gml_parse_posList (gmlCoordPtr coord, gaiaDynamicLinePtr dyn, int has_z) { /* parsing GML v3.x [Linestring or Ring] */ int count = 0; double x; double y; double z; gmlCoordPtr c = coord; while (c) { if (!gml_check_coord (c->Value)) return 0; if (!has_z) { switch (count) { case 0: x = atof (c->Value); count++; break; case 1: y = atof (c->Value); gml_add_point_to_line (dyn, x, y); count = 0; break; }; } else { switch (count) { case 0: x = atof (c->Value); count++; break; case 1: y = atof (c->Value); count++; break; case 2: z = atof (c->Value); gml_add_point_to_lineZ (dyn, x, y, z); count = 0; break; }; } c = c->Next; } if (count != 0) return 0; return 1; } static int gml_parse_pos_chain (gmlNodePtr * xnode, gaiaDynamicLinePtr dyn, int *x_has_z) { /* parsing a chain of gml:pos elements */ int has_z; int error = 0; int dim_3d = 0; double x; double y; double z; int count = 0; gmlNodePtr last_node = *xnode; gmlNodePtr node = *xnode; while (node != NULL) { if (strcmp (node->Tag, "gml:pos") == 0 || strcmp (node->Tag, "pos") == 0) ; else break; if (!gml_parse_point_v3 (node->Coordinates, &x, &y, &z, &has_z)) return 0; if (has_z) { gml_add_point_to_lineZ (dyn, x, y, z); dim_3d = 1; } else gml_add_point_to_line (dyn, x, y); node = node->Next; if (strcmp (node->Tag, "gml:pos") == 0 || strcmp (node->Tag, "pos") == 0) last_node = node; else { error = 1; break; } count++; node = node->Next; } if (count >= 2 && error == 0) { /* valid sequence found */ *x_has_z = dim_3d; *xnode = last_node; return 1; } return 0; } static int gml_count_dyn_points (gaiaDynamicLinePtr dyn) { /* count how many vertices are into sone linestring/ring */ int iv = 0; gaiaPointPtr pt = dyn->First; while (pt) { iv++; pt = pt->Next; } return iv; } static int gml_parse_linestring (struct gml_data *p_data, gaiaGeomCollPtr geom, gmlNodePtr node, int srid, gmlNodePtr * next) { /* parsing a */ gaiaGeomCollPtr ln; gaiaGeomCollPtr last; gaiaLinestringPtr new_ln; gaiaPointPtr pt; int iv; int has_z = 1; int points = 0; gaiaDynamicLinePtr dyn = gaiaAllocDynamicLine (); gmlMapDynAlloc (p_data, GML_DYN_DYNLINE, dyn); if (strcmp (node->Tag, "gml:coordinates") == 0 || strcmp (node->Tag, "coordinates") == 0) { /* parsing a GML v.2.x */ if (!gml_parse_coordinates (node->Coordinates, dyn, &has_z)) goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:coordinates") == 0 || strcmp (node->Tag, "coordinates") == 0) ; else goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:LineString") == 0 || strcmp (node->Tag, "LineString") == 0) ; else goto error; *next = node->Next; goto ok; } if (strcmp (node->Tag, "gml:posList") == 0 || strcmp (node->Tag, "posList") == 0) { /* parsing a GML v.3.x */ has_z = gml_get_srsDimension (node); if (!gml_parse_posList (node->Coordinates, dyn, has_z)) goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:posList") == 0 || strcmp (node->Tag, "posList") == 0) ; else goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:LineString") == 0 || strcmp (node->Tag, "LineString") == 0) ; else goto error; *next = node->Next; goto ok; } if (strcmp (node->Tag, "gml:pos") == 0 || strcmp (node->Tag, "pos") == 0) { /* parsing a GML v.3.x */ gmlNodePtr node2 = node; if (!gml_parse_pos_chain (&node2, dyn, &has_z)) goto error; node = node2->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:LineString") == 0 || strcmp (node->Tag, "LineString") == 0) ; else goto error; *next = node->Next; goto ok; } ok: /* ok, GML nodes match as expected */ points = gml_count_dyn_points (dyn); if (points < 2) goto error; if (has_z) { ln = gaiaAllocGeomCollXYZ (); gmlMapDynAlloc (p_data, GML_DYN_GEOM, ln); ln->Srid = srid; new_ln = gaiaAddLinestringToGeomColl (ln, points); pt = dyn->First; iv = 0; while (pt) { gaiaSetPointXYZ (new_ln->Coords, iv, pt->X, pt->Y, pt->Z); iv++; pt = pt->Next; } } else { ln = gaiaAllocGeomColl (); gmlMapDynAlloc (p_data, GML_DYN_GEOM, ln); ln->Srid = srid; new_ln = gaiaAddLinestringToGeomColl (ln, points); pt = dyn->First; iv = 0; while (pt) { gaiaSetPoint (new_ln->Coords, iv, pt->X, pt->Y); iv++; pt = pt->Next; } } last = geom; while (1) { /* searching the last Geometry within chain */ if (last->Next == NULL) break; last = last->Next; } last->Next = ln; gmlMapDynClean (p_data, dyn); gaiaFreeDynamicLine (dyn); return 1; error: gmlMapDynClean (p_data, dyn); gaiaFreeDynamicLine (dyn); return 0; } static int gml_parse_curve (struct gml_data *p_data, gaiaGeomCollPtr geom, gmlNodePtr node, int srid, gmlNodePtr * next) { /* parsing a */ gaiaGeomCollPtr ln; gaiaGeomCollPtr last; gaiaLinestringPtr new_ln; gaiaPointPtr pt; int iv; int has_z = 1; int points = 0; gaiaDynamicLinePtr dyn = gaiaAllocDynamicLine (); gmlMapDynAlloc (p_data, GML_DYN_DYNLINE, dyn); if (strcmp (node->Tag, "gml:segments") == 0 || strcmp (node->Tag, "segments") == 0) { /* parsing a GML v.3.x */ node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:LineStringSegment") == 0 || strcmp (node->Tag, "LineStringSegment") == 0) ; else goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:posList") == 0 || strcmp (node->Tag, "posList") == 0) { /* parsing a GML v.3.x */ has_z = gml_get_srsDimension (node); if (!gml_parse_posList (node->Coordinates, dyn, has_z)) goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:posList") == 0 || strcmp (node->Tag, "posList") == 0) ; else goto error; } else if (strcmp (node->Tag, "gml:pos") == 0 || strcmp (node->Tag, "pos") == 0) { /* parsing a GML v.3.x */ gmlNodePtr node2 = node; if (!gml_parse_pos_chain (&node2, dyn, &has_z)) goto error; node = node2; if (node == NULL) goto error; } else goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:LineStringSegment") == 0 || strcmp (node->Tag, "LineStringSegment") == 0) ; else goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:segments") == 0 || strcmp (node->Tag, "segments") == 0) ; else goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:Curve") == 0 || strcmp (node->Tag, "Curve") == 0) ; else goto error; *next = node->Next; goto ok; } goto error; ok: /* ok, GML nodes match as expected */ points = gml_count_dyn_points (dyn); if (points < 2) goto error; if (has_z) { ln = gaiaAllocGeomCollXYZ (); gmlMapDynAlloc (p_data, GML_DYN_GEOM, ln); ln->Srid = srid; new_ln = gaiaAddLinestringToGeomColl (ln, points); pt = dyn->First; iv = 0; while (pt) { gaiaSetPointXYZ (new_ln->Coords, iv, pt->X, pt->Y, pt->Z); iv++; pt = pt->Next; } } else { ln = gaiaAllocGeomColl (); gmlMapDynAlloc (p_data, GML_DYN_GEOM, ln); ln->Srid = srid; new_ln = gaiaAddLinestringToGeomColl (ln, points); pt = dyn->First; iv = 0; while (pt) { gaiaSetPoint (new_ln->Coords, iv, pt->X, pt->Y); iv++; pt = pt->Next; } } last = geom; while (1) { /* searching the last Geometry within chain */ if (last->Next == NULL) break; last = last->Next; } last->Next = ln; gmlMapDynClean (p_data, dyn); gaiaFreeDynamicLine (dyn); return 1; error: gmlMapDynClean (p_data, dyn); gaiaFreeDynamicLine (dyn); return 0; } static gaiaDynamicLinePtr gml_parse_ring (struct gml_data *p_data, gmlNodePtr node, int *interior, int *has_z, gmlNodePtr * next) { /* parsing a generic GML ring */ gaiaDynamicLinePtr dyn = gaiaAllocDynamicLine (); gmlMapDynAlloc (p_data, GML_DYN_DYNLINE, dyn); *has_z = 1; if (strcmp (node->Tag, "gml:outerBoundaryIs") == 0 || strcmp (node->Tag, "outerBoundaryIs") == 0) { /* parsing a GML v.2.x */ node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:LinearRing") == 0 || strcmp (node->Tag, "LinearRing") == 0) ; else goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:coordinates") == 0 || strcmp (node->Tag, "coordinates") == 0) { /* parsing a GML v.2.x */ if (!gml_parse_coordinates (node->Coordinates, dyn, has_z)) goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:coordinates") == 0 || strcmp (node->Tag, "coordinates") == 0) ; else goto error; } else if (strcmp (node->Tag, "gml:posList") == 0 || strcmp (node->Tag, "posList") == 0) { /* parsing a GML v.3.x */ *has_z = gml_get_srsDimension (node); if (!gml_parse_posList (node->Coordinates, dyn, *has_z)) goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:posList") == 0 || strcmp (node->Tag, "posList") == 0) ; else goto error; } else if (strcmp (node->Tag, "gml:pos") == 0 || strcmp (node->Tag, "pos") == 0) { /* parsing a GML v.3.x */ gmlNodePtr node2 = node; if (!gml_parse_pos_chain (&node2, dyn, has_z)) goto error; node = node2; if (node == NULL) goto error; } else goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:LinearRing") == 0 || strcmp (node->Tag, "LinearRing") == 0) ; else goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:outerBoundaryIs") == 0 || strcmp (node->Tag, "outerBoundaryIs") == 0) ; else goto error; *interior = 0; *next = node->Next; return dyn; } if (strcmp (node->Tag, "gml:innerBoundaryIs") == 0 || strcmp (node->Tag, "innerBoundaryIs") == 0) { /* parsing a GML v.2.x */ node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:LinearRing") == 0 || strcmp (node->Tag, "LinearRing") == 0) ; else goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:coordinates") == 0 || strcmp (node->Tag, "coordinates") == 0) { /* parsing a GML v.2.x */ if (!gml_parse_coordinates (node->Coordinates, dyn, has_z)) goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:coordinates") == 0 || strcmp (node->Tag, "coordinates") == 0) ; else goto error; } else if (strcmp (node->Tag, "gml:posList") == 0 || strcmp (node->Tag, "posList") == 0) { /* parsing a GML v.3.x */ *has_z = gml_get_srsDimension (node); if (!gml_parse_posList (node->Coordinates, dyn, *has_z)) goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:posList") == 0 || strcmp (node->Tag, "posList") == 0) ; else goto error; } else if (strcmp (node->Tag, "gml:pos") == 0 || strcmp (node->Tag, "pos") == 0) { /* parsing a GML v.3.x */ gmlNodePtr node2 = node; if (!gml_parse_pos_chain (&node2, dyn, has_z)) goto error; node = node2; if (node == NULL) goto error; } else goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:LinearRing") == 0 || strcmp (node->Tag, "LinearRing") == 0) ; else goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:innerBoundaryIs") == 0 || strcmp (node->Tag, "innerBoundaryIs") == 0) ; else goto error; *interior = 1; *next = node->Next; return dyn; } if (strcmp (node->Tag, "gml:exterior") == 0 || strcmp (node->Tag, "exterior") == 0) { /* parsing a GML v.3.x */ node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:LinearRing") == 0 || strcmp (node->Tag, "LinearRing") == 0) ; else goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:posList") == 0 || strcmp (node->Tag, "posList") == 0) { /* parsing a GML v.3.x */ *has_z = gml_get_srsDimension (node); if (!gml_parse_posList (node->Coordinates, dyn, *has_z)) goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:posList") == 0 || strcmp (node->Tag, "posList") == 0) ; else goto error; } else if (strcmp (node->Tag, "gml:pos") == 0 || strcmp (node->Tag, "pos") == 0) { /* parsing a GML v.3.x */ gmlNodePtr node2 = node; if (!gml_parse_pos_chain (&node2, dyn, has_z)) goto error; node = node2; if (node == NULL) goto error; } else goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:LinearRing") == 0 || strcmp (node->Tag, "LinearRing") == 0) ; else goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:exterior") == 0 || strcmp (node->Tag, "exterior") == 0) ; else goto error; *interior = 0; *next = node->Next; return dyn; } if (strcmp (node->Tag, "gml:interior") == 0 || strcmp (node->Tag, "interior") == 0) { /* parsing a GML v.3.x */ node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:LinearRing") == 0 || strcmp (node->Tag, "LinearRing") == 0) ; else goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:posList") == 0 || strcmp (node->Tag, "posList") == 0) { /* parsing a GML v.3.x */ *has_z = gml_get_srsDimension (node); if (!gml_parse_posList (node->Coordinates, dyn, *has_z)) goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:posList") == 0 || strcmp (node->Tag, "posList") == 0) ; else goto error; } else if (strcmp (node->Tag, "gml:pos") == 0 || strcmp (node->Tag, "pos") == 0) { /* parsing a GML v.3.x */ gmlNodePtr node2 = node; if (!gml_parse_pos_chain (&node2, dyn, has_z)) goto error; node = node2; if (node == NULL) goto error; } else goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:LinearRing") == 0 || strcmp (node->Tag, "LinearRing") == 0) ; else goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:interior") == 0 || strcmp (node->Tag, "interior") == 0) ; else goto error; *interior = 1; *next = node->Next; return dyn; } error: gmlMapDynClean (p_data, dyn); gaiaFreeDynamicLine (dyn); return 0; } static int gml_parse_polygon (struct gml_data *p_data, gaiaGeomCollPtr geom, gmlNodePtr node, int srid, gmlNodePtr * next_n) { /* parsing a */ int interior; int has_z; int inners; int outers; int points; int iv; int ib = 0; gaiaGeomCollPtr pg; gaiaGeomCollPtr last_g; gaiaPolygonPtr new_pg; gaiaRingPtr ring; gaiaDynamicLinePtr dyn; gaiaPointPtr pt; gaiaDynamicLinePtr exterior_ring; gmlNodePtr next; gmlDynamicRingPtr dyn_rng; gmlDynamicPolygonPtr dyn_pg = gml_alloc_dyn_polygon (p_data); gmlNodePtr n = node; while (n) { /* looping on rings */ if (strcmp (n->Tag, "gml:Polygon") == 0 || strcmp (n->Tag, "Polygon") == 0) { *next_n = n->Next; break; } dyn = gml_parse_ring (p_data, n, &interior, &has_z, &next); if (dyn == NULL) goto error; if (gml_count_dyn_points (dyn) < 4) { /* cannot be a valid ring */ goto error; } /* checking if the ring is closed */ if (has_z) { if (dyn->First->X == dyn->Last->X && dyn->First->Y == dyn->Last->Y && dyn->First->Z == dyn->Last->Z) ; else goto error; } else { if (dyn->First->X == dyn->Last->X && dyn->First->Y == dyn->Last->Y) ; else goto error; } gml_add_polygon_ring (p_data, dyn_pg, dyn, interior, has_z); n = next; } /* ok, GML nodes match as expected */ inners = 0; outers = 0; has_z = 1; dyn_rng = dyn_pg->first; while (dyn_rng) { /* verifying the rings collection */ if (dyn_rng->has_z == 0) has_z = 0; if (dyn_rng->interior) inners++; else { outers++; points = gml_count_dyn_points (dyn_rng->ring); exterior_ring = dyn_rng->ring; } dyn_rng = dyn_rng->next; } if (outers != 1) /* no exterior ring declared */ goto error; if (has_z) { pg = gaiaAllocGeomCollXYZ (); gmlMapDynAlloc (p_data, GML_DYN_GEOM, pg); pg->Srid = srid; new_pg = gaiaAddPolygonToGeomColl (pg, points, inners); /* initializing the EXTERIOR RING */ ring = new_pg->Exterior; pt = exterior_ring->First; iv = 0; while (pt) { gaiaSetPointXYZ (ring->Coords, iv, pt->X, pt->Y, pt->Z); iv++; pt = pt->Next; } dyn_rng = dyn_pg->first; while (dyn_rng) { /* initializing any INTERIOR RING */ if (dyn_rng->interior == 0) { dyn_rng = dyn_rng->next; continue; } points = gml_count_dyn_points (dyn_rng->ring); ring = gaiaAddInteriorRing (new_pg, ib, points); ib++; pt = dyn_rng->ring->First; iv = 0; while (pt) { gaiaSetPointXYZ (ring->Coords, iv, pt->X, pt->Y, pt->Z); iv++; pt = pt->Next; } dyn_rng = dyn_rng->next; } } else { pg = gaiaAllocGeomColl (); gmlMapDynAlloc (p_data, GML_DYN_GEOM, pg); pg->Srid = srid; new_pg = gaiaAddPolygonToGeomColl (pg, points, inners); /* initializing the EXTERIOR RING */ ring = new_pg->Exterior; pt = exterior_ring->First; iv = 0; while (pt) { gaiaSetPoint (ring->Coords, iv, pt->X, pt->Y); iv++; pt = pt->Next; } dyn_rng = dyn_pg->first; while (dyn_rng) { /* initializing any INTERIOR RING */ if (dyn_rng->interior == 0) { dyn_rng = dyn_rng->next; continue; } points = gml_count_dyn_points (dyn_rng->ring); ring = gaiaAddInteriorRing (new_pg, ib, points); ib++; pt = dyn_rng->ring->First; iv = 0; while (pt) { gaiaSetPoint (ring->Coords, iv, pt->X, pt->Y); iv++; pt = pt->Next; } dyn_rng = dyn_rng->next; } } last_g = geom; while (1) { /* searching the last Geometry within chain */ if (last_g->Next == NULL) break; last_g = last_g->Next; } last_g->Next = pg; gml_free_dyn_polygon (dyn_pg); return 1; error: gml_free_dyn_polygon (dyn_pg); return 0; } static int gml_parse_multi_point (struct gml_data *p_data, gaiaGeomCollPtr geom, gmlNodePtr node) { /* parsing a */ int srid; int pts; gmlNodePtr n2; gmlNodePtr next; gmlNodePtr n = node; while (n) { /* looping on Point Members */ if (n->Next == NULL) { /* verifying the last GML node */ if (strcmp (n->Tag, "gml:MultiPoint") == 0 || strcmp (n->Tag, "MultiPoint") == 0) break; else return 0; } if (strcmp (n->Tag, "gml:pointMember") == 0 || strcmp (n->Tag, "pointMember") == 0 || strcmp (n->Tag, "gml:pointMembers") == 0 || strcmp (n->Tag, "pointMembers") == 0) ; else return 0; n2 = n->Next; pts = 0; while (n2) { /* looping on Point(s) */ if (strcmp (n2->Tag, "gml:Point") == 0 || strcmp (n2->Tag, "Point") == 0) ; else { n = n2; break; } srid = guessGmlSrid (n2); n2 = n2->Next; if (n2 == NULL) return 0; if (!gml_parse_point (p_data, geom, n2, srid, &next)) return 0; n2 = next; if (n2 == NULL) return 0; pts++; } if (!pts) return 0; if (strcmp (n->Tag, "gml:pointMember") == 0 || strcmp (n->Tag, "pointMember") == 0 || strcmp (n->Tag, "gml:pointMembers") == 0 || strcmp (n->Tag, "pointMembers") == 0) ; else return 0; n = n->Next; } return 1; } static int gml_parse_multi_linestring (struct gml_data *p_data, gaiaGeomCollPtr geom, gmlNodePtr node) { /* parsing a */ int srid; int lns; gmlNodePtr n2; gmlNodePtr next; gmlNodePtr n = node; while (n) { /* looping on LineString Members */ if (n->Next == NULL) { /* verifying the last GML node */ if (strcmp (n->Tag, "gml:MultiLineString") == 0 || strcmp (n->Tag, "MultiLineString") == 0) break; else return 0; } if (strcmp (n->Tag, "gml:lineStringMember") == 0 || strcmp (n->Tag, "lineStringMember") == 0 || strcmp (n->Tag, "gml:lineStringMembers") == 0 || strcmp (n->Tag, "lineStringMembers") == 0) ; else return 0; n2 = n->Next; lns = 0; while (n2) { /* looping on Linestring(s) */ if (strcmp (n2->Tag, "gml:LineString") == 0 || strcmp (n2->Tag, "LineString") == 0) ; else { n = n2; break; } srid = guessGmlSrid (n2); n2 = n2->Next; if (n2 == NULL) return 0; if (!gml_parse_linestring (p_data, geom, n2, srid, &next)) return 0; n2 = next; if (n2 == NULL) return 0; lns++; } if (!lns) return 0; if (strcmp (n->Tag, "gml:lineStringMember") == 0 || strcmp (n->Tag, "lineStringMember") == 0 || strcmp (n->Tag, "gml:lineStringMembers") == 0 || strcmp (n->Tag, "lineStringMembers") == 0) ; else return 0; n = n->Next; } return 1; } static int gml_parse_multi_curve (struct gml_data *p_data, gaiaGeomCollPtr geom, gmlNodePtr node) { /* parsing a */ int srid; int lns; gmlNodePtr n2; gmlNodePtr next; gmlNodePtr n = node; while (n) { /* looping on Curve Members */ if (n->Next == NULL) { /* verifying the last GML node */ if (strcmp (n->Tag, "gml:MultiCurve") == 0 || strcmp (n->Tag, "MultiCurve") == 0) break; else return 0; } if (strcmp (n->Tag, "gml:curveMember") == 0 || strcmp (n->Tag, "curveMember") == 0 || strcmp (n->Tag, "gml:curveMembers") == 0 || strcmp (n->Tag, "curveMembers") == 0) ; else return 0; n2 = n->Next; lns = 0; while (n2) { /* looping on Curve(s) */ if (strcmp (n2->Tag, "gml:Curve") == 0 || strcmp (n2->Tag, "Curve") == 0) ; else { n = n2; break; } srid = guessGmlSrid (n2); n2 = n2->Next; if (n2 == NULL) return 0; if (!gml_parse_curve (p_data, geom, n2, srid, &next)) return 0; n2 = next; if (n2 == NULL) return 0; lns++; } if (!lns) return 0; if (strcmp (n->Tag, "gml:curveMember") == 0 || strcmp (n->Tag, "curveMember") == 0 || strcmp (n->Tag, "gml:curveMembers") == 0 || strcmp (n->Tag, "curveMembers") == 0) ; else return 0; n = n->Next; } return 1; } static int gml_parse_multi_polygon (struct gml_data *p_data, gaiaGeomCollPtr geom, gmlNodePtr node) { /* parsing a */ int srid; int pgs; gmlNodePtr n2; gmlNodePtr next; gmlNodePtr n = node; while (n) { /* looping on Polygon Members */ if (n->Next == NULL) { /* verifying the last GML node */ if (strcmp (n->Tag, "gml:MultiPolygon") == 0 || strcmp (n->Tag, "MultiPolygon") == 0) break; else return 0; } if (strcmp (n->Tag, "gml:polygonMember") == 0 || strcmp (n->Tag, "polygonMember") == 0 || strcmp (n->Tag, "gml:polygonMembers") == 0 || strcmp (n->Tag, "polygonMembers") == 0) ; else return 0; n2 = n->Next; pgs = 0; while (n2) { /* looping on Polygon(s) */ if (strcmp (n2->Tag, "gml:Polygon") == 0 || strcmp (n2->Tag, "Polygon") == 0) ; else { n = n2; break; } srid = guessGmlSrid (n2); n2 = n2->Next; if (n2 == NULL) return 0; if (!gml_parse_polygon (p_data, geom, n2, srid, &next)) return 0; n2 = next; if (n2 == NULL) return 0; pgs++; } if (!pgs) return 0; if (strcmp (n->Tag, "gml:polygonMember") == 0 || strcmp (n->Tag, "polygonMember") == 0 || strcmp (n->Tag, "gml:polygonMembers") == 0 || strcmp (n->Tag, "polygonMembers") == 0) ; else return 0; n = n->Next; } return 1; } static int gml_parse_multi_surface (struct gml_data *p_data, gaiaGeomCollPtr geom, gmlNodePtr node) { /* parsing a */ int srid; int pgs; gmlNodePtr n2; gmlNodePtr next; gmlNodePtr n = node; while (n) { /* looping on Surface Members */ if (n->Next == NULL) { /* verifying the last GML node */ if (strcmp (n->Tag, "gml:MultiSurface") == 0 || strcmp (n->Tag, "MultiSurface") == 0) break; else return 0; } if (strcmp (n->Tag, "gml:surfaceMember") == 0 || strcmp (n->Tag, "surfaceMember") == 0 || strcmp (n->Tag, "gml:surfaceMembers") == 0 || strcmp (n->Tag, "surfaceMembers") == 0) ; else return 0; n2 = n->Next; pgs = 0; while (n2) { /* looping on Polygon(s) */ if (strcmp (n2->Tag, "gml:Polygon") == 0 || strcmp (n2->Tag, "Polygon") == 0) ; else { n = n2; break; } srid = guessGmlSrid (n2); n2 = n2->Next; if (n2 == NULL) return 0; if (!gml_parse_polygon (p_data, geom, n2, srid, &next)) return 0; n2 = next; if (n2 == NULL) return 0; pgs++; } if (!pgs) return 0; if (strcmp (n->Tag, "gml:surfaceMember") == 0 || strcmp (n->Tag, "surfaceMember") == 0 || strcmp (n->Tag, "gml:surfaceMembers") == 0 || strcmp (n->Tag, "surfaceMembers") == 0) ; else return 0; n = n->Next; } return 1; } static int gml_parse_multi_geometry (struct gml_data *p_data, gaiaGeomCollPtr geom, gmlNodePtr node) { /* parsing a */ int srid; int elems; gmlNodePtr n2; gmlNodePtr next; gmlNodePtr n = node; while (n) { /* looping on Geometry Members */ if (n->Next == NULL) { /* verifying the last GML node */ if (strcmp (n->Tag, "gml:MultiGeometry") == 0 || strcmp (n->Tag, "MultiGeometry") == 0) break; else return 0; } if (strcmp (n->Tag, "gml:geometryMember") == 0 || strcmp (n->Tag, "geometryMember") == 0 || strcmp (n->Tag, "gml:geometryMembers") == 0 || strcmp (n->Tag, "geometryMembers") == 0) ; else return 0; n2 = n->Next; elems = 0; while (n2) { /* looping on elements */ if (strcmp (n2->Tag, "gml:Point") == 0 || strcmp (n2->Tag, "Point") == 0) { srid = guessGmlSrid (n2); n2 = n2->Next; if (n2 == NULL) return 0; if (!gml_parse_point (p_data, geom, n2, srid, &next)) return 0; n2 = next; } else if (strcmp (n2->Tag, "gml:LineString") == 0 || strcmp (n2->Tag, "LineString") == 0) { srid = guessGmlSrid (n2); n2 = n2->Next; if (n2 == NULL) return 0; if (!gml_parse_linestring (p_data, geom, n2, srid, &next)) return 0; n2 = next; } else if (strcmp (n2->Tag, "gml:Curve") == 0 || strcmp (n2->Tag, "Curve") == 0) { srid = guessGmlSrid (n2); n2 = n2->Next; if (n2 == NULL) return 0; if (!gml_parse_curve (p_data, geom, n2, srid, &next)) return 0; n2 = next; } else if (strcmp (n2->Tag, "gml:Polygon") == 0 || strcmp (n2->Tag, "Polygon") == 0) { srid = guessGmlSrid (n2); n2 = n2->Next; if (n2 == NULL) return 0; if (!gml_parse_polygon (p_data, geom, n2, srid, &next)) return 0; n2 = next; } else { n = n2; break; } elems++; } if (!elems) return 0; if (strcmp (n->Tag, "gml:geometryMember") == 0 || strcmp (n->Tag, "geometryMember") == 0 || strcmp (n->Tag, "gml:geometryMembers") == 0 || strcmp (n->Tag, "geometryMembers") == 0) ; else return 0; n = n->Next; } return 1; } static gaiaGeomCollPtr gml_validate_geometry (struct gml_data *p_data, gaiaGeomCollPtr chain, sqlite3 * sqlite_handle) { int xy = 0; int xyz = 0; int pts = 0; int lns = 0; int pgs = 0; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; gaiaPointPtr save_pt; gaiaLinestringPtr save_ln; gaiaPolygonPtr save_pg; gaiaRingPtr i_ring; gaiaRingPtr o_ring; int ib; int delete_g2; gaiaGeomCollPtr g; gaiaGeomCollPtr g2; gaiaGeomCollPtr geom; char *proj_from; char *proj_to; g = chain; while (g) { if (g != chain) { if (g->DimensionModel == GAIA_XY) xy++; if (g->DimensionModel == GAIA_XY_Z) xyz++; } pt = g->FirstPoint; while (pt) { pts++; save_pt = pt; pt = pt->Next; } ln = g->FirstLinestring; while (ln) { lns++; save_ln = ln; ln = ln->Next; } pg = g->FirstPolygon; while (pg) { pgs++; save_pg = pg; pg = pg->Next; } g = g->Next; } if (pts == 1 && lns == 0 && pgs == 0) { /* POINT */ if (xy > 0) { /* 2D [XY] */ geom = gaiaAllocGeomColl (); gmlMapDynAlloc (p_data, GML_DYN_GEOM, geom); geom->Srid = chain->Srid; if (chain->DeclaredType == GAIA_MULTIPOINT) geom->DeclaredType = GAIA_MULTIPOINT; else if (chain->DeclaredType == GAIA_GEOMETRYCOLLECTION) geom->DeclaredType = GAIA_GEOMETRYCOLLECTION; else geom->DeclaredType = GAIA_POINT; gaiaAddPointToGeomColl (geom, save_pt->X, save_pt->Y); return geom; } else { /* 3D [XYZ] */ geom = gaiaAllocGeomCollXYZ (); gmlMapDynAlloc (p_data, GML_DYN_GEOM, geom); geom->Srid = chain->Srid; if (chain->DeclaredType == GAIA_MULTIPOINT) geom->DeclaredType = GAIA_MULTIPOINT; else if (chain->DeclaredType == GAIA_GEOMETRYCOLLECTION) geom->DeclaredType = GAIA_GEOMETRYCOLLECTION; else geom->DeclaredType = GAIA_POINT; gaiaAddPointToGeomCollXYZ (geom, save_pt->X, save_pt->Y, save_pt->Z); return geom; } } if (pts == 0 && lns == 1 && pgs == 0) { /* LINESTRING */ if (xy > 0) { /* 2D [XY] */ geom = gaiaAllocGeomColl (); gmlMapDynAlloc (p_data, GML_DYN_GEOM, geom); } else { /* 3D [XYZ] */ geom = gaiaAllocGeomCollXYZ (); gmlMapDynAlloc (p_data, GML_DYN_GEOM, geom); } geom->Srid = chain->Srid; if (chain->DeclaredType == GAIA_MULTILINESTRING) geom->DeclaredType = GAIA_MULTILINESTRING; else if (chain->DeclaredType == GAIA_GEOMETRYCOLLECTION) geom->DeclaredType = GAIA_GEOMETRYCOLLECTION; else geom->DeclaredType = GAIA_LINESTRING; ln = gaiaAddLinestringToGeomColl (geom, save_ln->Points); gaiaCopyLinestringCoords (ln, save_ln); return geom; } if (pts == 0 && lns == 0 && pgs == 1) { /* POLYGON */ if (xy > 0) { /* 2D [XY] */ geom = gaiaAllocGeomColl (); gmlMapDynAlloc (p_data, GML_DYN_GEOM, geom); } else { /* 3D [XYZ] */ geom = gaiaAllocGeomCollXYZ (); gmlMapDynAlloc (p_data, GML_DYN_GEOM, geom); } geom->Srid = chain->Srid; if (chain->DeclaredType == GAIA_MULTIPOLYGON) geom->DeclaredType = GAIA_MULTIPOLYGON; else if (chain->DeclaredType == GAIA_GEOMETRYCOLLECTION) geom->DeclaredType = GAIA_GEOMETRYCOLLECTION; else geom->DeclaredType = GAIA_POLYGON; i_ring = save_pg->Exterior; pg = gaiaAddPolygonToGeomColl (geom, i_ring->Points, save_pg->NumInteriors); o_ring = pg->Exterior; gaiaCopyRingCoords (o_ring, i_ring); for (ib = 0; ib < save_pg->NumInteriors; ib++) { i_ring = save_pg->Interiors + ib; o_ring = gaiaAddInteriorRing (pg, ib, i_ring->Points); gaiaCopyRingCoords (o_ring, i_ring); } return geom; } if (pts >= 1 && lns == 0 && pgs == 0) { /* MULTIPOINT */ if (xy > 0) { /* 2D [XY] */ geom = gaiaAllocGeomColl (); gmlMapDynAlloc (p_data, GML_DYN_GEOM, geom); geom->Srid = chain->Srid; if (chain->DeclaredType == GAIA_GEOMETRYCOLLECTION) geom->DeclaredType = GAIA_GEOMETRYCOLLECTION; else geom->DeclaredType = GAIA_MULTIPOINT; g = chain; while (g) { if (geom->Srid <= 0) { /* we haven't yet set any SRID */ geom->Srid = g->Srid; } g2 = g; delete_g2 = 0; if (g->Srid != geom->Srid && g->Srid > 0 && sqlite_handle != NULL) { /* we'll try to apply a reprojection */ #ifndef OMIT_PROJ /* but only if PROJ.4 is actually available */ getProjParams (sqlite_handle, g->Srid, &proj_from); getProjParams (sqlite_handle, geom->Srid, &proj_to); if (proj_to == NULL || proj_from == NULL) ; else { g2 = gaiaTransform (g, proj_from, proj_to); if (!g2) g2 = g; else delete_g2 = 1; } if (proj_from) free (proj_from); if (proj_to) free (proj_to); #endif } pt = g2->FirstPoint; while (pt) { gaiaAddPointToGeomColl (geom, pt->X, pt->Y); pt = pt->Next; } if (delete_g2) { gmlMapDynClean (p_data, g2); gaiaFreeGeomColl (g2); } g = g->Next; } return geom; } else { /* 3D [XYZ] */ geom = gaiaAllocGeomCollXYZ (); gmlMapDynAlloc (p_data, GML_DYN_GEOM, geom); geom->Srid = chain->Srid; if (chain->DeclaredType == GAIA_GEOMETRYCOLLECTION) geom->DeclaredType = GAIA_GEOMETRYCOLLECTION; else geom->DeclaredType = GAIA_MULTIPOINT; g = chain; while (g) { if (geom->Srid <= 0) { /* we haven't yet a SRID set */ geom->Srid = g->Srid; } g2 = g; delete_g2 = 0; if (g->Srid != geom->Srid && g->Srid > 0 && sqlite_handle != NULL) { /* we'll try to apply a reprojection */ #ifndef OMIT_PROJ /* but only if PROJ.4 is actually available */ getProjParams (sqlite_handle, g->Srid, &proj_from); getProjParams (sqlite_handle, geom->Srid, &proj_to); if (proj_to == NULL || proj_from == NULL) ; else { g2 = gaiaTransform (g, proj_from, proj_to); if (!g2) g2 = g; else delete_g2 = 1; } if (proj_from) free (proj_from); if (proj_to) free (proj_to); #endif } pt = g2->FirstPoint; while (pt) { gaiaAddPointToGeomCollXYZ (geom, pt->X, pt->Y, pt->Z); pt = pt->Next; } if (delete_g2) { gmlMapDynClean (p_data, g2); gaiaFreeGeomColl (g2); } g = g->Next; } return geom; } } if (pts == 0 && lns >= 1 && pgs == 0) { /* MULTILINESTRING */ if (xy > 0) { /* 2D [XY] */ geom = gaiaAllocGeomColl (); gmlMapDynAlloc (p_data, GML_DYN_GEOM, geom); geom->Srid = chain->Srid; if (chain->DeclaredType == GAIA_GEOMETRYCOLLECTION) geom->DeclaredType = GAIA_GEOMETRYCOLLECTION; else geom->DeclaredType = GAIA_MULTILINESTRING; g = chain; while (g) { if (geom->Srid <= 0) { /* we haven't yet set any SRID */ geom->Srid = g->Srid; } g2 = g; delete_g2 = 0; if (g->Srid != geom->Srid && g->Srid > 0 && sqlite_handle != NULL) { /* we'll try to apply a reprojection */ #ifndef OMIT_PROJ /* but only if PROJ.4 is actually available */ getProjParams (sqlite_handle, g->Srid, &proj_from); getProjParams (sqlite_handle, geom->Srid, &proj_to); if (proj_to == NULL || proj_from == NULL) ; else { g2 = gaiaTransform (g, proj_from, proj_to); if (!g2) g2 = g; else delete_g2 = 1; } if (proj_from) free (proj_from); if (proj_to) free (proj_to); #endif } ln = g2->FirstLinestring; while (ln) { save_ln = gaiaAddLinestringToGeomColl (geom, ln->Points); gaiaCopyLinestringCoords (save_ln, ln); ln = ln->Next; } if (delete_g2) { gmlMapDynClean (p_data, g2); gaiaFreeGeomColl (g2); } g = g->Next; } return geom; } else { /* 3D [XYZ] */ geom = gaiaAllocGeomCollXYZ (); gmlMapDynAlloc (p_data, GML_DYN_GEOM, geom); geom->Srid = chain->Srid; if (chain->DeclaredType == GAIA_GEOMETRYCOLLECTION) geom->DeclaredType = GAIA_GEOMETRYCOLLECTION; else geom->DeclaredType = GAIA_MULTILINESTRING; g = chain; while (g) { if (geom->Srid <= 0) { /* we haven't yet a SRID set */ geom->Srid = g->Srid; } g2 = g; delete_g2 = 0; if (g->Srid != geom->Srid && g->Srid > 0 && sqlite_handle != NULL) { /* we'll try to apply a reprojection */ #ifndef OMIT_PROJ /* but only if PROJ.4 is actually available */ getProjParams (sqlite_handle, g->Srid, &proj_from); getProjParams (sqlite_handle, geom->Srid, &proj_to); if (proj_to == NULL || proj_from == NULL) ; else { g2 = gaiaTransform (g, proj_from, proj_to); if (!g2) g2 = g; else delete_g2 = 1; } if (proj_from) free (proj_from); if (proj_to) free (proj_to); #endif } ln = g2->FirstLinestring; while (ln) { save_ln = gaiaAddLinestringToGeomColl (geom, ln->Points); gaiaCopyLinestringCoords (save_ln, ln); ln = ln->Next; } if (delete_g2) { gmlMapDynClean (p_data, g2); gaiaFreeGeomColl (g2); } g = g->Next; } return geom; } } if (pts == 0 && lns == 0 && pgs >= 1) { /* MULTIPOLYGON */ if (xy > 0) { /* 2D [XY] */ geom = gaiaAllocGeomColl (); gmlMapDynAlloc (p_data, GML_DYN_GEOM, geom); geom->Srid = chain->Srid; if (chain->DeclaredType == GAIA_GEOMETRYCOLLECTION) geom->DeclaredType = GAIA_GEOMETRYCOLLECTION; else geom->DeclaredType = GAIA_MULTIPOLYGON; g = chain; while (g) { if (geom->Srid <= 0) { /* we haven't yet set any SRID */ geom->Srid = g->Srid; } g2 = g; delete_g2 = 0; if (g->Srid != geom->Srid && g->Srid > 0 && sqlite_handle != NULL) { /* we'll try to apply a reprojection */ #ifndef OMIT_PROJ /* but only if PROJ.4 is actually available */ getProjParams (sqlite_handle, g->Srid, &proj_from); getProjParams (sqlite_handle, geom->Srid, &proj_to); if (proj_to == NULL || proj_from == NULL) ; else { g2 = gaiaTransform (g, proj_from, proj_to); if (!g2) g2 = g; else delete_g2 = 1; } if (proj_from) free (proj_from); if (proj_to) free (proj_to); #endif } pg = g2->FirstPolygon; while (pg) { i_ring = pg->Exterior; save_pg = gaiaAddPolygonToGeomColl (geom, i_ring->Points, pg->NumInteriors); o_ring = save_pg->Exterior; gaiaCopyRingCoords (o_ring, i_ring); for (ib = 0; ib < pg->NumInteriors; ib++) { i_ring = pg->Interiors + ib; o_ring = gaiaAddInteriorRing (save_pg, ib, i_ring->Points); gaiaCopyRingCoords (o_ring, i_ring); } pg = pg->Next; } if (delete_g2) { gmlMapDynClean (p_data, g2); gaiaFreeGeomColl (g2); } g = g->Next; } return geom; } else { /* 3D [XYZ] */ geom = gaiaAllocGeomCollXYZ (); gmlMapDynAlloc (p_data, GML_DYN_GEOM, geom); geom->Srid = chain->Srid; if (chain->DeclaredType == GAIA_GEOMETRYCOLLECTION) geom->DeclaredType = GAIA_GEOMETRYCOLLECTION; else geom->DeclaredType = GAIA_MULTIPOLYGON; g = chain; while (g) { if (geom->Srid <= 0) { /* we haven't yet a SRID set */ geom->Srid = g->Srid; } g2 = g; delete_g2 = 0; if (g->Srid != geom->Srid && g->Srid > 0 && sqlite_handle != NULL) { /* we'll try to apply a reprojection */ #ifndef OMIT_PROJ /* but only if PROJ.4 is actually available */ getProjParams (sqlite_handle, g->Srid, &proj_from); getProjParams (sqlite_handle, geom->Srid, &proj_to); if (proj_to == NULL || proj_from == NULL) ; else { g2 = gaiaTransform (g, proj_from, proj_to); if (!g2) g2 = g; else delete_g2 = 1; } if (proj_from) free (proj_from); if (proj_to) free (proj_to); #endif } pg = g2->FirstPolygon; while (pg) { i_ring = pg->Exterior; save_pg = gaiaAddPolygonToGeomColl (geom, i_ring->Points, pg->NumInteriors); o_ring = save_pg->Exterior; gaiaCopyRingCoords (o_ring, i_ring); for (ib = 0; ib < pg->NumInteriors; ib++) { i_ring = pg->Interiors + ib; o_ring = gaiaAddInteriorRing (save_pg, ib, i_ring->Points); gaiaCopyRingCoords (o_ring, i_ring); } pg = pg->Next; } if (delete_g2) { gmlMapDynClean (p_data, g2); gaiaFreeGeomColl (g2); } g = g->Next; } return geom; } } if ((pts + lns + pgs) > 0) { /* GEOMETRYCOLLECTION */ if (xy > 0) { /* 2D [XY] */ geom = gaiaAllocGeomColl (); gmlMapDynAlloc (p_data, GML_DYN_GEOM, geom); geom->Srid = chain->Srid; geom->DeclaredType = GAIA_GEOMETRYCOLLECTION; g = chain; while (g) { if (geom->Srid <= 0) { /* we haven't yet set any SRID */ geom->Srid = g->Srid; } g2 = g; delete_g2 = 0; if (g->Srid != geom->Srid && g->Srid > 0 && sqlite_handle != NULL) { /* we'll try to apply a reprojection */ #ifndef OMIT_PROJ /* but only if PROJ.4 is actually available */ getProjParams (sqlite_handle, g->Srid, &proj_from); getProjParams (sqlite_handle, geom->Srid, &proj_to); if (proj_to == NULL || proj_from == NULL) ; else { g2 = gaiaTransform (g, proj_from, proj_to); if (!g2) g2 = g; else delete_g2 = 1; } if (proj_from) free (proj_from); if (proj_to) free (proj_to); #endif } pt = g2->FirstPoint; while (pt) { gaiaAddPointToGeomColl (geom, pt->X, pt->Y); pt = pt->Next; } ln = g2->FirstLinestring; while (ln) { save_ln = gaiaAddLinestringToGeomColl (geom, ln->Points); gaiaCopyLinestringCoords (save_ln, ln); ln = ln->Next; } pg = g2->FirstPolygon; while (pg) { i_ring = pg->Exterior; save_pg = gaiaAddPolygonToGeomColl (geom, i_ring->Points, pg->NumInteriors); o_ring = save_pg->Exterior; gaiaCopyRingCoords (o_ring, i_ring); for (ib = 0; ib < pg->NumInteriors; ib++) { i_ring = pg->Interiors + ib; o_ring = gaiaAddInteriorRing (save_pg, ib, i_ring->Points); gaiaCopyRingCoords (o_ring, i_ring); } pg = pg->Next; } if (delete_g2) { gmlMapDynClean (p_data, g2); gaiaFreeGeomColl (g2); } g = g->Next; } return geom; } else { /* 3D [XYZ] */ geom = gaiaAllocGeomCollXYZ (); gmlMapDynAlloc (p_data, GML_DYN_GEOM, geom); geom->Srid = chain->Srid; geom->DeclaredType = GAIA_GEOMETRYCOLLECTION; g = chain; while (g) { if (geom->Srid <= 0) { /* we haven't yet a SRID set */ geom->Srid = g->Srid; } g2 = g; delete_g2 = 0; if (g->Srid != geom->Srid && g->Srid > 0 && sqlite_handle != NULL) { /* we'll try to apply a reprojection */ #ifndef OMIT_PROJ /* but only if PROJ.4 is actually available */ getProjParams (sqlite_handle, g->Srid, &proj_from); getProjParams (sqlite_handle, geom->Srid, &proj_to); if (*proj_to == '\0' || *proj_from == '\0') ; else { g2 = gaiaTransform (g, proj_from, proj_to); if (!g2) g2 = g; else delete_g2 = 1; } if (proj_from) free (proj_from); if (proj_to) free (proj_to); #endif } pt = g2->FirstPoint; while (pt) { gaiaAddPointToGeomCollXYZ (geom, pt->X, pt->Y, pt->Z); pt = pt->Next; } ln = g2->FirstLinestring; while (ln) { save_ln = gaiaAddLinestringToGeomColl (geom, ln->Points); gaiaCopyLinestringCoords (save_ln, ln); ln = ln->Next; } pg = g2->FirstPolygon; while (pg) { i_ring = pg->Exterior; save_pg = gaiaAddPolygonToGeomColl (geom, i_ring->Points, pg->NumInteriors); o_ring = save_pg->Exterior; gaiaCopyRingCoords (o_ring, i_ring); for (ib = 0; ib < pg->NumInteriors; ib++) { i_ring = pg->Interiors + ib; o_ring = gaiaAddInteriorRing (save_pg, ib, i_ring->Points); gaiaCopyRingCoords (o_ring, i_ring); } pg = pg->Next; } if (delete_g2) { gmlMapDynClean (p_data, g2); gaiaFreeGeomColl (g2); } g = g->Next; } return geom; } } return NULL; } static void gml_free_geom_chain (struct gml_data *p_data, gaiaGeomCollPtr geom) { /* deleting a chain of preliminary geometries */ gaiaGeomCollPtr gn; while (geom) { gn = geom->Next; gmlMapDynClean (p_data, geom); gaiaFreeGeomColl (geom); geom = gn; } } static gaiaGeomCollPtr gml_build_geometry (struct gml_data *p_data, gmlNodePtr tree, sqlite3 * sqlite_handle) { /* attempting to build a geometry from GML nodes */ gaiaGeomCollPtr geom; gaiaGeomCollPtr result; int geom_type; gmlNodePtr next; if (tree == NULL) return NULL; geom_type = guessGmlGeometryType (tree); if (geom_type == GAIA_GML_UNKNOWN) { /* unsupported main geometry type */ return NULL; } /* creating the main geometry */ geom = gaiaAllocGeomColl (); geom->Srid = guessGmlSrid (tree); switch (geom_type) { /* parsing GML nodes accordingly with declared GML type */ case GAIA_GML_POINT: geom->DeclaredType = GAIA_POINT; if (!gml_parse_point (p_data, geom, tree->Next, geom->Srid, &next)) goto error; break; case GAIA_GML_LINESTRING: geom->DeclaredType = GAIA_LINESTRING; if (!gml_parse_linestring (p_data, geom, tree->Next, geom->Srid, &next)) goto error; break; case GAIA_GML_CURVE: geom->DeclaredType = GAIA_LINESTRING; if (!gml_parse_curve (p_data, geom, tree->Next, geom->Srid, &next)) goto error; break; case GAIA_GML_POLYGON: geom->DeclaredType = GAIA_POLYGON; if (!gml_parse_polygon (p_data, geom, tree->Next, geom->Srid, &next)) goto error; if (next != NULL) goto error; break; case GAIA_GML_MULTIPOINT: geom->DeclaredType = GAIA_MULTIPOINT; if (!gml_parse_multi_point (p_data, geom, tree->Next)) goto error; break; case GAIA_GML_MULTILINESTRING: geom->DeclaredType = GAIA_MULTILINESTRING; if (!gml_parse_multi_linestring (p_data, geom, tree->Next)) goto error; break; case GAIA_GML_MULTICURVE: geom->DeclaredType = GAIA_MULTILINESTRING; if (!gml_parse_multi_curve (p_data, geom, tree->Next)) goto error; break; case GAIA_GML_MULTIPOLYGON: geom->DeclaredType = GAIA_MULTIPOLYGON; if (!gml_parse_multi_polygon (p_data, geom, tree->Next)) goto error; break; case GAIA_GML_MULTISURFACE: geom->DeclaredType = GAIA_MULTIPOLYGON; if (!gml_parse_multi_surface (p_data, geom, tree->Next)) goto error; break; case GAIA_GML_MULTIGEOMETRY: geom->DeclaredType = GAIA_GEOMETRYCOLLECTION; if (!gml_parse_multi_geometry (p_data, geom, tree->Next)) goto error; break; }; /* attempting to build the final geometry */ result = gml_validate_geometry (p_data, geom, sqlite_handle); if (result == NULL) goto error; gml_free_geom_chain (p_data, geom); return result; error: gml_free_geom_chain (p_data, geom); return NULL; } /* including LEMON generated code */ #include "Gml.c" /* ** CAVEAT: there is an incompatibility between LEMON and FLEX ** this macro resolves the issue */ #undef yy_accept #define yy_accept yy_gml_flex_accept /* including FLEX generated code */ #include "lex.Gml.c" gaiaGeomCollPtr gaiaParseGml (const unsigned char *dirty_buffer, sqlite3 * sqlite_handle) { void *pParser = ParseAlloc (malloc); /* Linked-list of token values */ gmlFlexToken *tokens = malloc (sizeof (gmlFlexToken)); /* Pointer to the head of the list */ gmlFlexToken *head = tokens; int yv; gaiaGeomCollPtr geom = NULL; yyscan_t scanner; struct gml_data str_data; /* initializing the helper structs */ str_data.gml_line = 1; str_data.gml_col = 1; str_data.gml_parse_error = 0; str_data.gml_first_dyn_block = NULL; str_data.gml_last_dyn_block = NULL; str_data.result = NULL; /* initializing the scanner state */ Gmllex_init_extra (&str_data, &scanner); str_data.GmlLval.pval = NULL; tokens->value = NULL; tokens->Next = NULL; Gml_scan_string ((char *) dirty_buffer, scanner); /* / Keep tokenizing until we reach the end / yylex() will return the next matching Token for us. */ while ((yv = yylex (scanner)) != 0) { if (yv == -1) { str_data.gml_parse_error = 1; break; } tokens->Next = malloc (sizeof (gmlFlexToken)); tokens->Next->Next = NULL; gml_xferString (&(tokens->Next->value), str_data.GmlLval.pval); /* Pass the token to the wkt parser created from lemon */ Parse (pParser, yv, &(tokens->Next->value), &str_data); tokens = tokens->Next; } /* This denotes the end of a line as well as the end of the parser */ Parse (pParser, GML_NEWLINE, 0, &str_data); ParseFree (pParser, free); Gmllex_destroy (scanner); /* Assigning the token as the end to avoid seg faults while cleaning */ tokens->Next = NULL; gml_cleanup (head); gml_freeString (&(str_data.GmlLval.pval)); if (str_data.gml_parse_error) { if (str_data.result) { /* if a Geometry-result has been produced, the stack is already cleaned */ gml_freeTree (&str_data, str_data.result); gmlCleanMapDynAlloc (&str_data, 0); } else { /* otherwise we are required to clean the stack */ gmlCleanMapDynAlloc (&str_data, 1); } return NULL; } if (str_data.result == NULL) { gmlCleanMapDynAlloc (&str_data, 0); return NULL; } /* attempting to build a geometry from GML */ geom = gml_build_geometry (&str_data, str_data.result, sqlite_handle); gml_freeTree (&str_data, str_data.result); gmlCleanMapDynAlloc (&str_data, 0); return geom; } /* ** CAVEAT: we must now undefine any Lemon/Flex own macro */ #undef YYNOCODE #undef YYNSTATE #undef YYNRULE #undef YY_SHIFT_MAX #undef YY_SHIFT_USE_DFLT #undef YY_REDUCE_USE_DFLT #undef YY_REDUCE_MAX #undef YY_FLUSH_BUFFER #undef YY_DO_BEFORE_ACTION #undef YY_NUM_RULES #undef YY_END_OF_BUFFER #undef YY_END_FILE #undef YYACTIONTYPE #undef YY_SZ_ACTTAB #undef YY_NEW_FILE #undef BEGIN #undef YY_START #undef YY_CURRENT_BUFFER #undef YY_CURRENT_BUFFER_LVALUE #undef YY_STATE_BUF_SIZE #undef YY_DECL #undef YY_FATAL_ERROR #undef YYMINORTYPE #undef YY_CHAR #undef YYSTYPE #undef input #undef ParseAlloc #undef ParseFree #undef ParseStackPeak #undef Parse #undef yyalloc #undef yyfree #undef yyin #undef yyleng #undef yyless #undef yylex #undef yylineno #undef yyout #undef yyrealloc #undef yyrestart #undef yyStackEntry #undef yytext #undef yywrap #undef yyzerominor #undef yy_accept #undef yy_action #undef yy_base #undef yy_buffer_stack #undef yy_buffer_stack_max #undef yy_buffer_stack_top #undef yy_c_buf_p #undef yy_chk #undef yy_create_buffer #undef yy_def #undef yy_default #undef yy_delete_buffer #undef yy_destructor #undef yy_ec #undef yy_fatal_error #undef yy_find_reduce_action #undef yy_find_shift_action #undef yy_flex_debug #undef yy_flush_buffer #undef yy_get_next_buffer #undef yy_get_previous_state #undef yy_init #undef yy_init_buffer #undef yy_init_globals #undef yy_load_buffer #undef yy_load_buffer_state #undef yy_lookahead #undef yy_meta #undef yy_new_buffer #undef yy_nxt #undef yy_parse_failed #undef yy_pop_parser_stack #undef yy_reduce #undef yy_reduce_ofst #undef yy_set_bol #undef yy_set_interactive #undef yy_shift #undef yy_shift_ofst #undef yy_start #undef yy_state_type #undef yy_switch_to_buffer #undef yy_syntax_error #undef yy_trans_info #undef yy_try_NUL_trans #undef yyParser #undef yyStackEntry #undef yyStackOverflow #undef yyRuleInfo #undef yytext_ptr #undef yyunput #undef yyzerominor #undef ParseARG_SDECL #undef ParseARG_PDECL #undef ParseARG_FETCH #undef ParseARG_STORE #undef REJECT #undef yymore #undef YY_MORE_ADJ #undef YY_RESTORE_YY_MORE_OFFSET #undef YY_LESS_LINENO #undef yyTracePrompt #undef yyTraceFILE #undef yyTokenName #undef yyRuleName #undef ParseTrace #undef yylex #undef YY_DECL libspatialite-4.1.1/src/gaiageo/lex.Kml.c0000664000175000017500000015457212163502133015141 00000000000000 #line 3 "lex.Kml.c" #define YY_INT_ALIGNED short int /* A lexical scanner generated by flex */ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 5 #define YY_FLEX_SUBMINOR_VERSION 35 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ #include #include #include #include /* end standard C headers. */ /* flex integer type definitions */ #ifndef FLEXINT_H #define FLEXINT_H /* C99 systems have . Non-C99 systems may or may not. */ #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, * if you want the limit (max/min) macros for int types. */ #ifndef __STDC_LIMIT_MACROS #define __STDC_LIMIT_MACROS 1 #endif #include typedef int8_t flex_int8_t; typedef uint8_t flex_uint8_t; typedef int16_t flex_int16_t; typedef uint16_t flex_uint16_t; typedef int32_t flex_int32_t; typedef uint32_t flex_uint32_t; #else typedef signed char flex_int8_t; typedef short int flex_int16_t; typedef int flex_int32_t; typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; #endif /* ! C99 */ /* Limits of integral types. */ #ifndef INT8_MIN #define INT8_MIN (-128) #endif #ifndef INT16_MIN #define INT16_MIN (-32767-1) #endif #ifndef INT32_MIN #define INT32_MIN (-2147483647-1) #endif #ifndef INT8_MAX #define INT8_MAX (127) #endif #ifndef INT16_MAX #define INT16_MAX (32767) #endif #ifndef INT32_MAX #define INT32_MAX (2147483647) #endif #ifndef UINT8_MAX #define UINT8_MAX (255U) #endif #ifndef UINT16_MAX #define UINT16_MAX (65535U) #endif #ifndef UINT32_MAX #define UINT32_MAX (4294967295U) #endif #endif /* ! FLEXINT_H */ #ifdef __cplusplus /* The "const" storage-class-modifier is valid. */ #define YY_USE_CONST #else /* ! __cplusplus */ /* C99 requires __STDC__ to be defined as 1. */ #if defined (__STDC__) #define YY_USE_CONST #endif /* defined (__STDC__) */ #endif /* ! __cplusplus */ #ifdef YY_USE_CONST #define yyconst const #else #define yyconst #endif /* Returned upon end-of-file. */ #define YY_NULL 0 /* Promotes a possibly negative, possibly signed char to an unsigned * integer for use as an array index. If the signed char is negative, * we want to instead treat it as an 8-bit unsigned char, hence the * double cast. */ #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) /* An opaque pointer. */ #ifndef YY_TYPEDEF_YY_SCANNER_T #define YY_TYPEDEF_YY_SCANNER_T typedef void *yyscan_t; #endif /* For convenience, these vars (plus the bison vars far below) are macros in the reentrant scanner. */ #define yyin yyg->yyin_r #define yyout yyg->yyout_r #define yyextra yyg->yyextra_r #define yyleng yyg->yyleng_r #define yytext yyg->yytext_r #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno) #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column) #define yy_flex_debug yyg->yy_flex_debug_r /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN yyg->yy_start = 1 + 2 * /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START ((yyg->yy_start - 1) / 2) #define YYSTATE YY_START /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) /* Special action meaning "start processing a new file". */ #define YY_NEW_FILE Kmlrestart(yyin ,yyscanner ) #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #ifndef YY_BUF_SIZE #define YY_BUF_SIZE 16384 #endif /* The state buf must be large enough to hold one state per character in the main buffer. */ #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) #ifndef YY_TYPEDEF_YY_BUFFER_STATE #define YY_TYPEDEF_YY_BUFFER_STATE typedef struct yy_buffer_state *YY_BUFFER_STATE; #endif #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 #define YY_LESS_LINENO(n) /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ *yy_cp = yyg->yy_hold_char; \ YY_RESTORE_YY_MORE_OFFSET \ yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner ) #ifndef YY_TYPEDEF_YY_SIZE_T #define YY_TYPEDEF_YY_SIZE_T typedef size_t yy_size_t; #endif #ifndef YY_STRUCT_YY_BUFFER_STATE #define YY_STRUCT_YY_BUFFER_STATE struct yy_buffer_state { FILE *yy_input_file; char *yy_ch_buf; /* input buffer */ char *yy_buf_pos; /* current position in input buffer */ /* Size of input buffer in bytes, not including room for EOB * characters. */ yy_size_t yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. */ int yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to * delete it. */ int yy_is_our_buffer; /* Whether this is an "interactive" input source; if so, and * if we're using stdio for input, then we want to use getc() * instead of fread(), to make sure we stop fetching input after * each newline. */ int yy_is_interactive; /* Whether we're considered to be at the beginning of a line. * If so, '^' rules will be active on the next match, otherwise * not. */ int yy_at_bol; int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ /* Whether to try to fill the input buffer when we reach the * end of it. */ int yy_fill_buffer; int yy_buffer_status; #define YY_BUFFER_NEW 0 #define YY_BUFFER_NORMAL 1 /* When an EOF's been seen but there's still some text to process * then we mark the buffer as YY_EOF_PENDING, to indicate that we * shouldn't try reading from the input source any more. We might * still have a bunch of tokens to match, though, because of * possible backing-up. * * When we actually see the EOF, we change the status to "new" * (via Kmlrestart()), so that the user can continue scanning by * just pointing yyin at a new input file. */ #define YY_BUFFER_EOF_PENDING 2 }; #endif /* !YY_STRUCT_YY_BUFFER_STATE */ /* We provide macros for accessing buffer states in case in the * future we want to put the buffer states in a more general * "scanner state". * * Returns the top of the stack, or NULL. */ #define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \ ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \ : NULL) /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] void Kmlrestart (FILE * input_file, yyscan_t yyscanner); void Kml_switch_to_buffer (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner); YY_BUFFER_STATE Kml_create_buffer (FILE * file, int size, yyscan_t yyscanner); void Kml_delete_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner); void Kml_flush_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner); void Kmlpush_buffer_state (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner); void Kmlpop_buffer_state (yyscan_t yyscanner); static void Kmlensure_buffer_stack (yyscan_t yyscanner); static void Kml_load_buffer_state (yyscan_t yyscanner); static void Kml_init_buffer (YY_BUFFER_STATE b, FILE * file, yyscan_t yyscanner); #define YY_FLUSH_BUFFER Kml_flush_buffer(YY_CURRENT_BUFFER ,yyscanner) YY_BUFFER_STATE Kml_scan_buffer (char *base, yy_size_t size, yyscan_t yyscanner); YY_BUFFER_STATE Kml_scan_string (yyconst char *yy_str, yyscan_t yyscanner); YY_BUFFER_STATE Kml_scan_bytes (yyconst char *bytes, int len, yyscan_t yyscanner); void *Kmlalloc (yy_size_t, yyscan_t yyscanner); void *Kmlrealloc (void *, yy_size_t, yyscan_t yyscanner); void Kmlfree (void *, yyscan_t yyscanner); #define yy_new_buffer Kml_create_buffer #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ Kmlensure_buffer_stack (yyscanner); \ YY_CURRENT_BUFFER_LVALUE = \ Kml_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ Kmlensure_buffer_stack (yyscanner); \ YY_CURRENT_BUFFER_LVALUE = \ Kml_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* Begin user sect3 */ typedef unsigned char YY_CHAR; typedef int yy_state_type; #define yytext_ptr yytext_r static yy_state_type yy_get_previous_state (yyscan_t yyscanner); static yy_state_type yy_try_NUL_trans (yy_state_type current_state, yyscan_t yyscanner); static int yy_get_next_buffer (yyscan_t yyscanner); static void yy_fatal_error (yyconst char msg[], yyscan_t yyscanner); /* Done after the current pattern has been matched and before the * corresponding action - sets up yytext. */ #define YY_DO_BEFORE_ACTION \ yyg->yytext_ptr = yy_bp; \ yyleng = (size_t) (yy_cp - yy_bp); \ yyg->yy_hold_char = *yy_cp; \ *yy_cp = '\0'; \ yyg->yy_c_buf_p = yy_cp; #define YY_NUM_RULES 11 #define YY_END_OF_BUFFER 12 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info { flex_int32_t yy_verify; flex_int32_t yy_nxt; }; static yyconst flex_int16_t yy_accept[19] = { 0, 5, 5, 12, 10, 8, 9, 10, 5, 1, 3, 2, 4, 7, 0, 6, 5, 7, 0 }; static yyconst flex_int32_t yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 5, 5, 5, 5, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 1, 9, 10, 11, 1, 1, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 1, 1, 1, 1, 12, 1, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }; static yyconst flex_int32_t yy_meta[13] = { 0, 1, 1, 1, 1, 2, 1, 3, 4, 5, 1, 5, 4 }; static yyconst flex_int16_t yy_base[22] = { 0, 0, 0, 23, 24, 24, 24, 18, 0, 24, 24, 24, 24, 0, 17, 24, 0, 0, 24, 12, 15, 16 }; static yyconst flex_int16_t yy_def[22] = { 0, 18, 1, 18, 18, 18, 18, 19, 20, 18, 18, 18, 18, 21, 19, 18, 20, 21, 0, 18, 18, 18 }; static yyconst flex_int16_t yy_nxt[37] = { 0, 4, 5, 6, 7, 8, 9, 8, 4, 10, 11, 12, 13, 14, 14, 14, 14, 16, 16, 17, 17, 15, 15, 18, 3, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 }; static yyconst flex_int16_t yy_chk[37] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 19, 19, 19, 19, 20, 20, 21, 21, 14, 7, 3, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 }; /* The intent behind this definition is that it'll catch * any uses of REJECT which flex missed. */ #define REJECT reject_used_but_not_detected #define yymore() yymore_used_but_not_detected #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET /* kmlLexer.l -- KML parser - FLEX config version 2.4, 2011 June 14 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #define YY_NO_INPUT 1 /** * The main string-token matcher. * The lower case part is probably not needed. We should really be converting * The string to all uppercase/lowercase to make it case iNsEnSiTiVe. * What Flex will do is, For the input string, beginning from the front, Flex * will try to match with any of the defined tokens from below. Flex will * then match the string of longest length. Suppose the string is: POINTM, * Flex would match both POINT and POINTM, but since POINTM is the longer * of the two tokens, FLEX will match POINTM. */ #define INITIAL 0 #ifndef YY_NO_UNISTD_H /* Special case for "unistd.h", since it is non-ANSI. We include it way * down here because we want the user's section 1 to have been scanned first. * The user has a chance to override it with an option. */ #include #endif #define YY_EXTRA_TYPE struct kml_data * /* Holds the entire state of the reentrant scanner. */ struct yyguts_t { /* User-defined. Not touched by flex. */ YY_EXTRA_TYPE yyextra_r; /* The rest are the same as the globals declared in the non-reentrant scanner. */ FILE *yyin_r, *yyout_r; size_t yy_buffer_stack_top; /**< index of top of stack. */ size_t yy_buffer_stack_max; /**< capacity of stack. */ YY_BUFFER_STATE *yy_buffer_stack; /**< Stack as an array. */ char yy_hold_char; int yy_n_chars; int yyleng_r; char *yy_c_buf_p; int yy_init; int yy_start; int yy_did_buffer_switch_on_eof; int yy_start_stack_ptr; int yy_start_stack_depth; int *yy_start_stack; yy_state_type yy_last_accepting_state; char *yy_last_accepting_cpos; int yylineno_r; int yy_flex_debug_r; char *yytext_r; int yy_more_flag; int yy_more_len; }; /* end struct yyguts_t */ static int yy_init_globals (yyscan_t yyscanner); int Kmllex_init (yyscan_t * scanner); int Kmllex_init_extra (YY_EXTRA_TYPE user_defined, yyscan_t * scanner); /* Accessor methods to globals. These are made visible to non-reentrant scanners for convenience. */ int Kmllex_destroy (yyscan_t yyscanner); int Kmlget_debug (yyscan_t yyscanner); void Kmlset_debug (int debug_flag, yyscan_t yyscanner); YY_EXTRA_TYPE Kmlget_extra (yyscan_t yyscanner); void Kmlset_extra (YY_EXTRA_TYPE user_defined, yyscan_t yyscanner); FILE *Kmlget_in (yyscan_t yyscanner); void Kmlset_in (FILE * in_str, yyscan_t yyscanner); FILE *Kmlget_out (yyscan_t yyscanner); void Kmlset_out (FILE * out_str, yyscan_t yyscanner); int Kmlget_leng (yyscan_t yyscanner); char *Kmlget_text (yyscan_t yyscanner); int Kmlget_lineno (yyscan_t yyscanner); void Kmlset_lineno (int line_number, yyscan_t yyscanner); int Kmlget_column (yyscan_t yyscanner); void Kmlset_column (int column_no, yyscan_t yyscanner); /* Macros after this point can all be overridden by user definitions in * section 1. */ #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus extern "C" int Kmlwrap (yyscan_t yyscanner); #else extern int Kmlwrap (yyscan_t yyscanner); #endif #endif #ifndef yytext_ptr static void yy_flex_strncpy (char *, yyconst char *, int, yyscan_t yyscanner); #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen (yyconst char *, yyscan_t yyscanner); #endif #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput (yyscan_t yyscanner); #else static int input (yyscan_t yyscanner); #endif #endif /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE #define YY_READ_BUF_SIZE 8192 #endif /* Copy whatever the last rule matched to the standard output. */ #ifndef ECHO /* This used to be an fputs(), but since the string might contain NUL's, * we now use fwrite(). */ #define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0) #endif /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, * is returned in "result". */ #ifndef YY_INPUT #define YY_INPUT(buf,result,max_size) \ if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ { \ int c = '*'; \ unsigned n; \ for ( n = 0; n < max_size && \ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ if ( c == '\n' ) \ buf[n++] = (char) c; \ if ( c == EOF && ferror( yyin ) ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ result = n; \ } \ else \ { \ errno=0; \ while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \ { \ if( errno != EINTR) \ { \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ break; \ } \ errno=0; \ clearerr(yyin); \ } \ }\ \ #endif /* No semi-colon after return; correct usage is to write "yyterminate();" - * we don't want an extra ';' after the "return" because that will cause * some compilers to complain about unreachable statements. */ #ifndef yyterminate #define yyterminate() return YY_NULL #endif /* Number of entries by which start-condition stack grows. */ #ifndef YY_START_STACK_INCR #define YY_START_STACK_INCR 25 #endif /* Report a fatal error. */ #ifndef YY_FATAL_ERROR #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner) #endif /* end tables serialization structures and prototypes */ /* Default declaration of generated scanner - a define so the user can * easily add parameters. */ #ifndef YY_DECL #define YY_DECL_IS_OURS 1 extern int Kmllex (yyscan_t yyscanner); #define YY_DECL int Kmllex (yyscan_t yyscanner) #endif /* !YY_DECL */ /* Code executed at the beginning of each rule, after yytext and yyleng * have been set up. */ #ifndef YY_USER_ACTION #define YY_USER_ACTION #endif /* Code executed at the end of each rule. */ #ifndef YY_BREAK #define YY_BREAK break; #endif #define YY_RULE_SETUP \ YY_USER_ACTION /** The main scanner function which does all the work. */ YY_DECL { register yy_state_type yy_current_state; register char *yy_cp, *yy_bp; register int yy_act; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!yyg->yy_init) { yyg->yy_init = 1; #ifdef YY_USER_INIT YY_USER_INIT; #endif if (!yyg->yy_start) yyg->yy_start = 1; /* first start state */ if (!yyin) yyin = stdin; if (!yyout) yyout = stdout; if (!YY_CURRENT_BUFFER) { Kmlensure_buffer_stack (yyscanner); YY_CURRENT_BUFFER_LVALUE = Kml_create_buffer (yyin, YY_BUF_SIZE, yyscanner); } Kml_load_buffer_state (yyscanner); } while (1) /* loops until end-of-file is reached */ { yy_cp = yyg->yy_c_buf_p; /* Support of yytext. */ *yy_cp = yyg->yy_hold_char; /* yy_bp points to the position in yy_ch_buf of the start of * the current run. */ yy_bp = yy_cp; yy_current_state = yyg->yy_start; yy_match: do { register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI (*yy_cp)]; if (yy_accept[yy_current_state]) { yyg->yy_last_accepting_state = yy_current_state; yyg->yy_last_accepting_cpos = yy_cp; } while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state) { yy_current_state = (int) yy_def[yy_current_state]; if (yy_current_state >= 19) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } while (yy_base[yy_current_state] != 24); yy_find_action: yy_act = yy_accept[yy_current_state]; if (yy_act == 0) { /* have to back up */ yy_cp = yyg->yy_last_accepting_cpos; yy_current_state = yyg->yy_last_accepting_state; yy_act = yy_accept[yy_current_state]; } YY_DO_BEFORE_ACTION; do_action: /* This label is used only to access EOF actions. */ switch (yy_act) { /* beginning of action switch */ case 0: /* must back up */ /* undo the effects of YY_DO_BEFORE_ACTION */ *yy_cp = yyg->yy_hold_char; yy_cp = yyg->yy_last_accepting_cpos; yy_current_state = yyg->yy_last_accepting_state; goto yy_find_action; case 1: YY_RULE_SETUP { kml_freeString (&(Kmlget_extra (yyscanner)->KmlLval.pval)); return KML_END; } YY_BREAK case 2: YY_RULE_SETUP { kml_freeString (&(Kmlget_extra (yyscanner)->KmlLval.pval)); return KML_EQ; } YY_BREAK case 3: YY_RULE_SETUP { kml_freeString (&(Kmlget_extra (yyscanner)->KmlLval.pval)); return KML_OPEN; } YY_BREAK case 4: YY_RULE_SETUP { kml_freeString (&(Kmlget_extra (yyscanner)->KmlLval.pval)); return KML_CLOSE; } YY_BREAK case 5: YY_RULE_SETUP { kml_saveString (&(Kmlget_extra (yyscanner)->KmlLval.pval), yytext); return KML_COORD; } YY_BREAK case 6: /* rule 6 can match eol */ YY_RULE_SETUP { kml_saveString (&(Kmlget_extra (yyscanner)->KmlLval.pval), yytext); return KML_VALUE; } YY_BREAK case 7: YY_RULE_SETUP { kml_saveString (&(Kmlget_extra (yyscanner)->KmlLval.pval), yytext); return KML_KEYWORD; } YY_BREAK case 8: YY_RULE_SETUP { kml_freeString (&(Kmlget_extra (yyscanner)->KmlLval.pval)); Kmlget_extra (yyscanner)->kml_col += (int) strlen (yytext); } /* ignore but count white space */ YY_BREAK case 9: /* rule 9 can match eol */ YY_RULE_SETUP { kml_freeString (&(Kmlget_extra (yyscanner)->KmlLval.pval)); Kmlget_extra (yyscanner)->kml_col = 0; Kmlget_extra (yyscanner)->kml_line++; } YY_BREAK case 10: YY_RULE_SETUP { kml_freeString (&(Kmlget_extra (yyscanner)->KmlLval.pval)); Kmlget_extra (yyscanner)->kml_col += (int) strlen (yytext); return -1; } YY_BREAK case 11: YY_RULE_SETUP ECHO; YY_BREAK case YY_STATE_EOF (INITIAL): yyterminate (); case YY_END_OF_BUFFER: { /* Amount of text matched not including the EOB char. */ int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1; /* Undo the effects of YY_DO_BEFORE_ACTION. */ *yy_cp = yyg->yy_hold_char; YY_RESTORE_YY_MORE_OFFSET if (YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW) { /* We're scanning a new file or input source. It's * possible that this happened because the user * just pointed yyin at a new source and called * Kmllex(). If so, then we have to assure * consistency between YY_CURRENT_BUFFER and our * globals. Here is the right place to do so, because * this is the first action (other than possibly a * back-up) that will match for the new input source. */ yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; } /* Note that here we test for yy_c_buf_p "<=" to the position * of the first EOB in the buffer, since yy_c_buf_p will * already have been incremented past the NUL character * (since all states make transitions on EOB to the * end-of-buffer state). Contrast this with the test * in input(). */ if (yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars]) { /* This was really a NUL. */ yy_state_type yy_next_state; yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state (yyscanner); /* Okay, we're now positioned to make the NUL * transition. We couldn't have * yy_get_previous_state() go ahead and do it * for us because it doesn't know how to deal * with the possibility of jamming (and we don't * want to build jamming into it because then it * will run more slowly). */ yy_next_state = yy_try_NUL_trans (yy_current_state, yyscanner); yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; if (yy_next_state) { /* Consume the NUL. */ yy_cp = ++yyg->yy_c_buf_p; yy_current_state = yy_next_state; goto yy_match; } else { yy_cp = yyg->yy_c_buf_p; goto yy_find_action; } } else switch (yy_get_next_buffer (yyscanner)) { case EOB_ACT_END_OF_FILE: { yyg->yy_did_buffer_switch_on_eof = 0; if (Kmlwrap (yyscanner)) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up * yytext, we can now set up * yy_c_buf_p so that if some total * hoser (like flex itself) wants to * call the scanner after we return the * YY_NULL, it'll still work - another * YY_NULL will get returned. */ yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ; yy_act = YY_STATE_EOF (YY_START); goto do_action; } else { if (!yyg->yy_did_buffer_switch_on_eof) YY_NEW_FILE; } break; } case EOB_ACT_CONTINUE_SCAN: yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state (yyscanner); yy_cp = yyg->yy_c_buf_p; yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; goto yy_match; case EOB_ACT_LAST_MATCH: yyg->yy_c_buf_p = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg-> yy_n_chars]; yy_current_state = yy_get_previous_state (yyscanner); yy_cp = yyg->yy_c_buf_p; yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; goto yy_find_action; } break; } default: YY_FATAL_ERROR ("fatal flex scanner internal error--no action found"); } /* end of action switch */ } /* end of scanning one token */ } /* end of Kmllex */ /* yy_get_next_buffer - try to read in a new buffer * * Returns a code representing an action: * EOB_ACT_LAST_MATCH - * EOB_ACT_CONTINUE_SCAN - continue scanning from current position * EOB_ACT_END_OF_FILE - end of file */ static int yy_get_next_buffer (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; register char *source = yyg->yytext_ptr; register int number_to_move, i; int ret_val; if (yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1]) YY_FATAL_ERROR ("fatal flex scanner internal error--end of buffer missed"); if (YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0) { /* Don't try to fill the buffer, so this is an EOF. */ if (yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1) { /* We matched a single character, the EOB, so * treat this as a final EOF. */ return EOB_ACT_END_OF_FILE; } else { /* We matched some text prior to the EOB, first * process it. */ return EOB_ACT_LAST_MATCH; } } /* Try to read more data. */ /* First move last chars to start of buffer. */ number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1; for (i = 0; i < number_to_move; ++i) *(dest++) = *(source++); if (YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING) /* don't do the read, it's not guaranteed to return an EOF, * just force an EOF */ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0; else { int num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; while (num_to_read <= 0) { /* Not enough room in the buffer - grow it. */ /* just a shorter name for the current buffer */ YY_BUFFER_STATE b = YY_CURRENT_BUFFER; int yy_c_buf_p_offset = (int) (yyg->yy_c_buf_p - b->yy_ch_buf); if (b->yy_is_our_buffer) { int new_size = b->yy_buf_size * 2; if (new_size <= 0) b->yy_buf_size += b->yy_buf_size / 8; else b->yy_buf_size *= 2; b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ Kmlrealloc ((void *) b->yy_ch_buf, b->yy_buf_size + 2, yyscanner); } else /* Can't grow it, we don't own it. */ b->yy_ch_buf = 0; if (!b->yy_ch_buf) YY_FATAL_ERROR ("fatal error - scanner input buffer overflow"); yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset]; num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; } if (num_to_read > YY_READ_BUF_SIZE) num_to_read = YY_READ_BUF_SIZE; /* Read in more data. */ YY_INPUT ((&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), yyg->yy_n_chars, (size_t) num_to_read); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; } if (yyg->yy_n_chars == 0) { if (number_to_move == YY_MORE_ADJ) { ret_val = EOB_ACT_END_OF_FILE; Kmlrestart (yyin, yyscanner); } else { ret_val = EOB_ACT_LAST_MATCH; YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_EOF_PENDING; } } else ret_val = EOB_ACT_CONTINUE_SCAN; if ((yy_size_t) (yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ yy_size_t new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1); YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) Kmlrealloc ((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, new_size, yyscanner); if (!YY_CURRENT_BUFFER_LVALUE->yy_ch_buf) YY_FATAL_ERROR ("out of dynamic memory in yy_get_next_buffer()"); } yyg->yy_n_chars += number_to_move; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR; yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; return ret_val; } /* yy_get_previous_state - get the state just before the EOB char was reached */ static yy_state_type yy_get_previous_state (yyscan_t yyscanner) { register yy_state_type yy_current_state; register char *yy_cp; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yy_current_state = yyg->yy_start; for (yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp) { register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI (*yy_cp)] : 1); if (yy_accept[yy_current_state]) { yyg->yy_last_accepting_state = yy_current_state; yyg->yy_last_accepting_cpos = yy_cp; } while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state) { yy_current_state = (int) yy_def[yy_current_state]; if (yy_current_state >= 19) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; } return yy_current_state; } /* yy_try_NUL_trans - try to make a transition on the NUL character * * synopsis * next_state = yy_try_NUL_trans( current_state ); */ static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state, yyscan_t yyscanner) { register int yy_is_jam; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* This var may be unused depending upon options. */ register char *yy_cp = yyg->yy_c_buf_p; register YY_CHAR yy_c = 1; if (yy_accept[yy_current_state]) { yyg->yy_last_accepting_state = yy_current_state; yyg->yy_last_accepting_cpos = yy_cp; } while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state) { yy_current_state = (int) yy_def[yy_current_state]; if (yy_current_state >= 19) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; yy_is_jam = (yy_current_state == 18); return yy_is_jam ? 0 : yy_current_state; } #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput (yyscan_t yyscanner) #else static int input (yyscan_t yyscanner) #endif { int c; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; *yyg->yy_c_buf_p = yyg->yy_hold_char; if (*yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR) { /* yy_c_buf_p now points to the character we want to return. * If this occurs *before* the EOB characters, then it's a * valid NUL; if not, then we've hit the end of the buffer. */ if (yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars]) /* This was really a NUL. */ *yyg->yy_c_buf_p = '\0'; else { /* need more input */ int offset = yyg->yy_c_buf_p - yyg->yytext_ptr; ++yyg->yy_c_buf_p; switch (yy_get_next_buffer (yyscanner)) { case EOB_ACT_LAST_MATCH: /* This happens because yy_g_n_b() * sees that we've accumulated a * token and flags that we need to * try matching the token before * proceeding. But for input(), * there's no matching to consider. * So convert the EOB_ACT_LAST_MATCH * to EOB_ACT_END_OF_FILE. */ /* Reset buffer status. */ Kmlrestart (yyin, yyscanner); /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE: { if (Kmlwrap (yyscanner)) return EOF; if (!yyg->yy_did_buffer_switch_on_eof) YY_NEW_FILE; #ifdef __cplusplus return yyinput (yyscanner); #else return input (yyscanner); #endif } case EOB_ACT_CONTINUE_SCAN: yyg->yy_c_buf_p = yyg->yytext_ptr + offset; break; } } } c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */ *yyg->yy_c_buf_p = '\0'; /* preserve yytext */ yyg->yy_hold_char = *++yyg->yy_c_buf_p; return c; } #endif /* ifndef YY_NO_INPUT */ /** Immediately switch to a different input stream. * @param input_file A readable stream. * @param yyscanner The scanner object. * @note This function does not reset the start condition to @c INITIAL . */ void Kmlrestart (FILE * input_file, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!YY_CURRENT_BUFFER) { Kmlensure_buffer_stack (yyscanner); YY_CURRENT_BUFFER_LVALUE = Kml_create_buffer (yyin, YY_BUF_SIZE, yyscanner); } Kml_init_buffer (YY_CURRENT_BUFFER, input_file, yyscanner); Kml_load_buffer_state (yyscanner); } /** Switch to a different input buffer. * @param new_buffer The new input buffer. * @param yyscanner The scanner object. */ void Kml_switch_to_buffer (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* TODO. We should be able to replace this entire function body * with * Kmlpop_buffer_state(); * Kmlpush_buffer_state(new_buffer); */ Kmlensure_buffer_stack (yyscanner); if (YY_CURRENT_BUFFER == new_buffer) return; if (YY_CURRENT_BUFFER) { /* Flush out information for old buffer. */ *yyg->yy_c_buf_p = yyg->yy_hold_char; YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; } YY_CURRENT_BUFFER_LVALUE = new_buffer; Kml_load_buffer_state (yyscanner); /* We don't actually know whether we did this switch during * EOF (Kmlwrap()) processing, but the only time this flag * is looked at is after Kmlwrap() is called, so it's safe * to go ahead and always set it. */ yyg->yy_did_buffer_switch_on_eof = 1; } static void Kml_load_buffer_state (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; yyg->yy_hold_char = *yyg->yy_c_buf_p; } /** Allocate and initialize an input buffer state. * @param file A readable stream. * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. * @param yyscanner The scanner object. * @return the allocated buffer state. */ YY_BUFFER_STATE Kml_create_buffer (FILE * file, int size, yyscan_t yyscanner) { YY_BUFFER_STATE b; b = (YY_BUFFER_STATE) Kmlalloc (sizeof (struct yy_buffer_state), yyscanner); if (!b) YY_FATAL_ERROR ("out of dynamic memory in Kml_create_buffer()"); b->yy_buf_size = size; /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ b->yy_ch_buf = (char *) Kmlalloc (b->yy_buf_size + 2, yyscanner); if (!b->yy_ch_buf) YY_FATAL_ERROR ("out of dynamic memory in Kml_create_buffer()"); b->yy_is_our_buffer = 1; Kml_init_buffer (b, file, yyscanner); return b; } /** Destroy the buffer. * @param b a buffer created with Kml_create_buffer() * @param yyscanner The scanner object. */ void Kml_delete_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!b) return; if (b == YY_CURRENT_BUFFER) /* Not sure if we should pop here. */ YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if (b->yy_is_our_buffer) Kmlfree ((void *) b->yy_ch_buf, yyscanner); Kmlfree ((void *) b, yyscanner); } #ifndef __cplusplus extern int isatty (int); #endif /* __cplusplus */ /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a Kmlrestart() or at EOF. */ static void Kml_init_buffer (YY_BUFFER_STATE b, FILE * file, yyscan_t yyscanner) { int oerrno = errno; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; Kml_flush_buffer (b, yyscanner); b->yy_input_file = file; b->yy_fill_buffer = 1; /* If b is the current buffer, then Kml_init_buffer was _probably_ * called from Kmlrestart() or through yy_get_next_buffer. * In that case, we don't want to reset the lineno or column. */ if (b != YY_CURRENT_BUFFER) { b->yy_bs_lineno = 1; b->yy_bs_column = 0; } b->yy_is_interactive = file ? (isatty (fileno (file)) > 0) : 0; errno = oerrno; } /** Discard all buffered characters. On the next scan, YY_INPUT will be called. * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. * @param yyscanner The scanner object. */ void Kml_flush_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!b) return; b->yy_n_chars = 0; /* We always need two end-of-buffer characters. The first causes * a transition to the end-of-buffer state. The second causes * a jam in that state. */ b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; b->yy_buf_pos = &b->yy_ch_buf[0]; b->yy_at_bol = 1; b->yy_buffer_status = YY_BUFFER_NEW; if (b == YY_CURRENT_BUFFER) Kml_load_buffer_state (yyscanner); } /** Pushes the new state onto the stack. The new state becomes * the current state. This function will allocate the stack * if necessary. * @param new_buffer The new state. * @param yyscanner The scanner object. */ void Kmlpush_buffer_state (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (new_buffer == NULL) return; Kmlensure_buffer_stack (yyscanner); /* This block is copied from Kml_switch_to_buffer. */ if (YY_CURRENT_BUFFER) { /* Flush out information for old buffer. */ *yyg->yy_c_buf_p = yyg->yy_hold_char; YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; } /* Only push if top exists. Otherwise, replace top. */ if (YY_CURRENT_BUFFER) yyg->yy_buffer_stack_top++; YY_CURRENT_BUFFER_LVALUE = new_buffer; /* copied from Kml_switch_to_buffer. */ Kml_load_buffer_state (yyscanner); yyg->yy_did_buffer_switch_on_eof = 1; } /** Removes and deletes the top of the stack, if present. * The next element becomes the new top. * @param yyscanner The scanner object. */ void Kmlpop_buffer_state (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!YY_CURRENT_BUFFER) return; Kml_delete_buffer (YY_CURRENT_BUFFER, yyscanner); YY_CURRENT_BUFFER_LVALUE = NULL; if (yyg->yy_buffer_stack_top > 0) --yyg->yy_buffer_stack_top; if (YY_CURRENT_BUFFER) { Kml_load_buffer_state (yyscanner); yyg->yy_did_buffer_switch_on_eof = 1; } } /* Allocates the stack if it does not exist. * Guarantees space for at least one push. */ static void Kmlensure_buffer_stack (yyscan_t yyscanner) { int num_to_alloc; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!yyg->yy_buffer_stack) { /* First allocation is just for 2 elements, since we don't know if this * scanner will even need a stack. We use 2 instead of 1 to avoid an * immediate realloc on the next call. */ num_to_alloc = 1; yyg->yy_buffer_stack = (struct yy_buffer_state **) Kmlalloc (num_to_alloc * sizeof (struct yy_buffer_state *), yyscanner); if (!yyg->yy_buffer_stack) YY_FATAL_ERROR ("out of dynamic memory in Kmlensure_buffer_stack()"); memset (yyg->yy_buffer_stack, 0, num_to_alloc * sizeof (struct yy_buffer_state *)); yyg->yy_buffer_stack_max = num_to_alloc; yyg->yy_buffer_stack_top = 0; return; } if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1) { /* Increase the buffer to prepare for a possible push. */ int grow_size = 8 /* arbitrary grow size */ ; num_to_alloc = yyg->yy_buffer_stack_max + grow_size; yyg->yy_buffer_stack = (struct yy_buffer_state **) Kmlrealloc (yyg->yy_buffer_stack, num_to_alloc * sizeof (struct yy_buffer_state *), yyscanner); if (!yyg->yy_buffer_stack) YY_FATAL_ERROR ("out of dynamic memory in Kmlensure_buffer_stack()"); /* zero only the new slots. */ memset (yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof (struct yy_buffer_state *)); yyg->yy_buffer_stack_max = num_to_alloc; } } /** Setup the input buffer state to scan directly from a user-specified character buffer. * @param base the character buffer * @param size the size in bytes of the character buffer * @param yyscanner The scanner object. * @return the newly allocated buffer state object. */ YY_BUFFER_STATE Kml_scan_buffer (char *base, yy_size_t size, yyscan_t yyscanner) { YY_BUFFER_STATE b; if (size < 2 || base[size - 2] != YY_END_OF_BUFFER_CHAR || base[size - 1] != YY_END_OF_BUFFER_CHAR) /* They forgot to leave room for the EOB's. */ return 0; b = (YY_BUFFER_STATE) Kmlalloc (sizeof (struct yy_buffer_state), yyscanner); if (!b) YY_FATAL_ERROR ("out of dynamic memory in Kml_scan_buffer()"); b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ b->yy_buf_pos = b->yy_ch_buf = base; b->yy_is_our_buffer = 0; b->yy_input_file = 0; b->yy_n_chars = b->yy_buf_size; b->yy_is_interactive = 0; b->yy_at_bol = 1; b->yy_fill_buffer = 0; b->yy_buffer_status = YY_BUFFER_NEW; Kml_switch_to_buffer (b, yyscanner); return b; } /** Setup the input buffer state to scan a string. The next call to Kmllex() will * scan from a @e copy of @a str. * @param yystr a NUL-terminated string to scan * @param yyscanner The scanner object. * @return the newly allocated buffer state object. * @note If you want to scan bytes that may contain NUL values, then use * Kml_scan_bytes() instead. */ YY_BUFFER_STATE Kml_scan_string (yyconst char *yystr, yyscan_t yyscanner) { return Kml_scan_bytes (yystr, strlen (yystr), yyscanner); } /** Setup the input buffer state to scan the given bytes. The next call to Kmllex() will * scan from a @e copy of @a bytes. * @param bytes the byte buffer to scan * @param len the number of bytes in the buffer pointed to by @a bytes. * @param yyscanner The scanner object. * @return the newly allocated buffer state object. */ YY_BUFFER_STATE Kml_scan_bytes (yyconst char *yybytes, int _yybytes_len, yyscan_t yyscanner) { YY_BUFFER_STATE b; char *buf; yy_size_t n; int i; /* Get memory for full buffer, including space for trailing EOB's. */ n = _yybytes_len + 2; buf = (char *) Kmlalloc (n, yyscanner); if (!buf) YY_FATAL_ERROR ("out of dynamic memory in Kml_scan_bytes()"); for (i = 0; i < _yybytes_len; ++i) buf[i] = yybytes[i]; buf[_yybytes_len] = buf[_yybytes_len + 1] = YY_END_OF_BUFFER_CHAR; b = Kml_scan_buffer (buf, n, yyscanner); if (!b) YY_FATAL_ERROR ("bad buffer in Kml_scan_bytes()"); /* It's okay to grow etc. this buffer, and we should throw it * away when we're done. */ b->yy_is_our_buffer = 1; return b; } #ifndef YY_EXIT_FAILURE #define YY_EXIT_FAILURE 2 #endif static void yy_fatal_error (yyconst char *msg, yyscan_t yyscanner) { (void) fprintf (stderr, "%s\n", msg); exit (YY_EXIT_FAILURE); } /* Redefine yyless() so it works in section 3 code. */ #undef yyless #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ yytext[yyleng] = yyg->yy_hold_char; \ yyg->yy_c_buf_p = yytext + yyless_macro_arg; \ yyg->yy_hold_char = *yyg->yy_c_buf_p; \ *yyg->yy_c_buf_p = '\0'; \ yyleng = yyless_macro_arg; \ } \ while ( 0 ) /* Accessor methods (get/set functions) to struct members. */ /** Get the user-defined data for this scanner. * @param yyscanner The scanner object. */ YY_EXTRA_TYPE Kmlget_extra (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyextra; } /** Get the current line number. * @param yyscanner The scanner object. */ int Kmlget_lineno (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!YY_CURRENT_BUFFER) return 0; return yylineno; } /** Get the current column number. * @param yyscanner The scanner object. */ int Kmlget_column (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!YY_CURRENT_BUFFER) return 0; return yycolumn; } /** Get the input stream. * @param yyscanner The scanner object. */ FILE * Kmlget_in (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyin; } /** Get the output stream. * @param yyscanner The scanner object. */ FILE * Kmlget_out (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyout; } /** Get the length of the current token. * @param yyscanner The scanner object. */ int Kmlget_leng (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyleng; } /** Get the current token. * @param yyscanner The scanner object. */ char * Kmlget_text (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yytext; } /** Set the user-defined data. This data is never touched by the scanner. * @param user_defined The data to be associated with this scanner. * @param yyscanner The scanner object. */ void Kmlset_extra (YY_EXTRA_TYPE user_defined, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yyextra = user_defined; } /** Set the current line number. * @param line_number * @param yyscanner The scanner object. */ void Kmlset_lineno (int line_number, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* lineno is only valid if an input buffer exists. */ if (!YY_CURRENT_BUFFER) yy_fatal_error ("Kmlset_lineno called with no buffer", yyscanner); yylineno = line_number; } /** Set the current column. * @param line_number * @param yyscanner The scanner object. */ void Kmlset_column (int column_no, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* column is only valid if an input buffer exists. */ if (!YY_CURRENT_BUFFER) yy_fatal_error ("Kmlset_column called with no buffer", yyscanner); yycolumn = column_no; } /** Set the input stream. This does not discard the current * input buffer. * @param in_str A readable stream. * @param yyscanner The scanner object. * @see Kml_switch_to_buffer */ void Kmlset_in (FILE * in_str, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yyin = in_str; } void Kmlset_out (FILE * out_str, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yyout = out_str; } int Kmlget_debug (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yy_flex_debug; } void Kmlset_debug (int bdebug, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yy_flex_debug = bdebug; } /* Accessor methods for yylval and yylloc */ /* User-visible API */ /* Kmllex_init is special because it creates the scanner itself, so it is * the ONLY reentrant function that doesn't take the scanner as the last argument. * That's why we explicitly handle the declaration, instead of using our macros. */ int Kmllex_init (yyscan_t * ptr_yy_globals) { if (ptr_yy_globals == NULL) { errno = EINVAL; return 1; } *ptr_yy_globals = (yyscan_t) Kmlalloc (sizeof (struct yyguts_t), NULL); if (*ptr_yy_globals == NULL) { errno = ENOMEM; return 1; } /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */ memset (*ptr_yy_globals, 0x00, sizeof (struct yyguts_t)); return yy_init_globals (*ptr_yy_globals); } /* Kmllex_init_extra has the same functionality as Kmllex_init, but follows the * convention of taking the scanner as the last argument. Note however, that * this is a *pointer* to a scanner, as it will be allocated by this call (and * is the reason, too, why this function also must handle its own declaration). * The user defined value in the first argument will be available to Kmlalloc in * the yyextra field. */ int Kmllex_init_extra (YY_EXTRA_TYPE yy_user_defined, yyscan_t * ptr_yy_globals) { struct yyguts_t dummy_yyguts; Kmlset_extra (yy_user_defined, &dummy_yyguts); if (ptr_yy_globals == NULL) { errno = EINVAL; return 1; } *ptr_yy_globals = (yyscan_t) Kmlalloc (sizeof (struct yyguts_t), &dummy_yyguts); if (*ptr_yy_globals == NULL) { errno = ENOMEM; return 1; } /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */ memset (*ptr_yy_globals, 0x00, sizeof (struct yyguts_t)); Kmlset_extra (yy_user_defined, *ptr_yy_globals); return yy_init_globals (*ptr_yy_globals); } static int yy_init_globals (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* Initialization is the same as for the non-reentrant scanner. * This function is called from Kmllex_destroy(), so don't allocate here. */ yyg->yy_buffer_stack = 0; yyg->yy_buffer_stack_top = 0; yyg->yy_buffer_stack_max = 0; yyg->yy_c_buf_p = (char *) 0; yyg->yy_init = 0; yyg->yy_start = 0; yyg->yy_start_stack_ptr = 0; yyg->yy_start_stack_depth = 0; yyg->yy_start_stack = NULL; /* Defined in main.c */ #ifdef YY_STDINIT yyin = stdin; yyout = stdout; #else yyin = (FILE *) 0; yyout = (FILE *) 0; #endif /* For future reference: Set errno on error, since we are called by * Kmllex_init() */ return 0; } /* Kmllex_destroy is for both reentrant and non-reentrant scanners. */ int Kmllex_destroy (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* Pop the buffer stack, destroying each element. */ while (YY_CURRENT_BUFFER) { Kml_delete_buffer (YY_CURRENT_BUFFER, yyscanner); YY_CURRENT_BUFFER_LVALUE = NULL; Kmlpop_buffer_state (yyscanner); } /* Destroy the stack itself. */ Kmlfree (yyg->yy_buffer_stack, yyscanner); yyg->yy_buffer_stack = NULL; /* Destroy the start condition stack. */ Kmlfree (yyg->yy_start_stack, yyscanner); yyg->yy_start_stack = NULL; /* Reset the globals. This is important in a non-reentrant scanner so the next time * Kmllex() is called, initialization will occur. */ yy_init_globals (yyscanner); /* Destroy the main struct (reentrant only). */ Kmlfree (yyscanner, yyscanner); yyscanner = NULL; return 0; } /* * Internal utility routines. */ #ifndef yytext_ptr static void yy_flex_strncpy (char *s1, yyconst char *s2, int n, yyscan_t yyscanner) { register int i; for (i = 0; i < n; ++i) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen (yyconst char *s, yyscan_t yyscanner) { register int n; for (n = 0; s[n]; ++n) ; return n; } #endif void * Kmlalloc (yy_size_t size, yyscan_t yyscanner) { return (void *) malloc (size); } void * Kmlrealloc (void *ptr, yy_size_t size, yyscan_t yyscanner) { /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter * because both ANSI C and C++ allow castless assignment from * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ return (void *) realloc ((char *) ptr, size); } void Kmlfree (void *ptr, yyscan_t yyscanner) { free ((char *) ptr); /* see Kmlrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" int Kmlwrap (yyscan_t yyscanner) { return 1; } libspatialite-4.1.1/src/gaiageo/vanuatuWkt.h0000664000175000017500000000255212163502133015773 00000000000000#define VANUATU_NEWLINE 1 #define VANUATU_POINT 2 #define VANUATU_OPEN_BRACKET 3 #define VANUATU_CLOSE_BRACKET 4 #define VANUATU_POINT_M 5 #define VANUATU_POINT_Z 6 #define VANUATU_POINT_ZM 7 #define VANUATU_NUM 8 #define VANUATU_COMMA 9 #define VANUATU_LINESTRING 10 #define VANUATU_LINESTRING_M 11 #define VANUATU_LINESTRING_Z 12 #define VANUATU_LINESTRING_ZM 13 #define VANUATU_POLYGON 14 #define VANUATU_POLYGON_M 15 #define VANUATU_POLYGON_Z 16 #define VANUATU_POLYGON_ZM 17 #define VANUATU_MULTIPOINT 18 #define VANUATU_MULTIPOINT_M 19 #define VANUATU_MULTIPOINT_Z 20 #define VANUATU_MULTIPOINT_ZM 21 #define VANUATU_MULTILINESTRING 22 #define VANUATU_MULTILINESTRING_M 23 #define VANUATU_MULTILINESTRING_Z 24 #define VANUATU_MULTILINESTRING_ZM 25 #define VANUATU_MULTIPOLYGON 26 #define VANUATU_MULTIPOLYGON_M 27 #define VANUATU_MULTIPOLYGON_Z 28 #define VANUATU_MULTIPOLYGON_ZM 29 #define VANUATU_GEOMETRYCOLLECTION 30 #define VANUATU_GEOMETRYCOLLECTION_M 31 #define VANUATU_GEOMETRYCOLLECTION_Z 32 #define VANUATU_GEOMETRYCOLLECTION_ZM 33 libspatialite-4.1.1/src/gaiageo/lemon/0000775000175000017500000000000012163503225014642 500000000000000libspatialite-4.1.1/src/gaiageo/lemon/Makefile.am0000664000175000017500000000013112163502133016606 00000000000000 SUBDIRS = lemon_src EXTRA_DIST = Ewkt.y geoJSON.y Gml.y Kml.y vanuatuWkt.y ReadMe.txt libspatialite-4.1.1/src/gaiageo/lemon/ReadMe.txt0000664000175000017500000000735312163502133016465 00000000000000What is the LEMON parser ? ========================== Please see: http://www.hwaci.com/sw/lemon/ in a very few words: the LEMON parser is internally used by the SQLite's development team, so using it for SpatiaLite as well seems to be fully appropriate. How to get the LEMON parser executable: ======================================= you can get the latest LEMON sources consulting the above URL: anyway, for the sake of simplicity, you can directly found a copy of LEMON sources into the "lemon_src" directory. in order to get the LEMON executable you have to build it by yourself: that's not at all difficult, simply type: cd lemon_src gcc lemon.c -o lemon The Vanuatu WKT parser: ======================= 1) in order to make any change to the WKT parser you have to edit first the definitions file vanuatuWkt.y 2) then run: lemon_src/lemon -l vanuatuWkt.y 3) during the above step the following files will be generated: vanuatuWkt.c [the C code implementing the parser] vanuatuWkt.h [C header file] vanuatuWkt.out [check file - useful for debugging] 3.1] IMPORTANT NOTICE: carefully check the generated *.c code; you should manually replace any occurrence of: fprintf(stderr, ..... with: spatialite_e(..... 3.2] and finally you must copy both generated files into the parent dir: cp vanuatuWkt.h .. cp vanuatuWkt.c .. The EWKT parser: ================ 1) in order to make any change to the EWKT parser you have to edit first the definitions file Ewkt.y 2) then run: lemon_src/lemon -l Ewkt.y 3) during the above step the following files will be generated: Ewkt.c [the C code implementing the parser] Ewkt.h [C header file] Ewkt.out [check file - useful for debugging] 3.1] IMPORTANT NOTICE: carefully check the generated *.c code; you should manually replace any occurrence of: fprintf(stderr, ..... with: spatialite_e(..... 3.2] and finally you must copy both generated files into the parent dir: cp Ewkt.h .. cp Ewkt.c .. The GeoJSON parser: ================ 1) in order to make any change to the GeoJSON parser you have to edit first the definitions file geoJSON.y 2) then run: lemon_src/lemon -l geoJSON.y 3) during the above step the following files will be generated: geoJSON.c [the C code implementing the parser] geoJSON.h [C header file] geoJSON.out [check file - useful for debugging] 3.1] IMPORTANT NOTICE: carefully check the generated *.c code; you should manually replace any occurrence of: fprintf(stderr, ..... with: spatialite_e(..... 3.2] and finally you must copy both generated files into the parent dir: cp geoJSON.h .. cp geoJSON.c .. The KML parser: ================ 1) in order to make any change to the KML parser you have to edit first the definitions file Kml.y 2) then run: lemon_src/lemon -l Kml.y 3) during the above step the following files will be generated: Kml.c [the C code implementing the parser] Kml.h [C header file] Kml.out [check file - useful for debugging] 3.1] IMPORTANT NOTICE: carefully check the generated *.c code; you should manually replace any occurrence of: fprintf(stderr, ..... with: spatialite_e(..... 3.2] and finally you must copy both generated files into the -/lemon/include dir: cp Kml.h .. cp Kml.c .. The GML parser: ================ 1) in order to make any change to the GML parser you have to edit first the definitions file Gml.y 2) then run: lemon_src/lemon -l Gml.y 3) during the above step the following files will be generated: Gml.c [the C code implementing the parser] Gml.h [C header file] Gml.out [check file - useful for debugging] 3.1] IMPORTANT NOTICE: carefully check the generated *.c code; you should manually replace any occurrence of: fprintf(stderr, ..... with: spatialite_e(..... 3.2] and finally you must copy both generated files into the -/lemon/include dir: cp Gml.h .. cp Gml.c .. libspatialite-4.1.1/src/gaiageo/lemon/geoJSON.y0000664000175000017500000012767512163502133016237 00000000000000/* geoJSON.y -- GeoJSON parser - LEMON config version 2.4, 2011 May 16 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ // Tokens are void pointers (so we can cast them to whatever we want) %token_type {void *} // Output to stderr when stack overflows %stack_overflow { spatialite_e( "Giving up. Parser stack overflow\n"); } // Increase this number if necessary %stack_size 1000000 // Header files to be included in geoJSON.c %include { } // Set the return value of gaiaParseGeoJSON in the following pointer: %extra_argument { struct geoJson_data *p_data } // Invalid syntax (ie. no rules matched) %syntax_error { /* ** when the LEMON parser encounters an error ** then this global variable is set */ p_data->geoJson_parse_error = 1; p_data->result = NULL; } /* This is to terminate with a new line */ main ::= in. in ::= . in ::= in state GEOJSON_NEWLINE. state ::= program. /* * program is the start node. All strings matched by this CFG must be one of * geo_text (text describing a geometry) */ program ::= geo_text. // geometries (2D and 3D): geo_text ::= point(P). { p_data->result = P; } // P is a geometry collection containing a point geo_text ::= pointz(P). { p_data->result = P; } // P is a geometry collection containing a point geo_text ::= linestring(L). { p_data->result = L; } // L is a geometry collection containing a linestring geo_text ::= linestringz(L). { p_data->result = L; } // L is a geometry collection containing a linestring geo_text ::= polygon(P). { p_data->result = P; } // P is a geometry collection containing a polygon geo_text ::= polygonz(P). { p_data->result = P; } // P is a geometry collection containing a polygon geo_text ::= multipoint(M). { p_data->result = M; } // M is a geometry collection containing a multipoint geo_text ::= multipointz(M). { p_data->result = M; } // M is a geometry collection containing a multipoint geo_text ::= multilinestring(M). { p_data->result = M; } // M is a geometry collection containing a multilinestring geo_text ::= multilinestringz(M). { p_data->result = M; } // M is a geometry collection containing a multilinestring geo_text ::= multipolygon(M). { p_data->result = M; } // M is a geometry collection containing a multipolygon geo_text ::= multipolygonz(M). { p_data->result = M; } // M is a geometry collection containing a multipolygon geo_text ::= geocoll(H). { p_data->result = H; } // H is a geometry collection created from user input geo_text ::= geocollz(H). { p_data->result = H; } // H is a geometry collection created from user input // Syntax for a "point" object: // The functions called build a geometry collection from a gaiaPointPtr point(P) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy(Q) GEOJSON_CLOSE_BRACE. { P = geoJSON_buildGeomFromPoint( p_data, (gaiaPointPtr)Q); } // Point (2D) [simple] point(P) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy(Q) GEOJSON_CLOSE_BRACE. { P = geoJSON_buildGeomFromPoint( p_data, (gaiaPointPtr)Q); } // Point (2D) [with BBOX] point(P) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs(S) GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy(Q) GEOJSON_CLOSE_BRACE. { P = geoJSON_buildGeomFromPointSrid( p_data, (gaiaPointPtr)Q, (int *)S); } // Point (2D) [with short SRS] point(P) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs(S) GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy(Q) GEOJSON_CLOSE_BRACE. { P = geoJSON_buildGeomFromPointSrid( p_data, (gaiaPointPtr)Q, (int *)S); } // Point (2D) [with long SRS] point(P) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs(S) GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy(Q) GEOJSON_CLOSE_BRACE. { P = geoJSON_buildGeomFromPointSrid( p_data, (gaiaPointPtr)Q, (int *)S); } // Point (2D) [with BBOX & short SRS] point(P) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs(S) GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy(Q) GEOJSON_CLOSE_BRACE. { P = geoJSON_buildGeomFromPointSrid( p_data, (gaiaPointPtr)Q, (int *)S); } // Point (2D) [with BBOX & long SRS] pointz(P) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz(Q) GEOJSON_CLOSE_BRACE. { P = geoJSON_buildGeomFromPoint( p_data, (gaiaPointPtr)Q); } // Point (3D) [simple] pointz(P) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz(Q) GEOJSON_CLOSE_BRACE. { P = geoJSON_buildGeomFromPoint( p_data, (gaiaPointPtr)Q); } // Point (3D) [with BBOX] pointz(P) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs(S) GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz(Q) GEOJSON_CLOSE_BRACE. { P = geoJSON_buildGeomFromPointSrid( p_data, (gaiaPointPtr)Q, (int *)S); } // Point (3D) [with short SRS] pointz(P) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs(S) GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz(Q) GEOJSON_CLOSE_BRACE. { P = geoJSON_buildGeomFromPointSrid( p_data, (gaiaPointPtr)Q, (int *)S); } // Point (3D) [with long SRS] point(P) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs(S) GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz(Q) GEOJSON_CLOSE_BRACE. { P = geoJSON_buildGeomFromPointSrid( p_data, (gaiaPointPtr)Q, (int *)S); } // Point (3D) [with BBOX & short SRS] point(P) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs(S) GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz(Q) GEOJSON_CLOSE_BRACE. { P = geoJSON_buildGeomFromPointSrid( p_data, (gaiaPointPtr)Q, (int *)S); } // Point (3D) [with BBOX & long SRS] // GeoJSON Bounding Box bbox ::= coord GEOJSON_COMMA coord GEOJSON_COMMA coord GEOJSON_COMMA coord. // GeoJSON short-format SRS short_crs(A) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_NAME GEOJSON_COMMA GEOJSON_PROPS GEOJSON_COLON GEOJSON_OPEN_BRACE GEOJSON_NAME GEOJSON_COLON short_srid(B) GEOJSON_CLOSE_BRACE GEOJSON_CLOSE_BRACE. { A = B; } // GeoJSON long-format SRS long_crs(A) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_NAME GEOJSON_COMMA GEOJSON_PROPS GEOJSON_COLON GEOJSON_OPEN_BRACE GEOJSON_NAME GEOJSON_COLON long_srid(B) GEOJSON_CLOSE_BRACE GEOJSON_CLOSE_BRACE. { A = B; } // Point coordinates in different dimensions. // Create the point by calling the proper function in SpatiaLite : point_coordxy(P) ::= GEOJSON_OPEN_BRACKET coord(X) GEOJSON_COMMA coord(Y) GEOJSON_CLOSE_BRACKET. { P = (void *) geoJSON_point_xy( p_data, (double *)X, (double *)Y); } point_coordxyz(P) ::= GEOJSON_OPEN_BRACKET coord(X) GEOJSON_COMMA coord(Y) GEOJSON_COMMA coord(Z) GEOJSON_CLOSE_BRACKET. { P = (void *) geoJSON_point_xyz( p_data, (double *)X, (double *)Y, (double *)Z); } // All coordinates are assumed to be doubles (guaranteed by the flex tokenizer). coord(A) ::= GEOJSON_NUM(B). { A = B; } // short-format SRID. short_srid(A) ::= GEOJSON_SHORT_SRID(B). { A = B; } // long-format SRID. long_srid(A) ::= GEOJSON_LONG_SRID(B). { A = B; } // Rules to match an infinite number of points: // Also links the generated gaiaPointPtrs together extra_pointsxy(A) ::= . { A = NULL; } extra_pointsxy(A) ::= GEOJSON_COMMA point_coordxy(P) extra_pointsxy(B). { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)B; A = P; } extra_pointsxyz(A) ::= . { A = NULL; } extra_pointsxyz(A) ::= GEOJSON_COMMA point_coordxyz(P) extra_pointsxyz(B). { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)B; A = P; } // Syntax for a "linestring" object: // The functions called build a geometry collection from a gaiaLinestringPtr linestring(L) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text(X) GEOJSON_CLOSE_BRACE. { L = geoJSON_buildGeomFromLinestring( p_data, (gaiaLinestringPtr)X); } // LineString (2D) [simple] linestring(L) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text(X) GEOJSON_CLOSE_BRACE. { L = geoJSON_buildGeomFromLinestring( p_data, (gaiaLinestringPtr)X); } // LineString (2D) [with BBOX] linestring(L) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs(S) GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text(X) GEOJSON_CLOSE_BRACE. { L = geoJSON_buildGeomFromLinestringSrid( p_data, (gaiaLinestringPtr)X, (int *)S); } // LineString (2D) [with short SRS] linestring(L) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs(S) GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text(X) GEOJSON_CLOSE_BRACE. { L = geoJSON_buildGeomFromLinestringSrid( p_data, (gaiaLinestringPtr)X, (int *)S); } // LineString (2D) [with long SRS] linestring(L) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs(S) GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text(X) GEOJSON_CLOSE_BRACE. { L = geoJSON_buildGeomFromLinestringSrid( p_data, (gaiaLinestringPtr)X, (int *)S); } // LineString (2D) [with BBOX & short SRS] linestring(L) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs(S) GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text(X) GEOJSON_CLOSE_BRACE. { L = geoJSON_buildGeomFromLinestringSrid( p_data, (gaiaLinestringPtr)X, (int *)S); } // LineString (2D) [with BBOX & long SRS] linestringz(L) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz(X) GEOJSON_CLOSE_BRACE. { L = geoJSON_buildGeomFromLinestring( p_data, (gaiaLinestringPtr)X); } // LineString (3D) [simple] linestringz(L) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz(X) GEOJSON_CLOSE_BRACE. { L = geoJSON_buildGeomFromLinestring( p_data, (gaiaLinestringPtr)X); } // LineString (3D) [with BBOX] linestringz(L) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs(S) GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz(X) GEOJSON_CLOSE_BRACE. { L = geoJSON_buildGeomFromLinestringSrid( p_data, (gaiaLinestringPtr)X, (int *)S); } // LineString (3D) [with short SRS] linestringz(L) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs(S) GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz(X) GEOJSON_CLOSE_BRACE. { L = geoJSON_buildGeomFromLinestringSrid( p_data, (gaiaLinestringPtr)X, (int *)S); } // LineString (3D) [with long SRS] linestringz(L) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs(S) GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz(X) GEOJSON_CLOSE_BRACE. { L = geoJSON_buildGeomFromLinestringSrid( p_data, (gaiaLinestringPtr)X, (int *)S); } // LineString (3D) [with BBOX & short SRS] linestringz(L) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs(S) GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz(X) GEOJSON_CLOSE_BRACE. { L = geoJSON_buildGeomFromLinestringSrid( p_data, (gaiaLinestringPtr)X, (int *)S); } // LineString (3D) [with BBOX & long SRS] // A valid linestring must have at least two vertices: // The functions called build a gaiaLinestring from a linked list of points linestring_text(L) ::= GEOJSON_OPEN_BRACKET point_coordxy(P) GEOJSON_COMMA point_coordxy(Q) extra_pointsxy(R) GEOJSON_CLOSE_BRACKET. { ((gaiaPointPtr)Q)->Next = (gaiaPointPtr)R; ((gaiaPointPtr)P)->Next = (gaiaPointPtr)Q; L = (void *) geoJSON_linestring_xy( p_data, (gaiaPointPtr)P); } linestring_textz(L) ::= GEOJSON_OPEN_BRACKET point_coordxyz(P) GEOJSON_COMMA point_coordxyz(Q) extra_pointsxyz(R) GEOJSON_CLOSE_BRACKET. { ((gaiaPointPtr)Q)->Next = (gaiaPointPtr)R; ((gaiaPointPtr)P)->Next = (gaiaPointPtr)Q; L = (void *) geoJSON_linestring_xyz( p_data, (gaiaPointPtr)P); } // Syntax for a "polygon" object: // The functions called build a geometry collection from a gaiaPolygonPtr polygon(P) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text(X) GEOJSON_CLOSE_BRACE. { P = geoJSON_buildGeomFromPolygon( p_data, (gaiaPolygonPtr)X); } // Polygon (2D) [simple] polygon(P) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text(X) GEOJSON_CLOSE_BRACE. { P = geoJSON_buildGeomFromPolygon( p_data, (gaiaPolygonPtr)X); } // Polygon (2D) [with BBOX] polygon(P) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs(S) GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text(X) GEOJSON_CLOSE_BRACE. { P = geoJSON_buildGeomFromPolygonSrid( p_data, (gaiaPolygonPtr)X, (int *)S); } // Polygon (2D) [with short SRS] polygon(P) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs(S) GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text(X) GEOJSON_CLOSE_BRACE. { P = geoJSON_buildGeomFromPolygonSrid( p_data, (gaiaPolygonPtr)X, (int *)S); } // Polygon (2D) [with long SRS] polygon(P) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs(S) GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text(X) GEOJSON_CLOSE_BRACE. { P = geoJSON_buildGeomFromPolygonSrid( p_data, (gaiaPolygonPtr)X, (int *)S); } // Polygon (2D) [with BBOX & short SRS] polygon(P) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs(S) GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text(X) GEOJSON_CLOSE_BRACE. { P = geoJSON_buildGeomFromPolygonSrid( p_data, (gaiaPolygonPtr)X, (int *)S); } // Polygon (2D) [with BBOX & long SRS] polygonz(P) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz(X) GEOJSON_CLOSE_BRACE. { P = geoJSON_buildGeomFromPolygon( p_data, (gaiaPolygonPtr)X); } // Polygon (3D) [simple] polygonz(P) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz(X) GEOJSON_CLOSE_BRACE. { P = geoJSON_buildGeomFromPolygon( p_data, (gaiaPolygonPtr)X); } // Polygon (3D) [with BBOX] polygonz(P) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs(S) GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz(X) GEOJSON_CLOSE_BRACE. { P = geoJSON_buildGeomFromPolygonSrid( p_data, (gaiaPolygonPtr)X, (int *)S); } // Polygon (3D) [with short SRS] polygonz(P) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs(S) GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz(X) GEOJSON_CLOSE_BRACE. { P = geoJSON_buildGeomFromPolygonSrid( p_data, (gaiaPolygonPtr)X, (int *)S); } // Polygon (3D) [with long SRS] polygonz(P) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs(S) GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz(X) GEOJSON_CLOSE_BRACE. { P = geoJSON_buildGeomFromPolygonSrid( p_data, (gaiaPolygonPtr)X, (int *)S); } // Polygon (3D) [with BBOX & short SRS] polygonz(P) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs(S) GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz(X) GEOJSON_CLOSE_BRACE. { P = geoJSON_buildGeomFromPolygonSrid( p_data, (gaiaPolygonPtr)X, (int *)S); } // Polygon (3D) [with BBOX & long SRS] // A valid polygon must have at least one ring: // The functions called build a gaiaPolygonPtr from a linked list of gaiaRingPtrs polygon_text(P) ::= GEOJSON_OPEN_BRACKET ring(R) extra_rings(E) GEOJSON_CLOSE_BRACKET. { ((gaiaRingPtr)R)->Next = (gaiaRingPtr)E; P = (void *) geoJSON_polygon_xy(p_data, (gaiaRingPtr)R); } polygon_textz(P) ::= GEOJSON_OPEN_BRACKET ringz(R) extra_ringsz(E) GEOJSON_CLOSE_BRACKET. { ((gaiaRingPtr)R)->Next = (gaiaRingPtr)E; P = (void *) geoJSON_polygon_xyz(p_data, (gaiaRingPtr)R); } // A valid ring must have at least 4 points // The functions called build a gaiaRingPtr from a linked list of gaiaPointPtrs ring(R) ::= GEOJSON_OPEN_BRACKET point_coordxy(A) GEOJSON_COMMA point_coordxy(B) GEOJSON_COMMA point_coordxy(C) GEOJSON_COMMA point_coordxy(D) extra_pointsxy(E) GEOJSON_CLOSE_BRACKET. { ((gaiaPointPtr)A)->Next = (gaiaPointPtr)B; ((gaiaPointPtr)B)->Next = (gaiaPointPtr)C; ((gaiaPointPtr)C)->Next = (gaiaPointPtr)D; ((gaiaPointPtr)D)->Next = (gaiaPointPtr)E; R = (void *) geoJSON_ring_xy(p_data, (gaiaPointPtr)A); } // To match more than one 2D ring: extra_rings(R) ::= . { R = NULL; } extra_rings(R) ::= GEOJSON_COMMA ring(S) extra_rings(T). { ((gaiaRingPtr)S)->Next = (gaiaRingPtr)T; R = S; } ringz(R) ::= GEOJSON_OPEN_BRACKET point_coordxyz(A) GEOJSON_COMMA point_coordxyz(B) GEOJSON_COMMA point_coordxyz(C) GEOJSON_COMMA point_coordxyz(D) extra_pointsxyz(E) GEOJSON_CLOSE_BRACKET. { ((gaiaPointPtr)A)->Next = (gaiaPointPtr)B; ((gaiaPointPtr)B)->Next = (gaiaPointPtr)C; ((gaiaPointPtr)C)->Next = (gaiaPointPtr)D; ((gaiaPointPtr)D)->Next = (gaiaPointPtr)E; R = (void *) geoJSON_ring_xyz(p_data, (gaiaPointPtr)A); } // To match more than one 3D ring: extra_ringsz(R) ::= . { R = NULL; } extra_ringsz(R) ::= GEOJSON_COMMA ringz(S) extra_ringsz(T). { ((gaiaRingPtr)S)->Next = (gaiaRingPtr)T; R = S; } // Syntax for a "multipoint" object: // X in the following lines is a geometry collection containing a multipoint multipoint(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text(X) GEOJSON_CLOSE_BRACE. { M = X; } // MultiPoint (2D) [simple] multipoint(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text(X) GEOJSON_CLOSE_BRACE. { M = X; } // MultiPoint (2D) [with BBOX] multipoint(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs(S) GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text(X) GEOJSON_CLOSE_BRACE. { M = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // MultiPoint (2D) [with short SRS] multipoint(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs(S) GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text(X) GEOJSON_CLOSE_BRACE. { M = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // MultiPoint (2D) [with long SRS] multipoint(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs(S) GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text(X) GEOJSON_CLOSE_BRACE. { M = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // MultiPoint (2D) [with BBOX & short SRS] multipoint(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs(S) GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text(X) GEOJSON_CLOSE_BRACE. { M = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // MultiPoint (2D) [with BBOX & long SRS] multipointz(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz(X) GEOJSON_CLOSE_BRACE. { M = X; } // MultiPoint (3D) [simple] multipointz(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz(X) GEOJSON_CLOSE_BRACE. { M = X; } // MultiPoint (3D) [with BBOX] multipointz(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs(S) GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz(X) GEOJSON_CLOSE_BRACE. { M = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // MultiPoint (3D) [with short SRS] multipointz(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs(S) GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz(X) GEOJSON_CLOSE_BRACE. { M = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // MultiPoint (3D) [with long SRS] multipointz(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs(S) GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz(X) GEOJSON_CLOSE_BRACE. { M = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // MultiPoint (3D) [with BBOX & short SRS] multipointz(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs(S) GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz(X) GEOJSON_CLOSE_BRACE. { M = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // MultiPoint (3D) [with BBOX & long SRS] // Multipoints can contain any number of points (but at least one): // The functions called build a geometry collection containing a multipoint multipoint_text(M) ::= GEOJSON_OPEN_BRACKET point_coordxy(P) extra_pointsxy(Q) GEOJSON_CLOSE_BRACKET. { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)Q; M = (void *) geoJSON_multipoint_xy(p_data, (gaiaPointPtr)P); } multipoint_textz(M) ::= GEOJSON_OPEN_BRACKET point_coordxyz(P) extra_pointsxyz(Q) GEOJSON_CLOSE_BRACKET. { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)Q; M = (void *) geoJSON_multipoint_xyz(p_data, (gaiaPointPtr)P); } // Syntax for a "multilinestring" object: // X in the following lines refers to a geometry collection containing a multilinestring multilinestring(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text(X) GEOJSON_CLOSE_BRACE. { M = X; } // MultiLineString (2D) [simple] multilinestring(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text(X) GEOJSON_CLOSE_BRACE. { M = X; } // MultiLineString (2D) [with BBOX] multilinestring(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs(S) GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text(X) GEOJSON_CLOSE_BRACE. { M = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // MultiLineString (2D) [with short SRS] multilinestring(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs(S) GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text(X) GEOJSON_CLOSE_BRACE. { M = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // MultiLineString (2D) [with long SRS] multilinestring(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs(S) GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text(X) GEOJSON_CLOSE_BRACE. { M = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // MultiLineString (2D) [with BBOX & short SRS] multilinestring(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs(S) GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text(X) GEOJSON_CLOSE_BRACE. { M = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // MultiLineString (2D) [with BBOX & long SRS] multilinestringz(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz(X) GEOJSON_CLOSE_BRACE. { M = X; } // MultiLineString (3D) [simple] multilinestringz(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz(X) GEOJSON_CLOSE_BRACE. { M = X; } // MultiLineString (3D) [with BBOX] multilinestringz(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs(S) GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz(X) GEOJSON_CLOSE_BRACE. { M = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // MultiLineString (3D) [with short SRS] multilinestringz(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs(S) GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz(X) GEOJSON_CLOSE_BRACE. { M = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // MultiLineString (3D) [with long SRS] multilinestringz(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs(S) GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz(X) GEOJSON_CLOSE_BRACE. { M = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // MultiLineString (3D) [with BBOX & short SRS] multilinestringz(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs(S) GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz(X) GEOJSON_CLOSE_BRACE. { M = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // MultiLineString (3D) [with BBOX & long SRS] // Multilinestrings can contain any number of linestrings (but at least one): // The functions called build a geometry collection containing a multilinestring multilinestring_text(M) ::= GEOJSON_OPEN_BRACKET linestring_text(L) multilinestring_text2(X) GEOJSON_CLOSE_BRACKET. { ((gaiaLinestringPtr)L)->Next = (gaiaLinestringPtr)X; M = (void *) geoJSON_multilinestring_xy( p_data, (gaiaLinestringPtr)L); } // Extra linestrings multilinestring_text2(X) ::= . { X = NULL; } multilinestring_text2(X) ::= GEOJSON_COMMA linestring_text(L) multilinestring_text2(Y). { ((gaiaLinestringPtr)L)->Next = (gaiaLinestringPtr)Y; X = L; } multilinestring_textz(M) ::= GEOJSON_OPEN_BRACKET linestring_textz(L) multilinestring_textz2(X) GEOJSON_CLOSE_BRACKET. { ((gaiaLinestringPtr)L)->Next = (gaiaLinestringPtr)X; M = (void *) geoJSON_multilinestring_xyz(p_data, (gaiaLinestringPtr)L); } multilinestring_textz2(X) ::= . { X = NULL; } multilinestring_textz2(X) ::= GEOJSON_COMMA linestring_textz(L) multilinestring_textz2(Y). { ((gaiaLinestringPtr)L)->Next = (gaiaLinestringPtr)Y; X = L; } // Syntax for a "multipolygon" object // X in the following lines refers to a geometry collection containing a multipolygon multipolygon(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text(X) GEOJSON_CLOSE_BRACE. { M = X; } // MultiPolygon (2D) [simple] multipolygon(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text(X) GEOJSON_CLOSE_BRACE. { M = X; } // MultiPolygon (2D) [with BBOX] multipolygon(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs(S) GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text(X) GEOJSON_CLOSE_BRACE. { M = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // MultiPolygon (2D) [with short SRS] multipolygon(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs(S) GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text(X) GEOJSON_CLOSE_BRACE. { M = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // MultiPolygon (2D) [with long SRS] multipolygon(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs(S) GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text(X) GEOJSON_CLOSE_BRACE. { M = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // MultiPolygon (2D) [with BBOX & short SRS] multipolygon(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs(S) GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text(X) GEOJSON_CLOSE_BRACE. { M = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // MultiPolygon (2D) [with BBOX & long SRS] multipolygonz(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz(X) GEOJSON_CLOSE_BRACE. { M = X; } // MultiPolygon (3D) [simple] multipolygonz(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz(X) GEOJSON_CLOSE_BRACE. { M = X; } // MultiPolygon (3D) [with BBOX] multipolygonz(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs(S) GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz(X) GEOJSON_CLOSE_BRACE. { M = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // MultiPolygon (3D) [with short SRS] multipolygonz(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs(S) GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz(X) GEOJSON_CLOSE_BRACE. { M = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // MultiPolygon (3D) [with long SRS] multipolygonz(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs(S) GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz(X) GEOJSON_CLOSE_BRACE. { M = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // MultiPolygon (3D) [with BBOX & short SRS] multipolygonz(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs(S) GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz(X) GEOJSON_CLOSE_BRACE. { M = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // MultiPolygon (3D) [with BBOX & long SRS] // Multipolygons can contain any number of polygons (but at least one): // The functions called build a geometry collection containing a multipolygon multipolygon_text(M) ::= GEOJSON_OPEN_BRACKET polygon_text(P) multipolygon_text2(Q) GEOJSON_CLOSE_BRACKET. { ((gaiaPolygonPtr)P)->Next = (gaiaPolygonPtr)Q; M = (void *) geoJSON_multipolygon_xy(p_data, (gaiaPolygonPtr)P); } // Extra polygons multipolygon_text2(Q) ::= . { Q = NULL; } multipolygon_text2(A) ::= GEOJSON_COMMA polygon_text(P) multipolygon_text2(B). { ((gaiaPolygonPtr)P)->Next = (gaiaPolygonPtr)B; A = P; } multipolygon_textz(M) ::= GEOJSON_OPEN_BRACKET polygon_textz(P) multipolygon_textz2(Q) GEOJSON_CLOSE_BRACKET. { ((gaiaPolygonPtr)P)->Next = (gaiaPolygonPtr)Q; M = (void *) geoJSON_multipolygon_xyz(p_data, (gaiaPolygonPtr)P); } multipolygon_textz2(Q) ::= . { Q = NULL; } multipolygon_textz2(A) ::= GEOJSON_COMMA polygon_textz(P) multipolygon_textz2(B). { ((gaiaPolygonPtr)P)->Next = (gaiaPolygonPtr)B; A = P; } // Syntax for a "geometrycollection" object: // X in the following lines refers to a geometry collection generated based on user input geocoll(G) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text(X) GEOJSON_CLOSE_BRACE. { G = X; } // GeomColl (2D) [simple] geocoll(G) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text(X) GEOJSON_CLOSE_BRACE. { G = X; } // GeomColl (2D) [with BBOX] geocoll(G) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs(S) GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text(X) GEOJSON_CLOSE_BRACE. { G = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // GeomColl (2D) [with short SRS] geocoll(G) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs(S) GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text(X) GEOJSON_CLOSE_BRACE. { G = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // GeomColl (2D) [with long SRS] geocoll(G) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs(S) GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text(X) GEOJSON_CLOSE_BRACE. { G = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // GeomColl (2D) [with BBOX & short SRS] geocoll(G) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs(S) GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text(X) GEOJSON_CLOSE_BRACE. { G = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // GeomColl (2D) [with BBOX & long SRS] geocollz(G) ::= GEOJSON_GEOMETRYCOLLECTION geocoll_textz(X). { G = X; } // GeomColl (3D) [simple] geocollz(G) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz(X) GEOJSON_CLOSE_BRACE. { G = X; } // GeomColl (3D) [with BBOX] geocollz(G) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs(S) GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz(X) GEOJSON_CLOSE_BRACE. { G = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // GeomColl (3D) [with short SRS] geocollz(G) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs(S) GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz(X) GEOJSON_CLOSE_BRACE. { G = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // GeomColl (3D) [with long SRS] geocollz(G) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs(S) GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz(X) GEOJSON_CLOSE_BRACE. { G = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // GeomColl (3D) [with BBOX & short SRS] geocollz(G) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs(S) GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz(X) GEOJSON_CLOSE_BRACE. { G = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // GeomColl (3D) [with BBOX & long SRS] // Geometry collections can contain any number of points, linestrings, or polygons (but at least one): geocoll_text(G) ::= GEOJSON_OPEN_BRACKET coll_point(P) geocoll_text2(X) GEOJSON_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) geoJSON_geomColl_xy(p_data, (gaiaGeomCollPtr)P); } geocoll_text(G) ::= GEOJSON_OPEN_BRACKET coll_linestring(L) geocoll_text2(X) GEOJSON_CLOSE_BRACKET. { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)X; G = (void *) geoJSON_geomColl_xy(p_data, (gaiaGeomCollPtr)L); } geocoll_text(G) ::= GEOJSON_OPEN_BRACKET coll_polygon(P) geocoll_text2(X) GEOJSON_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) geoJSON_geomColl_xy(p_data, (gaiaGeomCollPtr)P); } // Extra points, linestrings, or polygons geocoll_text2(X) ::= . { X = NULL; } geocoll_text2(X) ::= GEOJSON_COMMA coll_point(P) geocoll_text2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_text2(X) ::= GEOJSON_COMMA coll_linestring(L) geocoll_text2(Y). { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)Y; X = L; } geocoll_text2(X) ::= GEOJSON_COMMA coll_polygon(P) geocoll_text2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_textz(G) ::= GEOJSON_OPEN_BRACKET coll_pointz(P) geocoll_textz2(X) GEOJSON_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) geoJSON_geomColl_xyz(p_data, (gaiaGeomCollPtr)P); } geocoll_textz(G) ::= GEOJSON_OPEN_BRACKET coll_linestringz(L) geocoll_textz2(X) GEOJSON_CLOSE_BRACKET. { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)X; G = (void *) geoJSON_geomColl_xyz(p_data, (gaiaGeomCollPtr)L); } geocoll_textz(G) ::= GEOJSON_OPEN_BRACKET coll_polygonz(P) geocoll_textz2(X) GEOJSON_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) geoJSON_geomColl_xyz(p_data, (gaiaGeomCollPtr)P); } geocoll_textz2(X) ::= . { X = NULL; } geocoll_textz2(X) ::= GEOJSON_COMMA coll_pointz(P) geocoll_textz2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_textz2(X) ::= GEOJSON_COMMA coll_linestringz(L) geocoll_textz2(Y). { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)Y; X = L; } geocoll_textz2(X) ::= GEOJSON_COMMA coll_polygonz(P) geocoll_textz2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } coll_point(P) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy(Q) GEOJSON_CLOSE_BRACE. { P = geoJSON_buildGeomFromPoint(p_data, (gaiaPointPtr)Q); } coll_pointz(P) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz(Q) GEOJSON_CLOSE_BRACE. { P = geoJSON_buildGeomFromPoint(p_data, (gaiaPointPtr)Q); } coll_linestring(L) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text(X) GEOJSON_CLOSE_BRACE. { L = geoJSON_buildGeomFromLinestring(p_data, (gaiaLinestringPtr)X); } coll_linestringz(L) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz(X) GEOJSON_CLOSE_BRACE. { L = geoJSON_buildGeomFromLinestring(p_data, (gaiaLinestringPtr)X); } coll_polygon(P) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text(X) GEOJSON_CLOSE_BRACE. { P = geoJSON_buildGeomFromPolygon(p_data, (gaiaPolygonPtr)X); } coll_polygonz(P) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz(X) GEOJSON_CLOSE_BRACE. { P = geoJSON_buildGeomFromPolygon(p_data, (gaiaPolygonPtr)X); } libspatialite-4.1.1/src/gaiageo/lemon/Makefile.in0000664000175000017500000004262312163502133016633 00000000000000# Makefile.in generated by automake 1.12.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/gaiageo/lemon DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = lemon_src EXTRA_DIST = Ewkt.y geoJSON.y Gml.y Kml.y vanuatuWkt.y ReadMe.txt all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/gaiageo/lemon/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/gaiageo/lemon/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(RECURSIVE_TARGETS) $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done cscopelist-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) cscopelist); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive $(HEADERS) $(SOURCES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) \ cscopelist-recursive ctags-recursive install-am install-strip \ tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ cscopelist cscopelist-recursive ctags ctags-recursive \ distclean distclean-generic distclean-libtool distclean-tags \ distdir dvi dvi-am html html-am info info-am install \ install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-recursive uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libspatialite-4.1.1/src/gaiageo/lemon/Ewkt.y0000664000175000017500000010050512163502133015664 00000000000000/* Ewkt.y -- EWKT parser - LEMON config version 2.4, 2011 May 14 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ // Tokens are void pointers (so we can cast them to whatever we want) %token_type {void *} // Output to stderr when stack overflows %stack_overflow { spatialite_e( "Giving up. Parser stack overflow\n"); } // Increase this number if necessary %stack_size 1000000 // Header files to be included in Ewkt.c %include { } // Set the return value of gaiaParseEWKT in the following pointer: %extra_argument { struct ewkt_data *p_data } // Invalid syntax (ie. no rules matched) %syntax_error { /* ** when the LEMON parser encounters an error ** then this global variable is set */ p_data->ewkt_parse_error = 1; p_data->result = NULL; } /* This is to terminate with a new line */ main ::= in. in ::= . in ::= in state EWKT_NEWLINE. state ::= program. /* * program is the start node. All strings matched by this CFG must be one of * geo_text (text describing a geometry), * geo_textm (text describing a 2D geometry with a measure) */ program ::= geo_text. program ::= geo_textm. // geometries (2D, 3D and 3D with a measure): geo_text ::= point(P). { p_data->result = P; } // P is a geometry collection containing a point geo_text ::= pointz(P). { p_data->result = P; } // P is a geometry collection containing a point geo_text ::= pointzm(P). { p_data->result = P; } // P is a geometry collection containing a point geo_text ::= linestring(L). { p_data->result = L; } // L is a geometry collection containing a linestring geo_text ::= linestringz(L). { p_data->result = L; } // L is a geometry collection containing a linestring geo_text ::= linestringzm(L). { p_data->result = L; } // L is a geometry collection containing a linestring geo_text ::= polygon(P). { p_data->result = P; } // P is a geometry collection containing a polygon geo_text ::= polygonz(P). { p_data->result = P; } // P is a geometry collection containing a polygon geo_text ::= polygonzm(P). { p_data->result = P; } // P is a geometry collection containing a polygon geo_text ::= multipoint(M). { p_data->result = M; } // M is a geometry collection containing a multipoint geo_text ::= multipointz(M). { p_data->result = M; } // M is a geometry collection containing a multipoint geo_text ::= multipointzm(M). { p_data->result = M; } // M is a geometry collection containing a multipoint geo_text ::= multilinestring(M). { p_data->result = M; } // M is a geometry collection containing a multilinestring geo_text ::= multilinestringz(M). { p_data->result = M; } // M is a geometry collection containing a multilinestring geo_text ::= multilinestringzm(M). { p_data->result = M; } // M is a geometry collection containing a multilinestring geo_text ::= multipolygon(M). { p_data->result = M; } // M is a geometry collection containing a multipolygon geo_text ::= multipolygonz(M). { p_data->result = M; } // M is a geometry collection containing a multipolygon geo_text ::= multipolygonzm(M). { p_data->result = M; } // M is a geometry collection containing a multipolygon geo_text ::= geocoll(H). { p_data->result = H; } // H is a geometry collection created from user input geo_text ::= geocollz(H). { p_data->result = H; } // H is a geometry collection created from user input geo_text ::= geocollzm(H). { p_data->result = H; } // H is a geometry collection created from user input // 2D geometries (with a measure): geo_textm ::= pointm(P). { p_data->result = P; } geo_textm ::= linestringm(L). { p_data->result = L; } geo_textm ::= polygonm(P). { p_data->result = P; } geo_textm ::= multipointm(M). { p_data->result = M; } geo_textm ::= multilinestringm(M). { p_data->result = M; } geo_textm ::= multipolygonm(M). { p_data->result = M; } geo_textm ::= geocollm(H). { p_data->result = H; } // Syntax for a "point" object: // The functions called build a geometry collection from a gaiaPointPtr point(P) ::= EWKT_POINT EWKT_OPEN_BRACKET point_coordxy(Q) EWKT_CLOSE_BRACKET. { P = ewkt_buildGeomFromPoint( p_data, (gaiaPointPtr)Q); } pointz(P) ::= EWKT_POINT EWKT_OPEN_BRACKET point_coordxyz(Q) EWKT_CLOSE_BRACKET. { P = ewkt_buildGeomFromPoint( p_data, (gaiaPointPtr)Q); } pointm(P) ::= EWKT_POINT_M EWKT_OPEN_BRACKET point_coordxym(Q) EWKT_CLOSE_BRACKET. { P = ewkt_buildGeomFromPoint( p_data, (gaiaPointPtr)Q); } pointzm(P) ::= EWKT_POINT EWKT_OPEN_BRACKET point_coordxyzm(Q) EWKT_CLOSE_BRACKET. { P = ewkt_buildGeomFromPoint( p_data, (gaiaPointPtr)Q); } // Point coordinates in different dimensions: MultiPoint((pt),(pt)) // Create the point by calling the proper function in SpatiaLite : point_brkt_coordxy(P) ::= EWKT_OPEN_BRACKET coord(X) coord(Y) EWKT_CLOSE_BRACKET. { P = (void *) ewkt_point_xy( p_data, (double *)X, (double *)Y); } point_brkt_coordxym(P) ::= EWKT_OPEN_BRACKET coord(X) coord(Y) coord(M) EWKT_CLOSE_BRACKET. { P = (void *) ewkt_point_xym( p_data, (double *)X, (double *)Y, (double *)M); } point_brkt_coordxyz(P) ::= EWKT_OPEN_BRACKET coord(X) coord(Y) coord(Z) EWKT_CLOSE_BRACKET. { P = (void *) ewkt_point_xyz( p_data, (double *)X, (double *)Y, (double *)Z); } point_brkt_coordxyzm(P) ::= EWKT_OPEN_BRACKET coord(X) coord(Y) coord(Z) coord(M) EWKT_CLOSE_BRACKET. { P = (void *) ewkt_point_xyzm( p_data, (double *)X, (double *)Y, (double *)Z, (double *)M); } // Point coordinates in different dimensions. // Create the point by calling the proper function in SpatiaLite : point_coordxy(P) ::= coord(X) coord(Y). { P = (void *) ewkt_point_xy( p_data, (double *)X, (double *)Y); } point_coordxym(P) ::= coord(X) coord(Y) coord(M). { P = (void *) ewkt_point_xym( p_data, (double *)X, (double *)Y, (double *)M); } point_coordxyz(P) ::= coord(X) coord(Y) coord(Z). { P = (void *) ewkt_point_xyz( p_data, (double *)X, (double *)Y, (double *)Z); } point_coordxyzm(P) ::= coord(X) coord(Y) coord(Z) coord(M). { P = (void *) ewkt_point_xyzm( p_data, (double *)X, (double *)Y, (double *)Z, (double *)M); } // All coordinates are assumed to be doubles (guaranteed by the flex tokenizer). coord(A) ::= EWKT_NUM(B). { A = B; } // Rules to match an infinite number of points: MultiPoint((pt), (pt)) // Also links the generated gaiaPointPtrs together extra_brkt_pointsxy(A) ::= . { A = NULL; } extra_brkt_pointsxy(A) ::= EWKT_COMMA point_brkt_coordxy(P) extra_brkt_pointsxy(B). { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)B; A = P; } extra_brkt_pointsxym(A) ::= . { A = NULL; } extra_brkt_pointsxym(A) ::= EWKT_COMMA point_brkt_coordxym(P) extra_brkt_pointsxym(B). { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)B; A = P; } extra_brkt_pointsxyz(A) ::= . { A = NULL; } extra_brkt_pointsxyz(A) ::= EWKT_COMMA point_brkt_coordxyz(P) extra_brkt_pointsxyz(B). { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)B; A = P; } extra_brkt_pointsxyzm(A) ::= . { A = NULL; } extra_brkt_pointsxyzm(A) ::= EWKT_COMMA point_brkt_coordxyzm(P) extra_brkt_pointsxyzm(B). { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)B; A = P; } // Rules to match an infinite number of points: // Also links the generated gaiaPointPtrs together extra_pointsxy(A) ::= . { A = NULL; } extra_pointsxy(A) ::= EWKT_COMMA point_coordxy(P) extra_pointsxy(B). { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)B; A = P; } extra_pointsxym(A) ::= . { A = NULL; } extra_pointsxym(A) ::= EWKT_COMMA point_coordxym(P) extra_pointsxym(B). { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)B; A = P; } extra_pointsxyz(A) ::= . { A = NULL; } extra_pointsxyz(A) ::= EWKT_COMMA point_coordxyz(P) extra_pointsxyz(B). { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)B; A = P; } extra_pointsxyzm(A) ::= . { A = NULL; } extra_pointsxyzm(A) ::= EWKT_COMMA point_coordxyzm(P) extra_pointsxyzm(B). { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)B; A = P; } // Syntax for a "linestring" object: // The functions called build a geometry collection from a gaiaLinestringPtr linestring(L) ::= EWKT_LINESTRING linestring_text(X). { L = ewkt_buildGeomFromLinestring( p_data, (gaiaLinestringPtr)X); } linestringm(L) ::= EWKT_LINESTRING_M linestring_textm(X). { L = ewkt_buildGeomFromLinestring( p_data, (gaiaLinestringPtr)X); } linestringz(L) ::= EWKT_LINESTRING linestring_textz(X). { L = ewkt_buildGeomFromLinestring( p_data, (gaiaLinestringPtr)X); } linestringzm(L) ::= EWKT_LINESTRING linestring_textzm(X). { L = ewkt_buildGeomFromLinestring( p_data, (gaiaLinestringPtr)X); } // A valid linestring must have at least two vertices: // The functions called build a gaiaLinestring from a linked list of points linestring_text(L) ::= EWKT_OPEN_BRACKET point_coordxy(P) EWKT_COMMA point_coordxy(Q) extra_pointsxy(R) EWKT_CLOSE_BRACKET. { ((gaiaPointPtr)Q)->Next = (gaiaPointPtr)R; ((gaiaPointPtr)P)->Next = (gaiaPointPtr)Q; L = (void *) ewkt_linestring_xy( p_data, (gaiaPointPtr)P); } linestring_textm(L) ::= EWKT_OPEN_BRACKET point_coordxym(P) EWKT_COMMA point_coordxym(Q) extra_pointsxym(R) EWKT_CLOSE_BRACKET. { ((gaiaPointPtr)Q)->Next = (gaiaPointPtr)R; ((gaiaPointPtr)P)->Next = (gaiaPointPtr)Q; L = (void *) ewkt_linestring_xym( p_data, (gaiaPointPtr)P); } linestring_textz(L) ::= EWKT_OPEN_BRACKET point_coordxyz(P) EWKT_COMMA point_coordxyz(Q) extra_pointsxyz(R) EWKT_CLOSE_BRACKET. { ((gaiaPointPtr)Q)->Next = (gaiaPointPtr)R; ((gaiaPointPtr)P)->Next = (gaiaPointPtr)Q; L = (void *) ewkt_linestring_xyz( p_data, (gaiaPointPtr)P); } linestring_textzm(L) ::= EWKT_OPEN_BRACKET point_coordxyzm(P) EWKT_COMMA point_coordxyzm(Q) extra_pointsxyzm(R) EWKT_CLOSE_BRACKET. { ((gaiaPointPtr)Q)->Next = (gaiaPointPtr)R; ((gaiaPointPtr)P)->Next = (gaiaPointPtr)Q; L = (void *) ewkt_linestring_xyzm( p_data, (gaiaPointPtr)P); } // Syntax for a "polygon" object: // The functions called build a geometry collection from a gaiaPolygonPtr polygon(P) ::= EWKT_POLYGON polygon_text(X). { P = ewkt_buildGeomFromPolygon( p_data, (gaiaPolygonPtr)X); } polygonm(P) ::= EWKT_POLYGON_M polygon_textm(X). { P = ewkt_buildGeomFromPolygon( p_data, (gaiaPolygonPtr)X); } polygonz(P) ::= EWKT_POLYGON polygon_textz(X). { P = ewkt_buildGeomFromPolygon( p_data, (gaiaPolygonPtr)X); } polygonzm(P) ::= EWKT_POLYGON polygon_textzm(X). { P = ewkt_buildGeomFromPolygon( p_data, (gaiaPolygonPtr)X); } // A valid polygon must have at least one ring: // The functions called build a gaiaPolygonPtr from a linked list of gaiaRingPtrs polygon_text(P) ::= EWKT_OPEN_BRACKET ring(R) extra_rings(E) EWKT_CLOSE_BRACKET. { ((gaiaRingPtr)R)->Next = (gaiaRingPtr)E; P = (void *) ewkt_polygon_xy( p_data, (gaiaRingPtr)R); } polygon_textm(P) ::= EWKT_OPEN_BRACKET ringm(R) extra_ringsm(E) EWKT_CLOSE_BRACKET. { ((gaiaRingPtr)R)->Next = (gaiaRingPtr)E; P = (void *) ewkt_polygon_xym( p_data, (gaiaRingPtr)R); } polygon_textz(P) ::= EWKT_OPEN_BRACKET ringz(R) extra_ringsz(E) EWKT_CLOSE_BRACKET. { ((gaiaRingPtr)R)->Next = (gaiaRingPtr)E; P = (void *) ewkt_polygon_xyz( p_data, (gaiaRingPtr)R); } polygon_textzm(P) ::= EWKT_OPEN_BRACKET ringzm(R) extra_ringszm(E) EWKT_CLOSE_BRACKET. { ((gaiaRingPtr)R)->Next = (gaiaRingPtr)E; P = (void *) ewkt_polygon_xyzm( p_data, (gaiaRingPtr)R); } // A valid ring must have at least 4 points // The functions called build a gaiaRingPtr from a linked list of gaiaPointPtrs ring(R) ::= EWKT_OPEN_BRACKET point_coordxy(A) EWKT_COMMA point_coordxy(B) EWKT_COMMA point_coordxy(C) EWKT_COMMA point_coordxy(D) extra_pointsxy(E) EWKT_CLOSE_BRACKET. { ((gaiaPointPtr)A)->Next = (gaiaPointPtr)B; ((gaiaPointPtr)B)->Next = (gaiaPointPtr)C; ((gaiaPointPtr)C)->Next = (gaiaPointPtr)D; ((gaiaPointPtr)D)->Next = (gaiaPointPtr)E; R = (void *) ewkt_ring_xy( p_data, (gaiaPointPtr)A); } // To match more than one 2D ring: extra_rings(R) ::= . { R = NULL; } extra_rings(R) ::= EWKT_COMMA ring(S) extra_rings(T). { ((gaiaRingPtr)S)->Next = (gaiaRingPtr)T; R = S; } ringm(R) ::= EWKT_OPEN_BRACKET point_coordxym(A) EWKT_COMMA point_coordxym(B) EWKT_COMMA point_coordxym(C) EWKT_COMMA point_coordxym(D) extra_pointsxym(E) EWKT_CLOSE_BRACKET. { ((gaiaPointPtr)A)->Next = (gaiaPointPtr)B; ((gaiaPointPtr)B)->Next = (gaiaPointPtr)C; ((gaiaPointPtr)C)->Next = (gaiaPointPtr)D; ((gaiaPointPtr)D)->Next = (gaiaPointPtr)E; R = (void *) ewkt_ring_xym( p_data, (gaiaPointPtr)A); } // To match more than one 2D (with a measure) ring: extra_ringsm(R) ::= . { R = NULL; } extra_ringsm(R) ::= EWKT_COMMA ringm(S) extra_ringsm(T). { ((gaiaRingPtr)S)->Next = (gaiaRingPtr)T; R = S; } ringz(R) ::= EWKT_OPEN_BRACKET point_coordxyz(A) EWKT_COMMA point_coordxyz(B) EWKT_COMMA point_coordxyz(C) EWKT_COMMA point_coordxyz(D) extra_pointsxyz(E) EWKT_CLOSE_BRACKET. { ((gaiaPointPtr)A)->Next = (gaiaPointPtr)B; ((gaiaPointPtr)B)->Next = (gaiaPointPtr)C; ((gaiaPointPtr)C)->Next = (gaiaPointPtr)D; ((gaiaPointPtr)D)->Next = (gaiaPointPtr)E; R = (void *) ewkt_ring_xyz( p_data, (gaiaPointPtr)A); } // To match more than one 3D ring: extra_ringsz(R) ::= . { R = NULL; } extra_ringsz(R) ::= EWKT_COMMA ringz(S) extra_ringsz(T). { ((gaiaRingPtr)S)->Next = (gaiaRingPtr)T; R = S; } ringzm(R) ::= EWKT_OPEN_BRACKET point_coordxyzm(A) EWKT_COMMA point_coordxyzm(B) EWKT_COMMA point_coordxyzm(C) EWKT_COMMA point_coordxyzm(D) extra_pointsxyzm(E) EWKT_CLOSE_BRACKET. { ((gaiaPointPtr)A)->Next = (gaiaPointPtr)B; ((gaiaPointPtr)B)->Next = (gaiaPointPtr)C; ((gaiaPointPtr)C)->Next = (gaiaPointPtr)D; ((gaiaPointPtr)D)->Next = (gaiaPointPtr)E; R = (void *) ewkt_ring_xyzm( p_data, (gaiaPointPtr)A); } // To match more than one 3D (with a measure) ring: extra_ringszm(R) ::= . { R = NULL; } extra_ringszm(R) ::= EWKT_COMMA ringzm(S) extra_ringszm(T). { ((gaiaRingPtr)S)->Next = (gaiaRingPtr)T; R = S; } // Syntax for a "multipoint" object: // X in the following lines is a geometry collection containing a multipoint multipoint(M) ::= EWKT_MULTIPOINT multipoint_text(X). { M = X; } multipointm(M) ::= EWKT_MULTIPOINT_M multipoint_textm(X). { M = X; } multipointz(M) ::= EWKT_MULTIPOINT multipoint_textz(X). { M = X; } multipointzm(M) ::= EWKT_MULTIPOINT multipoint_textzm(X). { M = X; } // Multipoints can contain any number of points (but at least one): // The functions called build a geometry collection containing a multipoint multipoint_text(M) ::= EWKT_OPEN_BRACKET point_coordxy(P) extra_pointsxy(Q) EWKT_CLOSE_BRACKET. { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)Q; M = (void *) ewkt_multipoint_xy( p_data, (gaiaPointPtr)P); } multipoint_textm(M) ::= EWKT_OPEN_BRACKET point_coordxym(P) extra_pointsxym(Q) EWKT_CLOSE_BRACKET. { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)Q; M = (void *) ewkt_multipoint_xym( p_data, (gaiaPointPtr)P); } multipoint_textz(M) ::= EWKT_OPEN_BRACKET point_coordxyz(P) extra_pointsxyz(Q) EWKT_CLOSE_BRACKET. { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)Q; M = (void *) ewkt_multipoint_xyz( p_data, (gaiaPointPtr)P); } multipoint_textzm(M) ::= EWKT_OPEN_BRACKET point_coordxyzm(P) extra_pointsxyzm(Q) EWKT_CLOSE_BRACKET. { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)Q; M = (void *) ewkt_multipoint_xyzm( p_data, (gaiaPointPtr)P); } multipoint_text(M) ::= EWKT_OPEN_BRACKET point_brkt_coordxy(P) extra_brkt_pointsxy(Q) EWKT_CLOSE_BRACKET. { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)Q; M = (void *) ewkt_multipoint_xy( p_data, (gaiaPointPtr)P); } multipoint_textm(M) ::= EWKT_OPEN_BRACKET point_brkt_coordxym(P) extra_brkt_pointsxym(Q) EWKT_CLOSE_BRACKET. { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)Q; M = (void *) ewkt_multipoint_xym( p_data, (gaiaPointPtr)P); } multipoint_textz(M) ::= EWKT_OPEN_BRACKET point_brkt_coordxyz(P) extra_brkt_pointsxyz(Q) EWKT_CLOSE_BRACKET. { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)Q; M = (void *) ewkt_multipoint_xyz( p_data, (gaiaPointPtr)P); } multipoint_textzm(M) ::= EWKT_OPEN_BRACKET point_brkt_coordxyzm(P) extra_brkt_pointsxyzm(Q) EWKT_CLOSE_BRACKET. { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)Q; M = (void *) ewkt_multipoint_xyzm( p_data, (gaiaPointPtr)P); } // Syntax for a "multilinestring" object: // X in the following lines refers to a geometry collection containing a multilinestring multilinestring(M) ::= EWKT_MULTILINESTRING multilinestring_text(X). { M = X; } multilinestringm(M) ::= EWKT_MULTILINESTRING_M multilinestring_textm(X). { M = X; } multilinestringz(M) ::= EWKT_MULTILINESTRING multilinestring_textz(X). { M = X; } multilinestringzm(M) ::= EWKT_MULTILINESTRING multilinestring_textzm(X). { M = X; } // Multilinestrings can contain any number of linestrings (but at least one): // The functions called build a geometry collection containing a multilinestring multilinestring_text(M) ::= EWKT_OPEN_BRACKET linestring_text(L) multilinestring_text2(X) EWKT_CLOSE_BRACKET. { ((gaiaLinestringPtr)L)->Next = (gaiaLinestringPtr)X; M = (void *) ewkt_multilinestring_xy( p_data, (gaiaLinestringPtr)L); } // Extra linestrings multilinestring_text2(X) ::= . { X = NULL; } multilinestring_text2(X) ::= EWKT_COMMA linestring_text(L) multilinestring_text2(Y). { ((gaiaLinestringPtr)L)->Next = (gaiaLinestringPtr)Y; X = L; } multilinestring_textm(M) ::= EWKT_OPEN_BRACKET linestring_textm(L) multilinestring_textm2(X) EWKT_CLOSE_BRACKET. { ((gaiaLinestringPtr)L)->Next = (gaiaLinestringPtr)X; M = (void *) ewkt_multilinestring_xym( p_data, (gaiaLinestringPtr)L); } multilinestring_textm2(X) ::= . { X = NULL; } multilinestring_textm2(X) ::= EWKT_COMMA linestring_textm(L) multilinestring_textm2(Y). { ((gaiaLinestringPtr)L)->Next = (gaiaLinestringPtr)Y; X = L; } multilinestring_textz(M) ::= EWKT_OPEN_BRACKET linestring_textz(L) multilinestring_textz2(X) EWKT_CLOSE_BRACKET. { ((gaiaLinestringPtr)L)->Next = (gaiaLinestringPtr)X; M = (void *) ewkt_multilinestring_xyz( p_data, (gaiaLinestringPtr)L); } multilinestring_textz2(X) ::= . { X = NULL; } multilinestring_textz2(X) ::= EWKT_COMMA linestring_textz(L) multilinestring_textz2(Y). { ((gaiaLinestringPtr)L)->Next = (gaiaLinestringPtr)Y; X = L; } multilinestring_textzm(M) ::= EWKT_OPEN_BRACKET linestring_textzm(L) multilinestring_textzm2(X) EWKT_CLOSE_BRACKET. { ((gaiaLinestringPtr)L)->Next = (gaiaLinestringPtr)X; M = (void *) ewkt_multilinestring_xyzm( p_data, (gaiaLinestringPtr)L); } multilinestring_textzm2(X) ::= . { X = NULL; } multilinestring_textzm2(X) ::= EWKT_COMMA linestring_textzm(L) multilinestring_textzm2(Y). { ((gaiaLinestringPtr)L)->Next = (gaiaLinestringPtr)Y; X = L; } // Syntax for a "multipolygon" object // X in the following lines refers to a geometry collection containing a multipolygon multipolygon(M) ::= EWKT_MULTIPOLYGON multipolygon_text(X). { M = X; } multipolygonm(M) ::= EWKT_MULTIPOLYGON_M multipolygon_textm(X). { M = X; } multipolygonz(M) ::= EWKT_MULTIPOLYGON multipolygon_textz(X). { M = X; } multipolygonzm(M) ::= EWKT_MULTIPOLYGON multipolygon_textzm(X). { M = X; } // Multipolygons can contain any number of polygons (but at least one): // The functions called build a geometry collection containing a multipolygon multipolygon_text(M) ::= EWKT_OPEN_BRACKET polygon_text(P) multipolygon_text2(Q) EWKT_CLOSE_BRACKET. { ((gaiaPolygonPtr)P)->Next = (gaiaPolygonPtr)Q; M = (void *) ewkt_multipolygon_xy( p_data, (gaiaPolygonPtr)P); } // Extra polygons multipolygon_text2(Q) ::= . { Q = NULL; } multipolygon_text2(A) ::= EWKT_COMMA polygon_text(P) multipolygon_text2(B). { ((gaiaPolygonPtr)P)->Next = (gaiaPolygonPtr)B; A = P; } multipolygon_textm(M) ::= EWKT_OPEN_BRACKET polygon_textm(P) multipolygon_textm2(Q) EWKT_CLOSE_BRACKET. { ((gaiaPolygonPtr)P)->Next = (gaiaPolygonPtr)Q; M = (void *) ewkt_multipolygon_xym( p_data, (gaiaPolygonPtr)P); } multipolygon_textm2(Q) ::= . { Q = NULL; } multipolygon_textm2(A) ::= EWKT_COMMA polygon_textm(P) multipolygon_textm2(B). { ((gaiaPolygonPtr)P)->Next = (gaiaPolygonPtr)B; A = P; } multipolygon_textz(M) ::= EWKT_OPEN_BRACKET polygon_textz(P) multipolygon_textz2(Q) EWKT_CLOSE_BRACKET. { ((gaiaPolygonPtr)P)->Next = (gaiaPolygonPtr)Q; M = (void *) ewkt_multipolygon_xyz( p_data, (gaiaPolygonPtr)P); } multipolygon_textz2(Q) ::= . { Q = NULL; } multipolygon_textz2(A) ::= EWKT_COMMA polygon_textz(P) multipolygon_textz2(B). { ((gaiaPolygonPtr)P)->Next = (gaiaPolygonPtr)B; A = P; } multipolygon_textzm(M) ::= EWKT_OPEN_BRACKET polygon_textzm(P) multipolygon_textzm2(Q) EWKT_CLOSE_BRACKET. { ((gaiaPolygonPtr)P)->Next = (gaiaPolygonPtr)Q; M = (void *) ewkt_multipolygon_xyzm( p_data, (gaiaPolygonPtr)P); } multipolygon_textzm2(Q) ::= . { Q = NULL; } multipolygon_textzm2(A) ::= EWKT_COMMA polygon_textzm(P) multipolygon_textzm2(B). { ((gaiaPolygonPtr)P)->Next = (gaiaPolygonPtr)B; A = P; } // Syntax for a "geometrycollection" object: // X in the following lines refers to a geometry collection generated based on user input geocoll(G) ::= EWKT_GEOMETRYCOLLECTION geocoll_text(X). { G = X; } geocollm(G) ::= EWKT_GEOMETRYCOLLECTION_M geocoll_textm(X). { G = X; } geocollz(G) ::= EWKT_GEOMETRYCOLLECTION geocoll_textz(X). { G = X; } geocollzm(G) ::= EWKT_GEOMETRYCOLLECTION geocoll_textzm(X). { G = X; } // Geometry collections can contain any number of points, linestrings, or polygons (but at least one): geocoll_text(G) ::= EWKT_OPEN_BRACKET point(P) geocoll_text2(X) EWKT_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) ewkt_geomColl_xy( p_data, (gaiaGeomCollPtr)P); } geocoll_text(G) ::= EWKT_OPEN_BRACKET linestring(L) geocoll_text2(X) EWKT_CLOSE_BRACKET. { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)X; G = (void *) ewkt_geomColl_xy( p_data, (gaiaGeomCollPtr)L); } geocoll_text(G) ::= EWKT_OPEN_BRACKET polygon(P) geocoll_text2(X) EWKT_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) ewkt_geomColl_xy( p_data, (gaiaGeomCollPtr)P); } geocoll_text(G) ::= EWKT_OPEN_BRACKET multipoint(P) geocoll_text2(X) EWKT_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) ewkt_geomColl_xy( p_data, (gaiaGeomCollPtr)P); } geocoll_text(G) ::= EWKT_OPEN_BRACKET multilinestring(L) geocoll_text2(X) EWKT_CLOSE_BRACKET. { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)X; G = (void *) ewkt_geomColl_xy( p_data, (gaiaGeomCollPtr)L); } geocoll_text(G) ::= EWKT_OPEN_BRACKET multipolygon(P) geocoll_text2(X) EWKT_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) ewkt_geomColl_xy( p_data, (gaiaGeomCollPtr)P); } geocoll_text(G) ::= EWKT_OPEN_BRACKET EWKT_GEOMETRYCOLLECTION geocoll_text(C) geocoll_text2(X) EWKT_CLOSE_BRACKET. { ((gaiaGeomCollPtr)C)->Next = (gaiaGeomCollPtr)X; G = (void *) ewkt_geomColl_xy( p_data, (gaiaGeomCollPtr)C); } // Extra points, linestrings, or polygons geocoll_text2(X) ::= . { X = NULL; } geocoll_text2(X) ::= EWKT_COMMA point(P) geocoll_text2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_text2(X) ::= EWKT_COMMA linestring(L) geocoll_text2(Y). { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)Y; X = L; } geocoll_text2(X) ::= EWKT_COMMA polygon(P) geocoll_text2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_text2(X) ::= EWKT_COMMA multipoint(P) geocoll_text2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_text2(X) ::= EWKT_COMMA multilinestring(L) geocoll_text2(Y). { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)Y; X = L; } geocoll_text2(X) ::= EWKT_COMMA multipolygon(P) geocoll_text2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_text2(X) ::= EWKT_COMMA EWKT_GEOMETRYCOLLECTION geocoll_text(C) geocoll_text2(Y). { ((gaiaGeomCollPtr)C)->Next = (gaiaGeomCollPtr)Y; X = C; } geocoll_textm(G) ::= EWKT_OPEN_BRACKET pointm(P) geocoll_textm2(X) EWKT_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) ewkt_geomColl_xym( p_data, (gaiaGeomCollPtr)P); } geocoll_textm(G) ::= EWKT_OPEN_BRACKET linestringm(L) geocoll_textm2(X) EWKT_CLOSE_BRACKET. { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)X; G = (void *) ewkt_geomColl_xym( p_data, (gaiaGeomCollPtr)L); } geocoll_textm(G) ::= EWKT_OPEN_BRACKET polygonm(P) geocoll_textm2(X) EWKT_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) ewkt_geomColl_xym( p_data, (gaiaGeomCollPtr)P); } geocoll_textm(G) ::= EWKT_OPEN_BRACKET multipointm(P) geocoll_textm2(X) EWKT_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) ewkt_geomColl_xym( p_data, (gaiaGeomCollPtr)P); } geocoll_textm(G) ::= EWKT_OPEN_BRACKET multilinestringm(L) geocoll_textm2(X) EWKT_CLOSE_BRACKET. { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)X; G = (void *) ewkt_geomColl_xym( p_data, (gaiaGeomCollPtr)L); } geocoll_textm(G) ::= EWKT_OPEN_BRACKET multipolygonm(P) geocoll_textm2(X) EWKT_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) ewkt_geomColl_xym( p_data, (gaiaGeomCollPtr)P); } geocoll_textm(G) ::= EWKT_OPEN_BRACKET EWKT_GEOMETRYCOLLECTION_M geocoll_textm(C) geocoll_textm2(X) EWKT_CLOSE_BRACKET. { ((gaiaGeomCollPtr)C)->Next = (gaiaGeomCollPtr)X; G = (void *) ewkt_geomColl_xym( p_data, (gaiaGeomCollPtr)C); } geocoll_textm2(X) ::= . { X = NULL; } geocoll_textm2(X) ::= EWKT_COMMA pointm(P) geocoll_textm2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_textm2(X) ::= EWKT_COMMA linestringm(L) geocoll_textm2(Y). { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)Y; X = L; } geocoll_textm2(X) ::= EWKT_COMMA polygonm(P) geocoll_textm2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_textm2(X) ::= EWKT_COMMA multipointm(P) geocoll_textm2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_textm2(X) ::= EWKT_COMMA multilinestringm(L) geocoll_textm2(Y). { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)Y; X = L; } geocoll_textm2(X) ::= EWKT_COMMA multipolygonm(P) geocoll_textm2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_textm2(X) ::= EWKT_COMMA EWKT_GEOMETRYCOLLECTION_M geocoll_textm(C) geocoll_textm2(Y). { ((gaiaGeomCollPtr)C)->Next = (gaiaGeomCollPtr)Y; X = C; } geocoll_textz(G) ::= EWKT_OPEN_BRACKET pointz(P) geocoll_textz2(X) EWKT_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) ewkt_geomColl_xyz( p_data, (gaiaGeomCollPtr)P); } geocoll_textz(G) ::= EWKT_OPEN_BRACKET linestringz(L) geocoll_textz2(X) EWKT_CLOSE_BRACKET. { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)X; G = (void *) ewkt_geomColl_xyz( p_data, (gaiaGeomCollPtr)L); } geocoll_textz(G) ::= EWKT_OPEN_BRACKET polygonz(P) geocoll_textz2(X) EWKT_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) ewkt_geomColl_xyz( p_data, (gaiaGeomCollPtr)P); } geocoll_textz(G) ::= EWKT_OPEN_BRACKET multipointz(P) geocoll_textz2(X) EWKT_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) ewkt_geomColl_xyz( p_data, (gaiaGeomCollPtr)P); } geocoll_textz(G) ::= EWKT_OPEN_BRACKET multilinestringz(L) geocoll_textz2(X) EWKT_CLOSE_BRACKET. { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)X; G = (void *) ewkt_geomColl_xyz( p_data, (gaiaGeomCollPtr)L); } geocoll_textz(G) ::= EWKT_OPEN_BRACKET multipolygonz(P) geocoll_textz2(X) EWKT_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) ewkt_geomColl_xyz( p_data, (gaiaGeomCollPtr)P); } geocoll_textz(G) ::= EWKT_OPEN_BRACKET EWKT_GEOMETRYCOLLECTION geocoll_textz(C) geocoll_textz2(X) EWKT_CLOSE_BRACKET. { ((gaiaGeomCollPtr)C)->Next = (gaiaGeomCollPtr)X; G = (void *) ewkt_geomColl_xyz( p_data, (gaiaGeomCollPtr)C); } geocoll_textz2(X) ::= . { X = NULL; } geocoll_textz2(X) ::= EWKT_COMMA pointz(P) geocoll_textz2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_textz2(X) ::= EWKT_COMMA linestringz(L) geocoll_textz2(Y). { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)Y; X = L; } geocoll_textz2(X) ::= EWKT_COMMA polygonz(P) geocoll_textz2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_textz2(X) ::= EWKT_COMMA multipointz(P) geocoll_textz2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_textz2(X) ::= EWKT_COMMA multilinestringz(L) geocoll_textz2(Y). { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)Y; X = L; } geocoll_textz2(X) ::= EWKT_COMMA multipolygonz(P) geocoll_textz2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_textz2(X) ::= EWKT_COMMA EWKT_GEOMETRYCOLLECTION geocoll_textz(C) geocoll_textz2(Y). { ((gaiaGeomCollPtr)C)->Next = (gaiaGeomCollPtr)Y; X = C; } geocoll_textzm(G) ::= EWKT_OPEN_BRACKET pointzm(P) geocoll_textzm2(X) EWKT_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) ewkt_geomColl_xyzm( p_data, (gaiaGeomCollPtr)P); } geocoll_textzm(G) ::= EWKT_OPEN_BRACKET linestringzm(L) geocoll_textzm2(X) EWKT_CLOSE_BRACKET. { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)X; G = (void *) ewkt_geomColl_xyzm( p_data, (gaiaGeomCollPtr)L); } geocoll_textzm(G) ::= EWKT_OPEN_BRACKET polygonzm(P) geocoll_textzm2(X) EWKT_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) ewkt_geomColl_xyzm( p_data, (gaiaGeomCollPtr)P); } geocoll_textzm(G) ::= EWKT_OPEN_BRACKET multipointzm(P) geocoll_textzm2(X) EWKT_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) ewkt_geomColl_xyzm( p_data, (gaiaGeomCollPtr)P); } geocoll_textzm(G) ::= EWKT_OPEN_BRACKET multilinestringzm(L) geocoll_textzm2(X) EWKT_CLOSE_BRACKET. { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)X; G = (void *) ewkt_geomColl_xyzm( p_data, (gaiaGeomCollPtr)L); } geocoll_textzm(G) ::= EWKT_OPEN_BRACKET multipolygonzm(P) geocoll_textzm2(X) EWKT_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) ewkt_geomColl_xyzm( p_data, (gaiaGeomCollPtr)P); } geocoll_textzm(G) ::= EWKT_OPEN_BRACKET EWKT_GEOMETRYCOLLECTION geocoll_textzm(C) geocoll_textzm2(X) EWKT_CLOSE_BRACKET. { ((gaiaGeomCollPtr)C)->Next = (gaiaGeomCollPtr)X; G = (void *) ewkt_geomColl_xyzm( p_data, (gaiaGeomCollPtr)C); } geocoll_textzm2(X) ::= . { X = NULL; } geocoll_textzm2(X) ::= EWKT_COMMA pointzm(P) geocoll_textzm2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_textzm2(X) ::= EWKT_COMMA linestringzm(L) geocoll_textzm2(Y). { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)Y; X = L; } geocoll_textzm2(X) ::= EWKT_COMMA polygonzm(P) geocoll_textzm2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_textzm2(X) ::= EWKT_COMMA multipointzm(P) geocoll_textzm2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_textzm2(X) ::= EWKT_COMMA multilinestringzm(L) geocoll_textzm2(Y). { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)Y; X = L; } geocoll_textzm2(X) ::= EWKT_COMMA multipolygonzm(P) geocoll_textzm2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_textzm2(X) ::= EWKT_COMMA EWKT_GEOMETRYCOLLECTION geocoll_textzm(C) geocoll_textzm2(Y). { ((gaiaGeomCollPtr)C)->Next = (gaiaGeomCollPtr)Y; X = C; } libspatialite-4.1.1/src/gaiageo/lemon/Kml.y0000664000175000017500000001361512163502133015502 00000000000000/* kml.y -- KML parser - LEMON config version 2.4, 2011 June 14 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ // Tokens are void pointers (so we can cast them to whatever we want) %token_type {void *} // Output to stderr when stack overflows %stack_overflow { spatialite_e( "Giving up. Parser stack overflow\n"); } // Increase this number if necessary %stack_size 1000000 // Header files to be included in kml.c %include { } // Set the return value of gaiaParseKML in the following pointer: %extra_argument { struct kml_data *p_data } // Invalid syntax (ie. no rules matched) %syntax_error { /* ** when the LEMON parser encounters an error ** then this global variable is set */ p_data->kml_parse_error = 1; p_data->result = NULL; } /* This is to terminate with a new line */ main ::= in. in ::= . in ::= in state KML_NEWLINE. state ::= program. /* * program is the start node. */ program ::= kml_tree. // KML node: kml_tree ::= node(N). { p_data->result = N; } // N is a KML node kml_tree ::= node_chain(C). { p_data->result = C; } // C is a chain of KML nodes // syntax for a KML node object: node(N) ::= open_tag(K) KML_END KML_CLOSE. { N = kml_createSelfClosedNode( p_data, (void *)K, NULL); } node(N) ::= open_tag(K) attr(A) KML_END KML_CLOSE. { N = kml_createSelfClosedNode( p_data, (void *)K, (void *)A); } node(N) ::= open_tag(K) attributes(A) KML_END KML_CLOSE. { N = kml_createSelfClosedNode( p_data, (void *)K, (void *)A); } node(N) ::= open_tag(K) KML_CLOSE. { N = kml_createNode( p_data, (void *)K, NULL, NULL); } node(N) ::= open_tag(K) attr(A) KML_CLOSE. { N = kml_createNode( p_data, (void *)K, (void *)A, NULL); } node(N) ::= open_tag(K) attributes(A) KML_CLOSE. { N = kml_createNode( p_data, (void *)K, (void *)A, NULL); } node(N) ::= open_tag(K) KML_CLOSE coord(C). { N = kml_createNode( p_data, (void *)K, NULL, (void *)C); } node(N) ::= open_tag(K) KML_CLOSE coord_chain(C). { N = kml_createNode( p_data, (void *)K, NULL, (void *)C); } node(N) ::= open_tag(K) attr(A) KML_CLOSE coord(C). { N = kml_createNode( p_data, (void *)K, (void *)A, (void *)C); } node(N) ::= open_tag(K) attr(A) KML_CLOSE coord_chain(C). { N = kml_createNode( p_data, (void *)K, (void *)A, (void *)C); } node(N) ::= open_tag(K) attributes(A) KML_CLOSE coord(C). { N = kml_createNode( p_data, (void *)K, (void *)A, (void *)C); } node(N) ::= open_tag(K) attributes(A) KML_CLOSE coord_chain(C). { N = kml_createNode( p_data, (void *)K, (void *)A, (void *)C); } node(N) ::= close_tag(K). { N = kml_closingNode( p_data, (void *)K); } // syntax for a KML tag object: open_tag(T) ::= KML_OPEN keyword(K). { T = K; } close_tag(T) ::= KML_OPEN KML_END keyword(K) KML_CLOSE. { T = K; } // Keyword. keyword(A) ::= KML_KEYWORD(B). { A = B; } // Rules to match an infinite number of KML nodes: // Also links the generated kmlNodePtrs together extra_nodes(A) ::= . { A = NULL; } extra_nodes(A) ::= node(P) extra_nodes(B). { ((kmlNodePtr)P)->Next = (kmlNodePtr)B; A = P; } // a chain can contain any number of KML Nodes (but at least two): node_chain(C) ::= node(A) node(B) extra_nodes(Q). { ((kmlNodePtr)B)->Next = (kmlNodePtr)Q; ((kmlNodePtr)A)->Next = (kmlNodePtr)B; C = A; } // syntax for a KML attribute: attr(A) ::= KML_KEYWORD(K) KML_EQ KML_VALUE(V). { A = kml_attribute( p_data, (void *)K, (void *)V); } // Rules to match an infinite number of KML attributes: // Also links the generated kmlAttrPtrs together extra_attr(A) ::= . { A = NULL; } extra_attr(A) ::= attr(P) extra_attr(B). { ((kmlAttrPtr)P)->Next = (kmlAttrPtr)B; A = P; } // a chain can contain any number of KML Attributes (but at least two): attributes(C) ::= attr(A) attr(B) extra_attr(Q). { ((kmlAttrPtr)B)->Next = (kmlAttrPtr)Q; ((kmlAttrPtr)A)->Next = (kmlAttrPtr)B; C = A; } // syntax for a KML coordinate: coord(C) ::= KML_COORD(V). { C = kml_coord( p_data, (void *)V); } // Rules to match an infinite number of KML coords: // Also links the generated kmlCoordPtrs together extra_coord(A) ::= . { A = NULL; } extra_coord(A) ::= coord(P) extra_coord(B). { ((kmlCoordPtr)P)->Next = (kmlCoordPtr)B; A = P; } // a chain can contain any number of KML Coordinates (but at least two): coord_chain(C) ::= coord(A) coord(B) extra_coord(Q). { ((kmlCoordPtr)B)->Next = (kmlCoordPtr)Q; ((kmlCoordPtr)A)->Next = (kmlCoordPtr)B; C = A; } libspatialite-4.1.1/src/gaiageo/lemon/Gml.y0000664000175000017500000001361412163502133015475 00000000000000/* gml.y -- GML parser - LEMON config version 2.4, 2011 June 3 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ // Tokens are void pointers (so we can cast them to whatever we want) %token_type {void *} // Output to stderr when stack overflows %stack_overflow { spatialite_e( "Giving up. Parser stack overflow\n"); } // Increase this number if necessary %stack_size 1000000 // Header files to be included in gml.c %include { } // Set the return value of gaiaParseGML in the following pointer: %extra_argument { struct gml_data *p_data } // Invalid syntax (ie. no rules matched) %syntax_error { /* ** when the LEMON parser encounters an error ** then this global variable is set */ p_data->gml_parse_error = 1; p_data->result = NULL; } /* This is to terminate with a new line */ main ::= in. in ::= . in ::= in state GML_NEWLINE. state ::= program. /* * program is the start node. */ program ::= gml_tree. // GML node: gml_tree ::= node(N). { p_data->result = N; } // N is a GML node gml_tree ::= node_chain(C). { p_data->result = C; } // C is a chain of GML nodes // syntax for a GML node object: node(N) ::= open_tag(K) GML_END GML_CLOSE. { N = gml_createSelfClosedNode( p_data, (void *)K, NULL); } node(N) ::= open_tag(K) attr(A) GML_END GML_CLOSE. { N = gml_createSelfClosedNode( p_data, (void *)K, (void *)A); } node(N) ::= open_tag(K) attributes(A) GML_END GML_CLOSE. { N = gml_createSelfClosedNode( p_data, (void *)K, (void *)A); } node(N) ::= open_tag(K) GML_CLOSE. { N = gml_createNode( p_data, (void *)K, NULL, NULL); } node(N) ::= open_tag(K) attr(A) GML_CLOSE. { N = gml_createNode( p_data, (void *)K, (void *)A, NULL); } node(N) ::= open_tag(K) attributes(A) GML_CLOSE. { N = gml_createNode( p_data, (void *)K, (void *)A, NULL); } node(N) ::= open_tag(K) GML_CLOSE coord(C). { N = gml_createNode( p_data, (void *)K, NULL, (void *)C); } node(N) ::= open_tag(K) GML_CLOSE coord_chain(C). { N = gml_createNode( p_data, (void *)K, NULL, (void *)C); } node(N) ::= open_tag(K) attr(A) GML_CLOSE coord(C). { N = gml_createNode( p_data, (void *)K, (void *)A, (void *)C); } node(N) ::= open_tag(K) attr(A) GML_CLOSE coord_chain(C). { N = gml_createNode( p_data, (void *)K, (void *)A, (void *)C); } node(N) ::= open_tag(K) attributes(A) GML_CLOSE coord(C). { N = gml_createNode( p_data, (void *)K, (void *)A, (void *)C); } node(N) ::= open_tag(K) attributes(A) GML_CLOSE coord_chain(C). { N = gml_createNode( p_data, (void *)K, (void *)A, (void *)C); } node(N) ::= close_tag(K). { N = gml_closingNode( p_data, (void *)K); } // syntax for a GML tag object: open_tag(T) ::= GML_OPEN keyword(K). { T = K; } close_tag(T) ::= GML_OPEN GML_END keyword(K) GML_CLOSE. { T = K; } // Keyword. keyword(A) ::= GML_KEYWORD(B). { A = B; } // Rules to match an infinite number of GML nodes: // Also links the generated gmlNodePtrs together extra_nodes(A) ::= . { A = NULL; } extra_nodes(A) ::= node(P) extra_nodes(B). { ((gmlNodePtr)P)->Next = (gmlNodePtr)B; A = P; } // a chain can contain any number of GML Nodes (but at least two): node_chain(C) ::= node(A) node(B) extra_nodes(Q). { ((gmlNodePtr)B)->Next = (gmlNodePtr)Q; ((gmlNodePtr)A)->Next = (gmlNodePtr)B; C = A; } // syntax for a GML attribute: attr(A) ::= GML_KEYWORD(K) GML_EQ GML_VALUE(V). { A = gml_attribute( p_data, (void *)K, (void *)V); } // Rules to match an infinite number of GML attributes: // Also links the generated gmlAttrPtrs together extra_attr(A) ::= . { A = NULL; } extra_attr(A) ::= attr(P) extra_attr(B). { ((gmlAttrPtr)P)->Next = (gmlAttrPtr)B; A = P; } // a chain can contain any number of GML Attributes (but at least two): attributes(C) ::= attr(A) attr(B) extra_attr(Q). { ((gmlAttrPtr)B)->Next = (gmlAttrPtr)Q; ((gmlAttrPtr)A)->Next = (gmlAttrPtr)B; C = A; } // syntax for a GML coordinate: coord(C) ::= GML_COORD(V). { C = gml_coord( p_data, (void *)V); } // Rules to match an infinite number of GML coords: // Also links the generated gmlCoordPtrs together extra_coord(A) ::= . { A = NULL; } extra_coord(A) ::= coord(P) extra_coord(B). { ((gmlCoordPtr)P)->Next = (gmlCoordPtr)B; A = P; } // a chain can contain any number of GML Coordinates (but at least two): coord_chain(C) ::= coord(A) coord(B) extra_coord(Q). { ((gmlCoordPtr)B)->Next = (gmlCoordPtr)Q; ((gmlCoordPtr)A)->Next = (gmlCoordPtr)B; C = A; } libspatialite-4.1.1/src/gaiageo/lemon/lemon_src/0000775000175000017500000000000012163503225016623 500000000000000libspatialite-4.1.1/src/gaiageo/lemon/lemon_src/Makefile.am0000664000175000017500000000004012163502133020566 00000000000000 EXTRA_DIST = lemon.c lempar.c libspatialite-4.1.1/src/gaiageo/lemon/lemon_src/lempar.c0000664000175000017500000006605312163502133020176 00000000000000/* Driver template for the LEMON parser generator. ** The author disclaims copyright to this source code. */ /* First off, code is included that follows the "include" declaration ** in the input grammar file. */ #include %% /* Next is all token values, in a form suitable for use by makeheaders. ** This section will be null unless lemon is run with the -m switch. */ /* ** These constants (all generated automatically by the parser generator) ** specify the various kinds of tokens (terminals) that the parser ** understands. ** ** Each symbol here is a terminal symbol in the grammar. */ %% /* Make sure the INTERFACE macro is defined. */ #ifndef INTERFACE # define INTERFACE 1 #endif /* The next thing included is series of defines which control ** various aspects of the generated parser. ** YYCODETYPE is the data type used for storing terminal ** and nonterminal numbers. "unsigned char" is ** used if there are fewer than 250 terminals ** and nonterminals. "int" is used otherwise. ** YYNOCODE is a number of type YYCODETYPE which corresponds ** to no legal terminal or nonterminal number. This ** number is used to fill in empty slots of the hash ** table. ** YYFALLBACK If defined, this indicates that one or more tokens ** have fall-back values which should be used if the ** original value of the token will not parse. ** YYACTIONTYPE is the data type used for storing terminal ** and nonterminal numbers. "unsigned char" is ** used if there are fewer than 250 rules and ** states combined. "int" is used otherwise. ** ParseTOKENTYPE is the data type used for minor tokens given ** directly to the parser from the tokenizer. ** YYMINORTYPE is the data type used for all minor tokens. ** This is typically a union of many types, one of ** which is ParseTOKENTYPE. The entry in the union ** for base tokens is called "yy0". ** YYSTACKDEPTH is the maximum depth of the parser's stack. If ** zero the stack is dynamically sized using realloc() ** ParseARG_SDECL A static variable declaration for the %extra_argument ** ParseARG_PDECL A parameter declaration for the %extra_argument ** ParseARG_STORE Code to store %extra_argument into yypParser ** ParseARG_FETCH Code to extract %extra_argument from yypParser ** YYNSTATE the combined number of states. ** YYNRULE the number of rules in the grammar ** YYERRORSYMBOL is the code number of the error symbol. If not ** defined, then do no error processing. */ %% #define YY_NO_ACTION (YYNSTATE+YYNRULE+2) #define YY_ACCEPT_ACTION (YYNSTATE+YYNRULE+1) #define YY_ERROR_ACTION (YYNSTATE+YYNRULE) /* The yyzerominor constant is used to initialize instances of ** YYMINORTYPE objects to zero. */ static const YYMINORTYPE yyzerominor = { 0 }; /* Define the yytestcase() macro to be a no-op if is not already defined ** otherwise. ** ** Applications can choose to define yytestcase() in the %include section ** to a macro that can assist in verifying code coverage. For production ** code the yytestcase() macro should be turned off. But it is useful ** for testing. */ #ifndef yytestcase # define yytestcase(X) #endif /* Next are the tables used to determine what action to take based on the ** current state and lookahead token. These tables are used to implement ** functions that take a state number and lookahead value and return an ** action integer. ** ** Suppose the action integer is N. Then the action is determined as ** follows ** ** 0 <= N < YYNSTATE Shift N. That is, push the lookahead ** token onto the stack and goto state N. ** ** YYNSTATE <= N < YYNSTATE+YYNRULE Reduce by rule N-YYNSTATE. ** ** N == YYNSTATE+YYNRULE A syntax error has occurred. ** ** N == YYNSTATE+YYNRULE+1 The parser accepts its input. ** ** N == YYNSTATE+YYNRULE+2 No such action. Denotes unused ** slots in the yy_action[] table. ** ** The action table is constructed as a single large table named yy_action[]. ** Given state S and lookahead X, the action is computed as ** ** yy_action[ yy_shift_ofst[S] + X ] ** ** If the index value yy_shift_ofst[S]+X is out of range or if the value ** yy_lookahead[yy_shift_ofst[S]+X] is not equal to X or if yy_shift_ofst[S] ** is equal to YY_SHIFT_USE_DFLT, it means that the action is not in the table ** and that yy_default[S] should be used instead. ** ** The formula above is for computing the action when the lookahead is ** a terminal symbol. If the lookahead is a non-terminal (as occurs after ** a reduce action) then the yy_reduce_ofst[] array is used in place of ** the yy_shift_ofst[] array and YY_REDUCE_USE_DFLT is used in place of ** YY_SHIFT_USE_DFLT. ** ** The following are the tables generated in this section: ** ** yy_action[] A single table containing all actions. ** yy_lookahead[] A table containing the lookahead for each entry in ** yy_action. Used to detect hash collisions. ** yy_shift_ofst[] For each state, the offset into yy_action for ** shifting terminals. ** yy_reduce_ofst[] For each state, the offset into yy_action for ** shifting non-terminals after a reduce. ** yy_default[] Default action for each state. */ %% #define YY_SZ_ACTTAB (int)(sizeof(yy_action)/sizeof(yy_action[0])) /* The next table maps tokens into fallback tokens. If a construct ** like the following: ** ** %fallback ID X Y Z. ** ** appears in the grammar, then ID becomes a fallback token for X, Y, ** and Z. Whenever one of the tokens X, Y, or Z is input to the parser ** but it does not parse, the type of the token is changed to ID and ** the parse is retried before an error is thrown. */ #ifdef YYFALLBACK static const YYCODETYPE yyFallback[] = { %% }; #endif /* YYFALLBACK */ /* The following structure represents a single element of the ** parser's stack. Information stored includes: ** ** + The state number for the parser at this level of the stack. ** ** + The value of the token stored at this level of the stack. ** (In other words, the "major" token.) ** ** + The semantic value stored at this level of the stack. This is ** the information used by the action routines in the grammar. ** It is sometimes called the "minor" token. */ struct yyStackEntry { YYACTIONTYPE stateno; /* The state-number */ YYCODETYPE major; /* The major token value. This is the code ** number for the token at this stack level */ YYMINORTYPE minor; /* The user-supplied minor token value. This ** is the value of the token */ }; typedef struct yyStackEntry yyStackEntry; /* The state of the parser is completely contained in an instance of ** the following structure */ struct yyParser { int yyidx; /* Index of top element in stack */ #ifdef YYTRACKMAXSTACKDEPTH int yyidxMax; /* Maximum value of yyidx */ #endif int yyerrcnt; /* Shifts left before out of the error */ ParseARG_SDECL /* A place to hold %extra_argument */ #if YYSTACKDEPTH<=0 int yystksz; /* Current side of the stack */ yyStackEntry *yystack; /* The parser's stack */ #else yyStackEntry yystack[YYSTACKDEPTH]; /* The parser's stack */ #endif }; typedef struct yyParser yyParser; #ifndef NDEBUG #include static FILE *yyTraceFILE = 0; static char *yyTracePrompt = 0; #endif /* NDEBUG */ #ifndef NDEBUG /* ** Turn parser tracing on by giving a stream to which to write the trace ** and a prompt to preface each trace message. Tracing is turned off ** by making either argument NULL ** ** Inputs: **
    **
  • A FILE* to which trace output should be written. ** If NULL, then tracing is turned off. **
  • A prefix string written at the beginning of every ** line of trace output. If NULL, then tracing is ** turned off. **
** ** Outputs: ** None. */ void ParseTrace(FILE *TraceFILE, char *zTracePrompt){ yyTraceFILE = TraceFILE; yyTracePrompt = zTracePrompt; if( yyTraceFILE==0 ) yyTracePrompt = 0; else if( yyTracePrompt==0 ) yyTraceFILE = 0; } #endif /* NDEBUG */ #ifndef NDEBUG /* For tracing shifts, the names of all terminals and nonterminals ** are required. The following table supplies these names */ static const char *const yyTokenName[] = { %% }; #endif /* NDEBUG */ #ifndef NDEBUG /* For tracing reduce actions, the names of all rules are required. */ static const char *const yyRuleName[] = { %% }; #endif /* NDEBUG */ #if YYSTACKDEPTH<=0 /* ** Try to increase the size of the parser stack. */ static void yyGrowStack(yyParser *p){ int newSize; yyStackEntry *pNew; newSize = p->yystksz*2 + 100; pNew = realloc(p->yystack, newSize*sizeof(pNew[0])); if( pNew ){ p->yystack = pNew; p->yystksz = newSize; #ifndef NDEBUG if( yyTraceFILE ){ fprintf(yyTraceFILE,"%sStack grows to %d entries!\n", yyTracePrompt, p->yystksz); } #endif } } #endif /* ** This function allocates a new parser. ** The only argument is a pointer to a function which works like ** malloc. ** ** Inputs: ** A pointer to the function used to allocate memory. ** ** Outputs: ** A pointer to a parser. This pointer is used in subsequent calls ** to Parse and ParseFree. */ void *ParseAlloc(void *(*mallocProc)(size_t)){ yyParser *pParser; pParser = (yyParser*)(*mallocProc)( (size_t)sizeof(yyParser) ); if( pParser ){ pParser->yyidx = -1; #ifdef YYTRACKMAXSTACKDEPTH pParser->yyidxMax = 0; #endif #if YYSTACKDEPTH<=0 pParser->yystack = NULL; pParser->yystksz = 0; yyGrowStack(pParser); #endif } return pParser; } /* The following function deletes the value associated with a ** symbol. The symbol can be either a terminal or nonterminal. ** "yymajor" is the symbol code, and "yypminor" is a pointer to ** the value. */ static void yy_destructor( yyParser *yypParser, /* The parser */ YYCODETYPE yymajor, /* Type code for object to destroy */ YYMINORTYPE *yypminor /* The object to be destroyed */ ){ ParseARG_FETCH; switch( yymajor ){ /* Here is inserted the actions which take place when a ** terminal or non-terminal is destroyed. This can happen ** when the symbol is popped from the stack during a ** reduce or during error processing or when a parser is ** being destroyed before it is finished parsing. ** ** Note: during a reduce, the only symbols destroyed are those ** which appear on the RHS of the rule, but which are not used ** inside the C code. */ %% default: break; /* If no destructor action specified: do nothing */ } } /* ** Pop the parser's stack once. ** ** If there is a destructor routine associated with the token which ** is popped from the stack, then call it. ** ** Return the major token number for the symbol popped. */ static int yy_pop_parser_stack(yyParser *pParser){ YYCODETYPE yymajor; yyStackEntry *yytos = &pParser->yystack[pParser->yyidx]; if( pParser->yyidx<0 ) return 0; #ifndef NDEBUG if( yyTraceFILE && pParser->yyidx>=0 ){ fprintf(yyTraceFILE,"%sPopping %s\n", yyTracePrompt, yyTokenName[yytos->major]); } #endif yymajor = yytos->major; yy_destructor(pParser, yymajor, &yytos->minor); pParser->yyidx--; return yymajor; } /* ** Deallocate and destroy a parser. Destructors are all called for ** all stack elements before shutting the parser down. ** ** Inputs: **
    **
  • A pointer to the parser. This should be a pointer ** obtained from ParseAlloc. **
  • A pointer to a function used to reclaim memory obtained ** from malloc. **
*/ void ParseFree( void *p, /* The parser to be deleted */ void (*freeProc)(void*) /* Function used to reclaim memory */ ){ yyParser *pParser = (yyParser*)p; if( pParser==0 ) return; while( pParser->yyidx>=0 ) yy_pop_parser_stack(pParser); #if YYSTACKDEPTH<=0 free(pParser->yystack); #endif (*freeProc)((void*)pParser); } /* ** Return the peak depth of the stack for a parser. */ #ifdef YYTRACKMAXSTACKDEPTH int ParseStackPeak(void *p){ yyParser *pParser = (yyParser*)p; return pParser->yyidxMax; } #endif /* ** Find the appropriate action for a parser given the terminal ** look-ahead token iLookAhead. ** ** If the look-ahead token is YYNOCODE, then check to see if the action is ** independent of the look-ahead. If it is, return the action, otherwise ** return YY_NO_ACTION. */ static int yy_find_shift_action( yyParser *pParser, /* The parser */ YYCODETYPE iLookAhead /* The look-ahead token */ ){ int i; int stateno = pParser->yystack[pParser->yyidx].stateno; if( stateno>YY_SHIFT_MAX || (i = yy_shift_ofst[stateno])==YY_SHIFT_USE_DFLT ){ return yy_default[stateno]; } assert( iLookAhead!=YYNOCODE ); i += iLookAhead; if( i<0 || i>=YY_SZ_ACTTAB || yy_lookahead[i]!=iLookAhead ){ if( iLookAhead>0 ){ #ifdef YYFALLBACK YYCODETYPE iFallback; /* Fallback token */ if( iLookAhead %s\n", yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[iFallback]); } #endif return yy_find_shift_action(pParser, iFallback); } #endif #ifdef YYWILDCARD { int j = i - iLookAhead + YYWILDCARD; if( j>=0 && j %s\n", yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[YYWILDCARD]); } #endif /* NDEBUG */ return yy_action[j]; } } #endif /* YYWILDCARD */ } return yy_default[stateno]; }else{ return yy_action[i]; } } /* ** Find the appropriate action for a parser given the non-terminal ** look-ahead token iLookAhead. ** ** If the look-ahead token is YYNOCODE, then check to see if the action is ** independent of the look-ahead. If it is, return the action, otherwise ** return YY_NO_ACTION. */ static int yy_find_reduce_action( int stateno, /* Current state number */ YYCODETYPE iLookAhead /* The look-ahead token */ ){ int i; #ifdef YYERRORSYMBOL if( stateno>YY_REDUCE_MAX ){ return yy_default[stateno]; } #else assert( stateno<=YY_REDUCE_MAX ); #endif i = yy_reduce_ofst[stateno]; assert( i!=YY_REDUCE_USE_DFLT ); assert( iLookAhead!=YYNOCODE ); i += iLookAhead; #ifdef YYERRORSYMBOL if( i<0 || i>=YY_SZ_ACTTAB || yy_lookahead[i]!=iLookAhead ){ return yy_default[stateno]; } #else assert( i>=0 && iyyidx--; #ifndef NDEBUG if( yyTraceFILE ){ fprintf(yyTraceFILE,"%sStack Overflow!\n",yyTracePrompt); } #endif while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser); /* Here code is inserted which will execute if the parser ** stack every overflows */ %% ParseARG_STORE; /* Suppress warning about unused %extra_argument var */ } /* ** Perform a shift action. */ static void yy_shift( yyParser *yypParser, /* The parser to be shifted */ int yyNewState, /* The new state to shift in */ int yyMajor, /* The major token to shift in */ YYMINORTYPE *yypMinor /* Pointer to the minor token to shift in */ ){ yyStackEntry *yytos; yypParser->yyidx++; #ifdef YYTRACKMAXSTACKDEPTH if( yypParser->yyidx>yypParser->yyidxMax ){ yypParser->yyidxMax = yypParser->yyidx; } #endif #if YYSTACKDEPTH>0 if( yypParser->yyidx>=YYSTACKDEPTH ){ yyStackOverflow(yypParser, yypMinor); return; } #else if( yypParser->yyidx>=yypParser->yystksz ){ yyGrowStack(yypParser); if( yypParser->yyidx>=yypParser->yystksz ){ yyStackOverflow(yypParser, yypMinor); return; } } #endif yytos = &yypParser->yystack[yypParser->yyidx]; yytos->stateno = (YYACTIONTYPE)yyNewState; yytos->major = (YYCODETYPE)yyMajor; yytos->minor = *yypMinor; #ifndef NDEBUG if( yyTraceFILE && yypParser->yyidx>0 ){ int i; fprintf(yyTraceFILE,"%sShift %d\n",yyTracePrompt,yyNewState); fprintf(yyTraceFILE,"%sStack:",yyTracePrompt); for(i=1; i<=yypParser->yyidx; i++) fprintf(yyTraceFILE," %s",yyTokenName[yypParser->yystack[i].major]); fprintf(yyTraceFILE,"\n"); } #endif } /* The following table contains information about every rule that ** is used during the reduce. */ static const struct { YYCODETYPE lhs; /* Symbol on the left-hand side of the rule */ unsigned char nrhs; /* Number of right-hand side symbols in the rule */ } yyRuleInfo[] = { %% }; static void yy_accept(yyParser*); /* Forward Declaration */ /* ** Perform a reduce action and the shift that must immediately ** follow the reduce. */ static void yy_reduce( yyParser *yypParser, /* The parser */ int yyruleno /* Number of the rule by which to reduce */ ){ int yygoto; /* The next state */ int yyact; /* The next action */ YYMINORTYPE yygotominor; /* The LHS of the rule reduced */ yyStackEntry *yymsp; /* The top of the parser's stack */ int yysize; /* Amount to pop the stack */ ParseARG_FETCH; yymsp = &yypParser->yystack[yypParser->yyidx]; #ifndef NDEBUG if( yyTraceFILE && yyruleno>=0 && yyruleno<(int)(sizeof(yyRuleName)/sizeof(yyRuleName[0])) ){ fprintf(yyTraceFILE, "%sReduce [%s].\n", yyTracePrompt, yyRuleName[yyruleno]); } #endif /* NDEBUG */ /* Silence complaints from purify about yygotominor being uninitialized ** in some cases when it is copied into the stack after the following ** switch. yygotominor is uninitialized when a rule reduces that does ** not set the value of its left-hand side nonterminal. Leaving the ** value of the nonterminal uninitialized is utterly harmless as long ** as the value is never used. So really the only thing this code ** accomplishes is to quieten purify. ** ** 2007-01-16: The wireshark project (www.wireshark.org) reports that ** without this code, their parser segfaults. I'm not sure what there ** parser is doing to make this happen. This is the second bug report ** from wireshark this week. Clearly they are stressing Lemon in ways ** that it has not been previously stressed... (SQLite ticket #2172) */ /*memset(&yygotominor, 0, sizeof(yygotominor));*/ yygotominor = yyzerominor; switch( yyruleno ){ /* Beginning here are the reduction cases. A typical example ** follows: ** case 0: ** #line ** { ... } // User supplied code ** #line ** break; */ %% }; yygoto = yyRuleInfo[yyruleno].lhs; yysize = yyRuleInfo[yyruleno].nrhs; yypParser->yyidx -= yysize; yyact = yy_find_reduce_action(yymsp[-yysize].stateno,(YYCODETYPE)yygoto); if( yyact < YYNSTATE ){ #ifdef NDEBUG /* If we are not debugging and the reduce action popped at least ** one element off the stack, then we can push the new element back ** onto the stack here, and skip the stack overflow test in yy_shift(). ** That gives a significant speed improvement. */ if( yysize ){ yypParser->yyidx++; yymsp -= yysize-1; yymsp->stateno = (YYACTIONTYPE)yyact; yymsp->major = (YYCODETYPE)yygoto; yymsp->minor = yygotominor; }else #endif { yy_shift(yypParser,yyact,yygoto,&yygotominor); } }else{ assert( yyact == YYNSTATE + YYNRULE + 1 ); yy_accept(yypParser); } } /* ** The following code executes when the parse fails */ #ifndef YYNOERRORRECOVERY static void yy_parse_failed( yyParser *yypParser /* The parser */ ){ ParseARG_FETCH; #ifndef NDEBUG if( yyTraceFILE ){ fprintf(yyTraceFILE,"%sFail!\n",yyTracePrompt); } #endif while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser); /* Here code is inserted which will be executed whenever the ** parser fails */ %% ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ } #endif /* YYNOERRORRECOVERY */ /* ** The following code executes when a syntax error first occurs. */ static void yy_syntax_error( yyParser *yypParser, /* The parser */ int yymajor, /* The major type of the error token */ YYMINORTYPE yyminor /* The minor type of the error token */ ){ ParseARG_FETCH; #define TOKEN (yyminor.yy0) %% ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ } /* ** The following is executed when the parser accepts */ static void yy_accept( yyParser *yypParser /* The parser */ ){ ParseARG_FETCH; #ifndef NDEBUG if( yyTraceFILE ){ fprintf(yyTraceFILE,"%sAccept!\n",yyTracePrompt); } #endif while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser); /* Here code is inserted which will be executed whenever the ** parser accepts */ %% ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ } /* The main parser program. ** The first argument is a pointer to a structure obtained from ** "ParseAlloc" which describes the current state of the parser. ** The second argument is the major token number. The third is ** the minor token. The fourth optional argument is whatever the ** user wants (and specified in the grammar) and is available for ** use by the action routines. ** ** Inputs: **
    **
  • A pointer to the parser (an opaque structure.) **
  • The major token number. **
  • The minor token number. **
  • An option argument of a grammar-specified type. **
** ** Outputs: ** None. */ void Parse( void *yyp, /* The parser */ int yymajor, /* The major token code number */ ParseTOKENTYPE yyminor /* The value for the token */ ParseARG_PDECL /* Optional %extra_argument parameter */ ){ YYMINORTYPE yyminorunion; int yyact; /* The parser action. */ int yyendofinput; /* True if we are at the end of input */ #ifdef YYERRORSYMBOL int yyerrorhit = 0; /* True if yymajor has invoked an error */ #endif yyParser *yypParser; /* The parser */ /* (re)initialize the parser, if necessary */ yypParser = (yyParser*)yyp; if( yypParser->yyidx<0 ){ #if YYSTACKDEPTH<=0 if( yypParser->yystksz <=0 ){ /*memset(&yyminorunion, 0, sizeof(yyminorunion));*/ yyminorunion = yyzerominor; yyStackOverflow(yypParser, &yyminorunion); return; } #endif yypParser->yyidx = 0; yypParser->yyerrcnt = -1; yypParser->yystack[0].stateno = 0; yypParser->yystack[0].major = 0; } yyminorunion.yy0 = yyminor; yyendofinput = (yymajor==0); ParseARG_STORE; #ifndef NDEBUG if( yyTraceFILE ){ fprintf(yyTraceFILE,"%sInput %s\n",yyTracePrompt,yyTokenName[yymajor]); } #endif do{ yyact = yy_find_shift_action(yypParser,(YYCODETYPE)yymajor); if( yyactyyerrcnt--; yymajor = YYNOCODE; }else if( yyact < YYNSTATE + YYNRULE ){ yy_reduce(yypParser,yyact-YYNSTATE); }else{ assert( yyact == YY_ERROR_ACTION ); #ifdef YYERRORSYMBOL int yymx; #endif #ifndef NDEBUG if( yyTraceFILE ){ fprintf(yyTraceFILE,"%sSyntax Error!\n",yyTracePrompt); } #endif #ifdef YYERRORSYMBOL /* A syntax error has occurred. ** The response to an error depends upon whether or not the ** grammar defines an error token "ERROR". ** ** This is what we do if the grammar does define ERROR: ** ** * Call the %syntax_error function. ** ** * Begin popping the stack until we enter a state where ** it is legal to shift the error symbol, then shift ** the error symbol. ** ** * Set the error count to three. ** ** * Begin accepting and shifting new tokens. No new error ** processing will occur until three tokens have been ** shifted successfully. ** */ if( yypParser->yyerrcnt<0 ){ yy_syntax_error(yypParser,yymajor,yyminorunion); } yymx = yypParser->yystack[yypParser->yyidx].major; if( yymx==YYERRORSYMBOL || yyerrorhit ){ #ifndef NDEBUG if( yyTraceFILE ){ fprintf(yyTraceFILE,"%sDiscard input token %s\n", yyTracePrompt,yyTokenName[yymajor]); } #endif yy_destructor(yypParser, (YYCODETYPE)yymajor,&yyminorunion); yymajor = YYNOCODE; }else{ while( yypParser->yyidx >= 0 && yymx != YYERRORSYMBOL && (yyact = yy_find_reduce_action( yypParser->yystack[yypParser->yyidx].stateno, YYERRORSYMBOL)) >= YYNSTATE ){ yy_pop_parser_stack(yypParser); } if( yypParser->yyidx < 0 || yymajor==0 ){ yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion); yy_parse_failed(yypParser); yymajor = YYNOCODE; }else if( yymx!=YYERRORSYMBOL ){ YYMINORTYPE u2; u2.YYERRSYMDT = 0; yy_shift(yypParser,yyact,YYERRORSYMBOL,&u2); } } yypParser->yyerrcnt = 3; yyerrorhit = 1; #elif defined(YYNOERRORRECOVERY) /* If the YYNOERRORRECOVERY macro is defined, then do not attempt to ** do any kind of error recovery. Instead, simply invoke the syntax ** error routine and continue going as if nothing had happened. ** ** Applications can set this macro (for example inside %include) if ** they intend to abandon the parse upon the first syntax error seen. */ yy_syntax_error(yypParser,yymajor,yyminorunion); yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion); yymajor = YYNOCODE; #else /* YYERRORSYMBOL is not defined */ /* This is what we do if the grammar does not define ERROR: ** ** * Report an error message, and throw away the input token. ** ** * If the input token is $, then fail the parse. ** ** As before, subsequent error messages are suppressed until ** three input tokens have been successfully shifted. */ if( yypParser->yyerrcnt<=0 ){ yy_syntax_error(yypParser,yymajor,yyminorunion); } yypParser->yyerrcnt = 3; yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion); if( yyendofinput ){ yy_parse_failed(yypParser); } yymajor = YYNOCODE; #endif } }while( yymajor!=YYNOCODE && yypParser->yyidx>=0 ); return; } libspatialite-4.1.1/src/gaiageo/lemon/lemon_src/Makefile.in0000664000175000017500000002473712163502133020622 00000000000000# Makefile.in generated by automake 1.12.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/gaiageo/lemon/lemon_src DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = lemon.c lempar.c all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/gaiageo/lemon/lemon_src/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/gaiageo/lemon/lemon_src/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags: TAGS TAGS: ctags: CTAGS CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libspatialite-4.1.1/src/gaiageo/lemon/lemon_src/lemon.c0000664000175000017500000043005212163502133020022 00000000000000/* ** This file contains all sources (including headers) to the LEMON ** LALR(1) parser generator. The sources have been combined into a ** single file to make it easy to include LEMON in the source tree ** and Makefile of another program. ** ** The author of this program disclaims copyright. */ #include #include #include #include #include #include #ifndef __WIN32__ # if defined(_WIN32) || defined(WIN32) # define __WIN32__ # endif #endif #ifdef __WIN32__ extern int access(); #else #include #endif /* #define PRIVATE static */ #define PRIVATE #ifdef TEST #define MAXRHS 5 /* Set low to exercise exception code */ #else #define MAXRHS 1000 #endif static char *msort(char*,char**,int(*)(const char*,const char*)); /* ** Compilers are getting increasingly pedantic about type conversions ** as C evolves ever closer to Ada.... To work around the latest problems ** we have to define the following variant of strlen(). */ #define lemonStrlen(X) ((int)strlen(X)) static struct action *Action_new(void); static struct action *Action_sort(struct action *); /********** From the file "build.h" ************************************/ void FindRulePrecedences(); void FindFirstSets(); void FindStates(); void FindLinks(); void FindFollowSets(); void FindActions(); /********* From the file "configlist.h" *********************************/ void Configlist_init(/* void */); struct config *Configlist_add(/* struct rule *, int */); struct config *Configlist_addbasis(/* struct rule *, int */); void Configlist_closure(/* void */); void Configlist_sort(/* void */); void Configlist_sortbasis(/* void */); struct config *Configlist_return(/* void */); struct config *Configlist_basis(/* void */); void Configlist_eat(/* struct config * */); void Configlist_reset(/* void */); /********* From the file "error.h" ***************************************/ void ErrorMsg(const char *, int,const char *, ...); /****** From the file "option.h" ******************************************/ struct s_options { enum { OPT_FLAG=1, OPT_INT, OPT_DBL, OPT_STR, OPT_FFLAG, OPT_FINT, OPT_FDBL, OPT_FSTR} type; char *label; char *arg; char *message; }; int OptInit(/* char**,struct s_options*,FILE* */); int OptNArgs(/* void */); char *OptArg(/* int */); void OptErr(/* int */); void OptPrint(/* void */); /******** From the file "parse.h" *****************************************/ void Parse(/* struct lemon *lemp */); /********* From the file "plink.h" ***************************************/ struct plink *Plink_new(/* void */); void Plink_add(/* struct plink **, struct config * */); void Plink_copy(/* struct plink **, struct plink * */); void Plink_delete(/* struct plink * */); /********** From the file "report.h" *************************************/ void Reprint(/* struct lemon * */); void ReportOutput(/* struct lemon * */); void ReportTable(/* struct lemon * */); void ReportHeader(/* struct lemon * */); void CompressTables(/* struct lemon * */); void ResortStates(/* struct lemon * */); /********** From the file "set.h" ****************************************/ void SetSize(/* int N */); /* All sets will be of size N */ char *SetNew(/* void */); /* A new set for element 0..N */ void SetFree(/* char* */); /* Deallocate a set */ int SetAdd(/* char*,int */); /* Add element to a set */ int SetUnion(/* char *A,char *B */); /* A <- A U B, thru element N */ #define SetFind(X,Y) (X[Y]) /* True if Y is in set X */ /********** From the file "struct.h" *************************************/ /* ** Principal data structures for the LEMON parser generator. */ typedef enum {LEMON_FALSE=0, LEMON_TRUE} Boolean; /* Symbols (terminals and nonterminals) of the grammar are stored ** in the following: */ struct symbol { char *name; /* Name of the symbol */ int index; /* Index number for this symbol */ enum { TERMINAL, NONTERMINAL, MULTITERMINAL } type; /* Symbols are all either TERMINALS or NTs */ struct rule *rule; /* Linked list of rules of this (if an NT) */ struct symbol *fallback; /* fallback token in case this token doesn't parse */ int prec; /* Precedence if defined (-1 otherwise) */ enum e_assoc { LEFT, RIGHT, NONE, UNK } assoc; /* Associativity if precedence is defined */ char *firstset; /* First-set for all rules of this symbol */ Boolean lambda; /* True if NT and can generate an empty string */ int useCnt; /* Number of times used */ char *destructor; /* Code which executes whenever this symbol is ** popped from the stack during error processing */ int destLineno; /* Line number for start of destructor */ char *datatype; /* The data type of information held by this ** object. Only used if type==NONTERMINAL */ int dtnum; /* The data type number. In the parser, the value ** stack is a union. The .yy%d element of this ** union is the correct data type for this object */ /* The following fields are used by MULTITERMINALs only */ int nsubsym; /* Number of constituent symbols in the MULTI */ struct symbol **subsym; /* Array of constituent symbols */ }; /* Each production rule in the grammar is stored in the following ** structure. */ struct rule { struct symbol *lhs; /* Left-hand side of the rule */ char *lhsalias; /* Alias for the LHS (NULL if none) */ int lhsStart; /* True if left-hand side is the start symbol */ int ruleline; /* Line number for the rule */ int nrhs; /* Number of RHS symbols */ struct symbol **rhs; /* The RHS symbols */ char **rhsalias; /* An alias for each RHS symbol (NULL if none) */ int line; /* Line number at which code begins */ char *code; /* The code executed when this rule is reduced */ struct symbol *precsym; /* Precedence symbol for this rule */ int index; /* An index number for this rule */ Boolean canReduce; /* True if this rule is ever reduced */ struct rule *nextlhs; /* Next rule with the same LHS */ struct rule *next; /* Next rule in the global list */ }; /* A configuration is a production rule of the grammar together with ** a mark (dot) showing how much of that rule has been processed so far. ** Configurations also contain a follow-set which is a list of terminal ** symbols which are allowed to immediately follow the end of the rule. ** Every configuration is recorded as an instance of the following: */ struct config { struct rule *rp; /* The rule upon which the configuration is based */ int dot; /* The parse point */ char *fws; /* Follow-set for this configuration only */ struct plink *fplp; /* Follow-set forward propagation links */ struct plink *bplp; /* Follow-set backwards propagation links */ struct state *stp; /* Pointer to state which contains this */ enum { COMPLETE, /* The status is used during followset and */ INCOMPLETE /* shift computations */ } status; struct config *next; /* Next configuration in the state */ struct config *bp; /* The next basis configuration */ }; /* Every shift or reduce operation is stored as one of the following */ struct action { struct symbol *sp; /* The look-ahead symbol */ enum e_action { SHIFT, ACCEPT, REDUCE, ERROR, SSCONFLICT, /* A shift/shift conflict */ SRCONFLICT, /* Was a reduce, but part of a conflict */ RRCONFLICT, /* Was a reduce, but part of a conflict */ SH_RESOLVED, /* Was a shift. Precedence resolved conflict */ RD_RESOLVED, /* Was reduce. Precedence resolved conflict */ NOT_USED /* Deleted by compression */ } type; union { struct state *stp; /* The new state, if a shift */ struct rule *rp; /* The rule, if a reduce */ } x; struct action *next; /* Next action for this state */ struct action *collide; /* Next action with the same hash */ }; /* Each state of the generated parser's finite state machine ** is encoded as an instance of the following structure. */ struct state { struct config *bp; /* The basis configurations for this state */ struct config *cfp; /* All configurations in this set */ int statenum; /* Sequential number for this state */ struct action *ap; /* Array of actions for this state */ int nTknAct, nNtAct; /* Number of actions on terminals and nonterminals */ int iTknOfst, iNtOfst; /* yy_action[] offset for terminals and nonterms */ int iDflt; /* Default action */ }; #define NO_OFFSET (-2147483647) /* A followset propagation link indicates that the contents of one ** configuration followset should be propagated to another whenever ** the first changes. */ struct plink { struct config *cfp; /* The configuration to which linked */ struct plink *next; /* The next propagate link */ }; /* The state vector for the entire parser generator is recorded as ** follows. (LEMON uses no global variables and makes little use of ** static variables. Fields in the following structure can be thought ** of as begin global variables in the program.) */ struct lemon { struct state **sorted; /* Table of states sorted by state number */ struct rule *rule; /* List of all rules */ int nstate; /* Number of states */ int nrule; /* Number of rules */ int nsymbol; /* Number of terminal and nonterminal symbols */ int nterminal; /* Number of terminal symbols */ struct symbol **symbols; /* Sorted array of pointers to symbols */ int errorcnt; /* Number of errors */ struct symbol *errsym; /* The error symbol */ struct symbol *wildcard; /* Token that matches anything */ char *name; /* Name of the generated parser */ char *arg; /* Declaration of the 3th argument to parser */ char *tokentype; /* Type of terminal symbols in the parser stack */ char *vartype; /* The default type of non-terminal symbols */ char *start; /* Name of the start symbol for the grammar */ char *stacksize; /* Size of the parser stack */ char *include; /* Code to put at the start of the C file */ char *error; /* Code to execute when an error is seen */ char *overflow; /* Code to execute on a stack overflow */ char *failure; /* Code to execute on parser failure */ char *accept; /* Code to execute when the parser excepts */ char *extracode; /* Code appended to the generated file */ char *tokendest; /* Code to execute to destroy token data */ char *vardest; /* Code for the default non-terminal destructor */ char *filename; /* Name of the input file */ char *outname; /* Name of the current output file */ char *tokenprefix; /* A prefix added to token names in the .h file */ int nconflict; /* Number of parsing conflicts */ int tablesize; /* Size of the parse tables */ int basisflag; /* Print only basis configurations */ int has_fallback; /* True if any %fallback is seen in the grammar */ int nolinenosflag; /* True if #line statements should not be printed */ char *argv0; /* Name of the program */ }; #define MemoryCheck(X) if((X)==0){ \ extern void memory_error(); \ memory_error(); \ } /**************** From the file "table.h" *********************************/ /* ** All code in this file has been automatically generated ** from a specification in the file ** "table.q" ** by the associative array code building program "aagen". ** Do not edit this file! Instead, edit the specification ** file, then rerun aagen. */ /* ** Code for processing tables in the LEMON parser generator. */ /* Routines for handling a strings */ char *Strsafe(); void Strsafe_init(/* void */); int Strsafe_insert(/* char * */); char *Strsafe_find(/* char * */); /* Routines for handling symbols of the grammar */ struct symbol *Symbol_new(); int Symbolcmpp(/* struct symbol **, struct symbol ** */); void Symbol_init(/* void */); int Symbol_insert(/* struct symbol *, char * */); struct symbol *Symbol_find(/* char * */); struct symbol *Symbol_Nth(/* int */); int Symbol_count(/* */); struct symbol **Symbol_arrayof(/* */); /* Routines to manage the state table */ int Configcmp(/* struct config *, struct config * */); struct state *State_new(); void State_init(/* void */); int State_insert(/* struct state *, struct config * */); struct state *State_find(/* struct config * */); struct state **State_arrayof(/* */); /* Routines used for efficiency in Configlist_add */ void Configtable_init(/* void */); int Configtable_insert(/* struct config * */); struct config *Configtable_find(/* struct config * */); void Configtable_clear(/* int(*)(struct config *) */); /****************** From the file "action.c" *******************************/ /* ** Routines processing parser actions in the LEMON parser generator. */ /* Allocate a new parser action */ static struct action *Action_new(void){ static struct action *freelist = 0; struct action *new; if( freelist==0 ){ int i; int amt = 100; freelist = (struct action *)calloc(amt, sizeof(struct action)); if( freelist==0 ){ fprintf(stderr,"Unable to allocate memory for a new parser action."); exit(1); } for(i=0; inext; return new; } /* Compare two actions for sorting purposes. Return negative, zero, or ** positive if the first action is less than, equal to, or greater than ** the first */ static int actioncmp( struct action *ap1, struct action *ap2 ){ int rc; rc = ap1->sp->index - ap2->sp->index; if( rc==0 ){ rc = (int)ap1->type - (int)ap2->type; } if( rc==0 && ap1->type==REDUCE ){ rc = ap1->x.rp->index - ap2->x.rp->index; } return rc; } /* Sort parser actions */ static struct action *Action_sort( struct action *ap ){ ap = (struct action *)msort((char *)ap,(char **)&ap->next, (int(*)(const char*,const char*))actioncmp); return ap; } void Action_add(app,type,sp,arg) struct action **app; enum e_action type; struct symbol *sp; char *arg; { struct action *new; new = Action_new(); new->next = *app; *app = new; new->type = type; new->sp = sp; if( type==SHIFT ){ new->x.stp = (struct state *)arg; }else{ new->x.rp = (struct rule *)arg; } } /********************** New code to implement the "acttab" module ***********/ /* ** This module implements routines use to construct the yy_action[] table. */ /* ** The state of the yy_action table under construction is an instance of ** the following structure */ typedef struct acttab acttab; struct acttab { int nAction; /* Number of used slots in aAction[] */ int nActionAlloc; /* Slots allocated for aAction[] */ struct { int lookahead; /* Value of the lookahead token */ int action; /* Action to take on the given lookahead */ } *aAction, /* The yy_action[] table under construction */ *aLookahead; /* A single new transaction set */ int mnLookahead; /* Minimum aLookahead[].lookahead */ int mnAction; /* Action associated with mnLookahead */ int mxLookahead; /* Maximum aLookahead[].lookahead */ int nLookahead; /* Used slots in aLookahead[] */ int nLookaheadAlloc; /* Slots allocated in aLookahead[] */ }; /* Return the number of entries in the yy_action table */ #define acttab_size(X) ((X)->nAction) /* The value for the N-th entry in yy_action */ #define acttab_yyaction(X,N) ((X)->aAction[N].action) /* The value for the N-th entry in yy_lookahead */ #define acttab_yylookahead(X,N) ((X)->aAction[N].lookahead) /* Free all memory associated with the given acttab */ void acttab_free(acttab *p){ free( p->aAction ); free( p->aLookahead ); free( p ); } /* Allocate a new acttab structure */ acttab *acttab_alloc(void){ acttab *p = calloc( 1, sizeof(*p) ); if( p==0 ){ fprintf(stderr,"Unable to allocate memory for a new acttab."); exit(1); } memset(p, 0, sizeof(*p)); return p; } /* Add a new action to the current transaction set */ void acttab_action(acttab *p, int lookahead, int action){ if( p->nLookahead>=p->nLookaheadAlloc ){ p->nLookaheadAlloc += 25; p->aLookahead = realloc( p->aLookahead, sizeof(p->aLookahead[0])*p->nLookaheadAlloc ); if( p->aLookahead==0 ){ fprintf(stderr,"malloc failed\n"); exit(1); } } if( p->nLookahead==0 ){ p->mxLookahead = lookahead; p->mnLookahead = lookahead; p->mnAction = action; }else{ if( p->mxLookaheadmxLookahead = lookahead; if( p->mnLookahead>lookahead ){ p->mnLookahead = lookahead; p->mnAction = action; } } p->aLookahead[p->nLookahead].lookahead = lookahead; p->aLookahead[p->nLookahead].action = action; p->nLookahead++; } /* ** Add the transaction set built up with prior calls to acttab_action() ** into the current action table. Then reset the transaction set back ** to an empty set in preparation for a new round of acttab_action() calls. ** ** Return the offset into the action table of the new transaction. */ int acttab_insert(acttab *p){ int i, j, k, n; assert( p->nLookahead>0 ); /* Make sure we have enough space to hold the expanded action table ** in the worst case. The worst case occurs if the transaction set ** must be appended to the current action table */ n = p->mxLookahead + 1; if( p->nAction + n >= p->nActionAlloc ){ int oldAlloc = p->nActionAlloc; p->nActionAlloc = p->nAction + n + p->nActionAlloc + 20; p->aAction = realloc( p->aAction, sizeof(p->aAction[0])*p->nActionAlloc); if( p->aAction==0 ){ fprintf(stderr,"malloc failed\n"); exit(1); } for(i=oldAlloc; inActionAlloc; i++){ p->aAction[i].lookahead = -1; p->aAction[i].action = -1; } } /* Scan the existing action table looking for an offset where we can ** insert the current transaction set. Fall out of the loop when that ** offset is found. In the worst case, we fall out of the loop when ** i reaches p->nAction, which means we append the new transaction set. ** ** i is the index in p->aAction[] where p->mnLookahead is inserted. */ for(i=0; inAction+p->mnLookahead; i++){ if( p->aAction[i].lookahead<0 ){ for(j=0; jnLookahead; j++){ k = p->aLookahead[j].lookahead - p->mnLookahead + i; if( k<0 ) break; if( p->aAction[k].lookahead>=0 ) break; } if( jnLookahead ) continue; for(j=0; jnAction; j++){ if( p->aAction[j].lookahead==j+p->mnLookahead-i ) break; } if( j==p->nAction ){ break; /* Fits in empty slots */ } }else if( p->aAction[i].lookahead==p->mnLookahead ){ if( p->aAction[i].action!=p->mnAction ) continue; for(j=0; jnLookahead; j++){ k = p->aLookahead[j].lookahead - p->mnLookahead + i; if( k<0 || k>=p->nAction ) break; if( p->aLookahead[j].lookahead!=p->aAction[k].lookahead ) break; if( p->aLookahead[j].action!=p->aAction[k].action ) break; } if( jnLookahead ) continue; n = 0; for(j=0; jnAction; j++){ if( p->aAction[j].lookahead<0 ) continue; if( p->aAction[j].lookahead==j+p->mnLookahead-i ) n++; } if( n==p->nLookahead ){ break; /* Same as a prior transaction set */ } } } /* Insert transaction set at index i. */ for(j=0; jnLookahead; j++){ k = p->aLookahead[j].lookahead - p->mnLookahead + i; p->aAction[k] = p->aLookahead[j]; if( k>=p->nAction ) p->nAction = k+1; } p->nLookahead = 0; /* Return the offset that is added to the lookahead in order to get the ** index into yy_action of the action */ return i - p->mnLookahead; } /********************** From the file "build.c" *****************************/ /* ** Routines to construction the finite state machine for the LEMON ** parser generator. */ /* Find a precedence symbol of every rule in the grammar. ** ** Those rules which have a precedence symbol coded in the input ** grammar using the "[symbol]" construct will already have the ** rp->precsym field filled. Other rules take as their precedence ** symbol the first RHS symbol with a defined precedence. If there ** are not RHS symbols with a defined precedence, the precedence ** symbol field is left blank. */ void FindRulePrecedences(xp) struct lemon *xp; { struct rule *rp; for(rp=xp->rule; rp; rp=rp->next){ if( rp->precsym==0 ){ int i, j; for(i=0; inrhs && rp->precsym==0; i++){ struct symbol *sp = rp->rhs[i]; if( sp->type==MULTITERMINAL ){ for(j=0; jnsubsym; j++){ if( sp->subsym[j]->prec>=0 ){ rp->precsym = sp->subsym[j]; break; } } }else if( sp->prec>=0 ){ rp->precsym = rp->rhs[i]; } } } } return; } /* Find all nonterminals which will generate the empty string. ** Then go back and compute the first sets of every nonterminal. ** The first set is the set of all terminal symbols which can begin ** a string generated by that nonterminal. */ void FindFirstSets(lemp) struct lemon *lemp; { int i, j; struct rule *rp; int progress; for(i=0; insymbol; i++){ lemp->symbols[i]->lambda = LEMON_FALSE; } for(i=lemp->nterminal; insymbol; i++){ lemp->symbols[i]->firstset = SetNew(); } /* First compute all lambdas */ do{ progress = 0; for(rp=lemp->rule; rp; rp=rp->next){ if( rp->lhs->lambda ) continue; for(i=0; inrhs; i++){ struct symbol *sp = rp->rhs[i]; if( sp->type!=TERMINAL || sp->lambda==LEMON_FALSE ) break; } if( i==rp->nrhs ){ rp->lhs->lambda = LEMON_TRUE; progress = 1; } } }while( progress ); /* Now compute all first sets */ do{ struct symbol *s1, *s2; progress = 0; for(rp=lemp->rule; rp; rp=rp->next){ s1 = rp->lhs; for(i=0; inrhs; i++){ s2 = rp->rhs[i]; if( s2->type==TERMINAL ){ progress += SetAdd(s1->firstset,s2->index); break; }else if( s2->type==MULTITERMINAL ){ for(j=0; jnsubsym; j++){ progress += SetAdd(s1->firstset,s2->subsym[j]->index); } break; }else if( s1==s2 ){ if( s1->lambda==LEMON_FALSE ) break; }else{ progress += SetUnion(s1->firstset,s2->firstset); if( s2->lambda==LEMON_FALSE ) break; } } } }while( progress ); return; } /* Compute all LR(0) states for the grammar. Links ** are added to between some states so that the LR(1) follow sets ** can be computed later. */ PRIVATE struct state *getstate(/* struct lemon * */); /* forward reference */ void FindStates(lemp) struct lemon *lemp; { struct symbol *sp; struct rule *rp; Configlist_init(); /* Find the start symbol */ if( lemp->start ){ sp = Symbol_find(lemp->start); if( sp==0 ){ ErrorMsg(lemp->filename,0, "The specified start symbol \"%s\" is not \ in a nonterminal of the grammar. \"%s\" will be used as the start \ symbol instead.",lemp->start,lemp->rule->lhs->name); lemp->errorcnt++; sp = lemp->rule->lhs; } }else{ sp = lemp->rule->lhs; } /* Make sure the start symbol doesn't occur on the right-hand side of ** any rule. Report an error if it does. (YACC would generate a new ** start symbol in this case.) */ for(rp=lemp->rule; rp; rp=rp->next){ int i; for(i=0; inrhs; i++){ if( rp->rhs[i]==sp ){ /* FIX ME: Deal with multiterminals */ ErrorMsg(lemp->filename,0, "The start symbol \"%s\" occurs on the \ right-hand side of a rule. This will result in a parser which \ does not work properly.",sp->name); lemp->errorcnt++; } } } /* The basis configuration set for the first state ** is all rules which have the start symbol as their ** left-hand side */ for(rp=sp->rule; rp; rp=rp->nextlhs){ struct config *newcfp; rp->lhsStart = 1; newcfp = Configlist_addbasis(rp,0); SetAdd(newcfp->fws,0); } /* Compute the first state. All other states will be ** computed automatically during the computation of the first one. ** The returned pointer to the first state is not used. */ (void)getstate(lemp); return; } /* Return a pointer to a state which is described by the configuration ** list which has been built from calls to Configlist_add. */ PRIVATE void buildshifts(/* struct lemon *, struct state * */); /* Forwd ref */ PRIVATE struct state *getstate(lemp) struct lemon *lemp; { struct config *cfp, *bp; struct state *stp; /* Extract the sorted basis of the new state. The basis was constructed ** by prior calls to "Configlist_addbasis()". */ Configlist_sortbasis(); bp = Configlist_basis(); /* Get a state with the same basis */ stp = State_find(bp); if( stp ){ /* A state with the same basis already exists! Copy all the follow-set ** propagation links from the state under construction into the ** preexisting state, then return a pointer to the preexisting state */ struct config *x, *y; for(x=bp, y=stp->bp; x && y; x=x->bp, y=y->bp){ Plink_copy(&y->bplp,x->bplp); Plink_delete(x->fplp); x->fplp = x->bplp = 0; } cfp = Configlist_return(); Configlist_eat(cfp); }else{ /* This really is a new state. Construct all the details */ Configlist_closure(lemp); /* Compute the configuration closure */ Configlist_sort(); /* Sort the configuration closure */ cfp = Configlist_return(); /* Get a pointer to the config list */ stp = State_new(); /* A new state structure */ MemoryCheck(stp); stp->bp = bp; /* Remember the configuration basis */ stp->cfp = cfp; /* Remember the configuration closure */ stp->statenum = lemp->nstate++; /* Every state gets a sequence number */ stp->ap = 0; /* No actions, yet. */ State_insert(stp,stp->bp); /* Add to the state table */ buildshifts(lemp,stp); /* Recursively compute successor states */ } return stp; } /* ** Return true if two symbols are the same. */ int same_symbol(a,b) struct symbol *a; struct symbol *b; { int i; if( a==b ) return 1; if( a->type!=MULTITERMINAL ) return 0; if( b->type!=MULTITERMINAL ) return 0; if( a->nsubsym!=b->nsubsym ) return 0; for(i=0; insubsym; i++){ if( a->subsym[i]!=b->subsym[i] ) return 0; } return 1; } /* Construct all successor states to the given state. A "successor" ** state is any state which can be reached by a shift action. */ PRIVATE void buildshifts(lemp,stp) struct lemon *lemp; struct state *stp; /* The state from which successors are computed */ { struct config *cfp; /* For looping thru the config closure of "stp" */ struct config *bcfp; /* For the inner loop on config closure of "stp" */ struct config *new; /* */ struct symbol *sp; /* Symbol following the dot in configuration "cfp" */ struct symbol *bsp; /* Symbol following the dot in configuration "bcfp" */ struct state *newstp; /* A pointer to a successor state */ /* Each configuration becomes complete after it contibutes to a successor ** state. Initially, all configurations are incomplete */ for(cfp=stp->cfp; cfp; cfp=cfp->next) cfp->status = INCOMPLETE; /* Loop through all configurations of the state "stp" */ for(cfp=stp->cfp; cfp; cfp=cfp->next){ if( cfp->status==COMPLETE ) continue; /* Already used by inner loop */ if( cfp->dot>=cfp->rp->nrhs ) continue; /* Can't shift this config */ Configlist_reset(); /* Reset the new config set */ sp = cfp->rp->rhs[cfp->dot]; /* Symbol after the dot */ /* For every configuration in the state "stp" which has the symbol "sp" ** following its dot, add the same configuration to the basis set under ** construction but with the dot shifted one symbol to the right. */ for(bcfp=cfp; bcfp; bcfp=bcfp->next){ if( bcfp->status==COMPLETE ) continue; /* Already used */ if( bcfp->dot>=bcfp->rp->nrhs ) continue; /* Can't shift this one */ bsp = bcfp->rp->rhs[bcfp->dot]; /* Get symbol after dot */ if( !same_symbol(bsp,sp) ) continue; /* Must be same as for "cfp" */ bcfp->status = COMPLETE; /* Mark this config as used */ new = Configlist_addbasis(bcfp->rp,bcfp->dot+1); Plink_add(&new->bplp,bcfp); } /* Get a pointer to the state described by the basis configuration set ** constructed in the preceding loop */ newstp = getstate(lemp); /* The state "newstp" is reached from the state "stp" by a shift action ** on the symbol "sp" */ if( sp->type==MULTITERMINAL ){ int i; for(i=0; insubsym; i++){ Action_add(&stp->ap,SHIFT,sp->subsym[i],(char*)newstp); } }else{ Action_add(&stp->ap,SHIFT,sp,(char *)newstp); } } } /* ** Construct the propagation links */ void FindLinks(lemp) struct lemon *lemp; { int i; struct config *cfp, *other; struct state *stp; struct plink *plp; /* Housekeeping detail: ** Add to every propagate link a pointer back to the state to ** which the link is attached. */ for(i=0; instate; i++){ stp = lemp->sorted[i]; for(cfp=stp->cfp; cfp; cfp=cfp->next){ cfp->stp = stp; } } /* Convert all backlinks into forward links. Only the forward ** links are used in the follow-set computation. */ for(i=0; instate; i++){ stp = lemp->sorted[i]; for(cfp=stp->cfp; cfp; cfp=cfp->next){ for(plp=cfp->bplp; plp; plp=plp->next){ other = plp->cfp; Plink_add(&other->fplp,cfp); } } } } /* Compute all followsets. ** ** A followset is the set of all symbols which can come immediately ** after a configuration. */ void FindFollowSets(lemp) struct lemon *lemp; { int i; struct config *cfp; struct plink *plp; int progress; int change; for(i=0; instate; i++){ for(cfp=lemp->sorted[i]->cfp; cfp; cfp=cfp->next){ cfp->status = INCOMPLETE; } } do{ progress = 0; for(i=0; instate; i++){ for(cfp=lemp->sorted[i]->cfp; cfp; cfp=cfp->next){ if( cfp->status==COMPLETE ) continue; for(plp=cfp->fplp; plp; plp=plp->next){ change = SetUnion(plp->cfp->fws,cfp->fws); if( change ){ plp->cfp->status = INCOMPLETE; progress = 1; } } cfp->status = COMPLETE; } } }while( progress ); } static int resolve_conflict(); /* Compute the reduce actions, and resolve conflicts. */ void FindActions(lemp) struct lemon *lemp; { int i,j; struct config *cfp; struct state *stp; struct symbol *sp; struct rule *rp; /* Add all of the reduce actions ** A reduce action is added for each element of the followset of ** a configuration which has its dot at the extreme right. */ for(i=0; instate; i++){ /* Loop over all states */ stp = lemp->sorted[i]; for(cfp=stp->cfp; cfp; cfp=cfp->next){ /* Loop over all configurations */ if( cfp->rp->nrhs==cfp->dot ){ /* Is dot at extreme right? */ for(j=0; jnterminal; j++){ if( SetFind(cfp->fws,j) ){ /* Add a reduce action to the state "stp" which will reduce by the ** rule "cfp->rp" if the lookahead symbol is "lemp->symbols[j]" */ Action_add(&stp->ap,REDUCE,lemp->symbols[j],(char *)cfp->rp); } } } } } /* Add the accepting token */ if( lemp->start ){ sp = Symbol_find(lemp->start); if( sp==0 ) sp = lemp->rule->lhs; }else{ sp = lemp->rule->lhs; } /* Add to the first state (which is always the starting state of the ** finite state machine) an action to ACCEPT if the lookahead is the ** start nonterminal. */ Action_add(&lemp->sorted[0]->ap,ACCEPT,sp,0); /* Resolve conflicts */ for(i=0; instate; i++){ struct action *ap, *nap; struct state *stp; stp = lemp->sorted[i]; /* assert( stp->ap ); */ stp->ap = Action_sort(stp->ap); for(ap=stp->ap; ap && ap->next; ap=ap->next){ for(nap=ap->next; nap && nap->sp==ap->sp; nap=nap->next){ /* The two actions "ap" and "nap" have the same lookahead. ** Figure out which one should be used */ lemp->nconflict += resolve_conflict(ap,nap,lemp->errsym); } } } /* Report an error for each rule that can never be reduced. */ for(rp=lemp->rule; rp; rp=rp->next) rp->canReduce = LEMON_FALSE; for(i=0; instate; i++){ struct action *ap; for(ap=lemp->sorted[i]->ap; ap; ap=ap->next){ if( ap->type==REDUCE ) ap->x.rp->canReduce = LEMON_TRUE; } } for(rp=lemp->rule; rp; rp=rp->next){ if( rp->canReduce ) continue; ErrorMsg(lemp->filename,rp->ruleline,"This rule can not be reduced.\n"); lemp->errorcnt++; } } /* Resolve a conflict between the two given actions. If the ** conflict can't be resolved, return non-zero. ** ** NO LONGER TRUE: ** To resolve a conflict, first look to see if either action ** is on an error rule. In that case, take the action which ** is not associated with the error rule. If neither or both ** actions are associated with an error rule, then try to ** use precedence to resolve the conflict. ** ** If either action is a SHIFT, then it must be apx. This ** function won't work if apx->type==REDUCE and apy->type==SHIFT. */ static int resolve_conflict(apx,apy,errsym) struct action *apx; struct action *apy; struct symbol *errsym; /* The error symbol (if defined. NULL otherwise) */ { struct symbol *spx, *spy; int errcnt = 0; assert( apx->sp==apy->sp ); /* Otherwise there would be no conflict */ if( apx->type==SHIFT && apy->type==SHIFT ){ apy->type = SSCONFLICT; errcnt++; } if( apx->type==SHIFT && apy->type==REDUCE ){ spx = apx->sp; spy = apy->x.rp->precsym; if( spy==0 || spx->prec<0 || spy->prec<0 ){ /* Not enough precedence information. */ apy->type = SRCONFLICT; errcnt++; }else if( spx->prec>spy->prec ){ /* Lower precedence wins */ apy->type = RD_RESOLVED; }else if( spx->precprec ){ apx->type = SH_RESOLVED; }else if( spx->prec==spy->prec && spx->assoc==RIGHT ){ /* Use operator */ apy->type = RD_RESOLVED; /* associativity */ }else if( spx->prec==spy->prec && spx->assoc==LEFT ){ /* to break tie */ apx->type = SH_RESOLVED; }else{ assert( spx->prec==spy->prec && spx->assoc==NONE ); apy->type = SRCONFLICT; errcnt++; } }else if( apx->type==REDUCE && apy->type==REDUCE ){ spx = apx->x.rp->precsym; spy = apy->x.rp->precsym; if( spx==0 || spy==0 || spx->prec<0 || spy->prec<0 || spx->prec==spy->prec ){ apy->type = RRCONFLICT; errcnt++; }else if( spx->prec>spy->prec ){ apy->type = RD_RESOLVED; }else if( spx->precprec ){ apx->type = RD_RESOLVED; } }else{ assert( apx->type==SH_RESOLVED || apx->type==RD_RESOLVED || apx->type==SSCONFLICT || apx->type==SRCONFLICT || apx->type==RRCONFLICT || apy->type==SH_RESOLVED || apy->type==RD_RESOLVED || apy->type==SSCONFLICT || apy->type==SRCONFLICT || apy->type==RRCONFLICT ); /* The REDUCE/SHIFT case cannot happen because SHIFTs come before ** REDUCEs on the list. If we reach this point it must be because ** the parser conflict had already been resolved. */ } return errcnt; } /********************* From the file "configlist.c" *************************/ /* ** Routines to processing a configuration list and building a state ** in the LEMON parser generator. */ static struct config *freelist = 0; /* List of free configurations */ static struct config *current = 0; /* Top of list of configurations */ static struct config **currentend = 0; /* Last on list of configs */ static struct config *basis = 0; /* Top of list of basis configs */ static struct config **basisend = 0; /* End of list of basis configs */ /* Return a pointer to a new configuration */ PRIVATE struct config *newconfig(){ struct config *new; if( freelist==0 ){ int i; int amt = 3; freelist = (struct config *)calloc( amt, sizeof(struct config) ); if( freelist==0 ){ fprintf(stderr,"Unable to allocate memory for a new configuration."); exit(1); } for(i=0; inext; return new; } /* The configuration "old" is no longer used */ PRIVATE void deleteconfig(old) struct config *old; { old->next = freelist; freelist = old; } /* Initialized the configuration list builder */ void Configlist_init(){ current = 0; currentend = ¤t; basis = 0; basisend = &basis; Configtable_init(); return; } /* Initialized the configuration list builder */ void Configlist_reset(){ current = 0; currentend = ¤t; basis = 0; basisend = &basis; Configtable_clear(0); return; } /* Add another configuration to the configuration list */ struct config *Configlist_add(rp,dot) struct rule *rp; /* The rule */ int dot; /* Index into the RHS of the rule where the dot goes */ { struct config *cfp, model; assert( currentend!=0 ); model.rp = rp; model.dot = dot; cfp = Configtable_find(&model); if( cfp==0 ){ cfp = newconfig(); cfp->rp = rp; cfp->dot = dot; cfp->fws = SetNew(); cfp->stp = 0; cfp->fplp = cfp->bplp = 0; cfp->next = 0; cfp->bp = 0; *currentend = cfp; currentend = &cfp->next; Configtable_insert(cfp); } return cfp; } /* Add a basis configuration to the configuration list */ struct config *Configlist_addbasis(rp,dot) struct rule *rp; int dot; { struct config *cfp, model; assert( basisend!=0 ); assert( currentend!=0 ); model.rp = rp; model.dot = dot; cfp = Configtable_find(&model); if( cfp==0 ){ cfp = newconfig(); cfp->rp = rp; cfp->dot = dot; cfp->fws = SetNew(); cfp->stp = 0; cfp->fplp = cfp->bplp = 0; cfp->next = 0; cfp->bp = 0; *currentend = cfp; currentend = &cfp->next; *basisend = cfp; basisend = &cfp->bp; Configtable_insert(cfp); } return cfp; } /* Compute the closure of the configuration list */ void Configlist_closure(lemp) struct lemon *lemp; { struct config *cfp, *newcfp; struct rule *rp, *newrp; struct symbol *sp, *xsp; int i, dot; assert( currentend!=0 ); for(cfp=current; cfp; cfp=cfp->next){ rp = cfp->rp; dot = cfp->dot; if( dot>=rp->nrhs ) continue; sp = rp->rhs[dot]; if( sp->type==NONTERMINAL ){ if( sp->rule==0 && sp!=lemp->errsym ){ ErrorMsg(lemp->filename,rp->line,"Nonterminal \"%s\" has no rules.", sp->name); lemp->errorcnt++; } for(newrp=sp->rule; newrp; newrp=newrp->nextlhs){ newcfp = Configlist_add(newrp,0); for(i=dot+1; inrhs; i++){ xsp = rp->rhs[i]; if( xsp->type==TERMINAL ){ SetAdd(newcfp->fws,xsp->index); break; }else if( xsp->type==MULTITERMINAL ){ int k; for(k=0; knsubsym; k++){ SetAdd(newcfp->fws, xsp->subsym[k]->index); } break; }else{ SetUnion(newcfp->fws,xsp->firstset); if( xsp->lambda==LEMON_FALSE ) break; } } if( i==rp->nrhs ) Plink_add(&cfp->fplp,newcfp); } } } return; } /* Sort the configuration list */ void Configlist_sort(){ current = (struct config *)msort((char *)current,(char **)&(current->next),Configcmp); currentend = 0; return; } /* Sort the basis configuration list */ void Configlist_sortbasis(){ basis = (struct config *)msort((char *)current,(char **)&(current->bp),Configcmp); basisend = 0; return; } /* Return a pointer to the head of the configuration list and ** reset the list */ struct config *Configlist_return(){ struct config *old; old = current; current = 0; currentend = 0; return old; } /* Return a pointer to the head of the configuration list and ** reset the list */ struct config *Configlist_basis(){ struct config *old; old = basis; basis = 0; basisend = 0; return old; } /* Free all elements of the given configuration list */ void Configlist_eat(cfp) struct config *cfp; { struct config *nextcfp; for(; cfp; cfp=nextcfp){ nextcfp = cfp->next; assert( cfp->fplp==0 ); assert( cfp->bplp==0 ); if( cfp->fws ) SetFree(cfp->fws); deleteconfig(cfp); } return; } /***************** From the file "error.c" *********************************/ /* ** Code for printing error message. */ /* Find a good place to break "msg" so that its length is at least "min" ** but no more than "max". Make the point as close to max as possible. */ static int findbreak(msg,min,max) char *msg; int min; int max; { int i,spot; char c; for(i=spot=min; i<=max; i++){ c = msg[i]; if( c=='\t' ) msg[i] = ' '; if( c=='\n' ){ msg[i] = ' '; spot = i; break; } if( c==0 ){ spot = i; break; } if( c=='-' && i0 ){ sprintf(prefix,"%.*s:%d: ",PREFIXLIMIT-10,filename,lineno); }else{ sprintf(prefix,"%.*s: ",PREFIXLIMIT-10,filename); } prefixsize = lemonStrlen(prefix); availablewidth = LINEWIDTH - prefixsize; /* Generate the error message */ vsprintf(errmsg,format,ap); va_end(ap); errmsgsize = lemonStrlen(errmsg); /* Remove trailing '\n's from the error message. */ while( errmsgsize>0 && errmsg[errmsgsize-1]=='\n' ){ errmsg[--errmsgsize] = 0; } /* Print the error message */ base = 0; while( errmsg[base]!=0 ){ end = restart = findbreak(&errmsg[base],0,availablewidth); restart += base; while( errmsg[restart]==' ' ) restart++; fprintf(stdout,"%s%.*s\n",prefix,end,&errmsg[base]); base = restart; } } /**************** From the file "main.c" ************************************/ /* ** Main program file for the LEMON parser generator. */ /* Report an out-of-memory condition and abort. This function ** is used mostly by the "MemoryCheck" macro in struct.h */ void memory_error(){ fprintf(stderr,"Out of memory. Aborting...\n"); exit(1); } static int nDefine = 0; /* Number of -D options on the command line */ static char **azDefine = 0; /* Name of the -D macros */ /* This routine is called with the argument to each -D command-line option. ** Add the macro defined to the azDefine array. */ static void handle_D_option(char *z){ char **paz; nDefine++; azDefine = realloc(azDefine, sizeof(azDefine[0])*nDefine); if( azDefine==0 ){ fprintf(stderr,"out of memory\n"); exit(1); } paz = &azDefine[nDefine-1]; *paz = malloc( lemonStrlen(z)+1 ); if( *paz==0 ){ fprintf(stderr,"out of memory\n"); exit(1); } strcpy(*paz, z); for(z=*paz; *z && *z!='='; z++){} *z = 0; } /* The main program. Parse the command line and do it... */ int main(argc,argv) int argc; char **argv; { static int version = 0; static int rpflag = 0; static int basisflag = 0; static int compress = 0; static int quiet = 0; static int statistics = 0; static int mhflag = 0; static int nolinenosflag = 0; static struct s_options options[] = { {OPT_FLAG, "b", (char*)&basisflag, "Print only the basis in report."}, {OPT_FLAG, "c", (char*)&compress, "Don't compress the action table."}, {OPT_FSTR, "D", (char*)handle_D_option, "Define an %ifdef macro."}, {OPT_FLAG, "g", (char*)&rpflag, "Print grammar without actions."}, {OPT_FLAG, "m", (char*)&mhflag, "Output a makeheaders compatible file."}, {OPT_FLAG, "l", (char*)&nolinenosflag, "Do not print #line statements."}, {OPT_FLAG, "q", (char*)&quiet, "(Quiet) Don't print the report file."}, {OPT_FLAG, "s", (char*)&statistics, "Print parser stats to standard output."}, {OPT_FLAG, "x", (char*)&version, "Print the version number."}, {OPT_FLAG,0,0,0} }; int i; struct lemon lem; OptInit(argv,options,stderr); if( version ){ printf("Lemon version 1.0\n"); exit(0); } if( OptNArgs()!=1 ){ fprintf(stderr,"Exactly one filename argument is required.\n"); exit(1); } memset(&lem, 0, sizeof(lem)); lem.errorcnt = 0; /* Initialize the machine */ Strsafe_init(); Symbol_init(); State_init(); lem.argv0 = argv[0]; lem.filename = OptArg(0); lem.basisflag = basisflag; lem.nolinenosflag = nolinenosflag; Symbol_new("$"); lem.errsym = Symbol_new("error"); lem.errsym->useCnt = 0; /* Parse the input file */ Parse(&lem); if( lem.errorcnt ) exit(lem.errorcnt); if( lem.nrule==0 ){ fprintf(stderr,"Empty grammar.\n"); exit(1); } /* Count and index the symbols of the grammar */ lem.nsymbol = Symbol_count(); Symbol_new("{default}"); lem.symbols = Symbol_arrayof(); for(i=0; i<=lem.nsymbol; i++) lem.symbols[i]->index = i; qsort(lem.symbols,lem.nsymbol+1,sizeof(struct symbol*), (int(*)())Symbolcmpp); for(i=0; i<=lem.nsymbol; i++) lem.symbols[i]->index = i; for(i=1; isupper(lem.symbols[i]->name[0]); i++); lem.nterminal = i; /* Generate a reprint of the grammar, if requested on the command line */ if( rpflag ){ Reprint(&lem); }else{ /* Initialize the size for all follow and first sets */ SetSize(lem.nterminal+1); /* Find the precedence for every production rule (that has one) */ FindRulePrecedences(&lem); /* Compute the lambda-nonterminals and the first-sets for every ** nonterminal */ FindFirstSets(&lem); /* Compute all LR(0) states. Also record follow-set propagation ** links so that the follow-set can be computed later */ lem.nstate = 0; FindStates(&lem); lem.sorted = State_arrayof(); /* Tie up loose ends on the propagation links */ FindLinks(&lem); /* Compute the follow set of every reducible configuration */ FindFollowSets(&lem); /* Compute the action tables */ FindActions(&lem); /* Compress the action tables */ if( compress==0 ) CompressTables(&lem); /* Reorder and renumber the states so that states with fewer choices ** occur at the end. */ ResortStates(&lem); /* Generate a report of the parser generated. (the "y.output" file) */ if( !quiet ) ReportOutput(&lem); /* Generate the source code for the parser */ ReportTable(&lem, mhflag); /* Produce a header file for use by the scanner. (This step is ** omitted if the "-m" option is used because makeheaders will ** generate the file for us.) */ if( !mhflag ) ReportHeader(&lem); } if( statistics ){ printf("Parser statistics: %d terminals, %d nonterminals, %d rules\n", lem.nterminal, lem.nsymbol - lem.nterminal, lem.nrule); printf(" %d states, %d parser table entries, %d conflicts\n", lem.nstate, lem.tablesize, lem.nconflict); } if( lem.nconflict ){ fprintf(stderr,"%d parsing conflicts.\n",lem.nconflict); } exit(lem.errorcnt + lem.nconflict); return (lem.errorcnt + lem.nconflict); } /******************** From the file "msort.c" *******************************/ /* ** A generic merge-sort program. ** ** USAGE: ** Let "ptr" be a pointer to some structure which is at the head of ** a null-terminated list. Then to sort the list call: ** ** ptr = msort(ptr,&(ptr->next),cmpfnc); ** ** In the above, "cmpfnc" is a pointer to a function which compares ** two instances of the structure and returns an integer, as in ** strcmp. The second argument is a pointer to the pointer to the ** second element of the linked list. This address is used to compute ** the offset to the "next" field within the structure. The offset to ** the "next" field must be constant for all structures in the list. ** ** The function returns a new pointer which is the head of the list ** after sorting. ** ** ALGORITHM: ** Merge-sort. */ /* ** Return a pointer to the next structure in the linked list. */ #define NEXT(A) (*(char**)(((unsigned long)A)+offset)) /* ** Inputs: ** a: A sorted, null-terminated linked list. (May be null). ** b: A sorted, null-terminated linked list. (May be null). ** cmp: A pointer to the comparison function. ** offset: Offset in the structure to the "next" field. ** ** Return Value: ** A pointer to the head of a sorted list containing the elements ** of both a and b. ** ** Side effects: ** The "next" pointers for elements in the lists a and b are ** changed. */ static char *merge( char *a, char *b, int (*cmp)(const char*,const char*), int offset ){ char *ptr, *head; if( a==0 ){ head = b; }else if( b==0 ){ head = a; }else{ if( (*cmp)(a,b)<0 ){ ptr = a; a = NEXT(a); }else{ ptr = b; b = NEXT(b); } head = ptr; while( a && b ){ if( (*cmp)(a,b)<0 ){ NEXT(ptr) = a; ptr = a; a = NEXT(a); }else{ NEXT(ptr) = b; ptr = b; b = NEXT(b); } } if( a ) NEXT(ptr) = a; else NEXT(ptr) = b; } return head; } /* ** Inputs: ** list: Pointer to a singly-linked list of structures. ** next: Pointer to pointer to the second element of the list. ** cmp: A comparison function. ** ** Return Value: ** A pointer to the head of a sorted list containing the elements ** orginally in list. ** ** Side effects: ** The "next" pointers for elements in list are changed. */ #define LISTSIZE 30 static char *msort( char *list, char **next, int (*cmp)(const char*,const char*) ){ unsigned long offset; char *ep; char *set[LISTSIZE]; int i; offset = (unsigned long)next - (unsigned long)list; for(i=0; istate = WAITING_FOR_DECL_KEYWORD; }else if( islower(x[0]) ){ psp->lhs = Symbol_new(x); psp->nrhs = 0; psp->lhsalias = 0; psp->state = WAITING_FOR_ARROW; }else if( x[0]=='{' ){ if( psp->prevrule==0 ){ ErrorMsg(psp->filename,psp->tokenlineno, "There is no prior rule opon which to attach the code \ fragment which begins on this line."); psp->errorcnt++; }else if( psp->prevrule->code!=0 ){ ErrorMsg(psp->filename,psp->tokenlineno, "Code fragment beginning on this line is not the first \ to follow the previous rule."); psp->errorcnt++; }else{ psp->prevrule->line = psp->tokenlineno; psp->prevrule->code = &x[1]; } }else if( x[0]=='[' ){ psp->state = PRECEDENCE_MARK_1; }else{ ErrorMsg(psp->filename,psp->tokenlineno, "Token \"%s\" should be either \"%%\" or a nonterminal name.", x); psp->errorcnt++; } break; case PRECEDENCE_MARK_1: if( !isupper(x[0]) ){ ErrorMsg(psp->filename,psp->tokenlineno, "The precedence symbol must be a terminal."); psp->errorcnt++; }else if( psp->prevrule==0 ){ ErrorMsg(psp->filename,psp->tokenlineno, "There is no prior rule to assign precedence \"[%s]\".",x); psp->errorcnt++; }else if( psp->prevrule->precsym!=0 ){ ErrorMsg(psp->filename,psp->tokenlineno, "Precedence mark on this line is not the first \ to follow the previous rule."); psp->errorcnt++; }else{ psp->prevrule->precsym = Symbol_new(x); } psp->state = PRECEDENCE_MARK_2; break; case PRECEDENCE_MARK_2: if( x[0]!=']' ){ ErrorMsg(psp->filename,psp->tokenlineno, "Missing \"]\" on precedence mark."); psp->errorcnt++; } psp->state = WAITING_FOR_DECL_OR_RULE; break; case WAITING_FOR_ARROW: if( x[0]==':' && x[1]==':' && x[2]=='=' ){ psp->state = IN_RHS; }else if( x[0]=='(' ){ psp->state = LHS_ALIAS_1; }else{ ErrorMsg(psp->filename,psp->tokenlineno, "Expected to see a \":\" following the LHS symbol \"%s\".", psp->lhs->name); psp->errorcnt++; psp->state = RESYNC_AFTER_RULE_ERROR; } break; case LHS_ALIAS_1: if( isalpha(x[0]) ){ psp->lhsalias = x; psp->state = LHS_ALIAS_2; }else{ ErrorMsg(psp->filename,psp->tokenlineno, "\"%s\" is not a valid alias for the LHS \"%s\"\n", x,psp->lhs->name); psp->errorcnt++; psp->state = RESYNC_AFTER_RULE_ERROR; } break; case LHS_ALIAS_2: if( x[0]==')' ){ psp->state = LHS_ALIAS_3; }else{ ErrorMsg(psp->filename,psp->tokenlineno, "Missing \")\" following LHS alias name \"%s\".",psp->lhsalias); psp->errorcnt++; psp->state = RESYNC_AFTER_RULE_ERROR; } break; case LHS_ALIAS_3: if( x[0]==':' && x[1]==':' && x[2]=='=' ){ psp->state = IN_RHS; }else{ ErrorMsg(psp->filename,psp->tokenlineno, "Missing \"->\" following: \"%s(%s)\".", psp->lhs->name,psp->lhsalias); psp->errorcnt++; psp->state = RESYNC_AFTER_RULE_ERROR; } break; case IN_RHS: if( x[0]=='.' ){ struct rule *rp; rp = (struct rule *)calloc( sizeof(struct rule) + sizeof(struct symbol*)*psp->nrhs + sizeof(char*)*psp->nrhs, 1); if( rp==0 ){ ErrorMsg(psp->filename,psp->tokenlineno, "Can't allocate enough memory for this rule."); psp->errorcnt++; psp->prevrule = 0; }else{ int i; rp->ruleline = psp->tokenlineno; rp->rhs = (struct symbol**)&rp[1]; rp->rhsalias = (char**)&(rp->rhs[psp->nrhs]); for(i=0; inrhs; i++){ rp->rhs[i] = psp->rhs[i]; rp->rhsalias[i] = psp->alias[i]; } rp->lhs = psp->lhs; rp->lhsalias = psp->lhsalias; rp->nrhs = psp->nrhs; rp->code = 0; rp->precsym = 0; rp->index = psp->gp->nrule++; rp->nextlhs = rp->lhs->rule; rp->lhs->rule = rp; rp->next = 0; if( psp->firstrule==0 ){ psp->firstrule = psp->lastrule = rp; }else{ psp->lastrule->next = rp; psp->lastrule = rp; } psp->prevrule = rp; } psp->state = WAITING_FOR_DECL_OR_RULE; }else if( isalpha(x[0]) ){ if( psp->nrhs>=MAXRHS ){ ErrorMsg(psp->filename,psp->tokenlineno, "Too many symbols on RHS of rule beginning at \"%s\".", x); psp->errorcnt++; psp->state = RESYNC_AFTER_RULE_ERROR; }else{ psp->rhs[psp->nrhs] = Symbol_new(x); psp->alias[psp->nrhs] = 0; psp->nrhs++; } }else if( (x[0]=='|' || x[0]=='/') && psp->nrhs>0 ){ struct symbol *msp = psp->rhs[psp->nrhs-1]; if( msp->type!=MULTITERMINAL ){ struct symbol *origsp = msp; msp = calloc(1,sizeof(*msp)); memset(msp, 0, sizeof(*msp)); msp->type = MULTITERMINAL; msp->nsubsym = 1; msp->subsym = calloc(1,sizeof(struct symbol*)); msp->subsym[0] = origsp; msp->name = origsp->name; psp->rhs[psp->nrhs-1] = msp; } msp->nsubsym++; msp->subsym = realloc(msp->subsym, sizeof(struct symbol*)*msp->nsubsym); msp->subsym[msp->nsubsym-1] = Symbol_new(&x[1]); if( islower(x[1]) || islower(msp->subsym[0]->name[0]) ){ ErrorMsg(psp->filename,psp->tokenlineno, "Cannot form a compound containing a non-terminal"); psp->errorcnt++; } }else if( x[0]=='(' && psp->nrhs>0 ){ psp->state = RHS_ALIAS_1; }else{ ErrorMsg(psp->filename,psp->tokenlineno, "Illegal character on RHS of rule: \"%s\".",x); psp->errorcnt++; psp->state = RESYNC_AFTER_RULE_ERROR; } break; case RHS_ALIAS_1: if( isalpha(x[0]) ){ psp->alias[psp->nrhs-1] = x; psp->state = RHS_ALIAS_2; }else{ ErrorMsg(psp->filename,psp->tokenlineno, "\"%s\" is not a valid alias for the RHS symbol \"%s\"\n", x,psp->rhs[psp->nrhs-1]->name); psp->errorcnt++; psp->state = RESYNC_AFTER_RULE_ERROR; } break; case RHS_ALIAS_2: if( x[0]==')' ){ psp->state = IN_RHS; }else{ ErrorMsg(psp->filename,psp->tokenlineno, "Missing \")\" following LHS alias name \"%s\".",psp->lhsalias); psp->errorcnt++; psp->state = RESYNC_AFTER_RULE_ERROR; } break; case WAITING_FOR_DECL_KEYWORD: if( isalpha(x[0]) ){ psp->declkeyword = x; psp->declargslot = 0; psp->decllinenoslot = 0; psp->insertLineMacro = 1; psp->state = WAITING_FOR_DECL_ARG; if( strcmp(x,"name")==0 ){ psp->declargslot = &(psp->gp->name); psp->insertLineMacro = 0; }else if( strcmp(x,"include")==0 ){ psp->declargslot = &(psp->gp->include); }else if( strcmp(x,"code")==0 ){ psp->declargslot = &(psp->gp->extracode); }else if( strcmp(x,"token_destructor")==0 ){ psp->declargslot = &psp->gp->tokendest; }else if( strcmp(x,"default_destructor")==0 ){ psp->declargslot = &psp->gp->vardest; }else if( strcmp(x,"token_prefix")==0 ){ psp->declargslot = &psp->gp->tokenprefix; psp->insertLineMacro = 0; }else if( strcmp(x,"syntax_error")==0 ){ psp->declargslot = &(psp->gp->error); }else if( strcmp(x,"parse_accept")==0 ){ psp->declargslot = &(psp->gp->accept); }else if( strcmp(x,"parse_failure")==0 ){ psp->declargslot = &(psp->gp->failure); }else if( strcmp(x,"stack_overflow")==0 ){ psp->declargslot = &(psp->gp->overflow); }else if( strcmp(x,"extra_argument")==0 ){ psp->declargslot = &(psp->gp->arg); psp->insertLineMacro = 0; }else if( strcmp(x,"token_type")==0 ){ psp->declargslot = &(psp->gp->tokentype); psp->insertLineMacro = 0; }else if( strcmp(x,"default_type")==0 ){ psp->declargslot = &(psp->gp->vartype); psp->insertLineMacro = 0; }else if( strcmp(x,"stack_size")==0 ){ psp->declargslot = &(psp->gp->stacksize); psp->insertLineMacro = 0; }else if( strcmp(x,"start_symbol")==0 ){ psp->declargslot = &(psp->gp->start); psp->insertLineMacro = 0; }else if( strcmp(x,"left")==0 ){ psp->preccounter++; psp->declassoc = LEFT; psp->state = WAITING_FOR_PRECEDENCE_SYMBOL; }else if( strcmp(x,"right")==0 ){ psp->preccounter++; psp->declassoc = RIGHT; psp->state = WAITING_FOR_PRECEDENCE_SYMBOL; }else if( strcmp(x,"nonassoc")==0 ){ psp->preccounter++; psp->declassoc = NONE; psp->state = WAITING_FOR_PRECEDENCE_SYMBOL; }else if( strcmp(x,"destructor")==0 ){ psp->state = WAITING_FOR_DESTRUCTOR_SYMBOL; }else if( strcmp(x,"type")==0 ){ psp->state = WAITING_FOR_DATATYPE_SYMBOL; }else if( strcmp(x,"fallback")==0 ){ psp->fallback = 0; psp->state = WAITING_FOR_FALLBACK_ID; }else if( strcmp(x,"wildcard")==0 ){ psp->state = WAITING_FOR_WILDCARD_ID; }else{ ErrorMsg(psp->filename,psp->tokenlineno, "Unknown declaration keyword: \"%%%s\".",x); psp->errorcnt++; psp->state = RESYNC_AFTER_DECL_ERROR; } }else{ ErrorMsg(psp->filename,psp->tokenlineno, "Illegal declaration keyword: \"%s\".",x); psp->errorcnt++; psp->state = RESYNC_AFTER_DECL_ERROR; } break; case WAITING_FOR_DESTRUCTOR_SYMBOL: if( !isalpha(x[0]) ){ ErrorMsg(psp->filename,psp->tokenlineno, "Symbol name missing after %destructor keyword"); psp->errorcnt++; psp->state = RESYNC_AFTER_DECL_ERROR; }else{ struct symbol *sp = Symbol_new(x); psp->declargslot = &sp->destructor; psp->decllinenoslot = &sp->destLineno; psp->insertLineMacro = 1; psp->state = WAITING_FOR_DECL_ARG; } break; case WAITING_FOR_DATATYPE_SYMBOL: if( !isalpha(x[0]) ){ ErrorMsg(psp->filename,psp->tokenlineno, "Symbol name missing after %destructor keyword"); psp->errorcnt++; psp->state = RESYNC_AFTER_DECL_ERROR; }else{ struct symbol *sp = Symbol_new(x); psp->declargslot = &sp->datatype; psp->insertLineMacro = 0; psp->state = WAITING_FOR_DECL_ARG; } break; case WAITING_FOR_PRECEDENCE_SYMBOL: if( x[0]=='.' ){ psp->state = WAITING_FOR_DECL_OR_RULE; }else if( isupper(x[0]) ){ struct symbol *sp; sp = Symbol_new(x); if( sp->prec>=0 ){ ErrorMsg(psp->filename,psp->tokenlineno, "Symbol \"%s\" has already be given a precedence.",x); psp->errorcnt++; }else{ sp->prec = psp->preccounter; sp->assoc = psp->declassoc; } }else{ ErrorMsg(psp->filename,psp->tokenlineno, "Can't assign a precedence to \"%s\".",x); psp->errorcnt++; } break; case WAITING_FOR_DECL_ARG: if( x[0]=='{' || x[0]=='\"' || isalnum(x[0]) ){ char *zOld, *zNew, *zBuf, *z; int nOld, n, nLine, nNew, nBack; int addLineMacro; char zLine[50]; zNew = x; if( zNew[0]=='"' || zNew[0]=='{' ) zNew++; nNew = lemonStrlen(zNew); if( *psp->declargslot ){ zOld = *psp->declargslot; }else{ zOld = ""; } nOld = lemonStrlen(zOld); n = nOld + nNew + 20; addLineMacro = !psp->gp->nolinenosflag && psp->insertLineMacro && (psp->decllinenoslot==0 || psp->decllinenoslot[0]!=0); if( addLineMacro ){ for(z=psp->filename, nBack=0; *z; z++){ if( *z=='\\' ) nBack++; } sprintf(zLine, "#line %d ", psp->tokenlineno); nLine = lemonStrlen(zLine); n += nLine + lemonStrlen(psp->filename) + nBack; } *psp->declargslot = zBuf = realloc(*psp->declargslot, n); zBuf += nOld; if( addLineMacro ){ if( nOld && zBuf[-1]!='\n' ){ *(zBuf++) = '\n'; } memcpy(zBuf, zLine, nLine); zBuf += nLine; *(zBuf++) = '"'; for(z=psp->filename; *z; z++){ if( *z=='\\' ){ *(zBuf++) = '\\'; } *(zBuf++) = *z; } *(zBuf++) = '"'; *(zBuf++) = '\n'; } if( psp->decllinenoslot && psp->decllinenoslot[0]==0 ){ psp->decllinenoslot[0] = psp->tokenlineno; } memcpy(zBuf, zNew, nNew); zBuf += nNew; *zBuf = 0; psp->state = WAITING_FOR_DECL_OR_RULE; }else{ ErrorMsg(psp->filename,psp->tokenlineno, "Illegal argument to %%%s: %s",psp->declkeyword,x); psp->errorcnt++; psp->state = RESYNC_AFTER_DECL_ERROR; } break; case WAITING_FOR_FALLBACK_ID: if( x[0]=='.' ){ psp->state = WAITING_FOR_DECL_OR_RULE; }else if( !isupper(x[0]) ){ ErrorMsg(psp->filename, psp->tokenlineno, "%%fallback argument \"%s\" should be a token", x); psp->errorcnt++; }else{ struct symbol *sp = Symbol_new(x); if( psp->fallback==0 ){ psp->fallback = sp; }else if( sp->fallback ){ ErrorMsg(psp->filename, psp->tokenlineno, "More than one fallback assigned to token %s", x); psp->errorcnt++; }else{ sp->fallback = psp->fallback; psp->gp->has_fallback = 1; } } break; case WAITING_FOR_WILDCARD_ID: if( x[0]=='.' ){ psp->state = WAITING_FOR_DECL_OR_RULE; }else if( !isupper(x[0]) ){ ErrorMsg(psp->filename, psp->tokenlineno, "%%wildcard argument \"%s\" should be a token", x); psp->errorcnt++; }else{ struct symbol *sp = Symbol_new(x); if( psp->gp->wildcard==0 ){ psp->gp->wildcard = sp; }else{ ErrorMsg(psp->filename, psp->tokenlineno, "Extra wildcard to token: %s", x); psp->errorcnt++; } } break; case RESYNC_AFTER_RULE_ERROR: /* if( x[0]=='.' ) psp->state = WAITING_FOR_DECL_OR_RULE; ** break; */ case RESYNC_AFTER_DECL_ERROR: if( x[0]=='.' ) psp->state = WAITING_FOR_DECL_OR_RULE; if( x[0]=='%' ) psp->state = WAITING_FOR_DECL_KEYWORD; break; } } /* Run the preprocessor over the input file text. The global variables ** azDefine[0] through azDefine[nDefine-1] contains the names of all defined ** macros. This routine looks for "%ifdef" and "%ifndef" and "%endif" and ** comments them out. Text in between is also commented out as appropriate. */ static void preprocess_input(char *z){ int i, j, k, n; int exclude = 0; int start = 0; int lineno = 1; int start_lineno = 1; for(i=0; z[i]; i++){ if( z[i]=='\n' ) lineno++; if( z[i]!='%' || (i>0 && z[i-1]!='\n') ) continue; if( strncmp(&z[i],"%endif",6)==0 && isspace(z[i+6]) ){ if( exclude ){ exclude--; if( exclude==0 ){ for(j=start; jfilename; ps.errorcnt = 0; ps.state = INITIALIZE; /* Begin by reading the input file */ fp = fopen(ps.filename,"rb"); if( fp==0 ){ ErrorMsg(ps.filename,0,"Can't open this file for reading."); gp->errorcnt++; return; } fseek(fp,0,2); filesize = ftell(fp); rewind(fp); filebuf = (char *)malloc( filesize+1 ); if( filebuf==0 ){ ErrorMsg(ps.filename,0,"Can't allocate %d of memory to hold this file.", filesize+1); gp->errorcnt++; return; } if( fread(filebuf,1,filesize,fp)!=filesize ){ ErrorMsg(ps.filename,0,"Can't read in all %d bytes of this file.", filesize); free(filebuf); gp->errorcnt++; return; } fclose(fp); filebuf[filesize] = 0; /* Make an initial pass through the file to handle %ifdef and %ifndef */ preprocess_input(filebuf); /* Now scan the text of the input file */ lineno = 1; for(cp=filebuf; (c= *cp)!=0; ){ if( c=='\n' ) lineno++; /* Keep track of the line number */ if( isspace(c) ){ cp++; continue; } /* Skip all white space */ if( c=='/' && cp[1]=='/' ){ /* Skip C++ style comments */ cp+=2; while( (c= *cp)!=0 && c!='\n' ) cp++; continue; } if( c=='/' && cp[1]=='*' ){ /* Skip C style comments */ cp+=2; while( (c= *cp)!=0 && (c!='/' || cp[-1]!='*') ){ if( c=='\n' ) lineno++; cp++; } if( c ) cp++; continue; } ps.tokenstart = cp; /* Mark the beginning of the token */ ps.tokenlineno = lineno; /* Linenumber on which token begins */ if( c=='\"' ){ /* String literals */ cp++; while( (c= *cp)!=0 && c!='\"' ){ if( c=='\n' ) lineno++; cp++; } if( c==0 ){ ErrorMsg(ps.filename,startline, "String starting on this line is not terminated before the end of the file."); ps.errorcnt++; nextcp = cp; }else{ nextcp = cp+1; } }else if( c=='{' ){ /* A block of C code */ int level; cp++; for(level=1; (c= *cp)!=0 && (level>1 || c!='}'); cp++){ if( c=='\n' ) lineno++; else if( c=='{' ) level++; else if( c=='}' ) level--; else if( c=='/' && cp[1]=='*' ){ /* Skip comments */ int prevc; cp = &cp[2]; prevc = 0; while( (c= *cp)!=0 && (c!='/' || prevc!='*') ){ if( c=='\n' ) lineno++; prevc = c; cp++; } }else if( c=='/' && cp[1]=='/' ){ /* Skip C++ style comments too */ cp = &cp[2]; while( (c= *cp)!=0 && c!='\n' ) cp++; if( c ) lineno++; }else if( c=='\'' || c=='\"' ){ /* String a character literals */ int startchar, prevc; startchar = c; prevc = 0; for(cp++; (c= *cp)!=0 && (c!=startchar || prevc=='\\'); cp++){ if( c=='\n' ) lineno++; if( prevc=='\\' ) prevc = 0; else prevc = c; } } } if( c==0 ){ ErrorMsg(ps.filename,ps.tokenlineno, "C code starting on this line is not terminated before the end of the file."); ps.errorcnt++; nextcp = cp; }else{ nextcp = cp+1; } }else if( isalnum(c) ){ /* Identifiers */ while( (c= *cp)!=0 && (isalnum(c) || c=='_') ) cp++; nextcp = cp; }else if( c==':' && cp[1]==':' && cp[2]=='=' ){ /* The operator "::=" */ cp += 3; nextcp = cp; }else if( (c=='/' || c=='|') && isalpha(cp[1]) ){ cp += 2; while( (c = *cp)!=0 && (isalnum(c) || c=='_') ) cp++; nextcp = cp; }else{ /* All other (one character) operators */ cp++; nextcp = cp; } c = *cp; *cp = 0; /* Null terminate the token */ parseonetoken(&ps); /* Parse the token */ *cp = c; /* Restore the buffer */ cp = nextcp; } free(filebuf); /* Release the buffer after parsing */ gp->rule = ps.firstrule; gp->errorcnt = ps.errorcnt; } /*************************** From the file "plink.c" *********************/ /* ** Routines processing configuration follow-set propagation links ** in the LEMON parser generator. */ static struct plink *plink_freelist = 0; /* Allocate a new plink */ struct plink *Plink_new(){ struct plink *new; if( plink_freelist==0 ){ int i; int amt = 100; plink_freelist = (struct plink *)calloc( amt, sizeof(struct plink) ); if( plink_freelist==0 ){ fprintf(stderr, "Unable to allocate memory for a new follow-set propagation link.\n"); exit(1); } for(i=0; inext; return new; } /* Add a plink to a plink list */ void Plink_add(plpp,cfp) struct plink **plpp; struct config *cfp; { struct plink *new; new = Plink_new(); new->next = *plpp; *plpp = new; new->cfp = cfp; } /* Transfer every plink on the list "from" to the list "to" */ void Plink_copy(to,from) struct plink **to; struct plink *from; { struct plink *nextpl; while( from ){ nextpl = from->next; from->next = *to; *to = from; from = nextpl; } } /* Delete every plink on the list */ void Plink_delete(plp) struct plink *plp; { struct plink *nextpl; while( plp ){ nextpl = plp->next; plp->next = plink_freelist; plink_freelist = plp; plp = nextpl; } } /*********************** From the file "report.c" **************************/ /* ** Procedures for generating reports and tables in the LEMON parser generator. */ /* Generate a filename with the given suffix. Space to hold the ** name comes from malloc() and must be freed by the calling ** function. */ PRIVATE char *file_makename(lemp,suffix) struct lemon *lemp; char *suffix; { char *name; char *cp; name = malloc( lemonStrlen(lemp->filename) + lemonStrlen(suffix) + 5 ); if( name==0 ){ fprintf(stderr,"Can't allocate space for a filename.\n"); exit(1); } strcpy(name,lemp->filename); cp = strrchr(name,'.'); if( cp ) *cp = 0; strcat(name,suffix); return name; } /* Open a file with a name based on the name of the input file, ** but with a different (specified) suffix, and return a pointer ** to the stream */ PRIVATE FILE *file_open(lemp,suffix,mode) struct lemon *lemp; char *suffix; char *mode; { FILE *fp; if( lemp->outname ) free(lemp->outname); lemp->outname = file_makename(lemp, suffix); fp = fopen(lemp->outname,mode); if( fp==0 && *mode=='w' ){ fprintf(stderr,"Can't open file \"%s\".\n",lemp->outname); lemp->errorcnt++; return 0; } return fp; } /* Duplicate the input file without comments and without actions ** on rules */ void Reprint(lemp) struct lemon *lemp; { struct rule *rp; struct symbol *sp; int i, j, maxlen, len, ncolumns, skip; printf("// Reprint of input file \"%s\".\n// Symbols:\n",lemp->filename); maxlen = 10; for(i=0; insymbol; i++){ sp = lemp->symbols[i]; len = lemonStrlen(sp->name); if( len>maxlen ) maxlen = len; } ncolumns = 76/(maxlen+5); if( ncolumns<1 ) ncolumns = 1; skip = (lemp->nsymbol + ncolumns - 1)/ncolumns; for(i=0; insymbol; j+=skip){ sp = lemp->symbols[j]; assert( sp->index==j ); printf(" %3d %-*.*s",j,maxlen,maxlen,sp->name); } printf("\n"); } for(rp=lemp->rule; rp; rp=rp->next){ printf("%s",rp->lhs->name); /* if( rp->lhsalias ) printf("(%s)",rp->lhsalias); */ printf(" ::="); for(i=0; inrhs; i++){ sp = rp->rhs[i]; printf(" %s", sp->name); if( sp->type==MULTITERMINAL ){ for(j=1; jnsubsym; j++){ printf("|%s", sp->subsym[j]->name); } } /* if( rp->rhsalias[i] ) printf("(%s)",rp->rhsalias[i]); */ } printf("."); if( rp->precsym ) printf(" [%s]",rp->precsym->name); /* if( rp->code ) printf("\n %s",rp->code); */ printf("\n"); } } void ConfigPrint(fp,cfp) FILE *fp; struct config *cfp; { struct rule *rp; struct symbol *sp; int i, j; rp = cfp->rp; fprintf(fp,"%s ::=",rp->lhs->name); for(i=0; i<=rp->nrhs; i++){ if( i==cfp->dot ) fprintf(fp," *"); if( i==rp->nrhs ) break; sp = rp->rhs[i]; fprintf(fp," %s", sp->name); if( sp->type==MULTITERMINAL ){ for(j=1; jnsubsym; j++){ fprintf(fp,"|%s",sp->subsym[j]->name); } } } } /* #define TEST */ #if 0 /* Print a set */ PRIVATE void SetPrint(out,set,lemp) FILE *out; char *set; struct lemon *lemp; { int i; char *spacer; spacer = ""; fprintf(out,"%12s[",""); for(i=0; interminal; i++){ if( SetFind(set,i) ){ fprintf(out,"%s%s",spacer,lemp->symbols[i]->name); spacer = " "; } } fprintf(out,"]\n"); } /* Print a plink chain */ PRIVATE void PlinkPrint(out,plp,tag) FILE *out; struct plink *plp; char *tag; { while( plp ){ fprintf(out,"%12s%s (state %2d) ","",tag,plp->cfp->stp->statenum); ConfigPrint(out,plp->cfp); fprintf(out,"\n"); plp = plp->next; } } #endif /* Print an action to the given file descriptor. Return FALSE if ** nothing was actually printed. */ int PrintAction(struct action *ap, FILE *fp, int indent){ int result = 1; switch( ap->type ){ case SHIFT: fprintf(fp,"%*s shift %d",indent,ap->sp->name,ap->x.stp->statenum); break; case REDUCE: fprintf(fp,"%*s reduce %d",indent,ap->sp->name,ap->x.rp->index); break; case ACCEPT: fprintf(fp,"%*s accept",indent,ap->sp->name); break; case ERROR: fprintf(fp,"%*s error",indent,ap->sp->name); break; case SRCONFLICT: case RRCONFLICT: fprintf(fp,"%*s reduce %-3d ** Parsing conflict **", indent,ap->sp->name,ap->x.rp->index); break; case SSCONFLICT: fprintf(fp,"%*s shift %d ** Parsing conflict **", indent,ap->sp->name,ap->x.stp->statenum); break; case SH_RESOLVED: case RD_RESOLVED: case NOT_USED: result = 0; break; } return result; } /* Generate the "y.output" log file */ void ReportOutput(lemp) struct lemon *lemp; { int i; struct state *stp; struct config *cfp; struct action *ap; FILE *fp; fp = file_open(lemp,".out","wb"); if( fp==0 ) return; for(i=0; instate; i++){ stp = lemp->sorted[i]; fprintf(fp,"State %d:\n",stp->statenum); if( lemp->basisflag ) cfp=stp->bp; else cfp=stp->cfp; while( cfp ){ char buf[20]; if( cfp->dot==cfp->rp->nrhs ){ sprintf(buf,"(%d)",cfp->rp->index); fprintf(fp," %5s ",buf); }else{ fprintf(fp," "); } ConfigPrint(fp,cfp); fprintf(fp,"\n"); #if 0 SetPrint(fp,cfp->fws,lemp); PlinkPrint(fp,cfp->fplp,"To "); PlinkPrint(fp,cfp->bplp,"From"); #endif if( lemp->basisflag ) cfp=cfp->bp; else cfp=cfp->next; } fprintf(fp,"\n"); for(ap=stp->ap; ap; ap=ap->next){ if( PrintAction(ap,fp,30) ) fprintf(fp,"\n"); } fprintf(fp,"\n"); } fprintf(fp, "----------------------------------------------------\n"); fprintf(fp, "Symbols:\n"); for(i=0; insymbol; i++){ int j; struct symbol *sp; sp = lemp->symbols[i]; fprintf(fp, " %3d: %s", i, sp->name); if( sp->type==NONTERMINAL ){ fprintf(fp, ":"); if( sp->lambda ){ fprintf(fp, " "); } for(j=0; jnterminal; j++){ if( sp->firstset && SetFind(sp->firstset, j) ){ fprintf(fp, " %s", lemp->symbols[j]->name); } } } fprintf(fp, "\n"); } fclose(fp); return; } /* Search for the file "name" which is in the same directory as ** the exacutable */ PRIVATE char *pathsearch(argv0,name,modemask) char *argv0; char *name; int modemask; { char *pathlist; char *path,*cp; char c; #ifdef __WIN32__ cp = strrchr(argv0,'\\'); #else cp = strrchr(argv0,'/'); #endif if( cp ){ c = *cp; *cp = 0; path = (char *)malloc( lemonStrlen(argv0) + lemonStrlen(name) + 2 ); if( path ) sprintf(path,"%s/%s",argv0,name); *cp = c; }else{ extern char *getenv(); pathlist = getenv("PATH"); if( pathlist==0 ) pathlist = ".:/bin:/usr/bin"; path = (char *)malloc( lemonStrlen(pathlist)+lemonStrlen(name)+2 ); if( path!=0 ){ while( *pathlist ){ cp = strchr(pathlist,':'); if( cp==0 ) cp = &pathlist[lemonStrlen(pathlist)]; c = *cp; *cp = 0; sprintf(path,"%s/%s",pathlist,name); *cp = c; if( c==0 ) pathlist = ""; else pathlist = &cp[1]; if( access(path,modemask)==0 ) break; } } } return path; } /* Given an action, compute the integer value for that action ** which is to be put in the action table of the generated machine. ** Return negative if no action should be generated. */ PRIVATE int compute_action(lemp,ap) struct lemon *lemp; struct action *ap; { int act; switch( ap->type ){ case SHIFT: act = ap->x.stp->statenum; break; case REDUCE: act = ap->x.rp->index + lemp->nstate; break; case ERROR: act = lemp->nstate + lemp->nrule; break; case ACCEPT: act = lemp->nstate + lemp->nrule + 1; break; default: act = -1; break; } return act; } #define LINESIZE 1000 /* The next cluster of routines are for reading the template file ** and writing the results to the generated parser */ /* The first function transfers data from "in" to "out" until ** a line is seen which begins with "%%". The line number is ** tracked. ** ** if name!=0, then any word that begin with "Parse" is changed to ** begin with *name instead. */ PRIVATE void tplt_xfer(name,in,out,lineno) char *name; FILE *in; FILE *out; int *lineno; { int i, iStart; char line[LINESIZE]; while( fgets(line,LINESIZE,in) && (line[0]!='%' || line[1]!='%') ){ (*lineno)++; iStart = 0; if( name ){ for(i=0; line[i]; i++){ if( line[i]=='P' && strncmp(&line[i],"Parse",5)==0 && (i==0 || !isalpha(line[i-1])) ){ if( i>iStart ) fprintf(out,"%.*s",i-iStart,&line[iStart]); fprintf(out,"%s",name); i += 4; iStart = i+1; } } } fprintf(out,"%s",&line[iStart]); } } /* The next function finds the template file and opens it, returning ** a pointer to the opened file. */ PRIVATE FILE *tplt_open(lemp) struct lemon *lemp; { static char templatename[] = "lempar.c"; char buf[1000]; FILE *in; char *tpltname; char *cp; cp = strrchr(lemp->filename,'.'); if( cp ){ sprintf(buf,"%.*s.lt",(int)(cp-lemp->filename),lemp->filename); }else{ sprintf(buf,"%s.lt",lemp->filename); } if( access(buf,004)==0 ){ tpltname = buf; }else if( access(templatename,004)==0 ){ tpltname = templatename; }else{ tpltname = pathsearch(lemp->argv0,templatename,0); } if( tpltname==0 ){ fprintf(stderr,"Can't find the parser driver template file \"%s\".\n", templatename); lemp->errorcnt++; return 0; } in = fopen(tpltname,"rb"); if( in==0 ){ fprintf(stderr,"Can't open the template file \"%s\".\n",templatename); lemp->errorcnt++; return 0; } return in; } /* Print a #line directive line to the output file. */ PRIVATE void tplt_linedir(out,lineno,filename) FILE *out; int lineno; char *filename; { fprintf(out,"#line %d \"",lineno); while( *filename ){ if( *filename == '\\' ) putc('\\',out); putc(*filename,out); filename++; } fprintf(out,"\"\n"); } /* Print a string to the file and keep the linenumber up to date */ PRIVATE void tplt_print(out,lemp,str,lineno) FILE *out; struct lemon *lemp; char *str; int *lineno; { if( str==0 ) return; while( *str ){ putc(*str,out); if( *str=='\n' ) (*lineno)++; str++; } if( str[-1]!='\n' ){ putc('\n',out); (*lineno)++; } if (!lemp->nolinenosflag) { (*lineno)++; tplt_linedir(out,*lineno,lemp->outname); } return; } /* ** The following routine emits code for the destructor for the ** symbol sp */ void emit_destructor_code(out,sp,lemp,lineno) FILE *out; struct symbol *sp; struct lemon *lemp; int *lineno; { char *cp = 0; if( sp->type==TERMINAL ){ cp = lemp->tokendest; if( cp==0 ) return; fprintf(out,"{\n"); (*lineno)++; }else if( sp->destructor ){ cp = sp->destructor; fprintf(out,"{\n"); (*lineno)++; if (!lemp->nolinenosflag) { (*lineno)++; tplt_linedir(out,sp->destLineno,lemp->filename); } }else if( lemp->vardest ){ cp = lemp->vardest; if( cp==0 ) return; fprintf(out,"{\n"); (*lineno)++; }else{ assert( 0 ); /* Cannot happen */ } for(; *cp; cp++){ if( *cp=='$' && cp[1]=='$' ){ fprintf(out,"(yypminor->yy%d)",sp->dtnum); cp++; continue; } if( *cp=='\n' ) (*lineno)++; fputc(*cp,out); } fprintf(out,"\n"); (*lineno)++; if (!lemp->nolinenosflag) { (*lineno)++; tplt_linedir(out,*lineno,lemp->outname); } fprintf(out,"}\n"); (*lineno)++; return; } /* ** Return TRUE (non-zero) if the given symbol has a destructor. */ int has_destructor(sp, lemp) struct symbol *sp; struct lemon *lemp; { int ret; if( sp->type==TERMINAL ){ ret = lemp->tokendest!=0; }else{ ret = lemp->vardest!=0 || sp->destructor!=0; } return ret; } /* ** Append text to a dynamically allocated string. If zText is 0 then ** reset the string to be empty again. Always return the complete text ** of the string (which is overwritten with each call). ** ** n bytes of zText are stored. If n==0 then all of zText up to the first ** \000 terminator is stored. zText can contain up to two instances of ** %d. The values of p1 and p2 are written into the first and second ** %d. ** ** If n==-1, then the previous character is overwritten. */ PRIVATE char *append_str(char *zText, int n, int p1, int p2){ static char *z = 0; static int alloced = 0; static int used = 0; int c; char zInt[40]; if( zText==0 ){ used = 0; return z; } if( n<=0 ){ if( n<0 ){ used += n; assert( used>=0 ); } n = lemonStrlen(zText); } if( n+sizeof(zInt)*2+used >= alloced ){ alloced = n + sizeof(zInt)*2 + used + 200; z = realloc(z, alloced); } if( z==0 ) return ""; while( n-- > 0 ){ c = *(zText++); if( c=='%' && n>0 && zText[0]=='d' ){ sprintf(zInt, "%d", p1); p1 = p2; strcpy(&z[used], zInt); used += lemonStrlen(&z[used]); zText++; n--; }else{ z[used++] = c; } } z[used] = 0; return z; } /* ** zCode is a string that is the action associated with a rule. Expand ** the symbols in this string so that the refer to elements of the parser ** stack. */ PRIVATE void translate_code(struct lemon *lemp, struct rule *rp){ char *cp, *xp; int i; char lhsused = 0; /* True if the LHS element has been used */ char used[MAXRHS]; /* True for each RHS element which is used */ for(i=0; inrhs; i++) used[i] = 0; lhsused = 0; if( rp->code==0 ){ rp->code = "\n"; rp->line = rp->ruleline; } append_str(0,0,0,0); for(cp=rp->code; *cp; cp++){ if( isalpha(*cp) && (cp==rp->code || (!isalnum(cp[-1]) && cp[-1]!='_')) ){ char saved; for(xp= &cp[1]; isalnum(*xp) || *xp=='_'; xp++); saved = *xp; *xp = 0; if( rp->lhsalias && strcmp(cp,rp->lhsalias)==0 ){ append_str("yygotominor.yy%d",0,rp->lhs->dtnum,0); cp = xp; lhsused = 1; }else{ for(i=0; inrhs; i++){ if( rp->rhsalias[i] && strcmp(cp,rp->rhsalias[i])==0 ){ if( cp!=rp->code && cp[-1]=='@' ){ /* If the argument is of the form @X then substituted ** the token number of X, not the value of X */ append_str("yymsp[%d].major",-1,i-rp->nrhs+1,0); }else{ struct symbol *sp = rp->rhs[i]; int dtnum; if( sp->type==MULTITERMINAL ){ dtnum = sp->subsym[0]->dtnum; }else{ dtnum = sp->dtnum; } append_str("yymsp[%d].minor.yy%d",0,i-rp->nrhs+1, dtnum); } cp = xp; used[i] = 1; break; } } } *xp = saved; } append_str(cp, 1, 0, 0); } /* End loop */ /* Check to make sure the LHS has been used */ if( rp->lhsalias && !lhsused ){ ErrorMsg(lemp->filename,rp->ruleline, "Label \"%s\" for \"%s(%s)\" is never used.", rp->lhsalias,rp->lhs->name,rp->lhsalias); lemp->errorcnt++; } /* Generate destructor code for RHS symbols which are not used in the ** reduce code */ for(i=0; inrhs; i++){ if( rp->rhsalias[i] && !used[i] ){ ErrorMsg(lemp->filename,rp->ruleline, "Label %s for \"%s(%s)\" is never used.", rp->rhsalias[i],rp->rhs[i]->name,rp->rhsalias[i]); lemp->errorcnt++; }else if( rp->rhsalias[i]==0 ){ if( has_destructor(rp->rhs[i],lemp) ){ append_str(" yy_destructor(yypParser,%d,&yymsp[%d].minor);\n", 0, rp->rhs[i]->index,i-rp->nrhs+1); }else{ /* No destructor defined for this term */ } } } if( rp->code ){ cp = append_str(0,0,0,0); rp->code = Strsafe(cp?cp:""); } } /* ** Generate code which executes when the rule "rp" is reduced. Write ** the code to "out". Make sure lineno stays up-to-date. */ PRIVATE void emit_code(out,rp,lemp,lineno) FILE *out; struct rule *rp; struct lemon *lemp; int *lineno; { char *cp; /* Generate code to do the reduce action */ if( rp->code ){ if (!lemp->nolinenosflag) { (*lineno)++; tplt_linedir(out,rp->line,lemp->filename); } fprintf(out,"{%s",rp->code); for(cp=rp->code; *cp; cp++){ if( *cp=='\n' ) (*lineno)++; } /* End loop */ fprintf(out,"}\n"); (*lineno)++; if (!lemp->nolinenosflag) { (*lineno)++; tplt_linedir(out,*lineno,lemp->outname); } } /* End if( rp->code ) */ return; } /* ** Print the definition of the union used for the parser's data stack. ** This union contains fields for every possible data type for tokens ** and nonterminals. In the process of computing and printing this ** union, also set the ".dtnum" field of every terminal and nonterminal ** symbol. */ void print_stack_union(out,lemp,plineno,mhflag) FILE *out; /* The output stream */ struct lemon *lemp; /* The main info structure for this parser */ int *plineno; /* Pointer to the line number */ int mhflag; /* True if generating makeheaders output */ { int lineno = *plineno; /* The line number of the output */ char **types; /* A hash table of datatypes */ int arraysize; /* Size of the "types" array */ int maxdtlength; /* Maximum length of any ".datatype" field. */ char *stddt; /* Standardized name for a datatype */ int i,j; /* Loop counters */ int hash; /* For hashing the name of a type */ char *name; /* Name of the parser */ /* Allocate and initialize types[] and allocate stddt[] */ arraysize = lemp->nsymbol * 2; types = (char**)calloc( arraysize, sizeof(char*) ); for(i=0; ivartype ){ maxdtlength = lemonStrlen(lemp->vartype); } for(i=0; insymbol; i++){ int len; struct symbol *sp = lemp->symbols[i]; if( sp->datatype==0 ) continue; len = lemonStrlen(sp->datatype); if( len>maxdtlength ) maxdtlength = len; } stddt = (char*)malloc( maxdtlength*2 + 1 ); if( types==0 || stddt==0 ){ fprintf(stderr,"Out of memory.\n"); exit(1); } /* Build a hash table of datatypes. The ".dtnum" field of each symbol ** is filled in with the hash index plus 1. A ".dtnum" value of 0 is ** used for terminal symbols. If there is no %default_type defined then ** 0 is also used as the .dtnum value for nonterminals which do not specify ** a datatype using the %type directive. */ for(i=0; insymbol; i++){ struct symbol *sp = lemp->symbols[i]; char *cp; if( sp==lemp->errsym ){ sp->dtnum = arraysize+1; continue; } if( sp->type!=NONTERMINAL || (sp->datatype==0 && lemp->vartype==0) ){ sp->dtnum = 0; continue; } cp = sp->datatype; if( cp==0 ) cp = lemp->vartype; j = 0; while( isspace(*cp) ) cp++; while( *cp ) stddt[j++] = *cp++; while( j>0 && isspace(stddt[j-1]) ) j--; stddt[j] = 0; if( lemp->tokentype && strcmp(stddt, lemp->tokentype)==0 ){ sp->dtnum = 0; continue; } hash = 0; for(j=0; stddt[j]; j++){ hash = hash*53 + stddt[j]; } hash = (hash & 0x7fffffff)%arraysize; while( types[hash] ){ if( strcmp(types[hash],stddt)==0 ){ sp->dtnum = hash + 1; break; } hash++; if( hash>=arraysize ) hash = 0; } if( types[hash]==0 ){ sp->dtnum = hash + 1; types[hash] = (char*)malloc( lemonStrlen(stddt)+1 ); if( types[hash]==0 ){ fprintf(stderr,"Out of memory.\n"); exit(1); } strcpy(types[hash],stddt); } } /* Print out the definition of YYTOKENTYPE and YYMINORTYPE */ name = lemp->name ? lemp->name : "Parse"; lineno = *plineno; if( mhflag ){ fprintf(out,"#if INTERFACE\n"); lineno++; } fprintf(out,"#define %sTOKENTYPE %s\n",name, lemp->tokentype?lemp->tokentype:"void*"); lineno++; if( mhflag ){ fprintf(out,"#endif\n"); lineno++; } fprintf(out,"typedef union {\n"); lineno++; fprintf(out," int yyinit;\n"); lineno++; fprintf(out," %sTOKENTYPE yy0;\n",name); lineno++; for(i=0; ierrsym->useCnt ){ fprintf(out," int yy%d;\n",lemp->errsym->dtnum); lineno++; } free(stddt); free(types); fprintf(out,"} YYMINORTYPE;\n"); lineno++; *plineno = lineno; } /* ** Return the name of a C datatype able to represent values between ** lwr and upr, inclusive. */ static const char *minimum_size_type(int lwr, int upr){ if( lwr>=0 ){ if( upr<=255 ){ return "unsigned char"; }else if( upr<65535 ){ return "unsigned short int"; }else{ return "unsigned int"; } }else if( lwr>=-127 && upr<=127 ){ return "signed char"; }else if( lwr>=-32767 && upr<32767 ){ return "short"; }else{ return "int"; } } /* ** Each state contains a set of token transaction and a set of ** nonterminal transactions. Each of these sets makes an instance ** of the following structure. An array of these structures is used ** to order the creation of entries in the yy_action[] table. */ struct axset { struct state *stp; /* A pointer to a state */ int isTkn; /* True to use tokens. False for non-terminals */ int nAction; /* Number of actions */ }; /* ** Compare to axset structures for sorting purposes */ static int axset_compare(const void *a, const void *b){ struct axset *p1 = (struct axset*)a; struct axset *p2 = (struct axset*)b; return p2->nAction - p1->nAction; } /* ** Write text on "out" that describes the rule "rp". */ static void writeRuleText(FILE *out, struct rule *rp){ int j; fprintf(out,"%s ::=", rp->lhs->name); for(j=0; jnrhs; j++){ struct symbol *sp = rp->rhs[j]; fprintf(out," %s", sp->name); if( sp->type==MULTITERMINAL ){ int k; for(k=1; knsubsym; k++){ fprintf(out,"|%s",sp->subsym[k]->name); } } } } /* Generate C source code for the parser */ void ReportTable(lemp, mhflag) struct lemon *lemp; int mhflag; /* Output in makeheaders format if true */ { FILE *out, *in; char line[LINESIZE]; int lineno; struct state *stp; struct action *ap; struct rule *rp; struct acttab *pActtab; int i, j, n; char *name; int mnTknOfst, mxTknOfst; int mnNtOfst, mxNtOfst; struct axset *ax; in = tplt_open(lemp); if( in==0 ) return; out = file_open(lemp,".c","wb"); if( out==0 ){ fclose(in); return; } lineno = 1; tplt_xfer(lemp->name,in,out,&lineno); /* Generate the include code, if any */ tplt_print(out,lemp,lemp->include,&lineno); if( mhflag ){ char *name = file_makename(lemp, ".h"); fprintf(out,"#include \"%s\"\n", name); lineno++; free(name); } tplt_xfer(lemp->name,in,out,&lineno); /* Generate #defines for all tokens */ if( mhflag ){ char *prefix; fprintf(out,"#if INTERFACE\n"); lineno++; if( lemp->tokenprefix ) prefix = lemp->tokenprefix; else prefix = ""; for(i=1; interminal; i++){ fprintf(out,"#define %s%-30s %2d\n",prefix,lemp->symbols[i]->name,i); lineno++; } fprintf(out,"#endif\n"); lineno++; } tplt_xfer(lemp->name,in,out,&lineno); /* Generate the defines */ fprintf(out,"#define YYCODETYPE %s\n", minimum_size_type(0, lemp->nsymbol+1)); lineno++; fprintf(out,"#define YYNOCODE %d\n",lemp->nsymbol+1); lineno++; fprintf(out,"#define YYACTIONTYPE %s\n", minimum_size_type(0, lemp->nstate+lemp->nrule+5)); lineno++; if( lemp->wildcard ){ fprintf(out,"#define YYWILDCARD %d\n", lemp->wildcard->index); lineno++; } print_stack_union(out,lemp,&lineno,mhflag); fprintf(out, "#ifndef YYSTACKDEPTH\n"); lineno++; if( lemp->stacksize ){ fprintf(out,"#define YYSTACKDEPTH %s\n",lemp->stacksize); lineno++; }else{ fprintf(out,"#define YYSTACKDEPTH 100\n"); lineno++; } fprintf(out, "#endif\n"); lineno++; if( mhflag ){ fprintf(out,"#if INTERFACE\n"); lineno++; } name = lemp->name ? lemp->name : "Parse"; if( lemp->arg && lemp->arg[0] ){ int i; i = lemonStrlen(lemp->arg); while( i>=1 && isspace(lemp->arg[i-1]) ) i--; while( i>=1 && (isalnum(lemp->arg[i-1]) || lemp->arg[i-1]=='_') ) i--; fprintf(out,"#define %sARG_SDECL %s;\n",name,lemp->arg); lineno++; fprintf(out,"#define %sARG_PDECL ,%s\n",name,lemp->arg); lineno++; fprintf(out,"#define %sARG_FETCH %s = yypParser->%s\n", name,lemp->arg,&lemp->arg[i]); lineno++; fprintf(out,"#define %sARG_STORE yypParser->%s = %s\n", name,&lemp->arg[i],&lemp->arg[i]); lineno++; }else{ fprintf(out,"#define %sARG_SDECL\n",name); lineno++; fprintf(out,"#define %sARG_PDECL\n",name); lineno++; fprintf(out,"#define %sARG_FETCH\n",name); lineno++; fprintf(out,"#define %sARG_STORE\n",name); lineno++; } if( mhflag ){ fprintf(out,"#endif\n"); lineno++; } fprintf(out,"#define YYNSTATE %d\n",lemp->nstate); lineno++; fprintf(out,"#define YYNRULE %d\n",lemp->nrule); lineno++; if( lemp->errsym->useCnt ){ fprintf(out,"#define YYERRORSYMBOL %d\n",lemp->errsym->index); lineno++; fprintf(out,"#define YYERRSYMDT yy%d\n",lemp->errsym->dtnum); lineno++; } if( lemp->has_fallback ){ fprintf(out,"#define YYFALLBACK 1\n"); lineno++; } tplt_xfer(lemp->name,in,out,&lineno); /* Generate the action table and its associates: ** ** yy_action[] A single table containing all actions. ** yy_lookahead[] A table containing the lookahead for each entry in ** yy_action. Used to detect hash collisions. ** yy_shift_ofst[] For each state, the offset into yy_action for ** shifting terminals. ** yy_reduce_ofst[] For each state, the offset into yy_action for ** shifting non-terminals after a reduce. ** yy_default[] Default action for each state. */ /* Compute the actions on all states and count them up */ ax = calloc(lemp->nstate*2, sizeof(ax[0])); if( ax==0 ){ fprintf(stderr,"malloc failed\n"); exit(1); } for(i=0; instate; i++){ stp = lemp->sorted[i]; ax[i*2].stp = stp; ax[i*2].isTkn = 1; ax[i*2].nAction = stp->nTknAct; ax[i*2+1].stp = stp; ax[i*2+1].isTkn = 0; ax[i*2+1].nAction = stp->nNtAct; } mxTknOfst = mnTknOfst = 0; mxNtOfst = mnNtOfst = 0; /* Compute the action table. In order to try to keep the size of the ** action table to a minimum, the heuristic of placing the largest action ** sets first is used. */ qsort(ax, lemp->nstate*2, sizeof(ax[0]), axset_compare); pActtab = acttab_alloc(); for(i=0; instate*2 && ax[i].nAction>0; i++){ stp = ax[i].stp; if( ax[i].isTkn ){ for(ap=stp->ap; ap; ap=ap->next){ int action; if( ap->sp->index>=lemp->nterminal ) continue; action = compute_action(lemp, ap); if( action<0 ) continue; acttab_action(pActtab, ap->sp->index, action); } stp->iTknOfst = acttab_insert(pActtab); if( stp->iTknOfstiTknOfst; if( stp->iTknOfst>mxTknOfst ) mxTknOfst = stp->iTknOfst; }else{ for(ap=stp->ap; ap; ap=ap->next){ int action; if( ap->sp->indexnterminal ) continue; if( ap->sp->index==lemp->nsymbol ) continue; action = compute_action(lemp, ap); if( action<0 ) continue; acttab_action(pActtab, ap->sp->index, action); } stp->iNtOfst = acttab_insert(pActtab); if( stp->iNtOfstiNtOfst; if( stp->iNtOfst>mxNtOfst ) mxNtOfst = stp->iNtOfst; } } free(ax); /* Output the yy_action table */ fprintf(out,"static const YYACTIONTYPE yy_action[] = {\n"); lineno++; n = acttab_size(pActtab); for(i=j=0; instate + lemp->nrule + 2; if( j==0 ) fprintf(out," /* %5d */ ", i); fprintf(out, " %4d,", action); if( j==9 || i==n-1 ){ fprintf(out, "\n"); lineno++; j = 0; }else{ j++; } } fprintf(out, "};\n"); lineno++; /* Output the yy_lookahead table */ fprintf(out,"static const YYCODETYPE yy_lookahead[] = {\n"); lineno++; for(i=j=0; insymbol; if( j==0 ) fprintf(out," /* %5d */ ", i); fprintf(out, " %4d,", la); if( j==9 || i==n-1 ){ fprintf(out, "\n"); lineno++; j = 0; }else{ j++; } } fprintf(out, "};\n"); lineno++; /* Output the yy_shift_ofst[] table */ fprintf(out, "#define YY_SHIFT_USE_DFLT (%d)\n", mnTknOfst-1); lineno++; n = lemp->nstate; while( n>0 && lemp->sorted[n-1]->iTknOfst==NO_OFFSET ) n--; fprintf(out, "#define YY_SHIFT_MAX %d\n", n-1); lineno++; fprintf(out, "static const %s yy_shift_ofst[] = {\n", minimum_size_type(mnTknOfst-1, mxTknOfst)); lineno++; for(i=j=0; isorted[i]; ofst = stp->iTknOfst; if( ofst==NO_OFFSET ) ofst = mnTknOfst - 1; if( j==0 ) fprintf(out," /* %5d */ ", i); fprintf(out, " %4d,", ofst); if( j==9 || i==n-1 ){ fprintf(out, "\n"); lineno++; j = 0; }else{ j++; } } fprintf(out, "};\n"); lineno++; /* Output the yy_reduce_ofst[] table */ fprintf(out, "#define YY_REDUCE_USE_DFLT (%d)\n", mnNtOfst-1); lineno++; n = lemp->nstate; while( n>0 && lemp->sorted[n-1]->iNtOfst==NO_OFFSET ) n--; fprintf(out, "#define YY_REDUCE_MAX %d\n", n-1); lineno++; fprintf(out, "static const %s yy_reduce_ofst[] = {\n", minimum_size_type(mnNtOfst-1, mxNtOfst)); lineno++; for(i=j=0; isorted[i]; ofst = stp->iNtOfst; if( ofst==NO_OFFSET ) ofst = mnNtOfst - 1; if( j==0 ) fprintf(out," /* %5d */ ", i); fprintf(out, " %4d,", ofst); if( j==9 || i==n-1 ){ fprintf(out, "\n"); lineno++; j = 0; }else{ j++; } } fprintf(out, "};\n"); lineno++; /* Output the default action table */ fprintf(out, "static const YYACTIONTYPE yy_default[] = {\n"); lineno++; n = lemp->nstate; for(i=j=0; isorted[i]; if( j==0 ) fprintf(out," /* %5d */ ", i); fprintf(out, " %4d,", stp->iDflt); if( j==9 || i==n-1 ){ fprintf(out, "\n"); lineno++; j = 0; }else{ j++; } } fprintf(out, "};\n"); lineno++; tplt_xfer(lemp->name,in,out,&lineno); /* Generate the table of fallback tokens. */ if( lemp->has_fallback ){ int mx = lemp->nterminal - 1; while( mx>0 && lemp->symbols[mx]->fallback==0 ){ mx--; } for(i=0; i<=mx; i++){ struct symbol *p = lemp->symbols[i]; if( p->fallback==0 ){ fprintf(out, " 0, /* %10s => nothing */\n", p->name); }else{ fprintf(out, " %3d, /* %10s => %s */\n", p->fallback->index, p->name, p->fallback->name); } lineno++; } } tplt_xfer(lemp->name, in, out, &lineno); /* Generate a table containing the symbolic name of every symbol */ for(i=0; insymbol; i++){ sprintf(line,"\"%s\",",lemp->symbols[i]->name); fprintf(out," %-15s",line); if( (i&3)==3 ){ fprintf(out,"\n"); lineno++; } } if( (i&3)!=0 ){ fprintf(out,"\n"); lineno++; } tplt_xfer(lemp->name,in,out,&lineno); /* Generate a table containing a text string that describes every ** rule in the rule set of the grammar. This information is used ** when tracing REDUCE actions. */ for(i=0, rp=lemp->rule; rp; rp=rp->next, i++){ assert( rp->index==i ); fprintf(out," /* %3d */ \"", i); writeRuleText(out, rp); fprintf(out,"\",\n"); lineno++; } tplt_xfer(lemp->name,in,out,&lineno); /* Generate code which executes every time a symbol is popped from ** the stack while processing errors or while destroying the parser. ** (In other words, generate the %destructor actions) */ if( lemp->tokendest ){ int once = 1; for(i=0; insymbol; i++){ struct symbol *sp = lemp->symbols[i]; if( sp==0 || sp->type!=TERMINAL ) continue; if( once ){ fprintf(out, " /* TERMINAL Destructor */\n"); lineno++; once = 0; } fprintf(out," case %d: /* %s */\n", sp->index, sp->name); lineno++; } for(i=0; insymbol && lemp->symbols[i]->type!=TERMINAL; i++); if( insymbol ){ emit_destructor_code(out,lemp->symbols[i],lemp,&lineno); fprintf(out," break;\n"); lineno++; } } if( lemp->vardest ){ struct symbol *dflt_sp = 0; int once = 1; for(i=0; insymbol; i++){ struct symbol *sp = lemp->symbols[i]; if( sp==0 || sp->type==TERMINAL || sp->index<=0 || sp->destructor!=0 ) continue; if( once ){ fprintf(out, " /* Default NON-TERMINAL Destructor */\n"); lineno++; once = 0; } fprintf(out," case %d: /* %s */\n", sp->index, sp->name); lineno++; dflt_sp = sp; } if( dflt_sp!=0 ){ emit_destructor_code(out,dflt_sp,lemp,&lineno); } fprintf(out," break;\n"); lineno++; } for(i=0; insymbol; i++){ struct symbol *sp = lemp->symbols[i]; if( sp==0 || sp->type==TERMINAL || sp->destructor==0 ) continue; fprintf(out," case %d: /* %s */\n", sp->index, sp->name); lineno++; /* Combine duplicate destructors into a single case */ for(j=i+1; jnsymbol; j++){ struct symbol *sp2 = lemp->symbols[j]; if( sp2 && sp2->type!=TERMINAL && sp2->destructor && sp2->dtnum==sp->dtnum && strcmp(sp->destructor,sp2->destructor)==0 ){ fprintf(out," case %d: /* %s */\n", sp2->index, sp2->name); lineno++; sp2->destructor = 0; } } emit_destructor_code(out,lemp->symbols[i],lemp,&lineno); fprintf(out," break;\n"); lineno++; } tplt_xfer(lemp->name,in,out,&lineno); /* Generate code which executes whenever the parser stack overflows */ tplt_print(out,lemp,lemp->overflow,&lineno); tplt_xfer(lemp->name,in,out,&lineno); /* Generate the table of rule information ** ** Note: This code depends on the fact that rules are number ** sequentually beginning with 0. */ for(rp=lemp->rule; rp; rp=rp->next){ fprintf(out," { %d, %d },\n",rp->lhs->index,rp->nrhs); lineno++; } tplt_xfer(lemp->name,in,out,&lineno); /* Generate code which execution during each REDUCE action */ for(rp=lemp->rule; rp; rp=rp->next){ translate_code(lemp, rp); } /* First output rules other than the default: rule */ for(rp=lemp->rule; rp; rp=rp->next){ struct rule *rp2; /* Other rules with the same action */ if( rp->code==0 ) continue; if( rp->code[0]=='\n' && rp->code[1]==0 ) continue; /* Will be default: */ fprintf(out," case %d: /* ", rp->index); writeRuleText(out, rp); fprintf(out, " */\n"); lineno++; for(rp2=rp->next; rp2; rp2=rp2->next){ if( rp2->code==rp->code ){ fprintf(out," case %d: /* ", rp2->index); writeRuleText(out, rp2); fprintf(out," */ yytestcase(yyruleno==%d);\n", rp2->index); lineno++; rp2->code = 0; } } emit_code(out,rp,lemp,&lineno); fprintf(out," break;\n"); lineno++; rp->code = 0; } /* Finally, output the default: rule. We choose as the default: all ** empty actions. */ fprintf(out," default:\n"); lineno++; for(rp=lemp->rule; rp; rp=rp->next){ if( rp->code==0 ) continue; assert( rp->code[0]=='\n' && rp->code[1]==0 ); fprintf(out," /* (%d) ", rp->index); writeRuleText(out, rp); fprintf(out, " */ yytestcase(yyruleno==%d);\n", rp->index); lineno++; } fprintf(out," break;\n"); lineno++; tplt_xfer(lemp->name,in,out,&lineno); /* Generate code which executes if a parse fails */ tplt_print(out,lemp,lemp->failure,&lineno); tplt_xfer(lemp->name,in,out,&lineno); /* Generate code which executes when a syntax error occurs */ tplt_print(out,lemp,lemp->error,&lineno); tplt_xfer(lemp->name,in,out,&lineno); /* Generate code which executes when the parser accepts its input */ tplt_print(out,lemp,lemp->accept,&lineno); tplt_xfer(lemp->name,in,out,&lineno); /* Append any addition code the user desires */ tplt_print(out,lemp,lemp->extracode,&lineno); fclose(in); fclose(out); return; } /* Generate a header file for the parser */ void ReportHeader(lemp) struct lemon *lemp; { FILE *out, *in; char *prefix; char line[LINESIZE]; char pattern[LINESIZE]; int i; if( lemp->tokenprefix ) prefix = lemp->tokenprefix; else prefix = ""; in = file_open(lemp,".h","rb"); if( in ){ for(i=1; interminal && fgets(line,LINESIZE,in); i++){ sprintf(pattern,"#define %s%-30s %2d\n",prefix,lemp->symbols[i]->name,i); if( strcmp(line,pattern) ) break; } fclose(in); if( i==lemp->nterminal ){ /* No change in the file. Don't rewrite it. */ return; } } out = file_open(lemp,".h","wb"); if( out ){ for(i=1; interminal; i++){ fprintf(out,"#define %s%-30s %2d\n",prefix,lemp->symbols[i]->name,i); } fclose(out); } return; } /* Reduce the size of the action tables, if possible, by making use ** of defaults. ** ** In this version, we take the most frequent REDUCE action and make ** it the default. Except, there is no default if the wildcard token ** is a possible look-ahead. */ void CompressTables(lemp) struct lemon *lemp; { struct state *stp; struct action *ap, *ap2; struct rule *rp, *rp2, *rbest; int nbest, n; int i; int usesWildcard; for(i=0; instate; i++){ stp = lemp->sorted[i]; nbest = 0; rbest = 0; usesWildcard = 0; for(ap=stp->ap; ap; ap=ap->next){ if( ap->type==SHIFT && ap->sp==lemp->wildcard ){ usesWildcard = 1; } if( ap->type!=REDUCE ) continue; rp = ap->x.rp; if( rp->lhsStart ) continue; if( rp==rbest ) continue; n = 1; for(ap2=ap->next; ap2; ap2=ap2->next){ if( ap2->type!=REDUCE ) continue; rp2 = ap2->x.rp; if( rp2==rbest ) continue; if( rp2==rp ) n++; } if( n>nbest ){ nbest = n; rbest = rp; } } /* Do not make a default if the number of rules to default ** is not at least 1 or if the wildcard token is a possible ** lookahead. */ if( nbest<1 || usesWildcard ) continue; /* Combine matching REDUCE actions into a single default */ for(ap=stp->ap; ap; ap=ap->next){ if( ap->type==REDUCE && ap->x.rp==rbest ) break; } assert( ap ); ap->sp = Symbol_new("{default}"); for(ap=ap->next; ap; ap=ap->next){ if( ap->type==REDUCE && ap->x.rp==rbest ) ap->type = NOT_USED; } stp->ap = Action_sort(stp->ap); } } /* ** Compare two states for sorting purposes. The smaller state is the ** one with the most non-terminal actions. If they have the same number ** of non-terminal actions, then the smaller is the one with the most ** token actions. */ static int stateResortCompare(const void *a, const void *b){ const struct state *pA = *(const struct state**)a; const struct state *pB = *(const struct state**)b; int n; n = pB->nNtAct - pA->nNtAct; if( n==0 ){ n = pB->nTknAct - pA->nTknAct; } return n; } /* ** Renumber and resort states so that states with fewer choices ** occur at the end. Except, keep state 0 as the first state. */ void ResortStates(lemp) struct lemon *lemp; { int i; struct state *stp; struct action *ap; for(i=0; instate; i++){ stp = lemp->sorted[i]; stp->nTknAct = stp->nNtAct = 0; stp->iDflt = lemp->nstate + lemp->nrule; stp->iTknOfst = NO_OFFSET; stp->iNtOfst = NO_OFFSET; for(ap=stp->ap; ap; ap=ap->next){ if( compute_action(lemp,ap)>=0 ){ if( ap->sp->indexnterminal ){ stp->nTknAct++; }else if( ap->sp->indexnsymbol ){ stp->nNtAct++; }else{ stp->iDflt = compute_action(lemp, ap); } } } } qsort(&lemp->sorted[1], lemp->nstate-1, sizeof(lemp->sorted[0]), stateResortCompare); for(i=0; instate; i++){ lemp->sorted[i]->statenum = i; } } /***************** From the file "set.c" ************************************/ /* ** Set manipulation routines for the LEMON parser generator. */ static int size = 0; /* Set the set size */ void SetSize(n) int n; { size = n+1; } /* Allocate a new set */ char *SetNew(){ char *s; s = (char*)calloc( size, 1); if( s==0 ){ extern void memory_error(); memory_error(); } return s; } /* Deallocate a set */ void SetFree(s) char *s; { free(s); } /* Add a new element to the set. Return TRUE if the element was added ** and FALSE if it was already there. */ int SetAdd(s,e) char *s; int e; { int rv; assert( e>=0 && esize = 1024; x1a->count = 0; x1a->tbl = (x1node*)malloc( (sizeof(x1node) + sizeof(x1node*))*1024 ); if( x1a->tbl==0 ){ free(x1a); x1a = 0; }else{ int i; x1a->ht = (x1node**)&(x1a->tbl[1024]); for(i=0; i<1024; i++) x1a->ht[i] = 0; } } } /* Insert a new record into the array. Return TRUE if successful. ** Prior data with the same key is NOT overwritten */ int Strsafe_insert(data) char *data; { x1node *np; int h; int ph; if( x1a==0 ) return 0; ph = strhash(data); h = ph & (x1a->size-1); np = x1a->ht[h]; while( np ){ if( strcmp(np->data,data)==0 ){ /* An existing entry with the same key is found. */ /* Fail because overwrite is not allows. */ return 0; } np = np->next; } if( x1a->count>=x1a->size ){ /* Need to make the hash table bigger */ int i,size; struct s_x1 array; array.size = size = x1a->size*2; array.count = x1a->count; array.tbl = (x1node*)malloc( (sizeof(x1node) + sizeof(x1node*))*size ); if( array.tbl==0 ) return 0; /* Fail due to malloc failure */ array.ht = (x1node**)&(array.tbl[size]); for(i=0; icount; i++){ x1node *oldnp, *newnp; oldnp = &(x1a->tbl[i]); h = strhash(oldnp->data) & (size-1); newnp = &(array.tbl[i]); if( array.ht[h] ) array.ht[h]->from = &(newnp->next); newnp->next = array.ht[h]; newnp->data = oldnp->data; newnp->from = &(array.ht[h]); array.ht[h] = newnp; } free(x1a->tbl); *x1a = array; } /* Insert the new data */ h = ph & (x1a->size-1); np = &(x1a->tbl[x1a->count++]); np->data = data; if( x1a->ht[h] ) x1a->ht[h]->from = &(np->next); np->next = x1a->ht[h]; x1a->ht[h] = np; np->from = &(x1a->ht[h]); return 1; } /* Return a pointer to data assigned to the given key. Return NULL ** if no such key. */ char *Strsafe_find(key) char *key; { int h; x1node *np; if( x1a==0 ) return 0; h = strhash(key) & (x1a->size-1); np = x1a->ht[h]; while( np ){ if( strcmp(np->data,key)==0 ) break; np = np->next; } return np ? np->data : 0; } /* Return a pointer to the (terminal or nonterminal) symbol "x". ** Create a new symbol if this is the first time "x" has been seen. */ struct symbol *Symbol_new(x) char *x; { struct symbol *sp; sp = Symbol_find(x); if( sp==0 ){ sp = (struct symbol *)calloc(1, sizeof(struct symbol) ); MemoryCheck(sp); sp->name = Strsafe(x); sp->type = isupper(*x) ? TERMINAL : NONTERMINAL; sp->rule = 0; sp->fallback = 0; sp->prec = -1; sp->assoc = UNK; sp->firstset = 0; sp->lambda = LEMON_FALSE; sp->destructor = 0; sp->destLineno = 0; sp->datatype = 0; sp->useCnt = 0; Symbol_insert(sp,sp->name); } sp->useCnt++; return sp; } /* Compare two symbols for working purposes ** ** Symbols that begin with upper case letters (terminals or tokens) ** must sort before symbols that begin with lower case letters ** (non-terminals). Other than that, the order does not matter. ** ** We find experimentally that leaving the symbols in their original ** order (the order they appeared in the grammar file) gives the ** smallest parser tables in SQLite. */ int Symbolcmpp(struct symbol **a, struct symbol **b){ int i1 = (**a).index + 10000000*((**a).name[0]>'Z'); int i2 = (**b).index + 10000000*((**b).name[0]>'Z'); return i1-i2; } /* There is one instance of the following structure for each ** associative array of type "x2". */ struct s_x2 { int size; /* The number of available slots. */ /* Must be a power of 2 greater than or */ /* equal to 1 */ int count; /* Number of currently slots filled */ struct s_x2node *tbl; /* The data stored here */ struct s_x2node **ht; /* Hash table for lookups */ }; /* There is one instance of this structure for every data element ** in an associative array of type "x2". */ typedef struct s_x2node { struct symbol *data; /* The data */ char *key; /* The key */ struct s_x2node *next; /* Next entry with the same hash */ struct s_x2node **from; /* Previous link */ } x2node; /* There is only one instance of the array, which is the following */ static struct s_x2 *x2a; /* Allocate a new associative array */ void Symbol_init(){ if( x2a ) return; x2a = (struct s_x2*)malloc( sizeof(struct s_x2) ); if( x2a ){ x2a->size = 128; x2a->count = 0; x2a->tbl = (x2node*)malloc( (sizeof(x2node) + sizeof(x2node*))*128 ); if( x2a->tbl==0 ){ free(x2a); x2a = 0; }else{ int i; x2a->ht = (x2node**)&(x2a->tbl[128]); for(i=0; i<128; i++) x2a->ht[i] = 0; } } } /* Insert a new record into the array. Return TRUE if successful. ** Prior data with the same key is NOT overwritten */ int Symbol_insert(data,key) struct symbol *data; char *key; { x2node *np; int h; int ph; if( x2a==0 ) return 0; ph = strhash(key); h = ph & (x2a->size-1); np = x2a->ht[h]; while( np ){ if( strcmp(np->key,key)==0 ){ /* An existing entry with the same key is found. */ /* Fail because overwrite is not allows. */ return 0; } np = np->next; } if( x2a->count>=x2a->size ){ /* Need to make the hash table bigger */ int i,size; struct s_x2 array; array.size = size = x2a->size*2; array.count = x2a->count; array.tbl = (x2node*)malloc( (sizeof(x2node) + sizeof(x2node*))*size ); if( array.tbl==0 ) return 0; /* Fail due to malloc failure */ array.ht = (x2node**)&(array.tbl[size]); for(i=0; icount; i++){ x2node *oldnp, *newnp; oldnp = &(x2a->tbl[i]); h = strhash(oldnp->key) & (size-1); newnp = &(array.tbl[i]); if( array.ht[h] ) array.ht[h]->from = &(newnp->next); newnp->next = array.ht[h]; newnp->key = oldnp->key; newnp->data = oldnp->data; newnp->from = &(array.ht[h]); array.ht[h] = newnp; } free(x2a->tbl); *x2a = array; } /* Insert the new data */ h = ph & (x2a->size-1); np = &(x2a->tbl[x2a->count++]); np->key = key; np->data = data; if( x2a->ht[h] ) x2a->ht[h]->from = &(np->next); np->next = x2a->ht[h]; x2a->ht[h] = np; np->from = &(x2a->ht[h]); return 1; } /* Return a pointer to data assigned to the given key. Return NULL ** if no such key. */ struct symbol *Symbol_find(key) char *key; { int h; x2node *np; if( x2a==0 ) return 0; h = strhash(key) & (x2a->size-1); np = x2a->ht[h]; while( np ){ if( strcmp(np->key,key)==0 ) break; np = np->next; } return np ? np->data : 0; } /* Return the n-th data. Return NULL if n is out of range. */ struct symbol *Symbol_Nth(n) int n; { struct symbol *data; if( x2a && n>0 && n<=x2a->count ){ data = x2a->tbl[n-1].data; }else{ data = 0; } return data; } /* Return the size of the array */ int Symbol_count() { return x2a ? x2a->count : 0; } /* Return an array of pointers to all data in the table. ** The array is obtained from malloc. Return NULL if memory allocation ** problems, or if the array is empty. */ struct symbol **Symbol_arrayof() { struct symbol **array; int i,size; if( x2a==0 ) return 0; size = x2a->count; array = (struct symbol **)calloc(size, sizeof(struct symbol *)); if( array ){ for(i=0; itbl[i].data; } return array; } /* Compare two configurations */ int Configcmp(a,b) struct config *a; struct config *b; { int x; x = a->rp->index - b->rp->index; if( x==0 ) x = a->dot - b->dot; return x; } /* Compare two states */ PRIVATE int statecmp(a,b) struct config *a; struct config *b; { int rc; for(rc=0; rc==0 && a && b; a=a->bp, b=b->bp){ rc = a->rp->index - b->rp->index; if( rc==0 ) rc = a->dot - b->dot; } if( rc==0 ){ if( a ) rc = 1; if( b ) rc = -1; } return rc; } /* Hash a state */ PRIVATE int statehash(a) struct config *a; { int h=0; while( a ){ h = h*571 + a->rp->index*37 + a->dot; a = a->bp; } return h; } /* Allocate a new state structure */ struct state *State_new() { struct state *new; new = (struct state *)calloc(1, sizeof(struct state) ); MemoryCheck(new); return new; } /* There is one instance of the following structure for each ** associative array of type "x3". */ struct s_x3 { int size; /* The number of available slots. */ /* Must be a power of 2 greater than or */ /* equal to 1 */ int count; /* Number of currently slots filled */ struct s_x3node *tbl; /* The data stored here */ struct s_x3node **ht; /* Hash table for lookups */ }; /* There is one instance of this structure for every data element ** in an associative array of type "x3". */ typedef struct s_x3node { struct state *data; /* The data */ struct config *key; /* The key */ struct s_x3node *next; /* Next entry with the same hash */ struct s_x3node **from; /* Previous link */ } x3node; /* There is only one instance of the array, which is the following */ static struct s_x3 *x3a; /* Allocate a new associative array */ void State_init(){ if( x3a ) return; x3a = (struct s_x3*)malloc( sizeof(struct s_x3) ); if( x3a ){ x3a->size = 128; x3a->count = 0; x3a->tbl = (x3node*)malloc( (sizeof(x3node) + sizeof(x3node*))*128 ); if( x3a->tbl==0 ){ free(x3a); x3a = 0; }else{ int i; x3a->ht = (x3node**)&(x3a->tbl[128]); for(i=0; i<128; i++) x3a->ht[i] = 0; } } } /* Insert a new record into the array. Return TRUE if successful. ** Prior data with the same key is NOT overwritten */ int State_insert(data,key) struct state *data; struct config *key; { x3node *np; int h; int ph; if( x3a==0 ) return 0; ph = statehash(key); h = ph & (x3a->size-1); np = x3a->ht[h]; while( np ){ if( statecmp(np->key,key)==0 ){ /* An existing entry with the same key is found. */ /* Fail because overwrite is not allows. */ return 0; } np = np->next; } if( x3a->count>=x3a->size ){ /* Need to make the hash table bigger */ int i,size; struct s_x3 array; array.size = size = x3a->size*2; array.count = x3a->count; array.tbl = (x3node*)malloc( (sizeof(x3node) + sizeof(x3node*))*size ); if( array.tbl==0 ) return 0; /* Fail due to malloc failure */ array.ht = (x3node**)&(array.tbl[size]); for(i=0; icount; i++){ x3node *oldnp, *newnp; oldnp = &(x3a->tbl[i]); h = statehash(oldnp->key) & (size-1); newnp = &(array.tbl[i]); if( array.ht[h] ) array.ht[h]->from = &(newnp->next); newnp->next = array.ht[h]; newnp->key = oldnp->key; newnp->data = oldnp->data; newnp->from = &(array.ht[h]); array.ht[h] = newnp; } free(x3a->tbl); *x3a = array; } /* Insert the new data */ h = ph & (x3a->size-1); np = &(x3a->tbl[x3a->count++]); np->key = key; np->data = data; if( x3a->ht[h] ) x3a->ht[h]->from = &(np->next); np->next = x3a->ht[h]; x3a->ht[h] = np; np->from = &(x3a->ht[h]); return 1; } /* Return a pointer to data assigned to the given key. Return NULL ** if no such key. */ struct state *State_find(key) struct config *key; { int h; x3node *np; if( x3a==0 ) return 0; h = statehash(key) & (x3a->size-1); np = x3a->ht[h]; while( np ){ if( statecmp(np->key,key)==0 ) break; np = np->next; } return np ? np->data : 0; } /* Return an array of pointers to all data in the table. ** The array is obtained from malloc. Return NULL if memory allocation ** problems, or if the array is empty. */ struct state **State_arrayof() { struct state **array; int i,size; if( x3a==0 ) return 0; size = x3a->count; array = (struct state **)malloc( sizeof(struct state *)*size ); if( array ){ for(i=0; itbl[i].data; } return array; } /* Hash a configuration */ PRIVATE int confighash(a) struct config *a; { int h=0; h = h*571 + a->rp->index*37 + a->dot; return h; } /* There is one instance of the following structure for each ** associative array of type "x4". */ struct s_x4 { int size; /* The number of available slots. */ /* Must be a power of 2 greater than or */ /* equal to 1 */ int count; /* Number of currently slots filled */ struct s_x4node *tbl; /* The data stored here */ struct s_x4node **ht; /* Hash table for lookups */ }; /* There is one instance of this structure for every data element ** in an associative array of type "x4". */ typedef struct s_x4node { struct config *data; /* The data */ struct s_x4node *next; /* Next entry with the same hash */ struct s_x4node **from; /* Previous link */ } x4node; /* There is only one instance of the array, which is the following */ static struct s_x4 *x4a; /* Allocate a new associative array */ void Configtable_init(){ if( x4a ) return; x4a = (struct s_x4*)malloc( sizeof(struct s_x4) ); if( x4a ){ x4a->size = 64; x4a->count = 0; x4a->tbl = (x4node*)malloc( (sizeof(x4node) + sizeof(x4node*))*64 ); if( x4a->tbl==0 ){ free(x4a); x4a = 0; }else{ int i; x4a->ht = (x4node**)&(x4a->tbl[64]); for(i=0; i<64; i++) x4a->ht[i] = 0; } } } /* Insert a new record into the array. Return TRUE if successful. ** Prior data with the same key is NOT overwritten */ int Configtable_insert(data) struct config *data; { x4node *np; int h; int ph; if( x4a==0 ) return 0; ph = confighash(data); h = ph & (x4a->size-1); np = x4a->ht[h]; while( np ){ if( Configcmp(np->data,data)==0 ){ /* An existing entry with the same key is found. */ /* Fail because overwrite is not allows. */ return 0; } np = np->next; } if( x4a->count>=x4a->size ){ /* Need to make the hash table bigger */ int i,size; struct s_x4 array; array.size = size = x4a->size*2; array.count = x4a->count; array.tbl = (x4node*)malloc( (sizeof(x4node) + sizeof(x4node*))*size ); if( array.tbl==0 ) return 0; /* Fail due to malloc failure */ array.ht = (x4node**)&(array.tbl[size]); for(i=0; icount; i++){ x4node *oldnp, *newnp; oldnp = &(x4a->tbl[i]); h = confighash(oldnp->data) & (size-1); newnp = &(array.tbl[i]); if( array.ht[h] ) array.ht[h]->from = &(newnp->next); newnp->next = array.ht[h]; newnp->data = oldnp->data; newnp->from = &(array.ht[h]); array.ht[h] = newnp; } free(x4a->tbl); *x4a = array; } /* Insert the new data */ h = ph & (x4a->size-1); np = &(x4a->tbl[x4a->count++]); np->data = data; if( x4a->ht[h] ) x4a->ht[h]->from = &(np->next); np->next = x4a->ht[h]; x4a->ht[h] = np; np->from = &(x4a->ht[h]); return 1; } /* Return a pointer to data assigned to the given key. Return NULL ** if no such key. */ struct config *Configtable_find(key) struct config *key; { int h; x4node *np; if( x4a==0 ) return 0; h = confighash(key) & (x4a->size-1); np = x4a->ht[h]; while( np ){ if( Configcmp(np->data,key)==0 ) break; np = np->next; } return np ? np->data : 0; } /* Remove all data from the table. Pass each data to the function "f" ** as it is removed. ("f" may be null to avoid this step.) */ void Configtable_clear(f) int(*f)(/* struct config * */); { int i; if( x4a==0 || x4a->count==0 ) return; if( f ) for(i=0; icount; i++) (*f)(x4a->tbl[i].data); for(i=0; isize; i++) x4a->ht[i] = 0; x4a->count = 0; return; } libspatialite-4.1.1/src/gaiageo/lemon/vanuatuWkt.y0000664000175000017500000010405712163502133017131 00000000000000/* vanuatuWkt.y -- Vanuatu WKT parser - LEMON config version 2.4, 2010 April 2 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): The Vanuatu Team - University of Toronto Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /****************************************************************************** ** The following code was created by Team Vanuatu of The University of Toronto. Authors: Ruppi Rana ruppi.rana@gmail.com Dev Tanna dev.tanna@gmail.com Elias Adum elias.adum@gmail.com Benton Hui benton.hui@gmail.com Abhayan Sundararajan abhayan@gmail.com Chee-Lun Michael Stephen Cho cheelun.cho@gmail.com Nikola Banovic nikola.banovic@gmail.com Yong Jian yong.jian@utoronto.ca Supervisor: Greg Wilson gvwilson@cs.toronto.ca ------------------------------------------------------------------------------- */ // Tokens are void pointers (so we can cast them to whatever we want) %token_type {void *} // Output to stderr when stack overflows %stack_overflow { spatialite_e( "Giving up. Parser stack overflow\n"); } // Increase this number if necessary %stack_size 1000000 // Header files to be included in vanuatuWkt.c %include { } // Set the return value of gaiaParseWkt in the following pointer: %extra_argument { struct vanuatu_data *p_data } // Invalid syntax (ie. no rules matched) %syntax_error { /* ** Sandro Furieri 2010 Apr 4 ** when the LEMON parser encounters an error ** then this global variable is set */ p_data->vanuatu_parse_error = 1; p_data->result = NULL; } /* This is to terminate with a new line */ main ::= in. in ::= . in ::= in state VANUATU_NEWLINE. state ::= program. /* * program is the start node. All strings matched by this CFG must be one of * geo_text (text describing a 2D geometry), * geo_textz (text describing a 3D geometry), * geo_textm (text describing a 2D geometry with a measure) * geo_textzm (text describing a 3D geometry with a measure) */ program ::= geo_text. program ::= geo_textz. program ::= geo_textm. program ::= geo_textzm. // 2D geometries (no measure): geo_text ::= point(P). { p_data->result = P; } // P is a geometry collection containing a point geo_text ::= linestring(L). { p_data->result = L; } // L is a geometry collection containing a linestring geo_text ::= polygon(P). { p_data->result = P; } // P is a geometry collection containing a polygon geo_text ::= multipoint(M). { p_data->result = M; } // M is a geometry collection containing a multipoint geo_text ::= multilinestring(M). { p_data->result = M; } // M is a geometry collection containing a multilinestring geo_text ::= multipolygon(M). { p_data->result = M; } // M is a geometry collection containing a multipolygon geo_text ::= geocoll(H). { p_data->result = H; } // H is a geometry collection created from user input // 3D geometries (no measure): geo_textz ::= pointz(P). { p_data->result = P; } geo_textz ::= linestringz(L). { p_data->result = L; } geo_textz ::= polygonz(P). { p_data->result = P; } geo_textz ::= multipointz(M). { p_data->result = M; } geo_textz ::= multilinestringz(M). { p_data->result = M; } geo_textz ::= multipolygonz(M). { p_data->result = M; } geo_textz ::= geocollz(H). { p_data->result = H; } // 2D geometries (with a measure): geo_textm ::= pointm(P). { p_data->result = P; } geo_textm ::= linestringm(L). { p_data->result = L; } geo_textm ::= polygonm(P). { p_data->result = P; } geo_textm ::= multipointm(M). { p_data->result = M; } geo_textm ::= multilinestringm(M). { p_data->result = M; } geo_textm ::= multipolygonm(M). { p_data->result = M; } geo_textm ::= geocollm(H). { p_data->result = H; } // 3D geometries (with a measure): geo_textzm ::= pointzm(P). { p_data->result = P; } geo_textzm ::= linestringzm(L). { p_data->result = L; } geo_textzm ::= polygonzm(P). { p_data->result = P; } geo_textzm ::= multipointzm(M). { p_data->result = M; } geo_textzm ::= multilinestringzm(M). { p_data->result = M; } geo_textzm ::= multipolygonzm(M). { p_data->result = M; } geo_textzm ::= geocollzm(H). { p_data->result = H; } // Syntax for a "point" object: // The functions called build a geometry collection from a gaiaPointPtr point(P) ::= VANUATU_POINT VANUATU_OPEN_BRACKET point_coordxy(Q) VANUATU_CLOSE_BRACKET. { P = vanuatu_buildGeomFromPoint( p_data, (gaiaPointPtr)Q); } pointm(P) ::= VANUATU_POINT_M VANUATU_OPEN_BRACKET point_coordxym(Q) VANUATU_CLOSE_BRACKET. { P = vanuatu_buildGeomFromPoint( p_data, (gaiaPointPtr)Q); } pointz(P) ::= VANUATU_POINT_Z VANUATU_OPEN_BRACKET point_coordxyz(Q) VANUATU_CLOSE_BRACKET. { P = vanuatu_buildGeomFromPoint( p_data, (gaiaPointPtr)Q); } pointzm(P) ::= VANUATU_POINT_ZM VANUATU_OPEN_BRACKET point_coordxyzm(Q) VANUATU_CLOSE_BRACKET. { P = vanuatu_buildGeomFromPoint( p_data, (gaiaPointPtr)Q); } // Point coordinates in different dimensions: MultiPoint((pt),(pt)) // Create the point by calling the proper function in SpatiaLite : point_brkt_coordxy(P) ::= VANUATU_OPEN_BRACKET coord(X) coord(Y) VANUATU_CLOSE_BRACKET. { P = (void *) vanuatu_point_xy( p_data, (double *)X, (double *)Y); } point_brkt_coordxym(P) ::= VANUATU_OPEN_BRACKET coord(X) coord(Y) coord(M) VANUATU_CLOSE_BRACKET. { P = (void *) vanuatu_point_xym( p_data, (double *)X, (double *)Y, (double *)M); } point_brkt_coordxyz(P) ::= VANUATU_OPEN_BRACKET coord(X) coord(Y) coord(Z) VANUATU_CLOSE_BRACKET. { P = (void *) vanuatu_point_xyz( p_data, (double *)X, (double *)Y, (double *)Z); } point_brkt_coordxyzm(P) ::= VANUATU_OPEN_BRACKET coord(X) coord(Y) coord(Z) coord(M) VANUATU_CLOSE_BRACKET. { P = (void *) vanuatu_point_xyzm( p_data, (double *)X, (double *)Y, (double *)Z, (double *)M); } // Point coordinates in different dimensions. // Create the point by calling the proper function in SpatiaLite : point_coordxy(P) ::= coord(X) coord(Y). { P = (void *) vanuatu_point_xy( p_data, (double *)X, (double *)Y); } point_coordxym(P) ::= coord(X) coord(Y) coord(M). { P = (void *) vanuatu_point_xym( p_data, (double *)X, (double *)Y, (double *)M); } point_coordxyz(P) ::= coord(X) coord(Y) coord(Z). { P = (void *) vanuatu_point_xyz( p_data, (double *)X, (double *)Y, (double *)Z); } point_coordxyzm(P) ::= coord(X) coord(Y) coord(Z) coord(M). { P = (void *) vanuatu_point_xyzm( p_data, (double *)X, (double *)Y, (double *)Z, (double *)M); } // All coordinates are assumed to be doubles (guaranteed by the flex tokenizer). coord(A) ::= VANUATU_NUM(B). { A = B; } // Rules to match an infinite number of points: MultiPoint((pt), (pt)) // Also links the generated gaiaPointPtrs together extra_brkt_pointsxy(A) ::= . { A = NULL; } extra_brkt_pointsxy(A) ::= VANUATU_COMMA point_brkt_coordxy(P) extra_brkt_pointsxy(B). { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)B; A = P; } extra_brkt_pointsxym(A) ::= . { A = NULL; } extra_brkt_pointsxym(A) ::= VANUATU_COMMA point_brkt_coordxym(P) extra_brkt_pointsxym(B). { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)B; A = P; } extra_brkt_pointsxyz(A) ::= . { A = NULL; } extra_brkt_pointsxyz(A) ::= VANUATU_COMMA point_brkt_coordxyz(P) extra_brkt_pointsxyz(B). { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)B; A = P; } extra_brkt_pointsxyzm(A) ::= . { A = NULL; } extra_brkt_pointsxyzm(A) ::= VANUATU_COMMA point_brkt_coordxyzm(P) extra_brkt_pointsxyzm(B). { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)B; A = P; } // Rules to match an infinite number of points: // Also links the generated gaiaPointPtrs together extra_pointsxy(A) ::= . { A = NULL; } extra_pointsxy(A) ::= VANUATU_COMMA point_coordxy(P) extra_pointsxy(B). { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)B; A = P; } extra_pointsxym(A) ::= . { A = NULL; } extra_pointsxym(A) ::= VANUATU_COMMA point_coordxym(P) extra_pointsxym(B). { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)B; A = P; } extra_pointsxyz(A) ::= . { A = NULL; } extra_pointsxyz(A) ::= VANUATU_COMMA point_coordxyz(P) extra_pointsxyz(B). { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)B; A = P; } extra_pointsxyzm(A) ::= . { A = NULL; } extra_pointsxyzm(A) ::= VANUATU_COMMA point_coordxyzm(P) extra_pointsxyzm(B). { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)B; A = P; } // Syntax for a "linestring" object: // The functions called build a geometry collection from a gaiaLinestringPtr linestring(L) ::= VANUATU_LINESTRING linestring_text(X). { L = vanuatu_buildGeomFromLinestring( p_data, (gaiaLinestringPtr)X); } linestringm(L) ::= VANUATU_LINESTRING_M linestring_textm(X). { L = vanuatu_buildGeomFromLinestring( p_data, (gaiaLinestringPtr)X); } linestringz(L) ::= VANUATU_LINESTRING_Z linestring_textz(X). { L = vanuatu_buildGeomFromLinestring( p_data, (gaiaLinestringPtr)X); } linestringzm(L) ::= VANUATU_LINESTRING_ZM linestring_textzm(X). { L = vanuatu_buildGeomFromLinestring( p_data, (gaiaLinestringPtr)X); } // A valid linestring must have at least two vertices: // The functions called build a gaiaLinestring from a linked list of points linestring_text(L) ::= VANUATU_OPEN_BRACKET point_coordxy(P) VANUATU_COMMA point_coordxy(Q) extra_pointsxy(R) VANUATU_CLOSE_BRACKET. { ((gaiaPointPtr)Q)->Next = (gaiaPointPtr)R; ((gaiaPointPtr)P)->Next = (gaiaPointPtr)Q; L = (void *) vanuatu_linestring_xy( p_data, (gaiaPointPtr)P); } linestring_textm(L) ::= VANUATU_OPEN_BRACKET point_coordxym(P) VANUATU_COMMA point_coordxym(Q) extra_pointsxym(R) VANUATU_CLOSE_BRACKET. { ((gaiaPointPtr)Q)->Next = (gaiaPointPtr)R; ((gaiaPointPtr)P)->Next = (gaiaPointPtr)Q; L = (void *) vanuatu_linestring_xym( p_data, (gaiaPointPtr)P); } linestring_textz(L) ::= VANUATU_OPEN_BRACKET point_coordxyz(P) VANUATU_COMMA point_coordxyz(Q) extra_pointsxyz(R) VANUATU_CLOSE_BRACKET. { ((gaiaPointPtr)Q)->Next = (gaiaPointPtr)R; ((gaiaPointPtr)P)->Next = (gaiaPointPtr)Q; L = (void *) vanuatu_linestring_xyz( p_data, (gaiaPointPtr)P); } linestring_textzm(L) ::= VANUATU_OPEN_BRACKET point_coordxyzm(P) VANUATU_COMMA point_coordxyzm(Q) extra_pointsxyzm(R) VANUATU_CLOSE_BRACKET. { ((gaiaPointPtr)Q)->Next = (gaiaPointPtr)R; ((gaiaPointPtr)P)->Next = (gaiaPointPtr)Q; L = (void *) vanuatu_linestring_xyzm( p_data, (gaiaPointPtr)P); } // Syntax for a "polygon" object: // The functions called build a geometry collection from a gaiaPolygonPtr polygon(P) ::= VANUATU_POLYGON polygon_text(X). { P = vanuatu_buildGeomFromPolygon( p_data, (gaiaPolygonPtr)X); } polygonm(P) ::= VANUATU_POLYGON_M polygon_textm(X). { P = vanuatu_buildGeomFromPolygon( p_data, (gaiaPolygonPtr)X); } polygonz(P) ::= VANUATU_POLYGON_Z polygon_textz(X). { P = vanuatu_buildGeomFromPolygon( p_data, (gaiaPolygonPtr)X); } polygonzm(P) ::= VANUATU_POLYGON_ZM polygon_textzm(X). { P = vanuatu_buildGeomFromPolygon( p_data, (gaiaPolygonPtr)X); } // A valid polygon must have at least one ring: // The functions called build a gaiaPolygonPtr from a linked list of gaiaRingPtrs polygon_text(P) ::= VANUATU_OPEN_BRACKET ring(R) extra_rings(E) VANUATU_CLOSE_BRACKET. { ((gaiaRingPtr)R)->Next = (gaiaRingPtr)E; P = (void *) vanuatu_polygon_xy( p_data, (gaiaRingPtr)R); } polygon_textm(P) ::= VANUATU_OPEN_BRACKET ringm(R) extra_ringsm(E) VANUATU_CLOSE_BRACKET. { ((gaiaRingPtr)R)->Next = (gaiaRingPtr)E; P = (void *) vanuatu_polygon_xym( p_data, (gaiaRingPtr)R); } polygon_textz(P) ::= VANUATU_OPEN_BRACKET ringz(R) extra_ringsz(E) VANUATU_CLOSE_BRACKET. { ((gaiaRingPtr)R)->Next = (gaiaRingPtr)E; P = (void *) vanuatu_polygon_xyz( p_data, (gaiaRingPtr)R); } polygon_textzm(P) ::= VANUATU_OPEN_BRACKET ringzm(R) extra_ringszm(E) VANUATU_CLOSE_BRACKET. { ((gaiaRingPtr)R)->Next = (gaiaRingPtr)E; P = (void *) vanuatu_polygon_xyzm( p_data, (gaiaRingPtr)R); } // A valid ring must have at least 4 points // The functions called build a gaiaRingPtr from a linked list of gaiaPointPtrs ring(R) ::= VANUATU_OPEN_BRACKET point_coordxy(A) VANUATU_COMMA point_coordxy(B) VANUATU_COMMA point_coordxy(C) VANUATU_COMMA point_coordxy(D) extra_pointsxy(E) VANUATU_CLOSE_BRACKET. { ((gaiaPointPtr)A)->Next = (gaiaPointPtr)B; ((gaiaPointPtr)B)->Next = (gaiaPointPtr)C; ((gaiaPointPtr)C)->Next = (gaiaPointPtr)D; ((gaiaPointPtr)D)->Next = (gaiaPointPtr)E; R = (void *) vanuatu_ring_xy( p_data, (gaiaPointPtr)A); } // To match more than one 2D ring: extra_rings(R) ::= . { R = NULL; } extra_rings(R) ::= VANUATU_COMMA ring(S) extra_rings(T). { ((gaiaRingPtr)S)->Next = (gaiaRingPtr)T; R = S; } ringm(R) ::= VANUATU_OPEN_BRACKET point_coordxym(A) VANUATU_COMMA point_coordxym(B) VANUATU_COMMA point_coordxym(C) VANUATU_COMMA point_coordxym(D) extra_pointsxym(E) VANUATU_CLOSE_BRACKET. { ((gaiaPointPtr)A)->Next = (gaiaPointPtr)B; ((gaiaPointPtr)B)->Next = (gaiaPointPtr)C; ((gaiaPointPtr)C)->Next = (gaiaPointPtr)D; ((gaiaPointPtr)D)->Next = (gaiaPointPtr)E; R = (void *) vanuatu_ring_xym( p_data, (gaiaPointPtr)A); } // To match more than one 2D (with a measure) ring: extra_ringsm(R) ::= . { R = NULL; } extra_ringsm(R) ::= VANUATU_COMMA ringm(S) extra_ringsm(T). { ((gaiaRingPtr)S)->Next = (gaiaRingPtr)T; R = S; } ringz(R) ::= VANUATU_OPEN_BRACKET point_coordxyz(A) VANUATU_COMMA point_coordxyz(B) VANUATU_COMMA point_coordxyz(C) VANUATU_COMMA point_coordxyz(D) extra_pointsxyz(E) VANUATU_CLOSE_BRACKET. { ((gaiaPointPtr)A)->Next = (gaiaPointPtr)B; ((gaiaPointPtr)B)->Next = (gaiaPointPtr)C; ((gaiaPointPtr)C)->Next = (gaiaPointPtr)D; ((gaiaPointPtr)D)->Next = (gaiaPointPtr)E; R = (void *) vanuatu_ring_xyz( p_data, (gaiaPointPtr)A); } // To match more than one 3D ring: extra_ringsz(R) ::= . { R = NULL; } extra_ringsz(R) ::= VANUATU_COMMA ringz(S) extra_ringsz(T). { ((gaiaRingPtr)S)->Next = (gaiaRingPtr)T; R = S; } ringzm(R) ::= VANUATU_OPEN_BRACKET point_coordxyzm(A) VANUATU_COMMA point_coordxyzm(B) VANUATU_COMMA point_coordxyzm(C) VANUATU_COMMA point_coordxyzm(D) extra_pointsxyzm(E) VANUATU_CLOSE_BRACKET. { ((gaiaPointPtr)A)->Next = (gaiaPointPtr)B; ((gaiaPointPtr)B)->Next = (gaiaPointPtr)C; ((gaiaPointPtr)C)->Next = (gaiaPointPtr)D; ((gaiaPointPtr)D)->Next = (gaiaPointPtr)E; R = (void *) vanuatu_ring_xyzm( p_data, (gaiaPointPtr)A); } // To match more than one 3D (with a measure) ring: extra_ringszm(R) ::= . { R = NULL; } extra_ringszm(R) ::= VANUATU_COMMA ringzm(S) extra_ringszm(T). { ((gaiaRingPtr)S)->Next = (gaiaRingPtr)T; R = S; } // Syntax for a "multipoint" object: // X in the following lines is a geometry collection containing a multipoint multipoint(M) ::= VANUATU_MULTIPOINT multipoint_text(X). { M = X; } multipointm(M) ::= VANUATU_MULTIPOINT_M multipoint_textm(X). { M = X; } multipointz(M) ::= VANUATU_MULTIPOINT_Z multipoint_textz(X). { M = X; } multipointzm(M) ::= VANUATU_MULTIPOINT_ZM multipoint_textzm(X). { M = X; } // Multipoints can contain any number of points (but at least one): // The functions called build a geometry collection containing a multipoint multipoint_text(M) ::= VANUATU_OPEN_BRACKET point_coordxy(P) extra_pointsxy(Q) VANUATU_CLOSE_BRACKET. { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)Q; M = (void *) vanuatu_multipoint_xy( p_data, (gaiaPointPtr)P); } multipoint_textm(M) ::= VANUATU_OPEN_BRACKET point_coordxym(P) extra_pointsxym(Q) VANUATU_CLOSE_BRACKET. { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)Q; M = (void *) vanuatu_multipoint_xym( p_data, (gaiaPointPtr)P); } multipoint_textz(M) ::= VANUATU_OPEN_BRACKET point_coordxyz(P) extra_pointsxyz(Q) VANUATU_CLOSE_BRACKET. { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)Q; M = (void *) vanuatu_multipoint_xyz( p_data, (gaiaPointPtr)P); } multipoint_textzm(M) ::= VANUATU_OPEN_BRACKET point_coordxyzm(P) extra_pointsxyzm(Q) VANUATU_CLOSE_BRACKET. { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)Q; M = (void *) vanuatu_multipoint_xyzm( p_data, (gaiaPointPtr)P); } multipoint_text(M) ::= VANUATU_OPEN_BRACKET point_brkt_coordxy(P) extra_brkt_pointsxy(Q) VANUATU_CLOSE_BRACKET. { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)Q; M = (void *) vanuatu_multipoint_xy( p_data, (gaiaPointPtr)P); } multipoint_textm(M) ::= VANUATU_OPEN_BRACKET point_brkt_coordxym(P) extra_brkt_pointsxym(Q) VANUATU_CLOSE_BRACKET. { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)Q; M = (void *) vanuatu_multipoint_xym( p_data, (gaiaPointPtr)P); } multipoint_textz(M) ::= VANUATU_OPEN_BRACKET point_brkt_coordxyz(P) extra_brkt_pointsxyz(Q) VANUATU_CLOSE_BRACKET. { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)Q; M = (void *) vanuatu_multipoint_xyz( p_data, (gaiaPointPtr)P); } multipoint_textzm(M) ::= VANUATU_OPEN_BRACKET point_brkt_coordxyzm(P) extra_brkt_pointsxyzm(Q) VANUATU_CLOSE_BRACKET. { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)Q; M = (void *) vanuatu_multipoint_xyzm( p_data, (gaiaPointPtr)P); } // Syntax for a "multilinestring" object: // X in the following lines refers to a geometry collection containing a multilinestring multilinestring(M) ::= VANUATU_MULTILINESTRING multilinestring_text(X). { M = X; } multilinestringm(M) ::= VANUATU_MULTILINESTRING_M multilinestring_textm(X). { M = X; } multilinestringz(M) ::= VANUATU_MULTILINESTRING_Z multilinestring_textz(X). { M = X; } multilinestringzm(M) ::= VANUATU_MULTILINESTRING_ZM multilinestring_textzm(X). { M = X; } // Multilinestrings can contain any number of linestrings (but at least one): // The functions called build a geometry collection containing a multilinestring multilinestring_text(M) ::= VANUATU_OPEN_BRACKET linestring_text(L) multilinestring_text2(X) VANUATU_CLOSE_BRACKET. { ((gaiaLinestringPtr)L)->Next = (gaiaLinestringPtr)X; M = (void *) vanuatu_multilinestring_xy( p_data, (gaiaLinestringPtr)L); } // Extra linestrings multilinestring_text2(X) ::= . { X = NULL; } multilinestring_text2(X) ::= VANUATU_COMMA linestring_text(L) multilinestring_text2(Y). { ((gaiaLinestringPtr)L)->Next = (gaiaLinestringPtr)Y; X = L; } multilinestring_textm(M) ::= VANUATU_OPEN_BRACKET linestring_textm(L) multilinestring_textm2(X) VANUATU_CLOSE_BRACKET. { ((gaiaLinestringPtr)L)->Next = (gaiaLinestringPtr)X; M = (void *) vanuatu_multilinestring_xym( p_data, (gaiaLinestringPtr)L); } multilinestring_textm2(X) ::= . { X = NULL; } multilinestring_textm2(X) ::= VANUATU_COMMA linestring_textm(L) multilinestring_textm2(Y). { ((gaiaLinestringPtr)L)->Next = (gaiaLinestringPtr)Y; X = L; } multilinestring_textz(M) ::= VANUATU_OPEN_BRACKET linestring_textz(L) multilinestring_textz2(X) VANUATU_CLOSE_BRACKET. { ((gaiaLinestringPtr)L)->Next = (gaiaLinestringPtr)X; M = (void *) vanuatu_multilinestring_xyz( p_data, (gaiaLinestringPtr)L); } multilinestring_textz2(X) ::= . { X = NULL; } multilinestring_textz2(X) ::= VANUATU_COMMA linestring_textz(L) multilinestring_textz2(Y). { ((gaiaLinestringPtr)L)->Next = (gaiaLinestringPtr)Y; X = L; } multilinestring_textzm(M) ::= VANUATU_OPEN_BRACKET linestring_textzm(L) multilinestring_textzm2(X) VANUATU_CLOSE_BRACKET. { ((gaiaLinestringPtr)L)->Next = (gaiaLinestringPtr)X; M = (void *) vanuatu_multilinestring_xyzm( p_data, (gaiaLinestringPtr)L); } multilinestring_textzm2(X) ::= . { X = NULL; } multilinestring_textzm2(X) ::= VANUATU_COMMA linestring_textzm(L) multilinestring_textzm2(Y). { ((gaiaLinestringPtr)L)->Next = (gaiaLinestringPtr)Y; X = L; } // Syntax for a "multipolygon" object // X in the following lines refers to a geometry collection containing a multipolygon multipolygon(M) ::= VANUATU_MULTIPOLYGON multipolygon_text(X). { M = X; } multipolygonm(M) ::= VANUATU_MULTIPOLYGON_M multipolygon_textm(X). { M = X; } multipolygonz(M) ::= VANUATU_MULTIPOLYGON_Z multipolygon_textz(X). { M = X; } multipolygonzm(M) ::= VANUATU_MULTIPOLYGON_ZM multipolygon_textzm(X). { M = X; } // Multipolygons can contain any number of polygons (but at least one): // The functions called build a geometry collection containing a multipolygon multipolygon_text(M) ::= VANUATU_OPEN_BRACKET polygon_text(P) multipolygon_text2(Q) VANUATU_CLOSE_BRACKET. { ((gaiaPolygonPtr)P)->Next = (gaiaPolygonPtr)Q; M = (void *) vanuatu_multipolygon_xy( p_data, (gaiaPolygonPtr)P); } // Extra polygons multipolygon_text2(Q) ::= . { Q = NULL; } multipolygon_text2(A) ::= VANUATU_COMMA polygon_text(P) multipolygon_text2(B). { ((gaiaPolygonPtr)P)->Next = (gaiaPolygonPtr)B; A = P; } multipolygon_textm(M) ::= VANUATU_OPEN_BRACKET polygon_textm(P) multipolygon_textm2(Q) VANUATU_CLOSE_BRACKET. { ((gaiaPolygonPtr)P)->Next = (gaiaPolygonPtr)Q; M = (void *) vanuatu_multipolygon_xym( p_data, (gaiaPolygonPtr)P); } multipolygon_textm2(Q) ::= . { Q = NULL; } multipolygon_textm2(A) ::= VANUATU_COMMA polygon_textm(P) multipolygon_textm2(B). { ((gaiaPolygonPtr)P)->Next = (gaiaPolygonPtr)B; A = P; } multipolygon_textz(M) ::= VANUATU_OPEN_BRACKET polygon_textz(P) multipolygon_textz2(Q) VANUATU_CLOSE_BRACKET. { ((gaiaPolygonPtr)P)->Next = (gaiaPolygonPtr)Q; M = (void *) vanuatu_multipolygon_xyz( p_data, (gaiaPolygonPtr)P); } multipolygon_textz2(Q) ::= . { Q = NULL; } multipolygon_textz2(A) ::= VANUATU_COMMA polygon_textz(P) multipolygon_textz2(B). { ((gaiaPolygonPtr)P)->Next = (gaiaPolygonPtr)B; A = P; } multipolygon_textzm(M) ::= VANUATU_OPEN_BRACKET polygon_textzm(P) multipolygon_textzm2(Q) VANUATU_CLOSE_BRACKET. { ((gaiaPolygonPtr)P)->Next = (gaiaPolygonPtr)Q; M = (void *) vanuatu_multipolygon_xyzm( p_data, (gaiaPolygonPtr)P); } multipolygon_textzm2(Q) ::= . { Q = NULL; } multipolygon_textzm2(A) ::= VANUATU_COMMA polygon_textzm(P) multipolygon_textzm2(B). { ((gaiaPolygonPtr)P)->Next = (gaiaPolygonPtr)B; A = P; } // Syntax for a "geometrycollection" object: // X in the following lines refers to a geometry collection generated based on user input geocoll(G) ::= VANUATU_GEOMETRYCOLLECTION geocoll_text(X). { G = X; } geocollm(G) ::= VANUATU_GEOMETRYCOLLECTION_M geocoll_textm(X). { G = X; } geocollz(G) ::= VANUATU_GEOMETRYCOLLECTION_Z geocoll_textz(X). { G = X; } geocollzm(G) ::= VANUATU_GEOMETRYCOLLECTION_ZM geocoll_textzm(X). { G = X; } // Geometry collections can contain any number of points, linestrings, or polygons (but at least one): geocoll_text(G) ::= VANUATU_OPEN_BRACKET point(P) geocoll_text2(X) VANUATU_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) vanuatu_geomColl_xy( p_data, (gaiaGeomCollPtr)P); } geocoll_text(G) ::= VANUATU_OPEN_BRACKET linestring(L) geocoll_text2(X) VANUATU_CLOSE_BRACKET. { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)X; G = (void *) vanuatu_geomColl_xy( p_data, (gaiaGeomCollPtr)L); } geocoll_text(G) ::= VANUATU_OPEN_BRACKET polygon(P) geocoll_text2(X) VANUATU_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) vanuatu_geomColl_xy( p_data, (gaiaGeomCollPtr)P); } geocoll_text(G) ::= VANUATU_OPEN_BRACKET multipoint(P) geocoll_text2(X) VANUATU_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) vanuatu_geomColl_xy( p_data, (gaiaGeomCollPtr)P); } geocoll_text(G) ::= VANUATU_OPEN_BRACKET multilinestring(L) geocoll_text2(X) VANUATU_CLOSE_BRACKET. { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)X; G = (void *) vanuatu_geomColl_xy( p_data, (gaiaGeomCollPtr)L); } geocoll_text(G) ::= VANUATU_OPEN_BRACKET multipolygon(P) geocoll_text2(X) VANUATU_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) vanuatu_geomColl_xy( p_data, (gaiaGeomCollPtr)P); } geocoll_text(G) ::= VANUATU_OPEN_BRACKET VANUATU_GEOMETRYCOLLECTION geocoll_text(C) geocoll_text2(X) VANUATU_CLOSE_BRACKET. { ((gaiaGeomCollPtr)C)->Next = (gaiaGeomCollPtr)X; G = (void *) vanuatu_geomColl_xy( p_data, (gaiaGeomCollPtr)C); } // Extra points, linestrings, or polygons geocoll_text2(X) ::= . { X = NULL; } geocoll_text2(X) ::= VANUATU_COMMA point(P) geocoll_text2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_text2(X) ::= VANUATU_COMMA linestring(L) geocoll_text2(Y). { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)Y; X = L; } geocoll_text2(X) ::= VANUATU_COMMA polygon(P) geocoll_text2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_text2(X) ::= VANUATU_COMMA multipoint(P) geocoll_text2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_text2(X) ::= VANUATU_COMMA multilinestring(L) geocoll_text2(Y). { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)Y; X = L; } geocoll_text2(X) ::= VANUATU_COMMA multipolygon(P) geocoll_text2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_text2(X) ::= VANUATU_COMMA VANUATU_GEOMETRYCOLLECTION geocoll_text(C) geocoll_text2(Y). { ((gaiaGeomCollPtr)C)->Next = (gaiaGeomCollPtr)Y; X = C; } geocoll_textm(G) ::= VANUATU_OPEN_BRACKET pointm(P) geocoll_textm2(X) VANUATU_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) vanuatu_geomColl_xym( p_data, (gaiaGeomCollPtr)P); } geocoll_textm(G) ::= VANUATU_OPEN_BRACKET linestringm(L) geocoll_textm2(X) VANUATU_CLOSE_BRACKET. { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)X; G = (void *) vanuatu_geomColl_xym( p_data, (gaiaGeomCollPtr)L); } geocoll_textm(G) ::= VANUATU_OPEN_BRACKET polygonm(P) geocoll_textm2(X) VANUATU_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) vanuatu_geomColl_xym( p_data, (gaiaGeomCollPtr)P); } geocoll_textm(G) ::= VANUATU_OPEN_BRACKET multipointm(P) geocoll_textm2(X) VANUATU_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) vanuatu_geomColl_xym( p_data, (gaiaGeomCollPtr)P); } geocoll_textm(G) ::= VANUATU_OPEN_BRACKET multilinestringm(L) geocoll_textm2(X) VANUATU_CLOSE_BRACKET. { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)X; G = (void *) vanuatu_geomColl_xym( p_data, (gaiaGeomCollPtr)L); } geocoll_textm(G) ::= VANUATU_OPEN_BRACKET multipolygonm(P) geocoll_textm2(X) VANUATU_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) vanuatu_geomColl_xym( p_data, (gaiaGeomCollPtr)P); } geocoll_textm(G) ::= VANUATU_OPEN_BRACKET VANUATU_GEOMETRYCOLLECTION_M geocoll_textm(C) geocoll_textm2(X) VANUATU_CLOSE_BRACKET. { ((gaiaGeomCollPtr)C)->Next = (gaiaGeomCollPtr)X; G = (void *) vanuatu_geomColl_xym( p_data, (gaiaGeomCollPtr)C); } geocoll_textm2(X) ::= . { X = NULL; } geocoll_textm2(X) ::= VANUATU_COMMA pointm(P) geocoll_textm2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_textm2(X) ::= VANUATU_COMMA linestringm(L) geocoll_textm2(Y). { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)Y; X = L; } geocoll_textm2(X) ::= VANUATU_COMMA polygonm(P) geocoll_textm2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_textm2(X) ::= VANUATU_COMMA multipointm(P) geocoll_textm2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_textm2(X) ::= VANUATU_COMMA multilinestringm(L) geocoll_textm2(Y). { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)Y; X = L; } geocoll_textm2(X) ::= VANUATU_COMMA multipolygonm(P) geocoll_textm2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_textm2(X) ::= VANUATU_COMMA VANUATU_GEOMETRYCOLLECTION_M geocoll_textm(C) geocoll_textm2(Y). { ((gaiaGeomCollPtr)C)->Next = (gaiaGeomCollPtr)Y; X = C; } geocoll_textz(G) ::= VANUATU_OPEN_BRACKET pointz(P) geocoll_textz2(X) VANUATU_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) vanuatu_geomColl_xyz( p_data, (gaiaGeomCollPtr)P); } geocoll_textz(G) ::= VANUATU_OPEN_BRACKET linestringz(L) geocoll_textz2(X) VANUATU_CLOSE_BRACKET. { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)X; G = (void *) vanuatu_geomColl_xyz( p_data, (gaiaGeomCollPtr)L); } geocoll_textz(G) ::= VANUATU_OPEN_BRACKET polygonz(P) geocoll_textz2(X) VANUATU_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) vanuatu_geomColl_xyz( p_data, (gaiaGeomCollPtr)P); } geocoll_textz(G) ::= VANUATU_OPEN_BRACKET multipointz(P) geocoll_textz2(X) VANUATU_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) vanuatu_geomColl_xyz( p_data, (gaiaGeomCollPtr)P); } geocoll_textz(G) ::= VANUATU_OPEN_BRACKET multilinestringz(L) geocoll_textz2(X) VANUATU_CLOSE_BRACKET. { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)X; G = (void *) vanuatu_geomColl_xyz( p_data, (gaiaGeomCollPtr)L); } geocoll_textz(G) ::= VANUATU_OPEN_BRACKET multipolygonz(P) geocoll_textz2(X) VANUATU_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) vanuatu_geomColl_xyz( p_data, (gaiaGeomCollPtr)P); } geocoll_textz(G) ::= VANUATU_OPEN_BRACKET VANUATU_GEOMETRYCOLLECTION_Z geocoll_textz(C) geocoll_textz2(X) VANUATU_CLOSE_BRACKET. { ((gaiaGeomCollPtr)C)->Next = (gaiaGeomCollPtr)X; G = (void *) vanuatu_geomColl_xyz( p_data, (gaiaGeomCollPtr)C); } geocoll_textz2(X) ::= . { X = NULL; } geocoll_textz2(X) ::= VANUATU_COMMA pointz(P) geocoll_textz2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_textz2(X) ::= VANUATU_COMMA linestringz(L) geocoll_textz2(Y). { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)Y; X = L; } geocoll_textz2(X) ::= VANUATU_COMMA polygonz(P) geocoll_textz2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_textz2(X) ::= VANUATU_COMMA multipointz(P) geocoll_textz2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_textz2(X) ::= VANUATU_COMMA multilinestringz(L) geocoll_textz2(Y). { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)Y; X = L; } geocoll_textz2(X) ::= VANUATU_COMMA multipolygonz(P) geocoll_textz2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_textz2(X) ::= VANUATU_COMMA VANUATU_GEOMETRYCOLLECTION_Z geocoll_textz(C) geocoll_textz2(Y). { ((gaiaGeomCollPtr)C)->Next = (gaiaGeomCollPtr)Y; X = C; } geocoll_textzm(G) ::= VANUATU_OPEN_BRACKET pointzm(P) geocoll_textzm2(X) VANUATU_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) vanuatu_geomColl_xyzm( p_data, (gaiaGeomCollPtr)P); } geocoll_textzm(G) ::= VANUATU_OPEN_BRACKET linestringzm(L) geocoll_textzm2(X) VANUATU_CLOSE_BRACKET. { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)X; G = (void *) vanuatu_geomColl_xyzm( p_data, (gaiaGeomCollPtr)L); } geocoll_textzm(G) ::= VANUATU_OPEN_BRACKET polygonzm(P) geocoll_textzm2(X) VANUATU_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) vanuatu_geomColl_xyzm( p_data, (gaiaGeomCollPtr)P); } geocoll_textzm(G) ::= VANUATU_OPEN_BRACKET multipointzm(P) geocoll_textzm2(X) VANUATU_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) vanuatu_geomColl_xyzm( p_data, (gaiaGeomCollPtr)P); } geocoll_textzm(G) ::= VANUATU_OPEN_BRACKET multilinestringzm(L) geocoll_textzm2(X) VANUATU_CLOSE_BRACKET. { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)X; G = (void *) vanuatu_geomColl_xyzm( p_data, (gaiaGeomCollPtr)L); } geocoll_textzm(G) ::= VANUATU_OPEN_BRACKET multipolygonzm(P) geocoll_textzm2(X) VANUATU_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) vanuatu_geomColl_xyzm( p_data, (gaiaGeomCollPtr)P); } geocoll_textzm(G) ::= VANUATU_OPEN_BRACKET VANUATU_GEOMETRYCOLLECTION_ZM geocoll_textzm(C) geocoll_textzm2(X) VANUATU_CLOSE_BRACKET. { ((gaiaGeomCollPtr)C)->Next = (gaiaGeomCollPtr)X; G = (void *) vanuatu_geomColl_xyzm( p_data, (gaiaGeomCollPtr)C); } geocoll_textzm2(X) ::= . { X = NULL; } geocoll_textzm2(X) ::= VANUATU_COMMA pointzm(P) geocoll_textzm2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_textzm2(X) ::= VANUATU_COMMA linestringzm(L) geocoll_textzm2(Y). { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)Y; X = L; } geocoll_textzm2(X) ::= VANUATU_COMMA polygonzm(P) geocoll_textzm2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_textzm2(X) ::= VANUATU_COMMA multipointzm(P) geocoll_textzm2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_textzm2(X) ::= VANUATU_COMMA multilinestringzm(L) geocoll_textzm2(Y). { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)Y; X = L; } geocoll_textzm2(X) ::= VANUATU_COMMA multipolygonzm(P) geocoll_textzm2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_textzm2(X) ::= VANUATU_COMMA VANUATU_GEOMETRYCOLLECTION_ZM geocoll_textzm(C) geocoll_textzm2(Y). { ((gaiaGeomCollPtr)C)->Next = (gaiaGeomCollPtr)Y; X = C; } /****************************************************************************** ** This is the end of the code that was created by Team Vanuatu ** of The University of Toronto. Authors: Ruppi Rana ruppi.rana@gmail.com Dev Tanna dev.tanna@gmail.com Elias Adum elias.adum@gmail.com Benton Hui benton.hui@gmail.com Abhayan Sundararajan abhayan@gmail.com Chee-Lun Michael Stephen Cho cheelun.cho@gmail.com Nikola Banovic nikola.banovic@gmail.com Yong Jian yong.jian@utoronto.ca Supervisor: Greg Wilson gvwilson@cs.toronto.ca ------------------------------------------------------------------------------- */ libspatialite-4.1.1/src/gaiageo/gg_wkb.c0000664000175000017500000057733312163502133015073 00000000000000/* gg_wkb.c -- Gaia common support for WKB encoded geometries version 4.1, 2013 May 8 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include static void ParseWkbPoint (gaiaGeomCollPtr geo) { /* decodes a POINT from WKB */ double x; double y; if (geo->size < geo->offset + 16) return; x = gaiaImport64 (geo->blob + geo->offset, geo->endian, geo->endian_arch); y = gaiaImport64 (geo->blob + (geo->offset + 8), geo->endian, geo->endian_arch); geo->offset += 16; gaiaAddPointToGeomColl (geo, x, y); } static void ParseWkbPointZ (gaiaGeomCollPtr geo) { /* decodes a POINTZ from WKB */ double x; double y; double z; if (geo->size < geo->offset + 24) return; x = gaiaImport64 (geo->blob + geo->offset, geo->endian, geo->endian_arch); y = gaiaImport64 (geo->blob + (geo->offset + 8), geo->endian, geo->endian_arch); z = gaiaImport64 (geo->blob + (geo->offset + 16), geo->endian, geo->endian_arch); geo->offset += 24; gaiaAddPointToGeomCollXYZ (geo, x, y, z); } static void ParseWkbPointM (gaiaGeomCollPtr geo) { /* decodes a POINTM from WKB */ double x; double y; double m; if (geo->size < geo->offset + 24) return; x = gaiaImport64 (geo->blob + geo->offset, geo->endian, geo->endian_arch); y = gaiaImport64 (geo->blob + (geo->offset + 8), geo->endian, geo->endian_arch); m = gaiaImport64 (geo->blob + (geo->offset + 16), geo->endian, geo->endian_arch); geo->offset += 24; gaiaAddPointToGeomCollXYM (geo, x, y, m); } static void ParseWkbPointZM (gaiaGeomCollPtr geo) { /* decodes a POINTZM from WKB */ double x; double y; double z; double m; if (geo->size < geo->offset + 32) return; x = gaiaImport64 (geo->blob + geo->offset, geo->endian, geo->endian_arch); y = gaiaImport64 (geo->blob + (geo->offset + 8), geo->endian, geo->endian_arch); z = gaiaImport64 (geo->blob + (geo->offset + 16), geo->endian, geo->endian_arch); m = gaiaImport64 (geo->blob + (geo->offset + 24), geo->endian, geo->endian_arch); geo->offset += 32; gaiaAddPointToGeomCollXYZM (geo, x, y, z, m); } static void ParseWkbLine (gaiaGeomCollPtr geo) { /* decodes a LINESTRING from WKB */ int points; int iv; double x; double y; gaiaLinestringPtr line; if (geo->size < geo->offset + 4) return; points = gaiaImport32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); geo->offset += 4; if (geo->size < geo->offset + (16 * points)) return; line = gaiaAddLinestringToGeomColl (geo, points); for (iv = 0; iv < points; iv++) { x = gaiaImport64 (geo->blob + geo->offset, geo->endian, geo->endian_arch); y = gaiaImport64 (geo->blob + (geo->offset + 8), geo->endian, geo->endian_arch); gaiaSetPoint (line->Coords, iv, x, y); geo->offset += 16; } } static void ParseWkbLineZ (gaiaGeomCollPtr geo) { /* decodes a LINESTRINGZ from WKB */ int points; int iv; double x; double y; double z; gaiaLinestringPtr line; if (geo->size < geo->offset + 4) return; points = gaiaImport32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); geo->offset += 4; if (geo->size < geo->offset + (24 * points)) return; line = gaiaAddLinestringToGeomColl (geo, points); for (iv = 0; iv < points; iv++) { x = gaiaImport64 (geo->blob + geo->offset, geo->endian, geo->endian_arch); y = gaiaImport64 (geo->blob + (geo->offset + 8), geo->endian, geo->endian_arch); z = gaiaImport64 (geo->blob + (geo->offset + 16), geo->endian, geo->endian_arch); gaiaSetPointXYZ (line->Coords, iv, x, y, z); geo->offset += 24; } } static void ParseWkbLineM (gaiaGeomCollPtr geo) { /* decodes a LINESTRINGM from WKB */ int points; int iv; double x; double y; double m; gaiaLinestringPtr line; if (geo->size < geo->offset + 4) return; points = gaiaImport32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); geo->offset += 4; if (geo->size < geo->offset + (24 * points)) return; line = gaiaAddLinestringToGeomColl (geo, points); for (iv = 0; iv < points; iv++) { x = gaiaImport64 (geo->blob + geo->offset, geo->endian, geo->endian_arch); y = gaiaImport64 (geo->blob + (geo->offset + 8), geo->endian, geo->endian_arch); m = gaiaImport64 (geo->blob + (geo->offset + 16), geo->endian, geo->endian_arch); gaiaSetPointXYM (line->Coords, iv, x, y, m); geo->offset += 24; } } static void ParseWkbLineZM (gaiaGeomCollPtr geo) { /* decodes a LINESTRINGZM from WKB */ int points; int iv; double x; double y; double z; double m; gaiaLinestringPtr line; if (geo->size < geo->offset + 4) return; points = gaiaImport32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); geo->offset += 4; if (geo->size < geo->offset + (32 * points)) return; line = gaiaAddLinestringToGeomColl (geo, points); for (iv = 0; iv < points; iv++) { x = gaiaImport64 (geo->blob + geo->offset, geo->endian, geo->endian_arch); y = gaiaImport64 (geo->blob + (geo->offset + 8), geo->endian, geo->endian_arch); z = gaiaImport64 (geo->blob + (geo->offset + 16), geo->endian, geo->endian_arch); m = gaiaImport64 (geo->blob + (geo->offset + 24), geo->endian, geo->endian_arch); gaiaSetPointXYZM (line->Coords, iv, x, y, z, m); geo->offset += 32; } } static void ParseWkbPolygon (gaiaGeomCollPtr geo) { /* decodes a POLYGON from WKB */ int rings; int nverts; int iv; int ib; double x; double y; gaiaPolygonPtr polyg = NULL; gaiaRingPtr ring; if (geo->size < geo->offset + 4) return; rings = gaiaImport32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); geo->offset += 4; for (ib = 0; ib < rings; ib++) { if (geo->size < geo->offset + 4) return; nverts = gaiaImport32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); geo->offset += 4; if (geo->size < geo->offset + (16 * nverts)) return; if (ib == 0) { polyg = gaiaAddPolygonToGeomColl (geo, nverts, rings - 1); ring = polyg->Exterior; } else ring = gaiaAddInteriorRing (polyg, ib - 1, nverts); for (iv = 0; iv < nverts; iv++) { x = gaiaImport64 (geo->blob + geo->offset, geo->endian, geo->endian_arch); y = gaiaImport64 (geo->blob + (geo->offset + 8), geo->endian, geo->endian_arch); geo->offset += 16; gaiaSetPoint (ring->Coords, iv, x, y); } } } static void ParseWkbPolygonZ (gaiaGeomCollPtr geo) { /* decodes a POLYGONZ from WKB */ int rings; int nverts; int iv; int ib; double x; double y; double z; gaiaPolygonPtr polyg = NULL; gaiaRingPtr ring; if (geo->size < geo->offset + 4) return; rings = gaiaImport32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); geo->offset += 4; for (ib = 0; ib < rings; ib++) { if (geo->size < geo->offset + 4) return; nverts = gaiaImport32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); geo->offset += 4; if (geo->size < geo->offset + (24 * nverts)) return; if (ib == 0) { polyg = gaiaAddPolygonToGeomColl (geo, nverts, rings - 1); ring = polyg->Exterior; } else ring = gaiaAddInteriorRing (polyg, ib - 1, nverts); for (iv = 0; iv < nverts; iv++) { x = gaiaImport64 (geo->blob + geo->offset, geo->endian, geo->endian_arch); y = gaiaImport64 (geo->blob + (geo->offset + 8), geo->endian, geo->endian_arch); z = gaiaImport64 (geo->blob + (geo->offset + 16), geo->endian, geo->endian_arch); geo->offset += 24; gaiaSetPointXYZ (ring->Coords, iv, x, y, z); } } } static void ParseWkbPolygonM (gaiaGeomCollPtr geo) { /* decodes a POLYGONM from WKB */ int rings; int nverts; int iv; int ib; double x; double y; double m; gaiaPolygonPtr polyg = NULL; gaiaRingPtr ring; if (geo->size < geo->offset + 4) return; rings = gaiaImport32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); geo->offset += 4; for (ib = 0; ib < rings; ib++) { if (geo->size < geo->offset + 4) return; nverts = gaiaImport32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); geo->offset += 4; if (geo->size < geo->offset + (24 * nverts)) return; if (ib == 0) { polyg = gaiaAddPolygonToGeomColl (geo, nverts, rings - 1); ring = polyg->Exterior; } else ring = gaiaAddInteriorRing (polyg, ib - 1, nverts); for (iv = 0; iv < nverts; iv++) { x = gaiaImport64 (geo->blob + geo->offset, geo->endian, geo->endian_arch); y = gaiaImport64 (geo->blob + (geo->offset + 8), geo->endian, geo->endian_arch); m = gaiaImport64 (geo->blob + (geo->offset + 16), geo->endian, geo->endian_arch); geo->offset += 24; gaiaSetPointXYM (ring->Coords, iv, x, y, m); } } } static void ParseWkbPolygonZM (gaiaGeomCollPtr geo) { /* decodes a POLYGONZM from WKB */ int rings; int nverts; int iv; int ib; double x; double y; double z; double m; gaiaPolygonPtr polyg = NULL; gaiaRingPtr ring; if (geo->size < geo->offset + 4) return; rings = gaiaImport32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); geo->offset += 4; for (ib = 0; ib < rings; ib++) { if (geo->size < geo->offset + 4) return; nverts = gaiaImport32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); geo->offset += 4; if (geo->size < geo->offset + (32 * nverts)) return; if (ib == 0) { polyg = gaiaAddPolygonToGeomColl (geo, nverts, rings - 1); ring = polyg->Exterior; } else ring = gaiaAddInteriorRing (polyg, ib - 1, nverts); for (iv = 0; iv < nverts; iv++) { x = gaiaImport64 (geo->blob + geo->offset, geo->endian, geo->endian_arch); y = gaiaImport64 (geo->blob + (geo->offset + 8), geo->endian, geo->endian_arch); z = gaiaImport64 (geo->blob + (geo->offset + 16), geo->endian, geo->endian_arch); m = gaiaImport64 (geo->blob + (geo->offset + 24), geo->endian, geo->endian_arch); geo->offset += 32; gaiaSetPointXYZM (ring->Coords, iv, x, y, z, m); } } } static void ParseCompressedWkbLine (gaiaGeomCollPtr geo) { /* decodes a COMPRESSED LINESTRING from WKB */ int points; int iv; double x; double y; double last_x = 0.0; double last_y = 0.0; float fx; float fy; gaiaLinestringPtr line; if (geo->size < geo->offset + 4) return; points = gaiaImport32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); geo->offset += 4; if (geo->size < geo->offset + (8 * points) + 16) return; line = gaiaAddLinestringToGeomColl (geo, points); for (iv = 0; iv < points; iv++) { if (iv == 0 || iv == (points - 1)) { /* first and last vertices are uncompressed */ x = gaiaImport64 (geo->blob + geo->offset, geo->endian, geo->endian_arch); y = gaiaImport64 (geo->blob + (geo->offset + 8), geo->endian, geo->endian_arch); geo->offset += 16; } else { /* any other intermediate vertex is compressed */ fx = gaiaImportF32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); fy = gaiaImportF32 (geo->blob + (geo->offset + 4), geo->endian, geo->endian_arch); x = last_x + fx; y = last_y + fy; geo->offset += 8; } gaiaSetPoint (line->Coords, iv, x, y); last_x = x; last_y = y; } } static void ParseCompressedWkbLineZ (gaiaGeomCollPtr geo) { /* decodes a COMPRESSED LINESTRINGZ from WKB */ int points; int iv; double x; double y; double z; double last_x = 0.0; double last_y = 0.0; double last_z = 0.0; float fx; float fy; float fz; gaiaLinestringPtr line; if (geo->size < geo->offset + 4) return; points = gaiaImport32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); geo->offset += 4; if (geo->size < geo->offset + (12 * points) + 24) return; line = gaiaAddLinestringToGeomColl (geo, points); for (iv = 0; iv < points; iv++) { if (iv == 0 || iv == (points - 1)) { /* first and last vertices are uncompressed */ x = gaiaImport64 (geo->blob + geo->offset, geo->endian, geo->endian_arch); y = gaiaImport64 (geo->blob + (geo->offset + 8), geo->endian, geo->endian_arch); z = gaiaImport64 (geo->blob + (geo->offset + 16), geo->endian, geo->endian_arch); geo->offset += 24; } else { /* any other intermediate vertex is compressed */ fx = gaiaImportF32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); fy = gaiaImportF32 (geo->blob + (geo->offset + 4), geo->endian, geo->endian_arch); fz = gaiaImportF32 (geo->blob + (geo->offset + 8), geo->endian, geo->endian_arch); x = last_x + fx; y = last_y + fy; z = last_z + fz; geo->offset += 12; } gaiaSetPointXYZ (line->Coords, iv, x, y, z); last_x = x; last_y = y; last_z = z; } } static void ParseCompressedWkbLineM (gaiaGeomCollPtr geo) { /* decodes a COMPRESSED LINESTRINGM from WKB */ int points; int iv; double x; double y; double m; double last_x = 0.0; double last_y = 0.0; float fx; float fy; gaiaLinestringPtr line; if (geo->size < geo->offset + 4) return; points = gaiaImport32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); geo->offset += 4; if (geo->size < geo->offset + (16 * points) + 16) return; line = gaiaAddLinestringToGeomColl (geo, points); for (iv = 0; iv < points; iv++) { if (iv == 0 || iv == (points - 1)) { /* first and last vertices are uncompressed */ x = gaiaImport64 (geo->blob + geo->offset, geo->endian, geo->endian_arch); y = gaiaImport64 (geo->blob + (geo->offset + 8), geo->endian, geo->endian_arch); m = gaiaImport64 (geo->blob + (geo->offset + 16), geo->endian, geo->endian_arch); geo->offset += 24; } else { /* any other intermediate vertex is compressed */ fx = gaiaImportF32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); fy = gaiaImportF32 (geo->blob + (geo->offset + 4), geo->endian, geo->endian_arch); m = gaiaImport64 (geo->blob + (geo->offset + 8), geo->endian, geo->endian_arch); x = last_x + fx; y = last_y + fy; geo->offset += 16; } gaiaSetPointXYM (line->Coords, iv, x, y, m); last_x = x; last_y = y; } } static void ParseCompressedWkbLineZM (gaiaGeomCollPtr geo) { /* decodes a COMPRESSED LINESTRINGZM from WKB */ int points; int iv; double x; double y; double z; double m; double last_x = 0.0; double last_y = 0.0; double last_z = 0.0; float fx; float fy; float fz; gaiaLinestringPtr line; if (geo->size < geo->offset + 4) return; points = gaiaImport32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); geo->offset += 4; if (geo->size < geo->offset + (20 * points) + 24) return; line = gaiaAddLinestringToGeomColl (geo, points); for (iv = 0; iv < points; iv++) { if (iv == 0 || iv == (points - 1)) { /* first and last vertices are uncompressed */ x = gaiaImport64 (geo->blob + geo->offset, geo->endian, geo->endian_arch); y = gaiaImport64 (geo->blob + (geo->offset + 8), geo->endian, geo->endian_arch); z = gaiaImport64 (geo->blob + (geo->offset + 16), geo->endian, geo->endian_arch); m = gaiaImport64 (geo->blob + (geo->offset + 24), geo->endian, geo->endian_arch); geo->offset += 32; } else { /* any other intermediate vertex is compressed */ fx = gaiaImportF32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); fy = gaiaImportF32 (geo->blob + (geo->offset + 4), geo->endian, geo->endian_arch); fz = gaiaImportF32 (geo->blob + (geo->offset + 8), geo->endian, geo->endian_arch); m = gaiaImport64 (geo->blob + (geo->offset + 12), geo->endian, geo->endian_arch); x = last_x + fx; y = last_y + fy; z = last_z + fz; geo->offset += 20; } gaiaSetPointXYZM (line->Coords, iv, x, y, z, m); last_x = x; last_y = y; last_z = z; } } static void ParseCompressedWkbPolygon (gaiaGeomCollPtr geo) { /* decodes a COMPRESSED POLYGON from WKB */ int rings; int nverts; int iv; int ib; double x; double y; double last_x = 0.0; double last_y = 0.0; float fx; float fy; gaiaPolygonPtr polyg = NULL; gaiaRingPtr ring; if (geo->size < geo->offset + 4) return; rings = gaiaImport32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); geo->offset += 4; for (ib = 0; ib < rings; ib++) { if (geo->size < geo->offset + 4) return; nverts = gaiaImport32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); geo->offset += 4; if (geo->size < geo->offset + (8 * nverts) + 16) return; if (ib == 0) { polyg = gaiaAddPolygonToGeomColl (geo, nverts, rings - 1); ring = polyg->Exterior; } else ring = gaiaAddInteriorRing (polyg, ib - 1, nverts); for (iv = 0; iv < nverts; iv++) { if (iv == 0 || iv == (nverts - 1)) { /* first and last vertices are uncompressed */ x = gaiaImport64 (geo->blob + geo->offset, geo->endian, geo->endian_arch); y = gaiaImport64 (geo->blob + (geo->offset + 8), geo->endian, geo->endian_arch); geo->offset += 16; } else { /* any other intermediate vertex is compressed */ fx = gaiaImportF32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); fy = gaiaImportF32 (geo->blob + (geo->offset + 4), geo->endian, geo->endian_arch); x = last_x + fx; y = last_y + fy; geo->offset += 8; } gaiaSetPoint (ring->Coords, iv, x, y); last_x = x; last_y = y; } } } static void ParseCompressedWkbPolygonZ (gaiaGeomCollPtr geo) { /* decodes a COMPRESSED POLYGONZ from WKB */ int rings; int nverts; int iv; int ib; double x; double y; double z; double last_x = 0.0; double last_y = 0.0; double last_z = 0.0; float fx; float fy; float fz; gaiaPolygonPtr polyg = NULL; gaiaRingPtr ring; if (geo->size < geo->offset + 4) return; rings = gaiaImport32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); geo->offset += 4; for (ib = 0; ib < rings; ib++) { if (geo->size < geo->offset + 4) return; nverts = gaiaImport32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); geo->offset += 4; if (geo->size < geo->offset + (12 * nverts) + 24) return; if (ib == 0) { polyg = gaiaAddPolygonToGeomColl (geo, nverts, rings - 1); ring = polyg->Exterior; } else ring = gaiaAddInteriorRing (polyg, ib - 1, nverts); for (iv = 0; iv < nverts; iv++) { if (iv == 0 || iv == (nverts - 1)) { /* first and last vertices are uncompressed */ x = gaiaImport64 (geo->blob + geo->offset, geo->endian, geo->endian_arch); y = gaiaImport64 (geo->blob + (geo->offset + 8), geo->endian, geo->endian_arch); z = gaiaImport64 (geo->blob + (geo->offset + 16), geo->endian, geo->endian_arch); geo->offset += 24; } else { /* any other intermediate vertex is compressed */ fx = gaiaImportF32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); fy = gaiaImportF32 (geo->blob + (geo->offset + 4), geo->endian, geo->endian_arch); fz = gaiaImportF32 (geo->blob + (geo->offset + 8), geo->endian, geo->endian_arch); x = last_x + fx; y = last_y + fy; z = last_z + fz; geo->offset += 12; } gaiaSetPointXYZ (ring->Coords, iv, x, y, z); last_x = x; last_y = y; last_z = z; } } } static void ParseCompressedWkbPolygonM (gaiaGeomCollPtr geo) { /* decodes a COMPRESSED POLYGONM from WKB */ int rings; int nverts; int iv; int ib; double x; double y; double m; double last_x = 0.0; double last_y = 0.0; float fx; float fy; gaiaPolygonPtr polyg = NULL; gaiaRingPtr ring; if (geo->size < geo->offset + 4) return; rings = gaiaImport32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); geo->offset += 4; for (ib = 0; ib < rings; ib++) { if (geo->size < geo->offset + 4) return; nverts = gaiaImport32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); geo->offset += 4; if (geo->size < geo->offset + (16 * nverts) + 16) return; if (ib == 0) { polyg = gaiaAddPolygonToGeomColl (geo, nverts, rings - 1); ring = polyg->Exterior; } else ring = gaiaAddInteriorRing (polyg, ib - 1, nverts); for (iv = 0; iv < nverts; iv++) { if (iv == 0 || iv == (nverts - 1)) { /* first and last vertices are uncompressed */ x = gaiaImport64 (geo->blob + geo->offset, geo->endian, geo->endian_arch); y = gaiaImport64 (geo->blob + (geo->offset + 8), geo->endian, geo->endian_arch); m = gaiaImport64 (geo->blob + (geo->offset + 16), geo->endian, geo->endian_arch); geo->offset += 24; } else { /* any other intermediate vertex is compressed */ fx = gaiaImportF32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); fy = gaiaImportF32 (geo->blob + (geo->offset + 4), geo->endian, geo->endian_arch); m = gaiaImport64 (geo->blob + (geo->offset + 8), geo->endian, geo->endian_arch); x = last_x + fx; y = last_y + fy; geo->offset += 16; } gaiaSetPointXYM (ring->Coords, iv, x, y, m); last_x = x; last_y = y; } } } static void ParseCompressedWkbPolygonZM (gaiaGeomCollPtr geo) { /* decodes a COMPRESSED POLYGONZM from WKB */ int rings; int nverts; int iv; int ib; double x; double y; double z; double m; double last_x = 0.0; double last_y = 0.0; double last_z = 0.0; float fx; float fy; float fz; gaiaPolygonPtr polyg = NULL; gaiaRingPtr ring; if (geo->size < geo->offset + 4) return; rings = gaiaImport32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); geo->offset += 4; for (ib = 0; ib < rings; ib++) { if (geo->size < geo->offset + 4) return; nverts = gaiaImport32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); geo->offset += 4; if (geo->size < geo->offset + (20 * nverts) + 24) return; if (ib == 0) { polyg = gaiaAddPolygonToGeomColl (geo, nverts, rings - 1); ring = polyg->Exterior; } else ring = gaiaAddInteriorRing (polyg, ib - 1, nverts); for (iv = 0; iv < nverts; iv++) { if (iv == 0 || iv == (nverts - 1)) { /* first and last vertices are uncompressed */ x = gaiaImport64 (geo->blob + geo->offset, geo->endian, geo->endian_arch); y = gaiaImport64 (geo->blob + (geo->offset + 8), geo->endian, geo->endian_arch); z = gaiaImport64 (geo->blob + (geo->offset + 16), geo->endian, geo->endian_arch); m = gaiaImport64 (geo->blob + (geo->offset + 24), geo->endian, geo->endian_arch); geo->offset += 32; } else { /* any other intermediate vertex is compressed */ fx = gaiaImportF32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); fy = gaiaImportF32 (geo->blob + (geo->offset + 4), geo->endian, geo->endian_arch); fz = gaiaImportF32 (geo->blob + (geo->offset + 8), geo->endian, geo->endian_arch); m = gaiaImport64 (geo->blob + (geo->offset + 12), geo->endian, geo->endian_arch); x = last_x + fx; y = last_y + fy; z = last_z + fz; geo->offset += 20; } gaiaSetPointXYZM (ring->Coords, iv, x, y, z, m); last_x = x; last_y = y; last_z = z; } } } static void ParseWkbGeometry (gaiaGeomCollPtr geo, int isWKB) { /* decodes a MULTIxx or GEOMETRYCOLLECTION from SpatiaLite BLOB */ int entities; int type; int ie; if (geo->size < geo->offset + 4) return; entities = gaiaImport32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); geo->offset += 4; for (ie = 0; ie < entities; ie++) { if (geo->size < geo->offset + 5) return; if (isWKB) { /* vanilla WKB could be encoded as mixed big-/little-endian sub-items */ if (*(geo->blob + geo->offset) == 0x01) geo->endian = GAIA_LITTLE_ENDIAN; else geo->endian = GAIA_BIG_ENDIAN; } type = gaiaImport32 (geo->blob + geo->offset + 1, geo->endian, geo->endian_arch); geo->offset += 5; switch (type) { case GAIA_POINT: ParseWkbPoint (geo); break; case GAIA_POINTZ: case GAIA_GEOSWKB_POINTZ: ParseWkbPointZ (geo); break; case GAIA_POINTM: ParseWkbPointM (geo); break; case GAIA_POINTZM: ParseWkbPointZM (geo); break; case GAIA_LINESTRING: ParseWkbLine (geo); break; case GAIA_LINESTRINGZ: case GAIA_GEOSWKB_LINESTRINGZ: ParseWkbLineZ (geo); break; case GAIA_LINESTRINGM: ParseWkbLineM (geo); break; case GAIA_LINESTRINGZM: ParseWkbLineZM (geo); break; case GAIA_POLYGON: ParseWkbPolygon (geo); break; case GAIA_POLYGONZ: case GAIA_GEOSWKB_POLYGONZ: ParseWkbPolygonZ (geo); break; case GAIA_POLYGONM: ParseWkbPolygonM (geo); break; case GAIA_POLYGONZM: ParseWkbPolygonZM (geo); break; case GAIA_COMPRESSED_LINESTRING: ParseCompressedWkbLine (geo); break; case GAIA_COMPRESSED_LINESTRINGZ: ParseCompressedWkbLineZ (geo); break; case GAIA_COMPRESSED_LINESTRINGM: ParseCompressedWkbLineM (geo); break; case GAIA_COMPRESSED_LINESTRINGZM: ParseCompressedWkbLineZM (geo); break; case GAIA_COMPRESSED_POLYGON: ParseCompressedWkbPolygon (geo); break; case GAIA_COMPRESSED_POLYGONZ: ParseCompressedWkbPolygonZ (geo); break; case GAIA_COMPRESSED_POLYGONM: ParseCompressedWkbPolygonM (geo); break; case GAIA_COMPRESSED_POLYGONZM: ParseCompressedWkbPolygonZM (geo); break; default: break; }; } } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromSpatiaLiteBlobWkb (const unsigned char *blob, unsigned int size) { /* decoding from SpatiaLite BLOB to GEOMETRY */ int type; int little_endian; int endian_arch = gaiaEndianArch (); gaiaGeomCollPtr geo = NULL; if (size < 45) return NULL; /* cannot be an internal BLOB WKB geometry */ if (*(blob + 0) != GAIA_MARK_START) return NULL; /* failed to recognize START signature */ if (*(blob + (size - 1)) != GAIA_MARK_END) return NULL; /* failed to recognize END signature */ if (*(blob + 38) != GAIA_MARK_MBR) return NULL; /* failed to recognize MBR signature */ if (*(blob + 1) == GAIA_LITTLE_ENDIAN) little_endian = 1; else if (*(blob + 1) == GAIA_BIG_ENDIAN) little_endian = 0; else return NULL; /* unknown encoding; nor litte-endian neither big-endian */ type = gaiaImport32 (blob + 39, little_endian, endian_arch); geo = gaiaAllocGeomColl (); geo->Srid = gaiaImport32 (blob + 2, little_endian, endian_arch); geo->endian_arch = (char) endian_arch; geo->endian = (char) little_endian; geo->blob = blob; geo->size = size; geo->offset = 43; switch (type) { /* setting up DimensionModel */ case GAIA_POINTZ: case GAIA_LINESTRINGZ: case GAIA_POLYGONZ: case GAIA_MULTIPOINTZ: case GAIA_MULTILINESTRINGZ: case GAIA_MULTIPOLYGONZ: case GAIA_GEOMETRYCOLLECTIONZ: case GAIA_COMPRESSED_LINESTRINGZ: case GAIA_COMPRESSED_POLYGONZ: geo->DimensionModel = GAIA_XY_Z; break; case GAIA_POINTM: case GAIA_LINESTRINGM: case GAIA_POLYGONM: case GAIA_MULTIPOINTM: case GAIA_MULTILINESTRINGM: case GAIA_MULTIPOLYGONM: case GAIA_GEOMETRYCOLLECTIONM: case GAIA_COMPRESSED_LINESTRINGM: case GAIA_COMPRESSED_POLYGONM: geo->DimensionModel = GAIA_XY_M; break; case GAIA_POINTZM: case GAIA_LINESTRINGZM: case GAIA_POLYGONZM: case GAIA_MULTIPOINTZM: case GAIA_MULTILINESTRINGZM: case GAIA_MULTIPOLYGONZM: case GAIA_GEOMETRYCOLLECTIONZM: case GAIA_COMPRESSED_LINESTRINGZM: case GAIA_COMPRESSED_POLYGONZM: geo->DimensionModel = GAIA_XY_Z_M; break; default: geo->DimensionModel = GAIA_XY; break; }; switch (type) { /* parsing elementary geometries */ case GAIA_POINT: ParseWkbPoint (geo); break; case GAIA_POINTZ: ParseWkbPointZ (geo); break; case GAIA_POINTM: ParseWkbPointM (geo); break; case GAIA_POINTZM: ParseWkbPointZM (geo); break; case GAIA_LINESTRING: ParseWkbLine (geo); break; case GAIA_LINESTRINGZ: ParseWkbLineZ (geo); break; case GAIA_LINESTRINGM: ParseWkbLineM (geo); break; case GAIA_LINESTRINGZM: ParseWkbLineZM (geo); break; case GAIA_POLYGON: ParseWkbPolygon (geo); break; case GAIA_POLYGONZ: ParseWkbPolygonZ (geo); break; case GAIA_POLYGONM: ParseWkbPolygonM (geo); break; case GAIA_POLYGONZM: ParseWkbPolygonZM (geo); break; case GAIA_COMPRESSED_LINESTRING: ParseCompressedWkbLine (geo); break; case GAIA_COMPRESSED_LINESTRINGZ: ParseCompressedWkbLineZ (geo); break; case GAIA_COMPRESSED_LINESTRINGM: ParseCompressedWkbLineM (geo); break; case GAIA_COMPRESSED_LINESTRINGZM: ParseCompressedWkbLineZM (geo); break; case GAIA_COMPRESSED_POLYGON: ParseCompressedWkbPolygon (geo); break; case GAIA_COMPRESSED_POLYGONZ: ParseCompressedWkbPolygonZ (geo); break; case GAIA_COMPRESSED_POLYGONM: ParseCompressedWkbPolygonM (geo); break; case GAIA_COMPRESSED_POLYGONZM: ParseCompressedWkbPolygonZM (geo); break; case GAIA_MULTIPOINT: case GAIA_MULTIPOINTZ: case GAIA_MULTIPOINTM: case GAIA_MULTIPOINTZM: case GAIA_MULTILINESTRING: case GAIA_MULTILINESTRINGZ: case GAIA_MULTILINESTRINGM: case GAIA_MULTILINESTRINGZM: case GAIA_MULTIPOLYGON: case GAIA_MULTIPOLYGONZ: case GAIA_MULTIPOLYGONM: case GAIA_MULTIPOLYGONZM: case GAIA_GEOMETRYCOLLECTION: case GAIA_GEOMETRYCOLLECTIONZ: case GAIA_GEOMETRYCOLLECTIONM: case GAIA_GEOMETRYCOLLECTIONZM: ParseWkbGeometry (geo, 0); break; default: break; }; geo->MinX = gaiaImport64 (blob + 6, little_endian, endian_arch); geo->MinY = gaiaImport64 (blob + 14, little_endian, endian_arch); geo->MaxX = gaiaImport64 (blob + 22, little_endian, endian_arch); geo->MaxY = gaiaImport64 (blob + 30, little_endian, endian_arch); switch (type) { /* setting up DeclaredType */ case GAIA_POINT: case GAIA_POINTZ: case GAIA_POINTM: case GAIA_POINTZM: geo->DeclaredType = GAIA_POINT; break; case GAIA_LINESTRING: case GAIA_LINESTRINGZ: case GAIA_LINESTRINGM: case GAIA_LINESTRINGZM: case GAIA_COMPRESSED_LINESTRING: case GAIA_COMPRESSED_LINESTRINGZ: case GAIA_COMPRESSED_LINESTRINGM: case GAIA_COMPRESSED_LINESTRINGZM: geo->DeclaredType = GAIA_LINESTRING; break; case GAIA_POLYGON: case GAIA_POLYGONZ: case GAIA_POLYGONM: case GAIA_POLYGONZM: case GAIA_COMPRESSED_POLYGON: case GAIA_COMPRESSED_POLYGONZ: case GAIA_COMPRESSED_POLYGONM: case GAIA_COMPRESSED_POLYGONZM: geo->DeclaredType = GAIA_POLYGON; break; case GAIA_MULTIPOINT: case GAIA_MULTIPOINTZ: case GAIA_MULTIPOINTM: case GAIA_MULTIPOINTZM: geo->DeclaredType = GAIA_MULTIPOINT; break; case GAIA_MULTILINESTRING: case GAIA_MULTILINESTRINGZ: case GAIA_MULTILINESTRINGM: case GAIA_MULTILINESTRINGZM: geo->DeclaredType = GAIA_MULTILINESTRING; break; case GAIA_MULTIPOLYGON: case GAIA_MULTIPOLYGONZ: case GAIA_MULTIPOLYGONM: case GAIA_MULTIPOLYGONZM: geo->DeclaredType = GAIA_MULTIPOLYGON; break; case GAIA_GEOMETRYCOLLECTION: case GAIA_GEOMETRYCOLLECTIONZ: case GAIA_GEOMETRYCOLLECTIONM: case GAIA_GEOMETRYCOLLECTIONZM: geo->DeclaredType = GAIA_GEOMETRYCOLLECTION; break; default: geo->DeclaredType = GAIA_UNKNOWN; break; }; return geo; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromSpatiaLiteBlobMbr (const unsigned char *blob, unsigned int size) { /* decoding from SpatiaLite BLOB to GEOMETRY [MBR only] */ int little_endian; int endian_arch = gaiaEndianArch (); double minx; double miny; double maxx; double maxy; gaiaGeomCollPtr geo = NULL; gaiaPolygonPtr polyg; gaiaRingPtr ring; if (size < 45) return NULL; /* cannot be an internal BLOB WKB geometry */ if (*(blob + 0) != GAIA_MARK_START) return NULL; /* failed to recognize START signature */ if (*(blob + (size - 1)) != GAIA_MARK_END) return NULL; /* failed to recognize END signature */ if (*(blob + 38) != GAIA_MARK_MBR) return NULL; /* failed to recognize MBR signature */ if (*(blob + 1) == GAIA_LITTLE_ENDIAN) little_endian = 1; else if (*(blob + 1) == GAIA_BIG_ENDIAN) little_endian = 0; else return NULL; /* unknown encoding; nor litte-endian neither big-endian */ geo = gaiaAllocGeomColl (); polyg = gaiaAddPolygonToGeomColl (geo, 5, 0); ring = polyg->Exterior; minx = gaiaImport64 (blob + 6, little_endian, endian_arch); miny = gaiaImport64 (blob + 14, little_endian, endian_arch); maxx = gaiaImport64 (blob + 22, little_endian, endian_arch); maxy = gaiaImport64 (blob + 30, little_endian, endian_arch); gaiaSetPoint (ring->Coords, 0, minx, miny); /* vertex # 1 */ gaiaSetPoint (ring->Coords, 1, maxx, miny); /* vertex # 2 */ gaiaSetPoint (ring->Coords, 2, maxx, maxy); /* vertex # 3 */ gaiaSetPoint (ring->Coords, 3, minx, maxy); /* vertex # 4 */ gaiaSetPoint (ring->Coords, 4, minx, miny); /* vertex # 5 [same as vertex # 1 to close the polygon] */ return geo; } GAIAGEO_DECLARE void gaiaToSpatiaLiteBlobWkb (gaiaGeomCollPtr geom, unsigned char **result, int *size) { /* builds the SpatiaLite BLOB representation for this GEOMETRY */ int ib; int iv; double x; double y; double z = 0.0; double m = 0.0; int entities = 0; int n_points = 0; int n_linestrings = 0; int n_polygons = 0; int type; unsigned char *ptr; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; gaiaRingPtr rng; gaiaPointPtr point = NULL; gaiaLinestringPtr line = NULL; gaiaPolygonPtr polyg = NULL; int endian_arch = gaiaEndianArch (); gaiaMbrGeometry (geom); /* how many entities, and of what kind, do we have ? */ pt = geom->FirstPoint; while (pt) { point = pt; entities++; n_points++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { line = ln; entities++; n_linestrings++; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { polyg = pg; entities++; n_polygons++; pg = pg->Next; } *size = 0; *result = NULL; if (n_points == 0 && n_polygons == 0 && n_linestrings == 0) return; /* ok, we can determine the geometry class */ if (n_points == 1 && n_linestrings == 0 && n_polygons == 0) { if (geom->DeclaredType == GAIA_MULTIPOINT) { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_MULTIPOINTZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_MULTIPOINTM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_MULTIPOINTZM; else type = GAIA_MULTIPOINT; } else if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_GEOMETRYCOLLECTIONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_GEOMETRYCOLLECTIONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_GEOMETRYCOLLECTIONZM; else type = GAIA_GEOMETRYCOLLECTION; } else { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_POINTZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_POINTM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_POINTZM; else type = GAIA_POINT; } } else if (n_points > 1 && n_linestrings == 0 && n_polygons == 0) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_GEOMETRYCOLLECTIONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_GEOMETRYCOLLECTIONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_GEOMETRYCOLLECTIONZM; else type = GAIA_GEOMETRYCOLLECTION; } else { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_MULTIPOINTZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_MULTIPOINTM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_MULTIPOINTZM; else type = GAIA_MULTIPOINT; } } else if (n_points == 0 && n_linestrings == 1 && n_polygons == 0) { if (geom->DeclaredType == GAIA_MULTILINESTRING) { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_MULTILINESTRINGZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_MULTILINESTRINGM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_MULTILINESTRINGZM; else type = GAIA_MULTILINESTRING; } else if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_GEOMETRYCOLLECTIONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_GEOMETRYCOLLECTIONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_GEOMETRYCOLLECTIONZM; else type = GAIA_GEOMETRYCOLLECTION; } else { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_LINESTRINGZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_LINESTRINGM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_LINESTRINGZM; else type = GAIA_LINESTRING; } } else if (n_points == 0 && n_linestrings > 1 && n_polygons == 0) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_GEOMETRYCOLLECTIONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_GEOMETRYCOLLECTIONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_GEOMETRYCOLLECTIONZM; else type = GAIA_GEOMETRYCOLLECTION; } else { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_MULTILINESTRINGZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_MULTILINESTRINGM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_MULTILINESTRINGZM; else type = GAIA_MULTILINESTRING; } } else if (n_points == 0 && n_linestrings == 0 && n_polygons == 1) { if (geom->DeclaredType == GAIA_MULTIPOLYGON) { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_MULTIPOLYGONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_MULTIPOLYGONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_MULTIPOLYGONZM; else type = GAIA_MULTIPOLYGON; } else if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_GEOMETRYCOLLECTIONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_GEOMETRYCOLLECTIONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_GEOMETRYCOLLECTIONZM; else type = GAIA_GEOMETRYCOLLECTION; } else { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_POLYGONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_POLYGONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_POLYGONZM; else type = GAIA_POLYGON; } } else if (n_points == 0 && n_linestrings == 0 && n_polygons > 1) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_GEOMETRYCOLLECTIONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_GEOMETRYCOLLECTIONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_GEOMETRYCOLLECTIONZM; else type = GAIA_GEOMETRYCOLLECTION; } else { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_MULTIPOLYGONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_MULTIPOLYGONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_MULTIPOLYGONZM; else type = GAIA_MULTIPOLYGON; } } else { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_GEOMETRYCOLLECTIONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_GEOMETRYCOLLECTIONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_GEOMETRYCOLLECTIONZM; else type = GAIA_GEOMETRYCOLLECTION; } /* and now we compute the size of BLOB */ *size = 44; /* header size */ switch (type) { case GAIA_POINT: *size += (sizeof (double) * 2); /* [x,y] coords */ break; case GAIA_POINTZ: *size += (sizeof (double) * 3); /* [x,y,z] coords */ break; case GAIA_POINTM: *size += (sizeof (double) * 3); /* [x,y,m] coords */ break; case GAIA_POINTZM: *size += (sizeof (double) * 4); /* [x,y,z,m] coords */ break; case GAIA_LINESTRING: *size += (4 + ((sizeof (double) * 2) * line->Points)); /* # points + [x,y] for each vertex */ break; case GAIA_LINESTRINGZ: *size += (4 + ((sizeof (double) * 3) * line->Points)); /* # points + [x,y,z] for each vertex */ break; case GAIA_LINESTRINGM: *size += (4 + ((sizeof (double) * 3) * line->Points)); /* # points + [x,y,m] for each vertex */ break; case GAIA_LINESTRINGZM: *size += (4 + ((sizeof (double) * 4) * line->Points)); /* # points + [x,y,z,m] for each vertex */ break; case GAIA_POLYGON: rng = polyg->Exterior; *size += (8 + ((sizeof (double) * 2) * rng->Points)); /* # rings + # points + [x.y] array - exterior ring */ for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; *size += (4 + ((sizeof (double) * 2) * rng->Points)); /* # points + [x,y] array - interior ring */ } break; case GAIA_POLYGONZ: rng = polyg->Exterior; *size += (8 + ((sizeof (double) * 3) * rng->Points)); /* # rings + # points + [x,y,z] array - exterior ring */ for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; *size += (4 + ((sizeof (double) * 3) * rng->Points)); /* # points + [x,y,z] array - interior ring */ } break; case GAIA_POLYGONM: rng = polyg->Exterior; *size += (8 + ((sizeof (double) * 3) * rng->Points)); /* # rings + # points + [x,y,m] array - exterior ring */ for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; *size += (4 + ((sizeof (double) * 3) * rng->Points)); /* # points + [x,y,m] array - interior ring */ } break; case GAIA_POLYGONZM: rng = polyg->Exterior; *size += (8 + ((sizeof (double) * 4) * rng->Points)); /* # rings + # points + [x,y,z,m] array - exterior ring */ for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; *size += (4 + ((sizeof (double) * 4) * rng->Points)); /* # points + [x,y,z,m] array - interior ring */ } break; default: /* this one is not a simple geometry; should be a MULTIxxxx or a GEOMETRYCOLLECTION */ *size += 4; /* # entities */ point = geom->FirstPoint; while (point) { *size += 5; /* entity header */ if (geom->DimensionModel == GAIA_XY_Z || geom->DimensionModel == GAIA_XY_M) *size += (sizeof (double) * 3); /* three doubles for each POINT */ else if (geom->DimensionModel == GAIA_XY_Z_M) *size += (sizeof (double) * 4); /* four doubles for each POINT */ else *size += (sizeof (double) * 2); /* two doubles for each POINT */ point = point->Next; } line = geom->FirstLinestring; while (line) { *size += 5; /* entity header */ if (geom->DimensionModel == GAIA_XY_Z || geom->DimensionModel == GAIA_XY_M) *size += (4 + ((sizeof (double) * 3) * line->Points)); /* # points + [x,y,z] for each vertex */ else if (geom->DimensionModel == GAIA_XY_Z_M) *size += (4 + ((sizeof (double) * 4) * line->Points)); /* # points + [x,y,z,m] for each vertex */ else *size += (4 + ((sizeof (double) * 2) * line->Points)); /* # points + [x,y] for each vertex */ line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { *size += 5; /* entity header */ rng = polyg->Exterior; if (geom->DimensionModel == GAIA_XY_Z || geom->DimensionModel == GAIA_XY_M) *size += (8 + ((sizeof (double) * 3) * rng->Points)); /* # rings + # points + [x,y,z] array - exterior ring */ else if (geom->DimensionModel == GAIA_XY_Z_M) *size += (8 + ((sizeof (double) * 4) * rng->Points)); /* # rings + # points + [x,y,z,m] array - exterior ring */ else *size += (8 + ((sizeof (double) * 2) * rng->Points)); /* # rings + # points + [x,y] array - exterior ring */ for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; if (geom->DimensionModel == GAIA_XY_Z || geom->DimensionModel == GAIA_XY_M) *size += (4 + ((sizeof (double) * 3) * rng->Points)); /* # points + [x,y,z] array - interior ring */ else if (geom->DimensionModel == GAIA_XY_Z_M) *size += (4 + ((sizeof (double) * 4) * rng->Points)); /* # points + [x,y,z,m] array - interior ring */ else *size += (4 + ((sizeof (double) * 2) * rng->Points)); /* # points + [x,y] array - interior ring */ } polyg = polyg->Next; } }; *result = malloc (*size); ptr = *result; /* and finally we build the BLOB */ switch (type) { case GAIA_POINT: *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, geom->Srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, geom->MinX, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, geom->MinY, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, geom->MaxX, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, geom->MaxY, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_POINT, 1, endian_arch); /* class POINT */ gaiaExport64 (ptr + 43, point->X, 1, endian_arch); /* X */ gaiaExport64 (ptr + 51, point->Y, 1, endian_arch); /* Y */ *(ptr + 59) = GAIA_MARK_END; /* END signature */ break; case GAIA_POINTZ: *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, geom->Srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, geom->MinX, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, geom->MinY, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, geom->MaxX, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, geom->MaxY, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_POINTZ, 1, endian_arch); /* class POINT XYZ */ gaiaExport64 (ptr + 43, point->X, 1, endian_arch); /* X */ gaiaExport64 (ptr + 51, point->Y, 1, endian_arch); /* Y */ gaiaExport64 (ptr + 59, point->Z, 1, endian_arch); /* Z */ *(ptr + 67) = GAIA_MARK_END; /* END signature */ break; case GAIA_POINTM: *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, geom->Srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, geom->MinX, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, geom->MinY, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, geom->MaxX, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, geom->MaxY, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_POINTM, 1, endian_arch); /* class POINT XYM */ gaiaExport64 (ptr + 43, point->X, 1, endian_arch); /* X */ gaiaExport64 (ptr + 51, point->Y, 1, endian_arch); /* Y */ gaiaExport64 (ptr + 59, point->M, 1, endian_arch); /* M */ *(ptr + 67) = GAIA_MARK_END; /* END signature */ break; case GAIA_POINTZM: *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, geom->Srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, geom->MinX, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, geom->MinY, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, geom->MaxX, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, geom->MaxY, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_POINTZM, 1, endian_arch); /* class POINT XYZM */ gaiaExport64 (ptr + 43, point->X, 1, endian_arch); /* X */ gaiaExport64 (ptr + 51, point->Y, 1, endian_arch); /* Y */ gaiaExport64 (ptr + 59, point->Z, 1, endian_arch); /* M */ gaiaExport64 (ptr + 67, point->M, 1, endian_arch); /* Z */ *(ptr + 75) = GAIA_MARK_END; /* END signature */ break; case GAIA_LINESTRING: *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, geom->Srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, geom->MinX, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, geom->MinY, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, geom->MaxX, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, geom->MaxY, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_LINESTRING, 1, endian_arch); /* class LINESTRING */ gaiaExport32 (ptr + 43, line->Points, 1, endian_arch); /* # points */ ptr += 47; for (iv = 0; iv < line->Points; iv++) { gaiaGetPoint (line->Coords, iv, &x, &y); gaiaExport64 (ptr, x, 1, endian_arch); gaiaExport64 (ptr + 8, y, 1, endian_arch); ptr += 16; } *ptr = GAIA_MARK_END; /* END signature */ break; case GAIA_LINESTRINGZ: *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, geom->Srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, geom->MinX, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, geom->MinY, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, geom->MaxX, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, geom->MaxY, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_LINESTRINGZ, 1, endian_arch); /* class LINESTRING XYZ */ gaiaExport32 (ptr + 43, line->Points, 1, endian_arch); /* # points */ ptr += 47; for (iv = 0; iv < line->Points; iv++) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); gaiaExport64 (ptr, x, 1, endian_arch); gaiaExport64 (ptr + 8, y, 1, endian_arch); gaiaExport64 (ptr + 16, z, 1, endian_arch); ptr += 24; } *ptr = GAIA_MARK_END; /* END signature */ break; case GAIA_LINESTRINGM: *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, geom->Srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, geom->MinX, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, geom->MinY, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, geom->MaxX, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, geom->MaxY, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_LINESTRINGM, 1, endian_arch); /* class LINESTRING XYM */ gaiaExport32 (ptr + 43, line->Points, 1, endian_arch); /* # points */ ptr += 47; for (iv = 0; iv < line->Points; iv++) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); gaiaExport64 (ptr, x, 1, endian_arch); gaiaExport64 (ptr + 8, y, 1, endian_arch); gaiaExport64 (ptr + 16, m, 1, endian_arch); ptr += 24; } *ptr = GAIA_MARK_END; /* END signature */ break; case GAIA_LINESTRINGZM: *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, geom->Srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, geom->MinX, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, geom->MinY, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, geom->MaxX, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, geom->MaxY, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_LINESTRINGZM, 1, endian_arch); /* class LINESTRING XYZM */ gaiaExport32 (ptr + 43, line->Points, 1, endian_arch); /* # points */ ptr += 47; for (iv = 0; iv < line->Points; iv++) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); gaiaExport64 (ptr, x, 1, endian_arch); gaiaExport64 (ptr + 8, y, 1, endian_arch); gaiaExport64 (ptr + 16, z, 1, endian_arch); gaiaExport64 (ptr + 24, m, 1, endian_arch); ptr += 32; } *ptr = GAIA_MARK_END; /* END signature */ break; case GAIA_POLYGON: *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, geom->Srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, geom->MinX, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, geom->MinY, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, geom->MaxX, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, geom->MaxY, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_POLYGON, 1, endian_arch); /* class POLYGON */ gaiaExport32 (ptr + 43, polyg->NumInteriors + 1, 1, endian_arch); /* # rings */ rng = polyg->Exterior; gaiaExport32 (ptr + 47, rng->Points, 1, endian_arch); /* # points - exterior ring */ ptr += 51; for (iv = 0; iv < rng->Points; iv++) { gaiaGetPoint (rng->Coords, iv, &x, &y); gaiaExport64 (ptr, x, 1, endian_arch); /* X - exterior ring */ gaiaExport64 (ptr + 8, y, 1, endian_arch); /* Y - exterior ring */ ptr += 16; } for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; gaiaExport32 (ptr, rng->Points, 1, endian_arch); /* # points - interior ring */ ptr += 4; for (iv = 0; iv < rng->Points; iv++) { gaiaGetPoint (rng->Coords, iv, &x, &y); gaiaExport64 (ptr, x, 1, endian_arch); /* X - interior ring */ gaiaExport64 (ptr + 8, y, 1, endian_arch); /* Y - interior ring */ ptr += 16; } } *ptr = GAIA_MARK_END; /* END signature */ break; case GAIA_POLYGONZ: *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, geom->Srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, geom->MinX, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, geom->MinY, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, geom->MaxX, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, geom->MaxY, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_POLYGONZ, 1, endian_arch); /* class POLYGON XYZ */ gaiaExport32 (ptr + 43, polyg->NumInteriors + 1, 1, endian_arch); /* # rings */ rng = polyg->Exterior; gaiaExport32 (ptr + 47, rng->Points, 1, endian_arch); /* # points - exterior ring */ ptr += 51; for (iv = 0; iv < rng->Points; iv++) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); gaiaExport64 (ptr, x, 1, endian_arch); /* X - exterior ring */ gaiaExport64 (ptr + 8, y, 1, endian_arch); /* Y - exterior ring */ gaiaExport64 (ptr + 16, z, 1, endian_arch); /* Z - exterior ring */ ptr += 24; } for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; gaiaExport32 (ptr, rng->Points, 1, endian_arch); /* # points - interior ring */ ptr += 4; for (iv = 0; iv < rng->Points; iv++) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); gaiaExport64 (ptr, x, 1, endian_arch); /* X - interior ring */ gaiaExport64 (ptr + 8, y, 1, endian_arch); /* Y - interior ring */ gaiaExport64 (ptr + 16, z, 1, endian_arch); /* Z - interior ring */ ptr += 24; } } *ptr = GAIA_MARK_END; /* END signature */ break; case GAIA_POLYGONM: *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, geom->Srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, geom->MinX, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, geom->MinY, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, geom->MaxX, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, geom->MaxY, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_POLYGONM, 1, endian_arch); /* class POLYGON XYM */ gaiaExport32 (ptr + 43, polyg->NumInteriors + 1, 1, endian_arch); /* # rings */ rng = polyg->Exterior; gaiaExport32 (ptr + 47, rng->Points, 1, endian_arch); /* # points - exterior ring */ ptr += 51; for (iv = 0; iv < rng->Points; iv++) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); gaiaExport64 (ptr, x, 1, endian_arch); /* X - exterior ring */ gaiaExport64 (ptr + 8, y, 1, endian_arch); /* Y - exterior ring */ gaiaExport64 (ptr + 16, m, 1, endian_arch); /* M - exterior ring */ ptr += 24; } for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; gaiaExport32 (ptr, rng->Points, 1, endian_arch); /* # points - interior ring */ ptr += 4; for (iv = 0; iv < rng->Points; iv++) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); gaiaExport64 (ptr, x, 1, endian_arch); /* X - interior ring */ gaiaExport64 (ptr + 8, y, 1, endian_arch); /* Y - interior ring */ gaiaExport64 (ptr + 16, m, 1, endian_arch); /* M - interior ring */ ptr += 24; } } *ptr = GAIA_MARK_END; /* END signature */ break; case GAIA_POLYGONZM: *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, geom->Srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, geom->MinX, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, geom->MinY, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, geom->MaxX, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, geom->MaxY, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_POLYGONZM, 1, endian_arch); /* class POLYGON */ gaiaExport32 (ptr + 43, polyg->NumInteriors + 1, 1, endian_arch); /* # rings */ rng = polyg->Exterior; gaiaExport32 (ptr + 47, rng->Points, 1, endian_arch); /* # points - exterior ring */ ptr += 51; for (iv = 0; iv < rng->Points; iv++) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); gaiaExport64 (ptr, x, 1, endian_arch); /* X - exterior ring */ gaiaExport64 (ptr + 8, y, 1, endian_arch); /* Y - exterior ring */ gaiaExport64 (ptr + 16, z, 1, endian_arch); /* Z - exterior ring */ gaiaExport64 (ptr + 24, m, 1, endian_arch); /* M - exterior ring */ ptr += 32; } for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; gaiaExport32 (ptr, rng->Points, 1, endian_arch); /* # points - interior ring */ ptr += 4; for (iv = 0; iv < rng->Points; iv++) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); gaiaExport64 (ptr, x, 1, endian_arch); /* X - interior ring */ gaiaExport64 (ptr + 8, y, 1, endian_arch); /* Y - interior ring */ gaiaExport64 (ptr + 16, z, 1, endian_arch); /* Z - exterior ring */ gaiaExport64 (ptr + 24, m, 1, endian_arch); /* M - exterior ring */ ptr += 32; } } *ptr = GAIA_MARK_END; /* END signature */ break; default: /* this one is a MULTIxxxx or a GEOMETRYCOLLECTION - building the main header */ *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, geom->Srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, geom->MinX, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, geom->MinY, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, geom->MaxX, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, geom->MaxY, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, type, 1, endian_arch); /* geometric class */ gaiaExport32 (ptr + 43, entities, 1, endian_arch); /* # entities */ ptr += 47; point = geom->FirstPoint; while (point) { *ptr = GAIA_MARK_ENTITY; /* ENTITY signature */ if (geom->DimensionModel == GAIA_XY_Z) { gaiaExport32 (ptr + 1, GAIA_POINTZ, 1, endian_arch); /* class POINT XYZ */ gaiaExport64 (ptr + 5, point->X, 1, endian_arch); /* X */ gaiaExport64 (ptr + 13, point->Y, 1, endian_arch); /* Y */ gaiaExport64 (ptr + 21, point->Z, 1, endian_arch); /* Z */ ptr += 29; } else if (geom->DimensionModel == GAIA_XY_M) { gaiaExport32 (ptr + 1, GAIA_POINTM, 1, endian_arch); /* class POINT XYM */ gaiaExport64 (ptr + 5, point->X, 1, endian_arch); /* X */ gaiaExport64 (ptr + 13, point->Y, 1, endian_arch); /* Y */ gaiaExport64 (ptr + 21, point->M, 1, endian_arch); /* M */ ptr += 29; } else if (geom->DimensionModel == GAIA_XY_Z_M) { gaiaExport32 (ptr + 1, GAIA_POINTZM, 1, endian_arch); /* class POINT XYZM */ gaiaExport64 (ptr + 5, point->X, 1, endian_arch); /* X */ gaiaExport64 (ptr + 13, point->Y, 1, endian_arch); /* Y */ gaiaExport64 (ptr + 21, point->Z, 1, endian_arch); /* Z */ gaiaExport64 (ptr + 29, point->M, 1, endian_arch); /* M */ ptr += 37; } else { gaiaExport32 (ptr + 1, GAIA_POINT, 1, endian_arch); /* class POINT */ gaiaExport64 (ptr + 5, point->X, 1, endian_arch); /* X */ gaiaExport64 (ptr + 13, point->Y, 1, endian_arch); /* Y */ ptr += 21; } point = point->Next; } line = geom->FirstLinestring; while (line) { *ptr = GAIA_MARK_ENTITY; /* ENTITY signature */ if (geom->DimensionModel == GAIA_XY_Z) gaiaExport32 (ptr + 1, GAIA_LINESTRINGZ, 1, endian_arch); /* class LINESTRING XYZ */ else if (geom->DimensionModel == GAIA_XY_M) gaiaExport32 (ptr + 1, GAIA_LINESTRINGM, 1, endian_arch); /* class LINESTRING XYM */ else if (geom->DimensionModel == GAIA_XY_Z_M) gaiaExport32 (ptr + 1, GAIA_LINESTRINGZM, 1, endian_arch); /* class LINESTRING XYZM */ else gaiaExport32 (ptr + 1, GAIA_LINESTRING, 1, endian_arch); /* class LINESTRING */ gaiaExport32 (ptr + 5, line->Points, 1, endian_arch); /* # points */ ptr += 9; for (iv = 0; iv < line->Points; iv++) { if (geom->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (geom->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (geom->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } gaiaExport64 (ptr, x, 1, endian_arch); /* X */ gaiaExport64 (ptr + 8, y, 1, endian_arch); /* Y */ ptr += 16; if (geom->DimensionModel == GAIA_XY_Z) { gaiaExport64 (ptr, z, 1, endian_arch); /* Z */ ptr += 8; } if (geom->DimensionModel == GAIA_XY_M) { gaiaExport64 (ptr, m, 1, endian_arch); /* M */ ptr += 8; } if (geom->DimensionModel == GAIA_XY_Z_M) { gaiaExport64 (ptr, z, 1, endian_arch); /* Z */ gaiaExport64 (ptr + 8, m, 1, endian_arch); /* M */ ptr += 16; } } line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { *ptr = GAIA_MARK_ENTITY; /* ENTITY signature */ if (geom->DimensionModel == GAIA_XY_Z) gaiaExport32 (ptr + 1, GAIA_POLYGONZ, 1, endian_arch); /* class POLYGON XYZ */ else if (geom->DimensionModel == GAIA_XY_M) gaiaExport32 (ptr + 1, GAIA_POLYGONM, 1, endian_arch); /* class POLYGON XYM */ else if (geom->DimensionModel == GAIA_XY_Z_M) gaiaExport32 (ptr + 1, GAIA_POLYGONZM, 1, endian_arch); /* class POLYGON XYZM */ else gaiaExport32 (ptr + 1, GAIA_POLYGON, 1, endian_arch); /* class POLYGON */ gaiaExport32 (ptr + 5, polyg->NumInteriors + 1, 1, endian_arch); /* # rings */ rng = polyg->Exterior; gaiaExport32 (ptr + 9, rng->Points, 1, endian_arch); /* # points - exterior ring */ ptr += 13; for (iv = 0; iv < rng->Points; iv++) { if (geom->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); } else if (geom->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); } else if (geom->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); } gaiaExport64 (ptr, x, 1, endian_arch); /* X - exterior ring */ gaiaExport64 (ptr + 8, y, 1, endian_arch); /* Y - exterior ring */ ptr += 16; if (geom->DimensionModel == GAIA_XY_Z) { gaiaExport64 (ptr, z, 1, endian_arch); /* Z */ ptr += 8; } if (geom->DimensionModel == GAIA_XY_M) { gaiaExport64 (ptr, m, 1, endian_arch); /* M */ ptr += 8; } if (geom->DimensionModel == GAIA_XY_Z_M) { gaiaExport64 (ptr, z, 1, endian_arch); /* Z */ gaiaExport64 (ptr + 8, m, 1, endian_arch); /* M */ ptr += 16; } } for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; gaiaExport32 (ptr, rng->Points, 1, endian_arch); /* # points - interior ring */ ptr += 4; for (iv = 0; iv < rng->Points; iv++) { if (geom->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); } else if (geom->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); } else if (geom->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); } gaiaExport64 (ptr, x, 1, endian_arch); /* X - interior ring */ gaiaExport64 (ptr + 8, y, 1, endian_arch); /* Y - interior ring */ ptr += 16; if (geom->DimensionModel == GAIA_XY_Z) { gaiaExport64 (ptr, z, 1, endian_arch); /* Z */ ptr += 8; } if (geom->DimensionModel == GAIA_XY_M) { gaiaExport64 (ptr, m, 1, endian_arch); /* M */ ptr += 8; } if (geom->DimensionModel == GAIA_XY_Z_M) { gaiaExport64 (ptr, z, 1, endian_arch); /* Z */ gaiaExport64 (ptr + 8, m, 1, endian_arch); /* M */ ptr += 16; } } } polyg = polyg->Next; } *ptr = GAIA_MARK_END; /* END signature */ }; } GAIAGEO_DECLARE void gaiaToCompressedBlobWkb (gaiaGeomCollPtr geom, unsigned char **result, int *size) { /* / builds the SpatiaLite BLOB representation for this GEOMETRY / geometry-compression will be applied to LINESTRINGs and RINGs */ int ib; int iv; double x; double y; double z; double m; double last_x = 0.0; double last_y = 0.0; double last_z = 0.0; float fx; float fy; float fz; int entities = 0; int n_points = 0; int n_linestrings = 0; int n_polygons = 0; int type; unsigned char *ptr; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; gaiaRingPtr rng; gaiaPointPtr point = NULL; gaiaLinestringPtr line = NULL; gaiaPolygonPtr polyg = NULL; int endian_arch = gaiaEndianArch (); gaiaMbrGeometry (geom); /* how many entities, and of what kind, do we have ? */ pt = geom->FirstPoint; while (pt) { point = pt; entities++; n_points++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { line = ln; entities++; n_linestrings++; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { polyg = pg; entities++; n_polygons++; pg = pg->Next; } *size = 0; *result = NULL; if (n_points == 0 && n_polygons == 0 && n_linestrings == 0) return; /* ok, we can determine the geometry class */ if (n_points == 1 && n_linestrings == 0 && n_polygons == 0) { if (geom->DeclaredType == GAIA_MULTIPOINT) { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_MULTIPOINTZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_MULTIPOINTM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_MULTIPOINTZM; else type = GAIA_MULTIPOINT; } else if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_GEOMETRYCOLLECTIONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_GEOMETRYCOLLECTIONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_GEOMETRYCOLLECTIONZM; else type = GAIA_GEOMETRYCOLLECTION; } else { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_POINTZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_POINTM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_POINTZM; else type = GAIA_POINT; } } else if (n_points > 1 && n_linestrings == 0 && n_polygons == 0) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_GEOMETRYCOLLECTIONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_GEOMETRYCOLLECTIONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_GEOMETRYCOLLECTIONZM; else type = GAIA_GEOMETRYCOLLECTION; } else { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_MULTIPOINTZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_MULTIPOINTM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_MULTIPOINTZM; else type = GAIA_MULTIPOINT; } } else if (n_points == 0 && n_linestrings == 1 && n_polygons == 0) { if (geom->DeclaredType == GAIA_MULTILINESTRING) { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_MULTILINESTRINGZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_MULTILINESTRINGM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_MULTILINESTRINGZM; else type = GAIA_MULTILINESTRING; } else if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_GEOMETRYCOLLECTIONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_GEOMETRYCOLLECTIONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_GEOMETRYCOLLECTIONZM; else type = GAIA_GEOMETRYCOLLECTION; } else { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_LINESTRINGZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_LINESTRINGM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_LINESTRINGZM; else type = GAIA_LINESTRING; } } else if (n_points == 0 && n_linestrings > 1 && n_polygons == 0) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_GEOMETRYCOLLECTIONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_GEOMETRYCOLLECTIONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_GEOMETRYCOLLECTIONZM; else type = GAIA_GEOMETRYCOLLECTION; } else { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_MULTILINESTRINGZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_MULTILINESTRINGM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_MULTILINESTRINGZM; else type = GAIA_MULTILINESTRING; } } else if (n_points == 0 && n_linestrings == 0 && n_polygons == 1) { if (geom->DeclaredType == GAIA_MULTIPOLYGON) { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_MULTIPOLYGONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_MULTIPOLYGONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_MULTIPOLYGONZM; else type = GAIA_MULTIPOLYGON; } else if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_GEOMETRYCOLLECTIONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_GEOMETRYCOLLECTIONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_GEOMETRYCOLLECTIONZM; else type = GAIA_GEOMETRYCOLLECTION; } else { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_POLYGONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_POLYGONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_POLYGONZM; else type = GAIA_POLYGON; } } else if (n_points == 0 && n_linestrings == 0 && n_polygons > 1) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_GEOMETRYCOLLECTIONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_GEOMETRYCOLLECTIONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_GEOMETRYCOLLECTIONZM; else type = GAIA_GEOMETRYCOLLECTION; } else { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_MULTIPOLYGONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_MULTIPOLYGONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_MULTIPOLYGONZM; else type = GAIA_MULTIPOLYGON; } } else { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_GEOMETRYCOLLECTIONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_GEOMETRYCOLLECTIONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_GEOMETRYCOLLECTIONZM; else type = GAIA_GEOMETRYCOLLECTION; } /* and now we compute the size of BLOB */ *size = 44; /* header size */ switch (type) { case GAIA_POINT: *size += (sizeof (double) * 2); /* [x,y] coords */ break; case GAIA_POINTZ: *size += (sizeof (double) * 3); /* [x,y,z] coords */ break; case GAIA_POINTM: *size += (sizeof (double) * 3); /* [x,y,m] coords */ break; case GAIA_POINTZM: *size += (sizeof (double) * 4); /* [x,y,z,m] coords */ break; case GAIA_LINESTRING: *size += (4 + (8 * line->Points) + 16); /* # points + [x,y] for each vertex */ break; case GAIA_LINESTRINGZ: *size += (4 + (12 * line->Points) + 24); /* # points + [x,y,z] for each vertex */ break; case GAIA_LINESTRINGM: *size += (4 + (16 * line->Points) + 16); /* # points + [x,y,m] for each vertex */ break; case GAIA_LINESTRINGZM: *size += (4 + (20 * line->Points) + 24); /* # points + [x,y,z,m] for each vertex */ break; case GAIA_POLYGON: rng = polyg->Exterior; *size += (8 + (8 * rng->Points) + 16); /* # rings + # points + [x.y] array - exterior ring */ for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; *size += (4 + (8 * rng->Points) + 16); /* # points + [x,y] array - interior ring */ } break; case GAIA_POLYGONZ: rng = polyg->Exterior; *size += (8 + (12 * rng->Points) + 24); /* # rings + # points + [x,y,z] array - exterior ring */ for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; *size += (4 + (12 * rng->Points) + 24); /* # points + [x,y,z] array - interior ring */ } break; case GAIA_POLYGONM: rng = polyg->Exterior; *size += (8 + (16 * rng->Points) + 16); /* # rings + # points + [x,y,m] array - exterior ring */ for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; *size += (4 + (16 * rng->Points) + 16); /* # points + [x,y,m] array - interior ring */ } break; case GAIA_POLYGONZM: rng = polyg->Exterior; *size += (8 + (20 * rng->Points) + 24); /* # rings + # points + [x,y,z,m] array - exterior ring */ for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; *size += (4 + (20 * rng->Points) + 24); /* # points + [x,y,z,m] array - interior ring */ } break; default: /* this one is not a simple geometry; should be a MULTIxxxx or a GEOMETRYCOLLECTION */ *size += 4; /* # entities */ point = geom->FirstPoint; while (point) { *size += 5; /* entity header */ if (geom->DimensionModel == GAIA_XY_Z || geom->DimensionModel == GAIA_XY_M) *size += (sizeof (double) * 3); /* three doubles for each POINT */ else if (geom->DimensionModel == GAIA_XY_Z_M) *size += (sizeof (double) * 4); /* four doubles for each POINT */ else *size += (sizeof (double) * 2); /* two doubles for each POINT */ point = point->Next; } line = geom->FirstLinestring; while (line) { *size += 5; /* entity header */ if (geom->DimensionModel == GAIA_XY_Z) *size += (4 + (12 * line->Points) + 24); /* # points + [x,y,z] for each vertex */ else if (geom->DimensionModel == GAIA_XY_M) *size += (4 + (16 * line->Points) + 16); /* # points + [x,y,m] for each vertex */ else if (geom->DimensionModel == GAIA_XY_Z_M) *size += (4 + (20 * line->Points) + 24); /* # points + [x,y,z,m] for each vertex */ else *size += (4 + (8 * line->Points) + 16); /* # points + [x,y] for each vertex */ line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { *size += 5; /* entity header */ rng = polyg->Exterior; if (geom->DimensionModel == GAIA_XY_Z) *size += (8 + (12 * rng->Points) + 24); /* # rings + # points + [x,y,z] array - exterior ring */ else if (geom->DimensionModel == GAIA_XY_M) *size += (8 + (16 * rng->Points) + 16); /* # rings + # points + [x,y,m] array - exterior ring */ else if (geom->DimensionModel == GAIA_XY_Z_M) *size += (8 + (20 * rng->Points) + 24); /* # rings + # points + [x,y,z,m] array - exterior ring */ else *size += (8 + (8 * rng->Points) + 16); /* # rings + # points + [x,y] array - exterior ring */ for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; if (geom->DimensionModel == GAIA_XY_Z) *size += (4 + (12 * rng->Points) + 24); /* # points + [x,y,z] array - interior ring */ else if (geom->DimensionModel == GAIA_XY_M) *size += (4 + (16 * rng->Points) + 16); /* # points + [x,y,m] array - interior ring */ else if (geom->DimensionModel == GAIA_XY_Z_M) *size += (4 + (20 * rng->Points) + 24); /* # points + [x,y,z,m] array - interior ring */ else *size += (4 + (8 * rng->Points) + 16); /* # points + [x,y] array - interior ring */ } polyg = polyg->Next; } }; *result = malloc (*size); ptr = *result; /* and finally we build the BLOB */ switch (type) { case GAIA_POINT: *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, geom->Srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, geom->MinX, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, geom->MinY, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, geom->MaxX, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, geom->MaxY, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_POINT, 1, endian_arch); /* class POINT */ gaiaExport64 (ptr + 43, point->X, 1, endian_arch); /* X */ gaiaExport64 (ptr + 51, point->Y, 1, endian_arch); /* Y */ *(ptr + 59) = GAIA_MARK_END; /* END signature */ break; case GAIA_POINTZ: *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, geom->Srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, geom->MinX, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, geom->MinY, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, geom->MaxX, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, geom->MaxY, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_POINTZ, 1, endian_arch); /* class POINT XYZ */ gaiaExport64 (ptr + 43, point->X, 1, endian_arch); /* X */ gaiaExport64 (ptr + 51, point->Y, 1, endian_arch); /* Y */ gaiaExport64 (ptr + 59, point->Z, 1, endian_arch); /* Z */ *(ptr + 67) = GAIA_MARK_END; /* END signature */ break; case GAIA_POINTM: *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, geom->Srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, geom->MinX, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, geom->MinY, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, geom->MaxX, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, geom->MaxY, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_POINTM, 1, endian_arch); /* class POINT XYM */ gaiaExport64 (ptr + 43, point->X, 1, endian_arch); /* X */ gaiaExport64 (ptr + 51, point->Y, 1, endian_arch); /* Y */ gaiaExport64 (ptr + 59, point->M, 1, endian_arch); /* M */ *(ptr + 67) = GAIA_MARK_END; /* END signature */ break; case GAIA_POINTZM: *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, geom->Srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, geom->MinX, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, geom->MinY, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, geom->MaxX, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, geom->MaxY, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_POINTZM, 1, endian_arch); /* class POINT XYZM */ gaiaExport64 (ptr + 43, point->X, 1, endian_arch); /* X */ gaiaExport64 (ptr + 51, point->Y, 1, endian_arch); /* Y */ gaiaExport64 (ptr + 59, point->Z, 1, endian_arch); /* M */ gaiaExport64 (ptr + 67, point->M, 1, endian_arch); /* Z */ *(ptr + 75) = GAIA_MARK_END; /* END signature */ break; case GAIA_LINESTRING: *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, geom->Srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, geom->MinX, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, geom->MinY, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, geom->MaxX, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, geom->MaxY, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_COMPRESSED_LINESTRING, 1, endian_arch); /* class LINESTRING */ gaiaExport32 (ptr + 43, line->Points, 1, endian_arch); /* # points */ ptr += 47; for (iv = 0; iv < line->Points; iv++) { gaiaGetPoint (line->Coords, iv, &x, &y); if (iv == 0 || iv == (line->Points - 1)) { /* first and last vertices are uncompressed */ gaiaExport64 (ptr, x, 1, endian_arch); gaiaExport64 (ptr + 8, y, 1, endian_arch); ptr += 16; } else { /* compressing any other intermediate vertex */ fx = (float) (x - last_x); fy = (float) (y - last_y); gaiaExportF32 (ptr, fx, 1, endian_arch); gaiaExportF32 (ptr + 4, fy, 1, endian_arch); ptr += 8; } last_x = x; last_y = y; } *ptr = GAIA_MARK_END; /* END signature */ break; case GAIA_LINESTRINGZ: *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, geom->Srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, geom->MinX, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, geom->MinY, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, geom->MaxX, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, geom->MaxY, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_COMPRESSED_LINESTRINGZ, 1, endian_arch); /* class LINESTRING XYZ */ gaiaExport32 (ptr + 43, line->Points, 1, endian_arch); /* # points */ ptr += 47; for (iv = 0; iv < line->Points; iv++) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); if (iv == 0 || iv == (line->Points - 1)) { /* first and last vertices are uncompressed */ gaiaExport64 (ptr, x, 1, endian_arch); gaiaExport64 (ptr + 8, y, 1, endian_arch); gaiaExport64 (ptr + 16, z, 1, endian_arch); ptr += 24; } else { /* compressing any other intermediate vertex */ fx = (float) (x - last_x); fy = (float) (y - last_y); fz = (float) (z - last_z); gaiaExportF32 (ptr, fx, 1, endian_arch); gaiaExportF32 (ptr + 4, fy, 1, endian_arch); gaiaExportF32 (ptr + 8, fz, 1, endian_arch); ptr += 12; } last_x = x; last_y = y; last_z = z; } *ptr = GAIA_MARK_END; /* END signature */ break; case GAIA_LINESTRINGM: *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, geom->Srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, geom->MinX, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, geom->MinY, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, geom->MaxX, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, geom->MaxY, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_COMPRESSED_LINESTRINGM, 1, endian_arch); /* class LINESTRING XYM */ gaiaExport32 (ptr + 43, line->Points, 1, endian_arch); /* # points */ ptr += 47; for (iv = 0; iv < line->Points; iv++) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); if (iv == 0 || iv == (line->Points - 1)) { /* first and last vertices are uncompressed */ gaiaExport64 (ptr, x, 1, endian_arch); gaiaExport64 (ptr + 8, y, 1, endian_arch); gaiaExport64 (ptr + 16, m, 1, endian_arch); ptr += 24; } else { /* compressing any other intermediate vertex */ fx = (float) (x - last_x); fy = (float) (y - last_y); gaiaExportF32 (ptr, fx, 1, endian_arch); gaiaExportF32 (ptr + 4, fy, 1, endian_arch); gaiaExport64 (ptr + 8, m, 1, endian_arch); ptr += 16; } last_x = x; last_y = y; } *ptr = GAIA_MARK_END; /* END signature */ break; case GAIA_LINESTRINGZM: *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, geom->Srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, geom->MinX, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, geom->MinY, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, geom->MaxX, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, geom->MaxY, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_COMPRESSED_LINESTRINGZM, 1, endian_arch); /* class LINESTRING XYZM */ gaiaExport32 (ptr + 43, line->Points, 1, endian_arch); /* # points */ ptr += 47; for (iv = 0; iv < line->Points; iv++) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); if (iv == 0 || iv == (line->Points - 1)) { /* first and last vertices are uncompressed */ gaiaExport64 (ptr, x, 1, endian_arch); gaiaExport64 (ptr + 8, y, 1, endian_arch); gaiaExport64 (ptr + 16, z, 1, endian_arch); gaiaExport64 (ptr + 24, m, 1, endian_arch); ptr += 32; } else { /* compressing any other intermediate vertex */ fx = (float) (x - last_x); fy = (float) (y - last_y); fz = (float) (z - last_z); gaiaExportF32 (ptr, fx, 1, endian_arch); gaiaExportF32 (ptr + 4, fy, 1, endian_arch); gaiaExportF32 (ptr + 8, fz, 1, endian_arch); gaiaExport64 (ptr + 12, m, 1, endian_arch); ptr += 20; } last_x = x; last_y = y; last_z = z; } *ptr = GAIA_MARK_END; /* END signature */ break; case GAIA_POLYGON: *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, geom->Srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, geom->MinX, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, geom->MinY, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, geom->MaxX, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, geom->MaxY, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_COMPRESSED_POLYGON, 1, endian_arch); /* class POLYGON */ gaiaExport32 (ptr + 43, polyg->NumInteriors + 1, 1, endian_arch); /* # rings */ rng = polyg->Exterior; gaiaExport32 (ptr + 47, rng->Points, 1, endian_arch); /* # points - exterior ring */ ptr += 51; for (iv = 0; iv < rng->Points; iv++) { gaiaGetPoint (rng->Coords, iv, &x, &y); if (iv == 0 || iv == (rng->Points - 1)) { /* first and last vertices are uncompressed */ gaiaExport64 (ptr, x, 1, endian_arch); gaiaExport64 (ptr + 8, y, 1, endian_arch); ptr += 16; } else { /* compressing any other intermediate vertex */ fx = (float) (x - last_x); fy = (float) (y - last_y); gaiaExportF32 (ptr, fx, 1, endian_arch); gaiaExportF32 (ptr + 4, fy, 1, endian_arch); ptr += 8; } last_x = x; last_y = y; } for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; gaiaExport32 (ptr, rng->Points, 1, endian_arch); /* # points - interior ring */ ptr += 4; for (iv = 0; iv < rng->Points; iv++) { gaiaGetPoint (rng->Coords, iv, &x, &y); if (iv == 0 || iv == (rng->Points - 1)) { /* first and last vertices are uncompressed */ gaiaExport64 (ptr, x, 1, endian_arch); gaiaExport64 (ptr + 8, y, 1, endian_arch); ptr += 16; } else { /* compressing any other intermediate vertex */ fx = (float) (x - last_x); fy = (float) (y - last_y); gaiaExportF32 (ptr, fx, 1, endian_arch); gaiaExportF32 (ptr + 4, fy, 1, endian_arch); ptr += 8; } last_x = x; last_y = y; } } *ptr = GAIA_MARK_END; /* END signature */ break; case GAIA_POLYGONZ: *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, geom->Srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, geom->MinX, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, geom->MinY, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, geom->MaxX, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, geom->MaxY, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_COMPRESSED_POLYGONZ, 1, endian_arch); /* class POLYGON XYZ */ gaiaExport32 (ptr + 43, polyg->NumInteriors + 1, 1, endian_arch); /* # rings */ rng = polyg->Exterior; gaiaExport32 (ptr + 47, rng->Points, 1, endian_arch); /* # points - exterior ring */ ptr += 51; for (iv = 0; iv < rng->Points; iv++) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); if (iv == 0 || iv == (rng->Points - 1)) { /* first and last vertices are uncompressed */ gaiaExport64 (ptr, x, 1, endian_arch); gaiaExport64 (ptr + 8, y, 1, endian_arch); gaiaExport64 (ptr + 16, z, 1, endian_arch); ptr += 24; } else { /* compressing any other intermediate vertex */ fx = (float) (x - last_x); fy = (float) (y - last_y); fz = (float) (z - last_z); gaiaExportF32 (ptr, fx, 1, endian_arch); gaiaExportF32 (ptr + 4, fy, 1, endian_arch); gaiaExportF32 (ptr + 8, fz, 1, endian_arch); ptr += 12; } last_x = x; last_y = y; last_z = z; } for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; gaiaExport32 (ptr, rng->Points, 1, endian_arch); /* # points - interior ring */ ptr += 4; for (iv = 0; iv < rng->Points; iv++) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); if (iv == 0 || iv == (rng->Points - 1)) { /* first and last vertices are uncompressed */ gaiaExport64 (ptr, x, 1, endian_arch); gaiaExport64 (ptr + 8, y, 1, endian_arch); gaiaExport64 (ptr + 16, z, 1, endian_arch); ptr += 24; } else { /* compressing any other intermediate vertex */ fx = (float) (x - last_x); fy = (float) (y - last_y); fz = (float) (z - last_z); gaiaExportF32 (ptr, fx, 1, endian_arch); gaiaExportF32 (ptr + 4, fy, 1, endian_arch); gaiaExportF32 (ptr + 8, fz, 1, endian_arch); ptr += 12; } last_x = x; last_y = y; last_z = z; } } *ptr = GAIA_MARK_END; /* END signature */ break; case GAIA_POLYGONM: *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, geom->Srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, geom->MinX, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, geom->MinY, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, geom->MaxX, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, geom->MaxY, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_COMPRESSED_POLYGONM, 1, endian_arch); /* class POLYGON XYM */ gaiaExport32 (ptr + 43, polyg->NumInteriors + 1, 1, endian_arch); /* # rings */ rng = polyg->Exterior; gaiaExport32 (ptr + 47, rng->Points, 1, endian_arch); /* # points - exterior ring */ ptr += 51; for (iv = 0; iv < rng->Points; iv++) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); if (iv == 0 || iv == (rng->Points - 1)) { /* first and last vertices are uncompressed */ gaiaExport64 (ptr, x, 1, endian_arch); gaiaExport64 (ptr + 8, y, 1, endian_arch); gaiaExport64 (ptr + 16, m, 1, endian_arch); ptr += 24; } else { /* compressing any other intermediate vertex */ fx = (float) (x - last_x); fy = (float) (y - last_y); gaiaExportF32 (ptr, fx, 1, endian_arch); gaiaExportF32 (ptr + 4, fy, 1, endian_arch); gaiaExport64 (ptr + 8, m, 1, endian_arch); ptr += 16; } last_x = x; last_y = y; } for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; gaiaExport32 (ptr, rng->Points, 1, endian_arch); /* # points - interior ring */ ptr += 4; for (iv = 0; iv < rng->Points; iv++) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); if (iv == 0 || iv == (rng->Points - 1)) { /* first and last vertices are uncompressed */ gaiaExport64 (ptr, x, 1, endian_arch); gaiaExport64 (ptr + 8, y, 1, endian_arch); gaiaExport64 (ptr + 16, m, 1, endian_arch); ptr += 24; } else { /* compressing any other intermediate vertex */ fx = (float) (x - last_x); fy = (float) (y - last_y); gaiaExportF32 (ptr, fx, 1, endian_arch); gaiaExportF32 (ptr + 4, fy, 1, endian_arch); gaiaExport64 (ptr + 8, m, 1, endian_arch); ptr += 16; } last_x = x; last_y = y; } } *ptr = GAIA_MARK_END; /* END signature */ break; case GAIA_POLYGONZM: *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, geom->Srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, geom->MinX, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, geom->MinY, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, geom->MaxX, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, geom->MaxY, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_COMPRESSED_POLYGONZM, 1, endian_arch); /* class POLYGON */ gaiaExport32 (ptr + 43, polyg->NumInteriors + 1, 1, endian_arch); /* # rings */ rng = polyg->Exterior; gaiaExport32 (ptr + 47, rng->Points, 1, endian_arch); /* # points - exterior ring */ ptr += 51; for (iv = 0; iv < rng->Points; iv++) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); if (iv == 0 || iv == (rng->Points - 1)) { /* first and last vertices are uncompressed */ gaiaExport64 (ptr, x, 1, endian_arch); gaiaExport64 (ptr + 8, y, 1, endian_arch); gaiaExport64 (ptr + 16, z, 1, endian_arch); gaiaExport64 (ptr + 24, m, 1, endian_arch); ptr += 32; } else { /* compressing any other intermediate vertex */ fx = (float) (x - last_x); fy = (float) (y - last_y); fz = (float) (z - last_z); gaiaExportF32 (ptr, fx, 1, endian_arch); gaiaExportF32 (ptr + 4, fy, 1, endian_arch); gaiaExportF32 (ptr + 8, fz, 1, endian_arch); gaiaExport64 (ptr + 12, m, 1, endian_arch); ptr += 20; } last_x = x; last_y = y; last_z = z; } for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; gaiaExport32 (ptr, rng->Points, 1, endian_arch); /* # points - interior ring */ ptr += 4; for (iv = 0; iv < rng->Points; iv++) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); if (iv == 0 || iv == (rng->Points - 1)) { /* first and last vertices are uncompressed */ gaiaExport64 (ptr, x, 1, endian_arch); gaiaExport64 (ptr + 8, y, 1, endian_arch); gaiaExport64 (ptr + 16, z, 1, endian_arch); gaiaExport64 (ptr + 24, m, 1, endian_arch); ptr += 32; } else { /* compressing any other intermediate vertex */ fx = (float) (x - last_x); fy = (float) (y - last_y); fz = (float) (z - last_z); gaiaExportF32 (ptr, fx, 1, endian_arch); gaiaExportF32 (ptr + 4, fy, 1, endian_arch); gaiaExportF32 (ptr + 8, fz, 1, endian_arch); gaiaExport64 (ptr + 12, m, 1, endian_arch); ptr += 20; } last_x = x; last_y = y; last_z = z; } } *ptr = GAIA_MARK_END; /* END signature */ break; default: /* this one is a MULTIxxxx or a GEOMETRYCOLLECTION - building the main header */ *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, geom->Srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, geom->MinX, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, geom->MinY, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, geom->MaxX, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, geom->MaxY, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, type, 1, endian_arch); /* geometric class */ gaiaExport32 (ptr + 43, entities, 1, endian_arch); /* # entities */ ptr += 47; point = geom->FirstPoint; while (point) { *ptr = GAIA_MARK_ENTITY; /* ENTITY signature */ if (geom->DimensionModel == GAIA_XY_Z) { gaiaExport32 (ptr + 1, GAIA_POINTZ, 1, endian_arch); /* class POINT XYZ */ gaiaExport64 (ptr + 5, point->X, 1, endian_arch); /* X */ gaiaExport64 (ptr + 13, point->Y, 1, endian_arch); /* Y */ gaiaExport64 (ptr + 21, point->Z, 1, endian_arch); /* Z */ ptr += 29; } else if (geom->DimensionModel == GAIA_XY_M) { gaiaExport32 (ptr + 1, GAIA_POINTM, 1, endian_arch); /* class POINT XYM */ gaiaExport64 (ptr + 5, point->X, 1, endian_arch); /* X */ gaiaExport64 (ptr + 13, point->Y, 1, endian_arch); /* Y */ gaiaExport64 (ptr + 21, point->M, 1, endian_arch); /* M */ ptr += 29; } else if (geom->DimensionModel == GAIA_XY_Z_M) { gaiaExport32 (ptr + 1, GAIA_POINTZM, 1, endian_arch); /* class POINT XYZM */ gaiaExport64 (ptr + 5, point->X, 1, endian_arch); /* X */ gaiaExport64 (ptr + 13, point->Y, 1, endian_arch); /* Y */ gaiaExport64 (ptr + 21, point->Z, 1, endian_arch); /* Z */ gaiaExport64 (ptr + 29, point->M, 1, endian_arch); /* M */ ptr += 37; } else { gaiaExport32 (ptr + 1, GAIA_POINT, 1, endian_arch); /* class POINT */ gaiaExport64 (ptr + 5, point->X, 1, endian_arch); /* X */ gaiaExport64 (ptr + 13, point->Y, 1, endian_arch); /* Y */ ptr += 21; } point = point->Next; } line = geom->FirstLinestring; while (line) { *ptr = GAIA_MARK_ENTITY; /* ENTITY signature */ if (geom->DimensionModel == GAIA_XY_Z) gaiaExport32 (ptr + 1, GAIA_COMPRESSED_LINESTRINGZ, 1, endian_arch); /* class LINESTRING XYZ */ else if (geom->DimensionModel == GAIA_XY_M) gaiaExport32 (ptr + 1, GAIA_COMPRESSED_LINESTRINGM, 1, endian_arch); /* class LINESTRING XYM */ else if (geom->DimensionModel == GAIA_XY_Z_M) gaiaExport32 (ptr + 1, GAIA_COMPRESSED_LINESTRINGZM, 1, endian_arch); /* class LINESTRING XYZM */ else gaiaExport32 (ptr + 1, GAIA_COMPRESSED_LINESTRING, 1, endian_arch); /* class LINESTRING */ gaiaExport32 (ptr + 5, line->Points, 1, endian_arch); /* # points */ ptr += 9; for (iv = 0; iv < line->Points; iv++) { z = 0.0; m = 0.0; if (geom->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (geom->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (geom->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } if (iv == 0 || iv == (line->Points - 1)) { /* first and last vertices are uncompressed */ gaiaExport64 (ptr, x, 1, endian_arch); /* X */ gaiaExport64 (ptr + 8, y, 1, endian_arch); /* Y */ ptr += 16; } else { /* compressing any other intermediate vertex */ fx = (float) (x - last_x); fy = (float) (y - last_y); gaiaExportF32 (ptr, fx, 1, endian_arch); /* X */ gaiaExportF32 (ptr + 4, fy, 1, endian_arch); /* Y */ ptr += 8; } if (geom->DimensionModel == GAIA_XY_Z) { if (iv == 0 || iv == (line->Points - 1)) { /* first and last vertices are uncompressed */ gaiaExport64 (ptr, z, 1, endian_arch); /* Z */ ptr += 8; } else { /* compressing any other intermediate vertex */ fz = (float) (z - last_z); gaiaExportF32 (ptr, fz, 1, endian_arch); /* Z */ ptr += 4; } } if (geom->DimensionModel == GAIA_XY_M) { gaiaExport64 (ptr, m, 1, endian_arch); /* M */ ptr += 8; } if (geom->DimensionModel == GAIA_XY_Z_M) { if (iv == 0 || iv == (line->Points - 1)) { /* first and last vertices are uncompressed */ gaiaExport64 (ptr, z, 1, endian_arch); /* Z */ ptr += 8; } else { /* compressing any other intermediate vertex */ fz = (float) (z - last_z); gaiaExportF32 (ptr, fz, 1, endian_arch); /* Z */ ptr += 4; } gaiaExport64 (ptr, m, 1, endian_arch); /* M */ ptr += 8; } last_x = x; last_y = y; last_z = z; } line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { *ptr = GAIA_MARK_ENTITY; /* ENTITY signature */ if (geom->DimensionModel == GAIA_XY_Z) gaiaExport32 (ptr + 1, GAIA_COMPRESSED_POLYGONZ, 1, endian_arch); /* class POLYGON XYZ */ else if (geom->DimensionModel == GAIA_XY_M) gaiaExport32 (ptr + 1, GAIA_COMPRESSED_POLYGONM, 1, endian_arch); /* class POLYGON XYM */ else if (geom->DimensionModel == GAIA_XY_Z_M) gaiaExport32 (ptr + 1, GAIA_COMPRESSED_POLYGONZM, 1, endian_arch); /* class POLYGON XYZM */ else gaiaExport32 (ptr + 1, GAIA_COMPRESSED_POLYGON, 1, endian_arch); /* class POLYGON */ gaiaExport32 (ptr + 5, polyg->NumInteriors + 1, 1, endian_arch); /* # rings */ rng = polyg->Exterior; gaiaExport32 (ptr + 9, rng->Points, 1, endian_arch); /* # points - exterior ring */ ptr += 13; for (iv = 0; iv < rng->Points; iv++) { z = 0.0; m = 0.0; if (geom->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); } else if (geom->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); } else if (geom->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); } if (iv == 0 || iv == (rng->Points - 1)) { /* first and last vertices are uncompressed */ gaiaExport64 (ptr, x, 1, endian_arch); /* X - exterior ring */ gaiaExport64 (ptr + 8, y, 1, endian_arch); /* Y - exterior ring */ ptr += 16; } else { /* compressing any other intermediate vertex */ fx = (float) (x - last_x); fy = (float) (y - last_y); gaiaExportF32 (ptr, fx, 1, endian_arch); /* X */ gaiaExportF32 (ptr + 4, fy, 1, endian_arch); /* Y */ ptr += 8; } if (geom->DimensionModel == GAIA_XY_Z) { if (iv == 0 || iv == (rng->Points - 1)) { /* first and last vertices are uncompressed */ gaiaExport64 (ptr, z, 1, endian_arch); /* Z */ ptr += 8; } else { /* compressing any other intermediate vertex */ fz = (float) (z - last_z); gaiaExportF32 (ptr, fz, 1, endian_arch); /* Z */ ptr += 4; } } if (geom->DimensionModel == GAIA_XY_M) { gaiaExport64 (ptr, m, 1, endian_arch); /* M */ ptr += 8; } if (geom->DimensionModel == GAIA_XY_Z_M) { if (iv == 0 || iv == (rng->Points - 1)) { /* first and last vertices are uncompressed */ gaiaExport64 (ptr, z, 1, endian_arch); /* Z */ ptr += 8; } else { /* compressing any other intermediate vertex */ fz = (float) (z - last_z); gaiaExportF32 (ptr, fz, 1, endian_arch); /* Z */ ptr += 4; } gaiaExport64 (ptr, m, 1, endian_arch); /* M */ ptr += 8; } last_x = x; last_y = y; last_z = z; } for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; gaiaExport32 (ptr, rng->Points, 1, endian_arch); /* # points - interior ring */ ptr += 4; for (iv = 0; iv < rng->Points; iv++) { z = 0.0; m = 0.0; if (geom->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); } else if (geom->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); } else if (geom->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); } if (iv == 0 || iv == (rng->Points - 1)) { /* first and last vertices are uncompressed */ gaiaExport64 (ptr, x, 1, endian_arch); /* X - interior ring */ gaiaExport64 (ptr + 8, y, 1, endian_arch); /* Y - interior ring */ ptr += 16; } else { /* compressing any other intermediate vertex */ fx = (float) (x - last_x); fy = (float) (y - last_y); gaiaExportF32 (ptr, fx, 1, endian_arch); /* X */ gaiaExportF32 (ptr + 4, fy, 1, endian_arch); /* Y */ ptr += 8; } if (geom->DimensionModel == GAIA_XY_Z) { if (iv == 0 || iv == (rng->Points - 1)) { /* first and last vertices are uncompressed */ gaiaExport64 (ptr, z, 1, endian_arch); /* Z */ ptr += 8; } else { /* compressing any other intermediate vertex */ fz = (float) (z - last_z); gaiaExportF32 (ptr, fz, 1, endian_arch); /* Z */ ptr += 4; } } if (geom->DimensionModel == GAIA_XY_M) { gaiaExport64 (ptr, m, 1, endian_arch); /* M */ ptr += 8; } if (geom->DimensionModel == GAIA_XY_Z_M) { if (iv == 0 || iv == (rng->Points - 1)) { /* first and last vertices are uncompressed */ gaiaExport64 (ptr, z, 1, endian_arch); /* Z */ ptr += 8; } else { /* compressing any other intermediate vertex */ fz = (float) (z - last_z); gaiaExportF32 (ptr, fz, 1, endian_arch); /* Z */ ptr += 4; } gaiaExport64 (ptr, m, 1, endian_arch); /* M */ ptr += 8; } last_x = x; last_y = y; last_z = z; } } polyg = polyg->Next; } *ptr = GAIA_MARK_END; /* END signature */ }; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromWkb (const unsigned char *blob, unsigned int size) { /* decoding from WKB to GEOMETRY */ int type; int little_endian; gaiaGeomCollPtr geo = NULL; int endian_arch = gaiaEndianArch (); if (size < 5) return NULL; if (*(blob + 0) == 0x01) little_endian = GAIA_LITTLE_ENDIAN; else little_endian = GAIA_BIG_ENDIAN; type = gaiaImport32 (blob + 1, little_endian, endian_arch); if (type == GAIA_POINTZ || type == GAIA_LINESTRINGZ || type == GAIA_POLYGONZ || type == GAIA_MULTIPOINTZ || type == GAIA_MULTILINESTRINGZ || type == GAIA_MULTIPOLYGONZ || type == GAIA_GEOMETRYCOLLECTIONZ || type == GAIA_GEOSWKB_POINTZ || type == GAIA_GEOSWKB_LINESTRINGZ || type == GAIA_GEOSWKB_POLYGONZ || type == GAIA_GEOSWKB_MULTIPOINTZ || type == GAIA_GEOSWKB_MULTILINESTRINGZ || type == GAIA_GEOSWKB_MULTIPOLYGONZ || type == GAIA_GEOSWKB_GEOMETRYCOLLECTIONZ) geo = gaiaAllocGeomCollXYZ (); else if (type == GAIA_POINTM || type == GAIA_LINESTRINGM || type == GAIA_POLYGONM || type == GAIA_MULTIPOINTM || type == GAIA_MULTILINESTRINGM || type == GAIA_MULTIPOLYGONM || type == GAIA_GEOMETRYCOLLECTIONM) geo = gaiaAllocGeomCollXYM (); else if (type == GAIA_POINTZM || type == GAIA_LINESTRINGZM || type == GAIA_POLYGONZM || type == GAIA_MULTIPOINTZM || type == GAIA_MULTILINESTRINGZM || type == GAIA_MULTIPOLYGONZM || type == GAIA_GEOMETRYCOLLECTIONZM) geo = gaiaAllocGeomCollXYZM (); else geo = gaiaAllocGeomColl (); geo->Srid = 0; geo->endian_arch = (char) endian_arch; geo->endian = (char) little_endian; geo->blob = blob; geo->size = size; geo->offset = 5; switch (type) { case GAIA_POINT: ParseWkbPoint (geo); break; case GAIA_POINTZ: case GAIA_GEOSWKB_POINTZ: ParseWkbPointZ (geo); break; case GAIA_POINTM: ParseWkbPointM (geo); break; case GAIA_POINTZM: ParseWkbPointZM (geo); break; case GAIA_LINESTRING: ParseWkbLine (geo); break; case GAIA_LINESTRINGZ: case GAIA_GEOSWKB_LINESTRINGZ: ParseWkbLineZ (geo); break; case GAIA_LINESTRINGM: ParseWkbLineM (geo); break; case GAIA_LINESTRINGZM: ParseWkbLineZM (geo); break; case GAIA_POLYGON: ParseWkbPolygon (geo); break; case GAIA_POLYGONZ: case GAIA_GEOSWKB_POLYGONZ: ParseWkbPolygonZ (geo); break; case GAIA_POLYGONM: ParseWkbPolygonM (geo); break; case GAIA_POLYGONZM: ParseWkbPolygonZM (geo); break; case GAIA_MULTIPOINT: case GAIA_MULTILINESTRING: case GAIA_MULTIPOLYGON: case GAIA_GEOMETRYCOLLECTION: case GAIA_MULTIPOINTZ: case GAIA_MULTILINESTRINGZ: case GAIA_MULTIPOLYGONZ: case GAIA_GEOMETRYCOLLECTIONZ: case GAIA_GEOSWKB_MULTIPOINTZ: case GAIA_GEOSWKB_MULTILINESTRINGZ: case GAIA_GEOSWKB_MULTIPOLYGONZ: case GAIA_GEOSWKB_GEOMETRYCOLLECTIONZ: case GAIA_MULTIPOINTM: case GAIA_MULTILINESTRINGM: case GAIA_MULTIPOLYGONM: case GAIA_GEOMETRYCOLLECTIONM: case GAIA_MULTIPOINTZM: case GAIA_MULTILINESTRINGZM: case GAIA_MULTIPOLYGONZM: case GAIA_GEOMETRYCOLLECTIONZM: ParseWkbGeometry (geo, 1); break; default: break; }; gaiaMbrGeometry (geo); switch (type) { case GAIA_POINT: case GAIA_POINTZ: case GAIA_GEOSWKB_POINTZ: case GAIA_POINTM: case GAIA_POINTZM: geo->DeclaredType = GAIA_POINT; break; case GAIA_LINESTRING: case GAIA_LINESTRINGZ: case GAIA_GEOSWKB_LINESTRINGZ: case GAIA_LINESTRINGM: case GAIA_LINESTRINGZM: geo->DeclaredType = GAIA_LINESTRING; break; case GAIA_POLYGON: case GAIA_POLYGONZ: case GAIA_GEOSWKB_POLYGONZ: case GAIA_POLYGONM: case GAIA_POLYGONZM: geo->DeclaredType = GAIA_POLYGON; break; case GAIA_MULTIPOINT: case GAIA_MULTIPOINTZ: case GAIA_GEOSWKB_MULTIPOINTZ: case GAIA_MULTIPOINTM: case GAIA_MULTIPOINTZM: geo->DeclaredType = GAIA_MULTIPOINT; break; case GAIA_MULTILINESTRING: case GAIA_MULTILINESTRINGZ: case GAIA_GEOSWKB_MULTILINESTRINGZ: case GAIA_MULTILINESTRINGM: case GAIA_MULTILINESTRINGZM: geo->DeclaredType = GAIA_MULTILINESTRING; break; case GAIA_MULTIPOLYGON: case GAIA_MULTIPOLYGONZ: case GAIA_GEOSWKB_MULTIPOLYGONZ: case GAIA_MULTIPOLYGONM: case GAIA_MULTIPOLYGONZM: geo->DeclaredType = GAIA_MULTIPOLYGON; break; case GAIA_GEOMETRYCOLLECTION: case GAIA_GEOMETRYCOLLECTIONZ: case GAIA_GEOSWKB_GEOMETRYCOLLECTIONZ: case GAIA_GEOMETRYCOLLECTIONM: case GAIA_GEOMETRYCOLLECTIONZM: geo->DeclaredType = GAIA_GEOMETRYCOLLECTION; break; } return geo; } GAIAGEO_DECLARE char * gaiaToHexWkb (gaiaGeomCollPtr geom) { /* builds the hexadecimal WKB representation for this GEOMETRY */ unsigned char *wkb = NULL; int size = 0; char *hexbuf = NULL; int i; char hex[16]; char *p; gaiaToWkb (geom, &wkb, &size); if (!wkb) return NULL; hexbuf = malloc ((size * 2) + 1); p = hexbuf; for (i = 0; i < size; i++) { sprintf (hex, "%02X", *(wkb + i)); *p++ = hex[0]; *p++ = hex[1]; } *p = '\0'; return hexbuf; } GAIAGEO_DECLARE void gaiaToWkb (gaiaGeomCollPtr geom, unsigned char **result, int *size) { /* builds the WKB representation for this GEOMETRY */ int ib; int iv; double x; double y; double z = 0.0; double m = 0.0; int entities = 0; int n_points = 0; int n_linestrings = 0; int n_polygons = 0; int type; unsigned char *ptr; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; gaiaRingPtr rng; gaiaPointPtr point = NULL; gaiaLinestringPtr line = NULL; gaiaPolygonPtr polyg = NULL; int endian_arch = gaiaEndianArch (); gaiaMbrGeometry (geom); /* how many entities, and of what kind, do we have ? */ pt = geom->FirstPoint; while (pt) { point = pt; entities++; n_points++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { line = ln; entities++; n_linestrings++; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { polyg = pg; entities++; n_polygons++; pg = pg->Next; } *size = 0; *result = NULL; if (n_points == 0 && n_polygons == 0 && n_linestrings == 0) return; /* ok, we can determine the geometry class */ if (n_points == 1 && n_linestrings == 0 && n_polygons == 0) { if (geom->DeclaredType == GAIA_MULTIPOINT) { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_MULTIPOINTZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_MULTIPOINTM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_MULTIPOINTZM; else type = GAIA_MULTIPOINT; } else if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_GEOMETRYCOLLECTIONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_GEOMETRYCOLLECTIONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_GEOMETRYCOLLECTIONZM; else type = GAIA_GEOMETRYCOLLECTION; } else { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_POINTZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_POINTM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_POINTZM; else type = GAIA_POINT; } } else if (n_points > 1 && n_linestrings == 0 && n_polygons == 0) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_GEOMETRYCOLLECTIONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_GEOMETRYCOLLECTIONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_GEOMETRYCOLLECTIONZM; else type = GAIA_GEOMETRYCOLLECTION; } else { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_MULTIPOINTZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_MULTIPOINTM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_MULTIPOINTZM; else type = GAIA_MULTIPOINT; } } else if (n_points == 0 && n_linestrings == 1 && n_polygons == 0) { if (geom->DeclaredType == GAIA_MULTILINESTRING) { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_MULTILINESTRINGZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_MULTILINESTRINGM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_MULTILINESTRINGZM; else type = GAIA_MULTILINESTRING; } else if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_GEOMETRYCOLLECTIONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_GEOMETRYCOLLECTIONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_GEOMETRYCOLLECTIONZM; else type = GAIA_GEOMETRYCOLLECTION; } else { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_LINESTRINGZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_LINESTRINGM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_LINESTRINGZM; else type = GAIA_LINESTRING; } } else if (n_points == 0 && n_linestrings > 1 && n_polygons == 0) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_GEOMETRYCOLLECTIONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_GEOMETRYCOLLECTIONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_GEOMETRYCOLLECTIONZM; else type = GAIA_GEOMETRYCOLLECTION; } else { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_MULTILINESTRINGZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_MULTILINESTRINGM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_MULTILINESTRINGZM; else type = GAIA_MULTILINESTRING; } } else if (n_points == 0 && n_linestrings == 0 && n_polygons == 1) { if (geom->DeclaredType == GAIA_MULTIPOLYGON) { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_MULTIPOLYGONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_MULTIPOLYGONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_MULTIPOLYGONZM; else type = GAIA_MULTIPOLYGON; } else if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_GEOMETRYCOLLECTIONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_GEOMETRYCOLLECTIONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_GEOMETRYCOLLECTIONZM; else type = GAIA_GEOMETRYCOLLECTION; } else { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_POLYGONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_POLYGONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_POLYGONZM; else type = GAIA_POLYGON; } } else if (n_points == 0 && n_linestrings == 0 && n_polygons > 1) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_GEOMETRYCOLLECTIONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_GEOMETRYCOLLECTIONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_GEOMETRYCOLLECTIONZM; else type = GAIA_GEOMETRYCOLLECTION; } else { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_MULTIPOLYGONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_MULTIPOLYGONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_MULTIPOLYGONZM; else type = GAIA_MULTIPOLYGON; } } else { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_GEOMETRYCOLLECTIONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_GEOMETRYCOLLECTIONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_GEOMETRYCOLLECTIONZM; else type = GAIA_GEOMETRYCOLLECTION; } /* and now we compute the size of WKB */ *size = 5; /* header size */ if (type == GAIA_MULTIPOINT || type == GAIA_MULTILINESTRING || type == GAIA_MULTIPOLYGON || type == GAIA_GEOMETRYCOLLECTION || type == GAIA_MULTIPOINTZ || type == GAIA_MULTILINESTRINGZ || type == GAIA_MULTIPOLYGONZ || type == GAIA_GEOMETRYCOLLECTIONZ || type == GAIA_MULTIPOINTM || type == GAIA_MULTILINESTRINGM || type == GAIA_MULTIPOLYGONM || type == GAIA_GEOMETRYCOLLECTIONM || type == GAIA_MULTIPOINTZM || type == GAIA_MULTILINESTRINGZM || type == GAIA_MULTIPOLYGONZM || type == GAIA_GEOMETRYCOLLECTIONZM) *size += 4; point = geom->FirstPoint; while (point) { if (type == GAIA_MULTIPOINT || type == GAIA_MULTILINESTRING || type == GAIA_MULTIPOLYGON || type == GAIA_GEOMETRYCOLLECTION || type == GAIA_MULTIPOINTZ || type == GAIA_MULTILINESTRINGZ || type == GAIA_MULTIPOLYGONZ || type == GAIA_GEOMETRYCOLLECTIONZ || type == GAIA_MULTIPOINTM || type == GAIA_MULTILINESTRINGM || type == GAIA_MULTIPOLYGONM || type == GAIA_GEOMETRYCOLLECTIONM || type == GAIA_MULTIPOINTZM || type == GAIA_MULTILINESTRINGZM || type == GAIA_MULTIPOLYGONZM || type == GAIA_GEOMETRYCOLLECTIONZM) *size += 5; if (geom->DimensionModel == GAIA_XY_Z || geom->DimensionModel == GAIA_XY_M) *size += (sizeof (double) * 3); /* three doubles for each POINT */ else if (geom->DimensionModel == GAIA_XY_Z_M) *size += (sizeof (double) * 4); /* four doubles for each POINT */ else *size += (sizeof (double) * 2); /* two doubles for each POINT */ point = point->Next; } line = geom->FirstLinestring; while (line) { if (type == GAIA_MULTIPOINT || type == GAIA_MULTILINESTRING || type == GAIA_MULTIPOLYGON || type == GAIA_GEOMETRYCOLLECTION || type == GAIA_MULTIPOINTZ || type == GAIA_MULTILINESTRINGZ || type == GAIA_MULTIPOLYGONZ || type == GAIA_GEOMETRYCOLLECTIONZ || type == GAIA_MULTIPOINTM || type == GAIA_MULTILINESTRINGM || type == GAIA_MULTIPOLYGONM || type == GAIA_GEOMETRYCOLLECTIONM || type == GAIA_MULTIPOINTZM || type == GAIA_MULTILINESTRINGZM || type == GAIA_MULTIPOLYGONZM || type == GAIA_GEOMETRYCOLLECTIONZM) *size += 5; if (geom->DimensionModel == GAIA_XY_Z || geom->DimensionModel == GAIA_XY_M) *size += (4 + ((sizeof (double) * 3) * line->Points)); /* # points + [x,y,z] for each vertex */ else if (geom->DimensionModel == GAIA_XY_Z_M) *size += (4 + ((sizeof (double) * 4) * line->Points)); /* # points + [x,y,z,m] for each vertex */ else *size += (4 + ((sizeof (double) * 2) * line->Points)); /* # points + [x,y] for each vertex */ line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { if (type == GAIA_MULTIPOINT || type == GAIA_MULTILINESTRING || type == GAIA_MULTIPOLYGON || type == GAIA_GEOMETRYCOLLECTION || type == GAIA_MULTIPOINTZ || type == GAIA_MULTILINESTRINGZ || type == GAIA_MULTIPOLYGONZ || type == GAIA_GEOMETRYCOLLECTIONZ || type == GAIA_MULTIPOINTM || type == GAIA_MULTILINESTRINGM || type == GAIA_MULTIPOLYGONM || type == GAIA_GEOMETRYCOLLECTIONM || type == GAIA_MULTIPOINTZM || type == GAIA_MULTILINESTRINGZM || type == GAIA_MULTIPOLYGONZM || type == GAIA_GEOMETRYCOLLECTIONZM) *size += 5; rng = polyg->Exterior; if (geom->DimensionModel == GAIA_XY_Z || geom->DimensionModel == GAIA_XY_M) *size += (8 + ((sizeof (double) * 3) * rng->Points)); /* # rings + # points + [x,y,z] array - exterior ring */ else if (geom->DimensionModel == GAIA_XY_Z_M) *size += (8 + ((sizeof (double) * 4) * rng->Points)); /* # rings + # points + [x,y,z,m] array - exterior ring */ else *size += (8 + ((sizeof (double) * 2) * rng->Points)); /* # rings + # points + [x,y] array - exterior ring */ for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; if (geom->DimensionModel == GAIA_XY_Z || geom->DimensionModel == GAIA_XY_M) *size += (4 + ((sizeof (double) * 3) * rng->Points)); /* # points + [x,y,z] array - interior ring */ else if (geom->DimensionModel == GAIA_XY_Z_M) *size += (4 + ((sizeof (double) * 4) * rng->Points)); /* # points + [x,y,z,m] array - interior ring */ else *size += (4 + ((sizeof (double) * 2) * rng->Points)); /* # points + [x,y] array - interior ring */ } polyg = polyg->Next; } *result = malloc (*size); ptr = *result; /* and finally we build the WKB */ *ptr = 0x01; /* little endian byte order */ gaiaExport32 (ptr + 1, type, 1, endian_arch); /* the main CLASS TYPE */ ptr += 5; if (type == GAIA_MULTIPOINT || type == GAIA_MULTILINESTRING || type == GAIA_MULTIPOLYGON || type == GAIA_GEOMETRYCOLLECTION || type == GAIA_MULTIPOINTZ || type == GAIA_MULTILINESTRINGZ || type == GAIA_MULTIPOLYGONZ || type == GAIA_GEOMETRYCOLLECTIONZ || type == GAIA_MULTIPOINTM || type == GAIA_MULTILINESTRINGM || type == GAIA_MULTIPOLYGONM || type == GAIA_GEOMETRYCOLLECTIONM || type == GAIA_MULTIPOINTZM || type == GAIA_MULTILINESTRINGZM || type == GAIA_MULTIPOLYGONZM || type == GAIA_GEOMETRYCOLLECTIONZM) { gaiaExport32 (ptr, entities, 1, endian_arch); /* it's a collection; # entities */ ptr += 4; } point = geom->FirstPoint; while (point) { if (type == GAIA_MULTIPOINT || type == GAIA_GEOMETRYCOLLECTION || type == GAIA_MULTIPOINTZ || type == GAIA_GEOMETRYCOLLECTIONZ || type == GAIA_MULTIPOINTM || type == GAIA_GEOMETRYCOLLECTIONM || type == GAIA_MULTIPOINTZM || type == GAIA_GEOMETRYCOLLECTIONZM) { *ptr = 0x01; /* it's a collection: the CLASS TYPE for this element */ if (type == GAIA_MULTIPOINTZ || type == GAIA_GEOMETRYCOLLECTIONZ) gaiaExport32 (ptr + 1, GAIA_POINTZ, 1, endian_arch); else if (type == GAIA_MULTIPOINTM || type == GAIA_GEOMETRYCOLLECTIONM) gaiaExport32 (ptr + 1, GAIA_POINTM, 1, endian_arch); else if (type == GAIA_MULTIPOINTZM || type == GAIA_GEOMETRYCOLLECTIONZM) gaiaExport32 (ptr + 1, GAIA_POINTZM, 1, endian_arch); else gaiaExport32 (ptr + 1, GAIA_POINT, 1, endian_arch); ptr += 5; } gaiaExport64 (ptr, point->X, 1, endian_arch); /* X */ gaiaExport64 (ptr + 8, point->Y, 1, endian_arch); /* Y */ ptr += 16; if (type == GAIA_POINTZ || type == GAIA_MULTIPOINTZ || type == GAIA_GEOMETRYCOLLECTIONZ) { gaiaExport64 (ptr, point->Z, 1, endian_arch); /* Z */ ptr += 8; } if (type == GAIA_POINTM || type == GAIA_MULTIPOINTM || type == GAIA_GEOMETRYCOLLECTIONM) { gaiaExport64 (ptr, point->M, 1, endian_arch); /* M */ ptr += 8; } if (type == GAIA_POINTZM || type == GAIA_MULTIPOINTZM || type == GAIA_GEOMETRYCOLLECTIONZM) { gaiaExport64 (ptr, point->Z, 1, endian_arch); /* Z */ gaiaExport64 (ptr + 8, point->M, 1, endian_arch); /* M */ ptr += 16; } point = point->Next; } line = geom->FirstLinestring; while (line) { if (type == GAIA_MULTILINESTRING || type == GAIA_GEOMETRYCOLLECTION || type == GAIA_MULTILINESTRINGZ || type == GAIA_GEOMETRYCOLLECTIONZ || type == GAIA_MULTILINESTRINGM || type == GAIA_GEOMETRYCOLLECTIONM || type == GAIA_MULTILINESTRINGZM || type == GAIA_GEOMETRYCOLLECTIONZM) { *ptr = 0x01; /* it's a collection: the CLASS TYPE for this element */ if (type == GAIA_MULTILINESTRINGZ || type == GAIA_GEOMETRYCOLLECTIONZ) gaiaExport32 (ptr + 1, GAIA_LINESTRINGZ, 1, endian_arch); else if (type == GAIA_MULTILINESTRINGM || type == GAIA_GEOMETRYCOLLECTIONM) gaiaExport32 (ptr + 1, GAIA_LINESTRINGM, 1, endian_arch); else if (type == GAIA_MULTILINESTRINGZM || type == GAIA_GEOMETRYCOLLECTIONZM) gaiaExport32 (ptr + 1, GAIA_LINESTRINGZM, 1, endian_arch); else gaiaExport32 (ptr + 1, GAIA_LINESTRING, 1, endian_arch); ptr += 5; } gaiaExport32 (ptr, line->Points, 1, endian_arch); /* # points */ ptr += 4; for (iv = 0; iv < line->Points; iv++) { if (type == GAIA_LINESTRINGZ || type == GAIA_MULTILINESTRINGZ || type == GAIA_GEOMETRYCOLLECTIONZ) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (type == GAIA_LINESTRINGM || type == GAIA_MULTILINESTRINGM || type == GAIA_GEOMETRYCOLLECTIONM) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (type == GAIA_LINESTRINGZM || type == GAIA_MULTILINESTRINGZM || type == GAIA_GEOMETRYCOLLECTIONZM) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } gaiaExport64 (ptr, x, 1, endian_arch); /* X */ gaiaExport64 (ptr + 8, y, 1, endian_arch); /* Y */ ptr += 16; if (type == GAIA_LINESTRINGZ || type == GAIA_MULTILINESTRINGZ || type == GAIA_GEOMETRYCOLLECTIONZ) { gaiaExport64 (ptr, z, 1, endian_arch); /* Z */ ptr += 8; } if (type == GAIA_LINESTRINGM || type == GAIA_MULTILINESTRINGM || type == GAIA_GEOMETRYCOLLECTIONM) { gaiaExport64 (ptr, m, 1, endian_arch); /* M */ ptr += 8; } if (type == GAIA_LINESTRINGZM || type == GAIA_MULTILINESTRINGZM || type == GAIA_GEOMETRYCOLLECTIONZM) { gaiaExport64 (ptr, z, 1, endian_arch); /* Z */ gaiaExport64 (ptr + 8, m, 1, endian_arch); /* M */ ptr += 16; } } line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { if (type == GAIA_MULTIPOLYGON || type == GAIA_GEOMETRYCOLLECTION || type == GAIA_MULTIPOLYGONZ || type == GAIA_GEOMETRYCOLLECTIONZ || type == GAIA_MULTIPOLYGONM || type == GAIA_GEOMETRYCOLLECTIONM || type == GAIA_MULTIPOLYGONZM || type == GAIA_GEOMETRYCOLLECTIONZM) { *ptr = 0x01; /* it's a collection: the CLASS TYPE for this element */ if (type == GAIA_MULTIPOLYGONZ || type == GAIA_GEOMETRYCOLLECTIONZ) gaiaExport32 (ptr + 1, GAIA_POLYGONZ, 1, endian_arch); else if (type == GAIA_MULTIPOLYGONM || type == GAIA_GEOMETRYCOLLECTIONM) gaiaExport32 (ptr + 1, GAIA_POLYGONM, 1, endian_arch); else if (type == GAIA_MULTIPOLYGONZM || type == GAIA_GEOMETRYCOLLECTIONZM) gaiaExport32 (ptr + 1, GAIA_POLYGONZM, 1, endian_arch); else gaiaExport32 (ptr + 1, GAIA_POLYGON, 1, endian_arch); ptr += 5; } gaiaExport32 (ptr, polyg->NumInteriors + 1, 1, endian_arch); /* # rings */ rng = polyg->Exterior; gaiaExport32 (ptr + 4, rng->Points, 1, endian_arch); /* # points - exterior ring */ ptr += 8; for (iv = 0; iv < rng->Points; iv++) { if (type == GAIA_POLYGONZ || type == GAIA_MULTIPOLYGONZ || type == GAIA_GEOMETRYCOLLECTIONZ) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); } else if (type == GAIA_POLYGONM || type == GAIA_MULTIPOLYGONM || type == GAIA_GEOMETRYCOLLECTIONM) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); } else if (type == GAIA_POLYGONZM || type == GAIA_MULTIPOLYGONZM || type == GAIA_GEOMETRYCOLLECTIONZM) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); } gaiaExport64 (ptr, x, 1, endian_arch); /* X - exterior ring */ gaiaExport64 (ptr + 8, y, 1, endian_arch); /* Y - exterior ring */ ptr += 16; if (type == GAIA_POLYGONZ || type == GAIA_MULTIPOLYGONZ || type == GAIA_GEOMETRYCOLLECTIONZ) { gaiaExport64 (ptr, z, 1, endian_arch); /* Z - exterior ring */ ptr += 8; } if (type == GAIA_POLYGONM || type == GAIA_MULTIPOLYGONM || type == GAIA_GEOMETRYCOLLECTIONM) { gaiaExport64 (ptr, m, 1, endian_arch); /* M - exterior ring */ ptr += 8; } if (type == GAIA_POLYGONZM || type == GAIA_MULTIPOLYGONZM || type == GAIA_GEOMETRYCOLLECTIONZM) { gaiaExport64 (ptr, z, 1, endian_arch); /* Z - exterior ring */ gaiaExport64 (ptr + 8, m, 1, endian_arch); /* M - exterior ring */ ptr += 16; } } for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; gaiaExport32 (ptr, rng->Points, 1, endian_arch); /* # points - interior ring */ ptr += 4; for (iv = 0; iv < rng->Points; iv++) { if (type == GAIA_POLYGONZ || type == GAIA_MULTIPOLYGONZ || type == GAIA_GEOMETRYCOLLECTIONZ) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); } else if (type == GAIA_POLYGONM || type == GAIA_MULTIPOLYGONM || type == GAIA_GEOMETRYCOLLECTIONM) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); } else if (type == GAIA_POLYGONZM || type == GAIA_MULTIPOLYGONZM || type == GAIA_GEOMETRYCOLLECTIONZM) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); } gaiaExport64 (ptr, x, 1, endian_arch); /* X - interior ring */ gaiaExport64 (ptr + 8, y, 1, endian_arch); /* Y - interior ring */ ptr += 16; if (type == GAIA_POLYGONZ || type == GAIA_MULTIPOLYGONZ || type == GAIA_GEOMETRYCOLLECTIONZ) { gaiaExport64 (ptr, z, 1, endian_arch); /* Z - exterior ring */ ptr += 8; } if (type == GAIA_POLYGONM || type == GAIA_MULTIPOLYGONM || type == GAIA_GEOMETRYCOLLECTIONM) { gaiaExport64 (ptr, m, 1, endian_arch); /* M - exterior ring */ ptr += 8; } if (type == GAIA_POLYGONZM || type == GAIA_MULTIPOLYGONZM || type == GAIA_GEOMETRYCOLLECTIONZM) { gaiaExport64 (ptr, z, 1, endian_arch); /* Z - exterior ring */ gaiaExport64 (ptr + 8, m, 1, endian_arch); /* M - exterior ring */ ptr += 16; } } } polyg = polyg->Next; } } GAIAGEO_DECLARE int gaiaEwkbGetPoint (gaiaGeomCollPtr geom, unsigned char *blob, int offset, int blob_size, int endian, int endian_arch, int dims) { /* decodes a POINT from PostGIS EWKB binary GEOMETRY */ double x; double y; double z; double m; switch (dims) { case GAIA_XY_Z_M: if (blob_size < offset + 32) return -1; break; case GAIA_XY_Z: case GAIA_XY_M: if (blob_size < offset + 24) return -1; break; default: if (blob_size < offset + 16) return -1; break; } x = gaiaImport64 (blob + offset, endian, endian_arch); offset += 8; y = gaiaImport64 (blob + offset, endian, endian_arch); offset += 8; if (dims == GAIA_XY_Z_M) { z = gaiaImport64 (blob + offset, endian, endian_arch); offset += 8; m = gaiaImport64 (blob + offset, endian, endian_arch); offset += 8; gaiaAddPointToGeomCollXYZM (geom, x, y, z, m); } else if (dims == GAIA_XY_Z) { z = gaiaImport64 (blob + offset, endian, endian_arch); offset += 8; gaiaAddPointToGeomCollXYZ (geom, x, y, z); } else if (dims == GAIA_XY_M) { m = gaiaImport64 (blob + offset, endian, endian_arch); offset += 8; gaiaAddPointToGeomCollXYM (geom, x, y, m); } else gaiaAddPointToGeomColl (geom, x, y); return offset; } GAIAGEO_DECLARE int gaiaEwkbGetLinestring (gaiaGeomCollPtr geom, unsigned char *blob, int offset, int blob_size, int endian, int endian_arch, int dims) { /* decodes a LINESTRING from PostGIS binary GEOMETRY */ int npoints; int iv; double x; double y; double z; double m; gaiaLinestringPtr ln; if (blob_size < offset + 4) return -1; npoints = gaiaImport32 (blob + offset, endian, endian_arch); offset += 4; switch (dims) { case GAIA_XY_Z_M: if (blob_size < offset + (32 * npoints)) return -1; break; case GAIA_XY_Z: case GAIA_XY_M: if (blob_size < offset + (24 * npoints)) return -1; break; default: if (blob_size < offset + (16 * npoints)) return -1; break; } ln = gaiaAddLinestringToGeomColl (geom, npoints); for (iv = 0; iv < npoints; iv++) { x = gaiaImport64 (blob + offset, endian, endian_arch); offset += 8; y = gaiaImport64 (blob + offset, endian, endian_arch); offset += 8; if (dims == GAIA_XY_Z_M) { z = gaiaImport64 (blob + offset, endian, endian_arch); offset += 8; m = gaiaImport64 (blob + offset, endian, endian_arch); offset += 8; gaiaSetPointXYZM (ln->Coords, iv, x, y, z, m); } else if (dims == GAIA_XY_Z) { z = gaiaImport64 (blob + offset, endian, endian_arch); offset += 8; gaiaSetPointXYZ (ln->Coords, iv, x, y, z); } else if (dims == GAIA_XY_M) { m = gaiaImport64 (blob + offset, endian, endian_arch); offset += 8; gaiaSetPointXYM (ln->Coords, iv, x, y, m); } else gaiaSetPoint (ln->Coords, iv, x, y); } return offset; } GAIAGEO_DECLARE int gaiaEwkbGetPolygon (gaiaGeomCollPtr geom, unsigned char *blob, int offset, int blob_size, int endian, int endian_arch, int dims) { /* decodes a POLYGON from PostGIS binary GEOMETRY */ int rings; int npoints; int iv; int ib; double x; double y; double z; double m; gaiaPolygonPtr polyg = NULL; gaiaRingPtr rng; if (blob_size < offset + 4) return -1; rings = gaiaImport32 (blob + offset, endian, endian_arch); offset += 4; for (ib = 0; ib < rings; ib++) { if (blob_size < offset + 4) return -1; npoints = gaiaImport32 (blob + offset, endian, endian_arch); offset += 4; switch (dims) { case GAIA_XY_Z_M: if (blob_size < offset + (32 * npoints)) return -1; break; case GAIA_XY_Z: case GAIA_XY_M: if (blob_size < offset + (24 * npoints)) return -1; break; default: if (blob_size < offset + (16 * npoints)) return -1; break; } if (ib == 0) { polyg = gaiaAddPolygonToGeomColl (geom, npoints, rings - 1); rng = polyg->Exterior; } else rng = gaiaAddInteriorRing (polyg, ib - 1, npoints); for (iv = 0; iv < npoints; iv++) { x = gaiaImport64 (blob + offset, endian, endian_arch); offset += 8; y = gaiaImport64 (blob + offset, endian, endian_arch); offset += 8; if (dims == GAIA_XY_Z_M) { z = gaiaImport64 (blob + offset, endian, endian_arch); offset += 8; m = gaiaImport64 (blob + offset, endian, endian_arch); offset += 8; gaiaSetPointXYZM (rng->Coords, iv, x, y, z, m); } else if (dims == GAIA_XY_Z) { z = gaiaImport64 (blob + offset, endian, endian_arch); offset += 8; gaiaSetPointXYZ (rng->Coords, iv, x, y, z); } else if (dims == GAIA_XY_M) { m = gaiaImport64 (blob + offset, endian, endian_arch); offset += 8; gaiaSetPointXYM (rng->Coords, iv, x, y, m); } else gaiaSetPoint (rng->Coords, iv, x, y); } } return offset; } GAIAGEO_DECLARE int gaiaEwkbGetMultiGeometry (gaiaGeomCollPtr geom, unsigned char *blob, int offset, int blob_size, int endian, int endian_arch, int dims) { /* decodes a MultiGeometry from PostGIS EWKB binary GEOMETRY */ int entities; int type; unsigned char xtype[4]; int ie; int off; if (blob_size < offset + 4) return -1; entities = gaiaImport32 (blob + offset, endian, endian_arch); offset += 4; for (ie = 0; ie < entities; ie++) { if (blob_size < offset + 5) return -1; memcpy (xtype, blob + offset + 1, 4); if (endian) xtype[3] = 0x00; else xtype[0] = 0x00; type = gaiaImport32 (xtype, endian, endian_arch); offset += 5; switch (type) { case GAIA_POINT: off = gaiaEwkbGetPoint (geom, blob, offset, blob_size, endian, endian_arch, dims); if (off < 0) return -1; offset = off; break; case GAIA_LINESTRING: off = gaiaEwkbGetLinestring (geom, blob, offset, blob_size, endian, endian_arch, dims); if (off < 0) return -1; offset = off; break; case GAIA_POLYGON: off = gaiaEwkbGetPolygon (geom, blob, offset, blob_size, endian, endian_arch, dims); if (off < 0) return -1; offset = off; break; default: /* unexpected: invalid EWKB */ return -1; }; } return offset; } static int parseHexEwkbByte (const unsigned char high, const unsigned char low, unsigned char *byte) { /* parsing an Hexadecimal byte */ unsigned char hex; switch (high) { case '0': hex = 16 * 0; break; case '1': hex = 16 * 1; break; case '2': hex = 16 * 2; break; case '3': hex = 16 * 3; break; case '4': hex = 16 * 4; break; case '5': hex = 16 * 5; break; case '6': hex = 16 * 6; break; case '7': hex = 16 * 7; break; case '8': hex = 16 * 8; break; case '9': hex = 16 * 9; break; case 'A': case 'a': hex = 16 * 10; break; case 'B': case 'b': hex = 16 * 11; break; case 'C': case 'c': hex = 16 * 12; break; case 'D': case 'd': hex = 16 * 13; break; case 'E': case 'e': hex = 16 * 14; break; case 'F': case 'f': hex = 16 * 15; break; default: return 0; }; switch (low) { case '0': hex += 0; break; case '1': hex += 1; break; case '2': hex += 2; break; case '3': hex += 3; break; case '4': hex += 4; break; case '5': hex += 5; break; case '6': hex += 6; break; case '7': hex += 7; break; case '8': hex += 8; break; case '9': hex += 9; break; case 'A': case 'a': hex += 10; break; case 'B': case 'b': hex += 11; break; case 'C': case 'c': hex += 12; break; case 'D': case 'd': hex += 13; break; case 'E': case 'e': hex += 14; break; case 'F': case 'f': hex += 15; break; default: return 0; }; *byte = hex; return 1; } GAIAGEO_DECLARE unsigned char * gaiaParseHexEWKB (const unsigned char *blob_hex, int *blob_size) { /* parsing an Hexadecimal EWKB Geometry */ unsigned char *blob; unsigned char *p_out; const unsigned char *p_in; char high; char low; unsigned char hex; int size; int len = strlen ((const char *) blob_hex); size = len / 2; if (size * 2 != len) return NULL; blob = malloc (size); if (!blob) return NULL; *blob_size = size; p_in = blob_hex; p_out = blob; while (*p_in != '\0') { high = *p_in++; low = *p_in++; if (!parseHexEwkbByte (high, low, &hex)) { free (blob); return NULL; } *p_out++ = hex; } *blob_size = size; return blob; } gaiaGeomCollPtr gaiaFromEWKB (const unsigned char *in_buffer) { /* creates a Gaia own Geometry from GEOS/PostGIS EWKB */ unsigned char *blob; int blob_size; unsigned char xtype[4]; unsigned char xdims; int type; int has_z = 0; int has_m = 0; int dims = GAIA_XY; int srid; int ret; int endian; int endian_arch = gaiaEndianArch (); gaiaGeomCollPtr geom = NULL; blob = gaiaParseHexEWKB (in_buffer, &blob_size); if (!blob) return NULL; if (blob_size < 9) { free (blob); return NULL; } if (*(blob + 0) == 0x01) endian = 1; else endian = 0; memcpy (xtype, blob + 1, 4); if (endian) { xdims = xtype[3]; xtype[3] = 0x00; } else { xdims = xtype[0]; xtype[0] = 0x00; } type = gaiaImport32 (xtype, endian, endian_arch); if (xdims & 0x40) has_m = 1; if (xdims & 0x80) has_z = 1; if (has_m && has_z) { dims = GAIA_XY_Z_M; geom = gaiaAllocGeomCollXYZM (); } else if (has_m) { dims = GAIA_XY_M; geom = gaiaAllocGeomCollXYM (); } else if (has_z) { dims = GAIA_XY_Z; geom = gaiaAllocGeomCollXYZ (); } else { dims = GAIA_XY; geom = gaiaAllocGeomColl (); } srid = gaiaImport32 (blob + 5, endian, endian_arch); geom->Srid = srid; if (geom->Srid <= 0) geom->Srid = 0; switch (type) { case GAIA_POINT: ret = gaiaEwkbGetPoint (geom, blob, 9, blob_size, endian, endian_arch, dims); break; case GAIA_LINESTRING: ret = gaiaEwkbGetLinestring (geom, blob, 9, blob_size, endian, endian_arch, dims); break; case GAIA_POLYGON: ret = gaiaEwkbGetPolygon (geom, blob, 9, blob_size, endian, endian_arch, dims); break; default: ret = gaiaEwkbGetMultiGeometry (geom, blob, 9, blob_size, endian, endian_arch, dims); break; }; free (blob); if (ret < 0) { /* invalid EWKB !!! */ gaiaFreeGeomColl (geom); return NULL; } return geom; } GAIAGEO_DECLARE void gaiaToEWKB (gaiaOutBufferPtr out_buf, gaiaGeomCollPtr geom) { /* prints the GEOS/PostGIS EWKB text representation of current geometry */ char buf[2048]; unsigned char endian_buf[16]; char byte[3]; char *ptr; int size; int type; int entities = 0; int n_points = 0; int n_linestrings = 0; int n_polygons = 0; int i; int iv; int ib; double x; double y; double z; double m; int endian_arch = gaiaEndianArch (); gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; gaiaRingPtr rng; gaiaPointPtr point = NULL; gaiaLinestringPtr line = NULL; gaiaPolygonPtr polyg = NULL; /* precomputing the required size */ sprintf (buf, "SRID=%d;", geom->Srid); size = strlen (buf); /* the header size */ size++; /* terminating '\0' */ pt = geom->FirstPoint; while (pt) { point = pt; entities++; n_points++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { line = ln; entities++; n_linestrings++; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { polyg = pg; entities++; n_polygons++; pg = pg->Next; } if (n_points == 0 && n_polygons == 0 && n_linestrings == 0) return; /* ok, we can determine the geometry class */ if (n_points == 1 && n_linestrings == 0 && n_polygons == 0) { if (geom->DeclaredType == GAIA_MULTIPOINT) type = GAIA_MULTIPOINT; else if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) type = GAIA_GEOMETRYCOLLECTION; else type = GAIA_POINT; } else if (n_points > 1 && n_linestrings == 0 && n_polygons == 0) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) type = GAIA_GEOMETRYCOLLECTION; else type = GAIA_MULTIPOINT; } else if (n_points == 0 && n_linestrings == 1 && n_polygons == 0) { if (geom->DeclaredType == GAIA_MULTILINESTRING) type = GAIA_MULTILINESTRING; else if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) type = GAIA_GEOMETRYCOLLECTION; else type = GAIA_LINESTRING; } else if (n_points == 0 && n_linestrings > 1 && n_polygons == 0) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) type = GAIA_GEOMETRYCOLLECTION; else type = GAIA_MULTILINESTRING; } else if (n_points == 0 && n_linestrings == 0 && n_polygons == 1) { if (geom->DeclaredType == GAIA_MULTIPOLYGON) type = GAIA_MULTIPOLYGON; else if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) type = GAIA_GEOMETRYCOLLECTION; else type = GAIA_POLYGON; } else if (n_points == 0 && n_linestrings == 0 && n_polygons > 1) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) type = GAIA_GEOMETRYCOLLECTION; else type = GAIA_MULTIPOLYGON; } else type = GAIA_GEOMETRYCOLLECTION; /* and now we compute the size of EWKB */ size += 10; /* header size */ if (type == GAIA_MULTIPOINT || type == GAIA_MULTILINESTRING || type == GAIA_MULTIPOLYGON || type == GAIA_GEOMETRYCOLLECTION) size += 8; point = geom->FirstPoint; while (point) { if (type == GAIA_MULTIPOINT || type == GAIA_MULTILINESTRING || type == GAIA_MULTIPOLYGON || type == GAIA_GEOMETRYCOLLECTION) size += 10; if (geom->DimensionModel == GAIA_XY_Z || geom->DimensionModel == GAIA_XY_M) size += 48; /* three doubles for each POINT */ else if (geom->DimensionModel == GAIA_XY_Z_M) size += 64; /* four doubles for each POINT */ else size += 32; /* two doubles for each POINT */ point = point->Next; } line = geom->FirstLinestring; while (line) { if (type == GAIA_MULTIPOINT || type == GAIA_MULTILINESTRING || type == GAIA_MULTIPOLYGON || type == GAIA_GEOMETRYCOLLECTION) size += 10; if (geom->DimensionModel == GAIA_XY_Z || geom->DimensionModel == GAIA_XY_M) size += 8 + (line->Points * 48); /* three doubles for each VERTEX */ else if (geom->DimensionModel == GAIA_XY_Z_M) size += 8 + (line->Points * 64); /* four doubles for each VERTEX */ else size += 8 + (line->Points * 32); /* two doubles for each VERTEX */ line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { if (type == GAIA_MULTIPOINT || type == GAIA_MULTILINESTRING || type == GAIA_MULTIPOLYGON || type == GAIA_GEOMETRYCOLLECTION) size += 10; rng = polyg->Exterior; if (geom->DimensionModel == GAIA_XY_Z || geom->DimensionModel == GAIA_XY_M) size += 16 + (rng->Points * 48); /* three doubles for each VERTEX */ else if (geom->DimensionModel == GAIA_XY_Z_M) size += 16 + (rng->Points * 64); /* four doubles for each VERTEX */ else size += 16 + (rng->Points * 32); /* two doubles for each VERTEX */ for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; if (geom->DimensionModel == GAIA_XY_Z || geom->DimensionModel == GAIA_XY_M) size += 8 + (rng->Points * 48); /* three doubles for each VERTEX */ else if (geom->DimensionModel == GAIA_XY_Z_M) size += 8 + (rng->Points * 64); /* four doubles for each VERTEX */ else size += 8 + (rng->Points * 32); /* two doubles for each VERTEX */ } polyg = polyg->Next; } /* and finally we build the EWKB expression */ sprintf (buf, "SRID=%d;", geom->Srid); gaiaAppendToOutBuffer (out_buf, buf); ptr = buf; *ptr++ = '0'; /* little endian byte order */ *ptr++ = '1'; gaiaExport32 (endian_buf, type, 1, endian_arch); /* the main CLASS TYPE */ for (i = 0; i < 3; i++) { /* CAVEAT: the 4th byte in PostGIS encodes M/Z presence !!!! */ sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } /* marking M/Z presence */ if (geom->DimensionModel == GAIA_XY_Z) *ptr++ = '8'; else if (geom->DimensionModel == GAIA_XY_M) *ptr++ = '4'; else if (geom->DimensionModel == GAIA_XY_Z_M) *ptr++ = 'C'; else *ptr++ = '0'; *ptr++ = '0'; *ptr++ = '\0'; gaiaAppendToOutBuffer (out_buf, buf); ptr = buf; if (type == GAIA_MULTIPOINT || type == GAIA_MULTILINESTRING || type == GAIA_MULTIPOLYGON || type == GAIA_GEOMETRYCOLLECTION) { gaiaExport32 (endian_buf, entities, 1, endian_arch); /* it's a collection; # entities */ for (i = 0; i < 4; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } } point = geom->FirstPoint; while (point) { if ((ptr - buf) > 1024) { /* flushing the internal buffer */ *ptr++ = '\0'; gaiaAppendToOutBuffer (out_buf, buf); ptr = buf; } if (type == GAIA_MULTIPOINT || type == GAIA_GEOMETRYCOLLECTION) { *ptr++ = '0'; *ptr++ = '1'; /* it's a collection: the CLASS TYPE for this element */ gaiaExport32 (endian_buf, GAIA_POINT, 1, endian_arch); for (i = 0; i < 3; i++) { /* CAVEAT: the 4th byte in PostGIS encodes M/Z presence !!!! */ sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } /* marking M/Z presence */ if (geom->DimensionModel == GAIA_XY_Z) *ptr++ = '8'; else if (geom->DimensionModel == GAIA_XY_M) *ptr++ = '4'; else if (geom->DimensionModel == GAIA_XY_Z_M) *ptr++ = 'C'; else *ptr++ = '0'; *ptr++ = '0'; } gaiaExport64 (endian_buf, point->X, 1, endian_arch); /* X */ for (i = 0; i < 8; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } gaiaExport64 (endian_buf, point->Y, 1, endian_arch); /* Y */ for (i = 0; i < 8; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } if (geom->DimensionModel == GAIA_XY_Z) { gaiaExport64 (endian_buf, point->Z, 1, endian_arch); /* Z */ for (i = 0; i < 8; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } } else if (geom->DimensionModel == GAIA_XY_M) { gaiaExport64 (endian_buf, point->M, 1, endian_arch); /* M */ for (i = 0; i < 8; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } } else if (geom->DimensionModel == GAIA_XY_Z_M) { gaiaExport64 (endian_buf, point->Z, 1, endian_arch); /* Z */ for (i = 0; i < 8; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } gaiaExport64 (endian_buf, point->M, 1, endian_arch); /* M */ for (i = 0; i < 8; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } } point = point->Next; } line = geom->FirstLinestring; while (line) { if ((ptr - buf) > 1024) { /* flushing the internal buffer */ *ptr++ = '\0'; gaiaAppendToOutBuffer (out_buf, buf); ptr = buf; } if (type == GAIA_MULTILINESTRING || type == GAIA_GEOMETRYCOLLECTION) { *ptr++ = '0'; *ptr++ = '1'; /* it's a collection: the CLASS TYPE for this element */ gaiaExport32 (endian_buf, GAIA_LINESTRING, 1, endian_arch); for (i = 0; i < 3; i++) { /* CAVEAT: the 4th byte in PostGIS encodes M/Z presence !!!! */ sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } /* marking M/Z presence */ if (geom->DimensionModel == GAIA_XY_Z) *ptr++ = '8'; else if (geom->DimensionModel == GAIA_XY_M) *ptr++ = '4'; else if (geom->DimensionModel == GAIA_XY_Z_M) *ptr++ = 'C'; else *ptr++ = '0'; *ptr++ = '0'; } gaiaExport32 (endian_buf, line->Points, 1, endian_arch); /* # points */ for (i = 0; i < 4; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } for (iv = 0; iv < line->Points; iv++) { if ((ptr - buf) > 1024) { /* flushing the internal buffer */ *ptr++ = '\0'; gaiaAppendToOutBuffer (out_buf, buf); ptr = buf; } gaiaLineGetPoint (line, iv, &x, &y, &z, &m); gaiaExport64 (endian_buf, x, 1, endian_arch); /* X */ for (i = 0; i < 8; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } gaiaExport64 (endian_buf, y, 1, endian_arch); /* Y */ for (i = 0; i < 8; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } if (geom->DimensionModel == GAIA_XY_Z) { gaiaExport64 (endian_buf, z, 1, endian_arch); /* Z */ for (i = 0; i < 8; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } } else if (geom->DimensionModel == GAIA_XY_M) { gaiaExport64 (endian_buf, m, 1, endian_arch); /* M */ for (i = 0; i < 8; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } } else if (geom->DimensionModel == GAIA_XY_Z_M) { gaiaExport64 (endian_buf, z, 1, endian_arch); /* Z */ for (i = 0; i < 8; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } gaiaExport64 (endian_buf, m, 1, endian_arch); /* M */ for (i = 0; i < 8; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } } } line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { if ((ptr - buf) > 1024) { /* flushing the internal buffer */ *ptr++ = '\0'; gaiaAppendToOutBuffer (out_buf, buf); ptr = buf; } if (type == GAIA_MULTIPOLYGON || type == GAIA_GEOMETRYCOLLECTION) { *ptr++ = '0'; *ptr++ = '1'; /* it's a collection: the CLASS TYPE for this element */ gaiaExport32 (endian_buf, GAIA_POLYGON, 1, endian_arch); for (i = 0; i < 3; i++) { /* CAVEAT: the 4th byte in PostGIS encodes M/Z presence !!!! */ sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } /* marking M/Z presence */ if (geom->DimensionModel == GAIA_XY_Z) *ptr++ = '8'; else if (geom->DimensionModel == GAIA_XY_M) *ptr++ = '4'; else if (geom->DimensionModel == GAIA_XY_Z_M) *ptr++ = 'C'; else *ptr++ = '0'; *ptr++ = '0'; } gaiaExport32 (endian_buf, polyg->NumInteriors + 1, 1, endian_arch); /* # rings */ for (i = 0; i < 4; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } rng = polyg->Exterior; gaiaExport32 (endian_buf, rng->Points, 1, endian_arch); /* # points - exterior ring */ for (i = 0; i < 4; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } for (iv = 0; iv < rng->Points; iv++) { if ((ptr - buf) > 1024) { /* flushing the internal buffer */ *ptr++ = '\0'; gaiaAppendToOutBuffer (out_buf, buf); ptr = buf; } gaiaRingGetPoint (rng, iv, &x, &y, &z, &m); gaiaExport64 (endian_buf, x, 1, endian_arch); /* X - exterior ring */ for (i = 0; i < 8; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } gaiaExport64 (endian_buf, y, 1, endian_arch); /* Y - exterior ring */ for (i = 0; i < 8; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } if (geom->DimensionModel == GAIA_XY_Z) { gaiaExport64 (endian_buf, z, 1, endian_arch); /* Z */ for (i = 0; i < 8; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } } else if (geom->DimensionModel == GAIA_XY_M) { gaiaExport64 (endian_buf, m, 1, endian_arch); /* M */ for (i = 0; i < 8; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } } else if (geom->DimensionModel == GAIA_XY_Z_M) { gaiaExport64 (endian_buf, z, 1, endian_arch); /* Z */ for (i = 0; i < 8; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } gaiaExport64 (endian_buf, m, 1, endian_arch); /* M */ for (i = 0; i < 8; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } } } for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; gaiaExport32 (endian_buf, rng->Points, 1, endian_arch); /* # points - interior ring */ for (i = 0; i < 4; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } for (iv = 0; iv < rng->Points; iv++) { if ((ptr - buf) > 1024) { /* flushing the internal buffer */ *ptr++ = '\0'; gaiaAppendToOutBuffer (out_buf, buf); ptr = buf; } gaiaRingGetPoint (rng, iv, &x, &y, &z, &m); gaiaExport64 (endian_buf, x, 1, endian_arch); /* X - interior ring */ for (i = 0; i < 8; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } gaiaExport64 (endian_buf, y, 1, endian_arch); /* Y - interior ring */ for (i = 0; i < 8; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } if (geom->DimensionModel == GAIA_XY_Z) { gaiaExport64 (endian_buf, z, 1, endian_arch); /* Z */ for (i = 0; i < 8; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } } else if (geom->DimensionModel == GAIA_XY_M) { gaiaExport64 (endian_buf, m, 1, endian_arch); /* M */ for (i = 0; i < 8; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } } else if (geom->DimensionModel == GAIA_XY_Z_M) { gaiaExport64 (endian_buf, z, 1, endian_arch); /* Z */ for (i = 0; i < 8; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } gaiaExport64 (endian_buf, m, 1, endian_arch); /* M */ for (i = 0; i < 8; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } } } } polyg = polyg->Next; } /* terminating the EWKB string */ *ptr = '\0'; gaiaAppendToOutBuffer (out_buf, buf); } static int coordDimsFromFgf (int endian_arch, const unsigned char *blob, unsigned int size, int *type) { /* decoding the coordinate Dimensions for an FGF Geometry */ int coord_dims; if (size < 4) return 0; coord_dims = gaiaImport32 (blob, GAIA_LITTLE_ENDIAN, endian_arch); *type = coord_dims; switch (coord_dims) { case GAIA_XY: return 2; case GAIA_XY_M: case GAIA_XY_Z: return 3; case GAIA_XY_Z_M: return 4; default: return 0; } } static int pointFromFgf (gaiaGeomCollPtr geom, int endian_arch, const unsigned char *blob, unsigned int size, unsigned int *consumed) { /* decoding a POINT Geometry from FGF */ double x; double y; double z; double m; unsigned int sz = size; const unsigned char *ptr = blob; int coord_dims; int type; /* checking Geometry Type */ if (sz < 4) return 0; if (gaiaImport32 (ptr, GAIA_LITTLE_ENDIAN, endian_arch) != GAIA_POINT) return 0; ptr += 4; sz -= 4; /* checking size */ if (sz < 4) return 0; coord_dims = coordDimsFromFgf (endian_arch, ptr, size, &type); if (!coord_dims) return 0; ptr += 4; sz -= 4; if (sz < (coord_dims * sizeof (double))) return 0; if (consumed) *consumed = coord_dims * sizeof (double); if (type == GAIA_XY_Z) { /* building the POINTZ */ x = gaiaImport64 (ptr, GAIA_LITTLE_ENDIAN, endian_arch); y = gaiaImport64 (ptr + 8, GAIA_LITTLE_ENDIAN, endian_arch); z = gaiaImport64 (ptr + 8, GAIA_LITTLE_ENDIAN, endian_arch); gaiaAddPointToGeomCollXYZ (geom, x, y, z); } else if (type == GAIA_XY_M) { /* building the POINTM */ x = gaiaImport64 (ptr, GAIA_LITTLE_ENDIAN, endian_arch); y = gaiaImport64 (ptr + 8, GAIA_LITTLE_ENDIAN, endian_arch); m = gaiaImport64 (ptr + 8, GAIA_LITTLE_ENDIAN, endian_arch); gaiaAddPointToGeomCollXYM (geom, x, y, m); } else if (type == GAIA_XY_Z_M) { /* building the POINTZM */ x = gaiaImport64 (ptr, GAIA_LITTLE_ENDIAN, endian_arch); y = gaiaImport64 (ptr + 8, GAIA_LITTLE_ENDIAN, endian_arch); z = gaiaImport64 (ptr + 8, GAIA_LITTLE_ENDIAN, endian_arch); m = gaiaImport64 (ptr + 8, GAIA_LITTLE_ENDIAN, endian_arch); gaiaAddPointToGeomCollXYZM (geom, x, y, z, m); } else { /* building the POINT */ x = gaiaImport64 (ptr, GAIA_LITTLE_ENDIAN, endian_arch); y = gaiaImport64 (ptr + 8, GAIA_LITTLE_ENDIAN, endian_arch); gaiaAddPointToGeomColl (geom, x, y); } return 1; } static int linestringFromFgf (gaiaGeomCollPtr geom, int endian_arch, const unsigned char *blob, unsigned int size, unsigned int *consumed) { /* decoding a LINESTRING Geometry from FGF */ gaiaLinestringPtr ln; int pts; int iv; double x; double y; unsigned int ln_sz; unsigned int sz = size; const unsigned char *ptr = blob; int coord_dims; int type; /* checking Geometry Type */ if (sz < 4) return 0; if (gaiaImport32 (ptr, GAIA_LITTLE_ENDIAN, endian_arch) != GAIA_LINESTRING) return 0; ptr += 4; sz -= 4; /* checking size */ coord_dims = coordDimsFromFgf (endian_arch, ptr, size, &type); if (!coord_dims) return 0; ptr += 4; sz -= 4; /* how many points are there ? */ if (sz < 4) return 0; pts = gaiaImport32 (ptr, GAIA_LITTLE_ENDIAN, endian_arch); ptr += 4; sz -= 4; if (pts < 2) return 0; ln_sz = pts * coord_dims * sizeof (double); if (sz < ln_sz) return 0; if (consumed) *consumed = (12 + ln_sz); if (type == GAIA_XY_Z) { /* building the LINESTRINGZ */ geom->DimensionModel = GAIA_XY_Z; ln = gaiaAddLinestringToGeomColl (geom, pts); for (iv = 0; iv < pts; iv++) { /* inserting vertices into the linestring */ x = gaiaImport64 (ptr, GAIA_LITTLE_ENDIAN, endian_arch); y = gaiaImport64 (ptr + sizeof (double), GAIA_LITTLE_ENDIAN, endian_arch); ptr += (coord_dims * sizeof (double)); gaiaSetPoint (ln->Coords, iv, x, y); } } else if (type == GAIA_XY_M) { /* building the LINESTRINGM */ geom->DimensionModel = GAIA_XY_M; ln = gaiaAddLinestringToGeomColl (geom, pts); for (iv = 0; iv < pts; iv++) { /* inserting vertices into the linestring */ x = gaiaImport64 (ptr, GAIA_LITTLE_ENDIAN, endian_arch); y = gaiaImport64 (ptr + sizeof (double), GAIA_LITTLE_ENDIAN, endian_arch); ptr += (coord_dims * sizeof (double)); gaiaSetPoint (ln->Coords, iv, x, y); } } else if (type == GAIA_XY_Z_M) { /* building the LINESTRINGZM */ geom->DimensionModel = GAIA_XY_Z_M; ln = gaiaAddLinestringToGeomColl (geom, pts); for (iv = 0; iv < pts; iv++) { /* inserting vertices into the linestring */ x = gaiaImport64 (ptr, GAIA_LITTLE_ENDIAN, endian_arch); y = gaiaImport64 (ptr + sizeof (double), GAIA_LITTLE_ENDIAN, endian_arch); ptr += (coord_dims * sizeof (double)); gaiaSetPoint (ln->Coords, iv, x, y); } } else { /* building the LINESTRING */ geom->DimensionModel = GAIA_XY; ln = gaiaAddLinestringToGeomColl (geom, pts); for (iv = 0; iv < pts; iv++) { /* inserting vertices into the linestring */ x = gaiaImport64 (ptr, GAIA_LITTLE_ENDIAN, endian_arch); y = gaiaImport64 (ptr + sizeof (double), GAIA_LITTLE_ENDIAN, endian_arch); ptr += (coord_dims * sizeof (double)); gaiaSetPoint (ln->Coords, iv, x, y); } } return 1; } static int polygonFromFgf (gaiaGeomCollPtr geom, int endian_arch, const unsigned char *blob, unsigned int size, unsigned int *consumed) { /* decoding a POLYGON Geometry from FGF */ gaiaPolygonPtr pg = NULL; gaiaRingPtr rng; int rings; int ir; int pts; int iv; double x; double y; double z; double m; unsigned int rng_sz; unsigned int sz = size; const unsigned char *ptr = blob; int coord_dims; int type; unsigned int bytes = 0; /* checking Geometry Type */ if (sz < 4) return 0; if (gaiaImport32 (ptr, GAIA_LITTLE_ENDIAN, endian_arch) != GAIA_POLYGON) return 0; ptr += 4; sz -= 4; bytes += 4; /* checking size */ coord_dims = coordDimsFromFgf (endian_arch, ptr, size, &type); if (!coord_dims) return 0; ptr += 4; sz -= 4; bytes += 4; /* how many rings are there ? */ if (sz < 4) return 0; rings = gaiaImport32 (ptr, GAIA_LITTLE_ENDIAN, endian_arch); ptr += 4; sz -= 4; bytes += 4; if (rings < 1) return 0; for (ir = 0; ir < rings; ir++) { /* fetching Polygon's rings */ if (sz < 4) return 0; pts = gaiaImport32 (ptr, GAIA_LITTLE_ENDIAN, endian_arch); ptr += 4; sz -= 4; bytes += 4; if (pts < 4) return 0; rng_sz = pts * coord_dims * sizeof (double); if (sz < rng_sz) return 0; bytes += rng_sz; if (type == GAIA_XY_Z) { /* POLYGONZ */ geom->DimensionModel = GAIA_XY_Z; if (ir == 0) { /* building the EXTERIOR RING */ pg = gaiaAddPolygonToGeomColl (geom, pts, rings - 1); rng = pg->Exterior; for (iv = 0; iv < pts; iv++) { /* inserting vertices into the EXTERIOR Ring */ x = gaiaImport64 (ptr, GAIA_LITTLE_ENDIAN, endian_arch); y = gaiaImport64 (ptr + sizeof (double), GAIA_LITTLE_ENDIAN, endian_arch); z = gaiaImport64 (ptr + (sizeof (double) * 2), GAIA_LITTLE_ENDIAN, endian_arch); ptr += (coord_dims * sizeof (double)); gaiaSetPointXYZ (rng->Coords, iv, x, y, z); } } else { /* building an INTERIOR RING */ rng = gaiaAddInteriorRing (pg, ir - 1, pts); for (iv = 0; iv < pts; iv++) { /* inserting vertices into some INTERIOR Ring */ x = gaiaImport64 (ptr, GAIA_LITTLE_ENDIAN, endian_arch); y = gaiaImport64 (ptr + sizeof (double), GAIA_LITTLE_ENDIAN, endian_arch); z = gaiaImport64 (ptr + (sizeof (double) * 2), GAIA_LITTLE_ENDIAN, endian_arch); ptr += (coord_dims * sizeof (double)); gaiaSetPointXYZ (rng->Coords, iv, x, y, z); } } } if (type == GAIA_XY_M) { /* POLYGONM */ geom->DimensionModel = GAIA_XY_M; if (ir == 0) { /* building the EXTERIOR RING */ pg = gaiaAddPolygonToGeomColl (geom, pts, rings - 1); rng = pg->Exterior; for (iv = 0; iv < pts; iv++) { /* inserting vertices into the EXTERIOR Ring */ x = gaiaImport64 (ptr, GAIA_LITTLE_ENDIAN, endian_arch); y = gaiaImport64 (ptr + sizeof (double), GAIA_LITTLE_ENDIAN, endian_arch); m = gaiaImport64 (ptr + (sizeof (double) * 2), GAIA_LITTLE_ENDIAN, endian_arch); ptr += (coord_dims * sizeof (double)); gaiaSetPointXYM (rng->Coords, iv, x, y, m); } } else { /* building an INTERIOR RING */ rng = gaiaAddInteriorRing (pg, ir - 1, pts); for (iv = 0; iv < pts; iv++) { /* inserting vertices into some INTERIOR Ring */ x = gaiaImport64 (ptr, GAIA_LITTLE_ENDIAN, endian_arch); y = gaiaImport64 (ptr + sizeof (double), GAIA_LITTLE_ENDIAN, endian_arch); m = gaiaImport64 (ptr + (sizeof (double) * 2), GAIA_LITTLE_ENDIAN, endian_arch); ptr += (coord_dims * sizeof (double)); gaiaSetPointXYM (rng->Coords, iv, x, y, m); } } } else if (type == GAIA_XY_Z_M) { /* POLYGONZM */ geom->DimensionModel = GAIA_XY_Z_M; if (ir == 0) { /* building the EXTERIOR RING */ pg = gaiaAddPolygonToGeomColl (geom, pts, rings - 1); rng = pg->Exterior; for (iv = 0; iv < pts; iv++) { /* inserting vertices into the EXTERIOR Ring */ x = gaiaImport64 (ptr, GAIA_LITTLE_ENDIAN, endian_arch); y = gaiaImport64 (ptr + sizeof (double), GAIA_LITTLE_ENDIAN, endian_arch); z = gaiaImport64 (ptr + (sizeof (double) * 2), GAIA_LITTLE_ENDIAN, endian_arch); m = gaiaImport64 (ptr + (sizeof (double) * 3), GAIA_LITTLE_ENDIAN, endian_arch); ptr += (coord_dims * sizeof (double)); gaiaSetPointXYZM (rng->Coords, iv, x, y, z, m); } } else { /* building an INTERIOR RING */ rng = gaiaAddInteriorRing (pg, ir - 1, pts); for (iv = 0; iv < pts; iv++) { /* inserting vertices into some INTERIOR Ring */ x = gaiaImport64 (ptr, GAIA_LITTLE_ENDIAN, endian_arch); y = gaiaImport64 (ptr + sizeof (double), GAIA_LITTLE_ENDIAN, endian_arch); z = gaiaImport64 (ptr + (sizeof (double) * 2), GAIA_LITTLE_ENDIAN, endian_arch); m = gaiaImport64 (ptr + (sizeof (double) * 3), GAIA_LITTLE_ENDIAN, endian_arch); ptr += (coord_dims * sizeof (double)); gaiaSetPointXYZM (rng->Coords, iv, x, y, z, m); } } } else { /* POLYGON */ geom->DimensionModel = GAIA_XY; if (ir == 0) { /* building the EXTERIOR RING */ pg = gaiaAddPolygonToGeomColl (geom, pts, rings - 1); rng = pg->Exterior; for (iv = 0; iv < pts; iv++) { /* inserting vertices into the EXTERIOR Ring */ x = gaiaImport64 (ptr, GAIA_LITTLE_ENDIAN, endian_arch); y = gaiaImport64 (ptr + sizeof (double), GAIA_LITTLE_ENDIAN, endian_arch); ptr += (coord_dims * sizeof (double)); gaiaSetPoint (rng->Coords, iv, x, y); } } else { /* building an INTERIOR RING */ rng = gaiaAddInteriorRing (pg, ir - 1, pts); for (iv = 0; iv < pts; iv++) { /* inserting vertices into some INTERIOR Ring */ x = gaiaImport64 (ptr, GAIA_LITTLE_ENDIAN, endian_arch); y = gaiaImport64 (ptr + sizeof (double), GAIA_LITTLE_ENDIAN, endian_arch); ptr += (coord_dims * sizeof (double)); gaiaSetPoint (rng->Coords, iv, x, y); } } } sz -= rng_sz; } if (consumed) *consumed = bytes; return 1; } static int multiPointFromFgf (gaiaGeomCollPtr geom, int endian_arch, const unsigned char *blob, unsigned int size) { /* decoding a MULTIPOINT Geometry from FGF */ int pts; int ipt; unsigned int sz = size; const unsigned char *ptr = blob; unsigned int consumed; /* checking Geometry Type */ if (sz < 4) return 0; if (gaiaImport32 (ptr, GAIA_LITTLE_ENDIAN, endian_arch) != GAIA_MULTIPOINT) return 0; ptr += 4; sz -= 4; /* how many points are there ? */ if (sz < 4) return 0; pts = gaiaImport32 (ptr, GAIA_LITTLE_ENDIAN, endian_arch); ptr += 4; sz -= 4; if (pts < 1) return 0; for (ipt = 0; ipt < pts; ipt++) { /* fetching individual Points from FGF */ if (!pointFromFgf (geom, endian_arch, ptr, sz, &consumed)) return 0; ptr += consumed; sz -= consumed; } return 1; } static int multiLinestringFromFgf (gaiaGeomCollPtr geom, int endian_arch, const unsigned char *blob, unsigned int size) { /* decoding a MULTILINESTRING Geometry from FGF */ int lns; int iln; unsigned int sz = size; const unsigned char *ptr = blob; unsigned int consumed; /* checking Geometry Type */ if (sz < 4) return 0; if (gaiaImport32 (ptr, GAIA_LITTLE_ENDIAN, endian_arch) != GAIA_MULTILINESTRING) return 0; ptr += 4; sz -= 4; /* how many linestrings are there ? */ if (sz < 4) return 0; lns = gaiaImport32 (ptr, GAIA_LITTLE_ENDIAN, endian_arch); ptr += 4; sz -= 4; if (lns < 1) return 0; for (iln = 0; iln < lns; iln++) { /* fetching individual Linestrings from FGF */ if (!linestringFromFgf (geom, endian_arch, ptr, sz, &consumed)) return 0; ptr += consumed; sz -= consumed; } return 1; } static int multiPolygonFromFgf (gaiaGeomCollPtr geom, int endian_arch, const unsigned char *blob, unsigned int size) { /* decoding a MULTIPOLYGON Geometry from FGF */ int pgs; int ipg; unsigned int sz = size; const unsigned char *ptr = blob; unsigned int consumed; /* checking Geometry Type */ if (sz < 4) return 0; if (gaiaImport32 (ptr, GAIA_LITTLE_ENDIAN, endian_arch) != GAIA_MULTIPOLYGON) return 0; ptr += 4; sz -= 4; /* how many polygons are there ? */ if (sz < 4) return 0; pgs = gaiaImport32 (ptr, GAIA_LITTLE_ENDIAN, endian_arch); ptr += 4; sz -= 4; if (pgs < 1) return 0; for (ipg = 0; ipg < pgs; ipg++) { /* fetching individual Polygons from FGF */ if (!polygonFromFgf (geom, endian_arch, ptr, sz, &consumed)) return 0; ptr += consumed; sz -= consumed; } return 1; } static int geomCollectionFromFgf (gaiaGeomCollPtr geom, int endian_arch, const unsigned char *blob, unsigned int size) { /* decoding a GEOMETRYCOLLECTION Geometry from FGF */ int geoms; int ig; int geom_type; unsigned int sz = size; const unsigned char *ptr = blob; unsigned int consumed; /* checking Geometry Type */ if (sz < 4) return 0; if (gaiaImport32 (ptr, GAIA_LITTLE_ENDIAN, endian_arch) != GAIA_GEOMETRYCOLLECTION) return 0; ptr += 4; sz -= 4; /* how many individual Geometries are there ? */ if (sz < 4) return 0; geoms = gaiaImport32 (ptr, GAIA_LITTLE_ENDIAN, endian_arch); ptr += 4; sz -= 4; if (geoms < 1) return 0; for (ig = 0; ig < geoms; ig++) { /* fetching individual Geometries from FGF */ if (sz < 4) return 0; geom_type = gaiaImport32 (ptr, GAIA_LITTLE_ENDIAN, endian_arch); switch (geom_type) { case GAIA_POINT: if (!pointFromFgf (geom, endian_arch, ptr, sz, &consumed)) return 0; break; case GAIA_LINESTRING: if (!linestringFromFgf (geom, endian_arch, ptr, sz, &consumed)) return 0; break; case GAIA_POLYGON: if (!polygonFromFgf (geom, endian_arch, ptr, sz, &consumed)) return 0; break; default: /* unsupported geometry type */ return 0; break; }; ptr += consumed; sz -= consumed; } return 1; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromFgf (const unsigned char *blob, unsigned int size) { /* decoding from FGF to GEOMETRY */ gaiaGeomCollPtr geom = NULL; int geom_type; int endian_arch = gaiaEndianArch (); if (size < 4) return NULL; /* checking FGF type */ geom_type = gaiaImport32 (blob, GAIA_LITTLE_ENDIAN, endian_arch); geom = gaiaAllocGeomColl (); geom->DeclaredType = geom_type; switch (geom_type) { case GAIA_POINT: if (pointFromFgf (geom, endian_arch, blob, size, NULL)) return geom; break; case GAIA_LINESTRING: if (linestringFromFgf (geom, endian_arch, blob, size, NULL)) return geom; break; case GAIA_POLYGON: if (polygonFromFgf (geom, endian_arch, blob, size, NULL)) return geom; break; case GAIA_MULTIPOINT: if (multiPointFromFgf (geom, endian_arch, blob, size)) return geom; break; case GAIA_MULTILINESTRING: if (multiLinestringFromFgf (geom, endian_arch, blob, size)) return geom; break; case GAIA_MULTIPOLYGON: if (multiPolygonFromFgf (geom, endian_arch, blob, size)) return geom; break; case GAIA_GEOMETRYCOLLECTION: if (geomCollectionFromFgf (geom, endian_arch, blob, size)) return geom; break; default: /* unsupported geometry type */ break; }; gaiaFreeGeomColl (geom); return NULL; } GAIAGEO_DECLARE void gaiaToFgf (gaiaGeomCollPtr geom, unsigned char **result, int *size, int coord_dims) { /* builds the FGF representation for this GEOMETRY */ int ib; int iv; double x; double y; double z; double m; int entities = 0; int n_points = 0; int n_linestrings = 0; int n_polygons = 0; int type; int n_coords; unsigned char *ptr; int sz = 0; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; gaiaRingPtr rng; gaiaPointPtr point = NULL; gaiaLinestringPtr line = NULL; gaiaPolygonPtr polyg = NULL; int endian_arch = gaiaEndianArch (); gaiaMbrGeometry (geom); switch (coord_dims) { case GAIA_XY: n_coords = 2; break; case GAIA_XY_M: case GAIA_XY_Z: n_coords = 3; break; case GAIA_XY_Z_M: n_coords = 4; break; default: n_coords = 0; break; } /* how many entities, and of what kind, do we have ? */ pt = geom->FirstPoint; while (pt) { point = pt; entities++; n_points++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { line = ln; entities++; n_linestrings++; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { polyg = pg; entities++; n_polygons++; pg = pg->Next; } *size = 0; sz = 0; *result = NULL; if (n_points == 0 && n_polygons == 0 && n_linestrings == 0) return; /* ok, we can determine the geometry class */ if (n_points == 1 && n_linestrings == 0 && n_polygons == 0) { if (geom->DeclaredType == GAIA_MULTIPOINT) type = GAIA_MULTIPOINT; else if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) type = GAIA_GEOMETRYCOLLECTION; else type = GAIA_POINT; } else if (n_points > 1 && n_linestrings == 0 && n_polygons == 0) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) type = GAIA_GEOMETRYCOLLECTION; else type = GAIA_MULTIPOINT; } else if (n_points == 0 && n_linestrings == 1 && n_polygons == 0) { if (geom->DeclaredType == GAIA_MULTILINESTRING) type = GAIA_MULTILINESTRING; else if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) type = GAIA_GEOMETRYCOLLECTION; else type = GAIA_LINESTRING; } else if (n_points == 0 && n_linestrings > 1 && n_polygons == 0) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) type = GAIA_GEOMETRYCOLLECTION; else type = GAIA_MULTILINESTRING; } else if (n_points == 0 && n_linestrings == 0 && n_polygons == 1) { if (geom->DeclaredType == GAIA_MULTIPOLYGON) type = GAIA_MULTIPOLYGON; else if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) type = GAIA_GEOMETRYCOLLECTION; else type = GAIA_POLYGON; } else if (n_points == 0 && n_linestrings == 0 && n_polygons > 1) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) type = GAIA_GEOMETRYCOLLECTION; else type = GAIA_MULTIPOLYGON; } else type = GAIA_GEOMETRYCOLLECTION; /* and now we compute the size of FGF */ if (type == GAIA_MULTIPOINT || type == GAIA_MULTILINESTRING || type == GAIA_MULTIPOLYGON || type == GAIA_GEOMETRYCOLLECTION) sz += 8; point = geom->FirstPoint; while (point) { sz += (8 + (n_coords * sizeof (double))); /* the size of each POINT */ point = point->Next; } line = geom->FirstLinestring; while (line) { sz += (12 + ((n_coords * sizeof (double)) * line->Points)); /* # points + [x,y] for each vertex */ line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { rng = polyg->Exterior; sz += (16 + ((n_coords * sizeof (double)) * rng->Points)); /* # rings + # points + [x.y] array - exterior ring */ for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; sz += (4 + ((n_coords * sizeof (double)) * rng->Points)); /* # points + [x,y] array - interior ring */ } polyg = polyg->Next; } *size = sz; ptr = malloc (sz); *result = ptr; /* and finally we build the FGF */ if (type == GAIA_MULTIPOINT || type == GAIA_MULTILINESTRING || type == GAIA_MULTIPOLYGON || type == GAIA_GEOMETRYCOLLECTION) { gaiaExport32 (ptr, type, GAIA_LITTLE_ENDIAN, endian_arch); /* Geometry Type */ ptr += 4; gaiaExport32 (ptr, entities, GAIA_LITTLE_ENDIAN, endian_arch); /* it's a collection; # entities */ ptr += 4; } point = geom->FirstPoint; while (point) { gaiaExport32 (ptr, GAIA_POINT, GAIA_LITTLE_ENDIAN, endian_arch); /* the CLASS TYPE for this element */ ptr += 4; gaiaExport32 (ptr, coord_dims, GAIA_LITTLE_ENDIAN, endian_arch); /* the CoordDimension */ ptr += 4; gaiaExport64 (ptr, point->X, GAIA_LITTLE_ENDIAN, endian_arch); /* X */ ptr += 8; gaiaExport64 (ptr, point->Y, GAIA_LITTLE_ENDIAN, endian_arch); /* Y */ ptr += 8; if (n_coords > 2) { /* the third coordinate [Z or M] */ if (coord_dims == GAIA_XY_Z || coord_dims == GAIA_XY_Z_M) gaiaExport64 (ptr, point->Z, GAIA_LITTLE_ENDIAN, endian_arch); else gaiaExport64 (ptr, point->M, GAIA_LITTLE_ENDIAN, endian_arch); ptr += 8; } if (n_coords > 3) { /* the fourth coordinate [M] */ gaiaExport64 (ptr, point->M, GAIA_LITTLE_ENDIAN, endian_arch); ptr += 8; } point = point->Next; } line = geom->FirstLinestring; while (line) { gaiaExport32 (ptr, GAIA_LINESTRING, GAIA_LITTLE_ENDIAN, endian_arch); /* the CLASS TYPE for this element */ ptr += 4; gaiaExport32 (ptr, coord_dims, GAIA_LITTLE_ENDIAN, endian_arch); /* the CoordDimension */ ptr += 4; gaiaExport32 (ptr, line->Points, GAIA_LITTLE_ENDIAN, endian_arch); /* # points */ ptr += 4; for (iv = 0; iv < line->Points; iv++) { z = 0.0; m = 0.0; if (geom->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (geom->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (geom->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } gaiaExport64 (ptr, x, GAIA_LITTLE_ENDIAN, endian_arch); /* X */ ptr += 8; gaiaExport64 (ptr, y, GAIA_LITTLE_ENDIAN, endian_arch); /* Y */ ptr += 8; if (n_coords > 2) { /* the third coordinate [Z or M] */ if (coord_dims == GAIA_XY_Z || coord_dims == GAIA_XY_Z_M) gaiaExport64 (ptr, z, GAIA_LITTLE_ENDIAN, endian_arch); else gaiaExport64 (ptr, m, GAIA_LITTLE_ENDIAN, endian_arch); ptr += 8; } if (n_coords > 3) { /* the fourth coordinate [M]; */ gaiaExport64 (ptr, m, GAIA_LITTLE_ENDIAN, endian_arch); ptr += 8; } } line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { gaiaExport32 (ptr, GAIA_POLYGON, GAIA_LITTLE_ENDIAN, endian_arch); /* the CLASS TYPE for this element */ ptr += 4; gaiaExport32 (ptr, coord_dims, GAIA_LITTLE_ENDIAN, endian_arch); /* the CoordDimension */ ptr += 4; gaiaExport32 (ptr, polyg->NumInteriors + 1, GAIA_LITTLE_ENDIAN, endian_arch); /* # rings */ ptr += 4; rng = polyg->Exterior; gaiaExport32 (ptr, rng->Points, GAIA_LITTLE_ENDIAN, endian_arch); /* # points - exterior ring */ ptr += 4; for (iv = 0; iv < rng->Points; iv++) { z = 0.0; m = 0.0; if (geom->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); } else if (geom->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); } else if (geom->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); } gaiaExport64 (ptr, x, GAIA_LITTLE_ENDIAN, endian_arch); /* X - exterior ring */ ptr += 8; gaiaExport64 (ptr, y, GAIA_LITTLE_ENDIAN, endian_arch); /* Y - exterior ring */ ptr += 8; if (n_coords > 2) { /* the third coordinate [Z or M] */ if (coord_dims == GAIA_XY_Z || coord_dims == GAIA_XY_Z_M) gaiaExport64 (ptr, z, GAIA_LITTLE_ENDIAN, endian_arch); else gaiaExport64 (ptr, m, GAIA_LITTLE_ENDIAN, endian_arch); ptr += 8; } if (n_coords > 3) { /* the fourth coordinate [M] */ gaiaExport64 (ptr, m, GAIA_LITTLE_ENDIAN, endian_arch); ptr += 8; } } for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; gaiaExport32 (ptr, rng->Points, 1, endian_arch); /* # points - interior ring */ ptr += 4; for (iv = 0; iv < rng->Points; iv++) { z = 0.0; m = 0.0; if (geom->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); } else if (geom->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); } else if (geom->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); } gaiaExport64 (ptr, x, GAIA_LITTLE_ENDIAN, endian_arch); /* X - interior ring */ ptr += 8; gaiaExport64 (ptr, y, GAIA_LITTLE_ENDIAN, endian_arch); /* Y - interior ring */ ptr += 8; if (n_coords > 2) { /* the third coordinate [Z or M]; defaulting to ZERO */ if (coord_dims == GAIA_XY_Z || coord_dims == GAIA_XY_Z_M) gaiaExport64 (ptr, z, GAIA_LITTLE_ENDIAN, endian_arch); else gaiaExport64 (ptr, m, GAIA_LITTLE_ENDIAN, endian_arch); ptr += 8; } if (n_coords > 3) { /* the fourth coordinate [M] */ gaiaExport64 (ptr, m, GAIA_LITTLE_ENDIAN, endian_arch); ptr += 8; } } } polyg = polyg->Next; } } libspatialite-4.1.1/src/gaiageo/vanuatuWkt.c0000664000175000017500000030124212163502133015764 00000000000000/* Driver template for the LEMON parser generator. ** The author disclaims copyright to this source code. */ /* First off, code is included that follows the "include" declaration ** in the input grammar file. */ #include /* Next is all token values, in a form suitable for use by makeheaders. ** This section will be null unless lemon is run with the -m switch. */ /* ** These constants (all generated automatically by the parser generator) ** specify the various kinds of tokens (terminals) that the parser ** understands. ** ** Each symbol here is a terminal symbol in the grammar. */ /* Make sure the INTERFACE macro is defined. */ #ifndef INTERFACE #define INTERFACE 1 #endif /* The next thing included is series of defines which control ** various aspects of the generated parser. ** YYCODETYPE is the data type used for storing terminal ** and nonterminal numbers. "unsigned char" is ** used if there are fewer than 250 terminals ** and nonterminals. "int" is used otherwise. ** YYNOCODE is a number of type YYCODETYPE which corresponds ** to no legal terminal or nonterminal number. This ** number is used to fill in empty slots of the hash ** table. ** YYFALLBACK If defined, this indicates that one or more tokens ** have fall-back values which should be used if the ** original value of the token will not parse. ** YYACTIONTYPE is the data type used for storing terminal ** and nonterminal numbers. "unsigned char" is ** used if there are fewer than 250 rules and ** states combined. "int" is used otherwise. ** ParseTOKENTYPE is the data type used for minor tokens given ** directly to the parser from the tokenizer. ** YYMINORTYPE is the data type used for all minor tokens. ** This is typically a union of many types, one of ** which is ParseTOKENTYPE. The entry in the union ** for base tokens is called "yy0". ** YYSTACKDEPTH is the maximum depth of the parser's stack. If ** zero the stack is dynamically sized using realloc() ** ParseARG_SDECL A static variable declaration for the %extra_argument ** ParseARG_PDECL A parameter declaration for the %extra_argument ** ParseARG_STORE Code to store %extra_argument into yypParser ** ParseARG_FETCH Code to extract %extra_argument from yypParser ** YYNSTATE the combined number of states. ** YYNRULE the number of rules in the grammar ** YYERRORSYMBOL is the code number of the error symbol. If not ** defined, then do no error processing. */ #define YYCODETYPE unsigned char #define YYNOCODE 133 #define YYACTIONTYPE unsigned short int #define ParseTOKENTYPE void * typedef union { int yyinit; ParseTOKENTYPE yy0; } YYMINORTYPE; #ifndef YYSTACKDEPTH #define YYSTACKDEPTH 1000000 #endif #define ParseARG_SDECL struct vanuatu_data *p_data ; #define ParseARG_PDECL , struct vanuatu_data *p_data #define ParseARG_FETCH struct vanuatu_data *p_data = yypParser->p_data #define ParseARG_STORE yypParser->p_data = p_data #define YYNSTATE 490 #define YYNRULE 201 #define YY_NO_ACTION (YYNSTATE+YYNRULE+2) #define YY_ACCEPT_ACTION (YYNSTATE+YYNRULE+1) #define YY_ERROR_ACTION (YYNSTATE+YYNRULE) /* The yyzerominor constant is used to initialize instances of ** YYMINORTYPE objects to zero. */ static const YYMINORTYPE yyzerominor = { 0 }; /* Define the yytestcase() macro to be a no-op if is not already defined ** otherwise. ** ** Applications can choose to define yytestcase() in the %include section ** to a macro that can assist in verifying code coverage. For production ** code the yytestcase() macro should be turned off. But it is useful ** for testing. */ #ifndef yytestcase #define yytestcase(X) #endif /* Next are the tables used to determine what action to take based on the ** current state and lookahead token. These tables are used to implement ** functions that take a state number and lookahead value and return an ** action integer. ** ** Suppose the action integer is N. Then the action is determined as ** follows ** ** 0 <= N < YYNSTATE Shift N. That is, push the lookahead ** token onto the stack and goto state N. ** ** YYNSTATE <= N < YYNSTATE+YYNRULE Reduce by rule N-YYNSTATE. ** ** N == YYNSTATE+YYNRULE A syntax error has occurred. ** ** N == YYNSTATE+YYNRULE+1 The parser accepts its input. ** ** N == YYNSTATE+YYNRULE+2 No such action. Denotes unused ** slots in the yy_action[] table. ** ** The action table is constructed as a single large table named yy_action[]. ** Given state S and lookahead X, the action is computed as ** ** yy_action[ yy_shift_ofst[S] + X ] ** ** If the index value yy_shift_ofst[S]+X is out of range or if the value ** yy_lookahead[yy_shift_ofst[S]+X] is not equal to X or if yy_shift_ofst[S] ** is equal to YY_SHIFT_USE_DFLT, it means that the action is not in the table ** and that yy_default[S] should be used instead. ** ** The formula above is for computing the action when the lookahead is ** a terminal symbol. If the lookahead is a non-terminal (as occurs after ** a reduce action) then the yy_reduce_ofst[] array is used in place of ** the yy_shift_ofst[] array and YY_REDUCE_USE_DFLT is used in place of ** YY_SHIFT_USE_DFLT. ** ** The following are the tables generated in this section: ** ** yy_action[] A single table containing all actions. ** yy_lookahead[] A table containing the lookahead for each entry in ** yy_action. Used to detect hash collisions. ** yy_shift_ofst[] For each state, the offset into yy_action for ** shifting terminals. ** yy_reduce_ofst[] For each state, the offset into yy_action for ** shifting non-terminals after a reduce. ** yy_default[] Default action for each state. */ static const YYACTIONTYPE yy_action[] = { /* 0 */ 230, 316, 317, 318, 319, 320, 321, 322, 323, 324, /* 10 */ 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, /* 20 */ 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, /* 30 */ 345, 346, 347, 348, 490, 238, 231, 51, 93, 233, /* 40 */ 235, 237, 94, 46, 54, 57, 60, 63, 66, 72, /* 50 */ 78, 84, 90, 97, 105, 113, 122, 127, 132, 137, /* 60 */ 142, 147, 152, 157, 162, 179, 196, 213, 231, 231, /* 70 */ 101, 351, 350, 233, 47, 102, 54, 54, 234, 57, /* 80 */ 66, 66, 47, 72, 90, 90, 241, 97, 122, 122, /* 90 */ 47, 127, 142, 142, 233, 147, 177, 170, 58, 194, /* 100 */ 57, 235, 47, 235, 72, 692, 1, 60, 97, 60, /* 110 */ 59, 78, 127, 78, 47, 105, 147, 105, 253, 132, /* 120 */ 187, 132, 47, 152, 237, 152, 48, 211, 91, 204, /* 130 */ 63, 237, 254, 351, 84, 98, 47, 63, 113, 106, /* 140 */ 351, 84, 137, 114, 351, 113, 157, 232, 351, 137, /* 150 */ 228, 109, 46, 157, 49, 236, 110, 221, 49, 163, /* 160 */ 172, 173, 174, 175, 176, 164, 165, 166, 167, 168, /* 170 */ 169, 180, 189, 190, 191, 192, 193, 181, 182, 183, /* 180 */ 184, 185, 186, 353, 50, 197, 206, 207, 208, 209, /* 190 */ 210, 355, 198, 199, 200, 201, 202, 203, 18, 52, /* 200 */ 358, 20, 214, 223, 224, 225, 226, 227, 21, 53, /* 210 */ 215, 216, 217, 218, 219, 220, 239, 118, 55, 51, /* 220 */ 56, 46, 119, 46, 243, 46, 61, 49, 62, 49, /* 230 */ 245, 49, 51, 64, 65, 51, 51, 248, 249, 250, /* 240 */ 70, 357, 46, 46, 46, 46, 255, 76, 240, 258, /* 250 */ 47, 47, 49, 259, 260, 82, 49, 49, 49, 361, /* 260 */ 263, 264, 51, 51, 265, 88, 51, 51, 359, 23, /* 270 */ 242, 24, 26, 362, 27, 29, 67, 30, 69, 364, /* 280 */ 244, 73, 365, 34, 367, 246, 368, 79, 251, 370, /* 290 */ 75, 38, 81, 85, 256, 374, 68, 42, 247, 71, /* 300 */ 87, 261, 10, 373, 92, 74, 378, 252, 77, 267, /* 310 */ 377, 266, 95, 80, 382, 257, 83, 269, 381, 268, /* 320 */ 86, 91, 96, 262, 89, 386, 385, 11, 389, 99, /* 330 */ 391, 100, 270, 272, 271, 103, 98, 12, 104, 394, /* 340 */ 396, 107, 106, 108, 111, 274, 273, 13, 401, 277, /* 350 */ 120, 114, 123, 112, 275, 115, 125, 279, 399, 406, /* 360 */ 278, 116, 117, 276, 128, 404, 408, 130, 121, 133, /* 370 */ 280, 135, 138, 409, 140, 143, 145, 148, 153, 150, /* 380 */ 124, 126, 155, 158, 129, 131, 160, 2, 3, 4, /* 390 */ 134, 5, 136, 693, 693, 693, 693, 139, 693, 141, /* 400 */ 693, 693, 693, 144, 693, 146, 693, 6, 412, 7, /* 410 */ 411, 693, 149, 151, 693, 281, 415, 154, 414, 156, /* 420 */ 693, 693, 282, 693, 417, 159, 418, 161, 693, 693, /* 430 */ 693, 8, 283, 421, 420, 693, 284, 693, 423, 424, /* 440 */ 693, 693, 9, 693, 285, 693, 693, 427, 693, 426, /* 450 */ 693, 693, 286, 693, 429, 693, 693, 693, 693, 693, /* 460 */ 430, 693, 693, 693, 693, 287, 432, 693, 433, 693, /* 470 */ 434, 435, 693, 436, 437, 171, 315, 14, 438, 15, /* 480 */ 288, 289, 290, 291, 292, 293, 460, 178, 294, 445, /* 490 */ 349, 352, 16, 19, 354, 17, 693, 447, 360, 356, /* 500 */ 448, 693, 22, 363, 693, 449, 693, 450, 366, 25, /* 510 */ 451, 693, 452, 188, 453, 28, 295, 369, 296, 297, /* 520 */ 298, 299, 300, 195, 371, 31, 32, 33, 372, 375, /* 530 */ 35, 36, 37, 376, 379, 39, 301, 40, 462, 463, /* 540 */ 464, 465, 205, 466, 467, 41, 380, 468, 302, 303, /* 550 */ 304, 383, 212, 305, 43, 306, 384, 307, 44, 475, /* 560 */ 45, 387, 388, 390, 392, 308, 477, 393, 478, 395, /* 570 */ 479, 480, 397, 398, 481, 222, 482, 400, 402, 403, /* 580 */ 405, 483, 407, 410, 309, 413, 310, 416, 419, 422, /* 590 */ 425, 428, 311, 431, 439, 440, 229, 312, 313, 441, /* 600 */ 442, 443, 314, 444, 446, 454, 455, 456, 457, 458, /* 610 */ 459, 461, 469, 470, 471, 472, 473, 474, 476, 484, /* 620 */ 485, 486, 487, 488, 489, }; static const YYCODETYPE yy_lookahead[] = { /* 0 */ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, /* 10 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, /* 20 */ 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, /* 30 */ 67, 68, 69, 70, 0, 74, 2, 76, 71, 5, /* 40 */ 6, 7, 75, 76, 10, 11, 12, 13, 14, 15, /* 50 */ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, /* 60 */ 26, 27, 28, 29, 30, 31, 32, 33, 2, 2, /* 70 */ 72, 8, 76, 5, 76, 77, 10, 10, 72, 11, /* 80 */ 14, 14, 76, 15, 18, 18, 72, 19, 22, 22, /* 90 */ 76, 23, 26, 26, 5, 27, 30, 30, 72, 31, /* 100 */ 11, 6, 76, 6, 15, 35, 36, 12, 19, 12, /* 110 */ 72, 16, 23, 16, 76, 20, 27, 20, 72, 24, /* 120 */ 31, 24, 76, 28, 7, 28, 76, 32, 3, 32, /* 130 */ 13, 7, 72, 8, 17, 3, 76, 13, 21, 3, /* 140 */ 8, 17, 25, 3, 8, 21, 29, 71, 8, 25, /* 150 */ 33, 73, 76, 29, 76, 73, 78, 33, 76, 43, /* 160 */ 44, 45, 46, 47, 48, 43, 44, 45, 46, 47, /* 170 */ 48, 57, 58, 59, 60, 61, 62, 57, 58, 59, /* 180 */ 60, 61, 62, 76, 76, 50, 51, 52, 53, 54, /* 190 */ 55, 76, 50, 51, 52, 53, 54, 55, 3, 76, /* 200 */ 88, 9, 64, 65, 66, 67, 68, 69, 3, 76, /* 210 */ 64, 65, 66, 67, 68, 69, 71, 74, 71, 76, /* 220 */ 71, 76, 79, 76, 73, 76, 73, 76, 73, 76, /* 230 */ 74, 76, 76, 74, 74, 76, 76, 71, 71, 71, /* 240 */ 71, 76, 76, 76, 76, 76, 72, 72, 84, 73, /* 250 */ 76, 76, 76, 73, 73, 73, 76, 76, 76, 89, /* 260 */ 74, 74, 76, 76, 74, 74, 76, 76, 84, 9, /* 270 */ 85, 3, 9, 85, 3, 9, 3, 3, 9, 90, /* 280 */ 86, 3, 86, 3, 91, 87, 87, 3, 84, 92, /* 290 */ 9, 3, 9, 3, 85, 93, 96, 3, 97, 96, /* 300 */ 9, 86, 3, 97, 76, 98, 94, 99, 98, 76, /* 310 */ 99, 87, 9, 100, 95, 101, 100, 80, 101, 84, /* 320 */ 102, 3, 75, 103, 102, 104, 103, 3, 80, 76, /* 330 */ 105, 76, 76, 81, 85, 9, 3, 3, 77, 81, /* 340 */ 106, 76, 3, 76, 9, 86, 76, 3, 107, 87, /* 350 */ 9, 3, 3, 78, 82, 76, 9, 112, 82, 108, /* 360 */ 83, 76, 76, 76, 3, 83, 112, 9, 79, 3, /* 370 */ 113, 9, 3, 109, 9, 3, 9, 3, 3, 9, /* 380 */ 88, 88, 9, 3, 89, 89, 9, 3, 9, 3, /* 390 */ 90, 9, 90, 132, 132, 132, 132, 91, 132, 91, /* 400 */ 132, 132, 132, 92, 132, 92, 132, 3, 110, 9, /* 410 */ 113, 132, 93, 93, 132, 114, 111, 94, 114, 94, /* 420 */ 132, 132, 115, 132, 115, 95, 116, 95, 132, 132, /* 430 */ 132, 3, 120, 117, 120, 132, 121, 132, 121, 118, /* 440 */ 132, 132, 9, 132, 122, 132, 132, 119, 132, 122, /* 450 */ 132, 132, 123, 132, 123, 132, 132, 132, 132, 132, /* 460 */ 124, 132, 132, 132, 132, 128, 128, 132, 128, 132, /* 470 */ 128, 128, 132, 128, 128, 124, 1, 3, 128, 3, /* 480 */ 128, 128, 128, 128, 128, 128, 126, 124, 129, 125, /* 490 */ 4, 4, 3, 9, 4, 3, 132, 129, 4, 4, /* 500 */ 129, 132, 9, 4, 132, 129, 132, 129, 4, 9, /* 510 */ 129, 132, 129, 125, 129, 9, 129, 4, 129, 129, /* 520 */ 129, 129, 129, 125, 4, 9, 9, 9, 4, 4, /* 530 */ 9, 9, 9, 4, 4, 9, 130, 9, 130, 130, /* 540 */ 130, 130, 126, 130, 130, 9, 4, 130, 130, 130, /* 550 */ 130, 4, 126, 130, 9, 130, 4, 130, 9, 127, /* 560 */ 9, 4, 4, 4, 4, 131, 131, 4, 131, 4, /* 570 */ 131, 131, 4, 4, 131, 127, 131, 4, 4, 4, /* 580 */ 4, 131, 4, 4, 131, 4, 131, 4, 4, 4, /* 590 */ 4, 4, 131, 4, 4, 4, 127, 131, 131, 4, /* 600 */ 4, 4, 131, 4, 4, 4, 4, 4, 4, 4, /* 610 */ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, /* 620 */ 4, 4, 4, 4, 4, }; #define YY_SHIFT_USE_DFLT (-1) #define YY_SHIFT_MAX 314 static const short yy_shift_ofst[] = { /* 0 */ -1, 34, 66, 67, 68, 89, 95, 97, 117, 124, /* 10 */ 125, 132, 136, 140, 63, 63, 63, 63, 63, 63, /* 20 */ 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, /* 30 */ 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, /* 40 */ 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, /* 50 */ 63, 63, 63, 63, 195, 192, 192, 205, 260, 260, /* 60 */ 268, 263, 263, 271, 266, 266, 273, 274, 269, 274, /* 70 */ 192, 269, 278, 280, 281, 280, 260, 281, 284, 288, /* 80 */ 283, 288, 263, 283, 290, 294, 291, 294, 266, 291, /* 90 */ 299, 63, 63, 192, 303, 318, 303, 324, 63, 63, /* 100 */ 63, 260, 326, 333, 326, 334, 63, 63, 63, 263, /* 110 */ 335, 339, 335, 344, 63, 63, 63, 63, 266, 341, /* 120 */ 348, 341, 349, 195, 347, 195, 347, 361, 205, 358, /* 130 */ 205, 358, 366, 268, 362, 268, 362, 369, 271, 365, /* 140 */ 271, 365, 372, 273, 367, 273, 367, 374, 278, 370, /* 150 */ 278, 370, 375, 284, 373, 284, 373, 380, 290, 377, /* 160 */ 290, 377, 384, 379, 379, 379, 379, 379, 379, 379, /* 170 */ 384, 379, 379, 379, 379, 379, 379, 384, 379, 386, /* 180 */ 382, 382, 382, 382, 382, 382, 382, 386, 382, 382, /* 190 */ 382, 382, 382, 382, 386, 382, 404, 400, 400, 400, /* 200 */ 400, 400, 400, 400, 404, 400, 400, 400, 400, 400, /* 210 */ 400, 404, 400, 428, 433, 433, 433, 433, 433, 433, /* 220 */ 433, 428, 433, 433, 433, 433, 433, 433, 428, 433, /* 230 */ 475, 474, 486, 476, 487, 489, 490, 492, 495, 484, /* 240 */ 494, 493, 499, 500, 504, 506, 513, 520, 516, 517, /* 250 */ 518, 524, 525, 521, 522, 523, 529, 530, 526, 528, /* 260 */ 536, 542, 547, 545, 549, 551, 552, 557, 558, 559, /* 270 */ 560, 563, 565, 568, 569, 573, 574, 575, 576, 578, /* 280 */ 579, 581, 583, 584, 585, 586, 587, 589, 590, 591, /* 290 */ 595, 596, 597, 599, 600, 601, 602, 603, 604, 605, /* 300 */ 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, /* 310 */ 616, 617, 618, 619, 620, }; #define YY_REDUCE_USE_DFLT (-40) #define YY_REDUCE_MAX 229 static const short yy_reduce_ofst[] = { /* 0 */ 70, -37, 116, 122, 114, 120, 135, 142, 138, 146, /* 10 */ -33, -2, 78, 143, 76, 6, 82, -39, 145, 147, /* 20 */ 149, 14, 26, 38, 151, 153, 155, 156, 159, 160, /* 30 */ 166, 167, 168, 169, 46, 60, 174, 175, 176, 180, /* 40 */ 181, 182, 186, 187, 190, 191, -4, 50, 107, 108, /* 50 */ 115, 123, 133, 165, 112, 164, 184, 170, 185, 188, /* 60 */ 189, 194, 196, 193, 198, 199, 197, 200, 201, 203, /* 70 */ 204, 206, 202, 207, 208, 210, 209, 211, 212, 213, /* 80 */ 214, 216, 215, 217, 219, 218, 220, 222, 224, 223, /* 90 */ 221, 228, 233, 235, 237, 247, 248, 225, 253, 255, /* 100 */ 256, 249, 252, 261, 258, 234, 265, 267, 270, 259, /* 110 */ 272, 275, 276, 241, 279, 285, 286, 287, 262, 277, /* 120 */ 289, 282, 251, 292, 245, 293, 254, 264, 295, 257, /* 130 */ 296, 297, 298, 300, 301, 302, 304, 305, 306, 307, /* 140 */ 308, 309, 310, 311, 312, 313, 314, 316, 319, 315, /* 150 */ 320, 317, 321, 323, 322, 325, 327, 328, 330, 329, /* 160 */ 332, 331, 336, 337, 338, 340, 342, 343, 345, 346, /* 170 */ 351, 350, 352, 353, 354, 355, 356, 363, 357, 364, /* 180 */ 359, 368, 371, 376, 378, 381, 383, 388, 385, 387, /* 190 */ 389, 390, 391, 392, 398, 393, 360, 406, 408, 409, /* 200 */ 410, 411, 413, 414, 416, 417, 418, 419, 420, 423, /* 210 */ 425, 426, 427, 432, 434, 435, 437, 439, 440, 443, /* 220 */ 445, 448, 450, 453, 455, 461, 466, 467, 469, 471, }; static const YYACTIONTYPE yy_default[] = { /* 0 */ 491, 691, 691, 691, 691, 691, 691, 691, 691, 691, /* 10 */ 691, 691, 691, 691, 691, 691, 691, 691, 691, 691, /* 20 */ 691, 691, 691, 691, 691, 691, 691, 691, 691, 691, /* 30 */ 691, 691, 691, 691, 691, 691, 691, 691, 691, 691, /* 40 */ 691, 691, 691, 691, 691, 691, 691, 691, 691, 691, /* 50 */ 691, 691, 691, 691, 691, 547, 547, 691, 549, 549, /* 60 */ 691, 551, 551, 691, 553, 553, 691, 691, 572, 691, /* 70 */ 547, 572, 691, 691, 575, 691, 549, 575, 691, 691, /* 80 */ 578, 691, 551, 578, 691, 691, 581, 691, 553, 581, /* 90 */ 691, 691, 691, 547, 539, 691, 539, 691, 691, 691, /* 100 */ 691, 549, 541, 691, 541, 691, 691, 691, 691, 551, /* 110 */ 543, 691, 543, 691, 691, 691, 691, 691, 553, 545, /* 120 */ 691, 545, 691, 691, 600, 691, 600, 691, 691, 603, /* 130 */ 691, 603, 691, 691, 606, 691, 606, 691, 691, 609, /* 140 */ 691, 609, 691, 691, 616, 691, 616, 691, 691, 619, /* 150 */ 691, 619, 691, 691, 622, 691, 622, 691, 691, 625, /* 160 */ 691, 625, 691, 638, 638, 638, 638, 638, 638, 638, /* 170 */ 691, 638, 638, 638, 638, 638, 638, 691, 638, 691, /* 180 */ 653, 653, 653, 653, 653, 653, 653, 691, 653, 653, /* 190 */ 653, 653, 653, 653, 691, 653, 691, 668, 668, 668, /* 200 */ 668, 668, 668, 668, 691, 668, 668, 668, 668, 668, /* 210 */ 668, 691, 668, 691, 683, 683, 683, 683, 683, 683, /* 220 */ 683, 691, 683, 683, 683, 683, 683, 683, 691, 683, /* 230 */ 691, 691, 691, 691, 691, 691, 691, 691, 691, 691, /* 240 */ 691, 691, 691, 691, 691, 691, 691, 691, 691, 691, /* 250 */ 691, 691, 691, 691, 691, 691, 691, 691, 691, 691, /* 260 */ 691, 691, 691, 691, 691, 691, 691, 691, 691, 691, /* 270 */ 691, 691, 691, 691, 691, 691, 691, 691, 691, 691, /* 280 */ 691, 691, 691, 691, 691, 691, 691, 691, 691, 691, /* 290 */ 691, 691, 691, 691, 691, 691, 691, 691, 691, 691, /* 300 */ 691, 691, 691, 691, 691, 691, 691, 691, 691, 691, /* 310 */ 691, 691, 691, 691, 691, 492, 493, 494, 495, 496, /* 320 */ 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, /* 330 */ 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, /* 340 */ 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, /* 350 */ 534, 538, 527, 535, 528, 536, 529, 537, 555, 548, /* 360 */ 559, 556, 550, 560, 557, 552, 561, 558, 554, 562, /* 370 */ 563, 567, 571, 573, 564, 568, 574, 576, 565, 569, /* 380 */ 577, 579, 566, 570, 580, 582, 583, 530, 587, 540, /* 390 */ 591, 584, 531, 588, 542, 592, 585, 532, 589, 544, /* 400 */ 593, 586, 533, 590, 546, 594, 595, 599, 601, 596, /* 410 */ 602, 604, 597, 605, 607, 598, 608, 610, 611, 615, /* 420 */ 617, 612, 618, 620, 613, 621, 623, 614, 624, 626, /* 430 */ 627, 631, 639, 640, 641, 642, 643, 644, 645, 632, /* 440 */ 633, 634, 635, 636, 637, 628, 646, 654, 655, 656, /* 450 */ 657, 658, 659, 660, 647, 648, 649, 650, 651, 652, /* 460 */ 629, 661, 669, 670, 671, 672, 673, 674, 675, 662, /* 470 */ 663, 664, 665, 666, 667, 630, 676, 684, 685, 686, /* 480 */ 687, 688, 689, 690, 677, 678, 679, 680, 681, 682, }; #define YY_SZ_ACTTAB (int)(sizeof(yy_action)/sizeof(yy_action[0])) /* The next table maps tokens into fallback tokens. If a construct ** like the following: ** ** %fallback ID X Y Z. ** ** appears in the grammar, then ID becomes a fallback token for X, Y, ** and Z. Whenever one of the tokens X, Y, or Z is input to the parser ** but it does not parse, the type of the token is changed to ID and ** the parse is retried before an error is thrown. */ #ifdef YYFALLBACK static const YYCODETYPE yyFallback[] = { }; #endif /* YYFALLBACK */ /* The following structure represents a single element of the ** parser's stack. Information stored includes: ** ** + The state number for the parser at this level of the stack. ** ** + The value of the token stored at this level of the stack. ** (In other words, the "major" token.) ** ** + The semantic value stored at this level of the stack. This is ** the information used by the action routines in the grammar. ** It is sometimes called the "minor" token. */ struct yyStackEntry { YYACTIONTYPE stateno; /* The state-number */ YYCODETYPE major; /* The major token value. This is the code ** number for the token at this stack level */ YYMINORTYPE minor; /* The user-supplied minor token value. This ** is the value of the token */ }; typedef struct yyStackEntry yyStackEntry; /* The state of the parser is completely contained in an instance of ** the following structure */ struct yyParser { int yyidx; /* Index of top element in stack */ #ifdef YYTRACKMAXSTACKDEPTH int yyidxMax; /* Maximum value of yyidx */ #endif int yyerrcnt; /* Shifts left before out of the error */ ParseARG_SDECL /* A place to hold %extra_argument */ #if YYSTACKDEPTH<=0 int yystksz; /* Current side of the stack */ yyStackEntry *yystack; /* The parser's stack */ #else yyStackEntry yystack[YYSTACKDEPTH]; /* The parser's stack */ #endif }; typedef struct yyParser yyParser; #ifndef NDEBUG #include static FILE *yyTraceFILE = 0; static char *yyTracePrompt = 0; #endif /* NDEBUG */ #ifndef NDEBUG /* ** Turn parser tracing on by giving a stream to which to write the trace ** and a prompt to preface each trace message. Tracing is turned off ** by making either argument NULL ** ** Inputs: **
    **
  • A FILE* to which trace output should be written. ** If NULL, then tracing is turned off. **
  • A prefix string written at the beginning of every ** line of trace output. If NULL, then tracing is ** turned off. **
** ** Outputs: ** None. */ void ParseTrace (FILE * TraceFILE, char *zTracePrompt) { yyTraceFILE = TraceFILE; yyTracePrompt = zTracePrompt; if (yyTraceFILE == 0) yyTracePrompt = 0; else if (yyTracePrompt == 0) yyTraceFILE = 0; } #endif /* NDEBUG */ #ifndef NDEBUG /* For tracing shifts, the names of all terminals and nonterminals ** are required. The following table supplies these names */ static const char *const yyTokenName[] = { "$", "VANUATU_NEWLINE", "VANUATU_POINT", "VANUATU_OPEN_BRACKET", "VANUATU_CLOSE_BRACKET", "VANUATU_POINT_M", "VANUATU_POINT_Z", "VANUATU_POINT_ZM", "VANUATU_NUM", "VANUATU_COMMA", "VANUATU_LINESTRING", "VANUATU_LINESTRING_M", "VANUATU_LINESTRING_Z", "VANUATU_LINESTRING_ZM", "VANUATU_POLYGON", "VANUATU_POLYGON_M", "VANUATU_POLYGON_Z", "VANUATU_POLYGON_ZM", "VANUATU_MULTIPOINT", "VANUATU_MULTIPOINT_M", "VANUATU_MULTIPOINT_Z", "VANUATU_MULTIPOINT_ZM", "VANUATU_MULTILINESTRING", "VANUATU_MULTILINESTRING_M", "VANUATU_MULTILINESTRING_Z", "VANUATU_MULTILINESTRING_ZM", "VANUATU_MULTIPOLYGON", "VANUATU_MULTIPOLYGON_M", "VANUATU_MULTIPOLYGON_Z", "VANUATU_MULTIPOLYGON_ZM", "VANUATU_GEOMETRYCOLLECTION", "VANUATU_GEOMETRYCOLLECTION_M", "VANUATU_GEOMETRYCOLLECTION_Z", "VANUATU_GEOMETRYCOLLECTION_ZM", "error", "main", "in", "state", "program", "geo_text", "geo_textz", "geo_textm", "geo_textzm", "point", "linestring", "polygon", "multipoint", "multilinestring", "multipolygon", "geocoll", "pointz", "linestringz", "polygonz", "multipointz", "multilinestringz", "multipolygonz", "geocollz", "pointm", "linestringm", "polygonm", "multipointm", "multilinestringm", "multipolygonm", "geocollm", "pointzm", "linestringzm", "polygonzm", "multipointzm", "multilinestringzm", "multipolygonzm", "geocollzm", "point_coordxy", "point_coordxym", "point_coordxyz", "point_coordxyzm", "point_brkt_coordxy", "coord", "point_brkt_coordxym", "point_brkt_coordxyz", "point_brkt_coordxyzm", "extra_brkt_pointsxy", "extra_brkt_pointsxym", "extra_brkt_pointsxyz", "extra_brkt_pointsxyzm", "extra_pointsxy", "extra_pointsxym", "extra_pointsxyz", "extra_pointsxyzm", "linestring_text", "linestring_textm", "linestring_textz", "linestring_textzm", "polygon_text", "polygon_textm", "polygon_textz", "polygon_textzm", "ring", "extra_rings", "ringm", "extra_ringsm", "ringz", "extra_ringsz", "ringzm", "extra_ringszm", "multipoint_text", "multipoint_textm", "multipoint_textz", "multipoint_textzm", "multilinestring_text", "multilinestring_textm", "multilinestring_textz", "multilinestring_textzm", "multilinestring_text2", "multilinestring_textm2", "multilinestring_textz2", "multilinestring_textzm2", "multipolygon_text", "multipolygon_textm", "multipolygon_textz", "multipolygon_textzm", "multipolygon_text2", "multipolygon_textm2", "multipolygon_textz2", "multipolygon_textzm2", "geocoll_text", "geocoll_textm", "geocoll_textz", "geocoll_textzm", "geocoll_text2", "geocoll_textm2", "geocoll_textz2", "geocoll_textzm2", }; #endif /* NDEBUG */ #ifndef NDEBUG /* For tracing reduce actions, the names of all rules are required. */ static const char *const yyRuleName[] = { /* 0 */ "main ::= in", /* 1 */ "in ::=", /* 2 */ "in ::= in state VANUATU_NEWLINE", /* 3 */ "state ::= program", /* 4 */ "program ::= geo_text", /* 5 */ "program ::= geo_textz", /* 6 */ "program ::= geo_textm", /* 7 */ "program ::= geo_textzm", /* 8 */ "geo_text ::= point", /* 9 */ "geo_text ::= linestring", /* 10 */ "geo_text ::= polygon", /* 11 */ "geo_text ::= multipoint", /* 12 */ "geo_text ::= multilinestring", /* 13 */ "geo_text ::= multipolygon", /* 14 */ "geo_text ::= geocoll", /* 15 */ "geo_textz ::= pointz", /* 16 */ "geo_textz ::= linestringz", /* 17 */ "geo_textz ::= polygonz", /* 18 */ "geo_textz ::= multipointz", /* 19 */ "geo_textz ::= multilinestringz", /* 20 */ "geo_textz ::= multipolygonz", /* 21 */ "geo_textz ::= geocollz", /* 22 */ "geo_textm ::= pointm", /* 23 */ "geo_textm ::= linestringm", /* 24 */ "geo_textm ::= polygonm", /* 25 */ "geo_textm ::= multipointm", /* 26 */ "geo_textm ::= multilinestringm", /* 27 */ "geo_textm ::= multipolygonm", /* 28 */ "geo_textm ::= geocollm", /* 29 */ "geo_textzm ::= pointzm", /* 30 */ "geo_textzm ::= linestringzm", /* 31 */ "geo_textzm ::= polygonzm", /* 32 */ "geo_textzm ::= multipointzm", /* 33 */ "geo_textzm ::= multilinestringzm", /* 34 */ "geo_textzm ::= multipolygonzm", /* 35 */ "geo_textzm ::= geocollzm", /* 36 */ "point ::= VANUATU_POINT VANUATU_OPEN_BRACKET point_coordxy VANUATU_CLOSE_BRACKET", /* 37 */ "pointm ::= VANUATU_POINT_M VANUATU_OPEN_BRACKET point_coordxym VANUATU_CLOSE_BRACKET", /* 38 */ "pointz ::= VANUATU_POINT_Z VANUATU_OPEN_BRACKET point_coordxyz VANUATU_CLOSE_BRACKET", /* 39 */ "pointzm ::= VANUATU_POINT_ZM VANUATU_OPEN_BRACKET point_coordxyzm VANUATU_CLOSE_BRACKET", /* 40 */ "point_brkt_coordxy ::= VANUATU_OPEN_BRACKET coord coord VANUATU_CLOSE_BRACKET", /* 41 */ "point_brkt_coordxym ::= VANUATU_OPEN_BRACKET coord coord coord VANUATU_CLOSE_BRACKET", /* 42 */ "point_brkt_coordxyz ::= VANUATU_OPEN_BRACKET coord coord coord VANUATU_CLOSE_BRACKET", /* 43 */ "point_brkt_coordxyzm ::= VANUATU_OPEN_BRACKET coord coord coord coord VANUATU_CLOSE_BRACKET", /* 44 */ "point_coordxy ::= coord coord", /* 45 */ "point_coordxym ::= coord coord coord", /* 46 */ "point_coordxyz ::= coord coord coord", /* 47 */ "point_coordxyzm ::= coord coord coord coord", /* 48 */ "coord ::= VANUATU_NUM", /* 49 */ "extra_brkt_pointsxy ::=", /* 50 */ "extra_brkt_pointsxy ::= VANUATU_COMMA point_brkt_coordxy extra_brkt_pointsxy", /* 51 */ "extra_brkt_pointsxym ::=", /* 52 */ "extra_brkt_pointsxym ::= VANUATU_COMMA point_brkt_coordxym extra_brkt_pointsxym", /* 53 */ "extra_brkt_pointsxyz ::=", /* 54 */ "extra_brkt_pointsxyz ::= VANUATU_COMMA point_brkt_coordxyz extra_brkt_pointsxyz", /* 55 */ "extra_brkt_pointsxyzm ::=", /* 56 */ "extra_brkt_pointsxyzm ::= VANUATU_COMMA point_brkt_coordxyzm extra_brkt_pointsxyzm", /* 57 */ "extra_pointsxy ::=", /* 58 */ "extra_pointsxy ::= VANUATU_COMMA point_coordxy extra_pointsxy", /* 59 */ "extra_pointsxym ::=", /* 60 */ "extra_pointsxym ::= VANUATU_COMMA point_coordxym extra_pointsxym", /* 61 */ "extra_pointsxyz ::=", /* 62 */ "extra_pointsxyz ::= VANUATU_COMMA point_coordxyz extra_pointsxyz", /* 63 */ "extra_pointsxyzm ::=", /* 64 */ "extra_pointsxyzm ::= VANUATU_COMMA point_coordxyzm extra_pointsxyzm", /* 65 */ "linestring ::= VANUATU_LINESTRING linestring_text", /* 66 */ "linestringm ::= VANUATU_LINESTRING_M linestring_textm", /* 67 */ "linestringz ::= VANUATU_LINESTRING_Z linestring_textz", /* 68 */ "linestringzm ::= VANUATU_LINESTRING_ZM linestring_textzm", /* 69 */ "linestring_text ::= VANUATU_OPEN_BRACKET point_coordxy VANUATU_COMMA point_coordxy extra_pointsxy VANUATU_CLOSE_BRACKET", /* 70 */ "linestring_textm ::= VANUATU_OPEN_BRACKET point_coordxym VANUATU_COMMA point_coordxym extra_pointsxym VANUATU_CLOSE_BRACKET", /* 71 */ "linestring_textz ::= VANUATU_OPEN_BRACKET point_coordxyz VANUATU_COMMA point_coordxyz extra_pointsxyz VANUATU_CLOSE_BRACKET", /* 72 */ "linestring_textzm ::= VANUATU_OPEN_BRACKET point_coordxyzm VANUATU_COMMA point_coordxyzm extra_pointsxyzm VANUATU_CLOSE_BRACKET", /* 73 */ "polygon ::= VANUATU_POLYGON polygon_text", /* 74 */ "polygonm ::= VANUATU_POLYGON_M polygon_textm", /* 75 */ "polygonz ::= VANUATU_POLYGON_Z polygon_textz", /* 76 */ "polygonzm ::= VANUATU_POLYGON_ZM polygon_textzm", /* 77 */ "polygon_text ::= VANUATU_OPEN_BRACKET ring extra_rings VANUATU_CLOSE_BRACKET", /* 78 */ "polygon_textm ::= VANUATU_OPEN_BRACKET ringm extra_ringsm VANUATU_CLOSE_BRACKET", /* 79 */ "polygon_textz ::= VANUATU_OPEN_BRACKET ringz extra_ringsz VANUATU_CLOSE_BRACKET", /* 80 */ "polygon_textzm ::= VANUATU_OPEN_BRACKET ringzm extra_ringszm VANUATU_CLOSE_BRACKET", /* 81 */ "ring ::= VANUATU_OPEN_BRACKET point_coordxy VANUATU_COMMA point_coordxy VANUATU_COMMA point_coordxy VANUATU_COMMA point_coordxy extra_pointsxy VANUATU_CLOSE_BRACKET", /* 82 */ "extra_rings ::=", /* 83 */ "extra_rings ::= VANUATU_COMMA ring extra_rings", /* 84 */ "ringm ::= VANUATU_OPEN_BRACKET point_coordxym VANUATU_COMMA point_coordxym VANUATU_COMMA point_coordxym VANUATU_COMMA point_coordxym extra_pointsxym VANUATU_CLOSE_BRACKET", /* 85 */ "extra_ringsm ::=", /* 86 */ "extra_ringsm ::= VANUATU_COMMA ringm extra_ringsm", /* 87 */ "ringz ::= VANUATU_OPEN_BRACKET point_coordxyz VANUATU_COMMA point_coordxyz VANUATU_COMMA point_coordxyz VANUATU_COMMA point_coordxyz extra_pointsxyz VANUATU_CLOSE_BRACKET", /* 88 */ "extra_ringsz ::=", /* 89 */ "extra_ringsz ::= VANUATU_COMMA ringz extra_ringsz", /* 90 */ "ringzm ::= VANUATU_OPEN_BRACKET point_coordxyzm VANUATU_COMMA point_coordxyzm VANUATU_COMMA point_coordxyzm VANUATU_COMMA point_coordxyzm extra_pointsxyzm VANUATU_CLOSE_BRACKET", /* 91 */ "extra_ringszm ::=", /* 92 */ "extra_ringszm ::= VANUATU_COMMA ringzm extra_ringszm", /* 93 */ "multipoint ::= VANUATU_MULTIPOINT multipoint_text", /* 94 */ "multipointm ::= VANUATU_MULTIPOINT_M multipoint_textm", /* 95 */ "multipointz ::= VANUATU_MULTIPOINT_Z multipoint_textz", /* 96 */ "multipointzm ::= VANUATU_MULTIPOINT_ZM multipoint_textzm", /* 97 */ "multipoint_text ::= VANUATU_OPEN_BRACKET point_coordxy extra_pointsxy VANUATU_CLOSE_BRACKET", /* 98 */ "multipoint_textm ::= VANUATU_OPEN_BRACKET point_coordxym extra_pointsxym VANUATU_CLOSE_BRACKET", /* 99 */ "multipoint_textz ::= VANUATU_OPEN_BRACKET point_coordxyz extra_pointsxyz VANUATU_CLOSE_BRACKET", /* 100 */ "multipoint_textzm ::= VANUATU_OPEN_BRACKET point_coordxyzm extra_pointsxyzm VANUATU_CLOSE_BRACKET", /* 101 */ "multipoint_text ::= VANUATU_OPEN_BRACKET point_brkt_coordxy extra_brkt_pointsxy VANUATU_CLOSE_BRACKET", /* 102 */ "multipoint_textm ::= VANUATU_OPEN_BRACKET point_brkt_coordxym extra_brkt_pointsxym VANUATU_CLOSE_BRACKET", /* 103 */ "multipoint_textz ::= VANUATU_OPEN_BRACKET point_brkt_coordxyz extra_brkt_pointsxyz VANUATU_CLOSE_BRACKET", /* 104 */ "multipoint_textzm ::= VANUATU_OPEN_BRACKET point_brkt_coordxyzm extra_brkt_pointsxyzm VANUATU_CLOSE_BRACKET", /* 105 */ "multilinestring ::= VANUATU_MULTILINESTRING multilinestring_text", /* 106 */ "multilinestringm ::= VANUATU_MULTILINESTRING_M multilinestring_textm", /* 107 */ "multilinestringz ::= VANUATU_MULTILINESTRING_Z multilinestring_textz", /* 108 */ "multilinestringzm ::= VANUATU_MULTILINESTRING_ZM multilinestring_textzm", /* 109 */ "multilinestring_text ::= VANUATU_OPEN_BRACKET linestring_text multilinestring_text2 VANUATU_CLOSE_BRACKET", /* 110 */ "multilinestring_text2 ::=", /* 111 */ "multilinestring_text2 ::= VANUATU_COMMA linestring_text multilinestring_text2", /* 112 */ "multilinestring_textm ::= VANUATU_OPEN_BRACKET linestring_textm multilinestring_textm2 VANUATU_CLOSE_BRACKET", /* 113 */ "multilinestring_textm2 ::=", /* 114 */ "multilinestring_textm2 ::= VANUATU_COMMA linestring_textm multilinestring_textm2", /* 115 */ "multilinestring_textz ::= VANUATU_OPEN_BRACKET linestring_textz multilinestring_textz2 VANUATU_CLOSE_BRACKET", /* 116 */ "multilinestring_textz2 ::=", /* 117 */ "multilinestring_textz2 ::= VANUATU_COMMA linestring_textz multilinestring_textz2", /* 118 */ "multilinestring_textzm ::= VANUATU_OPEN_BRACKET linestring_textzm multilinestring_textzm2 VANUATU_CLOSE_BRACKET", /* 119 */ "multilinestring_textzm2 ::=", /* 120 */ "multilinestring_textzm2 ::= VANUATU_COMMA linestring_textzm multilinestring_textzm2", /* 121 */ "multipolygon ::= VANUATU_MULTIPOLYGON multipolygon_text", /* 122 */ "multipolygonm ::= VANUATU_MULTIPOLYGON_M multipolygon_textm", /* 123 */ "multipolygonz ::= VANUATU_MULTIPOLYGON_Z multipolygon_textz", /* 124 */ "multipolygonzm ::= VANUATU_MULTIPOLYGON_ZM multipolygon_textzm", /* 125 */ "multipolygon_text ::= VANUATU_OPEN_BRACKET polygon_text multipolygon_text2 VANUATU_CLOSE_BRACKET", /* 126 */ "multipolygon_text2 ::=", /* 127 */ "multipolygon_text2 ::= VANUATU_COMMA polygon_text multipolygon_text2", /* 128 */ "multipolygon_textm ::= VANUATU_OPEN_BRACKET polygon_textm multipolygon_textm2 VANUATU_CLOSE_BRACKET", /* 129 */ "multipolygon_textm2 ::=", /* 130 */ "multipolygon_textm2 ::= VANUATU_COMMA polygon_textm multipolygon_textm2", /* 131 */ "multipolygon_textz ::= VANUATU_OPEN_BRACKET polygon_textz multipolygon_textz2 VANUATU_CLOSE_BRACKET", /* 132 */ "multipolygon_textz2 ::=", /* 133 */ "multipolygon_textz2 ::= VANUATU_COMMA polygon_textz multipolygon_textz2", /* 134 */ "multipolygon_textzm ::= VANUATU_OPEN_BRACKET polygon_textzm multipolygon_textzm2 VANUATU_CLOSE_BRACKET", /* 135 */ "multipolygon_textzm2 ::=", /* 136 */ "multipolygon_textzm2 ::= VANUATU_COMMA polygon_textzm multipolygon_textzm2", /* 137 */ "geocoll ::= VANUATU_GEOMETRYCOLLECTION geocoll_text", /* 138 */ "geocollm ::= VANUATU_GEOMETRYCOLLECTION_M geocoll_textm", /* 139 */ "geocollz ::= VANUATU_GEOMETRYCOLLECTION_Z geocoll_textz", /* 140 */ "geocollzm ::= VANUATU_GEOMETRYCOLLECTION_ZM geocoll_textzm", /* 141 */ "geocoll_text ::= VANUATU_OPEN_BRACKET point geocoll_text2 VANUATU_CLOSE_BRACKET", /* 142 */ "geocoll_text ::= VANUATU_OPEN_BRACKET linestring geocoll_text2 VANUATU_CLOSE_BRACKET", /* 143 */ "geocoll_text ::= VANUATU_OPEN_BRACKET polygon geocoll_text2 VANUATU_CLOSE_BRACKET", /* 144 */ "geocoll_text ::= VANUATU_OPEN_BRACKET multipoint geocoll_text2 VANUATU_CLOSE_BRACKET", /* 145 */ "geocoll_text ::= VANUATU_OPEN_BRACKET multilinestring geocoll_text2 VANUATU_CLOSE_BRACKET", /* 146 */ "geocoll_text ::= VANUATU_OPEN_BRACKET multipolygon geocoll_text2 VANUATU_CLOSE_BRACKET", /* 147 */ "geocoll_text ::= VANUATU_OPEN_BRACKET VANUATU_GEOMETRYCOLLECTION geocoll_text geocoll_text2 VANUATU_CLOSE_BRACKET", /* 148 */ "geocoll_text2 ::=", /* 149 */ "geocoll_text2 ::= VANUATU_COMMA point geocoll_text2", /* 150 */ "geocoll_text2 ::= VANUATU_COMMA linestring geocoll_text2", /* 151 */ "geocoll_text2 ::= VANUATU_COMMA polygon geocoll_text2", /* 152 */ "geocoll_text2 ::= VANUATU_COMMA multipoint geocoll_text2", /* 153 */ "geocoll_text2 ::= VANUATU_COMMA multilinestring geocoll_text2", /* 154 */ "geocoll_text2 ::= VANUATU_COMMA multipolygon geocoll_text2", /* 155 */ "geocoll_text2 ::= VANUATU_COMMA VANUATU_GEOMETRYCOLLECTION geocoll_text geocoll_text2", /* 156 */ "geocoll_textm ::= VANUATU_OPEN_BRACKET pointm geocoll_textm2 VANUATU_CLOSE_BRACKET", /* 157 */ "geocoll_textm ::= VANUATU_OPEN_BRACKET linestringm geocoll_textm2 VANUATU_CLOSE_BRACKET", /* 158 */ "geocoll_textm ::= VANUATU_OPEN_BRACKET polygonm geocoll_textm2 VANUATU_CLOSE_BRACKET", /* 159 */ "geocoll_textm ::= VANUATU_OPEN_BRACKET multipointm geocoll_textm2 VANUATU_CLOSE_BRACKET", /* 160 */ "geocoll_textm ::= VANUATU_OPEN_BRACKET multilinestringm geocoll_textm2 VANUATU_CLOSE_BRACKET", /* 161 */ "geocoll_textm ::= VANUATU_OPEN_BRACKET multipolygonm geocoll_textm2 VANUATU_CLOSE_BRACKET", /* 162 */ "geocoll_textm ::= VANUATU_OPEN_BRACKET VANUATU_GEOMETRYCOLLECTION_M geocoll_textm geocoll_textm2 VANUATU_CLOSE_BRACKET", /* 163 */ "geocoll_textm2 ::=", /* 164 */ "geocoll_textm2 ::= VANUATU_COMMA pointm geocoll_textm2", /* 165 */ "geocoll_textm2 ::= VANUATU_COMMA linestringm geocoll_textm2", /* 166 */ "geocoll_textm2 ::= VANUATU_COMMA polygonm geocoll_textm2", /* 167 */ "geocoll_textm2 ::= VANUATU_COMMA multipointm geocoll_textm2", /* 168 */ "geocoll_textm2 ::= VANUATU_COMMA multilinestringm geocoll_textm2", /* 169 */ "geocoll_textm2 ::= VANUATU_COMMA multipolygonm geocoll_textm2", /* 170 */ "geocoll_textm2 ::= VANUATU_COMMA VANUATU_GEOMETRYCOLLECTION_M geocoll_textm geocoll_textm2", /* 171 */ "geocoll_textz ::= VANUATU_OPEN_BRACKET pointz geocoll_textz2 VANUATU_CLOSE_BRACKET", /* 172 */ "geocoll_textz ::= VANUATU_OPEN_BRACKET linestringz geocoll_textz2 VANUATU_CLOSE_BRACKET", /* 173 */ "geocoll_textz ::= VANUATU_OPEN_BRACKET polygonz geocoll_textz2 VANUATU_CLOSE_BRACKET", /* 174 */ "geocoll_textz ::= VANUATU_OPEN_BRACKET multipointz geocoll_textz2 VANUATU_CLOSE_BRACKET", /* 175 */ "geocoll_textz ::= VANUATU_OPEN_BRACKET multilinestringz geocoll_textz2 VANUATU_CLOSE_BRACKET", /* 176 */ "geocoll_textz ::= VANUATU_OPEN_BRACKET multipolygonz geocoll_textz2 VANUATU_CLOSE_BRACKET", /* 177 */ "geocoll_textz ::= VANUATU_OPEN_BRACKET VANUATU_GEOMETRYCOLLECTION_Z geocoll_textz geocoll_textz2 VANUATU_CLOSE_BRACKET", /* 178 */ "geocoll_textz2 ::=", /* 179 */ "geocoll_textz2 ::= VANUATU_COMMA pointz geocoll_textz2", /* 180 */ "geocoll_textz2 ::= VANUATU_COMMA linestringz geocoll_textz2", /* 181 */ "geocoll_textz2 ::= VANUATU_COMMA polygonz geocoll_textz2", /* 182 */ "geocoll_textz2 ::= VANUATU_COMMA multipointz geocoll_textz2", /* 183 */ "geocoll_textz2 ::= VANUATU_COMMA multilinestringz geocoll_textz2", /* 184 */ "geocoll_textz2 ::= VANUATU_COMMA multipolygonz geocoll_textz2", /* 185 */ "geocoll_textz2 ::= VANUATU_COMMA VANUATU_GEOMETRYCOLLECTION_Z geocoll_textz geocoll_textz2", /* 186 */ "geocoll_textzm ::= VANUATU_OPEN_BRACKET pointzm geocoll_textzm2 VANUATU_CLOSE_BRACKET", /* 187 */ "geocoll_textzm ::= VANUATU_OPEN_BRACKET linestringzm geocoll_textzm2 VANUATU_CLOSE_BRACKET", /* 188 */ "geocoll_textzm ::= VANUATU_OPEN_BRACKET polygonzm geocoll_textzm2 VANUATU_CLOSE_BRACKET", /* 189 */ "geocoll_textzm ::= VANUATU_OPEN_BRACKET multipointzm geocoll_textzm2 VANUATU_CLOSE_BRACKET", /* 190 */ "geocoll_textzm ::= VANUATU_OPEN_BRACKET multilinestringzm geocoll_textzm2 VANUATU_CLOSE_BRACKET", /* 191 */ "geocoll_textzm ::= VANUATU_OPEN_BRACKET multipolygonzm geocoll_textzm2 VANUATU_CLOSE_BRACKET", /* 192 */ "geocoll_textzm ::= VANUATU_OPEN_BRACKET VANUATU_GEOMETRYCOLLECTION_ZM geocoll_textzm geocoll_textzm2 VANUATU_CLOSE_BRACKET", /* 193 */ "geocoll_textzm2 ::=", /* 194 */ "geocoll_textzm2 ::= VANUATU_COMMA pointzm geocoll_textzm2", /* 195 */ "geocoll_textzm2 ::= VANUATU_COMMA linestringzm geocoll_textzm2", /* 196 */ "geocoll_textzm2 ::= VANUATU_COMMA polygonzm geocoll_textzm2", /* 197 */ "geocoll_textzm2 ::= VANUATU_COMMA multipointzm geocoll_textzm2", /* 198 */ "geocoll_textzm2 ::= VANUATU_COMMA multilinestringzm geocoll_textzm2", /* 199 */ "geocoll_textzm2 ::= VANUATU_COMMA multipolygonzm geocoll_textzm2", /* 200 */ "geocoll_textzm2 ::= VANUATU_COMMA VANUATU_GEOMETRYCOLLECTION_ZM geocoll_textzm geocoll_textzm2", }; #endif /* NDEBUG */ #if YYSTACKDEPTH<=0 /* ** Try to increase the size of the parser stack. */ static void yyGrowStack (yyParser * p) { int newSize; yyStackEntry *pNew; newSize = p->yystksz * 2 + 100; pNew = realloc (p->yystack, newSize * sizeof (pNew[0])); if (pNew) { p->yystack = pNew; p->yystksz = newSize; #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sStack grows to %d entries!\n", yyTracePrompt, p->yystksz); } #endif } } #endif /* ** This function allocates a new parser. ** The only argument is a pointer to a function which works like ** malloc. ** ** Inputs: ** A pointer to the function used to allocate memory. ** ** Outputs: ** A pointer to a parser. This pointer is used in subsequent calls ** to Parse and ParseFree. */ void * ParseAlloc (void *(*mallocProc) (size_t)) { yyParser *pParser; pParser = (yyParser *) (*mallocProc) ((size_t) sizeof (yyParser)); if (pParser) { pParser->yyidx = -1; #ifdef YYTRACKMAXSTACKDEPTH pParser->yyidxMax = 0; #endif #if YYSTACKDEPTH<=0 pParser->yystack = NULL; pParser->yystksz = 0; yyGrowStack (pParser); #endif } return pParser; } /* The following function deletes the value associated with a ** symbol. The symbol can be either a terminal or nonterminal. ** "yymajor" is the symbol code, and "yypminor" is a pointer to ** the value. */ static void yy_destructor (yyParser * yypParser, /* The parser */ YYCODETYPE yymajor, /* Type code for object to destroy */ YYMINORTYPE * yypminor /* The object to be destroyed */ ) { ParseARG_FETCH; switch (yymajor) { /* Here is inserted the actions which take place when a ** terminal or non-terminal is destroyed. This can happen ** when the symbol is popped from the stack during a ** reduce or during error processing or when a parser is ** being destroyed before it is finished parsing. ** ** Note: during a reduce, the only symbols destroyed are those ** which appear on the RHS of the rule, but which are not used ** inside the C code. */ default: break; /* If no destructor action specified: do nothing */ } } /* ** Pop the parser's stack once. ** ** If there is a destructor routine associated with the token which ** is popped from the stack, then call it. ** ** Return the major token number for the symbol popped. */ static int yy_pop_parser_stack (yyParser * pParser) { YYCODETYPE yymajor; yyStackEntry *yytos = &pParser->yystack[pParser->yyidx]; if (pParser->yyidx < 0) return 0; #ifndef NDEBUG if (yyTraceFILE && pParser->yyidx >= 0) { fprintf (yyTraceFILE, "%sPopping %s\n", yyTracePrompt, yyTokenName[yytos->major]); } #endif yymajor = yytos->major; yy_destructor (pParser, yymajor, &yytos->minor); pParser->yyidx--; return yymajor; } /* ** Deallocate and destroy a parser. Destructors are all called for ** all stack elements before shutting the parser down. ** ** Inputs: **
    **
  • A pointer to the parser. This should be a pointer ** obtained from ParseAlloc. **
  • A pointer to a function used to reclaim memory obtained ** from malloc. **
*/ void ParseFree (void *p, /* The parser to be deleted */ void (*freeProc) (void *) /* Function used to reclaim memory */ ) { yyParser *pParser = (yyParser *) p; if (pParser == 0) return; while (pParser->yyidx >= 0) yy_pop_parser_stack (pParser); #if YYSTACKDEPTH<=0 free (pParser->yystack); #endif (*freeProc) ((void *) pParser); } /* ** Return the peak depth of the stack for a parser. */ #ifdef YYTRACKMAXSTACKDEPTH int ParseStackPeak (void *p) { yyParser *pParser = (yyParser *) p; return pParser->yyidxMax; } #endif /* ** Find the appropriate action for a parser given the terminal ** look-ahead token iLookAhead. ** ** If the look-ahead token is YYNOCODE, then check to see if the action is ** independent of the look-ahead. If it is, return the action, otherwise ** return YY_NO_ACTION. */ static int yy_find_shift_action (yyParser * pParser, /* The parser */ YYCODETYPE iLookAhead /* The look-ahead token */ ) { int i; int stateno = pParser->yystack[pParser->yyidx].stateno; if (stateno > YY_SHIFT_MAX || (i = yy_shift_ofst[stateno]) == YY_SHIFT_USE_DFLT) { return yy_default[stateno]; } assert (iLookAhead != YYNOCODE); i += iLookAhead; if (i < 0 || i >= YY_SZ_ACTTAB || yy_lookahead[i] != iLookAhead) { if (iLookAhead > 0) { #ifdef YYFALLBACK YYCODETYPE iFallback; /* Fallback token */ if (iLookAhead < sizeof (yyFallback) / sizeof (yyFallback[0]) && (iFallback = yyFallback[iLookAhead]) != 0) { #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sFALLBACK %s => %s\n", yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[iFallback]); } #endif return yy_find_shift_action (pParser, iFallback); } #endif #ifdef YYWILDCARD { int j = i - iLookAhead + YYWILDCARD; if (j >= 0 && j < YY_SZ_ACTTAB && yy_lookahead[j] == YYWILDCARD) { #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sWILDCARD %s => %s\n", yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[YYWILDCARD]); } #endif /* NDEBUG */ return yy_action[j]; } } #endif /* YYWILDCARD */ } return yy_default[stateno]; } else { return yy_action[i]; } } /* ** Find the appropriate action for a parser given the non-terminal ** look-ahead token iLookAhead. ** ** If the look-ahead token is YYNOCODE, then check to see if the action is ** independent of the look-ahead. If it is, return the action, otherwise ** return YY_NO_ACTION. */ static int yy_find_reduce_action (int stateno, /* Current state number */ YYCODETYPE iLookAhead /* The look-ahead token */ ) { int i; #ifdef YYERRORSYMBOL if (stateno > YY_REDUCE_MAX) { return yy_default[stateno]; } #else assert (stateno <= YY_REDUCE_MAX); #endif i = yy_reduce_ofst[stateno]; assert (i != YY_REDUCE_USE_DFLT); assert (iLookAhead != YYNOCODE); i += iLookAhead; #ifdef YYERRORSYMBOL if (i < 0 || i >= YY_SZ_ACTTAB || yy_lookahead[i] != iLookAhead) { return yy_default[stateno]; } #else assert (i >= 0 && i < YY_SZ_ACTTAB); assert (yy_lookahead[i] == iLookAhead); #endif return yy_action[i]; } /* ** The following routine is called if the stack overflows. */ static void yyStackOverflow (yyParser * yypParser, YYMINORTYPE * yypMinor) { ParseARG_FETCH; yypParser->yyidx--; #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sStack Overflow!\n", yyTracePrompt); } #endif while (yypParser->yyidx >= 0) yy_pop_parser_stack (yypParser); /* Here code is inserted which will execute if the parser ** stack every overflows */ spatialite_e ("Giving up. Parser stack overflow\n"); ParseARG_STORE; /* Suppress warning about unused %extra_argument var */ } /* ** Perform a shift action. */ static void yy_shift (yyParser * yypParser, /* The parser to be shifted */ int yyNewState, /* The new state to shift in */ int yyMajor, /* The major token to shift in */ YYMINORTYPE * yypMinor /* Pointer to the minor token to shift in */ ) { yyStackEntry *yytos; yypParser->yyidx++; #ifdef YYTRACKMAXSTACKDEPTH if (yypParser->yyidx > yypParser->yyidxMax) { yypParser->yyidxMax = yypParser->yyidx; } #endif #if YYSTACKDEPTH>0 if (yypParser->yyidx >= YYSTACKDEPTH) { yyStackOverflow (yypParser, yypMinor); return; } #else if (yypParser->yyidx >= yypParser->yystksz) { yyGrowStack (yypParser); if (yypParser->yyidx >= yypParser->yystksz) { yyStackOverflow (yypParser, yypMinor); return; } } #endif yytos = &yypParser->yystack[yypParser->yyidx]; yytos->stateno = (YYACTIONTYPE) yyNewState; yytos->major = (YYCODETYPE) yyMajor; yytos->minor = *yypMinor; #ifndef NDEBUG if (yyTraceFILE && yypParser->yyidx > 0) { int i; fprintf (yyTraceFILE, "%sShift %d\n", yyTracePrompt, yyNewState); fprintf (yyTraceFILE, "%sStack:", yyTracePrompt); for (i = 1; i <= yypParser->yyidx; i++) fprintf (yyTraceFILE, " %s", yyTokenName[yypParser->yystack[i].major]); fprintf (yyTraceFILE, "\n"); } #endif } /* The following table contains information about every rule that ** is used during the reduce. */ static const struct { YYCODETYPE lhs; /* Symbol on the left-hand side of the rule */ unsigned char nrhs; /* Number of right-hand side symbols in the rule */ } yyRuleInfo[] = { { 35, 1}, { 36, 0}, { 36, 3}, { 37, 1}, { 38, 1}, { 38, 1}, { 38, 1}, { 38, 1}, { 39, 1}, { 39, 1}, { 39, 1}, { 39, 1}, { 39, 1}, { 39, 1}, { 39, 1}, { 40, 1}, { 40, 1}, { 40, 1}, { 40, 1}, { 40, 1}, { 40, 1}, { 40, 1}, { 41, 1}, { 41, 1}, { 41, 1}, { 41, 1}, { 41, 1}, { 41, 1}, { 41, 1}, { 42, 1}, { 42, 1}, { 42, 1}, { 42, 1}, { 42, 1}, { 42, 1}, { 42, 1}, { 43, 4}, { 57, 4}, { 50, 4}, { 64, 4}, { 75, 4}, { 77, 5}, { 78, 5}, { 79, 6}, { 71, 2}, { 72, 3}, { 73, 3}, { 74, 4}, { 76, 1}, { 80, 0}, { 80, 3}, { 81, 0}, { 81, 3}, { 82, 0}, { 82, 3}, { 83, 0}, { 83, 3}, { 84, 0}, { 84, 3}, { 85, 0}, { 85, 3}, { 86, 0}, { 86, 3}, { 87, 0}, { 87, 3}, { 44, 2}, { 58, 2}, { 51, 2}, { 65, 2}, { 88, 6}, { 89, 6}, { 90, 6}, { 91, 6}, { 45, 2}, { 59, 2}, { 52, 2}, { 66, 2}, { 92, 4}, { 93, 4}, { 94, 4}, { 95, 4}, { 96, 10}, { 97, 0}, { 97, 3}, { 98, 10}, { 99, 0}, { 99, 3}, { 100, 10}, { 101, 0}, { 101, 3}, { 102, 10}, { 103, 0}, { 103, 3}, { 46, 2}, { 60, 2}, { 53, 2}, { 67, 2}, { 104, 4}, { 105, 4}, { 106, 4}, { 107, 4}, { 104, 4}, { 105, 4}, { 106, 4}, { 107, 4}, { 47, 2}, { 61, 2}, { 54, 2}, { 68, 2}, { 108, 4}, { 112, 0}, { 112, 3}, { 109, 4}, { 113, 0}, { 113, 3}, { 110, 4}, { 114, 0}, { 114, 3}, { 111, 4}, { 115, 0}, { 115, 3}, { 48, 2}, { 62, 2}, { 55, 2}, { 69, 2}, { 116, 4}, { 120, 0}, { 120, 3}, { 117, 4}, { 121, 0}, { 121, 3}, { 118, 4}, { 122, 0}, { 122, 3}, { 119, 4}, { 123, 0}, { 123, 3}, { 49, 2}, { 63, 2}, { 56, 2}, { 70, 2}, { 124, 4}, { 124, 4}, { 124, 4}, { 124, 4}, { 124, 4}, { 124, 4}, { 124, 5}, { 128, 0}, { 128, 3}, { 128, 3}, { 128, 3}, { 128, 3}, { 128, 3}, { 128, 3}, { 128, 4}, { 125, 4}, { 125, 4}, { 125, 4}, { 125, 4}, { 125, 4}, { 125, 4}, { 125, 5}, { 129, 0}, { 129, 3}, { 129, 3}, { 129, 3}, { 129, 3}, { 129, 3}, { 129, 3}, { 129, 4}, { 126, 4}, { 126, 4}, { 126, 4}, { 126, 4}, { 126, 4}, { 126, 4}, { 126, 5}, { 130, 0}, { 130, 3}, { 130, 3}, { 130, 3}, { 130, 3}, { 130, 3}, { 130, 3}, { 130, 4}, { 127, 4}, { 127, 4}, { 127, 4}, { 127, 4}, { 127, 4}, { 127, 4}, { 127, 5}, { 131, 0}, { 131, 3}, { 131, 3}, { 131, 3}, { 131, 3}, { 131, 3}, { 131, 3}, { 131, 4},}; static void yy_accept (yyParser *); /* Forward Declaration */ /* ** Perform a reduce action and the shift that must immediately ** follow the reduce. */ static void yy_reduce (yyParser * yypParser, /* The parser */ int yyruleno /* Number of the rule by which to reduce */ ) { int yygoto; /* The next state */ int yyact; /* The next action */ YYMINORTYPE yygotominor; /* The LHS of the rule reduced */ yyStackEntry *yymsp; /* The top of the parser's stack */ int yysize; /* Amount to pop the stack */ ParseARG_FETCH; yymsp = &yypParser->yystack[yypParser->yyidx]; #ifndef NDEBUG if (yyTraceFILE && yyruleno >= 0 && yyruleno < (int) (sizeof (yyRuleName) / sizeof (yyRuleName[0]))) { fprintf (yyTraceFILE, "%sReduce [%s].\n", yyTracePrompt, yyRuleName[yyruleno]); } #endif /* NDEBUG */ /* Silence complaints from purify about yygotominor being uninitialized ** in some cases when it is copied into the stack after the following ** switch. yygotominor is uninitialized when a rule reduces that does ** not set the value of its left-hand side nonterminal. Leaving the ** value of the nonterminal uninitialized is utterly harmless as long ** as the value is never used. So really the only thing this code ** accomplishes is to quieten purify. ** ** 2007-01-16: The wireshark project (www.wireshark.org) reports that ** without this code, their parser segfaults. I'm not sure what there ** parser is doing to make this happen. This is the second bug report ** from wireshark this week. Clearly they are stressing Lemon in ways ** that it has not been previously stressed... (SQLite ticket #2172) */ /*memset(&yygotominor, 0, sizeof(yygotominor)); */ yygotominor = yyzerominor; switch (yyruleno) { /* Beginning here are the reduction cases. A typical example ** follows: ** case 0: ** #line ** { ... } // User supplied code ** #line ** break; */ case 8: /* geo_text ::= point */ case 9: /* geo_text ::= linestring */ yytestcase (yyruleno == 9); case 10: /* geo_text ::= polygon */ yytestcase (yyruleno == 10); case 11: /* geo_text ::= multipoint */ yytestcase (yyruleno == 11); case 12: /* geo_text ::= multilinestring */ yytestcase (yyruleno == 12); case 13: /* geo_text ::= multipolygon */ yytestcase (yyruleno == 13); case 14: /* geo_text ::= geocoll */ yytestcase (yyruleno == 14); case 15: /* geo_textz ::= pointz */ yytestcase (yyruleno == 15); case 16: /* geo_textz ::= linestringz */ yytestcase (yyruleno == 16); case 17: /* geo_textz ::= polygonz */ yytestcase (yyruleno == 17); case 18: /* geo_textz ::= multipointz */ yytestcase (yyruleno == 18); case 19: /* geo_textz ::= multilinestringz */ yytestcase (yyruleno == 19); case 20: /* geo_textz ::= multipolygonz */ yytestcase (yyruleno == 20); case 21: /* geo_textz ::= geocollz */ yytestcase (yyruleno == 21); case 22: /* geo_textm ::= pointm */ yytestcase (yyruleno == 22); case 23: /* geo_textm ::= linestringm */ yytestcase (yyruleno == 23); case 24: /* geo_textm ::= polygonm */ yytestcase (yyruleno == 24); case 25: /* geo_textm ::= multipointm */ yytestcase (yyruleno == 25); case 26: /* geo_textm ::= multilinestringm */ yytestcase (yyruleno == 26); case 27: /* geo_textm ::= multipolygonm */ yytestcase (yyruleno == 27); case 28: /* geo_textm ::= geocollm */ yytestcase (yyruleno == 28); case 29: /* geo_textzm ::= pointzm */ yytestcase (yyruleno == 29); case 30: /* geo_textzm ::= linestringzm */ yytestcase (yyruleno == 30); case 31: /* geo_textzm ::= polygonzm */ yytestcase (yyruleno == 31); case 32: /* geo_textzm ::= multipointzm */ yytestcase (yyruleno == 32); case 33: /* geo_textzm ::= multilinestringzm */ yytestcase (yyruleno == 33); case 34: /* geo_textzm ::= multipolygonzm */ yytestcase (yyruleno == 34); case 35: /* geo_textzm ::= geocollzm */ yytestcase (yyruleno == 35); { p_data->result = yymsp[0].minor.yy0; } break; case 36: /* point ::= VANUATU_POINT VANUATU_OPEN_BRACKET point_coordxy VANUATU_CLOSE_BRACKET */ { yygotominor.yy0 = vanuatu_buildGeomFromPoint (p_data, (gaiaPointPtr) yymsp[-1].minor. yy0); } break; case 37: /* pointm ::= VANUATU_POINT_M VANUATU_OPEN_BRACKET point_coordxym VANUATU_CLOSE_BRACKET */ case 38: /* pointz ::= VANUATU_POINT_Z VANUATU_OPEN_BRACKET point_coordxyz VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 38); case 39: /* pointzm ::= VANUATU_POINT_ZM VANUATU_OPEN_BRACKET point_coordxyzm VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 39); { yygotominor.yy0 = vanuatu_buildGeomFromPoint (p_data, (gaiaPointPtr) yymsp[-1].minor. yy0); } break; case 40: /* point_brkt_coordxy ::= VANUATU_OPEN_BRACKET coord coord VANUATU_CLOSE_BRACKET */ { yygotominor.yy0 = (void *) vanuatu_point_xy (p_data, (double *) yymsp[-2].minor.yy0, (double *) yymsp[-1].minor.yy0); } break; case 41: /* point_brkt_coordxym ::= VANUATU_OPEN_BRACKET coord coord coord VANUATU_CLOSE_BRACKET */ { yygotominor.yy0 = (void *) vanuatu_point_xym (p_data, (double *) yymsp[-3].minor.yy0, (double *) yymsp[-2].minor.yy0, (double *) yymsp[-1].minor.yy0); } break; case 42: /* point_brkt_coordxyz ::= VANUATU_OPEN_BRACKET coord coord coord VANUATU_CLOSE_BRACKET */ { yygotominor.yy0 = (void *) vanuatu_point_xyz (p_data, (double *) yymsp[-3].minor.yy0, (double *) yymsp[-2].minor.yy0, (double *) yymsp[-1].minor.yy0); } break; case 43: /* point_brkt_coordxyzm ::= VANUATU_OPEN_BRACKET coord coord coord coord VANUATU_CLOSE_BRACKET */ { yygotominor.yy0 = (void *) vanuatu_point_xyzm (p_data, (double *) yymsp[-4].minor.yy0, (double *) yymsp[-3].minor.yy0, (double *) yymsp[-2].minor.yy0, (double *) yymsp[-1].minor.yy0); } break; case 44: /* point_coordxy ::= coord coord */ { yygotominor.yy0 = (void *) vanuatu_point_xy (p_data, (double *) yymsp[-1].minor.yy0, (double *) yymsp[0].minor.yy0); } break; case 45: /* point_coordxym ::= coord coord coord */ { yygotominor.yy0 = (void *) vanuatu_point_xym (p_data, (double *) yymsp[-2].minor.yy0, (double *) yymsp[-1].minor.yy0, (double *) yymsp[0].minor.yy0); } break; case 46: /* point_coordxyz ::= coord coord coord */ { yygotominor.yy0 = (void *) vanuatu_point_xyz (p_data, (double *) yymsp[-2].minor.yy0, (double *) yymsp[-1].minor.yy0, (double *) yymsp[0].minor.yy0); } break; case 47: /* point_coordxyzm ::= coord coord coord coord */ { yygotominor.yy0 = (void *) vanuatu_point_xyzm (p_data, (double *) yymsp[-3].minor.yy0, (double *) yymsp[-2].minor.yy0, (double *) yymsp[-1].minor.yy0, (double *) yymsp[0].minor.yy0); } break; case 48: /* coord ::= VANUATU_NUM */ case 93: /* multipoint ::= VANUATU_MULTIPOINT multipoint_text */ yytestcase (yyruleno == 93); case 94: /* multipointm ::= VANUATU_MULTIPOINT_M multipoint_textm */ yytestcase (yyruleno == 94); case 95: /* multipointz ::= VANUATU_MULTIPOINT_Z multipoint_textz */ yytestcase (yyruleno == 95); case 96: /* multipointzm ::= VANUATU_MULTIPOINT_ZM multipoint_textzm */ yytestcase (yyruleno == 96); case 105: /* multilinestring ::= VANUATU_MULTILINESTRING multilinestring_text */ yytestcase (yyruleno == 105); case 106: /* multilinestringm ::= VANUATU_MULTILINESTRING_M multilinestring_textm */ yytestcase (yyruleno == 106); case 107: /* multilinestringz ::= VANUATU_MULTILINESTRING_Z multilinestring_textz */ yytestcase (yyruleno == 107); case 108: /* multilinestringzm ::= VANUATU_MULTILINESTRING_ZM multilinestring_textzm */ yytestcase (yyruleno == 108); case 121: /* multipolygon ::= VANUATU_MULTIPOLYGON multipolygon_text */ yytestcase (yyruleno == 121); case 122: /* multipolygonm ::= VANUATU_MULTIPOLYGON_M multipolygon_textm */ yytestcase (yyruleno == 122); case 123: /* multipolygonz ::= VANUATU_MULTIPOLYGON_Z multipolygon_textz */ yytestcase (yyruleno == 123); case 124: /* multipolygonzm ::= VANUATU_MULTIPOLYGON_ZM multipolygon_textzm */ yytestcase (yyruleno == 124); case 137: /* geocoll ::= VANUATU_GEOMETRYCOLLECTION geocoll_text */ yytestcase (yyruleno == 137); case 138: /* geocollm ::= VANUATU_GEOMETRYCOLLECTION_M geocoll_textm */ yytestcase (yyruleno == 138); case 139: /* geocollz ::= VANUATU_GEOMETRYCOLLECTION_Z geocoll_textz */ yytestcase (yyruleno == 139); case 140: /* geocollzm ::= VANUATU_GEOMETRYCOLLECTION_ZM geocoll_textzm */ yytestcase (yyruleno == 140); { yygotominor.yy0 = yymsp[0].minor.yy0; } break; case 49: /* extra_brkt_pointsxy ::= */ case 51: /* extra_brkt_pointsxym ::= */ yytestcase (yyruleno == 51); case 53: /* extra_brkt_pointsxyz ::= */ yytestcase (yyruleno == 53); case 55: /* extra_brkt_pointsxyzm ::= */ yytestcase (yyruleno == 55); case 57: /* extra_pointsxy ::= */ yytestcase (yyruleno == 57); case 59: /* extra_pointsxym ::= */ yytestcase (yyruleno == 59); case 61: /* extra_pointsxyz ::= */ yytestcase (yyruleno == 61); case 63: /* extra_pointsxyzm ::= */ yytestcase (yyruleno == 63); case 82: /* extra_rings ::= */ yytestcase (yyruleno == 82); case 85: /* extra_ringsm ::= */ yytestcase (yyruleno == 85); case 88: /* extra_ringsz ::= */ yytestcase (yyruleno == 88); case 91: /* extra_ringszm ::= */ yytestcase (yyruleno == 91); case 110: /* multilinestring_text2 ::= */ yytestcase (yyruleno == 110); case 113: /* multilinestring_textm2 ::= */ yytestcase (yyruleno == 113); case 116: /* multilinestring_textz2 ::= */ yytestcase (yyruleno == 116); case 119: /* multilinestring_textzm2 ::= */ yytestcase (yyruleno == 119); case 126: /* multipolygon_text2 ::= */ yytestcase (yyruleno == 126); case 129: /* multipolygon_textm2 ::= */ yytestcase (yyruleno == 129); case 132: /* multipolygon_textz2 ::= */ yytestcase (yyruleno == 132); case 135: /* multipolygon_textzm2 ::= */ yytestcase (yyruleno == 135); case 148: /* geocoll_text2 ::= */ yytestcase (yyruleno == 148); case 163: /* geocoll_textm2 ::= */ yytestcase (yyruleno == 163); case 178: /* geocoll_textz2 ::= */ yytestcase (yyruleno == 178); case 193: /* geocoll_textzm2 ::= */ yytestcase (yyruleno == 193); { yygotominor.yy0 = NULL; } break; case 50: /* extra_brkt_pointsxy ::= VANUATU_COMMA point_brkt_coordxy extra_brkt_pointsxy */ case 52: /* extra_brkt_pointsxym ::= VANUATU_COMMA point_brkt_coordxym extra_brkt_pointsxym */ yytestcase (yyruleno == 52); case 54: /* extra_brkt_pointsxyz ::= VANUATU_COMMA point_brkt_coordxyz extra_brkt_pointsxyz */ yytestcase (yyruleno == 54); case 56: /* extra_brkt_pointsxyzm ::= VANUATU_COMMA point_brkt_coordxyzm extra_brkt_pointsxyzm */ yytestcase (yyruleno == 56); case 58: /* extra_pointsxy ::= VANUATU_COMMA point_coordxy extra_pointsxy */ yytestcase (yyruleno == 58); case 60: /* extra_pointsxym ::= VANUATU_COMMA point_coordxym extra_pointsxym */ yytestcase (yyruleno == 60); case 62: /* extra_pointsxyz ::= VANUATU_COMMA point_coordxyz extra_pointsxyz */ yytestcase (yyruleno == 62); case 64: /* extra_pointsxyzm ::= VANUATU_COMMA point_coordxyzm extra_pointsxyzm */ yytestcase (yyruleno == 64); { ((gaiaPointPtr) yymsp[-1].minor.yy0)->Next = (gaiaPointPtr) yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } break; case 65: /* linestring ::= VANUATU_LINESTRING linestring_text */ case 66: /* linestringm ::= VANUATU_LINESTRING_M linestring_textm */ yytestcase (yyruleno == 66); case 67: /* linestringz ::= VANUATU_LINESTRING_Z linestring_textz */ yytestcase (yyruleno == 67); case 68: /* linestringzm ::= VANUATU_LINESTRING_ZM linestring_textzm */ yytestcase (yyruleno == 68); { yygotominor.yy0 = vanuatu_buildGeomFromLinestring (p_data, (gaiaLinestringPtr) yymsp[0]. minor.yy0); } break; case 69: /* linestring_text ::= VANUATU_OPEN_BRACKET point_coordxy VANUATU_COMMA point_coordxy extra_pointsxy VANUATU_CLOSE_BRACKET */ { ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = (gaiaPointPtr) yymsp[-2].minor.yy0; yygotominor.yy0 = (void *) vanuatu_linestring_xy (p_data, (gaiaPointPtr) yymsp[-4]. minor.yy0); } break; case 70: /* linestring_textm ::= VANUATU_OPEN_BRACKET point_coordxym VANUATU_COMMA point_coordxym extra_pointsxym VANUATU_CLOSE_BRACKET */ { ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = (gaiaPointPtr) yymsp[-2].minor.yy0; yygotominor.yy0 = (void *) vanuatu_linestring_xym (p_data, (gaiaPointPtr) yymsp[-4]. minor.yy0); } break; case 71: /* linestring_textz ::= VANUATU_OPEN_BRACKET point_coordxyz VANUATU_COMMA point_coordxyz extra_pointsxyz VANUATU_CLOSE_BRACKET */ { ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = (gaiaPointPtr) yymsp[-2].minor.yy0; yygotominor.yy0 = (void *) vanuatu_linestring_xyz (p_data, (gaiaPointPtr) yymsp[-4]. minor.yy0); } break; case 72: /* linestring_textzm ::= VANUATU_OPEN_BRACKET point_coordxyzm VANUATU_COMMA point_coordxyzm extra_pointsxyzm VANUATU_CLOSE_BRACKET */ { ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = (gaiaPointPtr) yymsp[-2].minor.yy0; yygotominor.yy0 = (void *) vanuatu_linestring_xyzm (p_data, (gaiaPointPtr) yymsp[-4]. minor.yy0); } break; case 73: /* polygon ::= VANUATU_POLYGON polygon_text */ case 74: /* polygonm ::= VANUATU_POLYGON_M polygon_textm */ yytestcase (yyruleno == 74); case 75: /* polygonz ::= VANUATU_POLYGON_Z polygon_textz */ yytestcase (yyruleno == 75); case 76: /* polygonzm ::= VANUATU_POLYGON_ZM polygon_textzm */ yytestcase (yyruleno == 76); { yygotominor.yy0 = vanuatu_buildGeomFromPolygon (p_data, (gaiaPolygonPtr) yymsp[0].minor. yy0); } break; case 77: /* polygon_text ::= VANUATU_OPEN_BRACKET ring extra_rings VANUATU_CLOSE_BRACKET */ { ((gaiaRingPtr) yymsp[-2].minor.yy0)->Next = (gaiaRingPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) vanuatu_polygon_xy (p_data, (gaiaRingPtr) yymsp[-2].minor. yy0); } break; case 78: /* polygon_textm ::= VANUATU_OPEN_BRACKET ringm extra_ringsm VANUATU_CLOSE_BRACKET */ { ((gaiaRingPtr) yymsp[-2].minor.yy0)->Next = (gaiaRingPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) vanuatu_polygon_xym (p_data, (gaiaRingPtr) yymsp[-2].minor. yy0); } break; case 79: /* polygon_textz ::= VANUATU_OPEN_BRACKET ringz extra_ringsz VANUATU_CLOSE_BRACKET */ { ((gaiaRingPtr) yymsp[-2].minor.yy0)->Next = (gaiaRingPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) vanuatu_polygon_xyz (p_data, (gaiaRingPtr) yymsp[-2].minor. yy0); } break; case 80: /* polygon_textzm ::= VANUATU_OPEN_BRACKET ringzm extra_ringszm VANUATU_CLOSE_BRACKET */ { ((gaiaRingPtr) yymsp[-2].minor.yy0)->Next = (gaiaRingPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) vanuatu_polygon_xyzm (p_data, (gaiaRingPtr) yymsp[-2].minor. yy0); } break; case 81: /* ring ::= VANUATU_OPEN_BRACKET point_coordxy VANUATU_COMMA point_coordxy VANUATU_COMMA point_coordxy VANUATU_COMMA point_coordxy extra_pointsxy VANUATU_CLOSE_BRACKET */ { ((gaiaPointPtr) yymsp[-8].minor.yy0)->Next = (gaiaPointPtr) yymsp[-6].minor.yy0; ((gaiaPointPtr) yymsp[-6].minor.yy0)->Next = (gaiaPointPtr) yymsp[-4].minor.yy0; ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = (gaiaPointPtr) yymsp[-2].minor.yy0; ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) vanuatu_ring_xy (p_data, (gaiaPointPtr) yymsp[-8].minor.yy0); } break; case 83: /* extra_rings ::= VANUATU_COMMA ring extra_rings */ case 86: /* extra_ringsm ::= VANUATU_COMMA ringm extra_ringsm */ yytestcase (yyruleno == 86); case 89: /* extra_ringsz ::= VANUATU_COMMA ringz extra_ringsz */ yytestcase (yyruleno == 89); case 92: /* extra_ringszm ::= VANUATU_COMMA ringzm extra_ringszm */ yytestcase (yyruleno == 92); { ((gaiaRingPtr) yymsp[-1].minor.yy0)->Next = (gaiaRingPtr) yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } break; case 84: /* ringm ::= VANUATU_OPEN_BRACKET point_coordxym VANUATU_COMMA point_coordxym VANUATU_COMMA point_coordxym VANUATU_COMMA point_coordxym extra_pointsxym VANUATU_CLOSE_BRACKET */ { ((gaiaPointPtr) yymsp[-8].minor.yy0)->Next = (gaiaPointPtr) yymsp[-6].minor.yy0; ((gaiaPointPtr) yymsp[-6].minor.yy0)->Next = (gaiaPointPtr) yymsp[-4].minor.yy0; ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = (gaiaPointPtr) yymsp[-2].minor.yy0; ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) vanuatu_ring_xym (p_data, (gaiaPointPtr) yymsp[-8].minor. yy0); } break; case 87: /* ringz ::= VANUATU_OPEN_BRACKET point_coordxyz VANUATU_COMMA point_coordxyz VANUATU_COMMA point_coordxyz VANUATU_COMMA point_coordxyz extra_pointsxyz VANUATU_CLOSE_BRACKET */ { ((gaiaPointPtr) yymsp[-8].minor.yy0)->Next = (gaiaPointPtr) yymsp[-6].minor.yy0; ((gaiaPointPtr) yymsp[-6].minor.yy0)->Next = (gaiaPointPtr) yymsp[-4].minor.yy0; ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = (gaiaPointPtr) yymsp[-2].minor.yy0; ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) vanuatu_ring_xyz (p_data, (gaiaPointPtr) yymsp[-8].minor. yy0); } break; case 90: /* ringzm ::= VANUATU_OPEN_BRACKET point_coordxyzm VANUATU_COMMA point_coordxyzm VANUATU_COMMA point_coordxyzm VANUATU_COMMA point_coordxyzm extra_pointsxyzm VANUATU_CLOSE_BRACKET */ { ((gaiaPointPtr) yymsp[-8].minor.yy0)->Next = (gaiaPointPtr) yymsp[-6].minor.yy0; ((gaiaPointPtr) yymsp[-6].minor.yy0)->Next = (gaiaPointPtr) yymsp[-4].minor.yy0; ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = (gaiaPointPtr) yymsp[-2].minor.yy0; ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) vanuatu_ring_xyzm (p_data, (gaiaPointPtr) yymsp[-8].minor. yy0); } break; case 97: /* multipoint_text ::= VANUATU_OPEN_BRACKET point_coordxy extra_pointsxy VANUATU_CLOSE_BRACKET */ case 101: /* multipoint_text ::= VANUATU_OPEN_BRACKET point_brkt_coordxy extra_brkt_pointsxy VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 101); { ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) vanuatu_multipoint_xy (p_data, (gaiaPointPtr) yymsp[-2]. minor.yy0); } break; case 98: /* multipoint_textm ::= VANUATU_OPEN_BRACKET point_coordxym extra_pointsxym VANUATU_CLOSE_BRACKET */ case 102: /* multipoint_textm ::= VANUATU_OPEN_BRACKET point_brkt_coordxym extra_brkt_pointsxym VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 102); { ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) vanuatu_multipoint_xym (p_data, (gaiaPointPtr) yymsp[-2]. minor.yy0); } break; case 99: /* multipoint_textz ::= VANUATU_OPEN_BRACKET point_coordxyz extra_pointsxyz VANUATU_CLOSE_BRACKET */ case 103: /* multipoint_textz ::= VANUATU_OPEN_BRACKET point_brkt_coordxyz extra_brkt_pointsxyz VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 103); { ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) vanuatu_multipoint_xyz (p_data, (gaiaPointPtr) yymsp[-2]. minor.yy0); } break; case 100: /* multipoint_textzm ::= VANUATU_OPEN_BRACKET point_coordxyzm extra_pointsxyzm VANUATU_CLOSE_BRACKET */ case 104: /* multipoint_textzm ::= VANUATU_OPEN_BRACKET point_brkt_coordxyzm extra_brkt_pointsxyzm VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 104); { ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) vanuatu_multipoint_xyzm (p_data, (gaiaPointPtr) yymsp[-2]. minor.yy0); } break; case 109: /* multilinestring_text ::= VANUATU_OPEN_BRACKET linestring_text multilinestring_text2 VANUATU_CLOSE_BRACKET */ { ((gaiaLinestringPtr) yymsp[-2].minor.yy0)->Next = (gaiaLinestringPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) vanuatu_multilinestring_xy (p_data, (gaiaLinestringPtr) yymsp[-2].minor.yy0); } break; case 111: /* multilinestring_text2 ::= VANUATU_COMMA linestring_text multilinestring_text2 */ case 114: /* multilinestring_textm2 ::= VANUATU_COMMA linestring_textm multilinestring_textm2 */ yytestcase (yyruleno == 114); case 117: /* multilinestring_textz2 ::= VANUATU_COMMA linestring_textz multilinestring_textz2 */ yytestcase (yyruleno == 117); case 120: /* multilinestring_textzm2 ::= VANUATU_COMMA linestring_textzm multilinestring_textzm2 */ yytestcase (yyruleno == 120); { ((gaiaLinestringPtr) yymsp[-1].minor.yy0)->Next = (gaiaLinestringPtr) yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } break; case 112: /* multilinestring_textm ::= VANUATU_OPEN_BRACKET linestring_textm multilinestring_textm2 VANUATU_CLOSE_BRACKET */ { ((gaiaLinestringPtr) yymsp[-2].minor.yy0)->Next = (gaiaLinestringPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) vanuatu_multilinestring_xym (p_data, (gaiaLinestringPtr) yymsp[-2].minor.yy0); } break; case 115: /* multilinestring_textz ::= VANUATU_OPEN_BRACKET linestring_textz multilinestring_textz2 VANUATU_CLOSE_BRACKET */ { ((gaiaLinestringPtr) yymsp[-2].minor.yy0)->Next = (gaiaLinestringPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) vanuatu_multilinestring_xyz (p_data, (gaiaLinestringPtr) yymsp[-2].minor.yy0); } break; case 118: /* multilinestring_textzm ::= VANUATU_OPEN_BRACKET linestring_textzm multilinestring_textzm2 VANUATU_CLOSE_BRACKET */ { ((gaiaLinestringPtr) yymsp[-2].minor.yy0)->Next = (gaiaLinestringPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) vanuatu_multilinestring_xyzm (p_data, (gaiaLinestringPtr) yymsp[-2].minor.yy0); } break; case 125: /* multipolygon_text ::= VANUATU_OPEN_BRACKET polygon_text multipolygon_text2 VANUATU_CLOSE_BRACKET */ { ((gaiaPolygonPtr) yymsp[-2].minor.yy0)->Next = (gaiaPolygonPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) vanuatu_multipolygon_xy (p_data, (gaiaPolygonPtr) yymsp[-2]. minor.yy0); } break; case 127: /* multipolygon_text2 ::= VANUATU_COMMA polygon_text multipolygon_text2 */ case 130: /* multipolygon_textm2 ::= VANUATU_COMMA polygon_textm multipolygon_textm2 */ yytestcase (yyruleno == 130); case 133: /* multipolygon_textz2 ::= VANUATU_COMMA polygon_textz multipolygon_textz2 */ yytestcase (yyruleno == 133); case 136: /* multipolygon_textzm2 ::= VANUATU_COMMA polygon_textzm multipolygon_textzm2 */ yytestcase (yyruleno == 136); { ((gaiaPolygonPtr) yymsp[-1].minor.yy0)->Next = (gaiaPolygonPtr) yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } break; case 128: /* multipolygon_textm ::= VANUATU_OPEN_BRACKET polygon_textm multipolygon_textm2 VANUATU_CLOSE_BRACKET */ { ((gaiaPolygonPtr) yymsp[-2].minor.yy0)->Next = (gaiaPolygonPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) vanuatu_multipolygon_xym (p_data, (gaiaPolygonPtr) yymsp[-2]. minor.yy0); } break; case 131: /* multipolygon_textz ::= VANUATU_OPEN_BRACKET polygon_textz multipolygon_textz2 VANUATU_CLOSE_BRACKET */ { ((gaiaPolygonPtr) yymsp[-2].minor.yy0)->Next = (gaiaPolygonPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) vanuatu_multipolygon_xyz (p_data, (gaiaPolygonPtr) yymsp[-2]. minor.yy0); } break; case 134: /* multipolygon_textzm ::= VANUATU_OPEN_BRACKET polygon_textzm multipolygon_textzm2 VANUATU_CLOSE_BRACKET */ { ((gaiaPolygonPtr) yymsp[-2].minor.yy0)->Next = (gaiaPolygonPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) vanuatu_multipolygon_xyzm (p_data, (gaiaPolygonPtr) yymsp[-2].minor.yy0); } break; case 141: /* geocoll_text ::= VANUATU_OPEN_BRACKET point geocoll_text2 VANUATU_CLOSE_BRACKET */ case 142: /* geocoll_text ::= VANUATU_OPEN_BRACKET linestring geocoll_text2 VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 142); case 143: /* geocoll_text ::= VANUATU_OPEN_BRACKET polygon geocoll_text2 VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 143); case 144: /* geocoll_text ::= VANUATU_OPEN_BRACKET multipoint geocoll_text2 VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 144); case 145: /* geocoll_text ::= VANUATU_OPEN_BRACKET multilinestring geocoll_text2 VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 145); case 146: /* geocoll_text ::= VANUATU_OPEN_BRACKET multipolygon geocoll_text2 VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 146); case 147: /* geocoll_text ::= VANUATU_OPEN_BRACKET VANUATU_GEOMETRYCOLLECTION geocoll_text geocoll_text2 VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 147); { ((gaiaGeomCollPtr) yymsp[-2].minor.yy0)->Next = (gaiaGeomCollPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) vanuatu_geomColl_xy (p_data, (gaiaGeomCollPtr) yymsp[-2]. minor.yy0); } break; case 149: /* geocoll_text2 ::= VANUATU_COMMA point geocoll_text2 */ case 150: /* geocoll_text2 ::= VANUATU_COMMA linestring geocoll_text2 */ yytestcase (yyruleno == 150); case 151: /* geocoll_text2 ::= VANUATU_COMMA polygon geocoll_text2 */ yytestcase (yyruleno == 151); case 152: /* geocoll_text2 ::= VANUATU_COMMA multipoint geocoll_text2 */ yytestcase (yyruleno == 152); case 153: /* geocoll_text2 ::= VANUATU_COMMA multilinestring geocoll_text2 */ yytestcase (yyruleno == 153); case 154: /* geocoll_text2 ::= VANUATU_COMMA multipolygon geocoll_text2 */ yytestcase (yyruleno == 154); case 155: /* geocoll_text2 ::= VANUATU_COMMA VANUATU_GEOMETRYCOLLECTION geocoll_text geocoll_text2 */ yytestcase (yyruleno == 155); case 164: /* geocoll_textm2 ::= VANUATU_COMMA pointm geocoll_textm2 */ yytestcase (yyruleno == 164); case 165: /* geocoll_textm2 ::= VANUATU_COMMA linestringm geocoll_textm2 */ yytestcase (yyruleno == 165); case 166: /* geocoll_textm2 ::= VANUATU_COMMA polygonm geocoll_textm2 */ yytestcase (yyruleno == 166); case 167: /* geocoll_textm2 ::= VANUATU_COMMA multipointm geocoll_textm2 */ yytestcase (yyruleno == 167); case 168: /* geocoll_textm2 ::= VANUATU_COMMA multilinestringm geocoll_textm2 */ yytestcase (yyruleno == 168); case 169: /* geocoll_textm2 ::= VANUATU_COMMA multipolygonm geocoll_textm2 */ yytestcase (yyruleno == 169); case 170: /* geocoll_textm2 ::= VANUATU_COMMA VANUATU_GEOMETRYCOLLECTION_M geocoll_textm geocoll_textm2 */ yytestcase (yyruleno == 170); case 179: /* geocoll_textz2 ::= VANUATU_COMMA pointz geocoll_textz2 */ yytestcase (yyruleno == 179); case 180: /* geocoll_textz2 ::= VANUATU_COMMA linestringz geocoll_textz2 */ yytestcase (yyruleno == 180); case 181: /* geocoll_textz2 ::= VANUATU_COMMA polygonz geocoll_textz2 */ yytestcase (yyruleno == 181); case 182: /* geocoll_textz2 ::= VANUATU_COMMA multipointz geocoll_textz2 */ yytestcase (yyruleno == 182); case 183: /* geocoll_textz2 ::= VANUATU_COMMA multilinestringz geocoll_textz2 */ yytestcase (yyruleno == 183); case 184: /* geocoll_textz2 ::= VANUATU_COMMA multipolygonz geocoll_textz2 */ yytestcase (yyruleno == 184); case 185: /* geocoll_textz2 ::= VANUATU_COMMA VANUATU_GEOMETRYCOLLECTION_Z geocoll_textz geocoll_textz2 */ yytestcase (yyruleno == 185); case 194: /* geocoll_textzm2 ::= VANUATU_COMMA pointzm geocoll_textzm2 */ yytestcase (yyruleno == 194); case 195: /* geocoll_textzm2 ::= VANUATU_COMMA linestringzm geocoll_textzm2 */ yytestcase (yyruleno == 195); case 196: /* geocoll_textzm2 ::= VANUATU_COMMA polygonzm geocoll_textzm2 */ yytestcase (yyruleno == 196); case 197: /* geocoll_textzm2 ::= VANUATU_COMMA multipointzm geocoll_textzm2 */ yytestcase (yyruleno == 197); case 198: /* geocoll_textzm2 ::= VANUATU_COMMA multilinestringzm geocoll_textzm2 */ yytestcase (yyruleno == 198); case 199: /* geocoll_textzm2 ::= VANUATU_COMMA multipolygonzm geocoll_textzm2 */ yytestcase (yyruleno == 199); case 200: /* geocoll_textzm2 ::= VANUATU_COMMA VANUATU_GEOMETRYCOLLECTION_ZM geocoll_textzm geocoll_textzm2 */ yytestcase (yyruleno == 200); { ((gaiaGeomCollPtr) yymsp[-1].minor.yy0)->Next = (gaiaGeomCollPtr) yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } break; case 156: /* geocoll_textm ::= VANUATU_OPEN_BRACKET pointm geocoll_textm2 VANUATU_CLOSE_BRACKET */ case 157: /* geocoll_textm ::= VANUATU_OPEN_BRACKET linestringm geocoll_textm2 VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 157); case 158: /* geocoll_textm ::= VANUATU_OPEN_BRACKET polygonm geocoll_textm2 VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 158); case 159: /* geocoll_textm ::= VANUATU_OPEN_BRACKET multipointm geocoll_textm2 VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 159); case 160: /* geocoll_textm ::= VANUATU_OPEN_BRACKET multilinestringm geocoll_textm2 VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 160); case 161: /* geocoll_textm ::= VANUATU_OPEN_BRACKET multipolygonm geocoll_textm2 VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 161); case 162: /* geocoll_textm ::= VANUATU_OPEN_BRACKET VANUATU_GEOMETRYCOLLECTION_M geocoll_textm geocoll_textm2 VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 162); { ((gaiaGeomCollPtr) yymsp[-2].minor.yy0)->Next = (gaiaGeomCollPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) vanuatu_geomColl_xym (p_data, (gaiaGeomCollPtr) yymsp[-2]. minor.yy0); } break; case 171: /* geocoll_textz ::= VANUATU_OPEN_BRACKET pointz geocoll_textz2 VANUATU_CLOSE_BRACKET */ case 172: /* geocoll_textz ::= VANUATU_OPEN_BRACKET linestringz geocoll_textz2 VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 172); case 173: /* geocoll_textz ::= VANUATU_OPEN_BRACKET polygonz geocoll_textz2 VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 173); case 174: /* geocoll_textz ::= VANUATU_OPEN_BRACKET multipointz geocoll_textz2 VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 174); case 175: /* geocoll_textz ::= VANUATU_OPEN_BRACKET multilinestringz geocoll_textz2 VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 175); case 176: /* geocoll_textz ::= VANUATU_OPEN_BRACKET multipolygonz geocoll_textz2 VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 176); case 177: /* geocoll_textz ::= VANUATU_OPEN_BRACKET VANUATU_GEOMETRYCOLLECTION_Z geocoll_textz geocoll_textz2 VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 177); { ((gaiaGeomCollPtr) yymsp[-2].minor.yy0)->Next = (gaiaGeomCollPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) vanuatu_geomColl_xyz (p_data, (gaiaGeomCollPtr) yymsp[-2]. minor.yy0); } break; case 186: /* geocoll_textzm ::= VANUATU_OPEN_BRACKET pointzm geocoll_textzm2 VANUATU_CLOSE_BRACKET */ case 187: /* geocoll_textzm ::= VANUATU_OPEN_BRACKET linestringzm geocoll_textzm2 VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 187); case 188: /* geocoll_textzm ::= VANUATU_OPEN_BRACKET polygonzm geocoll_textzm2 VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 188); case 189: /* geocoll_textzm ::= VANUATU_OPEN_BRACKET multipointzm geocoll_textzm2 VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 189); case 190: /* geocoll_textzm ::= VANUATU_OPEN_BRACKET multilinestringzm geocoll_textzm2 VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 190); case 191: /* geocoll_textzm ::= VANUATU_OPEN_BRACKET multipolygonzm geocoll_textzm2 VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 191); case 192: /* geocoll_textzm ::= VANUATU_OPEN_BRACKET VANUATU_GEOMETRYCOLLECTION_ZM geocoll_textzm geocoll_textzm2 VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 192); { ((gaiaGeomCollPtr) yymsp[-2].minor.yy0)->Next = (gaiaGeomCollPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) vanuatu_geomColl_xyzm (p_data, (gaiaGeomCollPtr) yymsp[-2]. minor.yy0); } break; default: /* (0) main ::= in */ yytestcase (yyruleno == 0); /* (1) in ::= */ yytestcase (yyruleno == 1); /* (2) in ::= in state VANUATU_NEWLINE */ yytestcase (yyruleno == 2); /* (3) state ::= program */ yytestcase (yyruleno == 3); /* (4) program ::= geo_text */ yytestcase (yyruleno == 4); /* (5) program ::= geo_textz */ yytestcase (yyruleno == 5); /* (6) program ::= geo_textm */ yytestcase (yyruleno == 6); /* (7) program ::= geo_textzm */ yytestcase (yyruleno == 7); break; }; yygoto = yyRuleInfo[yyruleno].lhs; yysize = yyRuleInfo[yyruleno].nrhs; yypParser->yyidx -= yysize; yyact = yy_find_reduce_action (yymsp[-yysize].stateno, (YYCODETYPE) yygoto); if (yyact < YYNSTATE) { #ifdef NDEBUG /* If we are not debugging and the reduce action popped at least ** one element off the stack, then we can push the new element back ** onto the stack here, and skip the stack overflow test in yy_shift(). ** That gives a significant speed improvement. */ if (yysize) { yypParser->yyidx++; yymsp -= yysize - 1; yymsp->stateno = (YYACTIONTYPE) yyact; yymsp->major = (YYCODETYPE) yygoto; yymsp->minor = yygotominor; } else #endif { yy_shift (yypParser, yyact, yygoto, &yygotominor); } } else { assert (yyact == YYNSTATE + YYNRULE + 1); yy_accept (yypParser); } } /* ** The following code executes when the parse fails */ #ifndef YYNOERRORRECOVERY static void yy_parse_failed (yyParser * yypParser /* The parser */ ) { ParseARG_FETCH; #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sFail!\n", yyTracePrompt); } #endif while (yypParser->yyidx >= 0) yy_pop_parser_stack (yypParser); /* Here code is inserted which will be executed whenever the ** parser fails */ ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ } #endif /* YYNOERRORRECOVERY */ /* ** The following code executes when a syntax error first occurs. */ static void yy_syntax_error (yyParser * yypParser, /* The parser */ int yymajor, /* The major type of the error token */ YYMINORTYPE yyminor /* The minor type of the error token */ ) { ParseARG_FETCH; #define TOKEN (yyminor.yy0) /* ** Sandro Furieri 2010 Apr 4 ** when the LEMON parser encounters an error ** then this global variable is set */ p_data->vanuatu_parse_error = 1; p_data->result = NULL; ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ } /* ** The following is executed when the parser accepts */ static void yy_accept (yyParser * yypParser /* The parser */ ) { ParseARG_FETCH; #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sAccept!\n", yyTracePrompt); } #endif while (yypParser->yyidx >= 0) yy_pop_parser_stack (yypParser); /* Here code is inserted which will be executed whenever the ** parser accepts */ ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ } /* The main parser program. ** The first argument is a pointer to a structure obtained from ** "ParseAlloc" which describes the current state of the parser. ** The second argument is the major token number. The third is ** the minor token. The fourth optional argument is whatever the ** user wants (and specified in the grammar) and is available for ** use by the action routines. ** ** Inputs: **
    **
  • A pointer to the parser (an opaque structure.) **
  • The major token number. **
  • The minor token number. **
  • An option argument of a grammar-specified type. **
** ** Outputs: ** None. */ void Parse (void *yyp, /* The parser */ int yymajor, /* The major token code number */ ParseTOKENTYPE yyminor /* The value for the token */ ParseARG_PDECL /* Optional %extra_argument parameter */ ) { YYMINORTYPE yyminorunion; int yyact; /* The parser action. */ int yyendofinput; /* True if we are at the end of input */ #ifdef YYERRORSYMBOL int yyerrorhit = 0; /* True if yymajor has invoked an error */ #endif yyParser *yypParser; /* The parser */ /* (re)initialize the parser, if necessary */ yypParser = (yyParser *) yyp; if (yypParser->yyidx < 0) { #if YYSTACKDEPTH<=0 if (yypParser->yystksz <= 0) { /*memset(&yyminorunion, 0, sizeof(yyminorunion)); */ yyminorunion = yyzerominor; yyStackOverflow (yypParser, &yyminorunion); return; } #endif yypParser->yyidx = 0; yypParser->yyerrcnt = -1; yypParser->yystack[0].stateno = 0; yypParser->yystack[0].major = 0; } yyminorunion.yy0 = yyminor; yyendofinput = (yymajor == 0); ParseARG_STORE; #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sInput %s\n", yyTracePrompt, yyTokenName[yymajor]); } #endif do { yyact = yy_find_shift_action (yypParser, (YYCODETYPE) yymajor); if (yyact < YYNSTATE) { assert (!yyendofinput); /* Impossible to shift the $ token */ yy_shift (yypParser, yyact, yymajor, &yyminorunion); yypParser->yyerrcnt--; yymajor = YYNOCODE; } else if (yyact < YYNSTATE + YYNRULE) { yy_reduce (yypParser, yyact - YYNSTATE); } else { assert (yyact == YY_ERROR_ACTION); #ifdef YYERRORSYMBOL int yymx; #endif #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sSyntax Error!\n", yyTracePrompt); } #endif #ifdef YYERRORSYMBOL /* A syntax error has occurred. ** The response to an error depends upon whether or not the ** grammar defines an error token "ERROR". ** ** This is what we do if the grammar does define ERROR: ** ** * Call the %syntax_error function. ** ** * Begin popping the stack until we enter a state where ** it is legal to shift the error symbol, then shift ** the error symbol. ** ** * Set the error count to three. ** ** * Begin accepting and shifting new tokens. No new error ** processing will occur until three tokens have been ** shifted successfully. ** */ if (yypParser->yyerrcnt < 0) { yy_syntax_error (yypParser, yymajor, yyminorunion); } yymx = yypParser->yystack[yypParser->yyidx].major; if (yymx == YYERRORSYMBOL || yyerrorhit) { #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sDiscard input token %s\n", yyTracePrompt, yyTokenName[yymajor]); } #endif yy_destructor (yypParser, (YYCODETYPE) yymajor, &yyminorunion); yymajor = YYNOCODE; } else { while (yypParser->yyidx >= 0 && yymx != YYERRORSYMBOL && (yyact = yy_find_reduce_action (yypParser-> yystack[yypParser->yyidx]. stateno, YYERRORSYMBOL)) >= YYNSTATE) { yy_pop_parser_stack (yypParser); } if (yypParser->yyidx < 0 || yymajor == 0) { yy_destructor (yypParser, (YYCODETYPE) yymajor, &yyminorunion); yy_parse_failed (yypParser); yymajor = YYNOCODE; } else if (yymx != YYERRORSYMBOL) { YYMINORTYPE u2; u2.YYERRSYMDT = 0; yy_shift (yypParser, yyact, YYERRORSYMBOL, &u2); } } yypParser->yyerrcnt = 3; yyerrorhit = 1; #elif defined(YYNOERRORRECOVERY) /* If the YYNOERRORRECOVERY macro is defined, then do not attempt to ** do any kind of error recovery. Instead, simply invoke the syntax ** error routine and continue going as if nothing had happened. ** ** Applications can set this macro (for example inside %include) if ** they intend to abandon the parse upon the first syntax error seen. */ yy_syntax_error (yypParser, yymajor, yyminorunion); yy_destructor (yypParser, (YYCODETYPE) yymajor, &yyminorunion); yymajor = YYNOCODE; #else /* YYERRORSYMBOL is not defined */ /* This is what we do if the grammar does not define ERROR: ** ** * Report an error message, and throw away the input token. ** ** * If the input token is $, then fail the parse. ** ** As before, subsequent error messages are suppressed until ** three input tokens have been successfully shifted. */ if (yypParser->yyerrcnt <= 0) { yy_syntax_error (yypParser, yymajor, yyminorunion); } yypParser->yyerrcnt = 3; yy_destructor (yypParser, (YYCODETYPE) yymajor, &yyminorunion); if (yyendofinput) { yy_parse_failed (yypParser); } yymajor = YYNOCODE; #endif } } while (yymajor != YYNOCODE && yypParser->yyidx >= 0); return; } libspatialite-4.1.1/src/gaiageo/Makefile.in0000664000175000017500000005447512163502133015531 00000000000000# Makefile.in generated by automake 1.12.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/gaiageo DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libgaiageo_la_LIBADD = am_libgaiageo_la_OBJECTS = gg_advanced.lo gg_endian.lo gg_geodesic.lo \ gg_geometries.lo gg_geoscvt.lo gg_relations.lo gg_lwgeom.lo \ gg_extras.lo gg_shape.lo gg_transform.lo gg_wkb.lo gg_wkt.lo \ gg_vanuatu.lo gg_ewkt.lo gg_geoJSON.lo gg_kml.lo gg_gml.lo \ gg_voronoj.lo gg_xml.lo libgaiageo_la_OBJECTS = $(am_libgaiageo_la_OBJECTS) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libgaiageo_la_SOURCES) DIST_SOURCES = $(libgaiageo_la_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = flex lemon INCLUDES = @CFLAGS@ @GEOS_CFLAGS@ @LIBXML2_CFLAGS@ \ -I$(top_srcdir)/src/headers noinst_LTLIBRARIES = libgaiageo.la libgaiageo_la_SOURCES = gg_advanced.c \ gg_endian.c \ gg_geodesic.c \ gg_geometries.c \ gg_geoscvt.c \ gg_relations.c \ gg_lwgeom.c \ gg_extras.c \ gg_shape.c \ gg_transform.c \ gg_wkb.c \ gg_wkt.c \ gg_vanuatu.c \ gg_ewkt.c \ gg_geoJSON.c \ gg_kml.c \ gg_gml.c \ gg_voronoj.c \ gg_xml.c MOSTLYCLEANFILES = *.gcna *.gcno *.gcda EXTRA_DIST = Ewkt.h Ewkt.c lex.Ewkt.c \ geoJSON.h geoJSON.c lex.GeoJson.c \ Gml.h Gml.c lex.Gml.c \ Kml.h Kml.c lex.Kml.c \ vanuatuWkt.h vanuatuWkt.c lex.VanuatuWkt.c all: all-recursive .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/gaiageo/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/gaiageo/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } libgaiageo.la: $(libgaiageo_la_OBJECTS) $(libgaiageo_la_DEPENDENCIES) $(EXTRA_libgaiageo_la_DEPENDENCIES) $(LINK) $(libgaiageo_la_OBJECTS) $(libgaiageo_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_advanced.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_endian.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_ewkt.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_extras.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_geoJSON.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_geodesic.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_geometries.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_geoscvt.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_gml.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_kml.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_lwgeom.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_relations.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_shape.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_transform.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_vanuatu.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_voronoj.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_wkb.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_wkt.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_xml.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(RECURSIVE_TARGETS) $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done cscopelist-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) cscopelist); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive $(HEADERS) $(SOURCES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(LTLIBRARIES) installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) \ cscopelist-recursive ctags-recursive install-am install-strip \ tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ clean-noinstLTLIBRARIES cscopelist cscopelist-recursive ctags \ ctags-recursive distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-recursive uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libspatialite-4.1.1/src/gaiageo/gg_voronoj.c0000664000175000017500000014154012163502133015767 00000000000000/* gg_voronoj.c -- Voronoj Diagram implementation version 4.1, 2013 May 8 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include #include #ifdef GEOS_TRUNK /* GEOS experimental features */ struct voronoj_triangle { /* a struct representing a Delaunay triangle */ double x1; /* vertex #1 */ double y1; double x2; /* vertex #2 */ double y2; double x3; /* vertex #3 */ double y3; double cx; /* circumcenter */ double cy; double x_1_2; /* vertex on the frame - edge #1-#2 */ double y_1_2; double x_2_3; /* vertex on the frame - edge #2-#3 */ double y_2_3; double x_3_1; /* vertex on the frame - edge #3-#1 */ double y_3_1; struct voronoj_triangle *tri_1_2; /* triangle sharing edge #1-#2 */ struct voronoj_triangle *tri_2_3; /* triangle sharing edge #2-#3 */ struct voronoj_triangle *tri_3_1; /* triangle sharing edge #3-#1 */ char trace_1_2; /* flags: to be traced */ char trace_2_3; char trace_3_1; }; struct voronoj_point { /* an auxiliary struct - point on Voronoj's frame */ double coord; struct voronoj_point *next; }; struct voronoj_aux { /* an auxiliary struct supporting Voronoj */ struct voronoj_triangle *array; /* array of Triangles */ int count; /* number of Triangles */ double minx; /* the frame extent */ double miny; double maxx; double maxy; struct voronoj_point *first_up; /* linked list: horz-up frame's edge */ struct voronoj_point *last_up; struct voronoj_point *first_low; /* linked list: horz-down frame's edge */ struct voronoj_point *last_low; struct voronoj_point *first_left; /* linked list: vert-left frame's edge */ struct voronoj_point *last_left; struct voronoj_point *first_right; /* linked list: vert-right frame's edge */ struct voronoj_point *last_right; }; struct concave_hull_str { /* a struct to implement StandardVariation and Variance for Concave Hull */ double mean; double quot; double count; }; static double * voronoj_sorted_up (struct voronoj_aux *voronoj, int *count) { /* returning a sorted array of coordinates */ double *array = NULL; int cnt = 0; int ok = 1; int i; struct voronoj_point *pt = voronoj->first_up; while (pt) { /* counting how many points are there */ cnt++; pt = pt->next; } *count = cnt; if (cnt == 0) return NULL; /* allocating and populating the array */ array = malloc (sizeof (double) * *count); cnt = 0; pt = voronoj->first_up; while (pt) { *(array + cnt++) = pt->coord; pt = pt->next; } /* sorting the array */ while (ok) { ok = 0; for (i = 1; i < *count; i++) { if (*(array + i - 1) > *(array + i)) { /* swapping two values */ double save = *(array + i - 1); *(array + i - 1) = *(array + i); *(array + i) = save; ok = 1; } } } return array; } static double * voronoj_sorted_low (struct voronoj_aux *voronoj, int *count) { /* returning a sorted array of coordinates */ double *array = NULL; int cnt = 0; int ok = 1; int i; struct voronoj_point *pt = voronoj->first_low; while (pt) { /* counting how many points are there */ cnt++; pt = pt->next; } *count = cnt; if (cnt == 0) return NULL; /* allocating and populating the array */ array = malloc (sizeof (double) * *count); cnt = 0; pt = voronoj->first_low; while (pt) { *(array + cnt++) = pt->coord; pt = pt->next; } /* sorting the array */ while (ok) { ok = 0; for (i = 1; i < *count; i++) { if (*(array + i - 1) > *(array + i)) { /* swapping two values */ double save = *(array + i - 1); *(array + i - 1) = *(array + i); *(array + i) = save; ok = 1; } } } return array; } static double * voronoj_sorted_left (struct voronoj_aux *voronoj, int *count) { /* returning a sorted array of coordinates */ double *array = NULL; int cnt = 0; int ok = 1; int i; struct voronoj_point *pt = voronoj->first_left; while (pt) { /* counting how many points are there */ cnt++; pt = pt->next; } *count = cnt; if (cnt == 0) return NULL; /* allocating and populating the array */ array = malloc (sizeof (double) * *count); cnt = 0; pt = voronoj->first_left; while (pt) { *(array + cnt++) = pt->coord; pt = pt->next; } /* sorting the array */ while (ok) { ok = 0; for (i = 1; i < *count; i++) { if (*(array + i - 1) > *(array + i)) { /* swapping two values */ double save = *(array + i - 1); *(array + i - 1) = *(array + i); *(array + i) = save; ok = 1; } } } return array; } static double * voronoj_sorted_right (struct voronoj_aux *voronoj, int *count) { /* returning a sorted array of coordinates */ double *array = NULL; int cnt = 0; int ok = 1; int i; struct voronoj_point *pt = voronoj->first_right; while (pt) { /* counting how many points are there */ cnt++; pt = pt->next; } *count = cnt; if (cnt == 0) return NULL; /* allocating and populating the array */ array = malloc (sizeof (double) * *count); cnt = 0; pt = voronoj->first_right; while (pt) { *(array + cnt++) = pt->coord; pt = pt->next; } /* sorting the array */ while (ok) { ok = 0; for (i = 1; i < *count; i++) { if (*(array + i - 1) > *(array + i)) { /* swapping two values */ double save = *(array + i - 1); *(array + i - 1) = *(array + i); *(array + i) = save; ok = 1; } } } return array; } static void voronoj_add_frame_point (struct voronoj_aux *voronoj, double x, double y) { /* adding some frame point */ struct voronoj_point *pt = NULL; /* skipping any corner */ if (x == voronoj->minx && y == voronoj->miny) return; if (x == voronoj->minx && y == voronoj->maxy) return; if (x == voronoj->maxx && y == voronoj->miny) return; if (x == voronoj->maxx && y == voronoj->maxy) return; if (x == voronoj->minx) { pt = malloc (sizeof (struct voronoj_point)); pt->coord = y; pt->next = NULL; if (voronoj->first_left == NULL) voronoj->first_left = pt; if (voronoj->last_left != NULL) voronoj->last_left->next = pt; voronoj->last_left = pt; } if (x == voronoj->maxx) { pt = malloc (sizeof (struct voronoj_point)); pt->coord = y; pt->next = NULL; if (voronoj->first_right == NULL) voronoj->first_right = pt; if (voronoj->last_right != NULL) voronoj->last_right->next = pt; voronoj->last_right = pt; } if (y == voronoj->miny) { pt = malloc (sizeof (struct voronoj_point)); pt->coord = x; pt->next = NULL; if (voronoj->first_low == NULL) voronoj->first_low = pt; if (voronoj->last_low != NULL) voronoj->last_low->next = pt; voronoj->last_low = pt; } if (y == voronoj->maxy) { pt = malloc (sizeof (struct voronoj_point)); pt->coord = x; pt->next = NULL; if (voronoj->first_up == NULL) voronoj->first_up = pt; if (voronoj->last_up != NULL) voronoj->last_up->next = pt; voronoj->last_up = pt; } } static int voronoj_same_edge (double ax1, double ay1, double ax2, double ay2, double bx1, double by1, double bx2, double by2) { /* testing if two segments are the same */ if (ax1 == bx1 && ay1 == by1 && ax2 == bx2 && ay2 == by2) return 1; if (ax1 == bx2 && ay1 == by2 && ax2 == bx1 && ay2 == by1) return 1; return 0; } static int voronoj_internal (struct voronoj_triangle *triangle) { /* checking if the circumcenter falls inside the triangle */ int ret; gaiaGeomCollPtr pt = gaiaAllocGeomColl (); gaiaGeomCollPtr tri = gaiaAllocGeomColl (); gaiaPolygonPtr pg = gaiaAddPolygonToGeomColl (tri, 4, 0); gaiaRingPtr rng = pg->Exterior; gaiaSetPoint (rng->Coords, 0, triangle->x1, triangle->y1); gaiaSetPoint (rng->Coords, 1, triangle->x2, triangle->y2); gaiaSetPoint (rng->Coords, 2, triangle->x3, triangle->y3); gaiaSetPoint (rng->Coords, 3, triangle->x1, triangle->y1); gaiaAddPointToGeomColl (pt, triangle->cx, triangle->cy); gaiaMbrGeometry (pt); gaiaMbrGeometry (tri); ret = gaiaGeomCollIntersects (tri, pt); gaiaFreeGeomColl (pt); gaiaFreeGeomColl (tri); return ret; } static double voronoj_test_point (double x1, double y1, double x2, double y2, double x, double y) { /* point-segment distance */ double dist; gaiaGeomCollPtr pt = gaiaAllocGeomColl (); gaiaGeomCollPtr segm = gaiaAllocGeomColl (); gaiaLinestringPtr ln = gaiaAddLinestringToGeomColl (segm, 2); gaiaSetPoint (ln->Coords, 0, x1, y1); gaiaSetPoint (ln->Coords, 1, x2, y2); gaiaAddPointToGeomColl (pt, x, y); gaiaGeomCollDistance (segm, pt, &dist); gaiaFreeGeomColl (pt); gaiaFreeGeomColl (segm); return dist; } static int voronoj_check_nearest_edge (struct voronoj_triangle *tri, int which) { /* testing if direction outside */ double d_1_2; double d_2_3; double d_3_1; gaiaGeomCollPtr pt = gaiaAllocGeomColl (); gaiaGeomCollPtr segm = gaiaAllocGeomColl (); gaiaLinestringPtr ln = gaiaAddLinestringToGeomColl (segm, 2); gaiaSetPoint (ln->Coords, 0, tri->x1, tri->y1); gaiaSetPoint (ln->Coords, 1, tri->x2, tri->y2); gaiaAddPointToGeomColl (pt, tri->cx, tri->cy); gaiaGeomCollDistance (segm, pt, &d_1_2); gaiaFreeGeomColl (segm); segm = gaiaAllocGeomColl (); ln = gaiaAddLinestringToGeomColl (segm, 2); gaiaSetPoint (ln->Coords, 0, tri->x2, tri->y2); gaiaSetPoint (ln->Coords, 1, tri->x3, tri->y3); gaiaGeomCollDistance (segm, pt, &d_2_3); gaiaFreeGeomColl (segm); segm = gaiaAllocGeomColl (); ln = gaiaAddLinestringToGeomColl (segm, 2); gaiaSetPoint (ln->Coords, 0, tri->x3, tri->y3); gaiaSetPoint (ln->Coords, 1, tri->x1, tri->y1); gaiaGeomCollDistance (segm, pt, &d_3_1); gaiaFreeGeomColl (segm); gaiaFreeGeomColl (pt); if (which == 12 && d_1_2 < d_2_3 && d_1_2 < d_3_1) return 0; if (which == 23 && d_2_3 < d_1_2 && d_2_3 < d_3_1) return 0; if (which == 31 && d_3_1 < d_1_2 && d_3_1 < d_2_3) return 0; return 1; } static void voronoj_minmax (double x, double y, double *minx, double *miny, double *maxx, double *maxy) { /* updating the frame extent */ if (x < *minx) *minx = x; if (y < *miny) *miny = y; if (x > *maxx) *maxx = x; if (y > *maxy) *maxy = y; } static void voronoj_frame_point (double intercept, double slope, struct voronoj_aux *voronoj, double cx, double cy, double mx, double my, int direct, double *x, double *y) { /* determining a vertex on the frame */ double x_up; double x_low; double y_left; double y_right; double pre_x1 = DBL_MAX; double pre_y1 = DBL_MAX; double pre_x2 = DBL_MAX; double pre_y2 = DBL_MAX; double d1; double d2; if (slope == DBL_MAX) { x_up = cx; x_low = cx; y_left = DBL_MAX; y_right = DBL_MAX; } else { x_up = (voronoj->maxy - intercept) / slope; x_low = (voronoj->miny - intercept) / slope; y_left = (slope * voronoj->minx) + intercept; y_right = (slope * voronoj->maxx) + intercept; } if (x_up >= voronoj->minx && x_up <= voronoj->maxx) { if (pre_x1 == DBL_MAX && pre_y1 == DBL_MAX) { pre_x1 = x_up; pre_y1 = voronoj->maxy; } else if (pre_x2 == DBL_MAX && pre_y2 == DBL_MAX) { pre_x2 = x_up; pre_y2 = voronoj->maxy; } } if (x_low >= voronoj->minx && x_low <= voronoj->maxx) { if (pre_x1 == DBL_MAX && pre_y1 == DBL_MAX) { pre_x1 = x_low; pre_y1 = voronoj->miny; } else if (pre_x2 == DBL_MAX && pre_y2 == DBL_MAX) { pre_x2 = x_low; pre_y2 = voronoj->miny; } } if (y_left >= voronoj->miny && y_left <= voronoj->maxy) { if (pre_x1 == DBL_MAX && pre_y1 == DBL_MAX) { pre_x1 = voronoj->minx; pre_y1 = y_left; } else if (pre_x2 == DBL_MAX && pre_y2 == DBL_MAX) { pre_x2 = voronoj->minx; pre_y2 = y_left; } } if (y_right >= voronoj->miny && y_right <= voronoj->maxy) { if (pre_x1 == DBL_MAX && pre_y1 == DBL_MAX) { pre_x1 = voronoj->maxx; pre_y1 = y_right; } else if (pre_x2 == DBL_MAX && pre_y2 == DBL_MAX) { pre_x2 = voronoj->maxx; pre_y2 = y_right; } } /* choosing wich point has to be returned */ if (direct) { /* cutting the edge in two */ d1 = voronoj_test_point (cx, cy, pre_x1, pre_y1, mx, my); d2 = voronoj_test_point (cx, cy, pre_x2, pre_y2, mx, my); if (d1 < d2) { *x = pre_x1; *y = pre_y1; } else { *x = pre_x2; *y = pre_y2; } } else { /* going outside */ d1 = voronoj_test_point (cx, cy, pre_x1, pre_y1, mx, my); d2 = voronoj_test_point (cx, cy, pre_x2, pre_y2, mx, my); if (d1 > d2) { *x = pre_x1; *y = pre_y1; } else { *x = pre_x2; *y = pre_y2; } } } SPATIALITE_PRIVATE void * voronoj_build (int count, void *p_first, double extra_frame_size) { /* building the Voronoj auxiliary struct */ gaiaPolygonPtr first = (gaiaPolygonPtr) p_first; struct voronoj_aux *voronoj = NULL; struct voronoj_triangle *triangle; struct voronoj_triangle *tri2; gaiaPolygonPtr pg; gaiaRingPtr rng; int ind = 0; int i2; int direct; double x; double y; double z; double m; double xba; double yba; double xca; double yca; double bl; double cl; double d; double mx; double my; double slope; double intercept; double minx = DBL_MAX; double miny = DBL_MAX; double maxx = DBL_MIN; double maxy = DBL_MIN; double ext_x; double ext_y; double delta; double delta2; /* allocating the Voronoj struct */ voronoj = malloc (sizeof (struct voronoj_aux)); voronoj->count = count; voronoj->first_up = NULL; voronoj->last_up = NULL; voronoj->first_low = NULL; voronoj->last_low = NULL; voronoj->first_left = NULL; voronoj->last_left = NULL; voronoj->first_right = NULL; voronoj->last_right = NULL; voronoj->array = malloc (sizeof (struct voronoj_triangle) * count); /* initializing the Voronoj struct */ pg = first; while (pg) { rng = pg->Exterior; triangle = voronoj->array + ind; if (pg->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, 0, &x, &y, &z); triangle->x1 = x; triangle->y1 = y; gaiaGetPointXYZ (rng->Coords, 1, &x, &y, &z); triangle->x2 = x; triangle->y2 = y; gaiaGetPointXYZ (rng->Coords, 2, &x, &y, &z); triangle->x3 = x; triangle->y3 = y; } else if (pg->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, 0, &x, &y, &m); triangle->x1 = x; triangle->y1 = y; gaiaGetPointXYM (rng->Coords, 1, &x, &y, &m); triangle->x2 = x; triangle->y2 = y; gaiaGetPointXYM (rng->Coords, 2, &x, &y, &m); triangle->x3 = x; triangle->y3 = y; } else if (pg->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, 0, &x, &y, &z, &m); triangle->x1 = x; triangle->y1 = y; gaiaGetPointXYZM (rng->Coords, 1, &x, &y, &z, &m); triangle->x2 = x; triangle->y2 = y; gaiaGetPointXYZM (rng->Coords, 2, &x, &y, &z, &m); triangle->x3 = x; triangle->y3 = y; } else { gaiaGetPoint (rng->Coords, 0, &x, &y); triangle->x1 = x; triangle->y1 = y; gaiaGetPoint (rng->Coords, 1, &x, &y); triangle->x2 = x; triangle->y2 = y; gaiaGetPoint (rng->Coords, 2, &x, &y); triangle->x3 = x; triangle->y3 = y; } /* computing the triangle circumcenter */ xba = triangle->x2 - triangle->x1; yba = triangle->y2 - triangle->y1; xca = triangle->x3 - triangle->x1; yca = triangle->y3 - triangle->y1; bl = xba * xba + yba * yba; cl = xca * xca + yca * yca; d = 0.5 / (xba * yca - yba * xca); triangle->cx = triangle->x1 + ((yca * bl - yba * cl) * d); triangle->cy = triangle->y1 + ((xba * cl - xca * bl) * d); /* adjusting the frame extent */ voronoj_minmax (triangle->x1, triangle->y1, &minx, &miny, &maxx, &maxy); voronoj_minmax (triangle->x2, triangle->y2, &minx, &miny, &maxx, &maxy); voronoj_minmax (triangle->x3, triangle->y3, &minx, &miny, &maxx, &maxy); voronoj_minmax (triangle->cx, triangle->cy, &minx, &miny, &maxx, &maxy); triangle->tri_1_2 = NULL; triangle->tri_2_3 = NULL; triangle->tri_3_1 = NULL; triangle->trace_1_2 = 0; triangle->trace_2_3 = 0; triangle->trace_3_1 = 0; ind++; pg = pg->Next; } /* setting the frame extent */ if (extra_frame_size < 0.0) extra_frame_size = 5.0; ext_x = maxx - minx; ext_y = maxy - miny; delta = (ext_x * extra_frame_size) / 100.0; delta2 = (ext_y * extra_frame_size) / 100.0; if (delta2 > delta) delta = delta2; voronoj->minx = minx - delta; voronoj->miny = miny - delta; voronoj->maxx = maxx + delta; voronoj->maxy = maxy + delta; /* identifying triangles sharing the same edge */ for (ind = 0; ind < voronoj->count; ind++) { triangle = voronoj->array + ind; for (i2 = ind + 1; i2 < voronoj->count; i2++) { tri2 = voronoj->array + i2; if (triangle->tri_1_2 == NULL && tri2->tri_1_2 == NULL) { if (voronoj_same_edge (triangle->x1, triangle->y1, triangle->x2, triangle->y2, tri2->x1, tri2->y1, tri2->x2, tri2->y2)) { triangle->tri_1_2 = tri2; triangle->trace_1_2 = 1; tri2->tri_1_2 = triangle; } } if (triangle->tri_1_2 == NULL && tri2->tri_2_3 == NULL) { if (voronoj_same_edge (triangle->x1, triangle->y1, triangle->x2, triangle->y2, tri2->x2, tri2->y2, tri2->x3, tri2->y3)) { triangle->tri_1_2 = tri2; triangle->trace_1_2 = 1; tri2->tri_2_3 = triangle; } } if (triangle->tri_1_2 == NULL && tri2->tri_3_1 == NULL) { if (voronoj_same_edge (triangle->x1, triangle->y1, triangle->x2, triangle->y2, tri2->x3, tri2->y3, tri2->x1, tri2->y1)) { triangle->tri_1_2 = tri2; triangle->trace_1_2 = 1; tri2->tri_3_1 = triangle; } } if (triangle->tri_2_3 == NULL && tri2->tri_1_2 == NULL) { if (voronoj_same_edge (triangle->x2, triangle->y2, triangle->x3, triangle->y3, tri2->x1, tri2->y1, tri2->x2, tri2->y2)) { triangle->tri_2_3 = tri2; triangle->trace_2_3 = 1; tri2->tri_1_2 = triangle; } } if (triangle->tri_2_3 == NULL && tri2->tri_2_3 == NULL) { if (voronoj_same_edge (triangle->x2, triangle->y2, triangle->x3, triangle->y3, tri2->x2, tri2->y2, tri2->x3, tri2->y3)) { triangle->tri_2_3 = tri2; triangle->trace_2_3 = 1; tri2->tri_2_3 = triangle; } } if (triangle->tri_2_3 == NULL && tri2->tri_3_1 == NULL) { if (voronoj_same_edge (triangle->x2, triangle->y2, triangle->x3, triangle->y3, tri2->x3, tri2->y3, tri2->x1, tri2->y1)) { triangle->tri_2_3 = tri2; triangle->trace_2_3 = 1; tri2->tri_3_1 = triangle; } } if (triangle->tri_3_1 == NULL && tri2->tri_1_2 == NULL) { if (voronoj_same_edge (triangle->x3, triangle->y3, triangle->x1, triangle->y1, tri2->x1, tri2->y1, tri2->x2, tri2->y2)) { triangle->tri_3_1 = tri2; triangle->trace_3_1 = 1; tri2->tri_1_2 = triangle; } } if (triangle->tri_3_1 == NULL && tri2->tri_2_3 == NULL) { if (voronoj_same_edge (triangle->x3, triangle->y3, triangle->x1, triangle->y1, tri2->x2, tri2->y2, tri2->x3, tri2->y3)) { triangle->tri_3_1 = tri2; triangle->trace_3_1 = 1; tri2->tri_2_3 = triangle; } } if (triangle->tri_3_1 == NULL && tri2->tri_3_1 == NULL) { if (voronoj_same_edge (triangle->x3, triangle->y3, triangle->x1, triangle->y1, tri2->x3, tri2->y3, tri2->x1, tri2->y1)) { triangle->tri_3_1 = tri2; triangle->trace_3_1 = 1; tri2->tri_3_1 = triangle; } } } /* identifying vertices on the frame */ if (triangle->tri_1_2 == NULL) { mx = (triangle->x1 + triangle->x2) / 2.0; my = (triangle->y1 + triangle->y2) / 2.0; if (mx == triangle->cx) slope = DBL_MAX; else { slope = (my - triangle->cy) / (mx - triangle->cx); intercept = my - (slope * mx); } direct = 1; if (!voronoj_internal (triangle)) direct = voronoj_check_nearest_edge (triangle, 12); voronoj_frame_point (intercept, slope, voronoj, triangle->cx, triangle->cy, mx, my, direct, &x, &y); triangle->x_1_2 = x; triangle->y_1_2 = y; } if (triangle->tri_2_3 == NULL) { mx = (triangle->x2 + triangle->x3) / 2.0; my = (triangle->y2 + triangle->y3) / 2.0; if (mx == triangle->cx) slope = DBL_MAX; else { slope = (my - triangle->cy) / (mx - triangle->cx); intercept = my - (slope * mx); } direct = 1; if (!voronoj_internal (triangle)) direct = voronoj_check_nearest_edge (triangle, 23); voronoj_frame_point (intercept, slope, voronoj, triangle->cx, triangle->cy, mx, my, direct, &x, &y); triangle->x_2_3 = x; triangle->y_2_3 = y; } if (triangle->tri_3_1 == NULL) { mx = (triangle->x3 + triangle->x1) / 2.0; my = (triangle->y3 + triangle->y1) / 2.0; if (mx == triangle->cx) slope = DBL_MAX; else { slope = (my - triangle->cy) / (mx - triangle->cx); intercept = my - (slope * mx); } direct = 1; if (!voronoj_internal (triangle)) direct = voronoj_check_nearest_edge (triangle, 31); voronoj_frame_point (intercept, slope, voronoj, triangle->cx, triangle->cy, mx, my, direct, &x, &y); triangle->x_3_1 = x; triangle->y_3_1 = y; } } return voronoj; } SPATIALITE_PRIVATE void * voronoj_export (void *p_voronoj, void *p_result, int only_edges) { /* building the Geometry representing Voronoj */ gaiaGeomCollPtr result = (gaiaGeomCollPtr) p_result; gaiaGeomCollPtr lines; struct voronoj_aux *voronoj = (struct voronoj_aux *) p_voronoj; int ind; gaiaLinestringPtr ln; struct voronoj_triangle *triangle; struct voronoj_triangle *tri2; int i; int count; double last; double *array; for (ind = 0; ind < voronoj->count; ind++) { triangle = voronoj->array + ind; /* segments connecting two circumcenters */ if (triangle->tri_1_2 && triangle->trace_1_2) { tri2 = triangle->tri_1_2; ln = gaiaAddLinestringToGeomColl (result, 2); if (result->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ln->Coords, 0, triangle->cx, triangle->cy, 0.0); gaiaSetPointXYZ (ln->Coords, 1, tri2->cx, tri2->cy, 0.0); } else if (result->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ln->Coords, 0, triangle->cx, triangle->cy, 0.0); gaiaSetPointXYM (ln->Coords, 1, tri2->cx, tri2->cy, 0.0); } else if (result->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ln->Coords, 0, triangle->cx, triangle->cy, 0.0, 0.0); gaiaSetPointXYZM (ln->Coords, 1, tri2->cx, tri2->cy, 0.0, 0.0); } else { gaiaSetPoint (ln->Coords, 0, triangle->cx, triangle->cy); gaiaSetPoint (ln->Coords, 1, tri2->cx, tri2->cy); } } if (triangle->tri_2_3 && triangle->trace_2_3) { tri2 = triangle->tri_2_3; ln = gaiaAddLinestringToGeomColl (result, 2); if (result->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ln->Coords, 0, triangle->cx, triangle->cy, 0.0); gaiaSetPointXYZ (ln->Coords, 1, tri2->cx, tri2->cy, 0.0); } else if (result->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ln->Coords, 0, triangle->cx, triangle->cy, 0.0); gaiaSetPointXYM (ln->Coords, 1, tri2->cx, tri2->cy, 0.0); } else if (result->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ln->Coords, 0, triangle->cx, triangle->cy, 0.0, 0.0); gaiaSetPointXYZM (ln->Coords, 1, tri2->cx, tri2->cy, 0.0, 0.0); } else { gaiaSetPoint (ln->Coords, 0, triangle->cx, triangle->cy); gaiaSetPoint (ln->Coords, 1, tri2->cx, tri2->cy); } } if (triangle->tri_3_1 && triangle->trace_3_1) { tri2 = triangle->tri_3_1; ln = gaiaAddLinestringToGeomColl (result, 2); if (result->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ln->Coords, 0, triangle->cx, triangle->cy, 0.0); gaiaSetPointXYZ (ln->Coords, 1, tri2->cx, tri2->cy, 0.0); } else if (result->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ln->Coords, 0, triangle->cx, triangle->cy, 0.0); gaiaSetPointXYM (ln->Coords, 1, tri2->cx, tri2->cy, 0.0); } else if (result->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ln->Coords, 0, triangle->cx, triangle->cy, 0.0, 0.0); gaiaSetPointXYZM (ln->Coords, 1, tri2->cx, tri2->cy, 0.0, 0.0); } else { gaiaSetPoint (ln->Coords, 0, triangle->cx, triangle->cy); gaiaSetPoint (ln->Coords, 1, tri2->cx, tri2->cy); } } /* segments connecting a circumcenter to the frame */ if (triangle->tri_1_2 == NULL) { ln = gaiaAddLinestringToGeomColl (result, 2); if (result->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ln->Coords, 0, triangle->cx, triangle->cy, 0.0); gaiaSetPointXYZ (ln->Coords, 1, triangle->x_1_2, triangle->y_1_2, 0.0); } else if (result->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ln->Coords, 0, triangle->cx, triangle->cy, 0.0); gaiaSetPointXYM (ln->Coords, 1, triangle->x_1_2, triangle->y_1_2, 0.0); } else if (result->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ln->Coords, 0, triangle->cx, triangle->cy, 0.0, 0.0); gaiaSetPointXYZM (ln->Coords, 1, triangle->x_1_2, triangle->y_1_2, 0.0, 0.0); } else { gaiaSetPoint (ln->Coords, 0, triangle->cx, triangle->cy); gaiaSetPoint (ln->Coords, 1, triangle->x_1_2, triangle->y_1_2); } if (!only_edges) voronoj_add_frame_point (voronoj, triangle->x_1_2, triangle->y_1_2); } if (triangle->tri_2_3 == NULL) { ln = gaiaAddLinestringToGeomColl (result, 2); if (result->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ln->Coords, 0, triangle->cx, triangle->cy, 0.0); gaiaSetPointXYZ (ln->Coords, 1, triangle->x_2_3, triangle->y_2_3, 0.0); } else if (result->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ln->Coords, 0, triangle->cx, triangle->cy, 0.0); gaiaSetPointXYM (ln->Coords, 1, triangle->x_2_3, triangle->y_2_3, 0.0); } else if (result->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ln->Coords, 0, triangle->cx, triangle->cy, 0.0, 0.0); gaiaSetPointXYZM (ln->Coords, 1, triangle->x_2_3, triangle->y_2_3, 0.0, 0.0); } else { gaiaSetPoint (ln->Coords, 0, triangle->cx, triangle->cy); gaiaSetPoint (ln->Coords, 1, triangle->x_2_3, triangle->y_2_3); } if (!only_edges) voronoj_add_frame_point (voronoj, triangle->x_2_3, triangle->y_2_3); } if (triangle->tri_3_1 == NULL) { ln = gaiaAddLinestringToGeomColl (result, 2); if (result->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ln->Coords, 0, triangle->cx, triangle->cy, 0.0); gaiaSetPointXYZ (ln->Coords, 1, triangle->x_3_1, triangle->y_3_1, 0.0); } else if (result->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ln->Coords, 0, triangle->cx, triangle->cy, 0.0); gaiaSetPointXYM (ln->Coords, 1, triangle->x_3_1, triangle->y_3_1, 0.0); } else if (result->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ln->Coords, 0, triangle->cx, triangle->cy, 0.0, 0.0); gaiaSetPointXYZM (ln->Coords, 1, triangle->x_3_1, triangle->y_3_1, 0.0, 0.0); } else { gaiaSetPoint (ln->Coords, 0, triangle->cx, triangle->cy); gaiaSetPoint (ln->Coords, 1, triangle->x_3_1, triangle->y_3_1); } if (!only_edges) voronoj_add_frame_point (voronoj, triangle->x_3_1, triangle->y_3_1); } } if (only_edges) return result; /* setting up the frame's upper edge */ last = voronoj->minx; array = voronoj_sorted_up (voronoj, &count); if (array) { for (i = 0; i < count; i++) { ln = gaiaAddLinestringToGeomColl (result, 2); if (result->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ln->Coords, 0, last, voronoj->maxy, 0.0); gaiaSetPointXYZ (ln->Coords, 1, *(array + i), voronoj->maxy, 0.0); } else if (result->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ln->Coords, 0, last, voronoj->maxy, 0.0); gaiaSetPointXYM (ln->Coords, 1, *(array + i), voronoj->maxy, 0.0); } else if (result->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ln->Coords, 0, last, voronoj->maxy, 0.0, 0.0); gaiaSetPointXYZM (ln->Coords, 1, *(array + i), voronoj->maxy, 0.0, 0.0); } else { gaiaSetPoint (ln->Coords, 0, last, voronoj->maxy); gaiaSetPoint (ln->Coords, 1, *(array + i), voronoj->maxy); } last = *(array + i); } free (array); } /* closing the frame's upper edge */ ln = gaiaAddLinestringToGeomColl (result, 2); if (result->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ln->Coords, 0, last, voronoj->maxy, 0.0); gaiaSetPointXYZ (ln->Coords, 1, voronoj->maxx, voronoj->maxy, 0.0); } else if (result->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ln->Coords, 0, last, voronoj->maxy, 0.0); gaiaSetPointXYM (ln->Coords, 1, voronoj->maxx, voronoj->maxy, 0.0); } else if (result->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ln->Coords, 0, last, voronoj->maxy, 0.0, 0.0); gaiaSetPointXYZM (ln->Coords, 1, voronoj->maxx, voronoj->maxy, 0.0, 0.0); } else { gaiaSetPoint (ln->Coords, 0, last, voronoj->maxy); gaiaSetPoint (ln->Coords, 1, voronoj->maxx, voronoj->maxy); } /* setting up the frame's lower edge */ last = voronoj->minx; array = voronoj_sorted_low (voronoj, &count); if (array) { for (i = 0; i < count; i++) { ln = gaiaAddLinestringToGeomColl (result, 2); if (result->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ln->Coords, 0, last, voronoj->miny, 0.0); gaiaSetPointXYZ (ln->Coords, 1, *(array + i), voronoj->miny, 0.0); } else if (result->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ln->Coords, 0, last, voronoj->miny, 0.0); gaiaSetPointXYM (ln->Coords, 1, *(array + i), voronoj->miny, 0.0); } else if (result->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ln->Coords, 0, last, voronoj->miny, 0.0, 0.0); gaiaSetPointXYZM (ln->Coords, 1, *(array + i), voronoj->miny, 0.0, 0.0); } else { gaiaSetPoint (ln->Coords, 0, last, voronoj->miny); gaiaSetPoint (ln->Coords, 1, *(array + i), voronoj->miny); } last = *(array + i); } free (array); } /* closing the frame's lower edge */ ln = gaiaAddLinestringToGeomColl (result, 2); if (result->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ln->Coords, 0, last, voronoj->miny, 0.0); gaiaSetPointXYZ (ln->Coords, 1, voronoj->maxx, voronoj->miny, 0.0); } else if (result->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ln->Coords, 0, last, voronoj->miny, 0.0); gaiaSetPointXYM (ln->Coords, 1, voronoj->maxx, voronoj->miny, 0.0); } else if (result->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ln->Coords, 0, last, voronoj->miny, 0.0, 0.0); gaiaSetPointXYZM (ln->Coords, 1, voronoj->maxx, voronoj->miny, 0.0, 0.0); } else { gaiaSetPoint (ln->Coords, 0, last, voronoj->miny); gaiaSetPoint (ln->Coords, 1, voronoj->maxx, voronoj->miny); } /* setting up the frame's left edge */ last = voronoj->miny; array = voronoj_sorted_left (voronoj, &count); if (array) { for (i = 0; i < count; i++) { ln = gaiaAddLinestringToGeomColl (result, 2); if (result->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ln->Coords, 0, voronoj->minx, last, 0.0); gaiaSetPointXYZ (ln->Coords, 1, voronoj->minx, *(array + i), 0.0); } else if (result->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ln->Coords, 0, voronoj->minx, last, 0.0); gaiaSetPointXYM (ln->Coords, 1, voronoj->minx, *(array + i), 0.0); } else if (result->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ln->Coords, 0, voronoj->minx, last, 0.0, 0.0); gaiaSetPointXYZM (ln->Coords, 1, voronoj->minx, *(array + i), 0.0, 0.0); } else { gaiaSetPoint (ln->Coords, 0, voronoj->minx, last); gaiaSetPoint (ln->Coords, 1, voronoj->minx, *(array + i)); } last = *(array + i); } free (array); } /* closing the frame's left edge */ ln = gaiaAddLinestringToGeomColl (result, 2); if (result->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ln->Coords, 0, voronoj->minx, last, 0.0); gaiaSetPointXYZ (ln->Coords, 1, voronoj->minx, voronoj->maxy, 0.0); } else if (result->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ln->Coords, 0, voronoj->minx, last, 0.0); gaiaSetPointXYM (ln->Coords, 1, voronoj->minx, voronoj->maxy, 0.0); } else if (result->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ln->Coords, 0, voronoj->minx, last, 0.0, 0.0); gaiaSetPointXYZM (ln->Coords, 1, voronoj->minx, voronoj->maxy, 0.0, 0.0); } else { gaiaSetPoint (ln->Coords, 0, voronoj->minx, last); gaiaSetPoint (ln->Coords, 1, voronoj->minx, voronoj->maxy); } /* setting up the frame's right edge */ last = voronoj->miny; array = voronoj_sorted_right (voronoj, &count); if (array) { for (i = 0; i < count; i++) { ln = gaiaAddLinestringToGeomColl (result, 2); if (result->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ln->Coords, 0, voronoj->maxx, last, 0.0); gaiaSetPointXYZ (ln->Coords, 1, voronoj->maxx, *(array + i), 0.0); } else if (result->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ln->Coords, 0, voronoj->maxx, last, 0.0); gaiaSetPointXYM (ln->Coords, 1, voronoj->maxx, *(array + i), 0.0); } else if (result->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ln->Coords, 0, voronoj->maxx, last, 0.0, 0.0); gaiaSetPointXYZM (ln->Coords, 1, voronoj->maxx, *(array + i), 0.0, 0.0); } else { gaiaSetPoint (ln->Coords, 0, voronoj->maxx, last); gaiaSetPoint (ln->Coords, 1, voronoj->maxx, *(array + i)); } last = *(array + i); } free (array); } /* closing the frame's right edge */ ln = gaiaAddLinestringToGeomColl (result, 2); if (result->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ln->Coords, 0, voronoj->maxx, last, 0.0); gaiaSetPointXYZ (ln->Coords, 1, voronoj->maxx, voronoj->maxy, 0.0); } else if (result->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ln->Coords, 0, voronoj->maxx, last, 0.0); gaiaSetPointXYM (ln->Coords, 1, voronoj->maxx, voronoj->maxy, 0.0); } else if (result->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ln->Coords, 0, voronoj->maxx, last, 0.0, 0.0); gaiaSetPointXYZM (ln->Coords, 1, voronoj->maxx, voronoj->maxy, 0.0, 0.0); } else { gaiaSetPoint (ln->Coords, 0, voronoj->maxx, last); gaiaSetPoint (ln->Coords, 1, voronoj->maxx, voronoj->maxy); } /* building Polygons */ lines = result; result = gaiaPolygonize (lines, 1); gaiaFreeGeomColl (lines); return result; } SPATIALITE_PRIVATE void voronoj_free (void *p_voronoj) { /* memory cleanup: destroying the Voronoj auxiliary struct */ struct voronoj_aux *voronoj = (struct voronoj_aux *) p_voronoj; struct voronoj_point *pt; struct voronoj_point *ptn; free (voronoj->array); pt = voronoj->first_up; while (pt) { ptn = pt->next; free (pt); pt = ptn; } pt = voronoj->first_low; while (pt) { ptn = pt->next; free (pt); pt = ptn; } pt = voronoj->first_left; while (pt) { ptn = pt->next; free (pt); pt = ptn; } pt = voronoj->first_right; while (pt) { ptn = pt->next; free (pt); pt = ptn; } free (voronoj); } SPATIALITE_PRIVATE int delaunay_triangle_check (void *ppg) { /* test if it's really a triangle */ gaiaPolygonPtr pg = (gaiaPolygonPtr) ppg; gaiaRingPtr rng = pg->Exterior; if (rng->Points == 4 && pg->NumInteriors == 0) return 1; return 0; } static void concave_hull_stats (struct concave_hull_str *concave, double length) { /* update concave hull statistics */ if (concave->count == 0) { concave->count = 1.0; concave->mean = length; return; } concave->count += 1.0; concave->quot = concave->quot + (((concave->count - 1.0) * ((length - concave->mean) * (length - concave->mean))) / concave->count); concave->mean = concave->mean + ((length - concave->mean) / concave->count); } static int concave_hull_filter (double x1, double y1, double x2, double y2, double x3, double y3, double limit) { /* filtering triangles to be inserted into the Concave Hull */ gaiaGeomCollPtr segm; gaiaLinestringPtr ln; double length; segm = gaiaAllocGeomColl (); ln = gaiaAddLinestringToGeomColl (segm, 2); gaiaSetPoint (ln->Coords, 0, x1, y1); gaiaSetPoint (ln->Coords, 1, x2, y2); gaiaGeomCollLength (segm, &length); gaiaFreeGeomColl (segm); if (length >= limit) return 0; segm = gaiaAllocGeomColl (); ln = gaiaAddLinestringToGeomColl (segm, 2); gaiaSetPoint (ln->Coords, 0, x2, y2); gaiaSetPoint (ln->Coords, 1, x3, y3); gaiaGeomCollLength (segm, &length); gaiaFreeGeomColl (segm); if (length >= limit) return 0; segm = gaiaAllocGeomColl (); ln = gaiaAddLinestringToGeomColl (segm, 2); gaiaSetPoint (ln->Coords, 0, x3, y3); gaiaSetPoint (ln->Coords, 1, x1, y1); gaiaGeomCollLength (segm, &length); gaiaFreeGeomColl (segm); if (length >= limit) return 0; return 1; } static gaiaGeomCollPtr concave_hull_no_holes (gaiaGeomCollPtr in) { /* returning a Polygon surely not containing any hole */ gaiaGeomCollPtr out = NULL; gaiaPolygonPtr pg_in; gaiaPolygonPtr pg_out; gaiaRingPtr rng_in; gaiaRingPtr rng_out; int iv; double x; double y; double z; double m; if (in->DimensionModel == GAIA_XY_Z) out = gaiaAllocGeomCollXYZ (); else if (in->DimensionModel == GAIA_XY_M) out = gaiaAllocGeomCollXYM (); else if (in->DimensionModel == GAIA_XY_Z_M) out = gaiaAllocGeomCollXYZM (); else out = gaiaAllocGeomColl (); out->Srid = in->Srid; pg_in = in->FirstPolygon; while (pg_in) { rng_in = pg_in->Exterior; pg_out = gaiaAddPolygonToGeomColl (out, rng_in->Points, 0); rng_out = pg_out->Exterior; for (iv = 0; iv < rng_in->Points; iv++) { /* copying Exterior Ring vertices */ if (in->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng_in->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (rng_out->Coords, iv, x, y, z); } else if (in->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng_in->Coords, iv, &x, &y, &m); gaiaSetPointXYM (rng_out->Coords, iv, x, y, m); } else if (in->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng_in->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (rng_out->Coords, iv, x, y, z, m); } else { gaiaGetPoint (rng_in->Coords, iv, &x, &y); gaiaSetPoint (rng_out->Coords, iv, x, y); } } pg_in = pg_in->Next; } return out; } SPATIALITE_PRIVATE void * concave_hull_build (void *p_first, int dimension_model, double factor, int allow_holes) { /* building the Concave Hull */ struct concave_hull_str concave; gaiaPolygonPtr first = (gaiaPolygonPtr) p_first; gaiaPolygonPtr pg; gaiaRingPtr rng; gaiaPolygonPtr pg_out; gaiaRingPtr rng_out; gaiaGeomCollPtr segm; gaiaGeomCollPtr result; gaiaLinestringPtr ln; double x; double y; double z; double m; double x1; double y1; double x2; double y2; double x3; double y3; double length; double std_dev; int count; /* initializing the struct for mean and standard deviation */ concave.mean = 0.0; concave.quot = 0.0; concave.count = 0.0; pg = first; while (pg) { /* examining each triangle / computing statistics distribution */ rng = pg->Exterior; if (pg->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, 0, &x, &y, &z); x1 = x; y1 = y; gaiaGetPointXYZ (rng->Coords, 1, &x, &y, &z); x2 = x; y2 = y; gaiaGetPointXYZ (rng->Coords, 2, &x, &y, &z); x3 = x; y3 = y; } else if (pg->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, 0, &x, &y, &m); x1 = x; y1 = y; gaiaGetPointXYM (rng->Coords, 1, &x, &y, &m); x2 = x; y2 = y; gaiaGetPointXYM (rng->Coords, 2, &x, &y, &m); x3 = x; y3 = y; } else if (pg->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, 0, &x, &y, &z, &m); x1 = x; y1 = y; gaiaGetPointXYZM (rng->Coords, 1, &x, &y, &z, &m); x2 = x; y2 = y; gaiaGetPointXYZM (rng->Coords, 2, &x, &y, &z, &m); x3 = x; y3 = y; } else { gaiaGetPoint (rng->Coords, 0, &x, &y); x1 = x; y1 = y; gaiaGetPoint (rng->Coords, 1, &x, &y); x2 = x; y2 = y; gaiaGetPoint (rng->Coords, 2, &x, &y); x3 = x; y3 = y; } segm = gaiaAllocGeomColl (); ln = gaiaAddLinestringToGeomColl (segm, 2); gaiaSetPoint (ln->Coords, 0, x1, y1); gaiaSetPoint (ln->Coords, 1, x2, y2); gaiaGeomCollLength (segm, &length); gaiaFreeGeomColl (segm); concave_hull_stats (&concave, length); segm = gaiaAllocGeomColl (); ln = gaiaAddLinestringToGeomColl (segm, 2); gaiaSetPoint (ln->Coords, 0, x2, y2); gaiaSetPoint (ln->Coords, 1, x3, y3); gaiaGeomCollLength (segm, &length); gaiaFreeGeomColl (segm); concave_hull_stats (&concave, length); segm = gaiaAllocGeomColl (); ln = gaiaAddLinestringToGeomColl (segm, 2); gaiaSetPoint (ln->Coords, 0, x3, y3); gaiaSetPoint (ln->Coords, 1, x1, y1); gaiaGeomCollLength (segm, &length); gaiaFreeGeomColl (segm); concave_hull_stats (&concave, length); pg = pg->Next; } std_dev = sqrt (concave.quot / concave.count); /* creating the Geometry representing the Concave Hull */ if (dimension_model == GAIA_XY_Z) result = gaiaAllocGeomCollXYZ (); else if (dimension_model == GAIA_XY_M) result = gaiaAllocGeomCollXYM (); else if (dimension_model == GAIA_XY_Z_M) result = gaiaAllocGeomCollXYZM (); else result = gaiaAllocGeomColl (); count = 0; pg = first; while (pg) { /* selecting triangles to be inserted */ rng = pg->Exterior; if (pg->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, 0, &x, &y, &z); x1 = x; y1 = y; gaiaGetPointXYZ (rng->Coords, 1, &x, &y, &z); x2 = x; y2 = y; gaiaGetPointXYZ (rng->Coords, 2, &x, &y, &z); x3 = x; y3 = y; } else if (pg->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, 0, &x, &y, &m); x1 = x; y1 = y; gaiaGetPointXYM (rng->Coords, 1, &x, &y, &m); x2 = x; y2 = y; gaiaGetPointXYM (rng->Coords, 2, &x, &y, &m); x3 = x; y3 = y; } else if (pg->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, 0, &x, &y, &z, &m); x1 = x; y1 = y; gaiaGetPointXYZM (rng->Coords, 1, &x, &y, &z, &m); x2 = x; y2 = y; gaiaGetPointXYZM (rng->Coords, 2, &x, &y, &z, &m); x3 = x; y3 = y; } else { gaiaGetPoint (rng->Coords, 0, &x, &y); x1 = x; y1 = y; gaiaGetPoint (rng->Coords, 1, &x, &y); x2 = x; y2 = y; gaiaGetPoint (rng->Coords, 2, &x, &y); x3 = x; y3 = y; } if (concave_hull_filter (x1, y1, x2, y2, x3, y3, std_dev * factor)) { /* inserting this triangle into the Concave Hull */ pg_out = gaiaAddPolygonToGeomColl (result, 4, 0); rng_out = pg_out->Exterior; if (pg->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, 0, &x, &y, &z); gaiaSetPointXYZ (rng_out->Coords, 0, x, y, z); gaiaGetPointXYZ (rng->Coords, 1, &x, &y, &z); gaiaSetPointXYZ (rng_out->Coords, 1, x, y, z); gaiaGetPointXYZ (rng->Coords, 2, &x, &y, &z); gaiaSetPointXYZ (rng_out->Coords, 2, x, y, z); gaiaGetPointXYZ (rng->Coords, 3, &x, &y, &z); gaiaSetPointXYZ (rng_out->Coords, 3, x, y, z); } else if (pg->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, 0, &x, &y, &m); gaiaSetPointXYM (rng_out->Coords, 0, x, y, m); gaiaGetPointXYM (rng->Coords, 1, &x, &y, &m); gaiaSetPointXYM (rng_out->Coords, 1, x, y, m); gaiaGetPointXYM (rng->Coords, 2, &x, &y, &m); gaiaSetPointXYM (rng_out->Coords, 2, x, y, m); gaiaGetPointXYM (rng->Coords, 3, &x, &y, &m); gaiaSetPointXYM (rng_out->Coords, 3, x, y, m); } else if (pg->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, 0, &x, &y, &z, &m); gaiaSetPointXYZM (rng_out->Coords, 0, x, y, z, m); gaiaGetPointXYZM (rng->Coords, 1, &x, &y, &z, &m); gaiaSetPointXYZM (rng_out->Coords, 1, x, y, z, m); gaiaGetPointXYZM (rng->Coords, 2, &x, &y, &z, &m); gaiaSetPointXYZM (rng_out->Coords, 2, x, y, z, m); gaiaGetPointXYZM (rng->Coords, 3, &x, &y, &z, &m); gaiaSetPointXYZM (rng_out->Coords, 3, x, y, z, m); } else { gaiaGetPoint (rng->Coords, 0, &x, &y); gaiaSetPoint (rng_out->Coords, 0, x, y); gaiaGetPoint (rng->Coords, 1, &x, &y); gaiaSetPoint (rng_out->Coords, 1, x, y); gaiaGetPoint (rng->Coords, 2, &x, &y); gaiaSetPoint (rng_out->Coords, 2, x, y); gaiaGetPoint (rng->Coords, 3, &x, &y); gaiaSetPoint (rng_out->Coords, 3, x, y); } count++; } pg = pg->Next; } if (count == 0) { gaiaFreeGeomColl (result); return NULL; } /* merging all triangles into the Concave Hull */ segm = result; result = gaiaUnaryUnion (segm); gaiaFreeGeomColl (segm); if (!result) return NULL; if (result->FirstPolygon == NULL) { gaiaFreeGeomColl (result); return NULL; } if (allow_holes) return result; /* suppressing any interior hole */ segm = result; result = concave_hull_no_holes (segm); gaiaFreeGeomColl (segm); if (!result) return NULL; if (result->FirstPolygon == NULL) { gaiaFreeGeomColl (result); return NULL; } return result; } #endif /* end GEOS experimental features */ libspatialite-4.1.1/src/gaiageo/gg_xml.c0000664000175000017500000030451012163502133015071 00000000000000/* gg_xml.c -- XML Document implementation version 4.1, 2013 May 8 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #ifdef ENABLE_LIBXML2 /* LIBXML2 enabled: supporting XML documents */ #include #include #include #include #include #include #include #include #include #include struct gaiaxml_namespace { /* a Namespace declaration */ int type; xmlChar *prefix; xmlChar *href; struct gaiaxml_namespace *next; }; struct gaiaxml_ns_list { /* a Namespaces list */ struct gaiaxml_namespace *first; struct gaiaxml_namespace *last; }; static struct gaiaxml_namespace * splite_create_namespace (int type, const xmlChar * prefix, const xmlChar * href) { /* allocating and initializing a Namespace declaration */ int len; struct gaiaxml_namespace *ptr = malloc (sizeof (struct gaiaxml_namespace)); ptr->type = type; if (prefix == NULL) ptr->prefix = NULL; else { len = strlen ((const char *) prefix); ptr->prefix = malloc (len + 1); memcpy (ptr->prefix, prefix, len + 1); } if (href == NULL) ptr->href = NULL; else { len = strlen ((const char *) href); ptr->href = malloc (len + 1); memcpy (ptr->href, href, len + 1); } ptr->next = NULL; return ptr; } static void splite_free_namespace (struct gaiaxml_namespace *ptr) { /* memory cleanup - destroying a Namespace declaration */ if (ptr == NULL) return; if (ptr->prefix != NULL) free (ptr->prefix); if (ptr->href != NULL) free (ptr->href); free (ptr); } static struct gaiaxml_ns_list * splite_create_ns_list (void) { /* allocating and initializing a Namespaces list */ struct gaiaxml_ns_list *ptr = malloc (sizeof (struct gaiaxml_ns_list)); ptr->first = NULL; ptr->last = NULL; return ptr; } static void splite_free_ns_list (struct gaiaxml_ns_list *ptr) { /* memory cleanup - destroying a Namespaces list */ struct gaiaxml_namespace *p; struct gaiaxml_namespace *p_n; if (ptr == NULL) return; p = ptr->first; while (p != NULL) { p_n = p->next; splite_free_namespace (p); p = p_n; } free (ptr); } static void splite_add_namespace (struct gaiaxml_ns_list *list, int type, const xmlChar * prefix, const xmlChar * href) { /* inserting a new Namespace into the list */ struct gaiaxml_namespace *ns; if (list == NULL) return; ns = list->first; while (ns != NULL) { /* checking if already defined */ int ok_type = 0; int ok_prefix = 0; int ok_href = 0; if (ns->type == type) ok_type = 1; if (ns->prefix == NULL && prefix == NULL) ok_prefix = 1; if (ns->prefix != NULL && prefix != NULL) { if (strcmp ((const char *) (ns->prefix), (const char *) prefix) == 0) ok_prefix = 1; } if (ns->href == NULL && href == NULL) ok_href = 1; if (ns->href != NULL && href != NULL) { if (strcmp ((const char *) (ns->href), (const char *) href) == 0) ok_href = 1; } if (ok_type && ok_prefix && ok_href) return; ns = ns->next; } /* inserting a new Namespace */ ns = splite_create_namespace (type, prefix, href); if (list->first == NULL) list->first = ns; if (list->last != NULL) list->last->next = ns; list->last = ns; } static void spliteSilentError (void *ctx, const char *msg, ...) { /* shutting up XML Errors */ if (ctx != NULL) ctx = NULL; /* suppressing stupid compiler warnings (unused args) */ if (msg != NULL) ctx = NULL; /* suppressing stupid compiler warnings (unused args) */ } static void spliteParsingError (void *ctx, const char *msg, ...) { /* appending to the current Parsing Error buffer */ struct splite_internal_cache *cache = (struct splite_internal_cache *) ctx; gaiaOutBufferPtr buf = (gaiaOutBufferPtr) (cache->xmlParsingErrors); char out[65536]; va_list args; if (ctx != NULL) ctx = NULL; /* suppressing stupid compiler warnings (unused args) */ va_start (args, msg); vsnprintf (out, 65536, msg, args); gaiaAppendToOutBuffer (buf, out); va_end (args); } static void spliteSchemaValidationError (void *ctx, const char *msg, ...) { /* appending to the current SchemaValidation Error buffer */ struct splite_internal_cache *cache = (struct splite_internal_cache *) ctx; gaiaOutBufferPtr buf = (gaiaOutBufferPtr) (cache->xmlSchemaValidationErrors); char out[65536]; va_list args; if (ctx != NULL) ctx = NULL; /* suppressing stupid compiler warnings (unused args) */ va_start (args, msg); vsnprintf (out, 65536, msg, args); gaiaAppendToOutBuffer (buf, out); va_end (args); } static void spliteResetXmlErrors (struct splite_internal_cache *cache) { /* resetting the XML Error buffers */ gaiaOutBufferPtr buf = (gaiaOutBufferPtr) (cache->xmlParsingErrors); gaiaOutBufferReset (buf); buf = (gaiaOutBufferPtr) (cache->xmlSchemaValidationErrors); gaiaOutBufferReset (buf); } GAIAGEO_DECLARE char * gaiaXmlBlobGetLastParseError (void *ptr) { /* get the most recent XML Parse error/warning message */ struct splite_internal_cache *cache = (struct splite_internal_cache *) ptr; gaiaOutBufferPtr buf = (gaiaOutBufferPtr) (cache->xmlParsingErrors); return buf->Buffer; } GAIAGEO_DECLARE char * gaiaXmlBlobGetLastValidateError (void *ptr) { /* get the most recent XML Validate error/warning message */ struct splite_internal_cache *cache = (struct splite_internal_cache *) ptr; gaiaOutBufferPtr buf = (gaiaOutBufferPtr) (cache->xmlSchemaValidationErrors); return buf->Buffer; } GAIAGEO_DECLARE char * gaiaXmlBlobGetLastXPathError (void *ptr) { /* get the most recent XML Validate error/warning message */ struct splite_internal_cache *cache = (struct splite_internal_cache *) ptr; gaiaOutBufferPtr buf = (gaiaOutBufferPtr) (cache->xmlXPathErrors); return buf->Buffer; } SPATIALITE_PRIVATE void splite_free_xml_schema_cache_item (struct splite_xmlSchema_cache_item *p) { /* freeing an XmlSchema Cache Item */ if (p->schemaURI) free (p->schemaURI); if (p->parserCtxt) xmlSchemaFreeParserCtxt (p->parserCtxt); if (p->schema) xmlSchemaFree (p->schema); if (p->schemaDoc) xmlFreeDoc (p->schemaDoc); p->schemaURI = NULL; p->parserCtxt = NULL; p->schemaDoc = NULL; p->schema = NULL; } static int splite_xmlSchemaCacheFind (struct splite_internal_cache *cache, const char *schemaURI, xmlDocPtr * schema_doc, xmlSchemaParserCtxtPtr * parser_ctxt, xmlSchemaPtr * schema) { /* attempting to retrive some XmlSchema from within the Cache */ int i; time_t now; struct splite_xmlSchema_cache_item *p; for (i = 0; i < MAX_XMLSCHEMA_CACHE; i++) { p = &(cache->xmlSchemaCache[i]); if (p->schemaURI) { if (strcmp (schemaURI, p->schemaURI) == 0) { /* found a matching cache-item */ *schema_doc = p->schemaDoc; *parser_ctxt = p->parserCtxt; *schema = p->schema; /* updating the timestamp */ time (&now); p->timestamp = now; return 1; } } } return 0; } static void splite_xmlSchemaCacheInsert (struct splite_internal_cache *cache, const char *schemaURI, xmlDocPtr schema_doc, xmlSchemaParserCtxtPtr parser_ctxt, xmlSchemaPtr schema) { /* inserting a new XmlSchema item into the Cache */ int i; int len = strlen (schemaURI); time_t now; time_t oldest; struct splite_xmlSchema_cache_item *pSlot = NULL; struct splite_xmlSchema_cache_item *p; time (&now); oldest = now; for (i = 0; i < MAX_XMLSCHEMA_CACHE; i++) { p = &(cache->xmlSchemaCache[i]); if (p->schemaURI == NULL) { /* found an empty slot */ pSlot = p; break; } if (p->timestamp < oldest) { /* saving the oldest slot */ pSlot = p; oldest = p->timestamp; } } /* inserting into the Cache Slot */ splite_free_xml_schema_cache_item (pSlot); pSlot->timestamp = now; pSlot->schemaURI = malloc (len + 1); strcpy (pSlot->schemaURI, schemaURI); pSlot->schemaDoc = schema_doc; pSlot->parserCtxt = parser_ctxt; pSlot->schema = schema; } static void sniff_sld_payload (xmlNodePtr node, int *layers, int *point, int *line, int *polygon, int *raster) { /* recursively sniffing a generic SLD payload type */ while (node) { if (node->type == XML_ELEMENT_NODE) { const char *name = (const char *) (node->name); if (strcmp (name, "FeatureTypeStyle") == 0) *layers += 1; if (strcmp (name, "CoverageStyle") == 0) *layers += 1; if (strcmp (name, "PointSymbolizer") == 0) *point += 1; if (strcmp (name, "LineSymbolizer") == 0) *line += 1; if (strcmp (name, "PolygonSymbolizer") == 0) *polygon += 1; if (strcmp (name, "RasterSymbolizer") == 0) *raster += 1; } sniff_sld_payload (node->children, layers, point, line, polygon, raster); node = node->next; } } static void sniff_payload (xmlDocPtr xml_doc, int *is_iso_metadata, int *is_sld_se_vector_style, int *is_sld_se_raster_style, int *is_svg) { /* sniffing the payload type */ xmlNodePtr root = xmlDocGetRootElement (xml_doc); *is_iso_metadata = 0; *is_sld_se_vector_style = 0; *is_sld_se_raster_style = 0; *is_svg = 0; if (root->name != NULL) { const char *name = (const char *) (root->name); if (strcmp (name, "MD_Metadata") == 0) *is_iso_metadata = 1; if (strcmp (name, "FeatureTypeStyle") == 0 || strcmp (name, "PointSymbolizer") == 0 || strcmp (name, "LineSymbolizer") == 0 || strcmp (name, "PolygonSymbolizer") == 0 || strcmp (name, "TextSymbolizer") == 0) *is_sld_se_vector_style = 1; if (strcmp (name, "RasterSymbolizer") == 0 || strcmp (name, "CoverageStyle") == 0) *is_sld_se_raster_style = 1; if (strcmp (name, "StyledLayerDescriptor") == 0) { /* sniffing an SLD (1.0.0 ??) payload */ int layers = 0; int point = 0; int line = 0; int polygon = 0; int raster = 0; xmlNodePtr node = xmlDocGetRootElement (xml_doc); sniff_sld_payload (node, &layers, &point, &line, &polygon, &raster); if (layers == 1 && point == 0 && line == 0 && polygon == 0 && raster == 1) { /* raster style */ *is_sld_se_raster_style = 1; } if (layers == 1 && (point > 0 || line > 0 || polygon > 0) && raster == 0) { /* vector style */ *is_sld_se_vector_style = 1; } } if (strcmp (name, "svg") == 0) *is_svg = 1; } } static void find_iso_ids (xmlNodePtr node, const char *name, char **string, int *open_tag, int *char_string, int *count) { /* recursively scanning the DOM tree [fileIdentifier or parentIdentifier] */ xmlNode *cur_node = NULL; int open = 0; int cs = 0; for (cur_node = node; cur_node; cur_node = cur_node->next) { if (cur_node->type == XML_ELEMENT_NODE) { const char *xname = (const char *) (cur_node->name); if (*open_tag == 1) { if (strcmp (xname, "CharacterString") == 0) { cs = 1; *char_string = 1; } } if (strcmp (xname, name) == 0) { if (cur_node->parent != NULL) { if (cur_node->parent->type == XML_ELEMENT_NODE) { if (strcmp ((const char *) (cur_node->parent->name), "MD_Metadata") == 0) { /* / only if / / */ open = 1; *open_tag = 1; } } } } } if (cur_node->type == XML_TEXT_NODE && *open_tag == 1 && *char_string == 1) { if (cur_node->content != NULL) { int len = strlen ((const char *) cur_node->content); char *buf = malloc (len + 1); strcpy (buf, (const char *) cur_node->content); if (*string) free (*string); *string = buf; *count += 1; } } find_iso_ids (cur_node->children, name, string, open_tag, char_string, count); if (open) *open_tag = 0; if (cs) *char_string = 0; } } static void find_iso_title (xmlNodePtr node, char **string, int *open_tag, int *char_string, int *count) { /* recursively scanning the DOM tree [title] */ xmlNode *cur_node = NULL; xmlNode *parent; int open = 0; int cs = 0; int ok_parent; for (cur_node = node; cur_node; cur_node = cur_node->next) { if (cur_node->type == XML_ELEMENT_NODE) { if (*open_tag == 1) { if (strcmp ((const char *) (cur_node->name), "CharacterString") == 0) { cs = 1; *char_string = 1; } } if (strcmp ((const char *) (cur_node->name), "title") == 0) { ok_parent = 0; parent = cur_node->parent; if (parent) { if (strcmp ((const char *) (parent->name), "CI_Citation") == 0) ok_parent++; } if (ok_parent == 1) { parent = parent->parent; if (strcmp ((const char *) (parent->name), "citation") == 0) ok_parent++; } if (ok_parent == 2) { parent = parent->parent; if (strcmp ((const char *) (parent->name), "MD_DataIdentification") == 0) ok_parent++; } if (ok_parent == 3) { parent = parent->parent; if (strcmp ((const char *) (parent->name), "identificationInfo") == 0) ok_parent++; } if (ok_parent == 4) { parent = parent->parent; if (strcmp ((const char *) (parent->name), "MD_Metadata") == 0) ok_parent++; } if (ok_parent == 5) { /* / only if / / / / / */ open = 1; *open_tag = 1; } } } if (cur_node->type == XML_TEXT_NODE && *open_tag == 1 && *char_string == 1) { if (cur_node->content != NULL) { int len = strlen ((const char *) cur_node->content); char *buf = malloc (len + 1); strcpy (buf, (const char *) cur_node->content); if (*string) free (*string); *string = buf; *count += 1; } } find_iso_title (cur_node->children, string, open_tag, char_string, count); if (open) *open_tag = 0; if (cs) *char_string = 0; } } static void find_iso_abstract (xmlNodePtr node, char **string, int *open_tag, int *char_string, int *count) { /* recursively scanning the DOM abstract [title] */ xmlNode *cur_node = NULL; xmlNode *parent; int open = 0; int cs = 0; int ok_parent; for (cur_node = node; cur_node; cur_node = cur_node->next) { if (cur_node->type == XML_ELEMENT_NODE) { if (*open_tag == 1) { if (strcmp ((const char *) (cur_node->name), "CharacterString") == 0) { cs = 1; *char_string = 1; } } if (strcmp ((const char *) (cur_node->name), "abstract") == 0) { ok_parent = 0; parent = cur_node->parent; if (parent) { if (strcmp ((const char *) (parent->name), "MD_DataIdentification") == 0) ok_parent++; } if (ok_parent == 1) { parent = parent->parent; if (strcmp ((const char *) (parent->name), "identificationInfo") == 0) ok_parent++; } if (ok_parent == 2) { parent = parent->parent; if (strcmp ((const char *) (parent->name), "MD_Metadata") == 0) ok_parent++; } if (ok_parent == 3) { /* only if <MD_Metadata> / <identificationInfo> / <MD_DataIdentification> / <abstract> */ open = 1; *open_tag = 1; } } } if (cur_node->type == XML_TEXT_NODE && *open_tag == 1 && *char_string == 1) { if (cur_node->content != NULL) { int len = strlen ((const char *) cur_node->content); char *buf = malloc (len + 1); strcpy (buf, (const char *) cur_node->content); if (*string) free (*string); *string = buf; *count += 1; } } find_iso_abstract (cur_node->children, string, open_tag, char_string, count); if (open) *open_tag = 0; if (cs) *char_string = 0; } } static void find_bbox_coord (xmlNodePtr node, const char *name, double *coord, int *open_tag, int *decimal, int *count) { /* recursively scanning an EX_GeographicBoundingBox sub-tree */ xmlNode *cur_node = NULL; int open = 0; int dec = 0; for (cur_node = node; cur_node; cur_node = cur_node->next) { if (cur_node->type == XML_ELEMENT_NODE) { if (*open_tag == 1) { if (strcmp ((const char *) (cur_node->name), "Decimal") == 0) { dec = 1; *decimal = 1; } } if (strcmp ((const char *) (cur_node->name), name) == 0) { open = 1; *open_tag = 1; } } if (cur_node->type == XML_TEXT_NODE && *open_tag == 1 && *decimal == 1) { if (cur_node->content != NULL) { /* found a coord value */ double value = atof ((const char *) cur_node->content); *coord = value; *count += 1; } } find_bbox_coord (cur_node->children, name, coord, open_tag, decimal, count); if (open) *open_tag = 0; if (dec) *decimal = 0; } } static int parse_bounding_box (xmlNodePtr node, double *minx, double *miny, double *maxx, double *maxy) { /* attempting to parse an EX_GeographicBoundingBox sub-tree */ int ok_minx = 0; int ok_miny = 0; int ok_maxx = 0; int ok_maxy = 0; int open_tag; int decimal; int count; double coord; /* retrieving minx - West */ open_tag = 0; decimal = 0; count = 0; find_bbox_coord (node, "westBoundLongitude", &coord, &open_tag, &decimal, &count); if (count == 1) { *minx = coord; ok_minx = 1; } /* retrieving maxx - East */ open_tag = 0; decimal = 0; count = 0; find_bbox_coord (node, "eastBoundLongitude", &coord, &open_tag, &decimal, &count); if (count == 1) { *maxx = coord; ok_maxx = 1; } /* retrieving miny - South */ open_tag = 0; decimal = 0; count = 0; find_bbox_coord (node, "southBoundLatitude", &coord, &open_tag, &decimal, &count); if (count == 1) { *miny = coord; ok_miny = 1; } /* retrieving maxy - North */ open_tag = 0; decimal = 0; count = 0; find_bbox_coord (node, "northBoundLatitude", &coord, &open_tag, &decimal, &count); if (count == 1) { *maxy = coord; ok_maxy = 1; } if (ok_minx && ok_miny && ok_maxx && ok_maxy) { /* ok, valid BBOX */ return 1; } return 0; } static void find_iso_geometry (xmlNodePtr node, gaiaGeomCollPtr * geom) { /* recursively scanning the DOM tree [geometry] */ xmlNode *cur_node = NULL; xmlNode *parent; int ok_parent; for (cur_node = node; cur_node; cur_node = cur_node->next) { if (cur_node->type == XML_ELEMENT_NODE) { if (strcmp ((const char *) (cur_node->name), "EX_GeographicBoundingBox") == 0) { ok_parent = 0; parent = cur_node->parent; if (parent) { if (strcmp ((const char *) (parent->name), "geographicElement") == 0) ok_parent++; } if (ok_parent == 1) { parent = parent->parent; if (strcmp ((const char *) (parent->name), "EX_Extent") == 0) ok_parent++; } if (ok_parent == 2) { parent = parent->parent; if (strcmp ((const char *) (parent->name), "extent") == 0) ok_parent++; } if (ok_parent == 3) { parent = parent->parent; if (strcmp ((const char *) (parent->name), "MD_DataIdentification") == 0) ok_parent++; } if (ok_parent == 4) { parent = parent->parent; if (strcmp ((const char *) (parent->name), "identificationInfo") == 0) ok_parent++; } if (ok_parent == 5) { parent = parent->parent; if (strcmp ((const char *) (parent->name), "MD_Metadata") == 0) ok_parent++; } if (ok_parent == 6) { /* only if <MD_Metadata> / <identificationInfo> / <MD_DataIdentification> / <extent> / <EX_Extent> / <geographicElement> / <EX_GeographicBoundingBox> */ double minx; double maxx; double miny; double maxy; if (parse_bounding_box (cur_node, &minx, &miny, &maxx, &maxy)) { gaiaPolygonPtr pg; gaiaRingPtr rng; gaiaGeomCollPtr g = *geom; if (g == NULL) { g = gaiaAllocGeomColl (); g->Srid = 4326; g->DeclaredType = GAIA_MULTIPOLYGON; } pg = gaiaAddPolygonToGeomColl (g, 5, 0); rng = pg->Exterior; gaiaSetPoint (rng->Coords, 0, minx, miny); gaiaSetPoint (rng->Coords, 1, maxx, miny); gaiaSetPoint (rng->Coords, 2, maxx, maxy); gaiaSetPoint (rng->Coords, 3, minx, maxy); gaiaSetPoint (rng->Coords, 4, minx, miny); *geom = g; } } } } find_iso_geometry (cur_node->children, geom); } } static void retrieve_iso_identifiers (xmlDocPtr xml_doc, char **fileIdentifier, char **parentIdentifier, char **title, char **abstract, unsigned char **geometry, short *geometry_len) { /* / attempting to retrieve the FileIdentifier, ParentIdentifier, / Title, Abstract and Geometry items from an ISO Metadata document */ xmlNodePtr root = xmlDocGetRootElement (xml_doc); int open_tag; int char_string; int count; char *string; gaiaGeomCollPtr geom = NULL; *fileIdentifier = NULL; *parentIdentifier = NULL; *title = NULL; *abstract = NULL; *geometry = NULL; /* attempting to retrieve the FileIdentifier item */ open_tag = 0; char_string = 0; count = 0; string = NULL; find_iso_ids (root, "fileIdentifier", &string, &open_tag, &char_string, &count); if (string) { if (count == 1) *fileIdentifier = string; else free (string); } /* attempting to retrieve the ParentIdentifier item */ open_tag = 0; char_string = 0; count = 0; string = NULL; find_iso_ids (root, "parentIdentifier", &string, &open_tag, &char_string, &count); if (string) { if (count == 1) *parentIdentifier = string; else free (string); } /* attempting to retrieve the Title item */ open_tag = 0; char_string = 0; count = 0; string = NULL; find_iso_title (root, &string, &open_tag, &char_string, &count); if (string) { if (count == 1) *title = string; else free (string); } /* attempting to retrieve the Abstract item */ open_tag = 0; char_string = 0; count = 0; string = NULL; find_iso_abstract (root, &string, &open_tag, &char_string, &count); if (string) { if (count == 1) *abstract = string; else free (string); } /* attempting to retrieve the Geometry item */ open_tag = 0; char_string = 0; count = 0; string = NULL; find_iso_geometry (root, &geom); if (geom) { int blob_len; unsigned char *blob = NULL; gaiaMbrGeometry (geom); gaiaToSpatiaLiteBlobWkb (geom, &blob, &blob_len); gaiaFreeGeomColl (geom); *geometry = blob; *geometry_len = (short) blob_len; } } static void find_sld_se_title (xmlNodePtr node, char **string, int *style, int *rule) { /* recursively scanning the DOM tree [title] */ int is_style = 0; int is_rule = 0; while (node) { if (node->type == XML_ELEMENT_NODE) { const char *name = (const char *) (node->name); if (strcmp (name, "FeatureTypeStyle") == 0 || strcmp (name, "CoverageStyle") == 0 || strcmp (name, "StyledLayerDescriptor") == 0) { is_style = 1; *style = 1; } if (strcmp (name, "Rule") == 0) { is_rule = 1; *rule = 1; } if (strcmp (name, "Title") == 0) { if (*style == 1 && *rule == 0) { xmlNodePtr child = node->children; if (child) { if (child->type == XML_TEXT_NODE) { int len; const char *value = (const char *) (child->content); len = strlen (value); if (*string != NULL) free (*string); *string = malloc (len + 1); strcpy (*string, value); } } } } } find_sld_se_title (node->children, string, style, rule); if (is_style) *style = 0; if (is_rule) *rule = 0; node = node->next; } } static void find_sld_se_abstract (xmlNodePtr node, char **string, int *style, int *rule) { /* recursively scanning the DOM tree [abstract] */ int is_style = 0; int is_rule = 0; while (node) { if (node->type == XML_ELEMENT_NODE) { const char *name = (const char *) (node->name); if (strcmp (name, "FeatureTypeStyle") == 0 || strcmp (name, "CoverageStyle") == 0 || strcmp (name, "StyledLayerDescriptor") == 0) { is_style = 1; *style = 1; } if (strcmp (name, "Rule") == 0) { is_rule = 1; *rule = 1; } if (strcmp (name, "Abstract") == 0) { if (*style == 1 && *rule == 0) { xmlNodePtr child = node->children; if (child) { if (child->type == XML_TEXT_NODE) { int len; const char *value = (const char *) (child->content); len = strlen (value); if (*string != NULL) free (*string); *string = malloc (len + 1); strcpy (*string, value); } } } } } find_sld_se_abstract (node->children, string, style, rule); if (is_style) *style = 0; if (is_rule) *rule = 0; node = node->next; } } static void retrieve_sld_se_identifiers (xmlDocPtr xml_doc, char **title, char **abstract) { /* / attempting to retrieve the Title and Abstract items / from an SLD/SE Style document */ xmlNodePtr root = xmlDocGetRootElement (xml_doc); int style; int rule; char *string; const char *name = (const char *) (root->name); *title = NULL; *abstract = NULL; /* attempting to retrieve the Title item */ style = 0; rule = 0; string = NULL; if (name != NULL) { if (strcmp (name, "PointSymbolizer") == 0 || strcmp (name, "LineSymbolizer") == 0 || strcmp (name, "PolygonSymbolizer") == 0 || strcmp (name, "TextSymbolizer") == 0 || strcmp (name, "RasterSymbolizer") == 0) style = 1; } find_sld_se_title (root, &string, &style, &rule); if (string) *title = string; /* attempting to retrieve the Abstract item */ style = 0; rule = 0; string = NULL; if (name != NULL) { if (strcmp (name, "PointSymbolizer") == 0 || strcmp (name, "LineSymbolizer") == 0 || strcmp (name, "PolygonSymbolizer") == 0 || strcmp (name, "TextSymbolizer") == 0 || strcmp (name, "RasterSymbolizer") == 0) style = 1; } find_sld_se_abstract (root, &string, &style, &rule); if (string) *abstract = string; } GAIAGEO_DECLARE void gaiaXmlToBlob (void *p_cache, const unsigned char *xml, int xml_len, int compressed, const char *schemaURI, unsigned char **result, int *size, char **parsing_errors, char **schema_validation_errors) { /* attempting to build an XmlBLOB buffer */ xmlDocPtr xml_doc; xmlDocPtr schema_doc; xmlSchemaPtr schema; xmlSchemaParserCtxtPtr parser_ctxt; xmlSchemaValidCtxtPtr valid_ctxt; int is_iso_metadata = 0; int is_sld_se_vector_style = 0; int is_sld_se_raster_style = 0; int is_svg = 0; int len; int zip_len; short uri_len = 0; short fileid_len = 0; short parentid_len = 0; short title_len = 0; short abstract_len = 0; short geometry_len = 0; char *fileIdentifier = NULL; char *parentIdentifier = NULL; char *title = NULL; char *abstract = NULL; unsigned char *geometry = NULL; uLong crc; Bytef *zip_buf; unsigned char *buf; unsigned char *ptr; unsigned char flags = 0x00; int endian_arch = gaiaEndianArch (); struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; gaiaOutBufferPtr parsingBuf = (gaiaOutBufferPtr) (cache->xmlParsingErrors); gaiaOutBufferPtr schemaValidationBuf = (gaiaOutBufferPtr) (cache->xmlSchemaValidationErrors); xmlGenericErrorFunc silentError = (xmlGenericErrorFunc) spliteSilentError; xmlGenericErrorFunc parsingError = (xmlGenericErrorFunc) spliteParsingError; xmlGenericErrorFunc schemaError = (xmlGenericErrorFunc) spliteSchemaValidationError; spliteResetXmlErrors (cache); *result = NULL; *size = 0; if (parsing_errors) *parsing_errors = NULL; if (schema_validation_errors) *schema_validation_errors = NULL; if (xml == NULL) return; xmlSetGenericErrorFunc (NULL, silentError); if (schemaURI != NULL) { if (splite_xmlSchemaCacheFind (cache, schemaURI, &schema_doc, &parser_ctxt, &schema)) ; else { /* preparing the Schema */ xmlSetGenericErrorFunc (cache, schemaError); schema_doc = xmlReadFile ((const char *) schemaURI, NULL, 0); if (schema_doc == NULL) { spatialite_e ("unable to load the Schema\n"); if (schema_validation_errors) *schema_validation_errors = schemaValidationBuf->Buffer; xmlSetGenericErrorFunc ((void *) stderr, NULL); return; } parser_ctxt = xmlSchemaNewDocParserCtxt (schema_doc); if (parser_ctxt == NULL) { spatialite_e ("unable to prepare the Schema Context\n"); xmlFreeDoc (schema_doc); if (schema_validation_errors) *schema_validation_errors = schemaValidationBuf->Buffer; xmlSetGenericErrorFunc ((void *) stderr, NULL); return; } schema = xmlSchemaParse (parser_ctxt); if (schema == NULL) { spatialite_e ("invalid Schema\n"); xmlFreeDoc (schema_doc); if (schema_validation_errors) *schema_validation_errors = schemaValidationBuf->Buffer; xmlSetGenericErrorFunc ((void *) stderr, NULL); return; } splite_xmlSchemaCacheInsert (cache, schemaURI, schema_doc, parser_ctxt, schema); } } /* testing if the XMLDocument is well-formed */ xmlSetGenericErrorFunc (cache, parsingError); xml_doc = xmlReadMemory ((const char *) xml, xml_len, "noname.xml", NULL, 0); if (xml_doc == NULL) { /* parsing error; not a well-formed XML */ spatialite_e ("XML parsing error\n"); if (parsing_errors) *parsing_errors = parsingBuf->Buffer; xmlSetGenericErrorFunc ((void *) stderr, NULL); return; } if (parsing_errors) *parsing_errors = parsingBuf->Buffer; if (schemaURI != NULL) { /* Schema validation */ xmlSetGenericErrorFunc (cache, schemaError); valid_ctxt = xmlSchemaNewValidCtxt (schema); if (valid_ctxt == NULL) { spatialite_e ("unable to prepare a validation context\n"); xmlFreeDoc (xml_doc); if (schema_validation_errors) *schema_validation_errors = schemaValidationBuf->Buffer; xmlSetGenericErrorFunc ((void *) stderr, NULL); return; } if (xmlSchemaValidateDoc (valid_ctxt, xml_doc) != 0) { spatialite_e ("Schema validation failed\n"); xmlSchemaFreeValidCtxt (valid_ctxt); xmlFreeDoc (xml_doc); if (schema_validation_errors) *schema_validation_errors = schemaValidationBuf->Buffer; xmlSetGenericErrorFunc ((void *) stderr, NULL); return; } xmlSchemaFreeValidCtxt (valid_ctxt); } /* testing for special cases: ISO Metadata, SLD/SE Styles and SVG */ sniff_payload (xml_doc, &is_iso_metadata, &is_sld_se_vector_style, &is_sld_se_raster_style, &is_svg); if (is_iso_metadata) retrieve_iso_identifiers (xml_doc, &fileIdentifier, &parentIdentifier, &title, &abstract, &geometry, &geometry_len); if (is_sld_se_vector_style || is_sld_se_raster_style) retrieve_sld_se_identifiers (xml_doc, &title, &abstract); xmlFreeDoc (xml_doc); if (compressed) { /* compressing the XML payload */ uLong zLen = compressBound (xml_len); zip_buf = malloc (zLen); if (compress (zip_buf, &zLen, (const Bytef *) xml, (uLong) xml_len) != Z_OK) { /* compression error */ spatialite_e ("XmlBLOB DEFLATE compress error\n"); free (zip_buf); xmlSetGenericErrorFunc ((void *) stderr, NULL); return; } zip_len = (int) zLen; } else zip_len = xml_len; /* reporting errors */ if (parsing_errors) *parsing_errors = parsingBuf->Buffer; if (schema_validation_errors) *schema_validation_errors = schemaValidationBuf->Buffer; /* computing the XmlBLOB size */ len = 36; /* fixed header-footer size */ if (schemaURI) uri_len = strlen ((const char *) schemaURI); if (fileIdentifier) fileid_len = strlen ((const char *) fileIdentifier); if (parentIdentifier) parentid_len = strlen ((const char *) parentIdentifier); if (title) title_len = strlen ((const char *) title); if (abstract) abstract_len = strlen ((const char *) abstract); len += zip_len; len += uri_len; len += fileid_len; len += parentid_len; len += title_len; len += abstract_len; len += geometry_len; buf = malloc (len); *buf = GAIA_XML_START; /* START signature */ flags |= GAIA_XML_LITTLE_ENDIAN; if (compressed) flags |= GAIA_XML_COMPRESSED; if (schemaURI != NULL) flags |= GAIA_XML_VALIDATED; if (is_iso_metadata) flags |= GAIA_XML_ISO_METADATA; if (is_sld_se_vector_style) flags |= GAIA_XML_SLD_SE_VECTOR_STYLE; if (is_sld_se_raster_style) flags |= GAIA_XML_SLD_SE_RASTER_STYLE; if (is_svg) flags |= GAIA_XML_SVG; *(buf + 1) = flags; /* XmlBLOB flags */ *(buf + 2) = GAIA_XML_HEADER; /* HEADER signature */ gaiaExport32 (buf + 3, xml_len, 1, endian_arch); /* the uncompressed XMLDocument size */ gaiaExport32 (buf + 7, zip_len, 1, endian_arch); /* the compressed XMLDocument size */ gaiaExport16 (buf + 11, uri_len, 1, endian_arch); /* the SchemaURI length in bytes */ *(buf + 13) = GAIA_XML_SCHEMA; /* SCHEMA signature */ ptr = buf + 14; if (schemaURI) { /* the SchemaURI */ memcpy (ptr, schemaURI, uri_len); ptr += uri_len; } gaiaExport16 (ptr, fileid_len, 1, endian_arch); /* the FileIdentifier length in bytes */ ptr += 2; *ptr = GAIA_XML_FILEID; /* FileIdentifier signature */ ptr++; if (fileIdentifier) { /* the FileIdentifier */ memcpy (ptr, fileIdentifier, fileid_len); free (fileIdentifier); ptr += fileid_len; } gaiaExport16 (ptr, parentid_len, 1, endian_arch); /* the ParentIdentifier length in bytes */ ptr += 2; *ptr = GAIA_XML_PARENTID; /* ParentIdentifier signature */ ptr++; if (parentIdentifier) { /* the ParentIdentifier */ memcpy (ptr, parentIdentifier, parentid_len); free (parentIdentifier); ptr += parentid_len; } gaiaExport16 (ptr, title_len, 1, endian_arch); /* the Title length in bytes */ ptr += 2; *ptr = GAIA_XML_TITLE; /* Title signature */ ptr++; if (title) { /* the Title */ memcpy (ptr, title, title_len); free (title); ptr += title_len; } gaiaExport16 (ptr, abstract_len, 1, endian_arch); /* the Abstract length in bytes */ ptr += 2; *ptr = GAIA_XML_ABSTRACT; /* Abstract signature */ ptr++; if (abstract) { /* the Abstract */ memcpy (ptr, abstract, abstract_len); free (abstract); ptr += abstract_len; } gaiaExport16 (ptr, geometry_len, 1, endian_arch); /* the Geometry length in bytes */ ptr += 2; *ptr = GAIA_XML_GEOMETRY; /* Geometry signature */ ptr++; if (geometry) { /* the Geometry */ memcpy (ptr, geometry, geometry_len); free (geometry); ptr += geometry_len; } *ptr = GAIA_XML_PAYLOAD; /* PAYLOAD signature */ ptr++; if (compressed) { /* the compressed XML payload */ memcpy (ptr, zip_buf, zip_len); free (zip_buf); ptr += zip_len; } else { /* the uncompressed XML payload */ memcpy (ptr, xml, xml_len); ptr += xml_len; } *ptr = GAIA_XML_CRC32; /* CRC32 signature */ ptr++; /* computing the CRC32 */ crc = crc32 (0L, buf, ptr - buf); gaiaExportU32 (ptr, crc, 1, endian_arch); /* the CRC32 */ ptr += 4; *ptr = GAIA_XML_END; /* END signature */ *result = buf; *size = len; xmlSetGenericErrorFunc ((void *) stderr, NULL); } GAIAGEO_DECLARE void gaiaXmlBlobCompression (const unsigned char *blob, int in_size, int compressed, unsigned char **result, int *out_size) { /* Return another XmlBLOB buffer compressed / uncompressed */ int in_compressed = 0; int little_endian = 0; unsigned char flag; int in_xml_len; int in_zip_len; short uri_len; short fileid_len; short parentid_len; short title_len; short abstract_len; short geometry_len; int out_xml_len; int out_zip_len; uLong crc; Bytef *zip_buf; int len; char *schemaURI; char *fileIdentifier; char *parentIdentifier; char *title; char *abstract; unsigned char *geometry; int is_iso_metadata = 0; int is_sld_se_vector_style = 0; int is_sld_se_raster_style = 0; int is_svg = 0; unsigned char *xml; unsigned char *buf; unsigned char *ptr; unsigned char flags; int endian_arch = gaiaEndianArch (); *result = NULL; *out_size = 0; /* validity check */ if (!gaiaIsValidXmlBlob (blob, in_size)) return; /* cannot be an XmlBLOB */ flag = *(blob + 1); if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN) little_endian = 1; if ((flag & GAIA_XML_COMPRESSED) == GAIA_XML_COMPRESSED) in_compressed = 1; if ((flag & GAIA_XML_ISO_METADATA) == GAIA_XML_ISO_METADATA) is_iso_metadata = 1; if ((flag & GAIA_XML_SLD_SE_VECTOR_STYLE) == GAIA_XML_SLD_SE_VECTOR_STYLE) is_sld_se_vector_style = 1; if ((flag & GAIA_XML_SLD_SE_RASTER_STYLE) == GAIA_XML_SLD_SE_RASTER_STYLE) is_sld_se_raster_style = 1; if ((flag & GAIA_XML_SVG) == GAIA_XML_SVG) is_svg = 1; in_xml_len = gaiaImport32 (blob + 3, little_endian, endian_arch); in_zip_len = gaiaImport32 (blob + 7, little_endian, endian_arch); uri_len = gaiaImport16 (blob + 11, little_endian, endian_arch); ptr = (unsigned char *) blob + 14; if (uri_len) { schemaURI = (char *) ptr; ptr += uri_len; } else { schemaURI = NULL; } fileid_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3; if (fileid_len) { fileIdentifier = (char *) ptr; ptr += fileid_len; } else { fileIdentifier = NULL; } parentid_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3; if (parentid_len) { parentIdentifier = (char *) ptr; ptr += parentid_len; } else { parentIdentifier = NULL; } title_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3; if (title_len) { title = (char *) ptr; ptr += title_len; } else { title = NULL; } abstract_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3; if (abstract_len) { abstract = (char *) ptr; ptr += abstract_len; } else { abstract = NULL; } geometry_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3; if (geometry_len) { geometry = (unsigned char *) ptr; ptr += geometry_len; } else { geometry = NULL; } ptr++; if (in_compressed == compressed) { /* unchanged compression */ out_xml_len = in_xml_len; out_zip_len = in_zip_len; zip_buf = (unsigned char *) ptr; } else if (compressed) { /* compressing the XML payload */ uLong zLen; out_xml_len = in_xml_len; zLen = compressBound (out_xml_len); xml = (unsigned char *) ptr; zip_buf = malloc (zLen); if (compress (zip_buf, &zLen, (const Bytef *) xml, (uLong) out_xml_len) != Z_OK) { /* compression error */ spatialite_e ("XmlBLOB DEFLATE compress error\n"); free (zip_buf); return; } out_zip_len = (int) zLen; } else { /* unzipping the XML payload */ uLong refLen = in_xml_len; const Bytef *in = ptr; xml = malloc (in_xml_len + 1); if (uncompress (xml, &refLen, in, in_zip_len) != Z_OK) { /* uncompress error */ spatialite_e ("XmlBLOB DEFLATE uncompress error\n"); free (xml); return; } *(xml + in_xml_len) = '\0'; out_xml_len = in_xml_len; out_zip_len = out_xml_len; } /* computing the XmlBLOB size */ len = 36; /* fixed header-footer size */ len += out_zip_len; len += uri_len; len += fileid_len; len += parentid_len; len += title_len; len += abstract_len; len += geometry_len; buf = malloc (len); *buf = GAIA_XML_START; /* START signature */ flags = 0x00; flags |= GAIA_XML_LITTLE_ENDIAN; if (compressed) flags |= GAIA_XML_COMPRESSED; if (schemaURI != NULL) flags |= GAIA_XML_VALIDATED; if (is_iso_metadata) flags |= GAIA_XML_ISO_METADATA; if (is_sld_se_vector_style) flags |= GAIA_XML_SLD_SE_VECTOR_STYLE; if (is_sld_se_raster_style) flags |= GAIA_XML_SLD_SE_RASTER_STYLE; if (is_svg) flags |= GAIA_XML_SVG; *(buf + 1) = flags; /* XmlBLOB flags */ *(buf + 2) = GAIA_XML_HEADER; /* HEADER signature */ gaiaExport32 (buf + 3, out_xml_len, 1, endian_arch); /* the uncompressed XMLDocument size */ gaiaExport32 (buf + 7, out_zip_len, 1, endian_arch); /* the compressed XMLDocument size */ gaiaExport16 (buf + 11, uri_len, 1, endian_arch); /* the SchemaURI length in bytes */ *(buf + 13) = GAIA_XML_SCHEMA; /* SCHEMA signature */ ptr = buf + 14; if (schemaURI) { /* the SchemaURI */ memcpy (ptr, schemaURI, uri_len); ptr += uri_len; } gaiaExport16 (ptr, fileid_len, 1, endian_arch); /* the FileIdentifier length in bytes */ ptr += 2; *ptr = GAIA_XML_FILEID; /* FileIdentifier signature */ ptr++; if (fileIdentifier) { /* the FileIdentifier */ memcpy (ptr, fileIdentifier, fileid_len); ptr += fileid_len; } gaiaExport16 (ptr, parentid_len, 1, endian_arch); /* the ParentIdentifier length in bytes */ ptr += 2; *ptr = GAIA_XML_PARENTID; /* ParentIdentifier signature */ ptr++; if (parentIdentifier) { /* the ParentIdentifier */ memcpy (ptr, parentIdentifier, parentid_len); ptr += parentid_len; } gaiaExport16 (ptr, title_len, 1, endian_arch); /* the Title length in bytes */ ptr += 2; *ptr = GAIA_XML_TITLE; /* Title signature */ ptr++; if (title) { /* the Title */ memcpy (ptr, title, title_len); ptr += title_len; } gaiaExport16 (ptr, abstract_len, 1, endian_arch); /* the Abstract length in bytes */ ptr += 2; *ptr = GAIA_XML_ABSTRACT; /* Abstract signature */ ptr++; if (abstract) { /* the Abstract */ memcpy (ptr, abstract, abstract_len); ptr += abstract_len; } gaiaExport16 (ptr, geometry_len, 1, endian_arch); /* the Geometry length in bytes */ ptr += 2; *ptr = GAIA_XML_GEOMETRY; /* Geometry signature */ ptr++; if (geometry) { /* the Geometry */ memcpy (ptr, geometry, geometry_len); ptr += geometry_len; } *ptr = GAIA_XML_PAYLOAD; /* PAYLOAD signature */ ptr++; if (in_compressed == compressed) { /* the unchanged XML payload */ memcpy (ptr, zip_buf, out_zip_len); ptr += out_zip_len; } else if (compressed) { /* the compressed XML payload */ memcpy (ptr, zip_buf, out_zip_len); free (zip_buf); ptr += out_zip_len; } else { /* the uncompressed XML payload */ memcpy (ptr, xml, out_xml_len); free (xml); ptr += out_xml_len; } *ptr = GAIA_XML_CRC32; /* CRC32 signature */ ptr++; /* computing the CRC32 */ crc = crc32 (0L, buf, ptr - buf); gaiaExportU32 (ptr, crc, 1, endian_arch); /* the CRC32 */ ptr += 4; *ptr = GAIA_XML_END; /* END signature */ *result = buf; *out_size = len; } GAIAGEO_DECLARE int gaiaIsValidXmlBlob (const unsigned char *blob, int blob_size) { /* Checks if a BLOB actually is a valid XmlBLOB buffer */ int little_endian = 0; unsigned char flag; const unsigned char *ptr; short uri_len; short fileid_len; short parentid_len; short title_len; short abstract_len; short geometry_len; uLong crc; uLong refCrc; int endian_arch = gaiaEndianArch (); /* validity check */ if (blob_size < 36) return 0; /* cannot be an XmlBLOB */ if (*blob != GAIA_XML_START) return 0; /* failed to recognize START signature */ if (*(blob + (blob_size - 1)) != GAIA_XML_END) return 0; /* failed to recognize END signature */ if (*(blob + (blob_size - 6)) != GAIA_XML_CRC32) return 0; /* failed to recognize CRC32 signature */ if (*(blob + 2) != GAIA_XML_HEADER) return 0; /* failed to recognize HEADER signature */ if (*(blob + 13) != GAIA_XML_SCHEMA) return 0; /* failed to recognize SCHEMA signature */ flag = *(blob + 1); if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN) little_endian = 1; ptr = blob + 11; uri_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 2; if (*ptr != GAIA_XML_SCHEMA) return 0; ptr++; ptr += uri_len; fileid_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 2; if (*ptr != GAIA_XML_FILEID) return 0; ptr++; ptr += fileid_len; parentid_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 2; if (*ptr != GAIA_XML_PARENTID) return 0; ptr++; ptr += parentid_len; title_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 2; if (*ptr != GAIA_XML_TITLE) return 0; ptr++; ptr += title_len; abstract_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 2; if (*ptr != GAIA_XML_ABSTRACT) return 0; ptr++; ptr += abstract_len; geometry_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 2; if (*ptr != GAIA_XML_GEOMETRY) return 0; ptr++; ptr += geometry_len; if (*ptr != GAIA_XML_PAYLOAD) return 0; /* verifying the CRC32 */ crc = crc32 (0L, blob, blob_size - 5); refCrc = gaiaImportU32 (blob + blob_size - 5, little_endian, endian_arch); if (crc != refCrc) return 0; return 1; } static void find_xml_namespaces (xmlNode * node, struct gaiaxml_ns_list *list) { /* recursively identifying all XML Namespaces from DOM-nodes */ struct _xmlAttr *attr; while (node) { xmlNs *ns = node->ns; if (ns != NULL) splite_add_namespace (list, ns->type, ns->prefix, ns->href); attr = node->properties; while (attr != NULL) { ns = attr->ns; if (ns != NULL) splite_add_namespace (list, ns->type, ns->prefix, ns->href); attr = attr->next; } find_xml_namespaces (node->children, list); node = node->next; } } static void xml_out (gaiaOutBufferPtr buf, const xmlChar * str) { /* clean XML output */ const xmlChar *p = str; while (*p != '\0') { if (*p == '>') gaiaAppendToOutBuffer (buf, ">"); else if (*p == '<') gaiaAppendToOutBuffer (buf, "<"); else if (*p == '&') gaiaAppendToOutBuffer (buf, "&"); else if (*p == '"') gaiaAppendToOutBuffer (buf, """); else if (*p == '\'') gaiaAppendToOutBuffer (buf, "'"); else { char xx[2]; xx[0] = *p; xx[1] = '\0'; gaiaAppendToOutBuffer (buf, xx); } p++; } } static void format_xml (xmlNode * root, xmlNode * node, struct gaiaxml_ns_list *list, gaiaOutBufferPtr buf, int indent, int *level) { /* recursively printing the XML-DOM nodes */ struct _xmlAttr *attr; xmlNode *child; xmlNs *ns; const xmlChar *namespace; char *indenting = NULL; const char no = '\0'; const char *pre; int tab; int width; int has_children; int has_text; if (!indent) pre = &no; else { if (indent <= 8) tab = indent; else tab = 8; width = tab * *level; indenting = malloc (width + 2); *indenting = '\n'; memset (indenting + 1, ' ', width); *(indenting + width + 1) = '\0'; pre = indenting; } while (node) { if (node->type == XML_COMMENT_NODE) { /* comment node */ if (*pre != '\0') gaiaAppendToOutBuffer (buf, "<!--"); else gaiaAppendToOutBuffer (buf, "\n<!--"); xml_out (buf, node->content); gaiaAppendToOutBuffer (buf, "-->"); } if (node->type == XML_ELEMENT_NODE) { if (*pre != '\0') gaiaAppendToOutBuffer (buf, pre); gaiaAppendToOutBuffer (buf, "<"); ns = node->ns; namespace = NULL; if (ns != NULL) namespace = ns->prefix; if (namespace) { xml_out (buf, namespace); gaiaAppendToOutBuffer (buf, ":"); } xml_out (buf, node->name); if (node == root) { /* Namespaces */ struct gaiaxml_namespace *p_ns = list->first; while (p_ns != NULL) { if (p_ns->prefix == NULL) gaiaAppendToOutBuffer (buf, " xmlns=\""); else { gaiaAppendToOutBuffer (buf, " xmlns:"); xml_out (buf, p_ns->prefix); gaiaAppendToOutBuffer (buf, "=\""); } xml_out (buf, p_ns->href); gaiaAppendToOutBuffer (buf, "\""); p_ns = p_ns->next; } } attr = node->properties; while (attr != NULL) { /* attributes */ if (attr->type == XML_ATTRIBUTE_NODE) { xmlNode *text = attr->children; gaiaAppendToOutBuffer (buf, " "); ns = attr->ns; namespace = NULL; if (ns != NULL) namespace = ns->prefix; if (namespace) { xml_out (buf, namespace); gaiaAppendToOutBuffer (buf, ":"); } xml_out (buf, attr->name); gaiaAppendToOutBuffer (buf, "=\""); if (text != NULL) { if (text->type == XML_TEXT_NODE) xml_out (buf, text->content); } gaiaAppendToOutBuffer (buf, "\""); } attr = attr->next; } has_children = 0; has_text = 0; child = node->children; while (child) { if (child->type == XML_ELEMENT_NODE || child->type == XML_COMMENT_NODE) has_children = 1; if (child->type == XML_TEXT_NODE) has_text++; child = child->next; } if (has_children) has_text = 0; if (!has_text && !has_children) gaiaAppendToOutBuffer (buf, " />"); if (has_text) { child = node->children; if (child->type == XML_TEXT_NODE) { /* text node */ gaiaAppendToOutBuffer (buf, ">"); xml_out (buf, child->content); gaiaAppendToOutBuffer (buf, "</"); ns = node->ns; namespace = NULL; if (ns != NULL) namespace = ns->prefix; if (namespace) { xml_out (buf, namespace); gaiaAppendToOutBuffer (buf, ":"); } xml_out (buf, node->name); gaiaAppendToOutBuffer (buf, ">"); } } if (has_children) { /* recursively expanding all children */ gaiaAppendToOutBuffer (buf, ">"); *level += 1; format_xml (root, node->children, list, buf, indent, level); *level -= 1; if (*pre != '\0') gaiaAppendToOutBuffer (buf, pre); gaiaAppendToOutBuffer (buf, "</"); ns = node->ns; namespace = NULL; if (ns != NULL) namespace = ns->prefix; if (namespace) { xml_out (buf, namespace); gaiaAppendToOutBuffer (buf, ":"); } xml_out (buf, node->name); gaiaAppendToOutBuffer (buf, ">"); } } node = node->next; } if (indenting) free (indenting); } static int gaiaXmlFormat (xmlDocPtr xml_doc, xmlChar ** out, int *out_len, const xmlChar * encoding, int indent) { /* reformatting an XML Document - properly indenting */ int level = 0; int ret; gaiaOutBuffer buf; const xmlChar *version = xml_doc->version; xmlNode *root = xmlDocGetRootElement (xml_doc); struct gaiaxml_ns_list *list = splite_create_ns_list (); gaiaOutBufferInitialize (&buf); if (encoding != NULL) { gaiaAppendToOutBuffer (&buf, "<?xml version=\""); gaiaAppendToOutBuffer (&buf, (const char *) version); gaiaAppendToOutBuffer (&buf, "\" encoding=\""); gaiaAppendToOutBuffer (&buf, (const char *) encoding); gaiaAppendToOutBuffer (&buf, "\"?>"); } else { gaiaAppendToOutBuffer (&buf, "<?xml version=\""); gaiaAppendToOutBuffer (&buf, (const char *) version); gaiaAppendToOutBuffer (&buf, "\"?>"); } find_xml_namespaces (root, list); format_xml (root, root, list, &buf, indent, &level); splite_free_ns_list (list); if (buf.Error == 0 && buf.Buffer != NULL) { xmlChar *output; /* terminating the last line */ gaiaAppendToOutBuffer (&buf, "\n"); output = malloc (buf.WriteOffset + 1); memcpy (output, buf.Buffer, buf.WriteOffset); /* NULL-terminated string */ *(output + buf.WriteOffset) = '\0'; *out = output; *out_len = buf.WriteOffset + 1; ret = 1; } else { *out = NULL; *out_len = 0; ret = 0; } gaiaOutBufferReset (&buf); return ret; } GAIAGEO_DECLARE char * gaiaXmlTextFromBlob (const unsigned char *blob, int blob_size, int indent) { /* attempting to extract an XMLDocument from within an XmlBLOB buffer */ int compressed = 0; int little_endian = 0; unsigned char flag; const unsigned char *ptr; int xml_len; int zip_len; short uri_len; short fileid_len; short parentid_len; short title_len; short abstract_len; short geometry_len; unsigned char *xml; xmlDocPtr xml_doc; xmlChar *out; int out_len; xmlChar *encoding = NULL; void *cvt; char *utf8; int err; int endian_arch = gaiaEndianArch (); xmlGenericErrorFunc silentError = (xmlGenericErrorFunc) spliteSilentError; /* validity check */ if (!gaiaIsValidXmlBlob (blob, blob_size)) return NULL; /* cannot be an XmlBLOB */ flag = *(blob + 1); if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN) little_endian = 1; if ((flag & GAIA_XML_COMPRESSED) == GAIA_XML_COMPRESSED) compressed = 1; xml_len = gaiaImport32 (blob + 3, little_endian, endian_arch); zip_len = gaiaImport32 (blob + 7, little_endian, endian_arch); ptr = blob + 11; uri_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + uri_len; fileid_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + fileid_len; parentid_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + parentid_len; title_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + title_len; abstract_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + abstract_len; geometry_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + geometry_len; ptr++; if (compressed) { /* unzipping the XML payload */ uLong refLen = xml_len; const Bytef *in = ptr; xml = malloc (xml_len + 1); if (uncompress (xml, &refLen, in, zip_len) != Z_OK) { /* uncompress error */ spatialite_e ("XmlBLOB DEFLATE uncompress error\n"); free (xml); return NULL; } *(xml + xml_len) = '\0'; } else { /* just copying the uncompressed XML payload */ xml = malloc (xml_len + 1); memcpy (xml, ptr, xml_len); *(xml + xml_len) = '\0'; } /* retrieving the XMLDocument encoding */ xmlSetGenericErrorFunc (NULL, silentError); xml_doc = xmlReadMemory ((const char *) xml, xml_len, "noname.xml", NULL, 0); if (xml_doc == NULL) { /* parsing error; not a well-formed XML */ xmlSetGenericErrorFunc ((void *) stderr, NULL); return NULL; } if (xml_doc->encoding) { /* using the internal character enconding */ int enclen = (int) strlen ((const char *) xml_doc->encoding); encoding = malloc (enclen + 1); strcpy ((char *) encoding, (const char *) (xml_doc->encoding)); } else { /* no declared encoding: defaulting to UTF-8 */ encoding = malloc (6); strcpy ((char *) encoding, "UTF-8"); } if (indent < 0) { /* just returning the XMLDocument "as is" */ xmlFreeDoc (xml_doc); cvt = gaiaCreateUTF8Converter ((const char *) encoding); free (encoding); if (cvt == NULL) { xmlSetGenericErrorFunc ((void *) stderr, NULL); return NULL; } utf8 = gaiaConvertToUTF8 (cvt, (const char *) xml, xml_len, &err); free (xml); gaiaFreeUTF8Converter (cvt); if (utf8 && !err) { xmlSetGenericErrorFunc ((void *) stderr, NULL); return utf8; } if (utf8) free (utf8); xmlSetGenericErrorFunc ((void *) stderr, NULL); return NULL; } /* properly indenting the XMLDocument */ gaiaXmlFormat (xml_doc, &out, &out_len, encoding, indent); free (xml); xmlFreeDoc (xml_doc); free (encoding); if (out) { xmlSetGenericErrorFunc ((void *) stderr, NULL); return (char *) out; } xmlSetGenericErrorFunc ((void *) stderr, NULL); return NULL; } GAIAGEO_DECLARE void gaiaXmlFromBlob (const unsigned char *blob, int blob_size, int indent, unsigned char **result, int *res_size) { /* attempting to extract an XMLDocument from within an XmlBLOB buffer */ int compressed = 0; int little_endian = 0; unsigned char flag; const unsigned char *ptr; int xml_len; int zip_len; short uri_len; short fileid_len; short parentid_len; short title_len; short abstract_len; short geometry_len; unsigned char *xml; xmlDocPtr xml_doc; xmlChar *out; int out_len; int endian_arch = gaiaEndianArch (); xmlGenericErrorFunc silentError = (xmlGenericErrorFunc) spliteSilentError; *result = NULL; *res_size = 0; /* validity check */ if (!gaiaIsValidXmlBlob (blob, blob_size)) return; /* cannot be an XmlBLOB */ flag = *(blob + 1); if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN) little_endian = 1; if ((flag & GAIA_XML_COMPRESSED) == GAIA_XML_COMPRESSED) compressed = 1; xml_len = gaiaImport32 (blob + 3, little_endian, endian_arch); zip_len = gaiaImport32 (blob + 7, little_endian, endian_arch); ptr = blob + 11; uri_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + uri_len; fileid_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + fileid_len; parentid_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + parentid_len; title_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + title_len; abstract_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + abstract_len; geometry_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + geometry_len; ptr++; if (compressed) { /* unzipping the XML payload */ uLong refLen = xml_len; const Bytef *in = ptr; xml = malloc (xml_len + 1); if (uncompress (xml, &refLen, in, zip_len) != Z_OK) { /* uncompress error */ spatialite_e ("XmlBLOB DEFLATE uncompress error\n"); free (xml); return; } *(xml + xml_len) = '\0'; } else { /* just copying the uncompressed XML payload */ xml = malloc (xml_len + 1); memcpy (xml, ptr, xml_len); *(xml + xml_len) = '\0'; } if (indent < 0) { /* just returning the XMLDocument "as is" */ *result = xml; *res_size = xml_len; return; } /* properly indenting the XMLDocument */ xmlSetGenericErrorFunc (NULL, silentError); xml_doc = xmlReadMemory ((const char *) xml, xml_len, "noname.xml", NULL, 0); if (xml_doc == NULL) { /* parsing error; not a well-formed XML */ *result = xml; *res_size = xml_len; xmlSetGenericErrorFunc ((void *) stderr, NULL); return; } gaiaXmlFormat (xml_doc, &out, &out_len, xml_doc->encoding, indent); free (xml); xmlFreeDoc (xml_doc); *result = out; *res_size = out_len; xmlSetGenericErrorFunc ((void *) stderr, NULL); } GAIAGEO_DECLARE int gaiaXmlLoad (void *p_cache, const char *path_or_url, unsigned char **result, int *size, char **parsing_errors) { /* attempting to load an external XML Document into a BLOB buffer */ unsigned char *out; int len; xmlDocPtr xml_doc; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; gaiaOutBufferPtr parsingBuf = (gaiaOutBufferPtr) (cache->xmlParsingErrors); xmlGenericErrorFunc parsingError = (xmlGenericErrorFunc) spliteParsingError; spliteResetXmlErrors (cache); *result = NULL; *size = 0; if (parsing_errors) *parsing_errors = NULL; if (path_or_url == NULL) return 0; /* testing if the XMLDocument is well-formed */ xmlSetGenericErrorFunc (cache, parsingError); xml_doc = xmlReadFile (path_or_url, NULL, 0); if (xml_doc == NULL) { /* parsing error; not a well-formed XML */ spatialite_e ("XML parsing error\n"); if (parsing_errors) *parsing_errors = parsingBuf->Buffer; xmlSetGenericErrorFunc ((void *) stderr, NULL); return 0; } if (parsing_errors) *parsing_errors = parsingBuf->Buffer; /* exporting the XML Document into a BLOB */ xmlDocDumpFormatMemory (xml_doc, &out, &len, 0); xmlFreeDoc (xml_doc); *result = out; *size = len; xmlSetGenericErrorFunc ((void *) stderr, NULL); if (out == NULL) return 0; return 1; } GAIAGEO_DECLARE int gaiaXmlStore (const unsigned char *blob, int size, const char *path, int indent) { /* attempting to store an XmlBLOB Document into an external file */ FILE *fl; int wr; unsigned char *result = NULL; int res_size; gaiaXmlFromBlob (blob, size, indent, &result, &res_size); if (result == NULL) return 0; /* exporting the XML Document into an external file */ fl = fopen (path, "wb"); if (fl == NULL) { spatialite_e ("Unable to open \"%s\"\n", path); return 0; } wr = fwrite (result, 1, res_size, fl); if (wr != res_size) { spatialite_e ("I/O error: written %d bytes into \"%s\", expected %d\n", wr, path, res_size); fclose (fl); return 0; } fclose (fl); return 1; } GAIAGEO_DECLARE int gaiaIsCompressedXmlBlob (const unsigned char *blob, int blob_size) { /* Checks if a valid XmlBLOB buffer is compressed or not */ int compressed = 0; unsigned char flag; /* validity check */ if (!gaiaIsValidXmlBlob (blob, blob_size)) return -1; /* cannot be an XmlBLOB */ flag = *(blob + 1); if ((flag & GAIA_XML_COMPRESSED) == GAIA_XML_COMPRESSED) compressed = 1; return compressed; } GAIAGEO_DECLARE int gaiaIsSchemaValidatedXmlBlob (const unsigned char *blob, int blob_size) { /* Checks if a valid XmlBLOB buffer has succesfully passed a formal Schema validation or not */ int validated = 0; unsigned char flag; /* validity check */ if (!gaiaIsValidXmlBlob (blob, blob_size)) return -1; /* cannot be an XmlBLOB */ flag = *(blob + 1); if ((flag & GAIA_XML_VALIDATED) == GAIA_XML_VALIDATED) validated = 1; return validated; } GAIAGEO_DECLARE int gaiaIsIsoMetadataXmlBlob (const unsigned char *blob, int blob_size) { /* Checks if a valid XmlBLOB buffer does actually contains an ISO Metadata or not */ int iso_metadata = 0; unsigned char flag; /* validity check */ if (!gaiaIsValidXmlBlob (blob, blob_size)) return -1; /* cannot be an XmlBLOB */ flag = *(blob + 1); if ((flag & GAIA_XML_ISO_METADATA) == GAIA_XML_ISO_METADATA) iso_metadata = 1; return iso_metadata; } GAIAGEO_DECLARE int gaiaIsSldSeVectorStyleXmlBlob (const unsigned char *blob, int blob_size) { /* Checks if a valid XmlBLOB buffer does actually contains an SLD/SE Vector Style or not */ int sld_se_style = 0; unsigned char flag; /* validity check */ if (!gaiaIsValidXmlBlob (blob, blob_size)) return -1; /* cannot be an XmlBLOB */ flag = *(blob + 1); if ((flag & GAIA_XML_SLD_SE_VECTOR_STYLE) == GAIA_XML_SLD_SE_VECTOR_STYLE) sld_se_style = 1; return sld_se_style; } GAIAGEO_DECLARE int gaiaIsSldSeRasterStyleXmlBlob (const unsigned char *blob, int blob_size) { /* Checks if a valid XmlBLOB buffer does actually contains an SLD/SE Raster Style or not */ int sld_se_style = 0; unsigned char flag; /* validity check */ if (!gaiaIsValidXmlBlob (blob, blob_size)) return -1; /* cannot be an XmlBLOB */ flag = *(blob + 1); if ((flag & GAIA_XML_SLD_SE_RASTER_STYLE) == GAIA_XML_SLD_SE_RASTER_STYLE) sld_se_style = 1; return sld_se_style; } GAIAGEO_DECLARE int gaiaIsSvgXmlBlob (const unsigned char *blob, int blob_size) { /* Checks if a valid XmlBLOB buffer does actually contains an SLD/SE Style or not */ int svg = 0; unsigned char flag; /* validity check */ if (!gaiaIsValidXmlBlob (blob, blob_size)) return -1; /* cannot be an XmlBLOB */ flag = *(blob + 1); if ((flag & GAIA_XML_SVG) == GAIA_XML_SVG) svg = 1; return svg; } GAIAGEO_DECLARE int gaiaXmlBlobGetDocumentSize (const unsigned char *blob, int blob_size) { /* Return the XMLDocument size (in bytes) from a valid XmlBLOB buffer */ int little_endian = 0; unsigned char flag; int xml_len; int endian_arch = gaiaEndianArch (); /* validity check */ if (!gaiaIsValidXmlBlob (blob, blob_size)) return -1; /* cannot be an XmlBLOB */ flag = *(blob + 1); if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN) little_endian = 1; xml_len = gaiaImport32 (blob + 3, little_endian, endian_arch); return xml_len; } GAIAGEO_DECLARE char * gaiaXmlBlobGetSchemaURI (const unsigned char *blob, int blob_size) { /* Return the SchemaURI from a valid XmlBLOB buffer */ int little_endian = 0; unsigned char flag; short uri_len; char *uri; int endian_arch = gaiaEndianArch (); /* validity check */ if (!gaiaIsValidXmlBlob (blob, blob_size)) return NULL; /* cannot be an XmlBLOB */ flag = *(blob + 1); if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN) little_endian = 1; uri_len = gaiaImport16 (blob + 11, little_endian, endian_arch); if (!uri_len) return NULL; uri = malloc (uri_len + 1); memcpy (uri, blob + 14, uri_len); *(uri + uri_len) = '\0'; return uri; } GAIAGEO_DECLARE char * gaiaXmlGetInternalSchemaURI (void *p_cache, const unsigned char *xml, int xml_len) { /* Return the internally defined SchemaURI from a valid XmlDocument */ xmlDocPtr xml_doc; char *uri = NULL; xmlXPathContextPtr xpathCtx; xmlXPathObjectPtr xpathObj; xmlGenericErrorFunc silentError = (xmlGenericErrorFunc) spliteSilentError; /* retrieving the XMLDocument internal SchemaURI (if any) */ xmlSetGenericErrorFunc (NULL, silentError); xml_doc = xmlReadMemory ((const char *) xml, xml_len, "noname.xml", NULL, 0); if (xml_doc == NULL) { /* parsing error; not a well-formed XML */ xmlSetGenericErrorFunc ((void *) stderr, NULL); return NULL; } if (vxpath_eval_expr (p_cache, xml_doc, "/*/@xsi:schemaLocation", &xpathCtx, &xpathObj)) { /* attempting first to extract xsi:schemaLocation */ xmlNodeSetPtr nodeset = xpathObj->nodesetval; xmlNodePtr node; int num_nodes = (nodeset) ? nodeset->nodeNr : 0; if (num_nodes == 1) { node = nodeset->nodeTab[0]; if (node->type == XML_ATTRIBUTE_NODE) { if (node->children != NULL) { if (node->children->content != NULL) { const char *str = (const char *) (node->children->content); const char *ptr = str; int i; int len = strlen (str); for (i = len - 1; i >= 0; i--) { if (*(str + i) == ' ') { /* last occurrence of SPACE [namespace/schema separator] */ ptr = str + i + 1; break; } } len = strlen (ptr); uri = malloc (len + 1); strcpy (uri, ptr); } } } } if (uri != NULL) xmlXPathFreeContext (xpathCtx); xmlXPathFreeObject (xpathObj); } if (uri == NULL) { /* checking for xsi:noNamespaceSchemaLocation */ if (vxpath_eval_expr (p_cache, xml_doc, "/*/@xsi:noNamespaceSchemaLocation", &xpathCtx, &xpathObj)) { xmlNodeSetPtr nodeset = xpathObj->nodesetval; xmlNodePtr node; int num_nodes = (nodeset) ? nodeset->nodeNr : 0; if (num_nodes == 1) { node = nodeset->nodeTab[0]; if (node->type == XML_ATTRIBUTE_NODE) { if (node->children != NULL) { if (node->children->content != NULL) { int len = strlen ((const char *) node->children->content); uri = malloc (len + 1); strcpy (uri, (const char *) node-> children->content); } } } } xmlXPathFreeContext (xpathCtx); xmlXPathFreeObject (xpathObj); } } xmlFreeDoc (xml_doc); xmlSetGenericErrorFunc ((void *) stderr, NULL); return uri; } GAIAGEO_DECLARE char * gaiaXmlBlobGetFileId (const unsigned char *blob, int blob_size) { /* Return the FileIdentifier from a valid XmlBLOB buffer */ int little_endian = 0; unsigned char flag; const unsigned char *ptr; short uri_len; short fileid_len; char *file_identifier; int endian_arch = gaiaEndianArch (); /* validity check */ if (!gaiaIsValidXmlBlob (blob, blob_size)) return NULL; /* cannot be an XmlBLOB */ flag = *(blob + 1); if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN) little_endian = 1; ptr = blob + 11; uri_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + uri_len; fileid_len = gaiaImport16 (ptr, little_endian, endian_arch); if (!fileid_len) return NULL; ptr += 3; file_identifier = malloc (fileid_len + 1); memcpy (file_identifier, ptr, fileid_len); *(file_identifier + fileid_len) = '\0'; return file_identifier; } GAIAGEO_DECLARE char * gaiaXmlBlobGetParentId (const unsigned char *blob, int blob_size) { /* Return the ParentIdentifier from a valid XmlBLOB buffer */ int little_endian = 0; unsigned char flag; const unsigned char *ptr; short uri_len; short fileid_len; short parentid_len; char *parent_identifier; int endian_arch = gaiaEndianArch (); /* validity check */ if (!gaiaIsValidXmlBlob (blob, blob_size)) return NULL; /* cannot be an XmlBLOB */ flag = *(blob + 1); if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN) little_endian = 1; ptr = blob + 11; uri_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + uri_len; fileid_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + fileid_len; parentid_len = gaiaImport16 (ptr, little_endian, endian_arch); if (!parentid_len) return NULL; ptr += 3; parent_identifier = malloc (parentid_len + 1); memcpy (parent_identifier, ptr, parentid_len); *(parent_identifier + parentid_len) = '\0'; return parent_identifier; } static xmlNodePtr find_iso_node (xmlNodePtr root, const char *name) { /* scanning the Root node [fileIdentifier or parentIdentifier] */ xmlNodePtr nodeId = NULL; xmlNodePtr node; for (node = root->children; node; node = node->next) { if (node->type == XML_ELEMENT_NODE) { const char *xname = (const char *) (node->name); if (strcmp (xname, name) == 0) { nodeId = node; break; } } } if (nodeId == NULL) return NULL; for (node = nodeId->children; node; node = node->next) { if (node->type == XML_ELEMENT_NODE) { const char *xname = (const char *) (node->name); if (strcmp (xname, "CharacterString") == 0) return node; } } return NULL; } static int setIsoId (xmlDocPtr xml_doc, const char *node_name, const char *identifier, unsigned char **out_blob, int *out_len) { /* attempting to change an ISO Id */ xmlNodePtr node; xmlNodePtr new_node; xmlNodePtr text; xmlNodePtr old_node; xmlChar *buf; int len; *out_blob = NULL; *out_len = 0; node = find_iso_node (xmlDocGetRootElement (xml_doc), node_name); if (node == NULL) return 0; /* replacing the existing XML Node */ new_node = xmlNewNode (node->ns, node->name); text = xmlNewText ((xmlChar *) identifier); xmlAddChild (new_node, text); old_node = xmlReplaceNode (node, new_node); xmlFreeNode (old_node); xmlDocDumpFormatMemory (xml_doc, &buf, &len, 0); if (buf == NULL) return 0; *out_blob = buf; *out_len = len; return 1; } GAIAGEO_DECLARE int gaiaXmlBlobSetFileId (void *p_cache, const unsigned char *blob, int blob_size, const char *identifier, unsigned char **new_blob, int *new_size) { /* Return a new XmlBLOB buffer by replacing the FileId value */ struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; int compressed = 0; int little_endian = 0; unsigned char flag; const unsigned char *ptr; short uri_len; short fileid_len; short parentid_len; int xml_len; int zip_len; short title_len; short abstract_len; short geometry_len; char *schemaURI = NULL; unsigned char *xml; xmlDocPtr xml_doc; unsigned char *out_blob; int out_len; int endian_arch = gaiaEndianArch (); xmlGenericErrorFunc silentError = (xmlGenericErrorFunc) spliteSilentError; *new_blob = NULL; *new_size = 0; /* validity check */ if (!gaiaIsValidXmlBlob (blob, blob_size)) return 0; /* cannot be an XmlBLOB */ flag = *(blob + 1); if ((flag & GAIA_XML_ISO_METADATA) == GAIA_XML_ISO_METADATA) ; else return 0; /* not an ISO Metadata XmlBLOB */ if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN) little_endian = 1; if ((flag & GAIA_XML_COMPRESSED) == GAIA_XML_COMPRESSED) compressed = 1; xml_len = gaiaImport32 (blob + 3, little_endian, endian_arch); zip_len = gaiaImport32 (blob + 7, little_endian, endian_arch); ptr = blob + 11; uri_len = gaiaImport16 (ptr, little_endian, endian_arch); if (uri_len > 0) { schemaURI = malloc (uri_len + 1); memcpy (schemaURI, blob + 14, uri_len); *(schemaURI + uri_len) = '\0'; } ptr += 3 + uri_len; fileid_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + fileid_len; parentid_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + parentid_len; title_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + title_len; abstract_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + abstract_len; geometry_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + geometry_len; ptr++; if (compressed) { /* unzipping the XML payload */ uLong refLen = xml_len; const Bytef *in = ptr; xml = malloc (xml_len + 1); if (uncompress (xml, &refLen, in, zip_len) != Z_OK) { /* uncompress error */ spatialite_e ("XmlBLOB DEFLATE uncompress error\n"); free (xml); return 0; } *(xml + xml_len) = '\0'; } else { /* just copying the uncompressed XML payload */ xml = malloc (xml_len + 1); memcpy (xml, ptr, xml_len); *(xml + xml_len) = '\0'; } /* loading the XMLDocument */ xmlSetGenericErrorFunc (NULL, silentError); xml_doc = xmlReadMemory ((const char *) xml, xml_len, "noname.xml", NULL, 0); if (xml_doc == NULL) { /* parsing error; not a well-formed XML */ xmlSetGenericErrorFunc ((void *) stderr, NULL); return 0; } /* replacing the FileId value */ setIsoId (xml_doc, "fileIdentifier", identifier, &out_blob, &out_len); free (xml); xmlFreeDoc (xml_doc); if (out_blob) { gaiaXmlToBlob (cache, out_blob, out_len, compressed, schemaURI, new_blob, new_size, NULL, NULL); #ifdef __MINGW32__ /* MinGW is unable to statically link libxml2 if xmlFree() is declared */ free (out_blob); #else xmlFree (out_blob); #endif xmlSetGenericErrorFunc ((void *) stderr, NULL); return 1; } xmlSetGenericErrorFunc ((void *) stderr, NULL); return 0; } GAIAGEO_DECLARE int gaiaXmlBlobSetParentId (void *p_cache, const unsigned char *blob, int blob_size, const char *identifier, unsigned char **new_blob, int *new_size) { /* Return a new XmlBLOB buffer by replacing the ParentId value */ struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; int compressed = 0; int little_endian = 0; unsigned char flag; const unsigned char *ptr; short uri_len; short fileid_len; short parentid_len; int xml_len; int zip_len; short title_len; short abstract_len; short geometry_len; char *schemaURI = NULL; unsigned char *xml; xmlDocPtr xml_doc; unsigned char *out_blob; int out_len; int endian_arch = gaiaEndianArch (); xmlGenericErrorFunc silentError = (xmlGenericErrorFunc) spliteSilentError; *new_blob = NULL; *new_size = 0; /* validity check */ if (!gaiaIsValidXmlBlob (blob, blob_size)) return 0; /* cannot be an XmlBLOB */ flag = *(blob + 1); if ((flag & GAIA_XML_ISO_METADATA) == GAIA_XML_ISO_METADATA) ; else return 0; /* not an ISO Metadata XmlBLOB */ if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN) little_endian = 1; if ((flag & GAIA_XML_COMPRESSED) == GAIA_XML_COMPRESSED) compressed = 1; xml_len = gaiaImport32 (blob + 3, little_endian, endian_arch); zip_len = gaiaImport32 (blob + 7, little_endian, endian_arch); ptr = blob + 11; uri_len = gaiaImport16 (ptr, little_endian, endian_arch); if (uri_len > 0) { schemaURI = malloc (uri_len + 1); memcpy (schemaURI, blob + 14, uri_len); *(schemaURI + uri_len) = '\0'; } ptr += 3 + uri_len; fileid_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + fileid_len; parentid_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + parentid_len; title_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + title_len; abstract_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + abstract_len; geometry_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + geometry_len; ptr++; if (compressed) { /* unzipping the XML payload */ uLong refLen = xml_len; const Bytef *in = ptr; xml = malloc (xml_len + 1); if (uncompress (xml, &refLen, in, zip_len) != Z_OK) { /* uncompress error */ spatialite_e ("XmlBLOB DEFLATE uncompress error\n"); free (xml); return 0; } *(xml + xml_len) = '\0'; } else { /* just copying the uncompressed XML payload */ xml = malloc (xml_len + 1); memcpy (xml, ptr, xml_len); *(xml + xml_len) = '\0'; } /* loading the XMLDocument */ xmlSetGenericErrorFunc (NULL, silentError); xml_doc = xmlReadMemory ((const char *) xml, xml_len, "noname.xml", NULL, 0); if (xml_doc == NULL) { /* parsing error; not a well-formed XML */ xmlSetGenericErrorFunc ((void *) stderr, NULL); return 0; } /* replacing the ParentId value */ setIsoId (xml_doc, "parentIdentifier", identifier, &out_blob, &out_len); free (xml); xmlFreeDoc (xml_doc); if (out_blob) { gaiaXmlToBlob (cache, out_blob, out_len, compressed, schemaURI, new_blob, new_size, NULL, NULL); #ifdef __MINGW32__ /* MinGW is unable to statically link libxml2 if xmlFree() is declared */ free (out_blob); #else xmlFree (out_blob); #endif xmlSetGenericErrorFunc ((void *) stderr, NULL); return 1; } xmlSetGenericErrorFunc ((void *) stderr, NULL); return 0; } static xmlNodePtr find_iso_sibling (xmlNodePtr root, const char *name) { /* scanning the Root node [previous sibling] */ xmlNodePtr node; for (node = root->children; node; node = node->next) { if (node->type == XML_ELEMENT_NODE) { const char *xname = (const char *) (node->name); if (strcmp (xname, name) == 0) return node; } } return NULL; } static int addIsoId (xmlDocPtr xml_doc, const char *node_name, const char *identifier, const char *ns_id, const char *uri_id, const char *ns_charstr, const char *uri_charstr, unsigned char **out_blob, int *out_len) { /* attempting to insert a new ISO Id */ xmlNsPtr ns_id_ptr = NULL; xmlNsPtr ns_charstr_ptr = NULL; xmlNodePtr id_node; xmlNodePtr charstr_node; xmlNodePtr text; xmlNodePtr root = xmlDocGetRootElement (xml_doc); xmlNodePtr before = NULL; xmlChar *buf; int len; *out_blob = NULL; *out_len = 0; if (find_iso_node (root, node_name)) return 0; /* retrieving the ID NameSpace */ if (uri_id != NULL) ns_id_ptr = xmlSearchNsByHref (xml_doc, root, (xmlChar *) uri_id); if (ns_id_ptr == NULL) ns_id_ptr = xmlSearchNs (xml_doc, root, (xmlChar *) ns_id); /* inserting the "ID" XML Node */ id_node = xmlNewNode (ns_id_ptr, (xmlChar *) node_name); if (strcmp (node_name, "parentIdentifier") == 0) { /* attempting to identify the previous sibling */ before = find_iso_sibling (root, "characterSet"); if (before == NULL) before = find_iso_sibling (root, "language"); if (before == NULL) before = find_iso_sibling (root, "fileIdentifier"); } if (before) xmlAddNextSibling (before, id_node); else { before = root->children; if (before) xmlAddPrevSibling (before, id_node); else xmlAddChild (root, id_node); } if (ns_id_ptr == NULL && ns_id != NULL && uri_id != NULL) { ns_id_ptr = xmlNewNs (root, (xmlChar *) uri_id, (xmlChar *) ns_id); xmlSetNs (id_node, ns_id_ptr); } /* retrieving the CharacterString NameSpace */ if (uri_charstr != NULL) ns_charstr_ptr = xmlSearchNsByHref (xml_doc, root, (xmlChar *) uri_charstr); if (ns_charstr_ptr == NULL) ns_charstr_ptr = xmlSearchNs (xml_doc, root, (xmlChar *) ns_charstr); /* inserting the "CharacterString" XML Node */ charstr_node = xmlNewNode (ns_charstr_ptr, (xmlChar *) "CharacterString"); xmlAddChild (id_node, charstr_node); if (ns_charstr_ptr == NULL && ns_charstr != NULL && uri_charstr != NULL) { ns_charstr_ptr = xmlNewNs (root, (xmlChar *) uri_charstr, (xmlChar *) ns_charstr); xmlSetNs (charstr_node, ns_charstr_ptr); } text = xmlNewText ((xmlChar *) identifier); xmlAddChild (charstr_node, text); xmlDocDumpFormatMemory (xml_doc, &buf, &len, 0); if (buf == NULL) return 0; *out_blob = buf; *out_len = len; return 1; } GAIAGEO_DECLARE int gaiaXmlBlobAddFileId (void *p_cache, const unsigned char *blob, int blob_size, const char *identifier, const char *ns_id, const char *uri_id, const char *ns_charstr, const char *uri_charstr, unsigned char **new_blob, int *new_size) { /* Return a new XmlBLOB buffer by inserting a FileId value */ struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; int compressed = 0; int little_endian = 0; unsigned char flag; const unsigned char *ptr; short uri_len; short fileid_len; short parentid_len; int xml_len; int zip_len; short title_len; short abstract_len; short geometry_len; char *schemaURI = NULL; unsigned char *xml; xmlDocPtr xml_doc; unsigned char *out_blob; int out_len; int endian_arch = gaiaEndianArch (); xmlGenericErrorFunc silentError = (xmlGenericErrorFunc) spliteSilentError; *new_blob = NULL; *new_size = 0; /* validity check */ if (!gaiaIsValidXmlBlob (blob, blob_size)) return 0; /* cannot be an XmlBLOB */ flag = *(blob + 1); if ((flag & GAIA_XML_ISO_METADATA) == GAIA_XML_ISO_METADATA) ; else return 0; /* not an ISO Metadata XmlBLOB */ if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN) little_endian = 1; if ((flag & GAIA_XML_COMPRESSED) == GAIA_XML_COMPRESSED) compressed = 1; xml_len = gaiaImport32 (blob + 3, little_endian, endian_arch); zip_len = gaiaImport32 (blob + 7, little_endian, endian_arch); ptr = blob + 11; uri_len = gaiaImport16 (ptr, little_endian, endian_arch); if (uri_len > 0) { schemaURI = malloc (uri_len + 1); memcpy (schemaURI, blob + 14, uri_len); *(schemaURI + uri_len) = '\0'; } ptr += 3 + uri_len; fileid_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + fileid_len; parentid_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + parentid_len; title_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + title_len; abstract_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + abstract_len; geometry_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + geometry_len; ptr++; if (compressed) { /* unzipping the XML payload */ uLong refLen = xml_len; const Bytef *in = ptr; xml = malloc (xml_len + 1); if (uncompress (xml, &refLen, in, zip_len) != Z_OK) { /* uncompress error */ spatialite_e ("XmlBLOB DEFLATE uncompress error\n"); free (xml); return 0; } *(xml + xml_len) = '\0'; } else { /* just copying the uncompressed XML payload */ xml = malloc (xml_len + 1); memcpy (xml, ptr, xml_len); *(xml + xml_len) = '\0'; } /* loading the XMLDocument */ xmlSetGenericErrorFunc (NULL, silentError); xml_doc = xmlReadMemory ((const char *) xml, xml_len, "noname.xml", NULL, 0); if (xml_doc == NULL) { /* parsing error; not a well-formed XML */ xmlSetGenericErrorFunc ((void *) stderr, NULL); return 0; } /* inserting the FileId value */ addIsoId (xml_doc, "fileIdentifier", identifier, ns_id, uri_id, ns_charstr, uri_charstr, &out_blob, &out_len); free (xml); xmlFreeDoc (xml_doc); if (out_blob) { gaiaXmlToBlob (cache, out_blob, out_len, compressed, schemaURI, new_blob, new_size, NULL, NULL); #ifdef __MINGW32__ /* MinGW is unable to statically link libxml2 if xmlFree() is declared */ free (out_blob); #else xmlFree (out_blob); #endif xmlSetGenericErrorFunc ((void *) stderr, NULL); return 1; } xmlSetGenericErrorFunc ((void *) stderr, NULL); return 0; } GAIAGEO_DECLARE int gaiaXmlBlobAddParentId (void *p_cache, const unsigned char *blob, int blob_size, const char *identifier, const char *ns_id, const char *uri_id, const char *ns_charstr, const char *uri_charstr, unsigned char **new_blob, int *new_size) { /* Return a new XmlBLOB buffer by inserting a ParentId value */ struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; int compressed = 0; int little_endian = 0; unsigned char flag; const unsigned char *ptr; short uri_len; short fileid_len; short parentid_len; int xml_len; int zip_len; short title_len; short abstract_len; short geometry_len; char *schemaURI = NULL; unsigned char *xml; xmlDocPtr xml_doc; unsigned char *out_blob; int out_len; int endian_arch = gaiaEndianArch (); xmlGenericErrorFunc silentError = (xmlGenericErrorFunc) spliteSilentError; *new_blob = NULL; *new_size = 0; /* validity check */ if (!gaiaIsValidXmlBlob (blob, blob_size)) return 0; /* cannot be an XmlBLOB */ flag = *(blob + 1); if ((flag & GAIA_XML_ISO_METADATA) == GAIA_XML_ISO_METADATA) ; else return 0; /* not an ISO Metadata XmlBLOB */ if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN) little_endian = 1; if ((flag & GAIA_XML_COMPRESSED) == GAIA_XML_COMPRESSED) compressed = 1; xml_len = gaiaImport32 (blob + 3, little_endian, endian_arch); zip_len = gaiaImport32 (blob + 7, little_endian, endian_arch); ptr = blob + 11; uri_len = gaiaImport16 (ptr, little_endian, endian_arch); if (uri_len > 0) { schemaURI = malloc (uri_len + 1); memcpy (schemaURI, blob + 14, uri_len); *(schemaURI + uri_len) = '\0'; } ptr += 3 + uri_len; fileid_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + fileid_len; parentid_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + parentid_len; title_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + title_len; abstract_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + abstract_len; geometry_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + geometry_len; ptr++; if (compressed) { /* unzipping the XML payload */ uLong refLen = xml_len; const Bytef *in = ptr; xml = malloc (xml_len + 1); if (uncompress (xml, &refLen, in, zip_len) != Z_OK) { /* uncompress error */ spatialite_e ("XmlBLOB DEFLATE uncompress error\n"); free (xml); return 0; } *(xml + xml_len) = '\0'; } else { /* just copying the uncompressed XML payload */ xml = malloc (xml_len + 1); memcpy (xml, ptr, xml_len); *(xml + xml_len) = '\0'; } /* loading the XMLDocument */ xmlSetGenericErrorFunc (NULL, silentError); xml_doc = xmlReadMemory ((const char *) xml, xml_len, "noname.xml", NULL, 0); if (xml_doc == NULL) { /* parsing error; not a well-formed XML */ xmlSetGenericErrorFunc ((void *) stderr, NULL); return 0; } /* inserting the ParentId value */ addIsoId (xml_doc, "parentIdentifier", identifier, ns_id, uri_id, ns_charstr, uri_charstr, &out_blob, &out_len); free (xml); xmlFreeDoc (xml_doc); if (out_blob) { gaiaXmlToBlob (cache, out_blob, out_len, compressed, schemaURI, new_blob, new_size, NULL, NULL); #ifdef __MINGW32__ /* MinGW is unable to statically link libxml2 if xmlFree() is declared */ free (out_blob); #else xmlFree (out_blob); #endif xmlSetGenericErrorFunc ((void *) stderr, NULL); return 1; } xmlSetGenericErrorFunc ((void *) stderr, NULL); return 0; } GAIAGEO_DECLARE char * gaiaXmlBlobGetTitle (const unsigned char *blob, int blob_size) { /* Return the Title from a valid XmlBLOB buffer */ int little_endian = 0; unsigned char flag; const unsigned char *ptr; short uri_len; short fileid_len; short parentid_len; short title_len; char *title; int endian_arch = gaiaEndianArch (); /* validity check */ if (!gaiaIsValidXmlBlob (blob, blob_size)) return NULL; /* cannot be an XmlBLOB */ flag = *(blob + 1); if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN) little_endian = 1; ptr = blob + 11; uri_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + uri_len; fileid_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + fileid_len; parentid_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + parentid_len; title_len = gaiaImport16 (ptr, little_endian, endian_arch); if (!title_len) return NULL; ptr += 3; title = malloc (title_len + 1); memcpy (title, ptr, title_len); *(title + title_len) = '\0'; return title; } GAIAGEO_DECLARE char * gaiaXmlBlobGetAbstract (const unsigned char *blob, int blob_size) { /* Return the Abstract from a valid XmlBLOB buffer */ int little_endian = 0; unsigned char flag; const unsigned char *ptr; short uri_len; short fileid_len; short parentid_len; short title_len; short abstract_len; char *abstract; int endian_arch = gaiaEndianArch (); /* validity check */ if (!gaiaIsValidXmlBlob (blob, blob_size)) return NULL; /* cannot be an XmlBLOB */ flag = *(blob + 1); if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN) little_endian = 1; ptr = blob + 11; uri_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + uri_len; fileid_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + fileid_len; parentid_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + parentid_len; title_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + title_len; abstract_len = gaiaImport16 (ptr, little_endian, endian_arch); if (!abstract_len) return NULL; ptr += 3; abstract = malloc (abstract_len + 1); memcpy (abstract, ptr, abstract_len); *(abstract + abstract_len) = '\0'; return abstract; } GAIAGEO_DECLARE void gaiaXmlBlobGetGeometry (const unsigned char *blob, int blob_size, unsigned char **blob_geom, int *geom_size) { /* Return the Geometry from a valid XmlBLOB buffer */ int little_endian = 0; unsigned char flag; const unsigned char *ptr; short uri_len; short fileid_len; short parentid_len; short title_len; short abstract_len; short geometry_len; unsigned char *geometry; int endian_arch = gaiaEndianArch (); *blob_geom = NULL; *geom_size = 0; /* validity check */ if (!gaiaIsValidXmlBlob (blob, blob_size)) return; /* cannot be an XmlBLOB */ flag = *(blob + 1); if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN) little_endian = 1; ptr = blob + 11; uri_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + uri_len; fileid_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + fileid_len; parentid_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + parentid_len; title_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + title_len; abstract_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + abstract_len; geometry_len = gaiaImport16 (ptr, little_endian, endian_arch); if (!geometry_len) return; ptr += 3; geometry = malloc (geometry_len); memcpy (geometry, ptr, geometry_len); *blob_geom = geometry; *geom_size = geometry_len; } GAIAGEO_DECLARE char * gaiaXmlBlobGetEncoding (const unsigned char *blob, int blob_size) { /* Return the Charset Encoding from a valid XmlBLOB buffer */ int compressed = 0; int little_endian = 0; unsigned char flag; const unsigned char *ptr; int xml_len; int zip_len; short uri_len; short fileid_len; short parentid_len; short title_len; short abstract_len; short geometry_len; unsigned char *xml; xmlDocPtr xml_doc; char *encoding = NULL; int endian_arch = gaiaEndianArch (); xmlGenericErrorFunc silentError = (xmlGenericErrorFunc) spliteSilentError; /* validity check */ if (!gaiaIsValidXmlBlob (blob, blob_size)) return NULL; /* cannot be an XmlBLOB */ flag = *(blob + 1); if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN) little_endian = 1; if ((flag & GAIA_XML_COMPRESSED) == GAIA_XML_COMPRESSED) compressed = 1; xml_len = gaiaImport32 (blob + 3, little_endian, endian_arch); zip_len = gaiaImport32 (blob + 7, little_endian, endian_arch); ptr = blob + 11; uri_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + uri_len; fileid_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + fileid_len; parentid_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + parentid_len; title_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + title_len; abstract_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + abstract_len; geometry_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + geometry_len; ptr++; if (compressed) { /* unzipping the XML payload */ uLong refLen = xml_len; const Bytef *in = ptr; xml = malloc (xml_len + 1); if (uncompress (xml, &refLen, in, zip_len) != Z_OK) { /* uncompress error */ spatialite_e ("XmlBLOB DEFLATE uncompress error\n"); free (xml); return NULL; } *(xml + xml_len) = '\0'; } else { /* just copying the uncompressed XML payload */ xml = malloc (xml_len + 1); memcpy (xml, ptr, xml_len); *(xml + xml_len) = '\0'; } /* retrieving the XMLDocument encoding */ xmlSetGenericErrorFunc (NULL, silentError); xml_doc = xmlReadMemory ((const char *) xml, xml_len, "noname.xml", NULL, 0); if (xml_doc == NULL) { /* parsing error; not a well-formed XML */ xmlSetGenericErrorFunc ((void *) stderr, NULL); return NULL; } free (xml); if (xml_doc->encoding) { /* using the internal character enconding */ int enclen = strlen ((const char *) xml_doc->encoding); encoding = malloc (enclen + 1); strcpy (encoding, (const char *) xml_doc->encoding); xmlFreeDoc (xml_doc); xmlSetGenericErrorFunc ((void *) stderr, NULL); return encoding; } xmlFreeDoc (xml_doc); xmlSetGenericErrorFunc ((void *) stderr, NULL); return NULL; } GAIAGEO_DECLARE char * gaia_libxml2_version (void) { /* return the current LIBXML2 version */ int len; char *version; const char *ver = LIBXML_DOTTED_VERSION; len = strlen (ver); version = malloc (len + 1); strcpy (version, ver); return version; } #endif /* end LIBXML2: supporting XML documents */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.1.1/src/gaiageo/lex.GeoJson.c�������������������������������������������������������0000664�0001750�0001750�00000172766�12163502133�015767� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ #line 3 "lex.GeoJson.c" #define YY_INT_ALIGNED short int /* A lexical scanner generated by flex */ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 5 #define YY_FLEX_SUBMINOR_VERSION 35 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ #include <stdio.h> #include <string.h> #include <errno.h> #include <stdlib.h> /* end standard C headers. */ /* flex integer type definitions */ #ifndef FLEXINT_H #define FLEXINT_H /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */ #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, * if you want the limit (max/min) macros for int types. */ #ifndef __STDC_LIMIT_MACROS #define __STDC_LIMIT_MACROS 1 #endif #include <inttypes.h> typedef int8_t flex_int8_t; typedef uint8_t flex_uint8_t; typedef int16_t flex_int16_t; typedef uint16_t flex_uint16_t; typedef int32_t flex_int32_t; typedef uint32_t flex_uint32_t; #else typedef signed char flex_int8_t; typedef short int flex_int16_t; typedef int flex_int32_t; typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; #endif /* ! C99 */ /* Limits of integral types. */ #ifndef INT8_MIN #define INT8_MIN (-128) #endif #ifndef INT16_MIN #define INT16_MIN (-32767-1) #endif #ifndef INT32_MIN #define INT32_MIN (-2147483647-1) #endif #ifndef INT8_MAX #define INT8_MAX (127) #endif #ifndef INT16_MAX #define INT16_MAX (32767) #endif #ifndef INT32_MAX #define INT32_MAX (2147483647) #endif #ifndef UINT8_MAX #define UINT8_MAX (255U) #endif #ifndef UINT16_MAX #define UINT16_MAX (65535U) #endif #ifndef UINT32_MAX #define UINT32_MAX (4294967295U) #endif #endif /* ! FLEXINT_H */ #ifdef __cplusplus /* The "const" storage-class-modifier is valid. */ #define YY_USE_CONST #else /* ! __cplusplus */ /* C99 requires __STDC__ to be defined as 1. */ #if defined (__STDC__) #define YY_USE_CONST #endif /* defined (__STDC__) */ #endif /* ! __cplusplus */ #ifdef YY_USE_CONST #define yyconst const #else #define yyconst #endif /* Returned upon end-of-file. */ #define YY_NULL 0 /* Promotes a possibly negative, possibly signed char to an unsigned * integer for use as an array index. If the signed char is negative, * we want to instead treat it as an 8-bit unsigned char, hence the * double cast. */ #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) /* An opaque pointer. */ #ifndef YY_TYPEDEF_YY_SCANNER_T #define YY_TYPEDEF_YY_SCANNER_T typedef void *yyscan_t; #endif /* For convenience, these vars (plus the bison vars far below) are macros in the reentrant scanner. */ #define yyin yyg->yyin_r #define yyout yyg->yyout_r #define yyextra yyg->yyextra_r #define yyleng yyg->yyleng_r #define yytext yyg->yytext_r #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno) #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column) #define yy_flex_debug yyg->yy_flex_debug_r /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN yyg->yy_start = 1 + 2 * /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START ((yyg->yy_start - 1) / 2) #define YYSTATE YY_START /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) /* Special action meaning "start processing a new file". */ #define YY_NEW_FILE GeoJsonrestart(yyin ,yyscanner ) #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #ifndef YY_BUF_SIZE #define YY_BUF_SIZE 16384 #endif /* The state buf must be large enough to hold one state per character in the main buffer. */ #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) #ifndef YY_TYPEDEF_YY_BUFFER_STATE #define YY_TYPEDEF_YY_BUFFER_STATE typedef struct yy_buffer_state *YY_BUFFER_STATE; #endif #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 #define YY_LESS_LINENO(n) /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ *yy_cp = yyg->yy_hold_char; \ YY_RESTORE_YY_MORE_OFFSET \ yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner ) #ifndef YY_TYPEDEF_YY_SIZE_T #define YY_TYPEDEF_YY_SIZE_T typedef size_t yy_size_t; #endif #ifndef YY_STRUCT_YY_BUFFER_STATE #define YY_STRUCT_YY_BUFFER_STATE struct yy_buffer_state { FILE *yy_input_file; char *yy_ch_buf; /* input buffer */ char *yy_buf_pos; /* current position in input buffer */ /* Size of input buffer in bytes, not including room for EOB * characters. */ yy_size_t yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. */ int yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to * delete it. */ int yy_is_our_buffer; /* Whether this is an "interactive" input source; if so, and * if we're using stdio for input, then we want to use getc() * instead of fread(), to make sure we stop fetching input after * each newline. */ int yy_is_interactive; /* Whether we're considered to be at the beginning of a line. * If so, '^' rules will be active on the next match, otherwise * not. */ int yy_at_bol; int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ /* Whether to try to fill the input buffer when we reach the * end of it. */ int yy_fill_buffer; int yy_buffer_status; #define YY_BUFFER_NEW 0 #define YY_BUFFER_NORMAL 1 /* When an EOF's been seen but there's still some text to process * then we mark the buffer as YY_EOF_PENDING, to indicate that we * shouldn't try reading from the input source any more. We might * still have a bunch of tokens to match, though, because of * possible backing-up. * * When we actually see the EOF, we change the status to "new" * (via GeoJsonrestart()), so that the user can continue scanning by * just pointing yyin at a new input file. */ #define YY_BUFFER_EOF_PENDING 2 }; #endif /* !YY_STRUCT_YY_BUFFER_STATE */ /* We provide macros for accessing buffer states in case in the * future we want to put the buffer states in a more general * "scanner state". * * Returns the top of the stack, or NULL. */ #define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \ ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \ : NULL) /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] void GeoJsonrestart (FILE * input_file, yyscan_t yyscanner); void GeoJson_switch_to_buffer (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner); YY_BUFFER_STATE GeoJson_create_buffer (FILE * file, int size, yyscan_t yyscanner); void GeoJson_delete_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner); void GeoJson_flush_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner); void GeoJsonpush_buffer_state (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner); void GeoJsonpop_buffer_state (yyscan_t yyscanner); static void GeoJsonensure_buffer_stack (yyscan_t yyscanner); static void GeoJson_load_buffer_state (yyscan_t yyscanner); static void GeoJson_init_buffer (YY_BUFFER_STATE b, FILE * file, yyscan_t yyscanner); #define YY_FLUSH_BUFFER GeoJson_flush_buffer(YY_CURRENT_BUFFER ,yyscanner) YY_BUFFER_STATE GeoJson_scan_buffer (char *base, yy_size_t size, yyscan_t yyscanner); YY_BUFFER_STATE GeoJson_scan_string (yyconst char *yy_str, yyscan_t yyscanner); YY_BUFFER_STATE GeoJson_scan_bytes (yyconst char *bytes, int len, yyscan_t yyscanner); void *GeoJsonalloc (yy_size_t, yyscan_t yyscanner); void *GeoJsonrealloc (void *, yy_size_t, yyscan_t yyscanner); void GeoJsonfree (void *, yyscan_t yyscanner); #define yy_new_buffer GeoJson_create_buffer #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ GeoJsonensure_buffer_stack (yyscanner); \ YY_CURRENT_BUFFER_LVALUE = \ GeoJson_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ GeoJsonensure_buffer_stack (yyscanner); \ YY_CURRENT_BUFFER_LVALUE = \ GeoJson_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* Begin user sect3 */ typedef unsigned char YY_CHAR; typedef int yy_state_type; #define yytext_ptr yytext_r static yy_state_type yy_get_previous_state (yyscan_t yyscanner); static yy_state_type yy_try_NUL_trans (yy_state_type current_state, yyscan_t yyscanner); static int yy_get_next_buffer (yyscan_t yyscanner); static void yy_fatal_error (yyconst char msg[], yyscan_t yyscanner); /* Done after the current pattern has been matched and before the * corresponding action - sets up yytext. */ #define YY_DO_BEFORE_ACTION \ yyg->yytext_ptr = yy_bp; \ yyleng = (size_t) (yy_cp - yy_bp); \ yyg->yy_hold_char = *yy_cp; \ *yy_cp = '\0'; \ yyg->yy_c_buf_p = yy_cp; #define YY_NUM_RULES 27 #define YY_END_OF_BUFFER 28 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info { flex_int32_t yy_verify; flex_int32_t yy_nxt; }; static yyconst flex_int16_t yy_accept[182] = { 0, 0, 0, 28, 26, 24, 25, 26, 26, 4, 26, 1, 5, 8, 9, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 14, 0, 10, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 20, 0, 0, 12, 15, 0, 0, 0, 0, 11, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 3, 0 }; static yyconst flex_int32_t yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 7, 8, 1, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 1, 1, 1, 1, 1, 1, 1, 1, 11, 1, 12, 1, 13, 1, 1, 1, 1, 14, 15, 1, 1, 16, 1, 1, 17, 1, 1, 1, 1, 1, 1, 1, 18, 1, 19, 1, 1, 1, 20, 21, 22, 23, 24, 25, 26, 1, 27, 1, 1, 28, 29, 30, 31, 32, 1, 33, 34, 35, 36, 1, 1, 37, 38, 1, 39, 1, 40, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }; static yyconst flex_int32_t yy_meta[41] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }; static yyconst flex_int16_t yy_base[183] = { 0, 0, 39, 203, 204, 204, 204, 68, 193, 204, 4, 3, 204, 204, 204, 204, 204, 185, 176, 172, 162, 166, 175, 0, 171, 174, 160, 154, 158, 6, 11, 8, 181, 12, 172, 157, 157, 158, 0, 154, 153, 149, 151, 152, 149, 147, 148, 168, 167, 166, 161, 144, 148, 136, 140, 131, 131, 134, 162, 136, 140, 131, 138, 151, 151, 150, 148, 133, 139, 128, 119, 127, 148, 128, 204, 126, 145, 124, 143, 115, 15, 110, 109, 16, 139, 111, 204, 114, 105, 204, 106, 204, 112, 128, 25, 103, 102, 107, 102, 204, 102, 101, 97, 94, 106, 204, 89, 99, 95, 8, 120, 103, 95, 94, 110, 108, 88, 93, 86, 77, 204, 79, 89, 88, 88, 79, 83, 91, 72, 80, 81, 68, 67, 75, 69, 92, 60, 89, 61, 57, 84, 83, 61, 57, 204, 44, 204, 46, 71, 204, 204, 64, 49, 45, 67, 204, 48, 47, 38, 204, 34, 31, 39, 30, 36, 58, 51, 29, 204, 47, 25, 38, 49, 21, 204, 24, 16, 43, 16, 47, 204, 204, 0 }; static yyconst flex_int16_t yy_def[183] = { 0, 182, 182, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 0, 181 }; static yyconst flex_int16_t yy_nxt[245] = { 0, 4, 5, 6, 7, 8, 9, 10, 30, 11, 12, 32, 33, 31, 47, 29, 48, 31, 13, 14, 32, 33, 93, 17, 94, 179, 177, 54, 55, 105, 97, 40, 98, 41, 94, 118, 119, 176, 175, 15, 16, 5, 6, 7, 8, 9, 10, 28, 11, 12, 178, 180, 179, 174, 173, 172, 179, 13, 14, 171, 170, 169, 168, 167, 166, 165, 164, 163, 162, 161, 160, 159, 158, 157, 156, 155, 154, 153, 15, 16, 17, 18, 19, 20, 21, 152, 151, 150, 149, 22, 23, 148, 147, 146, 24, 145, 144, 143, 25, 142, 26, 141, 140, 27, 28, 139, 138, 137, 136, 135, 134, 133, 132, 131, 130, 129, 128, 127, 126, 125, 124, 123, 122, 121, 120, 117, 116, 115, 114, 113, 112, 111, 110, 109, 108, 107, 106, 94, 104, 103, 102, 101, 100, 99, 96, 95, 92, 91, 90, 89, 88, 87, 86, 85, 84, 83, 82, 81, 80, 65, 64, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 49, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 53, 52, 51, 50, 49, 46, 45, 44, 43, 42, 39, 38, 37, 36, 35, 34, 29, 181, 3, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181 }; static yyconst flex_int16_t yy_chk[245] = { 0, 182, 1, 1, 1, 1, 1, 1, 10, 1, 1, 11, 11, 10, 29, 29, 31, 31, 1, 1, 33, 33, 80, 30, 80, 178, 176, 38, 38, 94, 83, 23, 83, 23, 94, 109, 109, 175, 173, 1, 1, 2, 2, 2, 2, 2, 2, 30, 2, 2, 177, 179, 177, 172, 171, 170, 179, 2, 2, 169, 167, 166, 165, 164, 163, 162, 161, 160, 158, 157, 156, 154, 153, 152, 151, 148, 147, 145, 2, 2, 7, 7, 7, 7, 7, 143, 142, 141, 140, 7, 7, 139, 138, 137, 7, 136, 135, 134, 7, 133, 7, 132, 131, 7, 7, 130, 129, 128, 127, 126, 125, 124, 123, 122, 121, 119, 118, 117, 116, 115, 114, 113, 112, 111, 110, 108, 107, 106, 104, 103, 102, 101, 100, 98, 97, 96, 95, 93, 92, 90, 88, 87, 85, 84, 82, 81, 79, 78, 77, 76, 75, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 37, 36, 35, 34, 32, 28, 27, 26, 25, 24, 22, 21, 20, 19, 18, 17, 8, 3, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181 }; /* The intent behind this definition is that it'll catch * any uses of REJECT which flex missed. */ #define REJECT reject_used_but_not_detected #define yymore() yymore_used_but_not_detected #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET /* geoJsonLexer.l -- GeoJSON parser - FLEX config version 2.4, 2011 May 16 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #define YY_NO_INPUT 1 /** * The main string-token matcher. * The lower case part is probably not needed. We should really be converting * The string to all uppercase/lowercase to make it case iNsEnSiTiVe. * What Flex will do is, For the input string, beginning from the front, Flex * will try to match with any of the defined tokens from below. Flex will * then match the string of longest length. Suppose the string is: POINTM, * Flex would match both POINT and POINTM, but since POINTM is the longer * of the two tokens, FLEX will match POINTM. */ #define INITIAL 0 #ifndef YY_NO_UNISTD_H /* Special case for "unistd.h", since it is non-ANSI. We include it way * down here because we want the user's section 1 to have been scanned first. * The user has a chance to override it with an option. */ #include <unistd.h> #endif #define YY_EXTRA_TYPE struct geoJson_data * /* Holds the entire state of the reentrant scanner. */ struct yyguts_t { /* User-defined. Not touched by flex. */ YY_EXTRA_TYPE yyextra_r; /* The rest are the same as the globals declared in the non-reentrant scanner. */ FILE *yyin_r, *yyout_r; size_t yy_buffer_stack_top; /**< index of top of stack. */ size_t yy_buffer_stack_max; /**< capacity of stack. */ YY_BUFFER_STATE *yy_buffer_stack; /**< Stack as an array. */ char yy_hold_char; int yy_n_chars; int yyleng_r; char *yy_c_buf_p; int yy_init; int yy_start; int yy_did_buffer_switch_on_eof; int yy_start_stack_ptr; int yy_start_stack_depth; int *yy_start_stack; yy_state_type yy_last_accepting_state; char *yy_last_accepting_cpos; int yylineno_r; int yy_flex_debug_r; char *yytext_r; int yy_more_flag; int yy_more_len; }; /* end struct yyguts_t */ static int yy_init_globals (yyscan_t yyscanner); int GeoJsonlex_init (yyscan_t * scanner); int GeoJsonlex_init_extra (YY_EXTRA_TYPE user_defined, yyscan_t * scanner); /* Accessor methods to globals. These are made visible to non-reentrant scanners for convenience. */ int GeoJsonlex_destroy (yyscan_t yyscanner); int GeoJsonget_debug (yyscan_t yyscanner); void GeoJsonset_debug (int debug_flag, yyscan_t yyscanner); YY_EXTRA_TYPE GeoJsonget_extra (yyscan_t yyscanner); void GeoJsonset_extra (YY_EXTRA_TYPE user_defined, yyscan_t yyscanner); FILE *GeoJsonget_in (yyscan_t yyscanner); void GeoJsonset_in (FILE * in_str, yyscan_t yyscanner); FILE *GeoJsonget_out (yyscan_t yyscanner); void GeoJsonset_out (FILE * out_str, yyscan_t yyscanner); int GeoJsonget_leng (yyscan_t yyscanner); char *GeoJsonget_text (yyscan_t yyscanner); int GeoJsonget_lineno (yyscan_t yyscanner); void GeoJsonset_lineno (int line_number, yyscan_t yyscanner); int GeoJsonget_column (yyscan_t yyscanner); void GeoJsonset_column (int column_no, yyscan_t yyscanner); /* Macros after this point can all be overridden by user definitions in * section 1. */ #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus extern "C" int GeoJsonwrap (yyscan_t yyscanner); #else extern int GeoJsonwrap (yyscan_t yyscanner); #endif #endif #ifndef yytext_ptr static void yy_flex_strncpy (char *, yyconst char *, int, yyscan_t yyscanner); #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen (yyconst char *, yyscan_t yyscanner); #endif #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput (yyscan_t yyscanner); #else static int input (yyscan_t yyscanner); #endif #endif /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE #define YY_READ_BUF_SIZE 8192 #endif /* Copy whatever the last rule matched to the standard output. */ #ifndef ECHO /* This used to be an fputs(), but since the string might contain NUL's, * we now use fwrite(). */ #define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0) #endif /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, * is returned in "result". */ #ifndef YY_INPUT #define YY_INPUT(buf,result,max_size) \ if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ { \ int c = '*'; \ unsigned n; \ for ( n = 0; n < max_size && \ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ if ( c == '\n' ) \ buf[n++] = (char) c; \ if ( c == EOF && ferror( yyin ) ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ result = n; \ } \ else \ { \ errno=0; \ while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \ { \ if( errno != EINTR) \ { \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ break; \ } \ errno=0; \ clearerr(yyin); \ } \ }\ \ #endif /* No semi-colon after return; correct usage is to write "yyterminate();" - * we don't want an extra ';' after the "return" because that will cause * some compilers to complain about unreachable statements. */ #ifndef yyterminate #define yyterminate() return YY_NULL #endif /* Number of entries by which start-condition stack grows. */ #ifndef YY_START_STACK_INCR #define YY_START_STACK_INCR 25 #endif /* Report a fatal error. */ #ifndef YY_FATAL_ERROR #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner) #endif /* end tables serialization structures and prototypes */ /* Default declaration of generated scanner - a define so the user can * easily add parameters. */ #ifndef YY_DECL #define YY_DECL_IS_OURS 1 extern int GeoJsonlex (yyscan_t yyscanner); #define YY_DECL int GeoJsonlex (yyscan_t yyscanner) #endif /* !YY_DECL */ /* Code executed at the beginning of each rule, after yytext and yyleng * have been set up. */ #ifndef YY_USER_ACTION #define YY_USER_ACTION #endif /* Code executed at the end of each rule. */ #ifndef YY_BREAK #define YY_BREAK break; #endif #define YY_RULE_SETUP \ YY_USER_ACTION /** The main scanner function which does all the work. */ YY_DECL { register yy_state_type yy_current_state; register char *yy_cp, *yy_bp; register int yy_act; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!yyg->yy_init) { yyg->yy_init = 1; #ifdef YY_USER_INIT YY_USER_INIT; #endif if (!yyg->yy_start) yyg->yy_start = 1; /* first start state */ if (!yyin) yyin = stdin; if (!yyout) yyout = stdout; if (!YY_CURRENT_BUFFER) { GeoJsonensure_buffer_stack (yyscanner); YY_CURRENT_BUFFER_LVALUE = GeoJson_create_buffer (yyin, YY_BUF_SIZE, yyscanner); } GeoJson_load_buffer_state (yyscanner); } while (1) /* loops until end-of-file is reached */ { yy_cp = yyg->yy_c_buf_p; /* Support of yytext. */ *yy_cp = yyg->yy_hold_char; /* yy_bp points to the position in yy_ch_buf of the start of * the current run. */ yy_bp = yy_cp; yy_current_state = yyg->yy_start; yy_match: do { register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI (*yy_cp)]; if (yy_accept[yy_current_state]) { yyg->yy_last_accepting_state = yy_current_state; yyg->yy_last_accepting_cpos = yy_cp; } while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state) { yy_current_state = (int) yy_def[yy_current_state]; if (yy_current_state >= 182) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } while (yy_base[yy_current_state] != 204); yy_find_action: yy_act = yy_accept[yy_current_state]; if (yy_act == 0) { /* have to back up */ yy_cp = yyg->yy_last_accepting_cpos; yy_current_state = yyg->yy_last_accepting_state; yy_act = yy_accept[yy_current_state]; } YY_DO_BEFORE_ACTION; do_action: /* This label is used only to access EOF actions. */ switch (yy_act) { /* beginning of action switch */ case 0: /* must back up */ /* undo the effects of YY_DO_BEFORE_ACTION */ *yy_cp = yyg->yy_hold_char; yy_cp = yyg->yy_last_accepting_cpos; yy_current_state = yyg->yy_last_accepting_state; goto yy_find_action; case 1: YY_RULE_SETUP { GeoJsonget_extra (yyscanner)->geoJson_col += (int) strlen (yytext); GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = atof (yytext); return GEOJSON_NUM; } YY_BREAK case 2: YY_RULE_SETUP { GeoJsonget_extra (yyscanner)->geoJson_col += (int) strlen (yytext); GeoJsonget_extra (yyscanner)->GeoJsonLval.ival = atoi (yytext + 6); return GEOJSON_SHORT_SRID; } YY_BREAK case 3: YY_RULE_SETUP { GeoJsonget_extra (yyscanner)->geoJson_col += (int) strlen (yytext); GeoJsonget_extra (yyscanner)->GeoJsonLval.ival = atoi (yytext + 22); return GEOJSON_LONG_SRID; } YY_BREAK case 4: YY_RULE_SETUP { GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_COMMA; } YY_BREAK case 5: YY_RULE_SETUP { GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_COLON; } YY_BREAK case 6: YY_RULE_SETUP { GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_OPEN_BRACE; } YY_BREAK case 7: YY_RULE_SETUP { GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_CLOSE_BRACE; } YY_BREAK case 8: YY_RULE_SETUP { GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_OPEN_BRACKET; } YY_BREAK case 9: YY_RULE_SETUP { GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_CLOSE_BRACKET; } YY_BREAK case 10: YY_RULE_SETUP { GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_TYPE; } YY_BREAK case 11: YY_RULE_SETUP { GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_COORDS; } YY_BREAK case 12: YY_RULE_SETUP { GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_GEOMS; } YY_BREAK case 13: YY_RULE_SETUP { GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_BBOX; } YY_BREAK case 14: YY_RULE_SETUP { GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_NAME; } YY_BREAK case 15: YY_RULE_SETUP { GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_PROPS; } YY_BREAK case 16: YY_RULE_SETUP { GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_CRS; } YY_BREAK case 17: YY_RULE_SETUP { GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_POINT; } YY_BREAK case 18: YY_RULE_SETUP { GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_LINESTRING; } YY_BREAK case 19: YY_RULE_SETUP { GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_POLYGON; } YY_BREAK case 20: YY_RULE_SETUP { GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_MULTIPOINT; } YY_BREAK case 21: YY_RULE_SETUP { GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_MULTILINESTRING; } YY_BREAK case 22: YY_RULE_SETUP { GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_MULTIPOLYGON; } YY_BREAK case 23: YY_RULE_SETUP { GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_GEOMETRYCOLLECTION; } YY_BREAK case 24: YY_RULE_SETUP { GeoJsonget_extra (yyscanner)->geoJson_col += (int) strlen (yytext); } /* ignore but count white space */ YY_BREAK case 25: /* rule 25 can match eol */ YY_RULE_SETUP { GeoJsonget_extra (yyscanner)->geoJson_col = 0; GeoJsonget_extra (yyscanner)->geoJson_line++; } YY_BREAK case 26: YY_RULE_SETUP { GeoJsonget_extra (yyscanner)->geoJson_col += (int) strlen (yytext); return -1; } YY_BREAK case 27: YY_RULE_SETUP ECHO; YY_BREAK case YY_STATE_EOF (INITIAL): yyterminate (); case YY_END_OF_BUFFER: { /* Amount of text matched not including the EOB char. */ int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1; /* Undo the effects of YY_DO_BEFORE_ACTION. */ *yy_cp = yyg->yy_hold_char; YY_RESTORE_YY_MORE_OFFSET if (YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW) { /* We're scanning a new file or input source. It's * possible that this happened because the user * just pointed yyin at a new source and called * GeoJsonlex(). If so, then we have to assure * consistency between YY_CURRENT_BUFFER and our * globals. Here is the right place to do so, because * this is the first action (other than possibly a * back-up) that will match for the new input source. */ yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; } /* Note that here we test for yy_c_buf_p "<=" to the position * of the first EOB in the buffer, since yy_c_buf_p will * already have been incremented past the NUL character * (since all states make transitions on EOB to the * end-of-buffer state). Contrast this with the test * in input(). */ if (yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars]) { /* This was really a NUL. */ yy_state_type yy_next_state; yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state (yyscanner); /* Okay, we're now positioned to make the NUL * transition. We couldn't have * yy_get_previous_state() go ahead and do it * for us because it doesn't know how to deal * with the possibility of jamming (and we don't * want to build jamming into it because then it * will run more slowly). */ yy_next_state = yy_try_NUL_trans (yy_current_state, yyscanner); yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; if (yy_next_state) { /* Consume the NUL. */ yy_cp = ++yyg->yy_c_buf_p; yy_current_state = yy_next_state; goto yy_match; } else { yy_cp = yyg->yy_c_buf_p; goto yy_find_action; } } else switch (yy_get_next_buffer (yyscanner)) { case EOB_ACT_END_OF_FILE: { yyg->yy_did_buffer_switch_on_eof = 0; if (GeoJsonwrap (yyscanner)) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up * yytext, we can now set up * yy_c_buf_p so that if some total * hoser (like flex itself) wants to * call the scanner after we return the * YY_NULL, it'll still work - another * YY_NULL will get returned. */ yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ; yy_act = YY_STATE_EOF (YY_START); goto do_action; } else { if (!yyg->yy_did_buffer_switch_on_eof) YY_NEW_FILE; } break; } case EOB_ACT_CONTINUE_SCAN: yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state (yyscanner); yy_cp = yyg->yy_c_buf_p; yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; goto yy_match; case EOB_ACT_LAST_MATCH: yyg->yy_c_buf_p = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg-> yy_n_chars]; yy_current_state = yy_get_previous_state (yyscanner); yy_cp = yyg->yy_c_buf_p; yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; goto yy_find_action; } break; } default: YY_FATAL_ERROR ("fatal flex scanner internal error--no action found"); } /* end of action switch */ } /* end of scanning one token */ } /* end of GeoJsonlex */ /* yy_get_next_buffer - try to read in a new buffer * * Returns a code representing an action: * EOB_ACT_LAST_MATCH - * EOB_ACT_CONTINUE_SCAN - continue scanning from current position * EOB_ACT_END_OF_FILE - end of file */ static int yy_get_next_buffer (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; register char *source = yyg->yytext_ptr; register int number_to_move, i; int ret_val; if (yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1]) YY_FATAL_ERROR ("fatal flex scanner internal error--end of buffer missed"); if (YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0) { /* Don't try to fill the buffer, so this is an EOF. */ if (yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1) { /* We matched a single character, the EOB, so * treat this as a final EOF. */ return EOB_ACT_END_OF_FILE; } else { /* We matched some text prior to the EOB, first * process it. */ return EOB_ACT_LAST_MATCH; } } /* Try to read more data. */ /* First move last chars to start of buffer. */ number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1; for (i = 0; i < number_to_move; ++i) *(dest++) = *(source++); if (YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING) /* don't do the read, it's not guaranteed to return an EOF, * just force an EOF */ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0; else { int num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; while (num_to_read <= 0) { /* Not enough room in the buffer - grow it. */ /* just a shorter name for the current buffer */ YY_BUFFER_STATE b = YY_CURRENT_BUFFER; int yy_c_buf_p_offset = (int) (yyg->yy_c_buf_p - b->yy_ch_buf); if (b->yy_is_our_buffer) { int new_size = b->yy_buf_size * 2; if (new_size <= 0) b->yy_buf_size += b->yy_buf_size / 8; else b->yy_buf_size *= 2; b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ GeoJsonrealloc ((void *) b->yy_ch_buf, b->yy_buf_size + 2, yyscanner); } else /* Can't grow it, we don't own it. */ b->yy_ch_buf = 0; if (!b->yy_ch_buf) YY_FATAL_ERROR ("fatal error - scanner input buffer overflow"); yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset]; num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; } if (num_to_read > YY_READ_BUF_SIZE) num_to_read = YY_READ_BUF_SIZE; /* Read in more data. */ YY_INPUT ((&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), yyg->yy_n_chars, (size_t) num_to_read); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; } if (yyg->yy_n_chars == 0) { if (number_to_move == YY_MORE_ADJ) { ret_val = EOB_ACT_END_OF_FILE; GeoJsonrestart (yyin, yyscanner); } else { ret_val = EOB_ACT_LAST_MATCH; YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_EOF_PENDING; } } else ret_val = EOB_ACT_CONTINUE_SCAN; if ((yy_size_t) (yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ yy_size_t new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1); YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) GeoJsonrealloc ((void *) YY_CURRENT_BUFFER_LVALUE-> yy_ch_buf, new_size, yyscanner); if (!YY_CURRENT_BUFFER_LVALUE->yy_ch_buf) YY_FATAL_ERROR ("out of dynamic memory in yy_get_next_buffer()"); } yyg->yy_n_chars += number_to_move; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR; yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; return ret_val; } /* yy_get_previous_state - get the state just before the EOB char was reached */ static yy_state_type yy_get_previous_state (yyscan_t yyscanner) { register yy_state_type yy_current_state; register char *yy_cp; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yy_current_state = yyg->yy_start; for (yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp) { register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI (*yy_cp)] : 1); if (yy_accept[yy_current_state]) { yyg->yy_last_accepting_state = yy_current_state; yyg->yy_last_accepting_cpos = yy_cp; } while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state) { yy_current_state = (int) yy_def[yy_current_state]; if (yy_current_state >= 182) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; } return yy_current_state; } /* yy_try_NUL_trans - try to make a transition on the NUL character * * synopsis * next_state = yy_try_NUL_trans( current_state ); */ static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state, yyscan_t yyscanner) { register int yy_is_jam; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* This var may be unused depending upon options. */ register char *yy_cp = yyg->yy_c_buf_p; register YY_CHAR yy_c = 1; if (yy_accept[yy_current_state]) { yyg->yy_last_accepting_state = yy_current_state; yyg->yy_last_accepting_cpos = yy_cp; } while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state) { yy_current_state = (int) yy_def[yy_current_state]; if (yy_current_state >= 182) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; yy_is_jam = (yy_current_state == 181); return yy_is_jam ? 0 : yy_current_state; } #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput (yyscan_t yyscanner) #else static int input (yyscan_t yyscanner) #endif { int c; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; *yyg->yy_c_buf_p = yyg->yy_hold_char; if (*yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR) { /* yy_c_buf_p now points to the character we want to return. * If this occurs *before* the EOB characters, then it's a * valid NUL; if not, then we've hit the end of the buffer. */ if (yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars]) /* This was really a NUL. */ *yyg->yy_c_buf_p = '\0'; else { /* need more input */ int offset = yyg->yy_c_buf_p - yyg->yytext_ptr; ++yyg->yy_c_buf_p; switch (yy_get_next_buffer (yyscanner)) { case EOB_ACT_LAST_MATCH: /* This happens because yy_g_n_b() * sees that we've accumulated a * token and flags that we need to * try matching the token before * proceeding. But for input(), * there's no matching to consider. * So convert the EOB_ACT_LAST_MATCH * to EOB_ACT_END_OF_FILE. */ /* Reset buffer status. */ GeoJsonrestart (yyin, yyscanner); /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE: { if (GeoJsonwrap (yyscanner)) return EOF; if (!yyg->yy_did_buffer_switch_on_eof) YY_NEW_FILE; #ifdef __cplusplus return yyinput (yyscanner); #else return input (yyscanner); #endif } case EOB_ACT_CONTINUE_SCAN: yyg->yy_c_buf_p = yyg->yytext_ptr + offset; break; } } } c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */ *yyg->yy_c_buf_p = '\0'; /* preserve yytext */ yyg->yy_hold_char = *++yyg->yy_c_buf_p; return c; } #endif /* ifndef YY_NO_INPUT */ /** Immediately switch to a different input stream. * @param input_file A readable stream. * @param yyscanner The scanner object. * @note This function does not reset the start condition to @c INITIAL . */ void GeoJsonrestart (FILE * input_file, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!YY_CURRENT_BUFFER) { GeoJsonensure_buffer_stack (yyscanner); YY_CURRENT_BUFFER_LVALUE = GeoJson_create_buffer (yyin, YY_BUF_SIZE, yyscanner); } GeoJson_init_buffer (YY_CURRENT_BUFFER, input_file, yyscanner); GeoJson_load_buffer_state (yyscanner); } /** Switch to a different input buffer. * @param new_buffer The new input buffer. * @param yyscanner The scanner object. */ void GeoJson_switch_to_buffer (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* TODO. We should be able to replace this entire function body * with * GeoJsonpop_buffer_state(); * GeoJsonpush_buffer_state(new_buffer); */ GeoJsonensure_buffer_stack (yyscanner); if (YY_CURRENT_BUFFER == new_buffer) return; if (YY_CURRENT_BUFFER) { /* Flush out information for old buffer. */ *yyg->yy_c_buf_p = yyg->yy_hold_char; YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; } YY_CURRENT_BUFFER_LVALUE = new_buffer; GeoJson_load_buffer_state (yyscanner); /* We don't actually know whether we did this switch during * EOF (GeoJsonwrap()) processing, but the only time this flag * is looked at is after GeoJsonwrap() is called, so it's safe * to go ahead and always set it. */ yyg->yy_did_buffer_switch_on_eof = 1; } static void GeoJson_load_buffer_state (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; yyg->yy_hold_char = *yyg->yy_c_buf_p; } /** Allocate and initialize an input buffer state. * @param file A readable stream. * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. * @param yyscanner The scanner object. * @return the allocated buffer state. */ YY_BUFFER_STATE GeoJson_create_buffer (FILE * file, int size, yyscan_t yyscanner) { YY_BUFFER_STATE b; b = (YY_BUFFER_STATE) GeoJsonalloc (sizeof (struct yy_buffer_state), yyscanner); if (!b) YY_FATAL_ERROR ("out of dynamic memory in GeoJson_create_buffer()"); b->yy_buf_size = size; /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ b->yy_ch_buf = (char *) GeoJsonalloc (b->yy_buf_size + 2, yyscanner); if (!b->yy_ch_buf) YY_FATAL_ERROR ("out of dynamic memory in GeoJson_create_buffer()"); b->yy_is_our_buffer = 1; GeoJson_init_buffer (b, file, yyscanner); return b; } /** Destroy the buffer. * @param b a buffer created with GeoJson_create_buffer() * @param yyscanner The scanner object. */ void GeoJson_delete_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!b) return; if (b == YY_CURRENT_BUFFER) /* Not sure if we should pop here. */ YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if (b->yy_is_our_buffer) GeoJsonfree ((void *) b->yy_ch_buf, yyscanner); GeoJsonfree ((void *) b, yyscanner); } #ifndef __cplusplus extern int isatty (int); #endif /* __cplusplus */ /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a GeoJsonrestart() or at EOF. */ static void GeoJson_init_buffer (YY_BUFFER_STATE b, FILE * file, yyscan_t yyscanner) { int oerrno = errno; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; GeoJson_flush_buffer (b, yyscanner); b->yy_input_file = file; b->yy_fill_buffer = 1; /* If b is the current buffer, then GeoJson_init_buffer was _probably_ * called from GeoJsonrestart() or through yy_get_next_buffer. * In that case, we don't want to reset the lineno or column. */ if (b != YY_CURRENT_BUFFER) { b->yy_bs_lineno = 1; b->yy_bs_column = 0; } b->yy_is_interactive = file ? (isatty (fileno (file)) > 0) : 0; errno = oerrno; } /** Discard all buffered characters. On the next scan, YY_INPUT will be called. * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. * @param yyscanner The scanner object. */ void GeoJson_flush_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!b) return; b->yy_n_chars = 0; /* We always need two end-of-buffer characters. The first causes * a transition to the end-of-buffer state. The second causes * a jam in that state. */ b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; b->yy_buf_pos = &b->yy_ch_buf[0]; b->yy_at_bol = 1; b->yy_buffer_status = YY_BUFFER_NEW; if (b == YY_CURRENT_BUFFER) GeoJson_load_buffer_state (yyscanner); } /** Pushes the new state onto the stack. The new state becomes * the current state. This function will allocate the stack * if necessary. * @param new_buffer The new state. * @param yyscanner The scanner object. */ void GeoJsonpush_buffer_state (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (new_buffer == NULL) return; GeoJsonensure_buffer_stack (yyscanner); /* This block is copied from GeoJson_switch_to_buffer. */ if (YY_CURRENT_BUFFER) { /* Flush out information for old buffer. */ *yyg->yy_c_buf_p = yyg->yy_hold_char; YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; } /* Only push if top exists. Otherwise, replace top. */ if (YY_CURRENT_BUFFER) yyg->yy_buffer_stack_top++; YY_CURRENT_BUFFER_LVALUE = new_buffer; /* copied from GeoJson_switch_to_buffer. */ GeoJson_load_buffer_state (yyscanner); yyg->yy_did_buffer_switch_on_eof = 1; } /** Removes and deletes the top of the stack, if present. * The next element becomes the new top. * @param yyscanner The scanner object. */ void GeoJsonpop_buffer_state (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!YY_CURRENT_BUFFER) return; GeoJson_delete_buffer (YY_CURRENT_BUFFER, yyscanner); YY_CURRENT_BUFFER_LVALUE = NULL; if (yyg->yy_buffer_stack_top > 0) --yyg->yy_buffer_stack_top; if (YY_CURRENT_BUFFER) { GeoJson_load_buffer_state (yyscanner); yyg->yy_did_buffer_switch_on_eof = 1; } } /* Allocates the stack if it does not exist. * Guarantees space for at least one push. */ static void GeoJsonensure_buffer_stack (yyscan_t yyscanner) { int num_to_alloc; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!yyg->yy_buffer_stack) { /* First allocation is just for 2 elements, since we don't know if this * scanner will even need a stack. We use 2 instead of 1 to avoid an * immediate realloc on the next call. */ num_to_alloc = 1; yyg->yy_buffer_stack = (struct yy_buffer_state **) GeoJsonalloc (num_to_alloc * sizeof (struct yy_buffer_state *), yyscanner); if (!yyg->yy_buffer_stack) YY_FATAL_ERROR ("out of dynamic memory in GeoJsonensure_buffer_stack()"); memset (yyg->yy_buffer_stack, 0, num_to_alloc * sizeof (struct yy_buffer_state *)); yyg->yy_buffer_stack_max = num_to_alloc; yyg->yy_buffer_stack_top = 0; return; } if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1) { /* Increase the buffer to prepare for a possible push. */ int grow_size = 8 /* arbitrary grow size */ ; num_to_alloc = yyg->yy_buffer_stack_max + grow_size; yyg->yy_buffer_stack = (struct yy_buffer_state **) GeoJsonrealloc (yyg->yy_buffer_stack, num_to_alloc * sizeof (struct yy_buffer_state *), yyscanner); if (!yyg->yy_buffer_stack) YY_FATAL_ERROR ("out of dynamic memory in GeoJsonensure_buffer_stack()"); /* zero only the new slots. */ memset (yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof (struct yy_buffer_state *)); yyg->yy_buffer_stack_max = num_to_alloc; } } /** Setup the input buffer state to scan directly from a user-specified character buffer. * @param base the character buffer * @param size the size in bytes of the character buffer * @param yyscanner The scanner object. * @return the newly allocated buffer state object. */ YY_BUFFER_STATE GeoJson_scan_buffer (char *base, yy_size_t size, yyscan_t yyscanner) { YY_BUFFER_STATE b; if (size < 2 || base[size - 2] != YY_END_OF_BUFFER_CHAR || base[size - 1] != YY_END_OF_BUFFER_CHAR) /* They forgot to leave room for the EOB's. */ return 0; b = (YY_BUFFER_STATE) GeoJsonalloc (sizeof (struct yy_buffer_state), yyscanner); if (!b) YY_FATAL_ERROR ("out of dynamic memory in GeoJson_scan_buffer()"); b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ b->yy_buf_pos = b->yy_ch_buf = base; b->yy_is_our_buffer = 0; b->yy_input_file = 0; b->yy_n_chars = b->yy_buf_size; b->yy_is_interactive = 0; b->yy_at_bol = 1; b->yy_fill_buffer = 0; b->yy_buffer_status = YY_BUFFER_NEW; GeoJson_switch_to_buffer (b, yyscanner); return b; } /** Setup the input buffer state to scan a string. The next call to GeoJsonlex() will * scan from a @e copy of @a str. * @param yystr a NUL-terminated string to scan * @param yyscanner The scanner object. * @return the newly allocated buffer state object. * @note If you want to scan bytes that may contain NUL values, then use * GeoJson_scan_bytes() instead. */ YY_BUFFER_STATE GeoJson_scan_string (yyconst char *yystr, yyscan_t yyscanner) { return GeoJson_scan_bytes (yystr, strlen (yystr), yyscanner); } /** Setup the input buffer state to scan the given bytes. The next call to GeoJsonlex() will * scan from a @e copy of @a bytes. * @param bytes the byte buffer to scan * @param len the number of bytes in the buffer pointed to by @a bytes. * @param yyscanner The scanner object. * @return the newly allocated buffer state object. */ YY_BUFFER_STATE GeoJson_scan_bytes (yyconst char *yybytes, int _yybytes_len, yyscan_t yyscanner) { YY_BUFFER_STATE b; char *buf; yy_size_t n; int i; /* Get memory for full buffer, including space for trailing EOB's. */ n = _yybytes_len + 2; buf = (char *) GeoJsonalloc (n, yyscanner); if (!buf) YY_FATAL_ERROR ("out of dynamic memory in GeoJson_scan_bytes()"); for (i = 0; i < _yybytes_len; ++i) buf[i] = yybytes[i]; buf[_yybytes_len] = buf[_yybytes_len + 1] = YY_END_OF_BUFFER_CHAR; b = GeoJson_scan_buffer (buf, n, yyscanner); if (!b) YY_FATAL_ERROR ("bad buffer in GeoJson_scan_bytes()"); /* It's okay to grow etc. this buffer, and we should throw it * away when we're done. */ b->yy_is_our_buffer = 1; return b; } #ifndef YY_EXIT_FAILURE #define YY_EXIT_FAILURE 2 #endif static void yy_fatal_error (yyconst char *msg, yyscan_t yyscanner) { (void) fprintf (stderr, "%s\n", msg); exit (YY_EXIT_FAILURE); } /* Redefine yyless() so it works in section 3 code. */ #undef yyless #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ yytext[yyleng] = yyg->yy_hold_char; \ yyg->yy_c_buf_p = yytext + yyless_macro_arg; \ yyg->yy_hold_char = *yyg->yy_c_buf_p; \ *yyg->yy_c_buf_p = '\0'; \ yyleng = yyless_macro_arg; \ } \ while ( 0 ) /* Accessor methods (get/set functions) to struct members. */ /** Get the user-defined data for this scanner. * @param yyscanner The scanner object. */ YY_EXTRA_TYPE GeoJsonget_extra (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyextra; } /** Get the current line number. * @param yyscanner The scanner object. */ int GeoJsonget_lineno (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!YY_CURRENT_BUFFER) return 0; return yylineno; } /** Get the current column number. * @param yyscanner The scanner object. */ int GeoJsonget_column (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!YY_CURRENT_BUFFER) return 0; return yycolumn; } /** Get the input stream. * @param yyscanner The scanner object. */ FILE * GeoJsonget_in (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyin; } /** Get the output stream. * @param yyscanner The scanner object. */ FILE * GeoJsonget_out (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyout; } /** Get the length of the current token. * @param yyscanner The scanner object. */ int GeoJsonget_leng (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyleng; } /** Get the current token. * @param yyscanner The scanner object. */ char * GeoJsonget_text (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yytext; } /** Set the user-defined data. This data is never touched by the scanner. * @param user_defined The data to be associated with this scanner. * @param yyscanner The scanner object. */ void GeoJsonset_extra (YY_EXTRA_TYPE user_defined, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yyextra = user_defined; } /** Set the current line number. * @param line_number * @param yyscanner The scanner object. */ void GeoJsonset_lineno (int line_number, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* lineno is only valid if an input buffer exists. */ if (!YY_CURRENT_BUFFER) yy_fatal_error ("GeoJsonset_lineno called with no buffer", yyscanner); yylineno = line_number; } /** Set the current column. * @param line_number * @param yyscanner The scanner object. */ void GeoJsonset_column (int column_no, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* column is only valid if an input buffer exists. */ if (!YY_CURRENT_BUFFER) yy_fatal_error ("GeoJsonset_column called with no buffer", yyscanner); yycolumn = column_no; } /** Set the input stream. This does not discard the current * input buffer. * @param in_str A readable stream. * @param yyscanner The scanner object. * @see GeoJson_switch_to_buffer */ void GeoJsonset_in (FILE * in_str, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yyin = in_str; } void GeoJsonset_out (FILE * out_str, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yyout = out_str; } int GeoJsonget_debug (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yy_flex_debug; } void GeoJsonset_debug (int bdebug, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yy_flex_debug = bdebug; } /* Accessor methods for yylval and yylloc */ /* User-visible API */ /* GeoJsonlex_init is special because it creates the scanner itself, so it is * the ONLY reentrant function that doesn't take the scanner as the last argument. * That's why we explicitly handle the declaration, instead of using our macros. */ int GeoJsonlex_init (yyscan_t * ptr_yy_globals) { if (ptr_yy_globals == NULL) { errno = EINVAL; return 1; } *ptr_yy_globals = (yyscan_t) GeoJsonalloc (sizeof (struct yyguts_t), NULL); if (*ptr_yy_globals == NULL) { errno = ENOMEM; return 1; } /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */ memset (*ptr_yy_globals, 0x00, sizeof (struct yyguts_t)); return yy_init_globals (*ptr_yy_globals); } /* GeoJsonlex_init_extra has the same functionality as GeoJsonlex_init, but follows the * convention of taking the scanner as the last argument. Note however, that * this is a *pointer* to a scanner, as it will be allocated by this call (and * is the reason, too, why this function also must handle its own declaration). * The user defined value in the first argument will be available to GeoJsonalloc in * the yyextra field. */ int GeoJsonlex_init_extra (YY_EXTRA_TYPE yy_user_defined, yyscan_t * ptr_yy_globals) { struct yyguts_t dummy_yyguts; GeoJsonset_extra (yy_user_defined, &dummy_yyguts); if (ptr_yy_globals == NULL) { errno = EINVAL; return 1; } *ptr_yy_globals = (yyscan_t) GeoJsonalloc (sizeof (struct yyguts_t), &dummy_yyguts); if (*ptr_yy_globals == NULL) { errno = ENOMEM; return 1; } /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */ memset (*ptr_yy_globals, 0x00, sizeof (struct yyguts_t)); GeoJsonset_extra (yy_user_defined, *ptr_yy_globals); return yy_init_globals (*ptr_yy_globals); } static int yy_init_globals (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* Initialization is the same as for the non-reentrant scanner. * This function is called from GeoJsonlex_destroy(), so don't allocate here. */ yyg->yy_buffer_stack = 0; yyg->yy_buffer_stack_top = 0; yyg->yy_buffer_stack_max = 0; yyg->yy_c_buf_p = (char *) 0; yyg->yy_init = 0; yyg->yy_start = 0; yyg->yy_start_stack_ptr = 0; yyg->yy_start_stack_depth = 0; yyg->yy_start_stack = NULL; /* Defined in main.c */ #ifdef YY_STDINIT yyin = stdin; yyout = stdout; #else yyin = (FILE *) 0; yyout = (FILE *) 0; #endif /* For future reference: Set errno on error, since we are called by * GeoJsonlex_init() */ return 0; } /* GeoJsonlex_destroy is for both reentrant and non-reentrant scanners. */ int GeoJsonlex_destroy (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* Pop the buffer stack, destroying each element. */ while (YY_CURRENT_BUFFER) { GeoJson_delete_buffer (YY_CURRENT_BUFFER, yyscanner); YY_CURRENT_BUFFER_LVALUE = NULL; GeoJsonpop_buffer_state (yyscanner); } /* Destroy the stack itself. */ GeoJsonfree (yyg->yy_buffer_stack, yyscanner); yyg->yy_buffer_stack = NULL; /* Destroy the start condition stack. */ GeoJsonfree (yyg->yy_start_stack, yyscanner); yyg->yy_start_stack = NULL; /* Reset the globals. This is important in a non-reentrant scanner so the next time * GeoJsonlex() is called, initialization will occur. */ yy_init_globals (yyscanner); /* Destroy the main struct (reentrant only). */ GeoJsonfree (yyscanner, yyscanner); yyscanner = NULL; return 0; } /* * Internal utility routines. */ #ifndef yytext_ptr static void yy_flex_strncpy (char *s1, yyconst char *s2, int n, yyscan_t yyscanner) { register int i; for (i = 0; i < n; ++i) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen (yyconst char *s, yyscan_t yyscanner) { register int n; for (n = 0; s[n]; ++n) ; return n; } #endif void * GeoJsonalloc (yy_size_t size, yyscan_t yyscanner) { return (void *) malloc (size); } void * GeoJsonrealloc (void *ptr, yy_size_t size, yyscan_t yyscanner) { /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter * because both ANSI C and C++ allow castless assignment from * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ return (void *) realloc ((char *) ptr, size); } void GeoJsonfree (void *ptr, yyscan_t yyscanner) { free ((char *) ptr); /* see GeoJsonrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" int GeoJsonwrap (yyscan_t yyscanner) { return 1; } ����������libspatialite-4.1.1/src/gaiageo/gg_geodesic.c�������������������������������������������������������0000664�0001750�0001750�00000025620�12163502133�016055� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* gg_geodesic.c -- Gaia functions for geodesic calculations version 4.1, 2013 May 8 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include <sys/types.h> #include <stdlib.h> #include <stdio.h> #include <math.h> #include <float.h> #include <string.h> #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite/sqlite.h> #include <spatialite/gaiageo.h> #define DEG2RAD 0.0174532925199432958 #define PI 3.14159265358979323846 struct ellipses { char *name; double a; /* equatorial radius - meters */ double rf; /* reverse flattening */ double b; /* polar radius - meters */ }; #if defined(_WIN32) && !defined(__MINGW32__) #define isnan _isnan #endif /* not WIN32-MSVC */ GAIAGEO_DECLARE int gaiaEllipseParams (const char *name, double *a, double *b, double *rf) { /* trying to find ellipse params */ struct ellipses ellps_list[] = { {"MERIT", 6378137.0, 298.257, -1.0}, {"SGS85", 6378136.0, 298.257, -1.0}, {"GRS80", 6378137.0, 298.257222101, -1.0}, {"IAU76", 6378140.0, 298.257, -1.0}, {"airy", 6377563.396, -1.0, 6356256.910}, {"APL4.9", 6378137.0, 298.25, -1.0}, {"NWL9D", 6378145.0, 298.25, -1.0}, {"mod_airy", 6377340.189, -1.0, 6356034.446}, {"andrae", 6377104.43, 300.0, -1.0}, {"aust_SA", 378160.0, 298.25, -1.0}, {"GRS67", 6378160.0, 298.2471674270, -1.0}, {"bessel", 6377397.155, 299.1528128, -1.0}, {"bess_nam", 6377483.865, 299.1528128, -1.0}, {"clrk66", 6378206.4, -1.0, 6356583.8}, {"clrk80", 6378249.145, 293.4663, -1.0}, {"CPM", 6375738.7, 334.29, -1.0}, {"delmbr", 6376428.0, 311.5, -1.0}, {"engelis", 6378136.05, 298.2566, -1.0}, {"evrst30", 6377276.345, 300.8017, -1.0}, {"evrst48", 6377304.063, 300.8017, -1.0}, {"evrst56", 6377301.243, 300.8017, -1.0}, {"evrst69", 6377295.664, 300.8017, -1.0}, {"evrstSS", 6377298.556, 300.8017, -1.0}, {"fschr60", 6378166.0, 298.3, -1.0}, {"fschr60m", 6378155.0, 298.3, -1.0}, {"fschr68", 6378150.0, 298.3, -1.0}, {"helmert", 6378200.0, 298.3, -1.0}, {"hough", 6378270.0, 297.0, -1.0}, {"intl", 6378388.0, 297.0, -1.0}, {"krass", 6378245.0, 298.3, -1.0}, {"kaula", 6378163.0, 298.24, -1.0}, {"lerch", 6378139.0, 298.257, -1.0}, {"mprts", 6397300.0, 191.0, -1.0}, {"new_intl", 6378157.5, -1.0, 6356772.2}, {"plessis", 6376523.0, -1.0, 6355863.0}, {"SEasia", 6378155.0, -1.0, 6356773.3205}, {"walbeck", 6376896.0, -1.0, 6355834.8467}, {"WGS60", 6378165.0, 298.3, -1.0}, {"WGS66", 6378145.0, 298.25, -1.0}, {"WGS72", 6378135.0, 298.26, -1.0}, {"WGS84", 6378137.0, 298.257223563, -1.0}, {"sphere", 6370997.0, -1.0, 6370997.0}, {NULL, -1.0, -1.0, -1.0} }; struct ellipses *pe = ellps_list; while (1) { if (pe->name == NULL) break; if (strcmp (pe->name, name) == 0) { *a = pe->a; if (pe->rf < 0.0) { *b = pe->b; *rf = 1.0 / ((pe->a - pe->b) / pe->a); } else { *b = (pe->a * (1.0 - (1.0 / pe->rf))); *rf = pe->rf; } return 1; } pe++; } return 0; } GAIAGEO_DECLARE double gaiaGreatCircleDistance (double a, double b, double lat1, double lon1, double lat2, double lon2) { /* / Calculate great-circle distance (in m) between two points specified by / latitude/longitude (in decimal degrees) using Aviation Formulary / / http://williams.best.vwh.net/avform.htm#Dist / */ double latrad1 = lat1 * DEG2RAD; double lonrad1 = lon1 * DEG2RAD; double latrad2 = lat2 * DEG2RAD; double lonrad2 = lon2 * DEG2RAD; double avg_radius; double k1 = (sin ((latrad1 - latrad2) / 2.0)); double k2 = (sin ((lonrad1 - lonrad2) / 2.0)); double dist; dist = 2.0 * asin (sqrt (k1 * k1 + cos (latrad1) * cos (latrad2) * k2 * k2)); if (dist < 0.0) dist = dist + PI; if (a == b) avg_radius = a; else avg_radius = (2.0 * a + b) / 3.0; dist = dist * avg_radius; return dist; } GAIAGEO_DECLARE double gaiaGeodesicDistance (double a, double b, double rf, double lat1, double lon1, double lat2, double lon2) { /* / Calculate geodesic distance (in m) / between two points specified by latitude/longitude / (in decimal degrees) using Vincenty inverse formula for ellipsoids / / based on original JavaScript by (c) Chris Veness 2002-2008 / http://www.movable-type.co.uk/scripts/latlong-vincenty.html / */ double f = 1.0 / rf; double L = (lon2 - lon1) * DEG2RAD; double U1 = atan ((1.0 - f) * tan (lat1 * DEG2RAD)); double U2 = atan ((1.0 - f) * tan (lat2 * DEG2RAD)); double sinU1 = sin (U1); double cosU1 = cos (U1); double sinU2 = sin (U2); double cosU2 = cos (U2); double lambda = L; double lambdaP; double sinLambda; double cosLambda; double sinSigma; double cosSigma; double sigma; double sinAlpha; double cosSqAlpha; double cos2SigmaM; double C; double uSq; double A; double B; double deltaSigma; double s; int iterLimit = 100; do { sinLambda = sin (lambda); cosLambda = cos (lambda); sinSigma = sqrt ((cosU2 * sinLambda) * (cosU2 * sinLambda) + (cosU1 * sinU2 - sinU1 * cosU2 * cosLambda) * (cosU1 * sinU2 - sinU1 * cosU2 * cosLambda)); if (sinSigma == 0.0) return 0.0; /* co-incident points */ cosSigma = sinU1 * sinU2 + cosU1 * cosU2 * cosLambda; sigma = atan2 (sinSigma, cosSigma); sinAlpha = cosU1 * cosU2 * sinLambda / sinSigma; cosSqAlpha = 1.0 - sinAlpha * sinAlpha; cos2SigmaM = cosSigma - 2.0 * sinU1 * sinU2 / cosSqAlpha; if (isnan (cos2SigmaM)) cos2SigmaM = 0; /* equatorial line */ C = f / 16.0 * cosSqAlpha * (4.0 + f * (4.0 - 3.0 * cosSqAlpha)); lambdaP = lambda; lambda = L + (1.0 - C) * f * sinAlpha * (sigma + C * sinSigma * (cos2SigmaM + C * cosSigma * (-1.0 + 2.0 * cos2SigmaM * cos2SigmaM))); } while (fabs (lambda - lambdaP) > 1e-12 && --iterLimit > 0); if (iterLimit == 0) return -1.0; /* formula failed to converge */ uSq = cosSqAlpha * (a * a - b * b) / (b * b); A = 1.0 + uSq / 16384.0 * (4096.0 + uSq * (-768.0 + uSq * (320.0 - 175.0 * uSq))); B = uSq / 1024.0 * (256.0 + uSq * (-128.0 + uSq * (74.0 - 47.0 * uSq))); deltaSigma = B * sinSigma * (cos2SigmaM + B / 4.0 * (cosSigma * (-1.0 + 2.0 * cos2SigmaM * cos2SigmaM) - B / 6.0 * cos2SigmaM * (-3.0 + 4.0 * sinSigma * sinSigma) * (-3.0 + 4.0 * cos2SigmaM * cos2SigmaM))); s = b * A * (sigma - deltaSigma); return s; } GAIAGEO_DECLARE void gaiaFree (void *ptr) { /* freeing a generic memory allocation */ if (!ptr) return; free (ptr); } GAIAGEO_DECLARE double gaiaGreatCircleTotalLength (double a, double b, int dims, double *coords, int vert) { /* computing the GreatCircle total length for some Linestring/Ring */ int iv; double x1 = 0.0; double y1 = 0.0; double x2; double y2; double z; double m; double len = 0.0; for (iv = 0; iv < vert; iv++) { if (dims == GAIA_XY_Z) { gaiaGetPointXYZ (coords, iv, &x2, &y2, &z); } else if (dims == GAIA_XY_M) { gaiaGetPointXYM (coords, iv, &x2, &y2, &m); } else if (dims == GAIA_XY_Z_M) { gaiaGetPointXYZM (coords, iv, &x2, &y2, &z, &m); } else { gaiaGetPoint (coords, iv, &x2, &y2); } if (iv > 0) len += gaiaGreatCircleDistance (a, b, y1, x1, y2, x2); x1 = x2; y1 = y2; } return len; } GAIAGEO_DECLARE double gaiaGeodesicTotalLength (double a, double b, double rf, int dims, double *coords, int vert) { /* computing the Geodesic total length for some Linestring/Ring */ int iv; double x1 = 0.0; double y1 = 0.0; double x2; double y2; double z; double m; double l; double len = 0.0; for (iv = 0; iv < vert; iv++) { if (dims == GAIA_XY_Z) { gaiaGetPointXYZ (coords, iv, &x2, &y2, &z); } else if (dims == GAIA_XY_M) { gaiaGetPointXYM (coords, iv, &x2, &y2, &m); } else if (dims == GAIA_XY_Z_M) { gaiaGetPointXYZM (coords, iv, &x2, &y2, &z, &m); } else { gaiaGetPoint (coords, iv, &x2, &y2); } if (iv > 0) { l = gaiaGeodesicDistance (a, b, rf, y1, x1, y2, x2); if (l < 0.0) return -1.0; len += l; } x1 = x2; y1 = y2; } return len; } GAIAGEO_DECLARE int gaiaConvertLength (double value, int unit_from, int unit_to, double *cvt) { /* converting length from one unit to another */ double m; double factors[] = { 1000.0, 1.0, 0.1, 0.01, 0.001, 1852.0, 0.0254, 0.3048, 0.9144, 1609.344, 1.8288, 20.1168, 0.201168, 1.0, 0.304800609601219, 0.914401828803658, 20.11684023368047, 1609.347218694437, 0.91439523, 0.30479841, 20.11669506 }; factors[GAIA_US_IN] /= 39.37; if (unit_from < GAIA_MIN_UNIT || unit_from > GAIA_MAX_UNIT) return 0; if (unit_to < GAIA_MIN_UNIT || unit_to > GAIA_MAX_UNIT) return 0; if (unit_from == unit_to) { /* same unit */ *cvt = value; } else if (unit_from == GAIA_M) { /* from Meters to .. */ *cvt = value / factors[unit_to]; } else if (unit_to == GAIA_M) { /* from .. to Meters */ *cvt = value * factors[unit_from]; } else { m = value * factors[unit_from]; *cvt = m / factors[unit_to]; } return 1; } #undef DEG2RAD #undef PI ����������������������������������������������������������������������������������������������������������������libspatialite-4.1.1/src/gaiageo/lex.VanuatuWkt.c����������������������������������������������������0000664�0001750�0001750�00000201143�12163502133�016512� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ #line 3 "lex.VanuatuWkt.c" #define YY_INT_ALIGNED short int /* A lexical scanner generated by flex */ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 5 #define YY_FLEX_SUBMINOR_VERSION 35 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ #include <stdio.h> #include <string.h> #include <errno.h> #include <stdlib.h> /* end standard C headers. */ /* flex integer type definitions */ #ifndef FLEXINT_H #define FLEXINT_H /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */ #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, * if you want the limit (max/min) macros for int types. */ #ifndef __STDC_LIMIT_MACROS #define __STDC_LIMIT_MACROS 1 #endif #include <inttypes.h> typedef int8_t flex_int8_t; typedef uint8_t flex_uint8_t; typedef int16_t flex_int16_t; typedef uint16_t flex_uint16_t; typedef int32_t flex_int32_t; typedef uint32_t flex_uint32_t; #else typedef signed char flex_int8_t; typedef short int flex_int16_t; typedef int flex_int32_t; typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; #endif /* ! C99 */ /* Limits of integral types. */ #ifndef INT8_MIN #define INT8_MIN (-128) #endif #ifndef INT16_MIN #define INT16_MIN (-32767-1) #endif #ifndef INT32_MIN #define INT32_MIN (-2147483647-1) #endif #ifndef INT8_MAX #define INT8_MAX (127) #endif #ifndef INT16_MAX #define INT16_MAX (32767) #endif #ifndef INT32_MAX #define INT32_MAX (2147483647) #endif #ifndef UINT8_MAX #define UINT8_MAX (255U) #endif #ifndef UINT16_MAX #define UINT16_MAX (65535U) #endif #ifndef UINT32_MAX #define UINT32_MAX (4294967295U) #endif #endif /* ! FLEXINT_H */ #ifdef __cplusplus /* The "const" storage-class-modifier is valid. */ #define YY_USE_CONST #else /* ! __cplusplus */ /* C99 requires __STDC__ to be defined as 1. */ #if defined (__STDC__) #define YY_USE_CONST #endif /* defined (__STDC__) */ #endif /* ! __cplusplus */ #ifdef YY_USE_CONST #define yyconst const #else #define yyconst #endif /* Returned upon end-of-file. */ #define YY_NULL 0 /* Promotes a possibly negative, possibly signed char to an unsigned * integer for use as an array index. If the signed char is negative, * we want to instead treat it as an 8-bit unsigned char, hence the * double cast. */ #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) /* An opaque pointer. */ #ifndef YY_TYPEDEF_YY_SCANNER_T #define YY_TYPEDEF_YY_SCANNER_T typedef void *yyscan_t; #endif /* For convenience, these vars (plus the bison vars far below) are macros in the reentrant scanner. */ #define yyin yyg->yyin_r #define yyout yyg->yyout_r #define yyextra yyg->yyextra_r #define yyleng yyg->yyleng_r #define yytext yyg->yytext_r #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno) #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column) #define yy_flex_debug yyg->yy_flex_debug_r /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN yyg->yy_start = 1 + 2 * /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START ((yyg->yy_start - 1) / 2) #define YYSTATE YY_START /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) /* Special action meaning "start processing a new file". */ #define YY_NEW_FILE VanuatuWktrestart(yyin ,yyscanner ) #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #ifndef YY_BUF_SIZE #define YY_BUF_SIZE 16384 #endif /* The state buf must be large enough to hold one state per character in the main buffer. */ #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) #ifndef YY_TYPEDEF_YY_BUFFER_STATE #define YY_TYPEDEF_YY_BUFFER_STATE typedef struct yy_buffer_state *YY_BUFFER_STATE; #endif #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 #define YY_LESS_LINENO(n) /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ *yy_cp = yyg->yy_hold_char; \ YY_RESTORE_YY_MORE_OFFSET \ yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner ) #ifndef YY_TYPEDEF_YY_SIZE_T #define YY_TYPEDEF_YY_SIZE_T typedef size_t yy_size_t; #endif #ifndef YY_STRUCT_YY_BUFFER_STATE #define YY_STRUCT_YY_BUFFER_STATE struct yy_buffer_state { FILE *yy_input_file; char *yy_ch_buf; /* input buffer */ char *yy_buf_pos; /* current position in input buffer */ /* Size of input buffer in bytes, not including room for EOB * characters. */ yy_size_t yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. */ int yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to * delete it. */ int yy_is_our_buffer; /* Whether this is an "interactive" input source; if so, and * if we're using stdio for input, then we want to use getc() * instead of fread(), to make sure we stop fetching input after * each newline. */ int yy_is_interactive; /* Whether we're considered to be at the beginning of a line. * If so, '^' rules will be active on the next match, otherwise * not. */ int yy_at_bol; int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ /* Whether to try to fill the input buffer when we reach the * end of it. */ int yy_fill_buffer; int yy_buffer_status; #define YY_BUFFER_NEW 0 #define YY_BUFFER_NORMAL 1 /* When an EOF's been seen but there's still some text to process * then we mark the buffer as YY_EOF_PENDING, to indicate that we * shouldn't try reading from the input source any more. We might * still have a bunch of tokens to match, though, because of * possible backing-up. * * When we actually see the EOF, we change the status to "new" * (via VanuatuWktrestart()), so that the user can continue scanning by * just pointing yyin at a new input file. */ #define YY_BUFFER_EOF_PENDING 2 }; #endif /* !YY_STRUCT_YY_BUFFER_STATE */ /* We provide macros for accessing buffer states in case in the * future we want to put the buffer states in a more general * "scanner state". * * Returns the top of the stack, or NULL. */ #define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \ ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \ : NULL) /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] void VanuatuWktrestart (FILE * input_file, yyscan_t yyscanner); void VanuatuWkt_switch_to_buffer (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner); YY_BUFFER_STATE VanuatuWkt_create_buffer (FILE * file, int size, yyscan_t yyscanner); void VanuatuWkt_delete_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner); void VanuatuWkt_flush_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner); void VanuatuWktpush_buffer_state (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner); void VanuatuWktpop_buffer_state (yyscan_t yyscanner); static void VanuatuWktensure_buffer_stack (yyscan_t yyscanner); static void VanuatuWkt_load_buffer_state (yyscan_t yyscanner); static void VanuatuWkt_init_buffer (YY_BUFFER_STATE b, FILE * file, yyscan_t yyscanner); #define YY_FLUSH_BUFFER VanuatuWkt_flush_buffer(YY_CURRENT_BUFFER ,yyscanner) YY_BUFFER_STATE VanuatuWkt_scan_buffer (char *base, yy_size_t size, yyscan_t yyscanner); YY_BUFFER_STATE VanuatuWkt_scan_string (yyconst char *yy_str, yyscan_t yyscanner); YY_BUFFER_STATE VanuatuWkt_scan_bytes (yyconst char *bytes, int len, yyscan_t yyscanner); void *VanuatuWktalloc (yy_size_t, yyscan_t yyscanner); void *VanuatuWktrealloc (void *, yy_size_t, yyscan_t yyscanner); void VanuatuWktfree (void *, yyscan_t yyscanner); #define yy_new_buffer VanuatuWkt_create_buffer #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ VanuatuWktensure_buffer_stack (yyscanner); \ YY_CURRENT_BUFFER_LVALUE = \ VanuatuWkt_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ VanuatuWktensure_buffer_stack (yyscanner); \ YY_CURRENT_BUFFER_LVALUE = \ VanuatuWkt_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* Begin user sect3 */ typedef unsigned char YY_CHAR; typedef int yy_state_type; #define yytext_ptr yytext_r static yy_state_type yy_get_previous_state (yyscan_t yyscanner); static yy_state_type yy_try_NUL_trans (yy_state_type current_state, yyscan_t yyscanner); static int yy_get_next_buffer (yyscan_t yyscanner); static void yy_fatal_error (yyconst char msg[], yyscan_t yyscanner); /* Done after the current pattern has been matched and before the * corresponding action - sets up yytext. */ #define YY_DO_BEFORE_ACTION \ yyg->yytext_ptr = yy_bp; \ yyleng = (size_t) (yy_cp - yy_bp); \ yyg->yy_hold_char = *yy_cp; \ *yy_cp = '\0'; \ yyg->yy_c_buf_p = yy_cp; #define YY_NUM_RULES 36 #define YY_END_OF_BUFFER 37 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info { flex_int32_t yy_verify; flex_int32_t yy_nxt; }; static yyconst flex_int16_t yy_accept[114] = { 0, 0, 0, 37, 35, 33, 34, 3, 4, 35, 2, 35, 1, 35, 35, 35, 35, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 7, 6, 0, 0, 0, 0, 0, 8, 13, 0, 0, 0, 0, 0, 0, 15, 14, 0, 0, 0, 0, 0, 16, 0, 9, 0, 17, 0, 0, 0, 11, 10, 0, 0, 19, 18, 0, 0, 12, 0, 20, 25, 0, 0, 0, 27, 26, 0, 0, 28, 0, 21, 0, 0, 23, 22, 0, 24, 29, 0, 31, 30, 32, 0 }; static yyconst flex_int32_t yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 4, 5, 1, 6, 7, 8, 9, 1, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 1, 1, 1, 1, 1, 1, 1, 1, 1, 11, 1, 12, 1, 13, 1, 14, 1, 1, 15, 16, 17, 18, 19, 1, 20, 21, 22, 23, 1, 1, 1, 24, 25, 1, 1, 1, 1, 1, 1, 1, 1, 26, 1, 27, 1, 28, 1, 29, 1, 1, 30, 31, 32, 33, 34, 1, 35, 36, 37, 38, 1, 1, 1, 39, 40, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }; static yyconst flex_int32_t yy_meta[41] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }; static yyconst flex_int16_t yy_base[115] = { 0, 0, 33, 211, 255, 255, 255, 255, 255, 192, 255, 191, 2, 2, 3, 4, 0, 11, 13, 185, 15, 26, 28, 32, 36, 162, 161, 154, 37, 42, 33, 39, 33, 71, 16, 46, 53, 61, 54, 64, 56, 57, 65, 80, 67, 66, 67, 74, 79, 0, 255, 82, 87, 82, 93, 91, 95, 255, 112, 105, 100, 106, 109, 103, 0, 255, 113, 112, 121, 114, 114, 125, 255, 124, 144, 118, 154, 130, 143, 0, 255, 143, 141, 0, 255, 146, 148, 154, 255, 153, 255, 184, 157, 161, 0, 255, 172, 167, 177, 255, 177, 194, 174, 0, 255, 182, 182, 255, 214, 0, 255, 192, 255, 255, 0 }; static yyconst flex_int16_t yy_def[115] = { 0, 114, 114, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 43, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 58, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 74, 113, 113, 113, 76, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 91, 113, 113, 113, 113, 113, 113, 113, 113, 101, 113, 113, 113, 113, 113, 108, 113, 113, 113, 0, 113 }; static yyconst flex_int16_t yy_nxt[296] = { 0, 4, 5, 6, 7, 8, 9, 10, 11, 113, 12, 19, 20, 13, 21, 14, 15, 22, 24, 16, 25, 17, 26, 18, 19, 20, 34, 23, 13, 21, 14, 15, 22, 24, 16, 5, 6, 7, 8, 9, 10, 11, 23, 12, 28, 29, 13, 30, 14, 15, 31, 32, 16, 35, 36, 37, 38, 39, 40, 28, 29, 13, 30, 14, 15, 31, 32, 16, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 33, 49, 49, 48, 52, 53, 54, 55, 41, 42, 43, 44, 45, 46, 47, 50, 56, 57, 48, 52, 53, 54, 55, 58, 51, 59, 60, 61, 62, 63, 50, 56, 57, 64, 64, 67, 68, 69, 58, 51, 59, 60, 61, 62, 63, 70, 71, 65, 72, 73, 67, 68, 69, 74, 75, 76, 66, 77, 78, 82, 70, 71, 65, 72, 73, 79, 79, 86, 74, 75, 76, 66, 77, 78, 82, 83, 83, 87, 88, 80, 89, 90, 86, 27, 91, 92, 93, 97, 81, 84, 34, 33, 87, 88, 80, 89, 90, 98, 85, 91, 92, 93, 97, 81, 84, 94, 94, 99, 100, 101, 102, 106, 98, 85, 27, 103, 103, 107, 108, 95, 18, 17, 99, 100, 101, 102, 106, 112, 96, 104, 113, 113, 107, 108, 95, 109, 109, 113, 105, 113, 113, 113, 112, 96, 104, 113, 113, 113, 113, 110, 113, 113, 113, 105, 113, 113, 113, 113, 111, 113, 113, 113, 113, 113, 110, 113, 113, 113, 113, 113, 113, 113, 113, 111, 3, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113 }; static yyconst flex_int16_t yy_chk[296] = { 0, 114, 1, 1, 1, 1, 1, 1, 1, 0, 1, 12, 12, 1, 13, 1, 1, 14, 16, 1, 17, 17, 18, 18, 20, 20, 34, 15, 1, 13, 1, 1, 14, 16, 1, 2, 2, 2, 2, 2, 2, 2, 15, 2, 21, 22, 2, 23, 2, 2, 24, 24, 2, 28, 29, 30, 31, 32, 35, 21, 22, 2, 23, 2, 2, 24, 24, 2, 28, 29, 30, 31, 32, 35, 36, 37, 38, 39, 40, 41, 42, 33, 43, 43, 42, 44, 45, 46, 47, 36, 37, 38, 39, 40, 41, 42, 43, 48, 51, 42, 44, 45, 46, 47, 52, 43, 53, 54, 55, 56, 56, 43, 48, 51, 58, 58, 59, 60, 61, 52, 43, 53, 54, 55, 56, 56, 62, 63, 58, 66, 67, 59, 60, 61, 68, 69, 70, 58, 71, 73, 75, 62, 63, 58, 66, 67, 74, 74, 77, 68, 69, 70, 58, 71, 73, 75, 76, 76, 78, 81, 74, 82, 85, 77, 27, 86, 87, 89, 92, 74, 76, 26, 25, 78, 81, 74, 82, 85, 93, 76, 86, 87, 89, 92, 74, 76, 91, 91, 96, 97, 98, 100, 102, 93, 76, 19, 101, 101, 105, 106, 91, 11, 9, 96, 97, 98, 100, 102, 111, 91, 101, 3, 0, 105, 106, 91, 108, 108, 0, 101, 0, 0, 0, 111, 91, 101, 0, 0, 0, 0, 108, 0, 0, 0, 101, 0, 0, 0, 0, 108, 0, 0, 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 108, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113 }; /* The intent behind this definition is that it'll catch * any uses of REJECT which flex missed. */ #define REJECT reject_used_but_not_detected #define yymore() yymore_used_but_not_detected #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET /* vanuatuLexer.l -- Vanuatu WKT parser - FLEX config version 2.4, 2010 April 2 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): The Vanuatu Team - University of Toronto Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /****************************************************************************** ** The following code was created by Team Vanuatu of The University of Toronto. Authors: Ruppi Rana ruppi.rana@gmail.com Dev Tanna dev.tanna@gmail.com Elias Adum elias.adum@gmail.com Benton Hui benton.hui@gmail.com Abhayan Sundararajan abhayan@gmail.com Chee-Lun Michael Stephen Cho cheelun.cho@gmail.com Nikola Banovic nikola.banovic@gmail.com Yong Jian yong.jian@utoronto.ca Supervisor: Greg Wilson gvwilson@cs.toronto.ca ------------------------------------------------------------------------------- */ #define YY_NO_INPUT 1 /** * The main string-token matcher. * The lower case part is probably not needed. We should really be converting * The string to all uppercase/lowercase to make it case iNsEnSiTiVe. * What Flex will do is, For the input string, beginning from the front, Flex * will try to match with any of the defined tokens from below. Flex will * then match the string of longest length. Suppose the string is: POINT ZM, * Flex would match both POINT Z and POINT ZM, but since POINT ZM is the longer * of the two tokens, FLEX will match POINT ZM. */ #define INITIAL 0 #ifndef YY_NO_UNISTD_H /* Special case for "unistd.h", since it is non-ANSI. We include it way * down here because we want the user's section 1 to have been scanned first. * The user has a chance to override it with an option. */ #include <unistd.h> #endif #define YY_EXTRA_TYPE struct vanuatu_data * /* Holds the entire state of the reentrant scanner. */ struct yyguts_t { /* User-defined. Not touched by flex. */ YY_EXTRA_TYPE yyextra_r; /* The rest are the same as the globals declared in the non-reentrant scanner. */ FILE *yyin_r, *yyout_r; size_t yy_buffer_stack_top; /**< index of top of stack. */ size_t yy_buffer_stack_max; /**< capacity of stack. */ YY_BUFFER_STATE *yy_buffer_stack; /**< Stack as an array. */ char yy_hold_char; int yy_n_chars; int yyleng_r; char *yy_c_buf_p; int yy_init; int yy_start; int yy_did_buffer_switch_on_eof; int yy_start_stack_ptr; int yy_start_stack_depth; int *yy_start_stack; yy_state_type yy_last_accepting_state; char *yy_last_accepting_cpos; int yylineno_r; int yy_flex_debug_r; char *yytext_r; int yy_more_flag; int yy_more_len; }; /* end struct yyguts_t */ static int yy_init_globals (yyscan_t yyscanner); int VanuatuWktlex_init (yyscan_t * scanner); int VanuatuWktlex_init_extra (YY_EXTRA_TYPE user_defined, yyscan_t * scanner); /* Accessor methods to globals. These are made visible to non-reentrant scanners for convenience. */ int VanuatuWktlex_destroy (yyscan_t yyscanner); int VanuatuWktget_debug (yyscan_t yyscanner); void VanuatuWktset_debug (int debug_flag, yyscan_t yyscanner); YY_EXTRA_TYPE VanuatuWktget_extra (yyscan_t yyscanner); void VanuatuWktset_extra (YY_EXTRA_TYPE user_defined, yyscan_t yyscanner); FILE *VanuatuWktget_in (yyscan_t yyscanner); void VanuatuWktset_in (FILE * in_str, yyscan_t yyscanner); FILE *VanuatuWktget_out (yyscan_t yyscanner); void VanuatuWktset_out (FILE * out_str, yyscan_t yyscanner); int VanuatuWktget_leng (yyscan_t yyscanner); char *VanuatuWktget_text (yyscan_t yyscanner); int VanuatuWktget_lineno (yyscan_t yyscanner); void VanuatuWktset_lineno (int line_number, yyscan_t yyscanner); int VanuatuWktget_column (yyscan_t yyscanner); void VanuatuWktset_column (int column_no, yyscan_t yyscanner); /* Macros after this point can all be overridden by user definitions in * section 1. */ #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus extern "C" int VanuatuWktwrap (yyscan_t yyscanner); #else extern int VanuatuWktwrap (yyscan_t yyscanner); #endif #endif #ifndef yytext_ptr static void yy_flex_strncpy (char *, yyconst char *, int, yyscan_t yyscanner); #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen (yyconst char *, yyscan_t yyscanner); #endif #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput (yyscan_t yyscanner); #else static int input (yyscan_t yyscanner); #endif #endif /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE #define YY_READ_BUF_SIZE 8192 #endif /* Copy whatever the last rule matched to the standard output. */ #ifndef ECHO /* This used to be an fputs(), but since the string might contain NUL's, * we now use fwrite(). */ #define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0) #endif /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, * is returned in "result". */ #ifndef YY_INPUT #define YY_INPUT(buf,result,max_size) \ if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ { \ int c = '*'; \ unsigned n; \ for ( n = 0; n < max_size && \ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ if ( c == '\n' ) \ buf[n++] = (char) c; \ if ( c == EOF && ferror( yyin ) ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ result = n; \ } \ else \ { \ errno=0; \ while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \ { \ if( errno != EINTR) \ { \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ break; \ } \ errno=0; \ clearerr(yyin); \ } \ }\ \ #endif /* No semi-colon after return; correct usage is to write "yyterminate();" - * we don't want an extra ';' after the "return" because that will cause * some compilers to complain about unreachable statements. */ #ifndef yyterminate #define yyterminate() return YY_NULL #endif /* Number of entries by which start-condition stack grows. */ #ifndef YY_START_STACK_INCR #define YY_START_STACK_INCR 25 #endif /* Report a fatal error. */ #ifndef YY_FATAL_ERROR #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner) #endif /* end tables serialization structures and prototypes */ /* Default declaration of generated scanner - a define so the user can * easily add parameters. */ #ifndef YY_DECL #define YY_DECL_IS_OURS 1 extern int VanuatuWktlex (yyscan_t yyscanner); #define YY_DECL int VanuatuWktlex (yyscan_t yyscanner) #endif /* !YY_DECL */ /* Code executed at the beginning of each rule, after yytext and yyleng * have been set up. */ #ifndef YY_USER_ACTION #define YY_USER_ACTION #endif /* Code executed at the end of each rule. */ #ifndef YY_BREAK #define YY_BREAK break; #endif #define YY_RULE_SETUP \ YY_USER_ACTION /** The main scanner function which does all the work. */ YY_DECL { register yy_state_type yy_current_state; register char *yy_cp, *yy_bp; register int yy_act; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!yyg->yy_init) { yyg->yy_init = 1; #ifdef YY_USER_INIT YY_USER_INIT; #endif if (!yyg->yy_start) yyg->yy_start = 1; /* first start state */ if (!yyin) yyin = stdin; if (!yyout) yyout = stdout; if (!YY_CURRENT_BUFFER) { VanuatuWktensure_buffer_stack (yyscanner); YY_CURRENT_BUFFER_LVALUE = VanuatuWkt_create_buffer (yyin, YY_BUF_SIZE, yyscanner); } VanuatuWkt_load_buffer_state (yyscanner); } while (1) /* loops until end-of-file is reached */ { yy_cp = yyg->yy_c_buf_p; /* Support of yytext. */ *yy_cp = yyg->yy_hold_char; /* yy_bp points to the position in yy_ch_buf of the start of * the current run. */ yy_bp = yy_cp; yy_current_state = yyg->yy_start; yy_match: do { register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI (*yy_cp)]; if (yy_accept[yy_current_state]) { yyg->yy_last_accepting_state = yy_current_state; yyg->yy_last_accepting_cpos = yy_cp; } while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state) { yy_current_state = (int) yy_def[yy_current_state]; if (yy_current_state >= 114) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } while (yy_base[yy_current_state] != 255); yy_find_action: yy_act = yy_accept[yy_current_state]; if (yy_act == 0) { /* have to back up */ yy_cp = yyg->yy_last_accepting_cpos; yy_current_state = yyg->yy_last_accepting_state; yy_act = yy_accept[yy_current_state]; } YY_DO_BEFORE_ACTION; do_action: /* This label is used only to access EOF actions. */ switch (yy_act) { /* beginning of action switch */ case 0: /* must back up */ /* undo the effects of YY_DO_BEFORE_ACTION */ *yy_cp = yyg->yy_hold_char; yy_cp = yyg->yy_last_accepting_cpos; yy_current_state = yyg->yy_last_accepting_state; goto yy_find_action; case 1: YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->vanuatu_col += (int) strlen (yytext); VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = atof (yytext); return VANUATU_NUM; } YY_BREAK case 2: YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_COMMA; } YY_BREAK case 3: YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_OPEN_BRACKET; } YY_BREAK case 4: YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_CLOSE_BRACKET; } YY_BREAK case 5: YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_POINT; } YY_BREAK case 6: /* rule 6 can match eol */ YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_POINT_Z; } YY_BREAK case 7: /* rule 7 can match eol */ YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_POINT_M; } YY_BREAK case 8: /* rule 8 can match eol */ YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_POINT_ZM; } YY_BREAK case 9: YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_LINESTRING; } YY_BREAK case 10: /* rule 10 can match eol */ YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_LINESTRING_Z; } YY_BREAK case 11: /* rule 11 can match eol */ YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_LINESTRING_M; } YY_BREAK case 12: /* rule 12 can match eol */ YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_LINESTRING_ZM; } YY_BREAK case 13: YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_POLYGON; } YY_BREAK case 14: /* rule 14 can match eol */ YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_POLYGON_Z; } YY_BREAK case 15: /* rule 15 can match eol */ YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_POLYGON_M; } YY_BREAK case 16: /* rule 16 can match eol */ YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_POLYGON_ZM; } YY_BREAK case 17: YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTIPOINT; } YY_BREAK case 18: /* rule 18 can match eol */ YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTIPOINT_Z; } YY_BREAK case 19: /* rule 19 can match eol */ YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTIPOINT_M; } YY_BREAK case 20: /* rule 20 can match eol */ YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTIPOINT_ZM; } YY_BREAK case 21: YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTILINESTRING; } YY_BREAK case 22: /* rule 22 can match eol */ YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTILINESTRING_Z; } YY_BREAK case 23: /* rule 23 can match eol */ YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTILINESTRING_M; } YY_BREAK case 24: /* rule 24 can match eol */ YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTILINESTRING_ZM; } YY_BREAK case 25: YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTIPOLYGON; } YY_BREAK case 26: /* rule 26 can match eol */ YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTIPOLYGON_Z; } YY_BREAK case 27: /* rule 27 can match eol */ YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTIPOLYGON_M; } YY_BREAK case 28: /* rule 28 can match eol */ YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTIPOLYGON_ZM; } YY_BREAK case 29: YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_GEOMETRYCOLLECTION; } YY_BREAK case 30: /* rule 30 can match eol */ YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_GEOMETRYCOLLECTION_Z; } YY_BREAK case 31: /* rule 31 can match eol */ YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_GEOMETRYCOLLECTION_M; } YY_BREAK case 32: /* rule 32 can match eol */ YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_GEOMETRYCOLLECTION_ZM; } YY_BREAK case 33: YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->vanuatu_col += (int) strlen (yytext); } /* ignore but count white space */ YY_BREAK case 34: /* rule 34 can match eol */ YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->vanuatu_col = 0; VanuatuWktget_extra (yyscanner)->vanuatu_line++; } YY_BREAK case 35: YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->vanuatu_col += (int) strlen (yytext); return -1; } YY_BREAK case 36: YY_RULE_SETUP ECHO; YY_BREAK case YY_STATE_EOF (INITIAL): yyterminate (); case YY_END_OF_BUFFER: { /* Amount of text matched not including the EOB char. */ int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1; /* Undo the effects of YY_DO_BEFORE_ACTION. */ *yy_cp = yyg->yy_hold_char; YY_RESTORE_YY_MORE_OFFSET if (YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW) { /* We're scanning a new file or input source. It's * possible that this happened because the user * just pointed yyin at a new source and called * VanuatuWktlex(). If so, then we have to assure * consistency between YY_CURRENT_BUFFER and our * globals. Here is the right place to do so, because * this is the first action (other than possibly a * back-up) that will match for the new input source. */ yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; } /* Note that here we test for yy_c_buf_p "<=" to the position * of the first EOB in the buffer, since yy_c_buf_p will * already have been incremented past the NUL character * (since all states make transitions on EOB to the * end-of-buffer state). Contrast this with the test * in input(). */ if (yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars]) { /* This was really a NUL. */ yy_state_type yy_next_state; yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state (yyscanner); /* Okay, we're now positioned to make the NUL * transition. We couldn't have * yy_get_previous_state() go ahead and do it * for us because it doesn't know how to deal * with the possibility of jamming (and we don't * want to build jamming into it because then it * will run more slowly). */ yy_next_state = yy_try_NUL_trans (yy_current_state, yyscanner); yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; if (yy_next_state) { /* Consume the NUL. */ yy_cp = ++yyg->yy_c_buf_p; yy_current_state = yy_next_state; goto yy_match; } else { yy_cp = yyg->yy_c_buf_p; goto yy_find_action; } } else switch (yy_get_next_buffer (yyscanner)) { case EOB_ACT_END_OF_FILE: { yyg->yy_did_buffer_switch_on_eof = 0; if (VanuatuWktwrap (yyscanner)) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up * yytext, we can now set up * yy_c_buf_p so that if some total * hoser (like flex itself) wants to * call the scanner after we return the * YY_NULL, it'll still work - another * YY_NULL will get returned. */ yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ; yy_act = YY_STATE_EOF (YY_START); goto do_action; } else { if (!yyg->yy_did_buffer_switch_on_eof) YY_NEW_FILE; } break; } case EOB_ACT_CONTINUE_SCAN: yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state (yyscanner); yy_cp = yyg->yy_c_buf_p; yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; goto yy_match; case EOB_ACT_LAST_MATCH: yyg->yy_c_buf_p = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg-> yy_n_chars]; yy_current_state = yy_get_previous_state (yyscanner); yy_cp = yyg->yy_c_buf_p; yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; goto yy_find_action; } break; } default: YY_FATAL_ERROR ("fatal flex scanner internal error--no action found"); } /* end of action switch */ } /* end of scanning one token */ } /* end of VanuatuWktlex */ /* yy_get_next_buffer - try to read in a new buffer * * Returns a code representing an action: * EOB_ACT_LAST_MATCH - * EOB_ACT_CONTINUE_SCAN - continue scanning from current position * EOB_ACT_END_OF_FILE - end of file */ static int yy_get_next_buffer (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; register char *source = yyg->yytext_ptr; register int number_to_move, i; int ret_val; if (yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1]) YY_FATAL_ERROR ("fatal flex scanner internal error--end of buffer missed"); if (YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0) { /* Don't try to fill the buffer, so this is an EOF. */ if (yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1) { /* We matched a single character, the EOB, so * treat this as a final EOF. */ return EOB_ACT_END_OF_FILE; } else { /* We matched some text prior to the EOB, first * process it. */ return EOB_ACT_LAST_MATCH; } } /* Try to read more data. */ /* First move last chars to start of buffer. */ number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1; for (i = 0; i < number_to_move; ++i) *(dest++) = *(source++); if (YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING) /* don't do the read, it's not guaranteed to return an EOF, * just force an EOF */ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0; else { int num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; while (num_to_read <= 0) { /* Not enough room in the buffer - grow it. */ /* just a shorter name for the current buffer */ YY_BUFFER_STATE b = YY_CURRENT_BUFFER; int yy_c_buf_p_offset = (int) (yyg->yy_c_buf_p - b->yy_ch_buf); if (b->yy_is_our_buffer) { int new_size = b->yy_buf_size * 2; if (new_size <= 0) b->yy_buf_size += b->yy_buf_size / 8; else b->yy_buf_size *= 2; b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ VanuatuWktrealloc ((void *) b->yy_ch_buf, b->yy_buf_size + 2, yyscanner); } else /* Can't grow it, we don't own it. */ b->yy_ch_buf = 0; if (!b->yy_ch_buf) YY_FATAL_ERROR ("fatal error - scanner input buffer overflow"); yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset]; num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; } if (num_to_read > YY_READ_BUF_SIZE) num_to_read = YY_READ_BUF_SIZE; /* Read in more data. */ YY_INPUT ((&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), yyg->yy_n_chars, (size_t) num_to_read); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; } if (yyg->yy_n_chars == 0) { if (number_to_move == YY_MORE_ADJ) { ret_val = EOB_ACT_END_OF_FILE; VanuatuWktrestart (yyin, yyscanner); } else { ret_val = EOB_ACT_LAST_MATCH; YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_EOF_PENDING; } } else ret_val = EOB_ACT_CONTINUE_SCAN; if ((yy_size_t) (yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ yy_size_t new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1); YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) VanuatuWktrealloc ((void *) YY_CURRENT_BUFFER_LVALUE-> yy_ch_buf, new_size, yyscanner); if (!YY_CURRENT_BUFFER_LVALUE->yy_ch_buf) YY_FATAL_ERROR ("out of dynamic memory in yy_get_next_buffer()"); } yyg->yy_n_chars += number_to_move; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR; yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; return ret_val; } /* yy_get_previous_state - get the state just before the EOB char was reached */ static yy_state_type yy_get_previous_state (yyscan_t yyscanner) { register yy_state_type yy_current_state; register char *yy_cp; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yy_current_state = yyg->yy_start; for (yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp) { register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI (*yy_cp)] : 1); if (yy_accept[yy_current_state]) { yyg->yy_last_accepting_state = yy_current_state; yyg->yy_last_accepting_cpos = yy_cp; } while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state) { yy_current_state = (int) yy_def[yy_current_state]; if (yy_current_state >= 114) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; } return yy_current_state; } /* yy_try_NUL_trans - try to make a transition on the NUL character * * synopsis * next_state = yy_try_NUL_trans( current_state ); */ static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state, yyscan_t yyscanner) { register int yy_is_jam; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* This var may be unused depending upon options. */ register char *yy_cp = yyg->yy_c_buf_p; register YY_CHAR yy_c = 1; if (yy_accept[yy_current_state]) { yyg->yy_last_accepting_state = yy_current_state; yyg->yy_last_accepting_cpos = yy_cp; } while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state) { yy_current_state = (int) yy_def[yy_current_state]; if (yy_current_state >= 114) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; yy_is_jam = (yy_current_state == 113); return yy_is_jam ? 0 : yy_current_state; } #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput (yyscan_t yyscanner) #else static int input (yyscan_t yyscanner) #endif { int c; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; *yyg->yy_c_buf_p = yyg->yy_hold_char; if (*yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR) { /* yy_c_buf_p now points to the character we want to return. * If this occurs *before* the EOB characters, then it's a * valid NUL; if not, then we've hit the end of the buffer. */ if (yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars]) /* This was really a NUL. */ *yyg->yy_c_buf_p = '\0'; else { /* need more input */ int offset = yyg->yy_c_buf_p - yyg->yytext_ptr; ++yyg->yy_c_buf_p; switch (yy_get_next_buffer (yyscanner)) { case EOB_ACT_LAST_MATCH: /* This happens because yy_g_n_b() * sees that we've accumulated a * token and flags that we need to * try matching the token before * proceeding. But for input(), * there's no matching to consider. * So convert the EOB_ACT_LAST_MATCH * to EOB_ACT_END_OF_FILE. */ /* Reset buffer status. */ VanuatuWktrestart (yyin, yyscanner); /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE: { if (VanuatuWktwrap (yyscanner)) return EOF; if (!yyg->yy_did_buffer_switch_on_eof) YY_NEW_FILE; #ifdef __cplusplus return yyinput (yyscanner); #else return input (yyscanner); #endif } case EOB_ACT_CONTINUE_SCAN: yyg->yy_c_buf_p = yyg->yytext_ptr + offset; break; } } } c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */ *yyg->yy_c_buf_p = '\0'; /* preserve yytext */ yyg->yy_hold_char = *++yyg->yy_c_buf_p; return c; } #endif /* ifndef YY_NO_INPUT */ /** Immediately switch to a different input stream. * @param input_file A readable stream. * @param yyscanner The scanner object. * @note This function does not reset the start condition to @c INITIAL . */ void VanuatuWktrestart (FILE * input_file, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!YY_CURRENT_BUFFER) { VanuatuWktensure_buffer_stack (yyscanner); YY_CURRENT_BUFFER_LVALUE = VanuatuWkt_create_buffer (yyin, YY_BUF_SIZE, yyscanner); } VanuatuWkt_init_buffer (YY_CURRENT_BUFFER, input_file, yyscanner); VanuatuWkt_load_buffer_state (yyscanner); } /** Switch to a different input buffer. * @param new_buffer The new input buffer. * @param yyscanner The scanner object. */ void VanuatuWkt_switch_to_buffer (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* TODO. We should be able to replace this entire function body * with * VanuatuWktpop_buffer_state(); * VanuatuWktpush_buffer_state(new_buffer); */ VanuatuWktensure_buffer_stack (yyscanner); if (YY_CURRENT_BUFFER == new_buffer) return; if (YY_CURRENT_BUFFER) { /* Flush out information for old buffer. */ *yyg->yy_c_buf_p = yyg->yy_hold_char; YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; } YY_CURRENT_BUFFER_LVALUE = new_buffer; VanuatuWkt_load_buffer_state (yyscanner); /* We don't actually know whether we did this switch during * EOF (VanuatuWktwrap()) processing, but the only time this flag * is looked at is after VanuatuWktwrap() is called, so it's safe * to go ahead and always set it. */ yyg->yy_did_buffer_switch_on_eof = 1; } static void VanuatuWkt_load_buffer_state (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; yyg->yy_hold_char = *yyg->yy_c_buf_p; } /** Allocate and initialize an input buffer state. * @param file A readable stream. * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. * @param yyscanner The scanner object. * @return the allocated buffer state. */ YY_BUFFER_STATE VanuatuWkt_create_buffer (FILE * file, int size, yyscan_t yyscanner) { YY_BUFFER_STATE b; b = (YY_BUFFER_STATE) VanuatuWktalloc (sizeof (struct yy_buffer_state), yyscanner); if (!b) YY_FATAL_ERROR ("out of dynamic memory in VanuatuWkt_create_buffer()"); b->yy_buf_size = size; /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ b->yy_ch_buf = (char *) VanuatuWktalloc (b->yy_buf_size + 2, yyscanner); if (!b->yy_ch_buf) YY_FATAL_ERROR ("out of dynamic memory in VanuatuWkt_create_buffer()"); b->yy_is_our_buffer = 1; VanuatuWkt_init_buffer (b, file, yyscanner); return b; } /** Destroy the buffer. * @param b a buffer created with VanuatuWkt_create_buffer() * @param yyscanner The scanner object. */ void VanuatuWkt_delete_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!b) return; if (b == YY_CURRENT_BUFFER) /* Not sure if we should pop here. */ YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if (b->yy_is_our_buffer) VanuatuWktfree ((void *) b->yy_ch_buf, yyscanner); VanuatuWktfree ((void *) b, yyscanner); } #ifndef __cplusplus extern int isatty (int); #endif /* __cplusplus */ /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a VanuatuWktrestart() or at EOF. */ static void VanuatuWkt_init_buffer (YY_BUFFER_STATE b, FILE * file, yyscan_t yyscanner) { int oerrno = errno; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; VanuatuWkt_flush_buffer (b, yyscanner); b->yy_input_file = file; b->yy_fill_buffer = 1; /* If b is the current buffer, then VanuatuWkt_init_buffer was _probably_ * called from VanuatuWktrestart() or through yy_get_next_buffer. * In that case, we don't want to reset the lineno or column. */ if (b != YY_CURRENT_BUFFER) { b->yy_bs_lineno = 1; b->yy_bs_column = 0; } b->yy_is_interactive = file ? (isatty (fileno (file)) > 0) : 0; errno = oerrno; } /** Discard all buffered characters. On the next scan, YY_INPUT will be called. * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. * @param yyscanner The scanner object. */ void VanuatuWkt_flush_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!b) return; b->yy_n_chars = 0; /* We always need two end-of-buffer characters. The first causes * a transition to the end-of-buffer state. The second causes * a jam in that state. */ b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; b->yy_buf_pos = &b->yy_ch_buf[0]; b->yy_at_bol = 1; b->yy_buffer_status = YY_BUFFER_NEW; if (b == YY_CURRENT_BUFFER) VanuatuWkt_load_buffer_state (yyscanner); } /** Pushes the new state onto the stack. The new state becomes * the current state. This function will allocate the stack * if necessary. * @param new_buffer The new state. * @param yyscanner The scanner object. */ void VanuatuWktpush_buffer_state (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (new_buffer == NULL) return; VanuatuWktensure_buffer_stack (yyscanner); /* This block is copied from VanuatuWkt_switch_to_buffer. */ if (YY_CURRENT_BUFFER) { /* Flush out information for old buffer. */ *yyg->yy_c_buf_p = yyg->yy_hold_char; YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; } /* Only push if top exists. Otherwise, replace top. */ if (YY_CURRENT_BUFFER) yyg->yy_buffer_stack_top++; YY_CURRENT_BUFFER_LVALUE = new_buffer; /* copied from VanuatuWkt_switch_to_buffer. */ VanuatuWkt_load_buffer_state (yyscanner); yyg->yy_did_buffer_switch_on_eof = 1; } /** Removes and deletes the top of the stack, if present. * The next element becomes the new top. * @param yyscanner The scanner object. */ void VanuatuWktpop_buffer_state (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!YY_CURRENT_BUFFER) return; VanuatuWkt_delete_buffer (YY_CURRENT_BUFFER, yyscanner); YY_CURRENT_BUFFER_LVALUE = NULL; if (yyg->yy_buffer_stack_top > 0) --yyg->yy_buffer_stack_top; if (YY_CURRENT_BUFFER) { VanuatuWkt_load_buffer_state (yyscanner); yyg->yy_did_buffer_switch_on_eof = 1; } } /* Allocates the stack if it does not exist. * Guarantees space for at least one push. */ static void VanuatuWktensure_buffer_stack (yyscan_t yyscanner) { int num_to_alloc; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!yyg->yy_buffer_stack) { /* First allocation is just for 2 elements, since we don't know if this * scanner will even need a stack. We use 2 instead of 1 to avoid an * immediate realloc on the next call. */ num_to_alloc = 1; yyg->yy_buffer_stack = (struct yy_buffer_state **) VanuatuWktalloc (num_to_alloc * sizeof (struct yy_buffer_state *), yyscanner); if (!yyg->yy_buffer_stack) YY_FATAL_ERROR ("out of dynamic memory in VanuatuWktensure_buffer_stack()"); memset (yyg->yy_buffer_stack, 0, num_to_alloc * sizeof (struct yy_buffer_state *)); yyg->yy_buffer_stack_max = num_to_alloc; yyg->yy_buffer_stack_top = 0; return; } if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1) { /* Increase the buffer to prepare for a possible push. */ int grow_size = 8 /* arbitrary grow size */ ; num_to_alloc = yyg->yy_buffer_stack_max + grow_size; yyg->yy_buffer_stack = (struct yy_buffer_state **) VanuatuWktrealloc (yyg->yy_buffer_stack, num_to_alloc * sizeof (struct yy_buffer_state *), yyscanner); if (!yyg->yy_buffer_stack) YY_FATAL_ERROR ("out of dynamic memory in VanuatuWktensure_buffer_stack()"); /* zero only the new slots. */ memset (yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof (struct yy_buffer_state *)); yyg->yy_buffer_stack_max = num_to_alloc; } } /** Setup the input buffer state to scan directly from a user-specified character buffer. * @param base the character buffer * @param size the size in bytes of the character buffer * @param yyscanner The scanner object. * @return the newly allocated buffer state object. */ YY_BUFFER_STATE VanuatuWkt_scan_buffer (char *base, yy_size_t size, yyscan_t yyscanner) { YY_BUFFER_STATE b; if (size < 2 || base[size - 2] != YY_END_OF_BUFFER_CHAR || base[size - 1] != YY_END_OF_BUFFER_CHAR) /* They forgot to leave room for the EOB's. */ return 0; b = (YY_BUFFER_STATE) VanuatuWktalloc (sizeof (struct yy_buffer_state), yyscanner); if (!b) YY_FATAL_ERROR ("out of dynamic memory in VanuatuWkt_scan_buffer()"); b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ b->yy_buf_pos = b->yy_ch_buf = base; b->yy_is_our_buffer = 0; b->yy_input_file = 0; b->yy_n_chars = b->yy_buf_size; b->yy_is_interactive = 0; b->yy_at_bol = 1; b->yy_fill_buffer = 0; b->yy_buffer_status = YY_BUFFER_NEW; VanuatuWkt_switch_to_buffer (b, yyscanner); return b; } /** Setup the input buffer state to scan a string. The next call to VanuatuWktlex() will * scan from a @e copy of @a str. * @param yystr a NUL-terminated string to scan * @param yyscanner The scanner object. * @return the newly allocated buffer state object. * @note If you want to scan bytes that may contain NUL values, then use * VanuatuWkt_scan_bytes() instead. */ YY_BUFFER_STATE VanuatuWkt_scan_string (yyconst char *yystr, yyscan_t yyscanner) { return VanuatuWkt_scan_bytes (yystr, strlen (yystr), yyscanner); } /** Setup the input buffer state to scan the given bytes. The next call to VanuatuWktlex() will * scan from a @e copy of @a bytes. * @param bytes the byte buffer to scan * @param len the number of bytes in the buffer pointed to by @a bytes. * @param yyscanner The scanner object. * @return the newly allocated buffer state object. */ YY_BUFFER_STATE VanuatuWkt_scan_bytes (yyconst char *yybytes, int _yybytes_len, yyscan_t yyscanner) { YY_BUFFER_STATE b; char *buf; yy_size_t n; int i; /* Get memory for full buffer, including space for trailing EOB's. */ n = _yybytes_len + 2; buf = (char *) VanuatuWktalloc (n, yyscanner); if (!buf) YY_FATAL_ERROR ("out of dynamic memory in VanuatuWkt_scan_bytes()"); for (i = 0; i < _yybytes_len; ++i) buf[i] = yybytes[i]; buf[_yybytes_len] = buf[_yybytes_len + 1] = YY_END_OF_BUFFER_CHAR; b = VanuatuWkt_scan_buffer (buf, n, yyscanner); if (!b) YY_FATAL_ERROR ("bad buffer in VanuatuWkt_scan_bytes()"); /* It's okay to grow etc. this buffer, and we should throw it * away when we're done. */ b->yy_is_our_buffer = 1; return b; } #ifndef YY_EXIT_FAILURE #define YY_EXIT_FAILURE 2 #endif static void yy_fatal_error (yyconst char *msg, yyscan_t yyscanner) { (void) fprintf (stderr, "%s\n", msg); exit (YY_EXIT_FAILURE); } /* Redefine yyless() so it works in section 3 code. */ #undef yyless #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ yytext[yyleng] = yyg->yy_hold_char; \ yyg->yy_c_buf_p = yytext + yyless_macro_arg; \ yyg->yy_hold_char = *yyg->yy_c_buf_p; \ *yyg->yy_c_buf_p = '\0'; \ yyleng = yyless_macro_arg; \ } \ while ( 0 ) /* Accessor methods (get/set functions) to struct members. */ /** Get the user-defined data for this scanner. * @param yyscanner The scanner object. */ YY_EXTRA_TYPE VanuatuWktget_extra (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyextra; } /** Get the current line number. * @param yyscanner The scanner object. */ int VanuatuWktget_lineno (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!YY_CURRENT_BUFFER) return 0; return yylineno; } /** Get the current column number. * @param yyscanner The scanner object. */ int VanuatuWktget_column (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!YY_CURRENT_BUFFER) return 0; return yycolumn; } /** Get the input stream. * @param yyscanner The scanner object. */ FILE * VanuatuWktget_in (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyin; } /** Get the output stream. * @param yyscanner The scanner object. */ FILE * VanuatuWktget_out (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyout; } /** Get the length of the current token. * @param yyscanner The scanner object. */ int VanuatuWktget_leng (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyleng; } /** Get the current token. * @param yyscanner The scanner object. */ char * VanuatuWktget_text (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yytext; } /** Set the user-defined data. This data is never touched by the scanner. * @param user_defined The data to be associated with this scanner. * @param yyscanner The scanner object. */ void VanuatuWktset_extra (YY_EXTRA_TYPE user_defined, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yyextra = user_defined; } /** Set the current line number. * @param line_number * @param yyscanner The scanner object. */ void VanuatuWktset_lineno (int line_number, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* lineno is only valid if an input buffer exists. */ if (!YY_CURRENT_BUFFER) yy_fatal_error ("VanuatuWktset_lineno called with no buffer", yyscanner); yylineno = line_number; } /** Set the current column. * @param line_number * @param yyscanner The scanner object. */ void VanuatuWktset_column (int column_no, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* column is only valid if an input buffer exists. */ if (!YY_CURRENT_BUFFER) yy_fatal_error ("VanuatuWktset_column called with no buffer", yyscanner); yycolumn = column_no; } /** Set the input stream. This does not discard the current * input buffer. * @param in_str A readable stream. * @param yyscanner The scanner object. * @see VanuatuWkt_switch_to_buffer */ void VanuatuWktset_in (FILE * in_str, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yyin = in_str; } void VanuatuWktset_out (FILE * out_str, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yyout = out_str; } int VanuatuWktget_debug (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yy_flex_debug; } void VanuatuWktset_debug (int bdebug, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yy_flex_debug = bdebug; } /* Accessor methods for yylval and yylloc */ /* User-visible API */ /* VanuatuWktlex_init is special because it creates the scanner itself, so it is * the ONLY reentrant function that doesn't take the scanner as the last argument. * That's why we explicitly handle the declaration, instead of using our macros. */ int VanuatuWktlex_init (yyscan_t * ptr_yy_globals) { if (ptr_yy_globals == NULL) { errno = EINVAL; return 1; } *ptr_yy_globals = (yyscan_t) VanuatuWktalloc (sizeof (struct yyguts_t), NULL); if (*ptr_yy_globals == NULL) { errno = ENOMEM; return 1; } /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */ memset (*ptr_yy_globals, 0x00, sizeof (struct yyguts_t)); return yy_init_globals (*ptr_yy_globals); } /* VanuatuWktlex_init_extra has the same functionality as VanuatuWktlex_init, but follows the * convention of taking the scanner as the last argument. Note however, that * this is a *pointer* to a scanner, as it will be allocated by this call (and * is the reason, too, why this function also must handle its own declaration). * The user defined value in the first argument will be available to VanuatuWktalloc in * the yyextra field. */ int VanuatuWktlex_init_extra (YY_EXTRA_TYPE yy_user_defined, yyscan_t * ptr_yy_globals) { struct yyguts_t dummy_yyguts; VanuatuWktset_extra (yy_user_defined, &dummy_yyguts); if (ptr_yy_globals == NULL) { errno = EINVAL; return 1; } *ptr_yy_globals = (yyscan_t) VanuatuWktalloc (sizeof (struct yyguts_t), &dummy_yyguts); if (*ptr_yy_globals == NULL) { errno = ENOMEM; return 1; } /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */ memset (*ptr_yy_globals, 0x00, sizeof (struct yyguts_t)); VanuatuWktset_extra (yy_user_defined, *ptr_yy_globals); return yy_init_globals (*ptr_yy_globals); } static int yy_init_globals (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* Initialization is the same as for the non-reentrant scanner. * This function is called from VanuatuWktlex_destroy(), so don't allocate here. */ yyg->yy_buffer_stack = 0; yyg->yy_buffer_stack_top = 0; yyg->yy_buffer_stack_max = 0; yyg->yy_c_buf_p = (char *) 0; yyg->yy_init = 0; yyg->yy_start = 0; yyg->yy_start_stack_ptr = 0; yyg->yy_start_stack_depth = 0; yyg->yy_start_stack = NULL; /* Defined in main.c */ #ifdef YY_STDINIT yyin = stdin; yyout = stdout; #else yyin = (FILE *) 0; yyout = (FILE *) 0; #endif /* For future reference: Set errno on error, since we are called by * VanuatuWktlex_init() */ return 0; } /* VanuatuWktlex_destroy is for both reentrant and non-reentrant scanners. */ int VanuatuWktlex_destroy (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* Pop the buffer stack, destroying each element. */ while (YY_CURRENT_BUFFER) { VanuatuWkt_delete_buffer (YY_CURRENT_BUFFER, yyscanner); YY_CURRENT_BUFFER_LVALUE = NULL; VanuatuWktpop_buffer_state (yyscanner); } /* Destroy the stack itself. */ VanuatuWktfree (yyg->yy_buffer_stack, yyscanner); yyg->yy_buffer_stack = NULL; /* Destroy the start condition stack. */ VanuatuWktfree (yyg->yy_start_stack, yyscanner); yyg->yy_start_stack = NULL; /* Reset the globals. This is important in a non-reentrant scanner so the next time * VanuatuWktlex() is called, initialization will occur. */ yy_init_globals (yyscanner); /* Destroy the main struct (reentrant only). */ VanuatuWktfree (yyscanner, yyscanner); yyscanner = NULL; return 0; } /* * Internal utility routines. */ #ifndef yytext_ptr static void yy_flex_strncpy (char *s1, yyconst char *s2, int n, yyscan_t yyscanner) { register int i; for (i = 0; i < n; ++i) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen (yyconst char *s, yyscan_t yyscanner) { register int n; for (n = 0; s[n]; ++n) ; return n; } #endif void * VanuatuWktalloc (yy_size_t size, yyscan_t yyscanner) { return (void *) malloc (size); } void * VanuatuWktrealloc (void *ptr, yy_size_t size, yyscan_t yyscanner) { /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter * because both ANSI C and C++ allow castless assignment from * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ return (void *) realloc ((char *) ptr, size); } void VanuatuWktfree (void *ptr, yyscan_t yyscanner) { free ((char *) ptr); /* see VanuatuWktrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" int VanuatuWktwrap (yyscan_t yyscanner) { return 1; } /****************************************************************************** ** This is the end of the code that was created by Team Vanuatu ** of The University of Toronto. Authors: Ruppi Rana ruppi.rana@gmail.com Dev Tanna dev.tanna@gmail.com Elias Adum elias.adum@gmail.com Benton Hui benton.hui@gmail.com Abhayan Sundararajan abhayan@gmail.com Chee-Lun Michael Stephen Cho cheelun.cho@gmail.com Nikola Banovic nikola.banovic@gmail.com Yong Jian yong.jian@utoronto.ca Supervisor: Greg Wilson gvwilson@cs.toronto.ca ------------------------------------------------------------------------------- */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.1.1/src/gaiageo/gg_geoscvt.c��������������������������������������������������������0000664�0001750�0001750�00000076650�12163502133�015756� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* gg_geoscvt.c -- Gaia / GEOS conversion [Geometry] version 4.1, 2013 May 8 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include <sys/types.h> #include <stdlib.h> #include <stdio.h> #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #ifndef OMIT_GEOS /* including GEOS */ #include <geos_c.h> #endif #include <spatialite/sqlite.h> #include <spatialite/gaiageo.h> #ifndef OMIT_GEOS /* including GEOS */ static GEOSGeometry * toGeosGeometry (const gaiaGeomCollPtr gaia, int mode) { /* converting a GAIA Geometry into a GEOS Geometry */ int pts = 0; int lns = 0; int pgs = 0; int type; int geos_type; unsigned int dims; int iv; int ib; int nItem; double x; double y; double z; double m; double x0; double y0; double z0; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; gaiaRingPtr rng; GEOSGeometry *geos; GEOSGeometry *geos_ext; GEOSGeometry *geos_int; GEOSGeometry *geos_item; GEOSGeometry **geos_holes; GEOSGeometry **geos_coll; GEOSCoordSequence *cs; int ring_points; int n_items; if (!gaia) return NULL; pt = gaia->FirstPoint; while (pt) { /* counting how many POINTs are there */ pts++; pt = pt->Next; } ln = gaia->FirstLinestring; while (ln) { /* counting how many LINESTRINGs are there */ lns++; ln = ln->Next; } pg = gaia->FirstPolygon; while (pg) { /* counting how many POLYGONs are there */ pgs++; pg = pg->Next; } if (mode == GAIA2GEOS_ONLY_POINTS && pts == 0) return NULL; if (mode == GAIA2GEOS_ONLY_LINESTRINGS && lns == 0) return NULL; if (mode == GAIA2GEOS_ONLY_POLYGONS && pgs == 0) return NULL; if (pts == 0 && lns == 0 && pgs == 0) return NULL; else if (pts == 1 && lns == 0 && pgs == 0) { if (gaia->DeclaredType == GAIA_MULTIPOINT) type = GAIA_MULTIPOINT; else if (gaia->DeclaredType == GAIA_GEOMETRYCOLLECTION) type = GAIA_GEOMETRYCOLLECTION; else type = GAIA_POINT; } else if (pts == 0 && lns == 1 && pgs == 0) { if (gaia->DeclaredType == GAIA_MULTILINESTRING) type = GAIA_MULTILINESTRING; else if (gaia->DeclaredType == GAIA_GEOMETRYCOLLECTION) type = GAIA_GEOMETRYCOLLECTION; else type = GAIA_LINESTRING; } else if (pts == 0 && lns == 0 && pgs == 1) { if (gaia->DeclaredType == GAIA_MULTIPOLYGON) type = GAIA_MULTIPOLYGON; else if (gaia->DeclaredType == GAIA_GEOMETRYCOLLECTION) type = GAIA_GEOMETRYCOLLECTION; else type = GAIA_POLYGON; } else if (pts > 1 && lns == 0 && pgs == 0) { if (gaia->DeclaredType == GAIA_GEOMETRYCOLLECTION) type = GAIA_GEOMETRYCOLLECTION; else type = GAIA_MULTIPOINT; } else if (pts == 0 && lns > 1 && pgs == 0) { if (gaia->DeclaredType == GAIA_GEOMETRYCOLLECTION) type = GAIA_GEOMETRYCOLLECTION; else type = GAIA_MULTILINESTRING; } else if (pts == 0 && lns == 0 && pgs > 1) { if (gaia->DeclaredType == GAIA_GEOMETRYCOLLECTION) type = GAIA_GEOMETRYCOLLECTION; else type = GAIA_MULTIPOLYGON; } else type = GAIA_GEOMETRYCOLLECTION; switch (gaia->DimensionModel) { case GAIA_XY_Z: case GAIA_XY_Z_M: dims = 3; break; default: dims = 2; break; }; switch (type) { case GAIA_POINT: if (mode == GAIA2GEOS_ALL || mode == GAIA2GEOS_ONLY_POINTS) { pt = gaia->FirstPoint; cs = GEOSCoordSeq_create (1, dims); switch (gaia->DimensionModel) { case GAIA_XY_Z: case GAIA_XY_Z_M: GEOSCoordSeq_setX (cs, 0, pt->X); GEOSCoordSeq_setY (cs, 0, pt->Y); GEOSCoordSeq_setZ (cs, 0, pt->Z); break; default: GEOSCoordSeq_setX (cs, 0, pt->X); GEOSCoordSeq_setY (cs, 0, pt->Y); break; }; geos = GEOSGeom_createPoint (cs); } break; case GAIA_LINESTRING: if (mode == GAIA2GEOS_ALL || mode == GAIA2GEOS_ONLY_LINESTRINGS) { ln = gaia->FirstLinestring; cs = GEOSCoordSeq_create (ln->Points, dims); for (iv = 0; iv < ln->Points; iv++) { switch (ln->DimensionModel) { case GAIA_XY_Z: gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); GEOSCoordSeq_setX (cs, iv, x); GEOSCoordSeq_setY (cs, iv, y); GEOSCoordSeq_setZ (cs, iv, z); break; case GAIA_XY_M: gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); GEOSCoordSeq_setX (cs, iv, x); GEOSCoordSeq_setY (cs, iv, y); break; case GAIA_XY_Z_M: gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); GEOSCoordSeq_setX (cs, iv, x); GEOSCoordSeq_setY (cs, iv, y); GEOSCoordSeq_setZ (cs, iv, z); break; default: gaiaGetPoint (ln->Coords, iv, &x, &y); GEOSCoordSeq_setX (cs, iv, x); GEOSCoordSeq_setY (cs, iv, y); break; }; } geos = GEOSGeom_createLineString (cs); } break; case GAIA_POLYGON: if (mode == GAIA2GEOS_ALL || mode == GAIA2GEOS_ONLY_POLYGONS) { pg = gaia->FirstPolygon; rng = pg->Exterior; /* exterior ring */ ring_points = rng->Points; if (gaiaIsNotClosedRing (rng)) ring_points++; cs = GEOSCoordSeq_create (ring_points, dims); for (iv = 0; iv < rng->Points; iv++) { switch (rng->DimensionModel) { case GAIA_XY_Z: gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); if (iv == 0) { /* saving the first vertex */ x0 = x; y0 = y; z0 = z; } GEOSCoordSeq_setX (cs, iv, x); GEOSCoordSeq_setY (cs, iv, y); GEOSCoordSeq_setZ (cs, iv, z); break; case GAIA_XY_M: gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); if (iv == 0) { /* saving the first vertex */ x0 = x; y0 = y; } GEOSCoordSeq_setX (cs, iv, x); GEOSCoordSeq_setY (cs, iv, y); break; case GAIA_XY_Z_M: gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); if (iv == 0) { /* saving the first vertex */ x0 = x; y0 = y; z0 = z; } GEOSCoordSeq_setX (cs, iv, x); GEOSCoordSeq_setY (cs, iv, y); GEOSCoordSeq_setZ (cs, iv, z); break; default: gaiaGetPoint (rng->Coords, iv, &x, &y); if (iv == 0) { /* saving the first vertex */ x0 = x; y0 = y; } GEOSCoordSeq_setX (cs, iv, x); GEOSCoordSeq_setY (cs, iv, y); break; }; } if (ring_points > rng->Points) { /* ensuring Ring's closure */ iv = ring_points - 1; switch (rng->DimensionModel) { case GAIA_XY_Z: case GAIA_XY_Z_M: GEOSCoordSeq_setX (cs, iv, x0); GEOSCoordSeq_setY (cs, iv, y0); GEOSCoordSeq_setZ (cs, iv, z0); break; default: GEOSCoordSeq_setX (cs, iv, x0); GEOSCoordSeq_setY (cs, iv, y0); break; }; } geos_ext = GEOSGeom_createLinearRing (cs); geos_holes = NULL; if (pg->NumInteriors > 0) { geos_holes = malloc (sizeof (GEOSGeometry *) * pg->NumInteriors); for (ib = 0; ib < pg->NumInteriors; ib++) { /* interior ring */ rng = pg->Interiors + ib; ring_points = rng->Points; if (gaiaIsNotClosedRing (rng)) ring_points++; cs = GEOSCoordSeq_create (ring_points, dims); for (iv = 0; iv < rng->Points; iv++) { switch (rng->DimensionModel) { case GAIA_XY_Z: gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); if (iv == 0) { /* saving the first vertex */ x0 = x; y0 = y; z0 = z; } GEOSCoordSeq_setX (cs, iv, x); GEOSCoordSeq_setY (cs, iv, y); GEOSCoordSeq_setZ (cs, iv, z); break; case GAIA_XY_M: gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); if (iv == 0) { /* saving the first vertex */ x0 = x; y0 = y; } GEOSCoordSeq_setX (cs, iv, x); GEOSCoordSeq_setY (cs, iv, y); break; case GAIA_XY_Z_M: gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); if (iv == 0) { /* saving the first vertex */ x0 = x; y0 = y; z0 = z; } GEOSCoordSeq_setX (cs, iv, x); GEOSCoordSeq_setY (cs, iv, y); GEOSCoordSeq_setZ (cs, iv, z); break; default: gaiaGetPoint (rng->Coords, iv, &x, &y); if (iv == 0) { /* saving the first vertex */ x0 = x; y0 = y; } GEOSCoordSeq_setX (cs, iv, x); GEOSCoordSeq_setY (cs, iv, y); break; }; } if (ring_points > rng->Points) { /* ensuring Ring's closure */ iv = ring_points - 1; switch (rng->DimensionModel) { case GAIA_XY_Z: case GAIA_XY_Z_M: GEOSCoordSeq_setX (cs, iv, x0); GEOSCoordSeq_setY (cs, iv, y0); GEOSCoordSeq_setZ (cs, iv, z0); break; default: GEOSCoordSeq_setX (cs, iv, x0); GEOSCoordSeq_setY (cs, iv, y0); break; }; } geos_int = GEOSGeom_createLinearRing (cs); *(geos_holes + ib) = geos_int; } } geos = GEOSGeom_createPolygon (geos_ext, geos_holes, pg->NumInteriors); if (geos_holes) free (geos_holes); } break; case GAIA_MULTIPOINT: case GAIA_MULTILINESTRING: case GAIA_MULTIPOLYGON: case GAIA_GEOMETRYCOLLECTION: nItem = 0; if (mode == GAIA2GEOS_ONLY_POINTS) { geos_coll = malloc (sizeof (GEOSGeometry *) * (pts)); n_items = pts; } else if (mode == GAIA2GEOS_ONLY_LINESTRINGS) { geos_coll = malloc (sizeof (GEOSGeometry *) * (lns)); n_items = lns; } else if (mode == GAIA2GEOS_ONLY_POLYGONS) { geos_coll = malloc (sizeof (GEOSGeometry *) * (pgs)); n_items = pgs; } else { geos_coll = malloc (sizeof (GEOSGeometry *) * (pts + lns + pgs)); n_items = pts + lns + pgs; } if (mode == GAIA2GEOS_ALL || mode == GAIA2GEOS_ONLY_POINTS) { pt = gaia->FirstPoint; while (pt) { cs = GEOSCoordSeq_create (1, dims); switch (pt->DimensionModel) { case GAIA_XY_Z: case GAIA_XY_Z_M: GEOSCoordSeq_setX (cs, 0, pt->X); GEOSCoordSeq_setY (cs, 0, pt->Y); GEOSCoordSeq_setZ (cs, 0, pt->Z); break; default: GEOSCoordSeq_setX (cs, 0, pt->X); GEOSCoordSeq_setY (cs, 0, pt->Y); break; }; geos_item = GEOSGeom_createPoint (cs); *(geos_coll + nItem++) = geos_item; pt = pt->Next; } } if (mode == GAIA2GEOS_ALL || mode == GAIA2GEOS_ONLY_LINESTRINGS) { ln = gaia->FirstLinestring; while (ln) { cs = GEOSCoordSeq_create (ln->Points, dims); for (iv = 0; iv < ln->Points; iv++) { switch (ln->DimensionModel) { case GAIA_XY_Z: gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); GEOSCoordSeq_setX (cs, iv, x); GEOSCoordSeq_setY (cs, iv, y); GEOSCoordSeq_setZ (cs, iv, z); break; case GAIA_XY_M: gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); GEOSCoordSeq_setX (cs, iv, x); GEOSCoordSeq_setY (cs, iv, y); break; case GAIA_XY_Z_M: gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); GEOSCoordSeq_setX (cs, iv, x); GEOSCoordSeq_setY (cs, iv, y); GEOSCoordSeq_setZ (cs, iv, z); break; default: gaiaGetPoint (ln->Coords, iv, &x, &y); GEOSCoordSeq_setX (cs, iv, x); GEOSCoordSeq_setY (cs, iv, y); break; }; } geos_item = GEOSGeom_createLineString (cs); *(geos_coll + nItem++) = geos_item; ln = ln->Next; } } if (mode == GAIA2GEOS_ALL || mode == GAIA2GEOS_ONLY_POLYGONS) { pg = gaia->FirstPolygon; while (pg) { rng = pg->Exterior; /* exterior ring */ ring_points = rng->Points; if (gaiaIsNotClosedRing (rng)) ring_points++; cs = GEOSCoordSeq_create (ring_points, dims); for (iv = 0; iv < rng->Points; iv++) { switch (rng->DimensionModel) { case GAIA_XY_Z: gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); if (iv == 0) { /* saving the first vertex */ x0 = x; y0 = y; z0 = z; } GEOSCoordSeq_setX (cs, iv, x); GEOSCoordSeq_setY (cs, iv, y); GEOSCoordSeq_setZ (cs, iv, z); break; case GAIA_XY_M: gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); if (iv == 0) { /* saving the first vertex */ x0 = x; y0 = y; } GEOSCoordSeq_setX (cs, iv, x); GEOSCoordSeq_setY (cs, iv, y); break; case GAIA_XY_Z_M: gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); if (iv == 0) { /* saving the first vertex */ x0 = x; y0 = y; z0 = z; } GEOSCoordSeq_setX (cs, iv, x); GEOSCoordSeq_setY (cs, iv, y); GEOSCoordSeq_setZ (cs, iv, z); break; default: gaiaGetPoint (rng->Coords, iv, &x, &y); if (iv == 0) { /* saving the first vertex */ x0 = x; y0 = y; } GEOSCoordSeq_setX (cs, iv, x); GEOSCoordSeq_setY (cs, iv, y); break; }; } if (ring_points > rng->Points) { /* ensuring Ring's closure */ iv = ring_points - 1; switch (rng->DimensionModel) { case GAIA_XY_Z: case GAIA_XY_Z_M: GEOSCoordSeq_setX (cs, iv, x0); GEOSCoordSeq_setY (cs, iv, y0); GEOSCoordSeq_setZ (cs, iv, z0); break; default: GEOSCoordSeq_setX (cs, iv, x0); GEOSCoordSeq_setY (cs, iv, y0); break; }; } geos_ext = GEOSGeom_createLinearRing (cs); geos_holes = NULL; if (pg->NumInteriors > 0) { geos_holes = malloc (sizeof (GEOSGeometry *) * pg->NumInteriors); for (ib = 0; ib < pg->NumInteriors; ib++) { /* interior ring */ rng = pg->Interiors + ib; ring_points = rng->Points; if (gaiaIsNotClosedRing (rng)) ring_points++; cs = GEOSCoordSeq_create (ring_points, dims); for (iv = 0; iv < rng->Points; iv++) { switch (rng->DimensionModel) { case GAIA_XY_Z: gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); if (iv == 0) { /* saving the first vertex */ x0 = x; y0 = y; z0 = z; } GEOSCoordSeq_setX (cs, iv, x); GEOSCoordSeq_setY (cs, iv, y); GEOSCoordSeq_setZ (cs, iv, z); break; case GAIA_XY_M: gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); if (iv == 0) { /* saving the first vertex */ x0 = x; y0 = y; } GEOSCoordSeq_setX (cs, iv, x); GEOSCoordSeq_setY (cs, iv, y); break; case GAIA_XY_Z_M: gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); if (iv == 0) { /* saving the first vertex */ x0 = x; y0 = y; z0 = z; } GEOSCoordSeq_setX (cs, iv, x); GEOSCoordSeq_setY (cs, iv, y); GEOSCoordSeq_setZ (cs, iv, z); break; default: gaiaGetPoint (rng->Coords, iv, &x, &y); if (iv == 0) { /* saving the first vertex */ x0 = x; y0 = y; } GEOSCoordSeq_setX (cs, iv, x); GEOSCoordSeq_setY (cs, iv, y); break; }; } if (ring_points > rng->Points) { /* ensuring Ring's closure */ iv = ring_points - 1; switch (rng->DimensionModel) { case GAIA_XY_Z: case GAIA_XY_Z_M: GEOSCoordSeq_setX (cs, iv, x0); GEOSCoordSeq_setY (cs, iv, y0); GEOSCoordSeq_setZ (cs, iv, z0); break; default: GEOSCoordSeq_setX (cs, iv, x0); GEOSCoordSeq_setY (cs, iv, y0); break; }; } geos_int = GEOSGeom_createLinearRing (cs); *(geos_holes + ib) = geos_int; } } geos_item = GEOSGeom_createPolygon (geos_ext, geos_holes, pg->NumInteriors); if (geos_holes) free (geos_holes); *(geos_coll + nItem++) = geos_item; pg = pg->Next; } } geos_type = GEOS_GEOMETRYCOLLECTION; if (type == GAIA_MULTIPOINT) geos_type = GEOS_MULTIPOINT; if (type == GAIA_MULTILINESTRING) geos_type = GEOS_MULTILINESTRING; if (type == GAIA_MULTIPOLYGON) geos_type = GEOS_MULTIPOLYGON; geos = GEOSGeom_createCollection (geos_type, geos_coll, n_items); if (geos_coll) free (geos_coll); break; default: geos = NULL; }; if (geos) GEOSSetSRID (geos, gaia->Srid); return geos; } static gaiaGeomCollPtr fromGeosGeometry (const GEOSGeometry * geos, const int dimension_model) { /* converting a GEOS Geometry into a GAIA Geometry */ int type; int itemType; unsigned int dims; int iv; int ib; int it; int sub_it; int nItems; int nSubItems; int holes; unsigned int points; double x; double y; double z; const GEOSCoordSequence *cs; const GEOSGeometry *geos_ring; const GEOSGeometry *geos_item; const GEOSGeometry *geos_sub_item; gaiaGeomCollPtr gaia = NULL; gaiaLinestringPtr ln; gaiaPolygonPtr pg; gaiaRingPtr rng; if (!geos) return NULL; type = GEOSGeomTypeId (geos); switch (type) { case GEOS_POINT: if (dimension_model == GAIA_XY_Z) gaia = gaiaAllocGeomCollXYZ (); else if (dimension_model == GAIA_XY_M) gaia = gaiaAllocGeomCollXYM (); else if (dimension_model == GAIA_XY_Z_M) gaia = gaiaAllocGeomCollXYZM (); else gaia = gaiaAllocGeomColl (); gaia->DeclaredType = GAIA_POINT; gaia->Srid = GEOSGetSRID (geos); cs = GEOSGeom_getCoordSeq (geos); GEOSCoordSeq_getDimensions (cs, &dims); if (dims == 3) { GEOSCoordSeq_getX (cs, 0, &x); GEOSCoordSeq_getY (cs, 0, &y); GEOSCoordSeq_getZ (cs, 0, &z); } else { GEOSCoordSeq_getX (cs, 0, &x); GEOSCoordSeq_getY (cs, 0, &y); z = 0.0; } if (dimension_model == GAIA_XY_Z) gaiaAddPointToGeomCollXYZ (gaia, x, y, z); else if (dimension_model == GAIA_XY_M) gaiaAddPointToGeomCollXYM (gaia, x, y, 0.0); else if (dimension_model == GAIA_XY_Z_M) gaiaAddPointToGeomCollXYZM (gaia, x, y, z, 0.0); else gaiaAddPointToGeomColl (gaia, x, y); break; case GEOS_LINESTRING: if (dimension_model == GAIA_XY_Z) gaia = gaiaAllocGeomCollXYZ (); else if (dimension_model == GAIA_XY_M) gaia = gaiaAllocGeomCollXYM (); else if (dimension_model == GAIA_XY_Z_M) gaia = gaiaAllocGeomCollXYZM (); else gaia = gaiaAllocGeomColl (); gaia->DeclaredType = GAIA_LINESTRING; gaia->Srid = GEOSGetSRID (geos); cs = GEOSGeom_getCoordSeq (geos); GEOSCoordSeq_getDimensions (cs, &dims); GEOSCoordSeq_getSize (cs, &points); ln = gaiaAddLinestringToGeomColl (gaia, points); for (iv = 0; iv < (int) points; iv++) { if (dims == 3) { GEOSCoordSeq_getX (cs, iv, &x); GEOSCoordSeq_getY (cs, iv, &y); GEOSCoordSeq_getZ (cs, iv, &z); } else { GEOSCoordSeq_getX (cs, iv, &x); GEOSCoordSeq_getY (cs, iv, &y); z = 0.0; } if (dimension_model == GAIA_XY_Z) { gaiaSetPointXYZ (ln->Coords, iv, x, y, z); } else if (dimension_model == GAIA_XY_M) { gaiaSetPointXYM (ln->Coords, iv, x, y, 0.0); } else if (dimension_model == GAIA_XY_Z_M) { gaiaSetPointXYZM (ln->Coords, iv, x, y, z, 0.0); } else { gaiaSetPoint (ln->Coords, iv, x, y); } } break; case GEOS_POLYGON: if (dimension_model == GAIA_XY_Z) gaia = gaiaAllocGeomCollXYZ (); else if (dimension_model == GAIA_XY_M) gaia = gaiaAllocGeomCollXYM (); else if (dimension_model == GAIA_XY_Z_M) gaia = gaiaAllocGeomCollXYZM (); else gaia = gaiaAllocGeomColl (); gaia->DeclaredType = GAIA_POLYGON; gaia->Srid = GEOSGetSRID (geos); /* exterior ring */ holes = GEOSGetNumInteriorRings (geos); geos_ring = GEOSGetExteriorRing (geos); cs = GEOSGeom_getCoordSeq (geos_ring); GEOSCoordSeq_getDimensions (cs, &dims); GEOSCoordSeq_getSize (cs, &points); pg = gaiaAddPolygonToGeomColl (gaia, points, holes); rng = pg->Exterior; for (iv = 0; iv < (int) points; iv++) { if (dims == 3) { GEOSCoordSeq_getX (cs, iv, &x); GEOSCoordSeq_getY (cs, iv, &y); GEOSCoordSeq_getZ (cs, iv, &z); } else { GEOSCoordSeq_getX (cs, iv, &x); GEOSCoordSeq_getY (cs, iv, &y); z = 0.0; } if (dimension_model == GAIA_XY_Z) { gaiaSetPointXYZ (rng->Coords, iv, x, y, z); } else if (dimension_model == GAIA_XY_M) { gaiaSetPointXYM (rng->Coords, iv, x, y, 0.0); } else if (dimension_model == GAIA_XY_Z_M) { gaiaSetPointXYZM (rng->Coords, iv, x, y, z, 0.0); } else { gaiaSetPoint (rng->Coords, iv, x, y); } } for (ib = 0; ib < holes; ib++) { /* interior rings */ geos_ring = GEOSGetInteriorRingN (geos, ib); cs = GEOSGeom_getCoordSeq (geos_ring); GEOSCoordSeq_getDimensions (cs, &dims); GEOSCoordSeq_getSize (cs, &points); rng = gaiaAddInteriorRing (pg, ib, points); for (iv = 0; iv < (int) points; iv++) { if (dims == 3) { GEOSCoordSeq_getX (cs, iv, &x); GEOSCoordSeq_getY (cs, iv, &y); GEOSCoordSeq_getZ (cs, iv, &z); } else { GEOSCoordSeq_getX (cs, iv, &x); GEOSCoordSeq_getY (cs, iv, &y); z = 0.0; } if (dimension_model == GAIA_XY_Z) { gaiaSetPointXYZ (rng->Coords, iv, x, y, z); } else if (dimension_model == GAIA_XY_M) { gaiaSetPointXYM (rng->Coords, iv, x, y, 0.0); } else if (dimension_model == GAIA_XY_Z_M) { gaiaSetPointXYZM (rng->Coords, iv, x, y, z, 0.0); } else { gaiaSetPoint (rng->Coords, iv, x, y); } } } break; case GEOS_MULTIPOINT: case GEOS_MULTILINESTRING: case GEOS_MULTIPOLYGON: case GEOS_GEOMETRYCOLLECTION: if (dimension_model == GAIA_XY_Z) gaia = gaiaAllocGeomCollXYZ (); else if (dimension_model == GAIA_XY_M) gaia = gaiaAllocGeomCollXYM (); else if (dimension_model == GAIA_XY_Z_M) gaia = gaiaAllocGeomCollXYZM (); else gaia = gaiaAllocGeomColl (); if (type == GEOS_MULTIPOINT) gaia->DeclaredType = GAIA_MULTIPOINT; else if (type == GEOS_MULTILINESTRING) gaia->DeclaredType = GAIA_MULTILINESTRING; else if (type == GEOS_MULTIPOLYGON) gaia->DeclaredType = GAIA_MULTIPOLYGON; else gaia->DeclaredType = GAIA_GEOMETRYCOLLECTION; gaia->Srid = GEOSGetSRID (geos); nItems = GEOSGetNumGeometries (geos); for (it = 0; it < nItems; it++) { /* looping on elementaty geometries */ geos_item = GEOSGetGeometryN (geos, it); itemType = GEOSGeomTypeId (geos_item); switch (itemType) { case GEOS_POINT: cs = GEOSGeom_getCoordSeq (geos_item); GEOSCoordSeq_getDimensions (cs, &dims); if (dims == 3) { GEOSCoordSeq_getX (cs, 0, &x); GEOSCoordSeq_getY (cs, 0, &y); GEOSCoordSeq_getZ (cs, 0, &z); } else { GEOSCoordSeq_getX (cs, 0, &x); GEOSCoordSeq_getY (cs, 0, &y); z = 0.0; } if (dimension_model == GAIA_XY_Z) gaiaAddPointToGeomCollXYZ (gaia, x, y, z); else if (dimension_model == GAIA_XY_M) gaiaAddPointToGeomCollXYM (gaia, x, y, 0.0); else if (dimension_model == GAIA_XY_Z_M) gaiaAddPointToGeomCollXYZM (gaia, x, y, z, 0.0); else gaiaAddPointToGeomColl (gaia, x, y); break; case GEOS_LINESTRING: cs = GEOSGeom_getCoordSeq (geos_item); GEOSCoordSeq_getDimensions (cs, &dims); GEOSCoordSeq_getSize (cs, &points); ln = gaiaAddLinestringToGeomColl (gaia, points); for (iv = 0; iv < (int) points; iv++) { if (dims == 3) { GEOSCoordSeq_getX (cs, iv, &x); GEOSCoordSeq_getY (cs, iv, &y); GEOSCoordSeq_getZ (cs, iv, &z); } else { GEOSCoordSeq_getX (cs, iv, &x); GEOSCoordSeq_getY (cs, iv, &y); z = 0.0; } if (dimension_model == GAIA_XY_Z) { gaiaSetPointXYZ (ln->Coords, iv, x, y, z); } else if (dimension_model == GAIA_XY_M) { gaiaSetPointXYM (ln->Coords, iv, x, y, 0.0); } else if (dimension_model == GAIA_XY_Z_M) { gaiaSetPointXYZM (ln->Coords, iv, x, y, z, 0.0); } else { gaiaSetPoint (ln->Coords, iv, x, y); } } break; case GEOS_MULTILINESTRING: nSubItems = GEOSGetNumGeometries (geos_item); for (sub_it = 0; sub_it < nSubItems; sub_it++) { /* looping on elementaty geometries */ geos_sub_item = GEOSGetGeometryN (geos_item, sub_it); cs = GEOSGeom_getCoordSeq (geos_sub_item); GEOSCoordSeq_getDimensions (cs, &dims); GEOSCoordSeq_getSize (cs, &points); ln = gaiaAddLinestringToGeomColl (gaia, points); for (iv = 0; iv < (int) points; iv++) { if (dims == 3) { GEOSCoordSeq_getX (cs, iv, &x); GEOSCoordSeq_getY (cs, iv, &y); GEOSCoordSeq_getZ (cs, iv, &z); } else { GEOSCoordSeq_getX (cs, iv, &x); GEOSCoordSeq_getY (cs, iv, &y); z = 0.0; } if (dimension_model == GAIA_XY_Z) { gaiaSetPointXYZ (ln->Coords, iv, x, y, z); } else if (dimension_model == GAIA_XY_M) { gaiaSetPointXYM (ln->Coords, iv, x, y, 0.0); } else if (dimension_model == GAIA_XY_Z_M) { gaiaSetPointXYZM (ln->Coords, iv, x, y, z, 0.0); } else { gaiaSetPoint (ln->Coords, iv, x, y); } } } break; case GEOS_POLYGON: /* exterior ring */ holes = GEOSGetNumInteriorRings (geos_item); geos_ring = GEOSGetExteriorRing (geos_item); cs = GEOSGeom_getCoordSeq (geos_ring); GEOSCoordSeq_getDimensions (cs, &dims); GEOSCoordSeq_getSize (cs, &points); pg = gaiaAddPolygonToGeomColl (gaia, points, holes); rng = pg->Exterior; for (iv = 0; iv < (int) points; iv++) { if (dims == 3) { GEOSCoordSeq_getX (cs, iv, &x); GEOSCoordSeq_getY (cs, iv, &y); GEOSCoordSeq_getZ (cs, iv, &z); } else { GEOSCoordSeq_getX (cs, iv, &x); GEOSCoordSeq_getY (cs, iv, &y); z = 0.0; } if (dimension_model == GAIA_XY_Z) { gaiaSetPointXYZ (rng->Coords, iv, x, y, z); } else if (dimension_model == GAIA_XY_M) { gaiaSetPointXYM (rng->Coords, iv, x, y, 0.0); } else if (dimension_model == GAIA_XY_Z_M) { gaiaSetPointXYZM (rng->Coords, iv, x, y, z, 0.0); } else { gaiaSetPoint (rng->Coords, iv, x, y); } } for (ib = 0; ib < holes; ib++) { /* interior rings */ geos_ring = GEOSGetInteriorRingN (geos_item, ib); cs = GEOSGeom_getCoordSeq (geos_ring); GEOSCoordSeq_getDimensions (cs, &dims); GEOSCoordSeq_getSize (cs, &points); rng = gaiaAddInteriorRing (pg, ib, points); for (iv = 0; iv < (int) points; iv++) { if (dims == 3) { GEOSCoordSeq_getX (cs, iv, &x); GEOSCoordSeq_getY (cs, iv, &y); GEOSCoordSeq_getZ (cs, iv, &z); } else { GEOSCoordSeq_getX (cs, iv, &x); GEOSCoordSeq_getY (cs, iv, &y); z = 0.0; } if (dimension_model == GAIA_XY_Z) { gaiaSetPointXYZ (rng->Coords, iv, x, y, z); } else if (dimension_model == GAIA_XY_M) { gaiaSetPointXYM (rng->Coords, iv, x, y, 0.0); } else if (dimension_model == GAIA_XY_Z_M) { gaiaSetPointXYZM (rng->Coords, iv, x, y, z, 0.0); } else { gaiaSetPoint (rng->Coords, iv, x, y); } } } break; }; } break; }; return gaia; } GAIAGEO_DECLARE void * gaiaToGeos (const gaiaGeomCollPtr gaia) { /* converting a GAIA Geometry into a GEOS Geometry */ return toGeosGeometry (gaia, GAIA2GEOS_ALL); } GAIAGEO_DECLARE void * gaiaToGeosSelective (const gaiaGeomCollPtr gaia, int mode) { /* converting a GAIA Geometry into a GEOS Geometry (selected type) */ if (mode == GAIA2GEOS_ONLY_POINTS || mode == GAIA2GEOS_ONLY_LINESTRINGS || mode == GAIA2GEOS_ONLY_POLYGONS) ; else mode = GAIA2GEOS_ALL; return toGeosGeometry (gaia, mode); } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XY (const void *xgeos) { /* converting a GEOS Geometry into a GAIA Geometry [XY] */ const GEOSGeometry *geos = xgeos; return fromGeosGeometry (geos, GAIA_XY); } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYZ (const void *xgeos) { /* converting a GEOS Geometry into a GAIA Geometry [XYZ] */ const GEOSGeometry *geos = xgeos; return fromGeosGeometry (geos, GAIA_XY_Z); } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYM (const void *xgeos) { /* converting a GEOS Geometry into a GAIA Geometry [XYM] */ const GEOSGeometry *geos = xgeos; return fromGeosGeometry (geos, GAIA_XY_M); } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYZM (const void *xgeos) { /* converting a GEOS Geometry into a GAIA Geometry [XYZM] */ const GEOSGeometry *geos = xgeos; return fromGeosGeometry (geos, GAIA_XY_Z_M); } #endif /* end including GEOS */ ����������������������������������������������������������������������������������������libspatialite-4.1.1/src/gaiageo/gg_relations.c������������������������������������������������������0000664�0001750�0001750�00000351601�12163502133�016274� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* gg_relations.c -- Gaia spatial relations version 4.1, 2013 May 8 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include <sys/types.h> #include <stdlib.h> #include <stdio.h> #include <string.h> #include <float.h> #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #ifndef OMIT_GEOS /* including GEOS */ #include <geos_c.h> #endif #include <spatialite_private.h> #include <spatialite/sqlite.h> #include <spatialite/gaiageo.h> /* GLOBAL variables */ char *gaia_geos_error_msg = NULL; char *gaia_geos_warning_msg = NULL; char *gaia_geosaux_error_msg = NULL; SPATIALITE_PRIVATE void splite_free_geos_cache_item (struct splite_geos_cache_item *p) { #ifndef OMIT_GEOS /* including GEOS */ if (p->preparedGeosGeom) GEOSPreparedGeom_destroy (p->preparedGeosGeom); if (p->geosGeom) GEOSGeom_destroy (p->geosGeom); #endif p->geosGeom = NULL; p->preparedGeosGeom = NULL; } GAIAGEO_DECLARE void gaiaResetGeosMsg () { /* resets the GEOS error and warning messages */ if (gaia_geos_error_msg != NULL) free (gaia_geos_error_msg); if (gaia_geos_warning_msg != NULL) free (gaia_geos_warning_msg); if (gaia_geosaux_error_msg != NULL) free (gaia_geosaux_error_msg); gaia_geos_error_msg = NULL; gaia_geos_warning_msg = NULL; gaia_geosaux_error_msg = NULL; } GAIAGEO_DECLARE const char * gaiaGetGeosErrorMsg () { /* return the latest GEOS error message */ return gaia_geos_error_msg; } GAIAGEO_DECLARE const char * gaiaGetGeosWarningMsg () { /* return the latest GEOS error message */ return gaia_geos_warning_msg; } GAIAGEO_DECLARE const char * gaiaGetGeosAuxErrorMsg () { /* return the latest GEOS (auxialiary) error message */ return gaia_geosaux_error_msg; } GAIAGEO_DECLARE void gaiaSetGeosErrorMsg (const char *msg) { /* return the latest GEOS error message */ int len; if (gaia_geos_error_msg != NULL) free (gaia_geos_error_msg); gaia_geos_error_msg = NULL; if (msg == NULL) return; len = strlen (msg); gaia_geos_error_msg = malloc (len + 1); strcpy (gaia_geos_error_msg, msg); } GAIAGEO_DECLARE void gaiaSetGeosWarningMsg (const char *msg) { /* return the latest GEOS error message */ int len; if (gaia_geos_warning_msg != NULL) free (gaia_geos_warning_msg); gaia_geos_warning_msg = NULL; if (msg == NULL) return; len = strlen (msg); gaia_geos_warning_msg = malloc (len + 1); strcpy (gaia_geos_warning_msg, msg); } GAIAGEO_DECLARE void gaiaSetGeosAuxErrorMsg (const char *msg) { /* return the latest GEOS (auxiliary) error message */ int len; if (gaia_geosaux_error_msg != NULL) free (gaia_geosaux_error_msg); gaia_geosaux_error_msg = NULL; if (msg == NULL) return; len = strlen (msg); gaia_geosaux_error_msg = malloc (len + 1); strcpy (gaia_geosaux_error_msg, msg); } static int check_point (double *coords, int points, double x, double y) { /* checks if [X,Y] point is defined into this coordinate array [Linestring or Ring] */ int iv; double xx; double yy; for (iv = 0; iv < points; iv++) { gaiaGetPoint (coords, iv, &xx, &yy); if (xx == x && yy == y) return 1; } return 0; } GAIAGEO_DECLARE int gaiaLinestringEquals (gaiaLinestringPtr line1, gaiaLinestringPtr line2) { /* checks if two Linestrings are "spatially equal" */ int iv; double x; double y; if (line1->Points != line2->Points) return 0; for (iv = 0; iv < line1->Points; iv++) { gaiaGetPoint (line1->Coords, iv, &x, &y); if (!check_point (line2->Coords, line2->Points, x, y)) return 0; } return 1; } GAIAGEO_DECLARE int gaiaPolygonEquals (gaiaPolygonPtr polyg1, gaiaPolygonPtr polyg2) { /* checks if two Polygons are "spatially equal" */ int ib; int ib2; int iv; int ok2; double x; double y; gaiaRingPtr ring1; gaiaRingPtr ring2; if (polyg1->NumInteriors != polyg2->NumInteriors) return 0; /* checking the EXTERIOR RINGs */ ring1 = polyg1->Exterior; ring2 = polyg2->Exterior; if (ring1->Points != ring2->Points) return 0; for (iv = 0; iv < ring1->Points; iv++) { gaiaGetPoint (ring1->Coords, iv, &x, &y); if (!check_point (ring2->Coords, ring2->Points, x, y)) return 0; } for (ib = 0; ib < polyg1->NumInteriors; ib++) { /* checking the INTERIOR RINGS */ int ok = 0; ring1 = polyg1->Interiors + ib; for (ib2 = 0; ib2 < polyg2->NumInteriors; ib2++) { ok2 = 1; ring2 = polyg2->Interiors + ib2; for (iv = 0; iv < ring1->Points; iv++) { gaiaGetPoint (ring1->Coords, iv, &x, &y); if (!check_point (ring2->Coords, ring2->Points, x, y)) { ok2 = 0; break; } } if (ok2) { ok = 1; break; } } if (!ok) return 0; } return 1; } #ifndef OMIT_GEOS /* including GEOS */ static int splite_mbr_overlaps (gaiaGeomCollPtr g1, gaiaGeomCollPtr g2) { /* checks if two MBRs do overlap */ if (g1->MaxX < g2->MinX) return 0; if (g1->MinX > g2->MaxX) return 0; if (g1->MaxY < g2->MinY) return 0; if (g1->MinY > g2->MaxY) return 0; return 1; } static int splite_mbr_contains (gaiaGeomCollPtr g1, gaiaGeomCollPtr g2) { /* checks if MBR#1 fully contains MBR#2 */ if (g2->MinX < g1->MinX) return 0; if (g2->MaxX > g1->MaxX) return 0; if (g2->MinY < g1->MinY) return 0; if (g2->MaxY > g1->MaxY) return 0; return 1; } static int splite_mbr_within (gaiaGeomCollPtr g1, gaiaGeomCollPtr g2) { /* checks if MBR#1 is fully contained within MBR#2 */ if (g1->MinX < g2->MinX) return 0; if (g1->MaxX > g2->MaxX) return 0; if (g1->MinY < g2->MinY) return 0; if (g1->MaxY > g2->MaxY) return 0; return 1; } static int splite_mbr_equals (gaiaGeomCollPtr g1, gaiaGeomCollPtr g2) { /* checks if MBR#1 equals MBR#2 */ if (g1->MinX != g2->MinX) return 0; if (g1->MaxX != g2->MaxX) return 0; if (g1->MinY != g2->MinY) return 0; if (g1->MaxY != g2->MaxY) return 0; return 1; } static int evalGeosCacheItem (unsigned char *blob, int blob_size, uLong crc, struct splite_geos_cache_item *p) { /* evaluting if this one could be a valid cache hit */ if (blob_size != p->gaiaBlobSize) { /* surely not a match; different size */ return 0; } if (crc != p->crc32) { /* surely not a match: different CRC32 */ return 0; } /* the first 46 bytes of the BLOB contain the MBR, the SRID and the Type; so are assumed to represent a valid signature */ if (memcmp (blob, p->gaiaBlob, 46) == 0) return 1; return 0; } static int evalGeosCache (struct splite_internal_cache *cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2, GEOSPreparedGeometry ** gPrep, gaiaGeomCollPtr * geom) { /* handling the internal GEOS cache */ #ifdef GEOS_ADVANCED /* only if GEOS advanced features are enable */ struct splite_geos_cache_item *p1 = &(cache->cacheItem1); struct splite_geos_cache_item *p2 = &(cache->cacheItem2); uLong crc1 = crc32 (0L, blob1, size1); uLong crc2 = crc32 (0L, blob2, size2); /* checking the first cache item */ if (evalGeosCacheItem (blob1, size1, crc1, p1)) { /* found a matching item */ if (p1->preparedGeosGeom == NULL) { /* preparing the GeosGeometries */ p1->geosGeom = gaiaToGeos (geom1); if (p1->geosGeom) { p1->preparedGeosGeom = (void *) GEOSPrepare (p1->geosGeom); if (p1->preparedGeosGeom == NULL) { /* unexpected failure */ GEOSGeom_destroy (p1->geosGeom); p1->geosGeom = NULL; } } } if (p1->preparedGeosGeom) { /* returning the corresponding GeosPreparedGeometry */ *gPrep = p1->preparedGeosGeom; *geom = geom2; return 1; } return 0; } /* checking the second cache item */ if (evalGeosCacheItem (blob2, size2, crc2, p2)) { /* found a matching item */ if (p2->preparedGeosGeom == NULL) { /* preparing the GeosGeometries */ p2->geosGeom = gaiaToGeos (geom2); if (p2->geosGeom) { p2->preparedGeosGeom = (void *) GEOSPrepare (p2->geosGeom); if (p2->preparedGeosGeom == NULL) { /* unexpected failure */ GEOSGeom_destroy (p2->geosGeom); p2->geosGeom = NULL; } } } if (p2->preparedGeosGeom) { /* returning the corresponding GeosPreparedGeometry */ *gPrep = p2->preparedGeosGeom; *geom = geom1; return 1; } return 0; } /* updating the GEOS cache item#1 */ memcpy (p1->gaiaBlob, blob1, 46); p1->gaiaBlobSize = size1; p1->crc32 = crc1; if (p1->preparedGeosGeom) GEOSPreparedGeom_destroy (p1->preparedGeosGeom); if (p1->geosGeom) GEOSGeom_destroy (p1->geosGeom); p1->geosGeom = NULL; p1->preparedGeosGeom = NULL; /* updating the GEOS cache item#2 */ memcpy (p2->gaiaBlob, blob2, 46); p2->gaiaBlobSize = size2; p2->crc32 = crc2; if (p2->preparedGeosGeom) GEOSPreparedGeom_destroy (p2->preparedGeosGeom); if (p2->geosGeom) GEOSGeom_destroy (p2->geosGeom); p2->geosGeom = NULL; p2->preparedGeosGeom = NULL; #endif /* end GEOS_ADVANCED */ return 0; } GAIAGEO_DECLARE int gaiaGeomCollEquals (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { /* checks if two Geometries are "spatially equal" */ int ret; GEOSGeometry *g1; GEOSGeometry *g2; if (!geom1 || !geom2) return -1; if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) return -1; /* quick check based on MBRs comparison */ if (!splite_mbr_equals (geom1, geom2)) return 0; g1 = gaiaToGeos (geom1); g2 = gaiaToGeos (geom2); ret = GEOSEquals (g1, g2); GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); return ret; } GAIAGEO_DECLARE int gaiaGeomCollIntersects (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { /* checks if two Geometries do "spatially intersects" */ int ret; GEOSGeometry *g1; GEOSGeometry *g2; if (!geom1 || !geom2) return -1; if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) return -1; /* quick check based on MBRs comparison */ if (!splite_mbr_overlaps (geom1, geom2)) return 0; g1 = gaiaToGeos (geom1); g2 = gaiaToGeos (geom2); ret = GEOSIntersects (g1, g2); GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); return ret; } #ifdef GEOS_ADVANCED /* only if GEOS advanced features are enable */ GAIAGEO_DECLARE int gaiaGeomCollPreparedIntersects (void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2) { /* checks if two Geometries do "spatially intersects" */ int ret; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSPreparedGeometry *gPrep; GEOSGeometry *g1; GEOSGeometry *g2; gaiaGeomCollPtr geom; if (!geom1 || !geom2) return -1; if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) return -1; /* quick check based on MBRs comparison */ if (!splite_mbr_overlaps (geom1, geom2)) return 0; /* handling the internal GEOS cache */ if (evalGeosCache (cache, geom1, blob1, size1, geom2, blob2, size2, &gPrep, &geom)) { g2 = gaiaToGeos (geom); ret = GEOSPreparedIntersects (gPrep, g2); GEOSGeom_destroy (g2); return ret; } g1 = gaiaToGeos (geom1); g2 = gaiaToGeos (geom2); ret = GEOSIntersects (g1, g2); GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); return ret; } #endif /* end GEOS_ADVANCED */ GAIAGEO_DECLARE int gaiaGeomCollDisjoint (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { /* checks if two Geometries are "spatially disjoint" */ int ret; GEOSGeometry *g1; GEOSGeometry *g2; if (!geom1 || !geom2) return -1; if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) return -1; /* quick check based on MBRs comparison */ if (!splite_mbr_overlaps (geom1, geom2)) return 1; g1 = gaiaToGeos (geom1); g2 = gaiaToGeos (geom2); ret = GEOSDisjoint (g1, g2); GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); return ret; } #ifdef GEOS_ADVANCED /* only if GEOS advanced features are enable */ GAIAGEO_DECLARE int gaiaGeomCollPreparedDisjoint (void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2) { /* checks if two Geometries are "spatially disjoint" */ int ret; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSPreparedGeometry *gPrep; GEOSGeometry *g1; GEOSGeometry *g2; gaiaGeomCollPtr geom; if (!geom1 || !geom2) return -1; if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) return -1; /* quick check based on MBRs comparison */ if (!splite_mbr_overlaps (geom1, geom2)) return 1; /* handling the internal GEOS cache */ if (evalGeosCache (cache, geom1, blob1, size1, geom2, blob2, size2, &gPrep, &geom)) { g2 = gaiaToGeos (geom); ret = GEOSPreparedDisjoint (gPrep, g2); GEOSGeom_destroy (g2); return ret; } g1 = gaiaToGeos (geom1); g2 = gaiaToGeos (geom2); ret = GEOSDisjoint (g1, g2); GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); return ret; } #endif /* end GEOS_ADVANCED */ GAIAGEO_DECLARE int gaiaGeomCollOverlaps (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { /* checks if two Geometries do "spatially overlaps" */ int ret; GEOSGeometry *g1; GEOSGeometry *g2; if (!geom1 || !geom2) return -1; if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) return -1; /* quick check based on MBRs comparison */ if (!splite_mbr_overlaps (geom1, geom2)) return 0; g1 = gaiaToGeos (geom1); g2 = gaiaToGeos (geom2); ret = GEOSOverlaps (g1, g2); GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); return ret; } #ifdef GEOS_ADVANCED /* only if GEOS advanced features are enable */ GAIAGEO_DECLARE int gaiaGeomCollPreparedOverlaps (void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2) { /* checks if two Geometries do "spatially overlaps" */ int ret; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSPreparedGeometry *gPrep; GEOSGeometry *g1; GEOSGeometry *g2; gaiaGeomCollPtr geom; if (!geom1 || !geom2) return -1; if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) return -1; /* quick check based on MBRs comparison */ if (!splite_mbr_overlaps (geom1, geom2)) return 0; /* handling the internal GEOS cache */ if (evalGeosCache (cache, geom1, blob1, size1, geom2, blob2, size2, &gPrep, &geom)) { g2 = gaiaToGeos (geom); ret = GEOSPreparedOverlaps (gPrep, g2); GEOSGeom_destroy (g2); return ret; } g1 = gaiaToGeos (geom1); g2 = gaiaToGeos (geom2); ret = GEOSOverlaps (g1, g2); GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); return ret; } #endif /* end GEOS_ADVANCED */ GAIAGEO_DECLARE int gaiaGeomCollCrosses (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { /* checks if two Geometries do "spatially crosses" */ int ret; GEOSGeometry *g1; GEOSGeometry *g2; if (!geom1 || !geom2) return -1; if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) return -1; /* quick check based on MBRs comparison */ if (!splite_mbr_overlaps (geom1, geom2)) return 0; g1 = gaiaToGeos (geom1); g2 = gaiaToGeos (geom2); ret = GEOSCrosses (g1, g2); GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); return ret; } #ifdef GEOS_ADVANCED /* only if GEOS advanced features are enable */ GAIAGEO_DECLARE int gaiaGeomCollPreparedCrosses (void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2) { /* checks if two Geometries do "spatially crosses" */ int ret; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSPreparedGeometry *gPrep; GEOSGeometry *g1; GEOSGeometry *g2; gaiaGeomCollPtr geom; if (!geom1 || !geom2) return -1; if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) return -1; /* quick check based on MBRs comparison */ if (!splite_mbr_overlaps (geom1, geom2)) return 0; /* handling the internal GEOS cache */ if (evalGeosCache (cache, geom1, blob1, size1, geom2, blob2, size2, &gPrep, &geom)) { g2 = gaiaToGeos (geom); ret = GEOSPreparedCrosses (gPrep, g2); GEOSGeom_destroy (g2); return ret; } g1 = gaiaToGeos (geom1); g2 = gaiaToGeos (geom2); ret = GEOSCrosses (g1, g2); GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); return ret; } #endif /* end GEOS_ADVANCED */ GAIAGEO_DECLARE int gaiaGeomCollTouches (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { /* checks if two Geometries do "spatially touches" */ int ret; GEOSGeometry *g1; GEOSGeometry *g2; if (!geom1 || !geom2) return -1; if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) return -1; /* quick check based on MBRs comparison */ if (!splite_mbr_overlaps (geom1, geom2)) return 0; g1 = gaiaToGeos (geom1); g2 = gaiaToGeos (geom2); ret = GEOSTouches (g1, g2); GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); return ret; } #ifdef GEOS_ADVANCED /* only if GEOS advanced features are enable */ GAIAGEO_DECLARE int gaiaGeomCollPreparedTouches (void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2) { /* checks if two Geometries do "spatially touches" */ int ret; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSGeometry *g1; GEOSGeometry *g2; GEOSPreparedGeometry *gPrep; gaiaGeomCollPtr geom; if (!geom1 || !geom2) return -1; if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) return -1; /* quick check based on MBRs comparison */ if (!splite_mbr_overlaps (geom1, geom2)) return 0; /* handling the internal GEOS cache */ if (evalGeosCache (cache, geom1, blob1, size1, geom2, blob2, size2, &gPrep, &geom)) { g2 = gaiaToGeos (geom); ret = GEOSPreparedTouches (gPrep, g2); GEOSGeom_destroy (g2); return ret; } g1 = gaiaToGeos (geom1); g2 = gaiaToGeos (geom2); ret = GEOSTouches (g1, g2); GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); return ret; } #endif /* end GEOS_ADVANCED */ GAIAGEO_DECLARE int gaiaGeomCollWithin (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { /* checks if GEOM-1 is completely contained within GEOM-2 */ int ret; GEOSGeometry *g1; GEOSGeometry *g2; if (!geom1 || !geom2) return -1; if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) return -1; /* quick check based on MBRs comparison */ if (!splite_mbr_within (geom1, geom2)) return 0; g1 = gaiaToGeos (geom1); g2 = gaiaToGeos (geom2); ret = GEOSWithin (g1, g2); GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); return ret; } #ifdef GEOS_ADVANCED /* only if GEOS advanced features are enable */ GAIAGEO_DECLARE int gaiaGeomCollPreparedWithin (void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2) { /* checks if GEOM-1 is completely contained within GEOM-2 */ int ret; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSPreparedGeometry *gPrep; GEOSGeometry *g1; GEOSGeometry *g2; gaiaGeomCollPtr geom; if (!geom1 || !geom2) return -1; if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) return -1; /* quick check based on MBRs comparison */ if (!splite_mbr_within (geom1, geom2)) return 0; /* handling the internal GEOS cache */ if (evalGeosCache (cache, geom1, blob1, size1, geom2, blob2, size2, &gPrep, &geom)) { g2 = gaiaToGeos (geom); if (geom == geom2) ret = GEOSPreparedWithin (gPrep, g2); else ret = GEOSPreparedContains (gPrep, g2); GEOSGeom_destroy (g2); return ret; } g1 = gaiaToGeos (geom1); g2 = gaiaToGeos (geom2); ret = GEOSWithin (g1, g2); GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); return ret; } #endif /* end GEOS_ADVANCED */ GAIAGEO_DECLARE int gaiaGeomCollContains (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { /* checks if GEOM-1 completely contains GEOM-2 */ int ret; GEOSGeometry *g1; GEOSGeometry *g2; if (!geom1 || !geom2) return -1; if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) return -1; /* quick check based on MBRs comparison */ if (!splite_mbr_contains (geom1, geom2)) return 0; g1 = gaiaToGeos (geom1); g2 = gaiaToGeos (geom2); ret = GEOSContains (g1, g2); GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); return ret; } #ifdef GEOS_ADVANCED /* only if GEOS advanced features are enable */ GAIAGEO_DECLARE int gaiaGeomCollPreparedContains (void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2) { /* checks if GEOM-1 completely contains GEOM-2 */ int ret; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSPreparedGeometry *gPrep; GEOSGeometry *g1; GEOSGeometry *g2; gaiaGeomCollPtr geom; if (!geom1 || !geom2) return -1; if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) return -1; /* quick check based on MBRs comparison */ if (!splite_mbr_contains (geom1, geom2)) return 0; /* handling the internal GEOS cache */ if (evalGeosCache (cache, geom1, blob1, size1, geom2, blob2, size2, &gPrep, &geom)) { g2 = gaiaToGeos (geom); if (geom == geom2) ret = GEOSPreparedContains (gPrep, g2); else ret = GEOSPreparedWithin (gPrep, g2); GEOSGeom_destroy (g2); return ret; } g1 = gaiaToGeos (geom1); g2 = gaiaToGeos (geom2); ret = GEOSContains (g1, g2); GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); return ret; } #endif /* end GEOS_ADVANCED */ GAIAGEO_DECLARE int gaiaGeomCollRelate (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, const char *pattern) { /* checks if if GEOM-1 and GEOM-2 have a spatial relationship as specified by the pattern Matrix */ int ret; GEOSGeometry *g1; GEOSGeometry *g2; if (!geom1 || !geom2) return -1; if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) return -1; g1 = gaiaToGeos (geom1); g2 = gaiaToGeos (geom2); ret = GEOSRelatePattern (g1, g2, pattern); GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); if (ret == 2) return -1; return ret; } GAIAGEO_DECLARE int gaiaGeomCollLength (gaiaGeomCollPtr geom, double *xlength) { /* computes the total length for this Geometry */ double length; int ret; GEOSGeometry *g; if (!geom) return 0; if (gaiaIsToxic (geom)) return 0; g = gaiaToGeos (geom); ret = GEOSLength (g, &length); GEOSGeom_destroy (g); if (ret) *xlength = length; return ret; } GAIAGEO_DECLARE int gaiaGeomCollLengthOrPerimeter (gaiaGeomCollPtr geom, int perimeter, double *xlength) { /* computes the total length or perimeter for this Geometry */ double length; int ret; GEOSGeometry *g; int mode = GAIA2GEOS_ONLY_LINESTRINGS; if (perimeter) mode = GAIA2GEOS_ONLY_POLYGONS; if (!geom) return 0; if (gaiaIsToxic (geom)) return 0; g = gaiaToGeosSelective (geom, mode); if (g == NULL) { *xlength = 0.0; return 1; } ret = GEOSLength (g, &length); GEOSGeom_destroy (g); if (ret) *xlength = length; return ret; } GAIAGEO_DECLARE int gaiaGeomCollArea (gaiaGeomCollPtr geom, double *xarea) { /* computes the total area for this Geometry */ double area; int ret; GEOSGeometry *g; if (!geom) return 0; if (gaiaIsToxic (geom)) return 0; g = gaiaToGeos (geom); ret = GEOSArea (g, &area); GEOSGeom_destroy (g); if (ret) *xarea = area; return ret; } GAIAGEO_DECLARE int gaiaGeomCollDistance (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *xdist) { /* computes the minimum distance intercurring between GEOM-1 and GEOM-2 */ double dist; int ret; GEOSGeometry *g1; GEOSGeometry *g2; if (!geom1 || !geom2) return 0; if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) return 0; g1 = gaiaToGeos (geom1); g2 = gaiaToGeos (geom2); ret = GEOSDistance (g1, g2, &dist); GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); if (ret) *xdist = dist; return ret; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryIntersection (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { /* builds a new geometry representing the "spatial intersection" of GEOM-1 and GEOM-2 */ gaiaGeomCollPtr geo; GEOSGeometry *g1; GEOSGeometry *g2; GEOSGeometry *g3; if (!geom1 || !geom2) return NULL; if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) return NULL; /* quick check based on MBRs comparison */ if (!splite_mbr_overlaps (geom1, geom2)) return NULL; g1 = gaiaToGeos (geom1); g2 = gaiaToGeos (geom2); g3 = GEOSIntersection (g1, g2); GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); if (!g3) return NULL; if (geom1->DimensionModel == GAIA_XY_Z) geo = gaiaFromGeos_XYZ (g3); else if (geom1->DimensionModel == GAIA_XY_M) geo = gaiaFromGeos_XYM (g3); else if (geom1->DimensionModel == GAIA_XY_Z_M) geo = gaiaFromGeos_XYZM (g3); else geo = gaiaFromGeos_XY (g3); GEOSGeom_destroy (g3); if (geo == NULL) return NULL; geo->Srid = geom1->Srid; return geo; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryUnion (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { /* builds a new geometry representing the "spatial union" of GEOM-1 and GEOM-2 */ gaiaGeomCollPtr geo; GEOSGeometry *g1; GEOSGeometry *g2; GEOSGeometry *g3; if (!geom1 || !geom2) return NULL; if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) return NULL; g1 = gaiaToGeos (geom1); g2 = gaiaToGeos (geom2); g3 = GEOSUnion (g1, g2); GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); if (geom1->DimensionModel == GAIA_XY_Z) geo = gaiaFromGeos_XYZ (g3); else if (geom1->DimensionModel == GAIA_XY_M) geo = gaiaFromGeos_XYM (g3); else if (geom1->DimensionModel == GAIA_XY_Z_M) geo = gaiaFromGeos_XYZM (g3); else geo = gaiaFromGeos_XY (g3); GEOSGeom_destroy (g3); if (geo == NULL) return NULL; geo->Srid = geom1->Srid; if (geo->DeclaredType == GAIA_POINT && geom1->DeclaredType == GAIA_MULTIPOINT) geo->DeclaredType = GAIA_MULTIPOINT; if (geo->DeclaredType == GAIA_LINESTRING && geom1->DeclaredType == GAIA_MULTILINESTRING) geo->DeclaredType = GAIA_MULTILINESTRING; if (geo->DeclaredType == GAIA_POLYGON && geom1->DeclaredType == GAIA_MULTIPOLYGON) geo->DeclaredType = GAIA_MULTIPOLYGON; return geo; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaUnionCascaded (gaiaGeomCollPtr geom) { /* UnionCascaded (single Collection of polygons) */ GEOSGeometry *g1; GEOSGeometry *g2; gaiaGeomCollPtr result; int pts = 0; int lns = 0; int pgs = 0; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; if (!geom) return NULL; if (gaiaIsToxic (geom)) return NULL; /* testing if geom only contains Polygons */ pt = geom->FirstPoint; while (pt) { pts++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { lns++; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { pgs++; pg = pg->Next; } if (pts || lns) return NULL; if (!pgs) return NULL; g1 = gaiaToGeos (geom); g2 = GEOSUnionCascaded (g1); GEOSGeom_destroy (g1); if (!g2) return NULL; if (geom->DimensionModel == GAIA_XY_Z) result = gaiaFromGeos_XYZ (g2); else if (geom->DimensionModel == GAIA_XY_M) result = gaiaFromGeos_XYM (g2); else if (geom->DimensionModel == GAIA_XY_Z_M) result = gaiaFromGeos_XYZM (g2); else result = gaiaFromGeos_XY (g2); GEOSGeom_destroy (g2); if (result == NULL) return NULL; result->Srid = geom->Srid; return result; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryDifference (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { /* builds a new geometry representing the "spatial difference" of GEOM-1 and GEOM-2 */ gaiaGeomCollPtr geo; GEOSGeometry *g1; GEOSGeometry *g2; GEOSGeometry *g3; if (!geom1 || !geom2) return NULL; if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) return NULL; g1 = gaiaToGeos (geom1); g2 = gaiaToGeos (geom2); g3 = GEOSDifference (g1, g2); GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); if (!g3) return NULL; if (geom1->DimensionModel == GAIA_XY_Z) geo = gaiaFromGeos_XYZ (g3); else if (geom1->DimensionModel == GAIA_XY_M) geo = gaiaFromGeos_XYM (g3); else if (geom1->DimensionModel == GAIA_XY_Z_M) geo = gaiaFromGeos_XYZM (g3); else geo = gaiaFromGeos_XY (g3); GEOSGeom_destroy (g3); if (geo == NULL) return NULL; geo->Srid = geom1->Srid; return geo; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometrySymDifference (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { /* builds a new geometry representing the "spatial symmetric difference" of GEOM-1 and GEOM-2 */ gaiaGeomCollPtr geo; GEOSGeometry *g1; GEOSGeometry *g2; GEOSGeometry *g3; if (!geom1 || !geom2) return NULL; if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) return NULL; g1 = gaiaToGeos (geom1); g2 = gaiaToGeos (geom2); g3 = GEOSSymDifference (g1, g2); GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); if (!g3) return NULL; if (geom1->DimensionModel == GAIA_XY_Z) geo = gaiaFromGeos_XYZ (g3); else if (geom1->DimensionModel == GAIA_XY_M) geo = gaiaFromGeos_XYM (g3); else if (geom1->DimensionModel == GAIA_XY_Z_M) geo = gaiaFromGeos_XYZM (g3); else geo = gaiaFromGeos_XY (g3); GEOSGeom_destroy (g3); if (geo == NULL) return NULL; geo->Srid = geom1->Srid; return geo; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaBoundary (gaiaGeomCollPtr geom) { /* builds a new geometry representing the combinatorial boundary of GEOM */ gaiaGeomCollPtr geo; GEOSGeometry *g1; GEOSGeometry *g2; if (!geom) return NULL; if (gaiaIsToxic (geom)) return NULL; g1 = gaiaToGeos (geom); g2 = GEOSBoundary (g1); GEOSGeom_destroy (g1); if (!g2) return NULL; if (geom->DimensionModel == GAIA_XY_Z) geo = gaiaFromGeos_XYZ (g2); else if (geom->DimensionModel == GAIA_XY_M) geo = gaiaFromGeos_XYM (g2); else if (geom->DimensionModel == GAIA_XY_Z_M) geo = gaiaFromGeos_XYZM (g2); else geo = gaiaFromGeos_XY (g2); GEOSGeom_destroy (g2); if (geo == NULL) return NULL; geo->Srid = geom->Srid; return geo; } GAIAGEO_DECLARE int gaiaGeomCollCentroid (gaiaGeomCollPtr geom, double *x, double *y) { /* returns a Point representing the centroid for this Geometry */ gaiaGeomCollPtr geo; GEOSGeometry *g1; GEOSGeometry *g2; if (!geom) return 0; if (gaiaIsToxic (geom)) { return 0; } g1 = gaiaToGeos (geom); g2 = GEOSGetCentroid (g1); GEOSGeom_destroy (g1); if (!g2) return 0; if (geom->DimensionModel == GAIA_XY_Z) geo = gaiaFromGeos_XYZ (g2); else if (geom->DimensionModel == GAIA_XY_M) geo = gaiaFromGeos_XYM (g2); else if (geom->DimensionModel == GAIA_XY_Z_M) geo = gaiaFromGeos_XYZM (g2); else geo = gaiaFromGeos_XY (g2); GEOSGeom_destroy (g2); if (geo == NULL) return 0; if (geo->FirstPoint) { *x = geo->FirstPoint->X; *y = geo->FirstPoint->Y; gaiaFreeGeomColl (geo); return 1; } gaiaFreeGeomColl (geo); return 0; } GAIAGEO_DECLARE int gaiaGetPointOnSurface (gaiaGeomCollPtr geom, double *x, double *y) { /* returns a Point guaranteed to lie on the Surface */ gaiaGeomCollPtr geo; GEOSGeometry *g1; GEOSGeometry *g2; if (!geom) return 0; if (gaiaIsToxic (geom)) { return 0; } g1 = gaiaToGeos (geom); g2 = GEOSPointOnSurface (g1); GEOSGeom_destroy (g1); if (!g2) return 0; if (geom->DimensionModel == GAIA_XY_Z) geo = gaiaFromGeos_XYZ (g2); else if (geom->DimensionModel == GAIA_XY_M) geo = gaiaFromGeos_XYM (g2); else if (geom->DimensionModel == GAIA_XY_Z_M) geo = gaiaFromGeos_XYZM (g2); else geo = gaiaFromGeos_XY (g2); GEOSGeom_destroy (g2); if (geo == NULL) return 0; if (geo->FirstPoint) { *x = geo->FirstPoint->X; *y = geo->FirstPoint->Y; gaiaFreeGeomColl (geo); return 1; } gaiaFreeGeomColl (geo); return 0; } GAIAGEO_DECLARE int gaiaIsSimple (gaiaGeomCollPtr geom) { /* checks if this GEOMETRYCOLLECTION is a simple one */ int ret; GEOSGeometry *g; if (!geom) return -1; if (gaiaIsToxic (geom)) return 0; g = gaiaToGeos (geom); ret = GEOSisSimple (g); GEOSGeom_destroy (g); if (ret == 2) return -1; return ret; } GAIAGEO_DECLARE int gaiaIsRing (gaiaLinestringPtr line) { /* checks if this LINESTRING can be a valid RING */ gaiaGeomCollPtr geo; gaiaLinestringPtr line2; int ret; int iv; double x; double y; double z; double m; GEOSGeometry *g; if (!line) return -1; if (line->DimensionModel == GAIA_XY_Z) geo = gaiaAllocGeomCollXYZ (); else if (line->DimensionModel == GAIA_XY_M) geo = gaiaAllocGeomCollXYM (); else if (line->DimensionModel == GAIA_XY_Z_M) geo = gaiaAllocGeomCollXYZM (); else geo = gaiaAllocGeomColl (); line2 = gaiaAddLinestringToGeomColl (geo, line->Points); for (iv = 0; iv < line2->Points; iv++) { z = 0.0; m = 0.0; if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } if (line2->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (line2->Coords, iv, x, y, z); } else if (line2->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (line2->Coords, iv, x, y, m); } else if (line2->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (line2->Coords, iv, x, y, z, m); } else { gaiaSetPoint (line2->Coords, iv, x, y); } } if (gaiaIsToxic (geo)) { gaiaFreeGeomColl (geo); return -1; } g = gaiaToGeos (geo); gaiaFreeGeomColl (geo); ret = GEOSisRing (g); GEOSGeom_destroy (g); if (ret == 2) return -1; return ret; } GAIAGEO_DECLARE int gaiaIsValid (gaiaGeomCollPtr geom) { /* checks if this GEOMETRYCOLLECTION is a valid one */ int ret; GEOSGeometry *g; gaiaResetGeosMsg (); if (!geom) return -1; if (gaiaIsToxic (geom)) return 0; if (gaiaIsNotClosedGeomColl (geom)) return 0; g = gaiaToGeos (geom); ret = GEOSisValid (g); GEOSGeom_destroy (g); if (ret == 2) return -1; return ret; } GAIAGEO_DECLARE int gaiaIsClosedGeom (gaiaGeomCollPtr geom) { /* checks if this geometry is a closed linestring (or multilinestring) */ int ret = 0; gaiaLinestringPtr ln; if (!geom) return -1; if (gaiaIsToxic (geom)) return 0; ln = geom->FirstLinestring; while (ln) { /* unhappily GEOS v3.2.2 [system package on Debian Lenny and Ubuntu 12.04] * doesn't exposes the GEOSisClosed() API at all !!!! * GEOSGeometry *g; gaiaGeomCollPtr geoColl = gaiaAllocGeomColl(); gaiaInsertLinestringInGeomColl(geoColl, gaiaCloneLinestring(ln)); g = gaiaToGeos (geoColl); ret = GEOSisClosed (g); GEOSGeom_destroy (g); gaiaFreeGeomColl(geoColl); */ /* so we'll use this internal default in order to circumvent the above issue */ double x1; double y1; double z1; double m1; double x2; double y2; double z2; double m2; gaiaLineGetPoint (ln, 0, &x1, &y1, &z1, &m1); gaiaLineGetPoint (ln, ln->Points - 1, &x2, &y2, &z2, &m2); if (x1 == x2 && y1 == y2 && z1 == z2) ret = 1; else ret = 0; if (ret == 0) { /* this line isn't closed, so we don't need to continue */ break; } ln = ln->Next; } if (ret == 2) return -1; return ret; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollSimplify (gaiaGeomCollPtr geom, double tolerance) { /* builds a simplified geometry using the Douglas-Peuker algorihtm */ gaiaGeomCollPtr geo; GEOSGeometry *g1; GEOSGeometry *g2; if (!geom) return NULL; if (gaiaIsToxic (geom)) return NULL; g1 = gaiaToGeos (geom); g2 = GEOSSimplify (g1, tolerance); GEOSGeom_destroy (g1); if (!g2) return NULL; if (geom->DimensionModel == GAIA_XY_Z) geo = gaiaFromGeos_XYZ (g2); else if (geom->DimensionModel == GAIA_XY_M) geo = gaiaFromGeos_XYM (g2); else if (geom->DimensionModel == GAIA_XY_Z_M) geo = gaiaFromGeos_XYZM (g2); else geo = gaiaFromGeos_XY (g2); GEOSGeom_destroy (g2); if (geo == NULL) return NULL; geo->Srid = geom->Srid; return geo; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollSimplifyPreserveTopology (gaiaGeomCollPtr geom, double tolerance) { /* builds a simplified geometry using the Douglas-Peuker algorihtm [preserving topology] */ gaiaGeomCollPtr geo; GEOSGeometry *g1; GEOSGeometry *g2; if (!geom) return NULL; if (gaiaIsToxic (geom)) return NULL; g1 = gaiaToGeos (geom); g2 = GEOSTopologyPreserveSimplify (g1, tolerance); GEOSGeom_destroy (g1); if (!g2) return NULL; if (geom->DimensionModel == GAIA_XY_Z) geo = gaiaFromGeos_XYZ (g2); else if (geom->DimensionModel == GAIA_XY_M) geo = gaiaFromGeos_XYM (g2); else if (geom->DimensionModel == GAIA_XY_Z_M) geo = gaiaFromGeos_XYZM (g2); else geo = gaiaFromGeos_XY (g2); GEOSGeom_destroy (g2); if (geo == NULL) return NULL; geo->Srid = geom->Srid; return geo; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaConvexHull (gaiaGeomCollPtr geom) { /* builds a geometry that is the convex hull of GEOM */ gaiaGeomCollPtr geo; GEOSGeometry *g1; GEOSGeometry *g2; if (!geom) return NULL; if (gaiaIsToxic (geom)) return NULL; g1 = gaiaToGeos (geom); g2 = GEOSConvexHull (g1); GEOSGeom_destroy (g1); if (!g2) return NULL; if (geom->DimensionModel == GAIA_XY_Z) geo = gaiaFromGeos_XYZ (g2); else if (geom->DimensionModel == GAIA_XY_M) geo = gaiaFromGeos_XYM (g2); else if (geom->DimensionModel == GAIA_XY_Z_M) geo = gaiaFromGeos_XYZM (g2); else geo = gaiaFromGeos_XY (g2); GEOSGeom_destroy (g2); if (geo == NULL) return NULL; geo->Srid = geom->Srid; return geo; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollBuffer (gaiaGeomCollPtr geom, double radius, int points) { /* builds a geometry that is the GIS buffer of GEOM */ gaiaGeomCollPtr geo; GEOSGeometry *g1; GEOSGeometry *g2; if (!geom) return NULL; if (gaiaIsToxic (geom)) return NULL; g1 = gaiaToGeos (geom); g2 = GEOSBuffer (g1, radius, points); GEOSGeom_destroy (g1); if (!g2) return NULL; if (geom->DimensionModel == GAIA_XY_Z) geo = gaiaFromGeos_XYZ (g2); else if (geom->DimensionModel == GAIA_XY_M) geo = gaiaFromGeos_XYM (g2); else if (geom->DimensionModel == GAIA_XY_Z_M) geo = gaiaFromGeos_XYZM (g2); else geo = gaiaFromGeos_XY (g2); GEOSGeom_destroy (g2); if (geo == NULL) return NULL; geo->Srid = geom->Srid; return geo; } static void auxFromGeosPolygon (const GEOSGeometry * geos, gaiaGeomCollPtr result) { /* converting a Polygon from GEOS to SpatiaLite */ const GEOSGeometry *geos_ring; const GEOSCoordSequence *coords; unsigned int pts; unsigned int geos_dims; int interiors; int iv; int ib; double x; double y; double z; gaiaPolygonPtr pg; gaiaRingPtr rng; geos_ring = GEOSGetExteriorRing (geos); interiors = GEOSGetNumInteriorRings (geos); coords = GEOSGeom_getCoordSeq (geos_ring); GEOSCoordSeq_getDimensions (coords, &geos_dims); GEOSCoordSeq_getSize (coords, &pts); pg = gaiaAddPolygonToGeomColl (result, pts, interiors); /* setting up the Exterior ring */ rng = pg->Exterior; for (iv = 0; iv < (int) pts; iv++) { if (geos_dims == 3) { GEOSCoordSeq_getX (coords, iv, &x); GEOSCoordSeq_getY (coords, iv, &y); GEOSCoordSeq_getZ (coords, iv, &z); } else { GEOSCoordSeq_getX (coords, iv, &x); GEOSCoordSeq_getY (coords, iv, &y); z = 0.0; } if (rng->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (rng->Coords, iv, x, y, z); } else if (rng->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (rng->Coords, iv, x, y, 0.0); } else if (rng->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (rng->Coords, iv, x, y, z, 0.0); } else { gaiaSetPoint (rng->Coords, iv, x, y); } } for (ib = 0; ib < interiors; ib++) { /* setting up any interior ring */ geos_ring = GEOSGetInteriorRingN (geos, ib); coords = GEOSGeom_getCoordSeq (geos_ring); GEOSCoordSeq_getDimensions (coords, &geos_dims); GEOSCoordSeq_getSize (coords, &pts); rng = gaiaAddInteriorRing (pg, ib, pts); for (iv = 0; iv < (int) pts; iv++) { if (geos_dims == 3) { GEOSCoordSeq_getX (coords, iv, &x); GEOSCoordSeq_getY (coords, iv, &y); GEOSCoordSeq_getZ (coords, iv, &z); } else { GEOSCoordSeq_getX (coords, iv, &x); GEOSCoordSeq_getY (coords, iv, &y); z = 0.0; } if (rng->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (rng->Coords, iv, x, y, z); } else if (rng->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (rng->Coords, iv, x, y, 0.0); } else if (rng->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (rng->Coords, iv, x, y, z, 0.0); } else { gaiaSetPoint (rng->Coords, iv, x, y); } } } } static void auxGeosMbr (const GEOSCoordSequence * cs, unsigned int pts, double *min_x, double *min_y, double *max_x, double *max_y) { /* computing the MBR */ int iv; double x; double y; *min_x = DBL_MAX; *min_y = DBL_MAX; *max_x = 0 - DBL_MAX; *max_y = 0 - DBL_MAX; for (iv = 0; iv < (int) pts; iv++) { GEOSCoordSeq_getX (cs, iv, &x); GEOSCoordSeq_getY (cs, iv, &y); if (x < *min_x) *min_x = x; if (x > *max_x) *max_x = x; if (y < *min_y) *min_y = y; if (y > *max_y) *max_y = y; } } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaPolygonize (gaiaGeomCollPtr geom, int force_multi) { /* attempts to rearrange a generic Geometry into a (multi)polygon */ int ig; int ib; int iv; int interiors; int geos_dims = 2; int pts = 0; int lns = 0; int pgs = 0; int items; int error; double x; double y; double z; double m; gaiaGeomCollPtr result = NULL; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; GEOSCoordSequence *cs; const GEOSGeometry *const *geos_list = NULL; GEOSGeometry **p_item; GEOSGeometry *geos; const GEOSGeometry *geos_item; const GEOSGeometry *geos_item2; const GEOSGeometry *geos_ring; char *valid_polygons = NULL; const GEOSCoordSequence *coords; unsigned int pts1; unsigned int pts2; double min_x1; double max_x1; double min_y1; double max_y1; double min_x2; double max_x2; double min_y2; double max_y2; if (!geom) return NULL; if (gaiaIsToxic (geom)) return NULL; pt = geom->FirstPoint; while (pt) { pts++; pt = pt->Next; } pg = geom->FirstPolygon; while (pg) { pgs++; pg = pg->Next; } if (pts || pgs) return NULL; ln = geom->FirstLinestring; while (ln) { lns++; ln = ln->Next; } if (!lns) return NULL; if (geom->DimensionModel == GAIA_XY_Z || geom->DimensionModel == GAIA_XY_Z_M) geos_dims = 3; /* allocating GEOS linestrings */ geos_list = malloc (sizeof (const GEOSGeometry * const *) * lns); p_item = (GEOSGeometry **) geos_list; for (iv = 0; iv < lns; iv++) { /* initializing to NULL */ *p_item++ = NULL; } p_item = (GEOSGeometry **) geos_list; /* initializing GEOS linestrings */ ln = geom->FirstLinestring; while (ln) { cs = GEOSCoordSeq_create (ln->Points, geos_dims); for (iv = 0; iv < ln->Points; iv++) { /* exterior ring segments */ z = 0.0; if (ln->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); } else if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); } if (geos_dims == 3) { GEOSCoordSeq_setX (cs, iv, x); GEOSCoordSeq_setY (cs, iv, y); GEOSCoordSeq_setZ (cs, iv, z); } else { GEOSCoordSeq_setX (cs, iv, x); GEOSCoordSeq_setY (cs, iv, y); } } *p_item++ = GEOSGeom_createLineString (cs); ln = ln->Next; } /* calling GEOSPolygonize */ geos = GEOSPolygonize (geos_list, lns); if (geos == NULL) goto cleanup; /* / / GEOSPolygonize is expected to return a collection of Polygons / / CAVEAT: internal holes are returned as such (interior rings in / some Polygon), but are returned as distinct Polygons too / / we must check this, so to *not* return Polygons representing holes / */ error = 0; items = GEOSGetNumGeometries (geos); for (ig = 0; ig < items; ig++) { /* looping on elementaty GEOS geometries */ geos_item = GEOSGetGeometryN (geos, ig); if (GEOSGeomTypeId (geos_item) != GEOS_POLYGON) { /* not a Polygon ... ouch ... */ error = 1; goto cleanup; } } /* identifying valid Polygons [excluding holes] */ valid_polygons = malloc (items); for (ig = 0; ig < items; ig++) valid_polygons[ig] = 'Y'; for (ig = 0; ig < items; ig++) { /* looping on elementaty GEOS Polygons */ geos_item = GEOSGetGeometryN (geos, ig); interiors = GEOSGetNumInteriorRings (geos_item); for (ib = 0; ib < interiors; ib++) { /* looping on any interior ring */ geos_ring = GEOSGetInteriorRingN (geos_item, ib); coords = GEOSGeom_getCoordSeq (geos_ring); GEOSCoordSeq_getSize (coords, &pts1); auxGeosMbr (coords, pts1, &min_x1, &min_y1, &max_x1, &max_y1); for (iv = 0; iv < items; iv++) { if (iv == ig) { /* skipping the Polygon itself */ continue; } if (valid_polygons[iv] == 'N') { /* skipping any already invalid Polygon */ continue; } geos_item2 = GEOSGetGeometryN (geos, iv); if (GEOSGetNumInteriorRings (geos_item2) > 0) { /* this Polygon contains holes [surely valid] */ continue; } geos_ring = GEOSGetExteriorRing (geos_item2); coords = GEOSGeom_getCoordSeq (geos_ring); GEOSCoordSeq_getSize (coords, &pts2); if (pts1 == pts2) { auxGeosMbr (coords, pts2, &min_x2, &min_y2, &max_x2, &max_y2); if (min_x1 == min_x2 && min_y1 == min_y2 && max_x1 == max_x2 && max_y1 == max_y2) { /* same #points, same MBRs: invalidating */ valid_polygons[iv] = 'N'; } } } } } /* creating the Geometry to be returned */ if (geom->DimensionModel == GAIA_XY_Z) result = gaiaAllocGeomCollXYZ (); else if (geom->DimensionModel == GAIA_XY_M) result = gaiaAllocGeomCollXYM (); else if (geom->DimensionModel == GAIA_XY_Z_M) result = gaiaAllocGeomCollXYZM (); else result = gaiaAllocGeomColl (); if (result == NULL) return NULL; result->Srid = geom->Srid; if (force_multi) result->DeclaredType = GAIA_MULTIPOLYGON; for (ig = 0; ig < items; ig++) { /* looping on GEOS Polygons */ geos_item = GEOSGetGeometryN (geos, ig); if (valid_polygons[ig] == 'Y') auxFromGeosPolygon (geos_item, result); } cleanup: if (valid_polygons != NULL) free (valid_polygons); if (geos_list != NULL) { /* memory cleanup */ p_item = (GEOSGeometry **) geos_list; for (iv = 0; iv < lns; iv++) { if (*p_item != NULL) GEOSGeom_destroy (*p_item); p_item++; } p_item = (GEOSGeometry **) geos_list; free (p_item); } if (geos != NULL) GEOSGeom_destroy (geos); if (error || result->FirstPolygon == NULL) { gaiaFreeGeomColl (result); return NULL; } return result; } #ifdef GEOS_ADVANCED /* GEOS advanced features */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaOffsetCurve (gaiaGeomCollPtr geom, double radius, int points, int left_right) { /* // builds a geometry that is the OffsetCurve of GEOM // (which is expected to be of the LINESTRING type) // */ gaiaGeomCollPtr geo; GEOSGeometry *g1; GEOSGeometry *g2; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; int pts = 0; int lns = 0; int pgs = 0; int closed = 0; if (!geom) return NULL; /* checking the input geometry for validity */ pt = geom->FirstPoint; while (pt) { /* counting how many POINTs are there */ pts++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { /* counting how many LINESTRINGs are there */ lns++; if (gaiaIsClosed (ln)) closed++; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { /* counting how many POLYGON are there */ pgs++; pg = pg->Next; } if (pts > 0 || pgs > 0 || lns > 1 || closed > 0) return NULL; /* all right: this one simply is a LINESTRING */ geom->DeclaredType = GAIA_LINESTRING; g1 = gaiaToGeos (geom); g2 = GEOSSingleSidedBuffer (g1, radius, points, GEOSBUF_JOIN_ROUND, 5.0, left_right); GEOSGeom_destroy (g1); if (!g2) return NULL; if (geom->DimensionModel == GAIA_XY_Z) geo = gaiaFromGeos_XYZ (g2); else if (geom->DimensionModel == GAIA_XY_M) geo = gaiaFromGeos_XYM (g2); else if (geom->DimensionModel == GAIA_XY_Z_M) geo = gaiaFromGeos_XYZM (g2); else geo = gaiaFromGeos_XY (g2); GEOSGeom_destroy (g2); if (geo == NULL) return NULL; geo->Srid = geom->Srid; return geo; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSingleSidedBuffer (gaiaGeomCollPtr geom, double radius, int points, int left_right) { /* // builds a geometry that is the SingleSided BUFFER of GEOM // (which is expected to be of the LINESTRING type) // */ gaiaGeomCollPtr geo; GEOSGeometry *g1; GEOSGeometry *g2; GEOSBufferParams *params = NULL; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; int pts = 0; int lns = 0; int pgs = 0; int closed = 0; if (!geom) return NULL; /* checking the input geometry for validity */ pt = geom->FirstPoint; while (pt) { /* counting how many POINTs are there */ pts++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { /* counting how many LINESTRINGs are there */ lns++; if (gaiaIsClosed (ln)) closed++; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { /* counting how many POLYGON are there */ pgs++; pg = pg->Next; } if (pts > 0 || pgs > 0 || lns > 1 || closed > 0) return NULL; /* all right: this one simply is a LINESTRING */ geom->DeclaredType = GAIA_LINESTRING; g1 = gaiaToGeos (geom); /* setting up Buffer params */ params = GEOSBufferParams_create (); GEOSBufferParams_setJoinStyle (params, GEOSBUF_JOIN_ROUND); GEOSBufferParams_setMitreLimit (params, 5.0); GEOSBufferParams_setQuadrantSegments (params, points); GEOSBufferParams_setSingleSided (params, 1); /* creating the SingleSided Buffer */ if (left_right == 0) { /* right-sided requires NEGATIVE radius */ radius *= -1.0; } g2 = GEOSBufferWithParams (g1, params, radius); GEOSGeom_destroy (g1); GEOSBufferParams_destroy (params); if (!g2) return NULL; if (geom->DimensionModel == GAIA_XY_Z) geo = gaiaFromGeos_XYZ (g2); else if (geom->DimensionModel == GAIA_XY_M) geo = gaiaFromGeos_XYM (g2); else if (geom->DimensionModel == GAIA_XY_Z_M) geo = gaiaFromGeos_XYZM (g2); else geo = gaiaFromGeos_XY (g2); GEOSGeom_destroy (g2); if (geo == NULL) return NULL; geo->Srid = geom->Srid; return geo; } GAIAGEO_DECLARE int gaiaHausdorffDistance (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *xdist) { /* / computes the (discrete) Hausdorff distance intercurring / between GEOM-1 and GEOM-2 */ double dist; int ret; GEOSGeometry *g1; GEOSGeometry *g2; if (!geom1 || !geom2) return 0; g1 = gaiaToGeos (geom1); g2 = gaiaToGeos (geom2); ret = GEOSHausdorffDistance (g1, g2, &dist); GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); if (ret) *xdist = dist; return ret; } static gaiaGeomCollPtr geom_as_lines (gaiaGeomCollPtr geom) { /* transforms a Geometry into a LINESTRING/MULTILINESTRING (if possible) */ gaiaGeomCollPtr result; gaiaLinestringPtr ln; gaiaLinestringPtr new_ln; gaiaPolygonPtr pg; gaiaRingPtr rng; int iv; int ib; double x; double y; double z; double m; if (!geom) return NULL; if (geom->FirstPoint != NULL) { /* invalid: GEOM contains at least one POINT */ return NULL; } switch (geom->DimensionModel) { case GAIA_XY_Z_M: result = gaiaAllocGeomCollXYZM (); break; case GAIA_XY_Z: result = gaiaAllocGeomCollXYZ (); break; case GAIA_XY_M: result = gaiaAllocGeomCollXYM (); break; default: result = gaiaAllocGeomColl (); break; }; result->Srid = geom->Srid; ln = geom->FirstLinestring; while (ln) { /* copying any Linestring */ new_ln = gaiaAddLinestringToGeomColl (result, ln->Points); for (iv = 0; iv < ln->Points; iv++) { if (ln->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (new_ln->Coords, iv, x, y, z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); gaiaSetPointXYM (new_ln->Coords, iv, x, y, m); } else if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (new_ln->Coords, iv, x, y, z, m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); gaiaSetPoint (new_ln->Coords, iv, x, y); } } ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { /* copying any Polygon Ring (as Linestring) */ rng = pg->Exterior; new_ln = gaiaAddLinestringToGeomColl (result, rng->Points); for (iv = 0; iv < rng->Points; iv++) { /* exterior Ring */ if (rng->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (new_ln->Coords, iv, x, y, z); } else if (rng->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); gaiaSetPointXYM (new_ln->Coords, iv, x, y, m); } else if (rng->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (new_ln->Coords, iv, x, y, z, m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); gaiaSetPoint (new_ln->Coords, iv, x, y); } } for (ib = 0; ib < pg->NumInteriors; ib++) { rng = pg->Interiors + ib; new_ln = gaiaAddLinestringToGeomColl (result, rng->Points); for (iv = 0; iv < rng->Points; iv++) { /* any interior Ring */ if (rng->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (new_ln->Coords, iv, x, y, z); } else if (rng->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); gaiaSetPointXYM (new_ln->Coords, iv, x, y, m); } else if (rng->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (new_ln->Coords, iv, x, y, z, m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); gaiaSetPoint (new_ln->Coords, iv, x, y); } } } pg = pg->Next; } return result; } static void add_shared_linestring (gaiaGeomCollPtr geom, gaiaDynamicLinePtr dyn) { /* adding a LINESTRING from Dynamic Line */ int count = 0; gaiaLinestringPtr ln; gaiaPointPtr pt; int iv; if (!geom) return; if (!dyn) return; pt = dyn->First; while (pt) { /* counting how many Points are there */ count++; pt = pt->Next; } if (count == 0) return; ln = gaiaAddLinestringToGeomColl (geom, count); iv = 0; pt = dyn->First; while (pt) { /* copying points into the LINESTRING */ if (ln->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ln->Coords, iv, pt->X, pt->Y, pt->Z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ln->Coords, iv, pt->X, pt->Y, pt->M); } else if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ln->Coords, iv, pt->X, pt->Y, pt->Z, pt->M); } else { gaiaSetPoint (ln->Coords, iv, pt->X, pt->Y); } iv++; pt = pt->Next; } } static void append_shared_path (gaiaDynamicLinePtr dyn, gaiaLinestringPtr ln, int order) { /* appends a Shared Path item to Dynamic Line */ int iv; double x; double y; double z; double m; if (order) { /* reversed order */ for (iv = ln->Points - 1; iv >= 0; iv--) { if (ln->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); if (x == dyn->Last->X && y == dyn->Last->Y && z == dyn->Last->Z) ; else gaiaAppendPointZToDynamicLine (dyn, x, y, z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); if (x == dyn->Last->X && y == dyn->Last->Y && m == dyn->Last->M) ; else gaiaAppendPointMToDynamicLine (dyn, x, y, m); } else if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); if (x == dyn->Last->X && y == dyn->Last->Y && z == dyn->Last->Z && m == dyn->Last->M) ; else gaiaAppendPointZMToDynamicLine (dyn, x, y, z, m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); if (x == dyn->Last->X && y == dyn->Last->Y) ; else gaiaAppendPointToDynamicLine (dyn, x, y); } } } else { /* conformant order */ for (iv = 0; iv < ln->Points; iv++) { if (ln->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); if (x == dyn->Last->X && y == dyn->Last->Y && z == dyn->Last->Z) ; else gaiaAppendPointZToDynamicLine (dyn, x, y, z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); if (x == dyn->Last->X && y == dyn->Last->Y && m == dyn->Last->M) ; else gaiaAppendPointMToDynamicLine (dyn, x, y, m); } else if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); if (x == dyn->Last->X && y == dyn->Last->Y && z == dyn->Last->Z && m == dyn->Last->M) ; else gaiaAppendPointZMToDynamicLine (dyn, x, y, z, m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); if (x == dyn->Last->X && y == dyn->Last->Y) ; else gaiaAppendPointToDynamicLine (dyn, x, y); } } } } static void prepend_shared_path (gaiaDynamicLinePtr dyn, gaiaLinestringPtr ln, int order) { /* prepends a Shared Path item to Dynamic Line */ int iv; double x; double y; double z; double m; if (order) { /* reversed order */ for (iv = 0; iv < ln->Points; iv++) { if (ln->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); if (x == dyn->First->X && y == dyn->First->Y && z == dyn->First->Z) ; else gaiaPrependPointZToDynamicLine (dyn, x, y, z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); if (x == dyn->First->X && y == dyn->First->Y && m == dyn->First->M) ; else gaiaPrependPointMToDynamicLine (dyn, x, y, m); } else if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); if (x == dyn->First->X && y == dyn->First->Y && z == dyn->First->Z && m == dyn->First->M) ; else gaiaPrependPointZMToDynamicLine (dyn, x, y, z, m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); if (x == dyn->First->X && y == dyn->First->Y) ; else gaiaPrependPointToDynamicLine (dyn, x, y); } } } else { /* conformant order */ for (iv = ln->Points - 1; iv >= 0; iv--) { if (ln->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); if (x == dyn->First->X && y == dyn->First->Y && z == dyn->First->Z) ; else gaiaPrependPointZToDynamicLine (dyn, x, y, z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); if (x == dyn->First->X && y == dyn->First->Y && m == dyn->First->M) ; else gaiaPrependPointMToDynamicLine (dyn, x, y, m); } else if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); if (x == dyn->First->X && y == dyn->First->Y && z == dyn->First->Z && m == dyn->First->M) ; else gaiaPrependPointZMToDynamicLine (dyn, x, y, z, m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); if (x == dyn->First->X && y == dyn->First->Y) ; else gaiaPrependPointToDynamicLine (dyn, x, y); } } } } static gaiaGeomCollPtr arrange_shared_paths (gaiaGeomCollPtr geom) { /* final aggregation step for shared paths */ gaiaLinestringPtr ln; gaiaLinestringPtr *ln_array; gaiaGeomCollPtr result; gaiaDynamicLinePtr dyn; int count; int i; int i2; int iv; double x; double y; double z; double m; int ok; int ok2; if (!geom) return NULL; count = 0; ln = geom->FirstLinestring; while (ln) { /* counting how many Linestrings are there */ count++; ln = ln->Next; } if (count == 0) return NULL; ln_array = malloc (sizeof (gaiaLinestringPtr) * count); i = 0; ln = geom->FirstLinestring; while (ln) { /* populating the Linestring references array */ ln_array[i++] = ln; ln = ln->Next; } /* allocating a new Geometry [MULTILINESTRING] */ switch (geom->DimensionModel) { case GAIA_XY_Z_M: result = gaiaAllocGeomCollXYZM (); break; case GAIA_XY_Z: result = gaiaAllocGeomCollXYZ (); break; case GAIA_XY_M: result = gaiaAllocGeomCollXYM (); break; default: result = gaiaAllocGeomColl (); break; }; result->Srid = geom->Srid; result->DeclaredType = GAIA_MULTILINESTRING; ok = 1; while (ok) { /* looping until we have processed any input item */ ok = 0; for (i = 0; i < count; i++) { if (ln_array[i] != NULL) { /* starting a new LINESTRING */ dyn = gaiaAllocDynamicLine (); ln = ln_array[i]; ln_array[i] = NULL; for (iv = 0; iv < ln->Points; iv++) { /* inserting the 'seed' path */ if (ln->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); gaiaAppendPointZToDynamicLine (dyn, x, y, z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); gaiaAppendPointMToDynamicLine (dyn, x, y, m); } else if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); gaiaAppendPointZMToDynamicLine (dyn, x, y, z, m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); gaiaAppendPointToDynamicLine (dyn, x, y); } } ok2 = 1; while (ok2) { /* looping until we have checked any other item */ ok2 = 0; for (i2 = 0; i2 < count; i2++) { /* expanding the 'seed' path */ if (ln_array[i2] == NULL) continue; ln = ln_array[i2]; /* checking the first vertex */ iv = 0; if (ln->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); } else if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); } if (x == dyn->Last->X && y == dyn->Last->Y) { /* appending this item to the 'seed' (conformant order) */ append_shared_path (dyn, ln, 0); ln_array[i2] = NULL; ok2 = 1; continue; } if (x == dyn->First->X && y == dyn->First->Y) { /* prepending this item to the 'seed' (reversed order) */ prepend_shared_path (dyn, ln, 1); ln_array[i2] = NULL; ok2 = 1; continue; } /* checking the last vertex */ iv = ln->Points - 1; if (ln->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); } else if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); } if (x == dyn->Last->X && y == dyn->Last->Y) { /* appending this item to the 'seed' (reversed order) */ append_shared_path (dyn, ln, 1); ln_array[i2] = NULL; ok2 = 1; continue; } if (x == dyn->First->X && y == dyn->First->Y) { /* prepending this item to the 'seed' (conformant order) */ prepend_shared_path (dyn, ln, 0); ln_array[i2] = NULL; ok2 = 1; continue; } } } add_shared_linestring (result, dyn); gaiaFreeDynamicLine (dyn); ok = 1; break; } } } free (ln_array); return result; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSharedPaths (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { /* // builds a geometry containing Shared Paths commons to GEOM1 & GEOM2 // (which are expected to be of the LINESTRING/MULTILINESTRING type) // */ gaiaGeomCollPtr geo; gaiaGeomCollPtr result; gaiaGeomCollPtr line1; gaiaGeomCollPtr line2; GEOSGeometry *g1; GEOSGeometry *g2; GEOSGeometry *g3; if (!geom1) return NULL; if (!geom2) return NULL; /* transforming input geoms as Lines */ line1 = geom_as_lines (geom1); line2 = geom_as_lines (geom2); if (line1 == NULL || line2 == NULL) { if (line1) gaiaFreeGeomColl (line1); if (line2) gaiaFreeGeomColl (line2); return NULL; } g1 = gaiaToGeos (line1); g2 = gaiaToGeos (line2); gaiaFreeGeomColl (line1); gaiaFreeGeomColl (line2); g3 = GEOSSharedPaths (g1, g2); GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); if (!g3) return NULL; if (geom1->DimensionModel == GAIA_XY_Z) geo = gaiaFromGeos_XYZ (g3); else if (geom1->DimensionModel == GAIA_XY_M) geo = gaiaFromGeos_XYM (g3); else if (geom1->DimensionModel == GAIA_XY_Z_M) geo = gaiaFromGeos_XYZM (g3); else geo = gaiaFromGeos_XY (g3); GEOSGeom_destroy (g3); if (geo == NULL) return NULL; geo->Srid = geom1->Srid; result = arrange_shared_paths (geo); gaiaFreeGeomColl (geo); return result; } GAIAGEO_DECLARE int gaiaGeomCollCovers (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { /* checks if geom1 "spatially covers" geom2 */ int ret; GEOSGeometry *g1; GEOSGeometry *g2; if (!geom1 || !geom2) return -1; /* quick check based on MBRs comparison */ if (!splite_mbr_contains (geom1, geom2)) return 0; g1 = gaiaToGeos (geom1); g2 = gaiaToGeos (geom2); ret = GEOSCovers (g1, g2); GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); if (ret == 2) return -1; return ret; } GAIAGEO_DECLARE int gaiaGeomCollPreparedCovers (void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2) { /* checks if geom1 "spatially covers" geom2 */ int ret; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSPreparedGeometry *gPrep; GEOSGeometry *g1; GEOSGeometry *g2; gaiaGeomCollPtr geom; if (!geom1 || !geom2) return -1; /* quick check based on MBRs comparison */ if (!splite_mbr_contains (geom1, geom2)) return 0; /* handling the internal GEOS cache */ if (evalGeosCache (cache, geom1, blob1, size1, geom2, blob2, size2, &gPrep, &geom)) { g2 = gaiaToGeos (geom); if (geom == geom2) ret = GEOSPreparedCovers (gPrep, g2); else ret = GEOSPreparedCoveredBy (gPrep, g2); GEOSGeom_destroy (g2); if (ret == 2) return -1; return ret; } g1 = gaiaToGeos (geom1); g2 = gaiaToGeos (geom2); ret = GEOSCovers (g1, g2); GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); if (ret == 2) return -1; return ret; } GAIAGEO_DECLARE int gaiaGeomCollCoveredBy (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { /* checks if geom1 is "spatially covered by" geom2 */ int ret; GEOSGeometry *g1; GEOSGeometry *g2; if (!geom1 || !geom2) return -1; /* quick check based on MBRs comparison */ if (!splite_mbr_within (geom1, geom2)) return 0; g1 = gaiaToGeos (geom1); g2 = gaiaToGeos (geom2); ret = GEOSCoveredBy (g1, g2); GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); if (ret == 2) return -1; return ret; } GAIAGEO_DECLARE int gaiaGeomCollPreparedCoveredBy (void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2) { /* checks if geom1 is "spatially covered by" geom2 */ int ret; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSPreparedGeometry *gPrep; GEOSGeometry *g1; GEOSGeometry *g2; gaiaGeomCollPtr geom; if (!geom1 || !geom2) return -1; /* quick check based on MBRs comparison */ if (!splite_mbr_within (geom1, geom2)) return 0; /* handling the internal GEOS cache */ if (evalGeosCache (cache, geom1, blob1, size1, geom2, blob2, size2, &gPrep, &geom)) { g2 = gaiaToGeos (geom); if (geom == geom2) ret = GEOSPreparedCoveredBy (gPrep, g2); else ret = GEOSPreparedCovers (gPrep, g2); GEOSGeom_destroy (g2); if (ret == 2) return -1; return ret; } g1 = gaiaToGeos (geom1); g2 = gaiaToGeos (geom2); ret = GEOSCoveredBy (g1, g2); GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); if (ret == 2) return -1; return ret; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineInterpolatePoint (gaiaGeomCollPtr geom, double fraction) { /* * attempts to intepolate a point on line at dist "fraction" * * the fraction is expressed into the range from 0.0 to 1.0 */ int pts = 0; int lns = 0; int pgs = 0; gaiaGeomCollPtr result; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; GEOSGeometry *g; GEOSGeometry *g_pt; double length; double projection; if (!geom) return NULL; /* checking if a single Linestring has been passed */ pt = geom->FirstPoint; while (pt) { pts++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { lns++; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { pgs++; pg = pg->Next; } if (pts == 0 && lns == 1 && pgs == 0) ; else return NULL; g = gaiaToGeos (geom); if (GEOSLength (g, &length)) { /* transforming fraction to length */ if (fraction < 0.0) fraction = 0.0; if (fraction > 1.0) fraction = 1.0; projection = length * fraction; } else { GEOSGeom_destroy (g); return NULL; } g_pt = GEOSInterpolate (g, projection); GEOSGeom_destroy (g); if (!g_pt) return NULL; if (geom->DimensionModel == GAIA_XY_Z) result = gaiaFromGeos_XYZ (g_pt); else if (geom->DimensionModel == GAIA_XY_M) result = gaiaFromGeos_XYM (g_pt); else if (geom->DimensionModel == GAIA_XY_Z_M) result = gaiaFromGeos_XYZM (g_pt); else result = gaiaFromGeos_XY (g_pt); GEOSGeom_destroy (g_pt); if (result == NULL) return NULL; result->Srid = geom->Srid; return result; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineInterpolateEquidistantPoints (gaiaGeomCollPtr geom, double distance) { /* * attempts to intepolate a set of points on line at regular distances */ int pts = 0; int lns = 0; int pgs = 0; gaiaGeomCollPtr result; gaiaGeomCollPtr xpt; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; GEOSGeometry *g; GEOSGeometry *g_pt; double length; double current_length = 0.0; if (!geom) return NULL; if (distance <= 0.0) return NULL; /* checking if a single Linestring has been passed */ pt = geom->FirstPoint; while (pt) { pts++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { lns++; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { pgs++; pg = pg->Next; } if (pts == 0 && lns == 1 && pgs == 0) ; else return NULL; g = gaiaToGeos (geom); if (GEOSLength (g, &length)) { if (length <= distance) { /* the line is too short to apply interpolation */ GEOSGeom_destroy (g); return NULL; } } else { GEOSGeom_destroy (g); return NULL; } /* creating the MultiPoint [always supporting M] */ if (geom->DimensionModel == GAIA_XY_Z || geom->DimensionModel == GAIA_XY_Z_M) result = gaiaAllocGeomCollXYZM (); else result = gaiaAllocGeomCollXYM (); if (result == NULL) { GEOSGeom_destroy (g); return NULL; } while (1) { /* increasing the current distance */ current_length += distance; if (current_length >= length) break; /* interpolating a point */ g_pt = GEOSInterpolate (g, current_length); if (!g_pt) goto error; if (geom->DimensionModel == GAIA_XY_Z) { xpt = gaiaFromGeos_XYZ (g_pt); if (!xpt) goto error; pt = xpt->FirstPoint; if (!pt) goto error; gaiaAddPointToGeomCollXYZM (result, pt->X, pt->Y, pt->Z, current_length); } else if (geom->DimensionModel == GAIA_XY_M) { xpt = gaiaFromGeos_XYM (g_pt); if (!xpt) goto error; pt = xpt->FirstPoint; if (!pt) goto error; gaiaAddPointToGeomCollXYM (result, pt->X, pt->Y, current_length); } else if (geom->DimensionModel == GAIA_XY_Z_M) { xpt = gaiaFromGeos_XYZM (g_pt); if (!xpt) goto error; pt = xpt->FirstPoint; if (!pt) goto error; gaiaAddPointToGeomCollXYZM (result, pt->X, pt->Y, pt->Z, current_length); } else { xpt = gaiaFromGeos_XY (g_pt); if (!xpt) goto error; pt = xpt->FirstPoint; if (!pt) goto error; gaiaAddPointToGeomCollXYM (result, pt->X, pt->Y, current_length); } GEOSGeom_destroy (g_pt); gaiaFreeGeomColl (xpt); } GEOSGeom_destroy (g); result->Srid = geom->Srid; result->DeclaredType = GAIA_MULTIPOINT; return result; error: if (g_pt) GEOSGeom_destroy (g_pt); GEOSGeom_destroy (g); gaiaFreeGeomColl (result); return NULL; } GAIAGEO_DECLARE double gaiaLineLocatePoint (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { /* * attempts to compute the location of the closest point on LineString * to the given Point, as a fraction of total 2d line length * * the fraction is expressed into the range from 0.0 to 1.0 */ int pts1 = 0; int lns1 = 0; int pgs1 = 0; int pts2 = 0; int lns2 = 0; int pgs2 = 0; double length; double projection; double result; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; GEOSGeometry *g1; GEOSGeometry *g2; if (!geom1 || !geom2) return -1.0; /* checking if a single Linestring has been passed */ pt = geom1->FirstPoint; while (pt) { pts1++; pt = pt->Next; } ln = geom1->FirstLinestring; while (ln) { lns1++; ln = ln->Next; } pg = geom1->FirstPolygon; while (pg) { pgs1++; pg = pg->Next; } if (pts1 == 0 && lns1 >= 1 && pgs1 == 0) ; else return -1.0; /* checking if a single Point has been passed */ pt = geom2->FirstPoint; while (pt) { pts2++; pt = pt->Next; } ln = geom2->FirstLinestring; while (ln) { lns2++; ln = ln->Next; } pg = geom2->FirstPolygon; while (pg) { pgs2++; pg = pg->Next; } if (pts2 == 1 && lns2 == 0 && pgs2 == 0) ; else return -1.0; g1 = gaiaToGeos (geom1); g2 = gaiaToGeos (geom2); projection = GEOSProject (g1, g2); if (GEOSLength (g1, &length)) { /* normalizing as a fraction between 0.0 and 1.0 */ result = projection / length; } else result = -1.0; GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); return result; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineSubstring (gaiaGeomCollPtr geom, double start_fraction, double end_fraction) { /* * attempts to build a new Linestring being a substring of the input one starting * and ending at the given fractions of total 2d length */ int pts = 0; int lns = 0; int pgs = 0; gaiaGeomCollPtr result; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaLinestringPtr out; gaiaPolygonPtr pg; GEOSGeometry *g; GEOSGeometry *g_start; GEOSGeometry *g_end; GEOSCoordSequence *cs; const GEOSCoordSequence *in_cs; GEOSGeometry *segm; double length; double total = 0.0; double start; double end; int iv; int i_start = -1; int i_end = -1; int points; double x; double y; double z; double m; unsigned int dims; if (!geom) return NULL; /* checking if a single Linestring has been passed */ pt = geom->FirstPoint; while (pt) { pts++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { lns++; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { pgs++; pg = pg->Next; } if (pts == 0 && lns == 1 && pgs == 0) ; else return NULL; if (start_fraction < 0.0) start_fraction = 0.0; if (start_fraction > 1.0) start_fraction = 1.0; if (end_fraction < 0.0) end_fraction = 0.0; if (end_fraction > 1.0) end_fraction = 1.0; if (start_fraction >= end_fraction) return NULL; g = gaiaToGeos (geom); if (GEOSLength (g, &length)) { start = length * start_fraction; end = length * end_fraction; } else { GEOSGeom_destroy (g); return NULL; } g_start = GEOSInterpolate (g, start); g_end = GEOSInterpolate (g, end); GEOSGeom_destroy (g); if (!g_start || !g_end) return NULL; /* identifying first and last valid vertex */ ln = geom->FirstLinestring; for (iv = 0; iv < ln->Points; iv++) { double x0; double y0; switch (ln->DimensionModel) { case GAIA_XY_Z: gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); break; case GAIA_XY_M: gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); break; case GAIA_XY_Z_M: gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); break; default: gaiaGetPoint (ln->Coords, iv, &x, &y); break; }; if (iv > 0) { cs = GEOSCoordSeq_create (2, 2); GEOSCoordSeq_setX (cs, 0, x0); GEOSCoordSeq_setY (cs, 0, y0); GEOSCoordSeq_setX (cs, 1, x); GEOSCoordSeq_setY (cs, 1, y); segm = GEOSGeom_createLineString (cs); GEOSLength (segm, &length); total += length; GEOSGeom_destroy (segm); if (total > start && i_start < 0) i_start = iv; if (total < end) i_end = iv; } x0 = x; y0 = y; } if (i_start < 0 || i_end < 0) { i_start = -1; i_end = -1; points = 2; } else points = i_end - i_start + 3; /* creating the output geometry */ switch (ln->DimensionModel) { case GAIA_XY_Z: result = gaiaAllocGeomCollXYZ (); break; case GAIA_XY_M: result = gaiaAllocGeomCollXYM (); break; case GAIA_XY_Z_M: result = gaiaAllocGeomCollXYZM (); break; default: result = gaiaAllocGeomColl (); break; }; result->Srid = geom->Srid; out = gaiaAddLinestringToGeomColl (result, points); /* start vertex */ points = 0; in_cs = GEOSGeom_getCoordSeq (g_start); GEOSCoordSeq_getDimensions (in_cs, &dims); if (dims == 3) { GEOSCoordSeq_getX (in_cs, 0, &x); GEOSCoordSeq_getY (in_cs, 0, &y); GEOSCoordSeq_getZ (in_cs, 0, &z); m = 0.0; } else { GEOSCoordSeq_getX (in_cs, 0, &x); GEOSCoordSeq_getY (in_cs, 0, &y); z = 0.0; m = 0.0; } GEOSGeom_destroy (g_start); switch (out->DimensionModel) { case GAIA_XY_Z: gaiaSetPointXYZ (out->Coords, points, x, y, z); break; case GAIA_XY_M: gaiaSetPointXYM (out->Coords, points, x, y, 0.0); break; case GAIA_XY_Z_M: gaiaSetPointXYZM (out->Coords, points, x, y, z, 0.0); break; default: gaiaSetPoint (out->Coords, points, x, y); break; }; points++; if (i_start < 0 || i_end < 0) ; else { for (iv = i_start; iv <= i_end; iv++) { z = 0.0; m = 0.0; switch (ln->DimensionModel) { case GAIA_XY_Z: gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); break; case GAIA_XY_M: gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); break; case GAIA_XY_Z_M: gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); break; default: gaiaGetPoint (ln->Coords, iv, &x, &y); break; }; switch (out->DimensionModel) { case GAIA_XY_Z: gaiaSetPointXYZ (out->Coords, points, x, y, z); break; case GAIA_XY_M: gaiaSetPointXYM (out->Coords, points, x, y, 0.0); break; case GAIA_XY_Z_M: gaiaSetPointXYZM (out->Coords, points, x, y, z, 0.0); break; default: gaiaSetPoint (out->Coords, points, x, y); break; }; points++; } } /* end vertex */ in_cs = GEOSGeom_getCoordSeq (g_end); GEOSCoordSeq_getDimensions (in_cs, &dims); if (dims == 3) { GEOSCoordSeq_getX (in_cs, 0, &x); GEOSCoordSeq_getY (in_cs, 0, &y); GEOSCoordSeq_getZ (in_cs, 0, &z); m = 0.0; } else { GEOSCoordSeq_getX (in_cs, 0, &x); GEOSCoordSeq_getY (in_cs, 0, &y); z = 0.0; m = 0.0; } GEOSGeom_destroy (g_end); switch (out->DimensionModel) { case GAIA_XY_Z: gaiaSetPointXYZ (out->Coords, points, x, y, z); break; case GAIA_XY_M: gaiaSetPointXYM (out->Coords, points, x, y, 0.0); break; case GAIA_XY_Z_M: gaiaSetPointXYZM (out->Coords, points, x, y, z, 0.0); break; default: gaiaSetPoint (out->Coords, points, x, y); break; }; return result; } static GEOSGeometry * buildGeosPoints (const gaiaGeomCollPtr gaia) { /* converting a GAIA Geometry into a GEOS Geometry of POINTS */ int pts = 0; unsigned int dims; int iv; int ib; int nItem; double x; double y; double z; double m; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; gaiaRingPtr rng; GEOSGeometry *geos; GEOSGeometry *geos_item; GEOSGeometry **geos_coll; GEOSCoordSequence *cs; if (!gaia) return NULL; pt = gaia->FirstPoint; while (pt) { /* counting how many POINTs are there */ pts++; pt = pt->Next; } ln = gaia->FirstLinestring; while (ln) { /* counting how many POINTs are there */ pts += ln->Points; ln = ln->Next; } pg = gaia->FirstPolygon; while (pg) { /* counting how many POINTs are there */ rng = pg->Exterior; pts += rng->Points - 1; /* exterior ring */ for (ib = 0; ib < pg->NumInteriors; ib++) { /* interior ring */ rng = pg->Interiors + ib; pts += rng->Points - 1; } pg = pg->Next; } if (pts == 0) return NULL; switch (gaia->DimensionModel) { case GAIA_XY_Z: case GAIA_XY_Z_M: dims = 3; break; default: dims = 2; break; }; nItem = 0; geos_coll = malloc (sizeof (GEOSGeometry *) * (pts)); pt = gaia->FirstPoint; while (pt) { cs = GEOSCoordSeq_create (1, dims); switch (pt->DimensionModel) { case GAIA_XY_Z: case GAIA_XY_Z_M: GEOSCoordSeq_setX (cs, 0, pt->X); GEOSCoordSeq_setY (cs, 0, pt->Y); GEOSCoordSeq_setZ (cs, 0, pt->Z); break; default: GEOSCoordSeq_setX (cs, 0, pt->X); GEOSCoordSeq_setY (cs, 0, pt->Y); break; }; geos_item = GEOSGeom_createPoint (cs); *(geos_coll + nItem++) = geos_item; pt = pt->Next; } ln = gaia->FirstLinestring; while (ln) { for (iv = 0; iv < ln->Points; iv++) { z = 0.0; m = 0.0; switch (ln->DimensionModel) { case GAIA_XY_Z: gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); break; case GAIA_XY_M: gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); break; case GAIA_XY_Z_M: gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); break; default: gaiaGetPoint (ln->Coords, iv, &x, &y); break; }; cs = GEOSCoordSeq_create (1, dims); if (dims == 3) { GEOSCoordSeq_setX (cs, 0, x); GEOSCoordSeq_setY (cs, 0, y); GEOSCoordSeq_setZ (cs, 0, z); } else { GEOSCoordSeq_setX (cs, 0, x); GEOSCoordSeq_setY (cs, 0, y); } geos_item = GEOSGeom_createPoint (cs); *(geos_coll + nItem++) = geos_item; } ln = ln->Next; } pg = gaia->FirstPolygon; while (pg) { rng = pg->Exterior; for (iv = 1; iv < rng->Points; iv++) { /* exterior ring */ z = 0.0; m = 0.0; switch (rng->DimensionModel) { case GAIA_XY_Z: gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); break; case GAIA_XY_M: gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); break; case GAIA_XY_Z_M: gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); break; default: gaiaGetPoint (rng->Coords, iv, &x, &y); break; }; cs = GEOSCoordSeq_create (1, dims); if (dims == 3) { GEOSCoordSeq_setX (cs, 0, x); GEOSCoordSeq_setY (cs, 0, y); GEOSCoordSeq_setZ (cs, 0, z); } else { GEOSCoordSeq_setX (cs, 0, x); GEOSCoordSeq_setY (cs, 0, y); } geos_item = GEOSGeom_createPoint (cs); *(geos_coll + nItem++) = geos_item; } for (ib = 0; ib < pg->NumInteriors; ib++) { /* interior ring */ rng = pg->Interiors + ib; for (iv = 1; iv < rng->Points; iv++) { /* exterior ring */ z = 0.0; m = 0.0; switch (rng->DimensionModel) { case GAIA_XY_Z: gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); break; case GAIA_XY_M: gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); break; case GAIA_XY_Z_M: gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); break; default: gaiaGetPoint (rng->Coords, iv, &x, &y); break; }; cs = GEOSCoordSeq_create (1, dims); if (dims == 3) { GEOSCoordSeq_setX (cs, 0, x); GEOSCoordSeq_setY (cs, 0, y); GEOSCoordSeq_setZ (cs, 0, z); } else { GEOSCoordSeq_setX (cs, 0, x); GEOSCoordSeq_setY (cs, 0, y); } geos_item = GEOSGeom_createPoint (cs); *(geos_coll + nItem++) = geos_item; } } pg = pg->Next; } geos = GEOSGeom_createCollection (GEOS_MULTIPOINT, geos_coll, pts); free (geos_coll); GEOSSetSRID (geos, gaia->Srid); return geos; } static GEOSGeometry * buildGeosSegments (const gaiaGeomCollPtr gaia) { /* converting a GAIA Geometry into a GEOS Geometry of SEGMENTS */ int segms = 0; unsigned int dims; int iv; int ib; int nItem; double x; double y; double z; double m; double x0; double y0; double z0; gaiaLinestringPtr ln; gaiaPolygonPtr pg; gaiaRingPtr rng; GEOSGeometry *geos; GEOSGeometry *geos_item; GEOSGeometry **geos_coll; GEOSCoordSequence *cs; if (!gaia) return NULL; ln = gaia->FirstLinestring; while (ln) { /* counting how many SEGMENTs are there */ segms += ln->Points - 1; ln = ln->Next; } pg = gaia->FirstPolygon; while (pg) { /* counting how many SEGMENTs are there */ rng = pg->Exterior; segms += rng->Points - 1; /* exterior ring */ for (ib = 0; ib < pg->NumInteriors; ib++) { /* interior ring */ rng = pg->Interiors + ib; segms += rng->Points - 1; } pg = pg->Next; } if (segms == 0) return NULL; switch (gaia->DimensionModel) { case GAIA_XY_Z: case GAIA_XY_Z_M: dims = 3; break; default: dims = 2; break; }; nItem = 0; geos_coll = malloc (sizeof (GEOSGeometry *) * (segms)); ln = gaia->FirstLinestring; while (ln) { for (iv = 0; iv < ln->Points; iv++) { z = 0.0; m = 0.0; switch (ln->DimensionModel) { case GAIA_XY_Z: gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); break; case GAIA_XY_M: gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); break; case GAIA_XY_Z_M: gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); break; default: gaiaGetPoint (ln->Coords, iv, &x, &y); break; }; if (iv > 0) { cs = GEOSCoordSeq_create (2, dims); if (dims == 3) { GEOSCoordSeq_setX (cs, 0, x0); GEOSCoordSeq_setY (cs, 0, y0); GEOSCoordSeq_setZ (cs, 0, z0); GEOSCoordSeq_setX (cs, 1, x); GEOSCoordSeq_setY (cs, 1, y); GEOSCoordSeq_setZ (cs, 1, z); } else { GEOSCoordSeq_setX (cs, 0, x0); GEOSCoordSeq_setY (cs, 0, y0); GEOSCoordSeq_setX (cs, 1, x); GEOSCoordSeq_setY (cs, 1, y); } geos_item = GEOSGeom_createLineString (cs); *(geos_coll + nItem++) = geos_item; } x0 = x; y0 = y; z0 = z; } ln = ln->Next; } pg = gaia->FirstPolygon; while (pg) { rng = pg->Exterior; for (iv = 0; iv < rng->Points; iv++) { /* exterior ring */ z = 0.0; m = 0.0; switch (rng->DimensionModel) { case GAIA_XY_Z: gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); break; case GAIA_XY_M: gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); break; case GAIA_XY_Z_M: gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); break; default: gaiaGetPoint (rng->Coords, iv, &x, &y); break; }; if (iv > 0) { cs = GEOSCoordSeq_create (2, dims); if (dims == 3) { GEOSCoordSeq_setX (cs, 0, x0); GEOSCoordSeq_setY (cs, 0, y0); GEOSCoordSeq_setZ (cs, 0, z0); GEOSCoordSeq_setX (cs, 1, x); GEOSCoordSeq_setY (cs, 1, y); GEOSCoordSeq_setZ (cs, 1, z); } else { GEOSCoordSeq_setX (cs, 0, x0); GEOSCoordSeq_setY (cs, 0, y0); GEOSCoordSeq_setX (cs, 1, x); GEOSCoordSeq_setY (cs, 1, y); } geos_item = GEOSGeom_createLineString (cs); *(geos_coll + nItem++) = geos_item; } x0 = x; y0 = y; z0 = z; } for (ib = 0; ib < pg->NumInteriors; ib++) { /* interior ring */ rng = pg->Interiors + ib; for (iv = 0; iv < rng->Points; iv++) { /* exterior ring */ z = 0.0; m = 0.0; switch (rng->DimensionModel) { case GAIA_XY_Z: gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); break; case GAIA_XY_M: gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); break; case GAIA_XY_Z_M: gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); break; default: gaiaGetPoint (rng->Coords, iv, &x, &y); break; }; if (iv > 0) { cs = GEOSCoordSeq_create (2, dims); if (dims == 3) { GEOSCoordSeq_setX (cs, 0, x0); GEOSCoordSeq_setY (cs, 0, y0); GEOSCoordSeq_setZ (cs, 0, z0); GEOSCoordSeq_setX (cs, 1, x); GEOSCoordSeq_setY (cs, 1, y); GEOSCoordSeq_setZ (cs, 1, z); } else { GEOSCoordSeq_setX (cs, 0, x0); GEOSCoordSeq_setY (cs, 0, y0); GEOSCoordSeq_setX (cs, 1, x); GEOSCoordSeq_setY (cs, 1, y); } geos_item = GEOSGeom_createLineString (cs); *(geos_coll + nItem++) = geos_item; } x0 = x; y0 = y; z0 = z; } } pg = pg->Next; } geos = GEOSGeom_createCollection (GEOS_MULTILINESTRING, geos_coll, segms); free (geos_coll); GEOSSetSRID (geos, gaia->Srid); return geos; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaShortestLine (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { /* attempts to compute the the shortest line between two geometries */ GEOSGeometry *g1_points; GEOSGeometry *g1_segments; const GEOSGeometry *g1_item; GEOSGeometry *g2_points; GEOSGeometry *g2_segments; const GEOSGeometry *g2_item; const GEOSCoordSequence *cs; GEOSGeometry *g_pt; gaiaGeomCollPtr result; gaiaLinestringPtr ln; int nItems1; int nItems2; int it1; int it2; unsigned int dims; double x_ini; double y_ini; double z_ini; double x_fin; double y_fin; double z_fin; double dist; double min_dist = DBL_MAX; double projection; if (!geom1 || !geom2) return NULL; g1_points = buildGeosPoints (geom1); g1_segments = buildGeosSegments (geom1); g2_points = buildGeosPoints (geom2); g2_segments = buildGeosSegments (geom2); if (g1_points && g2_points) { /* computing distances between POINTs */ nItems1 = GEOSGetNumGeometries (g1_points); nItems2 = GEOSGetNumGeometries (g2_points); for (it1 = 0; it1 < nItems1; it1++) { g1_item = GEOSGetGeometryN (g1_points, it1); for (it2 = 0; it2 < nItems2; it2++) { g2_item = GEOSGetGeometryN (g2_points, it2); if (GEOSDistance (g1_item, g2_item, &dist)) { if (dist < min_dist) { /* saving min-dist points */ min_dist = dist; cs = GEOSGeom_getCoordSeq (g1_item); GEOSCoordSeq_getDimensions (cs, &dims); if (dims == 3) { GEOSCoordSeq_getX (cs, 0, &x_ini); GEOSCoordSeq_getY (cs, 0, &y_ini); GEOSCoordSeq_getZ (cs, 0, &z_ini); } else { GEOSCoordSeq_getX (cs, 0, &x_ini); GEOSCoordSeq_getY (cs, 0, &y_ini); z_ini = 0.0; } cs = GEOSGeom_getCoordSeq (g2_item); GEOSCoordSeq_getDimensions (cs, &dims); if (dims == 3) { GEOSCoordSeq_getX (cs, 0, &x_fin); GEOSCoordSeq_getY (cs, 0, &y_fin); GEOSCoordSeq_getZ (cs, 0, &z_fin); } else { GEOSCoordSeq_getX (cs, 0, &x_fin); GEOSCoordSeq_getY (cs, 0, &y_fin); z_fin = 0.0; } } } } } } if (g1_points && g2_segments) { /* computing distances between POINTs (g1) and SEGMENTs (g2) */ nItems1 = GEOSGetNumGeometries (g1_points); nItems2 = GEOSGetNumGeometries (g2_segments); for (it1 = 0; it1 < nItems1; it1++) { g1_item = GEOSGetGeometryN (g1_points, it1); for (it2 = 0; it2 < nItems2; it2++) { g2_item = GEOSGetGeometryN (g2_segments, it2); if (GEOSDistance (g1_item, g2_item, &dist)) { if (dist < min_dist) { /* saving min-dist points */ projection = GEOSProject (g2_item, g1_item); g_pt = GEOSInterpolate (g2_item, projection); if (g_pt) { min_dist = dist; cs = GEOSGeom_getCoordSeq (g1_item); GEOSCoordSeq_getDimensions (cs, &dims); if (dims == 3) { GEOSCoordSeq_getX (cs, 0, &x_ini); GEOSCoordSeq_getY (cs, 0, &y_ini); GEOSCoordSeq_getZ (cs, 0, &z_ini); } else { GEOSCoordSeq_getX (cs, 0, &x_ini); GEOSCoordSeq_getY (cs, 0, &y_ini); z_ini = 0.0; } cs = GEOSGeom_getCoordSeq (g_pt); GEOSCoordSeq_getDimensions (cs, &dims); if (dims == 3) { GEOSCoordSeq_getX (cs, 0, &x_fin); GEOSCoordSeq_getY (cs, 0, &y_fin); GEOSCoordSeq_getZ (cs, 0, &z_fin); } else { GEOSCoordSeq_getX (cs, 0, &x_fin); GEOSCoordSeq_getY (cs, 0, &y_fin); z_fin = 0.0; } GEOSGeom_destroy (g_pt); } } } } } } if (g1_segments && g2_points) { /* computing distances between SEGMENTs (g1) and POINTs (g2) */ nItems1 = GEOSGetNumGeometries (g1_segments); nItems2 = GEOSGetNumGeometries (g2_points); for (it1 = 0; it1 < nItems1; it1++) { g1_item = GEOSGetGeometryN (g1_segments, it1); for (it2 = 0; it2 < nItems2; it2++) { g2_item = GEOSGetGeometryN (g2_points, it2); if (GEOSDistance (g1_item, g2_item, &dist)) { if (dist < min_dist) { /* saving min-dist points */ projection = GEOSProject (g1_item, g2_item); g_pt = GEOSInterpolate (g1_item, projection); if (g_pt) { min_dist = dist; cs = GEOSGeom_getCoordSeq (g_pt); GEOSCoordSeq_getDimensions (cs, &dims); if (dims == 3) { GEOSCoordSeq_getX (cs, 0, &x_ini); GEOSCoordSeq_getY (cs, 0, &y_ini); GEOSCoordSeq_getZ (cs, 0, &z_ini); } else { GEOSCoordSeq_getX (cs, 0, &x_ini); GEOSCoordSeq_getY (cs, 0, &y_ini); z_ini = 0.0; } cs = GEOSGeom_getCoordSeq (g2_item); GEOSCoordSeq_getDimensions (cs, &dims); if (dims == 3) { GEOSCoordSeq_getX (cs, 0, &x_fin); GEOSCoordSeq_getY (cs, 0, &y_fin); GEOSCoordSeq_getZ (cs, 0, &z_fin); } else { GEOSCoordSeq_getX (cs, 0, &x_fin); GEOSCoordSeq_getY (cs, 0, &y_fin); z_fin = 0.0; } GEOSGeom_destroy (g_pt); } } } } } } if (g1_points) GEOSGeom_destroy (g1_points); if (g1_segments) GEOSGeom_destroy (g1_segments); if (g2_points) GEOSGeom_destroy (g2_points); if (g2_segments) GEOSGeom_destroy (g2_segments); if (min_dist == DBL_MAX || min_dist <= 0.0) return NULL; /* building the shortest line */ switch (geom1->DimensionModel) { case GAIA_XY_Z: result = gaiaAllocGeomCollXYZ (); break; case GAIA_XY_M: result = gaiaAllocGeomCollXYM (); break; case GAIA_XY_Z_M: result = gaiaAllocGeomCollXYZM (); break; default: result = gaiaAllocGeomColl (); break; }; result->Srid = geom1->Srid; ln = gaiaAddLinestringToGeomColl (result, 2); switch (ln->DimensionModel) { case GAIA_XY_Z: gaiaSetPointXYZ (ln->Coords, 0, x_ini, y_ini, z_ini); gaiaSetPointXYZ (ln->Coords, 1, x_fin, y_fin, z_fin); break; case GAIA_XY_M: gaiaSetPointXYM (ln->Coords, 0, x_ini, y_ini, 0.0); gaiaSetPointXYM (ln->Coords, 1, x_fin, y_fin, 0.0); break; case GAIA_XY_Z_M: gaiaSetPointXYZM (ln->Coords, 0, x_ini, y_ini, z_ini, 0.0); gaiaSetPointXYZM (ln->Coords, 1, x_fin, y_fin, z_fin, 0.0); break; default: gaiaSetPoint (ln->Coords, 0, x_ini, y_ini); gaiaSetPoint (ln->Coords, 1, x_fin, y_fin); break; }; return result; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSnap (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double tolerance) { /* attempts to "snap" geom1 on geom2 using the given tolerance */ GEOSGeometry *g1; GEOSGeometry *g2; GEOSGeometry *g3; gaiaGeomCollPtr result; if (!geom1 || !geom2) return NULL; g1 = gaiaToGeos (geom1); g2 = gaiaToGeos (geom2); g3 = GEOSSnap (g1, g2, tolerance); GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); if (!g3) return NULL; if (geom1->DimensionModel == GAIA_XY_Z) result = gaiaFromGeos_XYZ (g3); else if (geom1->DimensionModel == GAIA_XY_M) result = gaiaFromGeos_XYM (g3); else if (geom1->DimensionModel == GAIA_XY_Z_M) result = gaiaFromGeos_XYZM (g3); else result = gaiaFromGeos_XY (g3); GEOSGeom_destroy (g3); if (result == NULL) return NULL; result->Srid = geom1->Srid; return result; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineMerge (gaiaGeomCollPtr geom) { /* attempts to reassemble lines from a collection of sparse fragments */ GEOSGeometry *g1; GEOSGeometry *g2; gaiaGeomCollPtr result; if (!geom) return NULL; if (gaiaIsToxic (geom)) return NULL; g1 = gaiaToGeos (geom); g2 = GEOSLineMerge (g1); GEOSGeom_destroy (g1); if (!g2) return NULL; if (geom->DimensionModel == GAIA_XY_Z) result = gaiaFromGeos_XYZ (g2); else if (geom->DimensionModel == GAIA_XY_M) result = gaiaFromGeos_XYM (g2); else if (geom->DimensionModel == GAIA_XY_Z_M) result = gaiaFromGeos_XYZM (g2); else result = gaiaFromGeos_XY (g2); GEOSGeom_destroy (g2); if (result == NULL) return NULL; result->Srid = geom->Srid; return result; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaUnaryUnion (gaiaGeomCollPtr geom) { /* Unary Union (single Collection) */ GEOSGeometry *g1; GEOSGeometry *g2; gaiaGeomCollPtr result; if (!geom) return NULL; if (gaiaIsToxic (geom)) return NULL; g1 = gaiaToGeos (geom); g2 = GEOSUnaryUnion (g1); GEOSGeom_destroy (g1); if (!g2) return NULL; if (geom->DimensionModel == GAIA_XY_Z) result = gaiaFromGeos_XYZ (g2); else if (geom->DimensionModel == GAIA_XY_M) result = gaiaFromGeos_XYM (g2); else if (geom->DimensionModel == GAIA_XY_Z_M) result = gaiaFromGeos_XYZM (g2); else result = gaiaFromGeos_XY (g2); GEOSGeom_destroy (g2); if (result == NULL) return NULL; result->Srid = geom->Srid; return result; } static void rotateRingBeforeCut (gaiaLinestringPtr ln, gaiaPointPtr node) { /* rotating a Ring, so to ensure that Start/End points match the node */ int io = 0; int iv; int copy = 0; int base_idx = -1; double x; double y; double z; double m; gaiaLinestringPtr new_ln = NULL; if (ln->DimensionModel == GAIA_XY_Z) new_ln = gaiaAllocLinestringXYZ (ln->Points); else if (ln->DimensionModel == GAIA_XY_M) new_ln = gaiaAllocLinestringXYM (ln->Points); else if (ln->DimensionModel == GAIA_XY_Z_M) new_ln = gaiaAllocLinestringXYZM (ln->Points); else new_ln = gaiaAllocLinestring (ln->Points); /* first pass */ for (iv = 0; iv < ln->Points; iv++) { if (ln->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); } else if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); } if (!copy) /* CAZZO */ { if (ln->DimensionModel == GAIA_XY_Z || ln->DimensionModel == GAIA_XY_Z_M) { if (node->X == x && node->Y == y && node->Z == z) { base_idx = iv; copy = 1; } } else if (node->X == x && node->Y == y) { base_idx = iv; copy = 1; } } if (copy) { /* copying points */ if (ln->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (new_ln->Coords, io, x, y, z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (new_ln->Coords, io, x, y, m); } else if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (new_ln->Coords, io, x, y, z, m); } else { gaiaSetPoint (new_ln->Coords, io, x, y); } io++; } } if (base_idx <= 0) { gaiaFreeLinestring (new_ln); return; } /* second pass */ for (iv = 1; iv <= base_idx; iv++) { if (ln->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); } else if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); } if (ln->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (new_ln->Coords, io, x, y, z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (new_ln->Coords, io, x, y, m); } else if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (new_ln->Coords, io, x, y, z, m); } else { gaiaSetPoint (new_ln->Coords, io, x, y); } io++; } /* copying back */ for (iv = 0; iv < new_ln->Points; iv++) { if (ln->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (new_ln->Coords, iv, &x, &y, &z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (new_ln->Coords, iv, &x, &y, &m); } else if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (new_ln->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (new_ln->Coords, iv, &x, &y); } if (ln->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ln->Coords, iv, x, y, z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ln->Coords, iv, x, y, m); } else if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ln->Coords, iv, x, y, z, m); } else { gaiaSetPoint (ln->Coords, iv, x, y); } } gaiaFreeLinestring (new_ln); } static void extractSubLine (gaiaGeomCollPtr result, gaiaLinestringPtr ln, int i_start, int i_end) { /* extracting s SubLine */ int iv; int io = 0; int pts = i_end - i_start + 1; gaiaLinestringPtr new_ln = NULL; double x; double y; double z; double m; new_ln = gaiaAddLinestringToGeomColl (result, pts); for (iv = i_start; iv <= i_end; iv++) { if (ln->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); } else if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); } if (ln->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (new_ln->Coords, io, x, y, z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (new_ln->Coords, io, x, y, m); } else if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (new_ln->Coords, io, x, y, z, m); } else { gaiaSetPoint (new_ln->Coords, io, x, y); } io++; } } static void cutLineAtNodes (gaiaLinestringPtr ln, gaiaPointPtr pt_base, gaiaGeomCollPtr result) { /* attempts to cut a single Line accordingly to given nodes */ int closed = 0; int match = 0; int iv; int i_start; double x; double y; double z; double m; gaiaPointPtr pt; gaiaPointPtr node = NULL; if (gaiaIsClosed (ln)) closed = 1; /* pre-check */ for (iv = 0; iv < ln->Points; iv++) { if (ln->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); } else if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); } pt = pt_base; while (pt) { if (ln->DimensionModel == GAIA_XY_Z || ln->DimensionModel == GAIA_XY_Z_M) { if (pt->X == x && pt->Y == y && pt->Z == z) { node = pt; match++; } } else if (pt->X == x && pt->Y == y) { node = pt; match++; } pt = pt->Next; } } if (closed && node) rotateRingBeforeCut (ln, node); i_start = 0; for (iv = 1; iv < ln->Points - 1; iv++) { /* identifying sub-linestrings */ if (ln->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); } else if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); } match = 0; pt = pt_base; while (pt) { if (ln->DimensionModel == GAIA_XY_Z || ln->DimensionModel == GAIA_XY_Z_M) { if (pt->X == x && pt->Y == y && pt->Z == z) { match = 1; break; } } else if (pt->X == x && pt->Y == y) { match = 1; break; } pt = pt->Next; } if (match) { /* cutting the line */ extractSubLine (result, ln, i_start, iv); i_start = iv; } } if (i_start != 0 && i_start != ln->Points - 1) { /* extracting the last SubLine */ extractSubLine (result, ln, i_start, ln->Points - 1); } else { /* cloning the untouched Line */ extractSubLine (result, ln, 0, ln->Points - 1); } } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLinesCutAtNodes (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { /* attempts to cut lines accordingly to nodes */ int pts1 = 0; int lns1 = 0; int pgs1 = 0; int pts2 = 0; int lns2 = 0; int pgs2 = 0; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; gaiaGeomCollPtr result = NULL; if (!geom1) return NULL; if (!geom2) return NULL; /* both Geometryes should have identical Dimensions */ if (geom1->DimensionModel != geom2->DimensionModel) return NULL; pt = geom1->FirstPoint; while (pt) { pts1++; pt = pt->Next; } ln = geom1->FirstLinestring; while (ln) { lns1++; ln = ln->Next; } pg = geom1->FirstPolygon; while (pg) { pgs1++; pg = pg->Next; } pt = geom2->FirstPoint; while (pt) { pts2++; pt = pt->Next; } ln = geom2->FirstLinestring; while (ln) { lns2++; ln = ln->Next; } pg = geom2->FirstPolygon; while (pg) { pgs2++; pg = pg->Next; } /* the first Geometry is expected to contain one or more Linestring(s) */ if (pts1 == 0 && lns1 > 0 && pgs1 == 0) ; else return NULL; /* the second Geometry is expected to contain one or more Point(s) */ if (pts2 > 0 && lns2 == 0 && pgs2 == 0) ; else return NULL; /* attempting to cut Lines accordingly to Nodes */ if (geom1->DimensionModel == GAIA_XY_Z) result = gaiaAllocGeomCollXYZ (); else if (geom1->DimensionModel == GAIA_XY_M) result = gaiaAllocGeomCollXYM (); else if (geom1->DimensionModel == GAIA_XY_Z_M) result = gaiaAllocGeomCollXYZM (); else result = gaiaAllocGeomColl (); ln = geom1->FirstLinestring; while (ln) { cutLineAtNodes (ln, geom2->FirstPoint, result); ln = ln->Next; } if (result->FirstLinestring == NULL) { gaiaFreeGeomColl (result); return NULL; } result->Srid = geom1->Srid; return result; } #endif /* end GEOS advanced features */ #ifdef GEOS_TRUNK /* GEOS experimental features */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaDelaunayTriangulation (gaiaGeomCollPtr geom, double tolerance, int only_edges) { /* Delaunay Triangulation */ GEOSGeometry *g1; GEOSGeometry *g2; gaiaGeomCollPtr result; if (!geom) return NULL; g1 = gaiaToGeos (geom); g2 = GEOSDelaunayTriangulation (g1, tolerance, only_edges); GEOSGeom_destroy (g1); if (!g2) return NULL; if (geom->DimensionModel == GAIA_XY_Z) result = gaiaFromGeos_XYZ (g2); else if (geom->DimensionModel == GAIA_XY_M) result = gaiaFromGeos_XYM (g2); else if (geom->DimensionModel == GAIA_XY_Z_M) result = gaiaFromGeos_XYZM (g2); else result = gaiaFromGeos_XY (g2); GEOSGeom_destroy (g2); if (result == NULL) return NULL; result->Srid = geom->Srid; if (only_edges) result->DeclaredType = GAIA_MULTILINESTRING; else result->DeclaredType = GAIA_MULTIPOLYGON; return result; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaVoronojDiagram (gaiaGeomCollPtr geom, double extra_frame_size, double tolerance, int only_edges) { /* Voronoj Diagram */ GEOSGeometry *g1; GEOSGeometry *g2; gaiaGeomCollPtr result; gaiaPolygonPtr pg; int pgs = 0; int errs = 0; void *voronoj; if (!geom) return NULL; g1 = gaiaToGeos (geom); g2 = GEOSDelaunayTriangulation (g1, tolerance, 0); GEOSGeom_destroy (g1); if (!g2) return NULL; if (geom->DimensionModel == GAIA_XY_Z) result = gaiaFromGeos_XYZ (g2); else if (geom->DimensionModel == GAIA_XY_M) result = gaiaFromGeos_XYM (g2); else if (geom->DimensionModel == GAIA_XY_Z_M) result = gaiaFromGeos_XYZM (g2); else result = gaiaFromGeos_XY (g2); GEOSGeom_destroy (g2); if (result == NULL) return NULL; pg = result->FirstPolygon; while (pg) { /* counting how many triangles are in Delaunay */ if (delaunay_triangle_check (pg)) pgs++; else errs++; pg = pg->Next; } if (pgs == 0 || errs) { gaiaFreeGeomColl (result); return NULL; } /* building the Voronoj Diagram from Delaunay */ voronoj = voronoj_build (pgs, result->FirstPolygon, extra_frame_size); gaiaFreeGeomColl (result); /* creating the Geometry representing Voronoj */ if (geom->DimensionModel == GAIA_XY_Z) result = gaiaAllocGeomCollXYZ (); else if (geom->DimensionModel == GAIA_XY_M) result = gaiaAllocGeomCollXYM (); else if (geom->DimensionModel == GAIA_XY_Z_M) result = gaiaAllocGeomCollXYZM (); else result = gaiaAllocGeomColl (); result = voronoj_export (voronoj, result, only_edges); voronoj_free (voronoj); result->Srid = geom->Srid; if (only_edges) result->DeclaredType = GAIA_MULTILINESTRING; else result->DeclaredType = GAIA_MULTIPOLYGON; return result; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaConcaveHull (gaiaGeomCollPtr geom, double factor, double tolerance, int allow_holes) { /* Concave Hull */ GEOSGeometry *g1; GEOSGeometry *g2; gaiaGeomCollPtr result; gaiaGeomCollPtr concave_hull; gaiaPolygonPtr pg; int pgs = 0; int errs = 0; if (!geom) return NULL; g1 = gaiaToGeos (geom); g2 = GEOSDelaunayTriangulation (g1, tolerance, 0); GEOSGeom_destroy (g1); if (!g2) return NULL; if (geom->DimensionModel == GAIA_XY_Z) result = gaiaFromGeos_XYZ (g2); else if (geom->DimensionModel == GAIA_XY_M) result = gaiaFromGeos_XYM (g2); else if (geom->DimensionModel == GAIA_XY_Z_M) result = gaiaFromGeos_XYZM (g2); else result = gaiaFromGeos_XY (g2); GEOSGeom_destroy (g2); if (result == NULL) return NULL; pg = result->FirstPolygon; while (pg) { /* counting how many triangles are in Delaunay */ if (delaunay_triangle_check (pg)) pgs++; else errs++; pg = pg->Next; } if (pgs == 0 || errs) { gaiaFreeGeomColl (result); return NULL; } /* building the Concave Hull from Delaunay */ concave_hull = concave_hull_build (result->FirstPolygon, geom->DimensionModel, factor, allow_holes); gaiaFreeGeomColl (result); if (!concave_hull) return NULL; result = concave_hull; result->Srid = geom->Srid; return result; } #endif /* end GEOS experimental features */ #endif /* end including GEOS */ �������������������������������������������������������������������������������������������������������������������������������libspatialite-4.1.1/src/gaiageo/flex/���������������������������������������������������������������0000775�0001750�0001750�00000000000�12163503225�014466� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.1.1/src/gaiageo/flex/gmlLexer.l�����������������������������������������������������0000664�0001750�0001750�00000006740�12163502133�016346� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* gmlLexer.l -- GML parser - FLEX config version 2.4, 2011 June 3 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ %option prefix="Gml" %option reentrant %option extra-type="struct gml_data *" %option noinput %option nounput /** * The main string-token matcher. * The lower case part is probably not needed. We should really be converting * The string to all uppercase/lowercase to make it case iNsEnSiTiVe. * What Flex will do is, For the input string, beginning from the front, Flex * will try to match with any of the defined tokens from below. Flex will * then match the string of longest length. Suppose the string is: POINTM, * Flex would match both POINT and POINTM, but since POINTM is the longer * of the two tokens, FLEX will match POINTM. */ %% "/" { gml_freeString(&(Gmlget_extra(yyscanner)->GmlLval.pval)); return GML_END; } "=" { gml_freeString(&(Gmlget_extra(yyscanner)->GmlLval.pval)); return GML_EQ; } "<" { gml_freeString(&(Gmlget_extra(yyscanner)->GmlLval.pval)); return GML_OPEN; } ">" { gml_freeString(&(Gmlget_extra(yyscanner)->GmlLval.pval)); return GML_CLOSE; } [0-9,\.\+-]* { gml_saveString(&(Gmlget_extra(yyscanner)->GmlLval.pval), yytext); return GML_COORD; } \"[^<>\"]*\" { gml_saveString(&(Gmlget_extra(yyscanner)->GmlLval.pval), yytext); return GML_VALUE; } [a-zA-Z_][a-zA-Z_:0-9]* { gml_saveString(&(Gmlget_extra(yyscanner)->GmlLval.pval), yytext); return GML_KEYWORD; } [ \t] { gml_freeString(&(Gmlget_extra(yyscanner)->GmlLval.pval)); Gmlget_extra(yyscanner)->gml_col += (int) strlen(yytext); } /* ignore but count white space */ \n { gml_freeString(&(Gmlget_extra(yyscanner)->GmlLval.pval)); Gmlget_extra(yyscanner)->gml_col = 0; Gmlget_extra(yyscanner)->gml_line++; } . { gml_freeString(&(Gmlget_extra(yyscanner)->GmlLval.pval)); Gmlget_extra(yyscanner)->gml_col += (int) strlen(yytext); return -1; } %% int yywrap(yyscan_t yyscanner ) { return 1; } ��������������������������������libspatialite-4.1.1/src/gaiageo/flex/Makefile.am����������������������������������������������������0000664�0001750�0001750�00000000135�12163502133�016436� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ EXTRA_DIST = ewktLexer.l geoJsonLexer.l gmlLexer.l \ kmlLexer.l vanuatuLexer.l ReadMe.txt �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.1.1/src/gaiageo/flex/geoJsonLexer.l�������������������������������������������������0000664�0001750�0001750�00000012352�12163502133�017167� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* geoJsonLexer.l -- GeoJSON parser - FLEX config version 2.4, 2011 May 16 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ %option prefix="GeoJson" %option reentrant %option extra-type="struct geoJson_data *" %option nounput %option noinput /** * The main string-token matcher. * The lower case part is probably not needed. We should really be converting * The string to all uppercase/lowercase to make it case iNsEnSiTiVe. * What Flex will do is, For the input string, beginning from the front, Flex * will try to match with any of the defined tokens from below. Flex will * then match the string of longest length. Suppose the string is: POINTM, * Flex would match both POINT and POINTM, but since POINTM is the longer * of the two tokens, FLEX will match POINTM. */ %% -?[0-9]+|-?[0-9]+"."[0-9]*|"+"?[0-9]+|"+"?[0-9]+"."[0-9]* { GeoJsonget_extra(yyscanner)->geoJson_col += (int) strlen(yytext); GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = atof(yytext); return GEOJSON_NUM; } -?"\""EPSG:-?[0-9]+"\"" { GeoJsonget_extra(yyscanner)->geoJson_col += (int) strlen(yytext); GeoJsonget_extra(yyscanner)->GeoJsonLval.ival = atoi(yytext+6); return GEOJSON_SHORT_SRID; } -?"\""urn:ogc:def:crs:EPSG:-?[0-9]+"\"" { GeoJsonget_extra(yyscanner)->geoJson_col += (int) strlen(yytext); GeoJsonget_extra(yyscanner)->GeoJsonLval.ival = atoi(yytext+22); return GEOJSON_LONG_SRID; } "," { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_COMMA; } ":" { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_COLON; } "{" { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_OPEN_BRACE; } "}" { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_CLOSE_BRACE; } "[" { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_OPEN_BRACKET; } "]" { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_CLOSE_BRACKET; } (?-i:"\"type\"") { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_TYPE; } (?-i:"\"coordinates\"") { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_COORDS; } (?-i:"\"geometries\"") { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_GEOMS; } (?-i:"\"bbox\"") { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_BBOX; } (?-i:"\"name\"") { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_NAME; } (?-i:"\"properties\"") { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_PROPS; } (?-i:"\"crs\"") { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_CRS; } (?-i:"\"Point\"") { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_POINT; } (?-i:"\"LineString\"") { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_LINESTRING; } (?-i:"\"Polygon\"") { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_POLYGON; } (?-i:"\"MultiPoint\"") { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_MULTIPOINT; } (?-i:"\"MultiLineString\"") { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_MULTILINESTRING; } (?-i:"\"MultiPolygon\"") { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_MULTIPOLYGON; } (?-i:"\"GeometryCollection\"") { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_GEOMETRYCOLLECTION; } [ \t] { GeoJsonget_extra(yyscanner)->geoJson_col += (int) strlen(yytext); } /* ignore but count white space */ \n { GeoJsonget_extra(yyscanner)->geoJson_col = 0; GeoJsonget_extra(yyscanner)->geoJson_line++; } . { GeoJsonget_extra(yyscanner)->geoJson_col += (int) strlen(yytext); return -1; } %% int yywrap(yyscan_t yyscanner ) { return 1; } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.1.1/src/gaiageo/flex/kmlLexer.l�����������������������������������������������������0000664�0001750�0001750�00000006741�12163502133�016353� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* kmlLexer.l -- KML parser - FLEX config version 2.4, 2011 June 14 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ %option prefix="Kml" %option reentrant %option extra-type="struct kml_data *" %option noinput %option nounput /** * The main string-token matcher. * The lower case part is probably not needed. We should really be converting * The string to all uppercase/lowercase to make it case iNsEnSiTiVe. * What Flex will do is, For the input string, beginning from the front, Flex * will try to match with any of the defined tokens from below. Flex will * then match the string of longest length. Suppose the string is: POINTM, * Flex would match both POINT and POINTM, but since POINTM is the longer * of the two tokens, FLEX will match POINTM. */ %% "/" { kml_freeString(&(Kmlget_extra(yyscanner)->KmlLval.pval)); return KML_END; } "=" { kml_freeString(&(Kmlget_extra(yyscanner)->KmlLval.pval)); return KML_EQ; } "<" { kml_freeString(&(Kmlget_extra(yyscanner)->KmlLval.pval)); return KML_OPEN; } ">" { kml_freeString(&(Kmlget_extra(yyscanner)->KmlLval.pval)); return KML_CLOSE; } [0-9,\.\+-]* { kml_saveString(&(Kmlget_extra(yyscanner)->KmlLval.pval), yytext); return KML_COORD; } \"[^<>\"]*\" { kml_saveString(&(Kmlget_extra(yyscanner)->KmlLval.pval), yytext); return KML_VALUE; } [a-zA-Z_][a-zA-Z_:0-9]* { kml_saveString(&(Kmlget_extra(yyscanner)->KmlLval.pval), yytext); return KML_KEYWORD; } [ \t] { kml_freeString(&(Kmlget_extra(yyscanner)->KmlLval.pval)); Kmlget_extra(yyscanner)->kml_col += (int) strlen(yytext); } /* ignore but count white space */ \n { kml_freeString(&(Kmlget_extra(yyscanner)->KmlLval.pval)); Kmlget_extra(yyscanner)->kml_col = 0; Kmlget_extra(yyscanner)->kml_line++; } . { kml_freeString(&(Kmlget_extra(yyscanner)->KmlLval.pval)); Kmlget_extra(yyscanner)->kml_col += (int) strlen(yytext); return -1; } %% int yywrap(yyscan_t yyscanner ) { return 1; } �������������������������������libspatialite-4.1.1/src/gaiageo/flex/ewktLexer.l����������������������������������������������������0000664�0001750�0001750�00000010635�12163502133�016537� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* EwktLexer.l -- EWKT parser - FLEX config version 2.4, 2011 May 14 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ %option prefix="Ewkt" %option reentrant %option extra-type="struct ewkt_data *" %option nounput %option noinput /** * The main string-token matcher. * The lower case part is probably not needed. We should really be converting * The string to all uppercase/lowercase to make it case iNsEnSiTiVe. * What Flex will do is, For the input string, beginning from the front, Flex * will try to match with any of the defined tokens from below. Flex will * then match the string of longest length. Suppose the string is: POINTM, * Flex would match both POINT and POINTM, but since POINTM is the longer * of the two tokens, FLEX will match POINTM. */ %% -?[0-9]+|-?[0-9]+"."[0-9]*|"+"?[0-9]+|"+"?[0-9]+"."[0-9]* { Ewktget_extra(yyscanner)->ewkt_col += (int) strlen(yytext); Ewktget_extra(yyscanner)->EwktLval.dval = atof(yytext); return EWKT_NUM; } "," { Ewktget_extra(yyscanner)->EwktLval.dval = 0; return EWKT_COMMA; } "(" { Ewktget_extra(yyscanner)->EwktLval.dval = 0; return EWKT_OPEN_BRACKET; } ")" { Ewktget_extra(yyscanner)->EwktLval.dval = 0; return EWKT_CLOSE_BRACKET; } (?i:"point") { Ewktget_extra(yyscanner)->EwktLval.dval = 0; return EWKT_POINT; } (?i:"pointm") { Ewktget_extra(yyscanner)->EwktLval.dval = 0; return EWKT_POINT_M; } (?i:"linestring") { Ewktget_extra(yyscanner)->EwktLval.dval = 0; return EWKT_LINESTRING; } (?i:"linestringm") { Ewktget_extra(yyscanner)->EwktLval.dval = 0; return EWKT_LINESTRING_M; } (?i:"polygon") { Ewktget_extra(yyscanner)->EwktLval.dval = 0; return EWKT_POLYGON; } (?i:"polygonm") { Ewktget_extra(yyscanner)->EwktLval.dval = 0; return EWKT_POLYGON_M; } (?i:"multipoint") { Ewktget_extra(yyscanner)->EwktLval.dval = 0; return EWKT_MULTIPOINT; } (?i:"multipointm") { Ewktget_extra(yyscanner)->EwktLval.dval = 0; return EWKT_MULTIPOINT_M; } (?i:"multilinestring") { Ewktget_extra(yyscanner)->EwktLval.dval = 0; return EWKT_MULTILINESTRING; } (?i:"multilinestringm") { Ewktget_extra(yyscanner)->EwktLval.dval = 0; return EWKT_MULTILINESTRING_M; } (?i:"multipolygon") { Ewktget_extra(yyscanner)->EwktLval.dval = 0; return EWKT_MULTIPOLYGON; } (?i:"multipolygonm") { Ewktget_extra(yyscanner)->EwktLval.dval = 0; return EWKT_MULTIPOLYGON_M; } (?i:"geometrycollection") { Ewktget_extra(yyscanner)->EwktLval.dval = 0; return EWKT_GEOMETRYCOLLECTION; } (?i:"geometrycollectionm") { Ewktget_extra(yyscanner)->EwktLval.dval = 0; return EWKT_GEOMETRYCOLLECTION_M; } [ \t] { Ewktget_extra(yyscanner)->ewkt_col += (int) strlen(yytext); } /* ignore but count white space */ \n { Ewktget_extra(yyscanner)->ewkt_col = 0; Ewktget_extra(yyscanner)->ewkt_line++; } . { Ewktget_extra(yyscanner)->ewkt_col += (int) strlen(yytext); return -1; } %% int yywrap(yyscan_t yyscanner ) { return 1; } ���������������������������������������������������������������������������������������������������libspatialite-4.1.1/src/gaiageo/flex/ReadMe.txt�����������������������������������������������������0000664�0001750�0001750�00000004617�12163502133�016311� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������The Vanuatu WKT lexer: ====================== 1) in order to make any change to the lexer you have to edit first the definitions file vanuatuLexer.l 2) then run: flex -L vanuatuLexer.l 3) a source file named "lex.VanuatuWkt.c" will be generated during the above step. 3.1) IMPORTANT NOTICE: carefully check the generated *.c code; you should manually replace any occurrence of: fprintf(stderr, ..... with: spatialite_e(..... 3.2) now you should copy this file into the parent dir: cp lex.VanuatuWkt.c .. The EWKT lexer: ================ 1) in order to make any change to the lexer you have to edit first the definitions file ewktLexer.l 2) then run: flex -L ewktLexer.l 3) a source file named "lex.Ewkt.c" will be generated during the above step. 3.1) IMPORTANT NOTICE: carefully check the generated *.c code; you should manually replace any occurrence of: fprintf(stderr, ..... with: spatialite_e(..... 3.2) now you should copy this file into the parent dir: cp lex.Ewkt.c .. The GeoJSON lexer: ================ 1) in order to make any change to the lexer you have to edit first the definitions file geoJsonLexer.l 2) then run: flex -L geoJsonLexer.l 3) a source file named "lex.GeoJson.c" will be generated during the above step. 3.1) IMPORTANT NOTICE: carefully check the generated *.c code; you should manually replace any occurrence of: fprintf(stderr, ..... with: spatialite_e(..... 3.2) now you should copy this file into the parent dir: cp lex.geoJsonLexer.c .. The KML lexer: ================ 1) in order to make any change to the lexer you have to edit first the definitions file kmlLexer.l 2) then run: flex -L kmlLexer.l 3) a source file named "lex.Kml.c" will be generated during the above step. 3.1) IMPORTANT NOTICE: carefully check the generated *.c code; you should manually replace any occurrence of: fprintf(stderr, ..... with: spatialite_e(..... 3.2) now you should copy this file into the parent dir: cp lex.Kml.c .. The GML lexer: ================ 1) in order to make any change to the lexer you have to edit first the definitions file gmlLexer.l 2) then run: flex -L gmlLexer.l 3) a source file named "lex.Gml.c" will be generated during the above step. 3.1) IMPORTANT NOTICE: carefully check the generated *.c code; you should manually replace any occurrence of: fprintf(stderr, ..... with: spatialite_e(..... 3.2) now you should copy this file into the parent dir: cp lex.Gml.c .. �����������������������������������������������������������������������������������������������������������������libspatialite-4.1.1/src/gaiageo/flex/Makefile.in����������������������������������������������������0000664�0001750�0001750�00000024774�12163502133�016466� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.12.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/gaiageo/flex DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = ewktLexer.l geoJsonLexer.l gmlLexer.l \ kmlLexer.l vanuatuLexer.l ReadMe.txt all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/gaiageo/flex/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/gaiageo/flex/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags: TAGS TAGS: ctags: CTAGS CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ����libspatialite-4.1.1/src/gaiageo/flex/vanuatuLexer.l�������������������������������������������������0000664�0001750�0001750�00000017403�12163502133�017250� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* vanuatuLexer.l -- Vanuatu WKT parser - FLEX config version 2.4, 2010 April 2 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): The Vanuatu Team - University of Toronto Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /****************************************************************************** ** The following code was created by Team Vanuatu of The University of Toronto. Authors: Ruppi Rana ruppi.rana@gmail.com Dev Tanna dev.tanna@gmail.com Elias Adum elias.adum@gmail.com Benton Hui benton.hui@gmail.com Abhayan Sundararajan abhayan@gmail.com Chee-Lun Michael Stephen Cho cheelun.cho@gmail.com Nikola Banovic nikola.banovic@gmail.com Yong Jian yong.jian@utoronto.ca Supervisor: Greg Wilson gvwilson@cs.toronto.ca ------------------------------------------------------------------------------- */ %option prefix="VanuatuWkt" %option reentrant %option extra-type="struct vanuatu_data *" %option nounput %option noinput /** * The main string-token matcher. * The lower case part is probably not needed. We should really be converting * The string to all uppercase/lowercase to make it case iNsEnSiTiVe. * What Flex will do is, For the input string, beginning from the front, Flex * will try to match with any of the defined tokens from below. Flex will * then match the string of longest length. Suppose the string is: POINT ZM, * Flex would match both POINT Z and POINT ZM, but since POINT ZM is the longer * of the two tokens, FLEX will match POINT ZM. */ %% -?[0-9]+|-?[0-9]+"."[0-9]*|"+"?[0-9]+|"+"?[0-9]+"."[0-9]* { VanuatuWktget_extra(yyscanner)->vanuatu_col += (int) strlen(yytext); VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = atof(yytext); return VANUATU_NUM; } "," { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_COMMA; } "(" { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_OPEN_BRACKET; } ")" { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_CLOSE_BRACKET; } (?i:"point") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_POINT; } (?i:"point"[ \t\n]*"z") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_POINT_Z; } (?i:"point"[ \t\n]*"m") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_POINT_M; } (?i:"point"[ \t\n]*"zm") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_POINT_ZM; } (?i:"linestring") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_LINESTRING; } (?i:"linestring"[ \t\n]*"z") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_LINESTRING_Z; } (?i:"linestring"[ \t\n]*"m") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_LINESTRING_M; } (?i:"linestring"[ \t\n]*"zm") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_LINESTRING_ZM; } (?i:"polygon") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_POLYGON; } (?i:"polygon"[ \t\n]*"z") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_POLYGON_Z; } (?i:"polygon"[ \t\n]*"m") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_POLYGON_M; } (?i:"polygon"[ \t\n]*"zm") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_POLYGON_ZM; } (?i:"multipoint") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTIPOINT; } (?i:"multipoint"[ \t\n]*"z") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTIPOINT_Z; } (?i:"multipoint"[ \t\n]*"m") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTIPOINT_M; } (?i:"multipoint"[ \t\n]*"zm") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTIPOINT_ZM; } (?i:"multilinestring") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTILINESTRING; } (?i:"multilinestring"[ \t\n]*"z") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTILINESTRING_Z; } (?i:"multilinestring"[ \t\n]*"m") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTILINESTRING_M; } (?i:"multilinestring"[ \t\n]*"zm") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTILINESTRING_ZM; } (?i:"multipolygon") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTIPOLYGON; } (?i:"multipolygon"[ \t\n]*"z") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTIPOLYGON_Z; } (?i:"multipolygon"[ \t\n]*"m") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTIPOLYGON_M; } (?i:"multipolygon"[ \t\n]*"zm") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTIPOLYGON_ZM; } (?i:"geometrycollection") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_GEOMETRYCOLLECTION; } (?i:"geometrycollection"[ \t\n]*"z") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_GEOMETRYCOLLECTION_Z; } (?i:"geometrycollection"[ \t\n]*"m") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_GEOMETRYCOLLECTION_M; } (?i:"geometrycollection"[ \t\n]*"zm") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_GEOMETRYCOLLECTION_ZM; } [ \t] { VanuatuWktget_extra(yyscanner)->vanuatu_col += (int) strlen(yytext); } /* ignore but count white space */ \n { VanuatuWktget_extra(yyscanner)->vanuatu_col = 0; VanuatuWktget_extra(yyscanner)->vanuatu_line++; } . { VanuatuWktget_extra(yyscanner)->vanuatu_col += (int) strlen(yytext); return -1; } %% int yywrap(yyscan_t yyscanner ) { return 1; } /****************************************************************************** ** This is the end of the code that was created by Team Vanuatu ** of The University of Toronto. Authors: Ruppi Rana ruppi.rana@gmail.com Dev Tanna dev.tanna@gmail.com Elias Adum elias.adum@gmail.com Benton Hui benton.hui@gmail.com Abhayan Sundararajan abhayan@gmail.com Chee-Lun Michael Stephen Cho cheelun.cho@gmail.com Nikola Banovic nikola.banovic@gmail.com Yong Jian yong.jian@utoronto.ca Supervisor: Greg Wilson gvwilson@cs.toronto.ca ------------------------------------------------------------------------------- */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.1.1/src/gaiageo/gg_kml.c������������������������������������������������������������0000664�0001750�0001750�00000133455�12163502133�015064� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* gg_kml.c -- KML parser/lexer version 4.1, 2013 May 8 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011-2013 the Initial Developer. All Rights Reserved. Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include <sys/types.h> #include <stdlib.h> #include <stdio.h> #include <string.h> #include <assert.h> #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite/sqlite.h> #include <spatialite/debug.h> #include <spatialite/gaiageo.h> #if defined(_WIN32) || defined(WIN32) #include <io.h> #ifndef isatty #define isatty _isatty #endif #ifndef fileno #define fileno _fileno #endif #endif #define KML_PARSER_OPEN_NODE 1 #define KML_PARSER_SELF_CLOSED_NODE 2 #define KML_PARSER_CLOSED_NODE 3 #define GAIA_KML_UNKNOWN 0 #define GAIA_KML_POINT 1 #define GAIA_KML_LINESTRING 2 #define GAIA_KML_POLYGON 3 #define GAIA_KML_MULTIGEOMETRY 4 #define KML_DYN_NONE 0 #define KML_DYN_DYNLINE 1 #define KML_DYN_GEOM 2 #define KML_DYN_DYNPG 3 #define KML_DYN_NODE 4 #define KML_DYN_COORD 5 #define KML_DYN_ATTRIB 6 #define KML_DYN_BLOCK 1024 /* ** CAVEAT: we must redefine any Lemon/Flex own macro */ #define YYMINORTYPE KML_MINORTYPE #define YY_CHAR KML_YY_CHAR #define input kml_input #define ParseAlloc kmlParseAlloc #define ParseFree kmlParseFree #define ParseStackPeak kmlParseStackPeak #define Parse kmlParse #define yyStackEntry kml_yyStackEntry #define yyzerominor kml_yyzerominor #define yy_accept kml_yy_accept #define yy_action kml_yy_action #define yy_base kml_yy_base #define yy_buffer_stack kml_yy_buffer_stack #define yy_buffer_stack_max kml_yy_buffer_stack_max #define yy_buffer_stack_top kml_yy_buffer_stack_top #define yy_c_buf_p kml_yy_c_buf_p #define yy_chk kml_yy_chk #define yy_def kml_yy_def #define yy_default kml_yy_default #define yy_destructor kml_yy_destructor #define yy_ec kml_yy_ec #define yy_fatal_error kml_yy_fatal_error #define yy_find_reduce_action kml_yy_find_reduce_action #define yy_find_shift_action kml_yy_find_shift_action #define yy_get_next_buffer kml_yy_get_next_buffer #define yy_get_previous_state kml_yy_get_previous_state #define yy_init kml_yy_init #define yy_init_globals kml_yy_init_globals #define yy_lookahead kml_yy_lookahead #define yy_meta kml_yy_meta #define yy_nxt kml_yy_nxt #define yy_parse_failed kml_yy_parse_failed #define yy_pop_parser_stack kml_yy_pop_parser_stack #define yy_reduce kml_yy_reduce #define yy_reduce_ofst kml_yy_reduce_ofst #define yy_shift kml_yy_shift #define yy_shift_ofst kml_yy_shift_ofst #define yy_start kml_yy_start #define yy_state_type kml_yy_state_type #define yy_syntax_error kml_yy_syntax_error #define yy_trans_info kml_yy_trans_info #define yy_try_NUL_trans kml_yy_try_NUL_trans #define yyParser kml_yyParser #define yyStackEntry kml_yyStackEntry #define yyStackOverflow kml_yyStackOverflow #define yyRuleInfo kml_yyRuleInfo #define yyunput kml_yyunput #define yyzerominor kml_yyzerominor #define yyTraceFILE kml_yyTraceFILE #define yyTracePrompt kml_yyTracePrompt #define yyTokenName kml_yyTokenName #define yyRuleName kml_yyRuleName #define ParseTrace kml_ParseTrace #define yylex kml_yylex #define YY_DECL int yylex (yyscan_t yyscanner) /* including LEMON generated header */ #include "Kml.h" typedef union { char *pval; struct symtab *symp; } kml_yystype; #define YYSTYPE kml_yystype /* ** This is a linked-list struct to store all the values for each token. */ typedef struct kmlFlexTokenStruct { char *value; struct kmlFlexTokenStruct *Next; } kmlFlexToken; typedef struct kml_coord { char *Value; struct kml_coord *Next; } kmlCoord; typedef kmlCoord *kmlCoordPtr; typedef struct kml_attr { char *Key; char *Value; struct kml_attr *Next; } kmlAttr; typedef kmlAttr *kmlAttrPtr; typedef struct kml_node { char *Tag; int Type; int Error; struct kml_attr *Attributes; struct kml_coord *Coordinates; struct kml_node *Next; } kmlNode; typedef kmlNode *kmlNodePtr; typedef struct kml_dynamic_ring { gaiaDynamicLinePtr ring; int interior; int has_z; struct kml_dynamic_ring *next; } kmlDynamicRing; typedef kmlDynamicRing *kmlDynamicRingPtr; typedef struct kml_dynamic_polygon { struct kml_dynamic_ring *first; struct kml_dynamic_ring *last; } kmlDynamicPolygon; typedef kmlDynamicPolygon *kmlDynamicPolygonPtr; struct kml_dyn_block { /* a struct taking trace of dynamic allocations */ int type[KML_DYN_BLOCK]; void *ptr[KML_DYN_BLOCK]; int index; struct kml_dyn_block *next; }; struct kml_data { /* a struct used to make the lexer-parser reentrant and thread-safe */ int kml_parse_error; int kml_line; int kml_col; struct kml_dyn_block *kml_first_dyn_block; struct kml_dyn_block *kml_last_dyn_block; kmlNodePtr result; YYSTYPE KmlLval; }; static struct kml_dyn_block * kmlCreateDynBlock (void) { /* allocating a new block to trace dynamic allocations */ int i; struct kml_dyn_block *p = malloc (sizeof (struct kml_dyn_block)); for (i = 0; i < KML_DYN_BLOCK; i++) { /* initializing map entries */ p->type[i] = KML_DYN_NONE; p->ptr[i] = NULL; } p->index = 0; p->next = NULL; return p; } static void kmlMapDynAlloc (struct kml_data *p_data, int type, void *ptr) { /* appending a dynamic allocation into the map */ struct kml_dyn_block *p; if (p_data->kml_first_dyn_block == NULL) { /* inserting the first block of the map */ p = kmlCreateDynBlock (); p_data->kml_first_dyn_block = p; p_data->kml_last_dyn_block = p; } if (p_data->kml_last_dyn_block->index >= KML_DYN_BLOCK) { /* adding a further block to the map */ p = kmlCreateDynBlock (); p_data->kml_last_dyn_block->next = p; p_data->kml_last_dyn_block = p; } p_data->kml_last_dyn_block->type[p_data->kml_last_dyn_block->index] = type; p_data->kml_last_dyn_block->ptr[p_data->kml_last_dyn_block->index] = ptr; p_data->kml_last_dyn_block->index++; } static void kmlMapDynClean (struct kml_data *p_data, void *ptr) { /* deleting a dynamic allocation from the map */ int i; struct kml_dyn_block *p = p_data->kml_first_dyn_block; while (p) { for (i = 0; i < KML_DYN_BLOCK; i++) { switch (p->type[i]) { case KML_DYN_DYNLINE: case KML_DYN_GEOM: case KML_DYN_DYNPG: case KML_DYN_NODE: case KML_DYN_COORD: case KML_DYN_ATTRIB: if (p->ptr[i] == ptr) { p->type[i] = KML_DYN_NONE; return; } break; }; } p = p->next; } } static void kml_free_dyn_polygon (kmlDynamicPolygonPtr dyn) { /* deleting a dynamic polygon (ring collection) */ kmlDynamicRingPtr r; kmlDynamicRingPtr rn; if (!dyn) return; r = dyn->first; while (r) { rn = r->next; if (r->ring) gaiaFreeDynamicLine (r->ring); free (r); r = rn; } free (dyn); } static void kml_free_coord (kmlCoordPtr c) { /* deleting a KML coordinate */ if (c == NULL) return; if (c->Value) free (c->Value); free (c); } static void kml_free_attrib (kmlAttrPtr a) { /* deleting a KML attribute */ if (a == NULL) return; if (a->Key) free (a->Key); if (a->Value) free (a->Value); free (a); } static void kml_free_node (kmlNodePtr n) { /* deleting a KML node */ kmlAttrPtr a; kmlAttrPtr an; kmlCoordPtr c; kmlCoordPtr cn; if (n == NULL) return; a = n->Attributes; while (a) { an = a->Next; kml_free_attrib (a); a = an; } c = n->Coordinates; while (c) { cn = c->Next; kml_free_coord (c); c = cn; } if (n->Tag) free (n->Tag); free (n); } static void kmlCleanMapDynAlloc (struct kml_data *p_data, int clean_all) { /* cleaning the dynamic allocations map */ int i; struct kml_dyn_block *pn; struct kml_dyn_block *p = p_data->kml_first_dyn_block; while (p) { if (clean_all) { for (i = 0; i < KML_DYN_BLOCK; i++) { /* deleting Geometry objects */ switch (p->type[i]) { case KML_DYN_DYNLINE: gaiaFreeDynamicLine ((gaiaDynamicLinePtr) (p->ptr[i])); break; case KML_DYN_GEOM: gaiaFreeGeomColl ((gaiaGeomCollPtr) (p->ptr[i])); break; case KML_DYN_DYNPG: kml_free_dyn_polygon ((kmlDynamicPolygonPtr) (p->ptr[i])); break; case KML_DYN_NODE: kml_free_node ((kmlNodePtr) (p->ptr[i])); break; case KML_DYN_COORD: kml_free_coord ((kmlCoordPtr) (p->ptr[i])); break; case KML_DYN_ATTRIB: kml_free_attrib ((kmlAttrPtr) (p->ptr[i])); break; }; } } /* deleting the map block */ pn = p->next; free (p); p = pn; } } static kmlDynamicPolygonPtr kml_alloc_dyn_polygon (struct kml_data *p_data) { /* creating a dynamic polygon (ring collection) */ kmlDynamicPolygonPtr p = malloc (sizeof (kmlDynamicPolygon)); kmlMapDynAlloc (p_data, KML_DYN_DYNPG, p); p->first = NULL; p->last = NULL; return p; } static void kml_add_polygon_ring (kmlDynamicPolygonPtr dyn_pg, gaiaDynamicLinePtr dyn, int interior, int has_z) { /* inserting a further ring into the collection (dynamic polygon) */ kmlDynamicRingPtr p = malloc (sizeof (kmlDynamicRing)); p->ring = dyn; p->interior = interior; p->has_z = has_z; p->next = NULL; if (dyn_pg->first == NULL) dyn_pg->first = p; if (dyn_pg->last != NULL) dyn_pg->last->next = p; dyn_pg->last = p; } static void kml_freeString (char **ptr) { /* releasing a string from the lexer */ if (*ptr != NULL) free (*ptr); *ptr = NULL; } static void kml_saveString (char **ptr, const char *str) { /* saving a string from the lexer */ int len = strlen (str); kml_freeString (ptr); *ptr = malloc (len + 1); strcpy (*ptr, str); } static kmlCoordPtr kml_coord (struct kml_data *p_data, void *value) { /* creating a coord Item */ int len; kmlFlexToken *tok = (kmlFlexToken *) value; kmlCoordPtr c = malloc (sizeof (kmlCoord)); kmlMapDynAlloc (p_data, KML_DYN_COORD, c); len = strlen (tok->value); c->Value = malloc (len + 1); strcpy (c->Value, tok->value); c->Next = NULL; return c; } static kmlAttrPtr kml_attribute (struct kml_data *p_data, void *key, void *value) { /* creating an attribute */ int len; kmlFlexToken *k_tok = (kmlFlexToken *) key; kmlFlexToken *v_tok = (kmlFlexToken *) value; kmlAttrPtr a = malloc (sizeof (kmlAttr)); kmlMapDynAlloc (p_data, KML_DYN_ATTRIB, a); len = strlen (k_tok->value); a->Key = malloc (len + 1); strcpy (a->Key, k_tok->value); len = strlen (v_tok->value); /* we need to de-quote the string, removing first and last ".." */ if (*(v_tok->value + 0) == '"' && *(v_tok->value + len - 1) == '"') { a->Value = malloc (len - 1); memcpy (a->Value, v_tok->value + 1, len - 1); *(a->Value + len - 1) = '\0'; } else { a->Value = malloc (len + 1); strcpy (a->Value, v_tok->value); } a->Next = NULL; return a; } static void kml_freeTree (kmlNodePtr t) { /* deleting a KML tree */ kmlNodePtr n; kmlNodePtr nn; n = t; while (n) { nn = n->Next; kml_free_node (n); n = nn; } } static kmlNodePtr kml_createNode (struct kml_data *p_data, void *tag, void *attributes, void *coords) { /* creating a node */ kmlAttrPtr a; kmlCoordPtr c; int len; kmlFlexToken *tok = (kmlFlexToken *) tag; kmlNodePtr n = malloc (sizeof (kmlNode)); kmlMapDynAlloc (p_data, KML_DYN_NODE, n); len = strlen (tok->value); n->Tag = malloc (len + 1); strcpy (n->Tag, tok->value); n->Type = KML_PARSER_OPEN_NODE; n->Error = 0; a = (kmlAttrPtr) attributes; while (a) { /* transferring ownership of attributes */ kmlMapDynClean (p_data, a); a = a->Next; } n->Attributes = attributes; c = (kmlCoordPtr) coords; while (c) { /* transferring ownership of attributes */ kmlMapDynClean (p_data, c); c = c->Next; } n->Coordinates = coords; n->Next = NULL; return n; } static kmlNodePtr kml_createSelfClosedNode (struct kml_data *p_data, void *tag, void *attributes) { /* creating a self-closed node */ kmlAttrPtr a; int len; kmlFlexToken *tok = (kmlFlexToken *) tag; kmlNodePtr n = malloc (sizeof (kmlNode)); kmlMapDynAlloc (p_data, KML_DYN_NODE, n); len = strlen (tok->value); n->Tag = malloc (len + 1); strcpy (n->Tag, tok->value); n->Type = KML_PARSER_SELF_CLOSED_NODE; n->Error = 0; a = (kmlAttrPtr) attributes; while (a) { /* transferring ownership of attributes */ kmlMapDynClean (p_data, a); a = a->Next; } n->Attributes = attributes; n->Coordinates = NULL; n->Next = NULL; return n; } static kmlNodePtr kml_closingNode (struct kml_data *p_data, void *tag) { /* creating a closing node */ int len; kmlFlexToken *tok = (kmlFlexToken *) tag; kmlNodePtr n = malloc (sizeof (kmlNode)); kmlMapDynAlloc (p_data, KML_DYN_NODE, n); len = strlen (tok->value); n->Tag = malloc (len + 1); strcpy (n->Tag, tok->value); n->Type = KML_PARSER_CLOSED_NODE; n->Error = 0; n->Attributes = NULL; n->Coordinates = NULL; n->Next = NULL; return n; } static int kml_cleanup (kmlFlexToken * token) { kmlFlexToken *ptok; kmlFlexToken *ptok_n; if (token == NULL) return 0; ptok = token; while (ptok) { ptok_n = ptok->Next; if (ptok->value != NULL) free (ptok->value); free (ptok); ptok = ptok_n; } return 0; } static void kml_xferString (char **p, const char *str) { /* saving some token */ int len; if (str == NULL) { *p = NULL; return; } len = strlen (str); *p = malloc (len + 1); strcpy (*p, str); } static int guessKmlGeometryType (kmlNodePtr node) { /* attempting to guess the Geometry Type for a KML node */ int type = GAIA_KML_UNKNOWN; if (strcmp (node->Tag, "Point") == 0) type = GAIA_KML_POINT; if (strcmp (node->Tag, "LineString") == 0) type = GAIA_KML_LINESTRING; if (strcmp (node->Tag, "Polygon") == 0) type = GAIA_KML_POLYGON; if (strcmp (node->Tag, "MultiGeometry") == 0) type = GAIA_KML_MULTIGEOMETRY; return type; } static int kml_check_coord (const char *value) { /* checking a KML coordinate */ int decimal = 0; const char *p = value; if (*p == '+' || *p == '-') p++; while (*p != '\0') { if (*p == '.') { if (!decimal) decimal = 1; else return 0; } else if (*p >= '0' && *p <= '9') ; else return 0; p++; } return 1; } static int kml_extract_coords (const char *value, double *x, double *y, double *z, int *count) { /* extracting KML coords from a comma-separated string */ const char *in = value; char buf[1024]; char *out = buf; *out = '\0'; while (*in != '\0') { if (*in == ',') { *out = '\0'; if (*buf != '\0') { if (!kml_check_coord (buf)) return 0; switch (*count) { case 0: *x = atof (buf); *count += 1; break; case 1: *y = atof (buf); *count += 1; break; case 2: *z = atof (buf); *count += 1; break; default: *count += 1; break; }; } in++; out = buf; *out = '\0'; continue; } *out++ = *in++; } *out = '\0'; /* parsing the last item */ if (*buf != '\0') { if (!kml_check_coord (buf)) return 0; switch (*count) { case 0: *x = atof (buf); *count += 1; break; case 1: *y = atof (buf); *count += 1; break; case 2: *z = atof (buf); *count += 1; break; default: *count += 1; break; }; } return 1; } static int kml_parse_point_v2 (kmlCoordPtr coord, double *x, double *y, double *z, int *has_z) { /* parsing KML <coordinates> [Point] */ int count = 0; kmlCoordPtr c = coord; while (c) { if (!kml_extract_coords (c->Value, x, y, z, &count)) return 0; c = c->Next; } if (count == 2) { *has_z = 0; return 1; } if (count == 3) { *has_z = 1; return 1; } return 0; } static int kml_parse_point (struct kml_data *p_data, gaiaGeomCollPtr geom, kmlNodePtr node, kmlNodePtr * next) { /* parsing a <Point> */ double x; double y; double z; int has_z; gaiaGeomCollPtr pt; gaiaGeomCollPtr last; if (strcmp (node->Tag, "coordinates") == 0) { /* parsing a KML <Point> */ if (!kml_parse_point_v2 (node->Coordinates, &x, &y, &z, &has_z)) return 0; node = node->Next; if (node == NULL) return 0; if (strcmp (node->Tag, "coordinates") == 0) ; else return 0; node = node->Next; if (node == NULL) return 0; if (strcmp (node->Tag, "Point") == 0) ; else return 0; *next = node->Next; goto ok; } return 0; ok: /* ok, KML nodes match as expected */ if (has_z) { pt = gaiaAllocGeomCollXYZ (); kmlMapDynAlloc (p_data, KML_DYN_GEOM, pt); gaiaAddPointToGeomCollXYZ (pt, x, y, z); } else { pt = gaiaAllocGeomColl (); kmlMapDynAlloc (p_data, KML_DYN_GEOM, pt); gaiaAddPointToGeomColl (pt, x, y); } last = geom; while (1) { /* searching the last Geometry within chain */ if (last->Next == NULL) break; last = last->Next; } last->Next = pt; return 1; } static int kml_extract_multi_coord (const char *value, double *x, double *y, double *z, int *count, int *follow) { /* extracting KML coords from a comma-separated string */ const char *in = value; char buf[1024]; char *out = buf; int last; *out = '\0'; while (*in != '\0') { last = *in; if (*in == ',') { *out = '\0'; if (*buf != '\0') { if (!kml_check_coord (buf)) return 0; switch (*count) { case 0: *x = atof (buf); *count += 1; break; case 1: *y = atof (buf); *count += 1; break; case 2: *z = atof (buf); *count += 1; break; default: *count += 1; break; }; } in++; out = buf; *out = '\0'; continue; } *out++ = *in++; } *out = '\0'; /* parsing the last item */ if (*buf != '\0') { if (!kml_check_coord (buf)) return 0; switch (*count) { case 0: *x = atof (buf); *count += 1; break; case 1: *y = atof (buf); *count += 1; break; case 2: *z = atof (buf); *count += 1; break; default: *count += 1; break; }; } if (last == ',') *follow = 1; else *follow = 0; return 1; } static int kml_extract_multi_coords (kmlCoordPtr coord, double *x, double *y, double *z, int *count, kmlCoordPtr * next) { /* extracting KML coords from a comma-separated string */ int follow; kmlCoordPtr c = coord; while (c) { if (!kml_extract_multi_coord (c->Value, x, y, z, count, &follow)) return 0; if (!follow && c->Next != NULL) { if (*(c->Next->Value) == ',') follow = 1; } if (follow) c = c->Next; else { *next = c->Next; break; } } return 1; } static void kml_add_point_to_line (gaiaDynamicLinePtr dyn, double x, double y) { /* appending a point */ gaiaAppendPointToDynamicLine (dyn, x, y); } static void kml_add_point_to_lineZ (gaiaDynamicLinePtr dyn, double x, double y, double z) { /* appending a point */ gaiaAppendPointZToDynamicLine (dyn, x, y, z); } static int kml_parse_coordinates (kmlCoordPtr coord, gaiaDynamicLinePtr dyn, int *has_z) { /* parsing KML <coordinates> [Linestring or Ring] */ int count = 0; double x; double y; double z; kmlCoordPtr next; kmlCoordPtr c = coord; while (c) { if (!kml_extract_multi_coords (c, &x, &y, &z, &count, &next)) return 0; if (count == 2) { *has_z = 0; kml_add_point_to_line (dyn, x, y); count = 0; } else if (count == 3) { kml_add_point_to_lineZ (dyn, x, y, z); count = 0; } else return 0; c = next; } return 1; } static int kml_count_dyn_points (gaiaDynamicLinePtr dyn) { /* count how many vertices are into sone linestring/ring */ int iv = 0; gaiaPointPtr pt = dyn->First; while (pt) { iv++; pt = pt->Next; } return iv; } static int kml_parse_linestring (struct kml_data *p_data, gaiaGeomCollPtr geom, kmlNodePtr node, kmlNodePtr * next) { /* parsing a <LineString> */ gaiaGeomCollPtr ln; gaiaGeomCollPtr last; gaiaLinestringPtr new_ln; gaiaPointPtr pt; int iv; int has_z = 1; int points = 0; gaiaDynamicLinePtr dyn = gaiaAllocDynamicLine (); kmlMapDynAlloc (p_data, KML_DYN_DYNLINE, dyn); if (strcmp (node->Tag, "coordinates") == 0) { /* parsing a KML <LineString> */ if (!kml_parse_coordinates (node->Coordinates, dyn, &has_z)) goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "coordinates") == 0) ; else goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "LineString") == 0) ; else goto error; *next = node->Next; } /* ok, KML nodes match as expected */ points = kml_count_dyn_points (dyn); if (points < 2) goto error; if (has_z) { ln = gaiaAllocGeomCollXYZ (); kmlMapDynAlloc (p_data, KML_DYN_GEOM, ln); new_ln = gaiaAddLinestringToGeomColl (ln, points); pt = dyn->First; iv = 0; while (pt) { gaiaSetPointXYZ (new_ln->Coords, iv, pt->X, pt->Y, pt->Z); iv++; pt = pt->Next; } } else { ln = gaiaAllocGeomColl (); kmlMapDynAlloc (p_data, KML_DYN_GEOM, ln); new_ln = gaiaAddLinestringToGeomColl (ln, points); pt = dyn->First; iv = 0; while (pt) { gaiaSetPoint (new_ln->Coords, iv, pt->X, pt->Y); iv++; pt = pt->Next; } } last = geom; while (1) { /* searching the last Geometry within chain */ if (last->Next == NULL) break; last = last->Next; } last->Next = ln; gaiaFreeDynamicLine (dyn); return 1; error: gaiaFreeDynamicLine (dyn); return 0; } static gaiaDynamicLinePtr kml_parse_ring (kmlNodePtr node, int *interior, int *has_z, kmlNodePtr * next) { /* parsing a generic KML ring */ gaiaDynamicLinePtr dyn = gaiaAllocDynamicLine (); *has_z = 1; if (strcmp (node->Tag, "outerBoundaryIs") == 0) { /* parsing a KML <outerBoundaryIs> */ node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "LinearRing") == 0) ; else goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "coordinates") == 0) { /* parsing a KML <kml:coordinates> */ if (!kml_parse_coordinates (node->Coordinates, dyn, has_z)) goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "coordinates") == 0) ; else goto error; } else goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "LinearRing") == 0) ; else goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "outerBoundaryIs") == 0) ; else goto error; *interior = 0; *next = node->Next; return dyn; } if (strcmp (node->Tag, "innerBoundaryIs") == 0) { /* parsing a KML <innerBoundaryIs> */ node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "LinearRing") == 0) ; else goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "coordinates") == 0) { /* parsing a KML <coordinates> */ if (!kml_parse_coordinates (node->Coordinates, dyn, has_z)) goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "coordinates") == 0) ; else goto error; } else goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "LinearRing") == 0) ; else goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "innerBoundaryIs") == 0) ; else goto error; *interior = 1; *next = node->Next; return dyn; } error: gaiaFreeDynamicLine (dyn); return 0; } static int kml_parse_polygon (struct kml_data *p_data, gaiaGeomCollPtr geom, kmlNodePtr node, kmlNodePtr * next_n) { /* parsing a <Polygon> */ int interior; int has_z; int inners; int outers; int points; int iv; int ib = 0; gaiaGeomCollPtr pg; gaiaGeomCollPtr last_g; gaiaPolygonPtr new_pg; gaiaRingPtr ring; gaiaDynamicLinePtr dyn; gaiaPointPtr pt; gaiaDynamicLinePtr exterior_ring; kmlNodePtr next; kmlDynamicRingPtr dyn_rng; kmlDynamicPolygonPtr dyn_pg = kml_alloc_dyn_polygon (p_data); kmlNodePtr n = node; while (n) { /* looping on rings */ if (strcmp (n->Tag, "Polygon") == 0) { *next_n = n->Next; break; } dyn = kml_parse_ring (n, &interior, &has_z, &next); if (dyn == NULL) goto error; if (kml_count_dyn_points (dyn) < 4) { /* cannot be a valid ring */ goto error; } /* checking if the ring is closed */ if (has_z) { if (dyn->First->X == dyn->Last->X && dyn->First->Y == dyn->Last->Y && dyn->First->Z == dyn->Last->Z) ; else goto error; } else { if (dyn->First->X == dyn->Last->X && dyn->First->Y == dyn->Last->Y) ; else goto error; } kml_add_polygon_ring (dyn_pg, dyn, interior, has_z); n = next; } /* ok, KML nodes match as expected */ inners = 0; outers = 0; has_z = 1; dyn_rng = dyn_pg->first; while (dyn_rng) { /* verifying the rings collection */ if (dyn_rng->has_z == 0) has_z = 0; if (dyn_rng->interior) inners++; else { outers++; points = kml_count_dyn_points (dyn_rng->ring); exterior_ring = dyn_rng->ring; } dyn_rng = dyn_rng->next; } if (outers != 1) /* no exterior ring declared */ goto error; if (has_z) { pg = gaiaAllocGeomCollXYZ (); kmlMapDynAlloc (p_data, KML_DYN_GEOM, pg); new_pg = gaiaAddPolygonToGeomColl (pg, points, inners); /* initializing the EXTERIOR RING */ ring = new_pg->Exterior; pt = exterior_ring->First; iv = 0; while (pt) { gaiaSetPointXYZ (ring->Coords, iv, pt->X, pt->Y, pt->Z); iv++; pt = pt->Next; } dyn_rng = dyn_pg->first; while (dyn_rng) { /* initializing any INTERIOR RING */ if (dyn_rng->interior == 0) { dyn_rng = dyn_rng->next; continue; } points = kml_count_dyn_points (dyn_rng->ring); ring = gaiaAddInteriorRing (new_pg, ib, points); ib++; pt = dyn_rng->ring->First; iv = 0; while (pt) { gaiaSetPointXYZ (ring->Coords, iv, pt->X, pt->Y, pt->Z); iv++; pt = pt->Next; } dyn_rng = dyn_rng->next; } } else { pg = gaiaAllocGeomColl (); kmlMapDynAlloc (p_data, KML_DYN_GEOM, pg); new_pg = gaiaAddPolygonToGeomColl (pg, points, inners); /* initializing the EXTERIOR RING */ ring = new_pg->Exterior; pt = exterior_ring->First; iv = 0; while (pt) { gaiaSetPoint (ring->Coords, iv, pt->X, pt->Y); iv++; pt = pt->Next; } dyn_rng = dyn_pg->first; while (dyn_rng) { /* initializing any INTERIOR RING */ if (dyn_rng->interior == 0) { dyn_rng = dyn_rng->next; continue; } points = kml_count_dyn_points (dyn_rng->ring); ring = gaiaAddInteriorRing (new_pg, ib, points); ib++; pt = dyn_rng->ring->First; iv = 0; while (pt) { gaiaSetPoint (ring->Coords, iv, pt->X, pt->Y); iv++; pt = pt->Next; } dyn_rng = dyn_rng->next; } } last_g = geom; while (1) { /* searching the last Geometry within chain */ if (last_g->Next == NULL) break; last_g = last_g->Next; } last_g->Next = pg; kml_free_dyn_polygon (dyn_pg); return 1; error: kml_free_dyn_polygon (dyn_pg); return 0; } static int kml_parse_multi_geometry (struct kml_data *p_data, gaiaGeomCollPtr geom, kmlNodePtr node) { /* parsing a <MultiGeometry> */ kmlNodePtr next; kmlNodePtr n = node; while (n) { /* looping on Geometry Members */ if (n->Next == NULL) { /* verifying the last KML node */ if (strcmp (n->Tag, "MultiGeometry") == 0) break; else return 0; } if (strcmp (n->Tag, "Point") == 0) { n = n->Next; if (n == NULL) return 0; if (!kml_parse_point (p_data, geom, n, &next)) return 0; n = next; continue; } else if (strcmp (n->Tag, "LineString") == 0) { n = n->Next; if (n == NULL) return 0; if (!kml_parse_linestring (p_data, geom, n, &next)) return 0; n = next; continue; } else if (strcmp (n->Tag, "Polygon") == 0) { n = n->Next; if (n == NULL) return 0; if (!kml_parse_polygon (p_data, geom, n, &next)) return 0; n = next; continue; } else return 0; } return 1; } static gaiaGeomCollPtr kml_validate_geometry (struct kml_data *p_data, gaiaGeomCollPtr chain) { int xy = 0; int xyz = 0; int pts = 0; int lns = 0; int pgs = 0; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; gaiaPointPtr save_pt; gaiaLinestringPtr save_ln; gaiaPolygonPtr save_pg; gaiaRingPtr i_ring; gaiaRingPtr o_ring; int ib; gaiaGeomCollPtr g; gaiaGeomCollPtr geom; g = chain; while (g) { if (g != chain) { if (g->DimensionModel == GAIA_XY) xy++; if (g->DimensionModel == GAIA_XY_Z) xyz++; } pt = g->FirstPoint; while (pt) { pts++; save_pt = pt; pt = pt->Next; } ln = g->FirstLinestring; while (ln) { lns++; save_ln = ln; ln = ln->Next; } pg = g->FirstPolygon; while (pg) { pgs++; save_pg = pg; pg = pg->Next; } g = g->Next; } if (pts == 1 && lns == 0 && pgs == 0) { /* POINT */ if (xy > 0) { /* 2D [XY] */ geom = gaiaAllocGeomColl (); kmlMapDynAlloc (p_data, KML_DYN_GEOM, pg); if (chain->DeclaredType == GAIA_GEOMETRYCOLLECTION) geom->DeclaredType = GAIA_MULTIPOINT; else geom->DeclaredType = GAIA_POINT; gaiaAddPointToGeomColl (geom, save_pt->X, save_pt->Y); return geom; } else { /* 3D [XYZ] */ geom = gaiaAllocGeomCollXYZ (); kmlMapDynAlloc (p_data, KML_DYN_GEOM, pg); if (chain->DeclaredType == GAIA_GEOMETRYCOLLECTION) geom->DeclaredType = GAIA_MULTIPOINT; else geom->DeclaredType = GAIA_POINT; gaiaAddPointToGeomCollXYZ (geom, save_pt->X, save_pt->Y, save_pt->Z); return geom; } } if (pts == 0 && lns == 1 && pgs == 0) { /* LINESTRING */ if (xy > 0) { /* 2D [XY] */ geom = gaiaAllocGeomColl (); kmlMapDynAlloc (p_data, KML_DYN_GEOM, pg); } else { /* 3D [XYZ] */ geom = gaiaAllocGeomCollXYZ (); kmlMapDynAlloc (p_data, KML_DYN_GEOM, pg); } if (chain->DeclaredType == GAIA_GEOMETRYCOLLECTION) geom->DeclaredType = GAIA_MULTILINESTRING; else geom->DeclaredType = GAIA_LINESTRING; ln = gaiaAddLinestringToGeomColl (geom, save_ln->Points); gaiaCopyLinestringCoords (ln, save_ln); return geom; } if (pts == 0 && lns == 0 && pgs == 1) { /* POLYGON */ if (xy > 0) { /* 2D [XY] */ geom = gaiaAllocGeomColl (); kmlMapDynAlloc (p_data, KML_DYN_GEOM, pg); } else { /* 3D [XYZ] */ geom = gaiaAllocGeomCollXYZ (); kmlMapDynAlloc (p_data, KML_DYN_GEOM, pg); } if (chain->DeclaredType == GAIA_GEOMETRYCOLLECTION) geom->DeclaredType = GAIA_MULTIPOLYGON; else geom->DeclaredType = GAIA_POLYGON; i_ring = save_pg->Exterior; pg = gaiaAddPolygonToGeomColl (geom, i_ring->Points, save_pg->NumInteriors); o_ring = pg->Exterior; gaiaCopyRingCoords (o_ring, i_ring); for (ib = 0; ib < save_pg->NumInteriors; ib++) { i_ring = save_pg->Interiors + ib; o_ring = gaiaAddInteriorRing (pg, ib, i_ring->Points); gaiaCopyRingCoords (o_ring, i_ring); } return geom; } if (pts >= 1 && lns == 0 && pgs == 0) { /* MULTIPOINT */ if (xy > 0) { /* 2D [XY] */ geom = gaiaAllocGeomColl (); kmlMapDynAlloc (p_data, KML_DYN_GEOM, pg); geom->DeclaredType = GAIA_MULTIPOINT; g = chain; while (g) { pt = g->FirstPoint; while (pt) { gaiaAddPointToGeomColl (geom, pt->X, pt->Y); pt = pt->Next; } g = g->Next; } return geom; } else { /* 3D [XYZ] */ geom = gaiaAllocGeomCollXYZ (); kmlMapDynAlloc (p_data, KML_DYN_GEOM, pg); geom->DeclaredType = GAIA_MULTIPOINT; g = chain; while (g) { pt = g->FirstPoint; while (pt) { gaiaAddPointToGeomCollXYZ (geom, pt->X, pt->Y, pt->Z); pt = pt->Next; } g = g->Next; } return geom; } } if (pts == 0 && lns >= 1 && pgs == 0) { /* MULTILINESTRING */ if (xy > 0) { /* 2D [XY] */ geom = gaiaAllocGeomColl (); kmlMapDynAlloc (p_data, KML_DYN_GEOM, pg); geom->DeclaredType = GAIA_MULTILINESTRING; g = chain; while (g) { ln = g->FirstLinestring; while (ln) { save_ln = gaiaAddLinestringToGeomColl (geom, ln->Points); gaiaCopyLinestringCoords (save_ln, ln); ln = ln->Next; } g = g->Next; } return geom; } else { /* 3D [XYZ] */ geom = gaiaAllocGeomCollXYZ (); kmlMapDynAlloc (p_data, KML_DYN_GEOM, pg); geom->DeclaredType = GAIA_MULTILINESTRING; g = chain; while (g) { ln = g->FirstLinestring; while (ln) { save_ln = gaiaAddLinestringToGeomColl (geom, ln->Points); gaiaCopyLinestringCoords (save_ln, ln); ln = ln->Next; } g = g->Next; } return geom; } } if (pts == 0 && lns == 0 && pgs >= 1) { /* MULTIPOLYGON */ if (xy > 0) { /* 2D [XY] */ geom = gaiaAllocGeomColl (); kmlMapDynAlloc (p_data, KML_DYN_GEOM, pg); geom->DeclaredType = GAIA_MULTIPOLYGON; g = chain; while (g) { pg = g->FirstPolygon; while (pg) { i_ring = pg->Exterior; save_pg = gaiaAddPolygonToGeomColl (geom, i_ring->Points, pg->NumInteriors); o_ring = save_pg->Exterior; gaiaCopyRingCoords (o_ring, i_ring); for (ib = 0; ib < pg->NumInteriors; ib++) { i_ring = pg->Interiors + ib; o_ring = gaiaAddInteriorRing (save_pg, ib, i_ring->Points); gaiaCopyRingCoords (o_ring, i_ring); } pg = pg->Next; } g = g->Next; } return geom; } else { /* 3D [XYZ] */ geom = gaiaAllocGeomCollXYZ (); kmlMapDynAlloc (p_data, KML_DYN_GEOM, pg); geom->DeclaredType = GAIA_MULTIPOLYGON; g = chain; while (g) { pg = g->FirstPolygon; while (pg) { i_ring = pg->Exterior; save_pg = gaiaAddPolygonToGeomColl (geom, i_ring->Points, pg->NumInteriors); o_ring = save_pg->Exterior; gaiaCopyRingCoords (o_ring, i_ring); for (ib = 0; ib < pg->NumInteriors; ib++) { i_ring = pg->Interiors + ib; o_ring = gaiaAddInteriorRing (save_pg, ib, i_ring->Points); gaiaCopyRingCoords (o_ring, i_ring); } pg = pg->Next; } g = g->Next; } return geom; } } if ((pts + lns + pgs) > 0) { /* GEOMETRYCOLLECTION */ if (xy > 0) { /* 2D [XY] */ geom = gaiaAllocGeomColl (); kmlMapDynAlloc (p_data, KML_DYN_GEOM, pg); geom->DeclaredType = GAIA_GEOMETRYCOLLECTION; g = chain; while (g) { pt = g->FirstPoint; while (pt) { gaiaAddPointToGeomColl (geom, pt->X, pt->Y); pt = pt->Next; } ln = g->FirstLinestring; while (ln) { save_ln = gaiaAddLinestringToGeomColl (geom, ln->Points); gaiaCopyLinestringCoords (save_ln, ln); ln = ln->Next; } pg = g->FirstPolygon; while (pg) { i_ring = pg->Exterior; save_pg = gaiaAddPolygonToGeomColl (geom, i_ring->Points, pg->NumInteriors); o_ring = save_pg->Exterior; gaiaCopyRingCoords (o_ring, i_ring); for (ib = 0; ib < pg->NumInteriors; ib++) { i_ring = pg->Interiors + ib; o_ring = gaiaAddInteriorRing (save_pg, ib, i_ring->Points); gaiaCopyRingCoords (o_ring, i_ring); } pg = pg->Next; } g = g->Next; } return geom; } else { /* 3D [XYZ] */ geom = gaiaAllocGeomCollXYZ (); kmlMapDynAlloc (p_data, KML_DYN_GEOM, pg); geom->DeclaredType = GAIA_GEOMETRYCOLLECTION; g = chain; while (g) { pt = g->FirstPoint; while (pt) { gaiaAddPointToGeomCollXYZ (geom, pt->X, pt->Y, pt->Z); pt = pt->Next; } ln = g->FirstLinestring; while (ln) { save_ln = gaiaAddLinestringToGeomColl (geom, ln->Points); gaiaCopyLinestringCoords (save_ln, ln); ln = ln->Next; } pg = g->FirstPolygon; while (pg) { i_ring = pg->Exterior; save_pg = gaiaAddPolygonToGeomColl (geom, i_ring->Points, pg->NumInteriors); o_ring = save_pg->Exterior; gaiaCopyRingCoords (o_ring, i_ring); for (ib = 0; ib < pg->NumInteriors; ib++) { i_ring = pg->Interiors + ib; o_ring = gaiaAddInteriorRing (save_pg, ib, i_ring->Points); gaiaCopyRingCoords (o_ring, i_ring); } pg = pg->Next; } g = g->Next; } return geom; } } return NULL; } static void kml_free_geom_chain (gaiaGeomCollPtr geom) { /* deleting a chain of preliminary geometries */ gaiaGeomCollPtr gn; while (geom) { gn = geom->Next; gaiaFreeGeomColl (geom); geom = gn; } } static gaiaGeomCollPtr kml_build_geometry (struct kml_data *p_data, kmlNodePtr tree) { /* attempting to build a geometry from KML nodes */ gaiaGeomCollPtr geom; gaiaGeomCollPtr result; int geom_type; kmlNodePtr next; if (tree == NULL) return NULL; geom_type = guessKmlGeometryType (tree); if (geom_type == GAIA_KML_UNKNOWN) { /* unsupported main geometry type */ return NULL; } /* creating the main geometry */ geom = gaiaAllocGeomColl (); switch (geom_type) { /* parsing KML nodes accordingly with declared KML type */ case GAIA_KML_POINT: geom->DeclaredType = GAIA_POINT; if (!kml_parse_point (p_data, geom, tree->Next, &next)) goto error; break; case GAIA_KML_LINESTRING: geom->DeclaredType = GAIA_LINESTRING; if (!kml_parse_linestring (p_data, geom, tree->Next, &next)) goto error; break; case GAIA_KML_POLYGON: geom->DeclaredType = GAIA_POLYGON; if (!kml_parse_polygon (p_data, geom, tree->Next, &next)) goto error; if (next != NULL) goto error; break; case GAIA_KML_MULTIGEOMETRY: geom->DeclaredType = GAIA_GEOMETRYCOLLECTION; if (!kml_parse_multi_geometry (p_data, geom, tree->Next)) goto error; break; }; /* attempting to build the final geometry */ result = kml_validate_geometry (p_data, geom); if (result == NULL) goto error; kml_free_geom_chain (geom); return result; error: kml_free_geom_chain (geom); return NULL; } /* including LEMON generated code */ #include "Kml.c" /* ** CAVEAT: there is an incompatibility between LEMON and FLEX ** this macro resolves the issue */ #undef yy_accept #define yy_accept yy_kml_flex_accept /* including FLEX generated code */ #include "lex.Kml.c" gaiaGeomCollPtr gaiaParseKml (const unsigned char *dirty_buffer) { void *pParser = ParseAlloc (malloc); /* Linked-list of token values */ kmlFlexToken *tokens = malloc (sizeof (kmlFlexToken)); /* Pointer to the head of the list */ kmlFlexToken *head = tokens; int yv; gaiaGeomCollPtr geom = NULL; yyscan_t scanner; struct kml_data str_data; /* initializing the helper structs */ str_data.kml_line = 1; str_data.kml_col = 1; str_data.kml_parse_error = 0; str_data.kml_first_dyn_block = NULL; str_data.kml_last_dyn_block = NULL; str_data.result = NULL; /* initializing the scanner state */ Kmllex_init_extra (&str_data, &scanner); str_data.KmlLval.pval = NULL; tokens->value = NULL; tokens->Next = NULL; Kml_scan_string ((char *) dirty_buffer, scanner); /* / Keep tokenizing until we reach the end / yylex() will return the next matching Token for us. */ while ((yv = yylex (scanner)) != 0) { if (yv == -1) { str_data.kml_parse_error = 1; break; } tokens->Next = malloc (sizeof (kmlFlexToken)); tokens->Next->Next = NULL; kml_xferString (&(tokens->Next->value), str_data.KmlLval.pval); /* Pass the token to the wkt parser created from lemon */ Parse (pParser, yv, &(tokens->Next->value), &str_data); tokens = tokens->Next; } /* This denotes the end of a line as well as the end of the parser */ Parse (pParser, KML_NEWLINE, 0, &str_data); ParseFree (pParser, free); Kmllex_destroy (scanner); /* Assigning the token as the end to avoid seg faults while cleaning */ tokens->Next = NULL; kml_cleanup (head); kml_freeString (&(str_data.KmlLval.pval)); if (str_data.kml_parse_error) { if (str_data.result) { /* if a Geometry-result has been produced, the stack is already cleaned */ kml_freeTree (str_data.result); kmlCleanMapDynAlloc (&str_data, 0); } else { /* otherwise we are required to clean the stack */ kmlCleanMapDynAlloc (&str_data, 1); } return NULL; } if (str_data.result == NULL) { kmlCleanMapDynAlloc (&str_data, 0); return NULL; } /* attempting to build a geometry from KML */ geom = kml_build_geometry (&str_data, str_data.result); geom->Srid = 4326; kml_freeTree (str_data.result); kmlCleanMapDynAlloc (&str_data, 0); return geom; } /* ** CAVEAT: we must now undefine any Lemon/Flex own macro */ #undef YYNOCODE #undef YYNSTATE #undef YYNRULE #undef YY_SHIFT_MAX #undef YY_REDUCE_USE_DFLT #undef YY_REDUCE_MAX #undef YY_FLUSH_BUFFER #undef YY_DO_BEFORE_ACTION #undef YY_NUM_RULES #undef YY_END_OF_BUFFER #undef YY_END_FILE #undef YYACTIONTYPE #undef YY_SZ_ACTTAB #undef YY_NEW_FILE #undef BEGIN #undef YY_START #undef YY_CURRENT_BUFFER #undef YY_CURRENT_BUFFER_LVALUE #undef YY_STATE_BUF_SIZE #undef YY_DECL #undef YY_FATAL_ERROR #undef YYMINORTYPE #undef YY_CHAR #undef YYSTYPE #undef input #undef ParseAlloc #undef ParseFree #undef ParseStackPeak #undef Parse #undef yyalloc #undef yyfree #undef yyin #undef yyleng #undef yyless #undef yylex #undef yylineno #undef yyout #undef yyrealloc #undef yyrestart #undef yyStackEntry #undef yytext #undef yywrap #undef yyzerominor #undef yy_accept #undef yy_action #undef yy_base #undef yy_buffer_stack #undef yy_buffer_stack_max #undef yy_buffer_stack_top #undef yy_c_buf_p #undef yy_chk #undef yy_create_buffer #undef yy_def #undef yy_default #undef yy_delete_buffer #undef yy_destructor #undef yy_ec #undef yy_fatal_error #undef yy_find_reduce_action #undef yy_find_shift_action #undef yy_flex_debug #undef yy_flush_buffer #undef yy_get_next_buffer #undef yy_get_previous_state #undef yy_init #undef yy_init_buffer #undef yy_init_globals #undef yy_load_buffer #undef yy_load_buffer_state #undef yy_lookahead #undef yy_meta #undef yy_new_buffer #undef yy_nxt #undef yy_parse_failed #undef yy_pop_parser_stack #undef yy_reduce #undef yy_reduce_ofst #undef yy_set_bol #undef yy_set_interactive #undef yy_shift #undef yy_shift_ofst #undef yy_start #undef yy_state_type #undef yy_switch_to_buffer #undef yy_syntax_error #undef yy_trans_info #undef yy_try_NUL_trans #undef yyParser #undef yyStackEntry #undef yyStackOverflow #undef yyRuleInfo #undef yytext_ptr #undef yyunput #undef yyzerominor #undef ParseARG_SDECL #undef ParseARG_PDECL #undef ParseARG_FETCH #undef ParseARG_STORE #undef REJECT #undef yymore #undef YY_MORE_ADJ #undef YY_RESTORE_YY_MORE_OFFSET #undef YY_LESS_LINENO #undef yyTracePrompt #undef yyTraceFILE #undef yyTokenName #undef yyRuleName #undef ParseTrace #undef yylex #undef YY_DECL �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.1.1/src/gaiageo/gg_lwgeom.c���������������������������������������������������������0000664�0001750�0001750�00000152145�12163502133�015570� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* gg_lwgeom.c -- Gaia LWGEOM support version 4.1, 2013 May 8 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2012-2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /* CREDITS: this module (wrapping liblwgeom APIs) has been entierely funded by: Regione Toscana - Settore Sistema Informativo Territoriale ed Ambientale */ #include "config.h" #include <sys/types.h> #include <stdlib.h> #include <stdio.h> #include <string.h> #include <float.h> #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite_private.h> #include <spatialite/sqlite.h> #include <spatialite.h> #include <spatialite/debug.h> #include <spatialite/gaiageo.h> #ifdef ENABLE_LWGEOM /* enabling LWGEOM support */ #include <liblwgeom.h> /* GLOBAL variables */ char *gaia_lwgeom_error_msg = NULL; char *gaia_lwgeom_warning_msg = NULL; const char splitelwgeomversion[] = LIBLWGEOM_VERSION; SPATIALITE_PRIVATE const char * splite_lwgeom_version (void) { return splitelwgeomversion; } static void lwgaia_noticereporter (const char *fmt, va_list ap) { char *msg; if (!lw_vasprintf (&msg, fmt, ap)) { va_end (ap); return; } spatialite_e ("LWGEOM notice: %s\n", msg); gaiaSetLwGeomWarningMsg (msg); free (msg); } static void lwgaia_errorreporter (const char *fmt, va_list ap) { char *msg; if (!lw_vasprintf (&msg, fmt, ap)) { va_end (ap); return; } spatialite_e ("LWGEOM error: %s\n", msg); gaiaSetLwGeomErrorMsg (msg); free (msg); } #ifndef POSTGIS_2_1 /* liblwgeom initializion function: required by PostGIS 2.0.x */ void lwgeom_init_allocators (void) { /* Set up liblwgeom to run in stand-alone mode using the * usual system memory handling functions. */ lwalloc_var = default_allocator; lwrealloc_var = default_reallocator; lwfree_var = default_freeor; lwnotice_var = lwgaia_noticereporter; lwerror_var = lwgaia_errorreporter; } #else /* liblwgeom initialization function: required by PostGIS 2.1.x */ SPATIALITE_PRIVATE void splite_lwgeom_init (void) { lwgeom_set_handlers (NULL, NULL, NULL, lwgaia_errorreporter, lwgaia_noticereporter); } #endif GAIAGEO_DECLARE void gaiaResetLwGeomMsg () { /* resets the LWGEOM error and warning messages */ if (gaia_lwgeom_error_msg != NULL) free (gaia_lwgeom_error_msg); if (gaia_lwgeom_warning_msg != NULL) free (gaia_lwgeom_warning_msg); gaia_lwgeom_error_msg = NULL; gaia_lwgeom_warning_msg = NULL; } GAIAGEO_DECLARE const char * gaiaGetLwGeomErrorMsg () { /* return the latest LWGEOM error message */ return gaia_lwgeom_error_msg; } GAIAGEO_DECLARE const char * gaiaGetLwGeomWarningMsg () { /* return the latest LWGEOM error message */ return gaia_lwgeom_warning_msg; } GAIAGEO_DECLARE void gaiaSetLwGeomErrorMsg (const char *msg) { /* return the latest LWGEOM error message */ int len; if (gaia_lwgeom_error_msg != NULL) free (gaia_lwgeom_error_msg); gaia_lwgeom_error_msg = NULL; if (msg == NULL) return; len = strlen (msg); gaia_lwgeom_error_msg = malloc (len + 1); strcpy (gaia_lwgeom_error_msg, msg); } GAIAGEO_DECLARE void gaiaSetLwGeomWarningMsg (const char *msg) { /* return the latest LWGEOM error message */ int len; if (gaia_lwgeom_warning_msg != NULL) free (gaia_lwgeom_warning_msg); gaia_lwgeom_warning_msg = NULL; if (msg == NULL) return; len = strlen (msg); gaia_lwgeom_warning_msg = malloc (len + 1); strcpy (gaia_lwgeom_warning_msg, msg); } static int check_unclosed_ring (gaiaRingPtr rng) { /* checks if a Ring is closed or not */ double x0; double y0; double z0 = 0.0; double m0 = 0.0; double x1; double y1; double z1 = 0.0; double m1 = 0.0; int last = rng->Points - 1; if (rng->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, 0, &x0, &y0, &z0); } else if (rng->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, 0, &x0, &y0, &m0); } else if (rng->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, 0, &x0, &y0, &z0, &m0); } else { gaiaGetPoint (rng->Coords, 0, &x0, &y0); } if (rng->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, last, &x1, &y1, &z1); } else if (rng->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, last, &x1, &y1, &m1); } else if (rng->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, last, &x1, &y1, &z1, &m1); } else { gaiaGetPoint (rng->Coords, last, &x1, &y1); } if (x0 == x1 && y0 == y1 && z0 == z1 && m0 == m1) return 0; return 1; } static LWGEOM * toLWGeom (const gaiaGeomCollPtr gaia) { /* converting a GAIA Geometry into a LWGEOM Geometry */ int pts = 0; int lns = 0; int pgs = 0; int has_z; int has_m; int ngeoms; int numg; int ib; int iv; int type; double x; double y; double z; double m; int close_ring; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; gaiaRingPtr rng; POINTARRAY *pa; POINTARRAY **ppaa; POINT4D point; LWGEOM **geoms; if (!gaia) return NULL; pt = gaia->FirstPoint; while (pt) { /* counting how many POINTs are there */ pts++; pt = pt->Next; } ln = gaia->FirstLinestring; while (ln) { /* counting how many LINESTRINGs are there */ lns++; ln = ln->Next; } pg = gaia->FirstPolygon; while (pg) { /* counting how many POLYGONs are there */ pgs++; pg = pg->Next; } if (pts == 0 && lns == 0 && pgs == 0) return NULL; if (pts == 1 && lns == 0 && pgs == 0) { /* single Point */ pt = gaia->FirstPoint; has_z = 0; has_m = 0; if (gaia->DimensionModel == GAIA_XY_Z || gaia->DimensionModel == GAIA_XY_Z_M) has_z = 1; if (gaia->DimensionModel == GAIA_XY_M || gaia->DimensionModel == GAIA_XY_Z_M) has_m = 1; pa = ptarray_construct (has_z, has_m, 1); point.x = pt->X; point.y = pt->Y; if (has_z) point.z = pt->Z; if (has_m) point.m = pt->M; ptarray_set_point4d (pa, 0, &point); return (LWGEOM *) lwpoint_construct (gaia->Srid, NULL, pa); } else if (pts == 0 && lns == 1 && pgs == 0) { /* single Linestring */ ln = gaia->FirstLinestring; has_z = 0; has_m = 0; if (gaia->DimensionModel == GAIA_XY_Z || gaia->DimensionModel == GAIA_XY_Z_M) has_z = 1; if (gaia->DimensionModel == GAIA_XY_M || gaia->DimensionModel == GAIA_XY_Z_M) has_m = 1; pa = ptarray_construct (has_z, has_m, ln->Points); for (iv = 0; iv < ln->Points; iv++) { /* copying vertices */ if (gaia->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); } else if (gaia->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); } else if (gaia->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); } point.x = x; point.y = y; if (has_z) point.z = z; if (has_m) point.m = m; ptarray_set_point4d (pa, iv, &point); } return (LWGEOM *) lwline_construct (gaia->Srid, NULL, pa); } else if (pts == 0 && lns == 0 && pgs == 1) { /* single Polygon */ pg = gaia->FirstPolygon; has_z = 0; has_m = 0; if (gaia->DimensionModel == GAIA_XY_Z || gaia->DimensionModel == GAIA_XY_Z_M) has_z = 1; if (gaia->DimensionModel == GAIA_XY_M || gaia->DimensionModel == GAIA_XY_Z_M) has_m = 1; ngeoms = pg->NumInteriors; ppaa = lwalloc (sizeof (POINTARRAY *) * (ngeoms + 1)); rng = pg->Exterior; close_ring = check_unclosed_ring (rng); if (close_ring) ppaa[0] = ptarray_construct (has_z, has_m, rng->Points + 1); else ppaa[0] = ptarray_construct (has_z, has_m, rng->Points); for (iv = 0; iv < rng->Points; iv++) { /* copying vertices - Exterior Ring */ if (gaia->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); } else if (gaia->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); } else if (gaia->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); } point.x = x; point.y = y; if (has_z) point.z = z; if (has_m) point.m = m; ptarray_set_point4d (ppaa[0], iv, &point); } if (close_ring) { /* making an unclosed ring to be closed */ if (gaia->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, 0, &x, &y, &z); } else if (gaia->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, 0, &x, &y, &m); } else if (gaia->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, 0, &x, &y, &z, &m); } else { gaiaGetPoint (rng->Coords, 0, &x, &y); } point.x = x; point.y = y; if (has_z) point.z = z; if (has_m) point.m = m; ptarray_set_point4d (ppaa[0], rng->Points, &point); } for (ib = 0; ib < pg->NumInteriors; ib++) { /* copying vertices - Interior Rings */ rng = pg->Interiors + ib; close_ring = check_unclosed_ring (rng); if (close_ring) ppaa[1 + ib] = ptarray_construct (has_z, has_m, rng->Points + 1); else ppaa[1 + ib] = ptarray_construct (has_z, has_m, rng->Points); for (iv = 0; iv < rng->Points; iv++) { if (gaia->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); } else if (gaia->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); } else if (gaia->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); } point.x = x; point.y = y; if (has_z) point.z = z; if (has_m) point.m = m; ptarray_set_point4d (ppaa[1 + ib], iv, &point); } if (close_ring) { /* making an unclosed ring to be closed */ if (gaia->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, 0, &x, &y, &z); } else if (gaia->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, 0, &x, &y, &m); } else if (gaia->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, 0, &x, &y, &z, &m); } else { gaiaGetPoint (rng->Coords, 0, &x, &y); } point.x = x; point.y = y; if (has_z) point.z = z; if (has_m) point.m = m; ptarray_set_point4d (ppaa[1 + ib], rng->Points, &point); } } return (LWGEOM *) lwpoly_construct (gaia->Srid, NULL, ngeoms + 1, ppaa); } else { /* some Collection */ switch (gaia->DeclaredType) { case GAIA_POINT: type = POINTTYPE; break; case GAIA_LINESTRING: type = LINETYPE; break; case GAIA_POLYGON: type = POLYGONTYPE; break; case GAIA_MULTIPOINT: type = MULTIPOINTTYPE; break; case GAIA_MULTILINESTRING: type = MULTILINETYPE; break; case GAIA_MULTIPOLYGON: type = MULTIPOLYGONTYPE; break; case GAIA_GEOMETRYCOLLECTION: type = COLLECTIONTYPE; break; default: if (lns == 0 && pgs == 0) type = MULTIPOINTTYPE; else if (pts == 0 && pgs == 0) type = MULTILINETYPE; else if (pts == 0 && lns == 0) type = MULTIPOLYGONTYPE; else type = COLLECTIONTYPE; break; }; numg = pts + lns + pgs; geoms = lwalloc (sizeof (LWGEOM *) * numg); numg = 0; pt = gaia->FirstPoint; while (pt) { /* copying POINTs */ has_z = 0; has_m = 0; if (gaia->DimensionModel == GAIA_XY_Z || gaia->DimensionModel == GAIA_XY_Z_M) has_z = 1; if (gaia->DimensionModel == GAIA_XY_M || gaia->DimensionModel == GAIA_XY_Z_M) has_m = 1; pa = ptarray_construct (has_z, has_m, 1); point.x = pt->X; point.y = pt->Y; if (has_z) point.z = pt->Z; if (has_m) point.m = pt->M; ptarray_set_point4d (pa, 0, &point); geoms[numg++] = (LWGEOM *) lwpoint_construct (gaia->Srid, NULL, pa); pt = pt->Next; } ln = gaia->FirstLinestring; while (ln) { /* copying LINESTRINGs */ has_z = 0; has_m = 0; if (gaia->DimensionModel == GAIA_XY_Z || gaia->DimensionModel == GAIA_XY_Z_M) has_z = 1; if (gaia->DimensionModel == GAIA_XY_M || gaia->DimensionModel == GAIA_XY_Z_M) has_m = 1; pa = ptarray_construct (has_z, has_m, ln->Points); for (iv = 0; iv < ln->Points; iv++) { /* copying vertices */ if (gaia->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); } else if (gaia->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); } else if (gaia->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); } point.x = x; point.y = y; if (has_z) point.z = z; if (has_m) point.m = m; ptarray_set_point4d (pa, iv, &point); } geoms[numg++] = (LWGEOM *) lwline_construct (gaia->Srid, NULL, pa); ln = ln->Next; } pg = gaia->FirstPolygon; while (pg) { /* copying POLYGONs */ has_z = 0; has_m = 0; if (gaia->DimensionModel == GAIA_XY_Z || gaia->DimensionModel == GAIA_XY_Z_M) has_z = 1; if (gaia->DimensionModel == GAIA_XY_M || gaia->DimensionModel == GAIA_XY_Z_M) has_m = 1; ngeoms = pg->NumInteriors; ppaa = lwalloc (sizeof (POINTARRAY *) * (ngeoms + 1)); rng = pg->Exterior; close_ring = check_unclosed_ring (rng); if (close_ring) ppaa[0] = ptarray_construct (has_z, has_m, rng->Points + 1); else ppaa[0] = ptarray_construct (has_z, has_m, rng->Points); for (iv = 0; iv < rng->Points; iv++) { /* copying vertices - Exterior Ring */ if (gaia->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); } else if (gaia->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); } else if (gaia->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); } point.x = x; point.y = y; if (has_z) point.z = z; if (has_m) point.m = m; ptarray_set_point4d (ppaa[0], iv, &point); } if (close_ring) { /* making an unclosed ring to be closed */ if (gaia->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, 0, &x, &y, &z); } else if (gaia->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, 0, &x, &y, &m); } else if (gaia->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, 0, &x, &y, &z, &m); } else { gaiaGetPoint (rng->Coords, 0, &x, &y); } point.x = x; point.y = y; if (has_z) point.z = z; if (has_m) point.m = m; ptarray_set_point4d (ppaa[0], rng->Points, &point); } for (ib = 0; ib < pg->NumInteriors; ib++) { /* copying vertices - Interior Rings */ rng = pg->Interiors + ib; close_ring = check_unclosed_ring (rng); if (close_ring) ppaa[1 + ib] = ptarray_construct (has_z, has_m, rng->Points + 1); else ppaa[1 + ib] = ptarray_construct (has_z, has_m, rng->Points); for (iv = 0; iv < rng->Points; iv++) { if (gaia->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); } else if (gaia->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); } else if (gaia->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); } point.x = x; point.y = y; if (has_z) point.z = z; if (has_m) point.m = m; ptarray_set_point4d (ppaa[1 + ib], iv, &point); } if (close_ring) { /* making an unclosed ring to be closed */ if (gaia->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, 0, &x, &y, &z); } else if (gaia->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, 0, &x, &y, &m); } else if (gaia->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, 0, &x, &y, &z, &m); } else { gaiaGetPoint (rng->Coords, 0, &x, &y); } point.x = x; point.y = y; if (has_z) point.z = z; if (has_m) point.m = m; ptarray_set_point4d (ppaa[1 + ib], rng->Points, &point); } } geoms[numg++] = (LWGEOM *) lwpoly_construct (gaia->Srid, NULL, ngeoms + 1, ppaa); pg = pg->Next; } return (LWGEOM *) lwcollection_construct (type, gaia->Srid, NULL, numg, geoms); } return NULL; } static gaiaGeomCollPtr fromLWGeomIncremental (gaiaGeomCollPtr gaia, const LWGEOM * lwgeom) { /* converting a LWGEOM Geometry into a GAIA Geometry */ gaiaLinestringPtr ln; gaiaPolygonPtr pg; gaiaRingPtr rng; int dimension_model = gaia->DimensionModel; int declared_type = gaia->DeclaredType; LWGEOM *lwg2 = NULL; LWPOINT *lwp = NULL; LWLINE *lwl = NULL; LWPOLY *lwpoly = NULL; LWCOLLECTION *lwc = NULL; POINTARRAY *pa; POINT4D pt4d; int has_z; int has_m; int iv; int ib; int ngeoms; int ng; double x; double y; double z; double m; if (lwgeom == NULL) return NULL; if (lwgeom_is_empty (lwgeom)) return NULL; switch (lwgeom->type) { case POINTTYPE: lwp = (LWPOINT *) lwgeom; has_z = 0; has_m = 0; pa = lwp->point; if (FLAGS_GET_Z (pa->flags)) has_z = 1; if (FLAGS_GET_M (pa->flags)) has_m = 1; getPoint4d_p (pa, 0, &pt4d); x = pt4d.x; y = pt4d.y; if (has_z) z = pt4d.z; else z = 0.0; if (has_m) m = pt4d.m; else m = 0.0; if (dimension_model == GAIA_XY_Z) gaiaAddPointToGeomCollXYZ (gaia, x, y, z); else if (dimension_model == GAIA_XY_M) gaiaAddPointToGeomCollXYM (gaia, x, y, m); else if (dimension_model == GAIA_XY_Z_M) gaiaAddPointToGeomCollXYZM (gaia, x, y, z, m); else gaiaAddPointToGeomColl (gaia, x, y); if (declared_type == GAIA_MULTIPOINT) gaia->DeclaredType = GAIA_MULTIPOINT; else if (declared_type == GAIA_GEOMETRYCOLLECTION) gaia->DeclaredType = GAIA_GEOMETRYCOLLECTION; else gaia->DeclaredType = GAIA_POINT; break; case LINETYPE: lwl = (LWLINE *) lwgeom; has_z = 0; has_m = 0; pa = lwl->points; if (FLAGS_GET_Z (pa->flags)) has_z = 1; if (FLAGS_GET_M (pa->flags)) has_m = 1; ln = gaiaAddLinestringToGeomColl (gaia, pa->npoints); for (iv = 0; iv < pa->npoints; iv++) { /* copying LINESTRING vertices */ getPoint4d_p (pa, iv, &pt4d); x = pt4d.x; y = pt4d.y; if (has_z) z = pt4d.z; else z = 0.0; if (has_m) m = pt4d.m; else m = 0.0; if (dimension_model == GAIA_XY_Z) { gaiaSetPointXYZ (ln->Coords, iv, x, y, z); } else if (dimension_model == GAIA_XY_M) { gaiaSetPointXYM (ln->Coords, iv, x, y, m); } else if (dimension_model == GAIA_XY_Z_M) { gaiaSetPointXYZM (ln->Coords, iv, x, y, z, m); } else { gaiaSetPoint (ln->Coords, iv, x, y); } } if (declared_type == GAIA_MULTILINESTRING) gaia->DeclaredType = GAIA_MULTILINESTRING; else if (declared_type == GAIA_GEOMETRYCOLLECTION) gaia->DeclaredType = GAIA_GEOMETRYCOLLECTION; else gaia->DeclaredType = GAIA_LINESTRING; break; case POLYGONTYPE: lwpoly = (LWPOLY *) lwgeom; has_z = 0; has_m = 0; pa = lwpoly->rings[0]; if (FLAGS_GET_Z (pa->flags)) has_z = 1; if (FLAGS_GET_M (pa->flags)) has_m = 1; pg = gaiaAddPolygonToGeomColl (gaia, pa->npoints, lwpoly->nrings - 1); rng = pg->Exterior; for (iv = 0; iv < pa->npoints; iv++) { /* copying Exterion Ring vertices */ getPoint4d_p (pa, iv, &pt4d); x = pt4d.x; y = pt4d.y; if (has_z) z = pt4d.z; else z = 0.0; if (has_m) m = pt4d.m; else m = 0.0; if (dimension_model == GAIA_XY_Z) { gaiaSetPointXYZ (rng->Coords, iv, x, y, z); } else if (dimension_model == GAIA_XY_M) { gaiaSetPointXYM (rng->Coords, iv, x, y, m); } else if (dimension_model == GAIA_XY_Z_M) { gaiaSetPointXYZM (rng->Coords, iv, x, y, z, m); } else { gaiaSetPoint (rng->Coords, iv, x, y); } } for (ib = 1; ib < lwpoly->nrings; ib++) { has_z = 0; has_m = 0; pa = lwpoly->rings[ib]; if (FLAGS_GET_Z (pa->flags)) has_z = 1; if (FLAGS_GET_M (pa->flags)) has_m = 1; rng = gaiaAddInteriorRing (pg, ib - 1, pa->npoints); for (iv = 0; iv < pa->npoints; iv++) { /* copying Exterion Ring vertices */ getPoint4d_p (pa, iv, &pt4d); x = pt4d.x; y = pt4d.y; if (has_z) z = pt4d.z; else z = 0.0; if (has_m) m = pt4d.m; else m = 0.0; if (dimension_model == GAIA_XY_Z) { gaiaSetPointXYZ (rng->Coords, iv, x, y, z); } else if (dimension_model == GAIA_XY_M) { gaiaSetPointXYM (rng->Coords, iv, x, y, m); } else if (dimension_model == GAIA_XY_Z_M) { gaiaSetPointXYZM (rng->Coords, iv, x, y, z, m); } else { gaiaSetPoint (rng->Coords, iv, x, y); } } } if (declared_type == GAIA_MULTIPOLYGON) gaia->DeclaredType = GAIA_MULTIPOLYGON; else if (declared_type == GAIA_GEOMETRYCOLLECTION) gaia->DeclaredType = GAIA_GEOMETRYCOLLECTION; else gaia->DeclaredType = GAIA_POLYGON; break; case MULTIPOINTTYPE: case MULTILINETYPE: case MULTIPOLYGONTYPE: case COLLECTIONTYPE: if (lwgeom->type == MULTIPOINTTYPE) { if (declared_type == GAIA_GEOMETRYCOLLECTION) gaia->DeclaredType = GAIA_GEOMETRYCOLLECTION; else gaia->DeclaredType = GAIA_MULTIPOINT; } else if (lwgeom->type == MULTILINETYPE) { if (declared_type == GAIA_GEOMETRYCOLLECTION) gaia->DeclaredType = GAIA_GEOMETRYCOLLECTION; else gaia->DeclaredType = GAIA_MULTILINESTRING; } else if (lwgeom->type == MULTIPOLYGONTYPE) { if (declared_type == GAIA_GEOMETRYCOLLECTION) gaia->DeclaredType = GAIA_GEOMETRYCOLLECTION; else gaia->DeclaredType = GAIA_MULTIPOLYGON; } else gaia->DeclaredType = GAIA_GEOMETRYCOLLECTION; lwc = (LWCOLLECTION *) lwgeom; ngeoms = lwc->ngeoms; if (ngeoms == 0) { gaiaFreeGeomColl (gaia); gaia = NULL; break; } for (ng = 0; ng < ngeoms; ++ng) { /* looping on elementary geometries */ lwg2 = lwc->geoms[ng]; switch (lwg2->type) { case POINTTYPE: lwp = (LWPOINT *) lwg2; has_z = 0; has_m = 0; pa = lwp->point; if (FLAGS_GET_Z (pa->flags)) has_z = 1; if (FLAGS_GET_M (pa->flags)) has_m = 1; getPoint4d_p (pa, 0, &pt4d); x = pt4d.x; y = pt4d.y; if (has_z) z = pt4d.z; else z = 0.0; if (has_m) m = pt4d.m; else m = 0.0; if (dimension_model == GAIA_XY_Z) gaiaAddPointToGeomCollXYZ (gaia, x, y, z); else if (dimension_model == GAIA_XY_M) gaiaAddPointToGeomCollXYM (gaia, x, y, m); else if (dimension_model == GAIA_XY_Z_M) gaiaAddPointToGeomCollXYZM (gaia, x, y, z, m); else gaiaAddPointToGeomColl (gaia, x, y); break; case LINETYPE: lwl = (LWLINE *) lwg2; has_z = 0; has_m = 0; pa = lwl->points; if (FLAGS_GET_Z (pa->flags)) has_z = 1; if (FLAGS_GET_M (pa->flags)) has_m = 1; ln = gaiaAddLinestringToGeomColl (gaia, pa->npoints); for (iv = 0; iv < pa->npoints; iv++) { /* copying LINESTRING vertices */ getPoint4d_p (pa, iv, &pt4d); x = pt4d.x; y = pt4d.y; if (has_z) z = pt4d.z; else z = 0.0; if (has_m) m = pt4d.m; else m = 0.0; if (dimension_model == GAIA_XY_Z) { gaiaSetPointXYZ (ln->Coords, iv, x, y, z); } else if (dimension_model == GAIA_XY_M) { gaiaSetPointXYM (ln->Coords, iv, x, y, m); } else if (dimension_model == GAIA_XY_Z_M) { gaiaSetPointXYZM (ln->Coords, iv, x, y, z, m); } else { gaiaSetPoint (ln->Coords, iv, x, y); } } break; case POLYGONTYPE: lwpoly = (LWPOLY *) lwg2; has_z = 0; has_m = 0; pa = lwpoly->rings[0]; if (FLAGS_GET_Z (pa->flags)) has_z = 1; if (FLAGS_GET_M (pa->flags)) has_m = 1; pg = gaiaAddPolygonToGeomColl (gaia, pa->npoints, lwpoly->nrings - 1); rng = pg->Exterior; for (iv = 0; iv < pa->npoints; iv++) { /* copying Exterion Ring vertices */ getPoint4d_p (pa, iv, &pt4d); x = pt4d.x; y = pt4d.y; if (has_z) z = pt4d.z; else z = 0.0; if (has_m) m = pt4d.m; else m = 0.0; if (dimension_model == GAIA_XY_Z) { gaiaSetPointXYZ (rng->Coords, iv, x, y, z); } else if (dimension_model == GAIA_XY_M) { gaiaSetPointXYM (rng->Coords, iv, x, y, m); } else if (dimension_model == GAIA_XY_Z_M) { gaiaSetPointXYZM (rng->Coords, iv, x, y, z, m); } else { gaiaSetPoint (rng->Coords, iv, x, y); } } for (ib = 1; ib < lwpoly->nrings; ib++) { has_z = 0; has_m = 0; pa = lwpoly->rings[ib]; if (FLAGS_GET_Z (pa->flags)) has_z = 1; if (FLAGS_GET_M (pa->flags)) has_m = 1; rng = gaiaAddInteriorRing (pg, ib - 1, pa->npoints); for (iv = 0; iv < pa->npoints; iv++) { /* copying Exterion Ring vertices */ getPoint4d_p (pa, iv, &pt4d); x = pt4d.x; y = pt4d.y; if (has_z) z = pt4d.z; else z = 0.0; if (has_m) m = pt4d.m; else m = 0.0; if (dimension_model == GAIA_XY_Z) { gaiaSetPointXYZ (rng->Coords, iv, x, y, z); } else if (dimension_model == GAIA_XY_M) { gaiaSetPointXYM (rng->Coords, iv, x, y, m); } else if (dimension_model == GAIA_XY_Z_M) { gaiaSetPointXYZM (rng->Coords, iv, x, y, z, m); } else { gaiaSetPoint (rng->Coords, iv, x, y); } } } break; }; } break; default: gaiaFreeGeomColl (gaia); gaia = NULL; break; }; return gaia; } static gaiaGeomCollPtr fromLWGeom (const LWGEOM * lwgeom, const int dimension_model, const int declared_type) { /* converting a LWGEOM Geometry into a GAIA Geometry */ gaiaGeomCollPtr gaia = NULL; if (lwgeom == NULL) return NULL; if (lwgeom_is_empty (lwgeom)) return NULL; if (dimension_model == GAIA_XY_Z) gaia = gaiaAllocGeomCollXYZ (); else if (dimension_model == GAIA_XY_M) gaia = gaiaAllocGeomCollXYM (); else if (dimension_model == GAIA_XY_Z_M) gaia = gaiaAllocGeomCollXYZM (); else gaia = gaiaAllocGeomColl (); gaia->DeclaredType = declared_type; fromLWGeomIncremental (gaia, lwgeom); return gaia; } static int check_valid_type (const LWGEOM * lwgeom, int declared_type) { /* checking if the geometry type is a valid one */ int ret = 0; switch (lwgeom->type) { case POINTTYPE: case MULTIPOINTTYPE: if (declared_type == GAIA_POINT || declared_type == GAIA_POINTZ || declared_type == GAIA_POINTM || declared_type == GAIA_POINTZM) ret = 1; if (declared_type == GAIA_MULTIPOINT || declared_type == GAIA_MULTIPOINTZ || declared_type == GAIA_MULTIPOINTM || declared_type == GAIA_MULTIPOINTZM) ret = 1; break; case LINETYPE: case MULTILINETYPE: if (declared_type == GAIA_LINESTRING || declared_type == GAIA_LINESTRINGZ || declared_type == GAIA_LINESTRINGM || declared_type == GAIA_LINESTRINGZM) ret = 1; if (declared_type == GAIA_MULTILINESTRING || declared_type == GAIA_MULTILINESTRINGZ || declared_type == GAIA_MULTILINESTRINGM || declared_type == GAIA_MULTILINESTRINGZM) ret = 1; break; case POLYGONTYPE: case MULTIPOLYGONTYPE: if (declared_type == GAIA_POLYGON || declared_type == GAIA_POLYGONZ || declared_type == GAIA_POLYGONM || declared_type == GAIA_POLYGONZM) ret = 1; if (declared_type == GAIA_MULTIPOLYGON || declared_type == GAIA_MULTIPOLYGONZ || declared_type == GAIA_MULTIPOLYGONM || declared_type == GAIA_MULTIPOLYGONZM) ret = 1; break; case COLLECTIONTYPE: if (declared_type == GAIA_GEOMETRYCOLLECTION || declared_type == GAIA_GEOMETRYCOLLECTIONZ || declared_type == GAIA_GEOMETRYCOLLECTIONM || declared_type == GAIA_GEOMETRYCOLLECTIONZM) ret = 1; break; }; return ret; } static gaiaGeomCollPtr fromLWGeomValidated (const LWGEOM * lwgeom, const int dimension_model, const int declared_type) { /* / converting a LWGEOM Geometry into a GAIA Geometry / first collection - validated items */ gaiaGeomCollPtr gaia = NULL; LWGEOM *lwg2 = NULL; LWCOLLECTION *lwc = NULL; int ngeoms; if (lwgeom == NULL) return NULL; if (lwgeom_is_empty (lwgeom)) return NULL; switch (lwgeom->type) { case COLLECTIONTYPE: lwc = (LWCOLLECTION *) lwgeom; ngeoms = lwc->ngeoms; if (ngeoms <= 2) { lwg2 = lwc->geoms[0]; if (check_valid_type (lwg2, declared_type)) gaia = fromLWGeom (lwg2, dimension_model, declared_type); } break; default: if (check_valid_type (lwgeom, declared_type)) gaia = fromLWGeom (lwgeom, dimension_model, declared_type); if (gaia == NULL) { /* Andrea Peri: 2013-05-02 returning anyway the LWGEOM geometry, / even if it has a mismatching type */ int type = -1; switch (lwgeom->type) { case POINTTYPE: type = GAIA_POINT; break; case LINETYPE: type = GAIA_LINESTRING; break; case POLYGONTYPE: type = GAIA_POLYGON; break; case MULTIPOINTTYPE: type = GAIA_MULTIPOINT; break; case MULTILINETYPE: type = GAIA_MULTILINESTRING; break; case MULTIPOLYGONTYPE: type = GAIA_MULTIPOLYGON; break; }; if (type >= 0) gaia = fromLWGeom (lwgeom, dimension_model, type); } break; } return gaia; } static gaiaGeomCollPtr fromLWGeomDiscarded (const LWGEOM * lwgeom, const int dimension_model, const int declared_type) { /* / converting a LWGEOM Geometry into a GAIA Geometry / second collection - discarded items */ gaiaGeomCollPtr gaia = NULL; LWGEOM *lwg2 = NULL; LWCOLLECTION *lwc = NULL; int ngeoms; int ig; if (lwgeom == NULL) return NULL; if (lwgeom_is_empty (lwgeom)) return NULL; if (lwgeom->type == COLLECTIONTYPE) { if (dimension_model == GAIA_XY_Z) gaia = gaiaAllocGeomCollXYZ (); else if (dimension_model == GAIA_XY_M) gaia = gaiaAllocGeomCollXYM (); else if (dimension_model == GAIA_XY_Z_M) gaia = gaiaAllocGeomCollXYZM (); else gaia = gaiaAllocGeomColl (); lwc = (LWCOLLECTION *) lwgeom; ngeoms = lwc->ngeoms; for (ig = 0; ig < ngeoms; ig++) { lwg2 = lwc->geoms[ig]; if (!check_valid_type (lwg2, declared_type)) fromLWGeomIncremental (gaia, lwg2); } } /* Andrea Peri: 2013-05-02 when a single geometry is returned by LWGEOM it's always "valid" and there are no discarded items at all else if (!check_valid_type (lwgeom, declared_type)) gaia = fromLWGeom (lwgeom, dimension_model, declared_type); */ return gaia; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMakeValid (gaiaGeomCollPtr geom) { /* wrapping LWGEOM MakeValid [collecting valid items] */ LWGEOM *g1; LWGEOM *g2; gaiaGeomCollPtr result; if (!geom) return NULL; g1 = toLWGeom (geom); g2 = lwgeom_make_valid (g1); if (!g2) { lwgeom_free (g1); return NULL; } result = fromLWGeomValidated (g2, geom->DimensionModel, geom->DeclaredType); spatialite_init_geos (); lwgeom_free (g1); lwgeom_free (g2); if (result == NULL) return NULL; result->Srid = geom->Srid; return result; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMakeValidDiscarded (gaiaGeomCollPtr geom) { /* wrapping LWGEOM MakeValid [collecting discarder items] */ LWGEOM *g1; LWGEOM *g2; gaiaGeomCollPtr result; if (!geom) return NULL; g1 = toLWGeom (geom); g2 = lwgeom_make_valid (g1); if (!g2) { lwgeom_free (g1); return NULL; } result = fromLWGeomDiscarded (g2, geom->DimensionModel, geom->DeclaredType); spatialite_init_geos (); lwgeom_free (g1); lwgeom_free (g2); if (result == NULL) return NULL; result->Srid = geom->Srid; return result; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSegmentize (gaiaGeomCollPtr geom, double dist) { /* wrapping LWGEOM Segmentize */ LWGEOM *g1; LWGEOM *g2; gaiaGeomCollPtr result; if (!geom) return NULL; if (dist <= 0.0) return NULL; g1 = toLWGeom (geom); g2 = lwgeom_segmentize2d (g1, dist); if (!g2) { lwgeom_free (g1); return NULL; } result = fromLWGeom (g2, geom->DimensionModel, geom->DeclaredType); spatialite_init_geos (); lwgeom_free (g1); lwgeom_free (g2); if (result == NULL) return NULL; result->Srid = geom->Srid; return result; } static int check_split_args (gaiaGeomCollPtr input, gaiaGeomCollPtr blade) { /* testing Split arguments */ gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; int i_lns = 0; int i_pgs = 0; int b_pts = 0; int b_lns = 0; if (!input) return 0; if (!blade) return 0; /* testing the Input type */ if (input->FirstPoint != NULL) { /* Point(s) on Input is forbidden !!!! */ return 0; } ln = input->FirstLinestring; while (ln) { /* counting how many Linestrings are there */ i_lns++; ln = ln->Next; } pg = input->FirstPolygon; while (pg) { /* counting how many Polygons are there */ i_pgs++; pg = pg->Next; } if (i_lns + i_pgs == 0) { /* empty Input */ return 0; } /* testing the Blade type */ pt = blade->FirstPoint; while (pt) { /* counting how many Points are there */ b_pts++; pt = pt->Next; } if (b_pts > 1) { /* MultiPoint on Blade is forbidden !!!! */ return 0; } ln = blade->FirstLinestring; while (ln) { /* counting how many Linestrings are there */ b_lns++; ln = ln->Next; } if (b_lns > 1) { /* MultiLinestring on Blade is forbidden !!!! */ return 0; } if (blade->FirstPolygon != NULL) { /* Polygon(s) on Blade is forbidden !!!! */ return 0; } if (b_pts + b_lns == 0) { /* empty Blade */ return 0; } if (b_pts + b_lns > 1) { /* invalid Blade [point + linestring] */ return 0; } /* compatibility check */ if (b_lns == 1) { /* Linestring blade is always valid */ return 1; } if (i_lns >= 1 && b_pts == 1) { /* Linestring or MultiLinestring input and Point blade is allowed */ return 1; } return 0; } static void set_split_gtype (gaiaGeomCollPtr geom) { /* assignign the actual geometry type */ gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; int pts = 0; int lns = 0; int pgs = 0; pt = geom->FirstPoint; while (pt) { /* counting how many Points are there */ pts++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { /* counting how many Linestrings are there */ lns++; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { /* counting how many Polygons are there */ pgs++; pg = pg->Next; } if (pts == 1 && lns == 0 && pgs == 0) { geom->DeclaredType = GAIA_POINT; return; } if (pts > 1 && lns == 0 && pgs == 0) { geom->DeclaredType = GAIA_MULTIPOINT; return; } if (pts == 0 && lns == 1 && pgs == 0) { geom->DeclaredType = GAIA_LINESTRING; return; } if (pts == 0 && lns > 1 && pgs == 0) { geom->DeclaredType = GAIA_MULTILINESTRING; return; } if (pts == 0 && lns == 0 && pgs == 1) { geom->DeclaredType = GAIA_POLYGON; return; } if (pts == 0 && lns == 0 && pgs > 1) { geom->DeclaredType = GAIA_MULTIPOLYGON; return; } geom->DeclaredType = GAIA_GEOMETRYCOLLECTION; } static LWGEOM * toLWGeomLinestring (gaiaLinestringPtr ln, int srid) { /* converting a GAIA Linestring into a LWGEOM Geometry */ int iv; double x; double y; double z; double m; int has_z = 0; int has_m = 0; POINTARRAY *pa; POINT4D point; if (ln->DimensionModel == GAIA_XY_Z || ln->DimensionModel == GAIA_XY_Z_M) has_z = 1; if (ln->DimensionModel == GAIA_XY_M || ln->DimensionModel == GAIA_XY_Z_M) has_m = 1; pa = ptarray_construct (has_z, has_m, ln->Points); for (iv = 0; iv < ln->Points; iv++) { /* copying vertices */ if (ln->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); } else if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); } point.x = x; point.y = y; if (has_z) point.z = z; if (has_m) point.m = m; ptarray_set_point4d (pa, iv, &point); } return (LWGEOM *) lwline_construct (srid, NULL, pa); } static LWGEOM * toLWGeomPolygon (gaiaPolygonPtr pg, int srid) { /* converting a GAIA Linestring into a LWGEOM Geometry */ int iv; int ib; double x; double y; double z; double m; int ngeoms; int has_z = 0; int has_m = 0; int close_ring; gaiaRingPtr rng; POINTARRAY **ppaa; POINT4D point; if (pg->DimensionModel == GAIA_XY_Z || pg->DimensionModel == GAIA_XY_Z_M) has_z = 1; if (pg->DimensionModel == GAIA_XY_M || pg->DimensionModel == GAIA_XY_Z_M) has_m = 1; ngeoms = pg->NumInteriors; ppaa = lwalloc (sizeof (POINTARRAY *) * (ngeoms + 1)); rng = pg->Exterior; close_ring = check_unclosed_ring (rng); if (close_ring) ppaa[0] = ptarray_construct (has_z, has_m, rng->Points + 1); else ppaa[0] = ptarray_construct (has_z, has_m, rng->Points); for (iv = 0; iv < rng->Points; iv++) { /* copying vertices - Exterior Ring */ if (pg->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); } else if (pg->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); } else if (pg->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); } point.x = x; point.y = y; if (has_z) point.z = z; if (has_m) point.m = m; ptarray_set_point4d (ppaa[0], iv, &point); } if (close_ring) { /* making an unclosed ring to be closed */ if (pg->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, 0, &x, &y, &z); } else if (pg->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, 0, &x, &y, &m); } else if (pg->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, 0, &x, &y, &z, &m); } else { gaiaGetPoint (rng->Coords, 0, &x, &y); } point.x = x; point.y = y; if (has_z) point.z = z; if (has_m) point.m = m; ptarray_set_point4d (ppaa[0], rng->Points, &point); } for (ib = 0; ib < pg->NumInteriors; ib++) { /* copying vertices - Interior Rings */ rng = pg->Interiors + ib; close_ring = check_unclosed_ring (rng); if (close_ring) ppaa[1 + ib] = ptarray_construct (has_z, has_m, rng->Points + 1); else ppaa[1 + ib] = ptarray_construct (has_z, has_m, rng->Points); for (iv = 0; iv < rng->Points; iv++) { if (pg->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); } else if (pg->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); } else if (pg->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); } point.x = x; point.y = y; if (has_z) point.z = z; if (has_m) point.m = m; ptarray_set_point4d (ppaa[1 + ib], iv, &point); } if (close_ring) { /* making an unclosed ring to be closed */ if (pg->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, 0, &x, &y, &z); } else if (pg->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, 0, &x, &y, &m); } else if (pg->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, 0, &x, &y, &z, &m); } else { gaiaGetPoint (rng->Coords, 0, &x, &y); } point.x = x; point.y = y; if (has_z) point.z = z; if (has_m) point.m = m; ptarray_set_point4d (ppaa[0], rng->Points, &point); } } return (LWGEOM *) lwpoly_construct (srid, NULL, ngeoms + 1, ppaa); } static gaiaGeomCollPtr fromLWGeomLeft (gaiaGeomCollPtr gaia, const LWGEOM * lwgeom) { /* / converting a LWGEOM Geometry into a GAIA Geometry / collecting "left side" items */ LWGEOM *lwg2 = NULL; LWCOLLECTION *lwc = NULL; int ngeoms; int ig; if (lwgeom == NULL) return NULL; if (lwgeom_is_empty (lwgeom)) return NULL; if (lwgeom->type == COLLECTIONTYPE) { lwc = (LWCOLLECTION *) lwgeom; ngeoms = lwc->ngeoms; for (ig = 0; ig < ngeoms; ig += 2) { lwg2 = lwc->geoms[ig]; fromLWGeomIncremental (gaia, lwg2); } } else gaia = fromLWGeom (lwgeom, gaia->DimensionModel, gaia->DeclaredType); return gaia; } static gaiaGeomCollPtr fromLWGeomRight (gaiaGeomCollPtr gaia, const LWGEOM * lwgeom) { /* / converting a LWGEOM Geometry into a GAIA Geometry / collecting "right side" items */ LWGEOM *lwg2 = NULL; LWCOLLECTION *lwc = NULL; int ngeoms; int ig; if (lwgeom == NULL) return NULL; if (lwgeom_is_empty (lwgeom)) return NULL; if (lwgeom->type == COLLECTIONTYPE) { lwc = (LWCOLLECTION *) lwgeom; ngeoms = lwc->ngeoms; for (ig = 1; ig < ngeoms; ig += 2) { lwg2 = lwc->geoms[ig]; fromLWGeomIncremental (gaia, lwg2); } } return gaia; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSplit (gaiaGeomCollPtr input, gaiaGeomCollPtr blade) { /* wrapping LWGEOM Split */ LWGEOM *g1; LWGEOM *g2; LWGEOM *g3; gaiaGeomCollPtr result; if (!check_split_args (input, blade)) return NULL; g1 = toLWGeom (input); g2 = toLWGeom (blade); g3 = lwgeom_split (g1, g2); if (!g3) { lwgeom_free (g1); lwgeom_free (g2); return NULL; } result = fromLWGeom (g3, input->DimensionModel, input->DeclaredType); spatialite_init_geos (); lwgeom_free (g1); lwgeom_free (g2); lwgeom_free (g3); if (result == NULL) return NULL; result->Srid = input->Srid; set_split_gtype (result); return result; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSplitLeft (gaiaGeomCollPtr input, gaiaGeomCollPtr blade) { /* wrapping LWGEOM Split [left half] */ LWGEOM *g1; LWGEOM *g2; LWGEOM *g3; gaiaGeomCollPtr result = NULL; gaiaLinestringPtr ln; gaiaPolygonPtr pg; if (!check_split_args (input, blade)) return NULL; if (input->DimensionModel == GAIA_XY_Z) result = gaiaAllocGeomCollXYZ (); else if (input->DimensionModel == GAIA_XY_M) result = gaiaAllocGeomCollXYM (); else if (input->DimensionModel == GAIA_XY_Z_M) result = gaiaAllocGeomCollXYZM (); else result = gaiaAllocGeomColl (); g2 = toLWGeom (blade); ln = input->FirstLinestring; while (ln) { /* splitting some Linestring */ g1 = toLWGeomLinestring (ln, input->Srid); g3 = lwgeom_split (g1, g2); if (g3) { result = fromLWGeomLeft (result, g3); lwgeom_free (g3); } spatialite_init_geos (); lwgeom_free (g1); ln = ln->Next; } pg = input->FirstPolygon; while (pg) { /* splitting some Polygon */ g1 = toLWGeomPolygon (pg, input->Srid); g3 = lwgeom_split (g1, g2); if (g3) { result = fromLWGeomLeft (result, g3); lwgeom_free (g3); } spatialite_init_geos (); lwgeom_free (g1); pg = pg->Next; } lwgeom_free (g2); if (result == NULL) return NULL; if (result->FirstPoint == NULL && result->FirstLinestring == NULL && result->FirstPolygon == NULL) { gaiaFreeGeomColl (result); return NULL; } result->Srid = input->Srid; set_split_gtype (result); return result; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSplitRight (gaiaGeomCollPtr input, gaiaGeomCollPtr blade) { /* wrapping LWGEOM Split [right half] */ LWGEOM *g1; LWGEOM *g2; LWGEOM *g3; gaiaGeomCollPtr result = NULL; gaiaLinestringPtr ln; gaiaPolygonPtr pg; if (!check_split_args (input, blade)) return NULL; if (input->DimensionModel == GAIA_XY_Z) result = gaiaAllocGeomCollXYZ (); else if (input->DimensionModel == GAIA_XY_M) result = gaiaAllocGeomCollXYM (); else if (input->DimensionModel == GAIA_XY_Z_M) result = gaiaAllocGeomCollXYZM (); else result = gaiaAllocGeomColl (); g2 = toLWGeom (blade); ln = input->FirstLinestring; while (ln) { /* splitting some Linestring */ g1 = toLWGeomLinestring (ln, input->Srid); g3 = lwgeom_split (g1, g2); if (g3) { result = fromLWGeomRight (result, g3); lwgeom_free (g3); } spatialite_init_geos (); lwgeom_free (g1); ln = ln->Next; } pg = input->FirstPolygon; while (pg) { /* splitting some Polygon */ g1 = toLWGeomPolygon (pg, input->Srid); g3 = lwgeom_split (g1, g2); if (g3) { result = fromLWGeomRight (result, g3); lwgeom_free (g3); } spatialite_init_geos (); lwgeom_free (g1); pg = pg->Next; } lwgeom_free (g2); if (result == NULL) return NULL; if (result->FirstPoint == NULL && result->FirstLinestring == NULL && result->FirstPolygon == NULL) { gaiaFreeGeomColl (result); return NULL; } result->Srid = input->Srid; set_split_gtype (result); return result; } GAIAGEO_DECLARE int gaiaAzimuth (double xa, double ya, double xb, double yb, double *azimuth) { /* wrapping LWGEOM Azimuth */ POINT2D pt1; POINT2D pt2; double az; pt1.x = xa; pt1.y = ya; pt2.x = xb; pt2.y = yb; if (!azimuth_pt_pt (&pt1, &pt2, &az)) return 0; *azimuth = az; return 1; } GAIAGEO_DECLARE int gaiaEllipsoidAzimuth (double xa, double ya, double xb, double yb, double a, double b, double *azimuth) { /* wrapping LWGEOM AzimuthSpheroid */ LWPOINT *pt1 = lwpoint_make2d (0, xa, ya); LWPOINT *pt2 = lwpoint_make2d (0, xb, yb); SPHEROID ellips; spheroid_init (&ellips, a, b); *azimuth = lwgeom_azumith_spheroid (pt1, pt2, &ellips); lwpoint_free (pt1); lwpoint_free (pt2); return 1; } GAIAGEO_DECLARE int gaiaProjectedPoint (double x1, double y1, double a, double b, double distance, double azimuth, double *x2, double *y2) { /* wrapping LWGEOM Project */ LWPOINT *pt1 = lwpoint_make2d (0, x1, y1); LWPOINT *pt2; SPHEROID ellips; spheroid_init (&ellips, a, b); pt2 = lwgeom_project_spheroid (pt1, &ellips, distance, azimuth); lwpoint_free (pt1); if (pt2 != NULL) { *x2 = lwpoint_get_x (pt2); *y2 = lwpoint_get_y (pt2); lwpoint_free (pt2); return 1; } return 0; } GAIAGEO_DECLARE int gaiaGeodesicArea (gaiaGeomCollPtr geom, double a, double b, int use_ellipsoid, double *area) { /* wrapping LWGEOM AreaSphere and AreaSpheroid */ LWGEOM *g = toLWGeom (geom); SPHEROID ellips; GBOX gbox; double tolerance = 1e-12; spheroid_init (&ellips, a, b); if (g == NULL) return 0; lwgeom_calculate_gbox_geodetic (g, &gbox); if (use_ellipsoid) { /* testing for "forbidden" calculations on the ellipsoid */ if ((gbox.zmax + tolerance) >= 1.0 || (gbox.zmin - tolerance) <= -1.0) use_ellipsoid = 0; /* can't circle the poles */ if (gbox.zmax > 0.0 && gbox.zmin < 0.0) use_ellipsoid = 0; /* can't cross the equator */ } if (use_ellipsoid) *area = lwgeom_area_spheroid (g, &ellips); else *area = lwgeom_area_sphere (g, &ellips); lwgeom_free (g); return 1; } GAIAGEO_DECLARE char * gaiaGeoHash (gaiaGeomCollPtr geom, int precision) { /* wrapping LWGEOM GeoHash */ LWGEOM *g; char *result; char *geo_hash; int len; if (!geom) return NULL; gaiaMbrGeometry (geom); if (geom->MinX < -180.0 || geom->MaxX > 180.0 || geom->MinY < -90.0 || geom->MaxY > 90.0) return NULL; g = toLWGeom (geom); result = lwgeom_geohash (g, precision); lwgeom_free (g); if (result == NULL) return NULL; len = strlen (result); if (len == 0) { lwfree (result); return NULL; } geo_hash = malloc (len + 1); strcpy (geo_hash, result); lwfree (result); return geo_hash; } GAIAGEO_DECLARE char * gaiaAsX3D (gaiaGeomCollPtr geom, const char *srs, int precision, int options, const char *defid) { /* wrapping LWGEOM AsX3D */ LWGEOM *g; char *result; char *x3d; int len; if (!geom) return NULL; gaiaMbrGeometry (geom); g = toLWGeom (geom); result = lwgeom_to_x3d3 (g, (char *) srs, precision, options, defid); lwgeom_free (g); if (result == NULL) return NULL; len = strlen (result); if (len == 0) { lwfree (result); return NULL; } x3d = malloc (len + 1); strcpy (x3d, result); lwfree (result); return x3d; } GAIAGEO_DECLARE int gaia3DDistance (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist) { /* wrapping LWGEOM mindistance3d */ LWGEOM *g1; LWGEOM *g2; double d; g1 = toLWGeom (geom1); g2 = toLWGeom (geom2); d = lwgeom_mindistance3d (g1, g2); lwgeom_free (g1); lwgeom_free (g2); *dist = d; return 1; } GAIAGEO_DECLARE int gaiaMaxDistance (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist) { /* wrapping LWGEOM maxdistance2d */ LWGEOM *g1; LWGEOM *g2; double d; g1 = toLWGeom (geom1); g2 = toLWGeom (geom2); d = lwgeom_maxdistance2d (g1, g2); lwgeom_free (g1); lwgeom_free (g2); *dist = d; return 1; } GAIAGEO_DECLARE int gaia3DMaxDistance (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist) { /* wrapping LWGEOM maxdistance2d */ LWGEOM *g1; LWGEOM *g2; double d; g1 = toLWGeom (geom1); g2 = toLWGeom (geom2); d = lwgeom_maxdistance3d (g1, g2); lwgeom_free (g1); lwgeom_free (g2); *dist = d; return 1; } #endif /* end enabling LWGEOM support */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.1.1/src/gaiageo/lex.Gml.c�����������������������������������������������������������0000664�0001750�0001750�00000154571�12163502133�015134� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ #line 3 "lex.Gml.c" #define YY_INT_ALIGNED short int /* A lexical scanner generated by flex */ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 5 #define YY_FLEX_SUBMINOR_VERSION 35 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ #include <stdio.h> #include <string.h> #include <errno.h> #include <stdlib.h> /* end standard C headers. */ /* flex integer type definitions */ #ifndef FLEXINT_H #define FLEXINT_H /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */ #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, * if you want the limit (max/min) macros for int types. */ #ifndef __STDC_LIMIT_MACROS #define __STDC_LIMIT_MACROS 1 #endif #include <inttypes.h> typedef int8_t flex_int8_t; typedef uint8_t flex_uint8_t; typedef int16_t flex_int16_t; typedef uint16_t flex_uint16_t; typedef int32_t flex_int32_t; typedef uint32_t flex_uint32_t; #else typedef signed char flex_int8_t; typedef short int flex_int16_t; typedef int flex_int32_t; typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; #endif /* ! C99 */ /* Limits of integral types. */ #ifndef INT8_MIN #define INT8_MIN (-128) #endif #ifndef INT16_MIN #define INT16_MIN (-32767-1) #endif #ifndef INT32_MIN #define INT32_MIN (-2147483647-1) #endif #ifndef INT8_MAX #define INT8_MAX (127) #endif #ifndef INT16_MAX #define INT16_MAX (32767) #endif #ifndef INT32_MAX #define INT32_MAX (2147483647) #endif #ifndef UINT8_MAX #define UINT8_MAX (255U) #endif #ifndef UINT16_MAX #define UINT16_MAX (65535U) #endif #ifndef UINT32_MAX #define UINT32_MAX (4294967295U) #endif #endif /* ! FLEXINT_H */ #ifdef __cplusplus /* The "const" storage-class-modifier is valid. */ #define YY_USE_CONST #else /* ! __cplusplus */ /* C99 requires __STDC__ to be defined as 1. */ #if defined (__STDC__) #define YY_USE_CONST #endif /* defined (__STDC__) */ #endif /* ! __cplusplus */ #ifdef YY_USE_CONST #define yyconst const #else #define yyconst #endif /* Returned upon end-of-file. */ #define YY_NULL 0 /* Promotes a possibly negative, possibly signed char to an unsigned * integer for use as an array index. If the signed char is negative, * we want to instead treat it as an 8-bit unsigned char, hence the * double cast. */ #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) /* An opaque pointer. */ #ifndef YY_TYPEDEF_YY_SCANNER_T #define YY_TYPEDEF_YY_SCANNER_T typedef void *yyscan_t; #endif /* For convenience, these vars (plus the bison vars far below) are macros in the reentrant scanner. */ #define yyin yyg->yyin_r #define yyout yyg->yyout_r #define yyextra yyg->yyextra_r #define yyleng yyg->yyleng_r #define yytext yyg->yytext_r #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno) #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column) #define yy_flex_debug yyg->yy_flex_debug_r /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN yyg->yy_start = 1 + 2 * /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START ((yyg->yy_start - 1) / 2) #define YYSTATE YY_START /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) /* Special action meaning "start processing a new file". */ #define YY_NEW_FILE Gmlrestart(yyin ,yyscanner ) #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #ifndef YY_BUF_SIZE #define YY_BUF_SIZE 16384 #endif /* The state buf must be large enough to hold one state per character in the main buffer. */ #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) #ifndef YY_TYPEDEF_YY_BUFFER_STATE #define YY_TYPEDEF_YY_BUFFER_STATE typedef struct yy_buffer_state *YY_BUFFER_STATE; #endif #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 #define YY_LESS_LINENO(n) /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ *yy_cp = yyg->yy_hold_char; \ YY_RESTORE_YY_MORE_OFFSET \ yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner ) #ifndef YY_TYPEDEF_YY_SIZE_T #define YY_TYPEDEF_YY_SIZE_T typedef size_t yy_size_t; #endif #ifndef YY_STRUCT_YY_BUFFER_STATE #define YY_STRUCT_YY_BUFFER_STATE struct yy_buffer_state { FILE *yy_input_file; char *yy_ch_buf; /* input buffer */ char *yy_buf_pos; /* current position in input buffer */ /* Size of input buffer in bytes, not including room for EOB * characters. */ yy_size_t yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. */ int yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to * delete it. */ int yy_is_our_buffer; /* Whether this is an "interactive" input source; if so, and * if we're using stdio for input, then we want to use getc() * instead of fread(), to make sure we stop fetching input after * each newline. */ int yy_is_interactive; /* Whether we're considered to be at the beginning of a line. * If so, '^' rules will be active on the next match, otherwise * not. */ int yy_at_bol; int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ /* Whether to try to fill the input buffer when we reach the * end of it. */ int yy_fill_buffer; int yy_buffer_status; #define YY_BUFFER_NEW 0 #define YY_BUFFER_NORMAL 1 /* When an EOF's been seen but there's still some text to process * then we mark the buffer as YY_EOF_PENDING, to indicate that we * shouldn't try reading from the input source any more. We might * still have a bunch of tokens to match, though, because of * possible backing-up. * * When we actually see the EOF, we change the status to "new" * (via Gmlrestart()), so that the user can continue scanning by * just pointing yyin at a new input file. */ #define YY_BUFFER_EOF_PENDING 2 }; #endif /* !YY_STRUCT_YY_BUFFER_STATE */ /* We provide macros for accessing buffer states in case in the * future we want to put the buffer states in a more general * "scanner state". * * Returns the top of the stack, or NULL. */ #define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \ ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \ : NULL) /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] void Gmlrestart (FILE * input_file, yyscan_t yyscanner); void Gml_switch_to_buffer (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner); YY_BUFFER_STATE Gml_create_buffer (FILE * file, int size, yyscan_t yyscanner); void Gml_delete_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner); void Gml_flush_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner); void Gmlpush_buffer_state (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner); void Gmlpop_buffer_state (yyscan_t yyscanner); static void Gmlensure_buffer_stack (yyscan_t yyscanner); static void Gml_load_buffer_state (yyscan_t yyscanner); static void Gml_init_buffer (YY_BUFFER_STATE b, FILE * file, yyscan_t yyscanner); #define YY_FLUSH_BUFFER Gml_flush_buffer(YY_CURRENT_BUFFER ,yyscanner) YY_BUFFER_STATE Gml_scan_buffer (char *base, yy_size_t size, yyscan_t yyscanner); YY_BUFFER_STATE Gml_scan_string (yyconst char *yy_str, yyscan_t yyscanner); YY_BUFFER_STATE Gml_scan_bytes (yyconst char *bytes, int len, yyscan_t yyscanner); void *Gmlalloc (yy_size_t, yyscan_t yyscanner); void *Gmlrealloc (void *, yy_size_t, yyscan_t yyscanner); void Gmlfree (void *, yyscan_t yyscanner); #define yy_new_buffer Gml_create_buffer #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ Gmlensure_buffer_stack (yyscanner); \ YY_CURRENT_BUFFER_LVALUE = \ Gml_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ Gmlensure_buffer_stack (yyscanner); \ YY_CURRENT_BUFFER_LVALUE = \ Gml_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* Begin user sect3 */ typedef unsigned char YY_CHAR; typedef int yy_state_type; #define yytext_ptr yytext_r static yy_state_type yy_get_previous_state (yyscan_t yyscanner); static yy_state_type yy_try_NUL_trans (yy_state_type current_state, yyscan_t yyscanner); static int yy_get_next_buffer (yyscan_t yyscanner); static void yy_fatal_error (yyconst char msg[], yyscan_t yyscanner); /* Done after the current pattern has been matched and before the * corresponding action - sets up yytext. */ #define YY_DO_BEFORE_ACTION \ yyg->yytext_ptr = yy_bp; \ yyleng = (size_t) (yy_cp - yy_bp); \ yyg->yy_hold_char = *yy_cp; \ *yy_cp = '\0'; \ yyg->yy_c_buf_p = yy_cp; #define YY_NUM_RULES 11 #define YY_END_OF_BUFFER 12 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info { flex_int32_t yy_verify; flex_int32_t yy_nxt; }; static yyconst flex_int16_t yy_accept[19] = { 0, 5, 5, 12, 10, 8, 9, 10, 5, 1, 3, 2, 4, 7, 0, 6, 5, 7, 0 }; static yyconst flex_int32_t yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 5, 5, 5, 5, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 1, 9, 10, 11, 1, 1, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 1, 1, 1, 1, 12, 1, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }; static yyconst flex_int32_t yy_meta[13] = { 0, 1, 1, 1, 1, 2, 1, 3, 4, 5, 1, 5, 4 }; static yyconst flex_int16_t yy_base[22] = { 0, 0, 0, 23, 24, 24, 24, 18, 0, 24, 24, 24, 24, 0, 17, 24, 0, 0, 24, 12, 15, 16 }; static yyconst flex_int16_t yy_def[22] = { 0, 18, 1, 18, 18, 18, 18, 19, 20, 18, 18, 18, 18, 21, 19, 18, 20, 21, 0, 18, 18, 18 }; static yyconst flex_int16_t yy_nxt[37] = { 0, 4, 5, 6, 7, 8, 9, 8, 4, 10, 11, 12, 13, 14, 14, 14, 14, 16, 16, 17, 17, 15, 15, 18, 3, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 }; static yyconst flex_int16_t yy_chk[37] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 19, 19, 19, 19, 20, 20, 21, 21, 14, 7, 3, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 }; /* The intent behind this definition is that it'll catch * any uses of REJECT which flex missed. */ #define REJECT reject_used_but_not_detected #define yymore() yymore_used_but_not_detected #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET /* gmlLexer.l -- GML parser - FLEX config version 2.4, 2011 June 3 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #define YY_NO_INPUT 1 /** * The main string-token matcher. * The lower case part is probably not needed. We should really be converting * The string to all uppercase/lowercase to make it case iNsEnSiTiVe. * What Flex will do is, For the input string, beginning from the front, Flex * will try to match with any of the defined tokens from below. Flex will * then match the string of longest length. Suppose the string is: POINTM, * Flex would match both POINT and POINTM, but since POINTM is the longer * of the two tokens, FLEX will match POINTM. */ #define INITIAL 0 #ifndef YY_NO_UNISTD_H /* Special case for "unistd.h", since it is non-ANSI. We include it way * down here because we want the user's section 1 to have been scanned first. * The user has a chance to override it with an option. */ #include <unistd.h> #endif #define YY_EXTRA_TYPE struct gml_data * /* Holds the entire state of the reentrant scanner. */ struct yyguts_t { /* User-defined. Not touched by flex. */ YY_EXTRA_TYPE yyextra_r; /* The rest are the same as the globals declared in the non-reentrant scanner. */ FILE *yyin_r, *yyout_r; size_t yy_buffer_stack_top; /**< index of top of stack. */ size_t yy_buffer_stack_max; /**< capacity of stack. */ YY_BUFFER_STATE *yy_buffer_stack; /**< Stack as an array. */ char yy_hold_char; int yy_n_chars; int yyleng_r; char *yy_c_buf_p; int yy_init; int yy_start; int yy_did_buffer_switch_on_eof; int yy_start_stack_ptr; int yy_start_stack_depth; int *yy_start_stack; yy_state_type yy_last_accepting_state; char *yy_last_accepting_cpos; int yylineno_r; int yy_flex_debug_r; char *yytext_r; int yy_more_flag; int yy_more_len; }; /* end struct yyguts_t */ static int yy_init_globals (yyscan_t yyscanner); int Gmllex_init (yyscan_t * scanner); int Gmllex_init_extra (YY_EXTRA_TYPE user_defined, yyscan_t * scanner); /* Accessor methods to globals. These are made visible to non-reentrant scanners for convenience. */ int Gmllex_destroy (yyscan_t yyscanner); int Gmlget_debug (yyscan_t yyscanner); void Gmlset_debug (int debug_flag, yyscan_t yyscanner); YY_EXTRA_TYPE Gmlget_extra (yyscan_t yyscanner); void Gmlset_extra (YY_EXTRA_TYPE user_defined, yyscan_t yyscanner); FILE *Gmlget_in (yyscan_t yyscanner); void Gmlset_in (FILE * in_str, yyscan_t yyscanner); FILE *Gmlget_out (yyscan_t yyscanner); void Gmlset_out (FILE * out_str, yyscan_t yyscanner); int Gmlget_leng (yyscan_t yyscanner); char *Gmlget_text (yyscan_t yyscanner); int Gmlget_lineno (yyscan_t yyscanner); void Gmlset_lineno (int line_number, yyscan_t yyscanner); int Gmlget_column (yyscan_t yyscanner); void Gmlset_column (int column_no, yyscan_t yyscanner); /* Macros after this point can all be overridden by user definitions in * section 1. */ #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus extern "C" int Gmlwrap (yyscan_t yyscanner); #else extern int Gmlwrap (yyscan_t yyscanner); #endif #endif #ifndef yytext_ptr static void yy_flex_strncpy (char *, yyconst char *, int, yyscan_t yyscanner); #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen (yyconst char *, yyscan_t yyscanner); #endif #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput (yyscan_t yyscanner); #else static int input (yyscan_t yyscanner); #endif #endif /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE #define YY_READ_BUF_SIZE 8192 #endif /* Copy whatever the last rule matched to the standard output. */ #ifndef ECHO /* This used to be an fputs(), but since the string might contain NUL's, * we now use fwrite(). */ #define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0) #endif /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, * is returned in "result". */ #ifndef YY_INPUT #define YY_INPUT(buf,result,max_size) \ if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ { \ int c = '*'; \ unsigned n; \ for ( n = 0; n < max_size && \ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ if ( c == '\n' ) \ buf[n++] = (char) c; \ if ( c == EOF && ferror( yyin ) ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ result = n; \ } \ else \ { \ errno=0; \ while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \ { \ if( errno != EINTR) \ { \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ break; \ } \ errno=0; \ clearerr(yyin); \ } \ }\ \ #endif /* No semi-colon after return; correct usage is to write "yyterminate();" - * we don't want an extra ';' after the "return" because that will cause * some compilers to complain about unreachable statements. */ #ifndef yyterminate #define yyterminate() return YY_NULL #endif /* Number of entries by which start-condition stack grows. */ #ifndef YY_START_STACK_INCR #define YY_START_STACK_INCR 25 #endif /* Report a fatal error. */ #ifndef YY_FATAL_ERROR #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner) #endif /* end tables serialization structures and prototypes */ /* Default declaration of generated scanner - a define so the user can * easily add parameters. */ #ifndef YY_DECL #define YY_DECL_IS_OURS 1 extern int Gmllex (yyscan_t yyscanner); #define YY_DECL int Gmllex (yyscan_t yyscanner) #endif /* !YY_DECL */ /* Code executed at the beginning of each rule, after yytext and yyleng * have been set up. */ #ifndef YY_USER_ACTION #define YY_USER_ACTION #endif /* Code executed at the end of each rule. */ #ifndef YY_BREAK #define YY_BREAK break; #endif #define YY_RULE_SETUP \ YY_USER_ACTION /** The main scanner function which does all the work. */ YY_DECL { register yy_state_type yy_current_state; register char *yy_cp, *yy_bp; register int yy_act; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!yyg->yy_init) { yyg->yy_init = 1; #ifdef YY_USER_INIT YY_USER_INIT; #endif if (!yyg->yy_start) yyg->yy_start = 1; /* first start state */ if (!yyin) yyin = stdin; if (!yyout) yyout = stdout; if (!YY_CURRENT_BUFFER) { Gmlensure_buffer_stack (yyscanner); YY_CURRENT_BUFFER_LVALUE = Gml_create_buffer (yyin, YY_BUF_SIZE, yyscanner); } Gml_load_buffer_state (yyscanner); } while (1) /* loops until end-of-file is reached */ { yy_cp = yyg->yy_c_buf_p; /* Support of yytext. */ *yy_cp = yyg->yy_hold_char; /* yy_bp points to the position in yy_ch_buf of the start of * the current run. */ yy_bp = yy_cp; yy_current_state = yyg->yy_start; yy_match: do { register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI (*yy_cp)]; if (yy_accept[yy_current_state]) { yyg->yy_last_accepting_state = yy_current_state; yyg->yy_last_accepting_cpos = yy_cp; } while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state) { yy_current_state = (int) yy_def[yy_current_state]; if (yy_current_state >= 19) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } while (yy_base[yy_current_state] != 24); yy_find_action: yy_act = yy_accept[yy_current_state]; if (yy_act == 0) { /* have to back up */ yy_cp = yyg->yy_last_accepting_cpos; yy_current_state = yyg->yy_last_accepting_state; yy_act = yy_accept[yy_current_state]; } YY_DO_BEFORE_ACTION; do_action: /* This label is used only to access EOF actions. */ switch (yy_act) { /* beginning of action switch */ case 0: /* must back up */ /* undo the effects of YY_DO_BEFORE_ACTION */ *yy_cp = yyg->yy_hold_char; yy_cp = yyg->yy_last_accepting_cpos; yy_current_state = yyg->yy_last_accepting_state; goto yy_find_action; case 1: YY_RULE_SETUP { gml_freeString (&(Gmlget_extra (yyscanner)->GmlLval.pval)); return GML_END; } YY_BREAK case 2: YY_RULE_SETUP { gml_freeString (&(Gmlget_extra (yyscanner)->GmlLval.pval)); return GML_EQ; } YY_BREAK case 3: YY_RULE_SETUP { gml_freeString (&(Gmlget_extra (yyscanner)->GmlLval.pval)); return GML_OPEN; } YY_BREAK case 4: YY_RULE_SETUP { gml_freeString (&(Gmlget_extra (yyscanner)->GmlLval.pval)); return GML_CLOSE; } YY_BREAK case 5: YY_RULE_SETUP { gml_saveString (&(Gmlget_extra (yyscanner)->GmlLval.pval), yytext); return GML_COORD; } YY_BREAK case 6: /* rule 6 can match eol */ YY_RULE_SETUP { gml_saveString (&(Gmlget_extra (yyscanner)->GmlLval.pval), yytext); return GML_VALUE; } YY_BREAK case 7: YY_RULE_SETUP { gml_saveString (&(Gmlget_extra (yyscanner)->GmlLval.pval), yytext); return GML_KEYWORD; } YY_BREAK case 8: YY_RULE_SETUP { gml_freeString (&(Gmlget_extra (yyscanner)->GmlLval.pval)); Gmlget_extra (yyscanner)->gml_col += (int) strlen (yytext); } /* ignore but count white space */ YY_BREAK case 9: /* rule 9 can match eol */ YY_RULE_SETUP { gml_freeString (&(Gmlget_extra (yyscanner)->GmlLval.pval)); Gmlget_extra (yyscanner)->gml_col = 0; Gmlget_extra (yyscanner)->gml_line++; } YY_BREAK case 10: YY_RULE_SETUP { gml_freeString (&(Gmlget_extra (yyscanner)->GmlLval.pval)); Gmlget_extra (yyscanner)->gml_col += (int) strlen (yytext); return -1; } YY_BREAK case 11: YY_RULE_SETUP ECHO; YY_BREAK case YY_STATE_EOF (INITIAL): yyterminate (); case YY_END_OF_BUFFER: { /* Amount of text matched not including the EOB char. */ int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1; /* Undo the effects of YY_DO_BEFORE_ACTION. */ *yy_cp = yyg->yy_hold_char; YY_RESTORE_YY_MORE_OFFSET if (YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW) { /* We're scanning a new file or input source. It's * possible that this happened because the user * just pointed yyin at a new source and called * Gmllex(). If so, then we have to assure * consistency between YY_CURRENT_BUFFER and our * globals. Here is the right place to do so, because * this is the first action (other than possibly a * back-up) that will match for the new input source. */ yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; } /* Note that here we test for yy_c_buf_p "<=" to the position * of the first EOB in the buffer, since yy_c_buf_p will * already have been incremented past the NUL character * (since all states make transitions on EOB to the * end-of-buffer state). Contrast this with the test * in input(). */ if (yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars]) { /* This was really a NUL. */ yy_state_type yy_next_state; yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state (yyscanner); /* Okay, we're now positioned to make the NUL * transition. We couldn't have * yy_get_previous_state() go ahead and do it * for us because it doesn't know how to deal * with the possibility of jamming (and we don't * want to build jamming into it because then it * will run more slowly). */ yy_next_state = yy_try_NUL_trans (yy_current_state, yyscanner); yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; if (yy_next_state) { /* Consume the NUL. */ yy_cp = ++yyg->yy_c_buf_p; yy_current_state = yy_next_state; goto yy_match; } else { yy_cp = yyg->yy_c_buf_p; goto yy_find_action; } } else switch (yy_get_next_buffer (yyscanner)) { case EOB_ACT_END_OF_FILE: { yyg->yy_did_buffer_switch_on_eof = 0; if (Gmlwrap (yyscanner)) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up * yytext, we can now set up * yy_c_buf_p so that if some total * hoser (like flex itself) wants to * call the scanner after we return the * YY_NULL, it'll still work - another * YY_NULL will get returned. */ yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ; yy_act = YY_STATE_EOF (YY_START); goto do_action; } else { if (!yyg->yy_did_buffer_switch_on_eof) YY_NEW_FILE; } break; } case EOB_ACT_CONTINUE_SCAN: yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state (yyscanner); yy_cp = yyg->yy_c_buf_p; yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; goto yy_match; case EOB_ACT_LAST_MATCH: yyg->yy_c_buf_p = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg-> yy_n_chars]; yy_current_state = yy_get_previous_state (yyscanner); yy_cp = yyg->yy_c_buf_p; yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; goto yy_find_action; } break; } default: YY_FATAL_ERROR ("fatal flex scanner internal error--no action found"); } /* end of action switch */ } /* end of scanning one token */ } /* end of Gmllex */ /* yy_get_next_buffer - try to read in a new buffer * * Returns a code representing an action: * EOB_ACT_LAST_MATCH - * EOB_ACT_CONTINUE_SCAN - continue scanning from current position * EOB_ACT_END_OF_FILE - end of file */ static int yy_get_next_buffer (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; register char *source = yyg->yytext_ptr; register int number_to_move, i; int ret_val; if (yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1]) YY_FATAL_ERROR ("fatal flex scanner internal error--end of buffer missed"); if (YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0) { /* Don't try to fill the buffer, so this is an EOF. */ if (yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1) { /* We matched a single character, the EOB, so * treat this as a final EOF. */ return EOB_ACT_END_OF_FILE; } else { /* We matched some text prior to the EOB, first * process it. */ return EOB_ACT_LAST_MATCH; } } /* Try to read more data. */ /* First move last chars to start of buffer. */ number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1; for (i = 0; i < number_to_move; ++i) *(dest++) = *(source++); if (YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING) /* don't do the read, it's not guaranteed to return an EOF, * just force an EOF */ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0; else { int num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; while (num_to_read <= 0) { /* Not enough room in the buffer - grow it. */ /* just a shorter name for the current buffer */ YY_BUFFER_STATE b = YY_CURRENT_BUFFER; int yy_c_buf_p_offset = (int) (yyg->yy_c_buf_p - b->yy_ch_buf); if (b->yy_is_our_buffer) { int new_size = b->yy_buf_size * 2; if (new_size <= 0) b->yy_buf_size += b->yy_buf_size / 8; else b->yy_buf_size *= 2; b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ Gmlrealloc ((void *) b->yy_ch_buf, b->yy_buf_size + 2, yyscanner); } else /* Can't grow it, we don't own it. */ b->yy_ch_buf = 0; if (!b->yy_ch_buf) YY_FATAL_ERROR ("fatal error - scanner input buffer overflow"); yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset]; num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; } if (num_to_read > YY_READ_BUF_SIZE) num_to_read = YY_READ_BUF_SIZE; /* Read in more data. */ YY_INPUT ((&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), yyg->yy_n_chars, (size_t) num_to_read); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; } if (yyg->yy_n_chars == 0) { if (number_to_move == YY_MORE_ADJ) { ret_val = EOB_ACT_END_OF_FILE; Gmlrestart (yyin, yyscanner); } else { ret_val = EOB_ACT_LAST_MATCH; YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_EOF_PENDING; } } else ret_val = EOB_ACT_CONTINUE_SCAN; if ((yy_size_t) (yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ yy_size_t new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1); YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) Gmlrealloc ((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, new_size, yyscanner); if (!YY_CURRENT_BUFFER_LVALUE->yy_ch_buf) YY_FATAL_ERROR ("out of dynamic memory in yy_get_next_buffer()"); } yyg->yy_n_chars += number_to_move; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR; yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; return ret_val; } /* yy_get_previous_state - get the state just before the EOB char was reached */ static yy_state_type yy_get_previous_state (yyscan_t yyscanner) { register yy_state_type yy_current_state; register char *yy_cp; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yy_current_state = yyg->yy_start; for (yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp) { register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI (*yy_cp)] : 1); if (yy_accept[yy_current_state]) { yyg->yy_last_accepting_state = yy_current_state; yyg->yy_last_accepting_cpos = yy_cp; } while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state) { yy_current_state = (int) yy_def[yy_current_state]; if (yy_current_state >= 19) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; } return yy_current_state; } /* yy_try_NUL_trans - try to make a transition on the NUL character * * synopsis * next_state = yy_try_NUL_trans( current_state ); */ static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state, yyscan_t yyscanner) { register int yy_is_jam; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* This var may be unused depending upon options. */ register char *yy_cp = yyg->yy_c_buf_p; register YY_CHAR yy_c = 1; if (yy_accept[yy_current_state]) { yyg->yy_last_accepting_state = yy_current_state; yyg->yy_last_accepting_cpos = yy_cp; } while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state) { yy_current_state = (int) yy_def[yy_current_state]; if (yy_current_state >= 19) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; yy_is_jam = (yy_current_state == 18); return yy_is_jam ? 0 : yy_current_state; } #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput (yyscan_t yyscanner) #else static int input (yyscan_t yyscanner) #endif { int c; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; *yyg->yy_c_buf_p = yyg->yy_hold_char; if (*yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR) { /* yy_c_buf_p now points to the character we want to return. * If this occurs *before* the EOB characters, then it's a * valid NUL; if not, then we've hit the end of the buffer. */ if (yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars]) /* This was really a NUL. */ *yyg->yy_c_buf_p = '\0'; else { /* need more input */ int offset = yyg->yy_c_buf_p - yyg->yytext_ptr; ++yyg->yy_c_buf_p; switch (yy_get_next_buffer (yyscanner)) { case EOB_ACT_LAST_MATCH: /* This happens because yy_g_n_b() * sees that we've accumulated a * token and flags that we need to * try matching the token before * proceeding. But for input(), * there's no matching to consider. * So convert the EOB_ACT_LAST_MATCH * to EOB_ACT_END_OF_FILE. */ /* Reset buffer status. */ Gmlrestart (yyin, yyscanner); /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE: { if (Gmlwrap (yyscanner)) return EOF; if (!yyg->yy_did_buffer_switch_on_eof) YY_NEW_FILE; #ifdef __cplusplus return yyinput (yyscanner); #else return input (yyscanner); #endif } case EOB_ACT_CONTINUE_SCAN: yyg->yy_c_buf_p = yyg->yytext_ptr + offset; break; } } } c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */ *yyg->yy_c_buf_p = '\0'; /* preserve yytext */ yyg->yy_hold_char = *++yyg->yy_c_buf_p; return c; } #endif /* ifndef YY_NO_INPUT */ /** Immediately switch to a different input stream. * @param input_file A readable stream. * @param yyscanner The scanner object. * @note This function does not reset the start condition to @c INITIAL . */ void Gmlrestart (FILE * input_file, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!YY_CURRENT_BUFFER) { Gmlensure_buffer_stack (yyscanner); YY_CURRENT_BUFFER_LVALUE = Gml_create_buffer (yyin, YY_BUF_SIZE, yyscanner); } Gml_init_buffer (YY_CURRENT_BUFFER, input_file, yyscanner); Gml_load_buffer_state (yyscanner); } /** Switch to a different input buffer. * @param new_buffer The new input buffer. * @param yyscanner The scanner object. */ void Gml_switch_to_buffer (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* TODO. We should be able to replace this entire function body * with * Gmlpop_buffer_state(); * Gmlpush_buffer_state(new_buffer); */ Gmlensure_buffer_stack (yyscanner); if (YY_CURRENT_BUFFER == new_buffer) return; if (YY_CURRENT_BUFFER) { /* Flush out information for old buffer. */ *yyg->yy_c_buf_p = yyg->yy_hold_char; YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; } YY_CURRENT_BUFFER_LVALUE = new_buffer; Gml_load_buffer_state (yyscanner); /* We don't actually know whether we did this switch during * EOF (Gmlwrap()) processing, but the only time this flag * is looked at is after Gmlwrap() is called, so it's safe * to go ahead and always set it. */ yyg->yy_did_buffer_switch_on_eof = 1; } static void Gml_load_buffer_state (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; yyg->yy_hold_char = *yyg->yy_c_buf_p; } /** Allocate and initialize an input buffer state. * @param file A readable stream. * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. * @param yyscanner The scanner object. * @return the allocated buffer state. */ YY_BUFFER_STATE Gml_create_buffer (FILE * file, int size, yyscan_t yyscanner) { YY_BUFFER_STATE b; b = (YY_BUFFER_STATE) Gmlalloc (sizeof (struct yy_buffer_state), yyscanner); if (!b) YY_FATAL_ERROR ("out of dynamic memory in Gml_create_buffer()"); b->yy_buf_size = size; /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ b->yy_ch_buf = (char *) Gmlalloc (b->yy_buf_size + 2, yyscanner); if (!b->yy_ch_buf) YY_FATAL_ERROR ("out of dynamic memory in Gml_create_buffer()"); b->yy_is_our_buffer = 1; Gml_init_buffer (b, file, yyscanner); return b; } /** Destroy the buffer. * @param b a buffer created with Gml_create_buffer() * @param yyscanner The scanner object. */ void Gml_delete_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!b) return; if (b == YY_CURRENT_BUFFER) /* Not sure if we should pop here. */ YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if (b->yy_is_our_buffer) Gmlfree ((void *) b->yy_ch_buf, yyscanner); Gmlfree ((void *) b, yyscanner); } #ifndef __cplusplus extern int isatty (int); #endif /* __cplusplus */ /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a Gmlrestart() or at EOF. */ static void Gml_init_buffer (YY_BUFFER_STATE b, FILE * file, yyscan_t yyscanner) { int oerrno = errno; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; Gml_flush_buffer (b, yyscanner); b->yy_input_file = file; b->yy_fill_buffer = 1; /* If b is the current buffer, then Gml_init_buffer was _probably_ * called from Gmlrestart() or through yy_get_next_buffer. * In that case, we don't want to reset the lineno or column. */ if (b != YY_CURRENT_BUFFER) { b->yy_bs_lineno = 1; b->yy_bs_column = 0; } b->yy_is_interactive = file ? (isatty (fileno (file)) > 0) : 0; errno = oerrno; } /** Discard all buffered characters. On the next scan, YY_INPUT will be called. * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. * @param yyscanner The scanner object. */ void Gml_flush_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!b) return; b->yy_n_chars = 0; /* We always need two end-of-buffer characters. The first causes * a transition to the end-of-buffer state. The second causes * a jam in that state. */ b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; b->yy_buf_pos = &b->yy_ch_buf[0]; b->yy_at_bol = 1; b->yy_buffer_status = YY_BUFFER_NEW; if (b == YY_CURRENT_BUFFER) Gml_load_buffer_state (yyscanner); } /** Pushes the new state onto the stack. The new state becomes * the current state. This function will allocate the stack * if necessary. * @param new_buffer The new state. * @param yyscanner The scanner object. */ void Gmlpush_buffer_state (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (new_buffer == NULL) return; Gmlensure_buffer_stack (yyscanner); /* This block is copied from Gml_switch_to_buffer. */ if (YY_CURRENT_BUFFER) { /* Flush out information for old buffer. */ *yyg->yy_c_buf_p = yyg->yy_hold_char; YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; } /* Only push if top exists. Otherwise, replace top. */ if (YY_CURRENT_BUFFER) yyg->yy_buffer_stack_top++; YY_CURRENT_BUFFER_LVALUE = new_buffer; /* copied from Gml_switch_to_buffer. */ Gml_load_buffer_state (yyscanner); yyg->yy_did_buffer_switch_on_eof = 1; } /** Removes and deletes the top of the stack, if present. * The next element becomes the new top. * @param yyscanner The scanner object. */ void Gmlpop_buffer_state (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!YY_CURRENT_BUFFER) return; Gml_delete_buffer (YY_CURRENT_BUFFER, yyscanner); YY_CURRENT_BUFFER_LVALUE = NULL; if (yyg->yy_buffer_stack_top > 0) --yyg->yy_buffer_stack_top; if (YY_CURRENT_BUFFER) { Gml_load_buffer_state (yyscanner); yyg->yy_did_buffer_switch_on_eof = 1; } } /* Allocates the stack if it does not exist. * Guarantees space for at least one push. */ static void Gmlensure_buffer_stack (yyscan_t yyscanner) { int num_to_alloc; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!yyg->yy_buffer_stack) { /* First allocation is just for 2 elements, since we don't know if this * scanner will even need a stack. We use 2 instead of 1 to avoid an * immediate realloc on the next call. */ num_to_alloc = 1; yyg->yy_buffer_stack = (struct yy_buffer_state **) Gmlalloc (num_to_alloc * sizeof (struct yy_buffer_state *), yyscanner); if (!yyg->yy_buffer_stack) YY_FATAL_ERROR ("out of dynamic memory in Gmlensure_buffer_stack()"); memset (yyg->yy_buffer_stack, 0, num_to_alloc * sizeof (struct yy_buffer_state *)); yyg->yy_buffer_stack_max = num_to_alloc; yyg->yy_buffer_stack_top = 0; return; } if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1) { /* Increase the buffer to prepare for a possible push. */ int grow_size = 8 /* arbitrary grow size */ ; num_to_alloc = yyg->yy_buffer_stack_max + grow_size; yyg->yy_buffer_stack = (struct yy_buffer_state **) Gmlrealloc (yyg->yy_buffer_stack, num_to_alloc * sizeof (struct yy_buffer_state *), yyscanner); if (!yyg->yy_buffer_stack) YY_FATAL_ERROR ("out of dynamic memory in Gmlensure_buffer_stack()"); /* zero only the new slots. */ memset (yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof (struct yy_buffer_state *)); yyg->yy_buffer_stack_max = num_to_alloc; } } /** Setup the input buffer state to scan directly from a user-specified character buffer. * @param base the character buffer * @param size the size in bytes of the character buffer * @param yyscanner The scanner object. * @return the newly allocated buffer state object. */ YY_BUFFER_STATE Gml_scan_buffer (char *base, yy_size_t size, yyscan_t yyscanner) { YY_BUFFER_STATE b; if (size < 2 || base[size - 2] != YY_END_OF_BUFFER_CHAR || base[size - 1] != YY_END_OF_BUFFER_CHAR) /* They forgot to leave room for the EOB's. */ return 0; b = (YY_BUFFER_STATE) Gmlalloc (sizeof (struct yy_buffer_state), yyscanner); if (!b) YY_FATAL_ERROR ("out of dynamic memory in Gml_scan_buffer()"); b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ b->yy_buf_pos = b->yy_ch_buf = base; b->yy_is_our_buffer = 0; b->yy_input_file = 0; b->yy_n_chars = b->yy_buf_size; b->yy_is_interactive = 0; b->yy_at_bol = 1; b->yy_fill_buffer = 0; b->yy_buffer_status = YY_BUFFER_NEW; Gml_switch_to_buffer (b, yyscanner); return b; } /** Setup the input buffer state to scan a string. The next call to Gmllex() will * scan from a @e copy of @a str. * @param yystr a NUL-terminated string to scan * @param yyscanner The scanner object. * @return the newly allocated buffer state object. * @note If you want to scan bytes that may contain NUL values, then use * Gml_scan_bytes() instead. */ YY_BUFFER_STATE Gml_scan_string (yyconst char *yystr, yyscan_t yyscanner) { return Gml_scan_bytes (yystr, strlen (yystr), yyscanner); } /** Setup the input buffer state to scan the given bytes. The next call to Gmllex() will * scan from a @e copy of @a bytes. * @param bytes the byte buffer to scan * @param len the number of bytes in the buffer pointed to by @a bytes. * @param yyscanner The scanner object. * @return the newly allocated buffer state object. */ YY_BUFFER_STATE Gml_scan_bytes (yyconst char *yybytes, int _yybytes_len, yyscan_t yyscanner) { YY_BUFFER_STATE b; char *buf; yy_size_t n; int i; /* Get memory for full buffer, including space for trailing EOB's. */ n = _yybytes_len + 2; buf = (char *) Gmlalloc (n, yyscanner); if (!buf) YY_FATAL_ERROR ("out of dynamic memory in Gml_scan_bytes()"); for (i = 0; i < _yybytes_len; ++i) buf[i] = yybytes[i]; buf[_yybytes_len] = buf[_yybytes_len + 1] = YY_END_OF_BUFFER_CHAR; b = Gml_scan_buffer (buf, n, yyscanner); if (!b) YY_FATAL_ERROR ("bad buffer in Gml_scan_bytes()"); /* It's okay to grow etc. this buffer, and we should throw it * away when we're done. */ b->yy_is_our_buffer = 1; return b; } #ifndef YY_EXIT_FAILURE #define YY_EXIT_FAILURE 2 #endif static void yy_fatal_error (yyconst char *msg, yyscan_t yyscanner) { (void) fprintf (stderr, "%s\n", msg); exit (YY_EXIT_FAILURE); } /* Redefine yyless() so it works in section 3 code. */ #undef yyless #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ yytext[yyleng] = yyg->yy_hold_char; \ yyg->yy_c_buf_p = yytext + yyless_macro_arg; \ yyg->yy_hold_char = *yyg->yy_c_buf_p; \ *yyg->yy_c_buf_p = '\0'; \ yyleng = yyless_macro_arg; \ } \ while ( 0 ) /* Accessor methods (get/set functions) to struct members. */ /** Get the user-defined data for this scanner. * @param yyscanner The scanner object. */ YY_EXTRA_TYPE Gmlget_extra (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyextra; } /** Get the current line number. * @param yyscanner The scanner object. */ int Gmlget_lineno (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!YY_CURRENT_BUFFER) return 0; return yylineno; } /** Get the current column number. * @param yyscanner The scanner object. */ int Gmlget_column (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!YY_CURRENT_BUFFER) return 0; return yycolumn; } /** Get the input stream. * @param yyscanner The scanner object. */ FILE * Gmlget_in (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyin; } /** Get the output stream. * @param yyscanner The scanner object. */ FILE * Gmlget_out (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyout; } /** Get the length of the current token. * @param yyscanner The scanner object. */ int Gmlget_leng (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyleng; } /** Get the current token. * @param yyscanner The scanner object. */ char * Gmlget_text (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yytext; } /** Set the user-defined data. This data is never touched by the scanner. * @param user_defined The data to be associated with this scanner. * @param yyscanner The scanner object. */ void Gmlset_extra (YY_EXTRA_TYPE user_defined, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yyextra = user_defined; } /** Set the current line number. * @param line_number * @param yyscanner The scanner object. */ void Gmlset_lineno (int line_number, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* lineno is only valid if an input buffer exists. */ if (!YY_CURRENT_BUFFER) yy_fatal_error ("Gmlset_lineno called with no buffer", yyscanner); yylineno = line_number; } /** Set the current column. * @param line_number * @param yyscanner The scanner object. */ void Gmlset_column (int column_no, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* column is only valid if an input buffer exists. */ if (!YY_CURRENT_BUFFER) yy_fatal_error ("Gmlset_column called with no buffer", yyscanner); yycolumn = column_no; } /** Set the input stream. This does not discard the current * input buffer. * @param in_str A readable stream. * @param yyscanner The scanner object. * @see Gml_switch_to_buffer */ void Gmlset_in (FILE * in_str, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yyin = in_str; } void Gmlset_out (FILE * out_str, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yyout = out_str; } int Gmlget_debug (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yy_flex_debug; } void Gmlset_debug (int bdebug, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yy_flex_debug = bdebug; } /* Accessor methods for yylval and yylloc */ /* User-visible API */ /* Gmllex_init is special because it creates the scanner itself, so it is * the ONLY reentrant function that doesn't take the scanner as the last argument. * That's why we explicitly handle the declaration, instead of using our macros. */ int Gmllex_init (yyscan_t * ptr_yy_globals) { if (ptr_yy_globals == NULL) { errno = EINVAL; return 1; } *ptr_yy_globals = (yyscan_t) Gmlalloc (sizeof (struct yyguts_t), NULL); if (*ptr_yy_globals == NULL) { errno = ENOMEM; return 1; } /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */ memset (*ptr_yy_globals, 0x00, sizeof (struct yyguts_t)); return yy_init_globals (*ptr_yy_globals); } /* Gmllex_init_extra has the same functionality as Gmllex_init, but follows the * convention of taking the scanner as the last argument. Note however, that * this is a *pointer* to a scanner, as it will be allocated by this call (and * is the reason, too, why this function also must handle its own declaration). * The user defined value in the first argument will be available to Gmlalloc in * the yyextra field. */ int Gmllex_init_extra (YY_EXTRA_TYPE yy_user_defined, yyscan_t * ptr_yy_globals) { struct yyguts_t dummy_yyguts; Gmlset_extra (yy_user_defined, &dummy_yyguts); if (ptr_yy_globals == NULL) { errno = EINVAL; return 1; } *ptr_yy_globals = (yyscan_t) Gmlalloc (sizeof (struct yyguts_t), &dummy_yyguts); if (*ptr_yy_globals == NULL) { errno = ENOMEM; return 1; } /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */ memset (*ptr_yy_globals, 0x00, sizeof (struct yyguts_t)); Gmlset_extra (yy_user_defined, *ptr_yy_globals); return yy_init_globals (*ptr_yy_globals); } static int yy_init_globals (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* Initialization is the same as for the non-reentrant scanner. * This function is called from Gmllex_destroy(), so don't allocate here. */ yyg->yy_buffer_stack = 0; yyg->yy_buffer_stack_top = 0; yyg->yy_buffer_stack_max = 0; yyg->yy_c_buf_p = (char *) 0; yyg->yy_init = 0; yyg->yy_start = 0; yyg->yy_start_stack_ptr = 0; yyg->yy_start_stack_depth = 0; yyg->yy_start_stack = NULL; /* Defined in main.c */ #ifdef YY_STDINIT yyin = stdin; yyout = stdout; #else yyin = (FILE *) 0; yyout = (FILE *) 0; #endif /* For future reference: Set errno on error, since we are called by * Gmllex_init() */ return 0; } /* Gmllex_destroy is for both reentrant and non-reentrant scanners. */ int Gmllex_destroy (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* Pop the buffer stack, destroying each element. */ while (YY_CURRENT_BUFFER) { Gml_delete_buffer (YY_CURRENT_BUFFER, yyscanner); YY_CURRENT_BUFFER_LVALUE = NULL; Gmlpop_buffer_state (yyscanner); } /* Destroy the stack itself. */ Gmlfree (yyg->yy_buffer_stack, yyscanner); yyg->yy_buffer_stack = NULL; /* Destroy the start condition stack. */ Gmlfree (yyg->yy_start_stack, yyscanner); yyg->yy_start_stack = NULL; /* Reset the globals. This is important in a non-reentrant scanner so the next time * Gmllex() is called, initialization will occur. */ yy_init_globals (yyscanner); /* Destroy the main struct (reentrant only). */ Gmlfree (yyscanner, yyscanner); yyscanner = NULL; return 0; } /* * Internal utility routines. */ #ifndef yytext_ptr static void yy_flex_strncpy (char *s1, yyconst char *s2, int n, yyscan_t yyscanner) { register int i; for (i = 0; i < n; ++i) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen (yyconst char *s, yyscan_t yyscanner) { register int n; for (n = 0; s[n]; ++n) ; return n; } #endif void * Gmlalloc (yy_size_t size, yyscan_t yyscanner) { return (void *) malloc (size); } void * Gmlrealloc (void *ptr, yy_size_t size, yyscan_t yyscanner) { /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter * because both ANSI C and C++ allow castless assignment from * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ return (void *) realloc ((char *) ptr, size); } void Gmlfree (void *ptr, yyscan_t yyscanner) { free ((char *) ptr); /* see Gmlrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" int Gmlwrap (yyscan_t yyscanner) { return 1; } ���������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.1.1/missing�������������������������������������������������������������������������0000775�0001750�0001750�00000026233�12163502133�012667� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2009-04-28.21; # UTC # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, # 2008, 2009 Free Software Foundation, Inc. # Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' sed_minuso='s/.* -o \([^ ]*\).*/\1/p' # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case $1 in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' autom4te touch the output file, or create a stub one automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and \`g' are ignored when checking the name. Send bug reports to <bug-automake@gnu.org>." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # normalize program name to check for. program=`echo "$1" | sed ' s/^gnu-//; t s/^gnu//; t s/^g//; t'` # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). This is about non-GNU programs, so use $1 not # $program. case $1 in lex*|yacc*) # Not GNU programs, they don't have --version. ;; tar*) if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then exit 1 fi ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case $program in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case $f in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te*) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison*|yacc*) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.h fi ;; esac fi if test ! -f y.tab.h; then echo >y.tab.h fi if test ! -f y.tab.c; then echo 'main() { return 0; }' >y.tab.c fi ;; lex*|flex*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if test ! -f lex.yy.c; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit $? fi ;; makeinfo*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n ' /^@setfilename/{ s/.* \([^ ]*\) *$/\1/ p q }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; tar*) shift # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case $firstarg in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case $firstarg in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.1.1/INSTALL�������������������������������������������������������������������������0000664�0001750�0001750�00000017230�12163502133�012316� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Basic Installation ================== These are generic installation instructions. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, a file `config.cache' that saves the results of its tests to speed up reconfiguring, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.in' is used to create `configure' by a program called `autoconf'. You only need `configure.in' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. If you're using `csh' on an old version of System V, you might need to type `sh ./configure' instead to prevent `csh' from trying to execute `configure' itself. Running `configure' takes awhile. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package. 4. Type `make install' to install the programs and any data files and documentation. 5. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. You can give `configure' initial values for variables by setting them in the environment. Using a Bourne-compatible shell, you can do that on the command line like this: CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure Or on systems that have the `env' program, you can do it like this: env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you must use a version of `make' that supports the `VPATH' variable, such as GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. If you have to use a `make' that does not supports the `VPATH' variable, you have to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture. Installation Names ================== By default, `make install' will install the package's files in `/usr/local/bin', `/usr/local/man', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PATH'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you give `configure' the option `--exec-prefix=PATH', the package will use PATH as the prefix for installing programs and libraries. Documentation and other data files will still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=PATH' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Optional Features ================= Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Specifying the System Type ========================== There may be some features `configure' can not figure out automatically, but needs to determine by the type of host the package will run on. Usually `configure' can figure that out, but if it prints a message saying it can not guess the host type, give it the `--host=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name with three fields: CPU-COMPANY-SYSTEM See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the host type. If you are building compiler tools for cross-compiling, you can also use the `--target=TYPE' option to select the type of system they will produce code for and the `--build=TYPE' option to select the type of system on which you are compiling the package. Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Operation Controls ================== `configure' recognizes the following options to control how it operates. `--cache-file=FILE' Use and save the results of the tests in FILE instead of `./config.cache'. Set FILE to `/dev/null' to disable caching, for debugging `configure'. `--help' Print a summary of the options to `configure', and exit. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to `/dev/null' (any error messages will still be shown). `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `--version' Print the version of Autoconf used to generate the `configure' script, and exit. `configure' also accepts some other, not widely useful, options. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.1.1/install-sh����������������������������������������������������������������������0000775�0001750�0001750�00000032537�12163502133�013300� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/bin/sh # install - install a program, script, or datafile scriptversion=2009-04-28.21; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. nl=' ' IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} if test -z "$doit"; then doit_exec=exec else doit_exec=$doit fi # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_glob='?' initialize_posix_glob=' test "$posix_glob" != "?" || { if (set -f) 2>/dev/null; then posix_glob= else posix_glob=: fi } ' posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false no_target_directory= usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *' '* | *' '* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 shift;; -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then trap '(exit $?); exit' 1 2 13 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names starting with `-'. case $src in -*) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # Protect names starting with `-'. case $dst in -*) dst=./$dst;; esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else # Prefer dirname, but fall back on a substitute if dirname fails. dstdir=` (dirname "$dst") 2>/dev/null || expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$dst" : 'X\(//\)[^/]' \| \ X"$dst" : 'X\(//\)$' \| \ X"$dst" : 'X\(/\)' \| . 2>/dev/null || echo X"$dst" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q' ` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writeable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; -*) prefix='./';; *) prefix='';; esac eval "$initialize_posix_glob" oIFS=$IFS IFS=/ $posix_glob set -f set fnord $dstdir shift $posix_glob set +f IFS=$oIFS prefixes= for d do test -z "$d" && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && eval "$initialize_posix_glob" && $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && $posix_glob set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: �����������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.1.1/aclocal.m4����������������������������������������������������������������������0000664�0001750�0001750�00000127051�12163502133�013130� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# generated automatically by aclocal 1.12.2 -*- Autoconf -*- # Copyright (C) 1996-2012 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, [m4_warning([this file was generated for autoconf 2.69. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.])]) # pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- # serial 1 (pkg-config-0.24) # # Copyright © 2004 Scott James Remnant <scott@netsplit.com>. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # PKG_PROG_PKG_CONFIG([MIN-VERSION]) # ---------------------------------- AC_DEFUN([PKG_PROG_PKG_CONFIG], [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) fi if test -n "$PKG_CONFIG"; then _pkg_min_version=m4_default([$1], [0.9.0]) AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) PKG_CONFIG="" fi fi[]dnl ])# PKG_PROG_PKG_CONFIG # PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) # # Check to see whether a particular set of modules exists. Similar # to PKG_CHECK_MODULES(), but does not set variables or print errors. # # Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) # only at the first occurence in configure.ac, so if the first place # it's called might be skipped (such as if it is within an "if", you # have to call PKG_CHECK_EXISTS manually # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_EXISTS], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl if test -n "$PKG_CONFIG" && \ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then m4_default([$2], [:]) m4_ifvaln([$3], [else $3])dnl fi]) # _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) # --------------------------------------------- m4_define([_PKG_CONFIG], [if test -n "$$1"; then pkg_cv_[]$1="$$1" elif test -n "$PKG_CONFIG"; then PKG_CHECK_EXISTS([$3], [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes ], [pkg_failed=yes]) else pkg_failed=untried fi[]dnl ])# _PKG_CONFIG # _PKG_SHORT_ERRORS_SUPPORTED # ----------------------------- AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], [AC_REQUIRE([PKG_PROG_PKG_CONFIG]) if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi[]dnl ])# _PKG_SHORT_ERRORS_SUPPORTED # PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], # [ACTION-IF-NOT-FOUND]) # # # Note that if there is a possibility the first call to # PKG_CHECK_MODULES might not happen, you should be sure to include an # explicit call to PKG_PROG_PKG_CONFIG in your configure.ac # # # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_MODULES], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl pkg_failed=no AC_MSG_CHECKING([for $1]) _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) _PKG_CONFIG([$1][_LIBS], [libs], [$2]) m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS and $1[]_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.]) if test $pkg_failed = yes; then AC_MSG_RESULT([no]) _PKG_SHORT_ERRORS_SUPPORTED if test $_pkg_short_errors_supported = yes; then $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` else $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD m4_default([$4], [AC_MSG_ERROR( [Package requirements ($2) were not met: $$1_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. _PKG_TEXT])[]dnl ]) elif test $pkg_failed = untried; then AC_MSG_RESULT([no]) m4_default([$4], [AC_MSG_FAILURE( [The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. _PKG_TEXT To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl ]) else $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS $1[]_LIBS=$pkg_cv_[]$1[]_LIBS AC_MSG_RESULT([yes]) $3 fi[]dnl ])# PKG_CHECK_MODULES # PKG_INSTALLDIR(DIRECTORY) # ------------------------- # Substitutes the variable pkgconfigdir as the location where a module # should install pkg-config .pc files. By default the directory is # $libdir/pkgconfig, but the default can be changed by passing # DIRECTORY. The user can override through the --with-pkgconfigdir # parameter. AC_DEFUN([PKG_INSTALLDIR], [m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])]) m4_pushdef([pkg_description], [pkg-config installation directory @<:@]pkg_default[@:>@]) AC_ARG_WITH([pkgconfigdir], [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],, [with_pkgconfigdir=]pkg_default) AC_SUBST([pkgconfigdir], [$with_pkgconfigdir]) m4_popdef([pkg_default]) m4_popdef([pkg_description]) ]) dnl PKG_INSTALLDIR # PKG_NOARCH_INSTALLDIR(DIRECTORY) # ------------------------- # Substitutes the variable noarch_pkgconfigdir as the location where a # module should install arch-independent pkg-config .pc files. By # default the directory is $datadir/pkgconfig, but the default can be # changed by passing DIRECTORY. The user can override through the # --with-noarch-pkgconfigdir parameter. AC_DEFUN([PKG_NOARCH_INSTALLDIR], [m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])]) m4_pushdef([pkg_description], [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@]) AC_ARG_WITH([noarch-pkgconfigdir], [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],, [with_noarch_pkgconfigdir=]pkg_default) AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir]) m4_popdef([pkg_default]) m4_popdef([pkg_description]) ]) dnl PKG_NOARCH_INSTALLDIR # Copyright (C) 2002-2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 8 # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.12' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. m4_if([$1], [1.12.2], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.12.2])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001-2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to # '$srcdir', '$srcdir/..', or '$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is '.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. AC_PREREQ([2.50])dnl # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997-2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 10 # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ([2.52])dnl m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl m4_define([_AM_COND_VALUE_$1], [$2])dnl if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Copyright (C) 1999-2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 17 # There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], [$1], [CXX], [depcc="$CXX" am_compiler_list=], [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], [$1], [UPC], [depcc="$UPC" am_compiler_list=], [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named 'D' -- because '-MD' means "put the output # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi am__universal=false m4_case([$1], [CC], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac], [CXX], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac]) for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with # Solaris 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle '-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # After this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES. AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE([dependency-tracking], [dnl AS_HELP_STRING( [--enable-dependency-tracking], [do not reject slow dependency extractors]) AS_HELP_STRING( [--disable-dependency-tracking], [speeds up one-time build])]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl AC_SUBST([am__nodep])dnl _AM_SUBST_NOTMAKE([am__nodep])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999-2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 6 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named 'Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`AS_DIRNAME("$mf")` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running 'make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` AS_MKDIR_P([$dirpart/$fdir]) # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking # is enabled. FIXME. This creates each '.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) # Copyright (C) 1996-2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 8 # AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS. AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996-2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 19 # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.62])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [AC_DIAGNOSE([obsolete], [$0: two- and three-arguments forms are deprecated. For more info, see: http://www.gnu.org/software/automake/manual/automake.html#Modernize-AM_INIT_AUTOMAKE-invocation]) m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if( m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), [ok:ok],, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) AM_MISSING_PROG([AUTOCONF], [autoconf]) AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) AM_MISSING_PROG([AUTOHEADER], [autoheader]) AM_MISSING_PROG([MAKEINFO], [makeinfo]) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html> # <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html> AC_SUBST([mkdir_p], ['$(MKDIR_P)']) # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES([CC])], [m4_define([AC_PROG_CC], m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES([CXX])], [m4_define([AC_PROG_CXX], m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES([OBJC])], [m4_define([AC_PROG_OBJC], m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl dnl Support for Objective C++ was only introduced in Autoconf 2.65, dnl but we still cater to Autoconf 2.62. m4_ifdef([AC_PROG_OBJCXX], [AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], [_AM_DEPENDENCIES([OBJCXX])], [m4_define([AC_PROG_OBJCXX], m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])])dnl ]) _AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl dnl The 'parallel-tests' driver may need to know about EXEEXT, so add the dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl ]) dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001-2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 8 # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi AC_SUBST([install_sh])]) # Copyright (C) 2003-2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Add --enable-maintainer-mode option to configure. -*- Autoconf -*- # From Jim Meyering # Copyright (C) 1996-2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 7 # AM_MAINTAINER_MODE([DEFAULT-MODE]) # ---------------------------------- # Control maintainer-specific portions of Makefiles. # Default is to disable them, unless 'enable' is passed literally. # For symmetry, 'disable' may be passed as well. Anyway, the user # can override the default with the --enable/--disable switch. AC_DEFUN([AM_MAINTAINER_MODE], [m4_case(m4_default([$1], [disable]), [enable], [m4_define([am_maintainer_other], [disable])], [disable], [m4_define([am_maintainer_other], [enable])], [m4_define([am_maintainer_other], [enable]) m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) dnl maintainer-mode's default is 'disable' unless 'enable' is passed AC_ARG_ENABLE([maintainer-mode], [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode], am_maintainer_other[ make rules and dependencies not useful (and sometimes confusing) to the casual installer])], [USE_MAINTAINER_MODE=$enableval], [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) AC_MSG_RESULT([$USE_MAINTAINER_MODE]) AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) MAINT=$MAINTAINER_MODE_TRUE AC_SUBST([MAINT])dnl ] ) AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001-2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 5 # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from 'make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi AC_SUBST([am__include]) AC_SUBST([am__quote]) AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997-2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 7 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it supports --run. # If it does, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= AC_MSG_WARN(['missing' script is too old or missing]) fi ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001-2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 6 # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # -------------------- # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), [1])]) # _AM_SET_OPTIONS(OPTIONS) # ------------------------ # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996-2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 9 # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; esac # Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi if test "$[2]" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT([yes]) # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi AC_CONFIG_COMMANDS_PRE( [AC_MSG_CHECKING([that generated files are newer than configure]) if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi AC_MSG_RESULT([done])]) rm -f conftest.file ]) # Copyright (C) 2001-2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor 'install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in "make install-strip", and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using 'strip' when the user # run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the 'STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006-2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 3 # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) # -------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004-2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 3 # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of 'v7', 'ustar', or 'pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AC_SUBST([AMTAR], ['$${TAR-tar}']) m4_if([$1], [v7], [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], [m4_case([$1], [ustar],, [pax],, [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' _am_tools=${am_cv_prog_tar_$1-$_am_tools} # Do not fold the above two line into one, because Tru64 sh and # Solaris sh will not grok spaces in the rhs of '-'. for _am_tool in $_am_tools do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar <conftest.tar]) grep GrepMe conftest.dir/file >/dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR m4_include([m4/libtool.m4]) m4_include([m4/ltoptions.m4]) m4_include([m4/ltsugar.m4]) m4_include([m4/ltversion.m4]) m4_include([m4/lt~obsolete.m4]) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������